<?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>177474</bug_id>
          
          <creation_ts>2017-09-25 16:45:00 -0700</creation_ts>
          <short_desc>Add support for &lt;link rel=preconnect&gt;</short_desc>
          <delta_ts>2019-04-18 09:43:57 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>DOM</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          <see_also>https://bugs.webkit.org/show_bug.cgi?id=177626</see_also>
          <bug_file_loc>https://w3c.github.io/resource-hints/#preconnect</bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>177455</dependson>
    
    <dependson>177673</dependson>
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Chris Dumez">cdumez</reporter>
          <assigned_to name="Chris Dumez">cdumez</assigned_to>
          <cc>achristensen</cc>
    
    <cc>buildbot</cc>
    
    <cc>cdumez</cc>
    
    <cc>commit-queue</cc>
    
    <cc>dbates</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>ggaren</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>japhet</cc>
    
    <cc>jlewis3</cc>
    
    <cc>kangil.han</cc>
    
    <cc>kondapallykalyan</cc>
    
    <cc>lforschler</cc>
    
    <cc>mkwst</cc>
    
    <cc>orzage</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1352491</commentid>
    <comment_count>0</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2017-09-25 16:45:00 -0700</bug_when>
    <thetext>Add support for &lt;link rel=preconnect&gt;:
- https://w3c.github.io/resource-hints/#preconnect</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1352494</commentid>
    <comment_count>1</comment_count>
      <attachid>321766</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2017-09-25 16:50:17 -0700</bug_when>
    <thetext>Created attachment 321766
WIP Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1352497</commentid>
    <comment_count>2</comment_count>
    <who name="Build Bot">buildbot</who>
    <bug_when>2017-09-25 16:55:17 -0700</bug_when>
    <thetext>Attachment 321766 did not pass style-queue:


ERROR: Source/WebCore/loader/LinkLoader.cpp:261:  One line control clauses should not use braces.  [whitespace/braces] [4]
ERROR: Source/WebKit/NetworkProcess/PreconnectTask.cpp:0:  No copyright message found.  You should have a line: &quot;Copyright [year] &lt;Copyright Owner&gt;&quot;  [legal/copyright] [5]
Total errors found: 2 in 32 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1352499</commentid>
    <comment_count>3</comment_count>
      <attachid>321768</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2017-09-25 16:57:10 -0700</bug_when>
    <thetext>Created attachment 321768
WIP Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1352501</commentid>
    <comment_count>4</comment_count>
    <who name="Build Bot">buildbot</who>
    <bug_when>2017-09-25 16:58:34 -0700</bug_when>
    <thetext>Attachment 321768 did not pass style-queue:


ERROR: Source/WebCore/loader/LinkLoader.cpp:262:  One line control clauses should not use braces.  [whitespace/braces] [4]
Total errors found: 1 in 33 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1352506</commentid>
    <comment_count>5</comment_count>
      <attachid>321770</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2017-09-25 17:02:44 -0700</bug_when>
    <thetext>Created attachment 321770
WIP Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1352516</commentid>
    <comment_count>6</comment_count>
    <who name="Build Bot">buildbot</who>
    <bug_when>2017-09-25 17:15:01 -0700</bug_when>
    <thetext>Attachment 321770 did not pass style-queue:


ERROR: Source/WebCore/loader/LinkLoader.cpp:262:  One line control clauses should not use braces.  [whitespace/braces] [4]
Total errors found: 1 in 33 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1352714</commentid>
    <comment_count>7</comment_count>
      <attachid>321833</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2017-09-26 10:14:30 -0700</bug_when>
    <thetext>Created attachment 321833
WIP Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1352719</commentid>
    <comment_count>8</comment_count>
      <attachid>321835</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2017-09-26 10:20:31 -0700</bug_when>
    <thetext>Created attachment 321835
WIP Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1352745</commentid>
    <comment_count>9</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2017-09-26 10:54:43 -0700</bug_when>
    <thetext>&lt;rdar://problem/33141380&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1352779</commentid>
    <comment_count>10</comment_count>
      <attachid>321853</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2017-09-26 12:02:24 -0700</bug_when>
    <thetext>Created attachment 321853
WIP Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1352800</commentid>
    <comment_count>11</comment_count>
      <attachid>321859</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2017-09-26 13:10:59 -0700</bug_when>
    <thetext>Created attachment 321859
WIP Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1352814</commentid>
    <comment_count>12</comment_count>
      <attachid>321861</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2017-09-26 13:39:48 -0700</bug_when>
    <thetext>Created attachment 321861
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1352830</commentid>
    <comment_count>13</comment_count>
      <attachid>321867</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2017-09-26 14:14:07 -0700</bug_when>
    <thetext>Created attachment 321867
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1352986</commentid>
    <comment_count>14</comment_count>
      <attachid>321867</attachid>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2017-09-26 19:11:13 -0700</bug_when>
    <thetext>Comment on attachment 321867
Patch

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

&gt; Source/WebKit/NetworkProcess/PreconnectTask.cpp:64
&gt; +    ASSERT(!m_completionHandler);

Isn&apos;t this built into the definition of a completion handler?

&gt; Source/WebKit/NetworkProcess/PreconnectTask.cpp:101
&gt; +    m_completionHandler(error);

Will this call didFinish and delete this?

&gt; Source/WebKit/NetworkProcess/PreconnectTask.cpp:118
&gt; +    didFinish(cannotShowURLError(ResourceRequest { }));

Can&apos;t we make an error that knows the URL we were given?

&gt; Source/WebKit/NetworkProcess/PreconnectTask.cpp:125
&gt; +    delete this;

PingLoad has a timeout to prevent memory leaks if the server never responds.  Do we want to do something similar here?  Do we want to just expand the PingLoad to handle this responsibility, too?  It seems like we could do without this class by just adding a flag to PingLoad.

&gt; LayoutTests/http/tests/preconnect/link-rel-preconnect-http.html:17
&gt; +setTimeout(finishJSTest, 1000);

Since we&apos;re waiting for a completion handler and writing to the console and checking that, couldn&apos;t we make an internals function that checks to see if the message has been written to the console?  I don&apos;t particularly like the tests that have to be slow enough to not time out on the bots</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1353132</commentid>
    <comment_count>15</comment_count>
      <attachid>321867</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2017-09-27 09:23:30 -0700</bug_when>
    <thetext>Comment on attachment 321867
Patch

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

&gt;&gt; Source/WebKit/NetworkProcess/PreconnectTask.cpp:64
&gt;&gt; +    ASSERT(!m_completionHandler);
&gt; 
&gt; Isn&apos;t this built into the definition of a completion handler?

You&apos;re right, I forgot. I&apos;ll drop this assertion.

&gt;&gt; Source/WebKit/NetworkProcess/PreconnectTask.cpp:101
&gt;&gt; +    m_completionHandler(error);
&gt; 
&gt; Will this call didFinish and delete this?

Oh, it should indeed call didFinish.

&gt;&gt; Source/WebKit/NetworkProcess/PreconnectTask.cpp:118
&gt;&gt; +    didFinish(cannotShowURLError(ResourceRequest { }));
&gt; 
&gt; Can&apos;t we make an error that knows the URL we were given?

We can but it means we&apos;ll need an extra member. I did not think it was worth it (WebCore already knows the URL since there is no redirect involved) but OK.

&gt;&gt; Source/WebKit/NetworkProcess/PreconnectTask.cpp:125
&gt;&gt; +    delete this;
&gt; 
&gt; PingLoad has a timeout to prevent memory leaks if the server never responds.  Do we want to do something similar here?  Do we want to just expand the PingLoad to handle this responsibility, too?  It seems like we could do without this class by just adding a flag to PingLoad.

I&apos;ll look into this.

&gt;&gt; LayoutTests/http/tests/preconnect/link-rel-preconnect-http.html:17
&gt;&gt; +setTimeout(finishJSTest, 1000);
&gt; 
&gt; Since we&apos;re waiting for a completion handler and writing to the console and checking that, couldn&apos;t we make an internals function that checks to see if the message has been written to the console?  I don&apos;t particularly like the tests that have to be slow enough to not time out on the bots

Good ideal. I know of other tests that have fairly large timeouts because they need to wait for a console message. Adding such functionality would help a lot.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1353133</commentid>
    <comment_count>16</comment_count>
      <attachid>321867</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2017-09-27 09:31:30 -0700</bug_when>
    <thetext>Comment on attachment 321867
Patch

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

&gt;&gt;&gt; Source/WebKit/NetworkProcess/PreconnectTask.cpp:118
&gt;&gt;&gt; +    didFinish(cannotShowURLError(ResourceRequest { }));
&gt;&gt; 
&gt;&gt; Can&apos;t we make an error that knows the URL we were given?
&gt; 
&gt; We can but it means we&apos;ll need an extra member. I did not think it was worth it (WebCore already knows the URL since there is no redirect involved) but OK.

Actually, I think I can get the URL from m_task.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1353169</commentid>
    <comment_count>17</comment_count>
      <attachid>321867</attachid>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2017-09-27 10:48:38 -0700</bug_when>
    <thetext>Comment on attachment 321867
Patch

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

&gt; Source/WebKit/UIProcess/API/Cocoa/WKProcessPoolPrivate.h:90
&gt; +- (void)_preconnectToServer:(NSURL *)serverURL WK_API_AVAILABLE(macosx(WK_MAC_TBA), ios(WK_IOS_TBA));

Are there any restrictions on what kind of URL you can provide? Does this have to be domain only? Or a valid dummy resource?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1353170</commentid>
    <comment_count>18</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2017-09-27 10:50:14 -0700</bug_when>
    <thetext>(In reply to Geoffrey Garen from comment #17)
&gt; Comment on attachment 321867 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=321867&amp;action=review
&gt; 
&gt; &gt; Source/WebKit/UIProcess/API/Cocoa/WKProcessPoolPrivate.h:90
&gt; &gt; +- (void)_preconnectToServer:(NSURL *)serverURL WK_API_AVAILABLE(macosx(WK_MAC_TBA), ios(WK_IOS_TBA));
&gt; 
&gt; Are there any restrictions on what kind of URL you can provide? Does this
&gt; have to be domain only? Or a valid dummy resource?

Can be any HTTP/HTTPS URL but technically with only need the origin (scheme + host + port).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1353621</commentid>
    <comment_count>19</comment_count>
      <attachid>322002</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2017-09-27 12:43:05 -0700</bug_when>
    <thetext>Created attachment 322002
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1353907</commentid>
    <comment_count>20</comment_count>
      <attachid>322002</attachid>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2017-09-27 16:05:29 -0700</bug_when>
    <thetext>Comment on attachment 322002
Patch

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

&gt; Source/WebKit/NetworkProcess/PreconnectTask.cpp:56
&gt; +    m_task = NetworkDataTask::create(NetworkSession::defaultSession(), *this, parameters);

Pass the SessionID as a parameter.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1353922</commentid>
    <comment_count>21</comment_count>
      <attachid>322040</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2017-09-27 16:30:09 -0700</bug_when>
    <thetext>Created attachment 322040
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1354022</commentid>
    <comment_count>22</comment_count>
      <attachid>322040</attachid>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2017-09-27 21:26:04 -0700</bug_when>
    <thetext>Comment on attachment 322040
Patch

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

&gt; Source/WebCore/bindings/scripts/IDLAttributes.json:189
&gt; -            &quot;contextsAllowed&quot;: [&quot;interface&quot;, &quot;dictionary&quot;, &quot;enum&quot;],
&gt; +            &quot;contextsAllowed&quot;: [&quot;interface&quot;, &quot;dictionary&quot;, &quot;enum&quot;, &quot;callback-function&quot;],

I don&apos;t know why you&apos;re adding this.

&gt; LayoutTests/platform/mac-wk2/TestExpectations:796
&gt; +# Link preconnect is disabled on ElCapitan because it does not use NETWORK_SESSION.

What about Sierra and iOS10 where the SPI doesn&apos;t exist?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1354025</commentid>
    <comment_count>23</comment_count>
      <attachid>322040</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2017-09-27 21:29:16 -0700</bug_when>
    <thetext>Comment on attachment 322040
Patch

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

&gt;&gt; Source/WebCore/bindings/scripts/IDLAttributes.json:189
&gt;&gt; +            &quot;contextsAllowed&quot;: [&quot;interface&quot;, &quot;dictionary&quot;, &quot;enum&quot;, &quot;callback-function&quot;],
&gt; 
&gt; I don&apos;t know why you&apos;re adding this.

This is because I added support for using ExportMacro IDL extended attribute on callback functions. The json needed to be updated to reflect that of the IDL parser would treat the IDL as invalid. I needed to use ExportMacro on StringCallback interface so that I could use it in Internals.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1354118</commentid>
    <comment_count>24</comment_count>
      <attachid>322086</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2017-09-28 09:16:23 -0700</bug_when>
    <thetext>Created attachment 322086
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1354119</commentid>
    <comment_count>25</comment_count>
      <attachid>322087</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2017-09-28 09:21:39 -0700</bug_when>
    <thetext>Created attachment 322087
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1354151</commentid>
    <comment_count>26</comment_count>
      <attachid>322087</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2017-09-28 10:05:32 -0700</bug_when>
    <thetext>Comment on attachment 322087
Patch

Clearing flags on attachment: 322087

Committed r222613: &lt;http://trac.webkit.org/changeset/222613&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1354152</commentid>
    <comment_count>27</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2017-09-28 10:05:35 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1354165</commentid>
    <comment_count>28</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2017-09-28 10:14:32 -0700</bug_when>
    <thetext>The commit-queue encountered the following flaky tests while processing attachment 322087:

media/modern-media-controls/seek-backward-support/seek-backward-support.html bug 174916 (authors: graouts@apple.com, mcatanzaro@igalia.com, and ryanhaddad@apple.com)
The commit-queue is continuing to process your patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1354613</commentid>
    <comment_count>29</comment_count>
    <who name="Matt Lewis">jlewis3</who>
    <bug_when>2017-09-29 11:31:42 -0700</bug_when>
    <thetext>The test http/tests/preconnect/link-rel-preconnect-https.html that was added with this change has been flaky from the time it has been added.

https://webkit-test-results.webkit.org/dashboards/flakiness_dashboard.html#showAllRuns=true&amp;tests=http%2Ftests%2Fpreconnect%2Flink-rel-preconnect-https.html

https://build.webkit.org/results/Apple%20iOS%2011%20Simulator%20Debug%20WK2%20(Tests)/r222650%20(142)/results.html
https://build.webkit.org/builders/Apple%20iOS%2011%20Simulator%20Debug%20WK2%20(Tests)/builds/142

diff:
--- /Volumes/Data/slave/ios-simulator-11-debug-tests-wk2/build/layout-test-results/http/tests/preconnect/link-rel-preconnect-https-expected.txt
+++ /Volumes/Data/slave/ios-simulator-11-debug-tests-wk2/build/layout-test-results/http/tests/preconnect/link-rel-preconnect-https-actual.txt
@@ -1,4 +1,4 @@
-CONSOLE MESSAGE: Failed to preconnect to https://localhost:8443/. Error: The certificate for this server is invalid. You might be connecting to a server that is pretending to be “localhost” which could put your confidential information at risk.
+CONSOLE MESSAGE: Successfuly preconnected to https://localhost:8443/
 Tests that Link&apos;s rel=preconnect works as expected over HTTPS.
 
 On success, you will see a series of &quot;PASS&quot; messages, followed by &quot;TEST COMPLETE&quot;.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1528480</commentid>
    <comment_count>30</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2019-04-18 09:43:57 -0700</bug_when>
    <thetext>*** Bug 155835 has been marked as a duplicate of this bug. ***</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>321766</attachid>
            <date>2017-09-25 16:50:17 -0700</date>
            <delta_ts>2017-09-25 16:57:10 -0700</delta_ts>
            <desc>WIP Patch</desc>
            <filename>177474_preconnect_support_wip.patch</filename>
            <type>text/plain</type>
            <size>38549</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvaHRtbC9saW5rLXJlbC1wcmVjb25uZWN0LWV4
cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvaHRtbC9saW5rLXJlbC1wcmVjb25uZWN0LWV4
cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uYzVhM2Y1
ZDcxZWIKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2h0bWwvbGluay1yZWwt
cHJlY29ubmVjdC1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwxMiBAQAorVGVzdHMgdGhhdCBMaW5r
J3MgcmVsPXByZWNvbm5lY3QgaXMgcmVwb3J0ZWQgYXMgc3VwcG9ydGVkLgorCitPbiBzdWNjZXNz
LCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAi
VEVTVCBDT01QTEVURSIuCisKKworUEFTUyB0ZXN0TGluay5yZWxMaXN0Lmxlbmd0aCBpcyAxCitQ
QVNTIHRlc3RMaW5rLnJlbExpc3RbMF0gaXMgInByZWNvbm5lY3QiCitQQVNTIHRlc3RMaW5rLnJl
bExpc3Quc3VwcG9ydHMoJ3ByZWNvbm5lY3QnKSBpcyB0cnVlCitQQVNTIHN1Y2Nlc3NmdWxseVBh
cnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
ZmFzdC9odG1sL2xpbmstcmVsLXByZWNvbm5lY3QuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvaHRt
bC9saW5rLXJlbC1wcmVjb25uZWN0Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAuLjJkMTQ2MWFmYmMzCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFz
dC9odG1sL2xpbmstcmVsLXByZWNvbm5lY3QuaHRtbApAQCAtMCwwICsxLDE3IEBACis8IURPQ1RZ
UEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+Cis8bGluayBpZD0idGVzdExpbmsiIHJlbD0icHJlY29u
bmVjdCIgaHJlZj0iaHR0cDovL2xvY2FsaG9zdDo4MDAwIj4KKzxzY3JpcHQgc3JjPSIuLi8uLi9y
ZXNvdXJjZXMvanMtdGVzdC5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxzY3JpcHQ+
CitkZXNjcmlwdGlvbigiVGVzdHMgdGhhdCBMaW5rJ3MgcmVsPXByZWNvbm5lY3QgaXMgcmVwb3J0
ZWQgYXMgc3VwcG9ydGVkLiIpOworCitjb25zdCB0ZXN0TGluayA9IGRvY3VtZW50LmdldEVsZW1l
bnRCeUlkKCJ0ZXN0TGluayIpOworc2hvdWxkQmUoInRlc3RMaW5rLnJlbExpc3QubGVuZ3RoIiwg
IjEiKTsKK3Nob3VsZEJlRXF1YWxUb1N0cmluZygidGVzdExpbmsucmVsTGlzdFswXSIsICJwcmVj
b25uZWN0Iik7CitzaG91bGRCZVRydWUoInRlc3RMaW5rLnJlbExpc3Quc3VwcG9ydHMoJ3ByZWNv
bm5lY3QnKSIpOworPC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9wbGF0Zm9ybS9tYWMtd2sxL1Rlc3RFeHBlY3RhdGlvbnMgYi9MYXlvdXRUZXN0cy9w
bGF0Zm9ybS9tYWMtd2sxL1Rlc3RFeHBlY3RhdGlvbnMKaW5kZXggODAzNzMzMzRmZWYuLmJhN2E0
YjI3ZWVhIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMtd2sxL1Rlc3RFeHBl
Y3RhdGlvbnMKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjLXdrMS9UZXN0RXhwZWN0YXRp
b25zCkBAIC0zOTksNiArMzk5LDkgQEAgZmFzdC9pbWFnZXMvbG93LW1lbW9yeS1kZWNvZGUuaHRt
bCBbIFNraXAgXQogCiBodHRwL3Rlc3RzL3dvcmtlcnMvc2VydmljZSBbIFNraXAgXQogCisjIExp
bmsgcHJlY29ubmVjdCBpcyBub3QgZW5hYmxlZCBvbiBXSzEuCitmYXN0L2h0bWwvbGluay1yZWwt
cHJlY29ubmVjdC5odG1sIFsgRmFpbHVyZSBdCisKIHdlYmtpdC5vcmcvYi8xNzUzNDUgZmFzdC9p
bWFnZXMvYW5pbWF0ZWQtZ2lmLXNjcm9sbGluZy1jcmFzaC5odG1sIFsgUGFzcyBUaW1lb3V0IF0K
IAogd2Via2l0Lm9yZy9iLzE3NTU1NCBbIFNpZXJyYSBdIGZ1bGxzY3JlZW4vZnVsbC1zY3JlZW4t
aWZyYW1lLWxlZ2FjeS5odG1sIFsgUGFzcyBGYWlsdXJlIF0KZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL3BsYXRmb3JtL21hYy13azIvVGVzdEV4cGVjdGF0aW9ucyBiL0xheW91dFRlc3RzL3BsYXRm
b3JtL21hYy13azIvVGVzdEV4cGVjdGF0aW9ucwppbmRleCAwN2FiNDY4ZDEzZC4uNzI2MThhMzE0
OGUgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy13azIvVGVzdEV4cGVjdGF0
aW9ucworKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMtd2syL1Rlc3RFeHBlY3RhdGlvbnMK
QEAgLTcyOCw2ICs3MjgsOSBAQCB3ZWJraXQub3JnL2IvMTcyODM0IFsgRWxDYXBpdGFuIF0gaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9JbmRleGVkREIvaWRibwogWyBFbENhcGl0YW4g
XSBpbXBvcnRlZC9ibGluay9mYXN0L2JlYWNvbi8gWyBTa2lwIF0KIFsgRWxDYXBpdGFuIF0gaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9iZWFjb24vIFsgU2tpcCBdCiAKKyMgUmVxdWly
ZXMgTkVUV09SS19TRVNTSU9OIHRvIGJlIGVuYWJsZWQuCitbIEVsQ2FwaXRhbiBdIGZhc3QvaHRt
bC9saW5rLXJlbC1wcmVjb25uZWN0Lmh0bWwgWyBGYWlsdXJlIF0KKwogd2Via2l0Lm9yZy9iLzE3
MjIwMSB3ZWJhdWRpby9zaWxlbnQtYXVkaW8taW50ZXJydXB0ZWQtaW4tYmFja2dyb3VuZC5odG1s
IFsgUGFzcyBUaW1lb3V0IF0KIAogd2Via2l0Lm9yZy9iLzE2Nzc1NyB3b3JrZXJzL2JvbWIuaHRt
bCBbIFBhc3MgVGltZW91dCBdCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL3Nw
aS9jZi9DRk5ldHdvcmtTUEkuaCBiL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvc3BpL2NmL0NGTmV0
d29ya1NQSS5oCmluZGV4IDNlNTg0M2VhZDViLi42ODFkYmJiM2I4MCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvUEFML3BhbC9zcGkvY2YvQ0ZOZXR3b3JrU1BJLmgKKysrIGIvU291cmNlL1dl
YkNvcmUvUEFML3BhbC9zcGkvY2YvQ0ZOZXR3b3JrU1BJLmgKQEAgLTExMyw2ICsxMTMsMTIgQEAg
dHlwZWRlZiB2b2lkICheQ0ZDYWNoZWRVUkxSZXNwb25zZUNhbGxCYWNrQmxvY2spKENGQ2FjaGVk
VVJMUmVzcG9uc2VSZWYpOwogLSAoTlNEaWN0aW9uYXJ5ICopX3RpbWluZ0RhdGE7CiBAZW5kCiAK
KyNpZiAoUExBVEZPUk0oTUFDKSAmJiBfX01BQ19PU19YX1ZFUlNJT05fTUlOX1JFUVVJUkVEID49
IDEwMTMwMCkgfHwgKFBMQVRGT1JNKElPUykgJiYgX19JUEhPTkVfT1NfVkVSU0lPTl9NSU5fUkVR
VUlSRUQgPj0gMTEwMDAwKQorQGludGVyZmFjZSBOU1VSTFNlc3Npb25UYXNrIChSZXNvdXJjZUhp
bnRzKQorQHByb3BlcnR5IChub25hdG9taWMsIGFzc2lnbikgQk9PTCBfcHJlY29ubmVjdDsKK0Bl
bmQKKyNlbmRpZgorCiBAaW50ZXJmYWNlIE5TSFRUUENvb2tpZSAoKQogLSAoQ0ZIVFRQQ29va2ll
UmVmKV9DRkhUVFBDb29raWU7CiArIChDRkFycmF5UmVmIF9fbnVsbGFibGUpX25zMmNmQ29va2ll
czooTlNBcnJheSAqIF9fbnVsbGFibGUpbnNDb29raWVzIENGX1JFVFVSTlNfUkVUQUlORUQ7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0RPTVRva2VuTGlzdC5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9odG1sL0RPTVRva2VuTGlzdC5jcHAKaW5kZXggMjU1NWI2ODQ0NmIuLjdjYWIxYjcz
NmEwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0RPTVRva2VuTGlzdC5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvaHRtbC9ET01Ub2tlbkxpc3QuY3BwCkBAIC0zNSw3ICszNSw3IEBA
CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotRE9NVG9rZW5MaXN0OjpET01Ub2tlbkxpc3QoRWxl
bWVudCYgZWxlbWVudCwgY29uc3QgUXVhbGlmaWVkTmFtZSYgYXR0cmlidXRlTmFtZSwgV1RGOjpG
dW5jdGlvbjxib29sKFN0cmluZ1ZpZXcpPiYmIGlzU3VwcG9ydGVkVG9rZW4pCitET01Ub2tlbkxp
c3Q6OkRPTVRva2VuTGlzdChFbGVtZW50JiBlbGVtZW50LCBjb25zdCBRdWFsaWZpZWROYW1lJiBh
dHRyaWJ1dGVOYW1lLCBJc1N1cHBvcnRlZFRva2VuRnVuY3Rpb24mJiBpc1N1cHBvcnRlZFRva2Vu
KQogICAgIDogbV9lbGVtZW50KGVsZW1lbnQpCiAgICAgLCBtX2F0dHJpYnV0ZU5hbWUoYXR0cmli
dXRlTmFtZSkKICAgICAsIG1faXNTdXBwb3J0ZWRUb2tlbihXVEZNb3ZlKGlzU3VwcG9ydGVkVG9r
ZW4pKQpAQCAtMTkxLDcgKzE5MSw3IEBAIEV4Y2VwdGlvbk9yPGJvb2w+IERPTVRva2VuTGlzdDo6
c3VwcG9ydHMoU3RyaW5nVmlldyB0b2tlbikKIHsKICAgICBpZiAoIW1faXNTdXBwb3J0ZWRUb2tl
bikKICAgICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7IFR5cGVFcnJvciB9OwotICAgIHJldHVybiBt
X2lzU3VwcG9ydGVkVG9rZW4odG9rZW4pOworICAgIHJldHVybiBtX2lzU3VwcG9ydGVkVG9rZW4o
bV9lbGVtZW50LmRvY3VtZW50KCksIHRva2VuKTsKIH0KIAogLy8gaHR0cHM6Ly9kb20uc3BlYy53
aGF0d2cub3JnLyNkb20tZG9tdG9rZW5saXN0LXZhbHVlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9odG1sL0RPTVRva2VuTGlzdC5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9ET01Ub2tlbkxp
c3QuaAppbmRleCAyMWZiNDZmNDYxMi4uZDYwZDE3Y2M5MTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvRE9NVG9rZW5MaXN0LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9ET01U
b2tlbkxpc3QuaApAQCAtMzIsNyArMzIsOCBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiBjbGFzcyBE
T01Ub2tlbkxpc3QgewogICAgIFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOwogcHVibGljOgotICAg
IERPTVRva2VuTGlzdChFbGVtZW50JiwgY29uc3QgUXVhbGlmaWVkTmFtZSYgYXR0cmlidXRlTmFt
ZSwgV1RGOjpGdW5jdGlvbjxib29sKFN0cmluZ1ZpZXcpPiYmIGlzU3VwcG9ydGVkVG9rZW4gPSB7
IH0pOworICAgIHVzaW5nIElzU3VwcG9ydGVkVG9rZW5GdW5jdGlvbiA9IFdURjo6RnVuY3Rpb248
Ym9vbChEb2N1bWVudCYsIFN0cmluZ1ZpZXcpPjsKKyAgICBET01Ub2tlbkxpc3QoRWxlbWVudCYs
IGNvbnN0IFF1YWxpZmllZE5hbWUmIGF0dHJpYnV0ZU5hbWUsIElzU3VwcG9ydGVkVG9rZW5GdW5j
dGlvbiYmIGlzU3VwcG9ydGVkVG9rZW4gPSB7IH0pOwogCiAgICAgdm9pZCBhc3NvY2lhdGVkQXR0
cmlidXRlVmFsdWVDaGFuZ2VkKGNvbnN0IEF0b21pY1N0cmluZyYpOwogCkBAIC03Myw3ICs3NCw3
IEBAIHByaXZhdGU6CiAgICAgYm9vbCBtX2luVXBkYXRlQXNzb2NpYXRlZEF0dHJpYnV0ZUZyb21U
b2tlbnMgeyBmYWxzZSB9OwogICAgIGJvb2wgbV90b2tlbnNOZWVkVXBkYXRpbmcgeyB0cnVlIH07
CiAgICAgVmVjdG9yPEF0b21pY1N0cmluZz4gbV90b2tlbnM7Ci0gICAgV1RGOjpGdW5jdGlvbjxi
b29sKFN0cmluZ1ZpZXcpPiBtX2lzU3VwcG9ydGVkVG9rZW47CisgICAgSXNTdXBwb3J0ZWRUb2tl
bkZ1bmN0aW9uIG1faXNTdXBwb3J0ZWRUb2tlbjsKIH07CiAKIGlubGluZSB1bnNpZ25lZCBET01U
b2tlbkxpc3Q6Omxlbmd0aCgpIGNvbnN0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1s
L0hUTUxBbmNob3JFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEFuY2hvckVs
ZW1lbnQuY3BwCmluZGV4IGNiMWYxYzlmNTQ2Li40ODgxYzNkOWU4YSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvaHRtbC9IVE1MQW5jaG9yRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvaHRtbC9IVE1MQW5jaG9yRWxlbWVudC5jcHAKQEAgLTMwNyw3ICszMDcsNyBAQCBib29sIEhU
TUxBbmNob3JFbGVtZW50OjpoYXNSZWwoUmVsYXRpb24gcmVsYXRpb24pIGNvbnN0CiBET01Ub2tl
bkxpc3QmIEhUTUxBbmNob3JFbGVtZW50OjpyZWxMaXN0KCkKIHsKICAgICBpZiAoIW1fcmVsTGlz
dCkgCi0gICAgICAgIG1fcmVsTGlzdCA9IHN0ZDo6bWFrZV91bmlxdWU8RE9NVG9rZW5MaXN0Pigq
dGhpcywgSFRNTE5hbWVzOjpyZWxBdHRyLCBbXShTdHJpbmdWaWV3IHRva2VuKSB7CisgICAgICAg
IG1fcmVsTGlzdCA9IHN0ZDo6bWFrZV91bmlxdWU8RE9NVG9rZW5MaXN0PigqdGhpcywgSFRNTE5h
bWVzOjpyZWxBdHRyLCBbXShEb2N1bWVudCYsIFN0cmluZ1ZpZXcgdG9rZW4pIHsKICAgICAgICAg
ICAgIHJldHVybiBlcXVhbElnbm9yaW5nQVNDSUlDYXNlKHRva2VuLCAibm9yZWZlcnJlciIpIHx8
IGVxdWFsSWdub3JpbmdBU0NJSUNhc2UodG9rZW4sICJub29wZW5lciIpOwogICAgICAgICB9KTsK
ICAgICByZXR1cm4gKm1fcmVsTGlzdDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwv
SFRNTElGcmFtZUVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MSUZyYW1lRWxl
bWVudC5jcHAKaW5kZXggZDMwMzIyZGMwYzQuLjIyM2UzYjAzMzFhIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL0hUTUxJRnJhbWVFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9odG1sL0hUTUxJRnJhbWVFbGVtZW50LmNwcApAQCAtNTEsNyArNTEsNyBAQCBSZWY8SFRNTElG
cmFtZUVsZW1lbnQ+IEhUTUxJRnJhbWVFbGVtZW50OjpjcmVhdGUoY29uc3QgUXVhbGlmaWVkTmFt
ZSYgdGFnTmFtZSwgRAogRE9NVG9rZW5MaXN0JiBIVE1MSUZyYW1lRWxlbWVudDo6c2FuZGJveCgp
CiB7CiAgICAgaWYgKCFtX3NhbmRib3gpCi0gICAgICAgIG1fc2FuZGJveCA9IHN0ZDo6bWFrZV91
bmlxdWU8RE9NVG9rZW5MaXN0PigqdGhpcywgc2FuZGJveEF0dHIsIFtdKFN0cmluZ1ZpZXcgdG9r
ZW4pIHsKKyAgICAgICAgbV9zYW5kYm94ID0gc3RkOjptYWtlX3VuaXF1ZTxET01Ub2tlbkxpc3Q+
KCp0aGlzLCBzYW5kYm94QXR0ciwgW10oRG9jdW1lbnQmLCBTdHJpbmdWaWV3IHRva2VuKSB7CiAg
ICAgICAgICAgICByZXR1cm4gU2VjdXJpdHlDb250ZXh0Ojppc1N1cHBvcnRlZFNhbmRib3hQb2xp
Y3kodG9rZW4pOwogICAgICAgICB9KTsKICAgICByZXR1cm4gKm1fc2FuZGJveDsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTExpbmtFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJD
b3JlL2h0bWwvSFRNTExpbmtFbGVtZW50LmNwcAppbmRleCBlMDFiNmUzYjRjOC4uNDEwNzZlZjk1
YjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTExpbmtFbGVtZW50LmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxMaW5rRWxlbWVudC5jcHAKQEAgLTQ5OCw4ICs0
OTgsOCBAQCB2b2lkIEhUTUxMaW5rRWxlbWVudDo6ZGlzcGF0Y2hQZW5kaW5nRXZlbnQoTGlua0V2
ZW50U2VuZGVyKiBldmVudFNlbmRlcikKIERPTVRva2VuTGlzdCYgSFRNTExpbmtFbGVtZW50Ojpy
ZWxMaXN0KCkKIHsKICAgICBpZiAoIW1fcmVsTGlzdCkgCi0gICAgICAgIG1fcmVsTGlzdCA9IHN0
ZDo6bWFrZV91bmlxdWU8RE9NVG9rZW5MaXN0PigqdGhpcywgSFRNTE5hbWVzOjpyZWxBdHRyLCBb
XShTdHJpbmdWaWV3IHRva2VuKSB7Ci0gICAgICAgICAgICByZXR1cm4gTGlua1JlbEF0dHJpYnV0
ZTo6aXNTdXBwb3J0ZWQodG9rZW4pOworICAgICAgICBtX3JlbExpc3QgPSBzdGQ6Om1ha2VfdW5p
cXVlPERPTVRva2VuTGlzdD4oKnRoaXMsIEhUTUxOYW1lczo6cmVsQXR0ciwgW10oRG9jdW1lbnQm
IGRvY3VtZW50LCBTdHJpbmdWaWV3IHRva2VuKSB7CisgICAgICAgICAgICByZXR1cm4gTGlua1Jl
bEF0dHJpYnV0ZTo6aXNTdXBwb3J0ZWQoZG9jdW1lbnQsIHRva2VuKTsKICAgICAgICAgfSk7CiAg
ICAgcmV0dXJuICptX3JlbExpc3Q7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1s
L0xpbmtSZWxBdHRyaWJ1dGUuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9MaW5rUmVsQXR0cmli
dXRlLmNwcAppbmRleCA4NjZhZmQ4ZTVlYi4uMGIwYzU1ZGYyZTggMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvTGlua1JlbEF0dHJpYnV0ZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
aHRtbC9MaW5rUmVsQXR0cmlidXRlLmNwcApAQCAtMzIsOCArMzIsMTAgQEAKICNpbmNsdWRlICJj
b25maWcuaCIKICNpbmNsdWRlICJMaW5rUmVsQXR0cmlidXRlLmgiCiAKKyNpbmNsdWRlICJEb2N1
bWVudC5oIgogI2luY2x1ZGUgIkxpbmtJY29uVHlwZS5oIgogI2luY2x1ZGUgIlJ1bnRpbWVFbmFi
bGVkRmVhdHVyZXMuaCIKKyNpbmNsdWRlICJTZXR0aW5ncy5oIgogI2luY2x1ZGUgPHd0Zi90ZXh0
L1N0cmluZ1ZpZXcuaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KIApAQCAtNTYs
NiArNTgsOCBAQCBMaW5rUmVsQXR0cmlidXRlOjpMaW5rUmVsQXR0cmlidXRlKGNvbnN0IFN0cmlu
ZyYgcmVsKQogICAgICAgICBpY29uVHlwZSA9IExpbmtJY29uVHlwZTo6VG91Y2hQcmVjb21wb3Nl
ZEljb247CiAgICAgZWxzZSBpZiAoZXF1YWxMZXR0ZXJzSWdub3JpbmdBU0NJSUNhc2UocmVsLCAi
ZG5zLXByZWZldGNoIikpCiAgICAgICAgIGlzRE5TUHJlZmV0Y2ggPSB0cnVlOworICAgIGVsc2Ug
aWYgKGVxdWFsTGV0dGVyc0lnbm9yaW5nQVNDSUlDYXNlKHJlbCwgInByZWNvbm5lY3QiKSkKKyAg
ICAgICAgaXNMaW5rUHJlY29ubmVjdCA9IHRydWU7CiAgICAgZWxzZSBpZiAoUnVudGltZUVuYWJs
ZWRGZWF0dXJlczo6c2hhcmVkRmVhdHVyZXMoKS5saW5rUHJlbG9hZEVuYWJsZWQoKSAmJiBlcXVh
bExldHRlcnNJZ25vcmluZ0FTQ0lJQ2FzZShyZWwsICJwcmVsb2FkIikpCiAgICAgICAgIGlzTGlu
a1ByZWxvYWQgPSB0cnVlOwogICAgIGVsc2UgaWYgKGVxdWFsTGV0dGVyc0lnbm9yaW5nQVNDSUlD
YXNlKHJlbCwgImFsdGVybmF0ZSBzdHlsZXNoZWV0IikgfHwgZXF1YWxMZXR0ZXJzSWdub3JpbmdB
U0NJSUNhc2UocmVsLCAic3R5bGVzaGVldCBhbHRlcm5hdGUiKSkgewpAQCAtODcsNyArOTEsNyBA
QCBMaW5rUmVsQXR0cmlidXRlOjpMaW5rUmVsQXR0cmlidXRlKGNvbnN0IFN0cmluZyYgcmVsKQog
fQogCiAvLyBodHRwczovL2h0bWwuc3BlYy53aGF0d2cub3JnLyNsaW5rVHlwZXMKLWJvb2wgTGlu
a1JlbEF0dHJpYnV0ZTo6aXNTdXBwb3J0ZWQoU3RyaW5nVmlldyBhdHRyaWJ1dGUpCitib29sIExp
bmtSZWxBdHRyaWJ1dGU6OmlzU3VwcG9ydGVkKERvY3VtZW50JiBkb2N1bWVudCwgU3RyaW5nVmll
dyBhdHRyaWJ1dGUpCiB7CiAgICAgc3RhdGljIGNvbnN0IGNoYXIqIGNvbnN0IHN1cHBvcnRlZEF0
dHJpYnV0ZXNbXSA9IHsKICAgICAgICAgImFsdGVybmF0ZSIsICJkbnMtcHJlZmV0Y2giLCAiaWNv
biIsICJzdHlsZXNoZWV0IiwgImFwcGxlLXRvdWNoLWljb24iLCAiYXBwbGUtdG91Y2gtaWNvbi1w
cmVjb21wb3NlZCIsCkBAIC0xMDEsNiArMTA1LDkgQEAgYm9vbCBMaW5rUmVsQXR0cmlidXRlOjpp
c1N1cHBvcnRlZChTdHJpbmdWaWV3IGF0dHJpYnV0ZSkKICAgICAgICAgICAgIHJldHVybiB0cnVl
OwogICAgIH0KIAorICAgIGlmIChkb2N1bWVudC5zZXR0aW5ncygpLmxpbmtQcmVjb25uZWN0RW5h
YmxlZCgpICYmIGVxdWFsSWdub3JpbmdBU0NJSUNhc2UoYXR0cmlidXRlLCAicHJlY29ubmVjdCIp
KQorICAgICAgICByZXR1cm4gdHJ1ZTsKKwogICAgIGlmIChSdW50aW1lRW5hYmxlZEZlYXR1cmVz
OjpzaGFyZWRGZWF0dXJlcygpLmxpbmtQcmVsb2FkRW5hYmxlZCgpICYmIGVxdWFsSWdub3JpbmdB
U0NJSUNhc2UoYXR0cmlidXRlLCAicHJlbG9hZCIpKQogICAgICAgICByZXR1cm4gdHJ1ZTsKIApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9MaW5rUmVsQXR0cmlidXRlLmggYi9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL0xpbmtSZWxBdHRyaWJ1dGUuaAppbmRleCA4ZTI2NjkyN2VkZC4uZjBi
MDllYjkyMTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvTGlua1JlbEF0dHJpYnV0
ZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvTGlua1JlbEF0dHJpYnV0ZS5oCkBAIC0zNyw2
ICszNyw3IEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAorY2xhc3MgRG9jdW1lbnQ7CiBlbnVt
IGNsYXNzIExpbmtJY29uVHlwZTsKIAogc3RydWN0IExpbmtSZWxBdHRyaWJ1dGUgewpAQCAtNDUs
NiArNDYsNyBAQCBzdHJ1Y3QgTGlua1JlbEF0dHJpYnV0ZSB7CiAgICAgYm9vbCBpc0FsdGVybmF0
ZSB7IGZhbHNlIH07CiAgICAgYm9vbCBpc0ROU1ByZWZldGNoIHsgZmFsc2UgfTsKICAgICBib29s
IGlzTGlua1ByZWxvYWQgeyBmYWxzZSB9OworICAgIGJvb2wgaXNMaW5rUHJlY29ubmVjdCB7IGZh
bHNlIH07CiAjaWYgRU5BQkxFKExJTktfUFJFRkVUQ0gpCiAgICAgYm9vbCBpc0xpbmtQcmVmZXRj
aCB7IGZhbHNlIH07CiAgICAgYm9vbCBpc0xpbmtTdWJyZXNvdXJjZSB7IGZhbHNlIH07CkBAIC01
Myw3ICs1NSw3IEBAIHN0cnVjdCBMaW5rUmVsQXR0cmlidXRlIHsKICAgICBMaW5rUmVsQXR0cmli
dXRlKCk7CiAgICAgZXhwbGljaXQgTGlua1JlbEF0dHJpYnV0ZShjb25zdCBTdHJpbmcmKTsKIAot
ICAgIHN0YXRpYyBib29sIGlzU3VwcG9ydGVkKFN0cmluZ1ZpZXcpOworICAgIHN0YXRpYyBib29s
IGlzU3VwcG9ydGVkKERvY3VtZW50JiwgU3RyaW5nVmlldyk7CiB9OwogCiB9CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvTGlua0xvYWRlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9s
b2FkZXIvTGlua0xvYWRlci5jcHAKaW5kZXggMmIxNjEzMjY0MzAuLmRmYjI5YjI2MTExIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvTGlua0xvYWRlci5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvbG9hZGVyL0xpbmtMb2FkZXIuY3BwCkBAIC00Nyw4ICs0NywxMCBAQAogI2luY2x1
ZGUgIkxpbmtIZWFkZXIuaCIKICNpbmNsdWRlICJMaW5rUHJlbG9hZFJlc291cmNlQ2xpZW50cy5o
IgogI2luY2x1ZGUgIkxpbmtSZWxBdHRyaWJ1dGUuaCIKKyNpbmNsdWRlICJMb2FkZXJTdHJhdGVn
eS5oIgogI2luY2x1ZGUgIk1JTUVUeXBlUmVnaXN0cnkuaCIKICNpbmNsdWRlICJNZWRpYVF1ZXJ5
RXZhbHVhdG9yLmgiCisjaW5jbHVkZSAiUGxhdGZvcm1TdHJhdGVnaWVzLmgiCiAjaW5jbHVkZSAi
UnVudGltZUVuYWJsZWRGZWF0dXJlcy5oIgogI2luY2x1ZGUgIlNldHRpbmdzLmgiCiAjaW5jbHVk
ZSAiU3R5bGVSZXNvbHZlci5oIgpAQCAtMjUwLDYgKzI1MiwxNyBAQCBib29sIExpbmtMb2FkZXI6
OmxvYWRMaW5rKGNvbnN0IExpbmtSZWxBdHRyaWJ1dGUmIHJlbEF0dHJpYnV0ZSwgY29uc3QgVVJM
JiBocmVmLAogICAgICAgICAgICAgZG9jdW1lbnQuZnJhbWUoKS0+bG9hZGVyKCkuY2xpZW50KCku
cHJlZmV0Y2hETlMoaHJlZi5ob3N0KCkpOwogICAgIH0KIAorICAgIC8vIEZJWE1FOiBXZSdyZSBz
dXBwb3NlZCB0byBkbyBjcm9zcyBvcmlnaW4gY2hlY2tzLgorICAgIGlmIChkb2N1bWVudC5zZXR0
aW5ncygpLmxpbmtQcmVjb25uZWN0RW5hYmxlZCgpICYmIHJlbEF0dHJpYnV0ZS5pc0xpbmtQcmVj
b25uZWN0ICYmIGhyZWYuaXNWYWxpZCgpICYmICFocmVmLmlzRW1wdHkoKSkgeworICAgICAgICBp
ZiAoZXF1YWxJZ25vcmluZ0FTQ0lJQ2FzZShjcm9zc09yaWdpbiwgImFub255bW91cyIpKSB7Cisg
ICAgICAgICAgICBhdXRvIGhyZWZPcmlnaW4gPSBTZWN1cml0eU9yaWdpbjo6Y3JlYXRlKGhyZWYp
OworICAgICAgICAgICAgaWYgKGRvY3VtZW50LnNlY3VyaXR5T3JpZ2luKCkuY2FuQWNjZXNzKGhy
ZWZPcmlnaW4pKSB7CisgICAgICAgICAgICAgICAgLy8gRklYTUU6IERvIG5vdCBhbGxvdyBzdG9y
ZWQgY3JlZGVudGlhbHMKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICBwbGF0Zm9y
bVN0cmF0ZWdpZXMoKS0+bG9hZGVyU3RyYXRlZ3koKS0+cHJlY29ubmVjdFRvKGhyZWYpOworICAg
IH0KKwogICAgIGlmIChtX2NsaWVudC5zaG91bGRMb2FkTGluaygpKSB7CiAgICAgICAgIGF1dG8g
cmVzb3VyY2VDbGllbnQgPSBwcmVsb2FkSWZOZWVkZWQocmVsQXR0cmlidXRlLCBocmVmLCBkb2N1
bWVudCwgYXMsIG1lZGlhLCBtaW1lVHlwZSwgY3Jvc3NPcmlnaW4sIHRoaXMpOwogICAgICAgICBp
ZiAocmVzb3VyY2VDbGllbnQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvTG9h
ZGVyU3RyYXRlZ3kuaCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9Mb2FkZXJTdHJhdGVneS5oCmlu
ZGV4IDUzZjNiZmIyNjY2Li43ZjVjMmVhMTQ4NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
bG9hZGVyL0xvYWRlclN0cmF0ZWd5LmgKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0xvYWRl
clN0cmF0ZWd5LmgKQEAgLTY3LDYgKzY3LDggQEAgcHVibGljOgogICAgIHVzaW5nIFBpbmdMb2Fk
Q29tcGxldGlvbkhhbmRsZXIgPSBXVEY6OkZ1bmN0aW9uPHZvaWQoY29uc3QgUmVzb3VyY2VFcnJv
ciYpPjsKICAgICB2aXJ0dWFsIHZvaWQgc3RhcnRQaW5nTG9hZChGcmFtZSYsIFJlc291cmNlUmVx
dWVzdCYsIGNvbnN0IEhUVFBIZWFkZXJNYXAmIG9yaWdpbmFsUmVxdWVzdEhlYWRlcnMsIGNvbnN0
IEZldGNoT3B0aW9ucyYsIFBpbmdMb2FkQ29tcGxldGlvbkhhbmRsZXImJiA9IHsgfSkgPSAwOwog
CisgICAgdmlydHVhbCB2b2lkIHByZWNvbm5lY3RUbyhjb25zdCBVUkwmKSA9IDA7CisKICAgICB2
aXJ0dWFsIHZvaWQgc3RvcmVEZXJpdmVkRGF0YVRvQ2FjaGUoY29uc3QgU0hBMTo6RGlnZXN0JiBi
b2R5S2V5LCBjb25zdCBTdHJpbmcmIHR5cGUsIGNvbnN0IFN0cmluZyYgcGFydGl0aW9uLCBXZWJD
b3JlOjpTaGFyZWRCdWZmZXImKSA9IDA7CiAKICAgICB2aXJ0dWFsIHZvaWQgc2V0Q2FwdHVyZUV4
dHJhTmV0d29ya0xvYWRNZXRyaWNzRW5hYmxlZChib29sKSA9IDA7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9wYWdlL1NldHRpbmdzLmluIGIvU291cmNlL1dlYkNvcmUvcGFnZS9TZXR0aW5n
cy5pbgppbmRleCA5Mjc3YzBhN2NlNS4uZDgxNTI2YWFjYzEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3BhZ2UvU2V0dGluZ3MuaW4KKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9TZXR0aW5n
cy5pbgpAQCAtMjkxLDYgKzI5MSw4IEBAIGxhbmdBdHRyaWJ1dGVBd2FyZUZvcm1Db250cm9sVUlF
bmFibGVkIGluaXRpYWw9ZmFsc2UKIAogc3VicmVzb3VyY2VJbnRlZ3JpdHlFbmFibGVkIGluaXRp
YWw9dHJ1ZQogCitsaW5rUHJlY29ubmVjdEVuYWJsZWQgaW5pdGlhbD1mYWxzZQorCiBiZWFjb25B
UElFbmFibGVkIGluaXRpYWw9ZmFsc2UKIAogY29uc3RhbnRQcm9wZXJ0aWVzRW5hYmxlZCBpbml0
aWFsPWZhbHNlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdv
cmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmNwcCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nl
c3MvTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuY3BwCmluZGV4IDcwM2Q1OTFjMjRiLi4y
OTllNDE3OTQ5MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3
b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5jcHAKKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3Jr
UHJvY2Vzcy9OZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5jcHAKQEAgLTU2LDYgKzU2LDcg
QEAKIAogI2lmIFVTRShORVRXT1JLX1NFU1NJT04pCiAjaW5jbHVkZSAiUGluZ0xvYWQuaCIKKyNp
bmNsdWRlICJQcmVjb25uZWN0VGFzay5oIgogI2VuZGlmCiAKIHVzaW5nIG5hbWVzcGFjZSBXZWJD
b3JlOwpAQCAtMjg3LDYgKzI4OCwxNSBAQCB2b2lkIE5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9j
ZXNzOjpwcmVmZXRjaEROUyhjb25zdCBTdHJpbmcmIGhvc3RuYW1lKQogICAgIE5ldHdvcmtQcm9j
ZXNzOjpzaW5nbGV0b24oKS5wcmVmZXRjaEROUyhob3N0bmFtZSk7CiB9CiAKK3ZvaWQgTmV0d29y
a0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6OnByZWNvbm5lY3RUbyhjb25zdCBVUkwmIHVybCkKK3sK
KyNpZiBFTkFCTEUoTkVUV09SS19TRVNTSU9OKQorICAgIG5ldyBQcmVjb25uZWN0VGFzayh1cmwp
OworI2Vsc2UKKyAgICBVTlVTRURfUEFSQU0odXJsKTsKKyNlbmRpZgorfQorCiBzdGF0aWMgTmV0
d29ya1N0b3JhZ2VTZXNzaW9uJiBzdG9yYWdlU2Vzc2lvbihQQUw6OlNlc3Npb25JRCBzZXNzaW9u
SUQpCiB7CiAgICAgQVNTRVJUKHNlc3Npb25JRC5pc1ZhbGlkKCkpOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5o
IGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJv
Y2Vzcy5oCmluZGV4IGNkMjgwNDJjZmZiLi4wMjBjMjU4NzQ3OCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5oCisr
KyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlBy
b2Nlc3MuaApAQCAtOTAsNiArOTAsNyBAQCBwcml2YXRlOgogICAgIHZvaWQgcGVyZm9ybVN5bmNo
cm9ub3VzTG9hZChjb25zdCBOZXR3b3JrUmVzb3VyY2VMb2FkUGFyYW1ldGVycyYsIFJlZjxNZXNz
YWdlczo6TmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6OlBlcmZvcm1TeW5jaHJvbm91c0xv
YWQ6OkRlbGF5ZWRSZXBseT4mJik7CiAgICAgdm9pZCBsb2FkUGluZyhOZXR3b3JrUmVzb3VyY2VM
b2FkUGFyYW1ldGVycyYmLCBXZWJDb3JlOjpIVFRQSGVhZGVyTWFwJiYgb3JpZ2luYWxSZXF1ZXN0
SGVhZGVycyk7CiAgICAgdm9pZCBwcmVmZXRjaEROUyhjb25zdCBTdHJpbmcmKTsKKyAgICB2b2lk
IHByZWNvbm5lY3RUbyhjb25zdCBXZWJDb3JlOjpVUkwmKTsKIAogICAgIHZvaWQgcmVtb3ZlTG9h
ZElkZW50aWZpZXIoUmVzb3VyY2VMb2FkSWRlbnRpZmllcik7CiAgICAgdm9pZCBzZXREZWZlcnNM
b2FkaW5nKFJlc291cmNlTG9hZElkZW50aWZpZXIsIGJvb2wpOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5tZXNz
YWdlcy5pbiBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0Nvbm5lY3Rpb25U
b1dlYlByb2Nlc3MubWVzc2FnZXMuaW4KaW5kZXggYWJmMGZjY2EwMDIuLjcyNTkyMzYyZmQxIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtDb25uZWN0aW9u
VG9XZWJQcm9jZXNzLm1lc3NhZ2VzLmluCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nl
c3MvTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MubWVzc2FnZXMuaW4KQEAgLTI4LDYgKzI4
LDcgQEAgbWVzc2FnZXMgLT4gTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MgTGVnYWN5UmVj
ZWl2ZXIgewogICAgIFJlbW92ZUxvYWRJZGVudGlmaWVyKHVpbnQ2NF90IHJlc291cmNlTG9hZElk
ZW50aWZpZXIpCiAgICAgU2V0RGVmZXJzTG9hZGluZyh1aW50NjRfdCByZXNvdXJjZUxvYWRJZGVu
dGlmaWVyLCBib29sIGRlZmVycykKICAgICBQcmVmZXRjaEROUyhTdHJpbmcgaG9zdG5hbWUpCisg
ICAgUHJlY29ubmVjdFRvKFdlYkNvcmU6OlVSTCB1cmwpOwogCiAgICAgU3RhcnREb3dubG9hZChQ
QUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIFdlYktpdDo6RG93bmxvYWRJRCBkb3dubG9hZElELCBX
ZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QgcmVxdWVzdCwgU3RyaW5nIHN1Z2dlc3RlZE5hbWUpCiAg
ICAgQ29udmVydE1haW5SZXNvdXJjZUxvYWRUb0Rvd25sb2FkKFBBTDo6U2Vzc2lvbklEIHNlc3Np
b25JRCwgdWludDY0X3QgbWFpblJlc291cmNlTG9hZElkZW50aWZpZXIsIFdlYktpdDo6RG93bmxv
YWRJRCBkb3dubG9hZElELCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QgcmVxdWVzdCwgV2ViQ29y
ZTo6UmVzb3VyY2VSZXNwb25zZSByZXNwb25zZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
TmV0d29ya1Byb2Nlc3MvTmV0d29ya0RhdGFUYXNrLmNwcCBiL1NvdXJjZS9XZWJLaXQvTmV0d29y
a1Byb2Nlc3MvTmV0d29ya0RhdGFUYXNrLmNwcAppbmRleCBjOTNmOGZlYzlmYS4uMmM5ZGZkOGYz
NjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0RhdGFU
YXNrLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtEYXRhVGFz
ay5jcHAKQEAgLTUzLDcgKzUzLDcgQEAgUmVmPE5ldHdvcmtEYXRhVGFzaz4gTmV0d29ya0RhdGFU
YXNrOjpjcmVhdGUoTmV0d29ya1Nlc3Npb24mIHNlc3Npb24sIE5ldHdvcmtEYXQKICAgICAgICAg
cmV0dXJuIE5ldHdvcmtEYXRhVGFza0Jsb2I6OmNyZWF0ZShzZXNzaW9uLCBjbGllbnQsIHBhcmFt
ZXRlcnMucmVxdWVzdCwgcGFyYW1ldGVycy5jb250ZW50U25pZmZpbmdQb2xpY3ksIHBhcmFtZXRl
cnMuYmxvYkZpbGVSZWZlcmVuY2VzKTsKIAogI2lmIFBMQVRGT1JNKENPQ09BKQotICAgIHJldHVy
biBOZXR3b3JrRGF0YVRhc2tDb2NvYTo6Y3JlYXRlKHNlc3Npb24sIGNsaWVudCwgcGFyYW1ldGVy
cy5yZXF1ZXN0LCBwYXJhbWV0ZXJzLnN0b3JlZENyZWRlbnRpYWxzUG9saWN5LCBwYXJhbWV0ZXJz
LmNvbnRlbnRTbmlmZmluZ1BvbGljeSwgcGFyYW1ldGVycy5zaG91bGRDbGVhclJlZmVycmVyT25I
VFRQU1RvSFRUUFJlZGlyZWN0KTsKKyAgICByZXR1cm4gTmV0d29ya0RhdGFUYXNrQ29jb2E6OmNy
ZWF0ZShzZXNzaW9uLCBjbGllbnQsIHBhcmFtZXRlcnMucmVxdWVzdCwgcGFyYW1ldGVycy5zdG9y
ZWRDcmVkZW50aWFsc1BvbGljeSwgcGFyYW1ldGVycy5jb250ZW50U25pZmZpbmdQb2xpY3ksIHBh
cmFtZXRlcnMuc2hvdWxkQ2xlYXJSZWZlcnJlck9uSFRUUFNUb0hUVFBSZWRpcmVjdCwgcGFyYW1l
dGVycy5zaG91bGRQcmVjb25uZWN0T25seSk7CiAjZW5kaWYKICNpZiBVU0UoU09VUCkKICAgICBy
ZXR1cm4gTmV0d29ya0RhdGFUYXNrU291cDo6Y3JlYXRlKHNlc3Npb24sIGNsaWVudCwgcGFyYW1l
dGVycy5yZXF1ZXN0LCBwYXJhbWV0ZXJzLnN0b3JlZENyZWRlbnRpYWxzUG9saWN5LCBwYXJhbWV0
ZXJzLmNvbnRlbnRTbmlmZmluZ1BvbGljeSwgcGFyYW1ldGVycy5zaG91bGRDbGVhclJlZmVycmVy
T25IVFRQU1RvSFRUUFJlZGlyZWN0KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29y
a1Byb2Nlc3MvTmV0d29ya0xvYWRQYXJhbWV0ZXJzLmggYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQ
cm9jZXNzL05ldHdvcmtMb2FkUGFyYW1ldGVycy5oCmluZGV4IDFmYmQyZGE0OTFkLi4yNWFhNTA1
ODBkZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrTG9h
ZFBhcmFtZXRlcnMuaAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtM
b2FkUGFyYW1ldGVycy5oCkBAIC0zMyw2ICszMyw4IEBACiAKIG5hbWVzcGFjZSBXZWJLaXQgewog
CitlbnVtIGNsYXNzIFByZWNvbm5lY3RPbmx5IHsgTm8sIFllcyB9OworCiBjbGFzcyBOZXR3b3Jr
TG9hZFBhcmFtZXRlcnMgewogcHVibGljOgogICAgIHVpbnQ2NF90IHdlYlBhZ2VJRCB7IDAgfTsK
QEAgLTQ5LDYgKzUxLDcgQEAgcHVibGljOgogI2lmIFVTRShORVRXT1JLX1NFU1NJT04pCiAgICAg
VmVjdG9yPFJlZlB0cjxXZWJDb3JlOjpCbG9iRGF0YUZpbGVSZWZlcmVuY2U+PiBibG9iRmlsZVJl
ZmVyZW5jZXM7CiAjZW5kaWYKKyAgICBQcmVjb25uZWN0T25seSBzaG91bGRQcmVjb25uZWN0T25s
eSB7IFByZWNvbm5lY3RPbmx5OjpObyB9OwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL1ByZWNvbm5lY3RUYXNrLmNw
cCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvUHJlY29ubmVjdFRhc2suY3BwCm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi42MjQxNzg0NGM1NgotLS0gL2Rldi9u
dWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvUHJlY29ubmVjdFRhc2suY3Bw
CkBAIC0wLDAgKzEsOTUgQEAKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJQcmVjb25u
ZWN0VGFzay5oIgorCisjaWYgRU5BQkxFKFNFUlZFUl9QUkVDT05ORUNUKQorCisjaW5jbHVkZSAi
QXV0aGVudGljYXRpb25NYW5hZ2VyLmgiCisjaW5jbHVkZSAiTG9nZ2luZy5oIgorI2luY2x1ZGUg
Ik5ldHdvcmtMb2FkUGFyYW1ldGVycy5oIgorI2luY2x1ZGUgIk5ldHdvcmtTZXNzaW9uLmgiCisj
aW5jbHVkZSA8V2ViQ29yZS9BdXRoZW50aWNhdGlvbkNoYWxsZW5nZS5oPgorI2luY2x1ZGUgPFdl
YkNvcmUvUmVzb3VyY2VFcnJvci5oPgorCisjaWYgUExBVEZPUk0oQ09DT0EpCisjaW5jbHVkZSAi
TmV0d29ya0RhdGFUYXNrQ29jb2EuaCIKKyNlbmRpZgorCituYW1lc3BhY2UgV2ViS2l0IHsKKwor
dXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CisKK1ByZWNvbm5lY3RUYXNrOjpQcmVjb25uZWN0VGFz
ayhjb25zdCBVUkwmIHVybCkKK3sKKyAgICBSRUxFQVNFX0xPRyhOZXR3b3JrLCAiJXAgLSBQcmVj
b25uZWN0VGFzazo6UHJlY29ubmVjdFRhc2soKSIsIHRoaXMpOworICAgIE5ldHdvcmtMb2FkUGFy
YW1ldGVycyBwYXJhbWV0ZXJzOworICAgIHBhcmFtZXRlcnMucmVxdWVzdCA9IFJlc291cmNlUmVx
dWVzdCh1cmwpOworICAgIHBhcmFtZXRlcnMuc2hvdWxkUHJlY29ubmVjdE9ubHkgPSBQcmVjb25u
ZWN0T25seTo6WWVzOworICAgIHBhcmFtZXRlcnMuYWxsb3dTdG9yZWRDcmVkZW50aWFscyA9IEFs
bG93U3RvcmVkQ3JlZGVudGlhbHM7CisgICAgbV90YXNrID0gTmV0d29ya0RhdGFUYXNrOjpjcmVh
dGUoTmV0d29ya1Nlc3Npb246OmRlZmF1bHRTZXNzaW9uKCksICp0aGlzLCBwYXJhbWV0ZXJzKTsK
KyAgICBtX3Rhc2stPnJlc3VtZSgpOworfQorCitQcmVjb25uZWN0VGFzazo6flByZWNvbm5lY3RU
YXNrKCkKK3sKKyAgICBBU1NFUlQobV90YXNrLT5jbGllbnQoKSA9PSB0aGlzKTsKKyAgICBtX3Rh
c2stPmNsZWFyQ2xpZW50KCk7CisgICAgbV90YXNrLT5jYW5jZWwoKTsKK30KKwordm9pZCBQcmVj
b25uZWN0VGFzazo6d2lsbFBlcmZvcm1IVFRQUmVkaXJlY3Rpb24oV2ViQ29yZTo6UmVzb3VyY2VS
ZXNwb25zZSYmLCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmJiwgUmVkaXJlY3RDb21wbGV0aW9u
SGFuZGxlciYmKQoreworICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOworfQorCit2b2lkIFByZWNv
bm5lY3RUYXNrOjpkaWRSZWNlaXZlQ2hhbGxlbmdlKGNvbnN0IFdlYkNvcmU6OkF1dGhlbnRpY2F0
aW9uQ2hhbGxlbmdlJiBjaGFsbGVuZ2UsIENoYWxsZW5nZUNvbXBsZXRpb25IYW5kbGVyJiYgY29t
cGxldGlvbkhhbmRsZXIpCit7CisgICAgaWYgKGNoYWxsZW5nZS5wcm90ZWN0aW9uU3BhY2UoKS5h
dXRoZW50aWNhdGlvblNjaGVtZSgpID09IFByb3RlY3Rpb25TcGFjZUF1dGhlbnRpY2F0aW9uU2No
ZW1lU2VydmVyVHJ1c3RFdmFsdWF0aW9uUmVxdWVzdGVkKSB7CisgICAgICAgIGlmIChtX3Rhc2sg
JiYgbV90YXNrLT5hbGxvd3NTcGVjaWZpY0hUVFBTQ2VydGlmaWNhdGVGb3JIb3N0KGNoYWxsZW5n
ZSkpCisgICAgICAgICAgICBjb21wbGV0aW9uSGFuZGxlcihBdXRoZW50aWNhdGlvbkNoYWxsZW5n
ZURpc3Bvc2l0aW9uOjpVc2VDcmVkZW50aWFsLCBzZXJ2ZXJUcnVzdENyZWRlbnRpYWwoY2hhbGxl
bmdlKSk7CisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKEF1dGhl
bnRpY2F0aW9uQ2hhbGxlbmdlRGlzcG9zaXRpb246OlJlamVjdFByb3RlY3Rpb25TcGFjZSwgeyB9
KTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKyAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKK30K
Kwordm9pZCBQcmVjb25uZWN0VGFzazo6ZGlkUmVjZWl2ZVJlc3BvbnNlTmV0d29ya1Nlc3Npb24o
V2ViQ29yZTo6UmVzb3VyY2VSZXNwb25zZSYmLCBSZXNwb25zZUNvbXBsZXRpb25IYW5kbGVyJiYp
Cit7CisgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7Cit9CisKK3ZvaWQgUHJlY29ubmVjdFRhc2s6
OmRpZFJlY2VpdmVEYXRhKFJlZjxXZWJDb3JlOjpTaGFyZWRCdWZmZXI+JiYpCit7CisgICAgQVNT
RVJUX05PVF9SRUFDSEVEKCk7Cit9CisKK3ZvaWQgUHJlY29ubmVjdFRhc2s6OmRpZENvbXBsZXRl
V2l0aEVycm9yKGNvbnN0IFdlYkNvcmU6OlJlc291cmNlRXJyb3ImIGVycm9yLCBjb25zdCBXZWJD
b3JlOjpOZXR3b3JrTG9hZE1ldHJpY3MmKQoreworICAgIGlmIChlcnJvci5pc051bGwoKSkKKyAg
ICAgICAgUkVMRUFTRV9MT0coTmV0d29yaywgIiVwIC0gUHJlY29ubmVjdFRhc2s6OmRpZENvbXBs
ZXRlIiwgdGhpcyk7CisgICAgZWxzZQorICAgICAgICBSRUxFQVNFX0xPRyhOZXR3b3JrLCAiJXAg
LSBQcmVjb25uZWN0VGFzazo6ZGlkQ29tcGxldGVXaXRoRXJyb3IsIGVycm9yX2NvZGU6ICVkIiwg
dGhpcywgZXJyb3IuZXJyb3JDb2RlKCkpOworCisgICAgZGVsZXRlIHRoaXM7Cit9CisKK3ZvaWQg
UHJlY29ubmVjdFRhc2s6OmRpZFNlbmREYXRhKHVpbnQ2NF90IHRvdGFsQnl0ZXNTZW50LCB1aW50
NjRfdCB0b3RhbEJ5dGVzRXhwZWN0ZWRUb1NlbmQpCit7CisgICAgQVNTRVJUX05PVF9SRUFDSEVE
KCk7Cit9CisKK3ZvaWQgUHJlY29ubmVjdFRhc2s6Ondhc0Jsb2NrZWQoKQoreworICAgIFJFTEVB
U0VfTE9HKE5ldHdvcmssICIlcCAtIFByZWNvbm5lY3RUYXNrOjp3YXNCbG9ja2VkKCkiLCB0aGlz
KTsKKyAgICBkZWxldGUgdGhpczsKK30KKwordm9pZCBQcmVjb25uZWN0VGFzazo6Y2Fubm90U2hv
d1VSTCgpCit7CisgICAgUkVMRUFTRV9MT0coTmV0d29yaywgIiVwIC0gUHJlY29ubmVjdFRhc2s6
OmNhbm5vdFNob3dVUkwoKSIsIHRoaXMpOworICAgIGRlbGV0ZSB0aGlzOworfQorCit9IC8vIG5h
bWVzcGFjZSBXZWJLaXQKKworI2VuZGlmIC8vIEVOQUJMRShTRVJWRVJfUFJFQ09OTkVDVCkKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvUHJlY29ubmVjdFRhc2suaCBi
L1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvUHJlY29ubmVjdFRhc2suaApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uYTJhNWFlNjBjN2UKLS0tIC9kZXYvbnVsbAor
KysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL1ByZWNvbm5lY3RUYXNrLmgKQEAgLTAs
MCArMSw1NSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNiBBcHBsZSBJbmMuIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5k
IGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJt
aXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6
CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFi
b3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFy
eSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0
aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3
aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBC
WSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBF
WFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklU
TkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBF
VkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBG
T1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwg
T1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NT
IE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikg
SE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElO
CisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJ
R0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNF
IE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZ
IE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisjaWYgRU5BQkxFKFNFUlZF
Ul9QUkVDT05ORUNUKQorCisjaW5jbHVkZSAiTmV0d29ya0RhdGFUYXNrLmgiCisKK25hbWVzcGFj
ZSBXZWJLaXQgeworCitjbGFzcyBQcmVjb25uZWN0VGFzayBmaW5hbCA6IHByaXZhdGUgTmV0d29y
a0RhdGFUYXNrQ2xpZW50IHsKK3B1YmxpYzoKKyAgICBleHBsaWNpdCBQcmVjb25uZWN0VGFzayhj
b25zdCBXZWJDb3JlOjpVUkwmKTsKKyAgICB+UHJlY29ubmVjdFRhc2soKTsKKworcHJpdmF0ZToK
KyAgICAvLyBOZXR3b3JrRGF0YVRhc2tDbGllbnQuCisgICAgdm9pZCB3aWxsUGVyZm9ybUhUVFBS
ZWRpcmVjdGlvbihXZWJDb3JlOjpSZXNvdXJjZVJlc3BvbnNlJiYsIFdlYkNvcmU6OlJlc291cmNl
UmVxdWVzdCYmLCBSZWRpcmVjdENvbXBsZXRpb25IYW5kbGVyJiYpIGZpbmFsOworICAgIHZvaWQg
ZGlkUmVjZWl2ZUNoYWxsZW5nZShjb25zdCBXZWJDb3JlOjpBdXRoZW50aWNhdGlvbkNoYWxsZW5n
ZSYsIENoYWxsZW5nZUNvbXBsZXRpb25IYW5kbGVyJiYpIGZpbmFsOworICAgIHZvaWQgZGlkUmVj
ZWl2ZVJlc3BvbnNlTmV0d29ya1Nlc3Npb24oV2ViQ29yZTo6UmVzb3VyY2VSZXNwb25zZSYmLCBS
ZXNwb25zZUNvbXBsZXRpb25IYW5kbGVyJiYpIGZpbmFsOworICAgIHZvaWQgZGlkUmVjZWl2ZURh
dGEoUmVmPFdlYkNvcmU6OlNoYXJlZEJ1ZmZlcj4mJikgZmluYWw7CisgICAgdm9pZCBkaWRDb21w
bGV0ZVdpdGhFcnJvcihjb25zdCBXZWJDb3JlOjpSZXNvdXJjZUVycm9yJiwgY29uc3QgV2ViQ29y
ZTo6TmV0d29ya0xvYWRNZXRyaWNzJikgZmluYWw7CisgICAgdm9pZCBkaWRTZW5kRGF0YSh1aW50
NjRfdCB0b3RhbEJ5dGVzU2VudCwgdWludDY0X3QgdG90YWxCeXRlc0V4cGVjdGVkVG9TZW5kKSBm
aW5hbDsKKyAgICB2b2lkIHdhc0Jsb2NrZWQoKSBmaW5hbDsKKyAgICB2b2lkIGNhbm5vdFNob3dV
UkwoKSBmaW5hbDsKKworICAgIFJlZlB0cjxOZXR3b3JrRGF0YVRhc2s+IG1fdGFzazsKK307CisK
K30gLy8gbmFtZXNwYWNlIFdlYktpdAorCisjZW5kaWYgLy8gRU5BQkxFKFNFUlZFUl9QUkVDT05O
RUNUKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9jb2NvYS9OZXR3
b3JrRGF0YVRhc2tDb2NvYS5oIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9jb2NvYS9O
ZXR3b3JrRGF0YVRhc2tDb2NvYS5oCmluZGV4IGNkZjQzMjRjMDZiLi4yMTJhOWEwOGZiMSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9jb2NvYS9OZXR3b3JrRGF0YVRh
c2tDb2NvYS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvY29jb2EvTmV0d29y
a0RhdGFUYXNrQ29jb2EuaApAQCAtMjgsNiArMjgsNyBAQAogI2lmIFVTRShORVRXT1JLX1NFU1NJ
T04pCiAKICNpbmNsdWRlICJOZXR3b3JrRGF0YVRhc2suaCIKKyNpbmNsdWRlICJOZXR3b3JrTG9h
ZFBhcmFtZXRlcnMuaCIKICNpbmNsdWRlIDxXZWJDb3JlL05ldHdvcmtMb2FkTWV0cmljcy5oPgog
I2luY2x1ZGUgPHd0Zi9SZXRhaW5QdHIuaD4KIApAQCAtNDAsOSArNDEsOSBAQCBjbGFzcyBOZXR3
b3JrU2Vzc2lvbkNvY29hOwogY2xhc3MgTmV0d29ya0RhdGFUYXNrQ29jb2EgZmluYWwgOiBwdWJs
aWMgTmV0d29ya0RhdGFUYXNrIHsKICAgICBmcmllbmQgY2xhc3MgTmV0d29ya1Nlc3Npb25Db2Nv
YTsKIHB1YmxpYzoKLSAgICBzdGF0aWMgUmVmPE5ldHdvcmtEYXRhVGFzaz4gY3JlYXRlKE5ldHdv
cmtTZXNzaW9uJiBzZXNzaW9uLCBOZXR3b3JrRGF0YVRhc2tDbGllbnQmIGNsaWVudCwgY29uc3Qg
V2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0LCBXZWJDb3JlOjpTdG9yZWRDcmVkZW50
aWFsc1BvbGljeSBzdG9yZWRDcmVkZW50aWFsc1BvbGljeSwgV2ViQ29yZTo6Q29udGVudFNuaWZm
aW5nUG9saWN5IHNob3VsZENvbnRlbnRTbmlmZiwgYm9vbCBzaG91bGRDbGVhclJlZmVycmVyT25I
VFRQU1RvSFRUUFJlZGlyZWN0KQorICAgIHN0YXRpYyBSZWY8TmV0d29ya0RhdGFUYXNrPiBjcmVh
dGUoTmV0d29ya1Nlc3Npb24mIHNlc3Npb24sIE5ldHdvcmtEYXRhVGFza0NsaWVudCYgY2xpZW50
LCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QsIFdlYkNvcmU6OlN0b3Jl
ZENyZWRlbnRpYWxzUG9saWN5IHN0b3JlZENyZWRlbnRpYWxzUG9saWN5LCBXZWJDb3JlOjpDb250
ZW50U25pZmZpbmdQb2xpY3kgc2hvdWxkQ29udGVudFNuaWZmLCBib29sIHNob3VsZENsZWFyUmVm
ZXJyZXJPbkhUVFBTVG9IVFRQUmVkaXJlY3QsIFByZWNvbm5lY3RPbmx5IHNob3VsZFByZWNvbm5l
Y3RPbmx5KQogICAgIHsKLSAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgTmV0d29ya0RhdGFU
YXNrQ29jb2Eoc2Vzc2lvbiwgY2xpZW50LCByZXF1ZXN0LCBzdG9yZWRDcmVkZW50aWFsc1BvbGlj
eSwgc2hvdWxkQ29udGVudFNuaWZmLCBzaG91bGRDbGVhclJlZmVycmVyT25IVFRQU1RvSFRUUFJl
ZGlyZWN0KSk7CisgICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IE5ldHdvcmtEYXRhVGFza0Nv
Y29hKHNlc3Npb24sIGNsaWVudCwgcmVxdWVzdCwgc3RvcmVkQ3JlZGVudGlhbHNQb2xpY3ksIHNo
b3VsZENvbnRlbnRTbmlmZiwgc2hvdWxkQ2xlYXJSZWZlcnJlck9uSFRUUFNUb0hUVFBSZWRpcmVj
dCwgc2hvdWxkUHJlY29ubmVjdE9ubHkpKTsKICAgICB9CiAKICAgICB+TmV0d29ya0RhdGFUYXNr
Q29jb2EoKTsKQEAgLTcxLDcgKzcyLDcgQEAgcHVibGljOgogICAgIFdlYkNvcmU6Ok5ldHdvcmtM
b2FkTWV0cmljcyYgbmV0d29ya0xvYWRNZXRyaWNzKCkgeyByZXR1cm4gbV9uZXR3b3JrTG9hZE1l
dHJpY3M7IH0KIAogcHJpdmF0ZToKLSAgICBOZXR3b3JrRGF0YVRhc2tDb2NvYShOZXR3b3JrU2Vz
c2lvbiYsIE5ldHdvcmtEYXRhVGFza0NsaWVudCYsIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVx
dWVzdCYsIFdlYkNvcmU6OlN0b3JlZENyZWRlbnRpYWxzUG9saWN5LCBXZWJDb3JlOjpDb250ZW50
U25pZmZpbmdQb2xpY3ksIGJvb2wgc2hvdWxkQ2xlYXJSZWZlcnJlck9uSFRUUFNUb0hUVFBSZWRp
cmVjdCk7CisgICAgTmV0d29ya0RhdGFUYXNrQ29jb2EoTmV0d29ya1Nlc3Npb24mLCBOZXR3b3Jr
RGF0YVRhc2tDbGllbnQmLCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmLCBXZWJDb3Jl
OjpTdG9yZWRDcmVkZW50aWFsc1BvbGljeSwgV2ViQ29yZTo6Q29udGVudFNuaWZmaW5nUG9saWN5
LCBib29sIHNob3VsZENsZWFyUmVmZXJyZXJPbkhUVFBTVG9IVFRQUmVkaXJlY3QsIFByZWNvbm5l
Y3RPbmx5KTsKIAogICAgIGJvb2wgdHJ5UGFzc3dvcmRCYXNlZEF1dGhlbnRpY2F0aW9uKGNvbnN0
IFdlYkNvcmU6OkF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlJiwgQ2hhbGxlbmdlQ29tcGxldGlvbkhh
bmRsZXImKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9jb2Nv
YS9OZXR3b3JrRGF0YVRhc2tDb2NvYS5tbSBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mv
Y29jb2EvTmV0d29ya0RhdGFUYXNrQ29jb2EubW0KaW5kZXggOTk3ZTBlZTFhZjYuLmRiYmIxMDA0
MDE0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL2NvY29hL05ldHdv
cmtEYXRhVGFza0NvY29hLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvY29j
b2EvTmV0d29ya0RhdGFUYXNrQ29jb2EubW0KQEAgLTc0LDcgKzc0LDcgQEAgc3RhdGljIGZsb2F0
IHRvTlNVUkxTZXNzaW9uVGFza1ByaW9yaXR5KFdlYkNvcmU6OlJlc291cmNlTG9hZFByaW9yaXR5
IHByaW9yaXR5KQogICAgIHJldHVybiBOU1VSTFNlc3Npb25UYXNrUHJpb3JpdHlEZWZhdWx0Owog
fQogCi1OZXR3b3JrRGF0YVRhc2tDb2NvYTo6TmV0d29ya0RhdGFUYXNrQ29jb2EoTmV0d29ya1Nl
c3Npb24mIHNlc3Npb24sIE5ldHdvcmtEYXRhVGFza0NsaWVudCYgY2xpZW50LCBjb25zdCBXZWJD
b3JlOjpSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3RXaXRoQ3JlZGVudGlhbHMsIFdlYkNvcmU6OlN0
b3JlZENyZWRlbnRpYWxzUG9saWN5IHN0b3JlZENyZWRlbnRpYWxzUG9saWN5LCBXZWJDb3JlOjpD
b250ZW50U25pZmZpbmdQb2xpY3kgc2hvdWxkQ29udGVudFNuaWZmLCBib29sIHNob3VsZENsZWFy
UmVmZXJyZXJPbkhUVFBTVG9IVFRQUmVkaXJlY3QpCitOZXR3b3JrRGF0YVRhc2tDb2NvYTo6TmV0
d29ya0RhdGFUYXNrQ29jb2EoTmV0d29ya1Nlc3Npb24mIHNlc3Npb24sIE5ldHdvcmtEYXRhVGFz
a0NsaWVudCYgY2xpZW50LCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3RX
aXRoQ3JlZGVudGlhbHMsIFdlYkNvcmU6OlN0b3JlZENyZWRlbnRpYWxzUG9saWN5IHN0b3JlZENy
ZWRlbnRpYWxzUG9saWN5LCBXZWJDb3JlOjpDb250ZW50U25pZmZpbmdQb2xpY3kgc2hvdWxkQ29u
dGVudFNuaWZmLCBib29sIHNob3VsZENsZWFyUmVmZXJyZXJPbkhUVFBTVG9IVFRQUmVkaXJlY3Qs
IFByZWNvbm5lY3RPbmx5IHNob3VsZFByZWNvbm5lY3RPbmx5KQogICAgIDogTmV0d29ya0RhdGFU
YXNrKHNlc3Npb24sIGNsaWVudCwgcmVxdWVzdFdpdGhDcmVkZW50aWFscywgc3RvcmVkQ3JlZGVu
dGlhbHNQb2xpY3ksIHNob3VsZENsZWFyUmVmZXJyZXJPbkhUVFBTVG9IVFRQUmVkaXJlY3QpCiB7
CiAgICAgaWYgKG1fc2NoZWR1bGVkRmFpbHVyZVR5cGUgIT0gTm9GYWlsdXJlKQpAQCAtMTI4LDYg
KzEyOCwxNCBAQCBOZXR3b3JrRGF0YVRhc2tDb2NvYTo6TmV0d29ya0RhdGFUYXNrQ29jb2EoTmV0
d29ya1Nlc3Npb24mIHNlc3Npb24sIE5ldHdvcmtEYXRhVAogICAgICAgICBMT0coTmV0d29ya1Nl
c3Npb24sICIlbGx1IENyZWF0aW5nIE5ldHdvcmtEYXRhVGFzayB3aXRoIFVSTCAlcyIsIFttX3Rh
c2sgdGFza0lkZW50aWZpZXJdLCBuc1JlcXVlc3QuVVJMLmFic29sdXRlU3RyaW5nLlVURjhTdHJp
bmcpOwogICAgIH0KIAorICAgIGlmIChzaG91bGRQcmVjb25uZWN0T25seSA9PSBQcmVjb25uZWN0
T25seTo6WWVzKSB7CisjaWYgRU5BQkxFKFNFUlZFUl9QUkVDT05ORUNUKQorICAgICAgICBtX3Rh
c2suZ2V0KCkuX3ByZWNvbm5lY3QgPSB0cnVlOworI2Vsc2UKKyAgICAgICAgQVNTRVJUX05PVF9S
RUFDSEVEKCk7CisjZW5kaWYKKyAgICB9CisKICNpZiBIQVZFKENGTkVUV09SS19TVE9SQUdFX1BB
UlRJVElPTklORykKICAgICBpZiAoc3RvcmVkQ3JlZGVudGlhbHNQb2xpY3kgPT0gV2ViQ29yZTo6
U3RvcmVkQ3JlZGVudGlhbHNQb2xpY3k6OlVzZSkgewogICAgICAgICBTdHJpbmcgc3RvcmFnZVBh
cnRpdGlvbiA9IHNlc3Npb24ubmV0d29ya1N0b3JhZ2VTZXNzaW9uKCkuY29va2llU3RvcmFnZVBh
cnRpdGlvbihyZXF1ZXN0KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYlBy
ZWZlcmVuY2VzRGVmaW5pdGlvbnMuaCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYlByZWZlcmVu
Y2VzRGVmaW5pdGlvbnMuaAppbmRleCA1N2RkZDFiMzAyYy4uM2U2MDNhN2U5MzQgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYlByZWZlcmVuY2VzRGVmaW5pdGlvbnMuaAorKysg
Yi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJQcmVmZXJlbmNlc0RlZmluaXRpb25zLmgKQEAgLTQ1
LDYgKzQ1LDEyIEBACiAjZGVmaW5lIERFRkFVTFRfSElEREVOX1BBR0VfQ1NTX0FOSU1BVElPTl9T
VVNQRU5TSU9OX0VOQUJMRUQgZmFsc2UKICNlbmRpZgogCisjaWYgRU5BQkxFKFNFUlZFUl9QUkVD
T05ORUNUKQorI2RlZmluZSBERUZBVUxUX0xJTktfUFJFQ09OTkVDVF9FTkFCTEVEIHRydWUKKyNl
bHNlCisjZGVmaW5lIERFRkFVTFRfTElOS19QUkVDT05ORUNUX0VOQUJMRUQgZmFsc2UKKyNlbmRp
ZgorCiAjaWYgUExBVEZPUk0oQ09DT0EpCiAjZGVmaW5lIERFRkFVTFRfUERGUExVR0lOX0VOQUJM
RUQgdHJ1ZQogI2Vsc2UKQEAgLTE4MSw2ICsxODcsNyBAQAogICAgIG1hY3JvKERPTVBhc3RlQWxs
b3dlZCwgZG9tUGFzdGVBbGxvd2VkLCBCb29sLCBib29sLCBmYWxzZSwgIiIsICIiKSBcCiAgICAg
bWFjcm8oSmF2YVNjcmlwdENhbkFjY2Vzc0NsaXBib2FyZCwgamF2YVNjcmlwdENhbkFjY2Vzc0Ns
aXBib2FyZCwgQm9vbCwgYm9vbCwgZmFsc2UsICIiLCAiIikgXAogICAgIG1hY3JvKFNob3VsZFBy
aW50QmFja2dyb3VuZHMsIHNob3VsZFByaW50QmFja2dyb3VuZHMsIEJvb2wsIGJvb2wsIERFRkFV
TFRfU0hPVUxEX1BSSU5UX0JBQ0tHUk9VTkRTLCAiIiwgIiIpIFwKKyAgICBtYWNybyhMaW5rUHJl
Y29ubmVjdCwgbGlua1ByZWNvbm5lY3QsIEJvb2wsIGJvb2ssIERFRkFVTFRfTElOS19QUkVDT05O
RUNUX0VOQUJMRUQsICIiLCAiIikgXAogICAgIG1hY3JvKEZ1bGxTY3JlZW5FbmFibGVkLCBmdWxs
U2NyZWVuRW5hYmxlZCwgQm9vbCwgYm9vbCwgZmFsc2UsICIiLCAiIikgXAogICAgIG1hY3JvKEFz
eW5jaHJvbm91c1NwZWxsQ2hlY2tpbmdFbmFibGVkLCBhc3luY2hyb25vdXNTcGVsbENoZWNraW5n
RW5hYmxlZCwgQm9vbCwgYm9vbCwgZmFsc2UsICIiLCAiIikgXAogICAgIG1hY3JvKFdlYlNlY3Vy
aXR5RW5hYmxlZCwgd2ViU2VjdXJpdHlFbmFibGVkLCBCb29sLCBib29sLCB0cnVlLCAiIiwgIiIp
IFwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBi
eHByb2ogYi9Tb3VyY2UvV2ViS2l0L1dlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmlu
ZGV4IDY4MDdlOTNjZGRjLi5jMjhjYzExYzVlZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9X
ZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYktp
dC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC0xMzgwLDYgKzEzODAsOCBAQAogCQk4Mzk5
MDIwMzFCRTlBMDJCMDAwRjM2NTMgLyogTmV0d29ya0xvYWQuaCBpbiBIZWFkZXJzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDgzOTkwMUZFMUJFOUEwMUIwMDBGMzY1MyAvKiBO
ZXR3b3JrTG9hZC5oICovOyB9OwogCQk4MzlBMkYzMTFFMjA2NzQ1MDAzOTA1N0UgLyogSGlnaFBl
cmZvcm1hbmNlR3JhcGhpY3NVc2FnZVNhbXBsZXIuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODM5QTJGMkYxRTIwNjczOTAwMzkwNTdFIC8qIEhpZ2hQ
ZXJmb3JtYW5jZUdyYXBoaWNzVXNhZ2VTYW1wbGVyLmNwcCAqLzsgfTsKIAkJODM5QTJGMzIxRTIw
Njc0NTAwMzkwNTdFIC8qIEhpZ2hQZXJmb3JtYW5jZUdyYXBoaWNzVXNhZ2VTYW1wbGVyLmggaW4g
SGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4MzlBMkYzMDFFMjA2
NzM5MDAzOTA1N0UgLyogSGlnaFBlcmZvcm1hbmNlR3JhcGhpY3NVc2FnZVNhbXBsZXIuaCAqLzsg
fTsKKwkJODNBMEVEMzQxRjc0N0NDRDAwMzI5OUVCIC8qIFByZWNvbm5lY3RUYXNrLmNwcCBpbiBT
b3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDgzQTBFRDMzMUY3NDdD
QzcwMDMyOTlFQiAvKiBQcmVjb25uZWN0VGFzay5jcHAgKi87IH07CisJCTgzQTBFRDM1MUY3NDdD
Q0YwMDMyOTlFQiAvKiBQcmVjb25uZWN0VGFzay5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gODNBMEVEMzIxRjc0N0NDNjAwMzI5OUVCIC8qIFByZWNvbm5l
Y3RUYXNrLmggKi87IH07CiAJCTgzQkRDQ0I5MUFDNUZEQjYwMDNGNjQ0MSAvKiBOZXR3b3JrQ2Fj
aGVTdGF0aXN0aWNzLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDgzQkRDQ0I4MUFDNUZEQjYwMDNGNjQ0MSAvKiBOZXR3b3JrQ2FjaGVTdGF0aXN0aWNz
LmNwcCAqLzsgfTsKIAkJODNCRkFDNDIxRDk2MTM3QzAwNDMzNDkwIC8qIEJsb2JEb3dubG9hZENs
aWVudC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODNC
RkFDNDAxRDk2MTM2MDAwNDMzNDkwIC8qIEJsb2JEb3dubG9hZENsaWVudC5oICovOyB9OwogCQk4
M0JGQUM0MzFEOTYxMzdDMDA0MzM0OTAgLyogQmxvYkRvd25sb2FkQ2xpZW50LmNwcCBpbiBTb3Vy
Y2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDgzQkZBQzQxMUQ5NjEzNjAw
MDQzMzQ5MCAvKiBCbG9iRG93bmxvYWRDbGllbnQuY3BwICovOyB9OwpAQCAtMzczMyw2ICszNzM1
LDggQEAKIAkJODM5OTAxRkYxQkU5QTAxQjAwMEYzNjUzIC8qIE5ldHdvcmtMb2FkLmNwcCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgbmFtZSA9IE5ldHdvcmtMb2FkLmNwcDsgcGF0aCA9
IE5ldHdvcmtQcm9jZXNzL05ldHdvcmtMb2FkLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKIAkJODM5QTJGMkYxRTIwNjczOTAwMzkwNTdFIC8qIEhpZ2hQZXJmb3JtYW5jZUdyYXBoaWNz
VXNhZ2VTYW1wbGVyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEhp
Z2hQZXJmb3JtYW5jZUdyYXBoaWNzVXNhZ2VTYW1wbGVyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJODM5QTJGMzAxRTIwNjczOTAwMzkwNTdFIC8qIEhpZ2hQZXJmb3JtYW5jZUdy
YXBoaWNzVXNhZ2VTYW1wbGVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEhp
Z2hQZXJmb3JtYW5jZUdyYXBoaWNzVXNhZ2VTYW1wbGVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CisJCTgzQTBFRDMyMUY3NDdDQzYwMDMyOTlFQiAvKiBQcmVjb25uZWN0VGFzay5oICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBQcmVjb25uZWN0VGFzay5oOyBwYXRoID0g
TmV0d29ya1Byb2Nlc3MvUHJlY29ubmVjdFRhc2suaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKKwkJODNBMEVEMzMxRjc0N0NDNzAwMzI5OUVCIC8qIFByZWNvbm5lY3RUYXNrLmNwcCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgbmFtZSA9IFByZWNvbm5lY3RUYXNrLmNwcDsgcGF0
aCA9IE5ldHdvcmtQcm9jZXNzL1ByZWNvbm5lY3RUYXNrLmNwcDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJODNCRENDQjgxQUM1RkRCNjAwM0Y2NDQxIC8qIE5ldHdvcmtDYWNoZVN0YXRp
c3RpY3MuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gTmV0d29ya0Nh
Y2hlU3RhdGlzdGljcy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTgzQkZBQzQw
MUQ5NjEzNjAwMDQzMzQ5MCAvKiBCbG9iRG93bmxvYWRDbGllbnQuaCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuYy5oOyBuYW1lID0gQmxvYkRvd25sb2FkQ2xpZW50Lmg7IHBhdGggPSBOZXR3b3JrUHJv
Y2Vzcy9Eb3dubG9hZHMvQmxvYkRvd25sb2FkQ2xpZW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CiAJCTgzQkZBQzQxMUQ5NjEzNjAwMDQzMzQ5MCAvKiBCbG9iRG93bmxvYWRDbGllbnQu
Y3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBuYW1lID0gQmxvYkRvd25sb2FkQ2xp
ZW50LmNwcDsgcGF0aCA9IE5ldHdvcmtQcm9jZXNzL0Rvd25sb2Fkcy9CbG9iRG93bmxvYWRDbGll
bnQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtNjExNSw2ICs2MTE5LDggQEAK
IAkJCQk1QzBCMTc3RjFFN0M4ODY3MDBFOTEyM0MgLyogTmV0d29ya1NvY2tldFN0cmVhbS5tZXNz
YWdlcy5pbiAqLywKIAkJCQk0NjIxMDdENzFGMzhEQkQzMDBERDc4MTAgLyogUGluZ0xvYWQuY3Bw
ICovLAogCQkJCTVDRTg1QjFGMUM4OEU2NDMwMDcwQkZDRSAvKiBQaW5nTG9hZC5oICovLAorCQkJ
CTgzQTBFRDMzMUY3NDdDQzcwMDMyOTlFQiAvKiBQcmVjb25uZWN0VGFzay5jcHAgKi8sCisJCQkJ
ODNBMEVEMzIxRjc0N0NDNjAwMzI5OUVCIC8qIFByZWNvbm5lY3RUYXNrLmggKi8sCiAJCQkJRTFC
Nzg0NzAxNjNGMjQ2OTAwMDdCNjkyIC8qIFJlbW90ZU5ldHdvcmtpbmdDb250ZXh0LmggKi8sCiAJ
CQkpOwogCQkJbmFtZSA9IE5ldHdvcmtQcm9jZXNzOwpAQCAtODcwOSw2ICs4NzE1LDcgQEAKIAkJ
CQkxQTRBOUYzMzEyQjg0NEUyMDA4RkU5ODQgLyogUGx1Z2luUXVpcmtzLmggaW4gSGVhZGVycyAq
LywKIAkJCQk3Q0Q2MjI3ODE3MzlEODYzMDA1QkQ3RkYgLyogUGx1Z2luU2FuZGJveFByb2ZpbGUu
aCBpbiBIZWFkZXJzICovLAogCQkJCTFBNkZCN0FGMTFFNjRCNjgwMERCMTM3MSAvKiBQbHVnaW5W
aWV3LmggaW4gSGVhZGVycyAqLywKKwkJCQk4M0EwRUQzNTFGNzQ3Q0NGMDAzMjk5RUIgLyogUHJl
Y29ubmVjdFRhc2suaCBpbiBIZWFkZXJzICovLAogCQkJCUUxQ0MxQjkwMTJEN0VBREYwMDYyNTgz
OCAvKiBQcmludEluZm8uaCBpbiBIZWFkZXJzICovLAogCQkJCTg2Rjk1MzY1MThGRjU4RjUwMDFE
QjJFRiAvKiBQcm9jZXNzQXNzZXJ0aW9uLmggaW4gSGVhZGVycyAqLywKIAkJCQlCQzFBN0M1ODEx
MzZFMTlDMDBGQjcxNjcgLyogUHJvY2Vzc0xhdW5jaGVyLmggaW4gSGVhZGVycyAqLywKQEAgLTEw
MjkwLDYgKzEwMjk3LDcgQEAKIAkJCQk3Q0Q2MjI3NzE3MzlEODYzMDA1QkQ3RkYgLyogUGx1Z2lu
U2FuZGJveFByb2ZpbGUubW0gaW4gU291cmNlcyAqLywKIAkJCQlCQzgyODQ0RDE2QjUwODFDMDBB
Mjc4RkUgLyogUGx1Z2luU2VydmljZUVudHJ5UG9pbnQubW0gaW4gU291cmNlcyAqLywKIAkJCQkx
QTZGQjdBRTExRTY0QjY4MDBEQjEzNzEgLyogUGx1Z2luVmlldy5jcHAgaW4gU291cmNlcyAqLywK
KwkJCQk4M0EwRUQzNDFGNzQ3Q0NEMDAzMjk5RUIgLyogUHJlY29ubmVjdFRhc2suY3BwIGluIFNv
dXJjZXMgKi8sCiAJCQkJRTE4QzkyRjQxMkRCOUU3MTAwQ0YyQUVCIC8qIFByaW50SW5mby5jcHAg
aW4gU291cmNlcyAqLywKIAkJCQlFMUNDMUI5MTEyRDdFQURGMDA2MjU4MzggLyogUHJpbnRJbmZv
TWFjLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJMzc3MTZBNUExOTVCOTEwNTAwRUU4QjFCIC8qIFBy
b2Nlc3NBc3NlcnRpb24uY3BwIGluIFNvdXJjZXMgKi8sCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvTmV0d29yay9XZWJMb2FkZXJTdHJhdGVneS5jcHAgYi9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvTmV0d29yay9XZWJMb2FkZXJTdHJhdGVneS5jcHAKaW5kZXggZWE3YjE3
YTNkZWIuLjVhMjc5ZWYxM2EwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
TmV0d29yay9XZWJMb2FkZXJTdHJhdGVneS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL05ldHdvcmsvV2ViTG9hZGVyU3RyYXRlZ3kuY3BwCkBAIC00NTksNiArNDU5LDExIEBAIHZv
aWQgV2ViTG9hZGVyU3RyYXRlZ3k6OmRpZEZpbmlzaFBpbmdMb2FkKHVpbnQ2NF90IHBpbmdMb2Fk
SWRlbnRpZmllciwgUmVzb3VyY2VFCiAgICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKFdURk1vdmUo
ZXJyb3IpKTsKIH0KIAordm9pZCBXZWJMb2FkZXJTdHJhdGVneTo6cHJlY29ubmVjdFRvKGNvbnN0
IFdlYkNvcmU6OlVSTCYgdXJsKQoreworICAgIFdlYlByb2Nlc3M6OnNpbmdsZXRvbigpLm5ldHdv
cmtDb25uZWN0aW9uKCkuY29ubmVjdGlvbigpLnNlbmQoTWVzc2FnZXM6Ok5ldHdvcmtDb25uZWN0
aW9uVG9XZWJQcm9jZXNzOjpQcmVjb25uZWN0VG8odXJsKSwgMCk7Cit9CisKIHZvaWQgV2ViTG9h
ZGVyU3RyYXRlZ3k6OnN0b3JlRGVyaXZlZERhdGFUb0NhY2hlKGNvbnN0IFNIQTE6OkRpZ2VzdCYg
Ym9keUhhc2gsIGNvbnN0IFN0cmluZyYgdHlwZSwgY29uc3QgU3RyaW5nJiBwYXJ0aXRpb24sIFdl
YkNvcmU6OlNoYXJlZEJ1ZmZlciYgZGF0YSkKIHsKICNpZiBFTkFCTEUoTkVUV09SS19DQUNIRSkK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9OZXR3b3JrL1dlYkxvYWRlclN0
cmF0ZWd5LmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvTmV0d29yay9XZWJMb2FkZXJTdHJh
dGVneS5oCmluZGV4IDU3MzAyOGU1YTdiLi4xMWY3OTBjNjAwZSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL05ldHdvcmsvV2ViTG9hZGVyU3RyYXRlZ3kuaAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvTmV0d29yay9XZWJMb2FkZXJTdHJhdGVneS5oCkBAIC02Miw2
ICs2Miw4IEBAIHB1YmxpYzoKICAgICB2b2lkIHN0YXJ0UGluZ0xvYWQoV2ViQ29yZTo6RnJhbWUm
LCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmLCBjb25zdCBXZWJDb3JlOjpIVFRQSGVhZGVyTWFw
JiBvcmlnaW5hbFJlcXVlc3RIZWFkZXJzLCBjb25zdCBXZWJDb3JlOjpGZXRjaE9wdGlvbnMmLCBQ
aW5nTG9hZENvbXBsZXRpb25IYW5kbGVyJiYpIGZpbmFsOwogICAgIHZvaWQgZGlkRmluaXNoUGlu
Z0xvYWQodWludDY0X3QgcGluZ0xvYWRJZGVudGlmaWVyLCBXZWJDb3JlOjpSZXNvdXJjZUVycm9y
JiYpOwogCisgICAgdm9pZCBwcmVjb25uZWN0VG8oY29uc3QgV2ViQ29yZTo6VVJMJikgZmluYWw7
CisKICAgICB2b2lkIHN0b3JlRGVyaXZlZERhdGFUb0NhY2hlKGNvbnN0IFNIQTE6OkRpZ2VzdCYg
Ym9keUhhc2gsIGNvbnN0IFN0cmluZyYgdHlwZSwgY29uc3QgU3RyaW5nJiBwYXJ0aXRpb24sIFdl
YkNvcmU6OlNoYXJlZEJ1ZmZlciYpIGZpbmFsOwogCiAgICAgdm9pZCBzZXRDYXB0dXJlRXh0cmFO
ZXR3b3JrTG9hZE1ldHJpY3NFbmFibGVkKGJvb2wpIGZpbmFsOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcAppbmRleCA4MjYxZTMzNDU4Mi4uYThkZWU2ZjVi
N2MgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2Uu
Y3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwCkBA
IC0zMDkwLDYgKzMwOTAsNyBAQCB2b2lkIFdlYlBhZ2U6OnVwZGF0ZVByZWZlcmVuY2VzKGNvbnN0
IFdlYlByZWZlcmVuY2VzU3RvcmUmIHN0b3JlKQogICAgIHNldHRpbmdzLnNldFBhZ2luYXRlRHVy
aW5nTGF5b3V0RW5hYmxlZChzdG9yZS5nZXRCb29sVmFsdWVGb3JLZXkoV2ViUHJlZmVyZW5jZXNL
ZXk6OnBhZ2luYXRlRHVyaW5nTGF5b3V0RW5hYmxlZEtleSgpKSk7CiAgICAgc2V0dGluZ3Muc2V0
RE9NUGFzdGVBbGxvd2VkKHN0b3JlLmdldEJvb2xWYWx1ZUZvcktleShXZWJQcmVmZXJlbmNlc0tl
eTo6ZG9tUGFzdGVBbGxvd2VkS2V5KCkpKTsKICAgICBzZXR0aW5ncy5zZXRKYXZhU2NyaXB0Q2Fu
QWNjZXNzQ2xpcGJvYXJkKHN0b3JlLmdldEJvb2xWYWx1ZUZvcktleShXZWJQcmVmZXJlbmNlc0tl
eTo6amF2YVNjcmlwdENhbkFjY2Vzc0NsaXBib2FyZEtleSgpKSk7CisgICAgc2V0dGluZ3Muc2V0
TGlua1ByZWNvbm5lY3RFbmFibGVkKHN0b3JlLmdldEJvb2xWYWx1ZUZvcktleShXZWJQcmVmZXJl
bmNlc0tleTo6bGlua1ByZWNvbm5lY3RLZXkoKSkpOwogICAgIHNldHRpbmdzLnNldFNob3VsZFBy
aW50QmFja2dyb3VuZHMoc3RvcmUuZ2V0Qm9vbFZhbHVlRm9yS2V5KFdlYlByZWZlcmVuY2VzS2V5
OjpzaG91bGRQcmludEJhY2tncm91bmRzS2V5KCkpKTsKICAgICBzZXR0aW5ncy5zZXRXZWJTZWN1
cml0eUVuYWJsZWQoc3RvcmUuZ2V0Qm9vbFZhbHVlRm9yS2V5KFdlYlByZWZlcmVuY2VzS2V5Ojp3
ZWJTZWN1cml0eUVuYWJsZWRLZXkoKSkpOwogICAgIHNldHRpbmdzLnNldEFsbG93VW5pdmVyc2Fs
QWNjZXNzRnJvbUZpbGVVUkxzKHN0b3JlLmdldEJvb2xWYWx1ZUZvcktleShXZWJQcmVmZXJlbmNl
c0tleTo6YWxsb3dVbml2ZXJzYWxBY2Nlc3NGcm9tRmlsZVVSTHNLZXkoKSkpOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9jb25maWcuaCBiL1NvdXJjZS9XZWJLaXQvY29uZmlnLmgKaW5kZXgg
ZTg2N2Y0ODdjNzEuLmNhZjRmZDc3YmNhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2NvbmZp
Zy5oCisrKyBiL1NvdXJjZS9XZWJLaXQvY29uZmlnLmgKQEAgLTg4LDYgKzg4LDEyIEBACiAjZW5k
aWYKICNlbmRpZgogCisjaWYgVVNFKE5FVFdPUktfU0VTU0lPTikgJiYgKChQTEFURk9STShNQUMp
ICYmIF9fTUFDX09TX1hfVkVSU0lPTl9NSU5fUkVRVUlSRUQgPj0gMTAxMzAwKSB8fCAoUExBVEZP
Uk0oSU9TKSAmJiBfX0lQSE9ORV9PU19WRVJTSU9OX01JTl9SRVFVSVJFRCA+PSAxMTAwMDApKQor
I2lmbmRlZiBFTkFCTEVfU0VSVkVSX1BSRUNPTk5FQ1QKKyNkZWZpbmUgRU5BQkxFX1NFUlZFUl9Q
UkVDT05ORUNUIDEKKyNlbmRpZgorI2VuZGlmCisKICNpZm5kZWYgSEFWRV9TRUNfQUNDRVNTX0NP
TlRST0wKICNpZiBQTEFURk9STShJT1MpIHx8IFBMQVRGT1JNKE1BQykKICNkZWZpbmUgSEFWRV9T
RUNfQUNDRVNTX0NPTlRST0wgMQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdExlZ2FjeS9XZWJD
b3JlU3VwcG9ydC9XZWJSZXNvdXJjZUxvYWRTY2hlZHVsZXIuY3BwIGIvU291cmNlL1dlYktpdExl
Z2FjeS9XZWJDb3JlU3VwcG9ydC9XZWJSZXNvdXJjZUxvYWRTY2hlZHVsZXIuY3BwCmluZGV4IDRk
Mjk4NWQxYTQzLi5jZWJlZjRhMTgwMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS9X
ZWJDb3JlU3VwcG9ydC9XZWJSZXNvdXJjZUxvYWRTY2hlZHVsZXIuY3BwCisrKyBiL1NvdXJjZS9X
ZWJLaXRMZWdhY3kvV2ViQ29yZVN1cHBvcnQvV2ViUmVzb3VyY2VMb2FkU2NoZWR1bGVyLmNwcApA
QCAtMzY5LDMgKzM2OSw3IEBAIHZvaWQgV2ViUmVzb3VyY2VMb2FkU2NoZWR1bGVyOjpzdGFydFBp
bmdMb2FkKEZyYW1lJiBmcmFtZSwgUmVzb3VyY2VSZXF1ZXN0JiByZXF1CiAgICAgbmV3IFBpbmdI
YW5kbGUoZnJhbWUubG9hZGVyKCkubmV0d29ya2luZ0NvbnRleHQoKSwgcmVxdWVzdCwgb3B0aW9u
cy5jcmVkZW50aWFscyAhPSBGZXRjaE9wdGlvbnM6OkNyZWRlbnRpYWxzOjpPbWl0LCBQaW5nSGFu
ZGxlOjpVc2VzQXN5bmNDYWxsYmFja3M6Ok5vLCBvcHRpb25zLnJlZGlyZWN0ID09IEZldGNoT3B0
aW9uczo6UmVkaXJlY3Q6OkZvbGxvdywgV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcikpOwogfQog
Cit2b2lkIFdlYlJlc291cmNlTG9hZFNjaGVkdWxlcjo6cHJlY29ubmVjdFRvKGNvbnN0IFVSTCYp
Cit7Cit9CisKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvV2ViQ29yZVN1cHBvcnQv
V2ViUmVzb3VyY2VMb2FkU2NoZWR1bGVyLmggYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L1dlYkNvcmVT
dXBwb3J0L1dlYlJlc291cmNlTG9hZFNjaGVkdWxlci5oCmluZGV4IDBlMGMyZGU1NzdjLi45ZWRj
NTU1NzlhMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS9XZWJDb3JlU3VwcG9ydC9X
ZWJSZXNvdXJjZUxvYWRTY2hlZHVsZXIuaAorKysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L1dlYkNv
cmVTdXBwb3J0L1dlYlJlc291cmNlTG9hZFNjaGVkdWxlci5oCkBAIC02MSw2ICs2MSw4IEBAIHB1
YmxpYzoKIAogICAgIHZvaWQgc3RhcnRQaW5nTG9hZChXZWJDb3JlOjpGcmFtZSYsIFdlYkNvcmU6
OlJlc291cmNlUmVxdWVzdCYsIGNvbnN0IFdlYkNvcmU6OkhUVFBIZWFkZXJNYXAmLCBjb25zdCBX
ZWJDb3JlOjpGZXRjaE9wdGlvbnMmLCBQaW5nTG9hZENvbXBsZXRpb25IYW5kbGVyJiYpIGZpbmFs
OwogCisgICAgdm9pZCBwcmVjb25uZWN0VG8oY29uc3QgV2ViQ29yZTo6VVJMJikgZmluYWw7CisK
ICAgICB2b2lkIHN0b3JlRGVyaXZlZERhdGFUb0NhY2hlKGNvbnN0IFNIQTE6OkRpZ2VzdCYsIGNv
bnN0IFN0cmluZyYsIGNvbnN0IFN0cmluZyYsIFdlYkNvcmU6OlNoYXJlZEJ1ZmZlciYpIGZpbmFs
IHsgfQogCiAgICAgdm9pZCBzZXRDYXB0dXJlRXh0cmFOZXR3b3JrTG9hZE1ldHJpY3NFbmFibGVk
KGJvb2wpIGZpbmFsIHsgfQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>321768</attachid>
            <date>2017-09-25 16:57:10 -0700</date>
            <delta_ts>2017-09-25 17:02:44 -0700</delta_ts>
            <desc>WIP Patch</desc>
            <filename>177474_preconnect_support_wip.patch</filename>
            <type>text/plain</type>
            <size>42003</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvaHRtbC9saW5rLXJlbC1wcmVjb25uZWN0LWV4
cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvaHRtbC9saW5rLXJlbC1wcmVjb25uZWN0LWV4
cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uYzVhM2Y1
ZDcxZWIKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2h0bWwvbGluay1yZWwt
cHJlY29ubmVjdC1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwxMiBAQAorVGVzdHMgdGhhdCBMaW5r
J3MgcmVsPXByZWNvbm5lY3QgaXMgcmVwb3J0ZWQgYXMgc3VwcG9ydGVkLgorCitPbiBzdWNjZXNz
LCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAi
VEVTVCBDT01QTEVURSIuCisKKworUEFTUyB0ZXN0TGluay5yZWxMaXN0Lmxlbmd0aCBpcyAxCitQ
QVNTIHRlc3RMaW5rLnJlbExpc3RbMF0gaXMgInByZWNvbm5lY3QiCitQQVNTIHRlc3RMaW5rLnJl
bExpc3Quc3VwcG9ydHMoJ3ByZWNvbm5lY3QnKSBpcyB0cnVlCitQQVNTIHN1Y2Nlc3NmdWxseVBh
cnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
ZmFzdC9odG1sL2xpbmstcmVsLXByZWNvbm5lY3QuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvaHRt
bC9saW5rLXJlbC1wcmVjb25uZWN0Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAuLjJkMTQ2MWFmYmMzCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFz
dC9odG1sL2xpbmstcmVsLXByZWNvbm5lY3QuaHRtbApAQCAtMCwwICsxLDE3IEBACis8IURPQ1RZ
UEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+Cis8bGluayBpZD0idGVzdExpbmsiIHJlbD0icHJlY29u
bmVjdCIgaHJlZj0iaHR0cDovL2xvY2FsaG9zdDo4MDAwIj4KKzxzY3JpcHQgc3JjPSIuLi8uLi9y
ZXNvdXJjZXMvanMtdGVzdC5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxzY3JpcHQ+
CitkZXNjcmlwdGlvbigiVGVzdHMgdGhhdCBMaW5rJ3MgcmVsPXByZWNvbm5lY3QgaXMgcmVwb3J0
ZWQgYXMgc3VwcG9ydGVkLiIpOworCitjb25zdCB0ZXN0TGluayA9IGRvY3VtZW50LmdldEVsZW1l
bnRCeUlkKCJ0ZXN0TGluayIpOworc2hvdWxkQmUoInRlc3RMaW5rLnJlbExpc3QubGVuZ3RoIiwg
IjEiKTsKK3Nob3VsZEJlRXF1YWxUb1N0cmluZygidGVzdExpbmsucmVsTGlzdFswXSIsICJwcmVj
b25uZWN0Iik7CitzaG91bGRCZVRydWUoInRlc3RMaW5rLnJlbExpc3Quc3VwcG9ydHMoJ3ByZWNv
bm5lY3QnKSIpOworPC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9wbGF0Zm9ybS9tYWMtd2sxL1Rlc3RFeHBlY3RhdGlvbnMgYi9MYXlvdXRUZXN0cy9w
bGF0Zm9ybS9tYWMtd2sxL1Rlc3RFeHBlY3RhdGlvbnMKaW5kZXggODAzNzMzMzRmZWYuLmJhN2E0
YjI3ZWVhIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMtd2sxL1Rlc3RFeHBl
Y3RhdGlvbnMKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjLXdrMS9UZXN0RXhwZWN0YXRp
b25zCkBAIC0zOTksNiArMzk5LDkgQEAgZmFzdC9pbWFnZXMvbG93LW1lbW9yeS1kZWNvZGUuaHRt
bCBbIFNraXAgXQogCiBodHRwL3Rlc3RzL3dvcmtlcnMvc2VydmljZSBbIFNraXAgXQogCisjIExp
bmsgcHJlY29ubmVjdCBpcyBub3QgZW5hYmxlZCBvbiBXSzEuCitmYXN0L2h0bWwvbGluay1yZWwt
cHJlY29ubmVjdC5odG1sIFsgRmFpbHVyZSBdCisKIHdlYmtpdC5vcmcvYi8xNzUzNDUgZmFzdC9p
bWFnZXMvYW5pbWF0ZWQtZ2lmLXNjcm9sbGluZy1jcmFzaC5odG1sIFsgUGFzcyBUaW1lb3V0IF0K
IAogd2Via2l0Lm9yZy9iLzE3NTU1NCBbIFNpZXJyYSBdIGZ1bGxzY3JlZW4vZnVsbC1zY3JlZW4t
aWZyYW1lLWxlZ2FjeS5odG1sIFsgUGFzcyBGYWlsdXJlIF0KZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL3BsYXRmb3JtL21hYy13azIvVGVzdEV4cGVjdGF0aW9ucyBiL0xheW91dFRlc3RzL3BsYXRm
b3JtL21hYy13azIvVGVzdEV4cGVjdGF0aW9ucwppbmRleCAwN2FiNDY4ZDEzZC4uNzI2MThhMzE0
OGUgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy13azIvVGVzdEV4cGVjdGF0
aW9ucworKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMtd2syL1Rlc3RFeHBlY3RhdGlvbnMK
QEAgLTcyOCw2ICs3MjgsOSBAQCB3ZWJraXQub3JnL2IvMTcyODM0IFsgRWxDYXBpdGFuIF0gaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9JbmRleGVkREIvaWRibwogWyBFbENhcGl0YW4g
XSBpbXBvcnRlZC9ibGluay9mYXN0L2JlYWNvbi8gWyBTa2lwIF0KIFsgRWxDYXBpdGFuIF0gaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9iZWFjb24vIFsgU2tpcCBdCiAKKyMgUmVxdWly
ZXMgTkVUV09SS19TRVNTSU9OIHRvIGJlIGVuYWJsZWQuCitbIEVsQ2FwaXRhbiBdIGZhc3QvaHRt
bC9saW5rLXJlbC1wcmVjb25uZWN0Lmh0bWwgWyBGYWlsdXJlIF0KKwogd2Via2l0Lm9yZy9iLzE3
MjIwMSB3ZWJhdWRpby9zaWxlbnQtYXVkaW8taW50ZXJydXB0ZWQtaW4tYmFja2dyb3VuZC5odG1s
IFsgUGFzcyBUaW1lb3V0IF0KIAogd2Via2l0Lm9yZy9iLzE2Nzc1NyB3b3JrZXJzL2JvbWIuaHRt
bCBbIFBhc3MgVGltZW91dCBdCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL3Nw
aS9jZi9DRk5ldHdvcmtTUEkuaCBiL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvc3BpL2NmL0NGTmV0
d29ya1NQSS5oCmluZGV4IDNlNTg0M2VhZDViLi42ODFkYmJiM2I4MCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvUEFML3BhbC9zcGkvY2YvQ0ZOZXR3b3JrU1BJLmgKKysrIGIvU291cmNlL1dl
YkNvcmUvUEFML3BhbC9zcGkvY2YvQ0ZOZXR3b3JrU1BJLmgKQEAgLTExMyw2ICsxMTMsMTIgQEAg
dHlwZWRlZiB2b2lkICheQ0ZDYWNoZWRVUkxSZXNwb25zZUNhbGxCYWNrQmxvY2spKENGQ2FjaGVk
VVJMUmVzcG9uc2VSZWYpOwogLSAoTlNEaWN0aW9uYXJ5ICopX3RpbWluZ0RhdGE7CiBAZW5kCiAK
KyNpZiAoUExBVEZPUk0oTUFDKSAmJiBfX01BQ19PU19YX1ZFUlNJT05fTUlOX1JFUVVJUkVEID49
IDEwMTMwMCkgfHwgKFBMQVRGT1JNKElPUykgJiYgX19JUEhPTkVfT1NfVkVSU0lPTl9NSU5fUkVR
VUlSRUQgPj0gMTEwMDAwKQorQGludGVyZmFjZSBOU1VSTFNlc3Npb25UYXNrIChSZXNvdXJjZUhp
bnRzKQorQHByb3BlcnR5IChub25hdG9taWMsIGFzc2lnbikgQk9PTCBfcHJlY29ubmVjdDsKK0Bl
bmQKKyNlbmRpZgorCiBAaW50ZXJmYWNlIE5TSFRUUENvb2tpZSAoKQogLSAoQ0ZIVFRQQ29va2ll
UmVmKV9DRkhUVFBDb29raWU7CiArIChDRkFycmF5UmVmIF9fbnVsbGFibGUpX25zMmNmQ29va2ll
czooTlNBcnJheSAqIF9fbnVsbGFibGUpbnNDb29raWVzIENGX1JFVFVSTlNfUkVUQUlORUQ7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0RPTVRva2VuTGlzdC5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9odG1sL0RPTVRva2VuTGlzdC5jcHAKaW5kZXggMjU1NWI2ODQ0NmIuLjdjYWIxYjcz
NmEwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0RPTVRva2VuTGlzdC5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvaHRtbC9ET01Ub2tlbkxpc3QuY3BwCkBAIC0zNSw3ICszNSw3IEBA
CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotRE9NVG9rZW5MaXN0OjpET01Ub2tlbkxpc3QoRWxl
bWVudCYgZWxlbWVudCwgY29uc3QgUXVhbGlmaWVkTmFtZSYgYXR0cmlidXRlTmFtZSwgV1RGOjpG
dW5jdGlvbjxib29sKFN0cmluZ1ZpZXcpPiYmIGlzU3VwcG9ydGVkVG9rZW4pCitET01Ub2tlbkxp
c3Q6OkRPTVRva2VuTGlzdChFbGVtZW50JiBlbGVtZW50LCBjb25zdCBRdWFsaWZpZWROYW1lJiBh
dHRyaWJ1dGVOYW1lLCBJc1N1cHBvcnRlZFRva2VuRnVuY3Rpb24mJiBpc1N1cHBvcnRlZFRva2Vu
KQogICAgIDogbV9lbGVtZW50KGVsZW1lbnQpCiAgICAgLCBtX2F0dHJpYnV0ZU5hbWUoYXR0cmli
dXRlTmFtZSkKICAgICAsIG1faXNTdXBwb3J0ZWRUb2tlbihXVEZNb3ZlKGlzU3VwcG9ydGVkVG9r
ZW4pKQpAQCAtMTkxLDcgKzE5MSw3IEBAIEV4Y2VwdGlvbk9yPGJvb2w+IERPTVRva2VuTGlzdDo6
c3VwcG9ydHMoU3RyaW5nVmlldyB0b2tlbikKIHsKICAgICBpZiAoIW1faXNTdXBwb3J0ZWRUb2tl
bikKICAgICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7IFR5cGVFcnJvciB9OwotICAgIHJldHVybiBt
X2lzU3VwcG9ydGVkVG9rZW4odG9rZW4pOworICAgIHJldHVybiBtX2lzU3VwcG9ydGVkVG9rZW4o
bV9lbGVtZW50LmRvY3VtZW50KCksIHRva2VuKTsKIH0KIAogLy8gaHR0cHM6Ly9kb20uc3BlYy53
aGF0d2cub3JnLyNkb20tZG9tdG9rZW5saXN0LXZhbHVlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9odG1sL0RPTVRva2VuTGlzdC5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9ET01Ub2tlbkxp
c3QuaAppbmRleCAyMWZiNDZmNDYxMi4uZDYwZDE3Y2M5MTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvRE9NVG9rZW5MaXN0LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9ET01U
b2tlbkxpc3QuaApAQCAtMzIsNyArMzIsOCBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiBjbGFzcyBE
T01Ub2tlbkxpc3QgewogICAgIFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOwogcHVibGljOgotICAg
IERPTVRva2VuTGlzdChFbGVtZW50JiwgY29uc3QgUXVhbGlmaWVkTmFtZSYgYXR0cmlidXRlTmFt
ZSwgV1RGOjpGdW5jdGlvbjxib29sKFN0cmluZ1ZpZXcpPiYmIGlzU3VwcG9ydGVkVG9rZW4gPSB7
IH0pOworICAgIHVzaW5nIElzU3VwcG9ydGVkVG9rZW5GdW5jdGlvbiA9IFdURjo6RnVuY3Rpb248
Ym9vbChEb2N1bWVudCYsIFN0cmluZ1ZpZXcpPjsKKyAgICBET01Ub2tlbkxpc3QoRWxlbWVudCYs
IGNvbnN0IFF1YWxpZmllZE5hbWUmIGF0dHJpYnV0ZU5hbWUsIElzU3VwcG9ydGVkVG9rZW5GdW5j
dGlvbiYmIGlzU3VwcG9ydGVkVG9rZW4gPSB7IH0pOwogCiAgICAgdm9pZCBhc3NvY2lhdGVkQXR0
cmlidXRlVmFsdWVDaGFuZ2VkKGNvbnN0IEF0b21pY1N0cmluZyYpOwogCkBAIC03Myw3ICs3NCw3
IEBAIHByaXZhdGU6CiAgICAgYm9vbCBtX2luVXBkYXRlQXNzb2NpYXRlZEF0dHJpYnV0ZUZyb21U
b2tlbnMgeyBmYWxzZSB9OwogICAgIGJvb2wgbV90b2tlbnNOZWVkVXBkYXRpbmcgeyB0cnVlIH07
CiAgICAgVmVjdG9yPEF0b21pY1N0cmluZz4gbV90b2tlbnM7Ci0gICAgV1RGOjpGdW5jdGlvbjxi
b29sKFN0cmluZ1ZpZXcpPiBtX2lzU3VwcG9ydGVkVG9rZW47CisgICAgSXNTdXBwb3J0ZWRUb2tl
bkZ1bmN0aW9uIG1faXNTdXBwb3J0ZWRUb2tlbjsKIH07CiAKIGlubGluZSB1bnNpZ25lZCBET01U
b2tlbkxpc3Q6Omxlbmd0aCgpIGNvbnN0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1s
L0hUTUxBbmNob3JFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEFuY2hvckVs
ZW1lbnQuY3BwCmluZGV4IGNiMWYxYzlmNTQ2Li40ODgxYzNkOWU4YSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvaHRtbC9IVE1MQW5jaG9yRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvaHRtbC9IVE1MQW5jaG9yRWxlbWVudC5jcHAKQEAgLTMwNyw3ICszMDcsNyBAQCBib29sIEhU
TUxBbmNob3JFbGVtZW50OjpoYXNSZWwoUmVsYXRpb24gcmVsYXRpb24pIGNvbnN0CiBET01Ub2tl
bkxpc3QmIEhUTUxBbmNob3JFbGVtZW50OjpyZWxMaXN0KCkKIHsKICAgICBpZiAoIW1fcmVsTGlz
dCkgCi0gICAgICAgIG1fcmVsTGlzdCA9IHN0ZDo6bWFrZV91bmlxdWU8RE9NVG9rZW5MaXN0Pigq
dGhpcywgSFRNTE5hbWVzOjpyZWxBdHRyLCBbXShTdHJpbmdWaWV3IHRva2VuKSB7CisgICAgICAg
IG1fcmVsTGlzdCA9IHN0ZDo6bWFrZV91bmlxdWU8RE9NVG9rZW5MaXN0PigqdGhpcywgSFRNTE5h
bWVzOjpyZWxBdHRyLCBbXShEb2N1bWVudCYsIFN0cmluZ1ZpZXcgdG9rZW4pIHsKICAgICAgICAg
ICAgIHJldHVybiBlcXVhbElnbm9yaW5nQVNDSUlDYXNlKHRva2VuLCAibm9yZWZlcnJlciIpIHx8
IGVxdWFsSWdub3JpbmdBU0NJSUNhc2UodG9rZW4sICJub29wZW5lciIpOwogICAgICAgICB9KTsK
ICAgICByZXR1cm4gKm1fcmVsTGlzdDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwv
SFRNTElGcmFtZUVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MSUZyYW1lRWxl
bWVudC5jcHAKaW5kZXggZDMwMzIyZGMwYzQuLjIyM2UzYjAzMzFhIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL0hUTUxJRnJhbWVFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9odG1sL0hUTUxJRnJhbWVFbGVtZW50LmNwcApAQCAtNTEsNyArNTEsNyBAQCBSZWY8SFRNTElG
cmFtZUVsZW1lbnQ+IEhUTUxJRnJhbWVFbGVtZW50OjpjcmVhdGUoY29uc3QgUXVhbGlmaWVkTmFt
ZSYgdGFnTmFtZSwgRAogRE9NVG9rZW5MaXN0JiBIVE1MSUZyYW1lRWxlbWVudDo6c2FuZGJveCgp
CiB7CiAgICAgaWYgKCFtX3NhbmRib3gpCi0gICAgICAgIG1fc2FuZGJveCA9IHN0ZDo6bWFrZV91
bmlxdWU8RE9NVG9rZW5MaXN0PigqdGhpcywgc2FuZGJveEF0dHIsIFtdKFN0cmluZ1ZpZXcgdG9r
ZW4pIHsKKyAgICAgICAgbV9zYW5kYm94ID0gc3RkOjptYWtlX3VuaXF1ZTxET01Ub2tlbkxpc3Q+
KCp0aGlzLCBzYW5kYm94QXR0ciwgW10oRG9jdW1lbnQmLCBTdHJpbmdWaWV3IHRva2VuKSB7CiAg
ICAgICAgICAgICByZXR1cm4gU2VjdXJpdHlDb250ZXh0Ojppc1N1cHBvcnRlZFNhbmRib3hQb2xp
Y3kodG9rZW4pOwogICAgICAgICB9KTsKICAgICByZXR1cm4gKm1fc2FuZGJveDsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTExpbmtFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJD
b3JlL2h0bWwvSFRNTExpbmtFbGVtZW50LmNwcAppbmRleCBlMDFiNmUzYjRjOC4uZTdkMGY3Y2M3
NDIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTExpbmtFbGVtZW50LmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxMaW5rRWxlbWVudC5jcHAKQEAgLTE1Niw3ICsx
NTYsNyBAQCB2b2lkIEhUTUxMaW5rRWxlbWVudDo6c2V0RGlzYWJsZWRTdGF0ZShib29sIGRpc2Fi
bGVkKQogdm9pZCBIVE1MTGlua0VsZW1lbnQ6OnBhcnNlQXR0cmlidXRlKGNvbnN0IFF1YWxpZmll
ZE5hbWUmIG5hbWUsIGNvbnN0IEF0b21pY1N0cmluZyYgdmFsdWUpCiB7CiAgICAgaWYgKG5hbWUg
PT0gcmVsQXR0cikgewotICAgICAgICBtX3JlbEF0dHJpYnV0ZSA9IExpbmtSZWxBdHRyaWJ1dGUo
dmFsdWUpOworICAgICAgICBtX3JlbEF0dHJpYnV0ZSA9IExpbmtSZWxBdHRyaWJ1dGUoZG9jdW1l
bnQoKSwgdmFsdWUpOwogICAgICAgICBpZiAobV9yZWxMaXN0KQogICAgICAgICAgICAgbV9yZWxM
aXN0LT5hc3NvY2lhdGVkQXR0cmlidXRlVmFsdWVDaGFuZ2VkKHZhbHVlKTsKICAgICAgICAgcHJv
Y2VzcygpOwpAQCAtNDk4LDggKzQ5OCw4IEBAIHZvaWQgSFRNTExpbmtFbGVtZW50OjpkaXNwYXRj
aFBlbmRpbmdFdmVudChMaW5rRXZlbnRTZW5kZXIqIGV2ZW50U2VuZGVyKQogRE9NVG9rZW5MaXN0
JiBIVE1MTGlua0VsZW1lbnQ6OnJlbExpc3QoKQogewogICAgIGlmICghbV9yZWxMaXN0KSAKLSAg
ICAgICAgbV9yZWxMaXN0ID0gc3RkOjptYWtlX3VuaXF1ZTxET01Ub2tlbkxpc3Q+KCp0aGlzLCBI
VE1MTmFtZXM6OnJlbEF0dHIsIFtdKFN0cmluZ1ZpZXcgdG9rZW4pIHsKLSAgICAgICAgICAgIHJl
dHVybiBMaW5rUmVsQXR0cmlidXRlOjppc1N1cHBvcnRlZCh0b2tlbik7CisgICAgICAgIG1fcmVs
TGlzdCA9IHN0ZDo6bWFrZV91bmlxdWU8RE9NVG9rZW5MaXN0PigqdGhpcywgSFRNTE5hbWVzOjpy
ZWxBdHRyLCBbXShEb2N1bWVudCYgZG9jdW1lbnQsIFN0cmluZ1ZpZXcgdG9rZW4pIHsKKyAgICAg
ICAgICAgIHJldHVybiBMaW5rUmVsQXR0cmlidXRlOjppc1N1cHBvcnRlZChkb2N1bWVudCwgdG9r
ZW4pOwogICAgICAgICB9KTsKICAgICByZXR1cm4gKm1fcmVsTGlzdDsKIH0KZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2h0bWwvTGlua1JlbEF0dHJpYnV0ZS5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9odG1sL0xpbmtSZWxBdHRyaWJ1dGUuY3BwCmluZGV4IDg2NmFmZDhlNWViLi41NzJiZGIzNGM1
OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9MaW5rUmVsQXR0cmlidXRlLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0xpbmtSZWxBdHRyaWJ1dGUuY3BwCkBAIC0zMiw4ICsz
MiwxMCBAQAogI2luY2x1ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUgIkxpbmtSZWxBdHRyaWJ1dGUu
aCIKIAorI2luY2x1ZGUgIkRvY3VtZW50LmgiCiAjaW5jbHVkZSAiTGlua0ljb25UeXBlLmgiCiAj
aW5jbHVkZSAiUnVudGltZUVuYWJsZWRGZWF0dXJlcy5oIgorI2luY2x1ZGUgIlNldHRpbmdzLmgi
CiAjaW5jbHVkZSA8d3RmL3RleHQvU3RyaW5nVmlldy5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L1dU
RlN0cmluZy5oPgogCkBAIC00NCw3ICs0Niw3IEBAIExpbmtSZWxBdHRyaWJ1dGU6OkxpbmtSZWxB
dHRyaWJ1dGUoKQogfQogCiAvLyBLZWVwIExpbmtSZWxBdHRyaWJ1dGU6OmlzU3VwcG9ydGVkKCkg
aW4gc3luYyB3aGVuIHVwZGF0aW5nIHRoaXMgY29uc3RydWN0b3IuCi1MaW5rUmVsQXR0cmlidXRl
OjpMaW5rUmVsQXR0cmlidXRlKGNvbnN0IFN0cmluZyYgcmVsKQorTGlua1JlbEF0dHJpYnV0ZTo6
TGlua1JlbEF0dHJpYnV0ZShEb2N1bWVudCYgZG9jdW1lbnQsIGNvbnN0IFN0cmluZyYgcmVsKQog
ewogICAgIGlmIChlcXVhbExldHRlcnNJZ25vcmluZ0FTQ0lJQ2FzZShyZWwsICJzdHlsZXNoZWV0
IikpCiAgICAgICAgIGlzU3R5bGVTaGVldCA9IHRydWU7CkBAIC01Niw2ICs1OCw4IEBAIExpbmtS
ZWxBdHRyaWJ1dGU6OkxpbmtSZWxBdHRyaWJ1dGUoY29uc3QgU3RyaW5nJiByZWwpCiAgICAgICAg
IGljb25UeXBlID0gTGlua0ljb25UeXBlOjpUb3VjaFByZWNvbXBvc2VkSWNvbjsKICAgICBlbHNl
IGlmIChlcXVhbExldHRlcnNJZ25vcmluZ0FTQ0lJQ2FzZShyZWwsICJkbnMtcHJlZmV0Y2giKSkK
ICAgICAgICAgaXNETlNQcmVmZXRjaCA9IHRydWU7CisgICAgZWxzZSBpZiAoZG9jdW1lbnQuc2V0
dGluZ3MoKS5saW5rUHJlY29ubmVjdEVuYWJsZWQoKSAmJiBlcXVhbExldHRlcnNJZ25vcmluZ0FT
Q0lJQ2FzZShyZWwsICJwcmVjb25uZWN0IikpCisgICAgICAgIGlzTGlua1ByZWNvbm5lY3QgPSB0
cnVlOwogICAgIGVsc2UgaWYgKFJ1bnRpbWVFbmFibGVkRmVhdHVyZXM6OnNoYXJlZEZlYXR1cmVz
KCkubGlua1ByZWxvYWRFbmFibGVkKCkgJiYgZXF1YWxMZXR0ZXJzSWdub3JpbmdBU0NJSUNhc2Uo
cmVsLCAicHJlbG9hZCIpKQogICAgICAgICBpc0xpbmtQcmVsb2FkID0gdHJ1ZTsKICAgICBlbHNl
IGlmIChlcXVhbExldHRlcnNJZ25vcmluZ0FTQ0lJQ2FzZShyZWwsICJhbHRlcm5hdGUgc3R5bGVz
aGVldCIpIHx8IGVxdWFsTGV0dGVyc0lnbm9yaW5nQVNDSUlDYXNlKHJlbCwgInN0eWxlc2hlZXQg
YWx0ZXJuYXRlIikpIHsKQEAgLTg3LDcgKzkxLDcgQEAgTGlua1JlbEF0dHJpYnV0ZTo6TGlua1Jl
bEF0dHJpYnV0ZShjb25zdCBTdHJpbmcmIHJlbCkKIH0KIAogLy8gaHR0cHM6Ly9odG1sLnNwZWMu
d2hhdHdnLm9yZy8jbGlua1R5cGVzCi1ib29sIExpbmtSZWxBdHRyaWJ1dGU6OmlzU3VwcG9ydGVk
KFN0cmluZ1ZpZXcgYXR0cmlidXRlKQorYm9vbCBMaW5rUmVsQXR0cmlidXRlOjppc1N1cHBvcnRl
ZChEb2N1bWVudCYgZG9jdW1lbnQsIFN0cmluZ1ZpZXcgYXR0cmlidXRlKQogewogICAgIHN0YXRp
YyBjb25zdCBjaGFyKiBjb25zdCBzdXBwb3J0ZWRBdHRyaWJ1dGVzW10gPSB7CiAgICAgICAgICJh
bHRlcm5hdGUiLCAiZG5zLXByZWZldGNoIiwgImljb24iLCAic3R5bGVzaGVldCIsICJhcHBsZS10
b3VjaC1pY29uIiwgImFwcGxlLXRvdWNoLWljb24tcHJlY29tcG9zZWQiLApAQCAtMTAxLDYgKzEw
NSw5IEBAIGJvb2wgTGlua1JlbEF0dHJpYnV0ZTo6aXNTdXBwb3J0ZWQoU3RyaW5nVmlldyBhdHRy
aWJ1dGUpCiAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICB9CiAKKyAgICBpZiAoZG9jdW1l
bnQuc2V0dGluZ3MoKS5saW5rUHJlY29ubmVjdEVuYWJsZWQoKSAmJiBlcXVhbElnbm9yaW5nQVND
SUlDYXNlKGF0dHJpYnV0ZSwgInByZWNvbm5lY3QiKSkKKyAgICAgICAgcmV0dXJuIHRydWU7CisK
ICAgICBpZiAoUnVudGltZUVuYWJsZWRGZWF0dXJlczo6c2hhcmVkRmVhdHVyZXMoKS5saW5rUHJl
bG9hZEVuYWJsZWQoKSAmJiBlcXVhbElnbm9yaW5nQVNDSUlDYXNlKGF0dHJpYnV0ZSwgInByZWxv
YWQiKSkKICAgICAgICAgcmV0dXJuIHRydWU7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvTGlua1JlbEF0dHJpYnV0ZS5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9MaW5rUmVsQXR0
cmlidXRlLmgKaW5kZXggOGUyNjY5MjdlZGQuLmYxMmU5ODY2MzdjIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL0xpbmtSZWxBdHRyaWJ1dGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9o
dG1sL0xpbmtSZWxBdHRyaWJ1dGUuaApAQCAtMzcsNiArMzcsNyBAQAogCiBuYW1lc3BhY2UgV2Vi
Q29yZSB7CiAKK2NsYXNzIERvY3VtZW50OwogZW51bSBjbGFzcyBMaW5rSWNvblR5cGU7CiAKIHN0
cnVjdCBMaW5rUmVsQXR0cmlidXRlIHsKQEAgLTQ1LDE1ICs0NiwxNiBAQCBzdHJ1Y3QgTGlua1Jl
bEF0dHJpYnV0ZSB7CiAgICAgYm9vbCBpc0FsdGVybmF0ZSB7IGZhbHNlIH07CiAgICAgYm9vbCBp
c0ROU1ByZWZldGNoIHsgZmFsc2UgfTsKICAgICBib29sIGlzTGlua1ByZWxvYWQgeyBmYWxzZSB9
OworICAgIGJvb2wgaXNMaW5rUHJlY29ubmVjdCB7IGZhbHNlIH07CiAjaWYgRU5BQkxFKExJTktf
UFJFRkVUQ0gpCiAgICAgYm9vbCBpc0xpbmtQcmVmZXRjaCB7IGZhbHNlIH07CiAgICAgYm9vbCBp
c0xpbmtTdWJyZXNvdXJjZSB7IGZhbHNlIH07CiAjZW5kaWYKIAogICAgIExpbmtSZWxBdHRyaWJ1
dGUoKTsKLSAgICBleHBsaWNpdCBMaW5rUmVsQXR0cmlidXRlKGNvbnN0IFN0cmluZyYpOworICAg
IExpbmtSZWxBdHRyaWJ1dGUoRG9jdW1lbnQmLCBjb25zdCBTdHJpbmcmKTsKIAotICAgIHN0YXRp
YyBib29sIGlzU3VwcG9ydGVkKFN0cmluZ1ZpZXcpOworICAgIHN0YXRpYyBib29sIGlzU3VwcG9y
dGVkKERvY3VtZW50JiwgU3RyaW5nVmlldyk7CiB9OwogCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9odG1sL3BhcnNlci9IVE1MUHJlbG9hZFNjYW5uZXIuY3BwIGIvU291cmNlL1dlYkNv
cmUvaHRtbC9wYXJzZXIvSFRNTFByZWxvYWRTY2FubmVyLmNwcAppbmRleCAwNjAxZGMxMWRjYy4u
MDhkMjhjZGQ0MjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvcGFyc2VyL0hUTUxQ
cmVsb2FkU2Nhbm5lci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9wYXJzZXIvSFRNTFBy
ZWxvYWRTY2FubmVyLmNwcApAQCAtMjMyLDcgKzIzMiw3IEBAIHByaXZhdGU6CiAgICAgICAgICAg
ICBpZiAobWF0Y2goYXR0cmlidXRlTmFtZSwgaHJlZkF0dHIpKQogICAgICAgICAgICAgICAgIHNl
dFVybFRvTG9hZChhdHRyaWJ1dGVWYWx1ZSk7CiAgICAgICAgICAgICBlbHNlIGlmIChtYXRjaChh
dHRyaWJ1dGVOYW1lLCByZWxBdHRyKSkgewotICAgICAgICAgICAgICAgIExpbmtSZWxBdHRyaWJ1
dGUgcGFyc2VkQXR0cmlidXRlIHsgYXR0cmlidXRlVmFsdWUgfTsKKyAgICAgICAgICAgICAgICBM
aW5rUmVsQXR0cmlidXRlIHBhcnNlZEF0dHJpYnV0ZSB7IGRvY3VtZW50LCBhdHRyaWJ1dGVWYWx1
ZSB9OwogICAgICAgICAgICAgICAgIG1fbGlua0lzU3R5bGVTaGVldCA9IHJlbEF0dHJpYnV0ZUlz
U3R5bGVTaGVldChwYXJzZWRBdHRyaWJ1dGUpOwogICAgICAgICAgICAgICAgIG1fbGlua0lzUHJl
bG9hZCA9IHBhcnNlZEF0dHJpYnV0ZS5pc0xpbmtQcmVsb2FkOwogICAgICAgICAgICAgfSBlbHNl
IGlmIChtYXRjaChhdHRyaWJ1dGVOYW1lLCBtZWRpYUF0dHIpKQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvbG9hZGVyL0xpbmtMb2FkZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0xp
bmtMb2FkZXIuY3BwCmluZGV4IDJiMTYxMzI2NDMwLi5hNWFlMGYxYTUwYSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvbG9hZGVyL0xpbmtMb2FkZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2xvYWRlci9MaW5rTG9hZGVyLmNwcApAQCAtNDcsOCArNDcsMTAgQEAKICNpbmNsdWRlICJMaW5r
SGVhZGVyLmgiCiAjaW5jbHVkZSAiTGlua1ByZWxvYWRSZXNvdXJjZUNsaWVudHMuaCIKICNpbmNs
dWRlICJMaW5rUmVsQXR0cmlidXRlLmgiCisjaW5jbHVkZSAiTG9hZGVyU3RyYXRlZ3kuaCIKICNp
bmNsdWRlICJNSU1FVHlwZVJlZ2lzdHJ5LmgiCiAjaW5jbHVkZSAiTWVkaWFRdWVyeUV2YWx1YXRv
ci5oIgorI2luY2x1ZGUgIlBsYXRmb3JtU3RyYXRlZ2llcy5oIgogI2luY2x1ZGUgIlJ1bnRpbWVF
bmFibGVkRmVhdHVyZXMuaCIKICNpbmNsdWRlICJTZXR0aW5ncy5oIgogI2luY2x1ZGUgIlN0eWxl
UmVzb2x2ZXIuaCIKQEAgLTEwMiw3ICsxMDQsNyBAQCB2b2lkIExpbmtMb2FkZXI6OmxvYWRMaW5r
c0Zyb21IZWFkZXIoY29uc3QgU3RyaW5nJiBoZWFkZXJWYWx1ZSwgY29uc3QgVVJMJiBiYXNlVQog
ICAgICAgICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgICB9CiAKLSAgICAgICAgTGlua1JlbEF0
dHJpYnV0ZSByZWxBdHRyaWJ1dGUoaGVhZGVyLnJlbCgpKTsKKyAgICAgICAgTGlua1JlbEF0dHJp
YnV0ZSByZWxBdHRyaWJ1dGUoZG9jdW1lbnQsIGhlYWRlci5yZWwoKSk7CiAgICAgICAgIFVSTCB1
cmwoYmFzZVVSTCwgaGVhZGVyLnVybCgpKTsKICAgICAgICAgLy8gU2FuaXR5IGNoZWNrIHRvIGF2
b2lkIHJlLWVudHJhbmN5IGhlcmUuCiAgICAgICAgIGlmIChlcXVhbElnbm9yaW5nRnJhZ21lbnRJ
ZGVudGlmaWVyKHVybCwgYmFzZVVSTCkpCkBAIC0yNTAsNiArMjUyLDE4IEBAIGJvb2wgTGlua0xv
YWRlcjo6bG9hZExpbmsoY29uc3QgTGlua1JlbEF0dHJpYnV0ZSYgcmVsQXR0cmlidXRlLCBjb25z
dCBVUkwmIGhyZWYsCiAgICAgICAgICAgICBkb2N1bWVudC5mcmFtZSgpLT5sb2FkZXIoKS5jbGll
bnQoKS5wcmVmZXRjaEROUyhocmVmLmhvc3QoKSk7CiAgICAgfQogCisgICAgLy8gRklYTUU6IFdl
J3JlIHN1cHBvc2VkIHRvIGRvIGNyb3NzIG9yaWdpbiBjaGVja3MuCisgICAgaWYgKHJlbEF0dHJp
YnV0ZS5pc0xpbmtQcmVjb25uZWN0ICYmIGhyZWYuaXNWYWxpZCgpICYmICFocmVmLmlzRW1wdHko
KSkgeworICAgICAgICBBU1NFUlQoZG9jdW1lbnQuc2V0dGluZ3MoKS5saW5rUHJlY29ubmVjdEVu
YWJsZWQoKSk7CisgICAgICAgIGlmIChlcXVhbElnbm9yaW5nQVNDSUlDYXNlKGNyb3NzT3JpZ2lu
LCAiYW5vbnltb3VzIikpIHsKKyAgICAgICAgICAgIGF1dG8gaHJlZk9yaWdpbiA9IFNlY3VyaXR5
T3JpZ2luOjpjcmVhdGUoaHJlZik7CisgICAgICAgICAgICBpZiAoZG9jdW1lbnQuc2VjdXJpdHlP
cmlnaW4oKS5jYW5BY2Nlc3MoaHJlZk9yaWdpbikpIHsKKyAgICAgICAgICAgICAgICAvLyBGSVhN
RTogRG8gbm90IGFsbG93IHN0b3JlZCBjcmVkZW50aWFscworICAgICAgICAgICAgfQorICAgICAg
ICB9CisgICAgICAgIHBsYXRmb3JtU3RyYXRlZ2llcygpLT5sb2FkZXJTdHJhdGVneSgpLT5wcmVj
b25uZWN0VG8oaHJlZik7CisgICAgfQorCiAgICAgaWYgKG1fY2xpZW50LnNob3VsZExvYWRMaW5r
KCkpIHsKICAgICAgICAgYXV0byByZXNvdXJjZUNsaWVudCA9IHByZWxvYWRJZk5lZWRlZChyZWxB
dHRyaWJ1dGUsIGhyZWYsIGRvY3VtZW50LCBhcywgbWVkaWEsIG1pbWVUeXBlLCBjcm9zc09yaWdp
biwgdGhpcyk7CiAgICAgICAgIGlmIChyZXNvdXJjZUNsaWVudCkKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2xvYWRlci9Mb2FkZXJTdHJhdGVneS5oIGIvU291cmNlL1dlYkNvcmUvbG9hZGVy
L0xvYWRlclN0cmF0ZWd5LmgKaW5kZXggNTNmM2JmYjI2NjYuLjdmNWMyZWExNDg1IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvTG9hZGVyU3RyYXRlZ3kuaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9sb2FkZXIvTG9hZGVyU3RyYXRlZ3kuaApAQCAtNjcsNiArNjcsOCBAQCBwdWJsaWM6
CiAgICAgdXNpbmcgUGluZ0xvYWRDb21wbGV0aW9uSGFuZGxlciA9IFdURjo6RnVuY3Rpb248dm9p
ZChjb25zdCBSZXNvdXJjZUVycm9yJik+OwogICAgIHZpcnR1YWwgdm9pZCBzdGFydFBpbmdMb2Fk
KEZyYW1lJiwgUmVzb3VyY2VSZXF1ZXN0JiwgY29uc3QgSFRUUEhlYWRlck1hcCYgb3JpZ2luYWxS
ZXF1ZXN0SGVhZGVycywgY29uc3QgRmV0Y2hPcHRpb25zJiwgUGluZ0xvYWRDb21wbGV0aW9uSGFu
ZGxlciYmID0geyB9KSA9IDA7CiAKKyAgICB2aXJ0dWFsIHZvaWQgcHJlY29ubmVjdFRvKGNvbnN0
IFVSTCYpID0gMDsKKwogICAgIHZpcnR1YWwgdm9pZCBzdG9yZURlcml2ZWREYXRhVG9DYWNoZShj
b25zdCBTSEExOjpEaWdlc3QmIGJvZHlLZXksIGNvbnN0IFN0cmluZyYgdHlwZSwgY29uc3QgU3Ry
aW5nJiBwYXJ0aXRpb24sIFdlYkNvcmU6OlNoYXJlZEJ1ZmZlciYpID0gMDsKIAogICAgIHZpcnR1
YWwgdm9pZCBzZXRDYXB0dXJlRXh0cmFOZXR3b3JrTG9hZE1ldHJpY3NFbmFibGVkKGJvb2wpID0g
MDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvU2V0dGluZ3MuaW4gYi9Tb3VyY2Uv
V2ViQ29yZS9wYWdlL1NldHRpbmdzLmluCmluZGV4IDkyNzdjMGE3Y2U1Li5kODE1MjZhYWNjMSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9TZXR0aW5ncy5pbgorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9wYWdlL1NldHRpbmdzLmluCkBAIC0yOTEsNiArMjkxLDggQEAgbGFuZ0F0dHJpYnV0
ZUF3YXJlRm9ybUNvbnRyb2xVSUVuYWJsZWQgaW5pdGlhbD1mYWxzZQogCiBzdWJyZXNvdXJjZUlu
dGVncml0eUVuYWJsZWQgaW5pdGlhbD10cnVlCiAKK2xpbmtQcmVjb25uZWN0RW5hYmxlZCBpbml0
aWFsPWZhbHNlCisKIGJlYWNvbkFQSUVuYWJsZWQgaW5pdGlhbD1mYWxzZQogCiBjb25zdGFudFBy
b3BlcnRpZXNFbmFibGVkIGluaXRpYWw9ZmFsc2UKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
TmV0d29ya1Byb2Nlc3MvTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuY3BwIGIvU291cmNl
L1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5jcHAK
aW5kZXggNzAzZDU5MWMyNGIuLjI5OWU0MTc5NDkwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L05ldHdvcmtQcm9jZXNzL05ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmNwcAorKysgYi9T
b3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNz
LmNwcApAQCAtNTYsNiArNTYsNyBAQAogCiAjaWYgVVNFKE5FVFdPUktfU0VTU0lPTikKICNpbmNs
dWRlICJQaW5nTG9hZC5oIgorI2luY2x1ZGUgIlByZWNvbm5lY3RUYXNrLmgiCiAjZW5kaWYKIAog
dXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CkBAIC0yODcsNiArMjg4LDE1IEBAIHZvaWQgTmV0d29y
a0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6OnByZWZldGNoRE5TKGNvbnN0IFN0cmluZyYgaG9zdG5h
bWUpCiAgICAgTmV0d29ya1Byb2Nlc3M6OnNpbmdsZXRvbigpLnByZWZldGNoRE5TKGhvc3RuYW1l
KTsKIH0KIAordm9pZCBOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzczo6cHJlY29ubmVjdFRv
KGNvbnN0IFVSTCYgdXJsKQoreworI2lmIEVOQUJMRShORVRXT1JLX1NFU1NJT04pCisgICAgbmV3
IFByZWNvbm5lY3RUYXNrKHVybCk7CisjZWxzZQorICAgIFVOVVNFRF9QQVJBTSh1cmwpOworI2Vu
ZGlmCit9CisKIHN0YXRpYyBOZXR3b3JrU3RvcmFnZVNlc3Npb24mIHN0b3JhZ2VTZXNzaW9uKFBB
TDo6U2Vzc2lvbklEIHNlc3Npb25JRCkKIHsKICAgICBBU1NFUlQoc2Vzc2lvbklELmlzVmFsaWQo
KSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtDb25u
ZWN0aW9uVG9XZWJQcm9jZXNzLmggYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdv
cmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmgKaW5kZXggY2QyODA0MmNmZmIuLjAyMGMyNTg3NDc4
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtDb25uZWN0
aW9uVG9XZWJQcm9jZXNzLmgKKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3
b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5oCkBAIC05MCw2ICs5MCw3IEBAIHByaXZhdGU6CiAg
ICAgdm9pZCBwZXJmb3JtU3luY2hyb25vdXNMb2FkKGNvbnN0IE5ldHdvcmtSZXNvdXJjZUxvYWRQ
YXJhbWV0ZXJzJiwgUmVmPE1lc3NhZ2VzOjpOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzczo6
UGVyZm9ybVN5bmNocm9ub3VzTG9hZDo6RGVsYXllZFJlcGx5PiYmKTsKICAgICB2b2lkIGxvYWRQ
aW5nKE5ldHdvcmtSZXNvdXJjZUxvYWRQYXJhbWV0ZXJzJiYsIFdlYkNvcmU6OkhUVFBIZWFkZXJN
YXAmJiBvcmlnaW5hbFJlcXVlc3RIZWFkZXJzKTsKICAgICB2b2lkIHByZWZldGNoRE5TKGNvbnN0
IFN0cmluZyYpOworICAgIHZvaWQgcHJlY29ubmVjdFRvKGNvbnN0IFdlYkNvcmU6OlVSTCYpOwog
CiAgICAgdm9pZCByZW1vdmVMb2FkSWRlbnRpZmllcihSZXNvdXJjZUxvYWRJZGVudGlmaWVyKTsK
ICAgICB2b2lkIHNldERlZmVyc0xvYWRpbmcoUmVzb3VyY2VMb2FkSWRlbnRpZmllciwgYm9vbCk7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtDb25uZWN0
aW9uVG9XZWJQcm9jZXNzLm1lc3NhZ2VzLmluIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vz
cy9OZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5tZXNzYWdlcy5pbgppbmRleCBhYmYwZmNj
YTAwMi4uNzI1OTIzNjJmZDEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nl
c3MvTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MubWVzc2FnZXMuaW4KKysrIGIvU291cmNl
L1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5tZXNz
YWdlcy5pbgpAQCAtMjgsNiArMjgsNyBAQCBtZXNzYWdlcyAtPiBOZXR3b3JrQ29ubmVjdGlvblRv
V2ViUHJvY2VzcyBMZWdhY3lSZWNlaXZlciB7CiAgICAgUmVtb3ZlTG9hZElkZW50aWZpZXIodWlu
dDY0X3QgcmVzb3VyY2VMb2FkSWRlbnRpZmllcikKICAgICBTZXREZWZlcnNMb2FkaW5nKHVpbnQ2
NF90IHJlc291cmNlTG9hZElkZW50aWZpZXIsIGJvb2wgZGVmZXJzKQogICAgIFByZWZldGNoRE5T
KFN0cmluZyBob3N0bmFtZSkKKyAgICBQcmVjb25uZWN0VG8oV2ViQ29yZTo6VVJMIHVybCk7CiAK
ICAgICBTdGFydERvd25sb2FkKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgV2ViS2l0OjpEb3du
bG9hZElEIGRvd25sb2FkSUQsIFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCByZXF1ZXN0LCBTdHJp
bmcgc3VnZ2VzdGVkTmFtZSkKICAgICBDb252ZXJ0TWFpblJlc291cmNlTG9hZFRvRG93bmxvYWQo
UEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCB1aW50NjRfdCBtYWluUmVzb3VyY2VMb2FkSWRlbnRp
ZmllciwgV2ViS2l0OjpEb3dubG9hZElEIGRvd25sb2FkSUQsIFdlYkNvcmU6OlJlc291cmNlUmVx
dWVzdCByZXF1ZXN0LCBXZWJDb3JlOjpSZXNvdXJjZVJlc3BvbnNlIHJlc3BvbnNlKQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrRGF0YVRhc2suY3BwIGIv
U291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrRGF0YVRhc2suY3BwCmluZGV4IGM5
M2Y4ZmVjOWZhLi4yYzlkZmQ4ZjM2NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3Jr
UHJvY2Vzcy9OZXR3b3JrRGF0YVRhc2suY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1By
b2Nlc3MvTmV0d29ya0RhdGFUYXNrLmNwcApAQCAtNTMsNyArNTMsNyBAQCBSZWY8TmV0d29ya0Rh
dGFUYXNrPiBOZXR3b3JrRGF0YVRhc2s6OmNyZWF0ZShOZXR3b3JrU2Vzc2lvbiYgc2Vzc2lvbiwg
TmV0d29ya0RhdAogICAgICAgICByZXR1cm4gTmV0d29ya0RhdGFUYXNrQmxvYjo6Y3JlYXRlKHNl
c3Npb24sIGNsaWVudCwgcGFyYW1ldGVycy5yZXF1ZXN0LCBwYXJhbWV0ZXJzLmNvbnRlbnRTbmlm
ZmluZ1BvbGljeSwgcGFyYW1ldGVycy5ibG9iRmlsZVJlZmVyZW5jZXMpOwogCiAjaWYgUExBVEZP
Uk0oQ09DT0EpCi0gICAgcmV0dXJuIE5ldHdvcmtEYXRhVGFza0NvY29hOjpjcmVhdGUoc2Vzc2lv
biwgY2xpZW50LCBwYXJhbWV0ZXJzLnJlcXVlc3QsIHBhcmFtZXRlcnMuc3RvcmVkQ3JlZGVudGlh
bHNQb2xpY3ksIHBhcmFtZXRlcnMuY29udGVudFNuaWZmaW5nUG9saWN5LCBwYXJhbWV0ZXJzLnNo
b3VsZENsZWFyUmVmZXJyZXJPbkhUVFBTVG9IVFRQUmVkaXJlY3QpOworICAgIHJldHVybiBOZXR3
b3JrRGF0YVRhc2tDb2NvYTo6Y3JlYXRlKHNlc3Npb24sIGNsaWVudCwgcGFyYW1ldGVycy5yZXF1
ZXN0LCBwYXJhbWV0ZXJzLnN0b3JlZENyZWRlbnRpYWxzUG9saWN5LCBwYXJhbWV0ZXJzLmNvbnRl
bnRTbmlmZmluZ1BvbGljeSwgcGFyYW1ldGVycy5zaG91bGRDbGVhclJlZmVycmVyT25IVFRQU1Rv
SFRUUFJlZGlyZWN0LCBwYXJhbWV0ZXJzLnNob3VsZFByZWNvbm5lY3RPbmx5KTsKICNlbmRpZgog
I2lmIFVTRShTT1VQKQogICAgIHJldHVybiBOZXR3b3JrRGF0YVRhc2tTb3VwOjpjcmVhdGUoc2Vz
c2lvbiwgY2xpZW50LCBwYXJhbWV0ZXJzLnJlcXVlc3QsIHBhcmFtZXRlcnMuc3RvcmVkQ3JlZGVu
dGlhbHNQb2xpY3ksIHBhcmFtZXRlcnMuY29udGVudFNuaWZmaW5nUG9saWN5LCBwYXJhbWV0ZXJz
LnNob3VsZENsZWFyUmVmZXJyZXJPbkhUVFBTVG9IVFRQUmVkaXJlY3QpOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrTG9hZFBhcmFtZXRlcnMuaCBiL1Nv
dXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0xvYWRQYXJhbWV0ZXJzLmgKaW5kZXgg
MWZiZDJkYTQ5MWQuLjI1YWE1MDU4MGRlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdv
cmtQcm9jZXNzL05ldHdvcmtMb2FkUGFyYW1ldGVycy5oCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0
d29ya1Byb2Nlc3MvTmV0d29ya0xvYWRQYXJhbWV0ZXJzLmgKQEAgLTMzLDYgKzMzLDggQEAKIAog
bmFtZXNwYWNlIFdlYktpdCB7CiAKK2VudW0gY2xhc3MgUHJlY29ubmVjdE9ubHkgeyBObywgWWVz
IH07CisKIGNsYXNzIE5ldHdvcmtMb2FkUGFyYW1ldGVycyB7CiBwdWJsaWM6CiAgICAgdWludDY0
X3Qgd2ViUGFnZUlEIHsgMCB9OwpAQCAtNDksNiArNTEsNyBAQCBwdWJsaWM6CiAjaWYgVVNFKE5F
VFdPUktfU0VTU0lPTikKICAgICBWZWN0b3I8UmVmUHRyPFdlYkNvcmU6OkJsb2JEYXRhRmlsZVJl
ZmVyZW5jZT4+IGJsb2JGaWxlUmVmZXJlbmNlczsKICNlbmRpZgorICAgIFByZWNvbm5lY3RPbmx5
IHNob3VsZFByZWNvbm5lY3RPbmx5IHsgUHJlY29ubmVjdE9ubHk6Ok5vIH07CiB9OwogCiB9IC8v
IG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nl
c3MvUHJlY29ubmVjdFRhc2suY3BwIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9QcmVj
b25uZWN0VGFzay5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLjRh
MDRlYjEzYzdkCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vz
cy9QcmVjb25uZWN0VGFzay5jcHAKQEAgLTAsMCArMSwxMjAgQEAKKy8qCisgKiBDb3B5cmlnaHQg
KEMpIDIwMTcgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJp
YnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91
dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxv
d2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNv
dXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAq
IDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJv
dmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9v
ciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAq
IFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJV
VE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMs
IElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElF
UyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVS
UE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMg
Q09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJ
REVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMg
KElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJ
VFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9S
IEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhF
T1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJ
VFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJ
TkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFE
VklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5j
bHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiUHJlY29ubmVjdFRhc2suaCIKKworI2lmIEVOQUJM
RShTRVJWRVJfUFJFQ09OTkVDVCkKKworI2luY2x1ZGUgIkF1dGhlbnRpY2F0aW9uTWFuYWdlci5o
IgorI2luY2x1ZGUgIkxvZ2dpbmcuaCIKKyNpbmNsdWRlICJOZXR3b3JrTG9hZFBhcmFtZXRlcnMu
aCIKKyNpbmNsdWRlICJOZXR3b3JrU2Vzc2lvbi5oIgorI2luY2x1ZGUgPFdlYkNvcmUvQXV0aGVu
dGljYXRpb25DaGFsbGVuZ2UuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL1Jlc291cmNlRXJyb3IuaD4K
KworI2lmIFBMQVRGT1JNKENPQ09BKQorI2luY2x1ZGUgIk5ldHdvcmtEYXRhVGFza0NvY29hLmgi
CisjZW5kaWYKKworbmFtZXNwYWNlIFdlYktpdCB7CisKK3VzaW5nIG5hbWVzcGFjZSBXZWJDb3Jl
OworCitQcmVjb25uZWN0VGFzazo6UHJlY29ubmVjdFRhc2soY29uc3QgVVJMJiB1cmwpCit7Cisg
ICAgUkVMRUFTRV9MT0coTmV0d29yaywgIiVwIC0gUHJlY29ubmVjdFRhc2s6OlByZWNvbm5lY3RU
YXNrKCkiLCB0aGlzKTsKKyAgICBOZXR3b3JrTG9hZFBhcmFtZXRlcnMgcGFyYW1ldGVyczsKKyAg
ICBwYXJhbWV0ZXJzLnJlcXVlc3QgPSBSZXNvdXJjZVJlcXVlc3QodXJsKTsKKyAgICBwYXJhbWV0
ZXJzLnNob3VsZFByZWNvbm5lY3RPbmx5ID0gUHJlY29ubmVjdE9ubHk6OlllczsKKyAgICBwYXJh
bWV0ZXJzLmFsbG93U3RvcmVkQ3JlZGVudGlhbHMgPSBBbGxvd1N0b3JlZENyZWRlbnRpYWxzOwor
ICAgIG1fdGFzayA9IE5ldHdvcmtEYXRhVGFzazo6Y3JlYXRlKE5ldHdvcmtTZXNzaW9uOjpkZWZh
dWx0U2Vzc2lvbigpLCAqdGhpcywgcGFyYW1ldGVycyk7CisgICAgbV90YXNrLT5yZXN1bWUoKTsK
K30KKworUHJlY29ubmVjdFRhc2s6On5QcmVjb25uZWN0VGFzaygpCit7CisgICAgQVNTRVJUKG1f
dGFzay0+Y2xpZW50KCkgPT0gdGhpcyk7CisgICAgbV90YXNrLT5jbGVhckNsaWVudCgpOworICAg
IG1fdGFzay0+Y2FuY2VsKCk7Cit9CisKK3ZvaWQgUHJlY29ubmVjdFRhc2s6OndpbGxQZXJmb3Jt
SFRUUFJlZGlyZWN0aW9uKFdlYkNvcmU6OlJlc291cmNlUmVzcG9uc2UmJiwgV2ViQ29yZTo6UmVz
b3VyY2VSZXF1ZXN0JiYsIFJlZGlyZWN0Q29tcGxldGlvbkhhbmRsZXImJikKK3sKKyAgICBBU1NF
UlRfTk9UX1JFQUNIRUQoKTsKK30KKwordm9pZCBQcmVjb25uZWN0VGFzazo6ZGlkUmVjZWl2ZUNo
YWxsZW5nZShjb25zdCBXZWJDb3JlOjpBdXRoZW50aWNhdGlvbkNoYWxsZW5nZSYgY2hhbGxlbmdl
LCBDaGFsbGVuZ2VDb21wbGV0aW9uSGFuZGxlciYmIGNvbXBsZXRpb25IYW5kbGVyKQoreworICAg
IGlmIChjaGFsbGVuZ2UucHJvdGVjdGlvblNwYWNlKCkuYXV0aGVudGljYXRpb25TY2hlbWUoKSA9
PSBQcm90ZWN0aW9uU3BhY2VBdXRoZW50aWNhdGlvblNjaGVtZVNlcnZlclRydXN0RXZhbHVhdGlv
blJlcXVlc3RlZCkgeworICAgICAgICBpZiAobV90YXNrICYmIG1fdGFzay0+YWxsb3dzU3BlY2lm
aWNIVFRQU0NlcnRpZmljYXRlRm9ySG9zdChjaGFsbGVuZ2UpKQorICAgICAgICAgICAgY29tcGxl
dGlvbkhhbmRsZXIoQXV0aGVudGljYXRpb25DaGFsbGVuZ2VEaXNwb3NpdGlvbjo6VXNlQ3JlZGVu
dGlhbCwgc2VydmVyVHJ1c3RDcmVkZW50aWFsKGNoYWxsZW5nZSkpOworICAgICAgICBlbHNlCisg
ICAgICAgICAgICBjb21wbGV0aW9uSGFuZGxlcihBdXRoZW50aWNhdGlvbkNoYWxsZW5nZURpc3Bv
c2l0aW9uOjpSZWplY3RQcm90ZWN0aW9uU3BhY2UsIHsgfSk7CisgICAgICAgIHJldHVybjsKKyAg
ICB9CisgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7Cit9CisKK3ZvaWQgUHJlY29ubmVjdFRhc2s6
OmRpZFJlY2VpdmVSZXNwb25zZU5ldHdvcmtTZXNzaW9uKFdlYkNvcmU6OlJlc291cmNlUmVzcG9u
c2UmJiwgUmVzcG9uc2VDb21wbGV0aW9uSGFuZGxlciYmKQoreworICAgIEFTU0VSVF9OT1RfUkVB
Q0hFRCgpOworfQorCit2b2lkIFByZWNvbm5lY3RUYXNrOjpkaWRSZWNlaXZlRGF0YShSZWY8V2Vi
Q29yZTo6U2hhcmVkQnVmZmVyPiYmKQoreworICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOworfQor
Cit2b2lkIFByZWNvbm5lY3RUYXNrOjpkaWRDb21wbGV0ZVdpdGhFcnJvcihjb25zdCBXZWJDb3Jl
OjpSZXNvdXJjZUVycm9yJiBlcnJvciwgY29uc3QgV2ViQ29yZTo6TmV0d29ya0xvYWRNZXRyaWNz
JikKK3sKKyAgICBpZiAoZXJyb3IuaXNOdWxsKCkpCisgICAgICAgIFJFTEVBU0VfTE9HKE5ldHdv
cmssICIlcCAtIFByZWNvbm5lY3RUYXNrOjpkaWRDb21wbGV0ZSIsIHRoaXMpOworICAgIGVsc2UK
KyAgICAgICAgUkVMRUFTRV9MT0coTmV0d29yaywgIiVwIC0gUHJlY29ubmVjdFRhc2s6OmRpZENv
bXBsZXRlV2l0aEVycm9yLCBlcnJvcl9jb2RlOiAlZCIsIHRoaXMsIGVycm9yLmVycm9yQ29kZSgp
KTsKKworICAgIGRlbGV0ZSB0aGlzOworfQorCit2b2lkIFByZWNvbm5lY3RUYXNrOjpkaWRTZW5k
RGF0YSh1aW50NjRfdCB0b3RhbEJ5dGVzU2VudCwgdWludDY0X3QgdG90YWxCeXRlc0V4cGVjdGVk
VG9TZW5kKQoreworICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOworfQorCit2b2lkIFByZWNvbm5l
Y3RUYXNrOjp3YXNCbG9ja2VkKCkKK3sKKyAgICBSRUxFQVNFX0xPRyhOZXR3b3JrLCAiJXAgLSBQ
cmVjb25uZWN0VGFzazo6d2FzQmxvY2tlZCgpIiwgdGhpcyk7CisgICAgZGVsZXRlIHRoaXM7Cit9
CisKK3ZvaWQgUHJlY29ubmVjdFRhc2s6OmNhbm5vdFNob3dVUkwoKQoreworICAgIFJFTEVBU0Vf
TE9HKE5ldHdvcmssICIlcCAtIFByZWNvbm5lY3RUYXNrOjpjYW5ub3RTaG93VVJMKCkiLCB0aGlz
KTsKKyAgICBkZWxldGUgdGhpczsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CisKKyNlbmRp
ZiAvLyBFTkFCTEUoU0VSVkVSX1BSRUNPTk5FQ1QpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L05ldHdvcmtQcm9jZXNzL1ByZWNvbm5lY3RUYXNrLmggYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQ
cm9jZXNzL1ByZWNvbm5lY3RUYXNrLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAuLmNiODc4Zjc5MWUzCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9OZXR3
b3JrUHJvY2Vzcy9QcmVjb25uZWN0VGFzay5oCkBAIC0wLDAgKzEsNTUgQEAKKy8qCisgKiBDb3B5
cmlnaHQgKEMpIDIwMTcgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJl
ZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Ig
d2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhl
IGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25z
IG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0
aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9u
IGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgor
ICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENP
TlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJB
TlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FS
UkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgor
ICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBP
UiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNU
LCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERB
TUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICog
U1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJ
VFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBB
TlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBM
SUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAq
IEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVO
IElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLwor
CisjcHJhZ21hIG9uY2UKKworI2lmIEVOQUJMRShTRVJWRVJfUFJFQ09OTkVDVCkKKworI2luY2x1
ZGUgIk5ldHdvcmtEYXRhVGFzay5oIgorCituYW1lc3BhY2UgV2ViS2l0IHsKKworY2xhc3MgUHJl
Y29ubmVjdFRhc2sgZmluYWwgOiBwcml2YXRlIE5ldHdvcmtEYXRhVGFza0NsaWVudCB7CitwdWJs
aWM6CisgICAgZXhwbGljaXQgUHJlY29ubmVjdFRhc2soY29uc3QgV2ViQ29yZTo6VVJMJik7Cisg
ICAgflByZWNvbm5lY3RUYXNrKCk7CisKK3ByaXZhdGU6CisgICAgLy8gTmV0d29ya0RhdGFUYXNr
Q2xpZW50LgorICAgIHZvaWQgd2lsbFBlcmZvcm1IVFRQUmVkaXJlY3Rpb24oV2ViQ29yZTo6UmVz
b3VyY2VSZXNwb25zZSYmLCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmJiwgUmVkaXJlY3RDb21w
bGV0aW9uSGFuZGxlciYmKSBmaW5hbDsKKyAgICB2b2lkIGRpZFJlY2VpdmVDaGFsbGVuZ2UoY29u
c3QgV2ViQ29yZTo6QXV0aGVudGljYXRpb25DaGFsbGVuZ2UmLCBDaGFsbGVuZ2VDb21wbGV0aW9u
SGFuZGxlciYmKSBmaW5hbDsKKyAgICB2b2lkIGRpZFJlY2VpdmVSZXNwb25zZU5ldHdvcmtTZXNz
aW9uKFdlYkNvcmU6OlJlc291cmNlUmVzcG9uc2UmJiwgUmVzcG9uc2VDb21wbGV0aW9uSGFuZGxl
ciYmKSBmaW5hbDsKKyAgICB2b2lkIGRpZFJlY2VpdmVEYXRhKFJlZjxXZWJDb3JlOjpTaGFyZWRC
dWZmZXI+JiYpIGZpbmFsOworICAgIHZvaWQgZGlkQ29tcGxldGVXaXRoRXJyb3IoY29uc3QgV2Vi
Q29yZTo6UmVzb3VyY2VFcnJvciYsIGNvbnN0IFdlYkNvcmU6Ok5ldHdvcmtMb2FkTWV0cmljcyYp
IGZpbmFsOworICAgIHZvaWQgZGlkU2VuZERhdGEodWludDY0X3QgdG90YWxCeXRlc1NlbnQsIHVp
bnQ2NF90IHRvdGFsQnl0ZXNFeHBlY3RlZFRvU2VuZCkgZmluYWw7CisgICAgdm9pZCB3YXNCbG9j
a2VkKCkgZmluYWw7CisgICAgdm9pZCBjYW5ub3RTaG93VVJMKCkgZmluYWw7CisKKyAgICBSZWZQ
dHI8TmV0d29ya0RhdGFUYXNrPiBtX3Rhc2s7Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQK
KworI2VuZGlmIC8vIEVOQUJMRShTRVJWRVJfUFJFQ09OTkVDVCkKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvY29jb2EvTmV0d29ya0RhdGFUYXNrQ29jb2EuaCBiL1Nv
dXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvY29jb2EvTmV0d29ya0RhdGFUYXNrQ29jb2EuaApp
bmRleCBjZGY0MzI0YzA2Yi4uMjEyYTlhMDhmYjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
TmV0d29ya1Byb2Nlc3MvY29jb2EvTmV0d29ya0RhdGFUYXNrQ29jb2EuaAorKysgYi9Tb3VyY2Uv
V2ViS2l0L05ldHdvcmtQcm9jZXNzL2NvY29hL05ldHdvcmtEYXRhVGFza0NvY29hLmgKQEAgLTI4
LDYgKzI4LDcgQEAKICNpZiBVU0UoTkVUV09SS19TRVNTSU9OKQogCiAjaW5jbHVkZSAiTmV0d29y
a0RhdGFUYXNrLmgiCisjaW5jbHVkZSAiTmV0d29ya0xvYWRQYXJhbWV0ZXJzLmgiCiAjaW5jbHVk
ZSA8V2ViQ29yZS9OZXR3b3JrTG9hZE1ldHJpY3MuaD4KICNpbmNsdWRlIDx3dGYvUmV0YWluUHRy
Lmg+CiAKQEAgLTQwLDkgKzQxLDkgQEAgY2xhc3MgTmV0d29ya1Nlc3Npb25Db2NvYTsKIGNsYXNz
IE5ldHdvcmtEYXRhVGFza0NvY29hIGZpbmFsIDogcHVibGljIE5ldHdvcmtEYXRhVGFzayB7CiAg
ICAgZnJpZW5kIGNsYXNzIE5ldHdvcmtTZXNzaW9uQ29jb2E7CiBwdWJsaWM6Ci0gICAgc3RhdGlj
IFJlZjxOZXR3b3JrRGF0YVRhc2s+IGNyZWF0ZShOZXR3b3JrU2Vzc2lvbiYgc2Vzc2lvbiwgTmV0
d29ya0RhdGFUYXNrQ2xpZW50JiBjbGllbnQsIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVxdWVz
dCYgcmVxdWVzdCwgV2ViQ29yZTo6U3RvcmVkQ3JlZGVudGlhbHNQb2xpY3kgc3RvcmVkQ3JlZGVu
dGlhbHNQb2xpY3ksIFdlYkNvcmU6OkNvbnRlbnRTbmlmZmluZ1BvbGljeSBzaG91bGRDb250ZW50
U25pZmYsIGJvb2wgc2hvdWxkQ2xlYXJSZWZlcnJlck9uSFRUUFNUb0hUVFBSZWRpcmVjdCkKKyAg
ICBzdGF0aWMgUmVmPE5ldHdvcmtEYXRhVGFzaz4gY3JlYXRlKE5ldHdvcmtTZXNzaW9uJiBzZXNz
aW9uLCBOZXR3b3JrRGF0YVRhc2tDbGllbnQmIGNsaWVudCwgY29uc3QgV2ViQ29yZTo6UmVzb3Vy
Y2VSZXF1ZXN0JiByZXF1ZXN0LCBXZWJDb3JlOjpTdG9yZWRDcmVkZW50aWFsc1BvbGljeSBzdG9y
ZWRDcmVkZW50aWFsc1BvbGljeSwgV2ViQ29yZTo6Q29udGVudFNuaWZmaW5nUG9saWN5IHNob3Vs
ZENvbnRlbnRTbmlmZiwgYm9vbCBzaG91bGRDbGVhclJlZmVycmVyT25IVFRQU1RvSFRUUFJlZGly
ZWN0LCBQcmVjb25uZWN0T25seSBzaG91bGRQcmVjb25uZWN0T25seSkKICAgICB7Ci0gICAgICAg
IHJldHVybiBhZG9wdFJlZigqbmV3IE5ldHdvcmtEYXRhVGFza0NvY29hKHNlc3Npb24sIGNsaWVu
dCwgcmVxdWVzdCwgc3RvcmVkQ3JlZGVudGlhbHNQb2xpY3ksIHNob3VsZENvbnRlbnRTbmlmZiwg
c2hvdWxkQ2xlYXJSZWZlcnJlck9uSFRUUFNUb0hUVFBSZWRpcmVjdCkpOworICAgICAgICByZXR1
cm4gYWRvcHRSZWYoKm5ldyBOZXR3b3JrRGF0YVRhc2tDb2NvYShzZXNzaW9uLCBjbGllbnQsIHJl
cXVlc3QsIHN0b3JlZENyZWRlbnRpYWxzUG9saWN5LCBzaG91bGRDb250ZW50U25pZmYsIHNob3Vs
ZENsZWFyUmVmZXJyZXJPbkhUVFBTVG9IVFRQUmVkaXJlY3QsIHNob3VsZFByZWNvbm5lY3RPbmx5
KSk7CiAgICAgfQogCiAgICAgfk5ldHdvcmtEYXRhVGFza0NvY29hKCk7CkBAIC03MSw3ICs3Miw3
IEBAIHB1YmxpYzoKICAgICBXZWJDb3JlOjpOZXR3b3JrTG9hZE1ldHJpY3MmIG5ldHdvcmtMb2Fk
TWV0cmljcygpIHsgcmV0dXJuIG1fbmV0d29ya0xvYWRNZXRyaWNzOyB9CiAKIHByaXZhdGU6Ci0g
ICAgTmV0d29ya0RhdGFUYXNrQ29jb2EoTmV0d29ya1Nlc3Npb24mLCBOZXR3b3JrRGF0YVRhc2tD
bGllbnQmLCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmLCBXZWJDb3JlOjpTdG9yZWRD
cmVkZW50aWFsc1BvbGljeSwgV2ViQ29yZTo6Q29udGVudFNuaWZmaW5nUG9saWN5LCBib29sIHNo
b3VsZENsZWFyUmVmZXJyZXJPbkhUVFBTVG9IVFRQUmVkaXJlY3QpOworICAgIE5ldHdvcmtEYXRh
VGFza0NvY29hKE5ldHdvcmtTZXNzaW9uJiwgTmV0d29ya0RhdGFUYXNrQ2xpZW50JiwgY29uc3Qg
V2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiwgV2ViQ29yZTo6U3RvcmVkQ3JlZGVudGlhbHNQb2xp
Y3ksIFdlYkNvcmU6OkNvbnRlbnRTbmlmZmluZ1BvbGljeSwgYm9vbCBzaG91bGRDbGVhclJlZmVy
cmVyT25IVFRQU1RvSFRUUFJlZGlyZWN0LCBQcmVjb25uZWN0T25seSk7CiAKICAgICBib29sIHRy
eVBhc3N3b3JkQmFzZWRBdXRoZW50aWNhdGlvbihjb25zdCBXZWJDb3JlOjpBdXRoZW50aWNhdGlv
bkNoYWxsZW5nZSYsIENoYWxsZW5nZUNvbXBsZXRpb25IYW5kbGVyJik7CiAKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvY29jb2EvTmV0d29ya0RhdGFUYXNrQ29jb2Eu
bW0gYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL2NvY29hL05ldHdvcmtEYXRhVGFza0Nv
Y29hLm1tCmluZGV4IDk5N2UwZWUxYWY2Li5kYmJiMTAwNDAxNCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9jb2NvYS9OZXR3b3JrRGF0YVRhc2tDb2NvYS5tbQorKysg
Yi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL2NvY29hL05ldHdvcmtEYXRhVGFza0NvY29h
Lm1tCkBAIC03NCw3ICs3NCw3IEBAIHN0YXRpYyBmbG9hdCB0b05TVVJMU2Vzc2lvblRhc2tQcmlv
cml0eShXZWJDb3JlOjpSZXNvdXJjZUxvYWRQcmlvcml0eSBwcmlvcml0eSkKICAgICByZXR1cm4g
TlNVUkxTZXNzaW9uVGFza1ByaW9yaXR5RGVmYXVsdDsKIH0KIAotTmV0d29ya0RhdGFUYXNrQ29j
b2E6Ok5ldHdvcmtEYXRhVGFza0NvY29hKE5ldHdvcmtTZXNzaW9uJiBzZXNzaW9uLCBOZXR3b3Jr
RGF0YVRhc2tDbGllbnQmIGNsaWVudCwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiBy
ZXF1ZXN0V2l0aENyZWRlbnRpYWxzLCBXZWJDb3JlOjpTdG9yZWRDcmVkZW50aWFsc1BvbGljeSBz
dG9yZWRDcmVkZW50aWFsc1BvbGljeSwgV2ViQ29yZTo6Q29udGVudFNuaWZmaW5nUG9saWN5IHNo
b3VsZENvbnRlbnRTbmlmZiwgYm9vbCBzaG91bGRDbGVhclJlZmVycmVyT25IVFRQU1RvSFRUUFJl
ZGlyZWN0KQorTmV0d29ya0RhdGFUYXNrQ29jb2E6Ok5ldHdvcmtEYXRhVGFza0NvY29hKE5ldHdv
cmtTZXNzaW9uJiBzZXNzaW9uLCBOZXR3b3JrRGF0YVRhc2tDbGllbnQmIGNsaWVudCwgY29uc3Qg
V2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0V2l0aENyZWRlbnRpYWxzLCBXZWJDb3Jl
OjpTdG9yZWRDcmVkZW50aWFsc1BvbGljeSBzdG9yZWRDcmVkZW50aWFsc1BvbGljeSwgV2ViQ29y
ZTo6Q29udGVudFNuaWZmaW5nUG9saWN5IHNob3VsZENvbnRlbnRTbmlmZiwgYm9vbCBzaG91bGRD
bGVhclJlZmVycmVyT25IVFRQU1RvSFRUUFJlZGlyZWN0LCBQcmVjb25uZWN0T25seSBzaG91bGRQ
cmVjb25uZWN0T25seSkKICAgICA6IE5ldHdvcmtEYXRhVGFzayhzZXNzaW9uLCBjbGllbnQsIHJl
cXVlc3RXaXRoQ3JlZGVudGlhbHMsIHN0b3JlZENyZWRlbnRpYWxzUG9saWN5LCBzaG91bGRDbGVh
clJlZmVycmVyT25IVFRQU1RvSFRUUFJlZGlyZWN0KQogewogICAgIGlmIChtX3NjaGVkdWxlZEZh
aWx1cmVUeXBlICE9IE5vRmFpbHVyZSkKQEAgLTEyOCw2ICsxMjgsMTQgQEAgTmV0d29ya0RhdGFU
YXNrQ29jb2E6Ok5ldHdvcmtEYXRhVGFza0NvY29hKE5ldHdvcmtTZXNzaW9uJiBzZXNzaW9uLCBO
ZXR3b3JrRGF0YVQKICAgICAgICAgTE9HKE5ldHdvcmtTZXNzaW9uLCAiJWxsdSBDcmVhdGluZyBO
ZXR3b3JrRGF0YVRhc2sgd2l0aCBVUkwgJXMiLCBbbV90YXNrIHRhc2tJZGVudGlmaWVyXSwgbnNS
ZXF1ZXN0LlVSTC5hYnNvbHV0ZVN0cmluZy5VVEY4U3RyaW5nKTsKICAgICB9CiAKKyAgICBpZiAo
c2hvdWxkUHJlY29ubmVjdE9ubHkgPT0gUHJlY29ubmVjdE9ubHk6OlllcykgeworI2lmIEVOQUJM
RShTRVJWRVJfUFJFQ09OTkVDVCkKKyAgICAgICAgbV90YXNrLmdldCgpLl9wcmVjb25uZWN0ID0g
dHJ1ZTsKKyNlbHNlCisgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOworI2VuZGlmCisgICAg
fQorCiAjaWYgSEFWRShDRk5FVFdPUktfU1RPUkFHRV9QQVJUSVRJT05JTkcpCiAgICAgaWYgKHN0
b3JlZENyZWRlbnRpYWxzUG9saWN5ID09IFdlYkNvcmU6OlN0b3JlZENyZWRlbnRpYWxzUG9saWN5
OjpVc2UpIHsKICAgICAgICAgU3RyaW5nIHN0b3JhZ2VQYXJ0aXRpb24gPSBzZXNzaW9uLm5ldHdv
cmtTdG9yYWdlU2Vzc2lvbigpLmNvb2tpZVN0b3JhZ2VQYXJ0aXRpb24ocmVxdWVzdCk7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJQcmVmZXJlbmNlc0RlZmluaXRpb25zLmgg
Yi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJQcmVmZXJlbmNlc0RlZmluaXRpb25zLmgKaW5kZXgg
NTdkZGQxYjMwMmMuLjcyMzZjMGNkNDM0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJl
ZC9XZWJQcmVmZXJlbmNlc0RlZmluaXRpb25zLmgKKysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQv
V2ViUHJlZmVyZW5jZXNEZWZpbml0aW9ucy5oCkBAIC00NSw2ICs0NSwxMiBAQAogI2RlZmluZSBE
RUZBVUxUX0hJRERFTl9QQUdFX0NTU19BTklNQVRJT05fU1VTUEVOU0lPTl9FTkFCTEVEIGZhbHNl
CiAjZW5kaWYKIAorI2lmIEVOQUJMRShTRVJWRVJfUFJFQ09OTkVDVCkKKyNkZWZpbmUgREVGQVVM
VF9MSU5LX1BSRUNPTk5FQ1RfRU5BQkxFRCB0cnVlCisjZWxzZQorI2RlZmluZSBERUZBVUxUX0xJ
TktfUFJFQ09OTkVDVF9FTkFCTEVEIGZhbHNlCisjZW5kaWYKKwogI2lmIFBMQVRGT1JNKENPQ09B
KQogI2RlZmluZSBERUZBVUxUX1BERlBMVUdJTl9FTkFCTEVEIHRydWUKICNlbHNlCkBAIC0xODEs
NiArMTg3LDcgQEAKICAgICBtYWNybyhET01QYXN0ZUFsbG93ZWQsIGRvbVBhc3RlQWxsb3dlZCwg
Qm9vbCwgYm9vbCwgZmFsc2UsICIiLCAiIikgXAogICAgIG1hY3JvKEphdmFTY3JpcHRDYW5BY2Nl
c3NDbGlwYm9hcmQsIGphdmFTY3JpcHRDYW5BY2Nlc3NDbGlwYm9hcmQsIEJvb2wsIGJvb2wsIGZh
bHNlLCAiIiwgIiIpIFwKICAgICBtYWNybyhTaG91bGRQcmludEJhY2tncm91bmRzLCBzaG91bGRQ
cmludEJhY2tncm91bmRzLCBCb29sLCBib29sLCBERUZBVUxUX1NIT1VMRF9QUklOVF9CQUNLR1JP
VU5EUywgIiIsICIiKSBcCisgICAgbWFjcm8oTGlua1ByZWNvbm5lY3QsIGxpbmtQcmVjb25uZWN0
LCBCb29sLCBib29sLCBERUZBVUxUX0xJTktfUFJFQ09OTkVDVF9FTkFCTEVELCAiIiwgIiIpIFwK
ICAgICBtYWNybyhGdWxsU2NyZWVuRW5hYmxlZCwgZnVsbFNjcmVlbkVuYWJsZWQsIEJvb2wsIGJv
b2wsIGZhbHNlLCAiIiwgIiIpIFwKICAgICBtYWNybyhBc3luY2hyb25vdXNTcGVsbENoZWNraW5n
RW5hYmxlZCwgYXN5bmNocm9ub3VzU3BlbGxDaGVja2luZ0VuYWJsZWQsIEJvb2wsIGJvb2wsIGZh
bHNlLCAiIiwgIiIpIFwKICAgICBtYWNybyhXZWJTZWN1cml0eUVuYWJsZWQsIHdlYlNlY3VyaXR5
RW5hYmxlZCwgQm9vbCwgYm9vbCwgdHJ1ZSwgIiIsICIiKSBcCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L1dlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNlL1dlYktpdC9X
ZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCA2ODA3ZTkzY2RkYy4uYzI4Y2Mx
MWM1ZWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0
LnBieHByb2oKKysrIGIvU291cmNlL1dlYktpdC9XZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4
cHJvagpAQCAtMTM4MCw2ICsxMzgwLDggQEAKIAkJODM5OTAyMDMxQkU5QTAyQjAwMEYzNjUzIC8q
IE5ldHdvcmtMb2FkLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSA4Mzk5MDFGRTFCRTlBMDFCMDAwRjM2NTMgLyogTmV0d29ya0xvYWQuaCAqLzsgfTsKIAkJ
ODM5QTJGMzExRTIwNjc0NTAwMzkwNTdFIC8qIEhpZ2hQZXJmb3JtYW5jZUdyYXBoaWNzVXNhZ2VT
YW1wbGVyLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDgzOUEyRjJGMUUyMDY3MzkwMDM5MDU3RSAvKiBIaWdoUGVyZm9ybWFuY2VHcmFwaGljc1VzYWdl
U2FtcGxlci5jcHAgKi87IH07CiAJCTgzOUEyRjMyMUUyMDY3NDUwMDM5MDU3RSAvKiBIaWdoUGVy
Zm9ybWFuY2VHcmFwaGljc1VzYWdlU2FtcGxlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gODM5QTJGMzAxRTIwNjczOTAwMzkwNTdFIC8qIEhpZ2hQZXJm
b3JtYW5jZUdyYXBoaWNzVXNhZ2VTYW1wbGVyLmggKi87IH07CisJCTgzQTBFRDM0MUY3NDdDQ0Qw
MDMyOTlFQiAvKiBQcmVjb25uZWN0VGFzay5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSA4M0EwRUQzMzFGNzQ3Q0M3MDAzMjk5RUIgLyogUHJlY29ubmVj
dFRhc2suY3BwICovOyB9OworCQk4M0EwRUQzNTFGNzQ3Q0NGMDAzMjk5RUIgLyogUHJlY29ubmVj
dFRhc2suaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDgz
QTBFRDMyMUY3NDdDQzYwMDMyOTlFQiAvKiBQcmVjb25uZWN0VGFzay5oICovOyB9OwogCQk4M0JE
Q0NCOTFBQzVGREI2MDAzRjY0NDEgLyogTmV0d29ya0NhY2hlU3RhdGlzdGljcy5jcHAgaW4gU291
cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4M0JEQ0NCODFBQzVGREI2
MDAzRjY0NDEgLyogTmV0d29ya0NhY2hlU3RhdGlzdGljcy5jcHAgKi87IH07CiAJCTgzQkZBQzQy
MUQ5NjEzN0MwMDQzMzQ5MCAvKiBCbG9iRG93bmxvYWRDbGllbnQuaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDgzQkZBQzQwMUQ5NjEzNjAwMDQzMzQ5MCAv
KiBCbG9iRG93bmxvYWRDbGllbnQuaCAqLzsgfTsKIAkJODNCRkFDNDMxRDk2MTM3QzAwNDMzNDkw
IC8qIEJsb2JEb3dubG9hZENsaWVudC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSA4M0JGQUM0MTFEOTYxMzYwMDA0MzM0OTAgLyogQmxvYkRvd25sb2Fk
Q2xpZW50LmNwcCAqLzsgfTsKQEAgLTM3MzMsNiArMzczNSw4IEBACiAJCTgzOTkwMUZGMUJFOUEw
MUIwMDBGMzY1MyAvKiBOZXR3b3JrTG9hZC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5j
cHA7IG5hbWUgPSBOZXR3b3JrTG9hZC5jcHA7IHBhdGggPSBOZXR3b3JrUHJvY2Vzcy9OZXR3b3Jr
TG9hZC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTgzOUEyRjJGMUUyMDY3Mzkw
MDM5MDU3RSAvKiBIaWdoUGVyZm9ybWFuY2VHcmFwaGljc1VzYWdlU2FtcGxlci5jcHAgKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBIaWdoUGVyZm9ybWFuY2VHcmFwaGljc1Vz
YWdlU2FtcGxlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTgzOUEyRjMwMUUy
MDY3MzkwMDM5MDU3RSAvKiBIaWdoUGVyZm9ybWFuY2VHcmFwaGljc1VzYWdlU2FtcGxlci5oICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBIaWdoUGVyZm9ybWFuY2VHcmFwaGljc1Vz
YWdlU2FtcGxlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk4M0EwRUQzMjFGNzQ3
Q0M2MDAzMjk5RUIgLyogUHJlY29ubmVjdFRhc2suaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5o
OyBuYW1lID0gUHJlY29ubmVjdFRhc2suaDsgcGF0aCA9IE5ldHdvcmtQcm9jZXNzL1ByZWNvbm5l
Y3RUYXNrLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTgzQTBFRDMzMUY3NDdDQzcw
MDMyOTlFQiAvKiBQcmVjb25uZWN0VGFzay5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5j
cHA7IG5hbWUgPSBQcmVjb25uZWN0VGFzay5jcHA7IHBhdGggPSBOZXR3b3JrUHJvY2Vzcy9QcmVj
b25uZWN0VGFzay5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTgzQkRDQ0I4MUFD
NUZEQjYwMDNGNjQ0MSAvKiBOZXR3b3JrQ2FjaGVTdGF0aXN0aWNzLmNwcCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IE5ldHdvcmtDYWNoZVN0YXRpc3RpY3MuY3BwOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk4M0JGQUM0MDFEOTYxMzYwMDA0MzM0OTAgLyogQmxv
YkRvd25sb2FkQ2xpZW50LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IEJsb2JE
b3dubG9hZENsaWVudC5oOyBwYXRoID0gTmV0d29ya1Byb2Nlc3MvRG93bmxvYWRzL0Jsb2JEb3du
bG9hZENsaWVudC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk4M0JGQUM0MTFEOTYx
MzYwMDA0MzM0OTAgLyogQmxvYkRvd25sb2FkQ2xpZW50LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuY3BwLmNwcDsgbmFtZSA9IEJsb2JEb3dubG9hZENsaWVudC5jcHA7IHBhdGggPSBOZXR3b3Jr
UHJvY2Vzcy9Eb3dubG9hZHMvQmxvYkRvd25sb2FkQ2xpZW50LmNwcDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKQEAgLTYxMTUsNiArNjExOSw4IEBACiAJCQkJNUMwQjE3N0YxRTdDODg2NzAw
RTkxMjNDIC8qIE5ldHdvcmtTb2NrZXRTdHJlYW0ubWVzc2FnZXMuaW4gKi8sCiAJCQkJNDYyMTA3
RDcxRjM4REJEMzAwREQ3ODEwIC8qIFBpbmdMb2FkLmNwcCAqLywKIAkJCQk1Q0U4NUIxRjFDODhF
NjQzMDA3MEJGQ0UgLyogUGluZ0xvYWQuaCAqLywKKwkJCQk4M0EwRUQzMzFGNzQ3Q0M3MDAzMjk5
RUIgLyogUHJlY29ubmVjdFRhc2suY3BwICovLAorCQkJCTgzQTBFRDMyMUY3NDdDQzYwMDMyOTlF
QiAvKiBQcmVjb25uZWN0VGFzay5oICovLAogCQkJCUUxQjc4NDcwMTYzRjI0NjkwMDA3QjY5MiAv
KiBSZW1vdGVOZXR3b3JraW5nQ29udGV4dC5oICovLAogCQkJKTsKIAkJCW5hbWUgPSBOZXR3b3Jr
UHJvY2VzczsKQEAgLTg3MDksNiArODcxNSw3IEBACiAJCQkJMUE0QTlGMzMxMkI4NDRFMjAwOEZF
OTg0IC8qIFBsdWdpblF1aXJrcy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJN0NENjIyNzgxNzM5RDg2
MzAwNUJEN0ZGIC8qIFBsdWdpblNhbmRib3hQcm9maWxlLmggaW4gSGVhZGVycyAqLywKIAkJCQkx
QTZGQjdBRjExRTY0QjY4MDBEQjEzNzEgLyogUGx1Z2luVmlldy5oIGluIEhlYWRlcnMgKi8sCisJ
CQkJODNBMEVEMzUxRjc0N0NDRjAwMzI5OUVCIC8qIFByZWNvbm5lY3RUYXNrLmggaW4gSGVhZGVy
cyAqLywKIAkJCQlFMUNDMUI5MDEyRDdFQURGMDA2MjU4MzggLyogUHJpbnRJbmZvLmggaW4gSGVh
ZGVycyAqLywKIAkJCQk4NkY5NTM2NTE4RkY1OEY1MDAxREIyRUYgLyogUHJvY2Vzc0Fzc2VydGlv
bi5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQkMxQTdDNTgxMTM2RTE5QzAwRkI3MTY3IC8qIFByb2Nl
c3NMYXVuY2hlci5oIGluIEhlYWRlcnMgKi8sCkBAIC0xMDI5MCw2ICsxMDI5Nyw3IEBACiAJCQkJ
N0NENjIyNzcxNzM5RDg2MzAwNUJEN0ZGIC8qIFBsdWdpblNhbmRib3hQcm9maWxlLm1tIGluIFNv
dXJjZXMgKi8sCiAJCQkJQkM4Mjg0NEQxNkI1MDgxQzAwQTI3OEZFIC8qIFBsdWdpblNlcnZpY2VF
bnRyeVBvaW50Lm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJMUE2RkI3QUUxMUU2NEI2ODAwREIxMzcx
IC8qIFBsdWdpblZpZXcuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJODNBMEVEMzQxRjc0N0NDRDAw
MzI5OUVCIC8qIFByZWNvbm5lY3RUYXNrLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUUxOEM5MkY0
MTJEQjlFNzEwMENGMkFFQiAvKiBQcmludEluZm8uY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJRTFD
QzFCOTExMkQ3RUFERjAwNjI1ODM4IC8qIFByaW50SW5mb01hYy5tbSBpbiBTb3VyY2VzICovLAog
CQkJCTM3NzE2QTVBMTk1QjkxMDUwMEVFOEIxQiAvKiBQcm9jZXNzQXNzZXJ0aW9uLmNwcCBpbiBT
b3VyY2VzICovLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL05ldHdvcmsv
V2ViTG9hZGVyU3RyYXRlZ3kuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL05ldHdvcmsv
V2ViTG9hZGVyU3RyYXRlZ3kuY3BwCmluZGV4IGVhN2IxN2EzZGViLi41YTI3OWVmMTNhMCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL05ldHdvcmsvV2ViTG9hZGVyU3RyYXRl
Z3kuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9OZXR3b3JrL1dlYkxvYWRlclN0
cmF0ZWd5LmNwcApAQCAtNDU5LDYgKzQ1OSwxMSBAQCB2b2lkIFdlYkxvYWRlclN0cmF0ZWd5Ojpk
aWRGaW5pc2hQaW5nTG9hZCh1aW50NjRfdCBwaW5nTG9hZElkZW50aWZpZXIsIFJlc291cmNlRQog
ICAgICAgICBjb21wbGV0aW9uSGFuZGxlcihXVEZNb3ZlKGVycm9yKSk7CiB9CiAKK3ZvaWQgV2Vi
TG9hZGVyU3RyYXRlZ3k6OnByZWNvbm5lY3RUbyhjb25zdCBXZWJDb3JlOjpVUkwmIHVybCkKK3sK
KyAgICBXZWJQcm9jZXNzOjpzaW5nbGV0b24oKS5uZXR3b3JrQ29ubmVjdGlvbigpLmNvbm5lY3Rp
b24oKS5zZW5kKE1lc3NhZ2VzOjpOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzczo6UHJlY29u
bmVjdFRvKHVybCksIDApOworfQorCiB2b2lkIFdlYkxvYWRlclN0cmF0ZWd5OjpzdG9yZURlcml2
ZWREYXRhVG9DYWNoZShjb25zdCBTSEExOjpEaWdlc3QmIGJvZHlIYXNoLCBjb25zdCBTdHJpbmcm
IHR5cGUsIGNvbnN0IFN0cmluZyYgcGFydGl0aW9uLCBXZWJDb3JlOjpTaGFyZWRCdWZmZXImIGRh
dGEpCiB7CiAjaWYgRU5BQkxFKE5FVFdPUktfQ0FDSEUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvTmV0d29yay9XZWJMb2FkZXJTdHJhdGVneS5oIGIvU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL05ldHdvcmsvV2ViTG9hZGVyU3RyYXRlZ3kuaAppbmRleCA1NzMwMjhlNWE3
Yi4uMTFmNzkwYzYwMGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9OZXR3
b3JrL1dlYkxvYWRlclN0cmF0ZWd5LmgKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL05l
dHdvcmsvV2ViTG9hZGVyU3RyYXRlZ3kuaApAQCAtNjIsNiArNjIsOCBAQCBwdWJsaWM6CiAgICAg
dm9pZCBzdGFydFBpbmdMb2FkKFdlYkNvcmU6OkZyYW1lJiwgV2ViQ29yZTo6UmVzb3VyY2VSZXF1
ZXN0JiwgY29uc3QgV2ViQ29yZTo6SFRUUEhlYWRlck1hcCYgb3JpZ2luYWxSZXF1ZXN0SGVhZGVy
cywgY29uc3QgV2ViQ29yZTo6RmV0Y2hPcHRpb25zJiwgUGluZ0xvYWRDb21wbGV0aW9uSGFuZGxl
ciYmKSBmaW5hbDsKICAgICB2b2lkIGRpZEZpbmlzaFBpbmdMb2FkKHVpbnQ2NF90IHBpbmdMb2Fk
SWRlbnRpZmllciwgV2ViQ29yZTo6UmVzb3VyY2VFcnJvciYmKTsKIAorICAgIHZvaWQgcHJlY29u
bmVjdFRvKGNvbnN0IFdlYkNvcmU6OlVSTCYpIGZpbmFsOworCiAgICAgdm9pZCBzdG9yZURlcml2
ZWREYXRhVG9DYWNoZShjb25zdCBTSEExOjpEaWdlc3QmIGJvZHlIYXNoLCBjb25zdCBTdHJpbmcm
IHR5cGUsIGNvbnN0IFN0cmluZyYgcGFydGl0aW9uLCBXZWJDb3JlOjpTaGFyZWRCdWZmZXImKSBm
aW5hbDsKIAogICAgIHZvaWQgc2V0Q2FwdHVyZUV4dHJhTmV0d29ya0xvYWRNZXRyaWNzRW5hYmxl
ZChib29sKSBmaW5hbDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQ
YWdlL1dlYlBhZ2UuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFn
ZS5jcHAKaW5kZXggODI2MWUzMzQ1ODIuLmE4ZGVlNmY1YjdjIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0
L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcApAQCAtMzA5MCw2ICszMDkwLDcgQEAgdm9p
ZCBXZWJQYWdlOjp1cGRhdGVQcmVmZXJlbmNlcyhjb25zdCBXZWJQcmVmZXJlbmNlc1N0b3JlJiBz
dG9yZSkKICAgICBzZXR0aW5ncy5zZXRQYWdpbmF0ZUR1cmluZ0xheW91dEVuYWJsZWQoc3RvcmUu
Z2V0Qm9vbFZhbHVlRm9yS2V5KFdlYlByZWZlcmVuY2VzS2V5OjpwYWdpbmF0ZUR1cmluZ0xheW91
dEVuYWJsZWRLZXkoKSkpOwogICAgIHNldHRpbmdzLnNldERPTVBhc3RlQWxsb3dlZChzdG9yZS5n
ZXRCb29sVmFsdWVGb3JLZXkoV2ViUHJlZmVyZW5jZXNLZXk6OmRvbVBhc3RlQWxsb3dlZEtleSgp
KSk7CiAgICAgc2V0dGluZ3Muc2V0SmF2YVNjcmlwdENhbkFjY2Vzc0NsaXBib2FyZChzdG9yZS5n
ZXRCb29sVmFsdWVGb3JLZXkoV2ViUHJlZmVyZW5jZXNLZXk6OmphdmFTY3JpcHRDYW5BY2Nlc3ND
bGlwYm9hcmRLZXkoKSkpOworICAgIHNldHRpbmdzLnNldExpbmtQcmVjb25uZWN0RW5hYmxlZChz
dG9yZS5nZXRCb29sVmFsdWVGb3JLZXkoV2ViUHJlZmVyZW5jZXNLZXk6OmxpbmtQcmVjb25uZWN0
S2V5KCkpKTsKICAgICBzZXR0aW5ncy5zZXRTaG91bGRQcmludEJhY2tncm91bmRzKHN0b3JlLmdl
dEJvb2xWYWx1ZUZvcktleShXZWJQcmVmZXJlbmNlc0tleTo6c2hvdWxkUHJpbnRCYWNrZ3JvdW5k
c0tleSgpKSk7CiAgICAgc2V0dGluZ3Muc2V0V2ViU2VjdXJpdHlFbmFibGVkKHN0b3JlLmdldEJv
b2xWYWx1ZUZvcktleShXZWJQcmVmZXJlbmNlc0tleTo6d2ViU2VjdXJpdHlFbmFibGVkS2V5KCkp
KTsKICAgICBzZXR0aW5ncy5zZXRBbGxvd1VuaXZlcnNhbEFjY2Vzc0Zyb21GaWxlVVJMcyhzdG9y
ZS5nZXRCb29sVmFsdWVGb3JLZXkoV2ViUHJlZmVyZW5jZXNLZXk6OmFsbG93VW5pdmVyc2FsQWNj
ZXNzRnJvbUZpbGVVUkxzS2V5KCkpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY29uZmln
LmggYi9Tb3VyY2UvV2ViS2l0L2NvbmZpZy5oCmluZGV4IGU4NjdmNDg3YzcxLi5jYWY0ZmQ3N2Jj
YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jb25maWcuaAorKysgYi9Tb3VyY2UvV2ViS2l0
L2NvbmZpZy5oCkBAIC04OCw2ICs4OCwxMiBAQAogI2VuZGlmCiAjZW5kaWYKIAorI2lmIFVTRShO
RVRXT1JLX1NFU1NJT04pICYmICgoUExBVEZPUk0oTUFDKSAmJiBfX01BQ19PU19YX1ZFUlNJT05f
TUlOX1JFUVVJUkVEID49IDEwMTMwMCkgfHwgKFBMQVRGT1JNKElPUykgJiYgX19JUEhPTkVfT1Nf
VkVSU0lPTl9NSU5fUkVRVUlSRUQgPj0gMTEwMDAwKSkKKyNpZm5kZWYgRU5BQkxFX1NFUlZFUl9Q
UkVDT05ORUNUCisjZGVmaW5lIEVOQUJMRV9TRVJWRVJfUFJFQ09OTkVDVCAxCisjZW5kaWYKKyNl
bmRpZgorCiAjaWZuZGVmIEhBVkVfU0VDX0FDQ0VTU19DT05UUk9MCiAjaWYgUExBVEZPUk0oSU9T
KSB8fCBQTEFURk9STShNQUMpCiAjZGVmaW5lIEhBVkVfU0VDX0FDQ0VTU19DT05UUk9MIDEKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvV2ViQ29yZVN1cHBvcnQvV2ViUmVzb3VyY2VM
b2FkU2NoZWR1bGVyLmNwcCBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvV2ViQ29yZVN1cHBvcnQvV2Vi
UmVzb3VyY2VMb2FkU2NoZWR1bGVyLmNwcAppbmRleCA0ZDI5ODVkMWE0My4uY2ViZWY0YTE4MDEg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvV2ViQ29yZVN1cHBvcnQvV2ViUmVzb3Vy
Y2VMb2FkU2NoZWR1bGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L1dlYkNvcmVTdXBw
b3J0L1dlYlJlc291cmNlTG9hZFNjaGVkdWxlci5jcHAKQEAgLTM2OSwzICszNjksNyBAQCB2b2lk
IFdlYlJlc291cmNlTG9hZFNjaGVkdWxlcjo6c3RhcnRQaW5nTG9hZChGcmFtZSYgZnJhbWUsIFJl
c291cmNlUmVxdWVzdCYgcmVxdQogICAgIG5ldyBQaW5nSGFuZGxlKGZyYW1lLmxvYWRlcigpLm5l
dHdvcmtpbmdDb250ZXh0KCksIHJlcXVlc3QsIG9wdGlvbnMuY3JlZGVudGlhbHMgIT0gRmV0Y2hP
cHRpb25zOjpDcmVkZW50aWFsczo6T21pdCwgUGluZ0hhbmRsZTo6VXNlc0FzeW5jQ2FsbGJhY2tz
OjpObywgb3B0aW9ucy5yZWRpcmVjdCA9PSBGZXRjaE9wdGlvbnM6OlJlZGlyZWN0OjpGb2xsb3cs
IFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpKTsKIH0KIAordm9pZCBXZWJSZXNvdXJjZUxvYWRT
Y2hlZHVsZXI6OnByZWNvbm5lY3RUbyhjb25zdCBVUkwmKQoreworfQorCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0TGVnYWN5L1dlYkNvcmVTdXBwb3J0L1dlYlJlc291cmNlTG9hZFNjaGVkdWxl
ci5oIGIvU291cmNlL1dlYktpdExlZ2FjeS9XZWJDb3JlU3VwcG9ydC9XZWJSZXNvdXJjZUxvYWRT
Y2hlZHVsZXIuaAppbmRleCAwZTBjMmRlNTc3Yy4uOWVkYzU1NTc5YTEgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXRMZWdhY3kvV2ViQ29yZVN1cHBvcnQvV2ViUmVzb3VyY2VMb2FkU2NoZWR1bGVy
LmgKKysrIGIvU291cmNlL1dlYktpdExlZ2FjeS9XZWJDb3JlU3VwcG9ydC9XZWJSZXNvdXJjZUxv
YWRTY2hlZHVsZXIuaApAQCAtNjEsNiArNjEsOCBAQCBwdWJsaWM6CiAKICAgICB2b2lkIHN0YXJ0
UGluZ0xvYWQoV2ViQ29yZTo6RnJhbWUmLCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmLCBjb25z
dCBXZWJDb3JlOjpIVFRQSGVhZGVyTWFwJiwgY29uc3QgV2ViQ29yZTo6RmV0Y2hPcHRpb25zJiwg
UGluZ0xvYWRDb21wbGV0aW9uSGFuZGxlciYmKSBmaW5hbDsKIAorICAgIHZvaWQgcHJlY29ubmVj
dFRvKGNvbnN0IFdlYkNvcmU6OlVSTCYpIGZpbmFsOworCiAgICAgdm9pZCBzdG9yZURlcml2ZWRE
YXRhVG9DYWNoZShjb25zdCBTSEExOjpEaWdlc3QmLCBjb25zdCBTdHJpbmcmLCBjb25zdCBTdHJp
bmcmLCBXZWJDb3JlOjpTaGFyZWRCdWZmZXImKSBmaW5hbCB7IH0KIAogICAgIHZvaWQgc2V0Q2Fw
dHVyZUV4dHJhTmV0d29ya0xvYWRNZXRyaWNzRW5hYmxlZChib29sKSBmaW5hbCB7IH0K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>321770</attachid>
            <date>2017-09-25 17:02:44 -0700</date>
            <delta_ts>2017-09-26 10:14:30 -0700</delta_ts>
            <desc>WIP Patch</desc>
            <filename>177474_preconnect_support_wip.patch</filename>
            <type>text/plain</type>
            <size>42059</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvaHRtbC9saW5rLXJlbC1wcmVjb25uZWN0LWV4
cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvaHRtbC9saW5rLXJlbC1wcmVjb25uZWN0LWV4
cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uYzVhM2Y1
ZDcxZWIKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2h0bWwvbGluay1yZWwt
cHJlY29ubmVjdC1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwxMiBAQAorVGVzdHMgdGhhdCBMaW5r
J3MgcmVsPXByZWNvbm5lY3QgaXMgcmVwb3J0ZWQgYXMgc3VwcG9ydGVkLgorCitPbiBzdWNjZXNz
LCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAi
VEVTVCBDT01QTEVURSIuCisKKworUEFTUyB0ZXN0TGluay5yZWxMaXN0Lmxlbmd0aCBpcyAxCitQ
QVNTIHRlc3RMaW5rLnJlbExpc3RbMF0gaXMgInByZWNvbm5lY3QiCitQQVNTIHRlc3RMaW5rLnJl
bExpc3Quc3VwcG9ydHMoJ3ByZWNvbm5lY3QnKSBpcyB0cnVlCitQQVNTIHN1Y2Nlc3NmdWxseVBh
cnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
ZmFzdC9odG1sL2xpbmstcmVsLXByZWNvbm5lY3QuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvaHRt
bC9saW5rLXJlbC1wcmVjb25uZWN0Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAuLjJkMTQ2MWFmYmMzCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFz
dC9odG1sL2xpbmstcmVsLXByZWNvbm5lY3QuaHRtbApAQCAtMCwwICsxLDE3IEBACis8IURPQ1RZ
UEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+Cis8bGluayBpZD0idGVzdExpbmsiIHJlbD0icHJlY29u
bmVjdCIgaHJlZj0iaHR0cDovL2xvY2FsaG9zdDo4MDAwIj4KKzxzY3JpcHQgc3JjPSIuLi8uLi9y
ZXNvdXJjZXMvanMtdGVzdC5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxzY3JpcHQ+
CitkZXNjcmlwdGlvbigiVGVzdHMgdGhhdCBMaW5rJ3MgcmVsPXByZWNvbm5lY3QgaXMgcmVwb3J0
ZWQgYXMgc3VwcG9ydGVkLiIpOworCitjb25zdCB0ZXN0TGluayA9IGRvY3VtZW50LmdldEVsZW1l
bnRCeUlkKCJ0ZXN0TGluayIpOworc2hvdWxkQmUoInRlc3RMaW5rLnJlbExpc3QubGVuZ3RoIiwg
IjEiKTsKK3Nob3VsZEJlRXF1YWxUb1N0cmluZygidGVzdExpbmsucmVsTGlzdFswXSIsICJwcmVj
b25uZWN0Iik7CitzaG91bGRCZVRydWUoInRlc3RMaW5rLnJlbExpc3Quc3VwcG9ydHMoJ3ByZWNv
bm5lY3QnKSIpOworPC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9wbGF0Zm9ybS9tYWMtd2sxL1Rlc3RFeHBlY3RhdGlvbnMgYi9MYXlvdXRUZXN0cy9w
bGF0Zm9ybS9tYWMtd2sxL1Rlc3RFeHBlY3RhdGlvbnMKaW5kZXggODAzNzMzMzRmZWYuLmJhN2E0
YjI3ZWVhIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMtd2sxL1Rlc3RFeHBl
Y3RhdGlvbnMKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjLXdrMS9UZXN0RXhwZWN0YXRp
b25zCkBAIC0zOTksNiArMzk5LDkgQEAgZmFzdC9pbWFnZXMvbG93LW1lbW9yeS1kZWNvZGUuaHRt
bCBbIFNraXAgXQogCiBodHRwL3Rlc3RzL3dvcmtlcnMvc2VydmljZSBbIFNraXAgXQogCisjIExp
bmsgcHJlY29ubmVjdCBpcyBub3QgZW5hYmxlZCBvbiBXSzEuCitmYXN0L2h0bWwvbGluay1yZWwt
cHJlY29ubmVjdC5odG1sIFsgRmFpbHVyZSBdCisKIHdlYmtpdC5vcmcvYi8xNzUzNDUgZmFzdC9p
bWFnZXMvYW5pbWF0ZWQtZ2lmLXNjcm9sbGluZy1jcmFzaC5odG1sIFsgUGFzcyBUaW1lb3V0IF0K
IAogd2Via2l0Lm9yZy9iLzE3NTU1NCBbIFNpZXJyYSBdIGZ1bGxzY3JlZW4vZnVsbC1zY3JlZW4t
aWZyYW1lLWxlZ2FjeS5odG1sIFsgUGFzcyBGYWlsdXJlIF0KZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL3BsYXRmb3JtL21hYy13azIvVGVzdEV4cGVjdGF0aW9ucyBiL0xheW91dFRlc3RzL3BsYXRm
b3JtL21hYy13azIvVGVzdEV4cGVjdGF0aW9ucwppbmRleCAwN2FiNDY4ZDEzZC4uNzI2MThhMzE0
OGUgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy13azIvVGVzdEV4cGVjdGF0
aW9ucworKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMtd2syL1Rlc3RFeHBlY3RhdGlvbnMK
QEAgLTcyOCw2ICs3MjgsOSBAQCB3ZWJraXQub3JnL2IvMTcyODM0IFsgRWxDYXBpdGFuIF0gaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9JbmRleGVkREIvaWRibwogWyBFbENhcGl0YW4g
XSBpbXBvcnRlZC9ibGluay9mYXN0L2JlYWNvbi8gWyBTa2lwIF0KIFsgRWxDYXBpdGFuIF0gaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9iZWFjb24vIFsgU2tpcCBdCiAKKyMgUmVxdWly
ZXMgTkVUV09SS19TRVNTSU9OIHRvIGJlIGVuYWJsZWQuCitbIEVsQ2FwaXRhbiBdIGZhc3QvaHRt
bC9saW5rLXJlbC1wcmVjb25uZWN0Lmh0bWwgWyBGYWlsdXJlIF0KKwogd2Via2l0Lm9yZy9iLzE3
MjIwMSB3ZWJhdWRpby9zaWxlbnQtYXVkaW8taW50ZXJydXB0ZWQtaW4tYmFja2dyb3VuZC5odG1s
IFsgUGFzcyBUaW1lb3V0IF0KIAogd2Via2l0Lm9yZy9iLzE2Nzc1NyB3b3JrZXJzL2JvbWIuaHRt
bCBbIFBhc3MgVGltZW91dCBdCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL3Nw
aS9jZi9DRk5ldHdvcmtTUEkuaCBiL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvc3BpL2NmL0NGTmV0
d29ya1NQSS5oCmluZGV4IDNlNTg0M2VhZDViLi42ODFkYmJiM2I4MCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvUEFML3BhbC9zcGkvY2YvQ0ZOZXR3b3JrU1BJLmgKKysrIGIvU291cmNlL1dl
YkNvcmUvUEFML3BhbC9zcGkvY2YvQ0ZOZXR3b3JrU1BJLmgKQEAgLTExMyw2ICsxMTMsMTIgQEAg
dHlwZWRlZiB2b2lkICheQ0ZDYWNoZWRVUkxSZXNwb25zZUNhbGxCYWNrQmxvY2spKENGQ2FjaGVk
VVJMUmVzcG9uc2VSZWYpOwogLSAoTlNEaWN0aW9uYXJ5ICopX3RpbWluZ0RhdGE7CiBAZW5kCiAK
KyNpZiAoUExBVEZPUk0oTUFDKSAmJiBfX01BQ19PU19YX1ZFUlNJT05fTUlOX1JFUVVJUkVEID49
IDEwMTMwMCkgfHwgKFBMQVRGT1JNKElPUykgJiYgX19JUEhPTkVfT1NfVkVSU0lPTl9NSU5fUkVR
VUlSRUQgPj0gMTEwMDAwKQorQGludGVyZmFjZSBOU1VSTFNlc3Npb25UYXNrIChSZXNvdXJjZUhp
bnRzKQorQHByb3BlcnR5IChub25hdG9taWMsIGFzc2lnbikgQk9PTCBfcHJlY29ubmVjdDsKK0Bl
bmQKKyNlbmRpZgorCiBAaW50ZXJmYWNlIE5TSFRUUENvb2tpZSAoKQogLSAoQ0ZIVFRQQ29va2ll
UmVmKV9DRkhUVFBDb29raWU7CiArIChDRkFycmF5UmVmIF9fbnVsbGFibGUpX25zMmNmQ29va2ll
czooTlNBcnJheSAqIF9fbnVsbGFibGUpbnNDb29raWVzIENGX1JFVFVSTlNfUkVUQUlORUQ7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0RPTVRva2VuTGlzdC5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9odG1sL0RPTVRva2VuTGlzdC5jcHAKaW5kZXggMjU1NWI2ODQ0NmIuLjdjYWIxYjcz
NmEwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0RPTVRva2VuTGlzdC5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvaHRtbC9ET01Ub2tlbkxpc3QuY3BwCkBAIC0zNSw3ICszNSw3IEBA
CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotRE9NVG9rZW5MaXN0OjpET01Ub2tlbkxpc3QoRWxl
bWVudCYgZWxlbWVudCwgY29uc3QgUXVhbGlmaWVkTmFtZSYgYXR0cmlidXRlTmFtZSwgV1RGOjpG
dW5jdGlvbjxib29sKFN0cmluZ1ZpZXcpPiYmIGlzU3VwcG9ydGVkVG9rZW4pCitET01Ub2tlbkxp
c3Q6OkRPTVRva2VuTGlzdChFbGVtZW50JiBlbGVtZW50LCBjb25zdCBRdWFsaWZpZWROYW1lJiBh
dHRyaWJ1dGVOYW1lLCBJc1N1cHBvcnRlZFRva2VuRnVuY3Rpb24mJiBpc1N1cHBvcnRlZFRva2Vu
KQogICAgIDogbV9lbGVtZW50KGVsZW1lbnQpCiAgICAgLCBtX2F0dHJpYnV0ZU5hbWUoYXR0cmli
dXRlTmFtZSkKICAgICAsIG1faXNTdXBwb3J0ZWRUb2tlbihXVEZNb3ZlKGlzU3VwcG9ydGVkVG9r
ZW4pKQpAQCAtMTkxLDcgKzE5MSw3IEBAIEV4Y2VwdGlvbk9yPGJvb2w+IERPTVRva2VuTGlzdDo6
c3VwcG9ydHMoU3RyaW5nVmlldyB0b2tlbikKIHsKICAgICBpZiAoIW1faXNTdXBwb3J0ZWRUb2tl
bikKICAgICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7IFR5cGVFcnJvciB9OwotICAgIHJldHVybiBt
X2lzU3VwcG9ydGVkVG9rZW4odG9rZW4pOworICAgIHJldHVybiBtX2lzU3VwcG9ydGVkVG9rZW4o
bV9lbGVtZW50LmRvY3VtZW50KCksIHRva2VuKTsKIH0KIAogLy8gaHR0cHM6Ly9kb20uc3BlYy53
aGF0d2cub3JnLyNkb20tZG9tdG9rZW5saXN0LXZhbHVlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9odG1sL0RPTVRva2VuTGlzdC5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9ET01Ub2tlbkxp
c3QuaAppbmRleCAyMWZiNDZmNDYxMi4uZDYwZDE3Y2M5MTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvRE9NVG9rZW5MaXN0LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9ET01U
b2tlbkxpc3QuaApAQCAtMzIsNyArMzIsOCBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiBjbGFzcyBE
T01Ub2tlbkxpc3QgewogICAgIFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOwogcHVibGljOgotICAg
IERPTVRva2VuTGlzdChFbGVtZW50JiwgY29uc3QgUXVhbGlmaWVkTmFtZSYgYXR0cmlidXRlTmFt
ZSwgV1RGOjpGdW5jdGlvbjxib29sKFN0cmluZ1ZpZXcpPiYmIGlzU3VwcG9ydGVkVG9rZW4gPSB7
IH0pOworICAgIHVzaW5nIElzU3VwcG9ydGVkVG9rZW5GdW5jdGlvbiA9IFdURjo6RnVuY3Rpb248
Ym9vbChEb2N1bWVudCYsIFN0cmluZ1ZpZXcpPjsKKyAgICBET01Ub2tlbkxpc3QoRWxlbWVudCYs
IGNvbnN0IFF1YWxpZmllZE5hbWUmIGF0dHJpYnV0ZU5hbWUsIElzU3VwcG9ydGVkVG9rZW5GdW5j
dGlvbiYmIGlzU3VwcG9ydGVkVG9rZW4gPSB7IH0pOwogCiAgICAgdm9pZCBhc3NvY2lhdGVkQXR0
cmlidXRlVmFsdWVDaGFuZ2VkKGNvbnN0IEF0b21pY1N0cmluZyYpOwogCkBAIC03Myw3ICs3NCw3
IEBAIHByaXZhdGU6CiAgICAgYm9vbCBtX2luVXBkYXRlQXNzb2NpYXRlZEF0dHJpYnV0ZUZyb21U
b2tlbnMgeyBmYWxzZSB9OwogICAgIGJvb2wgbV90b2tlbnNOZWVkVXBkYXRpbmcgeyB0cnVlIH07
CiAgICAgVmVjdG9yPEF0b21pY1N0cmluZz4gbV90b2tlbnM7Ci0gICAgV1RGOjpGdW5jdGlvbjxi
b29sKFN0cmluZ1ZpZXcpPiBtX2lzU3VwcG9ydGVkVG9rZW47CisgICAgSXNTdXBwb3J0ZWRUb2tl
bkZ1bmN0aW9uIG1faXNTdXBwb3J0ZWRUb2tlbjsKIH07CiAKIGlubGluZSB1bnNpZ25lZCBET01U
b2tlbkxpc3Q6Omxlbmd0aCgpIGNvbnN0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1s
L0hUTUxBbmNob3JFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEFuY2hvckVs
ZW1lbnQuY3BwCmluZGV4IGNiMWYxYzlmNTQ2Li40ODgxYzNkOWU4YSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvaHRtbC9IVE1MQW5jaG9yRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvaHRtbC9IVE1MQW5jaG9yRWxlbWVudC5jcHAKQEAgLTMwNyw3ICszMDcsNyBAQCBib29sIEhU
TUxBbmNob3JFbGVtZW50OjpoYXNSZWwoUmVsYXRpb24gcmVsYXRpb24pIGNvbnN0CiBET01Ub2tl
bkxpc3QmIEhUTUxBbmNob3JFbGVtZW50OjpyZWxMaXN0KCkKIHsKICAgICBpZiAoIW1fcmVsTGlz
dCkgCi0gICAgICAgIG1fcmVsTGlzdCA9IHN0ZDo6bWFrZV91bmlxdWU8RE9NVG9rZW5MaXN0Pigq
dGhpcywgSFRNTE5hbWVzOjpyZWxBdHRyLCBbXShTdHJpbmdWaWV3IHRva2VuKSB7CisgICAgICAg
IG1fcmVsTGlzdCA9IHN0ZDo6bWFrZV91bmlxdWU8RE9NVG9rZW5MaXN0PigqdGhpcywgSFRNTE5h
bWVzOjpyZWxBdHRyLCBbXShEb2N1bWVudCYsIFN0cmluZ1ZpZXcgdG9rZW4pIHsKICAgICAgICAg
ICAgIHJldHVybiBlcXVhbElnbm9yaW5nQVNDSUlDYXNlKHRva2VuLCAibm9yZWZlcnJlciIpIHx8
IGVxdWFsSWdub3JpbmdBU0NJSUNhc2UodG9rZW4sICJub29wZW5lciIpOwogICAgICAgICB9KTsK
ICAgICByZXR1cm4gKm1fcmVsTGlzdDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwv
SFRNTElGcmFtZUVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MSUZyYW1lRWxl
bWVudC5jcHAKaW5kZXggZDMwMzIyZGMwYzQuLjIyM2UzYjAzMzFhIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL0hUTUxJRnJhbWVFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9odG1sL0hUTUxJRnJhbWVFbGVtZW50LmNwcApAQCAtNTEsNyArNTEsNyBAQCBSZWY8SFRNTElG
cmFtZUVsZW1lbnQ+IEhUTUxJRnJhbWVFbGVtZW50OjpjcmVhdGUoY29uc3QgUXVhbGlmaWVkTmFt
ZSYgdGFnTmFtZSwgRAogRE9NVG9rZW5MaXN0JiBIVE1MSUZyYW1lRWxlbWVudDo6c2FuZGJveCgp
CiB7CiAgICAgaWYgKCFtX3NhbmRib3gpCi0gICAgICAgIG1fc2FuZGJveCA9IHN0ZDo6bWFrZV91
bmlxdWU8RE9NVG9rZW5MaXN0PigqdGhpcywgc2FuZGJveEF0dHIsIFtdKFN0cmluZ1ZpZXcgdG9r
ZW4pIHsKKyAgICAgICAgbV9zYW5kYm94ID0gc3RkOjptYWtlX3VuaXF1ZTxET01Ub2tlbkxpc3Q+
KCp0aGlzLCBzYW5kYm94QXR0ciwgW10oRG9jdW1lbnQmLCBTdHJpbmdWaWV3IHRva2VuKSB7CiAg
ICAgICAgICAgICByZXR1cm4gU2VjdXJpdHlDb250ZXh0Ojppc1N1cHBvcnRlZFNhbmRib3hQb2xp
Y3kodG9rZW4pOwogICAgICAgICB9KTsKICAgICByZXR1cm4gKm1fc2FuZGJveDsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTExpbmtFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJD
b3JlL2h0bWwvSFRNTExpbmtFbGVtZW50LmNwcAppbmRleCBlMDFiNmUzYjRjOC4uZTdkMGY3Y2M3
NDIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTExpbmtFbGVtZW50LmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxMaW5rRWxlbWVudC5jcHAKQEAgLTE1Niw3ICsx
NTYsNyBAQCB2b2lkIEhUTUxMaW5rRWxlbWVudDo6c2V0RGlzYWJsZWRTdGF0ZShib29sIGRpc2Fi
bGVkKQogdm9pZCBIVE1MTGlua0VsZW1lbnQ6OnBhcnNlQXR0cmlidXRlKGNvbnN0IFF1YWxpZmll
ZE5hbWUmIG5hbWUsIGNvbnN0IEF0b21pY1N0cmluZyYgdmFsdWUpCiB7CiAgICAgaWYgKG5hbWUg
PT0gcmVsQXR0cikgewotICAgICAgICBtX3JlbEF0dHJpYnV0ZSA9IExpbmtSZWxBdHRyaWJ1dGUo
dmFsdWUpOworICAgICAgICBtX3JlbEF0dHJpYnV0ZSA9IExpbmtSZWxBdHRyaWJ1dGUoZG9jdW1l
bnQoKSwgdmFsdWUpOwogICAgICAgICBpZiAobV9yZWxMaXN0KQogICAgICAgICAgICAgbV9yZWxM
aXN0LT5hc3NvY2lhdGVkQXR0cmlidXRlVmFsdWVDaGFuZ2VkKHZhbHVlKTsKICAgICAgICAgcHJv
Y2VzcygpOwpAQCAtNDk4LDggKzQ5OCw4IEBAIHZvaWQgSFRNTExpbmtFbGVtZW50OjpkaXNwYXRj
aFBlbmRpbmdFdmVudChMaW5rRXZlbnRTZW5kZXIqIGV2ZW50U2VuZGVyKQogRE9NVG9rZW5MaXN0
JiBIVE1MTGlua0VsZW1lbnQ6OnJlbExpc3QoKQogewogICAgIGlmICghbV9yZWxMaXN0KSAKLSAg
ICAgICAgbV9yZWxMaXN0ID0gc3RkOjptYWtlX3VuaXF1ZTxET01Ub2tlbkxpc3Q+KCp0aGlzLCBI
VE1MTmFtZXM6OnJlbEF0dHIsIFtdKFN0cmluZ1ZpZXcgdG9rZW4pIHsKLSAgICAgICAgICAgIHJl
dHVybiBMaW5rUmVsQXR0cmlidXRlOjppc1N1cHBvcnRlZCh0b2tlbik7CisgICAgICAgIG1fcmVs
TGlzdCA9IHN0ZDo6bWFrZV91bmlxdWU8RE9NVG9rZW5MaXN0PigqdGhpcywgSFRNTE5hbWVzOjpy
ZWxBdHRyLCBbXShEb2N1bWVudCYgZG9jdW1lbnQsIFN0cmluZ1ZpZXcgdG9rZW4pIHsKKyAgICAg
ICAgICAgIHJldHVybiBMaW5rUmVsQXR0cmlidXRlOjppc1N1cHBvcnRlZChkb2N1bWVudCwgdG9r
ZW4pOwogICAgICAgICB9KTsKICAgICByZXR1cm4gKm1fcmVsTGlzdDsKIH0KZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2h0bWwvTGlua1JlbEF0dHJpYnV0ZS5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9odG1sL0xpbmtSZWxBdHRyaWJ1dGUuY3BwCmluZGV4IDg2NmFmZDhlNWViLi41NzJiZGIzNGM1
OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9MaW5rUmVsQXR0cmlidXRlLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0xpbmtSZWxBdHRyaWJ1dGUuY3BwCkBAIC0zMiw4ICsz
MiwxMCBAQAogI2luY2x1ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUgIkxpbmtSZWxBdHRyaWJ1dGUu
aCIKIAorI2luY2x1ZGUgIkRvY3VtZW50LmgiCiAjaW5jbHVkZSAiTGlua0ljb25UeXBlLmgiCiAj
aW5jbHVkZSAiUnVudGltZUVuYWJsZWRGZWF0dXJlcy5oIgorI2luY2x1ZGUgIlNldHRpbmdzLmgi
CiAjaW5jbHVkZSA8d3RmL3RleHQvU3RyaW5nVmlldy5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L1dU
RlN0cmluZy5oPgogCkBAIC00NCw3ICs0Niw3IEBAIExpbmtSZWxBdHRyaWJ1dGU6OkxpbmtSZWxB
dHRyaWJ1dGUoKQogfQogCiAvLyBLZWVwIExpbmtSZWxBdHRyaWJ1dGU6OmlzU3VwcG9ydGVkKCkg
aW4gc3luYyB3aGVuIHVwZGF0aW5nIHRoaXMgY29uc3RydWN0b3IuCi1MaW5rUmVsQXR0cmlidXRl
OjpMaW5rUmVsQXR0cmlidXRlKGNvbnN0IFN0cmluZyYgcmVsKQorTGlua1JlbEF0dHJpYnV0ZTo6
TGlua1JlbEF0dHJpYnV0ZShEb2N1bWVudCYgZG9jdW1lbnQsIGNvbnN0IFN0cmluZyYgcmVsKQog
ewogICAgIGlmIChlcXVhbExldHRlcnNJZ25vcmluZ0FTQ0lJQ2FzZShyZWwsICJzdHlsZXNoZWV0
IikpCiAgICAgICAgIGlzU3R5bGVTaGVldCA9IHRydWU7CkBAIC01Niw2ICs1OCw4IEBAIExpbmtS
ZWxBdHRyaWJ1dGU6OkxpbmtSZWxBdHRyaWJ1dGUoY29uc3QgU3RyaW5nJiByZWwpCiAgICAgICAg
IGljb25UeXBlID0gTGlua0ljb25UeXBlOjpUb3VjaFByZWNvbXBvc2VkSWNvbjsKICAgICBlbHNl
IGlmIChlcXVhbExldHRlcnNJZ25vcmluZ0FTQ0lJQ2FzZShyZWwsICJkbnMtcHJlZmV0Y2giKSkK
ICAgICAgICAgaXNETlNQcmVmZXRjaCA9IHRydWU7CisgICAgZWxzZSBpZiAoZG9jdW1lbnQuc2V0
dGluZ3MoKS5saW5rUHJlY29ubmVjdEVuYWJsZWQoKSAmJiBlcXVhbExldHRlcnNJZ25vcmluZ0FT
Q0lJQ2FzZShyZWwsICJwcmVjb25uZWN0IikpCisgICAgICAgIGlzTGlua1ByZWNvbm5lY3QgPSB0
cnVlOwogICAgIGVsc2UgaWYgKFJ1bnRpbWVFbmFibGVkRmVhdHVyZXM6OnNoYXJlZEZlYXR1cmVz
KCkubGlua1ByZWxvYWRFbmFibGVkKCkgJiYgZXF1YWxMZXR0ZXJzSWdub3JpbmdBU0NJSUNhc2Uo
cmVsLCAicHJlbG9hZCIpKQogICAgICAgICBpc0xpbmtQcmVsb2FkID0gdHJ1ZTsKICAgICBlbHNl
IGlmIChlcXVhbExldHRlcnNJZ25vcmluZ0FTQ0lJQ2FzZShyZWwsICJhbHRlcm5hdGUgc3R5bGVz
aGVldCIpIHx8IGVxdWFsTGV0dGVyc0lnbm9yaW5nQVNDSUlDYXNlKHJlbCwgInN0eWxlc2hlZXQg
YWx0ZXJuYXRlIikpIHsKQEAgLTg3LDcgKzkxLDcgQEAgTGlua1JlbEF0dHJpYnV0ZTo6TGlua1Jl
bEF0dHJpYnV0ZShjb25zdCBTdHJpbmcmIHJlbCkKIH0KIAogLy8gaHR0cHM6Ly9odG1sLnNwZWMu
d2hhdHdnLm9yZy8jbGlua1R5cGVzCi1ib29sIExpbmtSZWxBdHRyaWJ1dGU6OmlzU3VwcG9ydGVk
KFN0cmluZ1ZpZXcgYXR0cmlidXRlKQorYm9vbCBMaW5rUmVsQXR0cmlidXRlOjppc1N1cHBvcnRl
ZChEb2N1bWVudCYgZG9jdW1lbnQsIFN0cmluZ1ZpZXcgYXR0cmlidXRlKQogewogICAgIHN0YXRp
YyBjb25zdCBjaGFyKiBjb25zdCBzdXBwb3J0ZWRBdHRyaWJ1dGVzW10gPSB7CiAgICAgICAgICJh
bHRlcm5hdGUiLCAiZG5zLXByZWZldGNoIiwgImljb24iLCAic3R5bGVzaGVldCIsICJhcHBsZS10
b3VjaC1pY29uIiwgImFwcGxlLXRvdWNoLWljb24tcHJlY29tcG9zZWQiLApAQCAtMTAxLDYgKzEw
NSw5IEBAIGJvb2wgTGlua1JlbEF0dHJpYnV0ZTo6aXNTdXBwb3J0ZWQoU3RyaW5nVmlldyBhdHRy
aWJ1dGUpCiAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICB9CiAKKyAgICBpZiAoZG9jdW1l
bnQuc2V0dGluZ3MoKS5saW5rUHJlY29ubmVjdEVuYWJsZWQoKSAmJiBlcXVhbElnbm9yaW5nQVND
SUlDYXNlKGF0dHJpYnV0ZSwgInByZWNvbm5lY3QiKSkKKyAgICAgICAgcmV0dXJuIHRydWU7CisK
ICAgICBpZiAoUnVudGltZUVuYWJsZWRGZWF0dXJlczo6c2hhcmVkRmVhdHVyZXMoKS5saW5rUHJl
bG9hZEVuYWJsZWQoKSAmJiBlcXVhbElnbm9yaW5nQVNDSUlDYXNlKGF0dHJpYnV0ZSwgInByZWxv
YWQiKSkKICAgICAgICAgcmV0dXJuIHRydWU7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvTGlua1JlbEF0dHJpYnV0ZS5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9MaW5rUmVsQXR0
cmlidXRlLmgKaW5kZXggOGUyNjY5MjdlZGQuLmYxMmU5ODY2MzdjIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL0xpbmtSZWxBdHRyaWJ1dGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9o
dG1sL0xpbmtSZWxBdHRyaWJ1dGUuaApAQCAtMzcsNiArMzcsNyBAQAogCiBuYW1lc3BhY2UgV2Vi
Q29yZSB7CiAKK2NsYXNzIERvY3VtZW50OwogZW51bSBjbGFzcyBMaW5rSWNvblR5cGU7CiAKIHN0
cnVjdCBMaW5rUmVsQXR0cmlidXRlIHsKQEAgLTQ1LDE1ICs0NiwxNiBAQCBzdHJ1Y3QgTGlua1Jl
bEF0dHJpYnV0ZSB7CiAgICAgYm9vbCBpc0FsdGVybmF0ZSB7IGZhbHNlIH07CiAgICAgYm9vbCBp
c0ROU1ByZWZldGNoIHsgZmFsc2UgfTsKICAgICBib29sIGlzTGlua1ByZWxvYWQgeyBmYWxzZSB9
OworICAgIGJvb2wgaXNMaW5rUHJlY29ubmVjdCB7IGZhbHNlIH07CiAjaWYgRU5BQkxFKExJTktf
UFJFRkVUQ0gpCiAgICAgYm9vbCBpc0xpbmtQcmVmZXRjaCB7IGZhbHNlIH07CiAgICAgYm9vbCBp
c0xpbmtTdWJyZXNvdXJjZSB7IGZhbHNlIH07CiAjZW5kaWYKIAogICAgIExpbmtSZWxBdHRyaWJ1
dGUoKTsKLSAgICBleHBsaWNpdCBMaW5rUmVsQXR0cmlidXRlKGNvbnN0IFN0cmluZyYpOworICAg
IExpbmtSZWxBdHRyaWJ1dGUoRG9jdW1lbnQmLCBjb25zdCBTdHJpbmcmKTsKIAotICAgIHN0YXRp
YyBib29sIGlzU3VwcG9ydGVkKFN0cmluZ1ZpZXcpOworICAgIHN0YXRpYyBib29sIGlzU3VwcG9y
dGVkKERvY3VtZW50JiwgU3RyaW5nVmlldyk7CiB9OwogCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9odG1sL3BhcnNlci9IVE1MUHJlbG9hZFNjYW5uZXIuY3BwIGIvU291cmNlL1dlYkNv
cmUvaHRtbC9wYXJzZXIvSFRNTFByZWxvYWRTY2FubmVyLmNwcAppbmRleCAwNjAxZGMxMWRjYy4u
MDhkMjhjZGQ0MjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvcGFyc2VyL0hUTUxQ
cmVsb2FkU2Nhbm5lci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9wYXJzZXIvSFRNTFBy
ZWxvYWRTY2FubmVyLmNwcApAQCAtMjMyLDcgKzIzMiw3IEBAIHByaXZhdGU6CiAgICAgICAgICAg
ICBpZiAobWF0Y2goYXR0cmlidXRlTmFtZSwgaHJlZkF0dHIpKQogICAgICAgICAgICAgICAgIHNl
dFVybFRvTG9hZChhdHRyaWJ1dGVWYWx1ZSk7CiAgICAgICAgICAgICBlbHNlIGlmIChtYXRjaChh
dHRyaWJ1dGVOYW1lLCByZWxBdHRyKSkgewotICAgICAgICAgICAgICAgIExpbmtSZWxBdHRyaWJ1
dGUgcGFyc2VkQXR0cmlidXRlIHsgYXR0cmlidXRlVmFsdWUgfTsKKyAgICAgICAgICAgICAgICBM
aW5rUmVsQXR0cmlidXRlIHBhcnNlZEF0dHJpYnV0ZSB7IGRvY3VtZW50LCBhdHRyaWJ1dGVWYWx1
ZSB9OwogICAgICAgICAgICAgICAgIG1fbGlua0lzU3R5bGVTaGVldCA9IHJlbEF0dHJpYnV0ZUlz
U3R5bGVTaGVldChwYXJzZWRBdHRyaWJ1dGUpOwogICAgICAgICAgICAgICAgIG1fbGlua0lzUHJl
bG9hZCA9IHBhcnNlZEF0dHJpYnV0ZS5pc0xpbmtQcmVsb2FkOwogICAgICAgICAgICAgfSBlbHNl
IGlmIChtYXRjaChhdHRyaWJ1dGVOYW1lLCBtZWRpYUF0dHIpKQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvbG9hZGVyL0xpbmtMb2FkZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0xp
bmtMb2FkZXIuY3BwCmluZGV4IDJiMTYxMzI2NDMwLi5hNWFlMGYxYTUwYSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvbG9hZGVyL0xpbmtMb2FkZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2xvYWRlci9MaW5rTG9hZGVyLmNwcApAQCAtNDcsOCArNDcsMTAgQEAKICNpbmNsdWRlICJMaW5r
SGVhZGVyLmgiCiAjaW5jbHVkZSAiTGlua1ByZWxvYWRSZXNvdXJjZUNsaWVudHMuaCIKICNpbmNs
dWRlICJMaW5rUmVsQXR0cmlidXRlLmgiCisjaW5jbHVkZSAiTG9hZGVyU3RyYXRlZ3kuaCIKICNp
bmNsdWRlICJNSU1FVHlwZVJlZ2lzdHJ5LmgiCiAjaW5jbHVkZSAiTWVkaWFRdWVyeUV2YWx1YXRv
ci5oIgorI2luY2x1ZGUgIlBsYXRmb3JtU3RyYXRlZ2llcy5oIgogI2luY2x1ZGUgIlJ1bnRpbWVF
bmFibGVkRmVhdHVyZXMuaCIKICNpbmNsdWRlICJTZXR0aW5ncy5oIgogI2luY2x1ZGUgIlN0eWxl
UmVzb2x2ZXIuaCIKQEAgLTEwMiw3ICsxMDQsNyBAQCB2b2lkIExpbmtMb2FkZXI6OmxvYWRMaW5r
c0Zyb21IZWFkZXIoY29uc3QgU3RyaW5nJiBoZWFkZXJWYWx1ZSwgY29uc3QgVVJMJiBiYXNlVQog
ICAgICAgICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgICB9CiAKLSAgICAgICAgTGlua1JlbEF0
dHJpYnV0ZSByZWxBdHRyaWJ1dGUoaGVhZGVyLnJlbCgpKTsKKyAgICAgICAgTGlua1JlbEF0dHJp
YnV0ZSByZWxBdHRyaWJ1dGUoZG9jdW1lbnQsIGhlYWRlci5yZWwoKSk7CiAgICAgICAgIFVSTCB1
cmwoYmFzZVVSTCwgaGVhZGVyLnVybCgpKTsKICAgICAgICAgLy8gU2FuaXR5IGNoZWNrIHRvIGF2
b2lkIHJlLWVudHJhbmN5IGhlcmUuCiAgICAgICAgIGlmIChlcXVhbElnbm9yaW5nRnJhZ21lbnRJ
ZGVudGlmaWVyKHVybCwgYmFzZVVSTCkpCkBAIC0yNTAsNiArMjUyLDE4IEBAIGJvb2wgTGlua0xv
YWRlcjo6bG9hZExpbmsoY29uc3QgTGlua1JlbEF0dHJpYnV0ZSYgcmVsQXR0cmlidXRlLCBjb25z
dCBVUkwmIGhyZWYsCiAgICAgICAgICAgICBkb2N1bWVudC5mcmFtZSgpLT5sb2FkZXIoKS5jbGll
bnQoKS5wcmVmZXRjaEROUyhocmVmLmhvc3QoKSk7CiAgICAgfQogCisgICAgLy8gRklYTUU6IFdl
J3JlIHN1cHBvc2VkIHRvIGRvIGNyb3NzIG9yaWdpbiBjaGVja3MuCisgICAgaWYgKHJlbEF0dHJp
YnV0ZS5pc0xpbmtQcmVjb25uZWN0ICYmIGhyZWYuaXNWYWxpZCgpICYmICFocmVmLmlzRW1wdHko
KSkgeworICAgICAgICBBU1NFUlQoZG9jdW1lbnQuc2V0dGluZ3MoKS5saW5rUHJlY29ubmVjdEVu
YWJsZWQoKSk7CisgICAgICAgIGlmIChlcXVhbElnbm9yaW5nQVNDSUlDYXNlKGNyb3NzT3JpZ2lu
LCAiYW5vbnltb3VzIikpIHsKKyAgICAgICAgICAgIGF1dG8gaHJlZk9yaWdpbiA9IFNlY3VyaXR5
T3JpZ2luOjpjcmVhdGUoaHJlZik7CisgICAgICAgICAgICBpZiAoZG9jdW1lbnQuc2VjdXJpdHlP
cmlnaW4oKS5jYW5BY2Nlc3MoaHJlZk9yaWdpbikpIHsKKyAgICAgICAgICAgICAgICAvLyBGSVhN
RTogRG8gbm90IGFsbG93IHN0b3JlZCBjcmVkZW50aWFscworICAgICAgICAgICAgfQorICAgICAg
ICB9CisgICAgICAgIHBsYXRmb3JtU3RyYXRlZ2llcygpLT5sb2FkZXJTdHJhdGVneSgpLT5wcmVj
b25uZWN0VG8oaHJlZik7CisgICAgfQorCiAgICAgaWYgKG1fY2xpZW50LnNob3VsZExvYWRMaW5r
KCkpIHsKICAgICAgICAgYXV0byByZXNvdXJjZUNsaWVudCA9IHByZWxvYWRJZk5lZWRlZChyZWxB
dHRyaWJ1dGUsIGhyZWYsIGRvY3VtZW50LCBhcywgbWVkaWEsIG1pbWVUeXBlLCBjcm9zc09yaWdp
biwgdGhpcyk7CiAgICAgICAgIGlmIChyZXNvdXJjZUNsaWVudCkKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2xvYWRlci9Mb2FkZXJTdHJhdGVneS5oIGIvU291cmNlL1dlYkNvcmUvbG9hZGVy
L0xvYWRlclN0cmF0ZWd5LmgKaW5kZXggNTNmM2JmYjI2NjYuLjdmNWMyZWExNDg1IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvTG9hZGVyU3RyYXRlZ3kuaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9sb2FkZXIvTG9hZGVyU3RyYXRlZ3kuaApAQCAtNjcsNiArNjcsOCBAQCBwdWJsaWM6
CiAgICAgdXNpbmcgUGluZ0xvYWRDb21wbGV0aW9uSGFuZGxlciA9IFdURjo6RnVuY3Rpb248dm9p
ZChjb25zdCBSZXNvdXJjZUVycm9yJik+OwogICAgIHZpcnR1YWwgdm9pZCBzdGFydFBpbmdMb2Fk
KEZyYW1lJiwgUmVzb3VyY2VSZXF1ZXN0JiwgY29uc3QgSFRUUEhlYWRlck1hcCYgb3JpZ2luYWxS
ZXF1ZXN0SGVhZGVycywgY29uc3QgRmV0Y2hPcHRpb25zJiwgUGluZ0xvYWRDb21wbGV0aW9uSGFu
ZGxlciYmID0geyB9KSA9IDA7CiAKKyAgICB2aXJ0dWFsIHZvaWQgcHJlY29ubmVjdFRvKGNvbnN0
IFVSTCYpID0gMDsKKwogICAgIHZpcnR1YWwgdm9pZCBzdG9yZURlcml2ZWREYXRhVG9DYWNoZShj
b25zdCBTSEExOjpEaWdlc3QmIGJvZHlLZXksIGNvbnN0IFN0cmluZyYgdHlwZSwgY29uc3QgU3Ry
aW5nJiBwYXJ0aXRpb24sIFdlYkNvcmU6OlNoYXJlZEJ1ZmZlciYpID0gMDsKIAogICAgIHZpcnR1
YWwgdm9pZCBzZXRDYXB0dXJlRXh0cmFOZXR3b3JrTG9hZE1ldHJpY3NFbmFibGVkKGJvb2wpID0g
MDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvU2V0dGluZ3MuaW4gYi9Tb3VyY2Uv
V2ViQ29yZS9wYWdlL1NldHRpbmdzLmluCmluZGV4IDkyNzdjMGE3Y2U1Li5kODE1MjZhYWNjMSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9TZXR0aW5ncy5pbgorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9wYWdlL1NldHRpbmdzLmluCkBAIC0yOTEsNiArMjkxLDggQEAgbGFuZ0F0dHJpYnV0
ZUF3YXJlRm9ybUNvbnRyb2xVSUVuYWJsZWQgaW5pdGlhbD1mYWxzZQogCiBzdWJyZXNvdXJjZUlu
dGVncml0eUVuYWJsZWQgaW5pdGlhbD10cnVlCiAKK2xpbmtQcmVjb25uZWN0RW5hYmxlZCBpbml0
aWFsPWZhbHNlCisKIGJlYWNvbkFQSUVuYWJsZWQgaW5pdGlhbD1mYWxzZQogCiBjb25zdGFudFBy
b3BlcnRpZXNFbmFibGVkIGluaXRpYWw9ZmFsc2UKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
TmV0d29ya1Byb2Nlc3MvTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuY3BwIGIvU291cmNl
L1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5jcHAK
aW5kZXggNzAzZDU5MWMyNGIuLjI5OWU0MTc5NDkwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L05ldHdvcmtQcm9jZXNzL05ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmNwcAorKysgYi9T
b3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNz
LmNwcApAQCAtNTYsNiArNTYsNyBAQAogCiAjaWYgVVNFKE5FVFdPUktfU0VTU0lPTikKICNpbmNs
dWRlICJQaW5nTG9hZC5oIgorI2luY2x1ZGUgIlByZWNvbm5lY3RUYXNrLmgiCiAjZW5kaWYKIAog
dXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CkBAIC0yODcsNiArMjg4LDE1IEBAIHZvaWQgTmV0d29y
a0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6OnByZWZldGNoRE5TKGNvbnN0IFN0cmluZyYgaG9zdG5h
bWUpCiAgICAgTmV0d29ya1Byb2Nlc3M6OnNpbmdsZXRvbigpLnByZWZldGNoRE5TKGhvc3RuYW1l
KTsKIH0KIAordm9pZCBOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzczo6cHJlY29ubmVjdFRv
KGNvbnN0IFVSTCYgdXJsKQoreworI2lmIEVOQUJMRShORVRXT1JLX1NFU1NJT04pCisgICAgbmV3
IFByZWNvbm5lY3RUYXNrKHVybCk7CisjZWxzZQorICAgIFVOVVNFRF9QQVJBTSh1cmwpOworI2Vu
ZGlmCit9CisKIHN0YXRpYyBOZXR3b3JrU3RvcmFnZVNlc3Npb24mIHN0b3JhZ2VTZXNzaW9uKFBB
TDo6U2Vzc2lvbklEIHNlc3Npb25JRCkKIHsKICAgICBBU1NFUlQoc2Vzc2lvbklELmlzVmFsaWQo
KSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtDb25u
ZWN0aW9uVG9XZWJQcm9jZXNzLmggYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdv
cmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmgKaW5kZXggY2QyODA0MmNmZmIuLjAyMGMyNTg3NDc4
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtDb25uZWN0
aW9uVG9XZWJQcm9jZXNzLmgKKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3
b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5oCkBAIC05MCw2ICs5MCw3IEBAIHByaXZhdGU6CiAg
ICAgdm9pZCBwZXJmb3JtU3luY2hyb25vdXNMb2FkKGNvbnN0IE5ldHdvcmtSZXNvdXJjZUxvYWRQ
YXJhbWV0ZXJzJiwgUmVmPE1lc3NhZ2VzOjpOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzczo6
UGVyZm9ybVN5bmNocm9ub3VzTG9hZDo6RGVsYXllZFJlcGx5PiYmKTsKICAgICB2b2lkIGxvYWRQ
aW5nKE5ldHdvcmtSZXNvdXJjZUxvYWRQYXJhbWV0ZXJzJiYsIFdlYkNvcmU6OkhUVFBIZWFkZXJN
YXAmJiBvcmlnaW5hbFJlcXVlc3RIZWFkZXJzKTsKICAgICB2b2lkIHByZWZldGNoRE5TKGNvbnN0
IFN0cmluZyYpOworICAgIHZvaWQgcHJlY29ubmVjdFRvKGNvbnN0IFdlYkNvcmU6OlVSTCYpOwog
CiAgICAgdm9pZCByZW1vdmVMb2FkSWRlbnRpZmllcihSZXNvdXJjZUxvYWRJZGVudGlmaWVyKTsK
ICAgICB2b2lkIHNldERlZmVyc0xvYWRpbmcoUmVzb3VyY2VMb2FkSWRlbnRpZmllciwgYm9vbCk7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtDb25uZWN0
aW9uVG9XZWJQcm9jZXNzLm1lc3NhZ2VzLmluIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vz
cy9OZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5tZXNzYWdlcy5pbgppbmRleCBhYmYwZmNj
YTAwMi4uNzI1OTIzNjJmZDEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nl
c3MvTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MubWVzc2FnZXMuaW4KKysrIGIvU291cmNl
L1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5tZXNz
YWdlcy5pbgpAQCAtMjgsNiArMjgsNyBAQCBtZXNzYWdlcyAtPiBOZXR3b3JrQ29ubmVjdGlvblRv
V2ViUHJvY2VzcyBMZWdhY3lSZWNlaXZlciB7CiAgICAgUmVtb3ZlTG9hZElkZW50aWZpZXIodWlu
dDY0X3QgcmVzb3VyY2VMb2FkSWRlbnRpZmllcikKICAgICBTZXREZWZlcnNMb2FkaW5nKHVpbnQ2
NF90IHJlc291cmNlTG9hZElkZW50aWZpZXIsIGJvb2wgZGVmZXJzKQogICAgIFByZWZldGNoRE5T
KFN0cmluZyBob3N0bmFtZSkKKyAgICBQcmVjb25uZWN0VG8oV2ViQ29yZTo6VVJMIHVybCk7CiAK
ICAgICBTdGFydERvd25sb2FkKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgV2ViS2l0OjpEb3du
bG9hZElEIGRvd25sb2FkSUQsIFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCByZXF1ZXN0LCBTdHJp
bmcgc3VnZ2VzdGVkTmFtZSkKICAgICBDb252ZXJ0TWFpblJlc291cmNlTG9hZFRvRG93bmxvYWQo
UEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCB1aW50NjRfdCBtYWluUmVzb3VyY2VMb2FkSWRlbnRp
ZmllciwgV2ViS2l0OjpEb3dubG9hZElEIGRvd25sb2FkSUQsIFdlYkNvcmU6OlJlc291cmNlUmVx
dWVzdCByZXF1ZXN0LCBXZWJDb3JlOjpSZXNvdXJjZVJlc3BvbnNlIHJlc3BvbnNlKQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrRGF0YVRhc2suY3BwIGIv
U291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrRGF0YVRhc2suY3BwCmluZGV4IGM5
M2Y4ZmVjOWZhLi4yYzlkZmQ4ZjM2NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3Jr
UHJvY2Vzcy9OZXR3b3JrRGF0YVRhc2suY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1By
b2Nlc3MvTmV0d29ya0RhdGFUYXNrLmNwcApAQCAtNTMsNyArNTMsNyBAQCBSZWY8TmV0d29ya0Rh
dGFUYXNrPiBOZXR3b3JrRGF0YVRhc2s6OmNyZWF0ZShOZXR3b3JrU2Vzc2lvbiYgc2Vzc2lvbiwg
TmV0d29ya0RhdAogICAgICAgICByZXR1cm4gTmV0d29ya0RhdGFUYXNrQmxvYjo6Y3JlYXRlKHNl
c3Npb24sIGNsaWVudCwgcGFyYW1ldGVycy5yZXF1ZXN0LCBwYXJhbWV0ZXJzLmNvbnRlbnRTbmlm
ZmluZ1BvbGljeSwgcGFyYW1ldGVycy5ibG9iRmlsZVJlZmVyZW5jZXMpOwogCiAjaWYgUExBVEZP
Uk0oQ09DT0EpCi0gICAgcmV0dXJuIE5ldHdvcmtEYXRhVGFza0NvY29hOjpjcmVhdGUoc2Vzc2lv
biwgY2xpZW50LCBwYXJhbWV0ZXJzLnJlcXVlc3QsIHBhcmFtZXRlcnMuc3RvcmVkQ3JlZGVudGlh
bHNQb2xpY3ksIHBhcmFtZXRlcnMuY29udGVudFNuaWZmaW5nUG9saWN5LCBwYXJhbWV0ZXJzLnNo
b3VsZENsZWFyUmVmZXJyZXJPbkhUVFBTVG9IVFRQUmVkaXJlY3QpOworICAgIHJldHVybiBOZXR3
b3JrRGF0YVRhc2tDb2NvYTo6Y3JlYXRlKHNlc3Npb24sIGNsaWVudCwgcGFyYW1ldGVycy5yZXF1
ZXN0LCBwYXJhbWV0ZXJzLnN0b3JlZENyZWRlbnRpYWxzUG9saWN5LCBwYXJhbWV0ZXJzLmNvbnRl
bnRTbmlmZmluZ1BvbGljeSwgcGFyYW1ldGVycy5zaG91bGRDbGVhclJlZmVycmVyT25IVFRQU1Rv
SFRUUFJlZGlyZWN0LCBwYXJhbWV0ZXJzLnNob3VsZFByZWNvbm5lY3RPbmx5KTsKICNlbmRpZgog
I2lmIFVTRShTT1VQKQogICAgIHJldHVybiBOZXR3b3JrRGF0YVRhc2tTb3VwOjpjcmVhdGUoc2Vz
c2lvbiwgY2xpZW50LCBwYXJhbWV0ZXJzLnJlcXVlc3QsIHBhcmFtZXRlcnMuc3RvcmVkQ3JlZGVu
dGlhbHNQb2xpY3ksIHBhcmFtZXRlcnMuY29udGVudFNuaWZmaW5nUG9saWN5LCBwYXJhbWV0ZXJz
LnNob3VsZENsZWFyUmVmZXJyZXJPbkhUVFBTVG9IVFRQUmVkaXJlY3QpOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrTG9hZFBhcmFtZXRlcnMuaCBiL1Nv
dXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0xvYWRQYXJhbWV0ZXJzLmgKaW5kZXgg
MWZiZDJkYTQ5MWQuLjI1YWE1MDU4MGRlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdv
cmtQcm9jZXNzL05ldHdvcmtMb2FkUGFyYW1ldGVycy5oCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0
d29ya1Byb2Nlc3MvTmV0d29ya0xvYWRQYXJhbWV0ZXJzLmgKQEAgLTMzLDYgKzMzLDggQEAKIAog
bmFtZXNwYWNlIFdlYktpdCB7CiAKK2VudW0gY2xhc3MgUHJlY29ubmVjdE9ubHkgeyBObywgWWVz
IH07CisKIGNsYXNzIE5ldHdvcmtMb2FkUGFyYW1ldGVycyB7CiBwdWJsaWM6CiAgICAgdWludDY0
X3Qgd2ViUGFnZUlEIHsgMCB9OwpAQCAtNDksNiArNTEsNyBAQCBwdWJsaWM6CiAjaWYgVVNFKE5F
VFdPUktfU0VTU0lPTikKICAgICBWZWN0b3I8UmVmUHRyPFdlYkNvcmU6OkJsb2JEYXRhRmlsZVJl
ZmVyZW5jZT4+IGJsb2JGaWxlUmVmZXJlbmNlczsKICNlbmRpZgorICAgIFByZWNvbm5lY3RPbmx5
IHNob3VsZFByZWNvbm5lY3RPbmx5IHsgUHJlY29ubmVjdE9ubHk6Ok5vIH07CiB9OwogCiB9IC8v
IG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nl
c3MvUHJlY29ubmVjdFRhc2suY3BwIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9QcmVj
b25uZWN0VGFzay5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLmQy
YWNkYzg3NzA4Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vz
cy9QcmVjb25uZWN0VGFzay5jcHAKQEAgLTAsMCArMSwxMjAgQEAKKy8qCisgKiBDb3B5cmlnaHQg
KEMpIDIwMTcgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJp
YnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91
dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxv
d2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNv
dXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAq
IDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJv
dmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9v
ciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAq
IFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJV
VE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMs
IElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElF
UyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVS
UE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMg
Q09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJ
REVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMg
KElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJ
VFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9S
IEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhF
T1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJ
VFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJ
TkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFE
VklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5j
bHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiUHJlY29ubmVjdFRhc2suaCIKKworI2lmIEVOQUJM
RShTRVJWRVJfUFJFQ09OTkVDVCkKKworI2luY2x1ZGUgIkF1dGhlbnRpY2F0aW9uTWFuYWdlci5o
IgorI2luY2x1ZGUgIkxvZ2dpbmcuaCIKKyNpbmNsdWRlICJOZXR3b3JrTG9hZFBhcmFtZXRlcnMu
aCIKKyNpbmNsdWRlICJOZXR3b3JrU2Vzc2lvbi5oIgorI2luY2x1ZGUgPFdlYkNvcmUvQXV0aGVu
dGljYXRpb25DaGFsbGVuZ2UuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL1Jlc291cmNlRXJyb3IuaD4K
KworI2lmIFBMQVRGT1JNKENPQ09BKQorI2luY2x1ZGUgIk5ldHdvcmtEYXRhVGFza0NvY29hLmgi
CisjZW5kaWYKKworbmFtZXNwYWNlIFdlYktpdCB7CisKK3VzaW5nIG5hbWVzcGFjZSBXZWJDb3Jl
OworCitQcmVjb25uZWN0VGFzazo6UHJlY29ubmVjdFRhc2soY29uc3QgVVJMJiB1cmwpCit7Cisg
ICAgUkVMRUFTRV9MT0coTmV0d29yaywgIiVwIC0gUHJlY29ubmVjdFRhc2s6OlByZWNvbm5lY3RU
YXNrKCkiLCB0aGlzKTsKKyAgICBOZXR3b3JrTG9hZFBhcmFtZXRlcnMgcGFyYW1ldGVyczsKKyAg
ICBwYXJhbWV0ZXJzLnJlcXVlc3QgPSBSZXNvdXJjZVJlcXVlc3QodXJsKTsKKyAgICBwYXJhbWV0
ZXJzLnNob3VsZFByZWNvbm5lY3RPbmx5ID0gUHJlY29ubmVjdE9ubHk6OlllczsKKyAgICBwYXJh
bWV0ZXJzLnN0b3JlZENyZWRlbnRpYWxzUG9saWN5ID0gU3RvcmVkQ3JlZGVudGlhbHNQb2xpY3k6
OlVzZTsgLy8gRklYTUU6IFRoaXMgc2hvdWxkIGJlIGNvbnN0cm9sbGVkIGJ5IFdlYkNvcmUuCisg
ICAgbV90YXNrID0gTmV0d29ya0RhdGFUYXNrOjpjcmVhdGUoTmV0d29ya1Nlc3Npb246OmRlZmF1
bHRTZXNzaW9uKCksICp0aGlzLCBwYXJhbWV0ZXJzKTsKKyAgICBtX3Rhc2stPnJlc3VtZSgpOwor
fQorCitQcmVjb25uZWN0VGFzazo6flByZWNvbm5lY3RUYXNrKCkKK3sKKyAgICBBU1NFUlQobV90
YXNrLT5jbGllbnQoKSA9PSB0aGlzKTsKKyAgICBtX3Rhc2stPmNsZWFyQ2xpZW50KCk7CisgICAg
bV90YXNrLT5jYW5jZWwoKTsKK30KKwordm9pZCBQcmVjb25uZWN0VGFzazo6d2lsbFBlcmZvcm1I
VFRQUmVkaXJlY3Rpb24oV2ViQ29yZTo6UmVzb3VyY2VSZXNwb25zZSYmLCBXZWJDb3JlOjpSZXNv
dXJjZVJlcXVlc3QmJiwgUmVkaXJlY3RDb21wbGV0aW9uSGFuZGxlciYmKQoreworICAgIEFTU0VS
VF9OT1RfUkVBQ0hFRCgpOworfQorCit2b2lkIFByZWNvbm5lY3RUYXNrOjpkaWRSZWNlaXZlQ2hh
bGxlbmdlKGNvbnN0IFdlYkNvcmU6OkF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlJiBjaGFsbGVuZ2Us
IENoYWxsZW5nZUNvbXBsZXRpb25IYW5kbGVyJiYgY29tcGxldGlvbkhhbmRsZXIpCit7CisgICAg
aWYgKGNoYWxsZW5nZS5wcm90ZWN0aW9uU3BhY2UoKS5hdXRoZW50aWNhdGlvblNjaGVtZSgpID09
IFByb3RlY3Rpb25TcGFjZUF1dGhlbnRpY2F0aW9uU2NoZW1lU2VydmVyVHJ1c3RFdmFsdWF0aW9u
UmVxdWVzdGVkKSB7CisgICAgICAgIGlmIChtX3Rhc2sgJiYgbV90YXNrLT5hbGxvd3NTcGVjaWZp
Y0hUVFBTQ2VydGlmaWNhdGVGb3JIb3N0KGNoYWxsZW5nZSkpCisgICAgICAgICAgICBjb21wbGV0
aW9uSGFuZGxlcihBdXRoZW50aWNhdGlvbkNoYWxsZW5nZURpc3Bvc2l0aW9uOjpVc2VDcmVkZW50
aWFsLCBzZXJ2ZXJUcnVzdENyZWRlbnRpYWwoY2hhbGxlbmdlKSk7CisgICAgICAgIGVsc2UKKyAg
ICAgICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKEF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlRGlzcG9z
aXRpb246OlJlamVjdFByb3RlY3Rpb25TcGFjZSwgeyB9KTsKKyAgICAgICAgcmV0dXJuOworICAg
IH0KKyAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKK30KKwordm9pZCBQcmVjb25uZWN0VGFzazo6
ZGlkUmVjZWl2ZVJlc3BvbnNlTmV0d29ya1Nlc3Npb24oV2ViQ29yZTo6UmVzb3VyY2VSZXNwb25z
ZSYmLCBSZXNwb25zZUNvbXBsZXRpb25IYW5kbGVyJiYpCit7CisgICAgQVNTRVJUX05PVF9SRUFD
SEVEKCk7Cit9CisKK3ZvaWQgUHJlY29ubmVjdFRhc2s6OmRpZFJlY2VpdmVEYXRhKFJlZjxXZWJD
b3JlOjpTaGFyZWRCdWZmZXI+JiYpCit7CisgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7Cit9CisK
K3ZvaWQgUHJlY29ubmVjdFRhc2s6OmRpZENvbXBsZXRlV2l0aEVycm9yKGNvbnN0IFdlYkNvcmU6
OlJlc291cmNlRXJyb3ImIGVycm9yLCBjb25zdCBXZWJDb3JlOjpOZXR3b3JrTG9hZE1ldHJpY3Mm
KQoreworICAgIGlmIChlcnJvci5pc051bGwoKSkKKyAgICAgICAgUkVMRUFTRV9MT0coTmV0d29y
aywgIiVwIC0gUHJlY29ubmVjdFRhc2s6OmRpZENvbXBsZXRlIiwgdGhpcyk7CisgICAgZWxzZQor
ICAgICAgICBSRUxFQVNFX0xPRyhOZXR3b3JrLCAiJXAgLSBQcmVjb25uZWN0VGFzazo6ZGlkQ29t
cGxldGVXaXRoRXJyb3IsIGVycm9yX2NvZGU6ICVkIiwgdGhpcywgZXJyb3IuZXJyb3JDb2RlKCkp
OworCisgICAgZGVsZXRlIHRoaXM7Cit9CisKK3ZvaWQgUHJlY29ubmVjdFRhc2s6OmRpZFNlbmRE
YXRhKHVpbnQ2NF90IHRvdGFsQnl0ZXNTZW50LCB1aW50NjRfdCB0b3RhbEJ5dGVzRXhwZWN0ZWRU
b1NlbmQpCit7CisgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7Cit9CisKK3ZvaWQgUHJlY29ubmVj
dFRhc2s6Ondhc0Jsb2NrZWQoKQoreworICAgIFJFTEVBU0VfTE9HKE5ldHdvcmssICIlcCAtIFBy
ZWNvbm5lY3RUYXNrOjp3YXNCbG9ja2VkKCkiLCB0aGlzKTsKKyAgICBkZWxldGUgdGhpczsKK30K
Kwordm9pZCBQcmVjb25uZWN0VGFzazo6Y2Fubm90U2hvd1VSTCgpCit7CisgICAgUkVMRUFTRV9M
T0coTmV0d29yaywgIiVwIC0gUHJlY29ubmVjdFRhc2s6OmNhbm5vdFNob3dVUkwoKSIsIHRoaXMp
OworICAgIGRlbGV0ZSB0aGlzOworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQKKworI2VuZGlm
IC8vIEVOQUJMRShTRVJWRVJfUFJFQ09OTkVDVCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
TmV0d29ya1Byb2Nlc3MvUHJlY29ubmVjdFRhc2suaCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1By
b2Nlc3MvUHJlY29ubmVjdFRhc2suaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMC4uY2I4NzhmNzkxZTMKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdv
cmtQcm9jZXNzL1ByZWNvbm5lY3RUYXNrLmgKQEAgLTAsMCArMSw1NSBAQAorLyoKKyAqIENvcHly
aWdodCAoQykgMjAxNyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVk
aXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3
aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUg
Zm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMg
b2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
LgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24g
YW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisg
KgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09O
VFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFO
VElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJS
QU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisg
KiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9S
IElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1Qs
IElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFN
QUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBT
VUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklU
UzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFO
WSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJ
QUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICog
QVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4g
SUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisK
KyNwcmFnbWEgb25jZQorCisjaWYgRU5BQkxFKFNFUlZFUl9QUkVDT05ORUNUKQorCisjaW5jbHVk
ZSAiTmV0d29ya0RhdGFUYXNrLmgiCisKK25hbWVzcGFjZSBXZWJLaXQgeworCitjbGFzcyBQcmVj
b25uZWN0VGFzayBmaW5hbCA6IHByaXZhdGUgTmV0d29ya0RhdGFUYXNrQ2xpZW50IHsKK3B1Ymxp
YzoKKyAgICBleHBsaWNpdCBQcmVjb25uZWN0VGFzayhjb25zdCBXZWJDb3JlOjpVUkwmKTsKKyAg
ICB+UHJlY29ubmVjdFRhc2soKTsKKworcHJpdmF0ZToKKyAgICAvLyBOZXR3b3JrRGF0YVRhc2tD
bGllbnQuCisgICAgdm9pZCB3aWxsUGVyZm9ybUhUVFBSZWRpcmVjdGlvbihXZWJDb3JlOjpSZXNv
dXJjZVJlc3BvbnNlJiYsIFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYmLCBSZWRpcmVjdENvbXBs
ZXRpb25IYW5kbGVyJiYpIGZpbmFsOworICAgIHZvaWQgZGlkUmVjZWl2ZUNoYWxsZW5nZShjb25z
dCBXZWJDb3JlOjpBdXRoZW50aWNhdGlvbkNoYWxsZW5nZSYsIENoYWxsZW5nZUNvbXBsZXRpb25I
YW5kbGVyJiYpIGZpbmFsOworICAgIHZvaWQgZGlkUmVjZWl2ZVJlc3BvbnNlTmV0d29ya1Nlc3Np
b24oV2ViQ29yZTo6UmVzb3VyY2VSZXNwb25zZSYmLCBSZXNwb25zZUNvbXBsZXRpb25IYW5kbGVy
JiYpIGZpbmFsOworICAgIHZvaWQgZGlkUmVjZWl2ZURhdGEoUmVmPFdlYkNvcmU6OlNoYXJlZEJ1
ZmZlcj4mJikgZmluYWw7CisgICAgdm9pZCBkaWRDb21wbGV0ZVdpdGhFcnJvcihjb25zdCBXZWJD
b3JlOjpSZXNvdXJjZUVycm9yJiwgY29uc3QgV2ViQ29yZTo6TmV0d29ya0xvYWRNZXRyaWNzJikg
ZmluYWw7CisgICAgdm9pZCBkaWRTZW5kRGF0YSh1aW50NjRfdCB0b3RhbEJ5dGVzU2VudCwgdWlu
dDY0X3QgdG90YWxCeXRlc0V4cGVjdGVkVG9TZW5kKSBmaW5hbDsKKyAgICB2b2lkIHdhc0Jsb2Nr
ZWQoKSBmaW5hbDsKKyAgICB2b2lkIGNhbm5vdFNob3dVUkwoKSBmaW5hbDsKKworICAgIFJlZlB0
cjxOZXR3b3JrRGF0YVRhc2s+IG1fdGFzazsKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdAor
CisjZW5kaWYgLy8gRU5BQkxFKFNFUlZFUl9QUkVDT05ORUNUKQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9jb2NvYS9OZXR3b3JrRGF0YVRhc2tDb2NvYS5oIGIvU291
cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9jb2NvYS9OZXR3b3JrRGF0YVRhc2tDb2NvYS5oCmlu
ZGV4IGNkZjQzMjRjMDZiLi4yMTJhOWEwOGZiMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9O
ZXR3b3JrUHJvY2Vzcy9jb2NvYS9OZXR3b3JrRGF0YVRhc2tDb2NvYS5oCisrKyBiL1NvdXJjZS9X
ZWJLaXQvTmV0d29ya1Byb2Nlc3MvY29jb2EvTmV0d29ya0RhdGFUYXNrQ29jb2EuaApAQCAtMjgs
NiArMjgsNyBAQAogI2lmIFVTRShORVRXT1JLX1NFU1NJT04pCiAKICNpbmNsdWRlICJOZXR3b3Jr
RGF0YVRhc2suaCIKKyNpbmNsdWRlICJOZXR3b3JrTG9hZFBhcmFtZXRlcnMuaCIKICNpbmNsdWRl
IDxXZWJDb3JlL05ldHdvcmtMb2FkTWV0cmljcy5oPgogI2luY2x1ZGUgPHd0Zi9SZXRhaW5QdHIu
aD4KIApAQCAtNDAsOSArNDEsOSBAQCBjbGFzcyBOZXR3b3JrU2Vzc2lvbkNvY29hOwogY2xhc3Mg
TmV0d29ya0RhdGFUYXNrQ29jb2EgZmluYWwgOiBwdWJsaWMgTmV0d29ya0RhdGFUYXNrIHsKICAg
ICBmcmllbmQgY2xhc3MgTmV0d29ya1Nlc3Npb25Db2NvYTsKIHB1YmxpYzoKLSAgICBzdGF0aWMg
UmVmPE5ldHdvcmtEYXRhVGFzaz4gY3JlYXRlKE5ldHdvcmtTZXNzaW9uJiBzZXNzaW9uLCBOZXR3
b3JrRGF0YVRhc2tDbGllbnQmIGNsaWVudCwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0
JiByZXF1ZXN0LCBXZWJDb3JlOjpTdG9yZWRDcmVkZW50aWFsc1BvbGljeSBzdG9yZWRDcmVkZW50
aWFsc1BvbGljeSwgV2ViQ29yZTo6Q29udGVudFNuaWZmaW5nUG9saWN5IHNob3VsZENvbnRlbnRT
bmlmZiwgYm9vbCBzaG91bGRDbGVhclJlZmVycmVyT25IVFRQU1RvSFRUUFJlZGlyZWN0KQorICAg
IHN0YXRpYyBSZWY8TmV0d29ya0RhdGFUYXNrPiBjcmVhdGUoTmV0d29ya1Nlc3Npb24mIHNlc3Np
b24sIE5ldHdvcmtEYXRhVGFza0NsaWVudCYgY2xpZW50LCBjb25zdCBXZWJDb3JlOjpSZXNvdXJj
ZVJlcXVlc3QmIHJlcXVlc3QsIFdlYkNvcmU6OlN0b3JlZENyZWRlbnRpYWxzUG9saWN5IHN0b3Jl
ZENyZWRlbnRpYWxzUG9saWN5LCBXZWJDb3JlOjpDb250ZW50U25pZmZpbmdQb2xpY3kgc2hvdWxk
Q29udGVudFNuaWZmLCBib29sIHNob3VsZENsZWFyUmVmZXJyZXJPbkhUVFBTVG9IVFRQUmVkaXJl
Y3QsIFByZWNvbm5lY3RPbmx5IHNob3VsZFByZWNvbm5lY3RPbmx5KQogICAgIHsKLSAgICAgICAg
cmV0dXJuIGFkb3B0UmVmKCpuZXcgTmV0d29ya0RhdGFUYXNrQ29jb2Eoc2Vzc2lvbiwgY2xpZW50
LCByZXF1ZXN0LCBzdG9yZWRDcmVkZW50aWFsc1BvbGljeSwgc2hvdWxkQ29udGVudFNuaWZmLCBz
aG91bGRDbGVhclJlZmVycmVyT25IVFRQU1RvSFRUUFJlZGlyZWN0KSk7CisgICAgICAgIHJldHVy
biBhZG9wdFJlZigqbmV3IE5ldHdvcmtEYXRhVGFza0NvY29hKHNlc3Npb24sIGNsaWVudCwgcmVx
dWVzdCwgc3RvcmVkQ3JlZGVudGlhbHNQb2xpY3ksIHNob3VsZENvbnRlbnRTbmlmZiwgc2hvdWxk
Q2xlYXJSZWZlcnJlck9uSFRUUFNUb0hUVFBSZWRpcmVjdCwgc2hvdWxkUHJlY29ubmVjdE9ubHkp
KTsKICAgICB9CiAKICAgICB+TmV0d29ya0RhdGFUYXNrQ29jb2EoKTsKQEAgLTcxLDcgKzcyLDcg
QEAgcHVibGljOgogICAgIFdlYkNvcmU6Ok5ldHdvcmtMb2FkTWV0cmljcyYgbmV0d29ya0xvYWRN
ZXRyaWNzKCkgeyByZXR1cm4gbV9uZXR3b3JrTG9hZE1ldHJpY3M7IH0KIAogcHJpdmF0ZToKLSAg
ICBOZXR3b3JrRGF0YVRhc2tDb2NvYShOZXR3b3JrU2Vzc2lvbiYsIE5ldHdvcmtEYXRhVGFza0Ns
aWVudCYsIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYsIFdlYkNvcmU6OlN0b3JlZENy
ZWRlbnRpYWxzUG9saWN5LCBXZWJDb3JlOjpDb250ZW50U25pZmZpbmdQb2xpY3ksIGJvb2wgc2hv
dWxkQ2xlYXJSZWZlcnJlck9uSFRUUFNUb0hUVFBSZWRpcmVjdCk7CisgICAgTmV0d29ya0RhdGFU
YXNrQ29jb2EoTmV0d29ya1Nlc3Npb24mLCBOZXR3b3JrRGF0YVRhc2tDbGllbnQmLCBjb25zdCBX
ZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmLCBXZWJDb3JlOjpTdG9yZWRDcmVkZW50aWFsc1BvbGlj
eSwgV2ViQ29yZTo6Q29udGVudFNuaWZmaW5nUG9saWN5LCBib29sIHNob3VsZENsZWFyUmVmZXJy
ZXJPbkhUVFBTVG9IVFRQUmVkaXJlY3QsIFByZWNvbm5lY3RPbmx5KTsKIAogICAgIGJvb2wgdHJ5
UGFzc3dvcmRCYXNlZEF1dGhlbnRpY2F0aW9uKGNvbnN0IFdlYkNvcmU6OkF1dGhlbnRpY2F0aW9u
Q2hhbGxlbmdlJiwgQ2hhbGxlbmdlQ29tcGxldGlvbkhhbmRsZXImKTsKIApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9jb2NvYS9OZXR3b3JrRGF0YVRhc2tDb2NvYS5t
bSBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvY29jb2EvTmV0d29ya0RhdGFUYXNrQ29j
b2EubW0KaW5kZXggOTk3ZTBlZTFhZjYuLmRiYmIxMDA0MDE0IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L05ldHdvcmtQcm9jZXNzL2NvY29hL05ldHdvcmtEYXRhVGFza0NvY29hLm1tCisrKyBi
L1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvY29jb2EvTmV0d29ya0RhdGFUYXNrQ29jb2Eu
bW0KQEAgLTc0LDcgKzc0LDcgQEAgc3RhdGljIGZsb2F0IHRvTlNVUkxTZXNzaW9uVGFza1ByaW9y
aXR5KFdlYkNvcmU6OlJlc291cmNlTG9hZFByaW9yaXR5IHByaW9yaXR5KQogICAgIHJldHVybiBO
U1VSTFNlc3Npb25UYXNrUHJpb3JpdHlEZWZhdWx0OwogfQogCi1OZXR3b3JrRGF0YVRhc2tDb2Nv
YTo6TmV0d29ya0RhdGFUYXNrQ29jb2EoTmV0d29ya1Nlc3Npb24mIHNlc3Npb24sIE5ldHdvcmtE
YXRhVGFza0NsaWVudCYgY2xpZW50LCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmIHJl
cXVlc3RXaXRoQ3JlZGVudGlhbHMsIFdlYkNvcmU6OlN0b3JlZENyZWRlbnRpYWxzUG9saWN5IHN0
b3JlZENyZWRlbnRpYWxzUG9saWN5LCBXZWJDb3JlOjpDb250ZW50U25pZmZpbmdQb2xpY3kgc2hv
dWxkQ29udGVudFNuaWZmLCBib29sIHNob3VsZENsZWFyUmVmZXJyZXJPbkhUVFBTVG9IVFRQUmVk
aXJlY3QpCitOZXR3b3JrRGF0YVRhc2tDb2NvYTo6TmV0d29ya0RhdGFUYXNrQ29jb2EoTmV0d29y
a1Nlc3Npb24mIHNlc3Npb24sIE5ldHdvcmtEYXRhVGFza0NsaWVudCYgY2xpZW50LCBjb25zdCBX
ZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3RXaXRoQ3JlZGVudGlhbHMsIFdlYkNvcmU6
OlN0b3JlZENyZWRlbnRpYWxzUG9saWN5IHN0b3JlZENyZWRlbnRpYWxzUG9saWN5LCBXZWJDb3Jl
OjpDb250ZW50U25pZmZpbmdQb2xpY3kgc2hvdWxkQ29udGVudFNuaWZmLCBib29sIHNob3VsZENs
ZWFyUmVmZXJyZXJPbkhUVFBTVG9IVFRQUmVkaXJlY3QsIFByZWNvbm5lY3RPbmx5IHNob3VsZFBy
ZWNvbm5lY3RPbmx5KQogICAgIDogTmV0d29ya0RhdGFUYXNrKHNlc3Npb24sIGNsaWVudCwgcmVx
dWVzdFdpdGhDcmVkZW50aWFscywgc3RvcmVkQ3JlZGVudGlhbHNQb2xpY3ksIHNob3VsZENsZWFy
UmVmZXJyZXJPbkhUVFBTVG9IVFRQUmVkaXJlY3QpCiB7CiAgICAgaWYgKG1fc2NoZWR1bGVkRmFp
bHVyZVR5cGUgIT0gTm9GYWlsdXJlKQpAQCAtMTI4LDYgKzEyOCwxNCBAQCBOZXR3b3JrRGF0YVRh
c2tDb2NvYTo6TmV0d29ya0RhdGFUYXNrQ29jb2EoTmV0d29ya1Nlc3Npb24mIHNlc3Npb24sIE5l
dHdvcmtEYXRhVAogICAgICAgICBMT0coTmV0d29ya1Nlc3Npb24sICIlbGx1IENyZWF0aW5nIE5l
dHdvcmtEYXRhVGFzayB3aXRoIFVSTCAlcyIsIFttX3Rhc2sgdGFza0lkZW50aWZpZXJdLCBuc1Jl
cXVlc3QuVVJMLmFic29sdXRlU3RyaW5nLlVURjhTdHJpbmcpOwogICAgIH0KIAorICAgIGlmIChz
aG91bGRQcmVjb25uZWN0T25seSA9PSBQcmVjb25uZWN0T25seTo6WWVzKSB7CisjaWYgRU5BQkxF
KFNFUlZFUl9QUkVDT05ORUNUKQorICAgICAgICBtX3Rhc2suZ2V0KCkuX3ByZWNvbm5lY3QgPSB0
cnVlOworI2Vsc2UKKyAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CisjZW5kaWYKKyAgICB9
CisKICNpZiBIQVZFKENGTkVUV09SS19TVE9SQUdFX1BBUlRJVElPTklORykKICAgICBpZiAoc3Rv
cmVkQ3JlZGVudGlhbHNQb2xpY3kgPT0gV2ViQ29yZTo6U3RvcmVkQ3JlZGVudGlhbHNQb2xpY3k6
OlVzZSkgewogICAgICAgICBTdHJpbmcgc3RvcmFnZVBhcnRpdGlvbiA9IHNlc3Npb24ubmV0d29y
a1N0b3JhZ2VTZXNzaW9uKCkuY29va2llU3RvcmFnZVBhcnRpdGlvbihyZXF1ZXN0KTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYlByZWZlcmVuY2VzRGVmaW5pdGlvbnMuaCBi
L1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYlByZWZlcmVuY2VzRGVmaW5pdGlvbnMuaAppbmRleCA1
N2RkZDFiMzAyYy4uNzIzNmMwY2Q0MzQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVk
L1dlYlByZWZlcmVuY2VzRGVmaW5pdGlvbnMuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9X
ZWJQcmVmZXJlbmNlc0RlZmluaXRpb25zLmgKQEAgLTQ1LDYgKzQ1LDEyIEBACiAjZGVmaW5lIERF
RkFVTFRfSElEREVOX1BBR0VfQ1NTX0FOSU1BVElPTl9TVVNQRU5TSU9OX0VOQUJMRUQgZmFsc2UK
ICNlbmRpZgogCisjaWYgRU5BQkxFKFNFUlZFUl9QUkVDT05ORUNUKQorI2RlZmluZSBERUZBVUxU
X0xJTktfUFJFQ09OTkVDVF9FTkFCTEVEIHRydWUKKyNlbHNlCisjZGVmaW5lIERFRkFVTFRfTElO
S19QUkVDT05ORUNUX0VOQUJMRUQgZmFsc2UKKyNlbmRpZgorCiAjaWYgUExBVEZPUk0oQ09DT0Ep
CiAjZGVmaW5lIERFRkFVTFRfUERGUExVR0lOX0VOQUJMRUQgdHJ1ZQogI2Vsc2UKQEAgLTE4MSw2
ICsxODcsNyBAQAogICAgIG1hY3JvKERPTVBhc3RlQWxsb3dlZCwgZG9tUGFzdGVBbGxvd2VkLCBC
b29sLCBib29sLCBmYWxzZSwgIiIsICIiKSBcCiAgICAgbWFjcm8oSmF2YVNjcmlwdENhbkFjY2Vz
c0NsaXBib2FyZCwgamF2YVNjcmlwdENhbkFjY2Vzc0NsaXBib2FyZCwgQm9vbCwgYm9vbCwgZmFs
c2UsICIiLCAiIikgXAogICAgIG1hY3JvKFNob3VsZFByaW50QmFja2dyb3VuZHMsIHNob3VsZFBy
aW50QmFja2dyb3VuZHMsIEJvb2wsIGJvb2wsIERFRkFVTFRfU0hPVUxEX1BSSU5UX0JBQ0tHUk9V
TkRTLCAiIiwgIiIpIFwKKyAgICBtYWNybyhMaW5rUHJlY29ubmVjdCwgbGlua1ByZWNvbm5lY3Qs
IEJvb2wsIGJvb2wsIERFRkFVTFRfTElOS19QUkVDT05ORUNUX0VOQUJMRUQsICIiLCAiIikgXAog
ICAgIG1hY3JvKEZ1bGxTY3JlZW5FbmFibGVkLCBmdWxsU2NyZWVuRW5hYmxlZCwgQm9vbCwgYm9v
bCwgZmFsc2UsICIiLCAiIikgXAogICAgIG1hY3JvKEFzeW5jaHJvbm91c1NwZWxsQ2hlY2tpbmdF
bmFibGVkLCBhc3luY2hyb25vdXNTcGVsbENoZWNraW5nRW5hYmxlZCwgQm9vbCwgYm9vbCwgZmFs
c2UsICIiLCAiIikgXAogICAgIG1hY3JvKFdlYlNlY3VyaXR5RW5hYmxlZCwgd2ViU2VjdXJpdHlF
bmFibGVkLCBCb29sLCBib29sLCB0cnVlLCAiIiwgIiIpIFwKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvV2ViS2l0L1dl
YktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IDY4MDdlOTNjZGRjLi5jMjhjYzEx
YzVlZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJLaXQueGNvZGVwcm9qL3Byb2plY3Qu
cGJ4cHJvagorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhw
cm9qCkBAIC0xMzgwLDYgKzEzODAsOCBAQAogCQk4Mzk5MDIwMzFCRTlBMDJCMDAwRjM2NTMgLyog
TmV0d29ya0xvYWQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDgzOTkwMUZFMUJFOUEwMUIwMDBGMzY1MyAvKiBOZXR3b3JrTG9hZC5oICovOyB9OwogCQk4
MzlBMkYzMTFFMjA2NzQ1MDAzOTA1N0UgLyogSGlnaFBlcmZvcm1hbmNlR3JhcGhpY3NVc2FnZVNh
bXBsZXIuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
ODM5QTJGMkYxRTIwNjczOTAwMzkwNTdFIC8qIEhpZ2hQZXJmb3JtYW5jZUdyYXBoaWNzVXNhZ2VT
YW1wbGVyLmNwcCAqLzsgfTsKIAkJODM5QTJGMzIxRTIwNjc0NTAwMzkwNTdFIC8qIEhpZ2hQZXJm
b3JtYW5jZUdyYXBoaWNzVXNhZ2VTYW1wbGVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSA4MzlBMkYzMDFFMjA2NzM5MDAzOTA1N0UgLyogSGlnaFBlcmZv
cm1hbmNlR3JhcGhpY3NVc2FnZVNhbXBsZXIuaCAqLzsgfTsKKwkJODNBMEVEMzQxRjc0N0NDRDAw
MzI5OUVCIC8qIFByZWNvbm5lY3RUYXNrLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDgzQTBFRDMzMUY3NDdDQzcwMDMyOTlFQiAvKiBQcmVjb25uZWN0
VGFzay5jcHAgKi87IH07CisJCTgzQTBFRDM1MUY3NDdDQ0YwMDMyOTlFQiAvKiBQcmVjb25uZWN0
VGFzay5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODNB
MEVEMzIxRjc0N0NDNjAwMzI5OUVCIC8qIFByZWNvbm5lY3RUYXNrLmggKi87IH07CiAJCTgzQkRD
Q0I5MUFDNUZEQjYwMDNGNjQ0MSAvKiBOZXR3b3JrQ2FjaGVTdGF0aXN0aWNzLmNwcCBpbiBTb3Vy
Y2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDgzQkRDQ0I4MUFDNUZEQjYw
MDNGNjQ0MSAvKiBOZXR3b3JrQ2FjaGVTdGF0aXN0aWNzLmNwcCAqLzsgfTsKIAkJODNCRkFDNDIx
RDk2MTM3QzAwNDMzNDkwIC8qIEJsb2JEb3dubG9hZENsaWVudC5oIGluIEhlYWRlcnMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODNCRkFDNDAxRDk2MTM2MDAwNDMzNDkwIC8q
IEJsb2JEb3dubG9hZENsaWVudC5oICovOyB9OwogCQk4M0JGQUM0MzFEOTYxMzdDMDA0MzM0OTAg
LyogQmxvYkRvd25sb2FkQ2xpZW50LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDgzQkZBQzQxMUQ5NjEzNjAwMDQzMzQ5MCAvKiBCbG9iRG93bmxvYWRD
bGllbnQuY3BwICovOyB9OwpAQCAtMzczMyw2ICszNzM1LDggQEAKIAkJODM5OTAxRkYxQkU5QTAx
QjAwMEYzNjUzIC8qIE5ldHdvcmtMb2FkLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNw
cDsgbmFtZSA9IE5ldHdvcmtMb2FkLmNwcDsgcGF0aCA9IE5ldHdvcmtQcm9jZXNzL05ldHdvcmtM
b2FkLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJODM5QTJGMkYxRTIwNjczOTAw
MzkwNTdFIC8qIEhpZ2hQZXJmb3JtYW5jZUdyYXBoaWNzVXNhZ2VTYW1wbGVyLmNwcCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEhpZ2hQZXJmb3JtYW5jZUdyYXBoaWNzVXNh
Z2VTYW1wbGVyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJODM5QTJGMzAxRTIw
NjczOTAwMzkwNTdFIC8qIEhpZ2hQZXJmb3JtYW5jZUdyYXBoaWNzVXNhZ2VTYW1wbGVyLmggKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEhpZ2hQZXJmb3JtYW5jZUdyYXBoaWNzVXNh
Z2VTYW1wbGVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTgzQTBFRDMyMUY3NDdD
QzYwMDMyOTlFQiAvKiBQcmVjb25uZWN0VGFzay5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7
IG5hbWUgPSBQcmVjb25uZWN0VGFzay5oOyBwYXRoID0gTmV0d29ya1Byb2Nlc3MvUHJlY29ubmVj
dFRhc2suaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJODNBMEVEMzMxRjc0N0NDNzAw
MzI5OUVCIC8qIFByZWNvbm5lY3RUYXNrLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNw
cDsgbmFtZSA9IFByZWNvbm5lY3RUYXNrLmNwcDsgcGF0aCA9IE5ldHdvcmtQcm9jZXNzL1ByZWNv
bm5lY3RUYXNrLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJODNCRENDQjgxQUM1
RkRCNjAwM0Y2NDQxIC8qIE5ldHdvcmtDYWNoZVN0YXRpc3RpY3MuY3BwICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gTmV0d29ya0NhY2hlU3RhdGlzdGljcy5jcHA7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTgzQkZBQzQwMUQ5NjEzNjAwMDQzMzQ5MCAvKiBCbG9i
RG93bmxvYWRDbGllbnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gQmxvYkRv
d25sb2FkQ2xpZW50Lmg7IHBhdGggPSBOZXR3b3JrUHJvY2Vzcy9Eb3dubG9hZHMvQmxvYkRvd25s
b2FkQ2xpZW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTgzQkZBQzQxMUQ5NjEz
NjAwMDQzMzQ5MCAvKiBCbG9iRG93bmxvYWRDbGllbnQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jcHAuY3BwOyBuYW1lID0gQmxvYkRvd25sb2FkQ2xpZW50LmNwcDsgcGF0aCA9IE5ldHdvcmtQ
cm9jZXNzL0Rvd25sb2Fkcy9CbG9iRG93bmxvYWRDbGllbnQuY3BwOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwpAQCAtNjExNSw2ICs2MTE5LDggQEAKIAkJCQk1QzBCMTc3RjFFN0M4ODY3MDBF
OTEyM0MgLyogTmV0d29ya1NvY2tldFN0cmVhbS5tZXNzYWdlcy5pbiAqLywKIAkJCQk0NjIxMDdE
NzFGMzhEQkQzMDBERDc4MTAgLyogUGluZ0xvYWQuY3BwICovLAogCQkJCTVDRTg1QjFGMUM4OEU2
NDMwMDcwQkZDRSAvKiBQaW5nTG9hZC5oICovLAorCQkJCTgzQTBFRDMzMUY3NDdDQzcwMDMyOTlF
QiAvKiBQcmVjb25uZWN0VGFzay5jcHAgKi8sCisJCQkJODNBMEVEMzIxRjc0N0NDNjAwMzI5OUVC
IC8qIFByZWNvbm5lY3RUYXNrLmggKi8sCiAJCQkJRTFCNzg0NzAxNjNGMjQ2OTAwMDdCNjkyIC8q
IFJlbW90ZU5ldHdvcmtpbmdDb250ZXh0LmggKi8sCiAJCQkpOwogCQkJbmFtZSA9IE5ldHdvcmtQ
cm9jZXNzOwpAQCAtODcwOSw2ICs4NzE1LDcgQEAKIAkJCQkxQTRBOUYzMzEyQjg0NEUyMDA4RkU5
ODQgLyogUGx1Z2luUXVpcmtzLmggaW4gSGVhZGVycyAqLywKIAkJCQk3Q0Q2MjI3ODE3MzlEODYz
MDA1QkQ3RkYgLyogUGx1Z2luU2FuZGJveFByb2ZpbGUuaCBpbiBIZWFkZXJzICovLAogCQkJCTFB
NkZCN0FGMTFFNjRCNjgwMERCMTM3MSAvKiBQbHVnaW5WaWV3LmggaW4gSGVhZGVycyAqLywKKwkJ
CQk4M0EwRUQzNTFGNzQ3Q0NGMDAzMjk5RUIgLyogUHJlY29ubmVjdFRhc2suaCBpbiBIZWFkZXJz
ICovLAogCQkJCUUxQ0MxQjkwMTJEN0VBREYwMDYyNTgzOCAvKiBQcmludEluZm8uaCBpbiBIZWFk
ZXJzICovLAogCQkJCTg2Rjk1MzY1MThGRjU4RjUwMDFEQjJFRiAvKiBQcm9jZXNzQXNzZXJ0aW9u
LmggaW4gSGVhZGVycyAqLywKIAkJCQlCQzFBN0M1ODExMzZFMTlDMDBGQjcxNjcgLyogUHJvY2Vz
c0xhdW5jaGVyLmggaW4gSGVhZGVycyAqLywKQEAgLTEwMjkwLDYgKzEwMjk3LDcgQEAKIAkJCQk3
Q0Q2MjI3NzE3MzlEODYzMDA1QkQ3RkYgLyogUGx1Z2luU2FuZGJveFByb2ZpbGUubW0gaW4gU291
cmNlcyAqLywKIAkJCQlCQzgyODQ0RDE2QjUwODFDMDBBMjc4RkUgLyogUGx1Z2luU2VydmljZUVu
dHJ5UG9pbnQubW0gaW4gU291cmNlcyAqLywKIAkJCQkxQTZGQjdBRTExRTY0QjY4MDBEQjEzNzEg
LyogUGx1Z2luVmlldy5jcHAgaW4gU291cmNlcyAqLywKKwkJCQk4M0EwRUQzNDFGNzQ3Q0NEMDAz
Mjk5RUIgLyogUHJlY29ubmVjdFRhc2suY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJRTE4QzkyRjQx
MkRCOUU3MTAwQ0YyQUVCIC8qIFByaW50SW5mby5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlFMUND
MUI5MTEyRDdFQURGMDA2MjU4MzggLyogUHJpbnRJbmZvTWFjLm1tIGluIFNvdXJjZXMgKi8sCiAJ
CQkJMzc3MTZBNUExOTVCOTEwNTAwRUU4QjFCIC8qIFByb2Nlc3NBc3NlcnRpb24uY3BwIGluIFNv
dXJjZXMgKi8sCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvTmV0d29yay9X
ZWJMb2FkZXJTdHJhdGVneS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvTmV0d29yay9X
ZWJMb2FkZXJTdHJhdGVneS5jcHAKaW5kZXggZWE3YjE3YTNkZWIuLjVhMjc5ZWYxM2EwIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvTmV0d29yay9XZWJMb2FkZXJTdHJhdGVn
eS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL05ldHdvcmsvV2ViTG9hZGVyU3Ry
YXRlZ3kuY3BwCkBAIC00NTksNiArNDU5LDExIEBAIHZvaWQgV2ViTG9hZGVyU3RyYXRlZ3k6OmRp
ZEZpbmlzaFBpbmdMb2FkKHVpbnQ2NF90IHBpbmdMb2FkSWRlbnRpZmllciwgUmVzb3VyY2VFCiAg
ICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKFdURk1vdmUoZXJyb3IpKTsKIH0KIAordm9pZCBXZWJM
b2FkZXJTdHJhdGVneTo6cHJlY29ubmVjdFRvKGNvbnN0IFdlYkNvcmU6OlVSTCYgdXJsKQorewor
ICAgIFdlYlByb2Nlc3M6OnNpbmdsZXRvbigpLm5ldHdvcmtDb25uZWN0aW9uKCkuY29ubmVjdGlv
bigpLnNlbmQoTWVzc2FnZXM6Ok5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzOjpQcmVjb25u
ZWN0VG8odXJsKSwgMCk7Cit9CisKIHZvaWQgV2ViTG9hZGVyU3RyYXRlZ3k6OnN0b3JlRGVyaXZl
ZERhdGFUb0NhY2hlKGNvbnN0IFNIQTE6OkRpZ2VzdCYgYm9keUhhc2gsIGNvbnN0IFN0cmluZyYg
dHlwZSwgY29uc3QgU3RyaW5nJiBwYXJ0aXRpb24sIFdlYkNvcmU6OlNoYXJlZEJ1ZmZlciYgZGF0
YSkKIHsKICNpZiBFTkFCTEUoTkVUV09SS19DQUNIRSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9OZXR3b3JrL1dlYkxvYWRlclN0cmF0ZWd5LmggYi9Tb3VyY2UvV2ViS2l0
L1dlYlByb2Nlc3MvTmV0d29yay9XZWJMb2FkZXJTdHJhdGVneS5oCmluZGV4IDU3MzAyOGU1YTdi
Li4xMWY3OTBjNjAwZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL05ldHdv
cmsvV2ViTG9hZGVyU3RyYXRlZ3kuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvTmV0
d29yay9XZWJMb2FkZXJTdHJhdGVneS5oCkBAIC02Miw2ICs2Miw4IEBAIHB1YmxpYzoKICAgICB2
b2lkIHN0YXJ0UGluZ0xvYWQoV2ViQ29yZTo6RnJhbWUmLCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVl
c3QmLCBjb25zdCBXZWJDb3JlOjpIVFRQSGVhZGVyTWFwJiBvcmlnaW5hbFJlcXVlc3RIZWFkZXJz
LCBjb25zdCBXZWJDb3JlOjpGZXRjaE9wdGlvbnMmLCBQaW5nTG9hZENvbXBsZXRpb25IYW5kbGVy
JiYpIGZpbmFsOwogICAgIHZvaWQgZGlkRmluaXNoUGluZ0xvYWQodWludDY0X3QgcGluZ0xvYWRJ
ZGVudGlmaWVyLCBXZWJDb3JlOjpSZXNvdXJjZUVycm9yJiYpOwogCisgICAgdm9pZCBwcmVjb25u
ZWN0VG8oY29uc3QgV2ViQ29yZTo6VVJMJikgZmluYWw7CisKICAgICB2b2lkIHN0b3JlRGVyaXZl
ZERhdGFUb0NhY2hlKGNvbnN0IFNIQTE6OkRpZ2VzdCYgYm9keUhhc2gsIGNvbnN0IFN0cmluZyYg
dHlwZSwgY29uc3QgU3RyaW5nJiBwYXJ0aXRpb24sIFdlYkNvcmU6OlNoYXJlZEJ1ZmZlciYpIGZp
bmFsOwogCiAgICAgdm9pZCBzZXRDYXB0dXJlRXh0cmFOZXR3b3JrTG9hZE1ldHJpY3NFbmFibGVk
KGJvb2wpIGZpbmFsOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBh
Z2UvV2ViUGFnZS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdl
LmNwcAppbmRleCA4MjYxZTMzNDU4Mi4uYThkZWU2ZjViN2MgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwCkBAIC0zMDkwLDYgKzMwOTAsNyBAQCB2b2lk
IFdlYlBhZ2U6OnVwZGF0ZVByZWZlcmVuY2VzKGNvbnN0IFdlYlByZWZlcmVuY2VzU3RvcmUmIHN0
b3JlKQogICAgIHNldHRpbmdzLnNldFBhZ2luYXRlRHVyaW5nTGF5b3V0RW5hYmxlZChzdG9yZS5n
ZXRCb29sVmFsdWVGb3JLZXkoV2ViUHJlZmVyZW5jZXNLZXk6OnBhZ2luYXRlRHVyaW5nTGF5b3V0
RW5hYmxlZEtleSgpKSk7CiAgICAgc2V0dGluZ3Muc2V0RE9NUGFzdGVBbGxvd2VkKHN0b3JlLmdl
dEJvb2xWYWx1ZUZvcktleShXZWJQcmVmZXJlbmNlc0tleTo6ZG9tUGFzdGVBbGxvd2VkS2V5KCkp
KTsKICAgICBzZXR0aW5ncy5zZXRKYXZhU2NyaXB0Q2FuQWNjZXNzQ2xpcGJvYXJkKHN0b3JlLmdl
dEJvb2xWYWx1ZUZvcktleShXZWJQcmVmZXJlbmNlc0tleTo6amF2YVNjcmlwdENhbkFjY2Vzc0Ns
aXBib2FyZEtleSgpKSk7CisgICAgc2V0dGluZ3Muc2V0TGlua1ByZWNvbm5lY3RFbmFibGVkKHN0
b3JlLmdldEJvb2xWYWx1ZUZvcktleShXZWJQcmVmZXJlbmNlc0tleTo6bGlua1ByZWNvbm5lY3RL
ZXkoKSkpOwogICAgIHNldHRpbmdzLnNldFNob3VsZFByaW50QmFja2dyb3VuZHMoc3RvcmUuZ2V0
Qm9vbFZhbHVlRm9yS2V5KFdlYlByZWZlcmVuY2VzS2V5OjpzaG91bGRQcmludEJhY2tncm91bmRz
S2V5KCkpKTsKICAgICBzZXR0aW5ncy5zZXRXZWJTZWN1cml0eUVuYWJsZWQoc3RvcmUuZ2V0Qm9v
bFZhbHVlRm9yS2V5KFdlYlByZWZlcmVuY2VzS2V5Ojp3ZWJTZWN1cml0eUVuYWJsZWRLZXkoKSkp
OwogICAgIHNldHRpbmdzLnNldEFsbG93VW5pdmVyc2FsQWNjZXNzRnJvbUZpbGVVUkxzKHN0b3Jl
LmdldEJvb2xWYWx1ZUZvcktleShXZWJQcmVmZXJlbmNlc0tleTo6YWxsb3dVbml2ZXJzYWxBY2Nl
c3NGcm9tRmlsZVVSTHNLZXkoKSkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jb25maWcu
aCBiL1NvdXJjZS9XZWJLaXQvY29uZmlnLmgKaW5kZXggZTg2N2Y0ODdjNzEuLmNhZjRmZDc3YmNh
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2NvbmZpZy5oCisrKyBiL1NvdXJjZS9XZWJLaXQv
Y29uZmlnLmgKQEAgLTg4LDYgKzg4LDEyIEBACiAjZW5kaWYKICNlbmRpZgogCisjaWYgVVNFKE5F
VFdPUktfU0VTU0lPTikgJiYgKChQTEFURk9STShNQUMpICYmIF9fTUFDX09TX1hfVkVSU0lPTl9N
SU5fUkVRVUlSRUQgPj0gMTAxMzAwKSB8fCAoUExBVEZPUk0oSU9TKSAmJiBfX0lQSE9ORV9PU19W
RVJTSU9OX01JTl9SRVFVSVJFRCA+PSAxMTAwMDApKQorI2lmbmRlZiBFTkFCTEVfU0VSVkVSX1BS
RUNPTk5FQ1QKKyNkZWZpbmUgRU5BQkxFX1NFUlZFUl9QUkVDT05ORUNUIDEKKyNlbmRpZgorI2Vu
ZGlmCisKICNpZm5kZWYgSEFWRV9TRUNfQUNDRVNTX0NPTlRST0wKICNpZiBQTEFURk9STShJT1Mp
IHx8IFBMQVRGT1JNKE1BQykKICNkZWZpbmUgSEFWRV9TRUNfQUNDRVNTX0NPTlRST0wgMQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdExlZ2FjeS9XZWJDb3JlU3VwcG9ydC9XZWJSZXNvdXJjZUxv
YWRTY2hlZHVsZXIuY3BwIGIvU291cmNlL1dlYktpdExlZ2FjeS9XZWJDb3JlU3VwcG9ydC9XZWJS
ZXNvdXJjZUxvYWRTY2hlZHVsZXIuY3BwCmluZGV4IDRkMjk4NWQxYTQzLi5jZWJlZjRhMTgwMSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS9XZWJDb3JlU3VwcG9ydC9XZWJSZXNvdXJj
ZUxvYWRTY2hlZHVsZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvV2ViQ29yZVN1cHBv
cnQvV2ViUmVzb3VyY2VMb2FkU2NoZWR1bGVyLmNwcApAQCAtMzY5LDMgKzM2OSw3IEBAIHZvaWQg
V2ViUmVzb3VyY2VMb2FkU2NoZWR1bGVyOjpzdGFydFBpbmdMb2FkKEZyYW1lJiBmcmFtZSwgUmVz
b3VyY2VSZXF1ZXN0JiByZXF1CiAgICAgbmV3IFBpbmdIYW5kbGUoZnJhbWUubG9hZGVyKCkubmV0
d29ya2luZ0NvbnRleHQoKSwgcmVxdWVzdCwgb3B0aW9ucy5jcmVkZW50aWFscyAhPSBGZXRjaE9w
dGlvbnM6OkNyZWRlbnRpYWxzOjpPbWl0LCBQaW5nSGFuZGxlOjpVc2VzQXN5bmNDYWxsYmFja3M6
Ok5vLCBvcHRpb25zLnJlZGlyZWN0ID09IEZldGNoT3B0aW9uczo6UmVkaXJlY3Q6OkZvbGxvdywg
V1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcikpOwogfQogCit2b2lkIFdlYlJlc291cmNlTG9hZFNj
aGVkdWxlcjo6cHJlY29ubmVjdFRvKGNvbnN0IFVSTCYpCit7Cit9CisKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXRMZWdhY3kvV2ViQ29yZVN1cHBvcnQvV2ViUmVzb3VyY2VMb2FkU2NoZWR1bGVy
LmggYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L1dlYkNvcmVTdXBwb3J0L1dlYlJlc291cmNlTG9hZFNj
aGVkdWxlci5oCmluZGV4IDBlMGMyZGU1NzdjLi45ZWRjNTU1NzlhMSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdExlZ2FjeS9XZWJDb3JlU3VwcG9ydC9XZWJSZXNvdXJjZUxvYWRTY2hlZHVsZXIu
aAorKysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L1dlYkNvcmVTdXBwb3J0L1dlYlJlc291cmNlTG9h
ZFNjaGVkdWxlci5oCkBAIC02MSw2ICs2MSw4IEBAIHB1YmxpYzoKIAogICAgIHZvaWQgc3RhcnRQ
aW5nTG9hZChXZWJDb3JlOjpGcmFtZSYsIFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYsIGNvbnN0
IFdlYkNvcmU6OkhUVFBIZWFkZXJNYXAmLCBjb25zdCBXZWJDb3JlOjpGZXRjaE9wdGlvbnMmLCBQ
aW5nTG9hZENvbXBsZXRpb25IYW5kbGVyJiYpIGZpbmFsOwogCisgICAgdm9pZCBwcmVjb25uZWN0
VG8oY29uc3QgV2ViQ29yZTo6VVJMJikgZmluYWw7CisKICAgICB2b2lkIHN0b3JlRGVyaXZlZERh
dGFUb0NhY2hlKGNvbnN0IFNIQTE6OkRpZ2VzdCYsIGNvbnN0IFN0cmluZyYsIGNvbnN0IFN0cmlu
ZyYsIFdlYkNvcmU6OlNoYXJlZEJ1ZmZlciYpIGZpbmFsIHsgfQogCiAgICAgdm9pZCBzZXRDYXB0
dXJlRXh0cmFOZXR3b3JrTG9hZE1ldHJpY3NFbmFibGVkKGJvb2wpIGZpbmFsIHsgfQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>321833</attachid>
            <date>2017-09-26 10:14:30 -0700</date>
            <delta_ts>2017-09-26 10:20:31 -0700</delta_ts>
            <desc>WIP Patch</desc>
            <filename>177474_preconnect_support_wip.patch</filename>
            <type>text/plain</type>
            <size>43748</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvaHRtbC9saW5rLXJlbC1wcmVjb25uZWN0LWV4
cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvaHRtbC9saW5rLXJlbC1wcmVjb25uZWN0LWV4
cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uYzVhM2Y1
ZDcxZWIKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2h0bWwvbGluay1yZWwt
cHJlY29ubmVjdC1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwxMiBAQAorVGVzdHMgdGhhdCBMaW5r
J3MgcmVsPXByZWNvbm5lY3QgaXMgcmVwb3J0ZWQgYXMgc3VwcG9ydGVkLgorCitPbiBzdWNjZXNz
LCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAi
VEVTVCBDT01QTEVURSIuCisKKworUEFTUyB0ZXN0TGluay5yZWxMaXN0Lmxlbmd0aCBpcyAxCitQ
QVNTIHRlc3RMaW5rLnJlbExpc3RbMF0gaXMgInByZWNvbm5lY3QiCitQQVNTIHRlc3RMaW5rLnJl
bExpc3Quc3VwcG9ydHMoJ3ByZWNvbm5lY3QnKSBpcyB0cnVlCitQQVNTIHN1Y2Nlc3NmdWxseVBh
cnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
ZmFzdC9odG1sL2xpbmstcmVsLXByZWNvbm5lY3QuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvaHRt
bC9saW5rLXJlbC1wcmVjb25uZWN0Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAuLjJkMTQ2MWFmYmMzCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFz
dC9odG1sL2xpbmstcmVsLXByZWNvbm5lY3QuaHRtbApAQCAtMCwwICsxLDE3IEBACis8IURPQ1RZ
UEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+Cis8bGluayBpZD0idGVzdExpbmsiIHJlbD0icHJlY29u
bmVjdCIgaHJlZj0iaHR0cDovL2xvY2FsaG9zdDo4MDAwIj4KKzxzY3JpcHQgc3JjPSIuLi8uLi9y
ZXNvdXJjZXMvanMtdGVzdC5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxzY3JpcHQ+
CitkZXNjcmlwdGlvbigiVGVzdHMgdGhhdCBMaW5rJ3MgcmVsPXByZWNvbm5lY3QgaXMgcmVwb3J0
ZWQgYXMgc3VwcG9ydGVkLiIpOworCitjb25zdCB0ZXN0TGluayA9IGRvY3VtZW50LmdldEVsZW1l
bnRCeUlkKCJ0ZXN0TGluayIpOworc2hvdWxkQmUoInRlc3RMaW5rLnJlbExpc3QubGVuZ3RoIiwg
IjEiKTsKK3Nob3VsZEJlRXF1YWxUb1N0cmluZygidGVzdExpbmsucmVsTGlzdFswXSIsICJwcmVj
b25uZWN0Iik7CitzaG91bGRCZVRydWUoInRlc3RMaW5rLnJlbExpc3Quc3VwcG9ydHMoJ3ByZWNv
bm5lY3QnKSIpOworPC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9wbGF0Zm9ybS9tYWMtd2sxL1Rlc3RFeHBlY3RhdGlvbnMgYi9MYXlvdXRUZXN0cy9w
bGF0Zm9ybS9tYWMtd2sxL1Rlc3RFeHBlY3RhdGlvbnMKaW5kZXggODAzNzMzMzRmZWYuLmJhN2E0
YjI3ZWVhIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMtd2sxL1Rlc3RFeHBl
Y3RhdGlvbnMKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjLXdrMS9UZXN0RXhwZWN0YXRp
b25zCkBAIC0zOTksNiArMzk5LDkgQEAgZmFzdC9pbWFnZXMvbG93LW1lbW9yeS1kZWNvZGUuaHRt
bCBbIFNraXAgXQogCiBodHRwL3Rlc3RzL3dvcmtlcnMvc2VydmljZSBbIFNraXAgXQogCisjIExp
bmsgcHJlY29ubmVjdCBpcyBub3QgZW5hYmxlZCBvbiBXSzEuCitmYXN0L2h0bWwvbGluay1yZWwt
cHJlY29ubmVjdC5odG1sIFsgRmFpbHVyZSBdCisKIHdlYmtpdC5vcmcvYi8xNzUzNDUgZmFzdC9p
bWFnZXMvYW5pbWF0ZWQtZ2lmLXNjcm9sbGluZy1jcmFzaC5odG1sIFsgUGFzcyBUaW1lb3V0IF0K
IAogd2Via2l0Lm9yZy9iLzE3NTU1NCBbIFNpZXJyYSBdIGZ1bGxzY3JlZW4vZnVsbC1zY3JlZW4t
aWZyYW1lLWxlZ2FjeS5odG1sIFsgUGFzcyBGYWlsdXJlIF0KZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL3BsYXRmb3JtL21hYy13azIvVGVzdEV4cGVjdGF0aW9ucyBiL0xheW91dFRlc3RzL3BsYXRm
b3JtL21hYy13azIvVGVzdEV4cGVjdGF0aW9ucwppbmRleCAwN2FiNDY4ZDEzZC4uNzI2MThhMzE0
OGUgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy13azIvVGVzdEV4cGVjdGF0
aW9ucworKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMtd2syL1Rlc3RFeHBlY3RhdGlvbnMK
QEAgLTcyOCw2ICs3MjgsOSBAQCB3ZWJraXQub3JnL2IvMTcyODM0IFsgRWxDYXBpdGFuIF0gaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9JbmRleGVkREIvaWRibwogWyBFbENhcGl0YW4g
XSBpbXBvcnRlZC9ibGluay9mYXN0L2JlYWNvbi8gWyBTa2lwIF0KIFsgRWxDYXBpdGFuIF0gaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9iZWFjb24vIFsgU2tpcCBdCiAKKyMgUmVxdWly
ZXMgTkVUV09SS19TRVNTSU9OIHRvIGJlIGVuYWJsZWQuCitbIEVsQ2FwaXRhbiBdIGZhc3QvaHRt
bC9saW5rLXJlbC1wcmVjb25uZWN0Lmh0bWwgWyBGYWlsdXJlIF0KKwogd2Via2l0Lm9yZy9iLzE3
MjIwMSB3ZWJhdWRpby9zaWxlbnQtYXVkaW8taW50ZXJydXB0ZWQtaW4tYmFja2dyb3VuZC5odG1s
IFsgUGFzcyBUaW1lb3V0IF0KIAogd2Via2l0Lm9yZy9iLzE2Nzc1NyB3b3JrZXJzL2JvbWIuaHRt
bCBbIFBhc3MgVGltZW91dCBdCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL3Nw
aS9jZi9DRk5ldHdvcmtTUEkuaCBiL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvc3BpL2NmL0NGTmV0
d29ya1NQSS5oCmluZGV4IDNlNTg0M2VhZDViLi42ODFkYmJiM2I4MCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvUEFML3BhbC9zcGkvY2YvQ0ZOZXR3b3JrU1BJLmgKKysrIGIvU291cmNlL1dl
YkNvcmUvUEFML3BhbC9zcGkvY2YvQ0ZOZXR3b3JrU1BJLmgKQEAgLTExMyw2ICsxMTMsMTIgQEAg
dHlwZWRlZiB2b2lkICheQ0ZDYWNoZWRVUkxSZXNwb25zZUNhbGxCYWNrQmxvY2spKENGQ2FjaGVk
VVJMUmVzcG9uc2VSZWYpOwogLSAoTlNEaWN0aW9uYXJ5ICopX3RpbWluZ0RhdGE7CiBAZW5kCiAK
KyNpZiAoUExBVEZPUk0oTUFDKSAmJiBfX01BQ19PU19YX1ZFUlNJT05fTUlOX1JFUVVJUkVEID49
IDEwMTMwMCkgfHwgKFBMQVRGT1JNKElPUykgJiYgX19JUEhPTkVfT1NfVkVSU0lPTl9NSU5fUkVR
VUlSRUQgPj0gMTEwMDAwKQorQGludGVyZmFjZSBOU1VSTFNlc3Npb25UYXNrIChSZXNvdXJjZUhp
bnRzKQorQHByb3BlcnR5IChub25hdG9taWMsIGFzc2lnbikgQk9PTCBfcHJlY29ubmVjdDsKK0Bl
bmQKKyNlbmRpZgorCiBAaW50ZXJmYWNlIE5TSFRUUENvb2tpZSAoKQogLSAoQ0ZIVFRQQ29va2ll
UmVmKV9DRkhUVFBDb29raWU7CiArIChDRkFycmF5UmVmIF9fbnVsbGFibGUpX25zMmNmQ29va2ll
czooTlNBcnJheSAqIF9fbnVsbGFibGUpbnNDb29raWVzIENGX1JFVFVSTlNfUkVUQUlORUQ7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0RPTVRva2VuTGlzdC5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9odG1sL0RPTVRva2VuTGlzdC5jcHAKaW5kZXggMjU1NWI2ODQ0NmIuLjdjYWIxYjcz
NmEwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0RPTVRva2VuTGlzdC5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvaHRtbC9ET01Ub2tlbkxpc3QuY3BwCkBAIC0zNSw3ICszNSw3IEBA
CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotRE9NVG9rZW5MaXN0OjpET01Ub2tlbkxpc3QoRWxl
bWVudCYgZWxlbWVudCwgY29uc3QgUXVhbGlmaWVkTmFtZSYgYXR0cmlidXRlTmFtZSwgV1RGOjpG
dW5jdGlvbjxib29sKFN0cmluZ1ZpZXcpPiYmIGlzU3VwcG9ydGVkVG9rZW4pCitET01Ub2tlbkxp
c3Q6OkRPTVRva2VuTGlzdChFbGVtZW50JiBlbGVtZW50LCBjb25zdCBRdWFsaWZpZWROYW1lJiBh
dHRyaWJ1dGVOYW1lLCBJc1N1cHBvcnRlZFRva2VuRnVuY3Rpb24mJiBpc1N1cHBvcnRlZFRva2Vu
KQogICAgIDogbV9lbGVtZW50KGVsZW1lbnQpCiAgICAgLCBtX2F0dHJpYnV0ZU5hbWUoYXR0cmli
dXRlTmFtZSkKICAgICAsIG1faXNTdXBwb3J0ZWRUb2tlbihXVEZNb3ZlKGlzU3VwcG9ydGVkVG9r
ZW4pKQpAQCAtMTkxLDcgKzE5MSw3IEBAIEV4Y2VwdGlvbk9yPGJvb2w+IERPTVRva2VuTGlzdDo6
c3VwcG9ydHMoU3RyaW5nVmlldyB0b2tlbikKIHsKICAgICBpZiAoIW1faXNTdXBwb3J0ZWRUb2tl
bikKICAgICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7IFR5cGVFcnJvciB9OwotICAgIHJldHVybiBt
X2lzU3VwcG9ydGVkVG9rZW4odG9rZW4pOworICAgIHJldHVybiBtX2lzU3VwcG9ydGVkVG9rZW4o
bV9lbGVtZW50LmRvY3VtZW50KCksIHRva2VuKTsKIH0KIAogLy8gaHR0cHM6Ly9kb20uc3BlYy53
aGF0d2cub3JnLyNkb20tZG9tdG9rZW5saXN0LXZhbHVlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9odG1sL0RPTVRva2VuTGlzdC5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9ET01Ub2tlbkxp
c3QuaAppbmRleCAyMWZiNDZmNDYxMi4uZDYwZDE3Y2M5MTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvRE9NVG9rZW5MaXN0LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9ET01U
b2tlbkxpc3QuaApAQCAtMzIsNyArMzIsOCBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiBjbGFzcyBE
T01Ub2tlbkxpc3QgewogICAgIFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOwogcHVibGljOgotICAg
IERPTVRva2VuTGlzdChFbGVtZW50JiwgY29uc3QgUXVhbGlmaWVkTmFtZSYgYXR0cmlidXRlTmFt
ZSwgV1RGOjpGdW5jdGlvbjxib29sKFN0cmluZ1ZpZXcpPiYmIGlzU3VwcG9ydGVkVG9rZW4gPSB7
IH0pOworICAgIHVzaW5nIElzU3VwcG9ydGVkVG9rZW5GdW5jdGlvbiA9IFdURjo6RnVuY3Rpb248
Ym9vbChEb2N1bWVudCYsIFN0cmluZ1ZpZXcpPjsKKyAgICBET01Ub2tlbkxpc3QoRWxlbWVudCYs
IGNvbnN0IFF1YWxpZmllZE5hbWUmIGF0dHJpYnV0ZU5hbWUsIElzU3VwcG9ydGVkVG9rZW5GdW5j
dGlvbiYmIGlzU3VwcG9ydGVkVG9rZW4gPSB7IH0pOwogCiAgICAgdm9pZCBhc3NvY2lhdGVkQXR0
cmlidXRlVmFsdWVDaGFuZ2VkKGNvbnN0IEF0b21pY1N0cmluZyYpOwogCkBAIC03Myw3ICs3NCw3
IEBAIHByaXZhdGU6CiAgICAgYm9vbCBtX2luVXBkYXRlQXNzb2NpYXRlZEF0dHJpYnV0ZUZyb21U
b2tlbnMgeyBmYWxzZSB9OwogICAgIGJvb2wgbV90b2tlbnNOZWVkVXBkYXRpbmcgeyB0cnVlIH07
CiAgICAgVmVjdG9yPEF0b21pY1N0cmluZz4gbV90b2tlbnM7Ci0gICAgV1RGOjpGdW5jdGlvbjxi
b29sKFN0cmluZ1ZpZXcpPiBtX2lzU3VwcG9ydGVkVG9rZW47CisgICAgSXNTdXBwb3J0ZWRUb2tl
bkZ1bmN0aW9uIG1faXNTdXBwb3J0ZWRUb2tlbjsKIH07CiAKIGlubGluZSB1bnNpZ25lZCBET01U
b2tlbkxpc3Q6Omxlbmd0aCgpIGNvbnN0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1s
L0hUTUxBbmNob3JFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEFuY2hvckVs
ZW1lbnQuY3BwCmluZGV4IGNiMWYxYzlmNTQ2Li40ODgxYzNkOWU4YSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvaHRtbC9IVE1MQW5jaG9yRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvaHRtbC9IVE1MQW5jaG9yRWxlbWVudC5jcHAKQEAgLTMwNyw3ICszMDcsNyBAQCBib29sIEhU
TUxBbmNob3JFbGVtZW50OjpoYXNSZWwoUmVsYXRpb24gcmVsYXRpb24pIGNvbnN0CiBET01Ub2tl
bkxpc3QmIEhUTUxBbmNob3JFbGVtZW50OjpyZWxMaXN0KCkKIHsKICAgICBpZiAoIW1fcmVsTGlz
dCkgCi0gICAgICAgIG1fcmVsTGlzdCA9IHN0ZDo6bWFrZV91bmlxdWU8RE9NVG9rZW5MaXN0Pigq
dGhpcywgSFRNTE5hbWVzOjpyZWxBdHRyLCBbXShTdHJpbmdWaWV3IHRva2VuKSB7CisgICAgICAg
IG1fcmVsTGlzdCA9IHN0ZDo6bWFrZV91bmlxdWU8RE9NVG9rZW5MaXN0PigqdGhpcywgSFRNTE5h
bWVzOjpyZWxBdHRyLCBbXShEb2N1bWVudCYsIFN0cmluZ1ZpZXcgdG9rZW4pIHsKICAgICAgICAg
ICAgIHJldHVybiBlcXVhbElnbm9yaW5nQVNDSUlDYXNlKHRva2VuLCAibm9yZWZlcnJlciIpIHx8
IGVxdWFsSWdub3JpbmdBU0NJSUNhc2UodG9rZW4sICJub29wZW5lciIpOwogICAgICAgICB9KTsK
ICAgICByZXR1cm4gKm1fcmVsTGlzdDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwv
SFRNTElGcmFtZUVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MSUZyYW1lRWxl
bWVudC5jcHAKaW5kZXggZDMwMzIyZGMwYzQuLjIyM2UzYjAzMzFhIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL0hUTUxJRnJhbWVFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9odG1sL0hUTUxJRnJhbWVFbGVtZW50LmNwcApAQCAtNTEsNyArNTEsNyBAQCBSZWY8SFRNTElG
cmFtZUVsZW1lbnQ+IEhUTUxJRnJhbWVFbGVtZW50OjpjcmVhdGUoY29uc3QgUXVhbGlmaWVkTmFt
ZSYgdGFnTmFtZSwgRAogRE9NVG9rZW5MaXN0JiBIVE1MSUZyYW1lRWxlbWVudDo6c2FuZGJveCgp
CiB7CiAgICAgaWYgKCFtX3NhbmRib3gpCi0gICAgICAgIG1fc2FuZGJveCA9IHN0ZDo6bWFrZV91
bmlxdWU8RE9NVG9rZW5MaXN0PigqdGhpcywgc2FuZGJveEF0dHIsIFtdKFN0cmluZ1ZpZXcgdG9r
ZW4pIHsKKyAgICAgICAgbV9zYW5kYm94ID0gc3RkOjptYWtlX3VuaXF1ZTxET01Ub2tlbkxpc3Q+
KCp0aGlzLCBzYW5kYm94QXR0ciwgW10oRG9jdW1lbnQmLCBTdHJpbmdWaWV3IHRva2VuKSB7CiAg
ICAgICAgICAgICByZXR1cm4gU2VjdXJpdHlDb250ZXh0Ojppc1N1cHBvcnRlZFNhbmRib3hQb2xp
Y3kodG9rZW4pOwogICAgICAgICB9KTsKICAgICByZXR1cm4gKm1fc2FuZGJveDsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTExpbmtFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJD
b3JlL2h0bWwvSFRNTExpbmtFbGVtZW50LmNwcAppbmRleCBlMDFiNmUzYjRjOC4uZTdkMGY3Y2M3
NDIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTExpbmtFbGVtZW50LmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxMaW5rRWxlbWVudC5jcHAKQEAgLTE1Niw3ICsx
NTYsNyBAQCB2b2lkIEhUTUxMaW5rRWxlbWVudDo6c2V0RGlzYWJsZWRTdGF0ZShib29sIGRpc2Fi
bGVkKQogdm9pZCBIVE1MTGlua0VsZW1lbnQ6OnBhcnNlQXR0cmlidXRlKGNvbnN0IFF1YWxpZmll
ZE5hbWUmIG5hbWUsIGNvbnN0IEF0b21pY1N0cmluZyYgdmFsdWUpCiB7CiAgICAgaWYgKG5hbWUg
PT0gcmVsQXR0cikgewotICAgICAgICBtX3JlbEF0dHJpYnV0ZSA9IExpbmtSZWxBdHRyaWJ1dGUo
dmFsdWUpOworICAgICAgICBtX3JlbEF0dHJpYnV0ZSA9IExpbmtSZWxBdHRyaWJ1dGUoZG9jdW1l
bnQoKSwgdmFsdWUpOwogICAgICAgICBpZiAobV9yZWxMaXN0KQogICAgICAgICAgICAgbV9yZWxM
aXN0LT5hc3NvY2lhdGVkQXR0cmlidXRlVmFsdWVDaGFuZ2VkKHZhbHVlKTsKICAgICAgICAgcHJv
Y2VzcygpOwpAQCAtNDk4LDggKzQ5OCw4IEBAIHZvaWQgSFRNTExpbmtFbGVtZW50OjpkaXNwYXRj
aFBlbmRpbmdFdmVudChMaW5rRXZlbnRTZW5kZXIqIGV2ZW50U2VuZGVyKQogRE9NVG9rZW5MaXN0
JiBIVE1MTGlua0VsZW1lbnQ6OnJlbExpc3QoKQogewogICAgIGlmICghbV9yZWxMaXN0KSAKLSAg
ICAgICAgbV9yZWxMaXN0ID0gc3RkOjptYWtlX3VuaXF1ZTxET01Ub2tlbkxpc3Q+KCp0aGlzLCBI
VE1MTmFtZXM6OnJlbEF0dHIsIFtdKFN0cmluZ1ZpZXcgdG9rZW4pIHsKLSAgICAgICAgICAgIHJl
dHVybiBMaW5rUmVsQXR0cmlidXRlOjppc1N1cHBvcnRlZCh0b2tlbik7CisgICAgICAgIG1fcmVs
TGlzdCA9IHN0ZDo6bWFrZV91bmlxdWU8RE9NVG9rZW5MaXN0PigqdGhpcywgSFRNTE5hbWVzOjpy
ZWxBdHRyLCBbXShEb2N1bWVudCYgZG9jdW1lbnQsIFN0cmluZ1ZpZXcgdG9rZW4pIHsKKyAgICAg
ICAgICAgIHJldHVybiBMaW5rUmVsQXR0cmlidXRlOjppc1N1cHBvcnRlZChkb2N1bWVudCwgdG9r
ZW4pOwogICAgICAgICB9KTsKICAgICByZXR1cm4gKm1fcmVsTGlzdDsKIH0KZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2h0bWwvTGlua1JlbEF0dHJpYnV0ZS5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9odG1sL0xpbmtSZWxBdHRyaWJ1dGUuY3BwCmluZGV4IDg2NmFmZDhlNWViLi41NzJiZGIzNGM1
OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9MaW5rUmVsQXR0cmlidXRlLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0xpbmtSZWxBdHRyaWJ1dGUuY3BwCkBAIC0zMiw4ICsz
MiwxMCBAQAogI2luY2x1ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUgIkxpbmtSZWxBdHRyaWJ1dGUu
aCIKIAorI2luY2x1ZGUgIkRvY3VtZW50LmgiCiAjaW5jbHVkZSAiTGlua0ljb25UeXBlLmgiCiAj
aW5jbHVkZSAiUnVudGltZUVuYWJsZWRGZWF0dXJlcy5oIgorI2luY2x1ZGUgIlNldHRpbmdzLmgi
CiAjaW5jbHVkZSA8d3RmL3RleHQvU3RyaW5nVmlldy5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L1dU
RlN0cmluZy5oPgogCkBAIC00NCw3ICs0Niw3IEBAIExpbmtSZWxBdHRyaWJ1dGU6OkxpbmtSZWxB
dHRyaWJ1dGUoKQogfQogCiAvLyBLZWVwIExpbmtSZWxBdHRyaWJ1dGU6OmlzU3VwcG9ydGVkKCkg
aW4gc3luYyB3aGVuIHVwZGF0aW5nIHRoaXMgY29uc3RydWN0b3IuCi1MaW5rUmVsQXR0cmlidXRl
OjpMaW5rUmVsQXR0cmlidXRlKGNvbnN0IFN0cmluZyYgcmVsKQorTGlua1JlbEF0dHJpYnV0ZTo6
TGlua1JlbEF0dHJpYnV0ZShEb2N1bWVudCYgZG9jdW1lbnQsIGNvbnN0IFN0cmluZyYgcmVsKQog
ewogICAgIGlmIChlcXVhbExldHRlcnNJZ25vcmluZ0FTQ0lJQ2FzZShyZWwsICJzdHlsZXNoZWV0
IikpCiAgICAgICAgIGlzU3R5bGVTaGVldCA9IHRydWU7CkBAIC01Niw2ICs1OCw4IEBAIExpbmtS
ZWxBdHRyaWJ1dGU6OkxpbmtSZWxBdHRyaWJ1dGUoY29uc3QgU3RyaW5nJiByZWwpCiAgICAgICAg
IGljb25UeXBlID0gTGlua0ljb25UeXBlOjpUb3VjaFByZWNvbXBvc2VkSWNvbjsKICAgICBlbHNl
IGlmIChlcXVhbExldHRlcnNJZ25vcmluZ0FTQ0lJQ2FzZShyZWwsICJkbnMtcHJlZmV0Y2giKSkK
ICAgICAgICAgaXNETlNQcmVmZXRjaCA9IHRydWU7CisgICAgZWxzZSBpZiAoZG9jdW1lbnQuc2V0
dGluZ3MoKS5saW5rUHJlY29ubmVjdEVuYWJsZWQoKSAmJiBlcXVhbExldHRlcnNJZ25vcmluZ0FT
Q0lJQ2FzZShyZWwsICJwcmVjb25uZWN0IikpCisgICAgICAgIGlzTGlua1ByZWNvbm5lY3QgPSB0
cnVlOwogICAgIGVsc2UgaWYgKFJ1bnRpbWVFbmFibGVkRmVhdHVyZXM6OnNoYXJlZEZlYXR1cmVz
KCkubGlua1ByZWxvYWRFbmFibGVkKCkgJiYgZXF1YWxMZXR0ZXJzSWdub3JpbmdBU0NJSUNhc2Uo
cmVsLCAicHJlbG9hZCIpKQogICAgICAgICBpc0xpbmtQcmVsb2FkID0gdHJ1ZTsKICAgICBlbHNl
IGlmIChlcXVhbExldHRlcnNJZ25vcmluZ0FTQ0lJQ2FzZShyZWwsICJhbHRlcm5hdGUgc3R5bGVz
aGVldCIpIHx8IGVxdWFsTGV0dGVyc0lnbm9yaW5nQVNDSUlDYXNlKHJlbCwgInN0eWxlc2hlZXQg
YWx0ZXJuYXRlIikpIHsKQEAgLTg3LDcgKzkxLDcgQEAgTGlua1JlbEF0dHJpYnV0ZTo6TGlua1Jl
bEF0dHJpYnV0ZShjb25zdCBTdHJpbmcmIHJlbCkKIH0KIAogLy8gaHR0cHM6Ly9odG1sLnNwZWMu
d2hhdHdnLm9yZy8jbGlua1R5cGVzCi1ib29sIExpbmtSZWxBdHRyaWJ1dGU6OmlzU3VwcG9ydGVk
KFN0cmluZ1ZpZXcgYXR0cmlidXRlKQorYm9vbCBMaW5rUmVsQXR0cmlidXRlOjppc1N1cHBvcnRl
ZChEb2N1bWVudCYgZG9jdW1lbnQsIFN0cmluZ1ZpZXcgYXR0cmlidXRlKQogewogICAgIHN0YXRp
YyBjb25zdCBjaGFyKiBjb25zdCBzdXBwb3J0ZWRBdHRyaWJ1dGVzW10gPSB7CiAgICAgICAgICJh
bHRlcm5hdGUiLCAiZG5zLXByZWZldGNoIiwgImljb24iLCAic3R5bGVzaGVldCIsICJhcHBsZS10
b3VjaC1pY29uIiwgImFwcGxlLXRvdWNoLWljb24tcHJlY29tcG9zZWQiLApAQCAtMTAxLDYgKzEw
NSw5IEBAIGJvb2wgTGlua1JlbEF0dHJpYnV0ZTo6aXNTdXBwb3J0ZWQoU3RyaW5nVmlldyBhdHRy
aWJ1dGUpCiAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICB9CiAKKyAgICBpZiAoZG9jdW1l
bnQuc2V0dGluZ3MoKS5saW5rUHJlY29ubmVjdEVuYWJsZWQoKSAmJiBlcXVhbElnbm9yaW5nQVND
SUlDYXNlKGF0dHJpYnV0ZSwgInByZWNvbm5lY3QiKSkKKyAgICAgICAgcmV0dXJuIHRydWU7CisK
ICAgICBpZiAoUnVudGltZUVuYWJsZWRGZWF0dXJlczo6c2hhcmVkRmVhdHVyZXMoKS5saW5rUHJl
bG9hZEVuYWJsZWQoKSAmJiBlcXVhbElnbm9yaW5nQVNDSUlDYXNlKGF0dHJpYnV0ZSwgInByZWxv
YWQiKSkKICAgICAgICAgcmV0dXJuIHRydWU7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvTGlua1JlbEF0dHJpYnV0ZS5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9MaW5rUmVsQXR0
cmlidXRlLmgKaW5kZXggOGUyNjY5MjdlZGQuLmYxMmU5ODY2MzdjIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL0xpbmtSZWxBdHRyaWJ1dGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9o
dG1sL0xpbmtSZWxBdHRyaWJ1dGUuaApAQCAtMzcsNiArMzcsNyBAQAogCiBuYW1lc3BhY2UgV2Vi
Q29yZSB7CiAKK2NsYXNzIERvY3VtZW50OwogZW51bSBjbGFzcyBMaW5rSWNvblR5cGU7CiAKIHN0
cnVjdCBMaW5rUmVsQXR0cmlidXRlIHsKQEAgLTQ1LDE1ICs0NiwxNiBAQCBzdHJ1Y3QgTGlua1Jl
bEF0dHJpYnV0ZSB7CiAgICAgYm9vbCBpc0FsdGVybmF0ZSB7IGZhbHNlIH07CiAgICAgYm9vbCBp
c0ROU1ByZWZldGNoIHsgZmFsc2UgfTsKICAgICBib29sIGlzTGlua1ByZWxvYWQgeyBmYWxzZSB9
OworICAgIGJvb2wgaXNMaW5rUHJlY29ubmVjdCB7IGZhbHNlIH07CiAjaWYgRU5BQkxFKExJTktf
UFJFRkVUQ0gpCiAgICAgYm9vbCBpc0xpbmtQcmVmZXRjaCB7IGZhbHNlIH07CiAgICAgYm9vbCBp
c0xpbmtTdWJyZXNvdXJjZSB7IGZhbHNlIH07CiAjZW5kaWYKIAogICAgIExpbmtSZWxBdHRyaWJ1
dGUoKTsKLSAgICBleHBsaWNpdCBMaW5rUmVsQXR0cmlidXRlKGNvbnN0IFN0cmluZyYpOworICAg
IExpbmtSZWxBdHRyaWJ1dGUoRG9jdW1lbnQmLCBjb25zdCBTdHJpbmcmKTsKIAotICAgIHN0YXRp
YyBib29sIGlzU3VwcG9ydGVkKFN0cmluZ1ZpZXcpOworICAgIHN0YXRpYyBib29sIGlzU3VwcG9y
dGVkKERvY3VtZW50JiwgU3RyaW5nVmlldyk7CiB9OwogCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9odG1sL3BhcnNlci9IVE1MUHJlbG9hZFNjYW5uZXIuY3BwIGIvU291cmNlL1dlYkNv
cmUvaHRtbC9wYXJzZXIvSFRNTFByZWxvYWRTY2FubmVyLmNwcAppbmRleCAwNjAxZGMxMWRjYy4u
MDhkMjhjZGQ0MjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvcGFyc2VyL0hUTUxQ
cmVsb2FkU2Nhbm5lci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9wYXJzZXIvSFRNTFBy
ZWxvYWRTY2FubmVyLmNwcApAQCAtMjMyLDcgKzIzMiw3IEBAIHByaXZhdGU6CiAgICAgICAgICAg
ICBpZiAobWF0Y2goYXR0cmlidXRlTmFtZSwgaHJlZkF0dHIpKQogICAgICAgICAgICAgICAgIHNl
dFVybFRvTG9hZChhdHRyaWJ1dGVWYWx1ZSk7CiAgICAgICAgICAgICBlbHNlIGlmIChtYXRjaChh
dHRyaWJ1dGVOYW1lLCByZWxBdHRyKSkgewotICAgICAgICAgICAgICAgIExpbmtSZWxBdHRyaWJ1
dGUgcGFyc2VkQXR0cmlidXRlIHsgYXR0cmlidXRlVmFsdWUgfTsKKyAgICAgICAgICAgICAgICBM
aW5rUmVsQXR0cmlidXRlIHBhcnNlZEF0dHJpYnV0ZSB7IGRvY3VtZW50LCBhdHRyaWJ1dGVWYWx1
ZSB9OwogICAgICAgICAgICAgICAgIG1fbGlua0lzU3R5bGVTaGVldCA9IHJlbEF0dHJpYnV0ZUlz
U3R5bGVTaGVldChwYXJzZWRBdHRyaWJ1dGUpOwogICAgICAgICAgICAgICAgIG1fbGlua0lzUHJl
bG9hZCA9IHBhcnNlZEF0dHJpYnV0ZS5pc0xpbmtQcmVsb2FkOwogICAgICAgICAgICAgfSBlbHNl
IGlmIChtYXRjaChhdHRyaWJ1dGVOYW1lLCBtZWRpYUF0dHIpKQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvbG9hZGVyL0xpbmtMb2FkZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0xp
bmtMb2FkZXIuY3BwCmluZGV4IDJiMTYxMzI2NDMwLi42MzZjMjJkOWM5YiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvbG9hZGVyL0xpbmtMb2FkZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2xvYWRlci9MaW5rTG9hZGVyLmNwcApAQCAtNDcsOCArNDcsMTAgQEAKICNpbmNsdWRlICJMaW5r
SGVhZGVyLmgiCiAjaW5jbHVkZSAiTGlua1ByZWxvYWRSZXNvdXJjZUNsaWVudHMuaCIKICNpbmNs
dWRlICJMaW5rUmVsQXR0cmlidXRlLmgiCisjaW5jbHVkZSAiTG9hZGVyU3RyYXRlZ3kuaCIKICNp
bmNsdWRlICJNSU1FVHlwZVJlZ2lzdHJ5LmgiCiAjaW5jbHVkZSAiTWVkaWFRdWVyeUV2YWx1YXRv
ci5oIgorI2luY2x1ZGUgIlBsYXRmb3JtU3RyYXRlZ2llcy5oIgogI2luY2x1ZGUgIlJ1bnRpbWVF
bmFibGVkRmVhdHVyZXMuaCIKICNpbmNsdWRlICJTZXR0aW5ncy5oIgogI2luY2x1ZGUgIlN0eWxl
UmVzb2x2ZXIuaCIKQEAgLTEwMiw3ICsxMDQsNyBAQCB2b2lkIExpbmtMb2FkZXI6OmxvYWRMaW5r
c0Zyb21IZWFkZXIoY29uc3QgU3RyaW5nJiBoZWFkZXJWYWx1ZSwgY29uc3QgVVJMJiBiYXNlVQog
ICAgICAgICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgICB9CiAKLSAgICAgICAgTGlua1JlbEF0
dHJpYnV0ZSByZWxBdHRyaWJ1dGUoaGVhZGVyLnJlbCgpKTsKKyAgICAgICAgTGlua1JlbEF0dHJp
YnV0ZSByZWxBdHRyaWJ1dGUoZG9jdW1lbnQsIGhlYWRlci5yZWwoKSk7CiAgICAgICAgIFVSTCB1
cmwoYmFzZVVSTCwgaGVhZGVyLnVybCgpKTsKICAgICAgICAgLy8gU2FuaXR5IGNoZWNrIHRvIGF2
b2lkIHJlLWVudHJhbmN5IGhlcmUuCiAgICAgICAgIGlmIChlcXVhbElnbm9yaW5nRnJhZ21lbnRJ
ZGVudGlmaWVyKHVybCwgYmFzZVVSTCkpCkBAIC0yNTAsNiArMjUyLDE0IEBAIGJvb2wgTGlua0xv
YWRlcjo6bG9hZExpbmsoY29uc3QgTGlua1JlbEF0dHJpYnV0ZSYgcmVsQXR0cmlidXRlLCBjb25z
dCBVUkwmIGhyZWYsCiAgICAgICAgICAgICBkb2N1bWVudC5mcmFtZSgpLT5sb2FkZXIoKS5jbGll
bnQoKS5wcmVmZXRjaEROUyhocmVmLmhvc3QoKSk7CiAgICAgfQogCisgICAgaWYgKHJlbEF0dHJp
YnV0ZS5pc0xpbmtQcmVjb25uZWN0ICYmIGhyZWYuaXNWYWxpZCgpICYmICFocmVmLmlzRW1wdHko
KSkgeworICAgICAgICBBU1NFUlQoZG9jdW1lbnQuc2V0dGluZ3MoKS5saW5rUHJlY29ubmVjdEVu
YWJsZWQoKSk7CisgICAgICAgIFN0b3JlZENyZWRlbnRpYWxzUG9saWN5IHN0b3JhZ2VDcmVkZW50
aWFsc1BvbGljeSA9IFN0b3JlZENyZWRlbnRpYWxzUG9saWN5OjpVc2U7CisgICAgICAgIGlmIChl
cXVhbElnbm9yaW5nQVNDSUlDYXNlKGNyb3NzT3JpZ2luLCAiYW5vbnltb3VzIikgJiYgZG9jdW1l
bnQuc2VjdXJpdHlPcmlnaW4oKS5jYW5BY2Nlc3MoU2VjdXJpdHlPcmlnaW46OmNyZWF0ZShocmVm
KSkpCisgICAgICAgICAgICBzdG9yYWdlQ3JlZGVudGlhbHNQb2xpY3kgPSBTdG9yZWRDcmVkZW50
aWFsc1BvbGljeTo6RG9Ob3RVc2U7CisgICAgICAgIHBsYXRmb3JtU3RyYXRlZ2llcygpLT5sb2Fk
ZXJTdHJhdGVneSgpLT5wcmVjb25uZWN0VG8oaHJlZiwgc3RvcmFnZUNyZWRlbnRpYWxzUG9saWN5
KTsKKyAgICB9CisKICAgICBpZiAobV9jbGllbnQuc2hvdWxkTG9hZExpbmsoKSkgewogICAgICAg
ICBhdXRvIHJlc291cmNlQ2xpZW50ID0gcHJlbG9hZElmTmVlZGVkKHJlbEF0dHJpYnV0ZSwgaHJl
ZiwgZG9jdW1lbnQsIGFzLCBtZWRpYSwgbWltZVR5cGUsIGNyb3NzT3JpZ2luLCB0aGlzKTsKICAg
ICAgICAgaWYgKHJlc291cmNlQ2xpZW50KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9h
ZGVyL0xvYWRlclN0cmF0ZWd5LmggYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvTG9hZGVyU3RyYXRl
Z3kuaAppbmRleCA1M2YzYmZiMjY2Ni4uZTAwZTM0YzFmMzggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2xvYWRlci9Mb2FkZXJTdHJhdGVneS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRl
ci9Mb2FkZXJTdHJhdGVneS5oCkBAIC02Nyw2ICs2Nyw4IEBAIHB1YmxpYzoKICAgICB1c2luZyBQ
aW5nTG9hZENvbXBsZXRpb25IYW5kbGVyID0gV1RGOjpGdW5jdGlvbjx2b2lkKGNvbnN0IFJlc291
cmNlRXJyb3ImKT47CiAgICAgdmlydHVhbCB2b2lkIHN0YXJ0UGluZ0xvYWQoRnJhbWUmLCBSZXNv
dXJjZVJlcXVlc3QmLCBjb25zdCBIVFRQSGVhZGVyTWFwJiBvcmlnaW5hbFJlcXVlc3RIZWFkZXJz
LCBjb25zdCBGZXRjaE9wdGlvbnMmLCBQaW5nTG9hZENvbXBsZXRpb25IYW5kbGVyJiYgPSB7IH0p
ID0gMDsKIAorICAgIHZpcnR1YWwgdm9pZCBwcmVjb25uZWN0VG8oY29uc3QgVVJMJiwgU3RvcmVk
Q3JlZGVudGlhbHNQb2xpY3kpID0gMDsKKwogICAgIHZpcnR1YWwgdm9pZCBzdG9yZURlcml2ZWRE
YXRhVG9DYWNoZShjb25zdCBTSEExOjpEaWdlc3QmIGJvZHlLZXksIGNvbnN0IFN0cmluZyYgdHlw
ZSwgY29uc3QgU3RyaW5nJiBwYXJ0aXRpb24sIFdlYkNvcmU6OlNoYXJlZEJ1ZmZlciYpID0gMDsK
IAogICAgIHZpcnR1YWwgdm9pZCBzZXRDYXB0dXJlRXh0cmFOZXR3b3JrTG9hZE1ldHJpY3NFbmFi
bGVkKGJvb2wpID0gMDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvU2V0dGluZ3Mu
aW4gYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1NldHRpbmdzLmluCmluZGV4IDkyNzdjMGE3Y2U1Li5k
ODE1MjZhYWNjMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9TZXR0aW5ncy5pbgor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1NldHRpbmdzLmluCkBAIC0yOTEsNiArMjkxLDggQEAg
bGFuZ0F0dHJpYnV0ZUF3YXJlRm9ybUNvbnRyb2xVSUVuYWJsZWQgaW5pdGlhbD1mYWxzZQogCiBz
dWJyZXNvdXJjZUludGVncml0eUVuYWJsZWQgaW5pdGlhbD10cnVlCiAKK2xpbmtQcmVjb25uZWN0
RW5hYmxlZCBpbml0aWFsPWZhbHNlCisKIGJlYWNvbkFQSUVuYWJsZWQgaW5pdGlhbD1mYWxzZQog
CiBjb25zdGFudFByb3BlcnRpZXNFbmFibGVkIGluaXRpYWw9ZmFsc2UKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvU3RvcmVkQ3JlZGVudGlhbHNQb2xpY3kuaCBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvU3RvcmVkQ3JlZGVudGlhbHNQb2xpY3ku
aAppbmRleCA3ZTJiZWM3YzY5My4uMzcxZWUzMzQ2N2UgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL25ldHdvcmsvU3RvcmVkQ3JlZGVudGlhbHNQb2xpY3kuaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL1N0b3JlZENyZWRlbnRpYWxzUG9saWN5LmgKQEAg
LTI3LDcgKzI3LDcgQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1lbnVtIFN0b3JlZENyZWRl
bnRpYWxzUG9saWN5IHsKK2VudW0gY2xhc3MgU3RvcmVkQ3JlZGVudGlhbHNQb2xpY3kgewogICAg
IERvTm90VXNlLAogICAgIFVzZSwKIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdv
cmtQcm9jZXNzL05ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmNwcCBiL1NvdXJjZS9XZWJL
aXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuY3BwCmluZGV4
IDcwM2Q1OTFjMjRiLi5hMTQ4NjM5MmNhMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3
b3JrUHJvY2Vzcy9OZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5jcHAKKysrIGIvU291cmNl
L1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5jcHAK
QEAgLTU2LDYgKzU2LDcgQEAKIAogI2lmIFVTRShORVRXT1JLX1NFU1NJT04pCiAjaW5jbHVkZSAi
UGluZ0xvYWQuaCIKKyNpbmNsdWRlICJQcmVjb25uZWN0VGFzay5oIgogI2VuZGlmCiAKIHVzaW5n
IG5hbWVzcGFjZSBXZWJDb3JlOwpAQCAtMjg3LDYgKzI4OCwxNSBAQCB2b2lkIE5ldHdvcmtDb25u
ZWN0aW9uVG9XZWJQcm9jZXNzOjpwcmVmZXRjaEROUyhjb25zdCBTdHJpbmcmIGhvc3RuYW1lKQog
ICAgIE5ldHdvcmtQcm9jZXNzOjpzaW5nbGV0b24oKS5wcmVmZXRjaEROUyhob3N0bmFtZSk7CiB9
CiAKK3ZvaWQgTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6OnByZWNvbm5lY3RUbyhjb25z
dCBVUkwmIHVybCwgV2ViQ29yZTo6U3RvcmVkQ3JlZGVudGlhbHNQb2xpY3kgc3RvcmFnZUNyZWRl
bnRpYWxzUG9saWN5KQoreworI2lmIEVOQUJMRShORVRXT1JLX1NFU1NJT04pCisgICAgbmV3IFBy
ZWNvbm5lY3RUYXNrKHVybCwgc3RvcmVkQ3JlZGVudGlhbHNQb2xpY3kpOworI2Vsc2UKKyAgICBV
TlVTRURfUEFSQU0odXJsKTsKKyNlbmRpZgorfQorCiBzdGF0aWMgTmV0d29ya1N0b3JhZ2VTZXNz
aW9uJiBzdG9yYWdlU2Vzc2lvbihQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQpCiB7CiAgICAgQVNT
RVJUKHNlc3Npb25JRC5pc1ZhbGlkKCkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3
b3JrUHJvY2Vzcy9OZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5oIGIvU291cmNlL1dlYktp
dC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5oCmluZGV4IGNk
MjgwNDJjZmZiLi4zOTU4NTM5NDNiMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3Jr
UHJvY2Vzcy9OZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5oCisrKyBiL1NvdXJjZS9XZWJL
aXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuaApAQCAtOTAs
NiArOTAsNyBAQCBwcml2YXRlOgogICAgIHZvaWQgcGVyZm9ybVN5bmNocm9ub3VzTG9hZChjb25z
dCBOZXR3b3JrUmVzb3VyY2VMb2FkUGFyYW1ldGVycyYsIFJlZjxNZXNzYWdlczo6TmV0d29ya0Nv
bm5lY3Rpb25Ub1dlYlByb2Nlc3M6OlBlcmZvcm1TeW5jaHJvbm91c0xvYWQ6OkRlbGF5ZWRSZXBs
eT4mJik7CiAgICAgdm9pZCBsb2FkUGluZyhOZXR3b3JrUmVzb3VyY2VMb2FkUGFyYW1ldGVycyYm
LCBXZWJDb3JlOjpIVFRQSGVhZGVyTWFwJiYgb3JpZ2luYWxSZXF1ZXN0SGVhZGVycyk7CiAgICAg
dm9pZCBwcmVmZXRjaEROUyhjb25zdCBTdHJpbmcmKTsKKyAgICB2b2lkIHByZWNvbm5lY3RUbyhj
b25zdCBXZWJDb3JlOjpVUkwmLCBXZWJDb3JlOjpTdG9yZWRDcmVkZW50aWFsc1BvbGljeSk7CiAK
ICAgICB2b2lkIHJlbW92ZUxvYWRJZGVudGlmaWVyKFJlc291cmNlTG9hZElkZW50aWZpZXIpOwog
ICAgIHZvaWQgc2V0RGVmZXJzTG9hZGluZyhSZXNvdXJjZUxvYWRJZGVudGlmaWVyLCBib29sKTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0Nvbm5lY3Rp
b25Ub1dlYlByb2Nlc3MubWVzc2FnZXMuaW4gYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNz
L05ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzLm1lc3NhZ2VzLmluCmluZGV4IGFiZjBmY2Nh
MDAyLi5mNmNmNGMzZjAzNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vz
cy9OZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5tZXNzYWdlcy5pbgorKysgYi9Tb3VyY2Uv
V2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzLm1lc3Nh
Z2VzLmluCkBAIC0yOCw2ICsyOCw3IEBAIG1lc3NhZ2VzIC0+IE5ldHdvcmtDb25uZWN0aW9uVG9X
ZWJQcm9jZXNzIExlZ2FjeVJlY2VpdmVyIHsKICAgICBSZW1vdmVMb2FkSWRlbnRpZmllcih1aW50
NjRfdCByZXNvdXJjZUxvYWRJZGVudGlmaWVyKQogICAgIFNldERlZmVyc0xvYWRpbmcodWludDY0
X3QgcmVzb3VyY2VMb2FkSWRlbnRpZmllciwgYm9vbCBkZWZlcnMpCiAgICAgUHJlZmV0Y2hETlMo
U3RyaW5nIGhvc3RuYW1lKQorICAgIFByZWNvbm5lY3RUbyhXZWJDb3JlOjpVUkwgdXJsLCBlbnVt
IFdlYkNvcmU6OlN0b3JlZENyZWRlbnRpYWxzUG9saWN5IHN0b3JlZENyZWRlbnRpYWxzUG9saWN5
KTsKIAogICAgIFN0YXJ0RG93bmxvYWQoUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBXZWJLaXQ6
OkRvd25sb2FkSUQgZG93bmxvYWRJRCwgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0IHJlcXVlc3Qs
IFN0cmluZyBzdWdnZXN0ZWROYW1lKQogICAgIENvbnZlcnRNYWluUmVzb3VyY2VMb2FkVG9Eb3du
bG9hZChQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIHVpbnQ2NF90IG1haW5SZXNvdXJjZUxvYWRJ
ZGVudGlmaWVyLCBXZWJLaXQ6OkRvd25sb2FkSUQgZG93bmxvYWRJRCwgV2ViQ29yZTo6UmVzb3Vy
Y2VSZXF1ZXN0IHJlcXVlc3QsIFdlYkNvcmU6OlJlc291cmNlUmVzcG9uc2UgcmVzcG9uc2UpCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtEYXRhVGFzay5j
cHAgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtEYXRhVGFzay5jcHAKaW5k
ZXggYzkzZjhmZWM5ZmEuLjJjOWRmZDhmMzY0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05l
dHdvcmtQcm9jZXNzL05ldHdvcmtEYXRhVGFzay5jcHAKKysrIGIvU291cmNlL1dlYktpdC9OZXR3
b3JrUHJvY2Vzcy9OZXR3b3JrRGF0YVRhc2suY3BwCkBAIC01Myw3ICs1Myw3IEBAIFJlZjxOZXR3
b3JrRGF0YVRhc2s+IE5ldHdvcmtEYXRhVGFzazo6Y3JlYXRlKE5ldHdvcmtTZXNzaW9uJiBzZXNz
aW9uLCBOZXR3b3JrRGF0CiAgICAgICAgIHJldHVybiBOZXR3b3JrRGF0YVRhc2tCbG9iOjpjcmVh
dGUoc2Vzc2lvbiwgY2xpZW50LCBwYXJhbWV0ZXJzLnJlcXVlc3QsIHBhcmFtZXRlcnMuY29udGVu
dFNuaWZmaW5nUG9saWN5LCBwYXJhbWV0ZXJzLmJsb2JGaWxlUmVmZXJlbmNlcyk7CiAKICNpZiBQ
TEFURk9STShDT0NPQSkKLSAgICByZXR1cm4gTmV0d29ya0RhdGFUYXNrQ29jb2E6OmNyZWF0ZShz
ZXNzaW9uLCBjbGllbnQsIHBhcmFtZXRlcnMucmVxdWVzdCwgcGFyYW1ldGVycy5zdG9yZWRDcmVk
ZW50aWFsc1BvbGljeSwgcGFyYW1ldGVycy5jb250ZW50U25pZmZpbmdQb2xpY3ksIHBhcmFtZXRl
cnMuc2hvdWxkQ2xlYXJSZWZlcnJlck9uSFRUUFNUb0hUVFBSZWRpcmVjdCk7CisgICAgcmV0dXJu
IE5ldHdvcmtEYXRhVGFza0NvY29hOjpjcmVhdGUoc2Vzc2lvbiwgY2xpZW50LCBwYXJhbWV0ZXJz
LnJlcXVlc3QsIHBhcmFtZXRlcnMuc3RvcmVkQ3JlZGVudGlhbHNQb2xpY3ksIHBhcmFtZXRlcnMu
Y29udGVudFNuaWZmaW5nUG9saWN5LCBwYXJhbWV0ZXJzLnNob3VsZENsZWFyUmVmZXJyZXJPbkhU
VFBTVG9IVFRQUmVkaXJlY3QsIHBhcmFtZXRlcnMuc2hvdWxkUHJlY29ubmVjdE9ubHkpOwogI2Vu
ZGlmCiAjaWYgVVNFKFNPVVApCiAgICAgcmV0dXJuIE5ldHdvcmtEYXRhVGFza1NvdXA6OmNyZWF0
ZShzZXNzaW9uLCBjbGllbnQsIHBhcmFtZXRlcnMucmVxdWVzdCwgcGFyYW1ldGVycy5zdG9yZWRD
cmVkZW50aWFsc1BvbGljeSwgcGFyYW1ldGVycy5jb250ZW50U25pZmZpbmdQb2xpY3ksIHBhcmFt
ZXRlcnMuc2hvdWxkQ2xlYXJSZWZlcnJlck9uSFRUUFNUb0hUVFBSZWRpcmVjdCk7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtMb2FkUGFyYW1ldGVycy5o
IGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrTG9hZFBhcmFtZXRlcnMuaApp
bmRleCAxZmJkMmRhNDkxZC4uMjVhYTUwNTgwZGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
TmV0d29ya1Byb2Nlc3MvTmV0d29ya0xvYWRQYXJhbWV0ZXJzLmgKKysrIGIvU291cmNlL1dlYktp
dC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrTG9hZFBhcmFtZXRlcnMuaApAQCAtMzMsNiArMzMsOCBA
QAogCiBuYW1lc3BhY2UgV2ViS2l0IHsKIAorZW51bSBjbGFzcyBQcmVjb25uZWN0T25seSB7IE5v
LCBZZXMgfTsKKwogY2xhc3MgTmV0d29ya0xvYWRQYXJhbWV0ZXJzIHsKIHB1YmxpYzoKICAgICB1
aW50NjRfdCB3ZWJQYWdlSUQgeyAwIH07CkBAIC00OSw2ICs1MSw3IEBAIHB1YmxpYzoKICNpZiBV
U0UoTkVUV09SS19TRVNTSU9OKQogICAgIFZlY3RvcjxSZWZQdHI8V2ViQ29yZTo6QmxvYkRhdGFG
aWxlUmVmZXJlbmNlPj4gYmxvYkZpbGVSZWZlcmVuY2VzOwogI2VuZGlmCisgICAgUHJlY29ubmVj
dE9ubHkgc2hvdWxkUHJlY29ubmVjdE9ubHkgeyBQcmVjb25uZWN0T25seTo6Tm8gfTsKIH07CiAK
IH0gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3Jr
UHJvY2Vzcy9QcmVjb25uZWN0VGFzay5jcHAgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNz
L1ByZWNvbm5lY3RUYXNrLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw
MC4uMDkwZjNlOWNlY2UKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQ
cm9jZXNzL1ByZWNvbm5lY3RUYXNrLmNwcApAQCAtMCwwICsxLDEyMCBAQAorLyoKKyAqIENvcHly
aWdodCAoQykgMjAxNyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVk
aXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3
aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUg
Zm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMg
b2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
LgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24g
YW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisg
KgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09O
VFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFO
VElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJS
QU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisg
KiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9S
IElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1Qs
IElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFN
QUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBT
VUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklU
UzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFO
WSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJ
QUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICog
QVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4g
SUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisK
KyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJQcmVjb25uZWN0VGFzay5oIgorCisjaWYg
RU5BQkxFKFNFUlZFUl9QUkVDT05ORUNUKQorCisjaW5jbHVkZSAiQXV0aGVudGljYXRpb25NYW5h
Z2VyLmgiCisjaW5jbHVkZSAiTG9nZ2luZy5oIgorI2luY2x1ZGUgIk5ldHdvcmtMb2FkUGFyYW1l
dGVycy5oIgorI2luY2x1ZGUgIk5ldHdvcmtTZXNzaW9uLmgiCisjaW5jbHVkZSA8V2ViQ29yZS9B
dXRoZW50aWNhdGlvbkNoYWxsZW5nZS5oPgorI2luY2x1ZGUgPFdlYkNvcmUvUmVzb3VyY2VFcnJv
ci5oPgorCisjaWYgUExBVEZPUk0oQ09DT0EpCisjaW5jbHVkZSAiTmV0d29ya0RhdGFUYXNrQ29j
b2EuaCIKKyNlbmRpZgorCituYW1lc3BhY2UgV2ViS2l0IHsKKwordXNpbmcgbmFtZXNwYWNlIFdl
YkNvcmU7CisKK1ByZWNvbm5lY3RUYXNrOjpQcmVjb25uZWN0VGFzayhjb25zdCBVUkwmIHVybCwg
V2ViQ29yZTo6U3RvcmVkQ3JlZGVudGlhbHNQb2xpY3kgc3RvcmVkQ3JlZGVudGlhbHNQb2xpY3kp
Cit7CisgICAgUkVMRUFTRV9MT0coTmV0d29yaywgIiVwIC0gUHJlY29ubmVjdFRhc2s6OlByZWNv
bm5lY3RUYXNrKCkiLCB0aGlzKTsKKyAgICBOZXR3b3JrTG9hZFBhcmFtZXRlcnMgcGFyYW1ldGVy
czsKKyAgICBwYXJhbWV0ZXJzLnJlcXVlc3QgPSBSZXNvdXJjZVJlcXVlc3QodXJsKTsKKyAgICBw
YXJhbWV0ZXJzLnNob3VsZFByZWNvbm5lY3RPbmx5ID0gUHJlY29ubmVjdE9ubHk6OlllczsKKyAg
ICBwYXJhbWV0ZXJzLnN0b3JlZENyZWRlbnRpYWxzUG9saWN5ID0gc3RvcmVkQ3JlZGVudGlhbHNQ
b2xpY3k7CisgICAgbV90YXNrID0gTmV0d29ya0RhdGFUYXNrOjpjcmVhdGUoTmV0d29ya1Nlc3Np
b246OmRlZmF1bHRTZXNzaW9uKCksICp0aGlzLCBwYXJhbWV0ZXJzKTsKKyAgICBtX3Rhc2stPnJl
c3VtZSgpOworfQorCitQcmVjb25uZWN0VGFzazo6flByZWNvbm5lY3RUYXNrKCkKK3sKKyAgICBB
U1NFUlQobV90YXNrLT5jbGllbnQoKSA9PSB0aGlzKTsKKyAgICBtX3Rhc2stPmNsZWFyQ2xpZW50
KCk7CisgICAgbV90YXNrLT5jYW5jZWwoKTsKK30KKwordm9pZCBQcmVjb25uZWN0VGFzazo6d2ls
bFBlcmZvcm1IVFRQUmVkaXJlY3Rpb24oV2ViQ29yZTo6UmVzb3VyY2VSZXNwb25zZSYmLCBXZWJD
b3JlOjpSZXNvdXJjZVJlcXVlc3QmJiwgUmVkaXJlY3RDb21wbGV0aW9uSGFuZGxlciYmKQorewor
ICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOworfQorCit2b2lkIFByZWNvbm5lY3RUYXNrOjpkaWRS
ZWNlaXZlQ2hhbGxlbmdlKGNvbnN0IFdlYkNvcmU6OkF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlJiBj
aGFsbGVuZ2UsIENoYWxsZW5nZUNvbXBsZXRpb25IYW5kbGVyJiYgY29tcGxldGlvbkhhbmRsZXIp
Cit7CisgICAgaWYgKGNoYWxsZW5nZS5wcm90ZWN0aW9uU3BhY2UoKS5hdXRoZW50aWNhdGlvblNj
aGVtZSgpID09IFByb3RlY3Rpb25TcGFjZUF1dGhlbnRpY2F0aW9uU2NoZW1lU2VydmVyVHJ1c3RF
dmFsdWF0aW9uUmVxdWVzdGVkKSB7CisgICAgICAgIGlmIChtX3Rhc2sgJiYgbV90YXNrLT5hbGxv
d3NTcGVjaWZpY0hUVFBTQ2VydGlmaWNhdGVGb3JIb3N0KGNoYWxsZW5nZSkpCisgICAgICAgICAg
ICBjb21wbGV0aW9uSGFuZGxlcihBdXRoZW50aWNhdGlvbkNoYWxsZW5nZURpc3Bvc2l0aW9uOjpV
c2VDcmVkZW50aWFsLCBzZXJ2ZXJUcnVzdENyZWRlbnRpYWwoY2hhbGxlbmdlKSk7CisgICAgICAg
IGVsc2UKKyAgICAgICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKEF1dGhlbnRpY2F0aW9uQ2hhbGxl
bmdlRGlzcG9zaXRpb246OlJlamVjdFByb3RlY3Rpb25TcGFjZSwgeyB9KTsKKyAgICAgICAgcmV0
dXJuOworICAgIH0KKyAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKK30KKwordm9pZCBQcmVjb25u
ZWN0VGFzazo6ZGlkUmVjZWl2ZVJlc3BvbnNlTmV0d29ya1Nlc3Npb24oV2ViQ29yZTo6UmVzb3Vy
Y2VSZXNwb25zZSYmLCBSZXNwb25zZUNvbXBsZXRpb25IYW5kbGVyJiYpCit7CisgICAgQVNTRVJU
X05PVF9SRUFDSEVEKCk7Cit9CisKK3ZvaWQgUHJlY29ubmVjdFRhc2s6OmRpZFJlY2VpdmVEYXRh
KFJlZjxXZWJDb3JlOjpTaGFyZWRCdWZmZXI+JiYpCit7CisgICAgQVNTRVJUX05PVF9SRUFDSEVE
KCk7Cit9CisKK3ZvaWQgUHJlY29ubmVjdFRhc2s6OmRpZENvbXBsZXRlV2l0aEVycm9yKGNvbnN0
IFdlYkNvcmU6OlJlc291cmNlRXJyb3ImIGVycm9yLCBjb25zdCBXZWJDb3JlOjpOZXR3b3JrTG9h
ZE1ldHJpY3MmKQoreworICAgIGlmIChlcnJvci5pc051bGwoKSkKKyAgICAgICAgUkVMRUFTRV9M
T0coTmV0d29yaywgIiVwIC0gUHJlY29ubmVjdFRhc2s6OmRpZENvbXBsZXRlIiwgdGhpcyk7Cisg
ICAgZWxzZQorICAgICAgICBSRUxFQVNFX0xPRyhOZXR3b3JrLCAiJXAgLSBQcmVjb25uZWN0VGFz
azo6ZGlkQ29tcGxldGVXaXRoRXJyb3IsIGVycm9yX2NvZGU6ICVkIiwgdGhpcywgZXJyb3IuZXJy
b3JDb2RlKCkpOworCisgICAgZGVsZXRlIHRoaXM7Cit9CisKK3ZvaWQgUHJlY29ubmVjdFRhc2s6
OmRpZFNlbmREYXRhKHVpbnQ2NF90IHRvdGFsQnl0ZXNTZW50LCB1aW50NjRfdCB0b3RhbEJ5dGVz
RXhwZWN0ZWRUb1NlbmQpCit7CisgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7Cit9CisKK3ZvaWQg
UHJlY29ubmVjdFRhc2s6Ondhc0Jsb2NrZWQoKQoreworICAgIFJFTEVBU0VfTE9HKE5ldHdvcmss
ICIlcCAtIFByZWNvbm5lY3RUYXNrOjp3YXNCbG9ja2VkKCkiLCB0aGlzKTsKKyAgICBkZWxldGUg
dGhpczsKK30KKwordm9pZCBQcmVjb25uZWN0VGFzazo6Y2Fubm90U2hvd1VSTCgpCit7CisgICAg
UkVMRUFTRV9MT0coTmV0d29yaywgIiVwIC0gUHJlY29ubmVjdFRhc2s6OmNhbm5vdFNob3dVUkwo
KSIsIHRoaXMpOworICAgIGRlbGV0ZSB0aGlzOworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQK
KworI2VuZGlmIC8vIEVOQUJMRShTRVJWRVJfUFJFQ09OTkVDVCkKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvUHJlY29ubmVjdFRhc2suaCBiL1NvdXJjZS9XZWJLaXQv
TmV0d29ya1Byb2Nlc3MvUHJlY29ubmVjdFRhc2suaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMC4uOTZiNWI2Nzc3ODQKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2Vi
S2l0L05ldHdvcmtQcm9jZXNzL1ByZWNvbm5lY3RUYXNrLmgKQEAgLTAsMCArMSw1NSBAQAorLyoK
KyAqIENvcHlyaWdodCAoQykgMjAxNyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisg
KgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywg
d2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQg
dGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3Ry
aWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAor
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVw
cm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3Vt
ZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmli
dXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFO
RCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJ
RUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1Q
TElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJU
SUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBM
RSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwg
SU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVF
TlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5U
IE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwg
T1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQg
QU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwg
U1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJX
SVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdB
UkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdF
LgorICovCisKKyNwcmFnbWEgb25jZQorCisjaWYgRU5BQkxFKFNFUlZFUl9QUkVDT05ORUNUKQor
CisjaW5jbHVkZSAiTmV0d29ya0RhdGFUYXNrLmgiCisKK25hbWVzcGFjZSBXZWJLaXQgeworCitj
bGFzcyBQcmVjb25uZWN0VGFzayBmaW5hbCA6IHByaXZhdGUgTmV0d29ya0RhdGFUYXNrQ2xpZW50
IHsKK3B1YmxpYzoKKyAgICBleHBsaWNpdCBQcmVjb25uZWN0VGFzayhjb25zdCBXZWJDb3JlOjpV
UkwmLCBXZWJDb3JlOjpTdG9yZWRDcmVkZW50aWFsc1BvbGljeSk7CisgICAgflByZWNvbm5lY3RU
YXNrKCk7CisKK3ByaXZhdGU6CisgICAgLy8gTmV0d29ya0RhdGFUYXNrQ2xpZW50LgorICAgIHZv
aWQgd2lsbFBlcmZvcm1IVFRQUmVkaXJlY3Rpb24oV2ViQ29yZTo6UmVzb3VyY2VSZXNwb25zZSYm
LCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmJiwgUmVkaXJlY3RDb21wbGV0aW9uSGFuZGxlciYm
KSBmaW5hbDsKKyAgICB2b2lkIGRpZFJlY2VpdmVDaGFsbGVuZ2UoY29uc3QgV2ViQ29yZTo6QXV0
aGVudGljYXRpb25DaGFsbGVuZ2UmLCBDaGFsbGVuZ2VDb21wbGV0aW9uSGFuZGxlciYmKSBmaW5h
bDsKKyAgICB2b2lkIGRpZFJlY2VpdmVSZXNwb25zZU5ldHdvcmtTZXNzaW9uKFdlYkNvcmU6OlJl
c291cmNlUmVzcG9uc2UmJiwgUmVzcG9uc2VDb21wbGV0aW9uSGFuZGxlciYmKSBmaW5hbDsKKyAg
ICB2b2lkIGRpZFJlY2VpdmVEYXRhKFJlZjxXZWJDb3JlOjpTaGFyZWRCdWZmZXI+JiYpIGZpbmFs
OworICAgIHZvaWQgZGlkQ29tcGxldGVXaXRoRXJyb3IoY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VF
cnJvciYsIGNvbnN0IFdlYkNvcmU6Ok5ldHdvcmtMb2FkTWV0cmljcyYpIGZpbmFsOworICAgIHZv
aWQgZGlkU2VuZERhdGEodWludDY0X3QgdG90YWxCeXRlc1NlbnQsIHVpbnQ2NF90IHRvdGFsQnl0
ZXNFeHBlY3RlZFRvU2VuZCkgZmluYWw7CisgICAgdm9pZCB3YXNCbG9ja2VkKCkgZmluYWw7Cisg
ICAgdm9pZCBjYW5ub3RTaG93VVJMKCkgZmluYWw7CisKKyAgICBSZWZQdHI8TmV0d29ya0RhdGFU
YXNrPiBtX3Rhc2s7Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQKKworI2VuZGlmIC8vIEVO
QUJMRShTRVJWRVJfUFJFQ09OTkVDVCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29y
a1Byb2Nlc3MvY29jb2EvTmV0d29ya0RhdGFUYXNrQ29jb2EuaCBiL1NvdXJjZS9XZWJLaXQvTmV0
d29ya1Byb2Nlc3MvY29jb2EvTmV0d29ya0RhdGFUYXNrQ29jb2EuaAppbmRleCBjZGY0MzI0YzA2
Yi4uMjEyYTlhMDhmYjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mv
Y29jb2EvTmV0d29ya0RhdGFUYXNrQ29jb2EuaAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQ
cm9jZXNzL2NvY29hL05ldHdvcmtEYXRhVGFza0NvY29hLmgKQEAgLTI4LDYgKzI4LDcgQEAKICNp
ZiBVU0UoTkVUV09SS19TRVNTSU9OKQogCiAjaW5jbHVkZSAiTmV0d29ya0RhdGFUYXNrLmgiCisj
aW5jbHVkZSAiTmV0d29ya0xvYWRQYXJhbWV0ZXJzLmgiCiAjaW5jbHVkZSA8V2ViQ29yZS9OZXR3
b3JrTG9hZE1ldHJpY3MuaD4KICNpbmNsdWRlIDx3dGYvUmV0YWluUHRyLmg+CiAKQEAgLTQwLDkg
KzQxLDkgQEAgY2xhc3MgTmV0d29ya1Nlc3Npb25Db2NvYTsKIGNsYXNzIE5ldHdvcmtEYXRhVGFz
a0NvY29hIGZpbmFsIDogcHVibGljIE5ldHdvcmtEYXRhVGFzayB7CiAgICAgZnJpZW5kIGNsYXNz
IE5ldHdvcmtTZXNzaW9uQ29jb2E7CiBwdWJsaWM6Ci0gICAgc3RhdGljIFJlZjxOZXR3b3JrRGF0
YVRhc2s+IGNyZWF0ZShOZXR3b3JrU2Vzc2lvbiYgc2Vzc2lvbiwgTmV0d29ya0RhdGFUYXNrQ2xp
ZW50JiBjbGllbnQsIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCwgV2Vi
Q29yZTo6U3RvcmVkQ3JlZGVudGlhbHNQb2xpY3kgc3RvcmVkQ3JlZGVudGlhbHNQb2xpY3ksIFdl
YkNvcmU6OkNvbnRlbnRTbmlmZmluZ1BvbGljeSBzaG91bGRDb250ZW50U25pZmYsIGJvb2wgc2hv
dWxkQ2xlYXJSZWZlcnJlck9uSFRUUFNUb0hUVFBSZWRpcmVjdCkKKyAgICBzdGF0aWMgUmVmPE5l
dHdvcmtEYXRhVGFzaz4gY3JlYXRlKE5ldHdvcmtTZXNzaW9uJiBzZXNzaW9uLCBOZXR3b3JrRGF0
YVRhc2tDbGllbnQmIGNsaWVudCwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiByZXF1
ZXN0LCBXZWJDb3JlOjpTdG9yZWRDcmVkZW50aWFsc1BvbGljeSBzdG9yZWRDcmVkZW50aWFsc1Bv
bGljeSwgV2ViQ29yZTo6Q29udGVudFNuaWZmaW5nUG9saWN5IHNob3VsZENvbnRlbnRTbmlmZiwg
Ym9vbCBzaG91bGRDbGVhclJlZmVycmVyT25IVFRQU1RvSFRUUFJlZGlyZWN0LCBQcmVjb25uZWN0
T25seSBzaG91bGRQcmVjb25uZWN0T25seSkKICAgICB7Ci0gICAgICAgIHJldHVybiBhZG9wdFJl
ZigqbmV3IE5ldHdvcmtEYXRhVGFza0NvY29hKHNlc3Npb24sIGNsaWVudCwgcmVxdWVzdCwgc3Rv
cmVkQ3JlZGVudGlhbHNQb2xpY3ksIHNob3VsZENvbnRlbnRTbmlmZiwgc2hvdWxkQ2xlYXJSZWZl
cnJlck9uSFRUUFNUb0hUVFBSZWRpcmVjdCkpOworICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5l
dyBOZXR3b3JrRGF0YVRhc2tDb2NvYShzZXNzaW9uLCBjbGllbnQsIHJlcXVlc3QsIHN0b3JlZENy
ZWRlbnRpYWxzUG9saWN5LCBzaG91bGRDb250ZW50U25pZmYsIHNob3VsZENsZWFyUmVmZXJyZXJP
bkhUVFBTVG9IVFRQUmVkaXJlY3QsIHNob3VsZFByZWNvbm5lY3RPbmx5KSk7CiAgICAgfQogCiAg
ICAgfk5ldHdvcmtEYXRhVGFza0NvY29hKCk7CkBAIC03MSw3ICs3Miw3IEBAIHB1YmxpYzoKICAg
ICBXZWJDb3JlOjpOZXR3b3JrTG9hZE1ldHJpY3MmIG5ldHdvcmtMb2FkTWV0cmljcygpIHsgcmV0
dXJuIG1fbmV0d29ya0xvYWRNZXRyaWNzOyB9CiAKIHByaXZhdGU6Ci0gICAgTmV0d29ya0RhdGFU
YXNrQ29jb2EoTmV0d29ya1Nlc3Npb24mLCBOZXR3b3JrRGF0YVRhc2tDbGllbnQmLCBjb25zdCBX
ZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmLCBXZWJDb3JlOjpTdG9yZWRDcmVkZW50aWFsc1BvbGlj
eSwgV2ViQ29yZTo6Q29udGVudFNuaWZmaW5nUG9saWN5LCBib29sIHNob3VsZENsZWFyUmVmZXJy
ZXJPbkhUVFBTVG9IVFRQUmVkaXJlY3QpOworICAgIE5ldHdvcmtEYXRhVGFza0NvY29hKE5ldHdv
cmtTZXNzaW9uJiwgTmV0d29ya0RhdGFUYXNrQ2xpZW50JiwgY29uc3QgV2ViQ29yZTo6UmVzb3Vy
Y2VSZXF1ZXN0JiwgV2ViQ29yZTo6U3RvcmVkQ3JlZGVudGlhbHNQb2xpY3ksIFdlYkNvcmU6OkNv
bnRlbnRTbmlmZmluZ1BvbGljeSwgYm9vbCBzaG91bGRDbGVhclJlZmVycmVyT25IVFRQU1RvSFRU
UFJlZGlyZWN0LCBQcmVjb25uZWN0T25seSk7CiAKICAgICBib29sIHRyeVBhc3N3b3JkQmFzZWRB
dXRoZW50aWNhdGlvbihjb25zdCBXZWJDb3JlOjpBdXRoZW50aWNhdGlvbkNoYWxsZW5nZSYsIENo
YWxsZW5nZUNvbXBsZXRpb25IYW5kbGVyJik7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
TmV0d29ya1Byb2Nlc3MvY29jb2EvTmV0d29ya0RhdGFUYXNrQ29jb2EubW0gYi9Tb3VyY2UvV2Vi
S2l0L05ldHdvcmtQcm9jZXNzL2NvY29hL05ldHdvcmtEYXRhVGFza0NvY29hLm1tCmluZGV4IDk5
N2UwZWUxYWY2Li5kYmJiMTAwNDAxNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3Jr
UHJvY2Vzcy9jb2NvYS9OZXR3b3JrRGF0YVRhc2tDb2NvYS5tbQorKysgYi9Tb3VyY2UvV2ViS2l0
L05ldHdvcmtQcm9jZXNzL2NvY29hL05ldHdvcmtEYXRhVGFza0NvY29hLm1tCkBAIC03NCw3ICs3
NCw3IEBAIHN0YXRpYyBmbG9hdCB0b05TVVJMU2Vzc2lvblRhc2tQcmlvcml0eShXZWJDb3JlOjpS
ZXNvdXJjZUxvYWRQcmlvcml0eSBwcmlvcml0eSkKICAgICByZXR1cm4gTlNVUkxTZXNzaW9uVGFz
a1ByaW9yaXR5RGVmYXVsdDsKIH0KIAotTmV0d29ya0RhdGFUYXNrQ29jb2E6Ok5ldHdvcmtEYXRh
VGFza0NvY29hKE5ldHdvcmtTZXNzaW9uJiBzZXNzaW9uLCBOZXR3b3JrRGF0YVRhc2tDbGllbnQm
IGNsaWVudCwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0V2l0aENyZWRl
bnRpYWxzLCBXZWJDb3JlOjpTdG9yZWRDcmVkZW50aWFsc1BvbGljeSBzdG9yZWRDcmVkZW50aWFs
c1BvbGljeSwgV2ViQ29yZTo6Q29udGVudFNuaWZmaW5nUG9saWN5IHNob3VsZENvbnRlbnRTbmlm
ZiwgYm9vbCBzaG91bGRDbGVhclJlZmVycmVyT25IVFRQU1RvSFRUUFJlZGlyZWN0KQorTmV0d29y
a0RhdGFUYXNrQ29jb2E6Ok5ldHdvcmtEYXRhVGFza0NvY29hKE5ldHdvcmtTZXNzaW9uJiBzZXNz
aW9uLCBOZXR3b3JrRGF0YVRhc2tDbGllbnQmIGNsaWVudCwgY29uc3QgV2ViQ29yZTo6UmVzb3Vy
Y2VSZXF1ZXN0JiByZXF1ZXN0V2l0aENyZWRlbnRpYWxzLCBXZWJDb3JlOjpTdG9yZWRDcmVkZW50
aWFsc1BvbGljeSBzdG9yZWRDcmVkZW50aWFsc1BvbGljeSwgV2ViQ29yZTo6Q29udGVudFNuaWZm
aW5nUG9saWN5IHNob3VsZENvbnRlbnRTbmlmZiwgYm9vbCBzaG91bGRDbGVhclJlZmVycmVyT25I
VFRQU1RvSFRUUFJlZGlyZWN0LCBQcmVjb25uZWN0T25seSBzaG91bGRQcmVjb25uZWN0T25seSkK
ICAgICA6IE5ldHdvcmtEYXRhVGFzayhzZXNzaW9uLCBjbGllbnQsIHJlcXVlc3RXaXRoQ3JlZGVu
dGlhbHMsIHN0b3JlZENyZWRlbnRpYWxzUG9saWN5LCBzaG91bGRDbGVhclJlZmVycmVyT25IVFRQ
U1RvSFRUUFJlZGlyZWN0KQogewogICAgIGlmIChtX3NjaGVkdWxlZEZhaWx1cmVUeXBlICE9IE5v
RmFpbHVyZSkKQEAgLTEyOCw2ICsxMjgsMTQgQEAgTmV0d29ya0RhdGFUYXNrQ29jb2E6Ok5ldHdv
cmtEYXRhVGFza0NvY29hKE5ldHdvcmtTZXNzaW9uJiBzZXNzaW9uLCBOZXR3b3JrRGF0YVQKICAg
ICAgICAgTE9HKE5ldHdvcmtTZXNzaW9uLCAiJWxsdSBDcmVhdGluZyBOZXR3b3JrRGF0YVRhc2sg
d2l0aCBVUkwgJXMiLCBbbV90YXNrIHRhc2tJZGVudGlmaWVyXSwgbnNSZXF1ZXN0LlVSTC5hYnNv
bHV0ZVN0cmluZy5VVEY4U3RyaW5nKTsKICAgICB9CiAKKyAgICBpZiAoc2hvdWxkUHJlY29ubmVj
dE9ubHkgPT0gUHJlY29ubmVjdE9ubHk6OlllcykgeworI2lmIEVOQUJMRShTRVJWRVJfUFJFQ09O
TkVDVCkKKyAgICAgICAgbV90YXNrLmdldCgpLl9wcmVjb25uZWN0ID0gdHJ1ZTsKKyNlbHNlCisg
ICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOworI2VuZGlmCisgICAgfQorCiAjaWYgSEFWRShD
Rk5FVFdPUktfU1RPUkFHRV9QQVJUSVRJT05JTkcpCiAgICAgaWYgKHN0b3JlZENyZWRlbnRpYWxz
UG9saWN5ID09IFdlYkNvcmU6OlN0b3JlZENyZWRlbnRpYWxzUG9saWN5OjpVc2UpIHsKICAgICAg
ICAgU3RyaW5nIHN0b3JhZ2VQYXJ0aXRpb24gPSBzZXNzaW9uLm5ldHdvcmtTdG9yYWdlU2Vzc2lv
bigpLmNvb2tpZVN0b3JhZ2VQYXJ0aXRpb24ocmVxdWVzdCk7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L1NoYXJlZC9XZWJDb3JlQXJndW1lbnRDb2RlcnMuaCBiL1NvdXJjZS9XZWJLaXQvU2hh
cmVkL1dlYkNvcmVBcmd1bWVudENvZGVycy5oCmluZGV4IDA4YzM4MzkwYjg0Li5lYjNkYjUwZDk2
YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViQ29yZUFyZ3VtZW50Q29kZXJz
LmgKKysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViQ29yZUFyZ3VtZW50Q29kZXJzLmgKQEAg
LTM5LDYgKzM5LDcgQEAKICNpbmNsdWRlIDxXZWJDb3JlL1BheW1lbnRIZWFkZXJzLmg+CiAjaW5j
bHVkZSA8V2ViQ29yZS9SZWFsdGltZU1lZGlhU291cmNlLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9T
Y3JvbGxTbmFwT2Zmc2V0c0luZm8uaD4KKyNpbmNsdWRlIDxXZWJDb3JlL1N0b3JlZENyZWRlbnRp
YWxzUG9saWN5Lmg+CiAKIG5hbWVzcGFjZSBXVEYgewogY2xhc3MgTW9ub3RvbmljVGltZTsKQEAg
LTc2Niw0ICs3NjcsMTIgQEAgdGVtcGxhdGU8PiBzdHJ1Y3QgRW51bVRyYWl0czxXZWJDb3JlOjpN
ZWRpYVNlbGVjdGlvbk9wdGlvbjo6VHlwZT4gewogICAgID47CiB9OwogCit0ZW1wbGF0ZSA8PiBz
dHJ1Y3QgRW51bVRyYWl0czxXZWJDb3JlOjpTdG9yZWRDcmVkZW50aWFsc1BvbGljeT4geworICAg
IHVzaW5nIHZhbHVlcyA9IEVudW1WYWx1ZXM8CisgICAgICAgIFdlYkNvcmU6OlN0b3JlZENyZWRl
bnRpYWxzUG9saWN5LAorICAgICAgICBXZWJDb3JlOjpTdG9yZWRDcmVkZW50aWFsc1BvbGljeTo6
RG9Ob3RVc2UsCisgICAgICAgIFdlYkNvcmU6OlN0b3JlZENyZWRlbnRpYWxzUG9saWN5OjpVc2UK
KyAgICA+OworfTsKKwogfSAvLyBuYW1lc3BhY2UgV1RGCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L1NoYXJlZC9XZWJQcmVmZXJlbmNlc0RlZmluaXRpb25zLmggYi9Tb3VyY2UvV2ViS2l0L1No
YXJlZC9XZWJQcmVmZXJlbmNlc0RlZmluaXRpb25zLmgKaW5kZXggNTdkZGQxYjMwMmMuLjcyMzZj
MGNkNDM0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJQcmVmZXJlbmNlc0Rl
ZmluaXRpb25zLmgKKysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViUHJlZmVyZW5jZXNEZWZp
bml0aW9ucy5oCkBAIC00NSw2ICs0NSwxMiBAQAogI2RlZmluZSBERUZBVUxUX0hJRERFTl9QQUdF
X0NTU19BTklNQVRJT05fU1VTUEVOU0lPTl9FTkFCTEVEIGZhbHNlCiAjZW5kaWYKIAorI2lmIEVO
QUJMRShTRVJWRVJfUFJFQ09OTkVDVCkKKyNkZWZpbmUgREVGQVVMVF9MSU5LX1BSRUNPTk5FQ1Rf
RU5BQkxFRCB0cnVlCisjZWxzZQorI2RlZmluZSBERUZBVUxUX0xJTktfUFJFQ09OTkVDVF9FTkFC
TEVEIGZhbHNlCisjZW5kaWYKKwogI2lmIFBMQVRGT1JNKENPQ09BKQogI2RlZmluZSBERUZBVUxU
X1BERlBMVUdJTl9FTkFCTEVEIHRydWUKICNlbHNlCkBAIC0xODEsNiArMTg3LDcgQEAKICAgICBt
YWNybyhET01QYXN0ZUFsbG93ZWQsIGRvbVBhc3RlQWxsb3dlZCwgQm9vbCwgYm9vbCwgZmFsc2Us
ICIiLCAiIikgXAogICAgIG1hY3JvKEphdmFTY3JpcHRDYW5BY2Nlc3NDbGlwYm9hcmQsIGphdmFT
Y3JpcHRDYW5BY2Nlc3NDbGlwYm9hcmQsIEJvb2wsIGJvb2wsIGZhbHNlLCAiIiwgIiIpIFwKICAg
ICBtYWNybyhTaG91bGRQcmludEJhY2tncm91bmRzLCBzaG91bGRQcmludEJhY2tncm91bmRzLCBC
b29sLCBib29sLCBERUZBVUxUX1NIT1VMRF9QUklOVF9CQUNLR1JPVU5EUywgIiIsICIiKSBcCisg
ICAgbWFjcm8oTGlua1ByZWNvbm5lY3QsIGxpbmtQcmVjb25uZWN0LCBCb29sLCBib29sLCBERUZB
VUxUX0xJTktfUFJFQ09OTkVDVF9FTkFCTEVELCAiIiwgIiIpIFwKICAgICBtYWNybyhGdWxsU2Ny
ZWVuRW5hYmxlZCwgZnVsbFNjcmVlbkVuYWJsZWQsIEJvb2wsIGJvb2wsIGZhbHNlLCAiIiwgIiIp
IFwKICAgICBtYWNybyhBc3luY2hyb25vdXNTcGVsbENoZWNraW5nRW5hYmxlZCwgYXN5bmNocm9u
b3VzU3BlbGxDaGVja2luZ0VuYWJsZWQsIEJvb2wsIGJvb2wsIGZhbHNlLCAiIiwgIiIpIFwKICAg
ICBtYWNybyhXZWJTZWN1cml0eUVuYWJsZWQsIHdlYlNlY3VyaXR5RW5hYmxlZCwgQm9vbCwgYm9v
bCwgdHJ1ZSwgIiIsICIiKSBcCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYktpdC54Y29k
ZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNlL1dlYktpdC9XZWJLaXQueGNvZGVwcm9qL3By
b2plY3QucGJ4cHJvagppbmRleCA2ODA3ZTkzY2RkYy4uYzI4Y2MxMWM1ZWUgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291
cmNlL1dlYktpdC9XZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtMTM4MCw2ICsx
MzgwLDggQEAKIAkJODM5OTAyMDMxQkU5QTAyQjAwMEYzNjUzIC8qIE5ldHdvcmtMb2FkLmggaW4g
SGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4Mzk5MDFGRTFCRTlB
MDFCMDAwRjM2NTMgLyogTmV0d29ya0xvYWQuaCAqLzsgfTsKIAkJODM5QTJGMzExRTIwNjc0NTAw
MzkwNTdFIC8qIEhpZ2hQZXJmb3JtYW5jZUdyYXBoaWNzVXNhZ2VTYW1wbGVyLmNwcCBpbiBTb3Vy
Y2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDgzOUEyRjJGMUUyMDY3Mzkw
MDM5MDU3RSAvKiBIaWdoUGVyZm9ybWFuY2VHcmFwaGljc1VzYWdlU2FtcGxlci5jcHAgKi87IH07
CiAJCTgzOUEyRjMyMUUyMDY3NDUwMDM5MDU3RSAvKiBIaWdoUGVyZm9ybWFuY2VHcmFwaGljc1Vz
YWdlU2FtcGxlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gODM5QTJGMzAxRTIwNjczOTAwMzkwNTdFIC8qIEhpZ2hQZXJmb3JtYW5jZUdyYXBoaWNzVXNh
Z2VTYW1wbGVyLmggKi87IH07CisJCTgzQTBFRDM0MUY3NDdDQ0QwMDMyOTlFQiAvKiBQcmVjb25u
ZWN0VGFzay5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSA4M0EwRUQzMzFGNzQ3Q0M3MDAzMjk5RUIgLyogUHJlY29ubmVjdFRhc2suY3BwICovOyB9Owor
CQk4M0EwRUQzNTFGNzQ3Q0NGMDAzMjk5RUIgLyogUHJlY29ubmVjdFRhc2suaCBpbiBIZWFkZXJz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDgzQTBFRDMyMUY3NDdDQzYwMDMy
OTlFQiAvKiBQcmVjb25uZWN0VGFzay5oICovOyB9OwogCQk4M0JEQ0NCOTFBQzVGREI2MDAzRjY0
NDEgLyogTmV0d29ya0NhY2hlU3RhdGlzdGljcy5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4M0JEQ0NCODFBQzVGREI2MDAzRjY0NDEgLyogTmV0d29y
a0NhY2hlU3RhdGlzdGljcy5jcHAgKi87IH07CiAJCTgzQkZBQzQyMUQ5NjEzN0MwMDQzMzQ5MCAv
KiBCbG9iRG93bmxvYWRDbGllbnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDgzQkZBQzQwMUQ5NjEzNjAwMDQzMzQ5MCAvKiBCbG9iRG93bmxvYWRDbGll
bnQuaCAqLzsgfTsKIAkJODNCRkFDNDMxRDk2MTM3QzAwNDMzNDkwIC8qIEJsb2JEb3dubG9hZENs
aWVudC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4
M0JGQUM0MTFEOTYxMzYwMDA0MzM0OTAgLyogQmxvYkRvd25sb2FkQ2xpZW50LmNwcCAqLzsgfTsK
QEAgLTM3MzMsNiArMzczNSw4IEBACiAJCTgzOTkwMUZGMUJFOUEwMUIwMDBGMzY1MyAvKiBOZXR3
b3JrTG9hZC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IG5hbWUgPSBOZXR3b3Jr
TG9hZC5jcHA7IHBhdGggPSBOZXR3b3JrUHJvY2Vzcy9OZXR3b3JrTG9hZC5jcHA7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCTgzOUEyRjJGMUUyMDY3MzkwMDM5MDU3RSAvKiBIaWdoUGVy
Zm9ybWFuY2VHcmFwaGljc1VzYWdlU2FtcGxlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNw
cC5jcHA7IHBhdGggPSBIaWdoUGVyZm9ybWFuY2VHcmFwaGljc1VzYWdlU2FtcGxlci5jcHA7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTgzOUEyRjMwMUUyMDY3MzkwMDM5MDU3RSAvKiBI
aWdoUGVyZm9ybWFuY2VHcmFwaGljc1VzYWdlU2FtcGxlci5oICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jLmg7IHBhdGggPSBIaWdoUGVyZm9ybWFuY2VHcmFwaGljc1VzYWdlU2FtcGxlci5oOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OworCQk4M0EwRUQzMjFGNzQ3Q0M2MDAzMjk5RUIgLyogUHJl
Y29ubmVjdFRhc2suaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gUHJlY29ubmVj
dFRhc2suaDsgcGF0aCA9IE5ldHdvcmtQcm9jZXNzL1ByZWNvbm5lY3RUYXNrLmg7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CisJCTgzQTBFRDMzMUY3NDdDQzcwMDMyOTlFQiAvKiBQcmVjb25u
ZWN0VGFzay5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IG5hbWUgPSBQcmVjb25u
ZWN0VGFzay5jcHA7IHBhdGggPSBOZXR3b3JrUHJvY2Vzcy9QcmVjb25uZWN0VGFzay5jcHA7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTgzQkRDQ0I4MUFDNUZEQjYwMDNGNjQ0MSAvKiBO
ZXR3b3JrQ2FjaGVTdGF0aXN0aWNzLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsg
cGF0aCA9IE5ldHdvcmtDYWNoZVN0YXRpc3RpY3MuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwogCQk4M0JGQUM0MDFEOTYxMzYwMDA0MzM0OTAgLyogQmxvYkRvd25sb2FkQ2xpZW50Lmgg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IEJsb2JEb3dubG9hZENsaWVudC5oOyBw
YXRoID0gTmV0d29ya1Byb2Nlc3MvRG93bmxvYWRzL0Jsb2JEb3dubG9hZENsaWVudC5oOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk4M0JGQUM0MTFEOTYxMzYwMDA0MzM0OTAgLyogQmxv
YkRvd25sb2FkQ2xpZW50LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgbmFtZSA9
IEJsb2JEb3dubG9hZENsaWVudC5jcHA7IHBhdGggPSBOZXR3b3JrUHJvY2Vzcy9Eb3dubG9hZHMv
QmxvYkRvd25sb2FkQ2xpZW50LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTYx
MTUsNiArNjExOSw4IEBACiAJCQkJNUMwQjE3N0YxRTdDODg2NzAwRTkxMjNDIC8qIE5ldHdvcmtT
b2NrZXRTdHJlYW0ubWVzc2FnZXMuaW4gKi8sCiAJCQkJNDYyMTA3RDcxRjM4REJEMzAwREQ3ODEw
IC8qIFBpbmdMb2FkLmNwcCAqLywKIAkJCQk1Q0U4NUIxRjFDODhFNjQzMDA3MEJGQ0UgLyogUGlu
Z0xvYWQuaCAqLywKKwkJCQk4M0EwRUQzMzFGNzQ3Q0M3MDAzMjk5RUIgLyogUHJlY29ubmVjdFRh
c2suY3BwICovLAorCQkJCTgzQTBFRDMyMUY3NDdDQzYwMDMyOTlFQiAvKiBQcmVjb25uZWN0VGFz
ay5oICovLAogCQkJCUUxQjc4NDcwMTYzRjI0NjkwMDA3QjY5MiAvKiBSZW1vdGVOZXR3b3JraW5n
Q29udGV4dC5oICovLAogCQkJKTsKIAkJCW5hbWUgPSBOZXR3b3JrUHJvY2VzczsKQEAgLTg3MDks
NiArODcxNSw3IEBACiAJCQkJMUE0QTlGMzMxMkI4NDRFMjAwOEZFOTg0IC8qIFBsdWdpblF1aXJr
cy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJN0NENjIyNzgxNzM5RDg2MzAwNUJEN0ZGIC8qIFBsdWdp
blNhbmRib3hQcm9maWxlLmggaW4gSGVhZGVycyAqLywKIAkJCQkxQTZGQjdBRjExRTY0QjY4MDBE
QjEzNzEgLyogUGx1Z2luVmlldy5oIGluIEhlYWRlcnMgKi8sCisJCQkJODNBMEVEMzUxRjc0N0ND
RjAwMzI5OUVCIC8qIFByZWNvbm5lY3RUYXNrLmggaW4gSGVhZGVycyAqLywKIAkJCQlFMUNDMUI5
MDEyRDdFQURGMDA2MjU4MzggLyogUHJpbnRJbmZvLmggaW4gSGVhZGVycyAqLywKIAkJCQk4NkY5
NTM2NTE4RkY1OEY1MDAxREIyRUYgLyogUHJvY2Vzc0Fzc2VydGlvbi5oIGluIEhlYWRlcnMgKi8s
CiAJCQkJQkMxQTdDNTgxMTM2RTE5QzAwRkI3MTY3IC8qIFByb2Nlc3NMYXVuY2hlci5oIGluIEhl
YWRlcnMgKi8sCkBAIC0xMDI5MCw2ICsxMDI5Nyw3IEBACiAJCQkJN0NENjIyNzcxNzM5RDg2MzAw
NUJEN0ZGIC8qIFBsdWdpblNhbmRib3hQcm9maWxlLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJQkM4
Mjg0NEQxNkI1MDgxQzAwQTI3OEZFIC8qIFBsdWdpblNlcnZpY2VFbnRyeVBvaW50Lm1tIGluIFNv
dXJjZXMgKi8sCiAJCQkJMUE2RkI3QUUxMUU2NEI2ODAwREIxMzcxIC8qIFBsdWdpblZpZXcuY3Bw
IGluIFNvdXJjZXMgKi8sCisJCQkJODNBMEVEMzQxRjc0N0NDRDAwMzI5OUVCIC8qIFByZWNvbm5l
Y3RUYXNrLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUUxOEM5MkY0MTJEQjlFNzEwMENGMkFFQiAv
KiBQcmludEluZm8uY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJRTFDQzFCOTExMkQ3RUFERjAwNjI1
ODM4IC8qIFByaW50SW5mb01hYy5tbSBpbiBTb3VyY2VzICovLAogCQkJCTM3NzE2QTVBMTk1Qjkx
MDUwMEVFOEIxQiAvKiBQcm9jZXNzQXNzZXJ0aW9uLmNwcCBpbiBTb3VyY2VzICovLApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL05ldHdvcmsvV2ViTG9hZGVyU3RyYXRlZ3ku
Y3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL05ldHdvcmsvV2ViTG9hZGVyU3RyYXRlZ3ku
Y3BwCmluZGV4IGVhN2IxN2EzZGViLi42ZGVmNGQwZTNjOSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL05ldHdvcmsvV2ViTG9hZGVyU3RyYXRlZ3kuY3BwCisrKyBiL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9OZXR3b3JrL1dlYkxvYWRlclN0cmF0ZWd5LmNwcApAQCAtNDU5
LDYgKzQ1OSwxMSBAQCB2b2lkIFdlYkxvYWRlclN0cmF0ZWd5OjpkaWRGaW5pc2hQaW5nTG9hZCh1
aW50NjRfdCBwaW5nTG9hZElkZW50aWZpZXIsIFJlc291cmNlRQogICAgICAgICBjb21wbGV0aW9u
SGFuZGxlcihXVEZNb3ZlKGVycm9yKSk7CiB9CiAKK3ZvaWQgV2ViTG9hZGVyU3RyYXRlZ3k6OnBy
ZWNvbm5lY3RUbyhjb25zdCBXZWJDb3JlOjpVUkwmIHVybCwgU3RvcmVkQ3JlZGVudGlhbHNQb2xp
Y3kgc3RvcmVkQ3JlZGVudGlhbHNQb2xpY3kpCit7CisgICAgV2ViUHJvY2Vzczo6c2luZ2xldG9u
KCkubmV0d29ya0Nvbm5lY3Rpb24oKS5jb25uZWN0aW9uKCkuc2VuZChNZXNzYWdlczo6TmV0d29y
a0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6OlByZWNvbm5lY3RUbyh1cmwsIHN0b3JlZENyZWRlbnRp
YWxzUG9saWN5KSwgMCk7Cit9CisKIHZvaWQgV2ViTG9hZGVyU3RyYXRlZ3k6OnN0b3JlRGVyaXZl
ZERhdGFUb0NhY2hlKGNvbnN0IFNIQTE6OkRpZ2VzdCYgYm9keUhhc2gsIGNvbnN0IFN0cmluZyYg
dHlwZSwgY29uc3QgU3RyaW5nJiBwYXJ0aXRpb24sIFdlYkNvcmU6OlNoYXJlZEJ1ZmZlciYgZGF0
YSkKIHsKICNpZiBFTkFCTEUoTkVUV09SS19DQUNIRSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9OZXR3b3JrL1dlYkxvYWRlclN0cmF0ZWd5LmggYi9Tb3VyY2UvV2ViS2l0
L1dlYlByb2Nlc3MvTmV0d29yay9XZWJMb2FkZXJTdHJhdGVneS5oCmluZGV4IDU3MzAyOGU1YTdi
Li44YWQxNjM1MTQwOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL05ldHdv
cmsvV2ViTG9hZGVyU3RyYXRlZ3kuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvTmV0
d29yay9XZWJMb2FkZXJTdHJhdGVneS5oCkBAIC02Miw2ICs2Miw4IEBAIHB1YmxpYzoKICAgICB2
b2lkIHN0YXJ0UGluZ0xvYWQoV2ViQ29yZTo6RnJhbWUmLCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVl
c3QmLCBjb25zdCBXZWJDb3JlOjpIVFRQSGVhZGVyTWFwJiBvcmlnaW5hbFJlcXVlc3RIZWFkZXJz
LCBjb25zdCBXZWJDb3JlOjpGZXRjaE9wdGlvbnMmLCBQaW5nTG9hZENvbXBsZXRpb25IYW5kbGVy
JiYpIGZpbmFsOwogICAgIHZvaWQgZGlkRmluaXNoUGluZ0xvYWQodWludDY0X3QgcGluZ0xvYWRJ
ZGVudGlmaWVyLCBXZWJDb3JlOjpSZXNvdXJjZUVycm9yJiYpOwogCisgICAgdm9pZCBwcmVjb25u
ZWN0VG8oY29uc3QgV2ViQ29yZTo6VVJMJiwgV2ViQ29yZTo6U3RvcmVkQ3JlZGVudGlhbHNQb2xp
Y3kpIGZpbmFsOworCiAgICAgdm9pZCBzdG9yZURlcml2ZWREYXRhVG9DYWNoZShjb25zdCBTSEEx
OjpEaWdlc3QmIGJvZHlIYXNoLCBjb25zdCBTdHJpbmcmIHR5cGUsIGNvbnN0IFN0cmluZyYgcGFy
dGl0aW9uLCBXZWJDb3JlOjpTaGFyZWRCdWZmZXImKSBmaW5hbDsKIAogICAgIHZvaWQgc2V0Q2Fw
dHVyZUV4dHJhTmV0d29ya0xvYWRNZXRyaWNzRW5hYmxlZChib29sKSBmaW5hbDsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwIGIvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAKaW5kZXggODI2MWUzMzQ1ODIu
LmE4ZGVlNmY1YjdjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFn
ZS9XZWJQYWdlLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQ
YWdlLmNwcApAQCAtMzA5MCw2ICszMDkwLDcgQEAgdm9pZCBXZWJQYWdlOjp1cGRhdGVQcmVmZXJl
bmNlcyhjb25zdCBXZWJQcmVmZXJlbmNlc1N0b3JlJiBzdG9yZSkKICAgICBzZXR0aW5ncy5zZXRQ
YWdpbmF0ZUR1cmluZ0xheW91dEVuYWJsZWQoc3RvcmUuZ2V0Qm9vbFZhbHVlRm9yS2V5KFdlYlBy
ZWZlcmVuY2VzS2V5OjpwYWdpbmF0ZUR1cmluZ0xheW91dEVuYWJsZWRLZXkoKSkpOwogICAgIHNl
dHRpbmdzLnNldERPTVBhc3RlQWxsb3dlZChzdG9yZS5nZXRCb29sVmFsdWVGb3JLZXkoV2ViUHJl
ZmVyZW5jZXNLZXk6OmRvbVBhc3RlQWxsb3dlZEtleSgpKSk7CiAgICAgc2V0dGluZ3Muc2V0SmF2
YVNjcmlwdENhbkFjY2Vzc0NsaXBib2FyZChzdG9yZS5nZXRCb29sVmFsdWVGb3JLZXkoV2ViUHJl
ZmVyZW5jZXNLZXk6OmphdmFTY3JpcHRDYW5BY2Nlc3NDbGlwYm9hcmRLZXkoKSkpOworICAgIHNl
dHRpbmdzLnNldExpbmtQcmVjb25uZWN0RW5hYmxlZChzdG9yZS5nZXRCb29sVmFsdWVGb3JLZXko
V2ViUHJlZmVyZW5jZXNLZXk6OmxpbmtQcmVjb25uZWN0S2V5KCkpKTsKICAgICBzZXR0aW5ncy5z
ZXRTaG91bGRQcmludEJhY2tncm91bmRzKHN0b3JlLmdldEJvb2xWYWx1ZUZvcktleShXZWJQcmVm
ZXJlbmNlc0tleTo6c2hvdWxkUHJpbnRCYWNrZ3JvdW5kc0tleSgpKSk7CiAgICAgc2V0dGluZ3Mu
c2V0V2ViU2VjdXJpdHlFbmFibGVkKHN0b3JlLmdldEJvb2xWYWx1ZUZvcktleShXZWJQcmVmZXJl
bmNlc0tleTo6d2ViU2VjdXJpdHlFbmFibGVkS2V5KCkpKTsKICAgICBzZXR0aW5ncy5zZXRBbGxv
d1VuaXZlcnNhbEFjY2Vzc0Zyb21GaWxlVVJMcyhzdG9yZS5nZXRCb29sVmFsdWVGb3JLZXkoV2Vi
UHJlZmVyZW5jZXNLZXk6OmFsbG93VW5pdmVyc2FsQWNjZXNzRnJvbUZpbGVVUkxzS2V5KCkpKTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY29uZmlnLmggYi9Tb3VyY2UvV2ViS2l0L2NvbmZp
Zy5oCmluZGV4IGU4NjdmNDg3YzcxLi5jYWY0ZmQ3N2JjYSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9jb25maWcuaAorKysgYi9Tb3VyY2UvV2ViS2l0L2NvbmZpZy5oCkBAIC04OCw2ICs4OCwx
MiBAQAogI2VuZGlmCiAjZW5kaWYKIAorI2lmIFVTRShORVRXT1JLX1NFU1NJT04pICYmICgoUExB
VEZPUk0oTUFDKSAmJiBfX01BQ19PU19YX1ZFUlNJT05fTUlOX1JFUVVJUkVEID49IDEwMTMwMCkg
fHwgKFBMQVRGT1JNKElPUykgJiYgX19JUEhPTkVfT1NfVkVSU0lPTl9NSU5fUkVRVUlSRUQgPj0g
MTEwMDAwKSkKKyNpZm5kZWYgRU5BQkxFX1NFUlZFUl9QUkVDT05ORUNUCisjZGVmaW5lIEVOQUJM
RV9TRVJWRVJfUFJFQ09OTkVDVCAxCisjZW5kaWYKKyNlbmRpZgorCiAjaWZuZGVmIEhBVkVfU0VD
X0FDQ0VTU19DT05UUk9MCiAjaWYgUExBVEZPUk0oSU9TKSB8fCBQTEFURk9STShNQUMpCiAjZGVm
aW5lIEhBVkVfU0VDX0FDQ0VTU19DT05UUk9MIDEKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRM
ZWdhY3kvV2ViQ29yZVN1cHBvcnQvV2ViUmVzb3VyY2VMb2FkU2NoZWR1bGVyLmNwcCBiL1NvdXJj
ZS9XZWJLaXRMZWdhY3kvV2ViQ29yZVN1cHBvcnQvV2ViUmVzb3VyY2VMb2FkU2NoZWR1bGVyLmNw
cAppbmRleCA0ZDI5ODVkMWE0My4uMjY0OTNhYjZjNDIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXRMZWdhY3kvV2ViQ29yZVN1cHBvcnQvV2ViUmVzb3VyY2VMb2FkU2NoZWR1bGVyLmNwcAorKysg
Yi9Tb3VyY2UvV2ViS2l0TGVnYWN5L1dlYkNvcmVTdXBwb3J0L1dlYlJlc291cmNlTG9hZFNjaGVk
dWxlci5jcHAKQEAgLTM2OSwzICszNjksNyBAQCB2b2lkIFdlYlJlc291cmNlTG9hZFNjaGVkdWxl
cjo6c3RhcnRQaW5nTG9hZChGcmFtZSYgZnJhbWUsIFJlc291cmNlUmVxdWVzdCYgcmVxdQogICAg
IG5ldyBQaW5nSGFuZGxlKGZyYW1lLmxvYWRlcigpLm5ldHdvcmtpbmdDb250ZXh0KCksIHJlcXVl
c3QsIG9wdGlvbnMuY3JlZGVudGlhbHMgIT0gRmV0Y2hPcHRpb25zOjpDcmVkZW50aWFsczo6T21p
dCwgUGluZ0hhbmRsZTo6VXNlc0FzeW5jQ2FsbGJhY2tzOjpObywgb3B0aW9ucy5yZWRpcmVjdCA9
PSBGZXRjaE9wdGlvbnM6OlJlZGlyZWN0OjpGb2xsb3csIFdURk1vdmUoY29tcGxldGlvbkhhbmRs
ZXIpKTsKIH0KIAordm9pZCBXZWJSZXNvdXJjZUxvYWRTY2hlZHVsZXI6OnByZWNvbm5lY3RUbyhj
b25zdCBVUkwmLCBTdG9yZWRDcmVkZW50aWFsc1BvbGljeSkKK3sKK30KKwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdExlZ2FjeS9XZWJDb3JlU3VwcG9ydC9XZWJSZXNvdXJjZUxvYWRTY2hlZHVs
ZXIuaCBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvV2ViQ29yZVN1cHBvcnQvV2ViUmVzb3VyY2VMb2Fk
U2NoZWR1bGVyLmgKaW5kZXggMGUwYzJkZTU3N2MuLjFjMjYwOTJmODIzIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0TGVnYWN5L1dlYkNvcmVTdXBwb3J0L1dlYlJlc291cmNlTG9hZFNjaGVkdWxl
ci5oCisrKyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvV2ViQ29yZVN1cHBvcnQvV2ViUmVzb3VyY2VM
b2FkU2NoZWR1bGVyLmgKQEAgLTYxLDYgKzYxLDggQEAgcHVibGljOgogCiAgICAgdm9pZCBzdGFy
dFBpbmdMb2FkKFdlYkNvcmU6OkZyYW1lJiwgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiwgY29u
c3QgV2ViQ29yZTo6SFRUUEhlYWRlck1hcCYsIGNvbnN0IFdlYkNvcmU6OkZldGNoT3B0aW9ucyYs
IFBpbmdMb2FkQ29tcGxldGlvbkhhbmRsZXImJikgZmluYWw7CiAKKyAgICB2b2lkIHByZWNvbm5l
Y3RUbyhjb25zdCBXZWJDb3JlOjpVUkwmLCBXZWJDb3JlOjpTdG9yZWRDcmVkZW50aWFsc1BvbGlj
eSkgZmluYWw7CisKICAgICB2b2lkIHN0b3JlRGVyaXZlZERhdGFUb0NhY2hlKGNvbnN0IFNIQTE6
OkRpZ2VzdCYsIGNvbnN0IFN0cmluZyYsIGNvbnN0IFN0cmluZyYsIFdlYkNvcmU6OlNoYXJlZEJ1
ZmZlciYpIGZpbmFsIHsgfQogCiAgICAgdm9pZCBzZXRDYXB0dXJlRXh0cmFOZXR3b3JrTG9hZE1l
dHJpY3NFbmFibGVkKGJvb2wpIGZpbmFsIHsgfQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>321835</attachid>
            <date>2017-09-26 10:20:31 -0700</date>
            <delta_ts>2017-09-26 12:02:24 -0700</delta_ts>
            <desc>WIP Patch</desc>
            <filename>177474_preconnect_support_wip.patch</filename>
            <type>text/plain</type>
            <size>45177</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvaHRtbC9saW5rLXJlbC1wcmVjb25uZWN0LWV4
cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvaHRtbC9saW5rLXJlbC1wcmVjb25uZWN0LWV4
cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uYzVhM2Y1
ZDcxZWIKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2h0bWwvbGluay1yZWwt
cHJlY29ubmVjdC1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwxMiBAQAorVGVzdHMgdGhhdCBMaW5r
J3MgcmVsPXByZWNvbm5lY3QgaXMgcmVwb3J0ZWQgYXMgc3VwcG9ydGVkLgorCitPbiBzdWNjZXNz
LCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAi
VEVTVCBDT01QTEVURSIuCisKKworUEFTUyB0ZXN0TGluay5yZWxMaXN0Lmxlbmd0aCBpcyAxCitQ
QVNTIHRlc3RMaW5rLnJlbExpc3RbMF0gaXMgInByZWNvbm5lY3QiCitQQVNTIHRlc3RMaW5rLnJl
bExpc3Quc3VwcG9ydHMoJ3ByZWNvbm5lY3QnKSBpcyB0cnVlCitQQVNTIHN1Y2Nlc3NmdWxseVBh
cnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
ZmFzdC9odG1sL2xpbmstcmVsLXByZWNvbm5lY3QuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvaHRt
bC9saW5rLXJlbC1wcmVjb25uZWN0Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAuLjJkMTQ2MWFmYmMzCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFz
dC9odG1sL2xpbmstcmVsLXByZWNvbm5lY3QuaHRtbApAQCAtMCwwICsxLDE3IEBACis8IURPQ1RZ
UEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+Cis8bGluayBpZD0idGVzdExpbmsiIHJlbD0icHJlY29u
bmVjdCIgaHJlZj0iaHR0cDovL2xvY2FsaG9zdDo4MDAwIj4KKzxzY3JpcHQgc3JjPSIuLi8uLi9y
ZXNvdXJjZXMvanMtdGVzdC5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxzY3JpcHQ+
CitkZXNjcmlwdGlvbigiVGVzdHMgdGhhdCBMaW5rJ3MgcmVsPXByZWNvbm5lY3QgaXMgcmVwb3J0
ZWQgYXMgc3VwcG9ydGVkLiIpOworCitjb25zdCB0ZXN0TGluayA9IGRvY3VtZW50LmdldEVsZW1l
bnRCeUlkKCJ0ZXN0TGluayIpOworc2hvdWxkQmUoInRlc3RMaW5rLnJlbExpc3QubGVuZ3RoIiwg
IjEiKTsKK3Nob3VsZEJlRXF1YWxUb1N0cmluZygidGVzdExpbmsucmVsTGlzdFswXSIsICJwcmVj
b25uZWN0Iik7CitzaG91bGRCZVRydWUoInRlc3RMaW5rLnJlbExpc3Quc3VwcG9ydHMoJ3ByZWNv
bm5lY3QnKSIpOworPC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9wbGF0Zm9ybS9tYWMtd2sxL1Rlc3RFeHBlY3RhdGlvbnMgYi9MYXlvdXRUZXN0cy9w
bGF0Zm9ybS9tYWMtd2sxL1Rlc3RFeHBlY3RhdGlvbnMKaW5kZXggODAzNzMzMzRmZWYuLmJhN2E0
YjI3ZWVhIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMtd2sxL1Rlc3RFeHBl
Y3RhdGlvbnMKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjLXdrMS9UZXN0RXhwZWN0YXRp
b25zCkBAIC0zOTksNiArMzk5LDkgQEAgZmFzdC9pbWFnZXMvbG93LW1lbW9yeS1kZWNvZGUuaHRt
bCBbIFNraXAgXQogCiBodHRwL3Rlc3RzL3dvcmtlcnMvc2VydmljZSBbIFNraXAgXQogCisjIExp
bmsgcHJlY29ubmVjdCBpcyBub3QgZW5hYmxlZCBvbiBXSzEuCitmYXN0L2h0bWwvbGluay1yZWwt
cHJlY29ubmVjdC5odG1sIFsgRmFpbHVyZSBdCisKIHdlYmtpdC5vcmcvYi8xNzUzNDUgZmFzdC9p
bWFnZXMvYW5pbWF0ZWQtZ2lmLXNjcm9sbGluZy1jcmFzaC5odG1sIFsgUGFzcyBUaW1lb3V0IF0K
IAogd2Via2l0Lm9yZy9iLzE3NTU1NCBbIFNpZXJyYSBdIGZ1bGxzY3JlZW4vZnVsbC1zY3JlZW4t
aWZyYW1lLWxlZ2FjeS5odG1sIFsgUGFzcyBGYWlsdXJlIF0KZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL3BsYXRmb3JtL21hYy13azIvVGVzdEV4cGVjdGF0aW9ucyBiL0xheW91dFRlc3RzL3BsYXRm
b3JtL21hYy13azIvVGVzdEV4cGVjdGF0aW9ucwppbmRleCAwN2FiNDY4ZDEzZC4uNzI2MThhMzE0
OGUgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy13azIvVGVzdEV4cGVjdGF0
aW9ucworKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMtd2syL1Rlc3RFeHBlY3RhdGlvbnMK
QEAgLTcyOCw2ICs3MjgsOSBAQCB3ZWJraXQub3JnL2IvMTcyODM0IFsgRWxDYXBpdGFuIF0gaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9JbmRleGVkREIvaWRibwogWyBFbENhcGl0YW4g
XSBpbXBvcnRlZC9ibGluay9mYXN0L2JlYWNvbi8gWyBTa2lwIF0KIFsgRWxDYXBpdGFuIF0gaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9iZWFjb24vIFsgU2tpcCBdCiAKKyMgUmVxdWly
ZXMgTkVUV09SS19TRVNTSU9OIHRvIGJlIGVuYWJsZWQuCitbIEVsQ2FwaXRhbiBdIGZhc3QvaHRt
bC9saW5rLXJlbC1wcmVjb25uZWN0Lmh0bWwgWyBGYWlsdXJlIF0KKwogd2Via2l0Lm9yZy9iLzE3
MjIwMSB3ZWJhdWRpby9zaWxlbnQtYXVkaW8taW50ZXJydXB0ZWQtaW4tYmFja2dyb3VuZC5odG1s
IFsgUGFzcyBUaW1lb3V0IF0KIAogd2Via2l0Lm9yZy9iLzE2Nzc1NyB3b3JrZXJzL2JvbWIuaHRt
bCBbIFBhc3MgVGltZW91dCBdCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL3Nw
aS9jZi9DRk5ldHdvcmtTUEkuaCBiL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvc3BpL2NmL0NGTmV0
d29ya1NQSS5oCmluZGV4IDNlNTg0M2VhZDViLi42ODFkYmJiM2I4MCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvUEFML3BhbC9zcGkvY2YvQ0ZOZXR3b3JrU1BJLmgKKysrIGIvU291cmNlL1dl
YkNvcmUvUEFML3BhbC9zcGkvY2YvQ0ZOZXR3b3JrU1BJLmgKQEAgLTExMyw2ICsxMTMsMTIgQEAg
dHlwZWRlZiB2b2lkICheQ0ZDYWNoZWRVUkxSZXNwb25zZUNhbGxCYWNrQmxvY2spKENGQ2FjaGVk
VVJMUmVzcG9uc2VSZWYpOwogLSAoTlNEaWN0aW9uYXJ5ICopX3RpbWluZ0RhdGE7CiBAZW5kCiAK
KyNpZiAoUExBVEZPUk0oTUFDKSAmJiBfX01BQ19PU19YX1ZFUlNJT05fTUlOX1JFUVVJUkVEID49
IDEwMTMwMCkgfHwgKFBMQVRGT1JNKElPUykgJiYgX19JUEhPTkVfT1NfVkVSU0lPTl9NSU5fUkVR
VUlSRUQgPj0gMTEwMDAwKQorQGludGVyZmFjZSBOU1VSTFNlc3Npb25UYXNrIChSZXNvdXJjZUhp
bnRzKQorQHByb3BlcnR5IChub25hdG9taWMsIGFzc2lnbikgQk9PTCBfcHJlY29ubmVjdDsKK0Bl
bmQKKyNlbmRpZgorCiBAaW50ZXJmYWNlIE5TSFRUUENvb2tpZSAoKQogLSAoQ0ZIVFRQQ29va2ll
UmVmKV9DRkhUVFBDb29raWU7CiArIChDRkFycmF5UmVmIF9fbnVsbGFibGUpX25zMmNmQ29va2ll
czooTlNBcnJheSAqIF9fbnVsbGFibGUpbnNDb29raWVzIENGX1JFVFVSTlNfUkVUQUlORUQ7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0RPTVRva2VuTGlzdC5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9odG1sL0RPTVRva2VuTGlzdC5jcHAKaW5kZXggMjU1NWI2ODQ0NmIuLjdjYWIxYjcz
NmEwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0RPTVRva2VuTGlzdC5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvaHRtbC9ET01Ub2tlbkxpc3QuY3BwCkBAIC0zNSw3ICszNSw3IEBA
CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotRE9NVG9rZW5MaXN0OjpET01Ub2tlbkxpc3QoRWxl
bWVudCYgZWxlbWVudCwgY29uc3QgUXVhbGlmaWVkTmFtZSYgYXR0cmlidXRlTmFtZSwgV1RGOjpG
dW5jdGlvbjxib29sKFN0cmluZ1ZpZXcpPiYmIGlzU3VwcG9ydGVkVG9rZW4pCitET01Ub2tlbkxp
c3Q6OkRPTVRva2VuTGlzdChFbGVtZW50JiBlbGVtZW50LCBjb25zdCBRdWFsaWZpZWROYW1lJiBh
dHRyaWJ1dGVOYW1lLCBJc1N1cHBvcnRlZFRva2VuRnVuY3Rpb24mJiBpc1N1cHBvcnRlZFRva2Vu
KQogICAgIDogbV9lbGVtZW50KGVsZW1lbnQpCiAgICAgLCBtX2F0dHJpYnV0ZU5hbWUoYXR0cmli
dXRlTmFtZSkKICAgICAsIG1faXNTdXBwb3J0ZWRUb2tlbihXVEZNb3ZlKGlzU3VwcG9ydGVkVG9r
ZW4pKQpAQCAtMTkxLDcgKzE5MSw3IEBAIEV4Y2VwdGlvbk9yPGJvb2w+IERPTVRva2VuTGlzdDo6
c3VwcG9ydHMoU3RyaW5nVmlldyB0b2tlbikKIHsKICAgICBpZiAoIW1faXNTdXBwb3J0ZWRUb2tl
bikKICAgICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7IFR5cGVFcnJvciB9OwotICAgIHJldHVybiBt
X2lzU3VwcG9ydGVkVG9rZW4odG9rZW4pOworICAgIHJldHVybiBtX2lzU3VwcG9ydGVkVG9rZW4o
bV9lbGVtZW50LmRvY3VtZW50KCksIHRva2VuKTsKIH0KIAogLy8gaHR0cHM6Ly9kb20uc3BlYy53
aGF0d2cub3JnLyNkb20tZG9tdG9rZW5saXN0LXZhbHVlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9odG1sL0RPTVRva2VuTGlzdC5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9ET01Ub2tlbkxp
c3QuaAppbmRleCAyMWZiNDZmNDYxMi4uZDYwZDE3Y2M5MTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvRE9NVG9rZW5MaXN0LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9ET01U
b2tlbkxpc3QuaApAQCAtMzIsNyArMzIsOCBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiBjbGFzcyBE
T01Ub2tlbkxpc3QgewogICAgIFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOwogcHVibGljOgotICAg
IERPTVRva2VuTGlzdChFbGVtZW50JiwgY29uc3QgUXVhbGlmaWVkTmFtZSYgYXR0cmlidXRlTmFt
ZSwgV1RGOjpGdW5jdGlvbjxib29sKFN0cmluZ1ZpZXcpPiYmIGlzU3VwcG9ydGVkVG9rZW4gPSB7
IH0pOworICAgIHVzaW5nIElzU3VwcG9ydGVkVG9rZW5GdW5jdGlvbiA9IFdURjo6RnVuY3Rpb248
Ym9vbChEb2N1bWVudCYsIFN0cmluZ1ZpZXcpPjsKKyAgICBET01Ub2tlbkxpc3QoRWxlbWVudCYs
IGNvbnN0IFF1YWxpZmllZE5hbWUmIGF0dHJpYnV0ZU5hbWUsIElzU3VwcG9ydGVkVG9rZW5GdW5j
dGlvbiYmIGlzU3VwcG9ydGVkVG9rZW4gPSB7IH0pOwogCiAgICAgdm9pZCBhc3NvY2lhdGVkQXR0
cmlidXRlVmFsdWVDaGFuZ2VkKGNvbnN0IEF0b21pY1N0cmluZyYpOwogCkBAIC03Myw3ICs3NCw3
IEBAIHByaXZhdGU6CiAgICAgYm9vbCBtX2luVXBkYXRlQXNzb2NpYXRlZEF0dHJpYnV0ZUZyb21U
b2tlbnMgeyBmYWxzZSB9OwogICAgIGJvb2wgbV90b2tlbnNOZWVkVXBkYXRpbmcgeyB0cnVlIH07
CiAgICAgVmVjdG9yPEF0b21pY1N0cmluZz4gbV90b2tlbnM7Ci0gICAgV1RGOjpGdW5jdGlvbjxi
b29sKFN0cmluZ1ZpZXcpPiBtX2lzU3VwcG9ydGVkVG9rZW47CisgICAgSXNTdXBwb3J0ZWRUb2tl
bkZ1bmN0aW9uIG1faXNTdXBwb3J0ZWRUb2tlbjsKIH07CiAKIGlubGluZSB1bnNpZ25lZCBET01U
b2tlbkxpc3Q6Omxlbmd0aCgpIGNvbnN0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1s
L0hUTUxBbmNob3JFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEFuY2hvckVs
ZW1lbnQuY3BwCmluZGV4IGNiMWYxYzlmNTQ2Li40ODgxYzNkOWU4YSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvaHRtbC9IVE1MQW5jaG9yRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvaHRtbC9IVE1MQW5jaG9yRWxlbWVudC5jcHAKQEAgLTMwNyw3ICszMDcsNyBAQCBib29sIEhU
TUxBbmNob3JFbGVtZW50OjpoYXNSZWwoUmVsYXRpb24gcmVsYXRpb24pIGNvbnN0CiBET01Ub2tl
bkxpc3QmIEhUTUxBbmNob3JFbGVtZW50OjpyZWxMaXN0KCkKIHsKICAgICBpZiAoIW1fcmVsTGlz
dCkgCi0gICAgICAgIG1fcmVsTGlzdCA9IHN0ZDo6bWFrZV91bmlxdWU8RE9NVG9rZW5MaXN0Pigq
dGhpcywgSFRNTE5hbWVzOjpyZWxBdHRyLCBbXShTdHJpbmdWaWV3IHRva2VuKSB7CisgICAgICAg
IG1fcmVsTGlzdCA9IHN0ZDo6bWFrZV91bmlxdWU8RE9NVG9rZW5MaXN0PigqdGhpcywgSFRNTE5h
bWVzOjpyZWxBdHRyLCBbXShEb2N1bWVudCYsIFN0cmluZ1ZpZXcgdG9rZW4pIHsKICAgICAgICAg
ICAgIHJldHVybiBlcXVhbElnbm9yaW5nQVNDSUlDYXNlKHRva2VuLCAibm9yZWZlcnJlciIpIHx8
IGVxdWFsSWdub3JpbmdBU0NJSUNhc2UodG9rZW4sICJub29wZW5lciIpOwogICAgICAgICB9KTsK
ICAgICByZXR1cm4gKm1fcmVsTGlzdDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwv
SFRNTElGcmFtZUVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MSUZyYW1lRWxl
bWVudC5jcHAKaW5kZXggZDMwMzIyZGMwYzQuLjIyM2UzYjAzMzFhIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL0hUTUxJRnJhbWVFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9odG1sL0hUTUxJRnJhbWVFbGVtZW50LmNwcApAQCAtNTEsNyArNTEsNyBAQCBSZWY8SFRNTElG
cmFtZUVsZW1lbnQ+IEhUTUxJRnJhbWVFbGVtZW50OjpjcmVhdGUoY29uc3QgUXVhbGlmaWVkTmFt
ZSYgdGFnTmFtZSwgRAogRE9NVG9rZW5MaXN0JiBIVE1MSUZyYW1lRWxlbWVudDo6c2FuZGJveCgp
CiB7CiAgICAgaWYgKCFtX3NhbmRib3gpCi0gICAgICAgIG1fc2FuZGJveCA9IHN0ZDo6bWFrZV91
bmlxdWU8RE9NVG9rZW5MaXN0PigqdGhpcywgc2FuZGJveEF0dHIsIFtdKFN0cmluZ1ZpZXcgdG9r
ZW4pIHsKKyAgICAgICAgbV9zYW5kYm94ID0gc3RkOjptYWtlX3VuaXF1ZTxET01Ub2tlbkxpc3Q+
KCp0aGlzLCBzYW5kYm94QXR0ciwgW10oRG9jdW1lbnQmLCBTdHJpbmdWaWV3IHRva2VuKSB7CiAg
ICAgICAgICAgICByZXR1cm4gU2VjdXJpdHlDb250ZXh0Ojppc1N1cHBvcnRlZFNhbmRib3hQb2xp
Y3kodG9rZW4pOwogICAgICAgICB9KTsKICAgICByZXR1cm4gKm1fc2FuZGJveDsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTExpbmtFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJD
b3JlL2h0bWwvSFRNTExpbmtFbGVtZW50LmNwcAppbmRleCBlMDFiNmUzYjRjOC4uZTdkMGY3Y2M3
NDIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTExpbmtFbGVtZW50LmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxMaW5rRWxlbWVudC5jcHAKQEAgLTE1Niw3ICsx
NTYsNyBAQCB2b2lkIEhUTUxMaW5rRWxlbWVudDo6c2V0RGlzYWJsZWRTdGF0ZShib29sIGRpc2Fi
bGVkKQogdm9pZCBIVE1MTGlua0VsZW1lbnQ6OnBhcnNlQXR0cmlidXRlKGNvbnN0IFF1YWxpZmll
ZE5hbWUmIG5hbWUsIGNvbnN0IEF0b21pY1N0cmluZyYgdmFsdWUpCiB7CiAgICAgaWYgKG5hbWUg
PT0gcmVsQXR0cikgewotICAgICAgICBtX3JlbEF0dHJpYnV0ZSA9IExpbmtSZWxBdHRyaWJ1dGUo
dmFsdWUpOworICAgICAgICBtX3JlbEF0dHJpYnV0ZSA9IExpbmtSZWxBdHRyaWJ1dGUoZG9jdW1l
bnQoKSwgdmFsdWUpOwogICAgICAgICBpZiAobV9yZWxMaXN0KQogICAgICAgICAgICAgbV9yZWxM
aXN0LT5hc3NvY2lhdGVkQXR0cmlidXRlVmFsdWVDaGFuZ2VkKHZhbHVlKTsKICAgICAgICAgcHJv
Y2VzcygpOwpAQCAtNDk4LDggKzQ5OCw4IEBAIHZvaWQgSFRNTExpbmtFbGVtZW50OjpkaXNwYXRj
aFBlbmRpbmdFdmVudChMaW5rRXZlbnRTZW5kZXIqIGV2ZW50U2VuZGVyKQogRE9NVG9rZW5MaXN0
JiBIVE1MTGlua0VsZW1lbnQ6OnJlbExpc3QoKQogewogICAgIGlmICghbV9yZWxMaXN0KSAKLSAg
ICAgICAgbV9yZWxMaXN0ID0gc3RkOjptYWtlX3VuaXF1ZTxET01Ub2tlbkxpc3Q+KCp0aGlzLCBI
VE1MTmFtZXM6OnJlbEF0dHIsIFtdKFN0cmluZ1ZpZXcgdG9rZW4pIHsKLSAgICAgICAgICAgIHJl
dHVybiBMaW5rUmVsQXR0cmlidXRlOjppc1N1cHBvcnRlZCh0b2tlbik7CisgICAgICAgIG1fcmVs
TGlzdCA9IHN0ZDo6bWFrZV91bmlxdWU8RE9NVG9rZW5MaXN0PigqdGhpcywgSFRNTE5hbWVzOjpy
ZWxBdHRyLCBbXShEb2N1bWVudCYgZG9jdW1lbnQsIFN0cmluZ1ZpZXcgdG9rZW4pIHsKKyAgICAg
ICAgICAgIHJldHVybiBMaW5rUmVsQXR0cmlidXRlOjppc1N1cHBvcnRlZChkb2N1bWVudCwgdG9r
ZW4pOwogICAgICAgICB9KTsKICAgICByZXR1cm4gKm1fcmVsTGlzdDsKIH0KZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2h0bWwvTGlua1JlbEF0dHJpYnV0ZS5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9odG1sL0xpbmtSZWxBdHRyaWJ1dGUuY3BwCmluZGV4IDg2NmFmZDhlNWViLi41NzJiZGIzNGM1
OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9MaW5rUmVsQXR0cmlidXRlLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0xpbmtSZWxBdHRyaWJ1dGUuY3BwCkBAIC0zMiw4ICsz
MiwxMCBAQAogI2luY2x1ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUgIkxpbmtSZWxBdHRyaWJ1dGUu
aCIKIAorI2luY2x1ZGUgIkRvY3VtZW50LmgiCiAjaW5jbHVkZSAiTGlua0ljb25UeXBlLmgiCiAj
aW5jbHVkZSAiUnVudGltZUVuYWJsZWRGZWF0dXJlcy5oIgorI2luY2x1ZGUgIlNldHRpbmdzLmgi
CiAjaW5jbHVkZSA8d3RmL3RleHQvU3RyaW5nVmlldy5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L1dU
RlN0cmluZy5oPgogCkBAIC00NCw3ICs0Niw3IEBAIExpbmtSZWxBdHRyaWJ1dGU6OkxpbmtSZWxB
dHRyaWJ1dGUoKQogfQogCiAvLyBLZWVwIExpbmtSZWxBdHRyaWJ1dGU6OmlzU3VwcG9ydGVkKCkg
aW4gc3luYyB3aGVuIHVwZGF0aW5nIHRoaXMgY29uc3RydWN0b3IuCi1MaW5rUmVsQXR0cmlidXRl
OjpMaW5rUmVsQXR0cmlidXRlKGNvbnN0IFN0cmluZyYgcmVsKQorTGlua1JlbEF0dHJpYnV0ZTo6
TGlua1JlbEF0dHJpYnV0ZShEb2N1bWVudCYgZG9jdW1lbnQsIGNvbnN0IFN0cmluZyYgcmVsKQog
ewogICAgIGlmIChlcXVhbExldHRlcnNJZ25vcmluZ0FTQ0lJQ2FzZShyZWwsICJzdHlsZXNoZWV0
IikpCiAgICAgICAgIGlzU3R5bGVTaGVldCA9IHRydWU7CkBAIC01Niw2ICs1OCw4IEBAIExpbmtS
ZWxBdHRyaWJ1dGU6OkxpbmtSZWxBdHRyaWJ1dGUoY29uc3QgU3RyaW5nJiByZWwpCiAgICAgICAg
IGljb25UeXBlID0gTGlua0ljb25UeXBlOjpUb3VjaFByZWNvbXBvc2VkSWNvbjsKICAgICBlbHNl
IGlmIChlcXVhbExldHRlcnNJZ25vcmluZ0FTQ0lJQ2FzZShyZWwsICJkbnMtcHJlZmV0Y2giKSkK
ICAgICAgICAgaXNETlNQcmVmZXRjaCA9IHRydWU7CisgICAgZWxzZSBpZiAoZG9jdW1lbnQuc2V0
dGluZ3MoKS5saW5rUHJlY29ubmVjdEVuYWJsZWQoKSAmJiBlcXVhbExldHRlcnNJZ25vcmluZ0FT
Q0lJQ2FzZShyZWwsICJwcmVjb25uZWN0IikpCisgICAgICAgIGlzTGlua1ByZWNvbm5lY3QgPSB0
cnVlOwogICAgIGVsc2UgaWYgKFJ1bnRpbWVFbmFibGVkRmVhdHVyZXM6OnNoYXJlZEZlYXR1cmVz
KCkubGlua1ByZWxvYWRFbmFibGVkKCkgJiYgZXF1YWxMZXR0ZXJzSWdub3JpbmdBU0NJSUNhc2Uo
cmVsLCAicHJlbG9hZCIpKQogICAgICAgICBpc0xpbmtQcmVsb2FkID0gdHJ1ZTsKICAgICBlbHNl
IGlmIChlcXVhbExldHRlcnNJZ25vcmluZ0FTQ0lJQ2FzZShyZWwsICJhbHRlcm5hdGUgc3R5bGVz
aGVldCIpIHx8IGVxdWFsTGV0dGVyc0lnbm9yaW5nQVNDSUlDYXNlKHJlbCwgInN0eWxlc2hlZXQg
YWx0ZXJuYXRlIikpIHsKQEAgLTg3LDcgKzkxLDcgQEAgTGlua1JlbEF0dHJpYnV0ZTo6TGlua1Jl
bEF0dHJpYnV0ZShjb25zdCBTdHJpbmcmIHJlbCkKIH0KIAogLy8gaHR0cHM6Ly9odG1sLnNwZWMu
d2hhdHdnLm9yZy8jbGlua1R5cGVzCi1ib29sIExpbmtSZWxBdHRyaWJ1dGU6OmlzU3VwcG9ydGVk
KFN0cmluZ1ZpZXcgYXR0cmlidXRlKQorYm9vbCBMaW5rUmVsQXR0cmlidXRlOjppc1N1cHBvcnRl
ZChEb2N1bWVudCYgZG9jdW1lbnQsIFN0cmluZ1ZpZXcgYXR0cmlidXRlKQogewogICAgIHN0YXRp
YyBjb25zdCBjaGFyKiBjb25zdCBzdXBwb3J0ZWRBdHRyaWJ1dGVzW10gPSB7CiAgICAgICAgICJh
bHRlcm5hdGUiLCAiZG5zLXByZWZldGNoIiwgImljb24iLCAic3R5bGVzaGVldCIsICJhcHBsZS10
b3VjaC1pY29uIiwgImFwcGxlLXRvdWNoLWljb24tcHJlY29tcG9zZWQiLApAQCAtMTAxLDYgKzEw
NSw5IEBAIGJvb2wgTGlua1JlbEF0dHJpYnV0ZTo6aXNTdXBwb3J0ZWQoU3RyaW5nVmlldyBhdHRy
aWJ1dGUpCiAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICB9CiAKKyAgICBpZiAoZG9jdW1l
bnQuc2V0dGluZ3MoKS5saW5rUHJlY29ubmVjdEVuYWJsZWQoKSAmJiBlcXVhbElnbm9yaW5nQVND
SUlDYXNlKGF0dHJpYnV0ZSwgInByZWNvbm5lY3QiKSkKKyAgICAgICAgcmV0dXJuIHRydWU7CisK
ICAgICBpZiAoUnVudGltZUVuYWJsZWRGZWF0dXJlczo6c2hhcmVkRmVhdHVyZXMoKS5saW5rUHJl
bG9hZEVuYWJsZWQoKSAmJiBlcXVhbElnbm9yaW5nQVNDSUlDYXNlKGF0dHJpYnV0ZSwgInByZWxv
YWQiKSkKICAgICAgICAgcmV0dXJuIHRydWU7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvTGlua1JlbEF0dHJpYnV0ZS5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9MaW5rUmVsQXR0
cmlidXRlLmgKaW5kZXggOGUyNjY5MjdlZGQuLmYxMmU5ODY2MzdjIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL0xpbmtSZWxBdHRyaWJ1dGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9o
dG1sL0xpbmtSZWxBdHRyaWJ1dGUuaApAQCAtMzcsNiArMzcsNyBAQAogCiBuYW1lc3BhY2UgV2Vi
Q29yZSB7CiAKK2NsYXNzIERvY3VtZW50OwogZW51bSBjbGFzcyBMaW5rSWNvblR5cGU7CiAKIHN0
cnVjdCBMaW5rUmVsQXR0cmlidXRlIHsKQEAgLTQ1LDE1ICs0NiwxNiBAQCBzdHJ1Y3QgTGlua1Jl
bEF0dHJpYnV0ZSB7CiAgICAgYm9vbCBpc0FsdGVybmF0ZSB7IGZhbHNlIH07CiAgICAgYm9vbCBp
c0ROU1ByZWZldGNoIHsgZmFsc2UgfTsKICAgICBib29sIGlzTGlua1ByZWxvYWQgeyBmYWxzZSB9
OworICAgIGJvb2wgaXNMaW5rUHJlY29ubmVjdCB7IGZhbHNlIH07CiAjaWYgRU5BQkxFKExJTktf
UFJFRkVUQ0gpCiAgICAgYm9vbCBpc0xpbmtQcmVmZXRjaCB7IGZhbHNlIH07CiAgICAgYm9vbCBp
c0xpbmtTdWJyZXNvdXJjZSB7IGZhbHNlIH07CiAjZW5kaWYKIAogICAgIExpbmtSZWxBdHRyaWJ1
dGUoKTsKLSAgICBleHBsaWNpdCBMaW5rUmVsQXR0cmlidXRlKGNvbnN0IFN0cmluZyYpOworICAg
IExpbmtSZWxBdHRyaWJ1dGUoRG9jdW1lbnQmLCBjb25zdCBTdHJpbmcmKTsKIAotICAgIHN0YXRp
YyBib29sIGlzU3VwcG9ydGVkKFN0cmluZ1ZpZXcpOworICAgIHN0YXRpYyBib29sIGlzU3VwcG9y
dGVkKERvY3VtZW50JiwgU3RyaW5nVmlldyk7CiB9OwogCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9odG1sL3BhcnNlci9IVE1MUHJlbG9hZFNjYW5uZXIuY3BwIGIvU291cmNlL1dlYkNv
cmUvaHRtbC9wYXJzZXIvSFRNTFByZWxvYWRTY2FubmVyLmNwcAppbmRleCAwNjAxZGMxMWRjYy4u
MDhkMjhjZGQ0MjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvcGFyc2VyL0hUTUxQ
cmVsb2FkU2Nhbm5lci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9wYXJzZXIvSFRNTFBy
ZWxvYWRTY2FubmVyLmNwcApAQCAtMjMyLDcgKzIzMiw3IEBAIHByaXZhdGU6CiAgICAgICAgICAg
ICBpZiAobWF0Y2goYXR0cmlidXRlTmFtZSwgaHJlZkF0dHIpKQogICAgICAgICAgICAgICAgIHNl
dFVybFRvTG9hZChhdHRyaWJ1dGVWYWx1ZSk7CiAgICAgICAgICAgICBlbHNlIGlmIChtYXRjaChh
dHRyaWJ1dGVOYW1lLCByZWxBdHRyKSkgewotICAgICAgICAgICAgICAgIExpbmtSZWxBdHRyaWJ1
dGUgcGFyc2VkQXR0cmlidXRlIHsgYXR0cmlidXRlVmFsdWUgfTsKKyAgICAgICAgICAgICAgICBM
aW5rUmVsQXR0cmlidXRlIHBhcnNlZEF0dHJpYnV0ZSB7IGRvY3VtZW50LCBhdHRyaWJ1dGVWYWx1
ZSB9OwogICAgICAgICAgICAgICAgIG1fbGlua0lzU3R5bGVTaGVldCA9IHJlbEF0dHJpYnV0ZUlz
U3R5bGVTaGVldChwYXJzZWRBdHRyaWJ1dGUpOwogICAgICAgICAgICAgICAgIG1fbGlua0lzUHJl
bG9hZCA9IHBhcnNlZEF0dHJpYnV0ZS5pc0xpbmtQcmVsb2FkOwogICAgICAgICAgICAgfSBlbHNl
IGlmIChtYXRjaChhdHRyaWJ1dGVOYW1lLCBtZWRpYUF0dHIpKQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvbG9hZGVyL0xpbmtMb2FkZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0xp
bmtMb2FkZXIuY3BwCmluZGV4IDJiMTYxMzI2NDMwLi42MzZjMjJkOWM5YiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvbG9hZGVyL0xpbmtMb2FkZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2xvYWRlci9MaW5rTG9hZGVyLmNwcApAQCAtNDcsOCArNDcsMTAgQEAKICNpbmNsdWRlICJMaW5r
SGVhZGVyLmgiCiAjaW5jbHVkZSAiTGlua1ByZWxvYWRSZXNvdXJjZUNsaWVudHMuaCIKICNpbmNs
dWRlICJMaW5rUmVsQXR0cmlidXRlLmgiCisjaW5jbHVkZSAiTG9hZGVyU3RyYXRlZ3kuaCIKICNp
bmNsdWRlICJNSU1FVHlwZVJlZ2lzdHJ5LmgiCiAjaW5jbHVkZSAiTWVkaWFRdWVyeUV2YWx1YXRv
ci5oIgorI2luY2x1ZGUgIlBsYXRmb3JtU3RyYXRlZ2llcy5oIgogI2luY2x1ZGUgIlJ1bnRpbWVF
bmFibGVkRmVhdHVyZXMuaCIKICNpbmNsdWRlICJTZXR0aW5ncy5oIgogI2luY2x1ZGUgIlN0eWxl
UmVzb2x2ZXIuaCIKQEAgLTEwMiw3ICsxMDQsNyBAQCB2b2lkIExpbmtMb2FkZXI6OmxvYWRMaW5r
c0Zyb21IZWFkZXIoY29uc3QgU3RyaW5nJiBoZWFkZXJWYWx1ZSwgY29uc3QgVVJMJiBiYXNlVQog
ICAgICAgICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgICB9CiAKLSAgICAgICAgTGlua1JlbEF0
dHJpYnV0ZSByZWxBdHRyaWJ1dGUoaGVhZGVyLnJlbCgpKTsKKyAgICAgICAgTGlua1JlbEF0dHJp
YnV0ZSByZWxBdHRyaWJ1dGUoZG9jdW1lbnQsIGhlYWRlci5yZWwoKSk7CiAgICAgICAgIFVSTCB1
cmwoYmFzZVVSTCwgaGVhZGVyLnVybCgpKTsKICAgICAgICAgLy8gU2FuaXR5IGNoZWNrIHRvIGF2
b2lkIHJlLWVudHJhbmN5IGhlcmUuCiAgICAgICAgIGlmIChlcXVhbElnbm9yaW5nRnJhZ21lbnRJ
ZGVudGlmaWVyKHVybCwgYmFzZVVSTCkpCkBAIC0yNTAsNiArMjUyLDE0IEBAIGJvb2wgTGlua0xv
YWRlcjo6bG9hZExpbmsoY29uc3QgTGlua1JlbEF0dHJpYnV0ZSYgcmVsQXR0cmlidXRlLCBjb25z
dCBVUkwmIGhyZWYsCiAgICAgICAgICAgICBkb2N1bWVudC5mcmFtZSgpLT5sb2FkZXIoKS5jbGll
bnQoKS5wcmVmZXRjaEROUyhocmVmLmhvc3QoKSk7CiAgICAgfQogCisgICAgaWYgKHJlbEF0dHJp
YnV0ZS5pc0xpbmtQcmVjb25uZWN0ICYmIGhyZWYuaXNWYWxpZCgpICYmICFocmVmLmlzRW1wdHko
KSkgeworICAgICAgICBBU1NFUlQoZG9jdW1lbnQuc2V0dGluZ3MoKS5saW5rUHJlY29ubmVjdEVu
YWJsZWQoKSk7CisgICAgICAgIFN0b3JlZENyZWRlbnRpYWxzUG9saWN5IHN0b3JhZ2VDcmVkZW50
aWFsc1BvbGljeSA9IFN0b3JlZENyZWRlbnRpYWxzUG9saWN5OjpVc2U7CisgICAgICAgIGlmIChl
cXVhbElnbm9yaW5nQVNDSUlDYXNlKGNyb3NzT3JpZ2luLCAiYW5vbnltb3VzIikgJiYgZG9jdW1l
bnQuc2VjdXJpdHlPcmlnaW4oKS5jYW5BY2Nlc3MoU2VjdXJpdHlPcmlnaW46OmNyZWF0ZShocmVm
KSkpCisgICAgICAgICAgICBzdG9yYWdlQ3JlZGVudGlhbHNQb2xpY3kgPSBTdG9yZWRDcmVkZW50
aWFsc1BvbGljeTo6RG9Ob3RVc2U7CisgICAgICAgIHBsYXRmb3JtU3RyYXRlZ2llcygpLT5sb2Fk
ZXJTdHJhdGVneSgpLT5wcmVjb25uZWN0VG8oaHJlZiwgc3RvcmFnZUNyZWRlbnRpYWxzUG9saWN5
KTsKKyAgICB9CisKICAgICBpZiAobV9jbGllbnQuc2hvdWxkTG9hZExpbmsoKSkgewogICAgICAg
ICBhdXRvIHJlc291cmNlQ2xpZW50ID0gcHJlbG9hZElmTmVlZGVkKHJlbEF0dHJpYnV0ZSwgaHJl
ZiwgZG9jdW1lbnQsIGFzLCBtZWRpYSwgbWltZVR5cGUsIGNyb3NzT3JpZ2luLCB0aGlzKTsKICAg
ICAgICAgaWYgKHJlc291cmNlQ2xpZW50KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9h
ZGVyL0xvYWRlclN0cmF0ZWd5LmggYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvTG9hZGVyU3RyYXRl
Z3kuaAppbmRleCA1M2YzYmZiMjY2Ni4uZTAwZTM0YzFmMzggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2xvYWRlci9Mb2FkZXJTdHJhdGVneS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRl
ci9Mb2FkZXJTdHJhdGVneS5oCkBAIC02Nyw2ICs2Nyw4IEBAIHB1YmxpYzoKICAgICB1c2luZyBQ
aW5nTG9hZENvbXBsZXRpb25IYW5kbGVyID0gV1RGOjpGdW5jdGlvbjx2b2lkKGNvbnN0IFJlc291
cmNlRXJyb3ImKT47CiAgICAgdmlydHVhbCB2b2lkIHN0YXJ0UGluZ0xvYWQoRnJhbWUmLCBSZXNv
dXJjZVJlcXVlc3QmLCBjb25zdCBIVFRQSGVhZGVyTWFwJiBvcmlnaW5hbFJlcXVlc3RIZWFkZXJz
LCBjb25zdCBGZXRjaE9wdGlvbnMmLCBQaW5nTG9hZENvbXBsZXRpb25IYW5kbGVyJiYgPSB7IH0p
ID0gMDsKIAorICAgIHZpcnR1YWwgdm9pZCBwcmVjb25uZWN0VG8oY29uc3QgVVJMJiwgU3RvcmVk
Q3JlZGVudGlhbHNQb2xpY3kpID0gMDsKKwogICAgIHZpcnR1YWwgdm9pZCBzdG9yZURlcml2ZWRE
YXRhVG9DYWNoZShjb25zdCBTSEExOjpEaWdlc3QmIGJvZHlLZXksIGNvbnN0IFN0cmluZyYgdHlw
ZSwgY29uc3QgU3RyaW5nJiBwYXJ0aXRpb24sIFdlYkNvcmU6OlNoYXJlZEJ1ZmZlciYpID0gMDsK
IAogICAgIHZpcnR1YWwgdm9pZCBzZXRDYXB0dXJlRXh0cmFOZXR3b3JrTG9hZE1ldHJpY3NFbmFi
bGVkKGJvb2wpID0gMDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvU2V0dGluZ3Mu
aW4gYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1NldHRpbmdzLmluCmluZGV4IDkyNzdjMGE3Y2U1Li5k
ODE1MjZhYWNjMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9TZXR0aW5ncy5pbgor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1NldHRpbmdzLmluCkBAIC0yOTEsNiArMjkxLDggQEAg
bGFuZ0F0dHJpYnV0ZUF3YXJlRm9ybUNvbnRyb2xVSUVuYWJsZWQgaW5pdGlhbD1mYWxzZQogCiBz
dWJyZXNvdXJjZUludGVncml0eUVuYWJsZWQgaW5pdGlhbD10cnVlCiAKK2xpbmtQcmVjb25uZWN0
RW5hYmxlZCBpbml0aWFsPWZhbHNlCisKIGJlYWNvbkFQSUVuYWJsZWQgaW5pdGlhbD1mYWxzZQog
CiBjb25zdGFudFByb3BlcnRpZXNFbmFibGVkIGluaXRpYWw9ZmFsc2UKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvU3RvcmVkQ3JlZGVudGlhbHNQb2xpY3kuaCBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvU3RvcmVkQ3JlZGVudGlhbHNQb2xpY3ku
aAppbmRleCA3ZTJiZWM3YzY5My4uMzcxZWUzMzQ2N2UgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL25ldHdvcmsvU3RvcmVkQ3JlZGVudGlhbHNQb2xpY3kuaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL1N0b3JlZENyZWRlbnRpYWxzUG9saWN5LmgKQEAg
LTI3LDcgKzI3LDcgQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1lbnVtIFN0b3JlZENyZWRl
bnRpYWxzUG9saWN5IHsKK2VudW0gY2xhc3MgU3RvcmVkQ3JlZGVudGlhbHNQb2xpY3kgewogICAg
IERvTm90VXNlLAogICAgIFVzZSwKIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdv
cmtQcm9jZXNzL05ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmNwcCBiL1NvdXJjZS9XZWJL
aXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuY3BwCmluZGV4
IDcwM2Q1OTFjMjRiLi4yOTE0YWMzODRmYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3
b3JrUHJvY2Vzcy9OZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5jcHAKKysrIGIvU291cmNl
L1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5jcHAK
QEAgLTI4Nyw2ICsyODcsMTEgQEAgdm9pZCBOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzczo6
cHJlZmV0Y2hETlMoY29uc3QgU3RyaW5nJiBob3N0bmFtZSkKICAgICBOZXR3b3JrUHJvY2Vzczo6
c2luZ2xldG9uKCkucHJlZmV0Y2hETlMoaG9zdG5hbWUpOwogfQogCit2b2lkIE5ldHdvcmtDb25u
ZWN0aW9uVG9XZWJQcm9jZXNzOjpwcmVjb25uZWN0VG8oY29uc3QgVVJMJiB1cmwsIFdlYkNvcmU6
OlN0b3JlZENyZWRlbnRpYWxzUG9saWN5IHN0b3JlZENyZWRlbnRpYWxzUG9saWN5KQoreworICAg
IE5ldHdvcmtQcm9jZXNzOjpzaW5nbGV0b24oKS5wcmVjb25uZWN0VG8odXJsLCBzdG9yZWRDcmVk
ZW50aWFsc1BvbGljeSk7Cit9CisKIHN0YXRpYyBOZXR3b3JrU3RvcmFnZVNlc3Npb24mIHN0b3Jh
Z2VTZXNzaW9uKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCkKIHsKICAgICBBU1NFUlQoc2Vzc2lv
bklELmlzVmFsaWQoKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNz
L05ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmggYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQ
cm9jZXNzL05ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmgKaW5kZXggY2QyODA0MmNmZmIu
LjM5NTg1Mzk0M2IzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05l
dHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmgKKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3Jr
UHJvY2Vzcy9OZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5oCkBAIC05MCw2ICs5MCw3IEBA
IHByaXZhdGU6CiAgICAgdm9pZCBwZXJmb3JtU3luY2hyb25vdXNMb2FkKGNvbnN0IE5ldHdvcmtS
ZXNvdXJjZUxvYWRQYXJhbWV0ZXJzJiwgUmVmPE1lc3NhZ2VzOjpOZXR3b3JrQ29ubmVjdGlvblRv
V2ViUHJvY2Vzczo6UGVyZm9ybVN5bmNocm9ub3VzTG9hZDo6RGVsYXllZFJlcGx5PiYmKTsKICAg
ICB2b2lkIGxvYWRQaW5nKE5ldHdvcmtSZXNvdXJjZUxvYWRQYXJhbWV0ZXJzJiYsIFdlYkNvcmU6
OkhUVFBIZWFkZXJNYXAmJiBvcmlnaW5hbFJlcXVlc3RIZWFkZXJzKTsKICAgICB2b2lkIHByZWZl
dGNoRE5TKGNvbnN0IFN0cmluZyYpOworICAgIHZvaWQgcHJlY29ubmVjdFRvKGNvbnN0IFdlYkNv
cmU6OlVSTCYsIFdlYkNvcmU6OlN0b3JlZENyZWRlbnRpYWxzUG9saWN5KTsKIAogICAgIHZvaWQg
cmVtb3ZlTG9hZElkZW50aWZpZXIoUmVzb3VyY2VMb2FkSWRlbnRpZmllcik7CiAgICAgdm9pZCBz
ZXREZWZlcnNMb2FkaW5nKFJlc291cmNlTG9hZElkZW50aWZpZXIsIGJvb2wpOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJv
Y2Vzcy5tZXNzYWdlcy5pbiBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0Nv
bm5lY3Rpb25Ub1dlYlByb2Nlc3MubWVzc2FnZXMuaW4KaW5kZXggYWJmMGZjY2EwMDIuLmY2Y2Y0
YzNmMDM3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtD
b25uZWN0aW9uVG9XZWJQcm9jZXNzLm1lc3NhZ2VzLmluCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0
d29ya1Byb2Nlc3MvTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MubWVzc2FnZXMuaW4KQEAg
LTI4LDYgKzI4LDcgQEAgbWVzc2FnZXMgLT4gTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3Mg
TGVnYWN5UmVjZWl2ZXIgewogICAgIFJlbW92ZUxvYWRJZGVudGlmaWVyKHVpbnQ2NF90IHJlc291
cmNlTG9hZElkZW50aWZpZXIpCiAgICAgU2V0RGVmZXJzTG9hZGluZyh1aW50NjRfdCByZXNvdXJj
ZUxvYWRJZGVudGlmaWVyLCBib29sIGRlZmVycykKICAgICBQcmVmZXRjaEROUyhTdHJpbmcgaG9z
dG5hbWUpCisgICAgUHJlY29ubmVjdFRvKFdlYkNvcmU6OlVSTCB1cmwsIGVudW0gV2ViQ29yZTo6
U3RvcmVkQ3JlZGVudGlhbHNQb2xpY3kgc3RvcmVkQ3JlZGVudGlhbHNQb2xpY3kpOwogCiAgICAg
U3RhcnREb3dubG9hZChQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIFdlYktpdDo6RG93bmxvYWRJ
RCBkb3dubG9hZElELCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QgcmVxdWVzdCwgU3RyaW5nIHN1
Z2dlc3RlZE5hbWUpCiAgICAgQ29udmVydE1haW5SZXNvdXJjZUxvYWRUb0Rvd25sb2FkKFBBTDo6
U2Vzc2lvbklEIHNlc3Npb25JRCwgdWludDY0X3QgbWFpblJlc291cmNlTG9hZElkZW50aWZpZXIs
IFdlYktpdDo6RG93bmxvYWRJRCBkb3dubG9hZElELCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3Qg
cmVxdWVzdCwgV2ViQ29yZTo6UmVzb3VyY2VSZXNwb25zZSByZXNwb25zZSkKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0RhdGFUYXNrLmNwcCBiL1NvdXJj
ZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0RhdGFUYXNrLmNwcAppbmRleCBjOTNmOGZl
YzlmYS4uMmM5ZGZkOGYzNjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nl
c3MvTmV0d29ya0RhdGFUYXNrLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNz
L05ldHdvcmtEYXRhVGFzay5jcHAKQEAgLTUzLDcgKzUzLDcgQEAgUmVmPE5ldHdvcmtEYXRhVGFz
az4gTmV0d29ya0RhdGFUYXNrOjpjcmVhdGUoTmV0d29ya1Nlc3Npb24mIHNlc3Npb24sIE5ldHdv
cmtEYXQKICAgICAgICAgcmV0dXJuIE5ldHdvcmtEYXRhVGFza0Jsb2I6OmNyZWF0ZShzZXNzaW9u
LCBjbGllbnQsIHBhcmFtZXRlcnMucmVxdWVzdCwgcGFyYW1ldGVycy5jb250ZW50U25pZmZpbmdQ
b2xpY3ksIHBhcmFtZXRlcnMuYmxvYkZpbGVSZWZlcmVuY2VzKTsKIAogI2lmIFBMQVRGT1JNKENP
Q09BKQotICAgIHJldHVybiBOZXR3b3JrRGF0YVRhc2tDb2NvYTo6Y3JlYXRlKHNlc3Npb24sIGNs
aWVudCwgcGFyYW1ldGVycy5yZXF1ZXN0LCBwYXJhbWV0ZXJzLnN0b3JlZENyZWRlbnRpYWxzUG9s
aWN5LCBwYXJhbWV0ZXJzLmNvbnRlbnRTbmlmZmluZ1BvbGljeSwgcGFyYW1ldGVycy5zaG91bGRD
bGVhclJlZmVycmVyT25IVFRQU1RvSFRUUFJlZGlyZWN0KTsKKyAgICByZXR1cm4gTmV0d29ya0Rh
dGFUYXNrQ29jb2E6OmNyZWF0ZShzZXNzaW9uLCBjbGllbnQsIHBhcmFtZXRlcnMucmVxdWVzdCwg
cGFyYW1ldGVycy5zdG9yZWRDcmVkZW50aWFsc1BvbGljeSwgcGFyYW1ldGVycy5jb250ZW50U25p
ZmZpbmdQb2xpY3ksIHBhcmFtZXRlcnMuc2hvdWxkQ2xlYXJSZWZlcnJlck9uSFRUUFNUb0hUVFBS
ZWRpcmVjdCwgcGFyYW1ldGVycy5zaG91bGRQcmVjb25uZWN0T25seSk7CiAjZW5kaWYKICNpZiBV
U0UoU09VUCkKICAgICByZXR1cm4gTmV0d29ya0RhdGFUYXNrU291cDo6Y3JlYXRlKHNlc3Npb24s
IGNsaWVudCwgcGFyYW1ldGVycy5yZXF1ZXN0LCBwYXJhbWV0ZXJzLnN0b3JlZENyZWRlbnRpYWxz
UG9saWN5LCBwYXJhbWV0ZXJzLmNvbnRlbnRTbmlmZmluZ1BvbGljeSwgcGFyYW1ldGVycy5zaG91
bGRDbGVhclJlZmVycmVyT25IVFRQU1RvSFRUUFJlZGlyZWN0KTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0xvYWRQYXJhbWV0ZXJzLmggYi9Tb3VyY2Uv
V2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtMb2FkUGFyYW1ldGVycy5oCmluZGV4IDFmYmQy
ZGE0OTFkLi4yNWFhNTA1ODBkZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJv
Y2Vzcy9OZXR3b3JrTG9hZFBhcmFtZXRlcnMuaAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQ
cm9jZXNzL05ldHdvcmtMb2FkUGFyYW1ldGVycy5oCkBAIC0zMyw2ICszMyw4IEBACiAKIG5hbWVz
cGFjZSBXZWJLaXQgewogCitlbnVtIGNsYXNzIFByZWNvbm5lY3RPbmx5IHsgTm8sIFllcyB9Owor
CiBjbGFzcyBOZXR3b3JrTG9hZFBhcmFtZXRlcnMgewogcHVibGljOgogICAgIHVpbnQ2NF90IHdl
YlBhZ2VJRCB7IDAgfTsKQEAgLTQ5LDYgKzUxLDcgQEAgcHVibGljOgogI2lmIFVTRShORVRXT1JL
X1NFU1NJT04pCiAgICAgVmVjdG9yPFJlZlB0cjxXZWJDb3JlOjpCbG9iRGF0YUZpbGVSZWZlcmVu
Y2U+PiBibG9iRmlsZVJlZmVyZW5jZXM7CiAjZW5kaWYKKyAgICBQcmVjb25uZWN0T25seSBzaG91
bGRQcmVjb25uZWN0T25seSB7IFByZWNvbm5lY3RPbmx5OjpObyB9OwogfTsKIAogfSAvLyBuYW1l
c3BhY2UgV2ViS2l0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05l
dHdvcmtQcm9jZXNzLmNwcCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1By
b2Nlc3MuY3BwCmluZGV4IDc5ZTAyY2Y4NzIxLi5mNzFlMWQxZmYwOSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5jcHAKKysrIGIvU291cmNl
L1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5jcHAKQEAgLTQwLDYgKzQwLDcg
QEAKICNpbmNsdWRlICJOZXR3b3JrUHJvY2Vzc1Byb3h5TWVzc2FnZXMuaCIKICNpbmNsdWRlICJO
ZXR3b3JrUmVzb3VyY2VMb2FkZXIuaCIKICNpbmNsdWRlICJOZXR3b3JrU2Vzc2lvbi5oIgorI2lu
Y2x1ZGUgIlByZWNvbm5lY3RUYXNrLmgiCiAjaW5jbHVkZSAiUmVtb3RlTmV0d29ya2luZ0NvbnRl
eHQuaCIKICNpbmNsdWRlICJTZXNzaW9uVHJhY2tlci5oIgogI2luY2x1ZGUgIlN0YXRpc3RpY3NE
YXRhLmgiCkBAIC03MjUsNiArNzI2LDE2IEBAIFN0cmluZyBOZXR3b3JrUHJvY2Vzczo6Y2FjaGVT
dG9yYWdlRGlyZWN0b3J5KFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCkgY29uc3QKICAgICByZXR1
cm4gc2Vzc2lvbi0+Y2FjaGVTdG9yYWdlRGlyZWN0b3J5KCk7CiB9CiAKK3ZvaWQgTmV0d29ya1By
b2Nlc3M6OnByZWNvbm5lY3RUbyhjb25zdCBXZWJDb3JlOjpVUkwmIHVybCwgV2ViQ29yZTo6U3Rv
cmVkQ3JlZGVudGlhbHNQb2xpY3kgc3RvcmVkQ3JlZGVudGlhbHNQb2xpY3kpCit7CisjaWYgRU5B
QkxFKFNFUlZFUl9QUkVDT05ORUNUKQorICAgIG5ldyBQcmVjb25uZWN0VGFzayh1cmwsIHN0b3Jl
ZENyZWRlbnRpYWxzUG9saWN5KTsKKyNlbHNlCisgICAgVU5VU0VEX1BBUkFNKHVybCk7CisgICAg
VU5VU0VEX1BBUkFNKHN0b3JlZENyZWRlbnRpYWxzUG9saWN5KTsKKyNlbmRpZgorfQorCiAjaWYg
IVBMQVRGT1JNKENPQ09BKQogdm9pZCBOZXR3b3JrUHJvY2Vzczo6aW5pdGlhbGl6ZVByb2Nlc3Mo
Y29uc3QgQ2hpbGRQcm9jZXNzSW5pdGlhbGl6YXRpb25QYXJhbWV0ZXJzJikKIHsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MuaCBiL1NvdXJj
ZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MuaAppbmRleCAxNGE1MjJmY2Q2
ZC4uMGMzZTdjNjhhYTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mv
TmV0d29ya1Byb2Nlc3MuaAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdv
cmtQcm9jZXNzLmgKQEAgLTEzNyw2ICsxMzcsOCBAQCBwdWJsaWM6CiAgICAgU2Vjb25kcyBsb2Fk
VGhyb3R0bGVMYXRlbmN5KCkgY29uc3QgeyByZXR1cm4gbV9sb2FkVGhyb3R0bGVMYXRlbmN5OyB9
CiAgICAgU3RyaW5nIGNhY2hlU3RvcmFnZURpcmVjdG9yeShQQUw6OlNlc3Npb25JRCkgY29uc3Q7
CiAKKyAgICB2b2lkIHByZWNvbm5lY3RUbyhjb25zdCBXZWJDb3JlOjpVUkwmLCBXZWJDb3JlOjpT
dG9yZWRDcmVkZW50aWFsc1BvbGljeSk7CisKIHByaXZhdGU6CiAgICAgTmV0d29ya1Byb2Nlc3Mo
KTsKICAgICB+TmV0d29ya1Byb2Nlc3MoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0
d29ya1Byb2Nlc3MvUHJlY29ubmVjdFRhc2suY3BwIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJv
Y2Vzcy9QcmVjb25uZWN0VGFzay5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAuLjA5MGYzZTljZWNlCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9OZXR3
b3JrUHJvY2Vzcy9QcmVjb25uZWN0VGFzay5jcHAKQEAgLTAsMCArMSwxMjAgQEAKKy8qCisgKiBD
b3B5cmlnaHQgKEMpIDIwMTcgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAq
IFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGgg
b3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQg
dGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRp
b25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVj
ZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0
aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9u
LgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRT
IENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdB
UlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQg
V0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxB
UgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5D
LiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElS
RUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFM
IERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgor
ICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBS
T0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBP
TiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklD
VCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkK
KyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBF
VkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAq
LworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiUHJlY29ubmVjdFRhc2suaCIKKwor
I2lmIEVOQUJMRShTRVJWRVJfUFJFQ09OTkVDVCkKKworI2luY2x1ZGUgIkF1dGhlbnRpY2F0aW9u
TWFuYWdlci5oIgorI2luY2x1ZGUgIkxvZ2dpbmcuaCIKKyNpbmNsdWRlICJOZXR3b3JrTG9hZFBh
cmFtZXRlcnMuaCIKKyNpbmNsdWRlICJOZXR3b3JrU2Vzc2lvbi5oIgorI2luY2x1ZGUgPFdlYkNv
cmUvQXV0aGVudGljYXRpb25DaGFsbGVuZ2UuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL1Jlc291cmNl
RXJyb3IuaD4KKworI2lmIFBMQVRGT1JNKENPQ09BKQorI2luY2x1ZGUgIk5ldHdvcmtEYXRhVGFz
a0NvY29hLmgiCisjZW5kaWYKKworbmFtZXNwYWNlIFdlYktpdCB7CisKK3VzaW5nIG5hbWVzcGFj
ZSBXZWJDb3JlOworCitQcmVjb25uZWN0VGFzazo6UHJlY29ubmVjdFRhc2soY29uc3QgVVJMJiB1
cmwsIFdlYkNvcmU6OlN0b3JlZENyZWRlbnRpYWxzUG9saWN5IHN0b3JlZENyZWRlbnRpYWxzUG9s
aWN5KQoreworICAgIFJFTEVBU0VfTE9HKE5ldHdvcmssICIlcCAtIFByZWNvbm5lY3RUYXNrOjpQ
cmVjb25uZWN0VGFzaygpIiwgdGhpcyk7CisgICAgTmV0d29ya0xvYWRQYXJhbWV0ZXJzIHBhcmFt
ZXRlcnM7CisgICAgcGFyYW1ldGVycy5yZXF1ZXN0ID0gUmVzb3VyY2VSZXF1ZXN0KHVybCk7Cisg
ICAgcGFyYW1ldGVycy5zaG91bGRQcmVjb25uZWN0T25seSA9IFByZWNvbm5lY3RPbmx5OjpZZXM7
CisgICAgcGFyYW1ldGVycy5zdG9yZWRDcmVkZW50aWFsc1BvbGljeSA9IHN0b3JlZENyZWRlbnRp
YWxzUG9saWN5OworICAgIG1fdGFzayA9IE5ldHdvcmtEYXRhVGFzazo6Y3JlYXRlKE5ldHdvcmtT
ZXNzaW9uOjpkZWZhdWx0U2Vzc2lvbigpLCAqdGhpcywgcGFyYW1ldGVycyk7CisgICAgbV90YXNr
LT5yZXN1bWUoKTsKK30KKworUHJlY29ubmVjdFRhc2s6On5QcmVjb25uZWN0VGFzaygpCit7Cisg
ICAgQVNTRVJUKG1fdGFzay0+Y2xpZW50KCkgPT0gdGhpcyk7CisgICAgbV90YXNrLT5jbGVhckNs
aWVudCgpOworICAgIG1fdGFzay0+Y2FuY2VsKCk7Cit9CisKK3ZvaWQgUHJlY29ubmVjdFRhc2s6
OndpbGxQZXJmb3JtSFRUUFJlZGlyZWN0aW9uKFdlYkNvcmU6OlJlc291cmNlUmVzcG9uc2UmJiwg
V2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiYsIFJlZGlyZWN0Q29tcGxldGlvbkhhbmRsZXImJikK
K3sKKyAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKK30KKwordm9pZCBQcmVjb25uZWN0VGFzazo6
ZGlkUmVjZWl2ZUNoYWxsZW5nZShjb25zdCBXZWJDb3JlOjpBdXRoZW50aWNhdGlvbkNoYWxsZW5n
ZSYgY2hhbGxlbmdlLCBDaGFsbGVuZ2VDb21wbGV0aW9uSGFuZGxlciYmIGNvbXBsZXRpb25IYW5k
bGVyKQoreworICAgIGlmIChjaGFsbGVuZ2UucHJvdGVjdGlvblNwYWNlKCkuYXV0aGVudGljYXRp
b25TY2hlbWUoKSA9PSBQcm90ZWN0aW9uU3BhY2VBdXRoZW50aWNhdGlvblNjaGVtZVNlcnZlclRy
dXN0RXZhbHVhdGlvblJlcXVlc3RlZCkgeworICAgICAgICBpZiAobV90YXNrICYmIG1fdGFzay0+
YWxsb3dzU3BlY2lmaWNIVFRQU0NlcnRpZmljYXRlRm9ySG9zdChjaGFsbGVuZ2UpKQorICAgICAg
ICAgICAgY29tcGxldGlvbkhhbmRsZXIoQXV0aGVudGljYXRpb25DaGFsbGVuZ2VEaXNwb3NpdGlv
bjo6VXNlQ3JlZGVudGlhbCwgc2VydmVyVHJ1c3RDcmVkZW50aWFsKGNoYWxsZW5nZSkpOworICAg
ICAgICBlbHNlCisgICAgICAgICAgICBjb21wbGV0aW9uSGFuZGxlcihBdXRoZW50aWNhdGlvbkNo
YWxsZW5nZURpc3Bvc2l0aW9uOjpSZWplY3RQcm90ZWN0aW9uU3BhY2UsIHsgfSk7CisgICAgICAg
IHJldHVybjsKKyAgICB9CisgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7Cit9CisKK3ZvaWQgUHJl
Y29ubmVjdFRhc2s6OmRpZFJlY2VpdmVSZXNwb25zZU5ldHdvcmtTZXNzaW9uKFdlYkNvcmU6OlJl
c291cmNlUmVzcG9uc2UmJiwgUmVzcG9uc2VDb21wbGV0aW9uSGFuZGxlciYmKQoreworICAgIEFT
U0VSVF9OT1RfUkVBQ0hFRCgpOworfQorCit2b2lkIFByZWNvbm5lY3RUYXNrOjpkaWRSZWNlaXZl
RGF0YShSZWY8V2ViQ29yZTo6U2hhcmVkQnVmZmVyPiYmKQoreworICAgIEFTU0VSVF9OT1RfUkVB
Q0hFRCgpOworfQorCit2b2lkIFByZWNvbm5lY3RUYXNrOjpkaWRDb21wbGV0ZVdpdGhFcnJvcihj
b25zdCBXZWJDb3JlOjpSZXNvdXJjZUVycm9yJiBlcnJvciwgY29uc3QgV2ViQ29yZTo6TmV0d29y
a0xvYWRNZXRyaWNzJikKK3sKKyAgICBpZiAoZXJyb3IuaXNOdWxsKCkpCisgICAgICAgIFJFTEVB
U0VfTE9HKE5ldHdvcmssICIlcCAtIFByZWNvbm5lY3RUYXNrOjpkaWRDb21wbGV0ZSIsIHRoaXMp
OworICAgIGVsc2UKKyAgICAgICAgUkVMRUFTRV9MT0coTmV0d29yaywgIiVwIC0gUHJlY29ubmVj
dFRhc2s6OmRpZENvbXBsZXRlV2l0aEVycm9yLCBlcnJvcl9jb2RlOiAlZCIsIHRoaXMsIGVycm9y
LmVycm9yQ29kZSgpKTsKKworICAgIGRlbGV0ZSB0aGlzOworfQorCit2b2lkIFByZWNvbm5lY3RU
YXNrOjpkaWRTZW5kRGF0YSh1aW50NjRfdCB0b3RhbEJ5dGVzU2VudCwgdWludDY0X3QgdG90YWxC
eXRlc0V4cGVjdGVkVG9TZW5kKQoreworICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOworfQorCit2
b2lkIFByZWNvbm5lY3RUYXNrOjp3YXNCbG9ja2VkKCkKK3sKKyAgICBSRUxFQVNFX0xPRyhOZXR3
b3JrLCAiJXAgLSBQcmVjb25uZWN0VGFzazo6d2FzQmxvY2tlZCgpIiwgdGhpcyk7CisgICAgZGVs
ZXRlIHRoaXM7Cit9CisKK3ZvaWQgUHJlY29ubmVjdFRhc2s6OmNhbm5vdFNob3dVUkwoKQorewor
ICAgIFJFTEVBU0VfTE9HKE5ldHdvcmssICIlcCAtIFByZWNvbm5lY3RUYXNrOjpjYW5ub3RTaG93
VVJMKCkiLCB0aGlzKTsKKyAgICBkZWxldGUgdGhpczsKK30KKworfSAvLyBuYW1lc3BhY2UgV2Vi
S2l0CisKKyNlbmRpZiAvLyBFTkFCTEUoU0VSVkVSX1BSRUNPTk5FQ1QpCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL1ByZWNvbm5lY3RUYXNrLmggYi9Tb3VyY2UvV2Vi
S2l0L05ldHdvcmtQcm9jZXNzL1ByZWNvbm5lY3RUYXNrLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAuLjk2YjViNjc3Nzg0Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNl
L1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9QcmVjb25uZWN0VGFzay5oCkBAIC0wLDAgKzEsNTUgQEAK
Ky8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTcgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVk
LgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9y
bXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3Zp
ZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVk
aXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0
IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBk
b2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlz
dHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5D
LiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJ
TVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhF
IElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEg
UEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwg
QVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJF
Q1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05T
RVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJF
TUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERB
VEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FV
U0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJB
Q1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9U
SEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNP
RlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERB
TUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworI2lmIEVOQUJMRShTRVJWRVJfUFJFQ09OTkVD
VCkKKworI2luY2x1ZGUgIk5ldHdvcmtEYXRhVGFzay5oIgorCituYW1lc3BhY2UgV2ViS2l0IHsK
KworY2xhc3MgUHJlY29ubmVjdFRhc2sgZmluYWwgOiBwcml2YXRlIE5ldHdvcmtEYXRhVGFza0Ns
aWVudCB7CitwdWJsaWM6CisgICAgZXhwbGljaXQgUHJlY29ubmVjdFRhc2soY29uc3QgV2ViQ29y
ZTo6VVJMJiwgV2ViQ29yZTo6U3RvcmVkQ3JlZGVudGlhbHNQb2xpY3kpOworICAgIH5QcmVjb25u
ZWN0VGFzaygpOworCitwcml2YXRlOgorICAgIC8vIE5ldHdvcmtEYXRhVGFza0NsaWVudC4KKyAg
ICB2b2lkIHdpbGxQZXJmb3JtSFRUUFJlZGlyZWN0aW9uKFdlYkNvcmU6OlJlc291cmNlUmVzcG9u
c2UmJiwgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiYsIFJlZGlyZWN0Q29tcGxldGlvbkhhbmRs
ZXImJikgZmluYWw7CisgICAgdm9pZCBkaWRSZWNlaXZlQ2hhbGxlbmdlKGNvbnN0IFdlYkNvcmU6
OkF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlJiwgQ2hhbGxlbmdlQ29tcGxldGlvbkhhbmRsZXImJikg
ZmluYWw7CisgICAgdm9pZCBkaWRSZWNlaXZlUmVzcG9uc2VOZXR3b3JrU2Vzc2lvbihXZWJDb3Jl
OjpSZXNvdXJjZVJlc3BvbnNlJiYsIFJlc3BvbnNlQ29tcGxldGlvbkhhbmRsZXImJikgZmluYWw7
CisgICAgdm9pZCBkaWRSZWNlaXZlRGF0YShSZWY8V2ViQ29yZTo6U2hhcmVkQnVmZmVyPiYmKSBm
aW5hbDsKKyAgICB2b2lkIGRpZENvbXBsZXRlV2l0aEVycm9yKGNvbnN0IFdlYkNvcmU6OlJlc291
cmNlRXJyb3ImLCBjb25zdCBXZWJDb3JlOjpOZXR3b3JrTG9hZE1ldHJpY3MmKSBmaW5hbDsKKyAg
ICB2b2lkIGRpZFNlbmREYXRhKHVpbnQ2NF90IHRvdGFsQnl0ZXNTZW50LCB1aW50NjRfdCB0b3Rh
bEJ5dGVzRXhwZWN0ZWRUb1NlbmQpIGZpbmFsOworICAgIHZvaWQgd2FzQmxvY2tlZCgpIGZpbmFs
OworICAgIHZvaWQgY2Fubm90U2hvd1VSTCgpIGZpbmFsOworCisgICAgUmVmUHRyPE5ldHdvcmtE
YXRhVGFzaz4gbV90YXNrOworfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CisKKyNlbmRpZiAv
LyBFTkFCTEUoU0VSVkVSX1BSRUNPTk5FQ1QpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05l
dHdvcmtQcm9jZXNzL2NvY29hL05ldHdvcmtEYXRhVGFza0NvY29hLmggYi9Tb3VyY2UvV2ViS2l0
L05ldHdvcmtQcm9jZXNzL2NvY29hL05ldHdvcmtEYXRhVGFza0NvY29hLmgKaW5kZXggY2RmNDMy
NGMwNmIuLjIxMmE5YTA4ZmIxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9j
ZXNzL2NvY29hL05ldHdvcmtEYXRhVGFza0NvY29hLmgKKysrIGIvU291cmNlL1dlYktpdC9OZXR3
b3JrUHJvY2Vzcy9jb2NvYS9OZXR3b3JrRGF0YVRhc2tDb2NvYS5oCkBAIC0yOCw2ICsyOCw3IEBA
CiAjaWYgVVNFKE5FVFdPUktfU0VTU0lPTikKIAogI2luY2x1ZGUgIk5ldHdvcmtEYXRhVGFzay5o
IgorI2luY2x1ZGUgIk5ldHdvcmtMb2FkUGFyYW1ldGVycy5oIgogI2luY2x1ZGUgPFdlYkNvcmUv
TmV0d29ya0xvYWRNZXRyaWNzLmg+CiAjaW5jbHVkZSA8d3RmL1JldGFpblB0ci5oPgogCkBAIC00
MCw5ICs0MSw5IEBAIGNsYXNzIE5ldHdvcmtTZXNzaW9uQ29jb2E7CiBjbGFzcyBOZXR3b3JrRGF0
YVRhc2tDb2NvYSBmaW5hbCA6IHB1YmxpYyBOZXR3b3JrRGF0YVRhc2sgewogICAgIGZyaWVuZCBj
bGFzcyBOZXR3b3JrU2Vzc2lvbkNvY29hOwogcHVibGljOgotICAgIHN0YXRpYyBSZWY8TmV0d29y
a0RhdGFUYXNrPiBjcmVhdGUoTmV0d29ya1Nlc3Npb24mIHNlc3Npb24sIE5ldHdvcmtEYXRhVGFz
a0NsaWVudCYgY2xpZW50LCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3Qs
IFdlYkNvcmU6OlN0b3JlZENyZWRlbnRpYWxzUG9saWN5IHN0b3JlZENyZWRlbnRpYWxzUG9saWN5
LCBXZWJDb3JlOjpDb250ZW50U25pZmZpbmdQb2xpY3kgc2hvdWxkQ29udGVudFNuaWZmLCBib29s
IHNob3VsZENsZWFyUmVmZXJyZXJPbkhUVFBTVG9IVFRQUmVkaXJlY3QpCisgICAgc3RhdGljIFJl
ZjxOZXR3b3JrRGF0YVRhc2s+IGNyZWF0ZShOZXR3b3JrU2Vzc2lvbiYgc2Vzc2lvbiwgTmV0d29y
a0RhdGFUYXNrQ2xpZW50JiBjbGllbnQsIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYg
cmVxdWVzdCwgV2ViQ29yZTo6U3RvcmVkQ3JlZGVudGlhbHNQb2xpY3kgc3RvcmVkQ3JlZGVudGlh
bHNQb2xpY3ksIFdlYkNvcmU6OkNvbnRlbnRTbmlmZmluZ1BvbGljeSBzaG91bGRDb250ZW50U25p
ZmYsIGJvb2wgc2hvdWxkQ2xlYXJSZWZlcnJlck9uSFRUUFNUb0hUVFBSZWRpcmVjdCwgUHJlY29u
bmVjdE9ubHkgc2hvdWxkUHJlY29ubmVjdE9ubHkpCiAgICAgewotICAgICAgICByZXR1cm4gYWRv
cHRSZWYoKm5ldyBOZXR3b3JrRGF0YVRhc2tDb2NvYShzZXNzaW9uLCBjbGllbnQsIHJlcXVlc3Qs
IHN0b3JlZENyZWRlbnRpYWxzUG9saWN5LCBzaG91bGRDb250ZW50U25pZmYsIHNob3VsZENsZWFy
UmVmZXJyZXJPbkhUVFBTVG9IVFRQUmVkaXJlY3QpKTsKKyAgICAgICAgcmV0dXJuIGFkb3B0UmVm
KCpuZXcgTmV0d29ya0RhdGFUYXNrQ29jb2Eoc2Vzc2lvbiwgY2xpZW50LCByZXF1ZXN0LCBzdG9y
ZWRDcmVkZW50aWFsc1BvbGljeSwgc2hvdWxkQ29udGVudFNuaWZmLCBzaG91bGRDbGVhclJlZmVy
cmVyT25IVFRQU1RvSFRUUFJlZGlyZWN0LCBzaG91bGRQcmVjb25uZWN0T25seSkpOwogICAgIH0K
IAogICAgIH5OZXR3b3JrRGF0YVRhc2tDb2NvYSgpOwpAQCAtNzEsNyArNzIsNyBAQCBwdWJsaWM6
CiAgICAgV2ViQ29yZTo6TmV0d29ya0xvYWRNZXRyaWNzJiBuZXR3b3JrTG9hZE1ldHJpY3MoKSB7
IHJldHVybiBtX25ldHdvcmtMb2FkTWV0cmljczsgfQogCiBwcml2YXRlOgotICAgIE5ldHdvcmtE
YXRhVGFza0NvY29hKE5ldHdvcmtTZXNzaW9uJiwgTmV0d29ya0RhdGFUYXNrQ2xpZW50JiwgY29u
c3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiwgV2ViQ29yZTo6U3RvcmVkQ3JlZGVudGlhbHNQ
b2xpY3ksIFdlYkNvcmU6OkNvbnRlbnRTbmlmZmluZ1BvbGljeSwgYm9vbCBzaG91bGRDbGVhclJl
ZmVycmVyT25IVFRQU1RvSFRUUFJlZGlyZWN0KTsKKyAgICBOZXR3b3JrRGF0YVRhc2tDb2NvYShO
ZXR3b3JrU2Vzc2lvbiYsIE5ldHdvcmtEYXRhVGFza0NsaWVudCYsIGNvbnN0IFdlYkNvcmU6OlJl
c291cmNlUmVxdWVzdCYsIFdlYkNvcmU6OlN0b3JlZENyZWRlbnRpYWxzUG9saWN5LCBXZWJDb3Jl
OjpDb250ZW50U25pZmZpbmdQb2xpY3ksIGJvb2wgc2hvdWxkQ2xlYXJSZWZlcnJlck9uSFRUUFNU
b0hUVFBSZWRpcmVjdCwgUHJlY29ubmVjdE9ubHkpOwogCiAgICAgYm9vbCB0cnlQYXNzd29yZEJh
c2VkQXV0aGVudGljYXRpb24oY29uc3QgV2ViQ29yZTo6QXV0aGVudGljYXRpb25DaGFsbGVuZ2Um
LCBDaGFsbGVuZ2VDb21wbGV0aW9uSGFuZGxlciYpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L05ldHdvcmtQcm9jZXNzL2NvY29hL05ldHdvcmtEYXRhVGFza0NvY29hLm1tIGIvU291cmNl
L1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9jb2NvYS9OZXR3b3JrRGF0YVRhc2tDb2NvYS5tbQppbmRl
eCA5OTdlMGVlMWFmNi4uZGJiYjEwMDQwMTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0
d29ya1Byb2Nlc3MvY29jb2EvTmV0d29ya0RhdGFUYXNrQ29jb2EubW0KKysrIGIvU291cmNlL1dl
YktpdC9OZXR3b3JrUHJvY2Vzcy9jb2NvYS9OZXR3b3JrRGF0YVRhc2tDb2NvYS5tbQpAQCAtNzQs
NyArNzQsNyBAQCBzdGF0aWMgZmxvYXQgdG9OU1VSTFNlc3Npb25UYXNrUHJpb3JpdHkoV2ViQ29y
ZTo6UmVzb3VyY2VMb2FkUHJpb3JpdHkgcHJpb3JpdHkpCiAgICAgcmV0dXJuIE5TVVJMU2Vzc2lv
blRhc2tQcmlvcml0eURlZmF1bHQ7CiB9CiAKLU5ldHdvcmtEYXRhVGFza0NvY29hOjpOZXR3b3Jr
RGF0YVRhc2tDb2NvYShOZXR3b3JrU2Vzc2lvbiYgc2Vzc2lvbiwgTmV0d29ya0RhdGFUYXNrQ2xp
ZW50JiBjbGllbnQsIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYgcmVxdWVzdFdpdGhD
cmVkZW50aWFscywgV2ViQ29yZTo6U3RvcmVkQ3JlZGVudGlhbHNQb2xpY3kgc3RvcmVkQ3JlZGVu
dGlhbHNQb2xpY3ksIFdlYkNvcmU6OkNvbnRlbnRTbmlmZmluZ1BvbGljeSBzaG91bGRDb250ZW50
U25pZmYsIGJvb2wgc2hvdWxkQ2xlYXJSZWZlcnJlck9uSFRUUFNUb0hUVFBSZWRpcmVjdCkKK05l
dHdvcmtEYXRhVGFza0NvY29hOjpOZXR3b3JrRGF0YVRhc2tDb2NvYShOZXR3b3JrU2Vzc2lvbiYg
c2Vzc2lvbiwgTmV0d29ya0RhdGFUYXNrQ2xpZW50JiBjbGllbnQsIGNvbnN0IFdlYkNvcmU6OlJl
c291cmNlUmVxdWVzdCYgcmVxdWVzdFdpdGhDcmVkZW50aWFscywgV2ViQ29yZTo6U3RvcmVkQ3Jl
ZGVudGlhbHNQb2xpY3kgc3RvcmVkQ3JlZGVudGlhbHNQb2xpY3ksIFdlYkNvcmU6OkNvbnRlbnRT
bmlmZmluZ1BvbGljeSBzaG91bGRDb250ZW50U25pZmYsIGJvb2wgc2hvdWxkQ2xlYXJSZWZlcnJl
ck9uSFRUUFNUb0hUVFBSZWRpcmVjdCwgUHJlY29ubmVjdE9ubHkgc2hvdWxkUHJlY29ubmVjdE9u
bHkpCiAgICAgOiBOZXR3b3JrRGF0YVRhc2soc2Vzc2lvbiwgY2xpZW50LCByZXF1ZXN0V2l0aENy
ZWRlbnRpYWxzLCBzdG9yZWRDcmVkZW50aWFsc1BvbGljeSwgc2hvdWxkQ2xlYXJSZWZlcnJlck9u
SFRUUFNUb0hUVFBSZWRpcmVjdCkKIHsKICAgICBpZiAobV9zY2hlZHVsZWRGYWlsdXJlVHlwZSAh
PSBOb0ZhaWx1cmUpCkBAIC0xMjgsNiArMTI4LDE0IEBAIE5ldHdvcmtEYXRhVGFza0NvY29hOjpO
ZXR3b3JrRGF0YVRhc2tDb2NvYShOZXR3b3JrU2Vzc2lvbiYgc2Vzc2lvbiwgTmV0d29ya0RhdGFU
CiAgICAgICAgIExPRyhOZXR3b3JrU2Vzc2lvbiwgIiVsbHUgQ3JlYXRpbmcgTmV0d29ya0RhdGFU
YXNrIHdpdGggVVJMICVzIiwgW21fdGFzayB0YXNrSWRlbnRpZmllcl0sIG5zUmVxdWVzdC5VUkwu
YWJzb2x1dGVTdHJpbmcuVVRGOFN0cmluZyk7CiAgICAgfQogCisgICAgaWYgKHNob3VsZFByZWNv
bm5lY3RPbmx5ID09IFByZWNvbm5lY3RPbmx5OjpZZXMpIHsKKyNpZiBFTkFCTEUoU0VSVkVSX1BS
RUNPTk5FQ1QpCisgICAgICAgIG1fdGFzay5nZXQoKS5fcHJlY29ubmVjdCA9IHRydWU7CisjZWxz
ZQorICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKKyNlbmRpZgorICAgIH0KKwogI2lmIEhB
VkUoQ0ZORVRXT1JLX1NUT1JBR0VfUEFSVElUSU9OSU5HKQogICAgIGlmIChzdG9yZWRDcmVkZW50
aWFsc1BvbGljeSA9PSBXZWJDb3JlOjpTdG9yZWRDcmVkZW50aWFsc1BvbGljeTo6VXNlKSB7CiAg
ICAgICAgIFN0cmluZyBzdG9yYWdlUGFydGl0aW9uID0gc2Vzc2lvbi5uZXR3b3JrU3RvcmFnZVNl
c3Npb24oKS5jb29raWVTdG9yYWdlUGFydGl0aW9uKHJlcXVlc3QpOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9TaGFyZWQvV2ViQ29yZUFyZ3VtZW50Q29kZXJzLmggYi9Tb3VyY2UvV2ViS2l0
L1NoYXJlZC9XZWJDb3JlQXJndW1lbnRDb2RlcnMuaAppbmRleCAwOGMzODM5MGI4NC4uZWIzZGI1
MGQ5NmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkNvcmVBcmd1bWVudENv
ZGVycy5oCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkNvcmVBcmd1bWVudENvZGVycy5o
CkBAIC0zOSw2ICszOSw3IEBACiAjaW5jbHVkZSA8V2ViQ29yZS9QYXltZW50SGVhZGVycy5oPgog
I2luY2x1ZGUgPFdlYkNvcmUvUmVhbHRpbWVNZWRpYVNvdXJjZS5oPgogI2luY2x1ZGUgPFdlYkNv
cmUvU2Nyb2xsU25hcE9mZnNldHNJbmZvLmg+CisjaW5jbHVkZSA8V2ViQ29yZS9TdG9yZWRDcmVk
ZW50aWFsc1BvbGljeS5oPgogCiBuYW1lc3BhY2UgV1RGIHsKIGNsYXNzIE1vbm90b25pY1RpbWU7
CkBAIC03NjYsNCArNzY3LDEyIEBAIHRlbXBsYXRlPD4gc3RydWN0IEVudW1UcmFpdHM8V2ViQ29y
ZTo6TWVkaWFTZWxlY3Rpb25PcHRpb246OlR5cGU+IHsKICAgICA+OwogfTsKIAordGVtcGxhdGUg
PD4gc3RydWN0IEVudW1UcmFpdHM8V2ViQ29yZTo6U3RvcmVkQ3JlZGVudGlhbHNQb2xpY3k+IHsK
KyAgICB1c2luZyB2YWx1ZXMgPSBFbnVtVmFsdWVzPAorICAgICAgICBXZWJDb3JlOjpTdG9yZWRD
cmVkZW50aWFsc1BvbGljeSwKKyAgICAgICAgV2ViQ29yZTo6U3RvcmVkQ3JlZGVudGlhbHNQb2xp
Y3k6OkRvTm90VXNlLAorICAgICAgICBXZWJDb3JlOjpTdG9yZWRDcmVkZW50aWFsc1BvbGljeTo6
VXNlCisgICAgPjsKK307CisKIH0gLy8gbmFtZXNwYWNlIFdURgpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9TaGFyZWQvV2ViUHJlZmVyZW5jZXNEZWZpbml0aW9ucy5oIGIvU291cmNlL1dlYktp
dC9TaGFyZWQvV2ViUHJlZmVyZW5jZXNEZWZpbml0aW9ucy5oCmluZGV4IDU3ZGRkMWIzMDJjLi43
MjM2YzBjZDQzNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViUHJlZmVyZW5j
ZXNEZWZpbml0aW9ucy5oCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYlByZWZlcmVuY2Vz
RGVmaW5pdGlvbnMuaApAQCAtNDUsNiArNDUsMTIgQEAKICNkZWZpbmUgREVGQVVMVF9ISURERU5f
UEFHRV9DU1NfQU5JTUFUSU9OX1NVU1BFTlNJT05fRU5BQkxFRCBmYWxzZQogI2VuZGlmCiAKKyNp
ZiBFTkFCTEUoU0VSVkVSX1BSRUNPTk5FQ1QpCisjZGVmaW5lIERFRkFVTFRfTElOS19QUkVDT05O
RUNUX0VOQUJMRUQgdHJ1ZQorI2Vsc2UKKyNkZWZpbmUgREVGQVVMVF9MSU5LX1BSRUNPTk5FQ1Rf
RU5BQkxFRCBmYWxzZQorI2VuZGlmCisKICNpZiBQTEFURk9STShDT0NPQSkKICNkZWZpbmUgREVG
QVVMVF9QREZQTFVHSU5fRU5BQkxFRCB0cnVlCiAjZWxzZQpAQCAtMTgxLDYgKzE4Nyw3IEBACiAg
ICAgbWFjcm8oRE9NUGFzdGVBbGxvd2VkLCBkb21QYXN0ZUFsbG93ZWQsIEJvb2wsIGJvb2wsIGZh
bHNlLCAiIiwgIiIpIFwKICAgICBtYWNybyhKYXZhU2NyaXB0Q2FuQWNjZXNzQ2xpcGJvYXJkLCBq
YXZhU2NyaXB0Q2FuQWNjZXNzQ2xpcGJvYXJkLCBCb29sLCBib29sLCBmYWxzZSwgIiIsICIiKSBc
CiAgICAgbWFjcm8oU2hvdWxkUHJpbnRCYWNrZ3JvdW5kcywgc2hvdWxkUHJpbnRCYWNrZ3JvdW5k
cywgQm9vbCwgYm9vbCwgREVGQVVMVF9TSE9VTERfUFJJTlRfQkFDS0dST1VORFMsICIiLCAiIikg
XAorICAgIG1hY3JvKExpbmtQcmVjb25uZWN0LCBsaW5rUHJlY29ubmVjdCwgQm9vbCwgYm9vbCwg
REVGQVVMVF9MSU5LX1BSRUNPTk5FQ1RfRU5BQkxFRCwgIiIsICIiKSBcCiAgICAgbWFjcm8oRnVs
bFNjcmVlbkVuYWJsZWQsIGZ1bGxTY3JlZW5FbmFibGVkLCBCb29sLCBib29sLCBmYWxzZSwgIiIs
ICIiKSBcCiAgICAgbWFjcm8oQXN5bmNocm9ub3VzU3BlbGxDaGVja2luZ0VuYWJsZWQsIGFzeW5j
aHJvbm91c1NwZWxsQ2hlY2tpbmdFbmFibGVkLCBCb29sLCBib29sLCBmYWxzZSwgIiIsICIiKSBc
CiAgICAgbWFjcm8oV2ViU2VjdXJpdHlFbmFibGVkLCB3ZWJTZWN1cml0eUVuYWJsZWQsIEJvb2ws
IGJvb2wsIHRydWUsICIiLCAiIikgXApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJLaXQu
eGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1NvdXJjZS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJv
ai9wcm9qZWN0LnBieHByb2oKaW5kZXggNjgwN2U5M2NkZGMuLmMyOGNjMTFjNWVlIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L1dlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBi
L1NvdXJjZS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTEzODAs
NiArMTM4MCw4IEBACiAJCTgzOTkwMjAzMUJFOUEwMkIwMDBGMzY1MyAvKiBOZXR3b3JrTG9hZC5o
IGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODM5OTAxRkUx
QkU5QTAxQjAwMEYzNjUzIC8qIE5ldHdvcmtMb2FkLmggKi87IH07CiAJCTgzOUEyRjMxMUUyMDY3
NDUwMDM5MDU3RSAvKiBIaWdoUGVyZm9ybWFuY2VHcmFwaGljc1VzYWdlU2FtcGxlci5jcHAgaW4g
U291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4MzlBMkYyRjFFMjA2
NzM5MDAzOTA1N0UgLyogSGlnaFBlcmZvcm1hbmNlR3JhcGhpY3NVc2FnZVNhbXBsZXIuY3BwICov
OyB9OwogCQk4MzlBMkYzMjFFMjA2NzQ1MDAzOTA1N0UgLyogSGlnaFBlcmZvcm1hbmNlR3JhcGhp
Y3NVc2FnZVNhbXBsZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDgzOUEyRjMwMUUyMDY3MzkwMDM5MDU3RSAvKiBIaWdoUGVyZm9ybWFuY2VHcmFwaGlj
c1VzYWdlU2FtcGxlci5oICovOyB9OworCQk4M0EwRUQzNDFGNzQ3Q0NEMDAzMjk5RUIgLyogUHJl
Y29ubmVjdFRhc2suY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gODNBMEVEMzMxRjc0N0NDNzAwMzI5OUVCIC8qIFByZWNvbm5lY3RUYXNrLmNwcCAqLzsg
fTsKKwkJODNBMEVEMzUxRjc0N0NDRjAwMzI5OUVCIC8qIFByZWNvbm5lY3RUYXNrLmggaW4gSGVh
ZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4M0EwRUQzMjFGNzQ3Q0M2
MDAzMjk5RUIgLyogUHJlY29ubmVjdFRhc2suaCAqLzsgfTsKIAkJODNCRENDQjkxQUM1RkRCNjAw
M0Y2NDQxIC8qIE5ldHdvcmtDYWNoZVN0YXRpc3RpY3MuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODNCRENDQjgxQUM1RkRCNjAwM0Y2NDQxIC8qIE5l
dHdvcmtDYWNoZVN0YXRpc3RpY3MuY3BwICovOyB9OwogCQk4M0JGQUM0MjFEOTYxMzdDMDA0MzM0
OTAgLyogQmxvYkRvd25sb2FkQ2xpZW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSA4M0JGQUM0MDFEOTYxMzYwMDA0MzM0OTAgLyogQmxvYkRvd25sb2Fk
Q2xpZW50LmggKi87IH07CiAJCTgzQkZBQzQzMUQ5NjEzN0MwMDQzMzQ5MCAvKiBCbG9iRG93bmxv
YWRDbGllbnQuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gODNCRkFDNDExRDk2MTM2MDAwNDMzNDkwIC8qIEJsb2JEb3dubG9hZENsaWVudC5jcHAgKi87
IH07CkBAIC0zNzMzLDYgKzM3MzUsOCBAQAogCQk4Mzk5MDFGRjFCRTlBMDFCMDAwRjM2NTMgLyog
TmV0d29ya0xvYWQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBuYW1lID0gTmV0
d29ya0xvYWQuY3BwOyBwYXRoID0gTmV0d29ya1Byb2Nlc3MvTmV0d29ya0xvYWQuY3BwOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk4MzlBMkYyRjFFMjA2NzM5MDAzOTA1N0UgLyogSGln
aFBlcmZvcm1hbmNlR3JhcGhpY3NVc2FnZVNhbXBsZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jcHAuY3BwOyBwYXRoID0gSGlnaFBlcmZvcm1hbmNlR3JhcGhpY3NVc2FnZVNhbXBsZXIuY3Bw
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk4MzlBMkYzMDFFMjA2NzM5MDAzOTA1N0Ug
LyogSGlnaFBlcmZvcm1hbmNlR3JhcGhpY3NVc2FnZVNhbXBsZXIuaCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuYy5oOyBwYXRoID0gSGlnaFBlcmZvcm1hbmNlR3JhcGhpY3NVc2FnZVNhbXBsZXIuaDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJODNBMEVEMzIxRjc0N0NDNjAwMzI5OUVCIC8q
IFByZWNvbm5lY3RUYXNrLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IFByZWNv
bm5lY3RUYXNrLmg7IHBhdGggPSBOZXR3b3JrUHJvY2Vzcy9QcmVjb25uZWN0VGFzay5oOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OworCQk4M0EwRUQzMzFGNzQ3Q0M3MDAzMjk5RUIgLyogUHJl
Y29ubmVjdFRhc2suY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBuYW1lID0gUHJl
Y29ubmVjdFRhc2suY3BwOyBwYXRoID0gTmV0d29ya1Byb2Nlc3MvUHJlY29ubmVjdFRhc2suY3Bw
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk4M0JEQ0NCODFBQzVGREI2MDAzRjY0NDEg
LyogTmV0d29ya0NhY2hlU3RhdGlzdGljcy5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5j
cHA7IHBhdGggPSBOZXR3b3JrQ2FjaGVTdGF0aXN0aWNzLmNwcDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJODNCRkFDNDAxRDk2MTM2MDAwNDMzNDkwIC8qIEJsb2JEb3dubG9hZENsaWVu
dC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBCbG9iRG93bmxvYWRDbGllbnQu
aDsgcGF0aCA9IE5ldHdvcmtQcm9jZXNzL0Rvd25sb2Fkcy9CbG9iRG93bmxvYWRDbGllbnQuaDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJODNCRkFDNDExRDk2MTM2MDAwNDMzNDkwIC8q
IEJsb2JEb3dubG9hZENsaWVudC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IG5h
bWUgPSBCbG9iRG93bmxvYWRDbGllbnQuY3BwOyBwYXRoID0gTmV0d29ya1Byb2Nlc3MvRG93bmxv
YWRzL0Jsb2JEb3dubG9hZENsaWVudC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBA
IC02MTE1LDYgKzYxMTksOCBAQAogCQkJCTVDMEIxNzdGMUU3Qzg4NjcwMEU5MTIzQyAvKiBOZXR3
b3JrU29ja2V0U3RyZWFtLm1lc3NhZ2VzLmluICovLAogCQkJCTQ2MjEwN0Q3MUYzOERCRDMwMERE
NzgxMCAvKiBQaW5nTG9hZC5jcHAgKi8sCiAJCQkJNUNFODVCMUYxQzg4RTY0MzAwNzBCRkNFIC8q
IFBpbmdMb2FkLmggKi8sCisJCQkJODNBMEVEMzMxRjc0N0NDNzAwMzI5OUVCIC8qIFByZWNvbm5l
Y3RUYXNrLmNwcCAqLywKKwkJCQk4M0EwRUQzMjFGNzQ3Q0M2MDAzMjk5RUIgLyogUHJlY29ubmVj
dFRhc2suaCAqLywKIAkJCQlFMUI3ODQ3MDE2M0YyNDY5MDAwN0I2OTIgLyogUmVtb3RlTmV0d29y
a2luZ0NvbnRleHQuaCAqLywKIAkJCSk7CiAJCQluYW1lID0gTmV0d29ya1Byb2Nlc3M7CkBAIC04
NzA5LDYgKzg3MTUsNyBAQAogCQkJCTFBNEE5RjMzMTJCODQ0RTIwMDhGRTk4NCAvKiBQbHVnaW5R
dWlya3MuaCBpbiBIZWFkZXJzICovLAogCQkJCTdDRDYyMjc4MTczOUQ4NjMwMDVCRDdGRiAvKiBQ
bHVnaW5TYW5kYm94UHJvZmlsZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMUE2RkI3QUYxMUU2NEI2
ODAwREIxMzcxIC8qIFBsdWdpblZpZXcuaCBpbiBIZWFkZXJzICovLAorCQkJCTgzQTBFRDM1MUY3
NDdDQ0YwMDMyOTlFQiAvKiBQcmVjb25uZWN0VGFzay5oIGluIEhlYWRlcnMgKi8sCiAJCQkJRTFD
QzFCOTAxMkQ3RUFERjAwNjI1ODM4IC8qIFByaW50SW5mby5oIGluIEhlYWRlcnMgKi8sCiAJCQkJ
ODZGOTUzNjUxOEZGNThGNTAwMURCMkVGIC8qIFByb2Nlc3NBc3NlcnRpb24uaCBpbiBIZWFkZXJz
ICovLAogCQkJCUJDMUE3QzU4MTEzNkUxOUMwMEZCNzE2NyAvKiBQcm9jZXNzTGF1bmNoZXIuaCBp
biBIZWFkZXJzICovLApAQCAtMTAyOTAsNiArMTAyOTcsNyBAQAogCQkJCTdDRDYyMjc3MTczOUQ4
NjMwMDVCRDdGRiAvKiBQbHVnaW5TYW5kYm94UHJvZmlsZS5tbSBpbiBTb3VyY2VzICovLAogCQkJ
CUJDODI4NDREMTZCNTA4MUMwMEEyNzhGRSAvKiBQbHVnaW5TZXJ2aWNlRW50cnlQb2ludC5tbSBp
biBTb3VyY2VzICovLAogCQkJCTFBNkZCN0FFMTFFNjRCNjgwMERCMTM3MSAvKiBQbHVnaW5WaWV3
LmNwcCBpbiBTb3VyY2VzICovLAorCQkJCTgzQTBFRDM0MUY3NDdDQ0QwMDMyOTlFQiAvKiBQcmVj
b25uZWN0VGFzay5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlFMThDOTJGNDEyREI5RTcxMDBDRjJB
RUIgLyogUHJpbnRJbmZvLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUUxQ0MxQjkxMTJEN0VBREYw
MDYyNTgzOCAvKiBQcmludEluZm9NYWMubW0gaW4gU291cmNlcyAqLywKIAkJCQkzNzcxNkE1QTE5
NUI5MTA1MDBFRThCMUIgLyogUHJvY2Vzc0Fzc2VydGlvbi5jcHAgaW4gU291cmNlcyAqLywKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9OZXR3b3JrL1dlYkxvYWRlclN0cmF0
ZWd5LmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9OZXR3b3JrL1dlYkxvYWRlclN0cmF0
ZWd5LmNwcAppbmRleCBlYTdiMTdhM2RlYi4uNmRlZjRkMGUzYzkgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9OZXR3b3JrL1dlYkxvYWRlclN0cmF0ZWd5LmNwcAorKysgYi9T
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvTmV0d29yay9XZWJMb2FkZXJTdHJhdGVneS5jcHAKQEAg
LTQ1OSw2ICs0NTksMTEgQEAgdm9pZCBXZWJMb2FkZXJTdHJhdGVneTo6ZGlkRmluaXNoUGluZ0xv
YWQodWludDY0X3QgcGluZ0xvYWRJZGVudGlmaWVyLCBSZXNvdXJjZUUKICAgICAgICAgY29tcGxl
dGlvbkhhbmRsZXIoV1RGTW92ZShlcnJvcikpOwogfQogCit2b2lkIFdlYkxvYWRlclN0cmF0ZWd5
OjpwcmVjb25uZWN0VG8oY29uc3QgV2ViQ29yZTo6VVJMJiB1cmwsIFN0b3JlZENyZWRlbnRpYWxz
UG9saWN5IHN0b3JlZENyZWRlbnRpYWxzUG9saWN5KQoreworICAgIFdlYlByb2Nlc3M6OnNpbmds
ZXRvbigpLm5ldHdvcmtDb25uZWN0aW9uKCkuY29ubmVjdGlvbigpLnNlbmQoTWVzc2FnZXM6Ok5l
dHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzOjpQcmVjb25uZWN0VG8odXJsLCBzdG9yZWRDcmVk
ZW50aWFsc1BvbGljeSksIDApOworfQorCiB2b2lkIFdlYkxvYWRlclN0cmF0ZWd5OjpzdG9yZURl
cml2ZWREYXRhVG9DYWNoZShjb25zdCBTSEExOjpEaWdlc3QmIGJvZHlIYXNoLCBjb25zdCBTdHJp
bmcmIHR5cGUsIGNvbnN0IFN0cmluZyYgcGFydGl0aW9uLCBXZWJDb3JlOjpTaGFyZWRCdWZmZXIm
IGRhdGEpCiB7CiAjaWYgRU5BQkxFKE5FVFdPUktfQ0FDSEUpCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvTmV0d29yay9XZWJMb2FkZXJTdHJhdGVneS5oIGIvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL05ldHdvcmsvV2ViTG9hZGVyU3RyYXRlZ3kuaAppbmRleCA1NzMwMjhl
NWE3Yi4uOGFkMTYzNTE0MDggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9O
ZXR3b3JrL1dlYkxvYWRlclN0cmF0ZWd5LmgKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L05ldHdvcmsvV2ViTG9hZGVyU3RyYXRlZ3kuaApAQCAtNjIsNiArNjIsOCBAQCBwdWJsaWM6CiAg
ICAgdm9pZCBzdGFydFBpbmdMb2FkKFdlYkNvcmU6OkZyYW1lJiwgV2ViQ29yZTo6UmVzb3VyY2VS
ZXF1ZXN0JiwgY29uc3QgV2ViQ29yZTo6SFRUUEhlYWRlck1hcCYgb3JpZ2luYWxSZXF1ZXN0SGVh
ZGVycywgY29uc3QgV2ViQ29yZTo6RmV0Y2hPcHRpb25zJiwgUGluZ0xvYWRDb21wbGV0aW9uSGFu
ZGxlciYmKSBmaW5hbDsKICAgICB2b2lkIGRpZEZpbmlzaFBpbmdMb2FkKHVpbnQ2NF90IHBpbmdM
b2FkSWRlbnRpZmllciwgV2ViQ29yZTo6UmVzb3VyY2VFcnJvciYmKTsKIAorICAgIHZvaWQgcHJl
Y29ubmVjdFRvKGNvbnN0IFdlYkNvcmU6OlVSTCYsIFdlYkNvcmU6OlN0b3JlZENyZWRlbnRpYWxz
UG9saWN5KSBmaW5hbDsKKwogICAgIHZvaWQgc3RvcmVEZXJpdmVkRGF0YVRvQ2FjaGUoY29uc3Qg
U0hBMTo6RGlnZXN0JiBib2R5SGFzaCwgY29uc3QgU3RyaW5nJiB0eXBlLCBjb25zdCBTdHJpbmcm
IHBhcnRpdGlvbiwgV2ViQ29yZTo6U2hhcmVkQnVmZmVyJikgZmluYWw7CiAKICAgICB2b2lkIHNl
dENhcHR1cmVFeHRyYU5ldHdvcmtMb2FkTWV0cmljc0VuYWJsZWQoYm9vbCkgZmluYWw7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcCBiL1Nv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwCmluZGV4IDgyNjFlMzM0
NTgyLi5hOGRlZTZmNWI3YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dl
YlBhZ2UvV2ViUGFnZS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2Uv
V2ViUGFnZS5jcHAKQEAgLTMwOTAsNiArMzA5MCw3IEBAIHZvaWQgV2ViUGFnZTo6dXBkYXRlUHJl
ZmVyZW5jZXMoY29uc3QgV2ViUHJlZmVyZW5jZXNTdG9yZSYgc3RvcmUpCiAgICAgc2V0dGluZ3Mu
c2V0UGFnaW5hdGVEdXJpbmdMYXlvdXRFbmFibGVkKHN0b3JlLmdldEJvb2xWYWx1ZUZvcktleShX
ZWJQcmVmZXJlbmNlc0tleTo6cGFnaW5hdGVEdXJpbmdMYXlvdXRFbmFibGVkS2V5KCkpKTsKICAg
ICBzZXR0aW5ncy5zZXRET01QYXN0ZUFsbG93ZWQoc3RvcmUuZ2V0Qm9vbFZhbHVlRm9yS2V5KFdl
YlByZWZlcmVuY2VzS2V5Ojpkb21QYXN0ZUFsbG93ZWRLZXkoKSkpOwogICAgIHNldHRpbmdzLnNl
dEphdmFTY3JpcHRDYW5BY2Nlc3NDbGlwYm9hcmQoc3RvcmUuZ2V0Qm9vbFZhbHVlRm9yS2V5KFdl
YlByZWZlcmVuY2VzS2V5OjpqYXZhU2NyaXB0Q2FuQWNjZXNzQ2xpcGJvYXJkS2V5KCkpKTsKKyAg
ICBzZXR0aW5ncy5zZXRMaW5rUHJlY29ubmVjdEVuYWJsZWQoc3RvcmUuZ2V0Qm9vbFZhbHVlRm9y
S2V5KFdlYlByZWZlcmVuY2VzS2V5OjpsaW5rUHJlY29ubmVjdEtleSgpKSk7CiAgICAgc2V0dGlu
Z3Muc2V0U2hvdWxkUHJpbnRCYWNrZ3JvdW5kcyhzdG9yZS5nZXRCb29sVmFsdWVGb3JLZXkoV2Vi
UHJlZmVyZW5jZXNLZXk6OnNob3VsZFByaW50QmFja2dyb3VuZHNLZXkoKSkpOwogICAgIHNldHRp
bmdzLnNldFdlYlNlY3VyaXR5RW5hYmxlZChzdG9yZS5nZXRCb29sVmFsdWVGb3JLZXkoV2ViUHJl
ZmVyZW5jZXNLZXk6OndlYlNlY3VyaXR5RW5hYmxlZEtleSgpKSk7CiAgICAgc2V0dGluZ3Muc2V0
QWxsb3dVbml2ZXJzYWxBY2Nlc3NGcm9tRmlsZVVSTHMoc3RvcmUuZ2V0Qm9vbFZhbHVlRm9yS2V5
KFdlYlByZWZlcmVuY2VzS2V5OjphbGxvd1VuaXZlcnNhbEFjY2Vzc0Zyb21GaWxlVVJMc0tleSgp
KSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2NvbmZpZy5oIGIvU291cmNlL1dlYktpdC9j
b25maWcuaAppbmRleCBlODY3ZjQ4N2M3MS4uY2FmNGZkNzdiY2EgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvY29uZmlnLmgKKysrIGIvU291cmNlL1dlYktpdC9jb25maWcuaApAQCAtODgsNiAr
ODgsMTIgQEAKICNlbmRpZgogI2VuZGlmCiAKKyNpZiBVU0UoTkVUV09SS19TRVNTSU9OKSAmJiAo
KFBMQVRGT1JNKE1BQykgJiYgX19NQUNfT1NfWF9WRVJTSU9OX01JTl9SRVFVSVJFRCA+PSAxMDEz
MDApIHx8IChQTEFURk9STShJT1MpICYmIF9fSVBIT05FX09TX1ZFUlNJT05fTUlOX1JFUVVJUkVE
ID49IDExMDAwMCkpCisjaWZuZGVmIEVOQUJMRV9TRVJWRVJfUFJFQ09OTkVDVAorI2RlZmluZSBF
TkFCTEVfU0VSVkVSX1BSRUNPTk5FQ1QgMQorI2VuZGlmCisjZW5kaWYKKwogI2lmbmRlZiBIQVZF
X1NFQ19BQ0NFU1NfQ09OVFJPTAogI2lmIFBMQVRGT1JNKElPUykgfHwgUExBVEZPUk0oTUFDKQog
I2RlZmluZSBIQVZFX1NFQ19BQ0NFU1NfQ09OVFJPTCAxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0TGVnYWN5L1dlYkNvcmVTdXBwb3J0L1dlYlJlc291cmNlTG9hZFNjaGVkdWxlci5jcHAgYi9T
b3VyY2UvV2ViS2l0TGVnYWN5L1dlYkNvcmVTdXBwb3J0L1dlYlJlc291cmNlTG9hZFNjaGVkdWxl
ci5jcHAKaW5kZXggNGQyOTg1ZDFhNDMuLjI2NDkzYWI2YzQyIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0TGVnYWN5L1dlYkNvcmVTdXBwb3J0L1dlYlJlc291cmNlTG9hZFNjaGVkdWxlci5jcHAK
KysrIGIvU291cmNlL1dlYktpdExlZ2FjeS9XZWJDb3JlU3VwcG9ydC9XZWJSZXNvdXJjZUxvYWRT
Y2hlZHVsZXIuY3BwCkBAIC0zNjksMyArMzY5LDcgQEAgdm9pZCBXZWJSZXNvdXJjZUxvYWRTY2hl
ZHVsZXI6OnN0YXJ0UGluZ0xvYWQoRnJhbWUmIGZyYW1lLCBSZXNvdXJjZVJlcXVlc3QmIHJlcXUK
ICAgICBuZXcgUGluZ0hhbmRsZShmcmFtZS5sb2FkZXIoKS5uZXR3b3JraW5nQ29udGV4dCgpLCBy
ZXF1ZXN0LCBvcHRpb25zLmNyZWRlbnRpYWxzICE9IEZldGNoT3B0aW9uczo6Q3JlZGVudGlhbHM6
Ok9taXQsIFBpbmdIYW5kbGU6OlVzZXNBc3luY0NhbGxiYWNrczo6Tm8sIG9wdGlvbnMucmVkaXJl
Y3QgPT0gRmV0Y2hPcHRpb25zOjpSZWRpcmVjdDo6Rm9sbG93LCBXVEZNb3ZlKGNvbXBsZXRpb25I
YW5kbGVyKSk7CiB9CiAKK3ZvaWQgV2ViUmVzb3VyY2VMb2FkU2NoZWR1bGVyOjpwcmVjb25uZWN0
VG8oY29uc3QgVVJMJiwgU3RvcmVkQ3JlZGVudGlhbHNQb2xpY3kpCit7Cit9CisKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvV2ViQ29yZVN1cHBvcnQvV2ViUmVzb3VyY2VMb2FkU2No
ZWR1bGVyLmggYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L1dlYkNvcmVTdXBwb3J0L1dlYlJlc291cmNl
TG9hZFNjaGVkdWxlci5oCmluZGV4IDBlMGMyZGU1NzdjLi4xYzI2MDkyZjgyMyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdExlZ2FjeS9XZWJDb3JlU3VwcG9ydC9XZWJSZXNvdXJjZUxvYWRTY2hl
ZHVsZXIuaAorKysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L1dlYkNvcmVTdXBwb3J0L1dlYlJlc291
cmNlTG9hZFNjaGVkdWxlci5oCkBAIC02MSw2ICs2MSw4IEBAIHB1YmxpYzoKIAogICAgIHZvaWQg
c3RhcnRQaW5nTG9hZChXZWJDb3JlOjpGcmFtZSYsIFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYs
IGNvbnN0IFdlYkNvcmU6OkhUVFBIZWFkZXJNYXAmLCBjb25zdCBXZWJDb3JlOjpGZXRjaE9wdGlv
bnMmLCBQaW5nTG9hZENvbXBsZXRpb25IYW5kbGVyJiYpIGZpbmFsOwogCisgICAgdm9pZCBwcmVj
b25uZWN0VG8oY29uc3QgV2ViQ29yZTo6VVJMJiwgV2ViQ29yZTo6U3RvcmVkQ3JlZGVudGlhbHNQ
b2xpY3kpIGZpbmFsOworCiAgICAgdm9pZCBzdG9yZURlcml2ZWREYXRhVG9DYWNoZShjb25zdCBT
SEExOjpEaWdlc3QmLCBjb25zdCBTdHJpbmcmLCBjb25zdCBTdHJpbmcmLCBXZWJDb3JlOjpTaGFy
ZWRCdWZmZXImKSBmaW5hbCB7IH0KIAogICAgIHZvaWQgc2V0Q2FwdHVyZUV4dHJhTmV0d29ya0xv
YWRNZXRyaWNzRW5hYmxlZChib29sKSBmaW5hbCB7IH0K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>321853</attachid>
            <date>2017-09-26 12:02:24 -0700</date>
            <delta_ts>2017-09-26 13:10:59 -0700</delta_ts>
            <desc>WIP Patch</desc>
            <filename>177474_preconnect_support_wip.patch</filename>
            <type>text/plain</type>
            <size>50375</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvaHRtbC9saW5rLXJlbC1wcmVjb25uZWN0LWV4
cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvaHRtbC9saW5rLXJlbC1wcmVjb25uZWN0LWV4
cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uYzVhM2Y1
ZDcxZWIKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2h0bWwvbGluay1yZWwt
cHJlY29ubmVjdC1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwxMiBAQAorVGVzdHMgdGhhdCBMaW5r
J3MgcmVsPXByZWNvbm5lY3QgaXMgcmVwb3J0ZWQgYXMgc3VwcG9ydGVkLgorCitPbiBzdWNjZXNz
LCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAi
VEVTVCBDT01QTEVURSIuCisKKworUEFTUyB0ZXN0TGluay5yZWxMaXN0Lmxlbmd0aCBpcyAxCitQ
QVNTIHRlc3RMaW5rLnJlbExpc3RbMF0gaXMgInByZWNvbm5lY3QiCitQQVNTIHRlc3RMaW5rLnJl
bExpc3Quc3VwcG9ydHMoJ3ByZWNvbm5lY3QnKSBpcyB0cnVlCitQQVNTIHN1Y2Nlc3NmdWxseVBh
cnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
ZmFzdC9odG1sL2xpbmstcmVsLXByZWNvbm5lY3QuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvaHRt
bC9saW5rLXJlbC1wcmVjb25uZWN0Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAuLjJkMTQ2MWFmYmMzCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFz
dC9odG1sL2xpbmstcmVsLXByZWNvbm5lY3QuaHRtbApAQCAtMCwwICsxLDE3IEBACis8IURPQ1RZ
UEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+Cis8bGluayBpZD0idGVzdExpbmsiIHJlbD0icHJlY29u
bmVjdCIgaHJlZj0iaHR0cDovL2xvY2FsaG9zdDo4MDAwIj4KKzxzY3JpcHQgc3JjPSIuLi8uLi9y
ZXNvdXJjZXMvanMtdGVzdC5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxzY3JpcHQ+
CitkZXNjcmlwdGlvbigiVGVzdHMgdGhhdCBMaW5rJ3MgcmVsPXByZWNvbm5lY3QgaXMgcmVwb3J0
ZWQgYXMgc3VwcG9ydGVkLiIpOworCitjb25zdCB0ZXN0TGluayA9IGRvY3VtZW50LmdldEVsZW1l
bnRCeUlkKCJ0ZXN0TGluayIpOworc2hvdWxkQmUoInRlc3RMaW5rLnJlbExpc3QubGVuZ3RoIiwg
IjEiKTsKK3Nob3VsZEJlRXF1YWxUb1N0cmluZygidGVzdExpbmsucmVsTGlzdFswXSIsICJwcmVj
b25uZWN0Iik7CitzaG91bGRCZVRydWUoInRlc3RMaW5rLnJlbExpc3Quc3VwcG9ydHMoJ3ByZWNv
bm5lY3QnKSIpOworPC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9wbGF0Zm9ybS9tYWMtd2sxL1Rlc3RFeHBlY3RhdGlvbnMgYi9MYXlvdXRUZXN0cy9w
bGF0Zm9ybS9tYWMtd2sxL1Rlc3RFeHBlY3RhdGlvbnMKaW5kZXggODAzNzMzMzRmZWYuLmJhN2E0
YjI3ZWVhIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMtd2sxL1Rlc3RFeHBl
Y3RhdGlvbnMKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjLXdrMS9UZXN0RXhwZWN0YXRp
b25zCkBAIC0zOTksNiArMzk5LDkgQEAgZmFzdC9pbWFnZXMvbG93LW1lbW9yeS1kZWNvZGUuaHRt
bCBbIFNraXAgXQogCiBodHRwL3Rlc3RzL3dvcmtlcnMvc2VydmljZSBbIFNraXAgXQogCisjIExp
bmsgcHJlY29ubmVjdCBpcyBub3QgZW5hYmxlZCBvbiBXSzEuCitmYXN0L2h0bWwvbGluay1yZWwt
cHJlY29ubmVjdC5odG1sIFsgRmFpbHVyZSBdCisKIHdlYmtpdC5vcmcvYi8xNzUzNDUgZmFzdC9p
bWFnZXMvYW5pbWF0ZWQtZ2lmLXNjcm9sbGluZy1jcmFzaC5odG1sIFsgUGFzcyBUaW1lb3V0IF0K
IAogd2Via2l0Lm9yZy9iLzE3NTU1NCBbIFNpZXJyYSBdIGZ1bGxzY3JlZW4vZnVsbC1zY3JlZW4t
aWZyYW1lLWxlZ2FjeS5odG1sIFsgUGFzcyBGYWlsdXJlIF0KZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL3BsYXRmb3JtL21hYy13azIvVGVzdEV4cGVjdGF0aW9ucyBiL0xheW91dFRlc3RzL3BsYXRm
b3JtL21hYy13azIvVGVzdEV4cGVjdGF0aW9ucwppbmRleCAwN2FiNDY4ZDEzZC4uNzI2MThhMzE0
OGUgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy13azIvVGVzdEV4cGVjdGF0
aW9ucworKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMtd2syL1Rlc3RFeHBlY3RhdGlvbnMK
QEAgLTcyOCw2ICs3MjgsOSBAQCB3ZWJraXQub3JnL2IvMTcyODM0IFsgRWxDYXBpdGFuIF0gaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9JbmRleGVkREIvaWRibwogWyBFbENhcGl0YW4g
XSBpbXBvcnRlZC9ibGluay9mYXN0L2JlYWNvbi8gWyBTa2lwIF0KIFsgRWxDYXBpdGFuIF0gaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9iZWFjb24vIFsgU2tpcCBdCiAKKyMgUmVxdWly
ZXMgTkVUV09SS19TRVNTSU9OIHRvIGJlIGVuYWJsZWQuCitbIEVsQ2FwaXRhbiBdIGZhc3QvaHRt
bC9saW5rLXJlbC1wcmVjb25uZWN0Lmh0bWwgWyBGYWlsdXJlIF0KKwogd2Via2l0Lm9yZy9iLzE3
MjIwMSB3ZWJhdWRpby9zaWxlbnQtYXVkaW8taW50ZXJydXB0ZWQtaW4tYmFja2dyb3VuZC5odG1s
IFsgUGFzcyBUaW1lb3V0IF0KIAogd2Via2l0Lm9yZy9iLzE2Nzc1NyB3b3JrZXJzL2JvbWIuaHRt
bCBbIFBhc3MgVGltZW91dCBdCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL3Nw
aS9jZi9DRk5ldHdvcmtTUEkuaCBiL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvc3BpL2NmL0NGTmV0
d29ya1NQSS5oCmluZGV4IDNlNTg0M2VhZDViLi42ODFkYmJiM2I4MCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvUEFML3BhbC9zcGkvY2YvQ0ZOZXR3b3JrU1BJLmgKKysrIGIvU291cmNlL1dl
YkNvcmUvUEFML3BhbC9zcGkvY2YvQ0ZOZXR3b3JrU1BJLmgKQEAgLTExMyw2ICsxMTMsMTIgQEAg
dHlwZWRlZiB2b2lkICheQ0ZDYWNoZWRVUkxSZXNwb25zZUNhbGxCYWNrQmxvY2spKENGQ2FjaGVk
VVJMUmVzcG9uc2VSZWYpOwogLSAoTlNEaWN0aW9uYXJ5ICopX3RpbWluZ0RhdGE7CiBAZW5kCiAK
KyNpZiAoUExBVEZPUk0oTUFDKSAmJiBfX01BQ19PU19YX1ZFUlNJT05fTUlOX1JFUVVJUkVEID49
IDEwMTMwMCkgfHwgKFBMQVRGT1JNKElPUykgJiYgX19JUEhPTkVfT1NfVkVSU0lPTl9NSU5fUkVR
VUlSRUQgPj0gMTEwMDAwKQorQGludGVyZmFjZSBOU1VSTFNlc3Npb25UYXNrIChSZXNvdXJjZUhp
bnRzKQorQHByb3BlcnR5IChub25hdG9taWMsIGFzc2lnbikgQk9PTCBfcHJlY29ubmVjdDsKK0Bl
bmQKKyNlbmRpZgorCiBAaW50ZXJmYWNlIE5TSFRUUENvb2tpZSAoKQogLSAoQ0ZIVFRQQ29va2ll
UmVmKV9DRkhUVFBDb29raWU7CiArIChDRkFycmF5UmVmIF9fbnVsbGFibGUpX25zMmNmQ29va2ll
czooTlNBcnJheSAqIF9fbnVsbGFibGUpbnNDb29raWVzIENGX1JFVFVSTlNfUkVUQUlORUQ7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0RPTVRva2VuTGlzdC5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9odG1sL0RPTVRva2VuTGlzdC5jcHAKaW5kZXggMjU1NWI2ODQ0NmIuLjdjYWIxYjcz
NmEwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0RPTVRva2VuTGlzdC5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvaHRtbC9ET01Ub2tlbkxpc3QuY3BwCkBAIC0zNSw3ICszNSw3IEBA
CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotRE9NVG9rZW5MaXN0OjpET01Ub2tlbkxpc3QoRWxl
bWVudCYgZWxlbWVudCwgY29uc3QgUXVhbGlmaWVkTmFtZSYgYXR0cmlidXRlTmFtZSwgV1RGOjpG
dW5jdGlvbjxib29sKFN0cmluZ1ZpZXcpPiYmIGlzU3VwcG9ydGVkVG9rZW4pCitET01Ub2tlbkxp
c3Q6OkRPTVRva2VuTGlzdChFbGVtZW50JiBlbGVtZW50LCBjb25zdCBRdWFsaWZpZWROYW1lJiBh
dHRyaWJ1dGVOYW1lLCBJc1N1cHBvcnRlZFRva2VuRnVuY3Rpb24mJiBpc1N1cHBvcnRlZFRva2Vu
KQogICAgIDogbV9lbGVtZW50KGVsZW1lbnQpCiAgICAgLCBtX2F0dHJpYnV0ZU5hbWUoYXR0cmli
dXRlTmFtZSkKICAgICAsIG1faXNTdXBwb3J0ZWRUb2tlbihXVEZNb3ZlKGlzU3VwcG9ydGVkVG9r
ZW4pKQpAQCAtMTkxLDcgKzE5MSw3IEBAIEV4Y2VwdGlvbk9yPGJvb2w+IERPTVRva2VuTGlzdDo6
c3VwcG9ydHMoU3RyaW5nVmlldyB0b2tlbikKIHsKICAgICBpZiAoIW1faXNTdXBwb3J0ZWRUb2tl
bikKICAgICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7IFR5cGVFcnJvciB9OwotICAgIHJldHVybiBt
X2lzU3VwcG9ydGVkVG9rZW4odG9rZW4pOworICAgIHJldHVybiBtX2lzU3VwcG9ydGVkVG9rZW4o
bV9lbGVtZW50LmRvY3VtZW50KCksIHRva2VuKTsKIH0KIAogLy8gaHR0cHM6Ly9kb20uc3BlYy53
aGF0d2cub3JnLyNkb20tZG9tdG9rZW5saXN0LXZhbHVlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9odG1sL0RPTVRva2VuTGlzdC5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9ET01Ub2tlbkxp
c3QuaAppbmRleCAyMWZiNDZmNDYxMi4uZDYwZDE3Y2M5MTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvRE9NVG9rZW5MaXN0LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9ET01U
b2tlbkxpc3QuaApAQCAtMzIsNyArMzIsOCBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiBjbGFzcyBE
T01Ub2tlbkxpc3QgewogICAgIFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOwogcHVibGljOgotICAg
IERPTVRva2VuTGlzdChFbGVtZW50JiwgY29uc3QgUXVhbGlmaWVkTmFtZSYgYXR0cmlidXRlTmFt
ZSwgV1RGOjpGdW5jdGlvbjxib29sKFN0cmluZ1ZpZXcpPiYmIGlzU3VwcG9ydGVkVG9rZW4gPSB7
IH0pOworICAgIHVzaW5nIElzU3VwcG9ydGVkVG9rZW5GdW5jdGlvbiA9IFdURjo6RnVuY3Rpb248
Ym9vbChEb2N1bWVudCYsIFN0cmluZ1ZpZXcpPjsKKyAgICBET01Ub2tlbkxpc3QoRWxlbWVudCYs
IGNvbnN0IFF1YWxpZmllZE5hbWUmIGF0dHJpYnV0ZU5hbWUsIElzU3VwcG9ydGVkVG9rZW5GdW5j
dGlvbiYmIGlzU3VwcG9ydGVkVG9rZW4gPSB7IH0pOwogCiAgICAgdm9pZCBhc3NvY2lhdGVkQXR0
cmlidXRlVmFsdWVDaGFuZ2VkKGNvbnN0IEF0b21pY1N0cmluZyYpOwogCkBAIC03Myw3ICs3NCw3
IEBAIHByaXZhdGU6CiAgICAgYm9vbCBtX2luVXBkYXRlQXNzb2NpYXRlZEF0dHJpYnV0ZUZyb21U
b2tlbnMgeyBmYWxzZSB9OwogICAgIGJvb2wgbV90b2tlbnNOZWVkVXBkYXRpbmcgeyB0cnVlIH07
CiAgICAgVmVjdG9yPEF0b21pY1N0cmluZz4gbV90b2tlbnM7Ci0gICAgV1RGOjpGdW5jdGlvbjxi
b29sKFN0cmluZ1ZpZXcpPiBtX2lzU3VwcG9ydGVkVG9rZW47CisgICAgSXNTdXBwb3J0ZWRUb2tl
bkZ1bmN0aW9uIG1faXNTdXBwb3J0ZWRUb2tlbjsKIH07CiAKIGlubGluZSB1bnNpZ25lZCBET01U
b2tlbkxpc3Q6Omxlbmd0aCgpIGNvbnN0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1s
L0hUTUxBbmNob3JFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEFuY2hvckVs
ZW1lbnQuY3BwCmluZGV4IGNiMWYxYzlmNTQ2Li40ODgxYzNkOWU4YSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvaHRtbC9IVE1MQW5jaG9yRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvaHRtbC9IVE1MQW5jaG9yRWxlbWVudC5jcHAKQEAgLTMwNyw3ICszMDcsNyBAQCBib29sIEhU
TUxBbmNob3JFbGVtZW50OjpoYXNSZWwoUmVsYXRpb24gcmVsYXRpb24pIGNvbnN0CiBET01Ub2tl
bkxpc3QmIEhUTUxBbmNob3JFbGVtZW50OjpyZWxMaXN0KCkKIHsKICAgICBpZiAoIW1fcmVsTGlz
dCkgCi0gICAgICAgIG1fcmVsTGlzdCA9IHN0ZDo6bWFrZV91bmlxdWU8RE9NVG9rZW5MaXN0Pigq
dGhpcywgSFRNTE5hbWVzOjpyZWxBdHRyLCBbXShTdHJpbmdWaWV3IHRva2VuKSB7CisgICAgICAg
IG1fcmVsTGlzdCA9IHN0ZDo6bWFrZV91bmlxdWU8RE9NVG9rZW5MaXN0PigqdGhpcywgSFRNTE5h
bWVzOjpyZWxBdHRyLCBbXShEb2N1bWVudCYsIFN0cmluZ1ZpZXcgdG9rZW4pIHsKICAgICAgICAg
ICAgIHJldHVybiBlcXVhbElnbm9yaW5nQVNDSUlDYXNlKHRva2VuLCAibm9yZWZlcnJlciIpIHx8
IGVxdWFsSWdub3JpbmdBU0NJSUNhc2UodG9rZW4sICJub29wZW5lciIpOwogICAgICAgICB9KTsK
ICAgICByZXR1cm4gKm1fcmVsTGlzdDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwv
SFRNTElGcmFtZUVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MSUZyYW1lRWxl
bWVudC5jcHAKaW5kZXggZDMwMzIyZGMwYzQuLjIyM2UzYjAzMzFhIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL0hUTUxJRnJhbWVFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9odG1sL0hUTUxJRnJhbWVFbGVtZW50LmNwcApAQCAtNTEsNyArNTEsNyBAQCBSZWY8SFRNTElG
cmFtZUVsZW1lbnQ+IEhUTUxJRnJhbWVFbGVtZW50OjpjcmVhdGUoY29uc3QgUXVhbGlmaWVkTmFt
ZSYgdGFnTmFtZSwgRAogRE9NVG9rZW5MaXN0JiBIVE1MSUZyYW1lRWxlbWVudDo6c2FuZGJveCgp
CiB7CiAgICAgaWYgKCFtX3NhbmRib3gpCi0gICAgICAgIG1fc2FuZGJveCA9IHN0ZDo6bWFrZV91
bmlxdWU8RE9NVG9rZW5MaXN0PigqdGhpcywgc2FuZGJveEF0dHIsIFtdKFN0cmluZ1ZpZXcgdG9r
ZW4pIHsKKyAgICAgICAgbV9zYW5kYm94ID0gc3RkOjptYWtlX3VuaXF1ZTxET01Ub2tlbkxpc3Q+
KCp0aGlzLCBzYW5kYm94QXR0ciwgW10oRG9jdW1lbnQmLCBTdHJpbmdWaWV3IHRva2VuKSB7CiAg
ICAgICAgICAgICByZXR1cm4gU2VjdXJpdHlDb250ZXh0Ojppc1N1cHBvcnRlZFNhbmRib3hQb2xp
Y3kodG9rZW4pOwogICAgICAgICB9KTsKICAgICByZXR1cm4gKm1fc2FuZGJveDsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTExpbmtFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJD
b3JlL2h0bWwvSFRNTExpbmtFbGVtZW50LmNwcAppbmRleCBlMDFiNmUzYjRjOC4uZTdkMGY3Y2M3
NDIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTExpbmtFbGVtZW50LmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxMaW5rRWxlbWVudC5jcHAKQEAgLTE1Niw3ICsx
NTYsNyBAQCB2b2lkIEhUTUxMaW5rRWxlbWVudDo6c2V0RGlzYWJsZWRTdGF0ZShib29sIGRpc2Fi
bGVkKQogdm9pZCBIVE1MTGlua0VsZW1lbnQ6OnBhcnNlQXR0cmlidXRlKGNvbnN0IFF1YWxpZmll
ZE5hbWUmIG5hbWUsIGNvbnN0IEF0b21pY1N0cmluZyYgdmFsdWUpCiB7CiAgICAgaWYgKG5hbWUg
PT0gcmVsQXR0cikgewotICAgICAgICBtX3JlbEF0dHJpYnV0ZSA9IExpbmtSZWxBdHRyaWJ1dGUo
dmFsdWUpOworICAgICAgICBtX3JlbEF0dHJpYnV0ZSA9IExpbmtSZWxBdHRyaWJ1dGUoZG9jdW1l
bnQoKSwgdmFsdWUpOwogICAgICAgICBpZiAobV9yZWxMaXN0KQogICAgICAgICAgICAgbV9yZWxM
aXN0LT5hc3NvY2lhdGVkQXR0cmlidXRlVmFsdWVDaGFuZ2VkKHZhbHVlKTsKICAgICAgICAgcHJv
Y2VzcygpOwpAQCAtNDk4LDggKzQ5OCw4IEBAIHZvaWQgSFRNTExpbmtFbGVtZW50OjpkaXNwYXRj
aFBlbmRpbmdFdmVudChMaW5rRXZlbnRTZW5kZXIqIGV2ZW50U2VuZGVyKQogRE9NVG9rZW5MaXN0
JiBIVE1MTGlua0VsZW1lbnQ6OnJlbExpc3QoKQogewogICAgIGlmICghbV9yZWxMaXN0KSAKLSAg
ICAgICAgbV9yZWxMaXN0ID0gc3RkOjptYWtlX3VuaXF1ZTxET01Ub2tlbkxpc3Q+KCp0aGlzLCBI
VE1MTmFtZXM6OnJlbEF0dHIsIFtdKFN0cmluZ1ZpZXcgdG9rZW4pIHsKLSAgICAgICAgICAgIHJl
dHVybiBMaW5rUmVsQXR0cmlidXRlOjppc1N1cHBvcnRlZCh0b2tlbik7CisgICAgICAgIG1fcmVs
TGlzdCA9IHN0ZDo6bWFrZV91bmlxdWU8RE9NVG9rZW5MaXN0PigqdGhpcywgSFRNTE5hbWVzOjpy
ZWxBdHRyLCBbXShEb2N1bWVudCYgZG9jdW1lbnQsIFN0cmluZ1ZpZXcgdG9rZW4pIHsKKyAgICAg
ICAgICAgIHJldHVybiBMaW5rUmVsQXR0cmlidXRlOjppc1N1cHBvcnRlZChkb2N1bWVudCwgdG9r
ZW4pOwogICAgICAgICB9KTsKICAgICByZXR1cm4gKm1fcmVsTGlzdDsKIH0KZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2h0bWwvTGlua1JlbEF0dHJpYnV0ZS5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9odG1sL0xpbmtSZWxBdHRyaWJ1dGUuY3BwCmluZGV4IDg2NmFmZDhlNWViLi41NzJiZGIzNGM1
OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9MaW5rUmVsQXR0cmlidXRlLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0xpbmtSZWxBdHRyaWJ1dGUuY3BwCkBAIC0zMiw4ICsz
MiwxMCBAQAogI2luY2x1ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUgIkxpbmtSZWxBdHRyaWJ1dGUu
aCIKIAorI2luY2x1ZGUgIkRvY3VtZW50LmgiCiAjaW5jbHVkZSAiTGlua0ljb25UeXBlLmgiCiAj
aW5jbHVkZSAiUnVudGltZUVuYWJsZWRGZWF0dXJlcy5oIgorI2luY2x1ZGUgIlNldHRpbmdzLmgi
CiAjaW5jbHVkZSA8d3RmL3RleHQvU3RyaW5nVmlldy5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L1dU
RlN0cmluZy5oPgogCkBAIC00NCw3ICs0Niw3IEBAIExpbmtSZWxBdHRyaWJ1dGU6OkxpbmtSZWxB
dHRyaWJ1dGUoKQogfQogCiAvLyBLZWVwIExpbmtSZWxBdHRyaWJ1dGU6OmlzU3VwcG9ydGVkKCkg
aW4gc3luYyB3aGVuIHVwZGF0aW5nIHRoaXMgY29uc3RydWN0b3IuCi1MaW5rUmVsQXR0cmlidXRl
OjpMaW5rUmVsQXR0cmlidXRlKGNvbnN0IFN0cmluZyYgcmVsKQorTGlua1JlbEF0dHJpYnV0ZTo6
TGlua1JlbEF0dHJpYnV0ZShEb2N1bWVudCYgZG9jdW1lbnQsIGNvbnN0IFN0cmluZyYgcmVsKQog
ewogICAgIGlmIChlcXVhbExldHRlcnNJZ25vcmluZ0FTQ0lJQ2FzZShyZWwsICJzdHlsZXNoZWV0
IikpCiAgICAgICAgIGlzU3R5bGVTaGVldCA9IHRydWU7CkBAIC01Niw2ICs1OCw4IEBAIExpbmtS
ZWxBdHRyaWJ1dGU6OkxpbmtSZWxBdHRyaWJ1dGUoY29uc3QgU3RyaW5nJiByZWwpCiAgICAgICAg
IGljb25UeXBlID0gTGlua0ljb25UeXBlOjpUb3VjaFByZWNvbXBvc2VkSWNvbjsKICAgICBlbHNl
IGlmIChlcXVhbExldHRlcnNJZ25vcmluZ0FTQ0lJQ2FzZShyZWwsICJkbnMtcHJlZmV0Y2giKSkK
ICAgICAgICAgaXNETlNQcmVmZXRjaCA9IHRydWU7CisgICAgZWxzZSBpZiAoZG9jdW1lbnQuc2V0
dGluZ3MoKS5saW5rUHJlY29ubmVjdEVuYWJsZWQoKSAmJiBlcXVhbExldHRlcnNJZ25vcmluZ0FT
Q0lJQ2FzZShyZWwsICJwcmVjb25uZWN0IikpCisgICAgICAgIGlzTGlua1ByZWNvbm5lY3QgPSB0
cnVlOwogICAgIGVsc2UgaWYgKFJ1bnRpbWVFbmFibGVkRmVhdHVyZXM6OnNoYXJlZEZlYXR1cmVz
KCkubGlua1ByZWxvYWRFbmFibGVkKCkgJiYgZXF1YWxMZXR0ZXJzSWdub3JpbmdBU0NJSUNhc2Uo
cmVsLCAicHJlbG9hZCIpKQogICAgICAgICBpc0xpbmtQcmVsb2FkID0gdHJ1ZTsKICAgICBlbHNl
IGlmIChlcXVhbExldHRlcnNJZ25vcmluZ0FTQ0lJQ2FzZShyZWwsICJhbHRlcm5hdGUgc3R5bGVz
aGVldCIpIHx8IGVxdWFsTGV0dGVyc0lnbm9yaW5nQVNDSUlDYXNlKHJlbCwgInN0eWxlc2hlZXQg
YWx0ZXJuYXRlIikpIHsKQEAgLTg3LDcgKzkxLDcgQEAgTGlua1JlbEF0dHJpYnV0ZTo6TGlua1Jl
bEF0dHJpYnV0ZShjb25zdCBTdHJpbmcmIHJlbCkKIH0KIAogLy8gaHR0cHM6Ly9odG1sLnNwZWMu
d2hhdHdnLm9yZy8jbGlua1R5cGVzCi1ib29sIExpbmtSZWxBdHRyaWJ1dGU6OmlzU3VwcG9ydGVk
KFN0cmluZ1ZpZXcgYXR0cmlidXRlKQorYm9vbCBMaW5rUmVsQXR0cmlidXRlOjppc1N1cHBvcnRl
ZChEb2N1bWVudCYgZG9jdW1lbnQsIFN0cmluZ1ZpZXcgYXR0cmlidXRlKQogewogICAgIHN0YXRp
YyBjb25zdCBjaGFyKiBjb25zdCBzdXBwb3J0ZWRBdHRyaWJ1dGVzW10gPSB7CiAgICAgICAgICJh
bHRlcm5hdGUiLCAiZG5zLXByZWZldGNoIiwgImljb24iLCAic3R5bGVzaGVldCIsICJhcHBsZS10
b3VjaC1pY29uIiwgImFwcGxlLXRvdWNoLWljb24tcHJlY29tcG9zZWQiLApAQCAtMTAxLDYgKzEw
NSw5IEBAIGJvb2wgTGlua1JlbEF0dHJpYnV0ZTo6aXNTdXBwb3J0ZWQoU3RyaW5nVmlldyBhdHRy
aWJ1dGUpCiAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICB9CiAKKyAgICBpZiAoZG9jdW1l
bnQuc2V0dGluZ3MoKS5saW5rUHJlY29ubmVjdEVuYWJsZWQoKSAmJiBlcXVhbElnbm9yaW5nQVND
SUlDYXNlKGF0dHJpYnV0ZSwgInByZWNvbm5lY3QiKSkKKyAgICAgICAgcmV0dXJuIHRydWU7CisK
ICAgICBpZiAoUnVudGltZUVuYWJsZWRGZWF0dXJlczo6c2hhcmVkRmVhdHVyZXMoKS5saW5rUHJl
bG9hZEVuYWJsZWQoKSAmJiBlcXVhbElnbm9yaW5nQVNDSUlDYXNlKGF0dHJpYnV0ZSwgInByZWxv
YWQiKSkKICAgICAgICAgcmV0dXJuIHRydWU7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvTGlua1JlbEF0dHJpYnV0ZS5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9MaW5rUmVsQXR0
cmlidXRlLmgKaW5kZXggOGUyNjY5MjdlZGQuLmYxMmU5ODY2MzdjIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL0xpbmtSZWxBdHRyaWJ1dGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9o
dG1sL0xpbmtSZWxBdHRyaWJ1dGUuaApAQCAtMzcsNiArMzcsNyBAQAogCiBuYW1lc3BhY2UgV2Vi
Q29yZSB7CiAKK2NsYXNzIERvY3VtZW50OwogZW51bSBjbGFzcyBMaW5rSWNvblR5cGU7CiAKIHN0
cnVjdCBMaW5rUmVsQXR0cmlidXRlIHsKQEAgLTQ1LDE1ICs0NiwxNiBAQCBzdHJ1Y3QgTGlua1Jl
bEF0dHJpYnV0ZSB7CiAgICAgYm9vbCBpc0FsdGVybmF0ZSB7IGZhbHNlIH07CiAgICAgYm9vbCBp
c0ROU1ByZWZldGNoIHsgZmFsc2UgfTsKICAgICBib29sIGlzTGlua1ByZWxvYWQgeyBmYWxzZSB9
OworICAgIGJvb2wgaXNMaW5rUHJlY29ubmVjdCB7IGZhbHNlIH07CiAjaWYgRU5BQkxFKExJTktf
UFJFRkVUQ0gpCiAgICAgYm9vbCBpc0xpbmtQcmVmZXRjaCB7IGZhbHNlIH07CiAgICAgYm9vbCBp
c0xpbmtTdWJyZXNvdXJjZSB7IGZhbHNlIH07CiAjZW5kaWYKIAogICAgIExpbmtSZWxBdHRyaWJ1
dGUoKTsKLSAgICBleHBsaWNpdCBMaW5rUmVsQXR0cmlidXRlKGNvbnN0IFN0cmluZyYpOworICAg
IExpbmtSZWxBdHRyaWJ1dGUoRG9jdW1lbnQmLCBjb25zdCBTdHJpbmcmKTsKIAotICAgIHN0YXRp
YyBib29sIGlzU3VwcG9ydGVkKFN0cmluZ1ZpZXcpOworICAgIHN0YXRpYyBib29sIGlzU3VwcG9y
dGVkKERvY3VtZW50JiwgU3RyaW5nVmlldyk7CiB9OwogCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9odG1sL3BhcnNlci9IVE1MUHJlbG9hZFNjYW5uZXIuY3BwIGIvU291cmNlL1dlYkNv
cmUvaHRtbC9wYXJzZXIvSFRNTFByZWxvYWRTY2FubmVyLmNwcAppbmRleCAwNjAxZGMxMWRjYy4u
MDhkMjhjZGQ0MjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvcGFyc2VyL0hUTUxQ
cmVsb2FkU2Nhbm5lci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9wYXJzZXIvSFRNTFBy
ZWxvYWRTY2FubmVyLmNwcApAQCAtMjMyLDcgKzIzMiw3IEBAIHByaXZhdGU6CiAgICAgICAgICAg
ICBpZiAobWF0Y2goYXR0cmlidXRlTmFtZSwgaHJlZkF0dHIpKQogICAgICAgICAgICAgICAgIHNl
dFVybFRvTG9hZChhdHRyaWJ1dGVWYWx1ZSk7CiAgICAgICAgICAgICBlbHNlIGlmIChtYXRjaChh
dHRyaWJ1dGVOYW1lLCByZWxBdHRyKSkgewotICAgICAgICAgICAgICAgIExpbmtSZWxBdHRyaWJ1
dGUgcGFyc2VkQXR0cmlidXRlIHsgYXR0cmlidXRlVmFsdWUgfTsKKyAgICAgICAgICAgICAgICBM
aW5rUmVsQXR0cmlidXRlIHBhcnNlZEF0dHJpYnV0ZSB7IGRvY3VtZW50LCBhdHRyaWJ1dGVWYWx1
ZSB9OwogICAgICAgICAgICAgICAgIG1fbGlua0lzU3R5bGVTaGVldCA9IHJlbEF0dHJpYnV0ZUlz
U3R5bGVTaGVldChwYXJzZWRBdHRyaWJ1dGUpOwogICAgICAgICAgICAgICAgIG1fbGlua0lzUHJl
bG9hZCA9IHBhcnNlZEF0dHJpYnV0ZS5pc0xpbmtQcmVsb2FkOwogICAgICAgICAgICAgfSBlbHNl
IGlmIChtYXRjaChhdHRyaWJ1dGVOYW1lLCBtZWRpYUF0dHIpKQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvbG9hZGVyL0xpbmtMb2FkZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0xp
bmtMb2FkZXIuY3BwCmluZGV4IDJiMTYxMzI2NDMwLi5iNDhmZjhlYzQ5YSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvbG9hZGVyL0xpbmtMb2FkZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2xvYWRlci9MaW5rTG9hZGVyLmNwcApAQCAtNDcsOCArNDcsMTAgQEAKICNpbmNsdWRlICJMaW5r
SGVhZGVyLmgiCiAjaW5jbHVkZSAiTGlua1ByZWxvYWRSZXNvdXJjZUNsaWVudHMuaCIKICNpbmNs
dWRlICJMaW5rUmVsQXR0cmlidXRlLmgiCisjaW5jbHVkZSAiTG9hZGVyU3RyYXRlZ3kuaCIKICNp
bmNsdWRlICJNSU1FVHlwZVJlZ2lzdHJ5LmgiCiAjaW5jbHVkZSAiTWVkaWFRdWVyeUV2YWx1YXRv
ci5oIgorI2luY2x1ZGUgIlBsYXRmb3JtU3RyYXRlZ2llcy5oIgogI2luY2x1ZGUgIlJ1bnRpbWVF
bmFibGVkRmVhdHVyZXMuaCIKICNpbmNsdWRlICJTZXR0aW5ncy5oIgogI2luY2x1ZGUgIlN0eWxl
UmVzb2x2ZXIuaCIKQEAgLTEwMiw3ICsxMDQsNyBAQCB2b2lkIExpbmtMb2FkZXI6OmxvYWRMaW5r
c0Zyb21IZWFkZXIoY29uc3QgU3RyaW5nJiBoZWFkZXJWYWx1ZSwgY29uc3QgVVJMJiBiYXNlVQog
ICAgICAgICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgICB9CiAKLSAgICAgICAgTGlua1JlbEF0
dHJpYnV0ZSByZWxBdHRyaWJ1dGUoaGVhZGVyLnJlbCgpKTsKKyAgICAgICAgTGlua1JlbEF0dHJp
YnV0ZSByZWxBdHRyaWJ1dGUoZG9jdW1lbnQsIGhlYWRlci5yZWwoKSk7CiAgICAgICAgIFVSTCB1
cmwoYmFzZVVSTCwgaGVhZGVyLnVybCgpKTsKICAgICAgICAgLy8gU2FuaXR5IGNoZWNrIHRvIGF2
b2lkIHJlLWVudHJhbmN5IGhlcmUuCiAgICAgICAgIGlmIChlcXVhbElnbm9yaW5nRnJhZ21lbnRJ
ZGVudGlmaWVyKHVybCwgYmFzZVVSTCkpCkBAIC0yNTAsNiArMjUyLDE0IEBAIGJvb2wgTGlua0xv
YWRlcjo6bG9hZExpbmsoY29uc3QgTGlua1JlbEF0dHJpYnV0ZSYgcmVsQXR0cmlidXRlLCBjb25z
dCBVUkwmIGhyZWYsCiAgICAgICAgICAgICBkb2N1bWVudC5mcmFtZSgpLT5sb2FkZXIoKS5jbGll
bnQoKS5wcmVmZXRjaEROUyhocmVmLmhvc3QoKSk7CiAgICAgfQogCisgICAgaWYgKHJlbEF0dHJp
YnV0ZS5pc0xpbmtQcmVjb25uZWN0ICYmIGhyZWYuaXNWYWxpZCgpICYmIGhyZWYucHJvdG9jb2xJ
c0luSFRUUEZhbWlseSgpKSB7CisgICAgICAgIEFTU0VSVChkb2N1bWVudC5zZXR0aW5ncygpLmxp
bmtQcmVjb25uZWN0RW5hYmxlZCgpKTsKKyAgICAgICAgU3RvcmVkQ3JlZGVudGlhbHNQb2xpY3kg
c3RvcmFnZUNyZWRlbnRpYWxzUG9saWN5ID0gU3RvcmVkQ3JlZGVudGlhbHNQb2xpY3k6OlVzZTsK
KyAgICAgICAgaWYgKGVxdWFsSWdub3JpbmdBU0NJSUNhc2UoY3Jvc3NPcmlnaW4sICJhbm9ueW1v
dXMiKSAmJiBkb2N1bWVudC5zZWN1cml0eU9yaWdpbigpLmNhbkFjY2VzcyhTZWN1cml0eU9yaWdp
bjo6Y3JlYXRlKGhyZWYpKSkKKyAgICAgICAgICAgIHN0b3JhZ2VDcmVkZW50aWFsc1BvbGljeSA9
IFN0b3JlZENyZWRlbnRpYWxzUG9saWN5OjpEb05vdFVzZTsKKyAgICAgICAgcGxhdGZvcm1TdHJh
dGVnaWVzKCktPmxvYWRlclN0cmF0ZWd5KCktPnByZWNvbm5lY3RUbyhocmVmLCBzdG9yYWdlQ3Jl
ZGVudGlhbHNQb2xpY3kpOworICAgIH0KKwogICAgIGlmIChtX2NsaWVudC5zaG91bGRMb2FkTGlu
aygpKSB7CiAgICAgICAgIGF1dG8gcmVzb3VyY2VDbGllbnQgPSBwcmVsb2FkSWZOZWVkZWQocmVs
QXR0cmlidXRlLCBocmVmLCBkb2N1bWVudCwgYXMsIG1lZGlhLCBtaW1lVHlwZSwgY3Jvc3NPcmln
aW4sIHRoaXMpOwogICAgICAgICBpZiAocmVzb3VyY2VDbGllbnQpCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9sb2FkZXIvTG9hZGVyU3RyYXRlZ3kuaCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRl
ci9Mb2FkZXJTdHJhdGVneS5oCmluZGV4IDUzZjNiZmIyNjY2Li5lMDBlMzRjMWYzOCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL0xvYWRlclN0cmF0ZWd5LmgKKysrIGIvU291cmNl
L1dlYkNvcmUvbG9hZGVyL0xvYWRlclN0cmF0ZWd5LmgKQEAgLTY3LDYgKzY3LDggQEAgcHVibGlj
OgogICAgIHVzaW5nIFBpbmdMb2FkQ29tcGxldGlvbkhhbmRsZXIgPSBXVEY6OkZ1bmN0aW9uPHZv
aWQoY29uc3QgUmVzb3VyY2VFcnJvciYpPjsKICAgICB2aXJ0dWFsIHZvaWQgc3RhcnRQaW5nTG9h
ZChGcmFtZSYsIFJlc291cmNlUmVxdWVzdCYsIGNvbnN0IEhUVFBIZWFkZXJNYXAmIG9yaWdpbmFs
UmVxdWVzdEhlYWRlcnMsIGNvbnN0IEZldGNoT3B0aW9ucyYsIFBpbmdMb2FkQ29tcGxldGlvbkhh
bmRsZXImJiA9IHsgfSkgPSAwOwogCisgICAgdmlydHVhbCB2b2lkIHByZWNvbm5lY3RUbyhjb25z
dCBVUkwmLCBTdG9yZWRDcmVkZW50aWFsc1BvbGljeSkgPSAwOworCiAgICAgdmlydHVhbCB2b2lk
IHN0b3JlRGVyaXZlZERhdGFUb0NhY2hlKGNvbnN0IFNIQTE6OkRpZ2VzdCYgYm9keUtleSwgY29u
c3QgU3RyaW5nJiB0eXBlLCBjb25zdCBTdHJpbmcmIHBhcnRpdGlvbiwgV2ViQ29yZTo6U2hhcmVk
QnVmZmVyJikgPSAwOwogCiAgICAgdmlydHVhbCB2b2lkIHNldENhcHR1cmVFeHRyYU5ldHdvcmtM
b2FkTWV0cmljc0VuYWJsZWQoYm9vbCkgPSAwOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cGFnZS9TZXR0aW5ncy5pbiBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvU2V0dGluZ3MuaW4KaW5kZXgg
OTI3N2MwYTdjZTUuLmQ4MTUyNmFhY2MxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdl
L1NldHRpbmdzLmluCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvU2V0dGluZ3MuaW4KQEAgLTI5
MSw2ICsyOTEsOCBAQCBsYW5nQXR0cmlidXRlQXdhcmVGb3JtQ29udHJvbFVJRW5hYmxlZCBpbml0
aWFsPWZhbHNlCiAKIHN1YnJlc291cmNlSW50ZWdyaXR5RW5hYmxlZCBpbml0aWFsPXRydWUKIAor
bGlua1ByZWNvbm5lY3RFbmFibGVkIGluaXRpYWw9ZmFsc2UKKwogYmVhY29uQVBJRW5hYmxlZCBp
bml0aWFsPWZhbHNlCiAKIGNvbnN0YW50UHJvcGVydGllc0VuYWJsZWQgaW5pdGlhbD1mYWxzZQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9TdG9yZWRDcmVkZW50
aWFsc1BvbGljeS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9TdG9yZWRDcmVk
ZW50aWFsc1BvbGljeS5oCmluZGV4IDdlMmJlYzdjNjkzLi4zNzFlZTMzNDY3ZSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9TdG9yZWRDcmVkZW50aWFsc1BvbGlj
eS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvU3RvcmVkQ3JlZGVudGlh
bHNQb2xpY3kuaApAQCAtMjcsNyArMjcsNyBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLWVu
dW0gU3RvcmVkQ3JlZGVudGlhbHNQb2xpY3kgeworZW51bSBjbGFzcyBTdG9yZWRDcmVkZW50aWFs
c1BvbGljeSB7CiAgICAgRG9Ob3RVc2UsCiAgICAgVXNlLAogfTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuY3Bw
IGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJv
Y2Vzcy5jcHAKaW5kZXggNzAzZDU5MWMyNGIuLjI5MTRhYzM4NGZjIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmNw
cAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtDb25uZWN0aW9uVG9X
ZWJQcm9jZXNzLmNwcApAQCAtMjg3LDYgKzI4NywxMSBAQCB2b2lkIE5ldHdvcmtDb25uZWN0aW9u
VG9XZWJQcm9jZXNzOjpwcmVmZXRjaEROUyhjb25zdCBTdHJpbmcmIGhvc3RuYW1lKQogICAgIE5l
dHdvcmtQcm9jZXNzOjpzaW5nbGV0b24oKS5wcmVmZXRjaEROUyhob3N0bmFtZSk7CiB9CiAKK3Zv
aWQgTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6OnByZWNvbm5lY3RUbyhjb25zdCBVUkwm
IHVybCwgV2ViQ29yZTo6U3RvcmVkQ3JlZGVudGlhbHNQb2xpY3kgc3RvcmVkQ3JlZGVudGlhbHNQ
b2xpY3kpCit7CisgICAgTmV0d29ya1Byb2Nlc3M6OnNpbmdsZXRvbigpLnByZWNvbm5lY3RUbyh1
cmwsIHN0b3JlZENyZWRlbnRpYWxzUG9saWN5KTsKK30KKwogc3RhdGljIE5ldHdvcmtTdG9yYWdl
U2Vzc2lvbiYgc3RvcmFnZVNlc3Npb24oUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklEKQogewogICAg
IEFTU0VSVChzZXNzaW9uSUQuaXNWYWxpZCgpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
TmV0d29ya1Byb2Nlc3MvTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuaCBiL1NvdXJjZS9X
ZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuaAppbmRl
eCBjZDI4MDQyY2ZmYi4uMzk1ODUzOTQzYjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0
d29ya1Byb2Nlc3MvTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuaAorKysgYi9Tb3VyY2Uv
V2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmgKQEAg
LTkwLDYgKzkwLDcgQEAgcHJpdmF0ZToKICAgICB2b2lkIHBlcmZvcm1TeW5jaHJvbm91c0xvYWQo
Y29uc3QgTmV0d29ya1Jlc291cmNlTG9hZFBhcmFtZXRlcnMmLCBSZWY8TWVzc2FnZXM6Ok5ldHdv
cmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzOjpQZXJmb3JtU3luY2hyb25vdXNMb2FkOjpEZWxheWVk
UmVwbHk+JiYpOwogICAgIHZvaWQgbG9hZFBpbmcoTmV0d29ya1Jlc291cmNlTG9hZFBhcmFtZXRl
cnMmJiwgV2ViQ29yZTo6SFRUUEhlYWRlck1hcCYmIG9yaWdpbmFsUmVxdWVzdEhlYWRlcnMpOwog
ICAgIHZvaWQgcHJlZmV0Y2hETlMoY29uc3QgU3RyaW5nJik7CisgICAgdm9pZCBwcmVjb25uZWN0
VG8oY29uc3QgV2ViQ29yZTo6VVJMJiwgV2ViQ29yZTo6U3RvcmVkQ3JlZGVudGlhbHNQb2xpY3kp
OwogCiAgICAgdm9pZCByZW1vdmVMb2FkSWRlbnRpZmllcihSZXNvdXJjZUxvYWRJZGVudGlmaWVy
KTsKICAgICB2b2lkIHNldERlZmVyc0xvYWRpbmcoUmVzb3VyY2VMb2FkSWRlbnRpZmllciwgYm9v
bCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtDb25u
ZWN0aW9uVG9XZWJQcm9jZXNzLm1lc3NhZ2VzLmluIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJv
Y2Vzcy9OZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5tZXNzYWdlcy5pbgppbmRleCBhYmYw
ZmNjYTAwMi4uZjZjZjRjM2YwMzcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1By
b2Nlc3MvTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MubWVzc2FnZXMuaW4KKysrIGIvU291
cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5t
ZXNzYWdlcy5pbgpAQCAtMjgsNiArMjgsNyBAQCBtZXNzYWdlcyAtPiBOZXR3b3JrQ29ubmVjdGlv
blRvV2ViUHJvY2VzcyBMZWdhY3lSZWNlaXZlciB7CiAgICAgUmVtb3ZlTG9hZElkZW50aWZpZXIo
dWludDY0X3QgcmVzb3VyY2VMb2FkSWRlbnRpZmllcikKICAgICBTZXREZWZlcnNMb2FkaW5nKHVp
bnQ2NF90IHJlc291cmNlTG9hZElkZW50aWZpZXIsIGJvb2wgZGVmZXJzKQogICAgIFByZWZldGNo
RE5TKFN0cmluZyBob3N0bmFtZSkKKyAgICBQcmVjb25uZWN0VG8oV2ViQ29yZTo6VVJMIHVybCwg
ZW51bSBXZWJDb3JlOjpTdG9yZWRDcmVkZW50aWFsc1BvbGljeSBzdG9yZWRDcmVkZW50aWFsc1Bv
bGljeSk7CiAKICAgICBTdGFydERvd25sb2FkKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgV2Vi
S2l0OjpEb3dubG9hZElEIGRvd25sb2FkSUQsIFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCByZXF1
ZXN0LCBTdHJpbmcgc3VnZ2VzdGVkTmFtZSkKICAgICBDb252ZXJ0TWFpblJlc291cmNlTG9hZFRv
RG93bmxvYWQoUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCB1aW50NjRfdCBtYWluUmVzb3VyY2VM
b2FkSWRlbnRpZmllciwgV2ViS2l0OjpEb3dubG9hZElEIGRvd25sb2FkSUQsIFdlYkNvcmU6OlJl
c291cmNlUmVxdWVzdCByZXF1ZXN0LCBXZWJDb3JlOjpSZXNvdXJjZVJlc3BvbnNlIHJlc3BvbnNl
KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrRGF0YVRh
c2suY3BwIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrRGF0YVRhc2suY3Bw
CmluZGV4IGM5M2Y4ZmVjOWZhLi4yYzlkZmQ4ZjM2NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrRGF0YVRhc2suY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQv
TmV0d29ya1Byb2Nlc3MvTmV0d29ya0RhdGFUYXNrLmNwcApAQCAtNTMsNyArNTMsNyBAQCBSZWY8
TmV0d29ya0RhdGFUYXNrPiBOZXR3b3JrRGF0YVRhc2s6OmNyZWF0ZShOZXR3b3JrU2Vzc2lvbiYg
c2Vzc2lvbiwgTmV0d29ya0RhdAogICAgICAgICByZXR1cm4gTmV0d29ya0RhdGFUYXNrQmxvYjo6
Y3JlYXRlKHNlc3Npb24sIGNsaWVudCwgcGFyYW1ldGVycy5yZXF1ZXN0LCBwYXJhbWV0ZXJzLmNv
bnRlbnRTbmlmZmluZ1BvbGljeSwgcGFyYW1ldGVycy5ibG9iRmlsZVJlZmVyZW5jZXMpOwogCiAj
aWYgUExBVEZPUk0oQ09DT0EpCi0gICAgcmV0dXJuIE5ldHdvcmtEYXRhVGFza0NvY29hOjpjcmVh
dGUoc2Vzc2lvbiwgY2xpZW50LCBwYXJhbWV0ZXJzLnJlcXVlc3QsIHBhcmFtZXRlcnMuc3RvcmVk
Q3JlZGVudGlhbHNQb2xpY3ksIHBhcmFtZXRlcnMuY29udGVudFNuaWZmaW5nUG9saWN5LCBwYXJh
bWV0ZXJzLnNob3VsZENsZWFyUmVmZXJyZXJPbkhUVFBTVG9IVFRQUmVkaXJlY3QpOworICAgIHJl
dHVybiBOZXR3b3JrRGF0YVRhc2tDb2NvYTo6Y3JlYXRlKHNlc3Npb24sIGNsaWVudCwgcGFyYW1l
dGVycy5yZXF1ZXN0LCBwYXJhbWV0ZXJzLnN0b3JlZENyZWRlbnRpYWxzUG9saWN5LCBwYXJhbWV0
ZXJzLmNvbnRlbnRTbmlmZmluZ1BvbGljeSwgcGFyYW1ldGVycy5zaG91bGRDbGVhclJlZmVycmVy
T25IVFRQU1RvSFRUUFJlZGlyZWN0LCBwYXJhbWV0ZXJzLnNob3VsZFByZWNvbm5lY3RPbmx5KTsK
ICNlbmRpZgogI2lmIFVTRShTT1VQKQogICAgIHJldHVybiBOZXR3b3JrRGF0YVRhc2tTb3VwOjpj
cmVhdGUoc2Vzc2lvbiwgY2xpZW50LCBwYXJhbWV0ZXJzLnJlcXVlc3QsIHBhcmFtZXRlcnMuc3Rv
cmVkQ3JlZGVudGlhbHNQb2xpY3ksIHBhcmFtZXRlcnMuY29udGVudFNuaWZmaW5nUG9saWN5LCBw
YXJhbWV0ZXJzLnNob3VsZENsZWFyUmVmZXJyZXJPbkhUVFBTVG9IVFRQUmVkaXJlY3QpOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrTG9hZFBhcmFtZXRl
cnMuaCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0xvYWRQYXJhbWV0ZXJz
LmgKaW5kZXggMWZiZDJkYTQ5MWQuLjI1YWE1MDU4MGRlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtMb2FkUGFyYW1ldGVycy5oCisrKyBiL1NvdXJjZS9X
ZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0xvYWRQYXJhbWV0ZXJzLmgKQEAgLTMzLDYgKzMz
LDggQEAKIAogbmFtZXNwYWNlIFdlYktpdCB7CiAKK2VudW0gY2xhc3MgUHJlY29ubmVjdE9ubHkg
eyBObywgWWVzIH07CisKIGNsYXNzIE5ldHdvcmtMb2FkUGFyYW1ldGVycyB7CiBwdWJsaWM6CiAg
ICAgdWludDY0X3Qgd2ViUGFnZUlEIHsgMCB9OwpAQCAtNDksNiArNTEsNyBAQCBwdWJsaWM6CiAj
aWYgVVNFKE5FVFdPUktfU0VTU0lPTikKICAgICBWZWN0b3I8UmVmUHRyPFdlYkNvcmU6OkJsb2JE
YXRhRmlsZVJlZmVyZW5jZT4+IGJsb2JGaWxlUmVmZXJlbmNlczsKICNlbmRpZgorICAgIFByZWNv
bm5lY3RPbmx5IHNob3VsZFByZWNvbm5lY3RPbmx5IHsgUHJlY29ubmVjdE9ubHk6Ok5vIH07CiB9
OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0
d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MuY3BwIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJv
Y2Vzcy9OZXR3b3JrUHJvY2Vzcy5jcHAKaW5kZXggNzllMDJjZjg3MjEuLmY3MWUxZDFmZjA5IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLmNw
cAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLmNwcApA
QCAtNDAsNiArNDAsNyBAQAogI2luY2x1ZGUgIk5ldHdvcmtQcm9jZXNzUHJveHlNZXNzYWdlcy5o
IgogI2luY2x1ZGUgIk5ldHdvcmtSZXNvdXJjZUxvYWRlci5oIgogI2luY2x1ZGUgIk5ldHdvcmtT
ZXNzaW9uLmgiCisjaW5jbHVkZSAiUHJlY29ubmVjdFRhc2suaCIKICNpbmNsdWRlICJSZW1vdGVO
ZXR3b3JraW5nQ29udGV4dC5oIgogI2luY2x1ZGUgIlNlc3Npb25UcmFja2VyLmgiCiAjaW5jbHVk
ZSAiU3RhdGlzdGljc0RhdGEuaCIKQEAgLTcyNSw2ICs3MjYsMTYgQEAgU3RyaW5nIE5ldHdvcmtQ
cm9jZXNzOjpjYWNoZVN0b3JhZ2VEaXJlY3RvcnkoUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklEKSBj
b25zdAogICAgIHJldHVybiBzZXNzaW9uLT5jYWNoZVN0b3JhZ2VEaXJlY3RvcnkoKTsKIH0KIAor
dm9pZCBOZXR3b3JrUHJvY2Vzczo6cHJlY29ubmVjdFRvKGNvbnN0IFdlYkNvcmU6OlVSTCYgdXJs
LCBXZWJDb3JlOjpTdG9yZWRDcmVkZW50aWFsc1BvbGljeSBzdG9yZWRDcmVkZW50aWFsc1BvbGlj
eSkKK3sKKyNpZiBFTkFCTEUoU0VSVkVSX1BSRUNPTk5FQ1QpCisgICAgbmV3IFByZWNvbm5lY3RU
YXNrKHVybCwgc3RvcmVkQ3JlZGVudGlhbHNQb2xpY3kpOworI2Vsc2UKKyAgICBVTlVTRURfUEFS
QU0odXJsKTsKKyAgICBVTlVTRURfUEFSQU0oc3RvcmVkQ3JlZGVudGlhbHNQb2xpY3kpOworI2Vu
ZGlmCit9CisKICNpZiAhUExBVEZPUk0oQ09DT0EpCiB2b2lkIE5ldHdvcmtQcm9jZXNzOjppbml0
aWFsaXplUHJvY2Vzcyhjb25zdCBDaGlsZFByb2Nlc3NJbml0aWFsaXphdGlvblBhcmFtZXRlcnMm
KQogewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJv
Y2Vzcy5oIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5oCmlu
ZGV4IDE0YTUyMmZjZDZkLi5kMWIyMTFiNWU0NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9O
ZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5oCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29y
a1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MuaApAQCAtNTQsNiArNTQsNyBAQCBjbGFzcyBQcm90ZWN0
aW9uU3BhY2U7CiBjbGFzcyBTZWN1cml0eU9yaWdpbjsKIHN0cnVjdCBTZWN1cml0eU9yaWdpbkRh
dGE7CiBzdHJ1Y3QgU291cE5ldHdvcmtQcm94eVNldHRpbmdzOworZW51bSBjbGFzcyBTdG9yZWRD
cmVkZW50aWFsc1BvbGljeTsKIH0KIAogbmFtZXNwYWNlIFdlYktpdCB7CkBAIC0xMzcsNiArMTM4
LDggQEAgcHVibGljOgogICAgIFNlY29uZHMgbG9hZFRocm90dGxlTGF0ZW5jeSgpIGNvbnN0IHsg
cmV0dXJuIG1fbG9hZFRocm90dGxlTGF0ZW5jeTsgfQogICAgIFN0cmluZyBjYWNoZVN0b3JhZ2VE
aXJlY3RvcnkoUEFMOjpTZXNzaW9uSUQpIGNvbnN0OwogCisgICAgdm9pZCBwcmVjb25uZWN0VG8o
Y29uc3QgV2ViQ29yZTo6VVJMJiwgV2ViQ29yZTo6U3RvcmVkQ3JlZGVudGlhbHNQb2xpY3kpOwor
CiBwcml2YXRlOgogICAgIE5ldHdvcmtQcm9jZXNzKCk7CiAgICAgfk5ldHdvcmtQcm9jZXNzKCk7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNz
Lm1lc3NhZ2VzLmluIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vz
cy5tZXNzYWdlcy5pbgppbmRleCA2OTRlNDc0ODg2ZS4uNDYxZjFjMGVjMjggMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MubWVzc2FnZXMuaW4K
KysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5tZXNzYWdl
cy5pbgpAQCAtODIsNiArODIsOCBAQCBtZXNzYWdlcyAtPiBOZXR3b3JrUHJvY2VzcyBMZWdhY3lS
ZWNlaXZlciB7CiAKICAgICBEaWRHcmFudFNhbmRib3hFeHRlbnNpb25zVG9TdG9yYWdlUHJvY2Vz
c0ZvckJsb2JzKHVpbnQ2NF90IHJlcXVlc3RJRCkKIAorICAgIFByZWNvbm5lY3RUbyhXZWJDb3Jl
OjpVUkwgdXJsLCBlbnVtIFdlYkNvcmU6OlN0b3JlZENyZWRlbnRpYWxzUG9saWN5IHN0b3JlZENy
ZWRlbnRpYWxzUG9saWN5KTsKKwogI2lmIEhBVkUoQ0ZORVRXT1JLX1NUT1JBR0VfUEFSVElUSU9O
SU5HKQogICAgIFVwZGF0ZVByZXZhbGVudERvbWFpbnNUb1BhcnRpdGlvbk9yQmxvY2tDb29raWVz
KFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgVmVjdG9yPFN0cmluZz4gZG9tYWluc1RvUGFydGl0
aW9uLCBWZWN0b3I8U3RyaW5nPiBkb21haW5zVG9CbG9jaywgVmVjdG9yPFN0cmluZz4gZG9tYWlu
c1RvTmVpdGhlclBhcnRpdGlvbk5vckJsb2NrLCBib29sIHNob3VsZENsZWFyRmlyc3QpCiAgICAg
UmVtb3ZlUHJldmFsZW50RG9tYWlucyhQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIFZlY3RvcjxT
dHJpbmc+IGRvbWFpbnNXaXRoSW50ZXJhY3Rpb24pOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9OZXR3b3JrUHJvY2Vzcy9QcmVjb25uZWN0VGFzay5jcHAgYi9Tb3VyY2UvV2ViS2l0L05ldHdv
cmtQcm9jZXNzL1ByZWNvbm5lY3RUYXNrLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMC4uMDkwZjNlOWNlY2UKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0
L05ldHdvcmtQcm9jZXNzL1ByZWNvbm5lY3RUYXNrLmNwcApAQCAtMCwwICsxLDEyMCBAQAorLyoK
KyAqIENvcHlyaWdodCAoQykgMjAxNyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisg
KgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywg
d2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQg
dGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3Ry
aWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAor
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVw
cm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3Vt
ZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmli
dXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFO
RCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJ
RUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1Q
TElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJU
SUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBM
RSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwg
SU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVF
TlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5U
IE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwg
T1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQg
QU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwg
U1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJX
SVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdB
UkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdF
LgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJQcmVjb25uZWN0VGFzay5o
IgorCisjaWYgRU5BQkxFKFNFUlZFUl9QUkVDT05ORUNUKQorCisjaW5jbHVkZSAiQXV0aGVudGlj
YXRpb25NYW5hZ2VyLmgiCisjaW5jbHVkZSAiTG9nZ2luZy5oIgorI2luY2x1ZGUgIk5ldHdvcmtM
b2FkUGFyYW1ldGVycy5oIgorI2luY2x1ZGUgIk5ldHdvcmtTZXNzaW9uLmgiCisjaW5jbHVkZSA8
V2ViQ29yZS9BdXRoZW50aWNhdGlvbkNoYWxsZW5nZS5oPgorI2luY2x1ZGUgPFdlYkNvcmUvUmVz
b3VyY2VFcnJvci5oPgorCisjaWYgUExBVEZPUk0oQ09DT0EpCisjaW5jbHVkZSAiTmV0d29ya0Rh
dGFUYXNrQ29jb2EuaCIKKyNlbmRpZgorCituYW1lc3BhY2UgV2ViS2l0IHsKKwordXNpbmcgbmFt
ZXNwYWNlIFdlYkNvcmU7CisKK1ByZWNvbm5lY3RUYXNrOjpQcmVjb25uZWN0VGFzayhjb25zdCBV
UkwmIHVybCwgV2ViQ29yZTo6U3RvcmVkQ3JlZGVudGlhbHNQb2xpY3kgc3RvcmVkQ3JlZGVudGlh
bHNQb2xpY3kpCit7CisgICAgUkVMRUFTRV9MT0coTmV0d29yaywgIiVwIC0gUHJlY29ubmVjdFRh
c2s6OlByZWNvbm5lY3RUYXNrKCkiLCB0aGlzKTsKKyAgICBOZXR3b3JrTG9hZFBhcmFtZXRlcnMg
cGFyYW1ldGVyczsKKyAgICBwYXJhbWV0ZXJzLnJlcXVlc3QgPSBSZXNvdXJjZVJlcXVlc3QodXJs
KTsKKyAgICBwYXJhbWV0ZXJzLnNob3VsZFByZWNvbm5lY3RPbmx5ID0gUHJlY29ubmVjdE9ubHk6
OlllczsKKyAgICBwYXJhbWV0ZXJzLnN0b3JlZENyZWRlbnRpYWxzUG9saWN5ID0gc3RvcmVkQ3Jl
ZGVudGlhbHNQb2xpY3k7CisgICAgbV90YXNrID0gTmV0d29ya0RhdGFUYXNrOjpjcmVhdGUoTmV0
d29ya1Nlc3Npb246OmRlZmF1bHRTZXNzaW9uKCksICp0aGlzLCBwYXJhbWV0ZXJzKTsKKyAgICBt
X3Rhc2stPnJlc3VtZSgpOworfQorCitQcmVjb25uZWN0VGFzazo6flByZWNvbm5lY3RUYXNrKCkK
K3sKKyAgICBBU1NFUlQobV90YXNrLT5jbGllbnQoKSA9PSB0aGlzKTsKKyAgICBtX3Rhc2stPmNs
ZWFyQ2xpZW50KCk7CisgICAgbV90YXNrLT5jYW5jZWwoKTsKK30KKwordm9pZCBQcmVjb25uZWN0
VGFzazo6d2lsbFBlcmZvcm1IVFRQUmVkaXJlY3Rpb24oV2ViQ29yZTo6UmVzb3VyY2VSZXNwb25z
ZSYmLCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmJiwgUmVkaXJlY3RDb21wbGV0aW9uSGFuZGxl
ciYmKQoreworICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOworfQorCit2b2lkIFByZWNvbm5lY3RU
YXNrOjpkaWRSZWNlaXZlQ2hhbGxlbmdlKGNvbnN0IFdlYkNvcmU6OkF1dGhlbnRpY2F0aW9uQ2hh
bGxlbmdlJiBjaGFsbGVuZ2UsIENoYWxsZW5nZUNvbXBsZXRpb25IYW5kbGVyJiYgY29tcGxldGlv
bkhhbmRsZXIpCit7CisgICAgaWYgKGNoYWxsZW5nZS5wcm90ZWN0aW9uU3BhY2UoKS5hdXRoZW50
aWNhdGlvblNjaGVtZSgpID09IFByb3RlY3Rpb25TcGFjZUF1dGhlbnRpY2F0aW9uU2NoZW1lU2Vy
dmVyVHJ1c3RFdmFsdWF0aW9uUmVxdWVzdGVkKSB7CisgICAgICAgIGlmIChtX3Rhc2sgJiYgbV90
YXNrLT5hbGxvd3NTcGVjaWZpY0hUVFBTQ2VydGlmaWNhdGVGb3JIb3N0KGNoYWxsZW5nZSkpCisg
ICAgICAgICAgICBjb21wbGV0aW9uSGFuZGxlcihBdXRoZW50aWNhdGlvbkNoYWxsZW5nZURpc3Bv
c2l0aW9uOjpVc2VDcmVkZW50aWFsLCBzZXJ2ZXJUcnVzdENyZWRlbnRpYWwoY2hhbGxlbmdlKSk7
CisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKEF1dGhlbnRpY2F0
aW9uQ2hhbGxlbmdlRGlzcG9zaXRpb246OlJlamVjdFByb3RlY3Rpb25TcGFjZSwgeyB9KTsKKyAg
ICAgICAgcmV0dXJuOworICAgIH0KKyAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKK30KKwordm9p
ZCBQcmVjb25uZWN0VGFzazo6ZGlkUmVjZWl2ZVJlc3BvbnNlTmV0d29ya1Nlc3Npb24oV2ViQ29y
ZTo6UmVzb3VyY2VSZXNwb25zZSYmLCBSZXNwb25zZUNvbXBsZXRpb25IYW5kbGVyJiYpCit7Cisg
ICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7Cit9CisKK3ZvaWQgUHJlY29ubmVjdFRhc2s6OmRpZFJl
Y2VpdmVEYXRhKFJlZjxXZWJDb3JlOjpTaGFyZWRCdWZmZXI+JiYpCit7CisgICAgQVNTRVJUX05P
VF9SRUFDSEVEKCk7Cit9CisKK3ZvaWQgUHJlY29ubmVjdFRhc2s6OmRpZENvbXBsZXRlV2l0aEVy
cm9yKGNvbnN0IFdlYkNvcmU6OlJlc291cmNlRXJyb3ImIGVycm9yLCBjb25zdCBXZWJDb3JlOjpO
ZXR3b3JrTG9hZE1ldHJpY3MmKQoreworICAgIGlmIChlcnJvci5pc051bGwoKSkKKyAgICAgICAg
UkVMRUFTRV9MT0coTmV0d29yaywgIiVwIC0gUHJlY29ubmVjdFRhc2s6OmRpZENvbXBsZXRlIiwg
dGhpcyk7CisgICAgZWxzZQorICAgICAgICBSRUxFQVNFX0xPRyhOZXR3b3JrLCAiJXAgLSBQcmVj
b25uZWN0VGFzazo6ZGlkQ29tcGxldGVXaXRoRXJyb3IsIGVycm9yX2NvZGU6ICVkIiwgdGhpcywg
ZXJyb3IuZXJyb3JDb2RlKCkpOworCisgICAgZGVsZXRlIHRoaXM7Cit9CisKK3ZvaWQgUHJlY29u
bmVjdFRhc2s6OmRpZFNlbmREYXRhKHVpbnQ2NF90IHRvdGFsQnl0ZXNTZW50LCB1aW50NjRfdCB0
b3RhbEJ5dGVzRXhwZWN0ZWRUb1NlbmQpCit7CisgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7Cit9
CisKK3ZvaWQgUHJlY29ubmVjdFRhc2s6Ondhc0Jsb2NrZWQoKQoreworICAgIFJFTEVBU0VfTE9H
KE5ldHdvcmssICIlcCAtIFByZWNvbm5lY3RUYXNrOjp3YXNCbG9ja2VkKCkiLCB0aGlzKTsKKyAg
ICBkZWxldGUgdGhpczsKK30KKwordm9pZCBQcmVjb25uZWN0VGFzazo6Y2Fubm90U2hvd1VSTCgp
Cit7CisgICAgUkVMRUFTRV9MT0coTmV0d29yaywgIiVwIC0gUHJlY29ubmVjdFRhc2s6OmNhbm5v
dFNob3dVUkwoKSIsIHRoaXMpOworICAgIGRlbGV0ZSB0aGlzOworfQorCit9IC8vIG5hbWVzcGFj
ZSBXZWJLaXQKKworI2VuZGlmIC8vIEVOQUJMRShTRVJWRVJfUFJFQ09OTkVDVCkKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvUHJlY29ubmVjdFRhc2suaCBiL1NvdXJj
ZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvUHJlY29ubmVjdFRhc2suaApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMC4uOTZiNWI2Nzc3ODQKLS0tIC9kZXYvbnVsbAorKysgYi9T
b3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL1ByZWNvbm5lY3RUYXNrLmgKQEAgLTAsMCArMSw1
NSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFy
eSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQg
cHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAx
LiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNv
cHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3Jt
IG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAq
ICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRo
ZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBM
RSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNT
IE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisg
KiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBG
T1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBT
SEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5Z
IERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAq
IENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBS
T0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVT
RSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZF
UiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBD
T05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0Ug
T1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRI
SVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNV
Q0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisjaWYgRU5BQkxFKFNFUlZFUl9QUkVD
T05ORUNUKQorCisjaW5jbHVkZSAiTmV0d29ya0RhdGFUYXNrLmgiCisKK25hbWVzcGFjZSBXZWJL
aXQgeworCitjbGFzcyBQcmVjb25uZWN0VGFzayBmaW5hbCA6IHByaXZhdGUgTmV0d29ya0RhdGFU
YXNrQ2xpZW50IHsKK3B1YmxpYzoKKyAgICBleHBsaWNpdCBQcmVjb25uZWN0VGFzayhjb25zdCBX
ZWJDb3JlOjpVUkwmLCBXZWJDb3JlOjpTdG9yZWRDcmVkZW50aWFsc1BvbGljeSk7CisgICAgflBy
ZWNvbm5lY3RUYXNrKCk7CisKK3ByaXZhdGU6CisgICAgLy8gTmV0d29ya0RhdGFUYXNrQ2xpZW50
LgorICAgIHZvaWQgd2lsbFBlcmZvcm1IVFRQUmVkaXJlY3Rpb24oV2ViQ29yZTo6UmVzb3VyY2VS
ZXNwb25zZSYmLCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmJiwgUmVkaXJlY3RDb21wbGV0aW9u
SGFuZGxlciYmKSBmaW5hbDsKKyAgICB2b2lkIGRpZFJlY2VpdmVDaGFsbGVuZ2UoY29uc3QgV2Vi
Q29yZTo6QXV0aGVudGljYXRpb25DaGFsbGVuZ2UmLCBDaGFsbGVuZ2VDb21wbGV0aW9uSGFuZGxl
ciYmKSBmaW5hbDsKKyAgICB2b2lkIGRpZFJlY2VpdmVSZXNwb25zZU5ldHdvcmtTZXNzaW9uKFdl
YkNvcmU6OlJlc291cmNlUmVzcG9uc2UmJiwgUmVzcG9uc2VDb21wbGV0aW9uSGFuZGxlciYmKSBm
aW5hbDsKKyAgICB2b2lkIGRpZFJlY2VpdmVEYXRhKFJlZjxXZWJDb3JlOjpTaGFyZWRCdWZmZXI+
JiYpIGZpbmFsOworICAgIHZvaWQgZGlkQ29tcGxldGVXaXRoRXJyb3IoY29uc3QgV2ViQ29yZTo6
UmVzb3VyY2VFcnJvciYsIGNvbnN0IFdlYkNvcmU6Ok5ldHdvcmtMb2FkTWV0cmljcyYpIGZpbmFs
OworICAgIHZvaWQgZGlkU2VuZERhdGEodWludDY0X3QgdG90YWxCeXRlc1NlbnQsIHVpbnQ2NF90
IHRvdGFsQnl0ZXNFeHBlY3RlZFRvU2VuZCkgZmluYWw7CisgICAgdm9pZCB3YXNCbG9ja2VkKCkg
ZmluYWw7CisgICAgdm9pZCBjYW5ub3RTaG93VVJMKCkgZmluYWw7CisKKyAgICBSZWZQdHI8TmV0
d29ya0RhdGFUYXNrPiBtX3Rhc2s7Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQKKworI2Vu
ZGlmIC8vIEVOQUJMRShTRVJWRVJfUFJFQ09OTkVDVCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvTmV0d29ya1Byb2Nlc3MvY29jb2EvTmV0d29ya0RhdGFUYXNrQ29jb2EuaCBiL1NvdXJjZS9X
ZWJLaXQvTmV0d29ya1Byb2Nlc3MvY29jb2EvTmV0d29ya0RhdGFUYXNrQ29jb2EuaAppbmRleCBj
ZGY0MzI0YzA2Yi4uMjEyYTlhMDhmYjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29y
a1Byb2Nlc3MvY29jb2EvTmV0d29ya0RhdGFUYXNrQ29jb2EuaAorKysgYi9Tb3VyY2UvV2ViS2l0
L05ldHdvcmtQcm9jZXNzL2NvY29hL05ldHdvcmtEYXRhVGFza0NvY29hLmgKQEAgLTI4LDYgKzI4
LDcgQEAKICNpZiBVU0UoTkVUV09SS19TRVNTSU9OKQogCiAjaW5jbHVkZSAiTmV0d29ya0RhdGFU
YXNrLmgiCisjaW5jbHVkZSAiTmV0d29ya0xvYWRQYXJhbWV0ZXJzLmgiCiAjaW5jbHVkZSA8V2Vi
Q29yZS9OZXR3b3JrTG9hZE1ldHJpY3MuaD4KICNpbmNsdWRlIDx3dGYvUmV0YWluUHRyLmg+CiAK
QEAgLTQwLDkgKzQxLDkgQEAgY2xhc3MgTmV0d29ya1Nlc3Npb25Db2NvYTsKIGNsYXNzIE5ldHdv
cmtEYXRhVGFza0NvY29hIGZpbmFsIDogcHVibGljIE5ldHdvcmtEYXRhVGFzayB7CiAgICAgZnJp
ZW5kIGNsYXNzIE5ldHdvcmtTZXNzaW9uQ29jb2E7CiBwdWJsaWM6Ci0gICAgc3RhdGljIFJlZjxO
ZXR3b3JrRGF0YVRhc2s+IGNyZWF0ZShOZXR3b3JrU2Vzc2lvbiYgc2Vzc2lvbiwgTmV0d29ya0Rh
dGFUYXNrQ2xpZW50JiBjbGllbnQsIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYgcmVx
dWVzdCwgV2ViQ29yZTo6U3RvcmVkQ3JlZGVudGlhbHNQb2xpY3kgc3RvcmVkQ3JlZGVudGlhbHNQ
b2xpY3ksIFdlYkNvcmU6OkNvbnRlbnRTbmlmZmluZ1BvbGljeSBzaG91bGRDb250ZW50U25pZmYs
IGJvb2wgc2hvdWxkQ2xlYXJSZWZlcnJlck9uSFRUUFNUb0hUVFBSZWRpcmVjdCkKKyAgICBzdGF0
aWMgUmVmPE5ldHdvcmtEYXRhVGFzaz4gY3JlYXRlKE5ldHdvcmtTZXNzaW9uJiBzZXNzaW9uLCBO
ZXR3b3JrRGF0YVRhc2tDbGllbnQmIGNsaWVudCwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1
ZXN0JiByZXF1ZXN0LCBXZWJDb3JlOjpTdG9yZWRDcmVkZW50aWFsc1BvbGljeSBzdG9yZWRDcmVk
ZW50aWFsc1BvbGljeSwgV2ViQ29yZTo6Q29udGVudFNuaWZmaW5nUG9saWN5IHNob3VsZENvbnRl
bnRTbmlmZiwgYm9vbCBzaG91bGRDbGVhclJlZmVycmVyT25IVFRQU1RvSFRUUFJlZGlyZWN0LCBQ
cmVjb25uZWN0T25seSBzaG91bGRQcmVjb25uZWN0T25seSkKICAgICB7Ci0gICAgICAgIHJldHVy
biBhZG9wdFJlZigqbmV3IE5ldHdvcmtEYXRhVGFza0NvY29hKHNlc3Npb24sIGNsaWVudCwgcmVx
dWVzdCwgc3RvcmVkQ3JlZGVudGlhbHNQb2xpY3ksIHNob3VsZENvbnRlbnRTbmlmZiwgc2hvdWxk
Q2xlYXJSZWZlcnJlck9uSFRUUFNUb0hUVFBSZWRpcmVjdCkpOworICAgICAgICByZXR1cm4gYWRv
cHRSZWYoKm5ldyBOZXR3b3JrRGF0YVRhc2tDb2NvYShzZXNzaW9uLCBjbGllbnQsIHJlcXVlc3Qs
IHN0b3JlZENyZWRlbnRpYWxzUG9saWN5LCBzaG91bGRDb250ZW50U25pZmYsIHNob3VsZENsZWFy
UmVmZXJyZXJPbkhUVFBTVG9IVFRQUmVkaXJlY3QsIHNob3VsZFByZWNvbm5lY3RPbmx5KSk7CiAg
ICAgfQogCiAgICAgfk5ldHdvcmtEYXRhVGFza0NvY29hKCk7CkBAIC03MSw3ICs3Miw3IEBAIHB1
YmxpYzoKICAgICBXZWJDb3JlOjpOZXR3b3JrTG9hZE1ldHJpY3MmIG5ldHdvcmtMb2FkTWV0cmlj
cygpIHsgcmV0dXJuIG1fbmV0d29ya0xvYWRNZXRyaWNzOyB9CiAKIHByaXZhdGU6Ci0gICAgTmV0
d29ya0RhdGFUYXNrQ29jb2EoTmV0d29ya1Nlc3Npb24mLCBOZXR3b3JrRGF0YVRhc2tDbGllbnQm
LCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmLCBXZWJDb3JlOjpTdG9yZWRDcmVkZW50
aWFsc1BvbGljeSwgV2ViQ29yZTo6Q29udGVudFNuaWZmaW5nUG9saWN5LCBib29sIHNob3VsZENs
ZWFyUmVmZXJyZXJPbkhUVFBTVG9IVFRQUmVkaXJlY3QpOworICAgIE5ldHdvcmtEYXRhVGFza0Nv
Y29hKE5ldHdvcmtTZXNzaW9uJiwgTmV0d29ya0RhdGFUYXNrQ2xpZW50JiwgY29uc3QgV2ViQ29y
ZTo6UmVzb3VyY2VSZXF1ZXN0JiwgV2ViQ29yZTo6U3RvcmVkQ3JlZGVudGlhbHNQb2xpY3ksIFdl
YkNvcmU6OkNvbnRlbnRTbmlmZmluZ1BvbGljeSwgYm9vbCBzaG91bGRDbGVhclJlZmVycmVyT25I
VFRQU1RvSFRUUFJlZGlyZWN0LCBQcmVjb25uZWN0T25seSk7CiAKICAgICBib29sIHRyeVBhc3N3
b3JkQmFzZWRBdXRoZW50aWNhdGlvbihjb25zdCBXZWJDb3JlOjpBdXRoZW50aWNhdGlvbkNoYWxs
ZW5nZSYsIENoYWxsZW5nZUNvbXBsZXRpb25IYW5kbGVyJik7CiAKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvY29jb2EvTmV0d29ya0RhdGFUYXNrQ29jb2EubW0gYi9T
b3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL2NvY29hL05ldHdvcmtEYXRhVGFza0NvY29hLm1t
CmluZGV4IDk5N2UwZWUxYWY2Li5kYmJiMTAwNDAxNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9OZXR3b3JrUHJvY2Vzcy9jb2NvYS9OZXR3b3JrRGF0YVRhc2tDb2NvYS5tbQorKysgYi9Tb3Vy
Y2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL2NvY29hL05ldHdvcmtEYXRhVGFza0NvY29hLm1tCkBA
IC03NCw3ICs3NCw3IEBAIHN0YXRpYyBmbG9hdCB0b05TVVJMU2Vzc2lvblRhc2tQcmlvcml0eShX
ZWJDb3JlOjpSZXNvdXJjZUxvYWRQcmlvcml0eSBwcmlvcml0eSkKICAgICByZXR1cm4gTlNVUkxT
ZXNzaW9uVGFza1ByaW9yaXR5RGVmYXVsdDsKIH0KIAotTmV0d29ya0RhdGFUYXNrQ29jb2E6Ok5l
dHdvcmtEYXRhVGFza0NvY29hKE5ldHdvcmtTZXNzaW9uJiBzZXNzaW9uLCBOZXR3b3JrRGF0YVRh
c2tDbGllbnQmIGNsaWVudCwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0
V2l0aENyZWRlbnRpYWxzLCBXZWJDb3JlOjpTdG9yZWRDcmVkZW50aWFsc1BvbGljeSBzdG9yZWRD
cmVkZW50aWFsc1BvbGljeSwgV2ViQ29yZTo6Q29udGVudFNuaWZmaW5nUG9saWN5IHNob3VsZENv
bnRlbnRTbmlmZiwgYm9vbCBzaG91bGRDbGVhclJlZmVycmVyT25IVFRQU1RvSFRUUFJlZGlyZWN0
KQorTmV0d29ya0RhdGFUYXNrQ29jb2E6Ok5ldHdvcmtEYXRhVGFza0NvY29hKE5ldHdvcmtTZXNz
aW9uJiBzZXNzaW9uLCBOZXR3b3JrRGF0YVRhc2tDbGllbnQmIGNsaWVudCwgY29uc3QgV2ViQ29y
ZTo6UmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0V2l0aENyZWRlbnRpYWxzLCBXZWJDb3JlOjpTdG9y
ZWRDcmVkZW50aWFsc1BvbGljeSBzdG9yZWRDcmVkZW50aWFsc1BvbGljeSwgV2ViQ29yZTo6Q29u
dGVudFNuaWZmaW5nUG9saWN5IHNob3VsZENvbnRlbnRTbmlmZiwgYm9vbCBzaG91bGRDbGVhclJl
ZmVycmVyT25IVFRQU1RvSFRUUFJlZGlyZWN0LCBQcmVjb25uZWN0T25seSBzaG91bGRQcmVjb25u
ZWN0T25seSkKICAgICA6IE5ldHdvcmtEYXRhVGFzayhzZXNzaW9uLCBjbGllbnQsIHJlcXVlc3RX
aXRoQ3JlZGVudGlhbHMsIHN0b3JlZENyZWRlbnRpYWxzUG9saWN5LCBzaG91bGRDbGVhclJlZmVy
cmVyT25IVFRQU1RvSFRUUFJlZGlyZWN0KQogewogICAgIGlmIChtX3NjaGVkdWxlZEZhaWx1cmVU
eXBlICE9IE5vRmFpbHVyZSkKQEAgLTEyOCw2ICsxMjgsMTQgQEAgTmV0d29ya0RhdGFUYXNrQ29j
b2E6Ok5ldHdvcmtEYXRhVGFza0NvY29hKE5ldHdvcmtTZXNzaW9uJiBzZXNzaW9uLCBOZXR3b3Jr
RGF0YVQKICAgICAgICAgTE9HKE5ldHdvcmtTZXNzaW9uLCAiJWxsdSBDcmVhdGluZyBOZXR3b3Jr
RGF0YVRhc2sgd2l0aCBVUkwgJXMiLCBbbV90YXNrIHRhc2tJZGVudGlmaWVyXSwgbnNSZXF1ZXN0
LlVSTC5hYnNvbHV0ZVN0cmluZy5VVEY4U3RyaW5nKTsKICAgICB9CiAKKyAgICBpZiAoc2hvdWxk
UHJlY29ubmVjdE9ubHkgPT0gUHJlY29ubmVjdE9ubHk6OlllcykgeworI2lmIEVOQUJMRShTRVJW
RVJfUFJFQ09OTkVDVCkKKyAgICAgICAgbV90YXNrLmdldCgpLl9wcmVjb25uZWN0ID0gdHJ1ZTsK
KyNlbHNlCisgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOworI2VuZGlmCisgICAgfQorCiAj
aWYgSEFWRShDRk5FVFdPUktfU1RPUkFHRV9QQVJUSVRJT05JTkcpCiAgICAgaWYgKHN0b3JlZENy
ZWRlbnRpYWxzUG9saWN5ID09IFdlYkNvcmU6OlN0b3JlZENyZWRlbnRpYWxzUG9saWN5OjpVc2Up
IHsKICAgICAgICAgU3RyaW5nIHN0b3JhZ2VQYXJ0aXRpb24gPSBzZXNzaW9uLm5ldHdvcmtTdG9y
YWdlU2Vzc2lvbigpLmNvb2tpZVN0b3JhZ2VQYXJ0aXRpb24ocmVxdWVzdCk7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJDb3JlQXJndW1lbnRDb2RlcnMuaCBiL1NvdXJjZS9X
ZWJLaXQvU2hhcmVkL1dlYkNvcmVBcmd1bWVudENvZGVycy5oCmluZGV4IDA4YzM4MzkwYjg0Li5l
YjNkYjUwZDk2YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViQ29yZUFyZ3Vt
ZW50Q29kZXJzLmgKKysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViQ29yZUFyZ3VtZW50Q29k
ZXJzLmgKQEAgLTM5LDYgKzM5LDcgQEAKICNpbmNsdWRlIDxXZWJDb3JlL1BheW1lbnRIZWFkZXJz
Lmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9SZWFsdGltZU1lZGlhU291cmNlLmg+CiAjaW5jbHVkZSA8
V2ViQ29yZS9TY3JvbGxTbmFwT2Zmc2V0c0luZm8uaD4KKyNpbmNsdWRlIDxXZWJDb3JlL1N0b3Jl
ZENyZWRlbnRpYWxzUG9saWN5Lmg+CiAKIG5hbWVzcGFjZSBXVEYgewogY2xhc3MgTW9ub3Rvbmlj
VGltZTsKQEAgLTc2Niw0ICs3NjcsMTIgQEAgdGVtcGxhdGU8PiBzdHJ1Y3QgRW51bVRyYWl0czxX
ZWJDb3JlOjpNZWRpYVNlbGVjdGlvbk9wdGlvbjo6VHlwZT4gewogICAgID47CiB9OwogCit0ZW1w
bGF0ZSA8PiBzdHJ1Y3QgRW51bVRyYWl0czxXZWJDb3JlOjpTdG9yZWRDcmVkZW50aWFsc1BvbGlj
eT4geworICAgIHVzaW5nIHZhbHVlcyA9IEVudW1WYWx1ZXM8CisgICAgICAgIFdlYkNvcmU6OlN0
b3JlZENyZWRlbnRpYWxzUG9saWN5LAorICAgICAgICBXZWJDb3JlOjpTdG9yZWRDcmVkZW50aWFs
c1BvbGljeTo6RG9Ob3RVc2UsCisgICAgICAgIFdlYkNvcmU6OlN0b3JlZENyZWRlbnRpYWxzUG9s
aWN5OjpVc2UKKyAgICA+OworfTsKKwogfSAvLyBuYW1lc3BhY2UgV1RGCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJQcmVmZXJlbmNlc0RlZmluaXRpb25zLmggYi9Tb3VyY2Uv
V2ViS2l0L1NoYXJlZC9XZWJQcmVmZXJlbmNlc0RlZmluaXRpb25zLmgKaW5kZXggNTdkZGQxYjMw
MmMuLjcyMzZjMGNkNDM0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJQcmVm
ZXJlbmNlc0RlZmluaXRpb25zLmgKKysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViUHJlZmVy
ZW5jZXNEZWZpbml0aW9ucy5oCkBAIC00NSw2ICs0NSwxMiBAQAogI2RlZmluZSBERUZBVUxUX0hJ
RERFTl9QQUdFX0NTU19BTklNQVRJT05fU1VTUEVOU0lPTl9FTkFCTEVEIGZhbHNlCiAjZW5kaWYK
IAorI2lmIEVOQUJMRShTRVJWRVJfUFJFQ09OTkVDVCkKKyNkZWZpbmUgREVGQVVMVF9MSU5LX1BS
RUNPTk5FQ1RfRU5BQkxFRCB0cnVlCisjZWxzZQorI2RlZmluZSBERUZBVUxUX0xJTktfUFJFQ09O
TkVDVF9FTkFCTEVEIGZhbHNlCisjZW5kaWYKKwogI2lmIFBMQVRGT1JNKENPQ09BKQogI2RlZmlu
ZSBERUZBVUxUX1BERlBMVUdJTl9FTkFCTEVEIHRydWUKICNlbHNlCkBAIC0xODEsNiArMTg3LDcg
QEAKICAgICBtYWNybyhET01QYXN0ZUFsbG93ZWQsIGRvbVBhc3RlQWxsb3dlZCwgQm9vbCwgYm9v
bCwgZmFsc2UsICIiLCAiIikgXAogICAgIG1hY3JvKEphdmFTY3JpcHRDYW5BY2Nlc3NDbGlwYm9h
cmQsIGphdmFTY3JpcHRDYW5BY2Nlc3NDbGlwYm9hcmQsIEJvb2wsIGJvb2wsIGZhbHNlLCAiIiwg
IiIpIFwKICAgICBtYWNybyhTaG91bGRQcmludEJhY2tncm91bmRzLCBzaG91bGRQcmludEJhY2tn
cm91bmRzLCBCb29sLCBib29sLCBERUZBVUxUX1NIT1VMRF9QUklOVF9CQUNLR1JPVU5EUywgIiIs
ICIiKSBcCisgICAgbWFjcm8oTGlua1ByZWNvbm5lY3QsIGxpbmtQcmVjb25uZWN0LCBCb29sLCBi
b29sLCBERUZBVUxUX0xJTktfUFJFQ09OTkVDVF9FTkFCTEVELCAiIiwgIiIpIFwKICAgICBtYWNy
byhGdWxsU2NyZWVuRW5hYmxlZCwgZnVsbFNjcmVlbkVuYWJsZWQsIEJvb2wsIGJvb2wsIGZhbHNl
LCAiIiwgIiIpIFwKICAgICBtYWNybyhBc3luY2hyb25vdXNTcGVsbENoZWNraW5nRW5hYmxlZCwg
YXN5bmNocm9ub3VzU3BlbGxDaGVja2luZ0VuYWJsZWQsIEJvb2wsIGJvb2wsIGZhbHNlLCAiIiwg
IiIpIFwKICAgICBtYWNybyhXZWJTZWN1cml0eUVuYWJsZWQsIHdlYlNlY3VyaXR5RW5hYmxlZCwg
Qm9vbCwgYm9vbCwgdHJ1ZSwgIiIsICIiKSBcCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9BUEkvQy9XS0NvbnRleHQuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJ
L0MvV0tDb250ZXh0LmNwcAppbmRleCA3ODMzOGVkNjU3OC4uNzA0OGJiZTBjMGQgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9DL1dLQ29udGV4dC5jcHAKKysrIGIvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0MvV0tDb250ZXh0LmNwcApAQCAtNDA3LDYgKzQwNywx
MSBAQCB2b2lkIFdLQ29udGV4dFNldERpc2tDYWNoZVNwZWN1bGF0aXZlVmFsaWRhdGlvbkVuYWJs
ZWQoV0tDb250ZXh0UmVmIGNvbnRleHRSZWYsCiAgICAgdG9JbXBsKGNvbnRleHRSZWYpLT5jb25m
aWd1cmF0aW9uKCkuc2V0RGlza0NhY2hlU3BlY3VsYXRpdmVWYWxpZGF0aW9uRW5hYmxlZCh2YWx1
ZSk7CiB9CiAKK3ZvaWQgV0tDb250ZXh0UHJlY29ubmVjdFRvU2VydmVyKFdLQ29udGV4dFJlZiBj
b250ZXh0UmVmLCBXS1VSTFJlZiBzZXJ2ZXJVUkxSZWYpCit7CisgICAgdG9JbXBsKGNvbnRleHRS
ZWYpLT5wcmVjb25uZWN0VG9TZXJ2ZXIoVVJMKFVSTCgpLCB0b1dURlN0cmluZyhzZXJ2ZXJVUkxS
ZWYpKSk7Cit9CisKIFdLQ29va2llTWFuYWdlclJlZiBXS0NvbnRleHRHZXRDb29raWVNYW5hZ2Vy
KFdLQ29udGV4dFJlZiBjb250ZXh0UmVmKQogewogICAgIHJldHVybiB0b0FQSSh0b0ltcGwoY29u
dGV4dFJlZiktPnN1cHBsZW1lbnQ8V2ViQ29va2llTWFuYWdlclByb3h5PigpKTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9DL1dLQ29udGV4dFByaXZhdGUuaCBiL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9DL1dLQ29udGV4dFByaXZhdGUuaAppbmRleCAwMmY5
MGI5MTdiNC4uMTUyZDZkYWIwYjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L0FQSS9DL1dLQ29udGV4dFByaXZhdGUuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9B
UEkvQy9XS0NvbnRleHRQcml2YXRlLmgKQEAgLTEwNSw2ICsxMDUsOCBAQCBXS19FWFBPUlQgdm9p
ZCBXS0NvbnRleHRTZXRNZW1vcnlDYWNoZURpc2FibGVkKFdLQ29udGV4dFJlZiwgYm9vbCBkaXNh
YmxlZCk7CiAKIFdLX0VYUE9SVCB2b2lkIFdLQ29udGV4dFNldEZvbnRXaGl0ZWxpc3QoV0tDb250
ZXh0UmVmLCBXS0FycmF5UmVmKTsKIAorV0tfRVhQT1JUIHZvaWQgV0tDb250ZXh0UHJlY29ubmVj
dFRvU2VydmVyKFdLQ29udGV4dFJlZiBjb250ZXh0LCBXS1VSTFJlZiBzZXJ2ZXJVUkwpOworCiBX
S19FWFBPUlQgV0tQcm9jZXNzSUQgV0tDb250ZXh0R2V0TmV0d29ya1Byb2Nlc3NJZGVudGlmaWVy
KFdLQ29udGV4dFJlZiBjb250ZXh0KTsKIFdLX0VYUE9SVCBXS1Byb2Nlc3NJRCBXS0NvbnRleHRH
ZXREYXRhYmFzZVByb2Nlc3NJZGVudGlmaWVyKFdLQ29udGV4dFJlZiBjb250ZXh0KTsKIApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLUHJvY2Vzc1Bvb2wu
bW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tQcm9jZXNzUG9vbC5tbQpp
bmRleCAxZjU5NzRkZjU3YS4uMTgwMjMwN2M3ZTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL0FQSS9Db2NvYS9XS1Byb2Nlc3NQb29sLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL0FQSS9Db2NvYS9XS1Byb2Nlc3NQb29sLm1tCkBAIC00MTUsNiArNDE1LDExIEBA
IHN0YXRpYyBOU0RpY3Rpb25hcnkgKnBvbGljaWVzSGFzaE1hcFRvRGljdGlvbmFyeShjb25zdCBI
YXNoTWFwPFN0cmluZywgSGFzaE1hcDxTCiAgICAgcmV0dXJuIF9wcm9jZXNzUG9vbC0+cHJvY2Vz
c2VzKCkuc2l6ZSgpOwogfQogCistICh2b2lkKV9wcmVjb25uZWN0VG9TZXJ2ZXI6KE5TVVJMICop
c2VydmVyVVJMCit7CisgICAgX3Byb2Nlc3NQb29sLT5wcmVjb25uZWN0VG9TZXJ2ZXIoc2VydmVy
VVJMKTsKK30KKwogLSAoc2l6ZV90KV9wbHVnaW5Qcm9jZXNzQ291bnQKIHsKICNpZiAhUExBVEZP
Uk0oSU9TKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dL
UHJvY2Vzc1Bvb2xQcml2YXRlLmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2Ev
V0tQcm9jZXNzUG9vbFByaXZhdGUuaAppbmRleCAwN2FhZTMxMDhmYi4uMTNmZTU5YzQ4MmIgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1Byb2Nlc3NQb29s
UHJpdmF0ZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1Byb2Nl
c3NQb29sUHJpdmF0ZS5oCkBAIC04Nyw2ICs4Nyw4IEBACiAvLyBUZXN0IG9ubHkuIFNob3VsZCBi
ZSBjYWxsZWQgYmVmb3JlIGFueSB3ZWIgY29udGVudCBwcm9jZXNzZXMgYXJlIGxhdW5jaGVkLgog
KyAodm9pZClfZm9yY2VHYW1lQ29udHJvbGxlckZyYW1ld29yayBXS19BUElfQVZBSUxBQkxFKG1h
Y29zeCgxMC4xMyksIGlvcygxMS4wKSk7CiAKKy0gKHZvaWQpX3ByZWNvbm5lY3RUb1NlcnZlcjoo
TlNVUkwgKilzZXJ2ZXJVUkwgV0tfQVBJX0FWQUlMQUJMRShtYWNvc3goV0tfTUFDX1RCQSksIGlv
cyhXS19JT1NfVEJBKSk7CisKIEBwcm9wZXJ0eSAobm9uYXRvbWljLCBnZXR0ZXI9X2lzQ29va2ll
U3RvcmFnZVBhcnRpdGlvbmluZ0VuYWJsZWQsIHNldHRlcj1fc2V0Q29va2llU3RvcmFnZVBhcnRp
dGlvbmluZ0VuYWJsZWQ6KSBCT09MIF9jb29raWVTdG9yYWdlUGFydGl0aW9uaW5nRW5hYmxlZCBX
S19BUElfQVZBSUxBQkxFKG1hY29zeCgxMC4xMi4zKSwgaW9zKDEwLjMpKTsKIAogQGVuZApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Bvb2wuY3BwIGIvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Bvb2wuY3BwCmluZGV4IGFjYjlkNTYyNWVh
Li4yNjIwODYzOWZmNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJv
Y2Vzc1Bvb2wuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQb29s
LmNwcApAQCAtMTE1Nyw2ICsxMTU3LDE0IEBAIHZvaWQgV2ViUHJvY2Vzc1Bvb2w6OnNldENhbkhh
bmRsZUhUVFBTU2VydmVyVHJ1c3RFdmFsdWF0aW9uKGJvb2wgdmFsdWUpCiAgICAgfQogfQogCit2
b2lkIFdlYlByb2Nlc3NQb29sOjpwcmVjb25uZWN0VG9TZXJ2ZXIoY29uc3QgVVJMJiB1cmwpCit7
CisgICAgaWYgKCF1cmwuaXNWYWxpZCgpIHx8ICF1cmwucHJvdG9jb2xJc0luSFRUUEZhbWlseSgp
KQorICAgICAgICByZXR1cm47CisKKyAgICBlbnN1cmVOZXR3b3JrUHJvY2VzcygpLnNlbmQoTWVz
c2FnZXM6Ok5ldHdvcmtQcm9jZXNzOjpQcmVjb25uZWN0VG8odXJsLCBTdG9yZWRDcmVkZW50aWFs
c1BvbGljeTo6VXNlKSwgMCk7Cit9CisKIHZvaWQgV2ViUHJvY2Vzc1Bvb2w6OnJlZ2lzdGVyVVJM
U2NoZW1lQXNMb2NhbChjb25zdCBTdHJpbmcmIHVybFNjaGVtZSkKIHsKICAgICBtX3NjaGVtZXNU
b1JlZ2lzdGVyQXNMb2NhbC5hZGQodXJsU2NoZW1lKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQb29sLmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9X
ZWJQcm9jZXNzUG9vbC5oCmluZGV4IGUxOWY2ZGYyYWY4Li5hZDViMGM2N2E5NSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Bvb2wuaAorKysgYi9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUG9vbC5oCkBAIC0yMTYsNiArMjE2LDcgQEAgcHVi
bGljOgogICAgIHZvaWQgcmVnaXN0ZXJVUkxTY2hlbWVBc0Rpc3BsYXlJc29sYXRlZChjb25zdCBT
dHJpbmcmKTsKICAgICB2b2lkIHJlZ2lzdGVyVVJMU2NoZW1lQXNDT1JTRW5hYmxlZChjb25zdCBT
dHJpbmcmKTsKICAgICB2b2lkIHJlZ2lzdGVyVVJMU2NoZW1lQXNDYWNoZVBhcnRpdGlvbmVkKGNv
bnN0IFN0cmluZyYpOworICAgIHZvaWQgcHJlY29ubmVjdFRvU2VydmVyKGNvbnN0IFdlYkNvcmU6
OlVSTCYpOwogCiAgICAgVmlzaXRlZExpbmtTdG9yZSYgdmlzaXRlZExpbmtTdG9yZSgpIHsgcmV0
dXJuIG1fdmlzaXRlZExpbmtTdG9yZS5nZXQoKTsgfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L1dlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNlL1dlYktpdC9XZWJL
aXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCA2ODA3ZTkzY2RkYy4uYzI4Y2MxMWM1
ZWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBi
eHByb2oKKysrIGIvU291cmNlL1dlYktpdC9XZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJv
agpAQCAtMTM4MCw2ICsxMzgwLDggQEAKIAkJODM5OTAyMDMxQkU5QTAyQjAwMEYzNjUzIC8qIE5l
dHdvcmtMb2FkLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSA4Mzk5MDFGRTFCRTlBMDFCMDAwRjM2NTMgLyogTmV0d29ya0xvYWQuaCAqLzsgfTsKIAkJODM5
QTJGMzExRTIwNjc0NTAwMzkwNTdFIC8qIEhpZ2hQZXJmb3JtYW5jZUdyYXBoaWNzVXNhZ2VTYW1w
bGVyLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDgz
OUEyRjJGMUUyMDY3MzkwMDM5MDU3RSAvKiBIaWdoUGVyZm9ybWFuY2VHcmFwaGljc1VzYWdlU2Ft
cGxlci5jcHAgKi87IH07CiAJCTgzOUEyRjMyMUUyMDY3NDUwMDM5MDU3RSAvKiBIaWdoUGVyZm9y
bWFuY2VHcmFwaGljc1VzYWdlU2FtcGxlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gODM5QTJGMzAxRTIwNjczOTAwMzkwNTdFIC8qIEhpZ2hQZXJmb3Jt
YW5jZUdyYXBoaWNzVXNhZ2VTYW1wbGVyLmggKi87IH07CisJCTgzQTBFRDM0MUY3NDdDQ0QwMDMy
OTlFQiAvKiBQcmVjb25uZWN0VGFzay5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSA4M0EwRUQzMzFGNzQ3Q0M3MDAzMjk5RUIgLyogUHJlY29ubmVjdFRh
c2suY3BwICovOyB9OworCQk4M0EwRUQzNTFGNzQ3Q0NGMDAzMjk5RUIgLyogUHJlY29ubmVjdFRh
c2suaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDgzQTBF
RDMyMUY3NDdDQzYwMDMyOTlFQiAvKiBQcmVjb25uZWN0VGFzay5oICovOyB9OwogCQk4M0JEQ0NC
OTFBQzVGREI2MDAzRjY0NDEgLyogTmV0d29ya0NhY2hlU3RhdGlzdGljcy5jcHAgaW4gU291cmNl
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4M0JEQ0NCODFBQzVGREI2MDAz
RjY0NDEgLyogTmV0d29ya0NhY2hlU3RhdGlzdGljcy5jcHAgKi87IH07CiAJCTgzQkZBQzQyMUQ5
NjEzN0MwMDQzMzQ5MCAvKiBCbG9iRG93bmxvYWRDbGllbnQuaCBpbiBIZWFkZXJzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDgzQkZBQzQwMUQ5NjEzNjAwMDQzMzQ5MCAvKiBC
bG9iRG93bmxvYWRDbGllbnQuaCAqLzsgfTsKIAkJODNCRkFDNDMxRDk2MTM3QzAwNDMzNDkwIC8q
IEJsb2JEb3dubG9hZENsaWVudC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSA4M0JGQUM0MTFEOTYxMzYwMDA0MzM0OTAgLyogQmxvYkRvd25sb2FkQ2xp
ZW50LmNwcCAqLzsgfTsKQEAgLTM3MzMsNiArMzczNSw4IEBACiAJCTgzOTkwMUZGMUJFOUEwMUIw
MDBGMzY1MyAvKiBOZXR3b3JrTG9hZC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7
IG5hbWUgPSBOZXR3b3JrTG9hZC5jcHA7IHBhdGggPSBOZXR3b3JrUHJvY2Vzcy9OZXR3b3JrTG9h
ZC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTgzOUEyRjJGMUUyMDY3MzkwMDM5
MDU3RSAvKiBIaWdoUGVyZm9ybWFuY2VHcmFwaGljc1VzYWdlU2FtcGxlci5jcHAgKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBIaWdoUGVyZm9ybWFuY2VHcmFwaGljc1VzYWdl
U2FtcGxlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTgzOUEyRjMwMUUyMDY3
MzkwMDM5MDU3RSAvKiBIaWdoUGVyZm9ybWFuY2VHcmFwaGljc1VzYWdlU2FtcGxlci5oICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBIaWdoUGVyZm9ybWFuY2VHcmFwaGljc1VzYWdl
U2FtcGxlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk4M0EwRUQzMjFGNzQ3Q0M2
MDAzMjk5RUIgLyogUHJlY29ubmVjdFRhc2suaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBu
YW1lID0gUHJlY29ubmVjdFRhc2suaDsgcGF0aCA9IE5ldHdvcmtQcm9jZXNzL1ByZWNvbm5lY3RU
YXNrLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTgzQTBFRDMzMUY3NDdDQzcwMDMy
OTlFQiAvKiBQcmVjb25uZWN0VGFzay5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7
IG5hbWUgPSBQcmVjb25uZWN0VGFzay5jcHA7IHBhdGggPSBOZXR3b3JrUHJvY2Vzcy9QcmVjb25u
ZWN0VGFzay5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTgzQkRDQ0I4MUFDNUZE
QjYwMDNGNjQ0MSAvKiBOZXR3b3JrQ2FjaGVTdGF0aXN0aWNzLmNwcCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuY3BwLmNwcDsgcGF0aCA9IE5ldHdvcmtDYWNoZVN0YXRpc3RpY3MuY3BwOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwogCQk4M0JGQUM0MDFEOTYxMzYwMDA0MzM0OTAgLyogQmxvYkRv
d25sb2FkQ2xpZW50LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IEJsb2JEb3du
bG9hZENsaWVudC5oOyBwYXRoID0gTmV0d29ya1Byb2Nlc3MvRG93bmxvYWRzL0Jsb2JEb3dubG9h
ZENsaWVudC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk4M0JGQUM0MTFEOTYxMzYw
MDA0MzM0OTAgLyogQmxvYkRvd25sb2FkQ2xpZW50LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Y3BwLmNwcDsgbmFtZSA9IEJsb2JEb3dubG9hZENsaWVudC5jcHA7IHBhdGggPSBOZXR3b3JrUHJv
Y2Vzcy9Eb3dubG9hZHMvQmxvYkRvd25sb2FkQ2xpZW50LmNwcDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKQEAgLTYxMTUsNiArNjExOSw4IEBACiAJCQkJNUMwQjE3N0YxRTdDODg2NzAwRTkx
MjNDIC8qIE5ldHdvcmtTb2NrZXRTdHJlYW0ubWVzc2FnZXMuaW4gKi8sCiAJCQkJNDYyMTA3RDcx
RjM4REJEMzAwREQ3ODEwIC8qIFBpbmdMb2FkLmNwcCAqLywKIAkJCQk1Q0U4NUIxRjFDODhFNjQz
MDA3MEJGQ0UgLyogUGluZ0xvYWQuaCAqLywKKwkJCQk4M0EwRUQzMzFGNzQ3Q0M3MDAzMjk5RUIg
LyogUHJlY29ubmVjdFRhc2suY3BwICovLAorCQkJCTgzQTBFRDMyMUY3NDdDQzYwMDMyOTlFQiAv
KiBQcmVjb25uZWN0VGFzay5oICovLAogCQkJCUUxQjc4NDcwMTYzRjI0NjkwMDA3QjY5MiAvKiBS
ZW1vdGVOZXR3b3JraW5nQ29udGV4dC5oICovLAogCQkJKTsKIAkJCW5hbWUgPSBOZXR3b3JrUHJv
Y2VzczsKQEAgLTg3MDksNiArODcxNSw3IEBACiAJCQkJMUE0QTlGMzMxMkI4NDRFMjAwOEZFOTg0
IC8qIFBsdWdpblF1aXJrcy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJN0NENjIyNzgxNzM5RDg2MzAw
NUJEN0ZGIC8qIFBsdWdpblNhbmRib3hQcm9maWxlLmggaW4gSGVhZGVycyAqLywKIAkJCQkxQTZG
QjdBRjExRTY0QjY4MDBEQjEzNzEgLyogUGx1Z2luVmlldy5oIGluIEhlYWRlcnMgKi8sCisJCQkJ
ODNBMEVEMzUxRjc0N0NDRjAwMzI5OUVCIC8qIFByZWNvbm5lY3RUYXNrLmggaW4gSGVhZGVycyAq
LywKIAkJCQlFMUNDMUI5MDEyRDdFQURGMDA2MjU4MzggLyogUHJpbnRJbmZvLmggaW4gSGVhZGVy
cyAqLywKIAkJCQk4NkY5NTM2NTE4RkY1OEY1MDAxREIyRUYgLyogUHJvY2Vzc0Fzc2VydGlvbi5o
IGluIEhlYWRlcnMgKi8sCiAJCQkJQkMxQTdDNTgxMTM2RTE5QzAwRkI3MTY3IC8qIFByb2Nlc3NM
YXVuY2hlci5oIGluIEhlYWRlcnMgKi8sCkBAIC0xMDI5MCw2ICsxMDI5Nyw3IEBACiAJCQkJN0NE
NjIyNzcxNzM5RDg2MzAwNUJEN0ZGIC8qIFBsdWdpblNhbmRib3hQcm9maWxlLm1tIGluIFNvdXJj
ZXMgKi8sCiAJCQkJQkM4Mjg0NEQxNkI1MDgxQzAwQTI3OEZFIC8qIFBsdWdpblNlcnZpY2VFbnRy
eVBvaW50Lm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJMUE2RkI3QUUxMUU2NEI2ODAwREIxMzcxIC8q
IFBsdWdpblZpZXcuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJODNBMEVEMzQxRjc0N0NDRDAwMzI5
OUVCIC8qIFByZWNvbm5lY3RUYXNrLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUUxOEM5MkY0MTJE
QjlFNzEwMENGMkFFQiAvKiBQcmludEluZm8uY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJRTFDQzFC
OTExMkQ3RUFERjAwNjI1ODM4IC8qIFByaW50SW5mb01hYy5tbSBpbiBTb3VyY2VzICovLAogCQkJ
CTM3NzE2QTVBMTk1QjkxMDUwMEVFOEIxQiAvKiBQcm9jZXNzQXNzZXJ0aW9uLmNwcCBpbiBTb3Vy
Y2VzICovLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL05ldHdvcmsvV2Vi
TG9hZGVyU3RyYXRlZ3kuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL05ldHdvcmsvV2Vi
TG9hZGVyU3RyYXRlZ3kuY3BwCmluZGV4IGVhN2IxN2EzZGViLi42ZGVmNGQwZTNjOSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL05ldHdvcmsvV2ViTG9hZGVyU3RyYXRlZ3ku
Y3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9OZXR3b3JrL1dlYkxvYWRlclN0cmF0
ZWd5LmNwcApAQCAtNDU5LDYgKzQ1OSwxMSBAQCB2b2lkIFdlYkxvYWRlclN0cmF0ZWd5OjpkaWRG
aW5pc2hQaW5nTG9hZCh1aW50NjRfdCBwaW5nTG9hZElkZW50aWZpZXIsIFJlc291cmNlRQogICAg
ICAgICBjb21wbGV0aW9uSGFuZGxlcihXVEZNb3ZlKGVycm9yKSk7CiB9CiAKK3ZvaWQgV2ViTG9h
ZGVyU3RyYXRlZ3k6OnByZWNvbm5lY3RUbyhjb25zdCBXZWJDb3JlOjpVUkwmIHVybCwgU3RvcmVk
Q3JlZGVudGlhbHNQb2xpY3kgc3RvcmVkQ3JlZGVudGlhbHNQb2xpY3kpCit7CisgICAgV2ViUHJv
Y2Vzczo6c2luZ2xldG9uKCkubmV0d29ya0Nvbm5lY3Rpb24oKS5jb25uZWN0aW9uKCkuc2VuZChN
ZXNzYWdlczo6TmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6OlByZWNvbm5lY3RUbyh1cmws
IHN0b3JlZENyZWRlbnRpYWxzUG9saWN5KSwgMCk7Cit9CisKIHZvaWQgV2ViTG9hZGVyU3RyYXRl
Z3k6OnN0b3JlRGVyaXZlZERhdGFUb0NhY2hlKGNvbnN0IFNIQTE6OkRpZ2VzdCYgYm9keUhhc2gs
IGNvbnN0IFN0cmluZyYgdHlwZSwgY29uc3QgU3RyaW5nJiBwYXJ0aXRpb24sIFdlYkNvcmU6OlNo
YXJlZEJ1ZmZlciYgZGF0YSkKIHsKICNpZiBFTkFCTEUoTkVUV09SS19DQUNIRSkKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9OZXR3b3JrL1dlYkxvYWRlclN0cmF0ZWd5Lmgg
Yi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvTmV0d29yay9XZWJMb2FkZXJTdHJhdGVneS5oCmlu
ZGV4IDU3MzAyOGU1YTdiLi44YWQxNjM1MTQwOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL05ldHdvcmsvV2ViTG9hZGVyU3RyYXRlZ3kuaAorKysgYi9Tb3VyY2UvV2ViS2l0
L1dlYlByb2Nlc3MvTmV0d29yay9XZWJMb2FkZXJTdHJhdGVneS5oCkBAIC02Miw2ICs2Miw4IEBA
IHB1YmxpYzoKICAgICB2b2lkIHN0YXJ0UGluZ0xvYWQoV2ViQ29yZTo6RnJhbWUmLCBXZWJDb3Jl
OjpSZXNvdXJjZVJlcXVlc3QmLCBjb25zdCBXZWJDb3JlOjpIVFRQSGVhZGVyTWFwJiBvcmlnaW5h
bFJlcXVlc3RIZWFkZXJzLCBjb25zdCBXZWJDb3JlOjpGZXRjaE9wdGlvbnMmLCBQaW5nTG9hZENv
bXBsZXRpb25IYW5kbGVyJiYpIGZpbmFsOwogICAgIHZvaWQgZGlkRmluaXNoUGluZ0xvYWQodWlu
dDY0X3QgcGluZ0xvYWRJZGVudGlmaWVyLCBXZWJDb3JlOjpSZXNvdXJjZUVycm9yJiYpOwogCisg
ICAgdm9pZCBwcmVjb25uZWN0VG8oY29uc3QgV2ViQ29yZTo6VVJMJiwgV2ViQ29yZTo6U3RvcmVk
Q3JlZGVudGlhbHNQb2xpY3kpIGZpbmFsOworCiAgICAgdm9pZCBzdG9yZURlcml2ZWREYXRhVG9D
YWNoZShjb25zdCBTSEExOjpEaWdlc3QmIGJvZHlIYXNoLCBjb25zdCBTdHJpbmcmIHR5cGUsIGNv
bnN0IFN0cmluZyYgcGFydGl0aW9uLCBXZWJDb3JlOjpTaGFyZWRCdWZmZXImKSBmaW5hbDsKIAog
ICAgIHZvaWQgc2V0Q2FwdHVyZUV4dHJhTmV0d29ya0xvYWRNZXRyaWNzRW5hYmxlZChib29sKSBm
aW5hbDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBh
Z2UuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAKaW5k
ZXggODI2MWUzMzQ1ODIuLmE4ZGVlNmY1YjdjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvV2ViUGFnZS9XZWJQYWdlLmNwcApAQCAtMzA5MCw2ICszMDkwLDcgQEAgdm9pZCBXZWJQYWdl
Ojp1cGRhdGVQcmVmZXJlbmNlcyhjb25zdCBXZWJQcmVmZXJlbmNlc1N0b3JlJiBzdG9yZSkKICAg
ICBzZXR0aW5ncy5zZXRQYWdpbmF0ZUR1cmluZ0xheW91dEVuYWJsZWQoc3RvcmUuZ2V0Qm9vbFZh
bHVlRm9yS2V5KFdlYlByZWZlcmVuY2VzS2V5OjpwYWdpbmF0ZUR1cmluZ0xheW91dEVuYWJsZWRL
ZXkoKSkpOwogICAgIHNldHRpbmdzLnNldERPTVBhc3RlQWxsb3dlZChzdG9yZS5nZXRCb29sVmFs
dWVGb3JLZXkoV2ViUHJlZmVyZW5jZXNLZXk6OmRvbVBhc3RlQWxsb3dlZEtleSgpKSk7CiAgICAg
c2V0dGluZ3Muc2V0SmF2YVNjcmlwdENhbkFjY2Vzc0NsaXBib2FyZChzdG9yZS5nZXRCb29sVmFs
dWVGb3JLZXkoV2ViUHJlZmVyZW5jZXNLZXk6OmphdmFTY3JpcHRDYW5BY2Nlc3NDbGlwYm9hcmRL
ZXkoKSkpOworICAgIHNldHRpbmdzLnNldExpbmtQcmVjb25uZWN0RW5hYmxlZChzdG9yZS5nZXRC
b29sVmFsdWVGb3JLZXkoV2ViUHJlZmVyZW5jZXNLZXk6OmxpbmtQcmVjb25uZWN0S2V5KCkpKTsK
ICAgICBzZXR0aW5ncy5zZXRTaG91bGRQcmludEJhY2tncm91bmRzKHN0b3JlLmdldEJvb2xWYWx1
ZUZvcktleShXZWJQcmVmZXJlbmNlc0tleTo6c2hvdWxkUHJpbnRCYWNrZ3JvdW5kc0tleSgpKSk7
CiAgICAgc2V0dGluZ3Muc2V0V2ViU2VjdXJpdHlFbmFibGVkKHN0b3JlLmdldEJvb2xWYWx1ZUZv
cktleShXZWJQcmVmZXJlbmNlc0tleTo6d2ViU2VjdXJpdHlFbmFibGVkS2V5KCkpKTsKICAgICBz
ZXR0aW5ncy5zZXRBbGxvd1VuaXZlcnNhbEFjY2Vzc0Zyb21GaWxlVVJMcyhzdG9yZS5nZXRCb29s
VmFsdWVGb3JLZXkoV2ViUHJlZmVyZW5jZXNLZXk6OmFsbG93VW5pdmVyc2FsQWNjZXNzRnJvbUZp
bGVVUkxzS2V5KCkpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY29uZmlnLmggYi9Tb3Vy
Y2UvV2ViS2l0L2NvbmZpZy5oCmluZGV4IGU4NjdmNDg3YzcxLi5jYWY0ZmQ3N2JjYSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9jb25maWcuaAorKysgYi9Tb3VyY2UvV2ViS2l0L2NvbmZpZy5o
CkBAIC04OCw2ICs4OCwxMiBAQAogI2VuZGlmCiAjZW5kaWYKIAorI2lmIFVTRShORVRXT1JLX1NF
U1NJT04pICYmICgoUExBVEZPUk0oTUFDKSAmJiBfX01BQ19PU19YX1ZFUlNJT05fTUlOX1JFUVVJ
UkVEID49IDEwMTMwMCkgfHwgKFBMQVRGT1JNKElPUykgJiYgX19JUEhPTkVfT1NfVkVSU0lPTl9N
SU5fUkVRVUlSRUQgPj0gMTEwMDAwKSkKKyNpZm5kZWYgRU5BQkxFX1NFUlZFUl9QUkVDT05ORUNU
CisjZGVmaW5lIEVOQUJMRV9TRVJWRVJfUFJFQ09OTkVDVCAxCisjZW5kaWYKKyNlbmRpZgorCiAj
aWZuZGVmIEhBVkVfU0VDX0FDQ0VTU19DT05UUk9MCiAjaWYgUExBVEZPUk0oSU9TKSB8fCBQTEFU
Rk9STShNQUMpCiAjZGVmaW5lIEhBVkVfU0VDX0FDQ0VTU19DT05UUk9MIDEKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXRMZWdhY3kvV2ViQ29yZVN1cHBvcnQvV2ViUmVzb3VyY2VMb2FkU2NoZWR1
bGVyLmNwcCBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvV2ViQ29yZVN1cHBvcnQvV2ViUmVzb3VyY2VM
b2FkU2NoZWR1bGVyLmNwcAppbmRleCA0ZDI5ODVkMWE0My4uMjY0OTNhYjZjNDIgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvV2ViQ29yZVN1cHBvcnQvV2ViUmVzb3VyY2VMb2FkU2No
ZWR1bGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L1dlYkNvcmVTdXBwb3J0L1dlYlJl
c291cmNlTG9hZFNjaGVkdWxlci5jcHAKQEAgLTM2OSwzICszNjksNyBAQCB2b2lkIFdlYlJlc291
cmNlTG9hZFNjaGVkdWxlcjo6c3RhcnRQaW5nTG9hZChGcmFtZSYgZnJhbWUsIFJlc291cmNlUmVx
dWVzdCYgcmVxdQogICAgIG5ldyBQaW5nSGFuZGxlKGZyYW1lLmxvYWRlcigpLm5ldHdvcmtpbmdD
b250ZXh0KCksIHJlcXVlc3QsIG9wdGlvbnMuY3JlZGVudGlhbHMgIT0gRmV0Y2hPcHRpb25zOjpD
cmVkZW50aWFsczo6T21pdCwgUGluZ0hhbmRsZTo6VXNlc0FzeW5jQ2FsbGJhY2tzOjpObywgb3B0
aW9ucy5yZWRpcmVjdCA9PSBGZXRjaE9wdGlvbnM6OlJlZGlyZWN0OjpGb2xsb3csIFdURk1vdmUo
Y29tcGxldGlvbkhhbmRsZXIpKTsKIH0KIAordm9pZCBXZWJSZXNvdXJjZUxvYWRTY2hlZHVsZXI6
OnByZWNvbm5lY3RUbyhjb25zdCBVUkwmLCBTdG9yZWRDcmVkZW50aWFsc1BvbGljeSkKK3sKK30K
KwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdExlZ2FjeS9XZWJDb3JlU3VwcG9ydC9XZWJSZXNv
dXJjZUxvYWRTY2hlZHVsZXIuaCBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvV2ViQ29yZVN1cHBvcnQv
V2ViUmVzb3VyY2VMb2FkU2NoZWR1bGVyLmgKaW5kZXggMGUwYzJkZTU3N2MuLjFjMjYwOTJmODIz
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L1dlYkNvcmVTdXBwb3J0L1dlYlJlc291
cmNlTG9hZFNjaGVkdWxlci5oCisrKyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvV2ViQ29yZVN1cHBv
cnQvV2ViUmVzb3VyY2VMb2FkU2NoZWR1bGVyLmgKQEAgLTYxLDYgKzYxLDggQEAgcHVibGljOgog
CiAgICAgdm9pZCBzdGFydFBpbmdMb2FkKFdlYkNvcmU6OkZyYW1lJiwgV2ViQ29yZTo6UmVzb3Vy
Y2VSZXF1ZXN0JiwgY29uc3QgV2ViQ29yZTo6SFRUUEhlYWRlck1hcCYsIGNvbnN0IFdlYkNvcmU6
OkZldGNoT3B0aW9ucyYsIFBpbmdMb2FkQ29tcGxldGlvbkhhbmRsZXImJikgZmluYWw7CiAKKyAg
ICB2b2lkIHByZWNvbm5lY3RUbyhjb25zdCBXZWJDb3JlOjpVUkwmLCBXZWJDb3JlOjpTdG9yZWRD
cmVkZW50aWFsc1BvbGljeSkgZmluYWw7CisKICAgICB2b2lkIHN0b3JlRGVyaXZlZERhdGFUb0Nh
Y2hlKGNvbnN0IFNIQTE6OkRpZ2VzdCYsIGNvbnN0IFN0cmluZyYsIGNvbnN0IFN0cmluZyYsIFdl
YkNvcmU6OlNoYXJlZEJ1ZmZlciYpIGZpbmFsIHsgfQogCiAgICAgdm9pZCBzZXRDYXB0dXJlRXh0
cmFOZXR3b3JrTG9hZE1ldHJpY3NFbmFibGVkKGJvb2wpIGZpbmFsIHsgfQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>321859</attachid>
            <date>2017-09-26 13:10:59 -0700</date>
            <delta_ts>2017-09-26 13:39:47 -0700</delta_ts>
            <desc>WIP Patch</desc>
            <filename>177474_preconnect_support_wip.patch</filename>
            <type>text/plain</type>
            <size>58467</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcHJlbG9hZC9saW5rLXJlbC1wcmVj
b25uZWN0LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcHJlbG9hZC9saW5r
LXJlbC1wcmVjb25uZWN0LWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMC4uOGViZTgwNGI0MTMKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9o
dHRwL3Rlc3RzL3ByZWxvYWQvbGluay1yZWwtcHJlY29ubmVjdC1leHBlY3RlZC50eHQKQEAgLTAs
MCArMSwxMyBAQAorQ09OU09MRSBNRVNTQUdFOiBTdWNjZXNzZnVseSBwcmVjb25uZWN0ZWQgdG8g
aHR0cDovL2xvY2FsaG9zdDo4MDAwLworVGVzdHMgdGhhdCBMaW5rJ3MgcmVsPXByZWNvbm5lY3Qg
aXMgcmVwb3J0ZWQgYXMgc3VwcG9ydGVkIGFuZCB3b3Jrcy4KKworT24gc3VjY2VzcywgeW91IHdp
bGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09N
UExFVEUiLgorCisKK1BBU1MgdGVzdExpbmsucmVsTGlzdC5sZW5ndGggaXMgMQorUEFTUyB0ZXN0
TGluay5yZWxMaXN0WzBdIGlzICJwcmVjb25uZWN0IgorUEFTUyB0ZXN0TGluay5yZWxMaXN0LnN1
cHBvcnRzKCdwcmVjb25uZWN0JykgaXMgdHJ1ZQorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMg
dHJ1ZQorCitURVNUIENPTVBMRVRFCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVz
dHMvcHJlbG9hZC9saW5rLXJlbC1wcmVjb25uZWN0Lmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rl
c3RzL3ByZWxvYWQvbGluay1yZWwtcHJlY29ubmVjdC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwLi5mMTkwNDIxNmQ1ZAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91
dFRlc3RzL2h0dHAvdGVzdHMvcHJlbG9hZC9saW5rLXJlbC1wcmVjb25uZWN0Lmh0bWwKQEAgLTAs
MCArMSwyMCBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorPGxpbmsgaWQ9InRl
c3RMaW5rIiByZWw9InByZWNvbm5lY3QiIGhyZWY9Imh0dHA6Ly9sb2NhbGhvc3Q6ODAwMCI+Cis8
c2NyaXB0IHNyYz0iL2pzLXRlc3QtcmVzb3VyY2VzL2pzLXRlc3QuanMiPjwvc2NyaXB0PgorPC9o
ZWFkPgorPGJvZHk+Cis8c2NyaXB0PgorZGVzY3JpcHRpb24oIlRlc3RzIHRoYXQgTGluaydzIHJl
bD1wcmVjb25uZWN0IGlzIHJlcG9ydGVkIGFzIHN1cHBvcnRlZCBhbmQgd29ya3MuIik7Citqc1Rl
c3RJc0FzeW5jID0gdHJ1ZTsKKworY29uc3QgdGVzdExpbmsgPSBkb2N1bWVudC5nZXRFbGVtZW50
QnlJZCgidGVzdExpbmsiKTsKK3Nob3VsZEJlKCJ0ZXN0TGluay5yZWxMaXN0Lmxlbmd0aCIsICIx
Iik7CitzaG91bGRCZUVxdWFsVG9TdHJpbmcoInRlc3RMaW5rLnJlbExpc3RbMF0iLCAicHJlY29u
bmVjdCIpOworc2hvdWxkQmVUcnVlKCJ0ZXN0TGluay5yZWxMaXN0LnN1cHBvcnRzKCdwcmVjb25u
ZWN0JykiKTsKKworc2V0VGltZW91dChmaW5pc2hKU1Rlc3QsIDEwMDApOworPC9zY3JpcHQ+Cis8
L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMtd2sx
L1Rlc3RFeHBlY3RhdGlvbnMgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMtd2sxL1Rlc3RFeHBl
Y3RhdGlvbnMKaW5kZXggODAzNzMzMzRmZWYuLjBiYTdmZDUyM2RkIDEwMDY0NAotLS0gYS9MYXlv
dXRUZXN0cy9wbGF0Zm9ybS9tYWMtd2sxL1Rlc3RFeHBlY3RhdGlvbnMKKysrIGIvTGF5b3V0VGVz
dHMvcGxhdGZvcm0vbWFjLXdrMS9UZXN0RXhwZWN0YXRpb25zCkBAIC0zOTksNiArMzk5LDkgQEAg
ZmFzdC9pbWFnZXMvbG93LW1lbW9yeS1kZWNvZGUuaHRtbCBbIFNraXAgXQogCiBodHRwL3Rlc3Rz
L3dvcmtlcnMvc2VydmljZSBbIFNraXAgXQogCisjIExpbmsgcHJlY29ubmVjdCBpcyBub3QgZW5h
YmxlZCBvbiBXSzEuCitodHRwL3Rlc3RzL3ByZWxvYWQvbGluay1yZWwtcHJlY29ubmVjdC5odG1s
IFsgRmFpbHVyZSBdCisKIHdlYmtpdC5vcmcvYi8xNzUzNDUgZmFzdC9pbWFnZXMvYW5pbWF0ZWQt
Z2lmLXNjcm9sbGluZy1jcmFzaC5odG1sIFsgUGFzcyBUaW1lb3V0IF0KIAogd2Via2l0Lm9yZy9i
LzE3NTU1NCBbIFNpZXJyYSBdIGZ1bGxzY3JlZW4vZnVsbC1zY3JlZW4taWZyYW1lLWxlZ2FjeS5o
dG1sIFsgUGFzcyBGYWlsdXJlIF0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL21h
Yy13azIvVGVzdEV4cGVjdGF0aW9ucyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy13azIvVGVz
dEV4cGVjdGF0aW9ucwppbmRleCAwN2FiNDY4ZDEzZC4uODE5MmMyNzExNzMgMTAwNjQ0Ci0tLSBh
L0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy13azIvVGVzdEV4cGVjdGF0aW9ucworKysgYi9MYXlv
dXRUZXN0cy9wbGF0Zm9ybS9tYWMtd2syL1Rlc3RFeHBlY3RhdGlvbnMKQEAgLTcyOCw2ICs3Mjgs
OSBAQCB3ZWJraXQub3JnL2IvMTcyODM0IFsgRWxDYXBpdGFuIF0gaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy9JbmRleGVkREIvaWRibwogWyBFbENhcGl0YW4gXSBpbXBvcnRlZC9ibGlu
ay9mYXN0L2JlYWNvbi8gWyBTa2lwIF0KIFsgRWxDYXBpdGFuIF0gaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy9iZWFjb24vIFsgU2tpcCBdCiAKKyMgUmVxdWlyZXMgTkVUV09SS19TRVNT
SU9OIHRvIGJlIGVuYWJsZWQuCitbIEVsQ2FwaXRhbiBdIGh0dHAvdGVzdHMvcHJlbG9hZC9saW5r
LXJlbC1wcmVjb25uZWN0Lmh0bWwgWyBGYWlsdXJlIF0KKwogd2Via2l0Lm9yZy9iLzE3MjIwMSB3
ZWJhdWRpby9zaWxlbnQtYXVkaW8taW50ZXJydXB0ZWQtaW4tYmFja2dyb3VuZC5odG1sIFsgUGFz
cyBUaW1lb3V0IF0KIAogd2Via2l0Lm9yZy9iLzE2Nzc1NyB3b3JrZXJzL2JvbWIuaHRtbCBbIFBh
c3MgVGltZW91dCBdCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL3NwaS9jZi9D
Rk5ldHdvcmtTUEkuaCBiL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvc3BpL2NmL0NGTmV0d29ya1NQ
SS5oCmluZGV4IDNlNTg0M2VhZDViLi42ODFkYmJiM2I4MCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvUEFML3BhbC9zcGkvY2YvQ0ZOZXR3b3JrU1BJLmgKKysrIGIvU291cmNlL1dlYkNvcmUv
UEFML3BhbC9zcGkvY2YvQ0ZOZXR3b3JrU1BJLmgKQEAgLTExMyw2ICsxMTMsMTIgQEAgdHlwZWRl
ZiB2b2lkICheQ0ZDYWNoZWRVUkxSZXNwb25zZUNhbGxCYWNrQmxvY2spKENGQ2FjaGVkVVJMUmVz
cG9uc2VSZWYpOwogLSAoTlNEaWN0aW9uYXJ5ICopX3RpbWluZ0RhdGE7CiBAZW5kCiAKKyNpZiAo
UExBVEZPUk0oTUFDKSAmJiBfX01BQ19PU19YX1ZFUlNJT05fTUlOX1JFUVVJUkVEID49IDEwMTMw
MCkgfHwgKFBMQVRGT1JNKElPUykgJiYgX19JUEhPTkVfT1NfVkVSU0lPTl9NSU5fUkVRVUlSRUQg
Pj0gMTEwMDAwKQorQGludGVyZmFjZSBOU1VSTFNlc3Npb25UYXNrIChSZXNvdXJjZUhpbnRzKQor
QHByb3BlcnR5IChub25hdG9taWMsIGFzc2lnbikgQk9PTCBfcHJlY29ubmVjdDsKK0BlbmQKKyNl
bmRpZgorCiBAaW50ZXJmYWNlIE5TSFRUUENvb2tpZSAoKQogLSAoQ0ZIVFRQQ29va2llUmVmKV9D
RkhUVFBDb29raWU7CiArIChDRkFycmF5UmVmIF9fbnVsbGFibGUpX25zMmNmQ29va2llczooTlNB
cnJheSAqIF9fbnVsbGFibGUpbnNDb29raWVzIENGX1JFVFVSTlNfUkVUQUlORUQ7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0RPTVRva2VuTGlzdC5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9odG1sL0RPTVRva2VuTGlzdC5jcHAKaW5kZXggMjU1NWI2ODQ0NmIuLjdjYWIxYjczNmEwIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0RPTVRva2VuTGlzdC5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvaHRtbC9ET01Ub2tlbkxpc3QuY3BwCkBAIC0zNSw3ICszNSw3IEBACiAKIG5h
bWVzcGFjZSBXZWJDb3JlIHsKIAotRE9NVG9rZW5MaXN0OjpET01Ub2tlbkxpc3QoRWxlbWVudCYg
ZWxlbWVudCwgY29uc3QgUXVhbGlmaWVkTmFtZSYgYXR0cmlidXRlTmFtZSwgV1RGOjpGdW5jdGlv
bjxib29sKFN0cmluZ1ZpZXcpPiYmIGlzU3VwcG9ydGVkVG9rZW4pCitET01Ub2tlbkxpc3Q6OkRP
TVRva2VuTGlzdChFbGVtZW50JiBlbGVtZW50LCBjb25zdCBRdWFsaWZpZWROYW1lJiBhdHRyaWJ1
dGVOYW1lLCBJc1N1cHBvcnRlZFRva2VuRnVuY3Rpb24mJiBpc1N1cHBvcnRlZFRva2VuKQogICAg
IDogbV9lbGVtZW50KGVsZW1lbnQpCiAgICAgLCBtX2F0dHJpYnV0ZU5hbWUoYXR0cmlidXRlTmFt
ZSkKICAgICAsIG1faXNTdXBwb3J0ZWRUb2tlbihXVEZNb3ZlKGlzU3VwcG9ydGVkVG9rZW4pKQpA
QCAtMTkxLDcgKzE5MSw3IEBAIEV4Y2VwdGlvbk9yPGJvb2w+IERPTVRva2VuTGlzdDo6c3VwcG9y
dHMoU3RyaW5nVmlldyB0b2tlbikKIHsKICAgICBpZiAoIW1faXNTdXBwb3J0ZWRUb2tlbikKICAg
ICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7IFR5cGVFcnJvciB9OwotICAgIHJldHVybiBtX2lzU3Vw
cG9ydGVkVG9rZW4odG9rZW4pOworICAgIHJldHVybiBtX2lzU3VwcG9ydGVkVG9rZW4obV9lbGVt
ZW50LmRvY3VtZW50KCksIHRva2VuKTsKIH0KIAogLy8gaHR0cHM6Ly9kb20uc3BlYy53aGF0d2cu
b3JnLyNkb20tZG9tdG9rZW5saXN0LXZhbHVlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9o
dG1sL0RPTVRva2VuTGlzdC5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9ET01Ub2tlbkxpc3QuaApp
bmRleCAyMWZiNDZmNDYxMi4uZDYwZDE3Y2M5MTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvRE9NVG9rZW5MaXN0LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9ET01Ub2tlbkxp
c3QuaApAQCAtMzIsNyArMzIsOCBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiBjbGFzcyBET01Ub2tl
bkxpc3QgewogICAgIFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOwogcHVibGljOgotICAgIERPTVRv
a2VuTGlzdChFbGVtZW50JiwgY29uc3QgUXVhbGlmaWVkTmFtZSYgYXR0cmlidXRlTmFtZSwgV1RG
OjpGdW5jdGlvbjxib29sKFN0cmluZ1ZpZXcpPiYmIGlzU3VwcG9ydGVkVG9rZW4gPSB7IH0pOwor
ICAgIHVzaW5nIElzU3VwcG9ydGVkVG9rZW5GdW5jdGlvbiA9IFdURjo6RnVuY3Rpb248Ym9vbChE
b2N1bWVudCYsIFN0cmluZ1ZpZXcpPjsKKyAgICBET01Ub2tlbkxpc3QoRWxlbWVudCYsIGNvbnN0
IFF1YWxpZmllZE5hbWUmIGF0dHJpYnV0ZU5hbWUsIElzU3VwcG9ydGVkVG9rZW5GdW5jdGlvbiYm
IGlzU3VwcG9ydGVkVG9rZW4gPSB7IH0pOwogCiAgICAgdm9pZCBhc3NvY2lhdGVkQXR0cmlidXRl
VmFsdWVDaGFuZ2VkKGNvbnN0IEF0b21pY1N0cmluZyYpOwogCkBAIC03Myw3ICs3NCw3IEBAIHBy
aXZhdGU6CiAgICAgYm9vbCBtX2luVXBkYXRlQXNzb2NpYXRlZEF0dHJpYnV0ZUZyb21Ub2tlbnMg
eyBmYWxzZSB9OwogICAgIGJvb2wgbV90b2tlbnNOZWVkVXBkYXRpbmcgeyB0cnVlIH07CiAgICAg
VmVjdG9yPEF0b21pY1N0cmluZz4gbV90b2tlbnM7Ci0gICAgV1RGOjpGdW5jdGlvbjxib29sKFN0
cmluZ1ZpZXcpPiBtX2lzU3VwcG9ydGVkVG9rZW47CisgICAgSXNTdXBwb3J0ZWRUb2tlbkZ1bmN0
aW9uIG1faXNTdXBwb3J0ZWRUb2tlbjsKIH07CiAKIGlubGluZSB1bnNpZ25lZCBET01Ub2tlbkxp
c3Q6Omxlbmd0aCgpIGNvbnN0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxB
bmNob3JFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEFuY2hvckVsZW1lbnQu
Y3BwCmluZGV4IGNiMWYxYzlmNTQ2Li40ODgxYzNkOWU4YSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvaHRtbC9IVE1MQW5jaG9yRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRt
bC9IVE1MQW5jaG9yRWxlbWVudC5jcHAKQEAgLTMwNyw3ICszMDcsNyBAQCBib29sIEhUTUxBbmNo
b3JFbGVtZW50OjpoYXNSZWwoUmVsYXRpb24gcmVsYXRpb24pIGNvbnN0CiBET01Ub2tlbkxpc3Qm
IEhUTUxBbmNob3JFbGVtZW50OjpyZWxMaXN0KCkKIHsKICAgICBpZiAoIW1fcmVsTGlzdCkgCi0g
ICAgICAgIG1fcmVsTGlzdCA9IHN0ZDo6bWFrZV91bmlxdWU8RE9NVG9rZW5MaXN0PigqdGhpcywg
SFRNTE5hbWVzOjpyZWxBdHRyLCBbXShTdHJpbmdWaWV3IHRva2VuKSB7CisgICAgICAgIG1fcmVs
TGlzdCA9IHN0ZDo6bWFrZV91bmlxdWU8RE9NVG9rZW5MaXN0PigqdGhpcywgSFRNTE5hbWVzOjpy
ZWxBdHRyLCBbXShEb2N1bWVudCYsIFN0cmluZ1ZpZXcgdG9rZW4pIHsKICAgICAgICAgICAgIHJl
dHVybiBlcXVhbElnbm9yaW5nQVNDSUlDYXNlKHRva2VuLCAibm9yZWZlcnJlciIpIHx8IGVxdWFs
SWdub3JpbmdBU0NJSUNhc2UodG9rZW4sICJub29wZW5lciIpOwogICAgICAgICB9KTsKICAgICBy
ZXR1cm4gKm1fcmVsTGlzdDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTElG
cmFtZUVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MSUZyYW1lRWxlbWVudC5j
cHAKaW5kZXggZDMwMzIyZGMwYzQuLjIyM2UzYjAzMzFhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9odG1sL0hUTUxJRnJhbWVFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1s
L0hUTUxJRnJhbWVFbGVtZW50LmNwcApAQCAtNTEsNyArNTEsNyBAQCBSZWY8SFRNTElGcmFtZUVs
ZW1lbnQ+IEhUTUxJRnJhbWVFbGVtZW50OjpjcmVhdGUoY29uc3QgUXVhbGlmaWVkTmFtZSYgdGFn
TmFtZSwgRAogRE9NVG9rZW5MaXN0JiBIVE1MSUZyYW1lRWxlbWVudDo6c2FuZGJveCgpCiB7CiAg
ICAgaWYgKCFtX3NhbmRib3gpCi0gICAgICAgIG1fc2FuZGJveCA9IHN0ZDo6bWFrZV91bmlxdWU8
RE9NVG9rZW5MaXN0PigqdGhpcywgc2FuZGJveEF0dHIsIFtdKFN0cmluZ1ZpZXcgdG9rZW4pIHsK
KyAgICAgICAgbV9zYW5kYm94ID0gc3RkOjptYWtlX3VuaXF1ZTxET01Ub2tlbkxpc3Q+KCp0aGlz
LCBzYW5kYm94QXR0ciwgW10oRG9jdW1lbnQmLCBTdHJpbmdWaWV3IHRva2VuKSB7CiAgICAgICAg
ICAgICByZXR1cm4gU2VjdXJpdHlDb250ZXh0Ojppc1N1cHBvcnRlZFNhbmRib3hQb2xpY3kodG9r
ZW4pOwogICAgICAgICB9KTsKICAgICByZXR1cm4gKm1fc2FuZGJveDsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvSFRNTExpbmtFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0
bWwvSFRNTExpbmtFbGVtZW50LmNwcAppbmRleCBlMDFiNmUzYjRjOC4uZTdkMGY3Y2M3NDIgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTExpbmtFbGVtZW50LmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9odG1sL0hUTUxMaW5rRWxlbWVudC5jcHAKQEAgLTE1Niw3ICsxNTYsNyBA
QCB2b2lkIEhUTUxMaW5rRWxlbWVudDo6c2V0RGlzYWJsZWRTdGF0ZShib29sIGRpc2FibGVkKQog
dm9pZCBIVE1MTGlua0VsZW1lbnQ6OnBhcnNlQXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUm
IG5hbWUsIGNvbnN0IEF0b21pY1N0cmluZyYgdmFsdWUpCiB7CiAgICAgaWYgKG5hbWUgPT0gcmVs
QXR0cikgewotICAgICAgICBtX3JlbEF0dHJpYnV0ZSA9IExpbmtSZWxBdHRyaWJ1dGUodmFsdWUp
OworICAgICAgICBtX3JlbEF0dHJpYnV0ZSA9IExpbmtSZWxBdHRyaWJ1dGUoZG9jdW1lbnQoKSwg
dmFsdWUpOwogICAgICAgICBpZiAobV9yZWxMaXN0KQogICAgICAgICAgICAgbV9yZWxMaXN0LT5h
c3NvY2lhdGVkQXR0cmlidXRlVmFsdWVDaGFuZ2VkKHZhbHVlKTsKICAgICAgICAgcHJvY2Vzcygp
OwpAQCAtNDk4LDggKzQ5OCw4IEBAIHZvaWQgSFRNTExpbmtFbGVtZW50OjpkaXNwYXRjaFBlbmRp
bmdFdmVudChMaW5rRXZlbnRTZW5kZXIqIGV2ZW50U2VuZGVyKQogRE9NVG9rZW5MaXN0JiBIVE1M
TGlua0VsZW1lbnQ6OnJlbExpc3QoKQogewogICAgIGlmICghbV9yZWxMaXN0KSAKLSAgICAgICAg
bV9yZWxMaXN0ID0gc3RkOjptYWtlX3VuaXF1ZTxET01Ub2tlbkxpc3Q+KCp0aGlzLCBIVE1MTmFt
ZXM6OnJlbEF0dHIsIFtdKFN0cmluZ1ZpZXcgdG9rZW4pIHsKLSAgICAgICAgICAgIHJldHVybiBM
aW5rUmVsQXR0cmlidXRlOjppc1N1cHBvcnRlZCh0b2tlbik7CisgICAgICAgIG1fcmVsTGlzdCA9
IHN0ZDo6bWFrZV91bmlxdWU8RE9NVG9rZW5MaXN0PigqdGhpcywgSFRNTE5hbWVzOjpyZWxBdHRy
LCBbXShEb2N1bWVudCYgZG9jdW1lbnQsIFN0cmluZ1ZpZXcgdG9rZW4pIHsKKyAgICAgICAgICAg
IHJldHVybiBMaW5rUmVsQXR0cmlidXRlOjppc1N1cHBvcnRlZChkb2N1bWVudCwgdG9rZW4pOwog
ICAgICAgICB9KTsKICAgICByZXR1cm4gKm1fcmVsTGlzdDsKIH0KZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvTGlua1JlbEF0dHJpYnV0ZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1s
L0xpbmtSZWxBdHRyaWJ1dGUuY3BwCmluZGV4IDg2NmFmZDhlNWViLi41NzJiZGIzNGM1OCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9MaW5rUmVsQXR0cmlidXRlLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9odG1sL0xpbmtSZWxBdHRyaWJ1dGUuY3BwCkBAIC0zMiw4ICszMiwxMCBA
QAogI2luY2x1ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUgIkxpbmtSZWxBdHRyaWJ1dGUuaCIKIAor
I2luY2x1ZGUgIkRvY3VtZW50LmgiCiAjaW5jbHVkZSAiTGlua0ljb25UeXBlLmgiCiAjaW5jbHVk
ZSAiUnVudGltZUVuYWJsZWRGZWF0dXJlcy5oIgorI2luY2x1ZGUgIlNldHRpbmdzLmgiCiAjaW5j
bHVkZSA8d3RmL3RleHQvU3RyaW5nVmlldy5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0cmlu
Zy5oPgogCkBAIC00NCw3ICs0Niw3IEBAIExpbmtSZWxBdHRyaWJ1dGU6OkxpbmtSZWxBdHRyaWJ1
dGUoKQogfQogCiAvLyBLZWVwIExpbmtSZWxBdHRyaWJ1dGU6OmlzU3VwcG9ydGVkKCkgaW4gc3lu
YyB3aGVuIHVwZGF0aW5nIHRoaXMgY29uc3RydWN0b3IuCi1MaW5rUmVsQXR0cmlidXRlOjpMaW5r
UmVsQXR0cmlidXRlKGNvbnN0IFN0cmluZyYgcmVsKQorTGlua1JlbEF0dHJpYnV0ZTo6TGlua1Jl
bEF0dHJpYnV0ZShEb2N1bWVudCYgZG9jdW1lbnQsIGNvbnN0IFN0cmluZyYgcmVsKQogewogICAg
IGlmIChlcXVhbExldHRlcnNJZ25vcmluZ0FTQ0lJQ2FzZShyZWwsICJzdHlsZXNoZWV0IikpCiAg
ICAgICAgIGlzU3R5bGVTaGVldCA9IHRydWU7CkBAIC01Niw2ICs1OCw4IEBAIExpbmtSZWxBdHRy
aWJ1dGU6OkxpbmtSZWxBdHRyaWJ1dGUoY29uc3QgU3RyaW5nJiByZWwpCiAgICAgICAgIGljb25U
eXBlID0gTGlua0ljb25UeXBlOjpUb3VjaFByZWNvbXBvc2VkSWNvbjsKICAgICBlbHNlIGlmIChl
cXVhbExldHRlcnNJZ25vcmluZ0FTQ0lJQ2FzZShyZWwsICJkbnMtcHJlZmV0Y2giKSkKICAgICAg
ICAgaXNETlNQcmVmZXRjaCA9IHRydWU7CisgICAgZWxzZSBpZiAoZG9jdW1lbnQuc2V0dGluZ3Mo
KS5saW5rUHJlY29ubmVjdEVuYWJsZWQoKSAmJiBlcXVhbExldHRlcnNJZ25vcmluZ0FTQ0lJQ2Fz
ZShyZWwsICJwcmVjb25uZWN0IikpCisgICAgICAgIGlzTGlua1ByZWNvbm5lY3QgPSB0cnVlOwog
ICAgIGVsc2UgaWYgKFJ1bnRpbWVFbmFibGVkRmVhdHVyZXM6OnNoYXJlZEZlYXR1cmVzKCkubGlu
a1ByZWxvYWRFbmFibGVkKCkgJiYgZXF1YWxMZXR0ZXJzSWdub3JpbmdBU0NJSUNhc2UocmVsLCAi
cHJlbG9hZCIpKQogICAgICAgICBpc0xpbmtQcmVsb2FkID0gdHJ1ZTsKICAgICBlbHNlIGlmIChl
cXVhbExldHRlcnNJZ25vcmluZ0FTQ0lJQ2FzZShyZWwsICJhbHRlcm5hdGUgc3R5bGVzaGVldCIp
IHx8IGVxdWFsTGV0dGVyc0lnbm9yaW5nQVNDSUlDYXNlKHJlbCwgInN0eWxlc2hlZXQgYWx0ZXJu
YXRlIikpIHsKQEAgLTg3LDcgKzkxLDcgQEAgTGlua1JlbEF0dHJpYnV0ZTo6TGlua1JlbEF0dHJp
YnV0ZShjb25zdCBTdHJpbmcmIHJlbCkKIH0KIAogLy8gaHR0cHM6Ly9odG1sLnNwZWMud2hhdHdn
Lm9yZy8jbGlua1R5cGVzCi1ib29sIExpbmtSZWxBdHRyaWJ1dGU6OmlzU3VwcG9ydGVkKFN0cmlu
Z1ZpZXcgYXR0cmlidXRlKQorYm9vbCBMaW5rUmVsQXR0cmlidXRlOjppc1N1cHBvcnRlZChEb2N1
bWVudCYgZG9jdW1lbnQsIFN0cmluZ1ZpZXcgYXR0cmlidXRlKQogewogICAgIHN0YXRpYyBjb25z
dCBjaGFyKiBjb25zdCBzdXBwb3J0ZWRBdHRyaWJ1dGVzW10gPSB7CiAgICAgICAgICJhbHRlcm5h
dGUiLCAiZG5zLXByZWZldGNoIiwgImljb24iLCAic3R5bGVzaGVldCIsICJhcHBsZS10b3VjaC1p
Y29uIiwgImFwcGxlLXRvdWNoLWljb24tcHJlY29tcG9zZWQiLApAQCAtMTAxLDYgKzEwNSw5IEBA
IGJvb2wgTGlua1JlbEF0dHJpYnV0ZTo6aXNTdXBwb3J0ZWQoU3RyaW5nVmlldyBhdHRyaWJ1dGUp
CiAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICB9CiAKKyAgICBpZiAoZG9jdW1lbnQuc2V0
dGluZ3MoKS5saW5rUHJlY29ubmVjdEVuYWJsZWQoKSAmJiBlcXVhbElnbm9yaW5nQVNDSUlDYXNl
KGF0dHJpYnV0ZSwgInByZWNvbm5lY3QiKSkKKyAgICAgICAgcmV0dXJuIHRydWU7CisKICAgICBp
ZiAoUnVudGltZUVuYWJsZWRGZWF0dXJlczo6c2hhcmVkRmVhdHVyZXMoKS5saW5rUHJlbG9hZEVu
YWJsZWQoKSAmJiBlcXVhbElnbm9yaW5nQVNDSUlDYXNlKGF0dHJpYnV0ZSwgInByZWxvYWQiKSkK
ICAgICAgICAgcmV0dXJuIHRydWU7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwv
TGlua1JlbEF0dHJpYnV0ZS5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9MaW5rUmVsQXR0cmlidXRl
LmgKaW5kZXggOGUyNjY5MjdlZGQuLmYxMmU5ODY2MzdjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9odG1sL0xpbmtSZWxBdHRyaWJ1dGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0xp
bmtSZWxBdHRyaWJ1dGUuaApAQCAtMzcsNiArMzcsNyBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7
CiAKK2NsYXNzIERvY3VtZW50OwogZW51bSBjbGFzcyBMaW5rSWNvblR5cGU7CiAKIHN0cnVjdCBM
aW5rUmVsQXR0cmlidXRlIHsKQEAgLTQ1LDE1ICs0NiwxNiBAQCBzdHJ1Y3QgTGlua1JlbEF0dHJp
YnV0ZSB7CiAgICAgYm9vbCBpc0FsdGVybmF0ZSB7IGZhbHNlIH07CiAgICAgYm9vbCBpc0ROU1By
ZWZldGNoIHsgZmFsc2UgfTsKICAgICBib29sIGlzTGlua1ByZWxvYWQgeyBmYWxzZSB9OworICAg
IGJvb2wgaXNMaW5rUHJlY29ubmVjdCB7IGZhbHNlIH07CiAjaWYgRU5BQkxFKExJTktfUFJFRkVU
Q0gpCiAgICAgYm9vbCBpc0xpbmtQcmVmZXRjaCB7IGZhbHNlIH07CiAgICAgYm9vbCBpc0xpbmtT
dWJyZXNvdXJjZSB7IGZhbHNlIH07CiAjZW5kaWYKIAogICAgIExpbmtSZWxBdHRyaWJ1dGUoKTsK
LSAgICBleHBsaWNpdCBMaW5rUmVsQXR0cmlidXRlKGNvbnN0IFN0cmluZyYpOworICAgIExpbmtS
ZWxBdHRyaWJ1dGUoRG9jdW1lbnQmLCBjb25zdCBTdHJpbmcmKTsKIAotICAgIHN0YXRpYyBib29s
IGlzU3VwcG9ydGVkKFN0cmluZ1ZpZXcpOworICAgIHN0YXRpYyBib29sIGlzU3VwcG9ydGVkKERv
Y3VtZW50JiwgU3RyaW5nVmlldyk7CiB9OwogCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9odG1sL3BhcnNlci9IVE1MUHJlbG9hZFNjYW5uZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRt
bC9wYXJzZXIvSFRNTFByZWxvYWRTY2FubmVyLmNwcAppbmRleCAwNjAxZGMxMWRjYy4uMDhkMjhj
ZGQ0MjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvcGFyc2VyL0hUTUxQcmVsb2Fk
U2Nhbm5lci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9wYXJzZXIvSFRNTFByZWxvYWRT
Y2FubmVyLmNwcApAQCAtMjMyLDcgKzIzMiw3IEBAIHByaXZhdGU6CiAgICAgICAgICAgICBpZiAo
bWF0Y2goYXR0cmlidXRlTmFtZSwgaHJlZkF0dHIpKQogICAgICAgICAgICAgICAgIHNldFVybFRv
TG9hZChhdHRyaWJ1dGVWYWx1ZSk7CiAgICAgICAgICAgICBlbHNlIGlmIChtYXRjaChhdHRyaWJ1
dGVOYW1lLCByZWxBdHRyKSkgewotICAgICAgICAgICAgICAgIExpbmtSZWxBdHRyaWJ1dGUgcGFy
c2VkQXR0cmlidXRlIHsgYXR0cmlidXRlVmFsdWUgfTsKKyAgICAgICAgICAgICAgICBMaW5rUmVs
QXR0cmlidXRlIHBhcnNlZEF0dHJpYnV0ZSB7IGRvY3VtZW50LCBhdHRyaWJ1dGVWYWx1ZSB9Owog
ICAgICAgICAgICAgICAgIG1fbGlua0lzU3R5bGVTaGVldCA9IHJlbEF0dHJpYnV0ZUlzU3R5bGVT
aGVldChwYXJzZWRBdHRyaWJ1dGUpOwogICAgICAgICAgICAgICAgIG1fbGlua0lzUHJlbG9hZCA9
IHBhcnNlZEF0dHJpYnV0ZS5pc0xpbmtQcmVsb2FkOwogICAgICAgICAgICAgfSBlbHNlIGlmICht
YXRjaChhdHRyaWJ1dGVOYW1lLCBtZWRpYUF0dHIpKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvbG9hZGVyL0xpbmtMb2FkZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0xpbmtMb2Fk
ZXIuY3BwCmluZGV4IDJiMTYxMzI2NDMwLi4zMzlmMjE3Mzg2YyAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvbG9hZGVyL0xpbmtMb2FkZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRl
ci9MaW5rTG9hZGVyLmNwcApAQCAtNDcsOCArNDcsMTEgQEAKICNpbmNsdWRlICJMaW5rSGVhZGVy
LmgiCiAjaW5jbHVkZSAiTGlua1ByZWxvYWRSZXNvdXJjZUNsaWVudHMuaCIKICNpbmNsdWRlICJM
aW5rUmVsQXR0cmlidXRlLmgiCisjaW5jbHVkZSAiTG9hZGVyU3RyYXRlZ3kuaCIKICNpbmNsdWRl
ICJNSU1FVHlwZVJlZ2lzdHJ5LmgiCiAjaW5jbHVkZSAiTWVkaWFRdWVyeUV2YWx1YXRvci5oIgor
I2luY2x1ZGUgIlBsYXRmb3JtU3RyYXRlZ2llcy5oIgorI2luY2x1ZGUgIlJlc291cmNlRXJyb3Iu
aCIKICNpbmNsdWRlICJSdW50aW1lRW5hYmxlZEZlYXR1cmVzLmgiCiAjaW5jbHVkZSAiU2V0dGlu
Z3MuaCIKICNpbmNsdWRlICJTdHlsZVJlc29sdmVyLmgiCkBAIC0xMDIsNyArMTA1LDcgQEAgdm9p
ZCBMaW5rTG9hZGVyOjpsb2FkTGlua3NGcm9tSGVhZGVyKGNvbnN0IFN0cmluZyYgaGVhZGVyVmFs
dWUsIGNvbnN0IFVSTCYgYmFzZVUKICAgICAgICAgICAgICAgICBjb250aW51ZTsKICAgICAgICAg
fQogCi0gICAgICAgIExpbmtSZWxBdHRyaWJ1dGUgcmVsQXR0cmlidXRlKGhlYWRlci5yZWwoKSk7
CisgICAgICAgIExpbmtSZWxBdHRyaWJ1dGUgcmVsQXR0cmlidXRlKGRvY3VtZW50LCBoZWFkZXIu
cmVsKCkpOwogICAgICAgICBVUkwgdXJsKGJhc2VVUkwsIGhlYWRlci51cmwoKSk7CiAgICAgICAg
IC8vIFNhbml0eSBjaGVjayB0byBhdm9pZCByZS1lbnRyYW5jeSBoZXJlLgogICAgICAgICBpZiAo
ZXF1YWxJZ25vcmluZ0ZyYWdtZW50SWRlbnRpZmllcih1cmwsIGJhc2VVUkwpKQpAQCAtMjUwLDYg
KzI1MywyMiBAQCBib29sIExpbmtMb2FkZXI6OmxvYWRMaW5rKGNvbnN0IExpbmtSZWxBdHRyaWJ1
dGUmIHJlbEF0dHJpYnV0ZSwgY29uc3QgVVJMJiBocmVmLAogICAgICAgICAgICAgZG9jdW1lbnQu
ZnJhbWUoKS0+bG9hZGVyKCkuY2xpZW50KCkucHJlZmV0Y2hETlMoaHJlZi5ob3N0KCkpOwogICAg
IH0KIAorICAgIGlmIChyZWxBdHRyaWJ1dGUuaXNMaW5rUHJlY29ubmVjdCAmJiBocmVmLmlzVmFs
aWQoKSAmJiBocmVmLnByb3RvY29sSXNJbkhUVFBGYW1pbHkoKSkgeworICAgICAgICBBU1NFUlQo
ZG9jdW1lbnQuc2V0dGluZ3MoKS5saW5rUHJlY29ubmVjdEVuYWJsZWQoKSk7CisgICAgICAgIFN0
b3JlZENyZWRlbnRpYWxzUG9saWN5IHN0b3JhZ2VDcmVkZW50aWFsc1BvbGljeSA9IFN0b3JlZENy
ZWRlbnRpYWxzUG9saWN5OjpVc2U7CisgICAgICAgIGlmIChlcXVhbElnbm9yaW5nQVNDSUlDYXNl
KGNyb3NzT3JpZ2luLCAiYW5vbnltb3VzIikgJiYgZG9jdW1lbnQuc2VjdXJpdHlPcmlnaW4oKS5j
YW5BY2Nlc3MoU2VjdXJpdHlPcmlnaW46OmNyZWF0ZShocmVmKSkpCisgICAgICAgICAgICBzdG9y
YWdlQ3JlZGVudGlhbHNQb2xpY3kgPSBTdG9yZWRDcmVkZW50aWFsc1BvbGljeTo6RG9Ob3RVc2U7
CisgICAgICAgIHBsYXRmb3JtU3RyYXRlZ2llcygpLT5sb2FkZXJTdHJhdGVneSgpLT5wcmVjb25u
ZWN0VG8oaHJlZiwgc3RvcmFnZUNyZWRlbnRpYWxzUG9saWN5LCBbd2Vha0RvY3VtZW50ID0gZG9j
dW1lbnQuY3JlYXRlV2Vha1B0cigpLCBocmVmXShSZXNvdXJjZUVycm9yIGVycm9yKSB7CisgICAg
ICAgICAgICBpZiAoIXdlYWtEb2N1bWVudCkKKyAgICAgICAgICAgICAgICByZXR1cm47CisKKyAg
ICAgICAgICAgIGlmICghZXJyb3IuaXNOdWxsKCkpCisgICAgICAgICAgICAgICAgd2Vha0RvY3Vt
ZW50LT5hZGRDb25zb2xlTWVzc2FnZShNZXNzYWdlU291cmNlOjpOZXR3b3JrLCBNZXNzYWdlTGV2
ZWw6OkVycm9yLCBtYWtlU3RyaW5nKEFTQ0lJTGl0ZXJhbCgiRmFpbGVkIHRvIHByZWNvbm5lY3Qg
dG8gIiksIGhyZWYuc3RyaW5nKCksIEFTQ0lJTGl0ZXJhbCgiLiBFcnJvcjogIiksIGVycm9yLmxv
Y2FsaXplZERlc2NyaXB0aW9uKCkpKTsKKyAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAg
ICB3ZWFrRG9jdW1lbnQtPmFkZENvbnNvbGVNZXNzYWdlKE1lc3NhZ2VTb3VyY2U6Ok5ldHdvcmss
IE1lc3NhZ2VMZXZlbDo6SW5mbywgbWFrZVN0cmluZyhBU0NJSUxpdGVyYWwoIlN1Y2Nlc3NmdWx5
IHByZWNvbm5lY3RlZCB0byAiKSwgaHJlZi5zdHJpbmcoKSkpOworICAgICAgICB9KTsKKyAgICB9
CisKICAgICBpZiAobV9jbGllbnQuc2hvdWxkTG9hZExpbmsoKSkgewogICAgICAgICBhdXRvIHJl
c291cmNlQ2xpZW50ID0gcHJlbG9hZElmTmVlZGVkKHJlbEF0dHJpYnV0ZSwgaHJlZiwgZG9jdW1l
bnQsIGFzLCBtZWRpYSwgbWltZVR5cGUsIGNyb3NzT3JpZ2luLCB0aGlzKTsKICAgICAgICAgaWYg
KHJlc291cmNlQ2xpZW50KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL0xvYWRl
clN0cmF0ZWd5LmggYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvTG9hZGVyU3RyYXRlZ3kuaAppbmRl
eCA1M2YzYmZiMjY2Ni4uZmNmNTRkMmIwZjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xv
YWRlci9Mb2FkZXJTdHJhdGVneS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9Mb2FkZXJT
dHJhdGVneS5oCkBAIC02Nyw2ICs2Nyw5IEBAIHB1YmxpYzoKICAgICB1c2luZyBQaW5nTG9hZENv
bXBsZXRpb25IYW5kbGVyID0gV1RGOjpGdW5jdGlvbjx2b2lkKGNvbnN0IFJlc291cmNlRXJyb3Im
KT47CiAgICAgdmlydHVhbCB2b2lkIHN0YXJ0UGluZ0xvYWQoRnJhbWUmLCBSZXNvdXJjZVJlcXVl
c3QmLCBjb25zdCBIVFRQSGVhZGVyTWFwJiBvcmlnaW5hbFJlcXVlc3RIZWFkZXJzLCBjb25zdCBG
ZXRjaE9wdGlvbnMmLCBQaW5nTG9hZENvbXBsZXRpb25IYW5kbGVyJiYgPSB7IH0pID0gMDsKIAor
ICAgIHVzaW5nIFByZWNvbm5lY3RDb21wbGV0aW9uSGFuZGxlciA9IFdURjo6RnVuY3Rpb248dm9p
ZChjb25zdCBSZXNvdXJjZUVycm9yJik+OworICAgIHZpcnR1YWwgdm9pZCBwcmVjb25uZWN0VG8o
Y29uc3QgVVJMJiwgU3RvcmVkQ3JlZGVudGlhbHNQb2xpY3ksIFByZWNvbm5lY3RDb21wbGV0aW9u
SGFuZGxlciYmKSA9IDA7CisKICAgICB2aXJ0dWFsIHZvaWQgc3RvcmVEZXJpdmVkRGF0YVRvQ2Fj
aGUoY29uc3QgU0hBMTo6RGlnZXN0JiBib2R5S2V5LCBjb25zdCBTdHJpbmcmIHR5cGUsIGNvbnN0
IFN0cmluZyYgcGFydGl0aW9uLCBXZWJDb3JlOjpTaGFyZWRCdWZmZXImKSA9IDA7CiAKICAgICB2
aXJ0dWFsIHZvaWQgc2V0Q2FwdHVyZUV4dHJhTmV0d29ya0xvYWRNZXRyaWNzRW5hYmxlZChib29s
KSA9IDA7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1NldHRpbmdzLmluIGIvU291
cmNlL1dlYkNvcmUvcGFnZS9TZXR0aW5ncy5pbgppbmRleCA5Mjc3YzBhN2NlNS4uZDgxNTI2YWFj
YzEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvU2V0dGluZ3MuaW4KKysrIGIvU291
cmNlL1dlYkNvcmUvcGFnZS9TZXR0aW5ncy5pbgpAQCAtMjkxLDYgKzI5MSw4IEBAIGxhbmdBdHRy
aWJ1dGVBd2FyZUZvcm1Db250cm9sVUlFbmFibGVkIGluaXRpYWw9ZmFsc2UKIAogc3VicmVzb3Vy
Y2VJbnRlZ3JpdHlFbmFibGVkIGluaXRpYWw9dHJ1ZQogCitsaW5rUHJlY29ubmVjdEVuYWJsZWQg
aW5pdGlhbD1mYWxzZQorCiBiZWFjb25BUElFbmFibGVkIGluaXRpYWw9ZmFsc2UKIAogY29uc3Rh
bnRQcm9wZXJ0aWVzRW5hYmxlZCBpbml0aWFsPWZhbHNlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9uZXR3b3JrL1N0b3JlZENyZWRlbnRpYWxzUG9saWN5LmggYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL1N0b3JlZENyZWRlbnRpYWxzUG9saWN5LmgKaW5kZXgg
N2UyYmVjN2M2OTMuLjM3MWVlMzM0NjdlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9uZXR3b3JrL1N0b3JlZENyZWRlbnRpYWxzUG9saWN5LmgKKysrIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vbmV0d29yay9TdG9yZWRDcmVkZW50aWFsc1BvbGljeS5oCkBAIC0yNyw3ICsy
Nyw3IEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotZW51bSBTdG9yZWRDcmVkZW50aWFsc1Bv
bGljeSB7CitlbnVtIGNsYXNzIFN0b3JlZENyZWRlbnRpYWxzUG9saWN5IHsKICAgICBEb05vdFVz
ZSwKICAgICBVc2UsCiB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vz
cy9OZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5jcHAgYi9Tb3VyY2UvV2ViS2l0L05ldHdv
cmtQcm9jZXNzL05ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmNwcAppbmRleCA3MDNkNTkx
YzI0Yi4uZGRjNTkxMDYxMGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nl
c3MvTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQv
TmV0d29ya1Byb2Nlc3MvTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuY3BwCkBAIC00Myw2
ICs0Myw3IEBACiAjaW5jbHVkZSAiTmV0d29ya1Jlc291cmNlTG9hZGVyTWVzc2FnZXMuaCIKICNp
bmNsdWRlICJOZXR3b3JrU29ja2V0U3RyZWFtLmgiCiAjaW5jbHVkZSAiTmV0d29ya1NvY2tldFN0
cmVhbU1lc3NhZ2VzLmgiCisjaW5jbHVkZSAiUHJlY29ubmVjdFRhc2suaCIKICNpbmNsdWRlICJS
ZW1vdGVOZXR3b3JraW5nQ29udGV4dC5oIgogI2luY2x1ZGUgIlNlc3Npb25UcmFja2VyLmgiCiAj
aW5jbHVkZSAiV2ViQ29yZUFyZ3VtZW50Q29kZXJzLmgiCkBAIC0yODcsNiArMjg4LDI4IEBAIHZv
aWQgTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6OnByZWZldGNoRE5TKGNvbnN0IFN0cmlu
ZyYgaG9zdG5hbWUpCiAgICAgTmV0d29ya1Byb2Nlc3M6OnNpbmdsZXRvbigpLnByZWZldGNoRE5T
KGhvc3RuYW1lKTsKIH0KIAordm9pZCBOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzczo6cHJl
Y29ubmVjdFRvKHVpbnQ2NF90IHByZWNvbm5lY3Rpb25JZGVudGlmaWVyLCBjb25zdCBVUkwmIHVy
bCwgV2ViQ29yZTo6U3RvcmVkQ3JlZGVudGlhbHNQb2xpY3kgc3RvcmVkQ3JlZGVudGlhbHNQb2xp
Y3kpCit7CisjaWYgRU5BQkxFKFNFUlZFUl9QUkVDT05ORUNUKQorICAgIG5ldyBQcmVjb25uZWN0
VGFzayh1cmwsIHN0b3JlZENyZWRlbnRpYWxzUG9saWN5LCBbdGhpcywgcHJvdGVjdGVkVGhpcyA9
IG1ha2VSZWYoKnRoaXMpLCBpZGVudGlmaWVyID0gcHJlY29ubmVjdGlvbklkZW50aWZpZXJdIChj
b25zdCBSZXNvdXJjZUVycm9yJiBlcnJvcikgeworICAgICAgICBkaWRGaW5pc2hQcmVjb25uZWN0
aW9uKGlkZW50aWZpZXIsIGVycm9yKTsKKyAgICB9KTsKKyNlbHNlCisgICAgVU5VU0VEX1BBUkFN
KHByZWNvbm5lY3Rpb25JZGVudGlmaWVyKTsKKyAgICBVTlVTRURfUEFSQU0odXJsKTsKKyAgICBV
TlVTRURfUEFSQU0oc3RvcmVkQ3JlZGVudGlhbHNQb2xpY3kpOworICAgIEFTU0VSVF9OT1RfUkVB
Q0hFRCgpOworI2VuZGlmCit9CisKK3ZvaWQgTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6
OmRpZEZpbmlzaFByZWNvbm5lY3Rpb24odWludDY0X3QgcHJlY29ubmVjdGlvbklkZW50aWZpZXIs
IGNvbnN0IFJlc291cmNlRXJyb3ImIGVycm9yKQoreworICAgIGlmICghbV9jb25uZWN0aW9uLT5p
c1ZhbGlkKCkpCisgICAgICAgIHJldHVybjsKKworICAgIG1fY29ubmVjdGlvbi0+c2VuZChNZXNz
YWdlczo6TmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uOjpEaWRGaW5pc2hQcmVjb25uZWN0aW9uKHBy
ZWNvbm5lY3Rpb25JZGVudGlmaWVyLCBlcnJvciksIDApOworfQorCiBzdGF0aWMgTmV0d29ya1N0
b3JhZ2VTZXNzaW9uJiBzdG9yYWdlU2Vzc2lvbihQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQpCiB7
CiAgICAgQVNTRVJUKHNlc3Npb25JRC5pc1ZhbGlkKCkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5oIGIvU291
cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5o
CmluZGV4IGNkMjgwNDJjZmZiLi4zODFkNjgxZDRiNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5oCisrKyBiL1Nv
dXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3Mu
aApAQCAtNzYsNiArNzYsOCBAQCBwdWJsaWM6CiBwcml2YXRlOgogICAgIE5ldHdvcmtDb25uZWN0
aW9uVG9XZWJQcm9jZXNzKElQQzo6Q29ubmVjdGlvbjo6SWRlbnRpZmllcik7CiAKKyAgICB2b2lk
IGRpZEZpbmlzaFByZWNvbm5lY3Rpb24odWludDY0X3QgcHJlY29ubmVjdGlvbklkZW50aWZpZXIs
IGNvbnN0IFdlYkNvcmU6OlJlc291cmNlRXJyb3ImKTsKKwogICAgIC8vIElQQzo6Q29ubmVjdGlv
bjo6Q2xpZW50CiAgICAgdm9pZCBkaWRSZWNlaXZlTWVzc2FnZShJUEM6OkNvbm5lY3Rpb24mLCBJ
UEM6OkRlY29kZXImKSBvdmVycmlkZTsKICAgICB2b2lkIGRpZFJlY2VpdmVTeW5jTWVzc2FnZShJ
UEM6OkNvbm5lY3Rpb24mLCBJUEM6OkRlY29kZXImLCBzdGQ6OnVuaXF1ZV9wdHI8SVBDOjpFbmNv
ZGVyPiYpIG92ZXJyaWRlOwpAQCAtOTAsNiArOTIsNyBAQCBwcml2YXRlOgogICAgIHZvaWQgcGVy
Zm9ybVN5bmNocm9ub3VzTG9hZChjb25zdCBOZXR3b3JrUmVzb3VyY2VMb2FkUGFyYW1ldGVycyYs
IFJlZjxNZXNzYWdlczo6TmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6OlBlcmZvcm1TeW5j
aHJvbm91c0xvYWQ6OkRlbGF5ZWRSZXBseT4mJik7CiAgICAgdm9pZCBsb2FkUGluZyhOZXR3b3Jr
UmVzb3VyY2VMb2FkUGFyYW1ldGVycyYmLCBXZWJDb3JlOjpIVFRQSGVhZGVyTWFwJiYgb3JpZ2lu
YWxSZXF1ZXN0SGVhZGVycyk7CiAgICAgdm9pZCBwcmVmZXRjaEROUyhjb25zdCBTdHJpbmcmKTsK
KyAgICB2b2lkIHByZWNvbm5lY3RUbyh1aW50NjRfdCBwcmVjb25uZWN0aW9uSWRlbnRpZmllciwg
Y29uc3QgV2ViQ29yZTo6VVJMJiwgV2ViQ29yZTo6U3RvcmVkQ3JlZGVudGlhbHNQb2xpY3kpOwog
CiAgICAgdm9pZCByZW1vdmVMb2FkSWRlbnRpZmllcihSZXNvdXJjZUxvYWRJZGVudGlmaWVyKTsK
ICAgICB2b2lkIHNldERlZmVyc0xvYWRpbmcoUmVzb3VyY2VMb2FkSWRlbnRpZmllciwgYm9vbCk7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtDb25uZWN0
aW9uVG9XZWJQcm9jZXNzLm1lc3NhZ2VzLmluIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vz
cy9OZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5tZXNzYWdlcy5pbgppbmRleCBhYmYwZmNj
YTAwMi4uNjEzZWM0YTk2YzMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nl
c3MvTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MubWVzc2FnZXMuaW4KKysrIGIvU291cmNl
L1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5tZXNz
YWdlcy5pbgpAQCAtMjgsNiArMjgsNyBAQCBtZXNzYWdlcyAtPiBOZXR3b3JrQ29ubmVjdGlvblRv
V2ViUHJvY2VzcyBMZWdhY3lSZWNlaXZlciB7CiAgICAgUmVtb3ZlTG9hZElkZW50aWZpZXIodWlu
dDY0X3QgcmVzb3VyY2VMb2FkSWRlbnRpZmllcikKICAgICBTZXREZWZlcnNMb2FkaW5nKHVpbnQ2
NF90IHJlc291cmNlTG9hZElkZW50aWZpZXIsIGJvb2wgZGVmZXJzKQogICAgIFByZWZldGNoRE5T
KFN0cmluZyBob3N0bmFtZSkKKyAgICBQcmVjb25uZWN0VG8odWludDY0X3QgcHJlY29ubmVjdGlv
bklkZW50aWZpZXIsIFdlYkNvcmU6OlVSTCB1cmwsIGVudW0gV2ViQ29yZTo6U3RvcmVkQ3JlZGVu
dGlhbHNQb2xpY3kgc3RvcmVkQ3JlZGVudGlhbHNQb2xpY3kpOwogCiAgICAgU3RhcnREb3dubG9h
ZChQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIFdlYktpdDo6RG93bmxvYWRJRCBkb3dubG9hZElE
LCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QgcmVxdWVzdCwgU3RyaW5nIHN1Z2dlc3RlZE5hbWUp
CiAgICAgQ29udmVydE1haW5SZXNvdXJjZUxvYWRUb0Rvd25sb2FkKFBBTDo6U2Vzc2lvbklEIHNl
c3Npb25JRCwgdWludDY0X3QgbWFpblJlc291cmNlTG9hZElkZW50aWZpZXIsIFdlYktpdDo6RG93
bmxvYWRJRCBkb3dubG9hZElELCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QgcmVxdWVzdCwgV2Vi
Q29yZTo6UmVzb3VyY2VSZXNwb25zZSByZXNwb25zZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0RhdGFUYXNrLmNwcCBiL1NvdXJjZS9XZWJLaXQvTmV0
d29ya1Byb2Nlc3MvTmV0d29ya0RhdGFUYXNrLmNwcAppbmRleCBjOTNmOGZlYzlmYS4uMmM5ZGZk
OGYzNjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0Rh
dGFUYXNrLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtEYXRh
VGFzay5jcHAKQEAgLTUzLDcgKzUzLDcgQEAgUmVmPE5ldHdvcmtEYXRhVGFzaz4gTmV0d29ya0Rh
dGFUYXNrOjpjcmVhdGUoTmV0d29ya1Nlc3Npb24mIHNlc3Npb24sIE5ldHdvcmtEYXQKICAgICAg
ICAgcmV0dXJuIE5ldHdvcmtEYXRhVGFza0Jsb2I6OmNyZWF0ZShzZXNzaW9uLCBjbGllbnQsIHBh
cmFtZXRlcnMucmVxdWVzdCwgcGFyYW1ldGVycy5jb250ZW50U25pZmZpbmdQb2xpY3ksIHBhcmFt
ZXRlcnMuYmxvYkZpbGVSZWZlcmVuY2VzKTsKIAogI2lmIFBMQVRGT1JNKENPQ09BKQotICAgIHJl
dHVybiBOZXR3b3JrRGF0YVRhc2tDb2NvYTo6Y3JlYXRlKHNlc3Npb24sIGNsaWVudCwgcGFyYW1l
dGVycy5yZXF1ZXN0LCBwYXJhbWV0ZXJzLnN0b3JlZENyZWRlbnRpYWxzUG9saWN5LCBwYXJhbWV0
ZXJzLmNvbnRlbnRTbmlmZmluZ1BvbGljeSwgcGFyYW1ldGVycy5zaG91bGRDbGVhclJlZmVycmVy
T25IVFRQU1RvSFRUUFJlZGlyZWN0KTsKKyAgICByZXR1cm4gTmV0d29ya0RhdGFUYXNrQ29jb2E6
OmNyZWF0ZShzZXNzaW9uLCBjbGllbnQsIHBhcmFtZXRlcnMucmVxdWVzdCwgcGFyYW1ldGVycy5z
dG9yZWRDcmVkZW50aWFsc1BvbGljeSwgcGFyYW1ldGVycy5jb250ZW50U25pZmZpbmdQb2xpY3ks
IHBhcmFtZXRlcnMuc2hvdWxkQ2xlYXJSZWZlcnJlck9uSFRUUFNUb0hUVFBSZWRpcmVjdCwgcGFy
YW1ldGVycy5zaG91bGRQcmVjb25uZWN0T25seSk7CiAjZW5kaWYKICNpZiBVU0UoU09VUCkKICAg
ICByZXR1cm4gTmV0d29ya0RhdGFUYXNrU291cDo6Y3JlYXRlKHNlc3Npb24sIGNsaWVudCwgcGFy
YW1ldGVycy5yZXF1ZXN0LCBwYXJhbWV0ZXJzLnN0b3JlZENyZWRlbnRpYWxzUG9saWN5LCBwYXJh
bWV0ZXJzLmNvbnRlbnRTbmlmZmluZ1BvbGljeSwgcGFyYW1ldGVycy5zaG91bGRDbGVhclJlZmVy
cmVyT25IVFRQU1RvSFRUUFJlZGlyZWN0KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0
d29ya1Byb2Nlc3MvTmV0d29ya0xvYWRQYXJhbWV0ZXJzLmggYi9Tb3VyY2UvV2ViS2l0L05ldHdv
cmtQcm9jZXNzL05ldHdvcmtMb2FkUGFyYW1ldGVycy5oCmluZGV4IDFmYmQyZGE0OTFkLi4yNWFh
NTA1ODBkZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3Jr
TG9hZFBhcmFtZXRlcnMuaAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdv
cmtMb2FkUGFyYW1ldGVycy5oCkBAIC0zMyw2ICszMyw4IEBACiAKIG5hbWVzcGFjZSBXZWJLaXQg
ewogCitlbnVtIGNsYXNzIFByZWNvbm5lY3RPbmx5IHsgTm8sIFllcyB9OworCiBjbGFzcyBOZXR3
b3JrTG9hZFBhcmFtZXRlcnMgewogcHVibGljOgogICAgIHVpbnQ2NF90IHdlYlBhZ2VJRCB7IDAg
fTsKQEAgLTQ5LDYgKzUxLDcgQEAgcHVibGljOgogI2lmIFVTRShORVRXT1JLX1NFU1NJT04pCiAg
ICAgVmVjdG9yPFJlZlB0cjxXZWJDb3JlOjpCbG9iRGF0YUZpbGVSZWZlcmVuY2U+PiBibG9iRmls
ZVJlZmVyZW5jZXM7CiAjZW5kaWYKKyAgICBQcmVjb25uZWN0T25seSBzaG91bGRQcmVjb25uZWN0
T25seSB7IFByZWNvbm5lY3RPbmx5OjpObyB9OwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViS2l0
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNz
LmNwcCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MuY3BwCmlu
ZGV4IDc5ZTAyY2Y4NzIxLi5mNzFlMWQxZmYwOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9O
ZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5jcHAKKysrIGIvU291cmNlL1dlYktpdC9OZXR3
b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5jcHAKQEAgLTQwLDYgKzQwLDcgQEAKICNpbmNsdWRl
ICJOZXR3b3JrUHJvY2Vzc1Byb3h5TWVzc2FnZXMuaCIKICNpbmNsdWRlICJOZXR3b3JrUmVzb3Vy
Y2VMb2FkZXIuaCIKICNpbmNsdWRlICJOZXR3b3JrU2Vzc2lvbi5oIgorI2luY2x1ZGUgIlByZWNv
bm5lY3RUYXNrLmgiCiAjaW5jbHVkZSAiUmVtb3RlTmV0d29ya2luZ0NvbnRleHQuaCIKICNpbmNs
dWRlICJTZXNzaW9uVHJhY2tlci5oIgogI2luY2x1ZGUgIlN0YXRpc3RpY3NEYXRhLmgiCkBAIC03
MjUsNiArNzI2LDE2IEBAIFN0cmluZyBOZXR3b3JrUHJvY2Vzczo6Y2FjaGVTdG9yYWdlRGlyZWN0
b3J5KFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCkgY29uc3QKICAgICByZXR1cm4gc2Vzc2lvbi0+
Y2FjaGVTdG9yYWdlRGlyZWN0b3J5KCk7CiB9CiAKK3ZvaWQgTmV0d29ya1Byb2Nlc3M6OnByZWNv
bm5lY3RUbyhjb25zdCBXZWJDb3JlOjpVUkwmIHVybCwgV2ViQ29yZTo6U3RvcmVkQ3JlZGVudGlh
bHNQb2xpY3kgc3RvcmVkQ3JlZGVudGlhbHNQb2xpY3kpCit7CisjaWYgRU5BQkxFKFNFUlZFUl9Q
UkVDT05ORUNUKQorICAgIG5ldyBQcmVjb25uZWN0VGFzayh1cmwsIHN0b3JlZENyZWRlbnRpYWxz
UG9saWN5KTsKKyNlbHNlCisgICAgVU5VU0VEX1BBUkFNKHVybCk7CisgICAgVU5VU0VEX1BBUkFN
KHN0b3JlZENyZWRlbnRpYWxzUG9saWN5KTsKKyNlbmRpZgorfQorCiAjaWYgIVBMQVRGT1JNKENP
Q09BKQogdm9pZCBOZXR3b3JrUHJvY2Vzczo6aW5pdGlhbGl6ZVByb2Nlc3MoY29uc3QgQ2hpbGRQ
cm9jZXNzSW5pdGlhbGl6YXRpb25QYXJhbWV0ZXJzJikKIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MuaCBiL1NvdXJjZS9XZWJLaXQvTmV0
d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MuaAppbmRleCAxNGE1MjJmY2Q2ZC4uYjlmYTcyMDg0
YzQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nl
c3MuaAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLmgK
QEAgLTU0LDYgKzU0LDggQEAgY2xhc3MgUHJvdGVjdGlvblNwYWNlOwogY2xhc3MgU2VjdXJpdHlP
cmlnaW47CiBzdHJ1Y3QgU2VjdXJpdHlPcmlnaW5EYXRhOwogc3RydWN0IFNvdXBOZXR3b3JrUHJv
eHlTZXR0aW5nczsKK2VudW0gY2xhc3MgU3RvcmVkQ3JlZGVudGlhbHNQb2xpY3k7CitjbGFzcyBV
Ukw7CiB9CiAKIG5hbWVzcGFjZSBXZWJLaXQgewpAQCAtMTM3LDYgKzEzOSw4IEBAIHB1YmxpYzoK
ICAgICBTZWNvbmRzIGxvYWRUaHJvdHRsZUxhdGVuY3koKSBjb25zdCB7IHJldHVybiBtX2xvYWRU
aHJvdHRsZUxhdGVuY3k7IH0KICAgICBTdHJpbmcgY2FjaGVTdG9yYWdlRGlyZWN0b3J5KFBBTDo6
U2Vzc2lvbklEKSBjb25zdDsKIAorICAgIHZvaWQgcHJlY29ubmVjdFRvKGNvbnN0IFdlYkNvcmU6
OlVSTCYsIFdlYkNvcmU6OlN0b3JlZENyZWRlbnRpYWxzUG9saWN5KTsKKwogcHJpdmF0ZToKICAg
ICBOZXR3b3JrUHJvY2VzcygpOwogICAgIH5OZXR3b3JrUHJvY2VzcygpOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5tZXNzYWdlcy5pbiBi
L1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MubWVzc2FnZXMuaW4K
aW5kZXggNjk0ZTQ3NDg4NmUuLjQ2MWYxYzBlYzI4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L05ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLm1lc3NhZ2VzLmluCisrKyBiL1NvdXJjZS9X
ZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MubWVzc2FnZXMuaW4KQEAgLTgyLDYg
KzgyLDggQEAgbWVzc2FnZXMgLT4gTmV0d29ya1Byb2Nlc3MgTGVnYWN5UmVjZWl2ZXIgewogCiAg
ICAgRGlkR3JhbnRTYW5kYm94RXh0ZW5zaW9uc1RvU3RvcmFnZVByb2Nlc3NGb3JCbG9icyh1aW50
NjRfdCByZXF1ZXN0SUQpCiAKKyAgICBQcmVjb25uZWN0VG8oV2ViQ29yZTo6VVJMIHVybCwgZW51
bSBXZWJDb3JlOjpTdG9yZWRDcmVkZW50aWFsc1BvbGljeSBzdG9yZWRDcmVkZW50aWFsc1BvbGlj
eSk7CisKICNpZiBIQVZFKENGTkVUV09SS19TVE9SQUdFX1BBUlRJVElPTklORykKICAgICBVcGRh
dGVQcmV2YWxlbnREb21haW5zVG9QYXJ0aXRpb25PckJsb2NrQ29va2llcyhQQUw6OlNlc3Npb25J
RCBzZXNzaW9uSUQsIFZlY3RvcjxTdHJpbmc+IGRvbWFpbnNUb1BhcnRpdGlvbiwgVmVjdG9yPFN0
cmluZz4gZG9tYWluc1RvQmxvY2ssIFZlY3RvcjxTdHJpbmc+IGRvbWFpbnNUb05laXRoZXJQYXJ0
aXRpb25Ob3JCbG9jaywgYm9vbCBzaG91bGRDbGVhckZpcnN0KQogICAgIFJlbW92ZVByZXZhbGVu
dERvbWFpbnMoUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBWZWN0b3I8U3RyaW5nPiBkb21haW5z
V2l0aEludGVyYWN0aW9uKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nl
c3MvUHJlY29ubmVjdFRhc2suY3BwIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9QcmVj
b25uZWN0VGFzay5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLmQ1
YmMzZDNiYjIzCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vz
cy9QcmVjb25uZWN0VGFzay5jcHAKQEAgLTAsMCArMSwxMzAgQEAKKy8qCisgKiBDb3B5cmlnaHQg
KEMpIDIwMTcgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJp
YnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91
dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxv
d2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNv
dXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAq
IDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJv
dmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9v
ciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAq
IFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJV
VE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMs
IElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElF
UyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVS
UE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMg
Q09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJ
REVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMg
KElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJ
VFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9S
IEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhF
T1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJ
VFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJ
TkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFE
VklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5j
bHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiUHJlY29ubmVjdFRhc2suaCIKKworI2lmIEVOQUJM
RShTRVJWRVJfUFJFQ09OTkVDVCkKKworI2luY2x1ZGUgIkF1dGhlbnRpY2F0aW9uTWFuYWdlci5o
IgorI2luY2x1ZGUgIkxvZ2dpbmcuaCIKKyNpbmNsdWRlICJOZXR3b3JrTG9hZFBhcmFtZXRlcnMu
aCIKKyNpbmNsdWRlICJOZXR3b3JrU2Vzc2lvbi5oIgorI2luY2x1ZGUgIldlYkVycm9ycy5oIgor
I2luY2x1ZGUgPFdlYkNvcmUvQXV0aGVudGljYXRpb25DaGFsbGVuZ2UuaD4KKyNpbmNsdWRlIDxX
ZWJDb3JlL1Jlc291cmNlRXJyb3IuaD4KKworI2lmIFBMQVRGT1JNKENPQ09BKQorI2luY2x1ZGUg
Ik5ldHdvcmtEYXRhVGFza0NvY29hLmgiCisjZW5kaWYKKworbmFtZXNwYWNlIFdlYktpdCB7CisK
K3VzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOworCitQcmVjb25uZWN0VGFzazo6UHJlY29ubmVjdFRh
c2soY29uc3QgVVJMJiB1cmwsIFdlYkNvcmU6OlN0b3JlZENyZWRlbnRpYWxzUG9saWN5IHN0b3Jl
ZENyZWRlbnRpYWxzUG9saWN5LCBXVEY6OkNvbXBsZXRpb25IYW5kbGVyPHZvaWQoY29uc3QgV2Vi
Q29yZTo6UmVzb3VyY2VFcnJvciYpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQorICAgIDogbV9jb21w
bGV0aW9uSGFuZGxlcihXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKSkKK3sKKyAgICBSRUxFQVNF
X0xPRyhOZXR3b3JrLCAiJXAgLSBQcmVjb25uZWN0VGFzazo6UHJlY29ubmVjdFRhc2soKSIsIHRo
aXMpOworICAgIE5ldHdvcmtMb2FkUGFyYW1ldGVycyBwYXJhbWV0ZXJzOworICAgIHBhcmFtZXRl
cnMucmVxdWVzdCA9IFJlc291cmNlUmVxdWVzdCh1cmwpOworICAgIHBhcmFtZXRlcnMuc2hvdWxk
UHJlY29ubmVjdE9ubHkgPSBQcmVjb25uZWN0T25seTo6WWVzOworICAgIHBhcmFtZXRlcnMuc3Rv
cmVkQ3JlZGVudGlhbHNQb2xpY3kgPSBzdG9yZWRDcmVkZW50aWFsc1BvbGljeTsKKyAgICBtX3Rh
c2sgPSBOZXR3b3JrRGF0YVRhc2s6OmNyZWF0ZShOZXR3b3JrU2Vzc2lvbjo6ZGVmYXVsdFNlc3Np
b24oKSwgKnRoaXMsIHBhcmFtZXRlcnMpOworICAgIG1fdGFzay0+cmVzdW1lKCk7Cit9CisKK1By
ZWNvbm5lY3RUYXNrOjp+UHJlY29ubmVjdFRhc2soKQoreworICAgIEFTU0VSVChtX3Rhc2stPmNs
aWVudCgpID09IHRoaXMpOworICAgIG1fdGFzay0+Y2xlYXJDbGllbnQoKTsKKyAgICBtX3Rhc2st
PmNhbmNlbCgpOworICAgIEFTU0VSVCghbV9jb21wbGV0aW9uSGFuZGxlcik7Cit9CisKK3ZvaWQg
UHJlY29ubmVjdFRhc2s6OndpbGxQZXJmb3JtSFRUUFJlZGlyZWN0aW9uKFdlYkNvcmU6OlJlc291
cmNlUmVzcG9uc2UmJiwgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiYsIFJlZGlyZWN0Q29tcGxl
dGlvbkhhbmRsZXImJikKK3sKKyAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKK30KKwordm9pZCBQ
cmVjb25uZWN0VGFzazo6ZGlkUmVjZWl2ZUNoYWxsZW5nZShjb25zdCBXZWJDb3JlOjpBdXRoZW50
aWNhdGlvbkNoYWxsZW5nZSYgY2hhbGxlbmdlLCBDaGFsbGVuZ2VDb21wbGV0aW9uSGFuZGxlciYm
IGNvbXBsZXRpb25IYW5kbGVyKQoreworICAgIGlmIChjaGFsbGVuZ2UucHJvdGVjdGlvblNwYWNl
KCkuYXV0aGVudGljYXRpb25TY2hlbWUoKSA9PSBQcm90ZWN0aW9uU3BhY2VBdXRoZW50aWNhdGlv
blNjaGVtZVNlcnZlclRydXN0RXZhbHVhdGlvblJlcXVlc3RlZCkgeworICAgICAgICBpZiAobV90
YXNrICYmIG1fdGFzay0+YWxsb3dzU3BlY2lmaWNIVFRQU0NlcnRpZmljYXRlRm9ySG9zdChjaGFs
bGVuZ2UpKQorICAgICAgICAgICAgY29tcGxldGlvbkhhbmRsZXIoQXV0aGVudGljYXRpb25DaGFs
bGVuZ2VEaXNwb3NpdGlvbjo6VXNlQ3JlZGVudGlhbCwgc2VydmVyVHJ1c3RDcmVkZW50aWFsKGNo
YWxsZW5nZSkpOworICAgICAgICBlbHNlCisgICAgICAgICAgICBjb21wbGV0aW9uSGFuZGxlcihB
dXRoZW50aWNhdGlvbkNoYWxsZW5nZURpc3Bvc2l0aW9uOjpSZWplY3RQcm90ZWN0aW9uU3BhY2Us
IHsgfSk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7
Cit9CisKK3ZvaWQgUHJlY29ubmVjdFRhc2s6OmRpZFJlY2VpdmVSZXNwb25zZU5ldHdvcmtTZXNz
aW9uKFdlYkNvcmU6OlJlc291cmNlUmVzcG9uc2UmJiwgUmVzcG9uc2VDb21wbGV0aW9uSGFuZGxl
ciYmKQoreworICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOworfQorCit2b2lkIFByZWNvbm5lY3RU
YXNrOjpkaWRSZWNlaXZlRGF0YShSZWY8V2ViQ29yZTo6U2hhcmVkQnVmZmVyPiYmKQoreworICAg
IEFTU0VSVF9OT1RfUkVBQ0hFRCgpOworfQorCit2b2lkIFByZWNvbm5lY3RUYXNrOjpkaWRDb21w
bGV0ZVdpdGhFcnJvcihjb25zdCBXZWJDb3JlOjpSZXNvdXJjZUVycm9yJiBlcnJvciwgY29uc3Qg
V2ViQ29yZTo6TmV0d29ya0xvYWRNZXRyaWNzJikKK3sKKyAgICBpZiAoZXJyb3IuaXNOdWxsKCkp
CisgICAgICAgIFJFTEVBU0VfTE9HKE5ldHdvcmssICIlcCAtIFByZWNvbm5lY3RUYXNrOjpkaWRD
b21wbGV0ZSIsIHRoaXMpOworICAgIGVsc2UKKyAgICAgICAgUkVMRUFTRV9MT0coTmV0d29yaywg
IiVwIC0gUHJlY29ubmVjdFRhc2s6OmRpZENvbXBsZXRlV2l0aEVycm9yLCBlcnJvcl9jb2RlOiAl
ZCIsIHRoaXMsIGVycm9yLmVycm9yQ29kZSgpKTsKKworICAgIG1fY29tcGxldGlvbkhhbmRsZXIo
ZXJyb3IpOworfQorCit2b2lkIFByZWNvbm5lY3RUYXNrOjpkaWRTZW5kRGF0YSh1aW50NjRfdCB0
b3RhbEJ5dGVzU2VudCwgdWludDY0X3QgdG90YWxCeXRlc0V4cGVjdGVkVG9TZW5kKQoreworICAg
IEFTU0VSVF9OT1RfUkVBQ0hFRCgpOworfQorCit2b2lkIFByZWNvbm5lY3RUYXNrOjp3YXNCbG9j
a2VkKCkKK3sKKyAgICBSRUxFQVNFX0xPRyhOZXR3b3JrLCAiJXAgLSBQcmVjb25uZWN0VGFzazo6
d2FzQmxvY2tlZCgpIiwgdGhpcyk7CisgICAgZGlkRmluaXNoKGJsb2NrZWRFcnJvcihSZXNvdXJj
ZVJlcXVlc3QgeyB9KSk7Cit9CisKK3ZvaWQgUHJlY29ubmVjdFRhc2s6OmNhbm5vdFNob3dVUkwo
KQoreworICAgIFJFTEVBU0VfTE9HKE5ldHdvcmssICIlcCAtIFByZWNvbm5lY3RUYXNrOjpjYW5u
b3RTaG93VVJMKCkiLCB0aGlzKTsKKyAgICBkaWRGaW5pc2goY2Fubm90U2hvd1VSTEVycm9yKFJl
c291cmNlUmVxdWVzdCB7IH0pKTsKK30KKwordm9pZCBQcmVjb25uZWN0VGFzazo6ZGlkRmluaXNo
KGNvbnN0IFJlc291cmNlRXJyb3ImIGVycm9yKQoreworICAgIGlmIChtX2NvbXBsZXRpb25IYW5k
bGVyKQorICAgICAgICBtX2NvbXBsZXRpb25IYW5kbGVyKGVycm9yKTsKKyAgICBkZWxldGUgdGhp
czsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CisKKyNlbmRpZiAvLyBFTkFCTEUoU0VSVkVS
X1BSRUNPTk5FQ1QpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL1By
ZWNvbm5lY3RUYXNrLmggYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL1ByZWNvbm5lY3RU
YXNrLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLmMyODc4YjRkZDU5
Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9QcmVjb25u
ZWN0VGFzay5oCkBAIC0wLDAgKzEsNTkgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTcgQXBw
bGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1
c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZp
Y2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRp
b25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11
c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJp
YnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0
CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRl
cmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdB
UkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElT
JycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFO
VEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElT
Q0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JT
CisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVD
SUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBP
UiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisg
KiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJ
TElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQg
KElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdB
WSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAq
IFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKwor
I2lmIEVOQUJMRShTRVJWRVJfUFJFQ09OTkVDVCkKKworI2luY2x1ZGUgIk5ldHdvcmtEYXRhVGFz
ay5oIgorI2luY2x1ZGUgPHd0Zi9Db21wbGV0aW9uSGFuZGxlci5oPgorCituYW1lc3BhY2UgV2Vi
S2l0IHsKKworY2xhc3MgUHJlY29ubmVjdFRhc2sgZmluYWwgOiBwcml2YXRlIE5ldHdvcmtEYXRh
VGFza0NsaWVudCB7CitwdWJsaWM6CisgICAgZXhwbGljaXQgUHJlY29ubmVjdFRhc2soY29uc3Qg
V2ViQ29yZTo6VVJMJiwgV2ViQ29yZTo6U3RvcmVkQ3JlZGVudGlhbHNQb2xpY3ksIFdURjo6Q29t
cGxldGlvbkhhbmRsZXI8dm9pZChjb25zdCBXZWJDb3JlOjpSZXNvdXJjZUVycm9yJik+JiYgY29t
cGxldGlvbkhhbmRsZXIgPSB7IH0pOworICAgIH5QcmVjb25uZWN0VGFzaygpOworCitwcml2YXRl
OgorICAgIC8vIE5ldHdvcmtEYXRhVGFza0NsaWVudC4KKyAgICB2b2lkIHdpbGxQZXJmb3JtSFRU
UFJlZGlyZWN0aW9uKFdlYkNvcmU6OlJlc291cmNlUmVzcG9uc2UmJiwgV2ViQ29yZTo6UmVzb3Vy
Y2VSZXF1ZXN0JiYsIFJlZGlyZWN0Q29tcGxldGlvbkhhbmRsZXImJikgZmluYWw7CisgICAgdm9p
ZCBkaWRSZWNlaXZlQ2hhbGxlbmdlKGNvbnN0IFdlYkNvcmU6OkF1dGhlbnRpY2F0aW9uQ2hhbGxl
bmdlJiwgQ2hhbGxlbmdlQ29tcGxldGlvbkhhbmRsZXImJikgZmluYWw7CisgICAgdm9pZCBkaWRS
ZWNlaXZlUmVzcG9uc2VOZXR3b3JrU2Vzc2lvbihXZWJDb3JlOjpSZXNvdXJjZVJlc3BvbnNlJiYs
IFJlc3BvbnNlQ29tcGxldGlvbkhhbmRsZXImJikgZmluYWw7CisgICAgdm9pZCBkaWRSZWNlaXZl
RGF0YShSZWY8V2ViQ29yZTo6U2hhcmVkQnVmZmVyPiYmKSBmaW5hbDsKKyAgICB2b2lkIGRpZENv
bXBsZXRlV2l0aEVycm9yKGNvbnN0IFdlYkNvcmU6OlJlc291cmNlRXJyb3ImLCBjb25zdCBXZWJD
b3JlOjpOZXR3b3JrTG9hZE1ldHJpY3MmKSBmaW5hbDsKKyAgICB2b2lkIGRpZFNlbmREYXRhKHVp
bnQ2NF90IHRvdGFsQnl0ZXNTZW50LCB1aW50NjRfdCB0b3RhbEJ5dGVzRXhwZWN0ZWRUb1NlbmQp
IGZpbmFsOworICAgIHZvaWQgd2FzQmxvY2tlZCgpIGZpbmFsOworICAgIHZvaWQgY2Fubm90U2hv
d1VSTCgpIGZpbmFsOworCisgICAgdm9pZCBkaWRGaW5pc2goY29uc3QgV2ViQ29yZTo6UmVzb3Vy
Y2VFcnJvciYpOworCisgICAgUmVmUHRyPE5ldHdvcmtEYXRhVGFzaz4gbV90YXNrOworICAgIFdU
Rjo6Q29tcGxldGlvbkhhbmRsZXI8dm9pZChjb25zdCBXZWJDb3JlOjpSZXNvdXJjZUVycm9yJik+
IG1fY29tcGxldGlvbkhhbmRsZXI7Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQKKworI2Vu
ZGlmIC8vIEVOQUJMRShTRVJWRVJfUFJFQ09OTkVDVCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvTmV0d29ya1Byb2Nlc3MvY29jb2EvTmV0d29ya0RhdGFUYXNrQ29jb2EuaCBiL1NvdXJjZS9X
ZWJLaXQvTmV0d29ya1Byb2Nlc3MvY29jb2EvTmV0d29ya0RhdGFUYXNrQ29jb2EuaAppbmRleCBj
ZGY0MzI0YzA2Yi4uMjEyYTlhMDhmYjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29y
a1Byb2Nlc3MvY29jb2EvTmV0d29ya0RhdGFUYXNrQ29jb2EuaAorKysgYi9Tb3VyY2UvV2ViS2l0
L05ldHdvcmtQcm9jZXNzL2NvY29hL05ldHdvcmtEYXRhVGFza0NvY29hLmgKQEAgLTI4LDYgKzI4
LDcgQEAKICNpZiBVU0UoTkVUV09SS19TRVNTSU9OKQogCiAjaW5jbHVkZSAiTmV0d29ya0RhdGFU
YXNrLmgiCisjaW5jbHVkZSAiTmV0d29ya0xvYWRQYXJhbWV0ZXJzLmgiCiAjaW5jbHVkZSA8V2Vi
Q29yZS9OZXR3b3JrTG9hZE1ldHJpY3MuaD4KICNpbmNsdWRlIDx3dGYvUmV0YWluUHRyLmg+CiAK
QEAgLTQwLDkgKzQxLDkgQEAgY2xhc3MgTmV0d29ya1Nlc3Npb25Db2NvYTsKIGNsYXNzIE5ldHdv
cmtEYXRhVGFza0NvY29hIGZpbmFsIDogcHVibGljIE5ldHdvcmtEYXRhVGFzayB7CiAgICAgZnJp
ZW5kIGNsYXNzIE5ldHdvcmtTZXNzaW9uQ29jb2E7CiBwdWJsaWM6Ci0gICAgc3RhdGljIFJlZjxO
ZXR3b3JrRGF0YVRhc2s+IGNyZWF0ZShOZXR3b3JrU2Vzc2lvbiYgc2Vzc2lvbiwgTmV0d29ya0Rh
dGFUYXNrQ2xpZW50JiBjbGllbnQsIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYgcmVx
dWVzdCwgV2ViQ29yZTo6U3RvcmVkQ3JlZGVudGlhbHNQb2xpY3kgc3RvcmVkQ3JlZGVudGlhbHNQ
b2xpY3ksIFdlYkNvcmU6OkNvbnRlbnRTbmlmZmluZ1BvbGljeSBzaG91bGRDb250ZW50U25pZmYs
IGJvb2wgc2hvdWxkQ2xlYXJSZWZlcnJlck9uSFRUUFNUb0hUVFBSZWRpcmVjdCkKKyAgICBzdGF0
aWMgUmVmPE5ldHdvcmtEYXRhVGFzaz4gY3JlYXRlKE5ldHdvcmtTZXNzaW9uJiBzZXNzaW9uLCBO
ZXR3b3JrRGF0YVRhc2tDbGllbnQmIGNsaWVudCwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1
ZXN0JiByZXF1ZXN0LCBXZWJDb3JlOjpTdG9yZWRDcmVkZW50aWFsc1BvbGljeSBzdG9yZWRDcmVk
ZW50aWFsc1BvbGljeSwgV2ViQ29yZTo6Q29udGVudFNuaWZmaW5nUG9saWN5IHNob3VsZENvbnRl
bnRTbmlmZiwgYm9vbCBzaG91bGRDbGVhclJlZmVycmVyT25IVFRQU1RvSFRUUFJlZGlyZWN0LCBQ
cmVjb25uZWN0T25seSBzaG91bGRQcmVjb25uZWN0T25seSkKICAgICB7Ci0gICAgICAgIHJldHVy
biBhZG9wdFJlZigqbmV3IE5ldHdvcmtEYXRhVGFza0NvY29hKHNlc3Npb24sIGNsaWVudCwgcmVx
dWVzdCwgc3RvcmVkQ3JlZGVudGlhbHNQb2xpY3ksIHNob3VsZENvbnRlbnRTbmlmZiwgc2hvdWxk
Q2xlYXJSZWZlcnJlck9uSFRUUFNUb0hUVFBSZWRpcmVjdCkpOworICAgICAgICByZXR1cm4gYWRv
cHRSZWYoKm5ldyBOZXR3b3JrRGF0YVRhc2tDb2NvYShzZXNzaW9uLCBjbGllbnQsIHJlcXVlc3Qs
IHN0b3JlZENyZWRlbnRpYWxzUG9saWN5LCBzaG91bGRDb250ZW50U25pZmYsIHNob3VsZENsZWFy
UmVmZXJyZXJPbkhUVFBTVG9IVFRQUmVkaXJlY3QsIHNob3VsZFByZWNvbm5lY3RPbmx5KSk7CiAg
ICAgfQogCiAgICAgfk5ldHdvcmtEYXRhVGFza0NvY29hKCk7CkBAIC03MSw3ICs3Miw3IEBAIHB1
YmxpYzoKICAgICBXZWJDb3JlOjpOZXR3b3JrTG9hZE1ldHJpY3MmIG5ldHdvcmtMb2FkTWV0cmlj
cygpIHsgcmV0dXJuIG1fbmV0d29ya0xvYWRNZXRyaWNzOyB9CiAKIHByaXZhdGU6Ci0gICAgTmV0
d29ya0RhdGFUYXNrQ29jb2EoTmV0d29ya1Nlc3Npb24mLCBOZXR3b3JrRGF0YVRhc2tDbGllbnQm
LCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmLCBXZWJDb3JlOjpTdG9yZWRDcmVkZW50
aWFsc1BvbGljeSwgV2ViQ29yZTo6Q29udGVudFNuaWZmaW5nUG9saWN5LCBib29sIHNob3VsZENs
ZWFyUmVmZXJyZXJPbkhUVFBTVG9IVFRQUmVkaXJlY3QpOworICAgIE5ldHdvcmtEYXRhVGFza0Nv
Y29hKE5ldHdvcmtTZXNzaW9uJiwgTmV0d29ya0RhdGFUYXNrQ2xpZW50JiwgY29uc3QgV2ViQ29y
ZTo6UmVzb3VyY2VSZXF1ZXN0JiwgV2ViQ29yZTo6U3RvcmVkQ3JlZGVudGlhbHNQb2xpY3ksIFdl
YkNvcmU6OkNvbnRlbnRTbmlmZmluZ1BvbGljeSwgYm9vbCBzaG91bGRDbGVhclJlZmVycmVyT25I
VFRQU1RvSFRUUFJlZGlyZWN0LCBQcmVjb25uZWN0T25seSk7CiAKICAgICBib29sIHRyeVBhc3N3
b3JkQmFzZWRBdXRoZW50aWNhdGlvbihjb25zdCBXZWJDb3JlOjpBdXRoZW50aWNhdGlvbkNoYWxs
ZW5nZSYsIENoYWxsZW5nZUNvbXBsZXRpb25IYW5kbGVyJik7CiAKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvY29jb2EvTmV0d29ya0RhdGFUYXNrQ29jb2EubW0gYi9T
b3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL2NvY29hL05ldHdvcmtEYXRhVGFza0NvY29hLm1t
CmluZGV4IDk5N2UwZWUxYWY2Li5kYmJiMTAwNDAxNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9OZXR3b3JrUHJvY2Vzcy9jb2NvYS9OZXR3b3JrRGF0YVRhc2tDb2NvYS5tbQorKysgYi9Tb3Vy
Y2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL2NvY29hL05ldHdvcmtEYXRhVGFza0NvY29hLm1tCkBA
IC03NCw3ICs3NCw3IEBAIHN0YXRpYyBmbG9hdCB0b05TVVJMU2Vzc2lvblRhc2tQcmlvcml0eShX
ZWJDb3JlOjpSZXNvdXJjZUxvYWRQcmlvcml0eSBwcmlvcml0eSkKICAgICByZXR1cm4gTlNVUkxT
ZXNzaW9uVGFza1ByaW9yaXR5RGVmYXVsdDsKIH0KIAotTmV0d29ya0RhdGFUYXNrQ29jb2E6Ok5l
dHdvcmtEYXRhVGFza0NvY29hKE5ldHdvcmtTZXNzaW9uJiBzZXNzaW9uLCBOZXR3b3JrRGF0YVRh
c2tDbGllbnQmIGNsaWVudCwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0
V2l0aENyZWRlbnRpYWxzLCBXZWJDb3JlOjpTdG9yZWRDcmVkZW50aWFsc1BvbGljeSBzdG9yZWRD
cmVkZW50aWFsc1BvbGljeSwgV2ViQ29yZTo6Q29udGVudFNuaWZmaW5nUG9saWN5IHNob3VsZENv
bnRlbnRTbmlmZiwgYm9vbCBzaG91bGRDbGVhclJlZmVycmVyT25IVFRQU1RvSFRUUFJlZGlyZWN0
KQorTmV0d29ya0RhdGFUYXNrQ29jb2E6Ok5ldHdvcmtEYXRhVGFza0NvY29hKE5ldHdvcmtTZXNz
aW9uJiBzZXNzaW9uLCBOZXR3b3JrRGF0YVRhc2tDbGllbnQmIGNsaWVudCwgY29uc3QgV2ViQ29y
ZTo6UmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0V2l0aENyZWRlbnRpYWxzLCBXZWJDb3JlOjpTdG9y
ZWRDcmVkZW50aWFsc1BvbGljeSBzdG9yZWRDcmVkZW50aWFsc1BvbGljeSwgV2ViQ29yZTo6Q29u
dGVudFNuaWZmaW5nUG9saWN5IHNob3VsZENvbnRlbnRTbmlmZiwgYm9vbCBzaG91bGRDbGVhclJl
ZmVycmVyT25IVFRQU1RvSFRUUFJlZGlyZWN0LCBQcmVjb25uZWN0T25seSBzaG91bGRQcmVjb25u
ZWN0T25seSkKICAgICA6IE5ldHdvcmtEYXRhVGFzayhzZXNzaW9uLCBjbGllbnQsIHJlcXVlc3RX
aXRoQ3JlZGVudGlhbHMsIHN0b3JlZENyZWRlbnRpYWxzUG9saWN5LCBzaG91bGRDbGVhclJlZmVy
cmVyT25IVFRQU1RvSFRUUFJlZGlyZWN0KQogewogICAgIGlmIChtX3NjaGVkdWxlZEZhaWx1cmVU
eXBlICE9IE5vRmFpbHVyZSkKQEAgLTEyOCw2ICsxMjgsMTQgQEAgTmV0d29ya0RhdGFUYXNrQ29j
b2E6Ok5ldHdvcmtEYXRhVGFza0NvY29hKE5ldHdvcmtTZXNzaW9uJiBzZXNzaW9uLCBOZXR3b3Jr
RGF0YVQKICAgICAgICAgTE9HKE5ldHdvcmtTZXNzaW9uLCAiJWxsdSBDcmVhdGluZyBOZXR3b3Jr
RGF0YVRhc2sgd2l0aCBVUkwgJXMiLCBbbV90YXNrIHRhc2tJZGVudGlmaWVyXSwgbnNSZXF1ZXN0
LlVSTC5hYnNvbHV0ZVN0cmluZy5VVEY4U3RyaW5nKTsKICAgICB9CiAKKyAgICBpZiAoc2hvdWxk
UHJlY29ubmVjdE9ubHkgPT0gUHJlY29ubmVjdE9ubHk6OlllcykgeworI2lmIEVOQUJMRShTRVJW
RVJfUFJFQ09OTkVDVCkKKyAgICAgICAgbV90YXNrLmdldCgpLl9wcmVjb25uZWN0ID0gdHJ1ZTsK
KyNlbHNlCisgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOworI2VuZGlmCisgICAgfQorCiAj
aWYgSEFWRShDRk5FVFdPUktfU1RPUkFHRV9QQVJUSVRJT05JTkcpCiAgICAgaWYgKHN0b3JlZENy
ZWRlbnRpYWxzUG9saWN5ID09IFdlYkNvcmU6OlN0b3JlZENyZWRlbnRpYWxzUG9saWN5OjpVc2Up
IHsKICAgICAgICAgU3RyaW5nIHN0b3JhZ2VQYXJ0aXRpb24gPSBzZXNzaW9uLm5ldHdvcmtTdG9y
YWdlU2Vzc2lvbigpLmNvb2tpZVN0b3JhZ2VQYXJ0aXRpb24ocmVxdWVzdCk7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJDb3JlQXJndW1lbnRDb2RlcnMuaCBiL1NvdXJjZS9X
ZWJLaXQvU2hhcmVkL1dlYkNvcmVBcmd1bWVudENvZGVycy5oCmluZGV4IDA4YzM4MzkwYjg0Li5l
YjNkYjUwZDk2YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViQ29yZUFyZ3Vt
ZW50Q29kZXJzLmgKKysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViQ29yZUFyZ3VtZW50Q29k
ZXJzLmgKQEAgLTM5LDYgKzM5LDcgQEAKICNpbmNsdWRlIDxXZWJDb3JlL1BheW1lbnRIZWFkZXJz
Lmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9SZWFsdGltZU1lZGlhU291cmNlLmg+CiAjaW5jbHVkZSA8
V2ViQ29yZS9TY3JvbGxTbmFwT2Zmc2V0c0luZm8uaD4KKyNpbmNsdWRlIDxXZWJDb3JlL1N0b3Jl
ZENyZWRlbnRpYWxzUG9saWN5Lmg+CiAKIG5hbWVzcGFjZSBXVEYgewogY2xhc3MgTW9ub3Rvbmlj
VGltZTsKQEAgLTc2Niw0ICs3NjcsMTIgQEAgdGVtcGxhdGU8PiBzdHJ1Y3QgRW51bVRyYWl0czxX
ZWJDb3JlOjpNZWRpYVNlbGVjdGlvbk9wdGlvbjo6VHlwZT4gewogICAgID47CiB9OwogCit0ZW1w
bGF0ZSA8PiBzdHJ1Y3QgRW51bVRyYWl0czxXZWJDb3JlOjpTdG9yZWRDcmVkZW50aWFsc1BvbGlj
eT4geworICAgIHVzaW5nIHZhbHVlcyA9IEVudW1WYWx1ZXM8CisgICAgICAgIFdlYkNvcmU6OlN0
b3JlZENyZWRlbnRpYWxzUG9saWN5LAorICAgICAgICBXZWJDb3JlOjpTdG9yZWRDcmVkZW50aWFs
c1BvbGljeTo6RG9Ob3RVc2UsCisgICAgICAgIFdlYkNvcmU6OlN0b3JlZENyZWRlbnRpYWxzUG9s
aWN5OjpVc2UKKyAgICA+OworfTsKKwogfSAvLyBuYW1lc3BhY2UgV1RGCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJQcmVmZXJlbmNlc0RlZmluaXRpb25zLmggYi9Tb3VyY2Uv
V2ViS2l0L1NoYXJlZC9XZWJQcmVmZXJlbmNlc0RlZmluaXRpb25zLmgKaW5kZXggNTdkZGQxYjMw
MmMuLjcyMzZjMGNkNDM0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJQcmVm
ZXJlbmNlc0RlZmluaXRpb25zLmgKKysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViUHJlZmVy
ZW5jZXNEZWZpbml0aW9ucy5oCkBAIC00NSw2ICs0NSwxMiBAQAogI2RlZmluZSBERUZBVUxUX0hJ
RERFTl9QQUdFX0NTU19BTklNQVRJT05fU1VTUEVOU0lPTl9FTkFCTEVEIGZhbHNlCiAjZW5kaWYK
IAorI2lmIEVOQUJMRShTRVJWRVJfUFJFQ09OTkVDVCkKKyNkZWZpbmUgREVGQVVMVF9MSU5LX1BS
RUNPTk5FQ1RfRU5BQkxFRCB0cnVlCisjZWxzZQorI2RlZmluZSBERUZBVUxUX0xJTktfUFJFQ09O
TkVDVF9FTkFCTEVEIGZhbHNlCisjZW5kaWYKKwogI2lmIFBMQVRGT1JNKENPQ09BKQogI2RlZmlu
ZSBERUZBVUxUX1BERlBMVUdJTl9FTkFCTEVEIHRydWUKICNlbHNlCkBAIC0xODEsNiArMTg3LDcg
QEAKICAgICBtYWNybyhET01QYXN0ZUFsbG93ZWQsIGRvbVBhc3RlQWxsb3dlZCwgQm9vbCwgYm9v
bCwgZmFsc2UsICIiLCAiIikgXAogICAgIG1hY3JvKEphdmFTY3JpcHRDYW5BY2Nlc3NDbGlwYm9h
cmQsIGphdmFTY3JpcHRDYW5BY2Nlc3NDbGlwYm9hcmQsIEJvb2wsIGJvb2wsIGZhbHNlLCAiIiwg
IiIpIFwKICAgICBtYWNybyhTaG91bGRQcmludEJhY2tncm91bmRzLCBzaG91bGRQcmludEJhY2tn
cm91bmRzLCBCb29sLCBib29sLCBERUZBVUxUX1NIT1VMRF9QUklOVF9CQUNLR1JPVU5EUywgIiIs
ICIiKSBcCisgICAgbWFjcm8oTGlua1ByZWNvbm5lY3QsIGxpbmtQcmVjb25uZWN0LCBCb29sLCBi
b29sLCBERUZBVUxUX0xJTktfUFJFQ09OTkVDVF9FTkFCTEVELCAiIiwgIiIpIFwKICAgICBtYWNy
byhGdWxsU2NyZWVuRW5hYmxlZCwgZnVsbFNjcmVlbkVuYWJsZWQsIEJvb2wsIGJvb2wsIGZhbHNl
LCAiIiwgIiIpIFwKICAgICBtYWNybyhBc3luY2hyb25vdXNTcGVsbENoZWNraW5nRW5hYmxlZCwg
YXN5bmNocm9ub3VzU3BlbGxDaGVja2luZ0VuYWJsZWQsIEJvb2wsIGJvb2wsIGZhbHNlLCAiIiwg
IiIpIFwKICAgICBtYWNybyhXZWJTZWN1cml0eUVuYWJsZWQsIHdlYlNlY3VyaXR5RW5hYmxlZCwg
Qm9vbCwgYm9vbCwgdHJ1ZSwgIiIsICIiKSBcCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9BUEkvQy9XS0NvbnRleHQuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJ
L0MvV0tDb250ZXh0LmNwcAppbmRleCA3ODMzOGVkNjU3OC4uNzA0OGJiZTBjMGQgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9DL1dLQ29udGV4dC5jcHAKKysrIGIvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0MvV0tDb250ZXh0LmNwcApAQCAtNDA3LDYgKzQwNywx
MSBAQCB2b2lkIFdLQ29udGV4dFNldERpc2tDYWNoZVNwZWN1bGF0aXZlVmFsaWRhdGlvbkVuYWJs
ZWQoV0tDb250ZXh0UmVmIGNvbnRleHRSZWYsCiAgICAgdG9JbXBsKGNvbnRleHRSZWYpLT5jb25m
aWd1cmF0aW9uKCkuc2V0RGlza0NhY2hlU3BlY3VsYXRpdmVWYWxpZGF0aW9uRW5hYmxlZCh2YWx1
ZSk7CiB9CiAKK3ZvaWQgV0tDb250ZXh0UHJlY29ubmVjdFRvU2VydmVyKFdLQ29udGV4dFJlZiBj
b250ZXh0UmVmLCBXS1VSTFJlZiBzZXJ2ZXJVUkxSZWYpCit7CisgICAgdG9JbXBsKGNvbnRleHRS
ZWYpLT5wcmVjb25uZWN0VG9TZXJ2ZXIoVVJMKFVSTCgpLCB0b1dURlN0cmluZyhzZXJ2ZXJVUkxS
ZWYpKSk7Cit9CisKIFdLQ29va2llTWFuYWdlclJlZiBXS0NvbnRleHRHZXRDb29raWVNYW5hZ2Vy
KFdLQ29udGV4dFJlZiBjb250ZXh0UmVmKQogewogICAgIHJldHVybiB0b0FQSSh0b0ltcGwoY29u
dGV4dFJlZiktPnN1cHBsZW1lbnQ8V2ViQ29va2llTWFuYWdlclByb3h5PigpKTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9DL1dLQ29udGV4dFByaXZhdGUuaCBiL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9DL1dLQ29udGV4dFByaXZhdGUuaAppbmRleCAwMmY5
MGI5MTdiNC4uMTUyZDZkYWIwYjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L0FQSS9DL1dLQ29udGV4dFByaXZhdGUuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9B
UEkvQy9XS0NvbnRleHRQcml2YXRlLmgKQEAgLTEwNSw2ICsxMDUsOCBAQCBXS19FWFBPUlQgdm9p
ZCBXS0NvbnRleHRTZXRNZW1vcnlDYWNoZURpc2FibGVkKFdLQ29udGV4dFJlZiwgYm9vbCBkaXNh
YmxlZCk7CiAKIFdLX0VYUE9SVCB2b2lkIFdLQ29udGV4dFNldEZvbnRXaGl0ZWxpc3QoV0tDb250
ZXh0UmVmLCBXS0FycmF5UmVmKTsKIAorV0tfRVhQT1JUIHZvaWQgV0tDb250ZXh0UHJlY29ubmVj
dFRvU2VydmVyKFdLQ29udGV4dFJlZiBjb250ZXh0LCBXS1VSTFJlZiBzZXJ2ZXJVUkwpOworCiBX
S19FWFBPUlQgV0tQcm9jZXNzSUQgV0tDb250ZXh0R2V0TmV0d29ya1Byb2Nlc3NJZGVudGlmaWVy
KFdLQ29udGV4dFJlZiBjb250ZXh0KTsKIFdLX0VYUE9SVCBXS1Byb2Nlc3NJRCBXS0NvbnRleHRH
ZXREYXRhYmFzZVByb2Nlc3NJZGVudGlmaWVyKFdLQ29udGV4dFJlZiBjb250ZXh0KTsKIApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLUHJvY2Vzc1Bvb2wu
bW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tQcm9jZXNzUG9vbC5tbQpp
bmRleCAxZjU5NzRkZjU3YS4uMTgwMjMwN2M3ZTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL0FQSS9Db2NvYS9XS1Byb2Nlc3NQb29sLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL0FQSS9Db2NvYS9XS1Byb2Nlc3NQb29sLm1tCkBAIC00MTUsNiArNDE1LDExIEBA
IHN0YXRpYyBOU0RpY3Rpb25hcnkgKnBvbGljaWVzSGFzaE1hcFRvRGljdGlvbmFyeShjb25zdCBI
YXNoTWFwPFN0cmluZywgSGFzaE1hcDxTCiAgICAgcmV0dXJuIF9wcm9jZXNzUG9vbC0+cHJvY2Vz
c2VzKCkuc2l6ZSgpOwogfQogCistICh2b2lkKV9wcmVjb25uZWN0VG9TZXJ2ZXI6KE5TVVJMICop
c2VydmVyVVJMCit7CisgICAgX3Byb2Nlc3NQb29sLT5wcmVjb25uZWN0VG9TZXJ2ZXIoc2VydmVy
VVJMKTsKK30KKwogLSAoc2l6ZV90KV9wbHVnaW5Qcm9jZXNzQ291bnQKIHsKICNpZiAhUExBVEZP
Uk0oSU9TKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dL
UHJvY2Vzc1Bvb2xQcml2YXRlLmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2Ev
V0tQcm9jZXNzUG9vbFByaXZhdGUuaAppbmRleCAwN2FhZTMxMDhmYi4uMTNmZTU5YzQ4MmIgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1Byb2Nlc3NQb29s
UHJpdmF0ZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1Byb2Nl
c3NQb29sUHJpdmF0ZS5oCkBAIC04Nyw2ICs4Nyw4IEBACiAvLyBUZXN0IG9ubHkuIFNob3VsZCBi
ZSBjYWxsZWQgYmVmb3JlIGFueSB3ZWIgY29udGVudCBwcm9jZXNzZXMgYXJlIGxhdW5jaGVkLgog
KyAodm9pZClfZm9yY2VHYW1lQ29udHJvbGxlckZyYW1ld29yayBXS19BUElfQVZBSUxBQkxFKG1h
Y29zeCgxMC4xMyksIGlvcygxMS4wKSk7CiAKKy0gKHZvaWQpX3ByZWNvbm5lY3RUb1NlcnZlcjoo
TlNVUkwgKilzZXJ2ZXJVUkwgV0tfQVBJX0FWQUlMQUJMRShtYWNvc3goV0tfTUFDX1RCQSksIGlv
cyhXS19JT1NfVEJBKSk7CisKIEBwcm9wZXJ0eSAobm9uYXRvbWljLCBnZXR0ZXI9X2lzQ29va2ll
U3RvcmFnZVBhcnRpdGlvbmluZ0VuYWJsZWQsIHNldHRlcj1fc2V0Q29va2llU3RvcmFnZVBhcnRp
dGlvbmluZ0VuYWJsZWQ6KSBCT09MIF9jb29raWVTdG9yYWdlUGFydGl0aW9uaW5nRW5hYmxlZCBX
S19BUElfQVZBSUxBQkxFKG1hY29zeCgxMC4xMi4zKSwgaW9zKDEwLjMpKTsKIAogQGVuZApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Bvb2wuY3BwIGIvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Bvb2wuY3BwCmluZGV4IGFjYjlkNTYyNWVh
Li4yNjIwODYzOWZmNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJv
Y2Vzc1Bvb2wuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQb29s
LmNwcApAQCAtMTE1Nyw2ICsxMTU3LDE0IEBAIHZvaWQgV2ViUHJvY2Vzc1Bvb2w6OnNldENhbkhh
bmRsZUhUVFBTU2VydmVyVHJ1c3RFdmFsdWF0aW9uKGJvb2wgdmFsdWUpCiAgICAgfQogfQogCit2
b2lkIFdlYlByb2Nlc3NQb29sOjpwcmVjb25uZWN0VG9TZXJ2ZXIoY29uc3QgVVJMJiB1cmwpCit7
CisgICAgaWYgKCF1cmwuaXNWYWxpZCgpIHx8ICF1cmwucHJvdG9jb2xJc0luSFRUUEZhbWlseSgp
KQorICAgICAgICByZXR1cm47CisKKyAgICBlbnN1cmVOZXR3b3JrUHJvY2VzcygpLnNlbmQoTWVz
c2FnZXM6Ok5ldHdvcmtQcm9jZXNzOjpQcmVjb25uZWN0VG8odXJsLCBTdG9yZWRDcmVkZW50aWFs
c1BvbGljeTo6VXNlKSwgMCk7Cit9CisKIHZvaWQgV2ViUHJvY2Vzc1Bvb2w6OnJlZ2lzdGVyVVJM
U2NoZW1lQXNMb2NhbChjb25zdCBTdHJpbmcmIHVybFNjaGVtZSkKIHsKICAgICBtX3NjaGVtZXNU
b1JlZ2lzdGVyQXNMb2NhbC5hZGQodXJsU2NoZW1lKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQb29sLmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9X
ZWJQcm9jZXNzUG9vbC5oCmluZGV4IGUxOWY2ZGYyYWY4Li5hZDViMGM2N2E5NSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Bvb2wuaAorKysgYi9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUG9vbC5oCkBAIC0yMTYsNiArMjE2LDcgQEAgcHVi
bGljOgogICAgIHZvaWQgcmVnaXN0ZXJVUkxTY2hlbWVBc0Rpc3BsYXlJc29sYXRlZChjb25zdCBT
dHJpbmcmKTsKICAgICB2b2lkIHJlZ2lzdGVyVVJMU2NoZW1lQXNDT1JTRW5hYmxlZChjb25zdCBT
dHJpbmcmKTsKICAgICB2b2lkIHJlZ2lzdGVyVVJMU2NoZW1lQXNDYWNoZVBhcnRpdGlvbmVkKGNv
bnN0IFN0cmluZyYpOworICAgIHZvaWQgcHJlY29ubmVjdFRvU2VydmVyKGNvbnN0IFdlYkNvcmU6
OlVSTCYpOwogCiAgICAgVmlzaXRlZExpbmtTdG9yZSYgdmlzaXRlZExpbmtTdG9yZSgpIHsgcmV0
dXJuIG1fdmlzaXRlZExpbmtTdG9yZS5nZXQoKTsgfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L1dlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNlL1dlYktpdC9XZWJL
aXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCA2ODA3ZTkzY2RkYy4uYzI4Y2MxMWM1
ZWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBi
eHByb2oKKysrIGIvU291cmNlL1dlYktpdC9XZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJv
agpAQCAtMTM4MCw2ICsxMzgwLDggQEAKIAkJODM5OTAyMDMxQkU5QTAyQjAwMEYzNjUzIC8qIE5l
dHdvcmtMb2FkLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSA4Mzk5MDFGRTFCRTlBMDFCMDAwRjM2NTMgLyogTmV0d29ya0xvYWQuaCAqLzsgfTsKIAkJODM5
QTJGMzExRTIwNjc0NTAwMzkwNTdFIC8qIEhpZ2hQZXJmb3JtYW5jZUdyYXBoaWNzVXNhZ2VTYW1w
bGVyLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDgz
OUEyRjJGMUUyMDY3MzkwMDM5MDU3RSAvKiBIaWdoUGVyZm9ybWFuY2VHcmFwaGljc1VzYWdlU2Ft
cGxlci5jcHAgKi87IH07CiAJCTgzOUEyRjMyMUUyMDY3NDUwMDM5MDU3RSAvKiBIaWdoUGVyZm9y
bWFuY2VHcmFwaGljc1VzYWdlU2FtcGxlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gODM5QTJGMzAxRTIwNjczOTAwMzkwNTdFIC8qIEhpZ2hQZXJmb3Jt
YW5jZUdyYXBoaWNzVXNhZ2VTYW1wbGVyLmggKi87IH07CisJCTgzQTBFRDM0MUY3NDdDQ0QwMDMy
OTlFQiAvKiBQcmVjb25uZWN0VGFzay5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSA4M0EwRUQzMzFGNzQ3Q0M3MDAzMjk5RUIgLyogUHJlY29ubmVjdFRh
c2suY3BwICovOyB9OworCQk4M0EwRUQzNTFGNzQ3Q0NGMDAzMjk5RUIgLyogUHJlY29ubmVjdFRh
c2suaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDgzQTBF
RDMyMUY3NDdDQzYwMDMyOTlFQiAvKiBQcmVjb25uZWN0VGFzay5oICovOyB9OwogCQk4M0JEQ0NC
OTFBQzVGREI2MDAzRjY0NDEgLyogTmV0d29ya0NhY2hlU3RhdGlzdGljcy5jcHAgaW4gU291cmNl
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4M0JEQ0NCODFBQzVGREI2MDAz
RjY0NDEgLyogTmV0d29ya0NhY2hlU3RhdGlzdGljcy5jcHAgKi87IH07CiAJCTgzQkZBQzQyMUQ5
NjEzN0MwMDQzMzQ5MCAvKiBCbG9iRG93bmxvYWRDbGllbnQuaCBpbiBIZWFkZXJzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDgzQkZBQzQwMUQ5NjEzNjAwMDQzMzQ5MCAvKiBC
bG9iRG93bmxvYWRDbGllbnQuaCAqLzsgfTsKIAkJODNCRkFDNDMxRDk2MTM3QzAwNDMzNDkwIC8q
IEJsb2JEb3dubG9hZENsaWVudC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSA4M0JGQUM0MTFEOTYxMzYwMDA0MzM0OTAgLyogQmxvYkRvd25sb2FkQ2xp
ZW50LmNwcCAqLzsgfTsKQEAgLTM3MzMsNiArMzczNSw4IEBACiAJCTgzOTkwMUZGMUJFOUEwMUIw
MDBGMzY1MyAvKiBOZXR3b3JrTG9hZC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7
IG5hbWUgPSBOZXR3b3JrTG9hZC5jcHA7IHBhdGggPSBOZXR3b3JrUHJvY2Vzcy9OZXR3b3JrTG9h
ZC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTgzOUEyRjJGMUUyMDY3MzkwMDM5
MDU3RSAvKiBIaWdoUGVyZm9ybWFuY2VHcmFwaGljc1VzYWdlU2FtcGxlci5jcHAgKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBIaWdoUGVyZm9ybWFuY2VHcmFwaGljc1VzYWdl
U2FtcGxlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTgzOUEyRjMwMUUyMDY3
MzkwMDM5MDU3RSAvKiBIaWdoUGVyZm9ybWFuY2VHcmFwaGljc1VzYWdlU2FtcGxlci5oICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBIaWdoUGVyZm9ybWFuY2VHcmFwaGljc1VzYWdl
U2FtcGxlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk4M0EwRUQzMjFGNzQ3Q0M2
MDAzMjk5RUIgLyogUHJlY29ubmVjdFRhc2suaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBu
YW1lID0gUHJlY29ubmVjdFRhc2suaDsgcGF0aCA9IE5ldHdvcmtQcm9jZXNzL1ByZWNvbm5lY3RU
YXNrLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTgzQTBFRDMzMUY3NDdDQzcwMDMy
OTlFQiAvKiBQcmVjb25uZWN0VGFzay5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7
IG5hbWUgPSBQcmVjb25uZWN0VGFzay5jcHA7IHBhdGggPSBOZXR3b3JrUHJvY2Vzcy9QcmVjb25u
ZWN0VGFzay5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTgzQkRDQ0I4MUFDNUZE
QjYwMDNGNjQ0MSAvKiBOZXR3b3JrQ2FjaGVTdGF0aXN0aWNzLmNwcCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuY3BwLmNwcDsgcGF0aCA9IE5ldHdvcmtDYWNoZVN0YXRpc3RpY3MuY3BwOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwogCQk4M0JGQUM0MDFEOTYxMzYwMDA0MzM0OTAgLyogQmxvYkRv
d25sb2FkQ2xpZW50LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IEJsb2JEb3du
bG9hZENsaWVudC5oOyBwYXRoID0gTmV0d29ya1Byb2Nlc3MvRG93bmxvYWRzL0Jsb2JEb3dubG9h
ZENsaWVudC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk4M0JGQUM0MTFEOTYxMzYw
MDA0MzM0OTAgLyogQmxvYkRvd25sb2FkQ2xpZW50LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Y3BwLmNwcDsgbmFtZSA9IEJsb2JEb3dubG9hZENsaWVudC5jcHA7IHBhdGggPSBOZXR3b3JrUHJv
Y2Vzcy9Eb3dubG9hZHMvQmxvYkRvd25sb2FkQ2xpZW50LmNwcDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKQEAgLTYxMTUsNiArNjExOSw4IEBACiAJCQkJNUMwQjE3N0YxRTdDODg2NzAwRTkx
MjNDIC8qIE5ldHdvcmtTb2NrZXRTdHJlYW0ubWVzc2FnZXMuaW4gKi8sCiAJCQkJNDYyMTA3RDcx
RjM4REJEMzAwREQ3ODEwIC8qIFBpbmdMb2FkLmNwcCAqLywKIAkJCQk1Q0U4NUIxRjFDODhFNjQz
MDA3MEJGQ0UgLyogUGluZ0xvYWQuaCAqLywKKwkJCQk4M0EwRUQzMzFGNzQ3Q0M3MDAzMjk5RUIg
LyogUHJlY29ubmVjdFRhc2suY3BwICovLAorCQkJCTgzQTBFRDMyMUY3NDdDQzYwMDMyOTlFQiAv
KiBQcmVjb25uZWN0VGFzay5oICovLAogCQkJCUUxQjc4NDcwMTYzRjI0NjkwMDA3QjY5MiAvKiBS
ZW1vdGVOZXR3b3JraW5nQ29udGV4dC5oICovLAogCQkJKTsKIAkJCW5hbWUgPSBOZXR3b3JrUHJv
Y2VzczsKQEAgLTg3MDksNiArODcxNSw3IEBACiAJCQkJMUE0QTlGMzMxMkI4NDRFMjAwOEZFOTg0
IC8qIFBsdWdpblF1aXJrcy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJN0NENjIyNzgxNzM5RDg2MzAw
NUJEN0ZGIC8qIFBsdWdpblNhbmRib3hQcm9maWxlLmggaW4gSGVhZGVycyAqLywKIAkJCQkxQTZG
QjdBRjExRTY0QjY4MDBEQjEzNzEgLyogUGx1Z2luVmlldy5oIGluIEhlYWRlcnMgKi8sCisJCQkJ
ODNBMEVEMzUxRjc0N0NDRjAwMzI5OUVCIC8qIFByZWNvbm5lY3RUYXNrLmggaW4gSGVhZGVycyAq
LywKIAkJCQlFMUNDMUI5MDEyRDdFQURGMDA2MjU4MzggLyogUHJpbnRJbmZvLmggaW4gSGVhZGVy
cyAqLywKIAkJCQk4NkY5NTM2NTE4RkY1OEY1MDAxREIyRUYgLyogUHJvY2Vzc0Fzc2VydGlvbi5o
IGluIEhlYWRlcnMgKi8sCiAJCQkJQkMxQTdDNTgxMTM2RTE5QzAwRkI3MTY3IC8qIFByb2Nlc3NM
YXVuY2hlci5oIGluIEhlYWRlcnMgKi8sCkBAIC0xMDI5MCw2ICsxMDI5Nyw3IEBACiAJCQkJN0NE
NjIyNzcxNzM5RDg2MzAwNUJEN0ZGIC8qIFBsdWdpblNhbmRib3hQcm9maWxlLm1tIGluIFNvdXJj
ZXMgKi8sCiAJCQkJQkM4Mjg0NEQxNkI1MDgxQzAwQTI3OEZFIC8qIFBsdWdpblNlcnZpY2VFbnRy
eVBvaW50Lm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJMUE2RkI3QUUxMUU2NEI2ODAwREIxMzcxIC8q
IFBsdWdpblZpZXcuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJODNBMEVEMzQxRjc0N0NDRDAwMzI5
OUVCIC8qIFByZWNvbm5lY3RUYXNrLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUUxOEM5MkY0MTJE
QjlFNzEwMENGMkFFQiAvKiBQcmludEluZm8uY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJRTFDQzFC
OTExMkQ3RUFERjAwNjI1ODM4IC8qIFByaW50SW5mb01hYy5tbSBpbiBTb3VyY2VzICovLAogCQkJ
CTM3NzE2QTVBMTk1QjkxMDUwMEVFOEIxQiAvKiBQcm9jZXNzQXNzZXJ0aW9uLmNwcCBpbiBTb3Vy
Y2VzICovLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL05ldHdvcmsvTmV0
d29ya1Byb2Nlc3NDb25uZWN0aW9uLmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9OZXR3
b3JrL05ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbi5jcHAKaW5kZXggOTYyNGUyOTY0YzcuLjM4ZDUz
YzljMjlkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvTmV0d29yay9OZXR3
b3JrUHJvY2Vzc0Nvbm5lY3Rpb24uY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9O
ZXR3b3JrL05ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbi5jcHAKQEAgLTE0MCw2ICsxNDAsMTEgQEAg
dm9pZCBOZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb246OmRpZEZpbmlzaFBpbmdMb2FkKHVpbnQ2NF90
IHBpbmdMb2FkSWRlbnRpZmllciwgUmUKICAgICBXZWJQcm9jZXNzOjpzaW5nbGV0b24oKS53ZWJM
b2FkZXJTdHJhdGVneSgpLmRpZEZpbmlzaFBpbmdMb2FkKHBpbmdMb2FkSWRlbnRpZmllciwgV1RG
TW92ZShlcnJvcikpOwogfQogCit2b2lkIE5ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbjo6ZGlkRmlu
aXNoUHJlY29ubmVjdGlvbih1aW50NjRfdCBwcmVjb25uZWN0aW9uSWRlbnRpZmllciwgUmVzb3Vy
Y2VFcnJvciYmIGVycm9yKQoreworICAgIFdlYlByb2Nlc3M6OnNpbmdsZXRvbigpLndlYkxvYWRl
clN0cmF0ZWd5KCkuZGlkRmluaXNoUHJlY29ubmVjdGlvbihwcmVjb25uZWN0aW9uSWRlbnRpZmll
ciwgV1RGTW92ZShlcnJvcikpOworfQorCiAjaWYgRU5BQkxFKFNIQVJFQUJMRV9SRVNPVVJDRSkK
IHZvaWQgTmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uOjpkaWRDYWNoZVJlc291cmNlKGNvbnN0IFJl
c291cmNlUmVxdWVzdCYgcmVxdWVzdCwgY29uc3QgU2hhcmVhYmxlUmVzb3VyY2U6OkhhbmRsZSYg
aGFuZGxlLCBQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQpCiB7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvTmV0d29yay9OZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb24uaCBiL1Nv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbi5o
CmluZGV4IGM1MzQ0ZWE2NWQwLi5kZWVhN2IwZmQ4MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uLmgKKysrIGIvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uLmgK
QEAgLTc0LDYgKzc0LDcgQEAgcHJpdmF0ZToKIAogICAgIHZvaWQgZGlkV3JpdGVCbG9ic1RvVGVt
cG9yYXJ5RmlsZXModWludDY0X3QgcmVxdWVzdElkZW50aWZpZXIsIGNvbnN0IFZlY3RvcjxTdHJp
bmc+JiBmaWxlbmFtZXMpOwogICAgIHZvaWQgZGlkRmluaXNoUGluZ0xvYWQodWludDY0X3QgcGlu
Z0xvYWRJZGVudGlmaWVyLCBXZWJDb3JlOjpSZXNvdXJjZUVycm9yJiYpOworICAgIHZvaWQgZGlk
RmluaXNoUHJlY29ubmVjdGlvbih1aW50NjRfdCBwcmVjb25uZWN0aW9uSWRlbnRpZmllciwgV2Vi
Q29yZTo6UmVzb3VyY2VFcnJvciYmKTsKIAogI2lmIEVOQUJMRShTSEFSRUFCTEVfUkVTT1VSQ0Up
CiAgICAgLy8gTWVzc2FnZSBoYW5kbGVycy4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbi5tZXNzYWdlcy5pbiBiL1Nv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbi5t
ZXNzYWdlcy5pbgppbmRleCA4M2VmMmU2MjI4OS4uMjg3MzYzZTczMWUgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbi5t
ZXNzYWdlcy5pbgorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvTmV0d29yay9OZXR3b3Jr
UHJvY2Vzc0Nvbm5lY3Rpb24ubWVzc2FnZXMuaW4KQEAgLTI4LDQgKzI4LDUgQEAgbWVzc2FnZXMg
LT4gTmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uIExlZ2FjeVJlY2VpdmVyIHsKIAogICAgIERpZFdy
aXRlQmxvYnNUb1RlbXBvcmFyeUZpbGVzKHVpbnQ2NF90IHJlcXVlc3RJZGVudGlmaWVyLCBWZWN0
b3I8U3RyaW5nPiBmaWxlbmFtZXMpCiAgICAgRGlkRmluaXNoUGluZ0xvYWQodWludDY0X3QgcGlu
Z0xvYWRJZGVudGlmaWVyLCBXZWJDb3JlOjpSZXNvdXJjZUVycm9yIGVycm9yKQorICAgIERpZEZp
bmlzaFByZWNvbm5lY3Rpb24odWludDY0X3QgcHJlY29ubmVjdGlvbklkZW50aWZpZXIsIFdlYkNv
cmU6OlJlc291cmNlRXJyb3IgZXJyb3IpCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvTmV0d29yay9XZWJMb2FkZXJTdHJhdGVneS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvTmV0d29yay9XZWJMb2FkZXJTdHJhdGVneS5jcHAKaW5kZXggZWE3YjE3YTNkZWIu
LmJiODEwZDA2OWYwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvTmV0d29y
ay9XZWJMb2FkZXJTdHJhdGVneS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL05l
dHdvcmsvV2ViTG9hZGVyU3RyYXRlZ3kuY3BwCkBAIC0zNTYsNiArMzU2LDEwIEBAIHZvaWQgV2Vi
TG9hZGVyU3RyYXRlZ3k6Om5ldHdvcmtQcm9jZXNzQ3Jhc2hlZCgpCiAgICAgYXV0byBwaW5nTG9h
ZENvbXBsZXRpb25IYW5kbGVycyA9IFdURk1vdmUobV9waW5nTG9hZENvbXBsZXRpb25IYW5kbGVy
cyk7CiAgICAgZm9yIChhdXRvJiBwaW5nTG9hZENvbXBsZXRpb25IYW5kbGVyIDogcGluZ0xvYWRD
b21wbGV0aW9uSGFuZGxlcnMudmFsdWVzKCkpCiAgICAgICAgIHBpbmdMb2FkQ29tcGxldGlvbkhh
bmRsZXIoaW50ZXJuYWxFcnJvcihVUkwoKSkpOworCisgICAgYXV0byBwcmVjb25uZWN0Q29tcGxl
dGlvbkhhbmRsZXJzID0gV1RGTW92ZShtX3ByZWNvbm5lY3RDb21wbGV0aW9uSGFuZGxlcnMpOwor
ICAgIGZvciAoYXV0byYgcHJlY29ubmVjdENvbXBsZXRpb25IYW5kbGVyIDogcHJlY29ubmVjdENv
bXBsZXRpb25IYW5kbGVycy52YWx1ZXMoKSkKKyAgICAgICAgcHJlY29ubmVjdENvbXBsZXRpb25I
YW5kbGVyKGludGVybmFsRXJyb3IoVVJMKCkpKTsKIH0KIAogdm9pZCBXZWJMb2FkZXJTdHJhdGVn
eTo6bG9hZFJlc291cmNlU3luY2hyb25vdXNseShOZXR3b3JraW5nQ29udGV4dCogY29udGV4dCwg
dW5zaWduZWQgbG9uZyByZXNvdXJjZUxvYWRJZGVudGlmaWVyLCBjb25zdCBSZXNvdXJjZVJlcXVl
c3QmIHJlcXVlc3QsIFN0b3JlZENyZWRlbnRpYWxzUG9saWN5IHN0b3JlZENyZWRlbnRpYWxzUG9s
aWN5LCBDbGllbnRDcmVkZW50aWFsUG9saWN5IGNsaWVudENyZWRlbnRpYWxQb2xpY3ksIFJlc291
cmNlRXJyb3ImIGVycm9yLCBSZXNvdXJjZVJlc3BvbnNlJiByZXNwb25zZSwgVmVjdG9yPGNoYXI+
JiBkYXRhKQpAQCAtMzkyLDcgKzM5Niw3IEBAIHZvaWQgV2ViTG9hZGVyU3RyYXRlZ3k6OmxvYWRS
ZXNvdXJjZVN5bmNocm9ub3VzbHkoTmV0d29ya2luZ0NvbnRleHQqIGNvbnRleHQsIHVuCiAgICAg
fQogfQogCi1zdGF0aWMgdWludDY0X3QgZ2VuZXJhdGVQaW5nTG9hZElkZW50aWZpZXIoKQorc3Rh
dGljIHVpbnQ2NF90IGdlbmVyYXRlTG9hZElkZW50aWZpZXIoKQogewogICAgIHN0YXRpYyB1aW50
NjRfdCBpZGVudGlmaWVyID0gMDsKICAgICByZXR1cm4gKytpZGVudGlmaWVyOwpAQCAtNDIyLDcg
KzQyNiw3IEBAIHZvaWQgV2ViTG9hZGVyU3RyYXRlZ3k6OnN0YXJ0UGluZ0xvYWQoRnJhbWUmIGZy
YW1lLCBSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QsIGNvCiAgICAgfQogICAgIAogICAgIE5ldHdv
cmtSZXNvdXJjZUxvYWRQYXJhbWV0ZXJzIGxvYWRQYXJhbWV0ZXJzOwotICAgIGxvYWRQYXJhbWV0
ZXJzLmlkZW50aWZpZXIgPSBnZW5lcmF0ZVBpbmdMb2FkSWRlbnRpZmllcigpOworICAgIGxvYWRQ
YXJhbWV0ZXJzLmlkZW50aWZpZXIgPSBnZW5lcmF0ZUxvYWRJZGVudGlmaWVyKCk7CiAgICAgbG9h
ZFBhcmFtZXRlcnMucmVxdWVzdCA9IHJlcXVlc3Q7CiAgICAgbG9hZFBhcmFtZXRlcnMuc291cmNl
T3JpZ2luID0gJmRvY3VtZW50LT5zZWN1cml0eU9yaWdpbigpOwogICAgIGxvYWRQYXJhbWV0ZXJz
LnNlc3Npb25JRCA9IHdlYlBhZ2UgPyB3ZWJQYWdlLT5zZXNzaW9uSUQoKSA6IFBBTDo6U2Vzc2lv
bklEOjpkZWZhdWx0U2Vzc2lvbklEKCk7CkBAIC00NTksNiArNDYzLDIwIEBAIHZvaWQgV2ViTG9h
ZGVyU3RyYXRlZ3k6OmRpZEZpbmlzaFBpbmdMb2FkKHVpbnQ2NF90IHBpbmdMb2FkSWRlbnRpZmll
ciwgUmVzb3VyY2VFCiAgICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKFdURk1vdmUoZXJyb3IpKTsK
IH0KIAordm9pZCBXZWJMb2FkZXJTdHJhdGVneTo6cHJlY29ubmVjdFRvKGNvbnN0IFdlYkNvcmU6
OlVSTCYgdXJsLCBTdG9yZWRDcmVkZW50aWFsc1BvbGljeSBzdG9yZWRDcmVkZW50aWFsc1BvbGlj
eSwgUHJlY29ubmVjdENvbXBsZXRpb25IYW5kbGVyJiYgY29tcGxldGlvbkhhbmRsZXIpCit7Cisg
ICAgdWludDY0X3QgcHJlY29ubmVjdGlvbklkZW50aWZpZXIgPSBnZW5lcmF0ZUxvYWRJZGVudGlm
aWVyKCk7CisgICAgYXV0byBhZGRSZXN1bHQgPSBtX3ByZWNvbm5lY3RDb21wbGV0aW9uSGFuZGxl
cnMuYWRkKHByZWNvbm5lY3Rpb25JZGVudGlmaWVyLCBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVy
KSk7CisgICAgQVNTRVJUX1VOVVNFRChhZGRSZXN1bHQsIGFkZFJlc3VsdC5pc05ld0VudHJ5KTsK
KyAgICBXZWJQcm9jZXNzOjpzaW5nbGV0b24oKS5uZXR3b3JrQ29ubmVjdGlvbigpLmNvbm5lY3Rp
b24oKS5zZW5kKE1lc3NhZ2VzOjpOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzczo6UHJlY29u
bmVjdFRvKHByZWNvbm5lY3Rpb25JZGVudGlmaWVyLCB1cmwsIHN0b3JlZENyZWRlbnRpYWxzUG9s
aWN5KSwgMCk7Cit9CisKK3ZvaWQgV2ViTG9hZGVyU3RyYXRlZ3k6OmRpZEZpbmlzaFByZWNvbm5l
Y3Rpb24odWludDY0X3QgcHJlY29ubmVjdGlvbklkZW50aWZpZXIsIFJlc291cmNlRXJyb3ImJiBl
cnJvcikKK3sKKyAgICBpZiAoYXV0byBjb21wbGV0aW9uSGFuZGxlciA9IG1fcHJlY29ubmVjdENv
bXBsZXRpb25IYW5kbGVycy50YWtlKHByZWNvbm5lY3Rpb25JZGVudGlmaWVyKSkKKyAgICAgICAg
Y29tcGxldGlvbkhhbmRsZXIoV1RGTW92ZShlcnJvcikpOworfQorCiB2b2lkIFdlYkxvYWRlclN0
cmF0ZWd5OjpzdG9yZURlcml2ZWREYXRhVG9DYWNoZShjb25zdCBTSEExOjpEaWdlc3QmIGJvZHlI
YXNoLCBjb25zdCBTdHJpbmcmIHR5cGUsIGNvbnN0IFN0cmluZyYgcGFydGl0aW9uLCBXZWJDb3Jl
OjpTaGFyZWRCdWZmZXImIGRhdGEpCiB7CiAjaWYgRU5BQkxFKE5FVFdPUktfQ0FDSEUpCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvTmV0d29yay9XZWJMb2FkZXJTdHJhdGVn
eS5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL05ldHdvcmsvV2ViTG9hZGVyU3RyYXRlZ3ku
aAppbmRleCA1NzMwMjhlNWE3Yi4uNDFmZmJlNGE0MTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9OZXR3b3JrL1dlYkxvYWRlclN0cmF0ZWd5LmgKKysrIGIvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL05ldHdvcmsvV2ViTG9hZGVyU3RyYXRlZ3kuaApAQCAtNjIsNiArNjIs
OSBAQCBwdWJsaWM6CiAgICAgdm9pZCBzdGFydFBpbmdMb2FkKFdlYkNvcmU6OkZyYW1lJiwgV2Vi
Q29yZTo6UmVzb3VyY2VSZXF1ZXN0JiwgY29uc3QgV2ViQ29yZTo6SFRUUEhlYWRlck1hcCYgb3Jp
Z2luYWxSZXF1ZXN0SGVhZGVycywgY29uc3QgV2ViQ29yZTo6RmV0Y2hPcHRpb25zJiwgUGluZ0xv
YWRDb21wbGV0aW9uSGFuZGxlciYmKSBmaW5hbDsKICAgICB2b2lkIGRpZEZpbmlzaFBpbmdMb2Fk
KHVpbnQ2NF90IHBpbmdMb2FkSWRlbnRpZmllciwgV2ViQ29yZTo6UmVzb3VyY2VFcnJvciYmKTsK
IAorICAgIHZvaWQgcHJlY29ubmVjdFRvKGNvbnN0IFdlYkNvcmU6OlVSTCYsIFdlYkNvcmU6OlN0
b3JlZENyZWRlbnRpYWxzUG9saWN5LCBQcmVjb25uZWN0Q29tcGxldGlvbkhhbmRsZXImJikgZmlu
YWw7CisgICAgdm9pZCBkaWRGaW5pc2hQcmVjb25uZWN0aW9uKHVpbnQ2NF90IHByZWNvbm5lY3Rp
b25JZGVudGlmaWVyLCBXZWJDb3JlOjpSZXNvdXJjZUVycm9yJiYpOworCiAgICAgdm9pZCBzdG9y
ZURlcml2ZWREYXRhVG9DYWNoZShjb25zdCBTSEExOjpEaWdlc3QmIGJvZHlIYXNoLCBjb25zdCBT
dHJpbmcmIHR5cGUsIGNvbnN0IFN0cmluZyYgcGFydGl0aW9uLCBXZWJDb3JlOjpTaGFyZWRCdWZm
ZXImKSBmaW5hbDsKIAogICAgIHZvaWQgc2V0Q2FwdHVyZUV4dHJhTmV0d29ya0xvYWRNZXRyaWNz
RW5hYmxlZChib29sKSBmaW5hbDsKQEAgLTg2LDYgKzg5LDcgQEAgcHJpdmF0ZToKICAgICBIYXNo
TWFwPHVuc2lnbmVkIGxvbmcsIFJlZlB0cjxXZWJSZXNvdXJjZUxvYWRlcj4+IG1fd2ViUmVzb3Vy
Y2VMb2FkZXJzOwogICAgIEhhc2hNYXA8dW5zaWduZWQgbG9uZywgV2ViVVJMU2NoZW1lVGFza1By
b3h5Kj4gbV91cmxTY2hlbWVUYXNrczsKICAgICBIYXNoTWFwPHVuc2lnbmVkIGxvbmcsIFBpbmdM
b2FkQ29tcGxldGlvbkhhbmRsZXI+IG1fcGluZ0xvYWRDb21wbGV0aW9uSGFuZGxlcnM7CisgICAg
SGFzaE1hcDx1bnNpZ25lZCBsb25nLCBQcmVjb25uZWN0Q29tcGxldGlvbkhhbmRsZXI+IG1fcHJl
Y29ubmVjdENvbXBsZXRpb25IYW5kbGVyczsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYktpdApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAg
Yi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcAppbmRleCA4MjYx
ZTMzNDU4Mi4uYThkZWU2ZjViN2MgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9XZWJQYWdlL1dlYlBhZ2UuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQ
YWdlL1dlYlBhZ2UuY3BwCkBAIC0zMDkwLDYgKzMwOTAsNyBAQCB2b2lkIFdlYlBhZ2U6OnVwZGF0
ZVByZWZlcmVuY2VzKGNvbnN0IFdlYlByZWZlcmVuY2VzU3RvcmUmIHN0b3JlKQogICAgIHNldHRp
bmdzLnNldFBhZ2luYXRlRHVyaW5nTGF5b3V0RW5hYmxlZChzdG9yZS5nZXRCb29sVmFsdWVGb3JL
ZXkoV2ViUHJlZmVyZW5jZXNLZXk6OnBhZ2luYXRlRHVyaW5nTGF5b3V0RW5hYmxlZEtleSgpKSk7
CiAgICAgc2V0dGluZ3Muc2V0RE9NUGFzdGVBbGxvd2VkKHN0b3JlLmdldEJvb2xWYWx1ZUZvcktl
eShXZWJQcmVmZXJlbmNlc0tleTo6ZG9tUGFzdGVBbGxvd2VkS2V5KCkpKTsKICAgICBzZXR0aW5n
cy5zZXRKYXZhU2NyaXB0Q2FuQWNjZXNzQ2xpcGJvYXJkKHN0b3JlLmdldEJvb2xWYWx1ZUZvcktl
eShXZWJQcmVmZXJlbmNlc0tleTo6amF2YVNjcmlwdENhbkFjY2Vzc0NsaXBib2FyZEtleSgpKSk7
CisgICAgc2V0dGluZ3Muc2V0TGlua1ByZWNvbm5lY3RFbmFibGVkKHN0b3JlLmdldEJvb2xWYWx1
ZUZvcktleShXZWJQcmVmZXJlbmNlc0tleTo6bGlua1ByZWNvbm5lY3RLZXkoKSkpOwogICAgIHNl
dHRpbmdzLnNldFNob3VsZFByaW50QmFja2dyb3VuZHMoc3RvcmUuZ2V0Qm9vbFZhbHVlRm9yS2V5
KFdlYlByZWZlcmVuY2VzS2V5OjpzaG91bGRQcmludEJhY2tncm91bmRzS2V5KCkpKTsKICAgICBz
ZXR0aW5ncy5zZXRXZWJTZWN1cml0eUVuYWJsZWQoc3RvcmUuZ2V0Qm9vbFZhbHVlRm9yS2V5KFdl
YlByZWZlcmVuY2VzS2V5Ojp3ZWJTZWN1cml0eUVuYWJsZWRLZXkoKSkpOwogICAgIHNldHRpbmdz
LnNldEFsbG93VW5pdmVyc2FsQWNjZXNzRnJvbUZpbGVVUkxzKHN0b3JlLmdldEJvb2xWYWx1ZUZv
cktleShXZWJQcmVmZXJlbmNlc0tleTo6YWxsb3dVbml2ZXJzYWxBY2Nlc3NGcm9tRmlsZVVSTHNL
ZXkoKSkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jb25maWcuaCBiL1NvdXJjZS9XZWJL
aXQvY29uZmlnLmgKaW5kZXggZTg2N2Y0ODdjNzEuLmNhZjRmZDc3YmNhIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L2NvbmZpZy5oCisrKyBiL1NvdXJjZS9XZWJLaXQvY29uZmlnLmgKQEAgLTg4
LDYgKzg4LDEyIEBACiAjZW5kaWYKICNlbmRpZgogCisjaWYgVVNFKE5FVFdPUktfU0VTU0lPTikg
JiYgKChQTEFURk9STShNQUMpICYmIF9fTUFDX09TX1hfVkVSU0lPTl9NSU5fUkVRVUlSRUQgPj0g
MTAxMzAwKSB8fCAoUExBVEZPUk0oSU9TKSAmJiBfX0lQSE9ORV9PU19WRVJTSU9OX01JTl9SRVFV
SVJFRCA+PSAxMTAwMDApKQorI2lmbmRlZiBFTkFCTEVfU0VSVkVSX1BSRUNPTk5FQ1QKKyNkZWZp
bmUgRU5BQkxFX1NFUlZFUl9QUkVDT05ORUNUIDEKKyNlbmRpZgorI2VuZGlmCisKICNpZm5kZWYg
SEFWRV9TRUNfQUNDRVNTX0NPTlRST0wKICNpZiBQTEFURk9STShJT1MpIHx8IFBMQVRGT1JNKE1B
QykKICNkZWZpbmUgSEFWRV9TRUNfQUNDRVNTX0NPTlRST0wgMQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdExlZ2FjeS9XZWJDb3JlU3VwcG9ydC9XZWJSZXNvdXJjZUxvYWRTY2hlZHVsZXIuY3Bw
IGIvU291cmNlL1dlYktpdExlZ2FjeS9XZWJDb3JlU3VwcG9ydC9XZWJSZXNvdXJjZUxvYWRTY2hl
ZHVsZXIuY3BwCmluZGV4IDRkMjk4NWQxYTQzLi4zOGM5YzMyNzI5ZCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdExlZ2FjeS9XZWJDb3JlU3VwcG9ydC9XZWJSZXNvdXJjZUxvYWRTY2hlZHVsZXIu
Y3BwCisrKyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvV2ViQ29yZVN1cHBvcnQvV2ViUmVzb3VyY2VM
b2FkU2NoZWR1bGVyLmNwcApAQCAtMzY5LDMgKzM2OSw3IEBAIHZvaWQgV2ViUmVzb3VyY2VMb2Fk
U2NoZWR1bGVyOjpzdGFydFBpbmdMb2FkKEZyYW1lJiBmcmFtZSwgUmVzb3VyY2VSZXF1ZXN0JiBy
ZXF1CiAgICAgbmV3IFBpbmdIYW5kbGUoZnJhbWUubG9hZGVyKCkubmV0d29ya2luZ0NvbnRleHQo
KSwgcmVxdWVzdCwgb3B0aW9ucy5jcmVkZW50aWFscyAhPSBGZXRjaE9wdGlvbnM6OkNyZWRlbnRp
YWxzOjpPbWl0LCBQaW5nSGFuZGxlOjpVc2VzQXN5bmNDYWxsYmFja3M6Ok5vLCBvcHRpb25zLnJl
ZGlyZWN0ID09IEZldGNoT3B0aW9uczo6UmVkaXJlY3Q6OkZvbGxvdywgV1RGTW92ZShjb21wbGV0
aW9uSGFuZGxlcikpOwogfQogCit2b2lkIFdlYlJlc291cmNlTG9hZFNjaGVkdWxlcjo6cHJlY29u
bmVjdFRvKGNvbnN0IFVSTCYsIFN0b3JlZENyZWRlbnRpYWxzUG9saWN5LCBQcmVjb25uZWN0Q29t
cGxldGlvbkhhbmRsZXImJikKK3sKK30KKwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdExlZ2Fj
eS9XZWJDb3JlU3VwcG9ydC9XZWJSZXNvdXJjZUxvYWRTY2hlZHVsZXIuaCBiL1NvdXJjZS9XZWJL
aXRMZWdhY3kvV2ViQ29yZVN1cHBvcnQvV2ViUmVzb3VyY2VMb2FkU2NoZWR1bGVyLmgKaW5kZXgg
MGUwYzJkZTU3N2MuLmJlZjZkODZhMjY2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0TGVnYWN5
L1dlYkNvcmVTdXBwb3J0L1dlYlJlc291cmNlTG9hZFNjaGVkdWxlci5oCisrKyBiL1NvdXJjZS9X
ZWJLaXRMZWdhY3kvV2ViQ29yZVN1cHBvcnQvV2ViUmVzb3VyY2VMb2FkU2NoZWR1bGVyLmgKQEAg
LTYxLDYgKzYxLDggQEAgcHVibGljOgogCiAgICAgdm9pZCBzdGFydFBpbmdMb2FkKFdlYkNvcmU6
OkZyYW1lJiwgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiwgY29uc3QgV2ViQ29yZTo6SFRUUEhl
YWRlck1hcCYsIGNvbnN0IFdlYkNvcmU6OkZldGNoT3B0aW9ucyYsIFBpbmdMb2FkQ29tcGxldGlv
bkhhbmRsZXImJikgZmluYWw7CiAKKyAgICB2b2lkIHByZWNvbm5lY3RUbyhjb25zdCBXZWJDb3Jl
OjpVUkwmLCBXZWJDb3JlOjpTdG9yZWRDcmVkZW50aWFsc1BvbGljeSwgUHJlY29ubmVjdENvbXBs
ZXRpb25IYW5kbGVyJiYpIGZpbmFsOworCiAgICAgdm9pZCBzdG9yZURlcml2ZWREYXRhVG9DYWNo
ZShjb25zdCBTSEExOjpEaWdlc3QmLCBjb25zdCBTdHJpbmcmLCBjb25zdCBTdHJpbmcmLCBXZWJD
b3JlOjpTaGFyZWRCdWZmZXImKSBmaW5hbCB7IH0KIAogICAgIHZvaWQgc2V0Q2FwdHVyZUV4dHJh
TmV0d29ya0xvYWRNZXRyaWNzRW5hYmxlZChib29sKSBmaW5hbCB7IH0K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>321861</attachid>
            <date>2017-09-26 13:39:48 -0700</date>
            <delta_ts>2017-09-26 14:14:06 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-177474-20170926133948.patch</filename>
            <type>text/plain</type>
            <size>68713</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjIyNTE5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMzMwOGU0MzYxNjllMDJh
NzNhNmY5MTJjN2E3Yjc1YTQyNjI2Njg3NC4uNGZkNjM1ZDI1OWE2Nzk4YWJmMGY1NTU4NDE0ZDAy
NTRkYmNiNGRhNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSw1ICsxLDQ2IEBACiAyMDE3LTA5LTI2ICBDaHJp
cyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CiAKKyAgICAgICAgQWRkIHN1cHBvcnQgZm9yIDxs
aW5rIHJlbD1wcmVjb25uZWN0PgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9MTc3NDc0CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS8zMzE0MTM4MD4KKwor
ICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGQgc3VwcG9y
dCBmb3IgPGxpbmsgcmVsPXByZWNvbm5lY3Q+OgorICAgICAgICAtIGh0dHBzOi8vdzNjLmdpdGh1
Yi5pby9yZXNvdXJjZS1oaW50cy8jcHJlY29ubmVjdAorCisgICAgICAgIEl0IGlzIGN1cnJlbnRs
eSBvbmx5IGVuYWJsZWQgZm9yIFdLMiBvbiBNYWNPUyBIaWdoIFNpZXJyYSsKKyAgICAgICAgYW5k
IGlPUyAxMSsuCisKKyAgICAgICAgVGVzdDogaHR0cC90ZXN0cy9wcmVsb2FkL2xpbmstcmVsLXBy
ZWNvbm5lY3QuaHRtbAorCisgICAgICAgICogaHRtbC9ET01Ub2tlbkxpc3QuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6RE9NVG9rZW5MaXN0OjpET01Ub2tlbkxpc3QpOgorICAgICAgICAoV2ViQ29y
ZTo6RE9NVG9rZW5MaXN0OjpzdXBwb3J0cyk6CisgICAgICAgICogaHRtbC9ET01Ub2tlbkxpc3Qu
aDoKKyAgICAgICAgKFdlYkNvcmU6OkRPTVRva2VuTGlzdDo6RE9NVG9rZW5MaXN0KToKKyAgICAg
ICAgKiBodG1sL0hUTUxBbmNob3JFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxB
bmNob3JFbGVtZW50OjpyZWxMaXN0KToKKyAgICAgICAgKiBodG1sL0hUTUxJRnJhbWVFbGVtZW50
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxJRnJhbWVFbGVtZW50OjpzYW5kYm94KToKKyAg
ICAgICAgKiBodG1sL0hUTUxMaW5rRWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpIVE1M
TGlua0VsZW1lbnQ6OnBhcnNlQXR0cmlidXRlKToKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxMaW5r
RWxlbWVudDo6cmVsTGlzdCk6CisgICAgICAgICogaHRtbC9MaW5rUmVsQXR0cmlidXRlLmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OkxpbmtSZWxBdHRyaWJ1dGU6OkxpbmtSZWxBdHRyaWJ1dGUpOgor
ICAgICAgICAoV2ViQ29yZTo6TGlua1JlbEF0dHJpYnV0ZTo6aXNTdXBwb3J0ZWQpOgorICAgICAg
ICAqIGh0bWwvTGlua1JlbEF0dHJpYnV0ZS5oOgorICAgICAgICAqIGh0bWwvcGFyc2VyL0hUTUxQ
cmVsb2FkU2Nhbm5lci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpUb2tlblByZWxvYWRTY2FubmVy
OjpTdGFydFRhZ1NjYW5uZXI6OnByb2Nlc3NBdHRyaWJ1dGUpOgorICAgICAgICAqIGxvYWRlci9M
aW5rTG9hZGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkxpbmtMb2FkZXI6OmxvYWRMaW5rc0Zy
b21IZWFkZXIpOgorICAgICAgICAoV2ViQ29yZTo6TGlua0xvYWRlcjo6bG9hZExpbmspOgorICAg
ICAgICAqIGxvYWRlci9Mb2FkZXJTdHJhdGVneS5oOgorICAgICAgICAqIHBhZ2UvU2V0dGluZ3Mu
aW46CisgICAgICAgICogcGxhdGZvcm0vbmV0d29yay9TdG9yZWRDcmVkZW50aWFsc1BvbGljeS5o
OgorCisyMDE3LTA5LTI2ICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKICAgICAg
ICAgTWFrZSBTdG9yZWRDcmVkZW50aWFscyBhbiBlbnVtIGNsYXNzIGFuZCByZW5hbWUgaXRzIGhl
YWRlcgogICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTc3
NDU1CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1BBTC9DaGFuZ2VMb2cgYi9Tb3VyY2Uv
V2ViQ29yZS9QQUwvQ2hhbmdlTG9nCmluZGV4IGQ2ZmI1NGMyYzhhYzcwMDljZTdkOTc0NjZlZWI5
NWI2MWVhYWNjNTYuLjE1YTVkZGJhYjgyMWM5Zjg3OThlZjdhZWZlOTU5ZjU3MWU5MTdmMzAgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1BBTC9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNv
cmUvUEFML0NoYW5nZUxvZwpAQCAtMSwzICsxLDE1IEBACisyMDE3LTA5LTI2ICBDaHJpcyBEdW1l
eiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgQWRkIHN1cHBvcnQgZm9yIDxsaW5rIHJl
bD1wcmVjb25uZWN0PgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9MTc3NDc0CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS8zMzE0MTM4MD4KKworICAgICAg
ICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGQgbmV3IENGTmV0d29y
ayBTUEkgZm9yIHByZWNvbm5lY3RpbmcuCisKKyAgICAgICAgKiBwYWwvc3BpL2NmL0NGTmV0d29y
a1NQSS5oOgorCiAyMDE3LTA5LTI2ICBZb3NoaWFraSBKaXRzdWthd2EgIDxZb3NoaWFraS5KaXRz
dWthd2FAc29ueS5jb20+CiAKICAgICAgICAgW1BBTF0gTW92ZSBDbG9jayBpbnRvIFBBTApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxv
ZwppbmRleCAxNDQyOWI0NjBkNjA1NTU4MjQ3NTg2OWJmM2ZiZmI3NmUwNTMxN2RiLi5lOWYyOTA3
ZGVlMjkxNTcwMWY4ZDE0ZWY4MDI4ZGQ3ZDQ5ZDI5NTY4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwpAQCAtMSwzICsxLDcx
IEBACisyMDE3LTA5LTI2ICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAg
ICAgQWRkIHN1cHBvcnQgZm9yIDxsaW5rIHJlbD1wcmVjb25uZWN0PgorICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTc3NDc0CisgICAgICAgIDxyZGFyOi8v
cHJvYmxlbS8zMzE0MTM4MD4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4K
KworICAgICAgICBBZGQgc3VwcG9ydCBmb3IgPGxpbmsgcmVsPXByZWNvbm5lY3Q+OgorICAgICAg
ICAtIGh0dHBzOi8vdzNjLmdpdGh1Yi5pby9yZXNvdXJjZS1oaW50cy8jcHJlY29ubmVjdAorCisg
ICAgICAgIEFsc28gYWRkIGNvcnJlc3BvbmRpbmcgbmF0aXZlIHByaXZhdGUgQVBJLgorCisgICAg
ICAgICogTmV0d29ya1Byb2Nlc3MvTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuY3BwOgor
ICAgICAgICAoV2ViS2l0OjpOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzczo6cHJlY29ubmVj
dFRvKToKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6OmRp
ZEZpbmlzaFByZWNvbm5lY3Rpb24pOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL05ldHdvcmtD
b25uZWN0aW9uVG9XZWJQcm9jZXNzLmg6CisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvTmV0d29y
a0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MubWVzc2FnZXMuaW46CisgICAgICAgICogTmV0d29ya1By
b2Nlc3MvTmV0d29ya0RhdGFUYXNrLmNwcDoKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya0RhdGFU
YXNrOjpjcmVhdGUpOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL05ldHdvcmtMb2FkUGFyYW1l
dGVycy5oOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLmNwcDoKKyAg
ICAgICAgKFdlYktpdDo6TmV0d29ya1Byb2Nlc3M6OnByZWNvbm5lY3RUbyk6CisgICAgICAgICog
TmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MuaDoKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vz
cy9OZXR3b3JrUHJvY2Vzcy5tZXNzYWdlcy5pbjoKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9Q
cmVjb25uZWN0VGFzay5jcHA6IEFkZGVkLgorICAgICAgICAoV2ViS2l0OjpQcmVjb25uZWN0VGFz
azo6UHJlY29ubmVjdFRhc2spOgorICAgICAgICAoV2ViS2l0OjpQcmVjb25uZWN0VGFzazo6flBy
ZWNvbm5lY3RUYXNrKToKKyAgICAgICAgKFdlYktpdDo6UHJlY29ubmVjdFRhc2s6OndpbGxQZXJm
b3JtSFRUUFJlZGlyZWN0aW9uKToKKyAgICAgICAgKFdlYktpdDo6UHJlY29ubmVjdFRhc2s6OmRp
ZFJlY2VpdmVDaGFsbGVuZ2UpOgorICAgICAgICAoV2ViS2l0OjpQcmVjb25uZWN0VGFzazo6ZGlk
UmVjZWl2ZVJlc3BvbnNlTmV0d29ya1Nlc3Npb24pOgorICAgICAgICAoV2ViS2l0OjpQcmVjb25u
ZWN0VGFzazo6ZGlkUmVjZWl2ZURhdGEpOgorICAgICAgICAoV2ViS2l0OjpQcmVjb25uZWN0VGFz
azo6ZGlkQ29tcGxldGVXaXRoRXJyb3IpOgorICAgICAgICAoV2ViS2l0OjpQcmVjb25uZWN0VGFz
azo6ZGlkU2VuZERhdGEpOgorICAgICAgICAoV2ViS2l0OjpQcmVjb25uZWN0VGFzazo6d2FzQmxv
Y2tlZCk6CisgICAgICAgIChXZWJLaXQ6OlByZWNvbm5lY3RUYXNrOjpjYW5ub3RTaG93VVJMKToK
KyAgICAgICAgKFdlYktpdDo6UHJlY29ubmVjdFRhc2s6OmRpZEZpbmlzaCk6CisgICAgICAgICog
TmV0d29ya1Byb2Nlc3MvUHJlY29ubmVjdFRhc2suaDogQ29waWVkIGZyb20gU291cmNlL1dlYktp
dC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrTG9hZFBhcmFtZXRlcnMuaC4KKyAgICAgICAgKiBOZXR3
b3JrUHJvY2Vzcy9jb2NvYS9OZXR3b3JrRGF0YVRhc2tDb2NvYS5oOgorICAgICAgICAqIE5ldHdv
cmtQcm9jZXNzL2NvY29hL05ldHdvcmtEYXRhVGFza0NvY29hLm1tOgorICAgICAgICAoV2ViS2l0
OjpOZXR3b3JrRGF0YVRhc2tDb2NvYTo6TmV0d29ya0RhdGFUYXNrQ29jb2EpOgorICAgICAgICAq
IFNoYXJlZC9XZWJDb3JlQXJndW1lbnRDb2RlcnMuaDoKKyAgICAgICAgKiBTaGFyZWQvV2ViUHJl
ZmVyZW5jZXNEZWZpbml0aW9ucy5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQy9XS0NvbnRl
eHQuY3BwOgorICAgICAgICAoV0tDb250ZXh0UHJlY29ubmVjdFRvU2VydmVyKToKKyAgICAgICAg
KiBVSVByb2Nlc3MvQVBJL0MvV0tDb250ZXh0UHJpdmF0ZS5oOgorICAgICAgICAqIFVJUHJvY2Vz
cy9BUEkvQ29jb2EvV0tQcm9jZXNzUG9vbC5tbToKKyAgICAgICAgKC1bV0tQcm9jZXNzUG9vbCBf
cHJlY29ubmVjdFRvU2VydmVyOl0pOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQ29jb2EvV0tQ
cm9jZXNzUG9vbFByaXZhdGUuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUHJvY2Vzc1Bvb2wu
Y3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzUG9vbDo6cHJlY29ubmVjdFRvU2VydmVy
KToKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUHJvY2Vzc1Bvb2wuaDoKKyAgICAgICAgKiBXZWJL
aXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBXZWJQcm9jZXNzL05ldHdv
cmsvTmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uLmNwcDoKKyAgICAgICAgKFdlYktpdDo6TmV0d29y
a1Byb2Nlc3NDb25uZWN0aW9uOjpkaWRGaW5pc2hQcmVjb25uZWN0aW9uKToKKyAgICAgICAgKiBX
ZWJQcm9jZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uLmg6CisgICAgICAgICog
V2ViUHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbi5tZXNzYWdlcy5pbjoK
KyAgICAgICAgKiBXZWJQcm9jZXNzL05ldHdvcmsvV2ViTG9hZGVyU3RyYXRlZ3kuY3BwOgorICAg
ICAgICAoV2ViS2l0OjpXZWJMb2FkZXJTdHJhdGVneTo6bmV0d29ya1Byb2Nlc3NDcmFzaGVkKToK
KyAgICAgICAgKFdlYktpdDo6Z2VuZXJhdGVMb2FkSWRlbnRpZmllcik6CisgICAgICAgIChXZWJL
aXQ6OldlYkxvYWRlclN0cmF0ZWd5OjpzdGFydFBpbmdMb2FkKToKKyAgICAgICAgKFdlYktpdDo6
V2ViTG9hZGVyU3RyYXRlZ3k6OnByZWNvbm5lY3RUbyk6CisgICAgICAgIChXZWJLaXQ6OldlYkxv
YWRlclN0cmF0ZWd5OjpkaWRGaW5pc2hQcmVjb25uZWN0aW9uKToKKyAgICAgICAgKiBXZWJQcm9j
ZXNzL05ldHdvcmsvV2ViTG9hZGVyU3RyYXRlZ3kuaDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dl
YlBhZ2UvV2ViUGFnZS5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2U6OnVwZGF0ZVByZWZl
cmVuY2VzKToKKyAgICAgICAgKiBjb25maWcuaDoKKwogMjAxNy0wOS0yNiAgSmVyIE5vYmxlICA8
amVyLm5vYmxlQGFwcGxlLmNvbT4KIAogICAgICAgICBUaHJvd24gT2JqQyBleGNlcHRpb24gd2hl
biByaWdodCBjbGlja2luZyBvbiA8aW1nPiBjb250YWluaW5nIG1wNCBsaW5rCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0TGVnYWN5L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvQ2hh
bmdlTG9nCmluZGV4IDQ0YWM3MTlkNDcwOWNhYzlkMjdlZWI5MjJjN2E1NzJhMTRiMjNjYmQuLmJl
ZGYwZThmY2UwMDZjODUyNzEzZWFlM2U5YWRmYjBhMDNkZmE0YjEgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXRMZWdhY3kvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvQ2hhbmdl
TG9nCkBAIC0xLDMgKzEsMTUgQEAKKzIwMTctMDktMjYgIENocmlzIER1bWV6ICA8Y2R1bWV6QGFw
cGxlLmNvbT4KKworICAgICAgICBBZGQgc3VwcG9ydCBmb3IgPGxpbmsgcmVsPXByZWNvbm5lY3Q+
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNzc0NzQK
KyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzMzMTQxMzgwPgorCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvV2ViUmVzb3VyY2VM
b2FkU2NoZWR1bGVyLmNwcDoKKyAgICAgICAgKFdlYlJlc291cmNlTG9hZFNjaGVkdWxlcjo6cHJl
Y29ubmVjdFRvKToKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9XZWJSZXNvdXJjZUxvYWRTY2hl
ZHVsZXIuaDoKKwogMjAxNy0wOS0yNSAgVGltb3RoeSBIb3J0b24gIDx0aW1vdGh5X2hvcnRvbkBh
cHBsZS5jb20+CiAKICAgICAgICAgRml4IHRoZSBtYWNPUyBXZWJLaXQgQ01ha2UgYnVpbGQKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvc3BpL2NmL0NGTmV0d29ya1NQSS5oIGIv
U291cmNlL1dlYkNvcmUvUEFML3BhbC9zcGkvY2YvQ0ZOZXR3b3JrU1BJLmgKaW5kZXggM2U1ODQz
ZWFkNWI0M2M1Mzg4M2RmODFiNjQwYzljZjQzNTg0N2VmMy4uNjgxZGJiYjNiODAzMmQ5MmJhNTU5
YmQxNzQ0MjliOTQxMDY0YjI5YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvUEFML3BhbC9z
cGkvY2YvQ0ZOZXR3b3JrU1BJLmgKKysrIGIvU291cmNlL1dlYkNvcmUvUEFML3BhbC9zcGkvY2Yv
Q0ZOZXR3b3JrU1BJLmgKQEAgLTExMyw2ICsxMTMsMTIgQEAgdHlwZWRlZiB2b2lkICheQ0ZDYWNo
ZWRVUkxSZXNwb25zZUNhbGxCYWNrQmxvY2spKENGQ2FjaGVkVVJMUmVzcG9uc2VSZWYpOwogLSAo
TlNEaWN0aW9uYXJ5ICopX3RpbWluZ0RhdGE7CiBAZW5kCiAKKyNpZiAoUExBVEZPUk0oTUFDKSAm
JiBfX01BQ19PU19YX1ZFUlNJT05fTUlOX1JFUVVJUkVEID49IDEwMTMwMCkgfHwgKFBMQVRGT1JN
KElPUykgJiYgX19JUEhPTkVfT1NfVkVSU0lPTl9NSU5fUkVRVUlSRUQgPj0gMTEwMDAwKQorQGlu
dGVyZmFjZSBOU1VSTFNlc3Npb25UYXNrIChSZXNvdXJjZUhpbnRzKQorQHByb3BlcnR5IChub25h
dG9taWMsIGFzc2lnbikgQk9PTCBfcHJlY29ubmVjdDsKK0BlbmQKKyNlbmRpZgorCiBAaW50ZXJm
YWNlIE5TSFRUUENvb2tpZSAoKQogLSAoQ0ZIVFRQQ29va2llUmVmKV9DRkhUVFBDb29raWU7CiAr
IChDRkFycmF5UmVmIF9fbnVsbGFibGUpX25zMmNmQ29va2llczooTlNBcnJheSAqIF9fbnVsbGFi
bGUpbnNDb29raWVzIENGX1JFVFVSTlNfUkVUQUlORUQ7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9odG1sL0RPTVRva2VuTGlzdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0RPTVRva2Vu
TGlzdC5jcHAKaW5kZXggMjU1NWI2ODQ0NmIyOGVjMmJmMDY1ZjdiY2M0ZTFmNWE3Zjc2YTAyMC4u
N2NhYjFiNzM2YTA0MTc1ZWQxMjFjOTdkMGEzNTJhNDllYTk2ZDVjZiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvaHRtbC9ET01Ub2tlbkxpc3QuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0
bWwvRE9NVG9rZW5MaXN0LmNwcApAQCAtMzUsNyArMzUsNyBAQAogCiBuYW1lc3BhY2UgV2ViQ29y
ZSB7CiAKLURPTVRva2VuTGlzdDo6RE9NVG9rZW5MaXN0KEVsZW1lbnQmIGVsZW1lbnQsIGNvbnN0
IFF1YWxpZmllZE5hbWUmIGF0dHJpYnV0ZU5hbWUsIFdURjo6RnVuY3Rpb248Ym9vbChTdHJpbmdW
aWV3KT4mJiBpc1N1cHBvcnRlZFRva2VuKQorRE9NVG9rZW5MaXN0OjpET01Ub2tlbkxpc3QoRWxl
bWVudCYgZWxlbWVudCwgY29uc3QgUXVhbGlmaWVkTmFtZSYgYXR0cmlidXRlTmFtZSwgSXNTdXBw
b3J0ZWRUb2tlbkZ1bmN0aW9uJiYgaXNTdXBwb3J0ZWRUb2tlbikKICAgICA6IG1fZWxlbWVudChl
bGVtZW50KQogICAgICwgbV9hdHRyaWJ1dGVOYW1lKGF0dHJpYnV0ZU5hbWUpCiAgICAgLCBtX2lz
U3VwcG9ydGVkVG9rZW4oV1RGTW92ZShpc1N1cHBvcnRlZFRva2VuKSkKQEAgLTE5MSw3ICsxOTEs
NyBAQCBFeGNlcHRpb25Pcjxib29sPiBET01Ub2tlbkxpc3Q6OnN1cHBvcnRzKFN0cmluZ1ZpZXcg
dG9rZW4pCiB7CiAgICAgaWYgKCFtX2lzU3VwcG9ydGVkVG9rZW4pCiAgICAgICAgIHJldHVybiBF
eGNlcHRpb24geyBUeXBlRXJyb3IgfTsKLSAgICByZXR1cm4gbV9pc1N1cHBvcnRlZFRva2VuKHRv
a2VuKTsKKyAgICByZXR1cm4gbV9pc1N1cHBvcnRlZFRva2VuKG1fZWxlbWVudC5kb2N1bWVudCgp
LCB0b2tlbik7CiB9CiAKIC8vIGh0dHBzOi8vZG9tLnNwZWMud2hhdHdnLm9yZy8jZG9tLWRvbXRv
a2VubGlzdC12YWx1ZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9ET01Ub2tlbkxp
c3QuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvRE9NVG9rZW5MaXN0LmgKaW5kZXggMjFmYjQ2ZjQ2
MTJjYTNjOTNjYmU1OWVkMjg0M2EyNGJkMjRhNTc4Ni4uZDYwZDE3Y2M5MTUxYTExYjE4NjBhOTNl
NDEwNDlhOWI1ZmY4NTNkNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9ET01Ub2tl
bkxpc3QuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0RPTVRva2VuTGlzdC5oCkBAIC0zMiw3
ICszMiw4IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIGNsYXNzIERPTVRva2VuTGlzdCB7CiAgICAg
V1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7CiBwdWJsaWM6Ci0gICAgRE9NVG9rZW5MaXN0KEVsZW1l
bnQmLCBjb25zdCBRdWFsaWZpZWROYW1lJiBhdHRyaWJ1dGVOYW1lLCBXVEY6OkZ1bmN0aW9uPGJv
b2woU3RyaW5nVmlldyk+JiYgaXNTdXBwb3J0ZWRUb2tlbiA9IHsgfSk7CisgICAgdXNpbmcgSXNT
dXBwb3J0ZWRUb2tlbkZ1bmN0aW9uID0gV1RGOjpGdW5jdGlvbjxib29sKERvY3VtZW50JiwgU3Ry
aW5nVmlldyk+OworICAgIERPTVRva2VuTGlzdChFbGVtZW50JiwgY29uc3QgUXVhbGlmaWVkTmFt
ZSYgYXR0cmlidXRlTmFtZSwgSXNTdXBwb3J0ZWRUb2tlbkZ1bmN0aW9uJiYgaXNTdXBwb3J0ZWRU
b2tlbiA9IHsgfSk7CiAKICAgICB2b2lkIGFzc29jaWF0ZWRBdHRyaWJ1dGVWYWx1ZUNoYW5nZWQo
Y29uc3QgQXRvbWljU3RyaW5nJik7CiAKQEAgLTczLDcgKzc0LDcgQEAgcHJpdmF0ZToKICAgICBi
b29sIG1faW5VcGRhdGVBc3NvY2lhdGVkQXR0cmlidXRlRnJvbVRva2VucyB7IGZhbHNlIH07CiAg
ICAgYm9vbCBtX3Rva2Vuc05lZWRVcGRhdGluZyB7IHRydWUgfTsKICAgICBWZWN0b3I8QXRvbWlj
U3RyaW5nPiBtX3Rva2VuczsKLSAgICBXVEY6OkZ1bmN0aW9uPGJvb2woU3RyaW5nVmlldyk+IG1f
aXNTdXBwb3J0ZWRUb2tlbjsKKyAgICBJc1N1cHBvcnRlZFRva2VuRnVuY3Rpb24gbV9pc1N1cHBv
cnRlZFRva2VuOwogfTsKIAogaW5saW5lIHVuc2lnbmVkIERPTVRva2VuTGlzdDo6bGVuZ3RoKCkg
Y29uc3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEFuY2hvckVsZW1lbnQu
Y3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MQW5jaG9yRWxlbWVudC5jcHAKaW5kZXggY2Ix
ZjFjOWY1NDY1M2Q2YmRkMmI0NzkyYzI2Mzk4ODIxMGM3ZmM5MC4uNDg4MWMzZDllOGEzN2VkZjFm
NjMyMGY1ZDMyOWJiOTdjMTcxZmYwOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9I
VE1MQW5jaG9yRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MQW5jaG9y
RWxlbWVudC5jcHAKQEAgLTMwNyw3ICszMDcsNyBAQCBib29sIEhUTUxBbmNob3JFbGVtZW50Ojpo
YXNSZWwoUmVsYXRpb24gcmVsYXRpb24pIGNvbnN0CiBET01Ub2tlbkxpc3QmIEhUTUxBbmNob3JF
bGVtZW50OjpyZWxMaXN0KCkKIHsKICAgICBpZiAoIW1fcmVsTGlzdCkgCi0gICAgICAgIG1fcmVs
TGlzdCA9IHN0ZDo6bWFrZV91bmlxdWU8RE9NVG9rZW5MaXN0PigqdGhpcywgSFRNTE5hbWVzOjpy
ZWxBdHRyLCBbXShTdHJpbmdWaWV3IHRva2VuKSB7CisgICAgICAgIG1fcmVsTGlzdCA9IHN0ZDo6
bWFrZV91bmlxdWU8RE9NVG9rZW5MaXN0PigqdGhpcywgSFRNTE5hbWVzOjpyZWxBdHRyLCBbXShE
b2N1bWVudCYsIFN0cmluZ1ZpZXcgdG9rZW4pIHsKICAgICAgICAgICAgIHJldHVybiBlcXVhbEln
bm9yaW5nQVNDSUlDYXNlKHRva2VuLCAibm9yZWZlcnJlciIpIHx8IGVxdWFsSWdub3JpbmdBU0NJ
SUNhc2UodG9rZW4sICJub29wZW5lciIpOwogICAgICAgICB9KTsKICAgICByZXR1cm4gKm1fcmVs
TGlzdDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTElGcmFtZUVsZW1lbnQu
Y3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MSUZyYW1lRWxlbWVudC5jcHAKaW5kZXggZDMw
MzIyZGMwYzQ4ZmI4MjA2ZWFiYjY2Y2FlZjJiOGZlNjk3YjY0Zi4uMjIzZTNiMDMzMWFhNzUwZTRk
YWY1ZGQwYTg2YjUyMmMyMjJlMDVkZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9I
VE1MSUZyYW1lRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MSUZyYW1l
RWxlbWVudC5jcHAKQEAgLTUxLDcgKzUxLDcgQEAgUmVmPEhUTUxJRnJhbWVFbGVtZW50PiBIVE1M
SUZyYW1lRWxlbWVudDo6Y3JlYXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmIHRhZ05hbWUsIEQKIERP
TVRva2VuTGlzdCYgSFRNTElGcmFtZUVsZW1lbnQ6OnNhbmRib3goKQogewogICAgIGlmICghbV9z
YW5kYm94KQotICAgICAgICBtX3NhbmRib3ggPSBzdGQ6Om1ha2VfdW5pcXVlPERPTVRva2VuTGlz
dD4oKnRoaXMsIHNhbmRib3hBdHRyLCBbXShTdHJpbmdWaWV3IHRva2VuKSB7CisgICAgICAgIG1f
c2FuZGJveCA9IHN0ZDo6bWFrZV91bmlxdWU8RE9NVG9rZW5MaXN0PigqdGhpcywgc2FuZGJveEF0
dHIsIFtdKERvY3VtZW50JiwgU3RyaW5nVmlldyB0b2tlbikgewogICAgICAgICAgICAgcmV0dXJu
IFNlY3VyaXR5Q29udGV4dDo6aXNTdXBwb3J0ZWRTYW5kYm94UG9saWN5KHRva2VuKTsKICAgICAg
ICAgfSk7CiAgICAgcmV0dXJuICptX3NhbmRib3g7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9odG1sL0hUTUxMaW5rRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxMaW5r
RWxlbWVudC5jcHAKaW5kZXggZTAxYjZlM2I0Yzg1MWZlZGY0NTc3Y2E5MjIwZjg4ODU0MmMxY2E0
Ni4uZTdkMGY3Y2M3NDI4NjA0OWZhZDE4ODE3M2IxNTUwMTk5M2RiZjNkMyAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTGlua0VsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2h0bWwvSFRNTExpbmtFbGVtZW50LmNwcApAQCAtMTU2LDcgKzE1Niw3IEBAIHZvaWQgSFRN
TExpbmtFbGVtZW50OjpzZXREaXNhYmxlZFN0YXRlKGJvb2wgZGlzYWJsZWQpCiB2b2lkIEhUTUxM
aW5rRWxlbWVudDo6cGFyc2VBdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYgbmFtZSwgY29u
c3QgQXRvbWljU3RyaW5nJiB2YWx1ZSkKIHsKICAgICBpZiAobmFtZSA9PSByZWxBdHRyKSB7Ci0g
ICAgICAgIG1fcmVsQXR0cmlidXRlID0gTGlua1JlbEF0dHJpYnV0ZSh2YWx1ZSk7CisgICAgICAg
IG1fcmVsQXR0cmlidXRlID0gTGlua1JlbEF0dHJpYnV0ZShkb2N1bWVudCgpLCB2YWx1ZSk7CiAg
ICAgICAgIGlmIChtX3JlbExpc3QpCiAgICAgICAgICAgICBtX3JlbExpc3QtPmFzc29jaWF0ZWRB
dHRyaWJ1dGVWYWx1ZUNoYW5nZWQodmFsdWUpOwogICAgICAgICBwcm9jZXNzKCk7CkBAIC00OTgs
OCArNDk4LDggQEAgdm9pZCBIVE1MTGlua0VsZW1lbnQ6OmRpc3BhdGNoUGVuZGluZ0V2ZW50KExp
bmtFdmVudFNlbmRlciogZXZlbnRTZW5kZXIpCiBET01Ub2tlbkxpc3QmIEhUTUxMaW5rRWxlbWVu
dDo6cmVsTGlzdCgpCiB7CiAgICAgaWYgKCFtX3JlbExpc3QpIAotICAgICAgICBtX3JlbExpc3Qg
PSBzdGQ6Om1ha2VfdW5pcXVlPERPTVRva2VuTGlzdD4oKnRoaXMsIEhUTUxOYW1lczo6cmVsQXR0
ciwgW10oU3RyaW5nVmlldyB0b2tlbikgewotICAgICAgICAgICAgcmV0dXJuIExpbmtSZWxBdHRy
aWJ1dGU6OmlzU3VwcG9ydGVkKHRva2VuKTsKKyAgICAgICAgbV9yZWxMaXN0ID0gc3RkOjptYWtl
X3VuaXF1ZTxET01Ub2tlbkxpc3Q+KCp0aGlzLCBIVE1MTmFtZXM6OnJlbEF0dHIsIFtdKERvY3Vt
ZW50JiBkb2N1bWVudCwgU3RyaW5nVmlldyB0b2tlbikgeworICAgICAgICAgICAgcmV0dXJuIExp
bmtSZWxBdHRyaWJ1dGU6OmlzU3VwcG9ydGVkKGRvY3VtZW50LCB0b2tlbik7CiAgICAgICAgIH0p
OwogICAgIHJldHVybiAqbV9yZWxMaXN0OwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
aHRtbC9MaW5rUmVsQXR0cmlidXRlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvTGlua1JlbEF0
dHJpYnV0ZS5jcHAKaW5kZXggODY2YWZkOGU1ZWI0YTFhMTJjY2I5MDBhNjY3YWUwZGZlYjJlZjlh
OS4uNTcyYmRiMzRjNThmOGRhZDA1YmQzZjZiZGNmYzVjNDU4MmE0NzY3ZiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvaHRtbC9MaW5rUmVsQXR0cmlidXRlLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9odG1sL0xpbmtSZWxBdHRyaWJ1dGUuY3BwCkBAIC0zMiw4ICszMiwxMCBAQAogI2luY2x1
ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUgIkxpbmtSZWxBdHRyaWJ1dGUuaCIKIAorI2luY2x1ZGUg
IkRvY3VtZW50LmgiCiAjaW5jbHVkZSAiTGlua0ljb25UeXBlLmgiCiAjaW5jbHVkZSAiUnVudGlt
ZUVuYWJsZWRGZWF0dXJlcy5oIgorI2luY2x1ZGUgIlNldHRpbmdzLmgiCiAjaW5jbHVkZSA8d3Rm
L3RleHQvU3RyaW5nVmlldy5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgogCkBA
IC00NCw3ICs0Niw3IEBAIExpbmtSZWxBdHRyaWJ1dGU6OkxpbmtSZWxBdHRyaWJ1dGUoKQogfQog
CiAvLyBLZWVwIExpbmtSZWxBdHRyaWJ1dGU6OmlzU3VwcG9ydGVkKCkgaW4gc3luYyB3aGVuIHVw
ZGF0aW5nIHRoaXMgY29uc3RydWN0b3IuCi1MaW5rUmVsQXR0cmlidXRlOjpMaW5rUmVsQXR0cmli
dXRlKGNvbnN0IFN0cmluZyYgcmVsKQorTGlua1JlbEF0dHJpYnV0ZTo6TGlua1JlbEF0dHJpYnV0
ZShEb2N1bWVudCYgZG9jdW1lbnQsIGNvbnN0IFN0cmluZyYgcmVsKQogewogICAgIGlmIChlcXVh
bExldHRlcnNJZ25vcmluZ0FTQ0lJQ2FzZShyZWwsICJzdHlsZXNoZWV0IikpCiAgICAgICAgIGlz
U3R5bGVTaGVldCA9IHRydWU7CkBAIC01Niw2ICs1OCw4IEBAIExpbmtSZWxBdHRyaWJ1dGU6Okxp
bmtSZWxBdHRyaWJ1dGUoY29uc3QgU3RyaW5nJiByZWwpCiAgICAgICAgIGljb25UeXBlID0gTGlu
a0ljb25UeXBlOjpUb3VjaFByZWNvbXBvc2VkSWNvbjsKICAgICBlbHNlIGlmIChlcXVhbExldHRl
cnNJZ25vcmluZ0FTQ0lJQ2FzZShyZWwsICJkbnMtcHJlZmV0Y2giKSkKICAgICAgICAgaXNETlNQ
cmVmZXRjaCA9IHRydWU7CisgICAgZWxzZSBpZiAoZG9jdW1lbnQuc2V0dGluZ3MoKS5saW5rUHJl
Y29ubmVjdEVuYWJsZWQoKSAmJiBlcXVhbExldHRlcnNJZ25vcmluZ0FTQ0lJQ2FzZShyZWwsICJw
cmVjb25uZWN0IikpCisgICAgICAgIGlzTGlua1ByZWNvbm5lY3QgPSB0cnVlOwogICAgIGVsc2Ug
aWYgKFJ1bnRpbWVFbmFibGVkRmVhdHVyZXM6OnNoYXJlZEZlYXR1cmVzKCkubGlua1ByZWxvYWRF
bmFibGVkKCkgJiYgZXF1YWxMZXR0ZXJzSWdub3JpbmdBU0NJSUNhc2UocmVsLCAicHJlbG9hZCIp
KQogICAgICAgICBpc0xpbmtQcmVsb2FkID0gdHJ1ZTsKICAgICBlbHNlIGlmIChlcXVhbExldHRl
cnNJZ25vcmluZ0FTQ0lJQ2FzZShyZWwsICJhbHRlcm5hdGUgc3R5bGVzaGVldCIpIHx8IGVxdWFs
TGV0dGVyc0lnbm9yaW5nQVNDSUlDYXNlKHJlbCwgInN0eWxlc2hlZXQgYWx0ZXJuYXRlIikpIHsK
QEAgLTg3LDcgKzkxLDcgQEAgTGlua1JlbEF0dHJpYnV0ZTo6TGlua1JlbEF0dHJpYnV0ZShjb25z
dCBTdHJpbmcmIHJlbCkKIH0KIAogLy8gaHR0cHM6Ly9odG1sLnNwZWMud2hhdHdnLm9yZy8jbGlu
a1R5cGVzCi1ib29sIExpbmtSZWxBdHRyaWJ1dGU6OmlzU3VwcG9ydGVkKFN0cmluZ1ZpZXcgYXR0
cmlidXRlKQorYm9vbCBMaW5rUmVsQXR0cmlidXRlOjppc1N1cHBvcnRlZChEb2N1bWVudCYgZG9j
dW1lbnQsIFN0cmluZ1ZpZXcgYXR0cmlidXRlKQogewogICAgIHN0YXRpYyBjb25zdCBjaGFyKiBj
b25zdCBzdXBwb3J0ZWRBdHRyaWJ1dGVzW10gPSB7CiAgICAgICAgICJhbHRlcm5hdGUiLCAiZG5z
LXByZWZldGNoIiwgImljb24iLCAic3R5bGVzaGVldCIsICJhcHBsZS10b3VjaC1pY29uIiwgImFw
cGxlLXRvdWNoLWljb24tcHJlY29tcG9zZWQiLApAQCAtMTAxLDYgKzEwNSw5IEBAIGJvb2wgTGlu
a1JlbEF0dHJpYnV0ZTo6aXNTdXBwb3J0ZWQoU3RyaW5nVmlldyBhdHRyaWJ1dGUpCiAgICAgICAg
ICAgICByZXR1cm4gdHJ1ZTsKICAgICB9CiAKKyAgICBpZiAoZG9jdW1lbnQuc2V0dGluZ3MoKS5s
aW5rUHJlY29ubmVjdEVuYWJsZWQoKSAmJiBlcXVhbElnbm9yaW5nQVNDSUlDYXNlKGF0dHJpYnV0
ZSwgInByZWNvbm5lY3QiKSkKKyAgICAgICAgcmV0dXJuIHRydWU7CisKICAgICBpZiAoUnVudGlt
ZUVuYWJsZWRGZWF0dXJlczo6c2hhcmVkRmVhdHVyZXMoKS5saW5rUHJlbG9hZEVuYWJsZWQoKSAm
JiBlcXVhbElnbm9yaW5nQVNDSUlDYXNlKGF0dHJpYnV0ZSwgInByZWxvYWQiKSkKICAgICAgICAg
cmV0dXJuIHRydWU7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvTGlua1JlbEF0
dHJpYnV0ZS5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9MaW5rUmVsQXR0cmlidXRlLmgKaW5kZXgg
OGUyNjY5MjdlZGRiMTNkYjllMGI4YjFjY2E5Njg1MjU2NWZiYmQ4Zi4uZjEyZTk4NjYzN2M3ZmY3
MDc4MWMyM2MxZDZmYWU4ODU1OWE3MGI1ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRt
bC9MaW5rUmVsQXR0cmlidXRlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9MaW5rUmVsQXR0
cmlidXRlLmgKQEAgLTM3LDYgKzM3LDcgQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCitjbGFz
cyBEb2N1bWVudDsKIGVudW0gY2xhc3MgTGlua0ljb25UeXBlOwogCiBzdHJ1Y3QgTGlua1JlbEF0
dHJpYnV0ZSB7CkBAIC00NSwxNSArNDYsMTYgQEAgc3RydWN0IExpbmtSZWxBdHRyaWJ1dGUgewog
ICAgIGJvb2wgaXNBbHRlcm5hdGUgeyBmYWxzZSB9OwogICAgIGJvb2wgaXNETlNQcmVmZXRjaCB7
IGZhbHNlIH07CiAgICAgYm9vbCBpc0xpbmtQcmVsb2FkIHsgZmFsc2UgfTsKKyAgICBib29sIGlz
TGlua1ByZWNvbm5lY3QgeyBmYWxzZSB9OwogI2lmIEVOQUJMRShMSU5LX1BSRUZFVENIKQogICAg
IGJvb2wgaXNMaW5rUHJlZmV0Y2ggeyBmYWxzZSB9OwogICAgIGJvb2wgaXNMaW5rU3VicmVzb3Vy
Y2UgeyBmYWxzZSB9OwogI2VuZGlmCiAKICAgICBMaW5rUmVsQXR0cmlidXRlKCk7Ci0gICAgZXhw
bGljaXQgTGlua1JlbEF0dHJpYnV0ZShjb25zdCBTdHJpbmcmKTsKKyAgICBMaW5rUmVsQXR0cmli
dXRlKERvY3VtZW50JiwgY29uc3QgU3RyaW5nJik7CiAKLSAgICBzdGF0aWMgYm9vbCBpc1N1cHBv
cnRlZChTdHJpbmdWaWV3KTsKKyAgICBzdGF0aWMgYm9vbCBpc1N1cHBvcnRlZChEb2N1bWVudCYs
IFN0cmluZ1ZpZXcpOwogfTsKIAogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9w
YXJzZXIvSFRNTFByZWxvYWRTY2FubmVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvcGFyc2Vy
L0hUTUxQcmVsb2FkU2Nhbm5lci5jcHAKaW5kZXggMDYwMWRjMTFkY2M0YzBiMDA1ZTVlZmJkMWU2
NjgzNzY0MjZmMGVjMC4uMDhkMjhjZGQ0MjE3NzNhZDE3NmQzZjBlNzU0MDdhNmU2ZjAwMzQ4NCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9wYXJzZXIvSFRNTFByZWxvYWRTY2FubmVy
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3BhcnNlci9IVE1MUHJlbG9hZFNjYW5uZXIu
Y3BwCkBAIC0yMzIsNyArMjMyLDcgQEAgcHJpdmF0ZToKICAgICAgICAgICAgIGlmIChtYXRjaChh
dHRyaWJ1dGVOYW1lLCBocmVmQXR0cikpCiAgICAgICAgICAgICAgICAgc2V0VXJsVG9Mb2FkKGF0
dHJpYnV0ZVZhbHVlKTsKICAgICAgICAgICAgIGVsc2UgaWYgKG1hdGNoKGF0dHJpYnV0ZU5hbWUs
IHJlbEF0dHIpKSB7Ci0gICAgICAgICAgICAgICAgTGlua1JlbEF0dHJpYnV0ZSBwYXJzZWRBdHRy
aWJ1dGUgeyBhdHRyaWJ1dGVWYWx1ZSB9OworICAgICAgICAgICAgICAgIExpbmtSZWxBdHRyaWJ1
dGUgcGFyc2VkQXR0cmlidXRlIHsgZG9jdW1lbnQsIGF0dHJpYnV0ZVZhbHVlIH07CiAgICAgICAg
ICAgICAgICAgbV9saW5rSXNTdHlsZVNoZWV0ID0gcmVsQXR0cmlidXRlSXNTdHlsZVNoZWV0KHBh
cnNlZEF0dHJpYnV0ZSk7CiAgICAgICAgICAgICAgICAgbV9saW5rSXNQcmVsb2FkID0gcGFyc2Vk
QXR0cmlidXRlLmlzTGlua1ByZWxvYWQ7CiAgICAgICAgICAgICB9IGVsc2UgaWYgKG1hdGNoKGF0
dHJpYnV0ZU5hbWUsIG1lZGlhQXR0cikpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2Fk
ZXIvTGlua0xvYWRlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvTGlua0xvYWRlci5jcHAK
aW5kZXggMmIxNjEzMjY0MzBjMTBkNTkyNDI4ZDE1YjQ4NzcyYmVmNmE2OTAzZC4uMzM5ZjIxNzM4
NmM0YzRjMGY0MTEwNWY3OGQ4YmUxMTZlZWE0ZTVmZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvbG9hZGVyL0xpbmtMb2FkZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9MaW5r
TG9hZGVyLmNwcApAQCAtNDcsOCArNDcsMTEgQEAKICNpbmNsdWRlICJMaW5rSGVhZGVyLmgiCiAj
aW5jbHVkZSAiTGlua1ByZWxvYWRSZXNvdXJjZUNsaWVudHMuaCIKICNpbmNsdWRlICJMaW5rUmVs
QXR0cmlidXRlLmgiCisjaW5jbHVkZSAiTG9hZGVyU3RyYXRlZ3kuaCIKICNpbmNsdWRlICJNSU1F
VHlwZVJlZ2lzdHJ5LmgiCiAjaW5jbHVkZSAiTWVkaWFRdWVyeUV2YWx1YXRvci5oIgorI2luY2x1
ZGUgIlBsYXRmb3JtU3RyYXRlZ2llcy5oIgorI2luY2x1ZGUgIlJlc291cmNlRXJyb3IuaCIKICNp
bmNsdWRlICJSdW50aW1lRW5hYmxlZEZlYXR1cmVzLmgiCiAjaW5jbHVkZSAiU2V0dGluZ3MuaCIK
ICNpbmNsdWRlICJTdHlsZVJlc29sdmVyLmgiCkBAIC0xMDIsNyArMTA1LDcgQEAgdm9pZCBMaW5r
TG9hZGVyOjpsb2FkTGlua3NGcm9tSGVhZGVyKGNvbnN0IFN0cmluZyYgaGVhZGVyVmFsdWUsIGNv
bnN0IFVSTCYgYmFzZVUKICAgICAgICAgICAgICAgICBjb250aW51ZTsKICAgICAgICAgfQogCi0g
ICAgICAgIExpbmtSZWxBdHRyaWJ1dGUgcmVsQXR0cmlidXRlKGhlYWRlci5yZWwoKSk7CisgICAg
ICAgIExpbmtSZWxBdHRyaWJ1dGUgcmVsQXR0cmlidXRlKGRvY3VtZW50LCBoZWFkZXIucmVsKCkp
OwogICAgICAgICBVUkwgdXJsKGJhc2VVUkwsIGhlYWRlci51cmwoKSk7CiAgICAgICAgIC8vIFNh
bml0eSBjaGVjayB0byBhdm9pZCByZS1lbnRyYW5jeSBoZXJlLgogICAgICAgICBpZiAoZXF1YWxJ
Z25vcmluZ0ZyYWdtZW50SWRlbnRpZmllcih1cmwsIGJhc2VVUkwpKQpAQCAtMjUwLDYgKzI1Mywy
MiBAQCBib29sIExpbmtMb2FkZXI6OmxvYWRMaW5rKGNvbnN0IExpbmtSZWxBdHRyaWJ1dGUmIHJl
bEF0dHJpYnV0ZSwgY29uc3QgVVJMJiBocmVmLAogICAgICAgICAgICAgZG9jdW1lbnQuZnJhbWUo
KS0+bG9hZGVyKCkuY2xpZW50KCkucHJlZmV0Y2hETlMoaHJlZi5ob3N0KCkpOwogICAgIH0KIAor
ICAgIGlmIChyZWxBdHRyaWJ1dGUuaXNMaW5rUHJlY29ubmVjdCAmJiBocmVmLmlzVmFsaWQoKSAm
JiBocmVmLnByb3RvY29sSXNJbkhUVFBGYW1pbHkoKSkgeworICAgICAgICBBU1NFUlQoZG9jdW1l
bnQuc2V0dGluZ3MoKS5saW5rUHJlY29ubmVjdEVuYWJsZWQoKSk7CisgICAgICAgIFN0b3JlZENy
ZWRlbnRpYWxzUG9saWN5IHN0b3JhZ2VDcmVkZW50aWFsc1BvbGljeSA9IFN0b3JlZENyZWRlbnRp
YWxzUG9saWN5OjpVc2U7CisgICAgICAgIGlmIChlcXVhbElnbm9yaW5nQVNDSUlDYXNlKGNyb3Nz
T3JpZ2luLCAiYW5vbnltb3VzIikgJiYgZG9jdW1lbnQuc2VjdXJpdHlPcmlnaW4oKS5jYW5BY2Nl
c3MoU2VjdXJpdHlPcmlnaW46OmNyZWF0ZShocmVmKSkpCisgICAgICAgICAgICBzdG9yYWdlQ3Jl
ZGVudGlhbHNQb2xpY3kgPSBTdG9yZWRDcmVkZW50aWFsc1BvbGljeTo6RG9Ob3RVc2U7CisgICAg
ICAgIHBsYXRmb3JtU3RyYXRlZ2llcygpLT5sb2FkZXJTdHJhdGVneSgpLT5wcmVjb25uZWN0VG8o
aHJlZiwgc3RvcmFnZUNyZWRlbnRpYWxzUG9saWN5LCBbd2Vha0RvY3VtZW50ID0gZG9jdW1lbnQu
Y3JlYXRlV2Vha1B0cigpLCBocmVmXShSZXNvdXJjZUVycm9yIGVycm9yKSB7CisgICAgICAgICAg
ICBpZiAoIXdlYWtEb2N1bWVudCkKKyAgICAgICAgICAgICAgICByZXR1cm47CisKKyAgICAgICAg
ICAgIGlmICghZXJyb3IuaXNOdWxsKCkpCisgICAgICAgICAgICAgICAgd2Vha0RvY3VtZW50LT5h
ZGRDb25zb2xlTWVzc2FnZShNZXNzYWdlU291cmNlOjpOZXR3b3JrLCBNZXNzYWdlTGV2ZWw6OkVy
cm9yLCBtYWtlU3RyaW5nKEFTQ0lJTGl0ZXJhbCgiRmFpbGVkIHRvIHByZWNvbm5lY3QgdG8gIiks
IGhyZWYuc3RyaW5nKCksIEFTQ0lJTGl0ZXJhbCgiLiBFcnJvcjogIiksIGVycm9yLmxvY2FsaXpl
ZERlc2NyaXB0aW9uKCkpKTsKKyAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICB3ZWFr
RG9jdW1lbnQtPmFkZENvbnNvbGVNZXNzYWdlKE1lc3NhZ2VTb3VyY2U6Ok5ldHdvcmssIE1lc3Nh
Z2VMZXZlbDo6SW5mbywgbWFrZVN0cmluZyhBU0NJSUxpdGVyYWwoIlN1Y2Nlc3NmdWx5IHByZWNv
bm5lY3RlZCB0byAiKSwgaHJlZi5zdHJpbmcoKSkpOworICAgICAgICB9KTsKKyAgICB9CisKICAg
ICBpZiAobV9jbGllbnQuc2hvdWxkTG9hZExpbmsoKSkgewogICAgICAgICBhdXRvIHJlc291cmNl
Q2xpZW50ID0gcHJlbG9hZElmTmVlZGVkKHJlbEF0dHJpYnV0ZSwgaHJlZiwgZG9jdW1lbnQsIGFz
LCBtZWRpYSwgbWltZVR5cGUsIGNyb3NzT3JpZ2luLCB0aGlzKTsKICAgICAgICAgaWYgKHJlc291
cmNlQ2xpZW50KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL0xvYWRlclN0cmF0
ZWd5LmggYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvTG9hZGVyU3RyYXRlZ3kuaAppbmRleCA1M2Yz
YmZiMjY2NjliMTRlODhjY2QyOGY4OTFiMDIxOWQxNGZhNjNjLi5mY2Y1NGQyYjBmOGNjM2VkMDli
NDhjMGE5NjNjNWQ2NjQ3ZmM4M2NmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIv
TG9hZGVyU3RyYXRlZ3kuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvTG9hZGVyU3RyYXRl
Z3kuaApAQCAtNjcsNiArNjcsOSBAQCBwdWJsaWM6CiAgICAgdXNpbmcgUGluZ0xvYWRDb21wbGV0
aW9uSGFuZGxlciA9IFdURjo6RnVuY3Rpb248dm9pZChjb25zdCBSZXNvdXJjZUVycm9yJik+Owog
ICAgIHZpcnR1YWwgdm9pZCBzdGFydFBpbmdMb2FkKEZyYW1lJiwgUmVzb3VyY2VSZXF1ZXN0Jiwg
Y29uc3QgSFRUUEhlYWRlck1hcCYgb3JpZ2luYWxSZXF1ZXN0SGVhZGVycywgY29uc3QgRmV0Y2hP
cHRpb25zJiwgUGluZ0xvYWRDb21wbGV0aW9uSGFuZGxlciYmID0geyB9KSA9IDA7CiAKKyAgICB1
c2luZyBQcmVjb25uZWN0Q29tcGxldGlvbkhhbmRsZXIgPSBXVEY6OkZ1bmN0aW9uPHZvaWQoY29u
c3QgUmVzb3VyY2VFcnJvciYpPjsKKyAgICB2aXJ0dWFsIHZvaWQgcHJlY29ubmVjdFRvKGNvbnN0
IFVSTCYsIFN0b3JlZENyZWRlbnRpYWxzUG9saWN5LCBQcmVjb25uZWN0Q29tcGxldGlvbkhhbmRs
ZXImJikgPSAwOworCiAgICAgdmlydHVhbCB2b2lkIHN0b3JlRGVyaXZlZERhdGFUb0NhY2hlKGNv
bnN0IFNIQTE6OkRpZ2VzdCYgYm9keUtleSwgY29uc3QgU3RyaW5nJiB0eXBlLCBjb25zdCBTdHJp
bmcmIHBhcnRpdGlvbiwgV2ViQ29yZTo6U2hhcmVkQnVmZmVyJikgPSAwOwogCiAgICAgdmlydHVh
bCB2b2lkIHNldENhcHR1cmVFeHRyYU5ldHdvcmtMb2FkTWV0cmljc0VuYWJsZWQoYm9vbCkgPSAw
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9TZXR0aW5ncy5pbiBiL1NvdXJjZS9X
ZWJDb3JlL3BhZ2UvU2V0dGluZ3MuaW4KaW5kZXggOTI3N2MwYTdjZTVkN2E3YmEyNWU2ZDM0ODU5
MmE4YWMxYTFmZGVhYi4uZDgxNTI2YWFjYzE2NzI3YzkyY2E2OWFhNzRiNjNlOGNhYmQwNDIxZiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9TZXR0aW5ncy5pbgorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9wYWdlL1NldHRpbmdzLmluCkBAIC0yOTEsNiArMjkxLDggQEAgbGFuZ0F0dHJpYnV0
ZUF3YXJlRm9ybUNvbnRyb2xVSUVuYWJsZWQgaW5pdGlhbD1mYWxzZQogCiBzdWJyZXNvdXJjZUlu
dGVncml0eUVuYWJsZWQgaW5pdGlhbD10cnVlCiAKK2xpbmtQcmVjb25uZWN0RW5hYmxlZCBpbml0
aWFsPWZhbHNlCisKIGJlYWNvbkFQSUVuYWJsZWQgaW5pdGlhbD1mYWxzZQogCiBjb25zdGFudFBy
b3BlcnRpZXNFbmFibGVkIGluaXRpYWw9ZmFsc2UKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
TmV0d29ya1Byb2Nlc3MvTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuY3BwIGIvU291cmNl
L1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5jcHAK
aW5kZXggNzAzZDU5MWMyNGJiZTkwZTZmMDdmNGNiNWI5NDRhYTZhZWJjN2MzOC4uYWY2NWZmZmM3
YWRiNzQxZjc2MGU0N2RiYTViYzQ0ZjRjY2U4MDhlNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5jcHAKKysrIGIv
U291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vz
cy5jcHAKQEAgLTQzLDkgKzQzLDExIEBACiAjaW5jbHVkZSAiTmV0d29ya1Jlc291cmNlTG9hZGVy
TWVzc2FnZXMuaCIKICNpbmNsdWRlICJOZXR3b3JrU29ja2V0U3RyZWFtLmgiCiAjaW5jbHVkZSAi
TmV0d29ya1NvY2tldFN0cmVhbU1lc3NhZ2VzLmgiCisjaW5jbHVkZSAiUHJlY29ubmVjdFRhc2su
aCIKICNpbmNsdWRlICJSZW1vdGVOZXR3b3JraW5nQ29udGV4dC5oIgogI2luY2x1ZGUgIlNlc3Np
b25UcmFja2VyLmgiCiAjaW5jbHVkZSAiV2ViQ29yZUFyZ3VtZW50Q29kZXJzLmgiCisjaW5jbHVk
ZSAiV2ViRXJyb3JzLmgiCiAjaW5jbHVkZSAiV2Vic2l0ZURhdGFTdG9yZVBhcmFtZXRlcnMuaCIK
ICNpbmNsdWRlIDxXZWJDb3JlL05ldHdvcmtTdG9yYWdlU2Vzc2lvbi5oPgogI2luY2x1ZGUgPFdl
YkNvcmUvUGluZ0hhbmRsZS5oPgpAQCAtMjg3LDYgKzI4OSwyNiBAQCB2b2lkIE5ldHdvcmtDb25u
ZWN0aW9uVG9XZWJQcm9jZXNzOjpwcmVmZXRjaEROUyhjb25zdCBTdHJpbmcmIGhvc3RuYW1lKQog
ICAgIE5ldHdvcmtQcm9jZXNzOjpzaW5nbGV0b24oKS5wcmVmZXRjaEROUyhob3N0bmFtZSk7CiB9
CiAKK3ZvaWQgTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6OnByZWNvbm5lY3RUbyh1aW50
NjRfdCBwcmVjb25uZWN0aW9uSWRlbnRpZmllciwgY29uc3QgVVJMJiB1cmwsIFdlYkNvcmU6OlN0
b3JlZENyZWRlbnRpYWxzUG9saWN5IHN0b3JlZENyZWRlbnRpYWxzUG9saWN5KQoreworI2lmIEVO
QUJMRShTRVJWRVJfUFJFQ09OTkVDVCkKKyAgICBuZXcgUHJlY29ubmVjdFRhc2sodXJsLCBzdG9y
ZWRDcmVkZW50aWFsc1BvbGljeSwgW3RoaXMsIHByb3RlY3RlZFRoaXMgPSBtYWtlUmVmKCp0aGlz
KSwgaWRlbnRpZmllciA9IHByZWNvbm5lY3Rpb25JZGVudGlmaWVyXSAoY29uc3QgUmVzb3VyY2VF
cnJvciYgZXJyb3IpIHsKKyAgICAgICAgZGlkRmluaXNoUHJlY29ubmVjdGlvbihpZGVudGlmaWVy
LCBlcnJvcik7CisgICAgfSk7CisjZWxzZQorICAgIFVOVVNFRF9QQVJBTShzdG9yZWRDcmVkZW50
aWFsc1BvbGljeSk7CisgICAgZGlkRmluaXNoUHJlY29ubmVjdGlvbihwcmVjb25uZWN0aW9uSWRl
bnRpZmllciwgaW50ZXJuYWxFcnJvcih1cmwpKTsKKyNlbmRpZgorfQorCit2b2lkIE5ldHdvcmtD
b25uZWN0aW9uVG9XZWJQcm9jZXNzOjpkaWRGaW5pc2hQcmVjb25uZWN0aW9uKHVpbnQ2NF90IHBy
ZWNvbm5lY3Rpb25JZGVudGlmaWVyLCBjb25zdCBSZXNvdXJjZUVycm9yJiBlcnJvcikKK3sKKyAg
ICBpZiAoIW1fY29ubmVjdGlvbi0+aXNWYWxpZCgpKQorICAgICAgICByZXR1cm47CisKKyAgICBt
X2Nvbm5lY3Rpb24tPnNlbmQoTWVzc2FnZXM6Ok5ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbjo6RGlk
RmluaXNoUHJlY29ubmVjdGlvbihwcmVjb25uZWN0aW9uSWRlbnRpZmllciwgZXJyb3IpLCAwKTsK
K30KKwogc3RhdGljIE5ldHdvcmtTdG9yYWdlU2Vzc2lvbiYgc3RvcmFnZVNlc3Npb24oUEFMOjpT
ZXNzaW9uSUQgc2Vzc2lvbklEKQogewogICAgIEFTU0VSVChzZXNzaW9uSUQuaXNWYWxpZCgpKTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0Nvbm5lY3Rp
b25Ub1dlYlByb2Nlc3MuaCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0Nv
bm5lY3Rpb25Ub1dlYlByb2Nlc3MuaAppbmRleCBjZDI4MDQyY2ZmYmYxNjBjY2NiN2U1ZDRkNDdh
YzE4Njk1OTI1MGQ5Li4zODFkNjgxZDRiNzJlODJlM2EyOTM3MDg4Mzk0Y2I0ZGNlMmMyYTY4IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtDb25uZWN0aW9u
VG9XZWJQcm9jZXNzLmgKKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3Jr
Q29ubmVjdGlvblRvV2ViUHJvY2Vzcy5oCkBAIC03Niw2ICs3Niw4IEBAIHB1YmxpYzoKIHByaXZh
dGU6CiAgICAgTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MoSVBDOjpDb25uZWN0aW9uOjpJ
ZGVudGlmaWVyKTsKIAorICAgIHZvaWQgZGlkRmluaXNoUHJlY29ubmVjdGlvbih1aW50NjRfdCBw
cmVjb25uZWN0aW9uSWRlbnRpZmllciwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VFcnJvciYpOwor
CiAgICAgLy8gSVBDOjpDb25uZWN0aW9uOjpDbGllbnQKICAgICB2b2lkIGRpZFJlY2VpdmVNZXNz
YWdlKElQQzo6Q29ubmVjdGlvbiYsIElQQzo6RGVjb2RlciYpIG92ZXJyaWRlOwogICAgIHZvaWQg
ZGlkUmVjZWl2ZVN5bmNNZXNzYWdlKElQQzo6Q29ubmVjdGlvbiYsIElQQzo6RGVjb2RlciYsIHN0
ZDo6dW5pcXVlX3B0cjxJUEM6OkVuY29kZXI+Jikgb3ZlcnJpZGU7CkBAIC05MCw2ICs5Miw3IEBA
IHByaXZhdGU6CiAgICAgdm9pZCBwZXJmb3JtU3luY2hyb25vdXNMb2FkKGNvbnN0IE5ldHdvcmtS
ZXNvdXJjZUxvYWRQYXJhbWV0ZXJzJiwgUmVmPE1lc3NhZ2VzOjpOZXR3b3JrQ29ubmVjdGlvblRv
V2ViUHJvY2Vzczo6UGVyZm9ybVN5bmNocm9ub3VzTG9hZDo6RGVsYXllZFJlcGx5PiYmKTsKICAg
ICB2b2lkIGxvYWRQaW5nKE5ldHdvcmtSZXNvdXJjZUxvYWRQYXJhbWV0ZXJzJiYsIFdlYkNvcmU6
OkhUVFBIZWFkZXJNYXAmJiBvcmlnaW5hbFJlcXVlc3RIZWFkZXJzKTsKICAgICB2b2lkIHByZWZl
dGNoRE5TKGNvbnN0IFN0cmluZyYpOworICAgIHZvaWQgcHJlY29ubmVjdFRvKHVpbnQ2NF90IHBy
ZWNvbm5lY3Rpb25JZGVudGlmaWVyLCBjb25zdCBXZWJDb3JlOjpVUkwmLCBXZWJDb3JlOjpTdG9y
ZWRDcmVkZW50aWFsc1BvbGljeSk7CiAKICAgICB2b2lkIHJlbW92ZUxvYWRJZGVudGlmaWVyKFJl
c291cmNlTG9hZElkZW50aWZpZXIpOwogICAgIHZvaWQgc2V0RGVmZXJzTG9hZGluZyhSZXNvdXJj
ZUxvYWRJZGVudGlmaWVyLCBib29sKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29y
a1Byb2Nlc3MvTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MubWVzc2FnZXMuaW4gYi9Tb3Vy
Y2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzLm1l
c3NhZ2VzLmluCmluZGV4IGFiZjBmY2NhMDAyYTRhZTUzY2UwYWU3MDgyNmJlZWFlNDFkNmVkNTYu
LjYxM2VjNGE5NmMzY2I2ZTI1NTEzNGZjZjg3NDhiYmIxYTYwYWU3NzUgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3Mu
bWVzc2FnZXMuaW4KKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrQ29u
bmVjdGlvblRvV2ViUHJvY2Vzcy5tZXNzYWdlcy5pbgpAQCAtMjgsNiArMjgsNyBAQCBtZXNzYWdl
cyAtPiBOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2VzcyBMZWdhY3lSZWNlaXZlciB7CiAgICAg
UmVtb3ZlTG9hZElkZW50aWZpZXIodWludDY0X3QgcmVzb3VyY2VMb2FkSWRlbnRpZmllcikKICAg
ICBTZXREZWZlcnNMb2FkaW5nKHVpbnQ2NF90IHJlc291cmNlTG9hZElkZW50aWZpZXIsIGJvb2wg
ZGVmZXJzKQogICAgIFByZWZldGNoRE5TKFN0cmluZyBob3N0bmFtZSkKKyAgICBQcmVjb25uZWN0
VG8odWludDY0X3QgcHJlY29ubmVjdGlvbklkZW50aWZpZXIsIFdlYkNvcmU6OlVSTCB1cmwsIGVu
dW0gV2ViQ29yZTo6U3RvcmVkQ3JlZGVudGlhbHNQb2xpY3kgc3RvcmVkQ3JlZGVudGlhbHNQb2xp
Y3kpOwogCiAgICAgU3RhcnREb3dubG9hZChQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIFdlYktp
dDo6RG93bmxvYWRJRCBkb3dubG9hZElELCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QgcmVxdWVz
dCwgU3RyaW5nIHN1Z2dlc3RlZE5hbWUpCiAgICAgQ29udmVydE1haW5SZXNvdXJjZUxvYWRUb0Rv
d25sb2FkKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgdWludDY0X3QgbWFpblJlc291cmNlTG9h
ZElkZW50aWZpZXIsIFdlYktpdDo6RG93bmxvYWRJRCBkb3dubG9hZElELCBXZWJDb3JlOjpSZXNv
dXJjZVJlcXVlc3QgcmVxdWVzdCwgV2ViQ29yZTo6UmVzb3VyY2VSZXNwb25zZSByZXNwb25zZSkK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0RhdGFUYXNr
LmNwcCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0RhdGFUYXNrLmNwcApp
bmRleCA4MDU0YjQ3MzNkZmZhMzBkNGEwMjkyZWY1MmE4Yjk2NjZjYjM1OTQxLi5iYjdmMTc1MWZm
ZTRhMTliZTUzODgzY2Q1ZTFiMWFlMzgzODAyNTU3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L05ldHdvcmtQcm9jZXNzL05ldHdvcmtEYXRhVGFzay5jcHAKKysrIGIvU291cmNlL1dlYktpdC9O
ZXR3b3JrUHJvY2Vzcy9OZXR3b3JrRGF0YVRhc2suY3BwCkBAIC01Myw3ICs1Myw3IEBAIFJlZjxO
ZXR3b3JrRGF0YVRhc2s+IE5ldHdvcmtEYXRhVGFzazo6Y3JlYXRlKE5ldHdvcmtTZXNzaW9uJiBz
ZXNzaW9uLCBOZXR3b3JrRGF0CiAgICAgICAgIHJldHVybiBOZXR3b3JrRGF0YVRhc2tCbG9iOjpj
cmVhdGUoc2Vzc2lvbiwgY2xpZW50LCBwYXJhbWV0ZXJzLnJlcXVlc3QsIHBhcmFtZXRlcnMuY29u
dGVudFNuaWZmaW5nUG9saWN5LCBwYXJhbWV0ZXJzLmJsb2JGaWxlUmVmZXJlbmNlcyk7CiAKICNp
ZiBQTEFURk9STShDT0NPQSkKLSAgICByZXR1cm4gTmV0d29ya0RhdGFUYXNrQ29jb2E6OmNyZWF0
ZShzZXNzaW9uLCBjbGllbnQsIHBhcmFtZXRlcnMucmVxdWVzdCwgcGFyYW1ldGVycy5zdG9yZWRD
cmVkZW50aWFsc1BvbGljeSwgcGFyYW1ldGVycy5jb250ZW50U25pZmZpbmdQb2xpY3ksIHBhcmFt
ZXRlcnMuc2hvdWxkQ2xlYXJSZWZlcnJlck9uSFRUUFNUb0hUVFBSZWRpcmVjdCk7CisgICAgcmV0
dXJuIE5ldHdvcmtEYXRhVGFza0NvY29hOjpjcmVhdGUoc2Vzc2lvbiwgY2xpZW50LCBwYXJhbWV0
ZXJzLnJlcXVlc3QsIHBhcmFtZXRlcnMuc3RvcmVkQ3JlZGVudGlhbHNQb2xpY3ksIHBhcmFtZXRl
cnMuY29udGVudFNuaWZmaW5nUG9saWN5LCBwYXJhbWV0ZXJzLnNob3VsZENsZWFyUmVmZXJyZXJP
bkhUVFBTVG9IVFRQUmVkaXJlY3QsIHBhcmFtZXRlcnMuc2hvdWxkUHJlY29ubmVjdE9ubHkpOwog
I2VuZGlmCiAjaWYgVVNFKFNPVVApCiAgICAgcmV0dXJuIE5ldHdvcmtEYXRhVGFza1NvdXA6OmNy
ZWF0ZShzZXNzaW9uLCBjbGllbnQsIHBhcmFtZXRlcnMucmVxdWVzdCwgcGFyYW1ldGVycy5zdG9y
ZWRDcmVkZW50aWFsc1BvbGljeSwgcGFyYW1ldGVycy5jb250ZW50U25pZmZpbmdQb2xpY3ksIHBh
cmFtZXRlcnMuc2hvdWxkQ2xlYXJSZWZlcnJlck9uSFRUUFNUb0hUVFBSZWRpcmVjdCk7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtMb2FkUGFyYW1ldGVy
cy5oIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrTG9hZFBhcmFtZXRlcnMu
aAppbmRleCAxZmJkMmRhNDkxZDg3NmYxYWFiOWQxMjhlODM0ZmU0ZDcxZDQ5MTBiLi4yNWFhNTA1
ODBkZTlhOThhY2RjMDI3YTgxMDdhMjhlYTg5MzQ3NTc4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtMb2FkUGFyYW1ldGVycy5oCisrKyBiL1NvdXJjZS9X
ZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0xvYWRQYXJhbWV0ZXJzLmgKQEAgLTMzLDYgKzMz
LDggQEAKIAogbmFtZXNwYWNlIFdlYktpdCB7CiAKK2VudW0gY2xhc3MgUHJlY29ubmVjdE9ubHkg
eyBObywgWWVzIH07CisKIGNsYXNzIE5ldHdvcmtMb2FkUGFyYW1ldGVycyB7CiBwdWJsaWM6CiAg
ICAgdWludDY0X3Qgd2ViUGFnZUlEIHsgMCB9OwpAQCAtNDksNiArNTEsNyBAQCBwdWJsaWM6CiAj
aWYgVVNFKE5FVFdPUktfU0VTU0lPTikKICAgICBWZWN0b3I8UmVmUHRyPFdlYkNvcmU6OkJsb2JE
YXRhRmlsZVJlZmVyZW5jZT4+IGJsb2JGaWxlUmVmZXJlbmNlczsKICNlbmRpZgorICAgIFByZWNv
bm5lY3RPbmx5IHNob3VsZFByZWNvbm5lY3RPbmx5IHsgUHJlY29ubmVjdE9ubHk6Ok5vIH07CiB9
OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0
d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MuY3BwIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJv
Y2Vzcy9OZXR3b3JrUHJvY2Vzcy5jcHAKaW5kZXggNzllMDJjZjg3MjE1MmM3YTA5YjY4NDlhNjVk
NmFlM2Q4YjNlNjU4OC4uZjcxZTFkMWZmMDk1MmVjYTMyYjkwNGYyNGUzYzRlY2QyYmFhZmRhMSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5j
cHAKKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5jcHAK
QEAgLTQwLDYgKzQwLDcgQEAKICNpbmNsdWRlICJOZXR3b3JrUHJvY2Vzc1Byb3h5TWVzc2FnZXMu
aCIKICNpbmNsdWRlICJOZXR3b3JrUmVzb3VyY2VMb2FkZXIuaCIKICNpbmNsdWRlICJOZXR3b3Jr
U2Vzc2lvbi5oIgorI2luY2x1ZGUgIlByZWNvbm5lY3RUYXNrLmgiCiAjaW5jbHVkZSAiUmVtb3Rl
TmV0d29ya2luZ0NvbnRleHQuaCIKICNpbmNsdWRlICJTZXNzaW9uVHJhY2tlci5oIgogI2luY2x1
ZGUgIlN0YXRpc3RpY3NEYXRhLmgiCkBAIC03MjUsNiArNzI2LDE2IEBAIFN0cmluZyBOZXR3b3Jr
UHJvY2Vzczo6Y2FjaGVTdG9yYWdlRGlyZWN0b3J5KFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCkg
Y29uc3QKICAgICByZXR1cm4gc2Vzc2lvbi0+Y2FjaGVTdG9yYWdlRGlyZWN0b3J5KCk7CiB9CiAK
K3ZvaWQgTmV0d29ya1Byb2Nlc3M6OnByZWNvbm5lY3RUbyhjb25zdCBXZWJDb3JlOjpVUkwmIHVy
bCwgV2ViQ29yZTo6U3RvcmVkQ3JlZGVudGlhbHNQb2xpY3kgc3RvcmVkQ3JlZGVudGlhbHNQb2xp
Y3kpCit7CisjaWYgRU5BQkxFKFNFUlZFUl9QUkVDT05ORUNUKQorICAgIG5ldyBQcmVjb25uZWN0
VGFzayh1cmwsIHN0b3JlZENyZWRlbnRpYWxzUG9saWN5KTsKKyNlbHNlCisgICAgVU5VU0VEX1BB
UkFNKHVybCk7CisgICAgVU5VU0VEX1BBUkFNKHN0b3JlZENyZWRlbnRpYWxzUG9saWN5KTsKKyNl
bmRpZgorfQorCiAjaWYgIVBMQVRGT1JNKENPQ09BKQogdm9pZCBOZXR3b3JrUHJvY2Vzczo6aW5p
dGlhbGl6ZVByb2Nlc3MoY29uc3QgQ2hpbGRQcm9jZXNzSW5pdGlhbGl6YXRpb25QYXJhbWV0ZXJz
JikKIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1By
b2Nlc3MuaCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MuaApp
bmRleCAxNGE1MjJmY2Q2ZGQ1ZjBmZGJjNGE1MDEwNWEwYWI0MGJiMGM1MmIwLi5iOWZhNzIwODRj
NDgwOTUxMjc0YWY5YTQxNDdiZWViMDU3MWI4YjU2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L05ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLmgKKysrIGIvU291cmNlL1dlYktpdC9OZXR3
b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5oCkBAIC01NCw2ICs1NCw4IEBAIGNsYXNzIFByb3Rl
Y3Rpb25TcGFjZTsKIGNsYXNzIFNlY3VyaXR5T3JpZ2luOwogc3RydWN0IFNlY3VyaXR5T3JpZ2lu
RGF0YTsKIHN0cnVjdCBTb3VwTmV0d29ya1Byb3h5U2V0dGluZ3M7CitlbnVtIGNsYXNzIFN0b3Jl
ZENyZWRlbnRpYWxzUG9saWN5OworY2xhc3MgVVJMOwogfQogCiBuYW1lc3BhY2UgV2ViS2l0IHsK
QEAgLTEzNyw2ICsxMzksOCBAQCBwdWJsaWM6CiAgICAgU2Vjb25kcyBsb2FkVGhyb3R0bGVMYXRl
bmN5KCkgY29uc3QgeyByZXR1cm4gbV9sb2FkVGhyb3R0bGVMYXRlbmN5OyB9CiAgICAgU3RyaW5n
IGNhY2hlU3RvcmFnZURpcmVjdG9yeShQQUw6OlNlc3Npb25JRCkgY29uc3Q7CiAKKyAgICB2b2lk
IHByZWNvbm5lY3RUbyhjb25zdCBXZWJDb3JlOjpVUkwmLCBXZWJDb3JlOjpTdG9yZWRDcmVkZW50
aWFsc1BvbGljeSk7CisKIHByaXZhdGU6CiAgICAgTmV0d29ya1Byb2Nlc3MoKTsKICAgICB+TmV0
d29ya1Byb2Nlc3MoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mv
TmV0d29ya1Byb2Nlc3MubWVzc2FnZXMuaW4gYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNz
L05ldHdvcmtQcm9jZXNzLm1lc3NhZ2VzLmluCmluZGV4IDY5NGU0NzQ4ODZlMGY3ODRmNzU5YjRl
YmRkOGU2ZTllNWU2OWM1ODguLjQ2MWYxYzBlYzI4MmYyMTZlZjg5YTQ5OGUzMjk0NmQ4ZTE2MzU4
OGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nl
c3MubWVzc2FnZXMuaW4KKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3Jr
UHJvY2Vzcy5tZXNzYWdlcy5pbgpAQCAtODIsNiArODIsOCBAQCBtZXNzYWdlcyAtPiBOZXR3b3Jr
UHJvY2VzcyBMZWdhY3lSZWNlaXZlciB7CiAKICAgICBEaWRHcmFudFNhbmRib3hFeHRlbnNpb25z
VG9TdG9yYWdlUHJvY2Vzc0ZvckJsb2JzKHVpbnQ2NF90IHJlcXVlc3RJRCkKIAorICAgIFByZWNv
bm5lY3RUbyhXZWJDb3JlOjpVUkwgdXJsLCBlbnVtIFdlYkNvcmU6OlN0b3JlZENyZWRlbnRpYWxz
UG9saWN5IHN0b3JlZENyZWRlbnRpYWxzUG9saWN5KTsKKwogI2lmIEhBVkUoQ0ZORVRXT1JLX1NU
T1JBR0VfUEFSVElUSU9OSU5HKQogICAgIFVwZGF0ZVByZXZhbGVudERvbWFpbnNUb1BhcnRpdGlv
bk9yQmxvY2tDb29raWVzKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgVmVjdG9yPFN0cmluZz4g
ZG9tYWluc1RvUGFydGl0aW9uLCBWZWN0b3I8U3RyaW5nPiBkb21haW5zVG9CbG9jaywgVmVjdG9y
PFN0cmluZz4gZG9tYWluc1RvTmVpdGhlclBhcnRpdGlvbk5vckJsb2NrLCBib29sIHNob3VsZENs
ZWFyRmlyc3QpCiAgICAgUmVtb3ZlUHJldmFsZW50RG9tYWlucyhQQUw6OlNlc3Npb25JRCBzZXNz
aW9uSUQsIFZlY3RvcjxTdHJpbmc+IGRvbWFpbnNXaXRoSW50ZXJhY3Rpb24pOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9QcmVjb25uZWN0VGFzay5jcHAgYi9Tb3Vy
Y2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL1ByZWNvbm5lY3RUYXNrLmNwcApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5k
NWJjM2QzYmIyM2U1M2QxZGViYzYwN2IyNzE1ZDM5ZTk1MjExNGM2Ci0tLSAvZGV2L251bGwKKysr
IGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9QcmVjb25uZWN0VGFzay5jcHAKQEAgLTAs
MCArMSwxMzAgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTcgQXBwbGUgSW5jLiBBbGwgcmln
aHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFu
ZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVy
bWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0
OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5h
cnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4g
dGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQg
d2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQg
QlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkg
RVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJ
VE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8g
RVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUg
Rk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlks
IE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9T
UyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04p
IEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJ
TgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdM
SUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVT
RSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElU
WSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAi
UHJlY29ubmVjdFRhc2suaCIKKworI2lmIEVOQUJMRShTRVJWRVJfUFJFQ09OTkVDVCkKKworI2lu
Y2x1ZGUgIkF1dGhlbnRpY2F0aW9uTWFuYWdlci5oIgorI2luY2x1ZGUgIkxvZ2dpbmcuaCIKKyNp
bmNsdWRlICJOZXR3b3JrTG9hZFBhcmFtZXRlcnMuaCIKKyNpbmNsdWRlICJOZXR3b3JrU2Vzc2lv
bi5oIgorI2luY2x1ZGUgIldlYkVycm9ycy5oIgorI2luY2x1ZGUgPFdlYkNvcmUvQXV0aGVudGlj
YXRpb25DaGFsbGVuZ2UuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL1Jlc291cmNlRXJyb3IuaD4KKwor
I2lmIFBMQVRGT1JNKENPQ09BKQorI2luY2x1ZGUgIk5ldHdvcmtEYXRhVGFza0NvY29hLmgiCisj
ZW5kaWYKKworbmFtZXNwYWNlIFdlYktpdCB7CisKK3VzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwor
CitQcmVjb25uZWN0VGFzazo6UHJlY29ubmVjdFRhc2soY29uc3QgVVJMJiB1cmwsIFdlYkNvcmU6
OlN0b3JlZENyZWRlbnRpYWxzUG9saWN5IHN0b3JlZENyZWRlbnRpYWxzUG9saWN5LCBXVEY6OkNv
bXBsZXRpb25IYW5kbGVyPHZvaWQoY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VFcnJvciYpPiYmIGNv
bXBsZXRpb25IYW5kbGVyKQorICAgIDogbV9jb21wbGV0aW9uSGFuZGxlcihXVEZNb3ZlKGNvbXBs
ZXRpb25IYW5kbGVyKSkKK3sKKyAgICBSRUxFQVNFX0xPRyhOZXR3b3JrLCAiJXAgLSBQcmVjb25u
ZWN0VGFzazo6UHJlY29ubmVjdFRhc2soKSIsIHRoaXMpOworICAgIE5ldHdvcmtMb2FkUGFyYW1l
dGVycyBwYXJhbWV0ZXJzOworICAgIHBhcmFtZXRlcnMucmVxdWVzdCA9IFJlc291cmNlUmVxdWVz
dCh1cmwpOworICAgIHBhcmFtZXRlcnMuc2hvdWxkUHJlY29ubmVjdE9ubHkgPSBQcmVjb25uZWN0
T25seTo6WWVzOworICAgIHBhcmFtZXRlcnMuc3RvcmVkQ3JlZGVudGlhbHNQb2xpY3kgPSBzdG9y
ZWRDcmVkZW50aWFsc1BvbGljeTsKKyAgICBtX3Rhc2sgPSBOZXR3b3JrRGF0YVRhc2s6OmNyZWF0
ZShOZXR3b3JrU2Vzc2lvbjo6ZGVmYXVsdFNlc3Npb24oKSwgKnRoaXMsIHBhcmFtZXRlcnMpOwor
ICAgIG1fdGFzay0+cmVzdW1lKCk7Cit9CisKK1ByZWNvbm5lY3RUYXNrOjp+UHJlY29ubmVjdFRh
c2soKQoreworICAgIEFTU0VSVChtX3Rhc2stPmNsaWVudCgpID09IHRoaXMpOworICAgIG1fdGFz
ay0+Y2xlYXJDbGllbnQoKTsKKyAgICBtX3Rhc2stPmNhbmNlbCgpOworICAgIEFTU0VSVCghbV9j
b21wbGV0aW9uSGFuZGxlcik7Cit9CisKK3ZvaWQgUHJlY29ubmVjdFRhc2s6OndpbGxQZXJmb3Jt
SFRUUFJlZGlyZWN0aW9uKFdlYkNvcmU6OlJlc291cmNlUmVzcG9uc2UmJiwgV2ViQ29yZTo6UmVz
b3VyY2VSZXF1ZXN0JiYsIFJlZGlyZWN0Q29tcGxldGlvbkhhbmRsZXImJikKK3sKKyAgICBBU1NF
UlRfTk9UX1JFQUNIRUQoKTsKK30KKwordm9pZCBQcmVjb25uZWN0VGFzazo6ZGlkUmVjZWl2ZUNo
YWxsZW5nZShjb25zdCBXZWJDb3JlOjpBdXRoZW50aWNhdGlvbkNoYWxsZW5nZSYgY2hhbGxlbmdl
LCBDaGFsbGVuZ2VDb21wbGV0aW9uSGFuZGxlciYmIGNvbXBsZXRpb25IYW5kbGVyKQoreworICAg
IGlmIChjaGFsbGVuZ2UucHJvdGVjdGlvblNwYWNlKCkuYXV0aGVudGljYXRpb25TY2hlbWUoKSA9
PSBQcm90ZWN0aW9uU3BhY2VBdXRoZW50aWNhdGlvblNjaGVtZVNlcnZlclRydXN0RXZhbHVhdGlv
blJlcXVlc3RlZCkgeworICAgICAgICBpZiAobV90YXNrICYmIG1fdGFzay0+YWxsb3dzU3BlY2lm
aWNIVFRQU0NlcnRpZmljYXRlRm9ySG9zdChjaGFsbGVuZ2UpKQorICAgICAgICAgICAgY29tcGxl
dGlvbkhhbmRsZXIoQXV0aGVudGljYXRpb25DaGFsbGVuZ2VEaXNwb3NpdGlvbjo6VXNlQ3JlZGVu
dGlhbCwgc2VydmVyVHJ1c3RDcmVkZW50aWFsKGNoYWxsZW5nZSkpOworICAgICAgICBlbHNlCisg
ICAgICAgICAgICBjb21wbGV0aW9uSGFuZGxlcihBdXRoZW50aWNhdGlvbkNoYWxsZW5nZURpc3Bv
c2l0aW9uOjpSZWplY3RQcm90ZWN0aW9uU3BhY2UsIHsgfSk7CisgICAgICAgIHJldHVybjsKKyAg
ICB9CisgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7Cit9CisKK3ZvaWQgUHJlY29ubmVjdFRhc2s6
OmRpZFJlY2VpdmVSZXNwb25zZU5ldHdvcmtTZXNzaW9uKFdlYkNvcmU6OlJlc291cmNlUmVzcG9u
c2UmJiwgUmVzcG9uc2VDb21wbGV0aW9uSGFuZGxlciYmKQoreworICAgIEFTU0VSVF9OT1RfUkVB
Q0hFRCgpOworfQorCit2b2lkIFByZWNvbm5lY3RUYXNrOjpkaWRSZWNlaXZlRGF0YShSZWY8V2Vi
Q29yZTo6U2hhcmVkQnVmZmVyPiYmKQoreworICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOworfQor
Cit2b2lkIFByZWNvbm5lY3RUYXNrOjpkaWRDb21wbGV0ZVdpdGhFcnJvcihjb25zdCBXZWJDb3Jl
OjpSZXNvdXJjZUVycm9yJiBlcnJvciwgY29uc3QgV2ViQ29yZTo6TmV0d29ya0xvYWRNZXRyaWNz
JikKK3sKKyAgICBpZiAoZXJyb3IuaXNOdWxsKCkpCisgICAgICAgIFJFTEVBU0VfTE9HKE5ldHdv
cmssICIlcCAtIFByZWNvbm5lY3RUYXNrOjpkaWRDb21wbGV0ZSIsIHRoaXMpOworICAgIGVsc2UK
KyAgICAgICAgUkVMRUFTRV9MT0coTmV0d29yaywgIiVwIC0gUHJlY29ubmVjdFRhc2s6OmRpZENv
bXBsZXRlV2l0aEVycm9yLCBlcnJvcl9jb2RlOiAlZCIsIHRoaXMsIGVycm9yLmVycm9yQ29kZSgp
KTsKKworICAgIG1fY29tcGxldGlvbkhhbmRsZXIoZXJyb3IpOworfQorCit2b2lkIFByZWNvbm5l
Y3RUYXNrOjpkaWRTZW5kRGF0YSh1aW50NjRfdCB0b3RhbEJ5dGVzU2VudCwgdWludDY0X3QgdG90
YWxCeXRlc0V4cGVjdGVkVG9TZW5kKQoreworICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOworfQor
Cit2b2lkIFByZWNvbm5lY3RUYXNrOjp3YXNCbG9ja2VkKCkKK3sKKyAgICBSRUxFQVNFX0xPRyhO
ZXR3b3JrLCAiJXAgLSBQcmVjb25uZWN0VGFzazo6d2FzQmxvY2tlZCgpIiwgdGhpcyk7CisgICAg
ZGlkRmluaXNoKGJsb2NrZWRFcnJvcihSZXNvdXJjZVJlcXVlc3QgeyB9KSk7Cit9CisKK3ZvaWQg
UHJlY29ubmVjdFRhc2s6OmNhbm5vdFNob3dVUkwoKQoreworICAgIFJFTEVBU0VfTE9HKE5ldHdv
cmssICIlcCAtIFByZWNvbm5lY3RUYXNrOjpjYW5ub3RTaG93VVJMKCkiLCB0aGlzKTsKKyAgICBk
aWRGaW5pc2goY2Fubm90U2hvd1VSTEVycm9yKFJlc291cmNlUmVxdWVzdCB7IH0pKTsKK30KKwor
dm9pZCBQcmVjb25uZWN0VGFzazo6ZGlkRmluaXNoKGNvbnN0IFJlc291cmNlRXJyb3ImIGVycm9y
KQoreworICAgIGlmIChtX2NvbXBsZXRpb25IYW5kbGVyKQorICAgICAgICBtX2NvbXBsZXRpb25I
YW5kbGVyKGVycm9yKTsKKyAgICBkZWxldGUgdGhpczsKK30KKworfSAvLyBuYW1lc3BhY2UgV2Vi
S2l0CisKKyNlbmRpZiAvLyBFTkFCTEUoU0VSVkVSX1BSRUNPTk5FQ1QpCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL1ByZWNvbm5lY3RUYXNrLmggYi9Tb3VyY2UvV2Vi
S2l0L05ldHdvcmtQcm9jZXNzL1ByZWNvbm5lY3RUYXNrLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYzI4NzhiNGRk
NTlhMWJkNTdkMDRmZTA0ZDVjM2M5ZmZlMDdlMmUzZgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJj
ZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvUHJlY29ubmVjdFRhc2suaApAQCAtMCwwICsxLDU5IEBA
CisvKgorICogQ29weXJpZ2h0IChDKSAyMDE3IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZl
ZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZv
cm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92
aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJl
ZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJp
Z2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVz
dCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAg
ZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRp
c3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElO
Qy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1Ig
SU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRI
RSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBB
IFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxM
IEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElS
RUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09O
U0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VS
RU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBE
QVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENB
VVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRS
QUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBP
VEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBT
T0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBE
QU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNpZiBFTkFCTEUoU0VSVkVSX1BSRUNPTk5F
Q1QpCisKKyNpbmNsdWRlICJOZXR3b3JrRGF0YVRhc2suaCIKKyNpbmNsdWRlIDx3dGYvQ29tcGxl
dGlvbkhhbmRsZXIuaD4KKworbmFtZXNwYWNlIFdlYktpdCB7CisKK2NsYXNzIFByZWNvbm5lY3RU
YXNrIGZpbmFsIDogcHJpdmF0ZSBOZXR3b3JrRGF0YVRhc2tDbGllbnQgeworcHVibGljOgorICAg
IGV4cGxpY2l0IFByZWNvbm5lY3RUYXNrKGNvbnN0IFdlYkNvcmU6OlVSTCYsIFdlYkNvcmU6OlN0
b3JlZENyZWRlbnRpYWxzUG9saWN5LCBXVEY6OkNvbXBsZXRpb25IYW5kbGVyPHZvaWQoY29uc3Qg
V2ViQ29yZTo6UmVzb3VyY2VFcnJvciYpPiYmIGNvbXBsZXRpb25IYW5kbGVyID0geyB9KTsKKyAg
ICB+UHJlY29ubmVjdFRhc2soKTsKKworcHJpdmF0ZToKKyAgICAvLyBOZXR3b3JrRGF0YVRhc2tD
bGllbnQuCisgICAgdm9pZCB3aWxsUGVyZm9ybUhUVFBSZWRpcmVjdGlvbihXZWJDb3JlOjpSZXNv
dXJjZVJlc3BvbnNlJiYsIFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYmLCBSZWRpcmVjdENvbXBs
ZXRpb25IYW5kbGVyJiYpIGZpbmFsOworICAgIHZvaWQgZGlkUmVjZWl2ZUNoYWxsZW5nZShjb25z
dCBXZWJDb3JlOjpBdXRoZW50aWNhdGlvbkNoYWxsZW5nZSYsIENoYWxsZW5nZUNvbXBsZXRpb25I
YW5kbGVyJiYpIGZpbmFsOworICAgIHZvaWQgZGlkUmVjZWl2ZVJlc3BvbnNlTmV0d29ya1Nlc3Np
b24oV2ViQ29yZTo6UmVzb3VyY2VSZXNwb25zZSYmLCBSZXNwb25zZUNvbXBsZXRpb25IYW5kbGVy
JiYpIGZpbmFsOworICAgIHZvaWQgZGlkUmVjZWl2ZURhdGEoUmVmPFdlYkNvcmU6OlNoYXJlZEJ1
ZmZlcj4mJikgZmluYWw7CisgICAgdm9pZCBkaWRDb21wbGV0ZVdpdGhFcnJvcihjb25zdCBXZWJD
b3JlOjpSZXNvdXJjZUVycm9yJiwgY29uc3QgV2ViQ29yZTo6TmV0d29ya0xvYWRNZXRyaWNzJikg
ZmluYWw7CisgICAgdm9pZCBkaWRTZW5kRGF0YSh1aW50NjRfdCB0b3RhbEJ5dGVzU2VudCwgdWlu
dDY0X3QgdG90YWxCeXRlc0V4cGVjdGVkVG9TZW5kKSBmaW5hbDsKKyAgICB2b2lkIHdhc0Jsb2Nr
ZWQoKSBmaW5hbDsKKyAgICB2b2lkIGNhbm5vdFNob3dVUkwoKSBmaW5hbDsKKworICAgIHZvaWQg
ZGlkRmluaXNoKGNvbnN0IFdlYkNvcmU6OlJlc291cmNlRXJyb3ImKTsKKworICAgIFJlZlB0cjxO
ZXR3b3JrRGF0YVRhc2s+IG1fdGFzazsKKyAgICBXVEY6OkNvbXBsZXRpb25IYW5kbGVyPHZvaWQo
Y29uc3QgV2ViQ29yZTo6UmVzb3VyY2VFcnJvciYpPiBtX2NvbXBsZXRpb25IYW5kbGVyOworfTsK
KworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CisKKyNlbmRpZiAvLyBFTkFCTEUoU0VSVkVSX1BSRUNP
Tk5FQ1QpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL2NvY29hL05l
dHdvcmtEYXRhVGFza0NvY29hLmggYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL2NvY29h
L05ldHdvcmtEYXRhVGFza0NvY29hLmgKaW5kZXggY2RmNDMyNGMwNmJkNmM3MTEwMDc0NzA2ZTUy
OTUyMTk4MGYwNDNjOC4uMjEyYTlhMDhmYjEyMTE3ZWQ4M2ExMjI2ZGZiZjRmYWYwZjQ5ZTIyYSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9jb2NvYS9OZXR3b3JrRGF0
YVRhc2tDb2NvYS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvY29jb2EvTmV0
d29ya0RhdGFUYXNrQ29jb2EuaApAQCAtMjgsNiArMjgsNyBAQAogI2lmIFVTRShORVRXT1JLX1NF
U1NJT04pCiAKICNpbmNsdWRlICJOZXR3b3JrRGF0YVRhc2suaCIKKyNpbmNsdWRlICJOZXR3b3Jr
TG9hZFBhcmFtZXRlcnMuaCIKICNpbmNsdWRlIDxXZWJDb3JlL05ldHdvcmtMb2FkTWV0cmljcy5o
PgogI2luY2x1ZGUgPHd0Zi9SZXRhaW5QdHIuaD4KIApAQCAtNDAsOSArNDEsOSBAQCBjbGFzcyBO
ZXR3b3JrU2Vzc2lvbkNvY29hOwogY2xhc3MgTmV0d29ya0RhdGFUYXNrQ29jb2EgZmluYWwgOiBw
dWJsaWMgTmV0d29ya0RhdGFUYXNrIHsKICAgICBmcmllbmQgY2xhc3MgTmV0d29ya1Nlc3Npb25D
b2NvYTsKIHB1YmxpYzoKLSAgICBzdGF0aWMgUmVmPE5ldHdvcmtEYXRhVGFzaz4gY3JlYXRlKE5l
dHdvcmtTZXNzaW9uJiBzZXNzaW9uLCBOZXR3b3JrRGF0YVRhc2tDbGllbnQmIGNsaWVudCwgY29u
c3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0LCBXZWJDb3JlOjpTdG9yZWRDcmVk
ZW50aWFsc1BvbGljeSBzdG9yZWRDcmVkZW50aWFsc1BvbGljeSwgV2ViQ29yZTo6Q29udGVudFNu
aWZmaW5nUG9saWN5IHNob3VsZENvbnRlbnRTbmlmZiwgYm9vbCBzaG91bGRDbGVhclJlZmVycmVy
T25IVFRQU1RvSFRUUFJlZGlyZWN0KQorICAgIHN0YXRpYyBSZWY8TmV0d29ya0RhdGFUYXNrPiBj
cmVhdGUoTmV0d29ya1Nlc3Npb24mIHNlc3Npb24sIE5ldHdvcmtEYXRhVGFza0NsaWVudCYgY2xp
ZW50LCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QsIFdlYkNvcmU6OlN0
b3JlZENyZWRlbnRpYWxzUG9saWN5IHN0b3JlZENyZWRlbnRpYWxzUG9saWN5LCBXZWJDb3JlOjpD
b250ZW50U25pZmZpbmdQb2xpY3kgc2hvdWxkQ29udGVudFNuaWZmLCBib29sIHNob3VsZENsZWFy
UmVmZXJyZXJPbkhUVFBTVG9IVFRQUmVkaXJlY3QsIFByZWNvbm5lY3RPbmx5IHNob3VsZFByZWNv
bm5lY3RPbmx5KQogICAgIHsKLSAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgTmV0d29ya0Rh
dGFUYXNrQ29jb2Eoc2Vzc2lvbiwgY2xpZW50LCByZXF1ZXN0LCBzdG9yZWRDcmVkZW50aWFsc1Bv
bGljeSwgc2hvdWxkQ29udGVudFNuaWZmLCBzaG91bGRDbGVhclJlZmVycmVyT25IVFRQU1RvSFRU
UFJlZGlyZWN0KSk7CisgICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IE5ldHdvcmtEYXRhVGFz
a0NvY29hKHNlc3Npb24sIGNsaWVudCwgcmVxdWVzdCwgc3RvcmVkQ3JlZGVudGlhbHNQb2xpY3ks
IHNob3VsZENvbnRlbnRTbmlmZiwgc2hvdWxkQ2xlYXJSZWZlcnJlck9uSFRUUFNUb0hUVFBSZWRp
cmVjdCwgc2hvdWxkUHJlY29ubmVjdE9ubHkpKTsKICAgICB9CiAKICAgICB+TmV0d29ya0RhdGFU
YXNrQ29jb2EoKTsKQEAgLTcxLDcgKzcyLDcgQEAgcHVibGljOgogICAgIFdlYkNvcmU6Ok5ldHdv
cmtMb2FkTWV0cmljcyYgbmV0d29ya0xvYWRNZXRyaWNzKCkgeyByZXR1cm4gbV9uZXR3b3JrTG9h
ZE1ldHJpY3M7IH0KIAogcHJpdmF0ZToKLSAgICBOZXR3b3JrRGF0YVRhc2tDb2NvYShOZXR3b3Jr
U2Vzc2lvbiYsIE5ldHdvcmtEYXRhVGFza0NsaWVudCYsIGNvbnN0IFdlYkNvcmU6OlJlc291cmNl
UmVxdWVzdCYsIFdlYkNvcmU6OlN0b3JlZENyZWRlbnRpYWxzUG9saWN5LCBXZWJDb3JlOjpDb250
ZW50U25pZmZpbmdQb2xpY3ksIGJvb2wgc2hvdWxkQ2xlYXJSZWZlcnJlck9uSFRUUFNUb0hUVFBS
ZWRpcmVjdCk7CisgICAgTmV0d29ya0RhdGFUYXNrQ29jb2EoTmV0d29ya1Nlc3Npb24mLCBOZXR3
b3JrRGF0YVRhc2tDbGllbnQmLCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmLCBXZWJD
b3JlOjpTdG9yZWRDcmVkZW50aWFsc1BvbGljeSwgV2ViQ29yZTo6Q29udGVudFNuaWZmaW5nUG9s
aWN5LCBib29sIHNob3VsZENsZWFyUmVmZXJyZXJPbkhUVFBTVG9IVFRQUmVkaXJlY3QsIFByZWNv
bm5lY3RPbmx5KTsKIAogICAgIGJvb2wgdHJ5UGFzc3dvcmRCYXNlZEF1dGhlbnRpY2F0aW9uKGNv
bnN0IFdlYkNvcmU6OkF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlJiwgQ2hhbGxlbmdlQ29tcGxldGlv
bkhhbmRsZXImKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9j
b2NvYS9OZXR3b3JrRGF0YVRhc2tDb2NvYS5tbSBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nl
c3MvY29jb2EvTmV0d29ya0RhdGFUYXNrQ29jb2EubW0KaW5kZXggOTk3ZTBlZTFhZjY4ODNlZTcy
OGQzMDAwNDhjYzZiMmVkNDlkMjQ5OS4uZGJiYjEwMDQwMTQ5YTRmNmVmMjBkZTM5M2Y3Yzk2ODY2
MWI4NGU4NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9jb2NvYS9O
ZXR3b3JrRGF0YVRhc2tDb2NvYS5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNz
L2NvY29hL05ldHdvcmtEYXRhVGFza0NvY29hLm1tCkBAIC03NCw3ICs3NCw3IEBAIHN0YXRpYyBm
bG9hdCB0b05TVVJMU2Vzc2lvblRhc2tQcmlvcml0eShXZWJDb3JlOjpSZXNvdXJjZUxvYWRQcmlv
cml0eSBwcmlvcml0eSkKICAgICByZXR1cm4gTlNVUkxTZXNzaW9uVGFza1ByaW9yaXR5RGVmYXVs
dDsKIH0KIAotTmV0d29ya0RhdGFUYXNrQ29jb2E6Ok5ldHdvcmtEYXRhVGFza0NvY29hKE5ldHdv
cmtTZXNzaW9uJiBzZXNzaW9uLCBOZXR3b3JrRGF0YVRhc2tDbGllbnQmIGNsaWVudCwgY29uc3Qg
V2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0V2l0aENyZWRlbnRpYWxzLCBXZWJDb3Jl
OjpTdG9yZWRDcmVkZW50aWFsc1BvbGljeSBzdG9yZWRDcmVkZW50aWFsc1BvbGljeSwgV2ViQ29y
ZTo6Q29udGVudFNuaWZmaW5nUG9saWN5IHNob3VsZENvbnRlbnRTbmlmZiwgYm9vbCBzaG91bGRD
bGVhclJlZmVycmVyT25IVFRQU1RvSFRUUFJlZGlyZWN0KQorTmV0d29ya0RhdGFUYXNrQ29jb2E6
Ok5ldHdvcmtEYXRhVGFza0NvY29hKE5ldHdvcmtTZXNzaW9uJiBzZXNzaW9uLCBOZXR3b3JrRGF0
YVRhc2tDbGllbnQmIGNsaWVudCwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiByZXF1
ZXN0V2l0aENyZWRlbnRpYWxzLCBXZWJDb3JlOjpTdG9yZWRDcmVkZW50aWFsc1BvbGljeSBzdG9y
ZWRDcmVkZW50aWFsc1BvbGljeSwgV2ViQ29yZTo6Q29udGVudFNuaWZmaW5nUG9saWN5IHNob3Vs
ZENvbnRlbnRTbmlmZiwgYm9vbCBzaG91bGRDbGVhclJlZmVycmVyT25IVFRQU1RvSFRUUFJlZGly
ZWN0LCBQcmVjb25uZWN0T25seSBzaG91bGRQcmVjb25uZWN0T25seSkKICAgICA6IE5ldHdvcmtE
YXRhVGFzayhzZXNzaW9uLCBjbGllbnQsIHJlcXVlc3RXaXRoQ3JlZGVudGlhbHMsIHN0b3JlZENy
ZWRlbnRpYWxzUG9saWN5LCBzaG91bGRDbGVhclJlZmVycmVyT25IVFRQU1RvSFRUUFJlZGlyZWN0
KQogewogICAgIGlmIChtX3NjaGVkdWxlZEZhaWx1cmVUeXBlICE9IE5vRmFpbHVyZSkKQEAgLTEy
OCw2ICsxMjgsMTQgQEAgTmV0d29ya0RhdGFUYXNrQ29jb2E6Ok5ldHdvcmtEYXRhVGFza0NvY29h
KE5ldHdvcmtTZXNzaW9uJiBzZXNzaW9uLCBOZXR3b3JrRGF0YVQKICAgICAgICAgTE9HKE5ldHdv
cmtTZXNzaW9uLCAiJWxsdSBDcmVhdGluZyBOZXR3b3JrRGF0YVRhc2sgd2l0aCBVUkwgJXMiLCBb
bV90YXNrIHRhc2tJZGVudGlmaWVyXSwgbnNSZXF1ZXN0LlVSTC5hYnNvbHV0ZVN0cmluZy5VVEY4
U3RyaW5nKTsKICAgICB9CiAKKyAgICBpZiAoc2hvdWxkUHJlY29ubmVjdE9ubHkgPT0gUHJlY29u
bmVjdE9ubHk6OlllcykgeworI2lmIEVOQUJMRShTRVJWRVJfUFJFQ09OTkVDVCkKKyAgICAgICAg
bV90YXNrLmdldCgpLl9wcmVjb25uZWN0ID0gdHJ1ZTsKKyNlbHNlCisgICAgICAgIEFTU0VSVF9O
T1RfUkVBQ0hFRCgpOworI2VuZGlmCisgICAgfQorCiAjaWYgSEFWRShDRk5FVFdPUktfU1RPUkFH
RV9QQVJUSVRJT05JTkcpCiAgICAgaWYgKHN0b3JlZENyZWRlbnRpYWxzUG9saWN5ID09IFdlYkNv
cmU6OlN0b3JlZENyZWRlbnRpYWxzUG9saWN5OjpVc2UpIHsKICAgICAgICAgU3RyaW5nIHN0b3Jh
Z2VQYXJ0aXRpb24gPSBzZXNzaW9uLm5ldHdvcmtTdG9yYWdlU2Vzc2lvbigpLmNvb2tpZVN0b3Jh
Z2VQYXJ0aXRpb24ocmVxdWVzdCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9X
ZWJDb3JlQXJndW1lbnRDb2RlcnMuaCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkNvcmVBcmd1
bWVudENvZGVycy5oCmluZGV4IDA4YzM4MzkwYjg0Y2U0ODc0MWNkNDRmZTE0MWVlNTZiODRiOTJj
NDMuLmViM2RiNTBkOTZiZTEwY2QxZWMyM2ZiOGQ4ZTc4ZTEyYThjYzIwZGUgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkNvcmVBcmd1bWVudENvZGVycy5oCisrKyBiL1NvdXJj
ZS9XZWJLaXQvU2hhcmVkL1dlYkNvcmVBcmd1bWVudENvZGVycy5oCkBAIC0zOSw2ICszOSw3IEBA
CiAjaW5jbHVkZSA8V2ViQ29yZS9QYXltZW50SGVhZGVycy5oPgogI2luY2x1ZGUgPFdlYkNvcmUv
UmVhbHRpbWVNZWRpYVNvdXJjZS5oPgogI2luY2x1ZGUgPFdlYkNvcmUvU2Nyb2xsU25hcE9mZnNl
dHNJbmZvLmg+CisjaW5jbHVkZSA8V2ViQ29yZS9TdG9yZWRDcmVkZW50aWFsc1BvbGljeS5oPgog
CiBuYW1lc3BhY2UgV1RGIHsKIGNsYXNzIE1vbm90b25pY1RpbWU7CkBAIC03NjYsNCArNzY3LDEy
IEBAIHRlbXBsYXRlPD4gc3RydWN0IEVudW1UcmFpdHM8V2ViQ29yZTo6TWVkaWFTZWxlY3Rpb25P
cHRpb246OlR5cGU+IHsKICAgICA+OwogfTsKIAordGVtcGxhdGUgPD4gc3RydWN0IEVudW1UcmFp
dHM8V2ViQ29yZTo6U3RvcmVkQ3JlZGVudGlhbHNQb2xpY3k+IHsKKyAgICB1c2luZyB2YWx1ZXMg
PSBFbnVtVmFsdWVzPAorICAgICAgICBXZWJDb3JlOjpTdG9yZWRDcmVkZW50aWFsc1BvbGljeSwK
KyAgICAgICAgV2ViQ29yZTo6U3RvcmVkQ3JlZGVudGlhbHNQb2xpY3k6OkRvTm90VXNlLAorICAg
ICAgICBXZWJDb3JlOjpTdG9yZWRDcmVkZW50aWFsc1BvbGljeTo6VXNlCisgICAgPjsKK307CisK
IH0gLy8gbmFtZXNwYWNlIFdURgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvV2Vi
UHJlZmVyZW5jZXNEZWZpbml0aW9ucy5oIGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViUHJlZmVy
ZW5jZXNEZWZpbml0aW9ucy5oCmluZGV4IGM2ODIwZDgxNTZkYjJiNWYyODU4MTEwMjFjODIyNzIy
Njk0ODU3MGQuLjgzYzYzNjEzMjhiMTg1NTBlMGRjYzFhZmFmM2RiZDdiNWRlMjhmZjYgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYlByZWZlcmVuY2VzRGVmaW5pdGlvbnMuaAor
KysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJQcmVmZXJlbmNlc0RlZmluaXRpb25zLmgKQEAg
LTQ1LDYgKzQ1LDEyIEBACiAjZGVmaW5lIERFRkFVTFRfSElEREVOX1BBR0VfQ1NTX0FOSU1BVElP
Tl9TVVNQRU5TSU9OX0VOQUJMRUQgZmFsc2UKICNlbmRpZgogCisjaWYgRU5BQkxFKFNFUlZFUl9Q
UkVDT05ORUNUKQorI2RlZmluZSBERUZBVUxUX0xJTktfUFJFQ09OTkVDVF9FTkFCTEVEIHRydWUK
KyNlbHNlCisjZGVmaW5lIERFRkFVTFRfTElOS19QUkVDT05ORUNUX0VOQUJMRUQgZmFsc2UKKyNl
bmRpZgorCiAjaWYgUExBVEZPUk0oQ09DT0EpCiAjZGVmaW5lIERFRkFVTFRfUERGUExVR0lOX0VO
QUJMRUQgdHJ1ZQogI2Vsc2UKQEAgLTE4MSw2ICsxODcsNyBAQAogICAgIG1hY3JvKERPTVBhc3Rl
QWxsb3dlZCwgZG9tUGFzdGVBbGxvd2VkLCBCb29sLCBib29sLCBmYWxzZSwgIiIsICIiKSBcCiAg
ICAgbWFjcm8oSmF2YVNjcmlwdENhbkFjY2Vzc0NsaXBib2FyZCwgamF2YVNjcmlwdENhbkFjY2Vz
c0NsaXBib2FyZCwgQm9vbCwgYm9vbCwgZmFsc2UsICIiLCAiIikgXAogICAgIG1hY3JvKFNob3Vs
ZFByaW50QmFja2dyb3VuZHMsIHNob3VsZFByaW50QmFja2dyb3VuZHMsIEJvb2wsIGJvb2wsIERF
RkFVTFRfU0hPVUxEX1BSSU5UX0JBQ0tHUk9VTkRTLCAiIiwgIiIpIFwKKyAgICBtYWNybyhMaW5r
UHJlY29ubmVjdCwgbGlua1ByZWNvbm5lY3QsIEJvb2wsIGJvb2wsIERFRkFVTFRfTElOS19QUkVD
T05ORUNUX0VOQUJMRUQsICIiLCAiIikgXAogICAgIG1hY3JvKEZ1bGxTY3JlZW5FbmFibGVkLCBm
dWxsU2NyZWVuRW5hYmxlZCwgQm9vbCwgYm9vbCwgZmFsc2UsICIiLCAiIikgXAogICAgIG1hY3Jv
KEFzeW5jaHJvbm91c1NwZWxsQ2hlY2tpbmdFbmFibGVkLCBhc3luY2hyb25vdXNTcGVsbENoZWNr
aW5nRW5hYmxlZCwgQm9vbCwgYm9vbCwgZmFsc2UsICIiLCAiIikgXAogICAgIG1hY3JvKFdlYlNl
Y3VyaXR5RW5hYmxlZCwgd2ViU2VjdXJpdHlFbmFibGVkLCBCb29sLCBib29sLCB0cnVlLCAiIiwg
IiIpIFwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9DL1dLQ29udGV4
dC5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQy9XS0NvbnRleHQuY3BwCmluZGV4
IDc4MzM4ZWQ2NTc4Y2RjZWMxZWUwY2UxMzQ0MzgyZWI0OTc2MDYyNTkuLjcwNDhiYmUwYzBkNzA3
MmRhMjRiYTFkMTRiYjkyOGQ5ZjllYWM5ZDggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL0FQSS9DL1dLQ29udGV4dC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
QVBJL0MvV0tDb250ZXh0LmNwcApAQCAtNDA3LDYgKzQwNywxMSBAQCB2b2lkIFdLQ29udGV4dFNl
dERpc2tDYWNoZVNwZWN1bGF0aXZlVmFsaWRhdGlvbkVuYWJsZWQoV0tDb250ZXh0UmVmIGNvbnRl
eHRSZWYsCiAgICAgdG9JbXBsKGNvbnRleHRSZWYpLT5jb25maWd1cmF0aW9uKCkuc2V0RGlza0Nh
Y2hlU3BlY3VsYXRpdmVWYWxpZGF0aW9uRW5hYmxlZCh2YWx1ZSk7CiB9CiAKK3ZvaWQgV0tDb250
ZXh0UHJlY29ubmVjdFRvU2VydmVyKFdLQ29udGV4dFJlZiBjb250ZXh0UmVmLCBXS1VSTFJlZiBz
ZXJ2ZXJVUkxSZWYpCit7CisgICAgdG9JbXBsKGNvbnRleHRSZWYpLT5wcmVjb25uZWN0VG9TZXJ2
ZXIoVVJMKFVSTCgpLCB0b1dURlN0cmluZyhzZXJ2ZXJVUkxSZWYpKSk7Cit9CisKIFdLQ29va2ll
TWFuYWdlclJlZiBXS0NvbnRleHRHZXRDb29raWVNYW5hZ2VyKFdLQ29udGV4dFJlZiBjb250ZXh0
UmVmKQogewogICAgIHJldHVybiB0b0FQSSh0b0ltcGwoY29udGV4dFJlZiktPnN1cHBsZW1lbnQ8
V2ViQ29va2llTWFuYWdlclByb3h5PigpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL0FQSS9DL1dLQ29udGV4dFByaXZhdGUuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L0FQSS9DL1dLQ29udGV4dFByaXZhdGUuaAppbmRleCAwMmY5MGI5MTdiNDg5NDUwZTIzMGI2YWU2
NDZhYTk3NDY5MDc3OGE3Li4xNTJkNmRhYjBiNjkwNjBjN2M2NmIxZjc5YTgwMzAyOWY4MTQ3OTE0
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQy9XS0NvbnRleHRQcml2
YXRlLmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0MvV0tDb250ZXh0UHJpdmF0
ZS5oCkBAIC0xMDUsNiArMTA1LDggQEAgV0tfRVhQT1JUIHZvaWQgV0tDb250ZXh0U2V0TWVtb3J5
Q2FjaGVEaXNhYmxlZChXS0NvbnRleHRSZWYsIGJvb2wgZGlzYWJsZWQpOwogCiBXS19FWFBPUlQg
dm9pZCBXS0NvbnRleHRTZXRGb250V2hpdGVsaXN0KFdLQ29udGV4dFJlZiwgV0tBcnJheVJlZik7
CiAKK1dLX0VYUE9SVCB2b2lkIFdLQ29udGV4dFByZWNvbm5lY3RUb1NlcnZlcihXS0NvbnRleHRS
ZWYgY29udGV4dCwgV0tVUkxSZWYgc2VydmVyVVJMKTsKKwogV0tfRVhQT1JUIFdLUHJvY2Vzc0lE
IFdLQ29udGV4dEdldE5ldHdvcmtQcm9jZXNzSWRlbnRpZmllcihXS0NvbnRleHRSZWYgY29udGV4
dCk7CiBXS19FWFBPUlQgV0tQcm9jZXNzSUQgV0tDb250ZXh0R2V0RGF0YWJhc2VQcm9jZXNzSWRl
bnRpZmllcihXS0NvbnRleHRSZWYgY29udGV4dCk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1Byb2Nlc3NQb29sLm1tIGIvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvQVBJL0NvY29hL1dLUHJvY2Vzc1Bvb2wubW0KaW5kZXggMWY1OTc0ZGY1N2EwMjFk
YmQ1YmM4OTRmY2Q4ZWE3MTgzNDhhODkyOC4uMTgwMjMwN2M3ZTBjZjkwMTg1N2UzNjYyYTk2MDE1
MDE1ZmM5NjAxNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29h
L1dLUHJvY2Vzc1Bvb2wubW0KKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29h
L1dLUHJvY2Vzc1Bvb2wubW0KQEAgLTQxNSw2ICs0MTUsMTEgQEAgc3RhdGljIE5TRGljdGlvbmFy
eSAqcG9saWNpZXNIYXNoTWFwVG9EaWN0aW9uYXJ5KGNvbnN0IEhhc2hNYXA8U3RyaW5nLCBIYXNo
TWFwPFMKICAgICByZXR1cm4gX3Byb2Nlc3NQb29sLT5wcm9jZXNzZXMoKS5zaXplKCk7CiB9CiAK
Ky0gKHZvaWQpX3ByZWNvbm5lY3RUb1NlcnZlcjooTlNVUkwgKilzZXJ2ZXJVUkwKK3sKKyAgICBf
cHJvY2Vzc1Bvb2wtPnByZWNvbm5lY3RUb1NlcnZlcihzZXJ2ZXJVUkwpOworfQorCiAtIChzaXpl
X3QpX3BsdWdpblByb2Nlc3NDb3VudAogewogI2lmICFQTEFURk9STShJT1MpCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tQcm9jZXNzUG9vbFByaXZhdGUu
aCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1Byb2Nlc3NQb29sUHJpdmF0
ZS5oCmluZGV4IDA3YWFlMzEwOGZiM2YzNmZmZDJmZjM5NTM0Y2EwZDE3ZTVjZjQ0ZjkuLjEzZmU1
OWM0ODJiODhhNGI4MjhkNWQ2OGZkMjAzOTNlZmFlMTJiODAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1Byb2Nlc3NQb29sUHJpdmF0ZS5oCisrKyBiL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1Byb2Nlc3NQb29sUHJpdmF0ZS5oCkBA
IC04Nyw2ICs4Nyw4IEBACiAvLyBUZXN0IG9ubHkuIFNob3VsZCBiZSBjYWxsZWQgYmVmb3JlIGFu
eSB3ZWIgY29udGVudCBwcm9jZXNzZXMgYXJlIGxhdW5jaGVkLgogKyAodm9pZClfZm9yY2VHYW1l
Q29udHJvbGxlckZyYW1ld29yayBXS19BUElfQVZBSUxBQkxFKG1hY29zeCgxMC4xMyksIGlvcygx
MS4wKSk7CiAKKy0gKHZvaWQpX3ByZWNvbm5lY3RUb1NlcnZlcjooTlNVUkwgKilzZXJ2ZXJVUkwg
V0tfQVBJX0FWQUlMQUJMRShtYWNvc3goV0tfTUFDX1RCQSksIGlvcyhXS19JT1NfVEJBKSk7CisK
IEBwcm9wZXJ0eSAobm9uYXRvbWljLCBnZXR0ZXI9X2lzQ29va2llU3RvcmFnZVBhcnRpdGlvbmlu
Z0VuYWJsZWQsIHNldHRlcj1fc2V0Q29va2llU3RvcmFnZVBhcnRpdGlvbmluZ0VuYWJsZWQ6KSBC
T09MIF9jb29raWVTdG9yYWdlUGFydGl0aW9uaW5nRW5hYmxlZCBXS19BUElfQVZBSUxBQkxFKG1h
Y29zeCgxMC4xMi4zKSwgaW9zKDEwLjMpKTsKIAogQGVuZApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Bvb2wuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvV2ViUHJvY2Vzc1Bvb2wuY3BwCmluZGV4IGFjYjlkNTYyNWVhYjc5NGJlNWNlZDYxZDdlYmMz
OGEyYzUyMzU1YjcuLjI2MjA4NjM5ZmY0ZTdkNjdhNTY0ZDgyNTI2OTlhMjY4ODc0ZWFlMTYgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQb29sLmNwcAorKysg
Yi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUG9vbC5jcHAKQEAgLTExNTcsNiAr
MTE1NywxNCBAQCB2b2lkIFdlYlByb2Nlc3NQb29sOjpzZXRDYW5IYW5kbGVIVFRQU1NlcnZlclRy
dXN0RXZhbHVhdGlvbihib29sIHZhbHVlKQogICAgIH0KIH0KIAordm9pZCBXZWJQcm9jZXNzUG9v
bDo6cHJlY29ubmVjdFRvU2VydmVyKGNvbnN0IFVSTCYgdXJsKQoreworICAgIGlmICghdXJsLmlz
VmFsaWQoKSB8fCAhdXJsLnByb3RvY29sSXNJbkhUVFBGYW1pbHkoKSkKKyAgICAgICAgcmV0dXJu
OworCisgICAgZW5zdXJlTmV0d29ya1Byb2Nlc3MoKS5zZW5kKE1lc3NhZ2VzOjpOZXR3b3JrUHJv
Y2Vzczo6UHJlY29ubmVjdFRvKHVybCwgU3RvcmVkQ3JlZGVudGlhbHNQb2xpY3k6OlVzZSksIDAp
OworfQorCiB2b2lkIFdlYlByb2Nlc3NQb29sOjpyZWdpc3RlclVSTFNjaGVtZUFzTG9jYWwoY29u
c3QgU3RyaW5nJiB1cmxTY2hlbWUpCiB7CiAgICAgbV9zY2hlbWVzVG9SZWdpc3RlckFzTG9jYWwu
YWRkKHVybFNjaGVtZSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQ
cm9jZXNzUG9vbC5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Bvb2wuaApp
bmRleCBlMTlmNmRmMmFmODZkNWNhNDQ3MGFkNmM4NjE0OTE3YTFmZjI4MDdhLi5hZDViMGM2N2E5
NTAwZDhiYThhZDY0ZTNkOGZhZDg5MDQzNTc5N2M1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUG9vbC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L1dlYlByb2Nlc3NQb29sLmgKQEAgLTIxNiw2ICsyMTYsNyBAQCBwdWJsaWM6CiAgICAgdm9pZCBy
ZWdpc3RlclVSTFNjaGVtZUFzRGlzcGxheUlzb2xhdGVkKGNvbnN0IFN0cmluZyYpOwogICAgIHZv
aWQgcmVnaXN0ZXJVUkxTY2hlbWVBc0NPUlNFbmFibGVkKGNvbnN0IFN0cmluZyYpOwogICAgIHZv
aWQgcmVnaXN0ZXJVUkxTY2hlbWVBc0NhY2hlUGFydGl0aW9uZWQoY29uc3QgU3RyaW5nJik7Cisg
ICAgdm9pZCBwcmVjb25uZWN0VG9TZXJ2ZXIoY29uc3QgV2ViQ29yZTo6VVJMJik7CiAKICAgICBW
aXNpdGVkTGlua1N0b3JlJiB2aXNpdGVkTGlua1N0b3JlKCkgeyByZXR1cm4gbV92aXNpdGVkTGlu
a1N0b3JlLmdldCgpOyB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViS2l0Lnhjb2Rl
cHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvV2ViS2l0L1dlYktpdC54Y29kZXByb2ovcHJv
amVjdC5wYnhwcm9qCmluZGV4IDY4MDdlOTNjZGRjODhjMDViMmNjNjBhNzE2YWVjN2U1NDQ0ZDIw
NjQuLmMyOGNjMTFjNWVlYWM0NmY4YzczNTVkMWZmMmYzYzIwOGI4YzViYzMgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291
cmNlL1dlYktpdC9XZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtMTM4MCw2ICsx
MzgwLDggQEAKIAkJODM5OTAyMDMxQkU5QTAyQjAwMEYzNjUzIC8qIE5ldHdvcmtMb2FkLmggaW4g
SGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4Mzk5MDFGRTFCRTlB
MDFCMDAwRjM2NTMgLyogTmV0d29ya0xvYWQuaCAqLzsgfTsKIAkJODM5QTJGMzExRTIwNjc0NTAw
MzkwNTdFIC8qIEhpZ2hQZXJmb3JtYW5jZUdyYXBoaWNzVXNhZ2VTYW1wbGVyLmNwcCBpbiBTb3Vy
Y2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDgzOUEyRjJGMUUyMDY3Mzkw
MDM5MDU3RSAvKiBIaWdoUGVyZm9ybWFuY2VHcmFwaGljc1VzYWdlU2FtcGxlci5jcHAgKi87IH07
CiAJCTgzOUEyRjMyMUUyMDY3NDUwMDM5MDU3RSAvKiBIaWdoUGVyZm9ybWFuY2VHcmFwaGljc1Vz
YWdlU2FtcGxlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gODM5QTJGMzAxRTIwNjczOTAwMzkwNTdFIC8qIEhpZ2hQZXJmb3JtYW5jZUdyYXBoaWNzVXNh
Z2VTYW1wbGVyLmggKi87IH07CisJCTgzQTBFRDM0MUY3NDdDQ0QwMDMyOTlFQiAvKiBQcmVjb25u
ZWN0VGFzay5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSA4M0EwRUQzMzFGNzQ3Q0M3MDAzMjk5RUIgLyogUHJlY29ubmVjdFRhc2suY3BwICovOyB9Owor
CQk4M0EwRUQzNTFGNzQ3Q0NGMDAzMjk5RUIgLyogUHJlY29ubmVjdFRhc2suaCBpbiBIZWFkZXJz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDgzQTBFRDMyMUY3NDdDQzYwMDMy
OTlFQiAvKiBQcmVjb25uZWN0VGFzay5oICovOyB9OwogCQk4M0JEQ0NCOTFBQzVGREI2MDAzRjY0
NDEgLyogTmV0d29ya0NhY2hlU3RhdGlzdGljcy5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4M0JEQ0NCODFBQzVGREI2MDAzRjY0NDEgLyogTmV0d29y
a0NhY2hlU3RhdGlzdGljcy5jcHAgKi87IH07CiAJCTgzQkZBQzQyMUQ5NjEzN0MwMDQzMzQ5MCAv
KiBCbG9iRG93bmxvYWRDbGllbnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDgzQkZBQzQwMUQ5NjEzNjAwMDQzMzQ5MCAvKiBCbG9iRG93bmxvYWRDbGll
bnQuaCAqLzsgfTsKIAkJODNCRkFDNDMxRDk2MTM3QzAwNDMzNDkwIC8qIEJsb2JEb3dubG9hZENs
aWVudC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4
M0JGQUM0MTFEOTYxMzYwMDA0MzM0OTAgLyogQmxvYkRvd25sb2FkQ2xpZW50LmNwcCAqLzsgfTsK
QEAgLTM3MzMsNiArMzczNSw4IEBACiAJCTgzOTkwMUZGMUJFOUEwMUIwMDBGMzY1MyAvKiBOZXR3
b3JrTG9hZC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IG5hbWUgPSBOZXR3b3Jr
TG9hZC5jcHA7IHBhdGggPSBOZXR3b3JrUHJvY2Vzcy9OZXR3b3JrTG9hZC5jcHA7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCTgzOUEyRjJGMUUyMDY3MzkwMDM5MDU3RSAvKiBIaWdoUGVy
Zm9ybWFuY2VHcmFwaGljc1VzYWdlU2FtcGxlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNw
cC5jcHA7IHBhdGggPSBIaWdoUGVyZm9ybWFuY2VHcmFwaGljc1VzYWdlU2FtcGxlci5jcHA7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTgzOUEyRjMwMUUyMDY3MzkwMDM5MDU3RSAvKiBI
aWdoUGVyZm9ybWFuY2VHcmFwaGljc1VzYWdlU2FtcGxlci5oICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jLmg7IHBhdGggPSBIaWdoUGVyZm9ybWFuY2VHcmFwaGljc1VzYWdlU2FtcGxlci5oOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OworCQk4M0EwRUQzMjFGNzQ3Q0M2MDAzMjk5RUIgLyogUHJl
Y29ubmVjdFRhc2suaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gUHJlY29ubmVj
dFRhc2suaDsgcGF0aCA9IE5ldHdvcmtQcm9jZXNzL1ByZWNvbm5lY3RUYXNrLmg7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CisJCTgzQTBFRDMzMUY3NDdDQzcwMDMyOTlFQiAvKiBQcmVjb25u
ZWN0VGFzay5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IG5hbWUgPSBQcmVjb25u
ZWN0VGFzay5jcHA7IHBhdGggPSBOZXR3b3JrUHJvY2Vzcy9QcmVjb25uZWN0VGFzay5jcHA7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTgzQkRDQ0I4MUFDNUZEQjYwMDNGNjQ0MSAvKiBO
ZXR3b3JrQ2FjaGVTdGF0aXN0aWNzLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsg
cGF0aCA9IE5ldHdvcmtDYWNoZVN0YXRpc3RpY3MuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwogCQk4M0JGQUM0MDFEOTYxMzYwMDA0MzM0OTAgLyogQmxvYkRvd25sb2FkQ2xpZW50Lmgg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IEJsb2JEb3dubG9hZENsaWVudC5oOyBw
YXRoID0gTmV0d29ya1Byb2Nlc3MvRG93bmxvYWRzL0Jsb2JEb3dubG9hZENsaWVudC5oOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk4M0JGQUM0MTFEOTYxMzYwMDA0MzM0OTAgLyogQmxv
YkRvd25sb2FkQ2xpZW50LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgbmFtZSA9
IEJsb2JEb3dubG9hZENsaWVudC5jcHA7IHBhdGggPSBOZXR3b3JrUHJvY2Vzcy9Eb3dubG9hZHMv
QmxvYkRvd25sb2FkQ2xpZW50LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTYx
MTUsNiArNjExOSw4IEBACiAJCQkJNUMwQjE3N0YxRTdDODg2NzAwRTkxMjNDIC8qIE5ldHdvcmtT
b2NrZXRTdHJlYW0ubWVzc2FnZXMuaW4gKi8sCiAJCQkJNDYyMTA3RDcxRjM4REJEMzAwREQ3ODEw
IC8qIFBpbmdMb2FkLmNwcCAqLywKIAkJCQk1Q0U4NUIxRjFDODhFNjQzMDA3MEJGQ0UgLyogUGlu
Z0xvYWQuaCAqLywKKwkJCQk4M0EwRUQzMzFGNzQ3Q0M3MDAzMjk5RUIgLyogUHJlY29ubmVjdFRh
c2suY3BwICovLAorCQkJCTgzQTBFRDMyMUY3NDdDQzYwMDMyOTlFQiAvKiBQcmVjb25uZWN0VGFz
ay5oICovLAogCQkJCUUxQjc4NDcwMTYzRjI0NjkwMDA3QjY5MiAvKiBSZW1vdGVOZXR3b3JraW5n
Q29udGV4dC5oICovLAogCQkJKTsKIAkJCW5hbWUgPSBOZXR3b3JrUHJvY2VzczsKQEAgLTg3MDks
NiArODcxNSw3IEBACiAJCQkJMUE0QTlGMzMxMkI4NDRFMjAwOEZFOTg0IC8qIFBsdWdpblF1aXJr
cy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJN0NENjIyNzgxNzM5RDg2MzAwNUJEN0ZGIC8qIFBsdWdp
blNhbmRib3hQcm9maWxlLmggaW4gSGVhZGVycyAqLywKIAkJCQkxQTZGQjdBRjExRTY0QjY4MDBE
QjEzNzEgLyogUGx1Z2luVmlldy5oIGluIEhlYWRlcnMgKi8sCisJCQkJODNBMEVEMzUxRjc0N0ND
RjAwMzI5OUVCIC8qIFByZWNvbm5lY3RUYXNrLmggaW4gSGVhZGVycyAqLywKIAkJCQlFMUNDMUI5
MDEyRDdFQURGMDA2MjU4MzggLyogUHJpbnRJbmZvLmggaW4gSGVhZGVycyAqLywKIAkJCQk4NkY5
NTM2NTE4RkY1OEY1MDAxREIyRUYgLyogUHJvY2Vzc0Fzc2VydGlvbi5oIGluIEhlYWRlcnMgKi8s
CiAJCQkJQkMxQTdDNTgxMTM2RTE5QzAwRkI3MTY3IC8qIFByb2Nlc3NMYXVuY2hlci5oIGluIEhl
YWRlcnMgKi8sCkBAIC0xMDI5MCw2ICsxMDI5Nyw3IEBACiAJCQkJN0NENjIyNzcxNzM5RDg2MzAw
NUJEN0ZGIC8qIFBsdWdpblNhbmRib3hQcm9maWxlLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJQkM4
Mjg0NEQxNkI1MDgxQzAwQTI3OEZFIC8qIFBsdWdpblNlcnZpY2VFbnRyeVBvaW50Lm1tIGluIFNv
dXJjZXMgKi8sCiAJCQkJMUE2RkI3QUUxMUU2NEI2ODAwREIxMzcxIC8qIFBsdWdpblZpZXcuY3Bw
IGluIFNvdXJjZXMgKi8sCisJCQkJODNBMEVEMzQxRjc0N0NDRDAwMzI5OUVCIC8qIFByZWNvbm5l
Y3RUYXNrLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUUxOEM5MkY0MTJEQjlFNzEwMENGMkFFQiAv
KiBQcmludEluZm8uY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJRTFDQzFCOTExMkQ3RUFERjAwNjI1
ODM4IC8qIFByaW50SW5mb01hYy5tbSBpbiBTb3VyY2VzICovLAogCQkJCTM3NzE2QTVBMTk1Qjkx
MDUwMEVFOEIxQiAvKiBQcm9jZXNzQXNzZXJ0aW9uLmNwcCBpbiBTb3VyY2VzICovLApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nlc3NDb25u
ZWN0aW9uLmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9j
ZXNzQ29ubmVjdGlvbi5jcHAKaW5kZXggOTYyNGUyOTY0Yzc0OWNiNzZjNWJmMDk3ZmUyYzUwYzdj
ZDZmZmE1Mi4uMzhkNTNjOWMyOWQwZTllZjFmNDA2MGE4ZDFiMDU0NzM4YzFkMDdjZiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nlc3NDb25u
ZWN0aW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvTmV0d29yay9OZXR3b3Jr
UHJvY2Vzc0Nvbm5lY3Rpb24uY3BwCkBAIC0xNDAsNiArMTQwLDExIEBAIHZvaWQgTmV0d29ya1By
b2Nlc3NDb25uZWN0aW9uOjpkaWRGaW5pc2hQaW5nTG9hZCh1aW50NjRfdCBwaW5nTG9hZElkZW50
aWZpZXIsIFJlCiAgICAgV2ViUHJvY2Vzczo6c2luZ2xldG9uKCkud2ViTG9hZGVyU3RyYXRlZ3ko
KS5kaWRGaW5pc2hQaW5nTG9hZChwaW5nTG9hZElkZW50aWZpZXIsIFdURk1vdmUoZXJyb3IpKTsK
IH0KIAordm9pZCBOZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb246OmRpZEZpbmlzaFByZWNvbm5lY3Rp
b24odWludDY0X3QgcHJlY29ubmVjdGlvbklkZW50aWZpZXIsIFJlc291cmNlRXJyb3ImJiBlcnJv
cikKK3sKKyAgICBXZWJQcm9jZXNzOjpzaW5nbGV0b24oKS53ZWJMb2FkZXJTdHJhdGVneSgpLmRp
ZEZpbmlzaFByZWNvbm5lY3Rpb24ocHJlY29ubmVjdGlvbklkZW50aWZpZXIsIFdURk1vdmUoZXJy
b3IpKTsKK30KKwogI2lmIEVOQUJMRShTSEFSRUFCTEVfUkVTT1VSQ0UpCiB2b2lkIE5ldHdvcmtQ
cm9jZXNzQ29ubmVjdGlvbjo6ZGlkQ2FjaGVSZXNvdXJjZShjb25zdCBSZXNvdXJjZVJlcXVlc3Qm
IHJlcXVlc3QsIGNvbnN0IFNoYXJlYWJsZVJlc291cmNlOjpIYW5kbGUmIGhhbmRsZSwgUEFMOjpT
ZXNzaW9uSUQgc2Vzc2lvbklEKQogewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uLmggYi9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvTmV0d29yay9OZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb24uaAppbmRleCBjNTM0NGVh
NjVkMDFlYzFhM2RhMmIwYjA1M2NmYzQwMzgzMWU1NDhjLi5kZWVhN2IwZmQ4MmI5ZmEzYjVhMTll
YmQ5YWJhNGE2MGQ4MmMwMTE4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
TmV0d29yay9OZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb24uaAorKysgYi9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvTmV0d29yay9OZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb24uaApAQCAtNzQsNiArNzQs
NyBAQCBwcml2YXRlOgogCiAgICAgdm9pZCBkaWRXcml0ZUJsb2JzVG9UZW1wb3JhcnlGaWxlcyh1
aW50NjRfdCByZXF1ZXN0SWRlbnRpZmllciwgY29uc3QgVmVjdG9yPFN0cmluZz4mIGZpbGVuYW1l
cyk7CiAgICAgdm9pZCBkaWRGaW5pc2hQaW5nTG9hZCh1aW50NjRfdCBwaW5nTG9hZElkZW50aWZp
ZXIsIFdlYkNvcmU6OlJlc291cmNlRXJyb3ImJik7CisgICAgdm9pZCBkaWRGaW5pc2hQcmVjb25u
ZWN0aW9uKHVpbnQ2NF90IHByZWNvbm5lY3Rpb25JZGVudGlmaWVyLCBXZWJDb3JlOjpSZXNvdXJj
ZUVycm9yJiYpOwogCiAjaWYgRU5BQkxFKFNIQVJFQUJMRV9SRVNPVVJDRSkKICAgICAvLyBNZXNz
YWdlIGhhbmRsZXJzLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL05ldHdv
cmsvTmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uLm1lc3NhZ2VzLmluIGIvU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uLm1lc3NhZ2VzLmluCmlu
ZGV4IDgzZWYyZTYyMjg5YmFlMWQ4MzM2YmJmOTIyZDNmNThkMjY0Yjg5ZTAuLjI4NzM2M2U3MzFl
NDk0NDEyYmY4YWRiYTYzNDNhMTBkMjFlZGYwYmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbi5tZXNzYWdlcy5pbgor
KysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvTmV0d29yay9OZXR3b3JrUHJvY2Vzc0Nvbm5l
Y3Rpb24ubWVzc2FnZXMuaW4KQEAgLTI4LDQgKzI4LDUgQEAgbWVzc2FnZXMgLT4gTmV0d29ya1By
b2Nlc3NDb25uZWN0aW9uIExlZ2FjeVJlY2VpdmVyIHsKIAogICAgIERpZFdyaXRlQmxvYnNUb1Rl
bXBvcmFyeUZpbGVzKHVpbnQ2NF90IHJlcXVlc3RJZGVudGlmaWVyLCBWZWN0b3I8U3RyaW5nPiBm
aWxlbmFtZXMpCiAgICAgRGlkRmluaXNoUGluZ0xvYWQodWludDY0X3QgcGluZ0xvYWRJZGVudGlm
aWVyLCBXZWJDb3JlOjpSZXNvdXJjZUVycm9yIGVycm9yKQorICAgIERpZEZpbmlzaFByZWNvbm5l
Y3Rpb24odWludDY0X3QgcHJlY29ubmVjdGlvbklkZW50aWZpZXIsIFdlYkNvcmU6OlJlc291cmNl
RXJyb3IgZXJyb3IpCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvTmV0
d29yay9XZWJMb2FkZXJTdHJhdGVneS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvTmV0
d29yay9XZWJMb2FkZXJTdHJhdGVneS5jcHAKaW5kZXggZWE3YjE3YTNkZWI2MWI5N2U0NWNlMWJl
OTg1NWQ2ZmRkNDA4NWVlNC4uYmI4MTBkMDY5ZjA2ZWExY2I1MTM0NWJjYTZiZTEwMWU5ODMzZmJk
MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL05ldHdvcmsvV2ViTG9hZGVy
U3RyYXRlZ3kuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9OZXR3b3JrL1dlYkxv
YWRlclN0cmF0ZWd5LmNwcApAQCAtMzU2LDYgKzM1NiwxMCBAQCB2b2lkIFdlYkxvYWRlclN0cmF0
ZWd5OjpuZXR3b3JrUHJvY2Vzc0NyYXNoZWQoKQogICAgIGF1dG8gcGluZ0xvYWRDb21wbGV0aW9u
SGFuZGxlcnMgPSBXVEZNb3ZlKG1fcGluZ0xvYWRDb21wbGV0aW9uSGFuZGxlcnMpOwogICAgIGZv
ciAoYXV0byYgcGluZ0xvYWRDb21wbGV0aW9uSGFuZGxlciA6IHBpbmdMb2FkQ29tcGxldGlvbkhh
bmRsZXJzLnZhbHVlcygpKQogICAgICAgICBwaW5nTG9hZENvbXBsZXRpb25IYW5kbGVyKGludGVy
bmFsRXJyb3IoVVJMKCkpKTsKKworICAgIGF1dG8gcHJlY29ubmVjdENvbXBsZXRpb25IYW5kbGVy
cyA9IFdURk1vdmUobV9wcmVjb25uZWN0Q29tcGxldGlvbkhhbmRsZXJzKTsKKyAgICBmb3IgKGF1
dG8mIHByZWNvbm5lY3RDb21wbGV0aW9uSGFuZGxlciA6IHByZWNvbm5lY3RDb21wbGV0aW9uSGFu
ZGxlcnMudmFsdWVzKCkpCisgICAgICAgIHByZWNvbm5lY3RDb21wbGV0aW9uSGFuZGxlcihpbnRl
cm5hbEVycm9yKFVSTCgpKSk7CiB9CiAKIHZvaWQgV2ViTG9hZGVyU3RyYXRlZ3k6OmxvYWRSZXNv
dXJjZVN5bmNocm9ub3VzbHkoTmV0d29ya2luZ0NvbnRleHQqIGNvbnRleHQsIHVuc2lnbmVkIGxv
bmcgcmVzb3VyY2VMb2FkSWRlbnRpZmllciwgY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0
LCBTdG9yZWRDcmVkZW50aWFsc1BvbGljeSBzdG9yZWRDcmVkZW50aWFsc1BvbGljeSwgQ2xpZW50
Q3JlZGVudGlhbFBvbGljeSBjbGllbnRDcmVkZW50aWFsUG9saWN5LCBSZXNvdXJjZUVycm9yJiBl
cnJvciwgUmVzb3VyY2VSZXNwb25zZSYgcmVzcG9uc2UsIFZlY3RvcjxjaGFyPiYgZGF0YSkKQEAg
LTM5Miw3ICszOTYsNyBAQCB2b2lkIFdlYkxvYWRlclN0cmF0ZWd5Ojpsb2FkUmVzb3VyY2VTeW5j
aHJvbm91c2x5KE5ldHdvcmtpbmdDb250ZXh0KiBjb250ZXh0LCB1bgogICAgIH0KIH0KIAotc3Rh
dGljIHVpbnQ2NF90IGdlbmVyYXRlUGluZ0xvYWRJZGVudGlmaWVyKCkKK3N0YXRpYyB1aW50NjRf
dCBnZW5lcmF0ZUxvYWRJZGVudGlmaWVyKCkKIHsKICAgICBzdGF0aWMgdWludDY0X3QgaWRlbnRp
ZmllciA9IDA7CiAgICAgcmV0dXJuICsraWRlbnRpZmllcjsKQEAgLTQyMiw3ICs0MjYsNyBAQCB2
b2lkIFdlYkxvYWRlclN0cmF0ZWd5OjpzdGFydFBpbmdMb2FkKEZyYW1lJiBmcmFtZSwgUmVzb3Vy
Y2VSZXF1ZXN0JiByZXF1ZXN0LCBjbwogICAgIH0KICAgICAKICAgICBOZXR3b3JrUmVzb3VyY2VM
b2FkUGFyYW1ldGVycyBsb2FkUGFyYW1ldGVyczsKLSAgICBsb2FkUGFyYW1ldGVycy5pZGVudGlm
aWVyID0gZ2VuZXJhdGVQaW5nTG9hZElkZW50aWZpZXIoKTsKKyAgICBsb2FkUGFyYW1ldGVycy5p
ZGVudGlmaWVyID0gZ2VuZXJhdGVMb2FkSWRlbnRpZmllcigpOwogICAgIGxvYWRQYXJhbWV0ZXJz
LnJlcXVlc3QgPSByZXF1ZXN0OwogICAgIGxvYWRQYXJhbWV0ZXJzLnNvdXJjZU9yaWdpbiA9ICZk
b2N1bWVudC0+c2VjdXJpdHlPcmlnaW4oKTsKICAgICBsb2FkUGFyYW1ldGVycy5zZXNzaW9uSUQg
PSB3ZWJQYWdlID8gd2ViUGFnZS0+c2Vzc2lvbklEKCkgOiBQQUw6OlNlc3Npb25JRDo6ZGVmYXVs
dFNlc3Npb25JRCgpOwpAQCAtNDU5LDYgKzQ2MywyMCBAQCB2b2lkIFdlYkxvYWRlclN0cmF0ZWd5
OjpkaWRGaW5pc2hQaW5nTG9hZCh1aW50NjRfdCBwaW5nTG9hZElkZW50aWZpZXIsIFJlc291cmNl
RQogICAgICAgICBjb21wbGV0aW9uSGFuZGxlcihXVEZNb3ZlKGVycm9yKSk7CiB9CiAKK3ZvaWQg
V2ViTG9hZGVyU3RyYXRlZ3k6OnByZWNvbm5lY3RUbyhjb25zdCBXZWJDb3JlOjpVUkwmIHVybCwg
U3RvcmVkQ3JlZGVudGlhbHNQb2xpY3kgc3RvcmVkQ3JlZGVudGlhbHNQb2xpY3ksIFByZWNvbm5l
Y3RDb21wbGV0aW9uSGFuZGxlciYmIGNvbXBsZXRpb25IYW5kbGVyKQoreworICAgIHVpbnQ2NF90
IHByZWNvbm5lY3Rpb25JZGVudGlmaWVyID0gZ2VuZXJhdGVMb2FkSWRlbnRpZmllcigpOworICAg
IGF1dG8gYWRkUmVzdWx0ID0gbV9wcmVjb25uZWN0Q29tcGxldGlvbkhhbmRsZXJzLmFkZChwcmVj
b25uZWN0aW9uSWRlbnRpZmllciwgV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcikpOworICAgIEFT
U0VSVF9VTlVTRUQoYWRkUmVzdWx0LCBhZGRSZXN1bHQuaXNOZXdFbnRyeSk7CisgICAgV2ViUHJv
Y2Vzczo6c2luZ2xldG9uKCkubmV0d29ya0Nvbm5lY3Rpb24oKS5jb25uZWN0aW9uKCkuc2VuZChN
ZXNzYWdlczo6TmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6OlByZWNvbm5lY3RUbyhwcmVj
b25uZWN0aW9uSWRlbnRpZmllciwgdXJsLCBzdG9yZWRDcmVkZW50aWFsc1BvbGljeSksIDApOwor
fQorCit2b2lkIFdlYkxvYWRlclN0cmF0ZWd5OjpkaWRGaW5pc2hQcmVjb25uZWN0aW9uKHVpbnQ2
NF90IHByZWNvbm5lY3Rpb25JZGVudGlmaWVyLCBSZXNvdXJjZUVycm9yJiYgZXJyb3IpCit7Cisg
ICAgaWYgKGF1dG8gY29tcGxldGlvbkhhbmRsZXIgPSBtX3ByZWNvbm5lY3RDb21wbGV0aW9uSGFu
ZGxlcnMudGFrZShwcmVjb25uZWN0aW9uSWRlbnRpZmllcikpCisgICAgICAgIGNvbXBsZXRpb25I
YW5kbGVyKFdURk1vdmUoZXJyb3IpKTsKK30KKwogdm9pZCBXZWJMb2FkZXJTdHJhdGVneTo6c3Rv
cmVEZXJpdmVkRGF0YVRvQ2FjaGUoY29uc3QgU0hBMTo6RGlnZXN0JiBib2R5SGFzaCwgY29uc3Qg
U3RyaW5nJiB0eXBlLCBjb25zdCBTdHJpbmcmIHBhcnRpdGlvbiwgV2ViQ29yZTo6U2hhcmVkQnVm
ZmVyJiBkYXRhKQogewogI2lmIEVOQUJMRShORVRXT1JLX0NBQ0hFKQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL05ldHdvcmsvV2ViTG9hZGVyU3RyYXRlZ3kuaCBiL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9OZXR3b3JrL1dlYkxvYWRlclN0cmF0ZWd5LmgKaW5kZXggNTcz
MDI4ZTVhN2I2NTc1YTIzNjgxZmY1MDI2Mjk0Y2VhOWE4N2QyZC4uNDFmZmJlNGE0MTIyYTU4ODMy
ODNjODZmZjkzNzg3YjBhYmE3ZTkzNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL05ldHdvcmsvV2ViTG9hZGVyU3RyYXRlZ3kuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvTmV0d29yay9XZWJMb2FkZXJTdHJhdGVneS5oCkBAIC02Miw2ICs2Miw5IEBAIHB1Ymxp
YzoKICAgICB2b2lkIHN0YXJ0UGluZ0xvYWQoV2ViQ29yZTo6RnJhbWUmLCBXZWJDb3JlOjpSZXNv
dXJjZVJlcXVlc3QmLCBjb25zdCBXZWJDb3JlOjpIVFRQSGVhZGVyTWFwJiBvcmlnaW5hbFJlcXVl
c3RIZWFkZXJzLCBjb25zdCBXZWJDb3JlOjpGZXRjaE9wdGlvbnMmLCBQaW5nTG9hZENvbXBsZXRp
b25IYW5kbGVyJiYpIGZpbmFsOwogICAgIHZvaWQgZGlkRmluaXNoUGluZ0xvYWQodWludDY0X3Qg
cGluZ0xvYWRJZGVudGlmaWVyLCBXZWJDb3JlOjpSZXNvdXJjZUVycm9yJiYpOwogCisgICAgdm9p
ZCBwcmVjb25uZWN0VG8oY29uc3QgV2ViQ29yZTo6VVJMJiwgV2ViQ29yZTo6U3RvcmVkQ3JlZGVu
dGlhbHNQb2xpY3ksIFByZWNvbm5lY3RDb21wbGV0aW9uSGFuZGxlciYmKSBmaW5hbDsKKyAgICB2
b2lkIGRpZEZpbmlzaFByZWNvbm5lY3Rpb24odWludDY0X3QgcHJlY29ubmVjdGlvbklkZW50aWZp
ZXIsIFdlYkNvcmU6OlJlc291cmNlRXJyb3ImJik7CisKICAgICB2b2lkIHN0b3JlRGVyaXZlZERh
dGFUb0NhY2hlKGNvbnN0IFNIQTE6OkRpZ2VzdCYgYm9keUhhc2gsIGNvbnN0IFN0cmluZyYgdHlw
ZSwgY29uc3QgU3RyaW5nJiBwYXJ0aXRpb24sIFdlYkNvcmU6OlNoYXJlZEJ1ZmZlciYpIGZpbmFs
OwogCiAgICAgdm9pZCBzZXRDYXB0dXJlRXh0cmFOZXR3b3JrTG9hZE1ldHJpY3NFbmFibGVkKGJv
b2wpIGZpbmFsOwpAQCAtODYsNiArODksNyBAQCBwcml2YXRlOgogICAgIEhhc2hNYXA8dW5zaWdu
ZWQgbG9uZywgUmVmUHRyPFdlYlJlc291cmNlTG9hZGVyPj4gbV93ZWJSZXNvdXJjZUxvYWRlcnM7
CiAgICAgSGFzaE1hcDx1bnNpZ25lZCBsb25nLCBXZWJVUkxTY2hlbWVUYXNrUHJveHkqPiBtX3Vy
bFNjaGVtZVRhc2tzOwogICAgIEhhc2hNYXA8dW5zaWduZWQgbG9uZywgUGluZ0xvYWRDb21wbGV0
aW9uSGFuZGxlcj4gbV9waW5nTG9hZENvbXBsZXRpb25IYW5kbGVyczsKKyAgICBIYXNoTWFwPHVu
c2lnbmVkIGxvbmcsIFByZWNvbm5lY3RDb21wbGV0aW9uSGFuZGxlcj4gbV9wcmVjb25uZWN0Q29t
cGxldGlvbkhhbmRsZXJzOwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcCBiL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwCmluZGV4IDFlYTdhM2MyZjViN2E1
ODMxOTU0N2U5NmE3MjkxMTM3NTNiMDRjN2QuLjE3MGVkZjdmYzQ5N2MzYzc3MTA1ZmMwNjkxYWRm
YmUwM2JmNTUyM2MgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdl
L1dlYlBhZ2UuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBh
Z2UuY3BwCkBAIC0zMDkwLDYgKzMwOTAsNyBAQCB2b2lkIFdlYlBhZ2U6OnVwZGF0ZVByZWZlcmVu
Y2VzKGNvbnN0IFdlYlByZWZlcmVuY2VzU3RvcmUmIHN0b3JlKQogICAgIHNldHRpbmdzLnNldFBh
Z2luYXRlRHVyaW5nTGF5b3V0RW5hYmxlZChzdG9yZS5nZXRCb29sVmFsdWVGb3JLZXkoV2ViUHJl
ZmVyZW5jZXNLZXk6OnBhZ2luYXRlRHVyaW5nTGF5b3V0RW5hYmxlZEtleSgpKSk7CiAgICAgc2V0
dGluZ3Muc2V0RE9NUGFzdGVBbGxvd2VkKHN0b3JlLmdldEJvb2xWYWx1ZUZvcktleShXZWJQcmVm
ZXJlbmNlc0tleTo6ZG9tUGFzdGVBbGxvd2VkS2V5KCkpKTsKICAgICBzZXR0aW5ncy5zZXRKYXZh
U2NyaXB0Q2FuQWNjZXNzQ2xpcGJvYXJkKHN0b3JlLmdldEJvb2xWYWx1ZUZvcktleShXZWJQcmVm
ZXJlbmNlc0tleTo6amF2YVNjcmlwdENhbkFjY2Vzc0NsaXBib2FyZEtleSgpKSk7CisgICAgc2V0
dGluZ3Muc2V0TGlua1ByZWNvbm5lY3RFbmFibGVkKHN0b3JlLmdldEJvb2xWYWx1ZUZvcktleShX
ZWJQcmVmZXJlbmNlc0tleTo6bGlua1ByZWNvbm5lY3RLZXkoKSkpOwogICAgIHNldHRpbmdzLnNl
dFNob3VsZFByaW50QmFja2dyb3VuZHMoc3RvcmUuZ2V0Qm9vbFZhbHVlRm9yS2V5KFdlYlByZWZl
cmVuY2VzS2V5OjpzaG91bGRQcmludEJhY2tncm91bmRzS2V5KCkpKTsKICAgICBzZXR0aW5ncy5z
ZXRXZWJTZWN1cml0eUVuYWJsZWQoc3RvcmUuZ2V0Qm9vbFZhbHVlRm9yS2V5KFdlYlByZWZlcmVu
Y2VzS2V5Ojp3ZWJTZWN1cml0eUVuYWJsZWRLZXkoKSkpOwogICAgIHNldHRpbmdzLnNldEFsbG93
VW5pdmVyc2FsQWNjZXNzRnJvbUZpbGVVUkxzKHN0b3JlLmdldEJvb2xWYWx1ZUZvcktleShXZWJQ
cmVmZXJlbmNlc0tleTo6YWxsb3dVbml2ZXJzYWxBY2Nlc3NGcm9tRmlsZVVSTHNLZXkoKSkpOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jb25maWcuaCBiL1NvdXJjZS9XZWJLaXQvY29uZmln
LmgKaW5kZXggZTg2N2Y0ODdjNzE4OTE0ZjRkODlmMjE5ZGEwMzkxYzk1MTcwYjZkNi4uY2FmNGZk
NzdiY2E5MDlkN2M2NDljYTY3YTE2MTcxYjc5ZTRkMjdiYSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9jb25maWcuaAorKysgYi9Tb3VyY2UvV2ViS2l0L2NvbmZpZy5oCkBAIC04OCw2ICs4OCwx
MiBAQAogI2VuZGlmCiAjZW5kaWYKIAorI2lmIFVTRShORVRXT1JLX1NFU1NJT04pICYmICgoUExB
VEZPUk0oTUFDKSAmJiBfX01BQ19PU19YX1ZFUlNJT05fTUlOX1JFUVVJUkVEID49IDEwMTMwMCkg
fHwgKFBMQVRGT1JNKElPUykgJiYgX19JUEhPTkVfT1NfVkVSU0lPTl9NSU5fUkVRVUlSRUQgPj0g
MTEwMDAwKSkKKyNpZm5kZWYgRU5BQkxFX1NFUlZFUl9QUkVDT05ORUNUCisjZGVmaW5lIEVOQUJM
RV9TRVJWRVJfUFJFQ09OTkVDVCAxCisjZW5kaWYKKyNlbmRpZgorCiAjaWZuZGVmIEhBVkVfU0VD
X0FDQ0VTU19DT05UUk9MCiAjaWYgUExBVEZPUk0oSU9TKSB8fCBQTEFURk9STShNQUMpCiAjZGVm
aW5lIEhBVkVfU0VDX0FDQ0VTU19DT05UUk9MIDEKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRM
ZWdhY3kvV2ViQ29yZVN1cHBvcnQvV2ViUmVzb3VyY2VMb2FkU2NoZWR1bGVyLmNwcCBiL1NvdXJj
ZS9XZWJLaXRMZWdhY3kvV2ViQ29yZVN1cHBvcnQvV2ViUmVzb3VyY2VMb2FkU2NoZWR1bGVyLmNw
cAppbmRleCA0ZDI5ODVkMWE0MzBiYzFiZDliZjI2M2I4OWU5ODFjZjYzYzVjYzM1Li4zOGM5YzMy
NzI5ZDhhZWE5OGNjZmE3NWFkNDI3ZWJhOWI3ZWM0NTI3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0TGVnYWN5L1dlYkNvcmVTdXBwb3J0L1dlYlJlc291cmNlTG9hZFNjaGVkdWxlci5jcHAKKysr
IGIvU291cmNlL1dlYktpdExlZ2FjeS9XZWJDb3JlU3VwcG9ydC9XZWJSZXNvdXJjZUxvYWRTY2hl
ZHVsZXIuY3BwCkBAIC0zNjksMyArMzY5LDcgQEAgdm9pZCBXZWJSZXNvdXJjZUxvYWRTY2hlZHVs
ZXI6OnN0YXJ0UGluZ0xvYWQoRnJhbWUmIGZyYW1lLCBSZXNvdXJjZVJlcXVlc3QmIHJlcXUKICAg
ICBuZXcgUGluZ0hhbmRsZShmcmFtZS5sb2FkZXIoKS5uZXR3b3JraW5nQ29udGV4dCgpLCByZXF1
ZXN0LCBvcHRpb25zLmNyZWRlbnRpYWxzICE9IEZldGNoT3B0aW9uczo6Q3JlZGVudGlhbHM6Ok9t
aXQsIFBpbmdIYW5kbGU6OlVzZXNBc3luY0NhbGxiYWNrczo6Tm8sIG9wdGlvbnMucmVkaXJlY3Qg
PT0gRmV0Y2hPcHRpb25zOjpSZWRpcmVjdDo6Rm9sbG93LCBXVEZNb3ZlKGNvbXBsZXRpb25IYW5k
bGVyKSk7CiB9CiAKK3ZvaWQgV2ViUmVzb3VyY2VMb2FkU2NoZWR1bGVyOjpwcmVjb25uZWN0VG8o
Y29uc3QgVVJMJiwgU3RvcmVkQ3JlZGVudGlhbHNQb2xpY3ksIFByZWNvbm5lY3RDb21wbGV0aW9u
SGFuZGxlciYmKQoreworfQorCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L1dlYkNv
cmVTdXBwb3J0L1dlYlJlc291cmNlTG9hZFNjaGVkdWxlci5oIGIvU291cmNlL1dlYktpdExlZ2Fj
eS9XZWJDb3JlU3VwcG9ydC9XZWJSZXNvdXJjZUxvYWRTY2hlZHVsZXIuaAppbmRleCAwZTBjMmRl
NTc3YzdjMmNmNzc2YTdmYTE2MWRkZGQ2Yjc1ZDEwOGE0Li5iZWY2ZDg2YTI2NjQzYjhjOWJkOGVj
NWNkNjZjNTY3YTk5ODZhZTkzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L1dlYkNv
cmVTdXBwb3J0L1dlYlJlc291cmNlTG9hZFNjaGVkdWxlci5oCisrKyBiL1NvdXJjZS9XZWJLaXRM
ZWdhY3kvV2ViQ29yZVN1cHBvcnQvV2ViUmVzb3VyY2VMb2FkU2NoZWR1bGVyLmgKQEAgLTYxLDYg
KzYxLDggQEAgcHVibGljOgogCiAgICAgdm9pZCBzdGFydFBpbmdMb2FkKFdlYkNvcmU6OkZyYW1l
JiwgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiwgY29uc3QgV2ViQ29yZTo6SFRUUEhlYWRlck1h
cCYsIGNvbnN0IFdlYkNvcmU6OkZldGNoT3B0aW9ucyYsIFBpbmdMb2FkQ29tcGxldGlvbkhhbmRs
ZXImJikgZmluYWw7CiAKKyAgICB2b2lkIHByZWNvbm5lY3RUbyhjb25zdCBXZWJDb3JlOjpVUkwm
LCBXZWJDb3JlOjpTdG9yZWRDcmVkZW50aWFsc1BvbGljeSwgUHJlY29ubmVjdENvbXBsZXRpb25I
YW5kbGVyJiYpIGZpbmFsOworCiAgICAgdm9pZCBzdG9yZURlcml2ZWREYXRhVG9DYWNoZShjb25z
dCBTSEExOjpEaWdlc3QmLCBjb25zdCBTdHJpbmcmLCBjb25zdCBTdHJpbmcmLCBXZWJDb3JlOjpT
aGFyZWRCdWZmZXImKSBmaW5hbCB7IH0KIAogICAgIHZvaWQgc2V0Q2FwdHVyZUV4dHJhTmV0d29y
a0xvYWRNZXRyaWNzRW5hYmxlZChib29sKSBmaW5hbCB7IH0KZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCBhYWU2YzBjMThiMzlk
NDQ3MjdhMGVkZGYzMDMwNGI0NDczYTczNjE2Li4wNjkzYTM3NTljYTUwZjdjYjk0MGNiNjc5NWUw
MGVjZGQ0NmJmOGFmIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5
b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTggQEAKKzIwMTctMDktMjYgIENocmlzIER1
bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KKworICAgICAgICBBZGQgc3VwcG9ydCBmb3IgPGxpbmsg
cmVsPXByZWNvbm5lY3Q+CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD0xNzc0NzQKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzMzMTQxMzgwPgorCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkZCB0ZXN0IGNvdmVy
YWdlLgorCisgICAgICAgICogaHR0cC90ZXN0cy9wcmVsb2FkL2xpbmstcmVsLXByZWNvbm5lY3Qt
ZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL3ByZWxvYWQvbGluay1y
ZWwtcHJlY29ubmVjdC5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9tYWMtd2sxL1Rl
c3RFeHBlY3RhdGlvbnM6CisgICAgICAgICogcGxhdGZvcm0vbWFjLXdrMi9UZXN0RXhwZWN0YXRp
b25zOgorCiAyMDE3LTA5LTI2ICBNZWdhbiBHYXJkbmVyICA8bWVnYW5fZ2FyZG5lckBhcHBsZS5j
b20+CiAKICAgICAgICAgQWRkIGhlbHBlciBmdW5jdGlvbnMgdG8gd3JpdGUgYmV0dGVyIHNlbGVj
dGlvbiB0ZXN0cwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9wcmVsb2FkL2xp
bmstcmVsLXByZWNvbm5lY3QtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9w
cmVsb2FkL2xpbmstcmVsLXByZWNvbm5lY3QtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjhlYmU4
MDRiNDEzZDBlZDNlNzkxNjIxODM0NzFkZjc0NWM1MmE1NWUKLS0tIC9kZXYvbnVsbAorKysgYi9M
YXlvdXRUZXN0cy9odHRwL3Rlc3RzL3ByZWxvYWQvbGluay1yZWwtcHJlY29ubmVjdC1leHBlY3Rl
ZC50eHQKQEAgLTAsMCArMSwxMyBAQAorQ09OU09MRSBNRVNTQUdFOiBTdWNjZXNzZnVseSBwcmVj
b25uZWN0ZWQgdG8gaHR0cDovL2xvY2FsaG9zdDo4MDAwLworVGVzdHMgdGhhdCBMaW5rJ3MgcmVs
PXByZWNvbm5lY3QgaXMgcmVwb3J0ZWQgYXMgc3VwcG9ydGVkIGFuZCB3b3Jrcy4KKworT24gc3Vj
Y2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQg
YnkgIlRFU1QgQ09NUExFVEUiLgorCisKK1BBU1MgdGVzdExpbmsucmVsTGlzdC5sZW5ndGggaXMg
MQorUEFTUyB0ZXN0TGluay5yZWxMaXN0WzBdIGlzICJwcmVjb25uZWN0IgorUEFTUyB0ZXN0TGlu
ay5yZWxMaXN0LnN1cHBvcnRzKCdwcmVjb25uZWN0JykgaXMgdHJ1ZQorUEFTUyBzdWNjZXNzZnVs
bHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2h0dHAvdGVzdHMvcHJlbG9hZC9saW5rLXJlbC1wcmVjb25uZWN0Lmh0bWwgYi9MYXlvdXRU
ZXN0cy9odHRwL3Rlc3RzL3ByZWxvYWQvbGluay1yZWwtcHJlY29ubmVjdC5odG1sCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLmYxOTA0MjE2ZDVkOGMzYzg0NDYwMjBlNDNjMzI5Y2FiMzg0ZDJhMGUKLS0tIC9kZXYvbnVs
bAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3ByZWxvYWQvbGluay1yZWwtcHJlY29ubmVj
dC5odG1sCkBAIC0wLDAgKzEsMjAgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8aGVhZD4K
KzxsaW5rIGlkPSJ0ZXN0TGluayIgcmVsPSJwcmVjb25uZWN0IiBocmVmPSJodHRwOi8vbG9jYWxo
b3N0OjgwMDAiPgorPHNjcmlwdCBzcmM9Ii9qcy10ZXN0LXJlc291cmNlcy9qcy10ZXN0LmpzIj48
L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPHNjcmlwdD4KK2Rlc2NyaXB0aW9uKCJUZXN0cyB0
aGF0IExpbmsncyByZWw9cHJlY29ubmVjdCBpcyByZXBvcnRlZCBhcyBzdXBwb3J0ZWQgYW5kIHdv
cmtzLiIpOworanNUZXN0SXNBc3luYyA9IHRydWU7CisKK2NvbnN0IHRlc3RMaW5rID0gZG9jdW1l
bnQuZ2V0RWxlbWVudEJ5SWQoInRlc3RMaW5rIik7CitzaG91bGRCZSgidGVzdExpbmsucmVsTGlz
dC5sZW5ndGgiLCAiMSIpOworc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJ0ZXN0TGluay5yZWxMaXN0
WzBdIiwgInByZWNvbm5lY3QiKTsKK3Nob3VsZEJlVHJ1ZSgidGVzdExpbmsucmVsTGlzdC5zdXBw
b3J0cygncHJlY29ubmVjdCcpIik7CisKK3NldFRpbWVvdXQoZmluaXNoSlNUZXN0LCAxMDAwKTsK
Kzwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxh
dGZvcm0vbWFjLXdrMS9UZXN0RXhwZWN0YXRpb25zIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFj
LXdrMS9UZXN0RXhwZWN0YXRpb25zCmluZGV4IDgwMzczMzM0ZmVmMGY2ZGU1MjA3NTU5Y2Q3YzJk
OWVjNTI2ZmIwNDMuLjBiYTdmZDUyM2RkMDFhM2YyNGYxNzY4Y2MwZjNlNjVjNDg4NjhiYWUgMTAw
NjQ0Ci0tLSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy13azEvVGVzdEV4cGVjdGF0aW9ucwor
KysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMtd2sxL1Rlc3RFeHBlY3RhdGlvbnMKQEAgLTM5
OSw2ICszOTksOSBAQCBmYXN0L2ltYWdlcy9sb3ctbWVtb3J5LWRlY29kZS5odG1sIFsgU2tpcCBd
CiAKIGh0dHAvdGVzdHMvd29ya2Vycy9zZXJ2aWNlIFsgU2tpcCBdCiAKKyMgTGluayBwcmVjb25u
ZWN0IGlzIG5vdCBlbmFibGVkIG9uIFdLMS4KK2h0dHAvdGVzdHMvcHJlbG9hZC9saW5rLXJlbC1w
cmVjb25uZWN0Lmh0bWwgWyBGYWlsdXJlIF0KKwogd2Via2l0Lm9yZy9iLzE3NTM0NSBmYXN0L2lt
YWdlcy9hbmltYXRlZC1naWYtc2Nyb2xsaW5nLWNyYXNoLmh0bWwgWyBQYXNzIFRpbWVvdXQgXQog
CiB3ZWJraXQub3JnL2IvMTc1NTU0IFsgU2llcnJhIF0gZnVsbHNjcmVlbi9mdWxsLXNjcmVlbi1p
ZnJhbWUtbGVnYWN5Lmh0bWwgWyBQYXNzIEZhaWx1cmUgXQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvcGxhdGZvcm0vbWFjLXdrMi9UZXN0RXhwZWN0YXRpb25zIGIvTGF5b3V0VGVzdHMvcGxhdGZv
cm0vbWFjLXdrMi9UZXN0RXhwZWN0YXRpb25zCmluZGV4IDA3YWI0NjhkMTNkZWNmOGRiNjNjZmVi
ODRlMTc4MWI5NTZjMGE0YzguLjgxOTJjMjcxMTczMjkzZjU4MjEwODFhOGEyNWRlNjM1MzZkNjA1
YjIgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy13azIvVGVzdEV4cGVjdGF0
aW9ucworKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMtd2syL1Rlc3RFeHBlY3RhdGlvbnMK
QEAgLTcyOCw2ICs3MjgsOSBAQCB3ZWJraXQub3JnL2IvMTcyODM0IFsgRWxDYXBpdGFuIF0gaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9JbmRleGVkREIvaWRibwogWyBFbENhcGl0YW4g
XSBpbXBvcnRlZC9ibGluay9mYXN0L2JlYWNvbi8gWyBTa2lwIF0KIFsgRWxDYXBpdGFuIF0gaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9iZWFjb24vIFsgU2tpcCBdCiAKKyMgUmVxdWly
ZXMgTkVUV09SS19TRVNTSU9OIHRvIGJlIGVuYWJsZWQuCitbIEVsQ2FwaXRhbiBdIGh0dHAvdGVz
dHMvcHJlbG9hZC9saW5rLXJlbC1wcmVjb25uZWN0Lmh0bWwgWyBGYWlsdXJlIF0KKwogd2Via2l0
Lm9yZy9iLzE3MjIwMSB3ZWJhdWRpby9zaWxlbnQtYXVkaW8taW50ZXJydXB0ZWQtaW4tYmFja2dy
b3VuZC5odG1sIFsgUGFzcyBUaW1lb3V0IF0KIAogd2Via2l0Lm9yZy9iLzE2Nzc1NyB3b3JrZXJz
L2JvbWIuaHRtbCBbIFBhc3MgVGltZW91dCBdCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>321867</attachid>
            <date>2017-09-26 14:14:07 -0700</date>
            <delta_ts>2017-09-27 12:43:04 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-177474-20170926141407.patch</filename>
            <type>text/plain</type>
            <size>73130</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjIyNTE5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMzMwOGU0MzYxNjllMDJh
NzNhNmY5MTJjN2E3Yjc1YTQyNjI2Njg3NC4uMzA1MGU1NDk1MjkxNjcwMGY5ZjZmMmFkNGE3OTUw
MWE1ZTg5M2VhMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSw1ICsxLDQ3IEBACiAyMDE3LTA5LTI2ICBDaHJp
cyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CiAKKyAgICAgICAgQWRkIHN1cHBvcnQgZm9yIDxs
aW5rIHJlbD1wcmVjb25uZWN0PgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9MTc3NDc0CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS8zMzE0MTM4MD4KKwor
ICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGQgc3VwcG9y
dCBmb3IgPGxpbmsgcmVsPXByZWNvbm5lY3Q+OgorICAgICAgICAtIGh0dHBzOi8vdzNjLmdpdGh1
Yi5pby9yZXNvdXJjZS1oaW50cy8jcHJlY29ubmVjdAorCisgICAgICAgIEl0IGlzIGN1cnJlbnRs
eSBvbmx5IGVuYWJsZWQgZm9yIFdLMiBvbiBNYWNPUyBIaWdoIFNpZXJyYSsKKyAgICAgICAgYW5k
IGlPUyAxMSsuCisKKyAgICAgICAgVGVzdHM6IGh0dHAvdGVzdHMvcHJlY29ubmVjdC9saW5rLXJl
bC1wcmVjb25uZWN0LWh0dHAuaHRtbAorICAgICAgICAgICAgICAgaHR0cC90ZXN0cy9wcmVjb25u
ZWN0L2xpbmstcmVsLXByZWNvbm5lY3QtaHR0cHMuaHRtbAorCisgICAgICAgICogaHRtbC9ET01U
b2tlbkxpc3QuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RE9NVG9rZW5MaXN0OjpET01Ub2tlbkxp
c3QpOgorICAgICAgICAoV2ViQ29yZTo6RE9NVG9rZW5MaXN0OjpzdXBwb3J0cyk6CisgICAgICAg
ICogaHRtbC9ET01Ub2tlbkxpc3QuaDoKKyAgICAgICAgKFdlYkNvcmU6OkRPTVRva2VuTGlzdDo6
RE9NVG9rZW5MaXN0KToKKyAgICAgICAgKiBodG1sL0hUTUxBbmNob3JFbGVtZW50LmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OkhUTUxBbmNob3JFbGVtZW50OjpyZWxMaXN0KToKKyAgICAgICAgKiBo
dG1sL0hUTUxJRnJhbWVFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxJRnJhbWVF
bGVtZW50OjpzYW5kYm94KToKKyAgICAgICAgKiBodG1sL0hUTUxMaW5rRWxlbWVudC5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpIVE1MTGlua0VsZW1lbnQ6OnBhcnNlQXR0cmlidXRlKToKKyAgICAg
ICAgKFdlYkNvcmU6OkhUTUxMaW5rRWxlbWVudDo6cmVsTGlzdCk6CisgICAgICAgICogaHRtbC9M
aW5rUmVsQXR0cmlidXRlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkxpbmtSZWxBdHRyaWJ1dGU6
OkxpbmtSZWxBdHRyaWJ1dGUpOgorICAgICAgICAoV2ViQ29yZTo6TGlua1JlbEF0dHJpYnV0ZTo6
aXNTdXBwb3J0ZWQpOgorICAgICAgICAqIGh0bWwvTGlua1JlbEF0dHJpYnV0ZS5oOgorICAgICAg
ICAqIGh0bWwvcGFyc2VyL0hUTUxQcmVsb2FkU2Nhbm5lci5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpUb2tlblByZWxvYWRTY2FubmVyOjpTdGFydFRhZ1NjYW5uZXI6OnByb2Nlc3NBdHRyaWJ1dGUp
OgorICAgICAgICAqIGxvYWRlci9MaW5rTG9hZGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Okxp
bmtMb2FkZXI6OmxvYWRMaW5rc0Zyb21IZWFkZXIpOgorICAgICAgICAoV2ViQ29yZTo6TGlua0xv
YWRlcjo6bG9hZExpbmspOgorICAgICAgICAqIGxvYWRlci9Mb2FkZXJTdHJhdGVneS5oOgorICAg
ICAgICAqIHBhZ2UvU2V0dGluZ3MuaW46CisgICAgICAgICogcGxhdGZvcm0vbmV0d29yay9TdG9y
ZWRDcmVkZW50aWFsc1BvbGljeS5oOgorCisyMDE3LTA5LTI2ICBDaHJpcyBEdW1leiAgPGNkdW1l
ekBhcHBsZS5jb20+CisKICAgICAgICAgTWFrZSBTdG9yZWRDcmVkZW50aWFscyBhbiBlbnVtIGNs
YXNzIGFuZCByZW5hbWUgaXRzIGhlYWRlcgogICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9MTc3NDU1CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1BB
TC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9QQUwvQ2hhbmdlTG9nCmluZGV4IGQ2ZmI1NGMy
YzhhYzcwMDljZTdkOTc0NjZlZWI5NWI2MWVhYWNjNTYuLjE1YTVkZGJhYjgyMWM5Zjg3OThlZjdh
ZWZlOTU5ZjU3MWU5MTdmMzAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1BBTC9DaGFuZ2VM
b2cKKysrIGIvU291cmNlL1dlYkNvcmUvUEFML0NoYW5nZUxvZwpAQCAtMSwzICsxLDE1IEBACisy
MDE3LTA5LTI2ICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgQWRk
IHN1cHBvcnQgZm9yIDxsaW5rIHJlbD1wcmVjb25uZWN0PgorICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTc3NDc0CisgICAgICAgIDxyZGFyOi8vcHJvYmxl
bS8zMzE0MTM4MD4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAg
ICAgICBBZGQgbmV3IENGTmV0d29yayBTUEkgZm9yIHByZWNvbm5lY3RpbmcuCisKKyAgICAgICAg
KiBwYWwvc3BpL2NmL0NGTmV0d29ya1NQSS5oOgorCiAyMDE3LTA5LTI2ICBZb3NoaWFraSBKaXRz
dWthd2EgIDxZb3NoaWFraS5KaXRzdWthd2FAc29ueS5jb20+CiAKICAgICAgICAgW1BBTF0gTW92
ZSBDbG9jayBpbnRvIFBBTApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cgYi9T
b3VyY2UvV2ViS2l0L0NoYW5nZUxvZwppbmRleCAxNDQyOWI0NjBkNjA1NTU4MjQ3NTg2OWJmM2Zi
ZmI3NmUwNTMxN2RiLi5lOWYyOTA3ZGVlMjkxNTcwMWY4ZDE0ZWY4MDI4ZGQ3ZDQ5ZDI5NTY4IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZwpAQCAtMSwzICsxLDcxIEBACisyMDE3LTA5LTI2ICBDaHJpcyBEdW1leiAgPGNkdW1l
ekBhcHBsZS5jb20+CisKKyAgICAgICAgQWRkIHN1cHBvcnQgZm9yIDxsaW5rIHJlbD1wcmVjb25u
ZWN0PgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTc3
NDc0CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS8zMzE0MTM4MD4KKworICAgICAgICBSZXZpZXdl
ZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGQgc3VwcG9ydCBmb3IgPGxpbmsgcmVs
PXByZWNvbm5lY3Q+OgorICAgICAgICAtIGh0dHBzOi8vdzNjLmdpdGh1Yi5pby9yZXNvdXJjZS1o
aW50cy8jcHJlY29ubmVjdAorCisgICAgICAgIEFsc28gYWRkIGNvcnJlc3BvbmRpbmcgbmF0aXZl
IHByaXZhdGUgQVBJLgorCisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvTmV0d29ya0Nvbm5lY3Rp
b25Ub1dlYlByb2Nlc3MuY3BwOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrQ29ubmVjdGlvblRv
V2ViUHJvY2Vzczo6cHJlY29ubmVjdFRvKToKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya0Nvbm5l
Y3Rpb25Ub1dlYlByb2Nlc3M6OmRpZEZpbmlzaFByZWNvbm5lY3Rpb24pOgorICAgICAgICAqIE5l
dHdvcmtQcm9jZXNzL05ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmg6CisgICAgICAgICog
TmV0d29ya1Byb2Nlc3MvTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MubWVzc2FnZXMuaW46
CisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvTmV0d29ya0RhdGFUYXNrLmNwcDoKKyAgICAgICAg
KFdlYktpdDo6TmV0d29ya0RhdGFUYXNrOjpjcmVhdGUpOgorICAgICAgICAqIE5ldHdvcmtQcm9j
ZXNzL05ldHdvcmtMb2FkUGFyYW1ldGVycy5oOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL05l
dHdvcmtQcm9jZXNzLmNwcDoKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya1Byb2Nlc3M6OnByZWNv
bm5lY3RUbyk6CisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MuaDoKKyAg
ICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5tZXNzYWdlcy5pbjoKKyAgICAg
ICAgKiBOZXR3b3JrUHJvY2Vzcy9QcmVjb25uZWN0VGFzay5jcHA6IEFkZGVkLgorICAgICAgICAo
V2ViS2l0OjpQcmVjb25uZWN0VGFzazo6UHJlY29ubmVjdFRhc2spOgorICAgICAgICAoV2ViS2l0
OjpQcmVjb25uZWN0VGFzazo6flByZWNvbm5lY3RUYXNrKToKKyAgICAgICAgKFdlYktpdDo6UHJl
Y29ubmVjdFRhc2s6OndpbGxQZXJmb3JtSFRUUFJlZGlyZWN0aW9uKToKKyAgICAgICAgKFdlYktp
dDo6UHJlY29ubmVjdFRhc2s6OmRpZFJlY2VpdmVDaGFsbGVuZ2UpOgorICAgICAgICAoV2ViS2l0
OjpQcmVjb25uZWN0VGFzazo6ZGlkUmVjZWl2ZVJlc3BvbnNlTmV0d29ya1Nlc3Npb24pOgorICAg
ICAgICAoV2ViS2l0OjpQcmVjb25uZWN0VGFzazo6ZGlkUmVjZWl2ZURhdGEpOgorICAgICAgICAo
V2ViS2l0OjpQcmVjb25uZWN0VGFzazo6ZGlkQ29tcGxldGVXaXRoRXJyb3IpOgorICAgICAgICAo
V2ViS2l0OjpQcmVjb25uZWN0VGFzazo6ZGlkU2VuZERhdGEpOgorICAgICAgICAoV2ViS2l0OjpQ
cmVjb25uZWN0VGFzazo6d2FzQmxvY2tlZCk6CisgICAgICAgIChXZWJLaXQ6OlByZWNvbm5lY3RU
YXNrOjpjYW5ub3RTaG93VVJMKToKKyAgICAgICAgKFdlYktpdDo6UHJlY29ubmVjdFRhc2s6OmRp
ZEZpbmlzaCk6CisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvUHJlY29ubmVjdFRhc2suaDogQ29w
aWVkIGZyb20gU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrTG9hZFBhcmFtZXRl
cnMuaC4KKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9jb2NvYS9OZXR3b3JrRGF0YVRhc2tDb2Nv
YS5oOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL2NvY29hL05ldHdvcmtEYXRhVGFza0NvY29h
Lm1tOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrRGF0YVRhc2tDb2NvYTo6TmV0d29ya0RhdGFU
YXNrQ29jb2EpOgorICAgICAgICAqIFNoYXJlZC9XZWJDb3JlQXJndW1lbnRDb2RlcnMuaDoKKyAg
ICAgICAgKiBTaGFyZWQvV2ViUHJlZmVyZW5jZXNEZWZpbml0aW9ucy5oOgorICAgICAgICAqIFVJ
UHJvY2Vzcy9BUEkvQy9XS0NvbnRleHQuY3BwOgorICAgICAgICAoV0tDb250ZXh0UHJlY29ubmVj
dFRvU2VydmVyKToKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0MvV0tDb250ZXh0UHJpdmF0ZS5o
OgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQ29jb2EvV0tQcm9jZXNzUG9vbC5tbToKKyAgICAg
ICAgKC1bV0tQcm9jZXNzUG9vbCBfcHJlY29ubmVjdFRvU2VydmVyOl0pOgorICAgICAgICAqIFVJ
UHJvY2Vzcy9BUEkvQ29jb2EvV0tQcm9jZXNzUG9vbFByaXZhdGUuaDoKKyAgICAgICAgKiBVSVBy
b2Nlc3MvV2ViUHJvY2Vzc1Bvb2wuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzUG9v
bDo6cHJlY29ubmVjdFRvU2VydmVyKToKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUHJvY2Vzc1Bv
b2wuaDoKKyAgICAgICAgKiBXZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAg
ICAgKiBXZWJQcm9jZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uLmNwcDoKKyAg
ICAgICAgKFdlYktpdDo6TmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uOjpkaWRGaW5pc2hQcmVjb25u
ZWN0aW9uKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nlc3NDb25u
ZWN0aW9uLmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9jZXNzQ29u
bmVjdGlvbi5tZXNzYWdlcy5pbjoKKyAgICAgICAgKiBXZWJQcm9jZXNzL05ldHdvcmsvV2ViTG9h
ZGVyU3RyYXRlZ3kuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJMb2FkZXJTdHJhdGVneTo6bmV0
d29ya1Byb2Nlc3NDcmFzaGVkKToKKyAgICAgICAgKFdlYktpdDo6Z2VuZXJhdGVMb2FkSWRlbnRp
Zmllcik6CisgICAgICAgIChXZWJLaXQ6OldlYkxvYWRlclN0cmF0ZWd5OjpzdGFydFBpbmdMb2Fk
KToKKyAgICAgICAgKFdlYktpdDo6V2ViTG9hZGVyU3RyYXRlZ3k6OnByZWNvbm5lY3RUbyk6Cisg
ICAgICAgIChXZWJLaXQ6OldlYkxvYWRlclN0cmF0ZWd5OjpkaWRGaW5pc2hQcmVjb25uZWN0aW9u
KToKKyAgICAgICAgKiBXZWJQcm9jZXNzL05ldHdvcmsvV2ViTG9hZGVyU3RyYXRlZ3kuaDoKKyAg
ICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHA6CisgICAgICAgIChXZWJLaXQ6
OldlYlBhZ2U6OnVwZGF0ZVByZWZlcmVuY2VzKToKKyAgICAgICAgKiBjb25maWcuaDoKKwogMjAx
Ny0wOS0yNiAgSmVyIE5vYmxlICA8amVyLm5vYmxlQGFwcGxlLmNvbT4KIAogICAgICAgICBUaHJv
d24gT2JqQyBleGNlcHRpb24gd2hlbiByaWdodCBjbGlja2luZyBvbiA8aW1nPiBjb250YWluaW5n
IG1wNCBsaW5rCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L0NoYW5nZUxvZyBiL1Nv
dXJjZS9XZWJLaXRMZWdhY3kvQ2hhbmdlTG9nCmluZGV4IDQ0YWM3MTlkNDcwOWNhYzlkMjdlZWI5
MjJjN2E1NzJhMTRiMjNjYmQuLmJlZGYwZThmY2UwMDZjODUyNzEzZWFlM2U5YWRmYjBhMDNkZmE0
YjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXRMZWdhY3kvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTUgQEAKKzIwMTctMDktMjYgIENo
cmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KKworICAgICAgICBBZGQgc3VwcG9ydCBmb3Ig
PGxpbmsgcmVsPXByZWNvbm5lY3Q+CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0xNzc0NzQKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzMzMTQxMzgwPgor
CisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogV2ViQ29y
ZVN1cHBvcnQvV2ViUmVzb3VyY2VMb2FkU2NoZWR1bGVyLmNwcDoKKyAgICAgICAgKFdlYlJlc291
cmNlTG9hZFNjaGVkdWxlcjo6cHJlY29ubmVjdFRvKToKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9y
dC9XZWJSZXNvdXJjZUxvYWRTY2hlZHVsZXIuaDoKKwogMjAxNy0wOS0yNSAgVGltb3RoeSBIb3J0
b24gIDx0aW1vdGh5X2hvcnRvbkBhcHBsZS5jb20+CiAKICAgICAgICAgRml4IHRoZSBtYWNPUyBX
ZWJLaXQgQ01ha2UgYnVpbGQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvc3Bp
L2NmL0NGTmV0d29ya1NQSS5oIGIvU291cmNlL1dlYkNvcmUvUEFML3BhbC9zcGkvY2YvQ0ZOZXR3
b3JrU1BJLmgKaW5kZXggM2U1ODQzZWFkNWI0M2M1Mzg4M2RmODFiNjQwYzljZjQzNTg0N2VmMy4u
NjgxZGJiYjNiODAzMmQ5MmJhNTU5YmQxNzQ0MjliOTQxMDY0YjI5YSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvUEFML3BhbC9zcGkvY2YvQ0ZOZXR3b3JrU1BJLmgKKysrIGIvU291cmNlL1dl
YkNvcmUvUEFML3BhbC9zcGkvY2YvQ0ZOZXR3b3JrU1BJLmgKQEAgLTExMyw2ICsxMTMsMTIgQEAg
dHlwZWRlZiB2b2lkICheQ0ZDYWNoZWRVUkxSZXNwb25zZUNhbGxCYWNrQmxvY2spKENGQ2FjaGVk
VVJMUmVzcG9uc2VSZWYpOwogLSAoTlNEaWN0aW9uYXJ5ICopX3RpbWluZ0RhdGE7CiBAZW5kCiAK
KyNpZiAoUExBVEZPUk0oTUFDKSAmJiBfX01BQ19PU19YX1ZFUlNJT05fTUlOX1JFUVVJUkVEID49
IDEwMTMwMCkgfHwgKFBMQVRGT1JNKElPUykgJiYgX19JUEhPTkVfT1NfVkVSU0lPTl9NSU5fUkVR
VUlSRUQgPj0gMTEwMDAwKQorQGludGVyZmFjZSBOU1VSTFNlc3Npb25UYXNrIChSZXNvdXJjZUhp
bnRzKQorQHByb3BlcnR5IChub25hdG9taWMsIGFzc2lnbikgQk9PTCBfcHJlY29ubmVjdDsKK0Bl
bmQKKyNlbmRpZgorCiBAaW50ZXJmYWNlIE5TSFRUUENvb2tpZSAoKQogLSAoQ0ZIVFRQQ29va2ll
UmVmKV9DRkhUVFBDb29raWU7CiArIChDRkFycmF5UmVmIF9fbnVsbGFibGUpX25zMmNmQ29va2ll
czooTlNBcnJheSAqIF9fbnVsbGFibGUpbnNDb29raWVzIENGX1JFVFVSTlNfUkVUQUlORUQ7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0RPTVRva2VuTGlzdC5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9odG1sL0RPTVRva2VuTGlzdC5jcHAKaW5kZXggMjU1NWI2ODQ0NmIyOGVjMmJmMDY1
ZjdiY2M0ZTFmNWE3Zjc2YTAyMC4uN2NhYjFiNzM2YTA0MTc1ZWQxMjFjOTdkMGEzNTJhNDllYTk2
ZDVjZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9ET01Ub2tlbkxpc3QuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvRE9NVG9rZW5MaXN0LmNwcApAQCAtMzUsNyArMzUsNyBA
QAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLURPTVRva2VuTGlzdDo6RE9NVG9rZW5MaXN0KEVs
ZW1lbnQmIGVsZW1lbnQsIGNvbnN0IFF1YWxpZmllZE5hbWUmIGF0dHJpYnV0ZU5hbWUsIFdURjo6
RnVuY3Rpb248Ym9vbChTdHJpbmdWaWV3KT4mJiBpc1N1cHBvcnRlZFRva2VuKQorRE9NVG9rZW5M
aXN0OjpET01Ub2tlbkxpc3QoRWxlbWVudCYgZWxlbWVudCwgY29uc3QgUXVhbGlmaWVkTmFtZSYg
YXR0cmlidXRlTmFtZSwgSXNTdXBwb3J0ZWRUb2tlbkZ1bmN0aW9uJiYgaXNTdXBwb3J0ZWRUb2tl
bikKICAgICA6IG1fZWxlbWVudChlbGVtZW50KQogICAgICwgbV9hdHRyaWJ1dGVOYW1lKGF0dHJp
YnV0ZU5hbWUpCiAgICAgLCBtX2lzU3VwcG9ydGVkVG9rZW4oV1RGTW92ZShpc1N1cHBvcnRlZFRv
a2VuKSkKQEAgLTE5MSw3ICsxOTEsNyBAQCBFeGNlcHRpb25Pcjxib29sPiBET01Ub2tlbkxpc3Q6
OnN1cHBvcnRzKFN0cmluZ1ZpZXcgdG9rZW4pCiB7CiAgICAgaWYgKCFtX2lzU3VwcG9ydGVkVG9r
ZW4pCiAgICAgICAgIHJldHVybiBFeGNlcHRpb24geyBUeXBlRXJyb3IgfTsKLSAgICByZXR1cm4g
bV9pc1N1cHBvcnRlZFRva2VuKHRva2VuKTsKKyAgICByZXR1cm4gbV9pc1N1cHBvcnRlZFRva2Vu
KG1fZWxlbWVudC5kb2N1bWVudCgpLCB0b2tlbik7CiB9CiAKIC8vIGh0dHBzOi8vZG9tLnNwZWMu
d2hhdHdnLm9yZy8jZG9tLWRvbXRva2VubGlzdC12YWx1ZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvaHRtbC9ET01Ub2tlbkxpc3QuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvRE9NVG9rZW5M
aXN0LmgKaW5kZXggMjFmYjQ2ZjQ2MTJjYTNjOTNjYmU1OWVkMjg0M2EyNGJkMjRhNTc4Ni4uZDYw
ZDE3Y2M5MTUxYTExYjE4NjBhOTNlNDEwNDlhOWI1ZmY4NTNkNSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvaHRtbC9ET01Ub2tlbkxpc3QuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0RP
TVRva2VuTGlzdC5oCkBAIC0zMiw3ICszMiw4IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIGNsYXNz
IERPTVRva2VuTGlzdCB7CiAgICAgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7CiBwdWJsaWM6Ci0g
ICAgRE9NVG9rZW5MaXN0KEVsZW1lbnQmLCBjb25zdCBRdWFsaWZpZWROYW1lJiBhdHRyaWJ1dGVO
YW1lLCBXVEY6OkZ1bmN0aW9uPGJvb2woU3RyaW5nVmlldyk+JiYgaXNTdXBwb3J0ZWRUb2tlbiA9
IHsgfSk7CisgICAgdXNpbmcgSXNTdXBwb3J0ZWRUb2tlbkZ1bmN0aW9uID0gV1RGOjpGdW5jdGlv
bjxib29sKERvY3VtZW50JiwgU3RyaW5nVmlldyk+OworICAgIERPTVRva2VuTGlzdChFbGVtZW50
JiwgY29uc3QgUXVhbGlmaWVkTmFtZSYgYXR0cmlidXRlTmFtZSwgSXNTdXBwb3J0ZWRUb2tlbkZ1
bmN0aW9uJiYgaXNTdXBwb3J0ZWRUb2tlbiA9IHsgfSk7CiAKICAgICB2b2lkIGFzc29jaWF0ZWRB
dHRyaWJ1dGVWYWx1ZUNoYW5nZWQoY29uc3QgQXRvbWljU3RyaW5nJik7CiAKQEAgLTczLDcgKzc0
LDcgQEAgcHJpdmF0ZToKICAgICBib29sIG1faW5VcGRhdGVBc3NvY2lhdGVkQXR0cmlidXRlRnJv
bVRva2VucyB7IGZhbHNlIH07CiAgICAgYm9vbCBtX3Rva2Vuc05lZWRVcGRhdGluZyB7IHRydWUg
fTsKICAgICBWZWN0b3I8QXRvbWljU3RyaW5nPiBtX3Rva2VuczsKLSAgICBXVEY6OkZ1bmN0aW9u
PGJvb2woU3RyaW5nVmlldyk+IG1faXNTdXBwb3J0ZWRUb2tlbjsKKyAgICBJc1N1cHBvcnRlZFRv
a2VuRnVuY3Rpb24gbV9pc1N1cHBvcnRlZFRva2VuOwogfTsKIAogaW5saW5lIHVuc2lnbmVkIERP
TVRva2VuTGlzdDo6bGVuZ3RoKCkgY29uc3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0
bWwvSFRNTEFuY2hvckVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MQW5jaG9y
RWxlbWVudC5jcHAKaW5kZXggY2IxZjFjOWY1NDY1M2Q2YmRkMmI0NzkyYzI2Mzk4ODIxMGM3ZmM5
MC4uNDg4MWMzZDllOGEzN2VkZjFmNjMyMGY1ZDMyOWJiOTdjMTcxZmYwOCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvaHRtbC9IVE1MQW5jaG9yRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvaHRtbC9IVE1MQW5jaG9yRWxlbWVudC5jcHAKQEAgLTMwNyw3ICszMDcsNyBAQCBib29s
IEhUTUxBbmNob3JFbGVtZW50OjpoYXNSZWwoUmVsYXRpb24gcmVsYXRpb24pIGNvbnN0CiBET01U
b2tlbkxpc3QmIEhUTUxBbmNob3JFbGVtZW50OjpyZWxMaXN0KCkKIHsKICAgICBpZiAoIW1fcmVs
TGlzdCkgCi0gICAgICAgIG1fcmVsTGlzdCA9IHN0ZDo6bWFrZV91bmlxdWU8RE9NVG9rZW5MaXN0
PigqdGhpcywgSFRNTE5hbWVzOjpyZWxBdHRyLCBbXShTdHJpbmdWaWV3IHRva2VuKSB7CisgICAg
ICAgIG1fcmVsTGlzdCA9IHN0ZDo6bWFrZV91bmlxdWU8RE9NVG9rZW5MaXN0PigqdGhpcywgSFRN
TE5hbWVzOjpyZWxBdHRyLCBbXShEb2N1bWVudCYsIFN0cmluZ1ZpZXcgdG9rZW4pIHsKICAgICAg
ICAgICAgIHJldHVybiBlcXVhbElnbm9yaW5nQVNDSUlDYXNlKHRva2VuLCAibm9yZWZlcnJlciIp
IHx8IGVxdWFsSWdub3JpbmdBU0NJSUNhc2UodG9rZW4sICJub29wZW5lciIpOwogICAgICAgICB9
KTsKICAgICByZXR1cm4gKm1fcmVsTGlzdDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0
bWwvSFRNTElGcmFtZUVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MSUZyYW1l
RWxlbWVudC5jcHAKaW5kZXggZDMwMzIyZGMwYzQ4ZmI4MjA2ZWFiYjY2Y2FlZjJiOGZlNjk3YjY0
Zi4uMjIzZTNiMDMzMWFhNzUwZTRkYWY1ZGQwYTg2YjUyMmMyMjJlMDVkZCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvaHRtbC9IVE1MSUZyYW1lRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvaHRtbC9IVE1MSUZyYW1lRWxlbWVudC5jcHAKQEAgLTUxLDcgKzUxLDcgQEAgUmVmPEhU
TUxJRnJhbWVFbGVtZW50PiBIVE1MSUZyYW1lRWxlbWVudDo6Y3JlYXRlKGNvbnN0IFF1YWxpZmll
ZE5hbWUmIHRhZ05hbWUsIEQKIERPTVRva2VuTGlzdCYgSFRNTElGcmFtZUVsZW1lbnQ6OnNhbmRi
b3goKQogewogICAgIGlmICghbV9zYW5kYm94KQotICAgICAgICBtX3NhbmRib3ggPSBzdGQ6Om1h
a2VfdW5pcXVlPERPTVRva2VuTGlzdD4oKnRoaXMsIHNhbmRib3hBdHRyLCBbXShTdHJpbmdWaWV3
IHRva2VuKSB7CisgICAgICAgIG1fc2FuZGJveCA9IHN0ZDo6bWFrZV91bmlxdWU8RE9NVG9rZW5M
aXN0PigqdGhpcywgc2FuZGJveEF0dHIsIFtdKERvY3VtZW50JiwgU3RyaW5nVmlldyB0b2tlbikg
ewogICAgICAgICAgICAgcmV0dXJuIFNlY3VyaXR5Q29udGV4dDo6aXNTdXBwb3J0ZWRTYW5kYm94
UG9saWN5KHRva2VuKTsKICAgICAgICAgfSk7CiAgICAgcmV0dXJuICptX3NhbmRib3g7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxMaW5rRWxlbWVudC5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9odG1sL0hUTUxMaW5rRWxlbWVudC5jcHAKaW5kZXggZTAxYjZlM2I0Yzg1MWZlZGY0
NTc3Y2E5MjIwZjg4ODU0MmMxY2E0Ni4uZTdkMGY3Y2M3NDI4NjA0OWZhZDE4ODE3M2IxNTUwMTk5
M2RiZjNkMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTGlua0VsZW1lbnQu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTExpbmtFbGVtZW50LmNwcApAQCAtMTU2
LDcgKzE1Niw3IEBAIHZvaWQgSFRNTExpbmtFbGVtZW50OjpzZXREaXNhYmxlZFN0YXRlKGJvb2wg
ZGlzYWJsZWQpCiB2b2lkIEhUTUxMaW5rRWxlbWVudDo6cGFyc2VBdHRyaWJ1dGUoY29uc3QgUXVh
bGlmaWVkTmFtZSYgbmFtZSwgY29uc3QgQXRvbWljU3RyaW5nJiB2YWx1ZSkKIHsKICAgICBpZiAo
bmFtZSA9PSByZWxBdHRyKSB7Ci0gICAgICAgIG1fcmVsQXR0cmlidXRlID0gTGlua1JlbEF0dHJp
YnV0ZSh2YWx1ZSk7CisgICAgICAgIG1fcmVsQXR0cmlidXRlID0gTGlua1JlbEF0dHJpYnV0ZShk
b2N1bWVudCgpLCB2YWx1ZSk7CiAgICAgICAgIGlmIChtX3JlbExpc3QpCiAgICAgICAgICAgICBt
X3JlbExpc3QtPmFzc29jaWF0ZWRBdHRyaWJ1dGVWYWx1ZUNoYW5nZWQodmFsdWUpOwogICAgICAg
ICBwcm9jZXNzKCk7CkBAIC00OTgsOCArNDk4LDggQEAgdm9pZCBIVE1MTGlua0VsZW1lbnQ6OmRp
c3BhdGNoUGVuZGluZ0V2ZW50KExpbmtFdmVudFNlbmRlciogZXZlbnRTZW5kZXIpCiBET01Ub2tl
bkxpc3QmIEhUTUxMaW5rRWxlbWVudDo6cmVsTGlzdCgpCiB7CiAgICAgaWYgKCFtX3JlbExpc3Qp
IAotICAgICAgICBtX3JlbExpc3QgPSBzdGQ6Om1ha2VfdW5pcXVlPERPTVRva2VuTGlzdD4oKnRo
aXMsIEhUTUxOYW1lczo6cmVsQXR0ciwgW10oU3RyaW5nVmlldyB0b2tlbikgewotICAgICAgICAg
ICAgcmV0dXJuIExpbmtSZWxBdHRyaWJ1dGU6OmlzU3VwcG9ydGVkKHRva2VuKTsKKyAgICAgICAg
bV9yZWxMaXN0ID0gc3RkOjptYWtlX3VuaXF1ZTxET01Ub2tlbkxpc3Q+KCp0aGlzLCBIVE1MTmFt
ZXM6OnJlbEF0dHIsIFtdKERvY3VtZW50JiBkb2N1bWVudCwgU3RyaW5nVmlldyB0b2tlbikgewor
ICAgICAgICAgICAgcmV0dXJuIExpbmtSZWxBdHRyaWJ1dGU6OmlzU3VwcG9ydGVkKGRvY3VtZW50
LCB0b2tlbik7CiAgICAgICAgIH0pOwogICAgIHJldHVybiAqbV9yZWxMaXN0OwogfQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9MaW5rUmVsQXR0cmlidXRlLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvTGlua1JlbEF0dHJpYnV0ZS5jcHAKaW5kZXggODY2YWZkOGU1ZWI0YTFhMTJj
Y2I5MDBhNjY3YWUwZGZlYjJlZjlhOS4uNTcyYmRiMzRjNThmOGRhZDA1YmQzZjZiZGNmYzVjNDU4
MmE0NzY3ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9MaW5rUmVsQXR0cmlidXRl
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0xpbmtSZWxBdHRyaWJ1dGUuY3BwCkBAIC0z
Miw4ICszMiwxMCBAQAogI2luY2x1ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUgIkxpbmtSZWxBdHRy
aWJ1dGUuaCIKIAorI2luY2x1ZGUgIkRvY3VtZW50LmgiCiAjaW5jbHVkZSAiTGlua0ljb25UeXBl
LmgiCiAjaW5jbHVkZSAiUnVudGltZUVuYWJsZWRGZWF0dXJlcy5oIgorI2luY2x1ZGUgIlNldHRp
bmdzLmgiCiAjaW5jbHVkZSA8d3RmL3RleHQvU3RyaW5nVmlldy5oPgogI2luY2x1ZGUgPHd0Zi90
ZXh0L1dURlN0cmluZy5oPgogCkBAIC00NCw3ICs0Niw3IEBAIExpbmtSZWxBdHRyaWJ1dGU6Okxp
bmtSZWxBdHRyaWJ1dGUoKQogfQogCiAvLyBLZWVwIExpbmtSZWxBdHRyaWJ1dGU6OmlzU3VwcG9y
dGVkKCkgaW4gc3luYyB3aGVuIHVwZGF0aW5nIHRoaXMgY29uc3RydWN0b3IuCi1MaW5rUmVsQXR0
cmlidXRlOjpMaW5rUmVsQXR0cmlidXRlKGNvbnN0IFN0cmluZyYgcmVsKQorTGlua1JlbEF0dHJp
YnV0ZTo6TGlua1JlbEF0dHJpYnV0ZShEb2N1bWVudCYgZG9jdW1lbnQsIGNvbnN0IFN0cmluZyYg
cmVsKQogewogICAgIGlmIChlcXVhbExldHRlcnNJZ25vcmluZ0FTQ0lJQ2FzZShyZWwsICJzdHls
ZXNoZWV0IikpCiAgICAgICAgIGlzU3R5bGVTaGVldCA9IHRydWU7CkBAIC01Niw2ICs1OCw4IEBA
IExpbmtSZWxBdHRyaWJ1dGU6OkxpbmtSZWxBdHRyaWJ1dGUoY29uc3QgU3RyaW5nJiByZWwpCiAg
ICAgICAgIGljb25UeXBlID0gTGlua0ljb25UeXBlOjpUb3VjaFByZWNvbXBvc2VkSWNvbjsKICAg
ICBlbHNlIGlmIChlcXVhbExldHRlcnNJZ25vcmluZ0FTQ0lJQ2FzZShyZWwsICJkbnMtcHJlZmV0
Y2giKSkKICAgICAgICAgaXNETlNQcmVmZXRjaCA9IHRydWU7CisgICAgZWxzZSBpZiAoZG9jdW1l
bnQuc2V0dGluZ3MoKS5saW5rUHJlY29ubmVjdEVuYWJsZWQoKSAmJiBlcXVhbExldHRlcnNJZ25v
cmluZ0FTQ0lJQ2FzZShyZWwsICJwcmVjb25uZWN0IikpCisgICAgICAgIGlzTGlua1ByZWNvbm5l
Y3QgPSB0cnVlOwogICAgIGVsc2UgaWYgKFJ1bnRpbWVFbmFibGVkRmVhdHVyZXM6OnNoYXJlZEZl
YXR1cmVzKCkubGlua1ByZWxvYWRFbmFibGVkKCkgJiYgZXF1YWxMZXR0ZXJzSWdub3JpbmdBU0NJ
SUNhc2UocmVsLCAicHJlbG9hZCIpKQogICAgICAgICBpc0xpbmtQcmVsb2FkID0gdHJ1ZTsKICAg
ICBlbHNlIGlmIChlcXVhbExldHRlcnNJZ25vcmluZ0FTQ0lJQ2FzZShyZWwsICJhbHRlcm5hdGUg
c3R5bGVzaGVldCIpIHx8IGVxdWFsTGV0dGVyc0lnbm9yaW5nQVNDSUlDYXNlKHJlbCwgInN0eWxl
c2hlZXQgYWx0ZXJuYXRlIikpIHsKQEAgLTg3LDcgKzkxLDcgQEAgTGlua1JlbEF0dHJpYnV0ZTo6
TGlua1JlbEF0dHJpYnV0ZShjb25zdCBTdHJpbmcmIHJlbCkKIH0KIAogLy8gaHR0cHM6Ly9odG1s
LnNwZWMud2hhdHdnLm9yZy8jbGlua1R5cGVzCi1ib29sIExpbmtSZWxBdHRyaWJ1dGU6OmlzU3Vw
cG9ydGVkKFN0cmluZ1ZpZXcgYXR0cmlidXRlKQorYm9vbCBMaW5rUmVsQXR0cmlidXRlOjppc1N1
cHBvcnRlZChEb2N1bWVudCYgZG9jdW1lbnQsIFN0cmluZ1ZpZXcgYXR0cmlidXRlKQogewogICAg
IHN0YXRpYyBjb25zdCBjaGFyKiBjb25zdCBzdXBwb3J0ZWRBdHRyaWJ1dGVzW10gPSB7CiAgICAg
ICAgICJhbHRlcm5hdGUiLCAiZG5zLXByZWZldGNoIiwgImljb24iLCAic3R5bGVzaGVldCIsICJh
cHBsZS10b3VjaC1pY29uIiwgImFwcGxlLXRvdWNoLWljb24tcHJlY29tcG9zZWQiLApAQCAtMTAx
LDYgKzEwNSw5IEBAIGJvb2wgTGlua1JlbEF0dHJpYnV0ZTo6aXNTdXBwb3J0ZWQoU3RyaW5nVmll
dyBhdHRyaWJ1dGUpCiAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICB9CiAKKyAgICBpZiAo
ZG9jdW1lbnQuc2V0dGluZ3MoKS5saW5rUHJlY29ubmVjdEVuYWJsZWQoKSAmJiBlcXVhbElnbm9y
aW5nQVNDSUlDYXNlKGF0dHJpYnV0ZSwgInByZWNvbm5lY3QiKSkKKyAgICAgICAgcmV0dXJuIHRy
dWU7CisKICAgICBpZiAoUnVudGltZUVuYWJsZWRGZWF0dXJlczo6c2hhcmVkRmVhdHVyZXMoKS5s
aW5rUHJlbG9hZEVuYWJsZWQoKSAmJiBlcXVhbElnbm9yaW5nQVNDSUlDYXNlKGF0dHJpYnV0ZSwg
InByZWxvYWQiKSkKICAgICAgICAgcmV0dXJuIHRydWU7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvTGlua1JlbEF0dHJpYnV0ZS5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9MaW5r
UmVsQXR0cmlidXRlLmgKaW5kZXggOGUyNjY5MjdlZGRiMTNkYjllMGI4YjFjY2E5Njg1MjU2NWZi
YmQ4Zi4uZjEyZTk4NjYzN2M3ZmY3MDc4MWMyM2MxZDZmYWU4ODU1OWE3MGI1ZiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvaHRtbC9MaW5rUmVsQXR0cmlidXRlLmgKKysrIGIvU291cmNlL1dl
YkNvcmUvaHRtbC9MaW5rUmVsQXR0cmlidXRlLmgKQEAgLTM3LDYgKzM3LDcgQEAKIAogbmFtZXNw
YWNlIFdlYkNvcmUgewogCitjbGFzcyBEb2N1bWVudDsKIGVudW0gY2xhc3MgTGlua0ljb25UeXBl
OwogCiBzdHJ1Y3QgTGlua1JlbEF0dHJpYnV0ZSB7CkBAIC00NSwxNSArNDYsMTYgQEAgc3RydWN0
IExpbmtSZWxBdHRyaWJ1dGUgewogICAgIGJvb2wgaXNBbHRlcm5hdGUgeyBmYWxzZSB9OwogICAg
IGJvb2wgaXNETlNQcmVmZXRjaCB7IGZhbHNlIH07CiAgICAgYm9vbCBpc0xpbmtQcmVsb2FkIHsg
ZmFsc2UgfTsKKyAgICBib29sIGlzTGlua1ByZWNvbm5lY3QgeyBmYWxzZSB9OwogI2lmIEVOQUJM
RShMSU5LX1BSRUZFVENIKQogICAgIGJvb2wgaXNMaW5rUHJlZmV0Y2ggeyBmYWxzZSB9OwogICAg
IGJvb2wgaXNMaW5rU3VicmVzb3VyY2UgeyBmYWxzZSB9OwogI2VuZGlmCiAKICAgICBMaW5rUmVs
QXR0cmlidXRlKCk7Ci0gICAgZXhwbGljaXQgTGlua1JlbEF0dHJpYnV0ZShjb25zdCBTdHJpbmcm
KTsKKyAgICBMaW5rUmVsQXR0cmlidXRlKERvY3VtZW50JiwgY29uc3QgU3RyaW5nJik7CiAKLSAg
ICBzdGF0aWMgYm9vbCBpc1N1cHBvcnRlZChTdHJpbmdWaWV3KTsKKyAgICBzdGF0aWMgYm9vbCBp
c1N1cHBvcnRlZChEb2N1bWVudCYsIFN0cmluZ1ZpZXcpOwogfTsKIAogfQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvaHRtbC9wYXJzZXIvSFRNTFByZWxvYWRTY2FubmVyLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvcGFyc2VyL0hUTUxQcmVsb2FkU2Nhbm5lci5jcHAKaW5kZXggMDYwMWRj
MTFkY2M0YzBiMDA1ZTVlZmJkMWU2NjgzNzY0MjZmMGVjMC4uMDhkMjhjZGQ0MjE3NzNhZDE3NmQz
ZjBlNzU0MDdhNmU2ZjAwMzQ4NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9wYXJz
ZXIvSFRNTFByZWxvYWRTY2FubmVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3BhcnNl
ci9IVE1MUHJlbG9hZFNjYW5uZXIuY3BwCkBAIC0yMzIsNyArMjMyLDcgQEAgcHJpdmF0ZToKICAg
ICAgICAgICAgIGlmIChtYXRjaChhdHRyaWJ1dGVOYW1lLCBocmVmQXR0cikpCiAgICAgICAgICAg
ICAgICAgc2V0VXJsVG9Mb2FkKGF0dHJpYnV0ZVZhbHVlKTsKICAgICAgICAgICAgIGVsc2UgaWYg
KG1hdGNoKGF0dHJpYnV0ZU5hbWUsIHJlbEF0dHIpKSB7Ci0gICAgICAgICAgICAgICAgTGlua1Jl
bEF0dHJpYnV0ZSBwYXJzZWRBdHRyaWJ1dGUgeyBhdHRyaWJ1dGVWYWx1ZSB9OworICAgICAgICAg
ICAgICAgIExpbmtSZWxBdHRyaWJ1dGUgcGFyc2VkQXR0cmlidXRlIHsgZG9jdW1lbnQsIGF0dHJp
YnV0ZVZhbHVlIH07CiAgICAgICAgICAgICAgICAgbV9saW5rSXNTdHlsZVNoZWV0ID0gcmVsQXR0
cmlidXRlSXNTdHlsZVNoZWV0KHBhcnNlZEF0dHJpYnV0ZSk7CiAgICAgICAgICAgICAgICAgbV9s
aW5rSXNQcmVsb2FkID0gcGFyc2VkQXR0cmlidXRlLmlzTGlua1ByZWxvYWQ7CiAgICAgICAgICAg
ICB9IGVsc2UgaWYgKG1hdGNoKGF0dHJpYnV0ZU5hbWUsIG1lZGlhQXR0cikpCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvTGlua0xvYWRlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9s
b2FkZXIvTGlua0xvYWRlci5jcHAKaW5kZXggMmIxNjEzMjY0MzBjMTBkNTkyNDI4ZDE1YjQ4Nzcy
YmVmNmE2OTAzZC4uMzM5ZjIxNzM4NmM0YzRjMGY0MTEwNWY3OGQ4YmUxMTZlZWE0ZTVmZiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL0xpbmtMb2FkZXIuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2xvYWRlci9MaW5rTG9hZGVyLmNwcApAQCAtNDcsOCArNDcsMTEgQEAKICNpbmNs
dWRlICJMaW5rSGVhZGVyLmgiCiAjaW5jbHVkZSAiTGlua1ByZWxvYWRSZXNvdXJjZUNsaWVudHMu
aCIKICNpbmNsdWRlICJMaW5rUmVsQXR0cmlidXRlLmgiCisjaW5jbHVkZSAiTG9hZGVyU3RyYXRl
Z3kuaCIKICNpbmNsdWRlICJNSU1FVHlwZVJlZ2lzdHJ5LmgiCiAjaW5jbHVkZSAiTWVkaWFRdWVy
eUV2YWx1YXRvci5oIgorI2luY2x1ZGUgIlBsYXRmb3JtU3RyYXRlZ2llcy5oIgorI2luY2x1ZGUg
IlJlc291cmNlRXJyb3IuaCIKICNpbmNsdWRlICJSdW50aW1lRW5hYmxlZEZlYXR1cmVzLmgiCiAj
aW5jbHVkZSAiU2V0dGluZ3MuaCIKICNpbmNsdWRlICJTdHlsZVJlc29sdmVyLmgiCkBAIC0xMDIs
NyArMTA1LDcgQEAgdm9pZCBMaW5rTG9hZGVyOjpsb2FkTGlua3NGcm9tSGVhZGVyKGNvbnN0IFN0
cmluZyYgaGVhZGVyVmFsdWUsIGNvbnN0IFVSTCYgYmFzZVUKICAgICAgICAgICAgICAgICBjb250
aW51ZTsKICAgICAgICAgfQogCi0gICAgICAgIExpbmtSZWxBdHRyaWJ1dGUgcmVsQXR0cmlidXRl
KGhlYWRlci5yZWwoKSk7CisgICAgICAgIExpbmtSZWxBdHRyaWJ1dGUgcmVsQXR0cmlidXRlKGRv
Y3VtZW50LCBoZWFkZXIucmVsKCkpOwogICAgICAgICBVUkwgdXJsKGJhc2VVUkwsIGhlYWRlci51
cmwoKSk7CiAgICAgICAgIC8vIFNhbml0eSBjaGVjayB0byBhdm9pZCByZS1lbnRyYW5jeSBoZXJl
LgogICAgICAgICBpZiAoZXF1YWxJZ25vcmluZ0ZyYWdtZW50SWRlbnRpZmllcih1cmwsIGJhc2VV
UkwpKQpAQCAtMjUwLDYgKzI1MywyMiBAQCBib29sIExpbmtMb2FkZXI6OmxvYWRMaW5rKGNvbnN0
IExpbmtSZWxBdHRyaWJ1dGUmIHJlbEF0dHJpYnV0ZSwgY29uc3QgVVJMJiBocmVmLAogICAgICAg
ICAgICAgZG9jdW1lbnQuZnJhbWUoKS0+bG9hZGVyKCkuY2xpZW50KCkucHJlZmV0Y2hETlMoaHJl
Zi5ob3N0KCkpOwogICAgIH0KIAorICAgIGlmIChyZWxBdHRyaWJ1dGUuaXNMaW5rUHJlY29ubmVj
dCAmJiBocmVmLmlzVmFsaWQoKSAmJiBocmVmLnByb3RvY29sSXNJbkhUVFBGYW1pbHkoKSkgewor
ICAgICAgICBBU1NFUlQoZG9jdW1lbnQuc2V0dGluZ3MoKS5saW5rUHJlY29ubmVjdEVuYWJsZWQo
KSk7CisgICAgICAgIFN0b3JlZENyZWRlbnRpYWxzUG9saWN5IHN0b3JhZ2VDcmVkZW50aWFsc1Bv
bGljeSA9IFN0b3JlZENyZWRlbnRpYWxzUG9saWN5OjpVc2U7CisgICAgICAgIGlmIChlcXVhbEln
bm9yaW5nQVNDSUlDYXNlKGNyb3NzT3JpZ2luLCAiYW5vbnltb3VzIikgJiYgZG9jdW1lbnQuc2Vj
dXJpdHlPcmlnaW4oKS5jYW5BY2Nlc3MoU2VjdXJpdHlPcmlnaW46OmNyZWF0ZShocmVmKSkpCisg
ICAgICAgICAgICBzdG9yYWdlQ3JlZGVudGlhbHNQb2xpY3kgPSBTdG9yZWRDcmVkZW50aWFsc1Bv
bGljeTo6RG9Ob3RVc2U7CisgICAgICAgIHBsYXRmb3JtU3RyYXRlZ2llcygpLT5sb2FkZXJTdHJh
dGVneSgpLT5wcmVjb25uZWN0VG8oaHJlZiwgc3RvcmFnZUNyZWRlbnRpYWxzUG9saWN5LCBbd2Vh
a0RvY3VtZW50ID0gZG9jdW1lbnQuY3JlYXRlV2Vha1B0cigpLCBocmVmXShSZXNvdXJjZUVycm9y
IGVycm9yKSB7CisgICAgICAgICAgICBpZiAoIXdlYWtEb2N1bWVudCkKKyAgICAgICAgICAgICAg
ICByZXR1cm47CisKKyAgICAgICAgICAgIGlmICghZXJyb3IuaXNOdWxsKCkpCisgICAgICAgICAg
ICAgICAgd2Vha0RvY3VtZW50LT5hZGRDb25zb2xlTWVzc2FnZShNZXNzYWdlU291cmNlOjpOZXR3
b3JrLCBNZXNzYWdlTGV2ZWw6OkVycm9yLCBtYWtlU3RyaW5nKEFTQ0lJTGl0ZXJhbCgiRmFpbGVk
IHRvIHByZWNvbm5lY3QgdG8gIiksIGhyZWYuc3RyaW5nKCksIEFTQ0lJTGl0ZXJhbCgiLiBFcnJv
cjogIiksIGVycm9yLmxvY2FsaXplZERlc2NyaXB0aW9uKCkpKTsKKyAgICAgICAgICAgIGVsc2UK
KyAgICAgICAgICAgICAgICB3ZWFrRG9jdW1lbnQtPmFkZENvbnNvbGVNZXNzYWdlKE1lc3NhZ2VT
b3VyY2U6Ok5ldHdvcmssIE1lc3NhZ2VMZXZlbDo6SW5mbywgbWFrZVN0cmluZyhBU0NJSUxpdGVy
YWwoIlN1Y2Nlc3NmdWx5IHByZWNvbm5lY3RlZCB0byAiKSwgaHJlZi5zdHJpbmcoKSkpOworICAg
ICAgICB9KTsKKyAgICB9CisKICAgICBpZiAobV9jbGllbnQuc2hvdWxkTG9hZExpbmsoKSkgewog
ICAgICAgICBhdXRvIHJlc291cmNlQ2xpZW50ID0gcHJlbG9hZElmTmVlZGVkKHJlbEF0dHJpYnV0
ZSwgaHJlZiwgZG9jdW1lbnQsIGFzLCBtZWRpYSwgbWltZVR5cGUsIGNyb3NzT3JpZ2luLCB0aGlz
KTsKICAgICAgICAgaWYgKHJlc291cmNlQ2xpZW50KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvbG9hZGVyL0xvYWRlclN0cmF0ZWd5LmggYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvTG9hZGVy
U3RyYXRlZ3kuaAppbmRleCA1M2YzYmZiMjY2NjliMTRlODhjY2QyOGY4OTFiMDIxOWQxNGZhNjNj
Li5mY2Y1NGQyYjBmOGNjM2VkMDliNDhjMGE5NjNjNWQ2NjQ3ZmM4M2NmIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9sb2FkZXIvTG9hZGVyU3RyYXRlZ3kuaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9sb2FkZXIvTG9hZGVyU3RyYXRlZ3kuaApAQCAtNjcsNiArNjcsOSBAQCBwdWJsaWM6CiAgICAg
dXNpbmcgUGluZ0xvYWRDb21wbGV0aW9uSGFuZGxlciA9IFdURjo6RnVuY3Rpb248dm9pZChjb25z
dCBSZXNvdXJjZUVycm9yJik+OwogICAgIHZpcnR1YWwgdm9pZCBzdGFydFBpbmdMb2FkKEZyYW1l
JiwgUmVzb3VyY2VSZXF1ZXN0JiwgY29uc3QgSFRUUEhlYWRlck1hcCYgb3JpZ2luYWxSZXF1ZXN0
SGVhZGVycywgY29uc3QgRmV0Y2hPcHRpb25zJiwgUGluZ0xvYWRDb21wbGV0aW9uSGFuZGxlciYm
ID0geyB9KSA9IDA7CiAKKyAgICB1c2luZyBQcmVjb25uZWN0Q29tcGxldGlvbkhhbmRsZXIgPSBX
VEY6OkZ1bmN0aW9uPHZvaWQoY29uc3QgUmVzb3VyY2VFcnJvciYpPjsKKyAgICB2aXJ0dWFsIHZv
aWQgcHJlY29ubmVjdFRvKGNvbnN0IFVSTCYsIFN0b3JlZENyZWRlbnRpYWxzUG9saWN5LCBQcmVj
b25uZWN0Q29tcGxldGlvbkhhbmRsZXImJikgPSAwOworCiAgICAgdmlydHVhbCB2b2lkIHN0b3Jl
RGVyaXZlZERhdGFUb0NhY2hlKGNvbnN0IFNIQTE6OkRpZ2VzdCYgYm9keUtleSwgY29uc3QgU3Ry
aW5nJiB0eXBlLCBjb25zdCBTdHJpbmcmIHBhcnRpdGlvbiwgV2ViQ29yZTo6U2hhcmVkQnVmZmVy
JikgPSAwOwogCiAgICAgdmlydHVhbCB2b2lkIHNldENhcHR1cmVFeHRyYU5ldHdvcmtMb2FkTWV0
cmljc0VuYWJsZWQoYm9vbCkgPSAwOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9T
ZXR0aW5ncy5pbiBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvU2V0dGluZ3MuaW4KaW5kZXggOTI3N2Mw
YTdjZTVkN2E3YmEyNWU2ZDM0ODU5MmE4YWMxYTFmZGVhYi4uZDgxNTI2YWFjYzE2NzI3YzkyY2E2
OWFhNzRiNjNlOGNhYmQwNDIxZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9TZXR0
aW5ncy5pbgorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1NldHRpbmdzLmluCkBAIC0yOTEsNiAr
MjkxLDggQEAgbGFuZ0F0dHJpYnV0ZUF3YXJlRm9ybUNvbnRyb2xVSUVuYWJsZWQgaW5pdGlhbD1m
YWxzZQogCiBzdWJyZXNvdXJjZUludGVncml0eUVuYWJsZWQgaW5pdGlhbD10cnVlCiAKK2xpbmtQ
cmVjb25uZWN0RW5hYmxlZCBpbml0aWFsPWZhbHNlCisKIGJlYWNvbkFQSUVuYWJsZWQgaW5pdGlh
bD1mYWxzZQogCiBjb25zdGFudFByb3BlcnRpZXNFbmFibGVkIGluaXRpYWw9ZmFsc2UKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0Nvbm5lY3Rpb25Ub1dl
YlByb2Nlc3MuY3BwIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrQ29ubmVj
dGlvblRvV2ViUHJvY2Vzcy5jcHAKaW5kZXggNzAzZDU5MWMyNGJiZTkwZTZmMDdmNGNiNWI5NDRh
YTZhZWJjN2MzOC4uYWY2NWZmZmM3YWRiNzQxZjc2MGU0N2RiYTViYzQ0ZjRjY2U4MDhlNSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrQ29ubmVjdGlvblRv
V2ViUHJvY2Vzcy5jcHAKKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3Jr
Q29ubmVjdGlvblRvV2ViUHJvY2Vzcy5jcHAKQEAgLTQzLDkgKzQzLDExIEBACiAjaW5jbHVkZSAi
TmV0d29ya1Jlc291cmNlTG9hZGVyTWVzc2FnZXMuaCIKICNpbmNsdWRlICJOZXR3b3JrU29ja2V0
U3RyZWFtLmgiCiAjaW5jbHVkZSAiTmV0d29ya1NvY2tldFN0cmVhbU1lc3NhZ2VzLmgiCisjaW5j
bHVkZSAiUHJlY29ubmVjdFRhc2suaCIKICNpbmNsdWRlICJSZW1vdGVOZXR3b3JraW5nQ29udGV4
dC5oIgogI2luY2x1ZGUgIlNlc3Npb25UcmFja2VyLmgiCiAjaW5jbHVkZSAiV2ViQ29yZUFyZ3Vt
ZW50Q29kZXJzLmgiCisjaW5jbHVkZSAiV2ViRXJyb3JzLmgiCiAjaW5jbHVkZSAiV2Vic2l0ZURh
dGFTdG9yZVBhcmFtZXRlcnMuaCIKICNpbmNsdWRlIDxXZWJDb3JlL05ldHdvcmtTdG9yYWdlU2Vz
c2lvbi5oPgogI2luY2x1ZGUgPFdlYkNvcmUvUGluZ0hhbmRsZS5oPgpAQCAtMjg3LDYgKzI4OSwy
NiBAQCB2b2lkIE5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzOjpwcmVmZXRjaEROUyhjb25z
dCBTdHJpbmcmIGhvc3RuYW1lKQogICAgIE5ldHdvcmtQcm9jZXNzOjpzaW5nbGV0b24oKS5wcmVm
ZXRjaEROUyhob3N0bmFtZSk7CiB9CiAKK3ZvaWQgTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nl
c3M6OnByZWNvbm5lY3RUbyh1aW50NjRfdCBwcmVjb25uZWN0aW9uSWRlbnRpZmllciwgY29uc3Qg
VVJMJiB1cmwsIFdlYkNvcmU6OlN0b3JlZENyZWRlbnRpYWxzUG9saWN5IHN0b3JlZENyZWRlbnRp
YWxzUG9saWN5KQoreworI2lmIEVOQUJMRShTRVJWRVJfUFJFQ09OTkVDVCkKKyAgICBuZXcgUHJl
Y29ubmVjdFRhc2sodXJsLCBzdG9yZWRDcmVkZW50aWFsc1BvbGljeSwgW3RoaXMsIHByb3RlY3Rl
ZFRoaXMgPSBtYWtlUmVmKCp0aGlzKSwgaWRlbnRpZmllciA9IHByZWNvbm5lY3Rpb25JZGVudGlm
aWVyXSAoY29uc3QgUmVzb3VyY2VFcnJvciYgZXJyb3IpIHsKKyAgICAgICAgZGlkRmluaXNoUHJl
Y29ubmVjdGlvbihpZGVudGlmaWVyLCBlcnJvcik7CisgICAgfSk7CisjZWxzZQorICAgIFVOVVNF
RF9QQVJBTShzdG9yZWRDcmVkZW50aWFsc1BvbGljeSk7CisgICAgZGlkRmluaXNoUHJlY29ubmVj
dGlvbihwcmVjb25uZWN0aW9uSWRlbnRpZmllciwgaW50ZXJuYWxFcnJvcih1cmwpKTsKKyNlbmRp
ZgorfQorCit2b2lkIE5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzOjpkaWRGaW5pc2hQcmVj
b25uZWN0aW9uKHVpbnQ2NF90IHByZWNvbm5lY3Rpb25JZGVudGlmaWVyLCBjb25zdCBSZXNvdXJj
ZUVycm9yJiBlcnJvcikKK3sKKyAgICBpZiAoIW1fY29ubmVjdGlvbi0+aXNWYWxpZCgpKQorICAg
ICAgICByZXR1cm47CisKKyAgICBtX2Nvbm5lY3Rpb24tPnNlbmQoTWVzc2FnZXM6Ok5ldHdvcmtQ
cm9jZXNzQ29ubmVjdGlvbjo6RGlkRmluaXNoUHJlY29ubmVjdGlvbihwcmVjb25uZWN0aW9uSWRl
bnRpZmllciwgZXJyb3IpLCAwKTsKK30KKwogc3RhdGljIE5ldHdvcmtTdG9yYWdlU2Vzc2lvbiYg
c3RvcmFnZVNlc3Npb24oUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklEKQogewogICAgIEFTU0VSVChz
ZXNzaW9uSUQuaXNWYWxpZCgpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1By
b2Nlc3MvTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuaCBiL1NvdXJjZS9XZWJLaXQvTmV0
d29ya1Byb2Nlc3MvTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuaAppbmRleCBjZDI4MDQy
Y2ZmYmYxNjBjY2NiN2U1ZDRkNDdhYzE4Njk1OTI1MGQ5Li4zODFkNjgxZDRiNzJlODJlM2EyOTM3
MDg4Mzk0Y2I0ZGNlMmMyYTY4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9j
ZXNzL05ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmgKKysrIGIvU291cmNlL1dlYktpdC9O
ZXR3b3JrUHJvY2Vzcy9OZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5oCkBAIC03Niw2ICs3
Niw4IEBAIHB1YmxpYzoKIHByaXZhdGU6CiAgICAgTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nl
c3MoSVBDOjpDb25uZWN0aW9uOjpJZGVudGlmaWVyKTsKIAorICAgIHZvaWQgZGlkRmluaXNoUHJl
Y29ubmVjdGlvbih1aW50NjRfdCBwcmVjb25uZWN0aW9uSWRlbnRpZmllciwgY29uc3QgV2ViQ29y
ZTo6UmVzb3VyY2VFcnJvciYpOworCiAgICAgLy8gSVBDOjpDb25uZWN0aW9uOjpDbGllbnQKICAg
ICB2b2lkIGRpZFJlY2VpdmVNZXNzYWdlKElQQzo6Q29ubmVjdGlvbiYsIElQQzo6RGVjb2RlciYp
IG92ZXJyaWRlOwogICAgIHZvaWQgZGlkUmVjZWl2ZVN5bmNNZXNzYWdlKElQQzo6Q29ubmVjdGlv
biYsIElQQzo6RGVjb2RlciYsIHN0ZDo6dW5pcXVlX3B0cjxJUEM6OkVuY29kZXI+Jikgb3ZlcnJp
ZGU7CkBAIC05MCw2ICs5Miw3IEBAIHByaXZhdGU6CiAgICAgdm9pZCBwZXJmb3JtU3luY2hyb25v
dXNMb2FkKGNvbnN0IE5ldHdvcmtSZXNvdXJjZUxvYWRQYXJhbWV0ZXJzJiwgUmVmPE1lc3NhZ2Vz
OjpOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzczo6UGVyZm9ybVN5bmNocm9ub3VzTG9hZDo6
RGVsYXllZFJlcGx5PiYmKTsKICAgICB2b2lkIGxvYWRQaW5nKE5ldHdvcmtSZXNvdXJjZUxvYWRQ
YXJhbWV0ZXJzJiYsIFdlYkNvcmU6OkhUVFBIZWFkZXJNYXAmJiBvcmlnaW5hbFJlcXVlc3RIZWFk
ZXJzKTsKICAgICB2b2lkIHByZWZldGNoRE5TKGNvbnN0IFN0cmluZyYpOworICAgIHZvaWQgcHJl
Y29ubmVjdFRvKHVpbnQ2NF90IHByZWNvbm5lY3Rpb25JZGVudGlmaWVyLCBjb25zdCBXZWJDb3Jl
OjpVUkwmLCBXZWJDb3JlOjpTdG9yZWRDcmVkZW50aWFsc1BvbGljeSk7CiAKICAgICB2b2lkIHJl
bW92ZUxvYWRJZGVudGlmaWVyKFJlc291cmNlTG9hZElkZW50aWZpZXIpOwogICAgIHZvaWQgc2V0
RGVmZXJzTG9hZGluZyhSZXNvdXJjZUxvYWRJZGVudGlmaWVyLCBib29sKTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nl
c3MubWVzc2FnZXMuaW4gYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtDb25u
ZWN0aW9uVG9XZWJQcm9jZXNzLm1lc3NhZ2VzLmluCmluZGV4IGFiZjBmY2NhMDAyYTRhZTUzY2Uw
YWU3MDgyNmJlZWFlNDFkNmVkNTYuLjYxM2VjNGE5NmMzY2I2ZTI1NTEzNGZjZjg3NDhiYmIxYTYw
YWU3NzUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0Nv
bm5lY3Rpb25Ub1dlYlByb2Nlc3MubWVzc2FnZXMuaW4KKysrIGIvU291cmNlL1dlYktpdC9OZXR3
b3JrUHJvY2Vzcy9OZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5tZXNzYWdlcy5pbgpAQCAt
MjgsNiArMjgsNyBAQCBtZXNzYWdlcyAtPiBOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2VzcyBM
ZWdhY3lSZWNlaXZlciB7CiAgICAgUmVtb3ZlTG9hZElkZW50aWZpZXIodWludDY0X3QgcmVzb3Vy
Y2VMb2FkSWRlbnRpZmllcikKICAgICBTZXREZWZlcnNMb2FkaW5nKHVpbnQ2NF90IHJlc291cmNl
TG9hZElkZW50aWZpZXIsIGJvb2wgZGVmZXJzKQogICAgIFByZWZldGNoRE5TKFN0cmluZyBob3N0
bmFtZSkKKyAgICBQcmVjb25uZWN0VG8odWludDY0X3QgcHJlY29ubmVjdGlvbklkZW50aWZpZXIs
IFdlYkNvcmU6OlVSTCB1cmwsIGVudW0gV2ViQ29yZTo6U3RvcmVkQ3JlZGVudGlhbHNQb2xpY3kg
c3RvcmVkQ3JlZGVudGlhbHNQb2xpY3kpOwogCiAgICAgU3RhcnREb3dubG9hZChQQUw6OlNlc3Np
b25JRCBzZXNzaW9uSUQsIFdlYktpdDo6RG93bmxvYWRJRCBkb3dubG9hZElELCBXZWJDb3JlOjpS
ZXNvdXJjZVJlcXVlc3QgcmVxdWVzdCwgU3RyaW5nIHN1Z2dlc3RlZE5hbWUpCiAgICAgQ29udmVy
dE1haW5SZXNvdXJjZUxvYWRUb0Rvd25sb2FkKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgdWlu
dDY0X3QgbWFpblJlc291cmNlTG9hZElkZW50aWZpZXIsIFdlYktpdDo6RG93bmxvYWRJRCBkb3du
bG9hZElELCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QgcmVxdWVzdCwgV2ViQ29yZTo6UmVzb3Vy
Y2VSZXNwb25zZSByZXNwb25zZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1By
b2Nlc3MvTmV0d29ya0RhdGFUYXNrLmNwcCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mv
TmV0d29ya0RhdGFUYXNrLmNwcAppbmRleCA4MDU0YjQ3MzNkZmZhMzBkNGEwMjkyZWY1MmE4Yjk2
NjZjYjM1OTQxLi5iYjdmMTc1MWZmZTRhMTliZTUzODgzY2Q1ZTFiMWFlMzgzODAyNTU3IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtEYXRhVGFzay5jcHAK
KysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrRGF0YVRhc2suY3BwCkBA
IC01Myw3ICs1Myw3IEBAIFJlZjxOZXR3b3JrRGF0YVRhc2s+IE5ldHdvcmtEYXRhVGFzazo6Y3Jl
YXRlKE5ldHdvcmtTZXNzaW9uJiBzZXNzaW9uLCBOZXR3b3JrRGF0CiAgICAgICAgIHJldHVybiBO
ZXR3b3JrRGF0YVRhc2tCbG9iOjpjcmVhdGUoc2Vzc2lvbiwgY2xpZW50LCBwYXJhbWV0ZXJzLnJl
cXVlc3QsIHBhcmFtZXRlcnMuY29udGVudFNuaWZmaW5nUG9saWN5LCBwYXJhbWV0ZXJzLmJsb2JG
aWxlUmVmZXJlbmNlcyk7CiAKICNpZiBQTEFURk9STShDT0NPQSkKLSAgICByZXR1cm4gTmV0d29y
a0RhdGFUYXNrQ29jb2E6OmNyZWF0ZShzZXNzaW9uLCBjbGllbnQsIHBhcmFtZXRlcnMucmVxdWVz
dCwgcGFyYW1ldGVycy5zdG9yZWRDcmVkZW50aWFsc1BvbGljeSwgcGFyYW1ldGVycy5jb250ZW50
U25pZmZpbmdQb2xpY3ksIHBhcmFtZXRlcnMuc2hvdWxkQ2xlYXJSZWZlcnJlck9uSFRUUFNUb0hU
VFBSZWRpcmVjdCk7CisgICAgcmV0dXJuIE5ldHdvcmtEYXRhVGFza0NvY29hOjpjcmVhdGUoc2Vz
c2lvbiwgY2xpZW50LCBwYXJhbWV0ZXJzLnJlcXVlc3QsIHBhcmFtZXRlcnMuc3RvcmVkQ3JlZGVu
dGlhbHNQb2xpY3ksIHBhcmFtZXRlcnMuY29udGVudFNuaWZmaW5nUG9saWN5LCBwYXJhbWV0ZXJz
LnNob3VsZENsZWFyUmVmZXJyZXJPbkhUVFBTVG9IVFRQUmVkaXJlY3QsIHBhcmFtZXRlcnMuc2hv
dWxkUHJlY29ubmVjdE9ubHkpOwogI2VuZGlmCiAjaWYgVVNFKFNPVVApCiAgICAgcmV0dXJuIE5l
dHdvcmtEYXRhVGFza1NvdXA6OmNyZWF0ZShzZXNzaW9uLCBjbGllbnQsIHBhcmFtZXRlcnMucmVx
dWVzdCwgcGFyYW1ldGVycy5zdG9yZWRDcmVkZW50aWFsc1BvbGljeSwgcGFyYW1ldGVycy5jb250
ZW50U25pZmZpbmdQb2xpY3ksIHBhcmFtZXRlcnMuc2hvdWxkQ2xlYXJSZWZlcnJlck9uSFRUUFNU
b0hUVFBSZWRpcmVjdCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNz
L05ldHdvcmtMb2FkUGFyYW1ldGVycy5oIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9O
ZXR3b3JrTG9hZFBhcmFtZXRlcnMuaAppbmRleCAxZmJkMmRhNDkxZDg3NmYxYWFiOWQxMjhlODM0
ZmU0ZDcxZDQ5MTBiLi4yNWFhNTA1ODBkZTlhOThhY2RjMDI3YTgxMDdhMjhlYTg5MzQ3NTc4IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtMb2FkUGFyYW1l
dGVycy5oCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0xvYWRQYXJh
bWV0ZXJzLmgKQEAgLTMzLDYgKzMzLDggQEAKIAogbmFtZXNwYWNlIFdlYktpdCB7CiAKK2VudW0g
Y2xhc3MgUHJlY29ubmVjdE9ubHkgeyBObywgWWVzIH07CisKIGNsYXNzIE5ldHdvcmtMb2FkUGFy
YW1ldGVycyB7CiBwdWJsaWM6CiAgICAgdWludDY0X3Qgd2ViUGFnZUlEIHsgMCB9OwpAQCAtNDks
NiArNTEsNyBAQCBwdWJsaWM6CiAjaWYgVVNFKE5FVFdPUktfU0VTU0lPTikKICAgICBWZWN0b3I8
UmVmUHRyPFdlYkNvcmU6OkJsb2JEYXRhRmlsZVJlZmVyZW5jZT4+IGJsb2JGaWxlUmVmZXJlbmNl
czsKICNlbmRpZgorICAgIFByZWNvbm5lY3RPbmx5IHNob3VsZFByZWNvbm5lY3RPbmx5IHsgUHJl
Y29ubmVjdE9ubHk6Ok5vIH07CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MuY3BwIGIvU291
cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5jcHAKaW5kZXggNzllMDJj
Zjg3MjE1MmM3YTA5YjY4NDlhNjVkNmFlM2Q4YjNlNjU4OC4uZjcxZTFkMWZmMDk1MmVjYTMyYjkw
NGYyNGUzYzRlY2QyYmFhZmRhMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJv
Y2Vzcy9OZXR3b3JrUHJvY2Vzcy5jcHAKKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vz
cy9OZXR3b3JrUHJvY2Vzcy5jcHAKQEAgLTQwLDYgKzQwLDcgQEAKICNpbmNsdWRlICJOZXR3b3Jr
UHJvY2Vzc1Byb3h5TWVzc2FnZXMuaCIKICNpbmNsdWRlICJOZXR3b3JrUmVzb3VyY2VMb2FkZXIu
aCIKICNpbmNsdWRlICJOZXR3b3JrU2Vzc2lvbi5oIgorI2luY2x1ZGUgIlByZWNvbm5lY3RUYXNr
LmgiCiAjaW5jbHVkZSAiUmVtb3RlTmV0d29ya2luZ0NvbnRleHQuaCIKICNpbmNsdWRlICJTZXNz
aW9uVHJhY2tlci5oIgogI2luY2x1ZGUgIlN0YXRpc3RpY3NEYXRhLmgiCkBAIC03MjUsNiArNzI2
LDE2IEBAIFN0cmluZyBOZXR3b3JrUHJvY2Vzczo6Y2FjaGVTdG9yYWdlRGlyZWN0b3J5KFBBTDo6
U2Vzc2lvbklEIHNlc3Npb25JRCkgY29uc3QKICAgICByZXR1cm4gc2Vzc2lvbi0+Y2FjaGVTdG9y
YWdlRGlyZWN0b3J5KCk7CiB9CiAKK3ZvaWQgTmV0d29ya1Byb2Nlc3M6OnByZWNvbm5lY3RUbyhj
b25zdCBXZWJDb3JlOjpVUkwmIHVybCwgV2ViQ29yZTo6U3RvcmVkQ3JlZGVudGlhbHNQb2xpY3kg
c3RvcmVkQ3JlZGVudGlhbHNQb2xpY3kpCit7CisjaWYgRU5BQkxFKFNFUlZFUl9QUkVDT05ORUNU
KQorICAgIG5ldyBQcmVjb25uZWN0VGFzayh1cmwsIHN0b3JlZENyZWRlbnRpYWxzUG9saWN5KTsK
KyNlbHNlCisgICAgVU5VU0VEX1BBUkFNKHVybCk7CisgICAgVU5VU0VEX1BBUkFNKHN0b3JlZENy
ZWRlbnRpYWxzUG9saWN5KTsKKyNlbmRpZgorfQorCiAjaWYgIVBMQVRGT1JNKENPQ09BKQogdm9p
ZCBOZXR3b3JrUHJvY2Vzczo6aW5pdGlhbGl6ZVByb2Nlc3MoY29uc3QgQ2hpbGRQcm9jZXNzSW5p
dGlhbGl6YXRpb25QYXJhbWV0ZXJzJikKIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0
d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MuaCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nl
c3MvTmV0d29ya1Byb2Nlc3MuaAppbmRleCAxNGE1MjJmY2Q2ZGQ1ZjBmZGJjNGE1MDEwNWEwYWI0
MGJiMGM1MmIwLi5iOWZhNzIwODRjNDgwOTUxMjc0YWY5YTQxNDdiZWViMDU3MWI4YjU2IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLmgKKysr
IGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5oCkBAIC01NCw2
ICs1NCw4IEBAIGNsYXNzIFByb3RlY3Rpb25TcGFjZTsKIGNsYXNzIFNlY3VyaXR5T3JpZ2luOwog
c3RydWN0IFNlY3VyaXR5T3JpZ2luRGF0YTsKIHN0cnVjdCBTb3VwTmV0d29ya1Byb3h5U2V0dGlu
Z3M7CitlbnVtIGNsYXNzIFN0b3JlZENyZWRlbnRpYWxzUG9saWN5OworY2xhc3MgVVJMOwogfQog
CiBuYW1lc3BhY2UgV2ViS2l0IHsKQEAgLTEzNyw2ICsxMzksOCBAQCBwdWJsaWM6CiAgICAgU2Vj
b25kcyBsb2FkVGhyb3R0bGVMYXRlbmN5KCkgY29uc3QgeyByZXR1cm4gbV9sb2FkVGhyb3R0bGVM
YXRlbmN5OyB9CiAgICAgU3RyaW5nIGNhY2hlU3RvcmFnZURpcmVjdG9yeShQQUw6OlNlc3Npb25J
RCkgY29uc3Q7CiAKKyAgICB2b2lkIHByZWNvbm5lY3RUbyhjb25zdCBXZWJDb3JlOjpVUkwmLCBX
ZWJDb3JlOjpTdG9yZWRDcmVkZW50aWFsc1BvbGljeSk7CisKIHByaXZhdGU6CiAgICAgTmV0d29y
a1Byb2Nlc3MoKTsKICAgICB+TmV0d29ya1Byb2Nlc3MoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MubWVzc2FnZXMuaW4gYi9Tb3VyY2Uv
V2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLm1lc3NhZ2VzLmluCmluZGV4IDY5
NGU0NzQ4ODZlMGY3ODRmNzU5YjRlYmRkOGU2ZTllNWU2OWM1ODguLjQ2MWYxYzBlYzI4MmYyMTZl
Zjg5YTQ5OGUzMjk0NmQ4ZTE2MzU4OGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29y
a1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MubWVzc2FnZXMuaW4KKysrIGIvU291cmNlL1dlYktpdC9O
ZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5tZXNzYWdlcy5pbgpAQCAtODIsNiArODIsOCBA
QCBtZXNzYWdlcyAtPiBOZXR3b3JrUHJvY2VzcyBMZWdhY3lSZWNlaXZlciB7CiAKICAgICBEaWRH
cmFudFNhbmRib3hFeHRlbnNpb25zVG9TdG9yYWdlUHJvY2Vzc0ZvckJsb2JzKHVpbnQ2NF90IHJl
cXVlc3RJRCkKIAorICAgIFByZWNvbm5lY3RUbyhXZWJDb3JlOjpVUkwgdXJsLCBlbnVtIFdlYkNv
cmU6OlN0b3JlZENyZWRlbnRpYWxzUG9saWN5IHN0b3JlZENyZWRlbnRpYWxzUG9saWN5KTsKKwog
I2lmIEhBVkUoQ0ZORVRXT1JLX1NUT1JBR0VfUEFSVElUSU9OSU5HKQogICAgIFVwZGF0ZVByZXZh
bGVudERvbWFpbnNUb1BhcnRpdGlvbk9yQmxvY2tDb29raWVzKFBBTDo6U2Vzc2lvbklEIHNlc3Np
b25JRCwgVmVjdG9yPFN0cmluZz4gZG9tYWluc1RvUGFydGl0aW9uLCBWZWN0b3I8U3RyaW5nPiBk
b21haW5zVG9CbG9jaywgVmVjdG9yPFN0cmluZz4gZG9tYWluc1RvTmVpdGhlclBhcnRpdGlvbk5v
ckJsb2NrLCBib29sIHNob3VsZENsZWFyRmlyc3QpCiAgICAgUmVtb3ZlUHJldmFsZW50RG9tYWlu
cyhQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIFZlY3RvcjxTdHJpbmc+IGRvbWFpbnNXaXRoSW50
ZXJhY3Rpb24pOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9QcmVj
b25uZWN0VGFzay5jcHAgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL1ByZWNvbm5lY3RU
YXNrLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi5kNWJjM2QzYmIyM2U1M2QxZGViYzYwN2IyNzE1ZDM5ZTk1MjEx
NGM2Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9QcmVj
b25uZWN0VGFzay5jcHAKQEAgLTAsMCArMSwxMzAgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIw
MTcgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9u
IGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICog
bW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBj
b25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBj
b2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJl
ZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29w
eXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhl
ciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMg
U09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBg
YEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBN
RVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBB
UkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJ
QlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFM
LCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBH
T09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lO
RVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9G
IExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9S
IFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4g
QU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQg
T0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAi
Y29uZmlnLmgiCisjaW5jbHVkZSAiUHJlY29ubmVjdFRhc2suaCIKKworI2lmIEVOQUJMRShTRVJW
RVJfUFJFQ09OTkVDVCkKKworI2luY2x1ZGUgIkF1dGhlbnRpY2F0aW9uTWFuYWdlci5oIgorI2lu
Y2x1ZGUgIkxvZ2dpbmcuaCIKKyNpbmNsdWRlICJOZXR3b3JrTG9hZFBhcmFtZXRlcnMuaCIKKyNp
bmNsdWRlICJOZXR3b3JrU2Vzc2lvbi5oIgorI2luY2x1ZGUgIldlYkVycm9ycy5oIgorI2luY2x1
ZGUgPFdlYkNvcmUvQXV0aGVudGljYXRpb25DaGFsbGVuZ2UuaD4KKyNpbmNsdWRlIDxXZWJDb3Jl
L1Jlc291cmNlRXJyb3IuaD4KKworI2lmIFBMQVRGT1JNKENPQ09BKQorI2luY2x1ZGUgIk5ldHdv
cmtEYXRhVGFza0NvY29hLmgiCisjZW5kaWYKKworbmFtZXNwYWNlIFdlYktpdCB7CisKK3VzaW5n
IG5hbWVzcGFjZSBXZWJDb3JlOworCitQcmVjb25uZWN0VGFzazo6UHJlY29ubmVjdFRhc2soY29u
c3QgVVJMJiB1cmwsIFdlYkNvcmU6OlN0b3JlZENyZWRlbnRpYWxzUG9saWN5IHN0b3JlZENyZWRl
bnRpYWxzUG9saWN5LCBXVEY6OkNvbXBsZXRpb25IYW5kbGVyPHZvaWQoY29uc3QgV2ViQ29yZTo6
UmVzb3VyY2VFcnJvciYpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQorICAgIDogbV9jb21wbGV0aW9u
SGFuZGxlcihXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKSkKK3sKKyAgICBSRUxFQVNFX0xPRyhO
ZXR3b3JrLCAiJXAgLSBQcmVjb25uZWN0VGFzazo6UHJlY29ubmVjdFRhc2soKSIsIHRoaXMpOwor
ICAgIE5ldHdvcmtMb2FkUGFyYW1ldGVycyBwYXJhbWV0ZXJzOworICAgIHBhcmFtZXRlcnMucmVx
dWVzdCA9IFJlc291cmNlUmVxdWVzdCh1cmwpOworICAgIHBhcmFtZXRlcnMuc2hvdWxkUHJlY29u
bmVjdE9ubHkgPSBQcmVjb25uZWN0T25seTo6WWVzOworICAgIHBhcmFtZXRlcnMuc3RvcmVkQ3Jl
ZGVudGlhbHNQb2xpY3kgPSBzdG9yZWRDcmVkZW50aWFsc1BvbGljeTsKKyAgICBtX3Rhc2sgPSBO
ZXR3b3JrRGF0YVRhc2s6OmNyZWF0ZShOZXR3b3JrU2Vzc2lvbjo6ZGVmYXVsdFNlc3Npb24oKSwg
KnRoaXMsIHBhcmFtZXRlcnMpOworICAgIG1fdGFzay0+cmVzdW1lKCk7Cit9CisKK1ByZWNvbm5l
Y3RUYXNrOjp+UHJlY29ubmVjdFRhc2soKQoreworICAgIEFTU0VSVChtX3Rhc2stPmNsaWVudCgp
ID09IHRoaXMpOworICAgIG1fdGFzay0+Y2xlYXJDbGllbnQoKTsKKyAgICBtX3Rhc2stPmNhbmNl
bCgpOworICAgIEFTU0VSVCghbV9jb21wbGV0aW9uSGFuZGxlcik7Cit9CisKK3ZvaWQgUHJlY29u
bmVjdFRhc2s6OndpbGxQZXJmb3JtSFRUUFJlZGlyZWN0aW9uKFdlYkNvcmU6OlJlc291cmNlUmVz
cG9uc2UmJiwgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiYsIFJlZGlyZWN0Q29tcGxldGlvbkhh
bmRsZXImJikKK3sKKyAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKK30KKwordm9pZCBQcmVjb25u
ZWN0VGFzazo6ZGlkUmVjZWl2ZUNoYWxsZW5nZShjb25zdCBXZWJDb3JlOjpBdXRoZW50aWNhdGlv
bkNoYWxsZW5nZSYgY2hhbGxlbmdlLCBDaGFsbGVuZ2VDb21wbGV0aW9uSGFuZGxlciYmIGNvbXBs
ZXRpb25IYW5kbGVyKQoreworICAgIGlmIChjaGFsbGVuZ2UucHJvdGVjdGlvblNwYWNlKCkuYXV0
aGVudGljYXRpb25TY2hlbWUoKSA9PSBQcm90ZWN0aW9uU3BhY2VBdXRoZW50aWNhdGlvblNjaGVt
ZVNlcnZlclRydXN0RXZhbHVhdGlvblJlcXVlc3RlZCkgeworICAgICAgICBpZiAobV90YXNrICYm
IG1fdGFzay0+YWxsb3dzU3BlY2lmaWNIVFRQU0NlcnRpZmljYXRlRm9ySG9zdChjaGFsbGVuZ2Up
KQorICAgICAgICAgICAgY29tcGxldGlvbkhhbmRsZXIoQXV0aGVudGljYXRpb25DaGFsbGVuZ2VE
aXNwb3NpdGlvbjo6VXNlQ3JlZGVudGlhbCwgc2VydmVyVHJ1c3RDcmVkZW50aWFsKGNoYWxsZW5n
ZSkpOworICAgICAgICBlbHNlCisgICAgICAgICAgICBjb21wbGV0aW9uSGFuZGxlcihBdXRoZW50
aWNhdGlvbkNoYWxsZW5nZURpc3Bvc2l0aW9uOjpSZWplY3RQcm90ZWN0aW9uU3BhY2UsIHsgfSk7
CisgICAgICAgIHJldHVybjsKKyAgICB9CisgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7Cit9CisK
K3ZvaWQgUHJlY29ubmVjdFRhc2s6OmRpZFJlY2VpdmVSZXNwb25zZU5ldHdvcmtTZXNzaW9uKFdl
YkNvcmU6OlJlc291cmNlUmVzcG9uc2UmJiwgUmVzcG9uc2VDb21wbGV0aW9uSGFuZGxlciYmKQor
eworICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOworfQorCit2b2lkIFByZWNvbm5lY3RUYXNrOjpk
aWRSZWNlaXZlRGF0YShSZWY8V2ViQ29yZTo6U2hhcmVkQnVmZmVyPiYmKQoreworICAgIEFTU0VS
VF9OT1RfUkVBQ0hFRCgpOworfQorCit2b2lkIFByZWNvbm5lY3RUYXNrOjpkaWRDb21wbGV0ZVdp
dGhFcnJvcihjb25zdCBXZWJDb3JlOjpSZXNvdXJjZUVycm9yJiBlcnJvciwgY29uc3QgV2ViQ29y
ZTo6TmV0d29ya0xvYWRNZXRyaWNzJikKK3sKKyAgICBpZiAoZXJyb3IuaXNOdWxsKCkpCisgICAg
ICAgIFJFTEVBU0VfTE9HKE5ldHdvcmssICIlcCAtIFByZWNvbm5lY3RUYXNrOjpkaWRDb21wbGV0
ZSIsIHRoaXMpOworICAgIGVsc2UKKyAgICAgICAgUkVMRUFTRV9MT0coTmV0d29yaywgIiVwIC0g
UHJlY29ubmVjdFRhc2s6OmRpZENvbXBsZXRlV2l0aEVycm9yLCBlcnJvcl9jb2RlOiAlZCIsIHRo
aXMsIGVycm9yLmVycm9yQ29kZSgpKTsKKworICAgIG1fY29tcGxldGlvbkhhbmRsZXIoZXJyb3Ip
OworfQorCit2b2lkIFByZWNvbm5lY3RUYXNrOjpkaWRTZW5kRGF0YSh1aW50NjRfdCB0b3RhbEJ5
dGVzU2VudCwgdWludDY0X3QgdG90YWxCeXRlc0V4cGVjdGVkVG9TZW5kKQoreworICAgIEFTU0VS
VF9OT1RfUkVBQ0hFRCgpOworfQorCit2b2lkIFByZWNvbm5lY3RUYXNrOjp3YXNCbG9ja2VkKCkK
K3sKKyAgICBSRUxFQVNFX0xPRyhOZXR3b3JrLCAiJXAgLSBQcmVjb25uZWN0VGFzazo6d2FzQmxv
Y2tlZCgpIiwgdGhpcyk7CisgICAgZGlkRmluaXNoKGJsb2NrZWRFcnJvcihSZXNvdXJjZVJlcXVl
c3QgeyB9KSk7Cit9CisKK3ZvaWQgUHJlY29ubmVjdFRhc2s6OmNhbm5vdFNob3dVUkwoKQorewor
ICAgIFJFTEVBU0VfTE9HKE5ldHdvcmssICIlcCAtIFByZWNvbm5lY3RUYXNrOjpjYW5ub3RTaG93
VVJMKCkiLCB0aGlzKTsKKyAgICBkaWRGaW5pc2goY2Fubm90U2hvd1VSTEVycm9yKFJlc291cmNl
UmVxdWVzdCB7IH0pKTsKK30KKwordm9pZCBQcmVjb25uZWN0VGFzazo6ZGlkRmluaXNoKGNvbnN0
IFJlc291cmNlRXJyb3ImIGVycm9yKQoreworICAgIGlmIChtX2NvbXBsZXRpb25IYW5kbGVyKQor
ICAgICAgICBtX2NvbXBsZXRpb25IYW5kbGVyKGVycm9yKTsKKyAgICBkZWxldGUgdGhpczsKK30K
KworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CisKKyNlbmRpZiAvLyBFTkFCTEUoU0VSVkVSX1BSRUNP
Tk5FQ1QpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL1ByZWNvbm5l
Y3RUYXNrLmggYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL1ByZWNvbm5lY3RUYXNrLmgK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uYzI4NzhiNGRkNTlhMWJkNTdkMDRmZTA0ZDVjM2M5ZmZlMDdlMmUzZgotLS0g
L2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvUHJlY29ubmVjdFRh
c2suaApAQCAtMCwwICsxLDU5IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE3IEFwcGxlIElu
Yy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGlu
IHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlv
biwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwor
ICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJl
dGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlv
bnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxz
IHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElT
IFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisg
KiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklM
SVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlN
RUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICog
QkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwg
RVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VS
VklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5U
RVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFks
IFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNM
VURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VU
IE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUg
UE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNpZiBF
TkFCTEUoU0VSVkVSX1BSRUNPTk5FQ1QpCisKKyNpbmNsdWRlICJOZXR3b3JrRGF0YVRhc2suaCIK
KyNpbmNsdWRlIDx3dGYvQ29tcGxldGlvbkhhbmRsZXIuaD4KKworbmFtZXNwYWNlIFdlYktpdCB7
CisKK2NsYXNzIFByZWNvbm5lY3RUYXNrIGZpbmFsIDogcHJpdmF0ZSBOZXR3b3JrRGF0YVRhc2tD
bGllbnQgeworcHVibGljOgorICAgIGV4cGxpY2l0IFByZWNvbm5lY3RUYXNrKGNvbnN0IFdlYkNv
cmU6OlVSTCYsIFdlYkNvcmU6OlN0b3JlZENyZWRlbnRpYWxzUG9saWN5LCBXVEY6OkNvbXBsZXRp
b25IYW5kbGVyPHZvaWQoY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VFcnJvciYpPiYmIGNvbXBsZXRp
b25IYW5kbGVyID0geyB9KTsKKyAgICB+UHJlY29ubmVjdFRhc2soKTsKKworcHJpdmF0ZToKKyAg
ICAvLyBOZXR3b3JrRGF0YVRhc2tDbGllbnQuCisgICAgdm9pZCB3aWxsUGVyZm9ybUhUVFBSZWRp
cmVjdGlvbihXZWJDb3JlOjpSZXNvdXJjZVJlc3BvbnNlJiYsIFdlYkNvcmU6OlJlc291cmNlUmVx
dWVzdCYmLCBSZWRpcmVjdENvbXBsZXRpb25IYW5kbGVyJiYpIGZpbmFsOworICAgIHZvaWQgZGlk
UmVjZWl2ZUNoYWxsZW5nZShjb25zdCBXZWJDb3JlOjpBdXRoZW50aWNhdGlvbkNoYWxsZW5nZSYs
IENoYWxsZW5nZUNvbXBsZXRpb25IYW5kbGVyJiYpIGZpbmFsOworICAgIHZvaWQgZGlkUmVjZWl2
ZVJlc3BvbnNlTmV0d29ya1Nlc3Npb24oV2ViQ29yZTo6UmVzb3VyY2VSZXNwb25zZSYmLCBSZXNw
b25zZUNvbXBsZXRpb25IYW5kbGVyJiYpIGZpbmFsOworICAgIHZvaWQgZGlkUmVjZWl2ZURhdGEo
UmVmPFdlYkNvcmU6OlNoYXJlZEJ1ZmZlcj4mJikgZmluYWw7CisgICAgdm9pZCBkaWRDb21wbGV0
ZVdpdGhFcnJvcihjb25zdCBXZWJDb3JlOjpSZXNvdXJjZUVycm9yJiwgY29uc3QgV2ViQ29yZTo6
TmV0d29ya0xvYWRNZXRyaWNzJikgZmluYWw7CisgICAgdm9pZCBkaWRTZW5kRGF0YSh1aW50NjRf
dCB0b3RhbEJ5dGVzU2VudCwgdWludDY0X3QgdG90YWxCeXRlc0V4cGVjdGVkVG9TZW5kKSBmaW5h
bDsKKyAgICB2b2lkIHdhc0Jsb2NrZWQoKSBmaW5hbDsKKyAgICB2b2lkIGNhbm5vdFNob3dVUkwo
KSBmaW5hbDsKKworICAgIHZvaWQgZGlkRmluaXNoKGNvbnN0IFdlYkNvcmU6OlJlc291cmNlRXJy
b3ImKTsKKworICAgIFJlZlB0cjxOZXR3b3JrRGF0YVRhc2s+IG1fdGFzazsKKyAgICBXVEY6OkNv
bXBsZXRpb25IYW5kbGVyPHZvaWQoY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VFcnJvciYpPiBtX2Nv
bXBsZXRpb25IYW5kbGVyOworfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CisKKyNlbmRpZiAv
LyBFTkFCTEUoU0VSVkVSX1BSRUNPTk5FQ1QpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05l
dHdvcmtQcm9jZXNzL2NvY29hL05ldHdvcmtEYXRhVGFza0NvY29hLmggYi9Tb3VyY2UvV2ViS2l0
L05ldHdvcmtQcm9jZXNzL2NvY29hL05ldHdvcmtEYXRhVGFza0NvY29hLmgKaW5kZXggY2RmNDMy
NGMwNmJkNmM3MTEwMDc0NzA2ZTUyOTUyMTk4MGYwNDNjOC4uMjEyYTlhMDhmYjEyMTE3ZWQ4M2Ex
MjI2ZGZiZjRmYWYwZjQ5ZTIyYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJv
Y2Vzcy9jb2NvYS9OZXR3b3JrRGF0YVRhc2tDb2NvYS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0
d29ya1Byb2Nlc3MvY29jb2EvTmV0d29ya0RhdGFUYXNrQ29jb2EuaApAQCAtMjgsNiArMjgsNyBA
QAogI2lmIFVTRShORVRXT1JLX1NFU1NJT04pCiAKICNpbmNsdWRlICJOZXR3b3JrRGF0YVRhc2su
aCIKKyNpbmNsdWRlICJOZXR3b3JrTG9hZFBhcmFtZXRlcnMuaCIKICNpbmNsdWRlIDxXZWJDb3Jl
L05ldHdvcmtMb2FkTWV0cmljcy5oPgogI2luY2x1ZGUgPHd0Zi9SZXRhaW5QdHIuaD4KIApAQCAt
NDAsOSArNDEsOSBAQCBjbGFzcyBOZXR3b3JrU2Vzc2lvbkNvY29hOwogY2xhc3MgTmV0d29ya0Rh
dGFUYXNrQ29jb2EgZmluYWwgOiBwdWJsaWMgTmV0d29ya0RhdGFUYXNrIHsKICAgICBmcmllbmQg
Y2xhc3MgTmV0d29ya1Nlc3Npb25Db2NvYTsKIHB1YmxpYzoKLSAgICBzdGF0aWMgUmVmPE5ldHdv
cmtEYXRhVGFzaz4gY3JlYXRlKE5ldHdvcmtTZXNzaW9uJiBzZXNzaW9uLCBOZXR3b3JrRGF0YVRh
c2tDbGllbnQmIGNsaWVudCwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0
LCBXZWJDb3JlOjpTdG9yZWRDcmVkZW50aWFsc1BvbGljeSBzdG9yZWRDcmVkZW50aWFsc1BvbGlj
eSwgV2ViQ29yZTo6Q29udGVudFNuaWZmaW5nUG9saWN5IHNob3VsZENvbnRlbnRTbmlmZiwgYm9v
bCBzaG91bGRDbGVhclJlZmVycmVyT25IVFRQU1RvSFRUUFJlZGlyZWN0KQorICAgIHN0YXRpYyBS
ZWY8TmV0d29ya0RhdGFUYXNrPiBjcmVhdGUoTmV0d29ya1Nlc3Npb24mIHNlc3Npb24sIE5ldHdv
cmtEYXRhVGFza0NsaWVudCYgY2xpZW50LCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3Qm
IHJlcXVlc3QsIFdlYkNvcmU6OlN0b3JlZENyZWRlbnRpYWxzUG9saWN5IHN0b3JlZENyZWRlbnRp
YWxzUG9saWN5LCBXZWJDb3JlOjpDb250ZW50U25pZmZpbmdQb2xpY3kgc2hvdWxkQ29udGVudFNu
aWZmLCBib29sIHNob3VsZENsZWFyUmVmZXJyZXJPbkhUVFBTVG9IVFRQUmVkaXJlY3QsIFByZWNv
bm5lY3RPbmx5IHNob3VsZFByZWNvbm5lY3RPbmx5KQogICAgIHsKLSAgICAgICAgcmV0dXJuIGFk
b3B0UmVmKCpuZXcgTmV0d29ya0RhdGFUYXNrQ29jb2Eoc2Vzc2lvbiwgY2xpZW50LCByZXF1ZXN0
LCBzdG9yZWRDcmVkZW50aWFsc1BvbGljeSwgc2hvdWxkQ29udGVudFNuaWZmLCBzaG91bGRDbGVh
clJlZmVycmVyT25IVFRQU1RvSFRUUFJlZGlyZWN0KSk7CisgICAgICAgIHJldHVybiBhZG9wdFJl
ZigqbmV3IE5ldHdvcmtEYXRhVGFza0NvY29hKHNlc3Npb24sIGNsaWVudCwgcmVxdWVzdCwgc3Rv
cmVkQ3JlZGVudGlhbHNQb2xpY3ksIHNob3VsZENvbnRlbnRTbmlmZiwgc2hvdWxkQ2xlYXJSZWZl
cnJlck9uSFRUUFNUb0hUVFBSZWRpcmVjdCwgc2hvdWxkUHJlY29ubmVjdE9ubHkpKTsKICAgICB9
CiAKICAgICB+TmV0d29ya0RhdGFUYXNrQ29jb2EoKTsKQEAgLTcxLDcgKzcyLDcgQEAgcHVibGlj
OgogICAgIFdlYkNvcmU6Ok5ldHdvcmtMb2FkTWV0cmljcyYgbmV0d29ya0xvYWRNZXRyaWNzKCkg
eyByZXR1cm4gbV9uZXR3b3JrTG9hZE1ldHJpY3M7IH0KIAogcHJpdmF0ZToKLSAgICBOZXR3b3Jr
RGF0YVRhc2tDb2NvYShOZXR3b3JrU2Vzc2lvbiYsIE5ldHdvcmtEYXRhVGFza0NsaWVudCYsIGNv
bnN0IFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYsIFdlYkNvcmU6OlN0b3JlZENyZWRlbnRpYWxz
UG9saWN5LCBXZWJDb3JlOjpDb250ZW50U25pZmZpbmdQb2xpY3ksIGJvb2wgc2hvdWxkQ2xlYXJS
ZWZlcnJlck9uSFRUUFNUb0hUVFBSZWRpcmVjdCk7CisgICAgTmV0d29ya0RhdGFUYXNrQ29jb2Eo
TmV0d29ya1Nlc3Npb24mLCBOZXR3b3JrRGF0YVRhc2tDbGllbnQmLCBjb25zdCBXZWJDb3JlOjpS
ZXNvdXJjZVJlcXVlc3QmLCBXZWJDb3JlOjpTdG9yZWRDcmVkZW50aWFsc1BvbGljeSwgV2ViQ29y
ZTo6Q29udGVudFNuaWZmaW5nUG9saWN5LCBib29sIHNob3VsZENsZWFyUmVmZXJyZXJPbkhUVFBT
VG9IVFRQUmVkaXJlY3QsIFByZWNvbm5lY3RPbmx5KTsKIAogICAgIGJvb2wgdHJ5UGFzc3dvcmRC
YXNlZEF1dGhlbnRpY2F0aW9uKGNvbnN0IFdlYkNvcmU6OkF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdl
JiwgQ2hhbGxlbmdlQ29tcGxldGlvbkhhbmRsZXImKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9OZXR3b3JrUHJvY2Vzcy9jb2NvYS9OZXR3b3JrRGF0YVRhc2tDb2NvYS5tbSBiL1NvdXJj
ZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvY29jb2EvTmV0d29ya0RhdGFUYXNrQ29jb2EubW0KaW5k
ZXggOTk3ZTBlZTFhZjY4ODNlZTcyOGQzMDAwNDhjYzZiMmVkNDlkMjQ5OS4uZGJiYjEwMDQwMTQ5
YTRmNmVmMjBkZTM5M2Y3Yzk2ODY2MWI4NGU4NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9O
ZXR3b3JrUHJvY2Vzcy9jb2NvYS9OZXR3b3JrRGF0YVRhc2tDb2NvYS5tbQorKysgYi9Tb3VyY2Uv
V2ViS2l0L05ldHdvcmtQcm9jZXNzL2NvY29hL05ldHdvcmtEYXRhVGFza0NvY29hLm1tCkBAIC03
NCw3ICs3NCw3IEBAIHN0YXRpYyBmbG9hdCB0b05TVVJMU2Vzc2lvblRhc2tQcmlvcml0eShXZWJD
b3JlOjpSZXNvdXJjZUxvYWRQcmlvcml0eSBwcmlvcml0eSkKICAgICByZXR1cm4gTlNVUkxTZXNz
aW9uVGFza1ByaW9yaXR5RGVmYXVsdDsKIH0KIAotTmV0d29ya0RhdGFUYXNrQ29jb2E6Ok5ldHdv
cmtEYXRhVGFza0NvY29hKE5ldHdvcmtTZXNzaW9uJiBzZXNzaW9uLCBOZXR3b3JrRGF0YVRhc2tD
bGllbnQmIGNsaWVudCwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0V2l0
aENyZWRlbnRpYWxzLCBXZWJDb3JlOjpTdG9yZWRDcmVkZW50aWFsc1BvbGljeSBzdG9yZWRDcmVk
ZW50aWFsc1BvbGljeSwgV2ViQ29yZTo6Q29udGVudFNuaWZmaW5nUG9saWN5IHNob3VsZENvbnRl
bnRTbmlmZiwgYm9vbCBzaG91bGRDbGVhclJlZmVycmVyT25IVFRQU1RvSFRUUFJlZGlyZWN0KQor
TmV0d29ya0RhdGFUYXNrQ29jb2E6Ok5ldHdvcmtEYXRhVGFza0NvY29hKE5ldHdvcmtTZXNzaW9u
JiBzZXNzaW9uLCBOZXR3b3JrRGF0YVRhc2tDbGllbnQmIGNsaWVudCwgY29uc3QgV2ViQ29yZTo6
UmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0V2l0aENyZWRlbnRpYWxzLCBXZWJDb3JlOjpTdG9yZWRD
cmVkZW50aWFsc1BvbGljeSBzdG9yZWRDcmVkZW50aWFsc1BvbGljeSwgV2ViQ29yZTo6Q29udGVu
dFNuaWZmaW5nUG9saWN5IHNob3VsZENvbnRlbnRTbmlmZiwgYm9vbCBzaG91bGRDbGVhclJlZmVy
cmVyT25IVFRQU1RvSFRUUFJlZGlyZWN0LCBQcmVjb25uZWN0T25seSBzaG91bGRQcmVjb25uZWN0
T25seSkKICAgICA6IE5ldHdvcmtEYXRhVGFzayhzZXNzaW9uLCBjbGllbnQsIHJlcXVlc3RXaXRo
Q3JlZGVudGlhbHMsIHN0b3JlZENyZWRlbnRpYWxzUG9saWN5LCBzaG91bGRDbGVhclJlZmVycmVy
T25IVFRQU1RvSFRUUFJlZGlyZWN0KQogewogICAgIGlmIChtX3NjaGVkdWxlZEZhaWx1cmVUeXBl
ICE9IE5vRmFpbHVyZSkKQEAgLTEyOCw2ICsxMjgsMTQgQEAgTmV0d29ya0RhdGFUYXNrQ29jb2E6
Ok5ldHdvcmtEYXRhVGFza0NvY29hKE5ldHdvcmtTZXNzaW9uJiBzZXNzaW9uLCBOZXR3b3JrRGF0
YVQKICAgICAgICAgTE9HKE5ldHdvcmtTZXNzaW9uLCAiJWxsdSBDcmVhdGluZyBOZXR3b3JrRGF0
YVRhc2sgd2l0aCBVUkwgJXMiLCBbbV90YXNrIHRhc2tJZGVudGlmaWVyXSwgbnNSZXF1ZXN0LlVS
TC5hYnNvbHV0ZVN0cmluZy5VVEY4U3RyaW5nKTsKICAgICB9CiAKKyAgICBpZiAoc2hvdWxkUHJl
Y29ubmVjdE9ubHkgPT0gUHJlY29ubmVjdE9ubHk6OlllcykgeworI2lmIEVOQUJMRShTRVJWRVJf
UFJFQ09OTkVDVCkKKyAgICAgICAgbV90YXNrLmdldCgpLl9wcmVjb25uZWN0ID0gdHJ1ZTsKKyNl
bHNlCisgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOworI2VuZGlmCisgICAgfQorCiAjaWYg
SEFWRShDRk5FVFdPUktfU1RPUkFHRV9QQVJUSVRJT05JTkcpCiAgICAgaWYgKHN0b3JlZENyZWRl
bnRpYWxzUG9saWN5ID09IFdlYkNvcmU6OlN0b3JlZENyZWRlbnRpYWxzUG9saWN5OjpVc2UpIHsK
ICAgICAgICAgU3RyaW5nIHN0b3JhZ2VQYXJ0aXRpb24gPSBzZXNzaW9uLm5ldHdvcmtTdG9yYWdl
U2Vzc2lvbigpLmNvb2tpZVN0b3JhZ2VQYXJ0aXRpb24ocmVxdWVzdCk7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJDb3JlQXJndW1lbnRDb2RlcnMuaCBiL1NvdXJjZS9XZWJL
aXQvU2hhcmVkL1dlYkNvcmVBcmd1bWVudENvZGVycy5oCmluZGV4IDA4YzM4MzkwYjg0Y2U0ODc0
MWNkNDRmZTE0MWVlNTZiODRiOTJjNDMuLmViM2RiNTBkOTZiZTEwY2QxZWMyM2ZiOGQ4ZTc4ZTEy
YThjYzIwZGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkNvcmVBcmd1bWVu
dENvZGVycy5oCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkNvcmVBcmd1bWVudENvZGVy
cy5oCkBAIC0zOSw2ICszOSw3IEBACiAjaW5jbHVkZSA8V2ViQ29yZS9QYXltZW50SGVhZGVycy5o
PgogI2luY2x1ZGUgPFdlYkNvcmUvUmVhbHRpbWVNZWRpYVNvdXJjZS5oPgogI2luY2x1ZGUgPFdl
YkNvcmUvU2Nyb2xsU25hcE9mZnNldHNJbmZvLmg+CisjaW5jbHVkZSA8V2ViQ29yZS9TdG9yZWRD
cmVkZW50aWFsc1BvbGljeS5oPgogCiBuYW1lc3BhY2UgV1RGIHsKIGNsYXNzIE1vbm90b25pY1Rp
bWU7CkBAIC03NjYsNCArNzY3LDEyIEBAIHRlbXBsYXRlPD4gc3RydWN0IEVudW1UcmFpdHM8V2Vi
Q29yZTo6TWVkaWFTZWxlY3Rpb25PcHRpb246OlR5cGU+IHsKICAgICA+OwogfTsKIAordGVtcGxh
dGUgPD4gc3RydWN0IEVudW1UcmFpdHM8V2ViQ29yZTo6U3RvcmVkQ3JlZGVudGlhbHNQb2xpY3k+
IHsKKyAgICB1c2luZyB2YWx1ZXMgPSBFbnVtVmFsdWVzPAorICAgICAgICBXZWJDb3JlOjpTdG9y
ZWRDcmVkZW50aWFsc1BvbGljeSwKKyAgICAgICAgV2ViQ29yZTo6U3RvcmVkQ3JlZGVudGlhbHNQ
b2xpY3k6OkRvTm90VXNlLAorICAgICAgICBXZWJDb3JlOjpTdG9yZWRDcmVkZW50aWFsc1BvbGlj
eTo6VXNlCisgICAgPjsKK307CisKIH0gLy8gbmFtZXNwYWNlIFdURgpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9TaGFyZWQvV2ViUHJlZmVyZW5jZXNEZWZpbml0aW9ucy5oIGIvU291cmNlL1dl
YktpdC9TaGFyZWQvV2ViUHJlZmVyZW5jZXNEZWZpbml0aW9ucy5oCmluZGV4IGM2ODIwZDgxNTZk
YjJiNWYyODU4MTEwMjFjODIyNzIyNjk0ODU3MGQuLjgzYzYzNjEzMjhiMTg1NTBlMGRjYzFhZmFm
M2RiZDdiNWRlMjhmZjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYlByZWZl
cmVuY2VzRGVmaW5pdGlvbnMuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJQcmVmZXJl
bmNlc0RlZmluaXRpb25zLmgKQEAgLTQ1LDYgKzQ1LDEyIEBACiAjZGVmaW5lIERFRkFVTFRfSElE
REVOX1BBR0VfQ1NTX0FOSU1BVElPTl9TVVNQRU5TSU9OX0VOQUJMRUQgZmFsc2UKICNlbmRpZgog
CisjaWYgRU5BQkxFKFNFUlZFUl9QUkVDT05ORUNUKQorI2RlZmluZSBERUZBVUxUX0xJTktfUFJF
Q09OTkVDVF9FTkFCTEVEIHRydWUKKyNlbHNlCisjZGVmaW5lIERFRkFVTFRfTElOS19QUkVDT05O
RUNUX0VOQUJMRUQgZmFsc2UKKyNlbmRpZgorCiAjaWYgUExBVEZPUk0oQ09DT0EpCiAjZGVmaW5l
IERFRkFVTFRfUERGUExVR0lOX0VOQUJMRUQgdHJ1ZQogI2Vsc2UKQEAgLTE4MSw2ICsxODcsNyBA
QAogICAgIG1hY3JvKERPTVBhc3RlQWxsb3dlZCwgZG9tUGFzdGVBbGxvd2VkLCBCb29sLCBib29s
LCBmYWxzZSwgIiIsICIiKSBcCiAgICAgbWFjcm8oSmF2YVNjcmlwdENhbkFjY2Vzc0NsaXBib2Fy
ZCwgamF2YVNjcmlwdENhbkFjY2Vzc0NsaXBib2FyZCwgQm9vbCwgYm9vbCwgZmFsc2UsICIiLCAi
IikgXAogICAgIG1hY3JvKFNob3VsZFByaW50QmFja2dyb3VuZHMsIHNob3VsZFByaW50QmFja2dy
b3VuZHMsIEJvb2wsIGJvb2wsIERFRkFVTFRfU0hPVUxEX1BSSU5UX0JBQ0tHUk9VTkRTLCAiIiwg
IiIpIFwKKyAgICBtYWNybyhMaW5rUHJlY29ubmVjdCwgbGlua1ByZWNvbm5lY3QsIEJvb2wsIGJv
b2wsIERFRkFVTFRfTElOS19QUkVDT05ORUNUX0VOQUJMRUQsICIiLCAiIikgXAogICAgIG1hY3Jv
KEZ1bGxTY3JlZW5FbmFibGVkLCBmdWxsU2NyZWVuRW5hYmxlZCwgQm9vbCwgYm9vbCwgZmFsc2Us
ICIiLCAiIikgXAogICAgIG1hY3JvKEFzeW5jaHJvbm91c1NwZWxsQ2hlY2tpbmdFbmFibGVkLCBh
c3luY2hyb25vdXNTcGVsbENoZWNraW5nRW5hYmxlZCwgQm9vbCwgYm9vbCwgZmFsc2UsICIiLCAi
IikgXAogICAgIG1hY3JvKFdlYlNlY3VyaXR5RW5hYmxlZCwgd2ViU2VjdXJpdHlFbmFibGVkLCBC
b29sLCBib29sLCB0cnVlLCAiIiwgIiIpIFwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL0FQSS9DL1dLQ29udGV4dC5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkv
Qy9XS0NvbnRleHQuY3BwCmluZGV4IDc4MzM4ZWQ2NTc4Y2RjZWMxZWUwY2UxMzQ0MzgyZWI0OTc2
MDYyNTkuLjcwNDhiYmUwYzBkNzA3MmRhMjRiYTFkMTRiYjkyOGQ5ZjllYWM5ZDggMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9DL1dLQ29udGV4dC5jcHAKKysrIGIvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0MvV0tDb250ZXh0LmNwcApAQCAtNDA3LDYgKzQwNywx
MSBAQCB2b2lkIFdLQ29udGV4dFNldERpc2tDYWNoZVNwZWN1bGF0aXZlVmFsaWRhdGlvbkVuYWJs
ZWQoV0tDb250ZXh0UmVmIGNvbnRleHRSZWYsCiAgICAgdG9JbXBsKGNvbnRleHRSZWYpLT5jb25m
aWd1cmF0aW9uKCkuc2V0RGlza0NhY2hlU3BlY3VsYXRpdmVWYWxpZGF0aW9uRW5hYmxlZCh2YWx1
ZSk7CiB9CiAKK3ZvaWQgV0tDb250ZXh0UHJlY29ubmVjdFRvU2VydmVyKFdLQ29udGV4dFJlZiBj
b250ZXh0UmVmLCBXS1VSTFJlZiBzZXJ2ZXJVUkxSZWYpCit7CisgICAgdG9JbXBsKGNvbnRleHRS
ZWYpLT5wcmVjb25uZWN0VG9TZXJ2ZXIoVVJMKFVSTCgpLCB0b1dURlN0cmluZyhzZXJ2ZXJVUkxS
ZWYpKSk7Cit9CisKIFdLQ29va2llTWFuYWdlclJlZiBXS0NvbnRleHRHZXRDb29raWVNYW5hZ2Vy
KFdLQ29udGV4dFJlZiBjb250ZXh0UmVmKQogewogICAgIHJldHVybiB0b0FQSSh0b0ltcGwoY29u
dGV4dFJlZiktPnN1cHBsZW1lbnQ8V2ViQ29va2llTWFuYWdlclByb3h5PigpKTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9DL1dLQ29udGV4dFByaXZhdGUuaCBiL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9DL1dLQ29udGV4dFByaXZhdGUuaAppbmRleCAwMmY5
MGI5MTdiNDg5NDUwZTIzMGI2YWU2NDZhYTk3NDY5MDc3OGE3Li4xNTJkNmRhYjBiNjkwNjBjN2M2
NmIxZjc5YTgwMzAyOWY4MTQ3OTE0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9BUEkvQy9XS0NvbnRleHRQcml2YXRlLmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
QVBJL0MvV0tDb250ZXh0UHJpdmF0ZS5oCkBAIC0xMDUsNiArMTA1LDggQEAgV0tfRVhQT1JUIHZv
aWQgV0tDb250ZXh0U2V0TWVtb3J5Q2FjaGVEaXNhYmxlZChXS0NvbnRleHRSZWYsIGJvb2wgZGlz
YWJsZWQpOwogCiBXS19FWFBPUlQgdm9pZCBXS0NvbnRleHRTZXRGb250V2hpdGVsaXN0KFdLQ29u
dGV4dFJlZiwgV0tBcnJheVJlZik7CiAKK1dLX0VYUE9SVCB2b2lkIFdLQ29udGV4dFByZWNvbm5l
Y3RUb1NlcnZlcihXS0NvbnRleHRSZWYgY29udGV4dCwgV0tVUkxSZWYgc2VydmVyVVJMKTsKKwog
V0tfRVhQT1JUIFdLUHJvY2Vzc0lEIFdLQ29udGV4dEdldE5ldHdvcmtQcm9jZXNzSWRlbnRpZmll
cihXS0NvbnRleHRSZWYgY29udGV4dCk7CiBXS19FWFBPUlQgV0tQcm9jZXNzSUQgV0tDb250ZXh0
R2V0RGF0YWJhc2VQcm9jZXNzSWRlbnRpZmllcihXS0NvbnRleHRSZWYgY29udGV4dCk7CiAKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1Byb2Nlc3NQb29s
Lm1tIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLUHJvY2Vzc1Bvb2wubW0K
aW5kZXggMWY1OTc0ZGY1N2EwMjFkYmQ1YmM4OTRmY2Q4ZWE3MTgzNDhhODkyOC4uMTgwMjMwN2M3
ZTBjZjkwMTg1N2UzNjYyYTk2MDE1MDE1ZmM5NjAxNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLUHJvY2Vzc1Bvb2wubW0KKysrIGIvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLUHJvY2Vzc1Bvb2wubW0KQEAgLTQxNSw2ICs0MTUsMTEg
QEAgc3RhdGljIE5TRGljdGlvbmFyeSAqcG9saWNpZXNIYXNoTWFwVG9EaWN0aW9uYXJ5KGNvbnN0
IEhhc2hNYXA8U3RyaW5nLCBIYXNoTWFwPFMKICAgICByZXR1cm4gX3Byb2Nlc3NQb29sLT5wcm9j
ZXNzZXMoKS5zaXplKCk7CiB9CiAKKy0gKHZvaWQpX3ByZWNvbm5lY3RUb1NlcnZlcjooTlNVUkwg
KilzZXJ2ZXJVUkwKK3sKKyAgICBfcHJvY2Vzc1Bvb2wtPnByZWNvbm5lY3RUb1NlcnZlcihzZXJ2
ZXJVUkwpOworfQorCiAtIChzaXplX3QpX3BsdWdpblByb2Nlc3NDb3VudAogewogI2lmICFQTEFU
Rk9STShJT1MpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2Ev
V0tQcm9jZXNzUG9vbFByaXZhdGUuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2Nv
YS9XS1Byb2Nlc3NQb29sUHJpdmF0ZS5oCmluZGV4IDA3YWFlMzEwOGZiM2YzNmZmZDJmZjM5NTM0
Y2EwZDE3ZTVjZjQ0ZjkuLjEzZmU1OWM0ODJiODhhNGI4MjhkNWQ2OGZkMjAzOTNlZmFlMTJiODAg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1Byb2Nlc3NQ
b29sUHJpdmF0ZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1By
b2Nlc3NQb29sUHJpdmF0ZS5oCkBAIC04Nyw2ICs4Nyw4IEBACiAvLyBUZXN0IG9ubHkuIFNob3Vs
ZCBiZSBjYWxsZWQgYmVmb3JlIGFueSB3ZWIgY29udGVudCBwcm9jZXNzZXMgYXJlIGxhdW5jaGVk
LgogKyAodm9pZClfZm9yY2VHYW1lQ29udHJvbGxlckZyYW1ld29yayBXS19BUElfQVZBSUxBQkxF
KG1hY29zeCgxMC4xMyksIGlvcygxMS4wKSk7CiAKKy0gKHZvaWQpX3ByZWNvbm5lY3RUb1NlcnZl
cjooTlNVUkwgKilzZXJ2ZXJVUkwgV0tfQVBJX0FWQUlMQUJMRShtYWNvc3goV0tfTUFDX1RCQSks
IGlvcyhXS19JT1NfVEJBKSk7CisKIEBwcm9wZXJ0eSAobm9uYXRvbWljLCBnZXR0ZXI9X2lzQ29v
a2llU3RvcmFnZVBhcnRpdGlvbmluZ0VuYWJsZWQsIHNldHRlcj1fc2V0Q29va2llU3RvcmFnZVBh
cnRpdGlvbmluZ0VuYWJsZWQ6KSBCT09MIF9jb29raWVTdG9yYWdlUGFydGl0aW9uaW5nRW5hYmxl
ZCBXS19BUElfQVZBSUxBQkxFKG1hY29zeCgxMC4xMi4zKSwgaW9zKDEwLjMpKTsKIAogQGVuZApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Bvb2wuY3BwIGIv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Bvb2wuY3BwCmluZGV4IGFjYjlkNTYy
NWVhYjc5NGJlNWNlZDYxZDdlYmMzOGEyYzUyMzU1YjcuLjI2MjA4NjM5ZmY0ZTdkNjdhNTY0ZDgy
NTI2OTlhMjY4ODc0ZWFlMTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dl
YlByb2Nlc3NQb29sLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNz
UG9vbC5jcHAKQEAgLTExNTcsNiArMTE1NywxNCBAQCB2b2lkIFdlYlByb2Nlc3NQb29sOjpzZXRD
YW5IYW5kbGVIVFRQU1NlcnZlclRydXN0RXZhbHVhdGlvbihib29sIHZhbHVlKQogICAgIH0KIH0K
IAordm9pZCBXZWJQcm9jZXNzUG9vbDo6cHJlY29ubmVjdFRvU2VydmVyKGNvbnN0IFVSTCYgdXJs
KQoreworICAgIGlmICghdXJsLmlzVmFsaWQoKSB8fCAhdXJsLnByb3RvY29sSXNJbkhUVFBGYW1p
bHkoKSkKKyAgICAgICAgcmV0dXJuOworCisgICAgZW5zdXJlTmV0d29ya1Byb2Nlc3MoKS5zZW5k
KE1lc3NhZ2VzOjpOZXR3b3JrUHJvY2Vzczo6UHJlY29ubmVjdFRvKHVybCwgU3RvcmVkQ3JlZGVu
dGlhbHNQb2xpY3k6OlVzZSksIDApOworfQorCiB2b2lkIFdlYlByb2Nlc3NQb29sOjpyZWdpc3Rl
clVSTFNjaGVtZUFzTG9jYWwoY29uc3QgU3RyaW5nJiB1cmxTY2hlbWUpCiB7CiAgICAgbV9zY2hl
bWVzVG9SZWdpc3RlckFzTG9jYWwuYWRkKHVybFNjaGVtZSk7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUG9vbC5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvV2ViUHJvY2Vzc1Bvb2wuaAppbmRleCBlMTlmNmRmMmFmODZkNWNhNDQ3MGFkNmM4NjE0OTE3
YTFmZjI4MDdhLi5hZDViMGM2N2E5NTAwZDhiYThhZDY0ZTNkOGZhZDg5MDQzNTc5N2M1IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUG9vbC5oCisrKyBiL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQb29sLmgKQEAgLTIxNiw2ICsyMTYsNyBA
QCBwdWJsaWM6CiAgICAgdm9pZCByZWdpc3RlclVSTFNjaGVtZUFzRGlzcGxheUlzb2xhdGVkKGNv
bnN0IFN0cmluZyYpOwogICAgIHZvaWQgcmVnaXN0ZXJVUkxTY2hlbWVBc0NPUlNFbmFibGVkKGNv
bnN0IFN0cmluZyYpOwogICAgIHZvaWQgcmVnaXN0ZXJVUkxTY2hlbWVBc0NhY2hlUGFydGl0aW9u
ZWQoY29uc3QgU3RyaW5nJik7CisgICAgdm9pZCBwcmVjb25uZWN0VG9TZXJ2ZXIoY29uc3QgV2Vi
Q29yZTo6VVJMJik7CiAKICAgICBWaXNpdGVkTGlua1N0b3JlJiB2aXNpdGVkTGlua1N0b3JlKCkg
eyByZXR1cm4gbV92aXNpdGVkTGlua1N0b3JlLmdldCgpOyB9CiAKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvV2ViS2l0
L1dlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IDY4MDdlOTNjZGRjODhjMDVi
MmNjNjBhNzE2YWVjN2U1NDQ0ZDIwNjQuLmMyOGNjMTFjNWVlYWM0NmY4YzczNTVkMWZmMmYzYzIw
OGI4YzViYzMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9q
ZWN0LnBieHByb2oKKysrIGIvU291cmNlL1dlYktpdC9XZWJLaXQueGNvZGVwcm9qL3Byb2plY3Qu
cGJ4cHJvagpAQCAtMTM4MCw2ICsxMzgwLDggQEAKIAkJODM5OTAyMDMxQkU5QTAyQjAwMEYzNjUz
IC8qIE5ldHdvcmtMb2FkLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSA4Mzk5MDFGRTFCRTlBMDFCMDAwRjM2NTMgLyogTmV0d29ya0xvYWQuaCAqLzsgfTsK
IAkJODM5QTJGMzExRTIwNjc0NTAwMzkwNTdFIC8qIEhpZ2hQZXJmb3JtYW5jZUdyYXBoaWNzVXNh
Z2VTYW1wbGVyLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDgzOUEyRjJGMUUyMDY3MzkwMDM5MDU3RSAvKiBIaWdoUGVyZm9ybWFuY2VHcmFwaGljc1Vz
YWdlU2FtcGxlci5jcHAgKi87IH07CiAJCTgzOUEyRjMyMUUyMDY3NDUwMDM5MDU3RSAvKiBIaWdo
UGVyZm9ybWFuY2VHcmFwaGljc1VzYWdlU2FtcGxlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODM5QTJGMzAxRTIwNjczOTAwMzkwNTdFIC8qIEhpZ2hQ
ZXJmb3JtYW5jZUdyYXBoaWNzVXNhZ2VTYW1wbGVyLmggKi87IH07CisJCTgzQTBFRDM0MUY3NDdD
Q0QwMDMyOTlFQiAvKiBQcmVjb25uZWN0VGFzay5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4M0EwRUQzMzFGNzQ3Q0M3MDAzMjk5RUIgLyogUHJlY29u
bmVjdFRhc2suY3BwICovOyB9OworCQk4M0EwRUQzNTFGNzQ3Q0NGMDAzMjk5RUIgLyogUHJlY29u
bmVjdFRhc2suaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDgzQTBFRDMyMUY3NDdDQzYwMDMyOTlFQiAvKiBQcmVjb25uZWN0VGFzay5oICovOyB9OwogCQk4
M0JEQ0NCOTFBQzVGREI2MDAzRjY0NDEgLyogTmV0d29ya0NhY2hlU3RhdGlzdGljcy5jcHAgaW4g
U291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4M0JEQ0NCODFBQzVG
REI2MDAzRjY0NDEgLyogTmV0d29ya0NhY2hlU3RhdGlzdGljcy5jcHAgKi87IH07CiAJCTgzQkZB
QzQyMUQ5NjEzN0MwMDQzMzQ5MCAvKiBCbG9iRG93bmxvYWRDbGllbnQuaCBpbiBIZWFkZXJzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDgzQkZBQzQwMUQ5NjEzNjAwMDQzMzQ5
MCAvKiBCbG9iRG93bmxvYWRDbGllbnQuaCAqLzsgfTsKIAkJODNCRkFDNDMxRDk2MTM3QzAwNDMz
NDkwIC8qIEJsb2JEb3dubG9hZENsaWVudC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSA4M0JGQUM0MTFEOTYxMzYwMDA0MzM0OTAgLyogQmxvYkRvd25s
b2FkQ2xpZW50LmNwcCAqLzsgfTsKQEAgLTM3MzMsNiArMzczNSw4IEBACiAJCTgzOTkwMUZGMUJF
OUEwMUIwMDBGMzY1MyAvKiBOZXR3b3JrTG9hZC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNw
cC5jcHA7IG5hbWUgPSBOZXR3b3JrTG9hZC5jcHA7IHBhdGggPSBOZXR3b3JrUHJvY2Vzcy9OZXR3
b3JrTG9hZC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTgzOUEyRjJGMUUyMDY3
MzkwMDM5MDU3RSAvKiBIaWdoUGVyZm9ybWFuY2VHcmFwaGljc1VzYWdlU2FtcGxlci5jcHAgKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBIaWdoUGVyZm9ybWFuY2VHcmFwaGlj
c1VzYWdlU2FtcGxlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTgzOUEyRjMw
MUUyMDY3MzkwMDM5MDU3RSAvKiBIaWdoUGVyZm9ybWFuY2VHcmFwaGljc1VzYWdlU2FtcGxlci5o
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBIaWdoUGVyZm9ybWFuY2VHcmFwaGlj
c1VzYWdlU2FtcGxlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk4M0EwRUQzMjFG
NzQ3Q0M2MDAzMjk5RUIgLyogUHJlY29ubmVjdFRhc2suaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Yy5oOyBuYW1lID0gUHJlY29ubmVjdFRhc2suaDsgcGF0aCA9IE5ldHdvcmtQcm9jZXNzL1ByZWNv
bm5lY3RUYXNrLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTgzQTBFRDMzMUY3NDdD
QzcwMDMyOTlFQiAvKiBQcmVjb25uZWN0VGFzay5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNw
cC5jcHA7IG5hbWUgPSBQcmVjb25uZWN0VGFzay5jcHA7IHBhdGggPSBOZXR3b3JrUHJvY2Vzcy9Q
cmVjb25uZWN0VGFzay5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTgzQkRDQ0I4
MUFDNUZEQjYwMDNGNjQ0MSAvKiBOZXR3b3JrQ2FjaGVTdGF0aXN0aWNzLmNwcCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IE5ldHdvcmtDYWNoZVN0YXRpc3RpY3MuY3BwOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk4M0JGQUM0MDFEOTYxMzYwMDA0MzM0OTAgLyog
QmxvYkRvd25sb2FkQ2xpZW50LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IEJs
b2JEb3dubG9hZENsaWVudC5oOyBwYXRoID0gTmV0d29ya1Byb2Nlc3MvRG93bmxvYWRzL0Jsb2JE
b3dubG9hZENsaWVudC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk4M0JGQUM0MTFE
OTYxMzYwMDA0MzM0OTAgLyogQmxvYkRvd25sb2FkQ2xpZW50LmNwcCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuY3BwLmNwcDsgbmFtZSA9IEJsb2JEb3dubG9hZENsaWVudC5jcHA7IHBhdGggPSBOZXR3
b3JrUHJvY2Vzcy9Eb3dubG9hZHMvQmxvYkRvd25sb2FkQ2xpZW50LmNwcDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKQEAgLTYxMTUsNiArNjExOSw4IEBACiAJCQkJNUMwQjE3N0YxRTdDODg2
NzAwRTkxMjNDIC8qIE5ldHdvcmtTb2NrZXRTdHJlYW0ubWVzc2FnZXMuaW4gKi8sCiAJCQkJNDYy
MTA3RDcxRjM4REJEMzAwREQ3ODEwIC8qIFBpbmdMb2FkLmNwcCAqLywKIAkJCQk1Q0U4NUIxRjFD
ODhFNjQzMDA3MEJGQ0UgLyogUGluZ0xvYWQuaCAqLywKKwkJCQk4M0EwRUQzMzFGNzQ3Q0M3MDAz
Mjk5RUIgLyogUHJlY29ubmVjdFRhc2suY3BwICovLAorCQkJCTgzQTBFRDMyMUY3NDdDQzYwMDMy
OTlFQiAvKiBQcmVjb25uZWN0VGFzay5oICovLAogCQkJCUUxQjc4NDcwMTYzRjI0NjkwMDA3QjY5
MiAvKiBSZW1vdGVOZXR3b3JraW5nQ29udGV4dC5oICovLAogCQkJKTsKIAkJCW5hbWUgPSBOZXR3
b3JrUHJvY2VzczsKQEAgLTg3MDksNiArODcxNSw3IEBACiAJCQkJMUE0QTlGMzMxMkI4NDRFMjAw
OEZFOTg0IC8qIFBsdWdpblF1aXJrcy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJN0NENjIyNzgxNzM5
RDg2MzAwNUJEN0ZGIC8qIFBsdWdpblNhbmRib3hQcm9maWxlLmggaW4gSGVhZGVycyAqLywKIAkJ
CQkxQTZGQjdBRjExRTY0QjY4MDBEQjEzNzEgLyogUGx1Z2luVmlldy5oIGluIEhlYWRlcnMgKi8s
CisJCQkJODNBMEVEMzUxRjc0N0NDRjAwMzI5OUVCIC8qIFByZWNvbm5lY3RUYXNrLmggaW4gSGVh
ZGVycyAqLywKIAkJCQlFMUNDMUI5MDEyRDdFQURGMDA2MjU4MzggLyogUHJpbnRJbmZvLmggaW4g
SGVhZGVycyAqLywKIAkJCQk4NkY5NTM2NTE4RkY1OEY1MDAxREIyRUYgLyogUHJvY2Vzc0Fzc2Vy
dGlvbi5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQkMxQTdDNTgxMTM2RTE5QzAwRkI3MTY3IC8qIFBy
b2Nlc3NMYXVuY2hlci5oIGluIEhlYWRlcnMgKi8sCkBAIC0xMDI5MCw2ICsxMDI5Nyw3IEBACiAJ
CQkJN0NENjIyNzcxNzM5RDg2MzAwNUJEN0ZGIC8qIFBsdWdpblNhbmRib3hQcm9maWxlLm1tIGlu
IFNvdXJjZXMgKi8sCiAJCQkJQkM4Mjg0NEQxNkI1MDgxQzAwQTI3OEZFIC8qIFBsdWdpblNlcnZp
Y2VFbnRyeVBvaW50Lm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJMUE2RkI3QUUxMUU2NEI2ODAwREIx
MzcxIC8qIFBsdWdpblZpZXcuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJODNBMEVEMzQxRjc0N0ND
RDAwMzI5OUVCIC8qIFByZWNvbm5lY3RUYXNrLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUUxOEM5
MkY0MTJEQjlFNzEwMENGMkFFQiAvKiBQcmludEluZm8uY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJ
RTFDQzFCOTExMkQ3RUFERjAwNjI1ODM4IC8qIFByaW50SW5mb01hYy5tbSBpbiBTb3VyY2VzICov
LAogCQkJCTM3NzE2QTVBMTk1QjkxMDUwMEVFOEIxQiAvKiBQcm9jZXNzQXNzZXJ0aW9uLmNwcCBp
biBTb3VyY2VzICovLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL05ldHdv
cmsvTmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uLmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9OZXR3b3JrL05ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbi5jcHAKaW5kZXggOTYyNGUyOTY0Yzc0
OWNiNzZjNWJmMDk3ZmUyYzUwYzdjZDZmZmE1Mi4uMzhkNTNjOWMyOWQwZTllZjFmNDA2MGE4ZDFi
MDU0NzM4YzFkMDdjZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL05ldHdv
cmsvTmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvTmV0d29yay9OZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb24uY3BwCkBAIC0xNDAsNiArMTQw
LDExIEBAIHZvaWQgTmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uOjpkaWRGaW5pc2hQaW5nTG9hZCh1
aW50NjRfdCBwaW5nTG9hZElkZW50aWZpZXIsIFJlCiAgICAgV2ViUHJvY2Vzczo6c2luZ2xldG9u
KCkud2ViTG9hZGVyU3RyYXRlZ3koKS5kaWRGaW5pc2hQaW5nTG9hZChwaW5nTG9hZElkZW50aWZp
ZXIsIFdURk1vdmUoZXJyb3IpKTsKIH0KIAordm9pZCBOZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb246
OmRpZEZpbmlzaFByZWNvbm5lY3Rpb24odWludDY0X3QgcHJlY29ubmVjdGlvbklkZW50aWZpZXIs
IFJlc291cmNlRXJyb3ImJiBlcnJvcikKK3sKKyAgICBXZWJQcm9jZXNzOjpzaW5nbGV0b24oKS53
ZWJMb2FkZXJTdHJhdGVneSgpLmRpZEZpbmlzaFByZWNvbm5lY3Rpb24ocHJlY29ubmVjdGlvbklk
ZW50aWZpZXIsIFdURk1vdmUoZXJyb3IpKTsKK30KKwogI2lmIEVOQUJMRShTSEFSRUFCTEVfUkVT
T1VSQ0UpCiB2b2lkIE5ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbjo6ZGlkQ2FjaGVSZXNvdXJjZShj
b25zdCBSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QsIGNvbnN0IFNoYXJlYWJsZVJlc291cmNlOjpI
YW5kbGUmIGhhbmRsZSwgUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklEKQogewpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nlc3NDb25uZWN0aW9u
LmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvTmV0d29yay9OZXR3b3JrUHJvY2Vzc0Nvbm5l
Y3Rpb24uaAppbmRleCBjNTM0NGVhNjVkMDFlYzFhM2RhMmIwYjA1M2NmYzQwMzgzMWU1NDhjLi5k
ZWVhN2IwZmQ4MmI5ZmEzYjVhMTllYmQ5YWJhNGE2MGQ4MmMwMTE4IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvTmV0d29yay9OZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb24uaAor
KysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvTmV0d29yay9OZXR3b3JrUHJvY2Vzc0Nvbm5l
Y3Rpb24uaApAQCAtNzQsNiArNzQsNyBAQCBwcml2YXRlOgogCiAgICAgdm9pZCBkaWRXcml0ZUJs
b2JzVG9UZW1wb3JhcnlGaWxlcyh1aW50NjRfdCByZXF1ZXN0SWRlbnRpZmllciwgY29uc3QgVmVj
dG9yPFN0cmluZz4mIGZpbGVuYW1lcyk7CiAgICAgdm9pZCBkaWRGaW5pc2hQaW5nTG9hZCh1aW50
NjRfdCBwaW5nTG9hZElkZW50aWZpZXIsIFdlYkNvcmU6OlJlc291cmNlRXJyb3ImJik7CisgICAg
dm9pZCBkaWRGaW5pc2hQcmVjb25uZWN0aW9uKHVpbnQ2NF90IHByZWNvbm5lY3Rpb25JZGVudGlm
aWVyLCBXZWJDb3JlOjpSZXNvdXJjZUVycm9yJiYpOwogCiAjaWYgRU5BQkxFKFNIQVJFQUJMRV9S
RVNPVVJDRSkKICAgICAvLyBNZXNzYWdlIGhhbmRsZXJzLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uLm1lc3NhZ2Vz
LmluIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nlc3NDb25u
ZWN0aW9uLm1lc3NhZ2VzLmluCmluZGV4IDgzZWYyZTYyMjg5YmFlMWQ4MzM2YmJmOTIyZDNmNThk
MjY0Yjg5ZTAuLjI4NzM2M2U3MzFlNDk0NDEyYmY4YWRiYTYzNDNhMTBkMjFlZGYwYmMgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9jZXNzQ29u
bmVjdGlvbi5tZXNzYWdlcy5pbgorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvTmV0d29y
ay9OZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb24ubWVzc2FnZXMuaW4KQEAgLTI4LDQgKzI4LDUgQEAg
bWVzc2FnZXMgLT4gTmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uIExlZ2FjeVJlY2VpdmVyIHsKIAog
ICAgIERpZFdyaXRlQmxvYnNUb1RlbXBvcmFyeUZpbGVzKHVpbnQ2NF90IHJlcXVlc3RJZGVudGlm
aWVyLCBWZWN0b3I8U3RyaW5nPiBmaWxlbmFtZXMpCiAgICAgRGlkRmluaXNoUGluZ0xvYWQodWlu
dDY0X3QgcGluZ0xvYWRJZGVudGlmaWVyLCBXZWJDb3JlOjpSZXNvdXJjZUVycm9yIGVycm9yKQor
ICAgIERpZEZpbmlzaFByZWNvbm5lY3Rpb24odWludDY0X3QgcHJlY29ubmVjdGlvbklkZW50aWZp
ZXIsIFdlYkNvcmU6OlJlc291cmNlRXJyb3IgZXJyb3IpCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvTmV0d29yay9XZWJMb2FkZXJTdHJhdGVneS5jcHAgYi9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvTmV0d29yay9XZWJMb2FkZXJTdHJhdGVneS5jcHAKaW5kZXggZWE3
YjE3YTNkZWI2MWI5N2U0NWNlMWJlOTg1NWQ2ZmRkNDA4NWVlNC4uYmI4MTBkMDY5ZjA2ZWExY2I1
MTM0NWJjYTZiZTEwMWU5ODMzZmJkMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL05ldHdvcmsvV2ViTG9hZGVyU3RyYXRlZ3kuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9OZXR3b3JrL1dlYkxvYWRlclN0cmF0ZWd5LmNwcApAQCAtMzU2LDYgKzM1NiwxMCBA
QCB2b2lkIFdlYkxvYWRlclN0cmF0ZWd5OjpuZXR3b3JrUHJvY2Vzc0NyYXNoZWQoKQogICAgIGF1
dG8gcGluZ0xvYWRDb21wbGV0aW9uSGFuZGxlcnMgPSBXVEZNb3ZlKG1fcGluZ0xvYWRDb21wbGV0
aW9uSGFuZGxlcnMpOwogICAgIGZvciAoYXV0byYgcGluZ0xvYWRDb21wbGV0aW9uSGFuZGxlciA6
IHBpbmdMb2FkQ29tcGxldGlvbkhhbmRsZXJzLnZhbHVlcygpKQogICAgICAgICBwaW5nTG9hZENv
bXBsZXRpb25IYW5kbGVyKGludGVybmFsRXJyb3IoVVJMKCkpKTsKKworICAgIGF1dG8gcHJlY29u
bmVjdENvbXBsZXRpb25IYW5kbGVycyA9IFdURk1vdmUobV9wcmVjb25uZWN0Q29tcGxldGlvbkhh
bmRsZXJzKTsKKyAgICBmb3IgKGF1dG8mIHByZWNvbm5lY3RDb21wbGV0aW9uSGFuZGxlciA6IHBy
ZWNvbm5lY3RDb21wbGV0aW9uSGFuZGxlcnMudmFsdWVzKCkpCisgICAgICAgIHByZWNvbm5lY3RD
b21wbGV0aW9uSGFuZGxlcihpbnRlcm5hbEVycm9yKFVSTCgpKSk7CiB9CiAKIHZvaWQgV2ViTG9h
ZGVyU3RyYXRlZ3k6OmxvYWRSZXNvdXJjZVN5bmNocm9ub3VzbHkoTmV0d29ya2luZ0NvbnRleHQq
IGNvbnRleHQsIHVuc2lnbmVkIGxvbmcgcmVzb3VyY2VMb2FkSWRlbnRpZmllciwgY29uc3QgUmVz
b3VyY2VSZXF1ZXN0JiByZXF1ZXN0LCBTdG9yZWRDcmVkZW50aWFsc1BvbGljeSBzdG9yZWRDcmVk
ZW50aWFsc1BvbGljeSwgQ2xpZW50Q3JlZGVudGlhbFBvbGljeSBjbGllbnRDcmVkZW50aWFsUG9s
aWN5LCBSZXNvdXJjZUVycm9yJiBlcnJvciwgUmVzb3VyY2VSZXNwb25zZSYgcmVzcG9uc2UsIFZl
Y3RvcjxjaGFyPiYgZGF0YSkKQEAgLTM5Miw3ICszOTYsNyBAQCB2b2lkIFdlYkxvYWRlclN0cmF0
ZWd5Ojpsb2FkUmVzb3VyY2VTeW5jaHJvbm91c2x5KE5ldHdvcmtpbmdDb250ZXh0KiBjb250ZXh0
LCB1bgogICAgIH0KIH0KIAotc3RhdGljIHVpbnQ2NF90IGdlbmVyYXRlUGluZ0xvYWRJZGVudGlm
aWVyKCkKK3N0YXRpYyB1aW50NjRfdCBnZW5lcmF0ZUxvYWRJZGVudGlmaWVyKCkKIHsKICAgICBz
dGF0aWMgdWludDY0X3QgaWRlbnRpZmllciA9IDA7CiAgICAgcmV0dXJuICsraWRlbnRpZmllcjsK
QEAgLTQyMiw3ICs0MjYsNyBAQCB2b2lkIFdlYkxvYWRlclN0cmF0ZWd5OjpzdGFydFBpbmdMb2Fk
KEZyYW1lJiBmcmFtZSwgUmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0LCBjbwogICAgIH0KICAgICAK
ICAgICBOZXR3b3JrUmVzb3VyY2VMb2FkUGFyYW1ldGVycyBsb2FkUGFyYW1ldGVyczsKLSAgICBs
b2FkUGFyYW1ldGVycy5pZGVudGlmaWVyID0gZ2VuZXJhdGVQaW5nTG9hZElkZW50aWZpZXIoKTsK
KyAgICBsb2FkUGFyYW1ldGVycy5pZGVudGlmaWVyID0gZ2VuZXJhdGVMb2FkSWRlbnRpZmllcigp
OwogICAgIGxvYWRQYXJhbWV0ZXJzLnJlcXVlc3QgPSByZXF1ZXN0OwogICAgIGxvYWRQYXJhbWV0
ZXJzLnNvdXJjZU9yaWdpbiA9ICZkb2N1bWVudC0+c2VjdXJpdHlPcmlnaW4oKTsKICAgICBsb2Fk
UGFyYW1ldGVycy5zZXNzaW9uSUQgPSB3ZWJQYWdlID8gd2ViUGFnZS0+c2Vzc2lvbklEKCkgOiBQ
QUw6OlNlc3Npb25JRDo6ZGVmYXVsdFNlc3Npb25JRCgpOwpAQCAtNDU5LDYgKzQ2MywyMCBAQCB2
b2lkIFdlYkxvYWRlclN0cmF0ZWd5OjpkaWRGaW5pc2hQaW5nTG9hZCh1aW50NjRfdCBwaW5nTG9h
ZElkZW50aWZpZXIsIFJlc291cmNlRQogICAgICAgICBjb21wbGV0aW9uSGFuZGxlcihXVEZNb3Zl
KGVycm9yKSk7CiB9CiAKK3ZvaWQgV2ViTG9hZGVyU3RyYXRlZ3k6OnByZWNvbm5lY3RUbyhjb25z
dCBXZWJDb3JlOjpVUkwmIHVybCwgU3RvcmVkQ3JlZGVudGlhbHNQb2xpY3kgc3RvcmVkQ3JlZGVu
dGlhbHNQb2xpY3ksIFByZWNvbm5lY3RDb21wbGV0aW9uSGFuZGxlciYmIGNvbXBsZXRpb25IYW5k
bGVyKQoreworICAgIHVpbnQ2NF90IHByZWNvbm5lY3Rpb25JZGVudGlmaWVyID0gZ2VuZXJhdGVM
b2FkSWRlbnRpZmllcigpOworICAgIGF1dG8gYWRkUmVzdWx0ID0gbV9wcmVjb25uZWN0Q29tcGxl
dGlvbkhhbmRsZXJzLmFkZChwcmVjb25uZWN0aW9uSWRlbnRpZmllciwgV1RGTW92ZShjb21wbGV0
aW9uSGFuZGxlcikpOworICAgIEFTU0VSVF9VTlVTRUQoYWRkUmVzdWx0LCBhZGRSZXN1bHQuaXNO
ZXdFbnRyeSk7CisgICAgV2ViUHJvY2Vzczo6c2luZ2xldG9uKCkubmV0d29ya0Nvbm5lY3Rpb24o
KS5jb25uZWN0aW9uKCkuc2VuZChNZXNzYWdlczo6TmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nl
c3M6OlByZWNvbm5lY3RUbyhwcmVjb25uZWN0aW9uSWRlbnRpZmllciwgdXJsLCBzdG9yZWRDcmVk
ZW50aWFsc1BvbGljeSksIDApOworfQorCit2b2lkIFdlYkxvYWRlclN0cmF0ZWd5OjpkaWRGaW5p
c2hQcmVjb25uZWN0aW9uKHVpbnQ2NF90IHByZWNvbm5lY3Rpb25JZGVudGlmaWVyLCBSZXNvdXJj
ZUVycm9yJiYgZXJyb3IpCit7CisgICAgaWYgKGF1dG8gY29tcGxldGlvbkhhbmRsZXIgPSBtX3By
ZWNvbm5lY3RDb21wbGV0aW9uSGFuZGxlcnMudGFrZShwcmVjb25uZWN0aW9uSWRlbnRpZmllcikp
CisgICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKFdURk1vdmUoZXJyb3IpKTsKK30KKwogdm9pZCBX
ZWJMb2FkZXJTdHJhdGVneTo6c3RvcmVEZXJpdmVkRGF0YVRvQ2FjaGUoY29uc3QgU0hBMTo6RGln
ZXN0JiBib2R5SGFzaCwgY29uc3QgU3RyaW5nJiB0eXBlLCBjb25zdCBTdHJpbmcmIHBhcnRpdGlv
biwgV2ViQ29yZTo6U2hhcmVkQnVmZmVyJiBkYXRhKQogewogI2lmIEVOQUJMRShORVRXT1JLX0NB
Q0hFKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL05ldHdvcmsvV2ViTG9h
ZGVyU3RyYXRlZ3kuaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9OZXR3b3JrL1dlYkxvYWRl
clN0cmF0ZWd5LmgKaW5kZXggNTczMDI4ZTVhN2I2NTc1YTIzNjgxZmY1MDI2Mjk0Y2VhOWE4N2Qy
ZC4uNDFmZmJlNGE0MTIyYTU4ODMyODNjODZmZjkzNzg3YjBhYmE3ZTkzNyAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL05ldHdvcmsvV2ViTG9hZGVyU3RyYXRlZ3kuaAorKysg
Yi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvTmV0d29yay9XZWJMb2FkZXJTdHJhdGVneS5oCkBA
IC02Miw2ICs2Miw5IEBAIHB1YmxpYzoKICAgICB2b2lkIHN0YXJ0UGluZ0xvYWQoV2ViQ29yZTo6
RnJhbWUmLCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmLCBjb25zdCBXZWJDb3JlOjpIVFRQSGVh
ZGVyTWFwJiBvcmlnaW5hbFJlcXVlc3RIZWFkZXJzLCBjb25zdCBXZWJDb3JlOjpGZXRjaE9wdGlv
bnMmLCBQaW5nTG9hZENvbXBsZXRpb25IYW5kbGVyJiYpIGZpbmFsOwogICAgIHZvaWQgZGlkRmlu
aXNoUGluZ0xvYWQodWludDY0X3QgcGluZ0xvYWRJZGVudGlmaWVyLCBXZWJDb3JlOjpSZXNvdXJj
ZUVycm9yJiYpOwogCisgICAgdm9pZCBwcmVjb25uZWN0VG8oY29uc3QgV2ViQ29yZTo6VVJMJiwg
V2ViQ29yZTo6U3RvcmVkQ3JlZGVudGlhbHNQb2xpY3ksIFByZWNvbm5lY3RDb21wbGV0aW9uSGFu
ZGxlciYmKSBmaW5hbDsKKyAgICB2b2lkIGRpZEZpbmlzaFByZWNvbm5lY3Rpb24odWludDY0X3Qg
cHJlY29ubmVjdGlvbklkZW50aWZpZXIsIFdlYkNvcmU6OlJlc291cmNlRXJyb3ImJik7CisKICAg
ICB2b2lkIHN0b3JlRGVyaXZlZERhdGFUb0NhY2hlKGNvbnN0IFNIQTE6OkRpZ2VzdCYgYm9keUhh
c2gsIGNvbnN0IFN0cmluZyYgdHlwZSwgY29uc3QgU3RyaW5nJiBwYXJ0aXRpb24sIFdlYkNvcmU6
OlNoYXJlZEJ1ZmZlciYpIGZpbmFsOwogCiAgICAgdm9pZCBzZXRDYXB0dXJlRXh0cmFOZXR3b3Jr
TG9hZE1ldHJpY3NFbmFibGVkKGJvb2wpIGZpbmFsOwpAQCAtODYsNiArODksNyBAQCBwcml2YXRl
OgogICAgIEhhc2hNYXA8dW5zaWduZWQgbG9uZywgUmVmUHRyPFdlYlJlc291cmNlTG9hZGVyPj4g
bV93ZWJSZXNvdXJjZUxvYWRlcnM7CiAgICAgSGFzaE1hcDx1bnNpZ25lZCBsb25nLCBXZWJVUkxT
Y2hlbWVUYXNrUHJveHkqPiBtX3VybFNjaGVtZVRhc2tzOwogICAgIEhhc2hNYXA8dW5zaWduZWQg
bG9uZywgUGluZ0xvYWRDb21wbGV0aW9uSGFuZGxlcj4gbV9waW5nTG9hZENvbXBsZXRpb25IYW5k
bGVyczsKKyAgICBIYXNoTWFwPHVuc2lnbmVkIGxvbmcsIFByZWNvbm5lY3RDb21wbGV0aW9uSGFu
ZGxlcj4gbV9wcmVjb25uZWN0Q29tcGxldGlvbkhhbmRsZXJzOwogfTsKIAogfSAvLyBuYW1lc3Bh
Y2UgV2ViS2l0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9X
ZWJQYWdlLmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3Bw
CmluZGV4IDFlYTdhM2MyZjViN2E1ODMxOTU0N2U5NmE3MjkxMTM3NTNiMDRjN2QuLjE3MGVkZjdm
YzQ5N2MzYzc3MTA1ZmMwNjkxYWRmYmUwM2JmNTUyM2MgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwCkBAIC0zMDkwLDYgKzMwOTAsNyBAQCB2b2lkIFdl
YlBhZ2U6OnVwZGF0ZVByZWZlcmVuY2VzKGNvbnN0IFdlYlByZWZlcmVuY2VzU3RvcmUmIHN0b3Jl
KQogICAgIHNldHRpbmdzLnNldFBhZ2luYXRlRHVyaW5nTGF5b3V0RW5hYmxlZChzdG9yZS5nZXRC
b29sVmFsdWVGb3JLZXkoV2ViUHJlZmVyZW5jZXNLZXk6OnBhZ2luYXRlRHVyaW5nTGF5b3V0RW5h
YmxlZEtleSgpKSk7CiAgICAgc2V0dGluZ3Muc2V0RE9NUGFzdGVBbGxvd2VkKHN0b3JlLmdldEJv
b2xWYWx1ZUZvcktleShXZWJQcmVmZXJlbmNlc0tleTo6ZG9tUGFzdGVBbGxvd2VkS2V5KCkpKTsK
ICAgICBzZXR0aW5ncy5zZXRKYXZhU2NyaXB0Q2FuQWNjZXNzQ2xpcGJvYXJkKHN0b3JlLmdldEJv
b2xWYWx1ZUZvcktleShXZWJQcmVmZXJlbmNlc0tleTo6amF2YVNjcmlwdENhbkFjY2Vzc0NsaXBi
b2FyZEtleSgpKSk7CisgICAgc2V0dGluZ3Muc2V0TGlua1ByZWNvbm5lY3RFbmFibGVkKHN0b3Jl
LmdldEJvb2xWYWx1ZUZvcktleShXZWJQcmVmZXJlbmNlc0tleTo6bGlua1ByZWNvbm5lY3RLZXko
KSkpOwogICAgIHNldHRpbmdzLnNldFNob3VsZFByaW50QmFja2dyb3VuZHMoc3RvcmUuZ2V0Qm9v
bFZhbHVlRm9yS2V5KFdlYlByZWZlcmVuY2VzS2V5OjpzaG91bGRQcmludEJhY2tncm91bmRzS2V5
KCkpKTsKICAgICBzZXR0aW5ncy5zZXRXZWJTZWN1cml0eUVuYWJsZWQoc3RvcmUuZ2V0Qm9vbFZh
bHVlRm9yS2V5KFdlYlByZWZlcmVuY2VzS2V5Ojp3ZWJTZWN1cml0eUVuYWJsZWRLZXkoKSkpOwog
ICAgIHNldHRpbmdzLnNldEFsbG93VW5pdmVyc2FsQWNjZXNzRnJvbUZpbGVVUkxzKHN0b3JlLmdl
dEJvb2xWYWx1ZUZvcktleShXZWJQcmVmZXJlbmNlc0tleTo6YWxsb3dVbml2ZXJzYWxBY2Nlc3NG
cm9tRmlsZVVSTHNLZXkoKSkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jb25maWcuaCBi
L1NvdXJjZS9XZWJLaXQvY29uZmlnLmgKaW5kZXggZTg2N2Y0ODdjNzE4OTE0ZjRkODlmMjE5ZGEw
MzkxYzk1MTcwYjZkNi4uY2FmNGZkNzdiY2E5MDlkN2M2NDljYTY3YTE2MTcxYjc5ZTRkMjdiYSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jb25maWcuaAorKysgYi9Tb3VyY2UvV2ViS2l0L2Nv
bmZpZy5oCkBAIC04OCw2ICs4OCwxMiBAQAogI2VuZGlmCiAjZW5kaWYKIAorI2lmIFVTRShORVRX
T1JLX1NFU1NJT04pICYmICgoUExBVEZPUk0oTUFDKSAmJiBfX01BQ19PU19YX1ZFUlNJT05fTUlO
X1JFUVVJUkVEID49IDEwMTMwMCkgfHwgKFBMQVRGT1JNKElPUykgJiYgX19JUEhPTkVfT1NfVkVS
U0lPTl9NSU5fUkVRVUlSRUQgPj0gMTEwMDAwKSkKKyNpZm5kZWYgRU5BQkxFX1NFUlZFUl9QUkVD
T05ORUNUCisjZGVmaW5lIEVOQUJMRV9TRVJWRVJfUFJFQ09OTkVDVCAxCisjZW5kaWYKKyNlbmRp
ZgorCiAjaWZuZGVmIEhBVkVfU0VDX0FDQ0VTU19DT05UUk9MCiAjaWYgUExBVEZPUk0oSU9TKSB8
fCBQTEFURk9STShNQUMpCiAjZGVmaW5lIEhBVkVfU0VDX0FDQ0VTU19DT05UUk9MIDEKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvV2ViQ29yZVN1cHBvcnQvV2ViUmVzb3VyY2VMb2Fk
U2NoZWR1bGVyLmNwcCBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvV2ViQ29yZVN1cHBvcnQvV2ViUmVz
b3VyY2VMb2FkU2NoZWR1bGVyLmNwcAppbmRleCA0ZDI5ODVkMWE0MzBiYzFiZDliZjI2M2I4OWU5
ODFjZjYzYzVjYzM1Li4zOGM5YzMyNzI5ZDhhZWE5OGNjZmE3NWFkNDI3ZWJhOWI3ZWM0NTI3IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L1dlYkNvcmVTdXBwb3J0L1dlYlJlc291cmNl
TG9hZFNjaGVkdWxlci5jcHAKKysrIGIvU291cmNlL1dlYktpdExlZ2FjeS9XZWJDb3JlU3VwcG9y
dC9XZWJSZXNvdXJjZUxvYWRTY2hlZHVsZXIuY3BwCkBAIC0zNjksMyArMzY5LDcgQEAgdm9pZCBX
ZWJSZXNvdXJjZUxvYWRTY2hlZHVsZXI6OnN0YXJ0UGluZ0xvYWQoRnJhbWUmIGZyYW1lLCBSZXNv
dXJjZVJlcXVlc3QmIHJlcXUKICAgICBuZXcgUGluZ0hhbmRsZShmcmFtZS5sb2FkZXIoKS5uZXR3
b3JraW5nQ29udGV4dCgpLCByZXF1ZXN0LCBvcHRpb25zLmNyZWRlbnRpYWxzICE9IEZldGNoT3B0
aW9uczo6Q3JlZGVudGlhbHM6Ok9taXQsIFBpbmdIYW5kbGU6OlVzZXNBc3luY0NhbGxiYWNrczo6
Tm8sIG9wdGlvbnMucmVkaXJlY3QgPT0gRmV0Y2hPcHRpb25zOjpSZWRpcmVjdDo6Rm9sbG93LCBX
VEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKSk7CiB9CiAKK3ZvaWQgV2ViUmVzb3VyY2VMb2FkU2No
ZWR1bGVyOjpwcmVjb25uZWN0VG8oY29uc3QgVVJMJiwgU3RvcmVkQ3JlZGVudGlhbHNQb2xpY3ks
IFByZWNvbm5lY3RDb21wbGV0aW9uSGFuZGxlciYmKQoreworfQorCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0TGVnYWN5L1dlYkNvcmVTdXBwb3J0L1dlYlJlc291cmNlTG9hZFNjaGVkdWxlci5o
IGIvU291cmNlL1dlYktpdExlZ2FjeS9XZWJDb3JlU3VwcG9ydC9XZWJSZXNvdXJjZUxvYWRTY2hl
ZHVsZXIuaAppbmRleCAwZTBjMmRlNTc3YzdjMmNmNzc2YTdmYTE2MWRkZGQ2Yjc1ZDEwOGE0Li5i
ZWY2ZDg2YTI2NjQzYjhjOWJkOGVjNWNkNjZjNTY3YTk5ODZhZTkzIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0TGVnYWN5L1dlYkNvcmVTdXBwb3J0L1dlYlJlc291cmNlTG9hZFNjaGVkdWxlci5o
CisrKyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvV2ViQ29yZVN1cHBvcnQvV2ViUmVzb3VyY2VMb2Fk
U2NoZWR1bGVyLmgKQEAgLTYxLDYgKzYxLDggQEAgcHVibGljOgogCiAgICAgdm9pZCBzdGFydFBp
bmdMb2FkKFdlYkNvcmU6OkZyYW1lJiwgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiwgY29uc3Qg
V2ViQ29yZTo6SFRUUEhlYWRlck1hcCYsIGNvbnN0IFdlYkNvcmU6OkZldGNoT3B0aW9ucyYsIFBp
bmdMb2FkQ29tcGxldGlvbkhhbmRsZXImJikgZmluYWw7CiAKKyAgICB2b2lkIHByZWNvbm5lY3RU
byhjb25zdCBXZWJDb3JlOjpVUkwmLCBXZWJDb3JlOjpTdG9yZWRDcmVkZW50aWFsc1BvbGljeSwg
UHJlY29ubmVjdENvbXBsZXRpb25IYW5kbGVyJiYpIGZpbmFsOworCiAgICAgdm9pZCBzdG9yZURl
cml2ZWREYXRhVG9DYWNoZShjb25zdCBTSEExOjpEaWdlc3QmLCBjb25zdCBTdHJpbmcmLCBjb25z
dCBTdHJpbmcmLCBXZWJDb3JlOjpTaGFyZWRCdWZmZXImKSBmaW5hbCB7IH0KIAogICAgIHZvaWQg
c2V0Q2FwdHVyZUV4dHJhTmV0d29ya0xvYWRNZXRyaWNzRW5hYmxlZChib29sKSBmaW5hbCB7IH0K
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCBhYWU2YzBjMThiMzlkNDQ3MjdhMGVkZGYzMDMwNGI0NDczYTczNjE2Li42ODBlZTE5
ZGRmMjc5YjUwMjUzYjY2NGJhMGM5YjJjZjU4NDY3NDMxIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0
cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjMgQEAK
KzIwMTctMDktMjYgIENocmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KKworICAgICAgICBB
ZGQgc3VwcG9ydCBmb3IgPGxpbmsgcmVsPXByZWNvbm5lY3Q+CisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNzc0NzQKKyAgICAgICAgPHJkYXI6Ly9wcm9i
bGVtLzMzMTQxMzgwPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisg
ICAgICAgICogaHR0cC90ZXN0cy9wcmVjb25uZWN0L2xpbmstcmVsLXByZWNvbm5lY3QtaHR0cC1l
eHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvcHJlY29ubmVjdC9saW5r
LXJlbC1wcmVjb25uZWN0LWh0dHAuaHRtbDogQWRkZWQuCisgICAgICAgICogaHR0cC90ZXN0cy9w
cmVjb25uZWN0L2xpbmstcmVsLXByZWNvbm5lY3QtaHR0cHMtZXhwZWN0ZWQudHh0OiBBZGRlZC4K
KyAgICAgICAgKiBodHRwL3Rlc3RzL3ByZWNvbm5lY3QvbGluay1yZWwtcHJlY29ubmVjdC1odHRw
cy5odG1sOiBBZGRlZC4KKyAgICAgICAgQWRkIHRlc3QgY292ZXJhZ2UuCisKKyAgICAgICAgKiBw
bGF0Zm9ybS9tYWMtZWxjYXBpdGFuLXdrMi9odHRwL3Rlc3RzL3ByZWNvbm5lY3QvbGluay1yZWwt
cHJlY29ubmVjdC1odHRwLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogcGxhdGZvcm0v
bWFjLWVsY2FwaXRhbi13azIvaHR0cC90ZXN0cy9wcmVjb25uZWN0L2xpbmstcmVsLXByZWNvbm5l
Y3QtaHR0cHMtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9tYWMtd2sx
L2h0dHAvdGVzdHMvcHJlY29ubmVjdC9saW5rLXJlbC1wcmVjb25uZWN0LWh0dHAtZXhwZWN0ZWQu
dHh0OiBBZGRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9tYWMtd2sxL2h0dHAvdGVzdHMvcHJlY29u
bmVjdC9saW5rLXJlbC1wcmVjb25uZWN0LWh0dHBzLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAg
ICAgIExhbmQgZmFpbHVyZSBiYXNlbGluZXMgZm9yIHBsYXRmb3JtcyB3aGVyZSB0aGlzIGlzIHVu
c3VwcG9ydGVkLgorCiAyMDE3LTA5LTI2ICBNZWdhbiBHYXJkbmVyICA8bWVnYW5fZ2FyZG5lckBh
cHBsZS5jb20+CiAKICAgICAgICAgQWRkIGhlbHBlciBmdW5jdGlvbnMgdG8gd3JpdGUgYmV0dGVy
IHNlbGVjdGlvbiB0ZXN0cwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9wcmVj
b25uZWN0L2xpbmstcmVsLXByZWNvbm5lY3QtaHR0cC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0
cy9odHRwL3Rlc3RzL3ByZWNvbm5lY3QvbGluay1yZWwtcHJlY29ubmVjdC1odHRwLWV4cGVjdGVk
LnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi44ZWJlODA0YjQxM2QwZWQzZTc5MTYyMTgzNDcxZGY3NDVjNTJhNTVl
Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9wcmVjb25uZWN0L2xp
bmstcmVsLXByZWNvbm5lY3QtaHR0cC1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwxMyBAQAorQ09O
U09MRSBNRVNTQUdFOiBTdWNjZXNzZnVseSBwcmVjb25uZWN0ZWQgdG8gaHR0cDovL2xvY2FsaG9z
dDo4MDAwLworVGVzdHMgdGhhdCBMaW5rJ3MgcmVsPXByZWNvbm5lY3QgaXMgcmVwb3J0ZWQgYXMg
c3VwcG9ydGVkIGFuZCB3b3Jrcy4KKworT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVz
IG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCisKK1BB
U1MgdGVzdExpbmsucmVsTGlzdC5sZW5ndGggaXMgMQorUEFTUyB0ZXN0TGluay5yZWxMaXN0WzBd
IGlzICJwcmVjb25uZWN0IgorUEFTUyB0ZXN0TGluay5yZWxMaXN0LnN1cHBvcnRzKCdwcmVjb25u
ZWN0JykgaXMgdHJ1ZQorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENP
TVBMRVRFCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcHJlY29ubmVjdC9s
aW5rLXJlbC1wcmVjb25uZWN0LWh0dHAuaHRtbCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcHJl
Y29ubmVjdC9saW5rLXJlbC1wcmVjb25uZWN0LWh0dHAuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5mMTkwNDIx
NmQ1ZDhjM2M4NDQ2MDIwZTQzYzMyOWNhYjM4NGQyYTBlCi0tLSAvZGV2L251bGwKKysrIGIvTGF5
b3V0VGVzdHMvaHR0cC90ZXN0cy9wcmVjb25uZWN0L2xpbmstcmVsLXByZWNvbm5lY3QtaHR0cC5o
dG1sCkBAIC0wLDAgKzEsMjAgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKzxs
aW5rIGlkPSJ0ZXN0TGluayIgcmVsPSJwcmVjb25uZWN0IiBocmVmPSJodHRwOi8vbG9jYWxob3N0
OjgwMDAiPgorPHNjcmlwdCBzcmM9Ii9qcy10ZXN0LXJlc291cmNlcy9qcy10ZXN0LmpzIj48L3Nj
cmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPHNjcmlwdD4KK2Rlc2NyaXB0aW9uKCJUZXN0cyB0aGF0
IExpbmsncyByZWw9cHJlY29ubmVjdCBpcyByZXBvcnRlZCBhcyBzdXBwb3J0ZWQgYW5kIHdvcmtz
LiIpOworanNUZXN0SXNBc3luYyA9IHRydWU7CisKK2NvbnN0IHRlc3RMaW5rID0gZG9jdW1lbnQu
Z2V0RWxlbWVudEJ5SWQoInRlc3RMaW5rIik7CitzaG91bGRCZSgidGVzdExpbmsucmVsTGlzdC5s
ZW5ndGgiLCAiMSIpOworc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJ0ZXN0TGluay5yZWxMaXN0WzBd
IiwgInByZWNvbm5lY3QiKTsKK3Nob3VsZEJlVHJ1ZSgidGVzdExpbmsucmVsTGlzdC5zdXBwb3J0
cygncHJlY29ubmVjdCcpIik7CisKK3NldFRpbWVvdXQoZmluaXNoSlNUZXN0LCAxMDAwKTsKKzwv
c2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90
ZXN0cy9wcmVjb25uZWN0L2xpbmstcmVsLXByZWNvbm5lY3QtaHR0cHMtZXhwZWN0ZWQudHh0IGIv
TGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9wcmVjb25uZWN0L2xpbmstcmVsLXByZWNvbm5lY3QtaHR0
cHMtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjFjM2I3Y2MyZThkYWY3MzUzNWUxMDA1ZjVlOTcw
OWY4MTUwMGFmOGMKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3By
ZWNvbm5lY3QvbGluay1yZWwtcHJlY29ubmVjdC1odHRwcy1leHBlY3RlZC50eHQKQEAgLTAsMCAr
MSwxMyBAQAorQ09OU09MRSBNRVNTQUdFOiBGYWlsZWQgdG8gcHJlY29ubmVjdCB0byBodHRwczov
L2xvY2FsaG9zdDo4NDQzLy4gRXJyb3I6IFRoZSBjZXJ0aWZpY2F0ZSBmb3IgdGhpcyBzZXJ2ZXIg
aXMgaW52YWxpZC4gWW91IG1pZ2h0IGJlIGNvbm5lY3RpbmcgdG8gYSBzZXJ2ZXIgdGhhdCBpcyBw
cmV0ZW5kaW5nIHRvIGJlIOKAnGxvY2FsaG9zdOKAnSB3aGljaCBjb3VsZCBwdXQgeW91ciBjb25m
aWRlbnRpYWwgaW5mb3JtYXRpb24gYXQgcmlzay4KK1Rlc3RzIHRoYXQgTGluaydzIHJlbD1wcmVj
b25uZWN0IGlzIHJlcG9ydGVkIGFzIHN1cHBvcnRlZCBhbmQgd29ya3MuCisKK09uIHN1Y2Nlc3Ms
IHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJU
RVNUIENPTVBMRVRFIi4KKworCitQQVNTIHRlc3RMaW5rLnJlbExpc3QubGVuZ3RoIGlzIDEKK1BB
U1MgdGVzdExpbmsucmVsTGlzdFswXSBpcyAicHJlY29ubmVjdCIKK1BBU1MgdGVzdExpbmsucmVs
TGlzdC5zdXBwb3J0cygncHJlY29ubmVjdCcpIGlzIHRydWUKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFy
c2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9o
dHRwL3Rlc3RzL3ByZWNvbm5lY3QvbGluay1yZWwtcHJlY29ubmVjdC1odHRwcy5odG1sIGIvTGF5
b3V0VGVzdHMvaHR0cC90ZXN0cy9wcmVjb25uZWN0L2xpbmstcmVsLXByZWNvbm5lY3QtaHR0cHMu
aHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi44NjZmM2M4ZmU2N2RiNDFiNzY5NWRiMGE2NGQwOTk5Y2UzZjM5MDBl
Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9wcmVjb25uZWN0L2xp
bmstcmVsLXByZWNvbm5lY3QtaHR0cHMuaHRtbApAQCAtMCwwICsxLDIwIEBACis8IURPQ1RZUEUg
aHRtbD4KKzxodG1sPgorPGhlYWQ+Cis8bGluayBpZD0idGVzdExpbmsiIHJlbD0icHJlY29ubmVj
dCIgaHJlZj0iaHR0cHM6Ly9sb2NhbGhvc3Q6ODQ0MyI+Cis8c2NyaXB0IHNyYz0iL2pzLXRlc3Qt
cmVzb3VyY2VzL2pzLXRlc3QuanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8c2NyaXB0
PgorZGVzY3JpcHRpb24oIlRlc3RzIHRoYXQgTGluaydzIHJlbD1wcmVjb25uZWN0IGlzIHJlcG9y
dGVkIGFzIHN1cHBvcnRlZCBhbmQgd29ya3MuIik7Citqc1Rlc3RJc0FzeW5jID0gdHJ1ZTsKKwor
Y29uc3QgdGVzdExpbmsgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgidGVzdExpbmsiKTsKK3No
b3VsZEJlKCJ0ZXN0TGluay5yZWxMaXN0Lmxlbmd0aCIsICIxIik7CitzaG91bGRCZUVxdWFsVG9T
dHJpbmcoInRlc3RMaW5rLnJlbExpc3RbMF0iLCAicHJlY29ubmVjdCIpOworc2hvdWxkQmVUcnVl
KCJ0ZXN0TGluay5yZWxMaXN0LnN1cHBvcnRzKCdwcmVjb25uZWN0JykiKTsKKworc2V0VGltZW91
dChmaW5pc2hKU1Rlc3QsIDEwMDApOworPC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMtZWxjYXBpdGFuLXdrMi9odHRwL3Rlc3Rz
L3ByZWNvbm5lY3QvbGluay1yZWwtcHJlY29ubmVjdC1odHRwLWV4cGVjdGVkLnR4dCBiL0xheW91
dFRlc3RzL3BsYXRmb3JtL21hYy1lbGNhcGl0YW4td2syL2h0dHAvdGVzdHMvcHJlY29ubmVjdC9s
aW5rLXJlbC1wcmVjb25uZWN0LWh0dHAtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjc4MWNmYjk0
NzIwNzYwZjg1MDJjZGVkZjgzYmY2NThhNzI0NTVjODUKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlv
dXRUZXN0cy9wbGF0Zm9ybS9tYWMtZWxjYXBpdGFuLXdrMi9odHRwL3Rlc3RzL3ByZWNvbm5lY3Qv
bGluay1yZWwtcHJlY29ubmVjdC1odHRwLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDEzIEBACitU
ZXN0cyB0aGF0IExpbmsncyByZWw9cHJlY29ubmVjdCBpcyByZXBvcnRlZCBhcyBzdXBwb3J0ZWQg
YW5kIHdvcmtzLgorCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1Mi
IG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisKKworUEFTUyB0ZXN0TGlu
ay5yZWxMaXN0Lmxlbmd0aCBpcyAxCitQQVNTIHRlc3RMaW5rLnJlbExpc3RbMF0gaXMgInByZWNv
bm5lY3QiCitGQUlMIHRlc3RMaW5rLnJlbExpc3Quc3VwcG9ydHMoJ3ByZWNvbm5lY3QnKSBzaG91
bGQgYmUgdHJ1ZS4gV2FzIGZhbHNlLgorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQor
U29tZSB0ZXN0cyBmYWlsZWQuCisKK1RFU1QgQ09NUExFVEUKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvcGxhdGZvcm0vbWFjLWVsY2FwaXRhbi13azIvaHR0cC90ZXN0cy9wcmVjb25uZWN0L2xp
bmstcmVsLXByZWNvbm5lY3QtaHR0cHMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvcGxhdGZv
cm0vbWFjLWVsY2FwaXRhbi13azIvaHR0cC90ZXN0cy9wcmVjb25uZWN0L2xpbmstcmVsLXByZWNv
bm5lY3QtaHR0cHMtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjc4MWNmYjk0NzIwNzYwZjg1MDJj
ZGVkZjgzYmY2NThhNzI0NTVjODUKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9wbGF0
Zm9ybS9tYWMtZWxjYXBpdGFuLXdrMi9odHRwL3Rlc3RzL3ByZWNvbm5lY3QvbGluay1yZWwtcHJl
Y29ubmVjdC1odHRwcy1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwxMyBAQAorVGVzdHMgdGhhdCBM
aW5rJ3MgcmVsPXByZWNvbm5lY3QgaXMgcmVwb3J0ZWQgYXMgc3VwcG9ydGVkIGFuZCB3b3Jrcy4K
KworT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywg
Zm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCisKK1BBU1MgdGVzdExpbmsucmVsTGlzdC5s
ZW5ndGggaXMgMQorUEFTUyB0ZXN0TGluay5yZWxMaXN0WzBdIGlzICJwcmVjb25uZWN0IgorRkFJ
TCB0ZXN0TGluay5yZWxMaXN0LnN1cHBvcnRzKCdwcmVjb25uZWN0Jykgc2hvdWxkIGJlIHRydWUu
IFdhcyBmYWxzZS4KK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKK1NvbWUgdGVzdHMg
ZmFpbGVkLgorCitURVNUIENPTVBMRVRFCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRm
b3JtL21hYy13azEvaHR0cC90ZXN0cy9wcmVjb25uZWN0L2xpbmstcmVsLXByZWNvbm5lY3QtaHR0
cC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMtd2sxL2h0dHAvdGVzdHMv
cHJlY29ubmVjdC9saW5rLXJlbC1wcmVjb25uZWN0LWh0dHAtZXhwZWN0ZWQudHh0Cm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLjc4MWNmYjk0NzIwNzYwZjg1MDJjZGVkZjgzYmY2NThhNzI0NTVjODUKLS0tIC9kZXYvbnVs
bAorKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMtd2sxL2h0dHAvdGVzdHMvcHJlY29ubmVj
dC9saW5rLXJlbC1wcmVjb25uZWN0LWh0dHAtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTMgQEAK
K1Rlc3RzIHRoYXQgTGluaydzIHJlbD1wcmVjb25uZWN0IGlzIHJlcG9ydGVkIGFzIHN1cHBvcnRl
ZCBhbmQgd29ya3MuCisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFT
UyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKworCitQQVNTIHRlc3RM
aW5rLnJlbExpc3QubGVuZ3RoIGlzIDEKK1BBU1MgdGVzdExpbmsucmVsTGlzdFswXSBpcyAicHJl
Y29ubmVjdCIKK0ZBSUwgdGVzdExpbmsucmVsTGlzdC5zdXBwb3J0cygncHJlY29ubmVjdCcpIHNo
b3VsZCBiZSB0cnVlLiBXYXMgZmFsc2UuCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVl
CitTb21lIHRlc3RzIGZhaWxlZC4KKworVEVTVCBDT01QTEVURQorCmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9wbGF0Zm9ybS9tYWMtd2sxL2h0dHAvdGVzdHMvcHJlY29ubmVjdC9saW5rLXJlbC1w
cmVjb25uZWN0LWh0dHBzLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy13
azEvaHR0cC90ZXN0cy9wcmVjb25uZWN0L2xpbmstcmVsLXByZWNvbm5lY3QtaHR0cHMtZXhwZWN0
ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLjc4MWNmYjk0NzIwNzYwZjg1MDJjZGVkZjgzYmY2NThhNzI0NTVj
ODUKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMtd2sxL2h0dHAv
dGVzdHMvcHJlY29ubmVjdC9saW5rLXJlbC1wcmVjb25uZWN0LWh0dHBzLWV4cGVjdGVkLnR4dApA
QCAtMCwwICsxLDEzIEBACitUZXN0cyB0aGF0IExpbmsncyByZWw9cHJlY29ubmVjdCBpcyByZXBv
cnRlZCBhcyBzdXBwb3J0ZWQgYW5kIHdvcmtzLgorCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUg
YSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIu
CisKKworUEFTUyB0ZXN0TGluay5yZWxMaXN0Lmxlbmd0aCBpcyAxCitQQVNTIHRlc3RMaW5rLnJl
bExpc3RbMF0gaXMgInByZWNvbm5lY3QiCitGQUlMIHRlc3RMaW5rLnJlbExpc3Quc3VwcG9ydHMo
J3ByZWNvbm5lY3QnKSBzaG91bGQgYmUgdHJ1ZS4gV2FzIGZhbHNlLgorUEFTUyBzdWNjZXNzZnVs
bHlQYXJzZWQgaXMgdHJ1ZQorU29tZSB0ZXN0cyBmYWlsZWQuCisKK1RFU1QgQ09NUExFVEUKKwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>322002</attachid>
            <date>2017-09-27 12:43:05 -0700</date>
            <delta_ts>2017-09-27 16:30:07 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-177474-20170927124305.patch</filename>
            <type>text/plain</type>
            <size>84180</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjIyNTU2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZmYxMjUwZDgyMmIwOTli
NzVjYjVhZjVlMGUwNDliODdhNTZmYzdkYS4uM2YxODM1ZTNlN2M1MWY1ODM3NGFlMzc4MjNjZGZj
YjNhZjk2MmNmOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDU5IEBACisyMDE3LTA5LTI3ICBDaHJp
cyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgQWRkIHN1cHBvcnQgZm9yIDxs
aW5rIHJlbD1wcmVjb25uZWN0PgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9MTc3NDc0CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS8zMzE0MTM4MD4KKwor
ICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGQgc3VwcG9y
dCBmb3IgPGxpbmsgcmVsPXByZWNvbm5lY3Q+OgorICAgICAgICAtIGh0dHBzOi8vdzNjLmdpdGh1
Yi5pby9yZXNvdXJjZS1oaW50cy8jcHJlY29ubmVjdAorCisgICAgICAgIEl0IGlzIGN1cnJlbnRs
eSBvbmx5IGVuYWJsZWQgZm9yIFdLMiBvbiBNYWNPUyBIaWdoIFNpZXJyYSsKKyAgICAgICAgYW5k
IGlPUyAxMSsuCisKKyAgICAgICAgVGVzdHM6IGZhc3QvZG9tL0hUTUxMaW5rRWxlbWVudC9wcmVj
b25uZWN0LXN1cHBvcnQuaHRtbAorICAgICAgICAgICAgICAgaHR0cC90ZXN0cy9wcmVjb25uZWN0
L2xpbmstcmVsLXByZWNvbm5lY3QtaHR0cC5odG1sCisgICAgICAgICAgICAgICBodHRwL3Rlc3Rz
L3ByZWNvbm5lY3QvbGluay1yZWwtcHJlY29ubmVjdC1odHRwcy5odG1sCisKKyAgICAgICAgKiBi
aW5kaW5ncy9qcy9KU0RPTUV4Y2VwdGlvbkhhbmRsaW5nLmg6CisgICAgICAgICogYmluZGluZ3Mv
c2NyaXB0cy9Db2RlR2VuZXJhdG9ySlMucG06CisgICAgICAgIChHZW5lcmF0ZUNhbGxiYWNrSGVh
ZGVyQ29udGVudCk6CisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy9JRExBdHRyaWJ1dGVzLmpz
b246CisgICAgICAgICogZG9tL0RvY3VtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkRvY3Vt
ZW50OjphZGRDb25zb2xlTWVzc2FnZSk6CisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVudDo6c2V0
Q29uc29sZU1lc3NhZ2VMaXN0ZW5lcik6CisgICAgICAgICogZG9tL0RvY3VtZW50Lmg6CisgICAg
ICAgICogZG9tL1N0cmluZ0NhbGxiYWNrLmlkbDoKKyAgICAgICAgKiBodG1sL0RPTVRva2VuTGlz
dC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpET01Ub2tlbkxpc3Q6OkRPTVRva2VuTGlzdCk6Cisg
ICAgICAgIChXZWJDb3JlOjpET01Ub2tlbkxpc3Q6OnN1cHBvcnRzKToKKyAgICAgICAgKiBodG1s
L0RPTVRva2VuTGlzdC5oOgorICAgICAgICAoV2ViQ29yZTo6RE9NVG9rZW5MaXN0OjpET01Ub2tl
bkxpc3QpOgorICAgICAgICAqIGh0bWwvSFRNTEFuY2hvckVsZW1lbnQuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6SFRNTEFuY2hvckVsZW1lbnQ6OnJlbExpc3QpOgorICAgICAgICAqIGh0bWwvSFRN
TElGcmFtZUVsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SFRNTElGcmFtZUVsZW1lbnQ6
OnNhbmRib3gpOgorICAgICAgICAqIGh0bWwvSFRNTExpbmtFbGVtZW50LmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OkhUTUxMaW5rRWxlbWVudDo6cGFyc2VBdHRyaWJ1dGUpOgorICAgICAgICAoV2Vi
Q29yZTo6SFRNTExpbmtFbGVtZW50OjpyZWxMaXN0KToKKyAgICAgICAgKiBodG1sL0xpbmtSZWxB
dHRyaWJ1dGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6TGlua1JlbEF0dHJpYnV0ZTo6TGlua1Jl
bEF0dHJpYnV0ZSk6CisgICAgICAgIChXZWJDb3JlOjpMaW5rUmVsQXR0cmlidXRlOjppc1N1cHBv
cnRlZCk6CisgICAgICAgICogaHRtbC9MaW5rUmVsQXR0cmlidXRlLmg6CisgICAgICAgICogaHRt
bC9wYXJzZXIvSFRNTFByZWxvYWRTY2FubmVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlRva2Vu
UHJlbG9hZFNjYW5uZXI6OlN0YXJ0VGFnU2Nhbm5lcjo6cHJvY2Vzc0F0dHJpYnV0ZSk6CisgICAg
ICAgICogbG9hZGVyL0xpbmtMb2FkZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6TGlua0xvYWRl
cjo6bG9hZExpbmtzRnJvbUhlYWRlcik6CisgICAgICAgIChXZWJDb3JlOjpMaW5rTG9hZGVyOjps
b2FkTGluayk6CisgICAgICAgICogbG9hZGVyL0xvYWRlclN0cmF0ZWd5Lmg6CisgICAgICAgICog
cGFnZS9TZXR0aW5ncy5pbjoKKyAgICAgICAgKiB0ZXN0aW5nL0ludGVybmFscy5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpJbnRlcm5hbHM6OkludGVybmFscyk6CisgICAgICAgIChXZWJDb3JlOjpJ
bnRlcm5hbHM6OnNldENvbnNvbGVNZXNzYWdlTGlzdGVuZXIpOgorICAgICAgICAqIHRlc3Rpbmcv
SW50ZXJuYWxzLmg6CisgICAgICAgICogdGVzdGluZy9JbnRlcm5hbHMuaWRsOgorCiAyMDE3LTA5
LTI3ICBEYXZpZCBIeWF0dCAgPGh5YXR0QGFwcGxlLmNvbT4KIAogICAgICAgICBSZW5hbWUgIlJl
Z2lvbiIgdG8gIkZyYWdtZW50IiBmb3IgUmVuZGVyUmVnaW9uIGFuZCBhc3NvY2lhdGVkIGNsYXNz
ZXMvbWV0aG9kcy4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1BBTC9DaGFuZ2VMb2cgYi9T
b3VyY2UvV2ViQ29yZS9QQUwvQ2hhbmdlTG9nCmluZGV4IGU2MWMwZTg0MTVmNDhhYzQ0ODc3ZThk
YTQ0NGIwMzdjY2U2OWJiNzYuLjdlMjk3MmFhZWE4MzZhYzlhZTk0Y2M4MDBjZTQ0MDdhZDdiMmM5
YmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1BBTC9DaGFuZ2VMb2cKKysrIGIvU291cmNl
L1dlYkNvcmUvUEFML0NoYW5nZUxvZwpAQCAtMSwzICsxLDE1IEBACisyMDE3LTA5LTI2ICBDaHJp
cyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgQWRkIHN1cHBvcnQgZm9yIDxs
aW5rIHJlbD1wcmVjb25uZWN0PgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9MTc3NDc0CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS8zMzE0MTM4MD4KKwor
ICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGQgbmV3IENG
TmV0d29yayBTUEkgZm9yIHByZWNvbm5lY3RpbmcuCisKKyAgICAgICAgKiBwYWwvc3BpL2NmL0NG
TmV0d29ya1NQSS5oOgorCiAyMDE3LTA5LTI2ICBEb24gT2xtc3RlYWQgIDxkb24ub2xtc3RlYWRA
c29ueS5jb20+CiAKICAgICAgICAgW1BBTF1bQ01ha2VdIEluY2x1ZGUgSUNVIGRpcmVjdG9yaWVz
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hh
bmdlTG9nCmluZGV4IDMxY2JiYTE0NTMxMGJhODY4ZTY2OTg2YzgzYTQwOTg4YzdkZWZlOWQuLmRk
MGI3ODZjNzY4MzZiMGFlYTJkMjAwMTMyYWNiN2VkMDVjZTA2ZjAgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMg
KzEsNzEgQEAKKzIwMTctMDktMjYgIENocmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KKwor
ICAgICAgICBBZGQgc3VwcG9ydCBmb3IgPGxpbmsgcmVsPXByZWNvbm5lY3Q+CisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNzc0NzQKKyAgICAgICAgPHJk
YXI6Ly9wcm9ibGVtLzMzMTQxMzgwPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09Q
UyEpLgorCisgICAgICAgIEFkZCBzdXBwb3J0IGZvciA8bGluayByZWw9cHJlY29ubmVjdD46Cisg
ICAgICAgIC0gaHR0cHM6Ly93M2MuZ2l0aHViLmlvL3Jlc291cmNlLWhpbnRzLyNwcmVjb25uZWN0
CisKKyAgICAgICAgQWxzbyBhZGQgY29ycmVzcG9uZGluZyBuYXRpdmUgcHJpdmF0ZSBBUEkuCisK
KyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9OZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5j
cHA6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzOjpwcmVj
b25uZWN0VG8pOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vz
czo6ZGlkRmluaXNoUHJlY29ubmVjdGlvbik6CisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvTmV0
d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuaDoKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9O
ZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5tZXNzYWdlcy5pbjoKKyAgICAgICAgKiBOZXR3
b3JrUHJvY2Vzcy9OZXR3b3JrRGF0YVRhc2suY3BwOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3Jr
RGF0YVRhc2s6OmNyZWF0ZSk6CisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvTmV0d29ya0xvYWRQ
YXJhbWV0ZXJzLmg6CisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MuY3Bw
OgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrUHJvY2Vzczo6cHJlY29ubmVjdFRvKToKKyAgICAg
ICAgKiBOZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5oOgorICAgICAgICAqIE5ldHdvcmtQ
cm9jZXNzL05ldHdvcmtQcm9jZXNzLm1lc3NhZ2VzLmluOgorICAgICAgICAqIE5ldHdvcmtQcm9j
ZXNzL1ByZWNvbm5lY3RUYXNrLmNwcDogQWRkZWQuCisgICAgICAgIChXZWJLaXQ6OlByZWNvbm5l
Y3RUYXNrOjpQcmVjb25uZWN0VGFzayk6CisgICAgICAgIChXZWJLaXQ6OlByZWNvbm5lY3RUYXNr
Ojp+UHJlY29ubmVjdFRhc2spOgorICAgICAgICAoV2ViS2l0OjpQcmVjb25uZWN0VGFzazo6d2ls
bFBlcmZvcm1IVFRQUmVkaXJlY3Rpb24pOgorICAgICAgICAoV2ViS2l0OjpQcmVjb25uZWN0VGFz
azo6ZGlkUmVjZWl2ZUNoYWxsZW5nZSk6CisgICAgICAgIChXZWJLaXQ6OlByZWNvbm5lY3RUYXNr
OjpkaWRSZWNlaXZlUmVzcG9uc2VOZXR3b3JrU2Vzc2lvbik6CisgICAgICAgIChXZWJLaXQ6OlBy
ZWNvbm5lY3RUYXNrOjpkaWRSZWNlaXZlRGF0YSk6CisgICAgICAgIChXZWJLaXQ6OlByZWNvbm5l
Y3RUYXNrOjpkaWRDb21wbGV0ZVdpdGhFcnJvcik6CisgICAgICAgIChXZWJLaXQ6OlByZWNvbm5l
Y3RUYXNrOjpkaWRTZW5kRGF0YSk6CisgICAgICAgIChXZWJLaXQ6OlByZWNvbm5lY3RUYXNrOjp3
YXNCbG9ja2VkKToKKyAgICAgICAgKFdlYktpdDo6UHJlY29ubmVjdFRhc2s6OmNhbm5vdFNob3dV
UkwpOgorICAgICAgICAoV2ViS2l0OjpQcmVjb25uZWN0VGFzazo6ZGlkRmluaXNoKToKKyAgICAg
ICAgKiBOZXR3b3JrUHJvY2Vzcy9QcmVjb25uZWN0VGFzay5oOiBDb3BpZWQgZnJvbSBTb3VyY2Uv
V2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtMb2FkUGFyYW1ldGVycy5oLgorICAgICAgICAq
IE5ldHdvcmtQcm9jZXNzL2NvY29hL05ldHdvcmtEYXRhVGFza0NvY29hLmg6CisgICAgICAgICog
TmV0d29ya1Byb2Nlc3MvY29jb2EvTmV0d29ya0RhdGFUYXNrQ29jb2EubW06CisgICAgICAgIChX
ZWJLaXQ6Ok5ldHdvcmtEYXRhVGFza0NvY29hOjpOZXR3b3JrRGF0YVRhc2tDb2NvYSk6CisgICAg
ICAgICogU2hhcmVkL1dlYkNvcmVBcmd1bWVudENvZGVycy5oOgorICAgICAgICAqIFNoYXJlZC9X
ZWJQcmVmZXJlbmNlc0RlZmluaXRpb25zLmg6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9DL1dL
Q29udGV4dC5jcHA6CisgICAgICAgIChXS0NvbnRleHRQcmVjb25uZWN0VG9TZXJ2ZXIpOgorICAg
ICAgICAqIFVJUHJvY2Vzcy9BUEkvQy9XS0NvbnRleHRQcml2YXRlLmg6CisgICAgICAgICogVUlQ
cm9jZXNzL0FQSS9Db2NvYS9XS1Byb2Nlc3NQb29sLm1tOgorICAgICAgICAoLVtXS1Byb2Nlc3NQ
b29sIF9wcmVjb25uZWN0VG9TZXJ2ZXI6XSk6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9Db2Nv
YS9XS1Byb2Nlc3NQb29sUHJpdmF0ZS5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQcm9jZXNz
UG9vbC5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3NQb29sOjpwcmVjb25uZWN0VG9T
ZXJ2ZXIpOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQcm9jZXNzUG9vbC5oOgorICAgICAgICAq
IFdlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAqIFdlYlByb2Nlc3Mv
TmV0d29yay9OZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb24uY3BwOgorICAgICAgICAoV2ViS2l0OjpO
ZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb246OmRpZEZpbmlzaFByZWNvbm5lY3Rpb24pOgorICAgICAg
ICAqIFdlYlByb2Nlc3MvTmV0d29yay9OZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb24uaDoKKyAgICAg
ICAgKiBXZWJQcm9jZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uLm1lc3NhZ2Vz
LmluOgorICAgICAgICAqIFdlYlByb2Nlc3MvTmV0d29yay9XZWJMb2FkZXJTdHJhdGVneS5jcHA6
CisgICAgICAgIChXZWJLaXQ6OldlYkxvYWRlclN0cmF0ZWd5OjpuZXR3b3JrUHJvY2Vzc0NyYXNo
ZWQpOgorICAgICAgICAoV2ViS2l0OjpnZW5lcmF0ZUxvYWRJZGVudGlmaWVyKToKKyAgICAgICAg
KFdlYktpdDo6V2ViTG9hZGVyU3RyYXRlZ3k6OnN0YXJ0UGluZ0xvYWQpOgorICAgICAgICAoV2Vi
S2l0OjpXZWJMb2FkZXJTdHJhdGVneTo6cHJlY29ubmVjdFRvKToKKyAgICAgICAgKFdlYktpdDo6
V2ViTG9hZGVyU3RyYXRlZ3k6OmRpZEZpbmlzaFByZWNvbm5lY3Rpb24pOgorICAgICAgICAqIFdl
YlByb2Nlc3MvTmV0d29yay9XZWJMb2FkZXJTdHJhdGVneS5oOgorICAgICAgICAqIFdlYlByb2Nl
c3MvV2ViUGFnZS9XZWJQYWdlLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZTo6dXBkYXRl
UHJlZmVyZW5jZXMpOgorICAgICAgICAqIGNvbmZpZy5oOgorCiAyMDE3LTA5LTI2ICBBbGV4IENo
cmlzdGVuc2VuICA8YWNocmlzdGVuc2VuQHdlYmtpdC5vcmc+CiAKICAgICAgICAgUGFzcyBhIGNv
bXBsZXRpb24gaGFuZGxlciBpbnN0ZWFkIG9mIGEgV2ViRnJhbWVQb2xpY3lMaXN0ZW5lclByb3h5
IGR1cmluZyBwb2xpY3kgZGVjaXNpb25zCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5
L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvQ2hhbmdlTG9nCmluZGV4IGY4MjUwMzY2
MGMxNGQ3ZmVkNGNkMzY5ZmYwNTVlOGU0MzkyM2M3NDUuLjBjYTFlNjc3YTg2ZWFhNWFjM2VhZTJj
NmYxODk0Y2MxMjAxMTZhZjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvQ2hhbmdl
TG9nCisrKyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTUgQEAK
KzIwMTctMDktMjYgIENocmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KKworICAgICAgICBB
ZGQgc3VwcG9ydCBmb3IgPGxpbmsgcmVsPXByZWNvbm5lY3Q+CisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNzc0NzQKKyAgICAgICAgPHJkYXI6Ly9wcm9i
bGVtLzMzMTQxMzgwPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisg
ICAgICAgICogV2ViQ29yZVN1cHBvcnQvV2ViUmVzb3VyY2VMb2FkU2NoZWR1bGVyLmNwcDoKKyAg
ICAgICAgKFdlYlJlc291cmNlTG9hZFNjaGVkdWxlcjo6cHJlY29ubmVjdFRvKToKKyAgICAgICAg
KiBXZWJDb3JlU3VwcG9ydC9XZWJSZXNvdXJjZUxvYWRTY2hlZHVsZXIuaDoKKwogMjAxNy0wOS0y
NiAgUGVyIEFybmUgVm9sbGFuICA8cHZvbGxhbkBhcHBsZS5jb20+CiAKICAgICAgICAgW1dpbl0g
V2ViS2l0Q09NQVBJLmggaXMgbm90IGNvcGllZCBhZnRlciBidWlsZCBoYXMgZmluaXNoZWQuCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL3NwaS9jZi9DRk5ldHdvcmtTUEkuaCBi
L1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvc3BpL2NmL0NGTmV0d29ya1NQSS5oCmluZGV4IDNlNTg0
M2VhZDViNDNjNTM4ODNkZjgxYjY0MGM5Y2Y0MzU4NDdlZjMuLjY4MWRiYmIzYjgwMzJkOTJiYTU1
OWJkMTc0NDI5Yjk0MTA2NGIyOWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwv
c3BpL2NmL0NGTmV0d29ya1NQSS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvc3BpL2Nm
L0NGTmV0d29ya1NQSS5oCkBAIC0xMTMsNiArMTEzLDEyIEBAIHR5cGVkZWYgdm9pZCAoXkNGQ2Fj
aGVkVVJMUmVzcG9uc2VDYWxsQmFja0Jsb2NrKShDRkNhY2hlZFVSTFJlc3BvbnNlUmVmKTsKIC0g
KE5TRGljdGlvbmFyeSAqKV90aW1pbmdEYXRhOwogQGVuZAogCisjaWYgKFBMQVRGT1JNKE1BQykg
JiYgX19NQUNfT1NfWF9WRVJTSU9OX01JTl9SRVFVSVJFRCA+PSAxMDEzMDApIHx8IChQTEFURk9S
TShJT1MpICYmIF9fSVBIT05FX09TX1ZFUlNJT05fTUlOX1JFUVVJUkVEID49IDExMDAwMCkKK0Bp
bnRlcmZhY2UgTlNVUkxTZXNzaW9uVGFzayAoUmVzb3VyY2VIaW50cykKK0Bwcm9wZXJ0eSAobm9u
YXRvbWljLCBhc3NpZ24pIEJPT0wgX3ByZWNvbm5lY3Q7CitAZW5kCisjZW5kaWYKKwogQGludGVy
ZmFjZSBOU0hUVFBDb29raWUgKCkKIC0gKENGSFRUUENvb2tpZVJlZilfQ0ZIVFRQQ29va2llOwog
KyAoQ0ZBcnJheVJlZiBfX251bGxhYmxlKV9uczJjZkNvb2tpZXM6KE5TQXJyYXkgKiBfX251bGxh
YmxlKW5zQ29va2llcyBDRl9SRVRVUk5TX1JFVEFJTkVEOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvYmluZGluZ3MvanMvSlNET01FeGNlcHRpb25IYW5kbGluZy5oIGIvU291cmNlL1dlYkNv
cmUvYmluZGluZ3MvanMvSlNET01FeGNlcHRpb25IYW5kbGluZy5oCmluZGV4IDI4MDhjOGZmMDEy
YWNhZWM4MTJlYTJhMmEwMmE4YTc0OWQwZTI4NzkuLmU2ZDc1MzFhM2ZmMDYyNDhhOGZkMTFmYjM3
MTQ3NDBjNWE1Yjc3M2IgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pT
RE9NRXhjZXB0aW9uSGFuZGxpbmcuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9K
U0RPTUV4Y2VwdGlvbkhhbmRsaW5nLmgKQEAgLTYyLDcgKzYyLDcgQEAgV0VCQ09SRV9FWFBPUlQg
dm9pZCB0aHJvd1NlcXVlbmNlVHlwZUVycm9yKEpTQzo6RXhlY1N0YXRlJiwgSlNDOjpUaHJvd1Nj
b3BlJik7CiB2b2lkIHRocm93VHlwZU1pc21hdGNoRXJyb3IoSlNDOjpFeGVjU3RhdGUmLCBKU0M6
OlRocm93U2NvcGUmKTsKIAogV0VCQ09SRV9FWFBPUlQgSlNDOjpFbmNvZGVkSlNWYWx1ZSB0aHJv
d0FyZ3VtZW50TXVzdEJlRW51bUVycm9yKEpTQzo6RXhlY1N0YXRlJiwgSlNDOjpUaHJvd1Njb3Bl
JiwgdW5zaWduZWQgYXJndW1lbnRJbmRleCwgY29uc3QgY2hhciogYXJndW1lbnROYW1lLCBjb25z
dCBjaGFyKiBmdW5jdGlvbkludGVyZmFjZU5hbWUsIGNvbnN0IGNoYXIqIGZ1bmN0aW9uTmFtZSwg
Y29uc3QgY2hhciogZXhwZWN0ZWRWYWx1ZXMpOwotSlNDOjpFbmNvZGVkSlNWYWx1ZSB0aHJvd0Fy
Z3VtZW50TXVzdEJlRnVuY3Rpb25FcnJvcihKU0M6OkV4ZWNTdGF0ZSYsIEpTQzo6VGhyb3dTY29w
ZSYsIHVuc2lnbmVkIGFyZ3VtZW50SW5kZXgsIGNvbnN0IGNoYXIqIGFyZ3VtZW50TmFtZSwgY29u
c3QgY2hhciogZnVuY3Rpb25JbnRlcmZhY2VOYW1lLCBjb25zdCBjaGFyKiBmdW5jdGlvbk5hbWUp
OworV0VCQ09SRV9FWFBPUlQgSlNDOjpFbmNvZGVkSlNWYWx1ZSB0aHJvd0FyZ3VtZW50TXVzdEJl
RnVuY3Rpb25FcnJvcihKU0M6OkV4ZWNTdGF0ZSYsIEpTQzo6VGhyb3dTY29wZSYsIHVuc2lnbmVk
IGFyZ3VtZW50SW5kZXgsIGNvbnN0IGNoYXIqIGFyZ3VtZW50TmFtZSwgY29uc3QgY2hhciogZnVu
Y3Rpb25JbnRlcmZhY2VOYW1lLCBjb25zdCBjaGFyKiBmdW5jdGlvbk5hbWUpOwogV0VCQ09SRV9F
WFBPUlQgSlNDOjpFbmNvZGVkSlNWYWx1ZSB0aHJvd0FyZ3VtZW50VHlwZUVycm9yKEpTQzo6RXhl
Y1N0YXRlJiwgSlNDOjpUaHJvd1Njb3BlJiwgdW5zaWduZWQgYXJndW1lbnRJbmRleCwgY29uc3Qg
Y2hhciogYXJndW1lbnROYW1lLCBjb25zdCBjaGFyKiBmdW5jdGlvbkludGVyZmFjZU5hbWUsIGNv
bnN0IGNoYXIqIGZ1bmN0aW9uTmFtZSwgY29uc3QgY2hhciogZXhwZWN0ZWRUeXBlKTsKIFdFQkNP
UkVfRVhQT1JUIEpTQzo6RW5jb2RlZEpTVmFsdWUgdGhyb3dSZXF1aXJlZE1lbWJlclR5cGVFcnJv
cihKU0M6OkV4ZWNTdGF0ZSYsIEpTQzo6VGhyb3dTY29wZSYsIGNvbnN0IGNoYXIqIG1lbWJlck5h
bWUsIGNvbnN0IGNoYXIqIGRpY3Rpb25hcnlOYW1lLCBjb25zdCBjaGFyKiBleHBlY3RlZFR5cGUp
OwogSlNDOjpFbmNvZGVkSlNWYWx1ZSB0aHJvd0NvbnN0cnVjdG9yU2NyaXB0RXhlY3V0aW9uQ29u
dGV4dFVuYXZhaWxhYmxlRXJyb3IoSlNDOjpFeGVjU3RhdGUmLCBKU0M6OlRocm93U2NvcGUmLCBj
b25zdCBjaGFyKiBpbnRlcmZhY2VOYW1lKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Jp
bmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvckpTLnBtIGIvU291cmNlL1dlYkNvcmUvYmluZGlu
Z3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9ySlMucG0KaW5kZXggNjYyNDNjNTBlNzQ2ZDJkNDI2MTJi
OTVkYTcwYzE2ODdkOTQyMDUyNS4uYzVhODdjMjkwZTNjOTVkMTE4YTYzNzVkYTUwMGY5ZjA1NTMw
ZWY4NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2Vu
ZXJhdG9ySlMucG0KKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2Vu
ZXJhdG9ySlMucG0KQEAgLTU4MTgsNyArNTgxOCw5IEBAIHN1YiBHZW5lcmF0ZUNhbGxiYWNrSGVh
ZGVyQ29udGVudAogICAgICRpbmNsdWRlc1JlZi0+eyI8d3RmL0ZvcndhcmQuaD4ifSA9IDE7CiAg
ICAgJGluY2x1ZGVzUmVmLT57IiR7bmFtZX0uaCJ9ID0gMTsKIAotICAgIHB1c2goQCRjb250ZW50
UmVmLCAiY2xhc3MgJGNsYXNzTmFtZSBmaW5hbCA6IHB1YmxpYyAke25hbWV9IHtcbiIpOworICAg
IG15ICRleHBvcnRNYWNybyA9IEdldEV4cG9ydE1hY3JvRm9ySlNDbGFzcygkaW50ZXJmYWNlT3JD
YWxsYmFjayk7CisKKyAgICBwdXNoKEAkY29udGVudFJlZiwgImNsYXNzICRleHBvcnRNYWNybyRj
bGFzc05hbWUgZmluYWwgOiBwdWJsaWMgJHtuYW1lfSB7XG4iKTsKICAgICBwdXNoKEAkY29udGVu
dFJlZiwgInB1YmxpYzpcbiIpOwogCiAgICAgIyBUaGUgc3RhdGljIGNyZWF0ZSgpIG1ldGhvZC4K
QEAgLTU4NzUsNyArNTg3Nyw3IEBAIHN1YiBHZW5lcmF0ZUNhbGxiYWNrSGVhZGVyQ29udGVudAog
ICAgIHB1c2goQCRjb250ZW50UmVmLCAifTtcblxuIik7CiAKICAgICAjIHRvSlMoKS4KLSAgICBw
dXNoKEAkY29udGVudFJlZiwgIkpTQzo6SlNWYWx1ZSB0b0pTKCR7bmFtZX0mKTtcbiIpOworICAg
IHB1c2goQCRjb250ZW50UmVmLCAkZXhwb3J0TWFjcm8gLiAiSlNDOjpKU1ZhbHVlIHRvSlMoJHtu
YW1lfSYpO1xuIik7CiAgICAgcHVzaChAJGNvbnRlbnRSZWYsICJpbmxpbmUgSlNDOjpKU1ZhbHVl
IHRvSlMoJHtuYW1lfSogaW1wbCkgeyByZXR1cm4gaW1wbCA/IHRvSlMoKmltcGwpIDogSlNDOjpq
c051bGwoKTsgfVxuXG4iKTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGlu
Z3Mvc2NyaXB0cy9JRExBdHRyaWJ1dGVzLmpzb24gYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9z
Y3JpcHRzL0lETEF0dHJpYnV0ZXMuanNvbgppbmRleCA1NzlhMDlhOTBhNTFmMzIwMjE1YWQzZGNj
YmU5ODk3NDNiZDdhNjkwLi43Y2U0OGU2MWYwZThhZjQ5OWU2ZTA2M2M2YjNlOWE4ZDA0ZmYyMDlm
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0lETEF0dHJpYnV0
ZXMuanNvbgorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0lETEF0dHJpYnV0
ZXMuanNvbgpAQCAtMTg2LDcgKzE4Niw3IEBACiAgICAgICAgICAgICB9CiAgICAgICAgIH0sCiAg
ICAgICAgICJFeHBvcnRNYWNybyI6IHsKLSAgICAgICAgICAgICJjb250ZXh0c0FsbG93ZWQiOiBb
ImludGVyZmFjZSIsICJkaWN0aW9uYXJ5IiwgImVudW0iXSwKKyAgICAgICAgICAgICJjb250ZXh0
c0FsbG93ZWQiOiBbImludGVyZmFjZSIsICJkaWN0aW9uYXJ5IiwgImVudW0iLCAiY2FsbGJhY2st
ZnVuY3Rpb24iXSwKICAgICAgICAgICAgICJ2YWx1ZXMiOiBbIldFQkNPUkVfRVhQT1JUIiwgIldF
QkNPUkVfVEVTVFNVUFBPUlRfRVhQT1JUIl0KICAgICAgICAgfSwKICAgICAgICAgIkV4cG9ydFRv
V3JhcHBlZEZ1bmN0aW9uIjogewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0RvY3Vt
ZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAKaW5kZXggMjg0NTE0OTZh
NTc4NDYwNmMzNTdjYWZkMThlZDA2MjUyZmE1Nzc2ZC4uM2VmNTQ0YTJjMDBmMDk2MTg1Zjk3Mjlm
NDBiNjBhYmY1NjdkZDRjMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwCkBAIC0xNzMsNiArMTcz
LDcgQEAKICNpbmNsdWRlICJTaGFkb3dSb290LmgiCiAjaW5jbHVkZSAiU29ja2V0UHJvdmlkZXIu
aCIKICNpbmNsdWRlICJTdG9yYWdlRXZlbnQuaCIKKyNpbmNsdWRlICJTdHJpbmdDYWxsYmFjay5o
IgogI2luY2x1ZGUgIlN0eWxlUHJvcGVydGllcy5oIgogI2luY2x1ZGUgIlN0eWxlUmVzb2x2ZUZv
ckRvY3VtZW50LmgiCiAjaW5jbHVkZSAiU3R5bGVSZXNvbHZlci5oIgpAQCAtNTYxMSw2ICs1NjEy
LDkgQEAgdm9pZCBEb2N1bWVudDo6YWRkQ29uc29sZU1lc3NhZ2UoTWVzc2FnZVNvdXJjZSBzb3Vy
Y2UsIE1lc3NhZ2VMZXZlbCBsZXZlbCwgY29uc3QKIAogICAgIGlmIChQYWdlKiBwYWdlID0gdGhp
cy0+cGFnZSgpKQogICAgICAgICBwYWdlLT5jb25zb2xlKCkuYWRkTWVzc2FnZShzb3VyY2UsIGxl
dmVsLCBtZXNzYWdlLCByZXF1ZXN0SWRlbnRpZmllciwgdGhpcyk7CisKKyAgICBpZiAobV9jb25z
b2xlTWVzc2FnZUxpc3RlbmVyKQorICAgICAgICBtX2NvbnNvbGVNZXNzYWdlTGlzdGVuZXItPnNj
aGVkdWxlQ2FsbGJhY2soKnRoaXMsIG1lc3NhZ2UpOwogfQogCiB2b2lkIERvY3VtZW50OjphZGRN
ZXNzYWdlKE1lc3NhZ2VTb3VyY2Ugc291cmNlLCBNZXNzYWdlTGV2ZWwgbGV2ZWwsIGNvbnN0IFN0
cmluZyYgbWVzc2FnZSwgY29uc3QgU3RyaW5nJiBzb3VyY2VVUkwsIHVuc2lnbmVkIGxpbmVOdW1i
ZXIsIHVuc2lnbmVkIGNvbHVtbk51bWJlciwgUmVmUHRyPEluc3BlY3Rvcjo6U2NyaXB0Q2FsbFN0
YWNrPiYmIGNhbGxTdGFjaywgSlNDOjpFeGVjU3RhdGUqIHN0YXRlLCB1bnNpZ25lZCBsb25nIHJl
cXVlc3RJZGVudGlmaWVyKQpAQCAtNzM0MCw0ICs3MzQ0LDkgQEAgdm9pZCBEb2N1bWVudDo6cmVx
dWVzdFN0b3JhZ2VBY2Nlc3MoUmVmPERlZmVycmVkUHJvbWlzZT4mJiBwYXNzZWRQcm9taXNlKQog
ICAgIHByb21pc2UtPnJlc29sdmU8SURMQm9vbGVhbj4oZmFsc2UpOwogfQogCit2b2lkIERvY3Vt
ZW50OjpzZXRDb25zb2xlTWVzc2FnZUxpc3RlbmVyKFJlZlB0cjxTdHJpbmdDYWxsYmFjaz4mJiBs
aXN0ZW5lcikKK3sKKyAgICBtX2NvbnNvbGVNZXNzYWdlTGlzdGVuZXIgPSBsaXN0ZW5lcjsKK30K
KwogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9t
L0RvY3VtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuaAppbmRleCA3YTVkMWFl
ZTBlYzkyNWFlMDZlNjhiN2NlZjdhYjEyMzQzOWJhNDZhLi4wZmJmMTA2Nzg0ZmNiOWQzNTdlNzNj
ZTk2MzFkZmIxMjkyZTgxY2NlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1l
bnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuaApAQCAtMTY4LDYgKzE2OCw3
IEBAIGNsYXNzIFNlbGVjdG9yUXVlcnk7CiBjbGFzcyBTZWxlY3RvclF1ZXJ5Q2FjaGU7CiBjbGFz
cyBTZXJpYWxpemVkU2NyaXB0VmFsdWU7CiBjbGFzcyBTZXR0aW5nczsKK2NsYXNzIFN0cmluZ0Nh
bGxiYWNrOwogY2xhc3MgU3R5bGVSZXNvbHZlcjsKIGNsYXNzIFN0eWxlU2hlZXQ7CiBjbGFzcyBT
dHlsZVNoZWV0Q29udGVudHM7CkBAIC0xMzU5LDYgKzEzNjAsOCBAQCBwdWJsaWM6CiAgICAgdm9p
ZCByZXF1ZXN0U3RvcmFnZUFjY2VzcyhSZWY8RGVmZXJyZWRQcm9taXNlPiYmIHBhc3NlZFByb21p
c2UpOwogICAgIHZvaWQgc2V0VXNlckdyYW50c1N0b3JhZ2VBY2Nlc3NPdmVycmlkZShib29sIHZh
bHVlKSB7IG1fZ3JhbnRTdG9yYWdlQWNjZXNzT3ZlcnJpZGUgPSB2YWx1ZTsgfQogCisgICAgV0VC
Q09SRV9FWFBPUlQgdm9pZCBzZXRDb25zb2xlTWVzc2FnZUxpc3RlbmVyKFJlZlB0cjxTdHJpbmdD
YWxsYmFjaz4mJik7IC8vIEZvciB0ZXN0aW5nLgorCiBwcm90ZWN0ZWQ6CiAgICAgZW51bSBDb25z
dHJ1Y3Rpb25GbGFncyB7IFN5bnRoZXNpemVkID0gMSwgTm9uUmVuZGVyZWRQbGFjZWhvbGRlciA9
IDEgPDwgMSB9OwogICAgIERvY3VtZW50KEZyYW1lKiwgY29uc3QgVVJMJiwgdW5zaWduZWQgPSBE
ZWZhdWx0RG9jdW1lbnRDbGFzcywgdW5zaWduZWQgY29uc3RydWN0aW9uRmxhZ3MgPSAwKTsKQEAg
LTE4MDgsNiArMTgxMSw3IEBAIHByaXZhdGU6CiAgICAgT3JpZW50YXRpb25Ob3RpZmllciBtX29y
aWVudGF0aW9uTm90aWZpZXI7CiAgICAgbXV0YWJsZSBQQUw6OlNlc3Npb25JRCBtX3Nlc3Npb25J
RDsKICAgICBtdXRhYmxlIFJlZlB0cjxQQUw6OkxvZ2dlcj4gbV9sb2dnZXI7CisgICAgUmVmUHRy
PFN0cmluZ0NhbGxiYWNrPiBtX2NvbnNvbGVNZXNzYWdlTGlzdGVuZXI7CiAKICAgICBzdGF0aWMg
Ym9vbCBoYXNFdmVyQ3JlYXRlZEFuQVhPYmplY3RDYWNoZTsKIApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvZG9tL1N0cmluZ0NhbGxiYWNrLmlkbCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9TdHJp
bmdDYWxsYmFjay5pZGwKaW5kZXggNWNjZDMxYTQ3YjYzNTdiZTZlY2YwZWE3NzkxOTIzYjFhOTVj
ZWVlYS4uOTc1OTFlMTA1ZDc4NmU3OTQxNzY1NWFiZGM2MzM5NGM0ZGU4YzA0YyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvZG9tL1N0cmluZ0NhbGxiYWNrLmlkbAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9kb20vU3RyaW5nQ2FsbGJhY2suaWRsCkBAIC0yOCw0ICsyOCw2IEBACiAgKiBPRiBUSElT
IFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFN
QUdFLgogICovCiAKLWNhbGxiYWNrIFN0cmluZ0NhbGxiYWNrID0gdm9pZCAoRE9NU3RyaW5nIGRh
dGEpOworWworICAgIEV4cG9ydE1hY3JvPVdFQkNPUkVfVEVTVFNVUFBPUlRfRVhQT1JUCitdIGNh
bGxiYWNrIFN0cmluZ0NhbGxiYWNrID0gdm9pZCAoRE9NU3RyaW5nIGRhdGEpOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvaHRtbC9ET01Ub2tlbkxpc3QuY3BwIGIvU291cmNlL1dlYkNvcmUv
aHRtbC9ET01Ub2tlbkxpc3QuY3BwCmluZGV4IDI1NTViNjg0NDZiMjhlYzJiZjA2NWY3YmNjNGUx
ZjVhN2Y3NmEwMjAuLjdjYWIxYjczNmEwNDE3NWVkMTIxYzk3ZDBhMzUyYTQ5ZWE5NmQ1Y2YgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvRE9NVG9rZW5MaXN0LmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL0RPTVRva2VuTGlzdC5jcHAKQEAgLTM1LDcgKzM1LDcgQEAKIAogbmFt
ZXNwYWNlIFdlYkNvcmUgewogCi1ET01Ub2tlbkxpc3Q6OkRPTVRva2VuTGlzdChFbGVtZW50JiBl
bGVtZW50LCBjb25zdCBRdWFsaWZpZWROYW1lJiBhdHRyaWJ1dGVOYW1lLCBXVEY6OkZ1bmN0aW9u
PGJvb2woU3RyaW5nVmlldyk+JiYgaXNTdXBwb3J0ZWRUb2tlbikKK0RPTVRva2VuTGlzdDo6RE9N
VG9rZW5MaXN0KEVsZW1lbnQmIGVsZW1lbnQsIGNvbnN0IFF1YWxpZmllZE5hbWUmIGF0dHJpYnV0
ZU5hbWUsIElzU3VwcG9ydGVkVG9rZW5GdW5jdGlvbiYmIGlzU3VwcG9ydGVkVG9rZW4pCiAgICAg
OiBtX2VsZW1lbnQoZWxlbWVudCkKICAgICAsIG1fYXR0cmlidXRlTmFtZShhdHRyaWJ1dGVOYW1l
KQogICAgICwgbV9pc1N1cHBvcnRlZFRva2VuKFdURk1vdmUoaXNTdXBwb3J0ZWRUb2tlbikpCkBA
IC0xOTEsNyArMTkxLDcgQEAgRXhjZXB0aW9uT3I8Ym9vbD4gRE9NVG9rZW5MaXN0OjpzdXBwb3J0
cyhTdHJpbmdWaWV3IHRva2VuKQogewogICAgIGlmICghbV9pc1N1cHBvcnRlZFRva2VuKQogICAg
ICAgICByZXR1cm4gRXhjZXB0aW9uIHsgVHlwZUVycm9yIH07Ci0gICAgcmV0dXJuIG1faXNTdXBw
b3J0ZWRUb2tlbih0b2tlbik7CisgICAgcmV0dXJuIG1faXNTdXBwb3J0ZWRUb2tlbihtX2VsZW1l
bnQuZG9jdW1lbnQoKSwgdG9rZW4pOwogfQogCiAvLyBodHRwczovL2RvbS5zcGVjLndoYXR3Zy5v
cmcvI2RvbS1kb210b2tlbmxpc3QtdmFsdWUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0
bWwvRE9NVG9rZW5MaXN0LmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0RPTVRva2VuTGlzdC5oCmlu
ZGV4IDIxZmI0NmY0NjEyY2EzYzkzY2JlNTllZDI4NDNhMjRiZDI0YTU3ODYuLmQ2MGQxN2NjOTE1
MWExMWIxODYwYTkzZTQxMDQ5YTliNWZmODUzZDUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvRE9NVG9rZW5MaXN0LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9ET01Ub2tlbkxp
c3QuaApAQCAtMzIsNyArMzIsOCBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiBjbGFzcyBET01Ub2tl
bkxpc3QgewogICAgIFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOwogcHVibGljOgotICAgIERPTVRv
a2VuTGlzdChFbGVtZW50JiwgY29uc3QgUXVhbGlmaWVkTmFtZSYgYXR0cmlidXRlTmFtZSwgV1RG
OjpGdW5jdGlvbjxib29sKFN0cmluZ1ZpZXcpPiYmIGlzU3VwcG9ydGVkVG9rZW4gPSB7IH0pOwor
ICAgIHVzaW5nIElzU3VwcG9ydGVkVG9rZW5GdW5jdGlvbiA9IFdURjo6RnVuY3Rpb248Ym9vbChE
b2N1bWVudCYsIFN0cmluZ1ZpZXcpPjsKKyAgICBET01Ub2tlbkxpc3QoRWxlbWVudCYsIGNvbnN0
IFF1YWxpZmllZE5hbWUmIGF0dHJpYnV0ZU5hbWUsIElzU3VwcG9ydGVkVG9rZW5GdW5jdGlvbiYm
IGlzU3VwcG9ydGVkVG9rZW4gPSB7IH0pOwogCiAgICAgdm9pZCBhc3NvY2lhdGVkQXR0cmlidXRl
VmFsdWVDaGFuZ2VkKGNvbnN0IEF0b21pY1N0cmluZyYpOwogCkBAIC03Myw3ICs3NCw3IEBAIHBy
aXZhdGU6CiAgICAgYm9vbCBtX2luVXBkYXRlQXNzb2NpYXRlZEF0dHJpYnV0ZUZyb21Ub2tlbnMg
eyBmYWxzZSB9OwogICAgIGJvb2wgbV90b2tlbnNOZWVkVXBkYXRpbmcgeyB0cnVlIH07CiAgICAg
VmVjdG9yPEF0b21pY1N0cmluZz4gbV90b2tlbnM7Ci0gICAgV1RGOjpGdW5jdGlvbjxib29sKFN0
cmluZ1ZpZXcpPiBtX2lzU3VwcG9ydGVkVG9rZW47CisgICAgSXNTdXBwb3J0ZWRUb2tlbkZ1bmN0
aW9uIG1faXNTdXBwb3J0ZWRUb2tlbjsKIH07CiAKIGlubGluZSB1bnNpZ25lZCBET01Ub2tlbkxp
c3Q6Omxlbmd0aCgpIGNvbnN0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxB
bmNob3JFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEFuY2hvckVsZW1lbnQu
Y3BwCmluZGV4IGNiMWYxYzlmNTQ2NTNkNmJkZDJiNDc5MmMyNjM5ODgyMTBjN2ZjOTAuLjQ4ODFj
M2Q5ZThhMzdlZGYxZjYzMjBmNWQzMjliYjk3YzE3MWZmMDggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvSFRNTEFuY2hvckVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0
bWwvSFRNTEFuY2hvckVsZW1lbnQuY3BwCkBAIC0zMDcsNyArMzA3LDcgQEAgYm9vbCBIVE1MQW5j
aG9yRWxlbWVudDo6aGFzUmVsKFJlbGF0aW9uIHJlbGF0aW9uKSBjb25zdAogRE9NVG9rZW5MaXN0
JiBIVE1MQW5jaG9yRWxlbWVudDo6cmVsTGlzdCgpCiB7CiAgICAgaWYgKCFtX3JlbExpc3QpIAot
ICAgICAgICBtX3JlbExpc3QgPSBzdGQ6Om1ha2VfdW5pcXVlPERPTVRva2VuTGlzdD4oKnRoaXMs
IEhUTUxOYW1lczo6cmVsQXR0ciwgW10oU3RyaW5nVmlldyB0b2tlbikgeworICAgICAgICBtX3Jl
bExpc3QgPSBzdGQ6Om1ha2VfdW5pcXVlPERPTVRva2VuTGlzdD4oKnRoaXMsIEhUTUxOYW1lczo6
cmVsQXR0ciwgW10oRG9jdW1lbnQmLCBTdHJpbmdWaWV3IHRva2VuKSB7CiAgICAgICAgICAgICBy
ZXR1cm4gZXF1YWxJZ25vcmluZ0FTQ0lJQ2FzZSh0b2tlbiwgIm5vcmVmZXJyZXIiKSB8fCBlcXVh
bElnbm9yaW5nQVNDSUlDYXNlKHRva2VuLCAibm9vcGVuZXIiKTsKICAgICAgICAgfSk7CiAgICAg
cmV0dXJuICptX3JlbExpc3Q7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxJ
RnJhbWVFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTElGcmFtZUVsZW1lbnQu
Y3BwCmluZGV4IGQzMDMyMmRjMGM0OGZiODIwNmVhYmI2NmNhZWYyYjhmZTY5N2I2NGYuLjIyM2Uz
YjAzMzFhYTc1MGU0ZGFmNWRkMGE4NmI1MjJjMjIyZTA1ZGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvSFRNTElGcmFtZUVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0
bWwvSFRNTElGcmFtZUVsZW1lbnQuY3BwCkBAIC01MSw3ICs1MSw3IEBAIFJlZjxIVE1MSUZyYW1l
RWxlbWVudD4gSFRNTElGcmFtZUVsZW1lbnQ6OmNyZWF0ZShjb25zdCBRdWFsaWZpZWROYW1lJiB0
YWdOYW1lLCBECiBET01Ub2tlbkxpc3QmIEhUTUxJRnJhbWVFbGVtZW50OjpzYW5kYm94KCkKIHsK
ICAgICBpZiAoIW1fc2FuZGJveCkKLSAgICAgICAgbV9zYW5kYm94ID0gc3RkOjptYWtlX3VuaXF1
ZTxET01Ub2tlbkxpc3Q+KCp0aGlzLCBzYW5kYm94QXR0ciwgW10oU3RyaW5nVmlldyB0b2tlbikg
eworICAgICAgICBtX3NhbmRib3ggPSBzdGQ6Om1ha2VfdW5pcXVlPERPTVRva2VuTGlzdD4oKnRo
aXMsIHNhbmRib3hBdHRyLCBbXShEb2N1bWVudCYsIFN0cmluZ1ZpZXcgdG9rZW4pIHsKICAgICAg
ICAgICAgIHJldHVybiBTZWN1cml0eUNvbnRleHQ6OmlzU3VwcG9ydGVkU2FuZGJveFBvbGljeSh0
b2tlbik7CiAgICAgICAgIH0pOwogICAgIHJldHVybiAqbV9zYW5kYm94OwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTGlua0VsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUv
aHRtbC9IVE1MTGlua0VsZW1lbnQuY3BwCmluZGV4IGUwMWI2ZTNiNGM4NTFmZWRmNDU3N2NhOTIy
MGY4ODg1NDJjMWNhNDYuLmU3ZDBmN2NjNzQyODYwNDlmYWQxODgxNzNiMTU1MDE5OTNkYmYzZDMg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTExpbmtFbGVtZW50LmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxMaW5rRWxlbWVudC5jcHAKQEAgLTE1Niw3ICsxNTYs
NyBAQCB2b2lkIEhUTUxMaW5rRWxlbWVudDo6c2V0RGlzYWJsZWRTdGF0ZShib29sIGRpc2FibGVk
KQogdm9pZCBIVE1MTGlua0VsZW1lbnQ6OnBhcnNlQXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5h
bWUmIG5hbWUsIGNvbnN0IEF0b21pY1N0cmluZyYgdmFsdWUpCiB7CiAgICAgaWYgKG5hbWUgPT0g
cmVsQXR0cikgewotICAgICAgICBtX3JlbEF0dHJpYnV0ZSA9IExpbmtSZWxBdHRyaWJ1dGUodmFs
dWUpOworICAgICAgICBtX3JlbEF0dHJpYnV0ZSA9IExpbmtSZWxBdHRyaWJ1dGUoZG9jdW1lbnQo
KSwgdmFsdWUpOwogICAgICAgICBpZiAobV9yZWxMaXN0KQogICAgICAgICAgICAgbV9yZWxMaXN0
LT5hc3NvY2lhdGVkQXR0cmlidXRlVmFsdWVDaGFuZ2VkKHZhbHVlKTsKICAgICAgICAgcHJvY2Vz
cygpOwpAQCAtNDk4LDggKzQ5OCw4IEBAIHZvaWQgSFRNTExpbmtFbGVtZW50OjpkaXNwYXRjaFBl
bmRpbmdFdmVudChMaW5rRXZlbnRTZW5kZXIqIGV2ZW50U2VuZGVyKQogRE9NVG9rZW5MaXN0JiBI
VE1MTGlua0VsZW1lbnQ6OnJlbExpc3QoKQogewogICAgIGlmICghbV9yZWxMaXN0KSAKLSAgICAg
ICAgbV9yZWxMaXN0ID0gc3RkOjptYWtlX3VuaXF1ZTxET01Ub2tlbkxpc3Q+KCp0aGlzLCBIVE1M
TmFtZXM6OnJlbEF0dHIsIFtdKFN0cmluZ1ZpZXcgdG9rZW4pIHsKLSAgICAgICAgICAgIHJldHVy
biBMaW5rUmVsQXR0cmlidXRlOjppc1N1cHBvcnRlZCh0b2tlbik7CisgICAgICAgIG1fcmVsTGlz
dCA9IHN0ZDo6bWFrZV91bmlxdWU8RE9NVG9rZW5MaXN0PigqdGhpcywgSFRNTE5hbWVzOjpyZWxB
dHRyLCBbXShEb2N1bWVudCYgZG9jdW1lbnQsIFN0cmluZ1ZpZXcgdG9rZW4pIHsKKyAgICAgICAg
ICAgIHJldHVybiBMaW5rUmVsQXR0cmlidXRlOjppc1N1cHBvcnRlZChkb2N1bWVudCwgdG9rZW4p
OwogICAgICAgICB9KTsKICAgICByZXR1cm4gKm1fcmVsTGlzdDsKIH0KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvTGlua1JlbEF0dHJpYnV0ZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9o
dG1sL0xpbmtSZWxBdHRyaWJ1dGUuY3BwCmluZGV4IDg2NmFmZDhlNWViNGExYTEyY2NiOTAwYTY2
N2FlMGRmZWIyZWY5YTkuLjU3MmJkYjM0YzU4ZjhkYWQwNWJkM2Y2YmRjZmM1YzQ1ODJhNDc2N2Yg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvTGlua1JlbEF0dHJpYnV0ZS5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvaHRtbC9MaW5rUmVsQXR0cmlidXRlLmNwcApAQCAtMzIsOCArMzIs
MTAgQEAKICNpbmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRlICJMaW5rUmVsQXR0cmlidXRlLmgi
CiAKKyNpbmNsdWRlICJEb2N1bWVudC5oIgogI2luY2x1ZGUgIkxpbmtJY29uVHlwZS5oIgogI2lu
Y2x1ZGUgIlJ1bnRpbWVFbmFibGVkRmVhdHVyZXMuaCIKKyNpbmNsdWRlICJTZXR0aW5ncy5oIgog
I2luY2x1ZGUgPHd0Zi90ZXh0L1N0cmluZ1ZpZXcuaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9XVEZT
dHJpbmcuaD4KIApAQCAtNDQsNyArNDYsNyBAQCBMaW5rUmVsQXR0cmlidXRlOjpMaW5rUmVsQXR0
cmlidXRlKCkKIH0KIAogLy8gS2VlcCBMaW5rUmVsQXR0cmlidXRlOjppc1N1cHBvcnRlZCgpIGlu
IHN5bmMgd2hlbiB1cGRhdGluZyB0aGlzIGNvbnN0cnVjdG9yLgotTGlua1JlbEF0dHJpYnV0ZTo6
TGlua1JlbEF0dHJpYnV0ZShjb25zdCBTdHJpbmcmIHJlbCkKK0xpbmtSZWxBdHRyaWJ1dGU6Okxp
bmtSZWxBdHRyaWJ1dGUoRG9jdW1lbnQmIGRvY3VtZW50LCBjb25zdCBTdHJpbmcmIHJlbCkKIHsK
ICAgICBpZiAoZXF1YWxMZXR0ZXJzSWdub3JpbmdBU0NJSUNhc2UocmVsLCAic3R5bGVzaGVldCIp
KQogICAgICAgICBpc1N0eWxlU2hlZXQgPSB0cnVlOwpAQCAtNTYsNiArNTgsOCBAQCBMaW5rUmVs
QXR0cmlidXRlOjpMaW5rUmVsQXR0cmlidXRlKGNvbnN0IFN0cmluZyYgcmVsKQogICAgICAgICBp
Y29uVHlwZSA9IExpbmtJY29uVHlwZTo6VG91Y2hQcmVjb21wb3NlZEljb247CiAgICAgZWxzZSBp
ZiAoZXF1YWxMZXR0ZXJzSWdub3JpbmdBU0NJSUNhc2UocmVsLCAiZG5zLXByZWZldGNoIikpCiAg
ICAgICAgIGlzRE5TUHJlZmV0Y2ggPSB0cnVlOworICAgIGVsc2UgaWYgKGRvY3VtZW50LnNldHRp
bmdzKCkubGlua1ByZWNvbm5lY3RFbmFibGVkKCkgJiYgZXF1YWxMZXR0ZXJzSWdub3JpbmdBU0NJ
SUNhc2UocmVsLCAicHJlY29ubmVjdCIpKQorICAgICAgICBpc0xpbmtQcmVjb25uZWN0ID0gdHJ1
ZTsKICAgICBlbHNlIGlmIChSdW50aW1lRW5hYmxlZEZlYXR1cmVzOjpzaGFyZWRGZWF0dXJlcygp
LmxpbmtQcmVsb2FkRW5hYmxlZCgpICYmIGVxdWFsTGV0dGVyc0lnbm9yaW5nQVNDSUlDYXNlKHJl
bCwgInByZWxvYWQiKSkKICAgICAgICAgaXNMaW5rUHJlbG9hZCA9IHRydWU7CiAgICAgZWxzZSBp
ZiAoZXF1YWxMZXR0ZXJzSWdub3JpbmdBU0NJSUNhc2UocmVsLCAiYWx0ZXJuYXRlIHN0eWxlc2hl
ZXQiKSB8fCBlcXVhbExldHRlcnNJZ25vcmluZ0FTQ0lJQ2FzZShyZWwsICJzdHlsZXNoZWV0IGFs
dGVybmF0ZSIpKSB7CkBAIC04Nyw3ICs5MSw3IEBAIExpbmtSZWxBdHRyaWJ1dGU6OkxpbmtSZWxB
dHRyaWJ1dGUoY29uc3QgU3RyaW5nJiByZWwpCiB9CiAKIC8vIGh0dHBzOi8vaHRtbC5zcGVjLndo
YXR3Zy5vcmcvI2xpbmtUeXBlcwotYm9vbCBMaW5rUmVsQXR0cmlidXRlOjppc1N1cHBvcnRlZChT
dHJpbmdWaWV3IGF0dHJpYnV0ZSkKK2Jvb2wgTGlua1JlbEF0dHJpYnV0ZTo6aXNTdXBwb3J0ZWQo
RG9jdW1lbnQmIGRvY3VtZW50LCBTdHJpbmdWaWV3IGF0dHJpYnV0ZSkKIHsKICAgICBzdGF0aWMg
Y29uc3QgY2hhciogY29uc3Qgc3VwcG9ydGVkQXR0cmlidXRlc1tdID0gewogICAgICAgICAiYWx0
ZXJuYXRlIiwgImRucy1wcmVmZXRjaCIsICJpY29uIiwgInN0eWxlc2hlZXQiLCAiYXBwbGUtdG91
Y2gtaWNvbiIsICJhcHBsZS10b3VjaC1pY29uLXByZWNvbXBvc2VkIiwKQEAgLTEwMSw2ICsxMDUs
OSBAQCBib29sIExpbmtSZWxBdHRyaWJ1dGU6OmlzU3VwcG9ydGVkKFN0cmluZ1ZpZXcgYXR0cmli
dXRlKQogICAgICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgfQogCisgICAgaWYgKGRvY3VtZW50
LnNldHRpbmdzKCkubGlua1ByZWNvbm5lY3RFbmFibGVkKCkgJiYgZXF1YWxJZ25vcmluZ0FTQ0lJ
Q2FzZShhdHRyaWJ1dGUsICJwcmVjb25uZWN0IikpCisgICAgICAgIHJldHVybiB0cnVlOworCiAg
ICAgaWYgKFJ1bnRpbWVFbmFibGVkRmVhdHVyZXM6OnNoYXJlZEZlYXR1cmVzKCkubGlua1ByZWxv
YWRFbmFibGVkKCkgJiYgZXF1YWxJZ25vcmluZ0FTQ0lJQ2FzZShhdHRyaWJ1dGUsICJwcmVsb2Fk
IikpCiAgICAgICAgIHJldHVybiB0cnVlOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9o
dG1sL0xpbmtSZWxBdHRyaWJ1dGUuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvTGlua1JlbEF0dHJp
YnV0ZS5oCmluZGV4IDhlMjY2OTI3ZWRkYjEzZGI5ZTBiOGIxY2NhOTY4NTI1NjVmYmJkOGYuLmYx
MmU5ODY2MzdjN2ZmNzA3ODFjMjNjMWQ2ZmFlODg1NTlhNzBiNWYgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvTGlua1JlbEF0dHJpYnV0ZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0
bWwvTGlua1JlbEF0dHJpYnV0ZS5oCkBAIC0zNyw2ICszNyw3IEBACiAKIG5hbWVzcGFjZSBXZWJD
b3JlIHsKIAorY2xhc3MgRG9jdW1lbnQ7CiBlbnVtIGNsYXNzIExpbmtJY29uVHlwZTsKIAogc3Ry
dWN0IExpbmtSZWxBdHRyaWJ1dGUgewpAQCAtNDUsMTUgKzQ2LDE2IEBAIHN0cnVjdCBMaW5rUmVs
QXR0cmlidXRlIHsKICAgICBib29sIGlzQWx0ZXJuYXRlIHsgZmFsc2UgfTsKICAgICBib29sIGlz
RE5TUHJlZmV0Y2ggeyBmYWxzZSB9OwogICAgIGJvb2wgaXNMaW5rUHJlbG9hZCB7IGZhbHNlIH07
CisgICAgYm9vbCBpc0xpbmtQcmVjb25uZWN0IHsgZmFsc2UgfTsKICNpZiBFTkFCTEUoTElOS19Q
UkVGRVRDSCkKICAgICBib29sIGlzTGlua1ByZWZldGNoIHsgZmFsc2UgfTsKICAgICBib29sIGlz
TGlua1N1YnJlc291cmNlIHsgZmFsc2UgfTsKICNlbmRpZgogCiAgICAgTGlua1JlbEF0dHJpYnV0
ZSgpOwotICAgIGV4cGxpY2l0IExpbmtSZWxBdHRyaWJ1dGUoY29uc3QgU3RyaW5nJik7CisgICAg
TGlua1JlbEF0dHJpYnV0ZShEb2N1bWVudCYsIGNvbnN0IFN0cmluZyYpOwogCi0gICAgc3RhdGlj
IGJvb2wgaXNTdXBwb3J0ZWQoU3RyaW5nVmlldyk7CisgICAgc3RhdGljIGJvb2wgaXNTdXBwb3J0
ZWQoRG9jdW1lbnQmLCBTdHJpbmdWaWV3KTsKIH07CiAKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvcGFyc2VyL0hUTUxQcmVsb2FkU2Nhbm5lci5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9odG1sL3BhcnNlci9IVE1MUHJlbG9hZFNjYW5uZXIuY3BwCmluZGV4IDA2MDFkYzExZGNjNGMw
YjAwNWU1ZWZiZDFlNjY4Mzc2NDI2ZjBlYzAuLjA4ZDI4Y2RkNDIxNzczYWQxNzZkM2YwZTc1NDA3
YTZlNmYwMDM0ODQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvcGFyc2VyL0hUTUxQ
cmVsb2FkU2Nhbm5lci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9wYXJzZXIvSFRNTFBy
ZWxvYWRTY2FubmVyLmNwcApAQCAtMjMyLDcgKzIzMiw3IEBAIHByaXZhdGU6CiAgICAgICAgICAg
ICBpZiAobWF0Y2goYXR0cmlidXRlTmFtZSwgaHJlZkF0dHIpKQogICAgICAgICAgICAgICAgIHNl
dFVybFRvTG9hZChhdHRyaWJ1dGVWYWx1ZSk7CiAgICAgICAgICAgICBlbHNlIGlmIChtYXRjaChh
dHRyaWJ1dGVOYW1lLCByZWxBdHRyKSkgewotICAgICAgICAgICAgICAgIExpbmtSZWxBdHRyaWJ1
dGUgcGFyc2VkQXR0cmlidXRlIHsgYXR0cmlidXRlVmFsdWUgfTsKKyAgICAgICAgICAgICAgICBM
aW5rUmVsQXR0cmlidXRlIHBhcnNlZEF0dHJpYnV0ZSB7IGRvY3VtZW50LCBhdHRyaWJ1dGVWYWx1
ZSB9OwogICAgICAgICAgICAgICAgIG1fbGlua0lzU3R5bGVTaGVldCA9IHJlbEF0dHJpYnV0ZUlz
U3R5bGVTaGVldChwYXJzZWRBdHRyaWJ1dGUpOwogICAgICAgICAgICAgICAgIG1fbGlua0lzUHJl
bG9hZCA9IHBhcnNlZEF0dHJpYnV0ZS5pc0xpbmtQcmVsb2FkOwogICAgICAgICAgICAgfSBlbHNl
IGlmIChtYXRjaChhdHRyaWJ1dGVOYW1lLCBtZWRpYUF0dHIpKQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvbG9hZGVyL0xpbmtMb2FkZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0xp
bmtMb2FkZXIuY3BwCmluZGV4IDJiMTYxMzI2NDMwYzEwZDU5MjQyOGQxNWI0ODc3MmJlZjZhNjkw
M2QuLjMzOWYyMTczODZjNGM0YzBmNDExMDVmNzhkOGJlMTE2ZWVhNGU1ZmYgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2xvYWRlci9MaW5rTG9hZGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9sb2FkZXIvTGlua0xvYWRlci5jcHAKQEAgLTQ3LDggKzQ3LDExIEBACiAjaW5jbHVkZSAiTGlu
a0hlYWRlci5oIgogI2luY2x1ZGUgIkxpbmtQcmVsb2FkUmVzb3VyY2VDbGllbnRzLmgiCiAjaW5j
bHVkZSAiTGlua1JlbEF0dHJpYnV0ZS5oIgorI2luY2x1ZGUgIkxvYWRlclN0cmF0ZWd5LmgiCiAj
aW5jbHVkZSAiTUlNRVR5cGVSZWdpc3RyeS5oIgogI2luY2x1ZGUgIk1lZGlhUXVlcnlFdmFsdWF0
b3IuaCIKKyNpbmNsdWRlICJQbGF0Zm9ybVN0cmF0ZWdpZXMuaCIKKyNpbmNsdWRlICJSZXNvdXJj
ZUVycm9yLmgiCiAjaW5jbHVkZSAiUnVudGltZUVuYWJsZWRGZWF0dXJlcy5oIgogI2luY2x1ZGUg
IlNldHRpbmdzLmgiCiAjaW5jbHVkZSAiU3R5bGVSZXNvbHZlci5oIgpAQCAtMTAyLDcgKzEwNSw3
IEBAIHZvaWQgTGlua0xvYWRlcjo6bG9hZExpbmtzRnJvbUhlYWRlcihjb25zdCBTdHJpbmcmIGhl
YWRlclZhbHVlLCBjb25zdCBVUkwmIGJhc2VVCiAgICAgICAgICAgICAgICAgY29udGludWU7CiAg
ICAgICAgIH0KIAotICAgICAgICBMaW5rUmVsQXR0cmlidXRlIHJlbEF0dHJpYnV0ZShoZWFkZXIu
cmVsKCkpOworICAgICAgICBMaW5rUmVsQXR0cmlidXRlIHJlbEF0dHJpYnV0ZShkb2N1bWVudCwg
aGVhZGVyLnJlbCgpKTsKICAgICAgICAgVVJMIHVybChiYXNlVVJMLCBoZWFkZXIudXJsKCkpOwog
ICAgICAgICAvLyBTYW5pdHkgY2hlY2sgdG8gYXZvaWQgcmUtZW50cmFuY3kgaGVyZS4KICAgICAg
ICAgaWYgKGVxdWFsSWdub3JpbmdGcmFnbWVudElkZW50aWZpZXIodXJsLCBiYXNlVVJMKSkKQEAg
LTI1MCw2ICsyNTMsMjIgQEAgYm9vbCBMaW5rTG9hZGVyOjpsb2FkTGluayhjb25zdCBMaW5rUmVs
QXR0cmlidXRlJiByZWxBdHRyaWJ1dGUsIGNvbnN0IFVSTCYgaHJlZiwKICAgICAgICAgICAgIGRv
Y3VtZW50LmZyYW1lKCktPmxvYWRlcigpLmNsaWVudCgpLnByZWZldGNoRE5TKGhyZWYuaG9zdCgp
KTsKICAgICB9CiAKKyAgICBpZiAocmVsQXR0cmlidXRlLmlzTGlua1ByZWNvbm5lY3QgJiYgaHJl
Zi5pc1ZhbGlkKCkgJiYgaHJlZi5wcm90b2NvbElzSW5IVFRQRmFtaWx5KCkpIHsKKyAgICAgICAg
QVNTRVJUKGRvY3VtZW50LnNldHRpbmdzKCkubGlua1ByZWNvbm5lY3RFbmFibGVkKCkpOworICAg
ICAgICBTdG9yZWRDcmVkZW50aWFsc1BvbGljeSBzdG9yYWdlQ3JlZGVudGlhbHNQb2xpY3kgPSBT
dG9yZWRDcmVkZW50aWFsc1BvbGljeTo6VXNlOworICAgICAgICBpZiAoZXF1YWxJZ25vcmluZ0FT
Q0lJQ2FzZShjcm9zc09yaWdpbiwgImFub255bW91cyIpICYmIGRvY3VtZW50LnNlY3VyaXR5T3Jp
Z2luKCkuY2FuQWNjZXNzKFNlY3VyaXR5T3JpZ2luOjpjcmVhdGUoaHJlZikpKQorICAgICAgICAg
ICAgc3RvcmFnZUNyZWRlbnRpYWxzUG9saWN5ID0gU3RvcmVkQ3JlZGVudGlhbHNQb2xpY3k6OkRv
Tm90VXNlOworICAgICAgICBwbGF0Zm9ybVN0cmF0ZWdpZXMoKS0+bG9hZGVyU3RyYXRlZ3koKS0+
cHJlY29ubmVjdFRvKGhyZWYsIHN0b3JhZ2VDcmVkZW50aWFsc1BvbGljeSwgW3dlYWtEb2N1bWVu
dCA9IGRvY3VtZW50LmNyZWF0ZVdlYWtQdHIoKSwgaHJlZl0oUmVzb3VyY2VFcnJvciBlcnJvcikg
eworICAgICAgICAgICAgaWYgKCF3ZWFrRG9jdW1lbnQpCisgICAgICAgICAgICAgICAgcmV0dXJu
OworCisgICAgICAgICAgICBpZiAoIWVycm9yLmlzTnVsbCgpKQorICAgICAgICAgICAgICAgIHdl
YWtEb2N1bWVudC0+YWRkQ29uc29sZU1lc3NhZ2UoTWVzc2FnZVNvdXJjZTo6TmV0d29yaywgTWVz
c2FnZUxldmVsOjpFcnJvciwgbWFrZVN0cmluZyhBU0NJSUxpdGVyYWwoIkZhaWxlZCB0byBwcmVj
b25uZWN0IHRvICIpLCBocmVmLnN0cmluZygpLCBBU0NJSUxpdGVyYWwoIi4gRXJyb3I6ICIpLCBl
cnJvci5sb2NhbGl6ZWREZXNjcmlwdGlvbigpKSk7CisgICAgICAgICAgICBlbHNlCisgICAgICAg
ICAgICAgICAgd2Vha0RvY3VtZW50LT5hZGRDb25zb2xlTWVzc2FnZShNZXNzYWdlU291cmNlOjpO
ZXR3b3JrLCBNZXNzYWdlTGV2ZWw6OkluZm8sIG1ha2VTdHJpbmcoQVNDSUlMaXRlcmFsKCJTdWNj
ZXNzZnVseSBwcmVjb25uZWN0ZWQgdG8gIiksIGhyZWYuc3RyaW5nKCkpKTsKKyAgICAgICAgfSk7
CisgICAgfQorCiAgICAgaWYgKG1fY2xpZW50LnNob3VsZExvYWRMaW5rKCkpIHsKICAgICAgICAg
YXV0byByZXNvdXJjZUNsaWVudCA9IHByZWxvYWRJZk5lZWRlZChyZWxBdHRyaWJ1dGUsIGhyZWYs
IGRvY3VtZW50LCBhcywgbWVkaWEsIG1pbWVUeXBlLCBjcm9zc09yaWdpbiwgdGhpcyk7CiAgICAg
ICAgIGlmIChyZXNvdXJjZUNsaWVudCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRl
ci9Mb2FkZXJTdHJhdGVneS5oIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0xvYWRlclN0cmF0ZWd5
LmgKaW5kZXggNTNmM2JmYjI2NjY5YjE0ZTg4Y2NkMjhmODkxYjAyMTlkMTRmYTYzYy4uZmNmNTRk
MmIwZjhjYzNlZDA5YjQ4YzBhOTYzYzVkNjY0N2ZjODNjZiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvbG9hZGVyL0xvYWRlclN0cmF0ZWd5LmgKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVy
L0xvYWRlclN0cmF0ZWd5LmgKQEAgLTY3LDYgKzY3LDkgQEAgcHVibGljOgogICAgIHVzaW5nIFBp
bmdMb2FkQ29tcGxldGlvbkhhbmRsZXIgPSBXVEY6OkZ1bmN0aW9uPHZvaWQoY29uc3QgUmVzb3Vy
Y2VFcnJvciYpPjsKICAgICB2aXJ0dWFsIHZvaWQgc3RhcnRQaW5nTG9hZChGcmFtZSYsIFJlc291
cmNlUmVxdWVzdCYsIGNvbnN0IEhUVFBIZWFkZXJNYXAmIG9yaWdpbmFsUmVxdWVzdEhlYWRlcnMs
IGNvbnN0IEZldGNoT3B0aW9ucyYsIFBpbmdMb2FkQ29tcGxldGlvbkhhbmRsZXImJiA9IHsgfSkg
PSAwOwogCisgICAgdXNpbmcgUHJlY29ubmVjdENvbXBsZXRpb25IYW5kbGVyID0gV1RGOjpGdW5j
dGlvbjx2b2lkKGNvbnN0IFJlc291cmNlRXJyb3ImKT47CisgICAgdmlydHVhbCB2b2lkIHByZWNv
bm5lY3RUbyhjb25zdCBVUkwmLCBTdG9yZWRDcmVkZW50aWFsc1BvbGljeSwgUHJlY29ubmVjdENv
bXBsZXRpb25IYW5kbGVyJiYpID0gMDsKKwogICAgIHZpcnR1YWwgdm9pZCBzdG9yZURlcml2ZWRE
YXRhVG9DYWNoZShjb25zdCBTSEExOjpEaWdlc3QmIGJvZHlLZXksIGNvbnN0IFN0cmluZyYgdHlw
ZSwgY29uc3QgU3RyaW5nJiBwYXJ0aXRpb24sIFdlYkNvcmU6OlNoYXJlZEJ1ZmZlciYpID0gMDsK
IAogICAgIHZpcnR1YWwgdm9pZCBzZXRDYXB0dXJlRXh0cmFOZXR3b3JrTG9hZE1ldHJpY3NFbmFi
bGVkKGJvb2wpID0gMDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvU2V0dGluZ3Mu
aW4gYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1NldHRpbmdzLmluCmluZGV4IDkyNzdjMGE3Y2U1ZDdh
N2JhMjVlNmQzNDg1OTJhOGFjMWExZmRlYWIuLmQ4MTUyNmFhY2MxNjcyN2M5MmNhNjlhYTc0YjYz
ZThjYWJkMDQyMWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvU2V0dGluZ3MuaW4K
KysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9TZXR0aW5ncy5pbgpAQCAtMjkxLDYgKzI5MSw4IEBA
IGxhbmdBdHRyaWJ1dGVBd2FyZUZvcm1Db250cm9sVUlFbmFibGVkIGluaXRpYWw9ZmFsc2UKIAog
c3VicmVzb3VyY2VJbnRlZ3JpdHlFbmFibGVkIGluaXRpYWw9dHJ1ZQogCitsaW5rUHJlY29ubmVj
dEVuYWJsZWQgaW5pdGlhbD1mYWxzZQorCiBiZWFjb25BUElFbmFibGVkIGluaXRpYWw9ZmFsc2UK
IAogY29uc3RhbnRQcm9wZXJ0aWVzRW5hYmxlZCBpbml0aWFsPWZhbHNlCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS90ZXN0
aW5nL0ludGVybmFscy5jcHAKaW5kZXggODM1MDk3NjNlZjljMmQ4NTBhMjU2ZjJkMzA0OGExZTgy
MDQyMzUwYS4uYmVlNTgwYTg1MTI4NjYyNGFiMTRjNmM4ZWYzZjE5ODcwMjY0NDczNCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmNwcApAQCAtMTMwLDYgKzEzMCw3IEBACiAjaW5jbHVk
ZSAiU291cmNlQnVmZmVyLmgiCiAjaW5jbHVkZSAiU3BlbGxDaGVja2VyLmgiCiAjaW5jbHVkZSAi
U3RhdGljTm9kZUxpc3QuaCIKKyNpbmNsdWRlICJTdHJpbmdDYWxsYmFjay5oIgogI2luY2x1ZGUg
IlN0eWxlUnVsZS5oIgogI2luY2x1ZGUgIlN0eWxlU2NvcGUuaCIKICNpbmNsdWRlICJTdHlsZVNo
ZWV0Q29udGVudHMuaCIKQEAgLTUwMyw2ICs1MDQsOCBAQCBJbnRlcm5hbHM6OkludGVybmFscyhE
b2N1bWVudCYgZG9jdW1lbnQpCiAgICAgICAgIHNldEF1dG9tYXRpY0xpbmtEZXRlY3Rpb25FbmFi
bGVkKGZhbHNlKTsKICAgICAgICAgc2V0QXV0b21hdGljVGV4dFJlcGxhY2VtZW50RW5hYmxlZCh0
cnVlKTsKICAgICB9CisKKyAgICBzZXRDb25zb2xlTWVzc2FnZUxpc3RlbmVyKG51bGxwdHIpOwog
fQogCiBEb2N1bWVudCogSW50ZXJuYWxzOjpjb250ZXh0RG9jdW1lbnQoKSBjb25zdApAQCAtNDE3
Nyw0ICs0MTgwLDEyIEBAIHZvaWQgSW50ZXJuYWxzOjpjYWNoZVN0b3JhZ2VFbmdpbmVSZXByZXNl
bnRhdGlvbihET01Qcm9taXNlRGVmZXJyZWQ8SURMRE9NU3RyaW5nCiAgICAgfSk7CiB9CiAKK3Zv
aWQgSW50ZXJuYWxzOjpzZXRDb25zb2xlTWVzc2FnZUxpc3RlbmVyKFJlZlB0cjxTdHJpbmdDYWxs
YmFjaz4mJiBsaXN0ZW5lcikKK3sKKyAgICBpZiAoIWNvbnRleHREb2N1bWVudCgpKQorICAgICAg
ICByZXR1cm47CisKKyAgICBjb250ZXh0RG9jdW1lbnQoKS0+c2V0Q29uc29sZU1lc3NhZ2VMaXN0
ZW5lcihXVEZNb3ZlKGxpc3RlbmVyKSk7Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmggYi9Tb3VyY2UvV2Vi
Q29yZS90ZXN0aW5nL0ludGVybmFscy5oCmluZGV4IGViMjNjMTNlMDc0NTQ2MTc1NWQ2YTM4MThm
ZWJiNzRhMDhlZWVlNTkuLjMwOGUzOWZjNzk4YzQ4MTAwZjQ5MTYwMjVhMTI2Nzk4ZTRmYWQwNzQg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmgKKysrIGIvU291
cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuaApAQCAtNzcsNiArNzcsNyBAQCBjbGFzcyBS
VENQZWVyQ29ubmVjdGlvbjsKIGNsYXNzIFNWR1NWR0VsZW1lbnQ7CiBjbGFzcyBTZXJpYWxpemVk
U2NyaXB0VmFsdWU7CiBjbGFzcyBTb3VyY2VCdWZmZXI7CitjbGFzcyBTdHJpbmdDYWxsYmFjazsK
IGNsYXNzIFN0eWxlU2hlZXQ7CiBjbGFzcyBUaW1lUmFuZ2VzOwogY2xhc3MgVHlwZUNvbnZlcnNp
b25zOwpAQCAtNjAzLDYgKzYwNCw4IEBAIHB1YmxpYzoKICAgICB2b2lkIGNsZWFyQ2FjaGVTdG9y
YWdlTWVtb3J5UmVwcmVzZW50YXRpb24oRE9NUHJvbWlzZURlZmVycmVkPHZvaWQ+JiYpOwogICAg
IHZvaWQgY2FjaGVTdG9yYWdlRW5naW5lUmVwcmVzZW50YXRpb24oRE9NUHJvbWlzZURlZmVycmVk
PElETERPTVN0cmluZz4mJik7CiAKKyAgICB2b2lkIHNldENvbnNvbGVNZXNzYWdlTGlzdGVuZXIo
UmVmUHRyPFN0cmluZ0NhbGxiYWNrPiYmKTsKKwogcHJpdmF0ZToKICAgICBleHBsaWNpdCBJbnRl
cm5hbHMoRG9jdW1lbnQmKTsKICAgICBEb2N1bWVudCogY29udGV4dERvY3VtZW50KCkgY29uc3Q7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5pZGwgYi9Tb3Vy
Y2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5pZGwKaW5kZXggNjU4YjE3OTNjOTJmNWExNzUw
MDczZGQ5NGVjZjRkMTNkY2NkMWRlNy4uYzBjOWNhZTU0ZjRlM2YwOGQ1NmYzY2JjMjgyYWI3ZmQ5
MjdkNTcwOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuaWRs
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmlkbApAQCAtNTQ4LDUgKzU0
OCw3IEBAIGVudW0gRXZlbnRUaHJvdHRsaW5nQmVoYXZpb3IgewogICAgIFByb21pc2U8dm9pZD4g
Y2xlYXJDYWNoZVN0b3JhZ2VNZW1vcnlSZXByZXNlbnRhdGlvbigpOwogICAgIFByb21pc2U8RE9N
U3RyaW5nPiBjYWNoZVN0b3JhZ2VFbmdpbmVSZXByZXNlbnRhdGlvbigpOwogCisgICAgdm9pZCBz
ZXRDb25zb2xlTWVzc2FnZUxpc3RlbmVyKFN0cmluZ0NhbGxiYWNrIGNhbGxiYWNrKTsKKwogICAg
IERPTVN0cmluZyBhdWRpb1Nlc3Npb25DYXRlZ29yeSgpOwogfTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuY3Bw
IGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJv
Y2Vzcy5jcHAKaW5kZXggNzAzZDU5MWMyNGJiZTkwZTZmMDdmNGNiNWI5NDRhYTZhZWJjN2MzOC4u
YWY2NWZmZmM3YWRiNzQxZjc2MGU0N2RiYTViYzQ0ZjRjY2U4MDhlNSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5j
cHAKKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrQ29ubmVjdGlvblRv
V2ViUHJvY2Vzcy5jcHAKQEAgLTQzLDkgKzQzLDExIEBACiAjaW5jbHVkZSAiTmV0d29ya1Jlc291
cmNlTG9hZGVyTWVzc2FnZXMuaCIKICNpbmNsdWRlICJOZXR3b3JrU29ja2V0U3RyZWFtLmgiCiAj
aW5jbHVkZSAiTmV0d29ya1NvY2tldFN0cmVhbU1lc3NhZ2VzLmgiCisjaW5jbHVkZSAiUHJlY29u
bmVjdFRhc2suaCIKICNpbmNsdWRlICJSZW1vdGVOZXR3b3JraW5nQ29udGV4dC5oIgogI2luY2x1
ZGUgIlNlc3Npb25UcmFja2VyLmgiCiAjaW5jbHVkZSAiV2ViQ29yZUFyZ3VtZW50Q29kZXJzLmgi
CisjaW5jbHVkZSAiV2ViRXJyb3JzLmgiCiAjaW5jbHVkZSAiV2Vic2l0ZURhdGFTdG9yZVBhcmFt
ZXRlcnMuaCIKICNpbmNsdWRlIDxXZWJDb3JlL05ldHdvcmtTdG9yYWdlU2Vzc2lvbi5oPgogI2lu
Y2x1ZGUgPFdlYkNvcmUvUGluZ0hhbmRsZS5oPgpAQCAtMjg3LDYgKzI4OSwyNiBAQCB2b2lkIE5l
dHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzOjpwcmVmZXRjaEROUyhjb25zdCBTdHJpbmcmIGhv
c3RuYW1lKQogICAgIE5ldHdvcmtQcm9jZXNzOjpzaW5nbGV0b24oKS5wcmVmZXRjaEROUyhob3N0
bmFtZSk7CiB9CiAKK3ZvaWQgTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6OnByZWNvbm5l
Y3RUbyh1aW50NjRfdCBwcmVjb25uZWN0aW9uSWRlbnRpZmllciwgY29uc3QgVVJMJiB1cmwsIFdl
YkNvcmU6OlN0b3JlZENyZWRlbnRpYWxzUG9saWN5IHN0b3JlZENyZWRlbnRpYWxzUG9saWN5KQor
eworI2lmIEVOQUJMRShTRVJWRVJfUFJFQ09OTkVDVCkKKyAgICBuZXcgUHJlY29ubmVjdFRhc2so
dXJsLCBzdG9yZWRDcmVkZW50aWFsc1BvbGljeSwgW3RoaXMsIHByb3RlY3RlZFRoaXMgPSBtYWtl
UmVmKCp0aGlzKSwgaWRlbnRpZmllciA9IHByZWNvbm5lY3Rpb25JZGVudGlmaWVyXSAoY29uc3Qg
UmVzb3VyY2VFcnJvciYgZXJyb3IpIHsKKyAgICAgICAgZGlkRmluaXNoUHJlY29ubmVjdGlvbihp
ZGVudGlmaWVyLCBlcnJvcik7CisgICAgfSk7CisjZWxzZQorICAgIFVOVVNFRF9QQVJBTShzdG9y
ZWRDcmVkZW50aWFsc1BvbGljeSk7CisgICAgZGlkRmluaXNoUHJlY29ubmVjdGlvbihwcmVjb25u
ZWN0aW9uSWRlbnRpZmllciwgaW50ZXJuYWxFcnJvcih1cmwpKTsKKyNlbmRpZgorfQorCit2b2lk
IE5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzOjpkaWRGaW5pc2hQcmVjb25uZWN0aW9uKHVp
bnQ2NF90IHByZWNvbm5lY3Rpb25JZGVudGlmaWVyLCBjb25zdCBSZXNvdXJjZUVycm9yJiBlcnJv
cikKK3sKKyAgICBpZiAoIW1fY29ubmVjdGlvbi0+aXNWYWxpZCgpKQorICAgICAgICByZXR1cm47
CisKKyAgICBtX2Nvbm5lY3Rpb24tPnNlbmQoTWVzc2FnZXM6Ok5ldHdvcmtQcm9jZXNzQ29ubmVj
dGlvbjo6RGlkRmluaXNoUHJlY29ubmVjdGlvbihwcmVjb25uZWN0aW9uSWRlbnRpZmllciwgZXJy
b3IpLCAwKTsKK30KKwogc3RhdGljIE5ldHdvcmtTdG9yYWdlU2Vzc2lvbiYgc3RvcmFnZVNlc3Np
b24oUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklEKQogewogICAgIEFTU0VSVChzZXNzaW9uSUQuaXNW
YWxpZCgpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29y
a0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuaCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mv
TmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuaAppbmRleCBjZDI4MDQyY2ZmYmYxNjBjY2Ni
N2U1ZDRkNDdhYzE4Njk1OTI1MGQ5Li4zODFkNjgxZDRiNzJlODJlM2EyOTM3MDg4Mzk0Y2I0ZGNl
MmMyYTY4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtD
b25uZWN0aW9uVG9XZWJQcm9jZXNzLmgKKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vz
cy9OZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5oCkBAIC03Niw2ICs3Niw4IEBAIHB1Ymxp
YzoKIHByaXZhdGU6CiAgICAgTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MoSVBDOjpDb25u
ZWN0aW9uOjpJZGVudGlmaWVyKTsKIAorICAgIHZvaWQgZGlkRmluaXNoUHJlY29ubmVjdGlvbih1
aW50NjRfdCBwcmVjb25uZWN0aW9uSWRlbnRpZmllciwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VF
cnJvciYpOworCiAgICAgLy8gSVBDOjpDb25uZWN0aW9uOjpDbGllbnQKICAgICB2b2lkIGRpZFJl
Y2VpdmVNZXNzYWdlKElQQzo6Q29ubmVjdGlvbiYsIElQQzo6RGVjb2RlciYpIG92ZXJyaWRlOwog
ICAgIHZvaWQgZGlkUmVjZWl2ZVN5bmNNZXNzYWdlKElQQzo6Q29ubmVjdGlvbiYsIElQQzo6RGVj
b2RlciYsIHN0ZDo6dW5pcXVlX3B0cjxJUEM6OkVuY29kZXI+Jikgb3ZlcnJpZGU7CkBAIC05MCw2
ICs5Miw3IEBAIHByaXZhdGU6CiAgICAgdm9pZCBwZXJmb3JtU3luY2hyb25vdXNMb2FkKGNvbnN0
IE5ldHdvcmtSZXNvdXJjZUxvYWRQYXJhbWV0ZXJzJiwgUmVmPE1lc3NhZ2VzOjpOZXR3b3JrQ29u
bmVjdGlvblRvV2ViUHJvY2Vzczo6UGVyZm9ybVN5bmNocm9ub3VzTG9hZDo6RGVsYXllZFJlcGx5
PiYmKTsKICAgICB2b2lkIGxvYWRQaW5nKE5ldHdvcmtSZXNvdXJjZUxvYWRQYXJhbWV0ZXJzJiYs
IFdlYkNvcmU6OkhUVFBIZWFkZXJNYXAmJiBvcmlnaW5hbFJlcXVlc3RIZWFkZXJzKTsKICAgICB2
b2lkIHByZWZldGNoRE5TKGNvbnN0IFN0cmluZyYpOworICAgIHZvaWQgcHJlY29ubmVjdFRvKHVp
bnQ2NF90IHByZWNvbm5lY3Rpb25JZGVudGlmaWVyLCBjb25zdCBXZWJDb3JlOjpVUkwmLCBXZWJD
b3JlOjpTdG9yZWRDcmVkZW50aWFsc1BvbGljeSk7CiAKICAgICB2b2lkIHJlbW92ZUxvYWRJZGVu
dGlmaWVyKFJlc291cmNlTG9hZElkZW50aWZpZXIpOwogICAgIHZvaWQgc2V0RGVmZXJzTG9hZGlu
ZyhSZXNvdXJjZUxvYWRJZGVudGlmaWVyLCBib29sKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MubWVzc2FnZXMu
aW4gYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtDb25uZWN0aW9uVG9XZWJQ
cm9jZXNzLm1lc3NhZ2VzLmluCmluZGV4IGFiZjBmY2NhMDAyYTRhZTUzY2UwYWU3MDgyNmJlZWFl
NDFkNmVkNTYuLjYxM2VjNGE5NmMzY2I2ZTI1NTEzNGZjZjg3NDhiYmIxYTYwYWU3NzUgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0Nvbm5lY3Rpb25Ub1dl
YlByb2Nlc3MubWVzc2FnZXMuaW4KKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9O
ZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5tZXNzYWdlcy5pbgpAQCAtMjgsNiArMjgsNyBA
QCBtZXNzYWdlcyAtPiBOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2VzcyBMZWdhY3lSZWNlaXZl
ciB7CiAgICAgUmVtb3ZlTG9hZElkZW50aWZpZXIodWludDY0X3QgcmVzb3VyY2VMb2FkSWRlbnRp
ZmllcikKICAgICBTZXREZWZlcnNMb2FkaW5nKHVpbnQ2NF90IHJlc291cmNlTG9hZElkZW50aWZp
ZXIsIGJvb2wgZGVmZXJzKQogICAgIFByZWZldGNoRE5TKFN0cmluZyBob3N0bmFtZSkKKyAgICBQ
cmVjb25uZWN0VG8odWludDY0X3QgcHJlY29ubmVjdGlvbklkZW50aWZpZXIsIFdlYkNvcmU6OlVS
TCB1cmwsIGVudW0gV2ViQ29yZTo6U3RvcmVkQ3JlZGVudGlhbHNQb2xpY3kgc3RvcmVkQ3JlZGVu
dGlhbHNQb2xpY3kpOwogCiAgICAgU3RhcnREb3dubG9hZChQQUw6OlNlc3Npb25JRCBzZXNzaW9u
SUQsIFdlYktpdDo6RG93bmxvYWRJRCBkb3dubG9hZElELCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVl
c3QgcmVxdWVzdCwgU3RyaW5nIHN1Z2dlc3RlZE5hbWUpCiAgICAgQ29udmVydE1haW5SZXNvdXJj
ZUxvYWRUb0Rvd25sb2FkKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgdWludDY0X3QgbWFpblJl
c291cmNlTG9hZElkZW50aWZpZXIsIFdlYktpdDo6RG93bmxvYWRJRCBkb3dubG9hZElELCBXZWJD
b3JlOjpSZXNvdXJjZVJlcXVlc3QgcmVxdWVzdCwgV2ViQ29yZTo6UmVzb3VyY2VSZXNwb25zZSBy
ZXNwb25zZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29y
a0RhdGFUYXNrLmNwcCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0RhdGFU
YXNrLmNwcAppbmRleCA4MDU0YjQ3MzNkZmZhMzBkNGEwMjkyZWY1MmE4Yjk2NjZjYjM1OTQxLi5i
YjdmMTc1MWZmZTRhMTliZTUzODgzY2Q1ZTFiMWFlMzgzODAyNTU3IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtEYXRhVGFzay5jcHAKKysrIGIvU291cmNl
L1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrRGF0YVRhc2suY3BwCkBAIC01Myw3ICs1Myw3
IEBAIFJlZjxOZXR3b3JrRGF0YVRhc2s+IE5ldHdvcmtEYXRhVGFzazo6Y3JlYXRlKE5ldHdvcmtT
ZXNzaW9uJiBzZXNzaW9uLCBOZXR3b3JrRGF0CiAgICAgICAgIHJldHVybiBOZXR3b3JrRGF0YVRh
c2tCbG9iOjpjcmVhdGUoc2Vzc2lvbiwgY2xpZW50LCBwYXJhbWV0ZXJzLnJlcXVlc3QsIHBhcmFt
ZXRlcnMuY29udGVudFNuaWZmaW5nUG9saWN5LCBwYXJhbWV0ZXJzLmJsb2JGaWxlUmVmZXJlbmNl
cyk7CiAKICNpZiBQTEFURk9STShDT0NPQSkKLSAgICByZXR1cm4gTmV0d29ya0RhdGFUYXNrQ29j
b2E6OmNyZWF0ZShzZXNzaW9uLCBjbGllbnQsIHBhcmFtZXRlcnMucmVxdWVzdCwgcGFyYW1ldGVy
cy5zdG9yZWRDcmVkZW50aWFsc1BvbGljeSwgcGFyYW1ldGVycy5jb250ZW50U25pZmZpbmdQb2xp
Y3ksIHBhcmFtZXRlcnMuc2hvdWxkQ2xlYXJSZWZlcnJlck9uSFRUUFNUb0hUVFBSZWRpcmVjdCk7
CisgICAgcmV0dXJuIE5ldHdvcmtEYXRhVGFza0NvY29hOjpjcmVhdGUoc2Vzc2lvbiwgY2xpZW50
LCBwYXJhbWV0ZXJzLnJlcXVlc3QsIHBhcmFtZXRlcnMuc3RvcmVkQ3JlZGVudGlhbHNQb2xpY3ks
IHBhcmFtZXRlcnMuY29udGVudFNuaWZmaW5nUG9saWN5LCBwYXJhbWV0ZXJzLnNob3VsZENsZWFy
UmVmZXJyZXJPbkhUVFBTVG9IVFRQUmVkaXJlY3QsIHBhcmFtZXRlcnMuc2hvdWxkUHJlY29ubmVj
dE9ubHkpOwogI2VuZGlmCiAjaWYgVVNFKFNPVVApCiAgICAgcmV0dXJuIE5ldHdvcmtEYXRhVGFz
a1NvdXA6OmNyZWF0ZShzZXNzaW9uLCBjbGllbnQsIHBhcmFtZXRlcnMucmVxdWVzdCwgcGFyYW1l
dGVycy5zdG9yZWRDcmVkZW50aWFsc1BvbGljeSwgcGFyYW1ldGVycy5jb250ZW50U25pZmZpbmdQ
b2xpY3ksIHBhcmFtZXRlcnMuc2hvdWxkQ2xlYXJSZWZlcnJlck9uSFRUUFNUb0hUVFBSZWRpcmVj
dCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtMb2Fk
UGFyYW1ldGVycy5oIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrTG9hZFBh
cmFtZXRlcnMuaAppbmRleCAxZmJkMmRhNDkxZDg3NmYxYWFiOWQxMjhlODM0ZmU0ZDcxZDQ5MTBi
Li4yNWFhNTA1ODBkZTlhOThhY2RjMDI3YTgxMDdhMjhlYTg5MzQ3NTc4IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtMb2FkUGFyYW1ldGVycy5oCisrKyBi
L1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0xvYWRQYXJhbWV0ZXJzLmgKQEAg
LTMzLDYgKzMzLDggQEAKIAogbmFtZXNwYWNlIFdlYktpdCB7CiAKK2VudW0gY2xhc3MgUHJlY29u
bmVjdE9ubHkgeyBObywgWWVzIH07CisKIGNsYXNzIE5ldHdvcmtMb2FkUGFyYW1ldGVycyB7CiBw
dWJsaWM6CiAgICAgdWludDY0X3Qgd2ViUGFnZUlEIHsgMCB9OwpAQCAtNDksNiArNTEsNyBAQCBw
dWJsaWM6CiAjaWYgVVNFKE5FVFdPUktfU0VTU0lPTikKICAgICBWZWN0b3I8UmVmUHRyPFdlYkNv
cmU6OkJsb2JEYXRhRmlsZVJlZmVyZW5jZT4+IGJsb2JGaWxlUmVmZXJlbmNlczsKICNlbmRpZgor
ICAgIFByZWNvbm5lY3RPbmx5IHNob3VsZFByZWNvbm5lY3RPbmx5IHsgUHJlY29ubmVjdE9ubHk6
Ok5vIH07CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MuY3BwIGIvU291cmNlL1dlYktpdC9O
ZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5jcHAKaW5kZXggNzllMDJjZjg3MjE1MmM3YTA5
YjY4NDlhNjVkNmFlM2Q4YjNlNjU4OC4uZjcxZTFkMWZmMDk1MmVjYTMyYjkwNGYyNGUzYzRlY2Qy
YmFhZmRhMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3Jr
UHJvY2Vzcy5jcHAKKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJv
Y2Vzcy5jcHAKQEAgLTQwLDYgKzQwLDcgQEAKICNpbmNsdWRlICJOZXR3b3JrUHJvY2Vzc1Byb3h5
TWVzc2FnZXMuaCIKICNpbmNsdWRlICJOZXR3b3JrUmVzb3VyY2VMb2FkZXIuaCIKICNpbmNsdWRl
ICJOZXR3b3JrU2Vzc2lvbi5oIgorI2luY2x1ZGUgIlByZWNvbm5lY3RUYXNrLmgiCiAjaW5jbHVk
ZSAiUmVtb3RlTmV0d29ya2luZ0NvbnRleHQuaCIKICNpbmNsdWRlICJTZXNzaW9uVHJhY2tlci5o
IgogI2luY2x1ZGUgIlN0YXRpc3RpY3NEYXRhLmgiCkBAIC03MjUsNiArNzI2LDE2IEBAIFN0cmlu
ZyBOZXR3b3JrUHJvY2Vzczo6Y2FjaGVTdG9yYWdlRGlyZWN0b3J5KFBBTDo6U2Vzc2lvbklEIHNl
c3Npb25JRCkgY29uc3QKICAgICByZXR1cm4gc2Vzc2lvbi0+Y2FjaGVTdG9yYWdlRGlyZWN0b3J5
KCk7CiB9CiAKK3ZvaWQgTmV0d29ya1Byb2Nlc3M6OnByZWNvbm5lY3RUbyhjb25zdCBXZWJDb3Jl
OjpVUkwmIHVybCwgV2ViQ29yZTo6U3RvcmVkQ3JlZGVudGlhbHNQb2xpY3kgc3RvcmVkQ3JlZGVu
dGlhbHNQb2xpY3kpCit7CisjaWYgRU5BQkxFKFNFUlZFUl9QUkVDT05ORUNUKQorICAgIG5ldyBQ
cmVjb25uZWN0VGFzayh1cmwsIHN0b3JlZENyZWRlbnRpYWxzUG9saWN5KTsKKyNlbHNlCisgICAg
VU5VU0VEX1BBUkFNKHVybCk7CisgICAgVU5VU0VEX1BBUkFNKHN0b3JlZENyZWRlbnRpYWxzUG9s
aWN5KTsKKyNlbmRpZgorfQorCiAjaWYgIVBMQVRGT1JNKENPQ09BKQogdm9pZCBOZXR3b3JrUHJv
Y2Vzczo6aW5pdGlhbGl6ZVByb2Nlc3MoY29uc3QgQ2hpbGRQcm9jZXNzSW5pdGlhbGl6YXRpb25Q
YXJhbWV0ZXJzJikKIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mv
TmV0d29ya1Byb2Nlc3MuaCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1By
b2Nlc3MuaAppbmRleCAxNGE1MjJmY2Q2ZGQ1ZjBmZGJjNGE1MDEwNWEwYWI0MGJiMGM1MmIwLi5i
OWZhNzIwODRjNDgwOTUxMjc0YWY5YTQxNDdiZWViMDU3MWI4YjU2IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLmgKKysrIGIvU291cmNlL1dl
YktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5oCkBAIC01NCw2ICs1NCw4IEBAIGNs
YXNzIFByb3RlY3Rpb25TcGFjZTsKIGNsYXNzIFNlY3VyaXR5T3JpZ2luOwogc3RydWN0IFNlY3Vy
aXR5T3JpZ2luRGF0YTsKIHN0cnVjdCBTb3VwTmV0d29ya1Byb3h5U2V0dGluZ3M7CitlbnVtIGNs
YXNzIFN0b3JlZENyZWRlbnRpYWxzUG9saWN5OworY2xhc3MgVVJMOwogfQogCiBuYW1lc3BhY2Ug
V2ViS2l0IHsKQEAgLTEzNyw2ICsxMzksOCBAQCBwdWJsaWM6CiAgICAgU2Vjb25kcyBsb2FkVGhy
b3R0bGVMYXRlbmN5KCkgY29uc3QgeyByZXR1cm4gbV9sb2FkVGhyb3R0bGVMYXRlbmN5OyB9CiAg
ICAgU3RyaW5nIGNhY2hlU3RvcmFnZURpcmVjdG9yeShQQUw6OlNlc3Npb25JRCkgY29uc3Q7CiAK
KyAgICB2b2lkIHByZWNvbm5lY3RUbyhjb25zdCBXZWJDb3JlOjpVUkwmLCBXZWJDb3JlOjpTdG9y
ZWRDcmVkZW50aWFsc1BvbGljeSk7CisKIHByaXZhdGU6CiAgICAgTmV0d29ya1Byb2Nlc3MoKTsK
ICAgICB+TmV0d29ya1Byb2Nlc3MoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29y
a1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MubWVzc2FnZXMuaW4gYi9Tb3VyY2UvV2ViS2l0L05ldHdv
cmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLm1lc3NhZ2VzLmluCmluZGV4IDY5NGU0NzQ4ODZlMGY3
ODRmNzU5YjRlYmRkOGU2ZTllNWU2OWM1ODguLjQ2MWYxYzBlYzI4MmYyMTZlZjg5YTQ5OGUzMjk0
NmQ4ZTE2MzU4OGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0
d29ya1Byb2Nlc3MubWVzc2FnZXMuaW4KKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vz
cy9OZXR3b3JrUHJvY2Vzcy5tZXNzYWdlcy5pbgpAQCAtODIsNiArODIsOCBAQCBtZXNzYWdlcyAt
PiBOZXR3b3JrUHJvY2VzcyBMZWdhY3lSZWNlaXZlciB7CiAKICAgICBEaWRHcmFudFNhbmRib3hF
eHRlbnNpb25zVG9TdG9yYWdlUHJvY2Vzc0ZvckJsb2JzKHVpbnQ2NF90IHJlcXVlc3RJRCkKIAor
ICAgIFByZWNvbm5lY3RUbyhXZWJDb3JlOjpVUkwgdXJsLCBlbnVtIFdlYkNvcmU6OlN0b3JlZENy
ZWRlbnRpYWxzUG9saWN5IHN0b3JlZENyZWRlbnRpYWxzUG9saWN5KTsKKwogI2lmIEhBVkUoQ0ZO
RVRXT1JLX1NUT1JBR0VfUEFSVElUSU9OSU5HKQogICAgIFVwZGF0ZVByZXZhbGVudERvbWFpbnNU
b1BhcnRpdGlvbk9yQmxvY2tDb29raWVzKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgVmVjdG9y
PFN0cmluZz4gZG9tYWluc1RvUGFydGl0aW9uLCBWZWN0b3I8U3RyaW5nPiBkb21haW5zVG9CbG9j
aywgVmVjdG9yPFN0cmluZz4gZG9tYWluc1RvTmVpdGhlclBhcnRpdGlvbk5vckJsb2NrLCBib29s
IHNob3VsZENsZWFyRmlyc3QpCiAgICAgUmVtb3ZlUHJldmFsZW50RG9tYWlucyhQQUw6OlNlc3Np
b25JRCBzZXNzaW9uSUQsIFZlY3RvcjxTdHJpbmc+IGRvbWFpbnNXaXRoSW50ZXJhY3Rpb24pOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9QcmVjb25uZWN0VGFzay5j
cHAgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL1ByZWNvbm5lY3RUYXNrLmNwcApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi40ZWIzNzRjZjg5ZDQ2OTFkNzI4NGI4OTQyZGNiZmVlNzY2MGUxMDgzCi0tLSAvZGV2
L251bGwKKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9QcmVjb25uZWN0VGFzay5j
cHAKQEAgLTAsMCArMSwxMzIgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTcgQXBwbGUgSW5j
LiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4g
c291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9u
LCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisg
KiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0
YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9u
cyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMg
cHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMg
UFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAq
IEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJ
VFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1F
RC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBC
RSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBF
WEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJW
SUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRF
UlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwg
V0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xV
RElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQg
T0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQ
T1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisj
aW5jbHVkZSAiUHJlY29ubmVjdFRhc2suaCIKKworI2lmIEVOQUJMRShTRVJWRVJfUFJFQ09OTkVD
VCkKKworI2luY2x1ZGUgIkF1dGhlbnRpY2F0aW9uTWFuYWdlci5oIgorI2luY2x1ZGUgIkxvZ2dp
bmcuaCIKKyNpbmNsdWRlICJOZXR3b3JrTG9hZFBhcmFtZXRlcnMuaCIKKyNpbmNsdWRlICJOZXR3
b3JrU2Vzc2lvbi5oIgorI2luY2x1ZGUgIldlYkVycm9ycy5oIgorI2luY2x1ZGUgPFdlYkNvcmUv
QXV0aGVudGljYXRpb25DaGFsbGVuZ2UuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL1Jlc291cmNlRXJy
b3IuaD4KKworI2lmIFBMQVRGT1JNKENPQ09BKQorI2luY2x1ZGUgIk5ldHdvcmtEYXRhVGFza0Nv
Y29hLmgiCisjZW5kaWYKKworbmFtZXNwYWNlIFdlYktpdCB7CisKK3VzaW5nIG5hbWVzcGFjZSBX
ZWJDb3JlOworCitQcmVjb25uZWN0VGFzazo6UHJlY29ubmVjdFRhc2soY29uc3QgVVJMJiB1cmws
IFdlYkNvcmU6OlN0b3JlZENyZWRlbnRpYWxzUG9saWN5IHN0b3JlZENyZWRlbnRpYWxzUG9saWN5
LCBXVEY6OkNvbXBsZXRpb25IYW5kbGVyPHZvaWQoY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VFcnJv
ciYpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQorICAgIDogbV9jb21wbGV0aW9uSGFuZGxlcihXVEZN
b3ZlKGNvbXBsZXRpb25IYW5kbGVyKSkKKyAgICAsIG1fdGltZW91dFRpbWVyKFt0aGlzXSB7IGRp
ZEZpbmlzaChSZXNvdXJjZUVycm9yIHsgU3RyaW5nKCksIDAsIG1fdGFzay0+Zmlyc3RSZXF1ZXN0
KCkudXJsKCksIEFTQ0lJTGl0ZXJhbCgiUHJlY29ubmVjdGlvbiB0aW1lZCBvdXQiKSwgUmVzb3Vy
Y2VFcnJvcjo6VHlwZTo6VGltZW91dCB9KTsgfSkKK3sKKyAgICBSRUxFQVNFX0xPRyhOZXR3b3Jr
LCAiJXAgLSBQcmVjb25uZWN0VGFzazo6UHJlY29ubmVjdFRhc2soKSIsIHRoaXMpOworICAgIE5l
dHdvcmtMb2FkUGFyYW1ldGVycyBwYXJhbWV0ZXJzOworICAgIHBhcmFtZXRlcnMucmVxdWVzdCA9
IFJlc291cmNlUmVxdWVzdCh1cmwpOworICAgIHBhcmFtZXRlcnMuc2hvdWxkUHJlY29ubmVjdE9u
bHkgPSBQcmVjb25uZWN0T25seTo6WWVzOworICAgIHBhcmFtZXRlcnMuc3RvcmVkQ3JlZGVudGlh
bHNQb2xpY3kgPSBzdG9yZWRDcmVkZW50aWFsc1BvbGljeTsKKyAgICBtX3Rhc2sgPSBOZXR3b3Jr
RGF0YVRhc2s6OmNyZWF0ZShOZXR3b3JrU2Vzc2lvbjo6ZGVmYXVsdFNlc3Npb24oKSwgKnRoaXMs
IHBhcmFtZXRlcnMpOworICAgIG1fdGFzay0+cmVzdW1lKCk7CisKKyAgICBtX3RpbWVvdXRUaW1l
ci5zdGFydE9uZVNob3QoNjAwMDBfcyk7Cit9CisKK1ByZWNvbm5lY3RUYXNrOjp+UHJlY29ubmVj
dFRhc2soKQoreworICAgIEFTU0VSVChtX3Rhc2stPmNsaWVudCgpID09IHRoaXMpOworICAgIG1f
dGFzay0+Y2xlYXJDbGllbnQoKTsKKyAgICBtX3Rhc2stPmNhbmNlbCgpOworfQorCit2b2lkIFBy
ZWNvbm5lY3RUYXNrOjp3aWxsUGVyZm9ybUhUVFBSZWRpcmVjdGlvbihXZWJDb3JlOjpSZXNvdXJj
ZVJlc3BvbnNlJiYsIFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYmLCBSZWRpcmVjdENvbXBsZXRp
b25IYW5kbGVyJiYpCit7CisgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7Cit9CisKK3ZvaWQgUHJl
Y29ubmVjdFRhc2s6OmRpZFJlY2VpdmVDaGFsbGVuZ2UoY29uc3QgV2ViQ29yZTo6QXV0aGVudGlj
YXRpb25DaGFsbGVuZ2UmIGNoYWxsZW5nZSwgQ2hhbGxlbmdlQ29tcGxldGlvbkhhbmRsZXImJiBj
b21wbGV0aW9uSGFuZGxlcikKK3sKKyAgICBpZiAoY2hhbGxlbmdlLnByb3RlY3Rpb25TcGFjZSgp
LmF1dGhlbnRpY2F0aW9uU2NoZW1lKCkgPT0gUHJvdGVjdGlvblNwYWNlQXV0aGVudGljYXRpb25T
Y2hlbWVTZXJ2ZXJUcnVzdEV2YWx1YXRpb25SZXF1ZXN0ZWQpIHsKKyAgICAgICAgaWYgKG1fdGFz
ayAmJiBtX3Rhc2stPmFsbG93c1NwZWNpZmljSFRUUFNDZXJ0aWZpY2F0ZUZvckhvc3QoY2hhbGxl
bmdlKSkKKyAgICAgICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKEF1dGhlbnRpY2F0aW9uQ2hhbGxl
bmdlRGlzcG9zaXRpb246OlVzZUNyZWRlbnRpYWwsIHNlcnZlclRydXN0Q3JlZGVudGlhbChjaGFs
bGVuZ2UpKTsKKyAgICAgICAgZWxzZQorICAgICAgICAgICAgY29tcGxldGlvbkhhbmRsZXIoQXV0
aGVudGljYXRpb25DaGFsbGVuZ2VEaXNwb3NpdGlvbjo6UmVqZWN0UHJvdGVjdGlvblNwYWNlLCB7
IH0pOworICAgICAgICByZXR1cm47CisgICAgfQorICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwor
fQorCit2b2lkIFByZWNvbm5lY3RUYXNrOjpkaWRSZWNlaXZlUmVzcG9uc2VOZXR3b3JrU2Vzc2lv
bihXZWJDb3JlOjpSZXNvdXJjZVJlc3BvbnNlJiYsIFJlc3BvbnNlQ29tcGxldGlvbkhhbmRsZXIm
JikKK3sKKyAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKK30KKwordm9pZCBQcmVjb25uZWN0VGFz
azo6ZGlkUmVjZWl2ZURhdGEoUmVmPFdlYkNvcmU6OlNoYXJlZEJ1ZmZlcj4mJikKK3sKKyAgICBB
U1NFUlRfTk9UX1JFQUNIRUQoKTsKK30KKwordm9pZCBQcmVjb25uZWN0VGFzazo6ZGlkQ29tcGxl
dGVXaXRoRXJyb3IoY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VFcnJvciYgZXJyb3IsIGNvbnN0IFdl
YkNvcmU6Ok5ldHdvcmtMb2FkTWV0cmljcyYpCit7CisgICAgaWYgKGVycm9yLmlzTnVsbCgpKQor
ICAgICAgICBSRUxFQVNFX0xPRyhOZXR3b3JrLCAiJXAgLSBQcmVjb25uZWN0VGFzazo6ZGlkQ29t
cGxldGUiLCB0aGlzKTsKKyAgICBlbHNlCisgICAgICAgIFJFTEVBU0VfTE9HKE5ldHdvcmssICIl
cCAtIFByZWNvbm5lY3RUYXNrOjpkaWRDb21wbGV0ZVdpdGhFcnJvciwgZXJyb3JfY29kZTogJWQi
LCB0aGlzLCBlcnJvci5lcnJvckNvZGUoKSk7CisKKyAgICBkaWRGaW5pc2goZXJyb3IpOworfQor
Cit2b2lkIFByZWNvbm5lY3RUYXNrOjpkaWRTZW5kRGF0YSh1aW50NjRfdCB0b3RhbEJ5dGVzU2Vu
dCwgdWludDY0X3QgdG90YWxCeXRlc0V4cGVjdGVkVG9TZW5kKQoreworICAgIEFTU0VSVF9OT1Rf
UkVBQ0hFRCgpOworfQorCit2b2lkIFByZWNvbm5lY3RUYXNrOjp3YXNCbG9ja2VkKCkKK3sKKyAg
ICBSRUxFQVNFX0xPRyhOZXR3b3JrLCAiJXAgLSBQcmVjb25uZWN0VGFzazo6d2FzQmxvY2tlZCgp
IiwgdGhpcyk7CisgICAgZGlkRmluaXNoKGJsb2NrZWRFcnJvcihtX3Rhc2stPmZpcnN0UmVxdWVz
dCgpKSk7Cit9CisKK3ZvaWQgUHJlY29ubmVjdFRhc2s6OmNhbm5vdFNob3dVUkwoKQoreworICAg
IFJFTEVBU0VfTE9HKE5ldHdvcmssICIlcCAtIFByZWNvbm5lY3RUYXNrOjpjYW5ub3RTaG93VVJM
KCkiLCB0aGlzKTsKKyAgICBkaWRGaW5pc2goY2Fubm90U2hvd1VSTEVycm9yKG1fdGFzay0+Zmly
c3RSZXF1ZXN0KCkpKTsKK30KKwordm9pZCBQcmVjb25uZWN0VGFzazo6ZGlkRmluaXNoKGNvbnN0
IFJlc291cmNlRXJyb3ImIGVycm9yKQoreworICAgIGlmIChtX2NvbXBsZXRpb25IYW5kbGVyKQor
ICAgICAgICBtX2NvbXBsZXRpb25IYW5kbGVyKGVycm9yKTsKKyAgICBkZWxldGUgdGhpczsKK30K
KworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CisKKyNlbmRpZiAvLyBFTkFCTEUoU0VSVkVSX1BSRUNP
Tk5FQ1QpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL1ByZWNvbm5l
Y3RUYXNrLmggYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL1ByZWNvbm5lY3RUYXNrLmgK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uOTQ5ZTY2YzE1MWY4YTI2NzA3MmM1YWEyMWQwNTNlNTEwYWI3NzI2NAotLS0g
L2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvUHJlY29ubmVjdFRh
c2suaApAQCAtMCwwICsxLDYxIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE3IEFwcGxlIElu
Yy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGlu
IHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlv
biwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwor
ICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJl
dGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlv
bnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxz
IHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElT
IFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisg
KiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklM
SVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlN
RUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICog
QkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwg
RVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VS
VklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5U
RVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFks
IFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNM
VURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VU
IE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUg
UE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNpZiBF
TkFCTEUoU0VSVkVSX1BSRUNPTk5FQ1QpCisKKyNpbmNsdWRlICJOZXR3b3JrRGF0YVRhc2suaCIK
KyNpbmNsdWRlIDxXZWJDb3JlL1RpbWVyLmg+CisjaW5jbHVkZSA8d3RmL0NvbXBsZXRpb25IYW5k
bGVyLmg+CisKK25hbWVzcGFjZSBXZWJLaXQgeworCitjbGFzcyBQcmVjb25uZWN0VGFzayBmaW5h
bCA6IHByaXZhdGUgTmV0d29ya0RhdGFUYXNrQ2xpZW50IHsKK3B1YmxpYzoKKyAgICBleHBsaWNp
dCBQcmVjb25uZWN0VGFzayhjb25zdCBXZWJDb3JlOjpVUkwmLCBXZWJDb3JlOjpTdG9yZWRDcmVk
ZW50aWFsc1BvbGljeSwgV1RGOjpDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGNvbnN0IFdlYkNvcmU6
OlJlc291cmNlRXJyb3ImKT4mJiBjb21wbGV0aW9uSGFuZGxlciA9IHsgfSk7CisgICAgflByZWNv
bm5lY3RUYXNrKCk7CisKK3ByaXZhdGU6CisgICAgLy8gTmV0d29ya0RhdGFUYXNrQ2xpZW50Lgor
ICAgIHZvaWQgd2lsbFBlcmZvcm1IVFRQUmVkaXJlY3Rpb24oV2ViQ29yZTo6UmVzb3VyY2VSZXNw
b25zZSYmLCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmJiwgUmVkaXJlY3RDb21wbGV0aW9uSGFu
ZGxlciYmKSBmaW5hbDsKKyAgICB2b2lkIGRpZFJlY2VpdmVDaGFsbGVuZ2UoY29uc3QgV2ViQ29y
ZTo6QXV0aGVudGljYXRpb25DaGFsbGVuZ2UmLCBDaGFsbGVuZ2VDb21wbGV0aW9uSGFuZGxlciYm
KSBmaW5hbDsKKyAgICB2b2lkIGRpZFJlY2VpdmVSZXNwb25zZU5ldHdvcmtTZXNzaW9uKFdlYkNv
cmU6OlJlc291cmNlUmVzcG9uc2UmJiwgUmVzcG9uc2VDb21wbGV0aW9uSGFuZGxlciYmKSBmaW5h
bDsKKyAgICB2b2lkIGRpZFJlY2VpdmVEYXRhKFJlZjxXZWJDb3JlOjpTaGFyZWRCdWZmZXI+JiYp
IGZpbmFsOworICAgIHZvaWQgZGlkQ29tcGxldGVXaXRoRXJyb3IoY29uc3QgV2ViQ29yZTo6UmVz
b3VyY2VFcnJvciYsIGNvbnN0IFdlYkNvcmU6Ok5ldHdvcmtMb2FkTWV0cmljcyYpIGZpbmFsOwor
ICAgIHZvaWQgZGlkU2VuZERhdGEodWludDY0X3QgdG90YWxCeXRlc1NlbnQsIHVpbnQ2NF90IHRv
dGFsQnl0ZXNFeHBlY3RlZFRvU2VuZCkgZmluYWw7CisgICAgdm9pZCB3YXNCbG9ja2VkKCkgZmlu
YWw7CisgICAgdm9pZCBjYW5ub3RTaG93VVJMKCkgZmluYWw7CisKKyAgICB2b2lkIGRpZEZpbmlz
aChjb25zdCBXZWJDb3JlOjpSZXNvdXJjZUVycm9yJik7CisKKyAgICBSZWZQdHI8TmV0d29ya0Rh
dGFUYXNrPiBtX3Rhc2s7CisgICAgV1RGOjpDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGNvbnN0IFdl
YkNvcmU6OlJlc291cmNlRXJyb3ImKT4gbV9jb21wbGV0aW9uSGFuZGxlcjsKKyAgICBXZWJDb3Jl
OjpUaW1lciBtX3RpbWVvdXRUaW1lcjsKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdAorCisj
ZW5kaWYgLy8gRU5BQkxFKFNFUlZFUl9QUkVDT05ORUNUKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9OZXR3b3JrUHJvY2Vzcy9jb2NvYS9OZXR3b3JrRGF0YVRhc2tDb2NvYS5oIGIvU291cmNl
L1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9jb2NvYS9OZXR3b3JrRGF0YVRhc2tDb2NvYS5oCmluZGV4
IGNkZjQzMjRjMDZiZDZjNzExMDA3NDcwNmU1Mjk1MjE5ODBmMDQzYzguLjIxMmE5YTA4ZmIxMjEx
N2VkODNhMTIyNmRmYmY0ZmFmMGY0OWUyMmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0
d29ya1Byb2Nlc3MvY29jb2EvTmV0d29ya0RhdGFUYXNrQ29jb2EuaAorKysgYi9Tb3VyY2UvV2Vi
S2l0L05ldHdvcmtQcm9jZXNzL2NvY29hL05ldHdvcmtEYXRhVGFza0NvY29hLmgKQEAgLTI4LDYg
KzI4LDcgQEAKICNpZiBVU0UoTkVUV09SS19TRVNTSU9OKQogCiAjaW5jbHVkZSAiTmV0d29ya0Rh
dGFUYXNrLmgiCisjaW5jbHVkZSAiTmV0d29ya0xvYWRQYXJhbWV0ZXJzLmgiCiAjaW5jbHVkZSA8
V2ViQ29yZS9OZXR3b3JrTG9hZE1ldHJpY3MuaD4KICNpbmNsdWRlIDx3dGYvUmV0YWluUHRyLmg+
CiAKQEAgLTQwLDkgKzQxLDkgQEAgY2xhc3MgTmV0d29ya1Nlc3Npb25Db2NvYTsKIGNsYXNzIE5l
dHdvcmtEYXRhVGFza0NvY29hIGZpbmFsIDogcHVibGljIE5ldHdvcmtEYXRhVGFzayB7CiAgICAg
ZnJpZW5kIGNsYXNzIE5ldHdvcmtTZXNzaW9uQ29jb2E7CiBwdWJsaWM6Ci0gICAgc3RhdGljIFJl
ZjxOZXR3b3JrRGF0YVRhc2s+IGNyZWF0ZShOZXR3b3JrU2Vzc2lvbiYgc2Vzc2lvbiwgTmV0d29y
a0RhdGFUYXNrQ2xpZW50JiBjbGllbnQsIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYg
cmVxdWVzdCwgV2ViQ29yZTo6U3RvcmVkQ3JlZGVudGlhbHNQb2xpY3kgc3RvcmVkQ3JlZGVudGlh
bHNQb2xpY3ksIFdlYkNvcmU6OkNvbnRlbnRTbmlmZmluZ1BvbGljeSBzaG91bGRDb250ZW50U25p
ZmYsIGJvb2wgc2hvdWxkQ2xlYXJSZWZlcnJlck9uSFRUUFNUb0hUVFBSZWRpcmVjdCkKKyAgICBz
dGF0aWMgUmVmPE5ldHdvcmtEYXRhVGFzaz4gY3JlYXRlKE5ldHdvcmtTZXNzaW9uJiBzZXNzaW9u
LCBOZXR3b3JrRGF0YVRhc2tDbGllbnQmIGNsaWVudCwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VS
ZXF1ZXN0JiByZXF1ZXN0LCBXZWJDb3JlOjpTdG9yZWRDcmVkZW50aWFsc1BvbGljeSBzdG9yZWRD
cmVkZW50aWFsc1BvbGljeSwgV2ViQ29yZTo6Q29udGVudFNuaWZmaW5nUG9saWN5IHNob3VsZENv
bnRlbnRTbmlmZiwgYm9vbCBzaG91bGRDbGVhclJlZmVycmVyT25IVFRQU1RvSFRUUFJlZGlyZWN0
LCBQcmVjb25uZWN0T25seSBzaG91bGRQcmVjb25uZWN0T25seSkKICAgICB7Ci0gICAgICAgIHJl
dHVybiBhZG9wdFJlZigqbmV3IE5ldHdvcmtEYXRhVGFza0NvY29hKHNlc3Npb24sIGNsaWVudCwg
cmVxdWVzdCwgc3RvcmVkQ3JlZGVudGlhbHNQb2xpY3ksIHNob3VsZENvbnRlbnRTbmlmZiwgc2hv
dWxkQ2xlYXJSZWZlcnJlck9uSFRUUFNUb0hUVFBSZWRpcmVjdCkpOworICAgICAgICByZXR1cm4g
YWRvcHRSZWYoKm5ldyBOZXR3b3JrRGF0YVRhc2tDb2NvYShzZXNzaW9uLCBjbGllbnQsIHJlcXVl
c3QsIHN0b3JlZENyZWRlbnRpYWxzUG9saWN5LCBzaG91bGRDb250ZW50U25pZmYsIHNob3VsZENs
ZWFyUmVmZXJyZXJPbkhUVFBTVG9IVFRQUmVkaXJlY3QsIHNob3VsZFByZWNvbm5lY3RPbmx5KSk7
CiAgICAgfQogCiAgICAgfk5ldHdvcmtEYXRhVGFza0NvY29hKCk7CkBAIC03MSw3ICs3Miw3IEBA
IHB1YmxpYzoKICAgICBXZWJDb3JlOjpOZXR3b3JrTG9hZE1ldHJpY3MmIG5ldHdvcmtMb2FkTWV0
cmljcygpIHsgcmV0dXJuIG1fbmV0d29ya0xvYWRNZXRyaWNzOyB9CiAKIHByaXZhdGU6Ci0gICAg
TmV0d29ya0RhdGFUYXNrQ29jb2EoTmV0d29ya1Nlc3Npb24mLCBOZXR3b3JrRGF0YVRhc2tDbGll
bnQmLCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmLCBXZWJDb3JlOjpTdG9yZWRDcmVk
ZW50aWFsc1BvbGljeSwgV2ViQ29yZTo6Q29udGVudFNuaWZmaW5nUG9saWN5LCBib29sIHNob3Vs
ZENsZWFyUmVmZXJyZXJPbkhUVFBTVG9IVFRQUmVkaXJlY3QpOworICAgIE5ldHdvcmtEYXRhVGFz
a0NvY29hKE5ldHdvcmtTZXNzaW9uJiwgTmV0d29ya0RhdGFUYXNrQ2xpZW50JiwgY29uc3QgV2Vi
Q29yZTo6UmVzb3VyY2VSZXF1ZXN0JiwgV2ViQ29yZTo6U3RvcmVkQ3JlZGVudGlhbHNQb2xpY3ks
IFdlYkNvcmU6OkNvbnRlbnRTbmlmZmluZ1BvbGljeSwgYm9vbCBzaG91bGRDbGVhclJlZmVycmVy
T25IVFRQU1RvSFRUUFJlZGlyZWN0LCBQcmVjb25uZWN0T25seSk7CiAKICAgICBib29sIHRyeVBh
c3N3b3JkQmFzZWRBdXRoZW50aWNhdGlvbihjb25zdCBXZWJDb3JlOjpBdXRoZW50aWNhdGlvbkNo
YWxsZW5nZSYsIENoYWxsZW5nZUNvbXBsZXRpb25IYW5kbGVyJik7CiAKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvY29jb2EvTmV0d29ya0RhdGFUYXNrQ29jb2EubW0g
Yi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL2NvY29hL05ldHdvcmtEYXRhVGFza0NvY29h
Lm1tCmluZGV4IDk5N2UwZWUxYWY2ODgzZWU3MjhkMzAwMDQ4Y2M2YjJlZDQ5ZDI0OTkuLmRiYmIx
MDA0MDE0OWE0ZjZlZjIwZGUzOTNmN2M5Njg2NjFiODRlODYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvTmV0d29ya1Byb2Nlc3MvY29jb2EvTmV0d29ya0RhdGFUYXNrQ29jb2EubW0KKysrIGIv
U291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9jb2NvYS9OZXR3b3JrRGF0YVRhc2tDb2NvYS5t
bQpAQCAtNzQsNyArNzQsNyBAQCBzdGF0aWMgZmxvYXQgdG9OU1VSTFNlc3Npb25UYXNrUHJpb3Jp
dHkoV2ViQ29yZTo6UmVzb3VyY2VMb2FkUHJpb3JpdHkgcHJpb3JpdHkpCiAgICAgcmV0dXJuIE5T
VVJMU2Vzc2lvblRhc2tQcmlvcml0eURlZmF1bHQ7CiB9CiAKLU5ldHdvcmtEYXRhVGFza0NvY29h
OjpOZXR3b3JrRGF0YVRhc2tDb2NvYShOZXR3b3JrU2Vzc2lvbiYgc2Vzc2lvbiwgTmV0d29ya0Rh
dGFUYXNrQ2xpZW50JiBjbGllbnQsIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYgcmVx
dWVzdFdpdGhDcmVkZW50aWFscywgV2ViQ29yZTo6U3RvcmVkQ3JlZGVudGlhbHNQb2xpY3kgc3Rv
cmVkQ3JlZGVudGlhbHNQb2xpY3ksIFdlYkNvcmU6OkNvbnRlbnRTbmlmZmluZ1BvbGljeSBzaG91
bGRDb250ZW50U25pZmYsIGJvb2wgc2hvdWxkQ2xlYXJSZWZlcnJlck9uSFRUUFNUb0hUVFBSZWRp
cmVjdCkKK05ldHdvcmtEYXRhVGFza0NvY29hOjpOZXR3b3JrRGF0YVRhc2tDb2NvYShOZXR3b3Jr
U2Vzc2lvbiYgc2Vzc2lvbiwgTmV0d29ya0RhdGFUYXNrQ2xpZW50JiBjbGllbnQsIGNvbnN0IFdl
YkNvcmU6OlJlc291cmNlUmVxdWVzdCYgcmVxdWVzdFdpdGhDcmVkZW50aWFscywgV2ViQ29yZTo6
U3RvcmVkQ3JlZGVudGlhbHNQb2xpY3kgc3RvcmVkQ3JlZGVudGlhbHNQb2xpY3ksIFdlYkNvcmU6
OkNvbnRlbnRTbmlmZmluZ1BvbGljeSBzaG91bGRDb250ZW50U25pZmYsIGJvb2wgc2hvdWxkQ2xl
YXJSZWZlcnJlck9uSFRUUFNUb0hUVFBSZWRpcmVjdCwgUHJlY29ubmVjdE9ubHkgc2hvdWxkUHJl
Y29ubmVjdE9ubHkpCiAgICAgOiBOZXR3b3JrRGF0YVRhc2soc2Vzc2lvbiwgY2xpZW50LCByZXF1
ZXN0V2l0aENyZWRlbnRpYWxzLCBzdG9yZWRDcmVkZW50aWFsc1BvbGljeSwgc2hvdWxkQ2xlYXJS
ZWZlcnJlck9uSFRUUFNUb0hUVFBSZWRpcmVjdCkKIHsKICAgICBpZiAobV9zY2hlZHVsZWRGYWls
dXJlVHlwZSAhPSBOb0ZhaWx1cmUpCkBAIC0xMjgsNiArMTI4LDE0IEBAIE5ldHdvcmtEYXRhVGFz
a0NvY29hOjpOZXR3b3JrRGF0YVRhc2tDb2NvYShOZXR3b3JrU2Vzc2lvbiYgc2Vzc2lvbiwgTmV0
d29ya0RhdGFUCiAgICAgICAgIExPRyhOZXR3b3JrU2Vzc2lvbiwgIiVsbHUgQ3JlYXRpbmcgTmV0
d29ya0RhdGFUYXNrIHdpdGggVVJMICVzIiwgW21fdGFzayB0YXNrSWRlbnRpZmllcl0sIG5zUmVx
dWVzdC5VUkwuYWJzb2x1dGVTdHJpbmcuVVRGOFN0cmluZyk7CiAgICAgfQogCisgICAgaWYgKHNo
b3VsZFByZWNvbm5lY3RPbmx5ID09IFByZWNvbm5lY3RPbmx5OjpZZXMpIHsKKyNpZiBFTkFCTEUo
U0VSVkVSX1BSRUNPTk5FQ1QpCisgICAgICAgIG1fdGFzay5nZXQoKS5fcHJlY29ubmVjdCA9IHRy
dWU7CisjZWxzZQorICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKKyNlbmRpZgorICAgIH0K
KwogI2lmIEhBVkUoQ0ZORVRXT1JLX1NUT1JBR0VfUEFSVElUSU9OSU5HKQogICAgIGlmIChzdG9y
ZWRDcmVkZW50aWFsc1BvbGljeSA9PSBXZWJDb3JlOjpTdG9yZWRDcmVkZW50aWFsc1BvbGljeTo6
VXNlKSB7CiAgICAgICAgIFN0cmluZyBzdG9yYWdlUGFydGl0aW9uID0gc2Vzc2lvbi5uZXR3b3Jr
U3RvcmFnZVNlc3Npb24oKS5jb29raWVTdG9yYWdlUGFydGl0aW9uKHJlcXVlc3QpOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViQ29yZUFyZ3VtZW50Q29kZXJzLmggYi9Tb3Vy
Y2UvV2ViS2l0L1NoYXJlZC9XZWJDb3JlQXJndW1lbnRDb2RlcnMuaAppbmRleCAwOGMzODM5MGI4
NGNlNDg3NDFjZDQ0ZmUxNDFlZTU2Yjg0YjkyYzQzLi5lYjNkYjUwZDk2YmUxMGNkMWVjMjNmYjhk
OGU3OGUxMmE4Y2MyMGRlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJDb3Jl
QXJndW1lbnRDb2RlcnMuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJDb3JlQXJndW1l
bnRDb2RlcnMuaApAQCAtMzksNiArMzksNyBAQAogI2luY2x1ZGUgPFdlYkNvcmUvUGF5bWVudEhl
YWRlcnMuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1JlYWx0aW1lTWVkaWFTb3VyY2UuaD4KICNpbmNs
dWRlIDxXZWJDb3JlL1Njcm9sbFNuYXBPZmZzZXRzSW5mby5oPgorI2luY2x1ZGUgPFdlYkNvcmUv
U3RvcmVkQ3JlZGVudGlhbHNQb2xpY3kuaD4KIAogbmFtZXNwYWNlIFdURiB7CiBjbGFzcyBNb25v
dG9uaWNUaW1lOwpAQCAtNzY2LDQgKzc2NywxMiBAQCB0ZW1wbGF0ZTw+IHN0cnVjdCBFbnVtVHJh
aXRzPFdlYkNvcmU6Ok1lZGlhU2VsZWN0aW9uT3B0aW9uOjpUeXBlPiB7CiAgICAgPjsKIH07CiAK
K3RlbXBsYXRlIDw+IHN0cnVjdCBFbnVtVHJhaXRzPFdlYkNvcmU6OlN0b3JlZENyZWRlbnRpYWxz
UG9saWN5PiB7CisgICAgdXNpbmcgdmFsdWVzID0gRW51bVZhbHVlczwKKyAgICAgICAgV2ViQ29y
ZTo6U3RvcmVkQ3JlZGVudGlhbHNQb2xpY3ksCisgICAgICAgIFdlYkNvcmU6OlN0b3JlZENyZWRl
bnRpYWxzUG9saWN5OjpEb05vdFVzZSwKKyAgICAgICAgV2ViQ29yZTo6U3RvcmVkQ3JlZGVudGlh
bHNQb2xpY3k6OlVzZQorICAgID47Cit9OworCiB9IC8vIG5hbWVzcGFjZSBXVEYKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYlByZWZlcmVuY2VzRGVmaW5pdGlvbnMuaCBiL1Nv
dXJjZS9XZWJLaXQvU2hhcmVkL1dlYlByZWZlcmVuY2VzRGVmaW5pdGlvbnMuaAppbmRleCBjNjgy
MGQ4MTU2ZGIyYjVmMjg1ODExMDIxYzgyMjcyMjY5NDg1NzBkLi44M2M2MzYxMzI4YjE4NTUwZTBk
Y2MxYWZhZjNkYmQ3YjVkZTI4ZmY2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9X
ZWJQcmVmZXJlbmNlc0RlZmluaXRpb25zLmgKKysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2Vi
UHJlZmVyZW5jZXNEZWZpbml0aW9ucy5oCkBAIC00NSw2ICs0NSwxMiBAQAogI2RlZmluZSBERUZB
VUxUX0hJRERFTl9QQUdFX0NTU19BTklNQVRJT05fU1VTUEVOU0lPTl9FTkFCTEVEIGZhbHNlCiAj
ZW5kaWYKIAorI2lmIEVOQUJMRShTRVJWRVJfUFJFQ09OTkVDVCkKKyNkZWZpbmUgREVGQVVMVF9M
SU5LX1BSRUNPTk5FQ1RfRU5BQkxFRCB0cnVlCisjZWxzZQorI2RlZmluZSBERUZBVUxUX0xJTktf
UFJFQ09OTkVDVF9FTkFCTEVEIGZhbHNlCisjZW5kaWYKKwogI2lmIFBMQVRGT1JNKENPQ09BKQog
I2RlZmluZSBERUZBVUxUX1BERlBMVUdJTl9FTkFCTEVEIHRydWUKICNlbHNlCkBAIC0xODEsNiAr
MTg3LDcgQEAKICAgICBtYWNybyhET01QYXN0ZUFsbG93ZWQsIGRvbVBhc3RlQWxsb3dlZCwgQm9v
bCwgYm9vbCwgZmFsc2UsICIiLCAiIikgXAogICAgIG1hY3JvKEphdmFTY3JpcHRDYW5BY2Nlc3ND
bGlwYm9hcmQsIGphdmFTY3JpcHRDYW5BY2Nlc3NDbGlwYm9hcmQsIEJvb2wsIGJvb2wsIGZhbHNl
LCAiIiwgIiIpIFwKICAgICBtYWNybyhTaG91bGRQcmludEJhY2tncm91bmRzLCBzaG91bGRQcmlu
dEJhY2tncm91bmRzLCBCb29sLCBib29sLCBERUZBVUxUX1NIT1VMRF9QUklOVF9CQUNLR1JPVU5E
UywgIiIsICIiKSBcCisgICAgbWFjcm8oTGlua1ByZWNvbm5lY3QsIGxpbmtQcmVjb25uZWN0LCBC
b29sLCBib29sLCBERUZBVUxUX0xJTktfUFJFQ09OTkVDVF9FTkFCTEVELCAiIiwgIiIpIFwKICAg
ICBtYWNybyhGdWxsU2NyZWVuRW5hYmxlZCwgZnVsbFNjcmVlbkVuYWJsZWQsIEJvb2wsIGJvb2ws
IGZhbHNlLCAiIiwgIiIpIFwKICAgICBtYWNybyhBc3luY2hyb25vdXNTcGVsbENoZWNraW5nRW5h
YmxlZCwgYXN5bmNocm9ub3VzU3BlbGxDaGVja2luZ0VuYWJsZWQsIEJvb2wsIGJvb2wsIGZhbHNl
LCAiIiwgIiIpIFwKICAgICBtYWNybyhXZWJTZWN1cml0eUVuYWJsZWQsIHdlYlNlY3VyaXR5RW5h
YmxlZCwgQm9vbCwgYm9vbCwgdHJ1ZSwgIiIsICIiKSBcCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9BUEkvQy9XS0NvbnRleHQuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvQVBJL0MvV0tDb250ZXh0LmNwcAppbmRleCA3ODMzOGVkNjU3OGNkY2VjMWVlMGNlMTM0NDM4
MmViNDk3NjA2MjU5Li43MDQ4YmJlMGMwZDcwNzJkYTI0YmExZDE0YmI5MjhkOWY5ZWFjOWQ4IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQy9XS0NvbnRleHQuY3BwCisr
KyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9DL1dLQ29udGV4dC5jcHAKQEAgLTQwNyw2
ICs0MDcsMTEgQEAgdm9pZCBXS0NvbnRleHRTZXREaXNrQ2FjaGVTcGVjdWxhdGl2ZVZhbGlkYXRp
b25FbmFibGVkKFdLQ29udGV4dFJlZiBjb250ZXh0UmVmLAogICAgIHRvSW1wbChjb250ZXh0UmVm
KS0+Y29uZmlndXJhdGlvbigpLnNldERpc2tDYWNoZVNwZWN1bGF0aXZlVmFsaWRhdGlvbkVuYWJs
ZWQodmFsdWUpOwogfQogCit2b2lkIFdLQ29udGV4dFByZWNvbm5lY3RUb1NlcnZlcihXS0NvbnRl
eHRSZWYgY29udGV4dFJlZiwgV0tVUkxSZWYgc2VydmVyVVJMUmVmKQoreworICAgIHRvSW1wbChj
b250ZXh0UmVmKS0+cHJlY29ubmVjdFRvU2VydmVyKFVSTChVUkwoKSwgdG9XVEZTdHJpbmcoc2Vy
dmVyVVJMUmVmKSkpOworfQorCiBXS0Nvb2tpZU1hbmFnZXJSZWYgV0tDb250ZXh0R2V0Q29va2ll
TWFuYWdlcihXS0NvbnRleHRSZWYgY29udGV4dFJlZikKIHsKICAgICByZXR1cm4gdG9BUEkodG9J
bXBsKGNvbnRleHRSZWYpLT5zdXBwbGVtZW50PFdlYkNvb2tpZU1hbmFnZXJQcm94eT4oKSk7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQy9XS0NvbnRleHRQcml2YXRl
LmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQy9XS0NvbnRleHRQcml2YXRlLmgKaW5k
ZXggMDJmOTBiOTE3YjQ4OTQ1MGUyMzBiNmFlNjQ2YWE5NzQ2OTA3NzhhNy4uMTUyZDZkYWIwYjY5
MDYwYzdjNjZiMWY3OWE4MDMwMjlmODE0NzkxNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvQVBJL0MvV0tDb250ZXh0UHJpdmF0ZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL0FQSS9DL1dLQ29udGV4dFByaXZhdGUuaApAQCAtMTA1LDYgKzEwNSw4IEBAIFdLX0VY
UE9SVCB2b2lkIFdLQ29udGV4dFNldE1lbW9yeUNhY2hlRGlzYWJsZWQoV0tDb250ZXh0UmVmLCBi
b29sIGRpc2FibGVkKTsKIAogV0tfRVhQT1JUIHZvaWQgV0tDb250ZXh0U2V0Rm9udFdoaXRlbGlz
dChXS0NvbnRleHRSZWYsIFdLQXJyYXlSZWYpOwogCitXS19FWFBPUlQgdm9pZCBXS0NvbnRleHRQ
cmVjb25uZWN0VG9TZXJ2ZXIoV0tDb250ZXh0UmVmIGNvbnRleHQsIFdLVVJMUmVmIHNlcnZlclVS
TCk7CisKIFdLX0VYUE9SVCBXS1Byb2Nlc3NJRCBXS0NvbnRleHRHZXROZXR3b3JrUHJvY2Vzc0lk
ZW50aWZpZXIoV0tDb250ZXh0UmVmIGNvbnRleHQpOwogV0tfRVhQT1JUIFdLUHJvY2Vzc0lEIFdL
Q29udGV4dEdldERhdGFiYXNlUHJvY2Vzc0lkZW50aWZpZXIoV0tDb250ZXh0UmVmIGNvbnRleHQp
OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tQcm9j
ZXNzUG9vbC5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1Byb2Nlc3NQ
b29sLm1tCmluZGV4IDFmNTk3NGRmNTdhMDIxZGJkNWJjODk0ZmNkOGVhNzE4MzQ4YTg5MjguLjE4
MDIzMDdjN2UwY2Y5MDE4NTdlMzY2MmE5NjAxNTAxNWZjOTYwMTcgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1Byb2Nlc3NQb29sLm1tCisrKyBiL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1Byb2Nlc3NQb29sLm1tCkBAIC00MTUsNiAr
NDE1LDExIEBAIHN0YXRpYyBOU0RpY3Rpb25hcnkgKnBvbGljaWVzSGFzaE1hcFRvRGljdGlvbmFy
eShjb25zdCBIYXNoTWFwPFN0cmluZywgSGFzaE1hcDxTCiAgICAgcmV0dXJuIF9wcm9jZXNzUG9v
bC0+cHJvY2Vzc2VzKCkuc2l6ZSgpOwogfQogCistICh2b2lkKV9wcmVjb25uZWN0VG9TZXJ2ZXI6
KE5TVVJMICopc2VydmVyVVJMCit7CisgICAgX3Byb2Nlc3NQb29sLT5wcmVjb25uZWN0VG9TZXJ2
ZXIoc2VydmVyVVJMKTsKK30KKwogLSAoc2l6ZV90KV9wbHVnaW5Qcm9jZXNzQ291bnQKIHsKICNp
ZiAhUExBVEZPUk0oSU9TKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJ
L0NvY29hL1dLUHJvY2Vzc1Bvb2xQcml2YXRlLmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9B
UEkvQ29jb2EvV0tQcm9jZXNzUG9vbFByaXZhdGUuaAppbmRleCAwN2FhZTMxMDhmYjNmMzZmZmQy
ZmYzOTUzNGNhMGQxN2U1Y2Y0NGY5Li4xM2ZlNTljNDgyYjg4YTRiODI4ZDVkNjhmZDIwMzkzZWZh
ZTEyYjgwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tQ
cm9jZXNzUG9vbFByaXZhdGUuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29j
b2EvV0tQcm9jZXNzUG9vbFByaXZhdGUuaApAQCAtODcsNiArODcsOCBAQAogLy8gVGVzdCBvbmx5
LiBTaG91bGQgYmUgY2FsbGVkIGJlZm9yZSBhbnkgd2ViIGNvbnRlbnQgcHJvY2Vzc2VzIGFyZSBs
YXVuY2hlZC4KICsgKHZvaWQpX2ZvcmNlR2FtZUNvbnRyb2xsZXJGcmFtZXdvcmsgV0tfQVBJX0FW
QUlMQUJMRShtYWNvc3goMTAuMTMpLCBpb3MoMTEuMCkpOwogCistICh2b2lkKV9wcmVjb25uZWN0
VG9TZXJ2ZXI6KE5TVVJMICopc2VydmVyVVJMIFdLX0FQSV9BVkFJTEFCTEUobWFjb3N4KFdLX01B
Q19UQkEpLCBpb3MoV0tfSU9TX1RCQSkpOworCiBAcHJvcGVydHkgKG5vbmF0b21pYywgZ2V0dGVy
PV9pc0Nvb2tpZVN0b3JhZ2VQYXJ0aXRpb25pbmdFbmFibGVkLCBzZXR0ZXI9X3NldENvb2tpZVN0
b3JhZ2VQYXJ0aXRpb25pbmdFbmFibGVkOikgQk9PTCBfY29va2llU3RvcmFnZVBhcnRpdGlvbmlu
Z0VuYWJsZWQgV0tfQVBJX0FWQUlMQUJMRShtYWNvc3goMTAuMTIuMyksIGlvcygxMC4zKSk7CiAK
IEBlbmQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQb29s
LmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQb29sLmNwcAppbmRleCBh
Y2I5ZDU2MjVlYWI3OTRiZTVjZWQ2MWQ3ZWJjMzhhMmM1MjM1NWI3Li4yNjIwODYzOWZmNGU3ZDY3
YTU2NGQ4MjUyNjk5YTI2ODg3NGVhZTE2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9XZWJQcm9jZXNzUG9vbC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2Vi
UHJvY2Vzc1Bvb2wuY3BwCkBAIC0xMTU3LDYgKzExNTcsMTQgQEAgdm9pZCBXZWJQcm9jZXNzUG9v
bDo6c2V0Q2FuSGFuZGxlSFRUUFNTZXJ2ZXJUcnVzdEV2YWx1YXRpb24oYm9vbCB2YWx1ZSkKICAg
ICB9CiB9CiAKK3ZvaWQgV2ViUHJvY2Vzc1Bvb2w6OnByZWNvbm5lY3RUb1NlcnZlcihjb25zdCBV
UkwmIHVybCkKK3sKKyAgICBpZiAoIXVybC5pc1ZhbGlkKCkgfHwgIXVybC5wcm90b2NvbElzSW5I
VFRQRmFtaWx5KCkpCisgICAgICAgIHJldHVybjsKKworICAgIGVuc3VyZU5ldHdvcmtQcm9jZXNz
KCkuc2VuZChNZXNzYWdlczo6TmV0d29ya1Byb2Nlc3M6OlByZWNvbm5lY3RUbyh1cmwsIFN0b3Jl
ZENyZWRlbnRpYWxzUG9saWN5OjpVc2UpLCAwKTsKK30KKwogdm9pZCBXZWJQcm9jZXNzUG9vbDo6
cmVnaXN0ZXJVUkxTY2hlbWVBc0xvY2FsKGNvbnN0IFN0cmluZyYgdXJsU2NoZW1lKQogewogICAg
IG1fc2NoZW1lc1RvUmVnaXN0ZXJBc0xvY2FsLmFkZCh1cmxTY2hlbWUpOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Bvb2wuaCBiL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL1dlYlByb2Nlc3NQb29sLmgKaW5kZXggZTE5ZjZkZjJhZjg2ZDVjYTQ0NzBhZDZj
ODYxNDkxN2ExZmYyODA3YS4uYWQ1YjBjNjdhOTUwMGQ4YmE4YWQ2NGUzZDhmYWQ4OTA0MzU3OTdj
NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Bvb2wuaAor
KysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUG9vbC5oCkBAIC0yMTYsNiAr
MjE2LDcgQEAgcHVibGljOgogICAgIHZvaWQgcmVnaXN0ZXJVUkxTY2hlbWVBc0Rpc3BsYXlJc29s
YXRlZChjb25zdCBTdHJpbmcmKTsKICAgICB2b2lkIHJlZ2lzdGVyVVJMU2NoZW1lQXNDT1JTRW5h
YmxlZChjb25zdCBTdHJpbmcmKTsKICAgICB2b2lkIHJlZ2lzdGVyVVJMU2NoZW1lQXNDYWNoZVBh
cnRpdGlvbmVkKGNvbnN0IFN0cmluZyYpOworICAgIHZvaWQgcHJlY29ubmVjdFRvU2VydmVyKGNv
bnN0IFdlYkNvcmU6OlVSTCYpOwogCiAgICAgVmlzaXRlZExpbmtTdG9yZSYgdmlzaXRlZExpbmtT
dG9yZSgpIHsgcmV0dXJuIG1fdmlzaXRlZExpbmtTdG9yZS5nZXQoKTsgfQogCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L1dlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNl
L1dlYktpdC9XZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCA2MmE0YjcyMmI2
ZDYzMmUyMmU0OThkZmM2YjU4ZTRhMGFhNDExMTZmLi42NjRhODVjMGVjMzBhZDNmOWI5MWQyMjU3
YjhiYjg3NzUyNjU2NmJlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYktpdC54Y29kZXBy
b2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9w
cm9qZWN0LnBieHByb2oKQEAgLTEzODAsNiArMTM4MCw4IEBACiAJCTgzOTkwMjAzMUJFOUEwMkIw
MDBGMzY1MyAvKiBOZXR3b3JrTG9hZC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gODM5OTAxRkUxQkU5QTAxQjAwMEYzNjUzIC8qIE5ldHdvcmtMb2FkLmgg
Ki87IH07CiAJCTgzOUEyRjMxMUUyMDY3NDUwMDM5MDU3RSAvKiBIaWdoUGVyZm9ybWFuY2VHcmFw
aGljc1VzYWdlU2FtcGxlci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSA4MzlBMkYyRjFFMjA2NzM5MDAzOTA1N0UgLyogSGlnaFBlcmZvcm1hbmNlR3Jh
cGhpY3NVc2FnZVNhbXBsZXIuY3BwICovOyB9OwogCQk4MzlBMkYzMjFFMjA2NzQ1MDAzOTA1N0Ug
LyogSGlnaFBlcmZvcm1hbmNlR3JhcGhpY3NVc2FnZVNhbXBsZXIuaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDgzOUEyRjMwMUUyMDY3MzkwMDM5MDU3RSAv
KiBIaWdoUGVyZm9ybWFuY2VHcmFwaGljc1VzYWdlU2FtcGxlci5oICovOyB9OworCQk4M0EwRUQz
NDFGNzQ3Q0NEMDAzMjk5RUIgLyogUHJlY29ubmVjdFRhc2suY3BwIGluIFNvdXJjZXMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODNBMEVEMzMxRjc0N0NDNzAwMzI5OUVCIC8q
IFByZWNvbm5lY3RUYXNrLmNwcCAqLzsgfTsKKwkJODNBMEVEMzUxRjc0N0NDRjAwMzI5OUVCIC8q
IFByZWNvbm5lY3RUYXNrLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSA4M0EwRUQzMjFGNzQ3Q0M2MDAzMjk5RUIgLyogUHJlY29ubmVjdFRhc2suaCAqLzsg
fTsKIAkJODNCRENDQjkxQUM1RkRCNjAwM0Y2NDQxIC8qIE5ldHdvcmtDYWNoZVN0YXRpc3RpY3Mu
Y3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODNCREND
QjgxQUM1RkRCNjAwM0Y2NDQxIC8qIE5ldHdvcmtDYWNoZVN0YXRpc3RpY3MuY3BwICovOyB9Owog
CQk4M0JGQUM0MjFEOTYxMzdDMDA0MzM0OTAgLyogQmxvYkRvd25sb2FkQ2xpZW50LmggaW4gSGVh
ZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4M0JGQUM0MDFEOTYxMzYw
MDA0MzM0OTAgLyogQmxvYkRvd25sb2FkQ2xpZW50LmggKi87IH07CiAJCTgzQkZBQzQzMUQ5NjEz
N0MwMDQzMzQ5MCAvKiBCbG9iRG93bmxvYWRDbGllbnQuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODNCRkFDNDExRDk2MTM2MDAwNDMzNDkwIC8qIEJs
b2JEb3dubG9hZENsaWVudC5jcHAgKi87IH07CkBAIC0zNzMxLDYgKzM3MzMsOCBAQAogCQk4Mzk5
MDFGRjFCRTlBMDFCMDAwRjM2NTMgLyogTmV0d29ya0xvYWQuY3BwICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jcHAuY3BwOyBuYW1lID0gTmV0d29ya0xvYWQuY3BwOyBwYXRoID0gTmV0d29ya1Byb2Nl
c3MvTmV0d29ya0xvYWQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk4MzlBMkYy
RjFFMjA2NzM5MDAzOTA1N0UgLyogSGlnaFBlcmZvcm1hbmNlR3JhcGhpY3NVc2FnZVNhbXBsZXIu
Y3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSGlnaFBlcmZvcm1hbmNl
R3JhcGhpY3NVc2FnZVNhbXBsZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk4
MzlBMkYzMDFFMjA2NzM5MDAzOTA1N0UgLyogSGlnaFBlcmZvcm1hbmNlR3JhcGhpY3NVc2FnZVNh
bXBsZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSGlnaFBlcmZvcm1hbmNl
R3JhcGhpY3NVc2FnZVNhbXBsZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJODNB
MEVEMzIxRjc0N0NDNjAwMzI5OUVCIC8qIFByZWNvbm5lY3RUYXNrLmggKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmMuaDsgbmFtZSA9IFByZWNvbm5lY3RUYXNrLmg7IHBhdGggPSBOZXR3b3JrUHJvY2Vz
cy9QcmVjb25uZWN0VGFzay5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk4M0EwRUQz
MzFGNzQ3Q0M3MDAzMjk5RUIgLyogUHJlY29ubmVjdFRhc2suY3BwICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jcHAuY3BwOyBuYW1lID0gUHJlY29ubmVjdFRhc2suY3BwOyBwYXRoID0gTmV0d29ya1By
b2Nlc3MvUHJlY29ubmVjdFRhc2suY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk4
M0JEQ0NCODFBQzVGREI2MDAzRjY0NDEgLyogTmV0d29ya0NhY2hlU3RhdGlzdGljcy5jcHAgKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBOZXR3b3JrQ2FjaGVTdGF0aXN0aWNz
LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJODNCRkFDNDAxRDk2MTM2MDAwNDMz
NDkwIC8qIEJsb2JEb3dubG9hZENsaWVudC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5h
bWUgPSBCbG9iRG93bmxvYWRDbGllbnQuaDsgcGF0aCA9IE5ldHdvcmtQcm9jZXNzL0Rvd25sb2Fk
cy9CbG9iRG93bmxvYWRDbGllbnQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJODNC
RkFDNDExRDk2MTM2MDAwNDMzNDkwIC8qIEJsb2JEb3dubG9hZENsaWVudC5jcHAgKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmNwcC5jcHA7IG5hbWUgPSBCbG9iRG93bmxvYWRDbGllbnQuY3BwOyBwYXRo
ID0gTmV0d29ya1Byb2Nlc3MvRG93bmxvYWRzL0Jsb2JEb3dubG9hZENsaWVudC5jcHA7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC02MTExLDYgKzYxMTUsOCBAQAogCQkJCTVDMEIxNzdG
MUU3Qzg4NjcwMEU5MTIzQyAvKiBOZXR3b3JrU29ja2V0U3RyZWFtLm1lc3NhZ2VzLmluICovLAog
CQkJCTQ2MjEwN0Q3MUYzOERCRDMwMERENzgxMCAvKiBQaW5nTG9hZC5jcHAgKi8sCiAJCQkJNUNF
ODVCMUYxQzg4RTY0MzAwNzBCRkNFIC8qIFBpbmdMb2FkLmggKi8sCisJCQkJODNBMEVEMzMxRjc0
N0NDNzAwMzI5OUVCIC8qIFByZWNvbm5lY3RUYXNrLmNwcCAqLywKKwkJCQk4M0EwRUQzMjFGNzQ3
Q0M2MDAzMjk5RUIgLyogUHJlY29ubmVjdFRhc2suaCAqLywKIAkJCQlFMUI3ODQ3MDE2M0YyNDY5
MDAwN0I2OTIgLyogUmVtb3RlTmV0d29ya2luZ0NvbnRleHQuaCAqLywKIAkJCSk7CiAJCQluYW1l
ID0gTmV0d29ya1Byb2Nlc3M7CkBAIC04NzAzLDYgKzg3MDksNyBAQAogCQkJCTFBNEE5RjMzMTJC
ODQ0RTIwMDhGRTk4NCAvKiBQbHVnaW5RdWlya3MuaCBpbiBIZWFkZXJzICovLAogCQkJCTdDRDYy
Mjc4MTczOUQ4NjMwMDVCRDdGRiAvKiBQbHVnaW5TYW5kYm94UHJvZmlsZS5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkJMUE2RkI3QUYxMUU2NEI2ODAwREIxMzcxIC8qIFBsdWdpblZpZXcuaCBpbiBIZWFk
ZXJzICovLAorCQkJCTgzQTBFRDM1MUY3NDdDQ0YwMDMyOTlFQiAvKiBQcmVjb25uZWN0VGFzay5o
IGluIEhlYWRlcnMgKi8sCiAJCQkJRTFDQzFCOTAxMkQ3RUFERjAwNjI1ODM4IC8qIFByaW50SW5m
by5oIGluIEhlYWRlcnMgKi8sCiAJCQkJODZGOTUzNjUxOEZGNThGNTAwMURCMkVGIC8qIFByb2Nl
c3NBc3NlcnRpb24uaCBpbiBIZWFkZXJzICovLAogCQkJCUJDMUE3QzU4MTEzNkUxOUMwMEZCNzE2
NyAvKiBQcm9jZXNzTGF1bmNoZXIuaCBpbiBIZWFkZXJzICovLApAQCAtMTAyODMsNiArMTAyOTAs
NyBAQAogCQkJCTdDRDYyMjc3MTczOUQ4NjMwMDVCRDdGRiAvKiBQbHVnaW5TYW5kYm94UHJvZmls
ZS5tbSBpbiBTb3VyY2VzICovLAogCQkJCUJDODI4NDREMTZCNTA4MUMwMEEyNzhGRSAvKiBQbHVn
aW5TZXJ2aWNlRW50cnlQb2ludC5tbSBpbiBTb3VyY2VzICovLAogCQkJCTFBNkZCN0FFMTFFNjRC
NjgwMERCMTM3MSAvKiBQbHVnaW5WaWV3LmNwcCBpbiBTb3VyY2VzICovLAorCQkJCTgzQTBFRDM0
MUY3NDdDQ0QwMDMyOTlFQiAvKiBQcmVjb25uZWN0VGFzay5jcHAgaW4gU291cmNlcyAqLywKIAkJ
CQlFMThDOTJGNDEyREI5RTcxMDBDRjJBRUIgLyogUHJpbnRJbmZvLmNwcCBpbiBTb3VyY2VzICov
LAogCQkJCUUxQ0MxQjkxMTJEN0VBREYwMDYyNTgzOCAvKiBQcmludEluZm9NYWMubW0gaW4gU291
cmNlcyAqLywKIAkJCQkzNzcxNkE1QTE5NUI5MTA1MDBFRThCMUIgLyogUHJvY2Vzc0Fzc2VydGlv
bi5jcHAgaW4gU291cmNlcyAqLywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9OZXR3b3JrL05ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbi5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvTmV0d29yay9OZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb24uY3BwCmluZGV4IDk2MjRl
Mjk2NGM3NDljYjc2YzViZjA5N2ZlMmM1MGM3Y2Q2ZmZhNTIuLjM4ZDUzYzljMjlkMGU5ZWYxZjQw
NjBhOGQxYjA1NDczOGMxZDA3Y2YgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9OZXR3b3JrL05ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbi5jcHAKKysrIGIvU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uLmNwcApAQCAtMTQw
LDYgKzE0MCwxMSBAQCB2b2lkIE5ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbjo6ZGlkRmluaXNoUGlu
Z0xvYWQodWludDY0X3QgcGluZ0xvYWRJZGVudGlmaWVyLCBSZQogICAgIFdlYlByb2Nlc3M6OnNp
bmdsZXRvbigpLndlYkxvYWRlclN0cmF0ZWd5KCkuZGlkRmluaXNoUGluZ0xvYWQocGluZ0xvYWRJ
ZGVudGlmaWVyLCBXVEZNb3ZlKGVycm9yKSk7CiB9CiAKK3ZvaWQgTmV0d29ya1Byb2Nlc3NDb25u
ZWN0aW9uOjpkaWRGaW5pc2hQcmVjb25uZWN0aW9uKHVpbnQ2NF90IHByZWNvbm5lY3Rpb25JZGVu
dGlmaWVyLCBSZXNvdXJjZUVycm9yJiYgZXJyb3IpCit7CisgICAgV2ViUHJvY2Vzczo6c2luZ2xl
dG9uKCkud2ViTG9hZGVyU3RyYXRlZ3koKS5kaWRGaW5pc2hQcmVjb25uZWN0aW9uKHByZWNvbm5l
Y3Rpb25JZGVudGlmaWVyLCBXVEZNb3ZlKGVycm9yKSk7Cit9CisKICNpZiBFTkFCTEUoU0hBUkVB
QkxFX1JFU09VUkNFKQogdm9pZCBOZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb246OmRpZENhY2hlUmVz
b3VyY2UoY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0LCBjb25zdCBTaGFyZWFibGVSZXNv
dXJjZTo6SGFuZGxlJiBoYW5kbGUsIFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCkKIHsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9jZXNzQ29u
bmVjdGlvbi5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nl
c3NDb25uZWN0aW9uLmgKaW5kZXggYzUzNDRlYTY1ZDAxZWMxYTNkYTJiMGIwNTNjZmM0MDM4MzFl
NTQ4Yy4uZGVlYTdiMGZkODJiOWZhM2I1YTE5ZWJkOWFiYTRhNjBkODJjMDExOCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nlc3NDb25uZWN0
aW9uLmgKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nl
c3NDb25uZWN0aW9uLmgKQEAgLTc0LDYgKzc0LDcgQEAgcHJpdmF0ZToKIAogICAgIHZvaWQgZGlk
V3JpdGVCbG9ic1RvVGVtcG9yYXJ5RmlsZXModWludDY0X3QgcmVxdWVzdElkZW50aWZpZXIsIGNv
bnN0IFZlY3RvcjxTdHJpbmc+JiBmaWxlbmFtZXMpOwogICAgIHZvaWQgZGlkRmluaXNoUGluZ0xv
YWQodWludDY0X3QgcGluZ0xvYWRJZGVudGlmaWVyLCBXZWJDb3JlOjpSZXNvdXJjZUVycm9yJiYp
OworICAgIHZvaWQgZGlkRmluaXNoUHJlY29ubmVjdGlvbih1aW50NjRfdCBwcmVjb25uZWN0aW9u
SWRlbnRpZmllciwgV2ViQ29yZTo6UmVzb3VyY2VFcnJvciYmKTsKIAogI2lmIEVOQUJMRShTSEFS
RUFCTEVfUkVTT1VSQ0UpCiAgICAgLy8gTWVzc2FnZSBoYW5kbGVycy4KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbi5t
ZXNzYWdlcy5pbiBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9j
ZXNzQ29ubmVjdGlvbi5tZXNzYWdlcy5pbgppbmRleCA4M2VmMmU2MjI4OWJhZTFkODMzNmJiZjky
MmQzZjU4ZDI2NGI4OWUwLi4yODczNjNlNzMxZTQ5NDQxMmJmOGFkYmE2MzQzYTEwZDIxZWRmMGJj
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvTmV0d29yay9OZXR3b3JrUHJv
Y2Vzc0Nvbm5lY3Rpb24ubWVzc2FnZXMuaW4KKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L05ldHdvcmsvTmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uLm1lc3NhZ2VzLmluCkBAIC0yOCw0ICsy
OCw1IEBAIG1lc3NhZ2VzIC0+IE5ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbiBMZWdhY3lSZWNlaXZl
ciB7CiAKICAgICBEaWRXcml0ZUJsb2JzVG9UZW1wb3JhcnlGaWxlcyh1aW50NjRfdCByZXF1ZXN0
SWRlbnRpZmllciwgVmVjdG9yPFN0cmluZz4gZmlsZW5hbWVzKQogICAgIERpZEZpbmlzaFBpbmdM
b2FkKHVpbnQ2NF90IHBpbmdMb2FkSWRlbnRpZmllciwgV2ViQ29yZTo6UmVzb3VyY2VFcnJvciBl
cnJvcikKKyAgICBEaWRGaW5pc2hQcmVjb25uZWN0aW9uKHVpbnQ2NF90IHByZWNvbm5lY3Rpb25J
ZGVudGlmaWVyLCBXZWJDb3JlOjpSZXNvdXJjZUVycm9yIGVycm9yKQogfQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL05ldHdvcmsvV2ViTG9hZGVyU3RyYXRlZ3kuY3BwIGIv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL05ldHdvcmsvV2ViTG9hZGVyU3RyYXRlZ3kuY3BwCmlu
ZGV4IGVhN2IxN2EzZGViNjFiOTdlNDVjZTFiZTk4NTVkNmZkZDQwODVlZTQuLmJiODEwZDA2OWYw
NmVhMWNiNTEzNDViY2E2YmUxMDFlOTgzM2ZiZDIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9OZXR3b3JrL1dlYkxvYWRlclN0cmF0ZWd5LmNwcAorKysgYi9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvTmV0d29yay9XZWJMb2FkZXJTdHJhdGVneS5jcHAKQEAgLTM1Niw2ICsz
NTYsMTAgQEAgdm9pZCBXZWJMb2FkZXJTdHJhdGVneTo6bmV0d29ya1Byb2Nlc3NDcmFzaGVkKCkK
ICAgICBhdXRvIHBpbmdMb2FkQ29tcGxldGlvbkhhbmRsZXJzID0gV1RGTW92ZShtX3BpbmdMb2Fk
Q29tcGxldGlvbkhhbmRsZXJzKTsKICAgICBmb3IgKGF1dG8mIHBpbmdMb2FkQ29tcGxldGlvbkhh
bmRsZXIgOiBwaW5nTG9hZENvbXBsZXRpb25IYW5kbGVycy52YWx1ZXMoKSkKICAgICAgICAgcGlu
Z0xvYWRDb21wbGV0aW9uSGFuZGxlcihpbnRlcm5hbEVycm9yKFVSTCgpKSk7CisKKyAgICBhdXRv
IHByZWNvbm5lY3RDb21wbGV0aW9uSGFuZGxlcnMgPSBXVEZNb3ZlKG1fcHJlY29ubmVjdENvbXBs
ZXRpb25IYW5kbGVycyk7CisgICAgZm9yIChhdXRvJiBwcmVjb25uZWN0Q29tcGxldGlvbkhhbmRs
ZXIgOiBwcmVjb25uZWN0Q29tcGxldGlvbkhhbmRsZXJzLnZhbHVlcygpKQorICAgICAgICBwcmVj
b25uZWN0Q29tcGxldGlvbkhhbmRsZXIoaW50ZXJuYWxFcnJvcihVUkwoKSkpOwogfQogCiB2b2lk
IFdlYkxvYWRlclN0cmF0ZWd5Ojpsb2FkUmVzb3VyY2VTeW5jaHJvbm91c2x5KE5ldHdvcmtpbmdD
b250ZXh0KiBjb250ZXh0LCB1bnNpZ25lZCBsb25nIHJlc291cmNlTG9hZElkZW50aWZpZXIsIGNv
bnN0IFJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCwgU3RvcmVkQ3JlZGVudGlhbHNQb2xpY3kgc3Rv
cmVkQ3JlZGVudGlhbHNQb2xpY3ksIENsaWVudENyZWRlbnRpYWxQb2xpY3kgY2xpZW50Q3JlZGVu
dGlhbFBvbGljeSwgUmVzb3VyY2VFcnJvciYgZXJyb3IsIFJlc291cmNlUmVzcG9uc2UmIHJlc3Bv
bnNlLCBWZWN0b3I8Y2hhcj4mIGRhdGEpCkBAIC0zOTIsNyArMzk2LDcgQEAgdm9pZCBXZWJMb2Fk
ZXJTdHJhdGVneTo6bG9hZFJlc291cmNlU3luY2hyb25vdXNseShOZXR3b3JraW5nQ29udGV4dCog
Y29udGV4dCwgdW4KICAgICB9CiB9CiAKLXN0YXRpYyB1aW50NjRfdCBnZW5lcmF0ZVBpbmdMb2Fk
SWRlbnRpZmllcigpCitzdGF0aWMgdWludDY0X3QgZ2VuZXJhdGVMb2FkSWRlbnRpZmllcigpCiB7
CiAgICAgc3RhdGljIHVpbnQ2NF90IGlkZW50aWZpZXIgPSAwOwogICAgIHJldHVybiArK2lkZW50
aWZpZXI7CkBAIC00MjIsNyArNDI2LDcgQEAgdm9pZCBXZWJMb2FkZXJTdHJhdGVneTo6c3RhcnRQ
aW5nTG9hZChGcmFtZSYgZnJhbWUsIFJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCwgY28KICAgICB9
CiAgICAgCiAgICAgTmV0d29ya1Jlc291cmNlTG9hZFBhcmFtZXRlcnMgbG9hZFBhcmFtZXRlcnM7
Ci0gICAgbG9hZFBhcmFtZXRlcnMuaWRlbnRpZmllciA9IGdlbmVyYXRlUGluZ0xvYWRJZGVudGlm
aWVyKCk7CisgICAgbG9hZFBhcmFtZXRlcnMuaWRlbnRpZmllciA9IGdlbmVyYXRlTG9hZElkZW50
aWZpZXIoKTsKICAgICBsb2FkUGFyYW1ldGVycy5yZXF1ZXN0ID0gcmVxdWVzdDsKICAgICBsb2Fk
UGFyYW1ldGVycy5zb3VyY2VPcmlnaW4gPSAmZG9jdW1lbnQtPnNlY3VyaXR5T3JpZ2luKCk7CiAg
ICAgbG9hZFBhcmFtZXRlcnMuc2Vzc2lvbklEID0gd2ViUGFnZSA/IHdlYlBhZ2UtPnNlc3Npb25J
RCgpIDogUEFMOjpTZXNzaW9uSUQ6OmRlZmF1bHRTZXNzaW9uSUQoKTsKQEAgLTQ1OSw2ICs0NjMs
MjAgQEAgdm9pZCBXZWJMb2FkZXJTdHJhdGVneTo6ZGlkRmluaXNoUGluZ0xvYWQodWludDY0X3Qg
cGluZ0xvYWRJZGVudGlmaWVyLCBSZXNvdXJjZUUKICAgICAgICAgY29tcGxldGlvbkhhbmRsZXIo
V1RGTW92ZShlcnJvcikpOwogfQogCit2b2lkIFdlYkxvYWRlclN0cmF0ZWd5OjpwcmVjb25uZWN0
VG8oY29uc3QgV2ViQ29yZTo6VVJMJiB1cmwsIFN0b3JlZENyZWRlbnRpYWxzUG9saWN5IHN0b3Jl
ZENyZWRlbnRpYWxzUG9saWN5LCBQcmVjb25uZWN0Q29tcGxldGlvbkhhbmRsZXImJiBjb21wbGV0
aW9uSGFuZGxlcikKK3sKKyAgICB1aW50NjRfdCBwcmVjb25uZWN0aW9uSWRlbnRpZmllciA9IGdl
bmVyYXRlTG9hZElkZW50aWZpZXIoKTsKKyAgICBhdXRvIGFkZFJlc3VsdCA9IG1fcHJlY29ubmVj
dENvbXBsZXRpb25IYW5kbGVycy5hZGQocHJlY29ubmVjdGlvbklkZW50aWZpZXIsIFdURk1vdmUo
Y29tcGxldGlvbkhhbmRsZXIpKTsKKyAgICBBU1NFUlRfVU5VU0VEKGFkZFJlc3VsdCwgYWRkUmVz
dWx0LmlzTmV3RW50cnkpOworICAgIFdlYlByb2Nlc3M6OnNpbmdsZXRvbigpLm5ldHdvcmtDb25u
ZWN0aW9uKCkuY29ubmVjdGlvbigpLnNlbmQoTWVzc2FnZXM6Ok5ldHdvcmtDb25uZWN0aW9uVG9X
ZWJQcm9jZXNzOjpQcmVjb25uZWN0VG8ocHJlY29ubmVjdGlvbklkZW50aWZpZXIsIHVybCwgc3Rv
cmVkQ3JlZGVudGlhbHNQb2xpY3kpLCAwKTsKK30KKwordm9pZCBXZWJMb2FkZXJTdHJhdGVneTo6
ZGlkRmluaXNoUHJlY29ubmVjdGlvbih1aW50NjRfdCBwcmVjb25uZWN0aW9uSWRlbnRpZmllciwg
UmVzb3VyY2VFcnJvciYmIGVycm9yKQoreworICAgIGlmIChhdXRvIGNvbXBsZXRpb25IYW5kbGVy
ID0gbV9wcmVjb25uZWN0Q29tcGxldGlvbkhhbmRsZXJzLnRha2UocHJlY29ubmVjdGlvbklkZW50
aWZpZXIpKQorICAgICAgICBjb21wbGV0aW9uSGFuZGxlcihXVEZNb3ZlKGVycm9yKSk7Cit9CisK
IHZvaWQgV2ViTG9hZGVyU3RyYXRlZ3k6OnN0b3JlRGVyaXZlZERhdGFUb0NhY2hlKGNvbnN0IFNI
QTE6OkRpZ2VzdCYgYm9keUhhc2gsIGNvbnN0IFN0cmluZyYgdHlwZSwgY29uc3QgU3RyaW5nJiBw
YXJ0aXRpb24sIFdlYkNvcmU6OlNoYXJlZEJ1ZmZlciYgZGF0YSkKIHsKICNpZiBFTkFCTEUoTkVU
V09SS19DQUNIRSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9OZXR3b3Jr
L1dlYkxvYWRlclN0cmF0ZWd5LmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvTmV0d29yay9X
ZWJMb2FkZXJTdHJhdGVneS5oCmluZGV4IDU3MzAyOGU1YTdiNjU3NWEyMzY4MWZmNTAyNjI5NGNl
YTlhODdkMmQuLjQxZmZiZTRhNDEyMmE1ODgzMjgzYzg2ZmY5Mzc4N2IwYWJhN2U5MzcgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9OZXR3b3JrL1dlYkxvYWRlclN0cmF0ZWd5
LmgKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL05ldHdvcmsvV2ViTG9hZGVyU3RyYXRl
Z3kuaApAQCAtNjIsNiArNjIsOSBAQCBwdWJsaWM6CiAgICAgdm9pZCBzdGFydFBpbmdMb2FkKFdl
YkNvcmU6OkZyYW1lJiwgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiwgY29uc3QgV2ViQ29yZTo6
SFRUUEhlYWRlck1hcCYgb3JpZ2luYWxSZXF1ZXN0SGVhZGVycywgY29uc3QgV2ViQ29yZTo6RmV0
Y2hPcHRpb25zJiwgUGluZ0xvYWRDb21wbGV0aW9uSGFuZGxlciYmKSBmaW5hbDsKICAgICB2b2lk
IGRpZEZpbmlzaFBpbmdMb2FkKHVpbnQ2NF90IHBpbmdMb2FkSWRlbnRpZmllciwgV2ViQ29yZTo6
UmVzb3VyY2VFcnJvciYmKTsKIAorICAgIHZvaWQgcHJlY29ubmVjdFRvKGNvbnN0IFdlYkNvcmU6
OlVSTCYsIFdlYkNvcmU6OlN0b3JlZENyZWRlbnRpYWxzUG9saWN5LCBQcmVjb25uZWN0Q29tcGxl
dGlvbkhhbmRsZXImJikgZmluYWw7CisgICAgdm9pZCBkaWRGaW5pc2hQcmVjb25uZWN0aW9uKHVp
bnQ2NF90IHByZWNvbm5lY3Rpb25JZGVudGlmaWVyLCBXZWJDb3JlOjpSZXNvdXJjZUVycm9yJiYp
OworCiAgICAgdm9pZCBzdG9yZURlcml2ZWREYXRhVG9DYWNoZShjb25zdCBTSEExOjpEaWdlc3Qm
IGJvZHlIYXNoLCBjb25zdCBTdHJpbmcmIHR5cGUsIGNvbnN0IFN0cmluZyYgcGFydGl0aW9uLCBX
ZWJDb3JlOjpTaGFyZWRCdWZmZXImKSBmaW5hbDsKIAogICAgIHZvaWQgc2V0Q2FwdHVyZUV4dHJh
TmV0d29ya0xvYWRNZXRyaWNzRW5hYmxlZChib29sKSBmaW5hbDsKQEAgLTg2LDYgKzg5LDcgQEAg
cHJpdmF0ZToKICAgICBIYXNoTWFwPHVuc2lnbmVkIGxvbmcsIFJlZlB0cjxXZWJSZXNvdXJjZUxv
YWRlcj4+IG1fd2ViUmVzb3VyY2VMb2FkZXJzOwogICAgIEhhc2hNYXA8dW5zaWduZWQgbG9uZywg
V2ViVVJMU2NoZW1lVGFza1Byb3h5Kj4gbV91cmxTY2hlbWVUYXNrczsKICAgICBIYXNoTWFwPHVu
c2lnbmVkIGxvbmcsIFBpbmdMb2FkQ29tcGxldGlvbkhhbmRsZXI+IG1fcGluZ0xvYWRDb21wbGV0
aW9uSGFuZGxlcnM7CisgICAgSGFzaE1hcDx1bnNpZ25lZCBsb25nLCBQcmVjb25uZWN0Q29tcGxl
dGlvbkhhbmRsZXI+IG1fcHJlY29ubmVjdENvbXBsZXRpb25IYW5kbGVyczsKIH07CiAKIH0gLy8g
bmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dl
YlBhZ2UvV2ViUGFnZS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQ
YWdlLmNwcAppbmRleCAxZWE3YTNjMmY1YjdhNTgzMTk1NDdlOTZhNzI5MTEzNzUzYjA0YzdkLi4x
NzBlZGY3ZmM0OTdjM2M3NzEwNWZjMDY5MWFkZmJlMDNiZjU1MjNjIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcAorKysgYi9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcApAQCAtMzA5MCw2ICszMDkwLDcgQEAg
dm9pZCBXZWJQYWdlOjp1cGRhdGVQcmVmZXJlbmNlcyhjb25zdCBXZWJQcmVmZXJlbmNlc1N0b3Jl
JiBzdG9yZSkKICAgICBzZXR0aW5ncy5zZXRQYWdpbmF0ZUR1cmluZ0xheW91dEVuYWJsZWQoc3Rv
cmUuZ2V0Qm9vbFZhbHVlRm9yS2V5KFdlYlByZWZlcmVuY2VzS2V5OjpwYWdpbmF0ZUR1cmluZ0xh
eW91dEVuYWJsZWRLZXkoKSkpOwogICAgIHNldHRpbmdzLnNldERPTVBhc3RlQWxsb3dlZChzdG9y
ZS5nZXRCb29sVmFsdWVGb3JLZXkoV2ViUHJlZmVyZW5jZXNLZXk6OmRvbVBhc3RlQWxsb3dlZEtl
eSgpKSk7CiAgICAgc2V0dGluZ3Muc2V0SmF2YVNjcmlwdENhbkFjY2Vzc0NsaXBib2FyZChzdG9y
ZS5nZXRCb29sVmFsdWVGb3JLZXkoV2ViUHJlZmVyZW5jZXNLZXk6OmphdmFTY3JpcHRDYW5BY2Nl
c3NDbGlwYm9hcmRLZXkoKSkpOworICAgIHNldHRpbmdzLnNldExpbmtQcmVjb25uZWN0RW5hYmxl
ZChzdG9yZS5nZXRCb29sVmFsdWVGb3JLZXkoV2ViUHJlZmVyZW5jZXNLZXk6OmxpbmtQcmVjb25u
ZWN0S2V5KCkpKTsKICAgICBzZXR0aW5ncy5zZXRTaG91bGRQcmludEJhY2tncm91bmRzKHN0b3Jl
LmdldEJvb2xWYWx1ZUZvcktleShXZWJQcmVmZXJlbmNlc0tleTo6c2hvdWxkUHJpbnRCYWNrZ3Jv
dW5kc0tleSgpKSk7CiAgICAgc2V0dGluZ3Muc2V0V2ViU2VjdXJpdHlFbmFibGVkKHN0b3JlLmdl
dEJvb2xWYWx1ZUZvcktleShXZWJQcmVmZXJlbmNlc0tleTo6d2ViU2VjdXJpdHlFbmFibGVkS2V5
KCkpKTsKICAgICBzZXR0aW5ncy5zZXRBbGxvd1VuaXZlcnNhbEFjY2Vzc0Zyb21GaWxlVVJMcyhz
dG9yZS5nZXRCb29sVmFsdWVGb3JLZXkoV2ViUHJlZmVyZW5jZXNLZXk6OmFsbG93VW5pdmVyc2Fs
QWNjZXNzRnJvbUZpbGVVUkxzS2V5KCkpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY29u
ZmlnLmggYi9Tb3VyY2UvV2ViS2l0L2NvbmZpZy5oCmluZGV4IGU4NjdmNDg3YzcxODkxNGY0ZDg5
ZjIxOWRhMDM5MWM5NTE3MGI2ZDYuLmNhZjRmZDc3YmNhOTA5ZDdjNjQ5Y2E2N2ExNjE3MWI3OWU0
ZDI3YmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY29uZmlnLmgKKysrIGIvU291cmNlL1dl
YktpdC9jb25maWcuaApAQCAtODgsNiArODgsMTIgQEAKICNlbmRpZgogI2VuZGlmCiAKKyNpZiBV
U0UoTkVUV09SS19TRVNTSU9OKSAmJiAoKFBMQVRGT1JNKE1BQykgJiYgX19NQUNfT1NfWF9WRVJT
SU9OX01JTl9SRVFVSVJFRCA+PSAxMDEzMDApIHx8IChQTEFURk9STShJT1MpICYmIF9fSVBIT05F
X09TX1ZFUlNJT05fTUlOX1JFUVVJUkVEID49IDExMDAwMCkpCisjaWZuZGVmIEVOQUJMRV9TRVJW
RVJfUFJFQ09OTkVDVAorI2RlZmluZSBFTkFCTEVfU0VSVkVSX1BSRUNPTk5FQ1QgMQorI2VuZGlm
CisjZW5kaWYKKwogI2lmbmRlZiBIQVZFX1NFQ19BQ0NFU1NfQ09OVFJPTAogI2lmIFBMQVRGT1JN
KElPUykgfHwgUExBVEZPUk0oTUFDKQogI2RlZmluZSBIQVZFX1NFQ19BQ0NFU1NfQ09OVFJPTCAx
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L1dlYkNvcmVTdXBwb3J0L1dlYlJlc291
cmNlTG9hZFNjaGVkdWxlci5jcHAgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L1dlYkNvcmVTdXBwb3J0
L1dlYlJlc291cmNlTG9hZFNjaGVkdWxlci5jcHAKaW5kZXggNGQyOTg1ZDFhNDMwYmMxYmQ5YmYy
NjNiODllOTgxY2Y2M2M1Y2MzNS4uMzhjOWMzMjcyOWQ4YWVhOThjY2ZhNzVhZDQyN2ViYTliN2Vj
NDUyNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS9XZWJDb3JlU3VwcG9ydC9XZWJS
ZXNvdXJjZUxvYWRTY2hlZHVsZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvV2ViQ29y
ZVN1cHBvcnQvV2ViUmVzb3VyY2VMb2FkU2NoZWR1bGVyLmNwcApAQCAtMzY5LDMgKzM2OSw3IEBA
IHZvaWQgV2ViUmVzb3VyY2VMb2FkU2NoZWR1bGVyOjpzdGFydFBpbmdMb2FkKEZyYW1lJiBmcmFt
ZSwgUmVzb3VyY2VSZXF1ZXN0JiByZXF1CiAgICAgbmV3IFBpbmdIYW5kbGUoZnJhbWUubG9hZGVy
KCkubmV0d29ya2luZ0NvbnRleHQoKSwgcmVxdWVzdCwgb3B0aW9ucy5jcmVkZW50aWFscyAhPSBG
ZXRjaE9wdGlvbnM6OkNyZWRlbnRpYWxzOjpPbWl0LCBQaW5nSGFuZGxlOjpVc2VzQXN5bmNDYWxs
YmFja3M6Ok5vLCBvcHRpb25zLnJlZGlyZWN0ID09IEZldGNoT3B0aW9uczo6UmVkaXJlY3Q6OkZv
bGxvdywgV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcikpOwogfQogCit2b2lkIFdlYlJlc291cmNl
TG9hZFNjaGVkdWxlcjo6cHJlY29ubmVjdFRvKGNvbnN0IFVSTCYsIFN0b3JlZENyZWRlbnRpYWxz
UG9saWN5LCBQcmVjb25uZWN0Q29tcGxldGlvbkhhbmRsZXImJikKK3sKK30KKwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdExlZ2FjeS9XZWJDb3JlU3VwcG9ydC9XZWJSZXNvdXJjZUxvYWRTY2hl
ZHVsZXIuaCBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvV2ViQ29yZVN1cHBvcnQvV2ViUmVzb3VyY2VM
b2FkU2NoZWR1bGVyLmgKaW5kZXggMGUwYzJkZTU3N2M3YzJjZjc3NmE3ZmExNjFkZGRkNmI3NWQx
MDhhNC4uYmVmNmQ4NmEyNjY0M2I4YzliZDhlYzVjZDY2YzU2N2E5OTg2YWU5MyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdExlZ2FjeS9XZWJDb3JlU3VwcG9ydC9XZWJSZXNvdXJjZUxvYWRTY2hl
ZHVsZXIuaAorKysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L1dlYkNvcmVTdXBwb3J0L1dlYlJlc291
cmNlTG9hZFNjaGVkdWxlci5oCkBAIC02MSw2ICs2MSw4IEBAIHB1YmxpYzoKIAogICAgIHZvaWQg
c3RhcnRQaW5nTG9hZChXZWJDb3JlOjpGcmFtZSYsIFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYs
IGNvbnN0IFdlYkNvcmU6OkhUVFBIZWFkZXJNYXAmLCBjb25zdCBXZWJDb3JlOjpGZXRjaE9wdGlv
bnMmLCBQaW5nTG9hZENvbXBsZXRpb25IYW5kbGVyJiYpIGZpbmFsOwogCisgICAgdm9pZCBwcmVj
b25uZWN0VG8oY29uc3QgV2ViQ29yZTo6VVJMJiwgV2ViQ29yZTo6U3RvcmVkQ3JlZGVudGlhbHNQ
b2xpY3ksIFByZWNvbm5lY3RDb21wbGV0aW9uSGFuZGxlciYmKSBmaW5hbDsKKwogICAgIHZvaWQg
c3RvcmVEZXJpdmVkRGF0YVRvQ2FjaGUoY29uc3QgU0hBMTo6RGlnZXN0JiwgY29uc3QgU3RyaW5n
JiwgY29uc3QgU3RyaW5nJiwgV2ViQ29yZTo6U2hhcmVkQnVmZmVyJikgZmluYWwgeyB9CiAKICAg
ICB2b2lkIHNldENhcHR1cmVFeHRyYU5ldHdvcmtMb2FkTWV0cmljc0VuYWJsZWQoYm9vbCkgZmlu
YWwgeyB9CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9D
aGFuZ2VMb2cKaW5kZXggODg3NmU2NzY3NWQ2ZTk2YTM0OTRiNjRlMzNjYmM1YTRiMjVlMmE0Ny4u
OWZjNTZjZWQ3YWRhMzY1ODhiOWI1YmFlZWYzYjA0MTdhMTVmZTMzYiAxMDA2NDQKLS0tIGEvTGF5
b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsx
LDI1IEBACisyMDE3LTA5LTI3ICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAg
ICAgICAgQWRkIHN1cHBvcnQgZm9yIDxsaW5rIHJlbD1wcmVjb25uZWN0PgorICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTc3NDc0CisgICAgICAgIDxyZGFy
Oi8vcHJvYmxlbS8zMzE0MTM4MD4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKworICAgICAgICAqIGZhc3QvZG9tL0hUTUxMaW5rRWxlbWVudC9wcmVjb25uZWN0LXN1cHBv
cnQtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2RvbS9IVE1MTGlua0VsZW1l
bnQvcHJlY29ubmVjdC1zdXBwb3J0Lmh0bWw6IEFkZGVkLgorICAgICAgICAqIGh0dHAvdGVzdHMv
cHJlY29ubmVjdC9saW5rLXJlbC1wcmVjb25uZWN0LWh0dHAtZXhwZWN0ZWQudHh0OiBBZGRlZC4K
KyAgICAgICAgKiBodHRwL3Rlc3RzL3ByZWNvbm5lY3QvbGluay1yZWwtcHJlY29ubmVjdC1odHRw
Lmh0bWw6IEFkZGVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvcHJlY29ubmVjdC9saW5rLXJlbC1w
cmVjb25uZWN0LWh0dHBzLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogaHR0cC90ZXN0
cy9wcmVjb25uZWN0L2xpbmstcmVsLXByZWNvbm5lY3QtaHR0cHMuaHRtbDogQWRkZWQuCisgICAg
ICAgIEFkZCBsYXlvdXQgdGVzdCBjb3ZlcmFnZS4KKworICAgICAgICAqIHBsYXRmb3JtL21hYy1l
bGNhcGl0YW4td2syL2Zhc3QvZG9tL0hUTUxMaW5rRWxlbWVudC9wcmVjb25uZWN0LXN1cHBvcnQt
ZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9tYWMtd2sxL1Rlc3RFeHBl
Y3RhdGlvbnM6CisgICAgICAgICogcGxhdGZvcm0vbWFjLXdrMS9mYXN0L2RvbS9IVE1MTGlua0Vs
ZW1lbnQvcHJlY29ubmVjdC1zdXBwb3J0LWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICog
cGxhdGZvcm0vbWFjLXdrMi9UZXN0RXhwZWN0YXRpb25zOgorICAgICAgICBTa2lwIG9yIGxhbmQg
ZmFpbHVyZSBleHBlY3RhdGlvbnMgZm9yIHBsYXRmb3JtcyB3aGVyZSB0aGUgZmVhdHVyZSBpcyBk
aXNhYmxlZC4KKwogMjAxNy0wOS0yNyAgQW50dGkgS29pdmlzdG8gIDxhbnR0aUBhcHBsZS5jb20+
CiAKICAgICAgICAgUkVHUkVTU0lPTiAocjIyMjA0MCk6IENyYXNoIG5hdmlnYXRpbmcgb3V0IG9m
IGdmeWNhdC5jb20gdXJsCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2RvbS9IVE1MTGlu
a0VsZW1lbnQvcHJlY29ubmVjdC1zdXBwb3J0LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zh
c3QvZG9tL0hUTUxMaW5rRWxlbWVudC9wcmVjb25uZWN0LXN1cHBvcnQtZXhwZWN0ZWQudHh0Cm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAuLmM1YTNmNWQ3MWViMGM0ZDc4ZTMzNDMxYzQ2NmNiOThlNjk4ZDJjZDMKLS0tIC9k
ZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9IVE1MTGlua0VsZW1lbnQvcHJlY29u
bmVjdC1zdXBwb3J0LWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDEyIEBACitUZXN0cyB0aGF0IExp
bmsncyByZWw9cHJlY29ubmVjdCBpcyByZXBvcnRlZCBhcyBzdXBwb3J0ZWQuCisKK09uIHN1Y2Nl
c3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5
ICJURVNUIENPTVBMRVRFIi4KKworCitQQVNTIHRlc3RMaW5rLnJlbExpc3QubGVuZ3RoIGlzIDEK
K1BBU1MgdGVzdExpbmsucmVsTGlzdFswXSBpcyAicHJlY29ubmVjdCIKK1BBU1MgdGVzdExpbmsu
cmVsTGlzdC5zdXBwb3J0cygncHJlY29ubmVjdCcpIGlzIHRydWUKK1BBU1Mgc3VjY2Vzc2Z1bGx5
UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9mYXN0L2RvbS9IVE1MTGlua0VsZW1lbnQvcHJlY29ubmVjdC1zdXBwb3J0Lmh0bWwgYi9MYXlv
dXRUZXN0cy9mYXN0L2RvbS9IVE1MTGlua0VsZW1lbnQvcHJlY29ubmVjdC1zdXBwb3J0Lmh0bWwK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uYjZjZDMxMjA3YWI2NDFjZTAxZDI0MDBiZTNjNzA3YzY1NDE5NzcyYwotLS0g
L2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL0hUTUxMaW5rRWxlbWVudC9wcmVj
b25uZWN0LXN1cHBvcnQuaHRtbApAQCAtMCwwICsxLDE5IEBACis8IURPQ1RZUEUgaHRtbD4KKzxo
dG1sPgorPGhlYWQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QuanMi
Pjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8c2NyaXB0PgorZGVzY3JpcHRpb24oIlRlc3Rz
IHRoYXQgTGluaydzIHJlbD1wcmVjb25uZWN0IGlzIHJlcG9ydGVkIGFzIHN1cHBvcnRlZC4iKTsK
KworY29uc3QgdGVzdExpbmsgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJsaW5rIik7Cit0ZXN0
TGluay5yZWwgPSAicHJlY29ubmVjdCI7Cit0ZXN0TGluay5ocmVmID0gImh0dHA6Ly9sb2NhbGhv
c3Q6ODAwMCI7CisKK3Nob3VsZEJlKCJ0ZXN0TGluay5yZWxMaXN0Lmxlbmd0aCIsICIxIik7Citz
aG91bGRCZUVxdWFsVG9TdHJpbmcoInRlc3RMaW5rLnJlbExpc3RbMF0iLCAicHJlY29ubmVjdCIp
Oworc2hvdWxkQmVUcnVlKCJ0ZXN0TGluay5yZWxMaXN0LnN1cHBvcnRzKCdwcmVjb25uZWN0Jyki
KTsKKzwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
aHR0cC90ZXN0cy9wcmVjb25uZWN0L2xpbmstcmVsLXByZWNvbm5lY3QtaHR0cC1leHBlY3RlZC50
eHQgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3ByZWNvbm5lY3QvbGluay1yZWwtcHJlY29ubmVj
dC1odHRwLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi42ZDA4MDJmM2VlNzM5ZGZhY2QyMjczMGMz
YmViYzUzMDA3MGU2MWI0Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0
cy9wcmVjb25uZWN0L2xpbmstcmVsLXByZWNvbm5lY3QtaHR0cC1leHBlY3RlZC50eHQKQEAgLTAs
MCArMSwxMCBAQAorQ09OU09MRSBNRVNTQUdFOiBTdWNjZXNzZnVseSBwcmVjb25uZWN0ZWQgdG8g
aHR0cDovL2xvY2FsaG9zdDo4MDAwLworVGVzdHMgdGhhdCBMaW5rJ3MgcmVsPXByZWNvbm5lY3Qg
d29ya3MgYXMgZXhwZWN0ZWQgb3ZlciBIVFRQLgorCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUg
YSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIu
CisKKworUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisK
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcHJlY29ubmVjdC9saW5rLXJlbC1w
cmVjb25uZWN0LWh0dHAuaHRtbCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcHJlY29ubmVjdC9s
aW5rLXJlbC1wcmVjb25uZWN0LWh0dHAuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4wYjFlNDMyMmM3MzQ2MWUw
OTUzMjBhMmVkOTdkMDNkM2QzZWFlMWVlCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMv
aHR0cC90ZXN0cy9wcmVjb25uZWN0L2xpbmstcmVsLXByZWNvbm5lY3QtaHR0cC5odG1sCkBAIC0w
LDAgKzEsMjEgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKzxzY3JpcHQgc3Jj
PSIvanMtdGVzdC1yZXNvdXJjZXMvanMtdGVzdC5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9k
eT4KKzxzY3JpcHQ+CitkZXNjcmlwdGlvbigiVGVzdHMgdGhhdCBMaW5rJ3MgcmVsPXByZWNvbm5l
Y3Qgd29ya3MgYXMgZXhwZWN0ZWQgb3ZlciBIVFRQLiIpOworanNUZXN0SXNBc3luYyA9IHRydWU7
CisKK2ludGVybmFscy5zZXRDb25zb2xlTWVzc2FnZUxpc3RlbmVyKGZ1bmN0aW9uKCkgeworICAg
IGZpbmlzaEpTVGVzdCgpOworfSk7CisKK2NvbnN0IHRlc3RMaW5rID0gZG9jdW1lbnQuY3JlYXRl
RWxlbWVudCgibGluayIpOwordGVzdExpbmsucmVsID0gInByZWNvbm5lY3QiOwordGVzdExpbmsu
aHJlZiA9ICJodHRwOi8vbG9jYWxob3N0OjgwMDAiOworZG9jdW1lbnQuaGVhZC5hcHBlbmRDaGls
ZCh0ZXN0TGluayk7Cis8L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2h0dHAvdGVzdHMvcHJlY29ubmVjdC9saW5rLXJlbC1wcmVjb25uZWN0LWh0dHBz
LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcHJlY29ubmVjdC9saW5rLXJl
bC1wcmVjb25uZWN0LWh0dHBzLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4zYzE0ZTIzM2Y3Nzhj
ZjFmODNhZDBmYWExY2QyN2ZkZDJlYzNmYTQ4Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVz
dHMvaHR0cC90ZXN0cy9wcmVjb25uZWN0L2xpbmstcmVsLXByZWNvbm5lY3QtaHR0cHMtZXhwZWN0
ZWQudHh0CkBAIC0wLDAgKzEsMTAgQEAKK0NPTlNPTEUgTUVTU0FHRTogRmFpbGVkIHRvIHByZWNv
bm5lY3QgdG8gaHR0cHM6Ly9sb2NhbGhvc3Q6ODQ0My8uIEVycm9yOiBUaGUgY2VydGlmaWNhdGUg
Zm9yIHRoaXMgc2VydmVyIGlzIGludmFsaWQuIFlvdSBtaWdodCBiZSBjb25uZWN0aW5nIHRvIGEg
c2VydmVyIHRoYXQgaXMgcHJldGVuZGluZyB0byBiZSDigJxsb2NhbGhvc3TigJ0gd2hpY2ggY291
bGQgcHV0IHlvdXIgY29uZmlkZW50aWFsIGluZm9ybWF0aW9uIGF0IHJpc2suCitUZXN0cyB0aGF0
IExpbmsncyByZWw9cHJlY29ubmVjdCB3b3JrcyBhcyBleHBlY3RlZCBvdmVyIEhUVFBTLgorCitP
biBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xs
b3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisKKworUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMg
dHJ1ZQorCitURVNUIENPTVBMRVRFCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVz
dHMvcHJlY29ubmVjdC9saW5rLXJlbC1wcmVjb25uZWN0LWh0dHBzLmh0bWwgYi9MYXlvdXRUZXN0
cy9odHRwL3Rlc3RzL3ByZWNvbm5lY3QvbGluay1yZWwtcHJlY29ubmVjdC1odHRwcy5odG1sCm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAuLmVmZDk0MDA1MjY4MWI5MzhkNDE5ZDM4MDY5NjAyNDM4OTA3M2JkYTIKLS0tIC9k
ZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3ByZWNvbm5lY3QvbGluay1yZWwt
cHJlY29ubmVjdC1odHRwcy5odG1sCkBAIC0wLDAgKzEsMjEgQEAKKzwhRE9DVFlQRSBodG1sPgor
PGh0bWw+Cis8aGVhZD4KKzxzY3JpcHQgc3JjPSIvanMtdGVzdC1yZXNvdXJjZXMvanMtdGVzdC5q
cyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxzY3JpcHQ+CitkZXNjcmlwdGlvbigiVGVz
dHMgdGhhdCBMaW5rJ3MgcmVsPXByZWNvbm5lY3Qgd29ya3MgYXMgZXhwZWN0ZWQgb3ZlciBIVFRQ
Uy4iKTsKK2pzVGVzdElzQXN5bmMgPSB0cnVlOworCitpbnRlcm5hbHMuc2V0Q29uc29sZU1lc3Nh
Z2VMaXN0ZW5lcihmdW5jdGlvbigpIHsKKyAgICBmaW5pc2hKU1Rlc3QoKTsKK30pOworCitjb25z
dCB0ZXN0TGluayA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImxpbmsiKTsKK3Rlc3RMaW5rLnJl
bCA9ICJwcmVjb25uZWN0IjsKK3Rlc3RMaW5rLmhyZWYgPSAiaHR0cHM6Ly9sb2NhbGhvc3Q6ODQ0
MyI7Citkb2N1bWVudC5oZWFkLmFwcGVuZENoaWxkKHRlc3RMaW5rKTsKKzwvc2NyaXB0PgorPC9i
b2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjLWVsY2Fw
aXRhbi13azIvZmFzdC9kb20vSFRNTExpbmtFbGVtZW50L3ByZWNvbm5lY3Qtc3VwcG9ydC1leHBl
Y3RlZC50eHQgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMtZWxjYXBpdGFuLXdrMi9mYXN0L2Rv
bS9IVE1MTGlua0VsZW1lbnQvcHJlY29ubmVjdC1zdXBwb3J0LWV4cGVjdGVkLnR4dApuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwLi4zYTIwNGQ0ZTZhNjBiNjEzYzNlMTZhMTg1NjA4YTJjZDI0OTAyYThjCi0tLSAvZGV2L251
bGwKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjLWVsY2FwaXRhbi13azIvZmFzdC9kb20v
SFRNTExpbmtFbGVtZW50L3ByZWNvbm5lY3Qtc3VwcG9ydC1leHBlY3RlZC50eHQKQEAgLTAsMCAr
MSwxMyBAQAorVGVzdHMgdGhhdCBMaW5rJ3MgcmVsPXByZWNvbm5lY3QgaXMgcmVwb3J0ZWQgYXMg
c3VwcG9ydGVkLgorCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1Mi
IG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisKKworUEFTUyB0ZXN0TGlu
ay5yZWxMaXN0Lmxlbmd0aCBpcyAxCitQQVNTIHRlc3RMaW5rLnJlbExpc3RbMF0gaXMgInByZWNv
bm5lY3QiCitGQUlMIHRlc3RMaW5rLnJlbExpc3Quc3VwcG9ydHMoJ3ByZWNvbm5lY3QnKSBzaG91
bGQgYmUgdHJ1ZS4gV2FzIGZhbHNlLgorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQor
U29tZSB0ZXN0cyBmYWlsZWQuCisKK1RFU1QgQ09NUExFVEUKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvcGxhdGZvcm0vbWFjLXdrMS9UZXN0RXhwZWN0YXRpb25zIGIvTGF5b3V0VGVzdHMvcGxh
dGZvcm0vbWFjLXdrMS9UZXN0RXhwZWN0YXRpb25zCmluZGV4IDgwMzczMzM0ZmVmMGY2ZGU1MjA3
NTU5Y2Q3YzJkOWVjNTI2ZmIwNDMuLmVjZWI3M2U0NDIxNTJhNzk5MTZhOTdjMzk2YmRjNmM0YTFm
N2ZjNDIgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy13azEvVGVzdEV4cGVj
dGF0aW9ucworKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMtd2sxL1Rlc3RFeHBlY3RhdGlv
bnMKQEAgLTM5OSw2ICszOTksOSBAQCBmYXN0L2ltYWdlcy9sb3ctbWVtb3J5LWRlY29kZS5odG1s
IFsgU2tpcCBdCiAKIGh0dHAvdGVzdHMvd29ya2Vycy9zZXJ2aWNlIFsgU2tpcCBdCiAKKyMgTGlu
ayBwcmVjb25uZWN0IGlzIGRpc2FibGVkIG9uIFdlYktpdDEgYmVjYXVzZSBpdCBkb2VzIG5vdCB1
c2UgTkVUV09SS19TRVNTSU9OLgoraHR0cC90ZXN0cy9wcmVjb25uZWN0IFsgU2tpcCBdCisKIHdl
YmtpdC5vcmcvYi8xNzUzNDUgZmFzdC9pbWFnZXMvYW5pbWF0ZWQtZ2lmLXNjcm9sbGluZy1jcmFz
aC5odG1sIFsgUGFzcyBUaW1lb3V0IF0KIAogd2Via2l0Lm9yZy9iLzE3NTU1NCBbIFNpZXJyYSBd
IGZ1bGxzY3JlZW4vZnVsbC1zY3JlZW4taWZyYW1lLWxlZ2FjeS5odG1sIFsgUGFzcyBGYWlsdXJl
IF0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy13azEvZmFzdC9kb20vSFRN
TExpbmtFbGVtZW50L3ByZWNvbm5lY3Qtc3VwcG9ydC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0
cy9wbGF0Zm9ybS9tYWMtd2sxL2Zhc3QvZG9tL0hUTUxMaW5rRWxlbWVudC9wcmVjb25uZWN0LXN1
cHBvcnQtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjNhMjA0ZDRlNmE2MGI2MTNjM2UxNmExODU2
MDhhMmNkMjQ5MDJhOGMKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9t
YWMtd2sxL2Zhc3QvZG9tL0hUTUxMaW5rRWxlbWVudC9wcmVjb25uZWN0LXN1cHBvcnQtZXhwZWN0
ZWQudHh0CkBAIC0wLDAgKzEsMTMgQEAKK1Rlc3RzIHRoYXQgTGluaydzIHJlbD1wcmVjb25uZWN0
IGlzIHJlcG9ydGVkIGFzIHN1cHBvcnRlZC4KKworT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEg
c2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgor
CisKK1BBU1MgdGVzdExpbmsucmVsTGlzdC5sZW5ndGggaXMgMQorUEFTUyB0ZXN0TGluay5yZWxM
aXN0WzBdIGlzICJwcmVjb25uZWN0IgorRkFJTCB0ZXN0TGluay5yZWxMaXN0LnN1cHBvcnRzKCdw
cmVjb25uZWN0Jykgc2hvdWxkIGJlIHRydWUuIFdhcyBmYWxzZS4KK1BBU1Mgc3VjY2Vzc2Z1bGx5
UGFyc2VkIGlzIHRydWUKK1NvbWUgdGVzdHMgZmFpbGVkLgorCitURVNUIENPTVBMRVRFCisKZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy13azIvVGVzdEV4cGVjdGF0aW9ucyBi
L0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy13azIvVGVzdEV4cGVjdGF0aW9ucwppbmRleCAwN2Fi
NDY4ZDEzZGVjZjhkYjYzY2ZlYjg0ZTE3ODFiOTU2YzBhNGM4Li4yOTExMTM5M2FlYmZjZjI0Yzkx
MzdkZGQ1MWJiZGI5ZDQ0ZmE3MjQ5IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9t
YWMtd2syL1Rlc3RFeHBlY3RhdGlvbnMKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjLXdr
Mi9UZXN0RXhwZWN0YXRpb25zCkBAIC03OTMsNiArNzkzLDkgQEAgd2Via2l0Lm9yZy9iLzE3NjEy
MiBtZWRpYS92aWRlby1jb250cm9scy1kcm9wLWFuZC1yZXN0b3JlLXRpbWVsaW5lLmh0bWwgWyBQ
YXNzIEYKICMgPHJkYXI6Ly9wcm9ibGVtLzMzNTU1NzU5PgogWyBIaWdoU2llcnJhKyBdIGh0dHAv
dGVzdHMvbWVkaWEvdmlkZW8tYnVmZmVyZWQtcmFuZ2UtY29udGFpbnMtY3VycmVudFRpbWUuaHRt
bCBbIFBhc3MgSW1hZ2VPbmx5RmFpbHVyZSBdCiAKKyMgTGluayBwcmVjb25uZWN0IGlzIGRpc2Fi
bGVkIG9uIEVsQ2FwaXRhbiBiZWNhdXNlIGl0IGRvZXMgbm90IHVzZSBORVRXT1JLX1NFU1NJT04u
CitbIEVsQ2FwaXRhbiBdIGh0dHAvdGVzdHMvcHJlY29ubmVjdCBbIFNraXAgXQorCiB3ZWJraXQu
b3JnL2IvMTc2NDg2IFsgRWxDYXBpdGFuIERlYnVnIF0gaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy9iYWNrZ3JvdW5kLWZldGNoL2ludGVyZmFjZXMtd29ya2VyLmh0dHBzLmh0bWwgWyBQ
YXNzIEZhaWx1cmUgXQogCiB3ZWJraXQub3JnL2IvMTcxODM5IFsgRGVidWcgXSB0aWxlZC1kcmF3
aW5nL3Njcm9sbGluZy9zY3JvbGwtc25hcC9zY3JvbGwtc25hcC1tYW5kYXRvcnktbWFpbmZyYW1l
LXZlcnRpY2FsLXRoZW4taG9yaXpvbnRhbC5odG1sIFsgUGFzcyBGYWlsdXJlIF0K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>322040</attachid>
            <date>2017-09-27 16:30:09 -0700</date>
            <delta_ts>2017-09-28 09:16:22 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-177474-20170927163008.patch</filename>
            <type>text/plain</type>
            <size>84820</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjIyNTU2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZmYxMjUwZDgyMmIwOTli
NzVjYjVhZjVlMGUwNDliODdhNTZmYzdkYS4uM2YxODM1ZTNlN2M1MWY1ODM3NGFlMzc4MjNjZGZj
YjNhZjk2MmNmOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDU5IEBACisyMDE3LTA5LTI3ICBDaHJp
cyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgQWRkIHN1cHBvcnQgZm9yIDxs
aW5rIHJlbD1wcmVjb25uZWN0PgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9MTc3NDc0CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS8zMzE0MTM4MD4KKwor
ICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGQgc3VwcG9y
dCBmb3IgPGxpbmsgcmVsPXByZWNvbm5lY3Q+OgorICAgICAgICAtIGh0dHBzOi8vdzNjLmdpdGh1
Yi5pby9yZXNvdXJjZS1oaW50cy8jcHJlY29ubmVjdAorCisgICAgICAgIEl0IGlzIGN1cnJlbnRs
eSBvbmx5IGVuYWJsZWQgZm9yIFdLMiBvbiBNYWNPUyBIaWdoIFNpZXJyYSsKKyAgICAgICAgYW5k
IGlPUyAxMSsuCisKKyAgICAgICAgVGVzdHM6IGZhc3QvZG9tL0hUTUxMaW5rRWxlbWVudC9wcmVj
b25uZWN0LXN1cHBvcnQuaHRtbAorICAgICAgICAgICAgICAgaHR0cC90ZXN0cy9wcmVjb25uZWN0
L2xpbmstcmVsLXByZWNvbm5lY3QtaHR0cC5odG1sCisgICAgICAgICAgICAgICBodHRwL3Rlc3Rz
L3ByZWNvbm5lY3QvbGluay1yZWwtcHJlY29ubmVjdC1odHRwcy5odG1sCisKKyAgICAgICAgKiBi
aW5kaW5ncy9qcy9KU0RPTUV4Y2VwdGlvbkhhbmRsaW5nLmg6CisgICAgICAgICogYmluZGluZ3Mv
c2NyaXB0cy9Db2RlR2VuZXJhdG9ySlMucG06CisgICAgICAgIChHZW5lcmF0ZUNhbGxiYWNrSGVh
ZGVyQ29udGVudCk6CisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy9JRExBdHRyaWJ1dGVzLmpz
b246CisgICAgICAgICogZG9tL0RvY3VtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkRvY3Vt
ZW50OjphZGRDb25zb2xlTWVzc2FnZSk6CisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVudDo6c2V0
Q29uc29sZU1lc3NhZ2VMaXN0ZW5lcik6CisgICAgICAgICogZG9tL0RvY3VtZW50Lmg6CisgICAg
ICAgICogZG9tL1N0cmluZ0NhbGxiYWNrLmlkbDoKKyAgICAgICAgKiBodG1sL0RPTVRva2VuTGlz
dC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpET01Ub2tlbkxpc3Q6OkRPTVRva2VuTGlzdCk6Cisg
ICAgICAgIChXZWJDb3JlOjpET01Ub2tlbkxpc3Q6OnN1cHBvcnRzKToKKyAgICAgICAgKiBodG1s
L0RPTVRva2VuTGlzdC5oOgorICAgICAgICAoV2ViQ29yZTo6RE9NVG9rZW5MaXN0OjpET01Ub2tl
bkxpc3QpOgorICAgICAgICAqIGh0bWwvSFRNTEFuY2hvckVsZW1lbnQuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6SFRNTEFuY2hvckVsZW1lbnQ6OnJlbExpc3QpOgorICAgICAgICAqIGh0bWwvSFRN
TElGcmFtZUVsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SFRNTElGcmFtZUVsZW1lbnQ6
OnNhbmRib3gpOgorICAgICAgICAqIGh0bWwvSFRNTExpbmtFbGVtZW50LmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OkhUTUxMaW5rRWxlbWVudDo6cGFyc2VBdHRyaWJ1dGUpOgorICAgICAgICAoV2Vi
Q29yZTo6SFRNTExpbmtFbGVtZW50OjpyZWxMaXN0KToKKyAgICAgICAgKiBodG1sL0xpbmtSZWxB
dHRyaWJ1dGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6TGlua1JlbEF0dHJpYnV0ZTo6TGlua1Jl
bEF0dHJpYnV0ZSk6CisgICAgICAgIChXZWJDb3JlOjpMaW5rUmVsQXR0cmlidXRlOjppc1N1cHBv
cnRlZCk6CisgICAgICAgICogaHRtbC9MaW5rUmVsQXR0cmlidXRlLmg6CisgICAgICAgICogaHRt
bC9wYXJzZXIvSFRNTFByZWxvYWRTY2FubmVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlRva2Vu
UHJlbG9hZFNjYW5uZXI6OlN0YXJ0VGFnU2Nhbm5lcjo6cHJvY2Vzc0F0dHJpYnV0ZSk6CisgICAg
ICAgICogbG9hZGVyL0xpbmtMb2FkZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6TGlua0xvYWRl
cjo6bG9hZExpbmtzRnJvbUhlYWRlcik6CisgICAgICAgIChXZWJDb3JlOjpMaW5rTG9hZGVyOjps
b2FkTGluayk6CisgICAgICAgICogbG9hZGVyL0xvYWRlclN0cmF0ZWd5Lmg6CisgICAgICAgICog
cGFnZS9TZXR0aW5ncy5pbjoKKyAgICAgICAgKiB0ZXN0aW5nL0ludGVybmFscy5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpJbnRlcm5hbHM6OkludGVybmFscyk6CisgICAgICAgIChXZWJDb3JlOjpJ
bnRlcm5hbHM6OnNldENvbnNvbGVNZXNzYWdlTGlzdGVuZXIpOgorICAgICAgICAqIHRlc3Rpbmcv
SW50ZXJuYWxzLmg6CisgICAgICAgICogdGVzdGluZy9JbnRlcm5hbHMuaWRsOgorCiAyMDE3LTA5
LTI3ICBEYXZpZCBIeWF0dCAgPGh5YXR0QGFwcGxlLmNvbT4KIAogICAgICAgICBSZW5hbWUgIlJl
Z2lvbiIgdG8gIkZyYWdtZW50IiBmb3IgUmVuZGVyUmVnaW9uIGFuZCBhc3NvY2lhdGVkIGNsYXNz
ZXMvbWV0aG9kcy4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1BBTC9DaGFuZ2VMb2cgYi9T
b3VyY2UvV2ViQ29yZS9QQUwvQ2hhbmdlTG9nCmluZGV4IGU2MWMwZTg0MTVmNDhhYzQ0ODc3ZThk
YTQ0NGIwMzdjY2U2OWJiNzYuLjdlMjk3MmFhZWE4MzZhYzlhZTk0Y2M4MDBjZTQ0MDdhZDdiMmM5
YmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1BBTC9DaGFuZ2VMb2cKKysrIGIvU291cmNl
L1dlYkNvcmUvUEFML0NoYW5nZUxvZwpAQCAtMSwzICsxLDE1IEBACisyMDE3LTA5LTI2ICBDaHJp
cyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgQWRkIHN1cHBvcnQgZm9yIDxs
aW5rIHJlbD1wcmVjb25uZWN0PgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9MTc3NDc0CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS8zMzE0MTM4MD4KKwor
ICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGQgbmV3IENG
TmV0d29yayBTUEkgZm9yIHByZWNvbm5lY3RpbmcuCisKKyAgICAgICAgKiBwYWwvc3BpL2NmL0NG
TmV0d29ya1NQSS5oOgorCiAyMDE3LTA5LTI2ICBEb24gT2xtc3RlYWQgIDxkb24ub2xtc3RlYWRA
c29ueS5jb20+CiAKICAgICAgICAgW1BBTF1bQ01ha2VdIEluY2x1ZGUgSUNVIGRpcmVjdG9yaWVz
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hh
bmdlTG9nCmluZGV4IDMxY2JiYTE0NTMxMGJhODY4ZTY2OTg2YzgzYTQwOTg4YzdkZWZlOWQuLmRk
MGI3ODZjNzY4MzZiMGFlYTJkMjAwMTMyYWNiN2VkMDVjZTA2ZjAgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMg
KzEsNzEgQEAKKzIwMTctMDktMjYgIENocmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KKwor
ICAgICAgICBBZGQgc3VwcG9ydCBmb3IgPGxpbmsgcmVsPXByZWNvbm5lY3Q+CisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNzc0NzQKKyAgICAgICAgPHJk
YXI6Ly9wcm9ibGVtLzMzMTQxMzgwPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09Q
UyEpLgorCisgICAgICAgIEFkZCBzdXBwb3J0IGZvciA8bGluayByZWw9cHJlY29ubmVjdD46Cisg
ICAgICAgIC0gaHR0cHM6Ly93M2MuZ2l0aHViLmlvL3Jlc291cmNlLWhpbnRzLyNwcmVjb25uZWN0
CisKKyAgICAgICAgQWxzbyBhZGQgY29ycmVzcG9uZGluZyBuYXRpdmUgcHJpdmF0ZSBBUEkuCisK
KyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9OZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5j
cHA6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzOjpwcmVj
b25uZWN0VG8pOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vz
czo6ZGlkRmluaXNoUHJlY29ubmVjdGlvbik6CisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvTmV0
d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuaDoKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9O
ZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5tZXNzYWdlcy5pbjoKKyAgICAgICAgKiBOZXR3
b3JrUHJvY2Vzcy9OZXR3b3JrRGF0YVRhc2suY3BwOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3Jr
RGF0YVRhc2s6OmNyZWF0ZSk6CisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvTmV0d29ya0xvYWRQ
YXJhbWV0ZXJzLmg6CisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MuY3Bw
OgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrUHJvY2Vzczo6cHJlY29ubmVjdFRvKToKKyAgICAg
ICAgKiBOZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5oOgorICAgICAgICAqIE5ldHdvcmtQ
cm9jZXNzL05ldHdvcmtQcm9jZXNzLm1lc3NhZ2VzLmluOgorICAgICAgICAqIE5ldHdvcmtQcm9j
ZXNzL1ByZWNvbm5lY3RUYXNrLmNwcDogQWRkZWQuCisgICAgICAgIChXZWJLaXQ6OlByZWNvbm5l
Y3RUYXNrOjpQcmVjb25uZWN0VGFzayk6CisgICAgICAgIChXZWJLaXQ6OlByZWNvbm5lY3RUYXNr
Ojp+UHJlY29ubmVjdFRhc2spOgorICAgICAgICAoV2ViS2l0OjpQcmVjb25uZWN0VGFzazo6d2ls
bFBlcmZvcm1IVFRQUmVkaXJlY3Rpb24pOgorICAgICAgICAoV2ViS2l0OjpQcmVjb25uZWN0VGFz
azo6ZGlkUmVjZWl2ZUNoYWxsZW5nZSk6CisgICAgICAgIChXZWJLaXQ6OlByZWNvbm5lY3RUYXNr
OjpkaWRSZWNlaXZlUmVzcG9uc2VOZXR3b3JrU2Vzc2lvbik6CisgICAgICAgIChXZWJLaXQ6OlBy
ZWNvbm5lY3RUYXNrOjpkaWRSZWNlaXZlRGF0YSk6CisgICAgICAgIChXZWJLaXQ6OlByZWNvbm5l
Y3RUYXNrOjpkaWRDb21wbGV0ZVdpdGhFcnJvcik6CisgICAgICAgIChXZWJLaXQ6OlByZWNvbm5l
Y3RUYXNrOjpkaWRTZW5kRGF0YSk6CisgICAgICAgIChXZWJLaXQ6OlByZWNvbm5lY3RUYXNrOjp3
YXNCbG9ja2VkKToKKyAgICAgICAgKFdlYktpdDo6UHJlY29ubmVjdFRhc2s6OmNhbm5vdFNob3dV
UkwpOgorICAgICAgICAoV2ViS2l0OjpQcmVjb25uZWN0VGFzazo6ZGlkRmluaXNoKToKKyAgICAg
ICAgKiBOZXR3b3JrUHJvY2Vzcy9QcmVjb25uZWN0VGFzay5oOiBDb3BpZWQgZnJvbSBTb3VyY2Uv
V2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtMb2FkUGFyYW1ldGVycy5oLgorICAgICAgICAq
IE5ldHdvcmtQcm9jZXNzL2NvY29hL05ldHdvcmtEYXRhVGFza0NvY29hLmg6CisgICAgICAgICog
TmV0d29ya1Byb2Nlc3MvY29jb2EvTmV0d29ya0RhdGFUYXNrQ29jb2EubW06CisgICAgICAgIChX
ZWJLaXQ6Ok5ldHdvcmtEYXRhVGFza0NvY29hOjpOZXR3b3JrRGF0YVRhc2tDb2NvYSk6CisgICAg
ICAgICogU2hhcmVkL1dlYkNvcmVBcmd1bWVudENvZGVycy5oOgorICAgICAgICAqIFNoYXJlZC9X
ZWJQcmVmZXJlbmNlc0RlZmluaXRpb25zLmg6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9DL1dL
Q29udGV4dC5jcHA6CisgICAgICAgIChXS0NvbnRleHRQcmVjb25uZWN0VG9TZXJ2ZXIpOgorICAg
ICAgICAqIFVJUHJvY2Vzcy9BUEkvQy9XS0NvbnRleHRQcml2YXRlLmg6CisgICAgICAgICogVUlQ
cm9jZXNzL0FQSS9Db2NvYS9XS1Byb2Nlc3NQb29sLm1tOgorICAgICAgICAoLVtXS1Byb2Nlc3NQ
b29sIF9wcmVjb25uZWN0VG9TZXJ2ZXI6XSk6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9Db2Nv
YS9XS1Byb2Nlc3NQb29sUHJpdmF0ZS5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQcm9jZXNz
UG9vbC5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3NQb29sOjpwcmVjb25uZWN0VG9T
ZXJ2ZXIpOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQcm9jZXNzUG9vbC5oOgorICAgICAgICAq
IFdlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAqIFdlYlByb2Nlc3Mv
TmV0d29yay9OZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb24uY3BwOgorICAgICAgICAoV2ViS2l0OjpO
ZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb246OmRpZEZpbmlzaFByZWNvbm5lY3Rpb24pOgorICAgICAg
ICAqIFdlYlByb2Nlc3MvTmV0d29yay9OZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb24uaDoKKyAgICAg
ICAgKiBXZWJQcm9jZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uLm1lc3NhZ2Vz
LmluOgorICAgICAgICAqIFdlYlByb2Nlc3MvTmV0d29yay9XZWJMb2FkZXJTdHJhdGVneS5jcHA6
CisgICAgICAgIChXZWJLaXQ6OldlYkxvYWRlclN0cmF0ZWd5OjpuZXR3b3JrUHJvY2Vzc0NyYXNo
ZWQpOgorICAgICAgICAoV2ViS2l0OjpnZW5lcmF0ZUxvYWRJZGVudGlmaWVyKToKKyAgICAgICAg
KFdlYktpdDo6V2ViTG9hZGVyU3RyYXRlZ3k6OnN0YXJ0UGluZ0xvYWQpOgorICAgICAgICAoV2Vi
S2l0OjpXZWJMb2FkZXJTdHJhdGVneTo6cHJlY29ubmVjdFRvKToKKyAgICAgICAgKFdlYktpdDo6
V2ViTG9hZGVyU3RyYXRlZ3k6OmRpZEZpbmlzaFByZWNvbm5lY3Rpb24pOgorICAgICAgICAqIFdl
YlByb2Nlc3MvTmV0d29yay9XZWJMb2FkZXJTdHJhdGVneS5oOgorICAgICAgICAqIFdlYlByb2Nl
c3MvV2ViUGFnZS9XZWJQYWdlLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZTo6dXBkYXRl
UHJlZmVyZW5jZXMpOgorICAgICAgICAqIGNvbmZpZy5oOgorCiAyMDE3LTA5LTI2ICBBbGV4IENo
cmlzdGVuc2VuICA8YWNocmlzdGVuc2VuQHdlYmtpdC5vcmc+CiAKICAgICAgICAgUGFzcyBhIGNv
bXBsZXRpb24gaGFuZGxlciBpbnN0ZWFkIG9mIGEgV2ViRnJhbWVQb2xpY3lMaXN0ZW5lclByb3h5
IGR1cmluZyBwb2xpY3kgZGVjaXNpb25zCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5
L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvQ2hhbmdlTG9nCmluZGV4IGY4MjUwMzY2
MGMxNGQ3ZmVkNGNkMzY5ZmYwNTVlOGU0MzkyM2M3NDUuLjBjYTFlNjc3YTg2ZWFhNWFjM2VhZTJj
NmYxODk0Y2MxMjAxMTZhZjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvQ2hhbmdl
TG9nCisrKyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTUgQEAK
KzIwMTctMDktMjYgIENocmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KKworICAgICAgICBB
ZGQgc3VwcG9ydCBmb3IgPGxpbmsgcmVsPXByZWNvbm5lY3Q+CisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNzc0NzQKKyAgICAgICAgPHJkYXI6Ly9wcm9i
bGVtLzMzMTQxMzgwPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisg
ICAgICAgICogV2ViQ29yZVN1cHBvcnQvV2ViUmVzb3VyY2VMb2FkU2NoZWR1bGVyLmNwcDoKKyAg
ICAgICAgKFdlYlJlc291cmNlTG9hZFNjaGVkdWxlcjo6cHJlY29ubmVjdFRvKToKKyAgICAgICAg
KiBXZWJDb3JlU3VwcG9ydC9XZWJSZXNvdXJjZUxvYWRTY2hlZHVsZXIuaDoKKwogMjAxNy0wOS0y
NiAgUGVyIEFybmUgVm9sbGFuICA8cHZvbGxhbkBhcHBsZS5jb20+CiAKICAgICAgICAgW1dpbl0g
V2ViS2l0Q09NQVBJLmggaXMgbm90IGNvcGllZCBhZnRlciBidWlsZCBoYXMgZmluaXNoZWQuCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL3NwaS9jZi9DRk5ldHdvcmtTUEkuaCBi
L1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvc3BpL2NmL0NGTmV0d29ya1NQSS5oCmluZGV4IDNlNTg0
M2VhZDViNDNjNTM4ODNkZjgxYjY0MGM5Y2Y0MzU4NDdlZjMuLjY4MWRiYmIzYjgwMzJkOTJiYTU1
OWJkMTc0NDI5Yjk0MTA2NGIyOWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwv
c3BpL2NmL0NGTmV0d29ya1NQSS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvc3BpL2Nm
L0NGTmV0d29ya1NQSS5oCkBAIC0xMTMsNiArMTEzLDEyIEBAIHR5cGVkZWYgdm9pZCAoXkNGQ2Fj
aGVkVVJMUmVzcG9uc2VDYWxsQmFja0Jsb2NrKShDRkNhY2hlZFVSTFJlc3BvbnNlUmVmKTsKIC0g
KE5TRGljdGlvbmFyeSAqKV90aW1pbmdEYXRhOwogQGVuZAogCisjaWYgKFBMQVRGT1JNKE1BQykg
JiYgX19NQUNfT1NfWF9WRVJTSU9OX01JTl9SRVFVSVJFRCA+PSAxMDEzMDApIHx8IChQTEFURk9S
TShJT1MpICYmIF9fSVBIT05FX09TX1ZFUlNJT05fTUlOX1JFUVVJUkVEID49IDExMDAwMCkKK0Bp
bnRlcmZhY2UgTlNVUkxTZXNzaW9uVGFzayAoUmVzb3VyY2VIaW50cykKK0Bwcm9wZXJ0eSAobm9u
YXRvbWljLCBhc3NpZ24pIEJPT0wgX3ByZWNvbm5lY3Q7CitAZW5kCisjZW5kaWYKKwogQGludGVy
ZmFjZSBOU0hUVFBDb29raWUgKCkKIC0gKENGSFRUUENvb2tpZVJlZilfQ0ZIVFRQQ29va2llOwog
KyAoQ0ZBcnJheVJlZiBfX251bGxhYmxlKV9uczJjZkNvb2tpZXM6KE5TQXJyYXkgKiBfX251bGxh
YmxlKW5zQ29va2llcyBDRl9SRVRVUk5TX1JFVEFJTkVEOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvYmluZGluZ3MvanMvSlNET01FeGNlcHRpb25IYW5kbGluZy5oIGIvU291cmNlL1dlYkNv
cmUvYmluZGluZ3MvanMvSlNET01FeGNlcHRpb25IYW5kbGluZy5oCmluZGV4IDI4MDhjOGZmMDEy
YWNhZWM4MTJlYTJhMmEwMmE4YTc0OWQwZTI4NzkuLmU2ZDc1MzFhM2ZmMDYyNDhhOGZkMTFmYjM3
MTQ3NDBjNWE1Yjc3M2IgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pT
RE9NRXhjZXB0aW9uSGFuZGxpbmcuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9K
U0RPTUV4Y2VwdGlvbkhhbmRsaW5nLmgKQEAgLTYyLDcgKzYyLDcgQEAgV0VCQ09SRV9FWFBPUlQg
dm9pZCB0aHJvd1NlcXVlbmNlVHlwZUVycm9yKEpTQzo6RXhlY1N0YXRlJiwgSlNDOjpUaHJvd1Nj
b3BlJik7CiB2b2lkIHRocm93VHlwZU1pc21hdGNoRXJyb3IoSlNDOjpFeGVjU3RhdGUmLCBKU0M6
OlRocm93U2NvcGUmKTsKIAogV0VCQ09SRV9FWFBPUlQgSlNDOjpFbmNvZGVkSlNWYWx1ZSB0aHJv
d0FyZ3VtZW50TXVzdEJlRW51bUVycm9yKEpTQzo6RXhlY1N0YXRlJiwgSlNDOjpUaHJvd1Njb3Bl
JiwgdW5zaWduZWQgYXJndW1lbnRJbmRleCwgY29uc3QgY2hhciogYXJndW1lbnROYW1lLCBjb25z
dCBjaGFyKiBmdW5jdGlvbkludGVyZmFjZU5hbWUsIGNvbnN0IGNoYXIqIGZ1bmN0aW9uTmFtZSwg
Y29uc3QgY2hhciogZXhwZWN0ZWRWYWx1ZXMpOwotSlNDOjpFbmNvZGVkSlNWYWx1ZSB0aHJvd0Fy
Z3VtZW50TXVzdEJlRnVuY3Rpb25FcnJvcihKU0M6OkV4ZWNTdGF0ZSYsIEpTQzo6VGhyb3dTY29w
ZSYsIHVuc2lnbmVkIGFyZ3VtZW50SW5kZXgsIGNvbnN0IGNoYXIqIGFyZ3VtZW50TmFtZSwgY29u
c3QgY2hhciogZnVuY3Rpb25JbnRlcmZhY2VOYW1lLCBjb25zdCBjaGFyKiBmdW5jdGlvbk5hbWUp
OworV0VCQ09SRV9FWFBPUlQgSlNDOjpFbmNvZGVkSlNWYWx1ZSB0aHJvd0FyZ3VtZW50TXVzdEJl
RnVuY3Rpb25FcnJvcihKU0M6OkV4ZWNTdGF0ZSYsIEpTQzo6VGhyb3dTY29wZSYsIHVuc2lnbmVk
IGFyZ3VtZW50SW5kZXgsIGNvbnN0IGNoYXIqIGFyZ3VtZW50TmFtZSwgY29uc3QgY2hhciogZnVu
Y3Rpb25JbnRlcmZhY2VOYW1lLCBjb25zdCBjaGFyKiBmdW5jdGlvbk5hbWUpOwogV0VCQ09SRV9F
WFBPUlQgSlNDOjpFbmNvZGVkSlNWYWx1ZSB0aHJvd0FyZ3VtZW50VHlwZUVycm9yKEpTQzo6RXhl
Y1N0YXRlJiwgSlNDOjpUaHJvd1Njb3BlJiwgdW5zaWduZWQgYXJndW1lbnRJbmRleCwgY29uc3Qg
Y2hhciogYXJndW1lbnROYW1lLCBjb25zdCBjaGFyKiBmdW5jdGlvbkludGVyZmFjZU5hbWUsIGNv
bnN0IGNoYXIqIGZ1bmN0aW9uTmFtZSwgY29uc3QgY2hhciogZXhwZWN0ZWRUeXBlKTsKIFdFQkNP
UkVfRVhQT1JUIEpTQzo6RW5jb2RlZEpTVmFsdWUgdGhyb3dSZXF1aXJlZE1lbWJlclR5cGVFcnJv
cihKU0M6OkV4ZWNTdGF0ZSYsIEpTQzo6VGhyb3dTY29wZSYsIGNvbnN0IGNoYXIqIG1lbWJlck5h
bWUsIGNvbnN0IGNoYXIqIGRpY3Rpb25hcnlOYW1lLCBjb25zdCBjaGFyKiBleHBlY3RlZFR5cGUp
OwogSlNDOjpFbmNvZGVkSlNWYWx1ZSB0aHJvd0NvbnN0cnVjdG9yU2NyaXB0RXhlY3V0aW9uQ29u
dGV4dFVuYXZhaWxhYmxlRXJyb3IoSlNDOjpFeGVjU3RhdGUmLCBKU0M6OlRocm93U2NvcGUmLCBj
b25zdCBjaGFyKiBpbnRlcmZhY2VOYW1lKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Jp
bmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvckpTLnBtIGIvU291cmNlL1dlYkNvcmUvYmluZGlu
Z3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9ySlMucG0KaW5kZXggNjYyNDNjNTBlNzQ2ZDJkNDI2MTJi
OTVkYTcwYzE2ODdkOTQyMDUyNS4uYzVhODdjMjkwZTNjOTVkMTE4YTYzNzVkYTUwMGY5ZjA1NTMw
ZWY4NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2Vu
ZXJhdG9ySlMucG0KKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2Vu
ZXJhdG9ySlMucG0KQEAgLTU4MTgsNyArNTgxOCw5IEBAIHN1YiBHZW5lcmF0ZUNhbGxiYWNrSGVh
ZGVyQ29udGVudAogICAgICRpbmNsdWRlc1JlZi0+eyI8d3RmL0ZvcndhcmQuaD4ifSA9IDE7CiAg
ICAgJGluY2x1ZGVzUmVmLT57IiR7bmFtZX0uaCJ9ID0gMTsKIAotICAgIHB1c2goQCRjb250ZW50
UmVmLCAiY2xhc3MgJGNsYXNzTmFtZSBmaW5hbCA6IHB1YmxpYyAke25hbWV9IHtcbiIpOworICAg
IG15ICRleHBvcnRNYWNybyA9IEdldEV4cG9ydE1hY3JvRm9ySlNDbGFzcygkaW50ZXJmYWNlT3JD
YWxsYmFjayk7CisKKyAgICBwdXNoKEAkY29udGVudFJlZiwgImNsYXNzICRleHBvcnRNYWNybyRj
bGFzc05hbWUgZmluYWwgOiBwdWJsaWMgJHtuYW1lfSB7XG4iKTsKICAgICBwdXNoKEAkY29udGVu
dFJlZiwgInB1YmxpYzpcbiIpOwogCiAgICAgIyBUaGUgc3RhdGljIGNyZWF0ZSgpIG1ldGhvZC4K
QEAgLTU4NzUsNyArNTg3Nyw3IEBAIHN1YiBHZW5lcmF0ZUNhbGxiYWNrSGVhZGVyQ29udGVudAog
ICAgIHB1c2goQCRjb250ZW50UmVmLCAifTtcblxuIik7CiAKICAgICAjIHRvSlMoKS4KLSAgICBw
dXNoKEAkY29udGVudFJlZiwgIkpTQzo6SlNWYWx1ZSB0b0pTKCR7bmFtZX0mKTtcbiIpOworICAg
IHB1c2goQCRjb250ZW50UmVmLCAkZXhwb3J0TWFjcm8gLiAiSlNDOjpKU1ZhbHVlIHRvSlMoJHtu
YW1lfSYpO1xuIik7CiAgICAgcHVzaChAJGNvbnRlbnRSZWYsICJpbmxpbmUgSlNDOjpKU1ZhbHVl
IHRvSlMoJHtuYW1lfSogaW1wbCkgeyByZXR1cm4gaW1wbCA/IHRvSlMoKmltcGwpIDogSlNDOjpq
c051bGwoKTsgfVxuXG4iKTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGlu
Z3Mvc2NyaXB0cy9JRExBdHRyaWJ1dGVzLmpzb24gYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9z
Y3JpcHRzL0lETEF0dHJpYnV0ZXMuanNvbgppbmRleCA1NzlhMDlhOTBhNTFmMzIwMjE1YWQzZGNj
YmU5ODk3NDNiZDdhNjkwLi43Y2U0OGU2MWYwZThhZjQ5OWU2ZTA2M2M2YjNlOWE4ZDA0ZmYyMDlm
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0lETEF0dHJpYnV0
ZXMuanNvbgorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0lETEF0dHJpYnV0
ZXMuanNvbgpAQCAtMTg2LDcgKzE4Niw3IEBACiAgICAgICAgICAgICB9CiAgICAgICAgIH0sCiAg
ICAgICAgICJFeHBvcnRNYWNybyI6IHsKLSAgICAgICAgICAgICJjb250ZXh0c0FsbG93ZWQiOiBb
ImludGVyZmFjZSIsICJkaWN0aW9uYXJ5IiwgImVudW0iXSwKKyAgICAgICAgICAgICJjb250ZXh0
c0FsbG93ZWQiOiBbImludGVyZmFjZSIsICJkaWN0aW9uYXJ5IiwgImVudW0iLCAiY2FsbGJhY2st
ZnVuY3Rpb24iXSwKICAgICAgICAgICAgICJ2YWx1ZXMiOiBbIldFQkNPUkVfRVhQT1JUIiwgIldF
QkNPUkVfVEVTVFNVUFBPUlRfRVhQT1JUIl0KICAgICAgICAgfSwKICAgICAgICAgIkV4cG9ydFRv
V3JhcHBlZEZ1bmN0aW9uIjogewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0RvY3Vt
ZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAKaW5kZXggMjg0NTE0OTZh
NTc4NDYwNmMzNTdjYWZkMThlZDA2MjUyZmE1Nzc2ZC4uM2VmNTQ0YTJjMDBmMDk2MTg1Zjk3Mjlm
NDBiNjBhYmY1NjdkZDRjMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwCkBAIC0xNzMsNiArMTcz
LDcgQEAKICNpbmNsdWRlICJTaGFkb3dSb290LmgiCiAjaW5jbHVkZSAiU29ja2V0UHJvdmlkZXIu
aCIKICNpbmNsdWRlICJTdG9yYWdlRXZlbnQuaCIKKyNpbmNsdWRlICJTdHJpbmdDYWxsYmFjay5o
IgogI2luY2x1ZGUgIlN0eWxlUHJvcGVydGllcy5oIgogI2luY2x1ZGUgIlN0eWxlUmVzb2x2ZUZv
ckRvY3VtZW50LmgiCiAjaW5jbHVkZSAiU3R5bGVSZXNvbHZlci5oIgpAQCAtNTYxMSw2ICs1NjEy
LDkgQEAgdm9pZCBEb2N1bWVudDo6YWRkQ29uc29sZU1lc3NhZ2UoTWVzc2FnZVNvdXJjZSBzb3Vy
Y2UsIE1lc3NhZ2VMZXZlbCBsZXZlbCwgY29uc3QKIAogICAgIGlmIChQYWdlKiBwYWdlID0gdGhp
cy0+cGFnZSgpKQogICAgICAgICBwYWdlLT5jb25zb2xlKCkuYWRkTWVzc2FnZShzb3VyY2UsIGxl
dmVsLCBtZXNzYWdlLCByZXF1ZXN0SWRlbnRpZmllciwgdGhpcyk7CisKKyAgICBpZiAobV9jb25z
b2xlTWVzc2FnZUxpc3RlbmVyKQorICAgICAgICBtX2NvbnNvbGVNZXNzYWdlTGlzdGVuZXItPnNj
aGVkdWxlQ2FsbGJhY2soKnRoaXMsIG1lc3NhZ2UpOwogfQogCiB2b2lkIERvY3VtZW50OjphZGRN
ZXNzYWdlKE1lc3NhZ2VTb3VyY2Ugc291cmNlLCBNZXNzYWdlTGV2ZWwgbGV2ZWwsIGNvbnN0IFN0
cmluZyYgbWVzc2FnZSwgY29uc3QgU3RyaW5nJiBzb3VyY2VVUkwsIHVuc2lnbmVkIGxpbmVOdW1i
ZXIsIHVuc2lnbmVkIGNvbHVtbk51bWJlciwgUmVmUHRyPEluc3BlY3Rvcjo6U2NyaXB0Q2FsbFN0
YWNrPiYmIGNhbGxTdGFjaywgSlNDOjpFeGVjU3RhdGUqIHN0YXRlLCB1bnNpZ25lZCBsb25nIHJl
cXVlc3RJZGVudGlmaWVyKQpAQCAtNzM0MCw0ICs3MzQ0LDkgQEAgdm9pZCBEb2N1bWVudDo6cmVx
dWVzdFN0b3JhZ2VBY2Nlc3MoUmVmPERlZmVycmVkUHJvbWlzZT4mJiBwYXNzZWRQcm9taXNlKQog
ICAgIHByb21pc2UtPnJlc29sdmU8SURMQm9vbGVhbj4oZmFsc2UpOwogfQogCit2b2lkIERvY3Vt
ZW50OjpzZXRDb25zb2xlTWVzc2FnZUxpc3RlbmVyKFJlZlB0cjxTdHJpbmdDYWxsYmFjaz4mJiBs
aXN0ZW5lcikKK3sKKyAgICBtX2NvbnNvbGVNZXNzYWdlTGlzdGVuZXIgPSBsaXN0ZW5lcjsKK30K
KwogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9t
L0RvY3VtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuaAppbmRleCA3YTVkMWFl
ZTBlYzkyNWFlMDZlNjhiN2NlZjdhYjEyMzQzOWJhNDZhLi4wZmJmMTA2Nzg0ZmNiOWQzNTdlNzNj
ZTk2MzFkZmIxMjkyZTgxY2NlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1l
bnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuaApAQCAtMTY4LDYgKzE2OCw3
IEBAIGNsYXNzIFNlbGVjdG9yUXVlcnk7CiBjbGFzcyBTZWxlY3RvclF1ZXJ5Q2FjaGU7CiBjbGFz
cyBTZXJpYWxpemVkU2NyaXB0VmFsdWU7CiBjbGFzcyBTZXR0aW5nczsKK2NsYXNzIFN0cmluZ0Nh
bGxiYWNrOwogY2xhc3MgU3R5bGVSZXNvbHZlcjsKIGNsYXNzIFN0eWxlU2hlZXQ7CiBjbGFzcyBT
dHlsZVNoZWV0Q29udGVudHM7CkBAIC0xMzU5LDYgKzEzNjAsOCBAQCBwdWJsaWM6CiAgICAgdm9p
ZCByZXF1ZXN0U3RvcmFnZUFjY2VzcyhSZWY8RGVmZXJyZWRQcm9taXNlPiYmIHBhc3NlZFByb21p
c2UpOwogICAgIHZvaWQgc2V0VXNlckdyYW50c1N0b3JhZ2VBY2Nlc3NPdmVycmlkZShib29sIHZh
bHVlKSB7IG1fZ3JhbnRTdG9yYWdlQWNjZXNzT3ZlcnJpZGUgPSB2YWx1ZTsgfQogCisgICAgV0VC
Q09SRV9FWFBPUlQgdm9pZCBzZXRDb25zb2xlTWVzc2FnZUxpc3RlbmVyKFJlZlB0cjxTdHJpbmdD
YWxsYmFjaz4mJik7IC8vIEZvciB0ZXN0aW5nLgorCiBwcm90ZWN0ZWQ6CiAgICAgZW51bSBDb25z
dHJ1Y3Rpb25GbGFncyB7IFN5bnRoZXNpemVkID0gMSwgTm9uUmVuZGVyZWRQbGFjZWhvbGRlciA9
IDEgPDwgMSB9OwogICAgIERvY3VtZW50KEZyYW1lKiwgY29uc3QgVVJMJiwgdW5zaWduZWQgPSBE
ZWZhdWx0RG9jdW1lbnRDbGFzcywgdW5zaWduZWQgY29uc3RydWN0aW9uRmxhZ3MgPSAwKTsKQEAg
LTE4MDgsNiArMTgxMSw3IEBAIHByaXZhdGU6CiAgICAgT3JpZW50YXRpb25Ob3RpZmllciBtX29y
aWVudGF0aW9uTm90aWZpZXI7CiAgICAgbXV0YWJsZSBQQUw6OlNlc3Npb25JRCBtX3Nlc3Npb25J
RDsKICAgICBtdXRhYmxlIFJlZlB0cjxQQUw6OkxvZ2dlcj4gbV9sb2dnZXI7CisgICAgUmVmUHRy
PFN0cmluZ0NhbGxiYWNrPiBtX2NvbnNvbGVNZXNzYWdlTGlzdGVuZXI7CiAKICAgICBzdGF0aWMg
Ym9vbCBoYXNFdmVyQ3JlYXRlZEFuQVhPYmplY3RDYWNoZTsKIApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvZG9tL1N0cmluZ0NhbGxiYWNrLmlkbCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9TdHJp
bmdDYWxsYmFjay5pZGwKaW5kZXggNWNjZDMxYTQ3YjYzNTdiZTZlY2YwZWE3NzkxOTIzYjFhOTVj
ZWVlYS4uOTc1OTFlMTA1ZDc4NmU3OTQxNzY1NWFiZGM2MzM5NGM0ZGU4YzA0YyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvZG9tL1N0cmluZ0NhbGxiYWNrLmlkbAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9kb20vU3RyaW5nQ2FsbGJhY2suaWRsCkBAIC0yOCw0ICsyOCw2IEBACiAgKiBPRiBUSElT
IFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFN
QUdFLgogICovCiAKLWNhbGxiYWNrIFN0cmluZ0NhbGxiYWNrID0gdm9pZCAoRE9NU3RyaW5nIGRh
dGEpOworWworICAgIEV4cG9ydE1hY3JvPVdFQkNPUkVfVEVTVFNVUFBPUlRfRVhQT1JUCitdIGNh
bGxiYWNrIFN0cmluZ0NhbGxiYWNrID0gdm9pZCAoRE9NU3RyaW5nIGRhdGEpOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvaHRtbC9ET01Ub2tlbkxpc3QuY3BwIGIvU291cmNlL1dlYkNvcmUv
aHRtbC9ET01Ub2tlbkxpc3QuY3BwCmluZGV4IDI1NTViNjg0NDZiMjhlYzJiZjA2NWY3YmNjNGUx
ZjVhN2Y3NmEwMjAuLjdjYWIxYjczNmEwNDE3NWVkMTIxYzk3ZDBhMzUyYTQ5ZWE5NmQ1Y2YgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvRE9NVG9rZW5MaXN0LmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL0RPTVRva2VuTGlzdC5jcHAKQEAgLTM1LDcgKzM1LDcgQEAKIAogbmFt
ZXNwYWNlIFdlYkNvcmUgewogCi1ET01Ub2tlbkxpc3Q6OkRPTVRva2VuTGlzdChFbGVtZW50JiBl
bGVtZW50LCBjb25zdCBRdWFsaWZpZWROYW1lJiBhdHRyaWJ1dGVOYW1lLCBXVEY6OkZ1bmN0aW9u
PGJvb2woU3RyaW5nVmlldyk+JiYgaXNTdXBwb3J0ZWRUb2tlbikKK0RPTVRva2VuTGlzdDo6RE9N
VG9rZW5MaXN0KEVsZW1lbnQmIGVsZW1lbnQsIGNvbnN0IFF1YWxpZmllZE5hbWUmIGF0dHJpYnV0
ZU5hbWUsIElzU3VwcG9ydGVkVG9rZW5GdW5jdGlvbiYmIGlzU3VwcG9ydGVkVG9rZW4pCiAgICAg
OiBtX2VsZW1lbnQoZWxlbWVudCkKICAgICAsIG1fYXR0cmlidXRlTmFtZShhdHRyaWJ1dGVOYW1l
KQogICAgICwgbV9pc1N1cHBvcnRlZFRva2VuKFdURk1vdmUoaXNTdXBwb3J0ZWRUb2tlbikpCkBA
IC0xOTEsNyArMTkxLDcgQEAgRXhjZXB0aW9uT3I8Ym9vbD4gRE9NVG9rZW5MaXN0OjpzdXBwb3J0
cyhTdHJpbmdWaWV3IHRva2VuKQogewogICAgIGlmICghbV9pc1N1cHBvcnRlZFRva2VuKQogICAg
ICAgICByZXR1cm4gRXhjZXB0aW9uIHsgVHlwZUVycm9yIH07Ci0gICAgcmV0dXJuIG1faXNTdXBw
b3J0ZWRUb2tlbih0b2tlbik7CisgICAgcmV0dXJuIG1faXNTdXBwb3J0ZWRUb2tlbihtX2VsZW1l
bnQuZG9jdW1lbnQoKSwgdG9rZW4pOwogfQogCiAvLyBodHRwczovL2RvbS5zcGVjLndoYXR3Zy5v
cmcvI2RvbS1kb210b2tlbmxpc3QtdmFsdWUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0
bWwvRE9NVG9rZW5MaXN0LmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0RPTVRva2VuTGlzdC5oCmlu
ZGV4IDIxZmI0NmY0NjEyY2EzYzkzY2JlNTllZDI4NDNhMjRiZDI0YTU3ODYuLmQ2MGQxN2NjOTE1
MWExMWIxODYwYTkzZTQxMDQ5YTliNWZmODUzZDUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvRE9NVG9rZW5MaXN0LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9ET01Ub2tlbkxp
c3QuaApAQCAtMzIsNyArMzIsOCBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiBjbGFzcyBET01Ub2tl
bkxpc3QgewogICAgIFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOwogcHVibGljOgotICAgIERPTVRv
a2VuTGlzdChFbGVtZW50JiwgY29uc3QgUXVhbGlmaWVkTmFtZSYgYXR0cmlidXRlTmFtZSwgV1RG
OjpGdW5jdGlvbjxib29sKFN0cmluZ1ZpZXcpPiYmIGlzU3VwcG9ydGVkVG9rZW4gPSB7IH0pOwor
ICAgIHVzaW5nIElzU3VwcG9ydGVkVG9rZW5GdW5jdGlvbiA9IFdURjo6RnVuY3Rpb248Ym9vbChE
b2N1bWVudCYsIFN0cmluZ1ZpZXcpPjsKKyAgICBET01Ub2tlbkxpc3QoRWxlbWVudCYsIGNvbnN0
IFF1YWxpZmllZE5hbWUmIGF0dHJpYnV0ZU5hbWUsIElzU3VwcG9ydGVkVG9rZW5GdW5jdGlvbiYm
IGlzU3VwcG9ydGVkVG9rZW4gPSB7IH0pOwogCiAgICAgdm9pZCBhc3NvY2lhdGVkQXR0cmlidXRl
VmFsdWVDaGFuZ2VkKGNvbnN0IEF0b21pY1N0cmluZyYpOwogCkBAIC03Myw3ICs3NCw3IEBAIHBy
aXZhdGU6CiAgICAgYm9vbCBtX2luVXBkYXRlQXNzb2NpYXRlZEF0dHJpYnV0ZUZyb21Ub2tlbnMg
eyBmYWxzZSB9OwogICAgIGJvb2wgbV90b2tlbnNOZWVkVXBkYXRpbmcgeyB0cnVlIH07CiAgICAg
VmVjdG9yPEF0b21pY1N0cmluZz4gbV90b2tlbnM7Ci0gICAgV1RGOjpGdW5jdGlvbjxib29sKFN0
cmluZ1ZpZXcpPiBtX2lzU3VwcG9ydGVkVG9rZW47CisgICAgSXNTdXBwb3J0ZWRUb2tlbkZ1bmN0
aW9uIG1faXNTdXBwb3J0ZWRUb2tlbjsKIH07CiAKIGlubGluZSB1bnNpZ25lZCBET01Ub2tlbkxp
c3Q6Omxlbmd0aCgpIGNvbnN0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxB
bmNob3JFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEFuY2hvckVsZW1lbnQu
Y3BwCmluZGV4IGNiMWYxYzlmNTQ2NTNkNmJkZDJiNDc5MmMyNjM5ODgyMTBjN2ZjOTAuLjQ4ODFj
M2Q5ZThhMzdlZGYxZjYzMjBmNWQzMjliYjk3YzE3MWZmMDggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvSFRNTEFuY2hvckVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0
bWwvSFRNTEFuY2hvckVsZW1lbnQuY3BwCkBAIC0zMDcsNyArMzA3LDcgQEAgYm9vbCBIVE1MQW5j
aG9yRWxlbWVudDo6aGFzUmVsKFJlbGF0aW9uIHJlbGF0aW9uKSBjb25zdAogRE9NVG9rZW5MaXN0
JiBIVE1MQW5jaG9yRWxlbWVudDo6cmVsTGlzdCgpCiB7CiAgICAgaWYgKCFtX3JlbExpc3QpIAot
ICAgICAgICBtX3JlbExpc3QgPSBzdGQ6Om1ha2VfdW5pcXVlPERPTVRva2VuTGlzdD4oKnRoaXMs
IEhUTUxOYW1lczo6cmVsQXR0ciwgW10oU3RyaW5nVmlldyB0b2tlbikgeworICAgICAgICBtX3Jl
bExpc3QgPSBzdGQ6Om1ha2VfdW5pcXVlPERPTVRva2VuTGlzdD4oKnRoaXMsIEhUTUxOYW1lczo6
cmVsQXR0ciwgW10oRG9jdW1lbnQmLCBTdHJpbmdWaWV3IHRva2VuKSB7CiAgICAgICAgICAgICBy
ZXR1cm4gZXF1YWxJZ25vcmluZ0FTQ0lJQ2FzZSh0b2tlbiwgIm5vcmVmZXJyZXIiKSB8fCBlcXVh
bElnbm9yaW5nQVNDSUlDYXNlKHRva2VuLCAibm9vcGVuZXIiKTsKICAgICAgICAgfSk7CiAgICAg
cmV0dXJuICptX3JlbExpc3Q7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxJ
RnJhbWVFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTElGcmFtZUVsZW1lbnQu
Y3BwCmluZGV4IGQzMDMyMmRjMGM0OGZiODIwNmVhYmI2NmNhZWYyYjhmZTY5N2I2NGYuLjIyM2Uz
YjAzMzFhYTc1MGU0ZGFmNWRkMGE4NmI1MjJjMjIyZTA1ZGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvSFRNTElGcmFtZUVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0
bWwvSFRNTElGcmFtZUVsZW1lbnQuY3BwCkBAIC01MSw3ICs1MSw3IEBAIFJlZjxIVE1MSUZyYW1l
RWxlbWVudD4gSFRNTElGcmFtZUVsZW1lbnQ6OmNyZWF0ZShjb25zdCBRdWFsaWZpZWROYW1lJiB0
YWdOYW1lLCBECiBET01Ub2tlbkxpc3QmIEhUTUxJRnJhbWVFbGVtZW50OjpzYW5kYm94KCkKIHsK
ICAgICBpZiAoIW1fc2FuZGJveCkKLSAgICAgICAgbV9zYW5kYm94ID0gc3RkOjptYWtlX3VuaXF1
ZTxET01Ub2tlbkxpc3Q+KCp0aGlzLCBzYW5kYm94QXR0ciwgW10oU3RyaW5nVmlldyB0b2tlbikg
eworICAgICAgICBtX3NhbmRib3ggPSBzdGQ6Om1ha2VfdW5pcXVlPERPTVRva2VuTGlzdD4oKnRo
aXMsIHNhbmRib3hBdHRyLCBbXShEb2N1bWVudCYsIFN0cmluZ1ZpZXcgdG9rZW4pIHsKICAgICAg
ICAgICAgIHJldHVybiBTZWN1cml0eUNvbnRleHQ6OmlzU3VwcG9ydGVkU2FuZGJveFBvbGljeSh0
b2tlbik7CiAgICAgICAgIH0pOwogICAgIHJldHVybiAqbV9zYW5kYm94OwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTGlua0VsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUv
aHRtbC9IVE1MTGlua0VsZW1lbnQuY3BwCmluZGV4IGUwMWI2ZTNiNGM4NTFmZWRmNDU3N2NhOTIy
MGY4ODg1NDJjMWNhNDYuLmU3ZDBmN2NjNzQyODYwNDlmYWQxODgxNzNiMTU1MDE5OTNkYmYzZDMg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTExpbmtFbGVtZW50LmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxMaW5rRWxlbWVudC5jcHAKQEAgLTE1Niw3ICsxNTYs
NyBAQCB2b2lkIEhUTUxMaW5rRWxlbWVudDo6c2V0RGlzYWJsZWRTdGF0ZShib29sIGRpc2FibGVk
KQogdm9pZCBIVE1MTGlua0VsZW1lbnQ6OnBhcnNlQXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5h
bWUmIG5hbWUsIGNvbnN0IEF0b21pY1N0cmluZyYgdmFsdWUpCiB7CiAgICAgaWYgKG5hbWUgPT0g
cmVsQXR0cikgewotICAgICAgICBtX3JlbEF0dHJpYnV0ZSA9IExpbmtSZWxBdHRyaWJ1dGUodmFs
dWUpOworICAgICAgICBtX3JlbEF0dHJpYnV0ZSA9IExpbmtSZWxBdHRyaWJ1dGUoZG9jdW1lbnQo
KSwgdmFsdWUpOwogICAgICAgICBpZiAobV9yZWxMaXN0KQogICAgICAgICAgICAgbV9yZWxMaXN0
LT5hc3NvY2lhdGVkQXR0cmlidXRlVmFsdWVDaGFuZ2VkKHZhbHVlKTsKICAgICAgICAgcHJvY2Vz
cygpOwpAQCAtNDk4LDggKzQ5OCw4IEBAIHZvaWQgSFRNTExpbmtFbGVtZW50OjpkaXNwYXRjaFBl
bmRpbmdFdmVudChMaW5rRXZlbnRTZW5kZXIqIGV2ZW50U2VuZGVyKQogRE9NVG9rZW5MaXN0JiBI
VE1MTGlua0VsZW1lbnQ6OnJlbExpc3QoKQogewogICAgIGlmICghbV9yZWxMaXN0KSAKLSAgICAg
ICAgbV9yZWxMaXN0ID0gc3RkOjptYWtlX3VuaXF1ZTxET01Ub2tlbkxpc3Q+KCp0aGlzLCBIVE1M
TmFtZXM6OnJlbEF0dHIsIFtdKFN0cmluZ1ZpZXcgdG9rZW4pIHsKLSAgICAgICAgICAgIHJldHVy
biBMaW5rUmVsQXR0cmlidXRlOjppc1N1cHBvcnRlZCh0b2tlbik7CisgICAgICAgIG1fcmVsTGlz
dCA9IHN0ZDo6bWFrZV91bmlxdWU8RE9NVG9rZW5MaXN0PigqdGhpcywgSFRNTE5hbWVzOjpyZWxB
dHRyLCBbXShEb2N1bWVudCYgZG9jdW1lbnQsIFN0cmluZ1ZpZXcgdG9rZW4pIHsKKyAgICAgICAg
ICAgIHJldHVybiBMaW5rUmVsQXR0cmlidXRlOjppc1N1cHBvcnRlZChkb2N1bWVudCwgdG9rZW4p
OwogICAgICAgICB9KTsKICAgICByZXR1cm4gKm1fcmVsTGlzdDsKIH0KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvTGlua1JlbEF0dHJpYnV0ZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9o
dG1sL0xpbmtSZWxBdHRyaWJ1dGUuY3BwCmluZGV4IDg2NmFmZDhlNWViNGExYTEyY2NiOTAwYTY2
N2FlMGRmZWIyZWY5YTkuLjU3MmJkYjM0YzU4ZjhkYWQwNWJkM2Y2YmRjZmM1YzQ1ODJhNDc2N2Yg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvTGlua1JlbEF0dHJpYnV0ZS5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvaHRtbC9MaW5rUmVsQXR0cmlidXRlLmNwcApAQCAtMzIsOCArMzIs
MTAgQEAKICNpbmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRlICJMaW5rUmVsQXR0cmlidXRlLmgi
CiAKKyNpbmNsdWRlICJEb2N1bWVudC5oIgogI2luY2x1ZGUgIkxpbmtJY29uVHlwZS5oIgogI2lu
Y2x1ZGUgIlJ1bnRpbWVFbmFibGVkRmVhdHVyZXMuaCIKKyNpbmNsdWRlICJTZXR0aW5ncy5oIgog
I2luY2x1ZGUgPHd0Zi90ZXh0L1N0cmluZ1ZpZXcuaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9XVEZT
dHJpbmcuaD4KIApAQCAtNDQsNyArNDYsNyBAQCBMaW5rUmVsQXR0cmlidXRlOjpMaW5rUmVsQXR0
cmlidXRlKCkKIH0KIAogLy8gS2VlcCBMaW5rUmVsQXR0cmlidXRlOjppc1N1cHBvcnRlZCgpIGlu
IHN5bmMgd2hlbiB1cGRhdGluZyB0aGlzIGNvbnN0cnVjdG9yLgotTGlua1JlbEF0dHJpYnV0ZTo6
TGlua1JlbEF0dHJpYnV0ZShjb25zdCBTdHJpbmcmIHJlbCkKK0xpbmtSZWxBdHRyaWJ1dGU6Okxp
bmtSZWxBdHRyaWJ1dGUoRG9jdW1lbnQmIGRvY3VtZW50LCBjb25zdCBTdHJpbmcmIHJlbCkKIHsK
ICAgICBpZiAoZXF1YWxMZXR0ZXJzSWdub3JpbmdBU0NJSUNhc2UocmVsLCAic3R5bGVzaGVldCIp
KQogICAgICAgICBpc1N0eWxlU2hlZXQgPSB0cnVlOwpAQCAtNTYsNiArNTgsOCBAQCBMaW5rUmVs
QXR0cmlidXRlOjpMaW5rUmVsQXR0cmlidXRlKGNvbnN0IFN0cmluZyYgcmVsKQogICAgICAgICBp
Y29uVHlwZSA9IExpbmtJY29uVHlwZTo6VG91Y2hQcmVjb21wb3NlZEljb247CiAgICAgZWxzZSBp
ZiAoZXF1YWxMZXR0ZXJzSWdub3JpbmdBU0NJSUNhc2UocmVsLCAiZG5zLXByZWZldGNoIikpCiAg
ICAgICAgIGlzRE5TUHJlZmV0Y2ggPSB0cnVlOworICAgIGVsc2UgaWYgKGRvY3VtZW50LnNldHRp
bmdzKCkubGlua1ByZWNvbm5lY3RFbmFibGVkKCkgJiYgZXF1YWxMZXR0ZXJzSWdub3JpbmdBU0NJ
SUNhc2UocmVsLCAicHJlY29ubmVjdCIpKQorICAgICAgICBpc0xpbmtQcmVjb25uZWN0ID0gdHJ1
ZTsKICAgICBlbHNlIGlmIChSdW50aW1lRW5hYmxlZEZlYXR1cmVzOjpzaGFyZWRGZWF0dXJlcygp
LmxpbmtQcmVsb2FkRW5hYmxlZCgpICYmIGVxdWFsTGV0dGVyc0lnbm9yaW5nQVNDSUlDYXNlKHJl
bCwgInByZWxvYWQiKSkKICAgICAgICAgaXNMaW5rUHJlbG9hZCA9IHRydWU7CiAgICAgZWxzZSBp
ZiAoZXF1YWxMZXR0ZXJzSWdub3JpbmdBU0NJSUNhc2UocmVsLCAiYWx0ZXJuYXRlIHN0eWxlc2hl
ZXQiKSB8fCBlcXVhbExldHRlcnNJZ25vcmluZ0FTQ0lJQ2FzZShyZWwsICJzdHlsZXNoZWV0IGFs
dGVybmF0ZSIpKSB7CkBAIC04Nyw3ICs5MSw3IEBAIExpbmtSZWxBdHRyaWJ1dGU6OkxpbmtSZWxB
dHRyaWJ1dGUoY29uc3QgU3RyaW5nJiByZWwpCiB9CiAKIC8vIGh0dHBzOi8vaHRtbC5zcGVjLndo
YXR3Zy5vcmcvI2xpbmtUeXBlcwotYm9vbCBMaW5rUmVsQXR0cmlidXRlOjppc1N1cHBvcnRlZChT
dHJpbmdWaWV3IGF0dHJpYnV0ZSkKK2Jvb2wgTGlua1JlbEF0dHJpYnV0ZTo6aXNTdXBwb3J0ZWQo
RG9jdW1lbnQmIGRvY3VtZW50LCBTdHJpbmdWaWV3IGF0dHJpYnV0ZSkKIHsKICAgICBzdGF0aWMg
Y29uc3QgY2hhciogY29uc3Qgc3VwcG9ydGVkQXR0cmlidXRlc1tdID0gewogICAgICAgICAiYWx0
ZXJuYXRlIiwgImRucy1wcmVmZXRjaCIsICJpY29uIiwgInN0eWxlc2hlZXQiLCAiYXBwbGUtdG91
Y2gtaWNvbiIsICJhcHBsZS10b3VjaC1pY29uLXByZWNvbXBvc2VkIiwKQEAgLTEwMSw2ICsxMDUs
OSBAQCBib29sIExpbmtSZWxBdHRyaWJ1dGU6OmlzU3VwcG9ydGVkKFN0cmluZ1ZpZXcgYXR0cmli
dXRlKQogICAgICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgfQogCisgICAgaWYgKGRvY3VtZW50
LnNldHRpbmdzKCkubGlua1ByZWNvbm5lY3RFbmFibGVkKCkgJiYgZXF1YWxJZ25vcmluZ0FTQ0lJ
Q2FzZShhdHRyaWJ1dGUsICJwcmVjb25uZWN0IikpCisgICAgICAgIHJldHVybiB0cnVlOworCiAg
ICAgaWYgKFJ1bnRpbWVFbmFibGVkRmVhdHVyZXM6OnNoYXJlZEZlYXR1cmVzKCkubGlua1ByZWxv
YWRFbmFibGVkKCkgJiYgZXF1YWxJZ25vcmluZ0FTQ0lJQ2FzZShhdHRyaWJ1dGUsICJwcmVsb2Fk
IikpCiAgICAgICAgIHJldHVybiB0cnVlOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9o
dG1sL0xpbmtSZWxBdHRyaWJ1dGUuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvTGlua1JlbEF0dHJp
YnV0ZS5oCmluZGV4IDhlMjY2OTI3ZWRkYjEzZGI5ZTBiOGIxY2NhOTY4NTI1NjVmYmJkOGYuLmYx
MmU5ODY2MzdjN2ZmNzA3ODFjMjNjMWQ2ZmFlODg1NTlhNzBiNWYgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvTGlua1JlbEF0dHJpYnV0ZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0
bWwvTGlua1JlbEF0dHJpYnV0ZS5oCkBAIC0zNyw2ICszNyw3IEBACiAKIG5hbWVzcGFjZSBXZWJD
b3JlIHsKIAorY2xhc3MgRG9jdW1lbnQ7CiBlbnVtIGNsYXNzIExpbmtJY29uVHlwZTsKIAogc3Ry
dWN0IExpbmtSZWxBdHRyaWJ1dGUgewpAQCAtNDUsMTUgKzQ2LDE2IEBAIHN0cnVjdCBMaW5rUmVs
QXR0cmlidXRlIHsKICAgICBib29sIGlzQWx0ZXJuYXRlIHsgZmFsc2UgfTsKICAgICBib29sIGlz
RE5TUHJlZmV0Y2ggeyBmYWxzZSB9OwogICAgIGJvb2wgaXNMaW5rUHJlbG9hZCB7IGZhbHNlIH07
CisgICAgYm9vbCBpc0xpbmtQcmVjb25uZWN0IHsgZmFsc2UgfTsKICNpZiBFTkFCTEUoTElOS19Q
UkVGRVRDSCkKICAgICBib29sIGlzTGlua1ByZWZldGNoIHsgZmFsc2UgfTsKICAgICBib29sIGlz
TGlua1N1YnJlc291cmNlIHsgZmFsc2UgfTsKICNlbmRpZgogCiAgICAgTGlua1JlbEF0dHJpYnV0
ZSgpOwotICAgIGV4cGxpY2l0IExpbmtSZWxBdHRyaWJ1dGUoY29uc3QgU3RyaW5nJik7CisgICAg
TGlua1JlbEF0dHJpYnV0ZShEb2N1bWVudCYsIGNvbnN0IFN0cmluZyYpOwogCi0gICAgc3RhdGlj
IGJvb2wgaXNTdXBwb3J0ZWQoU3RyaW5nVmlldyk7CisgICAgc3RhdGljIGJvb2wgaXNTdXBwb3J0
ZWQoRG9jdW1lbnQmLCBTdHJpbmdWaWV3KTsKIH07CiAKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvcGFyc2VyL0hUTUxQcmVsb2FkU2Nhbm5lci5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9odG1sL3BhcnNlci9IVE1MUHJlbG9hZFNjYW5uZXIuY3BwCmluZGV4IDA2MDFkYzExZGNjNGMw
YjAwNWU1ZWZiZDFlNjY4Mzc2NDI2ZjBlYzAuLjA4ZDI4Y2RkNDIxNzczYWQxNzZkM2YwZTc1NDA3
YTZlNmYwMDM0ODQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvcGFyc2VyL0hUTUxQ
cmVsb2FkU2Nhbm5lci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9wYXJzZXIvSFRNTFBy
ZWxvYWRTY2FubmVyLmNwcApAQCAtMjMyLDcgKzIzMiw3IEBAIHByaXZhdGU6CiAgICAgICAgICAg
ICBpZiAobWF0Y2goYXR0cmlidXRlTmFtZSwgaHJlZkF0dHIpKQogICAgICAgICAgICAgICAgIHNl
dFVybFRvTG9hZChhdHRyaWJ1dGVWYWx1ZSk7CiAgICAgICAgICAgICBlbHNlIGlmIChtYXRjaChh
dHRyaWJ1dGVOYW1lLCByZWxBdHRyKSkgewotICAgICAgICAgICAgICAgIExpbmtSZWxBdHRyaWJ1
dGUgcGFyc2VkQXR0cmlidXRlIHsgYXR0cmlidXRlVmFsdWUgfTsKKyAgICAgICAgICAgICAgICBM
aW5rUmVsQXR0cmlidXRlIHBhcnNlZEF0dHJpYnV0ZSB7IGRvY3VtZW50LCBhdHRyaWJ1dGVWYWx1
ZSB9OwogICAgICAgICAgICAgICAgIG1fbGlua0lzU3R5bGVTaGVldCA9IHJlbEF0dHJpYnV0ZUlz
U3R5bGVTaGVldChwYXJzZWRBdHRyaWJ1dGUpOwogICAgICAgICAgICAgICAgIG1fbGlua0lzUHJl
bG9hZCA9IHBhcnNlZEF0dHJpYnV0ZS5pc0xpbmtQcmVsb2FkOwogICAgICAgICAgICAgfSBlbHNl
IGlmIChtYXRjaChhdHRyaWJ1dGVOYW1lLCBtZWRpYUF0dHIpKQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvbG9hZGVyL0xpbmtMb2FkZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0xp
bmtMb2FkZXIuY3BwCmluZGV4IDJiMTYxMzI2NDMwYzEwZDU5MjQyOGQxNWI0ODc3MmJlZjZhNjkw
M2QuLjllM2YyYWE4ZDIzMjNmM2NjMDljMDYyNTZiOTM5Njg4YzJkOWU4MWMgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2xvYWRlci9MaW5rTG9hZGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9sb2FkZXIvTGlua0xvYWRlci5jcHAKQEAgLTQ3LDggKzQ3LDExIEBACiAjaW5jbHVkZSAiTGlu
a0hlYWRlci5oIgogI2luY2x1ZGUgIkxpbmtQcmVsb2FkUmVzb3VyY2VDbGllbnRzLmgiCiAjaW5j
bHVkZSAiTGlua1JlbEF0dHJpYnV0ZS5oIgorI2luY2x1ZGUgIkxvYWRlclN0cmF0ZWd5LmgiCiAj
aW5jbHVkZSAiTUlNRVR5cGVSZWdpc3RyeS5oIgogI2luY2x1ZGUgIk1lZGlhUXVlcnlFdmFsdWF0
b3IuaCIKKyNpbmNsdWRlICJQbGF0Zm9ybVN0cmF0ZWdpZXMuaCIKKyNpbmNsdWRlICJSZXNvdXJj
ZUVycm9yLmgiCiAjaW5jbHVkZSAiUnVudGltZUVuYWJsZWRGZWF0dXJlcy5oIgogI2luY2x1ZGUg
IlNldHRpbmdzLmgiCiAjaW5jbHVkZSAiU3R5bGVSZXNvbHZlci5oIgpAQCAtMTAyLDcgKzEwNSw3
IEBAIHZvaWQgTGlua0xvYWRlcjo6bG9hZExpbmtzRnJvbUhlYWRlcihjb25zdCBTdHJpbmcmIGhl
YWRlclZhbHVlLCBjb25zdCBVUkwmIGJhc2VVCiAgICAgICAgICAgICAgICAgY29udGludWU7CiAg
ICAgICAgIH0KIAotICAgICAgICBMaW5rUmVsQXR0cmlidXRlIHJlbEF0dHJpYnV0ZShoZWFkZXIu
cmVsKCkpOworICAgICAgICBMaW5rUmVsQXR0cmlidXRlIHJlbEF0dHJpYnV0ZShkb2N1bWVudCwg
aGVhZGVyLnJlbCgpKTsKICAgICAgICAgVVJMIHVybChiYXNlVVJMLCBoZWFkZXIudXJsKCkpOwog
ICAgICAgICAvLyBTYW5pdHkgY2hlY2sgdG8gYXZvaWQgcmUtZW50cmFuY3kgaGVyZS4KICAgICAg
ICAgaWYgKGVxdWFsSWdub3JpbmdGcmFnbWVudElkZW50aWZpZXIodXJsLCBiYXNlVVJMKSkKQEAg
LTI1MCw2ICsyNTMsMjIgQEAgYm9vbCBMaW5rTG9hZGVyOjpsb2FkTGluayhjb25zdCBMaW5rUmVs
QXR0cmlidXRlJiByZWxBdHRyaWJ1dGUsIGNvbnN0IFVSTCYgaHJlZiwKICAgICAgICAgICAgIGRv
Y3VtZW50LmZyYW1lKCktPmxvYWRlcigpLmNsaWVudCgpLnByZWZldGNoRE5TKGhyZWYuaG9zdCgp
KTsKICAgICB9CiAKKyAgICBpZiAocmVsQXR0cmlidXRlLmlzTGlua1ByZWNvbm5lY3QgJiYgaHJl
Zi5pc1ZhbGlkKCkgJiYgaHJlZi5wcm90b2NvbElzSW5IVFRQRmFtaWx5KCkpIHsKKyAgICAgICAg
QVNTRVJUKGRvY3VtZW50LnNldHRpbmdzKCkubGlua1ByZWNvbm5lY3RFbmFibGVkKCkpOworICAg
ICAgICBTdG9yZWRDcmVkZW50aWFsc1BvbGljeSBzdG9yYWdlQ3JlZGVudGlhbHNQb2xpY3kgPSBT
dG9yZWRDcmVkZW50aWFsc1BvbGljeTo6VXNlOworICAgICAgICBpZiAoZXF1YWxJZ25vcmluZ0FT
Q0lJQ2FzZShjcm9zc09yaWdpbiwgImFub255bW91cyIpICYmIGRvY3VtZW50LnNlY3VyaXR5T3Jp
Z2luKCkuY2FuQWNjZXNzKFNlY3VyaXR5T3JpZ2luOjpjcmVhdGUoaHJlZikpKQorICAgICAgICAg
ICAgc3RvcmFnZUNyZWRlbnRpYWxzUG9saWN5ID0gU3RvcmVkQ3JlZGVudGlhbHNQb2xpY3k6OkRv
Tm90VXNlOworICAgICAgICBwbGF0Zm9ybVN0cmF0ZWdpZXMoKS0+bG9hZGVyU3RyYXRlZ3koKS0+
cHJlY29ubmVjdFRvKGRvY3VtZW50LnNlc3Npb25JRCgpLCBocmVmLCBzdG9yYWdlQ3JlZGVudGlh
bHNQb2xpY3ksIFt3ZWFrRG9jdW1lbnQgPSBkb2N1bWVudC5jcmVhdGVXZWFrUHRyKCksIGhyZWZd
KFJlc291cmNlRXJyb3IgZXJyb3IpIHsKKyAgICAgICAgICAgIGlmICghd2Vha0RvY3VtZW50KQor
ICAgICAgICAgICAgICAgIHJldHVybjsKKworICAgICAgICAgICAgaWYgKCFlcnJvci5pc051bGwo
KSkKKyAgICAgICAgICAgICAgICB3ZWFrRG9jdW1lbnQtPmFkZENvbnNvbGVNZXNzYWdlKE1lc3Nh
Z2VTb3VyY2U6Ok5ldHdvcmssIE1lc3NhZ2VMZXZlbDo6RXJyb3IsIG1ha2VTdHJpbmcoQVNDSUlM
aXRlcmFsKCJGYWlsZWQgdG8gcHJlY29ubmVjdCB0byAiKSwgaHJlZi5zdHJpbmcoKSwgQVNDSUlM
aXRlcmFsKCIuIEVycm9yOiAiKSwgZXJyb3IubG9jYWxpemVkRGVzY3JpcHRpb24oKSkpOworICAg
ICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAgIHdlYWtEb2N1bWVudC0+YWRkQ29uc29sZU1l
c3NhZ2UoTWVzc2FnZVNvdXJjZTo6TmV0d29yaywgTWVzc2FnZUxldmVsOjpJbmZvLCBtYWtlU3Ry
aW5nKEFTQ0lJTGl0ZXJhbCgiU3VjY2Vzc2Z1bHkgcHJlY29ubmVjdGVkIHRvICIpLCBocmVmLnN0
cmluZygpKSk7CisgICAgICAgIH0pOworICAgIH0KKwogICAgIGlmIChtX2NsaWVudC5zaG91bGRM
b2FkTGluaygpKSB7CiAgICAgICAgIGF1dG8gcmVzb3VyY2VDbGllbnQgPSBwcmVsb2FkSWZOZWVk
ZWQocmVsQXR0cmlidXRlLCBocmVmLCBkb2N1bWVudCwgYXMsIG1lZGlhLCBtaW1lVHlwZSwgY3Jv
c3NPcmlnaW4sIHRoaXMpOwogICAgICAgICBpZiAocmVzb3VyY2VDbGllbnQpCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvTG9hZGVyU3RyYXRlZ3kuaCBiL1NvdXJjZS9XZWJDb3Jl
L2xvYWRlci9Mb2FkZXJTdHJhdGVneS5oCmluZGV4IDUzZjNiZmIyNjY2OWIxNGU4OGNjZDI4Zjg5
MWIwMjE5ZDE0ZmE2M2MuLjk4YmVkODQyZWNhYmZhYzEzOThkNzljYTU4YTMzZWZkMzk5ZDIyNmIg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9Mb2FkZXJTdHJhdGVneS5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2xvYWRlci9Mb2FkZXJTdHJhdGVneS5oCkBAIC0yOCw2ICsyOCw3IEBA
CiAjaW5jbHVkZSAiUmVzb3VyY2VMb2FkUHJpb3JpdHkuaCIKICNpbmNsdWRlICJSZXNvdXJjZUxv
YWRlck9wdGlvbnMuaCIKICNpbmNsdWRlICJTdG9yZWRDcmVkZW50aWFsc1BvbGljeS5oIgorI2lu
Y2x1ZGUgPHBhbC9TZXNzaW9uSUQuaD4KICNpbmNsdWRlIDx3dGYvRm9yd2FyZC5oPgogI2luY2x1
ZGUgPHd0Zi9TSEExLmg+CiAKQEAgLTY3LDYgKzY4LDkgQEAgcHVibGljOgogICAgIHVzaW5nIFBp
bmdMb2FkQ29tcGxldGlvbkhhbmRsZXIgPSBXVEY6OkZ1bmN0aW9uPHZvaWQoY29uc3QgUmVzb3Vy
Y2VFcnJvciYpPjsKICAgICB2aXJ0dWFsIHZvaWQgc3RhcnRQaW5nTG9hZChGcmFtZSYsIFJlc291
cmNlUmVxdWVzdCYsIGNvbnN0IEhUVFBIZWFkZXJNYXAmIG9yaWdpbmFsUmVxdWVzdEhlYWRlcnMs
IGNvbnN0IEZldGNoT3B0aW9ucyYsIFBpbmdMb2FkQ29tcGxldGlvbkhhbmRsZXImJiA9IHsgfSkg
PSAwOwogCisgICAgdXNpbmcgUHJlY29ubmVjdENvbXBsZXRpb25IYW5kbGVyID0gV1RGOjpGdW5j
dGlvbjx2b2lkKGNvbnN0IFJlc291cmNlRXJyb3ImKT47CisgICAgdmlydHVhbCB2b2lkIHByZWNv
bm5lY3RUbyhQQUw6OlNlc3Npb25JRCwgY29uc3QgVVJMJiwgU3RvcmVkQ3JlZGVudGlhbHNQb2xp
Y3ksIFByZWNvbm5lY3RDb21wbGV0aW9uSGFuZGxlciYmKSA9IDA7CisKICAgICB2aXJ0dWFsIHZv
aWQgc3RvcmVEZXJpdmVkRGF0YVRvQ2FjaGUoY29uc3QgU0hBMTo6RGlnZXN0JiBib2R5S2V5LCBj
b25zdCBTdHJpbmcmIHR5cGUsIGNvbnN0IFN0cmluZyYgcGFydGl0aW9uLCBXZWJDb3JlOjpTaGFy
ZWRCdWZmZXImKSA9IDA7CiAKICAgICB2aXJ0dWFsIHZvaWQgc2V0Q2FwdHVyZUV4dHJhTmV0d29y
a0xvYWRNZXRyaWNzRW5hYmxlZChib29sKSA9IDA7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wYWdlL1NldHRpbmdzLmluIGIvU291cmNlL1dlYkNvcmUvcGFnZS9TZXR0aW5ncy5pbgppbmRl
eCA5Mjc3YzBhN2NlNWQ3YTdiYTI1ZTZkMzQ4NTkyYThhYzFhMWZkZWFiLi5kODE1MjZhYWNjMTY3
MjdjOTJjYTY5YWE3NGI2M2U4Y2FiZDA0MjFmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9w
YWdlL1NldHRpbmdzLmluCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvU2V0dGluZ3MuaW4KQEAg
LTI5MSw2ICsyOTEsOCBAQCBsYW5nQXR0cmlidXRlQXdhcmVGb3JtQ29udHJvbFVJRW5hYmxlZCBp
bml0aWFsPWZhbHNlCiAKIHN1YnJlc291cmNlSW50ZWdyaXR5RW5hYmxlZCBpbml0aWFsPXRydWUK
IAorbGlua1ByZWNvbm5lY3RFbmFibGVkIGluaXRpYWw9ZmFsc2UKKwogYmVhY29uQVBJRW5hYmxl
ZCBpbml0aWFsPWZhbHNlCiAKIGNvbnN0YW50UHJvcGVydGllc0VuYWJsZWQgaW5pdGlhbD1mYWxz
ZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuY3BwIGIvU291
cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuY3BwCmluZGV4IDgzNTA5NzYzZWY5YzJkODUw
YTI1NmYyZDMwNDhhMWU4MjA0MjM1MGEuLmJlZTU4MGE4NTEyODY2MjRhYjE0YzZjOGVmM2YxOTg3
MDI2NDQ3MzQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5jcHAKQEAgLTEzMCw2ICsx
MzAsNyBAQAogI2luY2x1ZGUgIlNvdXJjZUJ1ZmZlci5oIgogI2luY2x1ZGUgIlNwZWxsQ2hlY2tl
ci5oIgogI2luY2x1ZGUgIlN0YXRpY05vZGVMaXN0LmgiCisjaW5jbHVkZSAiU3RyaW5nQ2FsbGJh
Y2suaCIKICNpbmNsdWRlICJTdHlsZVJ1bGUuaCIKICNpbmNsdWRlICJTdHlsZVNjb3BlLmgiCiAj
aW5jbHVkZSAiU3R5bGVTaGVldENvbnRlbnRzLmgiCkBAIC01MDMsNiArNTA0LDggQEAgSW50ZXJu
YWxzOjpJbnRlcm5hbHMoRG9jdW1lbnQmIGRvY3VtZW50KQogICAgICAgICBzZXRBdXRvbWF0aWNM
aW5rRGV0ZWN0aW9uRW5hYmxlZChmYWxzZSk7CiAgICAgICAgIHNldEF1dG9tYXRpY1RleHRSZXBs
YWNlbWVudEVuYWJsZWQodHJ1ZSk7CiAgICAgfQorCisgICAgc2V0Q29uc29sZU1lc3NhZ2VMaXN0
ZW5lcihudWxscHRyKTsKIH0KIAogRG9jdW1lbnQqIEludGVybmFsczo6Y29udGV4dERvY3VtZW50
KCkgY29uc3QKQEAgLTQxNzcsNCArNDE4MCwxMiBAQCB2b2lkIEludGVybmFsczo6Y2FjaGVTdG9y
YWdlRW5naW5lUmVwcmVzZW50YXRpb24oRE9NUHJvbWlzZURlZmVycmVkPElETERPTVN0cmluZwog
ICAgIH0pOwogfQogCit2b2lkIEludGVybmFsczo6c2V0Q29uc29sZU1lc3NhZ2VMaXN0ZW5lcihS
ZWZQdHI8U3RyaW5nQ2FsbGJhY2s+JiYgbGlzdGVuZXIpCit7CisgICAgaWYgKCFjb250ZXh0RG9j
dW1lbnQoKSkKKyAgICAgICAgcmV0dXJuOworCisgICAgY29udGV4dERvY3VtZW50KCktPnNldENv
bnNvbGVNZXNzYWdlTGlzdGVuZXIoV1RGTW92ZShsaXN0ZW5lcikpOworfQorCiB9IC8vIG5hbWVz
cGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFs
cy5oIGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuaAppbmRleCBlYjIzYzEzZTA3
NDU0NjE3NTVkNmEzODE4ZmViYjc0YTA4ZWVlZTU5Li4zMDhlMzlmYzc5OGM0ODEwMGY0OTE2MDI1
YTEyNjc5OGU0ZmFkMDc0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVy
bmFscy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmgKQEAgLTc3LDYg
Kzc3LDcgQEAgY2xhc3MgUlRDUGVlckNvbm5lY3Rpb247CiBjbGFzcyBTVkdTVkdFbGVtZW50Owog
Y2xhc3MgU2VyaWFsaXplZFNjcmlwdFZhbHVlOwogY2xhc3MgU291cmNlQnVmZmVyOworY2xhc3Mg
U3RyaW5nQ2FsbGJhY2s7CiBjbGFzcyBTdHlsZVNoZWV0OwogY2xhc3MgVGltZVJhbmdlczsKIGNs
YXNzIFR5cGVDb252ZXJzaW9uczsKQEAgLTYwMyw2ICs2MDQsOCBAQCBwdWJsaWM6CiAgICAgdm9p
ZCBjbGVhckNhY2hlU3RvcmFnZU1lbW9yeVJlcHJlc2VudGF0aW9uKERPTVByb21pc2VEZWZlcnJl
ZDx2b2lkPiYmKTsKICAgICB2b2lkIGNhY2hlU3RvcmFnZUVuZ2luZVJlcHJlc2VudGF0aW9uKERP
TVByb21pc2VEZWZlcnJlZDxJRExET01TdHJpbmc+JiYpOwogCisgICAgdm9pZCBzZXRDb25zb2xl
TWVzc2FnZUxpc3RlbmVyKFJlZlB0cjxTdHJpbmdDYWxsYmFjaz4mJik7CisKIHByaXZhdGU6CiAg
ICAgZXhwbGljaXQgSW50ZXJuYWxzKERvY3VtZW50Jik7CiAgICAgRG9jdW1lbnQqIGNvbnRleHRE
b2N1bWVudCgpIGNvbnN0OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRl
cm5hbHMuaWRsIGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuaWRsCmluZGV4IDY1
OGIxNzkzYzkyZjVhMTc1MDA3M2RkOTRlY2Y0ZDEzZGNjZDFkZTcuLmMwYzljYWU1NGY0ZTNmMDhk
NTZmM2NiYzI4MmFiN2ZkOTI3ZDU3MDkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Rlc3Rp
bmcvSW50ZXJuYWxzLmlkbAorKysgYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5p
ZGwKQEAgLTU0OCw1ICs1NDgsNyBAQCBlbnVtIEV2ZW50VGhyb3R0bGluZ0JlaGF2aW9yIHsKICAg
ICBQcm9taXNlPHZvaWQ+IGNsZWFyQ2FjaGVTdG9yYWdlTWVtb3J5UmVwcmVzZW50YXRpb24oKTsK
ICAgICBQcm9taXNlPERPTVN0cmluZz4gY2FjaGVTdG9yYWdlRW5naW5lUmVwcmVzZW50YXRpb24o
KTsKIAorICAgIHZvaWQgc2V0Q29uc29sZU1lc3NhZ2VMaXN0ZW5lcihTdHJpbmdDYWxsYmFjayBj
YWxsYmFjayk7CisKICAgICBET01TdHJpbmcgYXVkaW9TZXNzaW9uQ2F0ZWdvcnkoKTsKIH07CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtDb25uZWN0aW9u
VG9XZWJQcm9jZXNzLmNwcCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0Nv
bm5lY3Rpb25Ub1dlYlByb2Nlc3MuY3BwCmluZGV4IDcwM2Q1OTFjMjRiYmU5MGU2ZjA3ZjRjYjVi
OTQ0YWE2YWViYzdjMzguLmQyZGY4ZDNjNTIxNTdkMjZhNjE1M2ZkN2NlZGQ5Y2Q0YTBmNzJiMTEg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0Nvbm5lY3Rp
b25Ub1dlYlByb2Nlc3MuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0
d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuY3BwCkBAIC00Myw5ICs0MywxMSBAQAogI2luY2x1
ZGUgIk5ldHdvcmtSZXNvdXJjZUxvYWRlck1lc3NhZ2VzLmgiCiAjaW5jbHVkZSAiTmV0d29ya1Nv
Y2tldFN0cmVhbS5oIgogI2luY2x1ZGUgIk5ldHdvcmtTb2NrZXRTdHJlYW1NZXNzYWdlcy5oIgor
I2luY2x1ZGUgIlByZWNvbm5lY3RUYXNrLmgiCiAjaW5jbHVkZSAiUmVtb3RlTmV0d29ya2luZ0Nv
bnRleHQuaCIKICNpbmNsdWRlICJTZXNzaW9uVHJhY2tlci5oIgogI2luY2x1ZGUgIldlYkNvcmVB
cmd1bWVudENvZGVycy5oIgorI2luY2x1ZGUgIldlYkVycm9ycy5oIgogI2luY2x1ZGUgIldlYnNp
dGVEYXRhU3RvcmVQYXJhbWV0ZXJzLmgiCiAjaW5jbHVkZSA8V2ViQ29yZS9OZXR3b3JrU3RvcmFn
ZVNlc3Npb24uaD4KICNpbmNsdWRlIDxXZWJDb3JlL1BpbmdIYW5kbGUuaD4KQEAgLTI4Nyw2ICsy
ODksMjYgQEAgdm9pZCBOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzczo6cHJlZmV0Y2hETlMo
Y29uc3QgU3RyaW5nJiBob3N0bmFtZSkKICAgICBOZXR3b3JrUHJvY2Vzczo6c2luZ2xldG9uKCku
cHJlZmV0Y2hETlMoaG9zdG5hbWUpOwogfQogCit2b2lkIE5ldHdvcmtDb25uZWN0aW9uVG9XZWJQ
cm9jZXNzOjpwcmVjb25uZWN0VG8oUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCB1aW50NjRfdCBw
cmVjb25uZWN0aW9uSWRlbnRpZmllciwgY29uc3QgVVJMJiB1cmwsIFdlYkNvcmU6OlN0b3JlZENy
ZWRlbnRpYWxzUG9saWN5IHN0b3JlZENyZWRlbnRpYWxzUG9saWN5KQoreworI2lmIEVOQUJMRShT
RVJWRVJfUFJFQ09OTkVDVCkKKyAgICBuZXcgUHJlY29ubmVjdFRhc2soc2Vzc2lvbklELCB1cmws
IHN0b3JlZENyZWRlbnRpYWxzUG9saWN5LCBbdGhpcywgcHJvdGVjdGVkVGhpcyA9IG1ha2VSZWYo
KnRoaXMpLCBpZGVudGlmaWVyID0gcHJlY29ubmVjdGlvbklkZW50aWZpZXJdIChjb25zdCBSZXNv
dXJjZUVycm9yJiBlcnJvcikgeworICAgICAgICBkaWRGaW5pc2hQcmVjb25uZWN0aW9uKGlkZW50
aWZpZXIsIGVycm9yKTsKKyAgICB9KTsKKyNlbHNlCisgICAgVU5VU0VEX1BBUkFNKHN0b3JlZENy
ZWRlbnRpYWxzUG9saWN5KTsKKyAgICBkaWRGaW5pc2hQcmVjb25uZWN0aW9uKHByZWNvbm5lY3Rp
b25JZGVudGlmaWVyLCBpbnRlcm5hbEVycm9yKHVybCkpOworI2VuZGlmCit9CisKK3ZvaWQgTmV0
d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6OmRpZEZpbmlzaFByZWNvbm5lY3Rpb24odWludDY0
X3QgcHJlY29ubmVjdGlvbklkZW50aWZpZXIsIGNvbnN0IFJlc291cmNlRXJyb3ImIGVycm9yKQor
eworICAgIGlmICghbV9jb25uZWN0aW9uLT5pc1ZhbGlkKCkpCisgICAgICAgIHJldHVybjsKKwor
ICAgIG1fY29ubmVjdGlvbi0+c2VuZChNZXNzYWdlczo6TmV0d29ya1Byb2Nlc3NDb25uZWN0aW9u
OjpEaWRGaW5pc2hQcmVjb25uZWN0aW9uKHByZWNvbm5lY3Rpb25JZGVudGlmaWVyLCBlcnJvciks
IDApOworfQorCiBzdGF0aWMgTmV0d29ya1N0b3JhZ2VTZXNzaW9uJiBzdG9yYWdlU2Vzc2lvbihQ
QUw6OlNlc3Npb25JRCBzZXNzaW9uSUQpCiB7CiAgICAgQVNTRVJUKHNlc3Npb25JRC5pc1ZhbGlk
KCkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrQ29u
bmVjdGlvblRvV2ViUHJvY2Vzcy5oIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3
b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5oCmluZGV4IGNkMjgwNDJjZmZiZjE2MGNjY2I3ZTVk
NGQ0N2FjMTg2OTU5MjUwZDkuLmIxMGRmNTg1ZGQ2OTBmYzU4ZDQ0OGE5NzE0NzliZTUyNGY5ZjNk
MGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0Nvbm5l
Y3Rpb25Ub1dlYlByb2Nlc3MuaAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05l
dHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmgKQEAgLTc2LDYgKzc2LDggQEAgcHVibGljOgog
cHJpdmF0ZToKICAgICBOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2VzcyhJUEM6OkNvbm5lY3Rp
b246OklkZW50aWZpZXIpOwogCisgICAgdm9pZCBkaWRGaW5pc2hQcmVjb25uZWN0aW9uKHVpbnQ2
NF90IHByZWNvbm5lY3Rpb25JZGVudGlmaWVyLCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZUVycm9y
Jik7CisKICAgICAvLyBJUEM6OkNvbm5lY3Rpb246OkNsaWVudAogICAgIHZvaWQgZGlkUmVjZWl2
ZU1lc3NhZ2UoSVBDOjpDb25uZWN0aW9uJiwgSVBDOjpEZWNvZGVyJikgb3ZlcnJpZGU7CiAgICAg
dm9pZCBkaWRSZWNlaXZlU3luY01lc3NhZ2UoSVBDOjpDb25uZWN0aW9uJiwgSVBDOjpEZWNvZGVy
Jiwgc3RkOjp1bmlxdWVfcHRyPElQQzo6RW5jb2Rlcj4mKSBvdmVycmlkZTsKQEAgLTkwLDYgKzky
LDcgQEAgcHJpdmF0ZToKICAgICB2b2lkIHBlcmZvcm1TeW5jaHJvbm91c0xvYWQoY29uc3QgTmV0
d29ya1Jlc291cmNlTG9hZFBhcmFtZXRlcnMmLCBSZWY8TWVzc2FnZXM6Ok5ldHdvcmtDb25uZWN0
aW9uVG9XZWJQcm9jZXNzOjpQZXJmb3JtU3luY2hyb25vdXNMb2FkOjpEZWxheWVkUmVwbHk+JiYp
OwogICAgIHZvaWQgbG9hZFBpbmcoTmV0d29ya1Jlc291cmNlTG9hZFBhcmFtZXRlcnMmJiwgV2Vi
Q29yZTo6SFRUUEhlYWRlck1hcCYmIG9yaWdpbmFsUmVxdWVzdEhlYWRlcnMpOwogICAgIHZvaWQg
cHJlZmV0Y2hETlMoY29uc3QgU3RyaW5nJik7CisgICAgdm9pZCBwcmVjb25uZWN0VG8oUEFMOjpT
ZXNzaW9uSUQsIHVpbnQ2NF90IHByZWNvbm5lY3Rpb25JZGVudGlmaWVyLCBjb25zdCBXZWJDb3Jl
OjpVUkwmLCBXZWJDb3JlOjpTdG9yZWRDcmVkZW50aWFsc1BvbGljeSk7CiAKICAgICB2b2lkIHJl
bW92ZUxvYWRJZGVudGlmaWVyKFJlc291cmNlTG9hZElkZW50aWZpZXIpOwogICAgIHZvaWQgc2V0
RGVmZXJzTG9hZGluZyhSZXNvdXJjZUxvYWRJZGVudGlmaWVyLCBib29sKTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nl
c3MubWVzc2FnZXMuaW4gYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtDb25u
ZWN0aW9uVG9XZWJQcm9jZXNzLm1lc3NhZ2VzLmluCmluZGV4IGFiZjBmY2NhMDAyYTRhZTUzY2Uw
YWU3MDgyNmJlZWFlNDFkNmVkNTYuLmU4NWU5NzMyODI0ZDAyOWIxYjdlZWRlZjMwOTczZmQ3ZTBh
NzY2ZGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0Nv
bm5lY3Rpb25Ub1dlYlByb2Nlc3MubWVzc2FnZXMuaW4KKysrIGIvU291cmNlL1dlYktpdC9OZXR3
b3JrUHJvY2Vzcy9OZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5tZXNzYWdlcy5pbgpAQCAt
MjgsNiArMjgsNyBAQCBtZXNzYWdlcyAtPiBOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2VzcyBM
ZWdhY3lSZWNlaXZlciB7CiAgICAgUmVtb3ZlTG9hZElkZW50aWZpZXIodWludDY0X3QgcmVzb3Vy
Y2VMb2FkSWRlbnRpZmllcikKICAgICBTZXREZWZlcnNMb2FkaW5nKHVpbnQ2NF90IHJlc291cmNl
TG9hZElkZW50aWZpZXIsIGJvb2wgZGVmZXJzKQogICAgIFByZWZldGNoRE5TKFN0cmluZyBob3N0
bmFtZSkKKyAgICBQcmVjb25uZWN0VG8oUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCB1aW50NjRf
dCBwcmVjb25uZWN0aW9uSWRlbnRpZmllciwgV2ViQ29yZTo6VVJMIHVybCwgZW51bSBXZWJDb3Jl
OjpTdG9yZWRDcmVkZW50aWFsc1BvbGljeSBzdG9yZWRDcmVkZW50aWFsc1BvbGljeSk7CiAKICAg
ICBTdGFydERvd25sb2FkKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgV2ViS2l0OjpEb3dubG9h
ZElEIGRvd25sb2FkSUQsIFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCByZXF1ZXN0LCBTdHJpbmcg
c3VnZ2VzdGVkTmFtZSkKICAgICBDb252ZXJ0TWFpblJlc291cmNlTG9hZFRvRG93bmxvYWQoUEFM
OjpTZXNzaW9uSUQgc2Vzc2lvbklELCB1aW50NjRfdCBtYWluUmVzb3VyY2VMb2FkSWRlbnRpZmll
ciwgV2ViS2l0OjpEb3dubG9hZElEIGRvd25sb2FkSUQsIFdlYkNvcmU6OlJlc291cmNlUmVxdWVz
dCByZXF1ZXN0LCBXZWJDb3JlOjpSZXNvdXJjZVJlc3BvbnNlIHJlc3BvbnNlKQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrRGF0YVRhc2suY3BwIGIvU291
cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrRGF0YVRhc2suY3BwCmluZGV4IDgwNTRi
NDczM2RmZmEzMGQ0YTAyOTJlZjUyYThiOTY2NmNiMzU5NDEuLmJiN2YxNzUxZmZlNGExOWJlNTM4
ODNjZDVlMWIxYWUzODM4MDI1NTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1By
b2Nlc3MvTmV0d29ya0RhdGFUYXNrLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9j
ZXNzL05ldHdvcmtEYXRhVGFzay5jcHAKQEAgLTUzLDcgKzUzLDcgQEAgUmVmPE5ldHdvcmtEYXRh
VGFzaz4gTmV0d29ya0RhdGFUYXNrOjpjcmVhdGUoTmV0d29ya1Nlc3Npb24mIHNlc3Npb24sIE5l
dHdvcmtEYXQKICAgICAgICAgcmV0dXJuIE5ldHdvcmtEYXRhVGFza0Jsb2I6OmNyZWF0ZShzZXNz
aW9uLCBjbGllbnQsIHBhcmFtZXRlcnMucmVxdWVzdCwgcGFyYW1ldGVycy5jb250ZW50U25pZmZp
bmdQb2xpY3ksIHBhcmFtZXRlcnMuYmxvYkZpbGVSZWZlcmVuY2VzKTsKIAogI2lmIFBMQVRGT1JN
KENPQ09BKQotICAgIHJldHVybiBOZXR3b3JrRGF0YVRhc2tDb2NvYTo6Y3JlYXRlKHNlc3Npb24s
IGNsaWVudCwgcGFyYW1ldGVycy5yZXF1ZXN0LCBwYXJhbWV0ZXJzLnN0b3JlZENyZWRlbnRpYWxz
UG9saWN5LCBwYXJhbWV0ZXJzLmNvbnRlbnRTbmlmZmluZ1BvbGljeSwgcGFyYW1ldGVycy5zaG91
bGRDbGVhclJlZmVycmVyT25IVFRQU1RvSFRUUFJlZGlyZWN0KTsKKyAgICByZXR1cm4gTmV0d29y
a0RhdGFUYXNrQ29jb2E6OmNyZWF0ZShzZXNzaW9uLCBjbGllbnQsIHBhcmFtZXRlcnMucmVxdWVz
dCwgcGFyYW1ldGVycy5zdG9yZWRDcmVkZW50aWFsc1BvbGljeSwgcGFyYW1ldGVycy5jb250ZW50
U25pZmZpbmdQb2xpY3ksIHBhcmFtZXRlcnMuc2hvdWxkQ2xlYXJSZWZlcnJlck9uSFRUUFNUb0hU
VFBSZWRpcmVjdCwgcGFyYW1ldGVycy5zaG91bGRQcmVjb25uZWN0T25seSk7CiAjZW5kaWYKICNp
ZiBVU0UoU09VUCkKICAgICByZXR1cm4gTmV0d29ya0RhdGFUYXNrU291cDo6Y3JlYXRlKHNlc3Np
b24sIGNsaWVudCwgcGFyYW1ldGVycy5yZXF1ZXN0LCBwYXJhbWV0ZXJzLnN0b3JlZENyZWRlbnRp
YWxzUG9saWN5LCBwYXJhbWV0ZXJzLmNvbnRlbnRTbmlmZmluZ1BvbGljeSwgcGFyYW1ldGVycy5z
aG91bGRDbGVhclJlZmVycmVyT25IVFRQU1RvSFRUUFJlZGlyZWN0KTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0xvYWRQYXJhbWV0ZXJzLmggYi9Tb3Vy
Y2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtMb2FkUGFyYW1ldGVycy5oCmluZGV4IDFm
YmQyZGE0OTFkODc2ZjFhYWI5ZDEyOGU4MzRmZTRkNzFkNDkxMGIuLjI1YWE1MDU4MGRlOWE5OGFj
ZGMwMjdhODEwN2EyOGVhODkzNDc1NzggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29y
a1Byb2Nlc3MvTmV0d29ya0xvYWRQYXJhbWV0ZXJzLmgKKysrIGIvU291cmNlL1dlYktpdC9OZXR3
b3JrUHJvY2Vzcy9OZXR3b3JrTG9hZFBhcmFtZXRlcnMuaApAQCAtMzMsNiArMzMsOCBAQAogCiBu
YW1lc3BhY2UgV2ViS2l0IHsKIAorZW51bSBjbGFzcyBQcmVjb25uZWN0T25seSB7IE5vLCBZZXMg
fTsKKwogY2xhc3MgTmV0d29ya0xvYWRQYXJhbWV0ZXJzIHsKIHB1YmxpYzoKICAgICB1aW50NjRf
dCB3ZWJQYWdlSUQgeyAwIH07CkBAIC00OSw2ICs1MSw3IEBAIHB1YmxpYzoKICNpZiBVU0UoTkVU
V09SS19TRVNTSU9OKQogICAgIFZlY3RvcjxSZWZQdHI8V2ViQ29yZTo6QmxvYkRhdGFGaWxlUmVm
ZXJlbmNlPj4gYmxvYkZpbGVSZWZlcmVuY2VzOwogI2VuZGlmCisgICAgUHJlY29ubmVjdE9ubHkg
c2hvdWxkUHJlY29ubmVjdE9ubHkgeyBQcmVjb25uZWN0T25seTo6Tm8gfTsKIH07CiAKIH0gLy8g
bmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vz
cy9OZXR3b3JrUHJvY2Vzcy5jcHAgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdv
cmtQcm9jZXNzLmNwcAppbmRleCA3OWUwMmNmODcyMTUyYzdhMDliNjg0OWE2NWQ2YWUzZDhiM2U2
NTg4Li5kNDZjNmYzYjA3NTk0ZWFlMmZjZTYwYTdiNzIzM2I0YTUxYjZjMDRmIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLmNwcAorKysgYi9T
b3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLmNwcApAQCAtNDAsNiAr
NDAsNyBAQAogI2luY2x1ZGUgIk5ldHdvcmtQcm9jZXNzUHJveHlNZXNzYWdlcy5oIgogI2luY2x1
ZGUgIk5ldHdvcmtSZXNvdXJjZUxvYWRlci5oIgogI2luY2x1ZGUgIk5ldHdvcmtTZXNzaW9uLmgi
CisjaW5jbHVkZSAiUHJlY29ubmVjdFRhc2suaCIKICNpbmNsdWRlICJSZW1vdGVOZXR3b3JraW5n
Q29udGV4dC5oIgogI2luY2x1ZGUgIlNlc3Npb25UcmFja2VyLmgiCiAjaW5jbHVkZSAiU3RhdGlz
dGljc0RhdGEuaCIKQEAgLTcyNSw2ICs3MjYsMTYgQEAgU3RyaW5nIE5ldHdvcmtQcm9jZXNzOjpj
YWNoZVN0b3JhZ2VEaXJlY3RvcnkoUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklEKSBjb25zdAogICAg
IHJldHVybiBzZXNzaW9uLT5jYWNoZVN0b3JhZ2VEaXJlY3RvcnkoKTsKIH0KIAordm9pZCBOZXR3
b3JrUHJvY2Vzczo6cHJlY29ubmVjdFRvKGNvbnN0IFdlYkNvcmU6OlVSTCYgdXJsLCBXZWJDb3Jl
OjpTdG9yZWRDcmVkZW50aWFsc1BvbGljeSBzdG9yZWRDcmVkZW50aWFsc1BvbGljeSkKK3sKKyNp
ZiBFTkFCTEUoU0VSVkVSX1BSRUNPTk5FQ1QpCisgICAgbmV3IFByZWNvbm5lY3RUYXNrKFBBTDo6
U2Vzc2lvbklEOjpkZWZhdWx0U2Vzc2lvbklEKCksIHVybCwgc3RvcmVkQ3JlZGVudGlhbHNQb2xp
Y3kpOworI2Vsc2UKKyAgICBVTlVTRURfUEFSQU0odXJsKTsKKyAgICBVTlVTRURfUEFSQU0oc3Rv
cmVkQ3JlZGVudGlhbHNQb2xpY3kpOworI2VuZGlmCit9CisKICNpZiAhUExBVEZPUk0oQ09DT0Ep
CiB2b2lkIE5ldHdvcmtQcm9jZXNzOjppbml0aWFsaXplUHJvY2Vzcyhjb25zdCBDaGlsZFByb2Nl
c3NJbml0aWFsaXphdGlvblBhcmFtZXRlcnMmKQogewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5oIGIvU291cmNlL1dlYktpdC9OZXR3b3Jr
UHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5oCmluZGV4IDE0YTUyMmZjZDZkZDVmMGZkYmM0YTUwMTA1
YTBhYjQwYmIwYzUyYjAuLmI5ZmE3MjA4NGM0ODA5NTEyNzRhZjlhNDE0N2JlZWIwNTcxYjhiNTYg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3Mu
aAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLmgKQEAg
LTU0LDYgKzU0LDggQEAgY2xhc3MgUHJvdGVjdGlvblNwYWNlOwogY2xhc3MgU2VjdXJpdHlPcmln
aW47CiBzdHJ1Y3QgU2VjdXJpdHlPcmlnaW5EYXRhOwogc3RydWN0IFNvdXBOZXR3b3JrUHJveHlT
ZXR0aW5nczsKK2VudW0gY2xhc3MgU3RvcmVkQ3JlZGVudGlhbHNQb2xpY3k7CitjbGFzcyBVUkw7
CiB9CiAKIG5hbWVzcGFjZSBXZWJLaXQgewpAQCAtMTM3LDYgKzEzOSw4IEBAIHB1YmxpYzoKICAg
ICBTZWNvbmRzIGxvYWRUaHJvdHRsZUxhdGVuY3koKSBjb25zdCB7IHJldHVybiBtX2xvYWRUaHJv
dHRsZUxhdGVuY3k7IH0KICAgICBTdHJpbmcgY2FjaGVTdG9yYWdlRGlyZWN0b3J5KFBBTDo6U2Vz
c2lvbklEKSBjb25zdDsKIAorICAgIHZvaWQgcHJlY29ubmVjdFRvKGNvbnN0IFdlYkNvcmU6OlVS
TCYsIFdlYkNvcmU6OlN0b3JlZENyZWRlbnRpYWxzUG9saWN5KTsKKwogcHJpdmF0ZToKICAgICBO
ZXR3b3JrUHJvY2VzcygpOwogICAgIH5OZXR3b3JrUHJvY2VzcygpOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5tZXNzYWdlcy5pbiBiL1Nv
dXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MubWVzc2FnZXMuaW4KaW5k
ZXggNjk0ZTQ3NDg4NmUwZjc4NGY3NTliNGViZGQ4ZTZlOWU1ZTY5YzU4OC4uNDYxZjFjMGVjMjgy
ZjIxNmVmODlhNDk4ZTMyOTQ2ZDhlMTYzNTg4YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9O
ZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5tZXNzYWdlcy5pbgorKysgYi9Tb3VyY2UvV2Vi
S2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLm1lc3NhZ2VzLmluCkBAIC04Miw2ICs4
Miw4IEBAIG1lc3NhZ2VzIC0+IE5ldHdvcmtQcm9jZXNzIExlZ2FjeVJlY2VpdmVyIHsKIAogICAg
IERpZEdyYW50U2FuZGJveEV4dGVuc2lvbnNUb1N0b3JhZ2VQcm9jZXNzRm9yQmxvYnModWludDY0
X3QgcmVxdWVzdElEKQogCisgICAgUHJlY29ubmVjdFRvKFdlYkNvcmU6OlVSTCB1cmwsIGVudW0g
V2ViQ29yZTo6U3RvcmVkQ3JlZGVudGlhbHNQb2xpY3kgc3RvcmVkQ3JlZGVudGlhbHNQb2xpY3kp
OworCiAjaWYgSEFWRShDRk5FVFdPUktfU1RPUkFHRV9QQVJUSVRJT05JTkcpCiAgICAgVXBkYXRl
UHJldmFsZW50RG9tYWluc1RvUGFydGl0aW9uT3JCbG9ja0Nvb2tpZXMoUEFMOjpTZXNzaW9uSUQg
c2Vzc2lvbklELCBWZWN0b3I8U3RyaW5nPiBkb21haW5zVG9QYXJ0aXRpb24sIFZlY3RvcjxTdHJp
bmc+IGRvbWFpbnNUb0Jsb2NrLCBWZWN0b3I8U3RyaW5nPiBkb21haW5zVG9OZWl0aGVyUGFydGl0
aW9uTm9yQmxvY2ssIGJvb2wgc2hvdWxkQ2xlYXJGaXJzdCkKICAgICBSZW1vdmVQcmV2YWxlbnRE
b21haW5zKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgVmVjdG9yPFN0cmluZz4gZG9tYWluc1dp
dGhJbnRlcmFjdGlvbik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNz
L1ByZWNvbm5lY3RUYXNrLmNwcCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvUHJlY29u
bmVjdFRhc2suY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmNhODkzMzQwMTM2YTk1MTAyMjQzYTY5YWNiZGVkNDk0
YWRmY2RjNTQKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNz
L1ByZWNvbm5lY3RUYXNrLmNwcApAQCAtMCwwICsxLDEzNiBAQAorLyoKKyAqIENvcHlyaWdodCAo
QykgMjAxNyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmli
dXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0
CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93
aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291
cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICog
Mi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29y
IG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICog
VEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVU
T1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywg
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVT
IE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQ
T1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBD
T05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lE
RU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAo
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElU
VVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1Ig
QlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVP
UlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElU
WSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lO
RyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURW
SVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNs
dWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJQcmVjb25uZWN0VGFzay5oIgorCisjaWYgRU5BQkxF
KFNFUlZFUl9QUkVDT05ORUNUKQorCisjaW5jbHVkZSAiQXV0aGVudGljYXRpb25NYW5hZ2VyLmgi
CisjaW5jbHVkZSAiTG9nZ2luZy5oIgorI2luY2x1ZGUgIk5ldHdvcmtMb2FkUGFyYW1ldGVycy5o
IgorI2luY2x1ZGUgIk5ldHdvcmtTZXNzaW9uLmgiCisjaW5jbHVkZSAiU2Vzc2lvblRyYWNrZXIu
aCIKKyNpbmNsdWRlICJXZWJFcnJvcnMuaCIKKyNpbmNsdWRlIDxXZWJDb3JlL0F1dGhlbnRpY2F0
aW9uQ2hhbGxlbmdlLmg+CisjaW5jbHVkZSA8V2ViQ29yZS9SZXNvdXJjZUVycm9yLmg+CisKKyNp
ZiBQTEFURk9STShDT0NPQSkKKyNpbmNsdWRlICJOZXR3b3JrRGF0YVRhc2tDb2NvYS5oIgorI2Vu
ZGlmCisKK25hbWVzcGFjZSBXZWJLaXQgeworCit1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKKwor
UHJlY29ubmVjdFRhc2s6OlByZWNvbm5lY3RUYXNrKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwg
Y29uc3QgVVJMJiB1cmwsIFdlYkNvcmU6OlN0b3JlZENyZWRlbnRpYWxzUG9saWN5IHN0b3JlZENy
ZWRlbnRpYWxzUG9saWN5LCBXVEY6OkNvbXBsZXRpb25IYW5kbGVyPHZvaWQoY29uc3QgV2ViQ29y
ZTo6UmVzb3VyY2VFcnJvciYpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQorICAgIDogbV9jb21wbGV0
aW9uSGFuZGxlcihXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKSkKKyAgICAsIG1fdGltZW91dFRp
bWVyKFt0aGlzXSB7IGRpZEZpbmlzaChSZXNvdXJjZUVycm9yIHsgU3RyaW5nKCksIDAsIG1fdGFz
ay0+Zmlyc3RSZXF1ZXN0KCkudXJsKCksIEFTQ0lJTGl0ZXJhbCgiUHJlY29ubmVjdGlvbiB0aW1l
ZCBvdXQiKSwgUmVzb3VyY2VFcnJvcjo6VHlwZTo6VGltZW91dCB9KTsgfSkKK3sKKyAgICBhdXRv
KiBuZXR3b3JrU2Vzc2lvbiA9IFNlc3Npb25UcmFja2VyOjpuZXR3b3JrU2Vzc2lvbihzZXNzaW9u
SUQpOworICAgIEFTU0VSVChuZXR3b3JrU2Vzc2lvbik7CisKKyAgICBSRUxFQVNFX0xPRyhOZXR3
b3JrLCAiJXAgLSBQcmVjb25uZWN0VGFzazo6UHJlY29ubmVjdFRhc2soKSIsIHRoaXMpOworICAg
IE5ldHdvcmtMb2FkUGFyYW1ldGVycyBwYXJhbWV0ZXJzOworICAgIHBhcmFtZXRlcnMucmVxdWVz
dCA9IFJlc291cmNlUmVxdWVzdCh1cmwpOworICAgIHBhcmFtZXRlcnMuc2hvdWxkUHJlY29ubmVj
dE9ubHkgPSBQcmVjb25uZWN0T25seTo6WWVzOworICAgIHBhcmFtZXRlcnMuc3RvcmVkQ3JlZGVu
dGlhbHNQb2xpY3kgPSBzdG9yZWRDcmVkZW50aWFsc1BvbGljeTsKKyAgICBtX3Rhc2sgPSBOZXR3
b3JrRGF0YVRhc2s6OmNyZWF0ZSgqbmV0d29ya1Nlc3Npb24sICp0aGlzLCBwYXJhbWV0ZXJzKTsK
KyAgICBtX3Rhc2stPnJlc3VtZSgpOworCisgICAgbV90aW1lb3V0VGltZXIuc3RhcnRPbmVTaG90
KDYwMDAwX3MpOworfQorCitQcmVjb25uZWN0VGFzazo6flByZWNvbm5lY3RUYXNrKCkKK3sKKyAg
ICBBU1NFUlQobV90YXNrLT5jbGllbnQoKSA9PSB0aGlzKTsKKyAgICBtX3Rhc2stPmNsZWFyQ2xp
ZW50KCk7CisgICAgbV90YXNrLT5jYW5jZWwoKTsKK30KKwordm9pZCBQcmVjb25uZWN0VGFzazo6
d2lsbFBlcmZvcm1IVFRQUmVkaXJlY3Rpb24oV2ViQ29yZTo6UmVzb3VyY2VSZXNwb25zZSYmLCBX
ZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmJiwgUmVkaXJlY3RDb21wbGV0aW9uSGFuZGxlciYmKQor
eworICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOworfQorCit2b2lkIFByZWNvbm5lY3RUYXNrOjpk
aWRSZWNlaXZlQ2hhbGxlbmdlKGNvbnN0IFdlYkNvcmU6OkF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdl
JiBjaGFsbGVuZ2UsIENoYWxsZW5nZUNvbXBsZXRpb25IYW5kbGVyJiYgY29tcGxldGlvbkhhbmRs
ZXIpCit7CisgICAgaWYgKGNoYWxsZW5nZS5wcm90ZWN0aW9uU3BhY2UoKS5hdXRoZW50aWNhdGlv
blNjaGVtZSgpID09IFByb3RlY3Rpb25TcGFjZUF1dGhlbnRpY2F0aW9uU2NoZW1lU2VydmVyVHJ1
c3RFdmFsdWF0aW9uUmVxdWVzdGVkKSB7CisgICAgICAgIGlmIChtX3Rhc2sgJiYgbV90YXNrLT5h
bGxvd3NTcGVjaWZpY0hUVFBTQ2VydGlmaWNhdGVGb3JIb3N0KGNoYWxsZW5nZSkpCisgICAgICAg
ICAgICBjb21wbGV0aW9uSGFuZGxlcihBdXRoZW50aWNhdGlvbkNoYWxsZW5nZURpc3Bvc2l0aW9u
OjpVc2VDcmVkZW50aWFsLCBzZXJ2ZXJUcnVzdENyZWRlbnRpYWwoY2hhbGxlbmdlKSk7CisgICAg
ICAgIGVsc2UKKyAgICAgICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKEF1dGhlbnRpY2F0aW9uQ2hh
bGxlbmdlRGlzcG9zaXRpb246OlJlamVjdFByb3RlY3Rpb25TcGFjZSwgeyB9KTsKKyAgICAgICAg
cmV0dXJuOworICAgIH0KKyAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKK30KKwordm9pZCBQcmVj
b25uZWN0VGFzazo6ZGlkUmVjZWl2ZVJlc3BvbnNlTmV0d29ya1Nlc3Npb24oV2ViQ29yZTo6UmVz
b3VyY2VSZXNwb25zZSYmLCBSZXNwb25zZUNvbXBsZXRpb25IYW5kbGVyJiYpCit7CisgICAgQVNT
RVJUX05PVF9SRUFDSEVEKCk7Cit9CisKK3ZvaWQgUHJlY29ubmVjdFRhc2s6OmRpZFJlY2VpdmVE
YXRhKFJlZjxXZWJDb3JlOjpTaGFyZWRCdWZmZXI+JiYpCit7CisgICAgQVNTRVJUX05PVF9SRUFD
SEVEKCk7Cit9CisKK3ZvaWQgUHJlY29ubmVjdFRhc2s6OmRpZENvbXBsZXRlV2l0aEVycm9yKGNv
bnN0IFdlYkNvcmU6OlJlc291cmNlRXJyb3ImIGVycm9yLCBjb25zdCBXZWJDb3JlOjpOZXR3b3Jr
TG9hZE1ldHJpY3MmKQoreworICAgIGlmIChlcnJvci5pc051bGwoKSkKKyAgICAgICAgUkVMRUFT
RV9MT0coTmV0d29yaywgIiVwIC0gUHJlY29ubmVjdFRhc2s6OmRpZENvbXBsZXRlIiwgdGhpcyk7
CisgICAgZWxzZQorICAgICAgICBSRUxFQVNFX0xPRyhOZXR3b3JrLCAiJXAgLSBQcmVjb25uZWN0
VGFzazo6ZGlkQ29tcGxldGVXaXRoRXJyb3IsIGVycm9yX2NvZGU6ICVkIiwgdGhpcywgZXJyb3Iu
ZXJyb3JDb2RlKCkpOworCisgICAgZGlkRmluaXNoKGVycm9yKTsKK30KKwordm9pZCBQcmVjb25u
ZWN0VGFzazo6ZGlkU2VuZERhdGEodWludDY0X3QgdG90YWxCeXRlc1NlbnQsIHVpbnQ2NF90IHRv
dGFsQnl0ZXNFeHBlY3RlZFRvU2VuZCkKK3sKKyAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKK30K
Kwordm9pZCBQcmVjb25uZWN0VGFzazo6d2FzQmxvY2tlZCgpCit7CisgICAgUkVMRUFTRV9MT0co
TmV0d29yaywgIiVwIC0gUHJlY29ubmVjdFRhc2s6Ondhc0Jsb2NrZWQoKSIsIHRoaXMpOworICAg
IGRpZEZpbmlzaChibG9ja2VkRXJyb3IobV90YXNrLT5maXJzdFJlcXVlc3QoKSkpOworfQorCit2
b2lkIFByZWNvbm5lY3RUYXNrOjpjYW5ub3RTaG93VVJMKCkKK3sKKyAgICBSRUxFQVNFX0xPRyhO
ZXR3b3JrLCAiJXAgLSBQcmVjb25uZWN0VGFzazo6Y2Fubm90U2hvd1VSTCgpIiwgdGhpcyk7Cisg
ICAgZGlkRmluaXNoKGNhbm5vdFNob3dVUkxFcnJvcihtX3Rhc2stPmZpcnN0UmVxdWVzdCgpKSk7
Cit9CisKK3ZvaWQgUHJlY29ubmVjdFRhc2s6OmRpZEZpbmlzaChjb25zdCBSZXNvdXJjZUVycm9y
JiBlcnJvcikKK3sKKyAgICBpZiAobV9jb21wbGV0aW9uSGFuZGxlcikKKyAgICAgICAgbV9jb21w
bGV0aW9uSGFuZGxlcihlcnJvcik7CisgICAgZGVsZXRlIHRoaXM7Cit9CisKK30gLy8gbmFtZXNw
YWNlIFdlYktpdAorCisjZW5kaWYgLy8gRU5BQkxFKFNFUlZFUl9QUkVDT05ORUNUKQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9QcmVjb25uZWN0VGFzay5oIGIvU291
cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9QcmVjb25uZWN0VGFzay5oCm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmJm
OWUzOTVlODFlYjEyOTI1ZTJiODVkODgzMDI1N2IwYTk2YzYxMmIKLS0tIC9kZXYvbnVsbAorKysg
Yi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL1ByZWNvbm5lY3RUYXNrLmgKQEAgLTAsMCAr
MSw2NSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNyBBcHBsZSBJbmMuIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJp
bmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0
ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6Cisg
KiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3Zl
IGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBm
b3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUK
KyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRo
IHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBB
UFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBS
RVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
CisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVT
UyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVO
VCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1Ig
QU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IK
KyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
IFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9G
IFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9X
RVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisg
KiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VO
Q0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9G
IFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9G
IFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisjaWYgRU5BQkxFKFNFUlZFUl9Q
UkVDT05ORUNUKQorCisjaW5jbHVkZSAiTmV0d29ya0RhdGFUYXNrLmgiCisjaW5jbHVkZSA8V2Vi
Q29yZS9UaW1lci5oPgorI2luY2x1ZGUgPHd0Zi9Db21wbGV0aW9uSGFuZGxlci5oPgorCituYW1l
c3BhY2UgUEFMIHsKK2NsYXNzIFNlc3Npb25JRDsKK30KKworbmFtZXNwYWNlIFdlYktpdCB7CisK
K2NsYXNzIFByZWNvbm5lY3RUYXNrIGZpbmFsIDogcHJpdmF0ZSBOZXR3b3JrRGF0YVRhc2tDbGll
bnQgeworcHVibGljOgorICAgIGV4cGxpY2l0IFByZWNvbm5lY3RUYXNrKFBBTDo6U2Vzc2lvbklE
LCBjb25zdCBXZWJDb3JlOjpVUkwmLCBXZWJDb3JlOjpTdG9yZWRDcmVkZW50aWFsc1BvbGljeSwg
V1RGOjpDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGNvbnN0IFdlYkNvcmU6OlJlc291cmNlRXJyb3Im
KT4mJiBjb21wbGV0aW9uSGFuZGxlciA9IHsgfSk7CisgICAgflByZWNvbm5lY3RUYXNrKCk7CisK
K3ByaXZhdGU6CisgICAgLy8gTmV0d29ya0RhdGFUYXNrQ2xpZW50LgorICAgIHZvaWQgd2lsbFBl
cmZvcm1IVFRQUmVkaXJlY3Rpb24oV2ViQ29yZTo6UmVzb3VyY2VSZXNwb25zZSYmLCBXZWJDb3Jl
OjpSZXNvdXJjZVJlcXVlc3QmJiwgUmVkaXJlY3RDb21wbGV0aW9uSGFuZGxlciYmKSBmaW5hbDsK
KyAgICB2b2lkIGRpZFJlY2VpdmVDaGFsbGVuZ2UoY29uc3QgV2ViQ29yZTo6QXV0aGVudGljYXRp
b25DaGFsbGVuZ2UmLCBDaGFsbGVuZ2VDb21wbGV0aW9uSGFuZGxlciYmKSBmaW5hbDsKKyAgICB2
b2lkIGRpZFJlY2VpdmVSZXNwb25zZU5ldHdvcmtTZXNzaW9uKFdlYkNvcmU6OlJlc291cmNlUmVz
cG9uc2UmJiwgUmVzcG9uc2VDb21wbGV0aW9uSGFuZGxlciYmKSBmaW5hbDsKKyAgICB2b2lkIGRp
ZFJlY2VpdmVEYXRhKFJlZjxXZWJDb3JlOjpTaGFyZWRCdWZmZXI+JiYpIGZpbmFsOworICAgIHZv
aWQgZGlkQ29tcGxldGVXaXRoRXJyb3IoY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VFcnJvciYsIGNv
bnN0IFdlYkNvcmU6Ok5ldHdvcmtMb2FkTWV0cmljcyYpIGZpbmFsOworICAgIHZvaWQgZGlkU2Vu
ZERhdGEodWludDY0X3QgdG90YWxCeXRlc1NlbnQsIHVpbnQ2NF90IHRvdGFsQnl0ZXNFeHBlY3Rl
ZFRvU2VuZCkgZmluYWw7CisgICAgdm9pZCB3YXNCbG9ja2VkKCkgZmluYWw7CisgICAgdm9pZCBj
YW5ub3RTaG93VVJMKCkgZmluYWw7CisKKyAgICB2b2lkIGRpZEZpbmlzaChjb25zdCBXZWJDb3Jl
OjpSZXNvdXJjZUVycm9yJik7CisKKyAgICBSZWZQdHI8TmV0d29ya0RhdGFUYXNrPiBtX3Rhc2s7
CisgICAgV1RGOjpDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGNvbnN0IFdlYkNvcmU6OlJlc291cmNl
RXJyb3ImKT4gbV9jb21wbGV0aW9uSGFuZGxlcjsKKyAgICBXZWJDb3JlOjpUaW1lciBtX3RpbWVv
dXRUaW1lcjsKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdAorCisjZW5kaWYgLy8gRU5BQkxF
KFNFUlZFUl9QUkVDT05ORUNUKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJv
Y2Vzcy9jb2NvYS9OZXR3b3JrRGF0YVRhc2tDb2NvYS5oIGIvU291cmNlL1dlYktpdC9OZXR3b3Jr
UHJvY2Vzcy9jb2NvYS9OZXR3b3JrRGF0YVRhc2tDb2NvYS5oCmluZGV4IGNkZjQzMjRjMDZiZDZj
NzExMDA3NDcwNmU1Mjk1MjE5ODBmMDQzYzguLjIxMmE5YTA4ZmIxMjExN2VkODNhMTIyNmRmYmY0
ZmFmMGY0OWUyMmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvY29j
b2EvTmV0d29ya0RhdGFUYXNrQ29jb2EuaAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9j
ZXNzL2NvY29hL05ldHdvcmtEYXRhVGFza0NvY29hLmgKQEAgLTI4LDYgKzI4LDcgQEAKICNpZiBV
U0UoTkVUV09SS19TRVNTSU9OKQogCiAjaW5jbHVkZSAiTmV0d29ya0RhdGFUYXNrLmgiCisjaW5j
bHVkZSAiTmV0d29ya0xvYWRQYXJhbWV0ZXJzLmgiCiAjaW5jbHVkZSA8V2ViQ29yZS9OZXR3b3Jr
TG9hZE1ldHJpY3MuaD4KICNpbmNsdWRlIDx3dGYvUmV0YWluUHRyLmg+CiAKQEAgLTQwLDkgKzQx
LDkgQEAgY2xhc3MgTmV0d29ya1Nlc3Npb25Db2NvYTsKIGNsYXNzIE5ldHdvcmtEYXRhVGFza0Nv
Y29hIGZpbmFsIDogcHVibGljIE5ldHdvcmtEYXRhVGFzayB7CiAgICAgZnJpZW5kIGNsYXNzIE5l
dHdvcmtTZXNzaW9uQ29jb2E7CiBwdWJsaWM6Ci0gICAgc3RhdGljIFJlZjxOZXR3b3JrRGF0YVRh
c2s+IGNyZWF0ZShOZXR3b3JrU2Vzc2lvbiYgc2Vzc2lvbiwgTmV0d29ya0RhdGFUYXNrQ2xpZW50
JiBjbGllbnQsIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCwgV2ViQ29y
ZTo6U3RvcmVkQ3JlZGVudGlhbHNQb2xpY3kgc3RvcmVkQ3JlZGVudGlhbHNQb2xpY3ksIFdlYkNv
cmU6OkNvbnRlbnRTbmlmZmluZ1BvbGljeSBzaG91bGRDb250ZW50U25pZmYsIGJvb2wgc2hvdWxk
Q2xlYXJSZWZlcnJlck9uSFRUUFNUb0hUVFBSZWRpcmVjdCkKKyAgICBzdGF0aWMgUmVmPE5ldHdv
cmtEYXRhVGFzaz4gY3JlYXRlKE5ldHdvcmtTZXNzaW9uJiBzZXNzaW9uLCBOZXR3b3JrRGF0YVRh
c2tDbGllbnQmIGNsaWVudCwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0
LCBXZWJDb3JlOjpTdG9yZWRDcmVkZW50aWFsc1BvbGljeSBzdG9yZWRDcmVkZW50aWFsc1BvbGlj
eSwgV2ViQ29yZTo6Q29udGVudFNuaWZmaW5nUG9saWN5IHNob3VsZENvbnRlbnRTbmlmZiwgYm9v
bCBzaG91bGRDbGVhclJlZmVycmVyT25IVFRQU1RvSFRUUFJlZGlyZWN0LCBQcmVjb25uZWN0T25s
eSBzaG91bGRQcmVjb25uZWN0T25seSkKICAgICB7Ci0gICAgICAgIHJldHVybiBhZG9wdFJlZigq
bmV3IE5ldHdvcmtEYXRhVGFza0NvY29hKHNlc3Npb24sIGNsaWVudCwgcmVxdWVzdCwgc3RvcmVk
Q3JlZGVudGlhbHNQb2xpY3ksIHNob3VsZENvbnRlbnRTbmlmZiwgc2hvdWxkQ2xlYXJSZWZlcnJl
ck9uSFRUUFNUb0hUVFBSZWRpcmVjdCkpOworICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBO
ZXR3b3JrRGF0YVRhc2tDb2NvYShzZXNzaW9uLCBjbGllbnQsIHJlcXVlc3QsIHN0b3JlZENyZWRl
bnRpYWxzUG9saWN5LCBzaG91bGRDb250ZW50U25pZmYsIHNob3VsZENsZWFyUmVmZXJyZXJPbkhU
VFBTVG9IVFRQUmVkaXJlY3QsIHNob3VsZFByZWNvbm5lY3RPbmx5KSk7CiAgICAgfQogCiAgICAg
fk5ldHdvcmtEYXRhVGFza0NvY29hKCk7CkBAIC03MSw3ICs3Miw3IEBAIHB1YmxpYzoKICAgICBX
ZWJDb3JlOjpOZXR3b3JrTG9hZE1ldHJpY3MmIG5ldHdvcmtMb2FkTWV0cmljcygpIHsgcmV0dXJu
IG1fbmV0d29ya0xvYWRNZXRyaWNzOyB9CiAKIHByaXZhdGU6Ci0gICAgTmV0d29ya0RhdGFUYXNr
Q29jb2EoTmV0d29ya1Nlc3Npb24mLCBOZXR3b3JrRGF0YVRhc2tDbGllbnQmLCBjb25zdCBXZWJD
b3JlOjpSZXNvdXJjZVJlcXVlc3QmLCBXZWJDb3JlOjpTdG9yZWRDcmVkZW50aWFsc1BvbGljeSwg
V2ViQ29yZTo6Q29udGVudFNuaWZmaW5nUG9saWN5LCBib29sIHNob3VsZENsZWFyUmVmZXJyZXJP
bkhUVFBTVG9IVFRQUmVkaXJlY3QpOworICAgIE5ldHdvcmtEYXRhVGFza0NvY29hKE5ldHdvcmtT
ZXNzaW9uJiwgTmV0d29ya0RhdGFUYXNrQ2xpZW50JiwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VS
ZXF1ZXN0JiwgV2ViQ29yZTo6U3RvcmVkQ3JlZGVudGlhbHNQb2xpY3ksIFdlYkNvcmU6OkNvbnRl
bnRTbmlmZmluZ1BvbGljeSwgYm9vbCBzaG91bGRDbGVhclJlZmVycmVyT25IVFRQU1RvSFRUUFJl
ZGlyZWN0LCBQcmVjb25uZWN0T25seSk7CiAKICAgICBib29sIHRyeVBhc3N3b3JkQmFzZWRBdXRo
ZW50aWNhdGlvbihjb25zdCBXZWJDb3JlOjpBdXRoZW50aWNhdGlvbkNoYWxsZW5nZSYsIENoYWxs
ZW5nZUNvbXBsZXRpb25IYW5kbGVyJik7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0
d29ya1Byb2Nlc3MvY29jb2EvTmV0d29ya0RhdGFUYXNrQ29jb2EubW0gYi9Tb3VyY2UvV2ViS2l0
L05ldHdvcmtQcm9jZXNzL2NvY29hL05ldHdvcmtEYXRhVGFza0NvY29hLm1tCmluZGV4IDk5N2Uw
ZWUxYWY2ODgzZWU3MjhkMzAwMDQ4Y2M2YjJlZDQ5ZDI0OTkuLmRiYmIxMDA0MDE0OWE0ZjZlZjIw
ZGUzOTNmN2M5Njg2NjFiODRlODYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1By
b2Nlc3MvY29jb2EvTmV0d29ya0RhdGFUYXNrQ29jb2EubW0KKysrIGIvU291cmNlL1dlYktpdC9O
ZXR3b3JrUHJvY2Vzcy9jb2NvYS9OZXR3b3JrRGF0YVRhc2tDb2NvYS5tbQpAQCAtNzQsNyArNzQs
NyBAQCBzdGF0aWMgZmxvYXQgdG9OU1VSTFNlc3Npb25UYXNrUHJpb3JpdHkoV2ViQ29yZTo6UmVz
b3VyY2VMb2FkUHJpb3JpdHkgcHJpb3JpdHkpCiAgICAgcmV0dXJuIE5TVVJMU2Vzc2lvblRhc2tQ
cmlvcml0eURlZmF1bHQ7CiB9CiAKLU5ldHdvcmtEYXRhVGFza0NvY29hOjpOZXR3b3JrRGF0YVRh
c2tDb2NvYShOZXR3b3JrU2Vzc2lvbiYgc2Vzc2lvbiwgTmV0d29ya0RhdGFUYXNrQ2xpZW50JiBj
bGllbnQsIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYgcmVxdWVzdFdpdGhDcmVkZW50
aWFscywgV2ViQ29yZTo6U3RvcmVkQ3JlZGVudGlhbHNQb2xpY3kgc3RvcmVkQ3JlZGVudGlhbHNQ
b2xpY3ksIFdlYkNvcmU6OkNvbnRlbnRTbmlmZmluZ1BvbGljeSBzaG91bGRDb250ZW50U25pZmYs
IGJvb2wgc2hvdWxkQ2xlYXJSZWZlcnJlck9uSFRUUFNUb0hUVFBSZWRpcmVjdCkKK05ldHdvcmtE
YXRhVGFza0NvY29hOjpOZXR3b3JrRGF0YVRhc2tDb2NvYShOZXR3b3JrU2Vzc2lvbiYgc2Vzc2lv
biwgTmV0d29ya0RhdGFUYXNrQ2xpZW50JiBjbGllbnQsIGNvbnN0IFdlYkNvcmU6OlJlc291cmNl
UmVxdWVzdCYgcmVxdWVzdFdpdGhDcmVkZW50aWFscywgV2ViQ29yZTo6U3RvcmVkQ3JlZGVudGlh
bHNQb2xpY3kgc3RvcmVkQ3JlZGVudGlhbHNQb2xpY3ksIFdlYkNvcmU6OkNvbnRlbnRTbmlmZmlu
Z1BvbGljeSBzaG91bGRDb250ZW50U25pZmYsIGJvb2wgc2hvdWxkQ2xlYXJSZWZlcnJlck9uSFRU
UFNUb0hUVFBSZWRpcmVjdCwgUHJlY29ubmVjdE9ubHkgc2hvdWxkUHJlY29ubmVjdE9ubHkpCiAg
ICAgOiBOZXR3b3JrRGF0YVRhc2soc2Vzc2lvbiwgY2xpZW50LCByZXF1ZXN0V2l0aENyZWRlbnRp
YWxzLCBzdG9yZWRDcmVkZW50aWFsc1BvbGljeSwgc2hvdWxkQ2xlYXJSZWZlcnJlck9uSFRUUFNU
b0hUVFBSZWRpcmVjdCkKIHsKICAgICBpZiAobV9zY2hlZHVsZWRGYWlsdXJlVHlwZSAhPSBOb0Zh
aWx1cmUpCkBAIC0xMjgsNiArMTI4LDE0IEBAIE5ldHdvcmtEYXRhVGFza0NvY29hOjpOZXR3b3Jr
RGF0YVRhc2tDb2NvYShOZXR3b3JrU2Vzc2lvbiYgc2Vzc2lvbiwgTmV0d29ya0RhdGFUCiAgICAg
ICAgIExPRyhOZXR3b3JrU2Vzc2lvbiwgIiVsbHUgQ3JlYXRpbmcgTmV0d29ya0RhdGFUYXNrIHdp
dGggVVJMICVzIiwgW21fdGFzayB0YXNrSWRlbnRpZmllcl0sIG5zUmVxdWVzdC5VUkwuYWJzb2x1
dGVTdHJpbmcuVVRGOFN0cmluZyk7CiAgICAgfQogCisgICAgaWYgKHNob3VsZFByZWNvbm5lY3RP
bmx5ID09IFByZWNvbm5lY3RPbmx5OjpZZXMpIHsKKyNpZiBFTkFCTEUoU0VSVkVSX1BSRUNPTk5F
Q1QpCisgICAgICAgIG1fdGFzay5nZXQoKS5fcHJlY29ubmVjdCA9IHRydWU7CisjZWxzZQorICAg
ICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKKyNlbmRpZgorICAgIH0KKwogI2lmIEhBVkUoQ0ZO
RVRXT1JLX1NUT1JBR0VfUEFSVElUSU9OSU5HKQogICAgIGlmIChzdG9yZWRDcmVkZW50aWFsc1Bv
bGljeSA9PSBXZWJDb3JlOjpTdG9yZWRDcmVkZW50aWFsc1BvbGljeTo6VXNlKSB7CiAgICAgICAg
IFN0cmluZyBzdG9yYWdlUGFydGl0aW9uID0gc2Vzc2lvbi5uZXR3b3JrU3RvcmFnZVNlc3Npb24o
KS5jb29raWVTdG9yYWdlUGFydGl0aW9uKHJlcXVlc3QpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9TaGFyZWQvV2ViQ29yZUFyZ3VtZW50Q29kZXJzLmggYi9Tb3VyY2UvV2ViS2l0L1NoYXJl
ZC9XZWJDb3JlQXJndW1lbnRDb2RlcnMuaAppbmRleCAwOGMzODM5MGI4NGNlNDg3NDFjZDQ0ZmUx
NDFlZTU2Yjg0YjkyYzQzLi5lYjNkYjUwZDk2YmUxMGNkMWVjMjNmYjhkOGU3OGUxMmE4Y2MyMGRl
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJDb3JlQXJndW1lbnRDb2RlcnMu
aAorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJDb3JlQXJndW1lbnRDb2RlcnMuaApAQCAt
MzksNiArMzksNyBAQAogI2luY2x1ZGUgPFdlYkNvcmUvUGF5bWVudEhlYWRlcnMuaD4KICNpbmNs
dWRlIDxXZWJDb3JlL1JlYWx0aW1lTWVkaWFTb3VyY2UuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1Nj
cm9sbFNuYXBPZmZzZXRzSW5mby5oPgorI2luY2x1ZGUgPFdlYkNvcmUvU3RvcmVkQ3JlZGVudGlh
bHNQb2xpY3kuaD4KIAogbmFtZXNwYWNlIFdURiB7CiBjbGFzcyBNb25vdG9uaWNUaW1lOwpAQCAt
NzY2LDQgKzc2NywxMiBAQCB0ZW1wbGF0ZTw+IHN0cnVjdCBFbnVtVHJhaXRzPFdlYkNvcmU6Ok1l
ZGlhU2VsZWN0aW9uT3B0aW9uOjpUeXBlPiB7CiAgICAgPjsKIH07CiAKK3RlbXBsYXRlIDw+IHN0
cnVjdCBFbnVtVHJhaXRzPFdlYkNvcmU6OlN0b3JlZENyZWRlbnRpYWxzUG9saWN5PiB7CisgICAg
dXNpbmcgdmFsdWVzID0gRW51bVZhbHVlczwKKyAgICAgICAgV2ViQ29yZTo6U3RvcmVkQ3JlZGVu
dGlhbHNQb2xpY3ksCisgICAgICAgIFdlYkNvcmU6OlN0b3JlZENyZWRlbnRpYWxzUG9saWN5OjpE
b05vdFVzZSwKKyAgICAgICAgV2ViQ29yZTo6U3RvcmVkQ3JlZGVudGlhbHNQb2xpY3k6OlVzZQor
ICAgID47Cit9OworCiB9IC8vIG5hbWVzcGFjZSBXVEYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvU2hhcmVkL1dlYlByZWZlcmVuY2VzRGVmaW5pdGlvbnMuaCBiL1NvdXJjZS9XZWJLaXQvU2hh
cmVkL1dlYlByZWZlcmVuY2VzRGVmaW5pdGlvbnMuaAppbmRleCBjNjgyMGQ4MTU2ZGIyYjVmMjg1
ODExMDIxYzgyMjcyMjY5NDg1NzBkLi44M2M2MzYxMzI4YjE4NTUwZTBkY2MxYWZhZjNkYmQ3YjVk
ZTI4ZmY2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJQcmVmZXJlbmNlc0Rl
ZmluaXRpb25zLmgKKysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViUHJlZmVyZW5jZXNEZWZp
bml0aW9ucy5oCkBAIC00NSw2ICs0NSwxMiBAQAogI2RlZmluZSBERUZBVUxUX0hJRERFTl9QQUdF
X0NTU19BTklNQVRJT05fU1VTUEVOU0lPTl9FTkFCTEVEIGZhbHNlCiAjZW5kaWYKIAorI2lmIEVO
QUJMRShTRVJWRVJfUFJFQ09OTkVDVCkKKyNkZWZpbmUgREVGQVVMVF9MSU5LX1BSRUNPTk5FQ1Rf
RU5BQkxFRCB0cnVlCisjZWxzZQorI2RlZmluZSBERUZBVUxUX0xJTktfUFJFQ09OTkVDVF9FTkFC
TEVEIGZhbHNlCisjZW5kaWYKKwogI2lmIFBMQVRGT1JNKENPQ09BKQogI2RlZmluZSBERUZBVUxU
X1BERlBMVUdJTl9FTkFCTEVEIHRydWUKICNlbHNlCkBAIC0xODEsNiArMTg3LDcgQEAKICAgICBt
YWNybyhET01QYXN0ZUFsbG93ZWQsIGRvbVBhc3RlQWxsb3dlZCwgQm9vbCwgYm9vbCwgZmFsc2Us
ICIiLCAiIikgXAogICAgIG1hY3JvKEphdmFTY3JpcHRDYW5BY2Nlc3NDbGlwYm9hcmQsIGphdmFT
Y3JpcHRDYW5BY2Nlc3NDbGlwYm9hcmQsIEJvb2wsIGJvb2wsIGZhbHNlLCAiIiwgIiIpIFwKICAg
ICBtYWNybyhTaG91bGRQcmludEJhY2tncm91bmRzLCBzaG91bGRQcmludEJhY2tncm91bmRzLCBC
b29sLCBib29sLCBERUZBVUxUX1NIT1VMRF9QUklOVF9CQUNLR1JPVU5EUywgIiIsICIiKSBcCisg
ICAgbWFjcm8oTGlua1ByZWNvbm5lY3QsIGxpbmtQcmVjb25uZWN0LCBCb29sLCBib29sLCBERUZB
VUxUX0xJTktfUFJFQ09OTkVDVF9FTkFCTEVELCAiIiwgIiIpIFwKICAgICBtYWNybyhGdWxsU2Ny
ZWVuRW5hYmxlZCwgZnVsbFNjcmVlbkVuYWJsZWQsIEJvb2wsIGJvb2wsIGZhbHNlLCAiIiwgIiIp
IFwKICAgICBtYWNybyhBc3luY2hyb25vdXNTcGVsbENoZWNraW5nRW5hYmxlZCwgYXN5bmNocm9u
b3VzU3BlbGxDaGVja2luZ0VuYWJsZWQsIEJvb2wsIGJvb2wsIGZhbHNlLCAiIiwgIiIpIFwKICAg
ICBtYWNybyhXZWJTZWN1cml0eUVuYWJsZWQsIHdlYlNlY3VyaXR5RW5hYmxlZCwgQm9vbCwgYm9v
bCwgdHJ1ZSwgIiIsICIiKSBcCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9B
UEkvQy9XS0NvbnRleHQuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0MvV0tDb250
ZXh0LmNwcAppbmRleCA3ODMzOGVkNjU3OGNkY2VjMWVlMGNlMTM0NDM4MmViNDk3NjA2MjU5Li43
MDQ4YmJlMGMwZDcwNzJkYTI0YmExZDE0YmI5MjhkOWY5ZWFjOWQ4IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQy9XS0NvbnRleHQuY3BwCisrKyBiL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL0FQSS9DL1dLQ29udGV4dC5jcHAKQEAgLTQwNyw2ICs0MDcsMTEgQEAgdm9p
ZCBXS0NvbnRleHRTZXREaXNrQ2FjaGVTcGVjdWxhdGl2ZVZhbGlkYXRpb25FbmFibGVkKFdLQ29u
dGV4dFJlZiBjb250ZXh0UmVmLAogICAgIHRvSW1wbChjb250ZXh0UmVmKS0+Y29uZmlndXJhdGlv
bigpLnNldERpc2tDYWNoZVNwZWN1bGF0aXZlVmFsaWRhdGlvbkVuYWJsZWQodmFsdWUpOwogfQog
Cit2b2lkIFdLQ29udGV4dFByZWNvbm5lY3RUb1NlcnZlcihXS0NvbnRleHRSZWYgY29udGV4dFJl
ZiwgV0tVUkxSZWYgc2VydmVyVVJMUmVmKQoreworICAgIHRvSW1wbChjb250ZXh0UmVmKS0+cHJl
Y29ubmVjdFRvU2VydmVyKFVSTChVUkwoKSwgdG9XVEZTdHJpbmcoc2VydmVyVVJMUmVmKSkpOwor
fQorCiBXS0Nvb2tpZU1hbmFnZXJSZWYgV0tDb250ZXh0R2V0Q29va2llTWFuYWdlcihXS0NvbnRl
eHRSZWYgY29udGV4dFJlZikKIHsKICAgICByZXR1cm4gdG9BUEkodG9JbXBsKGNvbnRleHRSZWYp
LT5zdXBwbGVtZW50PFdlYkNvb2tpZU1hbmFnZXJQcm94eT4oKSk7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQy9XS0NvbnRleHRQcml2YXRlLmggYi9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9BUEkvQy9XS0NvbnRleHRQcml2YXRlLmgKaW5kZXggMDJmOTBiOTE3YjQ4
OTQ1MGUyMzBiNmFlNjQ2YWE5NzQ2OTA3NzhhNy4uMTUyZDZkYWIwYjY5MDYwYzdjNjZiMWY3OWE4
MDMwMjlmODE0NzkxNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0Mv
V0tDb250ZXh0UHJpdmF0ZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9DL1dL
Q29udGV4dFByaXZhdGUuaApAQCAtMTA1LDYgKzEwNSw4IEBAIFdLX0VYUE9SVCB2b2lkIFdLQ29u
dGV4dFNldE1lbW9yeUNhY2hlRGlzYWJsZWQoV0tDb250ZXh0UmVmLCBib29sIGRpc2FibGVkKTsK
IAogV0tfRVhQT1JUIHZvaWQgV0tDb250ZXh0U2V0Rm9udFdoaXRlbGlzdChXS0NvbnRleHRSZWYs
IFdLQXJyYXlSZWYpOwogCitXS19FWFBPUlQgdm9pZCBXS0NvbnRleHRQcmVjb25uZWN0VG9TZXJ2
ZXIoV0tDb250ZXh0UmVmIGNvbnRleHQsIFdLVVJMUmVmIHNlcnZlclVSTCk7CisKIFdLX0VYUE9S
VCBXS1Byb2Nlc3NJRCBXS0NvbnRleHRHZXROZXR3b3JrUHJvY2Vzc0lkZW50aWZpZXIoV0tDb250
ZXh0UmVmIGNvbnRleHQpOwogV0tfRVhQT1JUIFdLUHJvY2Vzc0lEIFdLQ29udGV4dEdldERhdGFi
YXNlUHJvY2Vzc0lkZW50aWZpZXIoV0tDb250ZXh0UmVmIGNvbnRleHQpOwogCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tQcm9jZXNzUG9vbC5tbSBiL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1Byb2Nlc3NQb29sLm1tCmluZGV4IDFm
NTk3NGRmNTdhMDIxZGJkNWJjODk0ZmNkOGVhNzE4MzQ4YTg5MjguLjE4MDIzMDdjN2UwY2Y5MDE4
NTdlMzY2MmE5NjAxNTAxNWZjOTYwMTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL0FQSS9Db2NvYS9XS1Byb2Nlc3NQb29sLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL0FQSS9Db2NvYS9XS1Byb2Nlc3NQb29sLm1tCkBAIC00MTUsNiArNDE1LDExIEBAIHN0YXRp
YyBOU0RpY3Rpb25hcnkgKnBvbGljaWVzSGFzaE1hcFRvRGljdGlvbmFyeShjb25zdCBIYXNoTWFw
PFN0cmluZywgSGFzaE1hcDxTCiAgICAgcmV0dXJuIF9wcm9jZXNzUG9vbC0+cHJvY2Vzc2VzKCku
c2l6ZSgpOwogfQogCistICh2b2lkKV9wcmVjb25uZWN0VG9TZXJ2ZXI6KE5TVVJMICopc2VydmVy
VVJMCit7CisgICAgX3Byb2Nlc3NQb29sLT5wcmVjb25uZWN0VG9TZXJ2ZXIoc2VydmVyVVJMKTsK
K30KKwogLSAoc2l6ZV90KV9wbHVnaW5Qcm9jZXNzQ291bnQKIHsKICNpZiAhUExBVEZPUk0oSU9T
KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLUHJvY2Vz
c1Bvb2xQcml2YXRlLmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tQcm9j
ZXNzUG9vbFByaXZhdGUuaAppbmRleCAwN2FhZTMxMDhmYjNmMzZmZmQyZmYzOTUzNGNhMGQxN2U1
Y2Y0NGY5Li4xM2ZlNTljNDgyYjg4YTRiODI4ZDVkNjhmZDIwMzkzZWZhZTEyYjgwIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tQcm9jZXNzUG9vbFByaXZh
dGUuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tQcm9jZXNzUG9v
bFByaXZhdGUuaApAQCAtODcsNiArODcsOCBAQAogLy8gVGVzdCBvbmx5LiBTaG91bGQgYmUgY2Fs
bGVkIGJlZm9yZSBhbnkgd2ViIGNvbnRlbnQgcHJvY2Vzc2VzIGFyZSBsYXVuY2hlZC4KICsgKHZv
aWQpX2ZvcmNlR2FtZUNvbnRyb2xsZXJGcmFtZXdvcmsgV0tfQVBJX0FWQUlMQUJMRShtYWNvc3go
MTAuMTMpLCBpb3MoMTEuMCkpOwogCistICh2b2lkKV9wcmVjb25uZWN0VG9TZXJ2ZXI6KE5TVVJM
ICopc2VydmVyVVJMIFdLX0FQSV9BVkFJTEFCTEUobWFjb3N4KFdLX01BQ19UQkEpLCBpb3MoV0tf
SU9TX1RCQSkpOworCiBAcHJvcGVydHkgKG5vbmF0b21pYywgZ2V0dGVyPV9pc0Nvb2tpZVN0b3Jh
Z2VQYXJ0aXRpb25pbmdFbmFibGVkLCBzZXR0ZXI9X3NldENvb2tpZVN0b3JhZ2VQYXJ0aXRpb25p
bmdFbmFibGVkOikgQk9PTCBfY29va2llU3RvcmFnZVBhcnRpdGlvbmluZ0VuYWJsZWQgV0tfQVBJ
X0FWQUlMQUJMRShtYWNvc3goMTAuMTIuMyksIGlvcygxMC4zKSk7CiAKIEBlbmQKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQb29sLmNwcCBiL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQb29sLmNwcAppbmRleCBhY2I5ZDU2MjVlYWI3OTRi
ZTVjZWQ2MWQ3ZWJjMzhhMmM1MjM1NWI3Li4yNjIwODYzOWZmNGU3ZDY3YTU2NGQ4MjUyNjk5YTI2
ODg3NGVhZTE2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNz
UG9vbC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Bvb2wuY3Bw
CkBAIC0xMTU3LDYgKzExNTcsMTQgQEAgdm9pZCBXZWJQcm9jZXNzUG9vbDo6c2V0Q2FuSGFuZGxl
SFRUUFNTZXJ2ZXJUcnVzdEV2YWx1YXRpb24oYm9vbCB2YWx1ZSkKICAgICB9CiB9CiAKK3ZvaWQg
V2ViUHJvY2Vzc1Bvb2w6OnByZWNvbm5lY3RUb1NlcnZlcihjb25zdCBVUkwmIHVybCkKK3sKKyAg
ICBpZiAoIXVybC5pc1ZhbGlkKCkgfHwgIXVybC5wcm90b2NvbElzSW5IVFRQRmFtaWx5KCkpCisg
ICAgICAgIHJldHVybjsKKworICAgIGVuc3VyZU5ldHdvcmtQcm9jZXNzKCkuc2VuZChNZXNzYWdl
czo6TmV0d29ya1Byb2Nlc3M6OlByZWNvbm5lY3RUbyh1cmwsIFN0b3JlZENyZWRlbnRpYWxzUG9s
aWN5OjpVc2UpLCAwKTsKK30KKwogdm9pZCBXZWJQcm9jZXNzUG9vbDo6cmVnaXN0ZXJVUkxTY2hl
bWVBc0xvY2FsKGNvbnN0IFN0cmluZyYgdXJsU2NoZW1lKQogewogICAgIG1fc2NoZW1lc1RvUmVn
aXN0ZXJBc0xvY2FsLmFkZCh1cmxTY2hlbWUpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvV2ViUHJvY2Vzc1Bvb2wuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBy
b2Nlc3NQb29sLmgKaW5kZXggZTE5ZjZkZjJhZjg2ZDVjYTQ0NzBhZDZjODYxNDkxN2ExZmYyODA3
YS4uYWQ1YjBjNjdhOTUwMGQ4YmE4YWQ2NGUzZDhmYWQ4OTA0MzU3OTdjNSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Bvb2wuaAorKysgYi9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUG9vbC5oCkBAIC0yMTYsNiArMjE2LDcgQEAgcHVibGlj
OgogICAgIHZvaWQgcmVnaXN0ZXJVUkxTY2hlbWVBc0Rpc3BsYXlJc29sYXRlZChjb25zdCBTdHJp
bmcmKTsKICAgICB2b2lkIHJlZ2lzdGVyVVJMU2NoZW1lQXNDT1JTRW5hYmxlZChjb25zdCBTdHJp
bmcmKTsKICAgICB2b2lkIHJlZ2lzdGVyVVJMU2NoZW1lQXNDYWNoZVBhcnRpdGlvbmVkKGNvbnN0
IFN0cmluZyYpOworICAgIHZvaWQgcHJlY29ubmVjdFRvU2VydmVyKGNvbnN0IFdlYkNvcmU6OlVS
TCYpOwogCiAgICAgVmlzaXRlZExpbmtTdG9yZSYgdmlzaXRlZExpbmtTdG9yZSgpIHsgcmV0dXJu
IG1fdmlzaXRlZExpbmtTdG9yZS5nZXQoKTsgfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L1dlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNlL1dlYktpdC9XZWJLaXQu
eGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCA2MmE0YjcyMmI2ZDYzMmUyMmU0OThkZmM2
YjU4ZTRhMGFhNDExMTZmLi42NjRhODVjMGVjMzBhZDNmOWI5MWQyMjU3YjhiYjg3NzUyNjU2NmJl
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhw
cm9qCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oK
QEAgLTEzODAsNiArMTM4MCw4IEBACiAJCTgzOTkwMjAzMUJFOUEwMkIwMDBGMzY1MyAvKiBOZXR3
b3JrTG9hZC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
ODM5OTAxRkUxQkU5QTAxQjAwMEYzNjUzIC8qIE5ldHdvcmtMb2FkLmggKi87IH07CiAJCTgzOUEy
RjMxMUUyMDY3NDUwMDM5MDU3RSAvKiBIaWdoUGVyZm9ybWFuY2VHcmFwaGljc1VzYWdlU2FtcGxl
ci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4MzlB
MkYyRjFFMjA2NzM5MDAzOTA1N0UgLyogSGlnaFBlcmZvcm1hbmNlR3JhcGhpY3NVc2FnZVNhbXBs
ZXIuY3BwICovOyB9OwogCQk4MzlBMkYzMjFFMjA2NzQ1MDAzOTA1N0UgLyogSGlnaFBlcmZvcm1h
bmNlR3JhcGhpY3NVc2FnZVNhbXBsZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDgzOUEyRjMwMUUyMDY3MzkwMDM5MDU3RSAvKiBIaWdoUGVyZm9ybWFu
Y2VHcmFwaGljc1VzYWdlU2FtcGxlci5oICovOyB9OworCQk4M0EwRUQzNDFGNzQ3Q0NEMDAzMjk5
RUIgLyogUHJlY29ubmVjdFRhc2suY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gODNBMEVEMzMxRjc0N0NDNzAwMzI5OUVCIC8qIFByZWNvbm5lY3RUYXNr
LmNwcCAqLzsgfTsKKwkJODNBMEVEMzUxRjc0N0NDRjAwMzI5OUVCIC8qIFByZWNvbm5lY3RUYXNr
LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4M0EwRUQz
MjFGNzQ3Q0M2MDAzMjk5RUIgLyogUHJlY29ubmVjdFRhc2suaCAqLzsgfTsKIAkJODNCRENDQjkx
QUM1RkRCNjAwM0Y2NDQxIC8qIE5ldHdvcmtDYWNoZVN0YXRpc3RpY3MuY3BwIGluIFNvdXJjZXMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODNCRENDQjgxQUM1RkRCNjAwM0Y2
NDQxIC8qIE5ldHdvcmtDYWNoZVN0YXRpc3RpY3MuY3BwICovOyB9OwogCQk4M0JGQUM0MjFEOTYx
MzdDMDA0MzM0OTAgLyogQmxvYkRvd25sb2FkQ2xpZW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4M0JGQUM0MDFEOTYxMzYwMDA0MzM0OTAgLyogQmxv
YkRvd25sb2FkQ2xpZW50LmggKi87IH07CiAJCTgzQkZBQzQzMUQ5NjEzN0MwMDQzMzQ5MCAvKiBC
bG9iRG93bmxvYWRDbGllbnQuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gODNCRkFDNDExRDk2MTM2MDAwNDMzNDkwIC8qIEJsb2JEb3dubG9hZENsaWVu
dC5jcHAgKi87IH07CkBAIC0zNzMxLDYgKzM3MzMsOCBAQAogCQk4Mzk5MDFGRjFCRTlBMDFCMDAw
RjM2NTMgLyogTmV0d29ya0xvYWQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBu
YW1lID0gTmV0d29ya0xvYWQuY3BwOyBwYXRoID0gTmV0d29ya1Byb2Nlc3MvTmV0d29ya0xvYWQu
Y3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk4MzlBMkYyRjFFMjA2NzM5MDAzOTA1
N0UgLyogSGlnaFBlcmZvcm1hbmNlR3JhcGhpY3NVc2FnZVNhbXBsZXIuY3BwICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSGlnaFBlcmZvcm1hbmNlR3JhcGhpY3NVc2FnZVNh
bXBsZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk4MzlBMkYzMDFFMjA2NzM5
MDAzOTA1N0UgLyogSGlnaFBlcmZvcm1hbmNlR3JhcGhpY3NVc2FnZVNhbXBsZXIuaCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSGlnaFBlcmZvcm1hbmNlR3JhcGhpY3NVc2FnZVNh
bXBsZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJODNBMEVEMzIxRjc0N0NDNjAw
MzI5OUVCIC8qIFByZWNvbm5lY3RUYXNrLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFt
ZSA9IFByZWNvbm5lY3RUYXNrLmg7IHBhdGggPSBOZXR3b3JrUHJvY2Vzcy9QcmVjb25uZWN0VGFz
ay5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk4M0EwRUQzMzFGNzQ3Q0M3MDAzMjk5
RUIgLyogUHJlY29ubmVjdFRhc2suY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBu
YW1lID0gUHJlY29ubmVjdFRhc2suY3BwOyBwYXRoID0gTmV0d29ya1Byb2Nlc3MvUHJlY29ubmVj
dFRhc2suY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk4M0JEQ0NCODFBQzVGREI2
MDAzRjY0NDEgLyogTmV0d29ya0NhY2hlU3RhdGlzdGljcy5jcHAgKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmNwcC5jcHA7IHBhdGggPSBOZXR3b3JrQ2FjaGVTdGF0aXN0aWNzLmNwcDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJODNCRkFDNDAxRDk2MTM2MDAwNDMzNDkwIC8qIEJsb2JEb3du
bG9hZENsaWVudC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBCbG9iRG93bmxv
YWRDbGllbnQuaDsgcGF0aCA9IE5ldHdvcmtQcm9jZXNzL0Rvd25sb2Fkcy9CbG9iRG93bmxvYWRD
bGllbnQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJODNCRkFDNDExRDk2MTM2MDAw
NDMzNDkwIC8qIEJsb2JEb3dubG9hZENsaWVudC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNw
cC5jcHA7IG5hbWUgPSBCbG9iRG93bmxvYWRDbGllbnQuY3BwOyBwYXRoID0gTmV0d29ya1Byb2Nl
c3MvRG93bmxvYWRzL0Jsb2JEb3dubG9hZENsaWVudC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CkBAIC02MTExLDYgKzYxMTUsOCBAQAogCQkJCTVDMEIxNzdGMUU3Qzg4NjcwMEU5MTIz
QyAvKiBOZXR3b3JrU29ja2V0U3RyZWFtLm1lc3NhZ2VzLmluICovLAogCQkJCTQ2MjEwN0Q3MUYz
OERCRDMwMERENzgxMCAvKiBQaW5nTG9hZC5jcHAgKi8sCiAJCQkJNUNFODVCMUYxQzg4RTY0MzAw
NzBCRkNFIC8qIFBpbmdMb2FkLmggKi8sCisJCQkJODNBMEVEMzMxRjc0N0NDNzAwMzI5OUVCIC8q
IFByZWNvbm5lY3RUYXNrLmNwcCAqLywKKwkJCQk4M0EwRUQzMjFGNzQ3Q0M2MDAzMjk5RUIgLyog
UHJlY29ubmVjdFRhc2suaCAqLywKIAkJCQlFMUI3ODQ3MDE2M0YyNDY5MDAwN0I2OTIgLyogUmVt
b3RlTmV0d29ya2luZ0NvbnRleHQuaCAqLywKIAkJCSk7CiAJCQluYW1lID0gTmV0d29ya1Byb2Nl
c3M7CkBAIC04NzAzLDYgKzg3MDksNyBAQAogCQkJCTFBNEE5RjMzMTJCODQ0RTIwMDhGRTk4NCAv
KiBQbHVnaW5RdWlya3MuaCBpbiBIZWFkZXJzICovLAogCQkJCTdDRDYyMjc4MTczOUQ4NjMwMDVC
RDdGRiAvKiBQbHVnaW5TYW5kYm94UHJvZmlsZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMUE2RkI3
QUYxMUU2NEI2ODAwREIxMzcxIC8qIFBsdWdpblZpZXcuaCBpbiBIZWFkZXJzICovLAorCQkJCTgz
QTBFRDM1MUY3NDdDQ0YwMDMyOTlFQiAvKiBQcmVjb25uZWN0VGFzay5oIGluIEhlYWRlcnMgKi8s
CiAJCQkJRTFDQzFCOTAxMkQ3RUFERjAwNjI1ODM4IC8qIFByaW50SW5mby5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkJODZGOTUzNjUxOEZGNThGNTAwMURCMkVGIC8qIFByb2Nlc3NBc3NlcnRpb24uaCBp
biBIZWFkZXJzICovLAogCQkJCUJDMUE3QzU4MTEzNkUxOUMwMEZCNzE2NyAvKiBQcm9jZXNzTGF1
bmNoZXIuaCBpbiBIZWFkZXJzICovLApAQCAtMTAyODMsNiArMTAyOTAsNyBAQAogCQkJCTdDRDYy
Mjc3MTczOUQ4NjMwMDVCRDdGRiAvKiBQbHVnaW5TYW5kYm94UHJvZmlsZS5tbSBpbiBTb3VyY2Vz
ICovLAogCQkJCUJDODI4NDREMTZCNTA4MUMwMEEyNzhGRSAvKiBQbHVnaW5TZXJ2aWNlRW50cnlQ
b2ludC5tbSBpbiBTb3VyY2VzICovLAogCQkJCTFBNkZCN0FFMTFFNjRCNjgwMERCMTM3MSAvKiBQ
bHVnaW5WaWV3LmNwcCBpbiBTb3VyY2VzICovLAorCQkJCTgzQTBFRDM0MUY3NDdDQ0QwMDMyOTlF
QiAvKiBQcmVjb25uZWN0VGFzay5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlFMThDOTJGNDEyREI5
RTcxMDBDRjJBRUIgLyogUHJpbnRJbmZvLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUUxQ0MxQjkx
MTJEN0VBREYwMDYyNTgzOCAvKiBQcmludEluZm9NYWMubW0gaW4gU291cmNlcyAqLywKIAkJCQkz
NzcxNkE1QTE5NUI5MTA1MDBFRThCMUIgLyogUHJvY2Vzc0Fzc2VydGlvbi5jcHAgaW4gU291cmNl
cyAqLywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9OZXR3b3JrL05ldHdv
cmtQcm9jZXNzQ29ubmVjdGlvbi5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvTmV0d29y
ay9OZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb24uY3BwCmluZGV4IDk2MjRlMjk2NGM3NDljYjc2YzVi
ZjA5N2ZlMmM1MGM3Y2Q2ZmZhNTIuLjM4ZDUzYzljMjlkMGU5ZWYxZjQwNjBhOGQxYjA1NDczOGMx
ZDA3Y2YgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9OZXR3b3JrL05ldHdv
cmtQcm9jZXNzQ29ubmVjdGlvbi5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL05l
dHdvcmsvTmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uLmNwcApAQCAtMTQwLDYgKzE0MCwxMSBAQCB2
b2lkIE5ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbjo6ZGlkRmluaXNoUGluZ0xvYWQodWludDY0X3Qg
cGluZ0xvYWRJZGVudGlmaWVyLCBSZQogICAgIFdlYlByb2Nlc3M6OnNpbmdsZXRvbigpLndlYkxv
YWRlclN0cmF0ZWd5KCkuZGlkRmluaXNoUGluZ0xvYWQocGluZ0xvYWRJZGVudGlmaWVyLCBXVEZN
b3ZlKGVycm9yKSk7CiB9CiAKK3ZvaWQgTmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uOjpkaWRGaW5p
c2hQcmVjb25uZWN0aW9uKHVpbnQ2NF90IHByZWNvbm5lY3Rpb25JZGVudGlmaWVyLCBSZXNvdXJj
ZUVycm9yJiYgZXJyb3IpCit7CisgICAgV2ViUHJvY2Vzczo6c2luZ2xldG9uKCkud2ViTG9hZGVy
U3RyYXRlZ3koKS5kaWRGaW5pc2hQcmVjb25uZWN0aW9uKHByZWNvbm5lY3Rpb25JZGVudGlmaWVy
LCBXVEZNb3ZlKGVycm9yKSk7Cit9CisKICNpZiBFTkFCTEUoU0hBUkVBQkxFX1JFU09VUkNFKQog
dm9pZCBOZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb246OmRpZENhY2hlUmVzb3VyY2UoY29uc3QgUmVz
b3VyY2VSZXF1ZXN0JiByZXF1ZXN0LCBjb25zdCBTaGFyZWFibGVSZXNvdXJjZTo6SGFuZGxlJiBo
YW5kbGUsIFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCkKIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbi5oIGIvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uLmgK
aW5kZXggYzUzNDRlYTY1ZDAxZWMxYTNkYTJiMGIwNTNjZmM0MDM4MzFlNTQ4Yy4uZGVlYTdiMGZk
ODJiOWZhM2I1YTE5ZWJkOWFiYTRhNjBkODJjMDExOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uLmgKKysrIGIvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uLmgK
QEAgLTc0LDYgKzc0LDcgQEAgcHJpdmF0ZToKIAogICAgIHZvaWQgZGlkV3JpdGVCbG9ic1RvVGVt
cG9yYXJ5RmlsZXModWludDY0X3QgcmVxdWVzdElkZW50aWZpZXIsIGNvbnN0IFZlY3RvcjxTdHJp
bmc+JiBmaWxlbmFtZXMpOwogICAgIHZvaWQgZGlkRmluaXNoUGluZ0xvYWQodWludDY0X3QgcGlu
Z0xvYWRJZGVudGlmaWVyLCBXZWJDb3JlOjpSZXNvdXJjZUVycm9yJiYpOworICAgIHZvaWQgZGlk
RmluaXNoUHJlY29ubmVjdGlvbih1aW50NjRfdCBwcmVjb25uZWN0aW9uSWRlbnRpZmllciwgV2Vi
Q29yZTo6UmVzb3VyY2VFcnJvciYmKTsKIAogI2lmIEVOQUJMRShTSEFSRUFCTEVfUkVTT1VSQ0Up
CiAgICAgLy8gTWVzc2FnZSBoYW5kbGVycy4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbi5tZXNzYWdlcy5pbiBiL1Nv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbi5t
ZXNzYWdlcy5pbgppbmRleCA4M2VmMmU2MjI4OWJhZTFkODMzNmJiZjkyMmQzZjU4ZDI2NGI4OWUw
Li4yODczNjNlNzMxZTQ5NDQxMmJmOGFkYmE2MzQzYTEwZDIxZWRmMGJjIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvTmV0d29yay9OZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb24u
bWVzc2FnZXMuaW4KKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL05ldHdvcmsvTmV0d29y
a1Byb2Nlc3NDb25uZWN0aW9uLm1lc3NhZ2VzLmluCkBAIC0yOCw0ICsyOCw1IEBAIG1lc3NhZ2Vz
IC0+IE5ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbiBMZWdhY3lSZWNlaXZlciB7CiAKICAgICBEaWRX
cml0ZUJsb2JzVG9UZW1wb3JhcnlGaWxlcyh1aW50NjRfdCByZXF1ZXN0SWRlbnRpZmllciwgVmVj
dG9yPFN0cmluZz4gZmlsZW5hbWVzKQogICAgIERpZEZpbmlzaFBpbmdMb2FkKHVpbnQ2NF90IHBp
bmdMb2FkSWRlbnRpZmllciwgV2ViQ29yZTo6UmVzb3VyY2VFcnJvciBlcnJvcikKKyAgICBEaWRG
aW5pc2hQcmVjb25uZWN0aW9uKHVpbnQ2NF90IHByZWNvbm5lY3Rpb25JZGVudGlmaWVyLCBXZWJD
b3JlOjpSZXNvdXJjZUVycm9yIGVycm9yKQogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL05ldHdvcmsvV2ViTG9hZGVyU3RyYXRlZ3kuY3BwIGIvU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL05ldHdvcmsvV2ViTG9hZGVyU3RyYXRlZ3kuY3BwCmluZGV4IGVhN2IxN2EzZGVi
NjFiOTdlNDVjZTFiZTk4NTVkNmZkZDQwODVlZTQuLjc2ZjE4NjY3NWRkOWJlYjBmNzgwNGQxZGMw
OTk2NDUwYjVlODYwNTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9OZXR3
b3JrL1dlYkxvYWRlclN0cmF0ZWd5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
TmV0d29yay9XZWJMb2FkZXJTdHJhdGVneS5jcHAKQEAgLTM1Niw2ICszNTYsMTAgQEAgdm9pZCBX
ZWJMb2FkZXJTdHJhdGVneTo6bmV0d29ya1Byb2Nlc3NDcmFzaGVkKCkKICAgICBhdXRvIHBpbmdM
b2FkQ29tcGxldGlvbkhhbmRsZXJzID0gV1RGTW92ZShtX3BpbmdMb2FkQ29tcGxldGlvbkhhbmRs
ZXJzKTsKICAgICBmb3IgKGF1dG8mIHBpbmdMb2FkQ29tcGxldGlvbkhhbmRsZXIgOiBwaW5nTG9h
ZENvbXBsZXRpb25IYW5kbGVycy52YWx1ZXMoKSkKICAgICAgICAgcGluZ0xvYWRDb21wbGV0aW9u
SGFuZGxlcihpbnRlcm5hbEVycm9yKFVSTCgpKSk7CisKKyAgICBhdXRvIHByZWNvbm5lY3RDb21w
bGV0aW9uSGFuZGxlcnMgPSBXVEZNb3ZlKG1fcHJlY29ubmVjdENvbXBsZXRpb25IYW5kbGVycyk7
CisgICAgZm9yIChhdXRvJiBwcmVjb25uZWN0Q29tcGxldGlvbkhhbmRsZXIgOiBwcmVjb25uZWN0
Q29tcGxldGlvbkhhbmRsZXJzLnZhbHVlcygpKQorICAgICAgICBwcmVjb25uZWN0Q29tcGxldGlv
bkhhbmRsZXIoaW50ZXJuYWxFcnJvcihVUkwoKSkpOwogfQogCiB2b2lkIFdlYkxvYWRlclN0cmF0
ZWd5Ojpsb2FkUmVzb3VyY2VTeW5jaHJvbm91c2x5KE5ldHdvcmtpbmdDb250ZXh0KiBjb250ZXh0
LCB1bnNpZ25lZCBsb25nIHJlc291cmNlTG9hZElkZW50aWZpZXIsIGNvbnN0IFJlc291cmNlUmVx
dWVzdCYgcmVxdWVzdCwgU3RvcmVkQ3JlZGVudGlhbHNQb2xpY3kgc3RvcmVkQ3JlZGVudGlhbHNQ
b2xpY3ksIENsaWVudENyZWRlbnRpYWxQb2xpY3kgY2xpZW50Q3JlZGVudGlhbFBvbGljeSwgUmVz
b3VyY2VFcnJvciYgZXJyb3IsIFJlc291cmNlUmVzcG9uc2UmIHJlc3BvbnNlLCBWZWN0b3I8Y2hh
cj4mIGRhdGEpCkBAIC0zOTIsNyArMzk2LDcgQEAgdm9pZCBXZWJMb2FkZXJTdHJhdGVneTo6bG9h
ZFJlc291cmNlU3luY2hyb25vdXNseShOZXR3b3JraW5nQ29udGV4dCogY29udGV4dCwgdW4KICAg
ICB9CiB9CiAKLXN0YXRpYyB1aW50NjRfdCBnZW5lcmF0ZVBpbmdMb2FkSWRlbnRpZmllcigpCitz
dGF0aWMgdWludDY0X3QgZ2VuZXJhdGVMb2FkSWRlbnRpZmllcigpCiB7CiAgICAgc3RhdGljIHVp
bnQ2NF90IGlkZW50aWZpZXIgPSAwOwogICAgIHJldHVybiArK2lkZW50aWZpZXI7CkBAIC00MjIs
NyArNDI2LDcgQEAgdm9pZCBXZWJMb2FkZXJTdHJhdGVneTo6c3RhcnRQaW5nTG9hZChGcmFtZSYg
ZnJhbWUsIFJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCwgY28KICAgICB9CiAgICAgCiAgICAgTmV0
d29ya1Jlc291cmNlTG9hZFBhcmFtZXRlcnMgbG9hZFBhcmFtZXRlcnM7Ci0gICAgbG9hZFBhcmFt
ZXRlcnMuaWRlbnRpZmllciA9IGdlbmVyYXRlUGluZ0xvYWRJZGVudGlmaWVyKCk7CisgICAgbG9h
ZFBhcmFtZXRlcnMuaWRlbnRpZmllciA9IGdlbmVyYXRlTG9hZElkZW50aWZpZXIoKTsKICAgICBs
b2FkUGFyYW1ldGVycy5yZXF1ZXN0ID0gcmVxdWVzdDsKICAgICBsb2FkUGFyYW1ldGVycy5zb3Vy
Y2VPcmlnaW4gPSAmZG9jdW1lbnQtPnNlY3VyaXR5T3JpZ2luKCk7CiAgICAgbG9hZFBhcmFtZXRl
cnMuc2Vzc2lvbklEID0gd2ViUGFnZSA/IHdlYlBhZ2UtPnNlc3Npb25JRCgpIDogUEFMOjpTZXNz
aW9uSUQ6OmRlZmF1bHRTZXNzaW9uSUQoKTsKQEAgLTQ1OSw2ICs0NjMsMjAgQEAgdm9pZCBXZWJM
b2FkZXJTdHJhdGVneTo6ZGlkRmluaXNoUGluZ0xvYWQodWludDY0X3QgcGluZ0xvYWRJZGVudGlm
aWVyLCBSZXNvdXJjZUUKICAgICAgICAgY29tcGxldGlvbkhhbmRsZXIoV1RGTW92ZShlcnJvcikp
OwogfQogCit2b2lkIFdlYkxvYWRlclN0cmF0ZWd5OjpwcmVjb25uZWN0VG8oUEFMOjpTZXNzaW9u
SUQgc2Vzc2lvbklELCBjb25zdCBXZWJDb3JlOjpVUkwmIHVybCwgU3RvcmVkQ3JlZGVudGlhbHNQ
b2xpY3kgc3RvcmVkQ3JlZGVudGlhbHNQb2xpY3ksIFByZWNvbm5lY3RDb21wbGV0aW9uSGFuZGxl
ciYmIGNvbXBsZXRpb25IYW5kbGVyKQoreworICAgIHVpbnQ2NF90IHByZWNvbm5lY3Rpb25JZGVu
dGlmaWVyID0gZ2VuZXJhdGVMb2FkSWRlbnRpZmllcigpOworICAgIGF1dG8gYWRkUmVzdWx0ID0g
bV9wcmVjb25uZWN0Q29tcGxldGlvbkhhbmRsZXJzLmFkZChwcmVjb25uZWN0aW9uSWRlbnRpZmll
ciwgV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcikpOworICAgIEFTU0VSVF9VTlVTRUQoYWRkUmVz
dWx0LCBhZGRSZXN1bHQuaXNOZXdFbnRyeSk7CisgICAgV2ViUHJvY2Vzczo6c2luZ2xldG9uKCku
bmV0d29ya0Nvbm5lY3Rpb24oKS5jb25uZWN0aW9uKCkuc2VuZChNZXNzYWdlczo6TmV0d29ya0Nv
bm5lY3Rpb25Ub1dlYlByb2Nlc3M6OlByZWNvbm5lY3RUbyhzZXNzaW9uSUQsIHByZWNvbm5lY3Rp
b25JZGVudGlmaWVyLCB1cmwsIHN0b3JlZENyZWRlbnRpYWxzUG9saWN5KSwgMCk7Cit9CisKK3Zv
aWQgV2ViTG9hZGVyU3RyYXRlZ3k6OmRpZEZpbmlzaFByZWNvbm5lY3Rpb24odWludDY0X3QgcHJl
Y29ubmVjdGlvbklkZW50aWZpZXIsIFJlc291cmNlRXJyb3ImJiBlcnJvcikKK3sKKyAgICBpZiAo
YXV0byBjb21wbGV0aW9uSGFuZGxlciA9IG1fcHJlY29ubmVjdENvbXBsZXRpb25IYW5kbGVycy50
YWtlKHByZWNvbm5lY3Rpb25JZGVudGlmaWVyKSkKKyAgICAgICAgY29tcGxldGlvbkhhbmRsZXIo
V1RGTW92ZShlcnJvcikpOworfQorCiB2b2lkIFdlYkxvYWRlclN0cmF0ZWd5OjpzdG9yZURlcml2
ZWREYXRhVG9DYWNoZShjb25zdCBTSEExOjpEaWdlc3QmIGJvZHlIYXNoLCBjb25zdCBTdHJpbmcm
IHR5cGUsIGNvbnN0IFN0cmluZyYgcGFydGl0aW9uLCBXZWJDb3JlOjpTaGFyZWRCdWZmZXImIGRh
dGEpCiB7CiAjaWYgRU5BQkxFKE5FVFdPUktfQ0FDSEUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvTmV0d29yay9XZWJMb2FkZXJTdHJhdGVneS5oIGIvU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL05ldHdvcmsvV2ViTG9hZGVyU3RyYXRlZ3kuaAppbmRleCA1NzMwMjhlNWE3
YjY1NzVhMjM2ODFmZjUwMjYyOTRjZWE5YTg3ZDJkLi43MjU2YjVkMzczMDc4MmZmYjk1NWVhY2Y0
MTY5YWQwZGI1OWQyZWQ5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvTmV0
d29yay9XZWJMb2FkZXJTdHJhdGVneS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9O
ZXR3b3JrL1dlYkxvYWRlclN0cmF0ZWd5LmgKQEAgLTYyLDYgKzYyLDkgQEAgcHVibGljOgogICAg
IHZvaWQgc3RhcnRQaW5nTG9hZChXZWJDb3JlOjpGcmFtZSYsIFdlYkNvcmU6OlJlc291cmNlUmVx
dWVzdCYsIGNvbnN0IFdlYkNvcmU6OkhUVFBIZWFkZXJNYXAmIG9yaWdpbmFsUmVxdWVzdEhlYWRl
cnMsIGNvbnN0IFdlYkNvcmU6OkZldGNoT3B0aW9ucyYsIFBpbmdMb2FkQ29tcGxldGlvbkhhbmRs
ZXImJikgZmluYWw7CiAgICAgdm9pZCBkaWRGaW5pc2hQaW5nTG9hZCh1aW50NjRfdCBwaW5nTG9h
ZElkZW50aWZpZXIsIFdlYkNvcmU6OlJlc291cmNlRXJyb3ImJik7CiAKKyAgICB2b2lkIHByZWNv
bm5lY3RUbyhQQUw6OlNlc3Npb25JRCwgY29uc3QgV2ViQ29yZTo6VVJMJiwgV2ViQ29yZTo6U3Rv
cmVkQ3JlZGVudGlhbHNQb2xpY3ksIFByZWNvbm5lY3RDb21wbGV0aW9uSGFuZGxlciYmKSBmaW5h
bDsKKyAgICB2b2lkIGRpZEZpbmlzaFByZWNvbm5lY3Rpb24odWludDY0X3QgcHJlY29ubmVjdGlv
bklkZW50aWZpZXIsIFdlYkNvcmU6OlJlc291cmNlRXJyb3ImJik7CisKICAgICB2b2lkIHN0b3Jl
RGVyaXZlZERhdGFUb0NhY2hlKGNvbnN0IFNIQTE6OkRpZ2VzdCYgYm9keUhhc2gsIGNvbnN0IFN0
cmluZyYgdHlwZSwgY29uc3QgU3RyaW5nJiBwYXJ0aXRpb24sIFdlYkNvcmU6OlNoYXJlZEJ1ZmZl
ciYpIGZpbmFsOwogCiAgICAgdm9pZCBzZXRDYXB0dXJlRXh0cmFOZXR3b3JrTG9hZE1ldHJpY3NF
bmFibGVkKGJvb2wpIGZpbmFsOwpAQCAtODYsNiArODksNyBAQCBwcml2YXRlOgogICAgIEhhc2hN
YXA8dW5zaWduZWQgbG9uZywgUmVmUHRyPFdlYlJlc291cmNlTG9hZGVyPj4gbV93ZWJSZXNvdXJj
ZUxvYWRlcnM7CiAgICAgSGFzaE1hcDx1bnNpZ25lZCBsb25nLCBXZWJVUkxTY2hlbWVUYXNrUHJv
eHkqPiBtX3VybFNjaGVtZVRhc2tzOwogICAgIEhhc2hNYXA8dW5zaWduZWQgbG9uZywgUGluZ0xv
YWRDb21wbGV0aW9uSGFuZGxlcj4gbV9waW5nTG9hZENvbXBsZXRpb25IYW5kbGVyczsKKyAgICBI
YXNoTWFwPHVuc2lnbmVkIGxvbmcsIFByZWNvbm5lY3RDb21wbGV0aW9uSGFuZGxlcj4gbV9wcmVj
b25uZWN0Q29tcGxldGlvbkhhbmRsZXJzOwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcCBi
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwCmluZGV4IDFlYTdh
M2MyZjViN2E1ODMxOTU0N2U5NmE3MjkxMTM3NTNiMDRjN2QuLjE3MGVkZjdmYzQ5N2MzYzc3MTA1
ZmMwNjkxYWRmYmUwM2JmNTUyM2MgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9XZWJQYWdlL1dlYlBhZ2UuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQ
YWdlL1dlYlBhZ2UuY3BwCkBAIC0zMDkwLDYgKzMwOTAsNyBAQCB2b2lkIFdlYlBhZ2U6OnVwZGF0
ZVByZWZlcmVuY2VzKGNvbnN0IFdlYlByZWZlcmVuY2VzU3RvcmUmIHN0b3JlKQogICAgIHNldHRp
bmdzLnNldFBhZ2luYXRlRHVyaW5nTGF5b3V0RW5hYmxlZChzdG9yZS5nZXRCb29sVmFsdWVGb3JL
ZXkoV2ViUHJlZmVyZW5jZXNLZXk6OnBhZ2luYXRlRHVyaW5nTGF5b3V0RW5hYmxlZEtleSgpKSk7
CiAgICAgc2V0dGluZ3Muc2V0RE9NUGFzdGVBbGxvd2VkKHN0b3JlLmdldEJvb2xWYWx1ZUZvcktl
eShXZWJQcmVmZXJlbmNlc0tleTo6ZG9tUGFzdGVBbGxvd2VkS2V5KCkpKTsKICAgICBzZXR0aW5n
cy5zZXRKYXZhU2NyaXB0Q2FuQWNjZXNzQ2xpcGJvYXJkKHN0b3JlLmdldEJvb2xWYWx1ZUZvcktl
eShXZWJQcmVmZXJlbmNlc0tleTo6amF2YVNjcmlwdENhbkFjY2Vzc0NsaXBib2FyZEtleSgpKSk7
CisgICAgc2V0dGluZ3Muc2V0TGlua1ByZWNvbm5lY3RFbmFibGVkKHN0b3JlLmdldEJvb2xWYWx1
ZUZvcktleShXZWJQcmVmZXJlbmNlc0tleTo6bGlua1ByZWNvbm5lY3RLZXkoKSkpOwogICAgIHNl
dHRpbmdzLnNldFNob3VsZFByaW50QmFja2dyb3VuZHMoc3RvcmUuZ2V0Qm9vbFZhbHVlRm9yS2V5
KFdlYlByZWZlcmVuY2VzS2V5OjpzaG91bGRQcmludEJhY2tncm91bmRzS2V5KCkpKTsKICAgICBz
ZXR0aW5ncy5zZXRXZWJTZWN1cml0eUVuYWJsZWQoc3RvcmUuZ2V0Qm9vbFZhbHVlRm9yS2V5KFdl
YlByZWZlcmVuY2VzS2V5Ojp3ZWJTZWN1cml0eUVuYWJsZWRLZXkoKSkpOwogICAgIHNldHRpbmdz
LnNldEFsbG93VW5pdmVyc2FsQWNjZXNzRnJvbUZpbGVVUkxzKHN0b3JlLmdldEJvb2xWYWx1ZUZv
cktleShXZWJQcmVmZXJlbmNlc0tleTo6YWxsb3dVbml2ZXJzYWxBY2Nlc3NGcm9tRmlsZVVSTHNL
ZXkoKSkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jb25maWcuaCBiL1NvdXJjZS9XZWJL
aXQvY29uZmlnLmgKaW5kZXggZTg2N2Y0ODdjNzE4OTE0ZjRkODlmMjE5ZGEwMzkxYzk1MTcwYjZk
Ni4uY2FmNGZkNzdiY2E5MDlkN2M2NDljYTY3YTE2MTcxYjc5ZTRkMjdiYSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9jb25maWcuaAorKysgYi9Tb3VyY2UvV2ViS2l0L2NvbmZpZy5oCkBAIC04
OCw2ICs4OCwxMiBAQAogI2VuZGlmCiAjZW5kaWYKIAorI2lmIFVTRShORVRXT1JLX1NFU1NJT04p
ICYmICgoUExBVEZPUk0oTUFDKSAmJiBfX01BQ19PU19YX1ZFUlNJT05fTUlOX1JFUVVJUkVEID49
IDEwMTMwMCkgfHwgKFBMQVRGT1JNKElPUykgJiYgX19JUEhPTkVfT1NfVkVSU0lPTl9NSU5fUkVR
VUlSRUQgPj0gMTEwMDAwKSkKKyNpZm5kZWYgRU5BQkxFX1NFUlZFUl9QUkVDT05ORUNUCisjZGVm
aW5lIEVOQUJMRV9TRVJWRVJfUFJFQ09OTkVDVCAxCisjZW5kaWYKKyNlbmRpZgorCiAjaWZuZGVm
IEhBVkVfU0VDX0FDQ0VTU19DT05UUk9MCiAjaWYgUExBVEZPUk0oSU9TKSB8fCBQTEFURk9STShN
QUMpCiAjZGVmaW5lIEhBVkVfU0VDX0FDQ0VTU19DT05UUk9MIDEKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXRMZWdhY3kvV2ViQ29yZVN1cHBvcnQvV2ViUmVzb3VyY2VMb2FkU2NoZWR1bGVyLmNw
cCBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvV2ViQ29yZVN1cHBvcnQvV2ViUmVzb3VyY2VMb2FkU2No
ZWR1bGVyLmNwcAppbmRleCA0ZDI5ODVkMWE0MzBiYzFiZDliZjI2M2I4OWU5ODFjZjYzYzVjYzM1
Li43OTc1YmQzZWEzNTlkZTlkZTY2MDI1N2NlYmRkNmE2ODYwMGE5ODczIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0TGVnYWN5L1dlYkNvcmVTdXBwb3J0L1dlYlJlc291cmNlTG9hZFNjaGVkdWxl
ci5jcHAKKysrIGIvU291cmNlL1dlYktpdExlZ2FjeS9XZWJDb3JlU3VwcG9ydC9XZWJSZXNvdXJj
ZUxvYWRTY2hlZHVsZXIuY3BwCkBAIC0zNjksMyArMzY5LDcgQEAgdm9pZCBXZWJSZXNvdXJjZUxv
YWRTY2hlZHVsZXI6OnN0YXJ0UGluZ0xvYWQoRnJhbWUmIGZyYW1lLCBSZXNvdXJjZVJlcXVlc3Qm
IHJlcXUKICAgICBuZXcgUGluZ0hhbmRsZShmcmFtZS5sb2FkZXIoKS5uZXR3b3JraW5nQ29udGV4
dCgpLCByZXF1ZXN0LCBvcHRpb25zLmNyZWRlbnRpYWxzICE9IEZldGNoT3B0aW9uczo6Q3JlZGVu
dGlhbHM6Ok9taXQsIFBpbmdIYW5kbGU6OlVzZXNBc3luY0NhbGxiYWNrczo6Tm8sIG9wdGlvbnMu
cmVkaXJlY3QgPT0gRmV0Y2hPcHRpb25zOjpSZWRpcmVjdDo6Rm9sbG93LCBXVEZNb3ZlKGNvbXBs
ZXRpb25IYW5kbGVyKSk7CiB9CiAKK3ZvaWQgV2ViUmVzb3VyY2VMb2FkU2NoZWR1bGVyOjpwcmVj
b25uZWN0VG8oUEFMOjpTZXNzaW9uSUQsIGNvbnN0IFVSTCYsIFN0b3JlZENyZWRlbnRpYWxzUG9s
aWN5LCBQcmVjb25uZWN0Q29tcGxldGlvbkhhbmRsZXImJikKK3sKK30KKwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdExlZ2FjeS9XZWJDb3JlU3VwcG9ydC9XZWJSZXNvdXJjZUxvYWRTY2hlZHVs
ZXIuaCBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvV2ViQ29yZVN1cHBvcnQvV2ViUmVzb3VyY2VMb2Fk
U2NoZWR1bGVyLmgKaW5kZXggMGUwYzJkZTU3N2M3YzJjZjc3NmE3ZmExNjFkZGRkNmI3NWQxMDhh
NC4uZWNmYzFjZmIzNWVkZWM0ZTM0YzhiNmU2Njc5NWJjNjQ4ZjViMWU3MSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdExlZ2FjeS9XZWJDb3JlU3VwcG9ydC9XZWJSZXNvdXJjZUxvYWRTY2hlZHVs
ZXIuaAorKysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L1dlYkNvcmVTdXBwb3J0L1dlYlJlc291cmNl
TG9hZFNjaGVkdWxlci5oCkBAIC02MSw2ICs2MSw4IEBAIHB1YmxpYzoKIAogICAgIHZvaWQgc3Rh
cnRQaW5nTG9hZChXZWJDb3JlOjpGcmFtZSYsIFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYsIGNv
bnN0IFdlYkNvcmU6OkhUVFBIZWFkZXJNYXAmLCBjb25zdCBXZWJDb3JlOjpGZXRjaE9wdGlvbnMm
LCBQaW5nTG9hZENvbXBsZXRpb25IYW5kbGVyJiYpIGZpbmFsOwogCisgICAgdm9pZCBwcmVjb25u
ZWN0VG8oUEFMOjpTZXNzaW9uSUQsIGNvbnN0IFdlYkNvcmU6OlVSTCYsIFdlYkNvcmU6OlN0b3Jl
ZENyZWRlbnRpYWxzUG9saWN5LCBQcmVjb25uZWN0Q29tcGxldGlvbkhhbmRsZXImJikgZmluYWw7
CisKICAgICB2b2lkIHN0b3JlRGVyaXZlZERhdGFUb0NhY2hlKGNvbnN0IFNIQTE6OkRpZ2VzdCYs
IGNvbnN0IFN0cmluZyYsIGNvbnN0IFN0cmluZyYsIFdlYkNvcmU6OlNoYXJlZEJ1ZmZlciYpIGZp
bmFsIHsgfQogCiAgICAgdm9pZCBzZXRDYXB0dXJlRXh0cmFOZXR3b3JrTG9hZE1ldHJpY3NFbmFi
bGVkKGJvb2wpIGZpbmFsIHsgfQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIv
TGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IDg4NzZlNjc2NzVkNmU5NmEzNDk0YjY0ZTMzY2Jj
NWE0YjI1ZTJhNDcuLjlmYzU2Y2VkN2FkYTM2NTg4YjliNWJhZWVmM2IwNDE3YTE1ZmUzM2IgMTAw
NjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKQEAgLTEsMyArMSwyNSBAQAorMjAxNy0wOS0yNyAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBw
bGUuY29tPgorCisgICAgICAgIEFkZCBzdXBwb3J0IGZvciA8bGluayByZWw9cHJlY29ubmVjdD4K
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE3NzQ3NAor
ICAgICAgICA8cmRhcjovL3Byb2JsZW0vMzMxNDEzODA+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBmYXN0L2RvbS9IVE1MTGlua0VsZW1lbnQvcHJl
Y29ubmVjdC1zdXBwb3J0LWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogZmFzdC9kb20v
SFRNTExpbmtFbGVtZW50L3ByZWNvbm5lY3Qtc3VwcG9ydC5odG1sOiBBZGRlZC4KKyAgICAgICAg
KiBodHRwL3Rlc3RzL3ByZWNvbm5lY3QvbGluay1yZWwtcHJlY29ubmVjdC1odHRwLWV4cGVjdGVk
LnR4dDogQWRkZWQuCisgICAgICAgICogaHR0cC90ZXN0cy9wcmVjb25uZWN0L2xpbmstcmVsLXBy
ZWNvbm5lY3QtaHR0cC5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL3ByZWNvbm5l
Y3QvbGluay1yZWwtcHJlY29ubmVjdC1odHRwcy1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAg
ICAqIGh0dHAvdGVzdHMvcHJlY29ubmVjdC9saW5rLXJlbC1wcmVjb25uZWN0LWh0dHBzLmh0bWw6
IEFkZGVkLgorICAgICAgICBBZGQgbGF5b3V0IHRlc3QgY292ZXJhZ2UuCisKKyAgICAgICAgKiBw
bGF0Zm9ybS9tYWMtZWxjYXBpdGFuLXdrMi9mYXN0L2RvbS9IVE1MTGlua0VsZW1lbnQvcHJlY29u
bmVjdC1zdXBwb3J0LWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogcGxhdGZvcm0vbWFj
LXdrMS9UZXN0RXhwZWN0YXRpb25zOgorICAgICAgICAqIHBsYXRmb3JtL21hYy13azEvZmFzdC9k
b20vSFRNTExpbmtFbGVtZW50L3ByZWNvbm5lY3Qtc3VwcG9ydC1leHBlY3RlZC50eHQ6IEFkZGVk
LgorICAgICAgICAqIHBsYXRmb3JtL21hYy13azIvVGVzdEV4cGVjdGF0aW9uczoKKyAgICAgICAg
U2tpcCBvciBsYW5kIGZhaWx1cmUgZXhwZWN0YXRpb25zIGZvciBwbGF0Zm9ybXMgd2hlcmUgdGhl
IGZlYXR1cmUgaXMgZGlzYWJsZWQuCisKIDIwMTctMDktMjcgIEFudHRpIEtvaXZpc3RvICA8YW50
dGlAYXBwbGUuY29tPgogCiAgICAgICAgIFJFR1JFU1NJT04gKHIyMjIwNDApOiBDcmFzaCBuYXZp
Z2F0aW5nIG91dCBvZiBnZnljYXQuY29tIHVybApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFz
dC9kb20vSFRNTExpbmtFbGVtZW50L3ByZWNvbm5lY3Qtc3VwcG9ydC1leHBlY3RlZC50eHQgYi9M
YXlvdXRUZXN0cy9mYXN0L2RvbS9IVE1MTGlua0VsZW1lbnQvcHJlY29ubmVjdC1zdXBwb3J0LWV4
cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5jNWEzZjVkNzFlYjBjNGQ3OGUzMzQzMWM0NjZjYjk4ZTY5
OGQyY2QzCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vSFRNTExpbmtF
bGVtZW50L3ByZWNvbm5lY3Qtc3VwcG9ydC1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwxMiBAQAor
VGVzdHMgdGhhdCBMaW5rJ3MgcmVsPXByZWNvbm5lY3QgaXMgcmVwb3J0ZWQgYXMgc3VwcG9ydGVk
LgorCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2Vz
LCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisKKworUEFTUyB0ZXN0TGluay5yZWxMaXN0
Lmxlbmd0aCBpcyAxCitQQVNTIHRlc3RMaW5rLnJlbExpc3RbMF0gaXMgInByZWNvbm5lY3QiCitQ
QVNTIHRlc3RMaW5rLnJlbExpc3Quc3VwcG9ydHMoJ3ByZWNvbm5lY3QnKSBpcyB0cnVlCitQQVNT
IHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvZmFzdC9kb20vSFRNTExpbmtFbGVtZW50L3ByZWNvbm5lY3Qtc3VwcG9y
dC5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vSFRNTExpbmtFbGVtZW50L3ByZWNvbm5lY3Qt
c3VwcG9ydC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmI2Y2QzMTIwN2FiNjQxY2UwMWQyNDAwYmUzYzcwN2M2
NTQxOTc3MmMKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9IVE1MTGlu
a0VsZW1lbnQvcHJlY29ubmVjdC1zdXBwb3J0Lmh0bWwKQEAgLTAsMCArMSwxOSBAQAorPCFET0NU
WVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNl
cy9qcy10ZXN0LmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPHNjcmlwdD4KK2Rlc2Ny
aXB0aW9uKCJUZXN0cyB0aGF0IExpbmsncyByZWw9cHJlY29ubmVjdCBpcyByZXBvcnRlZCBhcyBz
dXBwb3J0ZWQuIik7CisKK2NvbnN0IHRlc3RMaW5rID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgi
bGluayIpOwordGVzdExpbmsucmVsID0gInByZWNvbm5lY3QiOwordGVzdExpbmsuaHJlZiA9ICJo
dHRwOi8vbG9jYWxob3N0OjgwMDAiOworCitzaG91bGRCZSgidGVzdExpbmsucmVsTGlzdC5sZW5n
dGgiLCAiMSIpOworc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJ0ZXN0TGluay5yZWxMaXN0WzBdIiwg
InByZWNvbm5lY3QiKTsKK3Nob3VsZEJlVHJ1ZSgidGVzdExpbmsucmVsTGlzdC5zdXBwb3J0cygn
cHJlY29ubmVjdCcpIik7Cis8L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcHJlY29ubmVjdC9saW5rLXJlbC1wcmVjb25uZWN0LWh0
dHAtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9wcmVjb25uZWN0L2xpbmst
cmVsLXByZWNvbm5lY3QtaHR0cC1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNmQwODAyZjNlZTcz
OWRmYWNkMjI3MzBjM2JlYmM1MzAwNzBlNjFiNAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRl
c3RzL2h0dHAvdGVzdHMvcHJlY29ubmVjdC9saW5rLXJlbC1wcmVjb25uZWN0LWh0dHAtZXhwZWN0
ZWQudHh0CkBAIC0wLDAgKzEsMTAgQEAKK0NPTlNPTEUgTUVTU0FHRTogU3VjY2Vzc2Z1bHkgcHJl
Y29ubmVjdGVkIHRvIGh0dHA6Ly9sb2NhbGhvc3Q6ODAwMC8KK1Rlc3RzIHRoYXQgTGluaydzIHJl
bD1wcmVjb25uZWN0IHdvcmtzIGFzIGV4cGVjdGVkIG92ZXIgSFRUUC4KKworT24gc3VjY2Vzcywg
eW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRF
U1QgQ09NUExFVEUiLgorCisKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVT
VCBDT01QTEVURQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3ByZWNvbm5l
Y3QvbGluay1yZWwtcHJlY29ubmVjdC1odHRwLmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3Rz
L3ByZWNvbm5lY3QvbGluay1yZWwtcHJlY29ubmVjdC1odHRwLmh0bWwKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMGIx
ZTQzMjJjNzM0NjFlMDk1MzIwYTJlZDk3ZDAzZDNkM2VhZTFlZQotLS0gL2Rldi9udWxsCisrKyBi
L0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcHJlY29ubmVjdC9saW5rLXJlbC1wcmVjb25uZWN0LWh0
dHAuaHRtbApAQCAtMCwwICsxLDIxIEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+
Cis8c2NyaXB0IHNyYz0iL2pzLXRlc3QtcmVzb3VyY2VzL2pzLXRlc3QuanMiPjwvc2NyaXB0Pgor
PC9oZWFkPgorPGJvZHk+Cis8c2NyaXB0PgorZGVzY3JpcHRpb24oIlRlc3RzIHRoYXQgTGluaydz
IHJlbD1wcmVjb25uZWN0IHdvcmtzIGFzIGV4cGVjdGVkIG92ZXIgSFRUUC4iKTsKK2pzVGVzdElz
QXN5bmMgPSB0cnVlOworCitpbnRlcm5hbHMuc2V0Q29uc29sZU1lc3NhZ2VMaXN0ZW5lcihmdW5j
dGlvbigpIHsKKyAgICBmaW5pc2hKU1Rlc3QoKTsKK30pOworCitjb25zdCB0ZXN0TGluayA9IGRv
Y3VtZW50LmNyZWF0ZUVsZW1lbnQoImxpbmsiKTsKK3Rlc3RMaW5rLnJlbCA9ICJwcmVjb25uZWN0
IjsKK3Rlc3RMaW5rLmhyZWYgPSAiaHR0cDovL2xvY2FsaG9zdDo4MDAwIjsKK2RvY3VtZW50Lmhl
YWQuYXBwZW5kQ2hpbGQodGVzdExpbmspOworPC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3ByZWNvbm5lY3QvbGluay1yZWwtcHJl
Y29ubmVjdC1odHRwcy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3ByZWNv
bm5lY3QvbGluay1yZWwtcHJlY29ubmVjdC1odHRwcy1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
M2MxNGUyMzNmNzc4Y2YxZjgzYWQwZmFhMWNkMjdmZGQyZWMzZmE0OAotLS0gL2Rldi9udWxsCisr
KyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcHJlY29ubmVjdC9saW5rLXJlbC1wcmVjb25uZWN0
LWh0dHBzLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDEwIEBACitDT05TT0xFIE1FU1NBR0U6IEZh
aWxlZCB0byBwcmVjb25uZWN0IHRvIGh0dHBzOi8vbG9jYWxob3N0Ojg0NDMvLiBFcnJvcjogVGhl
IGNlcnRpZmljYXRlIGZvciB0aGlzIHNlcnZlciBpcyBpbnZhbGlkLiBZb3UgbWlnaHQgYmUgY29u
bmVjdGluZyB0byBhIHNlcnZlciB0aGF0IGlzIHByZXRlbmRpbmcgdG8gYmUg4oCcbG9jYWxob3N0
4oCdIHdoaWNoIGNvdWxkIHB1dCB5b3VyIGNvbmZpZGVudGlhbCBpbmZvcm1hdGlvbiBhdCByaXNr
LgorVGVzdHMgdGhhdCBMaW5rJ3MgcmVsPXByZWNvbm5lY3Qgd29ya3MgYXMgZXhwZWN0ZWQgb3Zl
ciBIVFRQUy4KKworT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBt
ZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCisKK1BBU1Mgc3VjY2Vzc2Z1
bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorCmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9odHRwL3Rlc3RzL3ByZWNvbm5lY3QvbGluay1yZWwtcHJlY29ubmVjdC1odHRwcy5odG1s
IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9wcmVjb25uZWN0L2xpbmstcmVsLXByZWNvbm5lY3Qt
aHR0cHMuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5lZmQ5NDAwNTI2ODFiOTM4ZDQxOWQzODA2OTYwMjQzODkw
NzNiZGEyCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9wcmVjb25u
ZWN0L2xpbmstcmVsLXByZWNvbm5lY3QtaHR0cHMuaHRtbApAQCAtMCwwICsxLDIxIEBACis8IURP
Q1RZUEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+Cis8c2NyaXB0IHNyYz0iL2pzLXRlc3QtcmVzb3Vy
Y2VzL2pzLXRlc3QuanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8c2NyaXB0PgorZGVz
Y3JpcHRpb24oIlRlc3RzIHRoYXQgTGluaydzIHJlbD1wcmVjb25uZWN0IHdvcmtzIGFzIGV4cGVj
dGVkIG92ZXIgSFRUUFMuIik7Citqc1Rlc3RJc0FzeW5jID0gdHJ1ZTsKKworaW50ZXJuYWxzLnNl
dENvbnNvbGVNZXNzYWdlTGlzdGVuZXIoZnVuY3Rpb24oKSB7CisgICAgZmluaXNoSlNUZXN0KCk7
Cit9KTsKKworY29uc3QgdGVzdExpbmsgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJsaW5rIik7
Cit0ZXN0TGluay5yZWwgPSAicHJlY29ubmVjdCI7Cit0ZXN0TGluay5ocmVmID0gImh0dHBzOi8v
bG9jYWxob3N0Ojg0NDMiOworZG9jdW1lbnQuaGVhZC5hcHBlbmRDaGlsZCh0ZXN0TGluayk7Cis8
L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRm
b3JtL21hYy1lbGNhcGl0YW4td2syL2Zhc3QvZG9tL0hUTUxMaW5rRWxlbWVudC9wcmVjb25uZWN0
LXN1cHBvcnQtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjLWVsY2FwaXRh
bi13azIvZmFzdC9kb20vSFRNTExpbmtFbGVtZW50L3ByZWNvbm5lY3Qtc3VwcG9ydC1leHBlY3Rl
ZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMC4uM2EyMDRkNGU2YTYwYjYxM2MzZTE2YTE4NTYwOGEyY2QyNDkwMmE4
YwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy1lbGNhcGl0YW4t
d2syL2Zhc3QvZG9tL0hUTUxMaW5rRWxlbWVudC9wcmVjb25uZWN0LXN1cHBvcnQtZXhwZWN0ZWQu
dHh0CkBAIC0wLDAgKzEsMTMgQEAKK1Rlc3RzIHRoYXQgTGluaydzIHJlbD1wcmVjb25uZWN0IGlz
IHJlcG9ydGVkIGFzIHN1cHBvcnRlZC4KKworT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2Vy
aWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCisK
K1BBU1MgdGVzdExpbmsucmVsTGlzdC5sZW5ndGggaXMgMQorUEFTUyB0ZXN0TGluay5yZWxMaXN0
WzBdIGlzICJwcmVjb25uZWN0IgorRkFJTCB0ZXN0TGluay5yZWxMaXN0LnN1cHBvcnRzKCdwcmVj
b25uZWN0Jykgc2hvdWxkIGJlIHRydWUuIFdhcyBmYWxzZS4KK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFy
c2VkIGlzIHRydWUKK1NvbWUgdGVzdHMgZmFpbGVkLgorCitURVNUIENPTVBMRVRFCisKZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy13azEvVGVzdEV4cGVjdGF0aW9ucyBiL0xh
eW91dFRlc3RzL3BsYXRmb3JtL21hYy13azEvVGVzdEV4cGVjdGF0aW9ucwppbmRleCA4MDM3MzMz
NGZlZjBmNmRlNTIwNzU1OWNkN2MyZDllYzUyNmZiMDQzLi5lY2ViNzNlNDQyMTUyYTc5OTE2YTk3
YzM5NmJkYzZjNGExZjdmYzQyIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMt
d2sxL1Rlc3RFeHBlY3RhdGlvbnMKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjLXdrMS9U
ZXN0RXhwZWN0YXRpb25zCkBAIC0zOTksNiArMzk5LDkgQEAgZmFzdC9pbWFnZXMvbG93LW1lbW9y
eS1kZWNvZGUuaHRtbCBbIFNraXAgXQogCiBodHRwL3Rlc3RzL3dvcmtlcnMvc2VydmljZSBbIFNr
aXAgXQogCisjIExpbmsgcHJlY29ubmVjdCBpcyBkaXNhYmxlZCBvbiBXZWJLaXQxIGJlY2F1c2Ug
aXQgZG9lcyBub3QgdXNlIE5FVFdPUktfU0VTU0lPTi4KK2h0dHAvdGVzdHMvcHJlY29ubmVjdCBb
IFNraXAgXQorCiB3ZWJraXQub3JnL2IvMTc1MzQ1IGZhc3QvaW1hZ2VzL2FuaW1hdGVkLWdpZi1z
Y3JvbGxpbmctY3Jhc2guaHRtbCBbIFBhc3MgVGltZW91dCBdCiAKIHdlYmtpdC5vcmcvYi8xNzU1
NTQgWyBTaWVycmEgXSBmdWxsc2NyZWVuL2Z1bGwtc2NyZWVuLWlmcmFtZS1sZWdhY3kuaHRtbCBb
IFBhc3MgRmFpbHVyZSBdCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMtd2sx
L2Zhc3QvZG9tL0hUTUxMaW5rRWxlbWVudC9wcmVjb25uZWN0LXN1cHBvcnQtZXhwZWN0ZWQudHh0
IGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjLXdrMS9mYXN0L2RvbS9IVE1MTGlua0VsZW1lbnQv
cHJlY29ubmVjdC1zdXBwb3J0LWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4zYTIwNGQ0ZTZhNjBi
NjEzYzNlMTZhMTg1NjA4YTJjZDI0OTAyYThjCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVz
dHMvcGxhdGZvcm0vbWFjLXdrMS9mYXN0L2RvbS9IVE1MTGlua0VsZW1lbnQvcHJlY29ubmVjdC1z
dXBwb3J0LWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDEzIEBACitUZXN0cyB0aGF0IExpbmsncyBy
ZWw9cHJlY29ubmVjdCBpcyByZXBvcnRlZCBhcyBzdXBwb3J0ZWQuCisKK09uIHN1Y2Nlc3MsIHlv
dSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNU
IENPTVBMRVRFIi4KKworCitQQVNTIHRlc3RMaW5rLnJlbExpc3QubGVuZ3RoIGlzIDEKK1BBU1Mg
dGVzdExpbmsucmVsTGlzdFswXSBpcyAicHJlY29ubmVjdCIKK0ZBSUwgdGVzdExpbmsucmVsTGlz
dC5zdXBwb3J0cygncHJlY29ubmVjdCcpIHNob3VsZCBiZSB0cnVlLiBXYXMgZmFsc2UuCitQQVNT
IHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCitTb21lIHRlc3RzIGZhaWxlZC4KKworVEVTVCBD
T01QTEVURQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMtd2syL1Rlc3RF
eHBlY3RhdGlvbnMgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMtd2syL1Rlc3RFeHBlY3RhdGlv
bnMKaW5kZXggMDdhYjQ2OGQxM2RlY2Y4ZGI2M2NmZWI4NGUxNzgxYjk1NmMwYTRjOC4uMjkxMTEz
OTNhZWJmY2YyNGM5MTM3ZGRkNTFiYmRiOWQ0NGZhNzI0OSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVz
dHMvcGxhdGZvcm0vbWFjLXdrMi9UZXN0RXhwZWN0YXRpb25zCisrKyBiL0xheW91dFRlc3RzL3Bs
YXRmb3JtL21hYy13azIvVGVzdEV4cGVjdGF0aW9ucwpAQCAtNzkzLDYgKzc5Myw5IEBAIHdlYmtp
dC5vcmcvYi8xNzYxMjIgbWVkaWEvdmlkZW8tY29udHJvbHMtZHJvcC1hbmQtcmVzdG9yZS10aW1l
bGluZS5odG1sIFsgUGFzcyBGCiAjIDxyZGFyOi8vcHJvYmxlbS8zMzU1NTc1OT4KIFsgSGlnaFNp
ZXJyYSsgXSBodHRwL3Rlc3RzL21lZGlhL3ZpZGVvLWJ1ZmZlcmVkLXJhbmdlLWNvbnRhaW5zLWN1
cnJlbnRUaW1lLmh0bWwgWyBQYXNzIEltYWdlT25seUZhaWx1cmUgXQogCisjIExpbmsgcHJlY29u
bmVjdCBpcyBkaXNhYmxlZCBvbiBFbENhcGl0YW4gYmVjYXVzZSBpdCBkb2VzIG5vdCB1c2UgTkVU
V09SS19TRVNTSU9OLgorWyBFbENhcGl0YW4gXSBodHRwL3Rlc3RzL3ByZWNvbm5lY3QgWyBTa2lw
IF0KKwogd2Via2l0Lm9yZy9iLzE3NjQ4NiBbIEVsQ2FwaXRhbiBEZWJ1ZyBdIGltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvYmFja2dyb3VuZC1mZXRjaC9pbnRlcmZhY2VzLXdvcmtlci5o
dHRwcy5odG1sIFsgUGFzcyBGYWlsdXJlIF0KIAogd2Via2l0Lm9yZy9iLzE3MTgzOSBbIERlYnVn
IF0gdGlsZWQtZHJhd2luZy9zY3JvbGxpbmcvc2Nyb2xsLXNuYXAvc2Nyb2xsLXNuYXAtbWFuZGF0
b3J5LW1haW5mcmFtZS12ZXJ0aWNhbC10aGVuLWhvcml6b250YWwuaHRtbCBbIFBhc3MgRmFpbHVy
ZSBdCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>322086</attachid>
            <date>2017-09-28 09:16:23 -0700</date>
            <delta_ts>2017-09-28 09:21:37 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-177474-20170928091623.patch</filename>
            <type>text/plain</type>
            <size>84840</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjIyNTU2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZmYxMjUwZDgyMmIwOTli
NzVjYjVhZjVlMGUwNDliODdhNTZmYzdkYS4uMTlhZDU4MTYzMjk2ZGExMDRhZDZkYjhkNjBhY2Y5
MGJkNTQzYjJiZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDU5IEBACisyMDE3LTA5LTI3ICBDaHJp
cyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgQWRkIHN1cHBvcnQgZm9yIDxs
aW5rIHJlbD1wcmVjb25uZWN0PgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9MTc3NDc0CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS8zMzE0MTM4MD4KKwor
ICAgICAgICBSZXZpZXdlZCBieSBBbGV4IENocmlzdGVuc2VuLgorCisgICAgICAgIEFkZCBzdXBw
b3J0IGZvciA8bGluayByZWw9cHJlY29ubmVjdD46CisgICAgICAgIC0gaHR0cHM6Ly93M2MuZ2l0
aHViLmlvL3Jlc291cmNlLWhpbnRzLyNwcmVjb25uZWN0CisKKyAgICAgICAgSXQgaXMgY3VycmVu
dGx5IG9ubHkgZW5hYmxlZCBmb3IgV0syIG9uIE1hY09TIEhpZ2ggU2llcnJhKworICAgICAgICBh
bmQgaU9TIDExKy4KKworICAgICAgICBUZXN0czogZmFzdC9kb20vSFRNTExpbmtFbGVtZW50L3By
ZWNvbm5lY3Qtc3VwcG9ydC5odG1sCisgICAgICAgICAgICAgICBodHRwL3Rlc3RzL3ByZWNvbm5l
Y3QvbGluay1yZWwtcHJlY29ubmVjdC1odHRwLmh0bWwKKyAgICAgICAgICAgICAgIGh0dHAvdGVz
dHMvcHJlY29ubmVjdC9saW5rLXJlbC1wcmVjb25uZWN0LWh0dHBzLmh0bWwKKworICAgICAgICAq
IGJpbmRpbmdzL2pzL0pTRE9NRXhjZXB0aW9uSGFuZGxpbmcuaDoKKyAgICAgICAgKiBiaW5kaW5n
cy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JKUy5wbToKKyAgICAgICAgKEdlbmVyYXRlQ2FsbGJhY2tI
ZWFkZXJDb250ZW50KToKKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL0lETEF0dHJpYnV0ZXMu
anNvbjoKKyAgICAgICAgKiBkb20vRG9jdW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RG9j
dW1lbnQ6OmFkZENvbnNvbGVNZXNzYWdlKToKKyAgICAgICAgKFdlYkNvcmU6OkRvY3VtZW50Ojpz
ZXRDb25zb2xlTWVzc2FnZUxpc3RlbmVyKToKKyAgICAgICAgKiBkb20vRG9jdW1lbnQuaDoKKyAg
ICAgICAgKiBkb20vU3RyaW5nQ2FsbGJhY2suaWRsOgorICAgICAgICAqIGh0bWwvRE9NVG9rZW5M
aXN0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkRPTVRva2VuTGlzdDo6RE9NVG9rZW5MaXN0KToK
KyAgICAgICAgKFdlYkNvcmU6OkRPTVRva2VuTGlzdDo6c3VwcG9ydHMpOgorICAgICAgICAqIGh0
bWwvRE9NVG9rZW5MaXN0Lmg6CisgICAgICAgIChXZWJDb3JlOjpET01Ub2tlbkxpc3Q6OkRPTVRv
a2VuTGlzdCk6CisgICAgICAgICogaHRtbC9IVE1MQW5jaG9yRWxlbWVudC5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpIVE1MQW5jaG9yRWxlbWVudDo6cmVsTGlzdCk6CisgICAgICAgICogaHRtbC9I
VE1MSUZyYW1lRWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpIVE1MSUZyYW1lRWxlbWVu
dDo6c2FuZGJveCk6CisgICAgICAgICogaHRtbC9IVE1MTGlua0VsZW1lbnQuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6SFRNTExpbmtFbGVtZW50OjpwYXJzZUF0dHJpYnV0ZSk6CisgICAgICAgIChX
ZWJDb3JlOjpIVE1MTGlua0VsZW1lbnQ6OnJlbExpc3QpOgorICAgICAgICAqIGh0bWwvTGlua1Jl
bEF0dHJpYnV0ZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpMaW5rUmVsQXR0cmlidXRlOjpMaW5r
UmVsQXR0cmlidXRlKToKKyAgICAgICAgKFdlYkNvcmU6OkxpbmtSZWxBdHRyaWJ1dGU6OmlzU3Vw
cG9ydGVkKToKKyAgICAgICAgKiBodG1sL0xpbmtSZWxBdHRyaWJ1dGUuaDoKKyAgICAgICAgKiBo
dG1sL3BhcnNlci9IVE1MUHJlbG9hZFNjYW5uZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6VG9r
ZW5QcmVsb2FkU2Nhbm5lcjo6U3RhcnRUYWdTY2FubmVyOjpwcm9jZXNzQXR0cmlidXRlKToKKyAg
ICAgICAgKiBsb2FkZXIvTGlua0xvYWRlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpMaW5rTG9h
ZGVyOjpsb2FkTGlua3NGcm9tSGVhZGVyKToKKyAgICAgICAgKFdlYkNvcmU6OkxpbmtMb2FkZXI6
OmxvYWRMaW5rKToKKyAgICAgICAgKiBsb2FkZXIvTG9hZGVyU3RyYXRlZ3kuaDoKKyAgICAgICAg
KiBwYWdlL1NldHRpbmdzLmluOgorICAgICAgICAqIHRlc3RpbmcvSW50ZXJuYWxzLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OkludGVybmFsczo6SW50ZXJuYWxzKToKKyAgICAgICAgKFdlYkNvcmU6
OkludGVybmFsczo6c2V0Q29uc29sZU1lc3NhZ2VMaXN0ZW5lcik6CisgICAgICAgICogdGVzdGlu
Zy9JbnRlcm5hbHMuaDoKKyAgICAgICAgKiB0ZXN0aW5nL0ludGVybmFscy5pZGw6CisKIDIwMTct
MDktMjcgIERhdmlkIEh5YXR0ICA8aHlhdHRAYXBwbGUuY29tPgogCiAgICAgICAgIFJlbmFtZSAi
UmVnaW9uIiB0byAiRnJhZ21lbnQiIGZvciBSZW5kZXJSZWdpb24gYW5kIGFzc29jaWF0ZWQgY2xh
c3Nlcy9tZXRob2RzLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvUEFML0NoYW5nZUxvZyBi
L1NvdXJjZS9XZWJDb3JlL1BBTC9DaGFuZ2VMb2cKaW5kZXggZTYxYzBlODQxNWY0OGFjNDQ4Nzdl
OGRhNDQ0YjAzN2NjZTY5YmI3Ni4uYTRkZDg1OWM0MGJiNmFmY2E2MWI2N2NmMmE0ZTNhMmU5NzQx
ZjMyYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvUEFML0NoYW5nZUxvZworKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9QQUwvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTUgQEAKKzIwMTctMDktMjYgIENo
cmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KKworICAgICAgICBBZGQgc3VwcG9ydCBmb3Ig
PGxpbmsgcmVsPXByZWNvbm5lY3Q+CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0xNzc0NzQKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzMzMTQxMzgwPgor
CisgICAgICAgIFJldmlld2VkIGJ5IEFsZXggQ2hyaXN0ZW5zZW4uCisKKyAgICAgICAgQWRkIG5l
dyBDRk5ldHdvcmsgU1BJIGZvciBwcmVjb25uZWN0aW5nLgorCisgICAgICAgICogcGFsL3NwaS9j
Zi9DRk5ldHdvcmtTUEkuaDoKKwogMjAxNy0wOS0yNiAgRG9uIE9sbXN0ZWFkICA8ZG9uLm9sbXN0
ZWFkQHNvbnkuY29tPgogCiAgICAgICAgIFtQQUxdW0NNYWtlXSBJbmNsdWRlIElDVSBkaXJlY3Rv
cmllcwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0
L0NoYW5nZUxvZwppbmRleCAzMWNiYmExNDUzMTBiYTg2OGU2Njk4NmM4M2E0MDk4OGM3ZGVmZTlk
Li40ZDhlYjM0M2JkMTZkZTBmMjM0ZTVjZTAzNzAzYWYzNjIwMWFlODA2IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwpAQCAt
MSwzICsxLDcxIEBACisyMDE3LTA5LTI2ICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+
CisKKyAgICAgICAgQWRkIHN1cHBvcnQgZm9yIDxsaW5rIHJlbD1wcmVjb25uZWN0PgorICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTc3NDc0CisgICAgICAg
IDxyZGFyOi8vcHJvYmxlbS8zMzE0MTM4MD4KKworICAgICAgICBSZXZpZXdlZCBieSBBbGV4IENo
cmlzdGVuc2VuLgorCisgICAgICAgIEFkZCBzdXBwb3J0IGZvciA8bGluayByZWw9cHJlY29ubmVj
dD46CisgICAgICAgIC0gaHR0cHM6Ly93M2MuZ2l0aHViLmlvL3Jlc291cmNlLWhpbnRzLyNwcmVj
b25uZWN0CisKKyAgICAgICAgQWxzbyBhZGQgY29ycmVzcG9uZGluZyBuYXRpdmUgcHJpdmF0ZSBB
UEkuCisKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9OZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJv
Y2Vzcy5jcHA6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNz
OjpwcmVjb25uZWN0VG8pOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrQ29ubmVjdGlvblRvV2Vi
UHJvY2Vzczo6ZGlkRmluaXNoUHJlY29ubmVjdGlvbik6CisgICAgICAgICogTmV0d29ya1Byb2Nl
c3MvTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuaDoKKyAgICAgICAgKiBOZXR3b3JrUHJv
Y2Vzcy9OZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5tZXNzYWdlcy5pbjoKKyAgICAgICAg
KiBOZXR3b3JrUHJvY2Vzcy9OZXR3b3JrRGF0YVRhc2suY3BwOgorICAgICAgICAoV2ViS2l0OjpO
ZXR3b3JrRGF0YVRhc2s6OmNyZWF0ZSk6CisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvTmV0d29y
a0xvYWRQYXJhbWV0ZXJzLmg6CisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nl
c3MuY3BwOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrUHJvY2Vzczo6cHJlY29ubmVjdFRvKToK
KyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5oOgorICAgICAgICAqIE5l
dHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLm1lc3NhZ2VzLmluOgorICAgICAgICAqIE5ldHdv
cmtQcm9jZXNzL1ByZWNvbm5lY3RUYXNrLmNwcDogQWRkZWQuCisgICAgICAgIChXZWJLaXQ6OlBy
ZWNvbm5lY3RUYXNrOjpQcmVjb25uZWN0VGFzayk6CisgICAgICAgIChXZWJLaXQ6OlByZWNvbm5l
Y3RUYXNrOjp+UHJlY29ubmVjdFRhc2spOgorICAgICAgICAoV2ViS2l0OjpQcmVjb25uZWN0VGFz
azo6d2lsbFBlcmZvcm1IVFRQUmVkaXJlY3Rpb24pOgorICAgICAgICAoV2ViS2l0OjpQcmVjb25u
ZWN0VGFzazo6ZGlkUmVjZWl2ZUNoYWxsZW5nZSk6CisgICAgICAgIChXZWJLaXQ6OlByZWNvbm5l
Y3RUYXNrOjpkaWRSZWNlaXZlUmVzcG9uc2VOZXR3b3JrU2Vzc2lvbik6CisgICAgICAgIChXZWJL
aXQ6OlByZWNvbm5lY3RUYXNrOjpkaWRSZWNlaXZlRGF0YSk6CisgICAgICAgIChXZWJLaXQ6OlBy
ZWNvbm5lY3RUYXNrOjpkaWRDb21wbGV0ZVdpdGhFcnJvcik6CisgICAgICAgIChXZWJLaXQ6OlBy
ZWNvbm5lY3RUYXNrOjpkaWRTZW5kRGF0YSk6CisgICAgICAgIChXZWJLaXQ6OlByZWNvbm5lY3RU
YXNrOjp3YXNCbG9ja2VkKToKKyAgICAgICAgKFdlYktpdDo6UHJlY29ubmVjdFRhc2s6OmNhbm5v
dFNob3dVUkwpOgorICAgICAgICAoV2ViS2l0OjpQcmVjb25uZWN0VGFzazo6ZGlkRmluaXNoKToK
KyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9QcmVjb25uZWN0VGFzay5oOiBDb3BpZWQgZnJvbSBT
b3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtMb2FkUGFyYW1ldGVycy5oLgorICAg
ICAgICAqIE5ldHdvcmtQcm9jZXNzL2NvY29hL05ldHdvcmtEYXRhVGFza0NvY29hLmg6CisgICAg
ICAgICogTmV0d29ya1Byb2Nlc3MvY29jb2EvTmV0d29ya0RhdGFUYXNrQ29jb2EubW06CisgICAg
ICAgIChXZWJLaXQ6Ok5ldHdvcmtEYXRhVGFza0NvY29hOjpOZXR3b3JrRGF0YVRhc2tDb2NvYSk6
CisgICAgICAgICogU2hhcmVkL1dlYkNvcmVBcmd1bWVudENvZGVycy5oOgorICAgICAgICAqIFNo
YXJlZC9XZWJQcmVmZXJlbmNlc0RlZmluaXRpb25zLmg6CisgICAgICAgICogVUlQcm9jZXNzL0FQ
SS9DL1dLQ29udGV4dC5jcHA6CisgICAgICAgIChXS0NvbnRleHRQcmVjb25uZWN0VG9TZXJ2ZXIp
OgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQy9XS0NvbnRleHRQcml2YXRlLmg6CisgICAgICAg
ICogVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1Byb2Nlc3NQb29sLm1tOgorICAgICAgICAoLVtXS1By
b2Nlc3NQb29sIF9wcmVjb25uZWN0VG9TZXJ2ZXI6XSk6CisgICAgICAgICogVUlQcm9jZXNzL0FQ
SS9Db2NvYS9XS1Byb2Nlc3NQb29sUHJpdmF0ZS5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQ
cm9jZXNzUG9vbC5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3NQb29sOjpwcmVjb25u
ZWN0VG9TZXJ2ZXIpOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQcm9jZXNzUG9vbC5oOgorICAg
ICAgICAqIFdlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAqIFdlYlBy
b2Nlc3MvTmV0d29yay9OZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb24uY3BwOgorICAgICAgICAoV2Vi
S2l0OjpOZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb246OmRpZEZpbmlzaFByZWNvbm5lY3Rpb24pOgor
ICAgICAgICAqIFdlYlByb2Nlc3MvTmV0d29yay9OZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb24uaDoK
KyAgICAgICAgKiBXZWJQcm9jZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uLm1l
c3NhZ2VzLmluOgorICAgICAgICAqIFdlYlByb2Nlc3MvTmV0d29yay9XZWJMb2FkZXJTdHJhdGVn
eS5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYkxvYWRlclN0cmF0ZWd5OjpuZXR3b3JrUHJvY2Vz
c0NyYXNoZWQpOgorICAgICAgICAoV2ViS2l0OjpnZW5lcmF0ZUxvYWRJZGVudGlmaWVyKToKKyAg
ICAgICAgKFdlYktpdDo6V2ViTG9hZGVyU3RyYXRlZ3k6OnN0YXJ0UGluZ0xvYWQpOgorICAgICAg
ICAoV2ViS2l0OjpXZWJMb2FkZXJTdHJhdGVneTo6cHJlY29ubmVjdFRvKToKKyAgICAgICAgKFdl
YktpdDo6V2ViTG9hZGVyU3RyYXRlZ3k6OmRpZEZpbmlzaFByZWNvbm5lY3Rpb24pOgorICAgICAg
ICAqIFdlYlByb2Nlc3MvTmV0d29yay9XZWJMb2FkZXJTdHJhdGVneS5oOgorICAgICAgICAqIFdl
YlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZTo6
dXBkYXRlUHJlZmVyZW5jZXMpOgorICAgICAgICAqIGNvbmZpZy5oOgorCiAyMDE3LTA5LTI2ICBB
bGV4IENocmlzdGVuc2VuICA8YWNocmlzdGVuc2VuQHdlYmtpdC5vcmc+CiAKICAgICAgICAgUGFz
cyBhIGNvbXBsZXRpb24gaGFuZGxlciBpbnN0ZWFkIG9mIGEgV2ViRnJhbWVQb2xpY3lMaXN0ZW5l
clByb3h5IGR1cmluZyBwb2xpY3kgZGVjaXNpb25zCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
TGVnYWN5L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvQ2hhbmdlTG9nCmluZGV4IGY4
MjUwMzY2MGMxNGQ3ZmVkNGNkMzY5ZmYwNTVlOGU0MzkyM2M3NDUuLjk0NWU1Nzc2MDhjNDI2ODk3
ZmI0NzIzYjU1ZDk0ZDU2MGY5MzgyMDUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kv
Q2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvQ2hhbmdlTG9nCkBAIC0xLDMgKzEs
MTUgQEAKKzIwMTctMDktMjYgIENocmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KKworICAg
ICAgICBBZGQgc3VwcG9ydCBmb3IgPGxpbmsgcmVsPXByZWNvbm5lY3Q+CisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNzc0NzQKKyAgICAgICAgPHJkYXI6
Ly9wcm9ibGVtLzMzMTQxMzgwPgorCisgICAgICAgIFJldmlld2VkIGJ5IEFsZXggQ2hyaXN0ZW5z
ZW4uCisKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9XZWJSZXNvdXJjZUxvYWRTY2hlZHVsZXIu
Y3BwOgorICAgICAgICAoV2ViUmVzb3VyY2VMb2FkU2NoZWR1bGVyOjpwcmVjb25uZWN0VG8pOgor
ICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L1dlYlJlc291cmNlTG9hZFNjaGVkdWxlci5oOgorCiAy
MDE3LTA5LTI2ICBQZXIgQXJuZSBWb2xsYW4gIDxwdm9sbGFuQGFwcGxlLmNvbT4KIAogICAgICAg
ICBbV2luXSBXZWJLaXRDT01BUEkuaCBpcyBub3QgY29waWVkIGFmdGVyIGJ1aWxkIGhhcyBmaW5p
c2hlZC4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvc3BpL2NmL0NGTmV0d29y
a1NQSS5oIGIvU291cmNlL1dlYkNvcmUvUEFML3BhbC9zcGkvY2YvQ0ZOZXR3b3JrU1BJLmgKaW5k
ZXggM2U1ODQzZWFkNWI0M2M1Mzg4M2RmODFiNjQwYzljZjQzNTg0N2VmMy4uNjgxZGJiYjNiODAz
MmQ5MmJhNTU5YmQxNzQ0MjliOTQxMDY0YjI5YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
UEFML3BhbC9zcGkvY2YvQ0ZOZXR3b3JrU1BJLmgKKysrIGIvU291cmNlL1dlYkNvcmUvUEFML3Bh
bC9zcGkvY2YvQ0ZOZXR3b3JrU1BJLmgKQEAgLTExMyw2ICsxMTMsMTIgQEAgdHlwZWRlZiB2b2lk
ICheQ0ZDYWNoZWRVUkxSZXNwb25zZUNhbGxCYWNrQmxvY2spKENGQ2FjaGVkVVJMUmVzcG9uc2VS
ZWYpOwogLSAoTlNEaWN0aW9uYXJ5ICopX3RpbWluZ0RhdGE7CiBAZW5kCiAKKyNpZiAoUExBVEZP
Uk0oTUFDKSAmJiBfX01BQ19PU19YX1ZFUlNJT05fTUlOX1JFUVVJUkVEID49IDEwMTMwMCkgfHwg
KFBMQVRGT1JNKElPUykgJiYgX19JUEhPTkVfT1NfVkVSU0lPTl9NSU5fUkVRVUlSRUQgPj0gMTEw
MDAwKQorQGludGVyZmFjZSBOU1VSTFNlc3Npb25UYXNrIChSZXNvdXJjZUhpbnRzKQorQHByb3Bl
cnR5IChub25hdG9taWMsIGFzc2lnbikgQk9PTCBfcHJlY29ubmVjdDsKK0BlbmQKKyNlbmRpZgor
CiBAaW50ZXJmYWNlIE5TSFRUUENvb2tpZSAoKQogLSAoQ0ZIVFRQQ29va2llUmVmKV9DRkhUVFBD
b29raWU7CiArIChDRkFycmF5UmVmIF9fbnVsbGFibGUpX25zMmNmQ29va2llczooTlNBcnJheSAq
IF9fbnVsbGFibGUpbnNDb29raWVzIENGX1JFVFVSTlNfUkVUQUlORUQ7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTUV4Y2VwdGlvbkhhbmRsaW5nLmggYi9Tb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTUV4Y2VwdGlvbkhhbmRsaW5nLmgKaW5kZXggMjgw
OGM4ZmYwMTJhY2FlYzgxMmVhMmEyYTAyYThhNzQ5ZDBlMjg3OS4uZTZkNzUzMWEzZmYwNjI0OGE4
ZmQxMWZiMzcxNDc0MGM1YTViNzczYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGlu
Z3MvanMvSlNET01FeGNlcHRpb25IYW5kbGluZy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRp
bmdzL2pzL0pTRE9NRXhjZXB0aW9uSGFuZGxpbmcuaApAQCAtNjIsNyArNjIsNyBAQCBXRUJDT1JF
X0VYUE9SVCB2b2lkIHRocm93U2VxdWVuY2VUeXBlRXJyb3IoSlNDOjpFeGVjU3RhdGUmLCBKU0M6
OlRocm93U2NvcGUmKTsKIHZvaWQgdGhyb3dUeXBlTWlzbWF0Y2hFcnJvcihKU0M6OkV4ZWNTdGF0
ZSYsIEpTQzo6VGhyb3dTY29wZSYpOwogCiBXRUJDT1JFX0VYUE9SVCBKU0M6OkVuY29kZWRKU1Zh
bHVlIHRocm93QXJndW1lbnRNdXN0QmVFbnVtRXJyb3IoSlNDOjpFeGVjU3RhdGUmLCBKU0M6OlRo
cm93U2NvcGUmLCB1bnNpZ25lZCBhcmd1bWVudEluZGV4LCBjb25zdCBjaGFyKiBhcmd1bWVudE5h
bWUsIGNvbnN0IGNoYXIqIGZ1bmN0aW9uSW50ZXJmYWNlTmFtZSwgY29uc3QgY2hhciogZnVuY3Rp
b25OYW1lLCBjb25zdCBjaGFyKiBleHBlY3RlZFZhbHVlcyk7Ci1KU0M6OkVuY29kZWRKU1ZhbHVl
IHRocm93QXJndW1lbnRNdXN0QmVGdW5jdGlvbkVycm9yKEpTQzo6RXhlY1N0YXRlJiwgSlNDOjpU
aHJvd1Njb3BlJiwgdW5zaWduZWQgYXJndW1lbnRJbmRleCwgY29uc3QgY2hhciogYXJndW1lbnRO
YW1lLCBjb25zdCBjaGFyKiBmdW5jdGlvbkludGVyZmFjZU5hbWUsIGNvbnN0IGNoYXIqIGZ1bmN0
aW9uTmFtZSk7CitXRUJDT1JFX0VYUE9SVCBKU0M6OkVuY29kZWRKU1ZhbHVlIHRocm93QXJndW1l
bnRNdXN0QmVGdW5jdGlvbkVycm9yKEpTQzo6RXhlY1N0YXRlJiwgSlNDOjpUaHJvd1Njb3BlJiwg
dW5zaWduZWQgYXJndW1lbnRJbmRleCwgY29uc3QgY2hhciogYXJndW1lbnROYW1lLCBjb25zdCBj
aGFyKiBmdW5jdGlvbkludGVyZmFjZU5hbWUsIGNvbnN0IGNoYXIqIGZ1bmN0aW9uTmFtZSk7CiBX
RUJDT1JFX0VYUE9SVCBKU0M6OkVuY29kZWRKU1ZhbHVlIHRocm93QXJndW1lbnRUeXBlRXJyb3Io
SlNDOjpFeGVjU3RhdGUmLCBKU0M6OlRocm93U2NvcGUmLCB1bnNpZ25lZCBhcmd1bWVudEluZGV4
LCBjb25zdCBjaGFyKiBhcmd1bWVudE5hbWUsIGNvbnN0IGNoYXIqIGZ1bmN0aW9uSW50ZXJmYWNl
TmFtZSwgY29uc3QgY2hhciogZnVuY3Rpb25OYW1lLCBjb25zdCBjaGFyKiBleHBlY3RlZFR5cGUp
OwogV0VCQ09SRV9FWFBPUlQgSlNDOjpFbmNvZGVkSlNWYWx1ZSB0aHJvd1JlcXVpcmVkTWVtYmVy
VHlwZUVycm9yKEpTQzo6RXhlY1N0YXRlJiwgSlNDOjpUaHJvd1Njb3BlJiwgY29uc3QgY2hhciog
bWVtYmVyTmFtZSwgY29uc3QgY2hhciogZGljdGlvbmFyeU5hbWUsIGNvbnN0IGNoYXIqIGV4cGVj
dGVkVHlwZSk7CiBKU0M6OkVuY29kZWRKU1ZhbHVlIHRocm93Q29uc3RydWN0b3JTY3JpcHRFeGVj
dXRpb25Db250ZXh0VW5hdmFpbGFibGVFcnJvcihKU0M6OkV4ZWNTdGF0ZSYsIEpTQzo6VGhyb3dT
Y29wZSYsIGNvbnN0IGNoYXIqIGludGVyZmFjZU5hbWUpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9ySlMucG0gYi9Tb3VyY2UvV2ViQ29y
ZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JKUy5wbQppbmRleCA2NjI0M2M1MGU3NDZk
MmQ0MjYxMmI5NWRhNzBjMTY4N2Q5NDIwNTI1Li5jNWE4N2MyOTBlM2M5NWQxMThhNjM3NWRhNTAw
ZjlmMDU1MzBlZjg3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRz
L0NvZGVHZW5lcmF0b3JKUy5wbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRz
L0NvZGVHZW5lcmF0b3JKUy5wbQpAQCAtNTgxOCw3ICs1ODE4LDkgQEAgc3ViIEdlbmVyYXRlQ2Fs
bGJhY2tIZWFkZXJDb250ZW50CiAgICAgJGluY2x1ZGVzUmVmLT57Ijx3dGYvRm9yd2FyZC5oPiJ9
ID0gMTsKICAgICAkaW5jbHVkZXNSZWYtPnsiJHtuYW1lfS5oIn0gPSAxOwogCi0gICAgcHVzaChA
JGNvbnRlbnRSZWYsICJjbGFzcyAkY2xhc3NOYW1lIGZpbmFsIDogcHVibGljICR7bmFtZX0ge1xu
Iik7CisgICAgbXkgJGV4cG9ydE1hY3JvID0gR2V0RXhwb3J0TWFjcm9Gb3JKU0NsYXNzKCRpbnRl
cmZhY2VPckNhbGxiYWNrKTsKKworICAgIHB1c2goQCRjb250ZW50UmVmLCAiY2xhc3MgJGV4cG9y
dE1hY3JvJGNsYXNzTmFtZSBmaW5hbCA6IHB1YmxpYyAke25hbWV9IHtcbiIpOwogICAgIHB1c2go
QCRjb250ZW50UmVmLCAicHVibGljOlxuIik7CiAKICAgICAjIFRoZSBzdGF0aWMgY3JlYXRlKCkg
bWV0aG9kLgpAQCAtNTg3NSw3ICs1ODc3LDcgQEAgc3ViIEdlbmVyYXRlQ2FsbGJhY2tIZWFkZXJD
b250ZW50CiAgICAgcHVzaChAJGNvbnRlbnRSZWYsICJ9O1xuXG4iKTsKIAogICAgICMgdG9KUygp
LgotICAgIHB1c2goQCRjb250ZW50UmVmLCAiSlNDOjpKU1ZhbHVlIHRvSlMoJHtuYW1lfSYpO1xu
Iik7CisgICAgcHVzaChAJGNvbnRlbnRSZWYsICRleHBvcnRNYWNybyAuICJKU0M6OkpTVmFsdWUg
dG9KUygke25hbWV9Jik7XG4iKTsKICAgICBwdXNoKEAkY29udGVudFJlZiwgImlubGluZSBKU0M6
OkpTVmFsdWUgdG9KUygke25hbWV9KiBpbXBsKSB7IHJldHVybiBpbXBsID8gdG9KUygqaW1wbCkg
OiBKU0M6OmpzTnVsbCgpOyB9XG5cbiIpOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9iaW5kaW5ncy9zY3JpcHRzL0lETEF0dHJpYnV0ZXMuanNvbiBiL1NvdXJjZS9XZWJDb3JlL2Jp
bmRpbmdzL3NjcmlwdHMvSURMQXR0cmlidXRlcy5qc29uCmluZGV4IDU3OWEwOWE5MGE1MWYzMjAy
MTVhZDNkY2NiZTk4OTc0M2JkN2E2OTAuLjdjZTQ4ZTYxZjBlOGFmNDk5ZTZlMDYzYzZiM2U5YThk
MDRmZjIwOWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvSURM
QXR0cmlidXRlcy5qc29uCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvSURM
QXR0cmlidXRlcy5qc29uCkBAIC0xODYsNyArMTg2LDcgQEAKICAgICAgICAgICAgIH0KICAgICAg
ICAgfSwKICAgICAgICAgIkV4cG9ydE1hY3JvIjogewotICAgICAgICAgICAgImNvbnRleHRzQWxs
b3dlZCI6IFsiaW50ZXJmYWNlIiwgImRpY3Rpb25hcnkiLCAiZW51bSJdLAorICAgICAgICAgICAg
ImNvbnRleHRzQWxsb3dlZCI6IFsiaW50ZXJmYWNlIiwgImRpY3Rpb25hcnkiLCAiZW51bSIsICJj
YWxsYmFjay1mdW5jdGlvbiJdLAogICAgICAgICAgICAgInZhbHVlcyI6IFsiV0VCQ09SRV9FWFBP
UlQiLCAiV0VCQ09SRV9URVNUU1VQUE9SVF9FWFBPUlQiXQogICAgICAgICB9LAogICAgICAgICAi
RXhwb3J0VG9XcmFwcGVkRnVuY3Rpb24iOiB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9k
b20vRG9jdW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcAppbmRleCAy
ODQ1MTQ5NmE1Nzg0NjA2YzM1N2NhZmQxOGVkMDYyNTJmYTU3NzZkLi4zZWY1NDRhMmMwMGYwOTYx
ODVmOTcyOWY0MGI2MGFiZjU2N2RkNGMyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20v
RG9jdW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAKQEAgLTE3
Myw2ICsxNzMsNyBAQAogI2luY2x1ZGUgIlNoYWRvd1Jvb3QuaCIKICNpbmNsdWRlICJTb2NrZXRQ
cm92aWRlci5oIgogI2luY2x1ZGUgIlN0b3JhZ2VFdmVudC5oIgorI2luY2x1ZGUgIlN0cmluZ0Nh
bGxiYWNrLmgiCiAjaW5jbHVkZSAiU3R5bGVQcm9wZXJ0aWVzLmgiCiAjaW5jbHVkZSAiU3R5bGVS
ZXNvbHZlRm9yRG9jdW1lbnQuaCIKICNpbmNsdWRlICJTdHlsZVJlc29sdmVyLmgiCkBAIC01NjEx
LDYgKzU2MTIsOSBAQCB2b2lkIERvY3VtZW50OjphZGRDb25zb2xlTWVzc2FnZShNZXNzYWdlU291
cmNlIHNvdXJjZSwgTWVzc2FnZUxldmVsIGxldmVsLCBjb25zdAogCiAgICAgaWYgKFBhZ2UqIHBh
Z2UgPSB0aGlzLT5wYWdlKCkpCiAgICAgICAgIHBhZ2UtPmNvbnNvbGUoKS5hZGRNZXNzYWdlKHNv
dXJjZSwgbGV2ZWwsIG1lc3NhZ2UsIHJlcXVlc3RJZGVudGlmaWVyLCB0aGlzKTsKKworICAgIGlm
IChtX2NvbnNvbGVNZXNzYWdlTGlzdGVuZXIpCisgICAgICAgIG1fY29uc29sZU1lc3NhZ2VMaXN0
ZW5lci0+c2NoZWR1bGVDYWxsYmFjaygqdGhpcywgbWVzc2FnZSk7CiB9CiAKIHZvaWQgRG9jdW1l
bnQ6OmFkZE1lc3NhZ2UoTWVzc2FnZVNvdXJjZSBzb3VyY2UsIE1lc3NhZ2VMZXZlbCBsZXZlbCwg
Y29uc3QgU3RyaW5nJiBtZXNzYWdlLCBjb25zdCBTdHJpbmcmIHNvdXJjZVVSTCwgdW5zaWduZWQg
bGluZU51bWJlciwgdW5zaWduZWQgY29sdW1uTnVtYmVyLCBSZWZQdHI8SW5zcGVjdG9yOjpTY3Jp
cHRDYWxsU3RhY2s+JiYgY2FsbFN0YWNrLCBKU0M6OkV4ZWNTdGF0ZSogc3RhdGUsIHVuc2lnbmVk
IGxvbmcgcmVxdWVzdElkZW50aWZpZXIpCkBAIC03MzQwLDQgKzczNDQsOSBAQCB2b2lkIERvY3Vt
ZW50OjpyZXF1ZXN0U3RvcmFnZUFjY2VzcyhSZWY8RGVmZXJyZWRQcm9taXNlPiYmIHBhc3NlZFBy
b21pc2UpCiAgICAgcHJvbWlzZS0+cmVzb2x2ZTxJRExCb29sZWFuPihmYWxzZSk7CiB9CiAKK3Zv
aWQgRG9jdW1lbnQ6OnNldENvbnNvbGVNZXNzYWdlTGlzdGVuZXIoUmVmUHRyPFN0cmluZ0NhbGxi
YWNrPiYmIGxpc3RlbmVyKQoreworICAgIG1fY29uc29sZU1lc3NhZ2VMaXN0ZW5lciA9IGxpc3Rl
bmVyOworfQorCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9kb20vRG9jdW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5oCmluZGV4
IDdhNWQxYWVlMGVjOTI1YWUwNmU2OGI3Y2VmN2FiMTIzNDM5YmE0NmEuLjBmYmYxMDY3ODRmY2I5
ZDM1N2U3M2NlOTYzMWRmYjEyOTJlODFjY2UgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Rv
bS9Eb2N1bWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5oCkBAIC0xNjgs
NiArMTY4LDcgQEAgY2xhc3MgU2VsZWN0b3JRdWVyeTsKIGNsYXNzIFNlbGVjdG9yUXVlcnlDYWNo
ZTsKIGNsYXNzIFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZTsKIGNsYXNzIFNldHRpbmdzOworY2xhc3Mg
U3RyaW5nQ2FsbGJhY2s7CiBjbGFzcyBTdHlsZVJlc29sdmVyOwogY2xhc3MgU3R5bGVTaGVldDsK
IGNsYXNzIFN0eWxlU2hlZXRDb250ZW50czsKQEAgLTEzNTksNiArMTM2MCw4IEBAIHB1YmxpYzoK
ICAgICB2b2lkIHJlcXVlc3RTdG9yYWdlQWNjZXNzKFJlZjxEZWZlcnJlZFByb21pc2U+JiYgcGFz
c2VkUHJvbWlzZSk7CiAgICAgdm9pZCBzZXRVc2VyR3JhbnRzU3RvcmFnZUFjY2Vzc092ZXJyaWRl
KGJvb2wgdmFsdWUpIHsgbV9ncmFudFN0b3JhZ2VBY2Nlc3NPdmVycmlkZSA9IHZhbHVlOyB9CiAK
KyAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHNldENvbnNvbGVNZXNzYWdlTGlzdGVuZXIoUmVmUHRy
PFN0cmluZ0NhbGxiYWNrPiYmKTsgLy8gRm9yIHRlc3RpbmcuCisKIHByb3RlY3RlZDoKICAgICBl
bnVtIENvbnN0cnVjdGlvbkZsYWdzIHsgU3ludGhlc2l6ZWQgPSAxLCBOb25SZW5kZXJlZFBsYWNl
aG9sZGVyID0gMSA8PCAxIH07CiAgICAgRG9jdW1lbnQoRnJhbWUqLCBjb25zdCBVUkwmLCB1bnNp
Z25lZCA9IERlZmF1bHREb2N1bWVudENsYXNzLCB1bnNpZ25lZCBjb25zdHJ1Y3Rpb25GbGFncyA9
IDApOwpAQCAtMTgwOCw2ICsxODExLDcgQEAgcHJpdmF0ZToKICAgICBPcmllbnRhdGlvbk5vdGlm
aWVyIG1fb3JpZW50YXRpb25Ob3RpZmllcjsKICAgICBtdXRhYmxlIFBBTDo6U2Vzc2lvbklEIG1f
c2Vzc2lvbklEOwogICAgIG11dGFibGUgUmVmUHRyPFBBTDo6TG9nZ2VyPiBtX2xvZ2dlcjsKKyAg
ICBSZWZQdHI8U3RyaW5nQ2FsbGJhY2s+IG1fY29uc29sZU1lc3NhZ2VMaXN0ZW5lcjsKIAogICAg
IHN0YXRpYyBib29sIGhhc0V2ZXJDcmVhdGVkQW5BWE9iamVjdENhY2hlOwogCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9kb20vU3RyaW5nQ2FsbGJhY2suaWRsIGIvU291cmNlL1dlYkNvcmUv
ZG9tL1N0cmluZ0NhbGxiYWNrLmlkbAppbmRleCA1Y2NkMzFhNDdiNjM1N2JlNmVjZjBlYTc3OTE5
MjNiMWE5NWNlZWVhLi45NzU5MWUxMDVkNzg2ZTc5NDE3NjU1YWJkYzYzMzk0YzRkZThjMDRjIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vU3RyaW5nQ2FsbGJhY2suaWRsCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2RvbS9TdHJpbmdDYWxsYmFjay5pZGwKQEAgLTI4LDQgKzI4LDYgQEAKICAq
IE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0Yg
U1VDSCBEQU1BR0UuCiAgKi8KIAotY2FsbGJhY2sgU3RyaW5nQ2FsbGJhY2sgPSB2b2lkIChET01T
dHJpbmcgZGF0YSk7CitbCisgICAgRXhwb3J0TWFjcm89V0VCQ09SRV9URVNUU1VQUE9SVF9FWFBP
UlQKK10gY2FsbGJhY2sgU3RyaW5nQ2FsbGJhY2sgPSB2b2lkIChET01TdHJpbmcgZGF0YSk7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0RPTVRva2VuTGlzdC5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9odG1sL0RPTVRva2VuTGlzdC5jcHAKaW5kZXggMjU1NWI2ODQ0NmIyOGVjMmJmMDY1
ZjdiY2M0ZTFmNWE3Zjc2YTAyMC4uN2NhYjFiNzM2YTA0MTc1ZWQxMjFjOTdkMGEzNTJhNDllYTk2
ZDVjZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9ET01Ub2tlbkxpc3QuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvRE9NVG9rZW5MaXN0LmNwcApAQCAtMzUsNyArMzUsNyBA
QAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLURPTVRva2VuTGlzdDo6RE9NVG9rZW5MaXN0KEVs
ZW1lbnQmIGVsZW1lbnQsIGNvbnN0IFF1YWxpZmllZE5hbWUmIGF0dHJpYnV0ZU5hbWUsIFdURjo6
RnVuY3Rpb248Ym9vbChTdHJpbmdWaWV3KT4mJiBpc1N1cHBvcnRlZFRva2VuKQorRE9NVG9rZW5M
aXN0OjpET01Ub2tlbkxpc3QoRWxlbWVudCYgZWxlbWVudCwgY29uc3QgUXVhbGlmaWVkTmFtZSYg
YXR0cmlidXRlTmFtZSwgSXNTdXBwb3J0ZWRUb2tlbkZ1bmN0aW9uJiYgaXNTdXBwb3J0ZWRUb2tl
bikKICAgICA6IG1fZWxlbWVudChlbGVtZW50KQogICAgICwgbV9hdHRyaWJ1dGVOYW1lKGF0dHJp
YnV0ZU5hbWUpCiAgICAgLCBtX2lzU3VwcG9ydGVkVG9rZW4oV1RGTW92ZShpc1N1cHBvcnRlZFRv
a2VuKSkKQEAgLTE5MSw3ICsxOTEsNyBAQCBFeGNlcHRpb25Pcjxib29sPiBET01Ub2tlbkxpc3Q6
OnN1cHBvcnRzKFN0cmluZ1ZpZXcgdG9rZW4pCiB7CiAgICAgaWYgKCFtX2lzU3VwcG9ydGVkVG9r
ZW4pCiAgICAgICAgIHJldHVybiBFeGNlcHRpb24geyBUeXBlRXJyb3IgfTsKLSAgICByZXR1cm4g
bV9pc1N1cHBvcnRlZFRva2VuKHRva2VuKTsKKyAgICByZXR1cm4gbV9pc1N1cHBvcnRlZFRva2Vu
KG1fZWxlbWVudC5kb2N1bWVudCgpLCB0b2tlbik7CiB9CiAKIC8vIGh0dHBzOi8vZG9tLnNwZWMu
d2hhdHdnLm9yZy8jZG9tLWRvbXRva2VubGlzdC12YWx1ZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvaHRtbC9ET01Ub2tlbkxpc3QuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvRE9NVG9rZW5M
aXN0LmgKaW5kZXggMjFmYjQ2ZjQ2MTJjYTNjOTNjYmU1OWVkMjg0M2EyNGJkMjRhNTc4Ni4uZDYw
ZDE3Y2M5MTUxYTExYjE4NjBhOTNlNDEwNDlhOWI1ZmY4NTNkNSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvaHRtbC9ET01Ub2tlbkxpc3QuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0RP
TVRva2VuTGlzdC5oCkBAIC0zMiw3ICszMiw4IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIGNsYXNz
IERPTVRva2VuTGlzdCB7CiAgICAgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7CiBwdWJsaWM6Ci0g
ICAgRE9NVG9rZW5MaXN0KEVsZW1lbnQmLCBjb25zdCBRdWFsaWZpZWROYW1lJiBhdHRyaWJ1dGVO
YW1lLCBXVEY6OkZ1bmN0aW9uPGJvb2woU3RyaW5nVmlldyk+JiYgaXNTdXBwb3J0ZWRUb2tlbiA9
IHsgfSk7CisgICAgdXNpbmcgSXNTdXBwb3J0ZWRUb2tlbkZ1bmN0aW9uID0gV1RGOjpGdW5jdGlv
bjxib29sKERvY3VtZW50JiwgU3RyaW5nVmlldyk+OworICAgIERPTVRva2VuTGlzdChFbGVtZW50
JiwgY29uc3QgUXVhbGlmaWVkTmFtZSYgYXR0cmlidXRlTmFtZSwgSXNTdXBwb3J0ZWRUb2tlbkZ1
bmN0aW9uJiYgaXNTdXBwb3J0ZWRUb2tlbiA9IHsgfSk7CiAKICAgICB2b2lkIGFzc29jaWF0ZWRB
dHRyaWJ1dGVWYWx1ZUNoYW5nZWQoY29uc3QgQXRvbWljU3RyaW5nJik7CiAKQEAgLTczLDcgKzc0
LDcgQEAgcHJpdmF0ZToKICAgICBib29sIG1faW5VcGRhdGVBc3NvY2lhdGVkQXR0cmlidXRlRnJv
bVRva2VucyB7IGZhbHNlIH07CiAgICAgYm9vbCBtX3Rva2Vuc05lZWRVcGRhdGluZyB7IHRydWUg
fTsKICAgICBWZWN0b3I8QXRvbWljU3RyaW5nPiBtX3Rva2VuczsKLSAgICBXVEY6OkZ1bmN0aW9u
PGJvb2woU3RyaW5nVmlldyk+IG1faXNTdXBwb3J0ZWRUb2tlbjsKKyAgICBJc1N1cHBvcnRlZFRv
a2VuRnVuY3Rpb24gbV9pc1N1cHBvcnRlZFRva2VuOwogfTsKIAogaW5saW5lIHVuc2lnbmVkIERP
TVRva2VuTGlzdDo6bGVuZ3RoKCkgY29uc3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0
bWwvSFRNTEFuY2hvckVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MQW5jaG9y
RWxlbWVudC5jcHAKaW5kZXggY2IxZjFjOWY1NDY1M2Q2YmRkMmI0NzkyYzI2Mzk4ODIxMGM3ZmM5
MC4uNDg4MWMzZDllOGEzN2VkZjFmNjMyMGY1ZDMyOWJiOTdjMTcxZmYwOCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvaHRtbC9IVE1MQW5jaG9yRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvaHRtbC9IVE1MQW5jaG9yRWxlbWVudC5jcHAKQEAgLTMwNyw3ICszMDcsNyBAQCBib29s
IEhUTUxBbmNob3JFbGVtZW50OjpoYXNSZWwoUmVsYXRpb24gcmVsYXRpb24pIGNvbnN0CiBET01U
b2tlbkxpc3QmIEhUTUxBbmNob3JFbGVtZW50OjpyZWxMaXN0KCkKIHsKICAgICBpZiAoIW1fcmVs
TGlzdCkgCi0gICAgICAgIG1fcmVsTGlzdCA9IHN0ZDo6bWFrZV91bmlxdWU8RE9NVG9rZW5MaXN0
PigqdGhpcywgSFRNTE5hbWVzOjpyZWxBdHRyLCBbXShTdHJpbmdWaWV3IHRva2VuKSB7CisgICAg
ICAgIG1fcmVsTGlzdCA9IHN0ZDo6bWFrZV91bmlxdWU8RE9NVG9rZW5MaXN0PigqdGhpcywgSFRN
TE5hbWVzOjpyZWxBdHRyLCBbXShEb2N1bWVudCYsIFN0cmluZ1ZpZXcgdG9rZW4pIHsKICAgICAg
ICAgICAgIHJldHVybiBlcXVhbElnbm9yaW5nQVNDSUlDYXNlKHRva2VuLCAibm9yZWZlcnJlciIp
IHx8IGVxdWFsSWdub3JpbmdBU0NJSUNhc2UodG9rZW4sICJub29wZW5lciIpOwogICAgICAgICB9
KTsKICAgICByZXR1cm4gKm1fcmVsTGlzdDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0
bWwvSFRNTElGcmFtZUVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MSUZyYW1l
RWxlbWVudC5jcHAKaW5kZXggZDMwMzIyZGMwYzQ4ZmI4MjA2ZWFiYjY2Y2FlZjJiOGZlNjk3YjY0
Zi4uMjIzZTNiMDMzMWFhNzUwZTRkYWY1ZGQwYTg2YjUyMmMyMjJlMDVkZCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvaHRtbC9IVE1MSUZyYW1lRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvaHRtbC9IVE1MSUZyYW1lRWxlbWVudC5jcHAKQEAgLTUxLDcgKzUxLDcgQEAgUmVmPEhU
TUxJRnJhbWVFbGVtZW50PiBIVE1MSUZyYW1lRWxlbWVudDo6Y3JlYXRlKGNvbnN0IFF1YWxpZmll
ZE5hbWUmIHRhZ05hbWUsIEQKIERPTVRva2VuTGlzdCYgSFRNTElGcmFtZUVsZW1lbnQ6OnNhbmRi
b3goKQogewogICAgIGlmICghbV9zYW5kYm94KQotICAgICAgICBtX3NhbmRib3ggPSBzdGQ6Om1h
a2VfdW5pcXVlPERPTVRva2VuTGlzdD4oKnRoaXMsIHNhbmRib3hBdHRyLCBbXShTdHJpbmdWaWV3
IHRva2VuKSB7CisgICAgICAgIG1fc2FuZGJveCA9IHN0ZDo6bWFrZV91bmlxdWU8RE9NVG9rZW5M
aXN0PigqdGhpcywgc2FuZGJveEF0dHIsIFtdKERvY3VtZW50JiwgU3RyaW5nVmlldyB0b2tlbikg
ewogICAgICAgICAgICAgcmV0dXJuIFNlY3VyaXR5Q29udGV4dDo6aXNTdXBwb3J0ZWRTYW5kYm94
UG9saWN5KHRva2VuKTsKICAgICAgICAgfSk7CiAgICAgcmV0dXJuICptX3NhbmRib3g7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxMaW5rRWxlbWVudC5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9odG1sL0hUTUxMaW5rRWxlbWVudC5jcHAKaW5kZXggZTAxYjZlM2I0Yzg1MWZlZGY0
NTc3Y2E5MjIwZjg4ODU0MmMxY2E0Ni4uZTdkMGY3Y2M3NDI4NjA0OWZhZDE4ODE3M2IxNTUwMTk5
M2RiZjNkMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTGlua0VsZW1lbnQu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTExpbmtFbGVtZW50LmNwcApAQCAtMTU2
LDcgKzE1Niw3IEBAIHZvaWQgSFRNTExpbmtFbGVtZW50OjpzZXREaXNhYmxlZFN0YXRlKGJvb2wg
ZGlzYWJsZWQpCiB2b2lkIEhUTUxMaW5rRWxlbWVudDo6cGFyc2VBdHRyaWJ1dGUoY29uc3QgUXVh
bGlmaWVkTmFtZSYgbmFtZSwgY29uc3QgQXRvbWljU3RyaW5nJiB2YWx1ZSkKIHsKICAgICBpZiAo
bmFtZSA9PSByZWxBdHRyKSB7Ci0gICAgICAgIG1fcmVsQXR0cmlidXRlID0gTGlua1JlbEF0dHJp
YnV0ZSh2YWx1ZSk7CisgICAgICAgIG1fcmVsQXR0cmlidXRlID0gTGlua1JlbEF0dHJpYnV0ZShk
b2N1bWVudCgpLCB2YWx1ZSk7CiAgICAgICAgIGlmIChtX3JlbExpc3QpCiAgICAgICAgICAgICBt
X3JlbExpc3QtPmFzc29jaWF0ZWRBdHRyaWJ1dGVWYWx1ZUNoYW5nZWQodmFsdWUpOwogICAgICAg
ICBwcm9jZXNzKCk7CkBAIC00OTgsOCArNDk4LDggQEAgdm9pZCBIVE1MTGlua0VsZW1lbnQ6OmRp
c3BhdGNoUGVuZGluZ0V2ZW50KExpbmtFdmVudFNlbmRlciogZXZlbnRTZW5kZXIpCiBET01Ub2tl
bkxpc3QmIEhUTUxMaW5rRWxlbWVudDo6cmVsTGlzdCgpCiB7CiAgICAgaWYgKCFtX3JlbExpc3Qp
IAotICAgICAgICBtX3JlbExpc3QgPSBzdGQ6Om1ha2VfdW5pcXVlPERPTVRva2VuTGlzdD4oKnRo
aXMsIEhUTUxOYW1lczo6cmVsQXR0ciwgW10oU3RyaW5nVmlldyB0b2tlbikgewotICAgICAgICAg
ICAgcmV0dXJuIExpbmtSZWxBdHRyaWJ1dGU6OmlzU3VwcG9ydGVkKHRva2VuKTsKKyAgICAgICAg
bV9yZWxMaXN0ID0gc3RkOjptYWtlX3VuaXF1ZTxET01Ub2tlbkxpc3Q+KCp0aGlzLCBIVE1MTmFt
ZXM6OnJlbEF0dHIsIFtdKERvY3VtZW50JiBkb2N1bWVudCwgU3RyaW5nVmlldyB0b2tlbikgewor
ICAgICAgICAgICAgcmV0dXJuIExpbmtSZWxBdHRyaWJ1dGU6OmlzU3VwcG9ydGVkKGRvY3VtZW50
LCB0b2tlbik7CiAgICAgICAgIH0pOwogICAgIHJldHVybiAqbV9yZWxMaXN0OwogfQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9MaW5rUmVsQXR0cmlidXRlLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvTGlua1JlbEF0dHJpYnV0ZS5jcHAKaW5kZXggODY2YWZkOGU1ZWI0YTFhMTJj
Y2I5MDBhNjY3YWUwZGZlYjJlZjlhOS4uNTcyYmRiMzRjNThmOGRhZDA1YmQzZjZiZGNmYzVjNDU4
MmE0NzY3ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9MaW5rUmVsQXR0cmlidXRl
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0xpbmtSZWxBdHRyaWJ1dGUuY3BwCkBAIC0z
Miw4ICszMiwxMCBAQAogI2luY2x1ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUgIkxpbmtSZWxBdHRy
aWJ1dGUuaCIKIAorI2luY2x1ZGUgIkRvY3VtZW50LmgiCiAjaW5jbHVkZSAiTGlua0ljb25UeXBl
LmgiCiAjaW5jbHVkZSAiUnVudGltZUVuYWJsZWRGZWF0dXJlcy5oIgorI2luY2x1ZGUgIlNldHRp
bmdzLmgiCiAjaW5jbHVkZSA8d3RmL3RleHQvU3RyaW5nVmlldy5oPgogI2luY2x1ZGUgPHd0Zi90
ZXh0L1dURlN0cmluZy5oPgogCkBAIC00NCw3ICs0Niw3IEBAIExpbmtSZWxBdHRyaWJ1dGU6Okxp
bmtSZWxBdHRyaWJ1dGUoKQogfQogCiAvLyBLZWVwIExpbmtSZWxBdHRyaWJ1dGU6OmlzU3VwcG9y
dGVkKCkgaW4gc3luYyB3aGVuIHVwZGF0aW5nIHRoaXMgY29uc3RydWN0b3IuCi1MaW5rUmVsQXR0
cmlidXRlOjpMaW5rUmVsQXR0cmlidXRlKGNvbnN0IFN0cmluZyYgcmVsKQorTGlua1JlbEF0dHJp
YnV0ZTo6TGlua1JlbEF0dHJpYnV0ZShEb2N1bWVudCYgZG9jdW1lbnQsIGNvbnN0IFN0cmluZyYg
cmVsKQogewogICAgIGlmIChlcXVhbExldHRlcnNJZ25vcmluZ0FTQ0lJQ2FzZShyZWwsICJzdHls
ZXNoZWV0IikpCiAgICAgICAgIGlzU3R5bGVTaGVldCA9IHRydWU7CkBAIC01Niw2ICs1OCw4IEBA
IExpbmtSZWxBdHRyaWJ1dGU6OkxpbmtSZWxBdHRyaWJ1dGUoY29uc3QgU3RyaW5nJiByZWwpCiAg
ICAgICAgIGljb25UeXBlID0gTGlua0ljb25UeXBlOjpUb3VjaFByZWNvbXBvc2VkSWNvbjsKICAg
ICBlbHNlIGlmIChlcXVhbExldHRlcnNJZ25vcmluZ0FTQ0lJQ2FzZShyZWwsICJkbnMtcHJlZmV0
Y2giKSkKICAgICAgICAgaXNETlNQcmVmZXRjaCA9IHRydWU7CisgICAgZWxzZSBpZiAoZG9jdW1l
bnQuc2V0dGluZ3MoKS5saW5rUHJlY29ubmVjdEVuYWJsZWQoKSAmJiBlcXVhbExldHRlcnNJZ25v
cmluZ0FTQ0lJQ2FzZShyZWwsICJwcmVjb25uZWN0IikpCisgICAgICAgIGlzTGlua1ByZWNvbm5l
Y3QgPSB0cnVlOwogICAgIGVsc2UgaWYgKFJ1bnRpbWVFbmFibGVkRmVhdHVyZXM6OnNoYXJlZEZl
YXR1cmVzKCkubGlua1ByZWxvYWRFbmFibGVkKCkgJiYgZXF1YWxMZXR0ZXJzSWdub3JpbmdBU0NJ
SUNhc2UocmVsLCAicHJlbG9hZCIpKQogICAgICAgICBpc0xpbmtQcmVsb2FkID0gdHJ1ZTsKICAg
ICBlbHNlIGlmIChlcXVhbExldHRlcnNJZ25vcmluZ0FTQ0lJQ2FzZShyZWwsICJhbHRlcm5hdGUg
c3R5bGVzaGVldCIpIHx8IGVxdWFsTGV0dGVyc0lnbm9yaW5nQVNDSUlDYXNlKHJlbCwgInN0eWxl
c2hlZXQgYWx0ZXJuYXRlIikpIHsKQEAgLTg3LDcgKzkxLDcgQEAgTGlua1JlbEF0dHJpYnV0ZTo6
TGlua1JlbEF0dHJpYnV0ZShjb25zdCBTdHJpbmcmIHJlbCkKIH0KIAogLy8gaHR0cHM6Ly9odG1s
LnNwZWMud2hhdHdnLm9yZy8jbGlua1R5cGVzCi1ib29sIExpbmtSZWxBdHRyaWJ1dGU6OmlzU3Vw
cG9ydGVkKFN0cmluZ1ZpZXcgYXR0cmlidXRlKQorYm9vbCBMaW5rUmVsQXR0cmlidXRlOjppc1N1
cHBvcnRlZChEb2N1bWVudCYgZG9jdW1lbnQsIFN0cmluZ1ZpZXcgYXR0cmlidXRlKQogewogICAg
IHN0YXRpYyBjb25zdCBjaGFyKiBjb25zdCBzdXBwb3J0ZWRBdHRyaWJ1dGVzW10gPSB7CiAgICAg
ICAgICJhbHRlcm5hdGUiLCAiZG5zLXByZWZldGNoIiwgImljb24iLCAic3R5bGVzaGVldCIsICJh
cHBsZS10b3VjaC1pY29uIiwgImFwcGxlLXRvdWNoLWljb24tcHJlY29tcG9zZWQiLApAQCAtMTAx
LDYgKzEwNSw5IEBAIGJvb2wgTGlua1JlbEF0dHJpYnV0ZTo6aXNTdXBwb3J0ZWQoU3RyaW5nVmll
dyBhdHRyaWJ1dGUpCiAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICB9CiAKKyAgICBpZiAo
ZG9jdW1lbnQuc2V0dGluZ3MoKS5saW5rUHJlY29ubmVjdEVuYWJsZWQoKSAmJiBlcXVhbElnbm9y
aW5nQVNDSUlDYXNlKGF0dHJpYnV0ZSwgInByZWNvbm5lY3QiKSkKKyAgICAgICAgcmV0dXJuIHRy
dWU7CisKICAgICBpZiAoUnVudGltZUVuYWJsZWRGZWF0dXJlczo6c2hhcmVkRmVhdHVyZXMoKS5s
aW5rUHJlbG9hZEVuYWJsZWQoKSAmJiBlcXVhbElnbm9yaW5nQVNDSUlDYXNlKGF0dHJpYnV0ZSwg
InByZWxvYWQiKSkKICAgICAgICAgcmV0dXJuIHRydWU7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvTGlua1JlbEF0dHJpYnV0ZS5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9MaW5r
UmVsQXR0cmlidXRlLmgKaW5kZXggOGUyNjY5MjdlZGRiMTNkYjllMGI4YjFjY2E5Njg1MjU2NWZi
YmQ4Zi4uZjEyZTk4NjYzN2M3ZmY3MDc4MWMyM2MxZDZmYWU4ODU1OWE3MGI1ZiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvaHRtbC9MaW5rUmVsQXR0cmlidXRlLmgKKysrIGIvU291cmNlL1dl
YkNvcmUvaHRtbC9MaW5rUmVsQXR0cmlidXRlLmgKQEAgLTM3LDYgKzM3LDcgQEAKIAogbmFtZXNw
YWNlIFdlYkNvcmUgewogCitjbGFzcyBEb2N1bWVudDsKIGVudW0gY2xhc3MgTGlua0ljb25UeXBl
OwogCiBzdHJ1Y3QgTGlua1JlbEF0dHJpYnV0ZSB7CkBAIC00NSwxNSArNDYsMTYgQEAgc3RydWN0
IExpbmtSZWxBdHRyaWJ1dGUgewogICAgIGJvb2wgaXNBbHRlcm5hdGUgeyBmYWxzZSB9OwogICAg
IGJvb2wgaXNETlNQcmVmZXRjaCB7IGZhbHNlIH07CiAgICAgYm9vbCBpc0xpbmtQcmVsb2FkIHsg
ZmFsc2UgfTsKKyAgICBib29sIGlzTGlua1ByZWNvbm5lY3QgeyBmYWxzZSB9OwogI2lmIEVOQUJM
RShMSU5LX1BSRUZFVENIKQogICAgIGJvb2wgaXNMaW5rUHJlZmV0Y2ggeyBmYWxzZSB9OwogICAg
IGJvb2wgaXNMaW5rU3VicmVzb3VyY2UgeyBmYWxzZSB9OwogI2VuZGlmCiAKICAgICBMaW5rUmVs
QXR0cmlidXRlKCk7Ci0gICAgZXhwbGljaXQgTGlua1JlbEF0dHJpYnV0ZShjb25zdCBTdHJpbmcm
KTsKKyAgICBMaW5rUmVsQXR0cmlidXRlKERvY3VtZW50JiwgY29uc3QgU3RyaW5nJik7CiAKLSAg
ICBzdGF0aWMgYm9vbCBpc1N1cHBvcnRlZChTdHJpbmdWaWV3KTsKKyAgICBzdGF0aWMgYm9vbCBp
c1N1cHBvcnRlZChEb2N1bWVudCYsIFN0cmluZ1ZpZXcpOwogfTsKIAogfQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvaHRtbC9wYXJzZXIvSFRNTFByZWxvYWRTY2FubmVyLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvcGFyc2VyL0hUTUxQcmVsb2FkU2Nhbm5lci5jcHAKaW5kZXggMDYwMWRj
MTFkY2M0YzBiMDA1ZTVlZmJkMWU2NjgzNzY0MjZmMGVjMC4uMDhkMjhjZGQ0MjE3NzNhZDE3NmQz
ZjBlNzU0MDdhNmU2ZjAwMzQ4NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9wYXJz
ZXIvSFRNTFByZWxvYWRTY2FubmVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3BhcnNl
ci9IVE1MUHJlbG9hZFNjYW5uZXIuY3BwCkBAIC0yMzIsNyArMjMyLDcgQEAgcHJpdmF0ZToKICAg
ICAgICAgICAgIGlmIChtYXRjaChhdHRyaWJ1dGVOYW1lLCBocmVmQXR0cikpCiAgICAgICAgICAg
ICAgICAgc2V0VXJsVG9Mb2FkKGF0dHJpYnV0ZVZhbHVlKTsKICAgICAgICAgICAgIGVsc2UgaWYg
KG1hdGNoKGF0dHJpYnV0ZU5hbWUsIHJlbEF0dHIpKSB7Ci0gICAgICAgICAgICAgICAgTGlua1Jl
bEF0dHJpYnV0ZSBwYXJzZWRBdHRyaWJ1dGUgeyBhdHRyaWJ1dGVWYWx1ZSB9OworICAgICAgICAg
ICAgICAgIExpbmtSZWxBdHRyaWJ1dGUgcGFyc2VkQXR0cmlidXRlIHsgZG9jdW1lbnQsIGF0dHJp
YnV0ZVZhbHVlIH07CiAgICAgICAgICAgICAgICAgbV9saW5rSXNTdHlsZVNoZWV0ID0gcmVsQXR0
cmlidXRlSXNTdHlsZVNoZWV0KHBhcnNlZEF0dHJpYnV0ZSk7CiAgICAgICAgICAgICAgICAgbV9s
aW5rSXNQcmVsb2FkID0gcGFyc2VkQXR0cmlidXRlLmlzTGlua1ByZWxvYWQ7CiAgICAgICAgICAg
ICB9IGVsc2UgaWYgKG1hdGNoKGF0dHJpYnV0ZU5hbWUsIG1lZGlhQXR0cikpCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvTGlua0xvYWRlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9s
b2FkZXIvTGlua0xvYWRlci5jcHAKaW5kZXggMmIxNjEzMjY0MzBjMTBkNTkyNDI4ZDE1YjQ4Nzcy
YmVmNmE2OTAzZC4uOWUzZjJhYThkMjMyM2YzY2MwOWMwNjI1NmI5Mzk2ODhjMmQ5ZTgxYyAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL0xpbmtMb2FkZXIuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2xvYWRlci9MaW5rTG9hZGVyLmNwcApAQCAtNDcsOCArNDcsMTEgQEAKICNpbmNs
dWRlICJMaW5rSGVhZGVyLmgiCiAjaW5jbHVkZSAiTGlua1ByZWxvYWRSZXNvdXJjZUNsaWVudHMu
aCIKICNpbmNsdWRlICJMaW5rUmVsQXR0cmlidXRlLmgiCisjaW5jbHVkZSAiTG9hZGVyU3RyYXRl
Z3kuaCIKICNpbmNsdWRlICJNSU1FVHlwZVJlZ2lzdHJ5LmgiCiAjaW5jbHVkZSAiTWVkaWFRdWVy
eUV2YWx1YXRvci5oIgorI2luY2x1ZGUgIlBsYXRmb3JtU3RyYXRlZ2llcy5oIgorI2luY2x1ZGUg
IlJlc291cmNlRXJyb3IuaCIKICNpbmNsdWRlICJSdW50aW1lRW5hYmxlZEZlYXR1cmVzLmgiCiAj
aW5jbHVkZSAiU2V0dGluZ3MuaCIKICNpbmNsdWRlICJTdHlsZVJlc29sdmVyLmgiCkBAIC0xMDIs
NyArMTA1LDcgQEAgdm9pZCBMaW5rTG9hZGVyOjpsb2FkTGlua3NGcm9tSGVhZGVyKGNvbnN0IFN0
cmluZyYgaGVhZGVyVmFsdWUsIGNvbnN0IFVSTCYgYmFzZVUKICAgICAgICAgICAgICAgICBjb250
aW51ZTsKICAgICAgICAgfQogCi0gICAgICAgIExpbmtSZWxBdHRyaWJ1dGUgcmVsQXR0cmlidXRl
KGhlYWRlci5yZWwoKSk7CisgICAgICAgIExpbmtSZWxBdHRyaWJ1dGUgcmVsQXR0cmlidXRlKGRv
Y3VtZW50LCBoZWFkZXIucmVsKCkpOwogICAgICAgICBVUkwgdXJsKGJhc2VVUkwsIGhlYWRlci51
cmwoKSk7CiAgICAgICAgIC8vIFNhbml0eSBjaGVjayB0byBhdm9pZCByZS1lbnRyYW5jeSBoZXJl
LgogICAgICAgICBpZiAoZXF1YWxJZ25vcmluZ0ZyYWdtZW50SWRlbnRpZmllcih1cmwsIGJhc2VV
UkwpKQpAQCAtMjUwLDYgKzI1MywyMiBAQCBib29sIExpbmtMb2FkZXI6OmxvYWRMaW5rKGNvbnN0
IExpbmtSZWxBdHRyaWJ1dGUmIHJlbEF0dHJpYnV0ZSwgY29uc3QgVVJMJiBocmVmLAogICAgICAg
ICAgICAgZG9jdW1lbnQuZnJhbWUoKS0+bG9hZGVyKCkuY2xpZW50KCkucHJlZmV0Y2hETlMoaHJl
Zi5ob3N0KCkpOwogICAgIH0KIAorICAgIGlmIChyZWxBdHRyaWJ1dGUuaXNMaW5rUHJlY29ubmVj
dCAmJiBocmVmLmlzVmFsaWQoKSAmJiBocmVmLnByb3RvY29sSXNJbkhUVFBGYW1pbHkoKSkgewor
ICAgICAgICBBU1NFUlQoZG9jdW1lbnQuc2V0dGluZ3MoKS5saW5rUHJlY29ubmVjdEVuYWJsZWQo
KSk7CisgICAgICAgIFN0b3JlZENyZWRlbnRpYWxzUG9saWN5IHN0b3JhZ2VDcmVkZW50aWFsc1Bv
bGljeSA9IFN0b3JlZENyZWRlbnRpYWxzUG9saWN5OjpVc2U7CisgICAgICAgIGlmIChlcXVhbEln
bm9yaW5nQVNDSUlDYXNlKGNyb3NzT3JpZ2luLCAiYW5vbnltb3VzIikgJiYgZG9jdW1lbnQuc2Vj
dXJpdHlPcmlnaW4oKS5jYW5BY2Nlc3MoU2VjdXJpdHlPcmlnaW46OmNyZWF0ZShocmVmKSkpCisg
ICAgICAgICAgICBzdG9yYWdlQ3JlZGVudGlhbHNQb2xpY3kgPSBTdG9yZWRDcmVkZW50aWFsc1Bv
bGljeTo6RG9Ob3RVc2U7CisgICAgICAgIHBsYXRmb3JtU3RyYXRlZ2llcygpLT5sb2FkZXJTdHJh
dGVneSgpLT5wcmVjb25uZWN0VG8oZG9jdW1lbnQuc2Vzc2lvbklEKCksIGhyZWYsIHN0b3JhZ2VD
cmVkZW50aWFsc1BvbGljeSwgW3dlYWtEb2N1bWVudCA9IGRvY3VtZW50LmNyZWF0ZVdlYWtQdHIo
KSwgaHJlZl0oUmVzb3VyY2VFcnJvciBlcnJvcikgeworICAgICAgICAgICAgaWYgKCF3ZWFrRG9j
dW1lbnQpCisgICAgICAgICAgICAgICAgcmV0dXJuOworCisgICAgICAgICAgICBpZiAoIWVycm9y
LmlzTnVsbCgpKQorICAgICAgICAgICAgICAgIHdlYWtEb2N1bWVudC0+YWRkQ29uc29sZU1lc3Nh
Z2UoTWVzc2FnZVNvdXJjZTo6TmV0d29yaywgTWVzc2FnZUxldmVsOjpFcnJvciwgbWFrZVN0cmlu
ZyhBU0NJSUxpdGVyYWwoIkZhaWxlZCB0byBwcmVjb25uZWN0IHRvICIpLCBocmVmLnN0cmluZygp
LCBBU0NJSUxpdGVyYWwoIi4gRXJyb3I6ICIpLCBlcnJvci5sb2NhbGl6ZWREZXNjcmlwdGlvbigp
KSk7CisgICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAgICAgd2Vha0RvY3VtZW50LT5hZGRD
b25zb2xlTWVzc2FnZShNZXNzYWdlU291cmNlOjpOZXR3b3JrLCBNZXNzYWdlTGV2ZWw6OkluZm8s
IG1ha2VTdHJpbmcoQVNDSUlMaXRlcmFsKCJTdWNjZXNzZnVseSBwcmVjb25uZWN0ZWQgdG8gIiks
IGhyZWYuc3RyaW5nKCkpKTsKKyAgICAgICAgfSk7CisgICAgfQorCiAgICAgaWYgKG1fY2xpZW50
LnNob3VsZExvYWRMaW5rKCkpIHsKICAgICAgICAgYXV0byByZXNvdXJjZUNsaWVudCA9IHByZWxv
YWRJZk5lZWRlZChyZWxBdHRyaWJ1dGUsIGhyZWYsIGRvY3VtZW50LCBhcywgbWVkaWEsIG1pbWVU
eXBlLCBjcm9zc09yaWdpbiwgdGhpcyk7CiAgICAgICAgIGlmIChyZXNvdXJjZUNsaWVudCkKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9Mb2FkZXJTdHJhdGVneS5oIGIvU291cmNl
L1dlYkNvcmUvbG9hZGVyL0xvYWRlclN0cmF0ZWd5LmgKaW5kZXggNTNmM2JmYjI2NjY5YjE0ZTg4
Y2NkMjhmODkxYjAyMTlkMTRmYTYzYy4uOThiZWQ4NDJlY2FiZmFjMTM5OGQ3OWNhNThhMzNlZmQz
OTlkMjI2YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL0xvYWRlclN0cmF0ZWd5
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0xvYWRlclN0cmF0ZWd5LmgKQEAgLTI4LDYg
KzI4LDcgQEAKICNpbmNsdWRlICJSZXNvdXJjZUxvYWRQcmlvcml0eS5oIgogI2luY2x1ZGUgIlJl
c291cmNlTG9hZGVyT3B0aW9ucy5oIgogI2luY2x1ZGUgIlN0b3JlZENyZWRlbnRpYWxzUG9saWN5
LmgiCisjaW5jbHVkZSA8cGFsL1Nlc3Npb25JRC5oPgogI2luY2x1ZGUgPHd0Zi9Gb3J3YXJkLmg+
CiAjaW5jbHVkZSA8d3RmL1NIQTEuaD4KIApAQCAtNjcsNiArNjgsOSBAQCBwdWJsaWM6CiAgICAg
dXNpbmcgUGluZ0xvYWRDb21wbGV0aW9uSGFuZGxlciA9IFdURjo6RnVuY3Rpb248dm9pZChjb25z
dCBSZXNvdXJjZUVycm9yJik+OwogICAgIHZpcnR1YWwgdm9pZCBzdGFydFBpbmdMb2FkKEZyYW1l
JiwgUmVzb3VyY2VSZXF1ZXN0JiwgY29uc3QgSFRUUEhlYWRlck1hcCYgb3JpZ2luYWxSZXF1ZXN0
SGVhZGVycywgY29uc3QgRmV0Y2hPcHRpb25zJiwgUGluZ0xvYWRDb21wbGV0aW9uSGFuZGxlciYm
ID0geyB9KSA9IDA7CiAKKyAgICB1c2luZyBQcmVjb25uZWN0Q29tcGxldGlvbkhhbmRsZXIgPSBX
VEY6OkZ1bmN0aW9uPHZvaWQoY29uc3QgUmVzb3VyY2VFcnJvciYpPjsKKyAgICB2aXJ0dWFsIHZv
aWQgcHJlY29ubmVjdFRvKFBBTDo6U2Vzc2lvbklELCBjb25zdCBVUkwmLCBTdG9yZWRDcmVkZW50
aWFsc1BvbGljeSwgUHJlY29ubmVjdENvbXBsZXRpb25IYW5kbGVyJiYpID0gMDsKKwogICAgIHZp
cnR1YWwgdm9pZCBzdG9yZURlcml2ZWREYXRhVG9DYWNoZShjb25zdCBTSEExOjpEaWdlc3QmIGJv
ZHlLZXksIGNvbnN0IFN0cmluZyYgdHlwZSwgY29uc3QgU3RyaW5nJiBwYXJ0aXRpb24sIFdlYkNv
cmU6OlNoYXJlZEJ1ZmZlciYpID0gMDsKIAogICAgIHZpcnR1YWwgdm9pZCBzZXRDYXB0dXJlRXh0
cmFOZXR3b3JrTG9hZE1ldHJpY3NFbmFibGVkKGJvb2wpID0gMDsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3BhZ2UvU2V0dGluZ3MuaW4gYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1NldHRpbmdz
LmluCmluZGV4IDkyNzdjMGE3Y2U1ZDdhN2JhMjVlNmQzNDg1OTJhOGFjMWExZmRlYWIuLmQ4MTUy
NmFhY2MxNjcyN2M5MmNhNjlhYTc0YjYzZThjYWJkMDQyMWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3BhZ2UvU2V0dGluZ3MuaW4KKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9TZXR0aW5n
cy5pbgpAQCAtMjkxLDYgKzI5MSw4IEBAIGxhbmdBdHRyaWJ1dGVBd2FyZUZvcm1Db250cm9sVUlF
bmFibGVkIGluaXRpYWw9ZmFsc2UKIAogc3VicmVzb3VyY2VJbnRlZ3JpdHlFbmFibGVkIGluaXRp
YWw9dHJ1ZQogCitsaW5rUHJlY29ubmVjdEVuYWJsZWQgaW5pdGlhbD1mYWxzZQorCiBiZWFjb25B
UElFbmFibGVkIGluaXRpYWw9ZmFsc2UKIAogY29uc3RhbnRQcm9wZXJ0aWVzRW5hYmxlZCBpbml0
aWFsPWZhbHNlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5jcHAKaW5kZXggODM1MDk3NjNl
ZjljMmQ4NTBhMjU2ZjJkMzA0OGExZTgyMDQyMzUwYS4uYmVlNTgwYTg1MTI4NjYyNGFiMTRjNmM4
ZWYzZjE5ODcwMjY0NDczNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRl
cm5hbHMuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmNwcApAQCAt
MTMwLDYgKzEzMCw3IEBACiAjaW5jbHVkZSAiU291cmNlQnVmZmVyLmgiCiAjaW5jbHVkZSAiU3Bl
bGxDaGVja2VyLmgiCiAjaW5jbHVkZSAiU3RhdGljTm9kZUxpc3QuaCIKKyNpbmNsdWRlICJTdHJp
bmdDYWxsYmFjay5oIgogI2luY2x1ZGUgIlN0eWxlUnVsZS5oIgogI2luY2x1ZGUgIlN0eWxlU2Nv
cGUuaCIKICNpbmNsdWRlICJTdHlsZVNoZWV0Q29udGVudHMuaCIKQEAgLTUwMyw2ICs1MDQsOCBA
QCBJbnRlcm5hbHM6OkludGVybmFscyhEb2N1bWVudCYgZG9jdW1lbnQpCiAgICAgICAgIHNldEF1
dG9tYXRpY0xpbmtEZXRlY3Rpb25FbmFibGVkKGZhbHNlKTsKICAgICAgICAgc2V0QXV0b21hdGlj
VGV4dFJlcGxhY2VtZW50RW5hYmxlZCh0cnVlKTsKICAgICB9CisKKyAgICBzZXRDb25zb2xlTWVz
c2FnZUxpc3RlbmVyKG51bGxwdHIpOwogfQogCiBEb2N1bWVudCogSW50ZXJuYWxzOjpjb250ZXh0
RG9jdW1lbnQoKSBjb25zdApAQCAtNDE3Nyw0ICs0MTgwLDEyIEBAIHZvaWQgSW50ZXJuYWxzOjpj
YWNoZVN0b3JhZ2VFbmdpbmVSZXByZXNlbnRhdGlvbihET01Qcm9taXNlRGVmZXJyZWQ8SURMRE9N
U3RyaW5nCiAgICAgfSk7CiB9CiAKK3ZvaWQgSW50ZXJuYWxzOjpzZXRDb25zb2xlTWVzc2FnZUxp
c3RlbmVyKFJlZlB0cjxTdHJpbmdDYWxsYmFjaz4mJiBsaXN0ZW5lcikKK3sKKyAgICBpZiAoIWNv
bnRleHREb2N1bWVudCgpKQorICAgICAgICByZXR1cm47CisKKyAgICBjb250ZXh0RG9jdW1lbnQo
KS0+c2V0Q29uc29sZU1lc3NhZ2VMaXN0ZW5lcihXVEZNb3ZlKGxpc3RlbmVyKSk7Cit9CisKIH0g
Ly8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Rlc3Rpbmcv
SW50ZXJuYWxzLmggYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5oCmluZGV4IGVi
MjNjMTNlMDc0NTQ2MTc1NWQ2YTM4MThmZWJiNzRhMDhlZWVlNTkuLjMwOGUzOWZjNzk4YzQ4MTAw
ZjQ5MTYwMjVhMTI2Nzk4ZTRmYWQwNzQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Rlc3Rp
bmcvSW50ZXJuYWxzLmgKKysrIGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuaApA
QCAtNzcsNiArNzcsNyBAQCBjbGFzcyBSVENQZWVyQ29ubmVjdGlvbjsKIGNsYXNzIFNWR1NWR0Vs
ZW1lbnQ7CiBjbGFzcyBTZXJpYWxpemVkU2NyaXB0VmFsdWU7CiBjbGFzcyBTb3VyY2VCdWZmZXI7
CitjbGFzcyBTdHJpbmdDYWxsYmFjazsKIGNsYXNzIFN0eWxlU2hlZXQ7CiBjbGFzcyBUaW1lUmFu
Z2VzOwogY2xhc3MgVHlwZUNvbnZlcnNpb25zOwpAQCAtNjAzLDYgKzYwNCw4IEBAIHB1YmxpYzoK
ICAgICB2b2lkIGNsZWFyQ2FjaGVTdG9yYWdlTWVtb3J5UmVwcmVzZW50YXRpb24oRE9NUHJvbWlz
ZURlZmVycmVkPHZvaWQ+JiYpOwogICAgIHZvaWQgY2FjaGVTdG9yYWdlRW5naW5lUmVwcmVzZW50
YXRpb24oRE9NUHJvbWlzZURlZmVycmVkPElETERPTVN0cmluZz4mJik7CiAKKyAgICB2b2lkIHNl
dENvbnNvbGVNZXNzYWdlTGlzdGVuZXIoUmVmUHRyPFN0cmluZ0NhbGxiYWNrPiYmKTsKKwogcHJp
dmF0ZToKICAgICBleHBsaWNpdCBJbnRlcm5hbHMoRG9jdW1lbnQmKTsKICAgICBEb2N1bWVudCog
Y29udGV4dERvY3VtZW50KCkgY29uc3Q7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS90ZXN0
aW5nL0ludGVybmFscy5pZGwgYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5pZGwK
aW5kZXggNjU4YjE3OTNjOTJmNWExNzUwMDczZGQ5NGVjZjRkMTNkY2NkMWRlNy4uYzBjOWNhZTU0
ZjRlM2YwOGQ1NmYzY2JjMjgyYWI3ZmQ5MjdkNTcwOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvdGVzdGluZy9JbnRlcm5hbHMuaWRsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50
ZXJuYWxzLmlkbApAQCAtNTQ4LDUgKzU0OCw3IEBAIGVudW0gRXZlbnRUaHJvdHRsaW5nQmVoYXZp
b3IgewogICAgIFByb21pc2U8dm9pZD4gY2xlYXJDYWNoZVN0b3JhZ2VNZW1vcnlSZXByZXNlbnRh
dGlvbigpOwogICAgIFByb21pc2U8RE9NU3RyaW5nPiBjYWNoZVN0b3JhZ2VFbmdpbmVSZXByZXNl
bnRhdGlvbigpOwogCisgICAgdm9pZCBzZXRDb25zb2xlTWVzc2FnZUxpc3RlbmVyKFN0cmluZ0Nh
bGxiYWNrIGNhbGxiYWNrKTsKKwogICAgIERPTVN0cmluZyBhdWRpb1Nlc3Npb25DYXRlZ29yeSgp
OwogfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0Nv
bm5lY3Rpb25Ub1dlYlByb2Nlc3MuY3BwIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9O
ZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5jcHAKaW5kZXggNzAzZDU5MWMyNGJiZTkwZTZm
MDdmNGNiNWI5NDRhYTZhZWJjN2MzOC4uZDJkZjhkM2M1MjE1N2QyNmE2MTUzZmQ3Y2VkZDljZDRh
MGY3MmIxMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3Jr
Q29ubmVjdGlvblRvV2ViUHJvY2Vzcy5jcHAKKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJv
Y2Vzcy9OZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5jcHAKQEAgLTQzLDkgKzQzLDExIEBA
CiAjaW5jbHVkZSAiTmV0d29ya1Jlc291cmNlTG9hZGVyTWVzc2FnZXMuaCIKICNpbmNsdWRlICJO
ZXR3b3JrU29ja2V0U3RyZWFtLmgiCiAjaW5jbHVkZSAiTmV0d29ya1NvY2tldFN0cmVhbU1lc3Nh
Z2VzLmgiCisjaW5jbHVkZSAiUHJlY29ubmVjdFRhc2suaCIKICNpbmNsdWRlICJSZW1vdGVOZXR3
b3JraW5nQ29udGV4dC5oIgogI2luY2x1ZGUgIlNlc3Npb25UcmFja2VyLmgiCiAjaW5jbHVkZSAi
V2ViQ29yZUFyZ3VtZW50Q29kZXJzLmgiCisjaW5jbHVkZSAiV2ViRXJyb3JzLmgiCiAjaW5jbHVk
ZSAiV2Vic2l0ZURhdGFTdG9yZVBhcmFtZXRlcnMuaCIKICNpbmNsdWRlIDxXZWJDb3JlL05ldHdv
cmtTdG9yYWdlU2Vzc2lvbi5oPgogI2luY2x1ZGUgPFdlYkNvcmUvUGluZ0hhbmRsZS5oPgpAQCAt
Mjg3LDYgKzI4OSwyNiBAQCB2b2lkIE5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzOjpwcmVm
ZXRjaEROUyhjb25zdCBTdHJpbmcmIGhvc3RuYW1lKQogICAgIE5ldHdvcmtQcm9jZXNzOjpzaW5n
bGV0b24oKS5wcmVmZXRjaEROUyhob3N0bmFtZSk7CiB9CiAKK3ZvaWQgTmV0d29ya0Nvbm5lY3Rp
b25Ub1dlYlByb2Nlc3M6OnByZWNvbm5lY3RUbyhQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIHVp
bnQ2NF90IHByZWNvbm5lY3Rpb25JZGVudGlmaWVyLCBjb25zdCBVUkwmIHVybCwgV2ViQ29yZTo6
U3RvcmVkQ3JlZGVudGlhbHNQb2xpY3kgc3RvcmVkQ3JlZGVudGlhbHNQb2xpY3kpCit7CisjaWYg
RU5BQkxFKFNFUlZFUl9QUkVDT05ORUNUKQorICAgIG5ldyBQcmVjb25uZWN0VGFzayhzZXNzaW9u
SUQsIHVybCwgc3RvcmVkQ3JlZGVudGlhbHNQb2xpY3ksIFt0aGlzLCBwcm90ZWN0ZWRUaGlzID0g
bWFrZVJlZigqdGhpcyksIGlkZW50aWZpZXIgPSBwcmVjb25uZWN0aW9uSWRlbnRpZmllcl0gKGNv
bnN0IFJlc291cmNlRXJyb3ImIGVycm9yKSB7CisgICAgICAgIGRpZEZpbmlzaFByZWNvbm5lY3Rp
b24oaWRlbnRpZmllciwgZXJyb3IpOworICAgIH0pOworI2Vsc2UKKyAgICBVTlVTRURfUEFSQU0o
c3RvcmVkQ3JlZGVudGlhbHNQb2xpY3kpOworICAgIGRpZEZpbmlzaFByZWNvbm5lY3Rpb24ocHJl
Y29ubmVjdGlvbklkZW50aWZpZXIsIGludGVybmFsRXJyb3IodXJsKSk7CisjZW5kaWYKK30KKwor
dm9pZCBOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzczo6ZGlkRmluaXNoUHJlY29ubmVjdGlv
bih1aW50NjRfdCBwcmVjb25uZWN0aW9uSWRlbnRpZmllciwgY29uc3QgUmVzb3VyY2VFcnJvciYg
ZXJyb3IpCit7CisgICAgaWYgKCFtX2Nvbm5lY3Rpb24tPmlzVmFsaWQoKSkKKyAgICAgICAgcmV0
dXJuOworCisgICAgbV9jb25uZWN0aW9uLT5zZW5kKE1lc3NhZ2VzOjpOZXR3b3JrUHJvY2Vzc0Nv
bm5lY3Rpb246OkRpZEZpbmlzaFByZWNvbm5lY3Rpb24ocHJlY29ubmVjdGlvbklkZW50aWZpZXIs
IGVycm9yKSwgMCk7Cit9CisKIHN0YXRpYyBOZXR3b3JrU3RvcmFnZVNlc3Npb24mIHN0b3JhZ2VT
ZXNzaW9uKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCkKIHsKICAgICBBU1NFUlQoc2Vzc2lvbklE
LmlzVmFsaWQoKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05l
dHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmggYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9j
ZXNzL05ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmgKaW5kZXggY2QyODA0MmNmZmJmMTYw
Y2NjYjdlNWQ0ZDQ3YWMxODY5NTkyNTBkOS4uYjEwZGY1ODVkZDY5MGZjNThkNDQ4YTk3MTQ3OWJl
NTI0ZjlmM2QwYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3
b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5oCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1By
b2Nlc3MvTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuaApAQCAtNzYsNiArNzYsOCBAQCBw
dWJsaWM6CiBwcml2YXRlOgogICAgIE5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzKElQQzo6
Q29ubmVjdGlvbjo6SWRlbnRpZmllcik7CiAKKyAgICB2b2lkIGRpZEZpbmlzaFByZWNvbm5lY3Rp
b24odWludDY0X3QgcHJlY29ubmVjdGlvbklkZW50aWZpZXIsIGNvbnN0IFdlYkNvcmU6OlJlc291
cmNlRXJyb3ImKTsKKwogICAgIC8vIElQQzo6Q29ubmVjdGlvbjo6Q2xpZW50CiAgICAgdm9pZCBk
aWRSZWNlaXZlTWVzc2FnZShJUEM6OkNvbm5lY3Rpb24mLCBJUEM6OkRlY29kZXImKSBvdmVycmlk
ZTsKICAgICB2b2lkIGRpZFJlY2VpdmVTeW5jTWVzc2FnZShJUEM6OkNvbm5lY3Rpb24mLCBJUEM6
OkRlY29kZXImLCBzdGQ6OnVuaXF1ZV9wdHI8SVBDOjpFbmNvZGVyPiYpIG92ZXJyaWRlOwpAQCAt
OTAsNiArOTIsNyBAQCBwcml2YXRlOgogICAgIHZvaWQgcGVyZm9ybVN5bmNocm9ub3VzTG9hZChj
b25zdCBOZXR3b3JrUmVzb3VyY2VMb2FkUGFyYW1ldGVycyYsIFJlZjxNZXNzYWdlczo6TmV0d29y
a0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6OlBlcmZvcm1TeW5jaHJvbm91c0xvYWQ6OkRlbGF5ZWRS
ZXBseT4mJik7CiAgICAgdm9pZCBsb2FkUGluZyhOZXR3b3JrUmVzb3VyY2VMb2FkUGFyYW1ldGVy
cyYmLCBXZWJDb3JlOjpIVFRQSGVhZGVyTWFwJiYgb3JpZ2luYWxSZXF1ZXN0SGVhZGVycyk7CiAg
ICAgdm9pZCBwcmVmZXRjaEROUyhjb25zdCBTdHJpbmcmKTsKKyAgICB2b2lkIHByZWNvbm5lY3RU
byhQQUw6OlNlc3Npb25JRCwgdWludDY0X3QgcHJlY29ubmVjdGlvbklkZW50aWZpZXIsIGNvbnN0
IFdlYkNvcmU6OlVSTCYsIFdlYkNvcmU6OlN0b3JlZENyZWRlbnRpYWxzUG9saWN5KTsKIAogICAg
IHZvaWQgcmVtb3ZlTG9hZElkZW50aWZpZXIoUmVzb3VyY2VMb2FkSWRlbnRpZmllcik7CiAgICAg
dm9pZCBzZXREZWZlcnNMb2FkaW5nKFJlc291cmNlTG9hZElkZW50aWZpZXIsIGJvb2wpOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrQ29ubmVjdGlvblRv
V2ViUHJvY2Vzcy5tZXNzYWdlcy5pbiBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0
d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MubWVzc2FnZXMuaW4KaW5kZXggYWJmMGZjY2EwMDJh
NGFlNTNjZTBhZTcwODI2YmVlYWU0MWQ2ZWQ1Ni4uZTg1ZTk3MzI4MjRkMDI5YjFiN2VlZGVmMzA5
NzNmZDdlMGE3NjZkYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9O
ZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5tZXNzYWdlcy5pbgorKysgYi9Tb3VyY2UvV2Vi
S2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzLm1lc3NhZ2Vz
LmluCkBAIC0yOCw2ICsyOCw3IEBAIG1lc3NhZ2VzIC0+IE5ldHdvcmtDb25uZWN0aW9uVG9XZWJQ
cm9jZXNzIExlZ2FjeVJlY2VpdmVyIHsKICAgICBSZW1vdmVMb2FkSWRlbnRpZmllcih1aW50NjRf
dCByZXNvdXJjZUxvYWRJZGVudGlmaWVyKQogICAgIFNldERlZmVyc0xvYWRpbmcodWludDY0X3Qg
cmVzb3VyY2VMb2FkSWRlbnRpZmllciwgYm9vbCBkZWZlcnMpCiAgICAgUHJlZmV0Y2hETlMoU3Ry
aW5nIGhvc3RuYW1lKQorICAgIFByZWNvbm5lY3RUbyhQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQs
IHVpbnQ2NF90IHByZWNvbm5lY3Rpb25JZGVudGlmaWVyLCBXZWJDb3JlOjpVUkwgdXJsLCBlbnVt
IFdlYkNvcmU6OlN0b3JlZENyZWRlbnRpYWxzUG9saWN5IHN0b3JlZENyZWRlbnRpYWxzUG9saWN5
KTsKIAogICAgIFN0YXJ0RG93bmxvYWQoUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBXZWJLaXQ6
OkRvd25sb2FkSUQgZG93bmxvYWRJRCwgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0IHJlcXVlc3Qs
IFN0cmluZyBzdWdnZXN0ZWROYW1lKQogICAgIENvbnZlcnRNYWluUmVzb3VyY2VMb2FkVG9Eb3du
bG9hZChQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIHVpbnQ2NF90IG1haW5SZXNvdXJjZUxvYWRJ
ZGVudGlmaWVyLCBXZWJLaXQ6OkRvd25sb2FkSUQgZG93bmxvYWRJRCwgV2ViQ29yZTo6UmVzb3Vy
Y2VSZXF1ZXN0IHJlcXVlc3QsIFdlYkNvcmU6OlJlc291cmNlUmVzcG9uc2UgcmVzcG9uc2UpCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtEYXRhVGFzay5j
cHAgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtEYXRhVGFzay5jcHAKaW5k
ZXggODA1NGI0NzMzZGZmYTMwZDRhMDI5MmVmNTJhOGI5NjY2Y2IzNTk0MS4uYmI3ZjE3NTFmZmU0
YTE5YmU1Mzg4M2NkNWUxYjFhZTM4MzgwMjU1NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9O
ZXR3b3JrUHJvY2Vzcy9OZXR3b3JrRGF0YVRhc2suY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0
d29ya1Byb2Nlc3MvTmV0d29ya0RhdGFUYXNrLmNwcApAQCAtNTMsNyArNTMsNyBAQCBSZWY8TmV0
d29ya0RhdGFUYXNrPiBOZXR3b3JrRGF0YVRhc2s6OmNyZWF0ZShOZXR3b3JrU2Vzc2lvbiYgc2Vz
c2lvbiwgTmV0d29ya0RhdAogICAgICAgICByZXR1cm4gTmV0d29ya0RhdGFUYXNrQmxvYjo6Y3Jl
YXRlKHNlc3Npb24sIGNsaWVudCwgcGFyYW1ldGVycy5yZXF1ZXN0LCBwYXJhbWV0ZXJzLmNvbnRl
bnRTbmlmZmluZ1BvbGljeSwgcGFyYW1ldGVycy5ibG9iRmlsZVJlZmVyZW5jZXMpOwogCiAjaWYg
UExBVEZPUk0oQ09DT0EpCi0gICAgcmV0dXJuIE5ldHdvcmtEYXRhVGFza0NvY29hOjpjcmVhdGUo
c2Vzc2lvbiwgY2xpZW50LCBwYXJhbWV0ZXJzLnJlcXVlc3QsIHBhcmFtZXRlcnMuc3RvcmVkQ3Jl
ZGVudGlhbHNQb2xpY3ksIHBhcmFtZXRlcnMuY29udGVudFNuaWZmaW5nUG9saWN5LCBwYXJhbWV0
ZXJzLnNob3VsZENsZWFyUmVmZXJyZXJPbkhUVFBTVG9IVFRQUmVkaXJlY3QpOworICAgIHJldHVy
biBOZXR3b3JrRGF0YVRhc2tDb2NvYTo6Y3JlYXRlKHNlc3Npb24sIGNsaWVudCwgcGFyYW1ldGVy
cy5yZXF1ZXN0LCBwYXJhbWV0ZXJzLnN0b3JlZENyZWRlbnRpYWxzUG9saWN5LCBwYXJhbWV0ZXJz
LmNvbnRlbnRTbmlmZmluZ1BvbGljeSwgcGFyYW1ldGVycy5zaG91bGRDbGVhclJlZmVycmVyT25I
VFRQU1RvSFRUUFJlZGlyZWN0LCBwYXJhbWV0ZXJzLnNob3VsZFByZWNvbm5lY3RPbmx5KTsKICNl
bmRpZgogI2lmIFVTRShTT1VQKQogICAgIHJldHVybiBOZXR3b3JrRGF0YVRhc2tTb3VwOjpjcmVh
dGUoc2Vzc2lvbiwgY2xpZW50LCBwYXJhbWV0ZXJzLnJlcXVlc3QsIHBhcmFtZXRlcnMuc3RvcmVk
Q3JlZGVudGlhbHNQb2xpY3ksIHBhcmFtZXRlcnMuY29udGVudFNuaWZmaW5nUG9saWN5LCBwYXJh
bWV0ZXJzLnNob3VsZENsZWFyUmVmZXJyZXJPbkhUVFBTVG9IVFRQUmVkaXJlY3QpOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrTG9hZFBhcmFtZXRlcnMu
aCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0xvYWRQYXJhbWV0ZXJzLmgK
aW5kZXggMWZiZDJkYTQ5MWQ4NzZmMWFhYjlkMTI4ZTgzNGZlNGQ3MWQ0OTEwYi4uMjVhYTUwNTgw
ZGU5YTk4YWNkYzAyN2E4MTA3YTI4ZWE4OTM0NzU3OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrTG9hZFBhcmFtZXRlcnMuaAorKysgYi9Tb3VyY2UvV2Vi
S2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtMb2FkUGFyYW1ldGVycy5oCkBAIC0zMyw2ICszMyw4
IEBACiAKIG5hbWVzcGFjZSBXZWJLaXQgewogCitlbnVtIGNsYXNzIFByZWNvbm5lY3RPbmx5IHsg
Tm8sIFllcyB9OworCiBjbGFzcyBOZXR3b3JrTG9hZFBhcmFtZXRlcnMgewogcHVibGljOgogICAg
IHVpbnQ2NF90IHdlYlBhZ2VJRCB7IDAgfTsKQEAgLTQ5LDYgKzUxLDcgQEAgcHVibGljOgogI2lm
IFVTRShORVRXT1JLX1NFU1NJT04pCiAgICAgVmVjdG9yPFJlZlB0cjxXZWJDb3JlOjpCbG9iRGF0
YUZpbGVSZWZlcmVuY2U+PiBibG9iRmlsZVJlZmVyZW5jZXM7CiAjZW5kaWYKKyAgICBQcmVjb25u
ZWN0T25seSBzaG91bGRQcmVjb25uZWN0T25seSB7IFByZWNvbm5lY3RPbmx5OjpObyB9OwogfTsK
IAogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdv
cmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLmNwcCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nl
c3MvTmV0d29ya1Byb2Nlc3MuY3BwCmluZGV4IDc5ZTAyY2Y4NzIxNTJjN2EwOWI2ODQ5YTY1ZDZh
ZTNkOGIzZTY1ODguLmQ0NmM2ZjNiMDc1OTRlYWUyZmNlNjBhN2I3MjMzYjRhNTFiNmMwNGYgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MuY3Bw
CisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MuY3BwCkBA
IC00MCw2ICs0MCw3IEBACiAjaW5jbHVkZSAiTmV0d29ya1Byb2Nlc3NQcm94eU1lc3NhZ2VzLmgi
CiAjaW5jbHVkZSAiTmV0d29ya1Jlc291cmNlTG9hZGVyLmgiCiAjaW5jbHVkZSAiTmV0d29ya1Nl
c3Npb24uaCIKKyNpbmNsdWRlICJQcmVjb25uZWN0VGFzay5oIgogI2luY2x1ZGUgIlJlbW90ZU5l
dHdvcmtpbmdDb250ZXh0LmgiCiAjaW5jbHVkZSAiU2Vzc2lvblRyYWNrZXIuaCIKICNpbmNsdWRl
ICJTdGF0aXN0aWNzRGF0YS5oIgpAQCAtNzI1LDYgKzcyNiwxNiBAQCBTdHJpbmcgTmV0d29ya1By
b2Nlc3M6OmNhY2hlU3RvcmFnZURpcmVjdG9yeShQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQpIGNv
bnN0CiAgICAgcmV0dXJuIHNlc3Npb24tPmNhY2hlU3RvcmFnZURpcmVjdG9yeSgpOwogfQogCit2
b2lkIE5ldHdvcmtQcm9jZXNzOjpwcmVjb25uZWN0VG8oY29uc3QgV2ViQ29yZTo6VVJMJiB1cmws
IFdlYkNvcmU6OlN0b3JlZENyZWRlbnRpYWxzUG9saWN5IHN0b3JlZENyZWRlbnRpYWxzUG9saWN5
KQoreworI2lmIEVOQUJMRShTRVJWRVJfUFJFQ09OTkVDVCkKKyAgICBuZXcgUHJlY29ubmVjdFRh
c2soUEFMOjpTZXNzaW9uSUQ6OmRlZmF1bHRTZXNzaW9uSUQoKSwgdXJsLCBzdG9yZWRDcmVkZW50
aWFsc1BvbGljeSk7CisjZWxzZQorICAgIFVOVVNFRF9QQVJBTSh1cmwpOworICAgIFVOVVNFRF9Q
QVJBTShzdG9yZWRDcmVkZW50aWFsc1BvbGljeSk7CisjZW5kaWYKK30KKwogI2lmICFQTEFURk9S
TShDT0NPQSkKIHZvaWQgTmV0d29ya1Byb2Nlc3M6OmluaXRpYWxpemVQcm9jZXNzKGNvbnN0IENo
aWxkUHJvY2Vzc0luaXRpYWxpemF0aW9uUGFyYW1ldGVycyYpCiB7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLmggYi9Tb3VyY2UvV2ViS2l0
L05ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLmgKaW5kZXggMTRhNTIyZmNkNmRkNWYwZmRi
YzRhNTAxMDVhMGFiNDBiYjBjNTJiMC4uYjlmYTcyMDg0YzQ4MDk1MTI3NGFmOWE0MTQ3YmVlYjA1
NzFiOGI1NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3Jr
UHJvY2Vzcy5oCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nl
c3MuaApAQCAtNTQsNiArNTQsOCBAQCBjbGFzcyBQcm90ZWN0aW9uU3BhY2U7CiBjbGFzcyBTZWN1
cml0eU9yaWdpbjsKIHN0cnVjdCBTZWN1cml0eU9yaWdpbkRhdGE7CiBzdHJ1Y3QgU291cE5ldHdv
cmtQcm94eVNldHRpbmdzOworZW51bSBjbGFzcyBTdG9yZWRDcmVkZW50aWFsc1BvbGljeTsKK2Ns
YXNzIFVSTDsKIH0KIAogbmFtZXNwYWNlIFdlYktpdCB7CkBAIC0xMzcsNiArMTM5LDggQEAgcHVi
bGljOgogICAgIFNlY29uZHMgbG9hZFRocm90dGxlTGF0ZW5jeSgpIGNvbnN0IHsgcmV0dXJuIG1f
bG9hZFRocm90dGxlTGF0ZW5jeTsgfQogICAgIFN0cmluZyBjYWNoZVN0b3JhZ2VEaXJlY3Rvcnko
UEFMOjpTZXNzaW9uSUQpIGNvbnN0OwogCisgICAgdm9pZCBwcmVjb25uZWN0VG8oY29uc3QgV2Vi
Q29yZTo6VVJMJiwgV2ViQ29yZTo6U3RvcmVkQ3JlZGVudGlhbHNQb2xpY3kpOworCiBwcml2YXRl
OgogICAgIE5ldHdvcmtQcm9jZXNzKCk7CiAgICAgfk5ldHdvcmtQcm9jZXNzKCk7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLm1lc3NhZ2Vz
LmluIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5tZXNzYWdl
cy5pbgppbmRleCA2OTRlNDc0ODg2ZTBmNzg0Zjc1OWI0ZWJkZDhlNmU5ZTVlNjljNTg4Li40NjFm
MWMwZWMyODJmMjE2ZWY4OWE0OThlMzI5NDZkOGUxNjM1ODhhIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLm1lc3NhZ2VzLmluCisrKyBiL1Nv
dXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MubWVzc2FnZXMuaW4KQEAg
LTgyLDYgKzgyLDggQEAgbWVzc2FnZXMgLT4gTmV0d29ya1Byb2Nlc3MgTGVnYWN5UmVjZWl2ZXIg
ewogCiAgICAgRGlkR3JhbnRTYW5kYm94RXh0ZW5zaW9uc1RvU3RvcmFnZVByb2Nlc3NGb3JCbG9i
cyh1aW50NjRfdCByZXF1ZXN0SUQpCiAKKyAgICBQcmVjb25uZWN0VG8oV2ViQ29yZTo6VVJMIHVy
bCwgZW51bSBXZWJDb3JlOjpTdG9yZWRDcmVkZW50aWFsc1BvbGljeSBzdG9yZWRDcmVkZW50aWFs
c1BvbGljeSk7CisKICNpZiBIQVZFKENGTkVUV09SS19TVE9SQUdFX1BBUlRJVElPTklORykKICAg
ICBVcGRhdGVQcmV2YWxlbnREb21haW5zVG9QYXJ0aXRpb25PckJsb2NrQ29va2llcyhQQUw6OlNl
c3Npb25JRCBzZXNzaW9uSUQsIFZlY3RvcjxTdHJpbmc+IGRvbWFpbnNUb1BhcnRpdGlvbiwgVmVj
dG9yPFN0cmluZz4gZG9tYWluc1RvQmxvY2ssIFZlY3RvcjxTdHJpbmc+IGRvbWFpbnNUb05laXRo
ZXJQYXJ0aXRpb25Ob3JCbG9jaywgYm9vbCBzaG91bGRDbGVhckZpcnN0KQogICAgIFJlbW92ZVBy
ZXZhbGVudERvbWFpbnMoUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBWZWN0b3I8U3RyaW5nPiBk
b21haW5zV2l0aEludGVyYWN0aW9uKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29y
a1Byb2Nlc3MvUHJlY29ubmVjdFRhc2suY3BwIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vz
cy9QcmVjb25uZWN0VGFzay5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uY2E4OTMzNDAxMzZhOTUxMDIyNDNhNjlh
Y2JkZWQ0OTRhZGZjZGM1NAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29y
a1Byb2Nlc3MvUHJlY29ubmVjdFRhc2suY3BwCkBAIC0wLDAgKzEsMTM2IEBACisvKgorICogQ29w
eXJpZ2h0IChDKSAyMDE3IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBS
ZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9y
IHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRo
ZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9u
cyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2Ug
dGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlv
biBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4K
KyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBD
T05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJS
QU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdB
UlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIK
KyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4g
T1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVD
VCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBE
QU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAq
IFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9G
SVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04g
QU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1Qg
TElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisg
KiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZF
TiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8K
KworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIlByZWNvbm5lY3RUYXNrLmgiCisKKyNp
ZiBFTkFCTEUoU0VSVkVSX1BSRUNPTk5FQ1QpCisKKyNpbmNsdWRlICJBdXRoZW50aWNhdGlvbk1h
bmFnZXIuaCIKKyNpbmNsdWRlICJMb2dnaW5nLmgiCisjaW5jbHVkZSAiTmV0d29ya0xvYWRQYXJh
bWV0ZXJzLmgiCisjaW5jbHVkZSAiTmV0d29ya1Nlc3Npb24uaCIKKyNpbmNsdWRlICJTZXNzaW9u
VHJhY2tlci5oIgorI2luY2x1ZGUgIldlYkVycm9ycy5oIgorI2luY2x1ZGUgPFdlYkNvcmUvQXV0
aGVudGljYXRpb25DaGFsbGVuZ2UuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL1Jlc291cmNlRXJyb3Iu
aD4KKworI2lmIFBMQVRGT1JNKENPQ09BKQorI2luY2x1ZGUgIk5ldHdvcmtEYXRhVGFza0NvY29h
LmgiCisjZW5kaWYKKworbmFtZXNwYWNlIFdlYktpdCB7CisKK3VzaW5nIG5hbWVzcGFjZSBXZWJD
b3JlOworCitQcmVjb25uZWN0VGFzazo6UHJlY29ubmVjdFRhc2soUEFMOjpTZXNzaW9uSUQgc2Vz
c2lvbklELCBjb25zdCBVUkwmIHVybCwgV2ViQ29yZTo6U3RvcmVkQ3JlZGVudGlhbHNQb2xpY3kg
c3RvcmVkQ3JlZGVudGlhbHNQb2xpY3ksIFdURjo6Q29tcGxldGlvbkhhbmRsZXI8dm9pZChjb25z
dCBXZWJDb3JlOjpSZXNvdXJjZUVycm9yJik+JiYgY29tcGxldGlvbkhhbmRsZXIpCisgICAgOiBt
X2NvbXBsZXRpb25IYW5kbGVyKFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpKQorICAgICwgbV90
aW1lb3V0VGltZXIoW3RoaXNdIHsgZGlkRmluaXNoKFJlc291cmNlRXJyb3IgeyBTdHJpbmcoKSwg
MCwgbV90YXNrLT5maXJzdFJlcXVlc3QoKS51cmwoKSwgQVNDSUlMaXRlcmFsKCJQcmVjb25uZWN0
aW9uIHRpbWVkIG91dCIpLCBSZXNvdXJjZUVycm9yOjpUeXBlOjpUaW1lb3V0IH0pOyB9KQorewor
ICAgIGF1dG8qIG5ldHdvcmtTZXNzaW9uID0gU2Vzc2lvblRyYWNrZXI6Om5ldHdvcmtTZXNzaW9u
KHNlc3Npb25JRCk7CisgICAgQVNTRVJUKG5ldHdvcmtTZXNzaW9uKTsKKworICAgIFJFTEVBU0Vf
TE9HKE5ldHdvcmssICIlcCAtIFByZWNvbm5lY3RUYXNrOjpQcmVjb25uZWN0VGFzaygpIiwgdGhp
cyk7CisgICAgTmV0d29ya0xvYWRQYXJhbWV0ZXJzIHBhcmFtZXRlcnM7CisgICAgcGFyYW1ldGVy
cy5yZXF1ZXN0ID0gUmVzb3VyY2VSZXF1ZXN0KHVybCk7CisgICAgcGFyYW1ldGVycy5zaG91bGRQ
cmVjb25uZWN0T25seSA9IFByZWNvbm5lY3RPbmx5OjpZZXM7CisgICAgcGFyYW1ldGVycy5zdG9y
ZWRDcmVkZW50aWFsc1BvbGljeSA9IHN0b3JlZENyZWRlbnRpYWxzUG9saWN5OworICAgIG1fdGFz
ayA9IE5ldHdvcmtEYXRhVGFzazo6Y3JlYXRlKCpuZXR3b3JrU2Vzc2lvbiwgKnRoaXMsIHBhcmFt
ZXRlcnMpOworICAgIG1fdGFzay0+cmVzdW1lKCk7CisKKyAgICBtX3RpbWVvdXRUaW1lci5zdGFy
dE9uZVNob3QoNjAwMDBfcyk7Cit9CisKK1ByZWNvbm5lY3RUYXNrOjp+UHJlY29ubmVjdFRhc2so
KQoreworICAgIEFTU0VSVChtX3Rhc2stPmNsaWVudCgpID09IHRoaXMpOworICAgIG1fdGFzay0+
Y2xlYXJDbGllbnQoKTsKKyAgICBtX3Rhc2stPmNhbmNlbCgpOworfQorCit2b2lkIFByZWNvbm5l
Y3RUYXNrOjp3aWxsUGVyZm9ybUhUVFBSZWRpcmVjdGlvbihXZWJDb3JlOjpSZXNvdXJjZVJlc3Bv
bnNlJiYsIFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYmLCBSZWRpcmVjdENvbXBsZXRpb25IYW5k
bGVyJiYpCit7CisgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7Cit9CisKK3ZvaWQgUHJlY29ubmVj
dFRhc2s6OmRpZFJlY2VpdmVDaGFsbGVuZ2UoY29uc3QgV2ViQ29yZTo6QXV0aGVudGljYXRpb25D
aGFsbGVuZ2UmIGNoYWxsZW5nZSwgQ2hhbGxlbmdlQ29tcGxldGlvbkhhbmRsZXImJiBjb21wbGV0
aW9uSGFuZGxlcikKK3sKKyAgICBpZiAoY2hhbGxlbmdlLnByb3RlY3Rpb25TcGFjZSgpLmF1dGhl
bnRpY2F0aW9uU2NoZW1lKCkgPT0gUHJvdGVjdGlvblNwYWNlQXV0aGVudGljYXRpb25TY2hlbWVT
ZXJ2ZXJUcnVzdEV2YWx1YXRpb25SZXF1ZXN0ZWQpIHsKKyAgICAgICAgaWYgKG1fdGFzayAmJiBt
X3Rhc2stPmFsbG93c1NwZWNpZmljSFRUUFNDZXJ0aWZpY2F0ZUZvckhvc3QoY2hhbGxlbmdlKSkK
KyAgICAgICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKEF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlRGlz
cG9zaXRpb246OlVzZUNyZWRlbnRpYWwsIHNlcnZlclRydXN0Q3JlZGVudGlhbChjaGFsbGVuZ2Up
KTsKKyAgICAgICAgZWxzZQorICAgICAgICAgICAgY29tcGxldGlvbkhhbmRsZXIoQXV0aGVudGlj
YXRpb25DaGFsbGVuZ2VEaXNwb3NpdGlvbjo6UmVqZWN0UHJvdGVjdGlvblNwYWNlLCB7IH0pOwor
ICAgICAgICByZXR1cm47CisgICAgfQorICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOworfQorCit2
b2lkIFByZWNvbm5lY3RUYXNrOjpkaWRSZWNlaXZlUmVzcG9uc2VOZXR3b3JrU2Vzc2lvbihXZWJD
b3JlOjpSZXNvdXJjZVJlc3BvbnNlJiYsIFJlc3BvbnNlQ29tcGxldGlvbkhhbmRsZXImJikKK3sK
KyAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKK30KKwordm9pZCBQcmVjb25uZWN0VGFzazo6ZGlk
UmVjZWl2ZURhdGEoUmVmPFdlYkNvcmU6OlNoYXJlZEJ1ZmZlcj4mJikKK3sKKyAgICBBU1NFUlRf
Tk9UX1JFQUNIRUQoKTsKK30KKwordm9pZCBQcmVjb25uZWN0VGFzazo6ZGlkQ29tcGxldGVXaXRo
RXJyb3IoY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VFcnJvciYgZXJyb3IsIGNvbnN0IFdlYkNvcmU6
Ok5ldHdvcmtMb2FkTWV0cmljcyYpCit7CisgICAgaWYgKGVycm9yLmlzTnVsbCgpKQorICAgICAg
ICBSRUxFQVNFX0xPRyhOZXR3b3JrLCAiJXAgLSBQcmVjb25uZWN0VGFzazo6ZGlkQ29tcGxldGUi
LCB0aGlzKTsKKyAgICBlbHNlCisgICAgICAgIFJFTEVBU0VfTE9HKE5ldHdvcmssICIlcCAtIFBy
ZWNvbm5lY3RUYXNrOjpkaWRDb21wbGV0ZVdpdGhFcnJvciwgZXJyb3JfY29kZTogJWQiLCB0aGlz
LCBlcnJvci5lcnJvckNvZGUoKSk7CisKKyAgICBkaWRGaW5pc2goZXJyb3IpOworfQorCit2b2lk
IFByZWNvbm5lY3RUYXNrOjpkaWRTZW5kRGF0YSh1aW50NjRfdCB0b3RhbEJ5dGVzU2VudCwgdWlu
dDY0X3QgdG90YWxCeXRlc0V4cGVjdGVkVG9TZW5kKQoreworICAgIEFTU0VSVF9OT1RfUkVBQ0hF
RCgpOworfQorCit2b2lkIFByZWNvbm5lY3RUYXNrOjp3YXNCbG9ja2VkKCkKK3sKKyAgICBSRUxF
QVNFX0xPRyhOZXR3b3JrLCAiJXAgLSBQcmVjb25uZWN0VGFzazo6d2FzQmxvY2tlZCgpIiwgdGhp
cyk7CisgICAgZGlkRmluaXNoKGJsb2NrZWRFcnJvcihtX3Rhc2stPmZpcnN0UmVxdWVzdCgpKSk7
Cit9CisKK3ZvaWQgUHJlY29ubmVjdFRhc2s6OmNhbm5vdFNob3dVUkwoKQoreworICAgIFJFTEVB
U0VfTE9HKE5ldHdvcmssICIlcCAtIFByZWNvbm5lY3RUYXNrOjpjYW5ub3RTaG93VVJMKCkiLCB0
aGlzKTsKKyAgICBkaWRGaW5pc2goY2Fubm90U2hvd1VSTEVycm9yKG1fdGFzay0+Zmlyc3RSZXF1
ZXN0KCkpKTsKK30KKwordm9pZCBQcmVjb25uZWN0VGFzazo6ZGlkRmluaXNoKGNvbnN0IFJlc291
cmNlRXJyb3ImIGVycm9yKQoreworICAgIGlmIChtX2NvbXBsZXRpb25IYW5kbGVyKQorICAgICAg
ICBtX2NvbXBsZXRpb25IYW5kbGVyKGVycm9yKTsKKyAgICBkZWxldGUgdGhpczsKK30KKworfSAv
LyBuYW1lc3BhY2UgV2ViS2l0CisKKyNlbmRpZiAvLyBFTkFCTEUoU0VSVkVSX1BSRUNPTk5FQ1Qp
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL1ByZWNvbm5lY3RUYXNr
LmggYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL1ByZWNvbm5lY3RUYXNrLmgKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uYmY5ZTM5NWU4MWViMTI5MjVlMmI4NWQ4ODMwMjU3YjBhOTZjNjEyYgotLS0gL2Rldi9u
dWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvUHJlY29ubmVjdFRhc2suaApA
QCAtMCwwICsxLDY1IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE3IEFwcGxlIEluYy4gQWxs
IHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJj
ZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJl
IHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJl
IG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0
aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4g
YmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
IGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3Zp
ZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJ
REVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQg
QU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFO
RCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElO
IE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElB
QkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBM
QVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7
IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBU
SU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRI
RVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcg
TkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRI
RSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lC
SUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNpZiBFTkFCTEUo
U0VSVkVSX1BSRUNPTk5FQ1QpCisKKyNpbmNsdWRlICJOZXR3b3JrRGF0YVRhc2suaCIKKyNpbmNs
dWRlIDxXZWJDb3JlL1RpbWVyLmg+CisjaW5jbHVkZSA8d3RmL0NvbXBsZXRpb25IYW5kbGVyLmg+
CisKK25hbWVzcGFjZSBQQUwgeworY2xhc3MgU2Vzc2lvbklEOworfQorCituYW1lc3BhY2UgV2Vi
S2l0IHsKKworY2xhc3MgUHJlY29ubmVjdFRhc2sgZmluYWwgOiBwcml2YXRlIE5ldHdvcmtEYXRh
VGFza0NsaWVudCB7CitwdWJsaWM6CisgICAgZXhwbGljaXQgUHJlY29ubmVjdFRhc2soUEFMOjpT
ZXNzaW9uSUQsIGNvbnN0IFdlYkNvcmU6OlVSTCYsIFdlYkNvcmU6OlN0b3JlZENyZWRlbnRpYWxz
UG9saWN5LCBXVEY6OkNvbXBsZXRpb25IYW5kbGVyPHZvaWQoY29uc3QgV2ViQ29yZTo6UmVzb3Vy
Y2VFcnJvciYpPiYmIGNvbXBsZXRpb25IYW5kbGVyID0geyB9KTsKKyAgICB+UHJlY29ubmVjdFRh
c2soKTsKKworcHJpdmF0ZToKKyAgICAvLyBOZXR3b3JrRGF0YVRhc2tDbGllbnQuCisgICAgdm9p
ZCB3aWxsUGVyZm9ybUhUVFBSZWRpcmVjdGlvbihXZWJDb3JlOjpSZXNvdXJjZVJlc3BvbnNlJiYs
IFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYmLCBSZWRpcmVjdENvbXBsZXRpb25IYW5kbGVyJiYp
IGZpbmFsOworICAgIHZvaWQgZGlkUmVjZWl2ZUNoYWxsZW5nZShjb25zdCBXZWJDb3JlOjpBdXRo
ZW50aWNhdGlvbkNoYWxsZW5nZSYsIENoYWxsZW5nZUNvbXBsZXRpb25IYW5kbGVyJiYpIGZpbmFs
OworICAgIHZvaWQgZGlkUmVjZWl2ZVJlc3BvbnNlTmV0d29ya1Nlc3Npb24oV2ViQ29yZTo6UmVz
b3VyY2VSZXNwb25zZSYmLCBSZXNwb25zZUNvbXBsZXRpb25IYW5kbGVyJiYpIGZpbmFsOworICAg
IHZvaWQgZGlkUmVjZWl2ZURhdGEoUmVmPFdlYkNvcmU6OlNoYXJlZEJ1ZmZlcj4mJikgZmluYWw7
CisgICAgdm9pZCBkaWRDb21wbGV0ZVdpdGhFcnJvcihjb25zdCBXZWJDb3JlOjpSZXNvdXJjZUVy
cm9yJiwgY29uc3QgV2ViQ29yZTo6TmV0d29ya0xvYWRNZXRyaWNzJikgZmluYWw7CisgICAgdm9p
ZCBkaWRTZW5kRGF0YSh1aW50NjRfdCB0b3RhbEJ5dGVzU2VudCwgdWludDY0X3QgdG90YWxCeXRl
c0V4cGVjdGVkVG9TZW5kKSBmaW5hbDsKKyAgICB2b2lkIHdhc0Jsb2NrZWQoKSBmaW5hbDsKKyAg
ICB2b2lkIGNhbm5vdFNob3dVUkwoKSBmaW5hbDsKKworICAgIHZvaWQgZGlkRmluaXNoKGNvbnN0
IFdlYkNvcmU6OlJlc291cmNlRXJyb3ImKTsKKworICAgIFJlZlB0cjxOZXR3b3JrRGF0YVRhc2s+
IG1fdGFzazsKKyAgICBXVEY6OkNvbXBsZXRpb25IYW5kbGVyPHZvaWQoY29uc3QgV2ViQ29yZTo6
UmVzb3VyY2VFcnJvciYpPiBtX2NvbXBsZXRpb25IYW5kbGVyOworICAgIFdlYkNvcmU6OlRpbWVy
IG1fdGltZW91dFRpbWVyOworfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CisKKyNlbmRpZiAv
LyBFTkFCTEUoU0VSVkVSX1BSRUNPTk5FQ1QpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05l
dHdvcmtQcm9jZXNzL2NvY29hL05ldHdvcmtEYXRhVGFza0NvY29hLmggYi9Tb3VyY2UvV2ViS2l0
L05ldHdvcmtQcm9jZXNzL2NvY29hL05ldHdvcmtEYXRhVGFza0NvY29hLmgKaW5kZXggY2RmNDMy
NGMwNmJkNmM3MTEwMDc0NzA2ZTUyOTUyMTk4MGYwNDNjOC4uMjEyYTlhMDhmYjEyMTE3ZWQ4M2Ex
MjI2ZGZiZjRmYWYwZjQ5ZTIyYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJv
Y2Vzcy9jb2NvYS9OZXR3b3JrRGF0YVRhc2tDb2NvYS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0
d29ya1Byb2Nlc3MvY29jb2EvTmV0d29ya0RhdGFUYXNrQ29jb2EuaApAQCAtMjgsNiArMjgsNyBA
QAogI2lmIFVTRShORVRXT1JLX1NFU1NJT04pCiAKICNpbmNsdWRlICJOZXR3b3JrRGF0YVRhc2su
aCIKKyNpbmNsdWRlICJOZXR3b3JrTG9hZFBhcmFtZXRlcnMuaCIKICNpbmNsdWRlIDxXZWJDb3Jl
L05ldHdvcmtMb2FkTWV0cmljcy5oPgogI2luY2x1ZGUgPHd0Zi9SZXRhaW5QdHIuaD4KIApAQCAt
NDAsOSArNDEsOSBAQCBjbGFzcyBOZXR3b3JrU2Vzc2lvbkNvY29hOwogY2xhc3MgTmV0d29ya0Rh
dGFUYXNrQ29jb2EgZmluYWwgOiBwdWJsaWMgTmV0d29ya0RhdGFUYXNrIHsKICAgICBmcmllbmQg
Y2xhc3MgTmV0d29ya1Nlc3Npb25Db2NvYTsKIHB1YmxpYzoKLSAgICBzdGF0aWMgUmVmPE5ldHdv
cmtEYXRhVGFzaz4gY3JlYXRlKE5ldHdvcmtTZXNzaW9uJiBzZXNzaW9uLCBOZXR3b3JrRGF0YVRh
c2tDbGllbnQmIGNsaWVudCwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0
LCBXZWJDb3JlOjpTdG9yZWRDcmVkZW50aWFsc1BvbGljeSBzdG9yZWRDcmVkZW50aWFsc1BvbGlj
eSwgV2ViQ29yZTo6Q29udGVudFNuaWZmaW5nUG9saWN5IHNob3VsZENvbnRlbnRTbmlmZiwgYm9v
bCBzaG91bGRDbGVhclJlZmVycmVyT25IVFRQU1RvSFRUUFJlZGlyZWN0KQorICAgIHN0YXRpYyBS
ZWY8TmV0d29ya0RhdGFUYXNrPiBjcmVhdGUoTmV0d29ya1Nlc3Npb24mIHNlc3Npb24sIE5ldHdv
cmtEYXRhVGFza0NsaWVudCYgY2xpZW50LCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3Qm
IHJlcXVlc3QsIFdlYkNvcmU6OlN0b3JlZENyZWRlbnRpYWxzUG9saWN5IHN0b3JlZENyZWRlbnRp
YWxzUG9saWN5LCBXZWJDb3JlOjpDb250ZW50U25pZmZpbmdQb2xpY3kgc2hvdWxkQ29udGVudFNu
aWZmLCBib29sIHNob3VsZENsZWFyUmVmZXJyZXJPbkhUVFBTVG9IVFRQUmVkaXJlY3QsIFByZWNv
bm5lY3RPbmx5IHNob3VsZFByZWNvbm5lY3RPbmx5KQogICAgIHsKLSAgICAgICAgcmV0dXJuIGFk
b3B0UmVmKCpuZXcgTmV0d29ya0RhdGFUYXNrQ29jb2Eoc2Vzc2lvbiwgY2xpZW50LCByZXF1ZXN0
LCBzdG9yZWRDcmVkZW50aWFsc1BvbGljeSwgc2hvdWxkQ29udGVudFNuaWZmLCBzaG91bGRDbGVh
clJlZmVycmVyT25IVFRQU1RvSFRUUFJlZGlyZWN0KSk7CisgICAgICAgIHJldHVybiBhZG9wdFJl
ZigqbmV3IE5ldHdvcmtEYXRhVGFza0NvY29hKHNlc3Npb24sIGNsaWVudCwgcmVxdWVzdCwgc3Rv
cmVkQ3JlZGVudGlhbHNQb2xpY3ksIHNob3VsZENvbnRlbnRTbmlmZiwgc2hvdWxkQ2xlYXJSZWZl
cnJlck9uSFRUUFNUb0hUVFBSZWRpcmVjdCwgc2hvdWxkUHJlY29ubmVjdE9ubHkpKTsKICAgICB9
CiAKICAgICB+TmV0d29ya0RhdGFUYXNrQ29jb2EoKTsKQEAgLTcxLDcgKzcyLDcgQEAgcHVibGlj
OgogICAgIFdlYkNvcmU6Ok5ldHdvcmtMb2FkTWV0cmljcyYgbmV0d29ya0xvYWRNZXRyaWNzKCkg
eyByZXR1cm4gbV9uZXR3b3JrTG9hZE1ldHJpY3M7IH0KIAogcHJpdmF0ZToKLSAgICBOZXR3b3Jr
RGF0YVRhc2tDb2NvYShOZXR3b3JrU2Vzc2lvbiYsIE5ldHdvcmtEYXRhVGFza0NsaWVudCYsIGNv
bnN0IFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYsIFdlYkNvcmU6OlN0b3JlZENyZWRlbnRpYWxz
UG9saWN5LCBXZWJDb3JlOjpDb250ZW50U25pZmZpbmdQb2xpY3ksIGJvb2wgc2hvdWxkQ2xlYXJS
ZWZlcnJlck9uSFRUUFNUb0hUVFBSZWRpcmVjdCk7CisgICAgTmV0d29ya0RhdGFUYXNrQ29jb2Eo
TmV0d29ya1Nlc3Npb24mLCBOZXR3b3JrRGF0YVRhc2tDbGllbnQmLCBjb25zdCBXZWJDb3JlOjpS
ZXNvdXJjZVJlcXVlc3QmLCBXZWJDb3JlOjpTdG9yZWRDcmVkZW50aWFsc1BvbGljeSwgV2ViQ29y
ZTo6Q29udGVudFNuaWZmaW5nUG9saWN5LCBib29sIHNob3VsZENsZWFyUmVmZXJyZXJPbkhUVFBT
VG9IVFRQUmVkaXJlY3QsIFByZWNvbm5lY3RPbmx5KTsKIAogICAgIGJvb2wgdHJ5UGFzc3dvcmRC
YXNlZEF1dGhlbnRpY2F0aW9uKGNvbnN0IFdlYkNvcmU6OkF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdl
JiwgQ2hhbGxlbmdlQ29tcGxldGlvbkhhbmRsZXImKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9OZXR3b3JrUHJvY2Vzcy9jb2NvYS9OZXR3b3JrRGF0YVRhc2tDb2NvYS5tbSBiL1NvdXJj
ZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvY29jb2EvTmV0d29ya0RhdGFUYXNrQ29jb2EubW0KaW5k
ZXggOTk3ZTBlZTFhZjY4ODNlZTcyOGQzMDAwNDhjYzZiMmVkNDlkMjQ5OS4uZGJiYjEwMDQwMTQ5
YTRmNmVmMjBkZTM5M2Y3Yzk2ODY2MWI4NGU4NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9O
ZXR3b3JrUHJvY2Vzcy9jb2NvYS9OZXR3b3JrRGF0YVRhc2tDb2NvYS5tbQorKysgYi9Tb3VyY2Uv
V2ViS2l0L05ldHdvcmtQcm9jZXNzL2NvY29hL05ldHdvcmtEYXRhVGFza0NvY29hLm1tCkBAIC03
NCw3ICs3NCw3IEBAIHN0YXRpYyBmbG9hdCB0b05TVVJMU2Vzc2lvblRhc2tQcmlvcml0eShXZWJD
b3JlOjpSZXNvdXJjZUxvYWRQcmlvcml0eSBwcmlvcml0eSkKICAgICByZXR1cm4gTlNVUkxTZXNz
aW9uVGFza1ByaW9yaXR5RGVmYXVsdDsKIH0KIAotTmV0d29ya0RhdGFUYXNrQ29jb2E6Ok5ldHdv
cmtEYXRhVGFza0NvY29hKE5ldHdvcmtTZXNzaW9uJiBzZXNzaW9uLCBOZXR3b3JrRGF0YVRhc2tD
bGllbnQmIGNsaWVudCwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0V2l0
aENyZWRlbnRpYWxzLCBXZWJDb3JlOjpTdG9yZWRDcmVkZW50aWFsc1BvbGljeSBzdG9yZWRDcmVk
ZW50aWFsc1BvbGljeSwgV2ViQ29yZTo6Q29udGVudFNuaWZmaW5nUG9saWN5IHNob3VsZENvbnRl
bnRTbmlmZiwgYm9vbCBzaG91bGRDbGVhclJlZmVycmVyT25IVFRQU1RvSFRUUFJlZGlyZWN0KQor
TmV0d29ya0RhdGFUYXNrQ29jb2E6Ok5ldHdvcmtEYXRhVGFza0NvY29hKE5ldHdvcmtTZXNzaW9u
JiBzZXNzaW9uLCBOZXR3b3JrRGF0YVRhc2tDbGllbnQmIGNsaWVudCwgY29uc3QgV2ViQ29yZTo6
UmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0V2l0aENyZWRlbnRpYWxzLCBXZWJDb3JlOjpTdG9yZWRD
cmVkZW50aWFsc1BvbGljeSBzdG9yZWRDcmVkZW50aWFsc1BvbGljeSwgV2ViQ29yZTo6Q29udGVu
dFNuaWZmaW5nUG9saWN5IHNob3VsZENvbnRlbnRTbmlmZiwgYm9vbCBzaG91bGRDbGVhclJlZmVy
cmVyT25IVFRQU1RvSFRUUFJlZGlyZWN0LCBQcmVjb25uZWN0T25seSBzaG91bGRQcmVjb25uZWN0
T25seSkKICAgICA6IE5ldHdvcmtEYXRhVGFzayhzZXNzaW9uLCBjbGllbnQsIHJlcXVlc3RXaXRo
Q3JlZGVudGlhbHMsIHN0b3JlZENyZWRlbnRpYWxzUG9saWN5LCBzaG91bGRDbGVhclJlZmVycmVy
T25IVFRQU1RvSFRUUFJlZGlyZWN0KQogewogICAgIGlmIChtX3NjaGVkdWxlZEZhaWx1cmVUeXBl
ICE9IE5vRmFpbHVyZSkKQEAgLTEyOCw2ICsxMjgsMTQgQEAgTmV0d29ya0RhdGFUYXNrQ29jb2E6
Ok5ldHdvcmtEYXRhVGFza0NvY29hKE5ldHdvcmtTZXNzaW9uJiBzZXNzaW9uLCBOZXR3b3JrRGF0
YVQKICAgICAgICAgTE9HKE5ldHdvcmtTZXNzaW9uLCAiJWxsdSBDcmVhdGluZyBOZXR3b3JrRGF0
YVRhc2sgd2l0aCBVUkwgJXMiLCBbbV90YXNrIHRhc2tJZGVudGlmaWVyXSwgbnNSZXF1ZXN0LlVS
TC5hYnNvbHV0ZVN0cmluZy5VVEY4U3RyaW5nKTsKICAgICB9CiAKKyAgICBpZiAoc2hvdWxkUHJl
Y29ubmVjdE9ubHkgPT0gUHJlY29ubmVjdE9ubHk6OlllcykgeworI2lmIEVOQUJMRShTRVJWRVJf
UFJFQ09OTkVDVCkKKyAgICAgICAgbV90YXNrLmdldCgpLl9wcmVjb25uZWN0ID0gdHJ1ZTsKKyNl
bHNlCisgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOworI2VuZGlmCisgICAgfQorCiAjaWYg
SEFWRShDRk5FVFdPUktfU1RPUkFHRV9QQVJUSVRJT05JTkcpCiAgICAgaWYgKHN0b3JlZENyZWRl
bnRpYWxzUG9saWN5ID09IFdlYkNvcmU6OlN0b3JlZENyZWRlbnRpYWxzUG9saWN5OjpVc2UpIHsK
ICAgICAgICAgU3RyaW5nIHN0b3JhZ2VQYXJ0aXRpb24gPSBzZXNzaW9uLm5ldHdvcmtTdG9yYWdl
U2Vzc2lvbigpLmNvb2tpZVN0b3JhZ2VQYXJ0aXRpb24ocmVxdWVzdCk7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJDb3JlQXJndW1lbnRDb2RlcnMuaCBiL1NvdXJjZS9XZWJL
aXQvU2hhcmVkL1dlYkNvcmVBcmd1bWVudENvZGVycy5oCmluZGV4IDA4YzM4MzkwYjg0Y2U0ODc0
MWNkNDRmZTE0MWVlNTZiODRiOTJjNDMuLmViM2RiNTBkOTZiZTEwY2QxZWMyM2ZiOGQ4ZTc4ZTEy
YThjYzIwZGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkNvcmVBcmd1bWVu
dENvZGVycy5oCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkNvcmVBcmd1bWVudENvZGVy
cy5oCkBAIC0zOSw2ICszOSw3IEBACiAjaW5jbHVkZSA8V2ViQ29yZS9QYXltZW50SGVhZGVycy5o
PgogI2luY2x1ZGUgPFdlYkNvcmUvUmVhbHRpbWVNZWRpYVNvdXJjZS5oPgogI2luY2x1ZGUgPFdl
YkNvcmUvU2Nyb2xsU25hcE9mZnNldHNJbmZvLmg+CisjaW5jbHVkZSA8V2ViQ29yZS9TdG9yZWRD
cmVkZW50aWFsc1BvbGljeS5oPgogCiBuYW1lc3BhY2UgV1RGIHsKIGNsYXNzIE1vbm90b25pY1Rp
bWU7CkBAIC03NjYsNCArNzY3LDEyIEBAIHRlbXBsYXRlPD4gc3RydWN0IEVudW1UcmFpdHM8V2Vi
Q29yZTo6TWVkaWFTZWxlY3Rpb25PcHRpb246OlR5cGU+IHsKICAgICA+OwogfTsKIAordGVtcGxh
dGUgPD4gc3RydWN0IEVudW1UcmFpdHM8V2ViQ29yZTo6U3RvcmVkQ3JlZGVudGlhbHNQb2xpY3k+
IHsKKyAgICB1c2luZyB2YWx1ZXMgPSBFbnVtVmFsdWVzPAorICAgICAgICBXZWJDb3JlOjpTdG9y
ZWRDcmVkZW50aWFsc1BvbGljeSwKKyAgICAgICAgV2ViQ29yZTo6U3RvcmVkQ3JlZGVudGlhbHNQ
b2xpY3k6OkRvTm90VXNlLAorICAgICAgICBXZWJDb3JlOjpTdG9yZWRDcmVkZW50aWFsc1BvbGlj
eTo6VXNlCisgICAgPjsKK307CisKIH0gLy8gbmFtZXNwYWNlIFdURgpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9TaGFyZWQvV2ViUHJlZmVyZW5jZXNEZWZpbml0aW9ucy5oIGIvU291cmNlL1dl
YktpdC9TaGFyZWQvV2ViUHJlZmVyZW5jZXNEZWZpbml0aW9ucy5oCmluZGV4IGM2ODIwZDgxNTZk
YjJiNWYyODU4MTEwMjFjODIyNzIyNjk0ODU3MGQuLjgzYzYzNjEzMjhiMTg1NTBlMGRjYzFhZmFm
M2RiZDdiNWRlMjhmZjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYlByZWZl
cmVuY2VzRGVmaW5pdGlvbnMuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJQcmVmZXJl
bmNlc0RlZmluaXRpb25zLmgKQEAgLTQ1LDYgKzQ1LDEyIEBACiAjZGVmaW5lIERFRkFVTFRfSElE
REVOX1BBR0VfQ1NTX0FOSU1BVElPTl9TVVNQRU5TSU9OX0VOQUJMRUQgZmFsc2UKICNlbmRpZgog
CisjaWYgRU5BQkxFKFNFUlZFUl9QUkVDT05ORUNUKQorI2RlZmluZSBERUZBVUxUX0xJTktfUFJF
Q09OTkVDVF9FTkFCTEVEIHRydWUKKyNlbHNlCisjZGVmaW5lIERFRkFVTFRfTElOS19QUkVDT05O
RUNUX0VOQUJMRUQgZmFsc2UKKyNlbmRpZgorCiAjaWYgUExBVEZPUk0oQ09DT0EpCiAjZGVmaW5l
IERFRkFVTFRfUERGUExVR0lOX0VOQUJMRUQgdHJ1ZQogI2Vsc2UKQEAgLTE4MSw2ICsxODcsNyBA
QAogICAgIG1hY3JvKERPTVBhc3RlQWxsb3dlZCwgZG9tUGFzdGVBbGxvd2VkLCBCb29sLCBib29s
LCBmYWxzZSwgIiIsICIiKSBcCiAgICAgbWFjcm8oSmF2YVNjcmlwdENhbkFjY2Vzc0NsaXBib2Fy
ZCwgamF2YVNjcmlwdENhbkFjY2Vzc0NsaXBib2FyZCwgQm9vbCwgYm9vbCwgZmFsc2UsICIiLCAi
IikgXAogICAgIG1hY3JvKFNob3VsZFByaW50QmFja2dyb3VuZHMsIHNob3VsZFByaW50QmFja2dy
b3VuZHMsIEJvb2wsIGJvb2wsIERFRkFVTFRfU0hPVUxEX1BSSU5UX0JBQ0tHUk9VTkRTLCAiIiwg
IiIpIFwKKyAgICBtYWNybyhMaW5rUHJlY29ubmVjdCwgbGlua1ByZWNvbm5lY3QsIEJvb2wsIGJv
b2wsIERFRkFVTFRfTElOS19QUkVDT05ORUNUX0VOQUJMRUQsICIiLCAiIikgXAogICAgIG1hY3Jv
KEZ1bGxTY3JlZW5FbmFibGVkLCBmdWxsU2NyZWVuRW5hYmxlZCwgQm9vbCwgYm9vbCwgZmFsc2Us
ICIiLCAiIikgXAogICAgIG1hY3JvKEFzeW5jaHJvbm91c1NwZWxsQ2hlY2tpbmdFbmFibGVkLCBh
c3luY2hyb25vdXNTcGVsbENoZWNraW5nRW5hYmxlZCwgQm9vbCwgYm9vbCwgZmFsc2UsICIiLCAi
IikgXAogICAgIG1hY3JvKFdlYlNlY3VyaXR5RW5hYmxlZCwgd2ViU2VjdXJpdHlFbmFibGVkLCBC
b29sLCBib29sLCB0cnVlLCAiIiwgIiIpIFwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL0FQSS9DL1dLQ29udGV4dC5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkv
Qy9XS0NvbnRleHQuY3BwCmluZGV4IDc4MzM4ZWQ2NTc4Y2RjZWMxZWUwY2UxMzQ0MzgyZWI0OTc2
MDYyNTkuLjcwNDhiYmUwYzBkNzA3MmRhMjRiYTFkMTRiYjkyOGQ5ZjllYWM5ZDggMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9DL1dLQ29udGV4dC5jcHAKKysrIGIvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0MvV0tDb250ZXh0LmNwcApAQCAtNDA3LDYgKzQwNywx
MSBAQCB2b2lkIFdLQ29udGV4dFNldERpc2tDYWNoZVNwZWN1bGF0aXZlVmFsaWRhdGlvbkVuYWJs
ZWQoV0tDb250ZXh0UmVmIGNvbnRleHRSZWYsCiAgICAgdG9JbXBsKGNvbnRleHRSZWYpLT5jb25m
aWd1cmF0aW9uKCkuc2V0RGlza0NhY2hlU3BlY3VsYXRpdmVWYWxpZGF0aW9uRW5hYmxlZCh2YWx1
ZSk7CiB9CiAKK3ZvaWQgV0tDb250ZXh0UHJlY29ubmVjdFRvU2VydmVyKFdLQ29udGV4dFJlZiBj
b250ZXh0UmVmLCBXS1VSTFJlZiBzZXJ2ZXJVUkxSZWYpCit7CisgICAgdG9JbXBsKGNvbnRleHRS
ZWYpLT5wcmVjb25uZWN0VG9TZXJ2ZXIoVVJMKFVSTCgpLCB0b1dURlN0cmluZyhzZXJ2ZXJVUkxS
ZWYpKSk7Cit9CisKIFdLQ29va2llTWFuYWdlclJlZiBXS0NvbnRleHRHZXRDb29raWVNYW5hZ2Vy
KFdLQ29udGV4dFJlZiBjb250ZXh0UmVmKQogewogICAgIHJldHVybiB0b0FQSSh0b0ltcGwoY29u
dGV4dFJlZiktPnN1cHBsZW1lbnQ8V2ViQ29va2llTWFuYWdlclByb3h5PigpKTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9DL1dLQ29udGV4dFByaXZhdGUuaCBiL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9DL1dLQ29udGV4dFByaXZhdGUuaAppbmRleCAwMmY5
MGI5MTdiNDg5NDUwZTIzMGI2YWU2NDZhYTk3NDY5MDc3OGE3Li4xNTJkNmRhYjBiNjkwNjBjN2M2
NmIxZjc5YTgwMzAyOWY4MTQ3OTE0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9BUEkvQy9XS0NvbnRleHRQcml2YXRlLmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
QVBJL0MvV0tDb250ZXh0UHJpdmF0ZS5oCkBAIC0xMDUsNiArMTA1LDggQEAgV0tfRVhQT1JUIHZv
aWQgV0tDb250ZXh0U2V0TWVtb3J5Q2FjaGVEaXNhYmxlZChXS0NvbnRleHRSZWYsIGJvb2wgZGlz
YWJsZWQpOwogCiBXS19FWFBPUlQgdm9pZCBXS0NvbnRleHRTZXRGb250V2hpdGVsaXN0KFdLQ29u
dGV4dFJlZiwgV0tBcnJheVJlZik7CiAKK1dLX0VYUE9SVCB2b2lkIFdLQ29udGV4dFByZWNvbm5l
Y3RUb1NlcnZlcihXS0NvbnRleHRSZWYgY29udGV4dCwgV0tVUkxSZWYgc2VydmVyVVJMKTsKKwog
V0tfRVhQT1JUIFdLUHJvY2Vzc0lEIFdLQ29udGV4dEdldE5ldHdvcmtQcm9jZXNzSWRlbnRpZmll
cihXS0NvbnRleHRSZWYgY29udGV4dCk7CiBXS19FWFBPUlQgV0tQcm9jZXNzSUQgV0tDb250ZXh0
R2V0RGF0YWJhc2VQcm9jZXNzSWRlbnRpZmllcihXS0NvbnRleHRSZWYgY29udGV4dCk7CiAKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1Byb2Nlc3NQb29s
Lm1tIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLUHJvY2Vzc1Bvb2wubW0K
aW5kZXggMWY1OTc0ZGY1N2EwMjFkYmQ1YmM4OTRmY2Q4ZWE3MTgzNDhhODkyOC4uMTgwMjMwN2M3
ZTBjZjkwMTg1N2UzNjYyYTk2MDE1MDE1ZmM5NjAxNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLUHJvY2Vzc1Bvb2wubW0KKysrIGIvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLUHJvY2Vzc1Bvb2wubW0KQEAgLTQxNSw2ICs0MTUsMTEg
QEAgc3RhdGljIE5TRGljdGlvbmFyeSAqcG9saWNpZXNIYXNoTWFwVG9EaWN0aW9uYXJ5KGNvbnN0
IEhhc2hNYXA8U3RyaW5nLCBIYXNoTWFwPFMKICAgICByZXR1cm4gX3Byb2Nlc3NQb29sLT5wcm9j
ZXNzZXMoKS5zaXplKCk7CiB9CiAKKy0gKHZvaWQpX3ByZWNvbm5lY3RUb1NlcnZlcjooTlNVUkwg
KilzZXJ2ZXJVUkwKK3sKKyAgICBfcHJvY2Vzc1Bvb2wtPnByZWNvbm5lY3RUb1NlcnZlcihzZXJ2
ZXJVUkwpOworfQorCiAtIChzaXplX3QpX3BsdWdpblByb2Nlc3NDb3VudAogewogI2lmICFQTEFU
Rk9STShJT1MpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2Ev
V0tQcm9jZXNzUG9vbFByaXZhdGUuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2Nv
YS9XS1Byb2Nlc3NQb29sUHJpdmF0ZS5oCmluZGV4IDA3YWFlMzEwOGZiM2YzNmZmZDJmZjM5NTM0
Y2EwZDE3ZTVjZjQ0ZjkuLjEzZmU1OWM0ODJiODhhNGI4MjhkNWQ2OGZkMjAzOTNlZmFlMTJiODAg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1Byb2Nlc3NQ
b29sUHJpdmF0ZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1By
b2Nlc3NQb29sUHJpdmF0ZS5oCkBAIC04Nyw2ICs4Nyw4IEBACiAvLyBUZXN0IG9ubHkuIFNob3Vs
ZCBiZSBjYWxsZWQgYmVmb3JlIGFueSB3ZWIgY29udGVudCBwcm9jZXNzZXMgYXJlIGxhdW5jaGVk
LgogKyAodm9pZClfZm9yY2VHYW1lQ29udHJvbGxlckZyYW1ld29yayBXS19BUElfQVZBSUxBQkxF
KG1hY29zeCgxMC4xMyksIGlvcygxMS4wKSk7CiAKKy0gKHZvaWQpX3ByZWNvbm5lY3RUb1NlcnZl
cjooTlNVUkwgKilzZXJ2ZXJVUkwgV0tfQVBJX0FWQUlMQUJMRShtYWNvc3goV0tfTUFDX1RCQSks
IGlvcyhXS19JT1NfVEJBKSk7CisKIEBwcm9wZXJ0eSAobm9uYXRvbWljLCBnZXR0ZXI9X2lzQ29v
a2llU3RvcmFnZVBhcnRpdGlvbmluZ0VuYWJsZWQsIHNldHRlcj1fc2V0Q29va2llU3RvcmFnZVBh
cnRpdGlvbmluZ0VuYWJsZWQ6KSBCT09MIF9jb29raWVTdG9yYWdlUGFydGl0aW9uaW5nRW5hYmxl
ZCBXS19BUElfQVZBSUxBQkxFKG1hY29zeCgxMC4xMi4zKSwgaW9zKDEwLjMpKTsKIAogQGVuZApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Bvb2wuY3BwIGIv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Bvb2wuY3BwCmluZGV4IGFjYjlkNTYy
NWVhYjc5NGJlNWNlZDYxZDdlYmMzOGEyYzUyMzU1YjcuLjI2MjA4NjM5ZmY0ZTdkNjdhNTY0ZDgy
NTI2OTlhMjY4ODc0ZWFlMTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dl
YlByb2Nlc3NQb29sLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNz
UG9vbC5jcHAKQEAgLTExNTcsNiArMTE1NywxNCBAQCB2b2lkIFdlYlByb2Nlc3NQb29sOjpzZXRD
YW5IYW5kbGVIVFRQU1NlcnZlclRydXN0RXZhbHVhdGlvbihib29sIHZhbHVlKQogICAgIH0KIH0K
IAordm9pZCBXZWJQcm9jZXNzUG9vbDo6cHJlY29ubmVjdFRvU2VydmVyKGNvbnN0IFVSTCYgdXJs
KQoreworICAgIGlmICghdXJsLmlzVmFsaWQoKSB8fCAhdXJsLnByb3RvY29sSXNJbkhUVFBGYW1p
bHkoKSkKKyAgICAgICAgcmV0dXJuOworCisgICAgZW5zdXJlTmV0d29ya1Byb2Nlc3MoKS5zZW5k
KE1lc3NhZ2VzOjpOZXR3b3JrUHJvY2Vzczo6UHJlY29ubmVjdFRvKHVybCwgU3RvcmVkQ3JlZGVu
dGlhbHNQb2xpY3k6OlVzZSksIDApOworfQorCiB2b2lkIFdlYlByb2Nlc3NQb29sOjpyZWdpc3Rl
clVSTFNjaGVtZUFzTG9jYWwoY29uc3QgU3RyaW5nJiB1cmxTY2hlbWUpCiB7CiAgICAgbV9zY2hl
bWVzVG9SZWdpc3RlckFzTG9jYWwuYWRkKHVybFNjaGVtZSk7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUG9vbC5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvV2ViUHJvY2Vzc1Bvb2wuaAppbmRleCBlMTlmNmRmMmFmODZkNWNhNDQ3MGFkNmM4NjE0OTE3
YTFmZjI4MDdhLi5hZDViMGM2N2E5NTAwZDhiYThhZDY0ZTNkOGZhZDg5MDQzNTc5N2M1IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUG9vbC5oCisrKyBiL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQb29sLmgKQEAgLTIxNiw2ICsyMTYsNyBA
QCBwdWJsaWM6CiAgICAgdm9pZCByZWdpc3RlclVSTFNjaGVtZUFzRGlzcGxheUlzb2xhdGVkKGNv
bnN0IFN0cmluZyYpOwogICAgIHZvaWQgcmVnaXN0ZXJVUkxTY2hlbWVBc0NPUlNFbmFibGVkKGNv
bnN0IFN0cmluZyYpOwogICAgIHZvaWQgcmVnaXN0ZXJVUkxTY2hlbWVBc0NhY2hlUGFydGl0aW9u
ZWQoY29uc3QgU3RyaW5nJik7CisgICAgdm9pZCBwcmVjb25uZWN0VG9TZXJ2ZXIoY29uc3QgV2Vi
Q29yZTo6VVJMJik7CiAKICAgICBWaXNpdGVkTGlua1N0b3JlJiB2aXNpdGVkTGlua1N0b3JlKCkg
eyByZXR1cm4gbV92aXNpdGVkTGlua1N0b3JlLmdldCgpOyB9CiAKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvV2ViS2l0
L1dlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IDYyYTRiNzIyYjZkNjMyZTIy
ZTQ5OGRmYzZiNThlNGEwYWE0MTExNmYuLjY2NGE4NWMwZWMzMGFkM2Y5YjkxZDIyNTdiOGJiODc3
NTI2NTY2YmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9q
ZWN0LnBieHByb2oKKysrIGIvU291cmNlL1dlYktpdC9XZWJLaXQueGNvZGVwcm9qL3Byb2plY3Qu
cGJ4cHJvagpAQCAtMTM4MCw2ICsxMzgwLDggQEAKIAkJODM5OTAyMDMxQkU5QTAyQjAwMEYzNjUz
IC8qIE5ldHdvcmtMb2FkLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSA4Mzk5MDFGRTFCRTlBMDFCMDAwRjM2NTMgLyogTmV0d29ya0xvYWQuaCAqLzsgfTsK
IAkJODM5QTJGMzExRTIwNjc0NTAwMzkwNTdFIC8qIEhpZ2hQZXJmb3JtYW5jZUdyYXBoaWNzVXNh
Z2VTYW1wbGVyLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDgzOUEyRjJGMUUyMDY3MzkwMDM5MDU3RSAvKiBIaWdoUGVyZm9ybWFuY2VHcmFwaGljc1Vz
YWdlU2FtcGxlci5jcHAgKi87IH07CiAJCTgzOUEyRjMyMUUyMDY3NDUwMDM5MDU3RSAvKiBIaWdo
UGVyZm9ybWFuY2VHcmFwaGljc1VzYWdlU2FtcGxlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODM5QTJGMzAxRTIwNjczOTAwMzkwNTdFIC8qIEhpZ2hQ
ZXJmb3JtYW5jZUdyYXBoaWNzVXNhZ2VTYW1wbGVyLmggKi87IH07CisJCTgzQTBFRDM0MUY3NDdD
Q0QwMDMyOTlFQiAvKiBQcmVjb25uZWN0VGFzay5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4M0EwRUQzMzFGNzQ3Q0M3MDAzMjk5RUIgLyogUHJlY29u
bmVjdFRhc2suY3BwICovOyB9OworCQk4M0EwRUQzNTFGNzQ3Q0NGMDAzMjk5RUIgLyogUHJlY29u
bmVjdFRhc2suaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDgzQTBFRDMyMUY3NDdDQzYwMDMyOTlFQiAvKiBQcmVjb25uZWN0VGFzay5oICovOyB9OwogCQk4
M0JEQ0NCOTFBQzVGREI2MDAzRjY0NDEgLyogTmV0d29ya0NhY2hlU3RhdGlzdGljcy5jcHAgaW4g
U291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4M0JEQ0NCODFBQzVG
REI2MDAzRjY0NDEgLyogTmV0d29ya0NhY2hlU3RhdGlzdGljcy5jcHAgKi87IH07CiAJCTgzQkZB
QzQyMUQ5NjEzN0MwMDQzMzQ5MCAvKiBCbG9iRG93bmxvYWRDbGllbnQuaCBpbiBIZWFkZXJzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDgzQkZBQzQwMUQ5NjEzNjAwMDQzMzQ5
MCAvKiBCbG9iRG93bmxvYWRDbGllbnQuaCAqLzsgfTsKIAkJODNCRkFDNDMxRDk2MTM3QzAwNDMz
NDkwIC8qIEJsb2JEb3dubG9hZENsaWVudC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSA4M0JGQUM0MTFEOTYxMzYwMDA0MzM0OTAgLyogQmxvYkRvd25s
b2FkQ2xpZW50LmNwcCAqLzsgfTsKQEAgLTM3MzEsNiArMzczMyw4IEBACiAJCTgzOTkwMUZGMUJF
OUEwMUIwMDBGMzY1MyAvKiBOZXR3b3JrTG9hZC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNw
cC5jcHA7IG5hbWUgPSBOZXR3b3JrTG9hZC5jcHA7IHBhdGggPSBOZXR3b3JrUHJvY2Vzcy9OZXR3
b3JrTG9hZC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTgzOUEyRjJGMUUyMDY3
MzkwMDM5MDU3RSAvKiBIaWdoUGVyZm9ybWFuY2VHcmFwaGljc1VzYWdlU2FtcGxlci5jcHAgKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBIaWdoUGVyZm9ybWFuY2VHcmFwaGlj
c1VzYWdlU2FtcGxlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTgzOUEyRjMw
MUUyMDY3MzkwMDM5MDU3RSAvKiBIaWdoUGVyZm9ybWFuY2VHcmFwaGljc1VzYWdlU2FtcGxlci5o
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBIaWdoUGVyZm9ybWFuY2VHcmFwaGlj
c1VzYWdlU2FtcGxlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk4M0EwRUQzMjFG
NzQ3Q0M2MDAzMjk5RUIgLyogUHJlY29ubmVjdFRhc2suaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Yy5oOyBuYW1lID0gUHJlY29ubmVjdFRhc2suaDsgcGF0aCA9IE5ldHdvcmtQcm9jZXNzL1ByZWNv
bm5lY3RUYXNrLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTgzQTBFRDMzMUY3NDdD
QzcwMDMyOTlFQiAvKiBQcmVjb25uZWN0VGFzay5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNw
cC5jcHA7IG5hbWUgPSBQcmVjb25uZWN0VGFzay5jcHA7IHBhdGggPSBOZXR3b3JrUHJvY2Vzcy9Q
cmVjb25uZWN0VGFzay5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTgzQkRDQ0I4
MUFDNUZEQjYwMDNGNjQ0MSAvKiBOZXR3b3JrQ2FjaGVTdGF0aXN0aWNzLmNwcCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IE5ldHdvcmtDYWNoZVN0YXRpc3RpY3MuY3BwOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk4M0JGQUM0MDFEOTYxMzYwMDA0MzM0OTAgLyog
QmxvYkRvd25sb2FkQ2xpZW50LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IEJs
b2JEb3dubG9hZENsaWVudC5oOyBwYXRoID0gTmV0d29ya1Byb2Nlc3MvRG93bmxvYWRzL0Jsb2JE
b3dubG9hZENsaWVudC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk4M0JGQUM0MTFE
OTYxMzYwMDA0MzM0OTAgLyogQmxvYkRvd25sb2FkQ2xpZW50LmNwcCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuY3BwLmNwcDsgbmFtZSA9IEJsb2JEb3dubG9hZENsaWVudC5jcHA7IHBhdGggPSBOZXR3
b3JrUHJvY2Vzcy9Eb3dubG9hZHMvQmxvYkRvd25sb2FkQ2xpZW50LmNwcDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKQEAgLTYxMTEsNiArNjExNSw4IEBACiAJCQkJNUMwQjE3N0YxRTdDODg2
NzAwRTkxMjNDIC8qIE5ldHdvcmtTb2NrZXRTdHJlYW0ubWVzc2FnZXMuaW4gKi8sCiAJCQkJNDYy
MTA3RDcxRjM4REJEMzAwREQ3ODEwIC8qIFBpbmdMb2FkLmNwcCAqLywKIAkJCQk1Q0U4NUIxRjFD
ODhFNjQzMDA3MEJGQ0UgLyogUGluZ0xvYWQuaCAqLywKKwkJCQk4M0EwRUQzMzFGNzQ3Q0M3MDAz
Mjk5RUIgLyogUHJlY29ubmVjdFRhc2suY3BwICovLAorCQkJCTgzQTBFRDMyMUY3NDdDQzYwMDMy
OTlFQiAvKiBQcmVjb25uZWN0VGFzay5oICovLAogCQkJCUUxQjc4NDcwMTYzRjI0NjkwMDA3QjY5
MiAvKiBSZW1vdGVOZXR3b3JraW5nQ29udGV4dC5oICovLAogCQkJKTsKIAkJCW5hbWUgPSBOZXR3
b3JrUHJvY2VzczsKQEAgLTg3MDMsNiArODcwOSw3IEBACiAJCQkJMUE0QTlGMzMxMkI4NDRFMjAw
OEZFOTg0IC8qIFBsdWdpblF1aXJrcy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJN0NENjIyNzgxNzM5
RDg2MzAwNUJEN0ZGIC8qIFBsdWdpblNhbmRib3hQcm9maWxlLmggaW4gSGVhZGVycyAqLywKIAkJ
CQkxQTZGQjdBRjExRTY0QjY4MDBEQjEzNzEgLyogUGx1Z2luVmlldy5oIGluIEhlYWRlcnMgKi8s
CisJCQkJODNBMEVEMzUxRjc0N0NDRjAwMzI5OUVCIC8qIFByZWNvbm5lY3RUYXNrLmggaW4gSGVh
ZGVycyAqLywKIAkJCQlFMUNDMUI5MDEyRDdFQURGMDA2MjU4MzggLyogUHJpbnRJbmZvLmggaW4g
SGVhZGVycyAqLywKIAkJCQk4NkY5NTM2NTE4RkY1OEY1MDAxREIyRUYgLyogUHJvY2Vzc0Fzc2Vy
dGlvbi5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQkMxQTdDNTgxMTM2RTE5QzAwRkI3MTY3IC8qIFBy
b2Nlc3NMYXVuY2hlci5oIGluIEhlYWRlcnMgKi8sCkBAIC0xMDI4Myw2ICsxMDI5MCw3IEBACiAJ
CQkJN0NENjIyNzcxNzM5RDg2MzAwNUJEN0ZGIC8qIFBsdWdpblNhbmRib3hQcm9maWxlLm1tIGlu
IFNvdXJjZXMgKi8sCiAJCQkJQkM4Mjg0NEQxNkI1MDgxQzAwQTI3OEZFIC8qIFBsdWdpblNlcnZp
Y2VFbnRyeVBvaW50Lm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJMUE2RkI3QUUxMUU2NEI2ODAwREIx
MzcxIC8qIFBsdWdpblZpZXcuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJODNBMEVEMzQxRjc0N0ND
RDAwMzI5OUVCIC8qIFByZWNvbm5lY3RUYXNrLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUUxOEM5
MkY0MTJEQjlFNzEwMENGMkFFQiAvKiBQcmludEluZm8uY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJ
RTFDQzFCOTExMkQ3RUFERjAwNjI1ODM4IC8qIFByaW50SW5mb01hYy5tbSBpbiBTb3VyY2VzICov
LAogCQkJCTM3NzE2QTVBMTk1QjkxMDUwMEVFOEIxQiAvKiBQcm9jZXNzQXNzZXJ0aW9uLmNwcCBp
biBTb3VyY2VzICovLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL05ldHdv
cmsvTmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uLmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9OZXR3b3JrL05ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbi5jcHAKaW5kZXggOTYyNGUyOTY0Yzc0
OWNiNzZjNWJmMDk3ZmUyYzUwYzdjZDZmZmE1Mi4uMzhkNTNjOWMyOWQwZTllZjFmNDA2MGE4ZDFi
MDU0NzM4YzFkMDdjZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL05ldHdv
cmsvTmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvTmV0d29yay9OZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb24uY3BwCkBAIC0xNDAsNiArMTQw
LDExIEBAIHZvaWQgTmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uOjpkaWRGaW5pc2hQaW5nTG9hZCh1
aW50NjRfdCBwaW5nTG9hZElkZW50aWZpZXIsIFJlCiAgICAgV2ViUHJvY2Vzczo6c2luZ2xldG9u
KCkud2ViTG9hZGVyU3RyYXRlZ3koKS5kaWRGaW5pc2hQaW5nTG9hZChwaW5nTG9hZElkZW50aWZp
ZXIsIFdURk1vdmUoZXJyb3IpKTsKIH0KIAordm9pZCBOZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb246
OmRpZEZpbmlzaFByZWNvbm5lY3Rpb24odWludDY0X3QgcHJlY29ubmVjdGlvbklkZW50aWZpZXIs
IFJlc291cmNlRXJyb3ImJiBlcnJvcikKK3sKKyAgICBXZWJQcm9jZXNzOjpzaW5nbGV0b24oKS53
ZWJMb2FkZXJTdHJhdGVneSgpLmRpZEZpbmlzaFByZWNvbm5lY3Rpb24ocHJlY29ubmVjdGlvbklk
ZW50aWZpZXIsIFdURk1vdmUoZXJyb3IpKTsKK30KKwogI2lmIEVOQUJMRShTSEFSRUFCTEVfUkVT
T1VSQ0UpCiB2b2lkIE5ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbjo6ZGlkQ2FjaGVSZXNvdXJjZShj
b25zdCBSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QsIGNvbnN0IFNoYXJlYWJsZVJlc291cmNlOjpI
YW5kbGUmIGhhbmRsZSwgUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklEKQogewpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nlc3NDb25uZWN0aW9u
LmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvTmV0d29yay9OZXR3b3JrUHJvY2Vzc0Nvbm5l
Y3Rpb24uaAppbmRleCBjNTM0NGVhNjVkMDFlYzFhM2RhMmIwYjA1M2NmYzQwMzgzMWU1NDhjLi5k
ZWVhN2IwZmQ4MmI5ZmEzYjVhMTllYmQ5YWJhNGE2MGQ4MmMwMTE4IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvTmV0d29yay9OZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb24uaAor
KysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvTmV0d29yay9OZXR3b3JrUHJvY2Vzc0Nvbm5l
Y3Rpb24uaApAQCAtNzQsNiArNzQsNyBAQCBwcml2YXRlOgogCiAgICAgdm9pZCBkaWRXcml0ZUJs
b2JzVG9UZW1wb3JhcnlGaWxlcyh1aW50NjRfdCByZXF1ZXN0SWRlbnRpZmllciwgY29uc3QgVmVj
dG9yPFN0cmluZz4mIGZpbGVuYW1lcyk7CiAgICAgdm9pZCBkaWRGaW5pc2hQaW5nTG9hZCh1aW50
NjRfdCBwaW5nTG9hZElkZW50aWZpZXIsIFdlYkNvcmU6OlJlc291cmNlRXJyb3ImJik7CisgICAg
dm9pZCBkaWRGaW5pc2hQcmVjb25uZWN0aW9uKHVpbnQ2NF90IHByZWNvbm5lY3Rpb25JZGVudGlm
aWVyLCBXZWJDb3JlOjpSZXNvdXJjZUVycm9yJiYpOwogCiAjaWYgRU5BQkxFKFNIQVJFQUJMRV9S
RVNPVVJDRSkKICAgICAvLyBNZXNzYWdlIGhhbmRsZXJzLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uLm1lc3NhZ2Vz
LmluIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nlc3NDb25u
ZWN0aW9uLm1lc3NhZ2VzLmluCmluZGV4IDgzZWYyZTYyMjg5YmFlMWQ4MzM2YmJmOTIyZDNmNThk
MjY0Yjg5ZTAuLjI4NzM2M2U3MzFlNDk0NDEyYmY4YWRiYTYzNDNhMTBkMjFlZGYwYmMgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9jZXNzQ29u
bmVjdGlvbi5tZXNzYWdlcy5pbgorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvTmV0d29y
ay9OZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb24ubWVzc2FnZXMuaW4KQEAgLTI4LDQgKzI4LDUgQEAg
bWVzc2FnZXMgLT4gTmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uIExlZ2FjeVJlY2VpdmVyIHsKIAog
ICAgIERpZFdyaXRlQmxvYnNUb1RlbXBvcmFyeUZpbGVzKHVpbnQ2NF90IHJlcXVlc3RJZGVudGlm
aWVyLCBWZWN0b3I8U3RyaW5nPiBmaWxlbmFtZXMpCiAgICAgRGlkRmluaXNoUGluZ0xvYWQodWlu
dDY0X3QgcGluZ0xvYWRJZGVudGlmaWVyLCBXZWJDb3JlOjpSZXNvdXJjZUVycm9yIGVycm9yKQor
ICAgIERpZEZpbmlzaFByZWNvbm5lY3Rpb24odWludDY0X3QgcHJlY29ubmVjdGlvbklkZW50aWZp
ZXIsIFdlYkNvcmU6OlJlc291cmNlRXJyb3IgZXJyb3IpCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvTmV0d29yay9XZWJMb2FkZXJTdHJhdGVneS5jcHAgYi9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvTmV0d29yay9XZWJMb2FkZXJTdHJhdGVneS5jcHAKaW5kZXggZWE3
YjE3YTNkZWI2MWI5N2U0NWNlMWJlOTg1NWQ2ZmRkNDA4NWVlNC4uNzZmMTg2Njc1ZGQ5YmViMGY3
ODA0ZDFkYzA5OTY0NTBiNWU4NjA1OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL05ldHdvcmsvV2ViTG9hZGVyU3RyYXRlZ3kuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9OZXR3b3JrL1dlYkxvYWRlclN0cmF0ZWd5LmNwcApAQCAtMzU2LDYgKzM1NiwxMCBA
QCB2b2lkIFdlYkxvYWRlclN0cmF0ZWd5OjpuZXR3b3JrUHJvY2Vzc0NyYXNoZWQoKQogICAgIGF1
dG8gcGluZ0xvYWRDb21wbGV0aW9uSGFuZGxlcnMgPSBXVEZNb3ZlKG1fcGluZ0xvYWRDb21wbGV0
aW9uSGFuZGxlcnMpOwogICAgIGZvciAoYXV0byYgcGluZ0xvYWRDb21wbGV0aW9uSGFuZGxlciA6
IHBpbmdMb2FkQ29tcGxldGlvbkhhbmRsZXJzLnZhbHVlcygpKQogICAgICAgICBwaW5nTG9hZENv
bXBsZXRpb25IYW5kbGVyKGludGVybmFsRXJyb3IoVVJMKCkpKTsKKworICAgIGF1dG8gcHJlY29u
bmVjdENvbXBsZXRpb25IYW5kbGVycyA9IFdURk1vdmUobV9wcmVjb25uZWN0Q29tcGxldGlvbkhh
bmRsZXJzKTsKKyAgICBmb3IgKGF1dG8mIHByZWNvbm5lY3RDb21wbGV0aW9uSGFuZGxlciA6IHBy
ZWNvbm5lY3RDb21wbGV0aW9uSGFuZGxlcnMudmFsdWVzKCkpCisgICAgICAgIHByZWNvbm5lY3RD
b21wbGV0aW9uSGFuZGxlcihpbnRlcm5hbEVycm9yKFVSTCgpKSk7CiB9CiAKIHZvaWQgV2ViTG9h
ZGVyU3RyYXRlZ3k6OmxvYWRSZXNvdXJjZVN5bmNocm9ub3VzbHkoTmV0d29ya2luZ0NvbnRleHQq
IGNvbnRleHQsIHVuc2lnbmVkIGxvbmcgcmVzb3VyY2VMb2FkSWRlbnRpZmllciwgY29uc3QgUmVz
b3VyY2VSZXF1ZXN0JiByZXF1ZXN0LCBTdG9yZWRDcmVkZW50aWFsc1BvbGljeSBzdG9yZWRDcmVk
ZW50aWFsc1BvbGljeSwgQ2xpZW50Q3JlZGVudGlhbFBvbGljeSBjbGllbnRDcmVkZW50aWFsUG9s
aWN5LCBSZXNvdXJjZUVycm9yJiBlcnJvciwgUmVzb3VyY2VSZXNwb25zZSYgcmVzcG9uc2UsIFZl
Y3RvcjxjaGFyPiYgZGF0YSkKQEAgLTM5Miw3ICszOTYsNyBAQCB2b2lkIFdlYkxvYWRlclN0cmF0
ZWd5Ojpsb2FkUmVzb3VyY2VTeW5jaHJvbm91c2x5KE5ldHdvcmtpbmdDb250ZXh0KiBjb250ZXh0
LCB1bgogICAgIH0KIH0KIAotc3RhdGljIHVpbnQ2NF90IGdlbmVyYXRlUGluZ0xvYWRJZGVudGlm
aWVyKCkKK3N0YXRpYyB1aW50NjRfdCBnZW5lcmF0ZUxvYWRJZGVudGlmaWVyKCkKIHsKICAgICBz
dGF0aWMgdWludDY0X3QgaWRlbnRpZmllciA9IDA7CiAgICAgcmV0dXJuICsraWRlbnRpZmllcjsK
QEAgLTQyMiw3ICs0MjYsNyBAQCB2b2lkIFdlYkxvYWRlclN0cmF0ZWd5OjpzdGFydFBpbmdMb2Fk
KEZyYW1lJiBmcmFtZSwgUmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0LCBjbwogICAgIH0KICAgICAK
ICAgICBOZXR3b3JrUmVzb3VyY2VMb2FkUGFyYW1ldGVycyBsb2FkUGFyYW1ldGVyczsKLSAgICBs
b2FkUGFyYW1ldGVycy5pZGVudGlmaWVyID0gZ2VuZXJhdGVQaW5nTG9hZElkZW50aWZpZXIoKTsK
KyAgICBsb2FkUGFyYW1ldGVycy5pZGVudGlmaWVyID0gZ2VuZXJhdGVMb2FkSWRlbnRpZmllcigp
OwogICAgIGxvYWRQYXJhbWV0ZXJzLnJlcXVlc3QgPSByZXF1ZXN0OwogICAgIGxvYWRQYXJhbWV0
ZXJzLnNvdXJjZU9yaWdpbiA9ICZkb2N1bWVudC0+c2VjdXJpdHlPcmlnaW4oKTsKICAgICBsb2Fk
UGFyYW1ldGVycy5zZXNzaW9uSUQgPSB3ZWJQYWdlID8gd2ViUGFnZS0+c2Vzc2lvbklEKCkgOiBQ
QUw6OlNlc3Npb25JRDo6ZGVmYXVsdFNlc3Npb25JRCgpOwpAQCAtNDU5LDYgKzQ2MywyMCBAQCB2
b2lkIFdlYkxvYWRlclN0cmF0ZWd5OjpkaWRGaW5pc2hQaW5nTG9hZCh1aW50NjRfdCBwaW5nTG9h
ZElkZW50aWZpZXIsIFJlc291cmNlRQogICAgICAgICBjb21wbGV0aW9uSGFuZGxlcihXVEZNb3Zl
KGVycm9yKSk7CiB9CiAKK3ZvaWQgV2ViTG9hZGVyU3RyYXRlZ3k6OnByZWNvbm5lY3RUbyhQQUw6
OlNlc3Npb25JRCBzZXNzaW9uSUQsIGNvbnN0IFdlYkNvcmU6OlVSTCYgdXJsLCBTdG9yZWRDcmVk
ZW50aWFsc1BvbGljeSBzdG9yZWRDcmVkZW50aWFsc1BvbGljeSwgUHJlY29ubmVjdENvbXBsZXRp
b25IYW5kbGVyJiYgY29tcGxldGlvbkhhbmRsZXIpCit7CisgICAgdWludDY0X3QgcHJlY29ubmVj
dGlvbklkZW50aWZpZXIgPSBnZW5lcmF0ZUxvYWRJZGVudGlmaWVyKCk7CisgICAgYXV0byBhZGRS
ZXN1bHQgPSBtX3ByZWNvbm5lY3RDb21wbGV0aW9uSGFuZGxlcnMuYWRkKHByZWNvbm5lY3Rpb25J
ZGVudGlmaWVyLCBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKSk7CisgICAgQVNTRVJUX1VOVVNF
RChhZGRSZXN1bHQsIGFkZFJlc3VsdC5pc05ld0VudHJ5KTsKKyAgICBXZWJQcm9jZXNzOjpzaW5n
bGV0b24oKS5uZXR3b3JrQ29ubmVjdGlvbigpLmNvbm5lY3Rpb24oKS5zZW5kKE1lc3NhZ2VzOjpO
ZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzczo6UHJlY29ubmVjdFRvKHNlc3Npb25JRCwgcHJl
Y29ubmVjdGlvbklkZW50aWZpZXIsIHVybCwgc3RvcmVkQ3JlZGVudGlhbHNQb2xpY3kpLCAwKTsK
K30KKwordm9pZCBXZWJMb2FkZXJTdHJhdGVneTo6ZGlkRmluaXNoUHJlY29ubmVjdGlvbih1aW50
NjRfdCBwcmVjb25uZWN0aW9uSWRlbnRpZmllciwgUmVzb3VyY2VFcnJvciYmIGVycm9yKQorewor
ICAgIGlmIChhdXRvIGNvbXBsZXRpb25IYW5kbGVyID0gbV9wcmVjb25uZWN0Q29tcGxldGlvbkhh
bmRsZXJzLnRha2UocHJlY29ubmVjdGlvbklkZW50aWZpZXIpKQorICAgICAgICBjb21wbGV0aW9u
SGFuZGxlcihXVEZNb3ZlKGVycm9yKSk7Cit9CisKIHZvaWQgV2ViTG9hZGVyU3RyYXRlZ3k6OnN0
b3JlRGVyaXZlZERhdGFUb0NhY2hlKGNvbnN0IFNIQTE6OkRpZ2VzdCYgYm9keUhhc2gsIGNvbnN0
IFN0cmluZyYgdHlwZSwgY29uc3QgU3RyaW5nJiBwYXJ0aXRpb24sIFdlYkNvcmU6OlNoYXJlZEJ1
ZmZlciYgZGF0YSkKIHsKICNpZiBFTkFCTEUoTkVUV09SS19DQUNIRSkKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9OZXR3b3JrL1dlYkxvYWRlclN0cmF0ZWd5LmggYi9Tb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvTmV0d29yay9XZWJMb2FkZXJTdHJhdGVneS5oCmluZGV4IDU3
MzAyOGU1YTdiNjU3NWEyMzY4MWZmNTAyNjI5NGNlYTlhODdkMmQuLjcyNTZiNWQzNzMwNzgyZmZi
OTU1ZWFjZjQxNjlhZDBkYjU5ZDJlZDkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9OZXR3b3JrL1dlYkxvYWRlclN0cmF0ZWd5LmgKKysrIGIvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL05ldHdvcmsvV2ViTG9hZGVyU3RyYXRlZ3kuaApAQCAtNjIsNiArNjIsOSBAQCBwdWJs
aWM6CiAgICAgdm9pZCBzdGFydFBpbmdMb2FkKFdlYkNvcmU6OkZyYW1lJiwgV2ViQ29yZTo6UmVz
b3VyY2VSZXF1ZXN0JiwgY29uc3QgV2ViQ29yZTo6SFRUUEhlYWRlck1hcCYgb3JpZ2luYWxSZXF1
ZXN0SGVhZGVycywgY29uc3QgV2ViQ29yZTo6RmV0Y2hPcHRpb25zJiwgUGluZ0xvYWRDb21wbGV0
aW9uSGFuZGxlciYmKSBmaW5hbDsKICAgICB2b2lkIGRpZEZpbmlzaFBpbmdMb2FkKHVpbnQ2NF90
IHBpbmdMb2FkSWRlbnRpZmllciwgV2ViQ29yZTo6UmVzb3VyY2VFcnJvciYmKTsKIAorICAgIHZv
aWQgcHJlY29ubmVjdFRvKFBBTDo6U2Vzc2lvbklELCBjb25zdCBXZWJDb3JlOjpVUkwmLCBXZWJD
b3JlOjpTdG9yZWRDcmVkZW50aWFsc1BvbGljeSwgUHJlY29ubmVjdENvbXBsZXRpb25IYW5kbGVy
JiYpIGZpbmFsOworICAgIHZvaWQgZGlkRmluaXNoUHJlY29ubmVjdGlvbih1aW50NjRfdCBwcmVj
b25uZWN0aW9uSWRlbnRpZmllciwgV2ViQ29yZTo6UmVzb3VyY2VFcnJvciYmKTsKKwogICAgIHZv
aWQgc3RvcmVEZXJpdmVkRGF0YVRvQ2FjaGUoY29uc3QgU0hBMTo6RGlnZXN0JiBib2R5SGFzaCwg
Y29uc3QgU3RyaW5nJiB0eXBlLCBjb25zdCBTdHJpbmcmIHBhcnRpdGlvbiwgV2ViQ29yZTo6U2hh
cmVkQnVmZmVyJikgZmluYWw7CiAKICAgICB2b2lkIHNldENhcHR1cmVFeHRyYU5ldHdvcmtMb2Fk
TWV0cmljc0VuYWJsZWQoYm9vbCkgZmluYWw7CkBAIC04Niw2ICs4OSw3IEBAIHByaXZhdGU6CiAg
ICAgSGFzaE1hcDx1bnNpZ25lZCBsb25nLCBSZWZQdHI8V2ViUmVzb3VyY2VMb2FkZXI+PiBtX3dl
YlJlc291cmNlTG9hZGVyczsKICAgICBIYXNoTWFwPHVuc2lnbmVkIGxvbmcsIFdlYlVSTFNjaGVt
ZVRhc2tQcm94eSo+IG1fdXJsU2NoZW1lVGFza3M7CiAgICAgSGFzaE1hcDx1bnNpZ25lZCBsb25n
LCBQaW5nTG9hZENvbXBsZXRpb25IYW5kbGVyPiBtX3BpbmdMb2FkQ29tcGxldGlvbkhhbmRsZXJz
OworICAgIEhhc2hNYXA8dW5zaWduZWQgbG9uZywgUHJlY29ubmVjdENvbXBsZXRpb25IYW5kbGVy
PiBtX3ByZWNvbm5lY3RDb21wbGV0aW9uSGFuZGxlcnM7CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBX
ZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBh
Z2UuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAKaW5k
ZXggMWVhN2EzYzJmNWI3YTU4MzE5NTQ3ZTk2YTcyOTExMzc1M2IwNGM3ZC4uMTcwZWRmN2ZjNDk3
YzNjNzcxMDVmYzA2OTFhZGZiZTAzYmY1NTIzYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAKQEAgLTMwOTAsNiArMzA5MCw3IEBAIHZvaWQgV2ViUGFn
ZTo6dXBkYXRlUHJlZmVyZW5jZXMoY29uc3QgV2ViUHJlZmVyZW5jZXNTdG9yZSYgc3RvcmUpCiAg
ICAgc2V0dGluZ3Muc2V0UGFnaW5hdGVEdXJpbmdMYXlvdXRFbmFibGVkKHN0b3JlLmdldEJvb2xW
YWx1ZUZvcktleShXZWJQcmVmZXJlbmNlc0tleTo6cGFnaW5hdGVEdXJpbmdMYXlvdXRFbmFibGVk
S2V5KCkpKTsKICAgICBzZXR0aW5ncy5zZXRET01QYXN0ZUFsbG93ZWQoc3RvcmUuZ2V0Qm9vbFZh
bHVlRm9yS2V5KFdlYlByZWZlcmVuY2VzS2V5Ojpkb21QYXN0ZUFsbG93ZWRLZXkoKSkpOwogICAg
IHNldHRpbmdzLnNldEphdmFTY3JpcHRDYW5BY2Nlc3NDbGlwYm9hcmQoc3RvcmUuZ2V0Qm9vbFZh
bHVlRm9yS2V5KFdlYlByZWZlcmVuY2VzS2V5OjpqYXZhU2NyaXB0Q2FuQWNjZXNzQ2xpcGJvYXJk
S2V5KCkpKTsKKyAgICBzZXR0aW5ncy5zZXRMaW5rUHJlY29ubmVjdEVuYWJsZWQoc3RvcmUuZ2V0
Qm9vbFZhbHVlRm9yS2V5KFdlYlByZWZlcmVuY2VzS2V5OjpsaW5rUHJlY29ubmVjdEtleSgpKSk7
CiAgICAgc2V0dGluZ3Muc2V0U2hvdWxkUHJpbnRCYWNrZ3JvdW5kcyhzdG9yZS5nZXRCb29sVmFs
dWVGb3JLZXkoV2ViUHJlZmVyZW5jZXNLZXk6OnNob3VsZFByaW50QmFja2dyb3VuZHNLZXkoKSkp
OwogICAgIHNldHRpbmdzLnNldFdlYlNlY3VyaXR5RW5hYmxlZChzdG9yZS5nZXRCb29sVmFsdWVG
b3JLZXkoV2ViUHJlZmVyZW5jZXNLZXk6OndlYlNlY3VyaXR5RW5hYmxlZEtleSgpKSk7CiAgICAg
c2V0dGluZ3Muc2V0QWxsb3dVbml2ZXJzYWxBY2Nlc3NGcm9tRmlsZVVSTHMoc3RvcmUuZ2V0Qm9v
bFZhbHVlRm9yS2V5KFdlYlByZWZlcmVuY2VzS2V5OjphbGxvd1VuaXZlcnNhbEFjY2Vzc0Zyb21G
aWxlVVJMc0tleSgpKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2NvbmZpZy5oIGIvU291
cmNlL1dlYktpdC9jb25maWcuaAppbmRleCBlODY3ZjQ4N2M3MTg5MTRmNGQ4OWYyMTlkYTAzOTFj
OTUxNzBiNmQ2Li5jYWY0ZmQ3N2JjYTkwOWQ3YzY0OWNhNjdhMTYxNzFiNzllNGQyN2JhIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2NvbmZpZy5oCisrKyBiL1NvdXJjZS9XZWJLaXQvY29uZmln
LmgKQEAgLTg4LDYgKzg4LDEyIEBACiAjZW5kaWYKICNlbmRpZgogCisjaWYgVVNFKE5FVFdPUktf
U0VTU0lPTikgJiYgKChQTEFURk9STShNQUMpICYmIF9fTUFDX09TX1hfVkVSU0lPTl9NSU5fUkVR
VUlSRUQgPj0gMTAxMzAwKSB8fCAoUExBVEZPUk0oSU9TKSAmJiBfX0lQSE9ORV9PU19WRVJTSU9O
X01JTl9SRVFVSVJFRCA+PSAxMTAwMDApKQorI2lmbmRlZiBFTkFCTEVfU0VSVkVSX1BSRUNPTk5F
Q1QKKyNkZWZpbmUgRU5BQkxFX1NFUlZFUl9QUkVDT05ORUNUIDEKKyNlbmRpZgorI2VuZGlmCisK
ICNpZm5kZWYgSEFWRV9TRUNfQUNDRVNTX0NPTlRST0wKICNpZiBQTEFURk9STShJT1MpIHx8IFBM
QVRGT1JNKE1BQykKICNkZWZpbmUgSEFWRV9TRUNfQUNDRVNTX0NPTlRST0wgMQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdExlZ2FjeS9XZWJDb3JlU3VwcG9ydC9XZWJSZXNvdXJjZUxvYWRTY2hl
ZHVsZXIuY3BwIGIvU291cmNlL1dlYktpdExlZ2FjeS9XZWJDb3JlU3VwcG9ydC9XZWJSZXNvdXJj
ZUxvYWRTY2hlZHVsZXIuY3BwCmluZGV4IDRkMjk4NWQxYTQzMGJjMWJkOWJmMjYzYjg5ZTk4MWNm
NjNjNWNjMzUuLjc5NzViZDNlYTM1OWRlOWRlNjYwMjU3Y2ViZGQ2YTY4NjAwYTk4NzMgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvV2ViQ29yZVN1cHBvcnQvV2ViUmVzb3VyY2VMb2Fk
U2NoZWR1bGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L1dlYkNvcmVTdXBwb3J0L1dl
YlJlc291cmNlTG9hZFNjaGVkdWxlci5jcHAKQEAgLTM2OSwzICszNjksNyBAQCB2b2lkIFdlYlJl
c291cmNlTG9hZFNjaGVkdWxlcjo6c3RhcnRQaW5nTG9hZChGcmFtZSYgZnJhbWUsIFJlc291cmNl
UmVxdWVzdCYgcmVxdQogICAgIG5ldyBQaW5nSGFuZGxlKGZyYW1lLmxvYWRlcigpLm5ldHdvcmtp
bmdDb250ZXh0KCksIHJlcXVlc3QsIG9wdGlvbnMuY3JlZGVudGlhbHMgIT0gRmV0Y2hPcHRpb25z
OjpDcmVkZW50aWFsczo6T21pdCwgUGluZ0hhbmRsZTo6VXNlc0FzeW5jQ2FsbGJhY2tzOjpObywg
b3B0aW9ucy5yZWRpcmVjdCA9PSBGZXRjaE9wdGlvbnM6OlJlZGlyZWN0OjpGb2xsb3csIFdURk1v
dmUoY29tcGxldGlvbkhhbmRsZXIpKTsKIH0KIAordm9pZCBXZWJSZXNvdXJjZUxvYWRTY2hlZHVs
ZXI6OnByZWNvbm5lY3RUbyhQQUw6OlNlc3Npb25JRCwgY29uc3QgVVJMJiwgU3RvcmVkQ3JlZGVu
dGlhbHNQb2xpY3ksIFByZWNvbm5lY3RDb21wbGV0aW9uSGFuZGxlciYmKQoreworfQorCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L1dlYkNvcmVTdXBwb3J0L1dlYlJlc291cmNlTG9h
ZFNjaGVkdWxlci5oIGIvU291cmNlL1dlYktpdExlZ2FjeS9XZWJDb3JlU3VwcG9ydC9XZWJSZXNv
dXJjZUxvYWRTY2hlZHVsZXIuaAppbmRleCAwZTBjMmRlNTc3YzdjMmNmNzc2YTdmYTE2MWRkZGQ2
Yjc1ZDEwOGE0Li5lY2ZjMWNmYjM1ZWRlYzRlMzRjOGI2ZTY2Nzk1YmM2NDhmNWIxZTcxIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L1dlYkNvcmVTdXBwb3J0L1dlYlJlc291cmNlTG9h
ZFNjaGVkdWxlci5oCisrKyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvV2ViQ29yZVN1cHBvcnQvV2Vi
UmVzb3VyY2VMb2FkU2NoZWR1bGVyLmgKQEAgLTYxLDYgKzYxLDggQEAgcHVibGljOgogCiAgICAg
dm9pZCBzdGFydFBpbmdMb2FkKFdlYkNvcmU6OkZyYW1lJiwgV2ViQ29yZTo6UmVzb3VyY2VSZXF1
ZXN0JiwgY29uc3QgV2ViQ29yZTo6SFRUUEhlYWRlck1hcCYsIGNvbnN0IFdlYkNvcmU6OkZldGNo
T3B0aW9ucyYsIFBpbmdMb2FkQ29tcGxldGlvbkhhbmRsZXImJikgZmluYWw7CiAKKyAgICB2b2lk
IHByZWNvbm5lY3RUbyhQQUw6OlNlc3Npb25JRCwgY29uc3QgV2ViQ29yZTo6VVJMJiwgV2ViQ29y
ZTo6U3RvcmVkQ3JlZGVudGlhbHNQb2xpY3ksIFByZWNvbm5lY3RDb21wbGV0aW9uSGFuZGxlciYm
KSBmaW5hbDsKKwogICAgIHZvaWQgc3RvcmVEZXJpdmVkRGF0YVRvQ2FjaGUoY29uc3QgU0hBMTo6
RGlnZXN0JiwgY29uc3QgU3RyaW5nJiwgY29uc3QgU3RyaW5nJiwgV2ViQ29yZTo6U2hhcmVkQnVm
ZmVyJikgZmluYWwgeyB9CiAKICAgICB2b2lkIHNldENhcHR1cmVFeHRyYU5ldHdvcmtMb2FkTWV0
cmljc0VuYWJsZWQoYm9vbCkgZmluYWwgeyB9CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFu
Z2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggODg3NmU2NzY3NWQ2ZTk2YTM0OTRi
NjRlMzNjYmM1YTRiMjVlMmE0Ny4uN2NjYjcxNTM0YzVlNDhhY2NiNTc5ZGJhYzE1OGUxMzdiMDIw
MWRhMSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3Rz
L0NoYW5nZUxvZwpAQCAtMSwzICsxLDI1IEBACisyMDE3LTA5LTI3ICBDaHJpcyBEdW1leiAgPGNk
dW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgQWRkIHN1cHBvcnQgZm9yIDxsaW5rIHJlbD1wcmVj
b25uZWN0PgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
MTc3NDc0CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS8zMzE0MTM4MD4KKworICAgICAgICBSZXZp
ZXdlZCBieSBBbGV4IENocmlzdGVuc2VuLgorCisgICAgICAgICogZmFzdC9kb20vSFRNTExpbmtF
bGVtZW50L3ByZWNvbm5lY3Qtc3VwcG9ydC1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAq
IGZhc3QvZG9tL0hUTUxMaW5rRWxlbWVudC9wcmVjb25uZWN0LXN1cHBvcnQuaHRtbDogQWRkZWQu
CisgICAgICAgICogaHR0cC90ZXN0cy9wcmVjb25uZWN0L2xpbmstcmVsLXByZWNvbm5lY3QtaHR0
cC1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvcHJlY29ubmVjdC9s
aW5rLXJlbC1wcmVjb25uZWN0LWh0dHAuaHRtbDogQWRkZWQuCisgICAgICAgICogaHR0cC90ZXN0
cy9wcmVjb25uZWN0L2xpbmstcmVsLXByZWNvbm5lY3QtaHR0cHMtZXhwZWN0ZWQudHh0OiBBZGRl
ZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL3ByZWNvbm5lY3QvbGluay1yZWwtcHJlY29ubmVjdC1o
dHRwcy5odG1sOiBBZGRlZC4KKyAgICAgICAgQWRkIGxheW91dCB0ZXN0IGNvdmVyYWdlLgorCisg
ICAgICAgICogcGxhdGZvcm0vbWFjLWVsY2FwaXRhbi13azIvZmFzdC9kb20vSFRNTExpbmtFbGVt
ZW50L3ByZWNvbm5lY3Qtc3VwcG9ydC1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIHBs
YXRmb3JtL21hYy13azEvVGVzdEV4cGVjdGF0aW9uczoKKyAgICAgICAgKiBwbGF0Zm9ybS9tYWMt
d2sxL2Zhc3QvZG9tL0hUTUxMaW5rRWxlbWVudC9wcmVjb25uZWN0LXN1cHBvcnQtZXhwZWN0ZWQu
dHh0OiBBZGRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9tYWMtd2syL1Rlc3RFeHBlY3RhdGlvbnM6
CisgICAgICAgIFNraXAgb3IgbGFuZCBmYWlsdXJlIGV4cGVjdGF0aW9ucyBmb3IgcGxhdGZvcm1z
IHdoZXJlIHRoZSBmZWF0dXJlIGlzIGRpc2FibGVkLgorCiAyMDE3LTA5LTI3ICBBbnR0aSBLb2l2
aXN0byAgPGFudHRpQGFwcGxlLmNvbT4KIAogICAgICAgICBSRUdSRVNTSU9OIChyMjIyMDQwKTog
Q3Jhc2ggbmF2aWdhdGluZyBvdXQgb2YgZ2Z5Y2F0LmNvbSB1cmwKZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2Zhc3QvZG9tL0hUTUxMaW5rRWxlbWVudC9wcmVjb25uZWN0LXN1cHBvcnQtZXhwZWN0
ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vSFRNTExpbmtFbGVtZW50L3ByZWNvbm5lY3Qt
c3VwcG9ydC1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYzVhM2Y1ZDcxZWIwYzRkNzhlMzM0MzFj
NDY2Y2I5OGU2OThkMmNkMwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZG9t
L0hUTUxMaW5rRWxlbWVudC9wcmVjb25uZWN0LXN1cHBvcnQtZXhwZWN0ZWQudHh0CkBAIC0wLDAg
KzEsMTIgQEAKK1Rlc3RzIHRoYXQgTGluaydzIHJlbD1wcmVjb25uZWN0IGlzIHJlcG9ydGVkIGFz
IHN1cHBvcnRlZC4KKworT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNT
IiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCisKK1BBU1MgdGVzdExp
bmsucmVsTGlzdC5sZW5ndGggaXMgMQorUEFTUyB0ZXN0TGluay5yZWxMaXN0WzBdIGlzICJwcmVj
b25uZWN0IgorUEFTUyB0ZXN0TGluay5yZWxMaXN0LnN1cHBvcnRzKCdwcmVjb25uZWN0JykgaXMg
dHJ1ZQorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisK
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZG9tL0hUTUxMaW5rRWxlbWVudC9wcmVjb25u
ZWN0LXN1cHBvcnQuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL0hUTUxMaW5rRWxlbWVudC9w
cmVjb25uZWN0LXN1cHBvcnQuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5iNmNkMzEyMDdhYjY0MWNlMDFkMjQw
MGJlM2M3MDdjNjU0MTk3NzJjCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9k
b20vSFRNTExpbmtFbGVtZW50L3ByZWNvbm5lY3Qtc3VwcG9ydC5odG1sCkBAIC0wLDAgKzEsMTkg
QEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKzxzY3JpcHQgc3JjPSIuLi8uLi8u
Li9yZXNvdXJjZXMvanMtdGVzdC5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxzY3Jp
cHQ+CitkZXNjcmlwdGlvbigiVGVzdHMgdGhhdCBMaW5rJ3MgcmVsPXByZWNvbm5lY3QgaXMgcmVw
b3J0ZWQgYXMgc3VwcG9ydGVkLiIpOworCitjb25zdCB0ZXN0TGluayA9IGRvY3VtZW50LmNyZWF0
ZUVsZW1lbnQoImxpbmsiKTsKK3Rlc3RMaW5rLnJlbCA9ICJwcmVjb25uZWN0IjsKK3Rlc3RMaW5r
LmhyZWYgPSAiaHR0cDovL2xvY2FsaG9zdDo4MDAwIjsKKworc2hvdWxkQmUoInRlc3RMaW5rLnJl
bExpc3QubGVuZ3RoIiwgIjEiKTsKK3Nob3VsZEJlRXF1YWxUb1N0cmluZygidGVzdExpbmsucmVs
TGlzdFswXSIsICJwcmVjb25uZWN0Iik7CitzaG91bGRCZVRydWUoInRlc3RMaW5rLnJlbExpc3Qu
c3VwcG9ydHMoJ3ByZWNvbm5lY3QnKSIpOworPC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3ByZWNvbm5lY3QvbGluay1yZWwtcHJl
Y29ubmVjdC1odHRwLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcHJlY29u
bmVjdC9saW5rLXJlbC1wcmVjb25uZWN0LWh0dHAtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjZk
MDgwMmYzZWU3MzlkZmFjZDIyNzMwYzNiZWJjNTMwMDcwZTYxYjQKLS0tIC9kZXYvbnVsbAorKysg
Yi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3ByZWNvbm5lY3QvbGluay1yZWwtcHJlY29ubmVjdC1o
dHRwLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDEwIEBACitDT05TT0xFIE1FU1NBR0U6IFN1Y2Nl
c3NmdWx5IHByZWNvbm5lY3RlZCB0byBodHRwOi8vbG9jYWxob3N0OjgwMDAvCitUZXN0cyB0aGF0
IExpbmsncyByZWw9cHJlY29ubmVjdCB3b3JrcyBhcyBleHBlY3RlZCBvdmVyIEhUVFAuCisKK09u
IHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxv
d2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKworCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0
cnVlCisKK1RFU1QgQ09NUExFVEUKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0
cy9wcmVjb25uZWN0L2xpbmstcmVsLXByZWNvbm5lY3QtaHR0cC5odG1sIGIvTGF5b3V0VGVzdHMv
aHR0cC90ZXN0cy9wcmVjb25uZWN0L2xpbmstcmVsLXByZWNvbm5lY3QtaHR0cC5odG1sCm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAuLjBiMWU0MzIyYzczNDYxZTA5NTMyMGEyZWQ5N2QwM2QzZDNlYWUxZWUKLS0tIC9kZXYv
bnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3ByZWNvbm5lY3QvbGluay1yZWwtcHJl
Y29ubmVjdC1odHRwLmh0bWwKQEAgLTAsMCArMSwyMSBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRt
bD4KKzxoZWFkPgorPHNjcmlwdCBzcmM9Ii9qcy10ZXN0LXJlc291cmNlcy9qcy10ZXN0LmpzIj48
L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPHNjcmlwdD4KK2Rlc2NyaXB0aW9uKCJUZXN0cyB0
aGF0IExpbmsncyByZWw9cHJlY29ubmVjdCB3b3JrcyBhcyBleHBlY3RlZCBvdmVyIEhUVFAuIik7
Citqc1Rlc3RJc0FzeW5jID0gdHJ1ZTsKKworaW50ZXJuYWxzLnNldENvbnNvbGVNZXNzYWdlTGlz
dGVuZXIoZnVuY3Rpb24oKSB7CisgICAgZmluaXNoSlNUZXN0KCk7Cit9KTsKKworY29uc3QgdGVz
dExpbmsgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJsaW5rIik7Cit0ZXN0TGluay5yZWwgPSAi
cHJlY29ubmVjdCI7Cit0ZXN0TGluay5ocmVmID0gImh0dHA6Ly9sb2NhbGhvc3Q6ODAwMCI7Citk
b2N1bWVudC5oZWFkLmFwcGVuZENoaWxkKHRlc3RMaW5rKTsKKzwvc2NyaXB0PgorPC9ib2R5Pgor
PC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9wcmVjb25uZWN0L2xp
bmstcmVsLXByZWNvbm5lY3QtaHR0cHMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaHR0cC90
ZXN0cy9wcmVjb25uZWN0L2xpbmstcmVsLXByZWNvbm5lY3QtaHR0cHMtZXhwZWN0ZWQudHh0Cm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAuLjNjMTRlMjMzZjc3OGNmMWY4M2FkMGZhYTFjZDI3ZmRkMmVjM2ZhNDgKLS0tIC9k
ZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3ByZWNvbm5lY3QvbGluay1yZWwt
cHJlY29ubmVjdC1odHRwcy1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwxMCBAQAorQ09OU09MRSBN
RVNTQUdFOiBGYWlsZWQgdG8gcHJlY29ubmVjdCB0byBodHRwczovL2xvY2FsaG9zdDo4NDQzLy4g
RXJyb3I6IFRoZSBjZXJ0aWZpY2F0ZSBmb3IgdGhpcyBzZXJ2ZXIgaXMgaW52YWxpZC4gWW91IG1p
Z2h0IGJlIGNvbm5lY3RpbmcgdG8gYSBzZXJ2ZXIgdGhhdCBpcyBwcmV0ZW5kaW5nIHRvIGJlIOKA
nGxvY2FsaG9zdOKAnSB3aGljaCBjb3VsZCBwdXQgeW91ciBjb25maWRlbnRpYWwgaW5mb3JtYXRp
b24gYXQgcmlzay4KK1Rlc3RzIHRoYXQgTGluaydzIHJlbD1wcmVjb25uZWN0IHdvcmtzIGFzIGV4
cGVjdGVkIG92ZXIgSFRUUFMuCisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBv
ZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKworCitQQVNT
IHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9wcmVjb25uZWN0L2xpbmstcmVsLXByZWNvbm5lY3Qt
aHR0cHMuaHRtbCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcHJlY29ubmVjdC9saW5rLXJlbC1w
cmVjb25uZWN0LWh0dHBzLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZWZkOTQwMDUyNjgxYjkzOGQ0MTlkMzgw
Njk2MDI0Mzg5MDczYmRhMgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVz
dHMvcHJlY29ubmVjdC9saW5rLXJlbC1wcmVjb25uZWN0LWh0dHBzLmh0bWwKQEAgLTAsMCArMSwy
MSBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorPHNjcmlwdCBzcmM9Ii9qcy10
ZXN0LXJlc291cmNlcy9qcy10ZXN0LmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPHNj
cmlwdD4KK2Rlc2NyaXB0aW9uKCJUZXN0cyB0aGF0IExpbmsncyByZWw9cHJlY29ubmVjdCB3b3Jr
cyBhcyBleHBlY3RlZCBvdmVyIEhUVFBTLiIpOworanNUZXN0SXNBc3luYyA9IHRydWU7CisKK2lu
dGVybmFscy5zZXRDb25zb2xlTWVzc2FnZUxpc3RlbmVyKGZ1bmN0aW9uKCkgeworICAgIGZpbmlz
aEpTVGVzdCgpOworfSk7CisKK2NvbnN0IHRlc3RMaW5rID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVu
dCgibGluayIpOwordGVzdExpbmsucmVsID0gInByZWNvbm5lY3QiOwordGVzdExpbmsuaHJlZiA9
ICJodHRwczovL2xvY2FsaG9zdDo4NDQzIjsKK2RvY3VtZW50LmhlYWQuYXBwZW5kQ2hpbGQodGVz
dExpbmspOworPC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9wbGF0Zm9ybS9tYWMtZWxjYXBpdGFuLXdrMi9mYXN0L2RvbS9IVE1MTGlua0VsZW1lbnQv
cHJlY29ubmVjdC1zdXBwb3J0LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL3BsYXRmb3JtL21h
Yy1lbGNhcGl0YW4td2syL2Zhc3QvZG9tL0hUTUxMaW5rRWxlbWVudC9wcmVjb25uZWN0LXN1cHBv
cnQtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjNhMjA0ZDRlNmE2MGI2MTNjM2UxNmExODU2MDhh
MmNkMjQ5MDJhOGMKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMt
ZWxjYXBpdGFuLXdrMi9mYXN0L2RvbS9IVE1MTGlua0VsZW1lbnQvcHJlY29ubmVjdC1zdXBwb3J0
LWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDEzIEBACitUZXN0cyB0aGF0IExpbmsncyByZWw9cHJl
Y29ubmVjdCBpcyByZXBvcnRlZCBhcyBzdXBwb3J0ZWQuCisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxs
IHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBM
RVRFIi4KKworCitQQVNTIHRlc3RMaW5rLnJlbExpc3QubGVuZ3RoIGlzIDEKK1BBU1MgdGVzdExp
bmsucmVsTGlzdFswXSBpcyAicHJlY29ubmVjdCIKK0ZBSUwgdGVzdExpbmsucmVsTGlzdC5zdXBw
b3J0cygncHJlY29ubmVjdCcpIHNob3VsZCBiZSB0cnVlLiBXYXMgZmFsc2UuCitQQVNTIHN1Y2Nl
c3NmdWxseVBhcnNlZCBpcyB0cnVlCitTb21lIHRlc3RzIGZhaWxlZC4KKworVEVTVCBDT01QTEVU
RQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMtd2sxL1Rlc3RFeHBlY3Rh
dGlvbnMgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMtd2sxL1Rlc3RFeHBlY3RhdGlvbnMKaW5k
ZXggODAzNzMzMzRmZWYwZjZkZTUyMDc1NTljZDdjMmQ5ZWM1MjZmYjA0My4uZWNlYjczZTQ0MjE1
MmE3OTkxNmE5N2MzOTZiZGM2YzRhMWY3ZmM0MiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvcGxh
dGZvcm0vbWFjLXdrMS9UZXN0RXhwZWN0YXRpb25zCisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3Jt
L21hYy13azEvVGVzdEV4cGVjdGF0aW9ucwpAQCAtMzk5LDYgKzM5OSw5IEBAIGZhc3QvaW1hZ2Vz
L2xvdy1tZW1vcnktZGVjb2RlLmh0bWwgWyBTa2lwIF0KIAogaHR0cC90ZXN0cy93b3JrZXJzL3Nl
cnZpY2UgWyBTa2lwIF0KIAorIyBMaW5rIHByZWNvbm5lY3QgaXMgZGlzYWJsZWQgb24gV2ViS2l0
MSBiZWNhdXNlIGl0IGRvZXMgbm90IHVzZSBORVRXT1JLX1NFU1NJT04uCitodHRwL3Rlc3RzL3By
ZWNvbm5lY3QgWyBTa2lwIF0KKwogd2Via2l0Lm9yZy9iLzE3NTM0NSBmYXN0L2ltYWdlcy9hbmlt
YXRlZC1naWYtc2Nyb2xsaW5nLWNyYXNoLmh0bWwgWyBQYXNzIFRpbWVvdXQgXQogCiB3ZWJraXQu
b3JnL2IvMTc1NTU0IFsgU2llcnJhIF0gZnVsbHNjcmVlbi9mdWxsLXNjcmVlbi1pZnJhbWUtbGVn
YWN5Lmh0bWwgWyBQYXNzIEZhaWx1cmUgXQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZv
cm0vbWFjLXdrMS9mYXN0L2RvbS9IVE1MTGlua0VsZW1lbnQvcHJlY29ubmVjdC1zdXBwb3J0LWV4
cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy13azEvZmFzdC9kb20vSFRNTExp
bmtFbGVtZW50L3ByZWNvbm5lY3Qtc3VwcG9ydC1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uM2Ey
MDRkNGU2YTYwYjYxM2MzZTE2YTE4NTYwOGEyY2QyNDkwMmE4YwotLS0gL2Rldi9udWxsCisrKyBi
L0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy13azEvZmFzdC9kb20vSFRNTExpbmtFbGVtZW50L3By
ZWNvbm5lY3Qtc3VwcG9ydC1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwxMyBAQAorVGVzdHMgdGhh
dCBMaW5rJ3MgcmVsPXByZWNvbm5lY3QgaXMgcmVwb3J0ZWQgYXMgc3VwcG9ydGVkLgorCitPbiBz
dWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dl
ZCBieSAiVEVTVCBDT01QTEVURSIuCisKKworUEFTUyB0ZXN0TGluay5yZWxMaXN0Lmxlbmd0aCBp
cyAxCitQQVNTIHRlc3RMaW5rLnJlbExpc3RbMF0gaXMgInByZWNvbm5lY3QiCitGQUlMIHRlc3RM
aW5rLnJlbExpc3Quc3VwcG9ydHMoJ3ByZWNvbm5lY3QnKSBzaG91bGQgYmUgdHJ1ZS4gV2FzIGZh
bHNlLgorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorU29tZSB0ZXN0cyBmYWlsZWQu
CisKK1RFU1QgQ09NUExFVEUKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFj
LXdrMi9UZXN0RXhwZWN0YXRpb25zIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjLXdrMi9UZXN0
RXhwZWN0YXRpb25zCmluZGV4IDA3YWI0NjhkMTNkZWNmOGRiNjNjZmViODRlMTc4MWI5NTZjMGE0
YzguLjRkYTQ0OWEwZGNjZDVmMzljYzQ1MTcxYWZhOTFkYmJjOTY3MGVjZGIgMTAwNjQ0Ci0tLSBh
L0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy13azIvVGVzdEV4cGVjdGF0aW9ucworKysgYi9MYXlv
dXRUZXN0cy9wbGF0Zm9ybS9tYWMtd2syL1Rlc3RFeHBlY3RhdGlvbnMKQEAgLTc5Myw2ICs3OTMs
OSBAQCB3ZWJraXQub3JnL2IvMTc2MTIyIG1lZGlhL3ZpZGVvLWNvbnRyb2xzLWRyb3AtYW5kLXJl
c3RvcmUtdGltZWxpbmUuaHRtbCBbIFBhc3MgRgogIyA8cmRhcjovL3Byb2JsZW0vMzM1NTU3NTk+
CiBbIEhpZ2hTaWVycmErIF0gaHR0cC90ZXN0cy9tZWRpYS92aWRlby1idWZmZXJlZC1yYW5nZS1j
b250YWlucy1jdXJyZW50VGltZS5odG1sIFsgUGFzcyBJbWFnZU9ubHlGYWlsdXJlIF0KIAorIyBM
aW5rIHByZWNvbm5lY3QgaXMgZGlzYWJsZWQgb24gcHJlLUhpZ2ggU2llcnJhIGJlY2F1c2UgdGhl
IENGTmV0d29yayBTUEkgaXMgbWlzc2luZy4KK1sgRWxDYXBpdGFuIFNpZXJyYSBdIGh0dHAvdGVz
dHMvcHJlY29ubmVjdCBbIFNraXAgXQorCiB3ZWJraXQub3JnL2IvMTc2NDg2IFsgRWxDYXBpdGFu
IERlYnVnIF0gaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9iYWNrZ3JvdW5kLWZldGNo
L2ludGVyZmFjZXMtd29ya2VyLmh0dHBzLmh0bWwgWyBQYXNzIEZhaWx1cmUgXQogCiB3ZWJraXQu
b3JnL2IvMTcxODM5IFsgRGVidWcgXSB0aWxlZC1kcmF3aW5nL3Njcm9sbGluZy9zY3JvbGwtc25h
cC9zY3JvbGwtc25hcC1tYW5kYXRvcnktbWFpbmZyYW1lLXZlcnRpY2FsLXRoZW4taG9yaXpvbnRh
bC5odG1sIFsgUGFzcyBGYWlsdXJlIF0K
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>322087</attachid>
            <date>2017-09-28 09:21:39 -0700</date>
            <delta_ts>2017-09-28 10:05:32 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-177474-20170928092138.patch</filename>
            <type>text/plain</type>
            <size>85653</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjIyNTU2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZmYxMjUwZDgyMmIwOTli
NzVjYjVhZjVlMGUwNDliODdhNTZmYzdkYS4uMTlhZDU4MTYzMjk2ZGExMDRhZDZkYjhkNjBhY2Y5
MGJkNTQzYjJiZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDU5IEBACisyMDE3LTA5LTI3ICBDaHJp
cyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgQWRkIHN1cHBvcnQgZm9yIDxs
aW5rIHJlbD1wcmVjb25uZWN0PgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9MTc3NDc0CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS8zMzE0MTM4MD4KKwor
ICAgICAgICBSZXZpZXdlZCBieSBBbGV4IENocmlzdGVuc2VuLgorCisgICAgICAgIEFkZCBzdXBw
b3J0IGZvciA8bGluayByZWw9cHJlY29ubmVjdD46CisgICAgICAgIC0gaHR0cHM6Ly93M2MuZ2l0
aHViLmlvL3Jlc291cmNlLWhpbnRzLyNwcmVjb25uZWN0CisKKyAgICAgICAgSXQgaXMgY3VycmVu
dGx5IG9ubHkgZW5hYmxlZCBmb3IgV0syIG9uIE1hY09TIEhpZ2ggU2llcnJhKworICAgICAgICBh
bmQgaU9TIDExKy4KKworICAgICAgICBUZXN0czogZmFzdC9kb20vSFRNTExpbmtFbGVtZW50L3By
ZWNvbm5lY3Qtc3VwcG9ydC5odG1sCisgICAgICAgICAgICAgICBodHRwL3Rlc3RzL3ByZWNvbm5l
Y3QvbGluay1yZWwtcHJlY29ubmVjdC1odHRwLmh0bWwKKyAgICAgICAgICAgICAgIGh0dHAvdGVz
dHMvcHJlY29ubmVjdC9saW5rLXJlbC1wcmVjb25uZWN0LWh0dHBzLmh0bWwKKworICAgICAgICAq
IGJpbmRpbmdzL2pzL0pTRE9NRXhjZXB0aW9uSGFuZGxpbmcuaDoKKyAgICAgICAgKiBiaW5kaW5n
cy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JKUy5wbToKKyAgICAgICAgKEdlbmVyYXRlQ2FsbGJhY2tI
ZWFkZXJDb250ZW50KToKKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL0lETEF0dHJpYnV0ZXMu
anNvbjoKKyAgICAgICAgKiBkb20vRG9jdW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RG9j
dW1lbnQ6OmFkZENvbnNvbGVNZXNzYWdlKToKKyAgICAgICAgKFdlYkNvcmU6OkRvY3VtZW50Ojpz
ZXRDb25zb2xlTWVzc2FnZUxpc3RlbmVyKToKKyAgICAgICAgKiBkb20vRG9jdW1lbnQuaDoKKyAg
ICAgICAgKiBkb20vU3RyaW5nQ2FsbGJhY2suaWRsOgorICAgICAgICAqIGh0bWwvRE9NVG9rZW5M
aXN0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkRPTVRva2VuTGlzdDo6RE9NVG9rZW5MaXN0KToK
KyAgICAgICAgKFdlYkNvcmU6OkRPTVRva2VuTGlzdDo6c3VwcG9ydHMpOgorICAgICAgICAqIGh0
bWwvRE9NVG9rZW5MaXN0Lmg6CisgICAgICAgIChXZWJDb3JlOjpET01Ub2tlbkxpc3Q6OkRPTVRv
a2VuTGlzdCk6CisgICAgICAgICogaHRtbC9IVE1MQW5jaG9yRWxlbWVudC5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpIVE1MQW5jaG9yRWxlbWVudDo6cmVsTGlzdCk6CisgICAgICAgICogaHRtbC9I
VE1MSUZyYW1lRWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpIVE1MSUZyYW1lRWxlbWVu
dDo6c2FuZGJveCk6CisgICAgICAgICogaHRtbC9IVE1MTGlua0VsZW1lbnQuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6SFRNTExpbmtFbGVtZW50OjpwYXJzZUF0dHJpYnV0ZSk6CisgICAgICAgIChX
ZWJDb3JlOjpIVE1MTGlua0VsZW1lbnQ6OnJlbExpc3QpOgorICAgICAgICAqIGh0bWwvTGlua1Jl
bEF0dHJpYnV0ZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpMaW5rUmVsQXR0cmlidXRlOjpMaW5r
UmVsQXR0cmlidXRlKToKKyAgICAgICAgKFdlYkNvcmU6OkxpbmtSZWxBdHRyaWJ1dGU6OmlzU3Vw
cG9ydGVkKToKKyAgICAgICAgKiBodG1sL0xpbmtSZWxBdHRyaWJ1dGUuaDoKKyAgICAgICAgKiBo
dG1sL3BhcnNlci9IVE1MUHJlbG9hZFNjYW5uZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6VG9r
ZW5QcmVsb2FkU2Nhbm5lcjo6U3RhcnRUYWdTY2FubmVyOjpwcm9jZXNzQXR0cmlidXRlKToKKyAg
ICAgICAgKiBsb2FkZXIvTGlua0xvYWRlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpMaW5rTG9h
ZGVyOjpsb2FkTGlua3NGcm9tSGVhZGVyKToKKyAgICAgICAgKFdlYkNvcmU6OkxpbmtMb2FkZXI6
OmxvYWRMaW5rKToKKyAgICAgICAgKiBsb2FkZXIvTG9hZGVyU3RyYXRlZ3kuaDoKKyAgICAgICAg
KiBwYWdlL1NldHRpbmdzLmluOgorICAgICAgICAqIHRlc3RpbmcvSW50ZXJuYWxzLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OkludGVybmFsczo6SW50ZXJuYWxzKToKKyAgICAgICAgKFdlYkNvcmU6
OkludGVybmFsczo6c2V0Q29uc29sZU1lc3NhZ2VMaXN0ZW5lcik6CisgICAgICAgICogdGVzdGlu
Zy9JbnRlcm5hbHMuaDoKKyAgICAgICAgKiB0ZXN0aW5nL0ludGVybmFscy5pZGw6CisKIDIwMTct
MDktMjcgIERhdmlkIEh5YXR0ICA8aHlhdHRAYXBwbGUuY29tPgogCiAgICAgICAgIFJlbmFtZSAi
UmVnaW9uIiB0byAiRnJhZ21lbnQiIGZvciBSZW5kZXJSZWdpb24gYW5kIGFzc29jaWF0ZWQgY2xh
c3Nlcy9tZXRob2RzLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvUEFML0NoYW5nZUxvZyBi
L1NvdXJjZS9XZWJDb3JlL1BBTC9DaGFuZ2VMb2cKaW5kZXggZTYxYzBlODQxNWY0OGFjNDQ4Nzdl
OGRhNDQ0YjAzN2NjZTY5YmI3Ni4uYTRkZDg1OWM0MGJiNmFmY2E2MWI2N2NmMmE0ZTNhMmU5NzQx
ZjMyYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvUEFML0NoYW5nZUxvZworKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9QQUwvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTUgQEAKKzIwMTctMDktMjYgIENo
cmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KKworICAgICAgICBBZGQgc3VwcG9ydCBmb3Ig
PGxpbmsgcmVsPXByZWNvbm5lY3Q+CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0xNzc0NzQKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzMzMTQxMzgwPgor
CisgICAgICAgIFJldmlld2VkIGJ5IEFsZXggQ2hyaXN0ZW5zZW4uCisKKyAgICAgICAgQWRkIG5l
dyBDRk5ldHdvcmsgU1BJIGZvciBwcmVjb25uZWN0aW5nLgorCisgICAgICAgICogcGFsL3NwaS9j
Zi9DRk5ldHdvcmtTUEkuaDoKKwogMjAxNy0wOS0yNiAgRG9uIE9sbXN0ZWFkICA8ZG9uLm9sbXN0
ZWFkQHNvbnkuY29tPgogCiAgICAgICAgIFtQQUxdW0NNYWtlXSBJbmNsdWRlIElDVSBkaXJlY3Rv
cmllcwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0
L0NoYW5nZUxvZwppbmRleCAzMWNiYmExNDUzMTBiYTg2OGU2Njk4NmM4M2E0MDk4OGM3ZGVmZTlk
Li40ZDhlYjM0M2JkMTZkZTBmMjM0ZTVjZTAzNzAzYWYzNjIwMWFlODA2IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwpAQCAt
MSwzICsxLDcxIEBACisyMDE3LTA5LTI2ICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+
CisKKyAgICAgICAgQWRkIHN1cHBvcnQgZm9yIDxsaW5rIHJlbD1wcmVjb25uZWN0PgorICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTc3NDc0CisgICAgICAg
IDxyZGFyOi8vcHJvYmxlbS8zMzE0MTM4MD4KKworICAgICAgICBSZXZpZXdlZCBieSBBbGV4IENo
cmlzdGVuc2VuLgorCisgICAgICAgIEFkZCBzdXBwb3J0IGZvciA8bGluayByZWw9cHJlY29ubmVj
dD46CisgICAgICAgIC0gaHR0cHM6Ly93M2MuZ2l0aHViLmlvL3Jlc291cmNlLWhpbnRzLyNwcmVj
b25uZWN0CisKKyAgICAgICAgQWxzbyBhZGQgY29ycmVzcG9uZGluZyBuYXRpdmUgcHJpdmF0ZSBB
UEkuCisKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9OZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJv
Y2Vzcy5jcHA6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNz
OjpwcmVjb25uZWN0VG8pOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrQ29ubmVjdGlvblRvV2Vi
UHJvY2Vzczo6ZGlkRmluaXNoUHJlY29ubmVjdGlvbik6CisgICAgICAgICogTmV0d29ya1Byb2Nl
c3MvTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuaDoKKyAgICAgICAgKiBOZXR3b3JrUHJv
Y2Vzcy9OZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5tZXNzYWdlcy5pbjoKKyAgICAgICAg
KiBOZXR3b3JrUHJvY2Vzcy9OZXR3b3JrRGF0YVRhc2suY3BwOgorICAgICAgICAoV2ViS2l0OjpO
ZXR3b3JrRGF0YVRhc2s6OmNyZWF0ZSk6CisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvTmV0d29y
a0xvYWRQYXJhbWV0ZXJzLmg6CisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nl
c3MuY3BwOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrUHJvY2Vzczo6cHJlY29ubmVjdFRvKToK
KyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5oOgorICAgICAgICAqIE5l
dHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLm1lc3NhZ2VzLmluOgorICAgICAgICAqIE5ldHdv
cmtQcm9jZXNzL1ByZWNvbm5lY3RUYXNrLmNwcDogQWRkZWQuCisgICAgICAgIChXZWJLaXQ6OlBy
ZWNvbm5lY3RUYXNrOjpQcmVjb25uZWN0VGFzayk6CisgICAgICAgIChXZWJLaXQ6OlByZWNvbm5l
Y3RUYXNrOjp+UHJlY29ubmVjdFRhc2spOgorICAgICAgICAoV2ViS2l0OjpQcmVjb25uZWN0VGFz
azo6d2lsbFBlcmZvcm1IVFRQUmVkaXJlY3Rpb24pOgorICAgICAgICAoV2ViS2l0OjpQcmVjb25u
ZWN0VGFzazo6ZGlkUmVjZWl2ZUNoYWxsZW5nZSk6CisgICAgICAgIChXZWJLaXQ6OlByZWNvbm5l
Y3RUYXNrOjpkaWRSZWNlaXZlUmVzcG9uc2VOZXR3b3JrU2Vzc2lvbik6CisgICAgICAgIChXZWJL
aXQ6OlByZWNvbm5lY3RUYXNrOjpkaWRSZWNlaXZlRGF0YSk6CisgICAgICAgIChXZWJLaXQ6OlBy
ZWNvbm5lY3RUYXNrOjpkaWRDb21wbGV0ZVdpdGhFcnJvcik6CisgICAgICAgIChXZWJLaXQ6OlBy
ZWNvbm5lY3RUYXNrOjpkaWRTZW5kRGF0YSk6CisgICAgICAgIChXZWJLaXQ6OlByZWNvbm5lY3RU
YXNrOjp3YXNCbG9ja2VkKToKKyAgICAgICAgKFdlYktpdDo6UHJlY29ubmVjdFRhc2s6OmNhbm5v
dFNob3dVUkwpOgorICAgICAgICAoV2ViS2l0OjpQcmVjb25uZWN0VGFzazo6ZGlkRmluaXNoKToK
KyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9QcmVjb25uZWN0VGFzay5oOiBDb3BpZWQgZnJvbSBT
b3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtMb2FkUGFyYW1ldGVycy5oLgorICAg
ICAgICAqIE5ldHdvcmtQcm9jZXNzL2NvY29hL05ldHdvcmtEYXRhVGFza0NvY29hLmg6CisgICAg
ICAgICogTmV0d29ya1Byb2Nlc3MvY29jb2EvTmV0d29ya0RhdGFUYXNrQ29jb2EubW06CisgICAg
ICAgIChXZWJLaXQ6Ok5ldHdvcmtEYXRhVGFza0NvY29hOjpOZXR3b3JrRGF0YVRhc2tDb2NvYSk6
CisgICAgICAgICogU2hhcmVkL1dlYkNvcmVBcmd1bWVudENvZGVycy5oOgorICAgICAgICAqIFNo
YXJlZC9XZWJQcmVmZXJlbmNlc0RlZmluaXRpb25zLmg6CisgICAgICAgICogVUlQcm9jZXNzL0FQ
SS9DL1dLQ29udGV4dC5jcHA6CisgICAgICAgIChXS0NvbnRleHRQcmVjb25uZWN0VG9TZXJ2ZXIp
OgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQy9XS0NvbnRleHRQcml2YXRlLmg6CisgICAgICAg
ICogVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1Byb2Nlc3NQb29sLm1tOgorICAgICAgICAoLVtXS1By
b2Nlc3NQb29sIF9wcmVjb25uZWN0VG9TZXJ2ZXI6XSk6CisgICAgICAgICogVUlQcm9jZXNzL0FQ
SS9Db2NvYS9XS1Byb2Nlc3NQb29sUHJpdmF0ZS5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQ
cm9jZXNzUG9vbC5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3NQb29sOjpwcmVjb25u
ZWN0VG9TZXJ2ZXIpOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQcm9jZXNzUG9vbC5oOgorICAg
ICAgICAqIFdlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAqIFdlYlBy
b2Nlc3MvTmV0d29yay9OZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb24uY3BwOgorICAgICAgICAoV2Vi
S2l0OjpOZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb246OmRpZEZpbmlzaFByZWNvbm5lY3Rpb24pOgor
ICAgICAgICAqIFdlYlByb2Nlc3MvTmV0d29yay9OZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb24uaDoK
KyAgICAgICAgKiBXZWJQcm9jZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uLm1l
c3NhZ2VzLmluOgorICAgICAgICAqIFdlYlByb2Nlc3MvTmV0d29yay9XZWJMb2FkZXJTdHJhdGVn
eS5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYkxvYWRlclN0cmF0ZWd5OjpuZXR3b3JrUHJvY2Vz
c0NyYXNoZWQpOgorICAgICAgICAoV2ViS2l0OjpnZW5lcmF0ZUxvYWRJZGVudGlmaWVyKToKKyAg
ICAgICAgKFdlYktpdDo6V2ViTG9hZGVyU3RyYXRlZ3k6OnN0YXJ0UGluZ0xvYWQpOgorICAgICAg
ICAoV2ViS2l0OjpXZWJMb2FkZXJTdHJhdGVneTo6cHJlY29ubmVjdFRvKToKKyAgICAgICAgKFdl
YktpdDo6V2ViTG9hZGVyU3RyYXRlZ3k6OmRpZEZpbmlzaFByZWNvbm5lY3Rpb24pOgorICAgICAg
ICAqIFdlYlByb2Nlc3MvTmV0d29yay9XZWJMb2FkZXJTdHJhdGVneS5oOgorICAgICAgICAqIFdl
YlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZTo6
dXBkYXRlUHJlZmVyZW5jZXMpOgorICAgICAgICAqIGNvbmZpZy5oOgorCiAyMDE3LTA5LTI2ICBB
bGV4IENocmlzdGVuc2VuICA8YWNocmlzdGVuc2VuQHdlYmtpdC5vcmc+CiAKICAgICAgICAgUGFz
cyBhIGNvbXBsZXRpb24gaGFuZGxlciBpbnN0ZWFkIG9mIGEgV2ViRnJhbWVQb2xpY3lMaXN0ZW5l
clByb3h5IGR1cmluZyBwb2xpY3kgZGVjaXNpb25zCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
TGVnYWN5L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvQ2hhbmdlTG9nCmluZGV4IGY4
MjUwMzY2MGMxNGQ3ZmVkNGNkMzY5ZmYwNTVlOGU0MzkyM2M3NDUuLjk0NWU1Nzc2MDhjNDI2ODk3
ZmI0NzIzYjU1ZDk0ZDU2MGY5MzgyMDUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kv
Q2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvQ2hhbmdlTG9nCkBAIC0xLDMgKzEs
MTUgQEAKKzIwMTctMDktMjYgIENocmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KKworICAg
ICAgICBBZGQgc3VwcG9ydCBmb3IgPGxpbmsgcmVsPXByZWNvbm5lY3Q+CisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNzc0NzQKKyAgICAgICAgPHJkYXI6
Ly9wcm9ibGVtLzMzMTQxMzgwPgorCisgICAgICAgIFJldmlld2VkIGJ5IEFsZXggQ2hyaXN0ZW5z
ZW4uCisKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9XZWJSZXNvdXJjZUxvYWRTY2hlZHVsZXIu
Y3BwOgorICAgICAgICAoV2ViUmVzb3VyY2VMb2FkU2NoZWR1bGVyOjpwcmVjb25uZWN0VG8pOgor
ICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L1dlYlJlc291cmNlTG9hZFNjaGVkdWxlci5oOgorCiAy
MDE3LTA5LTI2ICBQZXIgQXJuZSBWb2xsYW4gIDxwdm9sbGFuQGFwcGxlLmNvbT4KIAogICAgICAg
ICBbV2luXSBXZWJLaXRDT01BUEkuaCBpcyBub3QgY29waWVkIGFmdGVyIGJ1aWxkIGhhcyBmaW5p
c2hlZC4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvc3BpL2NmL0NGTmV0d29y
a1NQSS5oIGIvU291cmNlL1dlYkNvcmUvUEFML3BhbC9zcGkvY2YvQ0ZOZXR3b3JrU1BJLmgKaW5k
ZXggM2U1ODQzZWFkNWI0M2M1Mzg4M2RmODFiNjQwYzljZjQzNTg0N2VmMy4uNjgxZGJiYjNiODAz
MmQ5MmJhNTU5YmQxNzQ0MjliOTQxMDY0YjI5YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
UEFML3BhbC9zcGkvY2YvQ0ZOZXR3b3JrU1BJLmgKKysrIGIvU291cmNlL1dlYkNvcmUvUEFML3Bh
bC9zcGkvY2YvQ0ZOZXR3b3JrU1BJLmgKQEAgLTExMyw2ICsxMTMsMTIgQEAgdHlwZWRlZiB2b2lk
ICheQ0ZDYWNoZWRVUkxSZXNwb25zZUNhbGxCYWNrQmxvY2spKENGQ2FjaGVkVVJMUmVzcG9uc2VS
ZWYpOwogLSAoTlNEaWN0aW9uYXJ5ICopX3RpbWluZ0RhdGE7CiBAZW5kCiAKKyNpZiAoUExBVEZP
Uk0oTUFDKSAmJiBfX01BQ19PU19YX1ZFUlNJT05fTUlOX1JFUVVJUkVEID49IDEwMTMwMCkgfHwg
KFBMQVRGT1JNKElPUykgJiYgX19JUEhPTkVfT1NfVkVSU0lPTl9NSU5fUkVRVUlSRUQgPj0gMTEw
MDAwKQorQGludGVyZmFjZSBOU1VSTFNlc3Npb25UYXNrIChSZXNvdXJjZUhpbnRzKQorQHByb3Bl
cnR5IChub25hdG9taWMsIGFzc2lnbikgQk9PTCBfcHJlY29ubmVjdDsKK0BlbmQKKyNlbmRpZgor
CiBAaW50ZXJmYWNlIE5TSFRUUENvb2tpZSAoKQogLSAoQ0ZIVFRQQ29va2llUmVmKV9DRkhUVFBD
b29raWU7CiArIChDRkFycmF5UmVmIF9fbnVsbGFibGUpX25zMmNmQ29va2llczooTlNBcnJheSAq
IF9fbnVsbGFibGUpbnNDb29raWVzIENGX1JFVFVSTlNfUkVUQUlORUQ7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTUV4Y2VwdGlvbkhhbmRsaW5nLmggYi9Tb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTUV4Y2VwdGlvbkhhbmRsaW5nLmgKaW5kZXggMjgw
OGM4ZmYwMTJhY2FlYzgxMmVhMmEyYTAyYThhNzQ5ZDBlMjg3OS4uZTZkNzUzMWEzZmYwNjI0OGE4
ZmQxMWZiMzcxNDc0MGM1YTViNzczYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGlu
Z3MvanMvSlNET01FeGNlcHRpb25IYW5kbGluZy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRp
bmdzL2pzL0pTRE9NRXhjZXB0aW9uSGFuZGxpbmcuaApAQCAtNjIsNyArNjIsNyBAQCBXRUJDT1JF
X0VYUE9SVCB2b2lkIHRocm93U2VxdWVuY2VUeXBlRXJyb3IoSlNDOjpFeGVjU3RhdGUmLCBKU0M6
OlRocm93U2NvcGUmKTsKIHZvaWQgdGhyb3dUeXBlTWlzbWF0Y2hFcnJvcihKU0M6OkV4ZWNTdGF0
ZSYsIEpTQzo6VGhyb3dTY29wZSYpOwogCiBXRUJDT1JFX0VYUE9SVCBKU0M6OkVuY29kZWRKU1Zh
bHVlIHRocm93QXJndW1lbnRNdXN0QmVFbnVtRXJyb3IoSlNDOjpFeGVjU3RhdGUmLCBKU0M6OlRo
cm93U2NvcGUmLCB1bnNpZ25lZCBhcmd1bWVudEluZGV4LCBjb25zdCBjaGFyKiBhcmd1bWVudE5h
bWUsIGNvbnN0IGNoYXIqIGZ1bmN0aW9uSW50ZXJmYWNlTmFtZSwgY29uc3QgY2hhciogZnVuY3Rp
b25OYW1lLCBjb25zdCBjaGFyKiBleHBlY3RlZFZhbHVlcyk7Ci1KU0M6OkVuY29kZWRKU1ZhbHVl
IHRocm93QXJndW1lbnRNdXN0QmVGdW5jdGlvbkVycm9yKEpTQzo6RXhlY1N0YXRlJiwgSlNDOjpU
aHJvd1Njb3BlJiwgdW5zaWduZWQgYXJndW1lbnRJbmRleCwgY29uc3QgY2hhciogYXJndW1lbnRO
YW1lLCBjb25zdCBjaGFyKiBmdW5jdGlvbkludGVyZmFjZU5hbWUsIGNvbnN0IGNoYXIqIGZ1bmN0
aW9uTmFtZSk7CitXRUJDT1JFX0VYUE9SVCBKU0M6OkVuY29kZWRKU1ZhbHVlIHRocm93QXJndW1l
bnRNdXN0QmVGdW5jdGlvbkVycm9yKEpTQzo6RXhlY1N0YXRlJiwgSlNDOjpUaHJvd1Njb3BlJiwg
dW5zaWduZWQgYXJndW1lbnRJbmRleCwgY29uc3QgY2hhciogYXJndW1lbnROYW1lLCBjb25zdCBj
aGFyKiBmdW5jdGlvbkludGVyZmFjZU5hbWUsIGNvbnN0IGNoYXIqIGZ1bmN0aW9uTmFtZSk7CiBX
RUJDT1JFX0VYUE9SVCBKU0M6OkVuY29kZWRKU1ZhbHVlIHRocm93QXJndW1lbnRUeXBlRXJyb3Io
SlNDOjpFeGVjU3RhdGUmLCBKU0M6OlRocm93U2NvcGUmLCB1bnNpZ25lZCBhcmd1bWVudEluZGV4
LCBjb25zdCBjaGFyKiBhcmd1bWVudE5hbWUsIGNvbnN0IGNoYXIqIGZ1bmN0aW9uSW50ZXJmYWNl
TmFtZSwgY29uc3QgY2hhciogZnVuY3Rpb25OYW1lLCBjb25zdCBjaGFyKiBleHBlY3RlZFR5cGUp
OwogV0VCQ09SRV9FWFBPUlQgSlNDOjpFbmNvZGVkSlNWYWx1ZSB0aHJvd1JlcXVpcmVkTWVtYmVy
VHlwZUVycm9yKEpTQzo6RXhlY1N0YXRlJiwgSlNDOjpUaHJvd1Njb3BlJiwgY29uc3QgY2hhciog
bWVtYmVyTmFtZSwgY29uc3QgY2hhciogZGljdGlvbmFyeU5hbWUsIGNvbnN0IGNoYXIqIGV4cGVj
dGVkVHlwZSk7CiBKU0M6OkVuY29kZWRKU1ZhbHVlIHRocm93Q29uc3RydWN0b3JTY3JpcHRFeGVj
dXRpb25Db250ZXh0VW5hdmFpbGFibGVFcnJvcihKU0M6OkV4ZWNTdGF0ZSYsIEpTQzo6VGhyb3dT
Y29wZSYsIGNvbnN0IGNoYXIqIGludGVyZmFjZU5hbWUpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9ySlMucG0gYi9Tb3VyY2UvV2ViQ29y
ZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JKUy5wbQppbmRleCA2NjI0M2M1MGU3NDZk
MmQ0MjYxMmI5NWRhNzBjMTY4N2Q5NDIwNTI1Li5jNWE4N2MyOTBlM2M5NWQxMThhNjM3NWRhNTAw
ZjlmMDU1MzBlZjg3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRz
L0NvZGVHZW5lcmF0b3JKUy5wbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRz
L0NvZGVHZW5lcmF0b3JKUy5wbQpAQCAtNTgxOCw3ICs1ODE4LDkgQEAgc3ViIEdlbmVyYXRlQ2Fs
bGJhY2tIZWFkZXJDb250ZW50CiAgICAgJGluY2x1ZGVzUmVmLT57Ijx3dGYvRm9yd2FyZC5oPiJ9
ID0gMTsKICAgICAkaW5jbHVkZXNSZWYtPnsiJHtuYW1lfS5oIn0gPSAxOwogCi0gICAgcHVzaChA
JGNvbnRlbnRSZWYsICJjbGFzcyAkY2xhc3NOYW1lIGZpbmFsIDogcHVibGljICR7bmFtZX0ge1xu
Iik7CisgICAgbXkgJGV4cG9ydE1hY3JvID0gR2V0RXhwb3J0TWFjcm9Gb3JKU0NsYXNzKCRpbnRl
cmZhY2VPckNhbGxiYWNrKTsKKworICAgIHB1c2goQCRjb250ZW50UmVmLCAiY2xhc3MgJGV4cG9y
dE1hY3JvJGNsYXNzTmFtZSBmaW5hbCA6IHB1YmxpYyAke25hbWV9IHtcbiIpOwogICAgIHB1c2go
QCRjb250ZW50UmVmLCAicHVibGljOlxuIik7CiAKICAgICAjIFRoZSBzdGF0aWMgY3JlYXRlKCkg
bWV0aG9kLgpAQCAtNTg3NSw3ICs1ODc3LDcgQEAgc3ViIEdlbmVyYXRlQ2FsbGJhY2tIZWFkZXJD
b250ZW50CiAgICAgcHVzaChAJGNvbnRlbnRSZWYsICJ9O1xuXG4iKTsKIAogICAgICMgdG9KUygp
LgotICAgIHB1c2goQCRjb250ZW50UmVmLCAiSlNDOjpKU1ZhbHVlIHRvSlMoJHtuYW1lfSYpO1xu
Iik7CisgICAgcHVzaChAJGNvbnRlbnRSZWYsICRleHBvcnRNYWNybyAuICJKU0M6OkpTVmFsdWUg
dG9KUygke25hbWV9Jik7XG4iKTsKICAgICBwdXNoKEAkY29udGVudFJlZiwgImlubGluZSBKU0M6
OkpTVmFsdWUgdG9KUygke25hbWV9KiBpbXBsKSB7IHJldHVybiBpbXBsID8gdG9KUygqaW1wbCkg
OiBKU0M6OmpzTnVsbCgpOyB9XG5cbiIpOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9iaW5kaW5ncy9zY3JpcHRzL0lETEF0dHJpYnV0ZXMuanNvbiBiL1NvdXJjZS9XZWJDb3JlL2Jp
bmRpbmdzL3NjcmlwdHMvSURMQXR0cmlidXRlcy5qc29uCmluZGV4IDU3OWEwOWE5MGE1MWYzMjAy
MTVhZDNkY2NiZTk4OTc0M2JkN2E2OTAuLjdjZTQ4ZTYxZjBlOGFmNDk5ZTZlMDYzYzZiM2U5YThk
MDRmZjIwOWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvSURM
QXR0cmlidXRlcy5qc29uCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvSURM
QXR0cmlidXRlcy5qc29uCkBAIC0xODYsNyArMTg2LDcgQEAKICAgICAgICAgICAgIH0KICAgICAg
ICAgfSwKICAgICAgICAgIkV4cG9ydE1hY3JvIjogewotICAgICAgICAgICAgImNvbnRleHRzQWxs
b3dlZCI6IFsiaW50ZXJmYWNlIiwgImRpY3Rpb25hcnkiLCAiZW51bSJdLAorICAgICAgICAgICAg
ImNvbnRleHRzQWxsb3dlZCI6IFsiaW50ZXJmYWNlIiwgImRpY3Rpb25hcnkiLCAiZW51bSIsICJj
YWxsYmFjay1mdW5jdGlvbiJdLAogICAgICAgICAgICAgInZhbHVlcyI6IFsiV0VCQ09SRV9FWFBP
UlQiLCAiV0VCQ09SRV9URVNUU1VQUE9SVF9FWFBPUlQiXQogICAgICAgICB9LAogICAgICAgICAi
RXhwb3J0VG9XcmFwcGVkRnVuY3Rpb24iOiB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9k
b20vRG9jdW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcAppbmRleCAy
ODQ1MTQ5NmE1Nzg0NjA2YzM1N2NhZmQxOGVkMDYyNTJmYTU3NzZkLi4zZWY1NDRhMmMwMGYwOTYx
ODVmOTcyOWY0MGI2MGFiZjU2N2RkNGMyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20v
RG9jdW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAKQEAgLTE3
Myw2ICsxNzMsNyBAQAogI2luY2x1ZGUgIlNoYWRvd1Jvb3QuaCIKICNpbmNsdWRlICJTb2NrZXRQ
cm92aWRlci5oIgogI2luY2x1ZGUgIlN0b3JhZ2VFdmVudC5oIgorI2luY2x1ZGUgIlN0cmluZ0Nh
bGxiYWNrLmgiCiAjaW5jbHVkZSAiU3R5bGVQcm9wZXJ0aWVzLmgiCiAjaW5jbHVkZSAiU3R5bGVS
ZXNvbHZlRm9yRG9jdW1lbnQuaCIKICNpbmNsdWRlICJTdHlsZVJlc29sdmVyLmgiCkBAIC01NjEx
LDYgKzU2MTIsOSBAQCB2b2lkIERvY3VtZW50OjphZGRDb25zb2xlTWVzc2FnZShNZXNzYWdlU291
cmNlIHNvdXJjZSwgTWVzc2FnZUxldmVsIGxldmVsLCBjb25zdAogCiAgICAgaWYgKFBhZ2UqIHBh
Z2UgPSB0aGlzLT5wYWdlKCkpCiAgICAgICAgIHBhZ2UtPmNvbnNvbGUoKS5hZGRNZXNzYWdlKHNv
dXJjZSwgbGV2ZWwsIG1lc3NhZ2UsIHJlcXVlc3RJZGVudGlmaWVyLCB0aGlzKTsKKworICAgIGlm
IChtX2NvbnNvbGVNZXNzYWdlTGlzdGVuZXIpCisgICAgICAgIG1fY29uc29sZU1lc3NhZ2VMaXN0
ZW5lci0+c2NoZWR1bGVDYWxsYmFjaygqdGhpcywgbWVzc2FnZSk7CiB9CiAKIHZvaWQgRG9jdW1l
bnQ6OmFkZE1lc3NhZ2UoTWVzc2FnZVNvdXJjZSBzb3VyY2UsIE1lc3NhZ2VMZXZlbCBsZXZlbCwg
Y29uc3QgU3RyaW5nJiBtZXNzYWdlLCBjb25zdCBTdHJpbmcmIHNvdXJjZVVSTCwgdW5zaWduZWQg
bGluZU51bWJlciwgdW5zaWduZWQgY29sdW1uTnVtYmVyLCBSZWZQdHI8SW5zcGVjdG9yOjpTY3Jp
cHRDYWxsU3RhY2s+JiYgY2FsbFN0YWNrLCBKU0M6OkV4ZWNTdGF0ZSogc3RhdGUsIHVuc2lnbmVk
IGxvbmcgcmVxdWVzdElkZW50aWZpZXIpCkBAIC03MzQwLDQgKzczNDQsOSBAQCB2b2lkIERvY3Vt
ZW50OjpyZXF1ZXN0U3RvcmFnZUFjY2VzcyhSZWY8RGVmZXJyZWRQcm9taXNlPiYmIHBhc3NlZFBy
b21pc2UpCiAgICAgcHJvbWlzZS0+cmVzb2x2ZTxJRExCb29sZWFuPihmYWxzZSk7CiB9CiAKK3Zv
aWQgRG9jdW1lbnQ6OnNldENvbnNvbGVNZXNzYWdlTGlzdGVuZXIoUmVmUHRyPFN0cmluZ0NhbGxi
YWNrPiYmIGxpc3RlbmVyKQoreworICAgIG1fY29uc29sZU1lc3NhZ2VMaXN0ZW5lciA9IGxpc3Rl
bmVyOworfQorCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9kb20vRG9jdW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5oCmluZGV4
IDdhNWQxYWVlMGVjOTI1YWUwNmU2OGI3Y2VmN2FiMTIzNDM5YmE0NmEuLjBmYmYxMDY3ODRmY2I5
ZDM1N2U3M2NlOTYzMWRmYjEyOTJlODFjY2UgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Rv
bS9Eb2N1bWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5oCkBAIC0xNjgs
NiArMTY4LDcgQEAgY2xhc3MgU2VsZWN0b3JRdWVyeTsKIGNsYXNzIFNlbGVjdG9yUXVlcnlDYWNo
ZTsKIGNsYXNzIFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZTsKIGNsYXNzIFNldHRpbmdzOworY2xhc3Mg
U3RyaW5nQ2FsbGJhY2s7CiBjbGFzcyBTdHlsZVJlc29sdmVyOwogY2xhc3MgU3R5bGVTaGVldDsK
IGNsYXNzIFN0eWxlU2hlZXRDb250ZW50czsKQEAgLTEzNTksNiArMTM2MCw4IEBAIHB1YmxpYzoK
ICAgICB2b2lkIHJlcXVlc3RTdG9yYWdlQWNjZXNzKFJlZjxEZWZlcnJlZFByb21pc2U+JiYgcGFz
c2VkUHJvbWlzZSk7CiAgICAgdm9pZCBzZXRVc2VyR3JhbnRzU3RvcmFnZUFjY2Vzc092ZXJyaWRl
KGJvb2wgdmFsdWUpIHsgbV9ncmFudFN0b3JhZ2VBY2Nlc3NPdmVycmlkZSA9IHZhbHVlOyB9CiAK
KyAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHNldENvbnNvbGVNZXNzYWdlTGlzdGVuZXIoUmVmUHRy
PFN0cmluZ0NhbGxiYWNrPiYmKTsgLy8gRm9yIHRlc3RpbmcuCisKIHByb3RlY3RlZDoKICAgICBl
bnVtIENvbnN0cnVjdGlvbkZsYWdzIHsgU3ludGhlc2l6ZWQgPSAxLCBOb25SZW5kZXJlZFBsYWNl
aG9sZGVyID0gMSA8PCAxIH07CiAgICAgRG9jdW1lbnQoRnJhbWUqLCBjb25zdCBVUkwmLCB1bnNp
Z25lZCA9IERlZmF1bHREb2N1bWVudENsYXNzLCB1bnNpZ25lZCBjb25zdHJ1Y3Rpb25GbGFncyA9
IDApOwpAQCAtMTgwOCw2ICsxODExLDcgQEAgcHJpdmF0ZToKICAgICBPcmllbnRhdGlvbk5vdGlm
aWVyIG1fb3JpZW50YXRpb25Ob3RpZmllcjsKICAgICBtdXRhYmxlIFBBTDo6U2Vzc2lvbklEIG1f
c2Vzc2lvbklEOwogICAgIG11dGFibGUgUmVmUHRyPFBBTDo6TG9nZ2VyPiBtX2xvZ2dlcjsKKyAg
ICBSZWZQdHI8U3RyaW5nQ2FsbGJhY2s+IG1fY29uc29sZU1lc3NhZ2VMaXN0ZW5lcjsKIAogICAg
IHN0YXRpYyBib29sIGhhc0V2ZXJDcmVhdGVkQW5BWE9iamVjdENhY2hlOwogCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9kb20vU3RyaW5nQ2FsbGJhY2suaWRsIGIvU291cmNlL1dlYkNvcmUv
ZG9tL1N0cmluZ0NhbGxiYWNrLmlkbAppbmRleCA1Y2NkMzFhNDdiNjM1N2JlNmVjZjBlYTc3OTE5
MjNiMWE5NWNlZWVhLi45NzU5MWUxMDVkNzg2ZTc5NDE3NjU1YWJkYzYzMzk0YzRkZThjMDRjIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vU3RyaW5nQ2FsbGJhY2suaWRsCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2RvbS9TdHJpbmdDYWxsYmFjay5pZGwKQEAgLTI4LDQgKzI4LDYgQEAKICAq
IE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0Yg
U1VDSCBEQU1BR0UuCiAgKi8KIAotY2FsbGJhY2sgU3RyaW5nQ2FsbGJhY2sgPSB2b2lkIChET01T
dHJpbmcgZGF0YSk7CitbCisgICAgRXhwb3J0TWFjcm89V0VCQ09SRV9URVNUU1VQUE9SVF9FWFBP
UlQKK10gY2FsbGJhY2sgU3RyaW5nQ2FsbGJhY2sgPSB2b2lkIChET01TdHJpbmcgZGF0YSk7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0RPTVRva2VuTGlzdC5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9odG1sL0RPTVRva2VuTGlzdC5jcHAKaW5kZXggMjU1NWI2ODQ0NmIyOGVjMmJmMDY1
ZjdiY2M0ZTFmNWE3Zjc2YTAyMC4uN2NhYjFiNzM2YTA0MTc1ZWQxMjFjOTdkMGEzNTJhNDllYTk2
ZDVjZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9ET01Ub2tlbkxpc3QuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvRE9NVG9rZW5MaXN0LmNwcApAQCAtMzUsNyArMzUsNyBA
QAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLURPTVRva2VuTGlzdDo6RE9NVG9rZW5MaXN0KEVs
ZW1lbnQmIGVsZW1lbnQsIGNvbnN0IFF1YWxpZmllZE5hbWUmIGF0dHJpYnV0ZU5hbWUsIFdURjo6
RnVuY3Rpb248Ym9vbChTdHJpbmdWaWV3KT4mJiBpc1N1cHBvcnRlZFRva2VuKQorRE9NVG9rZW5M
aXN0OjpET01Ub2tlbkxpc3QoRWxlbWVudCYgZWxlbWVudCwgY29uc3QgUXVhbGlmaWVkTmFtZSYg
YXR0cmlidXRlTmFtZSwgSXNTdXBwb3J0ZWRUb2tlbkZ1bmN0aW9uJiYgaXNTdXBwb3J0ZWRUb2tl
bikKICAgICA6IG1fZWxlbWVudChlbGVtZW50KQogICAgICwgbV9hdHRyaWJ1dGVOYW1lKGF0dHJp
YnV0ZU5hbWUpCiAgICAgLCBtX2lzU3VwcG9ydGVkVG9rZW4oV1RGTW92ZShpc1N1cHBvcnRlZFRv
a2VuKSkKQEAgLTE5MSw3ICsxOTEsNyBAQCBFeGNlcHRpb25Pcjxib29sPiBET01Ub2tlbkxpc3Q6
OnN1cHBvcnRzKFN0cmluZ1ZpZXcgdG9rZW4pCiB7CiAgICAgaWYgKCFtX2lzU3VwcG9ydGVkVG9r
ZW4pCiAgICAgICAgIHJldHVybiBFeGNlcHRpb24geyBUeXBlRXJyb3IgfTsKLSAgICByZXR1cm4g
bV9pc1N1cHBvcnRlZFRva2VuKHRva2VuKTsKKyAgICByZXR1cm4gbV9pc1N1cHBvcnRlZFRva2Vu
KG1fZWxlbWVudC5kb2N1bWVudCgpLCB0b2tlbik7CiB9CiAKIC8vIGh0dHBzOi8vZG9tLnNwZWMu
d2hhdHdnLm9yZy8jZG9tLWRvbXRva2VubGlzdC12YWx1ZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvaHRtbC9ET01Ub2tlbkxpc3QuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvRE9NVG9rZW5M
aXN0LmgKaW5kZXggMjFmYjQ2ZjQ2MTJjYTNjOTNjYmU1OWVkMjg0M2EyNGJkMjRhNTc4Ni4uZDYw
ZDE3Y2M5MTUxYTExYjE4NjBhOTNlNDEwNDlhOWI1ZmY4NTNkNSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvaHRtbC9ET01Ub2tlbkxpc3QuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0RP
TVRva2VuTGlzdC5oCkBAIC0zMiw3ICszMiw4IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIGNsYXNz
IERPTVRva2VuTGlzdCB7CiAgICAgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7CiBwdWJsaWM6Ci0g
ICAgRE9NVG9rZW5MaXN0KEVsZW1lbnQmLCBjb25zdCBRdWFsaWZpZWROYW1lJiBhdHRyaWJ1dGVO
YW1lLCBXVEY6OkZ1bmN0aW9uPGJvb2woU3RyaW5nVmlldyk+JiYgaXNTdXBwb3J0ZWRUb2tlbiA9
IHsgfSk7CisgICAgdXNpbmcgSXNTdXBwb3J0ZWRUb2tlbkZ1bmN0aW9uID0gV1RGOjpGdW5jdGlv
bjxib29sKERvY3VtZW50JiwgU3RyaW5nVmlldyk+OworICAgIERPTVRva2VuTGlzdChFbGVtZW50
JiwgY29uc3QgUXVhbGlmaWVkTmFtZSYgYXR0cmlidXRlTmFtZSwgSXNTdXBwb3J0ZWRUb2tlbkZ1
bmN0aW9uJiYgaXNTdXBwb3J0ZWRUb2tlbiA9IHsgfSk7CiAKICAgICB2b2lkIGFzc29jaWF0ZWRB
dHRyaWJ1dGVWYWx1ZUNoYW5nZWQoY29uc3QgQXRvbWljU3RyaW5nJik7CiAKQEAgLTczLDcgKzc0
LDcgQEAgcHJpdmF0ZToKICAgICBib29sIG1faW5VcGRhdGVBc3NvY2lhdGVkQXR0cmlidXRlRnJv
bVRva2VucyB7IGZhbHNlIH07CiAgICAgYm9vbCBtX3Rva2Vuc05lZWRVcGRhdGluZyB7IHRydWUg
fTsKICAgICBWZWN0b3I8QXRvbWljU3RyaW5nPiBtX3Rva2VuczsKLSAgICBXVEY6OkZ1bmN0aW9u
PGJvb2woU3RyaW5nVmlldyk+IG1faXNTdXBwb3J0ZWRUb2tlbjsKKyAgICBJc1N1cHBvcnRlZFRv
a2VuRnVuY3Rpb24gbV9pc1N1cHBvcnRlZFRva2VuOwogfTsKIAogaW5saW5lIHVuc2lnbmVkIERP
TVRva2VuTGlzdDo6bGVuZ3RoKCkgY29uc3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0
bWwvSFRNTEFuY2hvckVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MQW5jaG9y
RWxlbWVudC5jcHAKaW5kZXggY2IxZjFjOWY1NDY1M2Q2YmRkMmI0NzkyYzI2Mzk4ODIxMGM3ZmM5
MC4uNDg4MWMzZDllOGEzN2VkZjFmNjMyMGY1ZDMyOWJiOTdjMTcxZmYwOCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvaHRtbC9IVE1MQW5jaG9yRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvaHRtbC9IVE1MQW5jaG9yRWxlbWVudC5jcHAKQEAgLTMwNyw3ICszMDcsNyBAQCBib29s
IEhUTUxBbmNob3JFbGVtZW50OjpoYXNSZWwoUmVsYXRpb24gcmVsYXRpb24pIGNvbnN0CiBET01U
b2tlbkxpc3QmIEhUTUxBbmNob3JFbGVtZW50OjpyZWxMaXN0KCkKIHsKICAgICBpZiAoIW1fcmVs
TGlzdCkgCi0gICAgICAgIG1fcmVsTGlzdCA9IHN0ZDo6bWFrZV91bmlxdWU8RE9NVG9rZW5MaXN0
PigqdGhpcywgSFRNTE5hbWVzOjpyZWxBdHRyLCBbXShTdHJpbmdWaWV3IHRva2VuKSB7CisgICAg
ICAgIG1fcmVsTGlzdCA9IHN0ZDo6bWFrZV91bmlxdWU8RE9NVG9rZW5MaXN0PigqdGhpcywgSFRN
TE5hbWVzOjpyZWxBdHRyLCBbXShEb2N1bWVudCYsIFN0cmluZ1ZpZXcgdG9rZW4pIHsKICAgICAg
ICAgICAgIHJldHVybiBlcXVhbElnbm9yaW5nQVNDSUlDYXNlKHRva2VuLCAibm9yZWZlcnJlciIp
IHx8IGVxdWFsSWdub3JpbmdBU0NJSUNhc2UodG9rZW4sICJub29wZW5lciIpOwogICAgICAgICB9
KTsKICAgICByZXR1cm4gKm1fcmVsTGlzdDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0
bWwvSFRNTElGcmFtZUVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MSUZyYW1l
RWxlbWVudC5jcHAKaW5kZXggZDMwMzIyZGMwYzQ4ZmI4MjA2ZWFiYjY2Y2FlZjJiOGZlNjk3YjY0
Zi4uMjIzZTNiMDMzMWFhNzUwZTRkYWY1ZGQwYTg2YjUyMmMyMjJlMDVkZCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvaHRtbC9IVE1MSUZyYW1lRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvaHRtbC9IVE1MSUZyYW1lRWxlbWVudC5jcHAKQEAgLTUxLDcgKzUxLDcgQEAgUmVmPEhU
TUxJRnJhbWVFbGVtZW50PiBIVE1MSUZyYW1lRWxlbWVudDo6Y3JlYXRlKGNvbnN0IFF1YWxpZmll
ZE5hbWUmIHRhZ05hbWUsIEQKIERPTVRva2VuTGlzdCYgSFRNTElGcmFtZUVsZW1lbnQ6OnNhbmRi
b3goKQogewogICAgIGlmICghbV9zYW5kYm94KQotICAgICAgICBtX3NhbmRib3ggPSBzdGQ6Om1h
a2VfdW5pcXVlPERPTVRva2VuTGlzdD4oKnRoaXMsIHNhbmRib3hBdHRyLCBbXShTdHJpbmdWaWV3
IHRva2VuKSB7CisgICAgICAgIG1fc2FuZGJveCA9IHN0ZDo6bWFrZV91bmlxdWU8RE9NVG9rZW5M
aXN0PigqdGhpcywgc2FuZGJveEF0dHIsIFtdKERvY3VtZW50JiwgU3RyaW5nVmlldyB0b2tlbikg
ewogICAgICAgICAgICAgcmV0dXJuIFNlY3VyaXR5Q29udGV4dDo6aXNTdXBwb3J0ZWRTYW5kYm94
UG9saWN5KHRva2VuKTsKICAgICAgICAgfSk7CiAgICAgcmV0dXJuICptX3NhbmRib3g7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxMaW5rRWxlbWVudC5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9odG1sL0hUTUxMaW5rRWxlbWVudC5jcHAKaW5kZXggZTAxYjZlM2I0Yzg1MWZlZGY0
NTc3Y2E5MjIwZjg4ODU0MmMxY2E0Ni4uZTdkMGY3Y2M3NDI4NjA0OWZhZDE4ODE3M2IxNTUwMTk5
M2RiZjNkMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTGlua0VsZW1lbnQu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTExpbmtFbGVtZW50LmNwcApAQCAtMTU2
LDcgKzE1Niw3IEBAIHZvaWQgSFRNTExpbmtFbGVtZW50OjpzZXREaXNhYmxlZFN0YXRlKGJvb2wg
ZGlzYWJsZWQpCiB2b2lkIEhUTUxMaW5rRWxlbWVudDo6cGFyc2VBdHRyaWJ1dGUoY29uc3QgUXVh
bGlmaWVkTmFtZSYgbmFtZSwgY29uc3QgQXRvbWljU3RyaW5nJiB2YWx1ZSkKIHsKICAgICBpZiAo
bmFtZSA9PSByZWxBdHRyKSB7Ci0gICAgICAgIG1fcmVsQXR0cmlidXRlID0gTGlua1JlbEF0dHJp
YnV0ZSh2YWx1ZSk7CisgICAgICAgIG1fcmVsQXR0cmlidXRlID0gTGlua1JlbEF0dHJpYnV0ZShk
b2N1bWVudCgpLCB2YWx1ZSk7CiAgICAgICAgIGlmIChtX3JlbExpc3QpCiAgICAgICAgICAgICBt
X3JlbExpc3QtPmFzc29jaWF0ZWRBdHRyaWJ1dGVWYWx1ZUNoYW5nZWQodmFsdWUpOwogICAgICAg
ICBwcm9jZXNzKCk7CkBAIC00OTgsOCArNDk4LDggQEAgdm9pZCBIVE1MTGlua0VsZW1lbnQ6OmRp
c3BhdGNoUGVuZGluZ0V2ZW50KExpbmtFdmVudFNlbmRlciogZXZlbnRTZW5kZXIpCiBET01Ub2tl
bkxpc3QmIEhUTUxMaW5rRWxlbWVudDo6cmVsTGlzdCgpCiB7CiAgICAgaWYgKCFtX3JlbExpc3Qp
IAotICAgICAgICBtX3JlbExpc3QgPSBzdGQ6Om1ha2VfdW5pcXVlPERPTVRva2VuTGlzdD4oKnRo
aXMsIEhUTUxOYW1lczo6cmVsQXR0ciwgW10oU3RyaW5nVmlldyB0b2tlbikgewotICAgICAgICAg
ICAgcmV0dXJuIExpbmtSZWxBdHRyaWJ1dGU6OmlzU3VwcG9ydGVkKHRva2VuKTsKKyAgICAgICAg
bV9yZWxMaXN0ID0gc3RkOjptYWtlX3VuaXF1ZTxET01Ub2tlbkxpc3Q+KCp0aGlzLCBIVE1MTmFt
ZXM6OnJlbEF0dHIsIFtdKERvY3VtZW50JiBkb2N1bWVudCwgU3RyaW5nVmlldyB0b2tlbikgewor
ICAgICAgICAgICAgcmV0dXJuIExpbmtSZWxBdHRyaWJ1dGU6OmlzU3VwcG9ydGVkKGRvY3VtZW50
LCB0b2tlbik7CiAgICAgICAgIH0pOwogICAgIHJldHVybiAqbV9yZWxMaXN0OwogfQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9MaW5rUmVsQXR0cmlidXRlLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvTGlua1JlbEF0dHJpYnV0ZS5jcHAKaW5kZXggODY2YWZkOGU1ZWI0YTFhMTJj
Y2I5MDBhNjY3YWUwZGZlYjJlZjlhOS4uNTcyYmRiMzRjNThmOGRhZDA1YmQzZjZiZGNmYzVjNDU4
MmE0NzY3ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9MaW5rUmVsQXR0cmlidXRl
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0xpbmtSZWxBdHRyaWJ1dGUuY3BwCkBAIC0z
Miw4ICszMiwxMCBAQAogI2luY2x1ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUgIkxpbmtSZWxBdHRy
aWJ1dGUuaCIKIAorI2luY2x1ZGUgIkRvY3VtZW50LmgiCiAjaW5jbHVkZSAiTGlua0ljb25UeXBl
LmgiCiAjaW5jbHVkZSAiUnVudGltZUVuYWJsZWRGZWF0dXJlcy5oIgorI2luY2x1ZGUgIlNldHRp
bmdzLmgiCiAjaW5jbHVkZSA8d3RmL3RleHQvU3RyaW5nVmlldy5oPgogI2luY2x1ZGUgPHd0Zi90
ZXh0L1dURlN0cmluZy5oPgogCkBAIC00NCw3ICs0Niw3IEBAIExpbmtSZWxBdHRyaWJ1dGU6Okxp
bmtSZWxBdHRyaWJ1dGUoKQogfQogCiAvLyBLZWVwIExpbmtSZWxBdHRyaWJ1dGU6OmlzU3VwcG9y
dGVkKCkgaW4gc3luYyB3aGVuIHVwZGF0aW5nIHRoaXMgY29uc3RydWN0b3IuCi1MaW5rUmVsQXR0
cmlidXRlOjpMaW5rUmVsQXR0cmlidXRlKGNvbnN0IFN0cmluZyYgcmVsKQorTGlua1JlbEF0dHJp
YnV0ZTo6TGlua1JlbEF0dHJpYnV0ZShEb2N1bWVudCYgZG9jdW1lbnQsIGNvbnN0IFN0cmluZyYg
cmVsKQogewogICAgIGlmIChlcXVhbExldHRlcnNJZ25vcmluZ0FTQ0lJQ2FzZShyZWwsICJzdHls
ZXNoZWV0IikpCiAgICAgICAgIGlzU3R5bGVTaGVldCA9IHRydWU7CkBAIC01Niw2ICs1OCw4IEBA
IExpbmtSZWxBdHRyaWJ1dGU6OkxpbmtSZWxBdHRyaWJ1dGUoY29uc3QgU3RyaW5nJiByZWwpCiAg
ICAgICAgIGljb25UeXBlID0gTGlua0ljb25UeXBlOjpUb3VjaFByZWNvbXBvc2VkSWNvbjsKICAg
ICBlbHNlIGlmIChlcXVhbExldHRlcnNJZ25vcmluZ0FTQ0lJQ2FzZShyZWwsICJkbnMtcHJlZmV0
Y2giKSkKICAgICAgICAgaXNETlNQcmVmZXRjaCA9IHRydWU7CisgICAgZWxzZSBpZiAoZG9jdW1l
bnQuc2V0dGluZ3MoKS5saW5rUHJlY29ubmVjdEVuYWJsZWQoKSAmJiBlcXVhbExldHRlcnNJZ25v
cmluZ0FTQ0lJQ2FzZShyZWwsICJwcmVjb25uZWN0IikpCisgICAgICAgIGlzTGlua1ByZWNvbm5l
Y3QgPSB0cnVlOwogICAgIGVsc2UgaWYgKFJ1bnRpbWVFbmFibGVkRmVhdHVyZXM6OnNoYXJlZEZl
YXR1cmVzKCkubGlua1ByZWxvYWRFbmFibGVkKCkgJiYgZXF1YWxMZXR0ZXJzSWdub3JpbmdBU0NJ
SUNhc2UocmVsLCAicHJlbG9hZCIpKQogICAgICAgICBpc0xpbmtQcmVsb2FkID0gdHJ1ZTsKICAg
ICBlbHNlIGlmIChlcXVhbExldHRlcnNJZ25vcmluZ0FTQ0lJQ2FzZShyZWwsICJhbHRlcm5hdGUg
c3R5bGVzaGVldCIpIHx8IGVxdWFsTGV0dGVyc0lnbm9yaW5nQVNDSUlDYXNlKHJlbCwgInN0eWxl
c2hlZXQgYWx0ZXJuYXRlIikpIHsKQEAgLTg3LDcgKzkxLDcgQEAgTGlua1JlbEF0dHJpYnV0ZTo6
TGlua1JlbEF0dHJpYnV0ZShjb25zdCBTdHJpbmcmIHJlbCkKIH0KIAogLy8gaHR0cHM6Ly9odG1s
LnNwZWMud2hhdHdnLm9yZy8jbGlua1R5cGVzCi1ib29sIExpbmtSZWxBdHRyaWJ1dGU6OmlzU3Vw
cG9ydGVkKFN0cmluZ1ZpZXcgYXR0cmlidXRlKQorYm9vbCBMaW5rUmVsQXR0cmlidXRlOjppc1N1
cHBvcnRlZChEb2N1bWVudCYgZG9jdW1lbnQsIFN0cmluZ1ZpZXcgYXR0cmlidXRlKQogewogICAg
IHN0YXRpYyBjb25zdCBjaGFyKiBjb25zdCBzdXBwb3J0ZWRBdHRyaWJ1dGVzW10gPSB7CiAgICAg
ICAgICJhbHRlcm5hdGUiLCAiZG5zLXByZWZldGNoIiwgImljb24iLCAic3R5bGVzaGVldCIsICJh
cHBsZS10b3VjaC1pY29uIiwgImFwcGxlLXRvdWNoLWljb24tcHJlY29tcG9zZWQiLApAQCAtMTAx
LDYgKzEwNSw5IEBAIGJvb2wgTGlua1JlbEF0dHJpYnV0ZTo6aXNTdXBwb3J0ZWQoU3RyaW5nVmll
dyBhdHRyaWJ1dGUpCiAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICB9CiAKKyAgICBpZiAo
ZG9jdW1lbnQuc2V0dGluZ3MoKS5saW5rUHJlY29ubmVjdEVuYWJsZWQoKSAmJiBlcXVhbElnbm9y
aW5nQVNDSUlDYXNlKGF0dHJpYnV0ZSwgInByZWNvbm5lY3QiKSkKKyAgICAgICAgcmV0dXJuIHRy
dWU7CisKICAgICBpZiAoUnVudGltZUVuYWJsZWRGZWF0dXJlczo6c2hhcmVkRmVhdHVyZXMoKS5s
aW5rUHJlbG9hZEVuYWJsZWQoKSAmJiBlcXVhbElnbm9yaW5nQVNDSUlDYXNlKGF0dHJpYnV0ZSwg
InByZWxvYWQiKSkKICAgICAgICAgcmV0dXJuIHRydWU7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvTGlua1JlbEF0dHJpYnV0ZS5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9MaW5r
UmVsQXR0cmlidXRlLmgKaW5kZXggOGUyNjY5MjdlZGRiMTNkYjllMGI4YjFjY2E5Njg1MjU2NWZi
YmQ4Zi4uZjEyZTk4NjYzN2M3ZmY3MDc4MWMyM2MxZDZmYWU4ODU1OWE3MGI1ZiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvaHRtbC9MaW5rUmVsQXR0cmlidXRlLmgKKysrIGIvU291cmNlL1dl
YkNvcmUvaHRtbC9MaW5rUmVsQXR0cmlidXRlLmgKQEAgLTM3LDYgKzM3LDcgQEAKIAogbmFtZXNw
YWNlIFdlYkNvcmUgewogCitjbGFzcyBEb2N1bWVudDsKIGVudW0gY2xhc3MgTGlua0ljb25UeXBl
OwogCiBzdHJ1Y3QgTGlua1JlbEF0dHJpYnV0ZSB7CkBAIC00NSwxNSArNDYsMTYgQEAgc3RydWN0
IExpbmtSZWxBdHRyaWJ1dGUgewogICAgIGJvb2wgaXNBbHRlcm5hdGUgeyBmYWxzZSB9OwogICAg
IGJvb2wgaXNETlNQcmVmZXRjaCB7IGZhbHNlIH07CiAgICAgYm9vbCBpc0xpbmtQcmVsb2FkIHsg
ZmFsc2UgfTsKKyAgICBib29sIGlzTGlua1ByZWNvbm5lY3QgeyBmYWxzZSB9OwogI2lmIEVOQUJM
RShMSU5LX1BSRUZFVENIKQogICAgIGJvb2wgaXNMaW5rUHJlZmV0Y2ggeyBmYWxzZSB9OwogICAg
IGJvb2wgaXNMaW5rU3VicmVzb3VyY2UgeyBmYWxzZSB9OwogI2VuZGlmCiAKICAgICBMaW5rUmVs
QXR0cmlidXRlKCk7Ci0gICAgZXhwbGljaXQgTGlua1JlbEF0dHJpYnV0ZShjb25zdCBTdHJpbmcm
KTsKKyAgICBMaW5rUmVsQXR0cmlidXRlKERvY3VtZW50JiwgY29uc3QgU3RyaW5nJik7CiAKLSAg
ICBzdGF0aWMgYm9vbCBpc1N1cHBvcnRlZChTdHJpbmdWaWV3KTsKKyAgICBzdGF0aWMgYm9vbCBp
c1N1cHBvcnRlZChEb2N1bWVudCYsIFN0cmluZ1ZpZXcpOwogfTsKIAogfQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvaHRtbC9wYXJzZXIvSFRNTFByZWxvYWRTY2FubmVyLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvcGFyc2VyL0hUTUxQcmVsb2FkU2Nhbm5lci5jcHAKaW5kZXggMDYwMWRj
MTFkY2M0YzBiMDA1ZTVlZmJkMWU2NjgzNzY0MjZmMGVjMC4uMDhkMjhjZGQ0MjE3NzNhZDE3NmQz
ZjBlNzU0MDdhNmU2ZjAwMzQ4NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9wYXJz
ZXIvSFRNTFByZWxvYWRTY2FubmVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3BhcnNl
ci9IVE1MUHJlbG9hZFNjYW5uZXIuY3BwCkBAIC0yMzIsNyArMjMyLDcgQEAgcHJpdmF0ZToKICAg
ICAgICAgICAgIGlmIChtYXRjaChhdHRyaWJ1dGVOYW1lLCBocmVmQXR0cikpCiAgICAgICAgICAg
ICAgICAgc2V0VXJsVG9Mb2FkKGF0dHJpYnV0ZVZhbHVlKTsKICAgICAgICAgICAgIGVsc2UgaWYg
KG1hdGNoKGF0dHJpYnV0ZU5hbWUsIHJlbEF0dHIpKSB7Ci0gICAgICAgICAgICAgICAgTGlua1Jl
bEF0dHJpYnV0ZSBwYXJzZWRBdHRyaWJ1dGUgeyBhdHRyaWJ1dGVWYWx1ZSB9OworICAgICAgICAg
ICAgICAgIExpbmtSZWxBdHRyaWJ1dGUgcGFyc2VkQXR0cmlidXRlIHsgZG9jdW1lbnQsIGF0dHJp
YnV0ZVZhbHVlIH07CiAgICAgICAgICAgICAgICAgbV9saW5rSXNTdHlsZVNoZWV0ID0gcmVsQXR0
cmlidXRlSXNTdHlsZVNoZWV0KHBhcnNlZEF0dHJpYnV0ZSk7CiAgICAgICAgICAgICAgICAgbV9s
aW5rSXNQcmVsb2FkID0gcGFyc2VkQXR0cmlidXRlLmlzTGlua1ByZWxvYWQ7CiAgICAgICAgICAg
ICB9IGVsc2UgaWYgKG1hdGNoKGF0dHJpYnV0ZU5hbWUsIG1lZGlhQXR0cikpCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvTGlua0xvYWRlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9s
b2FkZXIvTGlua0xvYWRlci5jcHAKaW5kZXggMmIxNjEzMjY0MzBjMTBkNTkyNDI4ZDE1YjQ4Nzcy
YmVmNmE2OTAzZC4uOWUzZjJhYThkMjMyM2YzY2MwOWMwNjI1NmI5Mzk2ODhjMmQ5ZTgxYyAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL0xpbmtMb2FkZXIuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2xvYWRlci9MaW5rTG9hZGVyLmNwcApAQCAtNDcsOCArNDcsMTEgQEAKICNpbmNs
dWRlICJMaW5rSGVhZGVyLmgiCiAjaW5jbHVkZSAiTGlua1ByZWxvYWRSZXNvdXJjZUNsaWVudHMu
aCIKICNpbmNsdWRlICJMaW5rUmVsQXR0cmlidXRlLmgiCisjaW5jbHVkZSAiTG9hZGVyU3RyYXRl
Z3kuaCIKICNpbmNsdWRlICJNSU1FVHlwZVJlZ2lzdHJ5LmgiCiAjaW5jbHVkZSAiTWVkaWFRdWVy
eUV2YWx1YXRvci5oIgorI2luY2x1ZGUgIlBsYXRmb3JtU3RyYXRlZ2llcy5oIgorI2luY2x1ZGUg
IlJlc291cmNlRXJyb3IuaCIKICNpbmNsdWRlICJSdW50aW1lRW5hYmxlZEZlYXR1cmVzLmgiCiAj
aW5jbHVkZSAiU2V0dGluZ3MuaCIKICNpbmNsdWRlICJTdHlsZVJlc29sdmVyLmgiCkBAIC0xMDIs
NyArMTA1LDcgQEAgdm9pZCBMaW5rTG9hZGVyOjpsb2FkTGlua3NGcm9tSGVhZGVyKGNvbnN0IFN0
cmluZyYgaGVhZGVyVmFsdWUsIGNvbnN0IFVSTCYgYmFzZVUKICAgICAgICAgICAgICAgICBjb250
aW51ZTsKICAgICAgICAgfQogCi0gICAgICAgIExpbmtSZWxBdHRyaWJ1dGUgcmVsQXR0cmlidXRl
KGhlYWRlci5yZWwoKSk7CisgICAgICAgIExpbmtSZWxBdHRyaWJ1dGUgcmVsQXR0cmlidXRlKGRv
Y3VtZW50LCBoZWFkZXIucmVsKCkpOwogICAgICAgICBVUkwgdXJsKGJhc2VVUkwsIGhlYWRlci51
cmwoKSk7CiAgICAgICAgIC8vIFNhbml0eSBjaGVjayB0byBhdm9pZCByZS1lbnRyYW5jeSBoZXJl
LgogICAgICAgICBpZiAoZXF1YWxJZ25vcmluZ0ZyYWdtZW50SWRlbnRpZmllcih1cmwsIGJhc2VV
UkwpKQpAQCAtMjUwLDYgKzI1MywyMiBAQCBib29sIExpbmtMb2FkZXI6OmxvYWRMaW5rKGNvbnN0
IExpbmtSZWxBdHRyaWJ1dGUmIHJlbEF0dHJpYnV0ZSwgY29uc3QgVVJMJiBocmVmLAogICAgICAg
ICAgICAgZG9jdW1lbnQuZnJhbWUoKS0+bG9hZGVyKCkuY2xpZW50KCkucHJlZmV0Y2hETlMoaHJl
Zi5ob3N0KCkpOwogICAgIH0KIAorICAgIGlmIChyZWxBdHRyaWJ1dGUuaXNMaW5rUHJlY29ubmVj
dCAmJiBocmVmLmlzVmFsaWQoKSAmJiBocmVmLnByb3RvY29sSXNJbkhUVFBGYW1pbHkoKSkgewor
ICAgICAgICBBU1NFUlQoZG9jdW1lbnQuc2V0dGluZ3MoKS5saW5rUHJlY29ubmVjdEVuYWJsZWQo
KSk7CisgICAgICAgIFN0b3JlZENyZWRlbnRpYWxzUG9saWN5IHN0b3JhZ2VDcmVkZW50aWFsc1Bv
bGljeSA9IFN0b3JlZENyZWRlbnRpYWxzUG9saWN5OjpVc2U7CisgICAgICAgIGlmIChlcXVhbEln
bm9yaW5nQVNDSUlDYXNlKGNyb3NzT3JpZ2luLCAiYW5vbnltb3VzIikgJiYgZG9jdW1lbnQuc2Vj
dXJpdHlPcmlnaW4oKS5jYW5BY2Nlc3MoU2VjdXJpdHlPcmlnaW46OmNyZWF0ZShocmVmKSkpCisg
ICAgICAgICAgICBzdG9yYWdlQ3JlZGVudGlhbHNQb2xpY3kgPSBTdG9yZWRDcmVkZW50aWFsc1Bv
bGljeTo6RG9Ob3RVc2U7CisgICAgICAgIHBsYXRmb3JtU3RyYXRlZ2llcygpLT5sb2FkZXJTdHJh
dGVneSgpLT5wcmVjb25uZWN0VG8oZG9jdW1lbnQuc2Vzc2lvbklEKCksIGhyZWYsIHN0b3JhZ2VD
cmVkZW50aWFsc1BvbGljeSwgW3dlYWtEb2N1bWVudCA9IGRvY3VtZW50LmNyZWF0ZVdlYWtQdHIo
KSwgaHJlZl0oUmVzb3VyY2VFcnJvciBlcnJvcikgeworICAgICAgICAgICAgaWYgKCF3ZWFrRG9j
dW1lbnQpCisgICAgICAgICAgICAgICAgcmV0dXJuOworCisgICAgICAgICAgICBpZiAoIWVycm9y
LmlzTnVsbCgpKQorICAgICAgICAgICAgICAgIHdlYWtEb2N1bWVudC0+YWRkQ29uc29sZU1lc3Nh
Z2UoTWVzc2FnZVNvdXJjZTo6TmV0d29yaywgTWVzc2FnZUxldmVsOjpFcnJvciwgbWFrZVN0cmlu
ZyhBU0NJSUxpdGVyYWwoIkZhaWxlZCB0byBwcmVjb25uZWN0IHRvICIpLCBocmVmLnN0cmluZygp
LCBBU0NJSUxpdGVyYWwoIi4gRXJyb3I6ICIpLCBlcnJvci5sb2NhbGl6ZWREZXNjcmlwdGlvbigp
KSk7CisgICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAgICAgd2Vha0RvY3VtZW50LT5hZGRD
b25zb2xlTWVzc2FnZShNZXNzYWdlU291cmNlOjpOZXR3b3JrLCBNZXNzYWdlTGV2ZWw6OkluZm8s
IG1ha2VTdHJpbmcoQVNDSUlMaXRlcmFsKCJTdWNjZXNzZnVseSBwcmVjb25uZWN0ZWQgdG8gIiks
IGhyZWYuc3RyaW5nKCkpKTsKKyAgICAgICAgfSk7CisgICAgfQorCiAgICAgaWYgKG1fY2xpZW50
LnNob3VsZExvYWRMaW5rKCkpIHsKICAgICAgICAgYXV0byByZXNvdXJjZUNsaWVudCA9IHByZWxv
YWRJZk5lZWRlZChyZWxBdHRyaWJ1dGUsIGhyZWYsIGRvY3VtZW50LCBhcywgbWVkaWEsIG1pbWVU
eXBlLCBjcm9zc09yaWdpbiwgdGhpcyk7CiAgICAgICAgIGlmIChyZXNvdXJjZUNsaWVudCkKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9Mb2FkZXJTdHJhdGVneS5oIGIvU291cmNl
L1dlYkNvcmUvbG9hZGVyL0xvYWRlclN0cmF0ZWd5LmgKaW5kZXggNTNmM2JmYjI2NjY5YjE0ZTg4
Y2NkMjhmODkxYjAyMTlkMTRmYTYzYy4uOThiZWQ4NDJlY2FiZmFjMTM5OGQ3OWNhNThhMzNlZmQz
OTlkMjI2YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL0xvYWRlclN0cmF0ZWd5
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0xvYWRlclN0cmF0ZWd5LmgKQEAgLTI4LDYg
KzI4LDcgQEAKICNpbmNsdWRlICJSZXNvdXJjZUxvYWRQcmlvcml0eS5oIgogI2luY2x1ZGUgIlJl
c291cmNlTG9hZGVyT3B0aW9ucy5oIgogI2luY2x1ZGUgIlN0b3JlZENyZWRlbnRpYWxzUG9saWN5
LmgiCisjaW5jbHVkZSA8cGFsL1Nlc3Npb25JRC5oPgogI2luY2x1ZGUgPHd0Zi9Gb3J3YXJkLmg+
CiAjaW5jbHVkZSA8d3RmL1NIQTEuaD4KIApAQCAtNjcsNiArNjgsOSBAQCBwdWJsaWM6CiAgICAg
dXNpbmcgUGluZ0xvYWRDb21wbGV0aW9uSGFuZGxlciA9IFdURjo6RnVuY3Rpb248dm9pZChjb25z
dCBSZXNvdXJjZUVycm9yJik+OwogICAgIHZpcnR1YWwgdm9pZCBzdGFydFBpbmdMb2FkKEZyYW1l
JiwgUmVzb3VyY2VSZXF1ZXN0JiwgY29uc3QgSFRUUEhlYWRlck1hcCYgb3JpZ2luYWxSZXF1ZXN0
SGVhZGVycywgY29uc3QgRmV0Y2hPcHRpb25zJiwgUGluZ0xvYWRDb21wbGV0aW9uSGFuZGxlciYm
ID0geyB9KSA9IDA7CiAKKyAgICB1c2luZyBQcmVjb25uZWN0Q29tcGxldGlvbkhhbmRsZXIgPSBX
VEY6OkZ1bmN0aW9uPHZvaWQoY29uc3QgUmVzb3VyY2VFcnJvciYpPjsKKyAgICB2aXJ0dWFsIHZv
aWQgcHJlY29ubmVjdFRvKFBBTDo6U2Vzc2lvbklELCBjb25zdCBVUkwmLCBTdG9yZWRDcmVkZW50
aWFsc1BvbGljeSwgUHJlY29ubmVjdENvbXBsZXRpb25IYW5kbGVyJiYpID0gMDsKKwogICAgIHZp
cnR1YWwgdm9pZCBzdG9yZURlcml2ZWREYXRhVG9DYWNoZShjb25zdCBTSEExOjpEaWdlc3QmIGJv
ZHlLZXksIGNvbnN0IFN0cmluZyYgdHlwZSwgY29uc3QgU3RyaW5nJiBwYXJ0aXRpb24sIFdlYkNv
cmU6OlNoYXJlZEJ1ZmZlciYpID0gMDsKIAogICAgIHZpcnR1YWwgdm9pZCBzZXRDYXB0dXJlRXh0
cmFOZXR3b3JrTG9hZE1ldHJpY3NFbmFibGVkKGJvb2wpID0gMDsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3BhZ2UvU2V0dGluZ3MuaW4gYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1NldHRpbmdz
LmluCmluZGV4IDkyNzdjMGE3Y2U1ZDdhN2JhMjVlNmQzNDg1OTJhOGFjMWExZmRlYWIuLmQ4MTUy
NmFhY2MxNjcyN2M5MmNhNjlhYTc0YjYzZThjYWJkMDQyMWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3BhZ2UvU2V0dGluZ3MuaW4KKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9TZXR0aW5n
cy5pbgpAQCAtMjkxLDYgKzI5MSw4IEBAIGxhbmdBdHRyaWJ1dGVBd2FyZUZvcm1Db250cm9sVUlF
bmFibGVkIGluaXRpYWw9ZmFsc2UKIAogc3VicmVzb3VyY2VJbnRlZ3JpdHlFbmFibGVkIGluaXRp
YWw9dHJ1ZQogCitsaW5rUHJlY29ubmVjdEVuYWJsZWQgaW5pdGlhbD1mYWxzZQorCiBiZWFjb25B
UElFbmFibGVkIGluaXRpYWw9ZmFsc2UKIAogY29uc3RhbnRQcm9wZXJ0aWVzRW5hYmxlZCBpbml0
aWFsPWZhbHNlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5jcHAKaW5kZXggODM1MDk3NjNl
ZjljMmQ4NTBhMjU2ZjJkMzA0OGExZTgyMDQyMzUwYS4uYmVlNTgwYTg1MTI4NjYyNGFiMTRjNmM4
ZWYzZjE5ODcwMjY0NDczNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRl
cm5hbHMuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmNwcApAQCAt
MTMwLDYgKzEzMCw3IEBACiAjaW5jbHVkZSAiU291cmNlQnVmZmVyLmgiCiAjaW5jbHVkZSAiU3Bl
bGxDaGVja2VyLmgiCiAjaW5jbHVkZSAiU3RhdGljTm9kZUxpc3QuaCIKKyNpbmNsdWRlICJTdHJp
bmdDYWxsYmFjay5oIgogI2luY2x1ZGUgIlN0eWxlUnVsZS5oIgogI2luY2x1ZGUgIlN0eWxlU2Nv
cGUuaCIKICNpbmNsdWRlICJTdHlsZVNoZWV0Q29udGVudHMuaCIKQEAgLTUwMyw2ICs1MDQsOCBA
QCBJbnRlcm5hbHM6OkludGVybmFscyhEb2N1bWVudCYgZG9jdW1lbnQpCiAgICAgICAgIHNldEF1
dG9tYXRpY0xpbmtEZXRlY3Rpb25FbmFibGVkKGZhbHNlKTsKICAgICAgICAgc2V0QXV0b21hdGlj
VGV4dFJlcGxhY2VtZW50RW5hYmxlZCh0cnVlKTsKICAgICB9CisKKyAgICBzZXRDb25zb2xlTWVz
c2FnZUxpc3RlbmVyKG51bGxwdHIpOwogfQogCiBEb2N1bWVudCogSW50ZXJuYWxzOjpjb250ZXh0
RG9jdW1lbnQoKSBjb25zdApAQCAtNDE3Nyw0ICs0MTgwLDEyIEBAIHZvaWQgSW50ZXJuYWxzOjpj
YWNoZVN0b3JhZ2VFbmdpbmVSZXByZXNlbnRhdGlvbihET01Qcm9taXNlRGVmZXJyZWQ8SURMRE9N
U3RyaW5nCiAgICAgfSk7CiB9CiAKK3ZvaWQgSW50ZXJuYWxzOjpzZXRDb25zb2xlTWVzc2FnZUxp
c3RlbmVyKFJlZlB0cjxTdHJpbmdDYWxsYmFjaz4mJiBsaXN0ZW5lcikKK3sKKyAgICBpZiAoIWNv
bnRleHREb2N1bWVudCgpKQorICAgICAgICByZXR1cm47CisKKyAgICBjb250ZXh0RG9jdW1lbnQo
KS0+c2V0Q29uc29sZU1lc3NhZ2VMaXN0ZW5lcihXVEZNb3ZlKGxpc3RlbmVyKSk7Cit9CisKIH0g
Ly8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Rlc3Rpbmcv
SW50ZXJuYWxzLmggYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5oCmluZGV4IGVi
MjNjMTNlMDc0NTQ2MTc1NWQ2YTM4MThmZWJiNzRhMDhlZWVlNTkuLjMwOGUzOWZjNzk4YzQ4MTAw
ZjQ5MTYwMjVhMTI2Nzk4ZTRmYWQwNzQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Rlc3Rp
bmcvSW50ZXJuYWxzLmgKKysrIGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuaApA
QCAtNzcsNiArNzcsNyBAQCBjbGFzcyBSVENQZWVyQ29ubmVjdGlvbjsKIGNsYXNzIFNWR1NWR0Vs
ZW1lbnQ7CiBjbGFzcyBTZXJpYWxpemVkU2NyaXB0VmFsdWU7CiBjbGFzcyBTb3VyY2VCdWZmZXI7
CitjbGFzcyBTdHJpbmdDYWxsYmFjazsKIGNsYXNzIFN0eWxlU2hlZXQ7CiBjbGFzcyBUaW1lUmFu
Z2VzOwogY2xhc3MgVHlwZUNvbnZlcnNpb25zOwpAQCAtNjAzLDYgKzYwNCw4IEBAIHB1YmxpYzoK
ICAgICB2b2lkIGNsZWFyQ2FjaGVTdG9yYWdlTWVtb3J5UmVwcmVzZW50YXRpb24oRE9NUHJvbWlz
ZURlZmVycmVkPHZvaWQ+JiYpOwogICAgIHZvaWQgY2FjaGVTdG9yYWdlRW5naW5lUmVwcmVzZW50
YXRpb24oRE9NUHJvbWlzZURlZmVycmVkPElETERPTVN0cmluZz4mJik7CiAKKyAgICB2b2lkIHNl
dENvbnNvbGVNZXNzYWdlTGlzdGVuZXIoUmVmUHRyPFN0cmluZ0NhbGxiYWNrPiYmKTsKKwogcHJp
dmF0ZToKICAgICBleHBsaWNpdCBJbnRlcm5hbHMoRG9jdW1lbnQmKTsKICAgICBEb2N1bWVudCog
Y29udGV4dERvY3VtZW50KCkgY29uc3Q7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS90ZXN0
aW5nL0ludGVybmFscy5pZGwgYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5pZGwK
aW5kZXggNjU4YjE3OTNjOTJmNWExNzUwMDczZGQ5NGVjZjRkMTNkY2NkMWRlNy4uYzBjOWNhZTU0
ZjRlM2YwOGQ1NmYzY2JjMjgyYWI3ZmQ5MjdkNTcwOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvdGVzdGluZy9JbnRlcm5hbHMuaWRsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50
ZXJuYWxzLmlkbApAQCAtNTQ4LDUgKzU0OCw3IEBAIGVudW0gRXZlbnRUaHJvdHRsaW5nQmVoYXZp
b3IgewogICAgIFByb21pc2U8dm9pZD4gY2xlYXJDYWNoZVN0b3JhZ2VNZW1vcnlSZXByZXNlbnRh
dGlvbigpOwogICAgIFByb21pc2U8RE9NU3RyaW5nPiBjYWNoZVN0b3JhZ2VFbmdpbmVSZXByZXNl
bnRhdGlvbigpOwogCisgICAgdm9pZCBzZXRDb25zb2xlTWVzc2FnZUxpc3RlbmVyKFN0cmluZ0Nh
bGxiYWNrIGNhbGxiYWNrKTsKKwogICAgIERPTVN0cmluZyBhdWRpb1Nlc3Npb25DYXRlZ29yeSgp
OwogfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0Nv
bm5lY3Rpb25Ub1dlYlByb2Nlc3MuY3BwIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9O
ZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5jcHAKaW5kZXggNzAzZDU5MWMyNGJiZTkwZTZm
MDdmNGNiNWI5NDRhYTZhZWJjN2MzOC4uZDJkZjhkM2M1MjE1N2QyNmE2MTUzZmQ3Y2VkZDljZDRh
MGY3MmIxMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3Jr
Q29ubmVjdGlvblRvV2ViUHJvY2Vzcy5jcHAKKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJv
Y2Vzcy9OZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5jcHAKQEAgLTQzLDkgKzQzLDExIEBA
CiAjaW5jbHVkZSAiTmV0d29ya1Jlc291cmNlTG9hZGVyTWVzc2FnZXMuaCIKICNpbmNsdWRlICJO
ZXR3b3JrU29ja2V0U3RyZWFtLmgiCiAjaW5jbHVkZSAiTmV0d29ya1NvY2tldFN0cmVhbU1lc3Nh
Z2VzLmgiCisjaW5jbHVkZSAiUHJlY29ubmVjdFRhc2suaCIKICNpbmNsdWRlICJSZW1vdGVOZXR3
b3JraW5nQ29udGV4dC5oIgogI2luY2x1ZGUgIlNlc3Npb25UcmFja2VyLmgiCiAjaW5jbHVkZSAi
V2ViQ29yZUFyZ3VtZW50Q29kZXJzLmgiCisjaW5jbHVkZSAiV2ViRXJyb3JzLmgiCiAjaW5jbHVk
ZSAiV2Vic2l0ZURhdGFTdG9yZVBhcmFtZXRlcnMuaCIKICNpbmNsdWRlIDxXZWJDb3JlL05ldHdv
cmtTdG9yYWdlU2Vzc2lvbi5oPgogI2luY2x1ZGUgPFdlYkNvcmUvUGluZ0hhbmRsZS5oPgpAQCAt
Mjg3LDYgKzI4OSwyNiBAQCB2b2lkIE5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzOjpwcmVm
ZXRjaEROUyhjb25zdCBTdHJpbmcmIGhvc3RuYW1lKQogICAgIE5ldHdvcmtQcm9jZXNzOjpzaW5n
bGV0b24oKS5wcmVmZXRjaEROUyhob3N0bmFtZSk7CiB9CiAKK3ZvaWQgTmV0d29ya0Nvbm5lY3Rp
b25Ub1dlYlByb2Nlc3M6OnByZWNvbm5lY3RUbyhQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIHVp
bnQ2NF90IHByZWNvbm5lY3Rpb25JZGVudGlmaWVyLCBjb25zdCBVUkwmIHVybCwgV2ViQ29yZTo6
U3RvcmVkQ3JlZGVudGlhbHNQb2xpY3kgc3RvcmVkQ3JlZGVudGlhbHNQb2xpY3kpCit7CisjaWYg
RU5BQkxFKFNFUlZFUl9QUkVDT05ORUNUKQorICAgIG5ldyBQcmVjb25uZWN0VGFzayhzZXNzaW9u
SUQsIHVybCwgc3RvcmVkQ3JlZGVudGlhbHNQb2xpY3ksIFt0aGlzLCBwcm90ZWN0ZWRUaGlzID0g
bWFrZVJlZigqdGhpcyksIGlkZW50aWZpZXIgPSBwcmVjb25uZWN0aW9uSWRlbnRpZmllcl0gKGNv
bnN0IFJlc291cmNlRXJyb3ImIGVycm9yKSB7CisgICAgICAgIGRpZEZpbmlzaFByZWNvbm5lY3Rp
b24oaWRlbnRpZmllciwgZXJyb3IpOworICAgIH0pOworI2Vsc2UKKyAgICBVTlVTRURfUEFSQU0o
c3RvcmVkQ3JlZGVudGlhbHNQb2xpY3kpOworICAgIGRpZEZpbmlzaFByZWNvbm5lY3Rpb24ocHJl
Y29ubmVjdGlvbklkZW50aWZpZXIsIGludGVybmFsRXJyb3IodXJsKSk7CisjZW5kaWYKK30KKwor
dm9pZCBOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzczo6ZGlkRmluaXNoUHJlY29ubmVjdGlv
bih1aW50NjRfdCBwcmVjb25uZWN0aW9uSWRlbnRpZmllciwgY29uc3QgUmVzb3VyY2VFcnJvciYg
ZXJyb3IpCit7CisgICAgaWYgKCFtX2Nvbm5lY3Rpb24tPmlzVmFsaWQoKSkKKyAgICAgICAgcmV0
dXJuOworCisgICAgbV9jb25uZWN0aW9uLT5zZW5kKE1lc3NhZ2VzOjpOZXR3b3JrUHJvY2Vzc0Nv
bm5lY3Rpb246OkRpZEZpbmlzaFByZWNvbm5lY3Rpb24ocHJlY29ubmVjdGlvbklkZW50aWZpZXIs
IGVycm9yKSwgMCk7Cit9CisKIHN0YXRpYyBOZXR3b3JrU3RvcmFnZVNlc3Npb24mIHN0b3JhZ2VT
ZXNzaW9uKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCkKIHsKICAgICBBU1NFUlQoc2Vzc2lvbklE
LmlzVmFsaWQoKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05l
dHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmggYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9j
ZXNzL05ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmgKaW5kZXggY2QyODA0MmNmZmJmMTYw
Y2NjYjdlNWQ0ZDQ3YWMxODY5NTkyNTBkOS4uYjEwZGY1ODVkZDY5MGZjNThkNDQ4YTk3MTQ3OWJl
NTI0ZjlmM2QwYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3
b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5oCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1By
b2Nlc3MvTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuaApAQCAtNzYsNiArNzYsOCBAQCBw
dWJsaWM6CiBwcml2YXRlOgogICAgIE5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzKElQQzo6
Q29ubmVjdGlvbjo6SWRlbnRpZmllcik7CiAKKyAgICB2b2lkIGRpZEZpbmlzaFByZWNvbm5lY3Rp
b24odWludDY0X3QgcHJlY29ubmVjdGlvbklkZW50aWZpZXIsIGNvbnN0IFdlYkNvcmU6OlJlc291
cmNlRXJyb3ImKTsKKwogICAgIC8vIElQQzo6Q29ubmVjdGlvbjo6Q2xpZW50CiAgICAgdm9pZCBk
aWRSZWNlaXZlTWVzc2FnZShJUEM6OkNvbm5lY3Rpb24mLCBJUEM6OkRlY29kZXImKSBvdmVycmlk
ZTsKICAgICB2b2lkIGRpZFJlY2VpdmVTeW5jTWVzc2FnZShJUEM6OkNvbm5lY3Rpb24mLCBJUEM6
OkRlY29kZXImLCBzdGQ6OnVuaXF1ZV9wdHI8SVBDOjpFbmNvZGVyPiYpIG92ZXJyaWRlOwpAQCAt
OTAsNiArOTIsNyBAQCBwcml2YXRlOgogICAgIHZvaWQgcGVyZm9ybVN5bmNocm9ub3VzTG9hZChj
b25zdCBOZXR3b3JrUmVzb3VyY2VMb2FkUGFyYW1ldGVycyYsIFJlZjxNZXNzYWdlczo6TmV0d29y
a0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6OlBlcmZvcm1TeW5jaHJvbm91c0xvYWQ6OkRlbGF5ZWRS
ZXBseT4mJik7CiAgICAgdm9pZCBsb2FkUGluZyhOZXR3b3JrUmVzb3VyY2VMb2FkUGFyYW1ldGVy
cyYmLCBXZWJDb3JlOjpIVFRQSGVhZGVyTWFwJiYgb3JpZ2luYWxSZXF1ZXN0SGVhZGVycyk7CiAg
ICAgdm9pZCBwcmVmZXRjaEROUyhjb25zdCBTdHJpbmcmKTsKKyAgICB2b2lkIHByZWNvbm5lY3RU
byhQQUw6OlNlc3Npb25JRCwgdWludDY0X3QgcHJlY29ubmVjdGlvbklkZW50aWZpZXIsIGNvbnN0
IFdlYkNvcmU6OlVSTCYsIFdlYkNvcmU6OlN0b3JlZENyZWRlbnRpYWxzUG9saWN5KTsKIAogICAg
IHZvaWQgcmVtb3ZlTG9hZElkZW50aWZpZXIoUmVzb3VyY2VMb2FkSWRlbnRpZmllcik7CiAgICAg
dm9pZCBzZXREZWZlcnNMb2FkaW5nKFJlc291cmNlTG9hZElkZW50aWZpZXIsIGJvb2wpOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrQ29ubmVjdGlvblRv
V2ViUHJvY2Vzcy5tZXNzYWdlcy5pbiBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0
d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MubWVzc2FnZXMuaW4KaW5kZXggYWJmMGZjY2EwMDJh
NGFlNTNjZTBhZTcwODI2YmVlYWU0MWQ2ZWQ1Ni4uZTg1ZTk3MzI4MjRkMDI5YjFiN2VlZGVmMzA5
NzNmZDdlMGE3NjZkYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9O
ZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5tZXNzYWdlcy5pbgorKysgYi9Tb3VyY2UvV2Vi
S2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzLm1lc3NhZ2Vz
LmluCkBAIC0yOCw2ICsyOCw3IEBAIG1lc3NhZ2VzIC0+IE5ldHdvcmtDb25uZWN0aW9uVG9XZWJQ
cm9jZXNzIExlZ2FjeVJlY2VpdmVyIHsKICAgICBSZW1vdmVMb2FkSWRlbnRpZmllcih1aW50NjRf
dCByZXNvdXJjZUxvYWRJZGVudGlmaWVyKQogICAgIFNldERlZmVyc0xvYWRpbmcodWludDY0X3Qg
cmVzb3VyY2VMb2FkSWRlbnRpZmllciwgYm9vbCBkZWZlcnMpCiAgICAgUHJlZmV0Y2hETlMoU3Ry
aW5nIGhvc3RuYW1lKQorICAgIFByZWNvbm5lY3RUbyhQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQs
IHVpbnQ2NF90IHByZWNvbm5lY3Rpb25JZGVudGlmaWVyLCBXZWJDb3JlOjpVUkwgdXJsLCBlbnVt
IFdlYkNvcmU6OlN0b3JlZENyZWRlbnRpYWxzUG9saWN5IHN0b3JlZENyZWRlbnRpYWxzUG9saWN5
KTsKIAogICAgIFN0YXJ0RG93bmxvYWQoUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBXZWJLaXQ6
OkRvd25sb2FkSUQgZG93bmxvYWRJRCwgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0IHJlcXVlc3Qs
IFN0cmluZyBzdWdnZXN0ZWROYW1lKQogICAgIENvbnZlcnRNYWluUmVzb3VyY2VMb2FkVG9Eb3du
bG9hZChQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIHVpbnQ2NF90IG1haW5SZXNvdXJjZUxvYWRJ
ZGVudGlmaWVyLCBXZWJLaXQ6OkRvd25sb2FkSUQgZG93bmxvYWRJRCwgV2ViQ29yZTo6UmVzb3Vy
Y2VSZXF1ZXN0IHJlcXVlc3QsIFdlYkNvcmU6OlJlc291cmNlUmVzcG9uc2UgcmVzcG9uc2UpCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtEYXRhVGFzay5j
cHAgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtEYXRhVGFzay5jcHAKaW5k
ZXggODA1NGI0NzMzZGZmYTMwZDRhMDI5MmVmNTJhOGI5NjY2Y2IzNTk0MS4uYmI3ZjE3NTFmZmU0
YTE5YmU1Mzg4M2NkNWUxYjFhZTM4MzgwMjU1NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9O
ZXR3b3JrUHJvY2Vzcy9OZXR3b3JrRGF0YVRhc2suY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0
d29ya1Byb2Nlc3MvTmV0d29ya0RhdGFUYXNrLmNwcApAQCAtNTMsNyArNTMsNyBAQCBSZWY8TmV0
d29ya0RhdGFUYXNrPiBOZXR3b3JrRGF0YVRhc2s6OmNyZWF0ZShOZXR3b3JrU2Vzc2lvbiYgc2Vz
c2lvbiwgTmV0d29ya0RhdAogICAgICAgICByZXR1cm4gTmV0d29ya0RhdGFUYXNrQmxvYjo6Y3Jl
YXRlKHNlc3Npb24sIGNsaWVudCwgcGFyYW1ldGVycy5yZXF1ZXN0LCBwYXJhbWV0ZXJzLmNvbnRl
bnRTbmlmZmluZ1BvbGljeSwgcGFyYW1ldGVycy5ibG9iRmlsZVJlZmVyZW5jZXMpOwogCiAjaWYg
UExBVEZPUk0oQ09DT0EpCi0gICAgcmV0dXJuIE5ldHdvcmtEYXRhVGFza0NvY29hOjpjcmVhdGUo
c2Vzc2lvbiwgY2xpZW50LCBwYXJhbWV0ZXJzLnJlcXVlc3QsIHBhcmFtZXRlcnMuc3RvcmVkQ3Jl
ZGVudGlhbHNQb2xpY3ksIHBhcmFtZXRlcnMuY29udGVudFNuaWZmaW5nUG9saWN5LCBwYXJhbWV0
ZXJzLnNob3VsZENsZWFyUmVmZXJyZXJPbkhUVFBTVG9IVFRQUmVkaXJlY3QpOworICAgIHJldHVy
biBOZXR3b3JrRGF0YVRhc2tDb2NvYTo6Y3JlYXRlKHNlc3Npb24sIGNsaWVudCwgcGFyYW1ldGVy
cy5yZXF1ZXN0LCBwYXJhbWV0ZXJzLnN0b3JlZENyZWRlbnRpYWxzUG9saWN5LCBwYXJhbWV0ZXJz
LmNvbnRlbnRTbmlmZmluZ1BvbGljeSwgcGFyYW1ldGVycy5zaG91bGRDbGVhclJlZmVycmVyT25I
VFRQU1RvSFRUUFJlZGlyZWN0LCBwYXJhbWV0ZXJzLnNob3VsZFByZWNvbm5lY3RPbmx5KTsKICNl
bmRpZgogI2lmIFVTRShTT1VQKQogICAgIHJldHVybiBOZXR3b3JrRGF0YVRhc2tTb3VwOjpjcmVh
dGUoc2Vzc2lvbiwgY2xpZW50LCBwYXJhbWV0ZXJzLnJlcXVlc3QsIHBhcmFtZXRlcnMuc3RvcmVk
Q3JlZGVudGlhbHNQb2xpY3ksIHBhcmFtZXRlcnMuY29udGVudFNuaWZmaW5nUG9saWN5LCBwYXJh
bWV0ZXJzLnNob3VsZENsZWFyUmVmZXJyZXJPbkhUVFBTVG9IVFRQUmVkaXJlY3QpOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrTG9hZFBhcmFtZXRlcnMu
aCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0xvYWRQYXJhbWV0ZXJzLmgK
aW5kZXggMWZiZDJkYTQ5MWQ4NzZmMWFhYjlkMTI4ZTgzNGZlNGQ3MWQ0OTEwYi4uMjVhYTUwNTgw
ZGU5YTk4YWNkYzAyN2E4MTA3YTI4ZWE4OTM0NzU3OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrTG9hZFBhcmFtZXRlcnMuaAorKysgYi9Tb3VyY2UvV2Vi
S2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtMb2FkUGFyYW1ldGVycy5oCkBAIC0zMyw2ICszMyw4
IEBACiAKIG5hbWVzcGFjZSBXZWJLaXQgewogCitlbnVtIGNsYXNzIFByZWNvbm5lY3RPbmx5IHsg
Tm8sIFllcyB9OworCiBjbGFzcyBOZXR3b3JrTG9hZFBhcmFtZXRlcnMgewogcHVibGljOgogICAg
IHVpbnQ2NF90IHdlYlBhZ2VJRCB7IDAgfTsKQEAgLTQ5LDYgKzUxLDcgQEAgcHVibGljOgogI2lm
IFVTRShORVRXT1JLX1NFU1NJT04pCiAgICAgVmVjdG9yPFJlZlB0cjxXZWJDb3JlOjpCbG9iRGF0
YUZpbGVSZWZlcmVuY2U+PiBibG9iRmlsZVJlZmVyZW5jZXM7CiAjZW5kaWYKKyAgICBQcmVjb25u
ZWN0T25seSBzaG91bGRQcmVjb25uZWN0T25seSB7IFByZWNvbm5lY3RPbmx5OjpObyB9OwogfTsK
IAogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdv
cmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLmNwcCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nl
c3MvTmV0d29ya1Byb2Nlc3MuY3BwCmluZGV4IDc5ZTAyY2Y4NzIxNTJjN2EwOWI2ODQ5YTY1ZDZh
ZTNkOGIzZTY1ODguLmQ0NmM2ZjNiMDc1OTRlYWUyZmNlNjBhN2I3MjMzYjRhNTFiNmMwNGYgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MuY3Bw
CisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MuY3BwCkBA
IC00MCw2ICs0MCw3IEBACiAjaW5jbHVkZSAiTmV0d29ya1Byb2Nlc3NQcm94eU1lc3NhZ2VzLmgi
CiAjaW5jbHVkZSAiTmV0d29ya1Jlc291cmNlTG9hZGVyLmgiCiAjaW5jbHVkZSAiTmV0d29ya1Nl
c3Npb24uaCIKKyNpbmNsdWRlICJQcmVjb25uZWN0VGFzay5oIgogI2luY2x1ZGUgIlJlbW90ZU5l
dHdvcmtpbmdDb250ZXh0LmgiCiAjaW5jbHVkZSAiU2Vzc2lvblRyYWNrZXIuaCIKICNpbmNsdWRl
ICJTdGF0aXN0aWNzRGF0YS5oIgpAQCAtNzI1LDYgKzcyNiwxNiBAQCBTdHJpbmcgTmV0d29ya1By
b2Nlc3M6OmNhY2hlU3RvcmFnZURpcmVjdG9yeShQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQpIGNv
bnN0CiAgICAgcmV0dXJuIHNlc3Npb24tPmNhY2hlU3RvcmFnZURpcmVjdG9yeSgpOwogfQogCit2
b2lkIE5ldHdvcmtQcm9jZXNzOjpwcmVjb25uZWN0VG8oY29uc3QgV2ViQ29yZTo6VVJMJiB1cmws
IFdlYkNvcmU6OlN0b3JlZENyZWRlbnRpYWxzUG9saWN5IHN0b3JlZENyZWRlbnRpYWxzUG9saWN5
KQoreworI2lmIEVOQUJMRShTRVJWRVJfUFJFQ09OTkVDVCkKKyAgICBuZXcgUHJlY29ubmVjdFRh
c2soUEFMOjpTZXNzaW9uSUQ6OmRlZmF1bHRTZXNzaW9uSUQoKSwgdXJsLCBzdG9yZWRDcmVkZW50
aWFsc1BvbGljeSk7CisjZWxzZQorICAgIFVOVVNFRF9QQVJBTSh1cmwpOworICAgIFVOVVNFRF9Q
QVJBTShzdG9yZWRDcmVkZW50aWFsc1BvbGljeSk7CisjZW5kaWYKK30KKwogI2lmICFQTEFURk9S
TShDT0NPQSkKIHZvaWQgTmV0d29ya1Byb2Nlc3M6OmluaXRpYWxpemVQcm9jZXNzKGNvbnN0IENo
aWxkUHJvY2Vzc0luaXRpYWxpemF0aW9uUGFyYW1ldGVycyYpCiB7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLmggYi9Tb3VyY2UvV2ViS2l0
L05ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLmgKaW5kZXggMTRhNTIyZmNkNmRkNWYwZmRi
YzRhNTAxMDVhMGFiNDBiYjBjNTJiMC4uYjlmYTcyMDg0YzQ4MDk1MTI3NGFmOWE0MTQ3YmVlYjA1
NzFiOGI1NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3Jr
UHJvY2Vzcy5oCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nl
c3MuaApAQCAtNTQsNiArNTQsOCBAQCBjbGFzcyBQcm90ZWN0aW9uU3BhY2U7CiBjbGFzcyBTZWN1
cml0eU9yaWdpbjsKIHN0cnVjdCBTZWN1cml0eU9yaWdpbkRhdGE7CiBzdHJ1Y3QgU291cE5ldHdv
cmtQcm94eVNldHRpbmdzOworZW51bSBjbGFzcyBTdG9yZWRDcmVkZW50aWFsc1BvbGljeTsKK2Ns
YXNzIFVSTDsKIH0KIAogbmFtZXNwYWNlIFdlYktpdCB7CkBAIC0xMzcsNiArMTM5LDggQEAgcHVi
bGljOgogICAgIFNlY29uZHMgbG9hZFRocm90dGxlTGF0ZW5jeSgpIGNvbnN0IHsgcmV0dXJuIG1f
bG9hZFRocm90dGxlTGF0ZW5jeTsgfQogICAgIFN0cmluZyBjYWNoZVN0b3JhZ2VEaXJlY3Rvcnko
UEFMOjpTZXNzaW9uSUQpIGNvbnN0OwogCisgICAgdm9pZCBwcmVjb25uZWN0VG8oY29uc3QgV2Vi
Q29yZTo6VVJMJiwgV2ViQ29yZTo6U3RvcmVkQ3JlZGVudGlhbHNQb2xpY3kpOworCiBwcml2YXRl
OgogICAgIE5ldHdvcmtQcm9jZXNzKCk7CiAgICAgfk5ldHdvcmtQcm9jZXNzKCk7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLm1lc3NhZ2Vz
LmluIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5tZXNzYWdl
cy5pbgppbmRleCA2OTRlNDc0ODg2ZTBmNzg0Zjc1OWI0ZWJkZDhlNmU5ZTVlNjljNTg4Li40NjFm
MWMwZWMyODJmMjE2ZWY4OWE0OThlMzI5NDZkOGUxNjM1ODhhIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLm1lc3NhZ2VzLmluCisrKyBiL1Nv
dXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MubWVzc2FnZXMuaW4KQEAg
LTgyLDYgKzgyLDggQEAgbWVzc2FnZXMgLT4gTmV0d29ya1Byb2Nlc3MgTGVnYWN5UmVjZWl2ZXIg
ewogCiAgICAgRGlkR3JhbnRTYW5kYm94RXh0ZW5zaW9uc1RvU3RvcmFnZVByb2Nlc3NGb3JCbG9i
cyh1aW50NjRfdCByZXF1ZXN0SUQpCiAKKyAgICBQcmVjb25uZWN0VG8oV2ViQ29yZTo6VVJMIHVy
bCwgZW51bSBXZWJDb3JlOjpTdG9yZWRDcmVkZW50aWFsc1BvbGljeSBzdG9yZWRDcmVkZW50aWFs
c1BvbGljeSk7CisKICNpZiBIQVZFKENGTkVUV09SS19TVE9SQUdFX1BBUlRJVElPTklORykKICAg
ICBVcGRhdGVQcmV2YWxlbnREb21haW5zVG9QYXJ0aXRpb25PckJsb2NrQ29va2llcyhQQUw6OlNl
c3Npb25JRCBzZXNzaW9uSUQsIFZlY3RvcjxTdHJpbmc+IGRvbWFpbnNUb1BhcnRpdGlvbiwgVmVj
dG9yPFN0cmluZz4gZG9tYWluc1RvQmxvY2ssIFZlY3RvcjxTdHJpbmc+IGRvbWFpbnNUb05laXRo
ZXJQYXJ0aXRpb25Ob3JCbG9jaywgYm9vbCBzaG91bGRDbGVhckZpcnN0KQogICAgIFJlbW92ZVBy
ZXZhbGVudERvbWFpbnMoUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBWZWN0b3I8U3RyaW5nPiBk
b21haW5zV2l0aEludGVyYWN0aW9uKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29y
a1Byb2Nlc3MvUHJlY29ubmVjdFRhc2suY3BwIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vz
cy9QcmVjb25uZWN0VGFzay5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uY2E4OTMzNDAxMzZhOTUxMDIyNDNhNjlh
Y2JkZWQ0OTRhZGZjZGM1NAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29y
a1Byb2Nlc3MvUHJlY29ubmVjdFRhc2suY3BwCkBAIC0wLDAgKzEsMTM2IEBACisvKgorICogQ29w
eXJpZ2h0IChDKSAyMDE3IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBS
ZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9y
IHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRo
ZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9u
cyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2Ug
dGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlv
biBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4K
KyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBD
T05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJS
QU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdB
UlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIK
KyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4g
T1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVD
VCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBE
QU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAq
IFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9G
SVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04g
QU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1Qg
TElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisg
KiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZF
TiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8K
KworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIlByZWNvbm5lY3RUYXNrLmgiCisKKyNp
ZiBFTkFCTEUoU0VSVkVSX1BSRUNPTk5FQ1QpCisKKyNpbmNsdWRlICJBdXRoZW50aWNhdGlvbk1h
bmFnZXIuaCIKKyNpbmNsdWRlICJMb2dnaW5nLmgiCisjaW5jbHVkZSAiTmV0d29ya0xvYWRQYXJh
bWV0ZXJzLmgiCisjaW5jbHVkZSAiTmV0d29ya1Nlc3Npb24uaCIKKyNpbmNsdWRlICJTZXNzaW9u
VHJhY2tlci5oIgorI2luY2x1ZGUgIldlYkVycm9ycy5oIgorI2luY2x1ZGUgPFdlYkNvcmUvQXV0
aGVudGljYXRpb25DaGFsbGVuZ2UuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL1Jlc291cmNlRXJyb3Iu
aD4KKworI2lmIFBMQVRGT1JNKENPQ09BKQorI2luY2x1ZGUgIk5ldHdvcmtEYXRhVGFza0NvY29h
LmgiCisjZW5kaWYKKworbmFtZXNwYWNlIFdlYktpdCB7CisKK3VzaW5nIG5hbWVzcGFjZSBXZWJD
b3JlOworCitQcmVjb25uZWN0VGFzazo6UHJlY29ubmVjdFRhc2soUEFMOjpTZXNzaW9uSUQgc2Vz
c2lvbklELCBjb25zdCBVUkwmIHVybCwgV2ViQ29yZTo6U3RvcmVkQ3JlZGVudGlhbHNQb2xpY3kg
c3RvcmVkQ3JlZGVudGlhbHNQb2xpY3ksIFdURjo6Q29tcGxldGlvbkhhbmRsZXI8dm9pZChjb25z
dCBXZWJDb3JlOjpSZXNvdXJjZUVycm9yJik+JiYgY29tcGxldGlvbkhhbmRsZXIpCisgICAgOiBt
X2NvbXBsZXRpb25IYW5kbGVyKFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpKQorICAgICwgbV90
aW1lb3V0VGltZXIoW3RoaXNdIHsgZGlkRmluaXNoKFJlc291cmNlRXJyb3IgeyBTdHJpbmcoKSwg
MCwgbV90YXNrLT5maXJzdFJlcXVlc3QoKS51cmwoKSwgQVNDSUlMaXRlcmFsKCJQcmVjb25uZWN0
aW9uIHRpbWVkIG91dCIpLCBSZXNvdXJjZUVycm9yOjpUeXBlOjpUaW1lb3V0IH0pOyB9KQorewor
ICAgIGF1dG8qIG5ldHdvcmtTZXNzaW9uID0gU2Vzc2lvblRyYWNrZXI6Om5ldHdvcmtTZXNzaW9u
KHNlc3Npb25JRCk7CisgICAgQVNTRVJUKG5ldHdvcmtTZXNzaW9uKTsKKworICAgIFJFTEVBU0Vf
TE9HKE5ldHdvcmssICIlcCAtIFByZWNvbm5lY3RUYXNrOjpQcmVjb25uZWN0VGFzaygpIiwgdGhp
cyk7CisgICAgTmV0d29ya0xvYWRQYXJhbWV0ZXJzIHBhcmFtZXRlcnM7CisgICAgcGFyYW1ldGVy
cy5yZXF1ZXN0ID0gUmVzb3VyY2VSZXF1ZXN0KHVybCk7CisgICAgcGFyYW1ldGVycy5zaG91bGRQ
cmVjb25uZWN0T25seSA9IFByZWNvbm5lY3RPbmx5OjpZZXM7CisgICAgcGFyYW1ldGVycy5zdG9y
ZWRDcmVkZW50aWFsc1BvbGljeSA9IHN0b3JlZENyZWRlbnRpYWxzUG9saWN5OworICAgIG1fdGFz
ayA9IE5ldHdvcmtEYXRhVGFzazo6Y3JlYXRlKCpuZXR3b3JrU2Vzc2lvbiwgKnRoaXMsIHBhcmFt
ZXRlcnMpOworICAgIG1fdGFzay0+cmVzdW1lKCk7CisKKyAgICBtX3RpbWVvdXRUaW1lci5zdGFy
dE9uZVNob3QoNjAwMDBfcyk7Cit9CisKK1ByZWNvbm5lY3RUYXNrOjp+UHJlY29ubmVjdFRhc2so
KQoreworICAgIEFTU0VSVChtX3Rhc2stPmNsaWVudCgpID09IHRoaXMpOworICAgIG1fdGFzay0+
Y2xlYXJDbGllbnQoKTsKKyAgICBtX3Rhc2stPmNhbmNlbCgpOworfQorCit2b2lkIFByZWNvbm5l
Y3RUYXNrOjp3aWxsUGVyZm9ybUhUVFBSZWRpcmVjdGlvbihXZWJDb3JlOjpSZXNvdXJjZVJlc3Bv
bnNlJiYsIFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYmLCBSZWRpcmVjdENvbXBsZXRpb25IYW5k
bGVyJiYpCit7CisgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7Cit9CisKK3ZvaWQgUHJlY29ubmVj
dFRhc2s6OmRpZFJlY2VpdmVDaGFsbGVuZ2UoY29uc3QgV2ViQ29yZTo6QXV0aGVudGljYXRpb25D
aGFsbGVuZ2UmIGNoYWxsZW5nZSwgQ2hhbGxlbmdlQ29tcGxldGlvbkhhbmRsZXImJiBjb21wbGV0
aW9uSGFuZGxlcikKK3sKKyAgICBpZiAoY2hhbGxlbmdlLnByb3RlY3Rpb25TcGFjZSgpLmF1dGhl
bnRpY2F0aW9uU2NoZW1lKCkgPT0gUHJvdGVjdGlvblNwYWNlQXV0aGVudGljYXRpb25TY2hlbWVT
ZXJ2ZXJUcnVzdEV2YWx1YXRpb25SZXF1ZXN0ZWQpIHsKKyAgICAgICAgaWYgKG1fdGFzayAmJiBt
X3Rhc2stPmFsbG93c1NwZWNpZmljSFRUUFNDZXJ0aWZpY2F0ZUZvckhvc3QoY2hhbGxlbmdlKSkK
KyAgICAgICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKEF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlRGlz
cG9zaXRpb246OlVzZUNyZWRlbnRpYWwsIHNlcnZlclRydXN0Q3JlZGVudGlhbChjaGFsbGVuZ2Up
KTsKKyAgICAgICAgZWxzZQorICAgICAgICAgICAgY29tcGxldGlvbkhhbmRsZXIoQXV0aGVudGlj
YXRpb25DaGFsbGVuZ2VEaXNwb3NpdGlvbjo6UmVqZWN0UHJvdGVjdGlvblNwYWNlLCB7IH0pOwor
ICAgICAgICByZXR1cm47CisgICAgfQorICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOworfQorCit2
b2lkIFByZWNvbm5lY3RUYXNrOjpkaWRSZWNlaXZlUmVzcG9uc2VOZXR3b3JrU2Vzc2lvbihXZWJD
b3JlOjpSZXNvdXJjZVJlc3BvbnNlJiYsIFJlc3BvbnNlQ29tcGxldGlvbkhhbmRsZXImJikKK3sK
KyAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKK30KKwordm9pZCBQcmVjb25uZWN0VGFzazo6ZGlk
UmVjZWl2ZURhdGEoUmVmPFdlYkNvcmU6OlNoYXJlZEJ1ZmZlcj4mJikKK3sKKyAgICBBU1NFUlRf
Tk9UX1JFQUNIRUQoKTsKK30KKwordm9pZCBQcmVjb25uZWN0VGFzazo6ZGlkQ29tcGxldGVXaXRo
RXJyb3IoY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VFcnJvciYgZXJyb3IsIGNvbnN0IFdlYkNvcmU6
Ok5ldHdvcmtMb2FkTWV0cmljcyYpCit7CisgICAgaWYgKGVycm9yLmlzTnVsbCgpKQorICAgICAg
ICBSRUxFQVNFX0xPRyhOZXR3b3JrLCAiJXAgLSBQcmVjb25uZWN0VGFzazo6ZGlkQ29tcGxldGUi
LCB0aGlzKTsKKyAgICBlbHNlCisgICAgICAgIFJFTEVBU0VfTE9HKE5ldHdvcmssICIlcCAtIFBy
ZWNvbm5lY3RUYXNrOjpkaWRDb21wbGV0ZVdpdGhFcnJvciwgZXJyb3JfY29kZTogJWQiLCB0aGlz
LCBlcnJvci5lcnJvckNvZGUoKSk7CisKKyAgICBkaWRGaW5pc2goZXJyb3IpOworfQorCit2b2lk
IFByZWNvbm5lY3RUYXNrOjpkaWRTZW5kRGF0YSh1aW50NjRfdCB0b3RhbEJ5dGVzU2VudCwgdWlu
dDY0X3QgdG90YWxCeXRlc0V4cGVjdGVkVG9TZW5kKQoreworICAgIEFTU0VSVF9OT1RfUkVBQ0hF
RCgpOworfQorCit2b2lkIFByZWNvbm5lY3RUYXNrOjp3YXNCbG9ja2VkKCkKK3sKKyAgICBSRUxF
QVNFX0xPRyhOZXR3b3JrLCAiJXAgLSBQcmVjb25uZWN0VGFzazo6d2FzQmxvY2tlZCgpIiwgdGhp
cyk7CisgICAgZGlkRmluaXNoKGJsb2NrZWRFcnJvcihtX3Rhc2stPmZpcnN0UmVxdWVzdCgpKSk7
Cit9CisKK3ZvaWQgUHJlY29ubmVjdFRhc2s6OmNhbm5vdFNob3dVUkwoKQoreworICAgIFJFTEVB
U0VfTE9HKE5ldHdvcmssICIlcCAtIFByZWNvbm5lY3RUYXNrOjpjYW5ub3RTaG93VVJMKCkiLCB0
aGlzKTsKKyAgICBkaWRGaW5pc2goY2Fubm90U2hvd1VSTEVycm9yKG1fdGFzay0+Zmlyc3RSZXF1
ZXN0KCkpKTsKK30KKwordm9pZCBQcmVjb25uZWN0VGFzazo6ZGlkRmluaXNoKGNvbnN0IFJlc291
cmNlRXJyb3ImIGVycm9yKQoreworICAgIGlmIChtX2NvbXBsZXRpb25IYW5kbGVyKQorICAgICAg
ICBtX2NvbXBsZXRpb25IYW5kbGVyKGVycm9yKTsKKyAgICBkZWxldGUgdGhpczsKK30KKworfSAv
LyBuYW1lc3BhY2UgV2ViS2l0CisKKyNlbmRpZiAvLyBFTkFCTEUoU0VSVkVSX1BSRUNPTk5FQ1Qp
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL1ByZWNvbm5lY3RUYXNr
LmggYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL1ByZWNvbm5lY3RUYXNrLmgKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uYmY5ZTM5NWU4MWViMTI5MjVlMmI4NWQ4ODMwMjU3YjBhOTZjNjEyYgotLS0gL2Rldi9u
dWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvUHJlY29ubmVjdFRhc2suaApA
QCAtMCwwICsxLDY1IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE3IEFwcGxlIEluYy4gQWxs
IHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJj
ZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJl
IHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJl
IG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0
aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4g
YmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
IGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3Zp
ZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJ
REVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQg
QU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFO
RCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElO
IE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElB
QkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBM
QVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7
IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBU
SU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRI
RVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcg
TkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRI
RSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lC
SUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNpZiBFTkFCTEUo
U0VSVkVSX1BSRUNPTk5FQ1QpCisKKyNpbmNsdWRlICJOZXR3b3JrRGF0YVRhc2suaCIKKyNpbmNs
dWRlIDxXZWJDb3JlL1RpbWVyLmg+CisjaW5jbHVkZSA8d3RmL0NvbXBsZXRpb25IYW5kbGVyLmg+
CisKK25hbWVzcGFjZSBQQUwgeworY2xhc3MgU2Vzc2lvbklEOworfQorCituYW1lc3BhY2UgV2Vi
S2l0IHsKKworY2xhc3MgUHJlY29ubmVjdFRhc2sgZmluYWwgOiBwcml2YXRlIE5ldHdvcmtEYXRh
VGFza0NsaWVudCB7CitwdWJsaWM6CisgICAgZXhwbGljaXQgUHJlY29ubmVjdFRhc2soUEFMOjpT
ZXNzaW9uSUQsIGNvbnN0IFdlYkNvcmU6OlVSTCYsIFdlYkNvcmU6OlN0b3JlZENyZWRlbnRpYWxz
UG9saWN5LCBXVEY6OkNvbXBsZXRpb25IYW5kbGVyPHZvaWQoY29uc3QgV2ViQ29yZTo6UmVzb3Vy
Y2VFcnJvciYpPiYmIGNvbXBsZXRpb25IYW5kbGVyID0geyB9KTsKKyAgICB+UHJlY29ubmVjdFRh
c2soKTsKKworcHJpdmF0ZToKKyAgICAvLyBOZXR3b3JrRGF0YVRhc2tDbGllbnQuCisgICAgdm9p
ZCB3aWxsUGVyZm9ybUhUVFBSZWRpcmVjdGlvbihXZWJDb3JlOjpSZXNvdXJjZVJlc3BvbnNlJiYs
IFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYmLCBSZWRpcmVjdENvbXBsZXRpb25IYW5kbGVyJiYp
IGZpbmFsOworICAgIHZvaWQgZGlkUmVjZWl2ZUNoYWxsZW5nZShjb25zdCBXZWJDb3JlOjpBdXRo
ZW50aWNhdGlvbkNoYWxsZW5nZSYsIENoYWxsZW5nZUNvbXBsZXRpb25IYW5kbGVyJiYpIGZpbmFs
OworICAgIHZvaWQgZGlkUmVjZWl2ZVJlc3BvbnNlTmV0d29ya1Nlc3Npb24oV2ViQ29yZTo6UmVz
b3VyY2VSZXNwb25zZSYmLCBSZXNwb25zZUNvbXBsZXRpb25IYW5kbGVyJiYpIGZpbmFsOworICAg
IHZvaWQgZGlkUmVjZWl2ZURhdGEoUmVmPFdlYkNvcmU6OlNoYXJlZEJ1ZmZlcj4mJikgZmluYWw7
CisgICAgdm9pZCBkaWRDb21wbGV0ZVdpdGhFcnJvcihjb25zdCBXZWJDb3JlOjpSZXNvdXJjZUVy
cm9yJiwgY29uc3QgV2ViQ29yZTo6TmV0d29ya0xvYWRNZXRyaWNzJikgZmluYWw7CisgICAgdm9p
ZCBkaWRTZW5kRGF0YSh1aW50NjRfdCB0b3RhbEJ5dGVzU2VudCwgdWludDY0X3QgdG90YWxCeXRl
c0V4cGVjdGVkVG9TZW5kKSBmaW5hbDsKKyAgICB2b2lkIHdhc0Jsb2NrZWQoKSBmaW5hbDsKKyAg
ICB2b2lkIGNhbm5vdFNob3dVUkwoKSBmaW5hbDsKKworICAgIHZvaWQgZGlkRmluaXNoKGNvbnN0
IFdlYkNvcmU6OlJlc291cmNlRXJyb3ImKTsKKworICAgIFJlZlB0cjxOZXR3b3JrRGF0YVRhc2s+
IG1fdGFzazsKKyAgICBXVEY6OkNvbXBsZXRpb25IYW5kbGVyPHZvaWQoY29uc3QgV2ViQ29yZTo6
UmVzb3VyY2VFcnJvciYpPiBtX2NvbXBsZXRpb25IYW5kbGVyOworICAgIFdlYkNvcmU6OlRpbWVy
IG1fdGltZW91dFRpbWVyOworfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CisKKyNlbmRpZiAv
LyBFTkFCTEUoU0VSVkVSX1BSRUNPTk5FQ1QpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05l
dHdvcmtQcm9jZXNzL2NvY29hL05ldHdvcmtEYXRhVGFza0NvY29hLmggYi9Tb3VyY2UvV2ViS2l0
L05ldHdvcmtQcm9jZXNzL2NvY29hL05ldHdvcmtEYXRhVGFza0NvY29hLmgKaW5kZXggY2RmNDMy
NGMwNmJkNmM3MTEwMDc0NzA2ZTUyOTUyMTk4MGYwNDNjOC4uMjEyYTlhMDhmYjEyMTE3ZWQ4M2Ex
MjI2ZGZiZjRmYWYwZjQ5ZTIyYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJv
Y2Vzcy9jb2NvYS9OZXR3b3JrRGF0YVRhc2tDb2NvYS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0
d29ya1Byb2Nlc3MvY29jb2EvTmV0d29ya0RhdGFUYXNrQ29jb2EuaApAQCAtMjgsNiArMjgsNyBA
QAogI2lmIFVTRShORVRXT1JLX1NFU1NJT04pCiAKICNpbmNsdWRlICJOZXR3b3JrRGF0YVRhc2su
aCIKKyNpbmNsdWRlICJOZXR3b3JrTG9hZFBhcmFtZXRlcnMuaCIKICNpbmNsdWRlIDxXZWJDb3Jl
L05ldHdvcmtMb2FkTWV0cmljcy5oPgogI2luY2x1ZGUgPHd0Zi9SZXRhaW5QdHIuaD4KIApAQCAt
NDAsOSArNDEsOSBAQCBjbGFzcyBOZXR3b3JrU2Vzc2lvbkNvY29hOwogY2xhc3MgTmV0d29ya0Rh
dGFUYXNrQ29jb2EgZmluYWwgOiBwdWJsaWMgTmV0d29ya0RhdGFUYXNrIHsKICAgICBmcmllbmQg
Y2xhc3MgTmV0d29ya1Nlc3Npb25Db2NvYTsKIHB1YmxpYzoKLSAgICBzdGF0aWMgUmVmPE5ldHdv
cmtEYXRhVGFzaz4gY3JlYXRlKE5ldHdvcmtTZXNzaW9uJiBzZXNzaW9uLCBOZXR3b3JrRGF0YVRh
c2tDbGllbnQmIGNsaWVudCwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0
LCBXZWJDb3JlOjpTdG9yZWRDcmVkZW50aWFsc1BvbGljeSBzdG9yZWRDcmVkZW50aWFsc1BvbGlj
eSwgV2ViQ29yZTo6Q29udGVudFNuaWZmaW5nUG9saWN5IHNob3VsZENvbnRlbnRTbmlmZiwgYm9v
bCBzaG91bGRDbGVhclJlZmVycmVyT25IVFRQU1RvSFRUUFJlZGlyZWN0KQorICAgIHN0YXRpYyBS
ZWY8TmV0d29ya0RhdGFUYXNrPiBjcmVhdGUoTmV0d29ya1Nlc3Npb24mIHNlc3Npb24sIE5ldHdv
cmtEYXRhVGFza0NsaWVudCYgY2xpZW50LCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3Qm
IHJlcXVlc3QsIFdlYkNvcmU6OlN0b3JlZENyZWRlbnRpYWxzUG9saWN5IHN0b3JlZENyZWRlbnRp
YWxzUG9saWN5LCBXZWJDb3JlOjpDb250ZW50U25pZmZpbmdQb2xpY3kgc2hvdWxkQ29udGVudFNu
aWZmLCBib29sIHNob3VsZENsZWFyUmVmZXJyZXJPbkhUVFBTVG9IVFRQUmVkaXJlY3QsIFByZWNv
bm5lY3RPbmx5IHNob3VsZFByZWNvbm5lY3RPbmx5KQogICAgIHsKLSAgICAgICAgcmV0dXJuIGFk
b3B0UmVmKCpuZXcgTmV0d29ya0RhdGFUYXNrQ29jb2Eoc2Vzc2lvbiwgY2xpZW50LCByZXF1ZXN0
LCBzdG9yZWRDcmVkZW50aWFsc1BvbGljeSwgc2hvdWxkQ29udGVudFNuaWZmLCBzaG91bGRDbGVh
clJlZmVycmVyT25IVFRQU1RvSFRUUFJlZGlyZWN0KSk7CisgICAgICAgIHJldHVybiBhZG9wdFJl
ZigqbmV3IE5ldHdvcmtEYXRhVGFza0NvY29hKHNlc3Npb24sIGNsaWVudCwgcmVxdWVzdCwgc3Rv
cmVkQ3JlZGVudGlhbHNQb2xpY3ksIHNob3VsZENvbnRlbnRTbmlmZiwgc2hvdWxkQ2xlYXJSZWZl
cnJlck9uSFRUUFNUb0hUVFBSZWRpcmVjdCwgc2hvdWxkUHJlY29ubmVjdE9ubHkpKTsKICAgICB9
CiAKICAgICB+TmV0d29ya0RhdGFUYXNrQ29jb2EoKTsKQEAgLTcxLDcgKzcyLDcgQEAgcHVibGlj
OgogICAgIFdlYkNvcmU6Ok5ldHdvcmtMb2FkTWV0cmljcyYgbmV0d29ya0xvYWRNZXRyaWNzKCkg
eyByZXR1cm4gbV9uZXR3b3JrTG9hZE1ldHJpY3M7IH0KIAogcHJpdmF0ZToKLSAgICBOZXR3b3Jr
RGF0YVRhc2tDb2NvYShOZXR3b3JrU2Vzc2lvbiYsIE5ldHdvcmtEYXRhVGFza0NsaWVudCYsIGNv
bnN0IFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYsIFdlYkNvcmU6OlN0b3JlZENyZWRlbnRpYWxz
UG9saWN5LCBXZWJDb3JlOjpDb250ZW50U25pZmZpbmdQb2xpY3ksIGJvb2wgc2hvdWxkQ2xlYXJS
ZWZlcnJlck9uSFRUUFNUb0hUVFBSZWRpcmVjdCk7CisgICAgTmV0d29ya0RhdGFUYXNrQ29jb2Eo
TmV0d29ya1Nlc3Npb24mLCBOZXR3b3JrRGF0YVRhc2tDbGllbnQmLCBjb25zdCBXZWJDb3JlOjpS
ZXNvdXJjZVJlcXVlc3QmLCBXZWJDb3JlOjpTdG9yZWRDcmVkZW50aWFsc1BvbGljeSwgV2ViQ29y
ZTo6Q29udGVudFNuaWZmaW5nUG9saWN5LCBib29sIHNob3VsZENsZWFyUmVmZXJyZXJPbkhUVFBT
VG9IVFRQUmVkaXJlY3QsIFByZWNvbm5lY3RPbmx5KTsKIAogICAgIGJvb2wgdHJ5UGFzc3dvcmRC
YXNlZEF1dGhlbnRpY2F0aW9uKGNvbnN0IFdlYkNvcmU6OkF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdl
JiwgQ2hhbGxlbmdlQ29tcGxldGlvbkhhbmRsZXImKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9OZXR3b3JrUHJvY2Vzcy9jb2NvYS9OZXR3b3JrRGF0YVRhc2tDb2NvYS5tbSBiL1NvdXJj
ZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvY29jb2EvTmV0d29ya0RhdGFUYXNrQ29jb2EubW0KaW5k
ZXggOTk3ZTBlZTFhZjY4ODNlZTcyOGQzMDAwNDhjYzZiMmVkNDlkMjQ5OS4uZGJiYjEwMDQwMTQ5
YTRmNmVmMjBkZTM5M2Y3Yzk2ODY2MWI4NGU4NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9O
ZXR3b3JrUHJvY2Vzcy9jb2NvYS9OZXR3b3JrRGF0YVRhc2tDb2NvYS5tbQorKysgYi9Tb3VyY2Uv
V2ViS2l0L05ldHdvcmtQcm9jZXNzL2NvY29hL05ldHdvcmtEYXRhVGFza0NvY29hLm1tCkBAIC03
NCw3ICs3NCw3IEBAIHN0YXRpYyBmbG9hdCB0b05TVVJMU2Vzc2lvblRhc2tQcmlvcml0eShXZWJD
b3JlOjpSZXNvdXJjZUxvYWRQcmlvcml0eSBwcmlvcml0eSkKICAgICByZXR1cm4gTlNVUkxTZXNz
aW9uVGFza1ByaW9yaXR5RGVmYXVsdDsKIH0KIAotTmV0d29ya0RhdGFUYXNrQ29jb2E6Ok5ldHdv
cmtEYXRhVGFza0NvY29hKE5ldHdvcmtTZXNzaW9uJiBzZXNzaW9uLCBOZXR3b3JrRGF0YVRhc2tD
bGllbnQmIGNsaWVudCwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0V2l0
aENyZWRlbnRpYWxzLCBXZWJDb3JlOjpTdG9yZWRDcmVkZW50aWFsc1BvbGljeSBzdG9yZWRDcmVk
ZW50aWFsc1BvbGljeSwgV2ViQ29yZTo6Q29udGVudFNuaWZmaW5nUG9saWN5IHNob3VsZENvbnRl
bnRTbmlmZiwgYm9vbCBzaG91bGRDbGVhclJlZmVycmVyT25IVFRQU1RvSFRUUFJlZGlyZWN0KQor
TmV0d29ya0RhdGFUYXNrQ29jb2E6Ok5ldHdvcmtEYXRhVGFza0NvY29hKE5ldHdvcmtTZXNzaW9u
JiBzZXNzaW9uLCBOZXR3b3JrRGF0YVRhc2tDbGllbnQmIGNsaWVudCwgY29uc3QgV2ViQ29yZTo6
UmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0V2l0aENyZWRlbnRpYWxzLCBXZWJDb3JlOjpTdG9yZWRD
cmVkZW50aWFsc1BvbGljeSBzdG9yZWRDcmVkZW50aWFsc1BvbGljeSwgV2ViQ29yZTo6Q29udGVu
dFNuaWZmaW5nUG9saWN5IHNob3VsZENvbnRlbnRTbmlmZiwgYm9vbCBzaG91bGRDbGVhclJlZmVy
cmVyT25IVFRQU1RvSFRUUFJlZGlyZWN0LCBQcmVjb25uZWN0T25seSBzaG91bGRQcmVjb25uZWN0
T25seSkKICAgICA6IE5ldHdvcmtEYXRhVGFzayhzZXNzaW9uLCBjbGllbnQsIHJlcXVlc3RXaXRo
Q3JlZGVudGlhbHMsIHN0b3JlZENyZWRlbnRpYWxzUG9saWN5LCBzaG91bGRDbGVhclJlZmVycmVy
T25IVFRQU1RvSFRUUFJlZGlyZWN0KQogewogICAgIGlmIChtX3NjaGVkdWxlZEZhaWx1cmVUeXBl
ICE9IE5vRmFpbHVyZSkKQEAgLTEyOCw2ICsxMjgsMTQgQEAgTmV0d29ya0RhdGFUYXNrQ29jb2E6
Ok5ldHdvcmtEYXRhVGFza0NvY29hKE5ldHdvcmtTZXNzaW9uJiBzZXNzaW9uLCBOZXR3b3JrRGF0
YVQKICAgICAgICAgTE9HKE5ldHdvcmtTZXNzaW9uLCAiJWxsdSBDcmVhdGluZyBOZXR3b3JrRGF0
YVRhc2sgd2l0aCBVUkwgJXMiLCBbbV90YXNrIHRhc2tJZGVudGlmaWVyXSwgbnNSZXF1ZXN0LlVS
TC5hYnNvbHV0ZVN0cmluZy5VVEY4U3RyaW5nKTsKICAgICB9CiAKKyAgICBpZiAoc2hvdWxkUHJl
Y29ubmVjdE9ubHkgPT0gUHJlY29ubmVjdE9ubHk6OlllcykgeworI2lmIEVOQUJMRShTRVJWRVJf
UFJFQ09OTkVDVCkKKyAgICAgICAgbV90YXNrLmdldCgpLl9wcmVjb25uZWN0ID0gdHJ1ZTsKKyNl
bHNlCisgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOworI2VuZGlmCisgICAgfQorCiAjaWYg
SEFWRShDRk5FVFdPUktfU1RPUkFHRV9QQVJUSVRJT05JTkcpCiAgICAgaWYgKHN0b3JlZENyZWRl
bnRpYWxzUG9saWN5ID09IFdlYkNvcmU6OlN0b3JlZENyZWRlbnRpYWxzUG9saWN5OjpVc2UpIHsK
ICAgICAgICAgU3RyaW5nIHN0b3JhZ2VQYXJ0aXRpb24gPSBzZXNzaW9uLm5ldHdvcmtTdG9yYWdl
U2Vzc2lvbigpLmNvb2tpZVN0b3JhZ2VQYXJ0aXRpb24ocmVxdWVzdCk7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJDb3JlQXJndW1lbnRDb2RlcnMuaCBiL1NvdXJjZS9XZWJL
aXQvU2hhcmVkL1dlYkNvcmVBcmd1bWVudENvZGVycy5oCmluZGV4IDA4YzM4MzkwYjg0Y2U0ODc0
MWNkNDRmZTE0MWVlNTZiODRiOTJjNDMuLmViM2RiNTBkOTZiZTEwY2QxZWMyM2ZiOGQ4ZTc4ZTEy
YThjYzIwZGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkNvcmVBcmd1bWVu
dENvZGVycy5oCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkNvcmVBcmd1bWVudENvZGVy
cy5oCkBAIC0zOSw2ICszOSw3IEBACiAjaW5jbHVkZSA8V2ViQ29yZS9QYXltZW50SGVhZGVycy5o
PgogI2luY2x1ZGUgPFdlYkNvcmUvUmVhbHRpbWVNZWRpYVNvdXJjZS5oPgogI2luY2x1ZGUgPFdl
YkNvcmUvU2Nyb2xsU25hcE9mZnNldHNJbmZvLmg+CisjaW5jbHVkZSA8V2ViQ29yZS9TdG9yZWRD
cmVkZW50aWFsc1BvbGljeS5oPgogCiBuYW1lc3BhY2UgV1RGIHsKIGNsYXNzIE1vbm90b25pY1Rp
bWU7CkBAIC03NjYsNCArNzY3LDEyIEBAIHRlbXBsYXRlPD4gc3RydWN0IEVudW1UcmFpdHM8V2Vi
Q29yZTo6TWVkaWFTZWxlY3Rpb25PcHRpb246OlR5cGU+IHsKICAgICA+OwogfTsKIAordGVtcGxh
dGUgPD4gc3RydWN0IEVudW1UcmFpdHM8V2ViQ29yZTo6U3RvcmVkQ3JlZGVudGlhbHNQb2xpY3k+
IHsKKyAgICB1c2luZyB2YWx1ZXMgPSBFbnVtVmFsdWVzPAorICAgICAgICBXZWJDb3JlOjpTdG9y
ZWRDcmVkZW50aWFsc1BvbGljeSwKKyAgICAgICAgV2ViQ29yZTo6U3RvcmVkQ3JlZGVudGlhbHNQ
b2xpY3k6OkRvTm90VXNlLAorICAgICAgICBXZWJDb3JlOjpTdG9yZWRDcmVkZW50aWFsc1BvbGlj
eTo6VXNlCisgICAgPjsKK307CisKIH0gLy8gbmFtZXNwYWNlIFdURgpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9TaGFyZWQvV2ViUHJlZmVyZW5jZXNEZWZpbml0aW9ucy5oIGIvU291cmNlL1dl
YktpdC9TaGFyZWQvV2ViUHJlZmVyZW5jZXNEZWZpbml0aW9ucy5oCmluZGV4IGM2ODIwZDgxNTZk
YjJiNWYyODU4MTEwMjFjODIyNzIyNjk0ODU3MGQuLjgzYzYzNjEzMjhiMTg1NTBlMGRjYzFhZmFm
M2RiZDdiNWRlMjhmZjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYlByZWZl
cmVuY2VzRGVmaW5pdGlvbnMuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJQcmVmZXJl
bmNlc0RlZmluaXRpb25zLmgKQEAgLTQ1LDYgKzQ1LDEyIEBACiAjZGVmaW5lIERFRkFVTFRfSElE
REVOX1BBR0VfQ1NTX0FOSU1BVElPTl9TVVNQRU5TSU9OX0VOQUJMRUQgZmFsc2UKICNlbmRpZgog
CisjaWYgRU5BQkxFKFNFUlZFUl9QUkVDT05ORUNUKQorI2RlZmluZSBERUZBVUxUX0xJTktfUFJF
Q09OTkVDVF9FTkFCTEVEIHRydWUKKyNlbHNlCisjZGVmaW5lIERFRkFVTFRfTElOS19QUkVDT05O
RUNUX0VOQUJMRUQgZmFsc2UKKyNlbmRpZgorCiAjaWYgUExBVEZPUk0oQ09DT0EpCiAjZGVmaW5l
IERFRkFVTFRfUERGUExVR0lOX0VOQUJMRUQgdHJ1ZQogI2Vsc2UKQEAgLTE4MSw2ICsxODcsNyBA
QAogICAgIG1hY3JvKERPTVBhc3RlQWxsb3dlZCwgZG9tUGFzdGVBbGxvd2VkLCBCb29sLCBib29s
LCBmYWxzZSwgIiIsICIiKSBcCiAgICAgbWFjcm8oSmF2YVNjcmlwdENhbkFjY2Vzc0NsaXBib2Fy
ZCwgamF2YVNjcmlwdENhbkFjY2Vzc0NsaXBib2FyZCwgQm9vbCwgYm9vbCwgZmFsc2UsICIiLCAi
IikgXAogICAgIG1hY3JvKFNob3VsZFByaW50QmFja2dyb3VuZHMsIHNob3VsZFByaW50QmFja2dy
b3VuZHMsIEJvb2wsIGJvb2wsIERFRkFVTFRfU0hPVUxEX1BSSU5UX0JBQ0tHUk9VTkRTLCAiIiwg
IiIpIFwKKyAgICBtYWNybyhMaW5rUHJlY29ubmVjdCwgbGlua1ByZWNvbm5lY3QsIEJvb2wsIGJv
b2wsIERFRkFVTFRfTElOS19QUkVDT05ORUNUX0VOQUJMRUQsICIiLCAiIikgXAogICAgIG1hY3Jv
KEZ1bGxTY3JlZW5FbmFibGVkLCBmdWxsU2NyZWVuRW5hYmxlZCwgQm9vbCwgYm9vbCwgZmFsc2Us
ICIiLCAiIikgXAogICAgIG1hY3JvKEFzeW5jaHJvbm91c1NwZWxsQ2hlY2tpbmdFbmFibGVkLCBh
c3luY2hyb25vdXNTcGVsbENoZWNraW5nRW5hYmxlZCwgQm9vbCwgYm9vbCwgZmFsc2UsICIiLCAi
IikgXAogICAgIG1hY3JvKFdlYlNlY3VyaXR5RW5hYmxlZCwgd2ViU2VjdXJpdHlFbmFibGVkLCBC
b29sLCBib29sLCB0cnVlLCAiIiwgIiIpIFwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL0FQSS9DL1dLQ29udGV4dC5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkv
Qy9XS0NvbnRleHQuY3BwCmluZGV4IDc4MzM4ZWQ2NTc4Y2RjZWMxZWUwY2UxMzQ0MzgyZWI0OTc2
MDYyNTkuLjcwNDhiYmUwYzBkNzA3MmRhMjRiYTFkMTRiYjkyOGQ5ZjllYWM5ZDggMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9DL1dLQ29udGV4dC5jcHAKKysrIGIvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0MvV0tDb250ZXh0LmNwcApAQCAtNDA3LDYgKzQwNywx
MSBAQCB2b2lkIFdLQ29udGV4dFNldERpc2tDYWNoZVNwZWN1bGF0aXZlVmFsaWRhdGlvbkVuYWJs
ZWQoV0tDb250ZXh0UmVmIGNvbnRleHRSZWYsCiAgICAgdG9JbXBsKGNvbnRleHRSZWYpLT5jb25m
aWd1cmF0aW9uKCkuc2V0RGlza0NhY2hlU3BlY3VsYXRpdmVWYWxpZGF0aW9uRW5hYmxlZCh2YWx1
ZSk7CiB9CiAKK3ZvaWQgV0tDb250ZXh0UHJlY29ubmVjdFRvU2VydmVyKFdLQ29udGV4dFJlZiBj
b250ZXh0UmVmLCBXS1VSTFJlZiBzZXJ2ZXJVUkxSZWYpCit7CisgICAgdG9JbXBsKGNvbnRleHRS
ZWYpLT5wcmVjb25uZWN0VG9TZXJ2ZXIoVVJMKFVSTCgpLCB0b1dURlN0cmluZyhzZXJ2ZXJVUkxS
ZWYpKSk7Cit9CisKIFdLQ29va2llTWFuYWdlclJlZiBXS0NvbnRleHRHZXRDb29raWVNYW5hZ2Vy
KFdLQ29udGV4dFJlZiBjb250ZXh0UmVmKQogewogICAgIHJldHVybiB0b0FQSSh0b0ltcGwoY29u
dGV4dFJlZiktPnN1cHBsZW1lbnQ8V2ViQ29va2llTWFuYWdlclByb3h5PigpKTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9DL1dLQ29udGV4dFByaXZhdGUuaCBiL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9DL1dLQ29udGV4dFByaXZhdGUuaAppbmRleCAwMmY5
MGI5MTdiNDg5NDUwZTIzMGI2YWU2NDZhYTk3NDY5MDc3OGE3Li4xNTJkNmRhYjBiNjkwNjBjN2M2
NmIxZjc5YTgwMzAyOWY4MTQ3OTE0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9BUEkvQy9XS0NvbnRleHRQcml2YXRlLmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
QVBJL0MvV0tDb250ZXh0UHJpdmF0ZS5oCkBAIC0xMDUsNiArMTA1LDggQEAgV0tfRVhQT1JUIHZv
aWQgV0tDb250ZXh0U2V0TWVtb3J5Q2FjaGVEaXNhYmxlZChXS0NvbnRleHRSZWYsIGJvb2wgZGlz
YWJsZWQpOwogCiBXS19FWFBPUlQgdm9pZCBXS0NvbnRleHRTZXRGb250V2hpdGVsaXN0KFdLQ29u
dGV4dFJlZiwgV0tBcnJheVJlZik7CiAKK1dLX0VYUE9SVCB2b2lkIFdLQ29udGV4dFByZWNvbm5l
Y3RUb1NlcnZlcihXS0NvbnRleHRSZWYgY29udGV4dCwgV0tVUkxSZWYgc2VydmVyVVJMKTsKKwog
V0tfRVhQT1JUIFdLUHJvY2Vzc0lEIFdLQ29udGV4dEdldE5ldHdvcmtQcm9jZXNzSWRlbnRpZmll
cihXS0NvbnRleHRSZWYgY29udGV4dCk7CiBXS19FWFBPUlQgV0tQcm9jZXNzSUQgV0tDb250ZXh0
R2V0RGF0YWJhc2VQcm9jZXNzSWRlbnRpZmllcihXS0NvbnRleHRSZWYgY29udGV4dCk7CiAKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1Byb2Nlc3NQb29s
Lm1tIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLUHJvY2Vzc1Bvb2wubW0K
aW5kZXggMWY1OTc0ZGY1N2EwMjFkYmQ1YmM4OTRmY2Q4ZWE3MTgzNDhhODkyOC4uMTgwMjMwN2M3
ZTBjZjkwMTg1N2UzNjYyYTk2MDE1MDE1ZmM5NjAxNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLUHJvY2Vzc1Bvb2wubW0KKysrIGIvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLUHJvY2Vzc1Bvb2wubW0KQEAgLTQxNSw2ICs0MTUsMTEg
QEAgc3RhdGljIE5TRGljdGlvbmFyeSAqcG9saWNpZXNIYXNoTWFwVG9EaWN0aW9uYXJ5KGNvbnN0
IEhhc2hNYXA8U3RyaW5nLCBIYXNoTWFwPFMKICAgICByZXR1cm4gX3Byb2Nlc3NQb29sLT5wcm9j
ZXNzZXMoKS5zaXplKCk7CiB9CiAKKy0gKHZvaWQpX3ByZWNvbm5lY3RUb1NlcnZlcjooTlNVUkwg
KilzZXJ2ZXJVUkwKK3sKKyAgICBfcHJvY2Vzc1Bvb2wtPnByZWNvbm5lY3RUb1NlcnZlcihzZXJ2
ZXJVUkwpOworfQorCiAtIChzaXplX3QpX3BsdWdpblByb2Nlc3NDb3VudAogewogI2lmICFQTEFU
Rk9STShJT1MpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2Ev
V0tQcm9jZXNzUG9vbFByaXZhdGUuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2Nv
YS9XS1Byb2Nlc3NQb29sUHJpdmF0ZS5oCmluZGV4IDA3YWFlMzEwOGZiM2YzNmZmZDJmZjM5NTM0
Y2EwZDE3ZTVjZjQ0ZjkuLjEzZmU1OWM0ODJiODhhNGI4MjhkNWQ2OGZkMjAzOTNlZmFlMTJiODAg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1Byb2Nlc3NQ
b29sUHJpdmF0ZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1By
b2Nlc3NQb29sUHJpdmF0ZS5oCkBAIC04Nyw2ICs4Nyw4IEBACiAvLyBUZXN0IG9ubHkuIFNob3Vs
ZCBiZSBjYWxsZWQgYmVmb3JlIGFueSB3ZWIgY29udGVudCBwcm9jZXNzZXMgYXJlIGxhdW5jaGVk
LgogKyAodm9pZClfZm9yY2VHYW1lQ29udHJvbGxlckZyYW1ld29yayBXS19BUElfQVZBSUxBQkxF
KG1hY29zeCgxMC4xMyksIGlvcygxMS4wKSk7CiAKKy0gKHZvaWQpX3ByZWNvbm5lY3RUb1NlcnZl
cjooTlNVUkwgKilzZXJ2ZXJVUkwgV0tfQVBJX0FWQUlMQUJMRShtYWNvc3goV0tfTUFDX1RCQSks
IGlvcyhXS19JT1NfVEJBKSk7CisKIEBwcm9wZXJ0eSAobm9uYXRvbWljLCBnZXR0ZXI9X2lzQ29v
a2llU3RvcmFnZVBhcnRpdGlvbmluZ0VuYWJsZWQsIHNldHRlcj1fc2V0Q29va2llU3RvcmFnZVBh
cnRpdGlvbmluZ0VuYWJsZWQ6KSBCT09MIF9jb29raWVTdG9yYWdlUGFydGl0aW9uaW5nRW5hYmxl
ZCBXS19BUElfQVZBSUxBQkxFKG1hY29zeCgxMC4xMi4zKSwgaW9zKDEwLjMpKTsKIAogQGVuZApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Bvb2wuY3BwIGIv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Bvb2wuY3BwCmluZGV4IGFjYjlkNTYy
NWVhYjc5NGJlNWNlZDYxZDdlYmMzOGEyYzUyMzU1YjcuLjI2MjA4NjM5ZmY0ZTdkNjdhNTY0ZDgy
NTI2OTlhMjY4ODc0ZWFlMTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dl
YlByb2Nlc3NQb29sLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNz
UG9vbC5jcHAKQEAgLTExNTcsNiArMTE1NywxNCBAQCB2b2lkIFdlYlByb2Nlc3NQb29sOjpzZXRD
YW5IYW5kbGVIVFRQU1NlcnZlclRydXN0RXZhbHVhdGlvbihib29sIHZhbHVlKQogICAgIH0KIH0K
IAordm9pZCBXZWJQcm9jZXNzUG9vbDo6cHJlY29ubmVjdFRvU2VydmVyKGNvbnN0IFVSTCYgdXJs
KQoreworICAgIGlmICghdXJsLmlzVmFsaWQoKSB8fCAhdXJsLnByb3RvY29sSXNJbkhUVFBGYW1p
bHkoKSkKKyAgICAgICAgcmV0dXJuOworCisgICAgZW5zdXJlTmV0d29ya1Byb2Nlc3MoKS5zZW5k
KE1lc3NhZ2VzOjpOZXR3b3JrUHJvY2Vzczo6UHJlY29ubmVjdFRvKHVybCwgU3RvcmVkQ3JlZGVu
dGlhbHNQb2xpY3k6OlVzZSksIDApOworfQorCiB2b2lkIFdlYlByb2Nlc3NQb29sOjpyZWdpc3Rl
clVSTFNjaGVtZUFzTG9jYWwoY29uc3QgU3RyaW5nJiB1cmxTY2hlbWUpCiB7CiAgICAgbV9zY2hl
bWVzVG9SZWdpc3RlckFzTG9jYWwuYWRkKHVybFNjaGVtZSk7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUG9vbC5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvV2ViUHJvY2Vzc1Bvb2wuaAppbmRleCBlMTlmNmRmMmFmODZkNWNhNDQ3MGFkNmM4NjE0OTE3
YTFmZjI4MDdhLi5hZDViMGM2N2E5NTAwZDhiYThhZDY0ZTNkOGZhZDg5MDQzNTc5N2M1IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUG9vbC5oCisrKyBiL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQb29sLmgKQEAgLTIxNiw2ICsyMTYsNyBA
QCBwdWJsaWM6CiAgICAgdm9pZCByZWdpc3RlclVSTFNjaGVtZUFzRGlzcGxheUlzb2xhdGVkKGNv
bnN0IFN0cmluZyYpOwogICAgIHZvaWQgcmVnaXN0ZXJVUkxTY2hlbWVBc0NPUlNFbmFibGVkKGNv
bnN0IFN0cmluZyYpOwogICAgIHZvaWQgcmVnaXN0ZXJVUkxTY2hlbWVBc0NhY2hlUGFydGl0aW9u
ZWQoY29uc3QgU3RyaW5nJik7CisgICAgdm9pZCBwcmVjb25uZWN0VG9TZXJ2ZXIoY29uc3QgV2Vi
Q29yZTo6VVJMJik7CiAKICAgICBWaXNpdGVkTGlua1N0b3JlJiB2aXNpdGVkTGlua1N0b3JlKCkg
eyByZXR1cm4gbV92aXNpdGVkTGlua1N0b3JlLmdldCgpOyB9CiAKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvV2ViS2l0
L1dlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IDYyYTRiNzIyYjZkNjMyZTIy
ZTQ5OGRmYzZiNThlNGEwYWE0MTExNmYuLjY2NGE4NWMwZWMzMGFkM2Y5YjkxZDIyNTdiOGJiODc3
NTI2NTY2YmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9q
ZWN0LnBieHByb2oKKysrIGIvU291cmNlL1dlYktpdC9XZWJLaXQueGNvZGVwcm9qL3Byb2plY3Qu
cGJ4cHJvagpAQCAtMTM4MCw2ICsxMzgwLDggQEAKIAkJODM5OTAyMDMxQkU5QTAyQjAwMEYzNjUz
IC8qIE5ldHdvcmtMb2FkLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSA4Mzk5MDFGRTFCRTlBMDFCMDAwRjM2NTMgLyogTmV0d29ya0xvYWQuaCAqLzsgfTsK
IAkJODM5QTJGMzExRTIwNjc0NTAwMzkwNTdFIC8qIEhpZ2hQZXJmb3JtYW5jZUdyYXBoaWNzVXNh
Z2VTYW1wbGVyLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDgzOUEyRjJGMUUyMDY3MzkwMDM5MDU3RSAvKiBIaWdoUGVyZm9ybWFuY2VHcmFwaGljc1Vz
YWdlU2FtcGxlci5jcHAgKi87IH07CiAJCTgzOUEyRjMyMUUyMDY3NDUwMDM5MDU3RSAvKiBIaWdo
UGVyZm9ybWFuY2VHcmFwaGljc1VzYWdlU2FtcGxlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODM5QTJGMzAxRTIwNjczOTAwMzkwNTdFIC8qIEhpZ2hQ
ZXJmb3JtYW5jZUdyYXBoaWNzVXNhZ2VTYW1wbGVyLmggKi87IH07CisJCTgzQTBFRDM0MUY3NDdD
Q0QwMDMyOTlFQiAvKiBQcmVjb25uZWN0VGFzay5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4M0EwRUQzMzFGNzQ3Q0M3MDAzMjk5RUIgLyogUHJlY29u
bmVjdFRhc2suY3BwICovOyB9OworCQk4M0EwRUQzNTFGNzQ3Q0NGMDAzMjk5RUIgLyogUHJlY29u
bmVjdFRhc2suaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDgzQTBFRDMyMUY3NDdDQzYwMDMyOTlFQiAvKiBQcmVjb25uZWN0VGFzay5oICovOyB9OwogCQk4
M0JEQ0NCOTFBQzVGREI2MDAzRjY0NDEgLyogTmV0d29ya0NhY2hlU3RhdGlzdGljcy5jcHAgaW4g
U291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4M0JEQ0NCODFBQzVG
REI2MDAzRjY0NDEgLyogTmV0d29ya0NhY2hlU3RhdGlzdGljcy5jcHAgKi87IH07CiAJCTgzQkZB
QzQyMUQ5NjEzN0MwMDQzMzQ5MCAvKiBCbG9iRG93bmxvYWRDbGllbnQuaCBpbiBIZWFkZXJzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDgzQkZBQzQwMUQ5NjEzNjAwMDQzMzQ5
MCAvKiBCbG9iRG93bmxvYWRDbGllbnQuaCAqLzsgfTsKIAkJODNCRkFDNDMxRDk2MTM3QzAwNDMz
NDkwIC8qIEJsb2JEb3dubG9hZENsaWVudC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSA4M0JGQUM0MTFEOTYxMzYwMDA0MzM0OTAgLyogQmxvYkRvd25s
b2FkQ2xpZW50LmNwcCAqLzsgfTsKQEAgLTM3MzEsNiArMzczMyw4IEBACiAJCTgzOTkwMUZGMUJF
OUEwMUIwMDBGMzY1MyAvKiBOZXR3b3JrTG9hZC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNw
cC5jcHA7IG5hbWUgPSBOZXR3b3JrTG9hZC5jcHA7IHBhdGggPSBOZXR3b3JrUHJvY2Vzcy9OZXR3
b3JrTG9hZC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTgzOUEyRjJGMUUyMDY3
MzkwMDM5MDU3RSAvKiBIaWdoUGVyZm9ybWFuY2VHcmFwaGljc1VzYWdlU2FtcGxlci5jcHAgKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBIaWdoUGVyZm9ybWFuY2VHcmFwaGlj
c1VzYWdlU2FtcGxlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTgzOUEyRjMw
MUUyMDY3MzkwMDM5MDU3RSAvKiBIaWdoUGVyZm9ybWFuY2VHcmFwaGljc1VzYWdlU2FtcGxlci5o
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBIaWdoUGVyZm9ybWFuY2VHcmFwaGlj
c1VzYWdlU2FtcGxlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk4M0EwRUQzMjFG
NzQ3Q0M2MDAzMjk5RUIgLyogUHJlY29ubmVjdFRhc2suaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Yy5oOyBuYW1lID0gUHJlY29ubmVjdFRhc2suaDsgcGF0aCA9IE5ldHdvcmtQcm9jZXNzL1ByZWNv
bm5lY3RUYXNrLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTgzQTBFRDMzMUY3NDdD
QzcwMDMyOTlFQiAvKiBQcmVjb25uZWN0VGFzay5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNw
cC5jcHA7IG5hbWUgPSBQcmVjb25uZWN0VGFzay5jcHA7IHBhdGggPSBOZXR3b3JrUHJvY2Vzcy9Q
cmVjb25uZWN0VGFzay5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTgzQkRDQ0I4
MUFDNUZEQjYwMDNGNjQ0MSAvKiBOZXR3b3JrQ2FjaGVTdGF0aXN0aWNzLmNwcCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IE5ldHdvcmtDYWNoZVN0YXRpc3RpY3MuY3BwOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk4M0JGQUM0MDFEOTYxMzYwMDA0MzM0OTAgLyog
QmxvYkRvd25sb2FkQ2xpZW50LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IEJs
b2JEb3dubG9hZENsaWVudC5oOyBwYXRoID0gTmV0d29ya1Byb2Nlc3MvRG93bmxvYWRzL0Jsb2JE
b3dubG9hZENsaWVudC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk4M0JGQUM0MTFE
OTYxMzYwMDA0MzM0OTAgLyogQmxvYkRvd25sb2FkQ2xpZW50LmNwcCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuY3BwLmNwcDsgbmFtZSA9IEJsb2JEb3dubG9hZENsaWVudC5jcHA7IHBhdGggPSBOZXR3
b3JrUHJvY2Vzcy9Eb3dubG9hZHMvQmxvYkRvd25sb2FkQ2xpZW50LmNwcDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKQEAgLTYxMTEsNiArNjExNSw4IEBACiAJCQkJNUMwQjE3N0YxRTdDODg2
NzAwRTkxMjNDIC8qIE5ldHdvcmtTb2NrZXRTdHJlYW0ubWVzc2FnZXMuaW4gKi8sCiAJCQkJNDYy
MTA3RDcxRjM4REJEMzAwREQ3ODEwIC8qIFBpbmdMb2FkLmNwcCAqLywKIAkJCQk1Q0U4NUIxRjFD
ODhFNjQzMDA3MEJGQ0UgLyogUGluZ0xvYWQuaCAqLywKKwkJCQk4M0EwRUQzMzFGNzQ3Q0M3MDAz
Mjk5RUIgLyogUHJlY29ubmVjdFRhc2suY3BwICovLAorCQkJCTgzQTBFRDMyMUY3NDdDQzYwMDMy
OTlFQiAvKiBQcmVjb25uZWN0VGFzay5oICovLAogCQkJCUUxQjc4NDcwMTYzRjI0NjkwMDA3QjY5
MiAvKiBSZW1vdGVOZXR3b3JraW5nQ29udGV4dC5oICovLAogCQkJKTsKIAkJCW5hbWUgPSBOZXR3
b3JrUHJvY2VzczsKQEAgLTg3MDMsNiArODcwOSw3IEBACiAJCQkJMUE0QTlGMzMxMkI4NDRFMjAw
OEZFOTg0IC8qIFBsdWdpblF1aXJrcy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJN0NENjIyNzgxNzM5
RDg2MzAwNUJEN0ZGIC8qIFBsdWdpblNhbmRib3hQcm9maWxlLmggaW4gSGVhZGVycyAqLywKIAkJ
CQkxQTZGQjdBRjExRTY0QjY4MDBEQjEzNzEgLyogUGx1Z2luVmlldy5oIGluIEhlYWRlcnMgKi8s
CisJCQkJODNBMEVEMzUxRjc0N0NDRjAwMzI5OUVCIC8qIFByZWNvbm5lY3RUYXNrLmggaW4gSGVh
ZGVycyAqLywKIAkJCQlFMUNDMUI5MDEyRDdFQURGMDA2MjU4MzggLyogUHJpbnRJbmZvLmggaW4g
SGVhZGVycyAqLywKIAkJCQk4NkY5NTM2NTE4RkY1OEY1MDAxREIyRUYgLyogUHJvY2Vzc0Fzc2Vy
dGlvbi5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQkMxQTdDNTgxMTM2RTE5QzAwRkI3MTY3IC8qIFBy
b2Nlc3NMYXVuY2hlci5oIGluIEhlYWRlcnMgKi8sCkBAIC0xMDI4Myw2ICsxMDI5MCw3IEBACiAJ
CQkJN0NENjIyNzcxNzM5RDg2MzAwNUJEN0ZGIC8qIFBsdWdpblNhbmRib3hQcm9maWxlLm1tIGlu
IFNvdXJjZXMgKi8sCiAJCQkJQkM4Mjg0NEQxNkI1MDgxQzAwQTI3OEZFIC8qIFBsdWdpblNlcnZp
Y2VFbnRyeVBvaW50Lm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJMUE2RkI3QUUxMUU2NEI2ODAwREIx
MzcxIC8qIFBsdWdpblZpZXcuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJODNBMEVEMzQxRjc0N0ND
RDAwMzI5OUVCIC8qIFByZWNvbm5lY3RUYXNrLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUUxOEM5
MkY0MTJEQjlFNzEwMENGMkFFQiAvKiBQcmludEluZm8uY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJ
RTFDQzFCOTExMkQ3RUFERjAwNjI1ODM4IC8qIFByaW50SW5mb01hYy5tbSBpbiBTb3VyY2VzICov
LAogCQkJCTM3NzE2QTVBMTk1QjkxMDUwMEVFOEIxQiAvKiBQcm9jZXNzQXNzZXJ0aW9uLmNwcCBp
biBTb3VyY2VzICovLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL05ldHdv
cmsvTmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uLmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9OZXR3b3JrL05ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbi5jcHAKaW5kZXggOTYyNGUyOTY0Yzc0
OWNiNzZjNWJmMDk3ZmUyYzUwYzdjZDZmZmE1Mi4uMzhkNTNjOWMyOWQwZTllZjFmNDA2MGE4ZDFi
MDU0NzM4YzFkMDdjZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL05ldHdv
cmsvTmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvTmV0d29yay9OZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb24uY3BwCkBAIC0xNDAsNiArMTQw
LDExIEBAIHZvaWQgTmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uOjpkaWRGaW5pc2hQaW5nTG9hZCh1
aW50NjRfdCBwaW5nTG9hZElkZW50aWZpZXIsIFJlCiAgICAgV2ViUHJvY2Vzczo6c2luZ2xldG9u
KCkud2ViTG9hZGVyU3RyYXRlZ3koKS5kaWRGaW5pc2hQaW5nTG9hZChwaW5nTG9hZElkZW50aWZp
ZXIsIFdURk1vdmUoZXJyb3IpKTsKIH0KIAordm9pZCBOZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb246
OmRpZEZpbmlzaFByZWNvbm5lY3Rpb24odWludDY0X3QgcHJlY29ubmVjdGlvbklkZW50aWZpZXIs
IFJlc291cmNlRXJyb3ImJiBlcnJvcikKK3sKKyAgICBXZWJQcm9jZXNzOjpzaW5nbGV0b24oKS53
ZWJMb2FkZXJTdHJhdGVneSgpLmRpZEZpbmlzaFByZWNvbm5lY3Rpb24ocHJlY29ubmVjdGlvbklk
ZW50aWZpZXIsIFdURk1vdmUoZXJyb3IpKTsKK30KKwogI2lmIEVOQUJMRShTSEFSRUFCTEVfUkVT
T1VSQ0UpCiB2b2lkIE5ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbjo6ZGlkQ2FjaGVSZXNvdXJjZShj
b25zdCBSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QsIGNvbnN0IFNoYXJlYWJsZVJlc291cmNlOjpI
YW5kbGUmIGhhbmRsZSwgUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklEKQogewpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nlc3NDb25uZWN0aW9u
LmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvTmV0d29yay9OZXR3b3JrUHJvY2Vzc0Nvbm5l
Y3Rpb24uaAppbmRleCBjNTM0NGVhNjVkMDFlYzFhM2RhMmIwYjA1M2NmYzQwMzgzMWU1NDhjLi5k
ZWVhN2IwZmQ4MmI5ZmEzYjVhMTllYmQ5YWJhNGE2MGQ4MmMwMTE4IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvTmV0d29yay9OZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb24uaAor
KysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvTmV0d29yay9OZXR3b3JrUHJvY2Vzc0Nvbm5l
Y3Rpb24uaApAQCAtNzQsNiArNzQsNyBAQCBwcml2YXRlOgogCiAgICAgdm9pZCBkaWRXcml0ZUJs
b2JzVG9UZW1wb3JhcnlGaWxlcyh1aW50NjRfdCByZXF1ZXN0SWRlbnRpZmllciwgY29uc3QgVmVj
dG9yPFN0cmluZz4mIGZpbGVuYW1lcyk7CiAgICAgdm9pZCBkaWRGaW5pc2hQaW5nTG9hZCh1aW50
NjRfdCBwaW5nTG9hZElkZW50aWZpZXIsIFdlYkNvcmU6OlJlc291cmNlRXJyb3ImJik7CisgICAg
dm9pZCBkaWRGaW5pc2hQcmVjb25uZWN0aW9uKHVpbnQ2NF90IHByZWNvbm5lY3Rpb25JZGVudGlm
aWVyLCBXZWJDb3JlOjpSZXNvdXJjZUVycm9yJiYpOwogCiAjaWYgRU5BQkxFKFNIQVJFQUJMRV9S
RVNPVVJDRSkKICAgICAvLyBNZXNzYWdlIGhhbmRsZXJzLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uLm1lc3NhZ2Vz
LmluIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nlc3NDb25u
ZWN0aW9uLm1lc3NhZ2VzLmluCmluZGV4IDgzZWYyZTYyMjg5YmFlMWQ4MzM2YmJmOTIyZDNmNThk
MjY0Yjg5ZTAuLjI4NzM2M2U3MzFlNDk0NDEyYmY4YWRiYTYzNDNhMTBkMjFlZGYwYmMgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9jZXNzQ29u
bmVjdGlvbi5tZXNzYWdlcy5pbgorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvTmV0d29y
ay9OZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb24ubWVzc2FnZXMuaW4KQEAgLTI4LDQgKzI4LDUgQEAg
bWVzc2FnZXMgLT4gTmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uIExlZ2FjeVJlY2VpdmVyIHsKIAog
ICAgIERpZFdyaXRlQmxvYnNUb1RlbXBvcmFyeUZpbGVzKHVpbnQ2NF90IHJlcXVlc3RJZGVudGlm
aWVyLCBWZWN0b3I8U3RyaW5nPiBmaWxlbmFtZXMpCiAgICAgRGlkRmluaXNoUGluZ0xvYWQodWlu
dDY0X3QgcGluZ0xvYWRJZGVudGlmaWVyLCBXZWJDb3JlOjpSZXNvdXJjZUVycm9yIGVycm9yKQor
ICAgIERpZEZpbmlzaFByZWNvbm5lY3Rpb24odWludDY0X3QgcHJlY29ubmVjdGlvbklkZW50aWZp
ZXIsIFdlYkNvcmU6OlJlc291cmNlRXJyb3IgZXJyb3IpCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvTmV0d29yay9XZWJMb2FkZXJTdHJhdGVneS5jcHAgYi9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvTmV0d29yay9XZWJMb2FkZXJTdHJhdGVneS5jcHAKaW5kZXggZWE3
YjE3YTNkZWI2MWI5N2U0NWNlMWJlOTg1NWQ2ZmRkNDA4NWVlNC4uNzZmMTg2Njc1ZGQ5YmViMGY3
ODA0ZDFkYzA5OTY0NTBiNWU4NjA1OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL05ldHdvcmsvV2ViTG9hZGVyU3RyYXRlZ3kuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9OZXR3b3JrL1dlYkxvYWRlclN0cmF0ZWd5LmNwcApAQCAtMzU2LDYgKzM1NiwxMCBA
QCB2b2lkIFdlYkxvYWRlclN0cmF0ZWd5OjpuZXR3b3JrUHJvY2Vzc0NyYXNoZWQoKQogICAgIGF1
dG8gcGluZ0xvYWRDb21wbGV0aW9uSGFuZGxlcnMgPSBXVEZNb3ZlKG1fcGluZ0xvYWRDb21wbGV0
aW9uSGFuZGxlcnMpOwogICAgIGZvciAoYXV0byYgcGluZ0xvYWRDb21wbGV0aW9uSGFuZGxlciA6
IHBpbmdMb2FkQ29tcGxldGlvbkhhbmRsZXJzLnZhbHVlcygpKQogICAgICAgICBwaW5nTG9hZENv
bXBsZXRpb25IYW5kbGVyKGludGVybmFsRXJyb3IoVVJMKCkpKTsKKworICAgIGF1dG8gcHJlY29u
bmVjdENvbXBsZXRpb25IYW5kbGVycyA9IFdURk1vdmUobV9wcmVjb25uZWN0Q29tcGxldGlvbkhh
bmRsZXJzKTsKKyAgICBmb3IgKGF1dG8mIHByZWNvbm5lY3RDb21wbGV0aW9uSGFuZGxlciA6IHBy
ZWNvbm5lY3RDb21wbGV0aW9uSGFuZGxlcnMudmFsdWVzKCkpCisgICAgICAgIHByZWNvbm5lY3RD
b21wbGV0aW9uSGFuZGxlcihpbnRlcm5hbEVycm9yKFVSTCgpKSk7CiB9CiAKIHZvaWQgV2ViTG9h
ZGVyU3RyYXRlZ3k6OmxvYWRSZXNvdXJjZVN5bmNocm9ub3VzbHkoTmV0d29ya2luZ0NvbnRleHQq
IGNvbnRleHQsIHVuc2lnbmVkIGxvbmcgcmVzb3VyY2VMb2FkSWRlbnRpZmllciwgY29uc3QgUmVz
b3VyY2VSZXF1ZXN0JiByZXF1ZXN0LCBTdG9yZWRDcmVkZW50aWFsc1BvbGljeSBzdG9yZWRDcmVk
ZW50aWFsc1BvbGljeSwgQ2xpZW50Q3JlZGVudGlhbFBvbGljeSBjbGllbnRDcmVkZW50aWFsUG9s
aWN5LCBSZXNvdXJjZUVycm9yJiBlcnJvciwgUmVzb3VyY2VSZXNwb25zZSYgcmVzcG9uc2UsIFZl
Y3RvcjxjaGFyPiYgZGF0YSkKQEAgLTM5Miw3ICszOTYsNyBAQCB2b2lkIFdlYkxvYWRlclN0cmF0
ZWd5Ojpsb2FkUmVzb3VyY2VTeW5jaHJvbm91c2x5KE5ldHdvcmtpbmdDb250ZXh0KiBjb250ZXh0
LCB1bgogICAgIH0KIH0KIAotc3RhdGljIHVpbnQ2NF90IGdlbmVyYXRlUGluZ0xvYWRJZGVudGlm
aWVyKCkKK3N0YXRpYyB1aW50NjRfdCBnZW5lcmF0ZUxvYWRJZGVudGlmaWVyKCkKIHsKICAgICBz
dGF0aWMgdWludDY0X3QgaWRlbnRpZmllciA9IDA7CiAgICAgcmV0dXJuICsraWRlbnRpZmllcjsK
QEAgLTQyMiw3ICs0MjYsNyBAQCB2b2lkIFdlYkxvYWRlclN0cmF0ZWd5OjpzdGFydFBpbmdMb2Fk
KEZyYW1lJiBmcmFtZSwgUmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0LCBjbwogICAgIH0KICAgICAK
ICAgICBOZXR3b3JrUmVzb3VyY2VMb2FkUGFyYW1ldGVycyBsb2FkUGFyYW1ldGVyczsKLSAgICBs
b2FkUGFyYW1ldGVycy5pZGVudGlmaWVyID0gZ2VuZXJhdGVQaW5nTG9hZElkZW50aWZpZXIoKTsK
KyAgICBsb2FkUGFyYW1ldGVycy5pZGVudGlmaWVyID0gZ2VuZXJhdGVMb2FkSWRlbnRpZmllcigp
OwogICAgIGxvYWRQYXJhbWV0ZXJzLnJlcXVlc3QgPSByZXF1ZXN0OwogICAgIGxvYWRQYXJhbWV0
ZXJzLnNvdXJjZU9yaWdpbiA9ICZkb2N1bWVudC0+c2VjdXJpdHlPcmlnaW4oKTsKICAgICBsb2Fk
UGFyYW1ldGVycy5zZXNzaW9uSUQgPSB3ZWJQYWdlID8gd2ViUGFnZS0+c2Vzc2lvbklEKCkgOiBQ
QUw6OlNlc3Npb25JRDo6ZGVmYXVsdFNlc3Npb25JRCgpOwpAQCAtNDU5LDYgKzQ2MywyMCBAQCB2
b2lkIFdlYkxvYWRlclN0cmF0ZWd5OjpkaWRGaW5pc2hQaW5nTG9hZCh1aW50NjRfdCBwaW5nTG9h
ZElkZW50aWZpZXIsIFJlc291cmNlRQogICAgICAgICBjb21wbGV0aW9uSGFuZGxlcihXVEZNb3Zl
KGVycm9yKSk7CiB9CiAKK3ZvaWQgV2ViTG9hZGVyU3RyYXRlZ3k6OnByZWNvbm5lY3RUbyhQQUw6
OlNlc3Npb25JRCBzZXNzaW9uSUQsIGNvbnN0IFdlYkNvcmU6OlVSTCYgdXJsLCBTdG9yZWRDcmVk
ZW50aWFsc1BvbGljeSBzdG9yZWRDcmVkZW50aWFsc1BvbGljeSwgUHJlY29ubmVjdENvbXBsZXRp
b25IYW5kbGVyJiYgY29tcGxldGlvbkhhbmRsZXIpCit7CisgICAgdWludDY0X3QgcHJlY29ubmVj
dGlvbklkZW50aWZpZXIgPSBnZW5lcmF0ZUxvYWRJZGVudGlmaWVyKCk7CisgICAgYXV0byBhZGRS
ZXN1bHQgPSBtX3ByZWNvbm5lY3RDb21wbGV0aW9uSGFuZGxlcnMuYWRkKHByZWNvbm5lY3Rpb25J
ZGVudGlmaWVyLCBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKSk7CisgICAgQVNTRVJUX1VOVVNF
RChhZGRSZXN1bHQsIGFkZFJlc3VsdC5pc05ld0VudHJ5KTsKKyAgICBXZWJQcm9jZXNzOjpzaW5n
bGV0b24oKS5uZXR3b3JrQ29ubmVjdGlvbigpLmNvbm5lY3Rpb24oKS5zZW5kKE1lc3NhZ2VzOjpO
ZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzczo6UHJlY29ubmVjdFRvKHNlc3Npb25JRCwgcHJl
Y29ubmVjdGlvbklkZW50aWZpZXIsIHVybCwgc3RvcmVkQ3JlZGVudGlhbHNQb2xpY3kpLCAwKTsK
K30KKwordm9pZCBXZWJMb2FkZXJTdHJhdGVneTo6ZGlkRmluaXNoUHJlY29ubmVjdGlvbih1aW50
NjRfdCBwcmVjb25uZWN0aW9uSWRlbnRpZmllciwgUmVzb3VyY2VFcnJvciYmIGVycm9yKQorewor
ICAgIGlmIChhdXRvIGNvbXBsZXRpb25IYW5kbGVyID0gbV9wcmVjb25uZWN0Q29tcGxldGlvbkhh
bmRsZXJzLnRha2UocHJlY29ubmVjdGlvbklkZW50aWZpZXIpKQorICAgICAgICBjb21wbGV0aW9u
SGFuZGxlcihXVEZNb3ZlKGVycm9yKSk7Cit9CisKIHZvaWQgV2ViTG9hZGVyU3RyYXRlZ3k6OnN0
b3JlRGVyaXZlZERhdGFUb0NhY2hlKGNvbnN0IFNIQTE6OkRpZ2VzdCYgYm9keUhhc2gsIGNvbnN0
IFN0cmluZyYgdHlwZSwgY29uc3QgU3RyaW5nJiBwYXJ0aXRpb24sIFdlYkNvcmU6OlNoYXJlZEJ1
ZmZlciYgZGF0YSkKIHsKICNpZiBFTkFCTEUoTkVUV09SS19DQUNIRSkKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9OZXR3b3JrL1dlYkxvYWRlclN0cmF0ZWd5LmggYi9Tb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvTmV0d29yay9XZWJMb2FkZXJTdHJhdGVneS5oCmluZGV4IDU3
MzAyOGU1YTdiNjU3NWEyMzY4MWZmNTAyNjI5NGNlYTlhODdkMmQuLjcyNTZiNWQzNzMwNzgyZmZi
OTU1ZWFjZjQxNjlhZDBkYjU5ZDJlZDkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9OZXR3b3JrL1dlYkxvYWRlclN0cmF0ZWd5LmgKKysrIGIvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL05ldHdvcmsvV2ViTG9hZGVyU3RyYXRlZ3kuaApAQCAtNjIsNiArNjIsOSBAQCBwdWJs
aWM6CiAgICAgdm9pZCBzdGFydFBpbmdMb2FkKFdlYkNvcmU6OkZyYW1lJiwgV2ViQ29yZTo6UmVz
b3VyY2VSZXF1ZXN0JiwgY29uc3QgV2ViQ29yZTo6SFRUUEhlYWRlck1hcCYgb3JpZ2luYWxSZXF1
ZXN0SGVhZGVycywgY29uc3QgV2ViQ29yZTo6RmV0Y2hPcHRpb25zJiwgUGluZ0xvYWRDb21wbGV0
aW9uSGFuZGxlciYmKSBmaW5hbDsKICAgICB2b2lkIGRpZEZpbmlzaFBpbmdMb2FkKHVpbnQ2NF90
IHBpbmdMb2FkSWRlbnRpZmllciwgV2ViQ29yZTo6UmVzb3VyY2VFcnJvciYmKTsKIAorICAgIHZv
aWQgcHJlY29ubmVjdFRvKFBBTDo6U2Vzc2lvbklELCBjb25zdCBXZWJDb3JlOjpVUkwmLCBXZWJD
b3JlOjpTdG9yZWRDcmVkZW50aWFsc1BvbGljeSwgUHJlY29ubmVjdENvbXBsZXRpb25IYW5kbGVy
JiYpIGZpbmFsOworICAgIHZvaWQgZGlkRmluaXNoUHJlY29ubmVjdGlvbih1aW50NjRfdCBwcmVj
b25uZWN0aW9uSWRlbnRpZmllciwgV2ViQ29yZTo6UmVzb3VyY2VFcnJvciYmKTsKKwogICAgIHZv
aWQgc3RvcmVEZXJpdmVkRGF0YVRvQ2FjaGUoY29uc3QgU0hBMTo6RGlnZXN0JiBib2R5SGFzaCwg
Y29uc3QgU3RyaW5nJiB0eXBlLCBjb25zdCBTdHJpbmcmIHBhcnRpdGlvbiwgV2ViQ29yZTo6U2hh
cmVkQnVmZmVyJikgZmluYWw7CiAKICAgICB2b2lkIHNldENhcHR1cmVFeHRyYU5ldHdvcmtMb2Fk
TWV0cmljc0VuYWJsZWQoYm9vbCkgZmluYWw7CkBAIC04Niw2ICs4OSw3IEBAIHByaXZhdGU6CiAg
ICAgSGFzaE1hcDx1bnNpZ25lZCBsb25nLCBSZWZQdHI8V2ViUmVzb3VyY2VMb2FkZXI+PiBtX3dl
YlJlc291cmNlTG9hZGVyczsKICAgICBIYXNoTWFwPHVuc2lnbmVkIGxvbmcsIFdlYlVSTFNjaGVt
ZVRhc2tQcm94eSo+IG1fdXJsU2NoZW1lVGFza3M7CiAgICAgSGFzaE1hcDx1bnNpZ25lZCBsb25n
LCBQaW5nTG9hZENvbXBsZXRpb25IYW5kbGVyPiBtX3BpbmdMb2FkQ29tcGxldGlvbkhhbmRsZXJz
OworICAgIEhhc2hNYXA8dW5zaWduZWQgbG9uZywgUHJlY29ubmVjdENvbXBsZXRpb25IYW5kbGVy
PiBtX3ByZWNvbm5lY3RDb21wbGV0aW9uSGFuZGxlcnM7CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBX
ZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBh
Z2UuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAKaW5k
ZXggMWVhN2EzYzJmNWI3YTU4MzE5NTQ3ZTk2YTcyOTExMzc1M2IwNGM3ZC4uMTcwZWRmN2ZjNDk3
YzNjNzcxMDVmYzA2OTFhZGZiZTAzYmY1NTIzYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAKQEAgLTMwOTAsNiArMzA5MCw3IEBAIHZvaWQgV2ViUGFn
ZTo6dXBkYXRlUHJlZmVyZW5jZXMoY29uc3QgV2ViUHJlZmVyZW5jZXNTdG9yZSYgc3RvcmUpCiAg
ICAgc2V0dGluZ3Muc2V0UGFnaW5hdGVEdXJpbmdMYXlvdXRFbmFibGVkKHN0b3JlLmdldEJvb2xW
YWx1ZUZvcktleShXZWJQcmVmZXJlbmNlc0tleTo6cGFnaW5hdGVEdXJpbmdMYXlvdXRFbmFibGVk
S2V5KCkpKTsKICAgICBzZXR0aW5ncy5zZXRET01QYXN0ZUFsbG93ZWQoc3RvcmUuZ2V0Qm9vbFZh
bHVlRm9yS2V5KFdlYlByZWZlcmVuY2VzS2V5Ojpkb21QYXN0ZUFsbG93ZWRLZXkoKSkpOwogICAg
IHNldHRpbmdzLnNldEphdmFTY3JpcHRDYW5BY2Nlc3NDbGlwYm9hcmQoc3RvcmUuZ2V0Qm9vbFZh
bHVlRm9yS2V5KFdlYlByZWZlcmVuY2VzS2V5OjpqYXZhU2NyaXB0Q2FuQWNjZXNzQ2xpcGJvYXJk
S2V5KCkpKTsKKyAgICBzZXR0aW5ncy5zZXRMaW5rUHJlY29ubmVjdEVuYWJsZWQoc3RvcmUuZ2V0
Qm9vbFZhbHVlRm9yS2V5KFdlYlByZWZlcmVuY2VzS2V5OjpsaW5rUHJlY29ubmVjdEtleSgpKSk7
CiAgICAgc2V0dGluZ3Muc2V0U2hvdWxkUHJpbnRCYWNrZ3JvdW5kcyhzdG9yZS5nZXRCb29sVmFs
dWVGb3JLZXkoV2ViUHJlZmVyZW5jZXNLZXk6OnNob3VsZFByaW50QmFja2dyb3VuZHNLZXkoKSkp
OwogICAgIHNldHRpbmdzLnNldFdlYlNlY3VyaXR5RW5hYmxlZChzdG9yZS5nZXRCb29sVmFsdWVG
b3JLZXkoV2ViUHJlZmVyZW5jZXNLZXk6OndlYlNlY3VyaXR5RW5hYmxlZEtleSgpKSk7CiAgICAg
c2V0dGluZ3Muc2V0QWxsb3dVbml2ZXJzYWxBY2Nlc3NGcm9tRmlsZVVSTHMoc3RvcmUuZ2V0Qm9v
bFZhbHVlRm9yS2V5KFdlYlByZWZlcmVuY2VzS2V5OjphbGxvd1VuaXZlcnNhbEFjY2Vzc0Zyb21G
aWxlVVJMc0tleSgpKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2NvbmZpZy5oIGIvU291
cmNlL1dlYktpdC9jb25maWcuaAppbmRleCBlODY3ZjQ4N2M3MTg5MTRmNGQ4OWYyMTlkYTAzOTFj
OTUxNzBiNmQ2Li5jYWY0ZmQ3N2JjYTkwOWQ3YzY0OWNhNjdhMTYxNzFiNzllNGQyN2JhIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2NvbmZpZy5oCisrKyBiL1NvdXJjZS9XZWJLaXQvY29uZmln
LmgKQEAgLTg4LDYgKzg4LDEyIEBACiAjZW5kaWYKICNlbmRpZgogCisjaWYgVVNFKE5FVFdPUktf
U0VTU0lPTikgJiYgKChQTEFURk9STShNQUMpICYmIF9fTUFDX09TX1hfVkVSU0lPTl9NSU5fUkVR
VUlSRUQgPj0gMTAxMzAwKSB8fCAoUExBVEZPUk0oSU9TKSAmJiBfX0lQSE9ORV9PU19WRVJTSU9O
X01JTl9SRVFVSVJFRCA+PSAxMTAwMDApKQorI2lmbmRlZiBFTkFCTEVfU0VSVkVSX1BSRUNPTk5F
Q1QKKyNkZWZpbmUgRU5BQkxFX1NFUlZFUl9QUkVDT05ORUNUIDEKKyNlbmRpZgorI2VuZGlmCisK
ICNpZm5kZWYgSEFWRV9TRUNfQUNDRVNTX0NPTlRST0wKICNpZiBQTEFURk9STShJT1MpIHx8IFBM
QVRGT1JNKE1BQykKICNkZWZpbmUgSEFWRV9TRUNfQUNDRVNTX0NPTlRST0wgMQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdExlZ2FjeS9XZWJDb3JlU3VwcG9ydC9XZWJSZXNvdXJjZUxvYWRTY2hl
ZHVsZXIuY3BwIGIvU291cmNlL1dlYktpdExlZ2FjeS9XZWJDb3JlU3VwcG9ydC9XZWJSZXNvdXJj
ZUxvYWRTY2hlZHVsZXIuY3BwCmluZGV4IDRkMjk4NWQxYTQzMGJjMWJkOWJmMjYzYjg5ZTk4MWNm
NjNjNWNjMzUuLjc5NzViZDNlYTM1OWRlOWRlNjYwMjU3Y2ViZGQ2YTY4NjAwYTk4NzMgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvV2ViQ29yZVN1cHBvcnQvV2ViUmVzb3VyY2VMb2Fk
U2NoZWR1bGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L1dlYkNvcmVTdXBwb3J0L1dl
YlJlc291cmNlTG9hZFNjaGVkdWxlci5jcHAKQEAgLTM2OSwzICszNjksNyBAQCB2b2lkIFdlYlJl
c291cmNlTG9hZFNjaGVkdWxlcjo6c3RhcnRQaW5nTG9hZChGcmFtZSYgZnJhbWUsIFJlc291cmNl
UmVxdWVzdCYgcmVxdQogICAgIG5ldyBQaW5nSGFuZGxlKGZyYW1lLmxvYWRlcigpLm5ldHdvcmtp
bmdDb250ZXh0KCksIHJlcXVlc3QsIG9wdGlvbnMuY3JlZGVudGlhbHMgIT0gRmV0Y2hPcHRpb25z
OjpDcmVkZW50aWFsczo6T21pdCwgUGluZ0hhbmRsZTo6VXNlc0FzeW5jQ2FsbGJhY2tzOjpObywg
b3B0aW9ucy5yZWRpcmVjdCA9PSBGZXRjaE9wdGlvbnM6OlJlZGlyZWN0OjpGb2xsb3csIFdURk1v
dmUoY29tcGxldGlvbkhhbmRsZXIpKTsKIH0KIAordm9pZCBXZWJSZXNvdXJjZUxvYWRTY2hlZHVs
ZXI6OnByZWNvbm5lY3RUbyhQQUw6OlNlc3Npb25JRCwgY29uc3QgVVJMJiwgU3RvcmVkQ3JlZGVu
dGlhbHNQb2xpY3ksIFByZWNvbm5lY3RDb21wbGV0aW9uSGFuZGxlciYmKQoreworfQorCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L1dlYkNvcmVTdXBwb3J0L1dlYlJlc291cmNlTG9h
ZFNjaGVkdWxlci5oIGIvU291cmNlL1dlYktpdExlZ2FjeS9XZWJDb3JlU3VwcG9ydC9XZWJSZXNv
dXJjZUxvYWRTY2hlZHVsZXIuaAppbmRleCAwZTBjMmRlNTc3YzdjMmNmNzc2YTdmYTE2MWRkZGQ2
Yjc1ZDEwOGE0Li5lY2ZjMWNmYjM1ZWRlYzRlMzRjOGI2ZTY2Nzk1YmM2NDhmNWIxZTcxIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L1dlYkNvcmVTdXBwb3J0L1dlYlJlc291cmNlTG9h
ZFNjaGVkdWxlci5oCisrKyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvV2ViQ29yZVN1cHBvcnQvV2Vi
UmVzb3VyY2VMb2FkU2NoZWR1bGVyLmgKQEAgLTYxLDYgKzYxLDggQEAgcHVibGljOgogCiAgICAg
dm9pZCBzdGFydFBpbmdMb2FkKFdlYkNvcmU6OkZyYW1lJiwgV2ViQ29yZTo6UmVzb3VyY2VSZXF1
ZXN0JiwgY29uc3QgV2ViQ29yZTo6SFRUUEhlYWRlck1hcCYsIGNvbnN0IFdlYkNvcmU6OkZldGNo
T3B0aW9ucyYsIFBpbmdMb2FkQ29tcGxldGlvbkhhbmRsZXImJikgZmluYWw7CiAKKyAgICB2b2lk
IHByZWNvbm5lY3RUbyhQQUw6OlNlc3Npb25JRCwgY29uc3QgV2ViQ29yZTo6VVJMJiwgV2ViQ29y
ZTo6U3RvcmVkQ3JlZGVudGlhbHNQb2xpY3ksIFByZWNvbm5lY3RDb21wbGV0aW9uSGFuZGxlciYm
KSBmaW5hbDsKKwogICAgIHZvaWQgc3RvcmVEZXJpdmVkRGF0YVRvQ2FjaGUoY29uc3QgU0hBMTo6
RGlnZXN0JiwgY29uc3QgU3RyaW5nJiwgY29uc3QgU3RyaW5nJiwgV2ViQ29yZTo6U2hhcmVkQnVm
ZmVyJikgZmluYWwgeyB9CiAKICAgICB2b2lkIHNldENhcHR1cmVFeHRyYU5ldHdvcmtMb2FkTWV0
cmljc0VuYWJsZWQoYm9vbCkgZmluYWwgeyB9CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFu
Z2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggODg3NmU2NzY3NWQ2ZTk2YTM0OTRi
NjRlMzNjYmM1YTRiMjVlMmE0Ny4uN2NjYjcxNTM0YzVlNDhhY2NiNTc5ZGJhYzE1OGUxMzdiMDIw
MWRhMSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3Rz
L0NoYW5nZUxvZwpAQCAtMSwzICsxLDI1IEBACisyMDE3LTA5LTI3ICBDaHJpcyBEdW1leiAgPGNk
dW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgQWRkIHN1cHBvcnQgZm9yIDxsaW5rIHJlbD1wcmVj
b25uZWN0PgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
MTc3NDc0CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS8zMzE0MTM4MD4KKworICAgICAgICBSZXZp
ZXdlZCBieSBBbGV4IENocmlzdGVuc2VuLgorCisgICAgICAgICogZmFzdC9kb20vSFRNTExpbmtF
bGVtZW50L3ByZWNvbm5lY3Qtc3VwcG9ydC1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAq
IGZhc3QvZG9tL0hUTUxMaW5rRWxlbWVudC9wcmVjb25uZWN0LXN1cHBvcnQuaHRtbDogQWRkZWQu
CisgICAgICAgICogaHR0cC90ZXN0cy9wcmVjb25uZWN0L2xpbmstcmVsLXByZWNvbm5lY3QtaHR0
cC1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvcHJlY29ubmVjdC9s
aW5rLXJlbC1wcmVjb25uZWN0LWh0dHAuaHRtbDogQWRkZWQuCisgICAgICAgICogaHR0cC90ZXN0
cy9wcmVjb25uZWN0L2xpbmstcmVsLXByZWNvbm5lY3QtaHR0cHMtZXhwZWN0ZWQudHh0OiBBZGRl
ZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL3ByZWNvbm5lY3QvbGluay1yZWwtcHJlY29ubmVjdC1o
dHRwcy5odG1sOiBBZGRlZC4KKyAgICAgICAgQWRkIGxheW91dCB0ZXN0IGNvdmVyYWdlLgorCisg
ICAgICAgICogcGxhdGZvcm0vbWFjLWVsY2FwaXRhbi13azIvZmFzdC9kb20vSFRNTExpbmtFbGVt
ZW50L3ByZWNvbm5lY3Qtc3VwcG9ydC1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIHBs
YXRmb3JtL21hYy13azEvVGVzdEV4cGVjdGF0aW9uczoKKyAgICAgICAgKiBwbGF0Zm9ybS9tYWMt
d2sxL2Zhc3QvZG9tL0hUTUxMaW5rRWxlbWVudC9wcmVjb25uZWN0LXN1cHBvcnQtZXhwZWN0ZWQu
dHh0OiBBZGRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9tYWMtd2syL1Rlc3RFeHBlY3RhdGlvbnM6
CisgICAgICAgIFNraXAgb3IgbGFuZCBmYWlsdXJlIGV4cGVjdGF0aW9ucyBmb3IgcGxhdGZvcm1z
IHdoZXJlIHRoZSBmZWF0dXJlIGlzIGRpc2FibGVkLgorCiAyMDE3LTA5LTI3ICBBbnR0aSBLb2l2
aXN0byAgPGFudHRpQGFwcGxlLmNvbT4KIAogICAgICAgICBSRUdSRVNTSU9OIChyMjIyMDQwKTog
Q3Jhc2ggbmF2aWdhdGluZyBvdXQgb2YgZ2Z5Y2F0LmNvbSB1cmwKZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2Zhc3QvZG9tL0hUTUxMaW5rRWxlbWVudC9wcmVjb25uZWN0LXN1cHBvcnQtZXhwZWN0
ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vSFRNTExpbmtFbGVtZW50L3ByZWNvbm5lY3Qt
c3VwcG9ydC1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYzVhM2Y1ZDcxZWIwYzRkNzhlMzM0MzFj
NDY2Y2I5OGU2OThkMmNkMwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZG9t
L0hUTUxMaW5rRWxlbWVudC9wcmVjb25uZWN0LXN1cHBvcnQtZXhwZWN0ZWQudHh0CkBAIC0wLDAg
KzEsMTIgQEAKK1Rlc3RzIHRoYXQgTGluaydzIHJlbD1wcmVjb25uZWN0IGlzIHJlcG9ydGVkIGFz
IHN1cHBvcnRlZC4KKworT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNT
IiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCisKK1BBU1MgdGVzdExp
bmsucmVsTGlzdC5sZW5ndGggaXMgMQorUEFTUyB0ZXN0TGluay5yZWxMaXN0WzBdIGlzICJwcmVj
b25uZWN0IgorUEFTUyB0ZXN0TGluay5yZWxMaXN0LnN1cHBvcnRzKCdwcmVjb25uZWN0JykgaXMg
dHJ1ZQorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisK
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZG9tL0hUTUxMaW5rRWxlbWVudC9wcmVjb25u
ZWN0LXN1cHBvcnQuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL0hUTUxMaW5rRWxlbWVudC9w
cmVjb25uZWN0LXN1cHBvcnQuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5iNmNkMzEyMDdhYjY0MWNlMDFkMjQw
MGJlM2M3MDdjNjU0MTk3NzJjCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9k
b20vSFRNTExpbmtFbGVtZW50L3ByZWNvbm5lY3Qtc3VwcG9ydC5odG1sCkBAIC0wLDAgKzEsMTkg
QEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKzxzY3JpcHQgc3JjPSIuLi8uLi8u
Li9yZXNvdXJjZXMvanMtdGVzdC5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxzY3Jp
cHQ+CitkZXNjcmlwdGlvbigiVGVzdHMgdGhhdCBMaW5rJ3MgcmVsPXByZWNvbm5lY3QgaXMgcmVw
b3J0ZWQgYXMgc3VwcG9ydGVkLiIpOworCitjb25zdCB0ZXN0TGluayA9IGRvY3VtZW50LmNyZWF0
ZUVsZW1lbnQoImxpbmsiKTsKK3Rlc3RMaW5rLnJlbCA9ICJwcmVjb25uZWN0IjsKK3Rlc3RMaW5r
LmhyZWYgPSAiaHR0cDovL2xvY2FsaG9zdDo4MDAwIjsKKworc2hvdWxkQmUoInRlc3RMaW5rLnJl
bExpc3QubGVuZ3RoIiwgIjEiKTsKK3Nob3VsZEJlRXF1YWxUb1N0cmluZygidGVzdExpbmsucmVs
TGlzdFswXSIsICJwcmVjb25uZWN0Iik7CitzaG91bGRCZVRydWUoInRlc3RMaW5rLnJlbExpc3Qu
c3VwcG9ydHMoJ3ByZWNvbm5lY3QnKSIpOworPC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3ByZWNvbm5lY3QvbGluay1yZWwtcHJl
Y29ubmVjdC1odHRwLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcHJlY29u
bmVjdC9saW5rLXJlbC1wcmVjb25uZWN0LWh0dHAtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjZk
MDgwMmYzZWU3MzlkZmFjZDIyNzMwYzNiZWJjNTMwMDcwZTYxYjQKLS0tIC9kZXYvbnVsbAorKysg
Yi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3ByZWNvbm5lY3QvbGluay1yZWwtcHJlY29ubmVjdC1o
dHRwLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDEwIEBACitDT05TT0xFIE1FU1NBR0U6IFN1Y2Nl
c3NmdWx5IHByZWNvbm5lY3RlZCB0byBodHRwOi8vbG9jYWxob3N0OjgwMDAvCitUZXN0cyB0aGF0
IExpbmsncyByZWw9cHJlY29ubmVjdCB3b3JrcyBhcyBleHBlY3RlZCBvdmVyIEhUVFAuCisKK09u
IHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxv
d2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKworCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0
cnVlCisKK1RFU1QgQ09NUExFVEUKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0
cy9wcmVjb25uZWN0L2xpbmstcmVsLXByZWNvbm5lY3QtaHR0cC5odG1sIGIvTGF5b3V0VGVzdHMv
aHR0cC90ZXN0cy9wcmVjb25uZWN0L2xpbmstcmVsLXByZWNvbm5lY3QtaHR0cC5odG1sCm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAuLjBiMWU0MzIyYzczNDYxZTA5NTMyMGEyZWQ5N2QwM2QzZDNlYWUxZWUKLS0tIC9kZXYv
bnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3ByZWNvbm5lY3QvbGluay1yZWwtcHJl
Y29ubmVjdC1odHRwLmh0bWwKQEAgLTAsMCArMSwyMSBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRt
bD4KKzxoZWFkPgorPHNjcmlwdCBzcmM9Ii9qcy10ZXN0LXJlc291cmNlcy9qcy10ZXN0LmpzIj48
L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPHNjcmlwdD4KK2Rlc2NyaXB0aW9uKCJUZXN0cyB0
aGF0IExpbmsncyByZWw9cHJlY29ubmVjdCB3b3JrcyBhcyBleHBlY3RlZCBvdmVyIEhUVFAuIik7
Citqc1Rlc3RJc0FzeW5jID0gdHJ1ZTsKKworaW50ZXJuYWxzLnNldENvbnNvbGVNZXNzYWdlTGlz
dGVuZXIoZnVuY3Rpb24oKSB7CisgICAgZmluaXNoSlNUZXN0KCk7Cit9KTsKKworY29uc3QgdGVz
dExpbmsgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJsaW5rIik7Cit0ZXN0TGluay5yZWwgPSAi
cHJlY29ubmVjdCI7Cit0ZXN0TGluay5ocmVmID0gImh0dHA6Ly9sb2NhbGhvc3Q6ODAwMCI7Citk
b2N1bWVudC5oZWFkLmFwcGVuZENoaWxkKHRlc3RMaW5rKTsKKzwvc2NyaXB0PgorPC9ib2R5Pgor
PC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9wcmVjb25uZWN0L2xp
bmstcmVsLXByZWNvbm5lY3QtaHR0cHMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaHR0cC90
ZXN0cy9wcmVjb25uZWN0L2xpbmstcmVsLXByZWNvbm5lY3QtaHR0cHMtZXhwZWN0ZWQudHh0Cm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAuLjNjMTRlMjMzZjc3OGNmMWY4M2FkMGZhYTFjZDI3ZmRkMmVjM2ZhNDgKLS0tIC9k
ZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3ByZWNvbm5lY3QvbGluay1yZWwt
cHJlY29ubmVjdC1odHRwcy1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwxMCBAQAorQ09OU09MRSBN
RVNTQUdFOiBGYWlsZWQgdG8gcHJlY29ubmVjdCB0byBodHRwczovL2xvY2FsaG9zdDo4NDQzLy4g
RXJyb3I6IFRoZSBjZXJ0aWZpY2F0ZSBmb3IgdGhpcyBzZXJ2ZXIgaXMgaW52YWxpZC4gWW91IG1p
Z2h0IGJlIGNvbm5lY3RpbmcgdG8gYSBzZXJ2ZXIgdGhhdCBpcyBwcmV0ZW5kaW5nIHRvIGJlIOKA
nGxvY2FsaG9zdOKAnSB3aGljaCBjb3VsZCBwdXQgeW91ciBjb25maWRlbnRpYWwgaW5mb3JtYXRp
b24gYXQgcmlzay4KK1Rlc3RzIHRoYXQgTGluaydzIHJlbD1wcmVjb25uZWN0IHdvcmtzIGFzIGV4
cGVjdGVkIG92ZXIgSFRUUFMuCisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBv
ZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKworCitQQVNT
IHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9wcmVjb25uZWN0L2xpbmstcmVsLXByZWNvbm5lY3Qt
aHR0cHMuaHRtbCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcHJlY29ubmVjdC9saW5rLXJlbC1w
cmVjb25uZWN0LWh0dHBzLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZWZkOTQwMDUyNjgxYjkzOGQ0MTlkMzgw
Njk2MDI0Mzg5MDczYmRhMgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVz
dHMvcHJlY29ubmVjdC9saW5rLXJlbC1wcmVjb25uZWN0LWh0dHBzLmh0bWwKQEAgLTAsMCArMSwy
MSBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorPHNjcmlwdCBzcmM9Ii9qcy10
ZXN0LXJlc291cmNlcy9qcy10ZXN0LmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPHNj
cmlwdD4KK2Rlc2NyaXB0aW9uKCJUZXN0cyB0aGF0IExpbmsncyByZWw9cHJlY29ubmVjdCB3b3Jr
cyBhcyBleHBlY3RlZCBvdmVyIEhUVFBTLiIpOworanNUZXN0SXNBc3luYyA9IHRydWU7CisKK2lu
dGVybmFscy5zZXRDb25zb2xlTWVzc2FnZUxpc3RlbmVyKGZ1bmN0aW9uKCkgeworICAgIGZpbmlz
aEpTVGVzdCgpOworfSk7CisKK2NvbnN0IHRlc3RMaW5rID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVu
dCgibGluayIpOwordGVzdExpbmsucmVsID0gInByZWNvbm5lY3QiOwordGVzdExpbmsuaHJlZiA9
ICJodHRwczovL2xvY2FsaG9zdDo4NDQzIjsKK2RvY3VtZW50LmhlYWQuYXBwZW5kQ2hpbGQodGVz
dExpbmspOworPC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9wbGF0Zm9ybS9tYWMtZWxjYXBpdGFuLXdrMi9mYXN0L2RvbS9IVE1MTGlua0VsZW1lbnQv
cHJlY29ubmVjdC1zdXBwb3J0LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL3BsYXRmb3JtL21h
Yy1lbGNhcGl0YW4td2syL2Zhc3QvZG9tL0hUTUxMaW5rRWxlbWVudC9wcmVjb25uZWN0LXN1cHBv
cnQtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjNhMjA0ZDRlNmE2MGI2MTNjM2UxNmExODU2MDhh
MmNkMjQ5MDJhOGMKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMt
ZWxjYXBpdGFuLXdrMi9mYXN0L2RvbS9IVE1MTGlua0VsZW1lbnQvcHJlY29ubmVjdC1zdXBwb3J0
LWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDEzIEBACitUZXN0cyB0aGF0IExpbmsncyByZWw9cHJl
Y29ubmVjdCBpcyByZXBvcnRlZCBhcyBzdXBwb3J0ZWQuCisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxs
IHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBM
RVRFIi4KKworCitQQVNTIHRlc3RMaW5rLnJlbExpc3QubGVuZ3RoIGlzIDEKK1BBU1MgdGVzdExp
bmsucmVsTGlzdFswXSBpcyAicHJlY29ubmVjdCIKK0ZBSUwgdGVzdExpbmsucmVsTGlzdC5zdXBw
b3J0cygncHJlY29ubmVjdCcpIHNob3VsZCBiZSB0cnVlLiBXYXMgZmFsc2UuCitQQVNTIHN1Y2Nl
c3NmdWxseVBhcnNlZCBpcyB0cnVlCitTb21lIHRlc3RzIGZhaWxlZC4KKworVEVTVCBDT01QTEVU
RQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMtc2llcnJhLXdrMi9mYXN0
L2RvbS9IVE1MTGlua0VsZW1lbnQvcHJlY29ubmVjdC1zdXBwb3J0LWV4cGVjdGVkLnR4dCBiL0xh
eW91dFRlc3RzL3BsYXRmb3JtL21hYy1zaWVycmEtd2syL2Zhc3QvZG9tL0hUTUxMaW5rRWxlbWVu
dC9wcmVjb25uZWN0LXN1cHBvcnQtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjNhMjA0ZDRlNmE2
MGI2MTNjM2UxNmExODU2MDhhMmNkMjQ5MDJhOGMKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRU
ZXN0cy9wbGF0Zm9ybS9tYWMtc2llcnJhLXdrMi9mYXN0L2RvbS9IVE1MTGlua0VsZW1lbnQvcHJl
Y29ubmVjdC1zdXBwb3J0LWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDEzIEBACitUZXN0cyB0aGF0
IExpbmsncyByZWw9cHJlY29ubmVjdCBpcyByZXBvcnRlZCBhcyBzdXBwb3J0ZWQuCisKK09uIHN1
Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2Vk
IGJ5ICJURVNUIENPTVBMRVRFIi4KKworCitQQVNTIHRlc3RMaW5rLnJlbExpc3QubGVuZ3RoIGlz
IDEKK1BBU1MgdGVzdExpbmsucmVsTGlzdFswXSBpcyAicHJlY29ubmVjdCIKK0ZBSUwgdGVzdExp
bmsucmVsTGlzdC5zdXBwb3J0cygncHJlY29ubmVjdCcpIHNob3VsZCBiZSB0cnVlLiBXYXMgZmFs
c2UuCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCitTb21lIHRlc3RzIGZhaWxlZC4K
KworVEVTVCBDT01QTEVURQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMt
d2sxL1Rlc3RFeHBlY3RhdGlvbnMgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMtd2sxL1Rlc3RF
eHBlY3RhdGlvbnMKaW5kZXggODAzNzMzMzRmZWYwZjZkZTUyMDc1NTljZDdjMmQ5ZWM1MjZmYjA0
My4uZWNlYjczZTQ0MjE1MmE3OTkxNmE5N2MzOTZiZGM2YzRhMWY3ZmM0MiAxMDA2NDQKLS0tIGEv
TGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjLXdrMS9UZXN0RXhwZWN0YXRpb25zCisrKyBiL0xheW91
dFRlc3RzL3BsYXRmb3JtL21hYy13azEvVGVzdEV4cGVjdGF0aW9ucwpAQCAtMzk5LDYgKzM5OSw5
IEBAIGZhc3QvaW1hZ2VzL2xvdy1tZW1vcnktZGVjb2RlLmh0bWwgWyBTa2lwIF0KIAogaHR0cC90
ZXN0cy93b3JrZXJzL3NlcnZpY2UgWyBTa2lwIF0KIAorIyBMaW5rIHByZWNvbm5lY3QgaXMgZGlz
YWJsZWQgb24gV2ViS2l0MSBiZWNhdXNlIGl0IGRvZXMgbm90IHVzZSBORVRXT1JLX1NFU1NJT04u
CitodHRwL3Rlc3RzL3ByZWNvbm5lY3QgWyBTa2lwIF0KKwogd2Via2l0Lm9yZy9iLzE3NTM0NSBm
YXN0L2ltYWdlcy9hbmltYXRlZC1naWYtc2Nyb2xsaW5nLWNyYXNoLmh0bWwgWyBQYXNzIFRpbWVv
dXQgXQogCiB3ZWJraXQub3JnL2IvMTc1NTU0IFsgU2llcnJhIF0gZnVsbHNjcmVlbi9mdWxsLXNj
cmVlbi1pZnJhbWUtbGVnYWN5Lmh0bWwgWyBQYXNzIEZhaWx1cmUgXQpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvcGxhdGZvcm0vbWFjLXdrMS9mYXN0L2RvbS9IVE1MTGlua0VsZW1lbnQvcHJlY29u
bmVjdC1zdXBwb3J0LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy13azEv
ZmFzdC9kb20vSFRNTExpbmtFbGVtZW50L3ByZWNvbm5lY3Qtc3VwcG9ydC1leHBlY3RlZC50eHQK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uM2EyMDRkNGU2YTYwYjYxM2MzZTE2YTE4NTYwOGEyY2QyNDkwMmE4YwotLS0g
L2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy13azEvZmFzdC9kb20vSFRN
TExpbmtFbGVtZW50L3ByZWNvbm5lY3Qtc3VwcG9ydC1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwx
MyBAQAorVGVzdHMgdGhhdCBMaW5rJ3MgcmVsPXByZWNvbm5lY3QgaXMgcmVwb3J0ZWQgYXMgc3Vw
cG9ydGVkLgorCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1l
c3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisKKworUEFTUyB0ZXN0TGluay5y
ZWxMaXN0Lmxlbmd0aCBpcyAxCitQQVNTIHRlc3RMaW5rLnJlbExpc3RbMF0gaXMgInByZWNvbm5l
Y3QiCitGQUlMIHRlc3RMaW5rLnJlbExpc3Quc3VwcG9ydHMoJ3ByZWNvbm5lY3QnKSBzaG91bGQg
YmUgdHJ1ZS4gV2FzIGZhbHNlLgorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorU29t
ZSB0ZXN0cyBmYWlsZWQuCisKK1RFU1QgQ09NUExFVEUKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvcGxhdGZvcm0vbWFjLXdrMi9UZXN0RXhwZWN0YXRpb25zIGIvTGF5b3V0VGVzdHMvcGxhdGZv
cm0vbWFjLXdrMi9UZXN0RXhwZWN0YXRpb25zCmluZGV4IDA3YWI0NjhkMTNkZWNmOGRiNjNjZmVi
ODRlMTc4MWI5NTZjMGE0YzguLjRkYTQ0OWEwZGNjZDVmMzljYzQ1MTcxYWZhOTFkYmJjOTY3MGVj
ZGIgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy13azIvVGVzdEV4cGVjdGF0
aW9ucworKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMtd2syL1Rlc3RFeHBlY3RhdGlvbnMK
QEAgLTc5Myw2ICs3OTMsOSBAQCB3ZWJraXQub3JnL2IvMTc2MTIyIG1lZGlhL3ZpZGVvLWNvbnRy
b2xzLWRyb3AtYW5kLXJlc3RvcmUtdGltZWxpbmUuaHRtbCBbIFBhc3MgRgogIyA8cmRhcjovL3By
b2JsZW0vMzM1NTU3NTk+CiBbIEhpZ2hTaWVycmErIF0gaHR0cC90ZXN0cy9tZWRpYS92aWRlby1i
dWZmZXJlZC1yYW5nZS1jb250YWlucy1jdXJyZW50VGltZS5odG1sIFsgUGFzcyBJbWFnZU9ubHlG
YWlsdXJlIF0KIAorIyBMaW5rIHByZWNvbm5lY3QgaXMgZGlzYWJsZWQgb24gcHJlLUhpZ2ggU2ll
cnJhIGJlY2F1c2UgdGhlIENGTmV0d29yayBTUEkgaXMgbWlzc2luZy4KK1sgRWxDYXBpdGFuIFNp
ZXJyYSBdIGh0dHAvdGVzdHMvcHJlY29ubmVjdCBbIFNraXAgXQorCiB3ZWJraXQub3JnL2IvMTc2
NDg2IFsgRWxDYXBpdGFuIERlYnVnIF0gaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9i
YWNrZ3JvdW5kLWZldGNoL2ludGVyZmFjZXMtd29ya2VyLmh0dHBzLmh0bWwgWyBQYXNzIEZhaWx1
cmUgXQogCiB3ZWJraXQub3JnL2IvMTcxODM5IFsgRGVidWcgXSB0aWxlZC1kcmF3aW5nL3Njcm9s
bGluZy9zY3JvbGwtc25hcC9zY3JvbGwtc25hcC1tYW5kYXRvcnktbWFpbmZyYW1lLXZlcnRpY2Fs
LXRoZW4taG9yaXpvbnRhbC5odG1sIFsgUGFzcyBGYWlsdXJlIF0K
</data>

          </attachment>
      

    </bug>

</bugzilla>