<?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>203723</bug_id>
          
          <creation_ts>2019-10-31 21:30:48 -0700</creation_ts>
          <short_desc>Update WebKitTestRunner to support running multiple video fullscreen and Picture-in-Picture tests simultaneously</short_desc>
          <delta_ts>2020-05-05 15:37:42 -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>Media</component>
          <version>Safari 12</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Peng Liu">peng.liu6</reporter>
          <assigned_to name="Peng Liu">peng.liu6</assigned_to>
          <cc>achristensen</cc>
    
    <cc>annulen</cc>
    
    <cc>ap</cc>
    
    <cc>eric.carlson</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>glenn</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>jer.noble</cc>
    
    <cc>peng.liu6</cc>
    
    <cc>philipj</cc>
    
    <cc>ryuan.choi</cc>
    
    <cc>sergio</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>youennf</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1586268</commentid>
    <comment_count>0</comment_count>
    <who name="Peng Liu">peng.liu6</who>
    <bug_when>2019-10-31 21:30:48 -0700</bug_when>
    <thetext>In order to support running multiple test cases simultaneously, we need to isolate the UI process from testing Picture-in-Picture feature with WebKitTestRunner.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1586270</commentid>
    <comment_count>1</comment_count>
    <who name="Peng Liu">peng.liu6</who>
    <bug_when>2019-10-31 21:35:21 -0700</bug_when>
    <thetext>For bug 203614, we use the solution in the HTMLVideoElement, which essentially only tests the API implementation, but not the picture-in-picture feature implementation in the WebCore.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1586271</commentid>
    <comment_count>2</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2019-10-31 21:36:17 -0700</bug_when>
    <thetext>&lt;rdar://problem/56806580&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1642953</commentid>
    <comment_count>3</comment_count>
      <attachid>396832</attachid>
    <who name="Peng Liu">peng.liu6</who>
    <bug_when>2020-04-17 22:08:52 -0700</bug_when>
    <thetext>Created attachment 396832
WIP patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1642954</commentid>
    <comment_count>4</comment_count>
      <attachid>396833</attachid>
    <who name="Peng Liu">peng.liu6</who>
    <bug_when>2020-04-17 22:37:06 -0700</bug_when>
    <thetext>Created attachment 396833
Fix GTK and WPE build failures</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1642955</commentid>
    <comment_count>5</comment_count>
      <attachid>396834</attachid>
    <who name="Peng Liu">peng.liu6</who>
    <bug_when>2020-04-17 22:52:23 -0700</bug_when>
    <thetext>Created attachment 396834
Fix GTK and WPE build failures again</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1642956</commentid>
    <comment_count>6</comment_count>
      <attachid>396835</attachid>
    <who name="Peng Liu">peng.liu6</who>
    <bug_when>2020-04-17 23:15:28 -0700</bug_when>
    <thetext>Created attachment 396835
Fix build failures</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1642958</commentid>
    <comment_count>7</comment_count>
      <attachid>396836</attachid>
    <who name="Peng Liu">peng.liu6</who>
    <bug_when>2020-04-17 23:49:32 -0700</bug_when>
    <thetext>Created attachment 396836
Fix build failures again</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1642961</commentid>
    <comment_count>8</comment_count>
      <attachid>396839</attachid>
    <who name="Peng Liu">peng.liu6</who>
    <bug_when>2020-04-18 00:07:46 -0700</bug_when>
    <thetext>Created attachment 396839
Fix wincairo build failure</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1643497</commentid>
    <comment_count>9</comment_count>
      <attachid>396985</attachid>
    <who name="Peng Liu">peng.liu6</who>
    <bug_when>2020-04-20 10:12:50 -0700</bug_when>
    <thetext>Created attachment 396985
Add back the changes on WebKitTestRunner</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1643900</commentid>
    <comment_count>10</comment_count>
      <attachid>396985</attachid>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2020-04-21 09:30:47 -0700</bug_when>
    <thetext>Comment on attachment 396985
Add back the changes on WebKitTestRunner

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

&gt; Source/WebKit/WebProcess/InjectedBundle/API/c/WKBundlePage.h:60
&gt; +WK_EXPORT void WKBundlePageRequestVideoContentLayer(WKBundlePageRef page, uint64_t contextId);

I don&apos;t think we should be exposing all theses uint64_t&apos;s.  If we need to, let&apos;s introduce a context object that just contains an identifier.

&gt; Source/WebKit/WebProcess/InjectedBundle/InjectedBundlePageVideoFullscreenClient.cpp:71
&gt; +    if (m_client.enterFullscreen)
&gt; +        m_client.enterFullscreen(toAPI(page), contextId);
&gt; +    else
&gt; +        page-&gt;send(Messages::VideoFullscreenManagerProxy::EnterFullscreen(contextId));

Why can&apos;t we aadd UI process SPI that intercepts calls instead of bundle SPI that intercepts calls?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1643908</commentid>
    <comment_count>11</comment_count>
    <who name="Jer Noble">jer.noble</who>
    <bug_when>2020-04-21 09:52:12 -0700</bug_when>
    <thetext>(In reply to Alex Christensen from comment #10)
&gt; Comment on attachment 396985 [details]
&gt; Add back the changes on WebKitTestRunner
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=396985&amp;action=review
&gt; 
&gt; &gt; Source/WebKit/WebProcess/InjectedBundle/API/c/WKBundlePage.h:60
&gt; &gt; +WK_EXPORT void WKBundlePageRequestVideoContentLayer(WKBundlePageRef page, uint64_t contextId);
&gt; 
&gt; I don&apos;t think we should be exposing all theses uint64_t&apos;s.  If we need to,
&gt; let&apos;s introduce a context object that just contains an identifier.
&gt; 
&gt; &gt; Source/WebKit/WebProcess/InjectedBundle/InjectedBundlePageVideoFullscreenClient.cpp:71
&gt; &gt; +    if (m_client.enterFullscreen)
&gt; &gt; +        m_client.enterFullscreen(toAPI(page), contextId);
&gt; &gt; +    else
&gt; &gt; +        page-&gt;send(Messages::VideoFullscreenManagerProxy::EnterFullscreen(contextId));
&gt; 
&gt; Why can&apos;t we aadd UI process SPI that intercepts calls instead of bundle SPI
&gt; that intercepts calls?

Probably because of these details of the bundle implementation:

+    if (injectedBundle.testRunner()-&gt;shouldDumpFullScreenCallbacks())
+        injectedBundle.outputText(&quot;setupFullscreenWithID()\n&quot;);

I don&apos;t think that there is a mechanism to talk to the testRunner from the UIProcess (but maybe there should be).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1643909</commentid>
    <comment_count>12</comment_count>
    <who name="Jer Noble">jer.noble</who>
    <bug_when>2020-04-21 09:55:40 -0700</bug_when>
    <thetext>(In reply to Jer Noble from comment #11)
&gt; (In reply to Alex Christensen from comment #10)
&gt; &gt; Comment on attachment 396985 [details]
&gt; &gt; Add back the changes on WebKitTestRunner
&gt; &gt; 
&gt; &gt; View in context:
&gt; &gt; https://bugs.webkit.org/attachment.cgi?id=396985&amp;action=review
&gt; &gt; 
&gt; &gt; &gt; Source/WebKit/WebProcess/InjectedBundle/API/c/WKBundlePage.h:60
&gt; &gt; &gt; +WK_EXPORT void WKBundlePageRequestVideoContentLayer(WKBundlePageRef page, uint64_t contextId);
&gt; &gt; 
&gt; &gt; I don&apos;t think we should be exposing all theses uint64_t&apos;s.  If we need to,
&gt; &gt; let&apos;s introduce a context object that just contains an identifier.
&gt; &gt; 
&gt; &gt; &gt; Source/WebKit/WebProcess/InjectedBundle/InjectedBundlePageVideoFullscreenClient.cpp:71
&gt; &gt; &gt; +    if (m_client.enterFullscreen)
&gt; &gt; &gt; +        m_client.enterFullscreen(toAPI(page), contextId);
&gt; &gt; &gt; +    else
&gt; &gt; &gt; +        page-&gt;send(Messages::VideoFullscreenManagerProxy::EnterFullscreen(contextId));
&gt; &gt; 
&gt; &gt; Why can&apos;t we aadd UI process SPI that intercepts calls instead of bundle SPI
&gt; &gt; that intercepts calls?
&gt; 
&gt; Probably because of these details of the bundle implementation:
&gt; 
&gt; +    if (injectedBundle.testRunner()-&gt;shouldDumpFullScreenCallbacks())
&gt; +        injectedBundle.outputText(&quot;setupFullscreenWithID()\n&quot;);
&gt; 
&gt; I don&apos;t think that there is a mechanism to talk to the testRunner from the
&gt; UIProcess (but maybe there should be).

Oh hey, look at TestInvocation.cpp.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1646370</commentid>
    <comment_count>13</comment_count>
      <attachid>397791</attachid>
    <who name="Peng Liu">peng.liu6</who>
    <bug_when>2020-04-27 20:18:02 -0700</bug_when>
    <thetext>Created attachment 397791
WIP patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1646371</commentid>
    <comment_count>14</comment_count>
      <attachid>397792</attachid>
    <who name="Peng Liu">peng.liu6</who>
    <bug_when>2020-04-27 20:31:10 -0700</bug_when>
    <thetext>Created attachment 397792
WIP patch - fix WPE build failures</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1646384</commentid>
    <comment_count>15</comment_count>
      <attachid>397801</attachid>
    <who name="Peng Liu">peng.liu6</who>
    <bug_when>2020-04-27 21:41:15 -0700</bug_when>
    <thetext>Created attachment 397801
WIP patch - fix iOS build failures</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1646400</commentid>
    <comment_count>16</comment_count>
      <attachid>397812</attachid>
    <who name="Peng Liu">peng.liu6</who>
    <bug_when>2020-04-27 23:25:41 -0700</bug_when>
    <thetext>Created attachment 397812
WIP patch - fix iOS build failures</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1646547</commentid>
    <comment_count>17</comment_count>
      <attachid>397852</attachid>
    <who name="Peng Liu">peng.liu6</who>
    <bug_when>2020-04-28 10:16:36 -0700</bug_when>
    <thetext>Created attachment 397852
WIP patch - fix WinCairo build failures</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1646856</commentid>
    <comment_count>18</comment_count>
      <attachid>397927</attachid>
    <who name="Peng Liu">peng.liu6</who>
    <bug_when>2020-04-28 23:02:23 -0700</bug_when>
    <thetext>Created attachment 397927
WIP patch - a simpler implementation</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1648160</commentid>
    <comment_count>19</comment_count>
      <attachid>398265</attachid>
    <who name="Peng Liu">peng.liu6</who>
    <bug_when>2020-05-01 17:32:00 -0700</bug_when>
    <thetext>Created attachment 398265
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1648180</commentid>
    <comment_count>20</comment_count>
      <attachid>398273</attachid>
    <who name="Peng Liu">peng.liu6</who>
    <bug_when>2020-05-01 19:49:01 -0700</bug_when>
    <thetext>Created attachment 398273
Fix iOS build failures</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1648513</commentid>
    <comment_count>21</comment_count>
      <attachid>398273</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2020-05-04 07:18:24 -0700</bug_when>
    <thetext>Comment on attachment 398273
Fix iOS build failures

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

&gt; Source/WebKit/ChangeLog:10
&gt; +        messages to the UI process.

Testing IPC messages sending and receiving is nice and will validate code running in UIProcess as well.
Can you explain why the mock is done in WebProcess instead of UIProcess?
Is it the idea that API tests would cover UIProcess code and layout test the WebProcess code?

&gt; Source/WebKit/UIProcess/WebPageProxy.h:2803
&gt; +

Unneeded change

&gt; Source/WebKit/WebProcess/cocoa/VideoFullscreenManager.mm:288
&gt; +    if (!m_mockVideoPresentationModeEnabled)

We usually return early, something like:

if (m_mockVideoPresentationModeEnabled) {
    dispatch_async(...);
    return;
}

&gt; LayoutTests/media/video-presentation-mode-expected.txt:20
&gt; +** Entered picture-in-pictur

picture</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1648713</commentid>
    <comment_count>22</comment_count>
      <attachid>398273</attachid>
    <who name="Peng Liu">peng.liu6</who>
    <bug_when>2020-05-04 13:53:00 -0700</bug_when>
    <thetext>Comment on attachment 398273
Fix iOS build failures

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

&gt;&gt; Source/WebKit/ChangeLog:10
&gt;&gt; +        messages to the UI process.
&gt; 
&gt; Testing IPC messages sending and receiving is nice and will validate code running in UIProcess as well.
&gt; Can you explain why the mock is done in WebProcess instead of UIProcess?
&gt; Is it the idea that API tests would cover UIProcess code and layout test the WebProcess code?

Thanks for the review.

Yes, it was the plan to only test the web process code (for WK2) with the layout tests. However, I agree with your point that it is a good idea to test the IPC message related code as well.

Will update the patch to move the mock to the UI process.

&gt;&gt; Source/WebKit/UIProcess/WebPageProxy.h:2803
&gt;&gt; +
&gt; 
&gt; Unneeded change

Will remove it.

&gt;&gt; Source/WebKit/WebProcess/cocoa/VideoFullscreenManager.mm:288
&gt;&gt; +    if (!m_mockVideoPresentationModeEnabled)
&gt; 
&gt; We usually return early, something like:
&gt; 
&gt; if (m_mockVideoPresentationModeEnabled) {
&gt;     dispatch_async(...);
&gt;     return;
&gt; }

Right.
The changes in the VideoFullscreenManager will be removed in the new patch.

&gt;&gt; LayoutTests/media/video-presentation-mode-expected.txt:20
&gt;&gt; +** Entered picture-in-pictur
&gt; 
&gt; picture

Good catch! Will fix it.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1648724</commentid>
    <comment_count>23</comment_count>
      <attachid>398410</attachid>
    <who name="Peng Liu">peng.liu6</who>
    <bug_when>2020-05-04 14:04:12 -0700</bug_when>
    <thetext>Created attachment 398410
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1649265</commentid>
    <comment_count>24</comment_count>
      <attachid>398410</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2020-05-05 10:44:36 -0700</bug_when>
    <thetext>Comment on attachment 398410
Patch

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

&gt; Source/WebKit/UIProcess/Cocoa/VideoFullscreenManagerProxy.h:185
&gt; +    bool m_setMockVideoPresentationModeEnabled { false };

s/m_setMockVideoPresentationModeEnabled/m_mockVideoPresentationModeEnabled/

&gt; Source/WebKit/UIProcess/Cocoa/VideoFullscreenManagerProxy.mm:-158
&gt; -

Changes not required.

&gt; Source/WebKit/UIProcess/Cocoa/VideoFullscreenManagerProxy.mm:540
&gt;      ensureInterface(contextId).hasVideoChanged(hasVideo);

In a lot of these calls, it seems we could use a mock VideoFullscreenInterfaceContext and leave VideoFullscreenManagerProxy code mostly unchanged.

&gt; Source/WebKit/WebProcess/WebCoreSupport/WebChromeClient.cpp:992
&gt; +    m_page.send(Messages::WebPageProxy::SetMockVideoPresentationModeEnabled(enabled));

This is ok like this but it might be better to use a test runner API that will set the boolean using some C/ObjC SPI.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1649267</commentid>
    <comment_count>25</comment_count>
      <attachid>398410</attachid>
    <who name="Peng Liu">peng.liu6</who>
    <bug_when>2020-05-05 11:00:00 -0700</bug_when>
    <thetext>Comment on attachment 398410
Patch

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

&gt;&gt; Source/WebKit/UIProcess/Cocoa/VideoFullscreenManagerProxy.h:185
&gt;&gt; +    bool m_setMockVideoPresentationModeEnabled { false };
&gt; 
&gt; s/m_setMockVideoPresentationModeEnabled/m_mockVideoPresentationModeEnabled/

Oops, will fix it.

&gt;&gt; Source/WebKit/UIProcess/Cocoa/VideoFullscreenManagerProxy.mm:-158
&gt;&gt; -
&gt; 
&gt; Changes not required.

Right, just removed the unnecessary blank lines.

&gt;&gt; Source/WebKit/UIProcess/Cocoa/VideoFullscreenManagerProxy.mm:540
&gt;&gt;      ensureInterface(contextId).hasVideoChanged(hasVideo);
&gt; 
&gt; In a lot of these calls, it seems we could use a mock VideoFullscreenInterfaceContext and leave VideoFullscreenManagerProxy code mostly unchanged.

But VideoFullscreenInterfaceContext is in the Web process. We would like to cover the IPC message sending/receiving in the tests so this patch changes the UI process side.

I guess you mean VideoFullscreenModelContext, which primarily takes care of message sending in the UI process side. So we still need to change VideoFullscreenManagerProxy to intercept the IPC messages from the Web process.

Another possibility is mocking the VideoFullscreenInterface[Mac|IOS] completely, but that will be more complicated.

&gt;&gt; Source/WebKit/WebProcess/WebCoreSupport/WebChromeClient.cpp:992
&gt;&gt; +    m_page.send(Messages::WebPageProxy::SetMockVideoPresentationModeEnabled(enabled));
&gt; 
&gt; This is ok like this but it might be better to use a test runner API that will set the boolean using some C/ObjC SPI.

We have tried to add a C SPI to add an injected bundle client for test purpose (the obsoleted patches) but it seems to be overkill.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1649342</commentid>
    <comment_count>26</comment_count>
      <attachid>398410</attachid>
    <who name="Jer Noble">jer.noble</who>
    <bug_when>2020-05-05 13:13:01 -0700</bug_when>
    <thetext>Comment on attachment 398410
Patch

It seems a shame that this will only work on an opt-in basis. Why can&apos;t the WKTR just enable this mock PiP behavior unconditionally?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1649386</commentid>
    <comment_count>27</comment_count>
      <attachid>398553</attachid>
    <who name="Peng Liu">peng.liu6</who>
    <bug_when>2020-05-05 14:50:23 -0700</bug_when>
    <thetext>Created attachment 398553
Prepare for landing (update based on Youenn&apos;s comments)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1649411</commentid>
    <comment_count>28</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2020-05-05 15:37:40 -0700</bug_when>
    <thetext>Committed r261203: &lt;https://trac.webkit.org/changeset/261203&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 398553.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>396832</attachid>
            <date>2020-04-17 22:08:52 -0700</date>
            <delta_ts>2020-04-17 22:37:05 -0700</delta_ts>
            <desc>WIP patch</desc>
            <filename>bug-203723-20200417220851.patch</filename>
            <type>text/plain</type>
            <size>60084</size>
            <attacher name="Peng Liu">peng.liu6</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjYwMjkzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDExZjZlNzRiMWNiYmU4MGI4
N2YyNTU4MTE5NzkxYjYyODc5NmJjOWMuLjBmYTk0Y2E4NmZkYmUxZWQwNjFlMDg0NDcxOWQxYWMy
YjM3MDgzMDYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNjQgQEAKKzIwMjAtMDQtMTcgIFBlbmcgTGl1
ICA8cGVuZy5saXU2QGFwcGxlLmNvbT4KKworICAgICAgICBVcGRhdGUgV2ViS2l0VGVzdFJ1bm5l
ciB0byBzdXBwb3J0IHJ1bm5pbmcgbXVsdGlwbGUgdmlkZW8gZnVsbHNjcmVlbiBhbmQgUGljdHVy
ZS1pbi1QaWN0dXJlIHRlc3RzIHNpbXVsdGFuZW91c2x5CisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDM3MjMKKworICAgICAgICBSZXZpZXdlZCBieSBO
T0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGQgdGhlIGluamVjdGVkIGJ1bmRsZSBjbGllbnQg
c3VwcG9ydCBmb3IgdmlkZW8gZnVsbHNjcmVlbiByZWxhdGVkIGludGVyZmFjZXMgYmV0d2VlbiAK
KyAgICAgICAgdGhlIFdlYiBwcm9jZXNzIChWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyKSBhbmQgdGhl
IFVJIHByb2Nlc3MgKFZpZGVvRnVsbHNjcmVlbk1hbmFnZXJQcm94eSkuCisKKyAgICAgICAgKiBT
aGFyZWQvQVBJL2MvV0tTaGFyZWRBUElDYXN0Lmg6CisgICAgICAgIChXZWJLaXQ6OnRvQVBJKToK
KyAgICAgICAgKiBXZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBX
ZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9jL1dLQnVuZGxlUGFnZS5jcHA6CisgICAgICAg
IChXS0J1bmRsZVBhZ2VTZXRWaWRlb0Z1bGxzY3JlZW5DbGllbnQpOgorICAgICAgICAoV0tCdW5k
bGVQYWdlUmVxdWVzdFZpZGVvRnVsbHNjcmVlbk1vZGUpOgorICAgICAgICAoV0tCdW5kbGVQYWdl
UmVxdWVzdFZpZGVvQ29udGVudExheWVyKToKKyAgICAgICAgKFdLQnVuZGxlUGFnZURpZFNldHVw
VmlkZW9GdWxsc2NyZWVuKToKKyAgICAgICAgKFdLQnVuZGxlUGFnZURpZEVudGVyVmlkZW9GdWxs
c2NyZWVuKToKKyAgICAgICAgKFdLQnVuZGxlUGFnZVJldHVyblZpZGVvQ29udGVudExheWVyKToK
KyAgICAgICAgKFdLQnVuZGxlUGFnZURpZEV4aXRWaWRlb0Z1bGxzY3JlZW4pOgorICAgICAgICAo
V0tCdW5kbGVQYWdlRGlkQ2xlYW51cFZpZGVvRnVsbHNjcmVlbik6CisgICAgICAgICogV2ViUHJv
Y2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvYy9XS0J1bmRsZVBhZ2UuaDoKKyAgICAgICAgKiBXZWJQ
cm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9jL1dLQnVuZGxlUGFnZVZpZGVvRnVsbHNjcmVlbkNs
aWVudC5oOiBBZGRlZC4KKyAgICAgICAgKiBXZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0luamVj
dGVkQnVuZGxlUGFnZUZ1bGxTY3JlZW5DbGllbnQuY3BwOgorICAgICAgICAqIFdlYlByb2Nlc3Mv
SW5qZWN0ZWRCdW5kbGUvSW5qZWN0ZWRCdW5kbGVQYWdlRnVsbFNjcmVlbkNsaWVudC5oOgorICAg
ICAgICAqIFdlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvSW5qZWN0ZWRCdW5kbGVQYWdlVmlkZW9G
dWxsc2NyZWVuQ2xpZW50LmNwcDogQWRkZWQuCisgICAgICAgIChXZWJLaXQ6OkluamVjdGVkQnVu
ZGxlUGFnZVZpZGVvRnVsbHNjcmVlbkNsaWVudDo6c2V0SGFzVmlkZW8pOgorICAgICAgICAoV2Vi
S2l0OjpJbmplY3RlZEJ1bmRsZVBhZ2VWaWRlb0Z1bGxzY3JlZW5DbGllbnQ6OnNldFZpZGVvRGlt
ZW5zaW9ucyk6CisgICAgICAgIChXZWJLaXQ6OkluamVjdGVkQnVuZGxlUGFnZVZpZGVvRnVsbHNj
cmVlbkNsaWVudDo6c2V0dXBGdWxsc2NyZWVuV2l0aElEKToKKyAgICAgICAgKFdlYktpdDo6SW5q
ZWN0ZWRCdW5kbGVQYWdlVmlkZW9GdWxsc2NyZWVuQ2xpZW50OjplbnRlckZ1bGxzY3JlZW4pOgor
ICAgICAgICAoV2ViS2l0OjpJbmplY3RlZEJ1bmRsZVBhZ2VWaWRlb0Z1bGxzY3JlZW5DbGllbnQ6
OmV4aXRGdWxsc2NyZWVuKToKKyAgICAgICAgKFdlYktpdDo6SW5qZWN0ZWRCdW5kbGVQYWdlVmlk
ZW9GdWxsc2NyZWVuQ2xpZW50OjpzZXRJbmxpbmVSZWN0KToKKyAgICAgICAgKFdlYktpdDo6SW5q
ZWN0ZWRCdW5kbGVQYWdlVmlkZW9GdWxsc2NyZWVuQ2xpZW50OjpzZXRIYXNWaWRlb0NvbnRlbnRM
YXllcik6CisgICAgICAgIChXZWJLaXQ6OkluamVjdGVkQnVuZGxlUGFnZVZpZGVvRnVsbHNjcmVl
bkNsaWVudDo6Y2xlYW51cEZ1bGxzY3JlZW4pOgorICAgICAgICAoV2ViS2l0OjpJbmplY3RlZEJ1
bmRsZVBhZ2VWaWRlb0Z1bGxzY3JlZW5DbGllbnQ6OnByZXBhcmVkVG9SZXR1cm5Ub0lubGluZSk6
CisgICAgICAgIChXZWJLaXQ6OkluamVjdGVkQnVuZGxlUGFnZVZpZGVvRnVsbHNjcmVlbkNsaWVu
dDo6cHJlcGFyZWRUb0V4aXRGdWxsc2NyZWVuKToKKyAgICAgICAgKFdlYktpdDo6SW5qZWN0ZWRC
dW5kbGVQYWdlVmlkZW9GdWxsc2NyZWVuQ2xpZW50OjpleGl0RnVsbHNjcmVlbldpdGhvdXRBbmlt
YXRpb25Ub01vZGUpOgorICAgICAgICAqIFdlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvSW5qZWN0
ZWRCdW5kbGVQYWdlVmlkZW9GdWxsc2NyZWVuQ2xpZW50Lmg6IEFkZGVkLgorICAgICAgICAqIFdl
YlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZTo6
aW5pdGlhbGl6ZUluamVjdGVkQnVuZGxlVmlkZW9GdWxsc2NyZWVuQ2xpZW50KToKKyAgICAgICAg
KFdlYktpdDo6V2ViUGFnZTo6Y2xvc2UpOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9X
ZWJQYWdlLmg6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2U6OmluamVjdGVkQnVuZGxlVmlkZW9G
dWxsc2NyZWVuQ2xpZW50KToKKyAgICAgICAgKiBXZWJQcm9jZXNzL2NvY29hL1ZpZGVvRnVsbHNj
cmVlbk1hbmFnZXIuaDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL2NvY29hL1ZpZGVvRnVsbHNjcmVl
bk1hbmFnZXIubW06CisgICAgICAgIChXZWJLaXQ6OlZpZGVvRnVsbHNjcmVlbk1hbmFnZXI6OmVu
dGVyVmlkZW9GdWxsc2NyZWVuRm9yVmlkZW9FbGVtZW50KToKKyAgICAgICAgKFdlYktpdDo6Vmlk
ZW9GdWxsc2NyZWVuTWFuYWdlcjo6ZXhpdFZpZGVvRnVsbHNjcmVlbkZvclZpZGVvRWxlbWVudCk6
CisgICAgICAgIChXZWJLaXQ6OlZpZGVvRnVsbHNjcmVlbk1hbmFnZXI6OmV4aXRWaWRlb0Z1bGxz
Y3JlZW5Ub01vZGVXaXRob3V0QW5pbWF0aW9uKToKKyAgICAgICAgKFdlYktpdDo6VmlkZW9GdWxs
c2NyZWVuTWFuYWdlcjo6aGFzVmlkZW9DaGFuZ2VkKToKKyAgICAgICAgKFdlYktpdDo6VmlkZW9G
dWxsc2NyZWVuTWFuYWdlcjo6dmlkZW9EaW1lbnNpb25zQ2hhbmdlZCk6CisgICAgICAgIChXZWJL
aXQ6OlZpZGVvRnVsbHNjcmVlbk1hbmFnZXI6OnJlcXVlc3RVcGRhdGVJbmxpbmVSZWN0KToKKyAg
ICAgICAgKFdlYktpdDo6VmlkZW9GdWxsc2NyZWVuTWFuYWdlcjo6cmVxdWVzdFZpZGVvQ29udGVu
dExheWVyKToKKyAgICAgICAgKFdlYktpdDo6VmlkZW9GdWxsc2NyZWVuTWFuYWdlcjo6cmV0dXJu
VmlkZW9Db250ZW50TGF5ZXIpOgorICAgICAgICAoV2ViS2l0OjpWaWRlb0Z1bGxzY3JlZW5NYW5h
Z2VyOjpkaWRTZXR1cEZ1bGxzY3JlZW4pOgorICAgICAgICAoV2ViS2l0OjpWaWRlb0Z1bGxzY3Jl
ZW5NYW5hZ2VyOjp3aWxsRXhpdEZ1bGxzY3JlZW4pOgorICAgICAgICAoV2ViS2l0OjpWaWRlb0Z1
bGxzY3JlZW5NYW5hZ2VyOjpkaWRFbnRlckZ1bGxzY3JlZW4pOgorICAgICAgICAoV2ViS2l0OjpW
aWRlb0Z1bGxzY3JlZW5NYW5hZ2VyOjpkaWRFeGl0RnVsbHNjcmVlbik6CisgICAgICAgIChXZWJL
aXQ6OlZpZGVvRnVsbHNjcmVlbk1hbmFnZXI6OmRpZENsZWFudXBGdWxsc2NyZWVuKToKKyAgICAg
ICAgKFdlYktpdDo6VmlkZW9GdWxsc2NyZWVuTWFuYWdlcjo6ZnVsbHNjcmVlbk1heVJldHVyblRv
SW5saW5lKToKKwogMjAyMC0wNC0xNyAgRGF2aWQgS2lsemVyICA8ZGRraWx6ZXJAYXBwbGUuY29t
PgogCiAgICAgICAgIFJFR1JFU1NJT04gKHIyMzQxMDUpOiBbaU9TXSBXS0NvbG9yQnV0dG9uIGxl
YWtzIGEgVUlDb2xvcgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvQVBJL2MvV0tT
aGFyZWRBUElDYXN0LmggYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9BUEkvYy9XS1NoYXJlZEFQSUNh
c3QuaAppbmRleCAzN2M3ZDk2NjQyODJhZjM5NDhiNWZhMDA2ZmM4NTA0OTQ3N2E5NDgwLi4wNTU0
MjE1NmVkYWFiZDQ2YmYwYjdiNzJlYTI3Mjg0ODUwNjIzYjdiIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L1NoYXJlZC9BUEkvYy9XS1NoYXJlZEFQSUNhc3QuaAorKysgYi9Tb3VyY2UvV2ViS2l0
L1NoYXJlZC9BUEkvYy9XS1NoYXJlZEFQSUNhc3QuaApAQCAtMjQ5LDYgKzI0OSwxNCBAQCBpbmxp
bmUgV0tSZWN0IHRvQVBJKGNvbnN0IFdlYkNvcmU6OkZsb2F0UmVjdCYgcmVjdCkKICAgICByZXR1
cm4gd2tSZWN0OwogfQogCitpbmxpbmUgV0tTaXplIHRvQVBJKGNvbnN0IFdlYkNvcmU6OkZsb2F0
U2l6ZSYgc2l6ZSkKK3sKKyAgICBXS1NpemUgd2tTaXplOworICAgIHdrU2l6ZS53aWR0aCA9IHNp
emUud2lkdGgoKTsKKyAgICB3a1NpemUuaGVpZ2h0ID0gc2l6ZS5oZWlnaHQoKTsKKyAgICByZXR1
cm4gd2tTaXplOworfQorCiBpbmxpbmUgV0tSZWN0IHRvQVBJKGNvbnN0IFdlYkNvcmU6OkludFJl
Y3QmIHJlY3QpCiB7CiAgICAgV0tSZWN0IHdrUmVjdDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvV2ViS2l0L1dlYktp
dC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IDZlNDdiNmU5MmYwMmE5NWYzMzc2Yjhh
NzA1ZGZiMTExYWY4YTY4NDkuLjEyN2M3ODRjNDA5Yjc4MTk4MzE2OGVhODY1ZTFkMTJlNDBkMzk5
ZGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBi
eHByb2oKKysrIGIvU291cmNlL1dlYktpdC9XZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJv
agpAQCAtNDE3LDYgKzQxNyw5IEBACiAJCTFENEQ3MzcxMjNBOUU1NjIwMDcxN0EyNSAvKiBSZW1v
dGVNZWRpYVJlc291cmNlTWFuYWdlck1lc3NhZ2VzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxRDRENzM2QzIzQTlERjYwMDA3MTdBMjUgLyogUmVtb3Rl
TWVkaWFSZXNvdXJjZU1hbmFnZXJNZXNzYWdlcy5oICovOyB9OwogCQkxRDRENzM3NjIzQTlFRDE4
MDA3MTdBMjUgLyogUmVtb3RlTWVkaWFSZXNvdXJjZU1hbmFnZXJNZXNzYWdlc1JlcGxpZXMuaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDFENEQ3Mzc1MjNB
OUVCNjgwMDcxN0EyNSAvKiBSZW1vdGVNZWRpYVJlc291cmNlTWFuYWdlck1lc3NhZ2VzUmVwbGll
cy5oICovOyB9OwogCQkxRDY3QjMzOTIxMkUxRjYxMDBGQUE3ODYgLyogU2hhcmVTaGVldENhbGxi
YWNrSUQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDFE
NjdCMzM4MjEyRTFGNjEwMEZBQTc4NiAvKiBTaGFyZVNoZWV0Q2FsbGJhY2tJRC5oICovOyB9Owor
CQkxREFBNTJDMDI0Mzk2ODMxMDAxQTMxNTkgLyogSW5qZWN0ZWRCdW5kbGVQYWdlVmlkZW9GdWxs
c2NyZWVuQ2xpZW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSAxREFBNTJCRTI0Mzk2ODMxMDAxQTMxNTkgLyogSW5qZWN0ZWRCdW5kbGVQYWdlVmlkZW9G
dWxsc2NyZWVuQ2xpZW50LmggKi87IH07CisJCTFEQUE1MkMxMjQzOTY4MzEwMDFBMzE1OSAvKiBJ
bmplY3RlZEJ1bmRsZVBhZ2VWaWRlb0Z1bGxzY3JlZW5DbGllbnQuY3BwIGluIFNvdXJjZXMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMURBQTUyQkYyNDM5NjgzMTAwMUEzMTU5
IC8qIEluamVjdGVkQnVuZGxlUGFnZVZpZGVvRnVsbHNjcmVlbkNsaWVudC5jcHAgKi87IH07CisJ
CTFEQUE1MkMzMjQzOTZFNkQwMDFBMzE1OSAvKiBXS0J1bmRsZVBhZ2VWaWRlb0Z1bGxzY3JlZW5D
bGllbnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDFE
QUE1MkMyMjQzOTZFNkQwMDFBMzE1OSAvKiBXS0J1bmRsZVBhZ2VWaWRlb0Z1bGxzY3JlZW5DbGll
bnQuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQkx
REIwMTk0MzIxMUNGMDAyMDA5RkIzRTggLyogV0tTaGFyZVNoZWV0LmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxREUwRDA5NTIxMUNDMjEzMDA0MzlCNUYg
LyogV0tTaGFyZVNoZWV0LmggKi87IH07CiAJCTFEQjAxOTQ0MjExQ0YwMDUwMDlGQjNFOCAvKiBX
S1NoYXJlU2hlZXQubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSAxREJCQjA2MTIxMUNDM0NCMDA1MDJFQ0MgLyogV0tTaGFyZVNoZWV0Lm1tICovOyB9Owog
CQkxRjMzNUJDMDE4NUI4NEYwMDAxQTIwMUEgLyogV0tXZWJQcm9jZXNzUGx1Z0luTG9hZERlbGVn
YXRlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxRjMz
NUJCRjE4NUI4NEQ4MDAxQTIwMUEgLyogV0tXZWJQcm9jZXNzUGx1Z0luTG9hZERlbGVnYXRlLmgg
Ki87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKQEAgLTI3NDIs
NiArMjc0NSw5IEBACiAJCTFEOTdFQzdEMjQwODk4RDIwMDQ2NkZGQSAvKiBNZWRpYVBsYXllclBy
aXZhdGVSZW1vdGVDb2NvYS5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBleHBsaWNp
dEZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gTWVkaWFQbGF5ZXJQcml2
YXRlUmVtb3RlQ29jb2EubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTFEQTQwODk0
MjNBODBBM0UwMDU4Qzk1MCAvKiBSZW1vdGVNZWRpYVJlc291cmNlTWFuYWdlci5oICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7
IHBhdGggPSBSZW1vdGVNZWRpYVJlc291cmNlTWFuYWdlci5oOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwogCQkxREE0MDg5RTIzQTgyNzc4MDA1OEM5NTAgLyogUmVtb3RlTWVkaWFSZXNvdXJj
ZU1hbmFnZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gUmVtb3RlTWVkaWFSZXNvdXJjZU1hbmFn
ZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkxREFBNTJCRTI0Mzk2ODMxMDAx
QTMxNTkgLyogSW5qZWN0ZWRCdW5kbGVQYWdlVmlkZW9GdWxsc2NyZWVuQ2xpZW50LmggKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMu
aDsgcGF0aCA9IEluamVjdGVkQnVuZGxlUGFnZVZpZGVvRnVsbHNjcmVlbkNsaWVudC5oOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OworCQkxREFBNTJCRjI0Mzk2ODMxMDAxQTMxNTkgLyogSW5q
ZWN0ZWRCdW5kbGVQYWdlVmlkZW9GdWxsc2NyZWVuQ2xpZW50LmNwcCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0
aCA9IEluamVjdGVkQnVuZGxlUGFnZVZpZGVvRnVsbHNjcmVlbkNsaWVudC5jcHA7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CisJCTFEQUE1MkMyMjQzOTZFNkQwMDFBMzE1OSAvKiBXS0J1bmRs
ZVBhZ2VWaWRlb0Z1bGxzY3JlZW5DbGllbnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBw
YXRoID0gV0tCdW5kbGVQYWdlVmlkZW9GdWxsc2NyZWVuQ2xpZW50Lmg7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CiAJCTFEQkJCMDYxMjExQ0MzQ0IwMDUwMkVDQyAvKiBXS1NoYXJlU2hlZXQu
bW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBXS1NoYXJlU2hlZXQu
bW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTFERTBEMDk1MjExQ0MyMTMwMDQzOUI1
RiAvKiBXS1NoYXJlU2hlZXQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV0tT
aGFyZVNoZWV0Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTFERTJERkFDMjNBOTU5
RjgwMDNFMDEzQSAvKiBSZW1vdGVNZWRpYVJlc291cmNlSWRlbnRpZmllci5oICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBh
dGggPSBSZW1vdGVNZWRpYVJlc291cmNlSWRlbnRpZmllci5oOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwpAQCAtOTQzNyw2ICs5NDQzLDggQEAKIAkJCQk2NTQ2QTgyQTEzMDAwMTY0MDAwQ0VC
MUMgLyogSW5qZWN0ZWRCdW5kbGVQYWdlUmVzb3VyY2VMb2FkQ2xpZW50LmggKi8sCiAJCQkJQkNB
OEM2QUQxMUUzQzA4NzAwODEyRkI3IC8qIEluamVjdGVkQnVuZGxlUGFnZVVJQ2xpZW50LmNwcCAq
LywKIAkJCQlCQ0E4QzZBRTExRTNDMDg3MDA4MTJGQjcgLyogSW5qZWN0ZWRCdW5kbGVQYWdlVUlD
bGllbnQuaCAqLywKKwkJCQkxREFBNTJCRjI0Mzk2ODMxMDAxQTMxNTkgLyogSW5qZWN0ZWRCdW5k
bGVQYWdlVmlkZW9GdWxsc2NyZWVuQ2xpZW50LmNwcCAqLywKKwkJCQkxREFBNTJCRTI0Mzk2ODMx
MDAxQTMxNTkgLyogSW5qZWN0ZWRCdW5kbGVQYWdlVmlkZW9GdWxsc2NyZWVuQ2xpZW50LmggKi8s
CiAJCQkJQkMxNERGNzYxMjBCNUI3OTAwODI2QzBDIC8qIEluamVjdGVkQnVuZGxlU2NyaXB0V29y
bGQuY3BwICovLAogCQkJCUJDMTRERjc1MTIwQjVCNzkwMDgyNkMwQyAvKiBJbmplY3RlZEJ1bmRs
ZVNjcmlwdFdvcmxkLmggKi8sCiAJCQkpOwpAQCAtOTUxMSw2ICs5NTE5LDcgQEAKIAkJCQlCQzFC
NDE5NzExRDQxRDU3MDAxMUU4REQgLyogV0tCdW5kbGVQYWdlUHJpdmF0ZS5oICovLAogCQkJCTFB
QjQ3NEQ5MTg0RDQ0MjUwMDUxQjYyMiAvKiBXS0J1bmRsZVBhZ2VSZXNvdXJjZUxvYWRDbGllbnQu
aCAqLywKIAkJCQkxQUI0NzRERDE4NEQ0NDU5MDA1MUI2MjIgLyogV0tCdW5kbGVQYWdlVUlDbGll
bnQuaCAqLywKKwkJCQkxREFBNTJDMjI0Mzk2RTZEMDAxQTMxNTkgLyogV0tCdW5kbGVQYWdlVmlk
ZW9GdWxsc2NyZWVuQ2xpZW50LmggKi8sCiAJCQkJQkNGMDQ5RTUxMUZFMjBGNjAwRjg2QTU4IC8q
IFdLQnVuZGxlUHJpdmF0ZS5oICovLAogCQkJCUJDNjBDNTc4MTI0MEE1NDYwMDhDNUUyOSAvKiBX
S0J1bmRsZVJhbmdlSGFuZGxlLmNwcCAqLywKIAkJCQlCQzYwQzU3NzEyNDBBNTQ2MDA4QzVFMjkg
LyogV0tCdW5kbGVSYW5nZUhhbmRsZS5oICovLApAQCAtMTA3OTksNiArMTA4MDgsNyBAQAogCQkJ
CUJDQThDNkE5MTFFM0JBNUYwMDgxMkZCNyAvKiBJbmplY3RlZEJ1bmRsZVBhZ2VMb2FkZXJDbGll
bnQuaCBpbiBIZWFkZXJzICovLAogCQkJCUJDODE0N0E5MTJGNjRDREEwMDdCMkMzMiAvKiBJbmpl
Y3RlZEJ1bmRsZVBhZ2VQb2xpY3lDbGllbnQuaCBpbiBIZWFkZXJzICovLAogCQkJCUJDQThDNkIw
MTFFM0MwODcwMDgxMkZCNyAvKiBJbmplY3RlZEJ1bmRsZVBhZ2VVSUNsaWVudC5oIGluIEhlYWRl
cnMgKi8sCisJCQkJMURBQTUyQzAyNDM5NjgzMTAwMUEzMTU5IC8qIEluamVjdGVkQnVuZGxlUGFn
ZVZpZGVvRnVsbHNjcmVlbkNsaWVudC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQkMzM0UwRDExMjQw
OEU4NjAwMzYwRjNGIC8qIEluamVjdGVkQnVuZGxlUmFuZ2VIYW5kbGUuaCBpbiBIZWFkZXJzICov
LAogCQkJCUJDMTRERjc3MTIwQjVCNzkwMDgyNkMwQyAvKiBJbmplY3RlZEJ1bmRsZVNjcmlwdFdv
cmxkLmggaW4gSGVhZGVycyAqLywKIAkJCQkyREQ0NUFERTFFNUY4OTcyMDA2QzM1NUYgLyogSW5w
dXRWaWV3VXBkYXRlRGVmZXJyZXIuaCBpbiBIZWFkZXJzICovLApAQCAtMTE0MzYsNiArMTE0NDYs
NyBAQAogCQkJCUJDMUI0MTk4MTFENDFENTcwMDExRThERCAvKiBXS0J1bmRsZVBhZ2VQcml2YXRl
LmggaW4gSGVhZGVycyAqLywKIAkJCQkxQUI0NzREQTE4NEQ0NDI1MDA1MUI2MjIgLyogV0tCdW5k
bGVQYWdlUmVzb3VyY2VMb2FkQ2xpZW50LmggaW4gSGVhZGVycyAqLywKIAkJCQkxQUI0NzRERTE4
NEQ0NDU5MDA1MUI2MjIgLyogV0tCdW5kbGVQYWdlVUlDbGllbnQuaCBpbiBIZWFkZXJzICovLAor
CQkJCTFEQUE1MkMzMjQzOTZFNkQwMDFBMzE1OSAvKiBXS0J1bmRsZVBhZ2VWaWRlb0Z1bGxzY3Jl
ZW5DbGllbnQuaCBpbiBIZWFkZXJzICovLAogCQkJCUJDRjA0OUU3MTFGRTIwRjYwMEY4NkE1OCAv
KiBXS0J1bmRsZVByaXZhdGUuaCBpbiBIZWFkZXJzICovLAogCQkJCUJDNjBDNTc5MTI0MEE1NDYw
MDhDNUUyOSAvKiBXS0J1bmRsZVJhbmdlSGFuZGxlLmggaW4gSGVhZGVycyAqLywKIAkJCQlCQzVE
MjRDNzE2Q0Q3M0M1MDA3RDU0NjEgLyogV0tCdW5kbGVSYW5nZUhhbmRsZVByaXZhdGUuaCBpbiBI
ZWFkZXJzICovLApAQCAtMTI2NjYsNiArMTI2NzcsNyBAQAogCQkJCTFBQTU3NjAyMTQ5NkI5Nzkw
MEE0RUUwNiAvKiBFdmVudERpc3BhdGNoZXJNZXNzYWdlUmVjZWl2ZXIuY3BwIGluIFNvdXJjZXMg
Ki8sCiAJCQkJQ0RBOTNEQjEyMkY4QkNGNDAwNDkwQTY5IC8qIEZ1bGxzY3JlZW5Ub3VjaFNlY2hl
dXJpc3RpY1BhcmFtZXRlcnMuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMjc0OUY2NDQyMTQ2NTYx
QjAwODM4MEJGIC8qIEluamVjdGVkQnVuZGxlTm9kZUhhbmRsZS5jcHAgaW4gU291cmNlcyAqLywK
KwkJCQkxREFBNTJDMTI0Mzk2ODMxMDAxQTMxNTkgLyogSW5qZWN0ZWRCdW5kbGVQYWdlVmlkZW9G
dWxsc2NyZWVuQ2xpZW50LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTI3NDlGNjQ1MjE0NjU2MUUw
MDgzODBCRiAvKiBJbmplY3RlZEJ1bmRsZVJhbmdlSGFuZGxlLmNwcCBpbiBTb3VyY2VzICovLAog
CQkJCTJEOTEzNDQxMjEyQ0Y5RjAwMDEyOEFGRCAvKiBKU05QTWV0aG9kLmNwcCBpbiBTb3VyY2Vz
ICovLAogCQkJCTJEOTEzNDQyMjEyQ0Y5RjAwMDEyOEFGRCAvKiBKU05QT2JqZWN0LmNwcCBpbiBT
b3VyY2VzICovLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVk
QnVuZGxlL0FQSS9jL1dLQnVuZGxlUGFnZS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
SW5qZWN0ZWRCdW5kbGUvQVBJL2MvV0tCdW5kbGVQYWdlLmNwcAppbmRleCBlOTM5YTRlM2VkNTY3
YzYyNTBlYjUwODFkMmM0ZmNmMGJlZGQ1YzMzLi5hNjQ0NGZmNzdhOTYyY2Q2MzYxMmU0Yjg3M2Yx
YTgyMGM0ZTAzOTJiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0
ZWRCdW5kbGUvQVBJL2MvV0tCdW5kbGVQYWdlLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2MvV0tCdW5kbGVQYWdlLmNwcApAQCAtNDIsNiArNDIs
NyBAQAogI2luY2x1ZGUgIkluamVjdGVkQnVuZGxlUGFnZVVJQ2xpZW50LmgiCiAjaW5jbHVkZSAi
SW5qZWN0ZWRCdW5kbGVTY3JpcHRXb3JsZC5oIgogI2luY2x1ZGUgIlBhZ2VCYW5uZXIuaCIKKyNp
bmNsdWRlICJWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyLmgiCiAjaW5jbHVkZSAiV0tBUElDYXN0Lmgi
CiAjaW5jbHVkZSAiV0tBcnJheS5oIgogI2luY2x1ZGUgIldLQnVuZGxlQVBJQ2FzdC5oIgpAQCAt
MTY1LDYgKzE2Niw4OCBAQCB2b2lkIFdLQnVuZGxlUGFnZURpZEV4aXRGdWxsU2NyZWVuKFdLQnVu
ZGxlUGFnZVJlZiBwYWdlUmVmKQogI2VuZGlmCiB9CiAKK3ZvaWQgV0tCdW5kbGVQYWdlU2V0Vmlk
ZW9GdWxsc2NyZWVuQ2xpZW50KFdLQnVuZGxlUGFnZVJlZiBwYWdlLCBXS0J1bmRsZVBhZ2VWaWRl
b0Z1bGxzY3JlZW5DbGllbnRCYXNlKiB3a0NsaWVudCkKK3sKKyNpZiBFTkFCTEUoVklERU9fUFJF
U0VOVEFUSU9OX01PREUpCisgICAgV2ViS2l0Ojp0b0ltcGwocGFnZSktPmluaXRpYWxpemVJbmpl
Y3RlZEJ1bmRsZVZpZGVvRnVsbHNjcmVlbkNsaWVudCh3a0NsaWVudCk7CisjZWxzZQorICAgIFVO
VVNFRF9QQVJBTShwYWdlUmVmKTsKKyAgICBVTlVTRURfUEFSQU0od2tDbGllbnQpOworI2VuZGlm
Cit9CisKK3ZvaWQgV0tCdW5kbGVQYWdlUmVxdWVzdFZpZGVvRnVsbHNjcmVlbk1vZGUoV0tCdW5k
bGVQYWdlUmVmIHBhZ2UsIHVpbnQ2NF90IGNvbnRleHRJZCwgV0tWaWRlb0Z1bGxzY3JlZW5Nb2Rl
IG1vZGUsIGJvb2wgZmluaXNoZWRXaXRoTWVkaWEpCit7CisjaWYgRU5BQkxFKFZJREVPX1BSRVNF
TlRBVElPTl9NT0RFKQorICAgIFdlYktpdDo6dG9JbXBsKHBhZ2UpLT52aWRlb0Z1bGxzY3JlZW5N
YW5hZ2VyKCkucmVxdWVzdEZ1bGxzY3JlZW5Nb2RlKGNvbnRleHRJZCwgbW9kZSwgZmluaXNoZWRX
aXRoTWVkaWEpOworI2Vsc2UKKyAgICBVTlVTRURfUEFSQU0ocGFnZSk7CisgICAgVU5VU0VEX1BB
UkFNKGNvbnRleHRJZCk7CisgICAgVU5VU0VEX1BBUkFNKG1vZGUpOworICAgIFVOVVNFRF9QQVJB
TShmaW5pc2hlZFdpdGhNZWRpYSk7CisjZW5kaWYKK30KKwordm9pZCBXS0J1bmRsZVBhZ2VSZXF1
ZXN0VmlkZW9Db250ZW50TGF5ZXIoV0tCdW5kbGVQYWdlUmVmIHBhZ2UsIHVpbnQ2NF90IGNvbnRl
eHRJZCkKK3sKKyNpZiBFTkFCTEUoVklERU9fUFJFU0VOVEFUSU9OX01PREUpCisgICAgV2ViS2l0
Ojp0b0ltcGwocGFnZSktPnZpZGVvRnVsbHNjcmVlbk1hbmFnZXIoKS5yZXF1ZXN0VmlkZW9Db250
ZW50TGF5ZXIoY29udGV4dElkKTsKKyNlbHNlCisgICAgVU5VU0VEX1BBUkFNKHBhZ2UpOworICAg
IFVOVVNFRF9QQVJBTShjb250ZXh0SWQpOworI2VuZGlmCit9CisKK3ZvaWQgV0tCdW5kbGVQYWdl
RGlkU2V0dXBWaWRlb0Z1bGxzY3JlZW4oV0tCdW5kbGVQYWdlUmVmIHBhZ2UsIHVpbnQ2NF90IGNv
bnRleHRJZCkKK3sKKyNpZiBFTkFCTEUoVklERU9fUFJFU0VOVEFUSU9OX01PREUpCisgICAgV2Vi
S2l0Ojp0b0ltcGwocGFnZSktPnZpZGVvRnVsbHNjcmVlbk1hbmFnZXIoKS5kaWRTZXR1cEZ1bGxz
Y3JlZW4oY29udGV4dElkKTsKKyNlbHNlCisgICAgVU5VU0VEX1BBUkFNKHBhZ2UpOworICAgIFVO
VVNFRF9QQVJBTShjb250ZXh0SWQpOworI2VuZGlmCit9CisKK3ZvaWQgV0tCdW5kbGVQYWdlRGlk
RW50ZXJWaWRlb0Z1bGxzY3JlZW4oV0tCdW5kbGVQYWdlUmVmIHBhZ2UsIHVpbnQ2NF90IGNvbnRl
eHRJZCkKK3sKKyNpZiBFTkFCTEUoVklERU9fUFJFU0VOVEFUSU9OX01PREUpCisgICAgV2ViS2l0
Ojp0b0ltcGwocGFnZSktPnZpZGVvRnVsbHNjcmVlbk1hbmFnZXIoKS5kaWRFbnRlckZ1bGxzY3Jl
ZW4oY29udGV4dElkKTsKKyNlbHNlCisgICAgVU5VU0VEX1BBUkFNKHBhZ2UpOworICAgIFVOVVNF
RF9QQVJBTShjb250ZXh0SWQpOworI2VuZGlmCit9CisKK3ZvaWQgV0tCdW5kbGVQYWdlUmV0dXJu
VmlkZW9Db250ZW50TGF5ZXIoV0tCdW5kbGVQYWdlUmVmIHBhZ2UsIHVpbnQ2NF90IGNvbnRleHRJ
ZCkKK3sKKyNpZiBFTkFCTEUoVklERU9fUFJFU0VOVEFUSU9OX01PREUpCisgICAgV2ViS2l0Ojp0
b0ltcGwocGFnZSktPnZpZGVvRnVsbHNjcmVlbk1hbmFnZXIoKS5yZXR1cm5WaWRlb0NvbnRlbnRM
YXllcihjb250ZXh0SWQpOworI2Vsc2UKKyAgICBVTlVTRURfUEFSQU0ocGFnZSk7CisgICAgVU5V
U0VEX1BBUkFNKGNvbnRleHRJZCk7CisjZW5kaWYKK30KKwordm9pZCBXS0J1bmRsZVBhZ2VEaWRF
eGl0VmlkZW9GdWxsc2NyZWVuKFdLQnVuZGxlUGFnZVJlZiBwYWdlLCB1aW50NjRfdCBjb250ZXh0
SWQpCit7CisjaWYgRU5BQkxFKFZJREVPX1BSRVNFTlRBVElPTl9NT0RFKQorICAgIFdlYktpdDo6
dG9JbXBsKHBhZ2UpLT52aWRlb0Z1bGxzY3JlZW5NYW5hZ2VyKCkuZGlkRXhpdEZ1bGxzY3JlZW4o
Y29udGV4dElkKTsKKyNlbHNlCisgICAgVU5VU0VEX1BBUkFNKHBhZ2UpOworICAgIFVOVVNFRF9Q
QVJBTShjb250ZXh0SWQpOworI2VuZGlmCit9CisKK3ZvaWQgV0tCdW5kbGVQYWdlRGlkQ2xlYW51
cFZpZGVvRnVsbHNjcmVlbihXS0J1bmRsZVBhZ2VSZWYgcGFnZSwgdWludDY0X3QgY29udGV4dElk
KQoreworI2lmIEVOQUJMRShWSURFT19QUkVTRU5UQVRJT05fTU9ERSkKKyAgICBXZWJLaXQ6OnRv
SW1wbChwYWdlKS0+dmlkZW9GdWxsc2NyZWVuTWFuYWdlcigpLmRpZENsZWFudXBGdWxsc2NyZWVu
KGNvbnRleHRJZCk7CisjZWxzZQorICAgIFVOVVNFRF9QQVJBTShwYWdlKTsKKyAgICBVTlVTRURf
UEFSQU0oY29udGV4dElkKTsKKyNlbmRpZgorfQorCiBXS0J1bmRsZVBhZ2VHcm91cFJlZiBXS0J1
bmRsZVBhZ2VHZXRQYWdlR3JvdXAoV0tCdW5kbGVQYWdlUmVmIHBhZ2VSZWYpCiB7CiAgICAgcmV0
dXJuIHRvQVBJKFdlYktpdDo6dG9JbXBsKHBhZ2VSZWYpLT5wYWdlR3JvdXAoKSk7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2MvV0tCdW5k
bGVQYWdlLmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2Mv
V0tCdW5kbGVQYWdlLmgKaW5kZXggNGY4M2I4ZWYwYzgwMmJjYzFiM2Q3YmNmOTQyY2VhZWExNDdl
YWFjZi4uMzhlYWE2YWZlNzhkNWZlMzJkODFlYjI0NjE1ZWE0ZDZjZjIxZDg4MSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9jL1dLQnVuZGxl
UGFnZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkv
Yy9XS0J1bmRsZVBhZ2UuaApAQCAtMzYsNiArMzYsNyBAQAogI2luY2x1ZGUgPFdlYktpdC9XS0J1
bmRsZVBhZ2VQb2xpY3lDbGllbnQuaD4KICNpbmNsdWRlIDxXZWJLaXQvV0tCdW5kbGVQYWdlUmVz
b3VyY2VMb2FkQ2xpZW50Lmg+CiAjaW5jbHVkZSA8V2ViS2l0L1dLQnVuZGxlUGFnZVVJQ2xpZW50
Lmg+CisjaW5jbHVkZSA8V2ViS2l0L1dLQnVuZGxlUGFnZVZpZGVvRnVsbHNjcmVlbkNsaWVudC5o
PgogI2luY2x1ZGUgPFdlYktpdC9XS0RlcHJlY2F0ZWQuaD4KICNpbmNsdWRlIDxXZWJLaXQvV0tG
aW5kT3B0aW9ucy5oPgogI2luY2x1ZGUgPFdlYktpdC9XS0ltYWdlLmg+CkBAIC01NSw2ICs1Niwx
NCBAQCBXS19FWFBPUlQgdm9pZCBXS0J1bmRsZVBhZ2VEaWRFbnRlckZ1bGxTY3JlZW4oV0tCdW5k
bGVQYWdlUmVmIHBhZ2UpOwogV0tfRVhQT1JUIHZvaWQgV0tCdW5kbGVQYWdlV2lsbEV4aXRGdWxs
U2NyZWVuKFdLQnVuZGxlUGFnZVJlZiBwYWdlKTsKIFdLX0VYUE9SVCB2b2lkIFdLQnVuZGxlUGFn
ZURpZEV4aXRGdWxsU2NyZWVuKFdLQnVuZGxlUGFnZVJlZiBwYWdlKTsKIAorV0tfRVhQT1JUIHZv
aWQgV0tCdW5kbGVQYWdlUmVxdWVzdFZpZGVvRnVsbHNjcmVlbk1vZGUoV0tCdW5kbGVQYWdlUmVm
IHBhZ2UsIHVpbnQ2NF90IGNvbnRleHRJZCwgV0tWaWRlb0Z1bGxzY3JlZW5Nb2RlIG1vZGUsIGJv
b2wgZmluaXNoZWRXaXRoTWVkaWEpOworV0tfRVhQT1JUIHZvaWQgV0tCdW5kbGVQYWdlUmVxdWVz
dFZpZGVvQ29udGVudExheWVyKFdLQnVuZGxlUGFnZVJlZiBwYWdlLCB1aW50NjRfdCBjb250ZXh0
SWQpOworV0tfRVhQT1JUIHZvaWQgV0tCdW5kbGVQYWdlUmV0dXJuVmlkZW9Db250ZW50TGF5ZXIo
V0tCdW5kbGVQYWdlUmVmIHBhZ2UsIHVpbnQ2NF90IGNvbnRleHRJZCk7CitXS19FWFBPUlQgdm9p
ZCBXS0J1bmRsZVBhZ2VEaWRTZXR1cFZpZGVvRnVsbHNjcmVlbihXS0J1bmRsZVBhZ2VSZWYgcGFn
ZSwgdWludDY0X3QgY29udGV4dElkKTsKK1dLX0VYUE9SVCB2b2lkIFdLQnVuZGxlUGFnZURpZEVu
dGVyVmlkZW9GdWxsc2NyZWVuKFdLQnVuZGxlUGFnZVJlZiBwYWdlLCB1aW50NjRfdCBjb250ZXh0
SWQpOworV0tfRVhQT1JUIHZvaWQgV0tCdW5kbGVQYWdlRGlkRXhpdFZpZGVvRnVsbHNjcmVlbihX
S0J1bmRsZVBhZ2VSZWYgcGFnZSwgdWludDY0X3QgY29udGV4dElkKTsKK1dLX0VYUE9SVCB2b2lk
IFdLQnVuZGxlUGFnZURpZENsZWFudXBWaWRlb0Z1bGxzY3JlZW4oV0tCdW5kbGVQYWdlUmVmIHBh
Z2UsIHVpbnQ2NF90IGNvbnRleHRJZCk7CisKIFdLX0VYUE9SVCBXS1R5cGVJRCBXS0J1bmRsZVBh
Z2VHZXRUeXBlSUQoKTsKIAogV0tfRVhQT1JUIHZvaWQgV0tCdW5kbGVQYWdlU2V0Q29udGV4dE1l
bnVDbGllbnQoV0tCdW5kbGVQYWdlUmVmIHBhZ2UsIFdLQnVuZGxlUGFnZUNvbnRleHRNZW51Q2xp
ZW50QmFzZSogY2xpZW50KTsKQEAgLTY1LDYgKzc0LDcgQEAgV0tfRVhQT1JUIHZvaWQgV0tCdW5k
bGVQYWdlU2V0UmVzb3VyY2VMb2FkQ2xpZW50KFdLQnVuZGxlUGFnZVJlZiBwYWdlLCBXS0J1bmRs
ZVAKIFdLX0VYUE9SVCB2b2lkIFdLQnVuZGxlUGFnZVNldFBvbGljeUNsaWVudChXS0J1bmRsZVBh
Z2VSZWYgcGFnZSwgV0tCdW5kbGVQYWdlUG9saWN5Q2xpZW50QmFzZSogY2xpZW50KTsKIFdLX0VY
UE9SVCB2b2lkIFdLQnVuZGxlUGFnZVNldFVJQ2xpZW50KFdLQnVuZGxlUGFnZVJlZiBwYWdlLCBX
S0J1bmRsZVBhZ2VVSUNsaWVudEJhc2UqIGNsaWVudCk7CiBXS19FWFBPUlQgdm9pZCBXS0J1bmRs
ZVBhZ2VTZXRGdWxsU2NyZWVuQ2xpZW50KFdLQnVuZGxlUGFnZVJlZiBwYWdlLCBXS0J1bmRsZVBh
Z2VGdWxsU2NyZWVuQ2xpZW50QmFzZSogY2xpZW50KTsKK1dLX0VYUE9SVCB2b2lkIFdLQnVuZGxl
UGFnZVNldFZpZGVvRnVsbHNjcmVlbkNsaWVudChXS0J1bmRsZVBhZ2VSZWYgcGFnZSwgV0tCdW5k
bGVQYWdlVmlkZW9GdWxsc2NyZWVuQ2xpZW50QmFzZSogY2xpZW50KTsKIAogV0tfRVhQT1JUIFdL
QnVuZGxlUGFnZUdyb3VwUmVmIFdLQnVuZGxlUGFnZUdldFBhZ2VHcm91cChXS0J1bmRsZVBhZ2VS
ZWYgcGFnZSk7CiBXS19FWFBPUlQgV0tCdW5kbGVGcmFtZVJlZiBXS0J1bmRsZVBhZ2VHZXRNYWlu
RnJhbWUoV0tCdW5kbGVQYWdlUmVmIHBhZ2UpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9jL1dLQnVuZGxlUGFnZVZpZGVvRnVsbHNjcmVl
bkNsaWVudC5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9j
L1dLQnVuZGxlUGFnZVZpZGVvRnVsbHNjcmVlbkNsaWVudC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjIwMWZkNWU2
NmI3OTVmN2QwNTE1YzIzNWJkMDQ1MWJhYjcwZjQxY2QKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2MvV0tCdW5kbGVQYWdlVmlk
ZW9GdWxsc2NyZWVuQ2xpZW50LmgKQEAgLTAsMCArMSw3MCBAQAorLyoKKyAqIENvcHlyaWdodCAo
QykgMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmli
dXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0
CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93
aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291
cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICog
Mi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29y
IG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICog
VEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVU
T1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywg
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVT
IE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQ
T1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBD
T05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lE
RU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAo
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElU
VVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1Ig
QlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVP
UlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElU
WSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lO
RyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURW
SVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFn
bWEgb25jZQorCisjaW5jbHVkZSA8V2ViS2l0L1dLQmFzZS5oPgorI2luY2x1ZGUgPFdlYktpdC9X
S0dlb21ldHJ5Lmg+CisKK2VudW0geworICAgIFdLVmlkZW9GdWxsc2NyZWVuTW9kZU5vbmUgPSAw
LAorICAgIFdLVmlkZW9GdWxsc2NyZWVuTW9kZVN0YW5kYXJkID0gMSA8PCAwLAorICAgIFdLVmlk
ZW9GdWxsc2NyZWVuTW9kZVBpY3R1cmVJblBpY3R1cmUgPSAxIDw8IDEsCit9OwordHlwZWRlZiB1
aW50MzJfdCBXS1ZpZGVvRnVsbHNjcmVlbk1vZGU7CisKK3R5cGVkZWYgdm9pZCAoKldLQnVuZGxl
UGFnZVNldEhhc1ZpZGVvKShXS0J1bmRsZVBhZ2VSZWYgcGFnZSwgdWludDY0X3QgY29udGV4dElk
LCBib29sIGhhc1ZpZGVvKTsKK3R5cGVkZWYgdm9pZCAoKldLQnVuZGxlUGFnZVNldFZpZGVvRGlt
ZW5zaW9ucykoV0tCdW5kbGVQYWdlUmVmIHBhZ2UsIHVpbnQ2NF90IGNvbnRleHRJZCwgV0tTaXpl
IHZpZGVvRGltZW5zaW9ucyk7Cit0eXBlZGVmIHZvaWQgKCpXS0J1bmRsZVBhZ2VTZXR1cFZpZGVv
RnVsbHNjcmVlbldpdGhJRCkoV0tCdW5kbGVQYWdlUmVmIHBhZ2UsIHVpbnQ2NF90IGNvbnRleHRJ
ZCwgdWludDMyX3QgdmlkZW9MYXllcklELCBXS1JlY3QgaW5pdGlhbFJlY3QsIGZsb2F0IGhvc3Rp
bmdTY2FsZUZhY3RvciwgV0tWaWRlb0Z1bGxzY3JlZW5Nb2RlIHZpZGVvRnVsbHNjcmVlbk1vZGUs
IGJvb2wgYWxsb3dzUGljdHVyZUluUGljdHVyZSwgYm9vbCBzdGFuZGJ5KTsKK3R5cGVkZWYgdm9p
ZCAoKldLQnVuZGxlUGFnZUVudGVyVmlkZW9GdWxsc2NyZWVuKShXS0J1bmRsZVBhZ2VSZWYgcGFn
ZSwgdWludDY0X3QgY29udGV4dElkKTsKK3R5cGVkZWYgdm9pZCAoKldLQnVuZGxlUGFnZUV4aXRW
aWRlb0Z1bGxzY3JlZW4pKFdLQnVuZGxlUGFnZVJlZiBwYWdlLCB1aW50NjRfdCBjb250ZXh0SWQs
IFdLUmVjdCBmaW5hbFJlY3QpOwordHlwZWRlZiB2b2lkICgqV0tCdW5kbGVQYWdlU2V0SW5saW5l
UmVjdCkoV0tCdW5kbGVQYWdlUmVmIHBhZ2UsIHVpbnQ2NF90IGNvbnRleHRJZCwgV0tSZWN0IGlu
bGluZVJlY3QsIGJvb2wgdmlzaWJsZSk7Cit0eXBlZGVmIHZvaWQgKCpXS0J1bmRsZVBhZ2VTZXRI
YXNWaWRlb0NvbnRlbnRMYXllcikoV0tCdW5kbGVQYWdlUmVmIHBhZ2UsIHVpbnQ2NF90IGNvbnRl
eHRJZCwgYm9vbCB2YWx1ZSk7Cit0eXBlZGVmIHZvaWQgKCpXS0J1bmRsZVBhZ2VDbGVhbnVwVmlk
ZW9GdWxsc2NyZWVuKShXS0J1bmRsZVBhZ2VSZWYgcGFnZSwgdWludDY0X3QgY29udGV4dElkKTsK
K3R5cGVkZWYgdm9pZCAoKldLQnVuZGxlUGFnZVByZXBhcmVkVG9SZXR1cm5Ub0lubGluZSkoV0tC
dW5kbGVQYWdlUmVmIHBhZ2UsIHVpbnQ2NF90IGNvbnRleHRJZCwgYm9vbCB2aXNpYmxlLCBXS1Jl
Y3QgaW5saW5lUmVjdCk7Cit0eXBlZGVmIHZvaWQgKCpXS0J1bmRsZVBhZ2VQcmVwYXJlZFRvRXhp
dFZpZGVvRnVsbHNjcmVlbikoV0tCdW5kbGVQYWdlUmVmIHBhZ2UsIHVpbnQ2NF90IGNvbnRleHRJ
ZCk7Cit0eXBlZGVmIHZvaWQgKCpXS0J1bmRsZVBhZ2VFeGl0VmlkZW9GdWxsc2NyZWVuV2l0aG91
dEFuaW1hdGlvblRvTW9kZSkoV0tCdW5kbGVQYWdlUmVmIHBhZ2UsIHVpbnQ2NF90IGNvbnRleHRJ
ZCwgV0tWaWRlb0Z1bGxzY3JlZW5Nb2RlIHZpZGVvRnVsbHNjcmVlbk1vZGUpOworCit0eXBlZGVm
IHN0cnVjdCBXS0J1bmRsZVBhZ2VWaWRlb0Z1bGxzY3JlZW5DbGllbnRCYXNlIHsKKyAgICBpbnQg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIHZlcnNpb247CisgICAgY29uc3Qgdm9pZCAqICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGllbnRJbmZvOworfSBXS0J1bmRsZVBh
Z2VWaWRlb0Z1bGxzY3JlZW5DbGllbnRCYXNlOworCit0eXBlZGVmIHN0cnVjdCBXS0J1bmRsZVBh
Z2VWaWRlb0Z1bGxzY3JlZW5DbGllbnRWMCB7CisgICAgV0tCdW5kbGVQYWdlVmlkZW9GdWxsc2Ny
ZWVuQ2xpZW50QmFzZSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBiYXNlOworCisgICAg
Ly8gVmVyc2lvbiAwLgorICAgIFdLQnVuZGxlUGFnZVNldEhhc1ZpZGVvICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2V0SGFzVmlkZW87CisgICAgV0tCdW5kbGVQ
YWdlU2V0VmlkZW9EaW1lbnNpb25zICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBzZXRWaWRlb0RpbWVuc2lvbnM7CisgICAgV0tCdW5kbGVQYWdlU2V0dXBWaWRlb0Z1bGxzY3Jl
ZW5XaXRoSUQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZXR1cEZ1bGxzY3JlZW5XaXRo
SUQ7CisgICAgV0tCdW5kbGVQYWdlRW50ZXJWaWRlb0Z1bGxzY3JlZW4gICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBlbnRlckZ1bGxzY3JlZW47CisgICAgV0tCdW5kbGVQYWdlRXhp
dFZpZGVvRnVsbHNjcmVlbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBleGl0
RnVsbHNjcmVlbjsKKyAgICBXS0J1bmRsZVBhZ2VTZXRJbmxpbmVSZWN0ICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNldElubGluZVJlY3Q7CisgICAgV0tCdW5kbGVQ
YWdlU2V0SGFzVmlkZW9Db250ZW50TGF5ZXIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBzZXRIYXNWaWRlb0NvbnRlbnRMYXllcjsKKyAgICBXS0J1bmRsZVBhZ2VDbGVhbnVwVmlkZW9G
dWxsc2NyZWVuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsZWFudXBGdWxsc2Ny
ZWVuOworICAgIFdLQnVuZGxlUGFnZVByZXBhcmVkVG9SZXR1cm5Ub0lubGluZSAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgcHJlcGFyZWRUb1JldHJ1blRvSW5saW5lOworICAgIFdLQnVu
ZGxlUGFnZVByZXBhcmVkVG9FeGl0VmlkZW9GdWxsc2NyZWVuICAgICAgICAgICAgICAgICAgICAg
ICAgICAgcHJlcGFyZWRUb0V4aXRGdWxsc2NyZWVuOworICAgIFdLQnVuZGxlUGFnZUV4aXRWaWRl
b0Z1bGxzY3JlZW5XaXRob3V0QW5pbWF0aW9uVG9Nb2RlICAgICAgICAgICAgICAgZXhpdEZ1bGxz
Y3JlZW5XaXRob3V0QW5pbWF0aW9uVG9Nb2RlOworfSBXS0J1bmRsZVBhZ2VWaWRlb0Z1bGxzY3Jl
ZW5DbGllbnRWMDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3Rl
ZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZVBhZ2VGdWxsU2NyZWVuQ2xpZW50LmNwcCBiL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZVBhZ2VGdWxsU2Ny
ZWVuQ2xpZW50LmNwcAppbmRleCBmNzEzYjVhNDIzZmM3OWVhNmM1ZmI2MDI0M2U3NjgyZjA1MDlm
NjljLi45YjQ4MDFmNTc2M2FjM2U1OWJlYmVhZWRkMjUzMzM0NjRhNDZkYTkzIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvSW5qZWN0ZWRCdW5kbGVQ
YWdlRnVsbFNjcmVlbkNsaWVudC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0lu
amVjdGVkQnVuZGxlL0luamVjdGVkQnVuZGxlUGFnZUZ1bGxTY3JlZW5DbGllbnQuY3BwCkBAIC0y
NCwxMSArMjQsMTAgQEAKICAqLwogCiAjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiSW5q
ZWN0ZWRCdW5kbGVQYWdlRnVsbFNjcmVlbkNsaWVudC5oIgogCiAjaWYgRU5BQkxFKEZVTExTQ1JF
RU5fQVBJKQogCi0jaW5jbHVkZSAiSW5qZWN0ZWRCdW5kbGVQYWdlRnVsbFNjcmVlbkNsaWVudC5o
IgotCiAjaW5jbHVkZSAiSW5qZWN0ZWRCdW5kbGVOb2RlSGFuZGxlLmgiCiAjaW5jbHVkZSAiV0tB
UElDYXN0LmgiCiAjaW5jbHVkZSAiV0tCdW5kbGVBUElDYXN0LmgiCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvSW5qZWN0ZWRCdW5kbGVQYWdlRnVs
bFNjcmVlbkNsaWVudC5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxl
L0luamVjdGVkQnVuZGxlUGFnZUZ1bGxTY3JlZW5DbGllbnQuaAppbmRleCA2NTYzYjZjNmRmMzgz
Mzc5ZmI4YWJmMTA5ZDdlNTk4NTVhN2M5MzhiLi40ZWNkZDExYTVkNTBjNDFiOGU0ZWZkMGMyNjVh
OTRjY2U4NTRhNWNjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0
ZWRCdW5kbGUvSW5qZWN0ZWRCdW5kbGVQYWdlRnVsbFNjcmVlbkNsaWVudC5oCisrKyBiL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZVBhZ2VGdWxs
U2NyZWVuQ2xpZW50LmgKQEAgLTIzLDggKzIzLDcgQEAKICAqIFRIRSBQT1NTSUJJTElUWSBPRiBT
VUNIIERBTUFHRS4KICAqLwogCi0jaWZuZGVmIEluamVjdGVkQnVuZGxlUGFnZUZ1bGxTY3JlZW5D
bGllbnRfaAotI2RlZmluZSBJbmplY3RlZEJ1bmRsZVBhZ2VGdWxsU2NyZWVuQ2xpZW50X2gKKyNw
cmFnbWEgb25jZQogCiAjaWYgRU5BQkxFKEZVTExTQ1JFRU5fQVBJKQogCkBAIC02MCw1ICs1OSwz
IEBAIHB1YmxpYzoKIH0gLy8gbmFtZXNwYWNlIFdlYktpdAogCiAjZW5kaWYgLy8gRU5BQkxFKEZV
TExTQ1JFRU5fQVBJKQotCi0jZW5kaWYgLy8gSW5qZWN0ZWRCdW5kbGVQYWdlRnVsbFNjcmVlbkNs
aWVudF9oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5k
bGUvSW5qZWN0ZWRCdW5kbGVQYWdlVmlkZW9GdWxsc2NyZWVuQ2xpZW50LmNwcCBiL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZVBhZ2VWaWRlb0Z1
bGxzY3JlZW5DbGllbnQuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmNhYWE1ZjEzN2MyZTQwMmVlZTVhYmM0MDg5
ODM3ZTBiNGMyZmNlZWUKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvSW5qZWN0ZWRCdW5kbGUvSW5qZWN0ZWRCdW5kbGVQYWdlVmlkZW9GdWxsc2NyZWVuQ2xpZW50
LmNwcApAQCAtMCwwICsxLDEzNCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMCBBcHBsZSBJ
bmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBp
biBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRp
b24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMK
KyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCBy
ZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRp
b25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAq
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFs
cyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJ
UyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJwor
ICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJ
TElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJ
TUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAq
IEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUws
IEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNF
UlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElO
VEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZ
LCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5D
TFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9V
VCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhF
IFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIK
KyNpbmNsdWRlICJJbmplY3RlZEJ1bmRsZVBhZ2VWaWRlb0Z1bGxzY3JlZW5DbGllbnQuaCIKKwor
I2lmIEVOQUJMRShWSURFT19QUkVTRU5UQVRJT05fTU9ERSkKKworI2luY2x1ZGUgIlZpZGVvRnVs
bHNjcmVlbk1hbmFnZXJQcm94eU1lc3NhZ2VzLmgiCisjaW5jbHVkZSAiV0tBUElDYXN0LmgiCisj
aW5jbHVkZSAiV0tCdW5kbGVBUElDYXN0LmgiCisjaW5jbHVkZSAiV2ViQ29yZUFyZ3VtZW50Q29k
ZXJzLmgiCisjaW5jbHVkZSAiV2ViUGFnZS5oIgorI2luY2x1ZGUgPFdlYkNvcmUvRmxvYXRTaXpl
Lmg+CisjaW5jbHVkZSA8V2ViQ29yZS9JbnRSZWN0Lmg+CisKK25hbWVzcGFjZSBXZWJLaXQgewor
dXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CisKK3ZvaWQgSW5qZWN0ZWRCdW5kbGVQYWdlVmlkZW9G
dWxsc2NyZWVuQ2xpZW50OjpzZXRIYXNWaWRlbyhXZWJQYWdlKiBwYWdlLCB1aW50NjRfdCBjb250
ZXh0SWQsIGJvb2wgaGFzVmlkZW8pCit7CisgICAgaWYgKG1fY2xpZW50LnNldEhhc1ZpZGVvKQor
ICAgICAgICBtX2NsaWVudC5zZXRIYXNWaWRlbyh0b0FQSShwYWdlKSwgY29udGV4dElkLCBoYXNW
aWRlbyk7CisgICAgZWxzZQorICAgICAgICBwYWdlLT5zZW5kKE1lc3NhZ2VzOjpWaWRlb0Z1bGxz
Y3JlZW5NYW5hZ2VyUHJveHk6OlNldEhhc1ZpZGVvKGNvbnRleHRJZCwgaGFzVmlkZW8pKTsKK30K
Kwordm9pZCBJbmplY3RlZEJ1bmRsZVBhZ2VWaWRlb0Z1bGxzY3JlZW5DbGllbnQ6OnNldFZpZGVv
RGltZW5zaW9ucyhXZWJQYWdlKiBwYWdlLCB1aW50NjRfdCBjb250ZXh0SWQsIEZsb2F0U2l6ZSB2
aWRlb0RpbWVuc2lvbnMpCit7CisgICAgaWYgKG1fY2xpZW50LnNldFZpZGVvRGltZW5zaW9ucykK
KyAgICAgICAgbV9jbGllbnQuc2V0VmlkZW9EaW1lbnNpb25zKHRvQVBJKHBhZ2UpLCBjb250ZXh0
SWQsIHRvQVBJKHZpZGVvRGltZW5zaW9ucykpOworICAgIGVsc2UKKyAgICAgICAgcGFnZS0+c2Vu
ZChNZXNzYWdlczo6VmlkZW9GdWxsc2NyZWVuTWFuYWdlclByb3h5OjpTZXRWaWRlb0RpbWVuc2lv
bnMoY29udGV4dElkLCB2aWRlb0RpbWVuc2lvbnMpKTsKK30KKwordm9pZCBJbmplY3RlZEJ1bmRs
ZVBhZ2VWaWRlb0Z1bGxzY3JlZW5DbGllbnQ6OnNldHVwRnVsbHNjcmVlbldpdGhJRChXZWJQYWdl
KiBwYWdlLCB1aW50NjRfdCBjb250ZXh0SWQsIHVpbnQzMl90IHZpZGVvTGF5ZXJJZCwgSW50UmVj
dCBpbml0aWFsUmVjdCwgZmxvYXQgaG9zdGluZ1NjYWxlRmFjdG9yLCBIVE1MTWVkaWFFbGVtZW50
RW51bXM6OlZpZGVvRnVsbHNjcmVlbk1vZGUgdmlkZW9GdWxsc2NyZWVuTW9kZSwgYm9vbCBhbGxv
d3NQaWN0dXJlSW5QaWN0dXJlLCBib29sIHN0YW5kYnkpCit7CisgICAgaWYgKG1fY2xpZW50LnNl
dHVwRnVsbHNjcmVlbldpdGhJRCkKKyAgICAgICAgbV9jbGllbnQuc2V0dXBGdWxsc2NyZWVuV2l0
aElEKHRvQVBJKHBhZ2UpLCBjb250ZXh0SWQsIHZpZGVvTGF5ZXJJZCwgdG9BUEkoaW5pdGlhbFJl
Y3QpLCBob3N0aW5nU2NhbGVGYWN0b3IsIHZpZGVvRnVsbHNjcmVlbk1vZGUsIGFsbG93c1BpY3R1
cmVJblBpY3R1cmUsIHN0YW5kYnkpOworICAgIGVsc2UKKyAgICAgICAgcGFnZS0+c2VuZChNZXNz
YWdlczo6VmlkZW9GdWxsc2NyZWVuTWFuYWdlclByb3h5OjpTZXR1cEZ1bGxzY3JlZW5XaXRoSUQo
Y29udGV4dElkLCB2aWRlb0xheWVySWQsIGluaXRpYWxSZWN0LCBob3N0aW5nU2NhbGVGYWN0b3Is
IHZpZGVvRnVsbHNjcmVlbk1vZGUsIGFsbG93c1BpY3R1cmVJblBpY3R1cmUsIHN0YW5kYnkpKTsK
K30KKwordm9pZCBJbmplY3RlZEJ1bmRsZVBhZ2VWaWRlb0Z1bGxzY3JlZW5DbGllbnQ6OmVudGVy
RnVsbHNjcmVlbihXZWJQYWdlKiBwYWdlLCB1aW50NjRfdCBjb250ZXh0SWQpCit7CisgICAgaWYg
KG1fY2xpZW50LmVudGVyRnVsbHNjcmVlbikKKyAgICAgICAgbV9jbGllbnQuZW50ZXJGdWxsc2Ny
ZWVuKHRvQVBJKHBhZ2UpLCBjb250ZXh0SWQpOworICAgIGVsc2UKKyAgICAgICAgcGFnZS0+c2Vu
ZChNZXNzYWdlczo6VmlkZW9GdWxsc2NyZWVuTWFuYWdlclByb3h5OjpFbnRlckZ1bGxzY3JlZW4o
Y29udGV4dElkKSk7Cit9CisKK3ZvaWQgSW5qZWN0ZWRCdW5kbGVQYWdlVmlkZW9GdWxsc2NyZWVu
Q2xpZW50OjpleGl0RnVsbHNjcmVlbihXZWJQYWdlKiBwYWdlLCB1aW50NjRfdCBjb250ZXh0SWQs
IEludFJlY3QgZmluYWxSZWN0KQoreworICAgIGlmIChtX2NsaWVudC5leGl0RnVsbHNjcmVlbikK
KyAgICAgICAgbV9jbGllbnQuZXhpdEZ1bGxzY3JlZW4odG9BUEkocGFnZSksIGNvbnRleHRJZCwg
dG9BUEkoZmluYWxSZWN0KSk7CisgICAgZWxzZQorICAgICAgICBwYWdlLT5zZW5kKE1lc3NhZ2Vz
OjpWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyUHJveHk6OkV4aXRGdWxsc2NyZWVuKGNvbnRleHRJZCwg
ZmluYWxSZWN0KSk7Cit9CisKK3ZvaWQgSW5qZWN0ZWRCdW5kbGVQYWdlVmlkZW9GdWxsc2NyZWVu
Q2xpZW50OjpzZXRJbmxpbmVSZWN0KFdlYlBhZ2UqIHBhZ2UsIHVpbnQ2NF90IGNvbnRleHRJZCwg
SW50UmVjdCBpbmxpbmVSZWN0LCBib29sIHZpc2libGUpCit7CisgICAgaWYgKG1fY2xpZW50LnNl
dElubGluZVJlY3QpCisgICAgICAgIG1fY2xpZW50LnNldElubGluZVJlY3QodG9BUEkocGFnZSks
IGNvbnRleHRJZCwgdG9BUEkoaW5saW5lUmVjdCksIHZpc2libGUpOworICAgIGVsc2UKKyAgICAg
ICAgcGFnZS0+c2VuZChNZXNzYWdlczo6VmlkZW9GdWxsc2NyZWVuTWFuYWdlclByb3h5OjpTZXRJ
bmxpbmVSZWN0KGNvbnRleHRJZCwgaW5saW5lUmVjdCwgdmlzaWJsZSkpOworfQorCit2b2lkIElu
amVjdGVkQnVuZGxlUGFnZVZpZGVvRnVsbHNjcmVlbkNsaWVudDo6c2V0SGFzVmlkZW9Db250ZW50
TGF5ZXIoV2ViUGFnZSogcGFnZSwgdWludDY0X3QgY29udGV4dElkLCBib29sIHZhbHVlKQorewor
ICAgIGlmIChtX2NsaWVudC5zZXRIYXNWaWRlb0NvbnRlbnRMYXllcikKKyAgICAgICAgbV9jbGll
bnQuc2V0SGFzVmlkZW9Db250ZW50TGF5ZXIodG9BUEkocGFnZSksIGNvbnRleHRJZCwgdmFsdWUp
OworICAgIGVsc2UKKyAgICAgICAgcGFnZS0+c2VuZChNZXNzYWdlczo6VmlkZW9GdWxsc2NyZWVu
TWFuYWdlclByb3h5OjpTZXRIYXNWaWRlb0NvbnRlbnRMYXllcihjb250ZXh0SWQsIHZhbHVlKSk7
Cit9CisKK3ZvaWQgSW5qZWN0ZWRCdW5kbGVQYWdlVmlkZW9GdWxsc2NyZWVuQ2xpZW50OjpjbGVh
bnVwRnVsbHNjcmVlbihXZWJQYWdlKiBwYWdlLCB1aW50NjRfdCBjb250ZXh0SWQpCit7CisgICAg
aWYgKG1fY2xpZW50LmNsZWFudXBGdWxsc2NyZWVuKQorICAgICAgICBtX2NsaWVudC5jbGVhbnVw
RnVsbHNjcmVlbih0b0FQSShwYWdlKSwgY29udGV4dElkKTsKKyAgICBlbHNlCisgICAgICAgIHBh
Z2UtPnNlbmQoTWVzc2FnZXM6OlZpZGVvRnVsbHNjcmVlbk1hbmFnZXJQcm94eTo6Q2xlYW51cEZ1
bGxzY3JlZW4oY29udGV4dElkKSk7Cit9CisKK3ZvaWQgSW5qZWN0ZWRCdW5kbGVQYWdlVmlkZW9G
dWxsc2NyZWVuQ2xpZW50OjpwcmVwYXJlZFRvUmV0dXJuVG9JbmxpbmUoV2ViUGFnZSogcGFnZSwg
dWludDY0X3QgY29udGV4dElkLCBib29sIHZpc2libGUsIEludFJlY3QgaW5saW5lUmVjdCkKK3sK
KyAgICBpZiAobV9jbGllbnQucHJlcGFyZWRUb1JldHJ1blRvSW5saW5lKQorICAgICAgICBtX2Ns
aWVudC5wcmVwYXJlZFRvUmV0cnVuVG9JbmxpbmUodG9BUEkocGFnZSksIGNvbnRleHRJZCwgdmlz
aWJsZSwgdG9BUEkoaW5saW5lUmVjdCkpOworICAgIGVsc2UKKyAgICAgICAgcGFnZS0+c2VuZChN
ZXNzYWdlczo6VmlkZW9GdWxsc2NyZWVuTWFuYWdlclByb3h5OjpQcmVwYXJlZFRvUmV0dXJuVG9J
bmxpbmUoY29udGV4dElkLCB2aXNpYmxlLCBpbmxpbmVSZWN0KSk7Cit9CisKK3ZvaWQgSW5qZWN0
ZWRCdW5kbGVQYWdlVmlkZW9GdWxsc2NyZWVuQ2xpZW50OjpwcmVwYXJlZFRvRXhpdEZ1bGxzY3Jl
ZW4oV2ViUGFnZSogcGFnZSwgdWludDY0X3QgY29udGV4dElkKQoreworICAgIGlmIChtX2NsaWVu
dC5wcmVwYXJlZFRvRXhpdEZ1bGxzY3JlZW4pCisgICAgICAgIG1fY2xpZW50LnByZXBhcmVkVG9F
eGl0RnVsbHNjcmVlbih0b0FQSShwYWdlKSwgY29udGV4dElkKTsKKyAgICBlbHNlCisgICAgICAg
IHBhZ2UtPnNlbmQoTWVzc2FnZXM6OlZpZGVvRnVsbHNjcmVlbk1hbmFnZXJQcm94eTo6UHJlcGFy
ZWRUb0V4aXRGdWxsc2NyZWVuKGNvbnRleHRJZCkpOworfQorCisjaWYgUExBVEZPUk0oTUFDKSAm
JiBFTkFCTEUoVklERU9fUFJFU0VOVEFUSU9OX01PREUpCit2b2lkIEluamVjdGVkQnVuZGxlUGFn
ZVZpZGVvRnVsbHNjcmVlbkNsaWVudDo6ZXhpdEZ1bGxzY3JlZW5XaXRob3V0QW5pbWF0aW9uVG9N
b2RlKFdlYlBhZ2UqIHBhZ2UsIHVpbnQ2NF90IGNvbnRleHRJZCwgSFRNTE1lZGlhRWxlbWVudEVu
dW1zOjpWaWRlb0Z1bGxzY3JlZW5Nb2RlIHZpZGVvRnVsbHNjcmVlbk1vZGUpCit7CisgICAgaWYg
KG1fY2xpZW50LmV4aXRGdWxsc2NyZWVuV2l0aG91dEFuaW1hdGlvblRvTW9kZSkKKyAgICAgICAg
bV9jbGllbnQuZXhpdEZ1bGxzY3JlZW5XaXRob3V0QW5pbWF0aW9uVG9Nb2RlKHRvQVBJKHBhZ2Up
LCBjb250ZXh0SWQsIHZpZGVvRnVsbHNjcmVlbk1vZGUpOworICAgIGVsc2UKKyAgICAgICAgcGFn
ZS0+c2VuZChNZXNzYWdlczo6VmlkZW9GdWxsc2NyZWVuTWFuYWdlclByb3h5OjpFeGl0RnVsbHNj
cmVlbldpdGhvdXRBbmltYXRpb25Ub01vZGUoY29udGV4dElkLCB2aWRlb0Z1bGxzY3JlZW5Nb2Rl
KSk7Cit9CisjZW5kaWYKKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CisKKyNlbmRpZiAvLyBFTkFC
TEUoVklERU9fUFJFU0VOVEFUSU9OX01PREUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvSW5qZWN0ZWRCdW5kbGVQYWdlVmlkZW9GdWxsc2NyZWVu
Q2xpZW50LmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvSW5qZWN0
ZWRCdW5kbGVQYWdlVmlkZW9GdWxsc2NyZWVuQ2xpZW50LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZDE5MWY2MDQx
N2MyOWNiNzBiNGI5MjFlOTExOWQxNzdkMmRkNzE4YwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZVBhZ2VWaWRl
b0Z1bGxzY3JlZW5DbGllbnQuaApAQCAtMCwwICsxLDcwIEBACisvKgorICogQ29weXJpZ2h0IChD
KSAyMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1
dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQK
KyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dp
bmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3Vy
Y2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAy
LiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3Zl
IGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Ig
b3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBU
SElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRP
UlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMg
T0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBP
U0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENP
TlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURF
TlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRV
VEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBC
VVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9S
WSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZ
LCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5H
IElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJ
U0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdt
YSBvbmNlCisKKyNpZiBFTkFCTEUoVklERU9fUFJFU0VOVEFUSU9OX01PREUpCisKKyNpbmNsdWRl
ICJBUElDbGllbnQuaCIKKyNpbmNsdWRlICJXS0J1bmRsZVBhZ2VWaWRlb0Z1bGxzY3JlZW5DbGll
bnQuaCIKKyNpbmNsdWRlIDxXZWJDb3JlL0hUTUxNZWRpYUVsZW1lbnRFbnVtcy5oPgorI2luY2x1
ZGUgPHd0Zi9Gb3J3YXJkLmg+CisKK25hbWVzcGFjZSBBUEkgewordGVtcGxhdGU8PiBzdHJ1Y3Qg
Q2xpZW50VHJhaXRzPFdLQnVuZGxlUGFnZVZpZGVvRnVsbHNjcmVlbkNsaWVudEJhc2U+IHsKKyAg
ICB0eXBlZGVmIHN0ZDo6dHVwbGU8V0tCdW5kbGVQYWdlVmlkZW9GdWxsc2NyZWVuQ2xpZW50VjA+
IFZlcnNpb25zOworfTsKK30KKworbmFtZXNwYWNlIFdlYkNvcmUgeworY2xhc3MgRWxlbWVudDsK
K2NsYXNzIEZsb2F0U2l6ZTsKK2NsYXNzIEludFJlY3Q7Cit9CisKK25hbWVzcGFjZSBXZWJLaXQg
eworCitjbGFzcyBXZWJQYWdlOworCitjbGFzcyBJbmplY3RlZEJ1bmRsZVBhZ2VWaWRlb0Z1bGxz
Y3JlZW5DbGllbnQgOiBwdWJsaWMgQVBJOjpDbGllbnQ8V0tCdW5kbGVQYWdlVmlkZW9GdWxsc2Ny
ZWVuQ2xpZW50QmFzZT4geworcHVibGljOgorICAgIHZvaWQgc2V0SGFzVmlkZW8oV2ViUGFnZSos
IHVpbnQ2NF90IGNvbnRleHRJZCwgYm9vbCBoYXNWaWRlbyk7CisgICAgdm9pZCBzZXRWaWRlb0Rp
bWVuc2lvbnMoV2ViUGFnZSosIHVpbnQ2NF90IGNvbnRleHRJZCwgV2ViQ29yZTo6RmxvYXRTaXpl
IHZpZGVvRGltZW5zaW9ucyk7CisgICAgdm9pZCBzZXR1cEZ1bGxzY3JlZW5XaXRoSUQoV2ViUGFn
ZSosIHVpbnQ2NF90IGNvbnRleHRJZCwgdWludDMyX3QgdmlkZW9MYXllcklELCBXZWJDb3JlOjpJ
bnRSZWN0IGluaXRpYWxSZWN0LCBmbG9hdCBob3N0aW5nU2NhbGVGYWN0b3IsIFdlYkNvcmU6OkhU
TUxNZWRpYUVsZW1lbnRFbnVtczo6VmlkZW9GdWxsc2NyZWVuTW9kZSwgYm9vbCBhbGxvd3NQaWN0
dXJlSW5QaWN0dXJlLCBib29sIHN0YW5kYnkpOworICAgIHZvaWQgZW50ZXJGdWxsc2NyZWVuKFdl
YlBhZ2UqLCB1aW50NjRfdCBjb250ZXh0SWQpOworICAgIHZvaWQgZXhpdEZ1bGxzY3JlZW4oV2Vi
UGFnZSosIHVpbnQ2NF90IGNvbnRleHRJZCwgV2ViQ29yZTo6SW50UmVjdCBmaW5hbFJlY3QpOwor
ICAgIHZvaWQgc2V0SW5saW5lUmVjdChXZWJQYWdlKiwgdWludDY0X3QgY29udGV4dElkLCBXZWJD
b3JlOjpJbnRSZWN0IGlubGluZVJlY3QsIGJvb2wgdmlzaWJsZSk7CisgICAgdm9pZCBzZXRIYXNW
aWRlb0NvbnRlbnRMYXllcihXZWJQYWdlKiwgdWludDY0X3QgY29udGV4dElkLCBib29sIHZhbHVl
KTsKKyAgICB2b2lkIGNsZWFudXBGdWxsc2NyZWVuKFdlYlBhZ2UqLCB1aW50NjRfdCBjb250ZXh0
SWQpOworICAgIHZvaWQgcHJlcGFyZWRUb1JldHVyblRvSW5saW5lKFdlYlBhZ2UqLCB1aW50NjRf
dCBjb250ZXh0SWQsIGJvb2wgdmlzaWJsZSwgV2ViQ29yZTo6SW50UmVjdCBpbmxpbmVSZWN0KTsK
KyAgICB2b2lkIHByZXBhcmVkVG9FeGl0RnVsbHNjcmVlbihXZWJQYWdlKiwgdWludDY0X3QgY29u
dGV4dElkKTsKKyNpZiBQTEFURk9STShNQUMpICYmIEVOQUJMRShWSURFT19QUkVTRU5UQVRJT05f
TU9ERSkKKyAgICB2b2lkIGV4aXRGdWxsc2NyZWVuV2l0aG91dEFuaW1hdGlvblRvTW9kZShXZWJQ
YWdlKiwgdWludDY0X3QgY29udGV4dElkLCBXZWJDb3JlOjpIVE1MTWVkaWFFbGVtZW50RW51bXM6
OlZpZGVvRnVsbHNjcmVlbk1vZGUpOworI2VuZGlmCit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJL
aXQKKworI2VuZGlmIC8vIFBMQVRGT1JNKElPU19GQU1JTFkpIHx8IChQTEFURk9STShNQUMpICYm
IEVOQUJMRShWSURFT19QUkVTRU5UQVRJT05fTU9ERSkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwCmluZGV4IDViNGNlZmYzZWFiMmJhN2Q1Yjc4ZTJhMWM5
ZTYzMGIyZTdmZDUzOGEuLmQ3MmEyMWYzNjljYjhkZTRjMmI3YzNhODM3MTMwZDA3OTYxNzg0ZWEg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3Bw
CisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwCkBAIC05
NjksNiArOTY5LDEzIEBAIHZvaWQgV2ViUGFnZTo6aW5pdGlhbGl6ZUluamVjdGVkQnVuZGxlRnVs
bFNjcmVlbkNsaWVudChXS0J1bmRsZVBhZ2VGdWxsU2NyZWVuQ2xpCiB9CiAjZW5kaWYKIAorI2lm
IEVOQUJMRShWSURFT19QUkVTRU5UQVRJT05fTU9ERSkKK3ZvaWQgV2ViUGFnZTo6aW5pdGlhbGl6
ZUluamVjdGVkQnVuZGxlVmlkZW9GdWxsc2NyZWVuQ2xpZW50KFdLQnVuZGxlUGFnZVZpZGVvRnVs
bHNjcmVlbkNsaWVudEJhc2UqIGNsaWVudCkKK3sKKyAgICBtX3ZpZGVvRnVsbHNjcmVlbkNsaWVu
dC5pbml0aWFsaXplKGNsaWVudCk7Cit9CisjZW5kaWYKKwogI2lmIEVOQUJMRShORVRTQ0FQRV9Q
TFVHSU5fQVBJKQogCiBjb25zdGV4cHIgaW50IHNtYWxsUGx1Z2luRGltZW5zaW9uVGhyZXNob2xk
ID0gNTsKQEAgLTE0MTQsNiArMTQyMSwxMCBAQCB2b2lkIFdlYlBhZ2U6OmNsb3NlKCkKICAgICBt
X2Z1bGxTY3JlZW5DbGllbnQuaW5pdGlhbGl6ZSgwKTsKICNlbmRpZgogCisjaWYgRU5BQkxFKFZJ
REVPX1BSRVNFTlRBVElPTl9NT0RFKQorICAgIG1fdmlkZW9GdWxsc2NyZWVuQ2xpZW50LmluaXRp
YWxpemUoMCk7CisjZW5kaWYKKwogICAgIG1fcHJpbnRDb250ZXh0ID0gbnVsbHB0cjsKICAgICBt
X21haW5GcmFtZS0+Y29yZUZyYW1lKCktPmxvYWRlcigpLmRldGFjaEZyb21QYXJlbnQoKTsKICAg
ICBtX2RyYXdpbmdBcmVhID0gbnVsbHB0cjsKQEAgLTM4MzksMjAgKzM4NTAsMjMgQEAgdm9pZCBX
ZWJQYWdlOjppbnNwZWN0b3JGcm9udGVuZENvdW50Q2hhbmdlZCh1bnNpZ25lZCBjb3VudCkKICAg
ICBzZW5kKE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6OkRpZENoYW5nZUluc3BlY3RvckZyb250ZW5k
Q291bnQoY291bnQpKTsKIH0KIAotI2lmIEVOQUJMRShWSURFT19QUkVTRU5UQVRJT05fTU9ERSkK
KyNpZiBQTEFURk9STShJT1NfRkFNSUxZKSB8fCAoUExBVEZPUk0oTUFDKSAmJiBFTkFCTEUoVklE
RU9fUFJFU0VOVEFUSU9OX01PREUpKQogUGxheWJhY2tTZXNzaW9uTWFuYWdlciYgV2ViUGFnZTo6
cGxheWJhY2tTZXNzaW9uTWFuYWdlcigpCiB7CiAgICAgaWYgKCFtX3BsYXliYWNrU2Vzc2lvbk1h
bmFnZXIpCiAgICAgICAgIG1fcGxheWJhY2tTZXNzaW9uTWFuYWdlciA9IFBsYXliYWNrU2Vzc2lv
bk1hbmFnZXI6OmNyZWF0ZSgqdGhpcyk7CiAgICAgcmV0dXJuICptX3BsYXliYWNrU2Vzc2lvbk1h
bmFnZXI7CiB9CisjZW5kaWYKIAorI2lmIEVOQUJMRShWSURFT19QUkVTRU5UQVRJT05fTU9ERSkK
IFZpZGVvRnVsbHNjcmVlbk1hbmFnZXImIFdlYlBhZ2U6OnZpZGVvRnVsbHNjcmVlbk1hbmFnZXIo
KQogewogICAgIGlmICghbV92aWRlb0Z1bGxzY3JlZW5NYW5hZ2VyKQogICAgICAgICBtX3ZpZGVv
RnVsbHNjcmVlbk1hbmFnZXIgPSBWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyOjpjcmVhdGUoKnRoaXMs
IHBsYXliYWNrU2Vzc2lvbk1hbmFnZXIoKSk7CiAgICAgcmV0dXJuICptX3ZpZGVvRnVsbHNjcmVl
bk1hbmFnZXI7CiB9CisjZW5kaWYKIAogdm9pZCBXZWJQYWdlOjp2aWRlb0NvbnRyb2xzTWFuYWdl
ckRpZENoYW5nZSgpCiB7CkBAIC0zODYyLDggKzM4NzYsNiBAQCB2b2lkIFdlYlBhZ2U6OnZpZGVv
Q29udHJvbHNNYW5hZ2VyRGlkQ2hhbmdlKCkKICNlbmRpZgogfQogCi0jZW5kaWYKLQogI2lmIFBM
QVRGT1JNKElPU19GQU1JTFkpCiB2b2lkIFdlYlBhZ2U6OnNldEFsbG93c01lZGlhRG9jdW1lbnRJ
bmxpbmVQbGF5YmFjayhib29sIGFsbG93cykKIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9X
ZWJQYWdlL1dlYlBhZ2UuaAppbmRleCA4MjI2NWQ0YzFhZDhjZDJjZWQ3YWE3MjlhOTU3OWQ2ZjJi
MzQ4YjU4Li5lYzNkYTZmNWVkMGEwY2E5MGY0YTZkMzVjOGJjNjA2ODBmYTNlYmQwIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmgKKysrIGIvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5oCkBAIC00MCw2ICs0MCw3IEBA
CiAjaW5jbHVkZSAiSW5qZWN0ZWRCdW5kbGVQYWdlQ29udGV4dE1lbnVDbGllbnQuaCIKICNpbmNs
dWRlICJJbmplY3RlZEJ1bmRsZVBhZ2VGdWxsU2NyZWVuQ2xpZW50LmgiCiAjaW5jbHVkZSAiSW5q
ZWN0ZWRCdW5kbGVQYWdlUG9saWN5Q2xpZW50LmgiCisjaW5jbHVkZSAiSW5qZWN0ZWRCdW5kbGVQ
YWdlVmlkZW9GdWxsc2NyZWVuQ2xpZW50LmgiCiAjaW5jbHVkZSAiTGF5ZXJUcmVlQ29udGV4dC5o
IgogI2luY2x1ZGUgIk1lc3NhZ2VSZWNlaXZlci5oIgogI2luY2x1ZGUgIk1lc3NhZ2VTZW5kZXIu
aCIKQEAgLTQ1Myw2ICs0NTQsMTAgQEAgcHVibGljOgogICAgIHZvaWQgaW5pdGlhbGl6ZUluamVj
dGVkQnVuZGxlRnVsbFNjcmVlbkNsaWVudChXS0J1bmRsZVBhZ2VGdWxsU2NyZWVuQ2xpZW50QmFz
ZSopOwogI2VuZGlmCiAKKyNpZiBFTkFCTEUoVklERU9fUFJFU0VOVEFUSU9OX01PREUpCisgICAg
dm9pZCBpbml0aWFsaXplSW5qZWN0ZWRCdW5kbGVWaWRlb0Z1bGxzY3JlZW5DbGllbnQoV0tCdW5k
bGVQYWdlVmlkZW9GdWxsc2NyZWVuQ2xpZW50QmFzZSopOworI2VuZGlmCisKICNpZiBFTkFCTEUo
Q09OVEVYVF9NRU5VUykKICAgICBBUEk6OkluamVjdGVkQnVuZGxlOjpQYWdlQ29udGV4dE1lbnVD
bGllbnQmIGluamVjdGVkQnVuZGxlQ29udGV4dE1lbnVDbGllbnQoKSB7IHJldHVybiAqbV9jb250
ZXh0TWVudUNsaWVudDsgfQogI2VuZGlmCkBAIC00NjYsNiArNDcxLDEwIEBAIHB1YmxpYzoKICAg
ICBJbmplY3RlZEJ1bmRsZVBhZ2VGdWxsU2NyZWVuQ2xpZW50JiBpbmplY3RlZEJ1bmRsZUZ1bGxT
Y3JlZW5DbGllbnQoKSB7IHJldHVybiBtX2Z1bGxTY3JlZW5DbGllbnQ7IH0KICNlbmRpZgogCisj
aWYgRU5BQkxFKFZJREVPX1BSRVNFTlRBVElPTl9NT0RFKQorICAgIEluamVjdGVkQnVuZGxlUGFn
ZVZpZGVvRnVsbHNjcmVlbkNsaWVudCYgaW5qZWN0ZWRCdW5kbGVWaWRlb0Z1bGxzY3JlZW5DbGll
bnQoKSB7IHJldHVybiBtX3ZpZGVvRnVsbHNjcmVlbkNsaWVudDsgfQorI2VuZGlmCisKICAgICBi
b29sIGZpbmRTdHJpbmdGcm9tSW5qZWN0ZWRCdW5kbGUoY29uc3QgU3RyaW5nJiwgRmluZE9wdGlv
bnMpOwogICAgIHZvaWQgZmluZFN0cmluZ01hdGNoZXNGcm9tSW5qZWN0ZWRCdW5kbGUoY29uc3Qg
U3RyaW5nJiwgRmluZE9wdGlvbnMpOwogICAgIHZvaWQgcmVwbGFjZVN0cmluZ01hdGNoZXNGcm9t
SW5qZWN0ZWRCdW5kbGUoY29uc3QgVmVjdG9yPHVpbnQzMl90PiYgbWF0Y2hJbmRpY2VzLCBjb25z
dCBTdHJpbmcmIHJlcGxhY2VtZW50VGV4dCwgYm9vbCBzZWxlY3Rpb25Pbmx5KTsKQEAgLTE4NDAs
NiArMTg0OSwxMCBAQCBwcml2YXRlOgogICAgIEluamVjdGVkQnVuZGxlUGFnZUZ1bGxTY3JlZW5D
bGllbnQgbV9mdWxsU2NyZWVuQ2xpZW50OwogI2VuZGlmCiAKKyNpZiBFTkFCTEUoVklERU9fUFJF
U0VOVEFUSU9OX01PREUpCisgICAgSW5qZWN0ZWRCdW5kbGVQYWdlVmlkZW9GdWxsc2NyZWVuQ2xp
ZW50IG1fdmlkZW9GdWxsc2NyZWVuQ2xpZW50OworI2VuZGlmCisKICAgICBVbmlxdWVSZWY8Rmlu
ZENvbnRyb2xsZXI+IG1fZmluZENvbnRyb2xsZXI7CiAKICAgICBSZWZQdHI8V2ViSW5zcGVjdG9y
PiBtX2luc3BlY3RvcjsKQEAgLTE4NDcsOCArMTg2MCwxMSBAQCBwcml2YXRlOgogICAgIFJlZlB0
cjxSZW1vdGVXZWJJbnNwZWN0b3JVST4gbV9yZW1vdGVJbnNwZWN0b3JVSTsKICAgICBzdGQ6OnVu
aXF1ZV9wdHI8V2ViUGFnZUluc3BlY3RvclRhcmdldENvbnRyb2xsZXI+IG1faW5zcGVjdG9yVGFy
Z2V0Q29udHJvbGxlcjsKIAotI2lmIEVOQUJMRShWSURFT19QUkVTRU5UQVRJT05fTU9ERSkKKyNp
ZiBQTEFURk9STShJT1NfRkFNSUxZKSB8fCAoUExBVEZPUk0oTUFDKSAmJiBFTkFCTEUoVklERU9f
UFJFU0VOVEFUSU9OX01PREUpKQogICAgIFJlZlB0cjxQbGF5YmFja1Nlc3Npb25NYW5hZ2VyPiBt
X3BsYXliYWNrU2Vzc2lvbk1hbmFnZXI7CisjZW5kaWYKKworI2lmIEVOQUJMRShWSURFT19QUkVT
RU5UQVRJT05fTU9ERSkKICAgICBSZWZQdHI8VmlkZW9GdWxsc2NyZWVuTWFuYWdlcj4gbV92aWRl
b0Z1bGxzY3JlZW5NYW5hZ2VyOwogI2VuZGlmCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9jb2NvYS9WaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyLmggYi9Tb3VyY2UvV2ViS2l0
L1dlYlByb2Nlc3MvY29jb2EvVmlkZW9GdWxsc2NyZWVuTWFuYWdlci5oCmluZGV4IGYxMzZlY2I5
ZGQzZWFjZWZhZGQ5NzRiZGNkYmQ0MmNhZWZmNjI3Y2YuLmNjYzBhY2VhNmViZDliM2Q1Y2U2NGZl
YWRmNzFhNjMyMjI2N2NmYmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9j
b2NvYS9WaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyLmgKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL2NvY29hL1ZpZGVvRnVsbHNjcmVlbk1hbmFnZXIuaApAQCAtMTIyLDYgKzEyMiwxNSBAQCBw
dWJsaWM6CiAgICAgdm9pZCBleGl0VmlkZW9GdWxsc2NyZWVuRm9yVmlkZW9FbGVtZW50KFdlYkNv
cmU6OkhUTUxWaWRlb0VsZW1lbnQmKTsKICAgICB2b2lkIGV4aXRWaWRlb0Z1bGxzY3JlZW5Ub01v
ZGVXaXRob3V0QW5pbWF0aW9uKFdlYkNvcmU6OkhUTUxWaWRlb0VsZW1lbnQmLCBXZWJDb3JlOjpI
VE1MTWVkaWFFbGVtZW50RW51bXM6OlZpZGVvRnVsbHNjcmVlbk1vZGUpOwogCisgICAgLy8gTWVz
c2FnZXMgZnJvbSBWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyUHJveHkKKyAgICB2b2lkIHJlcXVlc3RG
dWxsc2NyZWVuTW9kZSh1aW50NjRfdCBjb250ZXh0SWQsIFdlYkNvcmU6OkhUTUxNZWRpYUVsZW1l
bnRFbnVtczo6VmlkZW9GdWxsc2NyZWVuTW9kZSwgYm9vbCBmaW5pc2hlZFdpdGhNZWRpYSk7Cisg
ICAgdm9pZCByZXF1ZXN0VmlkZW9Db250ZW50TGF5ZXIodWludDY0X3QgY29udGV4dElkKTsKKyAg
ICB2b2lkIHJldHVyblZpZGVvQ29udGVudExheWVyKHVpbnQ2NF90IGNvbnRleHRJZCk7CisgICAg
dm9pZCBkaWRTZXR1cEZ1bGxzY3JlZW4odWludDY0X3QgY29udGV4dElkKTsKKyAgICB2b2lkIGRp
ZEVudGVyRnVsbHNjcmVlbih1aW50NjRfdCBjb250ZXh0SWQpOworICAgIHZvaWQgZGlkRXhpdEZ1
bGxzY3JlZW4odWludDY0X3QgY29udGV4dElkKTsKKyAgICB2b2lkIGRpZENsZWFudXBGdWxsc2Ny
ZWVuKHVpbnQ2NF90IGNvbnRleHRJZCk7CisKIHByb3RlY3RlZDoKICAgICBmcmllbmQgY2xhc3Mg
VmlkZW9GdWxsc2NyZWVuSW50ZXJmYWNlQ29udGV4dDsKIApAQCAtMTQxLDE1ICsxNTAsOSBAQCBw
cm90ZWN0ZWQ6CiAgICAgdm9pZCB2aWRlb0RpbWVuc2lvbnNDaGFuZ2VkKHVpbnQ2NF90IGNvbnRl
eHRJZCwgY29uc3QgV2ViQ29yZTo6RmxvYXRTaXplJik7CiAKICAgICAvLyBNZXNzYWdlcyBmcm9t
IFZpZGVvRnVsbHNjcmVlbk1hbmFnZXJQcm94eQotICAgIHZvaWQgcmVxdWVzdEZ1bGxzY3JlZW5N
b2RlKHVpbnQ2NF90IGNvbnRleHRJZCwgV2ViQ29yZTo6SFRNTE1lZGlhRWxlbWVudEVudW1zOjpW
aWRlb0Z1bGxzY3JlZW5Nb2RlLCBib29sIGZpbmlzaGVkV2l0aE1lZGlhKTsKICAgICB2b2lkIHJl
cXVlc3RVcGRhdGVJbmxpbmVSZWN0KHVpbnQ2NF90IGNvbnRleHRJZCk7Ci0gICAgdm9pZCByZXF1
ZXN0VmlkZW9Db250ZW50TGF5ZXIodWludDY0X3QgY29udGV4dElkKTsKLSAgICB2b2lkIHJldHVy
blZpZGVvQ29udGVudExheWVyKHVpbnQ2NF90IGNvbnRleHRJZCk7Ci0gICAgdm9pZCBkaWRTZXR1
cEZ1bGxzY3JlZW4odWludDY0X3QgY29udGV4dElkKTsKICAgICB2b2lkIHdpbGxFeGl0RnVsbHNj
cmVlbih1aW50NjRfdCBjb250ZXh0SWQpOwotICAgIHZvaWQgZGlkRXhpdEZ1bGxzY3JlZW4odWlu
dDY0X3QgY29udGV4dElkKTsKLSAgICB2b2lkIGRpZEVudGVyRnVsbHNjcmVlbih1aW50NjRfdCBj
b250ZXh0SWQpOwotICAgIHZvaWQgZGlkQ2xlYW51cEZ1bGxzY3JlZW4odWludDY0X3QgY29udGV4
dElkKTsKKwogICAgIHZvaWQgc2V0VmlkZW9MYXllckZyYW1lRmVuY2VkKHVpbnQ2NF90IGNvbnRl
eHRJZCwgV2ViQ29yZTo6RmxvYXRSZWN0IGJvdW5kcywgSVBDOjpBdHRhY2htZW50IGZlbmNlUG9y
dCk7CiAgICAgdm9pZCBzZXRWaWRlb0xheWVyR3Jhdml0eUVudW0odWludDY0X3QgY29udGV4dElk
LCB1bnNpZ25lZCBncmF2aXR5KTsKICAgICB2b2lkIGZ1bGxzY3JlZW5Nb2RlQ2hhbmdlZCh1aW50
NjRfdCBjb250ZXh0SWQsIFdlYkNvcmU6OkhUTUxNZWRpYUVsZW1lbnRFbnVtczo6VmlkZW9GdWxs
c2NyZWVuTW9kZSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvY29jb2Ev
VmlkZW9GdWxsc2NyZWVuTWFuYWdlci5tbSBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9jb2Nv
YS9WaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyLm1tCmluZGV4IGZmNGEyZDNlOTE2YjUwMDJmNjdmMzlm
ZjdlOWUxMTg1OWIzNjdlNDUuLmJmNmQ4ZDdiZDdkOWJiNTc0MGUzNzBiZDMxM2I0MjU3NDg2MmEx
ZjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9jb2NvYS9WaWRlb0Z1bGxz
Y3JlZW5NYW5hZ2VyLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9jb2NvYS9WaWRl
b0Z1bGxzY3JlZW5NYW5hZ2VyLm1tCkBAIC0yODUsNyArMjg1LDcgQEAgdm9pZCBWaWRlb0Z1bGxz
Y3JlZW5NYW5hZ2VyOjplbnRlclZpZGVvRnVsbHNjcmVlbkZvclZpZGVvRWxlbWVudChIVE1MVmlk
ZW9FbGVtZW4KICAgICAgICAgaW50ZXJmYWNlLT5sYXllckhvc3RpbmdDb250ZXh0KCktPnNldFJv
b3RMYXllcih2aWRlb0xheWVyLmdldCgpKTsKICAgICB9CiAKLSAgICBtX3BhZ2UtPnNlbmQoTWVz
c2FnZXM6OlZpZGVvRnVsbHNjcmVlbk1hbmFnZXJQcm94eTo6U2V0dXBGdWxsc2NyZWVuV2l0aElE
KGNvbnRleHRJZCwgaW50ZXJmYWNlLT5sYXllckhvc3RpbmdDb250ZXh0KCktPmNvbnRleHRJRCgp
LCB2aWRlb1JlY3QsIG1fcGFnZS0+ZGV2aWNlU2NhbGVGYWN0b3IoKSwgaW50ZXJmYWNlLT5mdWxs
c2NyZWVuTW9kZSgpLCBhbGxvd3NQaWN0dXJlSW5QaWN0dXJlLCBzdGFuZGJ5KSk7CisgICAgbV9w
YWdlLT5pbmplY3RlZEJ1bmRsZVZpZGVvRnVsbHNjcmVlbkNsaWVudCgpLnNldHVwRnVsbHNjcmVl
bldpdGhJRChtX3BhZ2UsIGNvbnRleHRJZCwgaW50ZXJmYWNlLT5sYXllckhvc3RpbmdDb250ZXh0
KCktPmNvbnRleHRJRCgpLCB2aWRlb1JlY3QsIG1fcGFnZS0+ZGV2aWNlU2NhbGVGYWN0b3IoKSwg
aW50ZXJmYWNlLT5mdWxsc2NyZWVuTW9kZSgpLCBhbGxvd3NQaWN0dXJlSW5QaWN0dXJlLCBzdGFu
ZGJ5KTsKIH0KIAogdm9pZCBWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyOjpleGl0VmlkZW9GdWxsc2Ny
ZWVuRm9yVmlkZW9FbGVtZW50KFdlYkNvcmU6OkhUTUxWaWRlb0VsZW1lbnQmIHZpZGVvRWxlbWVu
dCkKQEAgLTMwMSw3ICszMDEsNyBAQCB2b2lkIFZpZGVvRnVsbHNjcmVlbk1hbmFnZXI6OmV4aXRW
aWRlb0Z1bGxzY3JlZW5Gb3JWaWRlb0VsZW1lbnQoV2ViQ29yZTo6SFRNTFZpZAogICAgICAgICBy
ZXR1cm47CiAKICAgICBpbnRlcmZhY2Uuc2V0QW5pbWF0aW9uU3RhdGUoVmlkZW9GdWxsc2NyZWVu
SW50ZXJmYWNlQ29udGV4dDo6QW5pbWF0aW9uVHlwZTo6RnJvbUZ1bGxzY3JlZW4pOwotICAgIG1f
cGFnZS0+c2VuZChNZXNzYWdlczo6VmlkZW9GdWxsc2NyZWVuTWFuYWdlclByb3h5OjpFeGl0RnVs
bHNjcmVlbihjb250ZXh0SWQsIGlubGluZVZpZGVvRnJhbWUodmlkZW9FbGVtZW50KSkpOworICAg
IG1fcGFnZS0+aW5qZWN0ZWRCdW5kbGVWaWRlb0Z1bGxzY3JlZW5DbGllbnQoKS5leGl0RnVsbHNj
cmVlbihtX3BhZ2UsIGNvbnRleHRJZCwgaW5saW5lVmlkZW9GcmFtZSh2aWRlb0VsZW1lbnQpKTsK
IH0KIAogdm9pZCBWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyOjpleGl0VmlkZW9GdWxsc2NyZWVuVG9N
b2RlV2l0aG91dEFuaW1hdGlvbihXZWJDb3JlOjpIVE1MVmlkZW9FbGVtZW50JiB2aWRlb0VsZW1l
bnQsIFdlYkNvcmU6OkhUTUxNZWRpYUVsZW1lbnRFbnVtczo6VmlkZW9GdWxsc2NyZWVuTW9kZSB0
YXJnZXRNb2RlKQpAQCAtMzE3LDcgKzMxNyw3IEBAIHZvaWQgVmlkZW9GdWxsc2NyZWVuTWFuYWdl
cjo6ZXhpdFZpZGVvRnVsbHNjcmVlblRvTW9kZVdpdGhvdXRBbmltYXRpb24oV2ViQ29yZTo6CiAK
ICAgICBpbnRlcmZhY2Uuc2V0VGFyZ2V0SXNGdWxsc2NyZWVuKGZhbHNlKTsKIAotICAgIG1fcGFn
ZS0+c2VuZChNZXNzYWdlczo6VmlkZW9GdWxsc2NyZWVuTWFuYWdlclByb3h5OjpFeGl0RnVsbHNj
cmVlbldpdGhvdXRBbmltYXRpb25Ub01vZGUoY29udGV4dElkLCB0YXJnZXRNb2RlKSk7CisgICAg
bV9wYWdlLT5pbmplY3RlZEJ1bmRsZVZpZGVvRnVsbHNjcmVlbkNsaWVudCgpLmV4aXRGdWxsc2Ny
ZWVuV2l0aG91dEFuaW1hdGlvblRvTW9kZShtX3BhZ2UsIGNvbnRleHRJZCwgdGFyZ2V0TW9kZSk7
CiAjZWxzZQogICAgIFVOVVNFRF9QQVJBTSh2aWRlb0VsZW1lbnQpOwogICAgIFVOVVNFRF9QQVJB
TSh0YXJnZXRNb2RlKTsKQEAgLTMyOSwxMyArMzI5LDEzIEBAIHZvaWQgVmlkZW9GdWxsc2NyZWVu
TWFuYWdlcjo6ZXhpdFZpZGVvRnVsbHNjcmVlblRvTW9kZVdpdGhvdXRBbmltYXRpb24oV2ViQ29y
ZTo6CiB2b2lkIFZpZGVvRnVsbHNjcmVlbk1hbmFnZXI6Omhhc1ZpZGVvQ2hhbmdlZCh1aW50NjRf
dCBjb250ZXh0SWQsIGJvb2wgaGFzVmlkZW8pCiB7CiAgICAgaWYgKG1fcGFnZSkKLSAgICAgICAg
bV9wYWdlLT5zZW5kKE1lc3NhZ2VzOjpWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyUHJveHk6OlNldEhh
c1ZpZGVvKGNvbnRleHRJZCwgaGFzVmlkZW8pKTsKKyAgICAgICAgbV9wYWdlLT5pbmplY3RlZEJ1
bmRsZVZpZGVvRnVsbHNjcmVlbkNsaWVudCgpLnNldEhhc1ZpZGVvKG1fcGFnZSwgY29udGV4dElk
LCBoYXNWaWRlbyk7CiB9CiAKIHZvaWQgVmlkZW9GdWxsc2NyZWVuTWFuYWdlcjo6dmlkZW9EaW1l
bnNpb25zQ2hhbmdlZCh1aW50NjRfdCBjb250ZXh0SWQsIGNvbnN0IEZsb2F0U2l6ZSYgdmlkZW9E
aW1lbnNpb25zKQogewogICAgIGlmIChtX3BhZ2UpCi0gICAgICAgIG1fcGFnZS0+c2VuZChNZXNz
YWdlczo6VmlkZW9GdWxsc2NyZWVuTWFuYWdlclByb3h5OjpTZXRWaWRlb0RpbWVuc2lvbnMoY29u
dGV4dElkLCB2aWRlb0RpbWVuc2lvbnMpKTsKKyAgICAgICAgbV9wYWdlLT5pbmplY3RlZEJ1bmRs
ZVZpZGVvRnVsbHNjcmVlbkNsaWVudCgpLnNldFZpZGVvRGltZW5zaW9ucyhtX3BhZ2UsIGNvbnRl
eHRJZCwgdmlkZW9EaW1lbnNpb25zKTsKIH0KIAogI3ByYWdtYSBtYXJrIE1lc3NhZ2VzIGZyb20g
VmlkZW9GdWxsc2NyZWVuTWFuYWdlclByb3h5OgpAQCAtMzU3LDcgKzM1Nyw3IEBAIHZvaWQgVmlk
ZW9GdWxsc2NyZWVuTWFuYWdlcjo6cmVxdWVzdFVwZGF0ZUlubGluZVJlY3QodWludDY0X3QgY29u
dGV4dElkKQogCiAgICAgYXV0byYgbW9kZWwgPSBlbnN1cmVNb2RlbChjb250ZXh0SWQpOwogICAg
IEludFJlY3QgaW5saW5lUmVjdCA9IGlubGluZVZpZGVvRnJhbWUoKm1vZGVsLnZpZGVvRWxlbWVu
dCgpKTsKLSAgICBtX3BhZ2UtPnNlbmQoTWVzc2FnZXM6OlZpZGVvRnVsbHNjcmVlbk1hbmFnZXJQ
cm94eTo6U2V0SW5saW5lUmVjdChjb250ZXh0SWQsIGlubGluZVJlY3QsIGlubGluZVJlY3QgIT0g
SW50UmVjdCgwLCAwLCAwLCAwKSkpOworICAgIG1fcGFnZS0+aW5qZWN0ZWRCdW5kbGVWaWRlb0Z1
bGxzY3JlZW5DbGllbnQoKS5zZXRJbmxpbmVSZWN0KG1fcGFnZSwgY29udGV4dElkLCBpbmxpbmVS
ZWN0LCBpbmxpbmVSZWN0ICE9IEludFJlY3QoMCwgMCwgMCwgMCkpOwogfQogCiB2b2lkIFZpZGVv
RnVsbHNjcmVlbk1hbmFnZXI6OnJlcXVlc3RWaWRlb0NvbnRlbnRMYXllcih1aW50NjRfdCBjb250
ZXh0SWQpCkBAIC0zNjgsOCArMzY4LDggQEAgdm9pZCBWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyOjpy
ZXF1ZXN0VmlkZW9Db250ZW50TGF5ZXIodWludDY0X3QgY29udGV4dElkKQogCiAgICAgbW9kZWwt
PnNldFZpZGVvRnVsbHNjcmVlbkxheWVyKHZpZGVvTGF5ZXIsIFtwcm90ZWN0ZWRUaGlzID0gbWFr
ZVJlZlB0cih0aGlzKSwgdGhpcywgY29udGV4dElkXSAoKSBtdXRhYmxlIHsKICAgICAgICAgZGlz
cGF0Y2hfYXN5bmMoZGlzcGF0Y2hfZ2V0X21haW5fcXVldWUoKSwgW3Byb3RlY3RlZFRoaXMgPSBX
VEZNb3ZlKHByb3RlY3RlZFRoaXMpLCB0aGlzLCBjb250ZXh0SWRdIHsKLSAgICAgICAgICAgIGlm
IChwcm90ZWN0ZWRUaGlzLT5tX3BhZ2UpCi0gICAgICAgICAgICAgICAgbV9wYWdlLT5zZW5kKE1l
c3NhZ2VzOjpWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyUHJveHk6OlNldEhhc1ZpZGVvQ29udGVudExh
eWVyKGNvbnRleHRJZCwgdHJ1ZSkpOworICAgICAgICAgICAgaWYgKG1fcGFnZSkKKyAgICAgICAg
ICAgICAgICBtX3BhZ2UtPmluamVjdGVkQnVuZGxlVmlkZW9GdWxsc2NyZWVuQ2xpZW50KCkuc2V0
SGFzVmlkZW9Db250ZW50TGF5ZXIobV9wYWdlLCBjb250ZXh0SWQsIHRydWUpOwogICAgICAgICB9
KTsKICAgICB9KTsKIH0KQEAgLTM4NCw4ICszODQsOCBAQCB2b2lkIFZpZGVvRnVsbHNjcmVlbk1h
bmFnZXI6OnJldHVyblZpZGVvQ29udGVudExheWVyKHVpbnQ2NF90IGNvbnRleHRJZCkKICAgICAg
ICAgZGlzcGF0Y2hfYXN5bmMoZGlzcGF0Y2hfZ2V0X21haW5fcXVldWUoKSwgW3Byb3RlY3RlZFRo
aXMgPSBXVEZNb3ZlKHByb3RlY3RlZFRoaXMpLCB0aGlzLCBjb250ZXh0SWQsIG1vZGVsXSAoKSBt
dXRhYmxlIHsKICAgICAgICAgICAgIG1vZGVsLT5zZXRWaWRlb0Z1bGxzY3JlZW5MYXllcihuaWws
IFtwcm90ZWN0ZWRUaGlzID0gV1RGTW92ZShwcm90ZWN0ZWRUaGlzKSwgdGhpcywgY29udGV4dElk
XSAoKSBtdXRhYmxlIHsKICAgICAgICAgICAgICAgICBkaXNwYXRjaF9hc3luYyhkaXNwYXRjaF9n
ZXRfbWFpbl9xdWV1ZSgpLCBbcHJvdGVjdGVkVGhpcyA9IFdURk1vdmUocHJvdGVjdGVkVGhpcyks
IHRoaXMsIGNvbnRleHRJZF0gewotICAgICAgICAgICAgICAgICAgICBpZiAocHJvdGVjdGVkVGhp
cy0+bV9wYWdlKQotICAgICAgICAgICAgICAgICAgICAgICAgbV9wYWdlLT5zZW5kKE1lc3NhZ2Vz
OjpWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyUHJveHk6OlNldEhhc1ZpZGVvQ29udGVudExheWVyKGNv
bnRleHRJZCwgZmFsc2UpKTsKKyAgICAgICAgICAgICAgICAgICAgaWYgKG1fcGFnZSkKKyAgICAg
ICAgICAgICAgICAgICAgICAgIG1fcGFnZS0+aW5qZWN0ZWRCdW5kbGVWaWRlb0Z1bGxzY3JlZW5D
bGllbnQoKS5zZXRIYXNWaWRlb0NvbnRlbnRMYXllcihtX3BhZ2UsIGNvbnRleHRJZCwgZmFsc2Up
OwogICAgICAgICAgICAgICAgIH0pOwogICAgICAgICAgICAgfSk7CiAgICAgICAgIH0pOwpAQCAt
NDA5LDggKzQwOSw4IEBAIHZvaWQgVmlkZW9GdWxsc2NyZWVuTWFuYWdlcjo6ZGlkU2V0dXBGdWxs
c2NyZWVuKHVpbnQ2NF90IGNvbnRleHRJZCkKIAogICAgIG1vZGVsLT5zZXRWaWRlb0Z1bGxzY3Jl
ZW5MYXllcih2aWRlb0xheWVyLCBbcHJvdGVjdGVkVGhpcyA9IG1ha2VSZWZQdHIodGhpcyksIHRo
aXMsIGNvbnRleHRJZF0gKCkgbXV0YWJsZSB7CiAgICAgICAgIGRpc3BhdGNoX2FzeW5jKGRpc3Bh
dGNoX2dldF9tYWluX3F1ZXVlKCksIFtwcm90ZWN0ZWRUaGlzID0gV1RGTW92ZShwcm90ZWN0ZWRU
aGlzKSwgdGhpcywgY29udGV4dElkXSB7Ci0gICAgICAgICAgICBpZiAocHJvdGVjdGVkVGhpcy0+
bV9wYWdlKQotICAgICAgICAgICAgICAgIG1fcGFnZS0+c2VuZChNZXNzYWdlczo6VmlkZW9GdWxs
c2NyZWVuTWFuYWdlclByb3h5OjpFbnRlckZ1bGxzY3JlZW4oY29udGV4dElkKSk7CisgICAgICAg
ICAgICBpZiAobV9wYWdlKQorICAgICAgICAgICAgICAgIG1fcGFnZS0+aW5qZWN0ZWRCdW5kbGVW
aWRlb0Z1bGxzY3JlZW5DbGllbnQoKS5lbnRlckZ1bGxzY3JlZW4obV9wYWdlLCBjb250ZXh0SWQp
OwogICAgICAgICB9KTsKICAgICB9KTsKICNlbmRpZgpAQCAtNDI2LDEwICs0MjYsMTAgQEAgdm9p
ZCBWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyOjp3aWxsRXhpdEZ1bGxzY3JlZW4odWludDY0X3QgY29u
dGV4dElkKQogICAgIGlmICghdmlkZW9FbGVtZW50KQogICAgICAgICByZXR1cm47CiAKLSAgICBk
aXNwYXRjaF9hc3luYyhkaXNwYXRjaF9nZXRfbWFpbl9xdWV1ZSgpLCBbcHJvdGVjdGVkVGhpcyA9
IG1ha2VSZWZQdHIodGhpcyksIHZpZGVvRWxlbWVudCA9IFdURk1vdmUodmlkZW9FbGVtZW50KSwg
Y29udGV4dElkXSB7CisgICAgZGlzcGF0Y2hfYXN5bmMoZGlzcGF0Y2hfZ2V0X21haW5fcXVldWUo
KSwgW3Byb3RlY3RlZFRoaXMgPSBtYWtlUmVmUHRyKHRoaXMpLCB0aGlzLCB2aWRlb0VsZW1lbnQg
PSBXVEZNb3ZlKHZpZGVvRWxlbWVudCksIGNvbnRleHRJZF0gewogICAgICAgICB2aWRlb0VsZW1l
bnQtPndpbGxFeGl0RnVsbHNjcmVlbigpOwotICAgICAgICBpZiAocHJvdGVjdGVkVGhpcy0+bV9w
YWdlKQotICAgICAgICAgICAgcHJvdGVjdGVkVGhpcy0+bV9wYWdlLT5zZW5kKE1lc3NhZ2VzOjpW
aWRlb0Z1bGxzY3JlZW5NYW5hZ2VyUHJveHk6OlByZXBhcmVkVG9FeGl0RnVsbHNjcmVlbihjb250
ZXh0SWQpKTsKKyAgICAgICAgaWYgKG1fcGFnZSkKKyAgICAgICAgICAgIG1fcGFnZS0+aW5qZWN0
ZWRCdW5kbGVWaWRlb0Z1bGxzY3JlZW5DbGllbnQoKS5wcmVwYXJlZFRvRXhpdEZ1bGxzY3JlZW4o
bV9wYWdlLCBjb250ZXh0SWQpOwogICAgIH0pOwogfQogCkBAIC00NTQsOSArNDU0LDkgQEAgdm9p
ZCBWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyOjpkaWRFbnRlckZ1bGxzY3JlZW4odWludDY0X3QgY29u
dGV4dElkKQogICAgICAgICByZXR1cm47CiAKICAgICAvLyBleGl0IGZ1bGxzY3JlZW4gbm93IGlm
IGl0IHdhcyBwcmV2aW91c2x5IHJlcXVlc3RlZCBkdXJpbmcgYW4gYW5pbWF0aW9uLgotICAgIGRp
c3BhdGNoX2FzeW5jKGRpc3BhdGNoX2dldF9tYWluX3F1ZXVlKCksIFtwcm90ZWN0ZWRUaGlzID0g
bWFrZVJlZlB0cih0aGlzKSwgdmlkZW9FbGVtZW50XSB7Ci0gICAgICAgIGlmIChwcm90ZWN0ZWRU
aGlzLT5tX3BhZ2UpCi0gICAgICAgICAgICBwcm90ZWN0ZWRUaGlzLT5leGl0VmlkZW9GdWxsc2Ny
ZWVuRm9yVmlkZW9FbGVtZW50KCp2aWRlb0VsZW1lbnQpOworICAgIGRpc3BhdGNoX2FzeW5jKGRp
c3BhdGNoX2dldF9tYWluX3F1ZXVlKCksIFtwcm90ZWN0ZWRUaGlzID0gbWFrZVJlZlB0cih0aGlz
KSwgdGhpcywgdmlkZW9FbGVtZW50XSB7CisgICAgICAgIGlmIChtX3BhZ2UpCisgICAgICAgICAg
ICBleGl0VmlkZW9GdWxsc2NyZWVuRm9yVmlkZW9FbGVtZW50KCp2aWRlb0VsZW1lbnQpOwogICAg
IH0pOwogfQogCkBAIC00NjksOSArNDY5LDkgQEAgdm9pZCBWaWRlb0Z1bGxzY3JlZW5NYW5hZ2Vy
OjpkaWRFeGl0RnVsbHNjcmVlbih1aW50NjRfdCBjb250ZXh0SWQpCiAgICAgc3RkOjp0aWUobW9k
ZWwsIGludGVyZmFjZSkgPSBlbnN1cmVNb2RlbEFuZEludGVyZmFjZShjb250ZXh0SWQpOwogCiAj
aWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKLSAgICBkaXNwYXRjaF9hc3luYyhkaXNwYXRjaF9nZXRf
bWFpbl9xdWV1ZSgpLCBbcHJvdGVjdGVkVGhpcyA9IG1ha2VSZWZQdHIodGhpcyksIGNvbnRleHRJ
ZCwgaW50ZXJmYWNlXSB7Ci0gICAgICAgIGlmIChwcm90ZWN0ZWRUaGlzLT5tX3BhZ2UpCi0gICAg
ICAgICAgICBwcm90ZWN0ZWRUaGlzLT5tX3BhZ2UtPnNlbmQoTWVzc2FnZXM6OlZpZGVvRnVsbHNj
cmVlbk1hbmFnZXJQcm94eTo6Q2xlYW51cEZ1bGxzY3JlZW4oY29udGV4dElkKSk7CisgICAgZGlz
cGF0Y2hfYXN5bmMoZGlzcGF0Y2hfZ2V0X21haW5fcXVldWUoKSwgW3Byb3RlY3RlZFRoaXMgPSBt
YWtlUmVmUHRyKHRoaXMpLCB0aGlzLCBjb250ZXh0SWQsIGludGVyZmFjZV0geworICAgICAgICBp
ZiAobV9wYWdlKQorICAgICAgICAgICAgbV9wYWdlLT5pbmplY3RlZEJ1bmRsZVZpZGVvRnVsbHNj
cmVlbkNsaWVudCgpLmNlYW51cEZ1bGxzY3JlZW4oY29udGV4dElkKTsKICAgICB9KTsKICNlbHNl
CiAgICAgbW9kZWwtPndhaXRGb3JQcmVwYXJlZEZvcklubGluZVRoZW4oW3Byb3RlY3RlZFRoaXMg
PSBtYWtlUmVmUHRyKHRoaXMpLCBjb250ZXh0SWQsIGludGVyZmFjZSwgbW9kZWxdICgpIG11dGFi
bGUgewpAQCAtNDgzLDE0ICs0ODMsMTQgQEAgdm9pZCBWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyOjpk
aWRFeGl0RnVsbHNjcmVlbih1aW50NjRfdCBjb250ZXh0SWQpCiAgICAgICAgICAgICAgICAgICAg
ICAgICBpbnRlcmZhY2UtPnNldExheWVySG9zdGluZ0NvbnRleHQobnVsbHB0cik7CiAgICAgICAg
ICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgaWYgKHByb3RlY3RlZFRoaXMtPm1f
cGFnZSkKLSAgICAgICAgICAgICAgICAgICAgICAgIHByb3RlY3RlZFRoaXMtPm1fcGFnZS0+c2Vu
ZChNZXNzYWdlczo6VmlkZW9GdWxsc2NyZWVuTWFuYWdlclByb3h5OjpDbGVhbnVwRnVsbHNjcmVl
bihjb250ZXh0SWQpKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIHByb3RlY3RlZFRoaXMtPm1f
cGFnZS0+aW5qZWN0ZWRCdW5kbGVWaWRlb0Z1bGxzY3JlZW5DbGllbnQoKS5jbGVhbnVwRnVsbHNj
cmVlbihwcm90ZWN0ZWRUaGlzLT5tX3BhZ2UsIGNvbnRleHRJZCk7CiAgICAgICAgICAgICAgICAg
fSk7CiAgICAgICAgICAgICB9KTsKICAgICAgICAgfSk7CiAgICAgfSk7CiAjZW5kaWYKIH0KLSAg
ICAKKwogdm9pZCBWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyOjpkaWRDbGVhbnVwRnVsbHNjcmVlbih1
aW50NjRfdCBjb250ZXh0SWQpCiB7CiAgICAgTE9HKEZ1bGxzY3JlZW4sICJWaWRlb0Z1bGxzY3Jl
ZW5NYW5hZ2VyOjpkaWRDbGVhbnVwRnVsbHNjcmVlbiglcCwgJXgpIiwgdGhpcywgY29udGV4dElk
KTsKQEAgLTUxOCw5ICs1MTgsOSBAQCB2b2lkIFZpZGVvRnVsbHNjcmVlbk1hbmFnZXI6OmRpZENs
ZWFudXBGdWxsc2NyZWVuKHVpbnQ2NF90IGNvbnRleHRJZCkKICAgICBpZiAoIXZpZGVvRWxlbWVu
dCB8fCAhdGFyZ2V0SXNGdWxsc2NyZWVuKQogICAgICAgICByZXR1cm47CiAKLSAgICBkaXNwYXRj
aF9hc3luYyhkaXNwYXRjaF9nZXRfbWFpbl9xdWV1ZSgpLCBbcHJvdGVjdGVkVGhpcyA9IG1ha2VS
ZWZQdHIodGhpcyksIHZpZGVvRWxlbWVudCwgbW9kZSwgc3RhbmRieV0gewotICAgICAgICBpZiAo
cHJvdGVjdGVkVGhpcy0+bV9wYWdlKQotICAgICAgICAgICAgcHJvdGVjdGVkVGhpcy0+ZW50ZXJW
aWRlb0Z1bGxzY3JlZW5Gb3JWaWRlb0VsZW1lbnQoKnZpZGVvRWxlbWVudCwgbW9kZSwgc3RhbmRi
eSk7CisgICAgZGlzcGF0Y2hfYXN5bmMoZGlzcGF0Y2hfZ2V0X21haW5fcXVldWUoKSwgW3Byb3Rl
Y3RlZFRoaXMgPSBtYWtlUmVmUHRyKHRoaXMpLCB0aGlzLCB2aWRlb0VsZW1lbnQsIG1vZGUsIHN0
YW5kYnldIHsKKyAgICAgICAgaWYgKG1fcGFnZSkKKyAgICAgICAgICAgIGVudGVyVmlkZW9GdWxs
c2NyZWVuRm9yVmlkZW9FbGVtZW50KCp2aWRlb0VsZW1lbnQsIG1vZGUsIHN0YW5kYnkpOwogICAg
IH0pOwogfQogICAgIApAQCAtNTM4LDcgKzUzOCw3IEBAIHZvaWQgVmlkZW9GdWxsc2NyZWVuTWFu
YWdlcjo6ZnVsbHNjcmVlbk1heVJldHVyblRvSW5saW5lKHVpbnQ2NF90IGNvbnRleHRJZCwgYm9v
CiAKICAgICBpZiAoIWlzUGFnZVZpc2libGUpCiAgICAgICAgIG1vZGVsLnZpZGVvRWxlbWVudCgp
LT5zY3JvbGxJbnRvVmlld0lmTm90VmlzaWJsZShmYWxzZSk7Ci0gICAgbV9wYWdlLT5zZW5kKE1l
c3NhZ2VzOjpWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyUHJveHk6OlByZXBhcmVkVG9SZXR1cm5Ub0lu
bGluZShjb250ZXh0SWQsIHRydWUsIGlubGluZVZpZGVvRnJhbWUoKm1vZGVsLnZpZGVvRWxlbWVu
dCgpKSkpOworICAgIG1fcGFnZS0+aW5qZWN0ZWRCdW5kbGVWaWRlb0Z1bGxzY3JlZW5DbGllbnQo
KS5wcmVwYXJlZFRvUmV0dXJuVG9JbmxpbmUobV9wYWdlLCBjb250ZXh0SWQsIHRydWUsIGlubGlu
ZVZpZGVvRnJhbWUoKm1vZGVsLnZpZGVvRWxlbWVudCgpKSk7CiB9CiAKIHZvaWQgVmlkZW9GdWxs
c2NyZWVuTWFuYWdlcjo6cmVxdWVzdFJvdXRlU2hhcmluZ1BvbGljeUFuZENvbnRleHRVSUQodWlu
dDY0X3QgY29udGV4dElkLCBNZXNzYWdlczo6VmlkZW9GdWxsc2NyZWVuTWFuYWdlcjo6UmVxdWVz
dFJvdXRlU2hhcmluZ1BvbGljeUFuZENvbnRleHRVSUQ6OkFzeW5jUmVwbHkmJiByZXBseSkKZGlm
ZiAtLWdpdCBhL1Rvb2xzL0NoYW5nZUxvZyBiL1Rvb2xzL0NoYW5nZUxvZwppbmRleCAzYjUxOGM1
YzIxYzUwYTYzNGRjZGIwMzkzYTI4NDM5YzRkZmVlZjRiLi40NjRlMDgzNGYxNDAyODkyNjIwYWRk
MzYxZDY0YWIwMjE5NWJjMzA1IDEwMDY0NAotLS0gYS9Ub29scy9DaGFuZ2VMb2cKKysrIGIvVG9v
bHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzEgQEAKKzIwMjAtMDQtMTcgIFBlbmcgTGl1ICA8cGVu
Zy5saXU2QGFwcGxlLmNvbT4KKworICAgICAgICBVcGRhdGUgV2ViS2l0VGVzdFJ1bm5lciB0byBz
dXBwb3J0IHJ1bm5pbmcgbXVsdGlwbGUgdmlkZW8gZnVsbHNjcmVlbiBhbmQgUGljdHVyZS1pbi1Q
aWN0dXJlIHRlc3RzIHNpbXVsdGFuZW91c2x5CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0yMDM3MjMKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICBBZGQgYW4gaW5qZWN0ZWQgYnVuZGxlIGNsaWVudCBvZiB2aWRl
byBmdWxsc2NyZWVuIGluIFdlYktpdFRlc3RSdW5uZXIgdG8gbW9jayB0aGUgYmVoYXZpb3IKKyAg
ICAgICAgb2YgdGhlIHZpZGVvIGZ1bGxzY3JlZW4gYW5kIHBpY3R1cmUtaW4tcGljdHVyZSBpbXBs
ZW1lbnRhdGlvbiBpbiB0aGUgVUkgcHJvY2Vzcy4gICAgICAgIAorICAgICAgICBXaXRoIHRoaXMg
cGF0Y2gsIHdlIGNhbiB0ZXN0IHRoZSB2aWRlbyBmdWxsc2NyZWVuIGFuZCBwaWN0dXJlLWluLXBp
Y3R1cmUgaW1wbGVtZW50YXRpb24gaW4KKyAgICAgICAgdGhlIFdlYiBwcm9jZXNzIHdpdGhvdXQg
dGhlIGludm9sdmVtZW50IG9mIHRoZSBVSSBwcm9jZXNzIHNpZGUgaW1wbGVtZW50YXRpb24uIFNv
IHRoYXQKKyAgICAgICAgd2UgY2FuIHJ1biBtdWx0aXBsZSB2aWRlbyBmdWxsc2NyZWVuIGFuZCBw
aWN0dXJlLWluLXBpY3R1cmUgdGVzdHMgaW4gcGFyYWxsZWwuCisKKyAgICAgICAgKiBXZWJLaXRU
ZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0luamVjdGVkQnVuZGxlUGFnZS5jcHA6CisgICAgICAg
IChXVFI6OkluamVjdGVkQnVuZGxlUGFnZTo6SW5qZWN0ZWRCdW5kbGVQYWdlKToKKyAgICAgICAg
KFdUUjo6SW5qZWN0ZWRCdW5kbGVQYWdlOjpzZXRIYXNWaWRlbyk6CisgICAgICAgIChXVFI6Oklu
amVjdGVkQnVuZGxlUGFnZTo6c2V0VmlkZW9EaW1lbnNpb25zKToKKyAgICAgICAgKFdUUjo6SW5q
ZWN0ZWRCdW5kbGVQYWdlOjpzZXR1cEZ1bGxzY3JlZW5XaXRoSUQpOgorICAgICAgICAoV1RSOjpJ
bmplY3RlZEJ1bmRsZVBhZ2U6OmVudGVyRnVsbHNjcmVlbik6CisgICAgICAgIChXVFI6OkluamVj
dGVkQnVuZGxlUGFnZTo6ZXhpdEZ1bGxzY3JlZW4pOgorICAgICAgICAoV1RSOjpJbmplY3RlZEJ1
bmRsZVBhZ2U6OnNldElubGluZVJlY3QpOgorICAgICAgICAoV1RSOjpJbmplY3RlZEJ1bmRsZVBh
Z2U6OnNldEhhc1ZpZGVvQ29udGVudExheWVyKToKKyAgICAgICAgKFdUUjo6SW5qZWN0ZWRCdW5k
bGVQYWdlOjpjbGVhbnVwRnVsbHNjcmVlbik6CisgICAgICAgIChXVFI6OkluamVjdGVkQnVuZGxl
UGFnZTo6cHJlcGFyZWRUb1JldHVyblRvSW5saW5lKToKKyAgICAgICAgKFdUUjo6SW5qZWN0ZWRC
dW5kbGVQYWdlOjpwcmVwYXJlZFRvRXhpdEZ1bGxzY3JlZW4pOgorICAgICAgICAoV1RSOjpJbmpl
Y3RlZEJ1bmRsZVBhZ2U6OmV4aXRGdWxsc2NyZWVuV2l0aG91dEFuaW1hdGlvblRvTW9kZSk6Cisg
ICAgICAgICogV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZVBh
Z2UuaDoKKwogMjAyMC0wNC0xNyAgQnJlbnQgRnVsZ2hhbSAgPGJmdWxnaGFtQGFwcGxlLmNvbT4K
IAogICAgICAgICBVbnJldmlld2VkIGJ1aWxkIGZpeCBhZnRlciByMjYwMjY5LgpkaWZmIC0tZ2l0
IGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZVBh
Z2UuY3BwIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1
bmRsZVBhZ2UuY3BwCmluZGV4IDQwYzQ1YTc5MTU1MDY5MWVmZmZhNmE0ZDFjMzdjNDkzMWIwNGVk
ODIuLjdjYTQ4YTc4ZjY0ZWI4ZWZhNTNkNzBjYmQzMDIzOGE2Yjk0ZjY5NmMgMTAwNjQ0Ci0tLSBh
L1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvSW5qZWN0ZWRCdW5kbGVQYWdl
LmNwcAorKysgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0luamVjdGVk
QnVuZGxlUGFnZS5jcHAKQEAgLTM5MCw2ICszOTAsMjggQEAgSW5qZWN0ZWRCdW5kbGVQYWdlOjpJ
bmplY3RlZEJ1bmRsZVBhZ2UoV0tCdW5kbGVQYWdlUmVmIHBhZ2UpCiAgICAgfTsKICAgICBXS0J1
bmRsZVBhZ2VTZXRGdWxsU2NyZWVuQ2xpZW50KG1fcGFnZSwgJmZ1bGxTY3JlZW5DbGllbnQuYmFz
ZSk7CiAjZW5kaWYKKworI2lmIEVOQUJMRShWSURFT19QUkVTRU5UQVRJT05fTU9ERSkKKyAgICBX
S0J1bmRsZVBhZ2VWaWRlb0Z1bGxzY3JlZW5DbGllbnRWMCB2aWRlb0Z1bGxzY3JlZW5DbGllbnQg
PSB7CisgICAgICAgIHsgMCwgdGhpcyB9LAorICAgICAgICBzZXRIYXNWaWRlbywKKyAgICAgICAg
c2V0VmlkZW9EaW1lbnNpb25zLAorICAgICAgICBzZXR1cEZ1bGxzY3JlZW5XaXRoSUQsCisgICAg
ICAgIGVudGVyRnVsbHNjcmVlbiwKKyAgICAgICAgZXhpdEZ1bGxzY3JlZW4sCisgICAgICAgIHNl
dElubGluZVJlY3QsCisgICAgICAgIHNldEhhc1ZpZGVvQ29udGVudExheWVyLAorICAgICAgICBj
bGVhbnVwRnVsbHNjcmVlbiwKKyAgICAgICAgcHJlcGFyZWRUb1JldHVyblRvSW5saW5lLAorICAg
ICAgICBwcmVwYXJlZFRvRXhpdEZ1bGxzY3JlZW4sCisjaWYgUExBVEZPUk0oTUFDKQorICAgICAg
ICBleGl0RnVsbHNjcmVlbldpdGhvdXRBbmltYXRpb25Ub01vZGUKKyNlbHNlCisgICAgICAgIDAs
IC8qIGV4aXRGdWxsc2NyZWVuV2l0aG91dEFuaW1hdGlvblRvTW9kZSAqLworI2VuZGlmCisgICAg
fTsKKyAgICBXS0J1bmRsZVBhZ2VTZXRWaWRlb0Z1bGxzY3JlZW5DbGllbnQobV9wYWdlLCAmdmlk
ZW9GdWxsc2NyZWVuQ2xpZW50LmJhc2UpOworI2VuZGlmIC8vIEVOQUJMRShWSURFT19QUkVTRU5U
QVRJT05fTU9ERSkKIH0KIAogSW5qZWN0ZWRCdW5kbGVQYWdlOjp+SW5qZWN0ZWRCdW5kbGVQYWdl
KCkKQEAgLTE5MzIsNiArMTk1NCwxMzAgQEAgdm9pZCBJbmplY3RlZEJ1bmRsZVBhZ2U6OmNsb3Nl
RnVsbFNjcmVlbihXS0J1bmRsZVBhZ2VSZWYgcGFnZVJlZikKIH0KICNlbmRpZgogCisjaWYgRU5B
QkxFKFZJREVPX1BSRVNFTlRBVElPTl9NT0RFKQorCit2b2lkIEluamVjdGVkQnVuZGxlUGFnZTo6
c2V0SGFzVmlkZW8oV0tCdW5kbGVQYWdlUmVmLCB1aW50NjRfdCBjb250ZXh0SWQsIGJvb2wgaGFz
VmlkZW8pCit7CisgICAgVU5VU0VEX1BBUkFNKGNvbnRleHRJZCk7CisgICAgVU5VU0VEX1BBUkFN
KGhhc1ZpZGVvKTsKKworICAgIGF1dG8mIGluamVjdGVkQnVuZGxlID0gSW5qZWN0ZWRCdW5kbGU6
OnNpbmdsZXRvbigpOworICAgIGlmIChpbmplY3RlZEJ1bmRsZS50ZXN0UnVubmVyKCktPnNob3Vs
ZER1bXBGdWxsU2NyZWVuQ2FsbGJhY2tzKCkpCisgICAgICAgIGluamVjdGVkQnVuZGxlLm91dHB1
dFRleHQoInNldEhhc1ZpZGVvKClcbiIpOworfQorCit2b2lkIEluamVjdGVkQnVuZGxlUGFnZTo6
c2V0VmlkZW9EaW1lbnNpb25zKFdLQnVuZGxlUGFnZVJlZiwgdWludDY0X3QgY29udGV4dElkLCBX
S1NpemUgdmlkZW9EaW1lbnNpb25zKQoreworICAgIFVOVVNFRF9QQVJBTShjb250ZXh0SWQpOwor
ICAgIFVOVVNFRF9QQVJBTSh2aWRlb0RpbWVuc2lvbnMpOworCisgICAgYXV0byYgaW5qZWN0ZWRC
dW5kbGUgPSBJbmplY3RlZEJ1bmRsZTo6c2luZ2xldG9uKCk7CisgICAgaWYgKGluamVjdGVkQnVu
ZGxlLnRlc3RSdW5uZXIoKS0+c2hvdWxkRHVtcEZ1bGxTY3JlZW5DYWxsYmFja3MoKSkKKyAgICAg
ICAgaW5qZWN0ZWRCdW5kbGUub3V0cHV0VGV4dCgic2V0VmlkZW9EaW1lbnNpb25zKClcbiIpOwor
fQorCit2b2lkIEluamVjdGVkQnVuZGxlUGFnZTo6c2V0dXBGdWxsc2NyZWVuV2l0aElEKFdLQnVu
ZGxlUGFnZVJlZiBwYWdlLCB1aW50NjRfdCBjb250ZXh0SWQsIHVpbnQzMl90IHZpZGVvTGF5ZXJJ
ZCwgV0tSZWN0IGluaXRpYWxSZWN0LCBmbG9hdCBob3N0aW5nU2NhbGVGYWN0b3IsIFdLVmlkZW9G
dWxsc2NyZWVuTW9kZSB2aWRlb0Z1bGxzY3JlZW5Nb2RlLCBib29sIGFsbG93c1BpY3R1cmVJblBp
Y3R1cmUsIGJvb2wgc3RhbmRieSkKK3sKKyAgICBVTlVTRURfUEFSQU0odmlkZW9MYXllcklkKTsK
KyAgICBVTlVTRURfUEFSQU0oaW5pdGlhbFJlY3QpOworICAgIFVOVVNFRF9QQVJBTShob3N0aW5n
U2NhbGVGYWN0b3IpOworICAgIFVOVVNFRF9QQVJBTSh2aWRlb0Z1bGxzY3JlZW5Nb2RlKTsKKyAg
ICBVTlVTRURfUEFSQU0oYWxsb3dzUGljdHVyZUluUGljdHVyZSk7CisgICAgVU5VU0VEX1BBUkFN
KHN0YW5kYnkpOworCisgICAgYXV0byYgaW5qZWN0ZWRCdW5kbGUgPSBJbmplY3RlZEJ1bmRsZTo6
c2luZ2xldG9uKCk7CisgICAgaWYgKGluamVjdGVkQnVuZGxlLnRlc3RSdW5uZXIoKS0+c2hvdWxk
RHVtcEZ1bGxTY3JlZW5DYWxsYmFja3MoKSkKKyAgICAgICAgaW5qZWN0ZWRCdW5kbGUub3V0cHV0
VGV4dCgic2V0dXBGdWxsc2NyZWVuV2l0aElEKClcbiIpOworCisgICAgV0tCdW5kbGVQYWdlUmVx
dWVzdFZpZGVvQ29udGVudExheWVyKHBhZ2UsIGNvbnRleHRJZCk7Cit9CisKK3ZvaWQgSW5qZWN0
ZWRCdW5kbGVQYWdlOjplbnRlckZ1bGxzY3JlZW4oV0tCdW5kbGVQYWdlUmVmIHBhZ2UsIHVpbnQ2
NF90IGNvbnRleHRJZCkKK3sKKyAgICBhdXRvJiBpbmplY3RlZEJ1bmRsZSA9IEluamVjdGVkQnVu
ZGxlOjpzaW5nbGV0b24oKTsKKyAgICBpZiAoaW5qZWN0ZWRCdW5kbGUudGVzdFJ1bm5lcigpLT5z
aG91bGREdW1wRnVsbFNjcmVlbkNhbGxiYWNrcygpKQorICAgICAgICBpbmplY3RlZEJ1bmRsZS5v
dXRwdXRUZXh0KCJlbnRlckZ1bGxzY3JlZW4oKVxuIik7CisKKyAgICBXS0J1bmRsZVBhZ2VEaWRF
bnRlclZpZGVvRnVsbHNjcmVlbihwYWdlLCBjb250ZXh0SWQpOworfQorCit2b2lkIEluamVjdGVk
QnVuZGxlUGFnZTo6ZXhpdEZ1bGxzY3JlZW4oV0tCdW5kbGVQYWdlUmVmIHBhZ2UsIHVpbnQ2NF90
IGNvbnRleHRJZCwgV0tSZWN0IGZpbmFsUmVjdCkKK3sKKyAgICBVTlVTRURfUEFSQU0oZmluYWxS
ZWN0KTsKKworICAgIGF1dG8mIGluamVjdGVkQnVuZGxlID0gSW5qZWN0ZWRCdW5kbGU6OnNpbmds
ZXRvbigpOworICAgIGlmIChpbmplY3RlZEJ1bmRsZS50ZXN0UnVubmVyKCktPnNob3VsZER1bXBG
dWxsU2NyZWVuQ2FsbGJhY2tzKCkpCisgICAgICAgIGluamVjdGVkQnVuZGxlLm91dHB1dFRleHQo
ImV4aXRGdWxsc2NyZWVuKClcbiIpOworCisgICAgV0tCdW5kbGVQYWdlUmV0dXJuVmlkZW9Db250
ZW50TGF5ZXIocGFnZSwgY29udGV4dElkKTsKK30KKwordm9pZCBJbmplY3RlZEJ1bmRsZVBhZ2U6
OnNldElubGluZVJlY3QoV0tCdW5kbGVQYWdlUmVmLCB1aW50NjRfdCBjb250ZXh0SWQsIFdLUmVj
dCBpbmxpbmVSZWN0LCBib29sIHZpc2libGUpCit7CisgICAgVU5VU0VEX1BBUkFNKGNvbnRleHRJ
ZCk7CisgICAgVU5VU0VEX1BBUkFNKGlubGluZVJlY3QpOworICAgIFVOVVNFRF9QQVJBTSh2aXNp
YmxlKTsKKworICAgIGF1dG8mIGluamVjdGVkQnVuZGxlID0gSW5qZWN0ZWRCdW5kbGU6OnNpbmds
ZXRvbigpOworICAgIGlmIChpbmplY3RlZEJ1bmRsZS50ZXN0UnVubmVyKCktPnNob3VsZER1bXBG
dWxsU2NyZWVuQ2FsbGJhY2tzKCkpCisgICAgICAgIGluamVjdGVkQnVuZGxlLm91dHB1dFRleHQo
InNldElubGluZVJlY3QoKVxuIik7Cit9CisKK3ZvaWQgSW5qZWN0ZWRCdW5kbGVQYWdlOjpzZXRI
YXNWaWRlb0NvbnRlbnRMYXllcihXS0J1bmRsZVBhZ2VSZWYgcGFnZSwgdWludDY0X3QgY29udGV4
dElkLCBib29sIHZhbHVlKQoreworICAgIGF1dG8mIGluamVjdGVkQnVuZGxlID0gSW5qZWN0ZWRC
dW5kbGU6OnNpbmdsZXRvbigpOworICAgIGlmIChpbmplY3RlZEJ1bmRsZS50ZXN0UnVubmVyKCkt
PnNob3VsZER1bXBGdWxsU2NyZWVuQ2FsbGJhY2tzKCkpCisgICAgICAgIGluamVjdGVkQnVuZGxl
Lm91dHB1dFRleHQoInNldEhhc1ZpZGVvQ29udGVudExheWVyKClcbiIpOworCisgICAgaWYgKHZh
bHVlKQorICAgICAgICBXS0J1bmRsZVBhZ2VEaWRTZXR1cFZpZGVvRnVsbHNjcmVlbihwYWdlLCBj
b250ZXh0SWQpOworICAgIGVsc2UKKyAgICAgICAgV0tCdW5kbGVQYWdlRGlkRXhpdFZpZGVvRnVs
bHNjcmVlbihwYWdlLCBjb250ZXh0SWQpOworfQorCit2b2lkIEluamVjdGVkQnVuZGxlUGFnZTo6
Y2xlYW51cEZ1bGxzY3JlZW4oV0tCdW5kbGVQYWdlUmVmIHBhZ2UsIHVpbnQ2NF90IGNvbnRleHRJ
ZCkKK3sKKyAgICBhdXRvJiBpbmplY3RlZEJ1bmRsZSA9IEluamVjdGVkQnVuZGxlOjpzaW5nbGV0
b24oKTsKKyAgICBpZiAoaW5qZWN0ZWRCdW5kbGUudGVzdFJ1bm5lcigpLT5zaG91bGREdW1wRnVs
bFNjcmVlbkNhbGxiYWNrcygpKQorICAgICAgICBpbmplY3RlZEJ1bmRsZS5vdXRwdXRUZXh0KCJj
bGVhbnVwRnVsbHNjcmVlbigpXG4iKTsKKworICAgIFdLQnVuZGxlUGFnZURpZENsZWFudXBWaWRl
b0Z1bGxzY3JlZW4ocGFnZSwgY29udGV4dElkKTsKK30KKwordm9pZCBJbmplY3RlZEJ1bmRsZVBh
Z2U6OnByZXBhcmVkVG9SZXR1cm5Ub0lubGluZShXS0J1bmRsZVBhZ2VSZWYsIHVpbnQ2NF90IGNv
bnRleHRJZCwgYm9vbCB2aXNpYmxlLCBXS1JlY3QgaW5saW5lUmVjdCkKK3sKKyAgICBVTlVTRURf
UEFSQU0oY29udGV4dElkKTsKKyAgICBVTlVTRURfUEFSQU0odmlzaWJsZSk7CisgICAgVU5VU0VE
X1BBUkFNKGlubGluZVJlY3QpOworCisgICAgYXV0byYgaW5qZWN0ZWRCdW5kbGUgPSBJbmplY3Rl
ZEJ1bmRsZTo6c2luZ2xldG9uKCk7CisgICAgaWYgKGluamVjdGVkQnVuZGxlLnRlc3RSdW5uZXIo
KS0+c2hvdWxkRHVtcEZ1bGxTY3JlZW5DYWxsYmFja3MoKSkKKyAgICAgICAgaW5qZWN0ZWRCdW5k
bGUub3V0cHV0VGV4dCgicHJlcGFyZWRUb1JldHVyblRvSW5saW5lKClcbiIpOworfQorCit2b2lk
IEluamVjdGVkQnVuZGxlUGFnZTo6cHJlcGFyZWRUb0V4aXRGdWxsc2NyZWVuKFdLQnVuZGxlUGFn
ZVJlZiwgdWludDY0X3QgY29udGV4dElkKQoreworICAgIFVOVVNFRF9QQVJBTShjb250ZXh0SWQp
OworCisgICAgYXV0byYgaW5qZWN0ZWRCdW5kbGUgPSBJbmplY3RlZEJ1bmRsZTo6c2luZ2xldG9u
KCk7CisgICAgaWYgKGluamVjdGVkQnVuZGxlLnRlc3RSdW5uZXIoKS0+c2hvdWxkRHVtcEZ1bGxT
Y3JlZW5DYWxsYmFja3MoKSkKKyAgICAgICAgaW5qZWN0ZWRCdW5kbGUub3V0cHV0VGV4dCgicHJl
cGFyZWRUb0V4aXRGdWxsc2NyZWVuKClcbiIpOworfQorCisjaWYgUExBVEZPUk0oTUFDKQordm9p
ZCBJbmplY3RlZEJ1bmRsZVBhZ2U6OmV4aXRGdWxsc2NyZWVuV2l0aG91dEFuaW1hdGlvblRvTW9k
ZShXS0J1bmRsZVBhZ2VSZWYsIHVpbnQ2NF90IGNvbnRleHRJZCwgV0tWaWRlb0Z1bGxzY3JlZW5N
b2RlIHZpZGVvRnVsbHNjcmVlbk1vZGUpCit7CisgICAgVU5VU0VEX1BBUkFNKGNvbnRleHRJZCk7
CisgICAgVU5VU0VEX1BBUkFNKHZpZGVvRnVsbHNjcmVlbk1vZGUpOworCisgICAgYXV0byYgaW5q
ZWN0ZWRCdW5kbGUgPSBJbmplY3RlZEJ1bmRsZTo6c2luZ2xldG9uKCk7CisgICAgaWYgKGluamVj
dGVkQnVuZGxlLnRlc3RSdW5uZXIoKS0+c2hvdWxkRHVtcEZ1bGxTY3JlZW5DYWxsYmFja3MoKSkK
KyAgICAgICAgaW5qZWN0ZWRCdW5kbGUub3V0cHV0VGV4dCgiZXhpdEZ1bGxzY3JlZW5XaXRob3V0
QW5pbWF0aW9uVG9Nb2RlKClcbiIpOworfQorI2VuZGlmCisKKyNlbmRpZiAvLyBFTkFCTEUoVklE
RU9fUFJFU0VOVEFUSU9OX01PREUpCisKIFN0cmluZyBJbmplY3RlZEJ1bmRsZVBhZ2U6OmR1bXBI
aXN0b3J5KCkKIHsKICAgICByZXR1cm4gbWFrZVN0cmluZygKZGlmZiAtLWdpdCBhL1Rvb2xzL1dl
YktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvSW5qZWN0ZWRCdW5kbGVQYWdlLmggYi9Ub29s
cy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0luamVjdGVkQnVuZGxlUGFnZS5oCmlu
ZGV4IDMxNDg4YTUyYjVjZTU1Njk2MTZjYmQ5MWI5YTIxOTc1MDM0MjExMmUuLjQ1MjFkZGEyYWM5
NTZmYTk2MTQ2YzExMGZiNThhMWRkZTIxOTM3ZWMgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYktpdFRl
c3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvSW5qZWN0ZWRCdW5kbGVQYWdlLmgKKysrIGIvVG9vbHMv
V2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZVBhZ2UuaApAQCAt
MTQ1LDYgKzE0NSwyMiBAQCBwcml2YXRlOgogICAgIHN0YXRpYyB2b2lkIGNsb3NlRnVsbFNjcmVl
bihXS0J1bmRsZVBhZ2VSZWYpOwogI2VuZGlmCiAKKyNpZiBFTkFCTEUoVklERU9fUFJFU0VOVEFU
SU9OX01PREUpCisgICAgc3RhdGljIHZvaWQgc2V0SGFzVmlkZW8oV0tCdW5kbGVQYWdlUmVmLCB1
aW50NjRfdCBjb250ZXh0SWQsIGJvb2wgaGFzVmlkZW8pOworICAgIHN0YXRpYyB2b2lkIHNldFZp
ZGVvRGltZW5zaW9ucyhXS0J1bmRsZVBhZ2VSZWYsIHVpbnQ2NF90IGNvbnRleHRJZCwgV0tTaXpl
IHZpZGVvRGltZW5zaW9ucyk7CisgICAgc3RhdGljIHZvaWQgc2V0dXBGdWxsc2NyZWVuV2l0aElE
KFdLQnVuZGxlUGFnZVJlZiwgdWludDY0X3QgY29udGV4dElkLCB1aW50MzJfdCB2aWRlb0xheWVy
SWQsIFdLUmVjdCBpbml0aWFsUmVjdCwgZmxvYXQgaG9zdGluZ1NjYWxlRmFjdG9yLCBXS1ZpZGVv
RnVsbHNjcmVlbk1vZGUsIGJvb2wgYWxsb3dzUGljdHVyZUluUGljdHVyZSwgYm9vbCBzdGFuZGJ5
KTsKKyAgICBzdGF0aWMgdm9pZCBlbnRlckZ1bGxzY3JlZW4oV0tCdW5kbGVQYWdlUmVmLCB1aW50
NjRfdCBjb250ZXh0SWQpOworICAgIHN0YXRpYyB2b2lkIGV4aXRGdWxsc2NyZWVuKFdLQnVuZGxl
UGFnZVJlZiwgdWludDY0X3QgY29udGV4dElkLCBXS1JlY3QgZmluYWxSZWN0KTsKKyAgICBzdGF0
aWMgdm9pZCBzZXRJbmxpbmVSZWN0KFdLQnVuZGxlUGFnZVJlZiwgdWludDY0X3QgY29udGV4dElk
LCBXS1JlY3QgaW5saW5lUmVjdCwgYm9vbCB2aXNpYmxlKTsKKyAgICBzdGF0aWMgdm9pZCBzZXRI
YXNWaWRlb0NvbnRlbnRMYXllcihXS0J1bmRsZVBhZ2VSZWYsIHVpbnQ2NF90IGNvbnRleHRJZCwg
Ym9vbCB2YWx1ZSk7CisgICAgc3RhdGljIHZvaWQgY2xlYW51cEZ1bGxzY3JlZW4oV0tCdW5kbGVQ
YWdlUmVmLCB1aW50NjRfdCBjb250ZXh0SWQpOworICAgIHN0YXRpYyB2b2lkIHByZXBhcmVkVG9S
ZXR1cm5Ub0lubGluZShXS0J1bmRsZVBhZ2VSZWYsIHVpbnQ2NF90IGNvbnRleHRJZCwgYm9vbCB2
aXNpYmxlLCBXS1JlY3QgaW5saW5lUmVjdCk7CisgICAgc3RhdGljIHZvaWQgcHJlcGFyZWRUb0V4
aXRGdWxsc2NyZWVuKFdLQnVuZGxlUGFnZVJlZiwgdWludDY0X3QgY29udGV4dElkKTsKKyNpZiBQ
TEFURk9STShNQUMpCisgICAgc3RhdGljIHZvaWQgZXhpdEZ1bGxzY3JlZW5XaXRob3V0QW5pbWF0
aW9uVG9Nb2RlKFdLQnVuZGxlUGFnZVJlZiwgdWludDY0X3QgY29udGV4dElkLCBXS1ZpZGVvRnVs
bHNjcmVlbk1vZGUpOworI2VuZGlmCisjZW5kaWYgLy8gRU5BQkxFKFZJREVPX1BSRVNFTlRBVElP
Tl9NT0RFKQorCiAgICAgLy8gRWRpdG9yIGNsaWVudAogICAgIHN0YXRpYyBib29sIHNob3VsZEJl
Z2luRWRpdGluZyhXS0J1bmRsZVBhZ2VSZWYsIFdLQnVuZGxlUmFuZ2VIYW5kbGVSZWYsIGNvbnN0
IHZvaWQqIGNsaWVudEluZm8pOwogICAgIHN0YXRpYyBib29sIHNob3VsZEVuZEVkaXRpbmcoV0tC
dW5kbGVQYWdlUmVmLCBXS0J1bmRsZVJhbmdlSGFuZGxlUmVmLCBjb25zdCB2b2lkKiBjbGllbnRJ
bmZvKTsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>396833</attachid>
            <date>2020-04-17 22:37:06 -0700</date>
            <delta_ts>2020-04-17 22:52:22 -0700</delta_ts>
            <desc>Fix GTK and WPE build failures</desc>
            <filename>bug-203723-20200417223705.patch</filename>
            <type>text/plain</type>
            <size>60087</size>
            <attacher name="Peng Liu">peng.liu6</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjYwMjkzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDExZjZlNzRiMWNiYmU4MGI4
N2YyNTU4MTE5NzkxYjYyODc5NmJjOWMuLjBmYTk0Y2E4NmZkYmUxZWQwNjFlMDg0NDcxOWQxYWMy
YjM3MDgzMDYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNjQgQEAKKzIwMjAtMDQtMTcgIFBlbmcgTGl1
ICA8cGVuZy5saXU2QGFwcGxlLmNvbT4KKworICAgICAgICBVcGRhdGUgV2ViS2l0VGVzdFJ1bm5l
ciB0byBzdXBwb3J0IHJ1bm5pbmcgbXVsdGlwbGUgdmlkZW8gZnVsbHNjcmVlbiBhbmQgUGljdHVy
ZS1pbi1QaWN0dXJlIHRlc3RzIHNpbXVsdGFuZW91c2x5CisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDM3MjMKKworICAgICAgICBSZXZpZXdlZCBieSBO
T0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGQgdGhlIGluamVjdGVkIGJ1bmRsZSBjbGllbnQg
c3VwcG9ydCBmb3IgdmlkZW8gZnVsbHNjcmVlbiByZWxhdGVkIGludGVyZmFjZXMgYmV0d2VlbiAK
KyAgICAgICAgdGhlIFdlYiBwcm9jZXNzIChWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyKSBhbmQgdGhl
IFVJIHByb2Nlc3MgKFZpZGVvRnVsbHNjcmVlbk1hbmFnZXJQcm94eSkuCisKKyAgICAgICAgKiBT
aGFyZWQvQVBJL2MvV0tTaGFyZWRBUElDYXN0Lmg6CisgICAgICAgIChXZWJLaXQ6OnRvQVBJKToK
KyAgICAgICAgKiBXZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBX
ZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9jL1dLQnVuZGxlUGFnZS5jcHA6CisgICAgICAg
IChXS0J1bmRsZVBhZ2VTZXRWaWRlb0Z1bGxzY3JlZW5DbGllbnQpOgorICAgICAgICAoV0tCdW5k
bGVQYWdlUmVxdWVzdFZpZGVvRnVsbHNjcmVlbk1vZGUpOgorICAgICAgICAoV0tCdW5kbGVQYWdl
UmVxdWVzdFZpZGVvQ29udGVudExheWVyKToKKyAgICAgICAgKFdLQnVuZGxlUGFnZURpZFNldHVw
VmlkZW9GdWxsc2NyZWVuKToKKyAgICAgICAgKFdLQnVuZGxlUGFnZURpZEVudGVyVmlkZW9GdWxs
c2NyZWVuKToKKyAgICAgICAgKFdLQnVuZGxlUGFnZVJldHVyblZpZGVvQ29udGVudExheWVyKToK
KyAgICAgICAgKFdLQnVuZGxlUGFnZURpZEV4aXRWaWRlb0Z1bGxzY3JlZW4pOgorICAgICAgICAo
V0tCdW5kbGVQYWdlRGlkQ2xlYW51cFZpZGVvRnVsbHNjcmVlbik6CisgICAgICAgICogV2ViUHJv
Y2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvYy9XS0J1bmRsZVBhZ2UuaDoKKyAgICAgICAgKiBXZWJQ
cm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9jL1dLQnVuZGxlUGFnZVZpZGVvRnVsbHNjcmVlbkNs
aWVudC5oOiBBZGRlZC4KKyAgICAgICAgKiBXZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0luamVj
dGVkQnVuZGxlUGFnZUZ1bGxTY3JlZW5DbGllbnQuY3BwOgorICAgICAgICAqIFdlYlByb2Nlc3Mv
SW5qZWN0ZWRCdW5kbGUvSW5qZWN0ZWRCdW5kbGVQYWdlRnVsbFNjcmVlbkNsaWVudC5oOgorICAg
ICAgICAqIFdlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvSW5qZWN0ZWRCdW5kbGVQYWdlVmlkZW9G
dWxsc2NyZWVuQ2xpZW50LmNwcDogQWRkZWQuCisgICAgICAgIChXZWJLaXQ6OkluamVjdGVkQnVu
ZGxlUGFnZVZpZGVvRnVsbHNjcmVlbkNsaWVudDo6c2V0SGFzVmlkZW8pOgorICAgICAgICAoV2Vi
S2l0OjpJbmplY3RlZEJ1bmRsZVBhZ2VWaWRlb0Z1bGxzY3JlZW5DbGllbnQ6OnNldFZpZGVvRGlt
ZW5zaW9ucyk6CisgICAgICAgIChXZWJLaXQ6OkluamVjdGVkQnVuZGxlUGFnZVZpZGVvRnVsbHNj
cmVlbkNsaWVudDo6c2V0dXBGdWxsc2NyZWVuV2l0aElEKToKKyAgICAgICAgKFdlYktpdDo6SW5q
ZWN0ZWRCdW5kbGVQYWdlVmlkZW9GdWxsc2NyZWVuQ2xpZW50OjplbnRlckZ1bGxzY3JlZW4pOgor
ICAgICAgICAoV2ViS2l0OjpJbmplY3RlZEJ1bmRsZVBhZ2VWaWRlb0Z1bGxzY3JlZW5DbGllbnQ6
OmV4aXRGdWxsc2NyZWVuKToKKyAgICAgICAgKFdlYktpdDo6SW5qZWN0ZWRCdW5kbGVQYWdlVmlk
ZW9GdWxsc2NyZWVuQ2xpZW50OjpzZXRJbmxpbmVSZWN0KToKKyAgICAgICAgKFdlYktpdDo6SW5q
ZWN0ZWRCdW5kbGVQYWdlVmlkZW9GdWxsc2NyZWVuQ2xpZW50OjpzZXRIYXNWaWRlb0NvbnRlbnRM
YXllcik6CisgICAgICAgIChXZWJLaXQ6OkluamVjdGVkQnVuZGxlUGFnZVZpZGVvRnVsbHNjcmVl
bkNsaWVudDo6Y2xlYW51cEZ1bGxzY3JlZW4pOgorICAgICAgICAoV2ViS2l0OjpJbmplY3RlZEJ1
bmRsZVBhZ2VWaWRlb0Z1bGxzY3JlZW5DbGllbnQ6OnByZXBhcmVkVG9SZXR1cm5Ub0lubGluZSk6
CisgICAgICAgIChXZWJLaXQ6OkluamVjdGVkQnVuZGxlUGFnZVZpZGVvRnVsbHNjcmVlbkNsaWVu
dDo6cHJlcGFyZWRUb0V4aXRGdWxsc2NyZWVuKToKKyAgICAgICAgKFdlYktpdDo6SW5qZWN0ZWRC
dW5kbGVQYWdlVmlkZW9GdWxsc2NyZWVuQ2xpZW50OjpleGl0RnVsbHNjcmVlbldpdGhvdXRBbmlt
YXRpb25Ub01vZGUpOgorICAgICAgICAqIFdlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvSW5qZWN0
ZWRCdW5kbGVQYWdlVmlkZW9GdWxsc2NyZWVuQ2xpZW50Lmg6IEFkZGVkLgorICAgICAgICAqIFdl
YlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZTo6
aW5pdGlhbGl6ZUluamVjdGVkQnVuZGxlVmlkZW9GdWxsc2NyZWVuQ2xpZW50KToKKyAgICAgICAg
KFdlYktpdDo6V2ViUGFnZTo6Y2xvc2UpOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9X
ZWJQYWdlLmg6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2U6OmluamVjdGVkQnVuZGxlVmlkZW9G
dWxsc2NyZWVuQ2xpZW50KToKKyAgICAgICAgKiBXZWJQcm9jZXNzL2NvY29hL1ZpZGVvRnVsbHNj
cmVlbk1hbmFnZXIuaDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL2NvY29hL1ZpZGVvRnVsbHNjcmVl
bk1hbmFnZXIubW06CisgICAgICAgIChXZWJLaXQ6OlZpZGVvRnVsbHNjcmVlbk1hbmFnZXI6OmVu
dGVyVmlkZW9GdWxsc2NyZWVuRm9yVmlkZW9FbGVtZW50KToKKyAgICAgICAgKFdlYktpdDo6Vmlk
ZW9GdWxsc2NyZWVuTWFuYWdlcjo6ZXhpdFZpZGVvRnVsbHNjcmVlbkZvclZpZGVvRWxlbWVudCk6
CisgICAgICAgIChXZWJLaXQ6OlZpZGVvRnVsbHNjcmVlbk1hbmFnZXI6OmV4aXRWaWRlb0Z1bGxz
Y3JlZW5Ub01vZGVXaXRob3V0QW5pbWF0aW9uKToKKyAgICAgICAgKFdlYktpdDo6VmlkZW9GdWxs
c2NyZWVuTWFuYWdlcjo6aGFzVmlkZW9DaGFuZ2VkKToKKyAgICAgICAgKFdlYktpdDo6VmlkZW9G
dWxsc2NyZWVuTWFuYWdlcjo6dmlkZW9EaW1lbnNpb25zQ2hhbmdlZCk6CisgICAgICAgIChXZWJL
aXQ6OlZpZGVvRnVsbHNjcmVlbk1hbmFnZXI6OnJlcXVlc3RVcGRhdGVJbmxpbmVSZWN0KToKKyAg
ICAgICAgKFdlYktpdDo6VmlkZW9GdWxsc2NyZWVuTWFuYWdlcjo6cmVxdWVzdFZpZGVvQ29udGVu
dExheWVyKToKKyAgICAgICAgKFdlYktpdDo6VmlkZW9GdWxsc2NyZWVuTWFuYWdlcjo6cmV0dXJu
VmlkZW9Db250ZW50TGF5ZXIpOgorICAgICAgICAoV2ViS2l0OjpWaWRlb0Z1bGxzY3JlZW5NYW5h
Z2VyOjpkaWRTZXR1cEZ1bGxzY3JlZW4pOgorICAgICAgICAoV2ViS2l0OjpWaWRlb0Z1bGxzY3Jl
ZW5NYW5hZ2VyOjp3aWxsRXhpdEZ1bGxzY3JlZW4pOgorICAgICAgICAoV2ViS2l0OjpWaWRlb0Z1
bGxzY3JlZW5NYW5hZ2VyOjpkaWRFbnRlckZ1bGxzY3JlZW4pOgorICAgICAgICAoV2ViS2l0OjpW
aWRlb0Z1bGxzY3JlZW5NYW5hZ2VyOjpkaWRFeGl0RnVsbHNjcmVlbik6CisgICAgICAgIChXZWJL
aXQ6OlZpZGVvRnVsbHNjcmVlbk1hbmFnZXI6OmRpZENsZWFudXBGdWxsc2NyZWVuKToKKyAgICAg
ICAgKFdlYktpdDo6VmlkZW9GdWxsc2NyZWVuTWFuYWdlcjo6ZnVsbHNjcmVlbk1heVJldHVyblRv
SW5saW5lKToKKwogMjAyMC0wNC0xNyAgRGF2aWQgS2lsemVyICA8ZGRraWx6ZXJAYXBwbGUuY29t
PgogCiAgICAgICAgIFJFR1JFU1NJT04gKHIyMzQxMDUpOiBbaU9TXSBXS0NvbG9yQnV0dG9uIGxl
YWtzIGEgVUlDb2xvcgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvQVBJL2MvV0tT
aGFyZWRBUElDYXN0LmggYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9BUEkvYy9XS1NoYXJlZEFQSUNh
c3QuaAppbmRleCAzN2M3ZDk2NjQyODJhZjM5NDhiNWZhMDA2ZmM4NTA0OTQ3N2E5NDgwLi4wNTU0
MjE1NmVkYWFiZDQ2YmYwYjdiNzJlYTI3Mjg0ODUwNjIzYjdiIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L1NoYXJlZC9BUEkvYy9XS1NoYXJlZEFQSUNhc3QuaAorKysgYi9Tb3VyY2UvV2ViS2l0
L1NoYXJlZC9BUEkvYy9XS1NoYXJlZEFQSUNhc3QuaApAQCAtMjQ5LDYgKzI0OSwxNCBAQCBpbmxp
bmUgV0tSZWN0IHRvQVBJKGNvbnN0IFdlYkNvcmU6OkZsb2F0UmVjdCYgcmVjdCkKICAgICByZXR1
cm4gd2tSZWN0OwogfQogCitpbmxpbmUgV0tTaXplIHRvQVBJKGNvbnN0IFdlYkNvcmU6OkZsb2F0
U2l6ZSYgc2l6ZSkKK3sKKyAgICBXS1NpemUgd2tTaXplOworICAgIHdrU2l6ZS53aWR0aCA9IHNp
emUud2lkdGgoKTsKKyAgICB3a1NpemUuaGVpZ2h0ID0gc2l6ZS5oZWlnaHQoKTsKKyAgICByZXR1
cm4gd2tTaXplOworfQorCiBpbmxpbmUgV0tSZWN0IHRvQVBJKGNvbnN0IFdlYkNvcmU6OkludFJl
Y3QmIHJlY3QpCiB7CiAgICAgV0tSZWN0IHdrUmVjdDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvV2ViS2l0L1dlYktp
dC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IDZlNDdiNmU5MmYwMmE5NWYzMzc2Yjhh
NzA1ZGZiMTExYWY4YTY4NDkuLjEyN2M3ODRjNDA5Yjc4MTk4MzE2OGVhODY1ZTFkMTJlNDBkMzk5
ZGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBi
eHByb2oKKysrIGIvU291cmNlL1dlYktpdC9XZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJv
agpAQCAtNDE3LDYgKzQxNyw5IEBACiAJCTFENEQ3MzcxMjNBOUU1NjIwMDcxN0EyNSAvKiBSZW1v
dGVNZWRpYVJlc291cmNlTWFuYWdlck1lc3NhZ2VzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxRDRENzM2QzIzQTlERjYwMDA3MTdBMjUgLyogUmVtb3Rl
TWVkaWFSZXNvdXJjZU1hbmFnZXJNZXNzYWdlcy5oICovOyB9OwogCQkxRDRENzM3NjIzQTlFRDE4
MDA3MTdBMjUgLyogUmVtb3RlTWVkaWFSZXNvdXJjZU1hbmFnZXJNZXNzYWdlc1JlcGxpZXMuaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDFENEQ3Mzc1MjNB
OUVCNjgwMDcxN0EyNSAvKiBSZW1vdGVNZWRpYVJlc291cmNlTWFuYWdlck1lc3NhZ2VzUmVwbGll
cy5oICovOyB9OwogCQkxRDY3QjMzOTIxMkUxRjYxMDBGQUE3ODYgLyogU2hhcmVTaGVldENhbGxi
YWNrSUQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDFE
NjdCMzM4MjEyRTFGNjEwMEZBQTc4NiAvKiBTaGFyZVNoZWV0Q2FsbGJhY2tJRC5oICovOyB9Owor
CQkxREFBNTJDMDI0Mzk2ODMxMDAxQTMxNTkgLyogSW5qZWN0ZWRCdW5kbGVQYWdlVmlkZW9GdWxs
c2NyZWVuQ2xpZW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSAxREFBNTJCRTI0Mzk2ODMxMDAxQTMxNTkgLyogSW5qZWN0ZWRCdW5kbGVQYWdlVmlkZW9G
dWxsc2NyZWVuQ2xpZW50LmggKi87IH07CisJCTFEQUE1MkMxMjQzOTY4MzEwMDFBMzE1OSAvKiBJ
bmplY3RlZEJ1bmRsZVBhZ2VWaWRlb0Z1bGxzY3JlZW5DbGllbnQuY3BwIGluIFNvdXJjZXMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMURBQTUyQkYyNDM5NjgzMTAwMUEzMTU5
IC8qIEluamVjdGVkQnVuZGxlUGFnZVZpZGVvRnVsbHNjcmVlbkNsaWVudC5jcHAgKi87IH07CisJ
CTFEQUE1MkMzMjQzOTZFNkQwMDFBMzE1OSAvKiBXS0J1bmRsZVBhZ2VWaWRlb0Z1bGxzY3JlZW5D
bGllbnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDFE
QUE1MkMyMjQzOTZFNkQwMDFBMzE1OSAvKiBXS0J1bmRsZVBhZ2VWaWRlb0Z1bGxzY3JlZW5DbGll
bnQuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQkx
REIwMTk0MzIxMUNGMDAyMDA5RkIzRTggLyogV0tTaGFyZVNoZWV0LmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxREUwRDA5NTIxMUNDMjEzMDA0MzlCNUYg
LyogV0tTaGFyZVNoZWV0LmggKi87IH07CiAJCTFEQjAxOTQ0MjExQ0YwMDUwMDlGQjNFOCAvKiBX
S1NoYXJlU2hlZXQubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSAxREJCQjA2MTIxMUNDM0NCMDA1MDJFQ0MgLyogV0tTaGFyZVNoZWV0Lm1tICovOyB9Owog
CQkxRjMzNUJDMDE4NUI4NEYwMDAxQTIwMUEgLyogV0tXZWJQcm9jZXNzUGx1Z0luTG9hZERlbGVn
YXRlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxRjMz
NUJCRjE4NUI4NEQ4MDAxQTIwMUEgLyogV0tXZWJQcm9jZXNzUGx1Z0luTG9hZERlbGVnYXRlLmgg
Ki87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKQEAgLTI3NDIs
NiArMjc0NSw5IEBACiAJCTFEOTdFQzdEMjQwODk4RDIwMDQ2NkZGQSAvKiBNZWRpYVBsYXllclBy
aXZhdGVSZW1vdGVDb2NvYS5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBleHBsaWNp
dEZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gTWVkaWFQbGF5ZXJQcml2
YXRlUmVtb3RlQ29jb2EubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTFEQTQwODk0
MjNBODBBM0UwMDU4Qzk1MCAvKiBSZW1vdGVNZWRpYVJlc291cmNlTWFuYWdlci5oICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7
IHBhdGggPSBSZW1vdGVNZWRpYVJlc291cmNlTWFuYWdlci5oOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwogCQkxREE0MDg5RTIzQTgyNzc4MDA1OEM5NTAgLyogUmVtb3RlTWVkaWFSZXNvdXJj
ZU1hbmFnZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gUmVtb3RlTWVkaWFSZXNvdXJjZU1hbmFn
ZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkxREFBNTJCRTI0Mzk2ODMxMDAx
QTMxNTkgLyogSW5qZWN0ZWRCdW5kbGVQYWdlVmlkZW9GdWxsc2NyZWVuQ2xpZW50LmggKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMu
aDsgcGF0aCA9IEluamVjdGVkQnVuZGxlUGFnZVZpZGVvRnVsbHNjcmVlbkNsaWVudC5oOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OworCQkxREFBNTJCRjI0Mzk2ODMxMDAxQTMxNTkgLyogSW5q
ZWN0ZWRCdW5kbGVQYWdlVmlkZW9GdWxsc2NyZWVuQ2xpZW50LmNwcCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0
aCA9IEluamVjdGVkQnVuZGxlUGFnZVZpZGVvRnVsbHNjcmVlbkNsaWVudC5jcHA7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CisJCTFEQUE1MkMyMjQzOTZFNkQwMDFBMzE1OSAvKiBXS0J1bmRs
ZVBhZ2VWaWRlb0Z1bGxzY3JlZW5DbGllbnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBw
YXRoID0gV0tCdW5kbGVQYWdlVmlkZW9GdWxsc2NyZWVuQ2xpZW50Lmg7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CiAJCTFEQkJCMDYxMjExQ0MzQ0IwMDUwMkVDQyAvKiBXS1NoYXJlU2hlZXQu
bW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBXS1NoYXJlU2hlZXQu
bW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTFERTBEMDk1MjExQ0MyMTMwMDQzOUI1
RiAvKiBXS1NoYXJlU2hlZXQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV0tT
aGFyZVNoZWV0Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTFERTJERkFDMjNBOTU5
RjgwMDNFMDEzQSAvKiBSZW1vdGVNZWRpYVJlc291cmNlSWRlbnRpZmllci5oICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBh
dGggPSBSZW1vdGVNZWRpYVJlc291cmNlSWRlbnRpZmllci5oOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwpAQCAtOTQzNyw2ICs5NDQzLDggQEAKIAkJCQk2NTQ2QTgyQTEzMDAwMTY0MDAwQ0VC
MUMgLyogSW5qZWN0ZWRCdW5kbGVQYWdlUmVzb3VyY2VMb2FkQ2xpZW50LmggKi8sCiAJCQkJQkNB
OEM2QUQxMUUzQzA4NzAwODEyRkI3IC8qIEluamVjdGVkQnVuZGxlUGFnZVVJQ2xpZW50LmNwcCAq
LywKIAkJCQlCQ0E4QzZBRTExRTNDMDg3MDA4MTJGQjcgLyogSW5qZWN0ZWRCdW5kbGVQYWdlVUlD
bGllbnQuaCAqLywKKwkJCQkxREFBNTJCRjI0Mzk2ODMxMDAxQTMxNTkgLyogSW5qZWN0ZWRCdW5k
bGVQYWdlVmlkZW9GdWxsc2NyZWVuQ2xpZW50LmNwcCAqLywKKwkJCQkxREFBNTJCRTI0Mzk2ODMx
MDAxQTMxNTkgLyogSW5qZWN0ZWRCdW5kbGVQYWdlVmlkZW9GdWxsc2NyZWVuQ2xpZW50LmggKi8s
CiAJCQkJQkMxNERGNzYxMjBCNUI3OTAwODI2QzBDIC8qIEluamVjdGVkQnVuZGxlU2NyaXB0V29y
bGQuY3BwICovLAogCQkJCUJDMTRERjc1MTIwQjVCNzkwMDgyNkMwQyAvKiBJbmplY3RlZEJ1bmRs
ZVNjcmlwdFdvcmxkLmggKi8sCiAJCQkpOwpAQCAtOTUxMSw2ICs5NTE5LDcgQEAKIAkJCQlCQzFC
NDE5NzExRDQxRDU3MDAxMUU4REQgLyogV0tCdW5kbGVQYWdlUHJpdmF0ZS5oICovLAogCQkJCTFB
QjQ3NEQ5MTg0RDQ0MjUwMDUxQjYyMiAvKiBXS0J1bmRsZVBhZ2VSZXNvdXJjZUxvYWRDbGllbnQu
aCAqLywKIAkJCQkxQUI0NzRERDE4NEQ0NDU5MDA1MUI2MjIgLyogV0tCdW5kbGVQYWdlVUlDbGll
bnQuaCAqLywKKwkJCQkxREFBNTJDMjI0Mzk2RTZEMDAxQTMxNTkgLyogV0tCdW5kbGVQYWdlVmlk
ZW9GdWxsc2NyZWVuQ2xpZW50LmggKi8sCiAJCQkJQkNGMDQ5RTUxMUZFMjBGNjAwRjg2QTU4IC8q
IFdLQnVuZGxlUHJpdmF0ZS5oICovLAogCQkJCUJDNjBDNTc4MTI0MEE1NDYwMDhDNUUyOSAvKiBX
S0J1bmRsZVJhbmdlSGFuZGxlLmNwcCAqLywKIAkJCQlCQzYwQzU3NzEyNDBBNTQ2MDA4QzVFMjkg
LyogV0tCdW5kbGVSYW5nZUhhbmRsZS5oICovLApAQCAtMTA3OTksNiArMTA4MDgsNyBAQAogCQkJ
CUJDQThDNkE5MTFFM0JBNUYwMDgxMkZCNyAvKiBJbmplY3RlZEJ1bmRsZVBhZ2VMb2FkZXJDbGll
bnQuaCBpbiBIZWFkZXJzICovLAogCQkJCUJDODE0N0E5MTJGNjRDREEwMDdCMkMzMiAvKiBJbmpl
Y3RlZEJ1bmRsZVBhZ2VQb2xpY3lDbGllbnQuaCBpbiBIZWFkZXJzICovLAogCQkJCUJDQThDNkIw
MTFFM0MwODcwMDgxMkZCNyAvKiBJbmplY3RlZEJ1bmRsZVBhZ2VVSUNsaWVudC5oIGluIEhlYWRl
cnMgKi8sCisJCQkJMURBQTUyQzAyNDM5NjgzMTAwMUEzMTU5IC8qIEluamVjdGVkQnVuZGxlUGFn
ZVZpZGVvRnVsbHNjcmVlbkNsaWVudC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQkMzM0UwRDExMjQw
OEU4NjAwMzYwRjNGIC8qIEluamVjdGVkQnVuZGxlUmFuZ2VIYW5kbGUuaCBpbiBIZWFkZXJzICov
LAogCQkJCUJDMTRERjc3MTIwQjVCNzkwMDgyNkMwQyAvKiBJbmplY3RlZEJ1bmRsZVNjcmlwdFdv
cmxkLmggaW4gSGVhZGVycyAqLywKIAkJCQkyREQ0NUFERTFFNUY4OTcyMDA2QzM1NUYgLyogSW5w
dXRWaWV3VXBkYXRlRGVmZXJyZXIuaCBpbiBIZWFkZXJzICovLApAQCAtMTE0MzYsNiArMTE0NDYs
NyBAQAogCQkJCUJDMUI0MTk4MTFENDFENTcwMDExRThERCAvKiBXS0J1bmRsZVBhZ2VQcml2YXRl
LmggaW4gSGVhZGVycyAqLywKIAkJCQkxQUI0NzREQTE4NEQ0NDI1MDA1MUI2MjIgLyogV0tCdW5k
bGVQYWdlUmVzb3VyY2VMb2FkQ2xpZW50LmggaW4gSGVhZGVycyAqLywKIAkJCQkxQUI0NzRERTE4
NEQ0NDU5MDA1MUI2MjIgLyogV0tCdW5kbGVQYWdlVUlDbGllbnQuaCBpbiBIZWFkZXJzICovLAor
CQkJCTFEQUE1MkMzMjQzOTZFNkQwMDFBMzE1OSAvKiBXS0J1bmRsZVBhZ2VWaWRlb0Z1bGxzY3Jl
ZW5DbGllbnQuaCBpbiBIZWFkZXJzICovLAogCQkJCUJDRjA0OUU3MTFGRTIwRjYwMEY4NkE1OCAv
KiBXS0J1bmRsZVByaXZhdGUuaCBpbiBIZWFkZXJzICovLAogCQkJCUJDNjBDNTc5MTI0MEE1NDYw
MDhDNUUyOSAvKiBXS0J1bmRsZVJhbmdlSGFuZGxlLmggaW4gSGVhZGVycyAqLywKIAkJCQlCQzVE
MjRDNzE2Q0Q3M0M1MDA3RDU0NjEgLyogV0tCdW5kbGVSYW5nZUhhbmRsZVByaXZhdGUuaCBpbiBI
ZWFkZXJzICovLApAQCAtMTI2NjYsNiArMTI2NzcsNyBAQAogCQkJCTFBQTU3NjAyMTQ5NkI5Nzkw
MEE0RUUwNiAvKiBFdmVudERpc3BhdGNoZXJNZXNzYWdlUmVjZWl2ZXIuY3BwIGluIFNvdXJjZXMg
Ki8sCiAJCQkJQ0RBOTNEQjEyMkY4QkNGNDAwNDkwQTY5IC8qIEZ1bGxzY3JlZW5Ub3VjaFNlY2hl
dXJpc3RpY1BhcmFtZXRlcnMuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMjc0OUY2NDQyMTQ2NTYx
QjAwODM4MEJGIC8qIEluamVjdGVkQnVuZGxlTm9kZUhhbmRsZS5jcHAgaW4gU291cmNlcyAqLywK
KwkJCQkxREFBNTJDMTI0Mzk2ODMxMDAxQTMxNTkgLyogSW5qZWN0ZWRCdW5kbGVQYWdlVmlkZW9G
dWxsc2NyZWVuQ2xpZW50LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTI3NDlGNjQ1MjE0NjU2MUUw
MDgzODBCRiAvKiBJbmplY3RlZEJ1bmRsZVJhbmdlSGFuZGxlLmNwcCBpbiBTb3VyY2VzICovLAog
CQkJCTJEOTEzNDQxMjEyQ0Y5RjAwMDEyOEFGRCAvKiBKU05QTWV0aG9kLmNwcCBpbiBTb3VyY2Vz
ICovLAogCQkJCTJEOTEzNDQyMjEyQ0Y5RjAwMDEyOEFGRCAvKiBKU05QT2JqZWN0LmNwcCBpbiBT
b3VyY2VzICovLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVk
QnVuZGxlL0FQSS9jL1dLQnVuZGxlUGFnZS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
SW5qZWN0ZWRCdW5kbGUvQVBJL2MvV0tCdW5kbGVQYWdlLmNwcAppbmRleCBlOTM5YTRlM2VkNTY3
YzYyNTBlYjUwODFkMmM0ZmNmMGJlZGQ1YzMzLi5hNTU3NjYwZmFjOTkwNDE1MWVjYjhiNDcwMzg3
ZDhjODA1ZjM4ZDExIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0
ZWRCdW5kbGUvQVBJL2MvV0tCdW5kbGVQYWdlLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2MvV0tCdW5kbGVQYWdlLmNwcApAQCAtNzQsNiArNzQs
MTAgQEAKICNpbmNsdWRlIDx3dGYvU3RkTGliRXh0cmFzLmg+CiAjaW5jbHVkZSA8d3RmL1VSTC5o
PgogCisjaWYgRU5BQkxFKFZJREVPX1BSRVNFTlRBVElPTl9NT0RFKQorI2luY2x1ZGUgIlZpZGVv
RnVsbHNjcmVlbk1hbmFnZXIuaCIKKyNlbmRpZgorCiBXS1R5cGVJRCBXS0J1bmRsZVBhZ2VHZXRU
eXBlSUQoKQogewogICAgIHJldHVybiBXZWJLaXQ6OnRvQVBJKFdlYktpdDo6V2ViUGFnZTo6QVBJ
VHlwZSk7CkBAIC0xNjUsNiArMTY5LDg4IEBAIHZvaWQgV0tCdW5kbGVQYWdlRGlkRXhpdEZ1bGxT
Y3JlZW4oV0tCdW5kbGVQYWdlUmVmIHBhZ2VSZWYpCiAjZW5kaWYKIH0KIAordm9pZCBXS0J1bmRs
ZVBhZ2VTZXRWaWRlb0Z1bGxzY3JlZW5DbGllbnQoV0tCdW5kbGVQYWdlUmVmIHBhZ2UsIFdLQnVu
ZGxlUGFnZVZpZGVvRnVsbHNjcmVlbkNsaWVudEJhc2UqIHdrQ2xpZW50KQoreworI2lmIEVOQUJM
RShWSURFT19QUkVTRU5UQVRJT05fTU9ERSkKKyAgICBXZWJLaXQ6OnRvSW1wbChwYWdlKS0+aW5p
dGlhbGl6ZUluamVjdGVkQnVuZGxlVmlkZW9GdWxsc2NyZWVuQ2xpZW50KHdrQ2xpZW50KTsKKyNl
bHNlCisgICAgVU5VU0VEX1BBUkFNKHBhZ2VSZWYpOworICAgIFVOVVNFRF9QQVJBTSh3a0NsaWVu
dCk7CisjZW5kaWYKK30KKwordm9pZCBXS0J1bmRsZVBhZ2VSZXF1ZXN0VmlkZW9GdWxsc2NyZWVu
TW9kZShXS0J1bmRsZVBhZ2VSZWYgcGFnZSwgdWludDY0X3QgY29udGV4dElkLCBXS1ZpZGVvRnVs
bHNjcmVlbk1vZGUgbW9kZSwgYm9vbCBmaW5pc2hlZFdpdGhNZWRpYSkKK3sKKyNpZiBFTkFCTEUo
VklERU9fUFJFU0VOVEFUSU9OX01PREUpCisgICAgV2ViS2l0Ojp0b0ltcGwocGFnZSktPnZpZGVv
RnVsbHNjcmVlbk1hbmFnZXIoKS5yZXF1ZXN0RnVsbHNjcmVlbk1vZGUoY29udGV4dElkLCBtb2Rl
LCBmaW5pc2hlZFdpdGhNZWRpYSk7CisjZWxzZQorICAgIFVOVVNFRF9QQVJBTShwYWdlKTsKKyAg
ICBVTlVTRURfUEFSQU0oY29udGV4dElkKTsKKyAgICBVTlVTRURfUEFSQU0obW9kZSk7CisgICAg
VU5VU0VEX1BBUkFNKGZpbmlzaGVkV2l0aE1lZGlhKTsKKyNlbmRpZgorfQorCit2b2lkIFdLQnVu
ZGxlUGFnZVJlcXVlc3RWaWRlb0NvbnRlbnRMYXllcihXS0J1bmRsZVBhZ2VSZWYgcGFnZSwgdWlu
dDY0X3QgY29udGV4dElkKQoreworI2lmIEVOQUJMRShWSURFT19QUkVTRU5UQVRJT05fTU9ERSkK
KyAgICBXZWJLaXQ6OnRvSW1wbChwYWdlKS0+dmlkZW9GdWxsc2NyZWVuTWFuYWdlcigpLnJlcXVl
c3RWaWRlb0NvbnRlbnRMYXllcihjb250ZXh0SWQpOworI2Vsc2UKKyAgICBVTlVTRURfUEFSQU0o
cGFnZSk7CisgICAgVU5VU0VEX1BBUkFNKGNvbnRleHRJZCk7CisjZW5kaWYKK30KKwordm9pZCBX
S0J1bmRsZVBhZ2VEaWRTZXR1cFZpZGVvRnVsbHNjcmVlbihXS0J1bmRsZVBhZ2VSZWYgcGFnZSwg
dWludDY0X3QgY29udGV4dElkKQoreworI2lmIEVOQUJMRShWSURFT19QUkVTRU5UQVRJT05fTU9E
RSkKKyAgICBXZWJLaXQ6OnRvSW1wbChwYWdlKS0+dmlkZW9GdWxsc2NyZWVuTWFuYWdlcigpLmRp
ZFNldHVwRnVsbHNjcmVlbihjb250ZXh0SWQpOworI2Vsc2UKKyAgICBVTlVTRURfUEFSQU0ocGFn
ZSk7CisgICAgVU5VU0VEX1BBUkFNKGNvbnRleHRJZCk7CisjZW5kaWYKK30KKwordm9pZCBXS0J1
bmRsZVBhZ2VEaWRFbnRlclZpZGVvRnVsbHNjcmVlbihXS0J1bmRsZVBhZ2VSZWYgcGFnZSwgdWlu
dDY0X3QgY29udGV4dElkKQoreworI2lmIEVOQUJMRShWSURFT19QUkVTRU5UQVRJT05fTU9ERSkK
KyAgICBXZWJLaXQ6OnRvSW1wbChwYWdlKS0+dmlkZW9GdWxsc2NyZWVuTWFuYWdlcigpLmRpZEVu
dGVyRnVsbHNjcmVlbihjb250ZXh0SWQpOworI2Vsc2UKKyAgICBVTlVTRURfUEFSQU0ocGFnZSk7
CisgICAgVU5VU0VEX1BBUkFNKGNvbnRleHRJZCk7CisjZW5kaWYKK30KKwordm9pZCBXS0J1bmRs
ZVBhZ2VSZXR1cm5WaWRlb0NvbnRlbnRMYXllcihXS0J1bmRsZVBhZ2VSZWYgcGFnZSwgdWludDY0
X3QgY29udGV4dElkKQoreworI2lmIEVOQUJMRShWSURFT19QUkVTRU5UQVRJT05fTU9ERSkKKyAg
ICBXZWJLaXQ6OnRvSW1wbChwYWdlKS0+dmlkZW9GdWxsc2NyZWVuTWFuYWdlcigpLnJldHVyblZp
ZGVvQ29udGVudExheWVyKGNvbnRleHRJZCk7CisjZWxzZQorICAgIFVOVVNFRF9QQVJBTShwYWdl
KTsKKyAgICBVTlVTRURfUEFSQU0oY29udGV4dElkKTsKKyNlbmRpZgorfQorCit2b2lkIFdLQnVu
ZGxlUGFnZURpZEV4aXRWaWRlb0Z1bGxzY3JlZW4oV0tCdW5kbGVQYWdlUmVmIHBhZ2UsIHVpbnQ2
NF90IGNvbnRleHRJZCkKK3sKKyNpZiBFTkFCTEUoVklERU9fUFJFU0VOVEFUSU9OX01PREUpCisg
ICAgV2ViS2l0Ojp0b0ltcGwocGFnZSktPnZpZGVvRnVsbHNjcmVlbk1hbmFnZXIoKS5kaWRFeGl0
RnVsbHNjcmVlbihjb250ZXh0SWQpOworI2Vsc2UKKyAgICBVTlVTRURfUEFSQU0ocGFnZSk7Cisg
ICAgVU5VU0VEX1BBUkFNKGNvbnRleHRJZCk7CisjZW5kaWYKK30KKwordm9pZCBXS0J1bmRsZVBh
Z2VEaWRDbGVhbnVwVmlkZW9GdWxsc2NyZWVuKFdLQnVuZGxlUGFnZVJlZiBwYWdlLCB1aW50NjRf
dCBjb250ZXh0SWQpCit7CisjaWYgRU5BQkxFKFZJREVPX1BSRVNFTlRBVElPTl9NT0RFKQorICAg
IFdlYktpdDo6dG9JbXBsKHBhZ2UpLT52aWRlb0Z1bGxzY3JlZW5NYW5hZ2VyKCkuZGlkQ2xlYW51
cEZ1bGxzY3JlZW4oY29udGV4dElkKTsKKyNlbHNlCisgICAgVU5VU0VEX1BBUkFNKHBhZ2UpOwor
ICAgIFVOVVNFRF9QQVJBTShjb250ZXh0SWQpOworI2VuZGlmCit9CisKIFdLQnVuZGxlUGFnZUdy
b3VwUmVmIFdLQnVuZGxlUGFnZUdldFBhZ2VHcm91cChXS0J1bmRsZVBhZ2VSZWYgcGFnZVJlZikK
IHsKICAgICByZXR1cm4gdG9BUEkoV2ViS2l0Ojp0b0ltcGwocGFnZVJlZiktPnBhZ2VHcm91cCgp
KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9B
UEkvYy9XS0J1bmRsZVBhZ2UuaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1
bmRsZS9BUEkvYy9XS0J1bmRsZVBhZ2UuaAppbmRleCA0ZjgzYjhlZjBjODAyYmNjMWIzZDdiY2Y5
NDJjZWFlYTE0N2VhYWNmLi4zOGVhYTZhZmU3OGQ1ZmUzMmQ4MWViMjQ2MTVlYTRkNmNmMjFkODgx
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJ
L2MvV0tCdW5kbGVQYWdlLmgKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVk
QnVuZGxlL0FQSS9jL1dLQnVuZGxlUGFnZS5oCkBAIC0zNiw2ICszNiw3IEBACiAjaW5jbHVkZSA8
V2ViS2l0L1dLQnVuZGxlUGFnZVBvbGljeUNsaWVudC5oPgogI2luY2x1ZGUgPFdlYktpdC9XS0J1
bmRsZVBhZ2VSZXNvdXJjZUxvYWRDbGllbnQuaD4KICNpbmNsdWRlIDxXZWJLaXQvV0tCdW5kbGVQ
YWdlVUlDbGllbnQuaD4KKyNpbmNsdWRlIDxXZWJLaXQvV0tCdW5kbGVQYWdlVmlkZW9GdWxsc2Ny
ZWVuQ2xpZW50Lmg+CiAjaW5jbHVkZSA8V2ViS2l0L1dLRGVwcmVjYXRlZC5oPgogI2luY2x1ZGUg
PFdlYktpdC9XS0ZpbmRPcHRpb25zLmg+CiAjaW5jbHVkZSA8V2ViS2l0L1dLSW1hZ2UuaD4KQEAg
LTU1LDYgKzU2LDE0IEBAIFdLX0VYUE9SVCB2b2lkIFdLQnVuZGxlUGFnZURpZEVudGVyRnVsbFNj
cmVlbihXS0J1bmRsZVBhZ2VSZWYgcGFnZSk7CiBXS19FWFBPUlQgdm9pZCBXS0J1bmRsZVBhZ2VX
aWxsRXhpdEZ1bGxTY3JlZW4oV0tCdW5kbGVQYWdlUmVmIHBhZ2UpOwogV0tfRVhQT1JUIHZvaWQg
V0tCdW5kbGVQYWdlRGlkRXhpdEZ1bGxTY3JlZW4oV0tCdW5kbGVQYWdlUmVmIHBhZ2UpOwogCitX
S19FWFBPUlQgdm9pZCBXS0J1bmRsZVBhZ2VSZXF1ZXN0VmlkZW9GdWxsc2NyZWVuTW9kZShXS0J1
bmRsZVBhZ2VSZWYgcGFnZSwgdWludDY0X3QgY29udGV4dElkLCBXS1ZpZGVvRnVsbHNjcmVlbk1v
ZGUgbW9kZSwgYm9vbCBmaW5pc2hlZFdpdGhNZWRpYSk7CitXS19FWFBPUlQgdm9pZCBXS0J1bmRs
ZVBhZ2VSZXF1ZXN0VmlkZW9Db250ZW50TGF5ZXIoV0tCdW5kbGVQYWdlUmVmIHBhZ2UsIHVpbnQ2
NF90IGNvbnRleHRJZCk7CitXS19FWFBPUlQgdm9pZCBXS0J1bmRsZVBhZ2VSZXR1cm5WaWRlb0Nv
bnRlbnRMYXllcihXS0J1bmRsZVBhZ2VSZWYgcGFnZSwgdWludDY0X3QgY29udGV4dElkKTsKK1dL
X0VYUE9SVCB2b2lkIFdLQnVuZGxlUGFnZURpZFNldHVwVmlkZW9GdWxsc2NyZWVuKFdLQnVuZGxl
UGFnZVJlZiBwYWdlLCB1aW50NjRfdCBjb250ZXh0SWQpOworV0tfRVhQT1JUIHZvaWQgV0tCdW5k
bGVQYWdlRGlkRW50ZXJWaWRlb0Z1bGxzY3JlZW4oV0tCdW5kbGVQYWdlUmVmIHBhZ2UsIHVpbnQ2
NF90IGNvbnRleHRJZCk7CitXS19FWFBPUlQgdm9pZCBXS0J1bmRsZVBhZ2VEaWRFeGl0VmlkZW9G
dWxsc2NyZWVuKFdLQnVuZGxlUGFnZVJlZiBwYWdlLCB1aW50NjRfdCBjb250ZXh0SWQpOworV0tf
RVhQT1JUIHZvaWQgV0tCdW5kbGVQYWdlRGlkQ2xlYW51cFZpZGVvRnVsbHNjcmVlbihXS0J1bmRs
ZVBhZ2VSZWYgcGFnZSwgdWludDY0X3QgY29udGV4dElkKTsKKwogV0tfRVhQT1JUIFdLVHlwZUlE
IFdLQnVuZGxlUGFnZUdldFR5cGVJRCgpOwogCiBXS19FWFBPUlQgdm9pZCBXS0J1bmRsZVBhZ2VT
ZXRDb250ZXh0TWVudUNsaWVudChXS0J1bmRsZVBhZ2VSZWYgcGFnZSwgV0tCdW5kbGVQYWdlQ29u
dGV4dE1lbnVDbGllbnRCYXNlKiBjbGllbnQpOwpAQCAtNjUsNiArNzQsNyBAQCBXS19FWFBPUlQg
dm9pZCBXS0J1bmRsZVBhZ2VTZXRSZXNvdXJjZUxvYWRDbGllbnQoV0tCdW5kbGVQYWdlUmVmIHBh
Z2UsIFdLQnVuZGxlUAogV0tfRVhQT1JUIHZvaWQgV0tCdW5kbGVQYWdlU2V0UG9saWN5Q2xpZW50
KFdLQnVuZGxlUGFnZVJlZiBwYWdlLCBXS0J1bmRsZVBhZ2VQb2xpY3lDbGllbnRCYXNlKiBjbGll
bnQpOwogV0tfRVhQT1JUIHZvaWQgV0tCdW5kbGVQYWdlU2V0VUlDbGllbnQoV0tCdW5kbGVQYWdl
UmVmIHBhZ2UsIFdLQnVuZGxlUGFnZVVJQ2xpZW50QmFzZSogY2xpZW50KTsKIFdLX0VYUE9SVCB2
b2lkIFdLQnVuZGxlUGFnZVNldEZ1bGxTY3JlZW5DbGllbnQoV0tCdW5kbGVQYWdlUmVmIHBhZ2Us
IFdLQnVuZGxlUGFnZUZ1bGxTY3JlZW5DbGllbnRCYXNlKiBjbGllbnQpOworV0tfRVhQT1JUIHZv
aWQgV0tCdW5kbGVQYWdlU2V0VmlkZW9GdWxsc2NyZWVuQ2xpZW50KFdLQnVuZGxlUGFnZVJlZiBw
YWdlLCBXS0J1bmRsZVBhZ2VWaWRlb0Z1bGxzY3JlZW5DbGllbnRCYXNlKiBjbGllbnQpOwogCiBX
S19FWFBPUlQgV0tCdW5kbGVQYWdlR3JvdXBSZWYgV0tCdW5kbGVQYWdlR2V0UGFnZUdyb3VwKFdL
QnVuZGxlUGFnZVJlZiBwYWdlKTsKIFdLX0VYUE9SVCBXS0J1bmRsZUZyYW1lUmVmIFdLQnVuZGxl
UGFnZUdldE1haW5GcmFtZShXS0J1bmRsZVBhZ2VSZWYgcGFnZSk7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2MvV0tCdW5kbGVQYWdlVmlk
ZW9GdWxsc2NyZWVuQ2xpZW50LmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRC
dW5kbGUvQVBJL2MvV0tCdW5kbGVQYWdlVmlkZW9GdWxsc2NyZWVuQ2xpZW50LmgKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uMjAxZmQ1ZTY2Yjc5NWY3ZDA1MTVjMjM1YmQwNDUxYmFiNzBmNDFjZAotLS0gL2Rldi9udWxs
CisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvYy9XS0J1
bmRsZVBhZ2VWaWRlb0Z1bGxzY3JlZW5DbGllbnQuaApAQCAtMCwwICsxLDcwIEBACisvKgorICog
Q29weXJpZ2h0IChDKSAyMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisg
KiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRo
IG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0
IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0
aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1
Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRh
dGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlv
bi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElU
UyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBX
QVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVE
IFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VM
QVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElO
Qy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJ
UkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElB
TCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YK
KyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQ
Uk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQg
T04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJ
Q1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0Up
CisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwg
RVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisg
Ki8KKworI3ByYWdtYSBvbmNlCisKKyNpbmNsdWRlIDxXZWJLaXQvV0tCYXNlLmg+CisjaW5jbHVk
ZSA8V2ViS2l0L1dLR2VvbWV0cnkuaD4KKworZW51bSB7CisgICAgV0tWaWRlb0Z1bGxzY3JlZW5N
b2RlTm9uZSA9IDAsCisgICAgV0tWaWRlb0Z1bGxzY3JlZW5Nb2RlU3RhbmRhcmQgPSAxIDw8IDAs
CisgICAgV0tWaWRlb0Z1bGxzY3JlZW5Nb2RlUGljdHVyZUluUGljdHVyZSA9IDEgPDwgMSwKK307
Cit0eXBlZGVmIHVpbnQzMl90IFdLVmlkZW9GdWxsc2NyZWVuTW9kZTsKKwordHlwZWRlZiB2b2lk
ICgqV0tCdW5kbGVQYWdlU2V0SGFzVmlkZW8pKFdLQnVuZGxlUGFnZVJlZiBwYWdlLCB1aW50NjRf
dCBjb250ZXh0SWQsIGJvb2wgaGFzVmlkZW8pOwordHlwZWRlZiB2b2lkICgqV0tCdW5kbGVQYWdl
U2V0VmlkZW9EaW1lbnNpb25zKShXS0J1bmRsZVBhZ2VSZWYgcGFnZSwgdWludDY0X3QgY29udGV4
dElkLCBXS1NpemUgdmlkZW9EaW1lbnNpb25zKTsKK3R5cGVkZWYgdm9pZCAoKldLQnVuZGxlUGFn
ZVNldHVwVmlkZW9GdWxsc2NyZWVuV2l0aElEKShXS0J1bmRsZVBhZ2VSZWYgcGFnZSwgdWludDY0
X3QgY29udGV4dElkLCB1aW50MzJfdCB2aWRlb0xheWVySUQsIFdLUmVjdCBpbml0aWFsUmVjdCwg
ZmxvYXQgaG9zdGluZ1NjYWxlRmFjdG9yLCBXS1ZpZGVvRnVsbHNjcmVlbk1vZGUgdmlkZW9GdWxs
c2NyZWVuTW9kZSwgYm9vbCBhbGxvd3NQaWN0dXJlSW5QaWN0dXJlLCBib29sIHN0YW5kYnkpOwor
dHlwZWRlZiB2b2lkICgqV0tCdW5kbGVQYWdlRW50ZXJWaWRlb0Z1bGxzY3JlZW4pKFdLQnVuZGxl
UGFnZVJlZiBwYWdlLCB1aW50NjRfdCBjb250ZXh0SWQpOwordHlwZWRlZiB2b2lkICgqV0tCdW5k
bGVQYWdlRXhpdFZpZGVvRnVsbHNjcmVlbikoV0tCdW5kbGVQYWdlUmVmIHBhZ2UsIHVpbnQ2NF90
IGNvbnRleHRJZCwgV0tSZWN0IGZpbmFsUmVjdCk7Cit0eXBlZGVmIHZvaWQgKCpXS0J1bmRsZVBh
Z2VTZXRJbmxpbmVSZWN0KShXS0J1bmRsZVBhZ2VSZWYgcGFnZSwgdWludDY0X3QgY29udGV4dElk
LCBXS1JlY3QgaW5saW5lUmVjdCwgYm9vbCB2aXNpYmxlKTsKK3R5cGVkZWYgdm9pZCAoKldLQnVu
ZGxlUGFnZVNldEhhc1ZpZGVvQ29udGVudExheWVyKShXS0J1bmRsZVBhZ2VSZWYgcGFnZSwgdWlu
dDY0X3QgY29udGV4dElkLCBib29sIHZhbHVlKTsKK3R5cGVkZWYgdm9pZCAoKldLQnVuZGxlUGFn
ZUNsZWFudXBWaWRlb0Z1bGxzY3JlZW4pKFdLQnVuZGxlUGFnZVJlZiBwYWdlLCB1aW50NjRfdCBj
b250ZXh0SWQpOwordHlwZWRlZiB2b2lkICgqV0tCdW5kbGVQYWdlUHJlcGFyZWRUb1JldHVyblRv
SW5saW5lKShXS0J1bmRsZVBhZ2VSZWYgcGFnZSwgdWludDY0X3QgY29udGV4dElkLCBib29sIHZp
c2libGUsIFdLUmVjdCBpbmxpbmVSZWN0KTsKK3R5cGVkZWYgdm9pZCAoKldLQnVuZGxlUGFnZVBy
ZXBhcmVkVG9FeGl0VmlkZW9GdWxsc2NyZWVuKShXS0J1bmRsZVBhZ2VSZWYgcGFnZSwgdWludDY0
X3QgY29udGV4dElkKTsKK3R5cGVkZWYgdm9pZCAoKldLQnVuZGxlUGFnZUV4aXRWaWRlb0Z1bGxz
Y3JlZW5XaXRob3V0QW5pbWF0aW9uVG9Nb2RlKShXS0J1bmRsZVBhZ2VSZWYgcGFnZSwgdWludDY0
X3QgY29udGV4dElkLCBXS1ZpZGVvRnVsbHNjcmVlbk1vZGUgdmlkZW9GdWxsc2NyZWVuTW9kZSk7
CisKK3R5cGVkZWYgc3RydWN0IFdLQnVuZGxlUGFnZVZpZGVvRnVsbHNjcmVlbkNsaWVudEJhc2Ug
eworICAgIGludCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgdmVyc2lvbjsKKyAgICBjb25zdCB2b2lkICogICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsaWVudEluZm87Cit9
IFdLQnVuZGxlUGFnZVZpZGVvRnVsbHNjcmVlbkNsaWVudEJhc2U7CisKK3R5cGVkZWYgc3RydWN0
IFdLQnVuZGxlUGFnZVZpZGVvRnVsbHNjcmVlbkNsaWVudFYwIHsKKyAgICBXS0J1bmRsZVBhZ2VW
aWRlb0Z1bGxzY3JlZW5DbGllbnRCYXNlICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJh
c2U7CisKKyAgICAvLyBWZXJzaW9uIDAuCisgICAgV0tCdW5kbGVQYWdlU2V0SGFzVmlkZW8gICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZXRIYXNWaWRlbzsKKyAg
ICBXS0J1bmRsZVBhZ2VTZXRWaWRlb0RpbWVuc2lvbnMgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIHNldFZpZGVvRGltZW5zaW9uczsKKyAgICBXS0J1bmRsZVBhZ2VTZXR1cFZp
ZGVvRnVsbHNjcmVlbldpdGhJRCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNldHVwRnVs
bHNjcmVlbldpdGhJRDsKKyAgICBXS0J1bmRsZVBhZ2VFbnRlclZpZGVvRnVsbHNjcmVlbiAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVudGVyRnVsbHNjcmVlbjsKKyAgICBXS0J1
bmRsZVBhZ2VFeGl0VmlkZW9GdWxsc2NyZWVuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIGV4aXRGdWxsc2NyZWVuOworICAgIFdLQnVuZGxlUGFnZVNldElubGluZVJlY3QgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2V0SW5saW5lUmVjdDsKKyAg
ICBXS0J1bmRsZVBhZ2VTZXRIYXNWaWRlb0NvbnRlbnRMYXllciAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIHNldEhhc1ZpZGVvQ29udGVudExheWVyOworICAgIFdLQnVuZGxlUGFnZUNs
ZWFudXBWaWRlb0Z1bGxzY3JlZW4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xl
YW51cEZ1bGxzY3JlZW47CisgICAgV0tCdW5kbGVQYWdlUHJlcGFyZWRUb1JldHVyblRvSW5saW5l
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwcmVwYXJlZFRvUmV0cnVuVG9JbmxpbmU7
CisgICAgV0tCdW5kbGVQYWdlUHJlcGFyZWRUb0V4aXRWaWRlb0Z1bGxzY3JlZW4gICAgICAgICAg
ICAgICAgICAgICAgICAgICBwcmVwYXJlZFRvRXhpdEZ1bGxzY3JlZW47CisgICAgV0tCdW5kbGVQ
YWdlRXhpdFZpZGVvRnVsbHNjcmVlbldpdGhvdXRBbmltYXRpb25Ub01vZGUgICAgICAgICAgICAg
ICBleGl0RnVsbHNjcmVlbldpdGhvdXRBbmltYXRpb25Ub01vZGU7Cit9IFdLQnVuZGxlUGFnZVZp
ZGVvRnVsbHNjcmVlbkNsaWVudFYwOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL0luamVjdGVkQnVuZGxlL0luamVjdGVkQnVuZGxlUGFnZUZ1bGxTY3JlZW5DbGllbnQuY3Bw
IGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0luamVjdGVkQnVuZGxl
UGFnZUZ1bGxTY3JlZW5DbGllbnQuY3BwCmluZGV4IGY3MTNiNWE0MjNmYzc5ZWE2YzVmYjYwMjQz
ZTc2ODJmMDUwOWY2OWMuLjliNDgwMWY1NzYzYWMzZTU5YmViZWFlZGQyNTMzMzQ2NGE0NmRhOTMg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9Jbmpl
Y3RlZEJ1bmRsZVBhZ2VGdWxsU2NyZWVuQ2xpZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvSW5qZWN0ZWRCdW5kbGVQYWdlRnVsbFNjcmVlbkNsaWVu
dC5jcHAKQEAgLTI0LDExICsyNCwxMCBAQAogICovCiAKICNpbmNsdWRlICJjb25maWcuaCIKKyNp
bmNsdWRlICJJbmplY3RlZEJ1bmRsZVBhZ2VGdWxsU2NyZWVuQ2xpZW50LmgiCiAKICNpZiBFTkFC
TEUoRlVMTFNDUkVFTl9BUEkpCiAKLSNpbmNsdWRlICJJbmplY3RlZEJ1bmRsZVBhZ2VGdWxsU2Ny
ZWVuQ2xpZW50LmgiCi0KICNpbmNsdWRlICJJbmplY3RlZEJ1bmRsZU5vZGVIYW5kbGUuaCIKICNp
bmNsdWRlICJXS0FQSUNhc3QuaCIKICNpbmNsdWRlICJXS0J1bmRsZUFQSUNhc3QuaCIKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1
bmRsZVBhZ2VGdWxsU2NyZWVuQ2xpZW50LmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5q
ZWN0ZWRCdW5kbGUvSW5qZWN0ZWRCdW5kbGVQYWdlRnVsbFNjcmVlbkNsaWVudC5oCmluZGV4IDY1
NjNiNmM2ZGYzODMzNzlmYjhhYmYxMDlkN2U1OTg1NWE3YzkzOGIuLjRlY2RkMTFhNWQ1MGM0MWI4
ZTRlZmQwYzI2NWE5NGNjZTg1NGE1Y2MgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9JbmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZVBhZ2VGdWxsU2NyZWVuQ2xpZW50LmgK
KysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0luamVjdGVkQnVu
ZGxlUGFnZUZ1bGxTY3JlZW5DbGllbnQuaApAQCAtMjMsOCArMjMsNyBAQAogICogVEhFIFBPU1NJ
QklMSVRZIE9GIFNVQ0ggREFNQUdFLgogICovCiAKLSNpZm5kZWYgSW5qZWN0ZWRCdW5kbGVQYWdl
RnVsbFNjcmVlbkNsaWVudF9oCi0jZGVmaW5lIEluamVjdGVkQnVuZGxlUGFnZUZ1bGxTY3JlZW5D
bGllbnRfaAorI3ByYWdtYSBvbmNlCiAKICNpZiBFTkFCTEUoRlVMTFNDUkVFTl9BUEkpCiAKQEAg
LTYwLDUgKzU5LDMgQEAgcHVibGljOgogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CiAKICNlbmRpZiAv
LyBFTkFCTEUoRlVMTFNDUkVFTl9BUEkpCi0KLSNlbmRpZiAvLyBJbmplY3RlZEJ1bmRsZVBhZ2VG
dWxsU2NyZWVuQ2xpZW50X2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9J
bmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZVBhZ2VWaWRlb0Z1bGxzY3JlZW5DbGllbnQuY3Bw
IGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0luamVjdGVkQnVuZGxl
UGFnZVZpZGVvRnVsbHNjcmVlbkNsaWVudC5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uY2FhYTVmMTM3YzJlNDAy
ZWVlNWFiYzQwODk4MzdlMGI0YzJmY2VlZQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZVBhZ2VWaWRlb0Z1bGxz
Y3JlZW5DbGllbnQuY3BwCkBAIC0wLDAgKzEsMTM0IEBACisvKgorICogQ29weXJpZ2h0IChDKSAy
MDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlv
biBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAq
IG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcg
Y29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2Ug
Y29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBS
ZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNv
cHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3Ro
ZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElT
IFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMg
YGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0Yg
TUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0Ug
QVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRS
SUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRB
TCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUg
R09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJ
TkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBP
RiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBP
UiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElO
IEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VE
IE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUg
ImNvbmZpZy5oIgorI2luY2x1ZGUgIkluamVjdGVkQnVuZGxlUGFnZVZpZGVvRnVsbHNjcmVlbkNs
aWVudC5oIgorCisjaWYgRU5BQkxFKFZJREVPX1BSRVNFTlRBVElPTl9NT0RFKQorCisjaW5jbHVk
ZSAiVmlkZW9GdWxsc2NyZWVuTWFuYWdlclByb3h5TWVzc2FnZXMuaCIKKyNpbmNsdWRlICJXS0FQ
SUNhc3QuaCIKKyNpbmNsdWRlICJXS0J1bmRsZUFQSUNhc3QuaCIKKyNpbmNsdWRlICJXZWJDb3Jl
QXJndW1lbnRDb2RlcnMuaCIKKyNpbmNsdWRlICJXZWJQYWdlLmgiCisjaW5jbHVkZSA8V2ViQ29y
ZS9GbG9hdFNpemUuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL0ludFJlY3QuaD4KKworbmFtZXNwYWNl
IFdlYktpdCB7Cit1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKKwordm9pZCBJbmplY3RlZEJ1bmRs
ZVBhZ2VWaWRlb0Z1bGxzY3JlZW5DbGllbnQ6OnNldEhhc1ZpZGVvKFdlYlBhZ2UqIHBhZ2UsIHVp
bnQ2NF90IGNvbnRleHRJZCwgYm9vbCBoYXNWaWRlbykKK3sKKyAgICBpZiAobV9jbGllbnQuc2V0
SGFzVmlkZW8pCisgICAgICAgIG1fY2xpZW50LnNldEhhc1ZpZGVvKHRvQVBJKHBhZ2UpLCBjb250
ZXh0SWQsIGhhc1ZpZGVvKTsKKyAgICBlbHNlCisgICAgICAgIHBhZ2UtPnNlbmQoTWVzc2FnZXM6
OlZpZGVvRnVsbHNjcmVlbk1hbmFnZXJQcm94eTo6U2V0SGFzVmlkZW8oY29udGV4dElkLCBoYXNW
aWRlbykpOworfQorCit2b2lkIEluamVjdGVkQnVuZGxlUGFnZVZpZGVvRnVsbHNjcmVlbkNsaWVu
dDo6c2V0VmlkZW9EaW1lbnNpb25zKFdlYlBhZ2UqIHBhZ2UsIHVpbnQ2NF90IGNvbnRleHRJZCwg
RmxvYXRTaXplIHZpZGVvRGltZW5zaW9ucykKK3sKKyAgICBpZiAobV9jbGllbnQuc2V0VmlkZW9E
aW1lbnNpb25zKQorICAgICAgICBtX2NsaWVudC5zZXRWaWRlb0RpbWVuc2lvbnModG9BUEkocGFn
ZSksIGNvbnRleHRJZCwgdG9BUEkodmlkZW9EaW1lbnNpb25zKSk7CisgICAgZWxzZQorICAgICAg
ICBwYWdlLT5zZW5kKE1lc3NhZ2VzOjpWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyUHJveHk6OlNldFZp
ZGVvRGltZW5zaW9ucyhjb250ZXh0SWQsIHZpZGVvRGltZW5zaW9ucykpOworfQorCit2b2lkIElu
amVjdGVkQnVuZGxlUGFnZVZpZGVvRnVsbHNjcmVlbkNsaWVudDo6c2V0dXBGdWxsc2NyZWVuV2l0
aElEKFdlYlBhZ2UqIHBhZ2UsIHVpbnQ2NF90IGNvbnRleHRJZCwgdWludDMyX3QgdmlkZW9MYXll
cklkLCBJbnRSZWN0IGluaXRpYWxSZWN0LCBmbG9hdCBob3N0aW5nU2NhbGVGYWN0b3IsIEhUTUxN
ZWRpYUVsZW1lbnRFbnVtczo6VmlkZW9GdWxsc2NyZWVuTW9kZSB2aWRlb0Z1bGxzY3JlZW5Nb2Rl
LCBib29sIGFsbG93c1BpY3R1cmVJblBpY3R1cmUsIGJvb2wgc3RhbmRieSkKK3sKKyAgICBpZiAo
bV9jbGllbnQuc2V0dXBGdWxsc2NyZWVuV2l0aElEKQorICAgICAgICBtX2NsaWVudC5zZXR1cEZ1
bGxzY3JlZW5XaXRoSUQodG9BUEkocGFnZSksIGNvbnRleHRJZCwgdmlkZW9MYXllcklkLCB0b0FQ
SShpbml0aWFsUmVjdCksIGhvc3RpbmdTY2FsZUZhY3RvciwgdmlkZW9GdWxsc2NyZWVuTW9kZSwg
YWxsb3dzUGljdHVyZUluUGljdHVyZSwgc3RhbmRieSk7CisgICAgZWxzZQorICAgICAgICBwYWdl
LT5zZW5kKE1lc3NhZ2VzOjpWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyUHJveHk6OlNldHVwRnVsbHNj
cmVlbldpdGhJRChjb250ZXh0SWQsIHZpZGVvTGF5ZXJJZCwgaW5pdGlhbFJlY3QsIGhvc3RpbmdT
Y2FsZUZhY3RvciwgdmlkZW9GdWxsc2NyZWVuTW9kZSwgYWxsb3dzUGljdHVyZUluUGljdHVyZSwg
c3RhbmRieSkpOworfQorCit2b2lkIEluamVjdGVkQnVuZGxlUGFnZVZpZGVvRnVsbHNjcmVlbkNs
aWVudDo6ZW50ZXJGdWxsc2NyZWVuKFdlYlBhZ2UqIHBhZ2UsIHVpbnQ2NF90IGNvbnRleHRJZCkK
K3sKKyAgICBpZiAobV9jbGllbnQuZW50ZXJGdWxsc2NyZWVuKQorICAgICAgICBtX2NsaWVudC5l
bnRlckZ1bGxzY3JlZW4odG9BUEkocGFnZSksIGNvbnRleHRJZCk7CisgICAgZWxzZQorICAgICAg
ICBwYWdlLT5zZW5kKE1lc3NhZ2VzOjpWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyUHJveHk6OkVudGVy
RnVsbHNjcmVlbihjb250ZXh0SWQpKTsKK30KKwordm9pZCBJbmplY3RlZEJ1bmRsZVBhZ2VWaWRl
b0Z1bGxzY3JlZW5DbGllbnQ6OmV4aXRGdWxsc2NyZWVuKFdlYlBhZ2UqIHBhZ2UsIHVpbnQ2NF90
IGNvbnRleHRJZCwgSW50UmVjdCBmaW5hbFJlY3QpCit7CisgICAgaWYgKG1fY2xpZW50LmV4aXRG
dWxsc2NyZWVuKQorICAgICAgICBtX2NsaWVudC5leGl0RnVsbHNjcmVlbih0b0FQSShwYWdlKSwg
Y29udGV4dElkLCB0b0FQSShmaW5hbFJlY3QpKTsKKyAgICBlbHNlCisgICAgICAgIHBhZ2UtPnNl
bmQoTWVzc2FnZXM6OlZpZGVvRnVsbHNjcmVlbk1hbmFnZXJQcm94eTo6RXhpdEZ1bGxzY3JlZW4o
Y29udGV4dElkLCBmaW5hbFJlY3QpKTsKK30KKwordm9pZCBJbmplY3RlZEJ1bmRsZVBhZ2VWaWRl
b0Z1bGxzY3JlZW5DbGllbnQ6OnNldElubGluZVJlY3QoV2ViUGFnZSogcGFnZSwgdWludDY0X3Qg
Y29udGV4dElkLCBJbnRSZWN0IGlubGluZVJlY3QsIGJvb2wgdmlzaWJsZSkKK3sKKyAgICBpZiAo
bV9jbGllbnQuc2V0SW5saW5lUmVjdCkKKyAgICAgICAgbV9jbGllbnQuc2V0SW5saW5lUmVjdCh0
b0FQSShwYWdlKSwgY29udGV4dElkLCB0b0FQSShpbmxpbmVSZWN0KSwgdmlzaWJsZSk7CisgICAg
ZWxzZQorICAgICAgICBwYWdlLT5zZW5kKE1lc3NhZ2VzOjpWaWRlb0Z1bGxzY3JlZW5NYW5hZ2Vy
UHJveHk6OlNldElubGluZVJlY3QoY29udGV4dElkLCBpbmxpbmVSZWN0LCB2aXNpYmxlKSk7Cit9
CisKK3ZvaWQgSW5qZWN0ZWRCdW5kbGVQYWdlVmlkZW9GdWxsc2NyZWVuQ2xpZW50OjpzZXRIYXNW
aWRlb0NvbnRlbnRMYXllcihXZWJQYWdlKiBwYWdlLCB1aW50NjRfdCBjb250ZXh0SWQsIGJvb2wg
dmFsdWUpCit7CisgICAgaWYgKG1fY2xpZW50LnNldEhhc1ZpZGVvQ29udGVudExheWVyKQorICAg
ICAgICBtX2NsaWVudC5zZXRIYXNWaWRlb0NvbnRlbnRMYXllcih0b0FQSShwYWdlKSwgY29udGV4
dElkLCB2YWx1ZSk7CisgICAgZWxzZQorICAgICAgICBwYWdlLT5zZW5kKE1lc3NhZ2VzOjpWaWRl
b0Z1bGxzY3JlZW5NYW5hZ2VyUHJveHk6OlNldEhhc1ZpZGVvQ29udGVudExheWVyKGNvbnRleHRJ
ZCwgdmFsdWUpKTsKK30KKwordm9pZCBJbmplY3RlZEJ1bmRsZVBhZ2VWaWRlb0Z1bGxzY3JlZW5D
bGllbnQ6OmNsZWFudXBGdWxsc2NyZWVuKFdlYlBhZ2UqIHBhZ2UsIHVpbnQ2NF90IGNvbnRleHRJ
ZCkKK3sKKyAgICBpZiAobV9jbGllbnQuY2xlYW51cEZ1bGxzY3JlZW4pCisgICAgICAgIG1fY2xp
ZW50LmNsZWFudXBGdWxsc2NyZWVuKHRvQVBJKHBhZ2UpLCBjb250ZXh0SWQpOworICAgIGVsc2UK
KyAgICAgICAgcGFnZS0+c2VuZChNZXNzYWdlczo6VmlkZW9GdWxsc2NyZWVuTWFuYWdlclByb3h5
OjpDbGVhbnVwRnVsbHNjcmVlbihjb250ZXh0SWQpKTsKK30KKwordm9pZCBJbmplY3RlZEJ1bmRs
ZVBhZ2VWaWRlb0Z1bGxzY3JlZW5DbGllbnQ6OnByZXBhcmVkVG9SZXR1cm5Ub0lubGluZShXZWJQ
YWdlKiBwYWdlLCB1aW50NjRfdCBjb250ZXh0SWQsIGJvb2wgdmlzaWJsZSwgSW50UmVjdCBpbmxp
bmVSZWN0KQoreworICAgIGlmIChtX2NsaWVudC5wcmVwYXJlZFRvUmV0cnVuVG9JbmxpbmUpCisg
ICAgICAgIG1fY2xpZW50LnByZXBhcmVkVG9SZXRydW5Ub0lubGluZSh0b0FQSShwYWdlKSwgY29u
dGV4dElkLCB2aXNpYmxlLCB0b0FQSShpbmxpbmVSZWN0KSk7CisgICAgZWxzZQorICAgICAgICBw
YWdlLT5zZW5kKE1lc3NhZ2VzOjpWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyUHJveHk6OlByZXBhcmVk
VG9SZXR1cm5Ub0lubGluZShjb250ZXh0SWQsIHZpc2libGUsIGlubGluZVJlY3QpKTsKK30KKwor
dm9pZCBJbmplY3RlZEJ1bmRsZVBhZ2VWaWRlb0Z1bGxzY3JlZW5DbGllbnQ6OnByZXBhcmVkVG9F
eGl0RnVsbHNjcmVlbihXZWJQYWdlKiBwYWdlLCB1aW50NjRfdCBjb250ZXh0SWQpCit7CisgICAg
aWYgKG1fY2xpZW50LnByZXBhcmVkVG9FeGl0RnVsbHNjcmVlbikKKyAgICAgICAgbV9jbGllbnQu
cHJlcGFyZWRUb0V4aXRGdWxsc2NyZWVuKHRvQVBJKHBhZ2UpLCBjb250ZXh0SWQpOworICAgIGVs
c2UKKyAgICAgICAgcGFnZS0+c2VuZChNZXNzYWdlczo6VmlkZW9GdWxsc2NyZWVuTWFuYWdlclBy
b3h5OjpQcmVwYXJlZFRvRXhpdEZ1bGxzY3JlZW4oY29udGV4dElkKSk7Cit9CisKKyNpZiBQTEFU
Rk9STShNQUMpICYmIEVOQUJMRShWSURFT19QUkVTRU5UQVRJT05fTU9ERSkKK3ZvaWQgSW5qZWN0
ZWRCdW5kbGVQYWdlVmlkZW9GdWxsc2NyZWVuQ2xpZW50OjpleGl0RnVsbHNjcmVlbldpdGhvdXRB
bmltYXRpb25Ub01vZGUoV2ViUGFnZSogcGFnZSwgdWludDY0X3QgY29udGV4dElkLCBIVE1MTWVk
aWFFbGVtZW50RW51bXM6OlZpZGVvRnVsbHNjcmVlbk1vZGUgdmlkZW9GdWxsc2NyZWVuTW9kZSkK
K3sKKyAgICBpZiAobV9jbGllbnQuZXhpdEZ1bGxzY3JlZW5XaXRob3V0QW5pbWF0aW9uVG9Nb2Rl
KQorICAgICAgICBtX2NsaWVudC5leGl0RnVsbHNjcmVlbldpdGhvdXRBbmltYXRpb25Ub01vZGUo
dG9BUEkocGFnZSksIGNvbnRleHRJZCwgdmlkZW9GdWxsc2NyZWVuTW9kZSk7CisgICAgZWxzZQor
ICAgICAgICBwYWdlLT5zZW5kKE1lc3NhZ2VzOjpWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyUHJveHk6
OkV4aXRGdWxsc2NyZWVuV2l0aG91dEFuaW1hdGlvblRvTW9kZShjb250ZXh0SWQsIHZpZGVvRnVs
bHNjcmVlbk1vZGUpKTsKK30KKyNlbmRpZgorCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQKKworI2Vu
ZGlmIC8vIEVOQUJMRShWSURFT19QUkVTRU5UQVRJT05fTU9ERSkKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZVBhZ2VWaWRl
b0Z1bGxzY3JlZW5DbGllbnQuaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1
bmRsZS9JbmplY3RlZEJ1bmRsZVBhZ2VWaWRlb0Z1bGxzY3JlZW5DbGllbnQuaApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li5kMTkxZjYwNDE3YzI5Y2I3MGI0YjkyMWU5MTE5ZDE3N2QyZGQ3MThjCi0tLSAvZGV2L251bGwK
KysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0luamVjdGVkQnVu
ZGxlUGFnZVZpZGVvRnVsbHNjcmVlbkNsaWVudC5oCkBAIC0wLDAgKzEsNzAgQEAKKy8qCisgKiBD
b3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAq
IFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGgg
b3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQg
dGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRp
b25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVj
ZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0
aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9u
LgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRT
IENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdB
UlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQg
V0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxB
UgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5D
LiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElS
RUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFM
IERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgor
ICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBS
T0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBP
TiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklD
VCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkK
KyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBF
VkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAq
LworCisjcHJhZ21hIG9uY2UKKworI2lmIEVOQUJMRShWSURFT19QUkVTRU5UQVRJT05fTU9ERSkK
KworI2luY2x1ZGUgIkFQSUNsaWVudC5oIgorI2luY2x1ZGUgIldLQnVuZGxlUGFnZVZpZGVvRnVs
bHNjcmVlbkNsaWVudC5oIgorI2luY2x1ZGUgPFdlYkNvcmUvSFRNTE1lZGlhRWxlbWVudEVudW1z
Lmg+CisjaW5jbHVkZSA8d3RmL0ZvcndhcmQuaD4KKworbmFtZXNwYWNlIEFQSSB7Cit0ZW1wbGF0
ZTw+IHN0cnVjdCBDbGllbnRUcmFpdHM8V0tCdW5kbGVQYWdlVmlkZW9GdWxsc2NyZWVuQ2xpZW50
QmFzZT4geworICAgIHR5cGVkZWYgc3RkOjp0dXBsZTxXS0J1bmRsZVBhZ2VWaWRlb0Z1bGxzY3Jl
ZW5DbGllbnRWMD4gVmVyc2lvbnM7Cit9OworfQorCituYW1lc3BhY2UgV2ViQ29yZSB7CitjbGFz
cyBFbGVtZW50OworY2xhc3MgRmxvYXRTaXplOworY2xhc3MgSW50UmVjdDsKK30KKworbmFtZXNw
YWNlIFdlYktpdCB7CisKK2NsYXNzIFdlYlBhZ2U7CisKK2NsYXNzIEluamVjdGVkQnVuZGxlUGFn
ZVZpZGVvRnVsbHNjcmVlbkNsaWVudCA6IHB1YmxpYyBBUEk6OkNsaWVudDxXS0J1bmRsZVBhZ2VW
aWRlb0Z1bGxzY3JlZW5DbGllbnRCYXNlPiB7CitwdWJsaWM6CisgICAgdm9pZCBzZXRIYXNWaWRl
byhXZWJQYWdlKiwgdWludDY0X3QgY29udGV4dElkLCBib29sIGhhc1ZpZGVvKTsKKyAgICB2b2lk
IHNldFZpZGVvRGltZW5zaW9ucyhXZWJQYWdlKiwgdWludDY0X3QgY29udGV4dElkLCBXZWJDb3Jl
OjpGbG9hdFNpemUgdmlkZW9EaW1lbnNpb25zKTsKKyAgICB2b2lkIHNldHVwRnVsbHNjcmVlbldp
dGhJRChXZWJQYWdlKiwgdWludDY0X3QgY29udGV4dElkLCB1aW50MzJfdCB2aWRlb0xheWVySUQs
IFdlYkNvcmU6OkludFJlY3QgaW5pdGlhbFJlY3QsIGZsb2F0IGhvc3RpbmdTY2FsZUZhY3Rvciwg
V2ViQ29yZTo6SFRNTE1lZGlhRWxlbWVudEVudW1zOjpWaWRlb0Z1bGxzY3JlZW5Nb2RlLCBib29s
IGFsbG93c1BpY3R1cmVJblBpY3R1cmUsIGJvb2wgc3RhbmRieSk7CisgICAgdm9pZCBlbnRlckZ1
bGxzY3JlZW4oV2ViUGFnZSosIHVpbnQ2NF90IGNvbnRleHRJZCk7CisgICAgdm9pZCBleGl0RnVs
bHNjcmVlbihXZWJQYWdlKiwgdWludDY0X3QgY29udGV4dElkLCBXZWJDb3JlOjpJbnRSZWN0IGZp
bmFsUmVjdCk7CisgICAgdm9pZCBzZXRJbmxpbmVSZWN0KFdlYlBhZ2UqLCB1aW50NjRfdCBjb250
ZXh0SWQsIFdlYkNvcmU6OkludFJlY3QgaW5saW5lUmVjdCwgYm9vbCB2aXNpYmxlKTsKKyAgICB2
b2lkIHNldEhhc1ZpZGVvQ29udGVudExheWVyKFdlYlBhZ2UqLCB1aW50NjRfdCBjb250ZXh0SWQs
IGJvb2wgdmFsdWUpOworICAgIHZvaWQgY2xlYW51cEZ1bGxzY3JlZW4oV2ViUGFnZSosIHVpbnQ2
NF90IGNvbnRleHRJZCk7CisgICAgdm9pZCBwcmVwYXJlZFRvUmV0dXJuVG9JbmxpbmUoV2ViUGFn
ZSosIHVpbnQ2NF90IGNvbnRleHRJZCwgYm9vbCB2aXNpYmxlLCBXZWJDb3JlOjpJbnRSZWN0IGlu
bGluZVJlY3QpOworICAgIHZvaWQgcHJlcGFyZWRUb0V4aXRGdWxsc2NyZWVuKFdlYlBhZ2UqLCB1
aW50NjRfdCBjb250ZXh0SWQpOworI2lmIFBMQVRGT1JNKE1BQykgJiYgRU5BQkxFKFZJREVPX1BS
RVNFTlRBVElPTl9NT0RFKQorICAgIHZvaWQgZXhpdEZ1bGxzY3JlZW5XaXRob3V0QW5pbWF0aW9u
VG9Nb2RlKFdlYlBhZ2UqLCB1aW50NjRfdCBjb250ZXh0SWQsIFdlYkNvcmU6OkhUTUxNZWRpYUVs
ZW1lbnRFbnVtczo6VmlkZW9GdWxsc2NyZWVuTW9kZSk7CisjZW5kaWYKK307CisKK30gLy8gbmFt
ZXNwYWNlIFdlYktpdAorCisjZW5kaWYgLy8gUExBVEZPUk0oSU9TX0ZBTUlMWSkgfHwgKFBMQVRG
T1JNKE1BQykgJiYgRU5BQkxFKFZJREVPX1BSRVNFTlRBVElPTl9NT0RFKSkKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwIGIvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAKaW5kZXggNWI0Y2VmZjNlYWIyYmE3
ZDViNzhlMmExYzllNjMwYjJlN2ZkNTM4YS4uZDcyYTIxZjM2OWNiOGRlNGMyYjdjM2E4MzcxMzBk
MDc5NjE3ODRlYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2Uv
V2ViUGFnZS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFn
ZS5jcHAKQEAgLTk2OSw2ICs5NjksMTMgQEAgdm9pZCBXZWJQYWdlOjppbml0aWFsaXplSW5qZWN0
ZWRCdW5kbGVGdWxsU2NyZWVuQ2xpZW50KFdLQnVuZGxlUGFnZUZ1bGxTY3JlZW5DbGkKIH0KICNl
bmRpZgogCisjaWYgRU5BQkxFKFZJREVPX1BSRVNFTlRBVElPTl9NT0RFKQordm9pZCBXZWJQYWdl
Ojppbml0aWFsaXplSW5qZWN0ZWRCdW5kbGVWaWRlb0Z1bGxzY3JlZW5DbGllbnQoV0tCdW5kbGVQ
YWdlVmlkZW9GdWxsc2NyZWVuQ2xpZW50QmFzZSogY2xpZW50KQoreworICAgIG1fdmlkZW9GdWxs
c2NyZWVuQ2xpZW50LmluaXRpYWxpemUoY2xpZW50KTsKK30KKyNlbmRpZgorCiAjaWYgRU5BQkxF
KE5FVFNDQVBFX1BMVUdJTl9BUEkpCiAKIGNvbnN0ZXhwciBpbnQgc21hbGxQbHVnaW5EaW1lbnNp
b25UaHJlc2hvbGQgPSA1OwpAQCAtMTQxNCw2ICsxNDIxLDEwIEBAIHZvaWQgV2ViUGFnZTo6Y2xv
c2UoKQogICAgIG1fZnVsbFNjcmVlbkNsaWVudC5pbml0aWFsaXplKDApOwogI2VuZGlmCiAKKyNp
ZiBFTkFCTEUoVklERU9fUFJFU0VOVEFUSU9OX01PREUpCisgICAgbV92aWRlb0Z1bGxzY3JlZW5D
bGllbnQuaW5pdGlhbGl6ZSgwKTsKKyNlbmRpZgorCiAgICAgbV9wcmludENvbnRleHQgPSBudWxs
cHRyOwogICAgIG1fbWFpbkZyYW1lLT5jb3JlRnJhbWUoKS0+bG9hZGVyKCkuZGV0YWNoRnJvbVBh
cmVudCgpOwogICAgIG1fZHJhd2luZ0FyZWEgPSBudWxscHRyOwpAQCAtMzgzOSwyMCArMzg1MCwy
MyBAQCB2b2lkIFdlYlBhZ2U6Omluc3BlY3RvckZyb250ZW5kQ291bnRDaGFuZ2VkKHVuc2lnbmVk
IGNvdW50KQogICAgIHNlbmQoTWVzc2FnZXM6OldlYlBhZ2VQcm94eTo6RGlkQ2hhbmdlSW5zcGVj
dG9yRnJvbnRlbmRDb3VudChjb3VudCkpOwogfQogCi0jaWYgRU5BQkxFKFZJREVPX1BSRVNFTlRB
VElPTl9NT0RFKQorI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpIHx8IChQTEFURk9STShNQUMpICYm
IEVOQUJMRShWSURFT19QUkVTRU5UQVRJT05fTU9ERSkpCiBQbGF5YmFja1Nlc3Npb25NYW5hZ2Vy
JiBXZWJQYWdlOjpwbGF5YmFja1Nlc3Npb25NYW5hZ2VyKCkKIHsKICAgICBpZiAoIW1fcGxheWJh
Y2tTZXNzaW9uTWFuYWdlcikKICAgICAgICAgbV9wbGF5YmFja1Nlc3Npb25NYW5hZ2VyID0gUGxh
eWJhY2tTZXNzaW9uTWFuYWdlcjo6Y3JlYXRlKCp0aGlzKTsKICAgICByZXR1cm4gKm1fcGxheWJh
Y2tTZXNzaW9uTWFuYWdlcjsKIH0KKyNlbmRpZgogCisjaWYgRU5BQkxFKFZJREVPX1BSRVNFTlRB
VElPTl9NT0RFKQogVmlkZW9GdWxsc2NyZWVuTWFuYWdlciYgV2ViUGFnZTo6dmlkZW9GdWxsc2Ny
ZWVuTWFuYWdlcigpCiB7CiAgICAgaWYgKCFtX3ZpZGVvRnVsbHNjcmVlbk1hbmFnZXIpCiAgICAg
ICAgIG1fdmlkZW9GdWxsc2NyZWVuTWFuYWdlciA9IFZpZGVvRnVsbHNjcmVlbk1hbmFnZXI6OmNy
ZWF0ZSgqdGhpcywgcGxheWJhY2tTZXNzaW9uTWFuYWdlcigpKTsKICAgICByZXR1cm4gKm1fdmlk
ZW9GdWxsc2NyZWVuTWFuYWdlcjsKIH0KKyNlbmRpZgogCiB2b2lkIFdlYlBhZ2U6OnZpZGVvQ29u
dHJvbHNNYW5hZ2VyRGlkQ2hhbmdlKCkKIHsKQEAgLTM4NjIsOCArMzg3Niw2IEBAIHZvaWQgV2Vi
UGFnZTo6dmlkZW9Db250cm9sc01hbmFnZXJEaWRDaGFuZ2UoKQogI2VuZGlmCiB9CiAKLSNlbmRp
ZgotCiAjaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKIHZvaWQgV2ViUGFnZTo6c2V0QWxsb3dzTWVk
aWFEb2N1bWVudElubGluZVBsYXliYWNrKGJvb2wgYWxsb3dzKQogewpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5oIGIvU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5oCmluZGV4IDgyMjY1ZDRjMWFkOGNkMmNlZDdhYTcy
OWE5NTc5ZDZmMmIzNDhiNTguLmVjM2RhNmY1ZWQwYTBjYTkwZjRhNmQzNWM4YmM2MDY4MGZhM2Vi
ZDAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2Uu
aAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmgKQEAgLTQw
LDYgKzQwLDcgQEAKICNpbmNsdWRlICJJbmplY3RlZEJ1bmRsZVBhZ2VDb250ZXh0TWVudUNsaWVu
dC5oIgogI2luY2x1ZGUgIkluamVjdGVkQnVuZGxlUGFnZUZ1bGxTY3JlZW5DbGllbnQuaCIKICNp
bmNsdWRlICJJbmplY3RlZEJ1bmRsZVBhZ2VQb2xpY3lDbGllbnQuaCIKKyNpbmNsdWRlICJJbmpl
Y3RlZEJ1bmRsZVBhZ2VWaWRlb0Z1bGxzY3JlZW5DbGllbnQuaCIKICNpbmNsdWRlICJMYXllclRy
ZWVDb250ZXh0LmgiCiAjaW5jbHVkZSAiTWVzc2FnZVJlY2VpdmVyLmgiCiAjaW5jbHVkZSAiTWVz
c2FnZVNlbmRlci5oIgpAQCAtNDUzLDYgKzQ1NCwxMCBAQCBwdWJsaWM6CiAgICAgdm9pZCBpbml0
aWFsaXplSW5qZWN0ZWRCdW5kbGVGdWxsU2NyZWVuQ2xpZW50KFdLQnVuZGxlUGFnZUZ1bGxTY3Jl
ZW5DbGllbnRCYXNlKik7CiAjZW5kaWYKIAorI2lmIEVOQUJMRShWSURFT19QUkVTRU5UQVRJT05f
TU9ERSkKKyAgICB2b2lkIGluaXRpYWxpemVJbmplY3RlZEJ1bmRsZVZpZGVvRnVsbHNjcmVlbkNs
aWVudChXS0J1bmRsZVBhZ2VWaWRlb0Z1bGxzY3JlZW5DbGllbnRCYXNlKik7CisjZW5kaWYKKwog
I2lmIEVOQUJMRShDT05URVhUX01FTlVTKQogICAgIEFQSTo6SW5qZWN0ZWRCdW5kbGU6OlBhZ2VD
b250ZXh0TWVudUNsaWVudCYgaW5qZWN0ZWRCdW5kbGVDb250ZXh0TWVudUNsaWVudCgpIHsgcmV0
dXJuICptX2NvbnRleHRNZW51Q2xpZW50OyB9CiAjZW5kaWYKQEAgLTQ2Niw2ICs0NzEsMTAgQEAg
cHVibGljOgogICAgIEluamVjdGVkQnVuZGxlUGFnZUZ1bGxTY3JlZW5DbGllbnQmIGluamVjdGVk
QnVuZGxlRnVsbFNjcmVlbkNsaWVudCgpIHsgcmV0dXJuIG1fZnVsbFNjcmVlbkNsaWVudDsgfQog
I2VuZGlmCiAKKyNpZiBFTkFCTEUoVklERU9fUFJFU0VOVEFUSU9OX01PREUpCisgICAgSW5qZWN0
ZWRCdW5kbGVQYWdlVmlkZW9GdWxsc2NyZWVuQ2xpZW50JiBpbmplY3RlZEJ1bmRsZVZpZGVvRnVs
bHNjcmVlbkNsaWVudCgpIHsgcmV0dXJuIG1fdmlkZW9GdWxsc2NyZWVuQ2xpZW50OyB9CisjZW5k
aWYKKwogICAgIGJvb2wgZmluZFN0cmluZ0Zyb21JbmplY3RlZEJ1bmRsZShjb25zdCBTdHJpbmcm
LCBGaW5kT3B0aW9ucyk7CiAgICAgdm9pZCBmaW5kU3RyaW5nTWF0Y2hlc0Zyb21JbmplY3RlZEJ1
bmRsZShjb25zdCBTdHJpbmcmLCBGaW5kT3B0aW9ucyk7CiAgICAgdm9pZCByZXBsYWNlU3RyaW5n
TWF0Y2hlc0Zyb21JbmplY3RlZEJ1bmRsZShjb25zdCBWZWN0b3I8dWludDMyX3Q+JiBtYXRjaElu
ZGljZXMsIGNvbnN0IFN0cmluZyYgcmVwbGFjZW1lbnRUZXh0LCBib29sIHNlbGVjdGlvbk9ubHkp
OwpAQCAtMTg0MCw2ICsxODQ5LDEwIEBAIHByaXZhdGU6CiAgICAgSW5qZWN0ZWRCdW5kbGVQYWdl
RnVsbFNjcmVlbkNsaWVudCBtX2Z1bGxTY3JlZW5DbGllbnQ7CiAjZW5kaWYKIAorI2lmIEVOQUJM
RShWSURFT19QUkVTRU5UQVRJT05fTU9ERSkKKyAgICBJbmplY3RlZEJ1bmRsZVBhZ2VWaWRlb0Z1
bGxzY3JlZW5DbGllbnQgbV92aWRlb0Z1bGxzY3JlZW5DbGllbnQ7CisjZW5kaWYKKwogICAgIFVu
aXF1ZVJlZjxGaW5kQ29udHJvbGxlcj4gbV9maW5kQ29udHJvbGxlcjsKIAogICAgIFJlZlB0cjxX
ZWJJbnNwZWN0b3I+IG1faW5zcGVjdG9yOwpAQCAtMTg0Nyw4ICsxODYwLDExIEBAIHByaXZhdGU6
CiAgICAgUmVmUHRyPFJlbW90ZVdlYkluc3BlY3RvclVJPiBtX3JlbW90ZUluc3BlY3RvclVJOwog
ICAgIHN0ZDo6dW5pcXVlX3B0cjxXZWJQYWdlSW5zcGVjdG9yVGFyZ2V0Q29udHJvbGxlcj4gbV9p
bnNwZWN0b3JUYXJnZXRDb250cm9sbGVyOwogCi0jaWYgRU5BQkxFKFZJREVPX1BSRVNFTlRBVElP
Tl9NT0RFKQorI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpIHx8IChQTEFURk9STShNQUMpICYmIEVO
QUJMRShWSURFT19QUkVTRU5UQVRJT05fTU9ERSkpCiAgICAgUmVmUHRyPFBsYXliYWNrU2Vzc2lv
bk1hbmFnZXI+IG1fcGxheWJhY2tTZXNzaW9uTWFuYWdlcjsKKyNlbmRpZgorCisjaWYgRU5BQkxF
KFZJREVPX1BSRVNFTlRBVElPTl9NT0RFKQogICAgIFJlZlB0cjxWaWRlb0Z1bGxzY3JlZW5NYW5h
Z2VyPiBtX3ZpZGVvRnVsbHNjcmVlbk1hbmFnZXI7CiAjZW5kaWYKIApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL2NvY29hL1ZpZGVvRnVsbHNjcmVlbk1hbmFnZXIuaCBiL1Nv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9jb2NvYS9WaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyLmgKaW5k
ZXggZjEzNmVjYjlkZDNlYWNlZmFkZDk3NGJkY2RiZDQyY2FlZmY2MjdjZi4uY2NjMGFjZWE2ZWJk
OWIzZDVjZTY0ZmVhZGY3MWE2MzIyMjY3Y2ZiYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL2NvY29hL1ZpZGVvRnVsbHNjcmVlbk1hbmFnZXIuaAorKysgYi9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvY29jb2EvVmlkZW9GdWxsc2NyZWVuTWFuYWdlci5oCkBAIC0xMjIsNiAr
MTIyLDE1IEBAIHB1YmxpYzoKICAgICB2b2lkIGV4aXRWaWRlb0Z1bGxzY3JlZW5Gb3JWaWRlb0Vs
ZW1lbnQoV2ViQ29yZTo6SFRNTFZpZGVvRWxlbWVudCYpOwogICAgIHZvaWQgZXhpdFZpZGVvRnVs
bHNjcmVlblRvTW9kZVdpdGhvdXRBbmltYXRpb24oV2ViQ29yZTo6SFRNTFZpZGVvRWxlbWVudCYs
IFdlYkNvcmU6OkhUTUxNZWRpYUVsZW1lbnRFbnVtczo6VmlkZW9GdWxsc2NyZWVuTW9kZSk7CiAK
KyAgICAvLyBNZXNzYWdlcyBmcm9tIFZpZGVvRnVsbHNjcmVlbk1hbmFnZXJQcm94eQorICAgIHZv
aWQgcmVxdWVzdEZ1bGxzY3JlZW5Nb2RlKHVpbnQ2NF90IGNvbnRleHRJZCwgV2ViQ29yZTo6SFRN
TE1lZGlhRWxlbWVudEVudW1zOjpWaWRlb0Z1bGxzY3JlZW5Nb2RlLCBib29sIGZpbmlzaGVkV2l0
aE1lZGlhKTsKKyAgICB2b2lkIHJlcXVlc3RWaWRlb0NvbnRlbnRMYXllcih1aW50NjRfdCBjb250
ZXh0SWQpOworICAgIHZvaWQgcmV0dXJuVmlkZW9Db250ZW50TGF5ZXIodWludDY0X3QgY29udGV4
dElkKTsKKyAgICB2b2lkIGRpZFNldHVwRnVsbHNjcmVlbih1aW50NjRfdCBjb250ZXh0SWQpOwor
ICAgIHZvaWQgZGlkRW50ZXJGdWxsc2NyZWVuKHVpbnQ2NF90IGNvbnRleHRJZCk7CisgICAgdm9p
ZCBkaWRFeGl0RnVsbHNjcmVlbih1aW50NjRfdCBjb250ZXh0SWQpOworICAgIHZvaWQgZGlkQ2xl
YW51cEZ1bGxzY3JlZW4odWludDY0X3QgY29udGV4dElkKTsKKwogcHJvdGVjdGVkOgogICAgIGZy
aWVuZCBjbGFzcyBWaWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2VDb250ZXh0OwogCkBAIC0xNDEsMTUg
KzE1MCw5IEBAIHByb3RlY3RlZDoKICAgICB2b2lkIHZpZGVvRGltZW5zaW9uc0NoYW5nZWQodWlu
dDY0X3QgY29udGV4dElkLCBjb25zdCBXZWJDb3JlOjpGbG9hdFNpemUmKTsKIAogICAgIC8vIE1l
c3NhZ2VzIGZyb20gVmlkZW9GdWxsc2NyZWVuTWFuYWdlclByb3h5Ci0gICAgdm9pZCByZXF1ZXN0
RnVsbHNjcmVlbk1vZGUodWludDY0X3QgY29udGV4dElkLCBXZWJDb3JlOjpIVE1MTWVkaWFFbGVt
ZW50RW51bXM6OlZpZGVvRnVsbHNjcmVlbk1vZGUsIGJvb2wgZmluaXNoZWRXaXRoTWVkaWEpOwog
ICAgIHZvaWQgcmVxdWVzdFVwZGF0ZUlubGluZVJlY3QodWludDY0X3QgY29udGV4dElkKTsKLSAg
ICB2b2lkIHJlcXVlc3RWaWRlb0NvbnRlbnRMYXllcih1aW50NjRfdCBjb250ZXh0SWQpOwotICAg
IHZvaWQgcmV0dXJuVmlkZW9Db250ZW50TGF5ZXIodWludDY0X3QgY29udGV4dElkKTsKLSAgICB2
b2lkIGRpZFNldHVwRnVsbHNjcmVlbih1aW50NjRfdCBjb250ZXh0SWQpOwogICAgIHZvaWQgd2ls
bEV4aXRGdWxsc2NyZWVuKHVpbnQ2NF90IGNvbnRleHRJZCk7Ci0gICAgdm9pZCBkaWRFeGl0RnVs
bHNjcmVlbih1aW50NjRfdCBjb250ZXh0SWQpOwotICAgIHZvaWQgZGlkRW50ZXJGdWxsc2NyZWVu
KHVpbnQ2NF90IGNvbnRleHRJZCk7Ci0gICAgdm9pZCBkaWRDbGVhbnVwRnVsbHNjcmVlbih1aW50
NjRfdCBjb250ZXh0SWQpOworCiAgICAgdm9pZCBzZXRWaWRlb0xheWVyRnJhbWVGZW5jZWQodWlu
dDY0X3QgY29udGV4dElkLCBXZWJDb3JlOjpGbG9hdFJlY3QgYm91bmRzLCBJUEM6OkF0dGFjaG1l
bnQgZmVuY2VQb3J0KTsKICAgICB2b2lkIHNldFZpZGVvTGF5ZXJHcmF2aXR5RW51bSh1aW50NjRf
dCBjb250ZXh0SWQsIHVuc2lnbmVkIGdyYXZpdHkpOwogICAgIHZvaWQgZnVsbHNjcmVlbk1vZGVD
aGFuZ2VkKHVpbnQ2NF90IGNvbnRleHRJZCwgV2ViQ29yZTo6SFRNTE1lZGlhRWxlbWVudEVudW1z
OjpWaWRlb0Z1bGxzY3JlZW5Nb2RlKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9jb2NvYS9WaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyLm1tIGIvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL2NvY29hL1ZpZGVvRnVsbHNjcmVlbk1hbmFnZXIubW0KaW5kZXggZmY0YTJkM2U5MTZi
NTAwMmY2N2YzOWZmN2U5ZTExODU5YjM2N2U0NS4uYmY2ZDhkN2JkN2Q5YmI1NzQwZTM3MGJkMzEz
YjQyNTc0ODYyYTFmNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL2NvY29h
L1ZpZGVvRnVsbHNjcmVlbk1hbmFnZXIubW0KKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L2NvY29hL1ZpZGVvRnVsbHNjcmVlbk1hbmFnZXIubW0KQEAgLTI4NSw3ICsyODUsNyBAQCB2b2lk
IFZpZGVvRnVsbHNjcmVlbk1hbmFnZXI6OmVudGVyVmlkZW9GdWxsc2NyZWVuRm9yVmlkZW9FbGVt
ZW50KEhUTUxWaWRlb0VsZW1lbgogICAgICAgICBpbnRlcmZhY2UtPmxheWVySG9zdGluZ0NvbnRl
eHQoKS0+c2V0Um9vdExheWVyKHZpZGVvTGF5ZXIuZ2V0KCkpOwogICAgIH0KIAotICAgIG1fcGFn
ZS0+c2VuZChNZXNzYWdlczo6VmlkZW9GdWxsc2NyZWVuTWFuYWdlclByb3h5OjpTZXR1cEZ1bGxz
Y3JlZW5XaXRoSUQoY29udGV4dElkLCBpbnRlcmZhY2UtPmxheWVySG9zdGluZ0NvbnRleHQoKS0+
Y29udGV4dElEKCksIHZpZGVvUmVjdCwgbV9wYWdlLT5kZXZpY2VTY2FsZUZhY3RvcigpLCBpbnRl
cmZhY2UtPmZ1bGxzY3JlZW5Nb2RlKCksIGFsbG93c1BpY3R1cmVJblBpY3R1cmUsIHN0YW5kYnkp
KTsKKyAgICBtX3BhZ2UtPmluamVjdGVkQnVuZGxlVmlkZW9GdWxsc2NyZWVuQ2xpZW50KCkuc2V0
dXBGdWxsc2NyZWVuV2l0aElEKG1fcGFnZSwgY29udGV4dElkLCBpbnRlcmZhY2UtPmxheWVySG9z
dGluZ0NvbnRleHQoKS0+Y29udGV4dElEKCksIHZpZGVvUmVjdCwgbV9wYWdlLT5kZXZpY2VTY2Fs
ZUZhY3RvcigpLCBpbnRlcmZhY2UtPmZ1bGxzY3JlZW5Nb2RlKCksIGFsbG93c1BpY3R1cmVJblBp
Y3R1cmUsIHN0YW5kYnkpOwogfQogCiB2b2lkIFZpZGVvRnVsbHNjcmVlbk1hbmFnZXI6OmV4aXRW
aWRlb0Z1bGxzY3JlZW5Gb3JWaWRlb0VsZW1lbnQoV2ViQ29yZTo6SFRNTFZpZGVvRWxlbWVudCYg
dmlkZW9FbGVtZW50KQpAQCAtMzAxLDcgKzMwMSw3IEBAIHZvaWQgVmlkZW9GdWxsc2NyZWVuTWFu
YWdlcjo6ZXhpdFZpZGVvRnVsbHNjcmVlbkZvclZpZGVvRWxlbWVudChXZWJDb3JlOjpIVE1MVmlk
CiAgICAgICAgIHJldHVybjsKIAogICAgIGludGVyZmFjZS5zZXRBbmltYXRpb25TdGF0ZShWaWRl
b0Z1bGxzY3JlZW5JbnRlcmZhY2VDb250ZXh0OjpBbmltYXRpb25UeXBlOjpGcm9tRnVsbHNjcmVl
bik7Ci0gICAgbV9wYWdlLT5zZW5kKE1lc3NhZ2VzOjpWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyUHJv
eHk6OkV4aXRGdWxsc2NyZWVuKGNvbnRleHRJZCwgaW5saW5lVmlkZW9GcmFtZSh2aWRlb0VsZW1l
bnQpKSk7CisgICAgbV9wYWdlLT5pbmplY3RlZEJ1bmRsZVZpZGVvRnVsbHNjcmVlbkNsaWVudCgp
LmV4aXRGdWxsc2NyZWVuKG1fcGFnZSwgY29udGV4dElkLCBpbmxpbmVWaWRlb0ZyYW1lKHZpZGVv
RWxlbWVudCkpOwogfQogCiB2b2lkIFZpZGVvRnVsbHNjcmVlbk1hbmFnZXI6OmV4aXRWaWRlb0Z1
bGxzY3JlZW5Ub01vZGVXaXRob3V0QW5pbWF0aW9uKFdlYkNvcmU6OkhUTUxWaWRlb0VsZW1lbnQm
IHZpZGVvRWxlbWVudCwgV2ViQ29yZTo6SFRNTE1lZGlhRWxlbWVudEVudW1zOjpWaWRlb0Z1bGxz
Y3JlZW5Nb2RlIHRhcmdldE1vZGUpCkBAIC0zMTcsNyArMzE3LDcgQEAgdm9pZCBWaWRlb0Z1bGxz
Y3JlZW5NYW5hZ2VyOjpleGl0VmlkZW9GdWxsc2NyZWVuVG9Nb2RlV2l0aG91dEFuaW1hdGlvbihX
ZWJDb3JlOjoKIAogICAgIGludGVyZmFjZS5zZXRUYXJnZXRJc0Z1bGxzY3JlZW4oZmFsc2UpOwog
Ci0gICAgbV9wYWdlLT5zZW5kKE1lc3NhZ2VzOjpWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyUHJveHk6
OkV4aXRGdWxsc2NyZWVuV2l0aG91dEFuaW1hdGlvblRvTW9kZShjb250ZXh0SWQsIHRhcmdldE1v
ZGUpKTsKKyAgICBtX3BhZ2UtPmluamVjdGVkQnVuZGxlVmlkZW9GdWxsc2NyZWVuQ2xpZW50KCku
ZXhpdEZ1bGxzY3JlZW5XaXRob3V0QW5pbWF0aW9uVG9Nb2RlKG1fcGFnZSwgY29udGV4dElkLCB0
YXJnZXRNb2RlKTsKICNlbHNlCiAgICAgVU5VU0VEX1BBUkFNKHZpZGVvRWxlbWVudCk7CiAgICAg
VU5VU0VEX1BBUkFNKHRhcmdldE1vZGUpOwpAQCAtMzI5LDEzICszMjksMTMgQEAgdm9pZCBWaWRl
b0Z1bGxzY3JlZW5NYW5hZ2VyOjpleGl0VmlkZW9GdWxsc2NyZWVuVG9Nb2RlV2l0aG91dEFuaW1h
dGlvbihXZWJDb3JlOjoKIHZvaWQgVmlkZW9GdWxsc2NyZWVuTWFuYWdlcjo6aGFzVmlkZW9DaGFu
Z2VkKHVpbnQ2NF90IGNvbnRleHRJZCwgYm9vbCBoYXNWaWRlbykKIHsKICAgICBpZiAobV9wYWdl
KQotICAgICAgICBtX3BhZ2UtPnNlbmQoTWVzc2FnZXM6OlZpZGVvRnVsbHNjcmVlbk1hbmFnZXJQ
cm94eTo6U2V0SGFzVmlkZW8oY29udGV4dElkLCBoYXNWaWRlbykpOworICAgICAgICBtX3BhZ2Ut
PmluamVjdGVkQnVuZGxlVmlkZW9GdWxsc2NyZWVuQ2xpZW50KCkuc2V0SGFzVmlkZW8obV9wYWdl
LCBjb250ZXh0SWQsIGhhc1ZpZGVvKTsKIH0KIAogdm9pZCBWaWRlb0Z1bGxzY3JlZW5NYW5hZ2Vy
Ojp2aWRlb0RpbWVuc2lvbnNDaGFuZ2VkKHVpbnQ2NF90IGNvbnRleHRJZCwgY29uc3QgRmxvYXRT
aXplJiB2aWRlb0RpbWVuc2lvbnMpCiB7CiAgICAgaWYgKG1fcGFnZSkKLSAgICAgICAgbV9wYWdl
LT5zZW5kKE1lc3NhZ2VzOjpWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyUHJveHk6OlNldFZpZGVvRGlt
ZW5zaW9ucyhjb250ZXh0SWQsIHZpZGVvRGltZW5zaW9ucykpOworICAgICAgICBtX3BhZ2UtPmlu
amVjdGVkQnVuZGxlVmlkZW9GdWxsc2NyZWVuQ2xpZW50KCkuc2V0VmlkZW9EaW1lbnNpb25zKG1f
cGFnZSwgY29udGV4dElkLCB2aWRlb0RpbWVuc2lvbnMpOwogfQogCiAjcHJhZ21hIG1hcmsgTWVz
c2FnZXMgZnJvbSBWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyUHJveHk6CkBAIC0zNTcsNyArMzU3LDcg
QEAgdm9pZCBWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyOjpyZXF1ZXN0VXBkYXRlSW5saW5lUmVjdCh1
aW50NjRfdCBjb250ZXh0SWQpCiAKICAgICBhdXRvJiBtb2RlbCA9IGVuc3VyZU1vZGVsKGNvbnRl
eHRJZCk7CiAgICAgSW50UmVjdCBpbmxpbmVSZWN0ID0gaW5saW5lVmlkZW9GcmFtZSgqbW9kZWwu
dmlkZW9FbGVtZW50KCkpOwotICAgIG1fcGFnZS0+c2VuZChNZXNzYWdlczo6VmlkZW9GdWxsc2Ny
ZWVuTWFuYWdlclByb3h5OjpTZXRJbmxpbmVSZWN0KGNvbnRleHRJZCwgaW5saW5lUmVjdCwgaW5s
aW5lUmVjdCAhPSBJbnRSZWN0KDAsIDAsIDAsIDApKSk7CisgICAgbV9wYWdlLT5pbmplY3RlZEJ1
bmRsZVZpZGVvRnVsbHNjcmVlbkNsaWVudCgpLnNldElubGluZVJlY3QobV9wYWdlLCBjb250ZXh0
SWQsIGlubGluZVJlY3QsIGlubGluZVJlY3QgIT0gSW50UmVjdCgwLCAwLCAwLCAwKSk7CiB9CiAK
IHZvaWQgVmlkZW9GdWxsc2NyZWVuTWFuYWdlcjo6cmVxdWVzdFZpZGVvQ29udGVudExheWVyKHVp
bnQ2NF90IGNvbnRleHRJZCkKQEAgLTM2OCw4ICszNjgsOCBAQCB2b2lkIFZpZGVvRnVsbHNjcmVl
bk1hbmFnZXI6OnJlcXVlc3RWaWRlb0NvbnRlbnRMYXllcih1aW50NjRfdCBjb250ZXh0SWQpCiAK
ICAgICBtb2RlbC0+c2V0VmlkZW9GdWxsc2NyZWVuTGF5ZXIodmlkZW9MYXllciwgW3Byb3RlY3Rl
ZFRoaXMgPSBtYWtlUmVmUHRyKHRoaXMpLCB0aGlzLCBjb250ZXh0SWRdICgpIG11dGFibGUgewog
ICAgICAgICBkaXNwYXRjaF9hc3luYyhkaXNwYXRjaF9nZXRfbWFpbl9xdWV1ZSgpLCBbcHJvdGVj
dGVkVGhpcyA9IFdURk1vdmUocHJvdGVjdGVkVGhpcyksIHRoaXMsIGNvbnRleHRJZF0gewotICAg
ICAgICAgICAgaWYgKHByb3RlY3RlZFRoaXMtPm1fcGFnZSkKLSAgICAgICAgICAgICAgICBtX3Bh
Z2UtPnNlbmQoTWVzc2FnZXM6OlZpZGVvRnVsbHNjcmVlbk1hbmFnZXJQcm94eTo6U2V0SGFzVmlk
ZW9Db250ZW50TGF5ZXIoY29udGV4dElkLCB0cnVlKSk7CisgICAgICAgICAgICBpZiAobV9wYWdl
KQorICAgICAgICAgICAgICAgIG1fcGFnZS0+aW5qZWN0ZWRCdW5kbGVWaWRlb0Z1bGxzY3JlZW5D
bGllbnQoKS5zZXRIYXNWaWRlb0NvbnRlbnRMYXllcihtX3BhZ2UsIGNvbnRleHRJZCwgdHJ1ZSk7
CiAgICAgICAgIH0pOwogICAgIH0pOwogfQpAQCAtMzg0LDggKzM4NCw4IEBAIHZvaWQgVmlkZW9G
dWxsc2NyZWVuTWFuYWdlcjo6cmV0dXJuVmlkZW9Db250ZW50TGF5ZXIodWludDY0X3QgY29udGV4
dElkKQogICAgICAgICBkaXNwYXRjaF9hc3luYyhkaXNwYXRjaF9nZXRfbWFpbl9xdWV1ZSgpLCBb
cHJvdGVjdGVkVGhpcyA9IFdURk1vdmUocHJvdGVjdGVkVGhpcyksIHRoaXMsIGNvbnRleHRJZCwg
bW9kZWxdICgpIG11dGFibGUgewogICAgICAgICAgICAgbW9kZWwtPnNldFZpZGVvRnVsbHNjcmVl
bkxheWVyKG5pbCwgW3Byb3RlY3RlZFRoaXMgPSBXVEZNb3ZlKHByb3RlY3RlZFRoaXMpLCB0aGlz
LCBjb250ZXh0SWRdICgpIG11dGFibGUgewogICAgICAgICAgICAgICAgIGRpc3BhdGNoX2FzeW5j
KGRpc3BhdGNoX2dldF9tYWluX3F1ZXVlKCksIFtwcm90ZWN0ZWRUaGlzID0gV1RGTW92ZShwcm90
ZWN0ZWRUaGlzKSwgdGhpcywgY29udGV4dElkXSB7Ci0gICAgICAgICAgICAgICAgICAgIGlmIChw
cm90ZWN0ZWRUaGlzLT5tX3BhZ2UpCi0gICAgICAgICAgICAgICAgICAgICAgICBtX3BhZ2UtPnNl
bmQoTWVzc2FnZXM6OlZpZGVvRnVsbHNjcmVlbk1hbmFnZXJQcm94eTo6U2V0SGFzVmlkZW9Db250
ZW50TGF5ZXIoY29udGV4dElkLCBmYWxzZSkpOworICAgICAgICAgICAgICAgICAgICBpZiAobV9w
YWdlKQorICAgICAgICAgICAgICAgICAgICAgICAgbV9wYWdlLT5pbmplY3RlZEJ1bmRsZVZpZGVv
RnVsbHNjcmVlbkNsaWVudCgpLnNldEhhc1ZpZGVvQ29udGVudExheWVyKG1fcGFnZSwgY29udGV4
dElkLCBmYWxzZSk7CiAgICAgICAgICAgICAgICAgfSk7CiAgICAgICAgICAgICB9KTsKICAgICAg
ICAgfSk7CkBAIC00MDksOCArNDA5LDggQEAgdm9pZCBWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyOjpk
aWRTZXR1cEZ1bGxzY3JlZW4odWludDY0X3QgY29udGV4dElkKQogCiAgICAgbW9kZWwtPnNldFZp
ZGVvRnVsbHNjcmVlbkxheWVyKHZpZGVvTGF5ZXIsIFtwcm90ZWN0ZWRUaGlzID0gbWFrZVJlZlB0
cih0aGlzKSwgdGhpcywgY29udGV4dElkXSAoKSBtdXRhYmxlIHsKICAgICAgICAgZGlzcGF0Y2hf
YXN5bmMoZGlzcGF0Y2hfZ2V0X21haW5fcXVldWUoKSwgW3Byb3RlY3RlZFRoaXMgPSBXVEZNb3Zl
KHByb3RlY3RlZFRoaXMpLCB0aGlzLCBjb250ZXh0SWRdIHsKLSAgICAgICAgICAgIGlmIChwcm90
ZWN0ZWRUaGlzLT5tX3BhZ2UpCi0gICAgICAgICAgICAgICAgbV9wYWdlLT5zZW5kKE1lc3NhZ2Vz
OjpWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyUHJveHk6OkVudGVyRnVsbHNjcmVlbihjb250ZXh0SWQp
KTsKKyAgICAgICAgICAgIGlmIChtX3BhZ2UpCisgICAgICAgICAgICAgICAgbV9wYWdlLT5pbmpl
Y3RlZEJ1bmRsZVZpZGVvRnVsbHNjcmVlbkNsaWVudCgpLmVudGVyRnVsbHNjcmVlbihtX3BhZ2Us
IGNvbnRleHRJZCk7CiAgICAgICAgIH0pOwogICAgIH0pOwogI2VuZGlmCkBAIC00MjYsMTAgKzQy
NiwxMCBAQCB2b2lkIFZpZGVvRnVsbHNjcmVlbk1hbmFnZXI6OndpbGxFeGl0RnVsbHNjcmVlbih1
aW50NjRfdCBjb250ZXh0SWQpCiAgICAgaWYgKCF2aWRlb0VsZW1lbnQpCiAgICAgICAgIHJldHVy
bjsKIAotICAgIGRpc3BhdGNoX2FzeW5jKGRpc3BhdGNoX2dldF9tYWluX3F1ZXVlKCksIFtwcm90
ZWN0ZWRUaGlzID0gbWFrZVJlZlB0cih0aGlzKSwgdmlkZW9FbGVtZW50ID0gV1RGTW92ZSh2aWRl
b0VsZW1lbnQpLCBjb250ZXh0SWRdIHsKKyAgICBkaXNwYXRjaF9hc3luYyhkaXNwYXRjaF9nZXRf
bWFpbl9xdWV1ZSgpLCBbcHJvdGVjdGVkVGhpcyA9IG1ha2VSZWZQdHIodGhpcyksIHRoaXMsIHZp
ZGVvRWxlbWVudCA9IFdURk1vdmUodmlkZW9FbGVtZW50KSwgY29udGV4dElkXSB7CiAgICAgICAg
IHZpZGVvRWxlbWVudC0+d2lsbEV4aXRGdWxsc2NyZWVuKCk7Ci0gICAgICAgIGlmIChwcm90ZWN0
ZWRUaGlzLT5tX3BhZ2UpCi0gICAgICAgICAgICBwcm90ZWN0ZWRUaGlzLT5tX3BhZ2UtPnNlbmQo
TWVzc2FnZXM6OlZpZGVvRnVsbHNjcmVlbk1hbmFnZXJQcm94eTo6UHJlcGFyZWRUb0V4aXRGdWxs
c2NyZWVuKGNvbnRleHRJZCkpOworICAgICAgICBpZiAobV9wYWdlKQorICAgICAgICAgICAgbV9w
YWdlLT5pbmplY3RlZEJ1bmRsZVZpZGVvRnVsbHNjcmVlbkNsaWVudCgpLnByZXBhcmVkVG9FeGl0
RnVsbHNjcmVlbihtX3BhZ2UsIGNvbnRleHRJZCk7CiAgICAgfSk7CiB9CiAKQEAgLTQ1NCw5ICs0
NTQsOSBAQCB2b2lkIFZpZGVvRnVsbHNjcmVlbk1hbmFnZXI6OmRpZEVudGVyRnVsbHNjcmVlbih1
aW50NjRfdCBjb250ZXh0SWQpCiAgICAgICAgIHJldHVybjsKIAogICAgIC8vIGV4aXQgZnVsbHNj
cmVlbiBub3cgaWYgaXQgd2FzIHByZXZpb3VzbHkgcmVxdWVzdGVkIGR1cmluZyBhbiBhbmltYXRp
b24uCi0gICAgZGlzcGF0Y2hfYXN5bmMoZGlzcGF0Y2hfZ2V0X21haW5fcXVldWUoKSwgW3Byb3Rl
Y3RlZFRoaXMgPSBtYWtlUmVmUHRyKHRoaXMpLCB2aWRlb0VsZW1lbnRdIHsKLSAgICAgICAgaWYg
KHByb3RlY3RlZFRoaXMtPm1fcGFnZSkKLSAgICAgICAgICAgIHByb3RlY3RlZFRoaXMtPmV4aXRW
aWRlb0Z1bGxzY3JlZW5Gb3JWaWRlb0VsZW1lbnQoKnZpZGVvRWxlbWVudCk7CisgICAgZGlzcGF0
Y2hfYXN5bmMoZGlzcGF0Y2hfZ2V0X21haW5fcXVldWUoKSwgW3Byb3RlY3RlZFRoaXMgPSBtYWtl
UmVmUHRyKHRoaXMpLCB0aGlzLCB2aWRlb0VsZW1lbnRdIHsKKyAgICAgICAgaWYgKG1fcGFnZSkK
KyAgICAgICAgICAgIGV4aXRWaWRlb0Z1bGxzY3JlZW5Gb3JWaWRlb0VsZW1lbnQoKnZpZGVvRWxl
bWVudCk7CiAgICAgfSk7CiB9CiAKQEAgLTQ2OSw5ICs0NjksOSBAQCB2b2lkIFZpZGVvRnVsbHNj
cmVlbk1hbmFnZXI6OmRpZEV4aXRGdWxsc2NyZWVuKHVpbnQ2NF90IGNvbnRleHRJZCkKICAgICBz
dGQ6OnRpZShtb2RlbCwgaW50ZXJmYWNlKSA9IGVuc3VyZU1vZGVsQW5kSW50ZXJmYWNlKGNvbnRl
eHRJZCk7CiAKICNpZiBQTEFURk9STShJT1NfRkFNSUxZKQotICAgIGRpc3BhdGNoX2FzeW5jKGRp
c3BhdGNoX2dldF9tYWluX3F1ZXVlKCksIFtwcm90ZWN0ZWRUaGlzID0gbWFrZVJlZlB0cih0aGlz
KSwgY29udGV4dElkLCBpbnRlcmZhY2VdIHsKLSAgICAgICAgaWYgKHByb3RlY3RlZFRoaXMtPm1f
cGFnZSkKLSAgICAgICAgICAgIHByb3RlY3RlZFRoaXMtPm1fcGFnZS0+c2VuZChNZXNzYWdlczo6
VmlkZW9GdWxsc2NyZWVuTWFuYWdlclByb3h5OjpDbGVhbnVwRnVsbHNjcmVlbihjb250ZXh0SWQp
KTsKKyAgICBkaXNwYXRjaF9hc3luYyhkaXNwYXRjaF9nZXRfbWFpbl9xdWV1ZSgpLCBbcHJvdGVj
dGVkVGhpcyA9IG1ha2VSZWZQdHIodGhpcyksIHRoaXMsIGNvbnRleHRJZCwgaW50ZXJmYWNlXSB7
CisgICAgICAgIGlmIChtX3BhZ2UpCisgICAgICAgICAgICBtX3BhZ2UtPmluamVjdGVkQnVuZGxl
VmlkZW9GdWxsc2NyZWVuQ2xpZW50KCkuY2VhbnVwRnVsbHNjcmVlbihjb250ZXh0SWQpOwogICAg
IH0pOwogI2Vsc2UKICAgICBtb2RlbC0+d2FpdEZvclByZXBhcmVkRm9ySW5saW5lVGhlbihbcHJv
dGVjdGVkVGhpcyA9IG1ha2VSZWZQdHIodGhpcyksIGNvbnRleHRJZCwgaW50ZXJmYWNlLCBtb2Rl
bF0gKCkgbXV0YWJsZSB7CkBAIC00ODMsMTQgKzQ4MywxNCBAQCB2b2lkIFZpZGVvRnVsbHNjcmVl
bk1hbmFnZXI6OmRpZEV4aXRGdWxsc2NyZWVuKHVpbnQ2NF90IGNvbnRleHRJZCkKICAgICAgICAg
ICAgICAgICAgICAgICAgIGludGVyZmFjZS0+c2V0TGF5ZXJIb3N0aW5nQ29udGV4dChudWxscHRy
KTsKICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICBpZiAocHJvdGVj
dGVkVGhpcy0+bV9wYWdlKQotICAgICAgICAgICAgICAgICAgICAgICAgcHJvdGVjdGVkVGhpcy0+
bV9wYWdlLT5zZW5kKE1lc3NhZ2VzOjpWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyUHJveHk6OkNsZWFu
dXBGdWxsc2NyZWVuKGNvbnRleHRJZCkpOworICAgICAgICAgICAgICAgICAgICAgICAgcHJvdGVj
dGVkVGhpcy0+bV9wYWdlLT5pbmplY3RlZEJ1bmRsZVZpZGVvRnVsbHNjcmVlbkNsaWVudCgpLmNs
ZWFudXBGdWxsc2NyZWVuKHByb3RlY3RlZFRoaXMtPm1fcGFnZSwgY29udGV4dElkKTsKICAgICAg
ICAgICAgICAgICB9KTsKICAgICAgICAgICAgIH0pOwogICAgICAgICB9KTsKICAgICB9KTsKICNl
bmRpZgogfQotICAgIAorCiB2b2lkIFZpZGVvRnVsbHNjcmVlbk1hbmFnZXI6OmRpZENsZWFudXBG
dWxsc2NyZWVuKHVpbnQ2NF90IGNvbnRleHRJZCkKIHsKICAgICBMT0coRnVsbHNjcmVlbiwgIlZp
ZGVvRnVsbHNjcmVlbk1hbmFnZXI6OmRpZENsZWFudXBGdWxsc2NyZWVuKCVwLCAleCkiLCB0aGlz
LCBjb250ZXh0SWQpOwpAQCAtNTE4LDkgKzUxOCw5IEBAIHZvaWQgVmlkZW9GdWxsc2NyZWVuTWFu
YWdlcjo6ZGlkQ2xlYW51cEZ1bGxzY3JlZW4odWludDY0X3QgY29udGV4dElkKQogICAgIGlmICgh
dmlkZW9FbGVtZW50IHx8ICF0YXJnZXRJc0Z1bGxzY3JlZW4pCiAgICAgICAgIHJldHVybjsKIAot
ICAgIGRpc3BhdGNoX2FzeW5jKGRpc3BhdGNoX2dldF9tYWluX3F1ZXVlKCksIFtwcm90ZWN0ZWRU
aGlzID0gbWFrZVJlZlB0cih0aGlzKSwgdmlkZW9FbGVtZW50LCBtb2RlLCBzdGFuZGJ5XSB7Ci0g
ICAgICAgIGlmIChwcm90ZWN0ZWRUaGlzLT5tX3BhZ2UpCi0gICAgICAgICAgICBwcm90ZWN0ZWRU
aGlzLT5lbnRlclZpZGVvRnVsbHNjcmVlbkZvclZpZGVvRWxlbWVudCgqdmlkZW9FbGVtZW50LCBt
b2RlLCBzdGFuZGJ5KTsKKyAgICBkaXNwYXRjaF9hc3luYyhkaXNwYXRjaF9nZXRfbWFpbl9xdWV1
ZSgpLCBbcHJvdGVjdGVkVGhpcyA9IG1ha2VSZWZQdHIodGhpcyksIHRoaXMsIHZpZGVvRWxlbWVu
dCwgbW9kZSwgc3RhbmRieV0geworICAgICAgICBpZiAobV9wYWdlKQorICAgICAgICAgICAgZW50
ZXJWaWRlb0Z1bGxzY3JlZW5Gb3JWaWRlb0VsZW1lbnQoKnZpZGVvRWxlbWVudCwgbW9kZSwgc3Rh
bmRieSk7CiAgICAgfSk7CiB9CiAgICAgCkBAIC01MzgsNyArNTM4LDcgQEAgdm9pZCBWaWRlb0Z1
bGxzY3JlZW5NYW5hZ2VyOjpmdWxsc2NyZWVuTWF5UmV0dXJuVG9JbmxpbmUodWludDY0X3QgY29u
dGV4dElkLCBib28KIAogICAgIGlmICghaXNQYWdlVmlzaWJsZSkKICAgICAgICAgbW9kZWwudmlk
ZW9FbGVtZW50KCktPnNjcm9sbEludG9WaWV3SWZOb3RWaXNpYmxlKGZhbHNlKTsKLSAgICBtX3Bh
Z2UtPnNlbmQoTWVzc2FnZXM6OlZpZGVvRnVsbHNjcmVlbk1hbmFnZXJQcm94eTo6UHJlcGFyZWRU
b1JldHVyblRvSW5saW5lKGNvbnRleHRJZCwgdHJ1ZSwgaW5saW5lVmlkZW9GcmFtZSgqbW9kZWwu
dmlkZW9FbGVtZW50KCkpKSk7CisgICAgbV9wYWdlLT5pbmplY3RlZEJ1bmRsZVZpZGVvRnVsbHNj
cmVlbkNsaWVudCgpLnByZXBhcmVkVG9SZXR1cm5Ub0lubGluZShtX3BhZ2UsIGNvbnRleHRJZCwg
dHJ1ZSwgaW5saW5lVmlkZW9GcmFtZSgqbW9kZWwudmlkZW9FbGVtZW50KCkpKTsKIH0KIAogdm9p
ZCBWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyOjpyZXF1ZXN0Um91dGVTaGFyaW5nUG9saWN5QW5kQ29u
dGV4dFVJRCh1aW50NjRfdCBjb250ZXh0SWQsIE1lc3NhZ2VzOjpWaWRlb0Z1bGxzY3JlZW5NYW5h
Z2VyOjpSZXF1ZXN0Um91dGVTaGFyaW5nUG9saWN5QW5kQ29udGV4dFVJRDo6QXN5bmNSZXBseSYm
IHJlcGx5KQpkaWZmIC0tZ2l0IGEvVG9vbHMvQ2hhbmdlTG9nIGIvVG9vbHMvQ2hhbmdlTG9nCmlu
ZGV4IDNiNTE4YzVjMjFjNTBhNjM0ZGNkYjAzOTNhMjg0MzljNGRmZWVmNGIuLmIwNTA0MzE3Y2Zm
NzVkYmI2OTEwNjE2NTAxMDYyODRiNWM5MmY4NWUgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0NoYW5nZUxv
ZworKysgYi9Ub29scy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwzMSBAQAorMjAyMC0wNC0xNyAgUGVu
ZyBMaXUgIDxwZW5nLmxpdTZAYXBwbGUuY29tPgorCisgICAgICAgIFVwZGF0ZSBXZWJLaXRUZXN0
UnVubmVyIHRvIHN1cHBvcnQgcnVubmluZyBtdWx0aXBsZSB2aWRlbyBmdWxsc2NyZWVuIGFuZCBQ
aWN0dXJlLWluLVBpY3R1cmUgdGVzdHMgc2ltdWx0YW5lb3VzbHkKKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIwMzcyMworCisgICAgICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkZCBhbiBpbmplY3RlZCBidW5kbGUgY2xp
ZW50IG9mIHZpZGVvIGZ1bGxzY3JlZW4gaW4gV2ViS2l0VGVzdFJ1bm5lciB0byBtb2NrIHRoZSBi
ZWhhdmlvcgorICAgICAgICBvZiB0aGUgdmlkZW8gZnVsbHNjcmVlbiBhbmQgcGljdHVyZS1pbi1w
aWN0dXJlIGltcGxlbWVudGF0aW9uIGluIHRoZSBVSSBwcm9jZXNzLgorICAgICAgICBXaXRoIHRo
aXMgcGF0Y2gsIHdlIGNhbiB0ZXN0IHRoZSB2aWRlbyBmdWxsc2NyZWVuIGFuZCBwaWN0dXJlLWlu
LXBpY3R1cmUgaW1wbGVtZW50YXRpb24gaW4KKyAgICAgICAgdGhlIFdlYiBwcm9jZXNzIHdpdGhv
dXQgdGhlIGludm9sdmVtZW50IG9mIHRoZSBVSSBwcm9jZXNzIHNpZGUgaW1wbGVtZW50YXRpb24u
IFNvIHRoYXQKKyAgICAgICAgd2UgY2FuIHJ1biBtdWx0aXBsZSB2aWRlbyBmdWxsc2NyZWVuIGFu
ZCBwaWN0dXJlLWluLXBpY3R1cmUgdGVzdHMgaW4gcGFyYWxsZWwuCisKKyAgICAgICAgKiBXZWJL
aXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0luamVjdGVkQnVuZGxlUGFnZS5jcHA6CisgICAg
ICAgIChXVFI6OkluamVjdGVkQnVuZGxlUGFnZTo6SW5qZWN0ZWRCdW5kbGVQYWdlKToKKyAgICAg
ICAgKFdUUjo6SW5qZWN0ZWRCdW5kbGVQYWdlOjpzZXRIYXNWaWRlbyk6CisgICAgICAgIChXVFI6
OkluamVjdGVkQnVuZGxlUGFnZTo6c2V0VmlkZW9EaW1lbnNpb25zKToKKyAgICAgICAgKFdUUjo6
SW5qZWN0ZWRCdW5kbGVQYWdlOjpzZXR1cEZ1bGxzY3JlZW5XaXRoSUQpOgorICAgICAgICAoV1RS
OjpJbmplY3RlZEJ1bmRsZVBhZ2U6OmVudGVyRnVsbHNjcmVlbik6CisgICAgICAgIChXVFI6Oklu
amVjdGVkQnVuZGxlUGFnZTo6ZXhpdEZ1bGxzY3JlZW4pOgorICAgICAgICAoV1RSOjpJbmplY3Rl
ZEJ1bmRsZVBhZ2U6OnNldElubGluZVJlY3QpOgorICAgICAgICAoV1RSOjpJbmplY3RlZEJ1bmRs
ZVBhZ2U6OnNldEhhc1ZpZGVvQ29udGVudExheWVyKToKKyAgICAgICAgKFdUUjo6SW5qZWN0ZWRC
dW5kbGVQYWdlOjpjbGVhbnVwRnVsbHNjcmVlbik6CisgICAgICAgIChXVFI6OkluamVjdGVkQnVu
ZGxlUGFnZTo6cHJlcGFyZWRUb1JldHVyblRvSW5saW5lKToKKyAgICAgICAgKFdUUjo6SW5qZWN0
ZWRCdW5kbGVQYWdlOjpwcmVwYXJlZFRvRXhpdEZ1bGxzY3JlZW4pOgorICAgICAgICAoV1RSOjpJ
bmplY3RlZEJ1bmRsZVBhZ2U6OmV4aXRGdWxsc2NyZWVuV2l0aG91dEFuaW1hdGlvblRvTW9kZSk6
CisgICAgICAgICogV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRs
ZVBhZ2UuaDoKKwogMjAyMC0wNC0xNyAgQnJlbnQgRnVsZ2hhbSAgPGJmdWxnaGFtQGFwcGxlLmNv
bT4KIAogICAgICAgICBVbnJldmlld2VkIGJ1aWxkIGZpeCBhZnRlciByMjYwMjY5LgpkaWZmIC0t
Z2l0IGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRs
ZVBhZ2UuY3BwIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9JbmplY3Rl
ZEJ1bmRsZVBhZ2UuY3BwCmluZGV4IDQwYzQ1YTc5MTU1MDY5MWVmZmZhNmE0ZDFjMzdjNDkzMWIw
NGVkODIuLjdjYTQ4YTc4ZjY0ZWI4ZWZhNTNkNzBjYmQzMDIzOGE2Yjk0ZjY5NmMgMTAwNjQ0Ci0t
LSBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvSW5qZWN0ZWRCdW5kbGVQ
YWdlLmNwcAorKysgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0luamVj
dGVkQnVuZGxlUGFnZS5jcHAKQEAgLTM5MCw2ICszOTAsMjggQEAgSW5qZWN0ZWRCdW5kbGVQYWdl
OjpJbmplY3RlZEJ1bmRsZVBhZ2UoV0tCdW5kbGVQYWdlUmVmIHBhZ2UpCiAgICAgfTsKICAgICBX
S0J1bmRsZVBhZ2VTZXRGdWxsU2NyZWVuQ2xpZW50KG1fcGFnZSwgJmZ1bGxTY3JlZW5DbGllbnQu
YmFzZSk7CiAjZW5kaWYKKworI2lmIEVOQUJMRShWSURFT19QUkVTRU5UQVRJT05fTU9ERSkKKyAg
ICBXS0J1bmRsZVBhZ2VWaWRlb0Z1bGxzY3JlZW5DbGllbnRWMCB2aWRlb0Z1bGxzY3JlZW5DbGll
bnQgPSB7CisgICAgICAgIHsgMCwgdGhpcyB9LAorICAgICAgICBzZXRIYXNWaWRlbywKKyAgICAg
ICAgc2V0VmlkZW9EaW1lbnNpb25zLAorICAgICAgICBzZXR1cEZ1bGxzY3JlZW5XaXRoSUQsCisg
ICAgICAgIGVudGVyRnVsbHNjcmVlbiwKKyAgICAgICAgZXhpdEZ1bGxzY3JlZW4sCisgICAgICAg
IHNldElubGluZVJlY3QsCisgICAgICAgIHNldEhhc1ZpZGVvQ29udGVudExheWVyLAorICAgICAg
ICBjbGVhbnVwRnVsbHNjcmVlbiwKKyAgICAgICAgcHJlcGFyZWRUb1JldHVyblRvSW5saW5lLAor
ICAgICAgICBwcmVwYXJlZFRvRXhpdEZ1bGxzY3JlZW4sCisjaWYgUExBVEZPUk0oTUFDKQorICAg
ICAgICBleGl0RnVsbHNjcmVlbldpdGhvdXRBbmltYXRpb25Ub01vZGUKKyNlbHNlCisgICAgICAg
IDAsIC8qIGV4aXRGdWxsc2NyZWVuV2l0aG91dEFuaW1hdGlvblRvTW9kZSAqLworI2VuZGlmCisg
ICAgfTsKKyAgICBXS0J1bmRsZVBhZ2VTZXRWaWRlb0Z1bGxzY3JlZW5DbGllbnQobV9wYWdlLCAm
dmlkZW9GdWxsc2NyZWVuQ2xpZW50LmJhc2UpOworI2VuZGlmIC8vIEVOQUJMRShWSURFT19QUkVT
RU5UQVRJT05fTU9ERSkKIH0KIAogSW5qZWN0ZWRCdW5kbGVQYWdlOjp+SW5qZWN0ZWRCdW5kbGVQ
YWdlKCkKQEAgLTE5MzIsNiArMTk1NCwxMzAgQEAgdm9pZCBJbmplY3RlZEJ1bmRsZVBhZ2U6OmNs
b3NlRnVsbFNjcmVlbihXS0J1bmRsZVBhZ2VSZWYgcGFnZVJlZikKIH0KICNlbmRpZgogCisjaWYg
RU5BQkxFKFZJREVPX1BSRVNFTlRBVElPTl9NT0RFKQorCit2b2lkIEluamVjdGVkQnVuZGxlUGFn
ZTo6c2V0SGFzVmlkZW8oV0tCdW5kbGVQYWdlUmVmLCB1aW50NjRfdCBjb250ZXh0SWQsIGJvb2wg
aGFzVmlkZW8pCit7CisgICAgVU5VU0VEX1BBUkFNKGNvbnRleHRJZCk7CisgICAgVU5VU0VEX1BB
UkFNKGhhc1ZpZGVvKTsKKworICAgIGF1dG8mIGluamVjdGVkQnVuZGxlID0gSW5qZWN0ZWRCdW5k
bGU6OnNpbmdsZXRvbigpOworICAgIGlmIChpbmplY3RlZEJ1bmRsZS50ZXN0UnVubmVyKCktPnNo
b3VsZER1bXBGdWxsU2NyZWVuQ2FsbGJhY2tzKCkpCisgICAgICAgIGluamVjdGVkQnVuZGxlLm91
dHB1dFRleHQoInNldEhhc1ZpZGVvKClcbiIpOworfQorCit2b2lkIEluamVjdGVkQnVuZGxlUGFn
ZTo6c2V0VmlkZW9EaW1lbnNpb25zKFdLQnVuZGxlUGFnZVJlZiwgdWludDY0X3QgY29udGV4dElk
LCBXS1NpemUgdmlkZW9EaW1lbnNpb25zKQoreworICAgIFVOVVNFRF9QQVJBTShjb250ZXh0SWQp
OworICAgIFVOVVNFRF9QQVJBTSh2aWRlb0RpbWVuc2lvbnMpOworCisgICAgYXV0byYgaW5qZWN0
ZWRCdW5kbGUgPSBJbmplY3RlZEJ1bmRsZTo6c2luZ2xldG9uKCk7CisgICAgaWYgKGluamVjdGVk
QnVuZGxlLnRlc3RSdW5uZXIoKS0+c2hvdWxkRHVtcEZ1bGxTY3JlZW5DYWxsYmFja3MoKSkKKyAg
ICAgICAgaW5qZWN0ZWRCdW5kbGUub3V0cHV0VGV4dCgic2V0VmlkZW9EaW1lbnNpb25zKClcbiIp
OworfQorCit2b2lkIEluamVjdGVkQnVuZGxlUGFnZTo6c2V0dXBGdWxsc2NyZWVuV2l0aElEKFdL
QnVuZGxlUGFnZVJlZiBwYWdlLCB1aW50NjRfdCBjb250ZXh0SWQsIHVpbnQzMl90IHZpZGVvTGF5
ZXJJZCwgV0tSZWN0IGluaXRpYWxSZWN0LCBmbG9hdCBob3N0aW5nU2NhbGVGYWN0b3IsIFdLVmlk
ZW9GdWxsc2NyZWVuTW9kZSB2aWRlb0Z1bGxzY3JlZW5Nb2RlLCBib29sIGFsbG93c1BpY3R1cmVJ
blBpY3R1cmUsIGJvb2wgc3RhbmRieSkKK3sKKyAgICBVTlVTRURfUEFSQU0odmlkZW9MYXllcklk
KTsKKyAgICBVTlVTRURfUEFSQU0oaW5pdGlhbFJlY3QpOworICAgIFVOVVNFRF9QQVJBTShob3N0
aW5nU2NhbGVGYWN0b3IpOworICAgIFVOVVNFRF9QQVJBTSh2aWRlb0Z1bGxzY3JlZW5Nb2RlKTsK
KyAgICBVTlVTRURfUEFSQU0oYWxsb3dzUGljdHVyZUluUGljdHVyZSk7CisgICAgVU5VU0VEX1BB
UkFNKHN0YW5kYnkpOworCisgICAgYXV0byYgaW5qZWN0ZWRCdW5kbGUgPSBJbmplY3RlZEJ1bmRs
ZTo6c2luZ2xldG9uKCk7CisgICAgaWYgKGluamVjdGVkQnVuZGxlLnRlc3RSdW5uZXIoKS0+c2hv
dWxkRHVtcEZ1bGxTY3JlZW5DYWxsYmFja3MoKSkKKyAgICAgICAgaW5qZWN0ZWRCdW5kbGUub3V0
cHV0VGV4dCgic2V0dXBGdWxsc2NyZWVuV2l0aElEKClcbiIpOworCisgICAgV0tCdW5kbGVQYWdl
UmVxdWVzdFZpZGVvQ29udGVudExheWVyKHBhZ2UsIGNvbnRleHRJZCk7Cit9CisKK3ZvaWQgSW5q
ZWN0ZWRCdW5kbGVQYWdlOjplbnRlckZ1bGxzY3JlZW4oV0tCdW5kbGVQYWdlUmVmIHBhZ2UsIHVp
bnQ2NF90IGNvbnRleHRJZCkKK3sKKyAgICBhdXRvJiBpbmplY3RlZEJ1bmRsZSA9IEluamVjdGVk
QnVuZGxlOjpzaW5nbGV0b24oKTsKKyAgICBpZiAoaW5qZWN0ZWRCdW5kbGUudGVzdFJ1bm5lcigp
LT5zaG91bGREdW1wRnVsbFNjcmVlbkNhbGxiYWNrcygpKQorICAgICAgICBpbmplY3RlZEJ1bmRs
ZS5vdXRwdXRUZXh0KCJlbnRlckZ1bGxzY3JlZW4oKVxuIik7CisKKyAgICBXS0J1bmRsZVBhZ2VE
aWRFbnRlclZpZGVvRnVsbHNjcmVlbihwYWdlLCBjb250ZXh0SWQpOworfQorCit2b2lkIEluamVj
dGVkQnVuZGxlUGFnZTo6ZXhpdEZ1bGxzY3JlZW4oV0tCdW5kbGVQYWdlUmVmIHBhZ2UsIHVpbnQ2
NF90IGNvbnRleHRJZCwgV0tSZWN0IGZpbmFsUmVjdCkKK3sKKyAgICBVTlVTRURfUEFSQU0oZmlu
YWxSZWN0KTsKKworICAgIGF1dG8mIGluamVjdGVkQnVuZGxlID0gSW5qZWN0ZWRCdW5kbGU6OnNp
bmdsZXRvbigpOworICAgIGlmIChpbmplY3RlZEJ1bmRsZS50ZXN0UnVubmVyKCktPnNob3VsZER1
bXBGdWxsU2NyZWVuQ2FsbGJhY2tzKCkpCisgICAgICAgIGluamVjdGVkQnVuZGxlLm91dHB1dFRl
eHQoImV4aXRGdWxsc2NyZWVuKClcbiIpOworCisgICAgV0tCdW5kbGVQYWdlUmV0dXJuVmlkZW9D
b250ZW50TGF5ZXIocGFnZSwgY29udGV4dElkKTsKK30KKwordm9pZCBJbmplY3RlZEJ1bmRsZVBh
Z2U6OnNldElubGluZVJlY3QoV0tCdW5kbGVQYWdlUmVmLCB1aW50NjRfdCBjb250ZXh0SWQsIFdL
UmVjdCBpbmxpbmVSZWN0LCBib29sIHZpc2libGUpCit7CisgICAgVU5VU0VEX1BBUkFNKGNvbnRl
eHRJZCk7CisgICAgVU5VU0VEX1BBUkFNKGlubGluZVJlY3QpOworICAgIFVOVVNFRF9QQVJBTSh2
aXNpYmxlKTsKKworICAgIGF1dG8mIGluamVjdGVkQnVuZGxlID0gSW5qZWN0ZWRCdW5kbGU6OnNp
bmdsZXRvbigpOworICAgIGlmIChpbmplY3RlZEJ1bmRsZS50ZXN0UnVubmVyKCktPnNob3VsZER1
bXBGdWxsU2NyZWVuQ2FsbGJhY2tzKCkpCisgICAgICAgIGluamVjdGVkQnVuZGxlLm91dHB1dFRl
eHQoInNldElubGluZVJlY3QoKVxuIik7Cit9CisKK3ZvaWQgSW5qZWN0ZWRCdW5kbGVQYWdlOjpz
ZXRIYXNWaWRlb0NvbnRlbnRMYXllcihXS0J1bmRsZVBhZ2VSZWYgcGFnZSwgdWludDY0X3QgY29u
dGV4dElkLCBib29sIHZhbHVlKQoreworICAgIGF1dG8mIGluamVjdGVkQnVuZGxlID0gSW5qZWN0
ZWRCdW5kbGU6OnNpbmdsZXRvbigpOworICAgIGlmIChpbmplY3RlZEJ1bmRsZS50ZXN0UnVubmVy
KCktPnNob3VsZER1bXBGdWxsU2NyZWVuQ2FsbGJhY2tzKCkpCisgICAgICAgIGluamVjdGVkQnVu
ZGxlLm91dHB1dFRleHQoInNldEhhc1ZpZGVvQ29udGVudExheWVyKClcbiIpOworCisgICAgaWYg
KHZhbHVlKQorICAgICAgICBXS0J1bmRsZVBhZ2VEaWRTZXR1cFZpZGVvRnVsbHNjcmVlbihwYWdl
LCBjb250ZXh0SWQpOworICAgIGVsc2UKKyAgICAgICAgV0tCdW5kbGVQYWdlRGlkRXhpdFZpZGVv
RnVsbHNjcmVlbihwYWdlLCBjb250ZXh0SWQpOworfQorCit2b2lkIEluamVjdGVkQnVuZGxlUGFn
ZTo6Y2xlYW51cEZ1bGxzY3JlZW4oV0tCdW5kbGVQYWdlUmVmIHBhZ2UsIHVpbnQ2NF90IGNvbnRl
eHRJZCkKK3sKKyAgICBhdXRvJiBpbmplY3RlZEJ1bmRsZSA9IEluamVjdGVkQnVuZGxlOjpzaW5n
bGV0b24oKTsKKyAgICBpZiAoaW5qZWN0ZWRCdW5kbGUudGVzdFJ1bm5lcigpLT5zaG91bGREdW1w
RnVsbFNjcmVlbkNhbGxiYWNrcygpKQorICAgICAgICBpbmplY3RlZEJ1bmRsZS5vdXRwdXRUZXh0
KCJjbGVhbnVwRnVsbHNjcmVlbigpXG4iKTsKKworICAgIFdLQnVuZGxlUGFnZURpZENsZWFudXBW
aWRlb0Z1bGxzY3JlZW4ocGFnZSwgY29udGV4dElkKTsKK30KKwordm9pZCBJbmplY3RlZEJ1bmRs
ZVBhZ2U6OnByZXBhcmVkVG9SZXR1cm5Ub0lubGluZShXS0J1bmRsZVBhZ2VSZWYsIHVpbnQ2NF90
IGNvbnRleHRJZCwgYm9vbCB2aXNpYmxlLCBXS1JlY3QgaW5saW5lUmVjdCkKK3sKKyAgICBVTlVT
RURfUEFSQU0oY29udGV4dElkKTsKKyAgICBVTlVTRURfUEFSQU0odmlzaWJsZSk7CisgICAgVU5V
U0VEX1BBUkFNKGlubGluZVJlY3QpOworCisgICAgYXV0byYgaW5qZWN0ZWRCdW5kbGUgPSBJbmpl
Y3RlZEJ1bmRsZTo6c2luZ2xldG9uKCk7CisgICAgaWYgKGluamVjdGVkQnVuZGxlLnRlc3RSdW5u
ZXIoKS0+c2hvdWxkRHVtcEZ1bGxTY3JlZW5DYWxsYmFja3MoKSkKKyAgICAgICAgaW5qZWN0ZWRC
dW5kbGUub3V0cHV0VGV4dCgicHJlcGFyZWRUb1JldHVyblRvSW5saW5lKClcbiIpOworfQorCit2
b2lkIEluamVjdGVkQnVuZGxlUGFnZTo6cHJlcGFyZWRUb0V4aXRGdWxsc2NyZWVuKFdLQnVuZGxl
UGFnZVJlZiwgdWludDY0X3QgY29udGV4dElkKQoreworICAgIFVOVVNFRF9QQVJBTShjb250ZXh0
SWQpOworCisgICAgYXV0byYgaW5qZWN0ZWRCdW5kbGUgPSBJbmplY3RlZEJ1bmRsZTo6c2luZ2xl
dG9uKCk7CisgICAgaWYgKGluamVjdGVkQnVuZGxlLnRlc3RSdW5uZXIoKS0+c2hvdWxkRHVtcEZ1
bGxTY3JlZW5DYWxsYmFja3MoKSkKKyAgICAgICAgaW5qZWN0ZWRCdW5kbGUub3V0cHV0VGV4dCgi
cHJlcGFyZWRUb0V4aXRGdWxsc2NyZWVuKClcbiIpOworfQorCisjaWYgUExBVEZPUk0oTUFDKQor
dm9pZCBJbmplY3RlZEJ1bmRsZVBhZ2U6OmV4aXRGdWxsc2NyZWVuV2l0aG91dEFuaW1hdGlvblRv
TW9kZShXS0J1bmRsZVBhZ2VSZWYsIHVpbnQ2NF90IGNvbnRleHRJZCwgV0tWaWRlb0Z1bGxzY3Jl
ZW5Nb2RlIHZpZGVvRnVsbHNjcmVlbk1vZGUpCit7CisgICAgVU5VU0VEX1BBUkFNKGNvbnRleHRJ
ZCk7CisgICAgVU5VU0VEX1BBUkFNKHZpZGVvRnVsbHNjcmVlbk1vZGUpOworCisgICAgYXV0byYg
aW5qZWN0ZWRCdW5kbGUgPSBJbmplY3RlZEJ1bmRsZTo6c2luZ2xldG9uKCk7CisgICAgaWYgKGlu
amVjdGVkQnVuZGxlLnRlc3RSdW5uZXIoKS0+c2hvdWxkRHVtcEZ1bGxTY3JlZW5DYWxsYmFja3Mo
KSkKKyAgICAgICAgaW5qZWN0ZWRCdW5kbGUub3V0cHV0VGV4dCgiZXhpdEZ1bGxzY3JlZW5XaXRo
b3V0QW5pbWF0aW9uVG9Nb2RlKClcbiIpOworfQorI2VuZGlmCisKKyNlbmRpZiAvLyBFTkFCTEUo
VklERU9fUFJFU0VOVEFUSU9OX01PREUpCisKIFN0cmluZyBJbmplY3RlZEJ1bmRsZVBhZ2U6OmR1
bXBIaXN0b3J5KCkKIHsKICAgICByZXR1cm4gbWFrZVN0cmluZygKZGlmZiAtLWdpdCBhL1Rvb2xz
L1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvSW5qZWN0ZWRCdW5kbGVQYWdlLmggYi9U
b29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0luamVjdGVkQnVuZGxlUGFnZS5o
CmluZGV4IDMxNDg4YTUyYjVjZTU1Njk2MTZjYmQ5MWI5YTIxOTc1MDM0MjExMmUuLjQ1MjFkZGEy
YWM5NTZmYTk2MTQ2YzExMGZiNThhMWRkZTIxOTM3ZWMgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYktp
dFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvSW5qZWN0ZWRCdW5kbGVQYWdlLmgKKysrIGIvVG9v
bHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZVBhZ2UuaApA
QCAtMTQ1LDYgKzE0NSwyMiBAQCBwcml2YXRlOgogICAgIHN0YXRpYyB2b2lkIGNsb3NlRnVsbFNj
cmVlbihXS0J1bmRsZVBhZ2VSZWYpOwogI2VuZGlmCiAKKyNpZiBFTkFCTEUoVklERU9fUFJFU0VO
VEFUSU9OX01PREUpCisgICAgc3RhdGljIHZvaWQgc2V0SGFzVmlkZW8oV0tCdW5kbGVQYWdlUmVm
LCB1aW50NjRfdCBjb250ZXh0SWQsIGJvb2wgaGFzVmlkZW8pOworICAgIHN0YXRpYyB2b2lkIHNl
dFZpZGVvRGltZW5zaW9ucyhXS0J1bmRsZVBhZ2VSZWYsIHVpbnQ2NF90IGNvbnRleHRJZCwgV0tT
aXplIHZpZGVvRGltZW5zaW9ucyk7CisgICAgc3RhdGljIHZvaWQgc2V0dXBGdWxsc2NyZWVuV2l0
aElEKFdLQnVuZGxlUGFnZVJlZiwgdWludDY0X3QgY29udGV4dElkLCB1aW50MzJfdCB2aWRlb0xh
eWVySWQsIFdLUmVjdCBpbml0aWFsUmVjdCwgZmxvYXQgaG9zdGluZ1NjYWxlRmFjdG9yLCBXS1Zp
ZGVvRnVsbHNjcmVlbk1vZGUsIGJvb2wgYWxsb3dzUGljdHVyZUluUGljdHVyZSwgYm9vbCBzdGFu
ZGJ5KTsKKyAgICBzdGF0aWMgdm9pZCBlbnRlckZ1bGxzY3JlZW4oV0tCdW5kbGVQYWdlUmVmLCB1
aW50NjRfdCBjb250ZXh0SWQpOworICAgIHN0YXRpYyB2b2lkIGV4aXRGdWxsc2NyZWVuKFdLQnVu
ZGxlUGFnZVJlZiwgdWludDY0X3QgY29udGV4dElkLCBXS1JlY3QgZmluYWxSZWN0KTsKKyAgICBz
dGF0aWMgdm9pZCBzZXRJbmxpbmVSZWN0KFdLQnVuZGxlUGFnZVJlZiwgdWludDY0X3QgY29udGV4
dElkLCBXS1JlY3QgaW5saW5lUmVjdCwgYm9vbCB2aXNpYmxlKTsKKyAgICBzdGF0aWMgdm9pZCBz
ZXRIYXNWaWRlb0NvbnRlbnRMYXllcihXS0J1bmRsZVBhZ2VSZWYsIHVpbnQ2NF90IGNvbnRleHRJ
ZCwgYm9vbCB2YWx1ZSk7CisgICAgc3RhdGljIHZvaWQgY2xlYW51cEZ1bGxzY3JlZW4oV0tCdW5k
bGVQYWdlUmVmLCB1aW50NjRfdCBjb250ZXh0SWQpOworICAgIHN0YXRpYyB2b2lkIHByZXBhcmVk
VG9SZXR1cm5Ub0lubGluZShXS0J1bmRsZVBhZ2VSZWYsIHVpbnQ2NF90IGNvbnRleHRJZCwgYm9v
bCB2aXNpYmxlLCBXS1JlY3QgaW5saW5lUmVjdCk7CisgICAgc3RhdGljIHZvaWQgcHJlcGFyZWRU
b0V4aXRGdWxsc2NyZWVuKFdLQnVuZGxlUGFnZVJlZiwgdWludDY0X3QgY29udGV4dElkKTsKKyNp
ZiBQTEFURk9STShNQUMpCisgICAgc3RhdGljIHZvaWQgZXhpdEZ1bGxzY3JlZW5XaXRob3V0QW5p
bWF0aW9uVG9Nb2RlKFdLQnVuZGxlUGFnZVJlZiwgdWludDY0X3QgY29udGV4dElkLCBXS1ZpZGVv
RnVsbHNjcmVlbk1vZGUpOworI2VuZGlmCisjZW5kaWYgLy8gRU5BQkxFKFZJREVPX1BSRVNFTlRB
VElPTl9NT0RFKQorCiAgICAgLy8gRWRpdG9yIGNsaWVudAogICAgIHN0YXRpYyBib29sIHNob3Vs
ZEJlZ2luRWRpdGluZyhXS0J1bmRsZVBhZ2VSZWYsIFdLQnVuZGxlUmFuZ2VIYW5kbGVSZWYsIGNv
bnN0IHZvaWQqIGNsaWVudEluZm8pOwogICAgIHN0YXRpYyBib29sIHNob3VsZEVuZEVkaXRpbmco
V0tCdW5kbGVQYWdlUmVmLCBXS0J1bmRsZVJhbmdlSGFuZGxlUmVmLCBjb25zdCB2b2lkKiBjbGll
bnRJbmZvKTsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>396834</attachid>
            <date>2020-04-17 22:52:23 -0700</date>
            <delta_ts>2020-04-17 23:15:26 -0700</delta_ts>
            <desc>Fix GTK and WPE build failures again</desc>
            <filename>bug-203723-20200417225222.patch</filename>
            <type>text/plain</type>
            <size>60084</size>
            <attacher name="Peng Liu">peng.liu6</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjYwMjkzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDExZjZlNzRiMWNiYmU4MGI4
N2YyNTU4MTE5NzkxYjYyODc5NmJjOWMuLjBmYTk0Y2E4NmZkYmUxZWQwNjFlMDg0NDcxOWQxYWMy
YjM3MDgzMDYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNjQgQEAKKzIwMjAtMDQtMTcgIFBlbmcgTGl1
ICA8cGVuZy5saXU2QGFwcGxlLmNvbT4KKworICAgICAgICBVcGRhdGUgV2ViS2l0VGVzdFJ1bm5l
ciB0byBzdXBwb3J0IHJ1bm5pbmcgbXVsdGlwbGUgdmlkZW8gZnVsbHNjcmVlbiBhbmQgUGljdHVy
ZS1pbi1QaWN0dXJlIHRlc3RzIHNpbXVsdGFuZW91c2x5CisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDM3MjMKKworICAgICAgICBSZXZpZXdlZCBieSBO
T0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGQgdGhlIGluamVjdGVkIGJ1bmRsZSBjbGllbnQg
c3VwcG9ydCBmb3IgdmlkZW8gZnVsbHNjcmVlbiByZWxhdGVkIGludGVyZmFjZXMgYmV0d2VlbiAK
KyAgICAgICAgdGhlIFdlYiBwcm9jZXNzIChWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyKSBhbmQgdGhl
IFVJIHByb2Nlc3MgKFZpZGVvRnVsbHNjcmVlbk1hbmFnZXJQcm94eSkuCisKKyAgICAgICAgKiBT
aGFyZWQvQVBJL2MvV0tTaGFyZWRBUElDYXN0Lmg6CisgICAgICAgIChXZWJLaXQ6OnRvQVBJKToK
KyAgICAgICAgKiBXZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBX
ZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9jL1dLQnVuZGxlUGFnZS5jcHA6CisgICAgICAg
IChXS0J1bmRsZVBhZ2VTZXRWaWRlb0Z1bGxzY3JlZW5DbGllbnQpOgorICAgICAgICAoV0tCdW5k
bGVQYWdlUmVxdWVzdFZpZGVvRnVsbHNjcmVlbk1vZGUpOgorICAgICAgICAoV0tCdW5kbGVQYWdl
UmVxdWVzdFZpZGVvQ29udGVudExheWVyKToKKyAgICAgICAgKFdLQnVuZGxlUGFnZURpZFNldHVw
VmlkZW9GdWxsc2NyZWVuKToKKyAgICAgICAgKFdLQnVuZGxlUGFnZURpZEVudGVyVmlkZW9GdWxs
c2NyZWVuKToKKyAgICAgICAgKFdLQnVuZGxlUGFnZVJldHVyblZpZGVvQ29udGVudExheWVyKToK
KyAgICAgICAgKFdLQnVuZGxlUGFnZURpZEV4aXRWaWRlb0Z1bGxzY3JlZW4pOgorICAgICAgICAo
V0tCdW5kbGVQYWdlRGlkQ2xlYW51cFZpZGVvRnVsbHNjcmVlbik6CisgICAgICAgICogV2ViUHJv
Y2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvYy9XS0J1bmRsZVBhZ2UuaDoKKyAgICAgICAgKiBXZWJQ
cm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9jL1dLQnVuZGxlUGFnZVZpZGVvRnVsbHNjcmVlbkNs
aWVudC5oOiBBZGRlZC4KKyAgICAgICAgKiBXZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0luamVj
dGVkQnVuZGxlUGFnZUZ1bGxTY3JlZW5DbGllbnQuY3BwOgorICAgICAgICAqIFdlYlByb2Nlc3Mv
SW5qZWN0ZWRCdW5kbGUvSW5qZWN0ZWRCdW5kbGVQYWdlRnVsbFNjcmVlbkNsaWVudC5oOgorICAg
ICAgICAqIFdlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvSW5qZWN0ZWRCdW5kbGVQYWdlVmlkZW9G
dWxsc2NyZWVuQ2xpZW50LmNwcDogQWRkZWQuCisgICAgICAgIChXZWJLaXQ6OkluamVjdGVkQnVu
ZGxlUGFnZVZpZGVvRnVsbHNjcmVlbkNsaWVudDo6c2V0SGFzVmlkZW8pOgorICAgICAgICAoV2Vi
S2l0OjpJbmplY3RlZEJ1bmRsZVBhZ2VWaWRlb0Z1bGxzY3JlZW5DbGllbnQ6OnNldFZpZGVvRGlt
ZW5zaW9ucyk6CisgICAgICAgIChXZWJLaXQ6OkluamVjdGVkQnVuZGxlUGFnZVZpZGVvRnVsbHNj
cmVlbkNsaWVudDo6c2V0dXBGdWxsc2NyZWVuV2l0aElEKToKKyAgICAgICAgKFdlYktpdDo6SW5q
ZWN0ZWRCdW5kbGVQYWdlVmlkZW9GdWxsc2NyZWVuQ2xpZW50OjplbnRlckZ1bGxzY3JlZW4pOgor
ICAgICAgICAoV2ViS2l0OjpJbmplY3RlZEJ1bmRsZVBhZ2VWaWRlb0Z1bGxzY3JlZW5DbGllbnQ6
OmV4aXRGdWxsc2NyZWVuKToKKyAgICAgICAgKFdlYktpdDo6SW5qZWN0ZWRCdW5kbGVQYWdlVmlk
ZW9GdWxsc2NyZWVuQ2xpZW50OjpzZXRJbmxpbmVSZWN0KToKKyAgICAgICAgKFdlYktpdDo6SW5q
ZWN0ZWRCdW5kbGVQYWdlVmlkZW9GdWxsc2NyZWVuQ2xpZW50OjpzZXRIYXNWaWRlb0NvbnRlbnRM
YXllcik6CisgICAgICAgIChXZWJLaXQ6OkluamVjdGVkQnVuZGxlUGFnZVZpZGVvRnVsbHNjcmVl
bkNsaWVudDo6Y2xlYW51cEZ1bGxzY3JlZW4pOgorICAgICAgICAoV2ViS2l0OjpJbmplY3RlZEJ1
bmRsZVBhZ2VWaWRlb0Z1bGxzY3JlZW5DbGllbnQ6OnByZXBhcmVkVG9SZXR1cm5Ub0lubGluZSk6
CisgICAgICAgIChXZWJLaXQ6OkluamVjdGVkQnVuZGxlUGFnZVZpZGVvRnVsbHNjcmVlbkNsaWVu
dDo6cHJlcGFyZWRUb0V4aXRGdWxsc2NyZWVuKToKKyAgICAgICAgKFdlYktpdDo6SW5qZWN0ZWRC
dW5kbGVQYWdlVmlkZW9GdWxsc2NyZWVuQ2xpZW50OjpleGl0RnVsbHNjcmVlbldpdGhvdXRBbmlt
YXRpb25Ub01vZGUpOgorICAgICAgICAqIFdlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvSW5qZWN0
ZWRCdW5kbGVQYWdlVmlkZW9GdWxsc2NyZWVuQ2xpZW50Lmg6IEFkZGVkLgorICAgICAgICAqIFdl
YlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZTo6
aW5pdGlhbGl6ZUluamVjdGVkQnVuZGxlVmlkZW9GdWxsc2NyZWVuQ2xpZW50KToKKyAgICAgICAg
KFdlYktpdDo6V2ViUGFnZTo6Y2xvc2UpOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9X
ZWJQYWdlLmg6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2U6OmluamVjdGVkQnVuZGxlVmlkZW9G
dWxsc2NyZWVuQ2xpZW50KToKKyAgICAgICAgKiBXZWJQcm9jZXNzL2NvY29hL1ZpZGVvRnVsbHNj
cmVlbk1hbmFnZXIuaDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL2NvY29hL1ZpZGVvRnVsbHNjcmVl
bk1hbmFnZXIubW06CisgICAgICAgIChXZWJLaXQ6OlZpZGVvRnVsbHNjcmVlbk1hbmFnZXI6OmVu
dGVyVmlkZW9GdWxsc2NyZWVuRm9yVmlkZW9FbGVtZW50KToKKyAgICAgICAgKFdlYktpdDo6Vmlk
ZW9GdWxsc2NyZWVuTWFuYWdlcjo6ZXhpdFZpZGVvRnVsbHNjcmVlbkZvclZpZGVvRWxlbWVudCk6
CisgICAgICAgIChXZWJLaXQ6OlZpZGVvRnVsbHNjcmVlbk1hbmFnZXI6OmV4aXRWaWRlb0Z1bGxz
Y3JlZW5Ub01vZGVXaXRob3V0QW5pbWF0aW9uKToKKyAgICAgICAgKFdlYktpdDo6VmlkZW9GdWxs
c2NyZWVuTWFuYWdlcjo6aGFzVmlkZW9DaGFuZ2VkKToKKyAgICAgICAgKFdlYktpdDo6VmlkZW9G
dWxsc2NyZWVuTWFuYWdlcjo6dmlkZW9EaW1lbnNpb25zQ2hhbmdlZCk6CisgICAgICAgIChXZWJL
aXQ6OlZpZGVvRnVsbHNjcmVlbk1hbmFnZXI6OnJlcXVlc3RVcGRhdGVJbmxpbmVSZWN0KToKKyAg
ICAgICAgKFdlYktpdDo6VmlkZW9GdWxsc2NyZWVuTWFuYWdlcjo6cmVxdWVzdFZpZGVvQ29udGVu
dExheWVyKToKKyAgICAgICAgKFdlYktpdDo6VmlkZW9GdWxsc2NyZWVuTWFuYWdlcjo6cmV0dXJu
VmlkZW9Db250ZW50TGF5ZXIpOgorICAgICAgICAoV2ViS2l0OjpWaWRlb0Z1bGxzY3JlZW5NYW5h
Z2VyOjpkaWRTZXR1cEZ1bGxzY3JlZW4pOgorICAgICAgICAoV2ViS2l0OjpWaWRlb0Z1bGxzY3Jl
ZW5NYW5hZ2VyOjp3aWxsRXhpdEZ1bGxzY3JlZW4pOgorICAgICAgICAoV2ViS2l0OjpWaWRlb0Z1
bGxzY3JlZW5NYW5hZ2VyOjpkaWRFbnRlckZ1bGxzY3JlZW4pOgorICAgICAgICAoV2ViS2l0OjpW
aWRlb0Z1bGxzY3JlZW5NYW5hZ2VyOjpkaWRFeGl0RnVsbHNjcmVlbik6CisgICAgICAgIChXZWJL
aXQ6OlZpZGVvRnVsbHNjcmVlbk1hbmFnZXI6OmRpZENsZWFudXBGdWxsc2NyZWVuKToKKyAgICAg
ICAgKFdlYktpdDo6VmlkZW9GdWxsc2NyZWVuTWFuYWdlcjo6ZnVsbHNjcmVlbk1heVJldHVyblRv
SW5saW5lKToKKwogMjAyMC0wNC0xNyAgRGF2aWQgS2lsemVyICA8ZGRraWx6ZXJAYXBwbGUuY29t
PgogCiAgICAgICAgIFJFR1JFU1NJT04gKHIyMzQxMDUpOiBbaU9TXSBXS0NvbG9yQnV0dG9uIGxl
YWtzIGEgVUlDb2xvcgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvQVBJL2MvV0tT
aGFyZWRBUElDYXN0LmggYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9BUEkvYy9XS1NoYXJlZEFQSUNh
c3QuaAppbmRleCAzN2M3ZDk2NjQyODJhZjM5NDhiNWZhMDA2ZmM4NTA0OTQ3N2E5NDgwLi4wNTU0
MjE1NmVkYWFiZDQ2YmYwYjdiNzJlYTI3Mjg0ODUwNjIzYjdiIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L1NoYXJlZC9BUEkvYy9XS1NoYXJlZEFQSUNhc3QuaAorKysgYi9Tb3VyY2UvV2ViS2l0
L1NoYXJlZC9BUEkvYy9XS1NoYXJlZEFQSUNhc3QuaApAQCAtMjQ5LDYgKzI0OSwxNCBAQCBpbmxp
bmUgV0tSZWN0IHRvQVBJKGNvbnN0IFdlYkNvcmU6OkZsb2F0UmVjdCYgcmVjdCkKICAgICByZXR1
cm4gd2tSZWN0OwogfQogCitpbmxpbmUgV0tTaXplIHRvQVBJKGNvbnN0IFdlYkNvcmU6OkZsb2F0
U2l6ZSYgc2l6ZSkKK3sKKyAgICBXS1NpemUgd2tTaXplOworICAgIHdrU2l6ZS53aWR0aCA9IHNp
emUud2lkdGgoKTsKKyAgICB3a1NpemUuaGVpZ2h0ID0gc2l6ZS5oZWlnaHQoKTsKKyAgICByZXR1
cm4gd2tTaXplOworfQorCiBpbmxpbmUgV0tSZWN0IHRvQVBJKGNvbnN0IFdlYkNvcmU6OkludFJl
Y3QmIHJlY3QpCiB7CiAgICAgV0tSZWN0IHdrUmVjdDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvV2ViS2l0L1dlYktp
dC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IDZlNDdiNmU5MmYwMmE5NWYzMzc2Yjhh
NzA1ZGZiMTExYWY4YTY4NDkuLjEyN2M3ODRjNDA5Yjc4MTk4MzE2OGVhODY1ZTFkMTJlNDBkMzk5
ZGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBi
eHByb2oKKysrIGIvU291cmNlL1dlYktpdC9XZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJv
agpAQCAtNDE3LDYgKzQxNyw5IEBACiAJCTFENEQ3MzcxMjNBOUU1NjIwMDcxN0EyNSAvKiBSZW1v
dGVNZWRpYVJlc291cmNlTWFuYWdlck1lc3NhZ2VzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxRDRENzM2QzIzQTlERjYwMDA3MTdBMjUgLyogUmVtb3Rl
TWVkaWFSZXNvdXJjZU1hbmFnZXJNZXNzYWdlcy5oICovOyB9OwogCQkxRDRENzM3NjIzQTlFRDE4
MDA3MTdBMjUgLyogUmVtb3RlTWVkaWFSZXNvdXJjZU1hbmFnZXJNZXNzYWdlc1JlcGxpZXMuaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDFENEQ3Mzc1MjNB
OUVCNjgwMDcxN0EyNSAvKiBSZW1vdGVNZWRpYVJlc291cmNlTWFuYWdlck1lc3NhZ2VzUmVwbGll
cy5oICovOyB9OwogCQkxRDY3QjMzOTIxMkUxRjYxMDBGQUE3ODYgLyogU2hhcmVTaGVldENhbGxi
YWNrSUQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDFE
NjdCMzM4MjEyRTFGNjEwMEZBQTc4NiAvKiBTaGFyZVNoZWV0Q2FsbGJhY2tJRC5oICovOyB9Owor
CQkxREFBNTJDMDI0Mzk2ODMxMDAxQTMxNTkgLyogSW5qZWN0ZWRCdW5kbGVQYWdlVmlkZW9GdWxs
c2NyZWVuQ2xpZW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSAxREFBNTJCRTI0Mzk2ODMxMDAxQTMxNTkgLyogSW5qZWN0ZWRCdW5kbGVQYWdlVmlkZW9G
dWxsc2NyZWVuQ2xpZW50LmggKi87IH07CisJCTFEQUE1MkMxMjQzOTY4MzEwMDFBMzE1OSAvKiBJ
bmplY3RlZEJ1bmRsZVBhZ2VWaWRlb0Z1bGxzY3JlZW5DbGllbnQuY3BwIGluIFNvdXJjZXMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMURBQTUyQkYyNDM5NjgzMTAwMUEzMTU5
IC8qIEluamVjdGVkQnVuZGxlUGFnZVZpZGVvRnVsbHNjcmVlbkNsaWVudC5jcHAgKi87IH07CisJ
CTFEQUE1MkMzMjQzOTZFNkQwMDFBMzE1OSAvKiBXS0J1bmRsZVBhZ2VWaWRlb0Z1bGxzY3JlZW5D
bGllbnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDFE
QUE1MkMyMjQzOTZFNkQwMDFBMzE1OSAvKiBXS0J1bmRsZVBhZ2VWaWRlb0Z1bGxzY3JlZW5DbGll
bnQuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQkx
REIwMTk0MzIxMUNGMDAyMDA5RkIzRTggLyogV0tTaGFyZVNoZWV0LmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxREUwRDA5NTIxMUNDMjEzMDA0MzlCNUYg
LyogV0tTaGFyZVNoZWV0LmggKi87IH07CiAJCTFEQjAxOTQ0MjExQ0YwMDUwMDlGQjNFOCAvKiBX
S1NoYXJlU2hlZXQubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSAxREJCQjA2MTIxMUNDM0NCMDA1MDJFQ0MgLyogV0tTaGFyZVNoZWV0Lm1tICovOyB9Owog
CQkxRjMzNUJDMDE4NUI4NEYwMDAxQTIwMUEgLyogV0tXZWJQcm9jZXNzUGx1Z0luTG9hZERlbGVn
YXRlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxRjMz
NUJCRjE4NUI4NEQ4MDAxQTIwMUEgLyogV0tXZWJQcm9jZXNzUGx1Z0luTG9hZERlbGVnYXRlLmgg
Ki87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKQEAgLTI3NDIs
NiArMjc0NSw5IEBACiAJCTFEOTdFQzdEMjQwODk4RDIwMDQ2NkZGQSAvKiBNZWRpYVBsYXllclBy
aXZhdGVSZW1vdGVDb2NvYS5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBleHBsaWNp
dEZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gTWVkaWFQbGF5ZXJQcml2
YXRlUmVtb3RlQ29jb2EubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTFEQTQwODk0
MjNBODBBM0UwMDU4Qzk1MCAvKiBSZW1vdGVNZWRpYVJlc291cmNlTWFuYWdlci5oICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7
IHBhdGggPSBSZW1vdGVNZWRpYVJlc291cmNlTWFuYWdlci5oOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwogCQkxREE0MDg5RTIzQTgyNzc4MDA1OEM5NTAgLyogUmVtb3RlTWVkaWFSZXNvdXJj
ZU1hbmFnZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gUmVtb3RlTWVkaWFSZXNvdXJjZU1hbmFn
ZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkxREFBNTJCRTI0Mzk2ODMxMDAx
QTMxNTkgLyogSW5qZWN0ZWRCdW5kbGVQYWdlVmlkZW9GdWxsc2NyZWVuQ2xpZW50LmggKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMu
aDsgcGF0aCA9IEluamVjdGVkQnVuZGxlUGFnZVZpZGVvRnVsbHNjcmVlbkNsaWVudC5oOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OworCQkxREFBNTJCRjI0Mzk2ODMxMDAxQTMxNTkgLyogSW5q
ZWN0ZWRCdW5kbGVQYWdlVmlkZW9GdWxsc2NyZWVuQ2xpZW50LmNwcCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0
aCA9IEluamVjdGVkQnVuZGxlUGFnZVZpZGVvRnVsbHNjcmVlbkNsaWVudC5jcHA7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CisJCTFEQUE1MkMyMjQzOTZFNkQwMDFBMzE1OSAvKiBXS0J1bmRs
ZVBhZ2VWaWRlb0Z1bGxzY3JlZW5DbGllbnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBw
YXRoID0gV0tCdW5kbGVQYWdlVmlkZW9GdWxsc2NyZWVuQ2xpZW50Lmg7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CiAJCTFEQkJCMDYxMjExQ0MzQ0IwMDUwMkVDQyAvKiBXS1NoYXJlU2hlZXQu
bW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBXS1NoYXJlU2hlZXQu
bW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTFERTBEMDk1MjExQ0MyMTMwMDQzOUI1
RiAvKiBXS1NoYXJlU2hlZXQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV0tT
aGFyZVNoZWV0Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTFERTJERkFDMjNBOTU5
RjgwMDNFMDEzQSAvKiBSZW1vdGVNZWRpYVJlc291cmNlSWRlbnRpZmllci5oICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBh
dGggPSBSZW1vdGVNZWRpYVJlc291cmNlSWRlbnRpZmllci5oOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwpAQCAtOTQzNyw2ICs5NDQzLDggQEAKIAkJCQk2NTQ2QTgyQTEzMDAwMTY0MDAwQ0VC
MUMgLyogSW5qZWN0ZWRCdW5kbGVQYWdlUmVzb3VyY2VMb2FkQ2xpZW50LmggKi8sCiAJCQkJQkNB
OEM2QUQxMUUzQzA4NzAwODEyRkI3IC8qIEluamVjdGVkQnVuZGxlUGFnZVVJQ2xpZW50LmNwcCAq
LywKIAkJCQlCQ0E4QzZBRTExRTNDMDg3MDA4MTJGQjcgLyogSW5qZWN0ZWRCdW5kbGVQYWdlVUlD
bGllbnQuaCAqLywKKwkJCQkxREFBNTJCRjI0Mzk2ODMxMDAxQTMxNTkgLyogSW5qZWN0ZWRCdW5k
bGVQYWdlVmlkZW9GdWxsc2NyZWVuQ2xpZW50LmNwcCAqLywKKwkJCQkxREFBNTJCRTI0Mzk2ODMx
MDAxQTMxNTkgLyogSW5qZWN0ZWRCdW5kbGVQYWdlVmlkZW9GdWxsc2NyZWVuQ2xpZW50LmggKi8s
CiAJCQkJQkMxNERGNzYxMjBCNUI3OTAwODI2QzBDIC8qIEluamVjdGVkQnVuZGxlU2NyaXB0V29y
bGQuY3BwICovLAogCQkJCUJDMTRERjc1MTIwQjVCNzkwMDgyNkMwQyAvKiBJbmplY3RlZEJ1bmRs
ZVNjcmlwdFdvcmxkLmggKi8sCiAJCQkpOwpAQCAtOTUxMSw2ICs5NTE5LDcgQEAKIAkJCQlCQzFC
NDE5NzExRDQxRDU3MDAxMUU4REQgLyogV0tCdW5kbGVQYWdlUHJpdmF0ZS5oICovLAogCQkJCTFB
QjQ3NEQ5MTg0RDQ0MjUwMDUxQjYyMiAvKiBXS0J1bmRsZVBhZ2VSZXNvdXJjZUxvYWRDbGllbnQu
aCAqLywKIAkJCQkxQUI0NzRERDE4NEQ0NDU5MDA1MUI2MjIgLyogV0tCdW5kbGVQYWdlVUlDbGll
bnQuaCAqLywKKwkJCQkxREFBNTJDMjI0Mzk2RTZEMDAxQTMxNTkgLyogV0tCdW5kbGVQYWdlVmlk
ZW9GdWxsc2NyZWVuQ2xpZW50LmggKi8sCiAJCQkJQkNGMDQ5RTUxMUZFMjBGNjAwRjg2QTU4IC8q
IFdLQnVuZGxlUHJpdmF0ZS5oICovLAogCQkJCUJDNjBDNTc4MTI0MEE1NDYwMDhDNUUyOSAvKiBX
S0J1bmRsZVJhbmdlSGFuZGxlLmNwcCAqLywKIAkJCQlCQzYwQzU3NzEyNDBBNTQ2MDA4QzVFMjkg
LyogV0tCdW5kbGVSYW5nZUhhbmRsZS5oICovLApAQCAtMTA3OTksNiArMTA4MDgsNyBAQAogCQkJ
CUJDQThDNkE5MTFFM0JBNUYwMDgxMkZCNyAvKiBJbmplY3RlZEJ1bmRsZVBhZ2VMb2FkZXJDbGll
bnQuaCBpbiBIZWFkZXJzICovLAogCQkJCUJDODE0N0E5MTJGNjRDREEwMDdCMkMzMiAvKiBJbmpl
Y3RlZEJ1bmRsZVBhZ2VQb2xpY3lDbGllbnQuaCBpbiBIZWFkZXJzICovLAogCQkJCUJDQThDNkIw
MTFFM0MwODcwMDgxMkZCNyAvKiBJbmplY3RlZEJ1bmRsZVBhZ2VVSUNsaWVudC5oIGluIEhlYWRl
cnMgKi8sCisJCQkJMURBQTUyQzAyNDM5NjgzMTAwMUEzMTU5IC8qIEluamVjdGVkQnVuZGxlUGFn
ZVZpZGVvRnVsbHNjcmVlbkNsaWVudC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQkMzM0UwRDExMjQw
OEU4NjAwMzYwRjNGIC8qIEluamVjdGVkQnVuZGxlUmFuZ2VIYW5kbGUuaCBpbiBIZWFkZXJzICov
LAogCQkJCUJDMTRERjc3MTIwQjVCNzkwMDgyNkMwQyAvKiBJbmplY3RlZEJ1bmRsZVNjcmlwdFdv
cmxkLmggaW4gSGVhZGVycyAqLywKIAkJCQkyREQ0NUFERTFFNUY4OTcyMDA2QzM1NUYgLyogSW5w
dXRWaWV3VXBkYXRlRGVmZXJyZXIuaCBpbiBIZWFkZXJzICovLApAQCAtMTE0MzYsNiArMTE0NDYs
NyBAQAogCQkJCUJDMUI0MTk4MTFENDFENTcwMDExRThERCAvKiBXS0J1bmRsZVBhZ2VQcml2YXRl
LmggaW4gSGVhZGVycyAqLywKIAkJCQkxQUI0NzREQTE4NEQ0NDI1MDA1MUI2MjIgLyogV0tCdW5k
bGVQYWdlUmVzb3VyY2VMb2FkQ2xpZW50LmggaW4gSGVhZGVycyAqLywKIAkJCQkxQUI0NzRERTE4
NEQ0NDU5MDA1MUI2MjIgLyogV0tCdW5kbGVQYWdlVUlDbGllbnQuaCBpbiBIZWFkZXJzICovLAor
CQkJCTFEQUE1MkMzMjQzOTZFNkQwMDFBMzE1OSAvKiBXS0J1bmRsZVBhZ2VWaWRlb0Z1bGxzY3Jl
ZW5DbGllbnQuaCBpbiBIZWFkZXJzICovLAogCQkJCUJDRjA0OUU3MTFGRTIwRjYwMEY4NkE1OCAv
KiBXS0J1bmRsZVByaXZhdGUuaCBpbiBIZWFkZXJzICovLAogCQkJCUJDNjBDNTc5MTI0MEE1NDYw
MDhDNUUyOSAvKiBXS0J1bmRsZVJhbmdlSGFuZGxlLmggaW4gSGVhZGVycyAqLywKIAkJCQlCQzVE
MjRDNzE2Q0Q3M0M1MDA3RDU0NjEgLyogV0tCdW5kbGVSYW5nZUhhbmRsZVByaXZhdGUuaCBpbiBI
ZWFkZXJzICovLApAQCAtMTI2NjYsNiArMTI2NzcsNyBAQAogCQkJCTFBQTU3NjAyMTQ5NkI5Nzkw
MEE0RUUwNiAvKiBFdmVudERpc3BhdGNoZXJNZXNzYWdlUmVjZWl2ZXIuY3BwIGluIFNvdXJjZXMg
Ki8sCiAJCQkJQ0RBOTNEQjEyMkY4QkNGNDAwNDkwQTY5IC8qIEZ1bGxzY3JlZW5Ub3VjaFNlY2hl
dXJpc3RpY1BhcmFtZXRlcnMuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMjc0OUY2NDQyMTQ2NTYx
QjAwODM4MEJGIC8qIEluamVjdGVkQnVuZGxlTm9kZUhhbmRsZS5jcHAgaW4gU291cmNlcyAqLywK
KwkJCQkxREFBNTJDMTI0Mzk2ODMxMDAxQTMxNTkgLyogSW5qZWN0ZWRCdW5kbGVQYWdlVmlkZW9G
dWxsc2NyZWVuQ2xpZW50LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTI3NDlGNjQ1MjE0NjU2MUUw
MDgzODBCRiAvKiBJbmplY3RlZEJ1bmRsZVJhbmdlSGFuZGxlLmNwcCBpbiBTb3VyY2VzICovLAog
CQkJCTJEOTEzNDQxMjEyQ0Y5RjAwMDEyOEFGRCAvKiBKU05QTWV0aG9kLmNwcCBpbiBTb3VyY2Vz
ICovLAogCQkJCTJEOTEzNDQyMjEyQ0Y5RjAwMDEyOEFGRCAvKiBKU05QT2JqZWN0LmNwcCBpbiBT
b3VyY2VzICovLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVk
QnVuZGxlL0FQSS9jL1dLQnVuZGxlUGFnZS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
SW5qZWN0ZWRCdW5kbGUvQVBJL2MvV0tCdW5kbGVQYWdlLmNwcAppbmRleCBlOTM5YTRlM2VkNTY3
YzYyNTBlYjUwODFkMmM0ZmNmMGJlZGQ1YzMzLi4zYzA0YTNiNjcyOTYyYjc1YjU5NTZmYWIwOTEz
ZmI2MGVjYWI4M2Y4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0
ZWRCdW5kbGUvQVBJL2MvV0tCdW5kbGVQYWdlLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2MvV0tCdW5kbGVQYWdlLmNwcApAQCAtNzQsNiArNzQs
MTAgQEAKICNpbmNsdWRlIDx3dGYvU3RkTGliRXh0cmFzLmg+CiAjaW5jbHVkZSA8d3RmL1VSTC5o
PgogCisjaWYgRU5BQkxFKFZJREVPX1BSRVNFTlRBVElPTl9NT0RFKQorI2luY2x1ZGUgIlZpZGVv
RnVsbHNjcmVlbk1hbmFnZXIuaCIKKyNlbmRpZgorCiBXS1R5cGVJRCBXS0J1bmRsZVBhZ2VHZXRU
eXBlSUQoKQogewogICAgIHJldHVybiBXZWJLaXQ6OnRvQVBJKFdlYktpdDo6V2ViUGFnZTo6QVBJ
VHlwZSk7CkBAIC0xNjUsNiArMTY5LDg4IEBAIHZvaWQgV0tCdW5kbGVQYWdlRGlkRXhpdEZ1bGxT
Y3JlZW4oV0tCdW5kbGVQYWdlUmVmIHBhZ2VSZWYpCiAjZW5kaWYKIH0KIAordm9pZCBXS0J1bmRs
ZVBhZ2VTZXRWaWRlb0Z1bGxzY3JlZW5DbGllbnQoV0tCdW5kbGVQYWdlUmVmIHBhZ2UsIFdLQnVu
ZGxlUGFnZVZpZGVvRnVsbHNjcmVlbkNsaWVudEJhc2UqIHdrQ2xpZW50KQoreworI2lmIEVOQUJM
RShWSURFT19QUkVTRU5UQVRJT05fTU9ERSkKKyAgICBXZWJLaXQ6OnRvSW1wbChwYWdlKS0+aW5p
dGlhbGl6ZUluamVjdGVkQnVuZGxlVmlkZW9GdWxsc2NyZWVuQ2xpZW50KHdrQ2xpZW50KTsKKyNl
bHNlCisgICAgVU5VU0VEX1BBUkFNKHBhZ2UpOworICAgIFVOVVNFRF9QQVJBTSh3a0NsaWVudCk7
CisjZW5kaWYKK30KKwordm9pZCBXS0J1bmRsZVBhZ2VSZXF1ZXN0VmlkZW9GdWxsc2NyZWVuTW9k
ZShXS0J1bmRsZVBhZ2VSZWYgcGFnZSwgdWludDY0X3QgY29udGV4dElkLCBXS1ZpZGVvRnVsbHNj
cmVlbk1vZGUgbW9kZSwgYm9vbCBmaW5pc2hlZFdpdGhNZWRpYSkKK3sKKyNpZiBFTkFCTEUoVklE
RU9fUFJFU0VOVEFUSU9OX01PREUpCisgICAgV2ViS2l0Ojp0b0ltcGwocGFnZSktPnZpZGVvRnVs
bHNjcmVlbk1hbmFnZXIoKS5yZXF1ZXN0RnVsbHNjcmVlbk1vZGUoY29udGV4dElkLCBtb2RlLCBm
aW5pc2hlZFdpdGhNZWRpYSk7CisjZWxzZQorICAgIFVOVVNFRF9QQVJBTShwYWdlKTsKKyAgICBV
TlVTRURfUEFSQU0oY29udGV4dElkKTsKKyAgICBVTlVTRURfUEFSQU0obW9kZSk7CisgICAgVU5V
U0VEX1BBUkFNKGZpbmlzaGVkV2l0aE1lZGlhKTsKKyNlbmRpZgorfQorCit2b2lkIFdLQnVuZGxl
UGFnZVJlcXVlc3RWaWRlb0NvbnRlbnRMYXllcihXS0J1bmRsZVBhZ2VSZWYgcGFnZSwgdWludDY0
X3QgY29udGV4dElkKQoreworI2lmIEVOQUJMRShWSURFT19QUkVTRU5UQVRJT05fTU9ERSkKKyAg
ICBXZWJLaXQ6OnRvSW1wbChwYWdlKS0+dmlkZW9GdWxsc2NyZWVuTWFuYWdlcigpLnJlcXVlc3RW
aWRlb0NvbnRlbnRMYXllcihjb250ZXh0SWQpOworI2Vsc2UKKyAgICBVTlVTRURfUEFSQU0ocGFn
ZSk7CisgICAgVU5VU0VEX1BBUkFNKGNvbnRleHRJZCk7CisjZW5kaWYKK30KKwordm9pZCBXS0J1
bmRsZVBhZ2VEaWRTZXR1cFZpZGVvRnVsbHNjcmVlbihXS0J1bmRsZVBhZ2VSZWYgcGFnZSwgdWlu
dDY0X3QgY29udGV4dElkKQoreworI2lmIEVOQUJMRShWSURFT19QUkVTRU5UQVRJT05fTU9ERSkK
KyAgICBXZWJLaXQ6OnRvSW1wbChwYWdlKS0+dmlkZW9GdWxsc2NyZWVuTWFuYWdlcigpLmRpZFNl
dHVwRnVsbHNjcmVlbihjb250ZXh0SWQpOworI2Vsc2UKKyAgICBVTlVTRURfUEFSQU0ocGFnZSk7
CisgICAgVU5VU0VEX1BBUkFNKGNvbnRleHRJZCk7CisjZW5kaWYKK30KKwordm9pZCBXS0J1bmRs
ZVBhZ2VEaWRFbnRlclZpZGVvRnVsbHNjcmVlbihXS0J1bmRsZVBhZ2VSZWYgcGFnZSwgdWludDY0
X3QgY29udGV4dElkKQoreworI2lmIEVOQUJMRShWSURFT19QUkVTRU5UQVRJT05fTU9ERSkKKyAg
ICBXZWJLaXQ6OnRvSW1wbChwYWdlKS0+dmlkZW9GdWxsc2NyZWVuTWFuYWdlcigpLmRpZEVudGVy
RnVsbHNjcmVlbihjb250ZXh0SWQpOworI2Vsc2UKKyAgICBVTlVTRURfUEFSQU0ocGFnZSk7Cisg
ICAgVU5VU0VEX1BBUkFNKGNvbnRleHRJZCk7CisjZW5kaWYKK30KKwordm9pZCBXS0J1bmRsZVBh
Z2VSZXR1cm5WaWRlb0NvbnRlbnRMYXllcihXS0J1bmRsZVBhZ2VSZWYgcGFnZSwgdWludDY0X3Qg
Y29udGV4dElkKQoreworI2lmIEVOQUJMRShWSURFT19QUkVTRU5UQVRJT05fTU9ERSkKKyAgICBX
ZWJLaXQ6OnRvSW1wbChwYWdlKS0+dmlkZW9GdWxsc2NyZWVuTWFuYWdlcigpLnJldHVyblZpZGVv
Q29udGVudExheWVyKGNvbnRleHRJZCk7CisjZWxzZQorICAgIFVOVVNFRF9QQVJBTShwYWdlKTsK
KyAgICBVTlVTRURfUEFSQU0oY29udGV4dElkKTsKKyNlbmRpZgorfQorCit2b2lkIFdLQnVuZGxl
UGFnZURpZEV4aXRWaWRlb0Z1bGxzY3JlZW4oV0tCdW5kbGVQYWdlUmVmIHBhZ2UsIHVpbnQ2NF90
IGNvbnRleHRJZCkKK3sKKyNpZiBFTkFCTEUoVklERU9fUFJFU0VOVEFUSU9OX01PREUpCisgICAg
V2ViS2l0Ojp0b0ltcGwocGFnZSktPnZpZGVvRnVsbHNjcmVlbk1hbmFnZXIoKS5kaWRFeGl0RnVs
bHNjcmVlbihjb250ZXh0SWQpOworI2Vsc2UKKyAgICBVTlVTRURfUEFSQU0ocGFnZSk7CisgICAg
VU5VU0VEX1BBUkFNKGNvbnRleHRJZCk7CisjZW5kaWYKK30KKwordm9pZCBXS0J1bmRsZVBhZ2VE
aWRDbGVhbnVwVmlkZW9GdWxsc2NyZWVuKFdLQnVuZGxlUGFnZVJlZiBwYWdlLCB1aW50NjRfdCBj
b250ZXh0SWQpCit7CisjaWYgRU5BQkxFKFZJREVPX1BSRVNFTlRBVElPTl9NT0RFKQorICAgIFdl
YktpdDo6dG9JbXBsKHBhZ2UpLT52aWRlb0Z1bGxzY3JlZW5NYW5hZ2VyKCkuZGlkQ2xlYW51cEZ1
bGxzY3JlZW4oY29udGV4dElkKTsKKyNlbHNlCisgICAgVU5VU0VEX1BBUkFNKHBhZ2UpOworICAg
IFVOVVNFRF9QQVJBTShjb250ZXh0SWQpOworI2VuZGlmCit9CisKIFdLQnVuZGxlUGFnZUdyb3Vw
UmVmIFdLQnVuZGxlUGFnZUdldFBhZ2VHcm91cChXS0J1bmRsZVBhZ2VSZWYgcGFnZVJlZikKIHsK
ICAgICByZXR1cm4gdG9BUEkoV2ViS2l0Ojp0b0ltcGwocGFnZVJlZiktPnBhZ2VHcm91cCgpKTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkv
Yy9XS0J1bmRsZVBhZ2UuaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRs
ZS9BUEkvYy9XS0J1bmRsZVBhZ2UuaAppbmRleCA0ZjgzYjhlZjBjODAyYmNjMWIzZDdiY2Y5NDJj
ZWFlYTE0N2VhYWNmLi4zOGVhYTZhZmU3OGQ1ZmUzMmQ4MWViMjQ2MTVlYTRkNmNmMjFkODgxIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2Mv
V0tCdW5kbGVQYWdlLmgKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVu
ZGxlL0FQSS9jL1dLQnVuZGxlUGFnZS5oCkBAIC0zNiw2ICszNiw3IEBACiAjaW5jbHVkZSA8V2Vi
S2l0L1dLQnVuZGxlUGFnZVBvbGljeUNsaWVudC5oPgogI2luY2x1ZGUgPFdlYktpdC9XS0J1bmRs
ZVBhZ2VSZXNvdXJjZUxvYWRDbGllbnQuaD4KICNpbmNsdWRlIDxXZWJLaXQvV0tCdW5kbGVQYWdl
VUlDbGllbnQuaD4KKyNpbmNsdWRlIDxXZWJLaXQvV0tCdW5kbGVQYWdlVmlkZW9GdWxsc2NyZWVu
Q2xpZW50Lmg+CiAjaW5jbHVkZSA8V2ViS2l0L1dLRGVwcmVjYXRlZC5oPgogI2luY2x1ZGUgPFdl
YktpdC9XS0ZpbmRPcHRpb25zLmg+CiAjaW5jbHVkZSA8V2ViS2l0L1dLSW1hZ2UuaD4KQEAgLTU1
LDYgKzU2LDE0IEBAIFdLX0VYUE9SVCB2b2lkIFdLQnVuZGxlUGFnZURpZEVudGVyRnVsbFNjcmVl
bihXS0J1bmRsZVBhZ2VSZWYgcGFnZSk7CiBXS19FWFBPUlQgdm9pZCBXS0J1bmRsZVBhZ2VXaWxs
RXhpdEZ1bGxTY3JlZW4oV0tCdW5kbGVQYWdlUmVmIHBhZ2UpOwogV0tfRVhQT1JUIHZvaWQgV0tC
dW5kbGVQYWdlRGlkRXhpdEZ1bGxTY3JlZW4oV0tCdW5kbGVQYWdlUmVmIHBhZ2UpOwogCitXS19F
WFBPUlQgdm9pZCBXS0J1bmRsZVBhZ2VSZXF1ZXN0VmlkZW9GdWxsc2NyZWVuTW9kZShXS0J1bmRs
ZVBhZ2VSZWYgcGFnZSwgdWludDY0X3QgY29udGV4dElkLCBXS1ZpZGVvRnVsbHNjcmVlbk1vZGUg
bW9kZSwgYm9vbCBmaW5pc2hlZFdpdGhNZWRpYSk7CitXS19FWFBPUlQgdm9pZCBXS0J1bmRsZVBh
Z2VSZXF1ZXN0VmlkZW9Db250ZW50TGF5ZXIoV0tCdW5kbGVQYWdlUmVmIHBhZ2UsIHVpbnQ2NF90
IGNvbnRleHRJZCk7CitXS19FWFBPUlQgdm9pZCBXS0J1bmRsZVBhZ2VSZXR1cm5WaWRlb0NvbnRl
bnRMYXllcihXS0J1bmRsZVBhZ2VSZWYgcGFnZSwgdWludDY0X3QgY29udGV4dElkKTsKK1dLX0VY
UE9SVCB2b2lkIFdLQnVuZGxlUGFnZURpZFNldHVwVmlkZW9GdWxsc2NyZWVuKFdLQnVuZGxlUGFn
ZVJlZiBwYWdlLCB1aW50NjRfdCBjb250ZXh0SWQpOworV0tfRVhQT1JUIHZvaWQgV0tCdW5kbGVQ
YWdlRGlkRW50ZXJWaWRlb0Z1bGxzY3JlZW4oV0tCdW5kbGVQYWdlUmVmIHBhZ2UsIHVpbnQ2NF90
IGNvbnRleHRJZCk7CitXS19FWFBPUlQgdm9pZCBXS0J1bmRsZVBhZ2VEaWRFeGl0VmlkZW9GdWxs
c2NyZWVuKFdLQnVuZGxlUGFnZVJlZiBwYWdlLCB1aW50NjRfdCBjb250ZXh0SWQpOworV0tfRVhQ
T1JUIHZvaWQgV0tCdW5kbGVQYWdlRGlkQ2xlYW51cFZpZGVvRnVsbHNjcmVlbihXS0J1bmRsZVBh
Z2VSZWYgcGFnZSwgdWludDY0X3QgY29udGV4dElkKTsKKwogV0tfRVhQT1JUIFdLVHlwZUlEIFdL
QnVuZGxlUGFnZUdldFR5cGVJRCgpOwogCiBXS19FWFBPUlQgdm9pZCBXS0J1bmRsZVBhZ2VTZXRD
b250ZXh0TWVudUNsaWVudChXS0J1bmRsZVBhZ2VSZWYgcGFnZSwgV0tCdW5kbGVQYWdlQ29udGV4
dE1lbnVDbGllbnRCYXNlKiBjbGllbnQpOwpAQCAtNjUsNiArNzQsNyBAQCBXS19FWFBPUlQgdm9p
ZCBXS0J1bmRsZVBhZ2VTZXRSZXNvdXJjZUxvYWRDbGllbnQoV0tCdW5kbGVQYWdlUmVmIHBhZ2Us
IFdLQnVuZGxlUAogV0tfRVhQT1JUIHZvaWQgV0tCdW5kbGVQYWdlU2V0UG9saWN5Q2xpZW50KFdL
QnVuZGxlUGFnZVJlZiBwYWdlLCBXS0J1bmRsZVBhZ2VQb2xpY3lDbGllbnRCYXNlKiBjbGllbnQp
OwogV0tfRVhQT1JUIHZvaWQgV0tCdW5kbGVQYWdlU2V0VUlDbGllbnQoV0tCdW5kbGVQYWdlUmVm
IHBhZ2UsIFdLQnVuZGxlUGFnZVVJQ2xpZW50QmFzZSogY2xpZW50KTsKIFdLX0VYUE9SVCB2b2lk
IFdLQnVuZGxlUGFnZVNldEZ1bGxTY3JlZW5DbGllbnQoV0tCdW5kbGVQYWdlUmVmIHBhZ2UsIFdL
QnVuZGxlUGFnZUZ1bGxTY3JlZW5DbGllbnRCYXNlKiBjbGllbnQpOworV0tfRVhQT1JUIHZvaWQg
V0tCdW5kbGVQYWdlU2V0VmlkZW9GdWxsc2NyZWVuQ2xpZW50KFdLQnVuZGxlUGFnZVJlZiBwYWdl
LCBXS0J1bmRsZVBhZ2VWaWRlb0Z1bGxzY3JlZW5DbGllbnRCYXNlKiBjbGllbnQpOwogCiBXS19F
WFBPUlQgV0tCdW5kbGVQYWdlR3JvdXBSZWYgV0tCdW5kbGVQYWdlR2V0UGFnZUdyb3VwKFdLQnVu
ZGxlUGFnZVJlZiBwYWdlKTsKIFdLX0VYUE9SVCBXS0J1bmRsZUZyYW1lUmVmIFdLQnVuZGxlUGFn
ZUdldE1haW5GcmFtZShXS0J1bmRsZVBhZ2VSZWYgcGFnZSk7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2MvV0tCdW5kbGVQYWdlVmlkZW9G
dWxsc2NyZWVuQ2xpZW50LmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5k
bGUvQVBJL2MvV0tCdW5kbGVQYWdlVmlkZW9GdWxsc2NyZWVuQ2xpZW50LmgKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
MjAxZmQ1ZTY2Yjc5NWY3ZDA1MTVjMjM1YmQwNDUxYmFiNzBmNDFjZAotLS0gL2Rldi9udWxsCisr
KyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvYy9XS0J1bmRs
ZVBhZ2VWaWRlb0Z1bGxzY3JlZW5DbGllbnQuaApAQCAtMCwwICsxLDcwIEBACisvKgorICogQ29w
eXJpZ2h0IChDKSAyMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBS
ZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9y
IHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRo
ZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9u
cyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2Ug
dGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlv
biBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4K
KyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBD
T05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJS
QU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdB
UlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIK
KyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4g
T1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVD
VCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBE
QU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAq
IFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9G
SVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04g
QU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1Qg
TElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisg
KiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZF
TiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8K
KworI3ByYWdtYSBvbmNlCisKKyNpbmNsdWRlIDxXZWJLaXQvV0tCYXNlLmg+CisjaW5jbHVkZSA8
V2ViS2l0L1dLR2VvbWV0cnkuaD4KKworZW51bSB7CisgICAgV0tWaWRlb0Z1bGxzY3JlZW5Nb2Rl
Tm9uZSA9IDAsCisgICAgV0tWaWRlb0Z1bGxzY3JlZW5Nb2RlU3RhbmRhcmQgPSAxIDw8IDAsCisg
ICAgV0tWaWRlb0Z1bGxzY3JlZW5Nb2RlUGljdHVyZUluUGljdHVyZSA9IDEgPDwgMSwKK307Cit0
eXBlZGVmIHVpbnQzMl90IFdLVmlkZW9GdWxsc2NyZWVuTW9kZTsKKwordHlwZWRlZiB2b2lkICgq
V0tCdW5kbGVQYWdlU2V0SGFzVmlkZW8pKFdLQnVuZGxlUGFnZVJlZiBwYWdlLCB1aW50NjRfdCBj
b250ZXh0SWQsIGJvb2wgaGFzVmlkZW8pOwordHlwZWRlZiB2b2lkICgqV0tCdW5kbGVQYWdlU2V0
VmlkZW9EaW1lbnNpb25zKShXS0J1bmRsZVBhZ2VSZWYgcGFnZSwgdWludDY0X3QgY29udGV4dElk
LCBXS1NpemUgdmlkZW9EaW1lbnNpb25zKTsKK3R5cGVkZWYgdm9pZCAoKldLQnVuZGxlUGFnZVNl
dHVwVmlkZW9GdWxsc2NyZWVuV2l0aElEKShXS0J1bmRsZVBhZ2VSZWYgcGFnZSwgdWludDY0X3Qg
Y29udGV4dElkLCB1aW50MzJfdCB2aWRlb0xheWVySUQsIFdLUmVjdCBpbml0aWFsUmVjdCwgZmxv
YXQgaG9zdGluZ1NjYWxlRmFjdG9yLCBXS1ZpZGVvRnVsbHNjcmVlbk1vZGUgdmlkZW9GdWxsc2Ny
ZWVuTW9kZSwgYm9vbCBhbGxvd3NQaWN0dXJlSW5QaWN0dXJlLCBib29sIHN0YW5kYnkpOwordHlw
ZWRlZiB2b2lkICgqV0tCdW5kbGVQYWdlRW50ZXJWaWRlb0Z1bGxzY3JlZW4pKFdLQnVuZGxlUGFn
ZVJlZiBwYWdlLCB1aW50NjRfdCBjb250ZXh0SWQpOwordHlwZWRlZiB2b2lkICgqV0tCdW5kbGVQ
YWdlRXhpdFZpZGVvRnVsbHNjcmVlbikoV0tCdW5kbGVQYWdlUmVmIHBhZ2UsIHVpbnQ2NF90IGNv
bnRleHRJZCwgV0tSZWN0IGZpbmFsUmVjdCk7Cit0eXBlZGVmIHZvaWQgKCpXS0J1bmRsZVBhZ2VT
ZXRJbmxpbmVSZWN0KShXS0J1bmRsZVBhZ2VSZWYgcGFnZSwgdWludDY0X3QgY29udGV4dElkLCBX
S1JlY3QgaW5saW5lUmVjdCwgYm9vbCB2aXNpYmxlKTsKK3R5cGVkZWYgdm9pZCAoKldLQnVuZGxl
UGFnZVNldEhhc1ZpZGVvQ29udGVudExheWVyKShXS0J1bmRsZVBhZ2VSZWYgcGFnZSwgdWludDY0
X3QgY29udGV4dElkLCBib29sIHZhbHVlKTsKK3R5cGVkZWYgdm9pZCAoKldLQnVuZGxlUGFnZUNs
ZWFudXBWaWRlb0Z1bGxzY3JlZW4pKFdLQnVuZGxlUGFnZVJlZiBwYWdlLCB1aW50NjRfdCBjb250
ZXh0SWQpOwordHlwZWRlZiB2b2lkICgqV0tCdW5kbGVQYWdlUHJlcGFyZWRUb1JldHVyblRvSW5s
aW5lKShXS0J1bmRsZVBhZ2VSZWYgcGFnZSwgdWludDY0X3QgY29udGV4dElkLCBib29sIHZpc2li
bGUsIFdLUmVjdCBpbmxpbmVSZWN0KTsKK3R5cGVkZWYgdm9pZCAoKldLQnVuZGxlUGFnZVByZXBh
cmVkVG9FeGl0VmlkZW9GdWxsc2NyZWVuKShXS0J1bmRsZVBhZ2VSZWYgcGFnZSwgdWludDY0X3Qg
Y29udGV4dElkKTsKK3R5cGVkZWYgdm9pZCAoKldLQnVuZGxlUGFnZUV4aXRWaWRlb0Z1bGxzY3Jl
ZW5XaXRob3V0QW5pbWF0aW9uVG9Nb2RlKShXS0J1bmRsZVBhZ2VSZWYgcGFnZSwgdWludDY0X3Qg
Y29udGV4dElkLCBXS1ZpZGVvRnVsbHNjcmVlbk1vZGUgdmlkZW9GdWxsc2NyZWVuTW9kZSk7CisK
K3R5cGVkZWYgc3RydWN0IFdLQnVuZGxlUGFnZVZpZGVvRnVsbHNjcmVlbkNsaWVudEJhc2Ugewor
ICAgIGludCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgdmVyc2lvbjsKKyAgICBjb25zdCB2b2lkICogICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsaWVudEluZm87Cit9IFdL
QnVuZGxlUGFnZVZpZGVvRnVsbHNjcmVlbkNsaWVudEJhc2U7CisKK3R5cGVkZWYgc3RydWN0IFdL
QnVuZGxlUGFnZVZpZGVvRnVsbHNjcmVlbkNsaWVudFYwIHsKKyAgICBXS0J1bmRsZVBhZ2VWaWRl
b0Z1bGxzY3JlZW5DbGllbnRCYXNlICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJhc2U7
CisKKyAgICAvLyBWZXJzaW9uIDAuCisgICAgV0tCdW5kbGVQYWdlU2V0SGFzVmlkZW8gICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZXRIYXNWaWRlbzsKKyAgICBX
S0J1bmRsZVBhZ2VTZXRWaWRlb0RpbWVuc2lvbnMgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIHNldFZpZGVvRGltZW5zaW9uczsKKyAgICBXS0J1bmRsZVBhZ2VTZXR1cFZpZGVv
RnVsbHNjcmVlbldpdGhJRCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNldHVwRnVsbHNj
cmVlbldpdGhJRDsKKyAgICBXS0J1bmRsZVBhZ2VFbnRlclZpZGVvRnVsbHNjcmVlbiAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVudGVyRnVsbHNjcmVlbjsKKyAgICBXS0J1bmRs
ZVBhZ2VFeGl0VmlkZW9GdWxsc2NyZWVuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIGV4aXRGdWxsc2NyZWVuOworICAgIFdLQnVuZGxlUGFnZVNldElubGluZVJlY3QgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2V0SW5saW5lUmVjdDsKKyAgICBX
S0J1bmRsZVBhZ2VTZXRIYXNWaWRlb0NvbnRlbnRMYXllciAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIHNldEhhc1ZpZGVvQ29udGVudExheWVyOworICAgIFdLQnVuZGxlUGFnZUNsZWFu
dXBWaWRlb0Z1bGxzY3JlZW4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xlYW51
cEZ1bGxzY3JlZW47CisgICAgV0tCdW5kbGVQYWdlUHJlcGFyZWRUb1JldHVyblRvSW5saW5lICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwcmVwYXJlZFRvUmV0cnVuVG9JbmxpbmU7Cisg
ICAgV0tCdW5kbGVQYWdlUHJlcGFyZWRUb0V4aXRWaWRlb0Z1bGxzY3JlZW4gICAgICAgICAgICAg
ICAgICAgICAgICAgICBwcmVwYXJlZFRvRXhpdEZ1bGxzY3JlZW47CisgICAgV0tCdW5kbGVQYWdl
RXhpdFZpZGVvRnVsbHNjcmVlbldpdGhvdXRBbmltYXRpb25Ub01vZGUgICAgICAgICAgICAgICBl
eGl0RnVsbHNjcmVlbldpdGhvdXRBbmltYXRpb25Ub01vZGU7Cit9IFdLQnVuZGxlUGFnZVZpZGVv
RnVsbHNjcmVlbkNsaWVudFYwOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L0luamVjdGVkQnVuZGxlL0luamVjdGVkQnVuZGxlUGFnZUZ1bGxTY3JlZW5DbGllbnQuY3BwIGIv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0luamVjdGVkQnVuZGxlUGFn
ZUZ1bGxTY3JlZW5DbGllbnQuY3BwCmluZGV4IGY3MTNiNWE0MjNmYzc5ZWE2YzVmYjYwMjQzZTc2
ODJmMDUwOWY2OWMuLjliNDgwMWY1NzYzYWMzZTU5YmViZWFlZGQyNTMzMzQ2NGE0NmRhOTMgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9JbmplY3Rl
ZEJ1bmRsZVBhZ2VGdWxsU2NyZWVuQ2xpZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvSW5qZWN0ZWRCdW5kbGUvSW5qZWN0ZWRCdW5kbGVQYWdlRnVsbFNjcmVlbkNsaWVudC5j
cHAKQEAgLTI0LDExICsyNCwxMCBAQAogICovCiAKICNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNs
dWRlICJJbmplY3RlZEJ1bmRsZVBhZ2VGdWxsU2NyZWVuQ2xpZW50LmgiCiAKICNpZiBFTkFCTEUo
RlVMTFNDUkVFTl9BUEkpCiAKLSNpbmNsdWRlICJJbmplY3RlZEJ1bmRsZVBhZ2VGdWxsU2NyZWVu
Q2xpZW50LmgiCi0KICNpbmNsdWRlICJJbmplY3RlZEJ1bmRsZU5vZGVIYW5kbGUuaCIKICNpbmNs
dWRlICJXS0FQSUNhc3QuaCIKICNpbmNsdWRlICJXS0J1bmRsZUFQSUNhc3QuaCIKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRs
ZVBhZ2VGdWxsU2NyZWVuQ2xpZW50LmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0
ZWRCdW5kbGUvSW5qZWN0ZWRCdW5kbGVQYWdlRnVsbFNjcmVlbkNsaWVudC5oCmluZGV4IDY1NjNi
NmM2ZGYzODMzNzlmYjhhYmYxMDlkN2U1OTg1NWE3YzkzOGIuLjRlY2RkMTFhNWQ1MGM0MWI4ZTRl
ZmQwYzI2NWE5NGNjZTg1NGE1Y2MgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9JbmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZVBhZ2VGdWxsU2NyZWVuQ2xpZW50LmgKKysr
IGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0luamVjdGVkQnVuZGxl
UGFnZUZ1bGxTY3JlZW5DbGllbnQuaApAQCAtMjMsOCArMjMsNyBAQAogICogVEhFIFBPU1NJQklM
SVRZIE9GIFNVQ0ggREFNQUdFLgogICovCiAKLSNpZm5kZWYgSW5qZWN0ZWRCdW5kbGVQYWdlRnVs
bFNjcmVlbkNsaWVudF9oCi0jZGVmaW5lIEluamVjdGVkQnVuZGxlUGFnZUZ1bGxTY3JlZW5DbGll
bnRfaAorI3ByYWdtYSBvbmNlCiAKICNpZiBFTkFCTEUoRlVMTFNDUkVFTl9BUEkpCiAKQEAgLTYw
LDUgKzU5LDMgQEAgcHVibGljOgogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CiAKICNlbmRpZiAvLyBF
TkFCTEUoRlVMTFNDUkVFTl9BUEkpCi0KLSNlbmRpZiAvLyBJbmplY3RlZEJ1bmRsZVBhZ2VGdWxs
U2NyZWVuQ2xpZW50X2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9Jbmpl
Y3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZVBhZ2VWaWRlb0Z1bGxzY3JlZW5DbGllbnQuY3BwIGIv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0luamVjdGVkQnVuZGxlUGFn
ZVZpZGVvRnVsbHNjcmVlbkNsaWVudC5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uY2FhYTVmMTM3YzJlNDAyZWVl
NWFiYzQwODk4MzdlMGI0YzJmY2VlZQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZVBhZ2VWaWRlb0Z1bGxzY3Jl
ZW5DbGllbnQuY3BwCkBAIC0wLDAgKzEsMTM0IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIw
IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBh
bmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1v
ZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29u
ZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29k
ZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRp
c3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHly
aWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIg
bWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNP
RlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBB
UyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVS
Q0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJF
IERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJV
VE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwg
U1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09P
RFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVT
UworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBM
SUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBU
T1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFO
WSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9G
CisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNv
bmZpZy5oIgorI2luY2x1ZGUgIkluamVjdGVkQnVuZGxlUGFnZVZpZGVvRnVsbHNjcmVlbkNsaWVu
dC5oIgorCisjaWYgRU5BQkxFKFZJREVPX1BSRVNFTlRBVElPTl9NT0RFKQorCisjaW5jbHVkZSAi
VmlkZW9GdWxsc2NyZWVuTWFuYWdlclByb3h5TWVzc2FnZXMuaCIKKyNpbmNsdWRlICJXS0FQSUNh
c3QuaCIKKyNpbmNsdWRlICJXS0J1bmRsZUFQSUNhc3QuaCIKKyNpbmNsdWRlICJXZWJDb3JlQXJn
dW1lbnRDb2RlcnMuaCIKKyNpbmNsdWRlICJXZWJQYWdlLmgiCisjaW5jbHVkZSA8V2ViQ29yZS9G
bG9hdFNpemUuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL0ludFJlY3QuaD4KKworbmFtZXNwYWNlIFdl
YktpdCB7Cit1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKKwordm9pZCBJbmplY3RlZEJ1bmRsZVBh
Z2VWaWRlb0Z1bGxzY3JlZW5DbGllbnQ6OnNldEhhc1ZpZGVvKFdlYlBhZ2UqIHBhZ2UsIHVpbnQ2
NF90IGNvbnRleHRJZCwgYm9vbCBoYXNWaWRlbykKK3sKKyAgICBpZiAobV9jbGllbnQuc2V0SGFz
VmlkZW8pCisgICAgICAgIG1fY2xpZW50LnNldEhhc1ZpZGVvKHRvQVBJKHBhZ2UpLCBjb250ZXh0
SWQsIGhhc1ZpZGVvKTsKKyAgICBlbHNlCisgICAgICAgIHBhZ2UtPnNlbmQoTWVzc2FnZXM6OlZp
ZGVvRnVsbHNjcmVlbk1hbmFnZXJQcm94eTo6U2V0SGFzVmlkZW8oY29udGV4dElkLCBoYXNWaWRl
bykpOworfQorCit2b2lkIEluamVjdGVkQnVuZGxlUGFnZVZpZGVvRnVsbHNjcmVlbkNsaWVudDo6
c2V0VmlkZW9EaW1lbnNpb25zKFdlYlBhZ2UqIHBhZ2UsIHVpbnQ2NF90IGNvbnRleHRJZCwgRmxv
YXRTaXplIHZpZGVvRGltZW5zaW9ucykKK3sKKyAgICBpZiAobV9jbGllbnQuc2V0VmlkZW9EaW1l
bnNpb25zKQorICAgICAgICBtX2NsaWVudC5zZXRWaWRlb0RpbWVuc2lvbnModG9BUEkocGFnZSks
IGNvbnRleHRJZCwgdG9BUEkodmlkZW9EaW1lbnNpb25zKSk7CisgICAgZWxzZQorICAgICAgICBw
YWdlLT5zZW5kKE1lc3NhZ2VzOjpWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyUHJveHk6OlNldFZpZGVv
RGltZW5zaW9ucyhjb250ZXh0SWQsIHZpZGVvRGltZW5zaW9ucykpOworfQorCit2b2lkIEluamVj
dGVkQnVuZGxlUGFnZVZpZGVvRnVsbHNjcmVlbkNsaWVudDo6c2V0dXBGdWxsc2NyZWVuV2l0aElE
KFdlYlBhZ2UqIHBhZ2UsIHVpbnQ2NF90IGNvbnRleHRJZCwgdWludDMyX3QgdmlkZW9MYXllcklk
LCBJbnRSZWN0IGluaXRpYWxSZWN0LCBmbG9hdCBob3N0aW5nU2NhbGVGYWN0b3IsIEhUTUxNZWRp
YUVsZW1lbnRFbnVtczo6VmlkZW9GdWxsc2NyZWVuTW9kZSB2aWRlb0Z1bGxzY3JlZW5Nb2RlLCBi
b29sIGFsbG93c1BpY3R1cmVJblBpY3R1cmUsIGJvb2wgc3RhbmRieSkKK3sKKyAgICBpZiAobV9j
bGllbnQuc2V0dXBGdWxsc2NyZWVuV2l0aElEKQorICAgICAgICBtX2NsaWVudC5zZXR1cEZ1bGxz
Y3JlZW5XaXRoSUQodG9BUEkocGFnZSksIGNvbnRleHRJZCwgdmlkZW9MYXllcklkLCB0b0FQSShp
bml0aWFsUmVjdCksIGhvc3RpbmdTY2FsZUZhY3RvciwgdmlkZW9GdWxsc2NyZWVuTW9kZSwgYWxs
b3dzUGljdHVyZUluUGljdHVyZSwgc3RhbmRieSk7CisgICAgZWxzZQorICAgICAgICBwYWdlLT5z
ZW5kKE1lc3NhZ2VzOjpWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyUHJveHk6OlNldHVwRnVsbHNjcmVl
bldpdGhJRChjb250ZXh0SWQsIHZpZGVvTGF5ZXJJZCwgaW5pdGlhbFJlY3QsIGhvc3RpbmdTY2Fs
ZUZhY3RvciwgdmlkZW9GdWxsc2NyZWVuTW9kZSwgYWxsb3dzUGljdHVyZUluUGljdHVyZSwgc3Rh
bmRieSkpOworfQorCit2b2lkIEluamVjdGVkQnVuZGxlUGFnZVZpZGVvRnVsbHNjcmVlbkNsaWVu
dDo6ZW50ZXJGdWxsc2NyZWVuKFdlYlBhZ2UqIHBhZ2UsIHVpbnQ2NF90IGNvbnRleHRJZCkKK3sK
KyAgICBpZiAobV9jbGllbnQuZW50ZXJGdWxsc2NyZWVuKQorICAgICAgICBtX2NsaWVudC5lbnRl
ckZ1bGxzY3JlZW4odG9BUEkocGFnZSksIGNvbnRleHRJZCk7CisgICAgZWxzZQorICAgICAgICBw
YWdlLT5zZW5kKE1lc3NhZ2VzOjpWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyUHJveHk6OkVudGVyRnVs
bHNjcmVlbihjb250ZXh0SWQpKTsKK30KKwordm9pZCBJbmplY3RlZEJ1bmRsZVBhZ2VWaWRlb0Z1
bGxzY3JlZW5DbGllbnQ6OmV4aXRGdWxsc2NyZWVuKFdlYlBhZ2UqIHBhZ2UsIHVpbnQ2NF90IGNv
bnRleHRJZCwgSW50UmVjdCBmaW5hbFJlY3QpCit7CisgICAgaWYgKG1fY2xpZW50LmV4aXRGdWxs
c2NyZWVuKQorICAgICAgICBtX2NsaWVudC5leGl0RnVsbHNjcmVlbih0b0FQSShwYWdlKSwgY29u
dGV4dElkLCB0b0FQSShmaW5hbFJlY3QpKTsKKyAgICBlbHNlCisgICAgICAgIHBhZ2UtPnNlbmQo
TWVzc2FnZXM6OlZpZGVvRnVsbHNjcmVlbk1hbmFnZXJQcm94eTo6RXhpdEZ1bGxzY3JlZW4oY29u
dGV4dElkLCBmaW5hbFJlY3QpKTsKK30KKwordm9pZCBJbmplY3RlZEJ1bmRsZVBhZ2VWaWRlb0Z1
bGxzY3JlZW5DbGllbnQ6OnNldElubGluZVJlY3QoV2ViUGFnZSogcGFnZSwgdWludDY0X3QgY29u
dGV4dElkLCBJbnRSZWN0IGlubGluZVJlY3QsIGJvb2wgdmlzaWJsZSkKK3sKKyAgICBpZiAobV9j
bGllbnQuc2V0SW5saW5lUmVjdCkKKyAgICAgICAgbV9jbGllbnQuc2V0SW5saW5lUmVjdCh0b0FQ
SShwYWdlKSwgY29udGV4dElkLCB0b0FQSShpbmxpbmVSZWN0KSwgdmlzaWJsZSk7CisgICAgZWxz
ZQorICAgICAgICBwYWdlLT5zZW5kKE1lc3NhZ2VzOjpWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyUHJv
eHk6OlNldElubGluZVJlY3QoY29udGV4dElkLCBpbmxpbmVSZWN0LCB2aXNpYmxlKSk7Cit9CisK
K3ZvaWQgSW5qZWN0ZWRCdW5kbGVQYWdlVmlkZW9GdWxsc2NyZWVuQ2xpZW50OjpzZXRIYXNWaWRl
b0NvbnRlbnRMYXllcihXZWJQYWdlKiBwYWdlLCB1aW50NjRfdCBjb250ZXh0SWQsIGJvb2wgdmFs
dWUpCit7CisgICAgaWYgKG1fY2xpZW50LnNldEhhc1ZpZGVvQ29udGVudExheWVyKQorICAgICAg
ICBtX2NsaWVudC5zZXRIYXNWaWRlb0NvbnRlbnRMYXllcih0b0FQSShwYWdlKSwgY29udGV4dElk
LCB2YWx1ZSk7CisgICAgZWxzZQorICAgICAgICBwYWdlLT5zZW5kKE1lc3NhZ2VzOjpWaWRlb0Z1
bGxzY3JlZW5NYW5hZ2VyUHJveHk6OlNldEhhc1ZpZGVvQ29udGVudExheWVyKGNvbnRleHRJZCwg
dmFsdWUpKTsKK30KKwordm9pZCBJbmplY3RlZEJ1bmRsZVBhZ2VWaWRlb0Z1bGxzY3JlZW5DbGll
bnQ6OmNsZWFudXBGdWxsc2NyZWVuKFdlYlBhZ2UqIHBhZ2UsIHVpbnQ2NF90IGNvbnRleHRJZCkK
K3sKKyAgICBpZiAobV9jbGllbnQuY2xlYW51cEZ1bGxzY3JlZW4pCisgICAgICAgIG1fY2xpZW50
LmNsZWFudXBGdWxsc2NyZWVuKHRvQVBJKHBhZ2UpLCBjb250ZXh0SWQpOworICAgIGVsc2UKKyAg
ICAgICAgcGFnZS0+c2VuZChNZXNzYWdlczo6VmlkZW9GdWxsc2NyZWVuTWFuYWdlclByb3h5OjpD
bGVhbnVwRnVsbHNjcmVlbihjb250ZXh0SWQpKTsKK30KKwordm9pZCBJbmplY3RlZEJ1bmRsZVBh
Z2VWaWRlb0Z1bGxzY3JlZW5DbGllbnQ6OnByZXBhcmVkVG9SZXR1cm5Ub0lubGluZShXZWJQYWdl
KiBwYWdlLCB1aW50NjRfdCBjb250ZXh0SWQsIGJvb2wgdmlzaWJsZSwgSW50UmVjdCBpbmxpbmVS
ZWN0KQoreworICAgIGlmIChtX2NsaWVudC5wcmVwYXJlZFRvUmV0cnVuVG9JbmxpbmUpCisgICAg
ICAgIG1fY2xpZW50LnByZXBhcmVkVG9SZXRydW5Ub0lubGluZSh0b0FQSShwYWdlKSwgY29udGV4
dElkLCB2aXNpYmxlLCB0b0FQSShpbmxpbmVSZWN0KSk7CisgICAgZWxzZQorICAgICAgICBwYWdl
LT5zZW5kKE1lc3NhZ2VzOjpWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyUHJveHk6OlByZXBhcmVkVG9S
ZXR1cm5Ub0lubGluZShjb250ZXh0SWQsIHZpc2libGUsIGlubGluZVJlY3QpKTsKK30KKwordm9p
ZCBJbmplY3RlZEJ1bmRsZVBhZ2VWaWRlb0Z1bGxzY3JlZW5DbGllbnQ6OnByZXBhcmVkVG9FeGl0
RnVsbHNjcmVlbihXZWJQYWdlKiBwYWdlLCB1aW50NjRfdCBjb250ZXh0SWQpCit7CisgICAgaWYg
KG1fY2xpZW50LnByZXBhcmVkVG9FeGl0RnVsbHNjcmVlbikKKyAgICAgICAgbV9jbGllbnQucHJl
cGFyZWRUb0V4aXRGdWxsc2NyZWVuKHRvQVBJKHBhZ2UpLCBjb250ZXh0SWQpOworICAgIGVsc2UK
KyAgICAgICAgcGFnZS0+c2VuZChNZXNzYWdlczo6VmlkZW9GdWxsc2NyZWVuTWFuYWdlclByb3h5
OjpQcmVwYXJlZFRvRXhpdEZ1bGxzY3JlZW4oY29udGV4dElkKSk7Cit9CisKKyNpZiBQTEFURk9S
TShNQUMpICYmIEVOQUJMRShWSURFT19QUkVTRU5UQVRJT05fTU9ERSkKK3ZvaWQgSW5qZWN0ZWRC
dW5kbGVQYWdlVmlkZW9GdWxsc2NyZWVuQ2xpZW50OjpleGl0RnVsbHNjcmVlbldpdGhvdXRBbmlt
YXRpb25Ub01vZGUoV2ViUGFnZSogcGFnZSwgdWludDY0X3QgY29udGV4dElkLCBIVE1MTWVkaWFF
bGVtZW50RW51bXM6OlZpZGVvRnVsbHNjcmVlbk1vZGUgdmlkZW9GdWxsc2NyZWVuTW9kZSkKK3sK
KyAgICBpZiAobV9jbGllbnQuZXhpdEZ1bGxzY3JlZW5XaXRob3V0QW5pbWF0aW9uVG9Nb2RlKQor
ICAgICAgICBtX2NsaWVudC5leGl0RnVsbHNjcmVlbldpdGhvdXRBbmltYXRpb25Ub01vZGUodG9B
UEkocGFnZSksIGNvbnRleHRJZCwgdmlkZW9GdWxsc2NyZWVuTW9kZSk7CisgICAgZWxzZQorICAg
ICAgICBwYWdlLT5zZW5kKE1lc3NhZ2VzOjpWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyUHJveHk6OkV4
aXRGdWxsc2NyZWVuV2l0aG91dEFuaW1hdGlvblRvTW9kZShjb250ZXh0SWQsIHZpZGVvRnVsbHNj
cmVlbk1vZGUpKTsKK30KKyNlbmRpZgorCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQKKworI2VuZGlm
IC8vIEVOQUJMRShWSURFT19QUkVTRU5UQVRJT05fTU9ERSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZVBhZ2VWaWRlb0Z1
bGxzY3JlZW5DbGllbnQuaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRs
ZS9JbmplY3RlZEJ1bmRsZVBhZ2VWaWRlb0Z1bGxzY3JlZW5DbGllbnQuaApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5k
MTkxZjYwNDE3YzI5Y2I3MGI0YjkyMWU5MTE5ZDE3N2QyZGQ3MThjCi0tLSAvZGV2L251bGwKKysr
IGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0luamVjdGVkQnVuZGxl
UGFnZVZpZGVvRnVsbHNjcmVlbkNsaWVudC5oCkBAIC0wLDAgKzEsNzAgQEAKKy8qCisgKiBDb3B5
cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJl
ZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Ig
d2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhl
IGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25z
IG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0
aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9u
IGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgor
ICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENP
TlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJB
TlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FS
UkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgor
ICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBP
UiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNU
LCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERB
TUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICog
U1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJ
VFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBB
TlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBM
SUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAq
IEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVO
IElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLwor
CisjcHJhZ21hIG9uY2UKKworI2lmIEVOQUJMRShWSURFT19QUkVTRU5UQVRJT05fTU9ERSkKKwor
I2luY2x1ZGUgIkFQSUNsaWVudC5oIgorI2luY2x1ZGUgIldLQnVuZGxlUGFnZVZpZGVvRnVsbHNj
cmVlbkNsaWVudC5oIgorI2luY2x1ZGUgPFdlYkNvcmUvSFRNTE1lZGlhRWxlbWVudEVudW1zLmg+
CisjaW5jbHVkZSA8d3RmL0ZvcndhcmQuaD4KKworbmFtZXNwYWNlIEFQSSB7Cit0ZW1wbGF0ZTw+
IHN0cnVjdCBDbGllbnRUcmFpdHM8V0tCdW5kbGVQYWdlVmlkZW9GdWxsc2NyZWVuQ2xpZW50QmFz
ZT4geworICAgIHR5cGVkZWYgc3RkOjp0dXBsZTxXS0J1bmRsZVBhZ2VWaWRlb0Z1bGxzY3JlZW5D
bGllbnRWMD4gVmVyc2lvbnM7Cit9OworfQorCituYW1lc3BhY2UgV2ViQ29yZSB7CitjbGFzcyBF
bGVtZW50OworY2xhc3MgRmxvYXRTaXplOworY2xhc3MgSW50UmVjdDsKK30KKworbmFtZXNwYWNl
IFdlYktpdCB7CisKK2NsYXNzIFdlYlBhZ2U7CisKK2NsYXNzIEluamVjdGVkQnVuZGxlUGFnZVZp
ZGVvRnVsbHNjcmVlbkNsaWVudCA6IHB1YmxpYyBBUEk6OkNsaWVudDxXS0J1bmRsZVBhZ2VWaWRl
b0Z1bGxzY3JlZW5DbGllbnRCYXNlPiB7CitwdWJsaWM6CisgICAgdm9pZCBzZXRIYXNWaWRlbyhX
ZWJQYWdlKiwgdWludDY0X3QgY29udGV4dElkLCBib29sIGhhc1ZpZGVvKTsKKyAgICB2b2lkIHNl
dFZpZGVvRGltZW5zaW9ucyhXZWJQYWdlKiwgdWludDY0X3QgY29udGV4dElkLCBXZWJDb3JlOjpG
bG9hdFNpemUgdmlkZW9EaW1lbnNpb25zKTsKKyAgICB2b2lkIHNldHVwRnVsbHNjcmVlbldpdGhJ
RChXZWJQYWdlKiwgdWludDY0X3QgY29udGV4dElkLCB1aW50MzJfdCB2aWRlb0xheWVySUQsIFdl
YkNvcmU6OkludFJlY3QgaW5pdGlhbFJlY3QsIGZsb2F0IGhvc3RpbmdTY2FsZUZhY3RvciwgV2Vi
Q29yZTo6SFRNTE1lZGlhRWxlbWVudEVudW1zOjpWaWRlb0Z1bGxzY3JlZW5Nb2RlLCBib29sIGFs
bG93c1BpY3R1cmVJblBpY3R1cmUsIGJvb2wgc3RhbmRieSk7CisgICAgdm9pZCBlbnRlckZ1bGxz
Y3JlZW4oV2ViUGFnZSosIHVpbnQ2NF90IGNvbnRleHRJZCk7CisgICAgdm9pZCBleGl0RnVsbHNj
cmVlbihXZWJQYWdlKiwgdWludDY0X3QgY29udGV4dElkLCBXZWJDb3JlOjpJbnRSZWN0IGZpbmFs
UmVjdCk7CisgICAgdm9pZCBzZXRJbmxpbmVSZWN0KFdlYlBhZ2UqLCB1aW50NjRfdCBjb250ZXh0
SWQsIFdlYkNvcmU6OkludFJlY3QgaW5saW5lUmVjdCwgYm9vbCB2aXNpYmxlKTsKKyAgICB2b2lk
IHNldEhhc1ZpZGVvQ29udGVudExheWVyKFdlYlBhZ2UqLCB1aW50NjRfdCBjb250ZXh0SWQsIGJv
b2wgdmFsdWUpOworICAgIHZvaWQgY2xlYW51cEZ1bGxzY3JlZW4oV2ViUGFnZSosIHVpbnQ2NF90
IGNvbnRleHRJZCk7CisgICAgdm9pZCBwcmVwYXJlZFRvUmV0dXJuVG9JbmxpbmUoV2ViUGFnZSos
IHVpbnQ2NF90IGNvbnRleHRJZCwgYm9vbCB2aXNpYmxlLCBXZWJDb3JlOjpJbnRSZWN0IGlubGlu
ZVJlY3QpOworICAgIHZvaWQgcHJlcGFyZWRUb0V4aXRGdWxsc2NyZWVuKFdlYlBhZ2UqLCB1aW50
NjRfdCBjb250ZXh0SWQpOworI2lmIFBMQVRGT1JNKE1BQykgJiYgRU5BQkxFKFZJREVPX1BSRVNF
TlRBVElPTl9NT0RFKQorICAgIHZvaWQgZXhpdEZ1bGxzY3JlZW5XaXRob3V0QW5pbWF0aW9uVG9N
b2RlKFdlYlBhZ2UqLCB1aW50NjRfdCBjb250ZXh0SWQsIFdlYkNvcmU6OkhUTUxNZWRpYUVsZW1l
bnRFbnVtczo6VmlkZW9GdWxsc2NyZWVuTW9kZSk7CisjZW5kaWYKK307CisKK30gLy8gbmFtZXNw
YWNlIFdlYktpdAorCisjZW5kaWYgLy8gUExBVEZPUk0oSU9TX0ZBTUlMWSkgfHwgKFBMQVRGT1JN
KE1BQykgJiYgRU5BQkxFKFZJREVPX1BSRVNFTlRBVElPTl9NT0RFKSkKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwIGIvU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAKaW5kZXggNWI0Y2VmZjNlYWIyYmE3ZDVi
NzhlMmExYzllNjMwYjJlN2ZkNTM4YS4uZDcyYTIxZjM2OWNiOGRlNGMyYjdjM2E4MzcxMzBkMDc5
NjE3ODRlYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2Vi
UGFnZS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5j
cHAKQEAgLTk2OSw2ICs5NjksMTMgQEAgdm9pZCBXZWJQYWdlOjppbml0aWFsaXplSW5qZWN0ZWRC
dW5kbGVGdWxsU2NyZWVuQ2xpZW50KFdLQnVuZGxlUGFnZUZ1bGxTY3JlZW5DbGkKIH0KICNlbmRp
ZgogCisjaWYgRU5BQkxFKFZJREVPX1BSRVNFTlRBVElPTl9NT0RFKQordm9pZCBXZWJQYWdlOjpp
bml0aWFsaXplSW5qZWN0ZWRCdW5kbGVWaWRlb0Z1bGxzY3JlZW5DbGllbnQoV0tCdW5kbGVQYWdl
VmlkZW9GdWxsc2NyZWVuQ2xpZW50QmFzZSogY2xpZW50KQoreworICAgIG1fdmlkZW9GdWxsc2Ny
ZWVuQ2xpZW50LmluaXRpYWxpemUoY2xpZW50KTsKK30KKyNlbmRpZgorCiAjaWYgRU5BQkxFKE5F
VFNDQVBFX1BMVUdJTl9BUEkpCiAKIGNvbnN0ZXhwciBpbnQgc21hbGxQbHVnaW5EaW1lbnNpb25U
aHJlc2hvbGQgPSA1OwpAQCAtMTQxNCw2ICsxNDIxLDEwIEBAIHZvaWQgV2ViUGFnZTo6Y2xvc2Uo
KQogICAgIG1fZnVsbFNjcmVlbkNsaWVudC5pbml0aWFsaXplKDApOwogI2VuZGlmCiAKKyNpZiBF
TkFCTEUoVklERU9fUFJFU0VOVEFUSU9OX01PREUpCisgICAgbV92aWRlb0Z1bGxzY3JlZW5DbGll
bnQuaW5pdGlhbGl6ZSgwKTsKKyNlbmRpZgorCiAgICAgbV9wcmludENvbnRleHQgPSBudWxscHRy
OwogICAgIG1fbWFpbkZyYW1lLT5jb3JlRnJhbWUoKS0+bG9hZGVyKCkuZGV0YWNoRnJvbVBhcmVu
dCgpOwogICAgIG1fZHJhd2luZ0FyZWEgPSBudWxscHRyOwpAQCAtMzgzOSwyMCArMzg1MCwyMyBA
QCB2b2lkIFdlYlBhZ2U6Omluc3BlY3RvckZyb250ZW5kQ291bnRDaGFuZ2VkKHVuc2lnbmVkIGNv
dW50KQogICAgIHNlbmQoTWVzc2FnZXM6OldlYlBhZ2VQcm94eTo6RGlkQ2hhbmdlSW5zcGVjdG9y
RnJvbnRlbmRDb3VudChjb3VudCkpOwogfQogCi0jaWYgRU5BQkxFKFZJREVPX1BSRVNFTlRBVElP
Tl9NT0RFKQorI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpIHx8IChQTEFURk9STShNQUMpICYmIEVO
QUJMRShWSURFT19QUkVTRU5UQVRJT05fTU9ERSkpCiBQbGF5YmFja1Nlc3Npb25NYW5hZ2VyJiBX
ZWJQYWdlOjpwbGF5YmFja1Nlc3Npb25NYW5hZ2VyKCkKIHsKICAgICBpZiAoIW1fcGxheWJhY2tT
ZXNzaW9uTWFuYWdlcikKICAgICAgICAgbV9wbGF5YmFja1Nlc3Npb25NYW5hZ2VyID0gUGxheWJh
Y2tTZXNzaW9uTWFuYWdlcjo6Y3JlYXRlKCp0aGlzKTsKICAgICByZXR1cm4gKm1fcGxheWJhY2tT
ZXNzaW9uTWFuYWdlcjsKIH0KKyNlbmRpZgogCisjaWYgRU5BQkxFKFZJREVPX1BSRVNFTlRBVElP
Tl9NT0RFKQogVmlkZW9GdWxsc2NyZWVuTWFuYWdlciYgV2ViUGFnZTo6dmlkZW9GdWxsc2NyZWVu
TWFuYWdlcigpCiB7CiAgICAgaWYgKCFtX3ZpZGVvRnVsbHNjcmVlbk1hbmFnZXIpCiAgICAgICAg
IG1fdmlkZW9GdWxsc2NyZWVuTWFuYWdlciA9IFZpZGVvRnVsbHNjcmVlbk1hbmFnZXI6OmNyZWF0
ZSgqdGhpcywgcGxheWJhY2tTZXNzaW9uTWFuYWdlcigpKTsKICAgICByZXR1cm4gKm1fdmlkZW9G
dWxsc2NyZWVuTWFuYWdlcjsKIH0KKyNlbmRpZgogCiB2b2lkIFdlYlBhZ2U6OnZpZGVvQ29udHJv
bHNNYW5hZ2VyRGlkQ2hhbmdlKCkKIHsKQEAgLTM4NjIsOCArMzg3Niw2IEBAIHZvaWQgV2ViUGFn
ZTo6dmlkZW9Db250cm9sc01hbmFnZXJEaWRDaGFuZ2UoKQogI2VuZGlmCiB9CiAKLSNlbmRpZgot
CiAjaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKIHZvaWQgV2ViUGFnZTo6c2V0QWxsb3dzTWVkaWFE
b2N1bWVudElubGluZVBsYXliYWNrKGJvb2wgYWxsb3dzKQogewpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5oIGIvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5oCmluZGV4IDgyMjY1ZDRjMWFkOGNkMmNlZDdhYTcyOWE5
NTc5ZDZmMmIzNDhiNTguLmVjM2RhNmY1ZWQwYTBjYTkwZjRhNmQzNWM4YmM2MDY4MGZhM2ViZDAg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaAor
KysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmgKQEAgLTQwLDYg
KzQwLDcgQEAKICNpbmNsdWRlICJJbmplY3RlZEJ1bmRsZVBhZ2VDb250ZXh0TWVudUNsaWVudC5o
IgogI2luY2x1ZGUgIkluamVjdGVkQnVuZGxlUGFnZUZ1bGxTY3JlZW5DbGllbnQuaCIKICNpbmNs
dWRlICJJbmplY3RlZEJ1bmRsZVBhZ2VQb2xpY3lDbGllbnQuaCIKKyNpbmNsdWRlICJJbmplY3Rl
ZEJ1bmRsZVBhZ2VWaWRlb0Z1bGxzY3JlZW5DbGllbnQuaCIKICNpbmNsdWRlICJMYXllclRyZWVD
b250ZXh0LmgiCiAjaW5jbHVkZSAiTWVzc2FnZVJlY2VpdmVyLmgiCiAjaW5jbHVkZSAiTWVzc2Fn
ZVNlbmRlci5oIgpAQCAtNDUzLDYgKzQ1NCwxMCBAQCBwdWJsaWM6CiAgICAgdm9pZCBpbml0aWFs
aXplSW5qZWN0ZWRCdW5kbGVGdWxsU2NyZWVuQ2xpZW50KFdLQnVuZGxlUGFnZUZ1bGxTY3JlZW5D
bGllbnRCYXNlKik7CiAjZW5kaWYKIAorI2lmIEVOQUJMRShWSURFT19QUkVTRU5UQVRJT05fTU9E
RSkKKyAgICB2b2lkIGluaXRpYWxpemVJbmplY3RlZEJ1bmRsZVZpZGVvRnVsbHNjcmVlbkNsaWVu
dChXS0J1bmRsZVBhZ2VWaWRlb0Z1bGxzY3JlZW5DbGllbnRCYXNlKik7CisjZW5kaWYKKwogI2lm
IEVOQUJMRShDT05URVhUX01FTlVTKQogICAgIEFQSTo6SW5qZWN0ZWRCdW5kbGU6OlBhZ2VDb250
ZXh0TWVudUNsaWVudCYgaW5qZWN0ZWRCdW5kbGVDb250ZXh0TWVudUNsaWVudCgpIHsgcmV0dXJu
ICptX2NvbnRleHRNZW51Q2xpZW50OyB9CiAjZW5kaWYKQEAgLTQ2Niw2ICs0NzEsMTAgQEAgcHVi
bGljOgogICAgIEluamVjdGVkQnVuZGxlUGFnZUZ1bGxTY3JlZW5DbGllbnQmIGluamVjdGVkQnVu
ZGxlRnVsbFNjcmVlbkNsaWVudCgpIHsgcmV0dXJuIG1fZnVsbFNjcmVlbkNsaWVudDsgfQogI2Vu
ZGlmCiAKKyNpZiBFTkFCTEUoVklERU9fUFJFU0VOVEFUSU9OX01PREUpCisgICAgSW5qZWN0ZWRC
dW5kbGVQYWdlVmlkZW9GdWxsc2NyZWVuQ2xpZW50JiBpbmplY3RlZEJ1bmRsZVZpZGVvRnVsbHNj
cmVlbkNsaWVudCgpIHsgcmV0dXJuIG1fdmlkZW9GdWxsc2NyZWVuQ2xpZW50OyB9CisjZW5kaWYK
KwogICAgIGJvb2wgZmluZFN0cmluZ0Zyb21JbmplY3RlZEJ1bmRsZShjb25zdCBTdHJpbmcmLCBG
aW5kT3B0aW9ucyk7CiAgICAgdm9pZCBmaW5kU3RyaW5nTWF0Y2hlc0Zyb21JbmplY3RlZEJ1bmRs
ZShjb25zdCBTdHJpbmcmLCBGaW5kT3B0aW9ucyk7CiAgICAgdm9pZCByZXBsYWNlU3RyaW5nTWF0
Y2hlc0Zyb21JbmplY3RlZEJ1bmRsZShjb25zdCBWZWN0b3I8dWludDMyX3Q+JiBtYXRjaEluZGlj
ZXMsIGNvbnN0IFN0cmluZyYgcmVwbGFjZW1lbnRUZXh0LCBib29sIHNlbGVjdGlvbk9ubHkpOwpA
QCAtMTg0MCw2ICsxODQ5LDEwIEBAIHByaXZhdGU6CiAgICAgSW5qZWN0ZWRCdW5kbGVQYWdlRnVs
bFNjcmVlbkNsaWVudCBtX2Z1bGxTY3JlZW5DbGllbnQ7CiAjZW5kaWYKIAorI2lmIEVOQUJMRShW
SURFT19QUkVTRU5UQVRJT05fTU9ERSkKKyAgICBJbmplY3RlZEJ1bmRsZVBhZ2VWaWRlb0Z1bGxz
Y3JlZW5DbGllbnQgbV92aWRlb0Z1bGxzY3JlZW5DbGllbnQ7CisjZW5kaWYKKwogICAgIFVuaXF1
ZVJlZjxGaW5kQ29udHJvbGxlcj4gbV9maW5kQ29udHJvbGxlcjsKIAogICAgIFJlZlB0cjxXZWJJ
bnNwZWN0b3I+IG1faW5zcGVjdG9yOwpAQCAtMTg0Nyw4ICsxODYwLDExIEBAIHByaXZhdGU6CiAg
ICAgUmVmUHRyPFJlbW90ZVdlYkluc3BlY3RvclVJPiBtX3JlbW90ZUluc3BlY3RvclVJOwogICAg
IHN0ZDo6dW5pcXVlX3B0cjxXZWJQYWdlSW5zcGVjdG9yVGFyZ2V0Q29udHJvbGxlcj4gbV9pbnNw
ZWN0b3JUYXJnZXRDb250cm9sbGVyOwogCi0jaWYgRU5BQkxFKFZJREVPX1BSRVNFTlRBVElPTl9N
T0RFKQorI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpIHx8IChQTEFURk9STShNQUMpICYmIEVOQUJM
RShWSURFT19QUkVTRU5UQVRJT05fTU9ERSkpCiAgICAgUmVmUHRyPFBsYXliYWNrU2Vzc2lvbk1h
bmFnZXI+IG1fcGxheWJhY2tTZXNzaW9uTWFuYWdlcjsKKyNlbmRpZgorCisjaWYgRU5BQkxFKFZJ
REVPX1BSRVNFTlRBVElPTl9NT0RFKQogICAgIFJlZlB0cjxWaWRlb0Z1bGxzY3JlZW5NYW5hZ2Vy
PiBtX3ZpZGVvRnVsbHNjcmVlbk1hbmFnZXI7CiAjZW5kaWYKIApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL2NvY29hL1ZpZGVvRnVsbHNjcmVlbk1hbmFnZXIuaCBiL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9jb2NvYS9WaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyLmgKaW5kZXgg
ZjEzNmVjYjlkZDNlYWNlZmFkZDk3NGJkY2RiZDQyY2FlZmY2MjdjZi4uY2NjMGFjZWE2ZWJkOWIz
ZDVjZTY0ZmVhZGY3MWE2MzIyMjY3Y2ZiYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL2NvY29hL1ZpZGVvRnVsbHNjcmVlbk1hbmFnZXIuaAorKysgYi9Tb3VyY2UvV2ViS2l0
L1dlYlByb2Nlc3MvY29jb2EvVmlkZW9GdWxsc2NyZWVuTWFuYWdlci5oCkBAIC0xMjIsNiArMTIy
LDE1IEBAIHB1YmxpYzoKICAgICB2b2lkIGV4aXRWaWRlb0Z1bGxzY3JlZW5Gb3JWaWRlb0VsZW1l
bnQoV2ViQ29yZTo6SFRNTFZpZGVvRWxlbWVudCYpOwogICAgIHZvaWQgZXhpdFZpZGVvRnVsbHNj
cmVlblRvTW9kZVdpdGhvdXRBbmltYXRpb24oV2ViQ29yZTo6SFRNTFZpZGVvRWxlbWVudCYsIFdl
YkNvcmU6OkhUTUxNZWRpYUVsZW1lbnRFbnVtczo6VmlkZW9GdWxsc2NyZWVuTW9kZSk7CiAKKyAg
ICAvLyBNZXNzYWdlcyBmcm9tIFZpZGVvRnVsbHNjcmVlbk1hbmFnZXJQcm94eQorICAgIHZvaWQg
cmVxdWVzdEZ1bGxzY3JlZW5Nb2RlKHVpbnQ2NF90IGNvbnRleHRJZCwgV2ViQ29yZTo6SFRNTE1l
ZGlhRWxlbWVudEVudW1zOjpWaWRlb0Z1bGxzY3JlZW5Nb2RlLCBib29sIGZpbmlzaGVkV2l0aE1l
ZGlhKTsKKyAgICB2b2lkIHJlcXVlc3RWaWRlb0NvbnRlbnRMYXllcih1aW50NjRfdCBjb250ZXh0
SWQpOworICAgIHZvaWQgcmV0dXJuVmlkZW9Db250ZW50TGF5ZXIodWludDY0X3QgY29udGV4dElk
KTsKKyAgICB2b2lkIGRpZFNldHVwRnVsbHNjcmVlbih1aW50NjRfdCBjb250ZXh0SWQpOworICAg
IHZvaWQgZGlkRW50ZXJGdWxsc2NyZWVuKHVpbnQ2NF90IGNvbnRleHRJZCk7CisgICAgdm9pZCBk
aWRFeGl0RnVsbHNjcmVlbih1aW50NjRfdCBjb250ZXh0SWQpOworICAgIHZvaWQgZGlkQ2xlYW51
cEZ1bGxzY3JlZW4odWludDY0X3QgY29udGV4dElkKTsKKwogcHJvdGVjdGVkOgogICAgIGZyaWVu
ZCBjbGFzcyBWaWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2VDb250ZXh0OwogCkBAIC0xNDEsMTUgKzE1
MCw5IEBAIHByb3RlY3RlZDoKICAgICB2b2lkIHZpZGVvRGltZW5zaW9uc0NoYW5nZWQodWludDY0
X3QgY29udGV4dElkLCBjb25zdCBXZWJDb3JlOjpGbG9hdFNpemUmKTsKIAogICAgIC8vIE1lc3Nh
Z2VzIGZyb20gVmlkZW9GdWxsc2NyZWVuTWFuYWdlclByb3h5Ci0gICAgdm9pZCByZXF1ZXN0RnVs
bHNjcmVlbk1vZGUodWludDY0X3QgY29udGV4dElkLCBXZWJDb3JlOjpIVE1MTWVkaWFFbGVtZW50
RW51bXM6OlZpZGVvRnVsbHNjcmVlbk1vZGUsIGJvb2wgZmluaXNoZWRXaXRoTWVkaWEpOwogICAg
IHZvaWQgcmVxdWVzdFVwZGF0ZUlubGluZVJlY3QodWludDY0X3QgY29udGV4dElkKTsKLSAgICB2
b2lkIHJlcXVlc3RWaWRlb0NvbnRlbnRMYXllcih1aW50NjRfdCBjb250ZXh0SWQpOwotICAgIHZv
aWQgcmV0dXJuVmlkZW9Db250ZW50TGF5ZXIodWludDY0X3QgY29udGV4dElkKTsKLSAgICB2b2lk
IGRpZFNldHVwRnVsbHNjcmVlbih1aW50NjRfdCBjb250ZXh0SWQpOwogICAgIHZvaWQgd2lsbEV4
aXRGdWxsc2NyZWVuKHVpbnQ2NF90IGNvbnRleHRJZCk7Ci0gICAgdm9pZCBkaWRFeGl0RnVsbHNj
cmVlbih1aW50NjRfdCBjb250ZXh0SWQpOwotICAgIHZvaWQgZGlkRW50ZXJGdWxsc2NyZWVuKHVp
bnQ2NF90IGNvbnRleHRJZCk7Ci0gICAgdm9pZCBkaWRDbGVhbnVwRnVsbHNjcmVlbih1aW50NjRf
dCBjb250ZXh0SWQpOworCiAgICAgdm9pZCBzZXRWaWRlb0xheWVyRnJhbWVGZW5jZWQodWludDY0
X3QgY29udGV4dElkLCBXZWJDb3JlOjpGbG9hdFJlY3QgYm91bmRzLCBJUEM6OkF0dGFjaG1lbnQg
ZmVuY2VQb3J0KTsKICAgICB2b2lkIHNldFZpZGVvTGF5ZXJHcmF2aXR5RW51bSh1aW50NjRfdCBj
b250ZXh0SWQsIHVuc2lnbmVkIGdyYXZpdHkpOwogICAgIHZvaWQgZnVsbHNjcmVlbk1vZGVDaGFu
Z2VkKHVpbnQ2NF90IGNvbnRleHRJZCwgV2ViQ29yZTo6SFRNTE1lZGlhRWxlbWVudEVudW1zOjpW
aWRlb0Z1bGxzY3JlZW5Nb2RlKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9jb2NvYS9WaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyLm1tIGIvU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL2NvY29hL1ZpZGVvRnVsbHNjcmVlbk1hbmFnZXIubW0KaW5kZXggZmY0YTJkM2U5MTZiNTAw
MmY2N2YzOWZmN2U5ZTExODU5YjM2N2U0NS4uYmY2ZDhkN2JkN2Q5YmI1NzQwZTM3MGJkMzEzYjQy
NTc0ODYyYTFmNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL2NvY29hL1Zp
ZGVvRnVsbHNjcmVlbk1hbmFnZXIubW0KKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL2Nv
Y29hL1ZpZGVvRnVsbHNjcmVlbk1hbmFnZXIubW0KQEAgLTI4NSw3ICsyODUsNyBAQCB2b2lkIFZp
ZGVvRnVsbHNjcmVlbk1hbmFnZXI6OmVudGVyVmlkZW9GdWxsc2NyZWVuRm9yVmlkZW9FbGVtZW50
KEhUTUxWaWRlb0VsZW1lbgogICAgICAgICBpbnRlcmZhY2UtPmxheWVySG9zdGluZ0NvbnRleHQo
KS0+c2V0Um9vdExheWVyKHZpZGVvTGF5ZXIuZ2V0KCkpOwogICAgIH0KIAotICAgIG1fcGFnZS0+
c2VuZChNZXNzYWdlczo6VmlkZW9GdWxsc2NyZWVuTWFuYWdlclByb3h5OjpTZXR1cEZ1bGxzY3Jl
ZW5XaXRoSUQoY29udGV4dElkLCBpbnRlcmZhY2UtPmxheWVySG9zdGluZ0NvbnRleHQoKS0+Y29u
dGV4dElEKCksIHZpZGVvUmVjdCwgbV9wYWdlLT5kZXZpY2VTY2FsZUZhY3RvcigpLCBpbnRlcmZh
Y2UtPmZ1bGxzY3JlZW5Nb2RlKCksIGFsbG93c1BpY3R1cmVJblBpY3R1cmUsIHN0YW5kYnkpKTsK
KyAgICBtX3BhZ2UtPmluamVjdGVkQnVuZGxlVmlkZW9GdWxsc2NyZWVuQ2xpZW50KCkuc2V0dXBG
dWxsc2NyZWVuV2l0aElEKG1fcGFnZSwgY29udGV4dElkLCBpbnRlcmZhY2UtPmxheWVySG9zdGlu
Z0NvbnRleHQoKS0+Y29udGV4dElEKCksIHZpZGVvUmVjdCwgbV9wYWdlLT5kZXZpY2VTY2FsZUZh
Y3RvcigpLCBpbnRlcmZhY2UtPmZ1bGxzY3JlZW5Nb2RlKCksIGFsbG93c1BpY3R1cmVJblBpY3R1
cmUsIHN0YW5kYnkpOwogfQogCiB2b2lkIFZpZGVvRnVsbHNjcmVlbk1hbmFnZXI6OmV4aXRWaWRl
b0Z1bGxzY3JlZW5Gb3JWaWRlb0VsZW1lbnQoV2ViQ29yZTo6SFRNTFZpZGVvRWxlbWVudCYgdmlk
ZW9FbGVtZW50KQpAQCAtMzAxLDcgKzMwMSw3IEBAIHZvaWQgVmlkZW9GdWxsc2NyZWVuTWFuYWdl
cjo6ZXhpdFZpZGVvRnVsbHNjcmVlbkZvclZpZGVvRWxlbWVudChXZWJDb3JlOjpIVE1MVmlkCiAg
ICAgICAgIHJldHVybjsKIAogICAgIGludGVyZmFjZS5zZXRBbmltYXRpb25TdGF0ZShWaWRlb0Z1
bGxzY3JlZW5JbnRlcmZhY2VDb250ZXh0OjpBbmltYXRpb25UeXBlOjpGcm9tRnVsbHNjcmVlbik7
Ci0gICAgbV9wYWdlLT5zZW5kKE1lc3NhZ2VzOjpWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyUHJveHk6
OkV4aXRGdWxsc2NyZWVuKGNvbnRleHRJZCwgaW5saW5lVmlkZW9GcmFtZSh2aWRlb0VsZW1lbnQp
KSk7CisgICAgbV9wYWdlLT5pbmplY3RlZEJ1bmRsZVZpZGVvRnVsbHNjcmVlbkNsaWVudCgpLmV4
aXRGdWxsc2NyZWVuKG1fcGFnZSwgY29udGV4dElkLCBpbmxpbmVWaWRlb0ZyYW1lKHZpZGVvRWxl
bWVudCkpOwogfQogCiB2b2lkIFZpZGVvRnVsbHNjcmVlbk1hbmFnZXI6OmV4aXRWaWRlb0Z1bGxz
Y3JlZW5Ub01vZGVXaXRob3V0QW5pbWF0aW9uKFdlYkNvcmU6OkhUTUxWaWRlb0VsZW1lbnQmIHZp
ZGVvRWxlbWVudCwgV2ViQ29yZTo6SFRNTE1lZGlhRWxlbWVudEVudW1zOjpWaWRlb0Z1bGxzY3Jl
ZW5Nb2RlIHRhcmdldE1vZGUpCkBAIC0zMTcsNyArMzE3LDcgQEAgdm9pZCBWaWRlb0Z1bGxzY3Jl
ZW5NYW5hZ2VyOjpleGl0VmlkZW9GdWxsc2NyZWVuVG9Nb2RlV2l0aG91dEFuaW1hdGlvbihXZWJD
b3JlOjoKIAogICAgIGludGVyZmFjZS5zZXRUYXJnZXRJc0Z1bGxzY3JlZW4oZmFsc2UpOwogCi0g
ICAgbV9wYWdlLT5zZW5kKE1lc3NhZ2VzOjpWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyUHJveHk6OkV4
aXRGdWxsc2NyZWVuV2l0aG91dEFuaW1hdGlvblRvTW9kZShjb250ZXh0SWQsIHRhcmdldE1vZGUp
KTsKKyAgICBtX3BhZ2UtPmluamVjdGVkQnVuZGxlVmlkZW9GdWxsc2NyZWVuQ2xpZW50KCkuZXhp
dEZ1bGxzY3JlZW5XaXRob3V0QW5pbWF0aW9uVG9Nb2RlKG1fcGFnZSwgY29udGV4dElkLCB0YXJn
ZXRNb2RlKTsKICNlbHNlCiAgICAgVU5VU0VEX1BBUkFNKHZpZGVvRWxlbWVudCk7CiAgICAgVU5V
U0VEX1BBUkFNKHRhcmdldE1vZGUpOwpAQCAtMzI5LDEzICszMjksMTMgQEAgdm9pZCBWaWRlb0Z1
bGxzY3JlZW5NYW5hZ2VyOjpleGl0VmlkZW9GdWxsc2NyZWVuVG9Nb2RlV2l0aG91dEFuaW1hdGlv
bihXZWJDb3JlOjoKIHZvaWQgVmlkZW9GdWxsc2NyZWVuTWFuYWdlcjo6aGFzVmlkZW9DaGFuZ2Vk
KHVpbnQ2NF90IGNvbnRleHRJZCwgYm9vbCBoYXNWaWRlbykKIHsKICAgICBpZiAobV9wYWdlKQot
ICAgICAgICBtX3BhZ2UtPnNlbmQoTWVzc2FnZXM6OlZpZGVvRnVsbHNjcmVlbk1hbmFnZXJQcm94
eTo6U2V0SGFzVmlkZW8oY29udGV4dElkLCBoYXNWaWRlbykpOworICAgICAgICBtX3BhZ2UtPmlu
amVjdGVkQnVuZGxlVmlkZW9GdWxsc2NyZWVuQ2xpZW50KCkuc2V0SGFzVmlkZW8obV9wYWdlLCBj
b250ZXh0SWQsIGhhc1ZpZGVvKTsKIH0KIAogdm9pZCBWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyOjp2
aWRlb0RpbWVuc2lvbnNDaGFuZ2VkKHVpbnQ2NF90IGNvbnRleHRJZCwgY29uc3QgRmxvYXRTaXpl
JiB2aWRlb0RpbWVuc2lvbnMpCiB7CiAgICAgaWYgKG1fcGFnZSkKLSAgICAgICAgbV9wYWdlLT5z
ZW5kKE1lc3NhZ2VzOjpWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyUHJveHk6OlNldFZpZGVvRGltZW5z
aW9ucyhjb250ZXh0SWQsIHZpZGVvRGltZW5zaW9ucykpOworICAgICAgICBtX3BhZ2UtPmluamVj
dGVkQnVuZGxlVmlkZW9GdWxsc2NyZWVuQ2xpZW50KCkuc2V0VmlkZW9EaW1lbnNpb25zKG1fcGFn
ZSwgY29udGV4dElkLCB2aWRlb0RpbWVuc2lvbnMpOwogfQogCiAjcHJhZ21hIG1hcmsgTWVzc2Fn
ZXMgZnJvbSBWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyUHJveHk6CkBAIC0zNTcsNyArMzU3LDcgQEAg
dm9pZCBWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyOjpyZXF1ZXN0VXBkYXRlSW5saW5lUmVjdCh1aW50
NjRfdCBjb250ZXh0SWQpCiAKICAgICBhdXRvJiBtb2RlbCA9IGVuc3VyZU1vZGVsKGNvbnRleHRJ
ZCk7CiAgICAgSW50UmVjdCBpbmxpbmVSZWN0ID0gaW5saW5lVmlkZW9GcmFtZSgqbW9kZWwudmlk
ZW9FbGVtZW50KCkpOwotICAgIG1fcGFnZS0+c2VuZChNZXNzYWdlczo6VmlkZW9GdWxsc2NyZWVu
TWFuYWdlclByb3h5OjpTZXRJbmxpbmVSZWN0KGNvbnRleHRJZCwgaW5saW5lUmVjdCwgaW5saW5l
UmVjdCAhPSBJbnRSZWN0KDAsIDAsIDAsIDApKSk7CisgICAgbV9wYWdlLT5pbmplY3RlZEJ1bmRs
ZVZpZGVvRnVsbHNjcmVlbkNsaWVudCgpLnNldElubGluZVJlY3QobV9wYWdlLCBjb250ZXh0SWQs
IGlubGluZVJlY3QsIGlubGluZVJlY3QgIT0gSW50UmVjdCgwLCAwLCAwLCAwKSk7CiB9CiAKIHZv
aWQgVmlkZW9GdWxsc2NyZWVuTWFuYWdlcjo6cmVxdWVzdFZpZGVvQ29udGVudExheWVyKHVpbnQ2
NF90IGNvbnRleHRJZCkKQEAgLTM2OCw4ICszNjgsOCBAQCB2b2lkIFZpZGVvRnVsbHNjcmVlbk1h
bmFnZXI6OnJlcXVlc3RWaWRlb0NvbnRlbnRMYXllcih1aW50NjRfdCBjb250ZXh0SWQpCiAKICAg
ICBtb2RlbC0+c2V0VmlkZW9GdWxsc2NyZWVuTGF5ZXIodmlkZW9MYXllciwgW3Byb3RlY3RlZFRo
aXMgPSBtYWtlUmVmUHRyKHRoaXMpLCB0aGlzLCBjb250ZXh0SWRdICgpIG11dGFibGUgewogICAg
ICAgICBkaXNwYXRjaF9hc3luYyhkaXNwYXRjaF9nZXRfbWFpbl9xdWV1ZSgpLCBbcHJvdGVjdGVk
VGhpcyA9IFdURk1vdmUocHJvdGVjdGVkVGhpcyksIHRoaXMsIGNvbnRleHRJZF0gewotICAgICAg
ICAgICAgaWYgKHByb3RlY3RlZFRoaXMtPm1fcGFnZSkKLSAgICAgICAgICAgICAgICBtX3BhZ2Ut
PnNlbmQoTWVzc2FnZXM6OlZpZGVvRnVsbHNjcmVlbk1hbmFnZXJQcm94eTo6U2V0SGFzVmlkZW9D
b250ZW50TGF5ZXIoY29udGV4dElkLCB0cnVlKSk7CisgICAgICAgICAgICBpZiAobV9wYWdlKQor
ICAgICAgICAgICAgICAgIG1fcGFnZS0+aW5qZWN0ZWRCdW5kbGVWaWRlb0Z1bGxzY3JlZW5DbGll
bnQoKS5zZXRIYXNWaWRlb0NvbnRlbnRMYXllcihtX3BhZ2UsIGNvbnRleHRJZCwgdHJ1ZSk7CiAg
ICAgICAgIH0pOwogICAgIH0pOwogfQpAQCAtMzg0LDggKzM4NCw4IEBAIHZvaWQgVmlkZW9GdWxs
c2NyZWVuTWFuYWdlcjo6cmV0dXJuVmlkZW9Db250ZW50TGF5ZXIodWludDY0X3QgY29udGV4dElk
KQogICAgICAgICBkaXNwYXRjaF9hc3luYyhkaXNwYXRjaF9nZXRfbWFpbl9xdWV1ZSgpLCBbcHJv
dGVjdGVkVGhpcyA9IFdURk1vdmUocHJvdGVjdGVkVGhpcyksIHRoaXMsIGNvbnRleHRJZCwgbW9k
ZWxdICgpIG11dGFibGUgewogICAgICAgICAgICAgbW9kZWwtPnNldFZpZGVvRnVsbHNjcmVlbkxh
eWVyKG5pbCwgW3Byb3RlY3RlZFRoaXMgPSBXVEZNb3ZlKHByb3RlY3RlZFRoaXMpLCB0aGlzLCBj
b250ZXh0SWRdICgpIG11dGFibGUgewogICAgICAgICAgICAgICAgIGRpc3BhdGNoX2FzeW5jKGRp
c3BhdGNoX2dldF9tYWluX3F1ZXVlKCksIFtwcm90ZWN0ZWRUaGlzID0gV1RGTW92ZShwcm90ZWN0
ZWRUaGlzKSwgdGhpcywgY29udGV4dElkXSB7Ci0gICAgICAgICAgICAgICAgICAgIGlmIChwcm90
ZWN0ZWRUaGlzLT5tX3BhZ2UpCi0gICAgICAgICAgICAgICAgICAgICAgICBtX3BhZ2UtPnNlbmQo
TWVzc2FnZXM6OlZpZGVvRnVsbHNjcmVlbk1hbmFnZXJQcm94eTo6U2V0SGFzVmlkZW9Db250ZW50
TGF5ZXIoY29udGV4dElkLCBmYWxzZSkpOworICAgICAgICAgICAgICAgICAgICBpZiAobV9wYWdl
KQorICAgICAgICAgICAgICAgICAgICAgICAgbV9wYWdlLT5pbmplY3RlZEJ1bmRsZVZpZGVvRnVs
bHNjcmVlbkNsaWVudCgpLnNldEhhc1ZpZGVvQ29udGVudExheWVyKG1fcGFnZSwgY29udGV4dElk
LCBmYWxzZSk7CiAgICAgICAgICAgICAgICAgfSk7CiAgICAgICAgICAgICB9KTsKICAgICAgICAg
fSk7CkBAIC00MDksOCArNDA5LDggQEAgdm9pZCBWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyOjpkaWRT
ZXR1cEZ1bGxzY3JlZW4odWludDY0X3QgY29udGV4dElkKQogCiAgICAgbW9kZWwtPnNldFZpZGVv
RnVsbHNjcmVlbkxheWVyKHZpZGVvTGF5ZXIsIFtwcm90ZWN0ZWRUaGlzID0gbWFrZVJlZlB0cih0
aGlzKSwgdGhpcywgY29udGV4dElkXSAoKSBtdXRhYmxlIHsKICAgICAgICAgZGlzcGF0Y2hfYXN5
bmMoZGlzcGF0Y2hfZ2V0X21haW5fcXVldWUoKSwgW3Byb3RlY3RlZFRoaXMgPSBXVEZNb3ZlKHBy
b3RlY3RlZFRoaXMpLCB0aGlzLCBjb250ZXh0SWRdIHsKLSAgICAgICAgICAgIGlmIChwcm90ZWN0
ZWRUaGlzLT5tX3BhZ2UpCi0gICAgICAgICAgICAgICAgbV9wYWdlLT5zZW5kKE1lc3NhZ2VzOjpW
aWRlb0Z1bGxzY3JlZW5NYW5hZ2VyUHJveHk6OkVudGVyRnVsbHNjcmVlbihjb250ZXh0SWQpKTsK
KyAgICAgICAgICAgIGlmIChtX3BhZ2UpCisgICAgICAgICAgICAgICAgbV9wYWdlLT5pbmplY3Rl
ZEJ1bmRsZVZpZGVvRnVsbHNjcmVlbkNsaWVudCgpLmVudGVyRnVsbHNjcmVlbihtX3BhZ2UsIGNv
bnRleHRJZCk7CiAgICAgICAgIH0pOwogICAgIH0pOwogI2VuZGlmCkBAIC00MjYsMTAgKzQyNiwx
MCBAQCB2b2lkIFZpZGVvRnVsbHNjcmVlbk1hbmFnZXI6OndpbGxFeGl0RnVsbHNjcmVlbih1aW50
NjRfdCBjb250ZXh0SWQpCiAgICAgaWYgKCF2aWRlb0VsZW1lbnQpCiAgICAgICAgIHJldHVybjsK
IAotICAgIGRpc3BhdGNoX2FzeW5jKGRpc3BhdGNoX2dldF9tYWluX3F1ZXVlKCksIFtwcm90ZWN0
ZWRUaGlzID0gbWFrZVJlZlB0cih0aGlzKSwgdmlkZW9FbGVtZW50ID0gV1RGTW92ZSh2aWRlb0Vs
ZW1lbnQpLCBjb250ZXh0SWRdIHsKKyAgICBkaXNwYXRjaF9hc3luYyhkaXNwYXRjaF9nZXRfbWFp
bl9xdWV1ZSgpLCBbcHJvdGVjdGVkVGhpcyA9IG1ha2VSZWZQdHIodGhpcyksIHRoaXMsIHZpZGVv
RWxlbWVudCA9IFdURk1vdmUodmlkZW9FbGVtZW50KSwgY29udGV4dElkXSB7CiAgICAgICAgIHZp
ZGVvRWxlbWVudC0+d2lsbEV4aXRGdWxsc2NyZWVuKCk7Ci0gICAgICAgIGlmIChwcm90ZWN0ZWRU
aGlzLT5tX3BhZ2UpCi0gICAgICAgICAgICBwcm90ZWN0ZWRUaGlzLT5tX3BhZ2UtPnNlbmQoTWVz
c2FnZXM6OlZpZGVvRnVsbHNjcmVlbk1hbmFnZXJQcm94eTo6UHJlcGFyZWRUb0V4aXRGdWxsc2Ny
ZWVuKGNvbnRleHRJZCkpOworICAgICAgICBpZiAobV9wYWdlKQorICAgICAgICAgICAgbV9wYWdl
LT5pbmplY3RlZEJ1bmRsZVZpZGVvRnVsbHNjcmVlbkNsaWVudCgpLnByZXBhcmVkVG9FeGl0RnVs
bHNjcmVlbihtX3BhZ2UsIGNvbnRleHRJZCk7CiAgICAgfSk7CiB9CiAKQEAgLTQ1NCw5ICs0NTQs
OSBAQCB2b2lkIFZpZGVvRnVsbHNjcmVlbk1hbmFnZXI6OmRpZEVudGVyRnVsbHNjcmVlbih1aW50
NjRfdCBjb250ZXh0SWQpCiAgICAgICAgIHJldHVybjsKIAogICAgIC8vIGV4aXQgZnVsbHNjcmVl
biBub3cgaWYgaXQgd2FzIHByZXZpb3VzbHkgcmVxdWVzdGVkIGR1cmluZyBhbiBhbmltYXRpb24u
Ci0gICAgZGlzcGF0Y2hfYXN5bmMoZGlzcGF0Y2hfZ2V0X21haW5fcXVldWUoKSwgW3Byb3RlY3Rl
ZFRoaXMgPSBtYWtlUmVmUHRyKHRoaXMpLCB2aWRlb0VsZW1lbnRdIHsKLSAgICAgICAgaWYgKHBy
b3RlY3RlZFRoaXMtPm1fcGFnZSkKLSAgICAgICAgICAgIHByb3RlY3RlZFRoaXMtPmV4aXRWaWRl
b0Z1bGxzY3JlZW5Gb3JWaWRlb0VsZW1lbnQoKnZpZGVvRWxlbWVudCk7CisgICAgZGlzcGF0Y2hf
YXN5bmMoZGlzcGF0Y2hfZ2V0X21haW5fcXVldWUoKSwgW3Byb3RlY3RlZFRoaXMgPSBtYWtlUmVm
UHRyKHRoaXMpLCB0aGlzLCB2aWRlb0VsZW1lbnRdIHsKKyAgICAgICAgaWYgKG1fcGFnZSkKKyAg
ICAgICAgICAgIGV4aXRWaWRlb0Z1bGxzY3JlZW5Gb3JWaWRlb0VsZW1lbnQoKnZpZGVvRWxlbWVu
dCk7CiAgICAgfSk7CiB9CiAKQEAgLTQ2OSw5ICs0NjksOSBAQCB2b2lkIFZpZGVvRnVsbHNjcmVl
bk1hbmFnZXI6OmRpZEV4aXRGdWxsc2NyZWVuKHVpbnQ2NF90IGNvbnRleHRJZCkKICAgICBzdGQ6
OnRpZShtb2RlbCwgaW50ZXJmYWNlKSA9IGVuc3VyZU1vZGVsQW5kSW50ZXJmYWNlKGNvbnRleHRJ
ZCk7CiAKICNpZiBQTEFURk9STShJT1NfRkFNSUxZKQotICAgIGRpc3BhdGNoX2FzeW5jKGRpc3Bh
dGNoX2dldF9tYWluX3F1ZXVlKCksIFtwcm90ZWN0ZWRUaGlzID0gbWFrZVJlZlB0cih0aGlzKSwg
Y29udGV4dElkLCBpbnRlcmZhY2VdIHsKLSAgICAgICAgaWYgKHByb3RlY3RlZFRoaXMtPm1fcGFn
ZSkKLSAgICAgICAgICAgIHByb3RlY3RlZFRoaXMtPm1fcGFnZS0+c2VuZChNZXNzYWdlczo6Vmlk
ZW9GdWxsc2NyZWVuTWFuYWdlclByb3h5OjpDbGVhbnVwRnVsbHNjcmVlbihjb250ZXh0SWQpKTsK
KyAgICBkaXNwYXRjaF9hc3luYyhkaXNwYXRjaF9nZXRfbWFpbl9xdWV1ZSgpLCBbcHJvdGVjdGVk
VGhpcyA9IG1ha2VSZWZQdHIodGhpcyksIHRoaXMsIGNvbnRleHRJZCwgaW50ZXJmYWNlXSB7Cisg
ICAgICAgIGlmIChtX3BhZ2UpCisgICAgICAgICAgICBtX3BhZ2UtPmluamVjdGVkQnVuZGxlVmlk
ZW9GdWxsc2NyZWVuQ2xpZW50KCkuY2VhbnVwRnVsbHNjcmVlbihjb250ZXh0SWQpOwogICAgIH0p
OwogI2Vsc2UKICAgICBtb2RlbC0+d2FpdEZvclByZXBhcmVkRm9ySW5saW5lVGhlbihbcHJvdGVj
dGVkVGhpcyA9IG1ha2VSZWZQdHIodGhpcyksIGNvbnRleHRJZCwgaW50ZXJmYWNlLCBtb2RlbF0g
KCkgbXV0YWJsZSB7CkBAIC00ODMsMTQgKzQ4MywxNCBAQCB2b2lkIFZpZGVvRnVsbHNjcmVlbk1h
bmFnZXI6OmRpZEV4aXRGdWxsc2NyZWVuKHVpbnQ2NF90IGNvbnRleHRJZCkKICAgICAgICAgICAg
ICAgICAgICAgICAgIGludGVyZmFjZS0+c2V0TGF5ZXJIb3N0aW5nQ29udGV4dChudWxscHRyKTsK
ICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICBpZiAocHJvdGVjdGVk
VGhpcy0+bV9wYWdlKQotICAgICAgICAgICAgICAgICAgICAgICAgcHJvdGVjdGVkVGhpcy0+bV9w
YWdlLT5zZW5kKE1lc3NhZ2VzOjpWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyUHJveHk6OkNsZWFudXBG
dWxsc2NyZWVuKGNvbnRleHRJZCkpOworICAgICAgICAgICAgICAgICAgICAgICAgcHJvdGVjdGVk
VGhpcy0+bV9wYWdlLT5pbmplY3RlZEJ1bmRsZVZpZGVvRnVsbHNjcmVlbkNsaWVudCgpLmNsZWFu
dXBGdWxsc2NyZWVuKHByb3RlY3RlZFRoaXMtPm1fcGFnZSwgY29udGV4dElkKTsKICAgICAgICAg
ICAgICAgICB9KTsKICAgICAgICAgICAgIH0pOwogICAgICAgICB9KTsKICAgICB9KTsKICNlbmRp
ZgogfQotICAgIAorCiB2b2lkIFZpZGVvRnVsbHNjcmVlbk1hbmFnZXI6OmRpZENsZWFudXBGdWxs
c2NyZWVuKHVpbnQ2NF90IGNvbnRleHRJZCkKIHsKICAgICBMT0coRnVsbHNjcmVlbiwgIlZpZGVv
RnVsbHNjcmVlbk1hbmFnZXI6OmRpZENsZWFudXBGdWxsc2NyZWVuKCVwLCAleCkiLCB0aGlzLCBj
b250ZXh0SWQpOwpAQCAtNTE4LDkgKzUxOCw5IEBAIHZvaWQgVmlkZW9GdWxsc2NyZWVuTWFuYWdl
cjo6ZGlkQ2xlYW51cEZ1bGxzY3JlZW4odWludDY0X3QgY29udGV4dElkKQogICAgIGlmICghdmlk
ZW9FbGVtZW50IHx8ICF0YXJnZXRJc0Z1bGxzY3JlZW4pCiAgICAgICAgIHJldHVybjsKIAotICAg
IGRpc3BhdGNoX2FzeW5jKGRpc3BhdGNoX2dldF9tYWluX3F1ZXVlKCksIFtwcm90ZWN0ZWRUaGlz
ID0gbWFrZVJlZlB0cih0aGlzKSwgdmlkZW9FbGVtZW50LCBtb2RlLCBzdGFuZGJ5XSB7Ci0gICAg
ICAgIGlmIChwcm90ZWN0ZWRUaGlzLT5tX3BhZ2UpCi0gICAgICAgICAgICBwcm90ZWN0ZWRUaGlz
LT5lbnRlclZpZGVvRnVsbHNjcmVlbkZvclZpZGVvRWxlbWVudCgqdmlkZW9FbGVtZW50LCBtb2Rl
LCBzdGFuZGJ5KTsKKyAgICBkaXNwYXRjaF9hc3luYyhkaXNwYXRjaF9nZXRfbWFpbl9xdWV1ZSgp
LCBbcHJvdGVjdGVkVGhpcyA9IG1ha2VSZWZQdHIodGhpcyksIHRoaXMsIHZpZGVvRWxlbWVudCwg
bW9kZSwgc3RhbmRieV0geworICAgICAgICBpZiAobV9wYWdlKQorICAgICAgICAgICAgZW50ZXJW
aWRlb0Z1bGxzY3JlZW5Gb3JWaWRlb0VsZW1lbnQoKnZpZGVvRWxlbWVudCwgbW9kZSwgc3RhbmRi
eSk7CiAgICAgfSk7CiB9CiAgICAgCkBAIC01MzgsNyArNTM4LDcgQEAgdm9pZCBWaWRlb0Z1bGxz
Y3JlZW5NYW5hZ2VyOjpmdWxsc2NyZWVuTWF5UmV0dXJuVG9JbmxpbmUodWludDY0X3QgY29udGV4
dElkLCBib28KIAogICAgIGlmICghaXNQYWdlVmlzaWJsZSkKICAgICAgICAgbW9kZWwudmlkZW9F
bGVtZW50KCktPnNjcm9sbEludG9WaWV3SWZOb3RWaXNpYmxlKGZhbHNlKTsKLSAgICBtX3BhZ2Ut
PnNlbmQoTWVzc2FnZXM6OlZpZGVvRnVsbHNjcmVlbk1hbmFnZXJQcm94eTo6UHJlcGFyZWRUb1Jl
dHVyblRvSW5saW5lKGNvbnRleHRJZCwgdHJ1ZSwgaW5saW5lVmlkZW9GcmFtZSgqbW9kZWwudmlk
ZW9FbGVtZW50KCkpKSk7CisgICAgbV9wYWdlLT5pbmplY3RlZEJ1bmRsZVZpZGVvRnVsbHNjcmVl
bkNsaWVudCgpLnByZXBhcmVkVG9SZXR1cm5Ub0lubGluZShtX3BhZ2UsIGNvbnRleHRJZCwgdHJ1
ZSwgaW5saW5lVmlkZW9GcmFtZSgqbW9kZWwudmlkZW9FbGVtZW50KCkpKTsKIH0KIAogdm9pZCBW
aWRlb0Z1bGxzY3JlZW5NYW5hZ2VyOjpyZXF1ZXN0Um91dGVTaGFyaW5nUG9saWN5QW5kQ29udGV4
dFVJRCh1aW50NjRfdCBjb250ZXh0SWQsIE1lc3NhZ2VzOjpWaWRlb0Z1bGxzY3JlZW5NYW5hZ2Vy
OjpSZXF1ZXN0Um91dGVTaGFyaW5nUG9saWN5QW5kQ29udGV4dFVJRDo6QXN5bmNSZXBseSYmIHJl
cGx5KQpkaWZmIC0tZ2l0IGEvVG9vbHMvQ2hhbmdlTG9nIGIvVG9vbHMvQ2hhbmdlTG9nCmluZGV4
IDNiNTE4YzVjMjFjNTBhNjM0ZGNkYjAzOTNhMjg0MzljNGRmZWVmNGIuLmIwNTA0MzE3Y2ZmNzVk
YmI2OTEwNjE2NTAxMDYyODRiNWM5MmY4NWUgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0NoYW5nZUxvZwor
KysgYi9Ub29scy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwzMSBAQAorMjAyMC0wNC0xNyAgUGVuZyBM
aXUgIDxwZW5nLmxpdTZAYXBwbGUuY29tPgorCisgICAgICAgIFVwZGF0ZSBXZWJLaXRUZXN0UnVu
bmVyIHRvIHN1cHBvcnQgcnVubmluZyBtdWx0aXBsZSB2aWRlbyBmdWxsc2NyZWVuIGFuZCBQaWN0
dXJlLWluLVBpY3R1cmUgdGVzdHMgc2ltdWx0YW5lb3VzbHkKKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIwMzcyMworCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkZCBhbiBpbmplY3RlZCBidW5kbGUgY2xpZW50
IG9mIHZpZGVvIGZ1bGxzY3JlZW4gaW4gV2ViS2l0VGVzdFJ1bm5lciB0byBtb2NrIHRoZSBiZWhh
dmlvcgorICAgICAgICBvZiB0aGUgdmlkZW8gZnVsbHNjcmVlbiBhbmQgcGljdHVyZS1pbi1waWN0
dXJlIGltcGxlbWVudGF0aW9uIGluIHRoZSBVSSBwcm9jZXNzLgorICAgICAgICBXaXRoIHRoaXMg
cGF0Y2gsIHdlIGNhbiB0ZXN0IHRoZSB2aWRlbyBmdWxsc2NyZWVuIGFuZCBwaWN0dXJlLWluLXBp
Y3R1cmUgaW1wbGVtZW50YXRpb24gaW4KKyAgICAgICAgdGhlIFdlYiBwcm9jZXNzIHdpdGhvdXQg
dGhlIGludm9sdmVtZW50IG9mIHRoZSBVSSBwcm9jZXNzIHNpZGUgaW1wbGVtZW50YXRpb24uIFNv
IHRoYXQKKyAgICAgICAgd2UgY2FuIHJ1biBtdWx0aXBsZSB2aWRlbyBmdWxsc2NyZWVuIGFuZCBw
aWN0dXJlLWluLXBpY3R1cmUgdGVzdHMgaW4gcGFyYWxsZWwuCisKKyAgICAgICAgKiBXZWJLaXRU
ZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0luamVjdGVkQnVuZGxlUGFnZS5jcHA6CisgICAgICAg
IChXVFI6OkluamVjdGVkQnVuZGxlUGFnZTo6SW5qZWN0ZWRCdW5kbGVQYWdlKToKKyAgICAgICAg
KFdUUjo6SW5qZWN0ZWRCdW5kbGVQYWdlOjpzZXRIYXNWaWRlbyk6CisgICAgICAgIChXVFI6Oklu
amVjdGVkQnVuZGxlUGFnZTo6c2V0VmlkZW9EaW1lbnNpb25zKToKKyAgICAgICAgKFdUUjo6SW5q
ZWN0ZWRCdW5kbGVQYWdlOjpzZXR1cEZ1bGxzY3JlZW5XaXRoSUQpOgorICAgICAgICAoV1RSOjpJ
bmplY3RlZEJ1bmRsZVBhZ2U6OmVudGVyRnVsbHNjcmVlbik6CisgICAgICAgIChXVFI6OkluamVj
dGVkQnVuZGxlUGFnZTo6ZXhpdEZ1bGxzY3JlZW4pOgorICAgICAgICAoV1RSOjpJbmplY3RlZEJ1
bmRsZVBhZ2U6OnNldElubGluZVJlY3QpOgorICAgICAgICAoV1RSOjpJbmplY3RlZEJ1bmRsZVBh
Z2U6OnNldEhhc1ZpZGVvQ29udGVudExheWVyKToKKyAgICAgICAgKFdUUjo6SW5qZWN0ZWRCdW5k
bGVQYWdlOjpjbGVhbnVwRnVsbHNjcmVlbik6CisgICAgICAgIChXVFI6OkluamVjdGVkQnVuZGxl
UGFnZTo6cHJlcGFyZWRUb1JldHVyblRvSW5saW5lKToKKyAgICAgICAgKFdUUjo6SW5qZWN0ZWRC
dW5kbGVQYWdlOjpwcmVwYXJlZFRvRXhpdEZ1bGxzY3JlZW4pOgorICAgICAgICAoV1RSOjpJbmpl
Y3RlZEJ1bmRsZVBhZ2U6OmV4aXRGdWxsc2NyZWVuV2l0aG91dEFuaW1hdGlvblRvTW9kZSk6Cisg
ICAgICAgICogV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZVBh
Z2UuaDoKKwogMjAyMC0wNC0xNyAgQnJlbnQgRnVsZ2hhbSAgPGJmdWxnaGFtQGFwcGxlLmNvbT4K
IAogICAgICAgICBVbnJldmlld2VkIGJ1aWxkIGZpeCBhZnRlciByMjYwMjY5LgpkaWZmIC0tZ2l0
IGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZVBh
Z2UuY3BwIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1
bmRsZVBhZ2UuY3BwCmluZGV4IDQwYzQ1YTc5MTU1MDY5MWVmZmZhNmE0ZDFjMzdjNDkzMWIwNGVk
ODIuLjdjYTQ4YTc4ZjY0ZWI4ZWZhNTNkNzBjYmQzMDIzOGE2Yjk0ZjY5NmMgMTAwNjQ0Ci0tLSBh
L1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvSW5qZWN0ZWRCdW5kbGVQYWdl
LmNwcAorKysgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0luamVjdGVk
QnVuZGxlUGFnZS5jcHAKQEAgLTM5MCw2ICszOTAsMjggQEAgSW5qZWN0ZWRCdW5kbGVQYWdlOjpJ
bmplY3RlZEJ1bmRsZVBhZ2UoV0tCdW5kbGVQYWdlUmVmIHBhZ2UpCiAgICAgfTsKICAgICBXS0J1
bmRsZVBhZ2VTZXRGdWxsU2NyZWVuQ2xpZW50KG1fcGFnZSwgJmZ1bGxTY3JlZW5DbGllbnQuYmFz
ZSk7CiAjZW5kaWYKKworI2lmIEVOQUJMRShWSURFT19QUkVTRU5UQVRJT05fTU9ERSkKKyAgICBX
S0J1bmRsZVBhZ2VWaWRlb0Z1bGxzY3JlZW5DbGllbnRWMCB2aWRlb0Z1bGxzY3JlZW5DbGllbnQg
PSB7CisgICAgICAgIHsgMCwgdGhpcyB9LAorICAgICAgICBzZXRIYXNWaWRlbywKKyAgICAgICAg
c2V0VmlkZW9EaW1lbnNpb25zLAorICAgICAgICBzZXR1cEZ1bGxzY3JlZW5XaXRoSUQsCisgICAg
ICAgIGVudGVyRnVsbHNjcmVlbiwKKyAgICAgICAgZXhpdEZ1bGxzY3JlZW4sCisgICAgICAgIHNl
dElubGluZVJlY3QsCisgICAgICAgIHNldEhhc1ZpZGVvQ29udGVudExheWVyLAorICAgICAgICBj
bGVhbnVwRnVsbHNjcmVlbiwKKyAgICAgICAgcHJlcGFyZWRUb1JldHVyblRvSW5saW5lLAorICAg
ICAgICBwcmVwYXJlZFRvRXhpdEZ1bGxzY3JlZW4sCisjaWYgUExBVEZPUk0oTUFDKQorICAgICAg
ICBleGl0RnVsbHNjcmVlbldpdGhvdXRBbmltYXRpb25Ub01vZGUKKyNlbHNlCisgICAgICAgIDAs
IC8qIGV4aXRGdWxsc2NyZWVuV2l0aG91dEFuaW1hdGlvblRvTW9kZSAqLworI2VuZGlmCisgICAg
fTsKKyAgICBXS0J1bmRsZVBhZ2VTZXRWaWRlb0Z1bGxzY3JlZW5DbGllbnQobV9wYWdlLCAmdmlk
ZW9GdWxsc2NyZWVuQ2xpZW50LmJhc2UpOworI2VuZGlmIC8vIEVOQUJMRShWSURFT19QUkVTRU5U
QVRJT05fTU9ERSkKIH0KIAogSW5qZWN0ZWRCdW5kbGVQYWdlOjp+SW5qZWN0ZWRCdW5kbGVQYWdl
KCkKQEAgLTE5MzIsNiArMTk1NCwxMzAgQEAgdm9pZCBJbmplY3RlZEJ1bmRsZVBhZ2U6OmNsb3Nl
RnVsbFNjcmVlbihXS0J1bmRsZVBhZ2VSZWYgcGFnZVJlZikKIH0KICNlbmRpZgogCisjaWYgRU5B
QkxFKFZJREVPX1BSRVNFTlRBVElPTl9NT0RFKQorCit2b2lkIEluamVjdGVkQnVuZGxlUGFnZTo6
c2V0SGFzVmlkZW8oV0tCdW5kbGVQYWdlUmVmLCB1aW50NjRfdCBjb250ZXh0SWQsIGJvb2wgaGFz
VmlkZW8pCit7CisgICAgVU5VU0VEX1BBUkFNKGNvbnRleHRJZCk7CisgICAgVU5VU0VEX1BBUkFN
KGhhc1ZpZGVvKTsKKworICAgIGF1dG8mIGluamVjdGVkQnVuZGxlID0gSW5qZWN0ZWRCdW5kbGU6
OnNpbmdsZXRvbigpOworICAgIGlmIChpbmplY3RlZEJ1bmRsZS50ZXN0UnVubmVyKCktPnNob3Vs
ZER1bXBGdWxsU2NyZWVuQ2FsbGJhY2tzKCkpCisgICAgICAgIGluamVjdGVkQnVuZGxlLm91dHB1
dFRleHQoInNldEhhc1ZpZGVvKClcbiIpOworfQorCit2b2lkIEluamVjdGVkQnVuZGxlUGFnZTo6
c2V0VmlkZW9EaW1lbnNpb25zKFdLQnVuZGxlUGFnZVJlZiwgdWludDY0X3QgY29udGV4dElkLCBX
S1NpemUgdmlkZW9EaW1lbnNpb25zKQoreworICAgIFVOVVNFRF9QQVJBTShjb250ZXh0SWQpOwor
ICAgIFVOVVNFRF9QQVJBTSh2aWRlb0RpbWVuc2lvbnMpOworCisgICAgYXV0byYgaW5qZWN0ZWRC
dW5kbGUgPSBJbmplY3RlZEJ1bmRsZTo6c2luZ2xldG9uKCk7CisgICAgaWYgKGluamVjdGVkQnVu
ZGxlLnRlc3RSdW5uZXIoKS0+c2hvdWxkRHVtcEZ1bGxTY3JlZW5DYWxsYmFja3MoKSkKKyAgICAg
ICAgaW5qZWN0ZWRCdW5kbGUub3V0cHV0VGV4dCgic2V0VmlkZW9EaW1lbnNpb25zKClcbiIpOwor
fQorCit2b2lkIEluamVjdGVkQnVuZGxlUGFnZTo6c2V0dXBGdWxsc2NyZWVuV2l0aElEKFdLQnVu
ZGxlUGFnZVJlZiBwYWdlLCB1aW50NjRfdCBjb250ZXh0SWQsIHVpbnQzMl90IHZpZGVvTGF5ZXJJ
ZCwgV0tSZWN0IGluaXRpYWxSZWN0LCBmbG9hdCBob3N0aW5nU2NhbGVGYWN0b3IsIFdLVmlkZW9G
dWxsc2NyZWVuTW9kZSB2aWRlb0Z1bGxzY3JlZW5Nb2RlLCBib29sIGFsbG93c1BpY3R1cmVJblBp
Y3R1cmUsIGJvb2wgc3RhbmRieSkKK3sKKyAgICBVTlVTRURfUEFSQU0odmlkZW9MYXllcklkKTsK
KyAgICBVTlVTRURfUEFSQU0oaW5pdGlhbFJlY3QpOworICAgIFVOVVNFRF9QQVJBTShob3N0aW5n
U2NhbGVGYWN0b3IpOworICAgIFVOVVNFRF9QQVJBTSh2aWRlb0Z1bGxzY3JlZW5Nb2RlKTsKKyAg
ICBVTlVTRURfUEFSQU0oYWxsb3dzUGljdHVyZUluUGljdHVyZSk7CisgICAgVU5VU0VEX1BBUkFN
KHN0YW5kYnkpOworCisgICAgYXV0byYgaW5qZWN0ZWRCdW5kbGUgPSBJbmplY3RlZEJ1bmRsZTo6
c2luZ2xldG9uKCk7CisgICAgaWYgKGluamVjdGVkQnVuZGxlLnRlc3RSdW5uZXIoKS0+c2hvdWxk
RHVtcEZ1bGxTY3JlZW5DYWxsYmFja3MoKSkKKyAgICAgICAgaW5qZWN0ZWRCdW5kbGUub3V0cHV0
VGV4dCgic2V0dXBGdWxsc2NyZWVuV2l0aElEKClcbiIpOworCisgICAgV0tCdW5kbGVQYWdlUmVx
dWVzdFZpZGVvQ29udGVudExheWVyKHBhZ2UsIGNvbnRleHRJZCk7Cit9CisKK3ZvaWQgSW5qZWN0
ZWRCdW5kbGVQYWdlOjplbnRlckZ1bGxzY3JlZW4oV0tCdW5kbGVQYWdlUmVmIHBhZ2UsIHVpbnQ2
NF90IGNvbnRleHRJZCkKK3sKKyAgICBhdXRvJiBpbmplY3RlZEJ1bmRsZSA9IEluamVjdGVkQnVu
ZGxlOjpzaW5nbGV0b24oKTsKKyAgICBpZiAoaW5qZWN0ZWRCdW5kbGUudGVzdFJ1bm5lcigpLT5z
aG91bGREdW1wRnVsbFNjcmVlbkNhbGxiYWNrcygpKQorICAgICAgICBpbmplY3RlZEJ1bmRsZS5v
dXRwdXRUZXh0KCJlbnRlckZ1bGxzY3JlZW4oKVxuIik7CisKKyAgICBXS0J1bmRsZVBhZ2VEaWRF
bnRlclZpZGVvRnVsbHNjcmVlbihwYWdlLCBjb250ZXh0SWQpOworfQorCit2b2lkIEluamVjdGVk
QnVuZGxlUGFnZTo6ZXhpdEZ1bGxzY3JlZW4oV0tCdW5kbGVQYWdlUmVmIHBhZ2UsIHVpbnQ2NF90
IGNvbnRleHRJZCwgV0tSZWN0IGZpbmFsUmVjdCkKK3sKKyAgICBVTlVTRURfUEFSQU0oZmluYWxS
ZWN0KTsKKworICAgIGF1dG8mIGluamVjdGVkQnVuZGxlID0gSW5qZWN0ZWRCdW5kbGU6OnNpbmds
ZXRvbigpOworICAgIGlmIChpbmplY3RlZEJ1bmRsZS50ZXN0UnVubmVyKCktPnNob3VsZER1bXBG
dWxsU2NyZWVuQ2FsbGJhY2tzKCkpCisgICAgICAgIGluamVjdGVkQnVuZGxlLm91dHB1dFRleHQo
ImV4aXRGdWxsc2NyZWVuKClcbiIpOworCisgICAgV0tCdW5kbGVQYWdlUmV0dXJuVmlkZW9Db250
ZW50TGF5ZXIocGFnZSwgY29udGV4dElkKTsKK30KKwordm9pZCBJbmplY3RlZEJ1bmRsZVBhZ2U6
OnNldElubGluZVJlY3QoV0tCdW5kbGVQYWdlUmVmLCB1aW50NjRfdCBjb250ZXh0SWQsIFdLUmVj
dCBpbmxpbmVSZWN0LCBib29sIHZpc2libGUpCit7CisgICAgVU5VU0VEX1BBUkFNKGNvbnRleHRJ
ZCk7CisgICAgVU5VU0VEX1BBUkFNKGlubGluZVJlY3QpOworICAgIFVOVVNFRF9QQVJBTSh2aXNp
YmxlKTsKKworICAgIGF1dG8mIGluamVjdGVkQnVuZGxlID0gSW5qZWN0ZWRCdW5kbGU6OnNpbmds
ZXRvbigpOworICAgIGlmIChpbmplY3RlZEJ1bmRsZS50ZXN0UnVubmVyKCktPnNob3VsZER1bXBG
dWxsU2NyZWVuQ2FsbGJhY2tzKCkpCisgICAgICAgIGluamVjdGVkQnVuZGxlLm91dHB1dFRleHQo
InNldElubGluZVJlY3QoKVxuIik7Cit9CisKK3ZvaWQgSW5qZWN0ZWRCdW5kbGVQYWdlOjpzZXRI
YXNWaWRlb0NvbnRlbnRMYXllcihXS0J1bmRsZVBhZ2VSZWYgcGFnZSwgdWludDY0X3QgY29udGV4
dElkLCBib29sIHZhbHVlKQoreworICAgIGF1dG8mIGluamVjdGVkQnVuZGxlID0gSW5qZWN0ZWRC
dW5kbGU6OnNpbmdsZXRvbigpOworICAgIGlmIChpbmplY3RlZEJ1bmRsZS50ZXN0UnVubmVyKCkt
PnNob3VsZER1bXBGdWxsU2NyZWVuQ2FsbGJhY2tzKCkpCisgICAgICAgIGluamVjdGVkQnVuZGxl
Lm91dHB1dFRleHQoInNldEhhc1ZpZGVvQ29udGVudExheWVyKClcbiIpOworCisgICAgaWYgKHZh
bHVlKQorICAgICAgICBXS0J1bmRsZVBhZ2VEaWRTZXR1cFZpZGVvRnVsbHNjcmVlbihwYWdlLCBj
b250ZXh0SWQpOworICAgIGVsc2UKKyAgICAgICAgV0tCdW5kbGVQYWdlRGlkRXhpdFZpZGVvRnVs
bHNjcmVlbihwYWdlLCBjb250ZXh0SWQpOworfQorCit2b2lkIEluamVjdGVkQnVuZGxlUGFnZTo6
Y2xlYW51cEZ1bGxzY3JlZW4oV0tCdW5kbGVQYWdlUmVmIHBhZ2UsIHVpbnQ2NF90IGNvbnRleHRJ
ZCkKK3sKKyAgICBhdXRvJiBpbmplY3RlZEJ1bmRsZSA9IEluamVjdGVkQnVuZGxlOjpzaW5nbGV0
b24oKTsKKyAgICBpZiAoaW5qZWN0ZWRCdW5kbGUudGVzdFJ1bm5lcigpLT5zaG91bGREdW1wRnVs
bFNjcmVlbkNhbGxiYWNrcygpKQorICAgICAgICBpbmplY3RlZEJ1bmRsZS5vdXRwdXRUZXh0KCJj
bGVhbnVwRnVsbHNjcmVlbigpXG4iKTsKKworICAgIFdLQnVuZGxlUGFnZURpZENsZWFudXBWaWRl
b0Z1bGxzY3JlZW4ocGFnZSwgY29udGV4dElkKTsKK30KKwordm9pZCBJbmplY3RlZEJ1bmRsZVBh
Z2U6OnByZXBhcmVkVG9SZXR1cm5Ub0lubGluZShXS0J1bmRsZVBhZ2VSZWYsIHVpbnQ2NF90IGNv
bnRleHRJZCwgYm9vbCB2aXNpYmxlLCBXS1JlY3QgaW5saW5lUmVjdCkKK3sKKyAgICBVTlVTRURf
UEFSQU0oY29udGV4dElkKTsKKyAgICBVTlVTRURfUEFSQU0odmlzaWJsZSk7CisgICAgVU5VU0VE
X1BBUkFNKGlubGluZVJlY3QpOworCisgICAgYXV0byYgaW5qZWN0ZWRCdW5kbGUgPSBJbmplY3Rl
ZEJ1bmRsZTo6c2luZ2xldG9uKCk7CisgICAgaWYgKGluamVjdGVkQnVuZGxlLnRlc3RSdW5uZXIo
KS0+c2hvdWxkRHVtcEZ1bGxTY3JlZW5DYWxsYmFja3MoKSkKKyAgICAgICAgaW5qZWN0ZWRCdW5k
bGUub3V0cHV0VGV4dCgicHJlcGFyZWRUb1JldHVyblRvSW5saW5lKClcbiIpOworfQorCit2b2lk
IEluamVjdGVkQnVuZGxlUGFnZTo6cHJlcGFyZWRUb0V4aXRGdWxsc2NyZWVuKFdLQnVuZGxlUGFn
ZVJlZiwgdWludDY0X3QgY29udGV4dElkKQoreworICAgIFVOVVNFRF9QQVJBTShjb250ZXh0SWQp
OworCisgICAgYXV0byYgaW5qZWN0ZWRCdW5kbGUgPSBJbmplY3RlZEJ1bmRsZTo6c2luZ2xldG9u
KCk7CisgICAgaWYgKGluamVjdGVkQnVuZGxlLnRlc3RSdW5uZXIoKS0+c2hvdWxkRHVtcEZ1bGxT
Y3JlZW5DYWxsYmFja3MoKSkKKyAgICAgICAgaW5qZWN0ZWRCdW5kbGUub3V0cHV0VGV4dCgicHJl
cGFyZWRUb0V4aXRGdWxsc2NyZWVuKClcbiIpOworfQorCisjaWYgUExBVEZPUk0oTUFDKQordm9p
ZCBJbmplY3RlZEJ1bmRsZVBhZ2U6OmV4aXRGdWxsc2NyZWVuV2l0aG91dEFuaW1hdGlvblRvTW9k
ZShXS0J1bmRsZVBhZ2VSZWYsIHVpbnQ2NF90IGNvbnRleHRJZCwgV0tWaWRlb0Z1bGxzY3JlZW5N
b2RlIHZpZGVvRnVsbHNjcmVlbk1vZGUpCit7CisgICAgVU5VU0VEX1BBUkFNKGNvbnRleHRJZCk7
CisgICAgVU5VU0VEX1BBUkFNKHZpZGVvRnVsbHNjcmVlbk1vZGUpOworCisgICAgYXV0byYgaW5q
ZWN0ZWRCdW5kbGUgPSBJbmplY3RlZEJ1bmRsZTo6c2luZ2xldG9uKCk7CisgICAgaWYgKGluamVj
dGVkQnVuZGxlLnRlc3RSdW5uZXIoKS0+c2hvdWxkRHVtcEZ1bGxTY3JlZW5DYWxsYmFja3MoKSkK
KyAgICAgICAgaW5qZWN0ZWRCdW5kbGUub3V0cHV0VGV4dCgiZXhpdEZ1bGxzY3JlZW5XaXRob3V0
QW5pbWF0aW9uVG9Nb2RlKClcbiIpOworfQorI2VuZGlmCisKKyNlbmRpZiAvLyBFTkFCTEUoVklE
RU9fUFJFU0VOVEFUSU9OX01PREUpCisKIFN0cmluZyBJbmplY3RlZEJ1bmRsZVBhZ2U6OmR1bXBI
aXN0b3J5KCkKIHsKICAgICByZXR1cm4gbWFrZVN0cmluZygKZGlmZiAtLWdpdCBhL1Rvb2xzL1dl
YktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvSW5qZWN0ZWRCdW5kbGVQYWdlLmggYi9Ub29s
cy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0luamVjdGVkQnVuZGxlUGFnZS5oCmlu
ZGV4IDMxNDg4YTUyYjVjZTU1Njk2MTZjYmQ5MWI5YTIxOTc1MDM0MjExMmUuLjQ1MjFkZGEyYWM5
NTZmYTk2MTQ2YzExMGZiNThhMWRkZTIxOTM3ZWMgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYktpdFRl
c3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvSW5qZWN0ZWRCdW5kbGVQYWdlLmgKKysrIGIvVG9vbHMv
V2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZVBhZ2UuaApAQCAt
MTQ1LDYgKzE0NSwyMiBAQCBwcml2YXRlOgogICAgIHN0YXRpYyB2b2lkIGNsb3NlRnVsbFNjcmVl
bihXS0J1bmRsZVBhZ2VSZWYpOwogI2VuZGlmCiAKKyNpZiBFTkFCTEUoVklERU9fUFJFU0VOVEFU
SU9OX01PREUpCisgICAgc3RhdGljIHZvaWQgc2V0SGFzVmlkZW8oV0tCdW5kbGVQYWdlUmVmLCB1
aW50NjRfdCBjb250ZXh0SWQsIGJvb2wgaGFzVmlkZW8pOworICAgIHN0YXRpYyB2b2lkIHNldFZp
ZGVvRGltZW5zaW9ucyhXS0J1bmRsZVBhZ2VSZWYsIHVpbnQ2NF90IGNvbnRleHRJZCwgV0tTaXpl
IHZpZGVvRGltZW5zaW9ucyk7CisgICAgc3RhdGljIHZvaWQgc2V0dXBGdWxsc2NyZWVuV2l0aElE
KFdLQnVuZGxlUGFnZVJlZiwgdWludDY0X3QgY29udGV4dElkLCB1aW50MzJfdCB2aWRlb0xheWVy
SWQsIFdLUmVjdCBpbml0aWFsUmVjdCwgZmxvYXQgaG9zdGluZ1NjYWxlRmFjdG9yLCBXS1ZpZGVv
RnVsbHNjcmVlbk1vZGUsIGJvb2wgYWxsb3dzUGljdHVyZUluUGljdHVyZSwgYm9vbCBzdGFuZGJ5
KTsKKyAgICBzdGF0aWMgdm9pZCBlbnRlckZ1bGxzY3JlZW4oV0tCdW5kbGVQYWdlUmVmLCB1aW50
NjRfdCBjb250ZXh0SWQpOworICAgIHN0YXRpYyB2b2lkIGV4aXRGdWxsc2NyZWVuKFdLQnVuZGxl
UGFnZVJlZiwgdWludDY0X3QgY29udGV4dElkLCBXS1JlY3QgZmluYWxSZWN0KTsKKyAgICBzdGF0
aWMgdm9pZCBzZXRJbmxpbmVSZWN0KFdLQnVuZGxlUGFnZVJlZiwgdWludDY0X3QgY29udGV4dElk
LCBXS1JlY3QgaW5saW5lUmVjdCwgYm9vbCB2aXNpYmxlKTsKKyAgICBzdGF0aWMgdm9pZCBzZXRI
YXNWaWRlb0NvbnRlbnRMYXllcihXS0J1bmRsZVBhZ2VSZWYsIHVpbnQ2NF90IGNvbnRleHRJZCwg
Ym9vbCB2YWx1ZSk7CisgICAgc3RhdGljIHZvaWQgY2xlYW51cEZ1bGxzY3JlZW4oV0tCdW5kbGVQ
YWdlUmVmLCB1aW50NjRfdCBjb250ZXh0SWQpOworICAgIHN0YXRpYyB2b2lkIHByZXBhcmVkVG9S
ZXR1cm5Ub0lubGluZShXS0J1bmRsZVBhZ2VSZWYsIHVpbnQ2NF90IGNvbnRleHRJZCwgYm9vbCB2
aXNpYmxlLCBXS1JlY3QgaW5saW5lUmVjdCk7CisgICAgc3RhdGljIHZvaWQgcHJlcGFyZWRUb0V4
aXRGdWxsc2NyZWVuKFdLQnVuZGxlUGFnZVJlZiwgdWludDY0X3QgY29udGV4dElkKTsKKyNpZiBQ
TEFURk9STShNQUMpCisgICAgc3RhdGljIHZvaWQgZXhpdEZ1bGxzY3JlZW5XaXRob3V0QW5pbWF0
aW9uVG9Nb2RlKFdLQnVuZGxlUGFnZVJlZiwgdWludDY0X3QgY29udGV4dElkLCBXS1ZpZGVvRnVs
bHNjcmVlbk1vZGUpOworI2VuZGlmCisjZW5kaWYgLy8gRU5BQkxFKFZJREVPX1BSRVNFTlRBVElP
Tl9NT0RFKQorCiAgICAgLy8gRWRpdG9yIGNsaWVudAogICAgIHN0YXRpYyBib29sIHNob3VsZEJl
Z2luRWRpdGluZyhXS0J1bmRsZVBhZ2VSZWYsIFdLQnVuZGxlUmFuZ2VIYW5kbGVSZWYsIGNvbnN0
IHZvaWQqIGNsaWVudEluZm8pOwogICAgIHN0YXRpYyBib29sIHNob3VsZEVuZEVkaXRpbmcoV0tC
dW5kbGVQYWdlUmVmLCBXS0J1bmRsZVJhbmdlSGFuZGxlUmVmLCBjb25zdCB2b2lkKiBjbGllbnRJ
bmZvKTsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>396835</attachid>
            <date>2020-04-17 23:15:28 -0700</date>
            <delta_ts>2020-04-17 23:49:30 -0700</delta_ts>
            <desc>Fix build failures</desc>
            <filename>bug-203723-20200417231527.patch</filename>
            <type>text/plain</type>
            <size>60334</size>
            <attacher name="Peng Liu">peng.liu6</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjYwMjkzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDExZjZlNzRiMWNiYmU4MGI4
N2YyNTU4MTE5NzkxYjYyODc5NmJjOWMuLjBmYTk0Y2E4NmZkYmUxZWQwNjFlMDg0NDcxOWQxYWMy
YjM3MDgzMDYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNjQgQEAKKzIwMjAtMDQtMTcgIFBlbmcgTGl1
ICA8cGVuZy5saXU2QGFwcGxlLmNvbT4KKworICAgICAgICBVcGRhdGUgV2ViS2l0VGVzdFJ1bm5l
ciB0byBzdXBwb3J0IHJ1bm5pbmcgbXVsdGlwbGUgdmlkZW8gZnVsbHNjcmVlbiBhbmQgUGljdHVy
ZS1pbi1QaWN0dXJlIHRlc3RzIHNpbXVsdGFuZW91c2x5CisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDM3MjMKKworICAgICAgICBSZXZpZXdlZCBieSBO
T0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGQgdGhlIGluamVjdGVkIGJ1bmRsZSBjbGllbnQg
c3VwcG9ydCBmb3IgdmlkZW8gZnVsbHNjcmVlbiByZWxhdGVkIGludGVyZmFjZXMgYmV0d2VlbiAK
KyAgICAgICAgdGhlIFdlYiBwcm9jZXNzIChWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyKSBhbmQgdGhl
IFVJIHByb2Nlc3MgKFZpZGVvRnVsbHNjcmVlbk1hbmFnZXJQcm94eSkuCisKKyAgICAgICAgKiBT
aGFyZWQvQVBJL2MvV0tTaGFyZWRBUElDYXN0Lmg6CisgICAgICAgIChXZWJLaXQ6OnRvQVBJKToK
KyAgICAgICAgKiBXZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBX
ZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9jL1dLQnVuZGxlUGFnZS5jcHA6CisgICAgICAg
IChXS0J1bmRsZVBhZ2VTZXRWaWRlb0Z1bGxzY3JlZW5DbGllbnQpOgorICAgICAgICAoV0tCdW5k
bGVQYWdlUmVxdWVzdFZpZGVvRnVsbHNjcmVlbk1vZGUpOgorICAgICAgICAoV0tCdW5kbGVQYWdl
UmVxdWVzdFZpZGVvQ29udGVudExheWVyKToKKyAgICAgICAgKFdLQnVuZGxlUGFnZURpZFNldHVw
VmlkZW9GdWxsc2NyZWVuKToKKyAgICAgICAgKFdLQnVuZGxlUGFnZURpZEVudGVyVmlkZW9GdWxs
c2NyZWVuKToKKyAgICAgICAgKFdLQnVuZGxlUGFnZVJldHVyblZpZGVvQ29udGVudExheWVyKToK
KyAgICAgICAgKFdLQnVuZGxlUGFnZURpZEV4aXRWaWRlb0Z1bGxzY3JlZW4pOgorICAgICAgICAo
V0tCdW5kbGVQYWdlRGlkQ2xlYW51cFZpZGVvRnVsbHNjcmVlbik6CisgICAgICAgICogV2ViUHJv
Y2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvYy9XS0J1bmRsZVBhZ2UuaDoKKyAgICAgICAgKiBXZWJQ
cm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9jL1dLQnVuZGxlUGFnZVZpZGVvRnVsbHNjcmVlbkNs
aWVudC5oOiBBZGRlZC4KKyAgICAgICAgKiBXZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0luamVj
dGVkQnVuZGxlUGFnZUZ1bGxTY3JlZW5DbGllbnQuY3BwOgorICAgICAgICAqIFdlYlByb2Nlc3Mv
SW5qZWN0ZWRCdW5kbGUvSW5qZWN0ZWRCdW5kbGVQYWdlRnVsbFNjcmVlbkNsaWVudC5oOgorICAg
ICAgICAqIFdlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvSW5qZWN0ZWRCdW5kbGVQYWdlVmlkZW9G
dWxsc2NyZWVuQ2xpZW50LmNwcDogQWRkZWQuCisgICAgICAgIChXZWJLaXQ6OkluamVjdGVkQnVu
ZGxlUGFnZVZpZGVvRnVsbHNjcmVlbkNsaWVudDo6c2V0SGFzVmlkZW8pOgorICAgICAgICAoV2Vi
S2l0OjpJbmplY3RlZEJ1bmRsZVBhZ2VWaWRlb0Z1bGxzY3JlZW5DbGllbnQ6OnNldFZpZGVvRGlt
ZW5zaW9ucyk6CisgICAgICAgIChXZWJLaXQ6OkluamVjdGVkQnVuZGxlUGFnZVZpZGVvRnVsbHNj
cmVlbkNsaWVudDo6c2V0dXBGdWxsc2NyZWVuV2l0aElEKToKKyAgICAgICAgKFdlYktpdDo6SW5q
ZWN0ZWRCdW5kbGVQYWdlVmlkZW9GdWxsc2NyZWVuQ2xpZW50OjplbnRlckZ1bGxzY3JlZW4pOgor
ICAgICAgICAoV2ViS2l0OjpJbmplY3RlZEJ1bmRsZVBhZ2VWaWRlb0Z1bGxzY3JlZW5DbGllbnQ6
OmV4aXRGdWxsc2NyZWVuKToKKyAgICAgICAgKFdlYktpdDo6SW5qZWN0ZWRCdW5kbGVQYWdlVmlk
ZW9GdWxsc2NyZWVuQ2xpZW50OjpzZXRJbmxpbmVSZWN0KToKKyAgICAgICAgKFdlYktpdDo6SW5q
ZWN0ZWRCdW5kbGVQYWdlVmlkZW9GdWxsc2NyZWVuQ2xpZW50OjpzZXRIYXNWaWRlb0NvbnRlbnRM
YXllcik6CisgICAgICAgIChXZWJLaXQ6OkluamVjdGVkQnVuZGxlUGFnZVZpZGVvRnVsbHNjcmVl
bkNsaWVudDo6Y2xlYW51cEZ1bGxzY3JlZW4pOgorICAgICAgICAoV2ViS2l0OjpJbmplY3RlZEJ1
bmRsZVBhZ2VWaWRlb0Z1bGxzY3JlZW5DbGllbnQ6OnByZXBhcmVkVG9SZXR1cm5Ub0lubGluZSk6
CisgICAgICAgIChXZWJLaXQ6OkluamVjdGVkQnVuZGxlUGFnZVZpZGVvRnVsbHNjcmVlbkNsaWVu
dDo6cHJlcGFyZWRUb0V4aXRGdWxsc2NyZWVuKToKKyAgICAgICAgKFdlYktpdDo6SW5qZWN0ZWRC
dW5kbGVQYWdlVmlkZW9GdWxsc2NyZWVuQ2xpZW50OjpleGl0RnVsbHNjcmVlbldpdGhvdXRBbmlt
YXRpb25Ub01vZGUpOgorICAgICAgICAqIFdlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvSW5qZWN0
ZWRCdW5kbGVQYWdlVmlkZW9GdWxsc2NyZWVuQ2xpZW50Lmg6IEFkZGVkLgorICAgICAgICAqIFdl
YlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZTo6
aW5pdGlhbGl6ZUluamVjdGVkQnVuZGxlVmlkZW9GdWxsc2NyZWVuQ2xpZW50KToKKyAgICAgICAg
KFdlYktpdDo6V2ViUGFnZTo6Y2xvc2UpOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9X
ZWJQYWdlLmg6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2U6OmluamVjdGVkQnVuZGxlVmlkZW9G
dWxsc2NyZWVuQ2xpZW50KToKKyAgICAgICAgKiBXZWJQcm9jZXNzL2NvY29hL1ZpZGVvRnVsbHNj
cmVlbk1hbmFnZXIuaDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL2NvY29hL1ZpZGVvRnVsbHNjcmVl
bk1hbmFnZXIubW06CisgICAgICAgIChXZWJLaXQ6OlZpZGVvRnVsbHNjcmVlbk1hbmFnZXI6OmVu
dGVyVmlkZW9GdWxsc2NyZWVuRm9yVmlkZW9FbGVtZW50KToKKyAgICAgICAgKFdlYktpdDo6Vmlk
ZW9GdWxsc2NyZWVuTWFuYWdlcjo6ZXhpdFZpZGVvRnVsbHNjcmVlbkZvclZpZGVvRWxlbWVudCk6
CisgICAgICAgIChXZWJLaXQ6OlZpZGVvRnVsbHNjcmVlbk1hbmFnZXI6OmV4aXRWaWRlb0Z1bGxz
Y3JlZW5Ub01vZGVXaXRob3V0QW5pbWF0aW9uKToKKyAgICAgICAgKFdlYktpdDo6VmlkZW9GdWxs
c2NyZWVuTWFuYWdlcjo6aGFzVmlkZW9DaGFuZ2VkKToKKyAgICAgICAgKFdlYktpdDo6VmlkZW9G
dWxsc2NyZWVuTWFuYWdlcjo6dmlkZW9EaW1lbnNpb25zQ2hhbmdlZCk6CisgICAgICAgIChXZWJL
aXQ6OlZpZGVvRnVsbHNjcmVlbk1hbmFnZXI6OnJlcXVlc3RVcGRhdGVJbmxpbmVSZWN0KToKKyAg
ICAgICAgKFdlYktpdDo6VmlkZW9GdWxsc2NyZWVuTWFuYWdlcjo6cmVxdWVzdFZpZGVvQ29udGVu
dExheWVyKToKKyAgICAgICAgKFdlYktpdDo6VmlkZW9GdWxsc2NyZWVuTWFuYWdlcjo6cmV0dXJu
VmlkZW9Db250ZW50TGF5ZXIpOgorICAgICAgICAoV2ViS2l0OjpWaWRlb0Z1bGxzY3JlZW5NYW5h
Z2VyOjpkaWRTZXR1cEZ1bGxzY3JlZW4pOgorICAgICAgICAoV2ViS2l0OjpWaWRlb0Z1bGxzY3Jl
ZW5NYW5hZ2VyOjp3aWxsRXhpdEZ1bGxzY3JlZW4pOgorICAgICAgICAoV2ViS2l0OjpWaWRlb0Z1
bGxzY3JlZW5NYW5hZ2VyOjpkaWRFbnRlckZ1bGxzY3JlZW4pOgorICAgICAgICAoV2ViS2l0OjpW
aWRlb0Z1bGxzY3JlZW5NYW5hZ2VyOjpkaWRFeGl0RnVsbHNjcmVlbik6CisgICAgICAgIChXZWJL
aXQ6OlZpZGVvRnVsbHNjcmVlbk1hbmFnZXI6OmRpZENsZWFudXBGdWxsc2NyZWVuKToKKyAgICAg
ICAgKFdlYktpdDo6VmlkZW9GdWxsc2NyZWVuTWFuYWdlcjo6ZnVsbHNjcmVlbk1heVJldHVyblRv
SW5saW5lKToKKwogMjAyMC0wNC0xNyAgRGF2aWQgS2lsemVyICA8ZGRraWx6ZXJAYXBwbGUuY29t
PgogCiAgICAgICAgIFJFR1JFU1NJT04gKHIyMzQxMDUpOiBbaU9TXSBXS0NvbG9yQnV0dG9uIGxl
YWtzIGEgVUlDb2xvcgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvQVBJL2MvV0tT
aGFyZWRBUElDYXN0LmggYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9BUEkvYy9XS1NoYXJlZEFQSUNh
c3QuaAppbmRleCAzN2M3ZDk2NjQyODJhZjM5NDhiNWZhMDA2ZmM4NTA0OTQ3N2E5NDgwLi4wNTU0
MjE1NmVkYWFiZDQ2YmYwYjdiNzJlYTI3Mjg0ODUwNjIzYjdiIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L1NoYXJlZC9BUEkvYy9XS1NoYXJlZEFQSUNhc3QuaAorKysgYi9Tb3VyY2UvV2ViS2l0
L1NoYXJlZC9BUEkvYy9XS1NoYXJlZEFQSUNhc3QuaApAQCAtMjQ5LDYgKzI0OSwxNCBAQCBpbmxp
bmUgV0tSZWN0IHRvQVBJKGNvbnN0IFdlYkNvcmU6OkZsb2F0UmVjdCYgcmVjdCkKICAgICByZXR1
cm4gd2tSZWN0OwogfQogCitpbmxpbmUgV0tTaXplIHRvQVBJKGNvbnN0IFdlYkNvcmU6OkZsb2F0
U2l6ZSYgc2l6ZSkKK3sKKyAgICBXS1NpemUgd2tTaXplOworICAgIHdrU2l6ZS53aWR0aCA9IHNp
emUud2lkdGgoKTsKKyAgICB3a1NpemUuaGVpZ2h0ID0gc2l6ZS5oZWlnaHQoKTsKKyAgICByZXR1
cm4gd2tTaXplOworfQorCiBpbmxpbmUgV0tSZWN0IHRvQVBJKGNvbnN0IFdlYkNvcmU6OkludFJl
Y3QmIHJlY3QpCiB7CiAgICAgV0tSZWN0IHdrUmVjdDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvV2ViS2l0L1dlYktp
dC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IDZlNDdiNmU5MmYwMmE5NWYzMzc2Yjhh
NzA1ZGZiMTExYWY4YTY4NDkuLjEyN2M3ODRjNDA5Yjc4MTk4MzE2OGVhODY1ZTFkMTJlNDBkMzk5
ZGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBi
eHByb2oKKysrIGIvU291cmNlL1dlYktpdC9XZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJv
agpAQCAtNDE3LDYgKzQxNyw5IEBACiAJCTFENEQ3MzcxMjNBOUU1NjIwMDcxN0EyNSAvKiBSZW1v
dGVNZWRpYVJlc291cmNlTWFuYWdlck1lc3NhZ2VzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxRDRENzM2QzIzQTlERjYwMDA3MTdBMjUgLyogUmVtb3Rl
TWVkaWFSZXNvdXJjZU1hbmFnZXJNZXNzYWdlcy5oICovOyB9OwogCQkxRDRENzM3NjIzQTlFRDE4
MDA3MTdBMjUgLyogUmVtb3RlTWVkaWFSZXNvdXJjZU1hbmFnZXJNZXNzYWdlc1JlcGxpZXMuaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDFENEQ3Mzc1MjNB
OUVCNjgwMDcxN0EyNSAvKiBSZW1vdGVNZWRpYVJlc291cmNlTWFuYWdlck1lc3NhZ2VzUmVwbGll
cy5oICovOyB9OwogCQkxRDY3QjMzOTIxMkUxRjYxMDBGQUE3ODYgLyogU2hhcmVTaGVldENhbGxi
YWNrSUQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDFE
NjdCMzM4MjEyRTFGNjEwMEZBQTc4NiAvKiBTaGFyZVNoZWV0Q2FsbGJhY2tJRC5oICovOyB9Owor
CQkxREFBNTJDMDI0Mzk2ODMxMDAxQTMxNTkgLyogSW5qZWN0ZWRCdW5kbGVQYWdlVmlkZW9GdWxs
c2NyZWVuQ2xpZW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSAxREFBNTJCRTI0Mzk2ODMxMDAxQTMxNTkgLyogSW5qZWN0ZWRCdW5kbGVQYWdlVmlkZW9G
dWxsc2NyZWVuQ2xpZW50LmggKi87IH07CisJCTFEQUE1MkMxMjQzOTY4MzEwMDFBMzE1OSAvKiBJ
bmplY3RlZEJ1bmRsZVBhZ2VWaWRlb0Z1bGxzY3JlZW5DbGllbnQuY3BwIGluIFNvdXJjZXMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMURBQTUyQkYyNDM5NjgzMTAwMUEzMTU5
IC8qIEluamVjdGVkQnVuZGxlUGFnZVZpZGVvRnVsbHNjcmVlbkNsaWVudC5jcHAgKi87IH07CisJ
CTFEQUE1MkMzMjQzOTZFNkQwMDFBMzE1OSAvKiBXS0J1bmRsZVBhZ2VWaWRlb0Z1bGxzY3JlZW5D
bGllbnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDFE
QUE1MkMyMjQzOTZFNkQwMDFBMzE1OSAvKiBXS0J1bmRsZVBhZ2VWaWRlb0Z1bGxzY3JlZW5DbGll
bnQuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQkx
REIwMTk0MzIxMUNGMDAyMDA5RkIzRTggLyogV0tTaGFyZVNoZWV0LmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxREUwRDA5NTIxMUNDMjEzMDA0MzlCNUYg
LyogV0tTaGFyZVNoZWV0LmggKi87IH07CiAJCTFEQjAxOTQ0MjExQ0YwMDUwMDlGQjNFOCAvKiBX
S1NoYXJlU2hlZXQubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSAxREJCQjA2MTIxMUNDM0NCMDA1MDJFQ0MgLyogV0tTaGFyZVNoZWV0Lm1tICovOyB9Owog
CQkxRjMzNUJDMDE4NUI4NEYwMDAxQTIwMUEgLyogV0tXZWJQcm9jZXNzUGx1Z0luTG9hZERlbGVn
YXRlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxRjMz
NUJCRjE4NUI4NEQ4MDAxQTIwMUEgLyogV0tXZWJQcm9jZXNzUGx1Z0luTG9hZERlbGVnYXRlLmgg
Ki87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKQEAgLTI3NDIs
NiArMjc0NSw5IEBACiAJCTFEOTdFQzdEMjQwODk4RDIwMDQ2NkZGQSAvKiBNZWRpYVBsYXllclBy
aXZhdGVSZW1vdGVDb2NvYS5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBleHBsaWNp
dEZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gTWVkaWFQbGF5ZXJQcml2
YXRlUmVtb3RlQ29jb2EubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTFEQTQwODk0
MjNBODBBM0UwMDU4Qzk1MCAvKiBSZW1vdGVNZWRpYVJlc291cmNlTWFuYWdlci5oICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7
IHBhdGggPSBSZW1vdGVNZWRpYVJlc291cmNlTWFuYWdlci5oOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwogCQkxREE0MDg5RTIzQTgyNzc4MDA1OEM5NTAgLyogUmVtb3RlTWVkaWFSZXNvdXJj
ZU1hbmFnZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gUmVtb3RlTWVkaWFSZXNvdXJjZU1hbmFn
ZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkxREFBNTJCRTI0Mzk2ODMxMDAx
QTMxNTkgLyogSW5qZWN0ZWRCdW5kbGVQYWdlVmlkZW9GdWxsc2NyZWVuQ2xpZW50LmggKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMu
aDsgcGF0aCA9IEluamVjdGVkQnVuZGxlUGFnZVZpZGVvRnVsbHNjcmVlbkNsaWVudC5oOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OworCQkxREFBNTJCRjI0Mzk2ODMxMDAxQTMxNTkgLyogSW5q
ZWN0ZWRCdW5kbGVQYWdlVmlkZW9GdWxsc2NyZWVuQ2xpZW50LmNwcCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0
aCA9IEluamVjdGVkQnVuZGxlUGFnZVZpZGVvRnVsbHNjcmVlbkNsaWVudC5jcHA7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CisJCTFEQUE1MkMyMjQzOTZFNkQwMDFBMzE1OSAvKiBXS0J1bmRs
ZVBhZ2VWaWRlb0Z1bGxzY3JlZW5DbGllbnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBw
YXRoID0gV0tCdW5kbGVQYWdlVmlkZW9GdWxsc2NyZWVuQ2xpZW50Lmg7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CiAJCTFEQkJCMDYxMjExQ0MzQ0IwMDUwMkVDQyAvKiBXS1NoYXJlU2hlZXQu
bW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBXS1NoYXJlU2hlZXQu
bW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTFERTBEMDk1MjExQ0MyMTMwMDQzOUI1
RiAvKiBXS1NoYXJlU2hlZXQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV0tT
aGFyZVNoZWV0Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTFERTJERkFDMjNBOTU5
RjgwMDNFMDEzQSAvKiBSZW1vdGVNZWRpYVJlc291cmNlSWRlbnRpZmllci5oICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBh
dGggPSBSZW1vdGVNZWRpYVJlc291cmNlSWRlbnRpZmllci5oOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwpAQCAtOTQzNyw2ICs5NDQzLDggQEAKIAkJCQk2NTQ2QTgyQTEzMDAwMTY0MDAwQ0VC
MUMgLyogSW5qZWN0ZWRCdW5kbGVQYWdlUmVzb3VyY2VMb2FkQ2xpZW50LmggKi8sCiAJCQkJQkNB
OEM2QUQxMUUzQzA4NzAwODEyRkI3IC8qIEluamVjdGVkQnVuZGxlUGFnZVVJQ2xpZW50LmNwcCAq
LywKIAkJCQlCQ0E4QzZBRTExRTNDMDg3MDA4MTJGQjcgLyogSW5qZWN0ZWRCdW5kbGVQYWdlVUlD
bGllbnQuaCAqLywKKwkJCQkxREFBNTJCRjI0Mzk2ODMxMDAxQTMxNTkgLyogSW5qZWN0ZWRCdW5k
bGVQYWdlVmlkZW9GdWxsc2NyZWVuQ2xpZW50LmNwcCAqLywKKwkJCQkxREFBNTJCRTI0Mzk2ODMx
MDAxQTMxNTkgLyogSW5qZWN0ZWRCdW5kbGVQYWdlVmlkZW9GdWxsc2NyZWVuQ2xpZW50LmggKi8s
CiAJCQkJQkMxNERGNzYxMjBCNUI3OTAwODI2QzBDIC8qIEluamVjdGVkQnVuZGxlU2NyaXB0V29y
bGQuY3BwICovLAogCQkJCUJDMTRERjc1MTIwQjVCNzkwMDgyNkMwQyAvKiBJbmplY3RlZEJ1bmRs
ZVNjcmlwdFdvcmxkLmggKi8sCiAJCQkpOwpAQCAtOTUxMSw2ICs5NTE5LDcgQEAKIAkJCQlCQzFC
NDE5NzExRDQxRDU3MDAxMUU4REQgLyogV0tCdW5kbGVQYWdlUHJpdmF0ZS5oICovLAogCQkJCTFB
QjQ3NEQ5MTg0RDQ0MjUwMDUxQjYyMiAvKiBXS0J1bmRsZVBhZ2VSZXNvdXJjZUxvYWRDbGllbnQu
aCAqLywKIAkJCQkxQUI0NzRERDE4NEQ0NDU5MDA1MUI2MjIgLyogV0tCdW5kbGVQYWdlVUlDbGll
bnQuaCAqLywKKwkJCQkxREFBNTJDMjI0Mzk2RTZEMDAxQTMxNTkgLyogV0tCdW5kbGVQYWdlVmlk
ZW9GdWxsc2NyZWVuQ2xpZW50LmggKi8sCiAJCQkJQkNGMDQ5RTUxMUZFMjBGNjAwRjg2QTU4IC8q
IFdLQnVuZGxlUHJpdmF0ZS5oICovLAogCQkJCUJDNjBDNTc4MTI0MEE1NDYwMDhDNUUyOSAvKiBX
S0J1bmRsZVJhbmdlSGFuZGxlLmNwcCAqLywKIAkJCQlCQzYwQzU3NzEyNDBBNTQ2MDA4QzVFMjkg
LyogV0tCdW5kbGVSYW5nZUhhbmRsZS5oICovLApAQCAtMTA3OTksNiArMTA4MDgsNyBAQAogCQkJ
CUJDQThDNkE5MTFFM0JBNUYwMDgxMkZCNyAvKiBJbmplY3RlZEJ1bmRsZVBhZ2VMb2FkZXJDbGll
bnQuaCBpbiBIZWFkZXJzICovLAogCQkJCUJDODE0N0E5MTJGNjRDREEwMDdCMkMzMiAvKiBJbmpl
Y3RlZEJ1bmRsZVBhZ2VQb2xpY3lDbGllbnQuaCBpbiBIZWFkZXJzICovLAogCQkJCUJDQThDNkIw
MTFFM0MwODcwMDgxMkZCNyAvKiBJbmplY3RlZEJ1bmRsZVBhZ2VVSUNsaWVudC5oIGluIEhlYWRl
cnMgKi8sCisJCQkJMURBQTUyQzAyNDM5NjgzMTAwMUEzMTU5IC8qIEluamVjdGVkQnVuZGxlUGFn
ZVZpZGVvRnVsbHNjcmVlbkNsaWVudC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQkMzM0UwRDExMjQw
OEU4NjAwMzYwRjNGIC8qIEluamVjdGVkQnVuZGxlUmFuZ2VIYW5kbGUuaCBpbiBIZWFkZXJzICov
LAogCQkJCUJDMTRERjc3MTIwQjVCNzkwMDgyNkMwQyAvKiBJbmplY3RlZEJ1bmRsZVNjcmlwdFdv
cmxkLmggaW4gSGVhZGVycyAqLywKIAkJCQkyREQ0NUFERTFFNUY4OTcyMDA2QzM1NUYgLyogSW5w
dXRWaWV3VXBkYXRlRGVmZXJyZXIuaCBpbiBIZWFkZXJzICovLApAQCAtMTE0MzYsNiArMTE0NDYs
NyBAQAogCQkJCUJDMUI0MTk4MTFENDFENTcwMDExRThERCAvKiBXS0J1bmRsZVBhZ2VQcml2YXRl
LmggaW4gSGVhZGVycyAqLywKIAkJCQkxQUI0NzREQTE4NEQ0NDI1MDA1MUI2MjIgLyogV0tCdW5k
bGVQYWdlUmVzb3VyY2VMb2FkQ2xpZW50LmggaW4gSGVhZGVycyAqLywKIAkJCQkxQUI0NzRERTE4
NEQ0NDU5MDA1MUI2MjIgLyogV0tCdW5kbGVQYWdlVUlDbGllbnQuaCBpbiBIZWFkZXJzICovLAor
CQkJCTFEQUE1MkMzMjQzOTZFNkQwMDFBMzE1OSAvKiBXS0J1bmRsZVBhZ2VWaWRlb0Z1bGxzY3Jl
ZW5DbGllbnQuaCBpbiBIZWFkZXJzICovLAogCQkJCUJDRjA0OUU3MTFGRTIwRjYwMEY4NkE1OCAv
KiBXS0J1bmRsZVByaXZhdGUuaCBpbiBIZWFkZXJzICovLAogCQkJCUJDNjBDNTc5MTI0MEE1NDYw
MDhDNUUyOSAvKiBXS0J1bmRsZVJhbmdlSGFuZGxlLmggaW4gSGVhZGVycyAqLywKIAkJCQlCQzVE
MjRDNzE2Q0Q3M0M1MDA3RDU0NjEgLyogV0tCdW5kbGVSYW5nZUhhbmRsZVByaXZhdGUuaCBpbiBI
ZWFkZXJzICovLApAQCAtMTI2NjYsNiArMTI2NzcsNyBAQAogCQkJCTFBQTU3NjAyMTQ5NkI5Nzkw
MEE0RUUwNiAvKiBFdmVudERpc3BhdGNoZXJNZXNzYWdlUmVjZWl2ZXIuY3BwIGluIFNvdXJjZXMg
Ki8sCiAJCQkJQ0RBOTNEQjEyMkY4QkNGNDAwNDkwQTY5IC8qIEZ1bGxzY3JlZW5Ub3VjaFNlY2hl
dXJpc3RpY1BhcmFtZXRlcnMuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMjc0OUY2NDQyMTQ2NTYx
QjAwODM4MEJGIC8qIEluamVjdGVkQnVuZGxlTm9kZUhhbmRsZS5jcHAgaW4gU291cmNlcyAqLywK
KwkJCQkxREFBNTJDMTI0Mzk2ODMxMDAxQTMxNTkgLyogSW5qZWN0ZWRCdW5kbGVQYWdlVmlkZW9G
dWxsc2NyZWVuQ2xpZW50LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTI3NDlGNjQ1MjE0NjU2MUUw
MDgzODBCRiAvKiBJbmplY3RlZEJ1bmRsZVJhbmdlSGFuZGxlLmNwcCBpbiBTb3VyY2VzICovLAog
CQkJCTJEOTEzNDQxMjEyQ0Y5RjAwMDEyOEFGRCAvKiBKU05QTWV0aG9kLmNwcCBpbiBTb3VyY2Vz
ICovLAogCQkJCTJEOTEzNDQyMjEyQ0Y5RjAwMDEyOEFGRCAvKiBKU05QT2JqZWN0LmNwcCBpbiBT
b3VyY2VzICovLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVk
QnVuZGxlL0FQSS9jL1dLQnVuZGxlUGFnZS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
SW5qZWN0ZWRCdW5kbGUvQVBJL2MvV0tCdW5kbGVQYWdlLmNwcAppbmRleCBlOTM5YTRlM2VkNTY3
YzYyNTBlYjUwODFkMmM0ZmNmMGJlZGQ1YzMzLi4zYzA0YTNiNjcyOTYyYjc1YjU5NTZmYWIwOTEz
ZmI2MGVjYWI4M2Y4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0
ZWRCdW5kbGUvQVBJL2MvV0tCdW5kbGVQYWdlLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2MvV0tCdW5kbGVQYWdlLmNwcApAQCAtNzQsNiArNzQs
MTAgQEAKICNpbmNsdWRlIDx3dGYvU3RkTGliRXh0cmFzLmg+CiAjaW5jbHVkZSA8d3RmL1VSTC5o
PgogCisjaWYgRU5BQkxFKFZJREVPX1BSRVNFTlRBVElPTl9NT0RFKQorI2luY2x1ZGUgIlZpZGVv
RnVsbHNjcmVlbk1hbmFnZXIuaCIKKyNlbmRpZgorCiBXS1R5cGVJRCBXS0J1bmRsZVBhZ2VHZXRU
eXBlSUQoKQogewogICAgIHJldHVybiBXZWJLaXQ6OnRvQVBJKFdlYktpdDo6V2ViUGFnZTo6QVBJ
VHlwZSk7CkBAIC0xNjUsNiArMTY5LDg4IEBAIHZvaWQgV0tCdW5kbGVQYWdlRGlkRXhpdEZ1bGxT
Y3JlZW4oV0tCdW5kbGVQYWdlUmVmIHBhZ2VSZWYpCiAjZW5kaWYKIH0KIAordm9pZCBXS0J1bmRs
ZVBhZ2VTZXRWaWRlb0Z1bGxzY3JlZW5DbGllbnQoV0tCdW5kbGVQYWdlUmVmIHBhZ2UsIFdLQnVu
ZGxlUGFnZVZpZGVvRnVsbHNjcmVlbkNsaWVudEJhc2UqIHdrQ2xpZW50KQoreworI2lmIEVOQUJM
RShWSURFT19QUkVTRU5UQVRJT05fTU9ERSkKKyAgICBXZWJLaXQ6OnRvSW1wbChwYWdlKS0+aW5p
dGlhbGl6ZUluamVjdGVkQnVuZGxlVmlkZW9GdWxsc2NyZWVuQ2xpZW50KHdrQ2xpZW50KTsKKyNl
bHNlCisgICAgVU5VU0VEX1BBUkFNKHBhZ2UpOworICAgIFVOVVNFRF9QQVJBTSh3a0NsaWVudCk7
CisjZW5kaWYKK30KKwordm9pZCBXS0J1bmRsZVBhZ2VSZXF1ZXN0VmlkZW9GdWxsc2NyZWVuTW9k
ZShXS0J1bmRsZVBhZ2VSZWYgcGFnZSwgdWludDY0X3QgY29udGV4dElkLCBXS1ZpZGVvRnVsbHNj
cmVlbk1vZGUgbW9kZSwgYm9vbCBmaW5pc2hlZFdpdGhNZWRpYSkKK3sKKyNpZiBFTkFCTEUoVklE
RU9fUFJFU0VOVEFUSU9OX01PREUpCisgICAgV2ViS2l0Ojp0b0ltcGwocGFnZSktPnZpZGVvRnVs
bHNjcmVlbk1hbmFnZXIoKS5yZXF1ZXN0RnVsbHNjcmVlbk1vZGUoY29udGV4dElkLCBtb2RlLCBm
aW5pc2hlZFdpdGhNZWRpYSk7CisjZWxzZQorICAgIFVOVVNFRF9QQVJBTShwYWdlKTsKKyAgICBV
TlVTRURfUEFSQU0oY29udGV4dElkKTsKKyAgICBVTlVTRURfUEFSQU0obW9kZSk7CisgICAgVU5V
U0VEX1BBUkFNKGZpbmlzaGVkV2l0aE1lZGlhKTsKKyNlbmRpZgorfQorCit2b2lkIFdLQnVuZGxl
UGFnZVJlcXVlc3RWaWRlb0NvbnRlbnRMYXllcihXS0J1bmRsZVBhZ2VSZWYgcGFnZSwgdWludDY0
X3QgY29udGV4dElkKQoreworI2lmIEVOQUJMRShWSURFT19QUkVTRU5UQVRJT05fTU9ERSkKKyAg
ICBXZWJLaXQ6OnRvSW1wbChwYWdlKS0+dmlkZW9GdWxsc2NyZWVuTWFuYWdlcigpLnJlcXVlc3RW
aWRlb0NvbnRlbnRMYXllcihjb250ZXh0SWQpOworI2Vsc2UKKyAgICBVTlVTRURfUEFSQU0ocGFn
ZSk7CisgICAgVU5VU0VEX1BBUkFNKGNvbnRleHRJZCk7CisjZW5kaWYKK30KKwordm9pZCBXS0J1
bmRsZVBhZ2VEaWRTZXR1cFZpZGVvRnVsbHNjcmVlbihXS0J1bmRsZVBhZ2VSZWYgcGFnZSwgdWlu
dDY0X3QgY29udGV4dElkKQoreworI2lmIEVOQUJMRShWSURFT19QUkVTRU5UQVRJT05fTU9ERSkK
KyAgICBXZWJLaXQ6OnRvSW1wbChwYWdlKS0+dmlkZW9GdWxsc2NyZWVuTWFuYWdlcigpLmRpZFNl
dHVwRnVsbHNjcmVlbihjb250ZXh0SWQpOworI2Vsc2UKKyAgICBVTlVTRURfUEFSQU0ocGFnZSk7
CisgICAgVU5VU0VEX1BBUkFNKGNvbnRleHRJZCk7CisjZW5kaWYKK30KKwordm9pZCBXS0J1bmRs
ZVBhZ2VEaWRFbnRlclZpZGVvRnVsbHNjcmVlbihXS0J1bmRsZVBhZ2VSZWYgcGFnZSwgdWludDY0
X3QgY29udGV4dElkKQoreworI2lmIEVOQUJMRShWSURFT19QUkVTRU5UQVRJT05fTU9ERSkKKyAg
ICBXZWJLaXQ6OnRvSW1wbChwYWdlKS0+dmlkZW9GdWxsc2NyZWVuTWFuYWdlcigpLmRpZEVudGVy
RnVsbHNjcmVlbihjb250ZXh0SWQpOworI2Vsc2UKKyAgICBVTlVTRURfUEFSQU0ocGFnZSk7Cisg
ICAgVU5VU0VEX1BBUkFNKGNvbnRleHRJZCk7CisjZW5kaWYKK30KKwordm9pZCBXS0J1bmRsZVBh
Z2VSZXR1cm5WaWRlb0NvbnRlbnRMYXllcihXS0J1bmRsZVBhZ2VSZWYgcGFnZSwgdWludDY0X3Qg
Y29udGV4dElkKQoreworI2lmIEVOQUJMRShWSURFT19QUkVTRU5UQVRJT05fTU9ERSkKKyAgICBX
ZWJLaXQ6OnRvSW1wbChwYWdlKS0+dmlkZW9GdWxsc2NyZWVuTWFuYWdlcigpLnJldHVyblZpZGVv
Q29udGVudExheWVyKGNvbnRleHRJZCk7CisjZWxzZQorICAgIFVOVVNFRF9QQVJBTShwYWdlKTsK
KyAgICBVTlVTRURfUEFSQU0oY29udGV4dElkKTsKKyNlbmRpZgorfQorCit2b2lkIFdLQnVuZGxl
UGFnZURpZEV4aXRWaWRlb0Z1bGxzY3JlZW4oV0tCdW5kbGVQYWdlUmVmIHBhZ2UsIHVpbnQ2NF90
IGNvbnRleHRJZCkKK3sKKyNpZiBFTkFCTEUoVklERU9fUFJFU0VOVEFUSU9OX01PREUpCisgICAg
V2ViS2l0Ojp0b0ltcGwocGFnZSktPnZpZGVvRnVsbHNjcmVlbk1hbmFnZXIoKS5kaWRFeGl0RnVs
bHNjcmVlbihjb250ZXh0SWQpOworI2Vsc2UKKyAgICBVTlVTRURfUEFSQU0ocGFnZSk7CisgICAg
VU5VU0VEX1BBUkFNKGNvbnRleHRJZCk7CisjZW5kaWYKK30KKwordm9pZCBXS0J1bmRsZVBhZ2VE
aWRDbGVhbnVwVmlkZW9GdWxsc2NyZWVuKFdLQnVuZGxlUGFnZVJlZiBwYWdlLCB1aW50NjRfdCBj
b250ZXh0SWQpCit7CisjaWYgRU5BQkxFKFZJREVPX1BSRVNFTlRBVElPTl9NT0RFKQorICAgIFdl
YktpdDo6dG9JbXBsKHBhZ2UpLT52aWRlb0Z1bGxzY3JlZW5NYW5hZ2VyKCkuZGlkQ2xlYW51cEZ1
bGxzY3JlZW4oY29udGV4dElkKTsKKyNlbHNlCisgICAgVU5VU0VEX1BBUkFNKHBhZ2UpOworICAg
IFVOVVNFRF9QQVJBTShjb250ZXh0SWQpOworI2VuZGlmCit9CisKIFdLQnVuZGxlUGFnZUdyb3Vw
UmVmIFdLQnVuZGxlUGFnZUdldFBhZ2VHcm91cChXS0J1bmRsZVBhZ2VSZWYgcGFnZVJlZikKIHsK
ICAgICByZXR1cm4gdG9BUEkoV2ViS2l0Ojp0b0ltcGwocGFnZVJlZiktPnBhZ2VHcm91cCgpKTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkv
Yy9XS0J1bmRsZVBhZ2UuaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRs
ZS9BUEkvYy9XS0J1bmRsZVBhZ2UuaAppbmRleCA0ZjgzYjhlZjBjODAyYmNjMWIzZDdiY2Y5NDJj
ZWFlYTE0N2VhYWNmLi4zOGVhYTZhZmU3OGQ1ZmUzMmQ4MWViMjQ2MTVlYTRkNmNmMjFkODgxIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2Mv
V0tCdW5kbGVQYWdlLmgKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVu
ZGxlL0FQSS9jL1dLQnVuZGxlUGFnZS5oCkBAIC0zNiw2ICszNiw3IEBACiAjaW5jbHVkZSA8V2Vi
S2l0L1dLQnVuZGxlUGFnZVBvbGljeUNsaWVudC5oPgogI2luY2x1ZGUgPFdlYktpdC9XS0J1bmRs
ZVBhZ2VSZXNvdXJjZUxvYWRDbGllbnQuaD4KICNpbmNsdWRlIDxXZWJLaXQvV0tCdW5kbGVQYWdl
VUlDbGllbnQuaD4KKyNpbmNsdWRlIDxXZWJLaXQvV0tCdW5kbGVQYWdlVmlkZW9GdWxsc2NyZWVu
Q2xpZW50Lmg+CiAjaW5jbHVkZSA8V2ViS2l0L1dLRGVwcmVjYXRlZC5oPgogI2luY2x1ZGUgPFdl
YktpdC9XS0ZpbmRPcHRpb25zLmg+CiAjaW5jbHVkZSA8V2ViS2l0L1dLSW1hZ2UuaD4KQEAgLTU1
LDYgKzU2LDE0IEBAIFdLX0VYUE9SVCB2b2lkIFdLQnVuZGxlUGFnZURpZEVudGVyRnVsbFNjcmVl
bihXS0J1bmRsZVBhZ2VSZWYgcGFnZSk7CiBXS19FWFBPUlQgdm9pZCBXS0J1bmRsZVBhZ2VXaWxs
RXhpdEZ1bGxTY3JlZW4oV0tCdW5kbGVQYWdlUmVmIHBhZ2UpOwogV0tfRVhQT1JUIHZvaWQgV0tC
dW5kbGVQYWdlRGlkRXhpdEZ1bGxTY3JlZW4oV0tCdW5kbGVQYWdlUmVmIHBhZ2UpOwogCitXS19F
WFBPUlQgdm9pZCBXS0J1bmRsZVBhZ2VSZXF1ZXN0VmlkZW9GdWxsc2NyZWVuTW9kZShXS0J1bmRs
ZVBhZ2VSZWYgcGFnZSwgdWludDY0X3QgY29udGV4dElkLCBXS1ZpZGVvRnVsbHNjcmVlbk1vZGUg
bW9kZSwgYm9vbCBmaW5pc2hlZFdpdGhNZWRpYSk7CitXS19FWFBPUlQgdm9pZCBXS0J1bmRsZVBh
Z2VSZXF1ZXN0VmlkZW9Db250ZW50TGF5ZXIoV0tCdW5kbGVQYWdlUmVmIHBhZ2UsIHVpbnQ2NF90
IGNvbnRleHRJZCk7CitXS19FWFBPUlQgdm9pZCBXS0J1bmRsZVBhZ2VSZXR1cm5WaWRlb0NvbnRl
bnRMYXllcihXS0J1bmRsZVBhZ2VSZWYgcGFnZSwgdWludDY0X3QgY29udGV4dElkKTsKK1dLX0VY
UE9SVCB2b2lkIFdLQnVuZGxlUGFnZURpZFNldHVwVmlkZW9GdWxsc2NyZWVuKFdLQnVuZGxlUGFn
ZVJlZiBwYWdlLCB1aW50NjRfdCBjb250ZXh0SWQpOworV0tfRVhQT1JUIHZvaWQgV0tCdW5kbGVQ
YWdlRGlkRW50ZXJWaWRlb0Z1bGxzY3JlZW4oV0tCdW5kbGVQYWdlUmVmIHBhZ2UsIHVpbnQ2NF90
IGNvbnRleHRJZCk7CitXS19FWFBPUlQgdm9pZCBXS0J1bmRsZVBhZ2VEaWRFeGl0VmlkZW9GdWxs
c2NyZWVuKFdLQnVuZGxlUGFnZVJlZiBwYWdlLCB1aW50NjRfdCBjb250ZXh0SWQpOworV0tfRVhQ
T1JUIHZvaWQgV0tCdW5kbGVQYWdlRGlkQ2xlYW51cFZpZGVvRnVsbHNjcmVlbihXS0J1bmRsZVBh
Z2VSZWYgcGFnZSwgdWludDY0X3QgY29udGV4dElkKTsKKwogV0tfRVhQT1JUIFdLVHlwZUlEIFdL
QnVuZGxlUGFnZUdldFR5cGVJRCgpOwogCiBXS19FWFBPUlQgdm9pZCBXS0J1bmRsZVBhZ2VTZXRD
b250ZXh0TWVudUNsaWVudChXS0J1bmRsZVBhZ2VSZWYgcGFnZSwgV0tCdW5kbGVQYWdlQ29udGV4
dE1lbnVDbGllbnRCYXNlKiBjbGllbnQpOwpAQCAtNjUsNiArNzQsNyBAQCBXS19FWFBPUlQgdm9p
ZCBXS0J1bmRsZVBhZ2VTZXRSZXNvdXJjZUxvYWRDbGllbnQoV0tCdW5kbGVQYWdlUmVmIHBhZ2Us
IFdLQnVuZGxlUAogV0tfRVhQT1JUIHZvaWQgV0tCdW5kbGVQYWdlU2V0UG9saWN5Q2xpZW50KFdL
QnVuZGxlUGFnZVJlZiBwYWdlLCBXS0J1bmRsZVBhZ2VQb2xpY3lDbGllbnRCYXNlKiBjbGllbnQp
OwogV0tfRVhQT1JUIHZvaWQgV0tCdW5kbGVQYWdlU2V0VUlDbGllbnQoV0tCdW5kbGVQYWdlUmVm
IHBhZ2UsIFdLQnVuZGxlUGFnZVVJQ2xpZW50QmFzZSogY2xpZW50KTsKIFdLX0VYUE9SVCB2b2lk
IFdLQnVuZGxlUGFnZVNldEZ1bGxTY3JlZW5DbGllbnQoV0tCdW5kbGVQYWdlUmVmIHBhZ2UsIFdL
QnVuZGxlUGFnZUZ1bGxTY3JlZW5DbGllbnRCYXNlKiBjbGllbnQpOworV0tfRVhQT1JUIHZvaWQg
V0tCdW5kbGVQYWdlU2V0VmlkZW9GdWxsc2NyZWVuQ2xpZW50KFdLQnVuZGxlUGFnZVJlZiBwYWdl
LCBXS0J1bmRsZVBhZ2VWaWRlb0Z1bGxzY3JlZW5DbGllbnRCYXNlKiBjbGllbnQpOwogCiBXS19F
WFBPUlQgV0tCdW5kbGVQYWdlR3JvdXBSZWYgV0tCdW5kbGVQYWdlR2V0UGFnZUdyb3VwKFdLQnVu
ZGxlUGFnZVJlZiBwYWdlKTsKIFdLX0VYUE9SVCBXS0J1bmRsZUZyYW1lUmVmIFdLQnVuZGxlUGFn
ZUdldE1haW5GcmFtZShXS0J1bmRsZVBhZ2VSZWYgcGFnZSk7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2MvV0tCdW5kbGVQYWdlVmlkZW9G
dWxsc2NyZWVuQ2xpZW50LmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5k
bGUvQVBJL2MvV0tCdW5kbGVQYWdlVmlkZW9GdWxsc2NyZWVuQ2xpZW50LmgKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
MjAxZmQ1ZTY2Yjc5NWY3ZDA1MTVjMjM1YmQwNDUxYmFiNzBmNDFjZAotLS0gL2Rldi9udWxsCisr
KyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvYy9XS0J1bmRs
ZVBhZ2VWaWRlb0Z1bGxzY3JlZW5DbGllbnQuaApAQCAtMCwwICsxLDcwIEBACisvKgorICogQ29w
eXJpZ2h0IChDKSAyMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBS
ZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9y
IHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRo
ZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9u
cyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2Ug
dGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlv
biBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4K
KyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBD
T05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJS
QU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdB
UlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIK
KyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4g
T1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVD
VCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBE
QU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAq
IFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9G
SVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04g
QU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1Qg
TElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisg
KiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZF
TiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8K
KworI3ByYWdtYSBvbmNlCisKKyNpbmNsdWRlIDxXZWJLaXQvV0tCYXNlLmg+CisjaW5jbHVkZSA8
V2ViS2l0L1dLR2VvbWV0cnkuaD4KKworZW51bSB7CisgICAgV0tWaWRlb0Z1bGxzY3JlZW5Nb2Rl
Tm9uZSA9IDAsCisgICAgV0tWaWRlb0Z1bGxzY3JlZW5Nb2RlU3RhbmRhcmQgPSAxIDw8IDAsCisg
ICAgV0tWaWRlb0Z1bGxzY3JlZW5Nb2RlUGljdHVyZUluUGljdHVyZSA9IDEgPDwgMSwKK307Cit0
eXBlZGVmIHVpbnQzMl90IFdLVmlkZW9GdWxsc2NyZWVuTW9kZTsKKwordHlwZWRlZiB2b2lkICgq
V0tCdW5kbGVQYWdlU2V0SGFzVmlkZW8pKFdLQnVuZGxlUGFnZVJlZiBwYWdlLCB1aW50NjRfdCBj
b250ZXh0SWQsIGJvb2wgaGFzVmlkZW8pOwordHlwZWRlZiB2b2lkICgqV0tCdW5kbGVQYWdlU2V0
VmlkZW9EaW1lbnNpb25zKShXS0J1bmRsZVBhZ2VSZWYgcGFnZSwgdWludDY0X3QgY29udGV4dElk
LCBXS1NpemUgdmlkZW9EaW1lbnNpb25zKTsKK3R5cGVkZWYgdm9pZCAoKldLQnVuZGxlUGFnZVNl
dHVwVmlkZW9GdWxsc2NyZWVuV2l0aElEKShXS0J1bmRsZVBhZ2VSZWYgcGFnZSwgdWludDY0X3Qg
Y29udGV4dElkLCB1aW50MzJfdCB2aWRlb0xheWVySUQsIFdLUmVjdCBpbml0aWFsUmVjdCwgZmxv
YXQgaG9zdGluZ1NjYWxlRmFjdG9yLCBXS1ZpZGVvRnVsbHNjcmVlbk1vZGUgdmlkZW9GdWxsc2Ny
ZWVuTW9kZSwgYm9vbCBhbGxvd3NQaWN0dXJlSW5QaWN0dXJlLCBib29sIHN0YW5kYnkpOwordHlw
ZWRlZiB2b2lkICgqV0tCdW5kbGVQYWdlRW50ZXJWaWRlb0Z1bGxzY3JlZW4pKFdLQnVuZGxlUGFn
ZVJlZiBwYWdlLCB1aW50NjRfdCBjb250ZXh0SWQpOwordHlwZWRlZiB2b2lkICgqV0tCdW5kbGVQ
YWdlRXhpdFZpZGVvRnVsbHNjcmVlbikoV0tCdW5kbGVQYWdlUmVmIHBhZ2UsIHVpbnQ2NF90IGNv
bnRleHRJZCwgV0tSZWN0IGZpbmFsUmVjdCk7Cit0eXBlZGVmIHZvaWQgKCpXS0J1bmRsZVBhZ2VT
ZXRJbmxpbmVSZWN0KShXS0J1bmRsZVBhZ2VSZWYgcGFnZSwgdWludDY0X3QgY29udGV4dElkLCBX
S1JlY3QgaW5saW5lUmVjdCwgYm9vbCB2aXNpYmxlKTsKK3R5cGVkZWYgdm9pZCAoKldLQnVuZGxl
UGFnZVNldEhhc1ZpZGVvQ29udGVudExheWVyKShXS0J1bmRsZVBhZ2VSZWYgcGFnZSwgdWludDY0
X3QgY29udGV4dElkLCBib29sIHZhbHVlKTsKK3R5cGVkZWYgdm9pZCAoKldLQnVuZGxlUGFnZUNs
ZWFudXBWaWRlb0Z1bGxzY3JlZW4pKFdLQnVuZGxlUGFnZVJlZiBwYWdlLCB1aW50NjRfdCBjb250
ZXh0SWQpOwordHlwZWRlZiB2b2lkICgqV0tCdW5kbGVQYWdlUHJlcGFyZWRUb1JldHVyblRvSW5s
aW5lKShXS0J1bmRsZVBhZ2VSZWYgcGFnZSwgdWludDY0X3QgY29udGV4dElkLCBib29sIHZpc2li
bGUsIFdLUmVjdCBpbmxpbmVSZWN0KTsKK3R5cGVkZWYgdm9pZCAoKldLQnVuZGxlUGFnZVByZXBh
cmVkVG9FeGl0VmlkZW9GdWxsc2NyZWVuKShXS0J1bmRsZVBhZ2VSZWYgcGFnZSwgdWludDY0X3Qg
Y29udGV4dElkKTsKK3R5cGVkZWYgdm9pZCAoKldLQnVuZGxlUGFnZUV4aXRWaWRlb0Z1bGxzY3Jl
ZW5XaXRob3V0QW5pbWF0aW9uVG9Nb2RlKShXS0J1bmRsZVBhZ2VSZWYgcGFnZSwgdWludDY0X3Qg
Y29udGV4dElkLCBXS1ZpZGVvRnVsbHNjcmVlbk1vZGUgdmlkZW9GdWxsc2NyZWVuTW9kZSk7CisK
K3R5cGVkZWYgc3RydWN0IFdLQnVuZGxlUGFnZVZpZGVvRnVsbHNjcmVlbkNsaWVudEJhc2Ugewor
ICAgIGludCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgdmVyc2lvbjsKKyAgICBjb25zdCB2b2lkICogICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsaWVudEluZm87Cit9IFdL
QnVuZGxlUGFnZVZpZGVvRnVsbHNjcmVlbkNsaWVudEJhc2U7CisKK3R5cGVkZWYgc3RydWN0IFdL
QnVuZGxlUGFnZVZpZGVvRnVsbHNjcmVlbkNsaWVudFYwIHsKKyAgICBXS0J1bmRsZVBhZ2VWaWRl
b0Z1bGxzY3JlZW5DbGllbnRCYXNlICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJhc2U7
CisKKyAgICAvLyBWZXJzaW9uIDAuCisgICAgV0tCdW5kbGVQYWdlU2V0SGFzVmlkZW8gICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZXRIYXNWaWRlbzsKKyAgICBX
S0J1bmRsZVBhZ2VTZXRWaWRlb0RpbWVuc2lvbnMgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIHNldFZpZGVvRGltZW5zaW9uczsKKyAgICBXS0J1bmRsZVBhZ2VTZXR1cFZpZGVv
RnVsbHNjcmVlbldpdGhJRCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNldHVwRnVsbHNj
cmVlbldpdGhJRDsKKyAgICBXS0J1bmRsZVBhZ2VFbnRlclZpZGVvRnVsbHNjcmVlbiAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVudGVyRnVsbHNjcmVlbjsKKyAgICBXS0J1bmRs
ZVBhZ2VFeGl0VmlkZW9GdWxsc2NyZWVuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIGV4aXRGdWxsc2NyZWVuOworICAgIFdLQnVuZGxlUGFnZVNldElubGluZVJlY3QgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2V0SW5saW5lUmVjdDsKKyAgICBX
S0J1bmRsZVBhZ2VTZXRIYXNWaWRlb0NvbnRlbnRMYXllciAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIHNldEhhc1ZpZGVvQ29udGVudExheWVyOworICAgIFdLQnVuZGxlUGFnZUNsZWFu
dXBWaWRlb0Z1bGxzY3JlZW4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xlYW51
cEZ1bGxzY3JlZW47CisgICAgV0tCdW5kbGVQYWdlUHJlcGFyZWRUb1JldHVyblRvSW5saW5lICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwcmVwYXJlZFRvUmV0cnVuVG9JbmxpbmU7Cisg
ICAgV0tCdW5kbGVQYWdlUHJlcGFyZWRUb0V4aXRWaWRlb0Z1bGxzY3JlZW4gICAgICAgICAgICAg
ICAgICAgICAgICAgICBwcmVwYXJlZFRvRXhpdEZ1bGxzY3JlZW47CisgICAgV0tCdW5kbGVQYWdl
RXhpdFZpZGVvRnVsbHNjcmVlbldpdGhvdXRBbmltYXRpb25Ub01vZGUgICAgICAgICAgICAgICBl
eGl0RnVsbHNjcmVlbldpdGhvdXRBbmltYXRpb25Ub01vZGU7Cit9IFdLQnVuZGxlUGFnZVZpZGVv
RnVsbHNjcmVlbkNsaWVudFYwOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L0luamVjdGVkQnVuZGxlL0luamVjdGVkQnVuZGxlUGFnZUZ1bGxTY3JlZW5DbGllbnQuY3BwIGIv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0luamVjdGVkQnVuZGxlUGFn
ZUZ1bGxTY3JlZW5DbGllbnQuY3BwCmluZGV4IGY3MTNiNWE0MjNmYzc5ZWE2YzVmYjYwMjQzZTc2
ODJmMDUwOWY2OWMuLjliNDgwMWY1NzYzYWMzZTU5YmViZWFlZGQyNTMzMzQ2NGE0NmRhOTMgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9JbmplY3Rl
ZEJ1bmRsZVBhZ2VGdWxsU2NyZWVuQ2xpZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvSW5qZWN0ZWRCdW5kbGUvSW5qZWN0ZWRCdW5kbGVQYWdlRnVsbFNjcmVlbkNsaWVudC5j
cHAKQEAgLTI0LDExICsyNCwxMCBAQAogICovCiAKICNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNs
dWRlICJJbmplY3RlZEJ1bmRsZVBhZ2VGdWxsU2NyZWVuQ2xpZW50LmgiCiAKICNpZiBFTkFCTEUo
RlVMTFNDUkVFTl9BUEkpCiAKLSNpbmNsdWRlICJJbmplY3RlZEJ1bmRsZVBhZ2VGdWxsU2NyZWVu
Q2xpZW50LmgiCi0KICNpbmNsdWRlICJJbmplY3RlZEJ1bmRsZU5vZGVIYW5kbGUuaCIKICNpbmNs
dWRlICJXS0FQSUNhc3QuaCIKICNpbmNsdWRlICJXS0J1bmRsZUFQSUNhc3QuaCIKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRs
ZVBhZ2VGdWxsU2NyZWVuQ2xpZW50LmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0
ZWRCdW5kbGUvSW5qZWN0ZWRCdW5kbGVQYWdlRnVsbFNjcmVlbkNsaWVudC5oCmluZGV4IDY1NjNi
NmM2ZGYzODMzNzlmYjhhYmYxMDlkN2U1OTg1NWE3YzkzOGIuLjRlY2RkMTFhNWQ1MGM0MWI4ZTRl
ZmQwYzI2NWE5NGNjZTg1NGE1Y2MgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9JbmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZVBhZ2VGdWxsU2NyZWVuQ2xpZW50LmgKKysr
IGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0luamVjdGVkQnVuZGxl
UGFnZUZ1bGxTY3JlZW5DbGllbnQuaApAQCAtMjMsOCArMjMsNyBAQAogICogVEhFIFBPU1NJQklM
SVRZIE9GIFNVQ0ggREFNQUdFLgogICovCiAKLSNpZm5kZWYgSW5qZWN0ZWRCdW5kbGVQYWdlRnVs
bFNjcmVlbkNsaWVudF9oCi0jZGVmaW5lIEluamVjdGVkQnVuZGxlUGFnZUZ1bGxTY3JlZW5DbGll
bnRfaAorI3ByYWdtYSBvbmNlCiAKICNpZiBFTkFCTEUoRlVMTFNDUkVFTl9BUEkpCiAKQEAgLTYw
LDUgKzU5LDMgQEAgcHVibGljOgogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CiAKICNlbmRpZiAvLyBF
TkFCTEUoRlVMTFNDUkVFTl9BUEkpCi0KLSNlbmRpZiAvLyBJbmplY3RlZEJ1bmRsZVBhZ2VGdWxs
U2NyZWVuQ2xpZW50X2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9Jbmpl
Y3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZVBhZ2VWaWRlb0Z1bGxzY3JlZW5DbGllbnQuY3BwIGIv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0luamVjdGVkQnVuZGxlUGFn
ZVZpZGVvRnVsbHNjcmVlbkNsaWVudC5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uY2FhYTVmMTM3YzJlNDAyZWVl
NWFiYzQwODk4MzdlMGI0YzJmY2VlZQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZVBhZ2VWaWRlb0Z1bGxzY3Jl
ZW5DbGllbnQuY3BwCkBAIC0wLDAgKzEsMTM0IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIw
IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBh
bmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1v
ZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29u
ZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29k
ZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRp
c3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHly
aWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIg
bWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNP
RlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBB
UyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVS
Q0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJF
IERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJV
VE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwg
U1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09P
RFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVT
UworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBM
SUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBU
T1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFO
WSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9G
CisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNv
bmZpZy5oIgorI2luY2x1ZGUgIkluamVjdGVkQnVuZGxlUGFnZVZpZGVvRnVsbHNjcmVlbkNsaWVu
dC5oIgorCisjaWYgRU5BQkxFKFZJREVPX1BSRVNFTlRBVElPTl9NT0RFKQorCisjaW5jbHVkZSAi
VmlkZW9GdWxsc2NyZWVuTWFuYWdlclByb3h5TWVzc2FnZXMuaCIKKyNpbmNsdWRlICJXS0FQSUNh
c3QuaCIKKyNpbmNsdWRlICJXS0J1bmRsZUFQSUNhc3QuaCIKKyNpbmNsdWRlICJXZWJDb3JlQXJn
dW1lbnRDb2RlcnMuaCIKKyNpbmNsdWRlICJXZWJQYWdlLmgiCisjaW5jbHVkZSA8V2ViQ29yZS9G
bG9hdFNpemUuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL0ludFJlY3QuaD4KKworbmFtZXNwYWNlIFdl
YktpdCB7Cit1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKKwordm9pZCBJbmplY3RlZEJ1bmRsZVBh
Z2VWaWRlb0Z1bGxzY3JlZW5DbGllbnQ6OnNldEhhc1ZpZGVvKFdlYlBhZ2UqIHBhZ2UsIHVpbnQ2
NF90IGNvbnRleHRJZCwgYm9vbCBoYXNWaWRlbykKK3sKKyAgICBpZiAobV9jbGllbnQuc2V0SGFz
VmlkZW8pCisgICAgICAgIG1fY2xpZW50LnNldEhhc1ZpZGVvKHRvQVBJKHBhZ2UpLCBjb250ZXh0
SWQsIGhhc1ZpZGVvKTsKKyAgICBlbHNlCisgICAgICAgIHBhZ2UtPnNlbmQoTWVzc2FnZXM6OlZp
ZGVvRnVsbHNjcmVlbk1hbmFnZXJQcm94eTo6U2V0SGFzVmlkZW8oY29udGV4dElkLCBoYXNWaWRl
bykpOworfQorCit2b2lkIEluamVjdGVkQnVuZGxlUGFnZVZpZGVvRnVsbHNjcmVlbkNsaWVudDo6
c2V0VmlkZW9EaW1lbnNpb25zKFdlYlBhZ2UqIHBhZ2UsIHVpbnQ2NF90IGNvbnRleHRJZCwgRmxv
YXRTaXplIHZpZGVvRGltZW5zaW9ucykKK3sKKyAgICBpZiAobV9jbGllbnQuc2V0VmlkZW9EaW1l
bnNpb25zKQorICAgICAgICBtX2NsaWVudC5zZXRWaWRlb0RpbWVuc2lvbnModG9BUEkocGFnZSks
IGNvbnRleHRJZCwgdG9BUEkodmlkZW9EaW1lbnNpb25zKSk7CisgICAgZWxzZQorICAgICAgICBw
YWdlLT5zZW5kKE1lc3NhZ2VzOjpWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyUHJveHk6OlNldFZpZGVv
RGltZW5zaW9ucyhjb250ZXh0SWQsIHZpZGVvRGltZW5zaW9ucykpOworfQorCit2b2lkIEluamVj
dGVkQnVuZGxlUGFnZVZpZGVvRnVsbHNjcmVlbkNsaWVudDo6c2V0dXBGdWxsc2NyZWVuV2l0aElE
KFdlYlBhZ2UqIHBhZ2UsIHVpbnQ2NF90IGNvbnRleHRJZCwgdWludDMyX3QgdmlkZW9MYXllcklk
LCBJbnRSZWN0IGluaXRpYWxSZWN0LCBmbG9hdCBob3N0aW5nU2NhbGVGYWN0b3IsIEhUTUxNZWRp
YUVsZW1lbnRFbnVtczo6VmlkZW9GdWxsc2NyZWVuTW9kZSB2aWRlb0Z1bGxzY3JlZW5Nb2RlLCBi
b29sIGFsbG93c1BpY3R1cmVJblBpY3R1cmUsIGJvb2wgc3RhbmRieSkKK3sKKyAgICBpZiAobV9j
bGllbnQuc2V0dXBGdWxsc2NyZWVuV2l0aElEKQorICAgICAgICBtX2NsaWVudC5zZXR1cEZ1bGxz
Y3JlZW5XaXRoSUQodG9BUEkocGFnZSksIGNvbnRleHRJZCwgdmlkZW9MYXllcklkLCB0b0FQSShp
bml0aWFsUmVjdCksIGhvc3RpbmdTY2FsZUZhY3RvciwgdmlkZW9GdWxsc2NyZWVuTW9kZSwgYWxs
b3dzUGljdHVyZUluUGljdHVyZSwgc3RhbmRieSk7CisgICAgZWxzZQorICAgICAgICBwYWdlLT5z
ZW5kKE1lc3NhZ2VzOjpWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyUHJveHk6OlNldHVwRnVsbHNjcmVl
bldpdGhJRChjb250ZXh0SWQsIHZpZGVvTGF5ZXJJZCwgaW5pdGlhbFJlY3QsIGhvc3RpbmdTY2Fs
ZUZhY3RvciwgdmlkZW9GdWxsc2NyZWVuTW9kZSwgYWxsb3dzUGljdHVyZUluUGljdHVyZSwgc3Rh
bmRieSkpOworfQorCit2b2lkIEluamVjdGVkQnVuZGxlUGFnZVZpZGVvRnVsbHNjcmVlbkNsaWVu
dDo6ZW50ZXJGdWxsc2NyZWVuKFdlYlBhZ2UqIHBhZ2UsIHVpbnQ2NF90IGNvbnRleHRJZCkKK3sK
KyAgICBpZiAobV9jbGllbnQuZW50ZXJGdWxsc2NyZWVuKQorICAgICAgICBtX2NsaWVudC5lbnRl
ckZ1bGxzY3JlZW4odG9BUEkocGFnZSksIGNvbnRleHRJZCk7CisgICAgZWxzZQorICAgICAgICBw
YWdlLT5zZW5kKE1lc3NhZ2VzOjpWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyUHJveHk6OkVudGVyRnVs
bHNjcmVlbihjb250ZXh0SWQpKTsKK30KKwordm9pZCBJbmplY3RlZEJ1bmRsZVBhZ2VWaWRlb0Z1
bGxzY3JlZW5DbGllbnQ6OmV4aXRGdWxsc2NyZWVuKFdlYlBhZ2UqIHBhZ2UsIHVpbnQ2NF90IGNv
bnRleHRJZCwgSW50UmVjdCBmaW5hbFJlY3QpCit7CisgICAgaWYgKG1fY2xpZW50LmV4aXRGdWxs
c2NyZWVuKQorICAgICAgICBtX2NsaWVudC5leGl0RnVsbHNjcmVlbih0b0FQSShwYWdlKSwgY29u
dGV4dElkLCB0b0FQSShmaW5hbFJlY3QpKTsKKyAgICBlbHNlCisgICAgICAgIHBhZ2UtPnNlbmQo
TWVzc2FnZXM6OlZpZGVvRnVsbHNjcmVlbk1hbmFnZXJQcm94eTo6RXhpdEZ1bGxzY3JlZW4oY29u
dGV4dElkLCBmaW5hbFJlY3QpKTsKK30KKwordm9pZCBJbmplY3RlZEJ1bmRsZVBhZ2VWaWRlb0Z1
bGxzY3JlZW5DbGllbnQ6OnNldElubGluZVJlY3QoV2ViUGFnZSogcGFnZSwgdWludDY0X3QgY29u
dGV4dElkLCBJbnRSZWN0IGlubGluZVJlY3QsIGJvb2wgdmlzaWJsZSkKK3sKKyAgICBpZiAobV9j
bGllbnQuc2V0SW5saW5lUmVjdCkKKyAgICAgICAgbV9jbGllbnQuc2V0SW5saW5lUmVjdCh0b0FQ
SShwYWdlKSwgY29udGV4dElkLCB0b0FQSShpbmxpbmVSZWN0KSwgdmlzaWJsZSk7CisgICAgZWxz
ZQorICAgICAgICBwYWdlLT5zZW5kKE1lc3NhZ2VzOjpWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyUHJv
eHk6OlNldElubGluZVJlY3QoY29udGV4dElkLCBpbmxpbmVSZWN0LCB2aXNpYmxlKSk7Cit9CisK
K3ZvaWQgSW5qZWN0ZWRCdW5kbGVQYWdlVmlkZW9GdWxsc2NyZWVuQ2xpZW50OjpzZXRIYXNWaWRl
b0NvbnRlbnRMYXllcihXZWJQYWdlKiBwYWdlLCB1aW50NjRfdCBjb250ZXh0SWQsIGJvb2wgdmFs
dWUpCit7CisgICAgaWYgKG1fY2xpZW50LnNldEhhc1ZpZGVvQ29udGVudExheWVyKQorICAgICAg
ICBtX2NsaWVudC5zZXRIYXNWaWRlb0NvbnRlbnRMYXllcih0b0FQSShwYWdlKSwgY29udGV4dElk
LCB2YWx1ZSk7CisgICAgZWxzZQorICAgICAgICBwYWdlLT5zZW5kKE1lc3NhZ2VzOjpWaWRlb0Z1
bGxzY3JlZW5NYW5hZ2VyUHJveHk6OlNldEhhc1ZpZGVvQ29udGVudExheWVyKGNvbnRleHRJZCwg
dmFsdWUpKTsKK30KKwordm9pZCBJbmplY3RlZEJ1bmRsZVBhZ2VWaWRlb0Z1bGxzY3JlZW5DbGll
bnQ6OmNsZWFudXBGdWxsc2NyZWVuKFdlYlBhZ2UqIHBhZ2UsIHVpbnQ2NF90IGNvbnRleHRJZCkK
K3sKKyAgICBpZiAobV9jbGllbnQuY2xlYW51cEZ1bGxzY3JlZW4pCisgICAgICAgIG1fY2xpZW50
LmNsZWFudXBGdWxsc2NyZWVuKHRvQVBJKHBhZ2UpLCBjb250ZXh0SWQpOworICAgIGVsc2UKKyAg
ICAgICAgcGFnZS0+c2VuZChNZXNzYWdlczo6VmlkZW9GdWxsc2NyZWVuTWFuYWdlclByb3h5OjpD
bGVhbnVwRnVsbHNjcmVlbihjb250ZXh0SWQpKTsKK30KKwordm9pZCBJbmplY3RlZEJ1bmRsZVBh
Z2VWaWRlb0Z1bGxzY3JlZW5DbGllbnQ6OnByZXBhcmVkVG9SZXR1cm5Ub0lubGluZShXZWJQYWdl
KiBwYWdlLCB1aW50NjRfdCBjb250ZXh0SWQsIGJvb2wgdmlzaWJsZSwgSW50UmVjdCBpbmxpbmVS
ZWN0KQoreworICAgIGlmIChtX2NsaWVudC5wcmVwYXJlZFRvUmV0cnVuVG9JbmxpbmUpCisgICAg
ICAgIG1fY2xpZW50LnByZXBhcmVkVG9SZXRydW5Ub0lubGluZSh0b0FQSShwYWdlKSwgY29udGV4
dElkLCB2aXNpYmxlLCB0b0FQSShpbmxpbmVSZWN0KSk7CisgICAgZWxzZQorICAgICAgICBwYWdl
LT5zZW5kKE1lc3NhZ2VzOjpWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyUHJveHk6OlByZXBhcmVkVG9S
ZXR1cm5Ub0lubGluZShjb250ZXh0SWQsIHZpc2libGUsIGlubGluZVJlY3QpKTsKK30KKwordm9p
ZCBJbmplY3RlZEJ1bmRsZVBhZ2VWaWRlb0Z1bGxzY3JlZW5DbGllbnQ6OnByZXBhcmVkVG9FeGl0
RnVsbHNjcmVlbihXZWJQYWdlKiBwYWdlLCB1aW50NjRfdCBjb250ZXh0SWQpCit7CisgICAgaWYg
KG1fY2xpZW50LnByZXBhcmVkVG9FeGl0RnVsbHNjcmVlbikKKyAgICAgICAgbV9jbGllbnQucHJl
cGFyZWRUb0V4aXRGdWxsc2NyZWVuKHRvQVBJKHBhZ2UpLCBjb250ZXh0SWQpOworICAgIGVsc2UK
KyAgICAgICAgcGFnZS0+c2VuZChNZXNzYWdlczo6VmlkZW9GdWxsc2NyZWVuTWFuYWdlclByb3h5
OjpQcmVwYXJlZFRvRXhpdEZ1bGxzY3JlZW4oY29udGV4dElkKSk7Cit9CisKKyNpZiBQTEFURk9S
TShNQUMpICYmIEVOQUJMRShWSURFT19QUkVTRU5UQVRJT05fTU9ERSkKK3ZvaWQgSW5qZWN0ZWRC
dW5kbGVQYWdlVmlkZW9GdWxsc2NyZWVuQ2xpZW50OjpleGl0RnVsbHNjcmVlbldpdGhvdXRBbmlt
YXRpb25Ub01vZGUoV2ViUGFnZSogcGFnZSwgdWludDY0X3QgY29udGV4dElkLCBIVE1MTWVkaWFF
bGVtZW50RW51bXM6OlZpZGVvRnVsbHNjcmVlbk1vZGUgdmlkZW9GdWxsc2NyZWVuTW9kZSkKK3sK
KyAgICBpZiAobV9jbGllbnQuZXhpdEZ1bGxzY3JlZW5XaXRob3V0QW5pbWF0aW9uVG9Nb2RlKQor
ICAgICAgICBtX2NsaWVudC5leGl0RnVsbHNjcmVlbldpdGhvdXRBbmltYXRpb25Ub01vZGUodG9B
UEkocGFnZSksIGNvbnRleHRJZCwgdmlkZW9GdWxsc2NyZWVuTW9kZSk7CisgICAgZWxzZQorICAg
ICAgICBwYWdlLT5zZW5kKE1lc3NhZ2VzOjpWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyUHJveHk6OkV4
aXRGdWxsc2NyZWVuV2l0aG91dEFuaW1hdGlvblRvTW9kZShjb250ZXh0SWQsIHZpZGVvRnVsbHNj
cmVlbk1vZGUpKTsKK30KKyNlbmRpZgorCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQKKworI2VuZGlm
IC8vIEVOQUJMRShWSURFT19QUkVTRU5UQVRJT05fTU9ERSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZVBhZ2VWaWRlb0Z1
bGxzY3JlZW5DbGllbnQuaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRs
ZS9JbmplY3RlZEJ1bmRsZVBhZ2VWaWRlb0Z1bGxzY3JlZW5DbGllbnQuaApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5k
MTkxZjYwNDE3YzI5Y2I3MGI0YjkyMWU5MTE5ZDE3N2QyZGQ3MThjCi0tLSAvZGV2L251bGwKKysr
IGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0luamVjdGVkQnVuZGxl
UGFnZVZpZGVvRnVsbHNjcmVlbkNsaWVudC5oCkBAIC0wLDAgKzEsNzAgQEAKKy8qCisgKiBDb3B5
cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJl
ZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Ig
d2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhl
IGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25z
IG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0
aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9u
IGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgor
ICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENP
TlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJB
TlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FS
UkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgor
ICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBP
UiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNU
LCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERB
TUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICog
U1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJ
VFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBB
TlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBM
SUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAq
IEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVO
IElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLwor
CisjcHJhZ21hIG9uY2UKKworI2lmIEVOQUJMRShWSURFT19QUkVTRU5UQVRJT05fTU9ERSkKKwor
I2luY2x1ZGUgIkFQSUNsaWVudC5oIgorI2luY2x1ZGUgIldLQnVuZGxlUGFnZVZpZGVvRnVsbHNj
cmVlbkNsaWVudC5oIgorI2luY2x1ZGUgPFdlYkNvcmUvSFRNTE1lZGlhRWxlbWVudEVudW1zLmg+
CisjaW5jbHVkZSA8d3RmL0ZvcndhcmQuaD4KKworbmFtZXNwYWNlIEFQSSB7Cit0ZW1wbGF0ZTw+
IHN0cnVjdCBDbGllbnRUcmFpdHM8V0tCdW5kbGVQYWdlVmlkZW9GdWxsc2NyZWVuQ2xpZW50QmFz
ZT4geworICAgIHR5cGVkZWYgc3RkOjp0dXBsZTxXS0J1bmRsZVBhZ2VWaWRlb0Z1bGxzY3JlZW5D
bGllbnRWMD4gVmVyc2lvbnM7Cit9OworfQorCituYW1lc3BhY2UgV2ViQ29yZSB7CitjbGFzcyBF
bGVtZW50OworY2xhc3MgRmxvYXRTaXplOworY2xhc3MgSW50UmVjdDsKK30KKworbmFtZXNwYWNl
IFdlYktpdCB7CisKK2NsYXNzIFdlYlBhZ2U7CisKK2NsYXNzIEluamVjdGVkQnVuZGxlUGFnZVZp
ZGVvRnVsbHNjcmVlbkNsaWVudCA6IHB1YmxpYyBBUEk6OkNsaWVudDxXS0J1bmRsZVBhZ2VWaWRl
b0Z1bGxzY3JlZW5DbGllbnRCYXNlPiB7CitwdWJsaWM6CisgICAgdm9pZCBzZXRIYXNWaWRlbyhX
ZWJQYWdlKiwgdWludDY0X3QgY29udGV4dElkLCBib29sIGhhc1ZpZGVvKTsKKyAgICB2b2lkIHNl
dFZpZGVvRGltZW5zaW9ucyhXZWJQYWdlKiwgdWludDY0X3QgY29udGV4dElkLCBXZWJDb3JlOjpG
bG9hdFNpemUgdmlkZW9EaW1lbnNpb25zKTsKKyAgICB2b2lkIHNldHVwRnVsbHNjcmVlbldpdGhJ
RChXZWJQYWdlKiwgdWludDY0X3QgY29udGV4dElkLCB1aW50MzJfdCB2aWRlb0xheWVySUQsIFdl
YkNvcmU6OkludFJlY3QgaW5pdGlhbFJlY3QsIGZsb2F0IGhvc3RpbmdTY2FsZUZhY3RvciwgV2Vi
Q29yZTo6SFRNTE1lZGlhRWxlbWVudEVudW1zOjpWaWRlb0Z1bGxzY3JlZW5Nb2RlLCBib29sIGFs
bG93c1BpY3R1cmVJblBpY3R1cmUsIGJvb2wgc3RhbmRieSk7CisgICAgdm9pZCBlbnRlckZ1bGxz
Y3JlZW4oV2ViUGFnZSosIHVpbnQ2NF90IGNvbnRleHRJZCk7CisgICAgdm9pZCBleGl0RnVsbHNj
cmVlbihXZWJQYWdlKiwgdWludDY0X3QgY29udGV4dElkLCBXZWJDb3JlOjpJbnRSZWN0IGZpbmFs
UmVjdCk7CisgICAgdm9pZCBzZXRJbmxpbmVSZWN0KFdlYlBhZ2UqLCB1aW50NjRfdCBjb250ZXh0
SWQsIFdlYkNvcmU6OkludFJlY3QgaW5saW5lUmVjdCwgYm9vbCB2aXNpYmxlKTsKKyAgICB2b2lk
IHNldEhhc1ZpZGVvQ29udGVudExheWVyKFdlYlBhZ2UqLCB1aW50NjRfdCBjb250ZXh0SWQsIGJv
b2wgdmFsdWUpOworICAgIHZvaWQgY2xlYW51cEZ1bGxzY3JlZW4oV2ViUGFnZSosIHVpbnQ2NF90
IGNvbnRleHRJZCk7CisgICAgdm9pZCBwcmVwYXJlZFRvUmV0dXJuVG9JbmxpbmUoV2ViUGFnZSos
IHVpbnQ2NF90IGNvbnRleHRJZCwgYm9vbCB2aXNpYmxlLCBXZWJDb3JlOjpJbnRSZWN0IGlubGlu
ZVJlY3QpOworICAgIHZvaWQgcHJlcGFyZWRUb0V4aXRGdWxsc2NyZWVuKFdlYlBhZ2UqLCB1aW50
NjRfdCBjb250ZXh0SWQpOworI2lmIFBMQVRGT1JNKE1BQykgJiYgRU5BQkxFKFZJREVPX1BSRVNF
TlRBVElPTl9NT0RFKQorICAgIHZvaWQgZXhpdEZ1bGxzY3JlZW5XaXRob3V0QW5pbWF0aW9uVG9N
b2RlKFdlYlBhZ2UqLCB1aW50NjRfdCBjb250ZXh0SWQsIFdlYkNvcmU6OkhUTUxNZWRpYUVsZW1l
bnRFbnVtczo6VmlkZW9GdWxsc2NyZWVuTW9kZSk7CisjZW5kaWYKK307CisKK30gLy8gbmFtZXNw
YWNlIFdlYktpdAorCisjZW5kaWYgLy8gUExBVEZPUk0oSU9TX0ZBTUlMWSkgfHwgKFBMQVRGT1JN
KE1BQykgJiYgRU5BQkxFKFZJREVPX1BSRVNFTlRBVElPTl9NT0RFKSkKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwIGIvU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAKaW5kZXggNWI0Y2VmZjNlYWIyYmE3ZDVi
NzhlMmExYzllNjMwYjJlN2ZkNTM4YS4uY2M0NGQ0MTI4MzVjZDU2NmViNjQwZWZkZTFjYzc2ZjZh
N2M5MjFmMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2Vi
UGFnZS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5j
cHAKQEAgLTk2OSw2ICs5NjksMTMgQEAgdm9pZCBXZWJQYWdlOjppbml0aWFsaXplSW5qZWN0ZWRC
dW5kbGVGdWxsU2NyZWVuQ2xpZW50KFdLQnVuZGxlUGFnZUZ1bGxTY3JlZW5DbGkKIH0KICNlbmRp
ZgogCisjaWYgRU5BQkxFKFZJREVPX1BSRVNFTlRBVElPTl9NT0RFKQordm9pZCBXZWJQYWdlOjpp
bml0aWFsaXplSW5qZWN0ZWRCdW5kbGVWaWRlb0Z1bGxzY3JlZW5DbGllbnQoV0tCdW5kbGVQYWdl
VmlkZW9GdWxsc2NyZWVuQ2xpZW50QmFzZSogY2xpZW50KQoreworICAgIG1fdmlkZW9GdWxsc2Ny
ZWVuQ2xpZW50LmluaXRpYWxpemUoY2xpZW50KTsKK30KKyNlbmRpZgorCiAjaWYgRU5BQkxFKE5F
VFNDQVBFX1BMVUdJTl9BUEkpCiAKIGNvbnN0ZXhwciBpbnQgc21hbGxQbHVnaW5EaW1lbnNpb25U
aHJlc2hvbGQgPSA1OwpAQCAtMTQxNCw2ICsxNDIxLDEwIEBAIHZvaWQgV2ViUGFnZTo6Y2xvc2Uo
KQogICAgIG1fZnVsbFNjcmVlbkNsaWVudC5pbml0aWFsaXplKDApOwogI2VuZGlmCiAKKyNpZiBF
TkFCTEUoVklERU9fUFJFU0VOVEFUSU9OX01PREUpCisgICAgbV92aWRlb0Z1bGxzY3JlZW5DbGll
bnQuaW5pdGlhbGl6ZSgwKTsKKyNlbmRpZgorCiAgICAgbV9wcmludENvbnRleHQgPSBudWxscHRy
OwogICAgIG1fbWFpbkZyYW1lLT5jb3JlRnJhbWUoKS0+bG9hZGVyKCkuZGV0YWNoRnJvbVBhcmVu
dCgpOwogICAgIG1fZHJhd2luZ0FyZWEgPSBudWxscHRyOwpAQCAtMzgzOSw3ICszODUwLDcgQEAg
dm9pZCBXZWJQYWdlOjppbnNwZWN0b3JGcm9udGVuZENvdW50Q2hhbmdlZCh1bnNpZ25lZCBjb3Vu
dCkKICAgICBzZW5kKE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6OkRpZENoYW5nZUluc3BlY3RvckZy
b250ZW5kQ291bnQoY291bnQpKTsKIH0KIAotI2lmIEVOQUJMRShWSURFT19QUkVTRU5UQVRJT05f
TU9ERSkKKyNpZiBQTEFURk9STShJT1NfRkFNSUxZKSB8fCAoUExBVEZPUk0oTUFDKSAmJiBFTkFC
TEUoVklERU9fUFJFU0VOVEFUSU9OX01PREUpKQogUGxheWJhY2tTZXNzaW9uTWFuYWdlciYgV2Vi
UGFnZTo6cGxheWJhY2tTZXNzaW9uTWFuYWdlcigpCiB7CiAgICAgaWYgKCFtX3BsYXliYWNrU2Vz
c2lvbk1hbmFnZXIpCkBAIC0zODQ3LDEzICszODU4LDYgQEAgUGxheWJhY2tTZXNzaW9uTWFuYWdl
ciYgV2ViUGFnZTo6cGxheWJhY2tTZXNzaW9uTWFuYWdlcigpCiAgICAgcmV0dXJuICptX3BsYXli
YWNrU2Vzc2lvbk1hbmFnZXI7CiB9CiAKLVZpZGVvRnVsbHNjcmVlbk1hbmFnZXImIFdlYlBhZ2U6
OnZpZGVvRnVsbHNjcmVlbk1hbmFnZXIoKQotewotICAgIGlmICghbV92aWRlb0Z1bGxzY3JlZW5N
YW5hZ2VyKQotICAgICAgICBtX3ZpZGVvRnVsbHNjcmVlbk1hbmFnZXIgPSBWaWRlb0Z1bGxzY3Jl
ZW5NYW5hZ2VyOjpjcmVhdGUoKnRoaXMsIHBsYXliYWNrU2Vzc2lvbk1hbmFnZXIoKSk7Ci0gICAg
cmV0dXJuICptX3ZpZGVvRnVsbHNjcmVlbk1hbmFnZXI7Ci19Ci0KIHZvaWQgV2ViUGFnZTo6dmlk
ZW9Db250cm9sc01hbmFnZXJEaWRDaGFuZ2UoKQogewogI2lmIEVOQUJMRShGVUxMU0NSRUVOX0FQ
SSkKQEAgLTM4NjEsNyArMzg2NSwxNSBAQCB2b2lkIFdlYlBhZ2U6OnZpZGVvQ29udHJvbHNNYW5h
Z2VyRGlkQ2hhbmdlKCkKICAgICAgICAgbWFuYWdlci0+dmlkZW9Db250cm9sc01hbmFnZXJEaWRD
aGFuZ2UoKTsKICNlbmRpZgogfQorI2VuZGlmCiAKKyNpZiBFTkFCTEUoVklERU9fUFJFU0VOVEFU
SU9OX01PREUpCitWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyJiBXZWJQYWdlOjp2aWRlb0Z1bGxzY3Jl
ZW5NYW5hZ2VyKCkKK3sKKyAgICBpZiAoIW1fdmlkZW9GdWxsc2NyZWVuTWFuYWdlcikKKyAgICAg
ICAgbV92aWRlb0Z1bGxzY3JlZW5NYW5hZ2VyID0gVmlkZW9GdWxsc2NyZWVuTWFuYWdlcjo6Y3Jl
YXRlKCp0aGlzLCBwbGF5YmFja1Nlc3Npb25NYW5hZ2VyKCkpOworICAgIHJldHVybiAqbV92aWRl
b0Z1bGxzY3JlZW5NYW5hZ2VyOworfQogI2VuZGlmCiAKICNpZiBQTEFURk9STShJT1NfRkFNSUxZ
KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5o
IGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5oCmluZGV4IDgyMjY1
ZDRjMWFkOGNkMmNlZDdhYTcyOWE5NTc5ZDZmMmIzNDhiNTguLmVjM2RhNmY1ZWQwYTBjYTkwZjRh
NmQzNWM4YmM2MDY4MGZhM2ViZDAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9XZWJQYWdlL1dlYlBhZ2UuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFn
ZS9XZWJQYWdlLmgKQEAgLTQwLDYgKzQwLDcgQEAKICNpbmNsdWRlICJJbmplY3RlZEJ1bmRsZVBh
Z2VDb250ZXh0TWVudUNsaWVudC5oIgogI2luY2x1ZGUgIkluamVjdGVkQnVuZGxlUGFnZUZ1bGxT
Y3JlZW5DbGllbnQuaCIKICNpbmNsdWRlICJJbmplY3RlZEJ1bmRsZVBhZ2VQb2xpY3lDbGllbnQu
aCIKKyNpbmNsdWRlICJJbmplY3RlZEJ1bmRsZVBhZ2VWaWRlb0Z1bGxzY3JlZW5DbGllbnQuaCIK
ICNpbmNsdWRlICJMYXllclRyZWVDb250ZXh0LmgiCiAjaW5jbHVkZSAiTWVzc2FnZVJlY2VpdmVy
LmgiCiAjaW5jbHVkZSAiTWVzc2FnZVNlbmRlci5oIgpAQCAtNDUzLDYgKzQ1NCwxMCBAQCBwdWJs
aWM6CiAgICAgdm9pZCBpbml0aWFsaXplSW5qZWN0ZWRCdW5kbGVGdWxsU2NyZWVuQ2xpZW50KFdL
QnVuZGxlUGFnZUZ1bGxTY3JlZW5DbGllbnRCYXNlKik7CiAjZW5kaWYKIAorI2lmIEVOQUJMRShW
SURFT19QUkVTRU5UQVRJT05fTU9ERSkKKyAgICB2b2lkIGluaXRpYWxpemVJbmplY3RlZEJ1bmRs
ZVZpZGVvRnVsbHNjcmVlbkNsaWVudChXS0J1bmRsZVBhZ2VWaWRlb0Z1bGxzY3JlZW5DbGllbnRC
YXNlKik7CisjZW5kaWYKKwogI2lmIEVOQUJMRShDT05URVhUX01FTlVTKQogICAgIEFQSTo6SW5q
ZWN0ZWRCdW5kbGU6OlBhZ2VDb250ZXh0TWVudUNsaWVudCYgaW5qZWN0ZWRCdW5kbGVDb250ZXh0
TWVudUNsaWVudCgpIHsgcmV0dXJuICptX2NvbnRleHRNZW51Q2xpZW50OyB9CiAjZW5kaWYKQEAg
LTQ2Niw2ICs0NzEsMTAgQEAgcHVibGljOgogICAgIEluamVjdGVkQnVuZGxlUGFnZUZ1bGxTY3Jl
ZW5DbGllbnQmIGluamVjdGVkQnVuZGxlRnVsbFNjcmVlbkNsaWVudCgpIHsgcmV0dXJuIG1fZnVs
bFNjcmVlbkNsaWVudDsgfQogI2VuZGlmCiAKKyNpZiBFTkFCTEUoVklERU9fUFJFU0VOVEFUSU9O
X01PREUpCisgICAgSW5qZWN0ZWRCdW5kbGVQYWdlVmlkZW9GdWxsc2NyZWVuQ2xpZW50JiBpbmpl
Y3RlZEJ1bmRsZVZpZGVvRnVsbHNjcmVlbkNsaWVudCgpIHsgcmV0dXJuIG1fdmlkZW9GdWxsc2Ny
ZWVuQ2xpZW50OyB9CisjZW5kaWYKKwogICAgIGJvb2wgZmluZFN0cmluZ0Zyb21JbmplY3RlZEJ1
bmRsZShjb25zdCBTdHJpbmcmLCBGaW5kT3B0aW9ucyk7CiAgICAgdm9pZCBmaW5kU3RyaW5nTWF0
Y2hlc0Zyb21JbmplY3RlZEJ1bmRsZShjb25zdCBTdHJpbmcmLCBGaW5kT3B0aW9ucyk7CiAgICAg
dm9pZCByZXBsYWNlU3RyaW5nTWF0Y2hlc0Zyb21JbmplY3RlZEJ1bmRsZShjb25zdCBWZWN0b3I8
dWludDMyX3Q+JiBtYXRjaEluZGljZXMsIGNvbnN0IFN0cmluZyYgcmVwbGFjZW1lbnRUZXh0LCBi
b29sIHNlbGVjdGlvbk9ubHkpOwpAQCAtMTg0MCw2ICsxODQ5LDEwIEBAIHByaXZhdGU6CiAgICAg
SW5qZWN0ZWRCdW5kbGVQYWdlRnVsbFNjcmVlbkNsaWVudCBtX2Z1bGxTY3JlZW5DbGllbnQ7CiAj
ZW5kaWYKIAorI2lmIEVOQUJMRShWSURFT19QUkVTRU5UQVRJT05fTU9ERSkKKyAgICBJbmplY3Rl
ZEJ1bmRsZVBhZ2VWaWRlb0Z1bGxzY3JlZW5DbGllbnQgbV92aWRlb0Z1bGxzY3JlZW5DbGllbnQ7
CisjZW5kaWYKKwogICAgIFVuaXF1ZVJlZjxGaW5kQ29udHJvbGxlcj4gbV9maW5kQ29udHJvbGxl
cjsKIAogICAgIFJlZlB0cjxXZWJJbnNwZWN0b3I+IG1faW5zcGVjdG9yOwpAQCAtMTg0Nyw4ICsx
ODYwLDExIEBAIHByaXZhdGU6CiAgICAgUmVmUHRyPFJlbW90ZVdlYkluc3BlY3RvclVJPiBtX3Jl
bW90ZUluc3BlY3RvclVJOwogICAgIHN0ZDo6dW5pcXVlX3B0cjxXZWJQYWdlSW5zcGVjdG9yVGFy
Z2V0Q29udHJvbGxlcj4gbV9pbnNwZWN0b3JUYXJnZXRDb250cm9sbGVyOwogCi0jaWYgRU5BQkxF
KFZJREVPX1BSRVNFTlRBVElPTl9NT0RFKQorI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpIHx8IChQ
TEFURk9STShNQUMpICYmIEVOQUJMRShWSURFT19QUkVTRU5UQVRJT05fTU9ERSkpCiAgICAgUmVm
UHRyPFBsYXliYWNrU2Vzc2lvbk1hbmFnZXI+IG1fcGxheWJhY2tTZXNzaW9uTWFuYWdlcjsKKyNl
bmRpZgorCisjaWYgRU5BQkxFKFZJREVPX1BSRVNFTlRBVElPTl9NT0RFKQogICAgIFJlZlB0cjxW
aWRlb0Z1bGxzY3JlZW5NYW5hZ2VyPiBtX3ZpZGVvRnVsbHNjcmVlbk1hbmFnZXI7CiAjZW5kaWYK
IApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL2NvY29hL1ZpZGVvRnVsbHNj
cmVlbk1hbmFnZXIuaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9jb2NvYS9WaWRlb0Z1bGxz
Y3JlZW5NYW5hZ2VyLmgKaW5kZXggZjEzNmVjYjlkZDNlYWNlZmFkZDk3NGJkY2RiZDQyY2FlZmY2
MjdjZi4uY2NjMGFjZWE2ZWJkOWIzZDVjZTY0ZmVhZGY3MWE2MzIyMjY3Y2ZiYyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL2NvY29hL1ZpZGVvRnVsbHNjcmVlbk1hbmFnZXIu
aAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvY29jb2EvVmlkZW9GdWxsc2NyZWVuTWFu
YWdlci5oCkBAIC0xMjIsNiArMTIyLDE1IEBAIHB1YmxpYzoKICAgICB2b2lkIGV4aXRWaWRlb0Z1
bGxzY3JlZW5Gb3JWaWRlb0VsZW1lbnQoV2ViQ29yZTo6SFRNTFZpZGVvRWxlbWVudCYpOwogICAg
IHZvaWQgZXhpdFZpZGVvRnVsbHNjcmVlblRvTW9kZVdpdGhvdXRBbmltYXRpb24oV2ViQ29yZTo6
SFRNTFZpZGVvRWxlbWVudCYsIFdlYkNvcmU6OkhUTUxNZWRpYUVsZW1lbnRFbnVtczo6VmlkZW9G
dWxsc2NyZWVuTW9kZSk7CiAKKyAgICAvLyBNZXNzYWdlcyBmcm9tIFZpZGVvRnVsbHNjcmVlbk1h
bmFnZXJQcm94eQorICAgIHZvaWQgcmVxdWVzdEZ1bGxzY3JlZW5Nb2RlKHVpbnQ2NF90IGNvbnRl
eHRJZCwgV2ViQ29yZTo6SFRNTE1lZGlhRWxlbWVudEVudW1zOjpWaWRlb0Z1bGxzY3JlZW5Nb2Rl
LCBib29sIGZpbmlzaGVkV2l0aE1lZGlhKTsKKyAgICB2b2lkIHJlcXVlc3RWaWRlb0NvbnRlbnRM
YXllcih1aW50NjRfdCBjb250ZXh0SWQpOworICAgIHZvaWQgcmV0dXJuVmlkZW9Db250ZW50TGF5
ZXIodWludDY0X3QgY29udGV4dElkKTsKKyAgICB2b2lkIGRpZFNldHVwRnVsbHNjcmVlbih1aW50
NjRfdCBjb250ZXh0SWQpOworICAgIHZvaWQgZGlkRW50ZXJGdWxsc2NyZWVuKHVpbnQ2NF90IGNv
bnRleHRJZCk7CisgICAgdm9pZCBkaWRFeGl0RnVsbHNjcmVlbih1aW50NjRfdCBjb250ZXh0SWQp
OworICAgIHZvaWQgZGlkQ2xlYW51cEZ1bGxzY3JlZW4odWludDY0X3QgY29udGV4dElkKTsKKwog
cHJvdGVjdGVkOgogICAgIGZyaWVuZCBjbGFzcyBWaWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2VDb250
ZXh0OwogCkBAIC0xNDEsMTUgKzE1MCw5IEBAIHByb3RlY3RlZDoKICAgICB2b2lkIHZpZGVvRGlt
ZW5zaW9uc0NoYW5nZWQodWludDY0X3QgY29udGV4dElkLCBjb25zdCBXZWJDb3JlOjpGbG9hdFNp
emUmKTsKIAogICAgIC8vIE1lc3NhZ2VzIGZyb20gVmlkZW9GdWxsc2NyZWVuTWFuYWdlclByb3h5
Ci0gICAgdm9pZCByZXF1ZXN0RnVsbHNjcmVlbk1vZGUodWludDY0X3QgY29udGV4dElkLCBXZWJD
b3JlOjpIVE1MTWVkaWFFbGVtZW50RW51bXM6OlZpZGVvRnVsbHNjcmVlbk1vZGUsIGJvb2wgZmlu
aXNoZWRXaXRoTWVkaWEpOwogICAgIHZvaWQgcmVxdWVzdFVwZGF0ZUlubGluZVJlY3QodWludDY0
X3QgY29udGV4dElkKTsKLSAgICB2b2lkIHJlcXVlc3RWaWRlb0NvbnRlbnRMYXllcih1aW50NjRf
dCBjb250ZXh0SWQpOwotICAgIHZvaWQgcmV0dXJuVmlkZW9Db250ZW50TGF5ZXIodWludDY0X3Qg
Y29udGV4dElkKTsKLSAgICB2b2lkIGRpZFNldHVwRnVsbHNjcmVlbih1aW50NjRfdCBjb250ZXh0
SWQpOwogICAgIHZvaWQgd2lsbEV4aXRGdWxsc2NyZWVuKHVpbnQ2NF90IGNvbnRleHRJZCk7Ci0g
ICAgdm9pZCBkaWRFeGl0RnVsbHNjcmVlbih1aW50NjRfdCBjb250ZXh0SWQpOwotICAgIHZvaWQg
ZGlkRW50ZXJGdWxsc2NyZWVuKHVpbnQ2NF90IGNvbnRleHRJZCk7Ci0gICAgdm9pZCBkaWRDbGVh
bnVwRnVsbHNjcmVlbih1aW50NjRfdCBjb250ZXh0SWQpOworCiAgICAgdm9pZCBzZXRWaWRlb0xh
eWVyRnJhbWVGZW5jZWQodWludDY0X3QgY29udGV4dElkLCBXZWJDb3JlOjpGbG9hdFJlY3QgYm91
bmRzLCBJUEM6OkF0dGFjaG1lbnQgZmVuY2VQb3J0KTsKICAgICB2b2lkIHNldFZpZGVvTGF5ZXJH
cmF2aXR5RW51bSh1aW50NjRfdCBjb250ZXh0SWQsIHVuc2lnbmVkIGdyYXZpdHkpOwogICAgIHZv
aWQgZnVsbHNjcmVlbk1vZGVDaGFuZ2VkKHVpbnQ2NF90IGNvbnRleHRJZCwgV2ViQ29yZTo6SFRN
TE1lZGlhRWxlbWVudEVudW1zOjpWaWRlb0Z1bGxzY3JlZW5Nb2RlKTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9jb2NvYS9WaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyLm1tIGIv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL2NvY29hL1ZpZGVvRnVsbHNjcmVlbk1hbmFnZXIubW0K
aW5kZXggZmY0YTJkM2U5MTZiNTAwMmY2N2YzOWZmN2U5ZTExODU5YjM2N2U0NS4uNjM3NDdlODhm
NDZhMTY3ZGJhM2E3MDgwZDY0YTMzMGI1NTBiMTJkYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL2NvY29hL1ZpZGVvRnVsbHNjcmVlbk1hbmFnZXIubW0KKysrIGIvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL2NvY29hL1ZpZGVvRnVsbHNjcmVlbk1hbmFnZXIubW0KQEAgLTI4
NSw3ICsyODUsNyBAQCB2b2lkIFZpZGVvRnVsbHNjcmVlbk1hbmFnZXI6OmVudGVyVmlkZW9GdWxs
c2NyZWVuRm9yVmlkZW9FbGVtZW50KEhUTUxWaWRlb0VsZW1lbgogICAgICAgICBpbnRlcmZhY2Ut
PmxheWVySG9zdGluZ0NvbnRleHQoKS0+c2V0Um9vdExheWVyKHZpZGVvTGF5ZXIuZ2V0KCkpOwog
ICAgIH0KIAotICAgIG1fcGFnZS0+c2VuZChNZXNzYWdlczo6VmlkZW9GdWxsc2NyZWVuTWFuYWdl
clByb3h5OjpTZXR1cEZ1bGxzY3JlZW5XaXRoSUQoY29udGV4dElkLCBpbnRlcmZhY2UtPmxheWVy
SG9zdGluZ0NvbnRleHQoKS0+Y29udGV4dElEKCksIHZpZGVvUmVjdCwgbV9wYWdlLT5kZXZpY2VT
Y2FsZUZhY3RvcigpLCBpbnRlcmZhY2UtPmZ1bGxzY3JlZW5Nb2RlKCksIGFsbG93c1BpY3R1cmVJ
blBpY3R1cmUsIHN0YW5kYnkpKTsKKyAgICBtX3BhZ2UtPmluamVjdGVkQnVuZGxlVmlkZW9GdWxs
c2NyZWVuQ2xpZW50KCkuc2V0dXBGdWxsc2NyZWVuV2l0aElEKG1fcGFnZSwgY29udGV4dElkLCBp
bnRlcmZhY2UtPmxheWVySG9zdGluZ0NvbnRleHQoKS0+Y29udGV4dElEKCksIHZpZGVvUmVjdCwg
bV9wYWdlLT5kZXZpY2VTY2FsZUZhY3RvcigpLCBpbnRlcmZhY2UtPmZ1bGxzY3JlZW5Nb2RlKCks
IGFsbG93c1BpY3R1cmVJblBpY3R1cmUsIHN0YW5kYnkpOwogfQogCiB2b2lkIFZpZGVvRnVsbHNj
cmVlbk1hbmFnZXI6OmV4aXRWaWRlb0Z1bGxzY3JlZW5Gb3JWaWRlb0VsZW1lbnQoV2ViQ29yZTo6
SFRNTFZpZGVvRWxlbWVudCYgdmlkZW9FbGVtZW50KQpAQCAtMzAxLDcgKzMwMSw3IEBAIHZvaWQg
VmlkZW9GdWxsc2NyZWVuTWFuYWdlcjo6ZXhpdFZpZGVvRnVsbHNjcmVlbkZvclZpZGVvRWxlbWVu
dChXZWJDb3JlOjpIVE1MVmlkCiAgICAgICAgIHJldHVybjsKIAogICAgIGludGVyZmFjZS5zZXRB
bmltYXRpb25TdGF0ZShWaWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2VDb250ZXh0OjpBbmltYXRpb25U
eXBlOjpGcm9tRnVsbHNjcmVlbik7Ci0gICAgbV9wYWdlLT5zZW5kKE1lc3NhZ2VzOjpWaWRlb0Z1
bGxzY3JlZW5NYW5hZ2VyUHJveHk6OkV4aXRGdWxsc2NyZWVuKGNvbnRleHRJZCwgaW5saW5lVmlk
ZW9GcmFtZSh2aWRlb0VsZW1lbnQpKSk7CisgICAgbV9wYWdlLT5pbmplY3RlZEJ1bmRsZVZpZGVv
RnVsbHNjcmVlbkNsaWVudCgpLmV4aXRGdWxsc2NyZWVuKG1fcGFnZSwgY29udGV4dElkLCBpbmxp
bmVWaWRlb0ZyYW1lKHZpZGVvRWxlbWVudCkpOwogfQogCiB2b2lkIFZpZGVvRnVsbHNjcmVlbk1h
bmFnZXI6OmV4aXRWaWRlb0Z1bGxzY3JlZW5Ub01vZGVXaXRob3V0QW5pbWF0aW9uKFdlYkNvcmU6
OkhUTUxWaWRlb0VsZW1lbnQmIHZpZGVvRWxlbWVudCwgV2ViQ29yZTo6SFRNTE1lZGlhRWxlbWVu
dEVudW1zOjpWaWRlb0Z1bGxzY3JlZW5Nb2RlIHRhcmdldE1vZGUpCkBAIC0zMTcsNyArMzE3LDcg
QEAgdm9pZCBWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyOjpleGl0VmlkZW9GdWxsc2NyZWVuVG9Nb2Rl
V2l0aG91dEFuaW1hdGlvbihXZWJDb3JlOjoKIAogICAgIGludGVyZmFjZS5zZXRUYXJnZXRJc0Z1
bGxzY3JlZW4oZmFsc2UpOwogCi0gICAgbV9wYWdlLT5zZW5kKE1lc3NhZ2VzOjpWaWRlb0Z1bGxz
Y3JlZW5NYW5hZ2VyUHJveHk6OkV4aXRGdWxsc2NyZWVuV2l0aG91dEFuaW1hdGlvblRvTW9kZShj
b250ZXh0SWQsIHRhcmdldE1vZGUpKTsKKyAgICBtX3BhZ2UtPmluamVjdGVkQnVuZGxlVmlkZW9G
dWxsc2NyZWVuQ2xpZW50KCkuZXhpdEZ1bGxzY3JlZW5XaXRob3V0QW5pbWF0aW9uVG9Nb2RlKG1f
cGFnZSwgY29udGV4dElkLCB0YXJnZXRNb2RlKTsKICNlbHNlCiAgICAgVU5VU0VEX1BBUkFNKHZp
ZGVvRWxlbWVudCk7CiAgICAgVU5VU0VEX1BBUkFNKHRhcmdldE1vZGUpOwpAQCAtMzI5LDEzICsz
MjksMTMgQEAgdm9pZCBWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyOjpleGl0VmlkZW9GdWxsc2NyZWVu
VG9Nb2RlV2l0aG91dEFuaW1hdGlvbihXZWJDb3JlOjoKIHZvaWQgVmlkZW9GdWxsc2NyZWVuTWFu
YWdlcjo6aGFzVmlkZW9DaGFuZ2VkKHVpbnQ2NF90IGNvbnRleHRJZCwgYm9vbCBoYXNWaWRlbykK
IHsKICAgICBpZiAobV9wYWdlKQotICAgICAgICBtX3BhZ2UtPnNlbmQoTWVzc2FnZXM6OlZpZGVv
RnVsbHNjcmVlbk1hbmFnZXJQcm94eTo6U2V0SGFzVmlkZW8oY29udGV4dElkLCBoYXNWaWRlbykp
OworICAgICAgICBtX3BhZ2UtPmluamVjdGVkQnVuZGxlVmlkZW9GdWxsc2NyZWVuQ2xpZW50KCku
c2V0SGFzVmlkZW8obV9wYWdlLCBjb250ZXh0SWQsIGhhc1ZpZGVvKTsKIH0KIAogdm9pZCBWaWRl
b0Z1bGxzY3JlZW5NYW5hZ2VyOjp2aWRlb0RpbWVuc2lvbnNDaGFuZ2VkKHVpbnQ2NF90IGNvbnRl
eHRJZCwgY29uc3QgRmxvYXRTaXplJiB2aWRlb0RpbWVuc2lvbnMpCiB7CiAgICAgaWYgKG1fcGFn
ZSkKLSAgICAgICAgbV9wYWdlLT5zZW5kKE1lc3NhZ2VzOjpWaWRlb0Z1bGxzY3JlZW5NYW5hZ2Vy
UHJveHk6OlNldFZpZGVvRGltZW5zaW9ucyhjb250ZXh0SWQsIHZpZGVvRGltZW5zaW9ucykpOwor
ICAgICAgICBtX3BhZ2UtPmluamVjdGVkQnVuZGxlVmlkZW9GdWxsc2NyZWVuQ2xpZW50KCkuc2V0
VmlkZW9EaW1lbnNpb25zKG1fcGFnZSwgY29udGV4dElkLCB2aWRlb0RpbWVuc2lvbnMpOwogfQog
CiAjcHJhZ21hIG1hcmsgTWVzc2FnZXMgZnJvbSBWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyUHJveHk6
CkBAIC0zNTcsNyArMzU3LDcgQEAgdm9pZCBWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyOjpyZXF1ZXN0
VXBkYXRlSW5saW5lUmVjdCh1aW50NjRfdCBjb250ZXh0SWQpCiAKICAgICBhdXRvJiBtb2RlbCA9
IGVuc3VyZU1vZGVsKGNvbnRleHRJZCk7CiAgICAgSW50UmVjdCBpbmxpbmVSZWN0ID0gaW5saW5l
VmlkZW9GcmFtZSgqbW9kZWwudmlkZW9FbGVtZW50KCkpOwotICAgIG1fcGFnZS0+c2VuZChNZXNz
YWdlczo6VmlkZW9GdWxsc2NyZWVuTWFuYWdlclByb3h5OjpTZXRJbmxpbmVSZWN0KGNvbnRleHRJ
ZCwgaW5saW5lUmVjdCwgaW5saW5lUmVjdCAhPSBJbnRSZWN0KDAsIDAsIDAsIDApKSk7CisgICAg
bV9wYWdlLT5pbmplY3RlZEJ1bmRsZVZpZGVvRnVsbHNjcmVlbkNsaWVudCgpLnNldElubGluZVJl
Y3QobV9wYWdlLCBjb250ZXh0SWQsIGlubGluZVJlY3QsIGlubGluZVJlY3QgIT0gSW50UmVjdCgw
LCAwLCAwLCAwKSk7CiB9CiAKIHZvaWQgVmlkZW9GdWxsc2NyZWVuTWFuYWdlcjo6cmVxdWVzdFZp
ZGVvQ29udGVudExheWVyKHVpbnQ2NF90IGNvbnRleHRJZCkKQEAgLTM2OCw4ICszNjgsOCBAQCB2
b2lkIFZpZGVvRnVsbHNjcmVlbk1hbmFnZXI6OnJlcXVlc3RWaWRlb0NvbnRlbnRMYXllcih1aW50
NjRfdCBjb250ZXh0SWQpCiAKICAgICBtb2RlbC0+c2V0VmlkZW9GdWxsc2NyZWVuTGF5ZXIodmlk
ZW9MYXllciwgW3Byb3RlY3RlZFRoaXMgPSBtYWtlUmVmUHRyKHRoaXMpLCB0aGlzLCBjb250ZXh0
SWRdICgpIG11dGFibGUgewogICAgICAgICBkaXNwYXRjaF9hc3luYyhkaXNwYXRjaF9nZXRfbWFp
bl9xdWV1ZSgpLCBbcHJvdGVjdGVkVGhpcyA9IFdURk1vdmUocHJvdGVjdGVkVGhpcyksIHRoaXMs
IGNvbnRleHRJZF0gewotICAgICAgICAgICAgaWYgKHByb3RlY3RlZFRoaXMtPm1fcGFnZSkKLSAg
ICAgICAgICAgICAgICBtX3BhZ2UtPnNlbmQoTWVzc2FnZXM6OlZpZGVvRnVsbHNjcmVlbk1hbmFn
ZXJQcm94eTo6U2V0SGFzVmlkZW9Db250ZW50TGF5ZXIoY29udGV4dElkLCB0cnVlKSk7CisgICAg
ICAgICAgICBpZiAobV9wYWdlKQorICAgICAgICAgICAgICAgIG1fcGFnZS0+aW5qZWN0ZWRCdW5k
bGVWaWRlb0Z1bGxzY3JlZW5DbGllbnQoKS5zZXRIYXNWaWRlb0NvbnRlbnRMYXllcihtX3BhZ2Us
IGNvbnRleHRJZCwgdHJ1ZSk7CiAgICAgICAgIH0pOwogICAgIH0pOwogfQpAQCAtMzg0LDggKzM4
NCw4IEBAIHZvaWQgVmlkZW9GdWxsc2NyZWVuTWFuYWdlcjo6cmV0dXJuVmlkZW9Db250ZW50TGF5
ZXIodWludDY0X3QgY29udGV4dElkKQogICAgICAgICBkaXNwYXRjaF9hc3luYyhkaXNwYXRjaF9n
ZXRfbWFpbl9xdWV1ZSgpLCBbcHJvdGVjdGVkVGhpcyA9IFdURk1vdmUocHJvdGVjdGVkVGhpcyks
IHRoaXMsIGNvbnRleHRJZCwgbW9kZWxdICgpIG11dGFibGUgewogICAgICAgICAgICAgbW9kZWwt
PnNldFZpZGVvRnVsbHNjcmVlbkxheWVyKG5pbCwgW3Byb3RlY3RlZFRoaXMgPSBXVEZNb3ZlKHBy
b3RlY3RlZFRoaXMpLCB0aGlzLCBjb250ZXh0SWRdICgpIG11dGFibGUgewogICAgICAgICAgICAg
ICAgIGRpc3BhdGNoX2FzeW5jKGRpc3BhdGNoX2dldF9tYWluX3F1ZXVlKCksIFtwcm90ZWN0ZWRU
aGlzID0gV1RGTW92ZShwcm90ZWN0ZWRUaGlzKSwgdGhpcywgY29udGV4dElkXSB7Ci0gICAgICAg
ICAgICAgICAgICAgIGlmIChwcm90ZWN0ZWRUaGlzLT5tX3BhZ2UpCi0gICAgICAgICAgICAgICAg
ICAgICAgICBtX3BhZ2UtPnNlbmQoTWVzc2FnZXM6OlZpZGVvRnVsbHNjcmVlbk1hbmFnZXJQcm94
eTo6U2V0SGFzVmlkZW9Db250ZW50TGF5ZXIoY29udGV4dElkLCBmYWxzZSkpOworICAgICAgICAg
ICAgICAgICAgICBpZiAobV9wYWdlKQorICAgICAgICAgICAgICAgICAgICAgICAgbV9wYWdlLT5p
bmplY3RlZEJ1bmRsZVZpZGVvRnVsbHNjcmVlbkNsaWVudCgpLnNldEhhc1ZpZGVvQ29udGVudExh
eWVyKG1fcGFnZSwgY29udGV4dElkLCBmYWxzZSk7CiAgICAgICAgICAgICAgICAgfSk7CiAgICAg
ICAgICAgICB9KTsKICAgICAgICAgfSk7CkBAIC00MDksOCArNDA5LDggQEAgdm9pZCBWaWRlb0Z1
bGxzY3JlZW5NYW5hZ2VyOjpkaWRTZXR1cEZ1bGxzY3JlZW4odWludDY0X3QgY29udGV4dElkKQog
CiAgICAgbW9kZWwtPnNldFZpZGVvRnVsbHNjcmVlbkxheWVyKHZpZGVvTGF5ZXIsIFtwcm90ZWN0
ZWRUaGlzID0gbWFrZVJlZlB0cih0aGlzKSwgdGhpcywgY29udGV4dElkXSAoKSBtdXRhYmxlIHsK
ICAgICAgICAgZGlzcGF0Y2hfYXN5bmMoZGlzcGF0Y2hfZ2V0X21haW5fcXVldWUoKSwgW3Byb3Rl
Y3RlZFRoaXMgPSBXVEZNb3ZlKHByb3RlY3RlZFRoaXMpLCB0aGlzLCBjb250ZXh0SWRdIHsKLSAg
ICAgICAgICAgIGlmIChwcm90ZWN0ZWRUaGlzLT5tX3BhZ2UpCi0gICAgICAgICAgICAgICAgbV9w
YWdlLT5zZW5kKE1lc3NhZ2VzOjpWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyUHJveHk6OkVudGVyRnVs
bHNjcmVlbihjb250ZXh0SWQpKTsKKyAgICAgICAgICAgIGlmIChtX3BhZ2UpCisgICAgICAgICAg
ICAgICAgbV9wYWdlLT5pbmplY3RlZEJ1bmRsZVZpZGVvRnVsbHNjcmVlbkNsaWVudCgpLmVudGVy
RnVsbHNjcmVlbihtX3BhZ2UsIGNvbnRleHRJZCk7CiAgICAgICAgIH0pOwogICAgIH0pOwogI2Vu
ZGlmCkBAIC00MjYsMTAgKzQyNiwxMCBAQCB2b2lkIFZpZGVvRnVsbHNjcmVlbk1hbmFnZXI6Ondp
bGxFeGl0RnVsbHNjcmVlbih1aW50NjRfdCBjb250ZXh0SWQpCiAgICAgaWYgKCF2aWRlb0VsZW1l
bnQpCiAgICAgICAgIHJldHVybjsKIAotICAgIGRpc3BhdGNoX2FzeW5jKGRpc3BhdGNoX2dldF9t
YWluX3F1ZXVlKCksIFtwcm90ZWN0ZWRUaGlzID0gbWFrZVJlZlB0cih0aGlzKSwgdmlkZW9FbGVt
ZW50ID0gV1RGTW92ZSh2aWRlb0VsZW1lbnQpLCBjb250ZXh0SWRdIHsKKyAgICBkaXNwYXRjaF9h
c3luYyhkaXNwYXRjaF9nZXRfbWFpbl9xdWV1ZSgpLCBbcHJvdGVjdGVkVGhpcyA9IG1ha2VSZWZQ
dHIodGhpcyksIHRoaXMsIHZpZGVvRWxlbWVudCA9IFdURk1vdmUodmlkZW9FbGVtZW50KSwgY29u
dGV4dElkXSB7CiAgICAgICAgIHZpZGVvRWxlbWVudC0+d2lsbEV4aXRGdWxsc2NyZWVuKCk7Ci0g
ICAgICAgIGlmIChwcm90ZWN0ZWRUaGlzLT5tX3BhZ2UpCi0gICAgICAgICAgICBwcm90ZWN0ZWRU
aGlzLT5tX3BhZ2UtPnNlbmQoTWVzc2FnZXM6OlZpZGVvRnVsbHNjcmVlbk1hbmFnZXJQcm94eTo6
UHJlcGFyZWRUb0V4aXRGdWxsc2NyZWVuKGNvbnRleHRJZCkpOworICAgICAgICBpZiAobV9wYWdl
KQorICAgICAgICAgICAgbV9wYWdlLT5pbmplY3RlZEJ1bmRsZVZpZGVvRnVsbHNjcmVlbkNsaWVu
dCgpLnByZXBhcmVkVG9FeGl0RnVsbHNjcmVlbihtX3BhZ2UsIGNvbnRleHRJZCk7CiAgICAgfSk7
CiB9CiAKQEAgLTQ1NCw5ICs0NTQsOSBAQCB2b2lkIFZpZGVvRnVsbHNjcmVlbk1hbmFnZXI6OmRp
ZEVudGVyRnVsbHNjcmVlbih1aW50NjRfdCBjb250ZXh0SWQpCiAgICAgICAgIHJldHVybjsKIAog
ICAgIC8vIGV4aXQgZnVsbHNjcmVlbiBub3cgaWYgaXQgd2FzIHByZXZpb3VzbHkgcmVxdWVzdGVk
IGR1cmluZyBhbiBhbmltYXRpb24uCi0gICAgZGlzcGF0Y2hfYXN5bmMoZGlzcGF0Y2hfZ2V0X21h
aW5fcXVldWUoKSwgW3Byb3RlY3RlZFRoaXMgPSBtYWtlUmVmUHRyKHRoaXMpLCB2aWRlb0VsZW1l
bnRdIHsKLSAgICAgICAgaWYgKHByb3RlY3RlZFRoaXMtPm1fcGFnZSkKLSAgICAgICAgICAgIHBy
b3RlY3RlZFRoaXMtPmV4aXRWaWRlb0Z1bGxzY3JlZW5Gb3JWaWRlb0VsZW1lbnQoKnZpZGVvRWxl
bWVudCk7CisgICAgZGlzcGF0Y2hfYXN5bmMoZGlzcGF0Y2hfZ2V0X21haW5fcXVldWUoKSwgW3By
b3RlY3RlZFRoaXMgPSBtYWtlUmVmUHRyKHRoaXMpLCB0aGlzLCB2aWRlb0VsZW1lbnRdIHsKKyAg
ICAgICAgaWYgKG1fcGFnZSkKKyAgICAgICAgICAgIGV4aXRWaWRlb0Z1bGxzY3JlZW5Gb3JWaWRl
b0VsZW1lbnQoKnZpZGVvRWxlbWVudCk7CiAgICAgfSk7CiB9CiAKQEAgLTQ2OSw5ICs0NjksOSBA
QCB2b2lkIFZpZGVvRnVsbHNjcmVlbk1hbmFnZXI6OmRpZEV4aXRGdWxsc2NyZWVuKHVpbnQ2NF90
IGNvbnRleHRJZCkKICAgICBzdGQ6OnRpZShtb2RlbCwgaW50ZXJmYWNlKSA9IGVuc3VyZU1vZGVs
QW5kSW50ZXJmYWNlKGNvbnRleHRJZCk7CiAKICNpZiBQTEFURk9STShJT1NfRkFNSUxZKQotICAg
IGRpc3BhdGNoX2FzeW5jKGRpc3BhdGNoX2dldF9tYWluX3F1ZXVlKCksIFtwcm90ZWN0ZWRUaGlz
ID0gbWFrZVJlZlB0cih0aGlzKSwgY29udGV4dElkLCBpbnRlcmZhY2VdIHsKLSAgICAgICAgaWYg
KHByb3RlY3RlZFRoaXMtPm1fcGFnZSkKLSAgICAgICAgICAgIHByb3RlY3RlZFRoaXMtPm1fcGFn
ZS0+c2VuZChNZXNzYWdlczo6VmlkZW9GdWxsc2NyZWVuTWFuYWdlclByb3h5OjpDbGVhbnVwRnVs
bHNjcmVlbihjb250ZXh0SWQpKTsKKyAgICBkaXNwYXRjaF9hc3luYyhkaXNwYXRjaF9nZXRfbWFp
bl9xdWV1ZSgpLCBbcHJvdGVjdGVkVGhpcyA9IG1ha2VSZWZQdHIodGhpcyksIHRoaXMsIGNvbnRl
eHRJZCwgaW50ZXJmYWNlXSB7CisgICAgICAgIGlmIChtX3BhZ2UpCisgICAgICAgICAgICBtX3Bh
Z2UtPmluamVjdGVkQnVuZGxlVmlkZW9GdWxsc2NyZWVuQ2xpZW50KCkuY2xlYW51cEZ1bGxzY3Jl
ZW4oY29udGV4dElkKTsKICAgICB9KTsKICNlbHNlCiAgICAgbW9kZWwtPndhaXRGb3JQcmVwYXJl
ZEZvcklubGluZVRoZW4oW3Byb3RlY3RlZFRoaXMgPSBtYWtlUmVmUHRyKHRoaXMpLCBjb250ZXh0
SWQsIGludGVyZmFjZSwgbW9kZWxdICgpIG11dGFibGUgewpAQCAtNDgzLDE0ICs0ODMsMTQgQEAg
dm9pZCBWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyOjpkaWRFeGl0RnVsbHNjcmVlbih1aW50NjRfdCBj
b250ZXh0SWQpCiAgICAgICAgICAgICAgICAgICAgICAgICBpbnRlcmZhY2UtPnNldExheWVySG9z
dGluZ0NvbnRleHQobnVsbHB0cik7CiAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAg
ICAgICAgICAgaWYgKHByb3RlY3RlZFRoaXMtPm1fcGFnZSkKLSAgICAgICAgICAgICAgICAgICAg
ICAgIHByb3RlY3RlZFRoaXMtPm1fcGFnZS0+c2VuZChNZXNzYWdlczo6VmlkZW9GdWxsc2NyZWVu
TWFuYWdlclByb3h5OjpDbGVhbnVwRnVsbHNjcmVlbihjb250ZXh0SWQpKTsKKyAgICAgICAgICAg
ICAgICAgICAgICAgIHByb3RlY3RlZFRoaXMtPm1fcGFnZS0+aW5qZWN0ZWRCdW5kbGVWaWRlb0Z1
bGxzY3JlZW5DbGllbnQoKS5jbGVhbnVwRnVsbHNjcmVlbihwcm90ZWN0ZWRUaGlzLT5tX3BhZ2Us
IGNvbnRleHRJZCk7CiAgICAgICAgICAgICAgICAgfSk7CiAgICAgICAgICAgICB9KTsKICAgICAg
ICAgfSk7CiAgICAgfSk7CiAjZW5kaWYKIH0KLSAgICAKKwogdm9pZCBWaWRlb0Z1bGxzY3JlZW5N
YW5hZ2VyOjpkaWRDbGVhbnVwRnVsbHNjcmVlbih1aW50NjRfdCBjb250ZXh0SWQpCiB7CiAgICAg
TE9HKEZ1bGxzY3JlZW4sICJWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyOjpkaWRDbGVhbnVwRnVsbHNj
cmVlbiglcCwgJXgpIiwgdGhpcywgY29udGV4dElkKTsKQEAgLTUxOCw5ICs1MTgsOSBAQCB2b2lk
IFZpZGVvRnVsbHNjcmVlbk1hbmFnZXI6OmRpZENsZWFudXBGdWxsc2NyZWVuKHVpbnQ2NF90IGNv
bnRleHRJZCkKICAgICBpZiAoIXZpZGVvRWxlbWVudCB8fCAhdGFyZ2V0SXNGdWxsc2NyZWVuKQog
ICAgICAgICByZXR1cm47CiAKLSAgICBkaXNwYXRjaF9hc3luYyhkaXNwYXRjaF9nZXRfbWFpbl9x
dWV1ZSgpLCBbcHJvdGVjdGVkVGhpcyA9IG1ha2VSZWZQdHIodGhpcyksIHZpZGVvRWxlbWVudCwg
bW9kZSwgc3RhbmRieV0gewotICAgICAgICBpZiAocHJvdGVjdGVkVGhpcy0+bV9wYWdlKQotICAg
ICAgICAgICAgcHJvdGVjdGVkVGhpcy0+ZW50ZXJWaWRlb0Z1bGxzY3JlZW5Gb3JWaWRlb0VsZW1l
bnQoKnZpZGVvRWxlbWVudCwgbW9kZSwgc3RhbmRieSk7CisgICAgZGlzcGF0Y2hfYXN5bmMoZGlz
cGF0Y2hfZ2V0X21haW5fcXVldWUoKSwgW3Byb3RlY3RlZFRoaXMgPSBtYWtlUmVmUHRyKHRoaXMp
LCB0aGlzLCB2aWRlb0VsZW1lbnQsIG1vZGUsIHN0YW5kYnldIHsKKyAgICAgICAgaWYgKG1fcGFn
ZSkKKyAgICAgICAgICAgIGVudGVyVmlkZW9GdWxsc2NyZWVuRm9yVmlkZW9FbGVtZW50KCp2aWRl
b0VsZW1lbnQsIG1vZGUsIHN0YW5kYnkpOwogICAgIH0pOwogfQogICAgIApAQCAtNTM4LDcgKzUz
OCw3IEBAIHZvaWQgVmlkZW9GdWxsc2NyZWVuTWFuYWdlcjo6ZnVsbHNjcmVlbk1heVJldHVyblRv
SW5saW5lKHVpbnQ2NF90IGNvbnRleHRJZCwgYm9vCiAKICAgICBpZiAoIWlzUGFnZVZpc2libGUp
CiAgICAgICAgIG1vZGVsLnZpZGVvRWxlbWVudCgpLT5zY3JvbGxJbnRvVmlld0lmTm90VmlzaWJs
ZShmYWxzZSk7Ci0gICAgbV9wYWdlLT5zZW5kKE1lc3NhZ2VzOjpWaWRlb0Z1bGxzY3JlZW5NYW5h
Z2VyUHJveHk6OlByZXBhcmVkVG9SZXR1cm5Ub0lubGluZShjb250ZXh0SWQsIHRydWUsIGlubGlu
ZVZpZGVvRnJhbWUoKm1vZGVsLnZpZGVvRWxlbWVudCgpKSkpOworICAgIG1fcGFnZS0+aW5qZWN0
ZWRCdW5kbGVWaWRlb0Z1bGxzY3JlZW5DbGllbnQoKS5wcmVwYXJlZFRvUmV0dXJuVG9JbmxpbmUo
bV9wYWdlLCBjb250ZXh0SWQsIHRydWUsIGlubGluZVZpZGVvRnJhbWUoKm1vZGVsLnZpZGVvRWxl
bWVudCgpKSk7CiB9CiAKIHZvaWQgVmlkZW9GdWxsc2NyZWVuTWFuYWdlcjo6cmVxdWVzdFJvdXRl
U2hhcmluZ1BvbGljeUFuZENvbnRleHRVSUQodWludDY0X3QgY29udGV4dElkLCBNZXNzYWdlczo6
VmlkZW9GdWxsc2NyZWVuTWFuYWdlcjo6UmVxdWVzdFJvdXRlU2hhcmluZ1BvbGljeUFuZENvbnRl
eHRVSUQ6OkFzeW5jUmVwbHkmJiByZXBseSkKZGlmZiAtLWdpdCBhL1Rvb2xzL0NoYW5nZUxvZyBi
L1Rvb2xzL0NoYW5nZUxvZwppbmRleCAzYjUxOGM1YzIxYzUwYTYzNGRjZGIwMzkzYTI4NDM5YzRk
ZmVlZjRiLi5iMDUwNDMxN2NmZjc1ZGJiNjkxMDYxNjUwMTA2Mjg0YjVjOTJmODVlIDEwMDY0NAot
LS0gYS9Ub29scy9DaGFuZ2VMb2cKKysrIGIvVG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzEg
QEAKKzIwMjAtMDQtMTcgIFBlbmcgTGl1ICA8cGVuZy5saXU2QGFwcGxlLmNvbT4KKworICAgICAg
ICBVcGRhdGUgV2ViS2l0VGVzdFJ1bm5lciB0byBzdXBwb3J0IHJ1bm5pbmcgbXVsdGlwbGUgdmlk
ZW8gZnVsbHNjcmVlbiBhbmQgUGljdHVyZS1pbi1QaWN0dXJlIHRlc3RzIHNpbXVsdGFuZW91c2x5
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDM3MjMK
KworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGQgYW4g
aW5qZWN0ZWQgYnVuZGxlIGNsaWVudCBvZiB2aWRlbyBmdWxsc2NyZWVuIGluIFdlYktpdFRlc3RS
dW5uZXIgdG8gbW9jayB0aGUgYmVoYXZpb3IKKyAgICAgICAgb2YgdGhlIHZpZGVvIGZ1bGxzY3Jl
ZW4gYW5kIHBpY3R1cmUtaW4tcGljdHVyZSBpbXBsZW1lbnRhdGlvbiBpbiB0aGUgVUkgcHJvY2Vz
cy4KKyAgICAgICAgV2l0aCB0aGlzIHBhdGNoLCB3ZSBjYW4gdGVzdCB0aGUgdmlkZW8gZnVsbHNj
cmVlbiBhbmQgcGljdHVyZS1pbi1waWN0dXJlIGltcGxlbWVudGF0aW9uIGluCisgICAgICAgIHRo
ZSBXZWIgcHJvY2VzcyB3aXRob3V0IHRoZSBpbnZvbHZlbWVudCBvZiB0aGUgVUkgcHJvY2VzcyBz
aWRlIGltcGxlbWVudGF0aW9uLiBTbyB0aGF0CisgICAgICAgIHdlIGNhbiBydW4gbXVsdGlwbGUg
dmlkZW8gZnVsbHNjcmVlbiBhbmQgcGljdHVyZS1pbi1waWN0dXJlIHRlc3RzIGluIHBhcmFsbGVs
LgorCisgICAgICAgICogV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1
bmRsZVBhZ2UuY3BwOgorICAgICAgICAoV1RSOjpJbmplY3RlZEJ1bmRsZVBhZ2U6OkluamVjdGVk
QnVuZGxlUGFnZSk6CisgICAgICAgIChXVFI6OkluamVjdGVkQnVuZGxlUGFnZTo6c2V0SGFzVmlk
ZW8pOgorICAgICAgICAoV1RSOjpJbmplY3RlZEJ1bmRsZVBhZ2U6OnNldFZpZGVvRGltZW5zaW9u
cyk6CisgICAgICAgIChXVFI6OkluamVjdGVkQnVuZGxlUGFnZTo6c2V0dXBGdWxsc2NyZWVuV2l0
aElEKToKKyAgICAgICAgKFdUUjo6SW5qZWN0ZWRCdW5kbGVQYWdlOjplbnRlckZ1bGxzY3JlZW4p
OgorICAgICAgICAoV1RSOjpJbmplY3RlZEJ1bmRsZVBhZ2U6OmV4aXRGdWxsc2NyZWVuKToKKyAg
ICAgICAgKFdUUjo6SW5qZWN0ZWRCdW5kbGVQYWdlOjpzZXRJbmxpbmVSZWN0KToKKyAgICAgICAg
KFdUUjo6SW5qZWN0ZWRCdW5kbGVQYWdlOjpzZXRIYXNWaWRlb0NvbnRlbnRMYXllcik6CisgICAg
ICAgIChXVFI6OkluamVjdGVkQnVuZGxlUGFnZTo6Y2xlYW51cEZ1bGxzY3JlZW4pOgorICAgICAg
ICAoV1RSOjpJbmplY3RlZEJ1bmRsZVBhZ2U6OnByZXBhcmVkVG9SZXR1cm5Ub0lubGluZSk6Cisg
ICAgICAgIChXVFI6OkluamVjdGVkQnVuZGxlUGFnZTo6cHJlcGFyZWRUb0V4aXRGdWxsc2NyZWVu
KToKKyAgICAgICAgKFdUUjo6SW5qZWN0ZWRCdW5kbGVQYWdlOjpleGl0RnVsbHNjcmVlbldpdGhv
dXRBbmltYXRpb25Ub01vZGUpOgorICAgICAgICAqIFdlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRC
dW5kbGUvSW5qZWN0ZWRCdW5kbGVQYWdlLmg6CisKIDIwMjAtMDQtMTcgIEJyZW50IEZ1bGdoYW0g
IDxiZnVsZ2hhbUBhcHBsZS5jb20+CiAKICAgICAgICAgVW5yZXZpZXdlZCBidWlsZCBmaXggYWZ0
ZXIgcjI2MDI2OS4KZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRC
dW5kbGUvSW5qZWN0ZWRCdW5kbGVQYWdlLmNwcCBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5q
ZWN0ZWRCdW5kbGUvSW5qZWN0ZWRCdW5kbGVQYWdlLmNwcAppbmRleCA0MGM0NWE3OTE1NTA2OTFl
ZmZmYTZhNGQxYzM3YzQ5MzFiMDRlZDgyLi43Y2E0OGE3OGY2NGViOGVmYTUzZDcwY2JkMzAyMzhh
NmI5NGY2OTZjIDEwMDY0NAotLS0gYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVu
ZGxlL0luamVjdGVkQnVuZGxlUGFnZS5jcHAKKysrIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9J
bmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZVBhZ2UuY3BwCkBAIC0zOTAsNiArMzkwLDI4IEBA
IEluamVjdGVkQnVuZGxlUGFnZTo6SW5qZWN0ZWRCdW5kbGVQYWdlKFdLQnVuZGxlUGFnZVJlZiBw
YWdlKQogICAgIH07CiAgICAgV0tCdW5kbGVQYWdlU2V0RnVsbFNjcmVlbkNsaWVudChtX3BhZ2Us
ICZmdWxsU2NyZWVuQ2xpZW50LmJhc2UpOwogI2VuZGlmCisKKyNpZiBFTkFCTEUoVklERU9fUFJF
U0VOVEFUSU9OX01PREUpCisgICAgV0tCdW5kbGVQYWdlVmlkZW9GdWxsc2NyZWVuQ2xpZW50VjAg
dmlkZW9GdWxsc2NyZWVuQ2xpZW50ID0geworICAgICAgICB7IDAsIHRoaXMgfSwKKyAgICAgICAg
c2V0SGFzVmlkZW8sCisgICAgICAgIHNldFZpZGVvRGltZW5zaW9ucywKKyAgICAgICAgc2V0dXBG
dWxsc2NyZWVuV2l0aElELAorICAgICAgICBlbnRlckZ1bGxzY3JlZW4sCisgICAgICAgIGV4aXRG
dWxsc2NyZWVuLAorICAgICAgICBzZXRJbmxpbmVSZWN0LAorICAgICAgICBzZXRIYXNWaWRlb0Nv
bnRlbnRMYXllciwKKyAgICAgICAgY2xlYW51cEZ1bGxzY3JlZW4sCisgICAgICAgIHByZXBhcmVk
VG9SZXR1cm5Ub0lubGluZSwKKyAgICAgICAgcHJlcGFyZWRUb0V4aXRGdWxsc2NyZWVuLAorI2lm
IFBMQVRGT1JNKE1BQykKKyAgICAgICAgZXhpdEZ1bGxzY3JlZW5XaXRob3V0QW5pbWF0aW9uVG9N
b2RlCisjZWxzZQorICAgICAgICAwLCAvKiBleGl0RnVsbHNjcmVlbldpdGhvdXRBbmltYXRpb25U
b01vZGUgKi8KKyNlbmRpZgorICAgIH07CisgICAgV0tCdW5kbGVQYWdlU2V0VmlkZW9GdWxsc2Ny
ZWVuQ2xpZW50KG1fcGFnZSwgJnZpZGVvRnVsbHNjcmVlbkNsaWVudC5iYXNlKTsKKyNlbmRpZiAv
LyBFTkFCTEUoVklERU9fUFJFU0VOVEFUSU9OX01PREUpCiB9CiAKIEluamVjdGVkQnVuZGxlUGFn
ZTo6fkluamVjdGVkQnVuZGxlUGFnZSgpCkBAIC0xOTMyLDYgKzE5NTQsMTMwIEBAIHZvaWQgSW5q
ZWN0ZWRCdW5kbGVQYWdlOjpjbG9zZUZ1bGxTY3JlZW4oV0tCdW5kbGVQYWdlUmVmIHBhZ2VSZWYp
CiB9CiAjZW5kaWYKIAorI2lmIEVOQUJMRShWSURFT19QUkVTRU5UQVRJT05fTU9ERSkKKwordm9p
ZCBJbmplY3RlZEJ1bmRsZVBhZ2U6OnNldEhhc1ZpZGVvKFdLQnVuZGxlUGFnZVJlZiwgdWludDY0
X3QgY29udGV4dElkLCBib29sIGhhc1ZpZGVvKQoreworICAgIFVOVVNFRF9QQVJBTShjb250ZXh0
SWQpOworICAgIFVOVVNFRF9QQVJBTShoYXNWaWRlbyk7CisKKyAgICBhdXRvJiBpbmplY3RlZEJ1
bmRsZSA9IEluamVjdGVkQnVuZGxlOjpzaW5nbGV0b24oKTsKKyAgICBpZiAoaW5qZWN0ZWRCdW5k
bGUudGVzdFJ1bm5lcigpLT5zaG91bGREdW1wRnVsbFNjcmVlbkNhbGxiYWNrcygpKQorICAgICAg
ICBpbmplY3RlZEJ1bmRsZS5vdXRwdXRUZXh0KCJzZXRIYXNWaWRlbygpXG4iKTsKK30KKwordm9p
ZCBJbmplY3RlZEJ1bmRsZVBhZ2U6OnNldFZpZGVvRGltZW5zaW9ucyhXS0J1bmRsZVBhZ2VSZWYs
IHVpbnQ2NF90IGNvbnRleHRJZCwgV0tTaXplIHZpZGVvRGltZW5zaW9ucykKK3sKKyAgICBVTlVT
RURfUEFSQU0oY29udGV4dElkKTsKKyAgICBVTlVTRURfUEFSQU0odmlkZW9EaW1lbnNpb25zKTsK
KworICAgIGF1dG8mIGluamVjdGVkQnVuZGxlID0gSW5qZWN0ZWRCdW5kbGU6OnNpbmdsZXRvbigp
OworICAgIGlmIChpbmplY3RlZEJ1bmRsZS50ZXN0UnVubmVyKCktPnNob3VsZER1bXBGdWxsU2Ny
ZWVuQ2FsbGJhY2tzKCkpCisgICAgICAgIGluamVjdGVkQnVuZGxlLm91dHB1dFRleHQoInNldFZp
ZGVvRGltZW5zaW9ucygpXG4iKTsKK30KKwordm9pZCBJbmplY3RlZEJ1bmRsZVBhZ2U6OnNldHVw
RnVsbHNjcmVlbldpdGhJRChXS0J1bmRsZVBhZ2VSZWYgcGFnZSwgdWludDY0X3QgY29udGV4dElk
LCB1aW50MzJfdCB2aWRlb0xheWVySWQsIFdLUmVjdCBpbml0aWFsUmVjdCwgZmxvYXQgaG9zdGlu
Z1NjYWxlRmFjdG9yLCBXS1ZpZGVvRnVsbHNjcmVlbk1vZGUgdmlkZW9GdWxsc2NyZWVuTW9kZSwg
Ym9vbCBhbGxvd3NQaWN0dXJlSW5QaWN0dXJlLCBib29sIHN0YW5kYnkpCit7CisgICAgVU5VU0VE
X1BBUkFNKHZpZGVvTGF5ZXJJZCk7CisgICAgVU5VU0VEX1BBUkFNKGluaXRpYWxSZWN0KTsKKyAg
ICBVTlVTRURfUEFSQU0oaG9zdGluZ1NjYWxlRmFjdG9yKTsKKyAgICBVTlVTRURfUEFSQU0odmlk
ZW9GdWxsc2NyZWVuTW9kZSk7CisgICAgVU5VU0VEX1BBUkFNKGFsbG93c1BpY3R1cmVJblBpY3R1
cmUpOworICAgIFVOVVNFRF9QQVJBTShzdGFuZGJ5KTsKKworICAgIGF1dG8mIGluamVjdGVkQnVu
ZGxlID0gSW5qZWN0ZWRCdW5kbGU6OnNpbmdsZXRvbigpOworICAgIGlmIChpbmplY3RlZEJ1bmRs
ZS50ZXN0UnVubmVyKCktPnNob3VsZER1bXBGdWxsU2NyZWVuQ2FsbGJhY2tzKCkpCisgICAgICAg
IGluamVjdGVkQnVuZGxlLm91dHB1dFRleHQoInNldHVwRnVsbHNjcmVlbldpdGhJRCgpXG4iKTsK
KworICAgIFdLQnVuZGxlUGFnZVJlcXVlc3RWaWRlb0NvbnRlbnRMYXllcihwYWdlLCBjb250ZXh0
SWQpOworfQorCit2b2lkIEluamVjdGVkQnVuZGxlUGFnZTo6ZW50ZXJGdWxsc2NyZWVuKFdLQnVu
ZGxlUGFnZVJlZiBwYWdlLCB1aW50NjRfdCBjb250ZXh0SWQpCit7CisgICAgYXV0byYgaW5qZWN0
ZWRCdW5kbGUgPSBJbmplY3RlZEJ1bmRsZTo6c2luZ2xldG9uKCk7CisgICAgaWYgKGluamVjdGVk
QnVuZGxlLnRlc3RSdW5uZXIoKS0+c2hvdWxkRHVtcEZ1bGxTY3JlZW5DYWxsYmFja3MoKSkKKyAg
ICAgICAgaW5qZWN0ZWRCdW5kbGUub3V0cHV0VGV4dCgiZW50ZXJGdWxsc2NyZWVuKClcbiIpOwor
CisgICAgV0tCdW5kbGVQYWdlRGlkRW50ZXJWaWRlb0Z1bGxzY3JlZW4ocGFnZSwgY29udGV4dElk
KTsKK30KKwordm9pZCBJbmplY3RlZEJ1bmRsZVBhZ2U6OmV4aXRGdWxsc2NyZWVuKFdLQnVuZGxl
UGFnZVJlZiBwYWdlLCB1aW50NjRfdCBjb250ZXh0SWQsIFdLUmVjdCBmaW5hbFJlY3QpCit7Cisg
ICAgVU5VU0VEX1BBUkFNKGZpbmFsUmVjdCk7CisKKyAgICBhdXRvJiBpbmplY3RlZEJ1bmRsZSA9
IEluamVjdGVkQnVuZGxlOjpzaW5nbGV0b24oKTsKKyAgICBpZiAoaW5qZWN0ZWRCdW5kbGUudGVz
dFJ1bm5lcigpLT5zaG91bGREdW1wRnVsbFNjcmVlbkNhbGxiYWNrcygpKQorICAgICAgICBpbmpl
Y3RlZEJ1bmRsZS5vdXRwdXRUZXh0KCJleGl0RnVsbHNjcmVlbigpXG4iKTsKKworICAgIFdLQnVu
ZGxlUGFnZVJldHVyblZpZGVvQ29udGVudExheWVyKHBhZ2UsIGNvbnRleHRJZCk7Cit9CisKK3Zv
aWQgSW5qZWN0ZWRCdW5kbGVQYWdlOjpzZXRJbmxpbmVSZWN0KFdLQnVuZGxlUGFnZVJlZiwgdWlu
dDY0X3QgY29udGV4dElkLCBXS1JlY3QgaW5saW5lUmVjdCwgYm9vbCB2aXNpYmxlKQoreworICAg
IFVOVVNFRF9QQVJBTShjb250ZXh0SWQpOworICAgIFVOVVNFRF9QQVJBTShpbmxpbmVSZWN0KTsK
KyAgICBVTlVTRURfUEFSQU0odmlzaWJsZSk7CisKKyAgICBhdXRvJiBpbmplY3RlZEJ1bmRsZSA9
IEluamVjdGVkQnVuZGxlOjpzaW5nbGV0b24oKTsKKyAgICBpZiAoaW5qZWN0ZWRCdW5kbGUudGVz
dFJ1bm5lcigpLT5zaG91bGREdW1wRnVsbFNjcmVlbkNhbGxiYWNrcygpKQorICAgICAgICBpbmpl
Y3RlZEJ1bmRsZS5vdXRwdXRUZXh0KCJzZXRJbmxpbmVSZWN0KClcbiIpOworfQorCit2b2lkIElu
amVjdGVkQnVuZGxlUGFnZTo6c2V0SGFzVmlkZW9Db250ZW50TGF5ZXIoV0tCdW5kbGVQYWdlUmVm
IHBhZ2UsIHVpbnQ2NF90IGNvbnRleHRJZCwgYm9vbCB2YWx1ZSkKK3sKKyAgICBhdXRvJiBpbmpl
Y3RlZEJ1bmRsZSA9IEluamVjdGVkQnVuZGxlOjpzaW5nbGV0b24oKTsKKyAgICBpZiAoaW5qZWN0
ZWRCdW5kbGUudGVzdFJ1bm5lcigpLT5zaG91bGREdW1wRnVsbFNjcmVlbkNhbGxiYWNrcygpKQor
ICAgICAgICBpbmplY3RlZEJ1bmRsZS5vdXRwdXRUZXh0KCJzZXRIYXNWaWRlb0NvbnRlbnRMYXll
cigpXG4iKTsKKworICAgIGlmICh2YWx1ZSkKKyAgICAgICAgV0tCdW5kbGVQYWdlRGlkU2V0dXBW
aWRlb0Z1bGxzY3JlZW4ocGFnZSwgY29udGV4dElkKTsKKyAgICBlbHNlCisgICAgICAgIFdLQnVu
ZGxlUGFnZURpZEV4aXRWaWRlb0Z1bGxzY3JlZW4ocGFnZSwgY29udGV4dElkKTsKK30KKwordm9p
ZCBJbmplY3RlZEJ1bmRsZVBhZ2U6OmNsZWFudXBGdWxsc2NyZWVuKFdLQnVuZGxlUGFnZVJlZiBw
YWdlLCB1aW50NjRfdCBjb250ZXh0SWQpCit7CisgICAgYXV0byYgaW5qZWN0ZWRCdW5kbGUgPSBJ
bmplY3RlZEJ1bmRsZTo6c2luZ2xldG9uKCk7CisgICAgaWYgKGluamVjdGVkQnVuZGxlLnRlc3RS
dW5uZXIoKS0+c2hvdWxkRHVtcEZ1bGxTY3JlZW5DYWxsYmFja3MoKSkKKyAgICAgICAgaW5qZWN0
ZWRCdW5kbGUub3V0cHV0VGV4dCgiY2xlYW51cEZ1bGxzY3JlZW4oKVxuIik7CisKKyAgICBXS0J1
bmRsZVBhZ2VEaWRDbGVhbnVwVmlkZW9GdWxsc2NyZWVuKHBhZ2UsIGNvbnRleHRJZCk7Cit9CisK
K3ZvaWQgSW5qZWN0ZWRCdW5kbGVQYWdlOjpwcmVwYXJlZFRvUmV0dXJuVG9JbmxpbmUoV0tCdW5k
bGVQYWdlUmVmLCB1aW50NjRfdCBjb250ZXh0SWQsIGJvb2wgdmlzaWJsZSwgV0tSZWN0IGlubGlu
ZVJlY3QpCit7CisgICAgVU5VU0VEX1BBUkFNKGNvbnRleHRJZCk7CisgICAgVU5VU0VEX1BBUkFN
KHZpc2libGUpOworICAgIFVOVVNFRF9QQVJBTShpbmxpbmVSZWN0KTsKKworICAgIGF1dG8mIGlu
amVjdGVkQnVuZGxlID0gSW5qZWN0ZWRCdW5kbGU6OnNpbmdsZXRvbigpOworICAgIGlmIChpbmpl
Y3RlZEJ1bmRsZS50ZXN0UnVubmVyKCktPnNob3VsZER1bXBGdWxsU2NyZWVuQ2FsbGJhY2tzKCkp
CisgICAgICAgIGluamVjdGVkQnVuZGxlLm91dHB1dFRleHQoInByZXBhcmVkVG9SZXR1cm5Ub0lu
bGluZSgpXG4iKTsKK30KKwordm9pZCBJbmplY3RlZEJ1bmRsZVBhZ2U6OnByZXBhcmVkVG9FeGl0
RnVsbHNjcmVlbihXS0J1bmRsZVBhZ2VSZWYsIHVpbnQ2NF90IGNvbnRleHRJZCkKK3sKKyAgICBV
TlVTRURfUEFSQU0oY29udGV4dElkKTsKKworICAgIGF1dG8mIGluamVjdGVkQnVuZGxlID0gSW5q
ZWN0ZWRCdW5kbGU6OnNpbmdsZXRvbigpOworICAgIGlmIChpbmplY3RlZEJ1bmRsZS50ZXN0UnVu
bmVyKCktPnNob3VsZER1bXBGdWxsU2NyZWVuQ2FsbGJhY2tzKCkpCisgICAgICAgIGluamVjdGVk
QnVuZGxlLm91dHB1dFRleHQoInByZXBhcmVkVG9FeGl0RnVsbHNjcmVlbigpXG4iKTsKK30KKwor
I2lmIFBMQVRGT1JNKE1BQykKK3ZvaWQgSW5qZWN0ZWRCdW5kbGVQYWdlOjpleGl0RnVsbHNjcmVl
bldpdGhvdXRBbmltYXRpb25Ub01vZGUoV0tCdW5kbGVQYWdlUmVmLCB1aW50NjRfdCBjb250ZXh0
SWQsIFdLVmlkZW9GdWxsc2NyZWVuTW9kZSB2aWRlb0Z1bGxzY3JlZW5Nb2RlKQoreworICAgIFVO
VVNFRF9QQVJBTShjb250ZXh0SWQpOworICAgIFVOVVNFRF9QQVJBTSh2aWRlb0Z1bGxzY3JlZW5N
b2RlKTsKKworICAgIGF1dG8mIGluamVjdGVkQnVuZGxlID0gSW5qZWN0ZWRCdW5kbGU6OnNpbmds
ZXRvbigpOworICAgIGlmIChpbmplY3RlZEJ1bmRsZS50ZXN0UnVubmVyKCktPnNob3VsZER1bXBG
dWxsU2NyZWVuQ2FsbGJhY2tzKCkpCisgICAgICAgIGluamVjdGVkQnVuZGxlLm91dHB1dFRleHQo
ImV4aXRGdWxsc2NyZWVuV2l0aG91dEFuaW1hdGlvblRvTW9kZSgpXG4iKTsKK30KKyNlbmRpZgor
CisjZW5kaWYgLy8gRU5BQkxFKFZJREVPX1BSRVNFTlRBVElPTl9NT0RFKQorCiBTdHJpbmcgSW5q
ZWN0ZWRCdW5kbGVQYWdlOjpkdW1wSGlzdG9yeSgpCiB7CiAgICAgcmV0dXJuIG1ha2VTdHJpbmco
CmRpZmYgLS1naXQgYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0luamVj
dGVkQnVuZGxlUGFnZS5oIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9J
bmplY3RlZEJ1bmRsZVBhZ2UuaAppbmRleCAzMTQ4OGE1MmI1Y2U1NTY5NjE2Y2JkOTFiOWEyMTk3
NTAzNDIxMTJlLi40NTIxZGRhMmFjOTU2ZmE5NjE0NmMxMTBmYjU4YTFkZGUyMTkzN2VjIDEwMDY0
NAotLS0gYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0luamVjdGVkQnVu
ZGxlUGFnZS5oCisrKyBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvSW5q
ZWN0ZWRCdW5kbGVQYWdlLmgKQEAgLTE0NSw2ICsxNDUsMjIgQEAgcHJpdmF0ZToKICAgICBzdGF0
aWMgdm9pZCBjbG9zZUZ1bGxTY3JlZW4oV0tCdW5kbGVQYWdlUmVmKTsKICNlbmRpZgogCisjaWYg
RU5BQkxFKFZJREVPX1BSRVNFTlRBVElPTl9NT0RFKQorICAgIHN0YXRpYyB2b2lkIHNldEhhc1Zp
ZGVvKFdLQnVuZGxlUGFnZVJlZiwgdWludDY0X3QgY29udGV4dElkLCBib29sIGhhc1ZpZGVvKTsK
KyAgICBzdGF0aWMgdm9pZCBzZXRWaWRlb0RpbWVuc2lvbnMoV0tCdW5kbGVQYWdlUmVmLCB1aW50
NjRfdCBjb250ZXh0SWQsIFdLU2l6ZSB2aWRlb0RpbWVuc2lvbnMpOworICAgIHN0YXRpYyB2b2lk
IHNldHVwRnVsbHNjcmVlbldpdGhJRChXS0J1bmRsZVBhZ2VSZWYsIHVpbnQ2NF90IGNvbnRleHRJ
ZCwgdWludDMyX3QgdmlkZW9MYXllcklkLCBXS1JlY3QgaW5pdGlhbFJlY3QsIGZsb2F0IGhvc3Rp
bmdTY2FsZUZhY3RvciwgV0tWaWRlb0Z1bGxzY3JlZW5Nb2RlLCBib29sIGFsbG93c1BpY3R1cmVJ
blBpY3R1cmUsIGJvb2wgc3RhbmRieSk7CisgICAgc3RhdGljIHZvaWQgZW50ZXJGdWxsc2NyZWVu
KFdLQnVuZGxlUGFnZVJlZiwgdWludDY0X3QgY29udGV4dElkKTsKKyAgICBzdGF0aWMgdm9pZCBl
eGl0RnVsbHNjcmVlbihXS0J1bmRsZVBhZ2VSZWYsIHVpbnQ2NF90IGNvbnRleHRJZCwgV0tSZWN0
IGZpbmFsUmVjdCk7CisgICAgc3RhdGljIHZvaWQgc2V0SW5saW5lUmVjdChXS0J1bmRsZVBhZ2VS
ZWYsIHVpbnQ2NF90IGNvbnRleHRJZCwgV0tSZWN0IGlubGluZVJlY3QsIGJvb2wgdmlzaWJsZSk7
CisgICAgc3RhdGljIHZvaWQgc2V0SGFzVmlkZW9Db250ZW50TGF5ZXIoV0tCdW5kbGVQYWdlUmVm
LCB1aW50NjRfdCBjb250ZXh0SWQsIGJvb2wgdmFsdWUpOworICAgIHN0YXRpYyB2b2lkIGNsZWFu
dXBGdWxsc2NyZWVuKFdLQnVuZGxlUGFnZVJlZiwgdWludDY0X3QgY29udGV4dElkKTsKKyAgICBz
dGF0aWMgdm9pZCBwcmVwYXJlZFRvUmV0dXJuVG9JbmxpbmUoV0tCdW5kbGVQYWdlUmVmLCB1aW50
NjRfdCBjb250ZXh0SWQsIGJvb2wgdmlzaWJsZSwgV0tSZWN0IGlubGluZVJlY3QpOworICAgIHN0
YXRpYyB2b2lkIHByZXBhcmVkVG9FeGl0RnVsbHNjcmVlbihXS0J1bmRsZVBhZ2VSZWYsIHVpbnQ2
NF90IGNvbnRleHRJZCk7CisjaWYgUExBVEZPUk0oTUFDKQorICAgIHN0YXRpYyB2b2lkIGV4aXRG
dWxsc2NyZWVuV2l0aG91dEFuaW1hdGlvblRvTW9kZShXS0J1bmRsZVBhZ2VSZWYsIHVpbnQ2NF90
IGNvbnRleHRJZCwgV0tWaWRlb0Z1bGxzY3JlZW5Nb2RlKTsKKyNlbmRpZgorI2VuZGlmIC8vIEVO
QUJMRShWSURFT19QUkVTRU5UQVRJT05fTU9ERSkKKwogICAgIC8vIEVkaXRvciBjbGllbnQKICAg
ICBzdGF0aWMgYm9vbCBzaG91bGRCZWdpbkVkaXRpbmcoV0tCdW5kbGVQYWdlUmVmLCBXS0J1bmRs
ZVJhbmdlSGFuZGxlUmVmLCBjb25zdCB2b2lkKiBjbGllbnRJbmZvKTsKICAgICBzdGF0aWMgYm9v
bCBzaG91bGRFbmRFZGl0aW5nKFdLQnVuZGxlUGFnZVJlZiwgV0tCdW5kbGVSYW5nZUhhbmRsZVJl
ZiwgY29uc3Qgdm9pZCogY2xpZW50SW5mbyk7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>396836</attachid>
            <date>2020-04-17 23:49:32 -0700</date>
            <delta_ts>2020-04-18 00:07:44 -0700</delta_ts>
            <desc>Fix build failures again</desc>
            <filename>bug-203723-20200417234931.patch</filename>
            <type>text/plain</type>
            <size>60342</size>
            <attacher name="Peng Liu">peng.liu6</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjYwMjkzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDExZjZlNzRiMWNiYmU4MGI4
N2YyNTU4MTE5NzkxYjYyODc5NmJjOWMuLjBmYTk0Y2E4NmZkYmUxZWQwNjFlMDg0NDcxOWQxYWMy
YjM3MDgzMDYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNjQgQEAKKzIwMjAtMDQtMTcgIFBlbmcgTGl1
ICA8cGVuZy5saXU2QGFwcGxlLmNvbT4KKworICAgICAgICBVcGRhdGUgV2ViS2l0VGVzdFJ1bm5l
ciB0byBzdXBwb3J0IHJ1bm5pbmcgbXVsdGlwbGUgdmlkZW8gZnVsbHNjcmVlbiBhbmQgUGljdHVy
ZS1pbi1QaWN0dXJlIHRlc3RzIHNpbXVsdGFuZW91c2x5CisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDM3MjMKKworICAgICAgICBSZXZpZXdlZCBieSBO
T0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGQgdGhlIGluamVjdGVkIGJ1bmRsZSBjbGllbnQg
c3VwcG9ydCBmb3IgdmlkZW8gZnVsbHNjcmVlbiByZWxhdGVkIGludGVyZmFjZXMgYmV0d2VlbiAK
KyAgICAgICAgdGhlIFdlYiBwcm9jZXNzIChWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyKSBhbmQgdGhl
IFVJIHByb2Nlc3MgKFZpZGVvRnVsbHNjcmVlbk1hbmFnZXJQcm94eSkuCisKKyAgICAgICAgKiBT
aGFyZWQvQVBJL2MvV0tTaGFyZWRBUElDYXN0Lmg6CisgICAgICAgIChXZWJLaXQ6OnRvQVBJKToK
KyAgICAgICAgKiBXZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBX
ZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9jL1dLQnVuZGxlUGFnZS5jcHA6CisgICAgICAg
IChXS0J1bmRsZVBhZ2VTZXRWaWRlb0Z1bGxzY3JlZW5DbGllbnQpOgorICAgICAgICAoV0tCdW5k
bGVQYWdlUmVxdWVzdFZpZGVvRnVsbHNjcmVlbk1vZGUpOgorICAgICAgICAoV0tCdW5kbGVQYWdl
UmVxdWVzdFZpZGVvQ29udGVudExheWVyKToKKyAgICAgICAgKFdLQnVuZGxlUGFnZURpZFNldHVw
VmlkZW9GdWxsc2NyZWVuKToKKyAgICAgICAgKFdLQnVuZGxlUGFnZURpZEVudGVyVmlkZW9GdWxs
c2NyZWVuKToKKyAgICAgICAgKFdLQnVuZGxlUGFnZVJldHVyblZpZGVvQ29udGVudExheWVyKToK
KyAgICAgICAgKFdLQnVuZGxlUGFnZURpZEV4aXRWaWRlb0Z1bGxzY3JlZW4pOgorICAgICAgICAo
V0tCdW5kbGVQYWdlRGlkQ2xlYW51cFZpZGVvRnVsbHNjcmVlbik6CisgICAgICAgICogV2ViUHJv
Y2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvYy9XS0J1bmRsZVBhZ2UuaDoKKyAgICAgICAgKiBXZWJQ
cm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9jL1dLQnVuZGxlUGFnZVZpZGVvRnVsbHNjcmVlbkNs
aWVudC5oOiBBZGRlZC4KKyAgICAgICAgKiBXZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0luamVj
dGVkQnVuZGxlUGFnZUZ1bGxTY3JlZW5DbGllbnQuY3BwOgorICAgICAgICAqIFdlYlByb2Nlc3Mv
SW5qZWN0ZWRCdW5kbGUvSW5qZWN0ZWRCdW5kbGVQYWdlRnVsbFNjcmVlbkNsaWVudC5oOgorICAg
ICAgICAqIFdlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvSW5qZWN0ZWRCdW5kbGVQYWdlVmlkZW9G
dWxsc2NyZWVuQ2xpZW50LmNwcDogQWRkZWQuCisgICAgICAgIChXZWJLaXQ6OkluamVjdGVkQnVu
ZGxlUGFnZVZpZGVvRnVsbHNjcmVlbkNsaWVudDo6c2V0SGFzVmlkZW8pOgorICAgICAgICAoV2Vi
S2l0OjpJbmplY3RlZEJ1bmRsZVBhZ2VWaWRlb0Z1bGxzY3JlZW5DbGllbnQ6OnNldFZpZGVvRGlt
ZW5zaW9ucyk6CisgICAgICAgIChXZWJLaXQ6OkluamVjdGVkQnVuZGxlUGFnZVZpZGVvRnVsbHNj
cmVlbkNsaWVudDo6c2V0dXBGdWxsc2NyZWVuV2l0aElEKToKKyAgICAgICAgKFdlYktpdDo6SW5q
ZWN0ZWRCdW5kbGVQYWdlVmlkZW9GdWxsc2NyZWVuQ2xpZW50OjplbnRlckZ1bGxzY3JlZW4pOgor
ICAgICAgICAoV2ViS2l0OjpJbmplY3RlZEJ1bmRsZVBhZ2VWaWRlb0Z1bGxzY3JlZW5DbGllbnQ6
OmV4aXRGdWxsc2NyZWVuKToKKyAgICAgICAgKFdlYktpdDo6SW5qZWN0ZWRCdW5kbGVQYWdlVmlk
ZW9GdWxsc2NyZWVuQ2xpZW50OjpzZXRJbmxpbmVSZWN0KToKKyAgICAgICAgKFdlYktpdDo6SW5q
ZWN0ZWRCdW5kbGVQYWdlVmlkZW9GdWxsc2NyZWVuQ2xpZW50OjpzZXRIYXNWaWRlb0NvbnRlbnRM
YXllcik6CisgICAgICAgIChXZWJLaXQ6OkluamVjdGVkQnVuZGxlUGFnZVZpZGVvRnVsbHNjcmVl
bkNsaWVudDo6Y2xlYW51cEZ1bGxzY3JlZW4pOgorICAgICAgICAoV2ViS2l0OjpJbmplY3RlZEJ1
bmRsZVBhZ2VWaWRlb0Z1bGxzY3JlZW5DbGllbnQ6OnByZXBhcmVkVG9SZXR1cm5Ub0lubGluZSk6
CisgICAgICAgIChXZWJLaXQ6OkluamVjdGVkQnVuZGxlUGFnZVZpZGVvRnVsbHNjcmVlbkNsaWVu
dDo6cHJlcGFyZWRUb0V4aXRGdWxsc2NyZWVuKToKKyAgICAgICAgKFdlYktpdDo6SW5qZWN0ZWRC
dW5kbGVQYWdlVmlkZW9GdWxsc2NyZWVuQ2xpZW50OjpleGl0RnVsbHNjcmVlbldpdGhvdXRBbmlt
YXRpb25Ub01vZGUpOgorICAgICAgICAqIFdlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvSW5qZWN0
ZWRCdW5kbGVQYWdlVmlkZW9GdWxsc2NyZWVuQ2xpZW50Lmg6IEFkZGVkLgorICAgICAgICAqIFdl
YlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZTo6
aW5pdGlhbGl6ZUluamVjdGVkQnVuZGxlVmlkZW9GdWxsc2NyZWVuQ2xpZW50KToKKyAgICAgICAg
KFdlYktpdDo6V2ViUGFnZTo6Y2xvc2UpOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9X
ZWJQYWdlLmg6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2U6OmluamVjdGVkQnVuZGxlVmlkZW9G
dWxsc2NyZWVuQ2xpZW50KToKKyAgICAgICAgKiBXZWJQcm9jZXNzL2NvY29hL1ZpZGVvRnVsbHNj
cmVlbk1hbmFnZXIuaDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL2NvY29hL1ZpZGVvRnVsbHNjcmVl
bk1hbmFnZXIubW06CisgICAgICAgIChXZWJLaXQ6OlZpZGVvRnVsbHNjcmVlbk1hbmFnZXI6OmVu
dGVyVmlkZW9GdWxsc2NyZWVuRm9yVmlkZW9FbGVtZW50KToKKyAgICAgICAgKFdlYktpdDo6Vmlk
ZW9GdWxsc2NyZWVuTWFuYWdlcjo6ZXhpdFZpZGVvRnVsbHNjcmVlbkZvclZpZGVvRWxlbWVudCk6
CisgICAgICAgIChXZWJLaXQ6OlZpZGVvRnVsbHNjcmVlbk1hbmFnZXI6OmV4aXRWaWRlb0Z1bGxz
Y3JlZW5Ub01vZGVXaXRob3V0QW5pbWF0aW9uKToKKyAgICAgICAgKFdlYktpdDo6VmlkZW9GdWxs
c2NyZWVuTWFuYWdlcjo6aGFzVmlkZW9DaGFuZ2VkKToKKyAgICAgICAgKFdlYktpdDo6VmlkZW9G
dWxsc2NyZWVuTWFuYWdlcjo6dmlkZW9EaW1lbnNpb25zQ2hhbmdlZCk6CisgICAgICAgIChXZWJL
aXQ6OlZpZGVvRnVsbHNjcmVlbk1hbmFnZXI6OnJlcXVlc3RVcGRhdGVJbmxpbmVSZWN0KToKKyAg
ICAgICAgKFdlYktpdDo6VmlkZW9GdWxsc2NyZWVuTWFuYWdlcjo6cmVxdWVzdFZpZGVvQ29udGVu
dExheWVyKToKKyAgICAgICAgKFdlYktpdDo6VmlkZW9GdWxsc2NyZWVuTWFuYWdlcjo6cmV0dXJu
VmlkZW9Db250ZW50TGF5ZXIpOgorICAgICAgICAoV2ViS2l0OjpWaWRlb0Z1bGxzY3JlZW5NYW5h
Z2VyOjpkaWRTZXR1cEZ1bGxzY3JlZW4pOgorICAgICAgICAoV2ViS2l0OjpWaWRlb0Z1bGxzY3Jl
ZW5NYW5hZ2VyOjp3aWxsRXhpdEZ1bGxzY3JlZW4pOgorICAgICAgICAoV2ViS2l0OjpWaWRlb0Z1
bGxzY3JlZW5NYW5hZ2VyOjpkaWRFbnRlckZ1bGxzY3JlZW4pOgorICAgICAgICAoV2ViS2l0OjpW
aWRlb0Z1bGxzY3JlZW5NYW5hZ2VyOjpkaWRFeGl0RnVsbHNjcmVlbik6CisgICAgICAgIChXZWJL
aXQ6OlZpZGVvRnVsbHNjcmVlbk1hbmFnZXI6OmRpZENsZWFudXBGdWxsc2NyZWVuKToKKyAgICAg
ICAgKFdlYktpdDo6VmlkZW9GdWxsc2NyZWVuTWFuYWdlcjo6ZnVsbHNjcmVlbk1heVJldHVyblRv
SW5saW5lKToKKwogMjAyMC0wNC0xNyAgRGF2aWQgS2lsemVyICA8ZGRraWx6ZXJAYXBwbGUuY29t
PgogCiAgICAgICAgIFJFR1JFU1NJT04gKHIyMzQxMDUpOiBbaU9TXSBXS0NvbG9yQnV0dG9uIGxl
YWtzIGEgVUlDb2xvcgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvQVBJL2MvV0tT
aGFyZWRBUElDYXN0LmggYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9BUEkvYy9XS1NoYXJlZEFQSUNh
c3QuaAppbmRleCAzN2M3ZDk2NjQyODJhZjM5NDhiNWZhMDA2ZmM4NTA0OTQ3N2E5NDgwLi4wNTU0
MjE1NmVkYWFiZDQ2YmYwYjdiNzJlYTI3Mjg0ODUwNjIzYjdiIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L1NoYXJlZC9BUEkvYy9XS1NoYXJlZEFQSUNhc3QuaAorKysgYi9Tb3VyY2UvV2ViS2l0
L1NoYXJlZC9BUEkvYy9XS1NoYXJlZEFQSUNhc3QuaApAQCAtMjQ5LDYgKzI0OSwxNCBAQCBpbmxp
bmUgV0tSZWN0IHRvQVBJKGNvbnN0IFdlYkNvcmU6OkZsb2F0UmVjdCYgcmVjdCkKICAgICByZXR1
cm4gd2tSZWN0OwogfQogCitpbmxpbmUgV0tTaXplIHRvQVBJKGNvbnN0IFdlYkNvcmU6OkZsb2F0
U2l6ZSYgc2l6ZSkKK3sKKyAgICBXS1NpemUgd2tTaXplOworICAgIHdrU2l6ZS53aWR0aCA9IHNp
emUud2lkdGgoKTsKKyAgICB3a1NpemUuaGVpZ2h0ID0gc2l6ZS5oZWlnaHQoKTsKKyAgICByZXR1
cm4gd2tTaXplOworfQorCiBpbmxpbmUgV0tSZWN0IHRvQVBJKGNvbnN0IFdlYkNvcmU6OkludFJl
Y3QmIHJlY3QpCiB7CiAgICAgV0tSZWN0IHdrUmVjdDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvV2ViS2l0L1dlYktp
dC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IDZlNDdiNmU5MmYwMmE5NWYzMzc2Yjhh
NzA1ZGZiMTExYWY4YTY4NDkuLjEyN2M3ODRjNDA5Yjc4MTk4MzE2OGVhODY1ZTFkMTJlNDBkMzk5
ZGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBi
eHByb2oKKysrIGIvU291cmNlL1dlYktpdC9XZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJv
agpAQCAtNDE3LDYgKzQxNyw5IEBACiAJCTFENEQ3MzcxMjNBOUU1NjIwMDcxN0EyNSAvKiBSZW1v
dGVNZWRpYVJlc291cmNlTWFuYWdlck1lc3NhZ2VzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxRDRENzM2QzIzQTlERjYwMDA3MTdBMjUgLyogUmVtb3Rl
TWVkaWFSZXNvdXJjZU1hbmFnZXJNZXNzYWdlcy5oICovOyB9OwogCQkxRDRENzM3NjIzQTlFRDE4
MDA3MTdBMjUgLyogUmVtb3RlTWVkaWFSZXNvdXJjZU1hbmFnZXJNZXNzYWdlc1JlcGxpZXMuaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDFENEQ3Mzc1MjNB
OUVCNjgwMDcxN0EyNSAvKiBSZW1vdGVNZWRpYVJlc291cmNlTWFuYWdlck1lc3NhZ2VzUmVwbGll
cy5oICovOyB9OwogCQkxRDY3QjMzOTIxMkUxRjYxMDBGQUE3ODYgLyogU2hhcmVTaGVldENhbGxi
YWNrSUQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDFE
NjdCMzM4MjEyRTFGNjEwMEZBQTc4NiAvKiBTaGFyZVNoZWV0Q2FsbGJhY2tJRC5oICovOyB9Owor
CQkxREFBNTJDMDI0Mzk2ODMxMDAxQTMxNTkgLyogSW5qZWN0ZWRCdW5kbGVQYWdlVmlkZW9GdWxs
c2NyZWVuQ2xpZW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSAxREFBNTJCRTI0Mzk2ODMxMDAxQTMxNTkgLyogSW5qZWN0ZWRCdW5kbGVQYWdlVmlkZW9G
dWxsc2NyZWVuQ2xpZW50LmggKi87IH07CisJCTFEQUE1MkMxMjQzOTY4MzEwMDFBMzE1OSAvKiBJ
bmplY3RlZEJ1bmRsZVBhZ2VWaWRlb0Z1bGxzY3JlZW5DbGllbnQuY3BwIGluIFNvdXJjZXMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMURBQTUyQkYyNDM5NjgzMTAwMUEzMTU5
IC8qIEluamVjdGVkQnVuZGxlUGFnZVZpZGVvRnVsbHNjcmVlbkNsaWVudC5jcHAgKi87IH07CisJ
CTFEQUE1MkMzMjQzOTZFNkQwMDFBMzE1OSAvKiBXS0J1bmRsZVBhZ2VWaWRlb0Z1bGxzY3JlZW5D
bGllbnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDFE
QUE1MkMyMjQzOTZFNkQwMDFBMzE1OSAvKiBXS0J1bmRsZVBhZ2VWaWRlb0Z1bGxzY3JlZW5DbGll
bnQuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQkx
REIwMTk0MzIxMUNGMDAyMDA5RkIzRTggLyogV0tTaGFyZVNoZWV0LmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxREUwRDA5NTIxMUNDMjEzMDA0MzlCNUYg
LyogV0tTaGFyZVNoZWV0LmggKi87IH07CiAJCTFEQjAxOTQ0MjExQ0YwMDUwMDlGQjNFOCAvKiBX
S1NoYXJlU2hlZXQubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSAxREJCQjA2MTIxMUNDM0NCMDA1MDJFQ0MgLyogV0tTaGFyZVNoZWV0Lm1tICovOyB9Owog
CQkxRjMzNUJDMDE4NUI4NEYwMDAxQTIwMUEgLyogV0tXZWJQcm9jZXNzUGx1Z0luTG9hZERlbGVn
YXRlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxRjMz
NUJCRjE4NUI4NEQ4MDAxQTIwMUEgLyogV0tXZWJQcm9jZXNzUGx1Z0luTG9hZERlbGVnYXRlLmgg
Ki87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKQEAgLTI3NDIs
NiArMjc0NSw5IEBACiAJCTFEOTdFQzdEMjQwODk4RDIwMDQ2NkZGQSAvKiBNZWRpYVBsYXllclBy
aXZhdGVSZW1vdGVDb2NvYS5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBleHBsaWNp
dEZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gTWVkaWFQbGF5ZXJQcml2
YXRlUmVtb3RlQ29jb2EubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTFEQTQwODk0
MjNBODBBM0UwMDU4Qzk1MCAvKiBSZW1vdGVNZWRpYVJlc291cmNlTWFuYWdlci5oICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7
IHBhdGggPSBSZW1vdGVNZWRpYVJlc291cmNlTWFuYWdlci5oOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwogCQkxREE0MDg5RTIzQTgyNzc4MDA1OEM5NTAgLyogUmVtb3RlTWVkaWFSZXNvdXJj
ZU1hbmFnZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gUmVtb3RlTWVkaWFSZXNvdXJjZU1hbmFn
ZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkxREFBNTJCRTI0Mzk2ODMxMDAx
QTMxNTkgLyogSW5qZWN0ZWRCdW5kbGVQYWdlVmlkZW9GdWxsc2NyZWVuQ2xpZW50LmggKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMu
aDsgcGF0aCA9IEluamVjdGVkQnVuZGxlUGFnZVZpZGVvRnVsbHNjcmVlbkNsaWVudC5oOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OworCQkxREFBNTJCRjI0Mzk2ODMxMDAxQTMxNTkgLyogSW5q
ZWN0ZWRCdW5kbGVQYWdlVmlkZW9GdWxsc2NyZWVuQ2xpZW50LmNwcCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0
aCA9IEluamVjdGVkQnVuZGxlUGFnZVZpZGVvRnVsbHNjcmVlbkNsaWVudC5jcHA7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CisJCTFEQUE1MkMyMjQzOTZFNkQwMDFBMzE1OSAvKiBXS0J1bmRs
ZVBhZ2VWaWRlb0Z1bGxzY3JlZW5DbGllbnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBw
YXRoID0gV0tCdW5kbGVQYWdlVmlkZW9GdWxsc2NyZWVuQ2xpZW50Lmg7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CiAJCTFEQkJCMDYxMjExQ0MzQ0IwMDUwMkVDQyAvKiBXS1NoYXJlU2hlZXQu
bW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBXS1NoYXJlU2hlZXQu
bW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTFERTBEMDk1MjExQ0MyMTMwMDQzOUI1
RiAvKiBXS1NoYXJlU2hlZXQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV0tT
aGFyZVNoZWV0Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTFERTJERkFDMjNBOTU5
RjgwMDNFMDEzQSAvKiBSZW1vdGVNZWRpYVJlc291cmNlSWRlbnRpZmllci5oICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBh
dGggPSBSZW1vdGVNZWRpYVJlc291cmNlSWRlbnRpZmllci5oOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwpAQCAtOTQzNyw2ICs5NDQzLDggQEAKIAkJCQk2NTQ2QTgyQTEzMDAwMTY0MDAwQ0VC
MUMgLyogSW5qZWN0ZWRCdW5kbGVQYWdlUmVzb3VyY2VMb2FkQ2xpZW50LmggKi8sCiAJCQkJQkNB
OEM2QUQxMUUzQzA4NzAwODEyRkI3IC8qIEluamVjdGVkQnVuZGxlUGFnZVVJQ2xpZW50LmNwcCAq
LywKIAkJCQlCQ0E4QzZBRTExRTNDMDg3MDA4MTJGQjcgLyogSW5qZWN0ZWRCdW5kbGVQYWdlVUlD
bGllbnQuaCAqLywKKwkJCQkxREFBNTJCRjI0Mzk2ODMxMDAxQTMxNTkgLyogSW5qZWN0ZWRCdW5k
bGVQYWdlVmlkZW9GdWxsc2NyZWVuQ2xpZW50LmNwcCAqLywKKwkJCQkxREFBNTJCRTI0Mzk2ODMx
MDAxQTMxNTkgLyogSW5qZWN0ZWRCdW5kbGVQYWdlVmlkZW9GdWxsc2NyZWVuQ2xpZW50LmggKi8s
CiAJCQkJQkMxNERGNzYxMjBCNUI3OTAwODI2QzBDIC8qIEluamVjdGVkQnVuZGxlU2NyaXB0V29y
bGQuY3BwICovLAogCQkJCUJDMTRERjc1MTIwQjVCNzkwMDgyNkMwQyAvKiBJbmplY3RlZEJ1bmRs
ZVNjcmlwdFdvcmxkLmggKi8sCiAJCQkpOwpAQCAtOTUxMSw2ICs5NTE5LDcgQEAKIAkJCQlCQzFC
NDE5NzExRDQxRDU3MDAxMUU4REQgLyogV0tCdW5kbGVQYWdlUHJpdmF0ZS5oICovLAogCQkJCTFB
QjQ3NEQ5MTg0RDQ0MjUwMDUxQjYyMiAvKiBXS0J1bmRsZVBhZ2VSZXNvdXJjZUxvYWRDbGllbnQu
aCAqLywKIAkJCQkxQUI0NzRERDE4NEQ0NDU5MDA1MUI2MjIgLyogV0tCdW5kbGVQYWdlVUlDbGll
bnQuaCAqLywKKwkJCQkxREFBNTJDMjI0Mzk2RTZEMDAxQTMxNTkgLyogV0tCdW5kbGVQYWdlVmlk
ZW9GdWxsc2NyZWVuQ2xpZW50LmggKi8sCiAJCQkJQkNGMDQ5RTUxMUZFMjBGNjAwRjg2QTU4IC8q
IFdLQnVuZGxlUHJpdmF0ZS5oICovLAogCQkJCUJDNjBDNTc4MTI0MEE1NDYwMDhDNUUyOSAvKiBX
S0J1bmRsZVJhbmdlSGFuZGxlLmNwcCAqLywKIAkJCQlCQzYwQzU3NzEyNDBBNTQ2MDA4QzVFMjkg
LyogV0tCdW5kbGVSYW5nZUhhbmRsZS5oICovLApAQCAtMTA3OTksNiArMTA4MDgsNyBAQAogCQkJ
CUJDQThDNkE5MTFFM0JBNUYwMDgxMkZCNyAvKiBJbmplY3RlZEJ1bmRsZVBhZ2VMb2FkZXJDbGll
bnQuaCBpbiBIZWFkZXJzICovLAogCQkJCUJDODE0N0E5MTJGNjRDREEwMDdCMkMzMiAvKiBJbmpl
Y3RlZEJ1bmRsZVBhZ2VQb2xpY3lDbGllbnQuaCBpbiBIZWFkZXJzICovLAogCQkJCUJDQThDNkIw
MTFFM0MwODcwMDgxMkZCNyAvKiBJbmplY3RlZEJ1bmRsZVBhZ2VVSUNsaWVudC5oIGluIEhlYWRl
cnMgKi8sCisJCQkJMURBQTUyQzAyNDM5NjgzMTAwMUEzMTU5IC8qIEluamVjdGVkQnVuZGxlUGFn
ZVZpZGVvRnVsbHNjcmVlbkNsaWVudC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQkMzM0UwRDExMjQw
OEU4NjAwMzYwRjNGIC8qIEluamVjdGVkQnVuZGxlUmFuZ2VIYW5kbGUuaCBpbiBIZWFkZXJzICov
LAogCQkJCUJDMTRERjc3MTIwQjVCNzkwMDgyNkMwQyAvKiBJbmplY3RlZEJ1bmRsZVNjcmlwdFdv
cmxkLmggaW4gSGVhZGVycyAqLywKIAkJCQkyREQ0NUFERTFFNUY4OTcyMDA2QzM1NUYgLyogSW5w
dXRWaWV3VXBkYXRlRGVmZXJyZXIuaCBpbiBIZWFkZXJzICovLApAQCAtMTE0MzYsNiArMTE0NDYs
NyBAQAogCQkJCUJDMUI0MTk4MTFENDFENTcwMDExRThERCAvKiBXS0J1bmRsZVBhZ2VQcml2YXRl
LmggaW4gSGVhZGVycyAqLywKIAkJCQkxQUI0NzREQTE4NEQ0NDI1MDA1MUI2MjIgLyogV0tCdW5k
bGVQYWdlUmVzb3VyY2VMb2FkQ2xpZW50LmggaW4gSGVhZGVycyAqLywKIAkJCQkxQUI0NzRERTE4
NEQ0NDU5MDA1MUI2MjIgLyogV0tCdW5kbGVQYWdlVUlDbGllbnQuaCBpbiBIZWFkZXJzICovLAor
CQkJCTFEQUE1MkMzMjQzOTZFNkQwMDFBMzE1OSAvKiBXS0J1bmRsZVBhZ2VWaWRlb0Z1bGxzY3Jl
ZW5DbGllbnQuaCBpbiBIZWFkZXJzICovLAogCQkJCUJDRjA0OUU3MTFGRTIwRjYwMEY4NkE1OCAv
KiBXS0J1bmRsZVByaXZhdGUuaCBpbiBIZWFkZXJzICovLAogCQkJCUJDNjBDNTc5MTI0MEE1NDYw
MDhDNUUyOSAvKiBXS0J1bmRsZVJhbmdlSGFuZGxlLmggaW4gSGVhZGVycyAqLywKIAkJCQlCQzVE
MjRDNzE2Q0Q3M0M1MDA3RDU0NjEgLyogV0tCdW5kbGVSYW5nZUhhbmRsZVByaXZhdGUuaCBpbiBI
ZWFkZXJzICovLApAQCAtMTI2NjYsNiArMTI2NzcsNyBAQAogCQkJCTFBQTU3NjAyMTQ5NkI5Nzkw
MEE0RUUwNiAvKiBFdmVudERpc3BhdGNoZXJNZXNzYWdlUmVjZWl2ZXIuY3BwIGluIFNvdXJjZXMg
Ki8sCiAJCQkJQ0RBOTNEQjEyMkY4QkNGNDAwNDkwQTY5IC8qIEZ1bGxzY3JlZW5Ub3VjaFNlY2hl
dXJpc3RpY1BhcmFtZXRlcnMuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMjc0OUY2NDQyMTQ2NTYx
QjAwODM4MEJGIC8qIEluamVjdGVkQnVuZGxlTm9kZUhhbmRsZS5jcHAgaW4gU291cmNlcyAqLywK
KwkJCQkxREFBNTJDMTI0Mzk2ODMxMDAxQTMxNTkgLyogSW5qZWN0ZWRCdW5kbGVQYWdlVmlkZW9G
dWxsc2NyZWVuQ2xpZW50LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTI3NDlGNjQ1MjE0NjU2MUUw
MDgzODBCRiAvKiBJbmplY3RlZEJ1bmRsZVJhbmdlSGFuZGxlLmNwcCBpbiBTb3VyY2VzICovLAog
CQkJCTJEOTEzNDQxMjEyQ0Y5RjAwMDEyOEFGRCAvKiBKU05QTWV0aG9kLmNwcCBpbiBTb3VyY2Vz
ICovLAogCQkJCTJEOTEzNDQyMjEyQ0Y5RjAwMDEyOEFGRCAvKiBKU05QT2JqZWN0LmNwcCBpbiBT
b3VyY2VzICovLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVk
QnVuZGxlL0FQSS9jL1dLQnVuZGxlUGFnZS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
SW5qZWN0ZWRCdW5kbGUvQVBJL2MvV0tCdW5kbGVQYWdlLmNwcAppbmRleCBlOTM5YTRlM2VkNTY3
YzYyNTBlYjUwODFkMmM0ZmNmMGJlZGQ1YzMzLi4zYzA0YTNiNjcyOTYyYjc1YjU5NTZmYWIwOTEz
ZmI2MGVjYWI4M2Y4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0
ZWRCdW5kbGUvQVBJL2MvV0tCdW5kbGVQYWdlLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2MvV0tCdW5kbGVQYWdlLmNwcApAQCAtNzQsNiArNzQs
MTAgQEAKICNpbmNsdWRlIDx3dGYvU3RkTGliRXh0cmFzLmg+CiAjaW5jbHVkZSA8d3RmL1VSTC5o
PgogCisjaWYgRU5BQkxFKFZJREVPX1BSRVNFTlRBVElPTl9NT0RFKQorI2luY2x1ZGUgIlZpZGVv
RnVsbHNjcmVlbk1hbmFnZXIuaCIKKyNlbmRpZgorCiBXS1R5cGVJRCBXS0J1bmRsZVBhZ2VHZXRU
eXBlSUQoKQogewogICAgIHJldHVybiBXZWJLaXQ6OnRvQVBJKFdlYktpdDo6V2ViUGFnZTo6QVBJ
VHlwZSk7CkBAIC0xNjUsNiArMTY5LDg4IEBAIHZvaWQgV0tCdW5kbGVQYWdlRGlkRXhpdEZ1bGxT
Y3JlZW4oV0tCdW5kbGVQYWdlUmVmIHBhZ2VSZWYpCiAjZW5kaWYKIH0KIAordm9pZCBXS0J1bmRs
ZVBhZ2VTZXRWaWRlb0Z1bGxzY3JlZW5DbGllbnQoV0tCdW5kbGVQYWdlUmVmIHBhZ2UsIFdLQnVu
ZGxlUGFnZVZpZGVvRnVsbHNjcmVlbkNsaWVudEJhc2UqIHdrQ2xpZW50KQoreworI2lmIEVOQUJM
RShWSURFT19QUkVTRU5UQVRJT05fTU9ERSkKKyAgICBXZWJLaXQ6OnRvSW1wbChwYWdlKS0+aW5p
dGlhbGl6ZUluamVjdGVkQnVuZGxlVmlkZW9GdWxsc2NyZWVuQ2xpZW50KHdrQ2xpZW50KTsKKyNl
bHNlCisgICAgVU5VU0VEX1BBUkFNKHBhZ2UpOworICAgIFVOVVNFRF9QQVJBTSh3a0NsaWVudCk7
CisjZW5kaWYKK30KKwordm9pZCBXS0J1bmRsZVBhZ2VSZXF1ZXN0VmlkZW9GdWxsc2NyZWVuTW9k
ZShXS0J1bmRsZVBhZ2VSZWYgcGFnZSwgdWludDY0X3QgY29udGV4dElkLCBXS1ZpZGVvRnVsbHNj
cmVlbk1vZGUgbW9kZSwgYm9vbCBmaW5pc2hlZFdpdGhNZWRpYSkKK3sKKyNpZiBFTkFCTEUoVklE
RU9fUFJFU0VOVEFUSU9OX01PREUpCisgICAgV2ViS2l0Ojp0b0ltcGwocGFnZSktPnZpZGVvRnVs
bHNjcmVlbk1hbmFnZXIoKS5yZXF1ZXN0RnVsbHNjcmVlbk1vZGUoY29udGV4dElkLCBtb2RlLCBm
aW5pc2hlZFdpdGhNZWRpYSk7CisjZWxzZQorICAgIFVOVVNFRF9QQVJBTShwYWdlKTsKKyAgICBV
TlVTRURfUEFSQU0oY29udGV4dElkKTsKKyAgICBVTlVTRURfUEFSQU0obW9kZSk7CisgICAgVU5V
U0VEX1BBUkFNKGZpbmlzaGVkV2l0aE1lZGlhKTsKKyNlbmRpZgorfQorCit2b2lkIFdLQnVuZGxl
UGFnZVJlcXVlc3RWaWRlb0NvbnRlbnRMYXllcihXS0J1bmRsZVBhZ2VSZWYgcGFnZSwgdWludDY0
X3QgY29udGV4dElkKQoreworI2lmIEVOQUJMRShWSURFT19QUkVTRU5UQVRJT05fTU9ERSkKKyAg
ICBXZWJLaXQ6OnRvSW1wbChwYWdlKS0+dmlkZW9GdWxsc2NyZWVuTWFuYWdlcigpLnJlcXVlc3RW
aWRlb0NvbnRlbnRMYXllcihjb250ZXh0SWQpOworI2Vsc2UKKyAgICBVTlVTRURfUEFSQU0ocGFn
ZSk7CisgICAgVU5VU0VEX1BBUkFNKGNvbnRleHRJZCk7CisjZW5kaWYKK30KKwordm9pZCBXS0J1
bmRsZVBhZ2VEaWRTZXR1cFZpZGVvRnVsbHNjcmVlbihXS0J1bmRsZVBhZ2VSZWYgcGFnZSwgdWlu
dDY0X3QgY29udGV4dElkKQoreworI2lmIEVOQUJMRShWSURFT19QUkVTRU5UQVRJT05fTU9ERSkK
KyAgICBXZWJLaXQ6OnRvSW1wbChwYWdlKS0+dmlkZW9GdWxsc2NyZWVuTWFuYWdlcigpLmRpZFNl
dHVwRnVsbHNjcmVlbihjb250ZXh0SWQpOworI2Vsc2UKKyAgICBVTlVTRURfUEFSQU0ocGFnZSk7
CisgICAgVU5VU0VEX1BBUkFNKGNvbnRleHRJZCk7CisjZW5kaWYKK30KKwordm9pZCBXS0J1bmRs
ZVBhZ2VEaWRFbnRlclZpZGVvRnVsbHNjcmVlbihXS0J1bmRsZVBhZ2VSZWYgcGFnZSwgdWludDY0
X3QgY29udGV4dElkKQoreworI2lmIEVOQUJMRShWSURFT19QUkVTRU5UQVRJT05fTU9ERSkKKyAg
ICBXZWJLaXQ6OnRvSW1wbChwYWdlKS0+dmlkZW9GdWxsc2NyZWVuTWFuYWdlcigpLmRpZEVudGVy
RnVsbHNjcmVlbihjb250ZXh0SWQpOworI2Vsc2UKKyAgICBVTlVTRURfUEFSQU0ocGFnZSk7Cisg
ICAgVU5VU0VEX1BBUkFNKGNvbnRleHRJZCk7CisjZW5kaWYKK30KKwordm9pZCBXS0J1bmRsZVBh
Z2VSZXR1cm5WaWRlb0NvbnRlbnRMYXllcihXS0J1bmRsZVBhZ2VSZWYgcGFnZSwgdWludDY0X3Qg
Y29udGV4dElkKQoreworI2lmIEVOQUJMRShWSURFT19QUkVTRU5UQVRJT05fTU9ERSkKKyAgICBX
ZWJLaXQ6OnRvSW1wbChwYWdlKS0+dmlkZW9GdWxsc2NyZWVuTWFuYWdlcigpLnJldHVyblZpZGVv
Q29udGVudExheWVyKGNvbnRleHRJZCk7CisjZWxzZQorICAgIFVOVVNFRF9QQVJBTShwYWdlKTsK
KyAgICBVTlVTRURfUEFSQU0oY29udGV4dElkKTsKKyNlbmRpZgorfQorCit2b2lkIFdLQnVuZGxl
UGFnZURpZEV4aXRWaWRlb0Z1bGxzY3JlZW4oV0tCdW5kbGVQYWdlUmVmIHBhZ2UsIHVpbnQ2NF90
IGNvbnRleHRJZCkKK3sKKyNpZiBFTkFCTEUoVklERU9fUFJFU0VOVEFUSU9OX01PREUpCisgICAg
V2ViS2l0Ojp0b0ltcGwocGFnZSktPnZpZGVvRnVsbHNjcmVlbk1hbmFnZXIoKS5kaWRFeGl0RnVs
bHNjcmVlbihjb250ZXh0SWQpOworI2Vsc2UKKyAgICBVTlVTRURfUEFSQU0ocGFnZSk7CisgICAg
VU5VU0VEX1BBUkFNKGNvbnRleHRJZCk7CisjZW5kaWYKK30KKwordm9pZCBXS0J1bmRsZVBhZ2VE
aWRDbGVhbnVwVmlkZW9GdWxsc2NyZWVuKFdLQnVuZGxlUGFnZVJlZiBwYWdlLCB1aW50NjRfdCBj
b250ZXh0SWQpCit7CisjaWYgRU5BQkxFKFZJREVPX1BSRVNFTlRBVElPTl9NT0RFKQorICAgIFdl
YktpdDo6dG9JbXBsKHBhZ2UpLT52aWRlb0Z1bGxzY3JlZW5NYW5hZ2VyKCkuZGlkQ2xlYW51cEZ1
bGxzY3JlZW4oY29udGV4dElkKTsKKyNlbHNlCisgICAgVU5VU0VEX1BBUkFNKHBhZ2UpOworICAg
IFVOVVNFRF9QQVJBTShjb250ZXh0SWQpOworI2VuZGlmCit9CisKIFdLQnVuZGxlUGFnZUdyb3Vw
UmVmIFdLQnVuZGxlUGFnZUdldFBhZ2VHcm91cChXS0J1bmRsZVBhZ2VSZWYgcGFnZVJlZikKIHsK
ICAgICByZXR1cm4gdG9BUEkoV2ViS2l0Ojp0b0ltcGwocGFnZVJlZiktPnBhZ2VHcm91cCgpKTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkv
Yy9XS0J1bmRsZVBhZ2UuaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRs
ZS9BUEkvYy9XS0J1bmRsZVBhZ2UuaAppbmRleCA0ZjgzYjhlZjBjODAyYmNjMWIzZDdiY2Y5NDJj
ZWFlYTE0N2VhYWNmLi4zOGVhYTZhZmU3OGQ1ZmUzMmQ4MWViMjQ2MTVlYTRkNmNmMjFkODgxIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2Mv
V0tCdW5kbGVQYWdlLmgKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVu
ZGxlL0FQSS9jL1dLQnVuZGxlUGFnZS5oCkBAIC0zNiw2ICszNiw3IEBACiAjaW5jbHVkZSA8V2Vi
S2l0L1dLQnVuZGxlUGFnZVBvbGljeUNsaWVudC5oPgogI2luY2x1ZGUgPFdlYktpdC9XS0J1bmRs
ZVBhZ2VSZXNvdXJjZUxvYWRDbGllbnQuaD4KICNpbmNsdWRlIDxXZWJLaXQvV0tCdW5kbGVQYWdl
VUlDbGllbnQuaD4KKyNpbmNsdWRlIDxXZWJLaXQvV0tCdW5kbGVQYWdlVmlkZW9GdWxsc2NyZWVu
Q2xpZW50Lmg+CiAjaW5jbHVkZSA8V2ViS2l0L1dLRGVwcmVjYXRlZC5oPgogI2luY2x1ZGUgPFdl
YktpdC9XS0ZpbmRPcHRpb25zLmg+CiAjaW5jbHVkZSA8V2ViS2l0L1dLSW1hZ2UuaD4KQEAgLTU1
LDYgKzU2LDE0IEBAIFdLX0VYUE9SVCB2b2lkIFdLQnVuZGxlUGFnZURpZEVudGVyRnVsbFNjcmVl
bihXS0J1bmRsZVBhZ2VSZWYgcGFnZSk7CiBXS19FWFBPUlQgdm9pZCBXS0J1bmRsZVBhZ2VXaWxs
RXhpdEZ1bGxTY3JlZW4oV0tCdW5kbGVQYWdlUmVmIHBhZ2UpOwogV0tfRVhQT1JUIHZvaWQgV0tC
dW5kbGVQYWdlRGlkRXhpdEZ1bGxTY3JlZW4oV0tCdW5kbGVQYWdlUmVmIHBhZ2UpOwogCitXS19F
WFBPUlQgdm9pZCBXS0J1bmRsZVBhZ2VSZXF1ZXN0VmlkZW9GdWxsc2NyZWVuTW9kZShXS0J1bmRs
ZVBhZ2VSZWYgcGFnZSwgdWludDY0X3QgY29udGV4dElkLCBXS1ZpZGVvRnVsbHNjcmVlbk1vZGUg
bW9kZSwgYm9vbCBmaW5pc2hlZFdpdGhNZWRpYSk7CitXS19FWFBPUlQgdm9pZCBXS0J1bmRsZVBh
Z2VSZXF1ZXN0VmlkZW9Db250ZW50TGF5ZXIoV0tCdW5kbGVQYWdlUmVmIHBhZ2UsIHVpbnQ2NF90
IGNvbnRleHRJZCk7CitXS19FWFBPUlQgdm9pZCBXS0J1bmRsZVBhZ2VSZXR1cm5WaWRlb0NvbnRl
bnRMYXllcihXS0J1bmRsZVBhZ2VSZWYgcGFnZSwgdWludDY0X3QgY29udGV4dElkKTsKK1dLX0VY
UE9SVCB2b2lkIFdLQnVuZGxlUGFnZURpZFNldHVwVmlkZW9GdWxsc2NyZWVuKFdLQnVuZGxlUGFn
ZVJlZiBwYWdlLCB1aW50NjRfdCBjb250ZXh0SWQpOworV0tfRVhQT1JUIHZvaWQgV0tCdW5kbGVQ
YWdlRGlkRW50ZXJWaWRlb0Z1bGxzY3JlZW4oV0tCdW5kbGVQYWdlUmVmIHBhZ2UsIHVpbnQ2NF90
IGNvbnRleHRJZCk7CitXS19FWFBPUlQgdm9pZCBXS0J1bmRsZVBhZ2VEaWRFeGl0VmlkZW9GdWxs
c2NyZWVuKFdLQnVuZGxlUGFnZVJlZiBwYWdlLCB1aW50NjRfdCBjb250ZXh0SWQpOworV0tfRVhQ
T1JUIHZvaWQgV0tCdW5kbGVQYWdlRGlkQ2xlYW51cFZpZGVvRnVsbHNjcmVlbihXS0J1bmRsZVBh
Z2VSZWYgcGFnZSwgdWludDY0X3QgY29udGV4dElkKTsKKwogV0tfRVhQT1JUIFdLVHlwZUlEIFdL
QnVuZGxlUGFnZUdldFR5cGVJRCgpOwogCiBXS19FWFBPUlQgdm9pZCBXS0J1bmRsZVBhZ2VTZXRD
b250ZXh0TWVudUNsaWVudChXS0J1bmRsZVBhZ2VSZWYgcGFnZSwgV0tCdW5kbGVQYWdlQ29udGV4
dE1lbnVDbGllbnRCYXNlKiBjbGllbnQpOwpAQCAtNjUsNiArNzQsNyBAQCBXS19FWFBPUlQgdm9p
ZCBXS0J1bmRsZVBhZ2VTZXRSZXNvdXJjZUxvYWRDbGllbnQoV0tCdW5kbGVQYWdlUmVmIHBhZ2Us
IFdLQnVuZGxlUAogV0tfRVhQT1JUIHZvaWQgV0tCdW5kbGVQYWdlU2V0UG9saWN5Q2xpZW50KFdL
QnVuZGxlUGFnZVJlZiBwYWdlLCBXS0J1bmRsZVBhZ2VQb2xpY3lDbGllbnRCYXNlKiBjbGllbnQp
OwogV0tfRVhQT1JUIHZvaWQgV0tCdW5kbGVQYWdlU2V0VUlDbGllbnQoV0tCdW5kbGVQYWdlUmVm
IHBhZ2UsIFdLQnVuZGxlUGFnZVVJQ2xpZW50QmFzZSogY2xpZW50KTsKIFdLX0VYUE9SVCB2b2lk
IFdLQnVuZGxlUGFnZVNldEZ1bGxTY3JlZW5DbGllbnQoV0tCdW5kbGVQYWdlUmVmIHBhZ2UsIFdL
QnVuZGxlUGFnZUZ1bGxTY3JlZW5DbGllbnRCYXNlKiBjbGllbnQpOworV0tfRVhQT1JUIHZvaWQg
V0tCdW5kbGVQYWdlU2V0VmlkZW9GdWxsc2NyZWVuQ2xpZW50KFdLQnVuZGxlUGFnZVJlZiBwYWdl
LCBXS0J1bmRsZVBhZ2VWaWRlb0Z1bGxzY3JlZW5DbGllbnRCYXNlKiBjbGllbnQpOwogCiBXS19F
WFBPUlQgV0tCdW5kbGVQYWdlR3JvdXBSZWYgV0tCdW5kbGVQYWdlR2V0UGFnZUdyb3VwKFdLQnVu
ZGxlUGFnZVJlZiBwYWdlKTsKIFdLX0VYUE9SVCBXS0J1bmRsZUZyYW1lUmVmIFdLQnVuZGxlUGFn
ZUdldE1haW5GcmFtZShXS0J1bmRsZVBhZ2VSZWYgcGFnZSk7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2MvV0tCdW5kbGVQYWdlVmlkZW9G
dWxsc2NyZWVuQ2xpZW50LmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5k
bGUvQVBJL2MvV0tCdW5kbGVQYWdlVmlkZW9GdWxsc2NyZWVuQ2xpZW50LmgKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
MjAxZmQ1ZTY2Yjc5NWY3ZDA1MTVjMjM1YmQwNDUxYmFiNzBmNDFjZAotLS0gL2Rldi9udWxsCisr
KyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvYy9XS0J1bmRs
ZVBhZ2VWaWRlb0Z1bGxzY3JlZW5DbGllbnQuaApAQCAtMCwwICsxLDcwIEBACisvKgorICogQ29w
eXJpZ2h0IChDKSAyMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBS
ZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9y
IHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRo
ZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9u
cyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2Ug
dGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlv
biBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4K
KyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBD
T05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJS
QU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdB
UlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIK
KyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4g
T1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVD
VCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBE
QU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAq
IFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9G
SVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04g
QU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1Qg
TElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisg
KiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZF
TiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8K
KworI3ByYWdtYSBvbmNlCisKKyNpbmNsdWRlIDxXZWJLaXQvV0tCYXNlLmg+CisjaW5jbHVkZSA8
V2ViS2l0L1dLR2VvbWV0cnkuaD4KKworZW51bSB7CisgICAgV0tWaWRlb0Z1bGxzY3JlZW5Nb2Rl
Tm9uZSA9IDAsCisgICAgV0tWaWRlb0Z1bGxzY3JlZW5Nb2RlU3RhbmRhcmQgPSAxIDw8IDAsCisg
ICAgV0tWaWRlb0Z1bGxzY3JlZW5Nb2RlUGljdHVyZUluUGljdHVyZSA9IDEgPDwgMSwKK307Cit0
eXBlZGVmIHVpbnQzMl90IFdLVmlkZW9GdWxsc2NyZWVuTW9kZTsKKwordHlwZWRlZiB2b2lkICgq
V0tCdW5kbGVQYWdlU2V0SGFzVmlkZW8pKFdLQnVuZGxlUGFnZVJlZiBwYWdlLCB1aW50NjRfdCBj
b250ZXh0SWQsIGJvb2wgaGFzVmlkZW8pOwordHlwZWRlZiB2b2lkICgqV0tCdW5kbGVQYWdlU2V0
VmlkZW9EaW1lbnNpb25zKShXS0J1bmRsZVBhZ2VSZWYgcGFnZSwgdWludDY0X3QgY29udGV4dElk
LCBXS1NpemUgdmlkZW9EaW1lbnNpb25zKTsKK3R5cGVkZWYgdm9pZCAoKldLQnVuZGxlUGFnZVNl
dHVwVmlkZW9GdWxsc2NyZWVuV2l0aElEKShXS0J1bmRsZVBhZ2VSZWYgcGFnZSwgdWludDY0X3Qg
Y29udGV4dElkLCB1aW50MzJfdCB2aWRlb0xheWVySUQsIFdLUmVjdCBpbml0aWFsUmVjdCwgZmxv
YXQgaG9zdGluZ1NjYWxlRmFjdG9yLCBXS1ZpZGVvRnVsbHNjcmVlbk1vZGUgdmlkZW9GdWxsc2Ny
ZWVuTW9kZSwgYm9vbCBhbGxvd3NQaWN0dXJlSW5QaWN0dXJlLCBib29sIHN0YW5kYnkpOwordHlw
ZWRlZiB2b2lkICgqV0tCdW5kbGVQYWdlRW50ZXJWaWRlb0Z1bGxzY3JlZW4pKFdLQnVuZGxlUGFn
ZVJlZiBwYWdlLCB1aW50NjRfdCBjb250ZXh0SWQpOwordHlwZWRlZiB2b2lkICgqV0tCdW5kbGVQ
YWdlRXhpdFZpZGVvRnVsbHNjcmVlbikoV0tCdW5kbGVQYWdlUmVmIHBhZ2UsIHVpbnQ2NF90IGNv
bnRleHRJZCwgV0tSZWN0IGZpbmFsUmVjdCk7Cit0eXBlZGVmIHZvaWQgKCpXS0J1bmRsZVBhZ2VT
ZXRJbmxpbmVSZWN0KShXS0J1bmRsZVBhZ2VSZWYgcGFnZSwgdWludDY0X3QgY29udGV4dElkLCBX
S1JlY3QgaW5saW5lUmVjdCwgYm9vbCB2aXNpYmxlKTsKK3R5cGVkZWYgdm9pZCAoKldLQnVuZGxl
UGFnZVNldEhhc1ZpZGVvQ29udGVudExheWVyKShXS0J1bmRsZVBhZ2VSZWYgcGFnZSwgdWludDY0
X3QgY29udGV4dElkLCBib29sIHZhbHVlKTsKK3R5cGVkZWYgdm9pZCAoKldLQnVuZGxlUGFnZUNs
ZWFudXBWaWRlb0Z1bGxzY3JlZW4pKFdLQnVuZGxlUGFnZVJlZiBwYWdlLCB1aW50NjRfdCBjb250
ZXh0SWQpOwordHlwZWRlZiB2b2lkICgqV0tCdW5kbGVQYWdlUHJlcGFyZWRUb1JldHVyblRvSW5s
aW5lKShXS0J1bmRsZVBhZ2VSZWYgcGFnZSwgdWludDY0X3QgY29udGV4dElkLCBib29sIHZpc2li
bGUsIFdLUmVjdCBpbmxpbmVSZWN0KTsKK3R5cGVkZWYgdm9pZCAoKldLQnVuZGxlUGFnZVByZXBh
cmVkVG9FeGl0VmlkZW9GdWxsc2NyZWVuKShXS0J1bmRsZVBhZ2VSZWYgcGFnZSwgdWludDY0X3Qg
Y29udGV4dElkKTsKK3R5cGVkZWYgdm9pZCAoKldLQnVuZGxlUGFnZUV4aXRWaWRlb0Z1bGxzY3Jl
ZW5XaXRob3V0QW5pbWF0aW9uVG9Nb2RlKShXS0J1bmRsZVBhZ2VSZWYgcGFnZSwgdWludDY0X3Qg
Y29udGV4dElkLCBXS1ZpZGVvRnVsbHNjcmVlbk1vZGUgdmlkZW9GdWxsc2NyZWVuTW9kZSk7CisK
K3R5cGVkZWYgc3RydWN0IFdLQnVuZGxlUGFnZVZpZGVvRnVsbHNjcmVlbkNsaWVudEJhc2Ugewor
ICAgIGludCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgdmVyc2lvbjsKKyAgICBjb25zdCB2b2lkICogICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsaWVudEluZm87Cit9IFdL
QnVuZGxlUGFnZVZpZGVvRnVsbHNjcmVlbkNsaWVudEJhc2U7CisKK3R5cGVkZWYgc3RydWN0IFdL
QnVuZGxlUGFnZVZpZGVvRnVsbHNjcmVlbkNsaWVudFYwIHsKKyAgICBXS0J1bmRsZVBhZ2VWaWRl
b0Z1bGxzY3JlZW5DbGllbnRCYXNlICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJhc2U7
CisKKyAgICAvLyBWZXJzaW9uIDAuCisgICAgV0tCdW5kbGVQYWdlU2V0SGFzVmlkZW8gICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZXRIYXNWaWRlbzsKKyAgICBX
S0J1bmRsZVBhZ2VTZXRWaWRlb0RpbWVuc2lvbnMgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIHNldFZpZGVvRGltZW5zaW9uczsKKyAgICBXS0J1bmRsZVBhZ2VTZXR1cFZpZGVv
RnVsbHNjcmVlbldpdGhJRCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNldHVwRnVsbHNj
cmVlbldpdGhJRDsKKyAgICBXS0J1bmRsZVBhZ2VFbnRlclZpZGVvRnVsbHNjcmVlbiAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVudGVyRnVsbHNjcmVlbjsKKyAgICBXS0J1bmRs
ZVBhZ2VFeGl0VmlkZW9GdWxsc2NyZWVuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIGV4aXRGdWxsc2NyZWVuOworICAgIFdLQnVuZGxlUGFnZVNldElubGluZVJlY3QgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2V0SW5saW5lUmVjdDsKKyAgICBX
S0J1bmRsZVBhZ2VTZXRIYXNWaWRlb0NvbnRlbnRMYXllciAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIHNldEhhc1ZpZGVvQ29udGVudExheWVyOworICAgIFdLQnVuZGxlUGFnZUNsZWFu
dXBWaWRlb0Z1bGxzY3JlZW4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xlYW51
cEZ1bGxzY3JlZW47CisgICAgV0tCdW5kbGVQYWdlUHJlcGFyZWRUb1JldHVyblRvSW5saW5lICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwcmVwYXJlZFRvUmV0cnVuVG9JbmxpbmU7Cisg
ICAgV0tCdW5kbGVQYWdlUHJlcGFyZWRUb0V4aXRWaWRlb0Z1bGxzY3JlZW4gICAgICAgICAgICAg
ICAgICAgICAgICAgICBwcmVwYXJlZFRvRXhpdEZ1bGxzY3JlZW47CisgICAgV0tCdW5kbGVQYWdl
RXhpdFZpZGVvRnVsbHNjcmVlbldpdGhvdXRBbmltYXRpb25Ub01vZGUgICAgICAgICAgICAgICBl
eGl0RnVsbHNjcmVlbldpdGhvdXRBbmltYXRpb25Ub01vZGU7Cit9IFdLQnVuZGxlUGFnZVZpZGVv
RnVsbHNjcmVlbkNsaWVudFYwOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L0luamVjdGVkQnVuZGxlL0luamVjdGVkQnVuZGxlUGFnZUZ1bGxTY3JlZW5DbGllbnQuY3BwIGIv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0luamVjdGVkQnVuZGxlUGFn
ZUZ1bGxTY3JlZW5DbGllbnQuY3BwCmluZGV4IGY3MTNiNWE0MjNmYzc5ZWE2YzVmYjYwMjQzZTc2
ODJmMDUwOWY2OWMuLjliNDgwMWY1NzYzYWMzZTU5YmViZWFlZGQyNTMzMzQ2NGE0NmRhOTMgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9JbmplY3Rl
ZEJ1bmRsZVBhZ2VGdWxsU2NyZWVuQ2xpZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvSW5qZWN0ZWRCdW5kbGUvSW5qZWN0ZWRCdW5kbGVQYWdlRnVsbFNjcmVlbkNsaWVudC5j
cHAKQEAgLTI0LDExICsyNCwxMCBAQAogICovCiAKICNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNs
dWRlICJJbmplY3RlZEJ1bmRsZVBhZ2VGdWxsU2NyZWVuQ2xpZW50LmgiCiAKICNpZiBFTkFCTEUo
RlVMTFNDUkVFTl9BUEkpCiAKLSNpbmNsdWRlICJJbmplY3RlZEJ1bmRsZVBhZ2VGdWxsU2NyZWVu
Q2xpZW50LmgiCi0KICNpbmNsdWRlICJJbmplY3RlZEJ1bmRsZU5vZGVIYW5kbGUuaCIKICNpbmNs
dWRlICJXS0FQSUNhc3QuaCIKICNpbmNsdWRlICJXS0J1bmRsZUFQSUNhc3QuaCIKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRs
ZVBhZ2VGdWxsU2NyZWVuQ2xpZW50LmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0
ZWRCdW5kbGUvSW5qZWN0ZWRCdW5kbGVQYWdlRnVsbFNjcmVlbkNsaWVudC5oCmluZGV4IDY1NjNi
NmM2ZGYzODMzNzlmYjhhYmYxMDlkN2U1OTg1NWE3YzkzOGIuLjRlY2RkMTFhNWQ1MGM0MWI4ZTRl
ZmQwYzI2NWE5NGNjZTg1NGE1Y2MgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9JbmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZVBhZ2VGdWxsU2NyZWVuQ2xpZW50LmgKKysr
IGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0luamVjdGVkQnVuZGxl
UGFnZUZ1bGxTY3JlZW5DbGllbnQuaApAQCAtMjMsOCArMjMsNyBAQAogICogVEhFIFBPU1NJQklM
SVRZIE9GIFNVQ0ggREFNQUdFLgogICovCiAKLSNpZm5kZWYgSW5qZWN0ZWRCdW5kbGVQYWdlRnVs
bFNjcmVlbkNsaWVudF9oCi0jZGVmaW5lIEluamVjdGVkQnVuZGxlUGFnZUZ1bGxTY3JlZW5DbGll
bnRfaAorI3ByYWdtYSBvbmNlCiAKICNpZiBFTkFCTEUoRlVMTFNDUkVFTl9BUEkpCiAKQEAgLTYw
LDUgKzU5LDMgQEAgcHVibGljOgogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CiAKICNlbmRpZiAvLyBF
TkFCTEUoRlVMTFNDUkVFTl9BUEkpCi0KLSNlbmRpZiAvLyBJbmplY3RlZEJ1bmRsZVBhZ2VGdWxs
U2NyZWVuQ2xpZW50X2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9Jbmpl
Y3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZVBhZ2VWaWRlb0Z1bGxzY3JlZW5DbGllbnQuY3BwIGIv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0luamVjdGVkQnVuZGxlUGFn
ZVZpZGVvRnVsbHNjcmVlbkNsaWVudC5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uY2FhYTVmMTM3YzJlNDAyZWVl
NWFiYzQwODk4MzdlMGI0YzJmY2VlZQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZVBhZ2VWaWRlb0Z1bGxzY3Jl
ZW5DbGllbnQuY3BwCkBAIC0wLDAgKzEsMTM0IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIw
IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBh
bmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1v
ZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29u
ZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29k
ZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRp
c3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHly
aWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIg
bWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNP
RlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBB
UyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVS
Q0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJF
IERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJV
VE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwg
U1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09P
RFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVT
UworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBM
SUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBU
T1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFO
WSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9G
CisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNv
bmZpZy5oIgorI2luY2x1ZGUgIkluamVjdGVkQnVuZGxlUGFnZVZpZGVvRnVsbHNjcmVlbkNsaWVu
dC5oIgorCisjaWYgRU5BQkxFKFZJREVPX1BSRVNFTlRBVElPTl9NT0RFKQorCisjaW5jbHVkZSAi
VmlkZW9GdWxsc2NyZWVuTWFuYWdlclByb3h5TWVzc2FnZXMuaCIKKyNpbmNsdWRlICJXS0FQSUNh
c3QuaCIKKyNpbmNsdWRlICJXS0J1bmRsZUFQSUNhc3QuaCIKKyNpbmNsdWRlICJXZWJDb3JlQXJn
dW1lbnRDb2RlcnMuaCIKKyNpbmNsdWRlICJXZWJQYWdlLmgiCisjaW5jbHVkZSA8V2ViQ29yZS9G
bG9hdFNpemUuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL0ludFJlY3QuaD4KKworbmFtZXNwYWNlIFdl
YktpdCB7Cit1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKKwordm9pZCBJbmplY3RlZEJ1bmRsZVBh
Z2VWaWRlb0Z1bGxzY3JlZW5DbGllbnQ6OnNldEhhc1ZpZGVvKFdlYlBhZ2UqIHBhZ2UsIHVpbnQ2
NF90IGNvbnRleHRJZCwgYm9vbCBoYXNWaWRlbykKK3sKKyAgICBpZiAobV9jbGllbnQuc2V0SGFz
VmlkZW8pCisgICAgICAgIG1fY2xpZW50LnNldEhhc1ZpZGVvKHRvQVBJKHBhZ2UpLCBjb250ZXh0
SWQsIGhhc1ZpZGVvKTsKKyAgICBlbHNlCisgICAgICAgIHBhZ2UtPnNlbmQoTWVzc2FnZXM6OlZp
ZGVvRnVsbHNjcmVlbk1hbmFnZXJQcm94eTo6U2V0SGFzVmlkZW8oY29udGV4dElkLCBoYXNWaWRl
bykpOworfQorCit2b2lkIEluamVjdGVkQnVuZGxlUGFnZVZpZGVvRnVsbHNjcmVlbkNsaWVudDo6
c2V0VmlkZW9EaW1lbnNpb25zKFdlYlBhZ2UqIHBhZ2UsIHVpbnQ2NF90IGNvbnRleHRJZCwgRmxv
YXRTaXplIHZpZGVvRGltZW5zaW9ucykKK3sKKyAgICBpZiAobV9jbGllbnQuc2V0VmlkZW9EaW1l
bnNpb25zKQorICAgICAgICBtX2NsaWVudC5zZXRWaWRlb0RpbWVuc2lvbnModG9BUEkocGFnZSks
IGNvbnRleHRJZCwgdG9BUEkodmlkZW9EaW1lbnNpb25zKSk7CisgICAgZWxzZQorICAgICAgICBw
YWdlLT5zZW5kKE1lc3NhZ2VzOjpWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyUHJveHk6OlNldFZpZGVv
RGltZW5zaW9ucyhjb250ZXh0SWQsIHZpZGVvRGltZW5zaW9ucykpOworfQorCit2b2lkIEluamVj
dGVkQnVuZGxlUGFnZVZpZGVvRnVsbHNjcmVlbkNsaWVudDo6c2V0dXBGdWxsc2NyZWVuV2l0aElE
KFdlYlBhZ2UqIHBhZ2UsIHVpbnQ2NF90IGNvbnRleHRJZCwgdWludDMyX3QgdmlkZW9MYXllcklk
LCBJbnRSZWN0IGluaXRpYWxSZWN0LCBmbG9hdCBob3N0aW5nU2NhbGVGYWN0b3IsIEhUTUxNZWRp
YUVsZW1lbnRFbnVtczo6VmlkZW9GdWxsc2NyZWVuTW9kZSB2aWRlb0Z1bGxzY3JlZW5Nb2RlLCBi
b29sIGFsbG93c1BpY3R1cmVJblBpY3R1cmUsIGJvb2wgc3RhbmRieSkKK3sKKyAgICBpZiAobV9j
bGllbnQuc2V0dXBGdWxsc2NyZWVuV2l0aElEKQorICAgICAgICBtX2NsaWVudC5zZXR1cEZ1bGxz
Y3JlZW5XaXRoSUQodG9BUEkocGFnZSksIGNvbnRleHRJZCwgdmlkZW9MYXllcklkLCB0b0FQSShp
bml0aWFsUmVjdCksIGhvc3RpbmdTY2FsZUZhY3RvciwgdmlkZW9GdWxsc2NyZWVuTW9kZSwgYWxs
b3dzUGljdHVyZUluUGljdHVyZSwgc3RhbmRieSk7CisgICAgZWxzZQorICAgICAgICBwYWdlLT5z
ZW5kKE1lc3NhZ2VzOjpWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyUHJveHk6OlNldHVwRnVsbHNjcmVl
bldpdGhJRChjb250ZXh0SWQsIHZpZGVvTGF5ZXJJZCwgaW5pdGlhbFJlY3QsIGhvc3RpbmdTY2Fs
ZUZhY3RvciwgdmlkZW9GdWxsc2NyZWVuTW9kZSwgYWxsb3dzUGljdHVyZUluUGljdHVyZSwgc3Rh
bmRieSkpOworfQorCit2b2lkIEluamVjdGVkQnVuZGxlUGFnZVZpZGVvRnVsbHNjcmVlbkNsaWVu
dDo6ZW50ZXJGdWxsc2NyZWVuKFdlYlBhZ2UqIHBhZ2UsIHVpbnQ2NF90IGNvbnRleHRJZCkKK3sK
KyAgICBpZiAobV9jbGllbnQuZW50ZXJGdWxsc2NyZWVuKQorICAgICAgICBtX2NsaWVudC5lbnRl
ckZ1bGxzY3JlZW4odG9BUEkocGFnZSksIGNvbnRleHRJZCk7CisgICAgZWxzZQorICAgICAgICBw
YWdlLT5zZW5kKE1lc3NhZ2VzOjpWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyUHJveHk6OkVudGVyRnVs
bHNjcmVlbihjb250ZXh0SWQpKTsKK30KKwordm9pZCBJbmplY3RlZEJ1bmRsZVBhZ2VWaWRlb0Z1
bGxzY3JlZW5DbGllbnQ6OmV4aXRGdWxsc2NyZWVuKFdlYlBhZ2UqIHBhZ2UsIHVpbnQ2NF90IGNv
bnRleHRJZCwgSW50UmVjdCBmaW5hbFJlY3QpCit7CisgICAgaWYgKG1fY2xpZW50LmV4aXRGdWxs
c2NyZWVuKQorICAgICAgICBtX2NsaWVudC5leGl0RnVsbHNjcmVlbih0b0FQSShwYWdlKSwgY29u
dGV4dElkLCB0b0FQSShmaW5hbFJlY3QpKTsKKyAgICBlbHNlCisgICAgICAgIHBhZ2UtPnNlbmQo
TWVzc2FnZXM6OlZpZGVvRnVsbHNjcmVlbk1hbmFnZXJQcm94eTo6RXhpdEZ1bGxzY3JlZW4oY29u
dGV4dElkLCBmaW5hbFJlY3QpKTsKK30KKwordm9pZCBJbmplY3RlZEJ1bmRsZVBhZ2VWaWRlb0Z1
bGxzY3JlZW5DbGllbnQ6OnNldElubGluZVJlY3QoV2ViUGFnZSogcGFnZSwgdWludDY0X3QgY29u
dGV4dElkLCBJbnRSZWN0IGlubGluZVJlY3QsIGJvb2wgdmlzaWJsZSkKK3sKKyAgICBpZiAobV9j
bGllbnQuc2V0SW5saW5lUmVjdCkKKyAgICAgICAgbV9jbGllbnQuc2V0SW5saW5lUmVjdCh0b0FQ
SShwYWdlKSwgY29udGV4dElkLCB0b0FQSShpbmxpbmVSZWN0KSwgdmlzaWJsZSk7CisgICAgZWxz
ZQorICAgICAgICBwYWdlLT5zZW5kKE1lc3NhZ2VzOjpWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyUHJv
eHk6OlNldElubGluZVJlY3QoY29udGV4dElkLCBpbmxpbmVSZWN0LCB2aXNpYmxlKSk7Cit9CisK
K3ZvaWQgSW5qZWN0ZWRCdW5kbGVQYWdlVmlkZW9GdWxsc2NyZWVuQ2xpZW50OjpzZXRIYXNWaWRl
b0NvbnRlbnRMYXllcihXZWJQYWdlKiBwYWdlLCB1aW50NjRfdCBjb250ZXh0SWQsIGJvb2wgdmFs
dWUpCit7CisgICAgaWYgKG1fY2xpZW50LnNldEhhc1ZpZGVvQ29udGVudExheWVyKQorICAgICAg
ICBtX2NsaWVudC5zZXRIYXNWaWRlb0NvbnRlbnRMYXllcih0b0FQSShwYWdlKSwgY29udGV4dElk
LCB2YWx1ZSk7CisgICAgZWxzZQorICAgICAgICBwYWdlLT5zZW5kKE1lc3NhZ2VzOjpWaWRlb0Z1
bGxzY3JlZW5NYW5hZ2VyUHJveHk6OlNldEhhc1ZpZGVvQ29udGVudExheWVyKGNvbnRleHRJZCwg
dmFsdWUpKTsKK30KKwordm9pZCBJbmplY3RlZEJ1bmRsZVBhZ2VWaWRlb0Z1bGxzY3JlZW5DbGll
bnQ6OmNsZWFudXBGdWxsc2NyZWVuKFdlYlBhZ2UqIHBhZ2UsIHVpbnQ2NF90IGNvbnRleHRJZCkK
K3sKKyAgICBpZiAobV9jbGllbnQuY2xlYW51cEZ1bGxzY3JlZW4pCisgICAgICAgIG1fY2xpZW50
LmNsZWFudXBGdWxsc2NyZWVuKHRvQVBJKHBhZ2UpLCBjb250ZXh0SWQpOworICAgIGVsc2UKKyAg
ICAgICAgcGFnZS0+c2VuZChNZXNzYWdlczo6VmlkZW9GdWxsc2NyZWVuTWFuYWdlclByb3h5OjpD
bGVhbnVwRnVsbHNjcmVlbihjb250ZXh0SWQpKTsKK30KKwordm9pZCBJbmplY3RlZEJ1bmRsZVBh
Z2VWaWRlb0Z1bGxzY3JlZW5DbGllbnQ6OnByZXBhcmVkVG9SZXR1cm5Ub0lubGluZShXZWJQYWdl
KiBwYWdlLCB1aW50NjRfdCBjb250ZXh0SWQsIGJvb2wgdmlzaWJsZSwgSW50UmVjdCBpbmxpbmVS
ZWN0KQoreworICAgIGlmIChtX2NsaWVudC5wcmVwYXJlZFRvUmV0cnVuVG9JbmxpbmUpCisgICAg
ICAgIG1fY2xpZW50LnByZXBhcmVkVG9SZXRydW5Ub0lubGluZSh0b0FQSShwYWdlKSwgY29udGV4
dElkLCB2aXNpYmxlLCB0b0FQSShpbmxpbmVSZWN0KSk7CisgICAgZWxzZQorICAgICAgICBwYWdl
LT5zZW5kKE1lc3NhZ2VzOjpWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyUHJveHk6OlByZXBhcmVkVG9S
ZXR1cm5Ub0lubGluZShjb250ZXh0SWQsIHZpc2libGUsIGlubGluZVJlY3QpKTsKK30KKwordm9p
ZCBJbmplY3RlZEJ1bmRsZVBhZ2VWaWRlb0Z1bGxzY3JlZW5DbGllbnQ6OnByZXBhcmVkVG9FeGl0
RnVsbHNjcmVlbihXZWJQYWdlKiBwYWdlLCB1aW50NjRfdCBjb250ZXh0SWQpCit7CisgICAgaWYg
KG1fY2xpZW50LnByZXBhcmVkVG9FeGl0RnVsbHNjcmVlbikKKyAgICAgICAgbV9jbGllbnQucHJl
cGFyZWRUb0V4aXRGdWxsc2NyZWVuKHRvQVBJKHBhZ2UpLCBjb250ZXh0SWQpOworICAgIGVsc2UK
KyAgICAgICAgcGFnZS0+c2VuZChNZXNzYWdlczo6VmlkZW9GdWxsc2NyZWVuTWFuYWdlclByb3h5
OjpQcmVwYXJlZFRvRXhpdEZ1bGxzY3JlZW4oY29udGV4dElkKSk7Cit9CisKKyNpZiBQTEFURk9S
TShNQUMpICYmIEVOQUJMRShWSURFT19QUkVTRU5UQVRJT05fTU9ERSkKK3ZvaWQgSW5qZWN0ZWRC
dW5kbGVQYWdlVmlkZW9GdWxsc2NyZWVuQ2xpZW50OjpleGl0RnVsbHNjcmVlbldpdGhvdXRBbmlt
YXRpb25Ub01vZGUoV2ViUGFnZSogcGFnZSwgdWludDY0X3QgY29udGV4dElkLCBIVE1MTWVkaWFF
bGVtZW50RW51bXM6OlZpZGVvRnVsbHNjcmVlbk1vZGUgdmlkZW9GdWxsc2NyZWVuTW9kZSkKK3sK
KyAgICBpZiAobV9jbGllbnQuZXhpdEZ1bGxzY3JlZW5XaXRob3V0QW5pbWF0aW9uVG9Nb2RlKQor
ICAgICAgICBtX2NsaWVudC5leGl0RnVsbHNjcmVlbldpdGhvdXRBbmltYXRpb25Ub01vZGUodG9B
UEkocGFnZSksIGNvbnRleHRJZCwgdmlkZW9GdWxsc2NyZWVuTW9kZSk7CisgICAgZWxzZQorICAg
ICAgICBwYWdlLT5zZW5kKE1lc3NhZ2VzOjpWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyUHJveHk6OkV4
aXRGdWxsc2NyZWVuV2l0aG91dEFuaW1hdGlvblRvTW9kZShjb250ZXh0SWQsIHZpZGVvRnVsbHNj
cmVlbk1vZGUpKTsKK30KKyNlbmRpZgorCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQKKworI2VuZGlm
IC8vIEVOQUJMRShWSURFT19QUkVTRU5UQVRJT05fTU9ERSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZVBhZ2VWaWRlb0Z1
bGxzY3JlZW5DbGllbnQuaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRs
ZS9JbmplY3RlZEJ1bmRsZVBhZ2VWaWRlb0Z1bGxzY3JlZW5DbGllbnQuaApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5k
MTkxZjYwNDE3YzI5Y2I3MGI0YjkyMWU5MTE5ZDE3N2QyZGQ3MThjCi0tLSAvZGV2L251bGwKKysr
IGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0luamVjdGVkQnVuZGxl
UGFnZVZpZGVvRnVsbHNjcmVlbkNsaWVudC5oCkBAIC0wLDAgKzEsNzAgQEAKKy8qCisgKiBDb3B5
cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJl
ZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Ig
d2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhl
IGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25z
IG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0
aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9u
IGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgor
ICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENP
TlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJB
TlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FS
UkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgor
ICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBP
UiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNU
LCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERB
TUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICog
U1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJ
VFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBB
TlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBM
SUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAq
IEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVO
IElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLwor
CisjcHJhZ21hIG9uY2UKKworI2lmIEVOQUJMRShWSURFT19QUkVTRU5UQVRJT05fTU9ERSkKKwor
I2luY2x1ZGUgIkFQSUNsaWVudC5oIgorI2luY2x1ZGUgIldLQnVuZGxlUGFnZVZpZGVvRnVsbHNj
cmVlbkNsaWVudC5oIgorI2luY2x1ZGUgPFdlYkNvcmUvSFRNTE1lZGlhRWxlbWVudEVudW1zLmg+
CisjaW5jbHVkZSA8d3RmL0ZvcndhcmQuaD4KKworbmFtZXNwYWNlIEFQSSB7Cit0ZW1wbGF0ZTw+
IHN0cnVjdCBDbGllbnRUcmFpdHM8V0tCdW5kbGVQYWdlVmlkZW9GdWxsc2NyZWVuQ2xpZW50QmFz
ZT4geworICAgIHR5cGVkZWYgc3RkOjp0dXBsZTxXS0J1bmRsZVBhZ2VWaWRlb0Z1bGxzY3JlZW5D
bGllbnRWMD4gVmVyc2lvbnM7Cit9OworfQorCituYW1lc3BhY2UgV2ViQ29yZSB7CitjbGFzcyBF
bGVtZW50OworY2xhc3MgRmxvYXRTaXplOworY2xhc3MgSW50UmVjdDsKK30KKworbmFtZXNwYWNl
IFdlYktpdCB7CisKK2NsYXNzIFdlYlBhZ2U7CisKK2NsYXNzIEluamVjdGVkQnVuZGxlUGFnZVZp
ZGVvRnVsbHNjcmVlbkNsaWVudCA6IHB1YmxpYyBBUEk6OkNsaWVudDxXS0J1bmRsZVBhZ2VWaWRl
b0Z1bGxzY3JlZW5DbGllbnRCYXNlPiB7CitwdWJsaWM6CisgICAgdm9pZCBzZXRIYXNWaWRlbyhX
ZWJQYWdlKiwgdWludDY0X3QgY29udGV4dElkLCBib29sIGhhc1ZpZGVvKTsKKyAgICB2b2lkIHNl
dFZpZGVvRGltZW5zaW9ucyhXZWJQYWdlKiwgdWludDY0X3QgY29udGV4dElkLCBXZWJDb3JlOjpG
bG9hdFNpemUgdmlkZW9EaW1lbnNpb25zKTsKKyAgICB2b2lkIHNldHVwRnVsbHNjcmVlbldpdGhJ
RChXZWJQYWdlKiwgdWludDY0X3QgY29udGV4dElkLCB1aW50MzJfdCB2aWRlb0xheWVySUQsIFdl
YkNvcmU6OkludFJlY3QgaW5pdGlhbFJlY3QsIGZsb2F0IGhvc3RpbmdTY2FsZUZhY3RvciwgV2Vi
Q29yZTo6SFRNTE1lZGlhRWxlbWVudEVudW1zOjpWaWRlb0Z1bGxzY3JlZW5Nb2RlLCBib29sIGFs
bG93c1BpY3R1cmVJblBpY3R1cmUsIGJvb2wgc3RhbmRieSk7CisgICAgdm9pZCBlbnRlckZ1bGxz
Y3JlZW4oV2ViUGFnZSosIHVpbnQ2NF90IGNvbnRleHRJZCk7CisgICAgdm9pZCBleGl0RnVsbHNj
cmVlbihXZWJQYWdlKiwgdWludDY0X3QgY29udGV4dElkLCBXZWJDb3JlOjpJbnRSZWN0IGZpbmFs
UmVjdCk7CisgICAgdm9pZCBzZXRJbmxpbmVSZWN0KFdlYlBhZ2UqLCB1aW50NjRfdCBjb250ZXh0
SWQsIFdlYkNvcmU6OkludFJlY3QgaW5saW5lUmVjdCwgYm9vbCB2aXNpYmxlKTsKKyAgICB2b2lk
IHNldEhhc1ZpZGVvQ29udGVudExheWVyKFdlYlBhZ2UqLCB1aW50NjRfdCBjb250ZXh0SWQsIGJv
b2wgdmFsdWUpOworICAgIHZvaWQgY2xlYW51cEZ1bGxzY3JlZW4oV2ViUGFnZSosIHVpbnQ2NF90
IGNvbnRleHRJZCk7CisgICAgdm9pZCBwcmVwYXJlZFRvUmV0dXJuVG9JbmxpbmUoV2ViUGFnZSos
IHVpbnQ2NF90IGNvbnRleHRJZCwgYm9vbCB2aXNpYmxlLCBXZWJDb3JlOjpJbnRSZWN0IGlubGlu
ZVJlY3QpOworICAgIHZvaWQgcHJlcGFyZWRUb0V4aXRGdWxsc2NyZWVuKFdlYlBhZ2UqLCB1aW50
NjRfdCBjb250ZXh0SWQpOworI2lmIFBMQVRGT1JNKE1BQykgJiYgRU5BQkxFKFZJREVPX1BSRVNF
TlRBVElPTl9NT0RFKQorICAgIHZvaWQgZXhpdEZ1bGxzY3JlZW5XaXRob3V0QW5pbWF0aW9uVG9N
b2RlKFdlYlBhZ2UqLCB1aW50NjRfdCBjb250ZXh0SWQsIFdlYkNvcmU6OkhUTUxNZWRpYUVsZW1l
bnRFbnVtczo6VmlkZW9GdWxsc2NyZWVuTW9kZSk7CisjZW5kaWYKK307CisKK30gLy8gbmFtZXNw
YWNlIFdlYktpdAorCisjZW5kaWYgLy8gUExBVEZPUk0oSU9TX0ZBTUlMWSkgfHwgKFBMQVRGT1JN
KE1BQykgJiYgRU5BQkxFKFZJREVPX1BSRVNFTlRBVElPTl9NT0RFKSkKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwIGIvU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAKaW5kZXggNWI0Y2VmZjNlYWIyYmE3ZDVi
NzhlMmExYzllNjMwYjJlN2ZkNTM4YS4uY2M0NGQ0MTI4MzVjZDU2NmViNjQwZWZkZTFjYzc2ZjZh
N2M5MjFmMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2Vi
UGFnZS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5j
cHAKQEAgLTk2OSw2ICs5NjksMTMgQEAgdm9pZCBXZWJQYWdlOjppbml0aWFsaXplSW5qZWN0ZWRC
dW5kbGVGdWxsU2NyZWVuQ2xpZW50KFdLQnVuZGxlUGFnZUZ1bGxTY3JlZW5DbGkKIH0KICNlbmRp
ZgogCisjaWYgRU5BQkxFKFZJREVPX1BSRVNFTlRBVElPTl9NT0RFKQordm9pZCBXZWJQYWdlOjpp
bml0aWFsaXplSW5qZWN0ZWRCdW5kbGVWaWRlb0Z1bGxzY3JlZW5DbGllbnQoV0tCdW5kbGVQYWdl
VmlkZW9GdWxsc2NyZWVuQ2xpZW50QmFzZSogY2xpZW50KQoreworICAgIG1fdmlkZW9GdWxsc2Ny
ZWVuQ2xpZW50LmluaXRpYWxpemUoY2xpZW50KTsKK30KKyNlbmRpZgorCiAjaWYgRU5BQkxFKE5F
VFNDQVBFX1BMVUdJTl9BUEkpCiAKIGNvbnN0ZXhwciBpbnQgc21hbGxQbHVnaW5EaW1lbnNpb25U
aHJlc2hvbGQgPSA1OwpAQCAtMTQxNCw2ICsxNDIxLDEwIEBAIHZvaWQgV2ViUGFnZTo6Y2xvc2Uo
KQogICAgIG1fZnVsbFNjcmVlbkNsaWVudC5pbml0aWFsaXplKDApOwogI2VuZGlmCiAKKyNpZiBF
TkFCTEUoVklERU9fUFJFU0VOVEFUSU9OX01PREUpCisgICAgbV92aWRlb0Z1bGxzY3JlZW5DbGll
bnQuaW5pdGlhbGl6ZSgwKTsKKyNlbmRpZgorCiAgICAgbV9wcmludENvbnRleHQgPSBudWxscHRy
OwogICAgIG1fbWFpbkZyYW1lLT5jb3JlRnJhbWUoKS0+bG9hZGVyKCkuZGV0YWNoRnJvbVBhcmVu
dCgpOwogICAgIG1fZHJhd2luZ0FyZWEgPSBudWxscHRyOwpAQCAtMzgzOSw3ICszODUwLDcgQEAg
dm9pZCBXZWJQYWdlOjppbnNwZWN0b3JGcm9udGVuZENvdW50Q2hhbmdlZCh1bnNpZ25lZCBjb3Vu
dCkKICAgICBzZW5kKE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6OkRpZENoYW5nZUluc3BlY3RvckZy
b250ZW5kQ291bnQoY291bnQpKTsKIH0KIAotI2lmIEVOQUJMRShWSURFT19QUkVTRU5UQVRJT05f
TU9ERSkKKyNpZiBQTEFURk9STShJT1NfRkFNSUxZKSB8fCAoUExBVEZPUk0oTUFDKSAmJiBFTkFC
TEUoVklERU9fUFJFU0VOVEFUSU9OX01PREUpKQogUGxheWJhY2tTZXNzaW9uTWFuYWdlciYgV2Vi
UGFnZTo6cGxheWJhY2tTZXNzaW9uTWFuYWdlcigpCiB7CiAgICAgaWYgKCFtX3BsYXliYWNrU2Vz
c2lvbk1hbmFnZXIpCkBAIC0zODQ3LDEzICszODU4LDYgQEAgUGxheWJhY2tTZXNzaW9uTWFuYWdl
ciYgV2ViUGFnZTo6cGxheWJhY2tTZXNzaW9uTWFuYWdlcigpCiAgICAgcmV0dXJuICptX3BsYXli
YWNrU2Vzc2lvbk1hbmFnZXI7CiB9CiAKLVZpZGVvRnVsbHNjcmVlbk1hbmFnZXImIFdlYlBhZ2U6
OnZpZGVvRnVsbHNjcmVlbk1hbmFnZXIoKQotewotICAgIGlmICghbV92aWRlb0Z1bGxzY3JlZW5N
YW5hZ2VyKQotICAgICAgICBtX3ZpZGVvRnVsbHNjcmVlbk1hbmFnZXIgPSBWaWRlb0Z1bGxzY3Jl
ZW5NYW5hZ2VyOjpjcmVhdGUoKnRoaXMsIHBsYXliYWNrU2Vzc2lvbk1hbmFnZXIoKSk7Ci0gICAg
cmV0dXJuICptX3ZpZGVvRnVsbHNjcmVlbk1hbmFnZXI7Ci19Ci0KIHZvaWQgV2ViUGFnZTo6dmlk
ZW9Db250cm9sc01hbmFnZXJEaWRDaGFuZ2UoKQogewogI2lmIEVOQUJMRShGVUxMU0NSRUVOX0FQ
SSkKQEAgLTM4NjEsNyArMzg2NSwxNSBAQCB2b2lkIFdlYlBhZ2U6OnZpZGVvQ29udHJvbHNNYW5h
Z2VyRGlkQ2hhbmdlKCkKICAgICAgICAgbWFuYWdlci0+dmlkZW9Db250cm9sc01hbmFnZXJEaWRD
aGFuZ2UoKTsKICNlbmRpZgogfQorI2VuZGlmCiAKKyNpZiBFTkFCTEUoVklERU9fUFJFU0VOVEFU
SU9OX01PREUpCitWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyJiBXZWJQYWdlOjp2aWRlb0Z1bGxzY3Jl
ZW5NYW5hZ2VyKCkKK3sKKyAgICBpZiAoIW1fdmlkZW9GdWxsc2NyZWVuTWFuYWdlcikKKyAgICAg
ICAgbV92aWRlb0Z1bGxzY3JlZW5NYW5hZ2VyID0gVmlkZW9GdWxsc2NyZWVuTWFuYWdlcjo6Y3Jl
YXRlKCp0aGlzLCBwbGF5YmFja1Nlc3Npb25NYW5hZ2VyKCkpOworICAgIHJldHVybiAqbV92aWRl
b0Z1bGxzY3JlZW5NYW5hZ2VyOworfQogI2VuZGlmCiAKICNpZiBQTEFURk9STShJT1NfRkFNSUxZ
KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5o
IGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5oCmluZGV4IDgyMjY1
ZDRjMWFkOGNkMmNlZDdhYTcyOWE5NTc5ZDZmMmIzNDhiNTguLmVjM2RhNmY1ZWQwYTBjYTkwZjRh
NmQzNWM4YmM2MDY4MGZhM2ViZDAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9XZWJQYWdlL1dlYlBhZ2UuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFn
ZS9XZWJQYWdlLmgKQEAgLTQwLDYgKzQwLDcgQEAKICNpbmNsdWRlICJJbmplY3RlZEJ1bmRsZVBh
Z2VDb250ZXh0TWVudUNsaWVudC5oIgogI2luY2x1ZGUgIkluamVjdGVkQnVuZGxlUGFnZUZ1bGxT
Y3JlZW5DbGllbnQuaCIKICNpbmNsdWRlICJJbmplY3RlZEJ1bmRsZVBhZ2VQb2xpY3lDbGllbnQu
aCIKKyNpbmNsdWRlICJJbmplY3RlZEJ1bmRsZVBhZ2VWaWRlb0Z1bGxzY3JlZW5DbGllbnQuaCIK
ICNpbmNsdWRlICJMYXllclRyZWVDb250ZXh0LmgiCiAjaW5jbHVkZSAiTWVzc2FnZVJlY2VpdmVy
LmgiCiAjaW5jbHVkZSAiTWVzc2FnZVNlbmRlci5oIgpAQCAtNDUzLDYgKzQ1NCwxMCBAQCBwdWJs
aWM6CiAgICAgdm9pZCBpbml0aWFsaXplSW5qZWN0ZWRCdW5kbGVGdWxsU2NyZWVuQ2xpZW50KFdL
QnVuZGxlUGFnZUZ1bGxTY3JlZW5DbGllbnRCYXNlKik7CiAjZW5kaWYKIAorI2lmIEVOQUJMRShW
SURFT19QUkVTRU5UQVRJT05fTU9ERSkKKyAgICB2b2lkIGluaXRpYWxpemVJbmplY3RlZEJ1bmRs
ZVZpZGVvRnVsbHNjcmVlbkNsaWVudChXS0J1bmRsZVBhZ2VWaWRlb0Z1bGxzY3JlZW5DbGllbnRC
YXNlKik7CisjZW5kaWYKKwogI2lmIEVOQUJMRShDT05URVhUX01FTlVTKQogICAgIEFQSTo6SW5q
ZWN0ZWRCdW5kbGU6OlBhZ2VDb250ZXh0TWVudUNsaWVudCYgaW5qZWN0ZWRCdW5kbGVDb250ZXh0
TWVudUNsaWVudCgpIHsgcmV0dXJuICptX2NvbnRleHRNZW51Q2xpZW50OyB9CiAjZW5kaWYKQEAg
LTQ2Niw2ICs0NzEsMTAgQEAgcHVibGljOgogICAgIEluamVjdGVkQnVuZGxlUGFnZUZ1bGxTY3Jl
ZW5DbGllbnQmIGluamVjdGVkQnVuZGxlRnVsbFNjcmVlbkNsaWVudCgpIHsgcmV0dXJuIG1fZnVs
bFNjcmVlbkNsaWVudDsgfQogI2VuZGlmCiAKKyNpZiBFTkFCTEUoVklERU9fUFJFU0VOVEFUSU9O
X01PREUpCisgICAgSW5qZWN0ZWRCdW5kbGVQYWdlVmlkZW9GdWxsc2NyZWVuQ2xpZW50JiBpbmpl
Y3RlZEJ1bmRsZVZpZGVvRnVsbHNjcmVlbkNsaWVudCgpIHsgcmV0dXJuIG1fdmlkZW9GdWxsc2Ny
ZWVuQ2xpZW50OyB9CisjZW5kaWYKKwogICAgIGJvb2wgZmluZFN0cmluZ0Zyb21JbmplY3RlZEJ1
bmRsZShjb25zdCBTdHJpbmcmLCBGaW5kT3B0aW9ucyk7CiAgICAgdm9pZCBmaW5kU3RyaW5nTWF0
Y2hlc0Zyb21JbmplY3RlZEJ1bmRsZShjb25zdCBTdHJpbmcmLCBGaW5kT3B0aW9ucyk7CiAgICAg
dm9pZCByZXBsYWNlU3RyaW5nTWF0Y2hlc0Zyb21JbmplY3RlZEJ1bmRsZShjb25zdCBWZWN0b3I8
dWludDMyX3Q+JiBtYXRjaEluZGljZXMsIGNvbnN0IFN0cmluZyYgcmVwbGFjZW1lbnRUZXh0LCBi
b29sIHNlbGVjdGlvbk9ubHkpOwpAQCAtMTg0MCw2ICsxODQ5LDEwIEBAIHByaXZhdGU6CiAgICAg
SW5qZWN0ZWRCdW5kbGVQYWdlRnVsbFNjcmVlbkNsaWVudCBtX2Z1bGxTY3JlZW5DbGllbnQ7CiAj
ZW5kaWYKIAorI2lmIEVOQUJMRShWSURFT19QUkVTRU5UQVRJT05fTU9ERSkKKyAgICBJbmplY3Rl
ZEJ1bmRsZVBhZ2VWaWRlb0Z1bGxzY3JlZW5DbGllbnQgbV92aWRlb0Z1bGxzY3JlZW5DbGllbnQ7
CisjZW5kaWYKKwogICAgIFVuaXF1ZVJlZjxGaW5kQ29udHJvbGxlcj4gbV9maW5kQ29udHJvbGxl
cjsKIAogICAgIFJlZlB0cjxXZWJJbnNwZWN0b3I+IG1faW5zcGVjdG9yOwpAQCAtMTg0Nyw4ICsx
ODYwLDExIEBAIHByaXZhdGU6CiAgICAgUmVmUHRyPFJlbW90ZVdlYkluc3BlY3RvclVJPiBtX3Jl
bW90ZUluc3BlY3RvclVJOwogICAgIHN0ZDo6dW5pcXVlX3B0cjxXZWJQYWdlSW5zcGVjdG9yVGFy
Z2V0Q29udHJvbGxlcj4gbV9pbnNwZWN0b3JUYXJnZXRDb250cm9sbGVyOwogCi0jaWYgRU5BQkxF
KFZJREVPX1BSRVNFTlRBVElPTl9NT0RFKQorI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpIHx8IChQ
TEFURk9STShNQUMpICYmIEVOQUJMRShWSURFT19QUkVTRU5UQVRJT05fTU9ERSkpCiAgICAgUmVm
UHRyPFBsYXliYWNrU2Vzc2lvbk1hbmFnZXI+IG1fcGxheWJhY2tTZXNzaW9uTWFuYWdlcjsKKyNl
bmRpZgorCisjaWYgRU5BQkxFKFZJREVPX1BSRVNFTlRBVElPTl9NT0RFKQogICAgIFJlZlB0cjxW
aWRlb0Z1bGxzY3JlZW5NYW5hZ2VyPiBtX3ZpZGVvRnVsbHNjcmVlbk1hbmFnZXI7CiAjZW5kaWYK
IApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL2NvY29hL1ZpZGVvRnVsbHNj
cmVlbk1hbmFnZXIuaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9jb2NvYS9WaWRlb0Z1bGxz
Y3JlZW5NYW5hZ2VyLmgKaW5kZXggZjEzNmVjYjlkZDNlYWNlZmFkZDk3NGJkY2RiZDQyY2FlZmY2
MjdjZi4uY2NjMGFjZWE2ZWJkOWIzZDVjZTY0ZmVhZGY3MWE2MzIyMjY3Y2ZiYyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL2NvY29hL1ZpZGVvRnVsbHNjcmVlbk1hbmFnZXIu
aAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvY29jb2EvVmlkZW9GdWxsc2NyZWVuTWFu
YWdlci5oCkBAIC0xMjIsNiArMTIyLDE1IEBAIHB1YmxpYzoKICAgICB2b2lkIGV4aXRWaWRlb0Z1
bGxzY3JlZW5Gb3JWaWRlb0VsZW1lbnQoV2ViQ29yZTo6SFRNTFZpZGVvRWxlbWVudCYpOwogICAg
IHZvaWQgZXhpdFZpZGVvRnVsbHNjcmVlblRvTW9kZVdpdGhvdXRBbmltYXRpb24oV2ViQ29yZTo6
SFRNTFZpZGVvRWxlbWVudCYsIFdlYkNvcmU6OkhUTUxNZWRpYUVsZW1lbnRFbnVtczo6VmlkZW9G
dWxsc2NyZWVuTW9kZSk7CiAKKyAgICAvLyBNZXNzYWdlcyBmcm9tIFZpZGVvRnVsbHNjcmVlbk1h
bmFnZXJQcm94eQorICAgIHZvaWQgcmVxdWVzdEZ1bGxzY3JlZW5Nb2RlKHVpbnQ2NF90IGNvbnRl
eHRJZCwgV2ViQ29yZTo6SFRNTE1lZGlhRWxlbWVudEVudW1zOjpWaWRlb0Z1bGxzY3JlZW5Nb2Rl
LCBib29sIGZpbmlzaGVkV2l0aE1lZGlhKTsKKyAgICB2b2lkIHJlcXVlc3RWaWRlb0NvbnRlbnRM
YXllcih1aW50NjRfdCBjb250ZXh0SWQpOworICAgIHZvaWQgcmV0dXJuVmlkZW9Db250ZW50TGF5
ZXIodWludDY0X3QgY29udGV4dElkKTsKKyAgICB2b2lkIGRpZFNldHVwRnVsbHNjcmVlbih1aW50
NjRfdCBjb250ZXh0SWQpOworICAgIHZvaWQgZGlkRW50ZXJGdWxsc2NyZWVuKHVpbnQ2NF90IGNv
bnRleHRJZCk7CisgICAgdm9pZCBkaWRFeGl0RnVsbHNjcmVlbih1aW50NjRfdCBjb250ZXh0SWQp
OworICAgIHZvaWQgZGlkQ2xlYW51cEZ1bGxzY3JlZW4odWludDY0X3QgY29udGV4dElkKTsKKwog
cHJvdGVjdGVkOgogICAgIGZyaWVuZCBjbGFzcyBWaWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2VDb250
ZXh0OwogCkBAIC0xNDEsMTUgKzE1MCw5IEBAIHByb3RlY3RlZDoKICAgICB2b2lkIHZpZGVvRGlt
ZW5zaW9uc0NoYW5nZWQodWludDY0X3QgY29udGV4dElkLCBjb25zdCBXZWJDb3JlOjpGbG9hdFNp
emUmKTsKIAogICAgIC8vIE1lc3NhZ2VzIGZyb20gVmlkZW9GdWxsc2NyZWVuTWFuYWdlclByb3h5
Ci0gICAgdm9pZCByZXF1ZXN0RnVsbHNjcmVlbk1vZGUodWludDY0X3QgY29udGV4dElkLCBXZWJD
b3JlOjpIVE1MTWVkaWFFbGVtZW50RW51bXM6OlZpZGVvRnVsbHNjcmVlbk1vZGUsIGJvb2wgZmlu
aXNoZWRXaXRoTWVkaWEpOwogICAgIHZvaWQgcmVxdWVzdFVwZGF0ZUlubGluZVJlY3QodWludDY0
X3QgY29udGV4dElkKTsKLSAgICB2b2lkIHJlcXVlc3RWaWRlb0NvbnRlbnRMYXllcih1aW50NjRf
dCBjb250ZXh0SWQpOwotICAgIHZvaWQgcmV0dXJuVmlkZW9Db250ZW50TGF5ZXIodWludDY0X3Qg
Y29udGV4dElkKTsKLSAgICB2b2lkIGRpZFNldHVwRnVsbHNjcmVlbih1aW50NjRfdCBjb250ZXh0
SWQpOwogICAgIHZvaWQgd2lsbEV4aXRGdWxsc2NyZWVuKHVpbnQ2NF90IGNvbnRleHRJZCk7Ci0g
ICAgdm9pZCBkaWRFeGl0RnVsbHNjcmVlbih1aW50NjRfdCBjb250ZXh0SWQpOwotICAgIHZvaWQg
ZGlkRW50ZXJGdWxsc2NyZWVuKHVpbnQ2NF90IGNvbnRleHRJZCk7Ci0gICAgdm9pZCBkaWRDbGVh
bnVwRnVsbHNjcmVlbih1aW50NjRfdCBjb250ZXh0SWQpOworCiAgICAgdm9pZCBzZXRWaWRlb0xh
eWVyRnJhbWVGZW5jZWQodWludDY0X3QgY29udGV4dElkLCBXZWJDb3JlOjpGbG9hdFJlY3QgYm91
bmRzLCBJUEM6OkF0dGFjaG1lbnQgZmVuY2VQb3J0KTsKICAgICB2b2lkIHNldFZpZGVvTGF5ZXJH
cmF2aXR5RW51bSh1aW50NjRfdCBjb250ZXh0SWQsIHVuc2lnbmVkIGdyYXZpdHkpOwogICAgIHZv
aWQgZnVsbHNjcmVlbk1vZGVDaGFuZ2VkKHVpbnQ2NF90IGNvbnRleHRJZCwgV2ViQ29yZTo6SFRN
TE1lZGlhRWxlbWVudEVudW1zOjpWaWRlb0Z1bGxzY3JlZW5Nb2RlKTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9jb2NvYS9WaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyLm1tIGIv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL2NvY29hL1ZpZGVvRnVsbHNjcmVlbk1hbmFnZXIubW0K
aW5kZXggZmY0YTJkM2U5MTZiNTAwMmY2N2YzOWZmN2U5ZTExODU5YjM2N2U0NS4uY2YyY2Y1ZWNk
YzdjY2UxN2Q3NGNhNWY4YWExMjdjZjUxZWVhZjI3NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL2NvY29hL1ZpZGVvRnVsbHNjcmVlbk1hbmFnZXIubW0KKysrIGIvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL2NvY29hL1ZpZGVvRnVsbHNjcmVlbk1hbmFnZXIubW0KQEAgLTI4
NSw3ICsyODUsNyBAQCB2b2lkIFZpZGVvRnVsbHNjcmVlbk1hbmFnZXI6OmVudGVyVmlkZW9GdWxs
c2NyZWVuRm9yVmlkZW9FbGVtZW50KEhUTUxWaWRlb0VsZW1lbgogICAgICAgICBpbnRlcmZhY2Ut
PmxheWVySG9zdGluZ0NvbnRleHQoKS0+c2V0Um9vdExheWVyKHZpZGVvTGF5ZXIuZ2V0KCkpOwog
ICAgIH0KIAotICAgIG1fcGFnZS0+c2VuZChNZXNzYWdlczo6VmlkZW9GdWxsc2NyZWVuTWFuYWdl
clByb3h5OjpTZXR1cEZ1bGxzY3JlZW5XaXRoSUQoY29udGV4dElkLCBpbnRlcmZhY2UtPmxheWVy
SG9zdGluZ0NvbnRleHQoKS0+Y29udGV4dElEKCksIHZpZGVvUmVjdCwgbV9wYWdlLT5kZXZpY2VT
Y2FsZUZhY3RvcigpLCBpbnRlcmZhY2UtPmZ1bGxzY3JlZW5Nb2RlKCksIGFsbG93c1BpY3R1cmVJ
blBpY3R1cmUsIHN0YW5kYnkpKTsKKyAgICBtX3BhZ2UtPmluamVjdGVkQnVuZGxlVmlkZW9GdWxs
c2NyZWVuQ2xpZW50KCkuc2V0dXBGdWxsc2NyZWVuV2l0aElEKG1fcGFnZSwgY29udGV4dElkLCBp
bnRlcmZhY2UtPmxheWVySG9zdGluZ0NvbnRleHQoKS0+Y29udGV4dElEKCksIHZpZGVvUmVjdCwg
bV9wYWdlLT5kZXZpY2VTY2FsZUZhY3RvcigpLCBpbnRlcmZhY2UtPmZ1bGxzY3JlZW5Nb2RlKCks
IGFsbG93c1BpY3R1cmVJblBpY3R1cmUsIHN0YW5kYnkpOwogfQogCiB2b2lkIFZpZGVvRnVsbHNj
cmVlbk1hbmFnZXI6OmV4aXRWaWRlb0Z1bGxzY3JlZW5Gb3JWaWRlb0VsZW1lbnQoV2ViQ29yZTo6
SFRNTFZpZGVvRWxlbWVudCYgdmlkZW9FbGVtZW50KQpAQCAtMzAxLDcgKzMwMSw3IEBAIHZvaWQg
VmlkZW9GdWxsc2NyZWVuTWFuYWdlcjo6ZXhpdFZpZGVvRnVsbHNjcmVlbkZvclZpZGVvRWxlbWVu
dChXZWJDb3JlOjpIVE1MVmlkCiAgICAgICAgIHJldHVybjsKIAogICAgIGludGVyZmFjZS5zZXRB
bmltYXRpb25TdGF0ZShWaWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2VDb250ZXh0OjpBbmltYXRpb25U
eXBlOjpGcm9tRnVsbHNjcmVlbik7Ci0gICAgbV9wYWdlLT5zZW5kKE1lc3NhZ2VzOjpWaWRlb0Z1
bGxzY3JlZW5NYW5hZ2VyUHJveHk6OkV4aXRGdWxsc2NyZWVuKGNvbnRleHRJZCwgaW5saW5lVmlk
ZW9GcmFtZSh2aWRlb0VsZW1lbnQpKSk7CisgICAgbV9wYWdlLT5pbmplY3RlZEJ1bmRsZVZpZGVv
RnVsbHNjcmVlbkNsaWVudCgpLmV4aXRGdWxsc2NyZWVuKG1fcGFnZSwgY29udGV4dElkLCBpbmxp
bmVWaWRlb0ZyYW1lKHZpZGVvRWxlbWVudCkpOwogfQogCiB2b2lkIFZpZGVvRnVsbHNjcmVlbk1h
bmFnZXI6OmV4aXRWaWRlb0Z1bGxzY3JlZW5Ub01vZGVXaXRob3V0QW5pbWF0aW9uKFdlYkNvcmU6
OkhUTUxWaWRlb0VsZW1lbnQmIHZpZGVvRWxlbWVudCwgV2ViQ29yZTo6SFRNTE1lZGlhRWxlbWVu
dEVudW1zOjpWaWRlb0Z1bGxzY3JlZW5Nb2RlIHRhcmdldE1vZGUpCkBAIC0zMTcsNyArMzE3LDcg
QEAgdm9pZCBWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyOjpleGl0VmlkZW9GdWxsc2NyZWVuVG9Nb2Rl
V2l0aG91dEFuaW1hdGlvbihXZWJDb3JlOjoKIAogICAgIGludGVyZmFjZS5zZXRUYXJnZXRJc0Z1
bGxzY3JlZW4oZmFsc2UpOwogCi0gICAgbV9wYWdlLT5zZW5kKE1lc3NhZ2VzOjpWaWRlb0Z1bGxz
Y3JlZW5NYW5hZ2VyUHJveHk6OkV4aXRGdWxsc2NyZWVuV2l0aG91dEFuaW1hdGlvblRvTW9kZShj
b250ZXh0SWQsIHRhcmdldE1vZGUpKTsKKyAgICBtX3BhZ2UtPmluamVjdGVkQnVuZGxlVmlkZW9G
dWxsc2NyZWVuQ2xpZW50KCkuZXhpdEZ1bGxzY3JlZW5XaXRob3V0QW5pbWF0aW9uVG9Nb2RlKG1f
cGFnZSwgY29udGV4dElkLCB0YXJnZXRNb2RlKTsKICNlbHNlCiAgICAgVU5VU0VEX1BBUkFNKHZp
ZGVvRWxlbWVudCk7CiAgICAgVU5VU0VEX1BBUkFNKHRhcmdldE1vZGUpOwpAQCAtMzI5LDEzICsz
MjksMTMgQEAgdm9pZCBWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyOjpleGl0VmlkZW9GdWxsc2NyZWVu
VG9Nb2RlV2l0aG91dEFuaW1hdGlvbihXZWJDb3JlOjoKIHZvaWQgVmlkZW9GdWxsc2NyZWVuTWFu
YWdlcjo6aGFzVmlkZW9DaGFuZ2VkKHVpbnQ2NF90IGNvbnRleHRJZCwgYm9vbCBoYXNWaWRlbykK
IHsKICAgICBpZiAobV9wYWdlKQotICAgICAgICBtX3BhZ2UtPnNlbmQoTWVzc2FnZXM6OlZpZGVv
RnVsbHNjcmVlbk1hbmFnZXJQcm94eTo6U2V0SGFzVmlkZW8oY29udGV4dElkLCBoYXNWaWRlbykp
OworICAgICAgICBtX3BhZ2UtPmluamVjdGVkQnVuZGxlVmlkZW9GdWxsc2NyZWVuQ2xpZW50KCku
c2V0SGFzVmlkZW8obV9wYWdlLCBjb250ZXh0SWQsIGhhc1ZpZGVvKTsKIH0KIAogdm9pZCBWaWRl
b0Z1bGxzY3JlZW5NYW5hZ2VyOjp2aWRlb0RpbWVuc2lvbnNDaGFuZ2VkKHVpbnQ2NF90IGNvbnRl
eHRJZCwgY29uc3QgRmxvYXRTaXplJiB2aWRlb0RpbWVuc2lvbnMpCiB7CiAgICAgaWYgKG1fcGFn
ZSkKLSAgICAgICAgbV9wYWdlLT5zZW5kKE1lc3NhZ2VzOjpWaWRlb0Z1bGxzY3JlZW5NYW5hZ2Vy
UHJveHk6OlNldFZpZGVvRGltZW5zaW9ucyhjb250ZXh0SWQsIHZpZGVvRGltZW5zaW9ucykpOwor
ICAgICAgICBtX3BhZ2UtPmluamVjdGVkQnVuZGxlVmlkZW9GdWxsc2NyZWVuQ2xpZW50KCkuc2V0
VmlkZW9EaW1lbnNpb25zKG1fcGFnZSwgY29udGV4dElkLCB2aWRlb0RpbWVuc2lvbnMpOwogfQog
CiAjcHJhZ21hIG1hcmsgTWVzc2FnZXMgZnJvbSBWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyUHJveHk6
CkBAIC0zNTcsNyArMzU3LDcgQEAgdm9pZCBWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyOjpyZXF1ZXN0
VXBkYXRlSW5saW5lUmVjdCh1aW50NjRfdCBjb250ZXh0SWQpCiAKICAgICBhdXRvJiBtb2RlbCA9
IGVuc3VyZU1vZGVsKGNvbnRleHRJZCk7CiAgICAgSW50UmVjdCBpbmxpbmVSZWN0ID0gaW5saW5l
VmlkZW9GcmFtZSgqbW9kZWwudmlkZW9FbGVtZW50KCkpOwotICAgIG1fcGFnZS0+c2VuZChNZXNz
YWdlczo6VmlkZW9GdWxsc2NyZWVuTWFuYWdlclByb3h5OjpTZXRJbmxpbmVSZWN0KGNvbnRleHRJ
ZCwgaW5saW5lUmVjdCwgaW5saW5lUmVjdCAhPSBJbnRSZWN0KDAsIDAsIDAsIDApKSk7CisgICAg
bV9wYWdlLT5pbmplY3RlZEJ1bmRsZVZpZGVvRnVsbHNjcmVlbkNsaWVudCgpLnNldElubGluZVJl
Y3QobV9wYWdlLCBjb250ZXh0SWQsIGlubGluZVJlY3QsIGlubGluZVJlY3QgIT0gSW50UmVjdCgw
LCAwLCAwLCAwKSk7CiB9CiAKIHZvaWQgVmlkZW9GdWxsc2NyZWVuTWFuYWdlcjo6cmVxdWVzdFZp
ZGVvQ29udGVudExheWVyKHVpbnQ2NF90IGNvbnRleHRJZCkKQEAgLTM2OCw4ICszNjgsOCBAQCB2
b2lkIFZpZGVvRnVsbHNjcmVlbk1hbmFnZXI6OnJlcXVlc3RWaWRlb0NvbnRlbnRMYXllcih1aW50
NjRfdCBjb250ZXh0SWQpCiAKICAgICBtb2RlbC0+c2V0VmlkZW9GdWxsc2NyZWVuTGF5ZXIodmlk
ZW9MYXllciwgW3Byb3RlY3RlZFRoaXMgPSBtYWtlUmVmUHRyKHRoaXMpLCB0aGlzLCBjb250ZXh0
SWRdICgpIG11dGFibGUgewogICAgICAgICBkaXNwYXRjaF9hc3luYyhkaXNwYXRjaF9nZXRfbWFp
bl9xdWV1ZSgpLCBbcHJvdGVjdGVkVGhpcyA9IFdURk1vdmUocHJvdGVjdGVkVGhpcyksIHRoaXMs
IGNvbnRleHRJZF0gewotICAgICAgICAgICAgaWYgKHByb3RlY3RlZFRoaXMtPm1fcGFnZSkKLSAg
ICAgICAgICAgICAgICBtX3BhZ2UtPnNlbmQoTWVzc2FnZXM6OlZpZGVvRnVsbHNjcmVlbk1hbmFn
ZXJQcm94eTo6U2V0SGFzVmlkZW9Db250ZW50TGF5ZXIoY29udGV4dElkLCB0cnVlKSk7CisgICAg
ICAgICAgICBpZiAobV9wYWdlKQorICAgICAgICAgICAgICAgIG1fcGFnZS0+aW5qZWN0ZWRCdW5k
bGVWaWRlb0Z1bGxzY3JlZW5DbGllbnQoKS5zZXRIYXNWaWRlb0NvbnRlbnRMYXllcihtX3BhZ2Us
IGNvbnRleHRJZCwgdHJ1ZSk7CiAgICAgICAgIH0pOwogICAgIH0pOwogfQpAQCAtMzg0LDggKzM4
NCw4IEBAIHZvaWQgVmlkZW9GdWxsc2NyZWVuTWFuYWdlcjo6cmV0dXJuVmlkZW9Db250ZW50TGF5
ZXIodWludDY0X3QgY29udGV4dElkKQogICAgICAgICBkaXNwYXRjaF9hc3luYyhkaXNwYXRjaF9n
ZXRfbWFpbl9xdWV1ZSgpLCBbcHJvdGVjdGVkVGhpcyA9IFdURk1vdmUocHJvdGVjdGVkVGhpcyks
IHRoaXMsIGNvbnRleHRJZCwgbW9kZWxdICgpIG11dGFibGUgewogICAgICAgICAgICAgbW9kZWwt
PnNldFZpZGVvRnVsbHNjcmVlbkxheWVyKG5pbCwgW3Byb3RlY3RlZFRoaXMgPSBXVEZNb3ZlKHBy
b3RlY3RlZFRoaXMpLCB0aGlzLCBjb250ZXh0SWRdICgpIG11dGFibGUgewogICAgICAgICAgICAg
ICAgIGRpc3BhdGNoX2FzeW5jKGRpc3BhdGNoX2dldF9tYWluX3F1ZXVlKCksIFtwcm90ZWN0ZWRU
aGlzID0gV1RGTW92ZShwcm90ZWN0ZWRUaGlzKSwgdGhpcywgY29udGV4dElkXSB7Ci0gICAgICAg
ICAgICAgICAgICAgIGlmIChwcm90ZWN0ZWRUaGlzLT5tX3BhZ2UpCi0gICAgICAgICAgICAgICAg
ICAgICAgICBtX3BhZ2UtPnNlbmQoTWVzc2FnZXM6OlZpZGVvRnVsbHNjcmVlbk1hbmFnZXJQcm94
eTo6U2V0SGFzVmlkZW9Db250ZW50TGF5ZXIoY29udGV4dElkLCBmYWxzZSkpOworICAgICAgICAg
ICAgICAgICAgICBpZiAobV9wYWdlKQorICAgICAgICAgICAgICAgICAgICAgICAgbV9wYWdlLT5p
bmplY3RlZEJ1bmRsZVZpZGVvRnVsbHNjcmVlbkNsaWVudCgpLnNldEhhc1ZpZGVvQ29udGVudExh
eWVyKG1fcGFnZSwgY29udGV4dElkLCBmYWxzZSk7CiAgICAgICAgICAgICAgICAgfSk7CiAgICAg
ICAgICAgICB9KTsKICAgICAgICAgfSk7CkBAIC00MDksOCArNDA5LDggQEAgdm9pZCBWaWRlb0Z1
bGxzY3JlZW5NYW5hZ2VyOjpkaWRTZXR1cEZ1bGxzY3JlZW4odWludDY0X3QgY29udGV4dElkKQog
CiAgICAgbW9kZWwtPnNldFZpZGVvRnVsbHNjcmVlbkxheWVyKHZpZGVvTGF5ZXIsIFtwcm90ZWN0
ZWRUaGlzID0gbWFrZVJlZlB0cih0aGlzKSwgdGhpcywgY29udGV4dElkXSAoKSBtdXRhYmxlIHsK
ICAgICAgICAgZGlzcGF0Y2hfYXN5bmMoZGlzcGF0Y2hfZ2V0X21haW5fcXVldWUoKSwgW3Byb3Rl
Y3RlZFRoaXMgPSBXVEZNb3ZlKHByb3RlY3RlZFRoaXMpLCB0aGlzLCBjb250ZXh0SWRdIHsKLSAg
ICAgICAgICAgIGlmIChwcm90ZWN0ZWRUaGlzLT5tX3BhZ2UpCi0gICAgICAgICAgICAgICAgbV9w
YWdlLT5zZW5kKE1lc3NhZ2VzOjpWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyUHJveHk6OkVudGVyRnVs
bHNjcmVlbihjb250ZXh0SWQpKTsKKyAgICAgICAgICAgIGlmIChtX3BhZ2UpCisgICAgICAgICAg
ICAgICAgbV9wYWdlLT5pbmplY3RlZEJ1bmRsZVZpZGVvRnVsbHNjcmVlbkNsaWVudCgpLmVudGVy
RnVsbHNjcmVlbihtX3BhZ2UsIGNvbnRleHRJZCk7CiAgICAgICAgIH0pOwogICAgIH0pOwogI2Vu
ZGlmCkBAIC00MjYsMTAgKzQyNiwxMCBAQCB2b2lkIFZpZGVvRnVsbHNjcmVlbk1hbmFnZXI6Ondp
bGxFeGl0RnVsbHNjcmVlbih1aW50NjRfdCBjb250ZXh0SWQpCiAgICAgaWYgKCF2aWRlb0VsZW1l
bnQpCiAgICAgICAgIHJldHVybjsKIAotICAgIGRpc3BhdGNoX2FzeW5jKGRpc3BhdGNoX2dldF9t
YWluX3F1ZXVlKCksIFtwcm90ZWN0ZWRUaGlzID0gbWFrZVJlZlB0cih0aGlzKSwgdmlkZW9FbGVt
ZW50ID0gV1RGTW92ZSh2aWRlb0VsZW1lbnQpLCBjb250ZXh0SWRdIHsKKyAgICBkaXNwYXRjaF9h
c3luYyhkaXNwYXRjaF9nZXRfbWFpbl9xdWV1ZSgpLCBbcHJvdGVjdGVkVGhpcyA9IG1ha2VSZWZQ
dHIodGhpcyksIHRoaXMsIHZpZGVvRWxlbWVudCA9IFdURk1vdmUodmlkZW9FbGVtZW50KSwgY29u
dGV4dElkXSB7CiAgICAgICAgIHZpZGVvRWxlbWVudC0+d2lsbEV4aXRGdWxsc2NyZWVuKCk7Ci0g
ICAgICAgIGlmIChwcm90ZWN0ZWRUaGlzLT5tX3BhZ2UpCi0gICAgICAgICAgICBwcm90ZWN0ZWRU
aGlzLT5tX3BhZ2UtPnNlbmQoTWVzc2FnZXM6OlZpZGVvRnVsbHNjcmVlbk1hbmFnZXJQcm94eTo6
UHJlcGFyZWRUb0V4aXRGdWxsc2NyZWVuKGNvbnRleHRJZCkpOworICAgICAgICBpZiAobV9wYWdl
KQorICAgICAgICAgICAgbV9wYWdlLT5pbmplY3RlZEJ1bmRsZVZpZGVvRnVsbHNjcmVlbkNsaWVu
dCgpLnByZXBhcmVkVG9FeGl0RnVsbHNjcmVlbihtX3BhZ2UsIGNvbnRleHRJZCk7CiAgICAgfSk7
CiB9CiAKQEAgLTQ1NCw5ICs0NTQsOSBAQCB2b2lkIFZpZGVvRnVsbHNjcmVlbk1hbmFnZXI6OmRp
ZEVudGVyRnVsbHNjcmVlbih1aW50NjRfdCBjb250ZXh0SWQpCiAgICAgICAgIHJldHVybjsKIAog
ICAgIC8vIGV4aXQgZnVsbHNjcmVlbiBub3cgaWYgaXQgd2FzIHByZXZpb3VzbHkgcmVxdWVzdGVk
IGR1cmluZyBhbiBhbmltYXRpb24uCi0gICAgZGlzcGF0Y2hfYXN5bmMoZGlzcGF0Y2hfZ2V0X21h
aW5fcXVldWUoKSwgW3Byb3RlY3RlZFRoaXMgPSBtYWtlUmVmUHRyKHRoaXMpLCB2aWRlb0VsZW1l
bnRdIHsKLSAgICAgICAgaWYgKHByb3RlY3RlZFRoaXMtPm1fcGFnZSkKLSAgICAgICAgICAgIHBy
b3RlY3RlZFRoaXMtPmV4aXRWaWRlb0Z1bGxzY3JlZW5Gb3JWaWRlb0VsZW1lbnQoKnZpZGVvRWxl
bWVudCk7CisgICAgZGlzcGF0Y2hfYXN5bmMoZGlzcGF0Y2hfZ2V0X21haW5fcXVldWUoKSwgW3By
b3RlY3RlZFRoaXMgPSBtYWtlUmVmUHRyKHRoaXMpLCB0aGlzLCB2aWRlb0VsZW1lbnRdIHsKKyAg
ICAgICAgaWYgKG1fcGFnZSkKKyAgICAgICAgICAgIGV4aXRWaWRlb0Z1bGxzY3JlZW5Gb3JWaWRl
b0VsZW1lbnQoKnZpZGVvRWxlbWVudCk7CiAgICAgfSk7CiB9CiAKQEAgLTQ2OSw5ICs0NjksOSBA
QCB2b2lkIFZpZGVvRnVsbHNjcmVlbk1hbmFnZXI6OmRpZEV4aXRGdWxsc2NyZWVuKHVpbnQ2NF90
IGNvbnRleHRJZCkKICAgICBzdGQ6OnRpZShtb2RlbCwgaW50ZXJmYWNlKSA9IGVuc3VyZU1vZGVs
QW5kSW50ZXJmYWNlKGNvbnRleHRJZCk7CiAKICNpZiBQTEFURk9STShJT1NfRkFNSUxZKQotICAg
IGRpc3BhdGNoX2FzeW5jKGRpc3BhdGNoX2dldF9tYWluX3F1ZXVlKCksIFtwcm90ZWN0ZWRUaGlz
ID0gbWFrZVJlZlB0cih0aGlzKSwgY29udGV4dElkLCBpbnRlcmZhY2VdIHsKLSAgICAgICAgaWYg
KHByb3RlY3RlZFRoaXMtPm1fcGFnZSkKLSAgICAgICAgICAgIHByb3RlY3RlZFRoaXMtPm1fcGFn
ZS0+c2VuZChNZXNzYWdlczo6VmlkZW9GdWxsc2NyZWVuTWFuYWdlclByb3h5OjpDbGVhbnVwRnVs
bHNjcmVlbihjb250ZXh0SWQpKTsKKyAgICBkaXNwYXRjaF9hc3luYyhkaXNwYXRjaF9nZXRfbWFp
bl9xdWV1ZSgpLCBbcHJvdGVjdGVkVGhpcyA9IG1ha2VSZWZQdHIodGhpcyksIHRoaXMsIGNvbnRl
eHRJZCwgaW50ZXJmYWNlXSB7CisgICAgICAgIGlmIChtX3BhZ2UpCisgICAgICAgICAgICBtX3Bh
Z2UtPmluamVjdGVkQnVuZGxlVmlkZW9GdWxsc2NyZWVuQ2xpZW50KCkuY2xlYW51cEZ1bGxzY3Jl
ZW4obV9wYWdlLCBjb250ZXh0SWQpOwogICAgIH0pOwogI2Vsc2UKICAgICBtb2RlbC0+d2FpdEZv
clByZXBhcmVkRm9ySW5saW5lVGhlbihbcHJvdGVjdGVkVGhpcyA9IG1ha2VSZWZQdHIodGhpcyks
IGNvbnRleHRJZCwgaW50ZXJmYWNlLCBtb2RlbF0gKCkgbXV0YWJsZSB7CkBAIC00ODMsMTQgKzQ4
MywxNCBAQCB2b2lkIFZpZGVvRnVsbHNjcmVlbk1hbmFnZXI6OmRpZEV4aXRGdWxsc2NyZWVuKHVp
bnQ2NF90IGNvbnRleHRJZCkKICAgICAgICAgICAgICAgICAgICAgICAgIGludGVyZmFjZS0+c2V0
TGF5ZXJIb3N0aW5nQ29udGV4dChudWxscHRyKTsKICAgICAgICAgICAgICAgICAgICAgfQogICAg
ICAgICAgICAgICAgICAgICBpZiAocHJvdGVjdGVkVGhpcy0+bV9wYWdlKQotICAgICAgICAgICAg
ICAgICAgICAgICAgcHJvdGVjdGVkVGhpcy0+bV9wYWdlLT5zZW5kKE1lc3NhZ2VzOjpWaWRlb0Z1
bGxzY3JlZW5NYW5hZ2VyUHJveHk6OkNsZWFudXBGdWxsc2NyZWVuKGNvbnRleHRJZCkpOworICAg
ICAgICAgICAgICAgICAgICAgICAgcHJvdGVjdGVkVGhpcy0+bV9wYWdlLT5pbmplY3RlZEJ1bmRs
ZVZpZGVvRnVsbHNjcmVlbkNsaWVudCgpLmNsZWFudXBGdWxsc2NyZWVuKHByb3RlY3RlZFRoaXMt
Pm1fcGFnZSwgY29udGV4dElkKTsKICAgICAgICAgICAgICAgICB9KTsKICAgICAgICAgICAgIH0p
OwogICAgICAgICB9KTsKICAgICB9KTsKICNlbmRpZgogfQotICAgIAorCiB2b2lkIFZpZGVvRnVs
bHNjcmVlbk1hbmFnZXI6OmRpZENsZWFudXBGdWxsc2NyZWVuKHVpbnQ2NF90IGNvbnRleHRJZCkK
IHsKICAgICBMT0coRnVsbHNjcmVlbiwgIlZpZGVvRnVsbHNjcmVlbk1hbmFnZXI6OmRpZENsZWFu
dXBGdWxsc2NyZWVuKCVwLCAleCkiLCB0aGlzLCBjb250ZXh0SWQpOwpAQCAtNTE4LDkgKzUxOCw5
IEBAIHZvaWQgVmlkZW9GdWxsc2NyZWVuTWFuYWdlcjo6ZGlkQ2xlYW51cEZ1bGxzY3JlZW4odWlu
dDY0X3QgY29udGV4dElkKQogICAgIGlmICghdmlkZW9FbGVtZW50IHx8ICF0YXJnZXRJc0Z1bGxz
Y3JlZW4pCiAgICAgICAgIHJldHVybjsKIAotICAgIGRpc3BhdGNoX2FzeW5jKGRpc3BhdGNoX2dl
dF9tYWluX3F1ZXVlKCksIFtwcm90ZWN0ZWRUaGlzID0gbWFrZVJlZlB0cih0aGlzKSwgdmlkZW9F
bGVtZW50LCBtb2RlLCBzdGFuZGJ5XSB7Ci0gICAgICAgIGlmIChwcm90ZWN0ZWRUaGlzLT5tX3Bh
Z2UpCi0gICAgICAgICAgICBwcm90ZWN0ZWRUaGlzLT5lbnRlclZpZGVvRnVsbHNjcmVlbkZvclZp
ZGVvRWxlbWVudCgqdmlkZW9FbGVtZW50LCBtb2RlLCBzdGFuZGJ5KTsKKyAgICBkaXNwYXRjaF9h
c3luYyhkaXNwYXRjaF9nZXRfbWFpbl9xdWV1ZSgpLCBbcHJvdGVjdGVkVGhpcyA9IG1ha2VSZWZQ
dHIodGhpcyksIHRoaXMsIHZpZGVvRWxlbWVudCwgbW9kZSwgc3RhbmRieV0geworICAgICAgICBp
ZiAobV9wYWdlKQorICAgICAgICAgICAgZW50ZXJWaWRlb0Z1bGxzY3JlZW5Gb3JWaWRlb0VsZW1l
bnQoKnZpZGVvRWxlbWVudCwgbW9kZSwgc3RhbmRieSk7CiAgICAgfSk7CiB9CiAgICAgCkBAIC01
MzgsNyArNTM4LDcgQEAgdm9pZCBWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyOjpmdWxsc2NyZWVuTWF5
UmV0dXJuVG9JbmxpbmUodWludDY0X3QgY29udGV4dElkLCBib28KIAogICAgIGlmICghaXNQYWdl
VmlzaWJsZSkKICAgICAgICAgbW9kZWwudmlkZW9FbGVtZW50KCktPnNjcm9sbEludG9WaWV3SWZO
b3RWaXNpYmxlKGZhbHNlKTsKLSAgICBtX3BhZ2UtPnNlbmQoTWVzc2FnZXM6OlZpZGVvRnVsbHNj
cmVlbk1hbmFnZXJQcm94eTo6UHJlcGFyZWRUb1JldHVyblRvSW5saW5lKGNvbnRleHRJZCwgdHJ1
ZSwgaW5saW5lVmlkZW9GcmFtZSgqbW9kZWwudmlkZW9FbGVtZW50KCkpKSk7CisgICAgbV9wYWdl
LT5pbmplY3RlZEJ1bmRsZVZpZGVvRnVsbHNjcmVlbkNsaWVudCgpLnByZXBhcmVkVG9SZXR1cm5U
b0lubGluZShtX3BhZ2UsIGNvbnRleHRJZCwgdHJ1ZSwgaW5saW5lVmlkZW9GcmFtZSgqbW9kZWwu
dmlkZW9FbGVtZW50KCkpKTsKIH0KIAogdm9pZCBWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyOjpyZXF1
ZXN0Um91dGVTaGFyaW5nUG9saWN5QW5kQ29udGV4dFVJRCh1aW50NjRfdCBjb250ZXh0SWQsIE1l
c3NhZ2VzOjpWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyOjpSZXF1ZXN0Um91dGVTaGFyaW5nUG9saWN5
QW5kQ29udGV4dFVJRDo6QXN5bmNSZXBseSYmIHJlcGx5KQpkaWZmIC0tZ2l0IGEvVG9vbHMvQ2hh
bmdlTG9nIGIvVG9vbHMvQ2hhbmdlTG9nCmluZGV4IDNiNTE4YzVjMjFjNTBhNjM0ZGNkYjAzOTNh
Mjg0MzljNGRmZWVmNGIuLmIwNTA0MzE3Y2ZmNzVkYmI2OTEwNjE2NTAxMDYyODRiNWM5MmY4NWUg
MTAwNjQ0Ci0tLSBhL1Rvb2xzL0NoYW5nZUxvZworKysgYi9Ub29scy9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwzMSBAQAorMjAyMC0wNC0xNyAgUGVuZyBMaXUgIDxwZW5nLmxpdTZAYXBwbGUuY29tPgor
CisgICAgICAgIFVwZGF0ZSBXZWJLaXRUZXN0UnVubmVyIHRvIHN1cHBvcnQgcnVubmluZyBtdWx0
aXBsZSB2aWRlbyBmdWxsc2NyZWVuIGFuZCBQaWN0dXJlLWluLVBpY3R1cmUgdGVzdHMgc2ltdWx0
YW5lb3VzbHkKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTIwMzcyMworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAg
IEFkZCBhbiBpbmplY3RlZCBidW5kbGUgY2xpZW50IG9mIHZpZGVvIGZ1bGxzY3JlZW4gaW4gV2Vi
S2l0VGVzdFJ1bm5lciB0byBtb2NrIHRoZSBiZWhhdmlvcgorICAgICAgICBvZiB0aGUgdmlkZW8g
ZnVsbHNjcmVlbiBhbmQgcGljdHVyZS1pbi1waWN0dXJlIGltcGxlbWVudGF0aW9uIGluIHRoZSBV
SSBwcm9jZXNzLgorICAgICAgICBXaXRoIHRoaXMgcGF0Y2gsIHdlIGNhbiB0ZXN0IHRoZSB2aWRl
byBmdWxsc2NyZWVuIGFuZCBwaWN0dXJlLWluLXBpY3R1cmUgaW1wbGVtZW50YXRpb24gaW4KKyAg
ICAgICAgdGhlIFdlYiBwcm9jZXNzIHdpdGhvdXQgdGhlIGludm9sdmVtZW50IG9mIHRoZSBVSSBw
cm9jZXNzIHNpZGUgaW1wbGVtZW50YXRpb24uIFNvIHRoYXQKKyAgICAgICAgd2UgY2FuIHJ1biBt
dWx0aXBsZSB2aWRlbyBmdWxsc2NyZWVuIGFuZCBwaWN0dXJlLWluLXBpY3R1cmUgdGVzdHMgaW4g
cGFyYWxsZWwuCisKKyAgICAgICAgKiBXZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0lu
amVjdGVkQnVuZGxlUGFnZS5jcHA6CisgICAgICAgIChXVFI6OkluamVjdGVkQnVuZGxlUGFnZTo6
SW5qZWN0ZWRCdW5kbGVQYWdlKToKKyAgICAgICAgKFdUUjo6SW5qZWN0ZWRCdW5kbGVQYWdlOjpz
ZXRIYXNWaWRlbyk6CisgICAgICAgIChXVFI6OkluamVjdGVkQnVuZGxlUGFnZTo6c2V0VmlkZW9E
aW1lbnNpb25zKToKKyAgICAgICAgKFdUUjo6SW5qZWN0ZWRCdW5kbGVQYWdlOjpzZXR1cEZ1bGxz
Y3JlZW5XaXRoSUQpOgorICAgICAgICAoV1RSOjpJbmplY3RlZEJ1bmRsZVBhZ2U6OmVudGVyRnVs
bHNjcmVlbik6CisgICAgICAgIChXVFI6OkluamVjdGVkQnVuZGxlUGFnZTo6ZXhpdEZ1bGxzY3Jl
ZW4pOgorICAgICAgICAoV1RSOjpJbmplY3RlZEJ1bmRsZVBhZ2U6OnNldElubGluZVJlY3QpOgor
ICAgICAgICAoV1RSOjpJbmplY3RlZEJ1bmRsZVBhZ2U6OnNldEhhc1ZpZGVvQ29udGVudExheWVy
KToKKyAgICAgICAgKFdUUjo6SW5qZWN0ZWRCdW5kbGVQYWdlOjpjbGVhbnVwRnVsbHNjcmVlbik6
CisgICAgICAgIChXVFI6OkluamVjdGVkQnVuZGxlUGFnZTo6cHJlcGFyZWRUb1JldHVyblRvSW5s
aW5lKToKKyAgICAgICAgKFdUUjo6SW5qZWN0ZWRCdW5kbGVQYWdlOjpwcmVwYXJlZFRvRXhpdEZ1
bGxzY3JlZW4pOgorICAgICAgICAoV1RSOjpJbmplY3RlZEJ1bmRsZVBhZ2U6OmV4aXRGdWxsc2Ny
ZWVuV2l0aG91dEFuaW1hdGlvblRvTW9kZSk6CisgICAgICAgICogV2ViS2l0VGVzdFJ1bm5lci9J
bmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZVBhZ2UuaDoKKwogMjAyMC0wNC0xNyAgQnJlbnQg
RnVsZ2hhbSAgPGJmdWxnaGFtQGFwcGxlLmNvbT4KIAogICAgICAgICBVbnJldmlld2VkIGJ1aWxk
IGZpeCBhZnRlciByMjYwMjY5LgpkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9J
bmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZVBhZ2UuY3BwIGIvVG9vbHMvV2ViS2l0VGVzdFJ1
bm5lci9JbmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZVBhZ2UuY3BwCmluZGV4IDQwYzQ1YTc5
MTU1MDY5MWVmZmZhNmE0ZDFjMzdjNDkzMWIwNGVkODIuLjdjYTQ4YTc4ZjY0ZWI4ZWZhNTNkNzBj
YmQzMDIzOGE2Yjk0ZjY5NmMgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5q
ZWN0ZWRCdW5kbGUvSW5qZWN0ZWRCdW5kbGVQYWdlLmNwcAorKysgYi9Ub29scy9XZWJLaXRUZXN0
UnVubmVyL0luamVjdGVkQnVuZGxlL0luamVjdGVkQnVuZGxlUGFnZS5jcHAKQEAgLTM5MCw2ICsz
OTAsMjggQEAgSW5qZWN0ZWRCdW5kbGVQYWdlOjpJbmplY3RlZEJ1bmRsZVBhZ2UoV0tCdW5kbGVQ
YWdlUmVmIHBhZ2UpCiAgICAgfTsKICAgICBXS0J1bmRsZVBhZ2VTZXRGdWxsU2NyZWVuQ2xpZW50
KG1fcGFnZSwgJmZ1bGxTY3JlZW5DbGllbnQuYmFzZSk7CiAjZW5kaWYKKworI2lmIEVOQUJMRShW
SURFT19QUkVTRU5UQVRJT05fTU9ERSkKKyAgICBXS0J1bmRsZVBhZ2VWaWRlb0Z1bGxzY3JlZW5D
bGllbnRWMCB2aWRlb0Z1bGxzY3JlZW5DbGllbnQgPSB7CisgICAgICAgIHsgMCwgdGhpcyB9LAor
ICAgICAgICBzZXRIYXNWaWRlbywKKyAgICAgICAgc2V0VmlkZW9EaW1lbnNpb25zLAorICAgICAg
ICBzZXR1cEZ1bGxzY3JlZW5XaXRoSUQsCisgICAgICAgIGVudGVyRnVsbHNjcmVlbiwKKyAgICAg
ICAgZXhpdEZ1bGxzY3JlZW4sCisgICAgICAgIHNldElubGluZVJlY3QsCisgICAgICAgIHNldEhh
c1ZpZGVvQ29udGVudExheWVyLAorICAgICAgICBjbGVhbnVwRnVsbHNjcmVlbiwKKyAgICAgICAg
cHJlcGFyZWRUb1JldHVyblRvSW5saW5lLAorICAgICAgICBwcmVwYXJlZFRvRXhpdEZ1bGxzY3Jl
ZW4sCisjaWYgUExBVEZPUk0oTUFDKQorICAgICAgICBleGl0RnVsbHNjcmVlbldpdGhvdXRBbmlt
YXRpb25Ub01vZGUKKyNlbHNlCisgICAgICAgIDAsIC8qIGV4aXRGdWxsc2NyZWVuV2l0aG91dEFu
aW1hdGlvblRvTW9kZSAqLworI2VuZGlmCisgICAgfTsKKyAgICBXS0J1bmRsZVBhZ2VTZXRWaWRl
b0Z1bGxzY3JlZW5DbGllbnQobV9wYWdlLCAmdmlkZW9GdWxsc2NyZWVuQ2xpZW50LmJhc2UpOwor
I2VuZGlmIC8vIEVOQUJMRShWSURFT19QUkVTRU5UQVRJT05fTU9ERSkKIH0KIAogSW5qZWN0ZWRC
dW5kbGVQYWdlOjp+SW5qZWN0ZWRCdW5kbGVQYWdlKCkKQEAgLTE5MzIsNiArMTk1NCwxMzAgQEAg
dm9pZCBJbmplY3RlZEJ1bmRsZVBhZ2U6OmNsb3NlRnVsbFNjcmVlbihXS0J1bmRsZVBhZ2VSZWYg
cGFnZVJlZikKIH0KICNlbmRpZgogCisjaWYgRU5BQkxFKFZJREVPX1BSRVNFTlRBVElPTl9NT0RF
KQorCit2b2lkIEluamVjdGVkQnVuZGxlUGFnZTo6c2V0SGFzVmlkZW8oV0tCdW5kbGVQYWdlUmVm
LCB1aW50NjRfdCBjb250ZXh0SWQsIGJvb2wgaGFzVmlkZW8pCit7CisgICAgVU5VU0VEX1BBUkFN
KGNvbnRleHRJZCk7CisgICAgVU5VU0VEX1BBUkFNKGhhc1ZpZGVvKTsKKworICAgIGF1dG8mIGlu
amVjdGVkQnVuZGxlID0gSW5qZWN0ZWRCdW5kbGU6OnNpbmdsZXRvbigpOworICAgIGlmIChpbmpl
Y3RlZEJ1bmRsZS50ZXN0UnVubmVyKCktPnNob3VsZER1bXBGdWxsU2NyZWVuQ2FsbGJhY2tzKCkp
CisgICAgICAgIGluamVjdGVkQnVuZGxlLm91dHB1dFRleHQoInNldEhhc1ZpZGVvKClcbiIpOwor
fQorCit2b2lkIEluamVjdGVkQnVuZGxlUGFnZTo6c2V0VmlkZW9EaW1lbnNpb25zKFdLQnVuZGxl
UGFnZVJlZiwgdWludDY0X3QgY29udGV4dElkLCBXS1NpemUgdmlkZW9EaW1lbnNpb25zKQorewor
ICAgIFVOVVNFRF9QQVJBTShjb250ZXh0SWQpOworICAgIFVOVVNFRF9QQVJBTSh2aWRlb0RpbWVu
c2lvbnMpOworCisgICAgYXV0byYgaW5qZWN0ZWRCdW5kbGUgPSBJbmplY3RlZEJ1bmRsZTo6c2lu
Z2xldG9uKCk7CisgICAgaWYgKGluamVjdGVkQnVuZGxlLnRlc3RSdW5uZXIoKS0+c2hvdWxkRHVt
cEZ1bGxTY3JlZW5DYWxsYmFja3MoKSkKKyAgICAgICAgaW5qZWN0ZWRCdW5kbGUub3V0cHV0VGV4
dCgic2V0VmlkZW9EaW1lbnNpb25zKClcbiIpOworfQorCit2b2lkIEluamVjdGVkQnVuZGxlUGFn
ZTo6c2V0dXBGdWxsc2NyZWVuV2l0aElEKFdLQnVuZGxlUGFnZVJlZiBwYWdlLCB1aW50NjRfdCBj
b250ZXh0SWQsIHVpbnQzMl90IHZpZGVvTGF5ZXJJZCwgV0tSZWN0IGluaXRpYWxSZWN0LCBmbG9h
dCBob3N0aW5nU2NhbGVGYWN0b3IsIFdLVmlkZW9GdWxsc2NyZWVuTW9kZSB2aWRlb0Z1bGxzY3Jl
ZW5Nb2RlLCBib29sIGFsbG93c1BpY3R1cmVJblBpY3R1cmUsIGJvb2wgc3RhbmRieSkKK3sKKyAg
ICBVTlVTRURfUEFSQU0odmlkZW9MYXllcklkKTsKKyAgICBVTlVTRURfUEFSQU0oaW5pdGlhbFJl
Y3QpOworICAgIFVOVVNFRF9QQVJBTShob3N0aW5nU2NhbGVGYWN0b3IpOworICAgIFVOVVNFRF9Q
QVJBTSh2aWRlb0Z1bGxzY3JlZW5Nb2RlKTsKKyAgICBVTlVTRURfUEFSQU0oYWxsb3dzUGljdHVy
ZUluUGljdHVyZSk7CisgICAgVU5VU0VEX1BBUkFNKHN0YW5kYnkpOworCisgICAgYXV0byYgaW5q
ZWN0ZWRCdW5kbGUgPSBJbmplY3RlZEJ1bmRsZTo6c2luZ2xldG9uKCk7CisgICAgaWYgKGluamVj
dGVkQnVuZGxlLnRlc3RSdW5uZXIoKS0+c2hvdWxkRHVtcEZ1bGxTY3JlZW5DYWxsYmFja3MoKSkK
KyAgICAgICAgaW5qZWN0ZWRCdW5kbGUub3V0cHV0VGV4dCgic2V0dXBGdWxsc2NyZWVuV2l0aElE
KClcbiIpOworCisgICAgV0tCdW5kbGVQYWdlUmVxdWVzdFZpZGVvQ29udGVudExheWVyKHBhZ2Us
IGNvbnRleHRJZCk7Cit9CisKK3ZvaWQgSW5qZWN0ZWRCdW5kbGVQYWdlOjplbnRlckZ1bGxzY3Jl
ZW4oV0tCdW5kbGVQYWdlUmVmIHBhZ2UsIHVpbnQ2NF90IGNvbnRleHRJZCkKK3sKKyAgICBhdXRv
JiBpbmplY3RlZEJ1bmRsZSA9IEluamVjdGVkQnVuZGxlOjpzaW5nbGV0b24oKTsKKyAgICBpZiAo
aW5qZWN0ZWRCdW5kbGUudGVzdFJ1bm5lcigpLT5zaG91bGREdW1wRnVsbFNjcmVlbkNhbGxiYWNr
cygpKQorICAgICAgICBpbmplY3RlZEJ1bmRsZS5vdXRwdXRUZXh0KCJlbnRlckZ1bGxzY3JlZW4o
KVxuIik7CisKKyAgICBXS0J1bmRsZVBhZ2VEaWRFbnRlclZpZGVvRnVsbHNjcmVlbihwYWdlLCBj
b250ZXh0SWQpOworfQorCit2b2lkIEluamVjdGVkQnVuZGxlUGFnZTo6ZXhpdEZ1bGxzY3JlZW4o
V0tCdW5kbGVQYWdlUmVmIHBhZ2UsIHVpbnQ2NF90IGNvbnRleHRJZCwgV0tSZWN0IGZpbmFsUmVj
dCkKK3sKKyAgICBVTlVTRURfUEFSQU0oZmluYWxSZWN0KTsKKworICAgIGF1dG8mIGluamVjdGVk
QnVuZGxlID0gSW5qZWN0ZWRCdW5kbGU6OnNpbmdsZXRvbigpOworICAgIGlmIChpbmplY3RlZEJ1
bmRsZS50ZXN0UnVubmVyKCktPnNob3VsZER1bXBGdWxsU2NyZWVuQ2FsbGJhY2tzKCkpCisgICAg
ICAgIGluamVjdGVkQnVuZGxlLm91dHB1dFRleHQoImV4aXRGdWxsc2NyZWVuKClcbiIpOworCisg
ICAgV0tCdW5kbGVQYWdlUmV0dXJuVmlkZW9Db250ZW50TGF5ZXIocGFnZSwgY29udGV4dElkKTsK
K30KKwordm9pZCBJbmplY3RlZEJ1bmRsZVBhZ2U6OnNldElubGluZVJlY3QoV0tCdW5kbGVQYWdl
UmVmLCB1aW50NjRfdCBjb250ZXh0SWQsIFdLUmVjdCBpbmxpbmVSZWN0LCBib29sIHZpc2libGUp
Cit7CisgICAgVU5VU0VEX1BBUkFNKGNvbnRleHRJZCk7CisgICAgVU5VU0VEX1BBUkFNKGlubGlu
ZVJlY3QpOworICAgIFVOVVNFRF9QQVJBTSh2aXNpYmxlKTsKKworICAgIGF1dG8mIGluamVjdGVk
QnVuZGxlID0gSW5qZWN0ZWRCdW5kbGU6OnNpbmdsZXRvbigpOworICAgIGlmIChpbmplY3RlZEJ1
bmRsZS50ZXN0UnVubmVyKCktPnNob3VsZER1bXBGdWxsU2NyZWVuQ2FsbGJhY2tzKCkpCisgICAg
ICAgIGluamVjdGVkQnVuZGxlLm91dHB1dFRleHQoInNldElubGluZVJlY3QoKVxuIik7Cit9CisK
K3ZvaWQgSW5qZWN0ZWRCdW5kbGVQYWdlOjpzZXRIYXNWaWRlb0NvbnRlbnRMYXllcihXS0J1bmRs
ZVBhZ2VSZWYgcGFnZSwgdWludDY0X3QgY29udGV4dElkLCBib29sIHZhbHVlKQoreworICAgIGF1
dG8mIGluamVjdGVkQnVuZGxlID0gSW5qZWN0ZWRCdW5kbGU6OnNpbmdsZXRvbigpOworICAgIGlm
IChpbmplY3RlZEJ1bmRsZS50ZXN0UnVubmVyKCktPnNob3VsZER1bXBGdWxsU2NyZWVuQ2FsbGJh
Y2tzKCkpCisgICAgICAgIGluamVjdGVkQnVuZGxlLm91dHB1dFRleHQoInNldEhhc1ZpZGVvQ29u
dGVudExheWVyKClcbiIpOworCisgICAgaWYgKHZhbHVlKQorICAgICAgICBXS0J1bmRsZVBhZ2VE
aWRTZXR1cFZpZGVvRnVsbHNjcmVlbihwYWdlLCBjb250ZXh0SWQpOworICAgIGVsc2UKKyAgICAg
ICAgV0tCdW5kbGVQYWdlRGlkRXhpdFZpZGVvRnVsbHNjcmVlbihwYWdlLCBjb250ZXh0SWQpOwor
fQorCit2b2lkIEluamVjdGVkQnVuZGxlUGFnZTo6Y2xlYW51cEZ1bGxzY3JlZW4oV0tCdW5kbGVQ
YWdlUmVmIHBhZ2UsIHVpbnQ2NF90IGNvbnRleHRJZCkKK3sKKyAgICBhdXRvJiBpbmplY3RlZEJ1
bmRsZSA9IEluamVjdGVkQnVuZGxlOjpzaW5nbGV0b24oKTsKKyAgICBpZiAoaW5qZWN0ZWRCdW5k
bGUudGVzdFJ1bm5lcigpLT5zaG91bGREdW1wRnVsbFNjcmVlbkNhbGxiYWNrcygpKQorICAgICAg
ICBpbmplY3RlZEJ1bmRsZS5vdXRwdXRUZXh0KCJjbGVhbnVwRnVsbHNjcmVlbigpXG4iKTsKKwor
ICAgIFdLQnVuZGxlUGFnZURpZENsZWFudXBWaWRlb0Z1bGxzY3JlZW4ocGFnZSwgY29udGV4dElk
KTsKK30KKwordm9pZCBJbmplY3RlZEJ1bmRsZVBhZ2U6OnByZXBhcmVkVG9SZXR1cm5Ub0lubGlu
ZShXS0J1bmRsZVBhZ2VSZWYsIHVpbnQ2NF90IGNvbnRleHRJZCwgYm9vbCB2aXNpYmxlLCBXS1Jl
Y3QgaW5saW5lUmVjdCkKK3sKKyAgICBVTlVTRURfUEFSQU0oY29udGV4dElkKTsKKyAgICBVTlVT
RURfUEFSQU0odmlzaWJsZSk7CisgICAgVU5VU0VEX1BBUkFNKGlubGluZVJlY3QpOworCisgICAg
YXV0byYgaW5qZWN0ZWRCdW5kbGUgPSBJbmplY3RlZEJ1bmRsZTo6c2luZ2xldG9uKCk7CisgICAg
aWYgKGluamVjdGVkQnVuZGxlLnRlc3RSdW5uZXIoKS0+c2hvdWxkRHVtcEZ1bGxTY3JlZW5DYWxs
YmFja3MoKSkKKyAgICAgICAgaW5qZWN0ZWRCdW5kbGUub3V0cHV0VGV4dCgicHJlcGFyZWRUb1Jl
dHVyblRvSW5saW5lKClcbiIpOworfQorCit2b2lkIEluamVjdGVkQnVuZGxlUGFnZTo6cHJlcGFy
ZWRUb0V4aXRGdWxsc2NyZWVuKFdLQnVuZGxlUGFnZVJlZiwgdWludDY0X3QgY29udGV4dElkKQor
eworICAgIFVOVVNFRF9QQVJBTShjb250ZXh0SWQpOworCisgICAgYXV0byYgaW5qZWN0ZWRCdW5k
bGUgPSBJbmplY3RlZEJ1bmRsZTo6c2luZ2xldG9uKCk7CisgICAgaWYgKGluamVjdGVkQnVuZGxl
LnRlc3RSdW5uZXIoKS0+c2hvdWxkRHVtcEZ1bGxTY3JlZW5DYWxsYmFja3MoKSkKKyAgICAgICAg
aW5qZWN0ZWRCdW5kbGUub3V0cHV0VGV4dCgicHJlcGFyZWRUb0V4aXRGdWxsc2NyZWVuKClcbiIp
OworfQorCisjaWYgUExBVEZPUk0oTUFDKQordm9pZCBJbmplY3RlZEJ1bmRsZVBhZ2U6OmV4aXRG
dWxsc2NyZWVuV2l0aG91dEFuaW1hdGlvblRvTW9kZShXS0J1bmRsZVBhZ2VSZWYsIHVpbnQ2NF90
IGNvbnRleHRJZCwgV0tWaWRlb0Z1bGxzY3JlZW5Nb2RlIHZpZGVvRnVsbHNjcmVlbk1vZGUpCit7
CisgICAgVU5VU0VEX1BBUkFNKGNvbnRleHRJZCk7CisgICAgVU5VU0VEX1BBUkFNKHZpZGVvRnVs
bHNjcmVlbk1vZGUpOworCisgICAgYXV0byYgaW5qZWN0ZWRCdW5kbGUgPSBJbmplY3RlZEJ1bmRs
ZTo6c2luZ2xldG9uKCk7CisgICAgaWYgKGluamVjdGVkQnVuZGxlLnRlc3RSdW5uZXIoKS0+c2hv
dWxkRHVtcEZ1bGxTY3JlZW5DYWxsYmFja3MoKSkKKyAgICAgICAgaW5qZWN0ZWRCdW5kbGUub3V0
cHV0VGV4dCgiZXhpdEZ1bGxzY3JlZW5XaXRob3V0QW5pbWF0aW9uVG9Nb2RlKClcbiIpOworfQor
I2VuZGlmCisKKyNlbmRpZiAvLyBFTkFCTEUoVklERU9fUFJFU0VOVEFUSU9OX01PREUpCisKIFN0
cmluZyBJbmplY3RlZEJ1bmRsZVBhZ2U6OmR1bXBIaXN0b3J5KCkKIHsKICAgICByZXR1cm4gbWFr
ZVN0cmluZygKZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5k
bGUvSW5qZWN0ZWRCdW5kbGVQYWdlLmggYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVk
QnVuZGxlL0luamVjdGVkQnVuZGxlUGFnZS5oCmluZGV4IDMxNDg4YTUyYjVjZTU1Njk2MTZjYmQ5
MWI5YTIxOTc1MDM0MjExMmUuLjQ1MjFkZGEyYWM5NTZmYTk2MTQ2YzExMGZiNThhMWRkZTIxOTM3
ZWMgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvSW5q
ZWN0ZWRCdW5kbGVQYWdlLmgKKysrIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1
bmRsZS9JbmplY3RlZEJ1bmRsZVBhZ2UuaApAQCAtMTQ1LDYgKzE0NSwyMiBAQCBwcml2YXRlOgog
ICAgIHN0YXRpYyB2b2lkIGNsb3NlRnVsbFNjcmVlbihXS0J1bmRsZVBhZ2VSZWYpOwogI2VuZGlm
CiAKKyNpZiBFTkFCTEUoVklERU9fUFJFU0VOVEFUSU9OX01PREUpCisgICAgc3RhdGljIHZvaWQg
c2V0SGFzVmlkZW8oV0tCdW5kbGVQYWdlUmVmLCB1aW50NjRfdCBjb250ZXh0SWQsIGJvb2wgaGFz
VmlkZW8pOworICAgIHN0YXRpYyB2b2lkIHNldFZpZGVvRGltZW5zaW9ucyhXS0J1bmRsZVBhZ2VS
ZWYsIHVpbnQ2NF90IGNvbnRleHRJZCwgV0tTaXplIHZpZGVvRGltZW5zaW9ucyk7CisgICAgc3Rh
dGljIHZvaWQgc2V0dXBGdWxsc2NyZWVuV2l0aElEKFdLQnVuZGxlUGFnZVJlZiwgdWludDY0X3Qg
Y29udGV4dElkLCB1aW50MzJfdCB2aWRlb0xheWVySWQsIFdLUmVjdCBpbml0aWFsUmVjdCwgZmxv
YXQgaG9zdGluZ1NjYWxlRmFjdG9yLCBXS1ZpZGVvRnVsbHNjcmVlbk1vZGUsIGJvb2wgYWxsb3dz
UGljdHVyZUluUGljdHVyZSwgYm9vbCBzdGFuZGJ5KTsKKyAgICBzdGF0aWMgdm9pZCBlbnRlckZ1
bGxzY3JlZW4oV0tCdW5kbGVQYWdlUmVmLCB1aW50NjRfdCBjb250ZXh0SWQpOworICAgIHN0YXRp
YyB2b2lkIGV4aXRGdWxsc2NyZWVuKFdLQnVuZGxlUGFnZVJlZiwgdWludDY0X3QgY29udGV4dElk
LCBXS1JlY3QgZmluYWxSZWN0KTsKKyAgICBzdGF0aWMgdm9pZCBzZXRJbmxpbmVSZWN0KFdLQnVu
ZGxlUGFnZVJlZiwgdWludDY0X3QgY29udGV4dElkLCBXS1JlY3QgaW5saW5lUmVjdCwgYm9vbCB2
aXNpYmxlKTsKKyAgICBzdGF0aWMgdm9pZCBzZXRIYXNWaWRlb0NvbnRlbnRMYXllcihXS0J1bmRs
ZVBhZ2VSZWYsIHVpbnQ2NF90IGNvbnRleHRJZCwgYm9vbCB2YWx1ZSk7CisgICAgc3RhdGljIHZv
aWQgY2xlYW51cEZ1bGxzY3JlZW4oV0tCdW5kbGVQYWdlUmVmLCB1aW50NjRfdCBjb250ZXh0SWQp
OworICAgIHN0YXRpYyB2b2lkIHByZXBhcmVkVG9SZXR1cm5Ub0lubGluZShXS0J1bmRsZVBhZ2VS
ZWYsIHVpbnQ2NF90IGNvbnRleHRJZCwgYm9vbCB2aXNpYmxlLCBXS1JlY3QgaW5saW5lUmVjdCk7
CisgICAgc3RhdGljIHZvaWQgcHJlcGFyZWRUb0V4aXRGdWxsc2NyZWVuKFdLQnVuZGxlUGFnZVJl
ZiwgdWludDY0X3QgY29udGV4dElkKTsKKyNpZiBQTEFURk9STShNQUMpCisgICAgc3RhdGljIHZv
aWQgZXhpdEZ1bGxzY3JlZW5XaXRob3V0QW5pbWF0aW9uVG9Nb2RlKFdLQnVuZGxlUGFnZVJlZiwg
dWludDY0X3QgY29udGV4dElkLCBXS1ZpZGVvRnVsbHNjcmVlbk1vZGUpOworI2VuZGlmCisjZW5k
aWYgLy8gRU5BQkxFKFZJREVPX1BSRVNFTlRBVElPTl9NT0RFKQorCiAgICAgLy8gRWRpdG9yIGNs
aWVudAogICAgIHN0YXRpYyBib29sIHNob3VsZEJlZ2luRWRpdGluZyhXS0J1bmRsZVBhZ2VSZWYs
IFdLQnVuZGxlUmFuZ2VIYW5kbGVSZWYsIGNvbnN0IHZvaWQqIGNsaWVudEluZm8pOwogICAgIHN0
YXRpYyBib29sIHNob3VsZEVuZEVkaXRpbmcoV0tCdW5kbGVQYWdlUmVmLCBXS0J1bmRsZVJhbmdl
SGFuZGxlUmVmLCBjb25zdCB2b2lkKiBjbGllbnRJbmZvKTsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>396839</attachid>
            <date>2020-04-18 00:07:46 -0700</date>
            <delta_ts>2020-04-20 10:12:47 -0700</delta_ts>
            <desc>Fix wincairo build failure</desc>
            <filename>bug-203723-20200418000745.patch</filename>
            <type>text/plain</type>
            <size>51283</size>
            <attacher name="Peng Liu">peng.liu6</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjYwMjkzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDExZjZlNzRiMWNiYmU4MGI4
N2YyNTU4MTE5NzkxYjYyODc5NmJjOWMuLjBmYTk0Y2E4NmZkYmUxZWQwNjFlMDg0NDcxOWQxYWMy
YjM3MDgzMDYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNjQgQEAKKzIwMjAtMDQtMTcgIFBlbmcgTGl1
ICA8cGVuZy5saXU2QGFwcGxlLmNvbT4KKworICAgICAgICBVcGRhdGUgV2ViS2l0VGVzdFJ1bm5l
ciB0byBzdXBwb3J0IHJ1bm5pbmcgbXVsdGlwbGUgdmlkZW8gZnVsbHNjcmVlbiBhbmQgUGljdHVy
ZS1pbi1QaWN0dXJlIHRlc3RzIHNpbXVsdGFuZW91c2x5CisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDM3MjMKKworICAgICAgICBSZXZpZXdlZCBieSBO
T0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGQgdGhlIGluamVjdGVkIGJ1bmRsZSBjbGllbnQg
c3VwcG9ydCBmb3IgdmlkZW8gZnVsbHNjcmVlbiByZWxhdGVkIGludGVyZmFjZXMgYmV0d2VlbiAK
KyAgICAgICAgdGhlIFdlYiBwcm9jZXNzIChWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyKSBhbmQgdGhl
IFVJIHByb2Nlc3MgKFZpZGVvRnVsbHNjcmVlbk1hbmFnZXJQcm94eSkuCisKKyAgICAgICAgKiBT
aGFyZWQvQVBJL2MvV0tTaGFyZWRBUElDYXN0Lmg6CisgICAgICAgIChXZWJLaXQ6OnRvQVBJKToK
KyAgICAgICAgKiBXZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBX
ZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9jL1dLQnVuZGxlUGFnZS5jcHA6CisgICAgICAg
IChXS0J1bmRsZVBhZ2VTZXRWaWRlb0Z1bGxzY3JlZW5DbGllbnQpOgorICAgICAgICAoV0tCdW5k
bGVQYWdlUmVxdWVzdFZpZGVvRnVsbHNjcmVlbk1vZGUpOgorICAgICAgICAoV0tCdW5kbGVQYWdl
UmVxdWVzdFZpZGVvQ29udGVudExheWVyKToKKyAgICAgICAgKFdLQnVuZGxlUGFnZURpZFNldHVw
VmlkZW9GdWxsc2NyZWVuKToKKyAgICAgICAgKFdLQnVuZGxlUGFnZURpZEVudGVyVmlkZW9GdWxs
c2NyZWVuKToKKyAgICAgICAgKFdLQnVuZGxlUGFnZVJldHVyblZpZGVvQ29udGVudExheWVyKToK
KyAgICAgICAgKFdLQnVuZGxlUGFnZURpZEV4aXRWaWRlb0Z1bGxzY3JlZW4pOgorICAgICAgICAo
V0tCdW5kbGVQYWdlRGlkQ2xlYW51cFZpZGVvRnVsbHNjcmVlbik6CisgICAgICAgICogV2ViUHJv
Y2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvYy9XS0J1bmRsZVBhZ2UuaDoKKyAgICAgICAgKiBXZWJQ
cm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9jL1dLQnVuZGxlUGFnZVZpZGVvRnVsbHNjcmVlbkNs
aWVudC5oOiBBZGRlZC4KKyAgICAgICAgKiBXZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0luamVj
dGVkQnVuZGxlUGFnZUZ1bGxTY3JlZW5DbGllbnQuY3BwOgorICAgICAgICAqIFdlYlByb2Nlc3Mv
SW5qZWN0ZWRCdW5kbGUvSW5qZWN0ZWRCdW5kbGVQYWdlRnVsbFNjcmVlbkNsaWVudC5oOgorICAg
ICAgICAqIFdlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvSW5qZWN0ZWRCdW5kbGVQYWdlVmlkZW9G
dWxsc2NyZWVuQ2xpZW50LmNwcDogQWRkZWQuCisgICAgICAgIChXZWJLaXQ6OkluamVjdGVkQnVu
ZGxlUGFnZVZpZGVvRnVsbHNjcmVlbkNsaWVudDo6c2V0SGFzVmlkZW8pOgorICAgICAgICAoV2Vi
S2l0OjpJbmplY3RlZEJ1bmRsZVBhZ2VWaWRlb0Z1bGxzY3JlZW5DbGllbnQ6OnNldFZpZGVvRGlt
ZW5zaW9ucyk6CisgICAgICAgIChXZWJLaXQ6OkluamVjdGVkQnVuZGxlUGFnZVZpZGVvRnVsbHNj
cmVlbkNsaWVudDo6c2V0dXBGdWxsc2NyZWVuV2l0aElEKToKKyAgICAgICAgKFdlYktpdDo6SW5q
ZWN0ZWRCdW5kbGVQYWdlVmlkZW9GdWxsc2NyZWVuQ2xpZW50OjplbnRlckZ1bGxzY3JlZW4pOgor
ICAgICAgICAoV2ViS2l0OjpJbmplY3RlZEJ1bmRsZVBhZ2VWaWRlb0Z1bGxzY3JlZW5DbGllbnQ6
OmV4aXRGdWxsc2NyZWVuKToKKyAgICAgICAgKFdlYktpdDo6SW5qZWN0ZWRCdW5kbGVQYWdlVmlk
ZW9GdWxsc2NyZWVuQ2xpZW50OjpzZXRJbmxpbmVSZWN0KToKKyAgICAgICAgKFdlYktpdDo6SW5q
ZWN0ZWRCdW5kbGVQYWdlVmlkZW9GdWxsc2NyZWVuQ2xpZW50OjpzZXRIYXNWaWRlb0NvbnRlbnRM
YXllcik6CisgICAgICAgIChXZWJLaXQ6OkluamVjdGVkQnVuZGxlUGFnZVZpZGVvRnVsbHNjcmVl
bkNsaWVudDo6Y2xlYW51cEZ1bGxzY3JlZW4pOgorICAgICAgICAoV2ViS2l0OjpJbmplY3RlZEJ1
bmRsZVBhZ2VWaWRlb0Z1bGxzY3JlZW5DbGllbnQ6OnByZXBhcmVkVG9SZXR1cm5Ub0lubGluZSk6
CisgICAgICAgIChXZWJLaXQ6OkluamVjdGVkQnVuZGxlUGFnZVZpZGVvRnVsbHNjcmVlbkNsaWVu
dDo6cHJlcGFyZWRUb0V4aXRGdWxsc2NyZWVuKToKKyAgICAgICAgKFdlYktpdDo6SW5qZWN0ZWRC
dW5kbGVQYWdlVmlkZW9GdWxsc2NyZWVuQ2xpZW50OjpleGl0RnVsbHNjcmVlbldpdGhvdXRBbmlt
YXRpb25Ub01vZGUpOgorICAgICAgICAqIFdlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvSW5qZWN0
ZWRCdW5kbGVQYWdlVmlkZW9GdWxsc2NyZWVuQ2xpZW50Lmg6IEFkZGVkLgorICAgICAgICAqIFdl
YlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZTo6
aW5pdGlhbGl6ZUluamVjdGVkQnVuZGxlVmlkZW9GdWxsc2NyZWVuQ2xpZW50KToKKyAgICAgICAg
KFdlYktpdDo6V2ViUGFnZTo6Y2xvc2UpOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9X
ZWJQYWdlLmg6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2U6OmluamVjdGVkQnVuZGxlVmlkZW9G
dWxsc2NyZWVuQ2xpZW50KToKKyAgICAgICAgKiBXZWJQcm9jZXNzL2NvY29hL1ZpZGVvRnVsbHNj
cmVlbk1hbmFnZXIuaDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL2NvY29hL1ZpZGVvRnVsbHNjcmVl
bk1hbmFnZXIubW06CisgICAgICAgIChXZWJLaXQ6OlZpZGVvRnVsbHNjcmVlbk1hbmFnZXI6OmVu
dGVyVmlkZW9GdWxsc2NyZWVuRm9yVmlkZW9FbGVtZW50KToKKyAgICAgICAgKFdlYktpdDo6Vmlk
ZW9GdWxsc2NyZWVuTWFuYWdlcjo6ZXhpdFZpZGVvRnVsbHNjcmVlbkZvclZpZGVvRWxlbWVudCk6
CisgICAgICAgIChXZWJLaXQ6OlZpZGVvRnVsbHNjcmVlbk1hbmFnZXI6OmV4aXRWaWRlb0Z1bGxz
Y3JlZW5Ub01vZGVXaXRob3V0QW5pbWF0aW9uKToKKyAgICAgICAgKFdlYktpdDo6VmlkZW9GdWxs
c2NyZWVuTWFuYWdlcjo6aGFzVmlkZW9DaGFuZ2VkKToKKyAgICAgICAgKFdlYktpdDo6VmlkZW9G
dWxsc2NyZWVuTWFuYWdlcjo6dmlkZW9EaW1lbnNpb25zQ2hhbmdlZCk6CisgICAgICAgIChXZWJL
aXQ6OlZpZGVvRnVsbHNjcmVlbk1hbmFnZXI6OnJlcXVlc3RVcGRhdGVJbmxpbmVSZWN0KToKKyAg
ICAgICAgKFdlYktpdDo6VmlkZW9GdWxsc2NyZWVuTWFuYWdlcjo6cmVxdWVzdFZpZGVvQ29udGVu
dExheWVyKToKKyAgICAgICAgKFdlYktpdDo6VmlkZW9GdWxsc2NyZWVuTWFuYWdlcjo6cmV0dXJu
VmlkZW9Db250ZW50TGF5ZXIpOgorICAgICAgICAoV2ViS2l0OjpWaWRlb0Z1bGxzY3JlZW5NYW5h
Z2VyOjpkaWRTZXR1cEZ1bGxzY3JlZW4pOgorICAgICAgICAoV2ViS2l0OjpWaWRlb0Z1bGxzY3Jl
ZW5NYW5hZ2VyOjp3aWxsRXhpdEZ1bGxzY3JlZW4pOgorICAgICAgICAoV2ViS2l0OjpWaWRlb0Z1
bGxzY3JlZW5NYW5hZ2VyOjpkaWRFbnRlckZ1bGxzY3JlZW4pOgorICAgICAgICAoV2ViS2l0OjpW
aWRlb0Z1bGxzY3JlZW5NYW5hZ2VyOjpkaWRFeGl0RnVsbHNjcmVlbik6CisgICAgICAgIChXZWJL
aXQ6OlZpZGVvRnVsbHNjcmVlbk1hbmFnZXI6OmRpZENsZWFudXBGdWxsc2NyZWVuKToKKyAgICAg
ICAgKFdlYktpdDo6VmlkZW9GdWxsc2NyZWVuTWFuYWdlcjo6ZnVsbHNjcmVlbk1heVJldHVyblRv
SW5saW5lKToKKwogMjAyMC0wNC0xNyAgRGF2aWQgS2lsemVyICA8ZGRraWx6ZXJAYXBwbGUuY29t
PgogCiAgICAgICAgIFJFR1JFU1NJT04gKHIyMzQxMDUpOiBbaU9TXSBXS0NvbG9yQnV0dG9uIGxl
YWtzIGEgVUlDb2xvcgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9IZWFkZXJzLmNtYWtlIGIv
U291cmNlL1dlYktpdC9IZWFkZXJzLmNtYWtlCmluZGV4IDQzNjM5NzBmMWFlMDM2NmVhMDM5NTU3
YTI3M2Q4YjgzZTY2MTY0NDguLjI3YmYxYzkzNWIzM2U2YWM0NTRkYTQ3MDgxODViN2RjZjk0ZTRh
OWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvSGVhZGVycy5jbWFrZQorKysgYi9Tb3VyY2Uv
V2ViS2l0L0hlYWRlcnMuY21ha2UKQEAgLTE0Myw2ICsxNDMsNyBAQCBzZXQoV2ViS2l0X1BVQkxJ
Q19GUkFNRVdPUktfSEVBREVSUwogICAgIFdlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2Mv
V0tCdW5kbGVQYWdlUHJpdmF0ZS5oCiAgICAgV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkv
Yy9XS0J1bmRsZVBhZ2VSZXNvdXJjZUxvYWRDbGllbnQuaAogICAgIFdlYlByb2Nlc3MvSW5qZWN0
ZWRCdW5kbGUvQVBJL2MvV0tCdW5kbGVQYWdlVUlDbGllbnQuaAorICAgIFdlYlByb2Nlc3MvSW5q
ZWN0ZWRCdW5kbGUvQVBJL2MvV0tCdW5kbGVQYWdlVmlkZW9GdWxsc2NyZWVuQ2xpZW50LmgKICAg
ICBXZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9jL1dLQnVuZGxlUHJpdmF0ZS5oCiAgICAg
V2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvYy9XS0J1bmRsZVJhbmdlSGFuZGxlLmgKICAg
ICBXZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9jL1dLQnVuZGxlU2NyaXB0V29ybGQuaApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvQVBJL2MvV0tTaGFyZWRBUElDYXN0Lmgg
Yi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9BUEkvYy9XS1NoYXJlZEFQSUNhc3QuaAppbmRleCAzN2M3
ZDk2NjQyODJhZjM5NDhiNWZhMDA2ZmM4NTA0OTQ3N2E5NDgwLi4wNTU0MjE1NmVkYWFiZDQ2YmYw
YjdiNzJlYTI3Mjg0ODUwNjIzYjdiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9B
UEkvYy9XS1NoYXJlZEFQSUNhc3QuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9BUEkvYy9X
S1NoYXJlZEFQSUNhc3QuaApAQCAtMjQ5LDYgKzI0OSwxNCBAQCBpbmxpbmUgV0tSZWN0IHRvQVBJ
KGNvbnN0IFdlYkNvcmU6OkZsb2F0UmVjdCYgcmVjdCkKICAgICByZXR1cm4gd2tSZWN0OwogfQog
CitpbmxpbmUgV0tTaXplIHRvQVBJKGNvbnN0IFdlYkNvcmU6OkZsb2F0U2l6ZSYgc2l6ZSkKK3sK
KyAgICBXS1NpemUgd2tTaXplOworICAgIHdrU2l6ZS53aWR0aCA9IHNpemUud2lkdGgoKTsKKyAg
ICB3a1NpemUuaGVpZ2h0ID0gc2l6ZS5oZWlnaHQoKTsKKyAgICByZXR1cm4gd2tTaXplOworfQor
CiBpbmxpbmUgV0tSZWN0IHRvQVBJKGNvbnN0IFdlYkNvcmU6OkludFJlY3QmIHJlY3QpCiB7CiAg
ICAgV0tSZWN0IHdrUmVjdDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViS2l0Lnhjb2Rl
cHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvV2ViS2l0L1dlYktpdC54Y29kZXByb2ovcHJv
amVjdC5wYnhwcm9qCmluZGV4IDZlNDdiNmU5MmYwMmE5NWYzMzc2YjhhNzA1ZGZiMTExYWY4YTY4
NDkuLjEyN2M3ODRjNDA5Yjc4MTk4MzE2OGVhODY1ZTFkMTJlNDBkMzk5ZGIgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291
cmNlL1dlYktpdC9XZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtNDE3LDYgKzQx
Nyw5IEBACiAJCTFENEQ3MzcxMjNBOUU1NjIwMDcxN0EyNSAvKiBSZW1vdGVNZWRpYVJlc291cmNl
TWFuYWdlck1lc3NhZ2VzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSAxRDRENzM2QzIzQTlERjYwMDA3MTdBMjUgLyogUmVtb3RlTWVkaWFSZXNvdXJjZU1h
bmFnZXJNZXNzYWdlcy5oICovOyB9OwogCQkxRDRENzM3NjIzQTlFRDE4MDA3MTdBMjUgLyogUmVt
b3RlTWVkaWFSZXNvdXJjZU1hbmFnZXJNZXNzYWdlc1JlcGxpZXMuaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDFENEQ3Mzc1MjNBOUVCNjgwMDcxN0EyNSAv
KiBSZW1vdGVNZWRpYVJlc291cmNlTWFuYWdlck1lc3NhZ2VzUmVwbGllcy5oICovOyB9OwogCQkx
RDY3QjMzOTIxMkUxRjYxMDBGQUE3ODYgLyogU2hhcmVTaGVldENhbGxiYWNrSUQuaCBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDFENjdCMzM4MjEyRTFGNjEw
MEZBQTc4NiAvKiBTaGFyZVNoZWV0Q2FsbGJhY2tJRC5oICovOyB9OworCQkxREFBNTJDMDI0Mzk2
ODMxMDAxQTMxNTkgLyogSW5qZWN0ZWRCdW5kbGVQYWdlVmlkZW9GdWxsc2NyZWVuQ2xpZW50Lmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxREFBNTJCRTI0
Mzk2ODMxMDAxQTMxNTkgLyogSW5qZWN0ZWRCdW5kbGVQYWdlVmlkZW9GdWxsc2NyZWVuQ2xpZW50
LmggKi87IH07CisJCTFEQUE1MkMxMjQzOTY4MzEwMDFBMzE1OSAvKiBJbmplY3RlZEJ1bmRsZVBh
Z2VWaWRlb0Z1bGxzY3JlZW5DbGllbnQuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gMURBQTUyQkYyNDM5NjgzMTAwMUEzMTU5IC8qIEluamVjdGVkQnVu
ZGxlUGFnZVZpZGVvRnVsbHNjcmVlbkNsaWVudC5jcHAgKi87IH07CisJCTFEQUE1MkMzMjQzOTZF
NkQwMDFBMzE1OSAvKiBXS0J1bmRsZVBhZ2VWaWRlb0Z1bGxzY3JlZW5DbGllbnQuaCBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDFEQUE1MkMyMjQzOTZFNkQw
MDFBMzE1OSAvKiBXS0J1bmRsZVBhZ2VWaWRlb0Z1bGxzY3JlZW5DbGllbnQuaCAqLzsgc2V0dGlu
Z3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQkxREIwMTk0MzIxMUNGMDAy
MDA5RkIzRTggLyogV0tTaGFyZVNoZWV0LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSAxREUwRDA5NTIxMUNDMjEzMDA0MzlCNUYgLyogV0tTaGFyZVNoZWV0
LmggKi87IH07CiAJCTFEQjAxOTQ0MjExQ0YwMDUwMDlGQjNFOCAvKiBXS1NoYXJlU2hlZXQubW0g
aW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxREJCQjA2MTIx
MUNDM0NCMDA1MDJFQ0MgLyogV0tTaGFyZVNoZWV0Lm1tICovOyB9OwogCQkxRjMzNUJDMDE4NUI4
NEYwMDAxQTIwMUEgLyogV0tXZWJQcm9jZXNzUGx1Z0luTG9hZERlbGVnYXRlLmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxRjMzNUJCRjE4NUI4NEQ4MDAx
QTIwMUEgLyogV0tXZWJQcm9jZXNzUGx1Z0luTG9hZERlbGVnYXRlLmggKi87IHNldHRpbmdzID0g
e0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKQEAgLTI3NDIsNiArMjc0NSw5IEBACiAJ
CTFEOTdFQzdEMjQwODk4RDIwMDQ2NkZGQSAvKiBNZWRpYVBsYXllclByaXZhdGVSZW1vdGVDb2Nv
YS5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBleHBsaWNpdEZpbGVUeXBlID0gc291
cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlQ29jb2Eu
bW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTFEQTQwODk0MjNBODBBM0UwMDU4Qzk1
MCAvKiBSZW1vdGVNZWRpYVJlc291cmNlTWFuYWdlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBSZW1vdGVN
ZWRpYVJlc291cmNlTWFuYWdlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkxREE0
MDg5RTIzQTgyNzc4MDA1OEM5NTAgLyogUmVtb3RlTWVkaWFSZXNvdXJjZU1hbmFnZXIuY3BwICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jcHAuY3BwOyBwYXRoID0gUmVtb3RlTWVkaWFSZXNvdXJjZU1hbmFnZXIuY3BwOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OworCQkxREFBNTJCRTI0Mzk2ODMxMDAxQTMxNTkgLyogSW5qZWN0
ZWRCdW5kbGVQYWdlVmlkZW9GdWxsc2NyZWVuQ2xpZW50LmggKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEluamVj
dGVkQnVuZGxlUGFnZVZpZGVvRnVsbHNjcmVlbkNsaWVudC5oOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OworCQkxREFBNTJCRjI0Mzk2ODMxMDAxQTMxNTkgLyogSW5qZWN0ZWRCdW5kbGVQYWdl
VmlkZW9GdWxsc2NyZWVuQ2xpZW50LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEluamVjdGVkQnVu
ZGxlUGFnZVZpZGVvRnVsbHNjcmVlbkNsaWVudC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CisJCTFEQUE1MkMyMjQzOTZFNkQwMDFBMzE1OSAvKiBXS0J1bmRsZVBhZ2VWaWRlb0Z1bGxz
Y3JlZW5DbGllbnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV0tCdW5kbGVQ
YWdlVmlkZW9GdWxsc2NyZWVuQ2xpZW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJ
CTFEQkJCMDYxMjExQ0MzQ0IwMDUwMkVDQyAvKiBXS1NoYXJlU2hlZXQubW0gKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBXS1NoYXJlU2hlZXQubW07IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCTFERTBEMDk1MjExQ0MyMTMwMDQzOUI1RiAvKiBXS1NoYXJlU2hl
ZXQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV0tTaGFyZVNoZWV0Lmg7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTFERTJERkFDMjNBOTU5RjgwMDNFMDEzQSAvKiBS
ZW1vdGVNZWRpYVJlc291cmNlSWRlbnRpZmllci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBSZW1vdGVNZWRp
YVJlc291cmNlSWRlbnRpZmllci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtOTQz
Nyw2ICs5NDQzLDggQEAKIAkJCQk2NTQ2QTgyQTEzMDAwMTY0MDAwQ0VCMUMgLyogSW5qZWN0ZWRC
dW5kbGVQYWdlUmVzb3VyY2VMb2FkQ2xpZW50LmggKi8sCiAJCQkJQkNBOEM2QUQxMUUzQzA4NzAw
ODEyRkI3IC8qIEluamVjdGVkQnVuZGxlUGFnZVVJQ2xpZW50LmNwcCAqLywKIAkJCQlCQ0E4QzZB
RTExRTNDMDg3MDA4MTJGQjcgLyogSW5qZWN0ZWRCdW5kbGVQYWdlVUlDbGllbnQuaCAqLywKKwkJ
CQkxREFBNTJCRjI0Mzk2ODMxMDAxQTMxNTkgLyogSW5qZWN0ZWRCdW5kbGVQYWdlVmlkZW9GdWxs
c2NyZWVuQ2xpZW50LmNwcCAqLywKKwkJCQkxREFBNTJCRTI0Mzk2ODMxMDAxQTMxNTkgLyogSW5q
ZWN0ZWRCdW5kbGVQYWdlVmlkZW9GdWxsc2NyZWVuQ2xpZW50LmggKi8sCiAJCQkJQkMxNERGNzYx
MjBCNUI3OTAwODI2QzBDIC8qIEluamVjdGVkQnVuZGxlU2NyaXB0V29ybGQuY3BwICovLAogCQkJ
CUJDMTRERjc1MTIwQjVCNzkwMDgyNkMwQyAvKiBJbmplY3RlZEJ1bmRsZVNjcmlwdFdvcmxkLmgg
Ki8sCiAJCQkpOwpAQCAtOTUxMSw2ICs5NTE5LDcgQEAKIAkJCQlCQzFCNDE5NzExRDQxRDU3MDAx
MUU4REQgLyogV0tCdW5kbGVQYWdlUHJpdmF0ZS5oICovLAogCQkJCTFBQjQ3NEQ5MTg0RDQ0MjUw
MDUxQjYyMiAvKiBXS0J1bmRsZVBhZ2VSZXNvdXJjZUxvYWRDbGllbnQuaCAqLywKIAkJCQkxQUI0
NzRERDE4NEQ0NDU5MDA1MUI2MjIgLyogV0tCdW5kbGVQYWdlVUlDbGllbnQuaCAqLywKKwkJCQkx
REFBNTJDMjI0Mzk2RTZEMDAxQTMxNTkgLyogV0tCdW5kbGVQYWdlVmlkZW9GdWxsc2NyZWVuQ2xp
ZW50LmggKi8sCiAJCQkJQkNGMDQ5RTUxMUZFMjBGNjAwRjg2QTU4IC8qIFdLQnVuZGxlUHJpdmF0
ZS5oICovLAogCQkJCUJDNjBDNTc4MTI0MEE1NDYwMDhDNUUyOSAvKiBXS0J1bmRsZVJhbmdlSGFu
ZGxlLmNwcCAqLywKIAkJCQlCQzYwQzU3NzEyNDBBNTQ2MDA4QzVFMjkgLyogV0tCdW5kbGVSYW5n
ZUhhbmRsZS5oICovLApAQCAtMTA3OTksNiArMTA4MDgsNyBAQAogCQkJCUJDQThDNkE5MTFFM0JB
NUYwMDgxMkZCNyAvKiBJbmplY3RlZEJ1bmRsZVBhZ2VMb2FkZXJDbGllbnQuaCBpbiBIZWFkZXJz
ICovLAogCQkJCUJDODE0N0E5MTJGNjRDREEwMDdCMkMzMiAvKiBJbmplY3RlZEJ1bmRsZVBhZ2VQ
b2xpY3lDbGllbnQuaCBpbiBIZWFkZXJzICovLAogCQkJCUJDQThDNkIwMTFFM0MwODcwMDgxMkZC
NyAvKiBJbmplY3RlZEJ1bmRsZVBhZ2VVSUNsaWVudC5oIGluIEhlYWRlcnMgKi8sCisJCQkJMURB
QTUyQzAyNDM5NjgzMTAwMUEzMTU5IC8qIEluamVjdGVkQnVuZGxlUGFnZVZpZGVvRnVsbHNjcmVl
bkNsaWVudC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQkMzM0UwRDExMjQwOEU4NjAwMzYwRjNGIC8q
IEluamVjdGVkQnVuZGxlUmFuZ2VIYW5kbGUuaCBpbiBIZWFkZXJzICovLAogCQkJCUJDMTRERjc3
MTIwQjVCNzkwMDgyNkMwQyAvKiBJbmplY3RlZEJ1bmRsZVNjcmlwdFdvcmxkLmggaW4gSGVhZGVy
cyAqLywKIAkJCQkyREQ0NUFERTFFNUY4OTcyMDA2QzM1NUYgLyogSW5wdXRWaWV3VXBkYXRlRGVm
ZXJyZXIuaCBpbiBIZWFkZXJzICovLApAQCAtMTE0MzYsNiArMTE0NDYsNyBAQAogCQkJCUJDMUI0
MTk4MTFENDFENTcwMDExRThERCAvKiBXS0J1bmRsZVBhZ2VQcml2YXRlLmggaW4gSGVhZGVycyAq
LywKIAkJCQkxQUI0NzREQTE4NEQ0NDI1MDA1MUI2MjIgLyogV0tCdW5kbGVQYWdlUmVzb3VyY2VM
b2FkQ2xpZW50LmggaW4gSGVhZGVycyAqLywKIAkJCQkxQUI0NzRERTE4NEQ0NDU5MDA1MUI2MjIg
LyogV0tCdW5kbGVQYWdlVUlDbGllbnQuaCBpbiBIZWFkZXJzICovLAorCQkJCTFEQUE1MkMzMjQz
OTZFNkQwMDFBMzE1OSAvKiBXS0J1bmRsZVBhZ2VWaWRlb0Z1bGxzY3JlZW5DbGllbnQuaCBpbiBI
ZWFkZXJzICovLAogCQkJCUJDRjA0OUU3MTFGRTIwRjYwMEY4NkE1OCAvKiBXS0J1bmRsZVByaXZh
dGUuaCBpbiBIZWFkZXJzICovLAogCQkJCUJDNjBDNTc5MTI0MEE1NDYwMDhDNUUyOSAvKiBXS0J1
bmRsZVJhbmdlSGFuZGxlLmggaW4gSGVhZGVycyAqLywKIAkJCQlCQzVEMjRDNzE2Q0Q3M0M1MDA3
RDU0NjEgLyogV0tCdW5kbGVSYW5nZUhhbmRsZVByaXZhdGUuaCBpbiBIZWFkZXJzICovLApAQCAt
MTI2NjYsNiArMTI2NzcsNyBAQAogCQkJCTFBQTU3NjAyMTQ5NkI5NzkwMEE0RUUwNiAvKiBFdmVu
dERpc3BhdGNoZXJNZXNzYWdlUmVjZWl2ZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQ0RBOTNE
QjEyMkY4QkNGNDAwNDkwQTY5IC8qIEZ1bGxzY3JlZW5Ub3VjaFNlY2hldXJpc3RpY1BhcmFtZXRl
cnMuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMjc0OUY2NDQyMTQ2NTYxQjAwODM4MEJGIC8qIElu
amVjdGVkQnVuZGxlTm9kZUhhbmRsZS5jcHAgaW4gU291cmNlcyAqLywKKwkJCQkxREFBNTJDMTI0
Mzk2ODMxMDAxQTMxNTkgLyogSW5qZWN0ZWRCdW5kbGVQYWdlVmlkZW9GdWxsc2NyZWVuQ2xpZW50
LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTI3NDlGNjQ1MjE0NjU2MUUwMDgzODBCRiAvKiBJbmpl
Y3RlZEJ1bmRsZVJhbmdlSGFuZGxlLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTJEOTEzNDQxMjEy
Q0Y5RjAwMDEyOEFGRCAvKiBKU05QTWV0aG9kLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTJEOTEz
NDQyMjEyQ0Y5RjAwMDEyOEFGRCAvKiBKU05QT2JqZWN0LmNwcCBpbiBTb3VyY2VzICovLApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9jL1dL
QnVuZGxlUGFnZS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUv
QVBJL2MvV0tCdW5kbGVQYWdlLmNwcAppbmRleCBlOTM5YTRlM2VkNTY3YzYyNTBlYjUwODFkMmM0
ZmNmMGJlZGQ1YzMzLi4zYzA0YTNiNjcyOTYyYjc1YjU5NTZmYWIwOTEzZmI2MGVjYWI4M2Y4IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2Mv
V0tCdW5kbGVQYWdlLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRC
dW5kbGUvQVBJL2MvV0tCdW5kbGVQYWdlLmNwcApAQCAtNzQsNiArNzQsMTAgQEAKICNpbmNsdWRl
IDx3dGYvU3RkTGliRXh0cmFzLmg+CiAjaW5jbHVkZSA8d3RmL1VSTC5oPgogCisjaWYgRU5BQkxF
KFZJREVPX1BSRVNFTlRBVElPTl9NT0RFKQorI2luY2x1ZGUgIlZpZGVvRnVsbHNjcmVlbk1hbmFn
ZXIuaCIKKyNlbmRpZgorCiBXS1R5cGVJRCBXS0J1bmRsZVBhZ2VHZXRUeXBlSUQoKQogewogICAg
IHJldHVybiBXZWJLaXQ6OnRvQVBJKFdlYktpdDo6V2ViUGFnZTo6QVBJVHlwZSk7CkBAIC0xNjUs
NiArMTY5LDg4IEBAIHZvaWQgV0tCdW5kbGVQYWdlRGlkRXhpdEZ1bGxTY3JlZW4oV0tCdW5kbGVQ
YWdlUmVmIHBhZ2VSZWYpCiAjZW5kaWYKIH0KIAordm9pZCBXS0J1bmRsZVBhZ2VTZXRWaWRlb0Z1
bGxzY3JlZW5DbGllbnQoV0tCdW5kbGVQYWdlUmVmIHBhZ2UsIFdLQnVuZGxlUGFnZVZpZGVvRnVs
bHNjcmVlbkNsaWVudEJhc2UqIHdrQ2xpZW50KQoreworI2lmIEVOQUJMRShWSURFT19QUkVTRU5U
QVRJT05fTU9ERSkKKyAgICBXZWJLaXQ6OnRvSW1wbChwYWdlKS0+aW5pdGlhbGl6ZUluamVjdGVk
QnVuZGxlVmlkZW9GdWxsc2NyZWVuQ2xpZW50KHdrQ2xpZW50KTsKKyNlbHNlCisgICAgVU5VU0VE
X1BBUkFNKHBhZ2UpOworICAgIFVOVVNFRF9QQVJBTSh3a0NsaWVudCk7CisjZW5kaWYKK30KKwor
dm9pZCBXS0J1bmRsZVBhZ2VSZXF1ZXN0VmlkZW9GdWxsc2NyZWVuTW9kZShXS0J1bmRsZVBhZ2VS
ZWYgcGFnZSwgdWludDY0X3QgY29udGV4dElkLCBXS1ZpZGVvRnVsbHNjcmVlbk1vZGUgbW9kZSwg
Ym9vbCBmaW5pc2hlZFdpdGhNZWRpYSkKK3sKKyNpZiBFTkFCTEUoVklERU9fUFJFU0VOVEFUSU9O
X01PREUpCisgICAgV2ViS2l0Ojp0b0ltcGwocGFnZSktPnZpZGVvRnVsbHNjcmVlbk1hbmFnZXIo
KS5yZXF1ZXN0RnVsbHNjcmVlbk1vZGUoY29udGV4dElkLCBtb2RlLCBmaW5pc2hlZFdpdGhNZWRp
YSk7CisjZWxzZQorICAgIFVOVVNFRF9QQVJBTShwYWdlKTsKKyAgICBVTlVTRURfUEFSQU0oY29u
dGV4dElkKTsKKyAgICBVTlVTRURfUEFSQU0obW9kZSk7CisgICAgVU5VU0VEX1BBUkFNKGZpbmlz
aGVkV2l0aE1lZGlhKTsKKyNlbmRpZgorfQorCit2b2lkIFdLQnVuZGxlUGFnZVJlcXVlc3RWaWRl
b0NvbnRlbnRMYXllcihXS0J1bmRsZVBhZ2VSZWYgcGFnZSwgdWludDY0X3QgY29udGV4dElkKQor
eworI2lmIEVOQUJMRShWSURFT19QUkVTRU5UQVRJT05fTU9ERSkKKyAgICBXZWJLaXQ6OnRvSW1w
bChwYWdlKS0+dmlkZW9GdWxsc2NyZWVuTWFuYWdlcigpLnJlcXVlc3RWaWRlb0NvbnRlbnRMYXll
cihjb250ZXh0SWQpOworI2Vsc2UKKyAgICBVTlVTRURfUEFSQU0ocGFnZSk7CisgICAgVU5VU0VE
X1BBUkFNKGNvbnRleHRJZCk7CisjZW5kaWYKK30KKwordm9pZCBXS0J1bmRsZVBhZ2VEaWRTZXR1
cFZpZGVvRnVsbHNjcmVlbihXS0J1bmRsZVBhZ2VSZWYgcGFnZSwgdWludDY0X3QgY29udGV4dElk
KQoreworI2lmIEVOQUJMRShWSURFT19QUkVTRU5UQVRJT05fTU9ERSkKKyAgICBXZWJLaXQ6OnRv
SW1wbChwYWdlKS0+dmlkZW9GdWxsc2NyZWVuTWFuYWdlcigpLmRpZFNldHVwRnVsbHNjcmVlbihj
b250ZXh0SWQpOworI2Vsc2UKKyAgICBVTlVTRURfUEFSQU0ocGFnZSk7CisgICAgVU5VU0VEX1BB
UkFNKGNvbnRleHRJZCk7CisjZW5kaWYKK30KKwordm9pZCBXS0J1bmRsZVBhZ2VEaWRFbnRlclZp
ZGVvRnVsbHNjcmVlbihXS0J1bmRsZVBhZ2VSZWYgcGFnZSwgdWludDY0X3QgY29udGV4dElkKQor
eworI2lmIEVOQUJMRShWSURFT19QUkVTRU5UQVRJT05fTU9ERSkKKyAgICBXZWJLaXQ6OnRvSW1w
bChwYWdlKS0+dmlkZW9GdWxsc2NyZWVuTWFuYWdlcigpLmRpZEVudGVyRnVsbHNjcmVlbihjb250
ZXh0SWQpOworI2Vsc2UKKyAgICBVTlVTRURfUEFSQU0ocGFnZSk7CisgICAgVU5VU0VEX1BBUkFN
KGNvbnRleHRJZCk7CisjZW5kaWYKK30KKwordm9pZCBXS0J1bmRsZVBhZ2VSZXR1cm5WaWRlb0Nv
bnRlbnRMYXllcihXS0J1bmRsZVBhZ2VSZWYgcGFnZSwgdWludDY0X3QgY29udGV4dElkKQorewor
I2lmIEVOQUJMRShWSURFT19QUkVTRU5UQVRJT05fTU9ERSkKKyAgICBXZWJLaXQ6OnRvSW1wbChw
YWdlKS0+dmlkZW9GdWxsc2NyZWVuTWFuYWdlcigpLnJldHVyblZpZGVvQ29udGVudExheWVyKGNv
bnRleHRJZCk7CisjZWxzZQorICAgIFVOVVNFRF9QQVJBTShwYWdlKTsKKyAgICBVTlVTRURfUEFS
QU0oY29udGV4dElkKTsKKyNlbmRpZgorfQorCit2b2lkIFdLQnVuZGxlUGFnZURpZEV4aXRWaWRl
b0Z1bGxzY3JlZW4oV0tCdW5kbGVQYWdlUmVmIHBhZ2UsIHVpbnQ2NF90IGNvbnRleHRJZCkKK3sK
KyNpZiBFTkFCTEUoVklERU9fUFJFU0VOVEFUSU9OX01PREUpCisgICAgV2ViS2l0Ojp0b0ltcGwo
cGFnZSktPnZpZGVvRnVsbHNjcmVlbk1hbmFnZXIoKS5kaWRFeGl0RnVsbHNjcmVlbihjb250ZXh0
SWQpOworI2Vsc2UKKyAgICBVTlVTRURfUEFSQU0ocGFnZSk7CisgICAgVU5VU0VEX1BBUkFNKGNv
bnRleHRJZCk7CisjZW5kaWYKK30KKwordm9pZCBXS0J1bmRsZVBhZ2VEaWRDbGVhbnVwVmlkZW9G
dWxsc2NyZWVuKFdLQnVuZGxlUGFnZVJlZiBwYWdlLCB1aW50NjRfdCBjb250ZXh0SWQpCit7Cisj
aWYgRU5BQkxFKFZJREVPX1BSRVNFTlRBVElPTl9NT0RFKQorICAgIFdlYktpdDo6dG9JbXBsKHBh
Z2UpLT52aWRlb0Z1bGxzY3JlZW5NYW5hZ2VyKCkuZGlkQ2xlYW51cEZ1bGxzY3JlZW4oY29udGV4
dElkKTsKKyNlbHNlCisgICAgVU5VU0VEX1BBUkFNKHBhZ2UpOworICAgIFVOVVNFRF9QQVJBTShj
b250ZXh0SWQpOworI2VuZGlmCit9CisKIFdLQnVuZGxlUGFnZUdyb3VwUmVmIFdLQnVuZGxlUGFn
ZUdldFBhZ2VHcm91cChXS0J1bmRsZVBhZ2VSZWYgcGFnZVJlZikKIHsKICAgICByZXR1cm4gdG9B
UEkoV2ViS2l0Ojp0b0ltcGwocGFnZVJlZiktPnBhZ2VHcm91cCgpKTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvYy9XS0J1bmRsZVBhZ2Uu
aCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvYy9XS0J1bmRs
ZVBhZ2UuaAppbmRleCA0ZjgzYjhlZjBjODAyYmNjMWIzZDdiY2Y5NDJjZWFlYTE0N2VhYWNmLi4z
OGVhYTZhZmU3OGQ1ZmUzMmQ4MWViMjQ2MTVlYTRkNmNmMjFkODgxIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2MvV0tCdW5kbGVQYWdlLmgK
KysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9jL1dLQnVu
ZGxlUGFnZS5oCkBAIC0zNiw2ICszNiw3IEBACiAjaW5jbHVkZSA8V2ViS2l0L1dLQnVuZGxlUGFn
ZVBvbGljeUNsaWVudC5oPgogI2luY2x1ZGUgPFdlYktpdC9XS0J1bmRsZVBhZ2VSZXNvdXJjZUxv
YWRDbGllbnQuaD4KICNpbmNsdWRlIDxXZWJLaXQvV0tCdW5kbGVQYWdlVUlDbGllbnQuaD4KKyNp
bmNsdWRlIDxXZWJLaXQvV0tCdW5kbGVQYWdlVmlkZW9GdWxsc2NyZWVuQ2xpZW50Lmg+CiAjaW5j
bHVkZSA8V2ViS2l0L1dLRGVwcmVjYXRlZC5oPgogI2luY2x1ZGUgPFdlYktpdC9XS0ZpbmRPcHRp
b25zLmg+CiAjaW5jbHVkZSA8V2ViS2l0L1dLSW1hZ2UuaD4KQEAgLTU1LDYgKzU2LDE0IEBAIFdL
X0VYUE9SVCB2b2lkIFdLQnVuZGxlUGFnZURpZEVudGVyRnVsbFNjcmVlbihXS0J1bmRsZVBhZ2VS
ZWYgcGFnZSk7CiBXS19FWFBPUlQgdm9pZCBXS0J1bmRsZVBhZ2VXaWxsRXhpdEZ1bGxTY3JlZW4o
V0tCdW5kbGVQYWdlUmVmIHBhZ2UpOwogV0tfRVhQT1JUIHZvaWQgV0tCdW5kbGVQYWdlRGlkRXhp
dEZ1bGxTY3JlZW4oV0tCdW5kbGVQYWdlUmVmIHBhZ2UpOwogCitXS19FWFBPUlQgdm9pZCBXS0J1
bmRsZVBhZ2VSZXF1ZXN0VmlkZW9GdWxsc2NyZWVuTW9kZShXS0J1bmRsZVBhZ2VSZWYgcGFnZSwg
dWludDY0X3QgY29udGV4dElkLCBXS1ZpZGVvRnVsbHNjcmVlbk1vZGUgbW9kZSwgYm9vbCBmaW5p
c2hlZFdpdGhNZWRpYSk7CitXS19FWFBPUlQgdm9pZCBXS0J1bmRsZVBhZ2VSZXF1ZXN0VmlkZW9D
b250ZW50TGF5ZXIoV0tCdW5kbGVQYWdlUmVmIHBhZ2UsIHVpbnQ2NF90IGNvbnRleHRJZCk7CitX
S19FWFBPUlQgdm9pZCBXS0J1bmRsZVBhZ2VSZXR1cm5WaWRlb0NvbnRlbnRMYXllcihXS0J1bmRs
ZVBhZ2VSZWYgcGFnZSwgdWludDY0X3QgY29udGV4dElkKTsKK1dLX0VYUE9SVCB2b2lkIFdLQnVu
ZGxlUGFnZURpZFNldHVwVmlkZW9GdWxsc2NyZWVuKFdLQnVuZGxlUGFnZVJlZiBwYWdlLCB1aW50
NjRfdCBjb250ZXh0SWQpOworV0tfRVhQT1JUIHZvaWQgV0tCdW5kbGVQYWdlRGlkRW50ZXJWaWRl
b0Z1bGxzY3JlZW4oV0tCdW5kbGVQYWdlUmVmIHBhZ2UsIHVpbnQ2NF90IGNvbnRleHRJZCk7CitX
S19FWFBPUlQgdm9pZCBXS0J1bmRsZVBhZ2VEaWRFeGl0VmlkZW9GdWxsc2NyZWVuKFdLQnVuZGxl
UGFnZVJlZiBwYWdlLCB1aW50NjRfdCBjb250ZXh0SWQpOworV0tfRVhQT1JUIHZvaWQgV0tCdW5k
bGVQYWdlRGlkQ2xlYW51cFZpZGVvRnVsbHNjcmVlbihXS0J1bmRsZVBhZ2VSZWYgcGFnZSwgdWlu
dDY0X3QgY29udGV4dElkKTsKKwogV0tfRVhQT1JUIFdLVHlwZUlEIFdLQnVuZGxlUGFnZUdldFR5
cGVJRCgpOwogCiBXS19FWFBPUlQgdm9pZCBXS0J1bmRsZVBhZ2VTZXRDb250ZXh0TWVudUNsaWVu
dChXS0J1bmRsZVBhZ2VSZWYgcGFnZSwgV0tCdW5kbGVQYWdlQ29udGV4dE1lbnVDbGllbnRCYXNl
KiBjbGllbnQpOwpAQCAtNjUsNiArNzQsNyBAQCBXS19FWFBPUlQgdm9pZCBXS0J1bmRsZVBhZ2VT
ZXRSZXNvdXJjZUxvYWRDbGllbnQoV0tCdW5kbGVQYWdlUmVmIHBhZ2UsIFdLQnVuZGxlUAogV0tf
RVhQT1JUIHZvaWQgV0tCdW5kbGVQYWdlU2V0UG9saWN5Q2xpZW50KFdLQnVuZGxlUGFnZVJlZiBw
YWdlLCBXS0J1bmRsZVBhZ2VQb2xpY3lDbGllbnRCYXNlKiBjbGllbnQpOwogV0tfRVhQT1JUIHZv
aWQgV0tCdW5kbGVQYWdlU2V0VUlDbGllbnQoV0tCdW5kbGVQYWdlUmVmIHBhZ2UsIFdLQnVuZGxl
UGFnZVVJQ2xpZW50QmFzZSogY2xpZW50KTsKIFdLX0VYUE9SVCB2b2lkIFdLQnVuZGxlUGFnZVNl
dEZ1bGxTY3JlZW5DbGllbnQoV0tCdW5kbGVQYWdlUmVmIHBhZ2UsIFdLQnVuZGxlUGFnZUZ1bGxT
Y3JlZW5DbGllbnRCYXNlKiBjbGllbnQpOworV0tfRVhQT1JUIHZvaWQgV0tCdW5kbGVQYWdlU2V0
VmlkZW9GdWxsc2NyZWVuQ2xpZW50KFdLQnVuZGxlUGFnZVJlZiBwYWdlLCBXS0J1bmRsZVBhZ2VW
aWRlb0Z1bGxzY3JlZW5DbGllbnRCYXNlKiBjbGllbnQpOwogCiBXS19FWFBPUlQgV0tCdW5kbGVQ
YWdlR3JvdXBSZWYgV0tCdW5kbGVQYWdlR2V0UGFnZUdyb3VwKFdLQnVuZGxlUGFnZVJlZiBwYWdl
KTsKIFdLX0VYUE9SVCBXS0J1bmRsZUZyYW1lUmVmIFdLQnVuZGxlUGFnZUdldE1haW5GcmFtZShX
S0J1bmRsZVBhZ2VSZWYgcGFnZSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2MvV0tCdW5kbGVQYWdlVmlkZW9GdWxsc2NyZWVuQ2xpZW50
LmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2MvV0tCdW5k
bGVQYWdlVmlkZW9GdWxsc2NyZWVuQ2xpZW50LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNGU2YzgxNmY1YzQzN2Y3
NmEzYWYzNjgyYjhjNmUwYzM0NTA5OWNlOQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvYy9XS0J1bmRsZVBhZ2VWaWRlb0Z1bGxz
Y3JlZW5DbGllbnQuaApAQCAtMCwwICsxLDc4IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIw
IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBh
bmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1v
ZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29u
ZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29k
ZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRp
c3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHly
aWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIg
bWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNP
RlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBB
UyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVS
Q0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJF
IERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJV
VE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwg
U1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09P
RFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVT
UworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBM
SUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBU
T1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFO
WSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9G
CisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNl
CisKKyNpbmNsdWRlIDxXZWJLaXQvV0tCYXNlLmg+CisjaW5jbHVkZSA8V2ViS2l0L1dLR2VvbWV0
cnkuaD4KKworI2lmZGVmIF9fY3BsdXNwbHVzCitleHRlcm4gIkMiIHsKKyNlbmRpZgorCitlbnVt
IHsKKyAgICBXS1ZpZGVvRnVsbHNjcmVlbk1vZGVOb25lID0gMCwKKyAgICBXS1ZpZGVvRnVsbHNj
cmVlbk1vZGVTdGFuZGFyZCA9IDEgPDwgMCwKKyAgICBXS1ZpZGVvRnVsbHNjcmVlbk1vZGVQaWN0
dXJlSW5QaWN0dXJlID0gMSA8PCAxLAorfTsKK3R5cGVkZWYgdWludDMyX3QgV0tWaWRlb0Z1bGxz
Y3JlZW5Nb2RlOworCit0eXBlZGVmIHZvaWQgKCpXS0J1bmRsZVBhZ2VTZXRIYXNWaWRlbykoV0tC
dW5kbGVQYWdlUmVmIHBhZ2UsIHVpbnQ2NF90IGNvbnRleHRJZCwgYm9vbCBoYXNWaWRlbyk7Cit0
eXBlZGVmIHZvaWQgKCpXS0J1bmRsZVBhZ2VTZXRWaWRlb0RpbWVuc2lvbnMpKFdLQnVuZGxlUGFn
ZVJlZiBwYWdlLCB1aW50NjRfdCBjb250ZXh0SWQsIFdLU2l6ZSB2aWRlb0RpbWVuc2lvbnMpOwor
dHlwZWRlZiB2b2lkICgqV0tCdW5kbGVQYWdlU2V0dXBWaWRlb0Z1bGxzY3JlZW5XaXRoSUQpKFdL
QnVuZGxlUGFnZVJlZiBwYWdlLCB1aW50NjRfdCBjb250ZXh0SWQsIHVpbnQzMl90IHZpZGVvTGF5
ZXJJRCwgV0tSZWN0IGluaXRpYWxSZWN0LCBmbG9hdCBob3N0aW5nU2NhbGVGYWN0b3IsIFdLVmlk
ZW9GdWxsc2NyZWVuTW9kZSB2aWRlb0Z1bGxzY3JlZW5Nb2RlLCBib29sIGFsbG93c1BpY3R1cmVJ
blBpY3R1cmUsIGJvb2wgc3RhbmRieSk7Cit0eXBlZGVmIHZvaWQgKCpXS0J1bmRsZVBhZ2VFbnRl
clZpZGVvRnVsbHNjcmVlbikoV0tCdW5kbGVQYWdlUmVmIHBhZ2UsIHVpbnQ2NF90IGNvbnRleHRJ
ZCk7Cit0eXBlZGVmIHZvaWQgKCpXS0J1bmRsZVBhZ2VFeGl0VmlkZW9GdWxsc2NyZWVuKShXS0J1
bmRsZVBhZ2VSZWYgcGFnZSwgdWludDY0X3QgY29udGV4dElkLCBXS1JlY3QgZmluYWxSZWN0KTsK
K3R5cGVkZWYgdm9pZCAoKldLQnVuZGxlUGFnZVNldElubGluZVJlY3QpKFdLQnVuZGxlUGFnZVJl
ZiBwYWdlLCB1aW50NjRfdCBjb250ZXh0SWQsIFdLUmVjdCBpbmxpbmVSZWN0LCBib29sIHZpc2li
bGUpOwordHlwZWRlZiB2b2lkICgqV0tCdW5kbGVQYWdlU2V0SGFzVmlkZW9Db250ZW50TGF5ZXIp
KFdLQnVuZGxlUGFnZVJlZiBwYWdlLCB1aW50NjRfdCBjb250ZXh0SWQsIGJvb2wgdmFsdWUpOwor
dHlwZWRlZiB2b2lkICgqV0tCdW5kbGVQYWdlQ2xlYW51cFZpZGVvRnVsbHNjcmVlbikoV0tCdW5k
bGVQYWdlUmVmIHBhZ2UsIHVpbnQ2NF90IGNvbnRleHRJZCk7Cit0eXBlZGVmIHZvaWQgKCpXS0J1
bmRsZVBhZ2VQcmVwYXJlZFRvUmV0dXJuVG9JbmxpbmUpKFdLQnVuZGxlUGFnZVJlZiBwYWdlLCB1
aW50NjRfdCBjb250ZXh0SWQsIGJvb2wgdmlzaWJsZSwgV0tSZWN0IGlubGluZVJlY3QpOwordHlw
ZWRlZiB2b2lkICgqV0tCdW5kbGVQYWdlUHJlcGFyZWRUb0V4aXRWaWRlb0Z1bGxzY3JlZW4pKFdL
QnVuZGxlUGFnZVJlZiBwYWdlLCB1aW50NjRfdCBjb250ZXh0SWQpOwordHlwZWRlZiB2b2lkICgq
V0tCdW5kbGVQYWdlRXhpdFZpZGVvRnVsbHNjcmVlbldpdGhvdXRBbmltYXRpb25Ub01vZGUpKFdL
QnVuZGxlUGFnZVJlZiBwYWdlLCB1aW50NjRfdCBjb250ZXh0SWQsIFdLVmlkZW9GdWxsc2NyZWVu
TW9kZSB2aWRlb0Z1bGxzY3JlZW5Nb2RlKTsKKwordHlwZWRlZiBzdHJ1Y3QgV0tCdW5kbGVQYWdl
VmlkZW9GdWxsc2NyZWVuQ2xpZW50QmFzZSB7CisgICAgaW50ICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2ZXJzaW9uOworICAg
IGNvbnN0IHZvaWQgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgY2xpZW50SW5mbzsKK30gV0tCdW5kbGVQYWdlVmlkZW9GdWxsc2NyZWVuQ2xp
ZW50QmFzZTsKKwordHlwZWRlZiBzdHJ1Y3QgV0tCdW5kbGVQYWdlVmlkZW9GdWxsc2NyZWVuQ2xp
ZW50VjAgeworICAgIFdLQnVuZGxlUGFnZVZpZGVvRnVsbHNjcmVlbkNsaWVudEJhc2UgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgYmFzZTsKKworICAgIC8vIFZlcnNpb24gMC4KKyAgICBX
S0J1bmRsZVBhZ2VTZXRIYXNWaWRlbyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIHNldEhhc1ZpZGVvOworICAgIFdLQnVuZGxlUGFnZVNldFZpZGVvRGltZW5zaW9u
cyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2V0VmlkZW9EaW1lbnNpb25z
OworICAgIFdLQnVuZGxlUGFnZVNldHVwVmlkZW9GdWxsc2NyZWVuV2l0aElEICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgc2V0dXBGdWxsc2NyZWVuV2l0aElEOworICAgIFdLQnVuZGxlUGFn
ZUVudGVyVmlkZW9GdWxsc2NyZWVuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ZW50ZXJGdWxsc2NyZWVuOworICAgIFdLQnVuZGxlUGFnZUV4aXRWaWRlb0Z1bGxzY3JlZW4gICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZXhpdEZ1bGxzY3JlZW47CisgICAgV0tC
dW5kbGVQYWdlU2V0SW5saW5lUmVjdCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBzZXRJbmxpbmVSZWN0OworICAgIFdLQnVuZGxlUGFnZVNldEhhc1ZpZGVvQ29udGVu
dExheWVyICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2V0SGFzVmlkZW9Db250ZW50
TGF5ZXI7CisgICAgV0tCdW5kbGVQYWdlQ2xlYW51cFZpZGVvRnVsbHNjcmVlbiAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBjbGVhbnVwRnVsbHNjcmVlbjsKKyAgICBXS0J1bmRsZVBh
Z2VQcmVwYXJlZFRvUmV0dXJuVG9JbmxpbmUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IHByZXBhcmVkVG9SZXRydW5Ub0lubGluZTsKKyAgICBXS0J1bmRsZVBhZ2VQcmVwYXJlZFRvRXhp
dFZpZGVvRnVsbHNjcmVlbiAgICAgICAgICAgICAgICAgICAgICAgICAgIHByZXBhcmVkVG9FeGl0
RnVsbHNjcmVlbjsKKyAgICBXS0J1bmRsZVBhZ2VFeGl0VmlkZW9GdWxsc2NyZWVuV2l0aG91dEFu
aW1hdGlvblRvTW9kZSAgICAgICAgICAgICAgIGV4aXRGdWxsc2NyZWVuV2l0aG91dEFuaW1hdGlv
blRvTW9kZTsKK30gV0tCdW5kbGVQYWdlVmlkZW9GdWxsc2NyZWVuQ2xpZW50VjA7CisKKyNpZmRl
ZiBfX2NwbHVzcGx1cworfQorI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvSW5qZWN0ZWRCdW5kbGUvSW5qZWN0ZWRCdW5kbGVQYWdlRnVsbFNjcmVlbkNsaWVudC5j
cHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvSW5qZWN0ZWRCdW5k
bGVQYWdlRnVsbFNjcmVlbkNsaWVudC5jcHAKaW5kZXggZjcxM2I1YTQyM2ZjNzllYTZjNWZiNjAy
NDNlNzY4MmYwNTA5ZjY5Yy4uOWI0ODAxZjU3NjNhYzNlNTliZWJlYWVkZDI1MzMzNDY0YTQ2ZGE5
MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0lu
amVjdGVkQnVuZGxlUGFnZUZ1bGxTY3JlZW5DbGllbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZVBhZ2VGdWxsU2NyZWVuQ2xp
ZW50LmNwcApAQCAtMjQsMTEgKzI0LDEwIEBACiAgKi8KIAogI2luY2x1ZGUgImNvbmZpZy5oIgor
I2luY2x1ZGUgIkluamVjdGVkQnVuZGxlUGFnZUZ1bGxTY3JlZW5DbGllbnQuaCIKIAogI2lmIEVO
QUJMRShGVUxMU0NSRUVOX0FQSSkKIAotI2luY2x1ZGUgIkluamVjdGVkQnVuZGxlUGFnZUZ1bGxT
Y3JlZW5DbGllbnQuaCIKLQogI2luY2x1ZGUgIkluamVjdGVkQnVuZGxlTm9kZUhhbmRsZS5oIgog
I2luY2x1ZGUgIldLQVBJQ2FzdC5oIgogI2luY2x1ZGUgIldLQnVuZGxlQVBJQ2FzdC5oIgpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0luamVjdGVk
QnVuZGxlUGFnZUZ1bGxTY3JlZW5DbGllbnQuaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9J
bmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZVBhZ2VGdWxsU2NyZWVuQ2xpZW50LmgKaW5kZXgg
NjU2M2I2YzZkZjM4MzM3OWZiOGFiZjEwOWQ3ZTU5ODU1YTdjOTM4Yi4uNGVjZGQxMWE1ZDUwYzQx
YjhlNGVmZDBjMjY1YTk0Y2NlODU0YTVjYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL0luamVjdGVkQnVuZGxlL0luamVjdGVkQnVuZGxlUGFnZUZ1bGxTY3JlZW5DbGllbnQu
aAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvSW5qZWN0ZWRC
dW5kbGVQYWdlRnVsbFNjcmVlbkNsaWVudC5oCkBAIC0yMyw4ICsyMyw3IEBACiAgKiBUSEUgUE9T
U0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCiAgKi8KIAotI2lmbmRlZiBJbmplY3RlZEJ1bmRsZVBh
Z2VGdWxsU2NyZWVuQ2xpZW50X2gKLSNkZWZpbmUgSW5qZWN0ZWRCdW5kbGVQYWdlRnVsbFNjcmVl
bkNsaWVudF9oCisjcHJhZ21hIG9uY2UKIAogI2lmIEVOQUJMRShGVUxMU0NSRUVOX0FQSSkKIApA
QCAtNjAsNSArNTksMyBAQCBwdWJsaWM6CiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKIAogI2VuZGlm
IC8vIEVOQUJMRShGVUxMU0NSRUVOX0FQSSkKLQotI2VuZGlmIC8vIEluamVjdGVkQnVuZGxlUGFn
ZUZ1bGxTY3JlZW5DbGllbnRfaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L0luamVjdGVkQnVuZGxlL0luamVjdGVkQnVuZGxlUGFnZVZpZGVvRnVsbHNjcmVlbkNsaWVudC5j
cHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvSW5qZWN0ZWRCdW5k
bGVQYWdlVmlkZW9GdWxsc2NyZWVuQ2xpZW50LmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5jYWFhNWYxMzdjMmU0
MDJlZWU1YWJjNDA4OTgzN2UwYjRjMmZjZWVlCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0luamVjdGVkQnVuZGxlUGFnZVZpZGVvRnVs
bHNjcmVlbkNsaWVudC5jcHAKQEAgLTAsMCArMSwxMzQgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMp
IDIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0
aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAor
ICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2lu
ZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJj
ZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIu
IFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUg
Y29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBv
dGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRI
SVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9S
UyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBP
RiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9T
RSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09O
VFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVO
VEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVU
RSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJV
U0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZ
IE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFks
IE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcg
SU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklT
RUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVk
ZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiSW5qZWN0ZWRCdW5kbGVQYWdlVmlkZW9GdWxsc2NyZWVu
Q2xpZW50LmgiCisKKyNpZiBFTkFCTEUoVklERU9fUFJFU0VOVEFUSU9OX01PREUpCisKKyNpbmNs
dWRlICJWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyUHJveHlNZXNzYWdlcy5oIgorI2luY2x1ZGUgIldL
QVBJQ2FzdC5oIgorI2luY2x1ZGUgIldLQnVuZGxlQVBJQ2FzdC5oIgorI2luY2x1ZGUgIldlYkNv
cmVBcmd1bWVudENvZGVycy5oIgorI2luY2x1ZGUgIldlYlBhZ2UuaCIKKyNpbmNsdWRlIDxXZWJD
b3JlL0Zsb2F0U2l6ZS5oPgorI2luY2x1ZGUgPFdlYkNvcmUvSW50UmVjdC5oPgorCituYW1lc3Bh
Y2UgV2ViS2l0IHsKK3VzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOworCit2b2lkIEluamVjdGVkQnVu
ZGxlUGFnZVZpZGVvRnVsbHNjcmVlbkNsaWVudDo6c2V0SGFzVmlkZW8oV2ViUGFnZSogcGFnZSwg
dWludDY0X3QgY29udGV4dElkLCBib29sIGhhc1ZpZGVvKQoreworICAgIGlmIChtX2NsaWVudC5z
ZXRIYXNWaWRlbykKKyAgICAgICAgbV9jbGllbnQuc2V0SGFzVmlkZW8odG9BUEkocGFnZSksIGNv
bnRleHRJZCwgaGFzVmlkZW8pOworICAgIGVsc2UKKyAgICAgICAgcGFnZS0+c2VuZChNZXNzYWdl
czo6VmlkZW9GdWxsc2NyZWVuTWFuYWdlclByb3h5OjpTZXRIYXNWaWRlbyhjb250ZXh0SWQsIGhh
c1ZpZGVvKSk7Cit9CisKK3ZvaWQgSW5qZWN0ZWRCdW5kbGVQYWdlVmlkZW9GdWxsc2NyZWVuQ2xp
ZW50OjpzZXRWaWRlb0RpbWVuc2lvbnMoV2ViUGFnZSogcGFnZSwgdWludDY0X3QgY29udGV4dElk
LCBGbG9hdFNpemUgdmlkZW9EaW1lbnNpb25zKQoreworICAgIGlmIChtX2NsaWVudC5zZXRWaWRl
b0RpbWVuc2lvbnMpCisgICAgICAgIG1fY2xpZW50LnNldFZpZGVvRGltZW5zaW9ucyh0b0FQSShw
YWdlKSwgY29udGV4dElkLCB0b0FQSSh2aWRlb0RpbWVuc2lvbnMpKTsKKyAgICBlbHNlCisgICAg
ICAgIHBhZ2UtPnNlbmQoTWVzc2FnZXM6OlZpZGVvRnVsbHNjcmVlbk1hbmFnZXJQcm94eTo6U2V0
VmlkZW9EaW1lbnNpb25zKGNvbnRleHRJZCwgdmlkZW9EaW1lbnNpb25zKSk7Cit9CisKK3ZvaWQg
SW5qZWN0ZWRCdW5kbGVQYWdlVmlkZW9GdWxsc2NyZWVuQ2xpZW50OjpzZXR1cEZ1bGxzY3JlZW5X
aXRoSUQoV2ViUGFnZSogcGFnZSwgdWludDY0X3QgY29udGV4dElkLCB1aW50MzJfdCB2aWRlb0xh
eWVySWQsIEludFJlY3QgaW5pdGlhbFJlY3QsIGZsb2F0IGhvc3RpbmdTY2FsZUZhY3RvciwgSFRN
TE1lZGlhRWxlbWVudEVudW1zOjpWaWRlb0Z1bGxzY3JlZW5Nb2RlIHZpZGVvRnVsbHNjcmVlbk1v
ZGUsIGJvb2wgYWxsb3dzUGljdHVyZUluUGljdHVyZSwgYm9vbCBzdGFuZGJ5KQoreworICAgIGlm
IChtX2NsaWVudC5zZXR1cEZ1bGxzY3JlZW5XaXRoSUQpCisgICAgICAgIG1fY2xpZW50LnNldHVw
RnVsbHNjcmVlbldpdGhJRCh0b0FQSShwYWdlKSwgY29udGV4dElkLCB2aWRlb0xheWVySWQsIHRv
QVBJKGluaXRpYWxSZWN0KSwgaG9zdGluZ1NjYWxlRmFjdG9yLCB2aWRlb0Z1bGxzY3JlZW5Nb2Rl
LCBhbGxvd3NQaWN0dXJlSW5QaWN0dXJlLCBzdGFuZGJ5KTsKKyAgICBlbHNlCisgICAgICAgIHBh
Z2UtPnNlbmQoTWVzc2FnZXM6OlZpZGVvRnVsbHNjcmVlbk1hbmFnZXJQcm94eTo6U2V0dXBGdWxs
c2NyZWVuV2l0aElEKGNvbnRleHRJZCwgdmlkZW9MYXllcklkLCBpbml0aWFsUmVjdCwgaG9zdGlu
Z1NjYWxlRmFjdG9yLCB2aWRlb0Z1bGxzY3JlZW5Nb2RlLCBhbGxvd3NQaWN0dXJlSW5QaWN0dXJl
LCBzdGFuZGJ5KSk7Cit9CisKK3ZvaWQgSW5qZWN0ZWRCdW5kbGVQYWdlVmlkZW9GdWxsc2NyZWVu
Q2xpZW50OjplbnRlckZ1bGxzY3JlZW4oV2ViUGFnZSogcGFnZSwgdWludDY0X3QgY29udGV4dElk
KQoreworICAgIGlmIChtX2NsaWVudC5lbnRlckZ1bGxzY3JlZW4pCisgICAgICAgIG1fY2xpZW50
LmVudGVyRnVsbHNjcmVlbih0b0FQSShwYWdlKSwgY29udGV4dElkKTsKKyAgICBlbHNlCisgICAg
ICAgIHBhZ2UtPnNlbmQoTWVzc2FnZXM6OlZpZGVvRnVsbHNjcmVlbk1hbmFnZXJQcm94eTo6RW50
ZXJGdWxsc2NyZWVuKGNvbnRleHRJZCkpOworfQorCit2b2lkIEluamVjdGVkQnVuZGxlUGFnZVZp
ZGVvRnVsbHNjcmVlbkNsaWVudDo6ZXhpdEZ1bGxzY3JlZW4oV2ViUGFnZSogcGFnZSwgdWludDY0
X3QgY29udGV4dElkLCBJbnRSZWN0IGZpbmFsUmVjdCkKK3sKKyAgICBpZiAobV9jbGllbnQuZXhp
dEZ1bGxzY3JlZW4pCisgICAgICAgIG1fY2xpZW50LmV4aXRGdWxsc2NyZWVuKHRvQVBJKHBhZ2Up
LCBjb250ZXh0SWQsIHRvQVBJKGZpbmFsUmVjdCkpOworICAgIGVsc2UKKyAgICAgICAgcGFnZS0+
c2VuZChNZXNzYWdlczo6VmlkZW9GdWxsc2NyZWVuTWFuYWdlclByb3h5OjpFeGl0RnVsbHNjcmVl
bihjb250ZXh0SWQsIGZpbmFsUmVjdCkpOworfQorCit2b2lkIEluamVjdGVkQnVuZGxlUGFnZVZp
ZGVvRnVsbHNjcmVlbkNsaWVudDo6c2V0SW5saW5lUmVjdChXZWJQYWdlKiBwYWdlLCB1aW50NjRf
dCBjb250ZXh0SWQsIEludFJlY3QgaW5saW5lUmVjdCwgYm9vbCB2aXNpYmxlKQoreworICAgIGlm
IChtX2NsaWVudC5zZXRJbmxpbmVSZWN0KQorICAgICAgICBtX2NsaWVudC5zZXRJbmxpbmVSZWN0
KHRvQVBJKHBhZ2UpLCBjb250ZXh0SWQsIHRvQVBJKGlubGluZVJlY3QpLCB2aXNpYmxlKTsKKyAg
ICBlbHNlCisgICAgICAgIHBhZ2UtPnNlbmQoTWVzc2FnZXM6OlZpZGVvRnVsbHNjcmVlbk1hbmFn
ZXJQcm94eTo6U2V0SW5saW5lUmVjdChjb250ZXh0SWQsIGlubGluZVJlY3QsIHZpc2libGUpKTsK
K30KKwordm9pZCBJbmplY3RlZEJ1bmRsZVBhZ2VWaWRlb0Z1bGxzY3JlZW5DbGllbnQ6OnNldEhh
c1ZpZGVvQ29udGVudExheWVyKFdlYlBhZ2UqIHBhZ2UsIHVpbnQ2NF90IGNvbnRleHRJZCwgYm9v
bCB2YWx1ZSkKK3sKKyAgICBpZiAobV9jbGllbnQuc2V0SGFzVmlkZW9Db250ZW50TGF5ZXIpCisg
ICAgICAgIG1fY2xpZW50LnNldEhhc1ZpZGVvQ29udGVudExheWVyKHRvQVBJKHBhZ2UpLCBjb250
ZXh0SWQsIHZhbHVlKTsKKyAgICBlbHNlCisgICAgICAgIHBhZ2UtPnNlbmQoTWVzc2FnZXM6OlZp
ZGVvRnVsbHNjcmVlbk1hbmFnZXJQcm94eTo6U2V0SGFzVmlkZW9Db250ZW50TGF5ZXIoY29udGV4
dElkLCB2YWx1ZSkpOworfQorCit2b2lkIEluamVjdGVkQnVuZGxlUGFnZVZpZGVvRnVsbHNjcmVl
bkNsaWVudDo6Y2xlYW51cEZ1bGxzY3JlZW4oV2ViUGFnZSogcGFnZSwgdWludDY0X3QgY29udGV4
dElkKQoreworICAgIGlmIChtX2NsaWVudC5jbGVhbnVwRnVsbHNjcmVlbikKKyAgICAgICAgbV9j
bGllbnQuY2xlYW51cEZ1bGxzY3JlZW4odG9BUEkocGFnZSksIGNvbnRleHRJZCk7CisgICAgZWxz
ZQorICAgICAgICBwYWdlLT5zZW5kKE1lc3NhZ2VzOjpWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyUHJv
eHk6OkNsZWFudXBGdWxsc2NyZWVuKGNvbnRleHRJZCkpOworfQorCit2b2lkIEluamVjdGVkQnVu
ZGxlUGFnZVZpZGVvRnVsbHNjcmVlbkNsaWVudDo6cHJlcGFyZWRUb1JldHVyblRvSW5saW5lKFdl
YlBhZ2UqIHBhZ2UsIHVpbnQ2NF90IGNvbnRleHRJZCwgYm9vbCB2aXNpYmxlLCBJbnRSZWN0IGlu
bGluZVJlY3QpCit7CisgICAgaWYgKG1fY2xpZW50LnByZXBhcmVkVG9SZXRydW5Ub0lubGluZSkK
KyAgICAgICAgbV9jbGllbnQucHJlcGFyZWRUb1JldHJ1blRvSW5saW5lKHRvQVBJKHBhZ2UpLCBj
b250ZXh0SWQsIHZpc2libGUsIHRvQVBJKGlubGluZVJlY3QpKTsKKyAgICBlbHNlCisgICAgICAg
IHBhZ2UtPnNlbmQoTWVzc2FnZXM6OlZpZGVvRnVsbHNjcmVlbk1hbmFnZXJQcm94eTo6UHJlcGFy
ZWRUb1JldHVyblRvSW5saW5lKGNvbnRleHRJZCwgdmlzaWJsZSwgaW5saW5lUmVjdCkpOworfQor
Cit2b2lkIEluamVjdGVkQnVuZGxlUGFnZVZpZGVvRnVsbHNjcmVlbkNsaWVudDo6cHJlcGFyZWRU
b0V4aXRGdWxsc2NyZWVuKFdlYlBhZ2UqIHBhZ2UsIHVpbnQ2NF90IGNvbnRleHRJZCkKK3sKKyAg
ICBpZiAobV9jbGllbnQucHJlcGFyZWRUb0V4aXRGdWxsc2NyZWVuKQorICAgICAgICBtX2NsaWVu
dC5wcmVwYXJlZFRvRXhpdEZ1bGxzY3JlZW4odG9BUEkocGFnZSksIGNvbnRleHRJZCk7CisgICAg
ZWxzZQorICAgICAgICBwYWdlLT5zZW5kKE1lc3NhZ2VzOjpWaWRlb0Z1bGxzY3JlZW5NYW5hZ2Vy
UHJveHk6OlByZXBhcmVkVG9FeGl0RnVsbHNjcmVlbihjb250ZXh0SWQpKTsKK30KKworI2lmIFBM
QVRGT1JNKE1BQykgJiYgRU5BQkxFKFZJREVPX1BSRVNFTlRBVElPTl9NT0RFKQordm9pZCBJbmpl
Y3RlZEJ1bmRsZVBhZ2VWaWRlb0Z1bGxzY3JlZW5DbGllbnQ6OmV4aXRGdWxsc2NyZWVuV2l0aG91
dEFuaW1hdGlvblRvTW9kZShXZWJQYWdlKiBwYWdlLCB1aW50NjRfdCBjb250ZXh0SWQsIEhUTUxN
ZWRpYUVsZW1lbnRFbnVtczo6VmlkZW9GdWxsc2NyZWVuTW9kZSB2aWRlb0Z1bGxzY3JlZW5Nb2Rl
KQoreworICAgIGlmIChtX2NsaWVudC5leGl0RnVsbHNjcmVlbldpdGhvdXRBbmltYXRpb25Ub01v
ZGUpCisgICAgICAgIG1fY2xpZW50LmV4aXRGdWxsc2NyZWVuV2l0aG91dEFuaW1hdGlvblRvTW9k
ZSh0b0FQSShwYWdlKSwgY29udGV4dElkLCB2aWRlb0Z1bGxzY3JlZW5Nb2RlKTsKKyAgICBlbHNl
CisgICAgICAgIHBhZ2UtPnNlbmQoTWVzc2FnZXM6OlZpZGVvRnVsbHNjcmVlbk1hbmFnZXJQcm94
eTo6RXhpdEZ1bGxzY3JlZW5XaXRob3V0QW5pbWF0aW9uVG9Nb2RlKGNvbnRleHRJZCwgdmlkZW9G
dWxsc2NyZWVuTW9kZSkpOworfQorI2VuZGlmCisKK30gLy8gbmFtZXNwYWNlIFdlYktpdAorCisj
ZW5kaWYgLy8gRU5BQkxFKFZJREVPX1BSRVNFTlRBVElPTl9NT0RFKQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0luamVjdGVkQnVuZGxlUGFnZVZp
ZGVvRnVsbHNjcmVlbkNsaWVudC5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVk
QnVuZGxlL0luamVjdGVkQnVuZGxlUGFnZVZpZGVvRnVsbHNjcmVlbkNsaWVudC5oCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLmQxOTFmNjA0MTdjMjljYjcwYjRiOTIxZTkxMTlkMTc3ZDJkZDcxOGMKLS0tIC9kZXYvbnVs
bAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvSW5qZWN0ZWRC
dW5kbGVQYWdlVmlkZW9GdWxsc2NyZWVuQ2xpZW50LmgKQEAgLTAsMCArMSw3MCBAQAorLyoKKyAq
IENvcHlyaWdodCAoQykgMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgor
ICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0
aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhh
dCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1
dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9k
dWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50
YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRp
b24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJ
VFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQg
V0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElF
RCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNV
TEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJ
TkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5E
SVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJ
QUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9G
CisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1Ig
UFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5E
IE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RS
SUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNF
KQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUs
IEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgor
ICovCisKKyNwcmFnbWEgb25jZQorCisjaWYgRU5BQkxFKFZJREVPX1BSRVNFTlRBVElPTl9NT0RF
KQorCisjaW5jbHVkZSAiQVBJQ2xpZW50LmgiCisjaW5jbHVkZSAiV0tCdW5kbGVQYWdlVmlkZW9G
dWxsc2NyZWVuQ2xpZW50LmgiCisjaW5jbHVkZSA8V2ViQ29yZS9IVE1MTWVkaWFFbGVtZW50RW51
bXMuaD4KKyNpbmNsdWRlIDx3dGYvRm9yd2FyZC5oPgorCituYW1lc3BhY2UgQVBJIHsKK3RlbXBs
YXRlPD4gc3RydWN0IENsaWVudFRyYWl0czxXS0J1bmRsZVBhZ2VWaWRlb0Z1bGxzY3JlZW5DbGll
bnRCYXNlPiB7CisgICAgdHlwZWRlZiBzdGQ6OnR1cGxlPFdLQnVuZGxlUGFnZVZpZGVvRnVsbHNj
cmVlbkNsaWVudFYwPiBWZXJzaW9uczsKK307Cit9CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKK2Ns
YXNzIEVsZW1lbnQ7CitjbGFzcyBGbG9hdFNpemU7CitjbGFzcyBJbnRSZWN0OworfQorCituYW1l
c3BhY2UgV2ViS2l0IHsKKworY2xhc3MgV2ViUGFnZTsKKworY2xhc3MgSW5qZWN0ZWRCdW5kbGVQ
YWdlVmlkZW9GdWxsc2NyZWVuQ2xpZW50IDogcHVibGljIEFQSTo6Q2xpZW50PFdLQnVuZGxlUGFn
ZVZpZGVvRnVsbHNjcmVlbkNsaWVudEJhc2U+IHsKK3B1YmxpYzoKKyAgICB2b2lkIHNldEhhc1Zp
ZGVvKFdlYlBhZ2UqLCB1aW50NjRfdCBjb250ZXh0SWQsIGJvb2wgaGFzVmlkZW8pOworICAgIHZv
aWQgc2V0VmlkZW9EaW1lbnNpb25zKFdlYlBhZ2UqLCB1aW50NjRfdCBjb250ZXh0SWQsIFdlYkNv
cmU6OkZsb2F0U2l6ZSB2aWRlb0RpbWVuc2lvbnMpOworICAgIHZvaWQgc2V0dXBGdWxsc2NyZWVu
V2l0aElEKFdlYlBhZ2UqLCB1aW50NjRfdCBjb250ZXh0SWQsIHVpbnQzMl90IHZpZGVvTGF5ZXJJ
RCwgV2ViQ29yZTo6SW50UmVjdCBpbml0aWFsUmVjdCwgZmxvYXQgaG9zdGluZ1NjYWxlRmFjdG9y
LCBXZWJDb3JlOjpIVE1MTWVkaWFFbGVtZW50RW51bXM6OlZpZGVvRnVsbHNjcmVlbk1vZGUsIGJv
b2wgYWxsb3dzUGljdHVyZUluUGljdHVyZSwgYm9vbCBzdGFuZGJ5KTsKKyAgICB2b2lkIGVudGVy
RnVsbHNjcmVlbihXZWJQYWdlKiwgdWludDY0X3QgY29udGV4dElkKTsKKyAgICB2b2lkIGV4aXRG
dWxsc2NyZWVuKFdlYlBhZ2UqLCB1aW50NjRfdCBjb250ZXh0SWQsIFdlYkNvcmU6OkludFJlY3Qg
ZmluYWxSZWN0KTsKKyAgICB2b2lkIHNldElubGluZVJlY3QoV2ViUGFnZSosIHVpbnQ2NF90IGNv
bnRleHRJZCwgV2ViQ29yZTo6SW50UmVjdCBpbmxpbmVSZWN0LCBib29sIHZpc2libGUpOworICAg
IHZvaWQgc2V0SGFzVmlkZW9Db250ZW50TGF5ZXIoV2ViUGFnZSosIHVpbnQ2NF90IGNvbnRleHRJ
ZCwgYm9vbCB2YWx1ZSk7CisgICAgdm9pZCBjbGVhbnVwRnVsbHNjcmVlbihXZWJQYWdlKiwgdWlu
dDY0X3QgY29udGV4dElkKTsKKyAgICB2b2lkIHByZXBhcmVkVG9SZXR1cm5Ub0lubGluZShXZWJQ
YWdlKiwgdWludDY0X3QgY29udGV4dElkLCBib29sIHZpc2libGUsIFdlYkNvcmU6OkludFJlY3Qg
aW5saW5lUmVjdCk7CisgICAgdm9pZCBwcmVwYXJlZFRvRXhpdEZ1bGxzY3JlZW4oV2ViUGFnZSos
IHVpbnQ2NF90IGNvbnRleHRJZCk7CisjaWYgUExBVEZPUk0oTUFDKSAmJiBFTkFCTEUoVklERU9f
UFJFU0VOVEFUSU9OX01PREUpCisgICAgdm9pZCBleGl0RnVsbHNjcmVlbldpdGhvdXRBbmltYXRp
b25Ub01vZGUoV2ViUGFnZSosIHVpbnQ2NF90IGNvbnRleHRJZCwgV2ViQ29yZTo6SFRNTE1lZGlh
RWxlbWVudEVudW1zOjpWaWRlb0Z1bGxzY3JlZW5Nb2RlKTsKKyNlbmRpZgorfTsKKworfSAvLyBu
YW1lc3BhY2UgV2ViS2l0CisKKyNlbmRpZiAvLyBQTEFURk9STShJT1NfRkFNSUxZKSB8fCAoUExB
VEZPUk0oTUFDKSAmJiBFTkFCTEUoVklERU9fUFJFU0VOVEFUSU9OX01PREUpKQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAgYi9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcAppbmRleCA1YjRjZWZmM2VhYjJi
YTdkNWI3OGUyYTFjOWU2MzBiMmU3ZmQ1MzhhLi5jYzQ0ZDQxMjgzNWNkNTY2ZWI2NDBlZmRlMWNj
NzZmNmE3YzkyMWYxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFn
ZS9XZWJQYWdlLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQ
YWdlLmNwcApAQCAtOTY5LDYgKzk2OSwxMyBAQCB2b2lkIFdlYlBhZ2U6OmluaXRpYWxpemVJbmpl
Y3RlZEJ1bmRsZUZ1bGxTY3JlZW5DbGllbnQoV0tCdW5kbGVQYWdlRnVsbFNjcmVlbkNsaQogfQog
I2VuZGlmCiAKKyNpZiBFTkFCTEUoVklERU9fUFJFU0VOVEFUSU9OX01PREUpCit2b2lkIFdlYlBh
Z2U6OmluaXRpYWxpemVJbmplY3RlZEJ1bmRsZVZpZGVvRnVsbHNjcmVlbkNsaWVudChXS0J1bmRs
ZVBhZ2VWaWRlb0Z1bGxzY3JlZW5DbGllbnRCYXNlKiBjbGllbnQpCit7CisgICAgbV92aWRlb0Z1
bGxzY3JlZW5DbGllbnQuaW5pdGlhbGl6ZShjbGllbnQpOworfQorI2VuZGlmCisKICNpZiBFTkFC
TEUoTkVUU0NBUEVfUExVR0lOX0FQSSkKIAogY29uc3RleHByIGludCBzbWFsbFBsdWdpbkRpbWVu
c2lvblRocmVzaG9sZCA9IDU7CkBAIC0xNDE0LDYgKzE0MjEsMTAgQEAgdm9pZCBXZWJQYWdlOjpj
bG9zZSgpCiAgICAgbV9mdWxsU2NyZWVuQ2xpZW50LmluaXRpYWxpemUoMCk7CiAjZW5kaWYKIAor
I2lmIEVOQUJMRShWSURFT19QUkVTRU5UQVRJT05fTU9ERSkKKyAgICBtX3ZpZGVvRnVsbHNjcmVl
bkNsaWVudC5pbml0aWFsaXplKDApOworI2VuZGlmCisKICAgICBtX3ByaW50Q29udGV4dCA9IG51
bGxwdHI7CiAgICAgbV9tYWluRnJhbWUtPmNvcmVGcmFtZSgpLT5sb2FkZXIoKS5kZXRhY2hGcm9t
UGFyZW50KCk7CiAgICAgbV9kcmF3aW5nQXJlYSA9IG51bGxwdHI7CkBAIC0zODM5LDcgKzM4NTAs
NyBAQCB2b2lkIFdlYlBhZ2U6Omluc3BlY3RvckZyb250ZW5kQ291bnRDaGFuZ2VkKHVuc2lnbmVk
IGNvdW50KQogICAgIHNlbmQoTWVzc2FnZXM6OldlYlBhZ2VQcm94eTo6RGlkQ2hhbmdlSW5zcGVj
dG9yRnJvbnRlbmRDb3VudChjb3VudCkpOwogfQogCi0jaWYgRU5BQkxFKFZJREVPX1BSRVNFTlRB
VElPTl9NT0RFKQorI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpIHx8IChQTEFURk9STShNQUMpICYm
IEVOQUJMRShWSURFT19QUkVTRU5UQVRJT05fTU9ERSkpCiBQbGF5YmFja1Nlc3Npb25NYW5hZ2Vy
JiBXZWJQYWdlOjpwbGF5YmFja1Nlc3Npb25NYW5hZ2VyKCkKIHsKICAgICBpZiAoIW1fcGxheWJh
Y2tTZXNzaW9uTWFuYWdlcikKQEAgLTM4NDcsMTMgKzM4NTgsNiBAQCBQbGF5YmFja1Nlc3Npb25N
YW5hZ2VyJiBXZWJQYWdlOjpwbGF5YmFja1Nlc3Npb25NYW5hZ2VyKCkKICAgICByZXR1cm4gKm1f
cGxheWJhY2tTZXNzaW9uTWFuYWdlcjsKIH0KIAotVmlkZW9GdWxsc2NyZWVuTWFuYWdlciYgV2Vi
UGFnZTo6dmlkZW9GdWxsc2NyZWVuTWFuYWdlcigpCi17Ci0gICAgaWYgKCFtX3ZpZGVvRnVsbHNj
cmVlbk1hbmFnZXIpCi0gICAgICAgIG1fdmlkZW9GdWxsc2NyZWVuTWFuYWdlciA9IFZpZGVvRnVs
bHNjcmVlbk1hbmFnZXI6OmNyZWF0ZSgqdGhpcywgcGxheWJhY2tTZXNzaW9uTWFuYWdlcigpKTsK
LSAgICByZXR1cm4gKm1fdmlkZW9GdWxsc2NyZWVuTWFuYWdlcjsKLX0KLQogdm9pZCBXZWJQYWdl
Ojp2aWRlb0NvbnRyb2xzTWFuYWdlckRpZENoYW5nZSgpCiB7CiAjaWYgRU5BQkxFKEZVTExTQ1JF
RU5fQVBJKQpAQCAtMzg2MSw3ICszODY1LDE1IEBAIHZvaWQgV2ViUGFnZTo6dmlkZW9Db250cm9s
c01hbmFnZXJEaWRDaGFuZ2UoKQogICAgICAgICBtYW5hZ2VyLT52aWRlb0NvbnRyb2xzTWFuYWdl
ckRpZENoYW5nZSgpOwogI2VuZGlmCiB9CisjZW5kaWYKIAorI2lmIEVOQUJMRShWSURFT19QUkVT
RU5UQVRJT05fTU9ERSkKK1ZpZGVvRnVsbHNjcmVlbk1hbmFnZXImIFdlYlBhZ2U6OnZpZGVvRnVs
bHNjcmVlbk1hbmFnZXIoKQoreworICAgIGlmICghbV92aWRlb0Z1bGxzY3JlZW5NYW5hZ2VyKQor
ICAgICAgICBtX3ZpZGVvRnVsbHNjcmVlbk1hbmFnZXIgPSBWaWRlb0Z1bGxzY3JlZW5NYW5hZ2Vy
OjpjcmVhdGUoKnRoaXMsIHBsYXliYWNrU2Vzc2lvbk1hbmFnZXIoKSk7CisgICAgcmV0dXJuICpt
X3ZpZGVvRnVsbHNjcmVlbk1hbmFnZXI7Cit9CiAjZW5kaWYKIAogI2lmIFBMQVRGT1JNKElPU19G
QU1JTFkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQ
YWdlLmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmgKaW5kZXgg
ODIyNjVkNGMxYWQ4Y2QyY2VkN2FhNzI5YTk1NzlkNmYyYjM0OGI1OC4uZWMzZGE2ZjVlZDBhMGNh
OTBmNGE2ZDM1YzhiYzYwNjgwZmEzZWJkMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9X
ZWJQYWdlL1dlYlBhZ2UuaApAQCAtNDAsNiArNDAsNyBAQAogI2luY2x1ZGUgIkluamVjdGVkQnVu
ZGxlUGFnZUNvbnRleHRNZW51Q2xpZW50LmgiCiAjaW5jbHVkZSAiSW5qZWN0ZWRCdW5kbGVQYWdl
RnVsbFNjcmVlbkNsaWVudC5oIgogI2luY2x1ZGUgIkluamVjdGVkQnVuZGxlUGFnZVBvbGljeUNs
aWVudC5oIgorI2luY2x1ZGUgIkluamVjdGVkQnVuZGxlUGFnZVZpZGVvRnVsbHNjcmVlbkNsaWVu
dC5oIgogI2luY2x1ZGUgIkxheWVyVHJlZUNvbnRleHQuaCIKICNpbmNsdWRlICJNZXNzYWdlUmVj
ZWl2ZXIuaCIKICNpbmNsdWRlICJNZXNzYWdlU2VuZGVyLmgiCkBAIC00NTMsNiArNDU0LDEwIEBA
IHB1YmxpYzoKICAgICB2b2lkIGluaXRpYWxpemVJbmplY3RlZEJ1bmRsZUZ1bGxTY3JlZW5DbGll
bnQoV0tCdW5kbGVQYWdlRnVsbFNjcmVlbkNsaWVudEJhc2UqKTsKICNlbmRpZgogCisjaWYgRU5B
QkxFKFZJREVPX1BSRVNFTlRBVElPTl9NT0RFKQorICAgIHZvaWQgaW5pdGlhbGl6ZUluamVjdGVk
QnVuZGxlVmlkZW9GdWxsc2NyZWVuQ2xpZW50KFdLQnVuZGxlUGFnZVZpZGVvRnVsbHNjcmVlbkNs
aWVudEJhc2UqKTsKKyNlbmRpZgorCiAjaWYgRU5BQkxFKENPTlRFWFRfTUVOVVMpCiAgICAgQVBJ
OjpJbmplY3RlZEJ1bmRsZTo6UGFnZUNvbnRleHRNZW51Q2xpZW50JiBpbmplY3RlZEJ1bmRsZUNv
bnRleHRNZW51Q2xpZW50KCkgeyByZXR1cm4gKm1fY29udGV4dE1lbnVDbGllbnQ7IH0KICNlbmRp
ZgpAQCAtNDY2LDYgKzQ3MSwxMCBAQCBwdWJsaWM6CiAgICAgSW5qZWN0ZWRCdW5kbGVQYWdlRnVs
bFNjcmVlbkNsaWVudCYgaW5qZWN0ZWRCdW5kbGVGdWxsU2NyZWVuQ2xpZW50KCkgeyByZXR1cm4g
bV9mdWxsU2NyZWVuQ2xpZW50OyB9CiAjZW5kaWYKIAorI2lmIEVOQUJMRShWSURFT19QUkVTRU5U
QVRJT05fTU9ERSkKKyAgICBJbmplY3RlZEJ1bmRsZVBhZ2VWaWRlb0Z1bGxzY3JlZW5DbGllbnQm
IGluamVjdGVkQnVuZGxlVmlkZW9GdWxsc2NyZWVuQ2xpZW50KCkgeyByZXR1cm4gbV92aWRlb0Z1
bGxzY3JlZW5DbGllbnQ7IH0KKyNlbmRpZgorCiAgICAgYm9vbCBmaW5kU3RyaW5nRnJvbUluamVj
dGVkQnVuZGxlKGNvbnN0IFN0cmluZyYsIEZpbmRPcHRpb25zKTsKICAgICB2b2lkIGZpbmRTdHJp
bmdNYXRjaGVzRnJvbUluamVjdGVkQnVuZGxlKGNvbnN0IFN0cmluZyYsIEZpbmRPcHRpb25zKTsK
ICAgICB2b2lkIHJlcGxhY2VTdHJpbmdNYXRjaGVzRnJvbUluamVjdGVkQnVuZGxlKGNvbnN0IFZl
Y3Rvcjx1aW50MzJfdD4mIG1hdGNoSW5kaWNlcywgY29uc3QgU3RyaW5nJiByZXBsYWNlbWVudFRl
eHQsIGJvb2wgc2VsZWN0aW9uT25seSk7CkBAIC0xODQwLDYgKzE4NDksMTAgQEAgcHJpdmF0ZToK
ICAgICBJbmplY3RlZEJ1bmRsZVBhZ2VGdWxsU2NyZWVuQ2xpZW50IG1fZnVsbFNjcmVlbkNsaWVu
dDsKICNlbmRpZgogCisjaWYgRU5BQkxFKFZJREVPX1BSRVNFTlRBVElPTl9NT0RFKQorICAgIElu
amVjdGVkQnVuZGxlUGFnZVZpZGVvRnVsbHNjcmVlbkNsaWVudCBtX3ZpZGVvRnVsbHNjcmVlbkNs
aWVudDsKKyNlbmRpZgorCiAgICAgVW5pcXVlUmVmPEZpbmRDb250cm9sbGVyPiBtX2ZpbmRDb250
cm9sbGVyOwogCiAgICAgUmVmUHRyPFdlYkluc3BlY3Rvcj4gbV9pbnNwZWN0b3I7CkBAIC0xODQ3
LDggKzE4NjAsMTEgQEAgcHJpdmF0ZToKICAgICBSZWZQdHI8UmVtb3RlV2ViSW5zcGVjdG9yVUk+
IG1fcmVtb3RlSW5zcGVjdG9yVUk7CiAgICAgc3RkOjp1bmlxdWVfcHRyPFdlYlBhZ2VJbnNwZWN0
b3JUYXJnZXRDb250cm9sbGVyPiBtX2luc3BlY3RvclRhcmdldENvbnRyb2xsZXI7CiAKLSNpZiBF
TkFCTEUoVklERU9fUFJFU0VOVEFUSU9OX01PREUpCisjaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkg
fHwgKFBMQVRGT1JNKE1BQykgJiYgRU5BQkxFKFZJREVPX1BSRVNFTlRBVElPTl9NT0RFKSkKICAg
ICBSZWZQdHI8UGxheWJhY2tTZXNzaW9uTWFuYWdlcj4gbV9wbGF5YmFja1Nlc3Npb25NYW5hZ2Vy
OworI2VuZGlmCisKKyNpZiBFTkFCTEUoVklERU9fUFJFU0VOVEFUSU9OX01PREUpCiAgICAgUmVm
UHRyPFZpZGVvRnVsbHNjcmVlbk1hbmFnZXI+IG1fdmlkZW9GdWxsc2NyZWVuTWFuYWdlcjsKICNl
bmRpZgogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvY29jb2EvVmlkZW9G
dWxsc2NyZWVuTWFuYWdlci5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL2NvY29hL1ZpZGVv
RnVsbHNjcmVlbk1hbmFnZXIuaAppbmRleCBmMTM2ZWNiOWRkM2VhY2VmYWRkOTc0YmRjZGJkNDJj
YWVmZjYyN2NmLi5jY2MwYWNlYTZlYmQ5YjNkNWNlNjRmZWFkZjcxYTYzMjIyNjdjZmJjIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvY29jb2EvVmlkZW9GdWxsc2NyZWVuTWFu
YWdlci5oCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9jb2NvYS9WaWRlb0Z1bGxzY3Jl
ZW5NYW5hZ2VyLmgKQEAgLTEyMiw2ICsxMjIsMTUgQEAgcHVibGljOgogICAgIHZvaWQgZXhpdFZp
ZGVvRnVsbHNjcmVlbkZvclZpZGVvRWxlbWVudChXZWJDb3JlOjpIVE1MVmlkZW9FbGVtZW50Jik7
CiAgICAgdm9pZCBleGl0VmlkZW9GdWxsc2NyZWVuVG9Nb2RlV2l0aG91dEFuaW1hdGlvbihXZWJD
b3JlOjpIVE1MVmlkZW9FbGVtZW50JiwgV2ViQ29yZTo6SFRNTE1lZGlhRWxlbWVudEVudW1zOjpW
aWRlb0Z1bGxzY3JlZW5Nb2RlKTsKIAorICAgIC8vIE1lc3NhZ2VzIGZyb20gVmlkZW9GdWxsc2Ny
ZWVuTWFuYWdlclByb3h5CisgICAgdm9pZCByZXF1ZXN0RnVsbHNjcmVlbk1vZGUodWludDY0X3Qg
Y29udGV4dElkLCBXZWJDb3JlOjpIVE1MTWVkaWFFbGVtZW50RW51bXM6OlZpZGVvRnVsbHNjcmVl
bk1vZGUsIGJvb2wgZmluaXNoZWRXaXRoTWVkaWEpOworICAgIHZvaWQgcmVxdWVzdFZpZGVvQ29u
dGVudExheWVyKHVpbnQ2NF90IGNvbnRleHRJZCk7CisgICAgdm9pZCByZXR1cm5WaWRlb0NvbnRl
bnRMYXllcih1aW50NjRfdCBjb250ZXh0SWQpOworICAgIHZvaWQgZGlkU2V0dXBGdWxsc2NyZWVu
KHVpbnQ2NF90IGNvbnRleHRJZCk7CisgICAgdm9pZCBkaWRFbnRlckZ1bGxzY3JlZW4odWludDY0
X3QgY29udGV4dElkKTsKKyAgICB2b2lkIGRpZEV4aXRGdWxsc2NyZWVuKHVpbnQ2NF90IGNvbnRl
eHRJZCk7CisgICAgdm9pZCBkaWRDbGVhbnVwRnVsbHNjcmVlbih1aW50NjRfdCBjb250ZXh0SWQp
OworCiBwcm90ZWN0ZWQ6CiAgICAgZnJpZW5kIGNsYXNzIFZpZGVvRnVsbHNjcmVlbkludGVyZmFj
ZUNvbnRleHQ7CiAKQEAgLTE0MSwxNSArMTUwLDkgQEAgcHJvdGVjdGVkOgogICAgIHZvaWQgdmlk
ZW9EaW1lbnNpb25zQ2hhbmdlZCh1aW50NjRfdCBjb250ZXh0SWQsIGNvbnN0IFdlYkNvcmU6OkZs
b2F0U2l6ZSYpOwogCiAgICAgLy8gTWVzc2FnZXMgZnJvbSBWaWRlb0Z1bGxzY3JlZW5NYW5hZ2Vy
UHJveHkKLSAgICB2b2lkIHJlcXVlc3RGdWxsc2NyZWVuTW9kZSh1aW50NjRfdCBjb250ZXh0SWQs
IFdlYkNvcmU6OkhUTUxNZWRpYUVsZW1lbnRFbnVtczo6VmlkZW9GdWxsc2NyZWVuTW9kZSwgYm9v
bCBmaW5pc2hlZFdpdGhNZWRpYSk7CiAgICAgdm9pZCByZXF1ZXN0VXBkYXRlSW5saW5lUmVjdCh1
aW50NjRfdCBjb250ZXh0SWQpOwotICAgIHZvaWQgcmVxdWVzdFZpZGVvQ29udGVudExheWVyKHVp
bnQ2NF90IGNvbnRleHRJZCk7Ci0gICAgdm9pZCByZXR1cm5WaWRlb0NvbnRlbnRMYXllcih1aW50
NjRfdCBjb250ZXh0SWQpOwotICAgIHZvaWQgZGlkU2V0dXBGdWxsc2NyZWVuKHVpbnQ2NF90IGNv
bnRleHRJZCk7CiAgICAgdm9pZCB3aWxsRXhpdEZ1bGxzY3JlZW4odWludDY0X3QgY29udGV4dElk
KTsKLSAgICB2b2lkIGRpZEV4aXRGdWxsc2NyZWVuKHVpbnQ2NF90IGNvbnRleHRJZCk7Ci0gICAg
dm9pZCBkaWRFbnRlckZ1bGxzY3JlZW4odWludDY0X3QgY29udGV4dElkKTsKLSAgICB2b2lkIGRp
ZENsZWFudXBGdWxsc2NyZWVuKHVpbnQ2NF90IGNvbnRleHRJZCk7CisKICAgICB2b2lkIHNldFZp
ZGVvTGF5ZXJGcmFtZUZlbmNlZCh1aW50NjRfdCBjb250ZXh0SWQsIFdlYkNvcmU6OkZsb2F0UmVj
dCBib3VuZHMsIElQQzo6QXR0YWNobWVudCBmZW5jZVBvcnQpOwogICAgIHZvaWQgc2V0VmlkZW9M
YXllckdyYXZpdHlFbnVtKHVpbnQ2NF90IGNvbnRleHRJZCwgdW5zaWduZWQgZ3Jhdml0eSk7CiAg
ICAgdm9pZCBmdWxsc2NyZWVuTW9kZUNoYW5nZWQodWludDY0X3QgY29udGV4dElkLCBXZWJDb3Jl
OjpIVE1MTWVkaWFFbGVtZW50RW51bXM6OlZpZGVvRnVsbHNjcmVlbk1vZGUpOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL2NvY29hL1ZpZGVvRnVsbHNjcmVlbk1hbmFnZXIu
bW0gYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvY29jb2EvVmlkZW9GdWxsc2NyZWVuTWFuYWdl
ci5tbQppbmRleCBmZjRhMmQzZTkxNmI1MDAyZjY3ZjM5ZmY3ZTllMTE4NTliMzY3ZTQ1Li5jZjJj
ZjVlY2RjN2NjZTE3ZDc0Y2E1ZjhhYTEyN2NmNTFlZWFmMjc0IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvY29jb2EvVmlkZW9GdWxsc2NyZWVuTWFuYWdlci5tbQorKysgYi9T
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvY29jb2EvVmlkZW9GdWxsc2NyZWVuTWFuYWdlci5tbQpA
QCAtMjg1LDcgKzI4NSw3IEBAIHZvaWQgVmlkZW9GdWxsc2NyZWVuTWFuYWdlcjo6ZW50ZXJWaWRl
b0Z1bGxzY3JlZW5Gb3JWaWRlb0VsZW1lbnQoSFRNTFZpZGVvRWxlbWVuCiAgICAgICAgIGludGVy
ZmFjZS0+bGF5ZXJIb3N0aW5nQ29udGV4dCgpLT5zZXRSb290TGF5ZXIodmlkZW9MYXllci5nZXQo
KSk7CiAgICAgfQogCi0gICAgbV9wYWdlLT5zZW5kKE1lc3NhZ2VzOjpWaWRlb0Z1bGxzY3JlZW5N
YW5hZ2VyUHJveHk6OlNldHVwRnVsbHNjcmVlbldpdGhJRChjb250ZXh0SWQsIGludGVyZmFjZS0+
bGF5ZXJIb3N0aW5nQ29udGV4dCgpLT5jb250ZXh0SUQoKSwgdmlkZW9SZWN0LCBtX3BhZ2UtPmRl
dmljZVNjYWxlRmFjdG9yKCksIGludGVyZmFjZS0+ZnVsbHNjcmVlbk1vZGUoKSwgYWxsb3dzUGlj
dHVyZUluUGljdHVyZSwgc3RhbmRieSkpOworICAgIG1fcGFnZS0+aW5qZWN0ZWRCdW5kbGVWaWRl
b0Z1bGxzY3JlZW5DbGllbnQoKS5zZXR1cEZ1bGxzY3JlZW5XaXRoSUQobV9wYWdlLCBjb250ZXh0
SWQsIGludGVyZmFjZS0+bGF5ZXJIb3N0aW5nQ29udGV4dCgpLT5jb250ZXh0SUQoKSwgdmlkZW9S
ZWN0LCBtX3BhZ2UtPmRldmljZVNjYWxlRmFjdG9yKCksIGludGVyZmFjZS0+ZnVsbHNjcmVlbk1v
ZGUoKSwgYWxsb3dzUGljdHVyZUluUGljdHVyZSwgc3RhbmRieSk7CiB9CiAKIHZvaWQgVmlkZW9G
dWxsc2NyZWVuTWFuYWdlcjo6ZXhpdFZpZGVvRnVsbHNjcmVlbkZvclZpZGVvRWxlbWVudChXZWJD
b3JlOjpIVE1MVmlkZW9FbGVtZW50JiB2aWRlb0VsZW1lbnQpCkBAIC0zMDEsNyArMzAxLDcgQEAg
dm9pZCBWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyOjpleGl0VmlkZW9GdWxsc2NyZWVuRm9yVmlkZW9F
bGVtZW50KFdlYkNvcmU6OkhUTUxWaWQKICAgICAgICAgcmV0dXJuOwogCiAgICAgaW50ZXJmYWNl
LnNldEFuaW1hdGlvblN0YXRlKFZpZGVvRnVsbHNjcmVlbkludGVyZmFjZUNvbnRleHQ6OkFuaW1h
dGlvblR5cGU6OkZyb21GdWxsc2NyZWVuKTsKLSAgICBtX3BhZ2UtPnNlbmQoTWVzc2FnZXM6OlZp
ZGVvRnVsbHNjcmVlbk1hbmFnZXJQcm94eTo6RXhpdEZ1bGxzY3JlZW4oY29udGV4dElkLCBpbmxp
bmVWaWRlb0ZyYW1lKHZpZGVvRWxlbWVudCkpKTsKKyAgICBtX3BhZ2UtPmluamVjdGVkQnVuZGxl
VmlkZW9GdWxsc2NyZWVuQ2xpZW50KCkuZXhpdEZ1bGxzY3JlZW4obV9wYWdlLCBjb250ZXh0SWQs
IGlubGluZVZpZGVvRnJhbWUodmlkZW9FbGVtZW50KSk7CiB9CiAKIHZvaWQgVmlkZW9GdWxsc2Ny
ZWVuTWFuYWdlcjo6ZXhpdFZpZGVvRnVsbHNjcmVlblRvTW9kZVdpdGhvdXRBbmltYXRpb24oV2Vi
Q29yZTo6SFRNTFZpZGVvRWxlbWVudCYgdmlkZW9FbGVtZW50LCBXZWJDb3JlOjpIVE1MTWVkaWFF
bGVtZW50RW51bXM6OlZpZGVvRnVsbHNjcmVlbk1vZGUgdGFyZ2V0TW9kZSkKQEAgLTMxNyw3ICsz
MTcsNyBAQCB2b2lkIFZpZGVvRnVsbHNjcmVlbk1hbmFnZXI6OmV4aXRWaWRlb0Z1bGxzY3JlZW5U
b01vZGVXaXRob3V0QW5pbWF0aW9uKFdlYkNvcmU6OgogCiAgICAgaW50ZXJmYWNlLnNldFRhcmdl
dElzRnVsbHNjcmVlbihmYWxzZSk7CiAKLSAgICBtX3BhZ2UtPnNlbmQoTWVzc2FnZXM6OlZpZGVv
RnVsbHNjcmVlbk1hbmFnZXJQcm94eTo6RXhpdEZ1bGxzY3JlZW5XaXRob3V0QW5pbWF0aW9uVG9N
b2RlKGNvbnRleHRJZCwgdGFyZ2V0TW9kZSkpOworICAgIG1fcGFnZS0+aW5qZWN0ZWRCdW5kbGVW
aWRlb0Z1bGxzY3JlZW5DbGllbnQoKS5leGl0RnVsbHNjcmVlbldpdGhvdXRBbmltYXRpb25Ub01v
ZGUobV9wYWdlLCBjb250ZXh0SWQsIHRhcmdldE1vZGUpOwogI2Vsc2UKICAgICBVTlVTRURfUEFS
QU0odmlkZW9FbGVtZW50KTsKICAgICBVTlVTRURfUEFSQU0odGFyZ2V0TW9kZSk7CkBAIC0zMjks
MTMgKzMyOSwxMyBAQCB2b2lkIFZpZGVvRnVsbHNjcmVlbk1hbmFnZXI6OmV4aXRWaWRlb0Z1bGxz
Y3JlZW5Ub01vZGVXaXRob3V0QW5pbWF0aW9uKFdlYkNvcmU6Ogogdm9pZCBWaWRlb0Z1bGxzY3Jl
ZW5NYW5hZ2VyOjpoYXNWaWRlb0NoYW5nZWQodWludDY0X3QgY29udGV4dElkLCBib29sIGhhc1Zp
ZGVvKQogewogICAgIGlmIChtX3BhZ2UpCi0gICAgICAgIG1fcGFnZS0+c2VuZChNZXNzYWdlczo6
VmlkZW9GdWxsc2NyZWVuTWFuYWdlclByb3h5OjpTZXRIYXNWaWRlbyhjb250ZXh0SWQsIGhhc1Zp
ZGVvKSk7CisgICAgICAgIG1fcGFnZS0+aW5qZWN0ZWRCdW5kbGVWaWRlb0Z1bGxzY3JlZW5DbGll
bnQoKS5zZXRIYXNWaWRlbyhtX3BhZ2UsIGNvbnRleHRJZCwgaGFzVmlkZW8pOwogfQogCiB2b2lk
IFZpZGVvRnVsbHNjcmVlbk1hbmFnZXI6OnZpZGVvRGltZW5zaW9uc0NoYW5nZWQodWludDY0X3Qg
Y29udGV4dElkLCBjb25zdCBGbG9hdFNpemUmIHZpZGVvRGltZW5zaW9ucykKIHsKICAgICBpZiAo
bV9wYWdlKQotICAgICAgICBtX3BhZ2UtPnNlbmQoTWVzc2FnZXM6OlZpZGVvRnVsbHNjcmVlbk1h
bmFnZXJQcm94eTo6U2V0VmlkZW9EaW1lbnNpb25zKGNvbnRleHRJZCwgdmlkZW9EaW1lbnNpb25z
KSk7CisgICAgICAgIG1fcGFnZS0+aW5qZWN0ZWRCdW5kbGVWaWRlb0Z1bGxzY3JlZW5DbGllbnQo
KS5zZXRWaWRlb0RpbWVuc2lvbnMobV9wYWdlLCBjb250ZXh0SWQsIHZpZGVvRGltZW5zaW9ucyk7
CiB9CiAKICNwcmFnbWEgbWFyayBNZXNzYWdlcyBmcm9tIFZpZGVvRnVsbHNjcmVlbk1hbmFnZXJQ
cm94eToKQEAgLTM1Nyw3ICszNTcsNyBAQCB2b2lkIFZpZGVvRnVsbHNjcmVlbk1hbmFnZXI6OnJl
cXVlc3RVcGRhdGVJbmxpbmVSZWN0KHVpbnQ2NF90IGNvbnRleHRJZCkKIAogICAgIGF1dG8mIG1v
ZGVsID0gZW5zdXJlTW9kZWwoY29udGV4dElkKTsKICAgICBJbnRSZWN0IGlubGluZVJlY3QgPSBp
bmxpbmVWaWRlb0ZyYW1lKCptb2RlbC52aWRlb0VsZW1lbnQoKSk7Ci0gICAgbV9wYWdlLT5zZW5k
KE1lc3NhZ2VzOjpWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyUHJveHk6OlNldElubGluZVJlY3QoY29u
dGV4dElkLCBpbmxpbmVSZWN0LCBpbmxpbmVSZWN0ICE9IEludFJlY3QoMCwgMCwgMCwgMCkpKTsK
KyAgICBtX3BhZ2UtPmluamVjdGVkQnVuZGxlVmlkZW9GdWxsc2NyZWVuQ2xpZW50KCkuc2V0SW5s
aW5lUmVjdChtX3BhZ2UsIGNvbnRleHRJZCwgaW5saW5lUmVjdCwgaW5saW5lUmVjdCAhPSBJbnRS
ZWN0KDAsIDAsIDAsIDApKTsKIH0KIAogdm9pZCBWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyOjpyZXF1
ZXN0VmlkZW9Db250ZW50TGF5ZXIodWludDY0X3QgY29udGV4dElkKQpAQCAtMzY4LDggKzM2OCw4
IEBAIHZvaWQgVmlkZW9GdWxsc2NyZWVuTWFuYWdlcjo6cmVxdWVzdFZpZGVvQ29udGVudExheWVy
KHVpbnQ2NF90IGNvbnRleHRJZCkKIAogICAgIG1vZGVsLT5zZXRWaWRlb0Z1bGxzY3JlZW5MYXll
cih2aWRlb0xheWVyLCBbcHJvdGVjdGVkVGhpcyA9IG1ha2VSZWZQdHIodGhpcyksIHRoaXMsIGNv
bnRleHRJZF0gKCkgbXV0YWJsZSB7CiAgICAgICAgIGRpc3BhdGNoX2FzeW5jKGRpc3BhdGNoX2dl
dF9tYWluX3F1ZXVlKCksIFtwcm90ZWN0ZWRUaGlzID0gV1RGTW92ZShwcm90ZWN0ZWRUaGlzKSwg
dGhpcywgY29udGV4dElkXSB7Ci0gICAgICAgICAgICBpZiAocHJvdGVjdGVkVGhpcy0+bV9wYWdl
KQotICAgICAgICAgICAgICAgIG1fcGFnZS0+c2VuZChNZXNzYWdlczo6VmlkZW9GdWxsc2NyZWVu
TWFuYWdlclByb3h5OjpTZXRIYXNWaWRlb0NvbnRlbnRMYXllcihjb250ZXh0SWQsIHRydWUpKTsK
KyAgICAgICAgICAgIGlmIChtX3BhZ2UpCisgICAgICAgICAgICAgICAgbV9wYWdlLT5pbmplY3Rl
ZEJ1bmRsZVZpZGVvRnVsbHNjcmVlbkNsaWVudCgpLnNldEhhc1ZpZGVvQ29udGVudExheWVyKG1f
cGFnZSwgY29udGV4dElkLCB0cnVlKTsKICAgICAgICAgfSk7CiAgICAgfSk7CiB9CkBAIC0zODQs
OCArMzg0LDggQEAgdm9pZCBWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyOjpyZXR1cm5WaWRlb0NvbnRl
bnRMYXllcih1aW50NjRfdCBjb250ZXh0SWQpCiAgICAgICAgIGRpc3BhdGNoX2FzeW5jKGRpc3Bh
dGNoX2dldF9tYWluX3F1ZXVlKCksIFtwcm90ZWN0ZWRUaGlzID0gV1RGTW92ZShwcm90ZWN0ZWRU
aGlzKSwgdGhpcywgY29udGV4dElkLCBtb2RlbF0gKCkgbXV0YWJsZSB7CiAgICAgICAgICAgICBt
b2RlbC0+c2V0VmlkZW9GdWxsc2NyZWVuTGF5ZXIobmlsLCBbcHJvdGVjdGVkVGhpcyA9IFdURk1v
dmUocHJvdGVjdGVkVGhpcyksIHRoaXMsIGNvbnRleHRJZF0gKCkgbXV0YWJsZSB7CiAgICAgICAg
ICAgICAgICAgZGlzcGF0Y2hfYXN5bmMoZGlzcGF0Y2hfZ2V0X21haW5fcXVldWUoKSwgW3Byb3Rl
Y3RlZFRoaXMgPSBXVEZNb3ZlKHByb3RlY3RlZFRoaXMpLCB0aGlzLCBjb250ZXh0SWRdIHsKLSAg
ICAgICAgICAgICAgICAgICAgaWYgKHByb3RlY3RlZFRoaXMtPm1fcGFnZSkKLSAgICAgICAgICAg
ICAgICAgICAgICAgIG1fcGFnZS0+c2VuZChNZXNzYWdlczo6VmlkZW9GdWxsc2NyZWVuTWFuYWdl
clByb3h5OjpTZXRIYXNWaWRlb0NvbnRlbnRMYXllcihjb250ZXh0SWQsIGZhbHNlKSk7CisgICAg
ICAgICAgICAgICAgICAgIGlmIChtX3BhZ2UpCisgICAgICAgICAgICAgICAgICAgICAgICBtX3Bh
Z2UtPmluamVjdGVkQnVuZGxlVmlkZW9GdWxsc2NyZWVuQ2xpZW50KCkuc2V0SGFzVmlkZW9Db250
ZW50TGF5ZXIobV9wYWdlLCBjb250ZXh0SWQsIGZhbHNlKTsKICAgICAgICAgICAgICAgICB9KTsK
ICAgICAgICAgICAgIH0pOwogICAgICAgICB9KTsKQEAgLTQwOSw4ICs0MDksOCBAQCB2b2lkIFZp
ZGVvRnVsbHNjcmVlbk1hbmFnZXI6OmRpZFNldHVwRnVsbHNjcmVlbih1aW50NjRfdCBjb250ZXh0
SWQpCiAKICAgICBtb2RlbC0+c2V0VmlkZW9GdWxsc2NyZWVuTGF5ZXIodmlkZW9MYXllciwgW3By
b3RlY3RlZFRoaXMgPSBtYWtlUmVmUHRyKHRoaXMpLCB0aGlzLCBjb250ZXh0SWRdICgpIG11dGFi
bGUgewogICAgICAgICBkaXNwYXRjaF9hc3luYyhkaXNwYXRjaF9nZXRfbWFpbl9xdWV1ZSgpLCBb
cHJvdGVjdGVkVGhpcyA9IFdURk1vdmUocHJvdGVjdGVkVGhpcyksIHRoaXMsIGNvbnRleHRJZF0g
ewotICAgICAgICAgICAgaWYgKHByb3RlY3RlZFRoaXMtPm1fcGFnZSkKLSAgICAgICAgICAgICAg
ICBtX3BhZ2UtPnNlbmQoTWVzc2FnZXM6OlZpZGVvRnVsbHNjcmVlbk1hbmFnZXJQcm94eTo6RW50
ZXJGdWxsc2NyZWVuKGNvbnRleHRJZCkpOworICAgICAgICAgICAgaWYgKG1fcGFnZSkKKyAgICAg
ICAgICAgICAgICBtX3BhZ2UtPmluamVjdGVkQnVuZGxlVmlkZW9GdWxsc2NyZWVuQ2xpZW50KCku
ZW50ZXJGdWxsc2NyZWVuKG1fcGFnZSwgY29udGV4dElkKTsKICAgICAgICAgfSk7CiAgICAgfSk7
CiAjZW5kaWYKQEAgLTQyNiwxMCArNDI2LDEwIEBAIHZvaWQgVmlkZW9GdWxsc2NyZWVuTWFuYWdl
cjo6d2lsbEV4aXRGdWxsc2NyZWVuKHVpbnQ2NF90IGNvbnRleHRJZCkKICAgICBpZiAoIXZpZGVv
RWxlbWVudCkKICAgICAgICAgcmV0dXJuOwogCi0gICAgZGlzcGF0Y2hfYXN5bmMoZGlzcGF0Y2hf
Z2V0X21haW5fcXVldWUoKSwgW3Byb3RlY3RlZFRoaXMgPSBtYWtlUmVmUHRyKHRoaXMpLCB2aWRl
b0VsZW1lbnQgPSBXVEZNb3ZlKHZpZGVvRWxlbWVudCksIGNvbnRleHRJZF0geworICAgIGRpc3Bh
dGNoX2FzeW5jKGRpc3BhdGNoX2dldF9tYWluX3F1ZXVlKCksIFtwcm90ZWN0ZWRUaGlzID0gbWFr
ZVJlZlB0cih0aGlzKSwgdGhpcywgdmlkZW9FbGVtZW50ID0gV1RGTW92ZSh2aWRlb0VsZW1lbnQp
LCBjb250ZXh0SWRdIHsKICAgICAgICAgdmlkZW9FbGVtZW50LT53aWxsRXhpdEZ1bGxzY3JlZW4o
KTsKLSAgICAgICAgaWYgKHByb3RlY3RlZFRoaXMtPm1fcGFnZSkKLSAgICAgICAgICAgIHByb3Rl
Y3RlZFRoaXMtPm1fcGFnZS0+c2VuZChNZXNzYWdlczo6VmlkZW9GdWxsc2NyZWVuTWFuYWdlclBy
b3h5OjpQcmVwYXJlZFRvRXhpdEZ1bGxzY3JlZW4oY29udGV4dElkKSk7CisgICAgICAgIGlmICht
X3BhZ2UpCisgICAgICAgICAgICBtX3BhZ2UtPmluamVjdGVkQnVuZGxlVmlkZW9GdWxsc2NyZWVu
Q2xpZW50KCkucHJlcGFyZWRUb0V4aXRGdWxsc2NyZWVuKG1fcGFnZSwgY29udGV4dElkKTsKICAg
ICB9KTsKIH0KIApAQCAtNDU0LDkgKzQ1NCw5IEBAIHZvaWQgVmlkZW9GdWxsc2NyZWVuTWFuYWdl
cjo6ZGlkRW50ZXJGdWxsc2NyZWVuKHVpbnQ2NF90IGNvbnRleHRJZCkKICAgICAgICAgcmV0dXJu
OwogCiAgICAgLy8gZXhpdCBmdWxsc2NyZWVuIG5vdyBpZiBpdCB3YXMgcHJldmlvdXNseSByZXF1
ZXN0ZWQgZHVyaW5nIGFuIGFuaW1hdGlvbi4KLSAgICBkaXNwYXRjaF9hc3luYyhkaXNwYXRjaF9n
ZXRfbWFpbl9xdWV1ZSgpLCBbcHJvdGVjdGVkVGhpcyA9IG1ha2VSZWZQdHIodGhpcyksIHZpZGVv
RWxlbWVudF0gewotICAgICAgICBpZiAocHJvdGVjdGVkVGhpcy0+bV9wYWdlKQotICAgICAgICAg
ICAgcHJvdGVjdGVkVGhpcy0+ZXhpdFZpZGVvRnVsbHNjcmVlbkZvclZpZGVvRWxlbWVudCgqdmlk
ZW9FbGVtZW50KTsKKyAgICBkaXNwYXRjaF9hc3luYyhkaXNwYXRjaF9nZXRfbWFpbl9xdWV1ZSgp
LCBbcHJvdGVjdGVkVGhpcyA9IG1ha2VSZWZQdHIodGhpcyksIHRoaXMsIHZpZGVvRWxlbWVudF0g
eworICAgICAgICBpZiAobV9wYWdlKQorICAgICAgICAgICAgZXhpdFZpZGVvRnVsbHNjcmVlbkZv
clZpZGVvRWxlbWVudCgqdmlkZW9FbGVtZW50KTsKICAgICB9KTsKIH0KIApAQCAtNDY5LDkgKzQ2
OSw5IEBAIHZvaWQgVmlkZW9GdWxsc2NyZWVuTWFuYWdlcjo6ZGlkRXhpdEZ1bGxzY3JlZW4odWlu
dDY0X3QgY29udGV4dElkKQogICAgIHN0ZDo6dGllKG1vZGVsLCBpbnRlcmZhY2UpID0gZW5zdXJl
TW9kZWxBbmRJbnRlcmZhY2UoY29udGV4dElkKTsKIAogI2lmIFBMQVRGT1JNKElPU19GQU1JTFkp
Ci0gICAgZGlzcGF0Y2hfYXN5bmMoZGlzcGF0Y2hfZ2V0X21haW5fcXVldWUoKSwgW3Byb3RlY3Rl
ZFRoaXMgPSBtYWtlUmVmUHRyKHRoaXMpLCBjb250ZXh0SWQsIGludGVyZmFjZV0gewotICAgICAg
ICBpZiAocHJvdGVjdGVkVGhpcy0+bV9wYWdlKQotICAgICAgICAgICAgcHJvdGVjdGVkVGhpcy0+
bV9wYWdlLT5zZW5kKE1lc3NhZ2VzOjpWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyUHJveHk6OkNsZWFu
dXBGdWxsc2NyZWVuKGNvbnRleHRJZCkpOworICAgIGRpc3BhdGNoX2FzeW5jKGRpc3BhdGNoX2dl
dF9tYWluX3F1ZXVlKCksIFtwcm90ZWN0ZWRUaGlzID0gbWFrZVJlZlB0cih0aGlzKSwgdGhpcywg
Y29udGV4dElkLCBpbnRlcmZhY2VdIHsKKyAgICAgICAgaWYgKG1fcGFnZSkKKyAgICAgICAgICAg
IG1fcGFnZS0+aW5qZWN0ZWRCdW5kbGVWaWRlb0Z1bGxzY3JlZW5DbGllbnQoKS5jbGVhbnVwRnVs
bHNjcmVlbihtX3BhZ2UsIGNvbnRleHRJZCk7CiAgICAgfSk7CiAjZWxzZQogICAgIG1vZGVsLT53
YWl0Rm9yUHJlcGFyZWRGb3JJbmxpbmVUaGVuKFtwcm90ZWN0ZWRUaGlzID0gbWFrZVJlZlB0cih0
aGlzKSwgY29udGV4dElkLCBpbnRlcmZhY2UsIG1vZGVsXSAoKSBtdXRhYmxlIHsKQEAgLTQ4Mywx
NCArNDgzLDE0IEBAIHZvaWQgVmlkZW9GdWxsc2NyZWVuTWFuYWdlcjo6ZGlkRXhpdEZ1bGxzY3Jl
ZW4odWludDY0X3QgY29udGV4dElkKQogICAgICAgICAgICAgICAgICAgICAgICAgaW50ZXJmYWNl
LT5zZXRMYXllckhvc3RpbmdDb250ZXh0KG51bGxwdHIpOwogICAgICAgICAgICAgICAgICAgICB9
CiAgICAgICAgICAgICAgICAgICAgIGlmIChwcm90ZWN0ZWRUaGlzLT5tX3BhZ2UpCi0gICAgICAg
ICAgICAgICAgICAgICAgICBwcm90ZWN0ZWRUaGlzLT5tX3BhZ2UtPnNlbmQoTWVzc2FnZXM6OlZp
ZGVvRnVsbHNjcmVlbk1hbmFnZXJQcm94eTo6Q2xlYW51cEZ1bGxzY3JlZW4oY29udGV4dElkKSk7
CisgICAgICAgICAgICAgICAgICAgICAgICBwcm90ZWN0ZWRUaGlzLT5tX3BhZ2UtPmluamVjdGVk
QnVuZGxlVmlkZW9GdWxsc2NyZWVuQ2xpZW50KCkuY2xlYW51cEZ1bGxzY3JlZW4ocHJvdGVjdGVk
VGhpcy0+bV9wYWdlLCBjb250ZXh0SWQpOwogICAgICAgICAgICAgICAgIH0pOwogICAgICAgICAg
ICAgfSk7CiAgICAgICAgIH0pOwogICAgIH0pOwogI2VuZGlmCiB9Ci0gICAgCisKIHZvaWQgVmlk
ZW9GdWxsc2NyZWVuTWFuYWdlcjo6ZGlkQ2xlYW51cEZ1bGxzY3JlZW4odWludDY0X3QgY29udGV4
dElkKQogewogICAgIExPRyhGdWxsc2NyZWVuLCAiVmlkZW9GdWxsc2NyZWVuTWFuYWdlcjo6ZGlk
Q2xlYW51cEZ1bGxzY3JlZW4oJXAsICV4KSIsIHRoaXMsIGNvbnRleHRJZCk7CkBAIC01MTgsOSAr
NTE4LDkgQEAgdm9pZCBWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyOjpkaWRDbGVhbnVwRnVsbHNjcmVl
bih1aW50NjRfdCBjb250ZXh0SWQpCiAgICAgaWYgKCF2aWRlb0VsZW1lbnQgfHwgIXRhcmdldElz
RnVsbHNjcmVlbikKICAgICAgICAgcmV0dXJuOwogCi0gICAgZGlzcGF0Y2hfYXN5bmMoZGlzcGF0
Y2hfZ2V0X21haW5fcXVldWUoKSwgW3Byb3RlY3RlZFRoaXMgPSBtYWtlUmVmUHRyKHRoaXMpLCB2
aWRlb0VsZW1lbnQsIG1vZGUsIHN0YW5kYnldIHsKLSAgICAgICAgaWYgKHByb3RlY3RlZFRoaXMt
Pm1fcGFnZSkKLSAgICAgICAgICAgIHByb3RlY3RlZFRoaXMtPmVudGVyVmlkZW9GdWxsc2NyZWVu
Rm9yVmlkZW9FbGVtZW50KCp2aWRlb0VsZW1lbnQsIG1vZGUsIHN0YW5kYnkpOworICAgIGRpc3Bh
dGNoX2FzeW5jKGRpc3BhdGNoX2dldF9tYWluX3F1ZXVlKCksIFtwcm90ZWN0ZWRUaGlzID0gbWFr
ZVJlZlB0cih0aGlzKSwgdGhpcywgdmlkZW9FbGVtZW50LCBtb2RlLCBzdGFuZGJ5XSB7CisgICAg
ICAgIGlmIChtX3BhZ2UpCisgICAgICAgICAgICBlbnRlclZpZGVvRnVsbHNjcmVlbkZvclZpZGVv
RWxlbWVudCgqdmlkZW9FbGVtZW50LCBtb2RlLCBzdGFuZGJ5KTsKICAgICB9KTsKIH0KICAgICAK
QEAgLTUzOCw3ICs1MzgsNyBAQCB2b2lkIFZpZGVvRnVsbHNjcmVlbk1hbmFnZXI6OmZ1bGxzY3Jl
ZW5NYXlSZXR1cm5Ub0lubGluZSh1aW50NjRfdCBjb250ZXh0SWQsIGJvbwogCiAgICAgaWYgKCFp
c1BhZ2VWaXNpYmxlKQogICAgICAgICBtb2RlbC52aWRlb0VsZW1lbnQoKS0+c2Nyb2xsSW50b1Zp
ZXdJZk5vdFZpc2libGUoZmFsc2UpOwotICAgIG1fcGFnZS0+c2VuZChNZXNzYWdlczo6VmlkZW9G
dWxsc2NyZWVuTWFuYWdlclByb3h5OjpQcmVwYXJlZFRvUmV0dXJuVG9JbmxpbmUoY29udGV4dElk
LCB0cnVlLCBpbmxpbmVWaWRlb0ZyYW1lKCptb2RlbC52aWRlb0VsZW1lbnQoKSkpKTsKKyAgICBt
X3BhZ2UtPmluamVjdGVkQnVuZGxlVmlkZW9GdWxsc2NyZWVuQ2xpZW50KCkucHJlcGFyZWRUb1Jl
dHVyblRvSW5saW5lKG1fcGFnZSwgY29udGV4dElkLCB0cnVlLCBpbmxpbmVWaWRlb0ZyYW1lKCpt
b2RlbC52aWRlb0VsZW1lbnQoKSkpOwogfQogCiB2b2lkIFZpZGVvRnVsbHNjcmVlbk1hbmFnZXI6
OnJlcXVlc3RSb3V0ZVNoYXJpbmdQb2xpY3lBbmRDb250ZXh0VUlEKHVpbnQ2NF90IGNvbnRleHRJ
ZCwgTWVzc2FnZXM6OlZpZGVvRnVsbHNjcmVlbk1hbmFnZXI6OlJlcXVlc3RSb3V0ZVNoYXJpbmdQ
b2xpY3lBbmRDb250ZXh0VUlEOjpBc3luY1JlcGx5JiYgcmVwbHkpCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>396985</attachid>
            <date>2020-04-20 10:12:50 -0700</date>
            <delta_ts>2020-04-27 20:18:00 -0700</delta_ts>
            <desc>Add back the changes on WebKitTestRunner</desc>
            <filename>bug-203723-20200420101249.patch</filename>
            <type>text/plain</type>
            <size>61145</size>
            <attacher name="Peng Liu">peng.liu6</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjYwMjkzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDExZjZlNzRiMWNiYmU4MGI4
N2YyNTU4MTE5NzkxYjYyODc5NmJjOWMuLjBmYTk0Y2E4NmZkYmUxZWQwNjFlMDg0NDcxOWQxYWMy
YjM3MDgzMDYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNjQgQEAKKzIwMjAtMDQtMTcgIFBlbmcgTGl1
ICA8cGVuZy5saXU2QGFwcGxlLmNvbT4KKworICAgICAgICBVcGRhdGUgV2ViS2l0VGVzdFJ1bm5l
ciB0byBzdXBwb3J0IHJ1bm5pbmcgbXVsdGlwbGUgdmlkZW8gZnVsbHNjcmVlbiBhbmQgUGljdHVy
ZS1pbi1QaWN0dXJlIHRlc3RzIHNpbXVsdGFuZW91c2x5CisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDM3MjMKKworICAgICAgICBSZXZpZXdlZCBieSBO
T0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGQgdGhlIGluamVjdGVkIGJ1bmRsZSBjbGllbnQg
c3VwcG9ydCBmb3IgdmlkZW8gZnVsbHNjcmVlbiByZWxhdGVkIGludGVyZmFjZXMgYmV0d2VlbiAK
KyAgICAgICAgdGhlIFdlYiBwcm9jZXNzIChWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyKSBhbmQgdGhl
IFVJIHByb2Nlc3MgKFZpZGVvRnVsbHNjcmVlbk1hbmFnZXJQcm94eSkuCisKKyAgICAgICAgKiBT
aGFyZWQvQVBJL2MvV0tTaGFyZWRBUElDYXN0Lmg6CisgICAgICAgIChXZWJLaXQ6OnRvQVBJKToK
KyAgICAgICAgKiBXZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBX
ZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9jL1dLQnVuZGxlUGFnZS5jcHA6CisgICAgICAg
IChXS0J1bmRsZVBhZ2VTZXRWaWRlb0Z1bGxzY3JlZW5DbGllbnQpOgorICAgICAgICAoV0tCdW5k
bGVQYWdlUmVxdWVzdFZpZGVvRnVsbHNjcmVlbk1vZGUpOgorICAgICAgICAoV0tCdW5kbGVQYWdl
UmVxdWVzdFZpZGVvQ29udGVudExheWVyKToKKyAgICAgICAgKFdLQnVuZGxlUGFnZURpZFNldHVw
VmlkZW9GdWxsc2NyZWVuKToKKyAgICAgICAgKFdLQnVuZGxlUGFnZURpZEVudGVyVmlkZW9GdWxs
c2NyZWVuKToKKyAgICAgICAgKFdLQnVuZGxlUGFnZVJldHVyblZpZGVvQ29udGVudExheWVyKToK
KyAgICAgICAgKFdLQnVuZGxlUGFnZURpZEV4aXRWaWRlb0Z1bGxzY3JlZW4pOgorICAgICAgICAo
V0tCdW5kbGVQYWdlRGlkQ2xlYW51cFZpZGVvRnVsbHNjcmVlbik6CisgICAgICAgICogV2ViUHJv
Y2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvYy9XS0J1bmRsZVBhZ2UuaDoKKyAgICAgICAgKiBXZWJQ
cm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9jL1dLQnVuZGxlUGFnZVZpZGVvRnVsbHNjcmVlbkNs
aWVudC5oOiBBZGRlZC4KKyAgICAgICAgKiBXZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0luamVj
dGVkQnVuZGxlUGFnZUZ1bGxTY3JlZW5DbGllbnQuY3BwOgorICAgICAgICAqIFdlYlByb2Nlc3Mv
SW5qZWN0ZWRCdW5kbGUvSW5qZWN0ZWRCdW5kbGVQYWdlRnVsbFNjcmVlbkNsaWVudC5oOgorICAg
ICAgICAqIFdlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvSW5qZWN0ZWRCdW5kbGVQYWdlVmlkZW9G
dWxsc2NyZWVuQ2xpZW50LmNwcDogQWRkZWQuCisgICAgICAgIChXZWJLaXQ6OkluamVjdGVkQnVu
ZGxlUGFnZVZpZGVvRnVsbHNjcmVlbkNsaWVudDo6c2V0SGFzVmlkZW8pOgorICAgICAgICAoV2Vi
S2l0OjpJbmplY3RlZEJ1bmRsZVBhZ2VWaWRlb0Z1bGxzY3JlZW5DbGllbnQ6OnNldFZpZGVvRGlt
ZW5zaW9ucyk6CisgICAgICAgIChXZWJLaXQ6OkluamVjdGVkQnVuZGxlUGFnZVZpZGVvRnVsbHNj
cmVlbkNsaWVudDo6c2V0dXBGdWxsc2NyZWVuV2l0aElEKToKKyAgICAgICAgKFdlYktpdDo6SW5q
ZWN0ZWRCdW5kbGVQYWdlVmlkZW9GdWxsc2NyZWVuQ2xpZW50OjplbnRlckZ1bGxzY3JlZW4pOgor
ICAgICAgICAoV2ViS2l0OjpJbmplY3RlZEJ1bmRsZVBhZ2VWaWRlb0Z1bGxzY3JlZW5DbGllbnQ6
OmV4aXRGdWxsc2NyZWVuKToKKyAgICAgICAgKFdlYktpdDo6SW5qZWN0ZWRCdW5kbGVQYWdlVmlk
ZW9GdWxsc2NyZWVuQ2xpZW50OjpzZXRJbmxpbmVSZWN0KToKKyAgICAgICAgKFdlYktpdDo6SW5q
ZWN0ZWRCdW5kbGVQYWdlVmlkZW9GdWxsc2NyZWVuQ2xpZW50OjpzZXRIYXNWaWRlb0NvbnRlbnRM
YXllcik6CisgICAgICAgIChXZWJLaXQ6OkluamVjdGVkQnVuZGxlUGFnZVZpZGVvRnVsbHNjcmVl
bkNsaWVudDo6Y2xlYW51cEZ1bGxzY3JlZW4pOgorICAgICAgICAoV2ViS2l0OjpJbmplY3RlZEJ1
bmRsZVBhZ2VWaWRlb0Z1bGxzY3JlZW5DbGllbnQ6OnByZXBhcmVkVG9SZXR1cm5Ub0lubGluZSk6
CisgICAgICAgIChXZWJLaXQ6OkluamVjdGVkQnVuZGxlUGFnZVZpZGVvRnVsbHNjcmVlbkNsaWVu
dDo6cHJlcGFyZWRUb0V4aXRGdWxsc2NyZWVuKToKKyAgICAgICAgKFdlYktpdDo6SW5qZWN0ZWRC
dW5kbGVQYWdlVmlkZW9GdWxsc2NyZWVuQ2xpZW50OjpleGl0RnVsbHNjcmVlbldpdGhvdXRBbmlt
YXRpb25Ub01vZGUpOgorICAgICAgICAqIFdlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvSW5qZWN0
ZWRCdW5kbGVQYWdlVmlkZW9GdWxsc2NyZWVuQ2xpZW50Lmg6IEFkZGVkLgorICAgICAgICAqIFdl
YlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZTo6
aW5pdGlhbGl6ZUluamVjdGVkQnVuZGxlVmlkZW9GdWxsc2NyZWVuQ2xpZW50KToKKyAgICAgICAg
KFdlYktpdDo6V2ViUGFnZTo6Y2xvc2UpOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9X
ZWJQYWdlLmg6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2U6OmluamVjdGVkQnVuZGxlVmlkZW9G
dWxsc2NyZWVuQ2xpZW50KToKKyAgICAgICAgKiBXZWJQcm9jZXNzL2NvY29hL1ZpZGVvRnVsbHNj
cmVlbk1hbmFnZXIuaDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL2NvY29hL1ZpZGVvRnVsbHNjcmVl
bk1hbmFnZXIubW06CisgICAgICAgIChXZWJLaXQ6OlZpZGVvRnVsbHNjcmVlbk1hbmFnZXI6OmVu
dGVyVmlkZW9GdWxsc2NyZWVuRm9yVmlkZW9FbGVtZW50KToKKyAgICAgICAgKFdlYktpdDo6Vmlk
ZW9GdWxsc2NyZWVuTWFuYWdlcjo6ZXhpdFZpZGVvRnVsbHNjcmVlbkZvclZpZGVvRWxlbWVudCk6
CisgICAgICAgIChXZWJLaXQ6OlZpZGVvRnVsbHNjcmVlbk1hbmFnZXI6OmV4aXRWaWRlb0Z1bGxz
Y3JlZW5Ub01vZGVXaXRob3V0QW5pbWF0aW9uKToKKyAgICAgICAgKFdlYktpdDo6VmlkZW9GdWxs
c2NyZWVuTWFuYWdlcjo6aGFzVmlkZW9DaGFuZ2VkKToKKyAgICAgICAgKFdlYktpdDo6VmlkZW9G
dWxsc2NyZWVuTWFuYWdlcjo6dmlkZW9EaW1lbnNpb25zQ2hhbmdlZCk6CisgICAgICAgIChXZWJL
aXQ6OlZpZGVvRnVsbHNjcmVlbk1hbmFnZXI6OnJlcXVlc3RVcGRhdGVJbmxpbmVSZWN0KToKKyAg
ICAgICAgKFdlYktpdDo6VmlkZW9GdWxsc2NyZWVuTWFuYWdlcjo6cmVxdWVzdFZpZGVvQ29udGVu
dExheWVyKToKKyAgICAgICAgKFdlYktpdDo6VmlkZW9GdWxsc2NyZWVuTWFuYWdlcjo6cmV0dXJu
VmlkZW9Db250ZW50TGF5ZXIpOgorICAgICAgICAoV2ViS2l0OjpWaWRlb0Z1bGxzY3JlZW5NYW5h
Z2VyOjpkaWRTZXR1cEZ1bGxzY3JlZW4pOgorICAgICAgICAoV2ViS2l0OjpWaWRlb0Z1bGxzY3Jl
ZW5NYW5hZ2VyOjp3aWxsRXhpdEZ1bGxzY3JlZW4pOgorICAgICAgICAoV2ViS2l0OjpWaWRlb0Z1
bGxzY3JlZW5NYW5hZ2VyOjpkaWRFbnRlckZ1bGxzY3JlZW4pOgorICAgICAgICAoV2ViS2l0OjpW
aWRlb0Z1bGxzY3JlZW5NYW5hZ2VyOjpkaWRFeGl0RnVsbHNjcmVlbik6CisgICAgICAgIChXZWJL
aXQ6OlZpZGVvRnVsbHNjcmVlbk1hbmFnZXI6OmRpZENsZWFudXBGdWxsc2NyZWVuKToKKyAgICAg
ICAgKFdlYktpdDo6VmlkZW9GdWxsc2NyZWVuTWFuYWdlcjo6ZnVsbHNjcmVlbk1heVJldHVyblRv
SW5saW5lKToKKwogMjAyMC0wNC0xNyAgRGF2aWQgS2lsemVyICA8ZGRraWx6ZXJAYXBwbGUuY29t
PgogCiAgICAgICAgIFJFR1JFU1NJT04gKHIyMzQxMDUpOiBbaU9TXSBXS0NvbG9yQnV0dG9uIGxl
YWtzIGEgVUlDb2xvcgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9IZWFkZXJzLmNtYWtlIGIv
U291cmNlL1dlYktpdC9IZWFkZXJzLmNtYWtlCmluZGV4IDQzNjM5NzBmMWFlMDM2NmVhMDM5NTU3
YTI3M2Q4YjgzZTY2MTY0NDguLjI3YmYxYzkzNWIzM2U2YWM0NTRkYTQ3MDgxODViN2RjZjk0ZTRh
OWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvSGVhZGVycy5jbWFrZQorKysgYi9Tb3VyY2Uv
V2ViS2l0L0hlYWRlcnMuY21ha2UKQEAgLTE0Myw2ICsxNDMsNyBAQCBzZXQoV2ViS2l0X1BVQkxJ
Q19GUkFNRVdPUktfSEVBREVSUwogICAgIFdlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2Mv
V0tCdW5kbGVQYWdlUHJpdmF0ZS5oCiAgICAgV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkv
Yy9XS0J1bmRsZVBhZ2VSZXNvdXJjZUxvYWRDbGllbnQuaAogICAgIFdlYlByb2Nlc3MvSW5qZWN0
ZWRCdW5kbGUvQVBJL2MvV0tCdW5kbGVQYWdlVUlDbGllbnQuaAorICAgIFdlYlByb2Nlc3MvSW5q
ZWN0ZWRCdW5kbGUvQVBJL2MvV0tCdW5kbGVQYWdlVmlkZW9GdWxsc2NyZWVuQ2xpZW50LmgKICAg
ICBXZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9jL1dLQnVuZGxlUHJpdmF0ZS5oCiAgICAg
V2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvYy9XS0J1bmRsZVJhbmdlSGFuZGxlLmgKICAg
ICBXZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9jL1dLQnVuZGxlU2NyaXB0V29ybGQuaApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvQVBJL2MvV0tTaGFyZWRBUElDYXN0Lmgg
Yi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9BUEkvYy9XS1NoYXJlZEFQSUNhc3QuaAppbmRleCAzN2M3
ZDk2NjQyODJhZjM5NDhiNWZhMDA2ZmM4NTA0OTQ3N2E5NDgwLi4wNTU0MjE1NmVkYWFiZDQ2YmYw
YjdiNzJlYTI3Mjg0ODUwNjIzYjdiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9B
UEkvYy9XS1NoYXJlZEFQSUNhc3QuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9BUEkvYy9X
S1NoYXJlZEFQSUNhc3QuaApAQCAtMjQ5LDYgKzI0OSwxNCBAQCBpbmxpbmUgV0tSZWN0IHRvQVBJ
KGNvbnN0IFdlYkNvcmU6OkZsb2F0UmVjdCYgcmVjdCkKICAgICByZXR1cm4gd2tSZWN0OwogfQog
CitpbmxpbmUgV0tTaXplIHRvQVBJKGNvbnN0IFdlYkNvcmU6OkZsb2F0U2l6ZSYgc2l6ZSkKK3sK
KyAgICBXS1NpemUgd2tTaXplOworICAgIHdrU2l6ZS53aWR0aCA9IHNpemUud2lkdGgoKTsKKyAg
ICB3a1NpemUuaGVpZ2h0ID0gc2l6ZS5oZWlnaHQoKTsKKyAgICByZXR1cm4gd2tTaXplOworfQor
CiBpbmxpbmUgV0tSZWN0IHRvQVBJKGNvbnN0IFdlYkNvcmU6OkludFJlY3QmIHJlY3QpCiB7CiAg
ICAgV0tSZWN0IHdrUmVjdDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViS2l0Lnhjb2Rl
cHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvV2ViS2l0L1dlYktpdC54Y29kZXByb2ovcHJv
amVjdC5wYnhwcm9qCmluZGV4IDZlNDdiNmU5MmYwMmE5NWYzMzc2YjhhNzA1ZGZiMTExYWY4YTY4
NDkuLjEyN2M3ODRjNDA5Yjc4MTk4MzE2OGVhODY1ZTFkMTJlNDBkMzk5ZGIgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291
cmNlL1dlYktpdC9XZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtNDE3LDYgKzQx
Nyw5IEBACiAJCTFENEQ3MzcxMjNBOUU1NjIwMDcxN0EyNSAvKiBSZW1vdGVNZWRpYVJlc291cmNl
TWFuYWdlck1lc3NhZ2VzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSAxRDRENzM2QzIzQTlERjYwMDA3MTdBMjUgLyogUmVtb3RlTWVkaWFSZXNvdXJjZU1h
bmFnZXJNZXNzYWdlcy5oICovOyB9OwogCQkxRDRENzM3NjIzQTlFRDE4MDA3MTdBMjUgLyogUmVt
b3RlTWVkaWFSZXNvdXJjZU1hbmFnZXJNZXNzYWdlc1JlcGxpZXMuaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDFENEQ3Mzc1MjNBOUVCNjgwMDcxN0EyNSAv
KiBSZW1vdGVNZWRpYVJlc291cmNlTWFuYWdlck1lc3NhZ2VzUmVwbGllcy5oICovOyB9OwogCQkx
RDY3QjMzOTIxMkUxRjYxMDBGQUE3ODYgLyogU2hhcmVTaGVldENhbGxiYWNrSUQuaCBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDFENjdCMzM4MjEyRTFGNjEw
MEZBQTc4NiAvKiBTaGFyZVNoZWV0Q2FsbGJhY2tJRC5oICovOyB9OworCQkxREFBNTJDMDI0Mzk2
ODMxMDAxQTMxNTkgLyogSW5qZWN0ZWRCdW5kbGVQYWdlVmlkZW9GdWxsc2NyZWVuQ2xpZW50Lmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxREFBNTJCRTI0
Mzk2ODMxMDAxQTMxNTkgLyogSW5qZWN0ZWRCdW5kbGVQYWdlVmlkZW9GdWxsc2NyZWVuQ2xpZW50
LmggKi87IH07CisJCTFEQUE1MkMxMjQzOTY4MzEwMDFBMzE1OSAvKiBJbmplY3RlZEJ1bmRsZVBh
Z2VWaWRlb0Z1bGxzY3JlZW5DbGllbnQuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gMURBQTUyQkYyNDM5NjgzMTAwMUEzMTU5IC8qIEluamVjdGVkQnVu
ZGxlUGFnZVZpZGVvRnVsbHNjcmVlbkNsaWVudC5jcHAgKi87IH07CisJCTFEQUE1MkMzMjQzOTZF
NkQwMDFBMzE1OSAvKiBXS0J1bmRsZVBhZ2VWaWRlb0Z1bGxzY3JlZW5DbGllbnQuaCBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDFEQUE1MkMyMjQzOTZFNkQw
MDFBMzE1OSAvKiBXS0J1bmRsZVBhZ2VWaWRlb0Z1bGxzY3JlZW5DbGllbnQuaCAqLzsgc2V0dGlu
Z3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQkxREIwMTk0MzIxMUNGMDAy
MDA5RkIzRTggLyogV0tTaGFyZVNoZWV0LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSAxREUwRDA5NTIxMUNDMjEzMDA0MzlCNUYgLyogV0tTaGFyZVNoZWV0
LmggKi87IH07CiAJCTFEQjAxOTQ0MjExQ0YwMDUwMDlGQjNFOCAvKiBXS1NoYXJlU2hlZXQubW0g
aW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxREJCQjA2MTIx
MUNDM0NCMDA1MDJFQ0MgLyogV0tTaGFyZVNoZWV0Lm1tICovOyB9OwogCQkxRjMzNUJDMDE4NUI4
NEYwMDAxQTIwMUEgLyogV0tXZWJQcm9jZXNzUGx1Z0luTG9hZERlbGVnYXRlLmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxRjMzNUJCRjE4NUI4NEQ4MDAx
QTIwMUEgLyogV0tXZWJQcm9jZXNzUGx1Z0luTG9hZERlbGVnYXRlLmggKi87IHNldHRpbmdzID0g
e0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKQEAgLTI3NDIsNiArMjc0NSw5IEBACiAJ
CTFEOTdFQzdEMjQwODk4RDIwMDQ2NkZGQSAvKiBNZWRpYVBsYXllclByaXZhdGVSZW1vdGVDb2Nv
YS5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBleHBsaWNpdEZpbGVUeXBlID0gc291
cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlQ29jb2Eu
bW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTFEQTQwODk0MjNBODBBM0UwMDU4Qzk1
MCAvKiBSZW1vdGVNZWRpYVJlc291cmNlTWFuYWdlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBSZW1vdGVN
ZWRpYVJlc291cmNlTWFuYWdlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkxREE0
MDg5RTIzQTgyNzc4MDA1OEM5NTAgLyogUmVtb3RlTWVkaWFSZXNvdXJjZU1hbmFnZXIuY3BwICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jcHAuY3BwOyBwYXRoID0gUmVtb3RlTWVkaWFSZXNvdXJjZU1hbmFnZXIuY3BwOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OworCQkxREFBNTJCRTI0Mzk2ODMxMDAxQTMxNTkgLyogSW5qZWN0
ZWRCdW5kbGVQYWdlVmlkZW9GdWxsc2NyZWVuQ2xpZW50LmggKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEluamVj
dGVkQnVuZGxlUGFnZVZpZGVvRnVsbHNjcmVlbkNsaWVudC5oOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OworCQkxREFBNTJCRjI0Mzk2ODMxMDAxQTMxNTkgLyogSW5qZWN0ZWRCdW5kbGVQYWdl
VmlkZW9GdWxsc2NyZWVuQ2xpZW50LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEluamVjdGVkQnVu
ZGxlUGFnZVZpZGVvRnVsbHNjcmVlbkNsaWVudC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CisJCTFEQUE1MkMyMjQzOTZFNkQwMDFBMzE1OSAvKiBXS0J1bmRsZVBhZ2VWaWRlb0Z1bGxz
Y3JlZW5DbGllbnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV0tCdW5kbGVQ
YWdlVmlkZW9GdWxsc2NyZWVuQ2xpZW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJ
CTFEQkJCMDYxMjExQ0MzQ0IwMDUwMkVDQyAvKiBXS1NoYXJlU2hlZXQubW0gKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBXS1NoYXJlU2hlZXQubW07IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCTFERTBEMDk1MjExQ0MyMTMwMDQzOUI1RiAvKiBXS1NoYXJlU2hl
ZXQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV0tTaGFyZVNoZWV0Lmg7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTFERTJERkFDMjNBOTU5RjgwMDNFMDEzQSAvKiBS
ZW1vdGVNZWRpYVJlc291cmNlSWRlbnRpZmllci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBSZW1vdGVNZWRp
YVJlc291cmNlSWRlbnRpZmllci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtOTQz
Nyw2ICs5NDQzLDggQEAKIAkJCQk2NTQ2QTgyQTEzMDAwMTY0MDAwQ0VCMUMgLyogSW5qZWN0ZWRC
dW5kbGVQYWdlUmVzb3VyY2VMb2FkQ2xpZW50LmggKi8sCiAJCQkJQkNBOEM2QUQxMUUzQzA4NzAw
ODEyRkI3IC8qIEluamVjdGVkQnVuZGxlUGFnZVVJQ2xpZW50LmNwcCAqLywKIAkJCQlCQ0E4QzZB
RTExRTNDMDg3MDA4MTJGQjcgLyogSW5qZWN0ZWRCdW5kbGVQYWdlVUlDbGllbnQuaCAqLywKKwkJ
CQkxREFBNTJCRjI0Mzk2ODMxMDAxQTMxNTkgLyogSW5qZWN0ZWRCdW5kbGVQYWdlVmlkZW9GdWxs
c2NyZWVuQ2xpZW50LmNwcCAqLywKKwkJCQkxREFBNTJCRTI0Mzk2ODMxMDAxQTMxNTkgLyogSW5q
ZWN0ZWRCdW5kbGVQYWdlVmlkZW9GdWxsc2NyZWVuQ2xpZW50LmggKi8sCiAJCQkJQkMxNERGNzYx
MjBCNUI3OTAwODI2QzBDIC8qIEluamVjdGVkQnVuZGxlU2NyaXB0V29ybGQuY3BwICovLAogCQkJ
CUJDMTRERjc1MTIwQjVCNzkwMDgyNkMwQyAvKiBJbmplY3RlZEJ1bmRsZVNjcmlwdFdvcmxkLmgg
Ki8sCiAJCQkpOwpAQCAtOTUxMSw2ICs5NTE5LDcgQEAKIAkJCQlCQzFCNDE5NzExRDQxRDU3MDAx
MUU4REQgLyogV0tCdW5kbGVQYWdlUHJpdmF0ZS5oICovLAogCQkJCTFBQjQ3NEQ5MTg0RDQ0MjUw
MDUxQjYyMiAvKiBXS0J1bmRsZVBhZ2VSZXNvdXJjZUxvYWRDbGllbnQuaCAqLywKIAkJCQkxQUI0
NzRERDE4NEQ0NDU5MDA1MUI2MjIgLyogV0tCdW5kbGVQYWdlVUlDbGllbnQuaCAqLywKKwkJCQkx
REFBNTJDMjI0Mzk2RTZEMDAxQTMxNTkgLyogV0tCdW5kbGVQYWdlVmlkZW9GdWxsc2NyZWVuQ2xp
ZW50LmggKi8sCiAJCQkJQkNGMDQ5RTUxMUZFMjBGNjAwRjg2QTU4IC8qIFdLQnVuZGxlUHJpdmF0
ZS5oICovLAogCQkJCUJDNjBDNTc4MTI0MEE1NDYwMDhDNUUyOSAvKiBXS0J1bmRsZVJhbmdlSGFu
ZGxlLmNwcCAqLywKIAkJCQlCQzYwQzU3NzEyNDBBNTQ2MDA4QzVFMjkgLyogV0tCdW5kbGVSYW5n
ZUhhbmRsZS5oICovLApAQCAtMTA3OTksNiArMTA4MDgsNyBAQAogCQkJCUJDQThDNkE5MTFFM0JB
NUYwMDgxMkZCNyAvKiBJbmplY3RlZEJ1bmRsZVBhZ2VMb2FkZXJDbGllbnQuaCBpbiBIZWFkZXJz
ICovLAogCQkJCUJDODE0N0E5MTJGNjRDREEwMDdCMkMzMiAvKiBJbmplY3RlZEJ1bmRsZVBhZ2VQ
b2xpY3lDbGllbnQuaCBpbiBIZWFkZXJzICovLAogCQkJCUJDQThDNkIwMTFFM0MwODcwMDgxMkZC
NyAvKiBJbmplY3RlZEJ1bmRsZVBhZ2VVSUNsaWVudC5oIGluIEhlYWRlcnMgKi8sCisJCQkJMURB
QTUyQzAyNDM5NjgzMTAwMUEzMTU5IC8qIEluamVjdGVkQnVuZGxlUGFnZVZpZGVvRnVsbHNjcmVl
bkNsaWVudC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQkMzM0UwRDExMjQwOEU4NjAwMzYwRjNGIC8q
IEluamVjdGVkQnVuZGxlUmFuZ2VIYW5kbGUuaCBpbiBIZWFkZXJzICovLAogCQkJCUJDMTRERjc3
MTIwQjVCNzkwMDgyNkMwQyAvKiBJbmplY3RlZEJ1bmRsZVNjcmlwdFdvcmxkLmggaW4gSGVhZGVy
cyAqLywKIAkJCQkyREQ0NUFERTFFNUY4OTcyMDA2QzM1NUYgLyogSW5wdXRWaWV3VXBkYXRlRGVm
ZXJyZXIuaCBpbiBIZWFkZXJzICovLApAQCAtMTE0MzYsNiArMTE0NDYsNyBAQAogCQkJCUJDMUI0
MTk4MTFENDFENTcwMDExRThERCAvKiBXS0J1bmRsZVBhZ2VQcml2YXRlLmggaW4gSGVhZGVycyAq
LywKIAkJCQkxQUI0NzREQTE4NEQ0NDI1MDA1MUI2MjIgLyogV0tCdW5kbGVQYWdlUmVzb3VyY2VM
b2FkQ2xpZW50LmggaW4gSGVhZGVycyAqLywKIAkJCQkxQUI0NzRERTE4NEQ0NDU5MDA1MUI2MjIg
LyogV0tCdW5kbGVQYWdlVUlDbGllbnQuaCBpbiBIZWFkZXJzICovLAorCQkJCTFEQUE1MkMzMjQz
OTZFNkQwMDFBMzE1OSAvKiBXS0J1bmRsZVBhZ2VWaWRlb0Z1bGxzY3JlZW5DbGllbnQuaCBpbiBI
ZWFkZXJzICovLAogCQkJCUJDRjA0OUU3MTFGRTIwRjYwMEY4NkE1OCAvKiBXS0J1bmRsZVByaXZh
dGUuaCBpbiBIZWFkZXJzICovLAogCQkJCUJDNjBDNTc5MTI0MEE1NDYwMDhDNUUyOSAvKiBXS0J1
bmRsZVJhbmdlSGFuZGxlLmggaW4gSGVhZGVycyAqLywKIAkJCQlCQzVEMjRDNzE2Q0Q3M0M1MDA3
RDU0NjEgLyogV0tCdW5kbGVSYW5nZUhhbmRsZVByaXZhdGUuaCBpbiBIZWFkZXJzICovLApAQCAt
MTI2NjYsNiArMTI2NzcsNyBAQAogCQkJCTFBQTU3NjAyMTQ5NkI5NzkwMEE0RUUwNiAvKiBFdmVu
dERpc3BhdGNoZXJNZXNzYWdlUmVjZWl2ZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQ0RBOTNE
QjEyMkY4QkNGNDAwNDkwQTY5IC8qIEZ1bGxzY3JlZW5Ub3VjaFNlY2hldXJpc3RpY1BhcmFtZXRl
cnMuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMjc0OUY2NDQyMTQ2NTYxQjAwODM4MEJGIC8qIElu
amVjdGVkQnVuZGxlTm9kZUhhbmRsZS5jcHAgaW4gU291cmNlcyAqLywKKwkJCQkxREFBNTJDMTI0
Mzk2ODMxMDAxQTMxNTkgLyogSW5qZWN0ZWRCdW5kbGVQYWdlVmlkZW9GdWxsc2NyZWVuQ2xpZW50
LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTI3NDlGNjQ1MjE0NjU2MUUwMDgzODBCRiAvKiBJbmpl
Y3RlZEJ1bmRsZVJhbmdlSGFuZGxlLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTJEOTEzNDQxMjEy
Q0Y5RjAwMDEyOEFGRCAvKiBKU05QTWV0aG9kLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTJEOTEz
NDQyMjEyQ0Y5RjAwMDEyOEFGRCAvKiBKU05QT2JqZWN0LmNwcCBpbiBTb3VyY2VzICovLApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9jL1dL
QnVuZGxlUGFnZS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUv
QVBJL2MvV0tCdW5kbGVQYWdlLmNwcAppbmRleCBlOTM5YTRlM2VkNTY3YzYyNTBlYjUwODFkMmM0
ZmNmMGJlZGQ1YzMzLi4zYzA0YTNiNjcyOTYyYjc1YjU5NTZmYWIwOTEzZmI2MGVjYWI4M2Y4IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2Mv
V0tCdW5kbGVQYWdlLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRC
dW5kbGUvQVBJL2MvV0tCdW5kbGVQYWdlLmNwcApAQCAtNzQsNiArNzQsMTAgQEAKICNpbmNsdWRl
IDx3dGYvU3RkTGliRXh0cmFzLmg+CiAjaW5jbHVkZSA8d3RmL1VSTC5oPgogCisjaWYgRU5BQkxF
KFZJREVPX1BSRVNFTlRBVElPTl9NT0RFKQorI2luY2x1ZGUgIlZpZGVvRnVsbHNjcmVlbk1hbmFn
ZXIuaCIKKyNlbmRpZgorCiBXS1R5cGVJRCBXS0J1bmRsZVBhZ2VHZXRUeXBlSUQoKQogewogICAg
IHJldHVybiBXZWJLaXQ6OnRvQVBJKFdlYktpdDo6V2ViUGFnZTo6QVBJVHlwZSk7CkBAIC0xNjUs
NiArMTY5LDg4IEBAIHZvaWQgV0tCdW5kbGVQYWdlRGlkRXhpdEZ1bGxTY3JlZW4oV0tCdW5kbGVQ
YWdlUmVmIHBhZ2VSZWYpCiAjZW5kaWYKIH0KIAordm9pZCBXS0J1bmRsZVBhZ2VTZXRWaWRlb0Z1
bGxzY3JlZW5DbGllbnQoV0tCdW5kbGVQYWdlUmVmIHBhZ2UsIFdLQnVuZGxlUGFnZVZpZGVvRnVs
bHNjcmVlbkNsaWVudEJhc2UqIHdrQ2xpZW50KQoreworI2lmIEVOQUJMRShWSURFT19QUkVTRU5U
QVRJT05fTU9ERSkKKyAgICBXZWJLaXQ6OnRvSW1wbChwYWdlKS0+aW5pdGlhbGl6ZUluamVjdGVk
QnVuZGxlVmlkZW9GdWxsc2NyZWVuQ2xpZW50KHdrQ2xpZW50KTsKKyNlbHNlCisgICAgVU5VU0VE
X1BBUkFNKHBhZ2UpOworICAgIFVOVVNFRF9QQVJBTSh3a0NsaWVudCk7CisjZW5kaWYKK30KKwor
dm9pZCBXS0J1bmRsZVBhZ2VSZXF1ZXN0VmlkZW9GdWxsc2NyZWVuTW9kZShXS0J1bmRsZVBhZ2VS
ZWYgcGFnZSwgdWludDY0X3QgY29udGV4dElkLCBXS1ZpZGVvRnVsbHNjcmVlbk1vZGUgbW9kZSwg
Ym9vbCBmaW5pc2hlZFdpdGhNZWRpYSkKK3sKKyNpZiBFTkFCTEUoVklERU9fUFJFU0VOVEFUSU9O
X01PREUpCisgICAgV2ViS2l0Ojp0b0ltcGwocGFnZSktPnZpZGVvRnVsbHNjcmVlbk1hbmFnZXIo
KS5yZXF1ZXN0RnVsbHNjcmVlbk1vZGUoY29udGV4dElkLCBtb2RlLCBmaW5pc2hlZFdpdGhNZWRp
YSk7CisjZWxzZQorICAgIFVOVVNFRF9QQVJBTShwYWdlKTsKKyAgICBVTlVTRURfUEFSQU0oY29u
dGV4dElkKTsKKyAgICBVTlVTRURfUEFSQU0obW9kZSk7CisgICAgVU5VU0VEX1BBUkFNKGZpbmlz
aGVkV2l0aE1lZGlhKTsKKyNlbmRpZgorfQorCit2b2lkIFdLQnVuZGxlUGFnZVJlcXVlc3RWaWRl
b0NvbnRlbnRMYXllcihXS0J1bmRsZVBhZ2VSZWYgcGFnZSwgdWludDY0X3QgY29udGV4dElkKQor
eworI2lmIEVOQUJMRShWSURFT19QUkVTRU5UQVRJT05fTU9ERSkKKyAgICBXZWJLaXQ6OnRvSW1w
bChwYWdlKS0+dmlkZW9GdWxsc2NyZWVuTWFuYWdlcigpLnJlcXVlc3RWaWRlb0NvbnRlbnRMYXll
cihjb250ZXh0SWQpOworI2Vsc2UKKyAgICBVTlVTRURfUEFSQU0ocGFnZSk7CisgICAgVU5VU0VE
X1BBUkFNKGNvbnRleHRJZCk7CisjZW5kaWYKK30KKwordm9pZCBXS0J1bmRsZVBhZ2VEaWRTZXR1
cFZpZGVvRnVsbHNjcmVlbihXS0J1bmRsZVBhZ2VSZWYgcGFnZSwgdWludDY0X3QgY29udGV4dElk
KQoreworI2lmIEVOQUJMRShWSURFT19QUkVTRU5UQVRJT05fTU9ERSkKKyAgICBXZWJLaXQ6OnRv
SW1wbChwYWdlKS0+dmlkZW9GdWxsc2NyZWVuTWFuYWdlcigpLmRpZFNldHVwRnVsbHNjcmVlbihj
b250ZXh0SWQpOworI2Vsc2UKKyAgICBVTlVTRURfUEFSQU0ocGFnZSk7CisgICAgVU5VU0VEX1BB
UkFNKGNvbnRleHRJZCk7CisjZW5kaWYKK30KKwordm9pZCBXS0J1bmRsZVBhZ2VEaWRFbnRlclZp
ZGVvRnVsbHNjcmVlbihXS0J1bmRsZVBhZ2VSZWYgcGFnZSwgdWludDY0X3QgY29udGV4dElkKQor
eworI2lmIEVOQUJMRShWSURFT19QUkVTRU5UQVRJT05fTU9ERSkKKyAgICBXZWJLaXQ6OnRvSW1w
bChwYWdlKS0+dmlkZW9GdWxsc2NyZWVuTWFuYWdlcigpLmRpZEVudGVyRnVsbHNjcmVlbihjb250
ZXh0SWQpOworI2Vsc2UKKyAgICBVTlVTRURfUEFSQU0ocGFnZSk7CisgICAgVU5VU0VEX1BBUkFN
KGNvbnRleHRJZCk7CisjZW5kaWYKK30KKwordm9pZCBXS0J1bmRsZVBhZ2VSZXR1cm5WaWRlb0Nv
bnRlbnRMYXllcihXS0J1bmRsZVBhZ2VSZWYgcGFnZSwgdWludDY0X3QgY29udGV4dElkKQorewor
I2lmIEVOQUJMRShWSURFT19QUkVTRU5UQVRJT05fTU9ERSkKKyAgICBXZWJLaXQ6OnRvSW1wbChw
YWdlKS0+dmlkZW9GdWxsc2NyZWVuTWFuYWdlcigpLnJldHVyblZpZGVvQ29udGVudExheWVyKGNv
bnRleHRJZCk7CisjZWxzZQorICAgIFVOVVNFRF9QQVJBTShwYWdlKTsKKyAgICBVTlVTRURfUEFS
QU0oY29udGV4dElkKTsKKyNlbmRpZgorfQorCit2b2lkIFdLQnVuZGxlUGFnZURpZEV4aXRWaWRl
b0Z1bGxzY3JlZW4oV0tCdW5kbGVQYWdlUmVmIHBhZ2UsIHVpbnQ2NF90IGNvbnRleHRJZCkKK3sK
KyNpZiBFTkFCTEUoVklERU9fUFJFU0VOVEFUSU9OX01PREUpCisgICAgV2ViS2l0Ojp0b0ltcGwo
cGFnZSktPnZpZGVvRnVsbHNjcmVlbk1hbmFnZXIoKS5kaWRFeGl0RnVsbHNjcmVlbihjb250ZXh0
SWQpOworI2Vsc2UKKyAgICBVTlVTRURfUEFSQU0ocGFnZSk7CisgICAgVU5VU0VEX1BBUkFNKGNv
bnRleHRJZCk7CisjZW5kaWYKK30KKwordm9pZCBXS0J1bmRsZVBhZ2VEaWRDbGVhbnVwVmlkZW9G
dWxsc2NyZWVuKFdLQnVuZGxlUGFnZVJlZiBwYWdlLCB1aW50NjRfdCBjb250ZXh0SWQpCit7Cisj
aWYgRU5BQkxFKFZJREVPX1BSRVNFTlRBVElPTl9NT0RFKQorICAgIFdlYktpdDo6dG9JbXBsKHBh
Z2UpLT52aWRlb0Z1bGxzY3JlZW5NYW5hZ2VyKCkuZGlkQ2xlYW51cEZ1bGxzY3JlZW4oY29udGV4
dElkKTsKKyNlbHNlCisgICAgVU5VU0VEX1BBUkFNKHBhZ2UpOworICAgIFVOVVNFRF9QQVJBTShj
b250ZXh0SWQpOworI2VuZGlmCit9CisKIFdLQnVuZGxlUGFnZUdyb3VwUmVmIFdLQnVuZGxlUGFn
ZUdldFBhZ2VHcm91cChXS0J1bmRsZVBhZ2VSZWYgcGFnZVJlZikKIHsKICAgICByZXR1cm4gdG9B
UEkoV2ViS2l0Ojp0b0ltcGwocGFnZVJlZiktPnBhZ2VHcm91cCgpKTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvYy9XS0J1bmRsZVBhZ2Uu
aCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvYy9XS0J1bmRs
ZVBhZ2UuaAppbmRleCA0ZjgzYjhlZjBjODAyYmNjMWIzZDdiY2Y5NDJjZWFlYTE0N2VhYWNmLi4z
OGVhYTZhZmU3OGQ1ZmUzMmQ4MWViMjQ2MTVlYTRkNmNmMjFkODgxIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2MvV0tCdW5kbGVQYWdlLmgK
KysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9jL1dLQnVu
ZGxlUGFnZS5oCkBAIC0zNiw2ICszNiw3IEBACiAjaW5jbHVkZSA8V2ViS2l0L1dLQnVuZGxlUGFn
ZVBvbGljeUNsaWVudC5oPgogI2luY2x1ZGUgPFdlYktpdC9XS0J1bmRsZVBhZ2VSZXNvdXJjZUxv
YWRDbGllbnQuaD4KICNpbmNsdWRlIDxXZWJLaXQvV0tCdW5kbGVQYWdlVUlDbGllbnQuaD4KKyNp
bmNsdWRlIDxXZWJLaXQvV0tCdW5kbGVQYWdlVmlkZW9GdWxsc2NyZWVuQ2xpZW50Lmg+CiAjaW5j
bHVkZSA8V2ViS2l0L1dLRGVwcmVjYXRlZC5oPgogI2luY2x1ZGUgPFdlYktpdC9XS0ZpbmRPcHRp
b25zLmg+CiAjaW5jbHVkZSA8V2ViS2l0L1dLSW1hZ2UuaD4KQEAgLTU1LDYgKzU2LDE0IEBAIFdL
X0VYUE9SVCB2b2lkIFdLQnVuZGxlUGFnZURpZEVudGVyRnVsbFNjcmVlbihXS0J1bmRsZVBhZ2VS
ZWYgcGFnZSk7CiBXS19FWFBPUlQgdm9pZCBXS0J1bmRsZVBhZ2VXaWxsRXhpdEZ1bGxTY3JlZW4o
V0tCdW5kbGVQYWdlUmVmIHBhZ2UpOwogV0tfRVhQT1JUIHZvaWQgV0tCdW5kbGVQYWdlRGlkRXhp
dEZ1bGxTY3JlZW4oV0tCdW5kbGVQYWdlUmVmIHBhZ2UpOwogCitXS19FWFBPUlQgdm9pZCBXS0J1
bmRsZVBhZ2VSZXF1ZXN0VmlkZW9GdWxsc2NyZWVuTW9kZShXS0J1bmRsZVBhZ2VSZWYgcGFnZSwg
dWludDY0X3QgY29udGV4dElkLCBXS1ZpZGVvRnVsbHNjcmVlbk1vZGUgbW9kZSwgYm9vbCBmaW5p
c2hlZFdpdGhNZWRpYSk7CitXS19FWFBPUlQgdm9pZCBXS0J1bmRsZVBhZ2VSZXF1ZXN0VmlkZW9D
b250ZW50TGF5ZXIoV0tCdW5kbGVQYWdlUmVmIHBhZ2UsIHVpbnQ2NF90IGNvbnRleHRJZCk7CitX
S19FWFBPUlQgdm9pZCBXS0J1bmRsZVBhZ2VSZXR1cm5WaWRlb0NvbnRlbnRMYXllcihXS0J1bmRs
ZVBhZ2VSZWYgcGFnZSwgdWludDY0X3QgY29udGV4dElkKTsKK1dLX0VYUE9SVCB2b2lkIFdLQnVu
ZGxlUGFnZURpZFNldHVwVmlkZW9GdWxsc2NyZWVuKFdLQnVuZGxlUGFnZVJlZiBwYWdlLCB1aW50
NjRfdCBjb250ZXh0SWQpOworV0tfRVhQT1JUIHZvaWQgV0tCdW5kbGVQYWdlRGlkRW50ZXJWaWRl
b0Z1bGxzY3JlZW4oV0tCdW5kbGVQYWdlUmVmIHBhZ2UsIHVpbnQ2NF90IGNvbnRleHRJZCk7CitX
S19FWFBPUlQgdm9pZCBXS0J1bmRsZVBhZ2VEaWRFeGl0VmlkZW9GdWxsc2NyZWVuKFdLQnVuZGxl
UGFnZVJlZiBwYWdlLCB1aW50NjRfdCBjb250ZXh0SWQpOworV0tfRVhQT1JUIHZvaWQgV0tCdW5k
bGVQYWdlRGlkQ2xlYW51cFZpZGVvRnVsbHNjcmVlbihXS0J1bmRsZVBhZ2VSZWYgcGFnZSwgdWlu
dDY0X3QgY29udGV4dElkKTsKKwogV0tfRVhQT1JUIFdLVHlwZUlEIFdLQnVuZGxlUGFnZUdldFR5
cGVJRCgpOwogCiBXS19FWFBPUlQgdm9pZCBXS0J1bmRsZVBhZ2VTZXRDb250ZXh0TWVudUNsaWVu
dChXS0J1bmRsZVBhZ2VSZWYgcGFnZSwgV0tCdW5kbGVQYWdlQ29udGV4dE1lbnVDbGllbnRCYXNl
KiBjbGllbnQpOwpAQCAtNjUsNiArNzQsNyBAQCBXS19FWFBPUlQgdm9pZCBXS0J1bmRsZVBhZ2VT
ZXRSZXNvdXJjZUxvYWRDbGllbnQoV0tCdW5kbGVQYWdlUmVmIHBhZ2UsIFdLQnVuZGxlUAogV0tf
RVhQT1JUIHZvaWQgV0tCdW5kbGVQYWdlU2V0UG9saWN5Q2xpZW50KFdLQnVuZGxlUGFnZVJlZiBw
YWdlLCBXS0J1bmRsZVBhZ2VQb2xpY3lDbGllbnRCYXNlKiBjbGllbnQpOwogV0tfRVhQT1JUIHZv
aWQgV0tCdW5kbGVQYWdlU2V0VUlDbGllbnQoV0tCdW5kbGVQYWdlUmVmIHBhZ2UsIFdLQnVuZGxl
UGFnZVVJQ2xpZW50QmFzZSogY2xpZW50KTsKIFdLX0VYUE9SVCB2b2lkIFdLQnVuZGxlUGFnZVNl
dEZ1bGxTY3JlZW5DbGllbnQoV0tCdW5kbGVQYWdlUmVmIHBhZ2UsIFdLQnVuZGxlUGFnZUZ1bGxT
Y3JlZW5DbGllbnRCYXNlKiBjbGllbnQpOworV0tfRVhQT1JUIHZvaWQgV0tCdW5kbGVQYWdlU2V0
VmlkZW9GdWxsc2NyZWVuQ2xpZW50KFdLQnVuZGxlUGFnZVJlZiBwYWdlLCBXS0J1bmRsZVBhZ2VW
aWRlb0Z1bGxzY3JlZW5DbGllbnRCYXNlKiBjbGllbnQpOwogCiBXS19FWFBPUlQgV0tCdW5kbGVQ
YWdlR3JvdXBSZWYgV0tCdW5kbGVQYWdlR2V0UGFnZUdyb3VwKFdLQnVuZGxlUGFnZVJlZiBwYWdl
KTsKIFdLX0VYUE9SVCBXS0J1bmRsZUZyYW1lUmVmIFdLQnVuZGxlUGFnZUdldE1haW5GcmFtZShX
S0J1bmRsZVBhZ2VSZWYgcGFnZSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2MvV0tCdW5kbGVQYWdlVmlkZW9GdWxsc2NyZWVuQ2xpZW50
LmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2MvV0tCdW5k
bGVQYWdlVmlkZW9GdWxsc2NyZWVuQ2xpZW50LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNGU2YzgxNmY1YzQzN2Y3
NmEzYWYzNjgyYjhjNmUwYzM0NTA5OWNlOQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvYy9XS0J1bmRsZVBhZ2VWaWRlb0Z1bGxz
Y3JlZW5DbGllbnQuaApAQCAtMCwwICsxLDc4IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIw
IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBh
bmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1v
ZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29u
ZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29k
ZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRp
c3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHly
aWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIg
bWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNP
RlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBB
UyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVS
Q0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJF
IERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJV
VE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwg
U1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09P
RFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVT
UworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBM
SUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBU
T1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFO
WSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9G
CisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNl
CisKKyNpbmNsdWRlIDxXZWJLaXQvV0tCYXNlLmg+CisjaW5jbHVkZSA8V2ViS2l0L1dLR2VvbWV0
cnkuaD4KKworI2lmZGVmIF9fY3BsdXNwbHVzCitleHRlcm4gIkMiIHsKKyNlbmRpZgorCitlbnVt
IHsKKyAgICBXS1ZpZGVvRnVsbHNjcmVlbk1vZGVOb25lID0gMCwKKyAgICBXS1ZpZGVvRnVsbHNj
cmVlbk1vZGVTdGFuZGFyZCA9IDEgPDwgMCwKKyAgICBXS1ZpZGVvRnVsbHNjcmVlbk1vZGVQaWN0
dXJlSW5QaWN0dXJlID0gMSA8PCAxLAorfTsKK3R5cGVkZWYgdWludDMyX3QgV0tWaWRlb0Z1bGxz
Y3JlZW5Nb2RlOworCit0eXBlZGVmIHZvaWQgKCpXS0J1bmRsZVBhZ2VTZXRIYXNWaWRlbykoV0tC
dW5kbGVQYWdlUmVmIHBhZ2UsIHVpbnQ2NF90IGNvbnRleHRJZCwgYm9vbCBoYXNWaWRlbyk7Cit0
eXBlZGVmIHZvaWQgKCpXS0J1bmRsZVBhZ2VTZXRWaWRlb0RpbWVuc2lvbnMpKFdLQnVuZGxlUGFn
ZVJlZiBwYWdlLCB1aW50NjRfdCBjb250ZXh0SWQsIFdLU2l6ZSB2aWRlb0RpbWVuc2lvbnMpOwor
dHlwZWRlZiB2b2lkICgqV0tCdW5kbGVQYWdlU2V0dXBWaWRlb0Z1bGxzY3JlZW5XaXRoSUQpKFdL
QnVuZGxlUGFnZVJlZiBwYWdlLCB1aW50NjRfdCBjb250ZXh0SWQsIHVpbnQzMl90IHZpZGVvTGF5
ZXJJRCwgV0tSZWN0IGluaXRpYWxSZWN0LCBmbG9hdCBob3N0aW5nU2NhbGVGYWN0b3IsIFdLVmlk
ZW9GdWxsc2NyZWVuTW9kZSB2aWRlb0Z1bGxzY3JlZW5Nb2RlLCBib29sIGFsbG93c1BpY3R1cmVJ
blBpY3R1cmUsIGJvb2wgc3RhbmRieSk7Cit0eXBlZGVmIHZvaWQgKCpXS0J1bmRsZVBhZ2VFbnRl
clZpZGVvRnVsbHNjcmVlbikoV0tCdW5kbGVQYWdlUmVmIHBhZ2UsIHVpbnQ2NF90IGNvbnRleHRJ
ZCk7Cit0eXBlZGVmIHZvaWQgKCpXS0J1bmRsZVBhZ2VFeGl0VmlkZW9GdWxsc2NyZWVuKShXS0J1
bmRsZVBhZ2VSZWYgcGFnZSwgdWludDY0X3QgY29udGV4dElkLCBXS1JlY3QgZmluYWxSZWN0KTsK
K3R5cGVkZWYgdm9pZCAoKldLQnVuZGxlUGFnZVNldElubGluZVJlY3QpKFdLQnVuZGxlUGFnZVJl
ZiBwYWdlLCB1aW50NjRfdCBjb250ZXh0SWQsIFdLUmVjdCBpbmxpbmVSZWN0LCBib29sIHZpc2li
bGUpOwordHlwZWRlZiB2b2lkICgqV0tCdW5kbGVQYWdlU2V0SGFzVmlkZW9Db250ZW50TGF5ZXIp
KFdLQnVuZGxlUGFnZVJlZiBwYWdlLCB1aW50NjRfdCBjb250ZXh0SWQsIGJvb2wgdmFsdWUpOwor
dHlwZWRlZiB2b2lkICgqV0tCdW5kbGVQYWdlQ2xlYW51cFZpZGVvRnVsbHNjcmVlbikoV0tCdW5k
bGVQYWdlUmVmIHBhZ2UsIHVpbnQ2NF90IGNvbnRleHRJZCk7Cit0eXBlZGVmIHZvaWQgKCpXS0J1
bmRsZVBhZ2VQcmVwYXJlZFRvUmV0dXJuVG9JbmxpbmUpKFdLQnVuZGxlUGFnZVJlZiBwYWdlLCB1
aW50NjRfdCBjb250ZXh0SWQsIGJvb2wgdmlzaWJsZSwgV0tSZWN0IGlubGluZVJlY3QpOwordHlw
ZWRlZiB2b2lkICgqV0tCdW5kbGVQYWdlUHJlcGFyZWRUb0V4aXRWaWRlb0Z1bGxzY3JlZW4pKFdL
QnVuZGxlUGFnZVJlZiBwYWdlLCB1aW50NjRfdCBjb250ZXh0SWQpOwordHlwZWRlZiB2b2lkICgq
V0tCdW5kbGVQYWdlRXhpdFZpZGVvRnVsbHNjcmVlbldpdGhvdXRBbmltYXRpb25Ub01vZGUpKFdL
QnVuZGxlUGFnZVJlZiBwYWdlLCB1aW50NjRfdCBjb250ZXh0SWQsIFdLVmlkZW9GdWxsc2NyZWVu
TW9kZSB2aWRlb0Z1bGxzY3JlZW5Nb2RlKTsKKwordHlwZWRlZiBzdHJ1Y3QgV0tCdW5kbGVQYWdl
VmlkZW9GdWxsc2NyZWVuQ2xpZW50QmFzZSB7CisgICAgaW50ICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2ZXJzaW9uOworICAg
IGNvbnN0IHZvaWQgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgY2xpZW50SW5mbzsKK30gV0tCdW5kbGVQYWdlVmlkZW9GdWxsc2NyZWVuQ2xp
ZW50QmFzZTsKKwordHlwZWRlZiBzdHJ1Y3QgV0tCdW5kbGVQYWdlVmlkZW9GdWxsc2NyZWVuQ2xp
ZW50VjAgeworICAgIFdLQnVuZGxlUGFnZVZpZGVvRnVsbHNjcmVlbkNsaWVudEJhc2UgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgYmFzZTsKKworICAgIC8vIFZlcnNpb24gMC4KKyAgICBX
S0J1bmRsZVBhZ2VTZXRIYXNWaWRlbyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIHNldEhhc1ZpZGVvOworICAgIFdLQnVuZGxlUGFnZVNldFZpZGVvRGltZW5zaW9u
cyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2V0VmlkZW9EaW1lbnNpb25z
OworICAgIFdLQnVuZGxlUGFnZVNldHVwVmlkZW9GdWxsc2NyZWVuV2l0aElEICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgc2V0dXBGdWxsc2NyZWVuV2l0aElEOworICAgIFdLQnVuZGxlUGFn
ZUVudGVyVmlkZW9GdWxsc2NyZWVuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ZW50ZXJGdWxsc2NyZWVuOworICAgIFdLQnVuZGxlUGFnZUV4aXRWaWRlb0Z1bGxzY3JlZW4gICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZXhpdEZ1bGxzY3JlZW47CisgICAgV0tC
dW5kbGVQYWdlU2V0SW5saW5lUmVjdCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBzZXRJbmxpbmVSZWN0OworICAgIFdLQnVuZGxlUGFnZVNldEhhc1ZpZGVvQ29udGVu
dExheWVyICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2V0SGFzVmlkZW9Db250ZW50
TGF5ZXI7CisgICAgV0tCdW5kbGVQYWdlQ2xlYW51cFZpZGVvRnVsbHNjcmVlbiAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBjbGVhbnVwRnVsbHNjcmVlbjsKKyAgICBXS0J1bmRsZVBh
Z2VQcmVwYXJlZFRvUmV0dXJuVG9JbmxpbmUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IHByZXBhcmVkVG9SZXRydW5Ub0lubGluZTsKKyAgICBXS0J1bmRsZVBhZ2VQcmVwYXJlZFRvRXhp
dFZpZGVvRnVsbHNjcmVlbiAgICAgICAgICAgICAgICAgICAgICAgICAgIHByZXBhcmVkVG9FeGl0
RnVsbHNjcmVlbjsKKyAgICBXS0J1bmRsZVBhZ2VFeGl0VmlkZW9GdWxsc2NyZWVuV2l0aG91dEFu
aW1hdGlvblRvTW9kZSAgICAgICAgICAgICAgIGV4aXRGdWxsc2NyZWVuV2l0aG91dEFuaW1hdGlv
blRvTW9kZTsKK30gV0tCdW5kbGVQYWdlVmlkZW9GdWxsc2NyZWVuQ2xpZW50VjA7CisKKyNpZmRl
ZiBfX2NwbHVzcGx1cworfQorI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvSW5qZWN0ZWRCdW5kbGUvSW5qZWN0ZWRCdW5kbGVQYWdlRnVsbFNjcmVlbkNsaWVudC5j
cHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvSW5qZWN0ZWRCdW5k
bGVQYWdlRnVsbFNjcmVlbkNsaWVudC5jcHAKaW5kZXggZjcxM2I1YTQyM2ZjNzllYTZjNWZiNjAy
NDNlNzY4MmYwNTA5ZjY5Yy4uOWI0ODAxZjU3NjNhYzNlNTliZWJlYWVkZDI1MzMzNDY0YTQ2ZGE5
MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0lu
amVjdGVkQnVuZGxlUGFnZUZ1bGxTY3JlZW5DbGllbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZVBhZ2VGdWxsU2NyZWVuQ2xp
ZW50LmNwcApAQCAtMjQsMTEgKzI0LDEwIEBACiAgKi8KIAogI2luY2x1ZGUgImNvbmZpZy5oIgor
I2luY2x1ZGUgIkluamVjdGVkQnVuZGxlUGFnZUZ1bGxTY3JlZW5DbGllbnQuaCIKIAogI2lmIEVO
QUJMRShGVUxMU0NSRUVOX0FQSSkKIAotI2luY2x1ZGUgIkluamVjdGVkQnVuZGxlUGFnZUZ1bGxT
Y3JlZW5DbGllbnQuaCIKLQogI2luY2x1ZGUgIkluamVjdGVkQnVuZGxlTm9kZUhhbmRsZS5oIgog
I2luY2x1ZGUgIldLQVBJQ2FzdC5oIgogI2luY2x1ZGUgIldLQnVuZGxlQVBJQ2FzdC5oIgpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0luamVjdGVk
QnVuZGxlUGFnZUZ1bGxTY3JlZW5DbGllbnQuaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9J
bmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZVBhZ2VGdWxsU2NyZWVuQ2xpZW50LmgKaW5kZXgg
NjU2M2I2YzZkZjM4MzM3OWZiOGFiZjEwOWQ3ZTU5ODU1YTdjOTM4Yi4uNGVjZGQxMWE1ZDUwYzQx
YjhlNGVmZDBjMjY1YTk0Y2NlODU0YTVjYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL0luamVjdGVkQnVuZGxlL0luamVjdGVkQnVuZGxlUGFnZUZ1bGxTY3JlZW5DbGllbnQu
aAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvSW5qZWN0ZWRC
dW5kbGVQYWdlRnVsbFNjcmVlbkNsaWVudC5oCkBAIC0yMyw4ICsyMyw3IEBACiAgKiBUSEUgUE9T
U0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCiAgKi8KIAotI2lmbmRlZiBJbmplY3RlZEJ1bmRsZVBh
Z2VGdWxsU2NyZWVuQ2xpZW50X2gKLSNkZWZpbmUgSW5qZWN0ZWRCdW5kbGVQYWdlRnVsbFNjcmVl
bkNsaWVudF9oCisjcHJhZ21hIG9uY2UKIAogI2lmIEVOQUJMRShGVUxMU0NSRUVOX0FQSSkKIApA
QCAtNjAsNSArNTksMyBAQCBwdWJsaWM6CiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKIAogI2VuZGlm
IC8vIEVOQUJMRShGVUxMU0NSRUVOX0FQSSkKLQotI2VuZGlmIC8vIEluamVjdGVkQnVuZGxlUGFn
ZUZ1bGxTY3JlZW5DbGllbnRfaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L0luamVjdGVkQnVuZGxlL0luamVjdGVkQnVuZGxlUGFnZVZpZGVvRnVsbHNjcmVlbkNsaWVudC5j
cHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvSW5qZWN0ZWRCdW5k
bGVQYWdlVmlkZW9GdWxsc2NyZWVuQ2xpZW50LmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5jYWFhNWYxMzdjMmU0
MDJlZWU1YWJjNDA4OTgzN2UwYjRjMmZjZWVlCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0luamVjdGVkQnVuZGxlUGFnZVZpZGVvRnVs
bHNjcmVlbkNsaWVudC5jcHAKQEAgLTAsMCArMSwxMzQgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMp
IDIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0
aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAor
ICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2lu
ZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJj
ZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIu
IFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUg
Y29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBv
dGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRI
SVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9S
UyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBP
RiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9T
RSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09O
VFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVO
VEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVU
RSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJV
U0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZ
IE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFks
IE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcg
SU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklT
RUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVk
ZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiSW5qZWN0ZWRCdW5kbGVQYWdlVmlkZW9GdWxsc2NyZWVu
Q2xpZW50LmgiCisKKyNpZiBFTkFCTEUoVklERU9fUFJFU0VOVEFUSU9OX01PREUpCisKKyNpbmNs
dWRlICJWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyUHJveHlNZXNzYWdlcy5oIgorI2luY2x1ZGUgIldL
QVBJQ2FzdC5oIgorI2luY2x1ZGUgIldLQnVuZGxlQVBJQ2FzdC5oIgorI2luY2x1ZGUgIldlYkNv
cmVBcmd1bWVudENvZGVycy5oIgorI2luY2x1ZGUgIldlYlBhZ2UuaCIKKyNpbmNsdWRlIDxXZWJD
b3JlL0Zsb2F0U2l6ZS5oPgorI2luY2x1ZGUgPFdlYkNvcmUvSW50UmVjdC5oPgorCituYW1lc3Bh
Y2UgV2ViS2l0IHsKK3VzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOworCit2b2lkIEluamVjdGVkQnVu
ZGxlUGFnZVZpZGVvRnVsbHNjcmVlbkNsaWVudDo6c2V0SGFzVmlkZW8oV2ViUGFnZSogcGFnZSwg
dWludDY0X3QgY29udGV4dElkLCBib29sIGhhc1ZpZGVvKQoreworICAgIGlmIChtX2NsaWVudC5z
ZXRIYXNWaWRlbykKKyAgICAgICAgbV9jbGllbnQuc2V0SGFzVmlkZW8odG9BUEkocGFnZSksIGNv
bnRleHRJZCwgaGFzVmlkZW8pOworICAgIGVsc2UKKyAgICAgICAgcGFnZS0+c2VuZChNZXNzYWdl
czo6VmlkZW9GdWxsc2NyZWVuTWFuYWdlclByb3h5OjpTZXRIYXNWaWRlbyhjb250ZXh0SWQsIGhh
c1ZpZGVvKSk7Cit9CisKK3ZvaWQgSW5qZWN0ZWRCdW5kbGVQYWdlVmlkZW9GdWxsc2NyZWVuQ2xp
ZW50OjpzZXRWaWRlb0RpbWVuc2lvbnMoV2ViUGFnZSogcGFnZSwgdWludDY0X3QgY29udGV4dElk
LCBGbG9hdFNpemUgdmlkZW9EaW1lbnNpb25zKQoreworICAgIGlmIChtX2NsaWVudC5zZXRWaWRl
b0RpbWVuc2lvbnMpCisgICAgICAgIG1fY2xpZW50LnNldFZpZGVvRGltZW5zaW9ucyh0b0FQSShw
YWdlKSwgY29udGV4dElkLCB0b0FQSSh2aWRlb0RpbWVuc2lvbnMpKTsKKyAgICBlbHNlCisgICAg
ICAgIHBhZ2UtPnNlbmQoTWVzc2FnZXM6OlZpZGVvRnVsbHNjcmVlbk1hbmFnZXJQcm94eTo6U2V0
VmlkZW9EaW1lbnNpb25zKGNvbnRleHRJZCwgdmlkZW9EaW1lbnNpb25zKSk7Cit9CisKK3ZvaWQg
SW5qZWN0ZWRCdW5kbGVQYWdlVmlkZW9GdWxsc2NyZWVuQ2xpZW50OjpzZXR1cEZ1bGxzY3JlZW5X
aXRoSUQoV2ViUGFnZSogcGFnZSwgdWludDY0X3QgY29udGV4dElkLCB1aW50MzJfdCB2aWRlb0xh
eWVySWQsIEludFJlY3QgaW5pdGlhbFJlY3QsIGZsb2F0IGhvc3RpbmdTY2FsZUZhY3RvciwgSFRN
TE1lZGlhRWxlbWVudEVudW1zOjpWaWRlb0Z1bGxzY3JlZW5Nb2RlIHZpZGVvRnVsbHNjcmVlbk1v
ZGUsIGJvb2wgYWxsb3dzUGljdHVyZUluUGljdHVyZSwgYm9vbCBzdGFuZGJ5KQoreworICAgIGlm
IChtX2NsaWVudC5zZXR1cEZ1bGxzY3JlZW5XaXRoSUQpCisgICAgICAgIG1fY2xpZW50LnNldHVw
RnVsbHNjcmVlbldpdGhJRCh0b0FQSShwYWdlKSwgY29udGV4dElkLCB2aWRlb0xheWVySWQsIHRv
QVBJKGluaXRpYWxSZWN0KSwgaG9zdGluZ1NjYWxlRmFjdG9yLCB2aWRlb0Z1bGxzY3JlZW5Nb2Rl
LCBhbGxvd3NQaWN0dXJlSW5QaWN0dXJlLCBzdGFuZGJ5KTsKKyAgICBlbHNlCisgICAgICAgIHBh
Z2UtPnNlbmQoTWVzc2FnZXM6OlZpZGVvRnVsbHNjcmVlbk1hbmFnZXJQcm94eTo6U2V0dXBGdWxs
c2NyZWVuV2l0aElEKGNvbnRleHRJZCwgdmlkZW9MYXllcklkLCBpbml0aWFsUmVjdCwgaG9zdGlu
Z1NjYWxlRmFjdG9yLCB2aWRlb0Z1bGxzY3JlZW5Nb2RlLCBhbGxvd3NQaWN0dXJlSW5QaWN0dXJl
LCBzdGFuZGJ5KSk7Cit9CisKK3ZvaWQgSW5qZWN0ZWRCdW5kbGVQYWdlVmlkZW9GdWxsc2NyZWVu
Q2xpZW50OjplbnRlckZ1bGxzY3JlZW4oV2ViUGFnZSogcGFnZSwgdWludDY0X3QgY29udGV4dElk
KQoreworICAgIGlmIChtX2NsaWVudC5lbnRlckZ1bGxzY3JlZW4pCisgICAgICAgIG1fY2xpZW50
LmVudGVyRnVsbHNjcmVlbih0b0FQSShwYWdlKSwgY29udGV4dElkKTsKKyAgICBlbHNlCisgICAg
ICAgIHBhZ2UtPnNlbmQoTWVzc2FnZXM6OlZpZGVvRnVsbHNjcmVlbk1hbmFnZXJQcm94eTo6RW50
ZXJGdWxsc2NyZWVuKGNvbnRleHRJZCkpOworfQorCit2b2lkIEluamVjdGVkQnVuZGxlUGFnZVZp
ZGVvRnVsbHNjcmVlbkNsaWVudDo6ZXhpdEZ1bGxzY3JlZW4oV2ViUGFnZSogcGFnZSwgdWludDY0
X3QgY29udGV4dElkLCBJbnRSZWN0IGZpbmFsUmVjdCkKK3sKKyAgICBpZiAobV9jbGllbnQuZXhp
dEZ1bGxzY3JlZW4pCisgICAgICAgIG1fY2xpZW50LmV4aXRGdWxsc2NyZWVuKHRvQVBJKHBhZ2Up
LCBjb250ZXh0SWQsIHRvQVBJKGZpbmFsUmVjdCkpOworICAgIGVsc2UKKyAgICAgICAgcGFnZS0+
c2VuZChNZXNzYWdlczo6VmlkZW9GdWxsc2NyZWVuTWFuYWdlclByb3h5OjpFeGl0RnVsbHNjcmVl
bihjb250ZXh0SWQsIGZpbmFsUmVjdCkpOworfQorCit2b2lkIEluamVjdGVkQnVuZGxlUGFnZVZp
ZGVvRnVsbHNjcmVlbkNsaWVudDo6c2V0SW5saW5lUmVjdChXZWJQYWdlKiBwYWdlLCB1aW50NjRf
dCBjb250ZXh0SWQsIEludFJlY3QgaW5saW5lUmVjdCwgYm9vbCB2aXNpYmxlKQoreworICAgIGlm
IChtX2NsaWVudC5zZXRJbmxpbmVSZWN0KQorICAgICAgICBtX2NsaWVudC5zZXRJbmxpbmVSZWN0
KHRvQVBJKHBhZ2UpLCBjb250ZXh0SWQsIHRvQVBJKGlubGluZVJlY3QpLCB2aXNpYmxlKTsKKyAg
ICBlbHNlCisgICAgICAgIHBhZ2UtPnNlbmQoTWVzc2FnZXM6OlZpZGVvRnVsbHNjcmVlbk1hbmFn
ZXJQcm94eTo6U2V0SW5saW5lUmVjdChjb250ZXh0SWQsIGlubGluZVJlY3QsIHZpc2libGUpKTsK
K30KKwordm9pZCBJbmplY3RlZEJ1bmRsZVBhZ2VWaWRlb0Z1bGxzY3JlZW5DbGllbnQ6OnNldEhh
c1ZpZGVvQ29udGVudExheWVyKFdlYlBhZ2UqIHBhZ2UsIHVpbnQ2NF90IGNvbnRleHRJZCwgYm9v
bCB2YWx1ZSkKK3sKKyAgICBpZiAobV9jbGllbnQuc2V0SGFzVmlkZW9Db250ZW50TGF5ZXIpCisg
ICAgICAgIG1fY2xpZW50LnNldEhhc1ZpZGVvQ29udGVudExheWVyKHRvQVBJKHBhZ2UpLCBjb250
ZXh0SWQsIHZhbHVlKTsKKyAgICBlbHNlCisgICAgICAgIHBhZ2UtPnNlbmQoTWVzc2FnZXM6OlZp
ZGVvRnVsbHNjcmVlbk1hbmFnZXJQcm94eTo6U2V0SGFzVmlkZW9Db250ZW50TGF5ZXIoY29udGV4
dElkLCB2YWx1ZSkpOworfQorCit2b2lkIEluamVjdGVkQnVuZGxlUGFnZVZpZGVvRnVsbHNjcmVl
bkNsaWVudDo6Y2xlYW51cEZ1bGxzY3JlZW4oV2ViUGFnZSogcGFnZSwgdWludDY0X3QgY29udGV4
dElkKQoreworICAgIGlmIChtX2NsaWVudC5jbGVhbnVwRnVsbHNjcmVlbikKKyAgICAgICAgbV9j
bGllbnQuY2xlYW51cEZ1bGxzY3JlZW4odG9BUEkocGFnZSksIGNvbnRleHRJZCk7CisgICAgZWxz
ZQorICAgICAgICBwYWdlLT5zZW5kKE1lc3NhZ2VzOjpWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyUHJv
eHk6OkNsZWFudXBGdWxsc2NyZWVuKGNvbnRleHRJZCkpOworfQorCit2b2lkIEluamVjdGVkQnVu
ZGxlUGFnZVZpZGVvRnVsbHNjcmVlbkNsaWVudDo6cHJlcGFyZWRUb1JldHVyblRvSW5saW5lKFdl
YlBhZ2UqIHBhZ2UsIHVpbnQ2NF90IGNvbnRleHRJZCwgYm9vbCB2aXNpYmxlLCBJbnRSZWN0IGlu
bGluZVJlY3QpCit7CisgICAgaWYgKG1fY2xpZW50LnByZXBhcmVkVG9SZXRydW5Ub0lubGluZSkK
KyAgICAgICAgbV9jbGllbnQucHJlcGFyZWRUb1JldHJ1blRvSW5saW5lKHRvQVBJKHBhZ2UpLCBj
b250ZXh0SWQsIHZpc2libGUsIHRvQVBJKGlubGluZVJlY3QpKTsKKyAgICBlbHNlCisgICAgICAg
IHBhZ2UtPnNlbmQoTWVzc2FnZXM6OlZpZGVvRnVsbHNjcmVlbk1hbmFnZXJQcm94eTo6UHJlcGFy
ZWRUb1JldHVyblRvSW5saW5lKGNvbnRleHRJZCwgdmlzaWJsZSwgaW5saW5lUmVjdCkpOworfQor
Cit2b2lkIEluamVjdGVkQnVuZGxlUGFnZVZpZGVvRnVsbHNjcmVlbkNsaWVudDo6cHJlcGFyZWRU
b0V4aXRGdWxsc2NyZWVuKFdlYlBhZ2UqIHBhZ2UsIHVpbnQ2NF90IGNvbnRleHRJZCkKK3sKKyAg
ICBpZiAobV9jbGllbnQucHJlcGFyZWRUb0V4aXRGdWxsc2NyZWVuKQorICAgICAgICBtX2NsaWVu
dC5wcmVwYXJlZFRvRXhpdEZ1bGxzY3JlZW4odG9BUEkocGFnZSksIGNvbnRleHRJZCk7CisgICAg
ZWxzZQorICAgICAgICBwYWdlLT5zZW5kKE1lc3NhZ2VzOjpWaWRlb0Z1bGxzY3JlZW5NYW5hZ2Vy
UHJveHk6OlByZXBhcmVkVG9FeGl0RnVsbHNjcmVlbihjb250ZXh0SWQpKTsKK30KKworI2lmIFBM
QVRGT1JNKE1BQykgJiYgRU5BQkxFKFZJREVPX1BSRVNFTlRBVElPTl9NT0RFKQordm9pZCBJbmpl
Y3RlZEJ1bmRsZVBhZ2VWaWRlb0Z1bGxzY3JlZW5DbGllbnQ6OmV4aXRGdWxsc2NyZWVuV2l0aG91
dEFuaW1hdGlvblRvTW9kZShXZWJQYWdlKiBwYWdlLCB1aW50NjRfdCBjb250ZXh0SWQsIEhUTUxN
ZWRpYUVsZW1lbnRFbnVtczo6VmlkZW9GdWxsc2NyZWVuTW9kZSB2aWRlb0Z1bGxzY3JlZW5Nb2Rl
KQoreworICAgIGlmIChtX2NsaWVudC5leGl0RnVsbHNjcmVlbldpdGhvdXRBbmltYXRpb25Ub01v
ZGUpCisgICAgICAgIG1fY2xpZW50LmV4aXRGdWxsc2NyZWVuV2l0aG91dEFuaW1hdGlvblRvTW9k
ZSh0b0FQSShwYWdlKSwgY29udGV4dElkLCB2aWRlb0Z1bGxzY3JlZW5Nb2RlKTsKKyAgICBlbHNl
CisgICAgICAgIHBhZ2UtPnNlbmQoTWVzc2FnZXM6OlZpZGVvRnVsbHNjcmVlbk1hbmFnZXJQcm94
eTo6RXhpdEZ1bGxzY3JlZW5XaXRob3V0QW5pbWF0aW9uVG9Nb2RlKGNvbnRleHRJZCwgdmlkZW9G
dWxsc2NyZWVuTW9kZSkpOworfQorI2VuZGlmCisKK30gLy8gbmFtZXNwYWNlIFdlYktpdAorCisj
ZW5kaWYgLy8gRU5BQkxFKFZJREVPX1BSRVNFTlRBVElPTl9NT0RFKQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0luamVjdGVkQnVuZGxlUGFnZVZp
ZGVvRnVsbHNjcmVlbkNsaWVudC5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVk
QnVuZGxlL0luamVjdGVkQnVuZGxlUGFnZVZpZGVvRnVsbHNjcmVlbkNsaWVudC5oCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLmQxOTFmNjA0MTdjMjljYjcwYjRiOTIxZTkxMTlkMTc3ZDJkZDcxOGMKLS0tIC9kZXYvbnVs
bAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvSW5qZWN0ZWRC
dW5kbGVQYWdlVmlkZW9GdWxsc2NyZWVuQ2xpZW50LmgKQEAgLTAsMCArMSw3MCBAQAorLyoKKyAq
IENvcHlyaWdodCAoQykgMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgor
ICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0
aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhh
dCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1
dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9k
dWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50
YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRp
b24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJ
VFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQg
V0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElF
RCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNV
TEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJ
TkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5E
SVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJ
QUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9G
CisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1Ig
UFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5E
IE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RS
SUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNF
KQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUs
IEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgor
ICovCisKKyNwcmFnbWEgb25jZQorCisjaWYgRU5BQkxFKFZJREVPX1BSRVNFTlRBVElPTl9NT0RF
KQorCisjaW5jbHVkZSAiQVBJQ2xpZW50LmgiCisjaW5jbHVkZSAiV0tCdW5kbGVQYWdlVmlkZW9G
dWxsc2NyZWVuQ2xpZW50LmgiCisjaW5jbHVkZSA8V2ViQ29yZS9IVE1MTWVkaWFFbGVtZW50RW51
bXMuaD4KKyNpbmNsdWRlIDx3dGYvRm9yd2FyZC5oPgorCituYW1lc3BhY2UgQVBJIHsKK3RlbXBs
YXRlPD4gc3RydWN0IENsaWVudFRyYWl0czxXS0J1bmRsZVBhZ2VWaWRlb0Z1bGxzY3JlZW5DbGll
bnRCYXNlPiB7CisgICAgdHlwZWRlZiBzdGQ6OnR1cGxlPFdLQnVuZGxlUGFnZVZpZGVvRnVsbHNj
cmVlbkNsaWVudFYwPiBWZXJzaW9uczsKK307Cit9CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKK2Ns
YXNzIEVsZW1lbnQ7CitjbGFzcyBGbG9hdFNpemU7CitjbGFzcyBJbnRSZWN0OworfQorCituYW1l
c3BhY2UgV2ViS2l0IHsKKworY2xhc3MgV2ViUGFnZTsKKworY2xhc3MgSW5qZWN0ZWRCdW5kbGVQ
YWdlVmlkZW9GdWxsc2NyZWVuQ2xpZW50IDogcHVibGljIEFQSTo6Q2xpZW50PFdLQnVuZGxlUGFn
ZVZpZGVvRnVsbHNjcmVlbkNsaWVudEJhc2U+IHsKK3B1YmxpYzoKKyAgICB2b2lkIHNldEhhc1Zp
ZGVvKFdlYlBhZ2UqLCB1aW50NjRfdCBjb250ZXh0SWQsIGJvb2wgaGFzVmlkZW8pOworICAgIHZv
aWQgc2V0VmlkZW9EaW1lbnNpb25zKFdlYlBhZ2UqLCB1aW50NjRfdCBjb250ZXh0SWQsIFdlYkNv
cmU6OkZsb2F0U2l6ZSB2aWRlb0RpbWVuc2lvbnMpOworICAgIHZvaWQgc2V0dXBGdWxsc2NyZWVu
V2l0aElEKFdlYlBhZ2UqLCB1aW50NjRfdCBjb250ZXh0SWQsIHVpbnQzMl90IHZpZGVvTGF5ZXJJ
RCwgV2ViQ29yZTo6SW50UmVjdCBpbml0aWFsUmVjdCwgZmxvYXQgaG9zdGluZ1NjYWxlRmFjdG9y
LCBXZWJDb3JlOjpIVE1MTWVkaWFFbGVtZW50RW51bXM6OlZpZGVvRnVsbHNjcmVlbk1vZGUsIGJv
b2wgYWxsb3dzUGljdHVyZUluUGljdHVyZSwgYm9vbCBzdGFuZGJ5KTsKKyAgICB2b2lkIGVudGVy
RnVsbHNjcmVlbihXZWJQYWdlKiwgdWludDY0X3QgY29udGV4dElkKTsKKyAgICB2b2lkIGV4aXRG
dWxsc2NyZWVuKFdlYlBhZ2UqLCB1aW50NjRfdCBjb250ZXh0SWQsIFdlYkNvcmU6OkludFJlY3Qg
ZmluYWxSZWN0KTsKKyAgICB2b2lkIHNldElubGluZVJlY3QoV2ViUGFnZSosIHVpbnQ2NF90IGNv
bnRleHRJZCwgV2ViQ29yZTo6SW50UmVjdCBpbmxpbmVSZWN0LCBib29sIHZpc2libGUpOworICAg
IHZvaWQgc2V0SGFzVmlkZW9Db250ZW50TGF5ZXIoV2ViUGFnZSosIHVpbnQ2NF90IGNvbnRleHRJ
ZCwgYm9vbCB2YWx1ZSk7CisgICAgdm9pZCBjbGVhbnVwRnVsbHNjcmVlbihXZWJQYWdlKiwgdWlu
dDY0X3QgY29udGV4dElkKTsKKyAgICB2b2lkIHByZXBhcmVkVG9SZXR1cm5Ub0lubGluZShXZWJQ
YWdlKiwgdWludDY0X3QgY29udGV4dElkLCBib29sIHZpc2libGUsIFdlYkNvcmU6OkludFJlY3Qg
aW5saW5lUmVjdCk7CisgICAgdm9pZCBwcmVwYXJlZFRvRXhpdEZ1bGxzY3JlZW4oV2ViUGFnZSos
IHVpbnQ2NF90IGNvbnRleHRJZCk7CisjaWYgUExBVEZPUk0oTUFDKSAmJiBFTkFCTEUoVklERU9f
UFJFU0VOVEFUSU9OX01PREUpCisgICAgdm9pZCBleGl0RnVsbHNjcmVlbldpdGhvdXRBbmltYXRp
b25Ub01vZGUoV2ViUGFnZSosIHVpbnQ2NF90IGNvbnRleHRJZCwgV2ViQ29yZTo6SFRNTE1lZGlh
RWxlbWVudEVudW1zOjpWaWRlb0Z1bGxzY3JlZW5Nb2RlKTsKKyNlbmRpZgorfTsKKworfSAvLyBu
YW1lc3BhY2UgV2ViS2l0CisKKyNlbmRpZiAvLyBQTEFURk9STShJT1NfRkFNSUxZKSB8fCAoUExB
VEZPUk0oTUFDKSAmJiBFTkFCTEUoVklERU9fUFJFU0VOVEFUSU9OX01PREUpKQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAgYi9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcAppbmRleCA1YjRjZWZmM2VhYjJi
YTdkNWI3OGUyYTFjOWU2MzBiMmU3ZmQ1MzhhLi5jYzQ0ZDQxMjgzNWNkNTY2ZWI2NDBlZmRlMWNj
NzZmNmE3YzkyMWYxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFn
ZS9XZWJQYWdlLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQ
YWdlLmNwcApAQCAtOTY5LDYgKzk2OSwxMyBAQCB2b2lkIFdlYlBhZ2U6OmluaXRpYWxpemVJbmpl
Y3RlZEJ1bmRsZUZ1bGxTY3JlZW5DbGllbnQoV0tCdW5kbGVQYWdlRnVsbFNjcmVlbkNsaQogfQog
I2VuZGlmCiAKKyNpZiBFTkFCTEUoVklERU9fUFJFU0VOVEFUSU9OX01PREUpCit2b2lkIFdlYlBh
Z2U6OmluaXRpYWxpemVJbmplY3RlZEJ1bmRsZVZpZGVvRnVsbHNjcmVlbkNsaWVudChXS0J1bmRs
ZVBhZ2VWaWRlb0Z1bGxzY3JlZW5DbGllbnRCYXNlKiBjbGllbnQpCit7CisgICAgbV92aWRlb0Z1
bGxzY3JlZW5DbGllbnQuaW5pdGlhbGl6ZShjbGllbnQpOworfQorI2VuZGlmCisKICNpZiBFTkFC
TEUoTkVUU0NBUEVfUExVR0lOX0FQSSkKIAogY29uc3RleHByIGludCBzbWFsbFBsdWdpbkRpbWVu
c2lvblRocmVzaG9sZCA9IDU7CkBAIC0xNDE0LDYgKzE0MjEsMTAgQEAgdm9pZCBXZWJQYWdlOjpj
bG9zZSgpCiAgICAgbV9mdWxsU2NyZWVuQ2xpZW50LmluaXRpYWxpemUoMCk7CiAjZW5kaWYKIAor
I2lmIEVOQUJMRShWSURFT19QUkVTRU5UQVRJT05fTU9ERSkKKyAgICBtX3ZpZGVvRnVsbHNjcmVl
bkNsaWVudC5pbml0aWFsaXplKDApOworI2VuZGlmCisKICAgICBtX3ByaW50Q29udGV4dCA9IG51
bGxwdHI7CiAgICAgbV9tYWluRnJhbWUtPmNvcmVGcmFtZSgpLT5sb2FkZXIoKS5kZXRhY2hGcm9t
UGFyZW50KCk7CiAgICAgbV9kcmF3aW5nQXJlYSA9IG51bGxwdHI7CkBAIC0zODM5LDcgKzM4NTAs
NyBAQCB2b2lkIFdlYlBhZ2U6Omluc3BlY3RvckZyb250ZW5kQ291bnRDaGFuZ2VkKHVuc2lnbmVk
IGNvdW50KQogICAgIHNlbmQoTWVzc2FnZXM6OldlYlBhZ2VQcm94eTo6RGlkQ2hhbmdlSW5zcGVj
dG9yRnJvbnRlbmRDb3VudChjb3VudCkpOwogfQogCi0jaWYgRU5BQkxFKFZJREVPX1BSRVNFTlRB
VElPTl9NT0RFKQorI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpIHx8IChQTEFURk9STShNQUMpICYm
IEVOQUJMRShWSURFT19QUkVTRU5UQVRJT05fTU9ERSkpCiBQbGF5YmFja1Nlc3Npb25NYW5hZ2Vy
JiBXZWJQYWdlOjpwbGF5YmFja1Nlc3Npb25NYW5hZ2VyKCkKIHsKICAgICBpZiAoIW1fcGxheWJh
Y2tTZXNzaW9uTWFuYWdlcikKQEAgLTM4NDcsMTMgKzM4NTgsNiBAQCBQbGF5YmFja1Nlc3Npb25N
YW5hZ2VyJiBXZWJQYWdlOjpwbGF5YmFja1Nlc3Npb25NYW5hZ2VyKCkKICAgICByZXR1cm4gKm1f
cGxheWJhY2tTZXNzaW9uTWFuYWdlcjsKIH0KIAotVmlkZW9GdWxsc2NyZWVuTWFuYWdlciYgV2Vi
UGFnZTo6dmlkZW9GdWxsc2NyZWVuTWFuYWdlcigpCi17Ci0gICAgaWYgKCFtX3ZpZGVvRnVsbHNj
cmVlbk1hbmFnZXIpCi0gICAgICAgIG1fdmlkZW9GdWxsc2NyZWVuTWFuYWdlciA9IFZpZGVvRnVs
bHNjcmVlbk1hbmFnZXI6OmNyZWF0ZSgqdGhpcywgcGxheWJhY2tTZXNzaW9uTWFuYWdlcigpKTsK
LSAgICByZXR1cm4gKm1fdmlkZW9GdWxsc2NyZWVuTWFuYWdlcjsKLX0KLQogdm9pZCBXZWJQYWdl
Ojp2aWRlb0NvbnRyb2xzTWFuYWdlckRpZENoYW5nZSgpCiB7CiAjaWYgRU5BQkxFKEZVTExTQ1JF
RU5fQVBJKQpAQCAtMzg2MSw3ICszODY1LDE1IEBAIHZvaWQgV2ViUGFnZTo6dmlkZW9Db250cm9s
c01hbmFnZXJEaWRDaGFuZ2UoKQogICAgICAgICBtYW5hZ2VyLT52aWRlb0NvbnRyb2xzTWFuYWdl
ckRpZENoYW5nZSgpOwogI2VuZGlmCiB9CisjZW5kaWYKIAorI2lmIEVOQUJMRShWSURFT19QUkVT
RU5UQVRJT05fTU9ERSkKK1ZpZGVvRnVsbHNjcmVlbk1hbmFnZXImIFdlYlBhZ2U6OnZpZGVvRnVs
bHNjcmVlbk1hbmFnZXIoKQoreworICAgIGlmICghbV92aWRlb0Z1bGxzY3JlZW5NYW5hZ2VyKQor
ICAgICAgICBtX3ZpZGVvRnVsbHNjcmVlbk1hbmFnZXIgPSBWaWRlb0Z1bGxzY3JlZW5NYW5hZ2Vy
OjpjcmVhdGUoKnRoaXMsIHBsYXliYWNrU2Vzc2lvbk1hbmFnZXIoKSk7CisgICAgcmV0dXJuICpt
X3ZpZGVvRnVsbHNjcmVlbk1hbmFnZXI7Cit9CiAjZW5kaWYKIAogI2lmIFBMQVRGT1JNKElPU19G
QU1JTFkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQ
YWdlLmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmgKaW5kZXgg
ODIyNjVkNGMxYWQ4Y2QyY2VkN2FhNzI5YTk1NzlkNmYyYjM0OGI1OC4uZWMzZGE2ZjVlZDBhMGNh
OTBmNGE2ZDM1YzhiYzYwNjgwZmEzZWJkMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9X
ZWJQYWdlL1dlYlBhZ2UuaApAQCAtNDAsNiArNDAsNyBAQAogI2luY2x1ZGUgIkluamVjdGVkQnVu
ZGxlUGFnZUNvbnRleHRNZW51Q2xpZW50LmgiCiAjaW5jbHVkZSAiSW5qZWN0ZWRCdW5kbGVQYWdl
RnVsbFNjcmVlbkNsaWVudC5oIgogI2luY2x1ZGUgIkluamVjdGVkQnVuZGxlUGFnZVBvbGljeUNs
aWVudC5oIgorI2luY2x1ZGUgIkluamVjdGVkQnVuZGxlUGFnZVZpZGVvRnVsbHNjcmVlbkNsaWVu
dC5oIgogI2luY2x1ZGUgIkxheWVyVHJlZUNvbnRleHQuaCIKICNpbmNsdWRlICJNZXNzYWdlUmVj
ZWl2ZXIuaCIKICNpbmNsdWRlICJNZXNzYWdlU2VuZGVyLmgiCkBAIC00NTMsNiArNDU0LDEwIEBA
IHB1YmxpYzoKICAgICB2b2lkIGluaXRpYWxpemVJbmplY3RlZEJ1bmRsZUZ1bGxTY3JlZW5DbGll
bnQoV0tCdW5kbGVQYWdlRnVsbFNjcmVlbkNsaWVudEJhc2UqKTsKICNlbmRpZgogCisjaWYgRU5B
QkxFKFZJREVPX1BSRVNFTlRBVElPTl9NT0RFKQorICAgIHZvaWQgaW5pdGlhbGl6ZUluamVjdGVk
QnVuZGxlVmlkZW9GdWxsc2NyZWVuQ2xpZW50KFdLQnVuZGxlUGFnZVZpZGVvRnVsbHNjcmVlbkNs
aWVudEJhc2UqKTsKKyNlbmRpZgorCiAjaWYgRU5BQkxFKENPTlRFWFRfTUVOVVMpCiAgICAgQVBJ
OjpJbmplY3RlZEJ1bmRsZTo6UGFnZUNvbnRleHRNZW51Q2xpZW50JiBpbmplY3RlZEJ1bmRsZUNv
bnRleHRNZW51Q2xpZW50KCkgeyByZXR1cm4gKm1fY29udGV4dE1lbnVDbGllbnQ7IH0KICNlbmRp
ZgpAQCAtNDY2LDYgKzQ3MSwxMCBAQCBwdWJsaWM6CiAgICAgSW5qZWN0ZWRCdW5kbGVQYWdlRnVs
bFNjcmVlbkNsaWVudCYgaW5qZWN0ZWRCdW5kbGVGdWxsU2NyZWVuQ2xpZW50KCkgeyByZXR1cm4g
bV9mdWxsU2NyZWVuQ2xpZW50OyB9CiAjZW5kaWYKIAorI2lmIEVOQUJMRShWSURFT19QUkVTRU5U
QVRJT05fTU9ERSkKKyAgICBJbmplY3RlZEJ1bmRsZVBhZ2VWaWRlb0Z1bGxzY3JlZW5DbGllbnQm
IGluamVjdGVkQnVuZGxlVmlkZW9GdWxsc2NyZWVuQ2xpZW50KCkgeyByZXR1cm4gbV92aWRlb0Z1
bGxzY3JlZW5DbGllbnQ7IH0KKyNlbmRpZgorCiAgICAgYm9vbCBmaW5kU3RyaW5nRnJvbUluamVj
dGVkQnVuZGxlKGNvbnN0IFN0cmluZyYsIEZpbmRPcHRpb25zKTsKICAgICB2b2lkIGZpbmRTdHJp
bmdNYXRjaGVzRnJvbUluamVjdGVkQnVuZGxlKGNvbnN0IFN0cmluZyYsIEZpbmRPcHRpb25zKTsK
ICAgICB2b2lkIHJlcGxhY2VTdHJpbmdNYXRjaGVzRnJvbUluamVjdGVkQnVuZGxlKGNvbnN0IFZl
Y3Rvcjx1aW50MzJfdD4mIG1hdGNoSW5kaWNlcywgY29uc3QgU3RyaW5nJiByZXBsYWNlbWVudFRl
eHQsIGJvb2wgc2VsZWN0aW9uT25seSk7CkBAIC0xODQwLDYgKzE4NDksMTAgQEAgcHJpdmF0ZToK
ICAgICBJbmplY3RlZEJ1bmRsZVBhZ2VGdWxsU2NyZWVuQ2xpZW50IG1fZnVsbFNjcmVlbkNsaWVu
dDsKICNlbmRpZgogCisjaWYgRU5BQkxFKFZJREVPX1BSRVNFTlRBVElPTl9NT0RFKQorICAgIElu
amVjdGVkQnVuZGxlUGFnZVZpZGVvRnVsbHNjcmVlbkNsaWVudCBtX3ZpZGVvRnVsbHNjcmVlbkNs
aWVudDsKKyNlbmRpZgorCiAgICAgVW5pcXVlUmVmPEZpbmRDb250cm9sbGVyPiBtX2ZpbmRDb250
cm9sbGVyOwogCiAgICAgUmVmUHRyPFdlYkluc3BlY3Rvcj4gbV9pbnNwZWN0b3I7CkBAIC0xODQ3
LDggKzE4NjAsMTEgQEAgcHJpdmF0ZToKICAgICBSZWZQdHI8UmVtb3RlV2ViSW5zcGVjdG9yVUk+
IG1fcmVtb3RlSW5zcGVjdG9yVUk7CiAgICAgc3RkOjp1bmlxdWVfcHRyPFdlYlBhZ2VJbnNwZWN0
b3JUYXJnZXRDb250cm9sbGVyPiBtX2luc3BlY3RvclRhcmdldENvbnRyb2xsZXI7CiAKLSNpZiBF
TkFCTEUoVklERU9fUFJFU0VOVEFUSU9OX01PREUpCisjaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkg
fHwgKFBMQVRGT1JNKE1BQykgJiYgRU5BQkxFKFZJREVPX1BSRVNFTlRBVElPTl9NT0RFKSkKICAg
ICBSZWZQdHI8UGxheWJhY2tTZXNzaW9uTWFuYWdlcj4gbV9wbGF5YmFja1Nlc3Npb25NYW5hZ2Vy
OworI2VuZGlmCisKKyNpZiBFTkFCTEUoVklERU9fUFJFU0VOVEFUSU9OX01PREUpCiAgICAgUmVm
UHRyPFZpZGVvRnVsbHNjcmVlbk1hbmFnZXI+IG1fdmlkZW9GdWxsc2NyZWVuTWFuYWdlcjsKICNl
bmRpZgogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvY29jb2EvVmlkZW9G
dWxsc2NyZWVuTWFuYWdlci5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL2NvY29hL1ZpZGVv
RnVsbHNjcmVlbk1hbmFnZXIuaAppbmRleCBmMTM2ZWNiOWRkM2VhY2VmYWRkOTc0YmRjZGJkNDJj
YWVmZjYyN2NmLi5jY2MwYWNlYTZlYmQ5YjNkNWNlNjRmZWFkZjcxYTYzMjIyNjdjZmJjIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvY29jb2EvVmlkZW9GdWxsc2NyZWVuTWFu
YWdlci5oCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9jb2NvYS9WaWRlb0Z1bGxzY3Jl
ZW5NYW5hZ2VyLmgKQEAgLTEyMiw2ICsxMjIsMTUgQEAgcHVibGljOgogICAgIHZvaWQgZXhpdFZp
ZGVvRnVsbHNjcmVlbkZvclZpZGVvRWxlbWVudChXZWJDb3JlOjpIVE1MVmlkZW9FbGVtZW50Jik7
CiAgICAgdm9pZCBleGl0VmlkZW9GdWxsc2NyZWVuVG9Nb2RlV2l0aG91dEFuaW1hdGlvbihXZWJD
b3JlOjpIVE1MVmlkZW9FbGVtZW50JiwgV2ViQ29yZTo6SFRNTE1lZGlhRWxlbWVudEVudW1zOjpW
aWRlb0Z1bGxzY3JlZW5Nb2RlKTsKIAorICAgIC8vIE1lc3NhZ2VzIGZyb20gVmlkZW9GdWxsc2Ny
ZWVuTWFuYWdlclByb3h5CisgICAgdm9pZCByZXF1ZXN0RnVsbHNjcmVlbk1vZGUodWludDY0X3Qg
Y29udGV4dElkLCBXZWJDb3JlOjpIVE1MTWVkaWFFbGVtZW50RW51bXM6OlZpZGVvRnVsbHNjcmVl
bk1vZGUsIGJvb2wgZmluaXNoZWRXaXRoTWVkaWEpOworICAgIHZvaWQgcmVxdWVzdFZpZGVvQ29u
dGVudExheWVyKHVpbnQ2NF90IGNvbnRleHRJZCk7CisgICAgdm9pZCByZXR1cm5WaWRlb0NvbnRl
bnRMYXllcih1aW50NjRfdCBjb250ZXh0SWQpOworICAgIHZvaWQgZGlkU2V0dXBGdWxsc2NyZWVu
KHVpbnQ2NF90IGNvbnRleHRJZCk7CisgICAgdm9pZCBkaWRFbnRlckZ1bGxzY3JlZW4odWludDY0
X3QgY29udGV4dElkKTsKKyAgICB2b2lkIGRpZEV4aXRGdWxsc2NyZWVuKHVpbnQ2NF90IGNvbnRl
eHRJZCk7CisgICAgdm9pZCBkaWRDbGVhbnVwRnVsbHNjcmVlbih1aW50NjRfdCBjb250ZXh0SWQp
OworCiBwcm90ZWN0ZWQ6CiAgICAgZnJpZW5kIGNsYXNzIFZpZGVvRnVsbHNjcmVlbkludGVyZmFj
ZUNvbnRleHQ7CiAKQEAgLTE0MSwxNSArMTUwLDkgQEAgcHJvdGVjdGVkOgogICAgIHZvaWQgdmlk
ZW9EaW1lbnNpb25zQ2hhbmdlZCh1aW50NjRfdCBjb250ZXh0SWQsIGNvbnN0IFdlYkNvcmU6OkZs
b2F0U2l6ZSYpOwogCiAgICAgLy8gTWVzc2FnZXMgZnJvbSBWaWRlb0Z1bGxzY3JlZW5NYW5hZ2Vy
UHJveHkKLSAgICB2b2lkIHJlcXVlc3RGdWxsc2NyZWVuTW9kZSh1aW50NjRfdCBjb250ZXh0SWQs
IFdlYkNvcmU6OkhUTUxNZWRpYUVsZW1lbnRFbnVtczo6VmlkZW9GdWxsc2NyZWVuTW9kZSwgYm9v
bCBmaW5pc2hlZFdpdGhNZWRpYSk7CiAgICAgdm9pZCByZXF1ZXN0VXBkYXRlSW5saW5lUmVjdCh1
aW50NjRfdCBjb250ZXh0SWQpOwotICAgIHZvaWQgcmVxdWVzdFZpZGVvQ29udGVudExheWVyKHVp
bnQ2NF90IGNvbnRleHRJZCk7Ci0gICAgdm9pZCByZXR1cm5WaWRlb0NvbnRlbnRMYXllcih1aW50
NjRfdCBjb250ZXh0SWQpOwotICAgIHZvaWQgZGlkU2V0dXBGdWxsc2NyZWVuKHVpbnQ2NF90IGNv
bnRleHRJZCk7CiAgICAgdm9pZCB3aWxsRXhpdEZ1bGxzY3JlZW4odWludDY0X3QgY29udGV4dElk
KTsKLSAgICB2b2lkIGRpZEV4aXRGdWxsc2NyZWVuKHVpbnQ2NF90IGNvbnRleHRJZCk7Ci0gICAg
dm9pZCBkaWRFbnRlckZ1bGxzY3JlZW4odWludDY0X3QgY29udGV4dElkKTsKLSAgICB2b2lkIGRp
ZENsZWFudXBGdWxsc2NyZWVuKHVpbnQ2NF90IGNvbnRleHRJZCk7CisKICAgICB2b2lkIHNldFZp
ZGVvTGF5ZXJGcmFtZUZlbmNlZCh1aW50NjRfdCBjb250ZXh0SWQsIFdlYkNvcmU6OkZsb2F0UmVj
dCBib3VuZHMsIElQQzo6QXR0YWNobWVudCBmZW5jZVBvcnQpOwogICAgIHZvaWQgc2V0VmlkZW9M
YXllckdyYXZpdHlFbnVtKHVpbnQ2NF90IGNvbnRleHRJZCwgdW5zaWduZWQgZ3Jhdml0eSk7CiAg
ICAgdm9pZCBmdWxsc2NyZWVuTW9kZUNoYW5nZWQodWludDY0X3QgY29udGV4dElkLCBXZWJDb3Jl
OjpIVE1MTWVkaWFFbGVtZW50RW51bXM6OlZpZGVvRnVsbHNjcmVlbk1vZGUpOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL2NvY29hL1ZpZGVvRnVsbHNjcmVlbk1hbmFnZXIu
bW0gYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvY29jb2EvVmlkZW9GdWxsc2NyZWVuTWFuYWdl
ci5tbQppbmRleCBmZjRhMmQzZTkxNmI1MDAyZjY3ZjM5ZmY3ZTllMTE4NTliMzY3ZTQ1Li5jZjJj
ZjVlY2RjN2NjZTE3ZDc0Y2E1ZjhhYTEyN2NmNTFlZWFmMjc0IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvY29jb2EvVmlkZW9GdWxsc2NyZWVuTWFuYWdlci5tbQorKysgYi9T
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvY29jb2EvVmlkZW9GdWxsc2NyZWVuTWFuYWdlci5tbQpA
QCAtMjg1LDcgKzI4NSw3IEBAIHZvaWQgVmlkZW9GdWxsc2NyZWVuTWFuYWdlcjo6ZW50ZXJWaWRl
b0Z1bGxzY3JlZW5Gb3JWaWRlb0VsZW1lbnQoSFRNTFZpZGVvRWxlbWVuCiAgICAgICAgIGludGVy
ZmFjZS0+bGF5ZXJIb3N0aW5nQ29udGV4dCgpLT5zZXRSb290TGF5ZXIodmlkZW9MYXllci5nZXQo
KSk7CiAgICAgfQogCi0gICAgbV9wYWdlLT5zZW5kKE1lc3NhZ2VzOjpWaWRlb0Z1bGxzY3JlZW5N
YW5hZ2VyUHJveHk6OlNldHVwRnVsbHNjcmVlbldpdGhJRChjb250ZXh0SWQsIGludGVyZmFjZS0+
bGF5ZXJIb3N0aW5nQ29udGV4dCgpLT5jb250ZXh0SUQoKSwgdmlkZW9SZWN0LCBtX3BhZ2UtPmRl
dmljZVNjYWxlRmFjdG9yKCksIGludGVyZmFjZS0+ZnVsbHNjcmVlbk1vZGUoKSwgYWxsb3dzUGlj
dHVyZUluUGljdHVyZSwgc3RhbmRieSkpOworICAgIG1fcGFnZS0+aW5qZWN0ZWRCdW5kbGVWaWRl
b0Z1bGxzY3JlZW5DbGllbnQoKS5zZXR1cEZ1bGxzY3JlZW5XaXRoSUQobV9wYWdlLCBjb250ZXh0
SWQsIGludGVyZmFjZS0+bGF5ZXJIb3N0aW5nQ29udGV4dCgpLT5jb250ZXh0SUQoKSwgdmlkZW9S
ZWN0LCBtX3BhZ2UtPmRldmljZVNjYWxlRmFjdG9yKCksIGludGVyZmFjZS0+ZnVsbHNjcmVlbk1v
ZGUoKSwgYWxsb3dzUGljdHVyZUluUGljdHVyZSwgc3RhbmRieSk7CiB9CiAKIHZvaWQgVmlkZW9G
dWxsc2NyZWVuTWFuYWdlcjo6ZXhpdFZpZGVvRnVsbHNjcmVlbkZvclZpZGVvRWxlbWVudChXZWJD
b3JlOjpIVE1MVmlkZW9FbGVtZW50JiB2aWRlb0VsZW1lbnQpCkBAIC0zMDEsNyArMzAxLDcgQEAg
dm9pZCBWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyOjpleGl0VmlkZW9GdWxsc2NyZWVuRm9yVmlkZW9F
bGVtZW50KFdlYkNvcmU6OkhUTUxWaWQKICAgICAgICAgcmV0dXJuOwogCiAgICAgaW50ZXJmYWNl
LnNldEFuaW1hdGlvblN0YXRlKFZpZGVvRnVsbHNjcmVlbkludGVyZmFjZUNvbnRleHQ6OkFuaW1h
dGlvblR5cGU6OkZyb21GdWxsc2NyZWVuKTsKLSAgICBtX3BhZ2UtPnNlbmQoTWVzc2FnZXM6OlZp
ZGVvRnVsbHNjcmVlbk1hbmFnZXJQcm94eTo6RXhpdEZ1bGxzY3JlZW4oY29udGV4dElkLCBpbmxp
bmVWaWRlb0ZyYW1lKHZpZGVvRWxlbWVudCkpKTsKKyAgICBtX3BhZ2UtPmluamVjdGVkQnVuZGxl
VmlkZW9GdWxsc2NyZWVuQ2xpZW50KCkuZXhpdEZ1bGxzY3JlZW4obV9wYWdlLCBjb250ZXh0SWQs
IGlubGluZVZpZGVvRnJhbWUodmlkZW9FbGVtZW50KSk7CiB9CiAKIHZvaWQgVmlkZW9GdWxsc2Ny
ZWVuTWFuYWdlcjo6ZXhpdFZpZGVvRnVsbHNjcmVlblRvTW9kZVdpdGhvdXRBbmltYXRpb24oV2Vi
Q29yZTo6SFRNTFZpZGVvRWxlbWVudCYgdmlkZW9FbGVtZW50LCBXZWJDb3JlOjpIVE1MTWVkaWFF
bGVtZW50RW51bXM6OlZpZGVvRnVsbHNjcmVlbk1vZGUgdGFyZ2V0TW9kZSkKQEAgLTMxNyw3ICsz
MTcsNyBAQCB2b2lkIFZpZGVvRnVsbHNjcmVlbk1hbmFnZXI6OmV4aXRWaWRlb0Z1bGxzY3JlZW5U
b01vZGVXaXRob3V0QW5pbWF0aW9uKFdlYkNvcmU6OgogCiAgICAgaW50ZXJmYWNlLnNldFRhcmdl
dElzRnVsbHNjcmVlbihmYWxzZSk7CiAKLSAgICBtX3BhZ2UtPnNlbmQoTWVzc2FnZXM6OlZpZGVv
RnVsbHNjcmVlbk1hbmFnZXJQcm94eTo6RXhpdEZ1bGxzY3JlZW5XaXRob3V0QW5pbWF0aW9uVG9N
b2RlKGNvbnRleHRJZCwgdGFyZ2V0TW9kZSkpOworICAgIG1fcGFnZS0+aW5qZWN0ZWRCdW5kbGVW
aWRlb0Z1bGxzY3JlZW5DbGllbnQoKS5leGl0RnVsbHNjcmVlbldpdGhvdXRBbmltYXRpb25Ub01v
ZGUobV9wYWdlLCBjb250ZXh0SWQsIHRhcmdldE1vZGUpOwogI2Vsc2UKICAgICBVTlVTRURfUEFS
QU0odmlkZW9FbGVtZW50KTsKICAgICBVTlVTRURfUEFSQU0odGFyZ2V0TW9kZSk7CkBAIC0zMjks
MTMgKzMyOSwxMyBAQCB2b2lkIFZpZGVvRnVsbHNjcmVlbk1hbmFnZXI6OmV4aXRWaWRlb0Z1bGxz
Y3JlZW5Ub01vZGVXaXRob3V0QW5pbWF0aW9uKFdlYkNvcmU6Ogogdm9pZCBWaWRlb0Z1bGxzY3Jl
ZW5NYW5hZ2VyOjpoYXNWaWRlb0NoYW5nZWQodWludDY0X3QgY29udGV4dElkLCBib29sIGhhc1Zp
ZGVvKQogewogICAgIGlmIChtX3BhZ2UpCi0gICAgICAgIG1fcGFnZS0+c2VuZChNZXNzYWdlczo6
VmlkZW9GdWxsc2NyZWVuTWFuYWdlclByb3h5OjpTZXRIYXNWaWRlbyhjb250ZXh0SWQsIGhhc1Zp
ZGVvKSk7CisgICAgICAgIG1fcGFnZS0+aW5qZWN0ZWRCdW5kbGVWaWRlb0Z1bGxzY3JlZW5DbGll
bnQoKS5zZXRIYXNWaWRlbyhtX3BhZ2UsIGNvbnRleHRJZCwgaGFzVmlkZW8pOwogfQogCiB2b2lk
IFZpZGVvRnVsbHNjcmVlbk1hbmFnZXI6OnZpZGVvRGltZW5zaW9uc0NoYW5nZWQodWludDY0X3Qg
Y29udGV4dElkLCBjb25zdCBGbG9hdFNpemUmIHZpZGVvRGltZW5zaW9ucykKIHsKICAgICBpZiAo
bV9wYWdlKQotICAgICAgICBtX3BhZ2UtPnNlbmQoTWVzc2FnZXM6OlZpZGVvRnVsbHNjcmVlbk1h
bmFnZXJQcm94eTo6U2V0VmlkZW9EaW1lbnNpb25zKGNvbnRleHRJZCwgdmlkZW9EaW1lbnNpb25z
KSk7CisgICAgICAgIG1fcGFnZS0+aW5qZWN0ZWRCdW5kbGVWaWRlb0Z1bGxzY3JlZW5DbGllbnQo
KS5zZXRWaWRlb0RpbWVuc2lvbnMobV9wYWdlLCBjb250ZXh0SWQsIHZpZGVvRGltZW5zaW9ucyk7
CiB9CiAKICNwcmFnbWEgbWFyayBNZXNzYWdlcyBmcm9tIFZpZGVvRnVsbHNjcmVlbk1hbmFnZXJQ
cm94eToKQEAgLTM1Nyw3ICszNTcsNyBAQCB2b2lkIFZpZGVvRnVsbHNjcmVlbk1hbmFnZXI6OnJl
cXVlc3RVcGRhdGVJbmxpbmVSZWN0KHVpbnQ2NF90IGNvbnRleHRJZCkKIAogICAgIGF1dG8mIG1v
ZGVsID0gZW5zdXJlTW9kZWwoY29udGV4dElkKTsKICAgICBJbnRSZWN0IGlubGluZVJlY3QgPSBp
bmxpbmVWaWRlb0ZyYW1lKCptb2RlbC52aWRlb0VsZW1lbnQoKSk7Ci0gICAgbV9wYWdlLT5zZW5k
KE1lc3NhZ2VzOjpWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyUHJveHk6OlNldElubGluZVJlY3QoY29u
dGV4dElkLCBpbmxpbmVSZWN0LCBpbmxpbmVSZWN0ICE9IEludFJlY3QoMCwgMCwgMCwgMCkpKTsK
KyAgICBtX3BhZ2UtPmluamVjdGVkQnVuZGxlVmlkZW9GdWxsc2NyZWVuQ2xpZW50KCkuc2V0SW5s
aW5lUmVjdChtX3BhZ2UsIGNvbnRleHRJZCwgaW5saW5lUmVjdCwgaW5saW5lUmVjdCAhPSBJbnRS
ZWN0KDAsIDAsIDAsIDApKTsKIH0KIAogdm9pZCBWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyOjpyZXF1
ZXN0VmlkZW9Db250ZW50TGF5ZXIodWludDY0X3QgY29udGV4dElkKQpAQCAtMzY4LDggKzM2OCw4
IEBAIHZvaWQgVmlkZW9GdWxsc2NyZWVuTWFuYWdlcjo6cmVxdWVzdFZpZGVvQ29udGVudExheWVy
KHVpbnQ2NF90IGNvbnRleHRJZCkKIAogICAgIG1vZGVsLT5zZXRWaWRlb0Z1bGxzY3JlZW5MYXll
cih2aWRlb0xheWVyLCBbcHJvdGVjdGVkVGhpcyA9IG1ha2VSZWZQdHIodGhpcyksIHRoaXMsIGNv
bnRleHRJZF0gKCkgbXV0YWJsZSB7CiAgICAgICAgIGRpc3BhdGNoX2FzeW5jKGRpc3BhdGNoX2dl
dF9tYWluX3F1ZXVlKCksIFtwcm90ZWN0ZWRUaGlzID0gV1RGTW92ZShwcm90ZWN0ZWRUaGlzKSwg
dGhpcywgY29udGV4dElkXSB7Ci0gICAgICAgICAgICBpZiAocHJvdGVjdGVkVGhpcy0+bV9wYWdl
KQotICAgICAgICAgICAgICAgIG1fcGFnZS0+c2VuZChNZXNzYWdlczo6VmlkZW9GdWxsc2NyZWVu
TWFuYWdlclByb3h5OjpTZXRIYXNWaWRlb0NvbnRlbnRMYXllcihjb250ZXh0SWQsIHRydWUpKTsK
KyAgICAgICAgICAgIGlmIChtX3BhZ2UpCisgICAgICAgICAgICAgICAgbV9wYWdlLT5pbmplY3Rl
ZEJ1bmRsZVZpZGVvRnVsbHNjcmVlbkNsaWVudCgpLnNldEhhc1ZpZGVvQ29udGVudExheWVyKG1f
cGFnZSwgY29udGV4dElkLCB0cnVlKTsKICAgICAgICAgfSk7CiAgICAgfSk7CiB9CkBAIC0zODQs
OCArMzg0LDggQEAgdm9pZCBWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyOjpyZXR1cm5WaWRlb0NvbnRl
bnRMYXllcih1aW50NjRfdCBjb250ZXh0SWQpCiAgICAgICAgIGRpc3BhdGNoX2FzeW5jKGRpc3Bh
dGNoX2dldF9tYWluX3F1ZXVlKCksIFtwcm90ZWN0ZWRUaGlzID0gV1RGTW92ZShwcm90ZWN0ZWRU
aGlzKSwgdGhpcywgY29udGV4dElkLCBtb2RlbF0gKCkgbXV0YWJsZSB7CiAgICAgICAgICAgICBt
b2RlbC0+c2V0VmlkZW9GdWxsc2NyZWVuTGF5ZXIobmlsLCBbcHJvdGVjdGVkVGhpcyA9IFdURk1v
dmUocHJvdGVjdGVkVGhpcyksIHRoaXMsIGNvbnRleHRJZF0gKCkgbXV0YWJsZSB7CiAgICAgICAg
ICAgICAgICAgZGlzcGF0Y2hfYXN5bmMoZGlzcGF0Y2hfZ2V0X21haW5fcXVldWUoKSwgW3Byb3Rl
Y3RlZFRoaXMgPSBXVEZNb3ZlKHByb3RlY3RlZFRoaXMpLCB0aGlzLCBjb250ZXh0SWRdIHsKLSAg
ICAgICAgICAgICAgICAgICAgaWYgKHByb3RlY3RlZFRoaXMtPm1fcGFnZSkKLSAgICAgICAgICAg
ICAgICAgICAgICAgIG1fcGFnZS0+c2VuZChNZXNzYWdlczo6VmlkZW9GdWxsc2NyZWVuTWFuYWdl
clByb3h5OjpTZXRIYXNWaWRlb0NvbnRlbnRMYXllcihjb250ZXh0SWQsIGZhbHNlKSk7CisgICAg
ICAgICAgICAgICAgICAgIGlmIChtX3BhZ2UpCisgICAgICAgICAgICAgICAgICAgICAgICBtX3Bh
Z2UtPmluamVjdGVkQnVuZGxlVmlkZW9GdWxsc2NyZWVuQ2xpZW50KCkuc2V0SGFzVmlkZW9Db250
ZW50TGF5ZXIobV9wYWdlLCBjb250ZXh0SWQsIGZhbHNlKTsKICAgICAgICAgICAgICAgICB9KTsK
ICAgICAgICAgICAgIH0pOwogICAgICAgICB9KTsKQEAgLTQwOSw4ICs0MDksOCBAQCB2b2lkIFZp
ZGVvRnVsbHNjcmVlbk1hbmFnZXI6OmRpZFNldHVwRnVsbHNjcmVlbih1aW50NjRfdCBjb250ZXh0
SWQpCiAKICAgICBtb2RlbC0+c2V0VmlkZW9GdWxsc2NyZWVuTGF5ZXIodmlkZW9MYXllciwgW3By
b3RlY3RlZFRoaXMgPSBtYWtlUmVmUHRyKHRoaXMpLCB0aGlzLCBjb250ZXh0SWRdICgpIG11dGFi
bGUgewogICAgICAgICBkaXNwYXRjaF9hc3luYyhkaXNwYXRjaF9nZXRfbWFpbl9xdWV1ZSgpLCBb
cHJvdGVjdGVkVGhpcyA9IFdURk1vdmUocHJvdGVjdGVkVGhpcyksIHRoaXMsIGNvbnRleHRJZF0g
ewotICAgICAgICAgICAgaWYgKHByb3RlY3RlZFRoaXMtPm1fcGFnZSkKLSAgICAgICAgICAgICAg
ICBtX3BhZ2UtPnNlbmQoTWVzc2FnZXM6OlZpZGVvRnVsbHNjcmVlbk1hbmFnZXJQcm94eTo6RW50
ZXJGdWxsc2NyZWVuKGNvbnRleHRJZCkpOworICAgICAgICAgICAgaWYgKG1fcGFnZSkKKyAgICAg
ICAgICAgICAgICBtX3BhZ2UtPmluamVjdGVkQnVuZGxlVmlkZW9GdWxsc2NyZWVuQ2xpZW50KCku
ZW50ZXJGdWxsc2NyZWVuKG1fcGFnZSwgY29udGV4dElkKTsKICAgICAgICAgfSk7CiAgICAgfSk7
CiAjZW5kaWYKQEAgLTQyNiwxMCArNDI2LDEwIEBAIHZvaWQgVmlkZW9GdWxsc2NyZWVuTWFuYWdl
cjo6d2lsbEV4aXRGdWxsc2NyZWVuKHVpbnQ2NF90IGNvbnRleHRJZCkKICAgICBpZiAoIXZpZGVv
RWxlbWVudCkKICAgICAgICAgcmV0dXJuOwogCi0gICAgZGlzcGF0Y2hfYXN5bmMoZGlzcGF0Y2hf
Z2V0X21haW5fcXVldWUoKSwgW3Byb3RlY3RlZFRoaXMgPSBtYWtlUmVmUHRyKHRoaXMpLCB2aWRl
b0VsZW1lbnQgPSBXVEZNb3ZlKHZpZGVvRWxlbWVudCksIGNvbnRleHRJZF0geworICAgIGRpc3Bh
dGNoX2FzeW5jKGRpc3BhdGNoX2dldF9tYWluX3F1ZXVlKCksIFtwcm90ZWN0ZWRUaGlzID0gbWFr
ZVJlZlB0cih0aGlzKSwgdGhpcywgdmlkZW9FbGVtZW50ID0gV1RGTW92ZSh2aWRlb0VsZW1lbnQp
LCBjb250ZXh0SWRdIHsKICAgICAgICAgdmlkZW9FbGVtZW50LT53aWxsRXhpdEZ1bGxzY3JlZW4o
KTsKLSAgICAgICAgaWYgKHByb3RlY3RlZFRoaXMtPm1fcGFnZSkKLSAgICAgICAgICAgIHByb3Rl
Y3RlZFRoaXMtPm1fcGFnZS0+c2VuZChNZXNzYWdlczo6VmlkZW9GdWxsc2NyZWVuTWFuYWdlclBy
b3h5OjpQcmVwYXJlZFRvRXhpdEZ1bGxzY3JlZW4oY29udGV4dElkKSk7CisgICAgICAgIGlmICht
X3BhZ2UpCisgICAgICAgICAgICBtX3BhZ2UtPmluamVjdGVkQnVuZGxlVmlkZW9GdWxsc2NyZWVu
Q2xpZW50KCkucHJlcGFyZWRUb0V4aXRGdWxsc2NyZWVuKG1fcGFnZSwgY29udGV4dElkKTsKICAg
ICB9KTsKIH0KIApAQCAtNDU0LDkgKzQ1NCw5IEBAIHZvaWQgVmlkZW9GdWxsc2NyZWVuTWFuYWdl
cjo6ZGlkRW50ZXJGdWxsc2NyZWVuKHVpbnQ2NF90IGNvbnRleHRJZCkKICAgICAgICAgcmV0dXJu
OwogCiAgICAgLy8gZXhpdCBmdWxsc2NyZWVuIG5vdyBpZiBpdCB3YXMgcHJldmlvdXNseSByZXF1
ZXN0ZWQgZHVyaW5nIGFuIGFuaW1hdGlvbi4KLSAgICBkaXNwYXRjaF9hc3luYyhkaXNwYXRjaF9n
ZXRfbWFpbl9xdWV1ZSgpLCBbcHJvdGVjdGVkVGhpcyA9IG1ha2VSZWZQdHIodGhpcyksIHZpZGVv
RWxlbWVudF0gewotICAgICAgICBpZiAocHJvdGVjdGVkVGhpcy0+bV9wYWdlKQotICAgICAgICAg
ICAgcHJvdGVjdGVkVGhpcy0+ZXhpdFZpZGVvRnVsbHNjcmVlbkZvclZpZGVvRWxlbWVudCgqdmlk
ZW9FbGVtZW50KTsKKyAgICBkaXNwYXRjaF9hc3luYyhkaXNwYXRjaF9nZXRfbWFpbl9xdWV1ZSgp
LCBbcHJvdGVjdGVkVGhpcyA9IG1ha2VSZWZQdHIodGhpcyksIHRoaXMsIHZpZGVvRWxlbWVudF0g
eworICAgICAgICBpZiAobV9wYWdlKQorICAgICAgICAgICAgZXhpdFZpZGVvRnVsbHNjcmVlbkZv
clZpZGVvRWxlbWVudCgqdmlkZW9FbGVtZW50KTsKICAgICB9KTsKIH0KIApAQCAtNDY5LDkgKzQ2
OSw5IEBAIHZvaWQgVmlkZW9GdWxsc2NyZWVuTWFuYWdlcjo6ZGlkRXhpdEZ1bGxzY3JlZW4odWlu
dDY0X3QgY29udGV4dElkKQogICAgIHN0ZDo6dGllKG1vZGVsLCBpbnRlcmZhY2UpID0gZW5zdXJl
TW9kZWxBbmRJbnRlcmZhY2UoY29udGV4dElkKTsKIAogI2lmIFBMQVRGT1JNKElPU19GQU1JTFkp
Ci0gICAgZGlzcGF0Y2hfYXN5bmMoZGlzcGF0Y2hfZ2V0X21haW5fcXVldWUoKSwgW3Byb3RlY3Rl
ZFRoaXMgPSBtYWtlUmVmUHRyKHRoaXMpLCBjb250ZXh0SWQsIGludGVyZmFjZV0gewotICAgICAg
ICBpZiAocHJvdGVjdGVkVGhpcy0+bV9wYWdlKQotICAgICAgICAgICAgcHJvdGVjdGVkVGhpcy0+
bV9wYWdlLT5zZW5kKE1lc3NhZ2VzOjpWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyUHJveHk6OkNsZWFu
dXBGdWxsc2NyZWVuKGNvbnRleHRJZCkpOworICAgIGRpc3BhdGNoX2FzeW5jKGRpc3BhdGNoX2dl
dF9tYWluX3F1ZXVlKCksIFtwcm90ZWN0ZWRUaGlzID0gbWFrZVJlZlB0cih0aGlzKSwgdGhpcywg
Y29udGV4dElkLCBpbnRlcmZhY2VdIHsKKyAgICAgICAgaWYgKG1fcGFnZSkKKyAgICAgICAgICAg
IG1fcGFnZS0+aW5qZWN0ZWRCdW5kbGVWaWRlb0Z1bGxzY3JlZW5DbGllbnQoKS5jbGVhbnVwRnVs
bHNjcmVlbihtX3BhZ2UsIGNvbnRleHRJZCk7CiAgICAgfSk7CiAjZWxzZQogICAgIG1vZGVsLT53
YWl0Rm9yUHJlcGFyZWRGb3JJbmxpbmVUaGVuKFtwcm90ZWN0ZWRUaGlzID0gbWFrZVJlZlB0cih0
aGlzKSwgY29udGV4dElkLCBpbnRlcmZhY2UsIG1vZGVsXSAoKSBtdXRhYmxlIHsKQEAgLTQ4Mywx
NCArNDgzLDE0IEBAIHZvaWQgVmlkZW9GdWxsc2NyZWVuTWFuYWdlcjo6ZGlkRXhpdEZ1bGxzY3Jl
ZW4odWludDY0X3QgY29udGV4dElkKQogICAgICAgICAgICAgICAgICAgICAgICAgaW50ZXJmYWNl
LT5zZXRMYXllckhvc3RpbmdDb250ZXh0KG51bGxwdHIpOwogICAgICAgICAgICAgICAgICAgICB9
CiAgICAgICAgICAgICAgICAgICAgIGlmIChwcm90ZWN0ZWRUaGlzLT5tX3BhZ2UpCi0gICAgICAg
ICAgICAgICAgICAgICAgICBwcm90ZWN0ZWRUaGlzLT5tX3BhZ2UtPnNlbmQoTWVzc2FnZXM6OlZp
ZGVvRnVsbHNjcmVlbk1hbmFnZXJQcm94eTo6Q2xlYW51cEZ1bGxzY3JlZW4oY29udGV4dElkKSk7
CisgICAgICAgICAgICAgICAgICAgICAgICBwcm90ZWN0ZWRUaGlzLT5tX3BhZ2UtPmluamVjdGVk
QnVuZGxlVmlkZW9GdWxsc2NyZWVuQ2xpZW50KCkuY2xlYW51cEZ1bGxzY3JlZW4ocHJvdGVjdGVk
VGhpcy0+bV9wYWdlLCBjb250ZXh0SWQpOwogICAgICAgICAgICAgICAgIH0pOwogICAgICAgICAg
ICAgfSk7CiAgICAgICAgIH0pOwogICAgIH0pOwogI2VuZGlmCiB9Ci0gICAgCisKIHZvaWQgVmlk
ZW9GdWxsc2NyZWVuTWFuYWdlcjo6ZGlkQ2xlYW51cEZ1bGxzY3JlZW4odWludDY0X3QgY29udGV4
dElkKQogewogICAgIExPRyhGdWxsc2NyZWVuLCAiVmlkZW9GdWxsc2NyZWVuTWFuYWdlcjo6ZGlk
Q2xlYW51cEZ1bGxzY3JlZW4oJXAsICV4KSIsIHRoaXMsIGNvbnRleHRJZCk7CkBAIC01MTgsOSAr
NTE4LDkgQEAgdm9pZCBWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyOjpkaWRDbGVhbnVwRnVsbHNjcmVl
bih1aW50NjRfdCBjb250ZXh0SWQpCiAgICAgaWYgKCF2aWRlb0VsZW1lbnQgfHwgIXRhcmdldElz
RnVsbHNjcmVlbikKICAgICAgICAgcmV0dXJuOwogCi0gICAgZGlzcGF0Y2hfYXN5bmMoZGlzcGF0
Y2hfZ2V0X21haW5fcXVldWUoKSwgW3Byb3RlY3RlZFRoaXMgPSBtYWtlUmVmUHRyKHRoaXMpLCB2
aWRlb0VsZW1lbnQsIG1vZGUsIHN0YW5kYnldIHsKLSAgICAgICAgaWYgKHByb3RlY3RlZFRoaXMt
Pm1fcGFnZSkKLSAgICAgICAgICAgIHByb3RlY3RlZFRoaXMtPmVudGVyVmlkZW9GdWxsc2NyZWVu
Rm9yVmlkZW9FbGVtZW50KCp2aWRlb0VsZW1lbnQsIG1vZGUsIHN0YW5kYnkpOworICAgIGRpc3Bh
dGNoX2FzeW5jKGRpc3BhdGNoX2dldF9tYWluX3F1ZXVlKCksIFtwcm90ZWN0ZWRUaGlzID0gbWFr
ZVJlZlB0cih0aGlzKSwgdGhpcywgdmlkZW9FbGVtZW50LCBtb2RlLCBzdGFuZGJ5XSB7CisgICAg
ICAgIGlmIChtX3BhZ2UpCisgICAgICAgICAgICBlbnRlclZpZGVvRnVsbHNjcmVlbkZvclZpZGVv
RWxlbWVudCgqdmlkZW9FbGVtZW50LCBtb2RlLCBzdGFuZGJ5KTsKICAgICB9KTsKIH0KICAgICAK
QEAgLTUzOCw3ICs1MzgsNyBAQCB2b2lkIFZpZGVvRnVsbHNjcmVlbk1hbmFnZXI6OmZ1bGxzY3Jl
ZW5NYXlSZXR1cm5Ub0lubGluZSh1aW50NjRfdCBjb250ZXh0SWQsIGJvbwogCiAgICAgaWYgKCFp
c1BhZ2VWaXNpYmxlKQogICAgICAgICBtb2RlbC52aWRlb0VsZW1lbnQoKS0+c2Nyb2xsSW50b1Zp
ZXdJZk5vdFZpc2libGUoZmFsc2UpOwotICAgIG1fcGFnZS0+c2VuZChNZXNzYWdlczo6VmlkZW9G
dWxsc2NyZWVuTWFuYWdlclByb3h5OjpQcmVwYXJlZFRvUmV0dXJuVG9JbmxpbmUoY29udGV4dElk
LCB0cnVlLCBpbmxpbmVWaWRlb0ZyYW1lKCptb2RlbC52aWRlb0VsZW1lbnQoKSkpKTsKKyAgICBt
X3BhZ2UtPmluamVjdGVkQnVuZGxlVmlkZW9GdWxsc2NyZWVuQ2xpZW50KCkucHJlcGFyZWRUb1Jl
dHVyblRvSW5saW5lKG1fcGFnZSwgY29udGV4dElkLCB0cnVlLCBpbmxpbmVWaWRlb0ZyYW1lKCpt
b2RlbC52aWRlb0VsZW1lbnQoKSkpOwogfQogCiB2b2lkIFZpZGVvRnVsbHNjcmVlbk1hbmFnZXI6
OnJlcXVlc3RSb3V0ZVNoYXJpbmdQb2xpY3lBbmRDb250ZXh0VUlEKHVpbnQ2NF90IGNvbnRleHRJ
ZCwgTWVzc2FnZXM6OlZpZGVvRnVsbHNjcmVlbk1hbmFnZXI6OlJlcXVlc3RSb3V0ZVNoYXJpbmdQ
b2xpY3lBbmRDb250ZXh0VUlEOjpBc3luY1JlcGx5JiYgcmVwbHkpCmRpZmYgLS1naXQgYS9Ub29s
cy9DaGFuZ2VMb2cgYi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggM2I1MThjNWMyMWM1MGE2MzRkY2Ri
MDM5M2EyODQzOWM0ZGZlZWY0Yi4uYjA1MDQzMTdjZmY3NWRiYjY5MTA2MTY1MDEwNjI4NGI1Yzky
Zjg1ZSAxMDA2NDQKLS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpA
QCAtMSwzICsxLDMxIEBACisyMDIwLTA0LTE3ICBQZW5nIExpdSAgPHBlbmcubGl1NkBhcHBsZS5j
b20+CisKKyAgICAgICAgVXBkYXRlIFdlYktpdFRlc3RSdW5uZXIgdG8gc3VwcG9ydCBydW5uaW5n
IG11bHRpcGxlIHZpZGVvIGZ1bGxzY3JlZW4gYW5kIFBpY3R1cmUtaW4tUGljdHVyZSB0ZXN0cyBz
aW11bHRhbmVvdXNseQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9MjAzNzIzCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAg
ICAgICAgQWRkIGFuIGluamVjdGVkIGJ1bmRsZSBjbGllbnQgb2YgdmlkZW8gZnVsbHNjcmVlbiBp
biBXZWJLaXRUZXN0UnVubmVyIHRvIG1vY2sgdGhlIGJlaGF2aW9yCisgICAgICAgIG9mIHRoZSB2
aWRlbyBmdWxsc2NyZWVuIGFuZCBwaWN0dXJlLWluLXBpY3R1cmUgaW1wbGVtZW50YXRpb24gaW4g
dGhlIFVJIHByb2Nlc3MuCisgICAgICAgIFdpdGggdGhpcyBwYXRjaCwgd2UgY2FuIHRlc3QgdGhl
IHZpZGVvIGZ1bGxzY3JlZW4gYW5kIHBpY3R1cmUtaW4tcGljdHVyZSBpbXBsZW1lbnRhdGlvbiBp
bgorICAgICAgICB0aGUgV2ViIHByb2Nlc3Mgd2l0aG91dCB0aGUgaW52b2x2ZW1lbnQgb2YgdGhl
IFVJIHByb2Nlc3Mgc2lkZSBpbXBsZW1lbnRhdGlvbi4gU28gdGhhdAorICAgICAgICB3ZSBjYW4g
cnVuIG11bHRpcGxlIHZpZGVvIGZ1bGxzY3JlZW4gYW5kIHBpY3R1cmUtaW4tcGljdHVyZSB0ZXN0
cyBpbiBwYXJhbGxlbC4KKworICAgICAgICAqIFdlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5k
bGUvSW5qZWN0ZWRCdW5kbGVQYWdlLmNwcDoKKyAgICAgICAgKFdUUjo6SW5qZWN0ZWRCdW5kbGVQ
YWdlOjpJbmplY3RlZEJ1bmRsZVBhZ2UpOgorICAgICAgICAoV1RSOjpJbmplY3RlZEJ1bmRsZVBh
Z2U6OnNldEhhc1ZpZGVvKToKKyAgICAgICAgKFdUUjo6SW5qZWN0ZWRCdW5kbGVQYWdlOjpzZXRW
aWRlb0RpbWVuc2lvbnMpOgorICAgICAgICAoV1RSOjpJbmplY3RlZEJ1bmRsZVBhZ2U6OnNldHVw
RnVsbHNjcmVlbldpdGhJRCk6CisgICAgICAgIChXVFI6OkluamVjdGVkQnVuZGxlUGFnZTo6ZW50
ZXJGdWxsc2NyZWVuKToKKyAgICAgICAgKFdUUjo6SW5qZWN0ZWRCdW5kbGVQYWdlOjpleGl0RnVs
bHNjcmVlbik6CisgICAgICAgIChXVFI6OkluamVjdGVkQnVuZGxlUGFnZTo6c2V0SW5saW5lUmVj
dCk6CisgICAgICAgIChXVFI6OkluamVjdGVkQnVuZGxlUGFnZTo6c2V0SGFzVmlkZW9Db250ZW50
TGF5ZXIpOgorICAgICAgICAoV1RSOjpJbmplY3RlZEJ1bmRsZVBhZ2U6OmNsZWFudXBGdWxsc2Ny
ZWVuKToKKyAgICAgICAgKFdUUjo6SW5qZWN0ZWRCdW5kbGVQYWdlOjpwcmVwYXJlZFRvUmV0dXJu
VG9JbmxpbmUpOgorICAgICAgICAoV1RSOjpJbmplY3RlZEJ1bmRsZVBhZ2U6OnByZXBhcmVkVG9F
eGl0RnVsbHNjcmVlbik6CisgICAgICAgIChXVFI6OkluamVjdGVkQnVuZGxlUGFnZTo6ZXhpdEZ1
bGxzY3JlZW5XaXRob3V0QW5pbWF0aW9uVG9Nb2RlKToKKyAgICAgICAgKiBXZWJLaXRUZXN0UnVu
bmVyL0luamVjdGVkQnVuZGxlL0luamVjdGVkQnVuZGxlUGFnZS5oOgorCiAyMDIwLTA0LTE3ICBC
cmVudCBGdWxnaGFtICA8YmZ1bGdoYW1AYXBwbGUuY29tPgogCiAgICAgICAgIFVucmV2aWV3ZWQg
YnVpbGQgZml4IGFmdGVyIHIyNjAyNjkuCmRpZmYgLS1naXQgYS9Ub29scy9XZWJLaXRUZXN0UnVu
bmVyL0luamVjdGVkQnVuZGxlL0luamVjdGVkQnVuZGxlUGFnZS5jcHAgYi9Ub29scy9XZWJLaXRU
ZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0luamVjdGVkQnVuZGxlUGFnZS5jcHAKaW5kZXggNDBj
NDVhNzkxNTUwNjkxZWZmZmE2YTRkMWMzN2M0OTMxYjA0ZWQ4Mi4uN2NhNDhhNzhmNjRlYjhlZmE1
M2Q3MGNiZDMwMjM4YTZiOTRmNjk2YyAxMDA2NDQKLS0tIGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5l
ci9JbmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZVBhZ2UuY3BwCisrKyBiL1Rvb2xzL1dlYktp
dFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvSW5qZWN0ZWRCdW5kbGVQYWdlLmNwcApAQCAtMzkw
LDYgKzM5MCwyOCBAQCBJbmplY3RlZEJ1bmRsZVBhZ2U6OkluamVjdGVkQnVuZGxlUGFnZShXS0J1
bmRsZVBhZ2VSZWYgcGFnZSkKICAgICB9OwogICAgIFdLQnVuZGxlUGFnZVNldEZ1bGxTY3JlZW5D
bGllbnQobV9wYWdlLCAmZnVsbFNjcmVlbkNsaWVudC5iYXNlKTsKICNlbmRpZgorCisjaWYgRU5B
QkxFKFZJREVPX1BSRVNFTlRBVElPTl9NT0RFKQorICAgIFdLQnVuZGxlUGFnZVZpZGVvRnVsbHNj
cmVlbkNsaWVudFYwIHZpZGVvRnVsbHNjcmVlbkNsaWVudCA9IHsKKyAgICAgICAgeyAwLCB0aGlz
IH0sCisgICAgICAgIHNldEhhc1ZpZGVvLAorICAgICAgICBzZXRWaWRlb0RpbWVuc2lvbnMsCisg
ICAgICAgIHNldHVwRnVsbHNjcmVlbldpdGhJRCwKKyAgICAgICAgZW50ZXJGdWxsc2NyZWVuLAor
ICAgICAgICBleGl0RnVsbHNjcmVlbiwKKyAgICAgICAgc2V0SW5saW5lUmVjdCwKKyAgICAgICAg
c2V0SGFzVmlkZW9Db250ZW50TGF5ZXIsCisgICAgICAgIGNsZWFudXBGdWxsc2NyZWVuLAorICAg
ICAgICBwcmVwYXJlZFRvUmV0dXJuVG9JbmxpbmUsCisgICAgICAgIHByZXBhcmVkVG9FeGl0RnVs
bHNjcmVlbiwKKyNpZiBQTEFURk9STShNQUMpCisgICAgICAgIGV4aXRGdWxsc2NyZWVuV2l0aG91
dEFuaW1hdGlvblRvTW9kZQorI2Vsc2UKKyAgICAgICAgMCwgLyogZXhpdEZ1bGxzY3JlZW5XaXRo
b3V0QW5pbWF0aW9uVG9Nb2RlICovCisjZW5kaWYKKyAgICB9OworICAgIFdLQnVuZGxlUGFnZVNl
dFZpZGVvRnVsbHNjcmVlbkNsaWVudChtX3BhZ2UsICZ2aWRlb0Z1bGxzY3JlZW5DbGllbnQuYmFz
ZSk7CisjZW5kaWYgLy8gRU5BQkxFKFZJREVPX1BSRVNFTlRBVElPTl9NT0RFKQogfQogCiBJbmpl
Y3RlZEJ1bmRsZVBhZ2U6On5JbmplY3RlZEJ1bmRsZVBhZ2UoKQpAQCAtMTkzMiw2ICsxOTU0LDEz
MCBAQCB2b2lkIEluamVjdGVkQnVuZGxlUGFnZTo6Y2xvc2VGdWxsU2NyZWVuKFdLQnVuZGxlUGFn
ZVJlZiBwYWdlUmVmKQogfQogI2VuZGlmCiAKKyNpZiBFTkFCTEUoVklERU9fUFJFU0VOVEFUSU9O
X01PREUpCisKK3ZvaWQgSW5qZWN0ZWRCdW5kbGVQYWdlOjpzZXRIYXNWaWRlbyhXS0J1bmRsZVBh
Z2VSZWYsIHVpbnQ2NF90IGNvbnRleHRJZCwgYm9vbCBoYXNWaWRlbykKK3sKKyAgICBVTlVTRURf
UEFSQU0oY29udGV4dElkKTsKKyAgICBVTlVTRURfUEFSQU0oaGFzVmlkZW8pOworCisgICAgYXV0
byYgaW5qZWN0ZWRCdW5kbGUgPSBJbmplY3RlZEJ1bmRsZTo6c2luZ2xldG9uKCk7CisgICAgaWYg
KGluamVjdGVkQnVuZGxlLnRlc3RSdW5uZXIoKS0+c2hvdWxkRHVtcEZ1bGxTY3JlZW5DYWxsYmFj
a3MoKSkKKyAgICAgICAgaW5qZWN0ZWRCdW5kbGUub3V0cHV0VGV4dCgic2V0SGFzVmlkZW8oKVxu
Iik7Cit9CisKK3ZvaWQgSW5qZWN0ZWRCdW5kbGVQYWdlOjpzZXRWaWRlb0RpbWVuc2lvbnMoV0tC
dW5kbGVQYWdlUmVmLCB1aW50NjRfdCBjb250ZXh0SWQsIFdLU2l6ZSB2aWRlb0RpbWVuc2lvbnMp
Cit7CisgICAgVU5VU0VEX1BBUkFNKGNvbnRleHRJZCk7CisgICAgVU5VU0VEX1BBUkFNKHZpZGVv
RGltZW5zaW9ucyk7CisKKyAgICBhdXRvJiBpbmplY3RlZEJ1bmRsZSA9IEluamVjdGVkQnVuZGxl
OjpzaW5nbGV0b24oKTsKKyAgICBpZiAoaW5qZWN0ZWRCdW5kbGUudGVzdFJ1bm5lcigpLT5zaG91
bGREdW1wRnVsbFNjcmVlbkNhbGxiYWNrcygpKQorICAgICAgICBpbmplY3RlZEJ1bmRsZS5vdXRw
dXRUZXh0KCJzZXRWaWRlb0RpbWVuc2lvbnMoKVxuIik7Cit9CisKK3ZvaWQgSW5qZWN0ZWRCdW5k
bGVQYWdlOjpzZXR1cEZ1bGxzY3JlZW5XaXRoSUQoV0tCdW5kbGVQYWdlUmVmIHBhZ2UsIHVpbnQ2
NF90IGNvbnRleHRJZCwgdWludDMyX3QgdmlkZW9MYXllcklkLCBXS1JlY3QgaW5pdGlhbFJlY3Qs
IGZsb2F0IGhvc3RpbmdTY2FsZUZhY3RvciwgV0tWaWRlb0Z1bGxzY3JlZW5Nb2RlIHZpZGVvRnVs
bHNjcmVlbk1vZGUsIGJvb2wgYWxsb3dzUGljdHVyZUluUGljdHVyZSwgYm9vbCBzdGFuZGJ5KQor
eworICAgIFVOVVNFRF9QQVJBTSh2aWRlb0xheWVySWQpOworICAgIFVOVVNFRF9QQVJBTShpbml0
aWFsUmVjdCk7CisgICAgVU5VU0VEX1BBUkFNKGhvc3RpbmdTY2FsZUZhY3Rvcik7CisgICAgVU5V
U0VEX1BBUkFNKHZpZGVvRnVsbHNjcmVlbk1vZGUpOworICAgIFVOVVNFRF9QQVJBTShhbGxvd3NQ
aWN0dXJlSW5QaWN0dXJlKTsKKyAgICBVTlVTRURfUEFSQU0oc3RhbmRieSk7CisKKyAgICBhdXRv
JiBpbmplY3RlZEJ1bmRsZSA9IEluamVjdGVkQnVuZGxlOjpzaW5nbGV0b24oKTsKKyAgICBpZiAo
aW5qZWN0ZWRCdW5kbGUudGVzdFJ1bm5lcigpLT5zaG91bGREdW1wRnVsbFNjcmVlbkNhbGxiYWNr
cygpKQorICAgICAgICBpbmplY3RlZEJ1bmRsZS5vdXRwdXRUZXh0KCJzZXR1cEZ1bGxzY3JlZW5X
aXRoSUQoKVxuIik7CisKKyAgICBXS0J1bmRsZVBhZ2VSZXF1ZXN0VmlkZW9Db250ZW50TGF5ZXIo
cGFnZSwgY29udGV4dElkKTsKK30KKwordm9pZCBJbmplY3RlZEJ1bmRsZVBhZ2U6OmVudGVyRnVs
bHNjcmVlbihXS0J1bmRsZVBhZ2VSZWYgcGFnZSwgdWludDY0X3QgY29udGV4dElkKQoreworICAg
IGF1dG8mIGluamVjdGVkQnVuZGxlID0gSW5qZWN0ZWRCdW5kbGU6OnNpbmdsZXRvbigpOworICAg
IGlmIChpbmplY3RlZEJ1bmRsZS50ZXN0UnVubmVyKCktPnNob3VsZER1bXBGdWxsU2NyZWVuQ2Fs
bGJhY2tzKCkpCisgICAgICAgIGluamVjdGVkQnVuZGxlLm91dHB1dFRleHQoImVudGVyRnVsbHNj
cmVlbigpXG4iKTsKKworICAgIFdLQnVuZGxlUGFnZURpZEVudGVyVmlkZW9GdWxsc2NyZWVuKHBh
Z2UsIGNvbnRleHRJZCk7Cit9CisKK3ZvaWQgSW5qZWN0ZWRCdW5kbGVQYWdlOjpleGl0RnVsbHNj
cmVlbihXS0J1bmRsZVBhZ2VSZWYgcGFnZSwgdWludDY0X3QgY29udGV4dElkLCBXS1JlY3QgZmlu
YWxSZWN0KQoreworICAgIFVOVVNFRF9QQVJBTShmaW5hbFJlY3QpOworCisgICAgYXV0byYgaW5q
ZWN0ZWRCdW5kbGUgPSBJbmplY3RlZEJ1bmRsZTo6c2luZ2xldG9uKCk7CisgICAgaWYgKGluamVj
dGVkQnVuZGxlLnRlc3RSdW5uZXIoKS0+c2hvdWxkRHVtcEZ1bGxTY3JlZW5DYWxsYmFja3MoKSkK
KyAgICAgICAgaW5qZWN0ZWRCdW5kbGUub3V0cHV0VGV4dCgiZXhpdEZ1bGxzY3JlZW4oKVxuIik7
CisKKyAgICBXS0J1bmRsZVBhZ2VSZXR1cm5WaWRlb0NvbnRlbnRMYXllcihwYWdlLCBjb250ZXh0
SWQpOworfQorCit2b2lkIEluamVjdGVkQnVuZGxlUGFnZTo6c2V0SW5saW5lUmVjdChXS0J1bmRs
ZVBhZ2VSZWYsIHVpbnQ2NF90IGNvbnRleHRJZCwgV0tSZWN0IGlubGluZVJlY3QsIGJvb2wgdmlz
aWJsZSkKK3sKKyAgICBVTlVTRURfUEFSQU0oY29udGV4dElkKTsKKyAgICBVTlVTRURfUEFSQU0o
aW5saW5lUmVjdCk7CisgICAgVU5VU0VEX1BBUkFNKHZpc2libGUpOworCisgICAgYXV0byYgaW5q
ZWN0ZWRCdW5kbGUgPSBJbmplY3RlZEJ1bmRsZTo6c2luZ2xldG9uKCk7CisgICAgaWYgKGluamVj
dGVkQnVuZGxlLnRlc3RSdW5uZXIoKS0+c2hvdWxkRHVtcEZ1bGxTY3JlZW5DYWxsYmFja3MoKSkK
KyAgICAgICAgaW5qZWN0ZWRCdW5kbGUub3V0cHV0VGV4dCgic2V0SW5saW5lUmVjdCgpXG4iKTsK
K30KKwordm9pZCBJbmplY3RlZEJ1bmRsZVBhZ2U6OnNldEhhc1ZpZGVvQ29udGVudExheWVyKFdL
QnVuZGxlUGFnZVJlZiBwYWdlLCB1aW50NjRfdCBjb250ZXh0SWQsIGJvb2wgdmFsdWUpCit7Cisg
ICAgYXV0byYgaW5qZWN0ZWRCdW5kbGUgPSBJbmplY3RlZEJ1bmRsZTo6c2luZ2xldG9uKCk7Cisg
ICAgaWYgKGluamVjdGVkQnVuZGxlLnRlc3RSdW5uZXIoKS0+c2hvdWxkRHVtcEZ1bGxTY3JlZW5D
YWxsYmFja3MoKSkKKyAgICAgICAgaW5qZWN0ZWRCdW5kbGUub3V0cHV0VGV4dCgic2V0SGFzVmlk
ZW9Db250ZW50TGF5ZXIoKVxuIik7CisKKyAgICBpZiAodmFsdWUpCisgICAgICAgIFdLQnVuZGxl
UGFnZURpZFNldHVwVmlkZW9GdWxsc2NyZWVuKHBhZ2UsIGNvbnRleHRJZCk7CisgICAgZWxzZQor
ICAgICAgICBXS0J1bmRsZVBhZ2VEaWRFeGl0VmlkZW9GdWxsc2NyZWVuKHBhZ2UsIGNvbnRleHRJ
ZCk7Cit9CisKK3ZvaWQgSW5qZWN0ZWRCdW5kbGVQYWdlOjpjbGVhbnVwRnVsbHNjcmVlbihXS0J1
bmRsZVBhZ2VSZWYgcGFnZSwgdWludDY0X3QgY29udGV4dElkKQoreworICAgIGF1dG8mIGluamVj
dGVkQnVuZGxlID0gSW5qZWN0ZWRCdW5kbGU6OnNpbmdsZXRvbigpOworICAgIGlmIChpbmplY3Rl
ZEJ1bmRsZS50ZXN0UnVubmVyKCktPnNob3VsZER1bXBGdWxsU2NyZWVuQ2FsbGJhY2tzKCkpCisg
ICAgICAgIGluamVjdGVkQnVuZGxlLm91dHB1dFRleHQoImNsZWFudXBGdWxsc2NyZWVuKClcbiIp
OworCisgICAgV0tCdW5kbGVQYWdlRGlkQ2xlYW51cFZpZGVvRnVsbHNjcmVlbihwYWdlLCBjb250
ZXh0SWQpOworfQorCit2b2lkIEluamVjdGVkQnVuZGxlUGFnZTo6cHJlcGFyZWRUb1JldHVyblRv
SW5saW5lKFdLQnVuZGxlUGFnZVJlZiwgdWludDY0X3QgY29udGV4dElkLCBib29sIHZpc2libGUs
IFdLUmVjdCBpbmxpbmVSZWN0KQoreworICAgIFVOVVNFRF9QQVJBTShjb250ZXh0SWQpOworICAg
IFVOVVNFRF9QQVJBTSh2aXNpYmxlKTsKKyAgICBVTlVTRURfUEFSQU0oaW5saW5lUmVjdCk7CisK
KyAgICBhdXRvJiBpbmplY3RlZEJ1bmRsZSA9IEluamVjdGVkQnVuZGxlOjpzaW5nbGV0b24oKTsK
KyAgICBpZiAoaW5qZWN0ZWRCdW5kbGUudGVzdFJ1bm5lcigpLT5zaG91bGREdW1wRnVsbFNjcmVl
bkNhbGxiYWNrcygpKQorICAgICAgICBpbmplY3RlZEJ1bmRsZS5vdXRwdXRUZXh0KCJwcmVwYXJl
ZFRvUmV0dXJuVG9JbmxpbmUoKVxuIik7Cit9CisKK3ZvaWQgSW5qZWN0ZWRCdW5kbGVQYWdlOjpw
cmVwYXJlZFRvRXhpdEZ1bGxzY3JlZW4oV0tCdW5kbGVQYWdlUmVmLCB1aW50NjRfdCBjb250ZXh0
SWQpCit7CisgICAgVU5VU0VEX1BBUkFNKGNvbnRleHRJZCk7CisKKyAgICBhdXRvJiBpbmplY3Rl
ZEJ1bmRsZSA9IEluamVjdGVkQnVuZGxlOjpzaW5nbGV0b24oKTsKKyAgICBpZiAoaW5qZWN0ZWRC
dW5kbGUudGVzdFJ1bm5lcigpLT5zaG91bGREdW1wRnVsbFNjcmVlbkNhbGxiYWNrcygpKQorICAg
ICAgICBpbmplY3RlZEJ1bmRsZS5vdXRwdXRUZXh0KCJwcmVwYXJlZFRvRXhpdEZ1bGxzY3JlZW4o
KVxuIik7Cit9CisKKyNpZiBQTEFURk9STShNQUMpCit2b2lkIEluamVjdGVkQnVuZGxlUGFnZTo6
ZXhpdEZ1bGxzY3JlZW5XaXRob3V0QW5pbWF0aW9uVG9Nb2RlKFdLQnVuZGxlUGFnZVJlZiwgdWlu
dDY0X3QgY29udGV4dElkLCBXS1ZpZGVvRnVsbHNjcmVlbk1vZGUgdmlkZW9GdWxsc2NyZWVuTW9k
ZSkKK3sKKyAgICBVTlVTRURfUEFSQU0oY29udGV4dElkKTsKKyAgICBVTlVTRURfUEFSQU0odmlk
ZW9GdWxsc2NyZWVuTW9kZSk7CisKKyAgICBhdXRvJiBpbmplY3RlZEJ1bmRsZSA9IEluamVjdGVk
QnVuZGxlOjpzaW5nbGV0b24oKTsKKyAgICBpZiAoaW5qZWN0ZWRCdW5kbGUudGVzdFJ1bm5lcigp
LT5zaG91bGREdW1wRnVsbFNjcmVlbkNhbGxiYWNrcygpKQorICAgICAgICBpbmplY3RlZEJ1bmRs
ZS5vdXRwdXRUZXh0KCJleGl0RnVsbHNjcmVlbldpdGhvdXRBbmltYXRpb25Ub01vZGUoKVxuIik7
Cit9CisjZW5kaWYKKworI2VuZGlmIC8vIEVOQUJMRShWSURFT19QUkVTRU5UQVRJT05fTU9ERSkK
KwogU3RyaW5nIEluamVjdGVkQnVuZGxlUGFnZTo6ZHVtcEhpc3RvcnkoKQogewogICAgIHJldHVy
biBtYWtlU3RyaW5nKApkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3Rl
ZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZVBhZ2UuaCBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5q
ZWN0ZWRCdW5kbGUvSW5qZWN0ZWRCdW5kbGVQYWdlLmgKaW5kZXggMzE0ODhhNTJiNWNlNTU2OTYx
NmNiZDkxYjlhMjE5NzUwMzQyMTEyZS4uNDUyMWRkYTJhYzk1NmZhOTYxNDZjMTEwZmI1OGExZGRl
MjE5MzdlYyAxMDA2NDQKLS0tIGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRs
ZS9JbmplY3RlZEJ1bmRsZVBhZ2UuaAorKysgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVj
dGVkQnVuZGxlL0luamVjdGVkQnVuZGxlUGFnZS5oCkBAIC0xNDUsNiArMTQ1LDIyIEBAIHByaXZh
dGU6CiAgICAgc3RhdGljIHZvaWQgY2xvc2VGdWxsU2NyZWVuKFdLQnVuZGxlUGFnZVJlZik7CiAj
ZW5kaWYKIAorI2lmIEVOQUJMRShWSURFT19QUkVTRU5UQVRJT05fTU9ERSkKKyAgICBzdGF0aWMg
dm9pZCBzZXRIYXNWaWRlbyhXS0J1bmRsZVBhZ2VSZWYsIHVpbnQ2NF90IGNvbnRleHRJZCwgYm9v
bCBoYXNWaWRlbyk7CisgICAgc3RhdGljIHZvaWQgc2V0VmlkZW9EaW1lbnNpb25zKFdLQnVuZGxl
UGFnZVJlZiwgdWludDY0X3QgY29udGV4dElkLCBXS1NpemUgdmlkZW9EaW1lbnNpb25zKTsKKyAg
ICBzdGF0aWMgdm9pZCBzZXR1cEZ1bGxzY3JlZW5XaXRoSUQoV0tCdW5kbGVQYWdlUmVmLCB1aW50
NjRfdCBjb250ZXh0SWQsIHVpbnQzMl90IHZpZGVvTGF5ZXJJZCwgV0tSZWN0IGluaXRpYWxSZWN0
LCBmbG9hdCBob3N0aW5nU2NhbGVGYWN0b3IsIFdLVmlkZW9GdWxsc2NyZWVuTW9kZSwgYm9vbCBh
bGxvd3NQaWN0dXJlSW5QaWN0dXJlLCBib29sIHN0YW5kYnkpOworICAgIHN0YXRpYyB2b2lkIGVu
dGVyRnVsbHNjcmVlbihXS0J1bmRsZVBhZ2VSZWYsIHVpbnQ2NF90IGNvbnRleHRJZCk7CisgICAg
c3RhdGljIHZvaWQgZXhpdEZ1bGxzY3JlZW4oV0tCdW5kbGVQYWdlUmVmLCB1aW50NjRfdCBjb250
ZXh0SWQsIFdLUmVjdCBmaW5hbFJlY3QpOworICAgIHN0YXRpYyB2b2lkIHNldElubGluZVJlY3Qo
V0tCdW5kbGVQYWdlUmVmLCB1aW50NjRfdCBjb250ZXh0SWQsIFdLUmVjdCBpbmxpbmVSZWN0LCBi
b29sIHZpc2libGUpOworICAgIHN0YXRpYyB2b2lkIHNldEhhc1ZpZGVvQ29udGVudExheWVyKFdL
QnVuZGxlUGFnZVJlZiwgdWludDY0X3QgY29udGV4dElkLCBib29sIHZhbHVlKTsKKyAgICBzdGF0
aWMgdm9pZCBjbGVhbnVwRnVsbHNjcmVlbihXS0J1bmRsZVBhZ2VSZWYsIHVpbnQ2NF90IGNvbnRl
eHRJZCk7CisgICAgc3RhdGljIHZvaWQgcHJlcGFyZWRUb1JldHVyblRvSW5saW5lKFdLQnVuZGxl
UGFnZVJlZiwgdWludDY0X3QgY29udGV4dElkLCBib29sIHZpc2libGUsIFdLUmVjdCBpbmxpbmVS
ZWN0KTsKKyAgICBzdGF0aWMgdm9pZCBwcmVwYXJlZFRvRXhpdEZ1bGxzY3JlZW4oV0tCdW5kbGVQ
YWdlUmVmLCB1aW50NjRfdCBjb250ZXh0SWQpOworI2lmIFBMQVRGT1JNKE1BQykKKyAgICBzdGF0
aWMgdm9pZCBleGl0RnVsbHNjcmVlbldpdGhvdXRBbmltYXRpb25Ub01vZGUoV0tCdW5kbGVQYWdl
UmVmLCB1aW50NjRfdCBjb250ZXh0SWQsIFdLVmlkZW9GdWxsc2NyZWVuTW9kZSk7CisjZW5kaWYK
KyNlbmRpZiAvLyBFTkFCTEUoVklERU9fUFJFU0VOVEFUSU9OX01PREUpCisKICAgICAvLyBFZGl0
b3IgY2xpZW50CiAgICAgc3RhdGljIGJvb2wgc2hvdWxkQmVnaW5FZGl0aW5nKFdLQnVuZGxlUGFn
ZVJlZiwgV0tCdW5kbGVSYW5nZUhhbmRsZVJlZiwgY29uc3Qgdm9pZCogY2xpZW50SW5mbyk7CiAg
ICAgc3RhdGljIGJvb2wgc2hvdWxkRW5kRWRpdGluZyhXS0J1bmRsZVBhZ2VSZWYsIFdLQnVuZGxl
UmFuZ2VIYW5kbGVSZWYsIGNvbnN0IHZvaWQqIGNsaWVudEluZm8pOwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>397791</attachid>
            <date>2020-04-27 20:18:02 -0700</date>
            <delta_ts>2020-04-27 20:31:08 -0700</delta_ts>
            <desc>WIP patch</desc>
            <filename>bug-203723-20200427201801.patch</filename>
            <type>text/plain</type>
            <size>61698</size>
            <attacher name="Peng Liu">peng.liu6</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjYwNzYyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDgyOWY2OGJjOTgyNWZkYjhm
YmY1NDhjYmRjNDE0ODgyMDcyMWNiMDUuLmVlMjc1MjJiMzhhOTczMzBjZDY3Y2I1YWEzMTVkY2E5
Y2YwM2E5MGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNTEgQEAKKzIwMjAtMDQtMjcgIFBlbmcgTGl1
ICA8cGVuZy5saXU2QGFwcGxlLmNvbT4KKworICAgICAgICBVcGRhdGUgV2ViS2l0VGVzdFJ1bm5l
ciB0byBzdXBwb3J0IHJ1bm5pbmcgbXVsdGlwbGUgdmlkZW8gZnVsbHNjcmVlbiBhbmQgUGljdHVy
ZS1pbi1QaWN0dXJlIHRlc3RzIHNpbXVsdGFuZW91c2x5CisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDM3MjMKKworICAgICAgICBSZXZpZXdlZCBieSBO
T0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFNoYXJlZC9BUEkvQVBJT2JqZWN0Lmg6CisgICAg
ICAgICogU2hhcmVkL0FQSS9jL1dLQmFzZS5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQy9X
S0FQSUNhc3QuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0MvV0tQYWdlSW5qZWN0ZWRCdW5k
bGVDbGllbnQuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0MvV0tWaWRlb0Z1bGxzY3JlZW5N
YW5hZ2VyLmNwcDogQWRkZWQuCisgICAgICAgIChXS1ZpZGVvRnVsbHNjcmVlbk1hbmFnZXJTZXRJ
bmplY3RlZEJ1bmRsZUNsaWVudCk6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9DL1dLVmlkZW9G
dWxsc2NyZWVuTWFuYWdlci5oOiBBZGRlZC4KKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0MvV0tW
aWRlb0Z1bGxzY3JlZW5NYW5hZ2VySW5qZWN0ZWRCdW5kbGVDbGllbnQuaDogQWRkZWQuCisgICAg
ICAgICogVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXcubW06CisgICAgICAgICgtW1dLV2Vi
VmlldyBfdmlkZW9GdWxsc2NyZWVuTWFuYWdlckZvclRlc3RpbmddKToKKyAgICAgICAgKiBVSVBy
b2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlld0ludGVybmFsLmg6CisgICAgICAgICogVUlQcm9jZXNz
L0NvY29hL1ZpZGVvRnVsbHNjcmVlbk1hbmFnZXJJbmplY3RlZEJ1bmRsZUNsaWVudC5jcHA6IEFk
ZGVkLgorICAgICAgICAoV2ViS2l0OjpWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VySW5qZWN0ZWRCdW5k
bGVDbGllbnQ6OnNldEhhc1ZpZGVvKToKKyAgICAgICAgKFdlYktpdDo6VmlkZW9GdWxsc2NyZWVu
TWFuYWdlckluamVjdGVkQnVuZGxlQ2xpZW50OjpzZXRWaWRlb0RpbWVuc2lvbnMpOgorICAgICAg
ICAoV2ViS2l0OjpWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VySW5qZWN0ZWRCdW5kbGVDbGllbnQ6OnNl
dHVwRnVsbHNjcmVlbldpdGhJRCk6CisgICAgICAgIChXZWJLaXQ6OlZpZGVvRnVsbHNjcmVlbk1h
bmFnZXJJbmplY3RlZEJ1bmRsZUNsaWVudDo6ZW50ZXJGdWxsc2NyZWVuKToKKyAgICAgICAgKFdl
YktpdDo6VmlkZW9GdWxsc2NyZWVuTWFuYWdlckluamVjdGVkQnVuZGxlQ2xpZW50OjpleGl0RnVs
bHNjcmVlbik6CisgICAgICAgIChXZWJLaXQ6OlZpZGVvRnVsbHNjcmVlbk1hbmFnZXJJbmplY3Rl
ZEJ1bmRsZUNsaWVudDo6c2V0SW5saW5lUmVjdCk6CisgICAgICAgIChXZWJLaXQ6OlZpZGVvRnVs
bHNjcmVlbk1hbmFnZXJJbmplY3RlZEJ1bmRsZUNsaWVudDo6c2V0SGFzVmlkZW9Db250ZW50TGF5
ZXIpOgorICAgICAgICAoV2ViS2l0OjpWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VySW5qZWN0ZWRCdW5k
bGVDbGllbnQ6OmNsZWFudXBGdWxsc2NyZWVuKToKKyAgICAgICAgKFdlYktpdDo6VmlkZW9GdWxs
c2NyZWVuTWFuYWdlckluamVjdGVkQnVuZGxlQ2xpZW50OjpwcmVwYXJlZFRvUmV0dXJuVG9Jbmxp
bmUpOgorICAgICAgICAoV2ViS2l0OjpWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VySW5qZWN0ZWRCdW5k
bGVDbGllbnQ6OnByZXBhcmVkVG9FeGl0RnVsbHNjcmVlbik6CisgICAgICAgIChXZWJLaXQ6OlZp
ZGVvRnVsbHNjcmVlbk1hbmFnZXJJbmplY3RlZEJ1bmRsZUNsaWVudDo6ZXhpdEZ1bGxzY3JlZW5X
aXRob3V0QW5pbWF0aW9uVG9Nb2RlKToKKyAgICAgICAgKiBVSVByb2Nlc3MvQ29jb2EvVmlkZW9G
dWxsc2NyZWVuTWFuYWdlckluamVjdGVkQnVuZGxlQ2xpZW50Lmg6IEFkZGVkLgorICAgICAgICAq
IFVJUHJvY2Vzcy9Db2NvYS9WaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyUHJveHkuaDoKKyAgICAgICAg
KiBVSVByb2Nlc3MvQ29jb2EvVmlkZW9GdWxsc2NyZWVuTWFuYWdlclByb3h5Lm1tOgorICAgICAg
ICAoV2ViS2l0OjpWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyUHJveHk6OnNldEluamVjdGVkQnVuZGxl
Q2xpZW50KToKKyAgICAgICAgKFdlYktpdDo6VmlkZW9GdWxsc2NyZWVuTWFuYWdlclByb3h5Ojpp
c1BsYXlpbmdWaWRlb0luRW5oYW5jZWRGdWxsc2NyZWVuIGNvbnN0KToKKyAgICAgICAgKFdlYktp
dDo6VmlkZW9GdWxsc2NyZWVuTWFuYWdlclByb3h5OjpzZXR1cEZ1bGxzY3JlZW5XaXRoSUQpOgor
ICAgICAgICAoV2ViS2l0OjpWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyUHJveHk6OnNldEhhc1ZpZGVv
KToKKyAgICAgICAgKFdlYktpdDo6VmlkZW9GdWxsc2NyZWVuTWFuYWdlclByb3h5OjpzZXRWaWRl
b0RpbWVuc2lvbnMpOgorICAgICAgICAoV2ViS2l0OjpWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyUHJv
eHk6OmVudGVyRnVsbHNjcmVlbik6CisgICAgICAgIChXZWJLaXQ6OlZpZGVvRnVsbHNjcmVlbk1h
bmFnZXJQcm94eTo6ZXhpdEZ1bGxzY3JlZW4pOgorICAgICAgICAoV2ViS2l0OjpWaWRlb0Z1bGxz
Y3JlZW5NYW5hZ2VyUHJveHk6OmV4aXRGdWxsc2NyZWVuV2l0aG91dEFuaW1hdGlvblRvTW9kZSk6
CisgICAgICAgIChXZWJLaXQ6OlZpZGVvRnVsbHNjcmVlbk1hbmFnZXJQcm94eTo6c2V0SW5saW5l
UmVjdCk6CisgICAgICAgIChXZWJLaXQ6OlZpZGVvRnVsbHNjcmVlbk1hbmFnZXJQcm94eTo6c2V0
SGFzVmlkZW9Db250ZW50TGF5ZXIpOgorICAgICAgICAoV2ViS2l0OjpWaWRlb0Z1bGxzY3JlZW5N
YW5hZ2VyUHJveHk6OmNsZWFudXBGdWxsc2NyZWVuKToKKyAgICAgICAgKFdlYktpdDo6VmlkZW9G
dWxsc2NyZWVuTWFuYWdlclByb3h5OjpwcmVwYXJlZFRvUmV0dXJuVG9JbmxpbmUpOgorICAgICAg
ICAoV2ViS2l0OjpWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyUHJveHk6OnByZXBhcmVkVG9FeGl0RnVs
bHNjcmVlbik6CisgICAgICAgICogV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisK
IDIwMjAtMDQtMjcgIFBoaWxpcHBlIE5vcm1hbmQgIDxwbm9ybWFuZEBpZ2FsaWEuY29tPgogCiAg
ICAgICAgIFtHVEtdIEVOQUJMRShPUEVOR0wpIHJlbW1hbnRzLi4uCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L1NoYXJlZC9BUEkvQVBJT2JqZWN0LmggYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9B
UEkvQVBJT2JqZWN0LmgKaW5kZXggNGE2OGRmZjU4NGYxMWU4MzVmODUzMjZiNDRmMDdmNGE4MDRj
OTc2Mi4uMGUxN2Y3MjIxY2NkNmRkYzMzYWJjMGEzYWE4ZDBhZDViNjk0Y2NiNSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9TaGFyZWQvQVBJL0FQSU9iamVjdC5oCisrKyBiL1NvdXJjZS9XZWJL
aXQvU2hhcmVkL0FQSS9BUElPYmplY3QuaApAQCAtMTY5LDYgKzE2OSw3IEBAIHB1YmxpYzoKICAg
ICAgICAgVXNlckluaXRpYXRlZEFjdGlvbiwKICAgICAgICAgVXNlck1lZGlhUGVybWlzc2lvbkNo
ZWNrLAogICAgICAgICBVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdCwKKyAgICAgICAgVmlkZW9G
dWxsc2NyZWVuTWFuYWdlciwKICAgICAgICAgVmlld3BvcnRBdHRyaWJ1dGVzLAogICAgICAgICBW
aXNpdGVkTGlua1N0b3JlLAogICAgICAgICBXZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzTWFuYWdl
ciwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0FQSS9jL1dLQmFzZS5oIGIvU291
cmNlL1dlYktpdC9TaGFyZWQvQVBJL2MvV0tCYXNlLmgKaW5kZXggOGM5ZGM5MDg3Y2RhZmMyYWNm
ZGExNjc2MWI3ZWE3ZjhlZDc0MzI5Zi4uMWViMzA2ZWYxZmY4ODQ2MjU4OGEyYmI0NmE4NGY2MzY1
ZmI1ZGJiOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9TaGFyZWQvQVBJL2MvV0tCYXNlLmgK
KysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQvQVBJL2MvV0tCYXNlLmgKQEAgLTEyMyw2ICsxMjMs
NyBAQCB0eXBlZGVmIGNvbnN0IHN0cnVjdCBPcGFxdWVXS09wZW5QYW5lbFJlc3VsdExpc3RlbmVy
KiBXS09wZW5QYW5lbFJlc3VsdExpc3RlbmVyUgogdHlwZWRlZiBjb25zdCBzdHJ1Y3QgT3BhcXVl
V0tQYWdlKiBXS1BhZ2VSZWY7CiB0eXBlZGVmIGNvbnN0IHN0cnVjdCBPcGFxdWVXS1BhZ2VDb25m
aWd1cmF0aW9uKiBXS1BhZ2VDb25maWd1cmF0aW9uUmVmOwogdHlwZWRlZiBjb25zdCBzdHJ1Y3Qg
T3BhcXVlV0tQYWdlR3JvdXAqIFdLUGFnZUdyb3VwUmVmOwordHlwZWRlZiBjb25zdCBzdHJ1Y3Qg
T3BhcXVlV0tWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyKiBXS1ZpZGVvRnVsbHNjcmVlbk1hbmFnZXJS
ZWY7CiB0eXBlZGVmIGNvbnN0IHN0cnVjdCBPcGFxdWVXS1ByZWZlcmVuY2VzKiBXS1ByZWZlcmVu
Y2VzUmVmOwogdHlwZWRlZiBjb25zdCBzdHJ1Y3QgT3BhcXVlV0tQcm90ZWN0aW9uU3BhY2UqIFdL
UHJvdGVjdGlvblNwYWNlUmVmOwogdHlwZWRlZiBjb25zdCBzdHJ1Y3QgT3BhcXVlV0tQYWdlUnVu
QmVmb3JlVW5sb2FkQ29uZmlybVBhbmVsUmVzdWx0TGlzdGVuZXIqIFdLUGFnZVJ1bkJlZm9yZVVu
bG9hZENvbmZpcm1QYW5lbFJlc3VsdExpc3RlbmVyUmVmOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvQVBJL0MvV0tBUElDYXN0LmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9BUEkvQy9XS0FQSUNhc3QuaAppbmRleCA0OGI2NjFmMzQ5NDdhMzEyNDAxYmY2YTIwOWRkZjNh
YTVjZjQyYWQ4Li5mNTUyMGI4OTg5ZTk1NTdmNzNhMjllMGFmMGQxNDBkZjM3ZDVmMTczIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQy9XS0FQSUNhc3QuaAorKysgYi9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQy9XS0FQSUNhc3QuaApAQCAtODEsNiArODEsNyBA
QCBjbGFzcyBHZW9sb2NhdGlvblBlcm1pc3Npb25SZXF1ZXN0OwogY2xhc3MgTm90aWZpY2F0aW9u
UGVybWlzc2lvblJlcXVlc3Q7CiBjbGFzcyBVc2VyTWVkaWFQZXJtaXNzaW9uQ2hlY2tQcm94eTsK
IGNsYXNzIFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UHJveHk7CitjbGFzcyBWaWRlb0Z1bGxz
Y3JlZW5NYW5hZ2VyUHJveHk7CiBjbGFzcyBXZWJCYWNrRm9yd2FyZExpc3Q7CiBjbGFzcyBXZWJC
YWNrRm9yd2FyZExpc3RJdGVtOwogY2xhc3MgV2ViQ29sb3JQaWNrZXJSZXN1bHRMaXN0ZW5lclBy
b3h5OwpAQCAtMTY3LDggKzE2OCw5IEBAIFdLX0FERF9BUElfTUFQUElORyhXS1VzZXJDb250ZW50
RmlsdGVyUmVmLCBBUEk6OkNvbnRlbnRSdWxlTGlzdCkKIFdLX0FERF9BUElfTUFQUElORyhXS1Vz
ZXJNZWRpYVBlcm1pc3Npb25DaGVja1JlZiwgVXNlck1lZGlhUGVybWlzc2lvbkNoZWNrUHJveHkp
CiBXS19BRERfQVBJX01BUFBJTkcoV0tVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdFJlZiwgVXNl
ck1lZGlhUGVybWlzc2lvblJlcXVlc3RQcm94eSkKIFdLX0FERF9BUElfTUFQUElORyhXS1VzZXJT
Y3JpcHRSZWYsIEFQSTo6VXNlclNjcmlwdCkKK1dLX0FERF9BUElfTUFQUElORyhXS1ZpZGVvRnVs
bHNjcmVlbk1hbmFnZXJSZWYsIFZpZGVvRnVsbHNjcmVlbk1hbmFnZXJQcm94eSkKIFdLX0FERF9B
UElfTUFQUElORyhXS1ZpZXdwb3J0QXR0cmlidXRlc1JlZiwgV2ViVmlld3BvcnRBdHRyaWJ1dGVz
KQotV0tfQUREX0FQSV9NQVBQSU5HKFdLV2Vic2l0ZURhdGFTdG9yZVJlZiwgV2ViS2l0OjpXZWJz
aXRlRGF0YVN0b3JlKQorV0tfQUREX0FQSV9NQVBQSU5HKFdLV2Vic2l0ZURhdGFTdG9yZVJlZiwg
V2Vic2l0ZURhdGFTdG9yZSkKIFdLX0FERF9BUElfTUFQUElORyhXS1dlYnNpdGVEYXRhU3RvcmVD
b25maWd1cmF0aW9uUmVmLCBXZWJLaXQ6OldlYnNpdGVEYXRhU3RvcmVDb25maWd1cmF0aW9uKQog
V0tfQUREX0FQSV9NQVBQSU5HKFdLV2Vic2l0ZVBvbGljaWVzUmVmLCBBUEk6OldlYnNpdGVQb2xp
Y2llcykKIFdLX0FERF9BUElfTUFQUElORyhXS1dpbmRvd0ZlYXR1cmVzUmVmLCBBUEk6OldpbmRv
d0ZlYXR1cmVzKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0MvV0tQ
YWdlSW5qZWN0ZWRCdW5kbGVDbGllbnQuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9D
L1dLUGFnZUluamVjdGVkQnVuZGxlQ2xpZW50LmgKaW5kZXggZWRiYmY1OGNjYzY1OTc0MmI5YjFi
NDRiNTM2NTI1N2EzMDI5ZDE5ZS4uOTE2Y2ExMGE3MWYyYWQ2MDhiNWM3NjAxMTdkNTc5OWVmZTIz
YzFjNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0MvV0tQYWdlSW5q
ZWN0ZWRCdW5kbGVDbGllbnQuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQy9X
S1BhZ2VJbmplY3RlZEJ1bmRsZUNsaWVudC5oCkBAIC0zMCw3ICszMCw2IEBACiAKIHR5cGVkZWYg
dm9pZCAoKldLUGFnZURpZFJlY2VpdmVNZXNzYWdlRnJvbUluamVjdGVkQnVuZGxlQ2FsbGJhY2sp
KFdLUGFnZVJlZiBwYWdlLCBXS1N0cmluZ1JlZiBtZXNzYWdlTmFtZSwgV0tUeXBlUmVmIG1lc3Nh
Z2VCb2R5LCBjb25zdCB2b2lkICpjbGllbnRJbmZvKTsKIHR5cGVkZWYgdm9pZCAoKldLUGFnZURp
ZFJlY2VpdmVTeW5jaHJvbm91c01lc3NhZ2VGcm9tSW5qZWN0ZWRCdW5kbGVDYWxsYmFjaykoV0tQ
YWdlUmVmIHBhZ2UsIFdLU3RyaW5nUmVmIG1lc3NhZ2VOYW1lLCBXS1R5cGVSZWYgbWVzc2FnZUJv
ZHksIFdLVHlwZVJlZiogcmV0dXJuRGF0YSwgY29uc3Qgdm9pZCAqY2xpZW50SW5mbyk7Ci10eXBl
ZGVmIFdLVHlwZVJlZiAoKldLUGFnZUdldEluamVjdGVkQnVuZGxlSW5pdGlhbGl6YXRpb25Vc2Vy
RGF0YUNhbGxiYWNrKShXS1BhZ2VSZWYgcGFnZSwgY29uc3Qgdm9pZCAqY2xpZW50SW5mbyk7CiB0
eXBlZGVmIHZvaWQgKCpXS1BhZ2VEaWRSZWNlaXZlU3luY2hyb25vdXNNZXNzYWdlRnJvbUluamVj
dGVkQnVuZGxlV2l0aExpc3RlbmVyQ2FsbGJhY2spKFdLUGFnZVJlZiBwYWdlLCBXS1N0cmluZ1Jl
ZiBtZXNzYWdlTmFtZSwgV0tUeXBlUmVmIG1lc3NhZ2VCb2R5LCBXS01lc3NhZ2VMaXN0ZW5lclJl
ZiBsaXN0ZW5lciwgY29uc3Qgdm9pZCogY2xpZW50SW5mbyk7CiAKIHR5cGVkZWYgc3RydWN0IFdL
UGFnZUluamVjdGVkQnVuZGxlQ2xpZW50QmFzZSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9BUEkvQy9XS1ZpZGVvRnVsbHNjcmVlbk1hbmFnZXIuY3BwIGIvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvQVBJL0MvV0tWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyLmNwcApuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwLi5mZmRmZmQ0MDBkOTJlZTJjMTc4YTA4MTMyNjI5MzU4OGM2NmRiM2MyCi0tLSAvZGV2L251
bGwKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0MvV0tWaWRlb0Z1bGxzY3JlZW5N
YW5hZ2VyLmNwcApAQCAtMCwwICsxLDM1IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIwIEFw
cGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQg
dXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlm
aWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0
aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBt
dXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3Ry
aWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdo
dAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0
ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRX
QVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJ
UycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hB
TlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJ
U0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9S
UworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BF
Q0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMg
T1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUwor
ICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFC
SUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JU
IChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBX
QVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisg
KiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZp
Zy5oIgorI2luY2x1ZGUgIldLVmlkZW9GdWxsc2NyZWVuTWFuYWdlci5oIgorCisjaW5jbHVkZSAi
V0tBUElDYXN0LmgiCisjaW5jbHVkZSAiV2ViS2l0L1ZpZGVvRnVsbHNjcmVlbk1hbmFnZXJQcm94
eS5oIgorCit2b2lkIFdLVmlkZW9GdWxsc2NyZWVuTWFuYWdlclNldEluamVjdGVkQnVuZGxlQ2xp
ZW50KFdLVmlkZW9GdWxsc2NyZWVuTWFuYWdlclJlZiB2aWRlb0Z1bGxzY3JlZW5NYW5hZ2VyUmVm
LCBjb25zdCBXS1ZpZGVvRnVsbHNjcmVlbk1hbmFnZXJJbmplY3RlZEJ1bmRsZUNsaWVudEJhc2Uq
IHdrQ2xpZW50KQoreworICAgIFdlYktpdDo6dG9JbXBsKHZpZGVvRnVsbHNjcmVlbk1hbmFnZXJS
ZWYpLT5zZXRJbmplY3RlZEJ1bmRsZUNsaWVudCh3a0NsaWVudCk7Cit9CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQy9XS1ZpZGVvRnVsbHNjcmVlbk1hbmFnZXIuaCBi
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9DL1dLVmlkZW9GdWxsc2NyZWVuTWFuYWdlci5o
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAuLmIwMDAwMDQ1MjA4ZmQzYzM1MGEzODM5NTAwYjA1Yjk2MDMyMmQ2MmEKLS0t
IC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQy9XS1ZpZGVvRnVs
bHNjcmVlbk1hbmFnZXIuaApAQCAtMCwwICsxLDM4IEBACisvKgorICogQ29weXJpZ2h0IChDKSAy
MDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlv
biBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAq
IG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcg
Y29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2Ug
Y29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBS
ZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNv
cHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3Ro
ZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElT
IFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMg
YGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0Yg
TUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0Ug
QVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRS
SUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRB
TCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUg
R09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJ
TkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBP
RiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBP
UiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElO
IEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VE
IE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBv
bmNlCisKKyNpbmNsdWRlIDxXZWJLaXQvV0tWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VySW5qZWN0ZWRC
dW5kbGVDbGllbnQuaD4KKworI2lmZGVmIF9fY3BsdXNwbHVzCitleHRlcm4gIkMiIHsKKyNlbmRp
ZgorCitXS19FWFBPUlQgdm9pZCBXS1ZpZGVvRnVsbHNjcmVlbk1hbmFnZXJTZXRJbmplY3RlZEJ1
bmRsZUNsaWVudChXS1ZpZGVvRnVsbHNjcmVlbk1hbmFnZXJSZWYsIGNvbnN0IFdLVmlkZW9GdWxs
c2NyZWVuTWFuYWdlckluamVjdGVkQnVuZGxlQ2xpZW50QmFzZSogd2tDbGllbnQpOworCisjaWZk
ZWYgX19jcGx1c3BsdXMKK30KKyNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvQVBJL0MvV0tWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VySW5qZWN0ZWRCdW5kbGVDbGllbnQu
aCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9DL1dLVmlkZW9GdWxsc2NyZWVuTWFuYWdl
ckluamVjdGVkQnVuZGxlQ2xpZW50LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZGI3MjZkZTk1ZjQxZTVkMmM0Zjgz
YTRkMzM0YWFlZjBjYmYxMzc1MAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL0FQSS9DL1dLVmlkZW9GdWxsc2NyZWVuTWFuYWdlckluamVjdGVkQnVuZGxlQ2xpZW50
LmgKQEAgLTAsMCArMSw3OCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMCBBcHBsZSBJbmMu
IEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBz
b3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24s
IGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAq
IGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRh
aW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25z
IGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBw
cm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQ
Uk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICog
QU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElU
WSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVE
LiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJF
IExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVY
RU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJ
Q0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVS
UlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBX
SEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVE
SU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBP
RiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBP
U1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisjaW5jbHVk
ZSA8V2ViS2l0L1dLQmFzZS5oPgorI2luY2x1ZGUgPFdlYktpdC9XS0dlb21ldHJ5Lmg+CisKKyNp
ZmRlZiBfX2NwbHVzcGx1cworZXh0ZXJuICJDIiB7CisjZW5kaWYKKworZW51bSB7CisgICAgV0tW
aWRlb0Z1bGxzY3JlZW5Nb2RlTm9uZSA9IDAsCisgICAgV0tWaWRlb0Z1bGxzY3JlZW5Nb2RlU3Rh
bmRhcmQgPSAxIDw8IDAsCisgICAgV0tWaWRlb0Z1bGxzY3JlZW5Nb2RlUGljdHVyZUluUGljdHVy
ZSA9IDEgPDwgMSwKK307Cit0eXBlZGVmIHVpbnQzMl90IFdLVmlkZW9GdWxsc2NyZWVuTW9kZTsK
KwordHlwZWRlZiB2b2lkICgqV0tWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyU2V0SGFzVmlkZW8pKFdL
VmlkZW9GdWxsc2NyZWVuTWFuYWdlclJlZiBtYW5hZ2VyLCB1aW50NjRfdCBjb250ZXh0SWQsIGJv
b2wgaGFzVmlkZW8pOwordHlwZWRlZiB2b2lkICgqV0tWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyU2V0
VmlkZW9EaW1lbnNpb25zKShXS1ZpZGVvRnVsbHNjcmVlbk1hbmFnZXJSZWYgbWFuYWdlciwgdWlu
dDY0X3QgY29udGV4dElkLCBXS1NpemUgdmlkZW9EaW1lbnNpb25zKTsKK3R5cGVkZWYgdm9pZCAo
KldLVmlkZW9GdWxsc2NyZWVuTWFuYWdlclNldHVwRnVsbHNjcmVlbldpdGhJRCkoV0tWaWRlb0Z1
bGxzY3JlZW5NYW5hZ2VyUmVmIG1hbmFnZXIsIHVpbnQ2NF90IGNvbnRleHRJZCwgdWludDMyX3Qg
dmlkZW9MYXllcklELCBXS1JlY3QgaW5pdGlhbFJlY3QsIGZsb2F0IGhvc3RpbmdTY2FsZUZhY3Rv
ciwgV0tWaWRlb0Z1bGxzY3JlZW5Nb2RlIHZpZGVvRnVsbHNjcmVlbk1vZGUsIGJvb2wgYWxsb3dz
UGljdHVyZUluUGljdHVyZSwgYm9vbCBzdGFuZGJ5KTsKK3R5cGVkZWYgdm9pZCAoKldLVmlkZW9G
dWxsc2NyZWVuTWFuYWdlckVudGVyRnVsbHNjcmVlbikoV0tWaWRlb0Z1bGxzY3JlZW5NYW5hZ2Vy
UmVmIG1hbmFnZXIsIHVpbnQ2NF90IGNvbnRleHRJZCk7Cit0eXBlZGVmIHZvaWQgKCpXS1ZpZGVv
RnVsbHNjcmVlbk1hbmFnZXJFeGl0RnVsbHNjcmVlbikoV0tWaWRlb0Z1bGxzY3JlZW5NYW5hZ2Vy
UmVmIG1hbmFnZXIsIHVpbnQ2NF90IGNvbnRleHRJZCwgV0tSZWN0IGZpbmFsUmVjdCk7Cit0eXBl
ZGVmIHZvaWQgKCpXS1ZpZGVvRnVsbHNjcmVlbk1hbmFnZXJTZXRJbmxpbmVSZWN0KShXS1ZpZGVv
RnVsbHNjcmVlbk1hbmFnZXJSZWYgbWFuYWdlciwgdWludDY0X3QgY29udGV4dElkLCBXS1JlY3Qg
aW5saW5lUmVjdCwgYm9vbCB2aXNpYmxlKTsKK3R5cGVkZWYgdm9pZCAoKldLVmlkZW9GdWxsc2Ny
ZWVuTWFuYWdlclNldEhhc1ZpZGVvQ29udGVudExheWVyKShXS1ZpZGVvRnVsbHNjcmVlbk1hbmFn
ZXJSZWYgbWFuYWdlciwgdWludDY0X3QgY29udGV4dElkLCBib29sIHZhbHVlKTsKK3R5cGVkZWYg
dm9pZCAoKldLVmlkZW9GdWxsc2NyZWVuTWFuYWdlckNsZWFudXBGdWxsc2NyZWVuKShXS1ZpZGVv
RnVsbHNjcmVlbk1hbmFnZXJSZWYgbWFuYWdlciwgdWludDY0X3QgY29udGV4dElkKTsKK3R5cGVk
ZWYgdm9pZCAoKldLVmlkZW9GdWxsc2NyZWVuTWFuYWdlclByZXBhcmVkVG9SZXR1cm5Ub0lubGlu
ZSkoV0tWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyUmVmIG1hbmFnZXIsIHVpbnQ2NF90IGNvbnRleHRJ
ZCwgYm9vbCB2aXNpYmxlLCBXS1JlY3QgaW5saW5lUmVjdCk7Cit0eXBlZGVmIHZvaWQgKCpXS1Zp
ZGVvRnVsbHNjcmVlbk1hbmFnZXJQcmVwYXJlZFRvRXhpdEZ1bGxzY3JlZW4pKFdLVmlkZW9GdWxs
c2NyZWVuTWFuYWdlclJlZiBtYW5hZ2VyLCB1aW50NjRfdCBjb250ZXh0SWQpOwordHlwZWRlZiB2
b2lkICgqV0tWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyRXhpdEZ1bGxzY3JlZW5XaXRob3V0QW5pbWF0
aW9uVG9Nb2RlKShXS1ZpZGVvRnVsbHNjcmVlbk1hbmFnZXJSZWYgcGFnZSwgdWludDY0X3QgY29u
dGV4dElkLCBXS1ZpZGVvRnVsbHNjcmVlbk1vZGUgdmlkZW9GdWxsc2NyZWVuTW9kZSk7CisKK3R5
cGVkZWYgc3RydWN0IFdLVmlkZW9GdWxsc2NyZWVuTWFuYWdlckluamVjdGVkQnVuZGxlQ2xpZW50
QmFzZSB7CisgICAgaW50ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIHZlcnNpb247CisgICAgY29uc3Qgdm9pZCAqICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsaWVudEluZm87Cit9IFdL
VmlkZW9GdWxsc2NyZWVuTWFuYWdlckluamVjdGVkQnVuZGxlQ2xpZW50QmFzZTsKKwordHlwZWRl
ZiBzdHJ1Y3QgV0tWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VySW5qZWN0ZWRCdW5kbGVDbGllbnRWMCB7
CisgICAgV0tWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VySW5qZWN0ZWRCdW5kbGVDbGllbnRCYXNlICAg
ICAgICAgICAgICAgIGJhc2U7CisKKyAgICAvLyBWZXJzaW9uIDAuCisgICAgV0tWaWRlb0Z1bGxz
Y3JlZW5NYW5hZ2VyU2V0SGFzVmlkZW8gICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNldEhh
c1ZpZGVvOworICAgIFdLVmlkZW9GdWxsc2NyZWVuTWFuYWdlclNldFZpZGVvRGltZW5zaW9ucyAg
ICAgICAgICAgICAgICAgICAgICBzZXRWaWRlb0RpbWVuc2lvbnM7CisgICAgV0tWaWRlb0Z1bGxz
Y3JlZW5NYW5hZ2VyU2V0dXBGdWxsc2NyZWVuV2l0aElEICAgICAgICAgICAgICAgICAgIHNldHVw
RnVsbHNjcmVlbldpdGhJRDsKKyAgICBXS1ZpZGVvRnVsbHNjcmVlbk1hbmFnZXJFbnRlckZ1bGxz
Y3JlZW4gICAgICAgICAgICAgICAgICAgICAgICAgZW50ZXJGdWxsc2NyZWVuOworICAgIFdLVmlk
ZW9GdWxsc2NyZWVuTWFuYWdlckV4aXRGdWxsc2NyZWVuICAgICAgICAgICAgICAgICAgICAgICAg
ICBleGl0RnVsbHNjcmVlbjsKKyAgICBXS1ZpZGVvRnVsbHNjcmVlbk1hbmFnZXJTZXRJbmxpbmVS
ZWN0ICAgICAgICAgICAgICAgICAgICAgICAgICAgc2V0SW5saW5lUmVjdDsKKyAgICBXS1ZpZGVv
RnVsbHNjcmVlbk1hbmFnZXJTZXRIYXNWaWRlb0NvbnRlbnRMYXllciAgICAgICAgICAgICAgICAg
c2V0SGFzVmlkZW9Db250ZW50TGF5ZXI7CisgICAgV0tWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyQ2xl
YW51cEZ1bGxzY3JlZW4gICAgICAgICAgICAgICAgICAgICAgIGNsZWFudXBGdWxsc2NyZWVuOwor
ICAgIFdLVmlkZW9GdWxsc2NyZWVuTWFuYWdlclByZXBhcmVkVG9SZXR1cm5Ub0lubGluZSAgICAg
ICAgICAgICAgICBwcmVwYXJlZFRvUmV0dXJuVG9JbmxpbmU7CisgICAgV0tWaWRlb0Z1bGxzY3Jl
ZW5NYW5hZ2VyUHJlcGFyZWRUb0V4aXRGdWxsc2NyZWVuICAgICAgICAgICAgICAgIHByZXBhcmVk
VG9FeGl0RnVsbHNjcmVlbjsKKyAgICBXS1ZpZGVvRnVsbHNjcmVlbk1hbmFnZXJFeGl0RnVsbHNj
cmVlbldpdGhvdXRBbmltYXRpb25Ub01vZGUgICAgZXhpdEZ1bGxzY3JlZW5XaXRob3V0QW5pbWF0
aW9uVG9Nb2RlOworfSBXS1ZpZGVvRnVsbHNjcmVlbk1hbmFnZXJJbmplY3RlZEJ1bmRsZUNsaWVu
dFYwOworCisjaWZkZWYgX19jcGx1c3BsdXMKK30KKyNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlldy5tbSBiL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXcubW0KaW5kZXggMmQzYTc5MDQzNDQ3ZTdkZmVi
NGE1OGQzNjk1YjU1YTVkOTFmYWE2NS4uODg3MzA5YWZiMzk3YTg5ZTZlMTU1ZTJlNDUwYmFlMmRk
MDQ4NzA2MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dL
V2ViVmlldy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJW
aWV3Lm1tCkBAIC0xMzI3LDYgKzEzMjcsMTMgQEAgLSAoTmFrZWRQdHI8V2ViS2l0OjpXZWJQYWdl
UHJveHk+KV9wYWdlCiAgICAgcmV0dXJuIF9wYWdlLmdldCgpOwogfQogCisjaWYgRU5BQkxFKFZJ
REVPX1BSRVNFTlRBVElPTl9NT0RFKQorLSAoV0tWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyUmVmKV92
aWRlb0Z1bGxzY3JlZW5NYW5hZ2VyRm9yVGVzdGluZworeworICAgIHJldHVybiB0b0FQSShfcGFn
ZS0+dmlkZW9GdWxsc2NyZWVuTWFuYWdlcigpKTsKK30KKyNlbmRpZgorCiAtIChpZCA8V0tVUkxT
Y2hlbWVIYW5kbGVyPil1cmxTY2hlbWVIYW5kbGVyRm9yVVJMU2NoZW1lOihOU1N0cmluZyAqKXVy
bFNjaGVtZQogewogICAgIGF1dG8qIGhhbmRsZXIgPSBzdGF0aWNfY2FzdDxXZWJLaXQ6OldlYlVS
TFNjaGVtZUhhbmRsZXJDb2NvYSo+KF9wYWdlLT51cmxTY2hlbWVIYW5kbGVyRm9yU2NoZW1lKHVy
bFNjaGVtZSkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29h
L1dLV2ViVmlld0ludGVybmFsLmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2Ev
V0tXZWJWaWV3SW50ZXJuYWwuaAppbmRleCA4NDBlM2I5MmJkMWUyYTU4MDE5OGZkYTk1MzFkNjQz
NDIwOGE5MjU0Li40NzE4MzQzMWE1ZDRlMTdkZmZkOGEzMmQ0MWFhY2RiNWQwODUzM2QxIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3SW50ZXJu
YWwuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3SW50
ZXJuYWwuaApAQCAtMjYxLDYgKzI2MSw3IEBAIGNsYXNzIFZpZXdHZXN0dXJlQ29udHJvbGxlcjsK
IAogLSAoV0tQYWdlUmVmKV9wYWdlRm9yVGVzdGluZzsKIC0gKE5ha2VkUHRyPFdlYktpdDo6V2Vi
UGFnZVByb3h5PilfcGFnZTsKKy0gKFdLVmlkZW9GdWxsc2NyZWVuTWFuYWdlclJlZilfdmlkZW9G
dWxsc2NyZWVuTWFuYWdlckZvclRlc3Rpbmc7CiAKIEBlbmQKIApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvVmlkZW9GdWxsc2NyZWVuTWFuYWdlckluamVjdGVkQnVu
ZGxlQ2xpZW50LmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1ZpZGVvRnVsbHNj
cmVlbk1hbmFnZXJJbmplY3RlZEJ1bmRsZUNsaWVudC5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMDhhNTQxYjIz
OTM0YTdhODZjZjhkNTNhZDJlY2UwN2MyZTY1NzNlMwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1ZpZGVvRnVsbHNjcmVlbk1hbmFnZXJJbmplY3RlZEJ1
bmRsZUNsaWVudC5jcHAKQEAgLTAsMCArMSwxMDcgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIw
MjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9u
IGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICog
bW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBj
b25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBj
b2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJl
ZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29w
eXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhl
ciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMg
U09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBg
YEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBN
RVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBB
UkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJ
QlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFM
LCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBH
T09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lO
RVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9G
IExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9S
IFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4g
QU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQg
T0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAi
Y29uZmlnLmgiCisjaW5jbHVkZSAiVmlkZW9GdWxsc2NyZWVuTWFuYWdlckluamVjdGVkQnVuZGxl
Q2xpZW50LmgiCisKKyNpZiBFTkFCTEUoVklERU9fUFJFU0VOVEFUSU9OX01PREUpCisKKyNpbmNs
dWRlIDxXZWJDb3JlL0Zsb2F0U2l6ZS5oPgorI2luY2x1ZGUgPFdlYkNvcmUvSW50UmVjdC5oPgor
CituYW1lc3BhY2UgV2ViS2l0IHsKK3VzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOworCit2b2lkIFZp
ZGVvRnVsbHNjcmVlbk1hbmFnZXJJbmplY3RlZEJ1bmRsZUNsaWVudDo6c2V0SGFzVmlkZW8oVmlk
ZW9GdWxsc2NyZWVuTWFuYWdlclByb3h5KiwgdWludDY0X3QgY29udGV4dElkLCBib29sIGhhc1Zp
ZGVvKQoreworICAgIGlmICghbV9jbGllbnQuc2V0SGFzVmlkZW8pCisgICAgICAgIHJldHVybjsK
K30KKwordm9pZCBWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VySW5qZWN0ZWRCdW5kbGVDbGllbnQ6OnNl
dFZpZGVvRGltZW5zaW9ucyhWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyUHJveHkqLCB1aW50NjRfdCBj
b250ZXh0SWQsIFdlYkNvcmU6OkZsb2F0U2l6ZSB2aWRlb0RpbWVuc2lvbnMpCit7CisgICAgaWYg
KCFtX2NsaWVudC5zZXRWaWRlb0RpbWVuc2lvbnMpCisgICAgICAgIHJldHVybjsKK30KKwordm9p
ZCBWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VySW5qZWN0ZWRCdW5kbGVDbGllbnQ6OnNldHVwRnVsbHNj
cmVlbldpdGhJRChWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyUHJveHkqLCB1aW50NjRfdCBjb250ZXh0
SWQsIHVpbnQzMl90IHZpZGVvTGF5ZXJJRCwgV2ViQ29yZTo6SW50UmVjdCBpbml0aWFsUmVjdCwg
ZmxvYXQgaG9zdGluZ1NjYWxlRmFjdG9yLCBXZWJDb3JlOjpIVE1MTWVkaWFFbGVtZW50RW51bXM6
OlZpZGVvRnVsbHNjcmVlbk1vZGUsIGJvb2wgYWxsb3dzUGljdHVyZUluUGljdHVyZSwgYm9vbCBz
dGFuZGJ5KQoreworICAgIGlmICghbV9jbGllbnQuc2V0dXBGdWxsc2NyZWVuV2l0aElEKQorICAg
ICAgICByZXR1cm47Cit9CisKK3ZvaWQgVmlkZW9GdWxsc2NyZWVuTWFuYWdlckluamVjdGVkQnVu
ZGxlQ2xpZW50OjplbnRlckZ1bGxzY3JlZW4oVmlkZW9GdWxsc2NyZWVuTWFuYWdlclByb3h5Kiwg
dWludDY0X3QgY29udGV4dElkKQoreworICAgIGlmICghbV9jbGllbnQuZW50ZXJGdWxsc2NyZWVu
KQorICAgICAgICByZXR1cm47Cit9CisKK3ZvaWQgVmlkZW9GdWxsc2NyZWVuTWFuYWdlckluamVj
dGVkQnVuZGxlQ2xpZW50OjpleGl0RnVsbHNjcmVlbihWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyUHJv
eHkqLCB1aW50NjRfdCBjb250ZXh0SWQsIFdlYkNvcmU6OkludFJlY3QgZmluYWxSZWN0KQorewor
ICAgIGlmICghbV9jbGllbnQuZXhpdEZ1bGxzY3JlZW4pCisgICAgICAgIHJldHVybjsKK30KKwor
dm9pZCBWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VySW5qZWN0ZWRCdW5kbGVDbGllbnQ6OnNldElubGlu
ZVJlY3QoVmlkZW9GdWxsc2NyZWVuTWFuYWdlclByb3h5KiwgdWludDY0X3QgY29udGV4dElkLCBX
ZWJDb3JlOjpJbnRSZWN0IGlubGluZVJlY3QsIGJvb2wgdmlzaWJsZSkKK3sKKyAgICBpZiAoIW1f
Y2xpZW50LnNldElubGluZVJlY3QpCisgICAgICAgIHJldHVybjsKK30KKwordm9pZCBWaWRlb0Z1
bGxzY3JlZW5NYW5hZ2VySW5qZWN0ZWRCdW5kbGVDbGllbnQ6OnNldEhhc1ZpZGVvQ29udGVudExh
eWVyKFZpZGVvRnVsbHNjcmVlbk1hbmFnZXJQcm94eSosIHVpbnQ2NF90IGNvbnRleHRJZCwgYm9v
bCB2YWx1ZSkKK3sKKyAgICBpZiAoIW1fY2xpZW50LnNldEhhc1ZpZGVvQ29udGVudExheWVyKQor
ICAgICAgICByZXR1cm47Cit9CisKK3ZvaWQgVmlkZW9GdWxsc2NyZWVuTWFuYWdlckluamVjdGVk
QnVuZGxlQ2xpZW50OjpjbGVhbnVwRnVsbHNjcmVlbihWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyUHJv
eHkqLCB1aW50NjRfdCBjb250ZXh0SWQpCit7CisgICAgaWYgKCFtX2NsaWVudC5jbGVhbnVwRnVs
bHNjcmVlbikKKyAgICAgICAgcmV0dXJuOworfQorCit2b2lkIFZpZGVvRnVsbHNjcmVlbk1hbmFn
ZXJJbmplY3RlZEJ1bmRsZUNsaWVudDo6cHJlcGFyZWRUb1JldHVyblRvSW5saW5lKFZpZGVvRnVs
bHNjcmVlbk1hbmFnZXJQcm94eSosIHVpbnQ2NF90IGNvbnRleHRJZCwgYm9vbCB2aXNpYmxlLCBX
ZWJDb3JlOjpJbnRSZWN0IGlubGluZVJlY3QpCit7CisgICAgaWYgKCFtX2NsaWVudC5wcmVwYXJl
ZFRvUmV0dXJuVG9JbmxpbmUpCisgICAgICAgIHJldHVybjsKK30KKwordm9pZCBWaWRlb0Z1bGxz
Y3JlZW5NYW5hZ2VySW5qZWN0ZWRCdW5kbGVDbGllbnQ6OnByZXBhcmVkVG9FeGl0RnVsbHNjcmVl
bihWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyUHJveHkqLCB1aW50NjRfdCBjb250ZXh0SWQpCit7Cisg
ICAgaWYgKCFtX2NsaWVudC5wcmVwYXJlZFRvRXhpdEZ1bGxzY3JlZW4pCisgICAgICAgIHJldHVy
bjsKK30KKworI2lmIFBMQVRGT1JNKE1BQykgJiYgRU5BQkxFKFZJREVPX1BSRVNFTlRBVElPTl9N
T0RFKQordm9pZCBWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VySW5qZWN0ZWRCdW5kbGVDbGllbnQ6OmV4
aXRGdWxsc2NyZWVuV2l0aG91dEFuaW1hdGlvblRvTW9kZShWaWRlb0Z1bGxzY3JlZW5NYW5hZ2Vy
UHJveHkqLCB1aW50NjRfdCBjb250ZXh0SWQsIFdlYkNvcmU6OkhUTUxNZWRpYUVsZW1lbnRFbnVt
czo6VmlkZW9GdWxsc2NyZWVuTW9kZSkKK3sKKyAgICBpZiAoIW1fY2xpZW50LmV4aXRGdWxsc2Ny
ZWVuV2l0aG91dEFuaW1hdGlvblRvTW9kZSkKKyAgICAgICAgcmV0dXJuOworfQorI2VuZGlmCisK
K30gLy8gbmFtZXNwYWNlIFdlYktpdAorCisjZW5kaWYgLy8gRU5BQkxFKFZJREVPX1BSRVNFTlRB
VElPTl9NT0RFKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvVmlk
ZW9GdWxsc2NyZWVuTWFuYWdlckluamVjdGVkQnVuZGxlQ2xpZW50LmggYi9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9Db2NvYS9WaWRlb0Z1bGxzY3JlZW5NYW5hZ2VySW5qZWN0ZWRCdW5kbGVDbGll
bnQuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi5lNTNkMTBhYTEwNTJjYjNkYzE2NTdjYjZjZTFmMGI0NmI5NzI1OWFj
Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvVmlkZW9G
dWxsc2NyZWVuTWFuYWdlckluamVjdGVkQnVuZGxlQ2xpZW50LmgKQEAgLTAsMCArMSw3MCBAQAor
LyoKKyAqIENvcHlyaWdodCAoQykgMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQu
CisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jt
cywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlk
ZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRp
c3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdo
dAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3Qg
cmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRv
Y3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0
cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMu
IEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElN
UExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUg
SU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQ
QVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBB
UFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVD
VCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNF
UVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVN
RU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFU
QSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVT
RUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFD
VCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RI
RVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09G
VFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFN
QUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisjaWYgRU5BQkxFKFZJREVPX1BSRVNFTlRBVElP
Tl9NT0RFKQorCisjaW5jbHVkZSAiQVBJQ2xpZW50LmgiCisjaW5jbHVkZSAiV0tWaWRlb0Z1bGxz
Y3JlZW5NYW5hZ2VySW5qZWN0ZWRCdW5kbGVDbGllbnQuaCIKKyNpbmNsdWRlIDxXZWJDb3JlL0hU
TUxNZWRpYUVsZW1lbnRFbnVtcy5oPgorI2luY2x1ZGUgPHd0Zi9Gb3J3YXJkLmg+CisKK25hbWVz
cGFjZSBBUEkgewordGVtcGxhdGU8PiBzdHJ1Y3QgQ2xpZW50VHJhaXRzPFdLVmlkZW9GdWxsc2Ny
ZWVuTWFuYWdlckluamVjdGVkQnVuZGxlQ2xpZW50QmFzZT4geworICAgIHR5cGVkZWYgc3RkOjp0
dXBsZTxXS1ZpZGVvRnVsbHNjcmVlbk1hbmFnZXJJbmplY3RlZEJ1bmRsZUNsaWVudFYwPiBWZXJz
aW9uczsKK307Cit9CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKK2NsYXNzIEZsb2F0U2l6ZTsKK2Ns
YXNzIEludFJlY3Q7Cit9CisKK25hbWVzcGFjZSBXZWJLaXQgeworCitjbGFzcyBWaWRlb0Z1bGxz
Y3JlZW5NYW5hZ2VyUHJveHk7CisKK2NsYXNzIFZpZGVvRnVsbHNjcmVlbk1hbmFnZXJJbmplY3Rl
ZEJ1bmRsZUNsaWVudCA6IHB1YmxpYyBBUEk6OkNsaWVudDxXS1ZpZGVvRnVsbHNjcmVlbk1hbmFn
ZXJJbmplY3RlZEJ1bmRsZUNsaWVudEJhc2U+IHsKKyAgICBXVEZfTUFLRV9GQVNUX0FMTE9DQVRF
RDsKK3B1YmxpYzoKKyAgICB2b2lkIHNldEhhc1ZpZGVvKFZpZGVvRnVsbHNjcmVlbk1hbmFnZXJQ
cm94eSosIHVpbnQ2NF90IGNvbnRleHRJZCwgYm9vbCBoYXNWaWRlbyk7CisgICAgdm9pZCBzZXRW
aWRlb0RpbWVuc2lvbnMoVmlkZW9GdWxsc2NyZWVuTWFuYWdlclByb3h5KiwgdWludDY0X3QgY29u
dGV4dElkLCBXZWJDb3JlOjpGbG9hdFNpemUgdmlkZW9EaW1lbnNpb25zKTsKKyAgICB2b2lkIHNl
dHVwRnVsbHNjcmVlbldpdGhJRChWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyUHJveHkqLCB1aW50NjRf
dCBjb250ZXh0SWQsIHVpbnQzMl90IHZpZGVvTGF5ZXJJRCwgV2ViQ29yZTo6SW50UmVjdCBpbml0
aWFsUmVjdCwgZmxvYXQgaG9zdGluZ1NjYWxlRmFjdG9yLCBXZWJDb3JlOjpIVE1MTWVkaWFFbGVt
ZW50RW51bXM6OlZpZGVvRnVsbHNjcmVlbk1vZGUsIGJvb2wgYWxsb3dzUGljdHVyZUluUGljdHVy
ZSwgYm9vbCBzdGFuZGJ5KTsKKyAgICB2b2lkIGVudGVyRnVsbHNjcmVlbihWaWRlb0Z1bGxzY3Jl
ZW5NYW5hZ2VyUHJveHkqLCB1aW50NjRfdCBjb250ZXh0SWQpOworICAgIHZvaWQgZXhpdEZ1bGxz
Y3JlZW4oVmlkZW9GdWxsc2NyZWVuTWFuYWdlclByb3h5KiwgdWludDY0X3QgY29udGV4dElkLCBX
ZWJDb3JlOjpJbnRSZWN0IGZpbmFsUmVjdCk7CisgICAgdm9pZCBzZXRJbmxpbmVSZWN0KFZpZGVv
RnVsbHNjcmVlbk1hbmFnZXJQcm94eSosIHVpbnQ2NF90IGNvbnRleHRJZCwgV2ViQ29yZTo6SW50
UmVjdCBpbmxpbmVSZWN0LCBib29sIHZpc2libGUpOworICAgIHZvaWQgc2V0SGFzVmlkZW9Db250
ZW50TGF5ZXIoVmlkZW9GdWxsc2NyZWVuTWFuYWdlclByb3h5KiwgdWludDY0X3QgY29udGV4dElk
LCBib29sIHZhbHVlKTsKKyAgICB2b2lkIGNsZWFudXBGdWxsc2NyZWVuKFZpZGVvRnVsbHNjcmVl
bk1hbmFnZXJQcm94eSosIHVpbnQ2NF90IGNvbnRleHRJZCk7CisgICAgdm9pZCBwcmVwYXJlZFRv
UmV0dXJuVG9JbmxpbmUoVmlkZW9GdWxsc2NyZWVuTWFuYWdlclByb3h5KiwgdWludDY0X3QgY29u
dGV4dElkLCBib29sIHZpc2libGUsIFdlYkNvcmU6OkludFJlY3QgaW5saW5lUmVjdCk7CisgICAg
dm9pZCBwcmVwYXJlZFRvRXhpdEZ1bGxzY3JlZW4oVmlkZW9GdWxsc2NyZWVuTWFuYWdlclByb3h5
KiwgdWludDY0X3QgY29udGV4dElkKTsKKyNpZiBQTEFURk9STShNQUMpICYmIEVOQUJMRShWSURF
T19QUkVTRU5UQVRJT05fTU9ERSkKKyAgICB2b2lkIGV4aXRGdWxsc2NyZWVuV2l0aG91dEFuaW1h
dGlvblRvTW9kZShWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyUHJveHkqLCB1aW50NjRfdCBjb250ZXh0
SWQsIFdlYkNvcmU6OkhUTUxNZWRpYUVsZW1lbnRFbnVtczo6VmlkZW9GdWxsc2NyZWVuTW9kZSk7
CisjZW5kaWYKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdAorCisjZW5kaWYgLy8gRU5BQkxF
KFZJREVPX1BSRVNFTlRBVElPTl9NT0RFKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvQ29jb2EvVmlkZW9GdWxsc2NyZWVuTWFuYWdlclByb3h5LmggYi9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9Db2NvYS9WaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyUHJveHkuaAppbmRleCA0ZGZj
OWYxMDVhMmYzMGQ2MzQzZmFlYTdmNjc2OWFlYzM1ZGQyNzkxLi5jMTU0YmFhYzBhZjJkNWMxNjE0
Mzg5MzU1NWJkYzUzNzFhNjNkMzk4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9Db2NvYS9WaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyUHJveHkuaAorKysgYi9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9Db2NvYS9WaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyUHJveHkuaApAQCAtMjcsNyAr
MjcsOSBAQAogCiAjaWYgRU5BQkxFKFZJREVPX1BSRVNFTlRBVElPTl9NT0RFKQogCisjaW5jbHVk
ZSAiQVBJT2JqZWN0LmgiCiAjaW5jbHVkZSAiTWVzc2FnZVJlY2VpdmVyLmgiCisjaW5jbHVkZSAi
VmlkZW9GdWxsc2NyZWVuTWFuYWdlckluamVjdGVkQnVuZGxlQ2xpZW50LmgiCiAjaW5jbHVkZSA8
V2ViQ29yZS9BdWRpb1Nlc3Npb24uaD4KICNpbmNsdWRlIDxXZWJDb3JlL0dyYXBoaWNzTGF5ZXIu
aD4KICNpbmNsdWRlIDxXZWJDb3JlL1BsYXRmb3JtVmlldy5oPgpAQCAtNTMsMTAgKzU1LDEwIEBA
IHR5cGVkZWYgV2ViQ29yZTo6VmlkZW9GdWxsc2NyZWVuSW50ZXJmYWNlTWFjIFBsYXRmb3JtVmlk
ZW9GdWxsc2NyZWVuSW50ZXJmYWNlOwogCiBuYW1lc3BhY2UgV2ViS2l0IHsKIAotY2xhc3MgV2Vi
UGFnZVByb3h5OwogY2xhc3MgUGxheWJhY2tTZXNzaW9uTWFuYWdlclByb3h5OwogY2xhc3MgUGxh
eWJhY2tTZXNzaW9uTW9kZWxDb250ZXh0OwogY2xhc3MgVmlkZW9GdWxsc2NyZWVuTWFuYWdlclBy
b3h5OworY2xhc3MgV2ViUGFnZVByb3h5OwogCiBjbGFzcyBWaWRlb0Z1bGxzY3JlZW5Nb2RlbENv
bnRleHQgZmluYWwKICAgICA6IHB1YmxpYyBSZWZDb3VudGVkPFZpZGVvRnVsbHNjcmVlbk1vZGVs
Q29udGV4dD4KQEAgLTExNyw3ICsxMTksOSBAQCBwcml2YXRlOgogICAgIGJvb2wgbV9oYXNWaWRl
byB7IGZhbHNlIH07CiB9OwogCi1jbGFzcyBWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyUHJveHkgOiBw
dWJsaWMgUmVmQ291bnRlZDxWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyUHJveHk+LCBwcml2YXRlIElQ
Qzo6TWVzc2FnZVJlY2VpdmVyIHsKK2NsYXNzIFZpZGVvRnVsbHNjcmVlbk1hbmFnZXJQcm94eSA6
CisgICAgcHVibGljIEFQSTo6T2JqZWN0SW1wbDxBUEk6Ok9iamVjdDo6VHlwZTo6VmlkZW9GdWxs
c2NyZWVuTWFuYWdlcj4sCisgICAgcHJpdmF0ZSBJUEM6Ok1lc3NhZ2VSZWNlaXZlciB7CiBwdWJs
aWM6CiAgICAgc3RhdGljIFJlZjxWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyUHJveHk+IGNyZWF0ZShX
ZWJQYWdlUHJveHkmLCBQbGF5YmFja1Nlc3Npb25NYW5hZ2VyUHJveHkmKTsKICAgICB2aXJ0dWFs
IH5WaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyUHJveHkoKTsKQEAgLTEzMiwxNCArMTM2LDE0IEBAIHB1
YmxpYzoKIAogICAgIHZvaWQgcmVxdWVzdFJvdXRlU2hhcmluZ1BvbGljeUFuZENvbnRleHRVSUQo
dWludDY0X3QgY29udGV4dElkLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFdlYkNvcmU6OlJvdXRl
U2hhcmluZ1BvbGljeSwgU3RyaW5nKT4mJik7CiAKLSNpZiBFTkFCTEUoVklERU9fUFJFU0VOVEFU
SU9OX01PREUpCiAgICAgYm9vbCBpc1BsYXlpbmdWaWRlb0luRW5oYW5jZWRGdWxsc2NyZWVuKCkg
Y29uc3Q7Ci0jZW5kaWYKIAogICAgIFBsYXRmb3JtVmlkZW9GdWxsc2NyZWVuSW50ZXJmYWNlKiBj
b250cm9sc01hbmFnZXJJbnRlcmZhY2UoKTsKIAogICAgIHZvaWQgZm9yRWFjaFNlc3Npb24oRnVu
Y3Rpb248dm9pZChXZWJDb3JlOjpWaWRlb0Z1bGxzY3JlZW5Nb2RlbCYsIFBsYXRmb3JtVmlkZW9G
dWxsc2NyZWVuSW50ZXJmYWNlJik+JiYpOwogCisgICAgdm9pZCBzZXRJbmplY3RlZEJ1bmRsZUNs
aWVudChjb25zdCBXS1ZpZGVvRnVsbHNjcmVlbk1hbmFnZXJJbmplY3RlZEJ1bmRsZUNsaWVudEJh
c2UqKTsKKwogcHJpdmF0ZToKICAgICBmcmllbmQgY2xhc3MgVmlkZW9GdWxsc2NyZWVuTW9kZWxD
b250ZXh0OwogCkBAIC0xODksNiArMTkzLDggQEAgcHJpdmF0ZToKICAgICBIYXNoTWFwPHVpbnQ2
NF90LCBNb2RlbEludGVyZmFjZVR1cGxlPiBtX2NvbnRleHRNYXA7CiAgICAgdWludDY0X3QgbV9j
b250cm9sc01hbmFnZXJDb250ZXh0SWQgeyAwIH07CiAgICAgSGFzaE1hcDx1aW50NjRfdCwgaW50
PiBtX2NsaWVudENvdW50czsKKworICAgIHN0ZDo6dW5pcXVlX3B0cjxWaWRlb0Z1bGxzY3JlZW5N
YW5hZ2VySW5qZWN0ZWRCdW5kbGVDbGllbnQ+IG1faW5qZWN0ZWRCdW5kbGVDbGllbnQ7CiB9Owog
CiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL0NvY29hL1ZpZGVvRnVsbHNjcmVlbk1hbmFnZXJQcm94eS5tbSBiL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL0NvY29hL1ZpZGVvRnVsbHNjcmVlbk1hbmFnZXJQcm94eS5tbQppbmRleCAzMTYx
ZDliZDg5NTVmOTFjNTBmM2YyZjRhYTQ5OGE1MDE1OTNjMmY2Li5iNjljMzY4NTI4ZmI4N2VjYWI3
ZmZlYzJkMjIyMDBjNjljYzMxZDViIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9Db2NvYS9WaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyUHJveHkubW0KKysrIGIvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvQ29jb2EvVmlkZW9GdWxsc2NyZWVuTWFuYWdlclByb3h5Lm1tCkBAIC0zMyw2
ICszMyw3IEBACiAjaW1wb3J0ICJQbGF5YmFja1Nlc3Npb25NYW5hZ2VyUHJveHkuaCIKICNpbXBv
cnQgIlZpZGVvRnVsbHNjcmVlbk1hbmFnZXJNZXNzYWdlcy5oIgogI2ltcG9ydCAiVmlkZW9GdWxs
c2NyZWVuTWFuYWdlclByb3h5TWVzc2FnZXMuaCIKKyNpbXBvcnQgIldLVmlkZW9GdWxsc2NyZWVu
TWFuYWdlckluamVjdGVkQnVuZGxlQ2xpZW50LmgiCiAjaW1wb3J0ICJXZWJQYWdlUHJveHkuaCIK
ICNpbXBvcnQgIldlYlByb2Nlc3NQcm94eS5oIgogI2ltcG9ydCA8UXVhcnR6Q29yZS9Db3JlQW5p
bWF0aW9uLmg+CkBAIC0zMzYsNiArMzM3LDE3IEBAIFZpZGVvRnVsbHNjcmVlbk1hbmFnZXJQcm94
eTo6flZpZGVvRnVsbHNjcmVlbk1hbmFnZXJQcm94eSgpCiAgICAgaW52YWxpZGF0ZSgpOwogfQog
Cit2b2lkIFZpZGVvRnVsbHNjcmVlbk1hbmFnZXJQcm94eTo6c2V0SW5qZWN0ZWRCdW5kbGVDbGll
bnQoY29uc3QgV0tWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VySW5qZWN0ZWRCdW5kbGVDbGllbnRCYXNl
KiBjbGllbnQpCit7CisgICAgaWYgKCFjbGllbnQpIHsKKyAgICAgICAgbV9pbmplY3RlZEJ1bmRs
ZUNsaWVudCA9IG51bGxwdHI7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICBtX2luamVj
dGVkQnVuZGxlQ2xpZW50ID0gbWFrZVVuaXF1ZTxWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VySW5qZWN0
ZWRCdW5kbGVDbGllbnQ+KCk7CisgICAgbV9pbmplY3RlZEJ1bmRsZUNsaWVudC0+aW5pdGlhbGl6
ZShjbGllbnQpOworfQorCiB2b2lkIFZpZGVvRnVsbHNjcmVlbk1hbmFnZXJQcm94eTo6aW52YWxp
ZGF0ZSgpCiB7CiAgICAgbV9wYWdlLT5wcm9jZXNzKCkucmVtb3ZlTWVzc2FnZVJlY2VpdmVyKE1l
c3NhZ2VzOjpWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyUHJveHk6Om1lc3NhZ2VSZWNlaXZlck5hbWUo
KSwgbV9wYWdlLT53ZWJQYWdlSUQoKSk7CkBAIC0zNzUsNyArMzg3LDYgQEAgYm9vbCBWaWRlb0Z1
bGxzY3JlZW5NYW5hZ2VyUHJveHk6Om1heUF1dG9tYXRpY2FsbHlTaG93VmlkZW9QaWN0dXJlSW5Q
aWN0dXJlKCkgY28KICAgICByZXR1cm4gZmFsc2U7CiB9CiAKLSNpZiBFTkFCTEUoVklERU9fUFJF
U0VOVEFUSU9OX01PREUpCiBib29sIFZpZGVvRnVsbHNjcmVlbk1hbmFnZXJQcm94eTo6aXNQbGF5
aW5nVmlkZW9JbkVuaGFuY2VkRnVsbHNjcmVlbigpIGNvbnN0CiB7CiAgICAgZm9yIChhdXRvJiBb
bW9kZWwsIGludGVyZmFjZV0gOiBtX2NvbnRleHRNYXAudmFsdWVzKCkpIHsKQEAgLTM4NSw3ICsz
OTYsNiBAQCBib29sIFZpZGVvRnVsbHNjcmVlbk1hbmFnZXJQcm94eTo6aXNQbGF5aW5nVmlkZW9J
bkVuaGFuY2VkRnVsbHNjcmVlbigpIGNvbnN0CiAgICAgCiAgICAgcmV0dXJuIGZhbHNlOwogfQot
I2VuZGlmCiAKIFBsYXRmb3JtVmlkZW9GdWxsc2NyZWVuSW50ZXJmYWNlKiBWaWRlb0Z1bGxzY3Jl
ZW5NYW5hZ2VyUHJveHk6OmNvbnRyb2xzTWFuYWdlckludGVyZmFjZSgpCiB7CkBAIC00OTMsNiAr
NTAzLDE1IEBAIHZvaWQgVmlkZW9GdWxsc2NyZWVuTWFuYWdlclByb3h5OjpzZXR1cEZ1bGxzY3Jl
ZW5XaXRoSUQodWludDY0X3QgY29udGV4dElkLCB1aW50CiB7CiAgICAgTUVTU0FHRV9DSEVDS19D
T05URVhUSUQoY29udGV4dElkKTsKICAgICBNRVNTQUdFX0NIRUNLKHZpZGVvTGF5ZXJJRCk7Cisg
ICAgaWYgKG1faW5qZWN0ZWRCdW5kbGVDbGllbnQpIHsKKyAgICAgICAgbV9pbmplY3RlZEJ1bmRs
ZUNsaWVudC0+c2V0dXBGdWxsc2NyZWVuV2l0aElEKHRoaXMsIGNvbnRleHRJZCwgdmlkZW9MYXll
cklELCBpbml0aWFsUmVjdCwgaG9zdGluZ0RldmljZVNjYWxlRmFjdG9yLCB2aWRlb0Z1bGxzY3Jl
ZW5Nb2RlLCBhbGxvd3NQaWN0dXJlSW5QaWN0dXJlLCBzdGFuZGJ5KTsKKyNpZiBQTEFURk9STShJ
T1NfRkFNSUxZKQorICAgICAgICByZXF1ZXN0VmlkZW9Db250ZW50TGF5ZXIoY29udGV4dElkKTsK
KyNlbHNlCisgICAgICAgIGRpZFNldHVwRnVsbHNjcmVlbihjb250ZXh0SWQpOworI2VuZGlmCisg
ICAgICAgIHJldHVybjsKKyAgICB9CiAKICAgICBhdXRvJiBbbW9kZWwsIGludGVyZmFjZV0gPSBl
bnN1cmVNb2RlbEFuZEludGVyZmFjZShjb250ZXh0SWQpOwogICAgIGFkZENsaWVudEZvckNvbnRl
eHQoY29udGV4dElkKTsKQEAgLTUyNywxOCArNTQ2LDMzIEBAIHZvaWQgVmlkZW9GdWxsc2NyZWVu
TWFuYWdlclByb3h5OjpzZXR1cEZ1bGxzY3JlZW5XaXRoSUQodWludDY0X3QgY29udGV4dElkLCB1
aW50CiB2b2lkIFZpZGVvRnVsbHNjcmVlbk1hbmFnZXJQcm94eTo6c2V0SGFzVmlkZW8odWludDY0
X3QgY29udGV4dElkLCBib29sIGhhc1ZpZGVvKQogewogICAgIE1FU1NBR0VfQ0hFQ0tfQ09OVEVY
VElEKGNvbnRleHRJZCk7CisgICAgaWYgKG1faW5qZWN0ZWRCdW5kbGVDbGllbnQpIHsKKyAgICAg
ICAgbV9pbmplY3RlZEJ1bmRsZUNsaWVudC0+c2V0SGFzVmlkZW8odGhpcywgY29udGV4dElkLCBo
YXNWaWRlbyk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKICAgICBlbnN1cmVJbnRlcmZhY2Uo
Y29udGV4dElkKS5oYXNWaWRlb0NoYW5nZWQoaGFzVmlkZW8pOwogfQogCiB2b2lkIFZpZGVvRnVs
bHNjcmVlbk1hbmFnZXJQcm94eTo6c2V0VmlkZW9EaW1lbnNpb25zKHVpbnQ2NF90IGNvbnRleHRJ
ZCwgY29uc3QgRmxvYXRTaXplJiB2aWRlb0RpbWVuc2lvbnMpCiB7CiAgICAgTUVTU0FHRV9DSEVD
S19DT05URVhUSUQoY29udGV4dElkKTsKKyAgICBpZiAobV9pbmplY3RlZEJ1bmRsZUNsaWVudCkg
eworICAgICAgICBtX2luamVjdGVkQnVuZGxlQ2xpZW50LT5zZXRWaWRlb0RpbWVuc2lvbnModGhp
cywgY29udGV4dElkLCB2aWRlb0RpbWVuc2lvbnMpOworICAgICAgICByZXR1cm47CisgICAgfQor
CiAgICAgZW5zdXJlSW50ZXJmYWNlKGNvbnRleHRJZCkudmlkZW9EaW1lbnNpb25zQ2hhbmdlZCh2
aWRlb0RpbWVuc2lvbnMpOwogfQogCiB2b2lkIFZpZGVvRnVsbHNjcmVlbk1hbmFnZXJQcm94eTo6
ZW50ZXJGdWxsc2NyZWVuKHVpbnQ2NF90IGNvbnRleHRJZCkKIHsKICAgICBNRVNTQUdFX0NIRUNL
X0NPTlRFWFRJRChjb250ZXh0SWQpOworICAgIGlmIChtX2luamVjdGVkQnVuZGxlQ2xpZW50KSB7
CisgICAgICAgIG1faW5qZWN0ZWRCdW5kbGVDbGllbnQtPmVudGVyRnVsbHNjcmVlbih0aGlzLCBj
b250ZXh0SWQpOworICAgICAgICBkaWRFbnRlckZ1bGxzY3JlZW4oY29udGV4dElkKTsKKyAgICAg
ICAgcmV0dXJuOworICAgIH0KIAogICAgIGF1dG8mIGludGVyZmFjZSA9IGVuc3VyZUludGVyZmFj
ZShjb250ZXh0SWQpOwogICAgIGludGVyZmFjZS5lbnRlckZ1bGxzY3JlZW4oKTsKQEAgLTU1OCw2
ICs1OTIsMTMgQEAgdm9pZCBWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyUHJveHk6OmVudGVyRnVsbHNj
cmVlbih1aW50NjRfdCBjb250ZXh0SWQpCiB2b2lkIFZpZGVvRnVsbHNjcmVlbk1hbmFnZXJQcm94
eTo6ZXhpdEZ1bGxzY3JlZW4odWludDY0X3QgY29udGV4dElkLCBXZWJDb3JlOjpJbnRSZWN0IGZp
bmFsUmVjdCkKIHsKICAgICBNRVNTQUdFX0NIRUNLX0NPTlRFWFRJRChjb250ZXh0SWQpOworICAg
IGlmIChtX2luamVjdGVkQnVuZGxlQ2xpZW50KSB7CisgICAgICAgIG1faW5qZWN0ZWRCdW5kbGVD
bGllbnQtPmV4aXRGdWxsc2NyZWVuKHRoaXMsIGNvbnRleHRJZCwgZmluYWxSZWN0KTsKKyNpZiBQ
TEFURk9STShJT1NfRkFNSUxZKQorICAgICAgICByZXR1cm5WaWRlb0NvbnRlbnRMYXllcihjb250
ZXh0SWQpOworI2VuZGlmCisgICAgICAgIHJldHVybjsKKyAgICB9CiAKICAgICBBU1NFUlQobV9j
b250ZXh0TWFwLmNvbnRhaW5zKGNvbnRleHRJZCkpOwogICAgIGlmICghbV9jb250ZXh0TWFwLmNv
bnRhaW5zKGNvbnRleHRJZCkpCkBAIC01NzYsNiArNjE3LDExIEBAIHZvaWQgVmlkZW9GdWxsc2Ny
ZWVuTWFuYWdlclByb3h5OjpleGl0RnVsbHNjcmVlbih1aW50NjRfdCBjb250ZXh0SWQsIFdlYkNv
cmU6OkluCiB2b2lkIFZpZGVvRnVsbHNjcmVlbk1hbmFnZXJQcm94eTo6ZXhpdEZ1bGxzY3JlZW5X
aXRob3V0QW5pbWF0aW9uVG9Nb2RlKHVpbnQ2NF90IGNvbnRleHRJZCwgV2ViQ29yZTo6SFRNTE1l
ZGlhRWxlbWVudEVudW1zOjpWaWRlb0Z1bGxzY3JlZW5Nb2RlIHRhcmdldE1vZGUpCiB7CiAgICAg
TUVTU0FHRV9DSEVDS19DT05URVhUSUQoY29udGV4dElkKTsKKyAgICBpZiAobV9pbmplY3RlZEJ1
bmRsZUNsaWVudCkgeworICAgICAgICBtX2luamVjdGVkQnVuZGxlQ2xpZW50LT5leGl0RnVsbHNj
cmVlbldpdGhvdXRBbmltYXRpb25Ub01vZGUodGhpcywgY29udGV4dElkLCB0YXJnZXRNb2RlKTsK
KyAgICAgICAgcmV0dXJuOworICAgIH0KKwogICAgIGVuc3VyZUludGVyZmFjZShjb250ZXh0SWQp
LmV4aXRGdWxsc2NyZWVuV2l0aG91dEFuaW1hdGlvblRvTW9kZSh0YXJnZXRNb2RlKTsKIH0KICNl
bmRpZgpAQCAtNTg1LDEyICs2MzEsMjYgQEAgdm9pZCBWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyUHJv
eHk6OmV4aXRGdWxsc2NyZWVuV2l0aG91dEFuaW1hdGlvblRvTW9kZSh1aW50NjRfdAogdm9pZCBW
aWRlb0Z1bGxzY3JlZW5NYW5hZ2VyUHJveHk6OnNldElubGluZVJlY3QodWludDY0X3QgY29udGV4
dElkLCBjb25zdCBXZWJDb3JlOjpJbnRSZWN0JiBpbmxpbmVSZWN0LCBib29sIHZpc2libGUpCiB7
CiAgICAgTUVTU0FHRV9DSEVDS19DT05URVhUSUQoY29udGV4dElkKTsKKyAgICBpZiAobV9pbmpl
Y3RlZEJ1bmRsZUNsaWVudCkgeworICAgICAgICBtX2luamVjdGVkQnVuZGxlQ2xpZW50LT5zZXRJ
bmxpbmVSZWN0KHRoaXMsIGNvbnRleHRJZCwgaW5saW5lUmVjdCwgdmlzaWJsZSk7CisgICAgICAg
IHJldHVybjsKKyAgICB9CisKICAgICBlbnN1cmVJbnRlcmZhY2UoY29udGV4dElkKS5zZXRJbmxp
bmVSZWN0KGlubGluZVJlY3QsIHZpc2libGUpOwogfQogCiB2b2lkIFZpZGVvRnVsbHNjcmVlbk1h
bmFnZXJQcm94eTo6c2V0SGFzVmlkZW9Db250ZW50TGF5ZXIodWludDY0X3QgY29udGV4dElkLCBi
b29sIHZhbHVlKQogewogICAgIE1FU1NBR0VfQ0hFQ0tfQ09OVEVYVElEKGNvbnRleHRJZCk7Cisg
ICAgaWYgKG1faW5qZWN0ZWRCdW5kbGVDbGllbnQpIHsKKyAgICAgICAgbV9pbmplY3RlZEJ1bmRs
ZUNsaWVudC0+c2V0SGFzVmlkZW9Db250ZW50TGF5ZXIodGhpcywgY29udGV4dElkLCB2YWx1ZSk7
CisgICAgICAgIGlmICh2YWx1ZSkKKyAgICAgICAgICAgIGRpZFNldHVwRnVsbHNjcmVlbihjb250
ZXh0SWQpOworICAgICAgICBlbHNlCisgICAgICAgICAgICBkaWRFeGl0RnVsbHNjcmVlbihjb250
ZXh0SWQpOworICAgICAgICByZXR1cm47CisgICAgfQorCiAgICAgZW5zdXJlSW50ZXJmYWNlKGNv
bnRleHRJZCkuc2V0SGFzVmlkZW9Db250ZW50TGF5ZXIodmFsdWUpOwogfQogCkBAIC02MTEsMTIg
KzY3MSwyOCBAQCBOT19SRVRVUk5fRFVFX1RPX0FTU0VSVCB2b2lkIFZpZGVvRnVsbHNjcmVlbk1h
bmFnZXJQcm94eTo6c2V0SGFzVmlkZW9Db250ZW50TGF5ZQogdm9pZCBWaWRlb0Z1bGxzY3JlZW5N
YW5hZ2VyUHJveHk6OmNsZWFudXBGdWxsc2NyZWVuKHVpbnQ2NF90IGNvbnRleHRJZCkKIHsKICAg
ICBNRVNTQUdFX0NIRUNLX0NPTlRFWFRJRChjb250ZXh0SWQpOworICAgIGlmIChtX2luamVjdGVk
QnVuZGxlQ2xpZW50KSB7CisgICAgICAgIG1faW5qZWN0ZWRCdW5kbGVDbGllbnQtPmNsZWFudXBG
dWxsc2NyZWVuKHRoaXMsIGNvbnRleHRJZCk7CisgICAgICAgIGRpZENsZWFudXBGdWxsc2NyZWVu
KGNvbnRleHRJZCk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKICAgICBlbnN1cmVJbnRlcmZh
Y2UoY29udGV4dElkKS5jbGVhbnVwRnVsbHNjcmVlbigpOwogfQogCiB2b2lkIFZpZGVvRnVsbHNj
cmVlbk1hbmFnZXJQcm94eTo6cHJlcGFyZWRUb1JldHVyblRvSW5saW5lKHVpbnQ2NF90IGNvbnRl
eHRJZCwgYm9vbCB2aXNpYmxlLCBXZWJDb3JlOjpJbnRSZWN0IGlubGluZVJlY3QpCiB7CiAgICAg
TUVTU0FHRV9DSEVDS19DT05URVhUSUQoY29udGV4dElkKTsKKyAgICBpZiAobV9pbmplY3RlZEJ1
bmRsZUNsaWVudCkgeworICAgICAgICBtX3BhZ2UtPmZ1bGxzY3JlZW5NYXlSZXR1cm5Ub0lubGlu
ZSgpOworICAgICAgICBtX2luamVjdGVkQnVuZGxlQ2xpZW50LT5wcmVwYXJlZFRvUmV0dXJuVG9J
bmxpbmUodGhpcywgY29udGV4dElkLCB2aXNpYmxlLCBpbmxpbmVSZWN0KTsKKyNpZiAhUExBVEZP
Uk0oSU9TX0ZBTUlMWSkKKyAgICAgICAgSW50UmVjdCBpbmxpbmVXaW5kb3dSZWN0OworICAgICAg
ICBtX3BhZ2UtPnJvb3RWaWV3VG9XaW5kb3coaW5saW5lUmVjdCwgaW5saW5lV2luZG93UmVjdCk7
CisjZW5kaWYKKyAgICAgICAgcmV0dXJuOworICAgIH0KKwogICAgIG1fcGFnZS0+ZnVsbHNjcmVl
bk1heVJldHVyblRvSW5saW5lKCk7CiAKICNpZiBQTEFURk9STShJT1NfRkFNSUxZKQpAQCAtNjMx
LDYgKzcwNywxMSBAQCB2b2lkIFZpZGVvRnVsbHNjcmVlbk1hbmFnZXJQcm94eTo6cHJlcGFyZWRU
b1JldHVyblRvSW5saW5lKHVpbnQ2NF90IGNvbnRleHRJZCwgYgogdm9pZCBWaWRlb0Z1bGxzY3Jl
ZW5NYW5hZ2VyUHJveHk6OnByZXBhcmVkVG9FeGl0RnVsbHNjcmVlbih1aW50NjRfdCBjb250ZXh0
SWQpCiB7CiAgICAgTUVTU0FHRV9DSEVDS19DT05URVhUSUQoY29udGV4dElkKTsKKyAgICBpZiAo
bV9pbmplY3RlZEJ1bmRsZUNsaWVudCkgeworICAgICAgICBtX2luamVjdGVkQnVuZGxlQ2xpZW50
LT5wcmVwYXJlZFRvRXhpdEZ1bGxzY3JlZW4odGhpcywgY29udGV4dElkKTsKKyAgICAgICAgcmV0
dXJuOworICAgIH0KKwogICAgIGVuc3VyZUludGVyZmFjZShjb250ZXh0SWQpLnByZXBhcmVkVG9F
eGl0RnVsbHNjcmVlbigpOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYktpdC54
Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNlL1dlYktpdC9XZWJLaXQueGNvZGVwcm9q
L3Byb2plY3QucGJ4cHJvagppbmRleCAxOGFjOTlmNDhjNTljMDBmN2Y2MWQ1Y2Y1ODMxOGRjMzNm
ZmUzY2MzLi5mNWM3ODE4Y2Q5ZDkwOTFlNDFiNjBlMmQxOWFjMmU5Yzg5NzY4NGMyIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L1dlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBi
L1NvdXJjZS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTQxNyw2
ICs0MTcsMTEgQEAKIAkJMUNBOEI5NDYxMjdDODgyQTAwNTc2QzJCIC8qIFdlYkluc3BlY3RvclBy
b3h5TWVzc2FnZXMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDFDQThCOTQ0MTI3Qzg4MkEwMDU3NkMyQiAvKiBXZWJJbnNwZWN0b3JQcm94eU1lc3NhZ2Vz
LmggKi87IH07CiAJCTFDQkJFNEEwMTlCNjZDNTMwMDZCN0Q4MSAvKiBXZWJJbnNwZWN0b3JVSU1l
c3NhZ2VSZWNlaXZlci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSAxQ0JCRTQ5RTE5QjY2QzUzMDA2QjdEODEgLyogV2ViSW5zcGVjdG9yVUlNZXNzYWdl
UmVjZWl2ZXIuY3BwICovOyB9OwogCQkxQ0JCRTRBMTE5QjY2QzUzMDA2QjdEODEgLyogV2ViSW5z
cGVjdG9yVUlNZXNzYWdlcy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gMUNCQkU0OUYxOUI2NkM1MzAwNkI3RDgxIC8qIFdlYkluc3BlY3RvclVJTWVzc2Fn
ZXMuaCAqLzsgfTsKKwkJMUQyQzAyNTAyNDUyOEM3QzAwMjZBRDFGIC8qIFdLVmlkZW9GdWxsc2Ny
ZWVuTWFuYWdlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gMUQyQzAyNEUyNDUyOEM3QzAwMjZBRDFGIC8qIFdLVmlkZW9GdWxsc2NyZWVuTWFuYWdlci5o
ICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CisJCTFEMkMw
MjUxMjQ1MjhDN0MwMDI2QUQxRiAvKiBXS1ZpZGVvRnVsbHNjcmVlbk1hbmFnZXIuY3BwIGluIFNv
dXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMUQyQzAyNEYyNDUyOEM3
QzAwMjZBRDFGIC8qIFdLVmlkZW9GdWxsc2NyZWVuTWFuYWdlci5jcHAgKi87IH07CisJCTFEM0Ux
RTkwMjQ1MEQ5QUIwMDM2NDA1MiAvKiBWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VySW5qZWN0ZWRCdW5k
bGVDbGllbnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDFEM0UxRThFMjQ1MEQ5QUIwMDM2NDA1MiAvKiBWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VySW5qZWN0
ZWRCdW5kbGVDbGllbnQuaCAqLzsgfTsKKwkJMUQzRTFFOTEyNDUwRDlBQjAwMzY0MDUyIC8qIFZp
ZGVvRnVsbHNjcmVlbk1hbmFnZXJJbmplY3RlZEJ1bmRsZUNsaWVudC5jcHAgaW4gU291cmNlcyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxRDNFMUU4RjI0NTBEOUFCMDAzNjQw
NTIgLyogVmlkZW9GdWxsc2NyZWVuTWFuYWdlckluamVjdGVkQnVuZGxlQ2xpZW50LmNwcCAqLzsg
fTsKKwkJMUQzRTFFOTMyNDUwREMyQTAwMzY0MDUyIC8qIFdLVmlkZW9GdWxsc2NyZWVuTWFuYWdl
ckluamVjdGVkQnVuZGxlQ2xpZW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSAxRDNFMUU5MjI0NTBEQzJBMDAzNjQwNTIgLyogV0tWaWRlb0Z1bGxzY3Jl
ZW5NYW5hZ2VySW5qZWN0ZWRCdW5kbGVDbGllbnQuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRF
UyA9IChQcml2YXRlLCApOyB9OyB9OwogCQkxRDRENzM3MDIzQTlFNTQ3MDA3MTdBMjUgLyogUmVt
b3RlTWVkaWFSZXNvdXJjZU1hbmFnZXJNZXNzYWdlUmVjZWl2ZXIuY3BwIGluIFNvdXJjZXMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMUQ0RDczNkIyM0E5REY1NTAwNzE3QTI1
IC8qIFJlbW90ZU1lZGlhUmVzb3VyY2VNYW5hZ2VyTWVzc2FnZVJlY2VpdmVyLmNwcCAqLzsgfTsK
IAkJMUQ0RDczNzEyM0E5RTU2MjAwNzE3QTI1IC8qIFJlbW90ZU1lZGlhUmVzb3VyY2VNYW5hZ2Vy
TWVzc2FnZXMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDFENEQ3MzZDMjNBOURGNjAwMDcxN0EyNSAvKiBSZW1vdGVNZWRpYVJlc291cmNlTWFuYWdlck1l
c3NhZ2VzLmggKi87IH07CiAJCTFENEQ3Mzc2MjNBOUVEMTgwMDcxN0EyNSAvKiBSZW1vdGVNZWRp
YVJlc291cmNlTWFuYWdlck1lc3NhZ2VzUmVwbGllcy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMUQ0RDczNzUyM0E5RUI2ODAwNzE3QTI1IC8qIFJlbW90
ZU1lZGlhUmVzb3VyY2VNYW5hZ2VyTWVzc2FnZXNSZXBsaWVzLmggKi87IH07CkBAIC0yNzQxLDYg
KzI3NDYsOCBAQAogCQkxQ0JCRTQ5RjE5QjY2QzUzMDA2QjdEODEgLyogV2ViSW5zcGVjdG9yVUlN
ZXNzYWdlcy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBXZWJJbnNwZWN0b3JV
SU1lc3NhZ2VzLmg7IHBhdGggPSBEZXJpdmVkU291cmNlcy9XZWJLaXQyL1dlYkluc3BlY3RvclVJ
TWVzc2FnZXMuaDsgc291cmNlVHJlZSA9IEJVSUxUX1BST0RVQ1RTX0RJUjsgfTsKIAkJMUQwRUNF
QUEyM0ZDODU4NDAwRDE3MkY2IC8qIFJlbW90ZU1lZGlhUGxheWVyUHJveHlDb2NvYS5tbSAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Y3BwLm9iamNwcDsgcGF0aCA9IFJlbW90ZU1lZGlhUGxheWVyUHJveHlDb2NvYS5tbTsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMUQxMkNDMjcyNDBFREY2RDAwRkRBMEEzIC8qIFdlYktp
dC5wbGlzdCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9
IHRleHQucGxpc3QueG1sOyBwYXRoID0gV2ViS2l0LnBsaXN0OyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OworCQkxRDJDMDI0RTI0NTI4QzdDMDAyNkFEMUYgLyogV0tWaWRlb0Z1bGxzY3JlZW5N
YW5hZ2VyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdLVmlkZW9GdWxsc2NyZWVuTWFuYWdlci5oOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OworCQkxRDJDMDI0RjI0NTI4QzdDMDAyNkFEMUYgLyogV0tW
aWRlb0Z1bGxzY3JlZW5NYW5hZ2VyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFdLVmlkZW9GdWxs
c2NyZWVuTWFuYWdlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTFEMzJGODk4
MjNBODQ2NUEwMEIxRUE2QSAvKiBSZW1vdGVNZWRpYVJlc291cmNlLmggKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9
IFJlbW90ZU1lZGlhUmVzb3VyY2UuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMUQz
MkY4OTkyM0E4NDY4MDAwQjFFQTZBIC8qIFJlbW90ZU1lZGlhUmVzb3VyY2UuY3BwICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAu
Y3BwOyBwYXRoID0gUmVtb3RlTWVkaWFSZXNvdXJjZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CiAJCTFEMzJGODlCMjNBODRCQTYwMEIxRUE2QSAvKiBSZW1vdGVNZWRpYVJlc291cmNl
UHJveHkuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUmVtb3RlTWVkaWFSZXNvdXJjZVByb3h5Lmg7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0yNzQ4LDYgKzI3NTUsOSBAQAogCQkxRDMyRjhBNjIz
QTg2MDE5MDBCMUVBNkEgLyogUmVtb3RlTWVkaWFSZXNvdXJjZU1hbmFnZXIubWVzc2FnZXMuaW4g
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBw
YXRoID0gUmVtb3RlTWVkaWFSZXNvdXJjZU1hbmFnZXIubWVzc2FnZXMuaW47IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCTFEM0FCMDREMjNBQjAwNzIwMDVDMUZGMCAvKiBSZW1vdGVNZWRp
YVJlc291cmNlTG9hZGVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFJlbW90ZU1lZGlhUmVzb3VyY2VMb2Fk
ZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMUQzQUIwNEUyM0FCMDA5QjAwNUMx
RkYwIC8qIFJlbW90ZU1lZGlhUmVzb3VyY2VMb2FkZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0g
UmVtb3RlTWVkaWFSZXNvdXJjZUxvYWRlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CisJCTFEM0UxRThFMjQ1MEQ5QUIwMDM2NDA1MiAvKiBWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VySW5q
ZWN0ZWRCdW5kbGVDbGllbnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gVmlkZW9GdWxsc2NyZWVuTWFuYWdl
ckluamVjdGVkQnVuZGxlQ2xpZW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTFE
M0UxRThGMjQ1MEQ5QUIwMDM2NDA1MiAvKiBWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VySW5qZWN0ZWRC
dW5kbGVDbGllbnQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gVmlkZW9GdWxsc2NyZWVuTWFuYWdl
ckluamVjdGVkQnVuZGxlQ2xpZW50LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJ
MUQzRTFFOTIyNDUwREMyQTAwMzY0MDUyIC8qIFdLVmlkZW9GdWxsc2NyZWVuTWFuYWdlckluamVj
dGVkQnVuZGxlQ2xpZW50LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IFdLVmlk
ZW9GdWxsc2NyZWVuTWFuYWdlckluamVjdGVkQnVuZGxlQ2xpZW50Lmg7IHBhdGggPSBVSVByb2Nl
c3MvQVBJL0MvV0tWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VySW5qZWN0ZWRCdW5kbGVDbGllbnQuaDsg
c291cmNlVHJlZSA9IFNPVVJDRV9ST09UOyB9OwogCQkxRDRENzM2QjIzQTlERjU1MDA3MTdBMjUg
LyogUmVtb3RlTWVkaWFSZXNvdXJjZU1hbmFnZXJNZXNzYWdlUmVjZWl2ZXIuY3BwICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGV4cGxpY2l0RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5j
cHA7IG5hbWUgPSBSZW1vdGVNZWRpYVJlc291cmNlTWFuYWdlck1lc3NhZ2VSZWNlaXZlci5jcHA7
IHBhdGggPSBEZXJpdmVkU291cmNlcy9XZWJLaXQyL1JlbW90ZU1lZGlhUmVzb3VyY2VNYW5hZ2Vy
TWVzc2FnZVJlY2VpdmVyLmNwcDsgc291cmNlVHJlZSA9IEJVSUxUX1BST0RVQ1RTX0RJUjsgfTsK
IAkJMUQ0RDczNkMyM0E5REY2MDAwNzE3QTI1IC8qIFJlbW90ZU1lZGlhUmVzb3VyY2VNYW5hZ2Vy
TWVzc2FnZXMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBleHBsaWNpdEZpbGVUeXBl
ID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBSZW1vdGVNZWRpYVJlc291cmNlTWFuYWdlck1lc3Nh
Z2VzLmg7IHBhdGggPSBEZXJpdmVkU291cmNlcy9XZWJLaXQyL1JlbW90ZU1lZGlhUmVzb3VyY2VN
YW5hZ2VyTWVzc2FnZXMuaDsgc291cmNlVHJlZSA9IEJVSUxUX1BST0RVQ1RTX0RJUjsgfTsKIAkJ
MUQ0RDczNzUyM0E5RUI2ODAwNzE3QTI1IC8qIFJlbW90ZU1lZGlhUmVzb3VyY2VNYW5hZ2VyTWVz
c2FnZXNSZXBsaWVzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZXhwbGljaXRGaWxl
VHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gUmVtb3RlTWVkaWFSZXNvdXJjZU1hbmFnZXJN
ZXNzYWdlc1JlcGxpZXMuaDsgcGF0aCA9IERlcml2ZWRTb3VyY2VzL1dlYktpdDIvUmVtb3RlTWVk
aWFSZXNvdXJjZU1hbmFnZXJNZXNzYWdlc1JlcGxpZXMuaDsgc291cmNlVHJlZSA9IEJVSUxUX1BS
T0RVQ1RTX0RJUjsgfTsKQEAgLTYzNjEsNiArNjM3MSw4IEBACiAJCQkJNDYzMjM2ODUyMzE0ODMz
RjAwQTQ4RkE3IC8qIFVJUmVtb3RlT2JqZWN0UmVnaXN0cnkuaCAqLywKIAkJCQlFNEU4NjQ4RTFC
MTY3M0ZCMDBDODJGNDAgLyogVmVyc2lvbkNoZWNrcy5oICovLAogCQkJCUU0RTg2NDhGMUIxNjcz
RkIwMEM4MkY0MCAvKiBWZXJzaW9uQ2hlY2tzLm1tICovLAorCQkJCTFEM0UxRThGMjQ1MEQ5QUIw
MDM2NDA1MiAvKiBWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VySW5qZWN0ZWRCdW5kbGVDbGllbnQuY3Bw
ICovLAorCQkJCTFEM0UxRThFMjQ1MEQ5QUIwMDM2NDA1MiAvKiBWaWRlb0Z1bGxzY3JlZW5NYW5h
Z2VySW5qZWN0ZWRCdW5kbGVDbGllbnQuaCAqLywKIAkJCQk1MkQ1QTFBQTFDNTc0OTRFMDBERTM0
QTMgLyogVmlkZW9GdWxsc2NyZWVuTWFuYWdlclByb3h5LmggKi8sCiAJCQkJNTJENUExQUIxQzU3
NDk0RTAwREUzNEEzIC8qIFZpZGVvRnVsbHNjcmVlbk1hbmFnZXJQcm94eS5tZXNzYWdlcy5pbiAq
LywKIAkJCQk1MkQ1QTFBQzFDNTc0OTRFMDBERTM0QTMgLyogVmlkZW9GdWxsc2NyZWVuTWFuYWdl
clByb3h5Lm1tICovLApAQCAtOTMxNyw2ICs5MzI5LDkgQEAKIAkJCQk0QTQxMEYzNjE5QUY3QUMz
MDAyRUJBQjUgLyogV0tVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdC5oICovLAogCQkJCTdDODlE
MkExMUE2Nzg4NzUwMDNBNUZERSAvKiBXS1VzZXJTY3JpcHRSZWYuY3BwICovLAogCQkJCTdDODlE
MkEyMUE2Nzg4NzUwMDNBNUZERSAvKiBXS1VzZXJTY3JpcHRSZWYuaCAqLywKKwkJCQkxRDJDMDI0
RjI0NTI4QzdDMDAyNkFEMUYgLyogV0tWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyLmNwcCAqLywKKwkJ
CQkxRDJDMDI0RTI0NTI4QzdDMDAyNkFEMUYgLyogV0tWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyLmgg
Ki8sCisJCQkJMUQzRTFFOTIyNDUwREMyQTAwMzY0MDUyIC8qIFdLVmlkZW9GdWxsc2NyZWVuTWFu
YWdlckluamVjdGVkQnVuZGxlQ2xpZW50LmggKi8sCiAJCQkJNUM2RTdEODcyMzIzNjFFNzAwQzIx
NTlEIC8qIFdLV2Vic2l0ZURhdGFTdG9yZUNvbmZpZ3VyYXRpb25SZWYuY3BwICovLAogCQkJCTVD
NkU3RDg2MjMyMzYxRTcwMEMyMTU5RCAvKiBXS1dlYnNpdGVEYXRhU3RvcmVDb25maWd1cmF0aW9u
UmVmLmggKi8sCiAJCQkJMUE1NzEwOUMxQUJBMDAyNzAwMkZBQkJFIC8qIFdLV2Vic2l0ZURhdGFT
dG9yZVJlZi5jcHAgKi8sCkBAIC0xMTE1OCw2ICsxMTE3Myw3IEBACiAJCQkJNEEzQ0MxOEQxOUIw
NjQxOTAwRDE0QUVGIC8qIFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UHJveHkuaCBpbiBIZWFk
ZXJzICovLAogCQkJCTA3NEU3NUZFMURGMjIxMTkwMEQzMThFQyAvKiBVc2VyTWVkaWFQcm9jZXNz
TWFuYWdlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJRTRFODY0OTMxQjE2NzUwNzAwQzgyRjQwIC8q
IFZlcnNpb25DaGVja3MuaCBpbiBIZWFkZXJzICovLAorCQkJCTFEM0UxRTkwMjQ1MEQ5QUIwMDM2
NDA1MiAvKiBWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VySW5qZWN0ZWRCdW5kbGVDbGllbnQuaCBpbiBI
ZWFkZXJzICovLAogCQkJCTUyRDVBMUIwMUM1NzQ5NUEwMERFMzRBMyAvKiBWaWRlb0Z1bGxzY3Jl
ZW5NYW5hZ2VyUHJveHkuaCBpbiBIZWFkZXJzICovLAogCQkJCTJEMTI1QzVFMTg1N0VBMDUwMDNC
QTNDQiAvKiBWaWV3R2VzdHVyZUNvbnRyb2xsZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCTJEMUI1
RDVFMTg1ODY5QzgwMDZDNjU5NiAvKiBWaWV3R2VzdHVyZUNvbnRyb2xsZXJNZXNzYWdlcy5oIGlu
IEhlYWRlcnMgKi8sCkBAIC0xMTc2Miw2ICsxMTc3OCw4IEBACiAJCQkJMUFBRjA4OUQxOTI2N0ZD
ODAwQjYzOTBDIC8qIFdLVXNlclNjcmlwdEludGVybmFsLmggaW4gSGVhZGVycyAqLywKIAkJCQk3
Qzg4MkRGQTFDN0U5OTczMDA2QkY3MzEgLyogV0tVc2VyU2NyaXB0UHJpdmF0ZS5oIGluIEhlYWRl
cnMgKi8sCiAJCQkJN0M4OUQyQTQxQTY3ODg3NTAwM0E1RkRFIC8qIFdLVXNlclNjcmlwdFJlZi5o
IGluIEhlYWRlcnMgKi8sCisJCQkJMUQyQzAyNTAyNDUyOEM3QzAwMjZBRDFGIC8qIFdLVmlkZW9G
dWxsc2NyZWVuTWFuYWdlci5oIGluIEhlYWRlcnMgKi8sCisJCQkJMUQzRTFFOTMyNDUwREMyQTAw
MzY0MDUyIC8qIFdLVmlkZW9GdWxsc2NyZWVuTWFuYWdlckluamVjdGVkQnVuZGxlQ2xpZW50Lmgg
aW4gSGVhZGVycyAqLywKIAkJCQlCQzg2OTlCNTExNkFBREFBMDAyQTkyNUIgLyogV0tWaWV3Lmgg
aW4gSGVhZGVycyAqLywKIAkJCQlCQzg2OTlCNzExNkFBREFBMDAyQTkyNUIgLyogV0tWaWV3SW50
ZXJuYWwuaCBpbiBIZWFkZXJzICovLAogCQkJCTJEMjhBNDk3MUFGOTY1QTEwMEYxOTBDOSAvKiBX
S1ZpZXdMYXlvdXRTdHJhdGVneS5oIGluIEhlYWRlcnMgKi8sCkBAIC0xMjk4MSw2ICsxMjk5OSw3
IEBACiAJCQkJRTM4QTFGQzAyM0E1NTFCRjAwRDIzNzRGIC8qIFVzZXJJbnRlcmZhY2VJZGlvbS5t
bSBpbiBTb3VyY2VzICovLAogCQkJCUNENDkxQjBEMUU3MzJFNEQwMDAwOTA2NiAvKiBVc2VyTWVk
aWFDYXB0dXJlTWFuYWdlck1lc3NhZ2VSZWNlaXZlci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlD
RDQ5MUIxNzFFNzM1MjU1MDAwMDkwNjYgLyogVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eU1l
c3NhZ2VSZWNlaXZlci5jcHAgaW4gU291cmNlcyAqLywKKwkJCQkxRDNFMUU5MTI0NTBEOUFCMDAz
NjQwNTIgLyogVmlkZW9GdWxsc2NyZWVuTWFuYWdlckluamVjdGVkQnVuZGxlQ2xpZW50LmNwcCBp
biBTb3VyY2VzICovLAogCQkJCTNGNDE4RUY5MTg4N0JEOTcwMDI3OTVGRCAvKiBWaWRlb0Z1bGxz
Y3JlZW5NYW5hZ2VyTWVzc2FnZVJlY2VpdmVyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTNGNDE4
RUZCMTg4N0JEOTcwMDI3OTVGRCAvKiBWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyUHJveHlNZXNzYWdl
UmVjZWl2ZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMkQxQjVENUQxODU4NjlDODAwNkM2NTk2
IC8qIFZpZXdHZXN0dXJlQ29udHJvbGxlck1lc3NhZ2VSZWNlaXZlci5jcHAgaW4gU291cmNlcyAq
LywKQEAgLTEzMDY2LDYgKzEzMDg1LDcgQEAKIAkJCQkxREIwMTk0NDIxMUNGMDA1MDA5RkIzRTgg
LyogV0tTaGFyZVNoZWV0Lm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJN0E3OEZGMzMyMjQxOTE5QjAw
OTY0ODNFIC8qIFdLU3RvcmFnZUFjY2Vzc0FsZXJ0Lm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJQ0Uy
MTIxNjAyNDBFRTU3MTAwNkVENDQzIC8qIFdLVGV4dFBsYWNlaG9sZGVyLm1tIGluIFNvdXJjZXMg
Ki8sCisJCQkJMUQyQzAyNTEyNDUyOEM3QzAwMjZBRDFGIC8qIFdLVmlkZW9GdWxsc2NyZWVuTWFu
YWdlci5jcHAgaW4gU291cmNlcyAqLywKIAkJCSk7CiAJCQlydW5Pbmx5Rm9yRGVwbG95bWVudFBv
c3Rwcm9jZXNzaW5nID0gMDsKIAkJfTsKZGlmZiAtLWdpdCBhL1Rvb2xzL0NoYW5nZUxvZyBiL1Rv
b2xzL0NoYW5nZUxvZwppbmRleCA5NTVhMjNlODQyZWJhMWQ1OTdmODk0ZjNkOTlmYmEwMTI5M2U0
MGQ5Li45YmIyMDBhYmZkOTAxODFmZGMwNzJhOWRiNGJlZjNlMzk4OTJkOTM2IDEwMDY0NAotLS0g
YS9Ub29scy9DaGFuZ2VMb2cKKysrIGIvVG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzAgQEAK
KzIwMjAtMDQtMjcgIFBlbmcgTGl1ICA8cGVuZy5saXU2QGFwcGxlLmNvbT4KKworICAgICAgICBV
cGRhdGUgV2ViS2l0VGVzdFJ1bm5lciB0byBzdXBwb3J0IHJ1bm5pbmcgbXVsdGlwbGUgdmlkZW8g
ZnVsbHNjcmVlbiBhbmQgUGljdHVyZS1pbi1QaWN0dXJlIHRlc3RzIHNpbXVsdGFuZW91c2x5Cisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDM3MjMKKwor
ICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFdlYktpdFRl
c3RSdW5uZXIvUGxhdGZvcm1XZWJWaWV3Lmg6CisgICAgICAgICogV2ViS2l0VGVzdFJ1bm5lci9U
ZXN0Q29udHJvbGxlci5jcHA6CisgICAgICAgIChXVFI6OlRlc3RDb250cm9sbGVyOjpjb25maWd1
cmVWaWV3Rm9yVGVzdCk6CisgICAgICAgIChXVFI6OlRlc3RDb250cm9sbGVyOjpzZXRIYXNWaWRl
b0Zyb21JbmplY3RlZEJ1bmRsZSk6CisgICAgICAgIChXVFI6OlRlc3RDb250cm9sbGVyOjpzZXRW
aWRlb0RpbWVuc2lvbnNGcm9tSW5qZWN0ZWRCdW5kbGUpOgorICAgICAgICAoV1RSOjpUZXN0Q29u
dHJvbGxlcjo6c2V0dXBGdWxsc2NyZWVuV2l0aElERnJvbUluamVjdGVkQnVuZGxlKToKKyAgICAg
ICAgKFdUUjo6VGVzdENvbnRyb2xsZXI6OmVudGVyRnVsbHNjcmVlbkZyb21JbmplY3RlZEJ1bmRs
ZSk6CisgICAgICAgIChXVFI6OlRlc3RDb250cm9sbGVyOjpleGl0RnVsbHNjcmVlbkZyb21Jbmpl
Y3RlZEJ1bmRsZSk6CisgICAgICAgIChXVFI6OlRlc3RDb250cm9sbGVyOjpzZXRJbmxpbmVSZWN0
RnJvbUluamVjdGVkQnVuZGxlKToKKyAgICAgICAgKFdUUjo6VGVzdENvbnRyb2xsZXI6OnNldEhh
c1ZpZGVvQ29udGVudExheWVyRnJvbUluamVjdGVkQnVuZGxlKToKKyAgICAgICAgKFdUUjo6VGVz
dENvbnRyb2xsZXI6OmNsZWFudXBGdWxsc2NyZWVuRnJvbUluamVjdGVkQnVuZGxlKToKKyAgICAg
ICAgKFdUUjo6VGVzdENvbnRyb2xsZXI6OnByZXBhcmVkVG9SZXR1cm5Ub0lubGluZUZyb21Jbmpl
Y3RlZEJ1bmRsZSk6CisgICAgICAgIChXVFI6OlRlc3RDb250cm9sbGVyOjpwcmVwYXJlZFRvRXhp
dEZ1bGxzY3JlZW5Gcm9tSW5qZWN0ZWRCdW5kbGUpOgorICAgICAgICAoV1RSOjpUZXN0Q29udHJv
bGxlcjo6ZXhpdEZ1bGxzY3JlZW5XaXRob3V0QW5pbWF0aW9uVG9Nb2RlRnJvbUluamVjdGVkQnVu
ZGxlKToKKyAgICAgICAgKiBXZWJLaXRUZXN0UnVubmVyL1Rlc3RDb250cm9sbGVyLmg6CisgICAg
ICAgICogV2ViS2l0VGVzdFJ1bm5lci9pb3MvUGxhdGZvcm1XZWJWaWV3SU9TLm1tOgorICAgICAg
ICAoV1RSOjpQbGF0Zm9ybVdlYlZpZXc6OnZpZGVvRnVsbHNjcmVlbk1hbmFnZXIpOgorICAgICAg
ICAqIFdlYktpdFRlc3RSdW5uZXIvbWFjL1BsYXRmb3JtV2ViVmlld01hYy5tbToKKyAgICAgICAg
KFdUUjo6UGxhdGZvcm1XZWJWaWV3Ojp2aWRlb0Z1bGxzY3JlZW5NYW5hZ2VyKToKKwogMjAyMC0w
NC0yNyAgRGFuaWVsIEJhdGVzICA8ZGFiYXRlc0BhcHBsZS5jb20+CiAKICAgICAgICAgQ2FyZXQg
bWF5IGJlIHBsYWNlZCBpbiB0aGUgd3Jvbmcgc3BvdCBmb3IgdGV4dCBpbnB1dCBjb250ZXh0IHRo
YXQgaXMgYSBmb3JtIGNvbnRyb2wKZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIv
UGxhdGZvcm1XZWJWaWV3LmggYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1BsYXRmb3JtV2ViVmll
dy5oCmluZGV4IDNhOGJiZThjZTZjYjIzMzhjZDU0ZjM4MDcxYTM2YzljZmUwZTYyMjEuLjc0ZjQy
ZGY1Y2QyOWExNDZkMzEzNTBlMTdlMDYzOTc0ZWI5NDIwMTYgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dl
YktpdFRlc3RSdW5uZXIvUGxhdGZvcm1XZWJWaWV3LmgKKysrIGIvVG9vbHMvV2ViS2l0VGVzdFJ1
bm5lci9QbGF0Zm9ybVdlYlZpZXcuaApAQCAtODMsNiArODMsNyBAQCBwdWJsaWM6CiAgICAgflBs
YXRmb3JtV2ViVmlldygpOwogCiAgICAgV0tQYWdlUmVmIHBhZ2UoKTsKKyAgICBXS1ZpZGVvRnVs
bHNjcmVlbk1hbmFnZXJSZWYgdmlkZW9GdWxsc2NyZWVuTWFuYWdlcigpOwogICAgIFBsYXRmb3Jt
V0tWaWV3IHBsYXRmb3JtVmlldygpIHsgcmV0dXJuIG1fdmlldzsgfQogICAgIFBsYXRmb3JtV2lu
ZG93IHBsYXRmb3JtV2luZG93KCkgeyByZXR1cm4gbV93aW5kb3c7IH0KICAgICBzdGF0aWMgUGxh
dGZvcm1XaW5kb3cga2V5V2luZG93KCk7CmRpZmYgLS1naXQgYS9Ub29scy9XZWJLaXRUZXN0UnVu
bmVyL1Rlc3RDb250cm9sbGVyLmNwcCBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvVGVzdENvbnRy
b2xsZXIuY3BwCmluZGV4IGFhNzIzZWQ4ZjQ5NjFhMjA4NDZmMTNhYWM4NTEwYmVhMWQzZmVmZWMu
Ljc4YTZmMWM0NjU0MWJlYTk4ZTlhMTI2N2IzODc1MGI2Yzc4OGRjMzggMTAwNjQ0Ci0tLSBhL1Rv
b2xzL1dlYktpdFRlc3RSdW5uZXIvVGVzdENvbnRyb2xsZXIuY3BwCisrKyBiL1Rvb2xzL1dlYktp
dFRlc3RSdW5uZXIvVGVzdENvbnRyb2xsZXIuY3BwCkBAIC02Niw2ICs2Niw4IEBACiAjaW5jbHVk
ZSA8V2ViS2l0L1dLVXNlckNvbnRlbnRDb250cm9sbGVyUmVmLmg+CiAjaW5jbHVkZSA8V2ViS2l0
L1dLVXNlckNvbnRlbnRFeHRlbnNpb25TdG9yZVJlZi5oPgogI2luY2x1ZGUgPFdlYktpdC9XS1Vz
ZXJNZWRpYVBlcm1pc3Npb25DaGVjay5oPgorI2luY2x1ZGUgPFdlYktpdC9XS1ZpZGVvRnVsbHNj
cmVlbk1hbmFnZXIuaD4KKyNpbmNsdWRlIDxXZWJLaXQvV0tWaWRlb0Z1bGxzY3JlZW5NYW5hZ2Vy
SW5qZWN0ZWRCdW5kbGVDbGllbnQuaD4KICNpbmNsdWRlIDxXZWJLaXQvV0tXZWJzaXRlRGF0YVN0
b3JlQ29uZmlndXJhdGlvblJlZi5oPgogI2luY2x1ZGUgPFdlYktpdC9XS1dlYnNpdGVEYXRhU3Rv
cmVSZWYuaD4KICNpbmNsdWRlIDxXZWJLaXQvV0tXZWJzaXRlUG9saWNpZXMuaD4KQEAgLTE1NzUs
NiArMTU3NywyMiBAQCB2b2lkIFRlc3RDb250cm9sbGVyOjpjb25maWd1cmVWaWV3Rm9yVGVzdChj
b25zdCBUZXN0SW52b2NhdGlvbiYgdGVzdCkKICAgICB1cGRhdGVXaW5kb3dTY2FsZUZvclRlc3Qo
bWFpbldlYlZpZXcoKSwgdGVzdCk7CiAgICAgY29uZmlndXJlQ29udGVudEV4dGVuc2lvbkZvclRl
c3QodGVzdCk7CiAgICAgcGxhdGZvcm1Db25maWd1cmVWaWV3Rm9yVGVzdCh0ZXN0KTsKKworICAg
IFdLVmlkZW9GdWxsc2NyZWVuTWFuYWdlckluamVjdGVkQnVuZGxlQ2xpZW50VjAgdmlkZW9GdWxs
c2NyZWVuTWFuYWdlckluamVjdGVkQnVuZGxlQ2xpZW50ID0geworICAgICAgICB7IDAsIHRoaXMg
fSwKKyAgICAgICAgc2V0SGFzVmlkZW9Gcm9tSW5qZWN0ZWRCdW5kbGUsCisgICAgICAgIHNldFZp
ZGVvRGltZW5zaW9uc0Zyb21JbmplY3RlZEJ1bmRsZSwKKyAgICAgICAgc2V0dXBGdWxsc2NyZWVu
V2l0aElERnJvbUluamVjdGVkQnVuZGxlLAorICAgICAgICBlbnRlckZ1bGxzY3JlZW5Gcm9tSW5q
ZWN0ZWRCdW5kbGUsCisgICAgICAgIGV4aXRGdWxsc2NyZWVuRnJvbUluamVjdGVkQnVuZGxlLAor
ICAgICAgICBzZXRJbmxpbmVSZWN0RnJvbUluamVjdGVkQnVuZGxlLAorICAgICAgICBzZXRIYXNW
aWRlb0NvbnRlbnRMYXllckZyb21JbmplY3RlZEJ1bmRsZSwKKyAgICAgICAgY2xlYW51cEZ1bGxz
Y3JlZW5Gcm9tSW5qZWN0ZWRCdW5kbGUsCisgICAgICAgIHByZXBhcmVkVG9SZXR1cm5Ub0lubGlu
ZUZyb21JbmplY3RlZEJ1bmRsZSwKKyAgICAgICAgcHJlcGFyZWRUb0V4aXRGdWxsc2NyZWVuRnJv
bUluamVjdGVkQnVuZGxlLAorICAgICAgICBleGl0RnVsbHNjcmVlbldpdGhvdXRBbmltYXRpb25U
b01vZGVGcm9tSW5qZWN0ZWRCdW5kbGUKKyAgICB9OworICAgIFdLVmlkZW9GdWxsc2NyZWVuTWFu
YWdlclNldEluamVjdGVkQnVuZGxlQ2xpZW50KG1fbWFpbldlYlZpZXctPnZpZGVvRnVsbHNjcmVl
bk1hbmFnZXIoKSwgJnZpZGVvRnVsbHNjcmVlbk1hbmFnZXJJbmplY3RlZEJ1bmRsZUNsaWVudC5i
YXNlKTsKIH0KIAogI2lmIEVOQUJMRShDT05URU5UX0VYVEVOU0lPTlMpICYmICFQTEFURk9STShD
T0NPQSkKQEAgLTE4OTIsNiArMTkxMCw1NSBAQCB2b2lkIFRlc3RDb250cm9sbGVyOjpkaWRSZWNl
aXZlU3luY2hyb25vdXNQYWdlTWVzc2FnZUZyb21JbmplY3RlZEJ1bmRsZVdpdGhMaXN0ZQogICAg
IHN0YXRpY19jYXN0PFRlc3RDb250cm9sbGVyKj4oY29uc3RfY2FzdDx2b2lkKj4oY2xpZW50SW5m
bykpLT5kaWRSZWNlaXZlU3luY2hyb25vdXNNZXNzYWdlRnJvbUluamVjdGVkQnVuZGxlKG1lc3Nh
Z2VOYW1lLCBtZXNzYWdlQm9keSwgbGlzdGVuZXIpOwogfQogCisjaWYgRU5BQkxFKFZJREVPX1BS
RVNFTlRBVElPTl9NT0RFKQorCisvLyBXS1ZpZGVvRnVsbHNjcmVlbk1hbmFnZXJJbmplY3RlZEJ1
bmRsZUNsaWVudAordm9pZCBUZXN0Q29udHJvbGxlcjo6c2V0SGFzVmlkZW9Gcm9tSW5qZWN0ZWRC
dW5kbGUoV0tWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyUmVmIG1hbmFnZXIsIHVpbnQ2NF90IGNvbnRl
eHRJZCwgYm9vbCBoYXNWaWRlbykKK3sKK30KKwordm9pZCBUZXN0Q29udHJvbGxlcjo6c2V0Vmlk
ZW9EaW1lbnNpb25zRnJvbUluamVjdGVkQnVuZGxlKFdLVmlkZW9GdWxsc2NyZWVuTWFuYWdlclJl
ZiBtYW5hZ2VyLCB1aW50NjRfdCBjb250ZXh0SWQsIFdLU2l6ZSB2aWRlb0RpbWVuc2lvbnMpCit7
Cit9CisKK3ZvaWQgVGVzdENvbnRyb2xsZXI6OnNldHVwRnVsbHNjcmVlbldpdGhJREZyb21Jbmpl
Y3RlZEJ1bmRsZShXS1ZpZGVvRnVsbHNjcmVlbk1hbmFnZXJSZWYgbWFuYWdlciwgdWludDY0X3Qg
Y29udGV4dElkLCB1aW50MzJfdCB2aWRlb0xheWVySUQsIFdLUmVjdCBpbml0aWFsUmVjdCwgZmxv
YXQgaG9zdGluZ1NjYWxlRmFjdG9yLCBXS1ZpZGVvRnVsbHNjcmVlbk1vZGUgdmlkZW9GdWxsc2Ny
ZWVuTW9kZSwgYm9vbCBhbGxvd3NQaWN0dXJlSW5QaWN0dXJlLCBib29sIHN0YW5kYnkpCit7Cit9
CisKK3ZvaWQgVGVzdENvbnRyb2xsZXI6OmVudGVyRnVsbHNjcmVlbkZyb21JbmplY3RlZEJ1bmRs
ZShXS1ZpZGVvRnVsbHNjcmVlbk1hbmFnZXJSZWYgbWFuYWdlciwgdWludDY0X3QgY29udGV4dElk
KQoreworfQorCit2b2lkIFRlc3RDb250cm9sbGVyOjpleGl0RnVsbHNjcmVlbkZyb21JbmplY3Rl
ZEJ1bmRsZShXS1ZpZGVvRnVsbHNjcmVlbk1hbmFnZXJSZWYgbWFuYWdlciwgdWludDY0X3QgY29u
dGV4dElkLCBXS1JlY3QgZmluYWxSZWN0KQoreworfQorCit2b2lkIFRlc3RDb250cm9sbGVyOjpz
ZXRJbmxpbmVSZWN0RnJvbUluamVjdGVkQnVuZGxlKFdLVmlkZW9GdWxsc2NyZWVuTWFuYWdlclJl
ZiBtYW5hZ2VyLCB1aW50NjRfdCBjb250ZXh0SWQsIFdLUmVjdCBpbmxpbmVSZWN0LCBib29sIHZp
c2libGUpCit7Cit9CisKK3ZvaWQgVGVzdENvbnRyb2xsZXI6OnNldEhhc1ZpZGVvQ29udGVudExh
eWVyRnJvbUluamVjdGVkQnVuZGxlKFdLVmlkZW9GdWxsc2NyZWVuTWFuYWdlclJlZiBtYW5hZ2Vy
LCB1aW50NjRfdCBjb250ZXh0SWQsIGJvb2wgdmFsdWUpCit7Cit9CisKK3ZvaWQgVGVzdENvbnRy
b2xsZXI6OmNsZWFudXBGdWxsc2NyZWVuRnJvbUluamVjdGVkQnVuZGxlKFdLVmlkZW9GdWxsc2Ny
ZWVuTWFuYWdlclJlZiBtYW5hZ2VyLCB1aW50NjRfdCBjb250ZXh0SWQpCit7Cit9CisKK3ZvaWQg
VGVzdENvbnRyb2xsZXI6OnByZXBhcmVkVG9SZXR1cm5Ub0lubGluZUZyb21JbmplY3RlZEJ1bmRs
ZShXS1ZpZGVvRnVsbHNjcmVlbk1hbmFnZXJSZWYgbWFuYWdlciwgdWludDY0X3QgY29udGV4dElk
LCBib29sIHZpc2libGUsIFdLUmVjdCBpbmxpbmVSZWN0KQoreworfQorCit2b2lkIFRlc3RDb250
cm9sbGVyOjpwcmVwYXJlZFRvRXhpdEZ1bGxzY3JlZW5Gcm9tSW5qZWN0ZWRCdW5kbGUoV0tWaWRl
b0Z1bGxzY3JlZW5NYW5hZ2VyUmVmIG1hbmFnZXIsIHVpbnQ2NF90IGNvbnRleHRJZCkKK3sKK30K
Kwordm9pZCBUZXN0Q29udHJvbGxlcjo6ZXhpdEZ1bGxzY3JlZW5XaXRob3V0QW5pbWF0aW9uVG9N
b2RlRnJvbUluamVjdGVkQnVuZGxlKFdLVmlkZW9GdWxsc2NyZWVuTWFuYWdlclJlZiBwYWdlLCB1
aW50NjRfdCBjb250ZXh0SWQsIFdLVmlkZW9GdWxsc2NyZWVuTW9kZSB2aWRlb0Z1bGxzY3JlZW5N
b2RlKQoreworfQorCisjZW5kaWYKKwogdm9pZCBUZXN0Q29udHJvbGxlcjo6bmV0d29ya1Byb2Nl
c3NEaWRDcmFzaChXS0NvbnRleHRSZWYgY29udGV4dCwgY29uc3Qgdm9pZCAqY2xpZW50SW5mbykK
IHsKICAgICBzdGF0aWNfY2FzdDxUZXN0Q29udHJvbGxlcio+KGNvbnN0X2Nhc3Q8dm9pZCo+KGNs
aWVudEluZm8pKS0+bmV0d29ya1Byb2Nlc3NEaWRDcmFzaCgpOwpkaWZmIC0tZ2l0IGEvVG9vbHMv
V2ViS2l0VGVzdFJ1bm5lci9UZXN0Q29udHJvbGxlci5oIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5l
ci9UZXN0Q29udHJvbGxlci5oCmluZGV4IDE1Mjc4N2FhNzM0OTM2YTE4MjY4ZTJjZmI1YTExYzRk
N2M4OWYwOWQuLmMwYWQ4NTU0MTc1MDQwYzM4NjQ0MGUxYjQyYmE3OGFjNWM4YThkNmEgMTAwNjQ0
Ci0tLSBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvVGVzdENvbnRyb2xsZXIuaAorKysgYi9Ub29s
cy9XZWJLaXRUZXN0UnVubmVyL1Rlc3RDb250cm9sbGVyLmgKQEAgLTQ4LDYgKzQ4LDggQEAgT0JK
Q19DTEFTUyBOU1N0cmluZzsKIE9CSkNfQ0xBU1MgVUlLZXlib2FyZElucHV0TW9kZTsKIE9CSkNf
Q0xBU1MgV0tXZWJWaWV3Q29uZmlndXJhdGlvbjsKIAordHlwZWRlZiB1aW50MzJfdCBXS1ZpZGVv
RnVsbHNjcmVlbk1vZGU7CisKIG5hbWVzcGFjZSBXVFIgewogCiBjbGFzcyBUZXN0SW52b2NhdGlv
bjsKQEAgLTQyMyw2ICs0MjUsMjEgQEAgcHJpdmF0ZToKICAgICB2b2lkIGRpZFJlY2VpdmVTeW5j
aHJvbm91c01lc3NhZ2VGcm9tSW5qZWN0ZWRCdW5kbGUoV0tTdHJpbmdSZWYgbWVzc2FnZU5hbWUs
IFdLVHlwZVJlZiBtZXNzYWdlQm9keSwgV0tNZXNzYWdlTGlzdGVuZXJSZWYpOwogICAgIFdLUmV0
YWluUHRyPFdLVHlwZVJlZj4gZ2V0SW5qZWN0ZWRCdW5kbGVJbml0aWFsaXphdGlvblVzZXJEYXRh
KCk7CiAKKyNpZiBFTkFCTEUoVklERU9fUFJFU0VOVEFUSU9OX01PREUpCisgICAgLy8gV0tWaWRl
b0Z1bGxzY3JlZW5NYW5hZ2VySW5qZWN0ZWRCdW5kbGVDbGllbnQKKyAgICBzdGF0aWMgdm9pZCBz
ZXRIYXNWaWRlb0Zyb21JbmplY3RlZEJ1bmRsZShXS1ZpZGVvRnVsbHNjcmVlbk1hbmFnZXJSZWYs
IHVpbnQ2NF90IGNvbnRleHRJZCwgYm9vbCBoYXNWaWRlbyk7CisgICAgc3RhdGljIHZvaWQgc2V0
VmlkZW9EaW1lbnNpb25zRnJvbUluamVjdGVkQnVuZGxlKFdLVmlkZW9GdWxsc2NyZWVuTWFuYWdl
clJlZiwgdWludDY0X3QgY29udGV4dElkLCBXS1NpemUgdmlkZW9EaW1lbnNpb25zKTsKKyAgICBz
dGF0aWMgdm9pZCBzZXR1cEZ1bGxzY3JlZW5XaXRoSURGcm9tSW5qZWN0ZWRCdW5kbGUoV0tWaWRl
b0Z1bGxzY3JlZW5NYW5hZ2VyUmVmLCB1aW50NjRfdCBjb250ZXh0SWQsIHVpbnQzMl90IHZpZGVv
TGF5ZXJJRCwgV0tSZWN0IGluaXRpYWxSZWN0LCBmbG9hdCBob3N0aW5nU2NhbGVGYWN0b3IsIFdL
VmlkZW9GdWxsc2NyZWVuTW9kZSwgYm9vbCBhbGxvd3NQaWN0dXJlSW5QaWN0dXJlLCBib29sIHN0
YW5kYnkpOworICAgIHN0YXRpYyB2b2lkIGVudGVyRnVsbHNjcmVlbkZyb21JbmplY3RlZEJ1bmRs
ZShXS1ZpZGVvRnVsbHNjcmVlbk1hbmFnZXJSZWYsIHVpbnQ2NF90IGNvbnRleHRJZCk7CisgICAg
c3RhdGljIHZvaWQgZXhpdEZ1bGxzY3JlZW5Gcm9tSW5qZWN0ZWRCdW5kbGUoV0tWaWRlb0Z1bGxz
Y3JlZW5NYW5hZ2VyUmVmLCB1aW50NjRfdCBjb250ZXh0SWQsIFdLUmVjdCBmaW5hbFJlY3QpOwor
ICAgIHN0YXRpYyB2b2lkIHNldElubGluZVJlY3RGcm9tSW5qZWN0ZWRCdW5kbGUoV0tWaWRlb0Z1
bGxzY3JlZW5NYW5hZ2VyUmVmLCB1aW50NjRfdCBjb250ZXh0SWQsIFdLUmVjdCBpbmxpbmVSZWN0
LCBib29sIHZpc2libGUpOworICAgIHN0YXRpYyB2b2lkIHNldEhhc1ZpZGVvQ29udGVudExheWVy
RnJvbUluamVjdGVkQnVuZGxlKFdLVmlkZW9GdWxsc2NyZWVuTWFuYWdlclJlZiwgdWludDY0X3Qg
Y29udGV4dElkLCBib29sIHZhbHVlKTsKKyAgICBzdGF0aWMgdm9pZCBjbGVhbnVwRnVsbHNjcmVl
bkZyb21JbmplY3RlZEJ1bmRsZShXS1ZpZGVvRnVsbHNjcmVlbk1hbmFnZXJSZWYsIHVpbnQ2NF90
IGNvbnRleHRJZCk7CisgICAgc3RhdGljIHZvaWQgcHJlcGFyZWRUb1JldHVyblRvSW5saW5lRnJv
bUluamVjdGVkQnVuZGxlKFdLVmlkZW9GdWxsc2NyZWVuTWFuYWdlclJlZiwgdWludDY0X3QgY29u
dGV4dElkLCBib29sIHZpc2libGUsIFdLUmVjdCBpbmxpbmVSZWN0KTsKKyAgICBzdGF0aWMgdm9p
ZCBwcmVwYXJlZFRvRXhpdEZ1bGxzY3JlZW5Gcm9tSW5qZWN0ZWRCdW5kbGUoV0tWaWRlb0Z1bGxz
Y3JlZW5NYW5hZ2VyUmVmLCB1aW50NjRfdCBjb250ZXh0SWQpOworICAgIHN0YXRpYyB2b2lkIGV4
aXRGdWxsc2NyZWVuV2l0aG91dEFuaW1hdGlvblRvTW9kZUZyb21JbmplY3RlZEJ1bmRsZShXS1Zp
ZGVvRnVsbHNjcmVlbk1hbmFnZXJSZWYsIHVpbnQ2NF90IGNvbnRleHRJZCwgV0tWaWRlb0Z1bGxz
Y3JlZW5Nb2RlKTsKKyNlbmRpZgorCiAgICAgdm9pZCBkaWRSZWNlaXZlS2V5RG93bk1lc3NhZ2VG
cm9tSW5qZWN0ZWRCdW5kbGUoV0tEaWN0aW9uYXJ5UmVmIG1lc3NhZ2VCb2R5RGljdGlvbmFyeSwg
Ym9vbCBzeW5jaHJvbm91cyk7CiAKICAgICAvLyBXS0NvbnRleHRDbGllbnQKQEAgLTQ2OCw3ICs0
ODUsNiBAQCBwcml2YXRlOgogCiAgICAgc3RhdGljIFdLUGx1Z2luTG9hZFBvbGljeSBkZWNpZGVQ
b2xpY3lGb3JQbHVnaW5Mb2FkKFdLUGFnZVJlZiwgV0tQbHVnaW5Mb2FkUG9saWN5IGN1cnJlbnRQ
bHVnaW5Mb2FkUG9saWN5LCBXS0RpY3Rpb25hcnlSZWYgcGx1Z2luSW5mb3JtYXRpb24sIFdLU3Ry
aW5nUmVmKiB1bmF2YWlsYWJpbGl0eURlc2NyaXB0aW9uLCBjb25zdCB2b2lkKiBjbGllbnRJbmZv
KTsKICAgICBXS1BsdWdpbkxvYWRQb2xpY3kgZGVjaWRlUG9saWN5Rm9yUGx1Z2luTG9hZChXS1Bh
Z2VSZWYsIFdLUGx1Z2luTG9hZFBvbGljeSBjdXJyZW50UGx1Z2luTG9hZFBvbGljeSwgV0tEaWN0
aW9uYXJ5UmVmIHBsdWdpbkluZm9ybWF0aW9uLCBXS1N0cmluZ1JlZiogdW5hdmFpbGFiaWxpdHlE
ZXNjcmlwdGlvbik7Ci0gICAgCiAKICAgICBzdGF0aWMgdm9pZCBkZWNpZGVQb2xpY3lGb3JOb3Rp
ZmljYXRpb25QZXJtaXNzaW9uUmVxdWVzdChXS1BhZ2VSZWYsIFdLU2VjdXJpdHlPcmlnaW5SZWYs
IFdLTm90aWZpY2F0aW9uUGVybWlzc2lvblJlcXVlc3RSZWYsIGNvbnN0IHZvaWQqKTsKICAgICB2
b2lkIGRlY2lkZVBvbGljeUZvck5vdGlmaWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0KFdLUGFnZVJl
ZiwgV0tTZWN1cml0eU9yaWdpblJlZiwgV0tOb3RpZmljYXRpb25QZXJtaXNzaW9uUmVxdWVzdFJl
Zik7CmRpZmYgLS1naXQgYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL2lvcy9QbGF0Zm9ybVdlYlZp
ZXdJT1MubW0gYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL2lvcy9QbGF0Zm9ybVdlYlZpZXdJT1Mu
bW0KaW5kZXggZGNlYTM4Y2RhY2U3NjgyNjUyMGIwYjFmZDhjZTAwOGJhM2JjN2E2NC4uYmE5MTU4
OTc0YzUxNzM5Yjk2ODk1NjZkMDlhZWRkYTRhZWMyM2ExNCAxMDA2NDQKLS0tIGEvVG9vbHMvV2Vi
S2l0VGVzdFJ1bm5lci9pb3MvUGxhdGZvcm1XZWJWaWV3SU9TLm1tCisrKyBiL1Rvb2xzL1dlYktp
dFRlc3RSdW5uZXIvaW9zL1BsYXRmb3JtV2ViVmlld0lPUy5tbQpAQCAtNDIsNiArNDIsNyBAQAog
CiBAaW50ZXJmYWNlIFdLV2ViVmlldyAoRGV0YWlscykKIC0gKFdLUGFnZVJlZilfcGFnZUZvclRl
c3Rpbmc7CistIChXS1ZpZGVvRnVsbHNjcmVlbk1hbmFnZXJSZWYpX3ZpZGVvRnVsbHNjcmVlbk1h
bmFnZXJGb3JUZXN0aW5nOwogQGVuZAogCiBAaW50ZXJmYWNlIFdlYktpdFRlc3RSdW5uZXJXaW5k
b3cgOiBVSVdpbmRvdyB7CkBAIC0yMzksNiArMjQwLDExIEBAIFdLUGFnZVJlZiBQbGF0Zm9ybVdl
YlZpZXc6OnBhZ2UoKQogICAgIHJldHVybiBbbV92aWV3IF9wYWdlRm9yVGVzdGluZ107CiB9CiAK
K1dLUGFnZVJlZiBQbGF0Zm9ybVdlYlZpZXc6OnZpZGVvRnVsbHNjcmVlbk1hbmFnZXIoKQorewor
ICAgIHJldHVybiBbbV92aWV3IF92aWRlb0Z1bGxzY3JlZW5Gb3JUZXN0aW5nXTsKK30KKwogdm9p
ZCBQbGF0Zm9ybVdlYlZpZXc6OmZvY3VzKCkKIHsKICAgICBtYWtlV2ViVmlld0ZpcnN0UmVzcG9u
ZGVyKCk7CmRpZmYgLS1naXQgYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL21hYy9QbGF0Zm9ybVdl
YlZpZXdNYWMubW0gYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL21hYy9QbGF0Zm9ybVdlYlZpZXdN
YWMubW0KaW5kZXggNjQxNzgyY2E5N2UxZGFmYjkwMDkxOWRiMTliMzQ3NGE1NTQzODhlNS4uZDFl
NWU3NzkyYzAzOWRkZTllMzhmMzFjZTc1Y2E1ZmYzMzhlMGRmNCAxMDA2NDQKLS0tIGEvVG9vbHMv
V2ViS2l0VGVzdFJ1bm5lci9tYWMvUGxhdGZvcm1XZWJWaWV3TWFjLm1tCisrKyBiL1Rvb2xzL1dl
YktpdFRlc3RSdW5uZXIvbWFjL1BsYXRmb3JtV2ViVmlld01hYy5tbQpAQCAtMzgsNiArMzgsNyBA
QAogCiBAaW50ZXJmYWNlIFdLV2ViVmlldyAoKQogLSAoV0tQYWdlUmVmKV9wYWdlRm9yVGVzdGlu
ZzsKKy0gKFdLVmlkZW9GdWxsc2NyZWVuTWFuYWdlclJlZilfdmlkZW9GdWxsc2NyZWVuTWFuYWdl
ckZvclRlc3Rpbmc7CiBAZW5kCiAKIHVzaW5nIG5hbWVzcGFjZSBXVFI7CkBAIC0xMTcsNiArMTE4
LDExIEBAIFdLUGFnZVJlZiBQbGF0Zm9ybVdlYlZpZXc6OnBhZ2UoKQogICAgIHJldHVybiBbbV92
aWV3IF9wYWdlRm9yVGVzdGluZ107CiB9CiAKK1dLVmlkZW9GdWxsc2NyZWVuTWFuYWdlclJlZiBQ
bGF0Zm9ybVdlYlZpZXc6OnZpZGVvRnVsbHNjcmVlbk1hbmFnZXIoKQoreworICAgIHJldHVybiBb
bV92aWV3IF92aWRlb0Z1bGxzY3JlZW5NYW5hZ2VyRm9yVGVzdGluZ107Cit9CisKIHZvaWQgUGxh
dGZvcm1XZWJWaWV3Ojpmb2N1cygpCiB7CiAgICAgW21fd2luZG93IG1ha2VGaXJzdFJlc3BvbmRl
cjpwbGF0Zm9ybVZpZXcoKV07CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9M
YXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggZWM3MmVkNWZjNjk0OGIwZjRiZDljOGY4MmIxZTE0
ZmE0YWQzODJkZi4uYWEwMmRlMWFlNGU4MTA3ZjlmZWY1ZDA2NmNkNjg4ZmVhNzQyNDgwYSAxMDA2
NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwpAQCAtMSwzICsxLDEzIEBACisyMDIwLTA0LTI3ICBQZW5nIExpdSAgPHBlbmcubGl1NkBhcHBs
ZS5jb20+CisKKyAgICAgICAgVXBkYXRlIFdlYktpdFRlc3RSdW5uZXIgdG8gc3VwcG9ydCBydW5u
aW5nIG11bHRpcGxlIHZpZGVvIGZ1bGxzY3JlZW4gYW5kIFBpY3R1cmUtaW4tUGljdHVyZSB0ZXN0
cyBzaW11bHRhbmVvdXNseQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9MjAzNzIzCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisK
KyAgICAgICAgKiBtZWRpYS92aWRlby1wcmVzZW50YXRpb24tbW9kZS1leHBlY3RlZC50eHQ6IEFk
ZGVkLgorICAgICAgICAqIG1lZGlhL3ZpZGVvLXByZXNlbnRhdGlvbi1tb2RlLmh0bWw6IEFkZGVk
LgorCiAyMDIwLTA0LTI3ICBBbGljaWEgQm95YSBHYXJjw61hICA8YWJveWFAaWdhbGlhLmNvbT4K
IAogICAgICAgICBbR1N0cmVhbWVyXSBSZXdvcmsgV2ViS2l0V2ViU3JjIHRocmVhZGluZwpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvbWVkaWEvdmlkZW8tcHJlc2VudGF0aW9uLW1vZGUtZXhwZWN0
ZWQudHh0IGIvTGF5b3V0VGVzdHMvbWVkaWEvdmlkZW8tcHJlc2VudGF0aW9uLW1vZGUtZXhwZWN0
ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLjU1MGU4NTNkN2U3M2VkODMxMzVmZWI5MmM3MDk5NTkzNzk2YmRm
YjAKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9tZWRpYS92aWRlby1wcmVzZW50YXRp
b24tbW9kZS1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwzMiBAQAorCitUZXN0IHRoZSB2aWRlbyBw
cmVzZW50YXRpb24gbW9kZSAodmlkZW8gZnVsbHNjcmVlbiBhbmQgcGljdHVyZS1pbi1waWN0dXJl
KSBBUEkuCisKKworRVZFTlQoY2FucGxheXRocm91Z2gpCitFWFBFQ1RFRCAodmlkZW8ud2Via2l0
U3VwcG9ydHNGdWxsc2NyZWVuID09ICd0cnVlJykgT0sKK0VYUEVDVEVEICh2aWRlby53ZWJraXRE
aXNwbGF5aW5nRnVsbHNjcmVlbiA9PSAnZmFsc2UnKSBPSworCisqKiBUcnkgdG8gZW50ZXIgZnVs
bHNjcmVlbgorUlVOKHZpZGVvLndlYmtpdFNldFByZXNlbnRhdGlvbk1vZGUoJ2Z1bGxzY3JlZW4n
KSkKK0VWRU5UKHdlYmtpdHByZXNlbnRhdGlvbm1vZGVjaGFuZ2VkKQorCisqKiBFbnRlcmVkIGZ1
bGxzY3JlZW4KK0VYUEVDVEVEICh2aWRlby53ZWJraXRQcmVzZW50YXRpb25Nb2RlID09ICdmdWxs
c2NyZWVuJykgT0sKKworKiogVHJ5IHRvIGVudGVyIHBpY3R1cmUtaW4tcGljdHVyZQorUlVOKHZp
ZGVvLndlYmtpdFNldFByZXNlbnRhdGlvbk1vZGUoJ3BpY3R1cmUtaW4tcGljdHVyZScpKQorRVZF
TlQod2Via2l0cHJlc2VudGF0aW9ubW9kZWNoYW5nZWQpCisKKyoqIEVudGVyZWQgcGljdHVyZS1p
bi1waWN0dXIKK0VYUEVDVEVEICh2aWRlby53ZWJraXRQcmVzZW50YXRpb25Nb2RlID09ICdwaWN0
dXJlLWluLXBpY3R1cmUnKSBPSworCisqKiBUcnkgdG8gcmV0dXJuIHRvIGlubGluZQorUlVOKHZp
ZGVvLndlYmtpdFNldFByZXNlbnRhdGlvbk1vZGUoJ2lubGluZScpKQorRVZFTlQod2Via2l0cHJl
c2VudGF0aW9ubW9kZWNoYW5nZWQpCisKKyoqIFJldHVybmVkIHRvIGlubGluZQorRVhQRUNURUQg
KHZpZGVvLndlYmtpdFByZXNlbnRhdGlvbk1vZGUgPT0gJ2lubGluZScpIE9LCisKKyoqIFRlc3Qg
Q29tcGxldGVkCitFTkQgT0YgVEVTVAorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9tZWRpYS92
aWRlby1wcmVzZW50YXRpb24tbW9kZS5odG1sIGIvTGF5b3V0VGVzdHMvbWVkaWEvdmlkZW8tcHJl
c2VudGF0aW9uLW1vZGUuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4zZmY0MzZlMGUxMjExYzBjNzE2YTI3YWFl
MWRkNDRlMGEzOTUyZjUxCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvbWVkaWEvdmlk
ZW8tcHJlc2VudGF0aW9uLW1vZGUuaHRtbApAQCAtMCwwICsxLDYxIEBACis8IWRvY3R5cGUgaHRt
bD4KKzxodG1sPgorICAgIDxoZWFkPgorICAgICAgICA8c2NyaXB0IHNyYz1tZWRpYS1maWxlLmpz
Pjwvc2NyaXB0PgorICAgICAgICA8c2NyaXB0IHNyYz12aWRlby10ZXN0LmpzPjwvc2NyaXB0Pgor
ICAgICAgICA8c2NyaXB0PgorICAgICAgICAgICAgZnVuY3Rpb24gc3RhcnQoKQorICAgICAgICAg
ICAgeworICAgICAgICAgICAgICAgIGlmICh3aW5kb3cuaW50ZXJuYWxzKQorICAgICAgICAgICAg
ICAgICAgICB3aW5kb3cuaW50ZXJuYWxzLnNldHRpbmdzLnNldEFsbG93c1BpY3R1cmVJblBpY3R1
cmVNZWRpYVBsYXliYWNrKHRydWUpOworCisgICAgICAgICAgICAgICAgdmlkZW8gPSBkb2N1bWVu
dC5nZXRFbGVtZW50c0J5VGFnTmFtZSgndmlkZW8nKVswXTsKKyAgICAgICAgICAgICAgICB3YWl0
Rm9yRXZlbnRPbmNlKCJjYW5wbGF5dGhyb3VnaCIsIGNhbnBsYXl0aHJvdWdoKTsKKyAgICAgICAg
ICAgICAgICB2aWRlby5zcmMgPSBmaW5kTWVkaWFGaWxlKCJ2aWRlbyIsICJjb250ZW50L3Rlc3Qi
KTsKKworICAgICAgICAgICAgICAgIGNvbnNvbGVXcml0ZSgiIik7CisgICAgICAgICAgICB9CisK
KyAgICAgICAgICAgIGZ1bmN0aW9uIGNhbnBsYXl0aHJvdWdoKCkKKyAgICAgICAgICAgIHsKKyAg
ICAgICAgICAgICAgICB0ZXN0RXhwZWN0ZWQoInZpZGVvLndlYmtpdFN1cHBvcnRzRnVsbHNjcmVl
biIsIHRydWUpOworICAgICAgICAgICAgICAgIHRlc3RFeHBlY3RlZCgidmlkZW8ud2Via2l0RGlz
cGxheWluZ0Z1bGxzY3JlZW4iLCBmYWxzZSk7CisKKyAgICAgICAgICAgICAgICBjb25zb2xlV3Jp
dGUoIjxicj4qKiBUcnkgdG8gZW50ZXIgZnVsbHNjcmVlbiIpOworICAgICAgICAgICAgICAgIHJ1
bldpdGhLZXlEb3duKCJ2aWRlby53ZWJraXRTZXRQcmVzZW50YXRpb25Nb2RlKCdmdWxsc2NyZWVu
JykiKTsKKyAgICAgICAgICAgICAgICB3YWl0Rm9yRXZlbnRPbmNlKCd3ZWJraXRwcmVzZW50YXRp
b25tb2RlY2hhbmdlZCcsIHByZXNlbnRhdGlvbk1vZGVDaGFuZ2VkMSk7CisgICAgICAgICAgICB9
CisKKyAgICAgICAgICAgIGZ1bmN0aW9uIHByZXNlbnRhdGlvbk1vZGVDaGFuZ2VkMSgpCisgICAg
ICAgICAgICB7CisgICAgICAgICAgICAgICAgY29uc29sZVdyaXRlKCI8YnI+KiogRW50ZXJlZCBm
dWxsc2NyZWVuIik7CisgICAgICAgICAgICAgICAgdGVzdEV4cGVjdGVkKCJ2aWRlby53ZWJraXRQ
cmVzZW50YXRpb25Nb2RlIiwgImZ1bGxzY3JlZW4iKTsKKyAgICAgICAgICAgICAgICBjb25zb2xl
V3JpdGUoIjxicj4qKiBUcnkgdG8gZW50ZXIgcGljdHVyZS1pbi1waWN0dXJlIik7CisgICAgICAg
ICAgICAgICAgd2FpdEZvckV2ZW50T25jZSgnd2Via2l0cHJlc2VudGF0aW9ubW9kZWNoYW5nZWQn
LCBwcmVzZW50YXRpb25Nb2RlQ2hhbmdlZDIpOworICAgICAgICAgICAgICAgIHJ1bldpdGhLZXlE
b3duKCJ2aWRlby53ZWJraXRTZXRQcmVzZW50YXRpb25Nb2RlKCdwaWN0dXJlLWluLXBpY3R1cmUn
KSIpOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICBmdW5jdGlvbiBwcmVzZW50YXRpb25N
b2RlQ2hhbmdlZDIoKQorICAgICAgICAgICAgeworICAgICAgICAgICAgICAgIGNvbnNvbGVXcml0
ZSgiPGJyPioqIEVudGVyZWQgcGljdHVyZS1pbi1waWN0dXIiKTsKKyAgICAgICAgICAgICAgICB0
ZXN0RXhwZWN0ZWQoInZpZGVvLndlYmtpdFByZXNlbnRhdGlvbk1vZGUiLCAicGljdHVyZS1pbi1w
aWN0dXJlIik7CisgICAgICAgICAgICAgICAgY29uc29sZVdyaXRlKCI8YnI+KiogVHJ5IHRvIHJl
dHVybiB0byBpbmxpbmUiKTsKKyAgICAgICAgICAgICAgICB3YWl0Rm9yRXZlbnRPbmNlKCd3ZWJr
aXRwcmVzZW50YXRpb25tb2RlY2hhbmdlZCcsIHRlc3RDb21wbGV0ZWQpOworICAgICAgICAgICAg
ICAgIHJ1bldpdGhLZXlEb3duKCJ2aWRlby53ZWJraXRTZXRQcmVzZW50YXRpb25Nb2RlKCdpbmxp
bmUnKSIpOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICBmdW5jdGlvbiB0ZXN0Q29tcGxl
dGVkKCkKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICBjb25zb2xlV3JpdGUoIjxicj4q
KiBSZXR1cm5lZCB0byBpbmxpbmUiKTsKKyAgICAgICAgICAgICAgICB0ZXN0RXhwZWN0ZWQoInZp
ZGVvLndlYmtpdFByZXNlbnRhdGlvbk1vZGUiLCAiaW5saW5lIik7CisgICAgICAgICAgICAgICAg
Y29uc29sZVdyaXRlKCI8YnI+KiogVGVzdCBDb21wbGV0ZWQiKTsKKyAgICAgICAgICAgICAgICBl
bmRUZXN0KCk7CisgICAgICAgICAgICB9CisgICAgICAgIDwvc2NyaXB0PgorICAgIDwvaGVhZD4K
KworICAgIDxib2R5IG9ubG9hZD0ic3RhcnQoKSI+CisgICAgICAgIDx2aWRlbyBjb250cm9scyBw
bGF5c2lubGluZT48L3ZpZGVvPgorICAgICAgICA8cD5UZXN0IHRoZSB2aWRlbyBwcmVzZW50YXRp
b24gbW9kZSAodmlkZW8gZnVsbHNjcmVlbiBhbmQgcGljdHVyZS1pbi1waWN0dXJlKSBBUEkuPC9w
PgorICAgIDwvYm9keT4KKzwvaHRtbD4K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>397792</attachid>
            <date>2020-04-27 20:31:10 -0700</date>
            <delta_ts>2020-04-27 21:41:13 -0700</delta_ts>
            <desc>WIP patch - fix WPE build failures</desc>
            <filename>bug-203723-20200427203109.patch</filename>
            <type>text/plain</type>
            <size>61743</size>
            <attacher name="Peng Liu">peng.liu6</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjYwNzYyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDgyOWY2OGJjOTgyNWZkYjhm
YmY1NDhjYmRjNDE0ODgyMDcyMWNiMDUuLmVlMjc1MjJiMzhhOTczMzBjZDY3Y2I1YWEzMTVkY2E5
Y2YwM2E5MGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNTEgQEAKKzIwMjAtMDQtMjcgIFBlbmcgTGl1
ICA8cGVuZy5saXU2QGFwcGxlLmNvbT4KKworICAgICAgICBVcGRhdGUgV2ViS2l0VGVzdFJ1bm5l
ciB0byBzdXBwb3J0IHJ1bm5pbmcgbXVsdGlwbGUgdmlkZW8gZnVsbHNjcmVlbiBhbmQgUGljdHVy
ZS1pbi1QaWN0dXJlIHRlc3RzIHNpbXVsdGFuZW91c2x5CisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDM3MjMKKworICAgICAgICBSZXZpZXdlZCBieSBO
T0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFNoYXJlZC9BUEkvQVBJT2JqZWN0Lmg6CisgICAg
ICAgICogU2hhcmVkL0FQSS9jL1dLQmFzZS5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQy9X
S0FQSUNhc3QuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0MvV0tQYWdlSW5qZWN0ZWRCdW5k
bGVDbGllbnQuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0MvV0tWaWRlb0Z1bGxzY3JlZW5N
YW5hZ2VyLmNwcDogQWRkZWQuCisgICAgICAgIChXS1ZpZGVvRnVsbHNjcmVlbk1hbmFnZXJTZXRJ
bmplY3RlZEJ1bmRsZUNsaWVudCk6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9DL1dLVmlkZW9G
dWxsc2NyZWVuTWFuYWdlci5oOiBBZGRlZC4KKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0MvV0tW
aWRlb0Z1bGxzY3JlZW5NYW5hZ2VySW5qZWN0ZWRCdW5kbGVDbGllbnQuaDogQWRkZWQuCisgICAg
ICAgICogVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXcubW06CisgICAgICAgICgtW1dLV2Vi
VmlldyBfdmlkZW9GdWxsc2NyZWVuTWFuYWdlckZvclRlc3RpbmddKToKKyAgICAgICAgKiBVSVBy
b2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlld0ludGVybmFsLmg6CisgICAgICAgICogVUlQcm9jZXNz
L0NvY29hL1ZpZGVvRnVsbHNjcmVlbk1hbmFnZXJJbmplY3RlZEJ1bmRsZUNsaWVudC5jcHA6IEFk
ZGVkLgorICAgICAgICAoV2ViS2l0OjpWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VySW5qZWN0ZWRCdW5k
bGVDbGllbnQ6OnNldEhhc1ZpZGVvKToKKyAgICAgICAgKFdlYktpdDo6VmlkZW9GdWxsc2NyZWVu
TWFuYWdlckluamVjdGVkQnVuZGxlQ2xpZW50OjpzZXRWaWRlb0RpbWVuc2lvbnMpOgorICAgICAg
ICAoV2ViS2l0OjpWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VySW5qZWN0ZWRCdW5kbGVDbGllbnQ6OnNl
dHVwRnVsbHNjcmVlbldpdGhJRCk6CisgICAgICAgIChXZWJLaXQ6OlZpZGVvRnVsbHNjcmVlbk1h
bmFnZXJJbmplY3RlZEJ1bmRsZUNsaWVudDo6ZW50ZXJGdWxsc2NyZWVuKToKKyAgICAgICAgKFdl
YktpdDo6VmlkZW9GdWxsc2NyZWVuTWFuYWdlckluamVjdGVkQnVuZGxlQ2xpZW50OjpleGl0RnVs
bHNjcmVlbik6CisgICAgICAgIChXZWJLaXQ6OlZpZGVvRnVsbHNjcmVlbk1hbmFnZXJJbmplY3Rl
ZEJ1bmRsZUNsaWVudDo6c2V0SW5saW5lUmVjdCk6CisgICAgICAgIChXZWJLaXQ6OlZpZGVvRnVs
bHNjcmVlbk1hbmFnZXJJbmplY3RlZEJ1bmRsZUNsaWVudDo6c2V0SGFzVmlkZW9Db250ZW50TGF5
ZXIpOgorICAgICAgICAoV2ViS2l0OjpWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VySW5qZWN0ZWRCdW5k
bGVDbGllbnQ6OmNsZWFudXBGdWxsc2NyZWVuKToKKyAgICAgICAgKFdlYktpdDo6VmlkZW9GdWxs
c2NyZWVuTWFuYWdlckluamVjdGVkQnVuZGxlQ2xpZW50OjpwcmVwYXJlZFRvUmV0dXJuVG9Jbmxp
bmUpOgorICAgICAgICAoV2ViS2l0OjpWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VySW5qZWN0ZWRCdW5k
bGVDbGllbnQ6OnByZXBhcmVkVG9FeGl0RnVsbHNjcmVlbik6CisgICAgICAgIChXZWJLaXQ6OlZp
ZGVvRnVsbHNjcmVlbk1hbmFnZXJJbmplY3RlZEJ1bmRsZUNsaWVudDo6ZXhpdEZ1bGxzY3JlZW5X
aXRob3V0QW5pbWF0aW9uVG9Nb2RlKToKKyAgICAgICAgKiBVSVByb2Nlc3MvQ29jb2EvVmlkZW9G
dWxsc2NyZWVuTWFuYWdlckluamVjdGVkQnVuZGxlQ2xpZW50Lmg6IEFkZGVkLgorICAgICAgICAq
IFVJUHJvY2Vzcy9Db2NvYS9WaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyUHJveHkuaDoKKyAgICAgICAg
KiBVSVByb2Nlc3MvQ29jb2EvVmlkZW9GdWxsc2NyZWVuTWFuYWdlclByb3h5Lm1tOgorICAgICAg
ICAoV2ViS2l0OjpWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyUHJveHk6OnNldEluamVjdGVkQnVuZGxl
Q2xpZW50KToKKyAgICAgICAgKFdlYktpdDo6VmlkZW9GdWxsc2NyZWVuTWFuYWdlclByb3h5Ojpp
c1BsYXlpbmdWaWRlb0luRW5oYW5jZWRGdWxsc2NyZWVuIGNvbnN0KToKKyAgICAgICAgKFdlYktp
dDo6VmlkZW9GdWxsc2NyZWVuTWFuYWdlclByb3h5OjpzZXR1cEZ1bGxzY3JlZW5XaXRoSUQpOgor
ICAgICAgICAoV2ViS2l0OjpWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyUHJveHk6OnNldEhhc1ZpZGVv
KToKKyAgICAgICAgKFdlYktpdDo6VmlkZW9GdWxsc2NyZWVuTWFuYWdlclByb3h5OjpzZXRWaWRl
b0RpbWVuc2lvbnMpOgorICAgICAgICAoV2ViS2l0OjpWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyUHJv
eHk6OmVudGVyRnVsbHNjcmVlbik6CisgICAgICAgIChXZWJLaXQ6OlZpZGVvRnVsbHNjcmVlbk1h
bmFnZXJQcm94eTo6ZXhpdEZ1bGxzY3JlZW4pOgorICAgICAgICAoV2ViS2l0OjpWaWRlb0Z1bGxz
Y3JlZW5NYW5hZ2VyUHJveHk6OmV4aXRGdWxsc2NyZWVuV2l0aG91dEFuaW1hdGlvblRvTW9kZSk6
CisgICAgICAgIChXZWJLaXQ6OlZpZGVvRnVsbHNjcmVlbk1hbmFnZXJQcm94eTo6c2V0SW5saW5l
UmVjdCk6CisgICAgICAgIChXZWJLaXQ6OlZpZGVvRnVsbHNjcmVlbk1hbmFnZXJQcm94eTo6c2V0
SGFzVmlkZW9Db250ZW50TGF5ZXIpOgorICAgICAgICAoV2ViS2l0OjpWaWRlb0Z1bGxzY3JlZW5N
YW5hZ2VyUHJveHk6OmNsZWFudXBGdWxsc2NyZWVuKToKKyAgICAgICAgKFdlYktpdDo6VmlkZW9G
dWxsc2NyZWVuTWFuYWdlclByb3h5OjpwcmVwYXJlZFRvUmV0dXJuVG9JbmxpbmUpOgorICAgICAg
ICAoV2ViS2l0OjpWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyUHJveHk6OnByZXBhcmVkVG9FeGl0RnVs
bHNjcmVlbik6CisgICAgICAgICogV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisK
IDIwMjAtMDQtMjcgIFBoaWxpcHBlIE5vcm1hbmQgIDxwbm9ybWFuZEBpZ2FsaWEuY29tPgogCiAg
ICAgICAgIFtHVEtdIEVOQUJMRShPUEVOR0wpIHJlbW1hbnRzLi4uCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L1NoYXJlZC9BUEkvQVBJT2JqZWN0LmggYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9B
UEkvQVBJT2JqZWN0LmgKaW5kZXggNGE2OGRmZjU4NGYxMWU4MzVmODUzMjZiNDRmMDdmNGE4MDRj
OTc2Mi4uMGUxN2Y3MjIxY2NkNmRkYzMzYWJjMGEzYWE4ZDBhZDViNjk0Y2NiNSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9TaGFyZWQvQVBJL0FQSU9iamVjdC5oCisrKyBiL1NvdXJjZS9XZWJL
aXQvU2hhcmVkL0FQSS9BUElPYmplY3QuaApAQCAtMTY5LDYgKzE2OSw3IEBAIHB1YmxpYzoKICAg
ICAgICAgVXNlckluaXRpYXRlZEFjdGlvbiwKICAgICAgICAgVXNlck1lZGlhUGVybWlzc2lvbkNo
ZWNrLAogICAgICAgICBVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdCwKKyAgICAgICAgVmlkZW9G
dWxsc2NyZWVuTWFuYWdlciwKICAgICAgICAgVmlld3BvcnRBdHRyaWJ1dGVzLAogICAgICAgICBW
aXNpdGVkTGlua1N0b3JlLAogICAgICAgICBXZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzTWFuYWdl
ciwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0FQSS9jL1dLQmFzZS5oIGIvU291
cmNlL1dlYktpdC9TaGFyZWQvQVBJL2MvV0tCYXNlLmgKaW5kZXggOGM5ZGM5MDg3Y2RhZmMyYWNm
ZGExNjc2MWI3ZWE3ZjhlZDc0MzI5Zi4uMWViMzA2ZWYxZmY4ODQ2MjU4OGEyYmI0NmE4NGY2MzY1
ZmI1ZGJiOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9TaGFyZWQvQVBJL2MvV0tCYXNlLmgK
KysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQvQVBJL2MvV0tCYXNlLmgKQEAgLTEyMyw2ICsxMjMs
NyBAQCB0eXBlZGVmIGNvbnN0IHN0cnVjdCBPcGFxdWVXS09wZW5QYW5lbFJlc3VsdExpc3RlbmVy
KiBXS09wZW5QYW5lbFJlc3VsdExpc3RlbmVyUgogdHlwZWRlZiBjb25zdCBzdHJ1Y3QgT3BhcXVl
V0tQYWdlKiBXS1BhZ2VSZWY7CiB0eXBlZGVmIGNvbnN0IHN0cnVjdCBPcGFxdWVXS1BhZ2VDb25m
aWd1cmF0aW9uKiBXS1BhZ2VDb25maWd1cmF0aW9uUmVmOwogdHlwZWRlZiBjb25zdCBzdHJ1Y3Qg
T3BhcXVlV0tQYWdlR3JvdXAqIFdLUGFnZUdyb3VwUmVmOwordHlwZWRlZiBjb25zdCBzdHJ1Y3Qg
T3BhcXVlV0tWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyKiBXS1ZpZGVvRnVsbHNjcmVlbk1hbmFnZXJS
ZWY7CiB0eXBlZGVmIGNvbnN0IHN0cnVjdCBPcGFxdWVXS1ByZWZlcmVuY2VzKiBXS1ByZWZlcmVu
Y2VzUmVmOwogdHlwZWRlZiBjb25zdCBzdHJ1Y3QgT3BhcXVlV0tQcm90ZWN0aW9uU3BhY2UqIFdL
UHJvdGVjdGlvblNwYWNlUmVmOwogdHlwZWRlZiBjb25zdCBzdHJ1Y3QgT3BhcXVlV0tQYWdlUnVu
QmVmb3JlVW5sb2FkQ29uZmlybVBhbmVsUmVzdWx0TGlzdGVuZXIqIFdLUGFnZVJ1bkJlZm9yZVVu
bG9hZENvbmZpcm1QYW5lbFJlc3VsdExpc3RlbmVyUmVmOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvQVBJL0MvV0tBUElDYXN0LmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9BUEkvQy9XS0FQSUNhc3QuaAppbmRleCA0OGI2NjFmMzQ5NDdhMzEyNDAxYmY2YTIwOWRkZjNh
YTVjZjQyYWQ4Li5mNTUyMGI4OTg5ZTk1NTdmNzNhMjllMGFmMGQxNDBkZjM3ZDVmMTczIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQy9XS0FQSUNhc3QuaAorKysgYi9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQy9XS0FQSUNhc3QuaApAQCAtODEsNiArODEsNyBA
QCBjbGFzcyBHZW9sb2NhdGlvblBlcm1pc3Npb25SZXF1ZXN0OwogY2xhc3MgTm90aWZpY2F0aW9u
UGVybWlzc2lvblJlcXVlc3Q7CiBjbGFzcyBVc2VyTWVkaWFQZXJtaXNzaW9uQ2hlY2tQcm94eTsK
IGNsYXNzIFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UHJveHk7CitjbGFzcyBWaWRlb0Z1bGxz
Y3JlZW5NYW5hZ2VyUHJveHk7CiBjbGFzcyBXZWJCYWNrRm9yd2FyZExpc3Q7CiBjbGFzcyBXZWJC
YWNrRm9yd2FyZExpc3RJdGVtOwogY2xhc3MgV2ViQ29sb3JQaWNrZXJSZXN1bHRMaXN0ZW5lclBy
b3h5OwpAQCAtMTY3LDggKzE2OCw5IEBAIFdLX0FERF9BUElfTUFQUElORyhXS1VzZXJDb250ZW50
RmlsdGVyUmVmLCBBUEk6OkNvbnRlbnRSdWxlTGlzdCkKIFdLX0FERF9BUElfTUFQUElORyhXS1Vz
ZXJNZWRpYVBlcm1pc3Npb25DaGVja1JlZiwgVXNlck1lZGlhUGVybWlzc2lvbkNoZWNrUHJveHkp
CiBXS19BRERfQVBJX01BUFBJTkcoV0tVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdFJlZiwgVXNl
ck1lZGlhUGVybWlzc2lvblJlcXVlc3RQcm94eSkKIFdLX0FERF9BUElfTUFQUElORyhXS1VzZXJT
Y3JpcHRSZWYsIEFQSTo6VXNlclNjcmlwdCkKK1dLX0FERF9BUElfTUFQUElORyhXS1ZpZGVvRnVs
bHNjcmVlbk1hbmFnZXJSZWYsIFZpZGVvRnVsbHNjcmVlbk1hbmFnZXJQcm94eSkKIFdLX0FERF9B
UElfTUFQUElORyhXS1ZpZXdwb3J0QXR0cmlidXRlc1JlZiwgV2ViVmlld3BvcnRBdHRyaWJ1dGVz
KQotV0tfQUREX0FQSV9NQVBQSU5HKFdLV2Vic2l0ZURhdGFTdG9yZVJlZiwgV2ViS2l0OjpXZWJz
aXRlRGF0YVN0b3JlKQorV0tfQUREX0FQSV9NQVBQSU5HKFdLV2Vic2l0ZURhdGFTdG9yZVJlZiwg
V2Vic2l0ZURhdGFTdG9yZSkKIFdLX0FERF9BUElfTUFQUElORyhXS1dlYnNpdGVEYXRhU3RvcmVD
b25maWd1cmF0aW9uUmVmLCBXZWJLaXQ6OldlYnNpdGVEYXRhU3RvcmVDb25maWd1cmF0aW9uKQog
V0tfQUREX0FQSV9NQVBQSU5HKFdLV2Vic2l0ZVBvbGljaWVzUmVmLCBBUEk6OldlYnNpdGVQb2xp
Y2llcykKIFdLX0FERF9BUElfTUFQUElORyhXS1dpbmRvd0ZlYXR1cmVzUmVmLCBBUEk6OldpbmRv
d0ZlYXR1cmVzKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0MvV0tQ
YWdlSW5qZWN0ZWRCdW5kbGVDbGllbnQuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9D
L1dLUGFnZUluamVjdGVkQnVuZGxlQ2xpZW50LmgKaW5kZXggZWRiYmY1OGNjYzY1OTc0MmI5YjFi
NDRiNTM2NTI1N2EzMDI5ZDE5ZS4uOTE2Y2ExMGE3MWYyYWQ2MDhiNWM3NjAxMTdkNTc5OWVmZTIz
YzFjNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0MvV0tQYWdlSW5q
ZWN0ZWRCdW5kbGVDbGllbnQuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQy9X
S1BhZ2VJbmplY3RlZEJ1bmRsZUNsaWVudC5oCkBAIC0zMCw3ICszMCw2IEBACiAKIHR5cGVkZWYg
dm9pZCAoKldLUGFnZURpZFJlY2VpdmVNZXNzYWdlRnJvbUluamVjdGVkQnVuZGxlQ2FsbGJhY2sp
KFdLUGFnZVJlZiBwYWdlLCBXS1N0cmluZ1JlZiBtZXNzYWdlTmFtZSwgV0tUeXBlUmVmIG1lc3Nh
Z2VCb2R5LCBjb25zdCB2b2lkICpjbGllbnRJbmZvKTsKIHR5cGVkZWYgdm9pZCAoKldLUGFnZURp
ZFJlY2VpdmVTeW5jaHJvbm91c01lc3NhZ2VGcm9tSW5qZWN0ZWRCdW5kbGVDYWxsYmFjaykoV0tQ
YWdlUmVmIHBhZ2UsIFdLU3RyaW5nUmVmIG1lc3NhZ2VOYW1lLCBXS1R5cGVSZWYgbWVzc2FnZUJv
ZHksIFdLVHlwZVJlZiogcmV0dXJuRGF0YSwgY29uc3Qgdm9pZCAqY2xpZW50SW5mbyk7Ci10eXBl
ZGVmIFdLVHlwZVJlZiAoKldLUGFnZUdldEluamVjdGVkQnVuZGxlSW5pdGlhbGl6YXRpb25Vc2Vy
RGF0YUNhbGxiYWNrKShXS1BhZ2VSZWYgcGFnZSwgY29uc3Qgdm9pZCAqY2xpZW50SW5mbyk7CiB0
eXBlZGVmIHZvaWQgKCpXS1BhZ2VEaWRSZWNlaXZlU3luY2hyb25vdXNNZXNzYWdlRnJvbUluamVj
dGVkQnVuZGxlV2l0aExpc3RlbmVyQ2FsbGJhY2spKFdLUGFnZVJlZiBwYWdlLCBXS1N0cmluZ1Jl
ZiBtZXNzYWdlTmFtZSwgV0tUeXBlUmVmIG1lc3NhZ2VCb2R5LCBXS01lc3NhZ2VMaXN0ZW5lclJl
ZiBsaXN0ZW5lciwgY29uc3Qgdm9pZCogY2xpZW50SW5mbyk7CiAKIHR5cGVkZWYgc3RydWN0IFdL
UGFnZUluamVjdGVkQnVuZGxlQ2xpZW50QmFzZSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9BUEkvQy9XS1ZpZGVvRnVsbHNjcmVlbk1hbmFnZXIuY3BwIGIvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvQVBJL0MvV0tWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyLmNwcApuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwLi5mZmRmZmQ0MDBkOTJlZTJjMTc4YTA4MTMyNjI5MzU4OGM2NmRiM2MyCi0tLSAvZGV2L251
bGwKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0MvV0tWaWRlb0Z1bGxzY3JlZW5N
YW5hZ2VyLmNwcApAQCAtMCwwICsxLDM1IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIwIEFw
cGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQg
dXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlm
aWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0
aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBt
dXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3Ry
aWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdo
dAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0
ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRX
QVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJ
UycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hB
TlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJ
U0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9S
UworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BF
Q0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMg
T1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUwor
ICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFC
SUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JU
IChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBX
QVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisg
KiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZp
Zy5oIgorI2luY2x1ZGUgIldLVmlkZW9GdWxsc2NyZWVuTWFuYWdlci5oIgorCisjaW5jbHVkZSAi
V0tBUElDYXN0LmgiCisjaW5jbHVkZSAiV2ViS2l0L1ZpZGVvRnVsbHNjcmVlbk1hbmFnZXJQcm94
eS5oIgorCit2b2lkIFdLVmlkZW9GdWxsc2NyZWVuTWFuYWdlclNldEluamVjdGVkQnVuZGxlQ2xp
ZW50KFdLVmlkZW9GdWxsc2NyZWVuTWFuYWdlclJlZiB2aWRlb0Z1bGxzY3JlZW5NYW5hZ2VyUmVm
LCBjb25zdCBXS1ZpZGVvRnVsbHNjcmVlbk1hbmFnZXJJbmplY3RlZEJ1bmRsZUNsaWVudEJhc2Uq
IHdrQ2xpZW50KQoreworICAgIFdlYktpdDo6dG9JbXBsKHZpZGVvRnVsbHNjcmVlbk1hbmFnZXJS
ZWYpLT5zZXRJbmplY3RlZEJ1bmRsZUNsaWVudCh3a0NsaWVudCk7Cit9CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQy9XS1ZpZGVvRnVsbHNjcmVlbk1hbmFnZXIuaCBi
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9DL1dLVmlkZW9GdWxsc2NyZWVuTWFuYWdlci5o
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAuLmIwMDAwMDQ1MjA4ZmQzYzM1MGEzODM5NTAwYjA1Yjk2MDMyMmQ2MmEKLS0t
IC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQy9XS1ZpZGVvRnVs
bHNjcmVlbk1hbmFnZXIuaApAQCAtMCwwICsxLDM4IEBACisvKgorICogQ29weXJpZ2h0IChDKSAy
MDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlv
biBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAq
IG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcg
Y29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2Ug
Y29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBS
ZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNv
cHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3Ro
ZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElT
IFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMg
YGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0Yg
TUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0Ug
QVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRS
SUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRB
TCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUg
R09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJ
TkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBP
RiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBP
UiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElO
IEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VE
IE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBv
bmNlCisKKyNpbmNsdWRlIDxXZWJLaXQvV0tWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VySW5qZWN0ZWRC
dW5kbGVDbGllbnQuaD4KKworI2lmZGVmIF9fY3BsdXNwbHVzCitleHRlcm4gIkMiIHsKKyNlbmRp
ZgorCitXS19FWFBPUlQgdm9pZCBXS1ZpZGVvRnVsbHNjcmVlbk1hbmFnZXJTZXRJbmplY3RlZEJ1
bmRsZUNsaWVudChXS1ZpZGVvRnVsbHNjcmVlbk1hbmFnZXJSZWYsIGNvbnN0IFdLVmlkZW9GdWxs
c2NyZWVuTWFuYWdlckluamVjdGVkQnVuZGxlQ2xpZW50QmFzZSogd2tDbGllbnQpOworCisjaWZk
ZWYgX19jcGx1c3BsdXMKK30KKyNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvQVBJL0MvV0tWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VySW5qZWN0ZWRCdW5kbGVDbGllbnQu
aCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9DL1dLVmlkZW9GdWxsc2NyZWVuTWFuYWdl
ckluamVjdGVkQnVuZGxlQ2xpZW50LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZGI3MjZkZTk1ZjQxZTVkMmM0Zjgz
YTRkMzM0YWFlZjBjYmYxMzc1MAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL0FQSS9DL1dLVmlkZW9GdWxsc2NyZWVuTWFuYWdlckluamVjdGVkQnVuZGxlQ2xpZW50
LmgKQEAgLTAsMCArMSw3OCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMCBBcHBsZSBJbmMu
IEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBz
b3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24s
IGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAq
IGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRh
aW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25z
IGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBw
cm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQ
Uk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICog
QU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElU
WSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVE
LiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJF
IExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVY
RU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJ
Q0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVS
UlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBX
SEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVE
SU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBP
RiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBP
U1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisjaW5jbHVk
ZSA8V2ViS2l0L1dLQmFzZS5oPgorI2luY2x1ZGUgPFdlYktpdC9XS0dlb21ldHJ5Lmg+CisKKyNp
ZmRlZiBfX2NwbHVzcGx1cworZXh0ZXJuICJDIiB7CisjZW5kaWYKKworZW51bSB7CisgICAgV0tW
aWRlb0Z1bGxzY3JlZW5Nb2RlTm9uZSA9IDAsCisgICAgV0tWaWRlb0Z1bGxzY3JlZW5Nb2RlU3Rh
bmRhcmQgPSAxIDw8IDAsCisgICAgV0tWaWRlb0Z1bGxzY3JlZW5Nb2RlUGljdHVyZUluUGljdHVy
ZSA9IDEgPDwgMSwKK307Cit0eXBlZGVmIHVpbnQzMl90IFdLVmlkZW9GdWxsc2NyZWVuTW9kZTsK
KwordHlwZWRlZiB2b2lkICgqV0tWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyU2V0SGFzVmlkZW8pKFdL
VmlkZW9GdWxsc2NyZWVuTWFuYWdlclJlZiBtYW5hZ2VyLCB1aW50NjRfdCBjb250ZXh0SWQsIGJv
b2wgaGFzVmlkZW8pOwordHlwZWRlZiB2b2lkICgqV0tWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyU2V0
VmlkZW9EaW1lbnNpb25zKShXS1ZpZGVvRnVsbHNjcmVlbk1hbmFnZXJSZWYgbWFuYWdlciwgdWlu
dDY0X3QgY29udGV4dElkLCBXS1NpemUgdmlkZW9EaW1lbnNpb25zKTsKK3R5cGVkZWYgdm9pZCAo
KldLVmlkZW9GdWxsc2NyZWVuTWFuYWdlclNldHVwRnVsbHNjcmVlbldpdGhJRCkoV0tWaWRlb0Z1
bGxzY3JlZW5NYW5hZ2VyUmVmIG1hbmFnZXIsIHVpbnQ2NF90IGNvbnRleHRJZCwgdWludDMyX3Qg
dmlkZW9MYXllcklELCBXS1JlY3QgaW5pdGlhbFJlY3QsIGZsb2F0IGhvc3RpbmdTY2FsZUZhY3Rv
ciwgV0tWaWRlb0Z1bGxzY3JlZW5Nb2RlIHZpZGVvRnVsbHNjcmVlbk1vZGUsIGJvb2wgYWxsb3dz
UGljdHVyZUluUGljdHVyZSwgYm9vbCBzdGFuZGJ5KTsKK3R5cGVkZWYgdm9pZCAoKldLVmlkZW9G
dWxsc2NyZWVuTWFuYWdlckVudGVyRnVsbHNjcmVlbikoV0tWaWRlb0Z1bGxzY3JlZW5NYW5hZ2Vy
UmVmIG1hbmFnZXIsIHVpbnQ2NF90IGNvbnRleHRJZCk7Cit0eXBlZGVmIHZvaWQgKCpXS1ZpZGVv
RnVsbHNjcmVlbk1hbmFnZXJFeGl0RnVsbHNjcmVlbikoV0tWaWRlb0Z1bGxzY3JlZW5NYW5hZ2Vy
UmVmIG1hbmFnZXIsIHVpbnQ2NF90IGNvbnRleHRJZCwgV0tSZWN0IGZpbmFsUmVjdCk7Cit0eXBl
ZGVmIHZvaWQgKCpXS1ZpZGVvRnVsbHNjcmVlbk1hbmFnZXJTZXRJbmxpbmVSZWN0KShXS1ZpZGVv
RnVsbHNjcmVlbk1hbmFnZXJSZWYgbWFuYWdlciwgdWludDY0X3QgY29udGV4dElkLCBXS1JlY3Qg
aW5saW5lUmVjdCwgYm9vbCB2aXNpYmxlKTsKK3R5cGVkZWYgdm9pZCAoKldLVmlkZW9GdWxsc2Ny
ZWVuTWFuYWdlclNldEhhc1ZpZGVvQ29udGVudExheWVyKShXS1ZpZGVvRnVsbHNjcmVlbk1hbmFn
ZXJSZWYgbWFuYWdlciwgdWludDY0X3QgY29udGV4dElkLCBib29sIHZhbHVlKTsKK3R5cGVkZWYg
dm9pZCAoKldLVmlkZW9GdWxsc2NyZWVuTWFuYWdlckNsZWFudXBGdWxsc2NyZWVuKShXS1ZpZGVv
RnVsbHNjcmVlbk1hbmFnZXJSZWYgbWFuYWdlciwgdWludDY0X3QgY29udGV4dElkKTsKK3R5cGVk
ZWYgdm9pZCAoKldLVmlkZW9GdWxsc2NyZWVuTWFuYWdlclByZXBhcmVkVG9SZXR1cm5Ub0lubGlu
ZSkoV0tWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyUmVmIG1hbmFnZXIsIHVpbnQ2NF90IGNvbnRleHRJ
ZCwgYm9vbCB2aXNpYmxlLCBXS1JlY3QgaW5saW5lUmVjdCk7Cit0eXBlZGVmIHZvaWQgKCpXS1Zp
ZGVvRnVsbHNjcmVlbk1hbmFnZXJQcmVwYXJlZFRvRXhpdEZ1bGxzY3JlZW4pKFdLVmlkZW9GdWxs
c2NyZWVuTWFuYWdlclJlZiBtYW5hZ2VyLCB1aW50NjRfdCBjb250ZXh0SWQpOwordHlwZWRlZiB2
b2lkICgqV0tWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyRXhpdEZ1bGxzY3JlZW5XaXRob3V0QW5pbWF0
aW9uVG9Nb2RlKShXS1ZpZGVvRnVsbHNjcmVlbk1hbmFnZXJSZWYgcGFnZSwgdWludDY0X3QgY29u
dGV4dElkLCBXS1ZpZGVvRnVsbHNjcmVlbk1vZGUgdmlkZW9GdWxsc2NyZWVuTW9kZSk7CisKK3R5
cGVkZWYgc3RydWN0IFdLVmlkZW9GdWxsc2NyZWVuTWFuYWdlckluamVjdGVkQnVuZGxlQ2xpZW50
QmFzZSB7CisgICAgaW50ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIHZlcnNpb247CisgICAgY29uc3Qgdm9pZCAqICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsaWVudEluZm87Cit9IFdL
VmlkZW9GdWxsc2NyZWVuTWFuYWdlckluamVjdGVkQnVuZGxlQ2xpZW50QmFzZTsKKwordHlwZWRl
ZiBzdHJ1Y3QgV0tWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VySW5qZWN0ZWRCdW5kbGVDbGllbnRWMCB7
CisgICAgV0tWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VySW5qZWN0ZWRCdW5kbGVDbGllbnRCYXNlICAg
ICAgICAgICAgICAgIGJhc2U7CisKKyAgICAvLyBWZXJzaW9uIDAuCisgICAgV0tWaWRlb0Z1bGxz
Y3JlZW5NYW5hZ2VyU2V0SGFzVmlkZW8gICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNldEhh
c1ZpZGVvOworICAgIFdLVmlkZW9GdWxsc2NyZWVuTWFuYWdlclNldFZpZGVvRGltZW5zaW9ucyAg
ICAgICAgICAgICAgICAgICAgICBzZXRWaWRlb0RpbWVuc2lvbnM7CisgICAgV0tWaWRlb0Z1bGxz
Y3JlZW5NYW5hZ2VyU2V0dXBGdWxsc2NyZWVuV2l0aElEICAgICAgICAgICAgICAgICAgIHNldHVw
RnVsbHNjcmVlbldpdGhJRDsKKyAgICBXS1ZpZGVvRnVsbHNjcmVlbk1hbmFnZXJFbnRlckZ1bGxz
Y3JlZW4gICAgICAgICAgICAgICAgICAgICAgICAgZW50ZXJGdWxsc2NyZWVuOworICAgIFdLVmlk
ZW9GdWxsc2NyZWVuTWFuYWdlckV4aXRGdWxsc2NyZWVuICAgICAgICAgICAgICAgICAgICAgICAg
ICBleGl0RnVsbHNjcmVlbjsKKyAgICBXS1ZpZGVvRnVsbHNjcmVlbk1hbmFnZXJTZXRJbmxpbmVS
ZWN0ICAgICAgICAgICAgICAgICAgICAgICAgICAgc2V0SW5saW5lUmVjdDsKKyAgICBXS1ZpZGVv
RnVsbHNjcmVlbk1hbmFnZXJTZXRIYXNWaWRlb0NvbnRlbnRMYXllciAgICAgICAgICAgICAgICAg
c2V0SGFzVmlkZW9Db250ZW50TGF5ZXI7CisgICAgV0tWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyQ2xl
YW51cEZ1bGxzY3JlZW4gICAgICAgICAgICAgICAgICAgICAgIGNsZWFudXBGdWxsc2NyZWVuOwor
ICAgIFdLVmlkZW9GdWxsc2NyZWVuTWFuYWdlclByZXBhcmVkVG9SZXR1cm5Ub0lubGluZSAgICAg
ICAgICAgICAgICBwcmVwYXJlZFRvUmV0dXJuVG9JbmxpbmU7CisgICAgV0tWaWRlb0Z1bGxzY3Jl
ZW5NYW5hZ2VyUHJlcGFyZWRUb0V4aXRGdWxsc2NyZWVuICAgICAgICAgICAgICAgIHByZXBhcmVk
VG9FeGl0RnVsbHNjcmVlbjsKKyAgICBXS1ZpZGVvRnVsbHNjcmVlbk1hbmFnZXJFeGl0RnVsbHNj
cmVlbldpdGhvdXRBbmltYXRpb25Ub01vZGUgICAgZXhpdEZ1bGxzY3JlZW5XaXRob3V0QW5pbWF0
aW9uVG9Nb2RlOworfSBXS1ZpZGVvRnVsbHNjcmVlbk1hbmFnZXJJbmplY3RlZEJ1bmRsZUNsaWVu
dFYwOworCisjaWZkZWYgX19jcGx1c3BsdXMKK30KKyNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlldy5tbSBiL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXcubW0KaW5kZXggMmQzYTc5MDQzNDQ3ZTdkZmVi
NGE1OGQzNjk1YjU1YTVkOTFmYWE2NS4uODg3MzA5YWZiMzk3YTg5ZTZlMTU1ZTJlNDUwYmFlMmRk
MDQ4NzA2MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dL
V2ViVmlldy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJW
aWV3Lm1tCkBAIC0xMzI3LDYgKzEzMjcsMTMgQEAgLSAoTmFrZWRQdHI8V2ViS2l0OjpXZWJQYWdl
UHJveHk+KV9wYWdlCiAgICAgcmV0dXJuIF9wYWdlLmdldCgpOwogfQogCisjaWYgRU5BQkxFKFZJ
REVPX1BSRVNFTlRBVElPTl9NT0RFKQorLSAoV0tWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyUmVmKV92
aWRlb0Z1bGxzY3JlZW5NYW5hZ2VyRm9yVGVzdGluZworeworICAgIHJldHVybiB0b0FQSShfcGFn
ZS0+dmlkZW9GdWxsc2NyZWVuTWFuYWdlcigpKTsKK30KKyNlbmRpZgorCiAtIChpZCA8V0tVUkxT
Y2hlbWVIYW5kbGVyPil1cmxTY2hlbWVIYW5kbGVyRm9yVVJMU2NoZW1lOihOU1N0cmluZyAqKXVy
bFNjaGVtZQogewogICAgIGF1dG8qIGhhbmRsZXIgPSBzdGF0aWNfY2FzdDxXZWJLaXQ6OldlYlVS
TFNjaGVtZUhhbmRsZXJDb2NvYSo+KF9wYWdlLT51cmxTY2hlbWVIYW5kbGVyRm9yU2NoZW1lKHVy
bFNjaGVtZSkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29h
L1dLV2ViVmlld0ludGVybmFsLmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2Ev
V0tXZWJWaWV3SW50ZXJuYWwuaAppbmRleCA4NDBlM2I5MmJkMWUyYTU4MDE5OGZkYTk1MzFkNjQz
NDIwOGE5MjU0Li40NzE4MzQzMWE1ZDRlMTdkZmZkOGEzMmQ0MWFhY2RiNWQwODUzM2QxIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3SW50ZXJu
YWwuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3SW50
ZXJuYWwuaApAQCAtMjYxLDYgKzI2MSw3IEBAIGNsYXNzIFZpZXdHZXN0dXJlQ29udHJvbGxlcjsK
IAogLSAoV0tQYWdlUmVmKV9wYWdlRm9yVGVzdGluZzsKIC0gKE5ha2VkUHRyPFdlYktpdDo6V2Vi
UGFnZVByb3h5PilfcGFnZTsKKy0gKFdLVmlkZW9GdWxsc2NyZWVuTWFuYWdlclJlZilfdmlkZW9G
dWxsc2NyZWVuTWFuYWdlckZvclRlc3Rpbmc7CiAKIEBlbmQKIApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvVmlkZW9GdWxsc2NyZWVuTWFuYWdlckluamVjdGVkQnVu
ZGxlQ2xpZW50LmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1ZpZGVvRnVsbHNj
cmVlbk1hbmFnZXJJbmplY3RlZEJ1bmRsZUNsaWVudC5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMDhhNTQxYjIz
OTM0YTdhODZjZjhkNTNhZDJlY2UwN2MyZTY1NzNlMwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1ZpZGVvRnVsbHNjcmVlbk1hbmFnZXJJbmplY3RlZEJ1
bmRsZUNsaWVudC5jcHAKQEAgLTAsMCArMSwxMDcgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIw
MjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9u
IGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICog
bW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBj
b25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBj
b2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJl
ZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29w
eXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhl
ciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMg
U09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBg
YEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBN
RVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBB
UkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJ
QlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFM
LCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBH
T09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lO
RVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9G
IExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9S
IFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4g
QU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQg
T0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAi
Y29uZmlnLmgiCisjaW5jbHVkZSAiVmlkZW9GdWxsc2NyZWVuTWFuYWdlckluamVjdGVkQnVuZGxl
Q2xpZW50LmgiCisKKyNpZiBFTkFCTEUoVklERU9fUFJFU0VOVEFUSU9OX01PREUpCisKKyNpbmNs
dWRlIDxXZWJDb3JlL0Zsb2F0U2l6ZS5oPgorI2luY2x1ZGUgPFdlYkNvcmUvSW50UmVjdC5oPgor
CituYW1lc3BhY2UgV2ViS2l0IHsKK3VzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOworCit2b2lkIFZp
ZGVvRnVsbHNjcmVlbk1hbmFnZXJJbmplY3RlZEJ1bmRsZUNsaWVudDo6c2V0SGFzVmlkZW8oVmlk
ZW9GdWxsc2NyZWVuTWFuYWdlclByb3h5KiwgdWludDY0X3QgY29udGV4dElkLCBib29sIGhhc1Zp
ZGVvKQoreworICAgIGlmICghbV9jbGllbnQuc2V0SGFzVmlkZW8pCisgICAgICAgIHJldHVybjsK
K30KKwordm9pZCBWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VySW5qZWN0ZWRCdW5kbGVDbGllbnQ6OnNl
dFZpZGVvRGltZW5zaW9ucyhWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyUHJveHkqLCB1aW50NjRfdCBj
b250ZXh0SWQsIFdlYkNvcmU6OkZsb2F0U2l6ZSB2aWRlb0RpbWVuc2lvbnMpCit7CisgICAgaWYg
KCFtX2NsaWVudC5zZXRWaWRlb0RpbWVuc2lvbnMpCisgICAgICAgIHJldHVybjsKK30KKwordm9p
ZCBWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VySW5qZWN0ZWRCdW5kbGVDbGllbnQ6OnNldHVwRnVsbHNj
cmVlbldpdGhJRChWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyUHJveHkqLCB1aW50NjRfdCBjb250ZXh0
SWQsIHVpbnQzMl90IHZpZGVvTGF5ZXJJRCwgV2ViQ29yZTo6SW50UmVjdCBpbml0aWFsUmVjdCwg
ZmxvYXQgaG9zdGluZ1NjYWxlRmFjdG9yLCBXZWJDb3JlOjpIVE1MTWVkaWFFbGVtZW50RW51bXM6
OlZpZGVvRnVsbHNjcmVlbk1vZGUsIGJvb2wgYWxsb3dzUGljdHVyZUluUGljdHVyZSwgYm9vbCBz
dGFuZGJ5KQoreworICAgIGlmICghbV9jbGllbnQuc2V0dXBGdWxsc2NyZWVuV2l0aElEKQorICAg
ICAgICByZXR1cm47Cit9CisKK3ZvaWQgVmlkZW9GdWxsc2NyZWVuTWFuYWdlckluamVjdGVkQnVu
ZGxlQ2xpZW50OjplbnRlckZ1bGxzY3JlZW4oVmlkZW9GdWxsc2NyZWVuTWFuYWdlclByb3h5Kiwg
dWludDY0X3QgY29udGV4dElkKQoreworICAgIGlmICghbV9jbGllbnQuZW50ZXJGdWxsc2NyZWVu
KQorICAgICAgICByZXR1cm47Cit9CisKK3ZvaWQgVmlkZW9GdWxsc2NyZWVuTWFuYWdlckluamVj
dGVkQnVuZGxlQ2xpZW50OjpleGl0RnVsbHNjcmVlbihWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyUHJv
eHkqLCB1aW50NjRfdCBjb250ZXh0SWQsIFdlYkNvcmU6OkludFJlY3QgZmluYWxSZWN0KQorewor
ICAgIGlmICghbV9jbGllbnQuZXhpdEZ1bGxzY3JlZW4pCisgICAgICAgIHJldHVybjsKK30KKwor
dm9pZCBWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VySW5qZWN0ZWRCdW5kbGVDbGllbnQ6OnNldElubGlu
ZVJlY3QoVmlkZW9GdWxsc2NyZWVuTWFuYWdlclByb3h5KiwgdWludDY0X3QgY29udGV4dElkLCBX
ZWJDb3JlOjpJbnRSZWN0IGlubGluZVJlY3QsIGJvb2wgdmlzaWJsZSkKK3sKKyAgICBpZiAoIW1f
Y2xpZW50LnNldElubGluZVJlY3QpCisgICAgICAgIHJldHVybjsKK30KKwordm9pZCBWaWRlb0Z1
bGxzY3JlZW5NYW5hZ2VySW5qZWN0ZWRCdW5kbGVDbGllbnQ6OnNldEhhc1ZpZGVvQ29udGVudExh
eWVyKFZpZGVvRnVsbHNjcmVlbk1hbmFnZXJQcm94eSosIHVpbnQ2NF90IGNvbnRleHRJZCwgYm9v
bCB2YWx1ZSkKK3sKKyAgICBpZiAoIW1fY2xpZW50LnNldEhhc1ZpZGVvQ29udGVudExheWVyKQor
ICAgICAgICByZXR1cm47Cit9CisKK3ZvaWQgVmlkZW9GdWxsc2NyZWVuTWFuYWdlckluamVjdGVk
QnVuZGxlQ2xpZW50OjpjbGVhbnVwRnVsbHNjcmVlbihWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyUHJv
eHkqLCB1aW50NjRfdCBjb250ZXh0SWQpCit7CisgICAgaWYgKCFtX2NsaWVudC5jbGVhbnVwRnVs
bHNjcmVlbikKKyAgICAgICAgcmV0dXJuOworfQorCit2b2lkIFZpZGVvRnVsbHNjcmVlbk1hbmFn
ZXJJbmplY3RlZEJ1bmRsZUNsaWVudDo6cHJlcGFyZWRUb1JldHVyblRvSW5saW5lKFZpZGVvRnVs
bHNjcmVlbk1hbmFnZXJQcm94eSosIHVpbnQ2NF90IGNvbnRleHRJZCwgYm9vbCB2aXNpYmxlLCBX
ZWJDb3JlOjpJbnRSZWN0IGlubGluZVJlY3QpCit7CisgICAgaWYgKCFtX2NsaWVudC5wcmVwYXJl
ZFRvUmV0dXJuVG9JbmxpbmUpCisgICAgICAgIHJldHVybjsKK30KKwordm9pZCBWaWRlb0Z1bGxz
Y3JlZW5NYW5hZ2VySW5qZWN0ZWRCdW5kbGVDbGllbnQ6OnByZXBhcmVkVG9FeGl0RnVsbHNjcmVl
bihWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyUHJveHkqLCB1aW50NjRfdCBjb250ZXh0SWQpCit7Cisg
ICAgaWYgKCFtX2NsaWVudC5wcmVwYXJlZFRvRXhpdEZ1bGxzY3JlZW4pCisgICAgICAgIHJldHVy
bjsKK30KKworI2lmIFBMQVRGT1JNKE1BQykgJiYgRU5BQkxFKFZJREVPX1BSRVNFTlRBVElPTl9N
T0RFKQordm9pZCBWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VySW5qZWN0ZWRCdW5kbGVDbGllbnQ6OmV4
aXRGdWxsc2NyZWVuV2l0aG91dEFuaW1hdGlvblRvTW9kZShWaWRlb0Z1bGxzY3JlZW5NYW5hZ2Vy
UHJveHkqLCB1aW50NjRfdCBjb250ZXh0SWQsIFdlYkNvcmU6OkhUTUxNZWRpYUVsZW1lbnRFbnVt
czo6VmlkZW9GdWxsc2NyZWVuTW9kZSkKK3sKKyAgICBpZiAoIW1fY2xpZW50LmV4aXRGdWxsc2Ny
ZWVuV2l0aG91dEFuaW1hdGlvblRvTW9kZSkKKyAgICAgICAgcmV0dXJuOworfQorI2VuZGlmCisK
K30gLy8gbmFtZXNwYWNlIFdlYktpdAorCisjZW5kaWYgLy8gRU5BQkxFKFZJREVPX1BSRVNFTlRB
VElPTl9NT0RFKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvVmlk
ZW9GdWxsc2NyZWVuTWFuYWdlckluamVjdGVkQnVuZGxlQ2xpZW50LmggYi9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9Db2NvYS9WaWRlb0Z1bGxzY3JlZW5NYW5hZ2VySW5qZWN0ZWRCdW5kbGVDbGll
bnQuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi5lNTNkMTBhYTEwNTJjYjNkYzE2NTdjYjZjZTFmMGI0NmI5NzI1OWFj
Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvVmlkZW9G
dWxsc2NyZWVuTWFuYWdlckluamVjdGVkQnVuZGxlQ2xpZW50LmgKQEAgLTAsMCArMSw3MCBAQAor
LyoKKyAqIENvcHlyaWdodCAoQykgMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQu
CisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jt
cywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlk
ZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRp
c3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdo
dAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3Qg
cmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRv
Y3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0
cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMu
IEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElN
UExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUg
SU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQ
QVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBB
UFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVD
VCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNF
UVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVN
RU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFU
QSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVT
RUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFD
VCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RI
RVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09G
VFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFN
QUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisjaWYgRU5BQkxFKFZJREVPX1BSRVNFTlRBVElP
Tl9NT0RFKQorCisjaW5jbHVkZSAiQVBJQ2xpZW50LmgiCisjaW5jbHVkZSAiV0tWaWRlb0Z1bGxz
Y3JlZW5NYW5hZ2VySW5qZWN0ZWRCdW5kbGVDbGllbnQuaCIKKyNpbmNsdWRlIDxXZWJDb3JlL0hU
TUxNZWRpYUVsZW1lbnRFbnVtcy5oPgorI2luY2x1ZGUgPHd0Zi9Gb3J3YXJkLmg+CisKK25hbWVz
cGFjZSBBUEkgewordGVtcGxhdGU8PiBzdHJ1Y3QgQ2xpZW50VHJhaXRzPFdLVmlkZW9GdWxsc2Ny
ZWVuTWFuYWdlckluamVjdGVkQnVuZGxlQ2xpZW50QmFzZT4geworICAgIHR5cGVkZWYgc3RkOjp0
dXBsZTxXS1ZpZGVvRnVsbHNjcmVlbk1hbmFnZXJJbmplY3RlZEJ1bmRsZUNsaWVudFYwPiBWZXJz
aW9uczsKK307Cit9CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKK2NsYXNzIEZsb2F0U2l6ZTsKK2Ns
YXNzIEludFJlY3Q7Cit9CisKK25hbWVzcGFjZSBXZWJLaXQgeworCitjbGFzcyBWaWRlb0Z1bGxz
Y3JlZW5NYW5hZ2VyUHJveHk7CisKK2NsYXNzIFZpZGVvRnVsbHNjcmVlbk1hbmFnZXJJbmplY3Rl
ZEJ1bmRsZUNsaWVudCA6IHB1YmxpYyBBUEk6OkNsaWVudDxXS1ZpZGVvRnVsbHNjcmVlbk1hbmFn
ZXJJbmplY3RlZEJ1bmRsZUNsaWVudEJhc2U+IHsKKyAgICBXVEZfTUFLRV9GQVNUX0FMTE9DQVRF
RDsKK3B1YmxpYzoKKyAgICB2b2lkIHNldEhhc1ZpZGVvKFZpZGVvRnVsbHNjcmVlbk1hbmFnZXJQ
cm94eSosIHVpbnQ2NF90IGNvbnRleHRJZCwgYm9vbCBoYXNWaWRlbyk7CisgICAgdm9pZCBzZXRW
aWRlb0RpbWVuc2lvbnMoVmlkZW9GdWxsc2NyZWVuTWFuYWdlclByb3h5KiwgdWludDY0X3QgY29u
dGV4dElkLCBXZWJDb3JlOjpGbG9hdFNpemUgdmlkZW9EaW1lbnNpb25zKTsKKyAgICB2b2lkIHNl
dHVwRnVsbHNjcmVlbldpdGhJRChWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyUHJveHkqLCB1aW50NjRf
dCBjb250ZXh0SWQsIHVpbnQzMl90IHZpZGVvTGF5ZXJJRCwgV2ViQ29yZTo6SW50UmVjdCBpbml0
aWFsUmVjdCwgZmxvYXQgaG9zdGluZ1NjYWxlRmFjdG9yLCBXZWJDb3JlOjpIVE1MTWVkaWFFbGVt
ZW50RW51bXM6OlZpZGVvRnVsbHNjcmVlbk1vZGUsIGJvb2wgYWxsb3dzUGljdHVyZUluUGljdHVy
ZSwgYm9vbCBzdGFuZGJ5KTsKKyAgICB2b2lkIGVudGVyRnVsbHNjcmVlbihWaWRlb0Z1bGxzY3Jl
ZW5NYW5hZ2VyUHJveHkqLCB1aW50NjRfdCBjb250ZXh0SWQpOworICAgIHZvaWQgZXhpdEZ1bGxz
Y3JlZW4oVmlkZW9GdWxsc2NyZWVuTWFuYWdlclByb3h5KiwgdWludDY0X3QgY29udGV4dElkLCBX
ZWJDb3JlOjpJbnRSZWN0IGZpbmFsUmVjdCk7CisgICAgdm9pZCBzZXRJbmxpbmVSZWN0KFZpZGVv
RnVsbHNjcmVlbk1hbmFnZXJQcm94eSosIHVpbnQ2NF90IGNvbnRleHRJZCwgV2ViQ29yZTo6SW50
UmVjdCBpbmxpbmVSZWN0LCBib29sIHZpc2libGUpOworICAgIHZvaWQgc2V0SGFzVmlkZW9Db250
ZW50TGF5ZXIoVmlkZW9GdWxsc2NyZWVuTWFuYWdlclByb3h5KiwgdWludDY0X3QgY29udGV4dElk
LCBib29sIHZhbHVlKTsKKyAgICB2b2lkIGNsZWFudXBGdWxsc2NyZWVuKFZpZGVvRnVsbHNjcmVl
bk1hbmFnZXJQcm94eSosIHVpbnQ2NF90IGNvbnRleHRJZCk7CisgICAgdm9pZCBwcmVwYXJlZFRv
UmV0dXJuVG9JbmxpbmUoVmlkZW9GdWxsc2NyZWVuTWFuYWdlclByb3h5KiwgdWludDY0X3QgY29u
dGV4dElkLCBib29sIHZpc2libGUsIFdlYkNvcmU6OkludFJlY3QgaW5saW5lUmVjdCk7CisgICAg
dm9pZCBwcmVwYXJlZFRvRXhpdEZ1bGxzY3JlZW4oVmlkZW9GdWxsc2NyZWVuTWFuYWdlclByb3h5
KiwgdWludDY0X3QgY29udGV4dElkKTsKKyNpZiBQTEFURk9STShNQUMpICYmIEVOQUJMRShWSURF
T19QUkVTRU5UQVRJT05fTU9ERSkKKyAgICB2b2lkIGV4aXRGdWxsc2NyZWVuV2l0aG91dEFuaW1h
dGlvblRvTW9kZShWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyUHJveHkqLCB1aW50NjRfdCBjb250ZXh0
SWQsIFdlYkNvcmU6OkhUTUxNZWRpYUVsZW1lbnRFbnVtczo6VmlkZW9GdWxsc2NyZWVuTW9kZSk7
CisjZW5kaWYKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdAorCisjZW5kaWYgLy8gRU5BQkxF
KFZJREVPX1BSRVNFTlRBVElPTl9NT0RFKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvQ29jb2EvVmlkZW9GdWxsc2NyZWVuTWFuYWdlclByb3h5LmggYi9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9Db2NvYS9WaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyUHJveHkuaAppbmRleCA0ZGZj
OWYxMDVhMmYzMGQ2MzQzZmFlYTdmNjc2OWFlYzM1ZGQyNzkxLi5jMTU0YmFhYzBhZjJkNWMxNjE0
Mzg5MzU1NWJkYzUzNzFhNjNkMzk4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9Db2NvYS9WaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyUHJveHkuaAorKysgYi9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9Db2NvYS9WaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyUHJveHkuaApAQCAtMjcsNyAr
MjcsOSBAQAogCiAjaWYgRU5BQkxFKFZJREVPX1BSRVNFTlRBVElPTl9NT0RFKQogCisjaW5jbHVk
ZSAiQVBJT2JqZWN0LmgiCiAjaW5jbHVkZSAiTWVzc2FnZVJlY2VpdmVyLmgiCisjaW5jbHVkZSAi
VmlkZW9GdWxsc2NyZWVuTWFuYWdlckluamVjdGVkQnVuZGxlQ2xpZW50LmgiCiAjaW5jbHVkZSA8
V2ViQ29yZS9BdWRpb1Nlc3Npb24uaD4KICNpbmNsdWRlIDxXZWJDb3JlL0dyYXBoaWNzTGF5ZXIu
aD4KICNpbmNsdWRlIDxXZWJDb3JlL1BsYXRmb3JtVmlldy5oPgpAQCAtNTMsMTAgKzU1LDEwIEBA
IHR5cGVkZWYgV2ViQ29yZTo6VmlkZW9GdWxsc2NyZWVuSW50ZXJmYWNlTWFjIFBsYXRmb3JtVmlk
ZW9GdWxsc2NyZWVuSW50ZXJmYWNlOwogCiBuYW1lc3BhY2UgV2ViS2l0IHsKIAotY2xhc3MgV2Vi
UGFnZVByb3h5OwogY2xhc3MgUGxheWJhY2tTZXNzaW9uTWFuYWdlclByb3h5OwogY2xhc3MgUGxh
eWJhY2tTZXNzaW9uTW9kZWxDb250ZXh0OwogY2xhc3MgVmlkZW9GdWxsc2NyZWVuTWFuYWdlclBy
b3h5OworY2xhc3MgV2ViUGFnZVByb3h5OwogCiBjbGFzcyBWaWRlb0Z1bGxzY3JlZW5Nb2RlbENv
bnRleHQgZmluYWwKICAgICA6IHB1YmxpYyBSZWZDb3VudGVkPFZpZGVvRnVsbHNjcmVlbk1vZGVs
Q29udGV4dD4KQEAgLTExNyw3ICsxMTksOSBAQCBwcml2YXRlOgogICAgIGJvb2wgbV9oYXNWaWRl
byB7IGZhbHNlIH07CiB9OwogCi1jbGFzcyBWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyUHJveHkgOiBw
dWJsaWMgUmVmQ291bnRlZDxWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyUHJveHk+LCBwcml2YXRlIElQ
Qzo6TWVzc2FnZVJlY2VpdmVyIHsKK2NsYXNzIFZpZGVvRnVsbHNjcmVlbk1hbmFnZXJQcm94eSA6
CisgICAgcHVibGljIEFQSTo6T2JqZWN0SW1wbDxBUEk6Ok9iamVjdDo6VHlwZTo6VmlkZW9GdWxs
c2NyZWVuTWFuYWdlcj4sCisgICAgcHJpdmF0ZSBJUEM6Ok1lc3NhZ2VSZWNlaXZlciB7CiBwdWJs
aWM6CiAgICAgc3RhdGljIFJlZjxWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyUHJveHk+IGNyZWF0ZShX
ZWJQYWdlUHJveHkmLCBQbGF5YmFja1Nlc3Npb25NYW5hZ2VyUHJveHkmKTsKICAgICB2aXJ0dWFs
IH5WaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyUHJveHkoKTsKQEAgLTEzMiwxNCArMTM2LDE0IEBAIHB1
YmxpYzoKIAogICAgIHZvaWQgcmVxdWVzdFJvdXRlU2hhcmluZ1BvbGljeUFuZENvbnRleHRVSUQo
dWludDY0X3QgY29udGV4dElkLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFdlYkNvcmU6OlJvdXRl
U2hhcmluZ1BvbGljeSwgU3RyaW5nKT4mJik7CiAKLSNpZiBFTkFCTEUoVklERU9fUFJFU0VOVEFU
SU9OX01PREUpCiAgICAgYm9vbCBpc1BsYXlpbmdWaWRlb0luRW5oYW5jZWRGdWxsc2NyZWVuKCkg
Y29uc3Q7Ci0jZW5kaWYKIAogICAgIFBsYXRmb3JtVmlkZW9GdWxsc2NyZWVuSW50ZXJmYWNlKiBj
b250cm9sc01hbmFnZXJJbnRlcmZhY2UoKTsKIAogICAgIHZvaWQgZm9yRWFjaFNlc3Npb24oRnVu
Y3Rpb248dm9pZChXZWJDb3JlOjpWaWRlb0Z1bGxzY3JlZW5Nb2RlbCYsIFBsYXRmb3JtVmlkZW9G
dWxsc2NyZWVuSW50ZXJmYWNlJik+JiYpOwogCisgICAgdm9pZCBzZXRJbmplY3RlZEJ1bmRsZUNs
aWVudChjb25zdCBXS1ZpZGVvRnVsbHNjcmVlbk1hbmFnZXJJbmplY3RlZEJ1bmRsZUNsaWVudEJh
c2UqKTsKKwogcHJpdmF0ZToKICAgICBmcmllbmQgY2xhc3MgVmlkZW9GdWxsc2NyZWVuTW9kZWxD
b250ZXh0OwogCkBAIC0xODksNiArMTkzLDggQEAgcHJpdmF0ZToKICAgICBIYXNoTWFwPHVpbnQ2
NF90LCBNb2RlbEludGVyZmFjZVR1cGxlPiBtX2NvbnRleHRNYXA7CiAgICAgdWludDY0X3QgbV9j
b250cm9sc01hbmFnZXJDb250ZXh0SWQgeyAwIH07CiAgICAgSGFzaE1hcDx1aW50NjRfdCwgaW50
PiBtX2NsaWVudENvdW50czsKKworICAgIHN0ZDo6dW5pcXVlX3B0cjxWaWRlb0Z1bGxzY3JlZW5N
YW5hZ2VySW5qZWN0ZWRCdW5kbGVDbGllbnQ+IG1faW5qZWN0ZWRCdW5kbGVDbGllbnQ7CiB9Owog
CiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL0NvY29hL1ZpZGVvRnVsbHNjcmVlbk1hbmFnZXJQcm94eS5tbSBiL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL0NvY29hL1ZpZGVvRnVsbHNjcmVlbk1hbmFnZXJQcm94eS5tbQppbmRleCAzMTYx
ZDliZDg5NTVmOTFjNTBmM2YyZjRhYTQ5OGE1MDE1OTNjMmY2Li5iNjljMzY4NTI4ZmI4N2VjYWI3
ZmZlYzJkMjIyMDBjNjljYzMxZDViIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9Db2NvYS9WaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyUHJveHkubW0KKysrIGIvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvQ29jb2EvVmlkZW9GdWxsc2NyZWVuTWFuYWdlclByb3h5Lm1tCkBAIC0zMyw2
ICszMyw3IEBACiAjaW1wb3J0ICJQbGF5YmFja1Nlc3Npb25NYW5hZ2VyUHJveHkuaCIKICNpbXBv
cnQgIlZpZGVvRnVsbHNjcmVlbk1hbmFnZXJNZXNzYWdlcy5oIgogI2ltcG9ydCAiVmlkZW9GdWxs
c2NyZWVuTWFuYWdlclByb3h5TWVzc2FnZXMuaCIKKyNpbXBvcnQgIldLVmlkZW9GdWxsc2NyZWVu
TWFuYWdlckluamVjdGVkQnVuZGxlQ2xpZW50LmgiCiAjaW1wb3J0ICJXZWJQYWdlUHJveHkuaCIK
ICNpbXBvcnQgIldlYlByb2Nlc3NQcm94eS5oIgogI2ltcG9ydCA8UXVhcnR6Q29yZS9Db3JlQW5p
bWF0aW9uLmg+CkBAIC0zMzYsNiArMzM3LDE3IEBAIFZpZGVvRnVsbHNjcmVlbk1hbmFnZXJQcm94
eTo6flZpZGVvRnVsbHNjcmVlbk1hbmFnZXJQcm94eSgpCiAgICAgaW52YWxpZGF0ZSgpOwogfQog
Cit2b2lkIFZpZGVvRnVsbHNjcmVlbk1hbmFnZXJQcm94eTo6c2V0SW5qZWN0ZWRCdW5kbGVDbGll
bnQoY29uc3QgV0tWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VySW5qZWN0ZWRCdW5kbGVDbGllbnRCYXNl
KiBjbGllbnQpCit7CisgICAgaWYgKCFjbGllbnQpIHsKKyAgICAgICAgbV9pbmplY3RlZEJ1bmRs
ZUNsaWVudCA9IG51bGxwdHI7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICBtX2luamVj
dGVkQnVuZGxlQ2xpZW50ID0gbWFrZVVuaXF1ZTxWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VySW5qZWN0
ZWRCdW5kbGVDbGllbnQ+KCk7CisgICAgbV9pbmplY3RlZEJ1bmRsZUNsaWVudC0+aW5pdGlhbGl6
ZShjbGllbnQpOworfQorCiB2b2lkIFZpZGVvRnVsbHNjcmVlbk1hbmFnZXJQcm94eTo6aW52YWxp
ZGF0ZSgpCiB7CiAgICAgbV9wYWdlLT5wcm9jZXNzKCkucmVtb3ZlTWVzc2FnZVJlY2VpdmVyKE1l
c3NhZ2VzOjpWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyUHJveHk6Om1lc3NhZ2VSZWNlaXZlck5hbWUo
KSwgbV9wYWdlLT53ZWJQYWdlSUQoKSk7CkBAIC0zNzUsNyArMzg3LDYgQEAgYm9vbCBWaWRlb0Z1
bGxzY3JlZW5NYW5hZ2VyUHJveHk6Om1heUF1dG9tYXRpY2FsbHlTaG93VmlkZW9QaWN0dXJlSW5Q
aWN0dXJlKCkgY28KICAgICByZXR1cm4gZmFsc2U7CiB9CiAKLSNpZiBFTkFCTEUoVklERU9fUFJF
U0VOVEFUSU9OX01PREUpCiBib29sIFZpZGVvRnVsbHNjcmVlbk1hbmFnZXJQcm94eTo6aXNQbGF5
aW5nVmlkZW9JbkVuaGFuY2VkRnVsbHNjcmVlbigpIGNvbnN0CiB7CiAgICAgZm9yIChhdXRvJiBb
bW9kZWwsIGludGVyZmFjZV0gOiBtX2NvbnRleHRNYXAudmFsdWVzKCkpIHsKQEAgLTM4NSw3ICsz
OTYsNiBAQCBib29sIFZpZGVvRnVsbHNjcmVlbk1hbmFnZXJQcm94eTo6aXNQbGF5aW5nVmlkZW9J
bkVuaGFuY2VkRnVsbHNjcmVlbigpIGNvbnN0CiAgICAgCiAgICAgcmV0dXJuIGZhbHNlOwogfQot
I2VuZGlmCiAKIFBsYXRmb3JtVmlkZW9GdWxsc2NyZWVuSW50ZXJmYWNlKiBWaWRlb0Z1bGxzY3Jl
ZW5NYW5hZ2VyUHJveHk6OmNvbnRyb2xzTWFuYWdlckludGVyZmFjZSgpCiB7CkBAIC00OTMsNiAr
NTAzLDE1IEBAIHZvaWQgVmlkZW9GdWxsc2NyZWVuTWFuYWdlclByb3h5OjpzZXR1cEZ1bGxzY3Jl
ZW5XaXRoSUQodWludDY0X3QgY29udGV4dElkLCB1aW50CiB7CiAgICAgTUVTU0FHRV9DSEVDS19D
T05URVhUSUQoY29udGV4dElkKTsKICAgICBNRVNTQUdFX0NIRUNLKHZpZGVvTGF5ZXJJRCk7Cisg
ICAgaWYgKG1faW5qZWN0ZWRCdW5kbGVDbGllbnQpIHsKKyAgICAgICAgbV9pbmplY3RlZEJ1bmRs
ZUNsaWVudC0+c2V0dXBGdWxsc2NyZWVuV2l0aElEKHRoaXMsIGNvbnRleHRJZCwgdmlkZW9MYXll
cklELCBpbml0aWFsUmVjdCwgaG9zdGluZ0RldmljZVNjYWxlRmFjdG9yLCB2aWRlb0Z1bGxzY3Jl
ZW5Nb2RlLCBhbGxvd3NQaWN0dXJlSW5QaWN0dXJlLCBzdGFuZGJ5KTsKKyNpZiBQTEFURk9STShJ
T1NfRkFNSUxZKQorICAgICAgICByZXF1ZXN0VmlkZW9Db250ZW50TGF5ZXIoY29udGV4dElkKTsK
KyNlbHNlCisgICAgICAgIGRpZFNldHVwRnVsbHNjcmVlbihjb250ZXh0SWQpOworI2VuZGlmCisg
ICAgICAgIHJldHVybjsKKyAgICB9CiAKICAgICBhdXRvJiBbbW9kZWwsIGludGVyZmFjZV0gPSBl
bnN1cmVNb2RlbEFuZEludGVyZmFjZShjb250ZXh0SWQpOwogICAgIGFkZENsaWVudEZvckNvbnRl
eHQoY29udGV4dElkKTsKQEAgLTUyNywxOCArNTQ2LDMzIEBAIHZvaWQgVmlkZW9GdWxsc2NyZWVu
TWFuYWdlclByb3h5OjpzZXR1cEZ1bGxzY3JlZW5XaXRoSUQodWludDY0X3QgY29udGV4dElkLCB1
aW50CiB2b2lkIFZpZGVvRnVsbHNjcmVlbk1hbmFnZXJQcm94eTo6c2V0SGFzVmlkZW8odWludDY0
X3QgY29udGV4dElkLCBib29sIGhhc1ZpZGVvKQogewogICAgIE1FU1NBR0VfQ0hFQ0tfQ09OVEVY
VElEKGNvbnRleHRJZCk7CisgICAgaWYgKG1faW5qZWN0ZWRCdW5kbGVDbGllbnQpIHsKKyAgICAg
ICAgbV9pbmplY3RlZEJ1bmRsZUNsaWVudC0+c2V0SGFzVmlkZW8odGhpcywgY29udGV4dElkLCBo
YXNWaWRlbyk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKICAgICBlbnN1cmVJbnRlcmZhY2Uo
Y29udGV4dElkKS5oYXNWaWRlb0NoYW5nZWQoaGFzVmlkZW8pOwogfQogCiB2b2lkIFZpZGVvRnVs
bHNjcmVlbk1hbmFnZXJQcm94eTo6c2V0VmlkZW9EaW1lbnNpb25zKHVpbnQ2NF90IGNvbnRleHRJ
ZCwgY29uc3QgRmxvYXRTaXplJiB2aWRlb0RpbWVuc2lvbnMpCiB7CiAgICAgTUVTU0FHRV9DSEVD
S19DT05URVhUSUQoY29udGV4dElkKTsKKyAgICBpZiAobV9pbmplY3RlZEJ1bmRsZUNsaWVudCkg
eworICAgICAgICBtX2luamVjdGVkQnVuZGxlQ2xpZW50LT5zZXRWaWRlb0RpbWVuc2lvbnModGhp
cywgY29udGV4dElkLCB2aWRlb0RpbWVuc2lvbnMpOworICAgICAgICByZXR1cm47CisgICAgfQor
CiAgICAgZW5zdXJlSW50ZXJmYWNlKGNvbnRleHRJZCkudmlkZW9EaW1lbnNpb25zQ2hhbmdlZCh2
aWRlb0RpbWVuc2lvbnMpOwogfQogCiB2b2lkIFZpZGVvRnVsbHNjcmVlbk1hbmFnZXJQcm94eTo6
ZW50ZXJGdWxsc2NyZWVuKHVpbnQ2NF90IGNvbnRleHRJZCkKIHsKICAgICBNRVNTQUdFX0NIRUNL
X0NPTlRFWFRJRChjb250ZXh0SWQpOworICAgIGlmIChtX2luamVjdGVkQnVuZGxlQ2xpZW50KSB7
CisgICAgICAgIG1faW5qZWN0ZWRCdW5kbGVDbGllbnQtPmVudGVyRnVsbHNjcmVlbih0aGlzLCBj
b250ZXh0SWQpOworICAgICAgICBkaWRFbnRlckZ1bGxzY3JlZW4oY29udGV4dElkKTsKKyAgICAg
ICAgcmV0dXJuOworICAgIH0KIAogICAgIGF1dG8mIGludGVyZmFjZSA9IGVuc3VyZUludGVyZmFj
ZShjb250ZXh0SWQpOwogICAgIGludGVyZmFjZS5lbnRlckZ1bGxzY3JlZW4oKTsKQEAgLTU1OCw2
ICs1OTIsMTMgQEAgdm9pZCBWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyUHJveHk6OmVudGVyRnVsbHNj
cmVlbih1aW50NjRfdCBjb250ZXh0SWQpCiB2b2lkIFZpZGVvRnVsbHNjcmVlbk1hbmFnZXJQcm94
eTo6ZXhpdEZ1bGxzY3JlZW4odWludDY0X3QgY29udGV4dElkLCBXZWJDb3JlOjpJbnRSZWN0IGZp
bmFsUmVjdCkKIHsKICAgICBNRVNTQUdFX0NIRUNLX0NPTlRFWFRJRChjb250ZXh0SWQpOworICAg
IGlmIChtX2luamVjdGVkQnVuZGxlQ2xpZW50KSB7CisgICAgICAgIG1faW5qZWN0ZWRCdW5kbGVD
bGllbnQtPmV4aXRGdWxsc2NyZWVuKHRoaXMsIGNvbnRleHRJZCwgZmluYWxSZWN0KTsKKyNpZiBQ
TEFURk9STShJT1NfRkFNSUxZKQorICAgICAgICByZXR1cm5WaWRlb0NvbnRlbnRMYXllcihjb250
ZXh0SWQpOworI2VuZGlmCisgICAgICAgIHJldHVybjsKKyAgICB9CiAKICAgICBBU1NFUlQobV9j
b250ZXh0TWFwLmNvbnRhaW5zKGNvbnRleHRJZCkpOwogICAgIGlmICghbV9jb250ZXh0TWFwLmNv
bnRhaW5zKGNvbnRleHRJZCkpCkBAIC01NzYsNiArNjE3LDExIEBAIHZvaWQgVmlkZW9GdWxsc2Ny
ZWVuTWFuYWdlclByb3h5OjpleGl0RnVsbHNjcmVlbih1aW50NjRfdCBjb250ZXh0SWQsIFdlYkNv
cmU6OkluCiB2b2lkIFZpZGVvRnVsbHNjcmVlbk1hbmFnZXJQcm94eTo6ZXhpdEZ1bGxzY3JlZW5X
aXRob3V0QW5pbWF0aW9uVG9Nb2RlKHVpbnQ2NF90IGNvbnRleHRJZCwgV2ViQ29yZTo6SFRNTE1l
ZGlhRWxlbWVudEVudW1zOjpWaWRlb0Z1bGxzY3JlZW5Nb2RlIHRhcmdldE1vZGUpCiB7CiAgICAg
TUVTU0FHRV9DSEVDS19DT05URVhUSUQoY29udGV4dElkKTsKKyAgICBpZiAobV9pbmplY3RlZEJ1
bmRsZUNsaWVudCkgeworICAgICAgICBtX2luamVjdGVkQnVuZGxlQ2xpZW50LT5leGl0RnVsbHNj
cmVlbldpdGhvdXRBbmltYXRpb25Ub01vZGUodGhpcywgY29udGV4dElkLCB0YXJnZXRNb2RlKTsK
KyAgICAgICAgcmV0dXJuOworICAgIH0KKwogICAgIGVuc3VyZUludGVyZmFjZShjb250ZXh0SWQp
LmV4aXRGdWxsc2NyZWVuV2l0aG91dEFuaW1hdGlvblRvTW9kZSh0YXJnZXRNb2RlKTsKIH0KICNl
bmRpZgpAQCAtNTg1LDEyICs2MzEsMjYgQEAgdm9pZCBWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyUHJv
eHk6OmV4aXRGdWxsc2NyZWVuV2l0aG91dEFuaW1hdGlvblRvTW9kZSh1aW50NjRfdAogdm9pZCBW
aWRlb0Z1bGxzY3JlZW5NYW5hZ2VyUHJveHk6OnNldElubGluZVJlY3QodWludDY0X3QgY29udGV4
dElkLCBjb25zdCBXZWJDb3JlOjpJbnRSZWN0JiBpbmxpbmVSZWN0LCBib29sIHZpc2libGUpCiB7
CiAgICAgTUVTU0FHRV9DSEVDS19DT05URVhUSUQoY29udGV4dElkKTsKKyAgICBpZiAobV9pbmpl
Y3RlZEJ1bmRsZUNsaWVudCkgeworICAgICAgICBtX2luamVjdGVkQnVuZGxlQ2xpZW50LT5zZXRJ
bmxpbmVSZWN0KHRoaXMsIGNvbnRleHRJZCwgaW5saW5lUmVjdCwgdmlzaWJsZSk7CisgICAgICAg
IHJldHVybjsKKyAgICB9CisKICAgICBlbnN1cmVJbnRlcmZhY2UoY29udGV4dElkKS5zZXRJbmxp
bmVSZWN0KGlubGluZVJlY3QsIHZpc2libGUpOwogfQogCiB2b2lkIFZpZGVvRnVsbHNjcmVlbk1h
bmFnZXJQcm94eTo6c2V0SGFzVmlkZW9Db250ZW50TGF5ZXIodWludDY0X3QgY29udGV4dElkLCBi
b29sIHZhbHVlKQogewogICAgIE1FU1NBR0VfQ0hFQ0tfQ09OVEVYVElEKGNvbnRleHRJZCk7Cisg
ICAgaWYgKG1faW5qZWN0ZWRCdW5kbGVDbGllbnQpIHsKKyAgICAgICAgbV9pbmplY3RlZEJ1bmRs
ZUNsaWVudC0+c2V0SGFzVmlkZW9Db250ZW50TGF5ZXIodGhpcywgY29udGV4dElkLCB2YWx1ZSk7
CisgICAgICAgIGlmICh2YWx1ZSkKKyAgICAgICAgICAgIGRpZFNldHVwRnVsbHNjcmVlbihjb250
ZXh0SWQpOworICAgICAgICBlbHNlCisgICAgICAgICAgICBkaWRFeGl0RnVsbHNjcmVlbihjb250
ZXh0SWQpOworICAgICAgICByZXR1cm47CisgICAgfQorCiAgICAgZW5zdXJlSW50ZXJmYWNlKGNv
bnRleHRJZCkuc2V0SGFzVmlkZW9Db250ZW50TGF5ZXIodmFsdWUpOwogfQogCkBAIC02MTEsMTIg
KzY3MSwyOCBAQCBOT19SRVRVUk5fRFVFX1RPX0FTU0VSVCB2b2lkIFZpZGVvRnVsbHNjcmVlbk1h
bmFnZXJQcm94eTo6c2V0SGFzVmlkZW9Db250ZW50TGF5ZQogdm9pZCBWaWRlb0Z1bGxzY3JlZW5N
YW5hZ2VyUHJveHk6OmNsZWFudXBGdWxsc2NyZWVuKHVpbnQ2NF90IGNvbnRleHRJZCkKIHsKICAg
ICBNRVNTQUdFX0NIRUNLX0NPTlRFWFRJRChjb250ZXh0SWQpOworICAgIGlmIChtX2luamVjdGVk
QnVuZGxlQ2xpZW50KSB7CisgICAgICAgIG1faW5qZWN0ZWRCdW5kbGVDbGllbnQtPmNsZWFudXBG
dWxsc2NyZWVuKHRoaXMsIGNvbnRleHRJZCk7CisgICAgICAgIGRpZENsZWFudXBGdWxsc2NyZWVu
KGNvbnRleHRJZCk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKICAgICBlbnN1cmVJbnRlcmZh
Y2UoY29udGV4dElkKS5jbGVhbnVwRnVsbHNjcmVlbigpOwogfQogCiB2b2lkIFZpZGVvRnVsbHNj
cmVlbk1hbmFnZXJQcm94eTo6cHJlcGFyZWRUb1JldHVyblRvSW5saW5lKHVpbnQ2NF90IGNvbnRl
eHRJZCwgYm9vbCB2aXNpYmxlLCBXZWJDb3JlOjpJbnRSZWN0IGlubGluZVJlY3QpCiB7CiAgICAg
TUVTU0FHRV9DSEVDS19DT05URVhUSUQoY29udGV4dElkKTsKKyAgICBpZiAobV9pbmplY3RlZEJ1
bmRsZUNsaWVudCkgeworICAgICAgICBtX3BhZ2UtPmZ1bGxzY3JlZW5NYXlSZXR1cm5Ub0lubGlu
ZSgpOworICAgICAgICBtX2luamVjdGVkQnVuZGxlQ2xpZW50LT5wcmVwYXJlZFRvUmV0dXJuVG9J
bmxpbmUodGhpcywgY29udGV4dElkLCB2aXNpYmxlLCBpbmxpbmVSZWN0KTsKKyNpZiAhUExBVEZP
Uk0oSU9TX0ZBTUlMWSkKKyAgICAgICAgSW50UmVjdCBpbmxpbmVXaW5kb3dSZWN0OworICAgICAg
ICBtX3BhZ2UtPnJvb3RWaWV3VG9XaW5kb3coaW5saW5lUmVjdCwgaW5saW5lV2luZG93UmVjdCk7
CisjZW5kaWYKKyAgICAgICAgcmV0dXJuOworICAgIH0KKwogICAgIG1fcGFnZS0+ZnVsbHNjcmVl
bk1heVJldHVyblRvSW5saW5lKCk7CiAKICNpZiBQTEFURk9STShJT1NfRkFNSUxZKQpAQCAtNjMx
LDYgKzcwNywxMSBAQCB2b2lkIFZpZGVvRnVsbHNjcmVlbk1hbmFnZXJQcm94eTo6cHJlcGFyZWRU
b1JldHVyblRvSW5saW5lKHVpbnQ2NF90IGNvbnRleHRJZCwgYgogdm9pZCBWaWRlb0Z1bGxzY3Jl
ZW5NYW5hZ2VyUHJveHk6OnByZXBhcmVkVG9FeGl0RnVsbHNjcmVlbih1aW50NjRfdCBjb250ZXh0
SWQpCiB7CiAgICAgTUVTU0FHRV9DSEVDS19DT05URVhUSUQoY29udGV4dElkKTsKKyAgICBpZiAo
bV9pbmplY3RlZEJ1bmRsZUNsaWVudCkgeworICAgICAgICBtX2luamVjdGVkQnVuZGxlQ2xpZW50
LT5wcmVwYXJlZFRvRXhpdEZ1bGxzY3JlZW4odGhpcywgY29udGV4dElkKTsKKyAgICAgICAgcmV0
dXJuOworICAgIH0KKwogICAgIGVuc3VyZUludGVyZmFjZShjb250ZXh0SWQpLnByZXBhcmVkVG9F
eGl0RnVsbHNjcmVlbigpOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYktpdC54
Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNlL1dlYktpdC9XZWJLaXQueGNvZGVwcm9q
L3Byb2plY3QucGJ4cHJvagppbmRleCAxOGFjOTlmNDhjNTljMDBmN2Y2MWQ1Y2Y1ODMxOGRjMzNm
ZmUzY2MzLi5mNWM3ODE4Y2Q5ZDkwOTFlNDFiNjBlMmQxOWFjMmU5Yzg5NzY4NGMyIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L1dlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBi
L1NvdXJjZS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTQxNyw2
ICs0MTcsMTEgQEAKIAkJMUNBOEI5NDYxMjdDODgyQTAwNTc2QzJCIC8qIFdlYkluc3BlY3RvclBy
b3h5TWVzc2FnZXMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDFDQThCOTQ0MTI3Qzg4MkEwMDU3NkMyQiAvKiBXZWJJbnNwZWN0b3JQcm94eU1lc3NhZ2Vz
LmggKi87IH07CiAJCTFDQkJFNEEwMTlCNjZDNTMwMDZCN0Q4MSAvKiBXZWJJbnNwZWN0b3JVSU1l
c3NhZ2VSZWNlaXZlci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSAxQ0JCRTQ5RTE5QjY2QzUzMDA2QjdEODEgLyogV2ViSW5zcGVjdG9yVUlNZXNzYWdl
UmVjZWl2ZXIuY3BwICovOyB9OwogCQkxQ0JCRTRBMTE5QjY2QzUzMDA2QjdEODEgLyogV2ViSW5z
cGVjdG9yVUlNZXNzYWdlcy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gMUNCQkU0OUYxOUI2NkM1MzAwNkI3RDgxIC8qIFdlYkluc3BlY3RvclVJTWVzc2Fn
ZXMuaCAqLzsgfTsKKwkJMUQyQzAyNTAyNDUyOEM3QzAwMjZBRDFGIC8qIFdLVmlkZW9GdWxsc2Ny
ZWVuTWFuYWdlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gMUQyQzAyNEUyNDUyOEM3QzAwMjZBRDFGIC8qIFdLVmlkZW9GdWxsc2NyZWVuTWFuYWdlci5o
ICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CisJCTFEMkMw
MjUxMjQ1MjhDN0MwMDI2QUQxRiAvKiBXS1ZpZGVvRnVsbHNjcmVlbk1hbmFnZXIuY3BwIGluIFNv
dXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMUQyQzAyNEYyNDUyOEM3
QzAwMjZBRDFGIC8qIFdLVmlkZW9GdWxsc2NyZWVuTWFuYWdlci5jcHAgKi87IH07CisJCTFEM0Ux
RTkwMjQ1MEQ5QUIwMDM2NDA1MiAvKiBWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VySW5qZWN0ZWRCdW5k
bGVDbGllbnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDFEM0UxRThFMjQ1MEQ5QUIwMDM2NDA1MiAvKiBWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VySW5qZWN0
ZWRCdW5kbGVDbGllbnQuaCAqLzsgfTsKKwkJMUQzRTFFOTEyNDUwRDlBQjAwMzY0MDUyIC8qIFZp
ZGVvRnVsbHNjcmVlbk1hbmFnZXJJbmplY3RlZEJ1bmRsZUNsaWVudC5jcHAgaW4gU291cmNlcyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxRDNFMUU4RjI0NTBEOUFCMDAzNjQw
NTIgLyogVmlkZW9GdWxsc2NyZWVuTWFuYWdlckluamVjdGVkQnVuZGxlQ2xpZW50LmNwcCAqLzsg
fTsKKwkJMUQzRTFFOTMyNDUwREMyQTAwMzY0MDUyIC8qIFdLVmlkZW9GdWxsc2NyZWVuTWFuYWdl
ckluamVjdGVkQnVuZGxlQ2xpZW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSAxRDNFMUU5MjI0NTBEQzJBMDAzNjQwNTIgLyogV0tWaWRlb0Z1bGxzY3Jl
ZW5NYW5hZ2VySW5qZWN0ZWRCdW5kbGVDbGllbnQuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRF
UyA9IChQcml2YXRlLCApOyB9OyB9OwogCQkxRDRENzM3MDIzQTlFNTQ3MDA3MTdBMjUgLyogUmVt
b3RlTWVkaWFSZXNvdXJjZU1hbmFnZXJNZXNzYWdlUmVjZWl2ZXIuY3BwIGluIFNvdXJjZXMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMUQ0RDczNkIyM0E5REY1NTAwNzE3QTI1
IC8qIFJlbW90ZU1lZGlhUmVzb3VyY2VNYW5hZ2VyTWVzc2FnZVJlY2VpdmVyLmNwcCAqLzsgfTsK
IAkJMUQ0RDczNzEyM0E5RTU2MjAwNzE3QTI1IC8qIFJlbW90ZU1lZGlhUmVzb3VyY2VNYW5hZ2Vy
TWVzc2FnZXMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDFENEQ3MzZDMjNBOURGNjAwMDcxN0EyNSAvKiBSZW1vdGVNZWRpYVJlc291cmNlTWFuYWdlck1l
c3NhZ2VzLmggKi87IH07CiAJCTFENEQ3Mzc2MjNBOUVEMTgwMDcxN0EyNSAvKiBSZW1vdGVNZWRp
YVJlc291cmNlTWFuYWdlck1lc3NhZ2VzUmVwbGllcy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMUQ0RDczNzUyM0E5RUI2ODAwNzE3QTI1IC8qIFJlbW90
ZU1lZGlhUmVzb3VyY2VNYW5hZ2VyTWVzc2FnZXNSZXBsaWVzLmggKi87IH07CkBAIC0yNzQxLDYg
KzI3NDYsOCBAQAogCQkxQ0JCRTQ5RjE5QjY2QzUzMDA2QjdEODEgLyogV2ViSW5zcGVjdG9yVUlN
ZXNzYWdlcy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBXZWJJbnNwZWN0b3JV
SU1lc3NhZ2VzLmg7IHBhdGggPSBEZXJpdmVkU291cmNlcy9XZWJLaXQyL1dlYkluc3BlY3RvclVJ
TWVzc2FnZXMuaDsgc291cmNlVHJlZSA9IEJVSUxUX1BST0RVQ1RTX0RJUjsgfTsKIAkJMUQwRUNF
QUEyM0ZDODU4NDAwRDE3MkY2IC8qIFJlbW90ZU1lZGlhUGxheWVyUHJveHlDb2NvYS5tbSAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Y3BwLm9iamNwcDsgcGF0aCA9IFJlbW90ZU1lZGlhUGxheWVyUHJveHlDb2NvYS5tbTsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMUQxMkNDMjcyNDBFREY2RDAwRkRBMEEzIC8qIFdlYktp
dC5wbGlzdCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9
IHRleHQucGxpc3QueG1sOyBwYXRoID0gV2ViS2l0LnBsaXN0OyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OworCQkxRDJDMDI0RTI0NTI4QzdDMDAyNkFEMUYgLyogV0tWaWRlb0Z1bGxzY3JlZW5N
YW5hZ2VyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdLVmlkZW9GdWxsc2NyZWVuTWFuYWdlci5oOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OworCQkxRDJDMDI0RjI0NTI4QzdDMDAyNkFEMUYgLyogV0tW
aWRlb0Z1bGxzY3JlZW5NYW5hZ2VyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFdLVmlkZW9GdWxs
c2NyZWVuTWFuYWdlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTFEMzJGODk4
MjNBODQ2NUEwMEIxRUE2QSAvKiBSZW1vdGVNZWRpYVJlc291cmNlLmggKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9
IFJlbW90ZU1lZGlhUmVzb3VyY2UuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMUQz
MkY4OTkyM0E4NDY4MDAwQjFFQTZBIC8qIFJlbW90ZU1lZGlhUmVzb3VyY2UuY3BwICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAu
Y3BwOyBwYXRoID0gUmVtb3RlTWVkaWFSZXNvdXJjZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CiAJCTFEMzJGODlCMjNBODRCQTYwMEIxRUE2QSAvKiBSZW1vdGVNZWRpYVJlc291cmNl
UHJveHkuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUmVtb3RlTWVkaWFSZXNvdXJjZVByb3h5Lmg7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0yNzQ4LDYgKzI3NTUsOSBAQAogCQkxRDMyRjhBNjIz
QTg2MDE5MDBCMUVBNkEgLyogUmVtb3RlTWVkaWFSZXNvdXJjZU1hbmFnZXIubWVzc2FnZXMuaW4g
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBw
YXRoID0gUmVtb3RlTWVkaWFSZXNvdXJjZU1hbmFnZXIubWVzc2FnZXMuaW47IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCTFEM0FCMDREMjNBQjAwNzIwMDVDMUZGMCAvKiBSZW1vdGVNZWRp
YVJlc291cmNlTG9hZGVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFJlbW90ZU1lZGlhUmVzb3VyY2VMb2Fk
ZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMUQzQUIwNEUyM0FCMDA5QjAwNUMx
RkYwIC8qIFJlbW90ZU1lZGlhUmVzb3VyY2VMb2FkZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0g
UmVtb3RlTWVkaWFSZXNvdXJjZUxvYWRlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CisJCTFEM0UxRThFMjQ1MEQ5QUIwMDM2NDA1MiAvKiBWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VySW5q
ZWN0ZWRCdW5kbGVDbGllbnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gVmlkZW9GdWxsc2NyZWVuTWFuYWdl
ckluamVjdGVkQnVuZGxlQ2xpZW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTFE
M0UxRThGMjQ1MEQ5QUIwMDM2NDA1MiAvKiBWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VySW5qZWN0ZWRC
dW5kbGVDbGllbnQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gVmlkZW9GdWxsc2NyZWVuTWFuYWdl
ckluamVjdGVkQnVuZGxlQ2xpZW50LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJ
MUQzRTFFOTIyNDUwREMyQTAwMzY0MDUyIC8qIFdLVmlkZW9GdWxsc2NyZWVuTWFuYWdlckluamVj
dGVkQnVuZGxlQ2xpZW50LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IFdLVmlk
ZW9GdWxsc2NyZWVuTWFuYWdlckluamVjdGVkQnVuZGxlQ2xpZW50Lmg7IHBhdGggPSBVSVByb2Nl
c3MvQVBJL0MvV0tWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VySW5qZWN0ZWRCdW5kbGVDbGllbnQuaDsg
c291cmNlVHJlZSA9IFNPVVJDRV9ST09UOyB9OwogCQkxRDRENzM2QjIzQTlERjU1MDA3MTdBMjUg
LyogUmVtb3RlTWVkaWFSZXNvdXJjZU1hbmFnZXJNZXNzYWdlUmVjZWl2ZXIuY3BwICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGV4cGxpY2l0RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5j
cHA7IG5hbWUgPSBSZW1vdGVNZWRpYVJlc291cmNlTWFuYWdlck1lc3NhZ2VSZWNlaXZlci5jcHA7
IHBhdGggPSBEZXJpdmVkU291cmNlcy9XZWJLaXQyL1JlbW90ZU1lZGlhUmVzb3VyY2VNYW5hZ2Vy
TWVzc2FnZVJlY2VpdmVyLmNwcDsgc291cmNlVHJlZSA9IEJVSUxUX1BST0RVQ1RTX0RJUjsgfTsK
IAkJMUQ0RDczNkMyM0E5REY2MDAwNzE3QTI1IC8qIFJlbW90ZU1lZGlhUmVzb3VyY2VNYW5hZ2Vy
TWVzc2FnZXMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBleHBsaWNpdEZpbGVUeXBl
ID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBSZW1vdGVNZWRpYVJlc291cmNlTWFuYWdlck1lc3Nh
Z2VzLmg7IHBhdGggPSBEZXJpdmVkU291cmNlcy9XZWJLaXQyL1JlbW90ZU1lZGlhUmVzb3VyY2VN
YW5hZ2VyTWVzc2FnZXMuaDsgc291cmNlVHJlZSA9IEJVSUxUX1BST0RVQ1RTX0RJUjsgfTsKIAkJ
MUQ0RDczNzUyM0E5RUI2ODAwNzE3QTI1IC8qIFJlbW90ZU1lZGlhUmVzb3VyY2VNYW5hZ2VyTWVz
c2FnZXNSZXBsaWVzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZXhwbGljaXRGaWxl
VHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gUmVtb3RlTWVkaWFSZXNvdXJjZU1hbmFnZXJN
ZXNzYWdlc1JlcGxpZXMuaDsgcGF0aCA9IERlcml2ZWRTb3VyY2VzL1dlYktpdDIvUmVtb3RlTWVk
aWFSZXNvdXJjZU1hbmFnZXJNZXNzYWdlc1JlcGxpZXMuaDsgc291cmNlVHJlZSA9IEJVSUxUX1BS
T0RVQ1RTX0RJUjsgfTsKQEAgLTYzNjEsNiArNjM3MSw4IEBACiAJCQkJNDYzMjM2ODUyMzE0ODMz
RjAwQTQ4RkE3IC8qIFVJUmVtb3RlT2JqZWN0UmVnaXN0cnkuaCAqLywKIAkJCQlFNEU4NjQ4RTFC
MTY3M0ZCMDBDODJGNDAgLyogVmVyc2lvbkNoZWNrcy5oICovLAogCQkJCUU0RTg2NDhGMUIxNjcz
RkIwMEM4MkY0MCAvKiBWZXJzaW9uQ2hlY2tzLm1tICovLAorCQkJCTFEM0UxRThGMjQ1MEQ5QUIw
MDM2NDA1MiAvKiBWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VySW5qZWN0ZWRCdW5kbGVDbGllbnQuY3Bw
ICovLAorCQkJCTFEM0UxRThFMjQ1MEQ5QUIwMDM2NDA1MiAvKiBWaWRlb0Z1bGxzY3JlZW5NYW5h
Z2VySW5qZWN0ZWRCdW5kbGVDbGllbnQuaCAqLywKIAkJCQk1MkQ1QTFBQTFDNTc0OTRFMDBERTM0
QTMgLyogVmlkZW9GdWxsc2NyZWVuTWFuYWdlclByb3h5LmggKi8sCiAJCQkJNTJENUExQUIxQzU3
NDk0RTAwREUzNEEzIC8qIFZpZGVvRnVsbHNjcmVlbk1hbmFnZXJQcm94eS5tZXNzYWdlcy5pbiAq
LywKIAkJCQk1MkQ1QTFBQzFDNTc0OTRFMDBERTM0QTMgLyogVmlkZW9GdWxsc2NyZWVuTWFuYWdl
clByb3h5Lm1tICovLApAQCAtOTMxNyw2ICs5MzI5LDkgQEAKIAkJCQk0QTQxMEYzNjE5QUY3QUMz
MDAyRUJBQjUgLyogV0tVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdC5oICovLAogCQkJCTdDODlE
MkExMUE2Nzg4NzUwMDNBNUZERSAvKiBXS1VzZXJTY3JpcHRSZWYuY3BwICovLAogCQkJCTdDODlE
MkEyMUE2Nzg4NzUwMDNBNUZERSAvKiBXS1VzZXJTY3JpcHRSZWYuaCAqLywKKwkJCQkxRDJDMDI0
RjI0NTI4QzdDMDAyNkFEMUYgLyogV0tWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyLmNwcCAqLywKKwkJ
CQkxRDJDMDI0RTI0NTI4QzdDMDAyNkFEMUYgLyogV0tWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyLmgg
Ki8sCisJCQkJMUQzRTFFOTIyNDUwREMyQTAwMzY0MDUyIC8qIFdLVmlkZW9GdWxsc2NyZWVuTWFu
YWdlckluamVjdGVkQnVuZGxlQ2xpZW50LmggKi8sCiAJCQkJNUM2RTdEODcyMzIzNjFFNzAwQzIx
NTlEIC8qIFdLV2Vic2l0ZURhdGFTdG9yZUNvbmZpZ3VyYXRpb25SZWYuY3BwICovLAogCQkJCTVD
NkU3RDg2MjMyMzYxRTcwMEMyMTU5RCAvKiBXS1dlYnNpdGVEYXRhU3RvcmVDb25maWd1cmF0aW9u
UmVmLmggKi8sCiAJCQkJMUE1NzEwOUMxQUJBMDAyNzAwMkZBQkJFIC8qIFdLV2Vic2l0ZURhdGFT
dG9yZVJlZi5jcHAgKi8sCkBAIC0xMTE1OCw2ICsxMTE3Myw3IEBACiAJCQkJNEEzQ0MxOEQxOUIw
NjQxOTAwRDE0QUVGIC8qIFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UHJveHkuaCBpbiBIZWFk
ZXJzICovLAogCQkJCTA3NEU3NUZFMURGMjIxMTkwMEQzMThFQyAvKiBVc2VyTWVkaWFQcm9jZXNz
TWFuYWdlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJRTRFODY0OTMxQjE2NzUwNzAwQzgyRjQwIC8q
IFZlcnNpb25DaGVja3MuaCBpbiBIZWFkZXJzICovLAorCQkJCTFEM0UxRTkwMjQ1MEQ5QUIwMDM2
NDA1MiAvKiBWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VySW5qZWN0ZWRCdW5kbGVDbGllbnQuaCBpbiBI
ZWFkZXJzICovLAogCQkJCTUyRDVBMUIwMUM1NzQ5NUEwMERFMzRBMyAvKiBWaWRlb0Z1bGxzY3Jl
ZW5NYW5hZ2VyUHJveHkuaCBpbiBIZWFkZXJzICovLAogCQkJCTJEMTI1QzVFMTg1N0VBMDUwMDNC
QTNDQiAvKiBWaWV3R2VzdHVyZUNvbnRyb2xsZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCTJEMUI1
RDVFMTg1ODY5QzgwMDZDNjU5NiAvKiBWaWV3R2VzdHVyZUNvbnRyb2xsZXJNZXNzYWdlcy5oIGlu
IEhlYWRlcnMgKi8sCkBAIC0xMTc2Miw2ICsxMTc3OCw4IEBACiAJCQkJMUFBRjA4OUQxOTI2N0ZD
ODAwQjYzOTBDIC8qIFdLVXNlclNjcmlwdEludGVybmFsLmggaW4gSGVhZGVycyAqLywKIAkJCQk3
Qzg4MkRGQTFDN0U5OTczMDA2QkY3MzEgLyogV0tVc2VyU2NyaXB0UHJpdmF0ZS5oIGluIEhlYWRl
cnMgKi8sCiAJCQkJN0M4OUQyQTQxQTY3ODg3NTAwM0E1RkRFIC8qIFdLVXNlclNjcmlwdFJlZi5o
IGluIEhlYWRlcnMgKi8sCisJCQkJMUQyQzAyNTAyNDUyOEM3QzAwMjZBRDFGIC8qIFdLVmlkZW9G
dWxsc2NyZWVuTWFuYWdlci5oIGluIEhlYWRlcnMgKi8sCisJCQkJMUQzRTFFOTMyNDUwREMyQTAw
MzY0MDUyIC8qIFdLVmlkZW9GdWxsc2NyZWVuTWFuYWdlckluamVjdGVkQnVuZGxlQ2xpZW50Lmgg
aW4gSGVhZGVycyAqLywKIAkJCQlCQzg2OTlCNTExNkFBREFBMDAyQTkyNUIgLyogV0tWaWV3Lmgg
aW4gSGVhZGVycyAqLywKIAkJCQlCQzg2OTlCNzExNkFBREFBMDAyQTkyNUIgLyogV0tWaWV3SW50
ZXJuYWwuaCBpbiBIZWFkZXJzICovLAogCQkJCTJEMjhBNDk3MUFGOTY1QTEwMEYxOTBDOSAvKiBX
S1ZpZXdMYXlvdXRTdHJhdGVneS5oIGluIEhlYWRlcnMgKi8sCkBAIC0xMjk4MSw2ICsxMjk5OSw3
IEBACiAJCQkJRTM4QTFGQzAyM0E1NTFCRjAwRDIzNzRGIC8qIFVzZXJJbnRlcmZhY2VJZGlvbS5t
bSBpbiBTb3VyY2VzICovLAogCQkJCUNENDkxQjBEMUU3MzJFNEQwMDAwOTA2NiAvKiBVc2VyTWVk
aWFDYXB0dXJlTWFuYWdlck1lc3NhZ2VSZWNlaXZlci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlD
RDQ5MUIxNzFFNzM1MjU1MDAwMDkwNjYgLyogVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eU1l
c3NhZ2VSZWNlaXZlci5jcHAgaW4gU291cmNlcyAqLywKKwkJCQkxRDNFMUU5MTI0NTBEOUFCMDAz
NjQwNTIgLyogVmlkZW9GdWxsc2NyZWVuTWFuYWdlckluamVjdGVkQnVuZGxlQ2xpZW50LmNwcCBp
biBTb3VyY2VzICovLAogCQkJCTNGNDE4RUY5MTg4N0JEOTcwMDI3OTVGRCAvKiBWaWRlb0Z1bGxz
Y3JlZW5NYW5hZ2VyTWVzc2FnZVJlY2VpdmVyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTNGNDE4
RUZCMTg4N0JEOTcwMDI3OTVGRCAvKiBWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyUHJveHlNZXNzYWdl
UmVjZWl2ZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMkQxQjVENUQxODU4NjlDODAwNkM2NTk2
IC8qIFZpZXdHZXN0dXJlQ29udHJvbGxlck1lc3NhZ2VSZWNlaXZlci5jcHAgaW4gU291cmNlcyAq
LywKQEAgLTEzMDY2LDYgKzEzMDg1LDcgQEAKIAkJCQkxREIwMTk0NDIxMUNGMDA1MDA5RkIzRTgg
LyogV0tTaGFyZVNoZWV0Lm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJN0E3OEZGMzMyMjQxOTE5QjAw
OTY0ODNFIC8qIFdLU3RvcmFnZUFjY2Vzc0FsZXJ0Lm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJQ0Uy
MTIxNjAyNDBFRTU3MTAwNkVENDQzIC8qIFdLVGV4dFBsYWNlaG9sZGVyLm1tIGluIFNvdXJjZXMg
Ki8sCisJCQkJMUQyQzAyNTEyNDUyOEM3QzAwMjZBRDFGIC8qIFdLVmlkZW9GdWxsc2NyZWVuTWFu
YWdlci5jcHAgaW4gU291cmNlcyAqLywKIAkJCSk7CiAJCQlydW5Pbmx5Rm9yRGVwbG95bWVudFBv
c3Rwcm9jZXNzaW5nID0gMDsKIAkJfTsKZGlmZiAtLWdpdCBhL1Rvb2xzL0NoYW5nZUxvZyBiL1Rv
b2xzL0NoYW5nZUxvZwppbmRleCA5NTVhMjNlODQyZWJhMWQ1OTdmODk0ZjNkOTlmYmEwMTI5M2U0
MGQ5Li45YmIyMDBhYmZkOTAxODFmZGMwNzJhOWRiNGJlZjNlMzk4OTJkOTM2IDEwMDY0NAotLS0g
YS9Ub29scy9DaGFuZ2VMb2cKKysrIGIvVG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzAgQEAK
KzIwMjAtMDQtMjcgIFBlbmcgTGl1ICA8cGVuZy5saXU2QGFwcGxlLmNvbT4KKworICAgICAgICBV
cGRhdGUgV2ViS2l0VGVzdFJ1bm5lciB0byBzdXBwb3J0IHJ1bm5pbmcgbXVsdGlwbGUgdmlkZW8g
ZnVsbHNjcmVlbiBhbmQgUGljdHVyZS1pbi1QaWN0dXJlIHRlc3RzIHNpbXVsdGFuZW91c2x5Cisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDM3MjMKKwor
ICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFdlYktpdFRl
c3RSdW5uZXIvUGxhdGZvcm1XZWJWaWV3Lmg6CisgICAgICAgICogV2ViS2l0VGVzdFJ1bm5lci9U
ZXN0Q29udHJvbGxlci5jcHA6CisgICAgICAgIChXVFI6OlRlc3RDb250cm9sbGVyOjpjb25maWd1
cmVWaWV3Rm9yVGVzdCk6CisgICAgICAgIChXVFI6OlRlc3RDb250cm9sbGVyOjpzZXRIYXNWaWRl
b0Zyb21JbmplY3RlZEJ1bmRsZSk6CisgICAgICAgIChXVFI6OlRlc3RDb250cm9sbGVyOjpzZXRW
aWRlb0RpbWVuc2lvbnNGcm9tSW5qZWN0ZWRCdW5kbGUpOgorICAgICAgICAoV1RSOjpUZXN0Q29u
dHJvbGxlcjo6c2V0dXBGdWxsc2NyZWVuV2l0aElERnJvbUluamVjdGVkQnVuZGxlKToKKyAgICAg
ICAgKFdUUjo6VGVzdENvbnRyb2xsZXI6OmVudGVyRnVsbHNjcmVlbkZyb21JbmplY3RlZEJ1bmRs
ZSk6CisgICAgICAgIChXVFI6OlRlc3RDb250cm9sbGVyOjpleGl0RnVsbHNjcmVlbkZyb21Jbmpl
Y3RlZEJ1bmRsZSk6CisgICAgICAgIChXVFI6OlRlc3RDb250cm9sbGVyOjpzZXRJbmxpbmVSZWN0
RnJvbUluamVjdGVkQnVuZGxlKToKKyAgICAgICAgKFdUUjo6VGVzdENvbnRyb2xsZXI6OnNldEhh
c1ZpZGVvQ29udGVudExheWVyRnJvbUluamVjdGVkQnVuZGxlKToKKyAgICAgICAgKFdUUjo6VGVz
dENvbnRyb2xsZXI6OmNsZWFudXBGdWxsc2NyZWVuRnJvbUluamVjdGVkQnVuZGxlKToKKyAgICAg
ICAgKFdUUjo6VGVzdENvbnRyb2xsZXI6OnByZXBhcmVkVG9SZXR1cm5Ub0lubGluZUZyb21Jbmpl
Y3RlZEJ1bmRsZSk6CisgICAgICAgIChXVFI6OlRlc3RDb250cm9sbGVyOjpwcmVwYXJlZFRvRXhp
dEZ1bGxzY3JlZW5Gcm9tSW5qZWN0ZWRCdW5kbGUpOgorICAgICAgICAoV1RSOjpUZXN0Q29udHJv
bGxlcjo6ZXhpdEZ1bGxzY3JlZW5XaXRob3V0QW5pbWF0aW9uVG9Nb2RlRnJvbUluamVjdGVkQnVu
ZGxlKToKKyAgICAgICAgKiBXZWJLaXRUZXN0UnVubmVyL1Rlc3RDb250cm9sbGVyLmg6CisgICAg
ICAgICogV2ViS2l0VGVzdFJ1bm5lci9pb3MvUGxhdGZvcm1XZWJWaWV3SU9TLm1tOgorICAgICAg
ICAoV1RSOjpQbGF0Zm9ybVdlYlZpZXc6OnZpZGVvRnVsbHNjcmVlbk1hbmFnZXIpOgorICAgICAg
ICAqIFdlYktpdFRlc3RSdW5uZXIvbWFjL1BsYXRmb3JtV2ViVmlld01hYy5tbToKKyAgICAgICAg
KFdUUjo6UGxhdGZvcm1XZWJWaWV3Ojp2aWRlb0Z1bGxzY3JlZW5NYW5hZ2VyKToKKwogMjAyMC0w
NC0yNyAgRGFuaWVsIEJhdGVzICA8ZGFiYXRlc0BhcHBsZS5jb20+CiAKICAgICAgICAgQ2FyZXQg
bWF5IGJlIHBsYWNlZCBpbiB0aGUgd3Jvbmcgc3BvdCBmb3IgdGV4dCBpbnB1dCBjb250ZXh0IHRo
YXQgaXMgYSBmb3JtIGNvbnRyb2wKZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIv
UGxhdGZvcm1XZWJWaWV3LmggYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1BsYXRmb3JtV2ViVmll
dy5oCmluZGV4IDNhOGJiZThjZTZjYjIzMzhjZDU0ZjM4MDcxYTM2YzljZmUwZTYyMjEuLjc0ZjQy
ZGY1Y2QyOWExNDZkMzEzNTBlMTdlMDYzOTc0ZWI5NDIwMTYgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dl
YktpdFRlc3RSdW5uZXIvUGxhdGZvcm1XZWJWaWV3LmgKKysrIGIvVG9vbHMvV2ViS2l0VGVzdFJ1
bm5lci9QbGF0Zm9ybVdlYlZpZXcuaApAQCAtODMsNiArODMsNyBAQCBwdWJsaWM6CiAgICAgflBs
YXRmb3JtV2ViVmlldygpOwogCiAgICAgV0tQYWdlUmVmIHBhZ2UoKTsKKyAgICBXS1ZpZGVvRnVs
bHNjcmVlbk1hbmFnZXJSZWYgdmlkZW9GdWxsc2NyZWVuTWFuYWdlcigpOwogICAgIFBsYXRmb3Jt
V0tWaWV3IHBsYXRmb3JtVmlldygpIHsgcmV0dXJuIG1fdmlldzsgfQogICAgIFBsYXRmb3JtV2lu
ZG93IHBsYXRmb3JtV2luZG93KCkgeyByZXR1cm4gbV93aW5kb3c7IH0KICAgICBzdGF0aWMgUGxh
dGZvcm1XaW5kb3cga2V5V2luZG93KCk7CmRpZmYgLS1naXQgYS9Ub29scy9XZWJLaXRUZXN0UnVu
bmVyL1Rlc3RDb250cm9sbGVyLmNwcCBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvVGVzdENvbnRy
b2xsZXIuY3BwCmluZGV4IGFhNzIzZWQ4ZjQ5NjFhMjA4NDZmMTNhYWM4NTEwYmVhMWQzZmVmZWMu
LjcyNDkwMjU5MmE0OTUwMDVkMjNiNGY0M2M4MjBkZmUzMWNmNGI0NjggMTAwNjQ0Ci0tLSBhL1Rv
b2xzL1dlYktpdFRlc3RSdW5uZXIvVGVzdENvbnRyb2xsZXIuY3BwCisrKyBiL1Rvb2xzL1dlYktp
dFRlc3RSdW5uZXIvVGVzdENvbnRyb2xsZXIuY3BwCkBAIC02Niw2ICs2Niw4IEBACiAjaW5jbHVk
ZSA8V2ViS2l0L1dLVXNlckNvbnRlbnRDb250cm9sbGVyUmVmLmg+CiAjaW5jbHVkZSA8V2ViS2l0
L1dLVXNlckNvbnRlbnRFeHRlbnNpb25TdG9yZVJlZi5oPgogI2luY2x1ZGUgPFdlYktpdC9XS1Vz
ZXJNZWRpYVBlcm1pc3Npb25DaGVjay5oPgorI2luY2x1ZGUgPFdlYktpdC9XS1ZpZGVvRnVsbHNj
cmVlbk1hbmFnZXIuaD4KKyNpbmNsdWRlIDxXZWJLaXQvV0tWaWRlb0Z1bGxzY3JlZW5NYW5hZ2Vy
SW5qZWN0ZWRCdW5kbGVDbGllbnQuaD4KICNpbmNsdWRlIDxXZWJLaXQvV0tXZWJzaXRlRGF0YVN0
b3JlQ29uZmlndXJhdGlvblJlZi5oPgogI2luY2x1ZGUgPFdlYktpdC9XS1dlYnNpdGVEYXRhU3Rv
cmVSZWYuaD4KICNpbmNsdWRlIDxXZWJLaXQvV0tXZWJzaXRlUG9saWNpZXMuaD4KQEAgLTE1NzUs
NiArMTU3NywyNCBAQCB2b2lkIFRlc3RDb250cm9sbGVyOjpjb25maWd1cmVWaWV3Rm9yVGVzdChj
b25zdCBUZXN0SW52b2NhdGlvbiYgdGVzdCkKICAgICB1cGRhdGVXaW5kb3dTY2FsZUZvclRlc3Qo
bWFpbldlYlZpZXcoKSwgdGVzdCk7CiAgICAgY29uZmlndXJlQ29udGVudEV4dGVuc2lvbkZvclRl
c3QodGVzdCk7CiAgICAgcGxhdGZvcm1Db25maWd1cmVWaWV3Rm9yVGVzdCh0ZXN0KTsKKworI2lm
IEVOQUJMRShWSURFT19QUkVTRU5UQVRJT05fTU9ERSkKKyAgICBXS1ZpZGVvRnVsbHNjcmVlbk1h
bmFnZXJJbmplY3RlZEJ1bmRsZUNsaWVudFYwIHZpZGVvRnVsbHNjcmVlbk1hbmFnZXJJbmplY3Rl
ZEJ1bmRsZUNsaWVudCA9IHsKKyAgICAgICAgeyAwLCB0aGlzIH0sCisgICAgICAgIHNldEhhc1Zp
ZGVvRnJvbUluamVjdGVkQnVuZGxlLAorICAgICAgICBzZXRWaWRlb0RpbWVuc2lvbnNGcm9tSW5q
ZWN0ZWRCdW5kbGUsCisgICAgICAgIHNldHVwRnVsbHNjcmVlbldpdGhJREZyb21JbmplY3RlZEJ1
bmRsZSwKKyAgICAgICAgZW50ZXJGdWxsc2NyZWVuRnJvbUluamVjdGVkQnVuZGxlLAorICAgICAg
ICBleGl0RnVsbHNjcmVlbkZyb21JbmplY3RlZEJ1bmRsZSwKKyAgICAgICAgc2V0SW5saW5lUmVj
dEZyb21JbmplY3RlZEJ1bmRsZSwKKyAgICAgICAgc2V0SGFzVmlkZW9Db250ZW50TGF5ZXJGcm9t
SW5qZWN0ZWRCdW5kbGUsCisgICAgICAgIGNsZWFudXBGdWxsc2NyZWVuRnJvbUluamVjdGVkQnVu
ZGxlLAorICAgICAgICBwcmVwYXJlZFRvUmV0dXJuVG9JbmxpbmVGcm9tSW5qZWN0ZWRCdW5kbGUs
CisgICAgICAgIHByZXBhcmVkVG9FeGl0RnVsbHNjcmVlbkZyb21JbmplY3RlZEJ1bmRsZSwKKyAg
ICAgICAgZXhpdEZ1bGxzY3JlZW5XaXRob3V0QW5pbWF0aW9uVG9Nb2RlRnJvbUluamVjdGVkQnVu
ZGxlCisgICAgfTsKKyAgICBXS1ZpZGVvRnVsbHNjcmVlbk1hbmFnZXJTZXRJbmplY3RlZEJ1bmRs
ZUNsaWVudChtX21haW5XZWJWaWV3LT52aWRlb0Z1bGxzY3JlZW5NYW5hZ2VyKCksICZ2aWRlb0Z1
bGxzY3JlZW5NYW5hZ2VySW5qZWN0ZWRCdW5kbGVDbGllbnQuYmFzZSk7CisjZW5kaWYKIH0KIAog
I2lmIEVOQUJMRShDT05URU5UX0VYVEVOU0lPTlMpICYmICFQTEFURk9STShDT0NPQSkKQEAgLTE4
OTIsNiArMTkxMiw1NSBAQCB2b2lkIFRlc3RDb250cm9sbGVyOjpkaWRSZWNlaXZlU3luY2hyb25v
dXNQYWdlTWVzc2FnZUZyb21JbmplY3RlZEJ1bmRsZVdpdGhMaXN0ZQogICAgIHN0YXRpY19jYXN0
PFRlc3RDb250cm9sbGVyKj4oY29uc3RfY2FzdDx2b2lkKj4oY2xpZW50SW5mbykpLT5kaWRSZWNl
aXZlU3luY2hyb25vdXNNZXNzYWdlRnJvbUluamVjdGVkQnVuZGxlKG1lc3NhZ2VOYW1lLCBtZXNz
YWdlQm9keSwgbGlzdGVuZXIpOwogfQogCisjaWYgRU5BQkxFKFZJREVPX1BSRVNFTlRBVElPTl9N
T0RFKQorCisvLyBXS1ZpZGVvRnVsbHNjcmVlbk1hbmFnZXJJbmplY3RlZEJ1bmRsZUNsaWVudAor
dm9pZCBUZXN0Q29udHJvbGxlcjo6c2V0SGFzVmlkZW9Gcm9tSW5qZWN0ZWRCdW5kbGUoV0tWaWRl
b0Z1bGxzY3JlZW5NYW5hZ2VyUmVmIG1hbmFnZXIsIHVpbnQ2NF90IGNvbnRleHRJZCwgYm9vbCBo
YXNWaWRlbykKK3sKK30KKwordm9pZCBUZXN0Q29udHJvbGxlcjo6c2V0VmlkZW9EaW1lbnNpb25z
RnJvbUluamVjdGVkQnVuZGxlKFdLVmlkZW9GdWxsc2NyZWVuTWFuYWdlclJlZiBtYW5hZ2VyLCB1
aW50NjRfdCBjb250ZXh0SWQsIFdLU2l6ZSB2aWRlb0RpbWVuc2lvbnMpCit7Cit9CisKK3ZvaWQg
VGVzdENvbnRyb2xsZXI6OnNldHVwRnVsbHNjcmVlbldpdGhJREZyb21JbmplY3RlZEJ1bmRsZShX
S1ZpZGVvRnVsbHNjcmVlbk1hbmFnZXJSZWYgbWFuYWdlciwgdWludDY0X3QgY29udGV4dElkLCB1
aW50MzJfdCB2aWRlb0xheWVySUQsIFdLUmVjdCBpbml0aWFsUmVjdCwgZmxvYXQgaG9zdGluZ1Nj
YWxlRmFjdG9yLCBXS1ZpZGVvRnVsbHNjcmVlbk1vZGUgdmlkZW9GdWxsc2NyZWVuTW9kZSwgYm9v
bCBhbGxvd3NQaWN0dXJlSW5QaWN0dXJlLCBib29sIHN0YW5kYnkpCit7Cit9CisKK3ZvaWQgVGVz
dENvbnRyb2xsZXI6OmVudGVyRnVsbHNjcmVlbkZyb21JbmplY3RlZEJ1bmRsZShXS1ZpZGVvRnVs
bHNjcmVlbk1hbmFnZXJSZWYgbWFuYWdlciwgdWludDY0X3QgY29udGV4dElkKQoreworfQorCit2
b2lkIFRlc3RDb250cm9sbGVyOjpleGl0RnVsbHNjcmVlbkZyb21JbmplY3RlZEJ1bmRsZShXS1Zp
ZGVvRnVsbHNjcmVlbk1hbmFnZXJSZWYgbWFuYWdlciwgdWludDY0X3QgY29udGV4dElkLCBXS1Jl
Y3QgZmluYWxSZWN0KQoreworfQorCit2b2lkIFRlc3RDb250cm9sbGVyOjpzZXRJbmxpbmVSZWN0
RnJvbUluamVjdGVkQnVuZGxlKFdLVmlkZW9GdWxsc2NyZWVuTWFuYWdlclJlZiBtYW5hZ2VyLCB1
aW50NjRfdCBjb250ZXh0SWQsIFdLUmVjdCBpbmxpbmVSZWN0LCBib29sIHZpc2libGUpCit7Cit9
CisKK3ZvaWQgVGVzdENvbnRyb2xsZXI6OnNldEhhc1ZpZGVvQ29udGVudExheWVyRnJvbUluamVj
dGVkQnVuZGxlKFdLVmlkZW9GdWxsc2NyZWVuTWFuYWdlclJlZiBtYW5hZ2VyLCB1aW50NjRfdCBj
b250ZXh0SWQsIGJvb2wgdmFsdWUpCit7Cit9CisKK3ZvaWQgVGVzdENvbnRyb2xsZXI6OmNsZWFu
dXBGdWxsc2NyZWVuRnJvbUluamVjdGVkQnVuZGxlKFdLVmlkZW9GdWxsc2NyZWVuTWFuYWdlclJl
ZiBtYW5hZ2VyLCB1aW50NjRfdCBjb250ZXh0SWQpCit7Cit9CisKK3ZvaWQgVGVzdENvbnRyb2xs
ZXI6OnByZXBhcmVkVG9SZXR1cm5Ub0lubGluZUZyb21JbmplY3RlZEJ1bmRsZShXS1ZpZGVvRnVs
bHNjcmVlbk1hbmFnZXJSZWYgbWFuYWdlciwgdWludDY0X3QgY29udGV4dElkLCBib29sIHZpc2li
bGUsIFdLUmVjdCBpbmxpbmVSZWN0KQoreworfQorCit2b2lkIFRlc3RDb250cm9sbGVyOjpwcmVw
YXJlZFRvRXhpdEZ1bGxzY3JlZW5Gcm9tSW5qZWN0ZWRCdW5kbGUoV0tWaWRlb0Z1bGxzY3JlZW5N
YW5hZ2VyUmVmIG1hbmFnZXIsIHVpbnQ2NF90IGNvbnRleHRJZCkKK3sKK30KKwordm9pZCBUZXN0
Q29udHJvbGxlcjo6ZXhpdEZ1bGxzY3JlZW5XaXRob3V0QW5pbWF0aW9uVG9Nb2RlRnJvbUluamVj
dGVkQnVuZGxlKFdLVmlkZW9GdWxsc2NyZWVuTWFuYWdlclJlZiBwYWdlLCB1aW50NjRfdCBjb250
ZXh0SWQsIFdLVmlkZW9GdWxsc2NyZWVuTW9kZSB2aWRlb0Z1bGxzY3JlZW5Nb2RlKQoreworfQor
CisjZW5kaWYKKwogdm9pZCBUZXN0Q29udHJvbGxlcjo6bmV0d29ya1Byb2Nlc3NEaWRDcmFzaChX
S0NvbnRleHRSZWYgY29udGV4dCwgY29uc3Qgdm9pZCAqY2xpZW50SW5mbykKIHsKICAgICBzdGF0
aWNfY2FzdDxUZXN0Q29udHJvbGxlcio+KGNvbnN0X2Nhc3Q8dm9pZCo+KGNsaWVudEluZm8pKS0+
bmV0d29ya1Byb2Nlc3NEaWRDcmFzaCgpOwpkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViS2l0VGVzdFJ1
bm5lci9UZXN0Q29udHJvbGxlci5oIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0Q29udHJv
bGxlci5oCmluZGV4IDE1Mjc4N2FhNzM0OTM2YTE4MjY4ZTJjZmI1YTExYzRkN2M4OWYwOWQuLmMw
YWQ4NTU0MTc1MDQwYzM4NjQ0MGUxYjQyYmE3OGFjNWM4YThkNmEgMTAwNjQ0Ci0tLSBhL1Rvb2xz
L1dlYktpdFRlc3RSdW5uZXIvVGVzdENvbnRyb2xsZXIuaAorKysgYi9Ub29scy9XZWJLaXRUZXN0
UnVubmVyL1Rlc3RDb250cm9sbGVyLmgKQEAgLTQ4LDYgKzQ4LDggQEAgT0JKQ19DTEFTUyBOU1N0
cmluZzsKIE9CSkNfQ0xBU1MgVUlLZXlib2FyZElucHV0TW9kZTsKIE9CSkNfQ0xBU1MgV0tXZWJW
aWV3Q29uZmlndXJhdGlvbjsKIAordHlwZWRlZiB1aW50MzJfdCBXS1ZpZGVvRnVsbHNjcmVlbk1v
ZGU7CisKIG5hbWVzcGFjZSBXVFIgewogCiBjbGFzcyBUZXN0SW52b2NhdGlvbjsKQEAgLTQyMyw2
ICs0MjUsMjEgQEAgcHJpdmF0ZToKICAgICB2b2lkIGRpZFJlY2VpdmVTeW5jaHJvbm91c01lc3Nh
Z2VGcm9tSW5qZWN0ZWRCdW5kbGUoV0tTdHJpbmdSZWYgbWVzc2FnZU5hbWUsIFdLVHlwZVJlZiBt
ZXNzYWdlQm9keSwgV0tNZXNzYWdlTGlzdGVuZXJSZWYpOwogICAgIFdLUmV0YWluUHRyPFdLVHlw
ZVJlZj4gZ2V0SW5qZWN0ZWRCdW5kbGVJbml0aWFsaXphdGlvblVzZXJEYXRhKCk7CiAKKyNpZiBF
TkFCTEUoVklERU9fUFJFU0VOVEFUSU9OX01PREUpCisgICAgLy8gV0tWaWRlb0Z1bGxzY3JlZW5N
YW5hZ2VySW5qZWN0ZWRCdW5kbGVDbGllbnQKKyAgICBzdGF0aWMgdm9pZCBzZXRIYXNWaWRlb0Zy
b21JbmplY3RlZEJ1bmRsZShXS1ZpZGVvRnVsbHNjcmVlbk1hbmFnZXJSZWYsIHVpbnQ2NF90IGNv
bnRleHRJZCwgYm9vbCBoYXNWaWRlbyk7CisgICAgc3RhdGljIHZvaWQgc2V0VmlkZW9EaW1lbnNp
b25zRnJvbUluamVjdGVkQnVuZGxlKFdLVmlkZW9GdWxsc2NyZWVuTWFuYWdlclJlZiwgdWludDY0
X3QgY29udGV4dElkLCBXS1NpemUgdmlkZW9EaW1lbnNpb25zKTsKKyAgICBzdGF0aWMgdm9pZCBz
ZXR1cEZ1bGxzY3JlZW5XaXRoSURGcm9tSW5qZWN0ZWRCdW5kbGUoV0tWaWRlb0Z1bGxzY3JlZW5N
YW5hZ2VyUmVmLCB1aW50NjRfdCBjb250ZXh0SWQsIHVpbnQzMl90IHZpZGVvTGF5ZXJJRCwgV0tS
ZWN0IGluaXRpYWxSZWN0LCBmbG9hdCBob3N0aW5nU2NhbGVGYWN0b3IsIFdLVmlkZW9GdWxsc2Ny
ZWVuTW9kZSwgYm9vbCBhbGxvd3NQaWN0dXJlSW5QaWN0dXJlLCBib29sIHN0YW5kYnkpOworICAg
IHN0YXRpYyB2b2lkIGVudGVyRnVsbHNjcmVlbkZyb21JbmplY3RlZEJ1bmRsZShXS1ZpZGVvRnVs
bHNjcmVlbk1hbmFnZXJSZWYsIHVpbnQ2NF90IGNvbnRleHRJZCk7CisgICAgc3RhdGljIHZvaWQg
ZXhpdEZ1bGxzY3JlZW5Gcm9tSW5qZWN0ZWRCdW5kbGUoV0tWaWRlb0Z1bGxzY3JlZW5NYW5hZ2Vy
UmVmLCB1aW50NjRfdCBjb250ZXh0SWQsIFdLUmVjdCBmaW5hbFJlY3QpOworICAgIHN0YXRpYyB2
b2lkIHNldElubGluZVJlY3RGcm9tSW5qZWN0ZWRCdW5kbGUoV0tWaWRlb0Z1bGxzY3JlZW5NYW5h
Z2VyUmVmLCB1aW50NjRfdCBjb250ZXh0SWQsIFdLUmVjdCBpbmxpbmVSZWN0LCBib29sIHZpc2li
bGUpOworICAgIHN0YXRpYyB2b2lkIHNldEhhc1ZpZGVvQ29udGVudExheWVyRnJvbUluamVjdGVk
QnVuZGxlKFdLVmlkZW9GdWxsc2NyZWVuTWFuYWdlclJlZiwgdWludDY0X3QgY29udGV4dElkLCBi
b29sIHZhbHVlKTsKKyAgICBzdGF0aWMgdm9pZCBjbGVhbnVwRnVsbHNjcmVlbkZyb21JbmplY3Rl
ZEJ1bmRsZShXS1ZpZGVvRnVsbHNjcmVlbk1hbmFnZXJSZWYsIHVpbnQ2NF90IGNvbnRleHRJZCk7
CisgICAgc3RhdGljIHZvaWQgcHJlcGFyZWRUb1JldHVyblRvSW5saW5lRnJvbUluamVjdGVkQnVu
ZGxlKFdLVmlkZW9GdWxsc2NyZWVuTWFuYWdlclJlZiwgdWludDY0X3QgY29udGV4dElkLCBib29s
IHZpc2libGUsIFdLUmVjdCBpbmxpbmVSZWN0KTsKKyAgICBzdGF0aWMgdm9pZCBwcmVwYXJlZFRv
RXhpdEZ1bGxzY3JlZW5Gcm9tSW5qZWN0ZWRCdW5kbGUoV0tWaWRlb0Z1bGxzY3JlZW5NYW5hZ2Vy
UmVmLCB1aW50NjRfdCBjb250ZXh0SWQpOworICAgIHN0YXRpYyB2b2lkIGV4aXRGdWxsc2NyZWVu
V2l0aG91dEFuaW1hdGlvblRvTW9kZUZyb21JbmplY3RlZEJ1bmRsZShXS1ZpZGVvRnVsbHNjcmVl
bk1hbmFnZXJSZWYsIHVpbnQ2NF90IGNvbnRleHRJZCwgV0tWaWRlb0Z1bGxzY3JlZW5Nb2RlKTsK
KyNlbmRpZgorCiAgICAgdm9pZCBkaWRSZWNlaXZlS2V5RG93bk1lc3NhZ2VGcm9tSW5qZWN0ZWRC
dW5kbGUoV0tEaWN0aW9uYXJ5UmVmIG1lc3NhZ2VCb2R5RGljdGlvbmFyeSwgYm9vbCBzeW5jaHJv
bm91cyk7CiAKICAgICAvLyBXS0NvbnRleHRDbGllbnQKQEAgLTQ2OCw3ICs0ODUsNiBAQCBwcml2
YXRlOgogCiAgICAgc3RhdGljIFdLUGx1Z2luTG9hZFBvbGljeSBkZWNpZGVQb2xpY3lGb3JQbHVn
aW5Mb2FkKFdLUGFnZVJlZiwgV0tQbHVnaW5Mb2FkUG9saWN5IGN1cnJlbnRQbHVnaW5Mb2FkUG9s
aWN5LCBXS0RpY3Rpb25hcnlSZWYgcGx1Z2luSW5mb3JtYXRpb24sIFdLU3RyaW5nUmVmKiB1bmF2
YWlsYWJpbGl0eURlc2NyaXB0aW9uLCBjb25zdCB2b2lkKiBjbGllbnRJbmZvKTsKICAgICBXS1Bs
dWdpbkxvYWRQb2xpY3kgZGVjaWRlUG9saWN5Rm9yUGx1Z2luTG9hZChXS1BhZ2VSZWYsIFdLUGx1
Z2luTG9hZFBvbGljeSBjdXJyZW50UGx1Z2luTG9hZFBvbGljeSwgV0tEaWN0aW9uYXJ5UmVmIHBs
dWdpbkluZm9ybWF0aW9uLCBXS1N0cmluZ1JlZiogdW5hdmFpbGFiaWxpdHlEZXNjcmlwdGlvbik7
Ci0gICAgCiAKICAgICBzdGF0aWMgdm9pZCBkZWNpZGVQb2xpY3lGb3JOb3RpZmljYXRpb25QZXJt
aXNzaW9uUmVxdWVzdChXS1BhZ2VSZWYsIFdLU2VjdXJpdHlPcmlnaW5SZWYsIFdLTm90aWZpY2F0
aW9uUGVybWlzc2lvblJlcXVlc3RSZWYsIGNvbnN0IHZvaWQqKTsKICAgICB2b2lkIGRlY2lkZVBv
bGljeUZvck5vdGlmaWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0KFdLUGFnZVJlZiwgV0tTZWN1cml0
eU9yaWdpblJlZiwgV0tOb3RpZmljYXRpb25QZXJtaXNzaW9uUmVxdWVzdFJlZik7CmRpZmYgLS1n
aXQgYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL2lvcy9QbGF0Zm9ybVdlYlZpZXdJT1MubW0gYi9U
b29scy9XZWJLaXRUZXN0UnVubmVyL2lvcy9QbGF0Zm9ybVdlYlZpZXdJT1MubW0KaW5kZXggZGNl
YTM4Y2RhY2U3NjgyNjUyMGIwYjFmZDhjZTAwOGJhM2JjN2E2NC4uYmE5MTU4OTc0YzUxNzM5Yjk2
ODk1NjZkMDlhZWRkYTRhZWMyM2ExNCAxMDA2NDQKLS0tIGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5l
ci9pb3MvUGxhdGZvcm1XZWJWaWV3SU9TLm1tCisrKyBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIv
aW9zL1BsYXRmb3JtV2ViVmlld0lPUy5tbQpAQCAtNDIsNiArNDIsNyBAQAogCiBAaW50ZXJmYWNl
IFdLV2ViVmlldyAoRGV0YWlscykKIC0gKFdLUGFnZVJlZilfcGFnZUZvclRlc3Rpbmc7CistIChX
S1ZpZGVvRnVsbHNjcmVlbk1hbmFnZXJSZWYpX3ZpZGVvRnVsbHNjcmVlbk1hbmFnZXJGb3JUZXN0
aW5nOwogQGVuZAogCiBAaW50ZXJmYWNlIFdlYktpdFRlc3RSdW5uZXJXaW5kb3cgOiBVSVdpbmRv
dyB7CkBAIC0yMzksNiArMjQwLDExIEBAIFdLUGFnZVJlZiBQbGF0Zm9ybVdlYlZpZXc6OnBhZ2Uo
KQogICAgIHJldHVybiBbbV92aWV3IF9wYWdlRm9yVGVzdGluZ107CiB9CiAKK1dLUGFnZVJlZiBQ
bGF0Zm9ybVdlYlZpZXc6OnZpZGVvRnVsbHNjcmVlbk1hbmFnZXIoKQoreworICAgIHJldHVybiBb
bV92aWV3IF92aWRlb0Z1bGxzY3JlZW5Gb3JUZXN0aW5nXTsKK30KKwogdm9pZCBQbGF0Zm9ybVdl
YlZpZXc6OmZvY3VzKCkKIHsKICAgICBtYWtlV2ViVmlld0ZpcnN0UmVzcG9uZGVyKCk7CmRpZmYg
LS1naXQgYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL21hYy9QbGF0Zm9ybVdlYlZpZXdNYWMubW0g
Yi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL21hYy9QbGF0Zm9ybVdlYlZpZXdNYWMubW0KaW5kZXgg
NjQxNzgyY2E5N2UxZGFmYjkwMDkxOWRiMTliMzQ3NGE1NTQzODhlNS4uZDFlNWU3NzkyYzAzOWRk
ZTllMzhmMzFjZTc1Y2E1ZmYzMzhlMGRmNCAxMDA2NDQKLS0tIGEvVG9vbHMvV2ViS2l0VGVzdFJ1
bm5lci9tYWMvUGxhdGZvcm1XZWJWaWV3TWFjLm1tCisrKyBiL1Rvb2xzL1dlYktpdFRlc3RSdW5u
ZXIvbWFjL1BsYXRmb3JtV2ViVmlld01hYy5tbQpAQCAtMzgsNiArMzgsNyBAQAogCiBAaW50ZXJm
YWNlIFdLV2ViVmlldyAoKQogLSAoV0tQYWdlUmVmKV9wYWdlRm9yVGVzdGluZzsKKy0gKFdLVmlk
ZW9GdWxsc2NyZWVuTWFuYWdlclJlZilfdmlkZW9GdWxsc2NyZWVuTWFuYWdlckZvclRlc3Rpbmc7
CiBAZW5kCiAKIHVzaW5nIG5hbWVzcGFjZSBXVFI7CkBAIC0xMTcsNiArMTE4LDExIEBAIFdLUGFn
ZVJlZiBQbGF0Zm9ybVdlYlZpZXc6OnBhZ2UoKQogICAgIHJldHVybiBbbV92aWV3IF9wYWdlRm9y
VGVzdGluZ107CiB9CiAKK1dLVmlkZW9GdWxsc2NyZWVuTWFuYWdlclJlZiBQbGF0Zm9ybVdlYlZp
ZXc6OnZpZGVvRnVsbHNjcmVlbk1hbmFnZXIoKQoreworICAgIHJldHVybiBbbV92aWV3IF92aWRl
b0Z1bGxzY3JlZW5NYW5hZ2VyRm9yVGVzdGluZ107Cit9CisKIHZvaWQgUGxhdGZvcm1XZWJWaWV3
Ojpmb2N1cygpCiB7CiAgICAgW21fd2luZG93IG1ha2VGaXJzdFJlc3BvbmRlcjpwbGF0Zm9ybVZp
ZXcoKV07CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9D
aGFuZ2VMb2cKaW5kZXggZWM3MmVkNWZjNjk0OGIwZjRiZDljOGY4MmIxZTE0ZmE0YWQzODJkZi4u
YWEwMmRlMWFlNGU4MTA3ZjlmZWY1ZDA2NmNkNjg4ZmVhNzQyNDgwYSAxMDA2NDQKLS0tIGEvTGF5
b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsx
LDEzIEBACisyMDIwLTA0LTI3ICBQZW5nIExpdSAgPHBlbmcubGl1NkBhcHBsZS5jb20+CisKKyAg
ICAgICAgVXBkYXRlIFdlYktpdFRlc3RSdW5uZXIgdG8gc3VwcG9ydCBydW5uaW5nIG11bHRpcGxl
IHZpZGVvIGZ1bGxzY3JlZW4gYW5kIFBpY3R1cmUtaW4tUGljdHVyZSB0ZXN0cyBzaW11bHRhbmVv
dXNseQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjAz
NzIzCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBt
ZWRpYS92aWRlby1wcmVzZW50YXRpb24tbW9kZS1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAg
ICAqIG1lZGlhL3ZpZGVvLXByZXNlbnRhdGlvbi1tb2RlLmh0bWw6IEFkZGVkLgorCiAyMDIwLTA0
LTI3ICBBbGljaWEgQm95YSBHYXJjw61hICA8YWJveWFAaWdhbGlhLmNvbT4KIAogICAgICAgICBb
R1N0cmVhbWVyXSBSZXdvcmsgV2ViS2l0V2ViU3JjIHRocmVhZGluZwpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvbWVkaWEvdmlkZW8tcHJlc2VudGF0aW9uLW1vZGUtZXhwZWN0ZWQudHh0IGIvTGF5
b3V0VGVzdHMvbWVkaWEvdmlkZW8tcHJlc2VudGF0aW9uLW1vZGUtZXhwZWN0ZWQudHh0Cm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAuLjU1MGU4NTNkN2U3M2VkODMxMzVmZWI5MmM3MDk5NTkzNzk2YmRmYjAKLS0tIC9kZXYv
bnVsbAorKysgYi9MYXlvdXRUZXN0cy9tZWRpYS92aWRlby1wcmVzZW50YXRpb24tbW9kZS1leHBl
Y3RlZC50eHQKQEAgLTAsMCArMSwzMiBAQAorCitUZXN0IHRoZSB2aWRlbyBwcmVzZW50YXRpb24g
bW9kZSAodmlkZW8gZnVsbHNjcmVlbiBhbmQgcGljdHVyZS1pbi1waWN0dXJlKSBBUEkuCisKKwor
RVZFTlQoY2FucGxheXRocm91Z2gpCitFWFBFQ1RFRCAodmlkZW8ud2Via2l0U3VwcG9ydHNGdWxs
c2NyZWVuID09ICd0cnVlJykgT0sKK0VYUEVDVEVEICh2aWRlby53ZWJraXREaXNwbGF5aW5nRnVs
bHNjcmVlbiA9PSAnZmFsc2UnKSBPSworCisqKiBUcnkgdG8gZW50ZXIgZnVsbHNjcmVlbgorUlVO
KHZpZGVvLndlYmtpdFNldFByZXNlbnRhdGlvbk1vZGUoJ2Z1bGxzY3JlZW4nKSkKK0VWRU5UKHdl
YmtpdHByZXNlbnRhdGlvbm1vZGVjaGFuZ2VkKQorCisqKiBFbnRlcmVkIGZ1bGxzY3JlZW4KK0VY
UEVDVEVEICh2aWRlby53ZWJraXRQcmVzZW50YXRpb25Nb2RlID09ICdmdWxsc2NyZWVuJykgT0sK
KworKiogVHJ5IHRvIGVudGVyIHBpY3R1cmUtaW4tcGljdHVyZQorUlVOKHZpZGVvLndlYmtpdFNl
dFByZXNlbnRhdGlvbk1vZGUoJ3BpY3R1cmUtaW4tcGljdHVyZScpKQorRVZFTlQod2Via2l0cHJl
c2VudGF0aW9ubW9kZWNoYW5nZWQpCisKKyoqIEVudGVyZWQgcGljdHVyZS1pbi1waWN0dXIKK0VY
UEVDVEVEICh2aWRlby53ZWJraXRQcmVzZW50YXRpb25Nb2RlID09ICdwaWN0dXJlLWluLXBpY3R1
cmUnKSBPSworCisqKiBUcnkgdG8gcmV0dXJuIHRvIGlubGluZQorUlVOKHZpZGVvLndlYmtpdFNl
dFByZXNlbnRhdGlvbk1vZGUoJ2lubGluZScpKQorRVZFTlQod2Via2l0cHJlc2VudGF0aW9ubW9k
ZWNoYW5nZWQpCisKKyoqIFJldHVybmVkIHRvIGlubGluZQorRVhQRUNURUQgKHZpZGVvLndlYmtp
dFByZXNlbnRhdGlvbk1vZGUgPT0gJ2lubGluZScpIE9LCisKKyoqIFRlc3QgQ29tcGxldGVkCitF
TkQgT0YgVEVTVAorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9tZWRpYS92aWRlby1wcmVzZW50
YXRpb24tbW9kZS5odG1sIGIvTGF5b3V0VGVzdHMvbWVkaWEvdmlkZW8tcHJlc2VudGF0aW9uLW1v
ZGUuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi4zZmY0MzZlMGUxMjExYzBjNzE2YTI3YWFlMWRkNDRlMGEzOTUy
ZjUxCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvbWVkaWEvdmlkZW8tcHJlc2VudGF0
aW9uLW1vZGUuaHRtbApAQCAtMCwwICsxLDYxIEBACis8IWRvY3R5cGUgaHRtbD4KKzxodG1sPgor
ICAgIDxoZWFkPgorICAgICAgICA8c2NyaXB0IHNyYz1tZWRpYS1maWxlLmpzPjwvc2NyaXB0Pgor
ICAgICAgICA8c2NyaXB0IHNyYz12aWRlby10ZXN0LmpzPjwvc2NyaXB0PgorICAgICAgICA8c2Ny
aXB0PgorICAgICAgICAgICAgZnVuY3Rpb24gc3RhcnQoKQorICAgICAgICAgICAgeworICAgICAg
ICAgICAgICAgIGlmICh3aW5kb3cuaW50ZXJuYWxzKQorICAgICAgICAgICAgICAgICAgICB3aW5k
b3cuaW50ZXJuYWxzLnNldHRpbmdzLnNldEFsbG93c1BpY3R1cmVJblBpY3R1cmVNZWRpYVBsYXli
YWNrKHRydWUpOworCisgICAgICAgICAgICAgICAgdmlkZW8gPSBkb2N1bWVudC5nZXRFbGVtZW50
c0J5VGFnTmFtZSgndmlkZW8nKVswXTsKKyAgICAgICAgICAgICAgICB3YWl0Rm9yRXZlbnRPbmNl
KCJjYW5wbGF5dGhyb3VnaCIsIGNhbnBsYXl0aHJvdWdoKTsKKyAgICAgICAgICAgICAgICB2aWRl
by5zcmMgPSBmaW5kTWVkaWFGaWxlKCJ2aWRlbyIsICJjb250ZW50L3Rlc3QiKTsKKworICAgICAg
ICAgICAgICAgIGNvbnNvbGVXcml0ZSgiIik7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAg
IGZ1bmN0aW9uIGNhbnBsYXl0aHJvdWdoKCkKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAg
ICB0ZXN0RXhwZWN0ZWQoInZpZGVvLndlYmtpdFN1cHBvcnRzRnVsbHNjcmVlbiIsIHRydWUpOwor
ICAgICAgICAgICAgICAgIHRlc3RFeHBlY3RlZCgidmlkZW8ud2Via2l0RGlzcGxheWluZ0Z1bGxz
Y3JlZW4iLCBmYWxzZSk7CisKKyAgICAgICAgICAgICAgICBjb25zb2xlV3JpdGUoIjxicj4qKiBU
cnkgdG8gZW50ZXIgZnVsbHNjcmVlbiIpOworICAgICAgICAgICAgICAgIHJ1bldpdGhLZXlEb3du
KCJ2aWRlby53ZWJraXRTZXRQcmVzZW50YXRpb25Nb2RlKCdmdWxsc2NyZWVuJykiKTsKKyAgICAg
ICAgICAgICAgICB3YWl0Rm9yRXZlbnRPbmNlKCd3ZWJraXRwcmVzZW50YXRpb25tb2RlY2hhbmdl
ZCcsIHByZXNlbnRhdGlvbk1vZGVDaGFuZ2VkMSk7CisgICAgICAgICAgICB9CisKKyAgICAgICAg
ICAgIGZ1bmN0aW9uIHByZXNlbnRhdGlvbk1vZGVDaGFuZ2VkMSgpCisgICAgICAgICAgICB7Cisg
ICAgICAgICAgICAgICAgY29uc29sZVdyaXRlKCI8YnI+KiogRW50ZXJlZCBmdWxsc2NyZWVuIik7
CisgICAgICAgICAgICAgICAgdGVzdEV4cGVjdGVkKCJ2aWRlby53ZWJraXRQcmVzZW50YXRpb25N
b2RlIiwgImZ1bGxzY3JlZW4iKTsKKyAgICAgICAgICAgICAgICBjb25zb2xlV3JpdGUoIjxicj4q
KiBUcnkgdG8gZW50ZXIgcGljdHVyZS1pbi1waWN0dXJlIik7CisgICAgICAgICAgICAgICAgd2Fp
dEZvckV2ZW50T25jZSgnd2Via2l0cHJlc2VudGF0aW9ubW9kZWNoYW5nZWQnLCBwcmVzZW50YXRp
b25Nb2RlQ2hhbmdlZDIpOworICAgICAgICAgICAgICAgIHJ1bldpdGhLZXlEb3duKCJ2aWRlby53
ZWJraXRTZXRQcmVzZW50YXRpb25Nb2RlKCdwaWN0dXJlLWluLXBpY3R1cmUnKSIpOworICAgICAg
ICAgICAgfQorCisgICAgICAgICAgICBmdW5jdGlvbiBwcmVzZW50YXRpb25Nb2RlQ2hhbmdlZDIo
KQorICAgICAgICAgICAgeworICAgICAgICAgICAgICAgIGNvbnNvbGVXcml0ZSgiPGJyPioqIEVu
dGVyZWQgcGljdHVyZS1pbi1waWN0dXIiKTsKKyAgICAgICAgICAgICAgICB0ZXN0RXhwZWN0ZWQo
InZpZGVvLndlYmtpdFByZXNlbnRhdGlvbk1vZGUiLCAicGljdHVyZS1pbi1waWN0dXJlIik7Cisg
ICAgICAgICAgICAgICAgY29uc29sZVdyaXRlKCI8YnI+KiogVHJ5IHRvIHJldHVybiB0byBpbmxp
bmUiKTsKKyAgICAgICAgICAgICAgICB3YWl0Rm9yRXZlbnRPbmNlKCd3ZWJraXRwcmVzZW50YXRp
b25tb2RlY2hhbmdlZCcsIHRlc3RDb21wbGV0ZWQpOworICAgICAgICAgICAgICAgIHJ1bldpdGhL
ZXlEb3duKCJ2aWRlby53ZWJraXRTZXRQcmVzZW50YXRpb25Nb2RlKCdpbmxpbmUnKSIpOworICAg
ICAgICAgICAgfQorCisgICAgICAgICAgICBmdW5jdGlvbiB0ZXN0Q29tcGxldGVkKCkKKyAgICAg
ICAgICAgIHsKKyAgICAgICAgICAgICAgICBjb25zb2xlV3JpdGUoIjxicj4qKiBSZXR1cm5lZCB0
byBpbmxpbmUiKTsKKyAgICAgICAgICAgICAgICB0ZXN0RXhwZWN0ZWQoInZpZGVvLndlYmtpdFBy
ZXNlbnRhdGlvbk1vZGUiLCAiaW5saW5lIik7CisgICAgICAgICAgICAgICAgY29uc29sZVdyaXRl
KCI8YnI+KiogVGVzdCBDb21wbGV0ZWQiKTsKKyAgICAgICAgICAgICAgICBlbmRUZXN0KCk7Cisg
ICAgICAgICAgICB9CisgICAgICAgIDwvc2NyaXB0PgorICAgIDwvaGVhZD4KKworICAgIDxib2R5
IG9ubG9hZD0ic3RhcnQoKSI+CisgICAgICAgIDx2aWRlbyBjb250cm9scyBwbGF5c2lubGluZT48
L3ZpZGVvPgorICAgICAgICA8cD5UZXN0IHRoZSB2aWRlbyBwcmVzZW50YXRpb24gbW9kZSAodmlk
ZW8gZnVsbHNjcmVlbiBhbmQgcGljdHVyZS1pbi1waWN0dXJlKSBBUEkuPC9wPgorICAgIDwvYm9k
eT4KKzwvaHRtbD4K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>397801</attachid>
            <date>2020-04-27 21:41:15 -0700</date>
            <delta_ts>2020-04-27 23:25:39 -0700</delta_ts>
            <desc>WIP patch - fix iOS build failures</desc>
            <filename>bug-203723-20200427214114.patch</filename>
            <type>text/plain</type>
            <size>61761</size>
            <attacher name="Peng Liu">peng.liu6</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjYwNzYyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDgyOWY2OGJjOTgyNWZkYjhm
YmY1NDhjYmRjNDE0ODgyMDcyMWNiMDUuLmVlMjc1MjJiMzhhOTczMzBjZDY3Y2I1YWEzMTVkY2E5
Y2YwM2E5MGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNTEgQEAKKzIwMjAtMDQtMjcgIFBlbmcgTGl1
ICA8cGVuZy5saXU2QGFwcGxlLmNvbT4KKworICAgICAgICBVcGRhdGUgV2ViS2l0VGVzdFJ1bm5l
ciB0byBzdXBwb3J0IHJ1bm5pbmcgbXVsdGlwbGUgdmlkZW8gZnVsbHNjcmVlbiBhbmQgUGljdHVy
ZS1pbi1QaWN0dXJlIHRlc3RzIHNpbXVsdGFuZW91c2x5CisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDM3MjMKKworICAgICAgICBSZXZpZXdlZCBieSBO
T0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFNoYXJlZC9BUEkvQVBJT2JqZWN0Lmg6CisgICAg
ICAgICogU2hhcmVkL0FQSS9jL1dLQmFzZS5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQy9X
S0FQSUNhc3QuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0MvV0tQYWdlSW5qZWN0ZWRCdW5k
bGVDbGllbnQuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0MvV0tWaWRlb0Z1bGxzY3JlZW5N
YW5hZ2VyLmNwcDogQWRkZWQuCisgICAgICAgIChXS1ZpZGVvRnVsbHNjcmVlbk1hbmFnZXJTZXRJ
bmplY3RlZEJ1bmRsZUNsaWVudCk6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9DL1dLVmlkZW9G
dWxsc2NyZWVuTWFuYWdlci5oOiBBZGRlZC4KKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0MvV0tW
aWRlb0Z1bGxzY3JlZW5NYW5hZ2VySW5qZWN0ZWRCdW5kbGVDbGllbnQuaDogQWRkZWQuCisgICAg
ICAgICogVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXcubW06CisgICAgICAgICgtW1dLV2Vi
VmlldyBfdmlkZW9GdWxsc2NyZWVuTWFuYWdlckZvclRlc3RpbmddKToKKyAgICAgICAgKiBVSVBy
b2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlld0ludGVybmFsLmg6CisgICAgICAgICogVUlQcm9jZXNz
L0NvY29hL1ZpZGVvRnVsbHNjcmVlbk1hbmFnZXJJbmplY3RlZEJ1bmRsZUNsaWVudC5jcHA6IEFk
ZGVkLgorICAgICAgICAoV2ViS2l0OjpWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VySW5qZWN0ZWRCdW5k
bGVDbGllbnQ6OnNldEhhc1ZpZGVvKToKKyAgICAgICAgKFdlYktpdDo6VmlkZW9GdWxsc2NyZWVu
TWFuYWdlckluamVjdGVkQnVuZGxlQ2xpZW50OjpzZXRWaWRlb0RpbWVuc2lvbnMpOgorICAgICAg
ICAoV2ViS2l0OjpWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VySW5qZWN0ZWRCdW5kbGVDbGllbnQ6OnNl
dHVwRnVsbHNjcmVlbldpdGhJRCk6CisgICAgICAgIChXZWJLaXQ6OlZpZGVvRnVsbHNjcmVlbk1h
bmFnZXJJbmplY3RlZEJ1bmRsZUNsaWVudDo6ZW50ZXJGdWxsc2NyZWVuKToKKyAgICAgICAgKFdl
YktpdDo6VmlkZW9GdWxsc2NyZWVuTWFuYWdlckluamVjdGVkQnVuZGxlQ2xpZW50OjpleGl0RnVs
bHNjcmVlbik6CisgICAgICAgIChXZWJLaXQ6OlZpZGVvRnVsbHNjcmVlbk1hbmFnZXJJbmplY3Rl
ZEJ1bmRsZUNsaWVudDo6c2V0SW5saW5lUmVjdCk6CisgICAgICAgIChXZWJLaXQ6OlZpZGVvRnVs
bHNjcmVlbk1hbmFnZXJJbmplY3RlZEJ1bmRsZUNsaWVudDo6c2V0SGFzVmlkZW9Db250ZW50TGF5
ZXIpOgorICAgICAgICAoV2ViS2l0OjpWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VySW5qZWN0ZWRCdW5k
bGVDbGllbnQ6OmNsZWFudXBGdWxsc2NyZWVuKToKKyAgICAgICAgKFdlYktpdDo6VmlkZW9GdWxs
c2NyZWVuTWFuYWdlckluamVjdGVkQnVuZGxlQ2xpZW50OjpwcmVwYXJlZFRvUmV0dXJuVG9Jbmxp
bmUpOgorICAgICAgICAoV2ViS2l0OjpWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VySW5qZWN0ZWRCdW5k
bGVDbGllbnQ6OnByZXBhcmVkVG9FeGl0RnVsbHNjcmVlbik6CisgICAgICAgIChXZWJLaXQ6OlZp
ZGVvRnVsbHNjcmVlbk1hbmFnZXJJbmplY3RlZEJ1bmRsZUNsaWVudDo6ZXhpdEZ1bGxzY3JlZW5X
aXRob3V0QW5pbWF0aW9uVG9Nb2RlKToKKyAgICAgICAgKiBVSVByb2Nlc3MvQ29jb2EvVmlkZW9G
dWxsc2NyZWVuTWFuYWdlckluamVjdGVkQnVuZGxlQ2xpZW50Lmg6IEFkZGVkLgorICAgICAgICAq
IFVJUHJvY2Vzcy9Db2NvYS9WaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyUHJveHkuaDoKKyAgICAgICAg
KiBVSVByb2Nlc3MvQ29jb2EvVmlkZW9GdWxsc2NyZWVuTWFuYWdlclByb3h5Lm1tOgorICAgICAg
ICAoV2ViS2l0OjpWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyUHJveHk6OnNldEluamVjdGVkQnVuZGxl
Q2xpZW50KToKKyAgICAgICAgKFdlYktpdDo6VmlkZW9GdWxsc2NyZWVuTWFuYWdlclByb3h5Ojpp
c1BsYXlpbmdWaWRlb0luRW5oYW5jZWRGdWxsc2NyZWVuIGNvbnN0KToKKyAgICAgICAgKFdlYktp
dDo6VmlkZW9GdWxsc2NyZWVuTWFuYWdlclByb3h5OjpzZXR1cEZ1bGxzY3JlZW5XaXRoSUQpOgor
ICAgICAgICAoV2ViS2l0OjpWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyUHJveHk6OnNldEhhc1ZpZGVv
KToKKyAgICAgICAgKFdlYktpdDo6VmlkZW9GdWxsc2NyZWVuTWFuYWdlclByb3h5OjpzZXRWaWRl
b0RpbWVuc2lvbnMpOgorICAgICAgICAoV2ViS2l0OjpWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyUHJv
eHk6OmVudGVyRnVsbHNjcmVlbik6CisgICAgICAgIChXZWJLaXQ6OlZpZGVvRnVsbHNjcmVlbk1h
bmFnZXJQcm94eTo6ZXhpdEZ1bGxzY3JlZW4pOgorICAgICAgICAoV2ViS2l0OjpWaWRlb0Z1bGxz
Y3JlZW5NYW5hZ2VyUHJveHk6OmV4aXRGdWxsc2NyZWVuV2l0aG91dEFuaW1hdGlvblRvTW9kZSk6
CisgICAgICAgIChXZWJLaXQ6OlZpZGVvRnVsbHNjcmVlbk1hbmFnZXJQcm94eTo6c2V0SW5saW5l
UmVjdCk6CisgICAgICAgIChXZWJLaXQ6OlZpZGVvRnVsbHNjcmVlbk1hbmFnZXJQcm94eTo6c2V0
SGFzVmlkZW9Db250ZW50TGF5ZXIpOgorICAgICAgICAoV2ViS2l0OjpWaWRlb0Z1bGxzY3JlZW5N
YW5hZ2VyUHJveHk6OmNsZWFudXBGdWxsc2NyZWVuKToKKyAgICAgICAgKFdlYktpdDo6VmlkZW9G
dWxsc2NyZWVuTWFuYWdlclByb3h5OjpwcmVwYXJlZFRvUmV0dXJuVG9JbmxpbmUpOgorICAgICAg
ICAoV2ViS2l0OjpWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyUHJveHk6OnByZXBhcmVkVG9FeGl0RnVs
bHNjcmVlbik6CisgICAgICAgICogV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisK
IDIwMjAtMDQtMjcgIFBoaWxpcHBlIE5vcm1hbmQgIDxwbm9ybWFuZEBpZ2FsaWEuY29tPgogCiAg
ICAgICAgIFtHVEtdIEVOQUJMRShPUEVOR0wpIHJlbW1hbnRzLi4uCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L1NoYXJlZC9BUEkvQVBJT2JqZWN0LmggYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9B
UEkvQVBJT2JqZWN0LmgKaW5kZXggNGE2OGRmZjU4NGYxMWU4MzVmODUzMjZiNDRmMDdmNGE4MDRj
OTc2Mi4uMGUxN2Y3MjIxY2NkNmRkYzMzYWJjMGEzYWE4ZDBhZDViNjk0Y2NiNSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9TaGFyZWQvQVBJL0FQSU9iamVjdC5oCisrKyBiL1NvdXJjZS9XZWJL
aXQvU2hhcmVkL0FQSS9BUElPYmplY3QuaApAQCAtMTY5LDYgKzE2OSw3IEBAIHB1YmxpYzoKICAg
ICAgICAgVXNlckluaXRpYXRlZEFjdGlvbiwKICAgICAgICAgVXNlck1lZGlhUGVybWlzc2lvbkNo
ZWNrLAogICAgICAgICBVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdCwKKyAgICAgICAgVmlkZW9G
dWxsc2NyZWVuTWFuYWdlciwKICAgICAgICAgVmlld3BvcnRBdHRyaWJ1dGVzLAogICAgICAgICBW
aXNpdGVkTGlua1N0b3JlLAogICAgICAgICBXZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzTWFuYWdl
ciwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0FQSS9jL1dLQmFzZS5oIGIvU291
cmNlL1dlYktpdC9TaGFyZWQvQVBJL2MvV0tCYXNlLmgKaW5kZXggOGM5ZGM5MDg3Y2RhZmMyYWNm
ZGExNjc2MWI3ZWE3ZjhlZDc0MzI5Zi4uMWViMzA2ZWYxZmY4ODQ2MjU4OGEyYmI0NmE4NGY2MzY1
ZmI1ZGJiOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9TaGFyZWQvQVBJL2MvV0tCYXNlLmgK
KysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQvQVBJL2MvV0tCYXNlLmgKQEAgLTEyMyw2ICsxMjMs
NyBAQCB0eXBlZGVmIGNvbnN0IHN0cnVjdCBPcGFxdWVXS09wZW5QYW5lbFJlc3VsdExpc3RlbmVy
KiBXS09wZW5QYW5lbFJlc3VsdExpc3RlbmVyUgogdHlwZWRlZiBjb25zdCBzdHJ1Y3QgT3BhcXVl
V0tQYWdlKiBXS1BhZ2VSZWY7CiB0eXBlZGVmIGNvbnN0IHN0cnVjdCBPcGFxdWVXS1BhZ2VDb25m
aWd1cmF0aW9uKiBXS1BhZ2VDb25maWd1cmF0aW9uUmVmOwogdHlwZWRlZiBjb25zdCBzdHJ1Y3Qg
T3BhcXVlV0tQYWdlR3JvdXAqIFdLUGFnZUdyb3VwUmVmOwordHlwZWRlZiBjb25zdCBzdHJ1Y3Qg
T3BhcXVlV0tWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyKiBXS1ZpZGVvRnVsbHNjcmVlbk1hbmFnZXJS
ZWY7CiB0eXBlZGVmIGNvbnN0IHN0cnVjdCBPcGFxdWVXS1ByZWZlcmVuY2VzKiBXS1ByZWZlcmVu
Y2VzUmVmOwogdHlwZWRlZiBjb25zdCBzdHJ1Y3QgT3BhcXVlV0tQcm90ZWN0aW9uU3BhY2UqIFdL
UHJvdGVjdGlvblNwYWNlUmVmOwogdHlwZWRlZiBjb25zdCBzdHJ1Y3QgT3BhcXVlV0tQYWdlUnVu
QmVmb3JlVW5sb2FkQ29uZmlybVBhbmVsUmVzdWx0TGlzdGVuZXIqIFdLUGFnZVJ1bkJlZm9yZVVu
bG9hZENvbmZpcm1QYW5lbFJlc3VsdExpc3RlbmVyUmVmOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvQVBJL0MvV0tBUElDYXN0LmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9BUEkvQy9XS0FQSUNhc3QuaAppbmRleCA0OGI2NjFmMzQ5NDdhMzEyNDAxYmY2YTIwOWRkZjNh
YTVjZjQyYWQ4Li5mNTUyMGI4OTg5ZTk1NTdmNzNhMjllMGFmMGQxNDBkZjM3ZDVmMTczIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQy9XS0FQSUNhc3QuaAorKysgYi9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQy9XS0FQSUNhc3QuaApAQCAtODEsNiArODEsNyBA
QCBjbGFzcyBHZW9sb2NhdGlvblBlcm1pc3Npb25SZXF1ZXN0OwogY2xhc3MgTm90aWZpY2F0aW9u
UGVybWlzc2lvblJlcXVlc3Q7CiBjbGFzcyBVc2VyTWVkaWFQZXJtaXNzaW9uQ2hlY2tQcm94eTsK
IGNsYXNzIFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UHJveHk7CitjbGFzcyBWaWRlb0Z1bGxz
Y3JlZW5NYW5hZ2VyUHJveHk7CiBjbGFzcyBXZWJCYWNrRm9yd2FyZExpc3Q7CiBjbGFzcyBXZWJC
YWNrRm9yd2FyZExpc3RJdGVtOwogY2xhc3MgV2ViQ29sb3JQaWNrZXJSZXN1bHRMaXN0ZW5lclBy
b3h5OwpAQCAtMTY3LDggKzE2OCw5IEBAIFdLX0FERF9BUElfTUFQUElORyhXS1VzZXJDb250ZW50
RmlsdGVyUmVmLCBBUEk6OkNvbnRlbnRSdWxlTGlzdCkKIFdLX0FERF9BUElfTUFQUElORyhXS1Vz
ZXJNZWRpYVBlcm1pc3Npb25DaGVja1JlZiwgVXNlck1lZGlhUGVybWlzc2lvbkNoZWNrUHJveHkp
CiBXS19BRERfQVBJX01BUFBJTkcoV0tVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdFJlZiwgVXNl
ck1lZGlhUGVybWlzc2lvblJlcXVlc3RQcm94eSkKIFdLX0FERF9BUElfTUFQUElORyhXS1VzZXJT
Y3JpcHRSZWYsIEFQSTo6VXNlclNjcmlwdCkKK1dLX0FERF9BUElfTUFQUElORyhXS1ZpZGVvRnVs
bHNjcmVlbk1hbmFnZXJSZWYsIFZpZGVvRnVsbHNjcmVlbk1hbmFnZXJQcm94eSkKIFdLX0FERF9B
UElfTUFQUElORyhXS1ZpZXdwb3J0QXR0cmlidXRlc1JlZiwgV2ViVmlld3BvcnRBdHRyaWJ1dGVz
KQotV0tfQUREX0FQSV9NQVBQSU5HKFdLV2Vic2l0ZURhdGFTdG9yZVJlZiwgV2ViS2l0OjpXZWJz
aXRlRGF0YVN0b3JlKQorV0tfQUREX0FQSV9NQVBQSU5HKFdLV2Vic2l0ZURhdGFTdG9yZVJlZiwg
V2Vic2l0ZURhdGFTdG9yZSkKIFdLX0FERF9BUElfTUFQUElORyhXS1dlYnNpdGVEYXRhU3RvcmVD
b25maWd1cmF0aW9uUmVmLCBXZWJLaXQ6OldlYnNpdGVEYXRhU3RvcmVDb25maWd1cmF0aW9uKQog
V0tfQUREX0FQSV9NQVBQSU5HKFdLV2Vic2l0ZVBvbGljaWVzUmVmLCBBUEk6OldlYnNpdGVQb2xp
Y2llcykKIFdLX0FERF9BUElfTUFQUElORyhXS1dpbmRvd0ZlYXR1cmVzUmVmLCBBUEk6OldpbmRv
d0ZlYXR1cmVzKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0MvV0tQ
YWdlSW5qZWN0ZWRCdW5kbGVDbGllbnQuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9D
L1dLUGFnZUluamVjdGVkQnVuZGxlQ2xpZW50LmgKaW5kZXggZWRiYmY1OGNjYzY1OTc0MmI5YjFi
NDRiNTM2NTI1N2EzMDI5ZDE5ZS4uOTE2Y2ExMGE3MWYyYWQ2MDhiNWM3NjAxMTdkNTc5OWVmZTIz
YzFjNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0MvV0tQYWdlSW5q
ZWN0ZWRCdW5kbGVDbGllbnQuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQy9X
S1BhZ2VJbmplY3RlZEJ1bmRsZUNsaWVudC5oCkBAIC0zMCw3ICszMCw2IEBACiAKIHR5cGVkZWYg
dm9pZCAoKldLUGFnZURpZFJlY2VpdmVNZXNzYWdlRnJvbUluamVjdGVkQnVuZGxlQ2FsbGJhY2sp
KFdLUGFnZVJlZiBwYWdlLCBXS1N0cmluZ1JlZiBtZXNzYWdlTmFtZSwgV0tUeXBlUmVmIG1lc3Nh
Z2VCb2R5LCBjb25zdCB2b2lkICpjbGllbnRJbmZvKTsKIHR5cGVkZWYgdm9pZCAoKldLUGFnZURp
ZFJlY2VpdmVTeW5jaHJvbm91c01lc3NhZ2VGcm9tSW5qZWN0ZWRCdW5kbGVDYWxsYmFjaykoV0tQ
YWdlUmVmIHBhZ2UsIFdLU3RyaW5nUmVmIG1lc3NhZ2VOYW1lLCBXS1R5cGVSZWYgbWVzc2FnZUJv
ZHksIFdLVHlwZVJlZiogcmV0dXJuRGF0YSwgY29uc3Qgdm9pZCAqY2xpZW50SW5mbyk7Ci10eXBl
ZGVmIFdLVHlwZVJlZiAoKldLUGFnZUdldEluamVjdGVkQnVuZGxlSW5pdGlhbGl6YXRpb25Vc2Vy
RGF0YUNhbGxiYWNrKShXS1BhZ2VSZWYgcGFnZSwgY29uc3Qgdm9pZCAqY2xpZW50SW5mbyk7CiB0
eXBlZGVmIHZvaWQgKCpXS1BhZ2VEaWRSZWNlaXZlU3luY2hyb25vdXNNZXNzYWdlRnJvbUluamVj
dGVkQnVuZGxlV2l0aExpc3RlbmVyQ2FsbGJhY2spKFdLUGFnZVJlZiBwYWdlLCBXS1N0cmluZ1Jl
ZiBtZXNzYWdlTmFtZSwgV0tUeXBlUmVmIG1lc3NhZ2VCb2R5LCBXS01lc3NhZ2VMaXN0ZW5lclJl
ZiBsaXN0ZW5lciwgY29uc3Qgdm9pZCogY2xpZW50SW5mbyk7CiAKIHR5cGVkZWYgc3RydWN0IFdL
UGFnZUluamVjdGVkQnVuZGxlQ2xpZW50QmFzZSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9BUEkvQy9XS1ZpZGVvRnVsbHNjcmVlbk1hbmFnZXIuY3BwIGIvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvQVBJL0MvV0tWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyLmNwcApuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwLi5mZmRmZmQ0MDBkOTJlZTJjMTc4YTA4MTMyNjI5MzU4OGM2NmRiM2MyCi0tLSAvZGV2L251
bGwKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0MvV0tWaWRlb0Z1bGxzY3JlZW5N
YW5hZ2VyLmNwcApAQCAtMCwwICsxLDM1IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIwIEFw
cGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQg
dXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlm
aWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0
aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBt
dXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3Ry
aWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdo
dAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0
ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRX
QVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJ
UycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hB
TlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJ
U0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9S
UworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BF
Q0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMg
T1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUwor
ICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFC
SUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JU
IChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBX
QVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisg
KiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZp
Zy5oIgorI2luY2x1ZGUgIldLVmlkZW9GdWxsc2NyZWVuTWFuYWdlci5oIgorCisjaW5jbHVkZSAi
V0tBUElDYXN0LmgiCisjaW5jbHVkZSAiV2ViS2l0L1ZpZGVvRnVsbHNjcmVlbk1hbmFnZXJQcm94
eS5oIgorCit2b2lkIFdLVmlkZW9GdWxsc2NyZWVuTWFuYWdlclNldEluamVjdGVkQnVuZGxlQ2xp
ZW50KFdLVmlkZW9GdWxsc2NyZWVuTWFuYWdlclJlZiB2aWRlb0Z1bGxzY3JlZW5NYW5hZ2VyUmVm
LCBjb25zdCBXS1ZpZGVvRnVsbHNjcmVlbk1hbmFnZXJJbmplY3RlZEJ1bmRsZUNsaWVudEJhc2Uq
IHdrQ2xpZW50KQoreworICAgIFdlYktpdDo6dG9JbXBsKHZpZGVvRnVsbHNjcmVlbk1hbmFnZXJS
ZWYpLT5zZXRJbmplY3RlZEJ1bmRsZUNsaWVudCh3a0NsaWVudCk7Cit9CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQy9XS1ZpZGVvRnVsbHNjcmVlbk1hbmFnZXIuaCBi
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9DL1dLVmlkZW9GdWxsc2NyZWVuTWFuYWdlci5o
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAuLmIwMDAwMDQ1MjA4ZmQzYzM1MGEzODM5NTAwYjA1Yjk2MDMyMmQ2MmEKLS0t
IC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQy9XS1ZpZGVvRnVs
bHNjcmVlbk1hbmFnZXIuaApAQCAtMCwwICsxLDM4IEBACisvKgorICogQ29weXJpZ2h0IChDKSAy
MDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlv
biBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAq
IG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcg
Y29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2Ug
Y29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBS
ZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNv
cHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3Ro
ZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElT
IFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMg
YGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0Yg
TUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0Ug
QVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRS
SUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRB
TCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUg
R09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJ
TkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBP
RiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBP
UiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElO
IEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VE
IE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBv
bmNlCisKKyNpbmNsdWRlIDxXZWJLaXQvV0tWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VySW5qZWN0ZWRC
dW5kbGVDbGllbnQuaD4KKworI2lmZGVmIF9fY3BsdXNwbHVzCitleHRlcm4gIkMiIHsKKyNlbmRp
ZgorCitXS19FWFBPUlQgdm9pZCBXS1ZpZGVvRnVsbHNjcmVlbk1hbmFnZXJTZXRJbmplY3RlZEJ1
bmRsZUNsaWVudChXS1ZpZGVvRnVsbHNjcmVlbk1hbmFnZXJSZWYsIGNvbnN0IFdLVmlkZW9GdWxs
c2NyZWVuTWFuYWdlckluamVjdGVkQnVuZGxlQ2xpZW50QmFzZSogd2tDbGllbnQpOworCisjaWZk
ZWYgX19jcGx1c3BsdXMKK30KKyNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvQVBJL0MvV0tWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VySW5qZWN0ZWRCdW5kbGVDbGllbnQu
aCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9DL1dLVmlkZW9GdWxsc2NyZWVuTWFuYWdl
ckluamVjdGVkQnVuZGxlQ2xpZW50LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZGI3MjZkZTk1ZjQxZTVkMmM0Zjgz
YTRkMzM0YWFlZjBjYmYxMzc1MAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL0FQSS9DL1dLVmlkZW9GdWxsc2NyZWVuTWFuYWdlckluamVjdGVkQnVuZGxlQ2xpZW50
LmgKQEAgLTAsMCArMSw3OCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMCBBcHBsZSBJbmMu
IEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBz
b3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24s
IGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAq
IGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRh
aW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25z
IGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBw
cm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQ
Uk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICog
QU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElU
WSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVE
LiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJF
IExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVY
RU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJ
Q0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVS
UlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBX
SEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVE
SU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBP
RiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBP
U1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisjaW5jbHVk
ZSA8V2ViS2l0L1dLQmFzZS5oPgorI2luY2x1ZGUgPFdlYktpdC9XS0dlb21ldHJ5Lmg+CisKKyNp
ZmRlZiBfX2NwbHVzcGx1cworZXh0ZXJuICJDIiB7CisjZW5kaWYKKworZW51bSB7CisgICAgV0tW
aWRlb0Z1bGxzY3JlZW5Nb2RlTm9uZSA9IDAsCisgICAgV0tWaWRlb0Z1bGxzY3JlZW5Nb2RlU3Rh
bmRhcmQgPSAxIDw8IDAsCisgICAgV0tWaWRlb0Z1bGxzY3JlZW5Nb2RlUGljdHVyZUluUGljdHVy
ZSA9IDEgPDwgMSwKK307Cit0eXBlZGVmIHVpbnQzMl90IFdLVmlkZW9GdWxsc2NyZWVuTW9kZTsK
KwordHlwZWRlZiB2b2lkICgqV0tWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyU2V0SGFzVmlkZW8pKFdL
VmlkZW9GdWxsc2NyZWVuTWFuYWdlclJlZiBtYW5hZ2VyLCB1aW50NjRfdCBjb250ZXh0SWQsIGJv
b2wgaGFzVmlkZW8pOwordHlwZWRlZiB2b2lkICgqV0tWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyU2V0
VmlkZW9EaW1lbnNpb25zKShXS1ZpZGVvRnVsbHNjcmVlbk1hbmFnZXJSZWYgbWFuYWdlciwgdWlu
dDY0X3QgY29udGV4dElkLCBXS1NpemUgdmlkZW9EaW1lbnNpb25zKTsKK3R5cGVkZWYgdm9pZCAo
KldLVmlkZW9GdWxsc2NyZWVuTWFuYWdlclNldHVwRnVsbHNjcmVlbldpdGhJRCkoV0tWaWRlb0Z1
bGxzY3JlZW5NYW5hZ2VyUmVmIG1hbmFnZXIsIHVpbnQ2NF90IGNvbnRleHRJZCwgdWludDMyX3Qg
dmlkZW9MYXllcklELCBXS1JlY3QgaW5pdGlhbFJlY3QsIGZsb2F0IGhvc3RpbmdTY2FsZUZhY3Rv
ciwgV0tWaWRlb0Z1bGxzY3JlZW5Nb2RlIHZpZGVvRnVsbHNjcmVlbk1vZGUsIGJvb2wgYWxsb3dz
UGljdHVyZUluUGljdHVyZSwgYm9vbCBzdGFuZGJ5KTsKK3R5cGVkZWYgdm9pZCAoKldLVmlkZW9G
dWxsc2NyZWVuTWFuYWdlckVudGVyRnVsbHNjcmVlbikoV0tWaWRlb0Z1bGxzY3JlZW5NYW5hZ2Vy
UmVmIG1hbmFnZXIsIHVpbnQ2NF90IGNvbnRleHRJZCk7Cit0eXBlZGVmIHZvaWQgKCpXS1ZpZGVv
RnVsbHNjcmVlbk1hbmFnZXJFeGl0RnVsbHNjcmVlbikoV0tWaWRlb0Z1bGxzY3JlZW5NYW5hZ2Vy
UmVmIG1hbmFnZXIsIHVpbnQ2NF90IGNvbnRleHRJZCwgV0tSZWN0IGZpbmFsUmVjdCk7Cit0eXBl
ZGVmIHZvaWQgKCpXS1ZpZGVvRnVsbHNjcmVlbk1hbmFnZXJTZXRJbmxpbmVSZWN0KShXS1ZpZGVv
RnVsbHNjcmVlbk1hbmFnZXJSZWYgbWFuYWdlciwgdWludDY0X3QgY29udGV4dElkLCBXS1JlY3Qg
aW5saW5lUmVjdCwgYm9vbCB2aXNpYmxlKTsKK3R5cGVkZWYgdm9pZCAoKldLVmlkZW9GdWxsc2Ny
ZWVuTWFuYWdlclNldEhhc1ZpZGVvQ29udGVudExheWVyKShXS1ZpZGVvRnVsbHNjcmVlbk1hbmFn
ZXJSZWYgbWFuYWdlciwgdWludDY0X3QgY29udGV4dElkLCBib29sIHZhbHVlKTsKK3R5cGVkZWYg
dm9pZCAoKldLVmlkZW9GdWxsc2NyZWVuTWFuYWdlckNsZWFudXBGdWxsc2NyZWVuKShXS1ZpZGVv
RnVsbHNjcmVlbk1hbmFnZXJSZWYgbWFuYWdlciwgdWludDY0X3QgY29udGV4dElkKTsKK3R5cGVk
ZWYgdm9pZCAoKldLVmlkZW9GdWxsc2NyZWVuTWFuYWdlclByZXBhcmVkVG9SZXR1cm5Ub0lubGlu
ZSkoV0tWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyUmVmIG1hbmFnZXIsIHVpbnQ2NF90IGNvbnRleHRJ
ZCwgYm9vbCB2aXNpYmxlLCBXS1JlY3QgaW5saW5lUmVjdCk7Cit0eXBlZGVmIHZvaWQgKCpXS1Zp
ZGVvRnVsbHNjcmVlbk1hbmFnZXJQcmVwYXJlZFRvRXhpdEZ1bGxzY3JlZW4pKFdLVmlkZW9GdWxs
c2NyZWVuTWFuYWdlclJlZiBtYW5hZ2VyLCB1aW50NjRfdCBjb250ZXh0SWQpOwordHlwZWRlZiB2
b2lkICgqV0tWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyRXhpdEZ1bGxzY3JlZW5XaXRob3V0QW5pbWF0
aW9uVG9Nb2RlKShXS1ZpZGVvRnVsbHNjcmVlbk1hbmFnZXJSZWYgcGFnZSwgdWludDY0X3QgY29u
dGV4dElkLCBXS1ZpZGVvRnVsbHNjcmVlbk1vZGUgdmlkZW9GdWxsc2NyZWVuTW9kZSk7CisKK3R5
cGVkZWYgc3RydWN0IFdLVmlkZW9GdWxsc2NyZWVuTWFuYWdlckluamVjdGVkQnVuZGxlQ2xpZW50
QmFzZSB7CisgICAgaW50ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIHZlcnNpb247CisgICAgY29uc3Qgdm9pZCAqICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsaWVudEluZm87Cit9IFdL
VmlkZW9GdWxsc2NyZWVuTWFuYWdlckluamVjdGVkQnVuZGxlQ2xpZW50QmFzZTsKKwordHlwZWRl
ZiBzdHJ1Y3QgV0tWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VySW5qZWN0ZWRCdW5kbGVDbGllbnRWMCB7
CisgICAgV0tWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VySW5qZWN0ZWRCdW5kbGVDbGllbnRCYXNlICAg
ICAgICAgICAgICAgIGJhc2U7CisKKyAgICAvLyBWZXJzaW9uIDAuCisgICAgV0tWaWRlb0Z1bGxz
Y3JlZW5NYW5hZ2VyU2V0SGFzVmlkZW8gICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNldEhh
c1ZpZGVvOworICAgIFdLVmlkZW9GdWxsc2NyZWVuTWFuYWdlclNldFZpZGVvRGltZW5zaW9ucyAg
ICAgICAgICAgICAgICAgICAgICBzZXRWaWRlb0RpbWVuc2lvbnM7CisgICAgV0tWaWRlb0Z1bGxz
Y3JlZW5NYW5hZ2VyU2V0dXBGdWxsc2NyZWVuV2l0aElEICAgICAgICAgICAgICAgICAgIHNldHVw
RnVsbHNjcmVlbldpdGhJRDsKKyAgICBXS1ZpZGVvRnVsbHNjcmVlbk1hbmFnZXJFbnRlckZ1bGxz
Y3JlZW4gICAgICAgICAgICAgICAgICAgICAgICAgZW50ZXJGdWxsc2NyZWVuOworICAgIFdLVmlk
ZW9GdWxsc2NyZWVuTWFuYWdlckV4aXRGdWxsc2NyZWVuICAgICAgICAgICAgICAgICAgICAgICAg
ICBleGl0RnVsbHNjcmVlbjsKKyAgICBXS1ZpZGVvRnVsbHNjcmVlbk1hbmFnZXJTZXRJbmxpbmVS
ZWN0ICAgICAgICAgICAgICAgICAgICAgICAgICAgc2V0SW5saW5lUmVjdDsKKyAgICBXS1ZpZGVv
RnVsbHNjcmVlbk1hbmFnZXJTZXRIYXNWaWRlb0NvbnRlbnRMYXllciAgICAgICAgICAgICAgICAg
c2V0SGFzVmlkZW9Db250ZW50TGF5ZXI7CisgICAgV0tWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyQ2xl
YW51cEZ1bGxzY3JlZW4gICAgICAgICAgICAgICAgICAgICAgIGNsZWFudXBGdWxsc2NyZWVuOwor
ICAgIFdLVmlkZW9GdWxsc2NyZWVuTWFuYWdlclByZXBhcmVkVG9SZXR1cm5Ub0lubGluZSAgICAg
ICAgICAgICAgICBwcmVwYXJlZFRvUmV0dXJuVG9JbmxpbmU7CisgICAgV0tWaWRlb0Z1bGxzY3Jl
ZW5NYW5hZ2VyUHJlcGFyZWRUb0V4aXRGdWxsc2NyZWVuICAgICAgICAgICAgICAgIHByZXBhcmVk
VG9FeGl0RnVsbHNjcmVlbjsKKyAgICBXS1ZpZGVvRnVsbHNjcmVlbk1hbmFnZXJFeGl0RnVsbHNj
cmVlbldpdGhvdXRBbmltYXRpb25Ub01vZGUgICAgZXhpdEZ1bGxzY3JlZW5XaXRob3V0QW5pbWF0
aW9uVG9Nb2RlOworfSBXS1ZpZGVvRnVsbHNjcmVlbk1hbmFnZXJJbmplY3RlZEJ1bmRsZUNsaWVu
dFYwOworCisjaWZkZWYgX19jcGx1c3BsdXMKK30KKyNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlldy5tbSBiL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXcubW0KaW5kZXggMmQzYTc5MDQzNDQ3ZTdkZmVi
NGE1OGQzNjk1YjU1YTVkOTFmYWE2NS4uODg3MzA5YWZiMzk3YTg5ZTZlMTU1ZTJlNDUwYmFlMmRk
MDQ4NzA2MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dL
V2ViVmlldy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJW
aWV3Lm1tCkBAIC0xMzI3LDYgKzEzMjcsMTMgQEAgLSAoTmFrZWRQdHI8V2ViS2l0OjpXZWJQYWdl
UHJveHk+KV9wYWdlCiAgICAgcmV0dXJuIF9wYWdlLmdldCgpOwogfQogCisjaWYgRU5BQkxFKFZJ
REVPX1BSRVNFTlRBVElPTl9NT0RFKQorLSAoV0tWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyUmVmKV92
aWRlb0Z1bGxzY3JlZW5NYW5hZ2VyRm9yVGVzdGluZworeworICAgIHJldHVybiB0b0FQSShfcGFn
ZS0+dmlkZW9GdWxsc2NyZWVuTWFuYWdlcigpKTsKK30KKyNlbmRpZgorCiAtIChpZCA8V0tVUkxT
Y2hlbWVIYW5kbGVyPil1cmxTY2hlbWVIYW5kbGVyRm9yVVJMU2NoZW1lOihOU1N0cmluZyAqKXVy
bFNjaGVtZQogewogICAgIGF1dG8qIGhhbmRsZXIgPSBzdGF0aWNfY2FzdDxXZWJLaXQ6OldlYlVS
TFNjaGVtZUhhbmRsZXJDb2NvYSo+KF9wYWdlLT51cmxTY2hlbWVIYW5kbGVyRm9yU2NoZW1lKHVy
bFNjaGVtZSkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29h
L1dLV2ViVmlld0ludGVybmFsLmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2Ev
V0tXZWJWaWV3SW50ZXJuYWwuaAppbmRleCA4NDBlM2I5MmJkMWUyYTU4MDE5OGZkYTk1MzFkNjQz
NDIwOGE5MjU0Li40NzE4MzQzMWE1ZDRlMTdkZmZkOGEzMmQ0MWFhY2RiNWQwODUzM2QxIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3SW50ZXJu
YWwuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3SW50
ZXJuYWwuaApAQCAtMjYxLDYgKzI2MSw3IEBAIGNsYXNzIFZpZXdHZXN0dXJlQ29udHJvbGxlcjsK
IAogLSAoV0tQYWdlUmVmKV9wYWdlRm9yVGVzdGluZzsKIC0gKE5ha2VkUHRyPFdlYktpdDo6V2Vi
UGFnZVByb3h5PilfcGFnZTsKKy0gKFdLVmlkZW9GdWxsc2NyZWVuTWFuYWdlclJlZilfdmlkZW9G
dWxsc2NyZWVuTWFuYWdlckZvclRlc3Rpbmc7CiAKIEBlbmQKIApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvVmlkZW9GdWxsc2NyZWVuTWFuYWdlckluamVjdGVkQnVu
ZGxlQ2xpZW50LmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1ZpZGVvRnVsbHNj
cmVlbk1hbmFnZXJJbmplY3RlZEJ1bmRsZUNsaWVudC5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMDhhNTQxYjIz
OTM0YTdhODZjZjhkNTNhZDJlY2UwN2MyZTY1NzNlMwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1ZpZGVvRnVsbHNjcmVlbk1hbmFnZXJJbmplY3RlZEJ1
bmRsZUNsaWVudC5jcHAKQEAgLTAsMCArMSwxMDcgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIw
MjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9u
IGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICog
bW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBj
b25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBj
b2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJl
ZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29w
eXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhl
ciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMg
U09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBg
YEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBN
RVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBB
UkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJ
QlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFM
LCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBH
T09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lO
RVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9G
IExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9S
IFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4g
QU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQg
T0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAi
Y29uZmlnLmgiCisjaW5jbHVkZSAiVmlkZW9GdWxsc2NyZWVuTWFuYWdlckluamVjdGVkQnVuZGxl
Q2xpZW50LmgiCisKKyNpZiBFTkFCTEUoVklERU9fUFJFU0VOVEFUSU9OX01PREUpCisKKyNpbmNs
dWRlIDxXZWJDb3JlL0Zsb2F0U2l6ZS5oPgorI2luY2x1ZGUgPFdlYkNvcmUvSW50UmVjdC5oPgor
CituYW1lc3BhY2UgV2ViS2l0IHsKK3VzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOworCit2b2lkIFZp
ZGVvRnVsbHNjcmVlbk1hbmFnZXJJbmplY3RlZEJ1bmRsZUNsaWVudDo6c2V0SGFzVmlkZW8oVmlk
ZW9GdWxsc2NyZWVuTWFuYWdlclByb3h5KiwgdWludDY0X3QgY29udGV4dElkLCBib29sIGhhc1Zp
ZGVvKQoreworICAgIGlmICghbV9jbGllbnQuc2V0SGFzVmlkZW8pCisgICAgICAgIHJldHVybjsK
K30KKwordm9pZCBWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VySW5qZWN0ZWRCdW5kbGVDbGllbnQ6OnNl
dFZpZGVvRGltZW5zaW9ucyhWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyUHJveHkqLCB1aW50NjRfdCBj
b250ZXh0SWQsIFdlYkNvcmU6OkZsb2F0U2l6ZSB2aWRlb0RpbWVuc2lvbnMpCit7CisgICAgaWYg
KCFtX2NsaWVudC5zZXRWaWRlb0RpbWVuc2lvbnMpCisgICAgICAgIHJldHVybjsKK30KKwordm9p
ZCBWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VySW5qZWN0ZWRCdW5kbGVDbGllbnQ6OnNldHVwRnVsbHNj
cmVlbldpdGhJRChWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyUHJveHkqLCB1aW50NjRfdCBjb250ZXh0
SWQsIHVpbnQzMl90IHZpZGVvTGF5ZXJJRCwgV2ViQ29yZTo6SW50UmVjdCBpbml0aWFsUmVjdCwg
ZmxvYXQgaG9zdGluZ1NjYWxlRmFjdG9yLCBXZWJDb3JlOjpIVE1MTWVkaWFFbGVtZW50RW51bXM6
OlZpZGVvRnVsbHNjcmVlbk1vZGUsIGJvb2wgYWxsb3dzUGljdHVyZUluUGljdHVyZSwgYm9vbCBz
dGFuZGJ5KQoreworICAgIGlmICghbV9jbGllbnQuc2V0dXBGdWxsc2NyZWVuV2l0aElEKQorICAg
ICAgICByZXR1cm47Cit9CisKK3ZvaWQgVmlkZW9GdWxsc2NyZWVuTWFuYWdlckluamVjdGVkQnVu
ZGxlQ2xpZW50OjplbnRlckZ1bGxzY3JlZW4oVmlkZW9GdWxsc2NyZWVuTWFuYWdlclByb3h5Kiwg
dWludDY0X3QgY29udGV4dElkKQoreworICAgIGlmICghbV9jbGllbnQuZW50ZXJGdWxsc2NyZWVu
KQorICAgICAgICByZXR1cm47Cit9CisKK3ZvaWQgVmlkZW9GdWxsc2NyZWVuTWFuYWdlckluamVj
dGVkQnVuZGxlQ2xpZW50OjpleGl0RnVsbHNjcmVlbihWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyUHJv
eHkqLCB1aW50NjRfdCBjb250ZXh0SWQsIFdlYkNvcmU6OkludFJlY3QgZmluYWxSZWN0KQorewor
ICAgIGlmICghbV9jbGllbnQuZXhpdEZ1bGxzY3JlZW4pCisgICAgICAgIHJldHVybjsKK30KKwor
dm9pZCBWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VySW5qZWN0ZWRCdW5kbGVDbGllbnQ6OnNldElubGlu
ZVJlY3QoVmlkZW9GdWxsc2NyZWVuTWFuYWdlclByb3h5KiwgdWludDY0X3QgY29udGV4dElkLCBX
ZWJDb3JlOjpJbnRSZWN0IGlubGluZVJlY3QsIGJvb2wgdmlzaWJsZSkKK3sKKyAgICBpZiAoIW1f
Y2xpZW50LnNldElubGluZVJlY3QpCisgICAgICAgIHJldHVybjsKK30KKwordm9pZCBWaWRlb0Z1
bGxzY3JlZW5NYW5hZ2VySW5qZWN0ZWRCdW5kbGVDbGllbnQ6OnNldEhhc1ZpZGVvQ29udGVudExh
eWVyKFZpZGVvRnVsbHNjcmVlbk1hbmFnZXJQcm94eSosIHVpbnQ2NF90IGNvbnRleHRJZCwgYm9v
bCB2YWx1ZSkKK3sKKyAgICBpZiAoIW1fY2xpZW50LnNldEhhc1ZpZGVvQ29udGVudExheWVyKQor
ICAgICAgICByZXR1cm47Cit9CisKK3ZvaWQgVmlkZW9GdWxsc2NyZWVuTWFuYWdlckluamVjdGVk
QnVuZGxlQ2xpZW50OjpjbGVhbnVwRnVsbHNjcmVlbihWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyUHJv
eHkqLCB1aW50NjRfdCBjb250ZXh0SWQpCit7CisgICAgaWYgKCFtX2NsaWVudC5jbGVhbnVwRnVs
bHNjcmVlbikKKyAgICAgICAgcmV0dXJuOworfQorCit2b2lkIFZpZGVvRnVsbHNjcmVlbk1hbmFn
ZXJJbmplY3RlZEJ1bmRsZUNsaWVudDo6cHJlcGFyZWRUb1JldHVyblRvSW5saW5lKFZpZGVvRnVs
bHNjcmVlbk1hbmFnZXJQcm94eSosIHVpbnQ2NF90IGNvbnRleHRJZCwgYm9vbCB2aXNpYmxlLCBX
ZWJDb3JlOjpJbnRSZWN0IGlubGluZVJlY3QpCit7CisgICAgaWYgKCFtX2NsaWVudC5wcmVwYXJl
ZFRvUmV0dXJuVG9JbmxpbmUpCisgICAgICAgIHJldHVybjsKK30KKwordm9pZCBWaWRlb0Z1bGxz
Y3JlZW5NYW5hZ2VySW5qZWN0ZWRCdW5kbGVDbGllbnQ6OnByZXBhcmVkVG9FeGl0RnVsbHNjcmVl
bihWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyUHJveHkqLCB1aW50NjRfdCBjb250ZXh0SWQpCit7Cisg
ICAgaWYgKCFtX2NsaWVudC5wcmVwYXJlZFRvRXhpdEZ1bGxzY3JlZW4pCisgICAgICAgIHJldHVy
bjsKK30KKworI2lmIFBMQVRGT1JNKE1BQykgJiYgRU5BQkxFKFZJREVPX1BSRVNFTlRBVElPTl9N
T0RFKQordm9pZCBWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VySW5qZWN0ZWRCdW5kbGVDbGllbnQ6OmV4
aXRGdWxsc2NyZWVuV2l0aG91dEFuaW1hdGlvblRvTW9kZShWaWRlb0Z1bGxzY3JlZW5NYW5hZ2Vy
UHJveHkqLCB1aW50NjRfdCBjb250ZXh0SWQsIFdlYkNvcmU6OkhUTUxNZWRpYUVsZW1lbnRFbnVt
czo6VmlkZW9GdWxsc2NyZWVuTW9kZSkKK3sKKyAgICBpZiAoIW1fY2xpZW50LmV4aXRGdWxsc2Ny
ZWVuV2l0aG91dEFuaW1hdGlvblRvTW9kZSkKKyAgICAgICAgcmV0dXJuOworfQorI2VuZGlmCisK
K30gLy8gbmFtZXNwYWNlIFdlYktpdAorCisjZW5kaWYgLy8gRU5BQkxFKFZJREVPX1BSRVNFTlRB
VElPTl9NT0RFKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvVmlk
ZW9GdWxsc2NyZWVuTWFuYWdlckluamVjdGVkQnVuZGxlQ2xpZW50LmggYi9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9Db2NvYS9WaWRlb0Z1bGxzY3JlZW5NYW5hZ2VySW5qZWN0ZWRCdW5kbGVDbGll
bnQuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi5lNTNkMTBhYTEwNTJjYjNkYzE2NTdjYjZjZTFmMGI0NmI5NzI1OWFj
Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvVmlkZW9G
dWxsc2NyZWVuTWFuYWdlckluamVjdGVkQnVuZGxlQ2xpZW50LmgKQEAgLTAsMCArMSw3MCBAQAor
LyoKKyAqIENvcHlyaWdodCAoQykgMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQu
CisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jt
cywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlk
ZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRp
c3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdo
dAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3Qg
cmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRv
Y3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0
cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMu
IEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElN
UExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUg
SU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQ
QVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBB
UFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVD
VCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNF
UVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVN
RU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFU
QSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVT
RUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFD
VCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RI
RVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09G
VFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFN
QUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisjaWYgRU5BQkxFKFZJREVPX1BSRVNFTlRBVElP
Tl9NT0RFKQorCisjaW5jbHVkZSAiQVBJQ2xpZW50LmgiCisjaW5jbHVkZSAiV0tWaWRlb0Z1bGxz
Y3JlZW5NYW5hZ2VySW5qZWN0ZWRCdW5kbGVDbGllbnQuaCIKKyNpbmNsdWRlIDxXZWJDb3JlL0hU
TUxNZWRpYUVsZW1lbnRFbnVtcy5oPgorI2luY2x1ZGUgPHd0Zi9Gb3J3YXJkLmg+CisKK25hbWVz
cGFjZSBBUEkgewordGVtcGxhdGU8PiBzdHJ1Y3QgQ2xpZW50VHJhaXRzPFdLVmlkZW9GdWxsc2Ny
ZWVuTWFuYWdlckluamVjdGVkQnVuZGxlQ2xpZW50QmFzZT4geworICAgIHR5cGVkZWYgc3RkOjp0
dXBsZTxXS1ZpZGVvRnVsbHNjcmVlbk1hbmFnZXJJbmplY3RlZEJ1bmRsZUNsaWVudFYwPiBWZXJz
aW9uczsKK307Cit9CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKK2NsYXNzIEZsb2F0U2l6ZTsKK2Ns
YXNzIEludFJlY3Q7Cit9CisKK25hbWVzcGFjZSBXZWJLaXQgeworCitjbGFzcyBWaWRlb0Z1bGxz
Y3JlZW5NYW5hZ2VyUHJveHk7CisKK2NsYXNzIFZpZGVvRnVsbHNjcmVlbk1hbmFnZXJJbmplY3Rl
ZEJ1bmRsZUNsaWVudCA6IHB1YmxpYyBBUEk6OkNsaWVudDxXS1ZpZGVvRnVsbHNjcmVlbk1hbmFn
ZXJJbmplY3RlZEJ1bmRsZUNsaWVudEJhc2U+IHsKKyAgICBXVEZfTUFLRV9GQVNUX0FMTE9DQVRF
RDsKK3B1YmxpYzoKKyAgICB2b2lkIHNldEhhc1ZpZGVvKFZpZGVvRnVsbHNjcmVlbk1hbmFnZXJQ
cm94eSosIHVpbnQ2NF90IGNvbnRleHRJZCwgYm9vbCBoYXNWaWRlbyk7CisgICAgdm9pZCBzZXRW
aWRlb0RpbWVuc2lvbnMoVmlkZW9GdWxsc2NyZWVuTWFuYWdlclByb3h5KiwgdWludDY0X3QgY29u
dGV4dElkLCBXZWJDb3JlOjpGbG9hdFNpemUgdmlkZW9EaW1lbnNpb25zKTsKKyAgICB2b2lkIHNl
dHVwRnVsbHNjcmVlbldpdGhJRChWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyUHJveHkqLCB1aW50NjRf
dCBjb250ZXh0SWQsIHVpbnQzMl90IHZpZGVvTGF5ZXJJRCwgV2ViQ29yZTo6SW50UmVjdCBpbml0
aWFsUmVjdCwgZmxvYXQgaG9zdGluZ1NjYWxlRmFjdG9yLCBXZWJDb3JlOjpIVE1MTWVkaWFFbGVt
ZW50RW51bXM6OlZpZGVvRnVsbHNjcmVlbk1vZGUsIGJvb2wgYWxsb3dzUGljdHVyZUluUGljdHVy
ZSwgYm9vbCBzdGFuZGJ5KTsKKyAgICB2b2lkIGVudGVyRnVsbHNjcmVlbihWaWRlb0Z1bGxzY3Jl
ZW5NYW5hZ2VyUHJveHkqLCB1aW50NjRfdCBjb250ZXh0SWQpOworICAgIHZvaWQgZXhpdEZ1bGxz
Y3JlZW4oVmlkZW9GdWxsc2NyZWVuTWFuYWdlclByb3h5KiwgdWludDY0X3QgY29udGV4dElkLCBX
ZWJDb3JlOjpJbnRSZWN0IGZpbmFsUmVjdCk7CisgICAgdm9pZCBzZXRJbmxpbmVSZWN0KFZpZGVv
RnVsbHNjcmVlbk1hbmFnZXJQcm94eSosIHVpbnQ2NF90IGNvbnRleHRJZCwgV2ViQ29yZTo6SW50
UmVjdCBpbmxpbmVSZWN0LCBib29sIHZpc2libGUpOworICAgIHZvaWQgc2V0SGFzVmlkZW9Db250
ZW50TGF5ZXIoVmlkZW9GdWxsc2NyZWVuTWFuYWdlclByb3h5KiwgdWludDY0X3QgY29udGV4dElk
LCBib29sIHZhbHVlKTsKKyAgICB2b2lkIGNsZWFudXBGdWxsc2NyZWVuKFZpZGVvRnVsbHNjcmVl
bk1hbmFnZXJQcm94eSosIHVpbnQ2NF90IGNvbnRleHRJZCk7CisgICAgdm9pZCBwcmVwYXJlZFRv
UmV0dXJuVG9JbmxpbmUoVmlkZW9GdWxsc2NyZWVuTWFuYWdlclByb3h5KiwgdWludDY0X3QgY29u
dGV4dElkLCBib29sIHZpc2libGUsIFdlYkNvcmU6OkludFJlY3QgaW5saW5lUmVjdCk7CisgICAg
dm9pZCBwcmVwYXJlZFRvRXhpdEZ1bGxzY3JlZW4oVmlkZW9GdWxsc2NyZWVuTWFuYWdlclByb3h5
KiwgdWludDY0X3QgY29udGV4dElkKTsKKyNpZiBQTEFURk9STShNQUMpICYmIEVOQUJMRShWSURF
T19QUkVTRU5UQVRJT05fTU9ERSkKKyAgICB2b2lkIGV4aXRGdWxsc2NyZWVuV2l0aG91dEFuaW1h
dGlvblRvTW9kZShWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyUHJveHkqLCB1aW50NjRfdCBjb250ZXh0
SWQsIFdlYkNvcmU6OkhUTUxNZWRpYUVsZW1lbnRFbnVtczo6VmlkZW9GdWxsc2NyZWVuTW9kZSk7
CisjZW5kaWYKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdAorCisjZW5kaWYgLy8gRU5BQkxF
KFZJREVPX1BSRVNFTlRBVElPTl9NT0RFKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvQ29jb2EvVmlkZW9GdWxsc2NyZWVuTWFuYWdlclByb3h5LmggYi9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9Db2NvYS9WaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyUHJveHkuaAppbmRleCA0ZGZj
OWYxMDVhMmYzMGQ2MzQzZmFlYTdmNjc2OWFlYzM1ZGQyNzkxLi5jMTU0YmFhYzBhZjJkNWMxNjE0
Mzg5MzU1NWJkYzUzNzFhNjNkMzk4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9Db2NvYS9WaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyUHJveHkuaAorKysgYi9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9Db2NvYS9WaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyUHJveHkuaApAQCAtMjcsNyAr
MjcsOSBAQAogCiAjaWYgRU5BQkxFKFZJREVPX1BSRVNFTlRBVElPTl9NT0RFKQogCisjaW5jbHVk
ZSAiQVBJT2JqZWN0LmgiCiAjaW5jbHVkZSAiTWVzc2FnZVJlY2VpdmVyLmgiCisjaW5jbHVkZSAi
VmlkZW9GdWxsc2NyZWVuTWFuYWdlckluamVjdGVkQnVuZGxlQ2xpZW50LmgiCiAjaW5jbHVkZSA8
V2ViQ29yZS9BdWRpb1Nlc3Npb24uaD4KICNpbmNsdWRlIDxXZWJDb3JlL0dyYXBoaWNzTGF5ZXIu
aD4KICNpbmNsdWRlIDxXZWJDb3JlL1BsYXRmb3JtVmlldy5oPgpAQCAtNTMsMTAgKzU1LDEwIEBA
IHR5cGVkZWYgV2ViQ29yZTo6VmlkZW9GdWxsc2NyZWVuSW50ZXJmYWNlTWFjIFBsYXRmb3JtVmlk
ZW9GdWxsc2NyZWVuSW50ZXJmYWNlOwogCiBuYW1lc3BhY2UgV2ViS2l0IHsKIAotY2xhc3MgV2Vi
UGFnZVByb3h5OwogY2xhc3MgUGxheWJhY2tTZXNzaW9uTWFuYWdlclByb3h5OwogY2xhc3MgUGxh
eWJhY2tTZXNzaW9uTW9kZWxDb250ZXh0OwogY2xhc3MgVmlkZW9GdWxsc2NyZWVuTWFuYWdlclBy
b3h5OworY2xhc3MgV2ViUGFnZVByb3h5OwogCiBjbGFzcyBWaWRlb0Z1bGxzY3JlZW5Nb2RlbENv
bnRleHQgZmluYWwKICAgICA6IHB1YmxpYyBSZWZDb3VudGVkPFZpZGVvRnVsbHNjcmVlbk1vZGVs
Q29udGV4dD4KQEAgLTExNyw3ICsxMTksOSBAQCBwcml2YXRlOgogICAgIGJvb2wgbV9oYXNWaWRl
byB7IGZhbHNlIH07CiB9OwogCi1jbGFzcyBWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyUHJveHkgOiBw
dWJsaWMgUmVmQ291bnRlZDxWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyUHJveHk+LCBwcml2YXRlIElQ
Qzo6TWVzc2FnZVJlY2VpdmVyIHsKK2NsYXNzIFZpZGVvRnVsbHNjcmVlbk1hbmFnZXJQcm94eSA6
CisgICAgcHVibGljIEFQSTo6T2JqZWN0SW1wbDxBUEk6Ok9iamVjdDo6VHlwZTo6VmlkZW9GdWxs
c2NyZWVuTWFuYWdlcj4sCisgICAgcHJpdmF0ZSBJUEM6Ok1lc3NhZ2VSZWNlaXZlciB7CiBwdWJs
aWM6CiAgICAgc3RhdGljIFJlZjxWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyUHJveHk+IGNyZWF0ZShX
ZWJQYWdlUHJveHkmLCBQbGF5YmFja1Nlc3Npb25NYW5hZ2VyUHJveHkmKTsKICAgICB2aXJ0dWFs
IH5WaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyUHJveHkoKTsKQEAgLTEzMiwxNCArMTM2LDE0IEBAIHB1
YmxpYzoKIAogICAgIHZvaWQgcmVxdWVzdFJvdXRlU2hhcmluZ1BvbGljeUFuZENvbnRleHRVSUQo
dWludDY0X3QgY29udGV4dElkLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFdlYkNvcmU6OlJvdXRl
U2hhcmluZ1BvbGljeSwgU3RyaW5nKT4mJik7CiAKLSNpZiBFTkFCTEUoVklERU9fUFJFU0VOVEFU
SU9OX01PREUpCiAgICAgYm9vbCBpc1BsYXlpbmdWaWRlb0luRW5oYW5jZWRGdWxsc2NyZWVuKCkg
Y29uc3Q7Ci0jZW5kaWYKIAogICAgIFBsYXRmb3JtVmlkZW9GdWxsc2NyZWVuSW50ZXJmYWNlKiBj
b250cm9sc01hbmFnZXJJbnRlcmZhY2UoKTsKIAogICAgIHZvaWQgZm9yRWFjaFNlc3Npb24oRnVu
Y3Rpb248dm9pZChXZWJDb3JlOjpWaWRlb0Z1bGxzY3JlZW5Nb2RlbCYsIFBsYXRmb3JtVmlkZW9G
dWxsc2NyZWVuSW50ZXJmYWNlJik+JiYpOwogCisgICAgdm9pZCBzZXRJbmplY3RlZEJ1bmRsZUNs
aWVudChjb25zdCBXS1ZpZGVvRnVsbHNjcmVlbk1hbmFnZXJJbmplY3RlZEJ1bmRsZUNsaWVudEJh
c2UqKTsKKwogcHJpdmF0ZToKICAgICBmcmllbmQgY2xhc3MgVmlkZW9GdWxsc2NyZWVuTW9kZWxD
b250ZXh0OwogCkBAIC0xODksNiArMTkzLDggQEAgcHJpdmF0ZToKICAgICBIYXNoTWFwPHVpbnQ2
NF90LCBNb2RlbEludGVyZmFjZVR1cGxlPiBtX2NvbnRleHRNYXA7CiAgICAgdWludDY0X3QgbV9j
b250cm9sc01hbmFnZXJDb250ZXh0SWQgeyAwIH07CiAgICAgSGFzaE1hcDx1aW50NjRfdCwgaW50
PiBtX2NsaWVudENvdW50czsKKworICAgIHN0ZDo6dW5pcXVlX3B0cjxWaWRlb0Z1bGxzY3JlZW5N
YW5hZ2VySW5qZWN0ZWRCdW5kbGVDbGllbnQ+IG1faW5qZWN0ZWRCdW5kbGVDbGllbnQ7CiB9Owog
CiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL0NvY29hL1ZpZGVvRnVsbHNjcmVlbk1hbmFnZXJQcm94eS5tbSBiL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL0NvY29hL1ZpZGVvRnVsbHNjcmVlbk1hbmFnZXJQcm94eS5tbQppbmRleCAzMTYx
ZDliZDg5NTVmOTFjNTBmM2YyZjRhYTQ5OGE1MDE1OTNjMmY2Li5iNjljMzY4NTI4ZmI4N2VjYWI3
ZmZlYzJkMjIyMDBjNjljYzMxZDViIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9Db2NvYS9WaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyUHJveHkubW0KKysrIGIvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvQ29jb2EvVmlkZW9GdWxsc2NyZWVuTWFuYWdlclByb3h5Lm1tCkBAIC0zMyw2
ICszMyw3IEBACiAjaW1wb3J0ICJQbGF5YmFja1Nlc3Npb25NYW5hZ2VyUHJveHkuaCIKICNpbXBv
cnQgIlZpZGVvRnVsbHNjcmVlbk1hbmFnZXJNZXNzYWdlcy5oIgogI2ltcG9ydCAiVmlkZW9GdWxs
c2NyZWVuTWFuYWdlclByb3h5TWVzc2FnZXMuaCIKKyNpbXBvcnQgIldLVmlkZW9GdWxsc2NyZWVu
TWFuYWdlckluamVjdGVkQnVuZGxlQ2xpZW50LmgiCiAjaW1wb3J0ICJXZWJQYWdlUHJveHkuaCIK
ICNpbXBvcnQgIldlYlByb2Nlc3NQcm94eS5oIgogI2ltcG9ydCA8UXVhcnR6Q29yZS9Db3JlQW5p
bWF0aW9uLmg+CkBAIC0zMzYsNiArMzM3LDE3IEBAIFZpZGVvRnVsbHNjcmVlbk1hbmFnZXJQcm94
eTo6flZpZGVvRnVsbHNjcmVlbk1hbmFnZXJQcm94eSgpCiAgICAgaW52YWxpZGF0ZSgpOwogfQog
Cit2b2lkIFZpZGVvRnVsbHNjcmVlbk1hbmFnZXJQcm94eTo6c2V0SW5qZWN0ZWRCdW5kbGVDbGll
bnQoY29uc3QgV0tWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VySW5qZWN0ZWRCdW5kbGVDbGllbnRCYXNl
KiBjbGllbnQpCit7CisgICAgaWYgKCFjbGllbnQpIHsKKyAgICAgICAgbV9pbmplY3RlZEJ1bmRs
ZUNsaWVudCA9IG51bGxwdHI7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICBtX2luamVj
dGVkQnVuZGxlQ2xpZW50ID0gbWFrZVVuaXF1ZTxWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VySW5qZWN0
ZWRCdW5kbGVDbGllbnQ+KCk7CisgICAgbV9pbmplY3RlZEJ1bmRsZUNsaWVudC0+aW5pdGlhbGl6
ZShjbGllbnQpOworfQorCiB2b2lkIFZpZGVvRnVsbHNjcmVlbk1hbmFnZXJQcm94eTo6aW52YWxp
ZGF0ZSgpCiB7CiAgICAgbV9wYWdlLT5wcm9jZXNzKCkucmVtb3ZlTWVzc2FnZVJlY2VpdmVyKE1l
c3NhZ2VzOjpWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyUHJveHk6Om1lc3NhZ2VSZWNlaXZlck5hbWUo
KSwgbV9wYWdlLT53ZWJQYWdlSUQoKSk7CkBAIC0zNzUsNyArMzg3LDYgQEAgYm9vbCBWaWRlb0Z1
bGxzY3JlZW5NYW5hZ2VyUHJveHk6Om1heUF1dG9tYXRpY2FsbHlTaG93VmlkZW9QaWN0dXJlSW5Q
aWN0dXJlKCkgY28KICAgICByZXR1cm4gZmFsc2U7CiB9CiAKLSNpZiBFTkFCTEUoVklERU9fUFJF
U0VOVEFUSU9OX01PREUpCiBib29sIFZpZGVvRnVsbHNjcmVlbk1hbmFnZXJQcm94eTo6aXNQbGF5
aW5nVmlkZW9JbkVuaGFuY2VkRnVsbHNjcmVlbigpIGNvbnN0CiB7CiAgICAgZm9yIChhdXRvJiBb
bW9kZWwsIGludGVyZmFjZV0gOiBtX2NvbnRleHRNYXAudmFsdWVzKCkpIHsKQEAgLTM4NSw3ICsz
OTYsNiBAQCBib29sIFZpZGVvRnVsbHNjcmVlbk1hbmFnZXJQcm94eTo6aXNQbGF5aW5nVmlkZW9J
bkVuaGFuY2VkRnVsbHNjcmVlbigpIGNvbnN0CiAgICAgCiAgICAgcmV0dXJuIGZhbHNlOwogfQot
I2VuZGlmCiAKIFBsYXRmb3JtVmlkZW9GdWxsc2NyZWVuSW50ZXJmYWNlKiBWaWRlb0Z1bGxzY3Jl
ZW5NYW5hZ2VyUHJveHk6OmNvbnRyb2xzTWFuYWdlckludGVyZmFjZSgpCiB7CkBAIC00OTMsNiAr
NTAzLDE1IEBAIHZvaWQgVmlkZW9GdWxsc2NyZWVuTWFuYWdlclByb3h5OjpzZXR1cEZ1bGxzY3Jl
ZW5XaXRoSUQodWludDY0X3QgY29udGV4dElkLCB1aW50CiB7CiAgICAgTUVTU0FHRV9DSEVDS19D
T05URVhUSUQoY29udGV4dElkKTsKICAgICBNRVNTQUdFX0NIRUNLKHZpZGVvTGF5ZXJJRCk7Cisg
ICAgaWYgKG1faW5qZWN0ZWRCdW5kbGVDbGllbnQpIHsKKyAgICAgICAgbV9pbmplY3RlZEJ1bmRs
ZUNsaWVudC0+c2V0dXBGdWxsc2NyZWVuV2l0aElEKHRoaXMsIGNvbnRleHRJZCwgdmlkZW9MYXll
cklELCBpbml0aWFsUmVjdCwgaG9zdGluZ0RldmljZVNjYWxlRmFjdG9yLCB2aWRlb0Z1bGxzY3Jl
ZW5Nb2RlLCBhbGxvd3NQaWN0dXJlSW5QaWN0dXJlLCBzdGFuZGJ5KTsKKyNpZiBQTEFURk9STShJ
T1NfRkFNSUxZKQorICAgICAgICByZXF1ZXN0VmlkZW9Db250ZW50TGF5ZXIoY29udGV4dElkKTsK
KyNlbHNlCisgICAgICAgIGRpZFNldHVwRnVsbHNjcmVlbihjb250ZXh0SWQpOworI2VuZGlmCisg
ICAgICAgIHJldHVybjsKKyAgICB9CiAKICAgICBhdXRvJiBbbW9kZWwsIGludGVyZmFjZV0gPSBl
bnN1cmVNb2RlbEFuZEludGVyZmFjZShjb250ZXh0SWQpOwogICAgIGFkZENsaWVudEZvckNvbnRl
eHQoY29udGV4dElkKTsKQEAgLTUyNywxOCArNTQ2LDMzIEBAIHZvaWQgVmlkZW9GdWxsc2NyZWVu
TWFuYWdlclByb3h5OjpzZXR1cEZ1bGxzY3JlZW5XaXRoSUQodWludDY0X3QgY29udGV4dElkLCB1
aW50CiB2b2lkIFZpZGVvRnVsbHNjcmVlbk1hbmFnZXJQcm94eTo6c2V0SGFzVmlkZW8odWludDY0
X3QgY29udGV4dElkLCBib29sIGhhc1ZpZGVvKQogewogICAgIE1FU1NBR0VfQ0hFQ0tfQ09OVEVY
VElEKGNvbnRleHRJZCk7CisgICAgaWYgKG1faW5qZWN0ZWRCdW5kbGVDbGllbnQpIHsKKyAgICAg
ICAgbV9pbmplY3RlZEJ1bmRsZUNsaWVudC0+c2V0SGFzVmlkZW8odGhpcywgY29udGV4dElkLCBo
YXNWaWRlbyk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKICAgICBlbnN1cmVJbnRlcmZhY2Uo
Y29udGV4dElkKS5oYXNWaWRlb0NoYW5nZWQoaGFzVmlkZW8pOwogfQogCiB2b2lkIFZpZGVvRnVs
bHNjcmVlbk1hbmFnZXJQcm94eTo6c2V0VmlkZW9EaW1lbnNpb25zKHVpbnQ2NF90IGNvbnRleHRJ
ZCwgY29uc3QgRmxvYXRTaXplJiB2aWRlb0RpbWVuc2lvbnMpCiB7CiAgICAgTUVTU0FHRV9DSEVD
S19DT05URVhUSUQoY29udGV4dElkKTsKKyAgICBpZiAobV9pbmplY3RlZEJ1bmRsZUNsaWVudCkg
eworICAgICAgICBtX2luamVjdGVkQnVuZGxlQ2xpZW50LT5zZXRWaWRlb0RpbWVuc2lvbnModGhp
cywgY29udGV4dElkLCB2aWRlb0RpbWVuc2lvbnMpOworICAgICAgICByZXR1cm47CisgICAgfQor
CiAgICAgZW5zdXJlSW50ZXJmYWNlKGNvbnRleHRJZCkudmlkZW9EaW1lbnNpb25zQ2hhbmdlZCh2
aWRlb0RpbWVuc2lvbnMpOwogfQogCiB2b2lkIFZpZGVvRnVsbHNjcmVlbk1hbmFnZXJQcm94eTo6
ZW50ZXJGdWxsc2NyZWVuKHVpbnQ2NF90IGNvbnRleHRJZCkKIHsKICAgICBNRVNTQUdFX0NIRUNL
X0NPTlRFWFRJRChjb250ZXh0SWQpOworICAgIGlmIChtX2luamVjdGVkQnVuZGxlQ2xpZW50KSB7
CisgICAgICAgIG1faW5qZWN0ZWRCdW5kbGVDbGllbnQtPmVudGVyRnVsbHNjcmVlbih0aGlzLCBj
b250ZXh0SWQpOworICAgICAgICBkaWRFbnRlckZ1bGxzY3JlZW4oY29udGV4dElkKTsKKyAgICAg
ICAgcmV0dXJuOworICAgIH0KIAogICAgIGF1dG8mIGludGVyZmFjZSA9IGVuc3VyZUludGVyZmFj
ZShjb250ZXh0SWQpOwogICAgIGludGVyZmFjZS5lbnRlckZ1bGxzY3JlZW4oKTsKQEAgLTU1OCw2
ICs1OTIsMTMgQEAgdm9pZCBWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyUHJveHk6OmVudGVyRnVsbHNj
cmVlbih1aW50NjRfdCBjb250ZXh0SWQpCiB2b2lkIFZpZGVvRnVsbHNjcmVlbk1hbmFnZXJQcm94
eTo6ZXhpdEZ1bGxzY3JlZW4odWludDY0X3QgY29udGV4dElkLCBXZWJDb3JlOjpJbnRSZWN0IGZp
bmFsUmVjdCkKIHsKICAgICBNRVNTQUdFX0NIRUNLX0NPTlRFWFRJRChjb250ZXh0SWQpOworICAg
IGlmIChtX2luamVjdGVkQnVuZGxlQ2xpZW50KSB7CisgICAgICAgIG1faW5qZWN0ZWRCdW5kbGVD
bGllbnQtPmV4aXRGdWxsc2NyZWVuKHRoaXMsIGNvbnRleHRJZCwgZmluYWxSZWN0KTsKKyNpZiBQ
TEFURk9STShJT1NfRkFNSUxZKQorICAgICAgICByZXR1cm5WaWRlb0NvbnRlbnRMYXllcihjb250
ZXh0SWQpOworI2VuZGlmCisgICAgICAgIHJldHVybjsKKyAgICB9CiAKICAgICBBU1NFUlQobV9j
b250ZXh0TWFwLmNvbnRhaW5zKGNvbnRleHRJZCkpOwogICAgIGlmICghbV9jb250ZXh0TWFwLmNv
bnRhaW5zKGNvbnRleHRJZCkpCkBAIC01NzYsNiArNjE3LDExIEBAIHZvaWQgVmlkZW9GdWxsc2Ny
ZWVuTWFuYWdlclByb3h5OjpleGl0RnVsbHNjcmVlbih1aW50NjRfdCBjb250ZXh0SWQsIFdlYkNv
cmU6OkluCiB2b2lkIFZpZGVvRnVsbHNjcmVlbk1hbmFnZXJQcm94eTo6ZXhpdEZ1bGxzY3JlZW5X
aXRob3V0QW5pbWF0aW9uVG9Nb2RlKHVpbnQ2NF90IGNvbnRleHRJZCwgV2ViQ29yZTo6SFRNTE1l
ZGlhRWxlbWVudEVudW1zOjpWaWRlb0Z1bGxzY3JlZW5Nb2RlIHRhcmdldE1vZGUpCiB7CiAgICAg
TUVTU0FHRV9DSEVDS19DT05URVhUSUQoY29udGV4dElkKTsKKyAgICBpZiAobV9pbmplY3RlZEJ1
bmRsZUNsaWVudCkgeworICAgICAgICBtX2luamVjdGVkQnVuZGxlQ2xpZW50LT5leGl0RnVsbHNj
cmVlbldpdGhvdXRBbmltYXRpb25Ub01vZGUodGhpcywgY29udGV4dElkLCB0YXJnZXRNb2RlKTsK
KyAgICAgICAgcmV0dXJuOworICAgIH0KKwogICAgIGVuc3VyZUludGVyZmFjZShjb250ZXh0SWQp
LmV4aXRGdWxsc2NyZWVuV2l0aG91dEFuaW1hdGlvblRvTW9kZSh0YXJnZXRNb2RlKTsKIH0KICNl
bmRpZgpAQCAtNTg1LDEyICs2MzEsMjYgQEAgdm9pZCBWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyUHJv
eHk6OmV4aXRGdWxsc2NyZWVuV2l0aG91dEFuaW1hdGlvblRvTW9kZSh1aW50NjRfdAogdm9pZCBW
aWRlb0Z1bGxzY3JlZW5NYW5hZ2VyUHJveHk6OnNldElubGluZVJlY3QodWludDY0X3QgY29udGV4
dElkLCBjb25zdCBXZWJDb3JlOjpJbnRSZWN0JiBpbmxpbmVSZWN0LCBib29sIHZpc2libGUpCiB7
CiAgICAgTUVTU0FHRV9DSEVDS19DT05URVhUSUQoY29udGV4dElkKTsKKyAgICBpZiAobV9pbmpl
Y3RlZEJ1bmRsZUNsaWVudCkgeworICAgICAgICBtX2luamVjdGVkQnVuZGxlQ2xpZW50LT5zZXRJ
bmxpbmVSZWN0KHRoaXMsIGNvbnRleHRJZCwgaW5saW5lUmVjdCwgdmlzaWJsZSk7CisgICAgICAg
IHJldHVybjsKKyAgICB9CisKICAgICBlbnN1cmVJbnRlcmZhY2UoY29udGV4dElkKS5zZXRJbmxp
bmVSZWN0KGlubGluZVJlY3QsIHZpc2libGUpOwogfQogCiB2b2lkIFZpZGVvRnVsbHNjcmVlbk1h
bmFnZXJQcm94eTo6c2V0SGFzVmlkZW9Db250ZW50TGF5ZXIodWludDY0X3QgY29udGV4dElkLCBi
b29sIHZhbHVlKQogewogICAgIE1FU1NBR0VfQ0hFQ0tfQ09OVEVYVElEKGNvbnRleHRJZCk7Cisg
ICAgaWYgKG1faW5qZWN0ZWRCdW5kbGVDbGllbnQpIHsKKyAgICAgICAgbV9pbmplY3RlZEJ1bmRs
ZUNsaWVudC0+c2V0SGFzVmlkZW9Db250ZW50TGF5ZXIodGhpcywgY29udGV4dElkLCB2YWx1ZSk7
CisgICAgICAgIGlmICh2YWx1ZSkKKyAgICAgICAgICAgIGRpZFNldHVwRnVsbHNjcmVlbihjb250
ZXh0SWQpOworICAgICAgICBlbHNlCisgICAgICAgICAgICBkaWRFeGl0RnVsbHNjcmVlbihjb250
ZXh0SWQpOworICAgICAgICByZXR1cm47CisgICAgfQorCiAgICAgZW5zdXJlSW50ZXJmYWNlKGNv
bnRleHRJZCkuc2V0SGFzVmlkZW9Db250ZW50TGF5ZXIodmFsdWUpOwogfQogCkBAIC02MTEsMTIg
KzY3MSwyOCBAQCBOT19SRVRVUk5fRFVFX1RPX0FTU0VSVCB2b2lkIFZpZGVvRnVsbHNjcmVlbk1h
bmFnZXJQcm94eTo6c2V0SGFzVmlkZW9Db250ZW50TGF5ZQogdm9pZCBWaWRlb0Z1bGxzY3JlZW5N
YW5hZ2VyUHJveHk6OmNsZWFudXBGdWxsc2NyZWVuKHVpbnQ2NF90IGNvbnRleHRJZCkKIHsKICAg
ICBNRVNTQUdFX0NIRUNLX0NPTlRFWFRJRChjb250ZXh0SWQpOworICAgIGlmIChtX2luamVjdGVk
QnVuZGxlQ2xpZW50KSB7CisgICAgICAgIG1faW5qZWN0ZWRCdW5kbGVDbGllbnQtPmNsZWFudXBG
dWxsc2NyZWVuKHRoaXMsIGNvbnRleHRJZCk7CisgICAgICAgIGRpZENsZWFudXBGdWxsc2NyZWVu
KGNvbnRleHRJZCk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKICAgICBlbnN1cmVJbnRlcmZh
Y2UoY29udGV4dElkKS5jbGVhbnVwRnVsbHNjcmVlbigpOwogfQogCiB2b2lkIFZpZGVvRnVsbHNj
cmVlbk1hbmFnZXJQcm94eTo6cHJlcGFyZWRUb1JldHVyblRvSW5saW5lKHVpbnQ2NF90IGNvbnRl
eHRJZCwgYm9vbCB2aXNpYmxlLCBXZWJDb3JlOjpJbnRSZWN0IGlubGluZVJlY3QpCiB7CiAgICAg
TUVTU0FHRV9DSEVDS19DT05URVhUSUQoY29udGV4dElkKTsKKyAgICBpZiAobV9pbmplY3RlZEJ1
bmRsZUNsaWVudCkgeworICAgICAgICBtX3BhZ2UtPmZ1bGxzY3JlZW5NYXlSZXR1cm5Ub0lubGlu
ZSgpOworICAgICAgICBtX2luamVjdGVkQnVuZGxlQ2xpZW50LT5wcmVwYXJlZFRvUmV0dXJuVG9J
bmxpbmUodGhpcywgY29udGV4dElkLCB2aXNpYmxlLCBpbmxpbmVSZWN0KTsKKyNpZiAhUExBVEZP
Uk0oSU9TX0ZBTUlMWSkKKyAgICAgICAgSW50UmVjdCBpbmxpbmVXaW5kb3dSZWN0OworICAgICAg
ICBtX3BhZ2UtPnJvb3RWaWV3VG9XaW5kb3coaW5saW5lUmVjdCwgaW5saW5lV2luZG93UmVjdCk7
CisjZW5kaWYKKyAgICAgICAgcmV0dXJuOworICAgIH0KKwogICAgIG1fcGFnZS0+ZnVsbHNjcmVl
bk1heVJldHVyblRvSW5saW5lKCk7CiAKICNpZiBQTEFURk9STShJT1NfRkFNSUxZKQpAQCAtNjMx
LDYgKzcwNywxMSBAQCB2b2lkIFZpZGVvRnVsbHNjcmVlbk1hbmFnZXJQcm94eTo6cHJlcGFyZWRU
b1JldHVyblRvSW5saW5lKHVpbnQ2NF90IGNvbnRleHRJZCwgYgogdm9pZCBWaWRlb0Z1bGxzY3Jl
ZW5NYW5hZ2VyUHJveHk6OnByZXBhcmVkVG9FeGl0RnVsbHNjcmVlbih1aW50NjRfdCBjb250ZXh0
SWQpCiB7CiAgICAgTUVTU0FHRV9DSEVDS19DT05URVhUSUQoY29udGV4dElkKTsKKyAgICBpZiAo
bV9pbmplY3RlZEJ1bmRsZUNsaWVudCkgeworICAgICAgICBtX2luamVjdGVkQnVuZGxlQ2xpZW50
LT5wcmVwYXJlZFRvRXhpdEZ1bGxzY3JlZW4odGhpcywgY29udGV4dElkKTsKKyAgICAgICAgcmV0
dXJuOworICAgIH0KKwogICAgIGVuc3VyZUludGVyZmFjZShjb250ZXh0SWQpLnByZXBhcmVkVG9F
eGl0RnVsbHNjcmVlbigpOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYktpdC54
Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNlL1dlYktpdC9XZWJLaXQueGNvZGVwcm9q
L3Byb2plY3QucGJ4cHJvagppbmRleCAxOGFjOTlmNDhjNTljMDBmN2Y2MWQ1Y2Y1ODMxOGRjMzNm
ZmUzY2MzLi5mNWM3ODE4Y2Q5ZDkwOTFlNDFiNjBlMmQxOWFjMmU5Yzg5NzY4NGMyIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L1dlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBi
L1NvdXJjZS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTQxNyw2
ICs0MTcsMTEgQEAKIAkJMUNBOEI5NDYxMjdDODgyQTAwNTc2QzJCIC8qIFdlYkluc3BlY3RvclBy
b3h5TWVzc2FnZXMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDFDQThCOTQ0MTI3Qzg4MkEwMDU3NkMyQiAvKiBXZWJJbnNwZWN0b3JQcm94eU1lc3NhZ2Vz
LmggKi87IH07CiAJCTFDQkJFNEEwMTlCNjZDNTMwMDZCN0Q4MSAvKiBXZWJJbnNwZWN0b3JVSU1l
c3NhZ2VSZWNlaXZlci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSAxQ0JCRTQ5RTE5QjY2QzUzMDA2QjdEODEgLyogV2ViSW5zcGVjdG9yVUlNZXNzYWdl
UmVjZWl2ZXIuY3BwICovOyB9OwogCQkxQ0JCRTRBMTE5QjY2QzUzMDA2QjdEODEgLyogV2ViSW5z
cGVjdG9yVUlNZXNzYWdlcy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gMUNCQkU0OUYxOUI2NkM1MzAwNkI3RDgxIC8qIFdlYkluc3BlY3RvclVJTWVzc2Fn
ZXMuaCAqLzsgfTsKKwkJMUQyQzAyNTAyNDUyOEM3QzAwMjZBRDFGIC8qIFdLVmlkZW9GdWxsc2Ny
ZWVuTWFuYWdlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gMUQyQzAyNEUyNDUyOEM3QzAwMjZBRDFGIC8qIFdLVmlkZW9GdWxsc2NyZWVuTWFuYWdlci5o
ICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CisJCTFEMkMw
MjUxMjQ1MjhDN0MwMDI2QUQxRiAvKiBXS1ZpZGVvRnVsbHNjcmVlbk1hbmFnZXIuY3BwIGluIFNv
dXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMUQyQzAyNEYyNDUyOEM3
QzAwMjZBRDFGIC8qIFdLVmlkZW9GdWxsc2NyZWVuTWFuYWdlci5jcHAgKi87IH07CisJCTFEM0Ux
RTkwMjQ1MEQ5QUIwMDM2NDA1MiAvKiBWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VySW5qZWN0ZWRCdW5k
bGVDbGllbnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDFEM0UxRThFMjQ1MEQ5QUIwMDM2NDA1MiAvKiBWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VySW5qZWN0
ZWRCdW5kbGVDbGllbnQuaCAqLzsgfTsKKwkJMUQzRTFFOTEyNDUwRDlBQjAwMzY0MDUyIC8qIFZp
ZGVvRnVsbHNjcmVlbk1hbmFnZXJJbmplY3RlZEJ1bmRsZUNsaWVudC5jcHAgaW4gU291cmNlcyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxRDNFMUU4RjI0NTBEOUFCMDAzNjQw
NTIgLyogVmlkZW9GdWxsc2NyZWVuTWFuYWdlckluamVjdGVkQnVuZGxlQ2xpZW50LmNwcCAqLzsg
fTsKKwkJMUQzRTFFOTMyNDUwREMyQTAwMzY0MDUyIC8qIFdLVmlkZW9GdWxsc2NyZWVuTWFuYWdl
ckluamVjdGVkQnVuZGxlQ2xpZW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSAxRDNFMUU5MjI0NTBEQzJBMDAzNjQwNTIgLyogV0tWaWRlb0Z1bGxzY3Jl
ZW5NYW5hZ2VySW5qZWN0ZWRCdW5kbGVDbGllbnQuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRF
UyA9IChQcml2YXRlLCApOyB9OyB9OwogCQkxRDRENzM3MDIzQTlFNTQ3MDA3MTdBMjUgLyogUmVt
b3RlTWVkaWFSZXNvdXJjZU1hbmFnZXJNZXNzYWdlUmVjZWl2ZXIuY3BwIGluIFNvdXJjZXMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMUQ0RDczNkIyM0E5REY1NTAwNzE3QTI1
IC8qIFJlbW90ZU1lZGlhUmVzb3VyY2VNYW5hZ2VyTWVzc2FnZVJlY2VpdmVyLmNwcCAqLzsgfTsK
IAkJMUQ0RDczNzEyM0E5RTU2MjAwNzE3QTI1IC8qIFJlbW90ZU1lZGlhUmVzb3VyY2VNYW5hZ2Vy
TWVzc2FnZXMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDFENEQ3MzZDMjNBOURGNjAwMDcxN0EyNSAvKiBSZW1vdGVNZWRpYVJlc291cmNlTWFuYWdlck1l
c3NhZ2VzLmggKi87IH07CiAJCTFENEQ3Mzc2MjNBOUVEMTgwMDcxN0EyNSAvKiBSZW1vdGVNZWRp
YVJlc291cmNlTWFuYWdlck1lc3NhZ2VzUmVwbGllcy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMUQ0RDczNzUyM0E5RUI2ODAwNzE3QTI1IC8qIFJlbW90
ZU1lZGlhUmVzb3VyY2VNYW5hZ2VyTWVzc2FnZXNSZXBsaWVzLmggKi87IH07CkBAIC0yNzQxLDYg
KzI3NDYsOCBAQAogCQkxQ0JCRTQ5RjE5QjY2QzUzMDA2QjdEODEgLyogV2ViSW5zcGVjdG9yVUlN
ZXNzYWdlcy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBXZWJJbnNwZWN0b3JV
SU1lc3NhZ2VzLmg7IHBhdGggPSBEZXJpdmVkU291cmNlcy9XZWJLaXQyL1dlYkluc3BlY3RvclVJ
TWVzc2FnZXMuaDsgc291cmNlVHJlZSA9IEJVSUxUX1BST0RVQ1RTX0RJUjsgfTsKIAkJMUQwRUNF
QUEyM0ZDODU4NDAwRDE3MkY2IC8qIFJlbW90ZU1lZGlhUGxheWVyUHJveHlDb2NvYS5tbSAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Y3BwLm9iamNwcDsgcGF0aCA9IFJlbW90ZU1lZGlhUGxheWVyUHJveHlDb2NvYS5tbTsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMUQxMkNDMjcyNDBFREY2RDAwRkRBMEEzIC8qIFdlYktp
dC5wbGlzdCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9
IHRleHQucGxpc3QueG1sOyBwYXRoID0gV2ViS2l0LnBsaXN0OyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OworCQkxRDJDMDI0RTI0NTI4QzdDMDAyNkFEMUYgLyogV0tWaWRlb0Z1bGxzY3JlZW5N
YW5hZ2VyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdLVmlkZW9GdWxsc2NyZWVuTWFuYWdlci5oOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OworCQkxRDJDMDI0RjI0NTI4QzdDMDAyNkFEMUYgLyogV0tW
aWRlb0Z1bGxzY3JlZW5NYW5hZ2VyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFdLVmlkZW9GdWxs
c2NyZWVuTWFuYWdlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTFEMzJGODk4
MjNBODQ2NUEwMEIxRUE2QSAvKiBSZW1vdGVNZWRpYVJlc291cmNlLmggKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9
IFJlbW90ZU1lZGlhUmVzb3VyY2UuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMUQz
MkY4OTkyM0E4NDY4MDAwQjFFQTZBIC8qIFJlbW90ZU1lZGlhUmVzb3VyY2UuY3BwICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAu
Y3BwOyBwYXRoID0gUmVtb3RlTWVkaWFSZXNvdXJjZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CiAJCTFEMzJGODlCMjNBODRCQTYwMEIxRUE2QSAvKiBSZW1vdGVNZWRpYVJlc291cmNl
UHJveHkuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUmVtb3RlTWVkaWFSZXNvdXJjZVByb3h5Lmg7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0yNzQ4LDYgKzI3NTUsOSBAQAogCQkxRDMyRjhBNjIz
QTg2MDE5MDBCMUVBNkEgLyogUmVtb3RlTWVkaWFSZXNvdXJjZU1hbmFnZXIubWVzc2FnZXMuaW4g
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBw
YXRoID0gUmVtb3RlTWVkaWFSZXNvdXJjZU1hbmFnZXIubWVzc2FnZXMuaW47IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCTFEM0FCMDREMjNBQjAwNzIwMDVDMUZGMCAvKiBSZW1vdGVNZWRp
YVJlc291cmNlTG9hZGVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFJlbW90ZU1lZGlhUmVzb3VyY2VMb2Fk
ZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMUQzQUIwNEUyM0FCMDA5QjAwNUMx
RkYwIC8qIFJlbW90ZU1lZGlhUmVzb3VyY2VMb2FkZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0g
UmVtb3RlTWVkaWFSZXNvdXJjZUxvYWRlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CisJCTFEM0UxRThFMjQ1MEQ5QUIwMDM2NDA1MiAvKiBWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VySW5q
ZWN0ZWRCdW5kbGVDbGllbnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gVmlkZW9GdWxsc2NyZWVuTWFuYWdl
ckluamVjdGVkQnVuZGxlQ2xpZW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTFE
M0UxRThGMjQ1MEQ5QUIwMDM2NDA1MiAvKiBWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VySW5qZWN0ZWRC
dW5kbGVDbGllbnQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gVmlkZW9GdWxsc2NyZWVuTWFuYWdl
ckluamVjdGVkQnVuZGxlQ2xpZW50LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJ
MUQzRTFFOTIyNDUwREMyQTAwMzY0MDUyIC8qIFdLVmlkZW9GdWxsc2NyZWVuTWFuYWdlckluamVj
dGVkQnVuZGxlQ2xpZW50LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IFdLVmlk
ZW9GdWxsc2NyZWVuTWFuYWdlckluamVjdGVkQnVuZGxlQ2xpZW50Lmg7IHBhdGggPSBVSVByb2Nl
c3MvQVBJL0MvV0tWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VySW5qZWN0ZWRCdW5kbGVDbGllbnQuaDsg
c291cmNlVHJlZSA9IFNPVVJDRV9ST09UOyB9OwogCQkxRDRENzM2QjIzQTlERjU1MDA3MTdBMjUg
LyogUmVtb3RlTWVkaWFSZXNvdXJjZU1hbmFnZXJNZXNzYWdlUmVjZWl2ZXIuY3BwICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGV4cGxpY2l0RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5j
cHA7IG5hbWUgPSBSZW1vdGVNZWRpYVJlc291cmNlTWFuYWdlck1lc3NhZ2VSZWNlaXZlci5jcHA7
IHBhdGggPSBEZXJpdmVkU291cmNlcy9XZWJLaXQyL1JlbW90ZU1lZGlhUmVzb3VyY2VNYW5hZ2Vy
TWVzc2FnZVJlY2VpdmVyLmNwcDsgc291cmNlVHJlZSA9IEJVSUxUX1BST0RVQ1RTX0RJUjsgfTsK
IAkJMUQ0RDczNkMyM0E5REY2MDAwNzE3QTI1IC8qIFJlbW90ZU1lZGlhUmVzb3VyY2VNYW5hZ2Vy
TWVzc2FnZXMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBleHBsaWNpdEZpbGVUeXBl
ID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBSZW1vdGVNZWRpYVJlc291cmNlTWFuYWdlck1lc3Nh
Z2VzLmg7IHBhdGggPSBEZXJpdmVkU291cmNlcy9XZWJLaXQyL1JlbW90ZU1lZGlhUmVzb3VyY2VN
YW5hZ2VyTWVzc2FnZXMuaDsgc291cmNlVHJlZSA9IEJVSUxUX1BST0RVQ1RTX0RJUjsgfTsKIAkJ
MUQ0RDczNzUyM0E5RUI2ODAwNzE3QTI1IC8qIFJlbW90ZU1lZGlhUmVzb3VyY2VNYW5hZ2VyTWVz
c2FnZXNSZXBsaWVzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZXhwbGljaXRGaWxl
VHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gUmVtb3RlTWVkaWFSZXNvdXJjZU1hbmFnZXJN
ZXNzYWdlc1JlcGxpZXMuaDsgcGF0aCA9IERlcml2ZWRTb3VyY2VzL1dlYktpdDIvUmVtb3RlTWVk
aWFSZXNvdXJjZU1hbmFnZXJNZXNzYWdlc1JlcGxpZXMuaDsgc291cmNlVHJlZSA9IEJVSUxUX1BS
T0RVQ1RTX0RJUjsgfTsKQEAgLTYzNjEsNiArNjM3MSw4IEBACiAJCQkJNDYzMjM2ODUyMzE0ODMz
RjAwQTQ4RkE3IC8qIFVJUmVtb3RlT2JqZWN0UmVnaXN0cnkuaCAqLywKIAkJCQlFNEU4NjQ4RTFC
MTY3M0ZCMDBDODJGNDAgLyogVmVyc2lvbkNoZWNrcy5oICovLAogCQkJCUU0RTg2NDhGMUIxNjcz
RkIwMEM4MkY0MCAvKiBWZXJzaW9uQ2hlY2tzLm1tICovLAorCQkJCTFEM0UxRThGMjQ1MEQ5QUIw
MDM2NDA1MiAvKiBWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VySW5qZWN0ZWRCdW5kbGVDbGllbnQuY3Bw
ICovLAorCQkJCTFEM0UxRThFMjQ1MEQ5QUIwMDM2NDA1MiAvKiBWaWRlb0Z1bGxzY3JlZW5NYW5h
Z2VySW5qZWN0ZWRCdW5kbGVDbGllbnQuaCAqLywKIAkJCQk1MkQ1QTFBQTFDNTc0OTRFMDBERTM0
QTMgLyogVmlkZW9GdWxsc2NyZWVuTWFuYWdlclByb3h5LmggKi8sCiAJCQkJNTJENUExQUIxQzU3
NDk0RTAwREUzNEEzIC8qIFZpZGVvRnVsbHNjcmVlbk1hbmFnZXJQcm94eS5tZXNzYWdlcy5pbiAq
LywKIAkJCQk1MkQ1QTFBQzFDNTc0OTRFMDBERTM0QTMgLyogVmlkZW9GdWxsc2NyZWVuTWFuYWdl
clByb3h5Lm1tICovLApAQCAtOTMxNyw2ICs5MzI5LDkgQEAKIAkJCQk0QTQxMEYzNjE5QUY3QUMz
MDAyRUJBQjUgLyogV0tVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdC5oICovLAogCQkJCTdDODlE
MkExMUE2Nzg4NzUwMDNBNUZERSAvKiBXS1VzZXJTY3JpcHRSZWYuY3BwICovLAogCQkJCTdDODlE
MkEyMUE2Nzg4NzUwMDNBNUZERSAvKiBXS1VzZXJTY3JpcHRSZWYuaCAqLywKKwkJCQkxRDJDMDI0
RjI0NTI4QzdDMDAyNkFEMUYgLyogV0tWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyLmNwcCAqLywKKwkJ
CQkxRDJDMDI0RTI0NTI4QzdDMDAyNkFEMUYgLyogV0tWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyLmgg
Ki8sCisJCQkJMUQzRTFFOTIyNDUwREMyQTAwMzY0MDUyIC8qIFdLVmlkZW9GdWxsc2NyZWVuTWFu
YWdlckluamVjdGVkQnVuZGxlQ2xpZW50LmggKi8sCiAJCQkJNUM2RTdEODcyMzIzNjFFNzAwQzIx
NTlEIC8qIFdLV2Vic2l0ZURhdGFTdG9yZUNvbmZpZ3VyYXRpb25SZWYuY3BwICovLAogCQkJCTVD
NkU3RDg2MjMyMzYxRTcwMEMyMTU5RCAvKiBXS1dlYnNpdGVEYXRhU3RvcmVDb25maWd1cmF0aW9u
UmVmLmggKi8sCiAJCQkJMUE1NzEwOUMxQUJBMDAyNzAwMkZBQkJFIC8qIFdLV2Vic2l0ZURhdGFT
dG9yZVJlZi5jcHAgKi8sCkBAIC0xMTE1OCw2ICsxMTE3Myw3IEBACiAJCQkJNEEzQ0MxOEQxOUIw
NjQxOTAwRDE0QUVGIC8qIFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UHJveHkuaCBpbiBIZWFk
ZXJzICovLAogCQkJCTA3NEU3NUZFMURGMjIxMTkwMEQzMThFQyAvKiBVc2VyTWVkaWFQcm9jZXNz
TWFuYWdlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJRTRFODY0OTMxQjE2NzUwNzAwQzgyRjQwIC8q
IFZlcnNpb25DaGVja3MuaCBpbiBIZWFkZXJzICovLAorCQkJCTFEM0UxRTkwMjQ1MEQ5QUIwMDM2
NDA1MiAvKiBWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VySW5qZWN0ZWRCdW5kbGVDbGllbnQuaCBpbiBI
ZWFkZXJzICovLAogCQkJCTUyRDVBMUIwMUM1NzQ5NUEwMERFMzRBMyAvKiBWaWRlb0Z1bGxzY3Jl
ZW5NYW5hZ2VyUHJveHkuaCBpbiBIZWFkZXJzICovLAogCQkJCTJEMTI1QzVFMTg1N0VBMDUwMDNC
QTNDQiAvKiBWaWV3R2VzdHVyZUNvbnRyb2xsZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCTJEMUI1
RDVFMTg1ODY5QzgwMDZDNjU5NiAvKiBWaWV3R2VzdHVyZUNvbnRyb2xsZXJNZXNzYWdlcy5oIGlu
IEhlYWRlcnMgKi8sCkBAIC0xMTc2Miw2ICsxMTc3OCw4IEBACiAJCQkJMUFBRjA4OUQxOTI2N0ZD
ODAwQjYzOTBDIC8qIFdLVXNlclNjcmlwdEludGVybmFsLmggaW4gSGVhZGVycyAqLywKIAkJCQk3
Qzg4MkRGQTFDN0U5OTczMDA2QkY3MzEgLyogV0tVc2VyU2NyaXB0UHJpdmF0ZS5oIGluIEhlYWRl
cnMgKi8sCiAJCQkJN0M4OUQyQTQxQTY3ODg3NTAwM0E1RkRFIC8qIFdLVXNlclNjcmlwdFJlZi5o
IGluIEhlYWRlcnMgKi8sCisJCQkJMUQyQzAyNTAyNDUyOEM3QzAwMjZBRDFGIC8qIFdLVmlkZW9G
dWxsc2NyZWVuTWFuYWdlci5oIGluIEhlYWRlcnMgKi8sCisJCQkJMUQzRTFFOTMyNDUwREMyQTAw
MzY0MDUyIC8qIFdLVmlkZW9GdWxsc2NyZWVuTWFuYWdlckluamVjdGVkQnVuZGxlQ2xpZW50Lmgg
aW4gSGVhZGVycyAqLywKIAkJCQlCQzg2OTlCNTExNkFBREFBMDAyQTkyNUIgLyogV0tWaWV3Lmgg
aW4gSGVhZGVycyAqLywKIAkJCQlCQzg2OTlCNzExNkFBREFBMDAyQTkyNUIgLyogV0tWaWV3SW50
ZXJuYWwuaCBpbiBIZWFkZXJzICovLAogCQkJCTJEMjhBNDk3MUFGOTY1QTEwMEYxOTBDOSAvKiBX
S1ZpZXdMYXlvdXRTdHJhdGVneS5oIGluIEhlYWRlcnMgKi8sCkBAIC0xMjk4MSw2ICsxMjk5OSw3
IEBACiAJCQkJRTM4QTFGQzAyM0E1NTFCRjAwRDIzNzRGIC8qIFVzZXJJbnRlcmZhY2VJZGlvbS5t
bSBpbiBTb3VyY2VzICovLAogCQkJCUNENDkxQjBEMUU3MzJFNEQwMDAwOTA2NiAvKiBVc2VyTWVk
aWFDYXB0dXJlTWFuYWdlck1lc3NhZ2VSZWNlaXZlci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlD
RDQ5MUIxNzFFNzM1MjU1MDAwMDkwNjYgLyogVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eU1l
c3NhZ2VSZWNlaXZlci5jcHAgaW4gU291cmNlcyAqLywKKwkJCQkxRDNFMUU5MTI0NTBEOUFCMDAz
NjQwNTIgLyogVmlkZW9GdWxsc2NyZWVuTWFuYWdlckluamVjdGVkQnVuZGxlQ2xpZW50LmNwcCBp
biBTb3VyY2VzICovLAogCQkJCTNGNDE4RUY5MTg4N0JEOTcwMDI3OTVGRCAvKiBWaWRlb0Z1bGxz
Y3JlZW5NYW5hZ2VyTWVzc2FnZVJlY2VpdmVyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTNGNDE4
RUZCMTg4N0JEOTcwMDI3OTVGRCAvKiBWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyUHJveHlNZXNzYWdl
UmVjZWl2ZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMkQxQjVENUQxODU4NjlDODAwNkM2NTk2
IC8qIFZpZXdHZXN0dXJlQ29udHJvbGxlck1lc3NhZ2VSZWNlaXZlci5jcHAgaW4gU291cmNlcyAq
LywKQEAgLTEzMDY2LDYgKzEzMDg1LDcgQEAKIAkJCQkxREIwMTk0NDIxMUNGMDA1MDA5RkIzRTgg
LyogV0tTaGFyZVNoZWV0Lm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJN0E3OEZGMzMyMjQxOTE5QjAw
OTY0ODNFIC8qIFdLU3RvcmFnZUFjY2Vzc0FsZXJ0Lm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJQ0Uy
MTIxNjAyNDBFRTU3MTAwNkVENDQzIC8qIFdLVGV4dFBsYWNlaG9sZGVyLm1tIGluIFNvdXJjZXMg
Ki8sCisJCQkJMUQyQzAyNTEyNDUyOEM3QzAwMjZBRDFGIC8qIFdLVmlkZW9GdWxsc2NyZWVuTWFu
YWdlci5jcHAgaW4gU291cmNlcyAqLywKIAkJCSk7CiAJCQlydW5Pbmx5Rm9yRGVwbG95bWVudFBv
c3Rwcm9jZXNzaW5nID0gMDsKIAkJfTsKZGlmZiAtLWdpdCBhL1Rvb2xzL0NoYW5nZUxvZyBiL1Rv
b2xzL0NoYW5nZUxvZwppbmRleCA5NTVhMjNlODQyZWJhMWQ1OTdmODk0ZjNkOTlmYmEwMTI5M2U0
MGQ5Li45YmIyMDBhYmZkOTAxODFmZGMwNzJhOWRiNGJlZjNlMzk4OTJkOTM2IDEwMDY0NAotLS0g
YS9Ub29scy9DaGFuZ2VMb2cKKysrIGIvVG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzAgQEAK
KzIwMjAtMDQtMjcgIFBlbmcgTGl1ICA8cGVuZy5saXU2QGFwcGxlLmNvbT4KKworICAgICAgICBV
cGRhdGUgV2ViS2l0VGVzdFJ1bm5lciB0byBzdXBwb3J0IHJ1bm5pbmcgbXVsdGlwbGUgdmlkZW8g
ZnVsbHNjcmVlbiBhbmQgUGljdHVyZS1pbi1QaWN0dXJlIHRlc3RzIHNpbXVsdGFuZW91c2x5Cisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDM3MjMKKwor
ICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFdlYktpdFRl
c3RSdW5uZXIvUGxhdGZvcm1XZWJWaWV3Lmg6CisgICAgICAgICogV2ViS2l0VGVzdFJ1bm5lci9U
ZXN0Q29udHJvbGxlci5jcHA6CisgICAgICAgIChXVFI6OlRlc3RDb250cm9sbGVyOjpjb25maWd1
cmVWaWV3Rm9yVGVzdCk6CisgICAgICAgIChXVFI6OlRlc3RDb250cm9sbGVyOjpzZXRIYXNWaWRl
b0Zyb21JbmplY3RlZEJ1bmRsZSk6CisgICAgICAgIChXVFI6OlRlc3RDb250cm9sbGVyOjpzZXRW
aWRlb0RpbWVuc2lvbnNGcm9tSW5qZWN0ZWRCdW5kbGUpOgorICAgICAgICAoV1RSOjpUZXN0Q29u
dHJvbGxlcjo6c2V0dXBGdWxsc2NyZWVuV2l0aElERnJvbUluamVjdGVkQnVuZGxlKToKKyAgICAg
ICAgKFdUUjo6VGVzdENvbnRyb2xsZXI6OmVudGVyRnVsbHNjcmVlbkZyb21JbmplY3RlZEJ1bmRs
ZSk6CisgICAgICAgIChXVFI6OlRlc3RDb250cm9sbGVyOjpleGl0RnVsbHNjcmVlbkZyb21Jbmpl
Y3RlZEJ1bmRsZSk6CisgICAgICAgIChXVFI6OlRlc3RDb250cm9sbGVyOjpzZXRJbmxpbmVSZWN0
RnJvbUluamVjdGVkQnVuZGxlKToKKyAgICAgICAgKFdUUjo6VGVzdENvbnRyb2xsZXI6OnNldEhh
c1ZpZGVvQ29udGVudExheWVyRnJvbUluamVjdGVkQnVuZGxlKToKKyAgICAgICAgKFdUUjo6VGVz
dENvbnRyb2xsZXI6OmNsZWFudXBGdWxsc2NyZWVuRnJvbUluamVjdGVkQnVuZGxlKToKKyAgICAg
ICAgKFdUUjo6VGVzdENvbnRyb2xsZXI6OnByZXBhcmVkVG9SZXR1cm5Ub0lubGluZUZyb21Jbmpl
Y3RlZEJ1bmRsZSk6CisgICAgICAgIChXVFI6OlRlc3RDb250cm9sbGVyOjpwcmVwYXJlZFRvRXhp
dEZ1bGxzY3JlZW5Gcm9tSW5qZWN0ZWRCdW5kbGUpOgorICAgICAgICAoV1RSOjpUZXN0Q29udHJv
bGxlcjo6ZXhpdEZ1bGxzY3JlZW5XaXRob3V0QW5pbWF0aW9uVG9Nb2RlRnJvbUluamVjdGVkQnVu
ZGxlKToKKyAgICAgICAgKiBXZWJLaXRUZXN0UnVubmVyL1Rlc3RDb250cm9sbGVyLmg6CisgICAg
ICAgICogV2ViS2l0VGVzdFJ1bm5lci9pb3MvUGxhdGZvcm1XZWJWaWV3SU9TLm1tOgorICAgICAg
ICAoV1RSOjpQbGF0Zm9ybVdlYlZpZXc6OnZpZGVvRnVsbHNjcmVlbk1hbmFnZXIpOgorICAgICAg
ICAqIFdlYktpdFRlc3RSdW5uZXIvbWFjL1BsYXRmb3JtV2ViVmlld01hYy5tbToKKyAgICAgICAg
KFdUUjo6UGxhdGZvcm1XZWJWaWV3Ojp2aWRlb0Z1bGxzY3JlZW5NYW5hZ2VyKToKKwogMjAyMC0w
NC0yNyAgRGFuaWVsIEJhdGVzICA8ZGFiYXRlc0BhcHBsZS5jb20+CiAKICAgICAgICAgQ2FyZXQg
bWF5IGJlIHBsYWNlZCBpbiB0aGUgd3Jvbmcgc3BvdCBmb3IgdGV4dCBpbnB1dCBjb250ZXh0IHRo
YXQgaXMgYSBmb3JtIGNvbnRyb2wKZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIv
UGxhdGZvcm1XZWJWaWV3LmggYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1BsYXRmb3JtV2ViVmll
dy5oCmluZGV4IDNhOGJiZThjZTZjYjIzMzhjZDU0ZjM4MDcxYTM2YzljZmUwZTYyMjEuLjc0ZjQy
ZGY1Y2QyOWExNDZkMzEzNTBlMTdlMDYzOTc0ZWI5NDIwMTYgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dl
YktpdFRlc3RSdW5uZXIvUGxhdGZvcm1XZWJWaWV3LmgKKysrIGIvVG9vbHMvV2ViS2l0VGVzdFJ1
bm5lci9QbGF0Zm9ybVdlYlZpZXcuaApAQCAtODMsNiArODMsNyBAQCBwdWJsaWM6CiAgICAgflBs
YXRmb3JtV2ViVmlldygpOwogCiAgICAgV0tQYWdlUmVmIHBhZ2UoKTsKKyAgICBXS1ZpZGVvRnVs
bHNjcmVlbk1hbmFnZXJSZWYgdmlkZW9GdWxsc2NyZWVuTWFuYWdlcigpOwogICAgIFBsYXRmb3Jt
V0tWaWV3IHBsYXRmb3JtVmlldygpIHsgcmV0dXJuIG1fdmlldzsgfQogICAgIFBsYXRmb3JtV2lu
ZG93IHBsYXRmb3JtV2luZG93KCkgeyByZXR1cm4gbV93aW5kb3c7IH0KICAgICBzdGF0aWMgUGxh
dGZvcm1XaW5kb3cga2V5V2luZG93KCk7CmRpZmYgLS1naXQgYS9Ub29scy9XZWJLaXRUZXN0UnVu
bmVyL1Rlc3RDb250cm9sbGVyLmNwcCBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvVGVzdENvbnRy
b2xsZXIuY3BwCmluZGV4IGFhNzIzZWQ4ZjQ5NjFhMjA4NDZmMTNhYWM4NTEwYmVhMWQzZmVmZWMu
LjcyNDkwMjU5MmE0OTUwMDVkMjNiNGY0M2M4MjBkZmUzMWNmNGI0NjggMTAwNjQ0Ci0tLSBhL1Rv
b2xzL1dlYktpdFRlc3RSdW5uZXIvVGVzdENvbnRyb2xsZXIuY3BwCisrKyBiL1Rvb2xzL1dlYktp
dFRlc3RSdW5uZXIvVGVzdENvbnRyb2xsZXIuY3BwCkBAIC02Niw2ICs2Niw4IEBACiAjaW5jbHVk
ZSA8V2ViS2l0L1dLVXNlckNvbnRlbnRDb250cm9sbGVyUmVmLmg+CiAjaW5jbHVkZSA8V2ViS2l0
L1dLVXNlckNvbnRlbnRFeHRlbnNpb25TdG9yZVJlZi5oPgogI2luY2x1ZGUgPFdlYktpdC9XS1Vz
ZXJNZWRpYVBlcm1pc3Npb25DaGVjay5oPgorI2luY2x1ZGUgPFdlYktpdC9XS1ZpZGVvRnVsbHNj
cmVlbk1hbmFnZXIuaD4KKyNpbmNsdWRlIDxXZWJLaXQvV0tWaWRlb0Z1bGxzY3JlZW5NYW5hZ2Vy
SW5qZWN0ZWRCdW5kbGVDbGllbnQuaD4KICNpbmNsdWRlIDxXZWJLaXQvV0tXZWJzaXRlRGF0YVN0
b3JlQ29uZmlndXJhdGlvblJlZi5oPgogI2luY2x1ZGUgPFdlYktpdC9XS1dlYnNpdGVEYXRhU3Rv
cmVSZWYuaD4KICNpbmNsdWRlIDxXZWJLaXQvV0tXZWJzaXRlUG9saWNpZXMuaD4KQEAgLTE1NzUs
NiArMTU3NywyNCBAQCB2b2lkIFRlc3RDb250cm9sbGVyOjpjb25maWd1cmVWaWV3Rm9yVGVzdChj
b25zdCBUZXN0SW52b2NhdGlvbiYgdGVzdCkKICAgICB1cGRhdGVXaW5kb3dTY2FsZUZvclRlc3Qo
bWFpbldlYlZpZXcoKSwgdGVzdCk7CiAgICAgY29uZmlndXJlQ29udGVudEV4dGVuc2lvbkZvclRl
c3QodGVzdCk7CiAgICAgcGxhdGZvcm1Db25maWd1cmVWaWV3Rm9yVGVzdCh0ZXN0KTsKKworI2lm
IEVOQUJMRShWSURFT19QUkVTRU5UQVRJT05fTU9ERSkKKyAgICBXS1ZpZGVvRnVsbHNjcmVlbk1h
bmFnZXJJbmplY3RlZEJ1bmRsZUNsaWVudFYwIHZpZGVvRnVsbHNjcmVlbk1hbmFnZXJJbmplY3Rl
ZEJ1bmRsZUNsaWVudCA9IHsKKyAgICAgICAgeyAwLCB0aGlzIH0sCisgICAgICAgIHNldEhhc1Zp
ZGVvRnJvbUluamVjdGVkQnVuZGxlLAorICAgICAgICBzZXRWaWRlb0RpbWVuc2lvbnNGcm9tSW5q
ZWN0ZWRCdW5kbGUsCisgICAgICAgIHNldHVwRnVsbHNjcmVlbldpdGhJREZyb21JbmplY3RlZEJ1
bmRsZSwKKyAgICAgICAgZW50ZXJGdWxsc2NyZWVuRnJvbUluamVjdGVkQnVuZGxlLAorICAgICAg
ICBleGl0RnVsbHNjcmVlbkZyb21JbmplY3RlZEJ1bmRsZSwKKyAgICAgICAgc2V0SW5saW5lUmVj
dEZyb21JbmplY3RlZEJ1bmRsZSwKKyAgICAgICAgc2V0SGFzVmlkZW9Db250ZW50TGF5ZXJGcm9t
SW5qZWN0ZWRCdW5kbGUsCisgICAgICAgIGNsZWFudXBGdWxsc2NyZWVuRnJvbUluamVjdGVkQnVu
ZGxlLAorICAgICAgICBwcmVwYXJlZFRvUmV0dXJuVG9JbmxpbmVGcm9tSW5qZWN0ZWRCdW5kbGUs
CisgICAgICAgIHByZXBhcmVkVG9FeGl0RnVsbHNjcmVlbkZyb21JbmplY3RlZEJ1bmRsZSwKKyAg
ICAgICAgZXhpdEZ1bGxzY3JlZW5XaXRob3V0QW5pbWF0aW9uVG9Nb2RlRnJvbUluamVjdGVkQnVu
ZGxlCisgICAgfTsKKyAgICBXS1ZpZGVvRnVsbHNjcmVlbk1hbmFnZXJTZXRJbmplY3RlZEJ1bmRs
ZUNsaWVudChtX21haW5XZWJWaWV3LT52aWRlb0Z1bGxzY3JlZW5NYW5hZ2VyKCksICZ2aWRlb0Z1
bGxzY3JlZW5NYW5hZ2VySW5qZWN0ZWRCdW5kbGVDbGllbnQuYmFzZSk7CisjZW5kaWYKIH0KIAog
I2lmIEVOQUJMRShDT05URU5UX0VYVEVOU0lPTlMpICYmICFQTEFURk9STShDT0NPQSkKQEAgLTE4
OTIsNiArMTkxMiw1NSBAQCB2b2lkIFRlc3RDb250cm9sbGVyOjpkaWRSZWNlaXZlU3luY2hyb25v
dXNQYWdlTWVzc2FnZUZyb21JbmplY3RlZEJ1bmRsZVdpdGhMaXN0ZQogICAgIHN0YXRpY19jYXN0
PFRlc3RDb250cm9sbGVyKj4oY29uc3RfY2FzdDx2b2lkKj4oY2xpZW50SW5mbykpLT5kaWRSZWNl
aXZlU3luY2hyb25vdXNNZXNzYWdlRnJvbUluamVjdGVkQnVuZGxlKG1lc3NhZ2VOYW1lLCBtZXNz
YWdlQm9keSwgbGlzdGVuZXIpOwogfQogCisjaWYgRU5BQkxFKFZJREVPX1BSRVNFTlRBVElPTl9N
T0RFKQorCisvLyBXS1ZpZGVvRnVsbHNjcmVlbk1hbmFnZXJJbmplY3RlZEJ1bmRsZUNsaWVudAor
dm9pZCBUZXN0Q29udHJvbGxlcjo6c2V0SGFzVmlkZW9Gcm9tSW5qZWN0ZWRCdW5kbGUoV0tWaWRl
b0Z1bGxzY3JlZW5NYW5hZ2VyUmVmIG1hbmFnZXIsIHVpbnQ2NF90IGNvbnRleHRJZCwgYm9vbCBo
YXNWaWRlbykKK3sKK30KKwordm9pZCBUZXN0Q29udHJvbGxlcjo6c2V0VmlkZW9EaW1lbnNpb25z
RnJvbUluamVjdGVkQnVuZGxlKFdLVmlkZW9GdWxsc2NyZWVuTWFuYWdlclJlZiBtYW5hZ2VyLCB1
aW50NjRfdCBjb250ZXh0SWQsIFdLU2l6ZSB2aWRlb0RpbWVuc2lvbnMpCit7Cit9CisKK3ZvaWQg
VGVzdENvbnRyb2xsZXI6OnNldHVwRnVsbHNjcmVlbldpdGhJREZyb21JbmplY3RlZEJ1bmRsZShX
S1ZpZGVvRnVsbHNjcmVlbk1hbmFnZXJSZWYgbWFuYWdlciwgdWludDY0X3QgY29udGV4dElkLCB1
aW50MzJfdCB2aWRlb0xheWVySUQsIFdLUmVjdCBpbml0aWFsUmVjdCwgZmxvYXQgaG9zdGluZ1Nj
YWxlRmFjdG9yLCBXS1ZpZGVvRnVsbHNjcmVlbk1vZGUgdmlkZW9GdWxsc2NyZWVuTW9kZSwgYm9v
bCBhbGxvd3NQaWN0dXJlSW5QaWN0dXJlLCBib29sIHN0YW5kYnkpCit7Cit9CisKK3ZvaWQgVGVz
dENvbnRyb2xsZXI6OmVudGVyRnVsbHNjcmVlbkZyb21JbmplY3RlZEJ1bmRsZShXS1ZpZGVvRnVs
bHNjcmVlbk1hbmFnZXJSZWYgbWFuYWdlciwgdWludDY0X3QgY29udGV4dElkKQoreworfQorCit2
b2lkIFRlc3RDb250cm9sbGVyOjpleGl0RnVsbHNjcmVlbkZyb21JbmplY3RlZEJ1bmRsZShXS1Zp
ZGVvRnVsbHNjcmVlbk1hbmFnZXJSZWYgbWFuYWdlciwgdWludDY0X3QgY29udGV4dElkLCBXS1Jl
Y3QgZmluYWxSZWN0KQoreworfQorCit2b2lkIFRlc3RDb250cm9sbGVyOjpzZXRJbmxpbmVSZWN0
RnJvbUluamVjdGVkQnVuZGxlKFdLVmlkZW9GdWxsc2NyZWVuTWFuYWdlclJlZiBtYW5hZ2VyLCB1
aW50NjRfdCBjb250ZXh0SWQsIFdLUmVjdCBpbmxpbmVSZWN0LCBib29sIHZpc2libGUpCit7Cit9
CisKK3ZvaWQgVGVzdENvbnRyb2xsZXI6OnNldEhhc1ZpZGVvQ29udGVudExheWVyRnJvbUluamVj
dGVkQnVuZGxlKFdLVmlkZW9GdWxsc2NyZWVuTWFuYWdlclJlZiBtYW5hZ2VyLCB1aW50NjRfdCBj
b250ZXh0SWQsIGJvb2wgdmFsdWUpCit7Cit9CisKK3ZvaWQgVGVzdENvbnRyb2xsZXI6OmNsZWFu
dXBGdWxsc2NyZWVuRnJvbUluamVjdGVkQnVuZGxlKFdLVmlkZW9GdWxsc2NyZWVuTWFuYWdlclJl
ZiBtYW5hZ2VyLCB1aW50NjRfdCBjb250ZXh0SWQpCit7Cit9CisKK3ZvaWQgVGVzdENvbnRyb2xs
ZXI6OnByZXBhcmVkVG9SZXR1cm5Ub0lubGluZUZyb21JbmplY3RlZEJ1bmRsZShXS1ZpZGVvRnVs
bHNjcmVlbk1hbmFnZXJSZWYgbWFuYWdlciwgdWludDY0X3QgY29udGV4dElkLCBib29sIHZpc2li
bGUsIFdLUmVjdCBpbmxpbmVSZWN0KQoreworfQorCit2b2lkIFRlc3RDb250cm9sbGVyOjpwcmVw
YXJlZFRvRXhpdEZ1bGxzY3JlZW5Gcm9tSW5qZWN0ZWRCdW5kbGUoV0tWaWRlb0Z1bGxzY3JlZW5N
YW5hZ2VyUmVmIG1hbmFnZXIsIHVpbnQ2NF90IGNvbnRleHRJZCkKK3sKK30KKwordm9pZCBUZXN0
Q29udHJvbGxlcjo6ZXhpdEZ1bGxzY3JlZW5XaXRob3V0QW5pbWF0aW9uVG9Nb2RlRnJvbUluamVj
dGVkQnVuZGxlKFdLVmlkZW9GdWxsc2NyZWVuTWFuYWdlclJlZiBwYWdlLCB1aW50NjRfdCBjb250
ZXh0SWQsIFdLVmlkZW9GdWxsc2NyZWVuTW9kZSB2aWRlb0Z1bGxzY3JlZW5Nb2RlKQoreworfQor
CisjZW5kaWYKKwogdm9pZCBUZXN0Q29udHJvbGxlcjo6bmV0d29ya1Byb2Nlc3NEaWRDcmFzaChX
S0NvbnRleHRSZWYgY29udGV4dCwgY29uc3Qgdm9pZCAqY2xpZW50SW5mbykKIHsKICAgICBzdGF0
aWNfY2FzdDxUZXN0Q29udHJvbGxlcio+KGNvbnN0X2Nhc3Q8dm9pZCo+KGNsaWVudEluZm8pKS0+
bmV0d29ya1Byb2Nlc3NEaWRDcmFzaCgpOwpkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViS2l0VGVzdFJ1
bm5lci9UZXN0Q29udHJvbGxlci5oIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0Q29udHJv
bGxlci5oCmluZGV4IDE1Mjc4N2FhNzM0OTM2YTE4MjY4ZTJjZmI1YTExYzRkN2M4OWYwOWQuLmMw
YWQ4NTU0MTc1MDQwYzM4NjQ0MGUxYjQyYmE3OGFjNWM4YThkNmEgMTAwNjQ0Ci0tLSBhL1Rvb2xz
L1dlYktpdFRlc3RSdW5uZXIvVGVzdENvbnRyb2xsZXIuaAorKysgYi9Ub29scy9XZWJLaXRUZXN0
UnVubmVyL1Rlc3RDb250cm9sbGVyLmgKQEAgLTQ4LDYgKzQ4LDggQEAgT0JKQ19DTEFTUyBOU1N0
cmluZzsKIE9CSkNfQ0xBU1MgVUlLZXlib2FyZElucHV0TW9kZTsKIE9CSkNfQ0xBU1MgV0tXZWJW
aWV3Q29uZmlndXJhdGlvbjsKIAordHlwZWRlZiB1aW50MzJfdCBXS1ZpZGVvRnVsbHNjcmVlbk1v
ZGU7CisKIG5hbWVzcGFjZSBXVFIgewogCiBjbGFzcyBUZXN0SW52b2NhdGlvbjsKQEAgLTQyMyw2
ICs0MjUsMjEgQEAgcHJpdmF0ZToKICAgICB2b2lkIGRpZFJlY2VpdmVTeW5jaHJvbm91c01lc3Nh
Z2VGcm9tSW5qZWN0ZWRCdW5kbGUoV0tTdHJpbmdSZWYgbWVzc2FnZU5hbWUsIFdLVHlwZVJlZiBt
ZXNzYWdlQm9keSwgV0tNZXNzYWdlTGlzdGVuZXJSZWYpOwogICAgIFdLUmV0YWluUHRyPFdLVHlw
ZVJlZj4gZ2V0SW5qZWN0ZWRCdW5kbGVJbml0aWFsaXphdGlvblVzZXJEYXRhKCk7CiAKKyNpZiBF
TkFCTEUoVklERU9fUFJFU0VOVEFUSU9OX01PREUpCisgICAgLy8gV0tWaWRlb0Z1bGxzY3JlZW5N
YW5hZ2VySW5qZWN0ZWRCdW5kbGVDbGllbnQKKyAgICBzdGF0aWMgdm9pZCBzZXRIYXNWaWRlb0Zy
b21JbmplY3RlZEJ1bmRsZShXS1ZpZGVvRnVsbHNjcmVlbk1hbmFnZXJSZWYsIHVpbnQ2NF90IGNv
bnRleHRJZCwgYm9vbCBoYXNWaWRlbyk7CisgICAgc3RhdGljIHZvaWQgc2V0VmlkZW9EaW1lbnNp
b25zRnJvbUluamVjdGVkQnVuZGxlKFdLVmlkZW9GdWxsc2NyZWVuTWFuYWdlclJlZiwgdWludDY0
X3QgY29udGV4dElkLCBXS1NpemUgdmlkZW9EaW1lbnNpb25zKTsKKyAgICBzdGF0aWMgdm9pZCBz
ZXR1cEZ1bGxzY3JlZW5XaXRoSURGcm9tSW5qZWN0ZWRCdW5kbGUoV0tWaWRlb0Z1bGxzY3JlZW5N
YW5hZ2VyUmVmLCB1aW50NjRfdCBjb250ZXh0SWQsIHVpbnQzMl90IHZpZGVvTGF5ZXJJRCwgV0tS
ZWN0IGluaXRpYWxSZWN0LCBmbG9hdCBob3N0aW5nU2NhbGVGYWN0b3IsIFdLVmlkZW9GdWxsc2Ny
ZWVuTW9kZSwgYm9vbCBhbGxvd3NQaWN0dXJlSW5QaWN0dXJlLCBib29sIHN0YW5kYnkpOworICAg
IHN0YXRpYyB2b2lkIGVudGVyRnVsbHNjcmVlbkZyb21JbmplY3RlZEJ1bmRsZShXS1ZpZGVvRnVs
bHNjcmVlbk1hbmFnZXJSZWYsIHVpbnQ2NF90IGNvbnRleHRJZCk7CisgICAgc3RhdGljIHZvaWQg
ZXhpdEZ1bGxzY3JlZW5Gcm9tSW5qZWN0ZWRCdW5kbGUoV0tWaWRlb0Z1bGxzY3JlZW5NYW5hZ2Vy
UmVmLCB1aW50NjRfdCBjb250ZXh0SWQsIFdLUmVjdCBmaW5hbFJlY3QpOworICAgIHN0YXRpYyB2
b2lkIHNldElubGluZVJlY3RGcm9tSW5qZWN0ZWRCdW5kbGUoV0tWaWRlb0Z1bGxzY3JlZW5NYW5h
Z2VyUmVmLCB1aW50NjRfdCBjb250ZXh0SWQsIFdLUmVjdCBpbmxpbmVSZWN0LCBib29sIHZpc2li
bGUpOworICAgIHN0YXRpYyB2b2lkIHNldEhhc1ZpZGVvQ29udGVudExheWVyRnJvbUluamVjdGVk
QnVuZGxlKFdLVmlkZW9GdWxsc2NyZWVuTWFuYWdlclJlZiwgdWludDY0X3QgY29udGV4dElkLCBi
b29sIHZhbHVlKTsKKyAgICBzdGF0aWMgdm9pZCBjbGVhbnVwRnVsbHNjcmVlbkZyb21JbmplY3Rl
ZEJ1bmRsZShXS1ZpZGVvRnVsbHNjcmVlbk1hbmFnZXJSZWYsIHVpbnQ2NF90IGNvbnRleHRJZCk7
CisgICAgc3RhdGljIHZvaWQgcHJlcGFyZWRUb1JldHVyblRvSW5saW5lRnJvbUluamVjdGVkQnVu
ZGxlKFdLVmlkZW9GdWxsc2NyZWVuTWFuYWdlclJlZiwgdWludDY0X3QgY29udGV4dElkLCBib29s
IHZpc2libGUsIFdLUmVjdCBpbmxpbmVSZWN0KTsKKyAgICBzdGF0aWMgdm9pZCBwcmVwYXJlZFRv
RXhpdEZ1bGxzY3JlZW5Gcm9tSW5qZWN0ZWRCdW5kbGUoV0tWaWRlb0Z1bGxzY3JlZW5NYW5hZ2Vy
UmVmLCB1aW50NjRfdCBjb250ZXh0SWQpOworICAgIHN0YXRpYyB2b2lkIGV4aXRGdWxsc2NyZWVu
V2l0aG91dEFuaW1hdGlvblRvTW9kZUZyb21JbmplY3RlZEJ1bmRsZShXS1ZpZGVvRnVsbHNjcmVl
bk1hbmFnZXJSZWYsIHVpbnQ2NF90IGNvbnRleHRJZCwgV0tWaWRlb0Z1bGxzY3JlZW5Nb2RlKTsK
KyNlbmRpZgorCiAgICAgdm9pZCBkaWRSZWNlaXZlS2V5RG93bk1lc3NhZ2VGcm9tSW5qZWN0ZWRC
dW5kbGUoV0tEaWN0aW9uYXJ5UmVmIG1lc3NhZ2VCb2R5RGljdGlvbmFyeSwgYm9vbCBzeW5jaHJv
bm91cyk7CiAKICAgICAvLyBXS0NvbnRleHRDbGllbnQKQEAgLTQ2OCw3ICs0ODUsNiBAQCBwcml2
YXRlOgogCiAgICAgc3RhdGljIFdLUGx1Z2luTG9hZFBvbGljeSBkZWNpZGVQb2xpY3lGb3JQbHVn
aW5Mb2FkKFdLUGFnZVJlZiwgV0tQbHVnaW5Mb2FkUG9saWN5IGN1cnJlbnRQbHVnaW5Mb2FkUG9s
aWN5LCBXS0RpY3Rpb25hcnlSZWYgcGx1Z2luSW5mb3JtYXRpb24sIFdLU3RyaW5nUmVmKiB1bmF2
YWlsYWJpbGl0eURlc2NyaXB0aW9uLCBjb25zdCB2b2lkKiBjbGllbnRJbmZvKTsKICAgICBXS1Bs
dWdpbkxvYWRQb2xpY3kgZGVjaWRlUG9saWN5Rm9yUGx1Z2luTG9hZChXS1BhZ2VSZWYsIFdLUGx1
Z2luTG9hZFBvbGljeSBjdXJyZW50UGx1Z2luTG9hZFBvbGljeSwgV0tEaWN0aW9uYXJ5UmVmIHBs
dWdpbkluZm9ybWF0aW9uLCBXS1N0cmluZ1JlZiogdW5hdmFpbGFiaWxpdHlEZXNjcmlwdGlvbik7
Ci0gICAgCiAKICAgICBzdGF0aWMgdm9pZCBkZWNpZGVQb2xpY3lGb3JOb3RpZmljYXRpb25QZXJt
aXNzaW9uUmVxdWVzdChXS1BhZ2VSZWYsIFdLU2VjdXJpdHlPcmlnaW5SZWYsIFdLTm90aWZpY2F0
aW9uUGVybWlzc2lvblJlcXVlc3RSZWYsIGNvbnN0IHZvaWQqKTsKICAgICB2b2lkIGRlY2lkZVBv
bGljeUZvck5vdGlmaWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0KFdLUGFnZVJlZiwgV0tTZWN1cml0
eU9yaWdpblJlZiwgV0tOb3RpZmljYXRpb25QZXJtaXNzaW9uUmVxdWVzdFJlZik7CmRpZmYgLS1n
aXQgYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL2lvcy9QbGF0Zm9ybVdlYlZpZXdJT1MubW0gYi9U
b29scy9XZWJLaXRUZXN0UnVubmVyL2lvcy9QbGF0Zm9ybVdlYlZpZXdJT1MubW0KaW5kZXggZGNl
YTM4Y2RhY2U3NjgyNjUyMGIwYjFmZDhjZTAwOGJhM2JjN2E2NC4uNGExMzY1NzhlOWQzYzM3ZDUy
ZDc0OWU5NTRmYjlmYzgzYjcxMzZhYSAxMDA2NDQKLS0tIGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5l
ci9pb3MvUGxhdGZvcm1XZWJWaWV3SU9TLm1tCisrKyBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIv
aW9zL1BsYXRmb3JtV2ViVmlld0lPUy5tbQpAQCAtNDIsNiArNDIsNyBAQAogCiBAaW50ZXJmYWNl
IFdLV2ViVmlldyAoRGV0YWlscykKIC0gKFdLUGFnZVJlZilfcGFnZUZvclRlc3Rpbmc7CistIChX
S1ZpZGVvRnVsbHNjcmVlbk1hbmFnZXJSZWYpX3ZpZGVvRnVsbHNjcmVlbk1hbmFnZXJGb3JUZXN0
aW5nOwogQGVuZAogCiBAaW50ZXJmYWNlIFdlYktpdFRlc3RSdW5uZXJXaW5kb3cgOiBVSVdpbmRv
dyB7CkBAIC0yMzksNiArMjQwLDExIEBAIFdLUGFnZVJlZiBQbGF0Zm9ybVdlYlZpZXc6OnBhZ2Uo
KQogICAgIHJldHVybiBbbV92aWV3IF9wYWdlRm9yVGVzdGluZ107CiB9CiAKK1dLVmlkZW9GdWxs
c2NyZWVuTWFuYWdlclJlZiBQbGF0Zm9ybVdlYlZpZXc6OnZpZGVvRnVsbHNjcmVlbk1hbmFnZXIo
KQoreworICAgIHJldHVybiBbbV92aWV3IF92aWRlb0Z1bGxzY3JlZW5Gb3JUZXN0aW5nXTsKK30K
Kwogdm9pZCBQbGF0Zm9ybVdlYlZpZXc6OmZvY3VzKCkKIHsKICAgICBtYWtlV2ViVmlld0ZpcnN0
UmVzcG9uZGVyKCk7CmRpZmYgLS1naXQgYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL21hYy9QbGF0
Zm9ybVdlYlZpZXdNYWMubW0gYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL21hYy9QbGF0Zm9ybVdl
YlZpZXdNYWMubW0KaW5kZXggNjQxNzgyY2E5N2UxZGFmYjkwMDkxOWRiMTliMzQ3NGE1NTQzODhl
NS4uZDFlNWU3NzkyYzAzOWRkZTllMzhmMzFjZTc1Y2E1ZmYzMzhlMGRmNCAxMDA2NDQKLS0tIGEv
VG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9tYWMvUGxhdGZvcm1XZWJWaWV3TWFjLm1tCisrKyBiL1Rv
b2xzL1dlYktpdFRlc3RSdW5uZXIvbWFjL1BsYXRmb3JtV2ViVmlld01hYy5tbQpAQCAtMzgsNiAr
MzgsNyBAQAogCiBAaW50ZXJmYWNlIFdLV2ViVmlldyAoKQogLSAoV0tQYWdlUmVmKV9wYWdlRm9y
VGVzdGluZzsKKy0gKFdLVmlkZW9GdWxsc2NyZWVuTWFuYWdlclJlZilfdmlkZW9GdWxsc2NyZWVu
TWFuYWdlckZvclRlc3Rpbmc7CiBAZW5kCiAKIHVzaW5nIG5hbWVzcGFjZSBXVFI7CkBAIC0xMTcs
NiArMTE4LDExIEBAIFdLUGFnZVJlZiBQbGF0Zm9ybVdlYlZpZXc6OnBhZ2UoKQogICAgIHJldHVy
biBbbV92aWV3IF9wYWdlRm9yVGVzdGluZ107CiB9CiAKK1dLVmlkZW9GdWxsc2NyZWVuTWFuYWdl
clJlZiBQbGF0Zm9ybVdlYlZpZXc6OnZpZGVvRnVsbHNjcmVlbk1hbmFnZXIoKQoreworICAgIHJl
dHVybiBbbV92aWV3IF92aWRlb0Z1bGxzY3JlZW5NYW5hZ2VyRm9yVGVzdGluZ107Cit9CisKIHZv
aWQgUGxhdGZvcm1XZWJWaWV3Ojpmb2N1cygpCiB7CiAgICAgW21fd2luZG93IG1ha2VGaXJzdFJl
c3BvbmRlcjpwbGF0Zm9ybVZpZXcoKV07CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggZWM3MmVkNWZjNjk0OGIwZjRiZDljOGY4
MmIxZTE0ZmE0YWQzODJkZi4uYWEwMmRlMWFlNGU4MTA3ZjlmZWY1ZDA2NmNkNjg4ZmVhNzQyNDgw
YSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0No
YW5nZUxvZwpAQCAtMSwzICsxLDEzIEBACisyMDIwLTA0LTI3ICBQZW5nIExpdSAgPHBlbmcubGl1
NkBhcHBsZS5jb20+CisKKyAgICAgICAgVXBkYXRlIFdlYktpdFRlc3RSdW5uZXIgdG8gc3VwcG9y
dCBydW5uaW5nIG11bHRpcGxlIHZpZGVvIGZ1bGxzY3JlZW4gYW5kIFBpY3R1cmUtaW4tUGljdHVy
ZSB0ZXN0cyBzaW11bHRhbmVvdXNseQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9MjAzNzIzCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCisKKyAgICAgICAgKiBtZWRpYS92aWRlby1wcmVzZW50YXRpb24tbW9kZS1leHBlY3RlZC50
eHQ6IEFkZGVkLgorICAgICAgICAqIG1lZGlhL3ZpZGVvLXByZXNlbnRhdGlvbi1tb2RlLmh0bWw6
IEFkZGVkLgorCiAyMDIwLTA0LTI3ICBBbGljaWEgQm95YSBHYXJjw61hICA8YWJveWFAaWdhbGlh
LmNvbT4KIAogICAgICAgICBbR1N0cmVhbWVyXSBSZXdvcmsgV2ViS2l0V2ViU3JjIHRocmVhZGlu
ZwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvbWVkaWEvdmlkZW8tcHJlc2VudGF0aW9uLW1vZGUt
ZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvbWVkaWEvdmlkZW8tcHJlc2VudGF0aW9uLW1vZGUt
ZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjU1MGU4NTNkN2U3M2VkODMxMzVmZWI5MmM3MDk5NTkz
Nzk2YmRmYjAKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9tZWRpYS92aWRlby1wcmVz
ZW50YXRpb24tbW9kZS1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwzMiBAQAorCitUZXN0IHRoZSB2
aWRlbyBwcmVzZW50YXRpb24gbW9kZSAodmlkZW8gZnVsbHNjcmVlbiBhbmQgcGljdHVyZS1pbi1w
aWN0dXJlKSBBUEkuCisKKworRVZFTlQoY2FucGxheXRocm91Z2gpCitFWFBFQ1RFRCAodmlkZW8u
d2Via2l0U3VwcG9ydHNGdWxsc2NyZWVuID09ICd0cnVlJykgT0sKK0VYUEVDVEVEICh2aWRlby53
ZWJraXREaXNwbGF5aW5nRnVsbHNjcmVlbiA9PSAnZmFsc2UnKSBPSworCisqKiBUcnkgdG8gZW50
ZXIgZnVsbHNjcmVlbgorUlVOKHZpZGVvLndlYmtpdFNldFByZXNlbnRhdGlvbk1vZGUoJ2Z1bGxz
Y3JlZW4nKSkKK0VWRU5UKHdlYmtpdHByZXNlbnRhdGlvbm1vZGVjaGFuZ2VkKQorCisqKiBFbnRl
cmVkIGZ1bGxzY3JlZW4KK0VYUEVDVEVEICh2aWRlby53ZWJraXRQcmVzZW50YXRpb25Nb2RlID09
ICdmdWxsc2NyZWVuJykgT0sKKworKiogVHJ5IHRvIGVudGVyIHBpY3R1cmUtaW4tcGljdHVyZQor
UlVOKHZpZGVvLndlYmtpdFNldFByZXNlbnRhdGlvbk1vZGUoJ3BpY3R1cmUtaW4tcGljdHVyZScp
KQorRVZFTlQod2Via2l0cHJlc2VudGF0aW9ubW9kZWNoYW5nZWQpCisKKyoqIEVudGVyZWQgcGlj
dHVyZS1pbi1waWN0dXIKK0VYUEVDVEVEICh2aWRlby53ZWJraXRQcmVzZW50YXRpb25Nb2RlID09
ICdwaWN0dXJlLWluLXBpY3R1cmUnKSBPSworCisqKiBUcnkgdG8gcmV0dXJuIHRvIGlubGluZQor
UlVOKHZpZGVvLndlYmtpdFNldFByZXNlbnRhdGlvbk1vZGUoJ2lubGluZScpKQorRVZFTlQod2Vi
a2l0cHJlc2VudGF0aW9ubW9kZWNoYW5nZWQpCisKKyoqIFJldHVybmVkIHRvIGlubGluZQorRVhQ
RUNURUQgKHZpZGVvLndlYmtpdFByZXNlbnRhdGlvbk1vZGUgPT0gJ2lubGluZScpIE9LCisKKyoq
IFRlc3QgQ29tcGxldGVkCitFTkQgT0YgVEVTVAorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9t
ZWRpYS92aWRlby1wcmVzZW50YXRpb24tbW9kZS5odG1sIGIvTGF5b3V0VGVzdHMvbWVkaWEvdmlk
ZW8tcHJlc2VudGF0aW9uLW1vZGUuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4zZmY0MzZlMGUxMjExYzBjNzE2
YTI3YWFlMWRkNDRlMGEzOTUyZjUxCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvbWVk
aWEvdmlkZW8tcHJlc2VudGF0aW9uLW1vZGUuaHRtbApAQCAtMCwwICsxLDYxIEBACis8IWRvY3R5
cGUgaHRtbD4KKzxodG1sPgorICAgIDxoZWFkPgorICAgICAgICA8c2NyaXB0IHNyYz1tZWRpYS1m
aWxlLmpzPjwvc2NyaXB0PgorICAgICAgICA8c2NyaXB0IHNyYz12aWRlby10ZXN0LmpzPjwvc2Ny
aXB0PgorICAgICAgICA8c2NyaXB0PgorICAgICAgICAgICAgZnVuY3Rpb24gc3RhcnQoKQorICAg
ICAgICAgICAgeworICAgICAgICAgICAgICAgIGlmICh3aW5kb3cuaW50ZXJuYWxzKQorICAgICAg
ICAgICAgICAgICAgICB3aW5kb3cuaW50ZXJuYWxzLnNldHRpbmdzLnNldEFsbG93c1BpY3R1cmVJ
blBpY3R1cmVNZWRpYVBsYXliYWNrKHRydWUpOworCisgICAgICAgICAgICAgICAgdmlkZW8gPSBk
b2N1bWVudC5nZXRFbGVtZW50c0J5VGFnTmFtZSgndmlkZW8nKVswXTsKKyAgICAgICAgICAgICAg
ICB3YWl0Rm9yRXZlbnRPbmNlKCJjYW5wbGF5dGhyb3VnaCIsIGNhbnBsYXl0aHJvdWdoKTsKKyAg
ICAgICAgICAgICAgICB2aWRlby5zcmMgPSBmaW5kTWVkaWFGaWxlKCJ2aWRlbyIsICJjb250ZW50
L3Rlc3QiKTsKKworICAgICAgICAgICAgICAgIGNvbnNvbGVXcml0ZSgiIik7CisgICAgICAgICAg
ICB9CisKKyAgICAgICAgICAgIGZ1bmN0aW9uIGNhbnBsYXl0aHJvdWdoKCkKKyAgICAgICAgICAg
IHsKKyAgICAgICAgICAgICAgICB0ZXN0RXhwZWN0ZWQoInZpZGVvLndlYmtpdFN1cHBvcnRzRnVs
bHNjcmVlbiIsIHRydWUpOworICAgICAgICAgICAgICAgIHRlc3RFeHBlY3RlZCgidmlkZW8ud2Vi
a2l0RGlzcGxheWluZ0Z1bGxzY3JlZW4iLCBmYWxzZSk7CisKKyAgICAgICAgICAgICAgICBjb25z
b2xlV3JpdGUoIjxicj4qKiBUcnkgdG8gZW50ZXIgZnVsbHNjcmVlbiIpOworICAgICAgICAgICAg
ICAgIHJ1bldpdGhLZXlEb3duKCJ2aWRlby53ZWJraXRTZXRQcmVzZW50YXRpb25Nb2RlKCdmdWxs
c2NyZWVuJykiKTsKKyAgICAgICAgICAgICAgICB3YWl0Rm9yRXZlbnRPbmNlKCd3ZWJraXRwcmVz
ZW50YXRpb25tb2RlY2hhbmdlZCcsIHByZXNlbnRhdGlvbk1vZGVDaGFuZ2VkMSk7CisgICAgICAg
ICAgICB9CisKKyAgICAgICAgICAgIGZ1bmN0aW9uIHByZXNlbnRhdGlvbk1vZGVDaGFuZ2VkMSgp
CisgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgY29uc29sZVdyaXRlKCI8YnI+KiogRW50
ZXJlZCBmdWxsc2NyZWVuIik7CisgICAgICAgICAgICAgICAgdGVzdEV4cGVjdGVkKCJ2aWRlby53
ZWJraXRQcmVzZW50YXRpb25Nb2RlIiwgImZ1bGxzY3JlZW4iKTsKKyAgICAgICAgICAgICAgICBj
b25zb2xlV3JpdGUoIjxicj4qKiBUcnkgdG8gZW50ZXIgcGljdHVyZS1pbi1waWN0dXJlIik7Cisg
ICAgICAgICAgICAgICAgd2FpdEZvckV2ZW50T25jZSgnd2Via2l0cHJlc2VudGF0aW9ubW9kZWNo
YW5nZWQnLCBwcmVzZW50YXRpb25Nb2RlQ2hhbmdlZDIpOworICAgICAgICAgICAgICAgIHJ1bldp
dGhLZXlEb3duKCJ2aWRlby53ZWJraXRTZXRQcmVzZW50YXRpb25Nb2RlKCdwaWN0dXJlLWluLXBp
Y3R1cmUnKSIpOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICBmdW5jdGlvbiBwcmVzZW50
YXRpb25Nb2RlQ2hhbmdlZDIoKQorICAgICAgICAgICAgeworICAgICAgICAgICAgICAgIGNvbnNv
bGVXcml0ZSgiPGJyPioqIEVudGVyZWQgcGljdHVyZS1pbi1waWN0dXIiKTsKKyAgICAgICAgICAg
ICAgICB0ZXN0RXhwZWN0ZWQoInZpZGVvLndlYmtpdFByZXNlbnRhdGlvbk1vZGUiLCAicGljdHVy
ZS1pbi1waWN0dXJlIik7CisgICAgICAgICAgICAgICAgY29uc29sZVdyaXRlKCI8YnI+KiogVHJ5
IHRvIHJldHVybiB0byBpbmxpbmUiKTsKKyAgICAgICAgICAgICAgICB3YWl0Rm9yRXZlbnRPbmNl
KCd3ZWJraXRwcmVzZW50YXRpb25tb2RlY2hhbmdlZCcsIHRlc3RDb21wbGV0ZWQpOworICAgICAg
ICAgICAgICAgIHJ1bldpdGhLZXlEb3duKCJ2aWRlby53ZWJraXRTZXRQcmVzZW50YXRpb25Nb2Rl
KCdpbmxpbmUnKSIpOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICBmdW5jdGlvbiB0ZXN0
Q29tcGxldGVkKCkKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICBjb25zb2xlV3JpdGUo
Ijxicj4qKiBSZXR1cm5lZCB0byBpbmxpbmUiKTsKKyAgICAgICAgICAgICAgICB0ZXN0RXhwZWN0
ZWQoInZpZGVvLndlYmtpdFByZXNlbnRhdGlvbk1vZGUiLCAiaW5saW5lIik7CisgICAgICAgICAg
ICAgICAgY29uc29sZVdyaXRlKCI8YnI+KiogVGVzdCBDb21wbGV0ZWQiKTsKKyAgICAgICAgICAg
ICAgICBlbmRUZXN0KCk7CisgICAgICAgICAgICB9CisgICAgICAgIDwvc2NyaXB0PgorICAgIDwv
aGVhZD4KKworICAgIDxib2R5IG9ubG9hZD0ic3RhcnQoKSI+CisgICAgICAgIDx2aWRlbyBjb250
cm9scyBwbGF5c2lubGluZT48L3ZpZGVvPgorICAgICAgICA8cD5UZXN0IHRoZSB2aWRlbyBwcmVz
ZW50YXRpb24gbW9kZSAodmlkZW8gZnVsbHNjcmVlbiBhbmQgcGljdHVyZS1pbi1waWN0dXJlKSBB
UEkuPC9wPgorICAgIDwvYm9keT4KKzwvaHRtbD4K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>397812</attachid>
            <date>2020-04-27 23:25:41 -0700</date>
            <delta_ts>2020-04-28 10:16:34 -0700</delta_ts>
            <desc>WIP patch - fix iOS build failures</desc>
            <filename>bug-203723-20200427232540.patch</filename>
            <type>text/plain</type>
            <size>61768</size>
            <attacher name="Peng Liu">peng.liu6</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjYwNzYyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDgyOWY2OGJjOTgyNWZkYjhm
YmY1NDhjYmRjNDE0ODgyMDcyMWNiMDUuLmVlMjc1MjJiMzhhOTczMzBjZDY3Y2I1YWEzMTVkY2E5
Y2YwM2E5MGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNTEgQEAKKzIwMjAtMDQtMjcgIFBlbmcgTGl1
ICA8cGVuZy5saXU2QGFwcGxlLmNvbT4KKworICAgICAgICBVcGRhdGUgV2ViS2l0VGVzdFJ1bm5l
ciB0byBzdXBwb3J0IHJ1bm5pbmcgbXVsdGlwbGUgdmlkZW8gZnVsbHNjcmVlbiBhbmQgUGljdHVy
ZS1pbi1QaWN0dXJlIHRlc3RzIHNpbXVsdGFuZW91c2x5CisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDM3MjMKKworICAgICAgICBSZXZpZXdlZCBieSBO
T0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFNoYXJlZC9BUEkvQVBJT2JqZWN0Lmg6CisgICAg
ICAgICogU2hhcmVkL0FQSS9jL1dLQmFzZS5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQy9X
S0FQSUNhc3QuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0MvV0tQYWdlSW5qZWN0ZWRCdW5k
bGVDbGllbnQuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0MvV0tWaWRlb0Z1bGxzY3JlZW5N
YW5hZ2VyLmNwcDogQWRkZWQuCisgICAgICAgIChXS1ZpZGVvRnVsbHNjcmVlbk1hbmFnZXJTZXRJ
bmplY3RlZEJ1bmRsZUNsaWVudCk6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9DL1dLVmlkZW9G
dWxsc2NyZWVuTWFuYWdlci5oOiBBZGRlZC4KKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0MvV0tW
aWRlb0Z1bGxzY3JlZW5NYW5hZ2VySW5qZWN0ZWRCdW5kbGVDbGllbnQuaDogQWRkZWQuCisgICAg
ICAgICogVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXcubW06CisgICAgICAgICgtW1dLV2Vi
VmlldyBfdmlkZW9GdWxsc2NyZWVuTWFuYWdlckZvclRlc3RpbmddKToKKyAgICAgICAgKiBVSVBy
b2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlld0ludGVybmFsLmg6CisgICAgICAgICogVUlQcm9jZXNz
L0NvY29hL1ZpZGVvRnVsbHNjcmVlbk1hbmFnZXJJbmplY3RlZEJ1bmRsZUNsaWVudC5jcHA6IEFk
ZGVkLgorICAgICAgICAoV2ViS2l0OjpWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VySW5qZWN0ZWRCdW5k
bGVDbGllbnQ6OnNldEhhc1ZpZGVvKToKKyAgICAgICAgKFdlYktpdDo6VmlkZW9GdWxsc2NyZWVu
TWFuYWdlckluamVjdGVkQnVuZGxlQ2xpZW50OjpzZXRWaWRlb0RpbWVuc2lvbnMpOgorICAgICAg
ICAoV2ViS2l0OjpWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VySW5qZWN0ZWRCdW5kbGVDbGllbnQ6OnNl
dHVwRnVsbHNjcmVlbldpdGhJRCk6CisgICAgICAgIChXZWJLaXQ6OlZpZGVvRnVsbHNjcmVlbk1h
bmFnZXJJbmplY3RlZEJ1bmRsZUNsaWVudDo6ZW50ZXJGdWxsc2NyZWVuKToKKyAgICAgICAgKFdl
YktpdDo6VmlkZW9GdWxsc2NyZWVuTWFuYWdlckluamVjdGVkQnVuZGxlQ2xpZW50OjpleGl0RnVs
bHNjcmVlbik6CisgICAgICAgIChXZWJLaXQ6OlZpZGVvRnVsbHNjcmVlbk1hbmFnZXJJbmplY3Rl
ZEJ1bmRsZUNsaWVudDo6c2V0SW5saW5lUmVjdCk6CisgICAgICAgIChXZWJLaXQ6OlZpZGVvRnVs
bHNjcmVlbk1hbmFnZXJJbmplY3RlZEJ1bmRsZUNsaWVudDo6c2V0SGFzVmlkZW9Db250ZW50TGF5
ZXIpOgorICAgICAgICAoV2ViS2l0OjpWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VySW5qZWN0ZWRCdW5k
bGVDbGllbnQ6OmNsZWFudXBGdWxsc2NyZWVuKToKKyAgICAgICAgKFdlYktpdDo6VmlkZW9GdWxs
c2NyZWVuTWFuYWdlckluamVjdGVkQnVuZGxlQ2xpZW50OjpwcmVwYXJlZFRvUmV0dXJuVG9Jbmxp
bmUpOgorICAgICAgICAoV2ViS2l0OjpWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VySW5qZWN0ZWRCdW5k
bGVDbGllbnQ6OnByZXBhcmVkVG9FeGl0RnVsbHNjcmVlbik6CisgICAgICAgIChXZWJLaXQ6OlZp
ZGVvRnVsbHNjcmVlbk1hbmFnZXJJbmplY3RlZEJ1bmRsZUNsaWVudDo6ZXhpdEZ1bGxzY3JlZW5X
aXRob3V0QW5pbWF0aW9uVG9Nb2RlKToKKyAgICAgICAgKiBVSVByb2Nlc3MvQ29jb2EvVmlkZW9G
dWxsc2NyZWVuTWFuYWdlckluamVjdGVkQnVuZGxlQ2xpZW50Lmg6IEFkZGVkLgorICAgICAgICAq
IFVJUHJvY2Vzcy9Db2NvYS9WaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyUHJveHkuaDoKKyAgICAgICAg
KiBVSVByb2Nlc3MvQ29jb2EvVmlkZW9GdWxsc2NyZWVuTWFuYWdlclByb3h5Lm1tOgorICAgICAg
ICAoV2ViS2l0OjpWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyUHJveHk6OnNldEluamVjdGVkQnVuZGxl
Q2xpZW50KToKKyAgICAgICAgKFdlYktpdDo6VmlkZW9GdWxsc2NyZWVuTWFuYWdlclByb3h5Ojpp
c1BsYXlpbmdWaWRlb0luRW5oYW5jZWRGdWxsc2NyZWVuIGNvbnN0KToKKyAgICAgICAgKFdlYktp
dDo6VmlkZW9GdWxsc2NyZWVuTWFuYWdlclByb3h5OjpzZXR1cEZ1bGxzY3JlZW5XaXRoSUQpOgor
ICAgICAgICAoV2ViS2l0OjpWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyUHJveHk6OnNldEhhc1ZpZGVv
KToKKyAgICAgICAgKFdlYktpdDo6VmlkZW9GdWxsc2NyZWVuTWFuYWdlclByb3h5OjpzZXRWaWRl
b0RpbWVuc2lvbnMpOgorICAgICAgICAoV2ViS2l0OjpWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyUHJv
eHk6OmVudGVyRnVsbHNjcmVlbik6CisgICAgICAgIChXZWJLaXQ6OlZpZGVvRnVsbHNjcmVlbk1h
bmFnZXJQcm94eTo6ZXhpdEZ1bGxzY3JlZW4pOgorICAgICAgICAoV2ViS2l0OjpWaWRlb0Z1bGxz
Y3JlZW5NYW5hZ2VyUHJveHk6OmV4aXRGdWxsc2NyZWVuV2l0aG91dEFuaW1hdGlvblRvTW9kZSk6
CisgICAgICAgIChXZWJLaXQ6OlZpZGVvRnVsbHNjcmVlbk1hbmFnZXJQcm94eTo6c2V0SW5saW5l
UmVjdCk6CisgICAgICAgIChXZWJLaXQ6OlZpZGVvRnVsbHNjcmVlbk1hbmFnZXJQcm94eTo6c2V0
SGFzVmlkZW9Db250ZW50TGF5ZXIpOgorICAgICAgICAoV2ViS2l0OjpWaWRlb0Z1bGxzY3JlZW5N
YW5hZ2VyUHJveHk6OmNsZWFudXBGdWxsc2NyZWVuKToKKyAgICAgICAgKFdlYktpdDo6VmlkZW9G
dWxsc2NyZWVuTWFuYWdlclByb3h5OjpwcmVwYXJlZFRvUmV0dXJuVG9JbmxpbmUpOgorICAgICAg
ICAoV2ViS2l0OjpWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyUHJveHk6OnByZXBhcmVkVG9FeGl0RnVs
bHNjcmVlbik6CisgICAgICAgICogV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisK
IDIwMjAtMDQtMjcgIFBoaWxpcHBlIE5vcm1hbmQgIDxwbm9ybWFuZEBpZ2FsaWEuY29tPgogCiAg
ICAgICAgIFtHVEtdIEVOQUJMRShPUEVOR0wpIHJlbW1hbnRzLi4uCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L1NoYXJlZC9BUEkvQVBJT2JqZWN0LmggYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9B
UEkvQVBJT2JqZWN0LmgKaW5kZXggNGE2OGRmZjU4NGYxMWU4MzVmODUzMjZiNDRmMDdmNGE4MDRj
OTc2Mi4uMGUxN2Y3MjIxY2NkNmRkYzMzYWJjMGEzYWE4ZDBhZDViNjk0Y2NiNSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9TaGFyZWQvQVBJL0FQSU9iamVjdC5oCisrKyBiL1NvdXJjZS9XZWJL
aXQvU2hhcmVkL0FQSS9BUElPYmplY3QuaApAQCAtMTY5LDYgKzE2OSw3IEBAIHB1YmxpYzoKICAg
ICAgICAgVXNlckluaXRpYXRlZEFjdGlvbiwKICAgICAgICAgVXNlck1lZGlhUGVybWlzc2lvbkNo
ZWNrLAogICAgICAgICBVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdCwKKyAgICAgICAgVmlkZW9G
dWxsc2NyZWVuTWFuYWdlciwKICAgICAgICAgVmlld3BvcnRBdHRyaWJ1dGVzLAogICAgICAgICBW
aXNpdGVkTGlua1N0b3JlLAogICAgICAgICBXZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzTWFuYWdl
ciwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0FQSS9jL1dLQmFzZS5oIGIvU291
cmNlL1dlYktpdC9TaGFyZWQvQVBJL2MvV0tCYXNlLmgKaW5kZXggOGM5ZGM5MDg3Y2RhZmMyYWNm
ZGExNjc2MWI3ZWE3ZjhlZDc0MzI5Zi4uMWViMzA2ZWYxZmY4ODQ2MjU4OGEyYmI0NmE4NGY2MzY1
ZmI1ZGJiOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9TaGFyZWQvQVBJL2MvV0tCYXNlLmgK
KysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQvQVBJL2MvV0tCYXNlLmgKQEAgLTEyMyw2ICsxMjMs
NyBAQCB0eXBlZGVmIGNvbnN0IHN0cnVjdCBPcGFxdWVXS09wZW5QYW5lbFJlc3VsdExpc3RlbmVy
KiBXS09wZW5QYW5lbFJlc3VsdExpc3RlbmVyUgogdHlwZWRlZiBjb25zdCBzdHJ1Y3QgT3BhcXVl
V0tQYWdlKiBXS1BhZ2VSZWY7CiB0eXBlZGVmIGNvbnN0IHN0cnVjdCBPcGFxdWVXS1BhZ2VDb25m
aWd1cmF0aW9uKiBXS1BhZ2VDb25maWd1cmF0aW9uUmVmOwogdHlwZWRlZiBjb25zdCBzdHJ1Y3Qg
T3BhcXVlV0tQYWdlR3JvdXAqIFdLUGFnZUdyb3VwUmVmOwordHlwZWRlZiBjb25zdCBzdHJ1Y3Qg
T3BhcXVlV0tWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyKiBXS1ZpZGVvRnVsbHNjcmVlbk1hbmFnZXJS
ZWY7CiB0eXBlZGVmIGNvbnN0IHN0cnVjdCBPcGFxdWVXS1ByZWZlcmVuY2VzKiBXS1ByZWZlcmVu
Y2VzUmVmOwogdHlwZWRlZiBjb25zdCBzdHJ1Y3QgT3BhcXVlV0tQcm90ZWN0aW9uU3BhY2UqIFdL
UHJvdGVjdGlvblNwYWNlUmVmOwogdHlwZWRlZiBjb25zdCBzdHJ1Y3QgT3BhcXVlV0tQYWdlUnVu
QmVmb3JlVW5sb2FkQ29uZmlybVBhbmVsUmVzdWx0TGlzdGVuZXIqIFdLUGFnZVJ1bkJlZm9yZVVu
bG9hZENvbmZpcm1QYW5lbFJlc3VsdExpc3RlbmVyUmVmOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvQVBJL0MvV0tBUElDYXN0LmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9BUEkvQy9XS0FQSUNhc3QuaAppbmRleCA0OGI2NjFmMzQ5NDdhMzEyNDAxYmY2YTIwOWRkZjNh
YTVjZjQyYWQ4Li5mNTUyMGI4OTg5ZTk1NTdmNzNhMjllMGFmMGQxNDBkZjM3ZDVmMTczIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQy9XS0FQSUNhc3QuaAorKysgYi9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQy9XS0FQSUNhc3QuaApAQCAtODEsNiArODEsNyBA
QCBjbGFzcyBHZW9sb2NhdGlvblBlcm1pc3Npb25SZXF1ZXN0OwogY2xhc3MgTm90aWZpY2F0aW9u
UGVybWlzc2lvblJlcXVlc3Q7CiBjbGFzcyBVc2VyTWVkaWFQZXJtaXNzaW9uQ2hlY2tQcm94eTsK
IGNsYXNzIFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UHJveHk7CitjbGFzcyBWaWRlb0Z1bGxz
Y3JlZW5NYW5hZ2VyUHJveHk7CiBjbGFzcyBXZWJCYWNrRm9yd2FyZExpc3Q7CiBjbGFzcyBXZWJC
YWNrRm9yd2FyZExpc3RJdGVtOwogY2xhc3MgV2ViQ29sb3JQaWNrZXJSZXN1bHRMaXN0ZW5lclBy
b3h5OwpAQCAtMTY3LDggKzE2OCw5IEBAIFdLX0FERF9BUElfTUFQUElORyhXS1VzZXJDb250ZW50
RmlsdGVyUmVmLCBBUEk6OkNvbnRlbnRSdWxlTGlzdCkKIFdLX0FERF9BUElfTUFQUElORyhXS1Vz
ZXJNZWRpYVBlcm1pc3Npb25DaGVja1JlZiwgVXNlck1lZGlhUGVybWlzc2lvbkNoZWNrUHJveHkp
CiBXS19BRERfQVBJX01BUFBJTkcoV0tVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdFJlZiwgVXNl
ck1lZGlhUGVybWlzc2lvblJlcXVlc3RQcm94eSkKIFdLX0FERF9BUElfTUFQUElORyhXS1VzZXJT
Y3JpcHRSZWYsIEFQSTo6VXNlclNjcmlwdCkKK1dLX0FERF9BUElfTUFQUElORyhXS1ZpZGVvRnVs
bHNjcmVlbk1hbmFnZXJSZWYsIFZpZGVvRnVsbHNjcmVlbk1hbmFnZXJQcm94eSkKIFdLX0FERF9B
UElfTUFQUElORyhXS1ZpZXdwb3J0QXR0cmlidXRlc1JlZiwgV2ViVmlld3BvcnRBdHRyaWJ1dGVz
KQotV0tfQUREX0FQSV9NQVBQSU5HKFdLV2Vic2l0ZURhdGFTdG9yZVJlZiwgV2ViS2l0OjpXZWJz
aXRlRGF0YVN0b3JlKQorV0tfQUREX0FQSV9NQVBQSU5HKFdLV2Vic2l0ZURhdGFTdG9yZVJlZiwg
V2Vic2l0ZURhdGFTdG9yZSkKIFdLX0FERF9BUElfTUFQUElORyhXS1dlYnNpdGVEYXRhU3RvcmVD
b25maWd1cmF0aW9uUmVmLCBXZWJLaXQ6OldlYnNpdGVEYXRhU3RvcmVDb25maWd1cmF0aW9uKQog
V0tfQUREX0FQSV9NQVBQSU5HKFdLV2Vic2l0ZVBvbGljaWVzUmVmLCBBUEk6OldlYnNpdGVQb2xp
Y2llcykKIFdLX0FERF9BUElfTUFQUElORyhXS1dpbmRvd0ZlYXR1cmVzUmVmLCBBUEk6OldpbmRv
d0ZlYXR1cmVzKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0MvV0tQ
YWdlSW5qZWN0ZWRCdW5kbGVDbGllbnQuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9D
L1dLUGFnZUluamVjdGVkQnVuZGxlQ2xpZW50LmgKaW5kZXggZWRiYmY1OGNjYzY1OTc0MmI5YjFi
NDRiNTM2NTI1N2EzMDI5ZDE5ZS4uOTE2Y2ExMGE3MWYyYWQ2MDhiNWM3NjAxMTdkNTc5OWVmZTIz
YzFjNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0MvV0tQYWdlSW5q
ZWN0ZWRCdW5kbGVDbGllbnQuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQy9X
S1BhZ2VJbmplY3RlZEJ1bmRsZUNsaWVudC5oCkBAIC0zMCw3ICszMCw2IEBACiAKIHR5cGVkZWYg
dm9pZCAoKldLUGFnZURpZFJlY2VpdmVNZXNzYWdlRnJvbUluamVjdGVkQnVuZGxlQ2FsbGJhY2sp
KFdLUGFnZVJlZiBwYWdlLCBXS1N0cmluZ1JlZiBtZXNzYWdlTmFtZSwgV0tUeXBlUmVmIG1lc3Nh
Z2VCb2R5LCBjb25zdCB2b2lkICpjbGllbnRJbmZvKTsKIHR5cGVkZWYgdm9pZCAoKldLUGFnZURp
ZFJlY2VpdmVTeW5jaHJvbm91c01lc3NhZ2VGcm9tSW5qZWN0ZWRCdW5kbGVDYWxsYmFjaykoV0tQ
YWdlUmVmIHBhZ2UsIFdLU3RyaW5nUmVmIG1lc3NhZ2VOYW1lLCBXS1R5cGVSZWYgbWVzc2FnZUJv
ZHksIFdLVHlwZVJlZiogcmV0dXJuRGF0YSwgY29uc3Qgdm9pZCAqY2xpZW50SW5mbyk7Ci10eXBl
ZGVmIFdLVHlwZVJlZiAoKldLUGFnZUdldEluamVjdGVkQnVuZGxlSW5pdGlhbGl6YXRpb25Vc2Vy
RGF0YUNhbGxiYWNrKShXS1BhZ2VSZWYgcGFnZSwgY29uc3Qgdm9pZCAqY2xpZW50SW5mbyk7CiB0
eXBlZGVmIHZvaWQgKCpXS1BhZ2VEaWRSZWNlaXZlU3luY2hyb25vdXNNZXNzYWdlRnJvbUluamVj
dGVkQnVuZGxlV2l0aExpc3RlbmVyQ2FsbGJhY2spKFdLUGFnZVJlZiBwYWdlLCBXS1N0cmluZ1Jl
ZiBtZXNzYWdlTmFtZSwgV0tUeXBlUmVmIG1lc3NhZ2VCb2R5LCBXS01lc3NhZ2VMaXN0ZW5lclJl
ZiBsaXN0ZW5lciwgY29uc3Qgdm9pZCogY2xpZW50SW5mbyk7CiAKIHR5cGVkZWYgc3RydWN0IFdL
UGFnZUluamVjdGVkQnVuZGxlQ2xpZW50QmFzZSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9BUEkvQy9XS1ZpZGVvRnVsbHNjcmVlbk1hbmFnZXIuY3BwIGIvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvQVBJL0MvV0tWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyLmNwcApuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwLi5mZmRmZmQ0MDBkOTJlZTJjMTc4YTA4MTMyNjI5MzU4OGM2NmRiM2MyCi0tLSAvZGV2L251
bGwKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0MvV0tWaWRlb0Z1bGxzY3JlZW5N
YW5hZ2VyLmNwcApAQCAtMCwwICsxLDM1IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIwIEFw
cGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQg
dXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlm
aWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0
aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBt
dXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3Ry
aWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdo
dAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0
ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRX
QVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJ
UycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hB
TlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJ
U0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9S
UworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BF
Q0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMg
T1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUwor
ICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFC
SUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JU
IChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBX
QVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisg
KiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZp
Zy5oIgorI2luY2x1ZGUgIldLVmlkZW9GdWxsc2NyZWVuTWFuYWdlci5oIgorCisjaW5jbHVkZSAi
V0tBUElDYXN0LmgiCisjaW5jbHVkZSAiV2ViS2l0L1ZpZGVvRnVsbHNjcmVlbk1hbmFnZXJQcm94
eS5oIgorCit2b2lkIFdLVmlkZW9GdWxsc2NyZWVuTWFuYWdlclNldEluamVjdGVkQnVuZGxlQ2xp
ZW50KFdLVmlkZW9GdWxsc2NyZWVuTWFuYWdlclJlZiB2aWRlb0Z1bGxzY3JlZW5NYW5hZ2VyUmVm
LCBjb25zdCBXS1ZpZGVvRnVsbHNjcmVlbk1hbmFnZXJJbmplY3RlZEJ1bmRsZUNsaWVudEJhc2Uq
IHdrQ2xpZW50KQoreworICAgIFdlYktpdDo6dG9JbXBsKHZpZGVvRnVsbHNjcmVlbk1hbmFnZXJS
ZWYpLT5zZXRJbmplY3RlZEJ1bmRsZUNsaWVudCh3a0NsaWVudCk7Cit9CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQy9XS1ZpZGVvRnVsbHNjcmVlbk1hbmFnZXIuaCBi
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9DL1dLVmlkZW9GdWxsc2NyZWVuTWFuYWdlci5o
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAuLmIwMDAwMDQ1MjA4ZmQzYzM1MGEzODM5NTAwYjA1Yjk2MDMyMmQ2MmEKLS0t
IC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQy9XS1ZpZGVvRnVs
bHNjcmVlbk1hbmFnZXIuaApAQCAtMCwwICsxLDM4IEBACisvKgorICogQ29weXJpZ2h0IChDKSAy
MDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlv
biBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAq
IG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcg
Y29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2Ug
Y29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBS
ZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNv
cHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3Ro
ZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElT
IFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMg
YGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0Yg
TUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0Ug
QVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRS
SUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRB
TCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUg
R09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJ
TkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBP
RiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBP
UiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElO
IEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VE
IE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBv
bmNlCisKKyNpbmNsdWRlIDxXZWJLaXQvV0tWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VySW5qZWN0ZWRC
dW5kbGVDbGllbnQuaD4KKworI2lmZGVmIF9fY3BsdXNwbHVzCitleHRlcm4gIkMiIHsKKyNlbmRp
ZgorCitXS19FWFBPUlQgdm9pZCBXS1ZpZGVvRnVsbHNjcmVlbk1hbmFnZXJTZXRJbmplY3RlZEJ1
bmRsZUNsaWVudChXS1ZpZGVvRnVsbHNjcmVlbk1hbmFnZXJSZWYsIGNvbnN0IFdLVmlkZW9GdWxs
c2NyZWVuTWFuYWdlckluamVjdGVkQnVuZGxlQ2xpZW50QmFzZSogd2tDbGllbnQpOworCisjaWZk
ZWYgX19jcGx1c3BsdXMKK30KKyNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvQVBJL0MvV0tWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VySW5qZWN0ZWRCdW5kbGVDbGllbnQu
aCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9DL1dLVmlkZW9GdWxsc2NyZWVuTWFuYWdl
ckluamVjdGVkQnVuZGxlQ2xpZW50LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZGI3MjZkZTk1ZjQxZTVkMmM0Zjgz
YTRkMzM0YWFlZjBjYmYxMzc1MAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL0FQSS9DL1dLVmlkZW9GdWxsc2NyZWVuTWFuYWdlckluamVjdGVkQnVuZGxlQ2xpZW50
LmgKQEAgLTAsMCArMSw3OCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMCBBcHBsZSBJbmMu
IEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBz
b3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24s
IGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAq
IGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRh
aW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25z
IGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBw
cm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQ
Uk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICog
QU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElU
WSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVE
LiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJF
IExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVY
RU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJ
Q0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVS
UlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBX
SEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVE
SU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBP
RiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBP
U1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisjaW5jbHVk
ZSA8V2ViS2l0L1dLQmFzZS5oPgorI2luY2x1ZGUgPFdlYktpdC9XS0dlb21ldHJ5Lmg+CisKKyNp
ZmRlZiBfX2NwbHVzcGx1cworZXh0ZXJuICJDIiB7CisjZW5kaWYKKworZW51bSB7CisgICAgV0tW
aWRlb0Z1bGxzY3JlZW5Nb2RlTm9uZSA9IDAsCisgICAgV0tWaWRlb0Z1bGxzY3JlZW5Nb2RlU3Rh
bmRhcmQgPSAxIDw8IDAsCisgICAgV0tWaWRlb0Z1bGxzY3JlZW5Nb2RlUGljdHVyZUluUGljdHVy
ZSA9IDEgPDwgMSwKK307Cit0eXBlZGVmIHVpbnQzMl90IFdLVmlkZW9GdWxsc2NyZWVuTW9kZTsK
KwordHlwZWRlZiB2b2lkICgqV0tWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyU2V0SGFzVmlkZW8pKFdL
VmlkZW9GdWxsc2NyZWVuTWFuYWdlclJlZiBtYW5hZ2VyLCB1aW50NjRfdCBjb250ZXh0SWQsIGJv
b2wgaGFzVmlkZW8pOwordHlwZWRlZiB2b2lkICgqV0tWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyU2V0
VmlkZW9EaW1lbnNpb25zKShXS1ZpZGVvRnVsbHNjcmVlbk1hbmFnZXJSZWYgbWFuYWdlciwgdWlu
dDY0X3QgY29udGV4dElkLCBXS1NpemUgdmlkZW9EaW1lbnNpb25zKTsKK3R5cGVkZWYgdm9pZCAo
KldLVmlkZW9GdWxsc2NyZWVuTWFuYWdlclNldHVwRnVsbHNjcmVlbldpdGhJRCkoV0tWaWRlb0Z1
bGxzY3JlZW5NYW5hZ2VyUmVmIG1hbmFnZXIsIHVpbnQ2NF90IGNvbnRleHRJZCwgdWludDMyX3Qg
dmlkZW9MYXllcklELCBXS1JlY3QgaW5pdGlhbFJlY3QsIGZsb2F0IGhvc3RpbmdTY2FsZUZhY3Rv
ciwgV0tWaWRlb0Z1bGxzY3JlZW5Nb2RlIHZpZGVvRnVsbHNjcmVlbk1vZGUsIGJvb2wgYWxsb3dz
UGljdHVyZUluUGljdHVyZSwgYm9vbCBzdGFuZGJ5KTsKK3R5cGVkZWYgdm9pZCAoKldLVmlkZW9G
dWxsc2NyZWVuTWFuYWdlckVudGVyRnVsbHNjcmVlbikoV0tWaWRlb0Z1bGxzY3JlZW5NYW5hZ2Vy
UmVmIG1hbmFnZXIsIHVpbnQ2NF90IGNvbnRleHRJZCk7Cit0eXBlZGVmIHZvaWQgKCpXS1ZpZGVv
RnVsbHNjcmVlbk1hbmFnZXJFeGl0RnVsbHNjcmVlbikoV0tWaWRlb0Z1bGxzY3JlZW5NYW5hZ2Vy
UmVmIG1hbmFnZXIsIHVpbnQ2NF90IGNvbnRleHRJZCwgV0tSZWN0IGZpbmFsUmVjdCk7Cit0eXBl
ZGVmIHZvaWQgKCpXS1ZpZGVvRnVsbHNjcmVlbk1hbmFnZXJTZXRJbmxpbmVSZWN0KShXS1ZpZGVv
RnVsbHNjcmVlbk1hbmFnZXJSZWYgbWFuYWdlciwgdWludDY0X3QgY29udGV4dElkLCBXS1JlY3Qg
aW5saW5lUmVjdCwgYm9vbCB2aXNpYmxlKTsKK3R5cGVkZWYgdm9pZCAoKldLVmlkZW9GdWxsc2Ny
ZWVuTWFuYWdlclNldEhhc1ZpZGVvQ29udGVudExheWVyKShXS1ZpZGVvRnVsbHNjcmVlbk1hbmFn
ZXJSZWYgbWFuYWdlciwgdWludDY0X3QgY29udGV4dElkLCBib29sIHZhbHVlKTsKK3R5cGVkZWYg
dm9pZCAoKldLVmlkZW9GdWxsc2NyZWVuTWFuYWdlckNsZWFudXBGdWxsc2NyZWVuKShXS1ZpZGVv
RnVsbHNjcmVlbk1hbmFnZXJSZWYgbWFuYWdlciwgdWludDY0X3QgY29udGV4dElkKTsKK3R5cGVk
ZWYgdm9pZCAoKldLVmlkZW9GdWxsc2NyZWVuTWFuYWdlclByZXBhcmVkVG9SZXR1cm5Ub0lubGlu
ZSkoV0tWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyUmVmIG1hbmFnZXIsIHVpbnQ2NF90IGNvbnRleHRJ
ZCwgYm9vbCB2aXNpYmxlLCBXS1JlY3QgaW5saW5lUmVjdCk7Cit0eXBlZGVmIHZvaWQgKCpXS1Zp
ZGVvRnVsbHNjcmVlbk1hbmFnZXJQcmVwYXJlZFRvRXhpdEZ1bGxzY3JlZW4pKFdLVmlkZW9GdWxs
c2NyZWVuTWFuYWdlclJlZiBtYW5hZ2VyLCB1aW50NjRfdCBjb250ZXh0SWQpOwordHlwZWRlZiB2
b2lkICgqV0tWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyRXhpdEZ1bGxzY3JlZW5XaXRob3V0QW5pbWF0
aW9uVG9Nb2RlKShXS1ZpZGVvRnVsbHNjcmVlbk1hbmFnZXJSZWYgcGFnZSwgdWludDY0X3QgY29u
dGV4dElkLCBXS1ZpZGVvRnVsbHNjcmVlbk1vZGUgdmlkZW9GdWxsc2NyZWVuTW9kZSk7CisKK3R5
cGVkZWYgc3RydWN0IFdLVmlkZW9GdWxsc2NyZWVuTWFuYWdlckluamVjdGVkQnVuZGxlQ2xpZW50
QmFzZSB7CisgICAgaW50ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIHZlcnNpb247CisgICAgY29uc3Qgdm9pZCAqICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsaWVudEluZm87Cit9IFdL
VmlkZW9GdWxsc2NyZWVuTWFuYWdlckluamVjdGVkQnVuZGxlQ2xpZW50QmFzZTsKKwordHlwZWRl
ZiBzdHJ1Y3QgV0tWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VySW5qZWN0ZWRCdW5kbGVDbGllbnRWMCB7
CisgICAgV0tWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VySW5qZWN0ZWRCdW5kbGVDbGllbnRCYXNlICAg
ICAgICAgICAgICAgIGJhc2U7CisKKyAgICAvLyBWZXJzaW9uIDAuCisgICAgV0tWaWRlb0Z1bGxz
Y3JlZW5NYW5hZ2VyU2V0SGFzVmlkZW8gICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNldEhh
c1ZpZGVvOworICAgIFdLVmlkZW9GdWxsc2NyZWVuTWFuYWdlclNldFZpZGVvRGltZW5zaW9ucyAg
ICAgICAgICAgICAgICAgICAgICBzZXRWaWRlb0RpbWVuc2lvbnM7CisgICAgV0tWaWRlb0Z1bGxz
Y3JlZW5NYW5hZ2VyU2V0dXBGdWxsc2NyZWVuV2l0aElEICAgICAgICAgICAgICAgICAgIHNldHVw
RnVsbHNjcmVlbldpdGhJRDsKKyAgICBXS1ZpZGVvRnVsbHNjcmVlbk1hbmFnZXJFbnRlckZ1bGxz
Y3JlZW4gICAgICAgICAgICAgICAgICAgICAgICAgZW50ZXJGdWxsc2NyZWVuOworICAgIFdLVmlk
ZW9GdWxsc2NyZWVuTWFuYWdlckV4aXRGdWxsc2NyZWVuICAgICAgICAgICAgICAgICAgICAgICAg
ICBleGl0RnVsbHNjcmVlbjsKKyAgICBXS1ZpZGVvRnVsbHNjcmVlbk1hbmFnZXJTZXRJbmxpbmVS
ZWN0ICAgICAgICAgICAgICAgICAgICAgICAgICAgc2V0SW5saW5lUmVjdDsKKyAgICBXS1ZpZGVv
RnVsbHNjcmVlbk1hbmFnZXJTZXRIYXNWaWRlb0NvbnRlbnRMYXllciAgICAgICAgICAgICAgICAg
c2V0SGFzVmlkZW9Db250ZW50TGF5ZXI7CisgICAgV0tWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyQ2xl
YW51cEZ1bGxzY3JlZW4gICAgICAgICAgICAgICAgICAgICAgIGNsZWFudXBGdWxsc2NyZWVuOwor
ICAgIFdLVmlkZW9GdWxsc2NyZWVuTWFuYWdlclByZXBhcmVkVG9SZXR1cm5Ub0lubGluZSAgICAg
ICAgICAgICAgICBwcmVwYXJlZFRvUmV0dXJuVG9JbmxpbmU7CisgICAgV0tWaWRlb0Z1bGxzY3Jl
ZW5NYW5hZ2VyUHJlcGFyZWRUb0V4aXRGdWxsc2NyZWVuICAgICAgICAgICAgICAgIHByZXBhcmVk
VG9FeGl0RnVsbHNjcmVlbjsKKyAgICBXS1ZpZGVvRnVsbHNjcmVlbk1hbmFnZXJFeGl0RnVsbHNj
cmVlbldpdGhvdXRBbmltYXRpb25Ub01vZGUgICAgZXhpdEZ1bGxzY3JlZW5XaXRob3V0QW5pbWF0
aW9uVG9Nb2RlOworfSBXS1ZpZGVvRnVsbHNjcmVlbk1hbmFnZXJJbmplY3RlZEJ1bmRsZUNsaWVu
dFYwOworCisjaWZkZWYgX19jcGx1c3BsdXMKK30KKyNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlldy5tbSBiL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXcubW0KaW5kZXggMmQzYTc5MDQzNDQ3ZTdkZmVi
NGE1OGQzNjk1YjU1YTVkOTFmYWE2NS4uODg3MzA5YWZiMzk3YTg5ZTZlMTU1ZTJlNDUwYmFlMmRk
MDQ4NzA2MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dL
V2ViVmlldy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJW
aWV3Lm1tCkBAIC0xMzI3LDYgKzEzMjcsMTMgQEAgLSAoTmFrZWRQdHI8V2ViS2l0OjpXZWJQYWdl
UHJveHk+KV9wYWdlCiAgICAgcmV0dXJuIF9wYWdlLmdldCgpOwogfQogCisjaWYgRU5BQkxFKFZJ
REVPX1BSRVNFTlRBVElPTl9NT0RFKQorLSAoV0tWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyUmVmKV92
aWRlb0Z1bGxzY3JlZW5NYW5hZ2VyRm9yVGVzdGluZworeworICAgIHJldHVybiB0b0FQSShfcGFn
ZS0+dmlkZW9GdWxsc2NyZWVuTWFuYWdlcigpKTsKK30KKyNlbmRpZgorCiAtIChpZCA8V0tVUkxT
Y2hlbWVIYW5kbGVyPil1cmxTY2hlbWVIYW5kbGVyRm9yVVJMU2NoZW1lOihOU1N0cmluZyAqKXVy
bFNjaGVtZQogewogICAgIGF1dG8qIGhhbmRsZXIgPSBzdGF0aWNfY2FzdDxXZWJLaXQ6OldlYlVS
TFNjaGVtZUhhbmRsZXJDb2NvYSo+KF9wYWdlLT51cmxTY2hlbWVIYW5kbGVyRm9yU2NoZW1lKHVy
bFNjaGVtZSkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29h
L1dLV2ViVmlld0ludGVybmFsLmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2Ev
V0tXZWJWaWV3SW50ZXJuYWwuaAppbmRleCA4NDBlM2I5MmJkMWUyYTU4MDE5OGZkYTk1MzFkNjQz
NDIwOGE5MjU0Li40NzE4MzQzMWE1ZDRlMTdkZmZkOGEzMmQ0MWFhY2RiNWQwODUzM2QxIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3SW50ZXJu
YWwuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3SW50
ZXJuYWwuaApAQCAtMjYxLDYgKzI2MSw3IEBAIGNsYXNzIFZpZXdHZXN0dXJlQ29udHJvbGxlcjsK
IAogLSAoV0tQYWdlUmVmKV9wYWdlRm9yVGVzdGluZzsKIC0gKE5ha2VkUHRyPFdlYktpdDo6V2Vi
UGFnZVByb3h5PilfcGFnZTsKKy0gKFdLVmlkZW9GdWxsc2NyZWVuTWFuYWdlclJlZilfdmlkZW9G
dWxsc2NyZWVuTWFuYWdlckZvclRlc3Rpbmc7CiAKIEBlbmQKIApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvVmlkZW9GdWxsc2NyZWVuTWFuYWdlckluamVjdGVkQnVu
ZGxlQ2xpZW50LmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1ZpZGVvRnVsbHNj
cmVlbk1hbmFnZXJJbmplY3RlZEJ1bmRsZUNsaWVudC5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMDhhNTQxYjIz
OTM0YTdhODZjZjhkNTNhZDJlY2UwN2MyZTY1NzNlMwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1ZpZGVvRnVsbHNjcmVlbk1hbmFnZXJJbmplY3RlZEJ1
bmRsZUNsaWVudC5jcHAKQEAgLTAsMCArMSwxMDcgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIw
MjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9u
IGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICog
bW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBj
b25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBj
b2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJl
ZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29w
eXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhl
ciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMg
U09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBg
YEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBN
RVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBB
UkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJ
QlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFM
LCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBH
T09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lO
RVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9G
IExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9S
IFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4g
QU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQg
T0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAi
Y29uZmlnLmgiCisjaW5jbHVkZSAiVmlkZW9GdWxsc2NyZWVuTWFuYWdlckluamVjdGVkQnVuZGxl
Q2xpZW50LmgiCisKKyNpZiBFTkFCTEUoVklERU9fUFJFU0VOVEFUSU9OX01PREUpCisKKyNpbmNs
dWRlIDxXZWJDb3JlL0Zsb2F0U2l6ZS5oPgorI2luY2x1ZGUgPFdlYkNvcmUvSW50UmVjdC5oPgor
CituYW1lc3BhY2UgV2ViS2l0IHsKK3VzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOworCit2b2lkIFZp
ZGVvRnVsbHNjcmVlbk1hbmFnZXJJbmplY3RlZEJ1bmRsZUNsaWVudDo6c2V0SGFzVmlkZW8oVmlk
ZW9GdWxsc2NyZWVuTWFuYWdlclByb3h5KiwgdWludDY0X3QgY29udGV4dElkLCBib29sIGhhc1Zp
ZGVvKQoreworICAgIGlmICghbV9jbGllbnQuc2V0SGFzVmlkZW8pCisgICAgICAgIHJldHVybjsK
K30KKwordm9pZCBWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VySW5qZWN0ZWRCdW5kbGVDbGllbnQ6OnNl
dFZpZGVvRGltZW5zaW9ucyhWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyUHJveHkqLCB1aW50NjRfdCBj
b250ZXh0SWQsIFdlYkNvcmU6OkZsb2F0U2l6ZSB2aWRlb0RpbWVuc2lvbnMpCit7CisgICAgaWYg
KCFtX2NsaWVudC5zZXRWaWRlb0RpbWVuc2lvbnMpCisgICAgICAgIHJldHVybjsKK30KKwordm9p
ZCBWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VySW5qZWN0ZWRCdW5kbGVDbGllbnQ6OnNldHVwRnVsbHNj
cmVlbldpdGhJRChWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyUHJveHkqLCB1aW50NjRfdCBjb250ZXh0
SWQsIHVpbnQzMl90IHZpZGVvTGF5ZXJJRCwgV2ViQ29yZTo6SW50UmVjdCBpbml0aWFsUmVjdCwg
ZmxvYXQgaG9zdGluZ1NjYWxlRmFjdG9yLCBXZWJDb3JlOjpIVE1MTWVkaWFFbGVtZW50RW51bXM6
OlZpZGVvRnVsbHNjcmVlbk1vZGUsIGJvb2wgYWxsb3dzUGljdHVyZUluUGljdHVyZSwgYm9vbCBz
dGFuZGJ5KQoreworICAgIGlmICghbV9jbGllbnQuc2V0dXBGdWxsc2NyZWVuV2l0aElEKQorICAg
ICAgICByZXR1cm47Cit9CisKK3ZvaWQgVmlkZW9GdWxsc2NyZWVuTWFuYWdlckluamVjdGVkQnVu
ZGxlQ2xpZW50OjplbnRlckZ1bGxzY3JlZW4oVmlkZW9GdWxsc2NyZWVuTWFuYWdlclByb3h5Kiwg
dWludDY0X3QgY29udGV4dElkKQoreworICAgIGlmICghbV9jbGllbnQuZW50ZXJGdWxsc2NyZWVu
KQorICAgICAgICByZXR1cm47Cit9CisKK3ZvaWQgVmlkZW9GdWxsc2NyZWVuTWFuYWdlckluamVj
dGVkQnVuZGxlQ2xpZW50OjpleGl0RnVsbHNjcmVlbihWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyUHJv
eHkqLCB1aW50NjRfdCBjb250ZXh0SWQsIFdlYkNvcmU6OkludFJlY3QgZmluYWxSZWN0KQorewor
ICAgIGlmICghbV9jbGllbnQuZXhpdEZ1bGxzY3JlZW4pCisgICAgICAgIHJldHVybjsKK30KKwor
dm9pZCBWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VySW5qZWN0ZWRCdW5kbGVDbGllbnQ6OnNldElubGlu
ZVJlY3QoVmlkZW9GdWxsc2NyZWVuTWFuYWdlclByb3h5KiwgdWludDY0X3QgY29udGV4dElkLCBX
ZWJDb3JlOjpJbnRSZWN0IGlubGluZVJlY3QsIGJvb2wgdmlzaWJsZSkKK3sKKyAgICBpZiAoIW1f
Y2xpZW50LnNldElubGluZVJlY3QpCisgICAgICAgIHJldHVybjsKK30KKwordm9pZCBWaWRlb0Z1
bGxzY3JlZW5NYW5hZ2VySW5qZWN0ZWRCdW5kbGVDbGllbnQ6OnNldEhhc1ZpZGVvQ29udGVudExh
eWVyKFZpZGVvRnVsbHNjcmVlbk1hbmFnZXJQcm94eSosIHVpbnQ2NF90IGNvbnRleHRJZCwgYm9v
bCB2YWx1ZSkKK3sKKyAgICBpZiAoIW1fY2xpZW50LnNldEhhc1ZpZGVvQ29udGVudExheWVyKQor
ICAgICAgICByZXR1cm47Cit9CisKK3ZvaWQgVmlkZW9GdWxsc2NyZWVuTWFuYWdlckluamVjdGVk
QnVuZGxlQ2xpZW50OjpjbGVhbnVwRnVsbHNjcmVlbihWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyUHJv
eHkqLCB1aW50NjRfdCBjb250ZXh0SWQpCit7CisgICAgaWYgKCFtX2NsaWVudC5jbGVhbnVwRnVs
bHNjcmVlbikKKyAgICAgICAgcmV0dXJuOworfQorCit2b2lkIFZpZGVvRnVsbHNjcmVlbk1hbmFn
ZXJJbmplY3RlZEJ1bmRsZUNsaWVudDo6cHJlcGFyZWRUb1JldHVyblRvSW5saW5lKFZpZGVvRnVs
bHNjcmVlbk1hbmFnZXJQcm94eSosIHVpbnQ2NF90IGNvbnRleHRJZCwgYm9vbCB2aXNpYmxlLCBX
ZWJDb3JlOjpJbnRSZWN0IGlubGluZVJlY3QpCit7CisgICAgaWYgKCFtX2NsaWVudC5wcmVwYXJl
ZFRvUmV0dXJuVG9JbmxpbmUpCisgICAgICAgIHJldHVybjsKK30KKwordm9pZCBWaWRlb0Z1bGxz
Y3JlZW5NYW5hZ2VySW5qZWN0ZWRCdW5kbGVDbGllbnQ6OnByZXBhcmVkVG9FeGl0RnVsbHNjcmVl
bihWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyUHJveHkqLCB1aW50NjRfdCBjb250ZXh0SWQpCit7Cisg
ICAgaWYgKCFtX2NsaWVudC5wcmVwYXJlZFRvRXhpdEZ1bGxzY3JlZW4pCisgICAgICAgIHJldHVy
bjsKK30KKworI2lmIFBMQVRGT1JNKE1BQykgJiYgRU5BQkxFKFZJREVPX1BSRVNFTlRBVElPTl9N
T0RFKQordm9pZCBWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VySW5qZWN0ZWRCdW5kbGVDbGllbnQ6OmV4
aXRGdWxsc2NyZWVuV2l0aG91dEFuaW1hdGlvblRvTW9kZShWaWRlb0Z1bGxzY3JlZW5NYW5hZ2Vy
UHJveHkqLCB1aW50NjRfdCBjb250ZXh0SWQsIFdlYkNvcmU6OkhUTUxNZWRpYUVsZW1lbnRFbnVt
czo6VmlkZW9GdWxsc2NyZWVuTW9kZSkKK3sKKyAgICBpZiAoIW1fY2xpZW50LmV4aXRGdWxsc2Ny
ZWVuV2l0aG91dEFuaW1hdGlvblRvTW9kZSkKKyAgICAgICAgcmV0dXJuOworfQorI2VuZGlmCisK
K30gLy8gbmFtZXNwYWNlIFdlYktpdAorCisjZW5kaWYgLy8gRU5BQkxFKFZJREVPX1BSRVNFTlRB
VElPTl9NT0RFKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvVmlk
ZW9GdWxsc2NyZWVuTWFuYWdlckluamVjdGVkQnVuZGxlQ2xpZW50LmggYi9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9Db2NvYS9WaWRlb0Z1bGxzY3JlZW5NYW5hZ2VySW5qZWN0ZWRCdW5kbGVDbGll
bnQuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi5lNTNkMTBhYTEwNTJjYjNkYzE2NTdjYjZjZTFmMGI0NmI5NzI1OWFj
Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvVmlkZW9G
dWxsc2NyZWVuTWFuYWdlckluamVjdGVkQnVuZGxlQ2xpZW50LmgKQEAgLTAsMCArMSw3MCBAQAor
LyoKKyAqIENvcHlyaWdodCAoQykgMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQu
CisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jt
cywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlk
ZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRp
c3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdo
dAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3Qg
cmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRv
Y3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0
cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMu
IEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElN
UExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUg
SU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQ
QVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBB
UFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVD
VCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNF
UVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVN
RU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFU
QSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVT
RUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFD
VCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RI
RVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09G
VFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFN
QUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisjaWYgRU5BQkxFKFZJREVPX1BSRVNFTlRBVElP
Tl9NT0RFKQorCisjaW5jbHVkZSAiQVBJQ2xpZW50LmgiCisjaW5jbHVkZSAiV0tWaWRlb0Z1bGxz
Y3JlZW5NYW5hZ2VySW5qZWN0ZWRCdW5kbGVDbGllbnQuaCIKKyNpbmNsdWRlIDxXZWJDb3JlL0hU
TUxNZWRpYUVsZW1lbnRFbnVtcy5oPgorI2luY2x1ZGUgPHd0Zi9Gb3J3YXJkLmg+CisKK25hbWVz
cGFjZSBBUEkgewordGVtcGxhdGU8PiBzdHJ1Y3QgQ2xpZW50VHJhaXRzPFdLVmlkZW9GdWxsc2Ny
ZWVuTWFuYWdlckluamVjdGVkQnVuZGxlQ2xpZW50QmFzZT4geworICAgIHR5cGVkZWYgc3RkOjp0
dXBsZTxXS1ZpZGVvRnVsbHNjcmVlbk1hbmFnZXJJbmplY3RlZEJ1bmRsZUNsaWVudFYwPiBWZXJz
aW9uczsKK307Cit9CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKK2NsYXNzIEZsb2F0U2l6ZTsKK2Ns
YXNzIEludFJlY3Q7Cit9CisKK25hbWVzcGFjZSBXZWJLaXQgeworCitjbGFzcyBWaWRlb0Z1bGxz
Y3JlZW5NYW5hZ2VyUHJveHk7CisKK2NsYXNzIFZpZGVvRnVsbHNjcmVlbk1hbmFnZXJJbmplY3Rl
ZEJ1bmRsZUNsaWVudCA6IHB1YmxpYyBBUEk6OkNsaWVudDxXS1ZpZGVvRnVsbHNjcmVlbk1hbmFn
ZXJJbmplY3RlZEJ1bmRsZUNsaWVudEJhc2U+IHsKKyAgICBXVEZfTUFLRV9GQVNUX0FMTE9DQVRF
RDsKK3B1YmxpYzoKKyAgICB2b2lkIHNldEhhc1ZpZGVvKFZpZGVvRnVsbHNjcmVlbk1hbmFnZXJQ
cm94eSosIHVpbnQ2NF90IGNvbnRleHRJZCwgYm9vbCBoYXNWaWRlbyk7CisgICAgdm9pZCBzZXRW
aWRlb0RpbWVuc2lvbnMoVmlkZW9GdWxsc2NyZWVuTWFuYWdlclByb3h5KiwgdWludDY0X3QgY29u
dGV4dElkLCBXZWJDb3JlOjpGbG9hdFNpemUgdmlkZW9EaW1lbnNpb25zKTsKKyAgICB2b2lkIHNl
dHVwRnVsbHNjcmVlbldpdGhJRChWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyUHJveHkqLCB1aW50NjRf
dCBjb250ZXh0SWQsIHVpbnQzMl90IHZpZGVvTGF5ZXJJRCwgV2ViQ29yZTo6SW50UmVjdCBpbml0
aWFsUmVjdCwgZmxvYXQgaG9zdGluZ1NjYWxlRmFjdG9yLCBXZWJDb3JlOjpIVE1MTWVkaWFFbGVt
ZW50RW51bXM6OlZpZGVvRnVsbHNjcmVlbk1vZGUsIGJvb2wgYWxsb3dzUGljdHVyZUluUGljdHVy
ZSwgYm9vbCBzdGFuZGJ5KTsKKyAgICB2b2lkIGVudGVyRnVsbHNjcmVlbihWaWRlb0Z1bGxzY3Jl
ZW5NYW5hZ2VyUHJveHkqLCB1aW50NjRfdCBjb250ZXh0SWQpOworICAgIHZvaWQgZXhpdEZ1bGxz
Y3JlZW4oVmlkZW9GdWxsc2NyZWVuTWFuYWdlclByb3h5KiwgdWludDY0X3QgY29udGV4dElkLCBX
ZWJDb3JlOjpJbnRSZWN0IGZpbmFsUmVjdCk7CisgICAgdm9pZCBzZXRJbmxpbmVSZWN0KFZpZGVv
RnVsbHNjcmVlbk1hbmFnZXJQcm94eSosIHVpbnQ2NF90IGNvbnRleHRJZCwgV2ViQ29yZTo6SW50
UmVjdCBpbmxpbmVSZWN0LCBib29sIHZpc2libGUpOworICAgIHZvaWQgc2V0SGFzVmlkZW9Db250
ZW50TGF5ZXIoVmlkZW9GdWxsc2NyZWVuTWFuYWdlclByb3h5KiwgdWludDY0X3QgY29udGV4dElk
LCBib29sIHZhbHVlKTsKKyAgICB2b2lkIGNsZWFudXBGdWxsc2NyZWVuKFZpZGVvRnVsbHNjcmVl
bk1hbmFnZXJQcm94eSosIHVpbnQ2NF90IGNvbnRleHRJZCk7CisgICAgdm9pZCBwcmVwYXJlZFRv
UmV0dXJuVG9JbmxpbmUoVmlkZW9GdWxsc2NyZWVuTWFuYWdlclByb3h5KiwgdWludDY0X3QgY29u
dGV4dElkLCBib29sIHZpc2libGUsIFdlYkNvcmU6OkludFJlY3QgaW5saW5lUmVjdCk7CisgICAg
dm9pZCBwcmVwYXJlZFRvRXhpdEZ1bGxzY3JlZW4oVmlkZW9GdWxsc2NyZWVuTWFuYWdlclByb3h5
KiwgdWludDY0X3QgY29udGV4dElkKTsKKyNpZiBQTEFURk9STShNQUMpICYmIEVOQUJMRShWSURF
T19QUkVTRU5UQVRJT05fTU9ERSkKKyAgICB2b2lkIGV4aXRGdWxsc2NyZWVuV2l0aG91dEFuaW1h
dGlvblRvTW9kZShWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyUHJveHkqLCB1aW50NjRfdCBjb250ZXh0
SWQsIFdlYkNvcmU6OkhUTUxNZWRpYUVsZW1lbnRFbnVtczo6VmlkZW9GdWxsc2NyZWVuTW9kZSk7
CisjZW5kaWYKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdAorCisjZW5kaWYgLy8gRU5BQkxF
KFZJREVPX1BSRVNFTlRBVElPTl9NT0RFKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvQ29jb2EvVmlkZW9GdWxsc2NyZWVuTWFuYWdlclByb3h5LmggYi9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9Db2NvYS9WaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyUHJveHkuaAppbmRleCA0ZGZj
OWYxMDVhMmYzMGQ2MzQzZmFlYTdmNjc2OWFlYzM1ZGQyNzkxLi5jMTU0YmFhYzBhZjJkNWMxNjE0
Mzg5MzU1NWJkYzUzNzFhNjNkMzk4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9Db2NvYS9WaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyUHJveHkuaAorKysgYi9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9Db2NvYS9WaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyUHJveHkuaApAQCAtMjcsNyAr
MjcsOSBAQAogCiAjaWYgRU5BQkxFKFZJREVPX1BSRVNFTlRBVElPTl9NT0RFKQogCisjaW5jbHVk
ZSAiQVBJT2JqZWN0LmgiCiAjaW5jbHVkZSAiTWVzc2FnZVJlY2VpdmVyLmgiCisjaW5jbHVkZSAi
VmlkZW9GdWxsc2NyZWVuTWFuYWdlckluamVjdGVkQnVuZGxlQ2xpZW50LmgiCiAjaW5jbHVkZSA8
V2ViQ29yZS9BdWRpb1Nlc3Npb24uaD4KICNpbmNsdWRlIDxXZWJDb3JlL0dyYXBoaWNzTGF5ZXIu
aD4KICNpbmNsdWRlIDxXZWJDb3JlL1BsYXRmb3JtVmlldy5oPgpAQCAtNTMsMTAgKzU1LDEwIEBA
IHR5cGVkZWYgV2ViQ29yZTo6VmlkZW9GdWxsc2NyZWVuSW50ZXJmYWNlTWFjIFBsYXRmb3JtVmlk
ZW9GdWxsc2NyZWVuSW50ZXJmYWNlOwogCiBuYW1lc3BhY2UgV2ViS2l0IHsKIAotY2xhc3MgV2Vi
UGFnZVByb3h5OwogY2xhc3MgUGxheWJhY2tTZXNzaW9uTWFuYWdlclByb3h5OwogY2xhc3MgUGxh
eWJhY2tTZXNzaW9uTW9kZWxDb250ZXh0OwogY2xhc3MgVmlkZW9GdWxsc2NyZWVuTWFuYWdlclBy
b3h5OworY2xhc3MgV2ViUGFnZVByb3h5OwogCiBjbGFzcyBWaWRlb0Z1bGxzY3JlZW5Nb2RlbENv
bnRleHQgZmluYWwKICAgICA6IHB1YmxpYyBSZWZDb3VudGVkPFZpZGVvRnVsbHNjcmVlbk1vZGVs
Q29udGV4dD4KQEAgLTExNyw3ICsxMTksOSBAQCBwcml2YXRlOgogICAgIGJvb2wgbV9oYXNWaWRl
byB7IGZhbHNlIH07CiB9OwogCi1jbGFzcyBWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyUHJveHkgOiBw
dWJsaWMgUmVmQ291bnRlZDxWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyUHJveHk+LCBwcml2YXRlIElQ
Qzo6TWVzc2FnZVJlY2VpdmVyIHsKK2NsYXNzIFZpZGVvRnVsbHNjcmVlbk1hbmFnZXJQcm94eSA6
CisgICAgcHVibGljIEFQSTo6T2JqZWN0SW1wbDxBUEk6Ok9iamVjdDo6VHlwZTo6VmlkZW9GdWxs
c2NyZWVuTWFuYWdlcj4sCisgICAgcHJpdmF0ZSBJUEM6Ok1lc3NhZ2VSZWNlaXZlciB7CiBwdWJs
aWM6CiAgICAgc3RhdGljIFJlZjxWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyUHJveHk+IGNyZWF0ZShX
ZWJQYWdlUHJveHkmLCBQbGF5YmFja1Nlc3Npb25NYW5hZ2VyUHJveHkmKTsKICAgICB2aXJ0dWFs
IH5WaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyUHJveHkoKTsKQEAgLTEzMiwxNCArMTM2LDE0IEBAIHB1
YmxpYzoKIAogICAgIHZvaWQgcmVxdWVzdFJvdXRlU2hhcmluZ1BvbGljeUFuZENvbnRleHRVSUQo
dWludDY0X3QgY29udGV4dElkLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFdlYkNvcmU6OlJvdXRl
U2hhcmluZ1BvbGljeSwgU3RyaW5nKT4mJik7CiAKLSNpZiBFTkFCTEUoVklERU9fUFJFU0VOVEFU
SU9OX01PREUpCiAgICAgYm9vbCBpc1BsYXlpbmdWaWRlb0luRW5oYW5jZWRGdWxsc2NyZWVuKCkg
Y29uc3Q7Ci0jZW5kaWYKIAogICAgIFBsYXRmb3JtVmlkZW9GdWxsc2NyZWVuSW50ZXJmYWNlKiBj
b250cm9sc01hbmFnZXJJbnRlcmZhY2UoKTsKIAogICAgIHZvaWQgZm9yRWFjaFNlc3Npb24oRnVu
Y3Rpb248dm9pZChXZWJDb3JlOjpWaWRlb0Z1bGxzY3JlZW5Nb2RlbCYsIFBsYXRmb3JtVmlkZW9G
dWxsc2NyZWVuSW50ZXJmYWNlJik+JiYpOwogCisgICAgdm9pZCBzZXRJbmplY3RlZEJ1bmRsZUNs
aWVudChjb25zdCBXS1ZpZGVvRnVsbHNjcmVlbk1hbmFnZXJJbmplY3RlZEJ1bmRsZUNsaWVudEJh
c2UqKTsKKwogcHJpdmF0ZToKICAgICBmcmllbmQgY2xhc3MgVmlkZW9GdWxsc2NyZWVuTW9kZWxD
b250ZXh0OwogCkBAIC0xODksNiArMTkzLDggQEAgcHJpdmF0ZToKICAgICBIYXNoTWFwPHVpbnQ2
NF90LCBNb2RlbEludGVyZmFjZVR1cGxlPiBtX2NvbnRleHRNYXA7CiAgICAgdWludDY0X3QgbV9j
b250cm9sc01hbmFnZXJDb250ZXh0SWQgeyAwIH07CiAgICAgSGFzaE1hcDx1aW50NjRfdCwgaW50
PiBtX2NsaWVudENvdW50czsKKworICAgIHN0ZDo6dW5pcXVlX3B0cjxWaWRlb0Z1bGxzY3JlZW5N
YW5hZ2VySW5qZWN0ZWRCdW5kbGVDbGllbnQ+IG1faW5qZWN0ZWRCdW5kbGVDbGllbnQ7CiB9Owog
CiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL0NvY29hL1ZpZGVvRnVsbHNjcmVlbk1hbmFnZXJQcm94eS5tbSBiL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL0NvY29hL1ZpZGVvRnVsbHNjcmVlbk1hbmFnZXJQcm94eS5tbQppbmRleCAzMTYx
ZDliZDg5NTVmOTFjNTBmM2YyZjRhYTQ5OGE1MDE1OTNjMmY2Li5iNjljMzY4NTI4ZmI4N2VjYWI3
ZmZlYzJkMjIyMDBjNjljYzMxZDViIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9Db2NvYS9WaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyUHJveHkubW0KKysrIGIvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvQ29jb2EvVmlkZW9GdWxsc2NyZWVuTWFuYWdlclByb3h5Lm1tCkBAIC0zMyw2
ICszMyw3IEBACiAjaW1wb3J0ICJQbGF5YmFja1Nlc3Npb25NYW5hZ2VyUHJveHkuaCIKICNpbXBv
cnQgIlZpZGVvRnVsbHNjcmVlbk1hbmFnZXJNZXNzYWdlcy5oIgogI2ltcG9ydCAiVmlkZW9GdWxs
c2NyZWVuTWFuYWdlclByb3h5TWVzc2FnZXMuaCIKKyNpbXBvcnQgIldLVmlkZW9GdWxsc2NyZWVu
TWFuYWdlckluamVjdGVkQnVuZGxlQ2xpZW50LmgiCiAjaW1wb3J0ICJXZWJQYWdlUHJveHkuaCIK
ICNpbXBvcnQgIldlYlByb2Nlc3NQcm94eS5oIgogI2ltcG9ydCA8UXVhcnR6Q29yZS9Db3JlQW5p
bWF0aW9uLmg+CkBAIC0zMzYsNiArMzM3LDE3IEBAIFZpZGVvRnVsbHNjcmVlbk1hbmFnZXJQcm94
eTo6flZpZGVvRnVsbHNjcmVlbk1hbmFnZXJQcm94eSgpCiAgICAgaW52YWxpZGF0ZSgpOwogfQog
Cit2b2lkIFZpZGVvRnVsbHNjcmVlbk1hbmFnZXJQcm94eTo6c2V0SW5qZWN0ZWRCdW5kbGVDbGll
bnQoY29uc3QgV0tWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VySW5qZWN0ZWRCdW5kbGVDbGllbnRCYXNl
KiBjbGllbnQpCit7CisgICAgaWYgKCFjbGllbnQpIHsKKyAgICAgICAgbV9pbmplY3RlZEJ1bmRs
ZUNsaWVudCA9IG51bGxwdHI7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICBtX2luamVj
dGVkQnVuZGxlQ2xpZW50ID0gbWFrZVVuaXF1ZTxWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VySW5qZWN0
ZWRCdW5kbGVDbGllbnQ+KCk7CisgICAgbV9pbmplY3RlZEJ1bmRsZUNsaWVudC0+aW5pdGlhbGl6
ZShjbGllbnQpOworfQorCiB2b2lkIFZpZGVvRnVsbHNjcmVlbk1hbmFnZXJQcm94eTo6aW52YWxp
ZGF0ZSgpCiB7CiAgICAgbV9wYWdlLT5wcm9jZXNzKCkucmVtb3ZlTWVzc2FnZVJlY2VpdmVyKE1l
c3NhZ2VzOjpWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyUHJveHk6Om1lc3NhZ2VSZWNlaXZlck5hbWUo
KSwgbV9wYWdlLT53ZWJQYWdlSUQoKSk7CkBAIC0zNzUsNyArMzg3LDYgQEAgYm9vbCBWaWRlb0Z1
bGxzY3JlZW5NYW5hZ2VyUHJveHk6Om1heUF1dG9tYXRpY2FsbHlTaG93VmlkZW9QaWN0dXJlSW5Q
aWN0dXJlKCkgY28KICAgICByZXR1cm4gZmFsc2U7CiB9CiAKLSNpZiBFTkFCTEUoVklERU9fUFJF
U0VOVEFUSU9OX01PREUpCiBib29sIFZpZGVvRnVsbHNjcmVlbk1hbmFnZXJQcm94eTo6aXNQbGF5
aW5nVmlkZW9JbkVuaGFuY2VkRnVsbHNjcmVlbigpIGNvbnN0CiB7CiAgICAgZm9yIChhdXRvJiBb
bW9kZWwsIGludGVyZmFjZV0gOiBtX2NvbnRleHRNYXAudmFsdWVzKCkpIHsKQEAgLTM4NSw3ICsz
OTYsNiBAQCBib29sIFZpZGVvRnVsbHNjcmVlbk1hbmFnZXJQcm94eTo6aXNQbGF5aW5nVmlkZW9J
bkVuaGFuY2VkRnVsbHNjcmVlbigpIGNvbnN0CiAgICAgCiAgICAgcmV0dXJuIGZhbHNlOwogfQot
I2VuZGlmCiAKIFBsYXRmb3JtVmlkZW9GdWxsc2NyZWVuSW50ZXJmYWNlKiBWaWRlb0Z1bGxzY3Jl
ZW5NYW5hZ2VyUHJveHk6OmNvbnRyb2xzTWFuYWdlckludGVyZmFjZSgpCiB7CkBAIC00OTMsNiAr
NTAzLDE1IEBAIHZvaWQgVmlkZW9GdWxsc2NyZWVuTWFuYWdlclByb3h5OjpzZXR1cEZ1bGxzY3Jl
ZW5XaXRoSUQodWludDY0X3QgY29udGV4dElkLCB1aW50CiB7CiAgICAgTUVTU0FHRV9DSEVDS19D
T05URVhUSUQoY29udGV4dElkKTsKICAgICBNRVNTQUdFX0NIRUNLKHZpZGVvTGF5ZXJJRCk7Cisg
ICAgaWYgKG1faW5qZWN0ZWRCdW5kbGVDbGllbnQpIHsKKyAgICAgICAgbV9pbmplY3RlZEJ1bmRs
ZUNsaWVudC0+c2V0dXBGdWxsc2NyZWVuV2l0aElEKHRoaXMsIGNvbnRleHRJZCwgdmlkZW9MYXll
cklELCBpbml0aWFsUmVjdCwgaG9zdGluZ0RldmljZVNjYWxlRmFjdG9yLCB2aWRlb0Z1bGxzY3Jl
ZW5Nb2RlLCBhbGxvd3NQaWN0dXJlSW5QaWN0dXJlLCBzdGFuZGJ5KTsKKyNpZiBQTEFURk9STShJ
T1NfRkFNSUxZKQorICAgICAgICByZXF1ZXN0VmlkZW9Db250ZW50TGF5ZXIoY29udGV4dElkKTsK
KyNlbHNlCisgICAgICAgIGRpZFNldHVwRnVsbHNjcmVlbihjb250ZXh0SWQpOworI2VuZGlmCisg
ICAgICAgIHJldHVybjsKKyAgICB9CiAKICAgICBhdXRvJiBbbW9kZWwsIGludGVyZmFjZV0gPSBl
bnN1cmVNb2RlbEFuZEludGVyZmFjZShjb250ZXh0SWQpOwogICAgIGFkZENsaWVudEZvckNvbnRl
eHQoY29udGV4dElkKTsKQEAgLTUyNywxOCArNTQ2LDMzIEBAIHZvaWQgVmlkZW9GdWxsc2NyZWVu
TWFuYWdlclByb3h5OjpzZXR1cEZ1bGxzY3JlZW5XaXRoSUQodWludDY0X3QgY29udGV4dElkLCB1
aW50CiB2b2lkIFZpZGVvRnVsbHNjcmVlbk1hbmFnZXJQcm94eTo6c2V0SGFzVmlkZW8odWludDY0
X3QgY29udGV4dElkLCBib29sIGhhc1ZpZGVvKQogewogICAgIE1FU1NBR0VfQ0hFQ0tfQ09OVEVY
VElEKGNvbnRleHRJZCk7CisgICAgaWYgKG1faW5qZWN0ZWRCdW5kbGVDbGllbnQpIHsKKyAgICAg
ICAgbV9pbmplY3RlZEJ1bmRsZUNsaWVudC0+c2V0SGFzVmlkZW8odGhpcywgY29udGV4dElkLCBo
YXNWaWRlbyk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKICAgICBlbnN1cmVJbnRlcmZhY2Uo
Y29udGV4dElkKS5oYXNWaWRlb0NoYW5nZWQoaGFzVmlkZW8pOwogfQogCiB2b2lkIFZpZGVvRnVs
bHNjcmVlbk1hbmFnZXJQcm94eTo6c2V0VmlkZW9EaW1lbnNpb25zKHVpbnQ2NF90IGNvbnRleHRJ
ZCwgY29uc3QgRmxvYXRTaXplJiB2aWRlb0RpbWVuc2lvbnMpCiB7CiAgICAgTUVTU0FHRV9DSEVD
S19DT05URVhUSUQoY29udGV4dElkKTsKKyAgICBpZiAobV9pbmplY3RlZEJ1bmRsZUNsaWVudCkg
eworICAgICAgICBtX2luamVjdGVkQnVuZGxlQ2xpZW50LT5zZXRWaWRlb0RpbWVuc2lvbnModGhp
cywgY29udGV4dElkLCB2aWRlb0RpbWVuc2lvbnMpOworICAgICAgICByZXR1cm47CisgICAgfQor
CiAgICAgZW5zdXJlSW50ZXJmYWNlKGNvbnRleHRJZCkudmlkZW9EaW1lbnNpb25zQ2hhbmdlZCh2
aWRlb0RpbWVuc2lvbnMpOwogfQogCiB2b2lkIFZpZGVvRnVsbHNjcmVlbk1hbmFnZXJQcm94eTo6
ZW50ZXJGdWxsc2NyZWVuKHVpbnQ2NF90IGNvbnRleHRJZCkKIHsKICAgICBNRVNTQUdFX0NIRUNL
X0NPTlRFWFRJRChjb250ZXh0SWQpOworICAgIGlmIChtX2luamVjdGVkQnVuZGxlQ2xpZW50KSB7
CisgICAgICAgIG1faW5qZWN0ZWRCdW5kbGVDbGllbnQtPmVudGVyRnVsbHNjcmVlbih0aGlzLCBj
b250ZXh0SWQpOworICAgICAgICBkaWRFbnRlckZ1bGxzY3JlZW4oY29udGV4dElkKTsKKyAgICAg
ICAgcmV0dXJuOworICAgIH0KIAogICAgIGF1dG8mIGludGVyZmFjZSA9IGVuc3VyZUludGVyZmFj
ZShjb250ZXh0SWQpOwogICAgIGludGVyZmFjZS5lbnRlckZ1bGxzY3JlZW4oKTsKQEAgLTU1OCw2
ICs1OTIsMTMgQEAgdm9pZCBWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyUHJveHk6OmVudGVyRnVsbHNj
cmVlbih1aW50NjRfdCBjb250ZXh0SWQpCiB2b2lkIFZpZGVvRnVsbHNjcmVlbk1hbmFnZXJQcm94
eTo6ZXhpdEZ1bGxzY3JlZW4odWludDY0X3QgY29udGV4dElkLCBXZWJDb3JlOjpJbnRSZWN0IGZp
bmFsUmVjdCkKIHsKICAgICBNRVNTQUdFX0NIRUNLX0NPTlRFWFRJRChjb250ZXh0SWQpOworICAg
IGlmIChtX2luamVjdGVkQnVuZGxlQ2xpZW50KSB7CisgICAgICAgIG1faW5qZWN0ZWRCdW5kbGVD
bGllbnQtPmV4aXRGdWxsc2NyZWVuKHRoaXMsIGNvbnRleHRJZCwgZmluYWxSZWN0KTsKKyNpZiBQ
TEFURk9STShJT1NfRkFNSUxZKQorICAgICAgICByZXR1cm5WaWRlb0NvbnRlbnRMYXllcihjb250
ZXh0SWQpOworI2VuZGlmCisgICAgICAgIHJldHVybjsKKyAgICB9CiAKICAgICBBU1NFUlQobV9j
b250ZXh0TWFwLmNvbnRhaW5zKGNvbnRleHRJZCkpOwogICAgIGlmICghbV9jb250ZXh0TWFwLmNv
bnRhaW5zKGNvbnRleHRJZCkpCkBAIC01NzYsNiArNjE3LDExIEBAIHZvaWQgVmlkZW9GdWxsc2Ny
ZWVuTWFuYWdlclByb3h5OjpleGl0RnVsbHNjcmVlbih1aW50NjRfdCBjb250ZXh0SWQsIFdlYkNv
cmU6OkluCiB2b2lkIFZpZGVvRnVsbHNjcmVlbk1hbmFnZXJQcm94eTo6ZXhpdEZ1bGxzY3JlZW5X
aXRob3V0QW5pbWF0aW9uVG9Nb2RlKHVpbnQ2NF90IGNvbnRleHRJZCwgV2ViQ29yZTo6SFRNTE1l
ZGlhRWxlbWVudEVudW1zOjpWaWRlb0Z1bGxzY3JlZW5Nb2RlIHRhcmdldE1vZGUpCiB7CiAgICAg
TUVTU0FHRV9DSEVDS19DT05URVhUSUQoY29udGV4dElkKTsKKyAgICBpZiAobV9pbmplY3RlZEJ1
bmRsZUNsaWVudCkgeworICAgICAgICBtX2luamVjdGVkQnVuZGxlQ2xpZW50LT5leGl0RnVsbHNj
cmVlbldpdGhvdXRBbmltYXRpb25Ub01vZGUodGhpcywgY29udGV4dElkLCB0YXJnZXRNb2RlKTsK
KyAgICAgICAgcmV0dXJuOworICAgIH0KKwogICAgIGVuc3VyZUludGVyZmFjZShjb250ZXh0SWQp
LmV4aXRGdWxsc2NyZWVuV2l0aG91dEFuaW1hdGlvblRvTW9kZSh0YXJnZXRNb2RlKTsKIH0KICNl
bmRpZgpAQCAtNTg1LDEyICs2MzEsMjYgQEAgdm9pZCBWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyUHJv
eHk6OmV4aXRGdWxsc2NyZWVuV2l0aG91dEFuaW1hdGlvblRvTW9kZSh1aW50NjRfdAogdm9pZCBW
aWRlb0Z1bGxzY3JlZW5NYW5hZ2VyUHJveHk6OnNldElubGluZVJlY3QodWludDY0X3QgY29udGV4
dElkLCBjb25zdCBXZWJDb3JlOjpJbnRSZWN0JiBpbmxpbmVSZWN0LCBib29sIHZpc2libGUpCiB7
CiAgICAgTUVTU0FHRV9DSEVDS19DT05URVhUSUQoY29udGV4dElkKTsKKyAgICBpZiAobV9pbmpl
Y3RlZEJ1bmRsZUNsaWVudCkgeworICAgICAgICBtX2luamVjdGVkQnVuZGxlQ2xpZW50LT5zZXRJ
bmxpbmVSZWN0KHRoaXMsIGNvbnRleHRJZCwgaW5saW5lUmVjdCwgdmlzaWJsZSk7CisgICAgICAg
IHJldHVybjsKKyAgICB9CisKICAgICBlbnN1cmVJbnRlcmZhY2UoY29udGV4dElkKS5zZXRJbmxp
bmVSZWN0KGlubGluZVJlY3QsIHZpc2libGUpOwogfQogCiB2b2lkIFZpZGVvRnVsbHNjcmVlbk1h
bmFnZXJQcm94eTo6c2V0SGFzVmlkZW9Db250ZW50TGF5ZXIodWludDY0X3QgY29udGV4dElkLCBi
b29sIHZhbHVlKQogewogICAgIE1FU1NBR0VfQ0hFQ0tfQ09OVEVYVElEKGNvbnRleHRJZCk7Cisg
ICAgaWYgKG1faW5qZWN0ZWRCdW5kbGVDbGllbnQpIHsKKyAgICAgICAgbV9pbmplY3RlZEJ1bmRs
ZUNsaWVudC0+c2V0SGFzVmlkZW9Db250ZW50TGF5ZXIodGhpcywgY29udGV4dElkLCB2YWx1ZSk7
CisgICAgICAgIGlmICh2YWx1ZSkKKyAgICAgICAgICAgIGRpZFNldHVwRnVsbHNjcmVlbihjb250
ZXh0SWQpOworICAgICAgICBlbHNlCisgICAgICAgICAgICBkaWRFeGl0RnVsbHNjcmVlbihjb250
ZXh0SWQpOworICAgICAgICByZXR1cm47CisgICAgfQorCiAgICAgZW5zdXJlSW50ZXJmYWNlKGNv
bnRleHRJZCkuc2V0SGFzVmlkZW9Db250ZW50TGF5ZXIodmFsdWUpOwogfQogCkBAIC02MTEsMTIg
KzY3MSwyOCBAQCBOT19SRVRVUk5fRFVFX1RPX0FTU0VSVCB2b2lkIFZpZGVvRnVsbHNjcmVlbk1h
bmFnZXJQcm94eTo6c2V0SGFzVmlkZW9Db250ZW50TGF5ZQogdm9pZCBWaWRlb0Z1bGxzY3JlZW5N
YW5hZ2VyUHJveHk6OmNsZWFudXBGdWxsc2NyZWVuKHVpbnQ2NF90IGNvbnRleHRJZCkKIHsKICAg
ICBNRVNTQUdFX0NIRUNLX0NPTlRFWFRJRChjb250ZXh0SWQpOworICAgIGlmIChtX2luamVjdGVk
QnVuZGxlQ2xpZW50KSB7CisgICAgICAgIG1faW5qZWN0ZWRCdW5kbGVDbGllbnQtPmNsZWFudXBG
dWxsc2NyZWVuKHRoaXMsIGNvbnRleHRJZCk7CisgICAgICAgIGRpZENsZWFudXBGdWxsc2NyZWVu
KGNvbnRleHRJZCk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKICAgICBlbnN1cmVJbnRlcmZh
Y2UoY29udGV4dElkKS5jbGVhbnVwRnVsbHNjcmVlbigpOwogfQogCiB2b2lkIFZpZGVvRnVsbHNj
cmVlbk1hbmFnZXJQcm94eTo6cHJlcGFyZWRUb1JldHVyblRvSW5saW5lKHVpbnQ2NF90IGNvbnRl
eHRJZCwgYm9vbCB2aXNpYmxlLCBXZWJDb3JlOjpJbnRSZWN0IGlubGluZVJlY3QpCiB7CiAgICAg
TUVTU0FHRV9DSEVDS19DT05URVhUSUQoY29udGV4dElkKTsKKyAgICBpZiAobV9pbmplY3RlZEJ1
bmRsZUNsaWVudCkgeworICAgICAgICBtX3BhZ2UtPmZ1bGxzY3JlZW5NYXlSZXR1cm5Ub0lubGlu
ZSgpOworICAgICAgICBtX2luamVjdGVkQnVuZGxlQ2xpZW50LT5wcmVwYXJlZFRvUmV0dXJuVG9J
bmxpbmUodGhpcywgY29udGV4dElkLCB2aXNpYmxlLCBpbmxpbmVSZWN0KTsKKyNpZiAhUExBVEZP
Uk0oSU9TX0ZBTUlMWSkKKyAgICAgICAgSW50UmVjdCBpbmxpbmVXaW5kb3dSZWN0OworICAgICAg
ICBtX3BhZ2UtPnJvb3RWaWV3VG9XaW5kb3coaW5saW5lUmVjdCwgaW5saW5lV2luZG93UmVjdCk7
CisjZW5kaWYKKyAgICAgICAgcmV0dXJuOworICAgIH0KKwogICAgIG1fcGFnZS0+ZnVsbHNjcmVl
bk1heVJldHVyblRvSW5saW5lKCk7CiAKICNpZiBQTEFURk9STShJT1NfRkFNSUxZKQpAQCAtNjMx
LDYgKzcwNywxMSBAQCB2b2lkIFZpZGVvRnVsbHNjcmVlbk1hbmFnZXJQcm94eTo6cHJlcGFyZWRU
b1JldHVyblRvSW5saW5lKHVpbnQ2NF90IGNvbnRleHRJZCwgYgogdm9pZCBWaWRlb0Z1bGxzY3Jl
ZW5NYW5hZ2VyUHJveHk6OnByZXBhcmVkVG9FeGl0RnVsbHNjcmVlbih1aW50NjRfdCBjb250ZXh0
SWQpCiB7CiAgICAgTUVTU0FHRV9DSEVDS19DT05URVhUSUQoY29udGV4dElkKTsKKyAgICBpZiAo
bV9pbmplY3RlZEJ1bmRsZUNsaWVudCkgeworICAgICAgICBtX2luamVjdGVkQnVuZGxlQ2xpZW50
LT5wcmVwYXJlZFRvRXhpdEZ1bGxzY3JlZW4odGhpcywgY29udGV4dElkKTsKKyAgICAgICAgcmV0
dXJuOworICAgIH0KKwogICAgIGVuc3VyZUludGVyZmFjZShjb250ZXh0SWQpLnByZXBhcmVkVG9F
eGl0RnVsbHNjcmVlbigpOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYktpdC54
Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNlL1dlYktpdC9XZWJLaXQueGNvZGVwcm9q
L3Byb2plY3QucGJ4cHJvagppbmRleCAxOGFjOTlmNDhjNTljMDBmN2Y2MWQ1Y2Y1ODMxOGRjMzNm
ZmUzY2MzLi5mNWM3ODE4Y2Q5ZDkwOTFlNDFiNjBlMmQxOWFjMmU5Yzg5NzY4NGMyIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L1dlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBi
L1NvdXJjZS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTQxNyw2
ICs0MTcsMTEgQEAKIAkJMUNBOEI5NDYxMjdDODgyQTAwNTc2QzJCIC8qIFdlYkluc3BlY3RvclBy
b3h5TWVzc2FnZXMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDFDQThCOTQ0MTI3Qzg4MkEwMDU3NkMyQiAvKiBXZWJJbnNwZWN0b3JQcm94eU1lc3NhZ2Vz
LmggKi87IH07CiAJCTFDQkJFNEEwMTlCNjZDNTMwMDZCN0Q4MSAvKiBXZWJJbnNwZWN0b3JVSU1l
c3NhZ2VSZWNlaXZlci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSAxQ0JCRTQ5RTE5QjY2QzUzMDA2QjdEODEgLyogV2ViSW5zcGVjdG9yVUlNZXNzYWdl
UmVjZWl2ZXIuY3BwICovOyB9OwogCQkxQ0JCRTRBMTE5QjY2QzUzMDA2QjdEODEgLyogV2ViSW5z
cGVjdG9yVUlNZXNzYWdlcy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gMUNCQkU0OUYxOUI2NkM1MzAwNkI3RDgxIC8qIFdlYkluc3BlY3RvclVJTWVzc2Fn
ZXMuaCAqLzsgfTsKKwkJMUQyQzAyNTAyNDUyOEM3QzAwMjZBRDFGIC8qIFdLVmlkZW9GdWxsc2Ny
ZWVuTWFuYWdlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gMUQyQzAyNEUyNDUyOEM3QzAwMjZBRDFGIC8qIFdLVmlkZW9GdWxsc2NyZWVuTWFuYWdlci5o
ICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CisJCTFEMkMw
MjUxMjQ1MjhDN0MwMDI2QUQxRiAvKiBXS1ZpZGVvRnVsbHNjcmVlbk1hbmFnZXIuY3BwIGluIFNv
dXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMUQyQzAyNEYyNDUyOEM3
QzAwMjZBRDFGIC8qIFdLVmlkZW9GdWxsc2NyZWVuTWFuYWdlci5jcHAgKi87IH07CisJCTFEM0Ux
RTkwMjQ1MEQ5QUIwMDM2NDA1MiAvKiBWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VySW5qZWN0ZWRCdW5k
bGVDbGllbnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDFEM0UxRThFMjQ1MEQ5QUIwMDM2NDA1MiAvKiBWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VySW5qZWN0
ZWRCdW5kbGVDbGllbnQuaCAqLzsgfTsKKwkJMUQzRTFFOTEyNDUwRDlBQjAwMzY0MDUyIC8qIFZp
ZGVvRnVsbHNjcmVlbk1hbmFnZXJJbmplY3RlZEJ1bmRsZUNsaWVudC5jcHAgaW4gU291cmNlcyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxRDNFMUU4RjI0NTBEOUFCMDAzNjQw
NTIgLyogVmlkZW9GdWxsc2NyZWVuTWFuYWdlckluamVjdGVkQnVuZGxlQ2xpZW50LmNwcCAqLzsg
fTsKKwkJMUQzRTFFOTMyNDUwREMyQTAwMzY0MDUyIC8qIFdLVmlkZW9GdWxsc2NyZWVuTWFuYWdl
ckluamVjdGVkQnVuZGxlQ2xpZW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSAxRDNFMUU5MjI0NTBEQzJBMDAzNjQwNTIgLyogV0tWaWRlb0Z1bGxzY3Jl
ZW5NYW5hZ2VySW5qZWN0ZWRCdW5kbGVDbGllbnQuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRF
UyA9IChQcml2YXRlLCApOyB9OyB9OwogCQkxRDRENzM3MDIzQTlFNTQ3MDA3MTdBMjUgLyogUmVt
b3RlTWVkaWFSZXNvdXJjZU1hbmFnZXJNZXNzYWdlUmVjZWl2ZXIuY3BwIGluIFNvdXJjZXMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMUQ0RDczNkIyM0E5REY1NTAwNzE3QTI1
IC8qIFJlbW90ZU1lZGlhUmVzb3VyY2VNYW5hZ2VyTWVzc2FnZVJlY2VpdmVyLmNwcCAqLzsgfTsK
IAkJMUQ0RDczNzEyM0E5RTU2MjAwNzE3QTI1IC8qIFJlbW90ZU1lZGlhUmVzb3VyY2VNYW5hZ2Vy
TWVzc2FnZXMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDFENEQ3MzZDMjNBOURGNjAwMDcxN0EyNSAvKiBSZW1vdGVNZWRpYVJlc291cmNlTWFuYWdlck1l
c3NhZ2VzLmggKi87IH07CiAJCTFENEQ3Mzc2MjNBOUVEMTgwMDcxN0EyNSAvKiBSZW1vdGVNZWRp
YVJlc291cmNlTWFuYWdlck1lc3NhZ2VzUmVwbGllcy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMUQ0RDczNzUyM0E5RUI2ODAwNzE3QTI1IC8qIFJlbW90
ZU1lZGlhUmVzb3VyY2VNYW5hZ2VyTWVzc2FnZXNSZXBsaWVzLmggKi87IH07CkBAIC0yNzQxLDYg
KzI3NDYsOCBAQAogCQkxQ0JCRTQ5RjE5QjY2QzUzMDA2QjdEODEgLyogV2ViSW5zcGVjdG9yVUlN
ZXNzYWdlcy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBXZWJJbnNwZWN0b3JV
SU1lc3NhZ2VzLmg7IHBhdGggPSBEZXJpdmVkU291cmNlcy9XZWJLaXQyL1dlYkluc3BlY3RvclVJ
TWVzc2FnZXMuaDsgc291cmNlVHJlZSA9IEJVSUxUX1BST0RVQ1RTX0RJUjsgfTsKIAkJMUQwRUNF
QUEyM0ZDODU4NDAwRDE3MkY2IC8qIFJlbW90ZU1lZGlhUGxheWVyUHJveHlDb2NvYS5tbSAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Y3BwLm9iamNwcDsgcGF0aCA9IFJlbW90ZU1lZGlhUGxheWVyUHJveHlDb2NvYS5tbTsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMUQxMkNDMjcyNDBFREY2RDAwRkRBMEEzIC8qIFdlYktp
dC5wbGlzdCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9
IHRleHQucGxpc3QueG1sOyBwYXRoID0gV2ViS2l0LnBsaXN0OyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OworCQkxRDJDMDI0RTI0NTI4QzdDMDAyNkFEMUYgLyogV0tWaWRlb0Z1bGxzY3JlZW5N
YW5hZ2VyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdLVmlkZW9GdWxsc2NyZWVuTWFuYWdlci5oOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OworCQkxRDJDMDI0RjI0NTI4QzdDMDAyNkFEMUYgLyogV0tW
aWRlb0Z1bGxzY3JlZW5NYW5hZ2VyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFdLVmlkZW9GdWxs
c2NyZWVuTWFuYWdlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTFEMzJGODk4
MjNBODQ2NUEwMEIxRUE2QSAvKiBSZW1vdGVNZWRpYVJlc291cmNlLmggKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9
IFJlbW90ZU1lZGlhUmVzb3VyY2UuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMUQz
MkY4OTkyM0E4NDY4MDAwQjFFQTZBIC8qIFJlbW90ZU1lZGlhUmVzb3VyY2UuY3BwICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAu
Y3BwOyBwYXRoID0gUmVtb3RlTWVkaWFSZXNvdXJjZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CiAJCTFEMzJGODlCMjNBODRCQTYwMEIxRUE2QSAvKiBSZW1vdGVNZWRpYVJlc291cmNl
UHJveHkuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUmVtb3RlTWVkaWFSZXNvdXJjZVByb3h5Lmg7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0yNzQ4LDYgKzI3NTUsOSBAQAogCQkxRDMyRjhBNjIz
QTg2MDE5MDBCMUVBNkEgLyogUmVtb3RlTWVkaWFSZXNvdXJjZU1hbmFnZXIubWVzc2FnZXMuaW4g
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBw
YXRoID0gUmVtb3RlTWVkaWFSZXNvdXJjZU1hbmFnZXIubWVzc2FnZXMuaW47IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCTFEM0FCMDREMjNBQjAwNzIwMDVDMUZGMCAvKiBSZW1vdGVNZWRp
YVJlc291cmNlTG9hZGVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFJlbW90ZU1lZGlhUmVzb3VyY2VMb2Fk
ZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMUQzQUIwNEUyM0FCMDA5QjAwNUMx
RkYwIC8qIFJlbW90ZU1lZGlhUmVzb3VyY2VMb2FkZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0g
UmVtb3RlTWVkaWFSZXNvdXJjZUxvYWRlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CisJCTFEM0UxRThFMjQ1MEQ5QUIwMDM2NDA1MiAvKiBWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VySW5q
ZWN0ZWRCdW5kbGVDbGllbnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gVmlkZW9GdWxsc2NyZWVuTWFuYWdl
ckluamVjdGVkQnVuZGxlQ2xpZW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTFE
M0UxRThGMjQ1MEQ5QUIwMDM2NDA1MiAvKiBWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VySW5qZWN0ZWRC
dW5kbGVDbGllbnQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gVmlkZW9GdWxsc2NyZWVuTWFuYWdl
ckluamVjdGVkQnVuZGxlQ2xpZW50LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJ
MUQzRTFFOTIyNDUwREMyQTAwMzY0MDUyIC8qIFdLVmlkZW9GdWxsc2NyZWVuTWFuYWdlckluamVj
dGVkQnVuZGxlQ2xpZW50LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IFdLVmlk
ZW9GdWxsc2NyZWVuTWFuYWdlckluamVjdGVkQnVuZGxlQ2xpZW50Lmg7IHBhdGggPSBVSVByb2Nl
c3MvQVBJL0MvV0tWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VySW5qZWN0ZWRCdW5kbGVDbGllbnQuaDsg
c291cmNlVHJlZSA9IFNPVVJDRV9ST09UOyB9OwogCQkxRDRENzM2QjIzQTlERjU1MDA3MTdBMjUg
LyogUmVtb3RlTWVkaWFSZXNvdXJjZU1hbmFnZXJNZXNzYWdlUmVjZWl2ZXIuY3BwICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGV4cGxpY2l0RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5j
cHA7IG5hbWUgPSBSZW1vdGVNZWRpYVJlc291cmNlTWFuYWdlck1lc3NhZ2VSZWNlaXZlci5jcHA7
IHBhdGggPSBEZXJpdmVkU291cmNlcy9XZWJLaXQyL1JlbW90ZU1lZGlhUmVzb3VyY2VNYW5hZ2Vy
TWVzc2FnZVJlY2VpdmVyLmNwcDsgc291cmNlVHJlZSA9IEJVSUxUX1BST0RVQ1RTX0RJUjsgfTsK
IAkJMUQ0RDczNkMyM0E5REY2MDAwNzE3QTI1IC8qIFJlbW90ZU1lZGlhUmVzb3VyY2VNYW5hZ2Vy
TWVzc2FnZXMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBleHBsaWNpdEZpbGVUeXBl
ID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBSZW1vdGVNZWRpYVJlc291cmNlTWFuYWdlck1lc3Nh
Z2VzLmg7IHBhdGggPSBEZXJpdmVkU291cmNlcy9XZWJLaXQyL1JlbW90ZU1lZGlhUmVzb3VyY2VN
YW5hZ2VyTWVzc2FnZXMuaDsgc291cmNlVHJlZSA9IEJVSUxUX1BST0RVQ1RTX0RJUjsgfTsKIAkJ
MUQ0RDczNzUyM0E5RUI2ODAwNzE3QTI1IC8qIFJlbW90ZU1lZGlhUmVzb3VyY2VNYW5hZ2VyTWVz
c2FnZXNSZXBsaWVzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZXhwbGljaXRGaWxl
VHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gUmVtb3RlTWVkaWFSZXNvdXJjZU1hbmFnZXJN
ZXNzYWdlc1JlcGxpZXMuaDsgcGF0aCA9IERlcml2ZWRTb3VyY2VzL1dlYktpdDIvUmVtb3RlTWVk
aWFSZXNvdXJjZU1hbmFnZXJNZXNzYWdlc1JlcGxpZXMuaDsgc291cmNlVHJlZSA9IEJVSUxUX1BS
T0RVQ1RTX0RJUjsgfTsKQEAgLTYzNjEsNiArNjM3MSw4IEBACiAJCQkJNDYzMjM2ODUyMzE0ODMz
RjAwQTQ4RkE3IC8qIFVJUmVtb3RlT2JqZWN0UmVnaXN0cnkuaCAqLywKIAkJCQlFNEU4NjQ4RTFC
MTY3M0ZCMDBDODJGNDAgLyogVmVyc2lvbkNoZWNrcy5oICovLAogCQkJCUU0RTg2NDhGMUIxNjcz
RkIwMEM4MkY0MCAvKiBWZXJzaW9uQ2hlY2tzLm1tICovLAorCQkJCTFEM0UxRThGMjQ1MEQ5QUIw
MDM2NDA1MiAvKiBWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VySW5qZWN0ZWRCdW5kbGVDbGllbnQuY3Bw
ICovLAorCQkJCTFEM0UxRThFMjQ1MEQ5QUIwMDM2NDA1MiAvKiBWaWRlb0Z1bGxzY3JlZW5NYW5h
Z2VySW5qZWN0ZWRCdW5kbGVDbGllbnQuaCAqLywKIAkJCQk1MkQ1QTFBQTFDNTc0OTRFMDBERTM0
QTMgLyogVmlkZW9GdWxsc2NyZWVuTWFuYWdlclByb3h5LmggKi8sCiAJCQkJNTJENUExQUIxQzU3
NDk0RTAwREUzNEEzIC8qIFZpZGVvRnVsbHNjcmVlbk1hbmFnZXJQcm94eS5tZXNzYWdlcy5pbiAq
LywKIAkJCQk1MkQ1QTFBQzFDNTc0OTRFMDBERTM0QTMgLyogVmlkZW9GdWxsc2NyZWVuTWFuYWdl
clByb3h5Lm1tICovLApAQCAtOTMxNyw2ICs5MzI5LDkgQEAKIAkJCQk0QTQxMEYzNjE5QUY3QUMz
MDAyRUJBQjUgLyogV0tVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdC5oICovLAogCQkJCTdDODlE
MkExMUE2Nzg4NzUwMDNBNUZERSAvKiBXS1VzZXJTY3JpcHRSZWYuY3BwICovLAogCQkJCTdDODlE
MkEyMUE2Nzg4NzUwMDNBNUZERSAvKiBXS1VzZXJTY3JpcHRSZWYuaCAqLywKKwkJCQkxRDJDMDI0
RjI0NTI4QzdDMDAyNkFEMUYgLyogV0tWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyLmNwcCAqLywKKwkJ
CQkxRDJDMDI0RTI0NTI4QzdDMDAyNkFEMUYgLyogV0tWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyLmgg
Ki8sCisJCQkJMUQzRTFFOTIyNDUwREMyQTAwMzY0MDUyIC8qIFdLVmlkZW9GdWxsc2NyZWVuTWFu
YWdlckluamVjdGVkQnVuZGxlQ2xpZW50LmggKi8sCiAJCQkJNUM2RTdEODcyMzIzNjFFNzAwQzIx
NTlEIC8qIFdLV2Vic2l0ZURhdGFTdG9yZUNvbmZpZ3VyYXRpb25SZWYuY3BwICovLAogCQkJCTVD
NkU3RDg2MjMyMzYxRTcwMEMyMTU5RCAvKiBXS1dlYnNpdGVEYXRhU3RvcmVDb25maWd1cmF0aW9u
UmVmLmggKi8sCiAJCQkJMUE1NzEwOUMxQUJBMDAyNzAwMkZBQkJFIC8qIFdLV2Vic2l0ZURhdGFT
dG9yZVJlZi5jcHAgKi8sCkBAIC0xMTE1OCw2ICsxMTE3Myw3IEBACiAJCQkJNEEzQ0MxOEQxOUIw
NjQxOTAwRDE0QUVGIC8qIFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UHJveHkuaCBpbiBIZWFk
ZXJzICovLAogCQkJCTA3NEU3NUZFMURGMjIxMTkwMEQzMThFQyAvKiBVc2VyTWVkaWFQcm9jZXNz
TWFuYWdlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJRTRFODY0OTMxQjE2NzUwNzAwQzgyRjQwIC8q
IFZlcnNpb25DaGVja3MuaCBpbiBIZWFkZXJzICovLAorCQkJCTFEM0UxRTkwMjQ1MEQ5QUIwMDM2
NDA1MiAvKiBWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VySW5qZWN0ZWRCdW5kbGVDbGllbnQuaCBpbiBI
ZWFkZXJzICovLAogCQkJCTUyRDVBMUIwMUM1NzQ5NUEwMERFMzRBMyAvKiBWaWRlb0Z1bGxzY3Jl
ZW5NYW5hZ2VyUHJveHkuaCBpbiBIZWFkZXJzICovLAogCQkJCTJEMTI1QzVFMTg1N0VBMDUwMDNC
QTNDQiAvKiBWaWV3R2VzdHVyZUNvbnRyb2xsZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCTJEMUI1
RDVFMTg1ODY5QzgwMDZDNjU5NiAvKiBWaWV3R2VzdHVyZUNvbnRyb2xsZXJNZXNzYWdlcy5oIGlu
IEhlYWRlcnMgKi8sCkBAIC0xMTc2Miw2ICsxMTc3OCw4IEBACiAJCQkJMUFBRjA4OUQxOTI2N0ZD
ODAwQjYzOTBDIC8qIFdLVXNlclNjcmlwdEludGVybmFsLmggaW4gSGVhZGVycyAqLywKIAkJCQk3
Qzg4MkRGQTFDN0U5OTczMDA2QkY3MzEgLyogV0tVc2VyU2NyaXB0UHJpdmF0ZS5oIGluIEhlYWRl
cnMgKi8sCiAJCQkJN0M4OUQyQTQxQTY3ODg3NTAwM0E1RkRFIC8qIFdLVXNlclNjcmlwdFJlZi5o
IGluIEhlYWRlcnMgKi8sCisJCQkJMUQyQzAyNTAyNDUyOEM3QzAwMjZBRDFGIC8qIFdLVmlkZW9G
dWxsc2NyZWVuTWFuYWdlci5oIGluIEhlYWRlcnMgKi8sCisJCQkJMUQzRTFFOTMyNDUwREMyQTAw
MzY0MDUyIC8qIFdLVmlkZW9GdWxsc2NyZWVuTWFuYWdlckluamVjdGVkQnVuZGxlQ2xpZW50Lmgg
aW4gSGVhZGVycyAqLywKIAkJCQlCQzg2OTlCNTExNkFBREFBMDAyQTkyNUIgLyogV0tWaWV3Lmgg
aW4gSGVhZGVycyAqLywKIAkJCQlCQzg2OTlCNzExNkFBREFBMDAyQTkyNUIgLyogV0tWaWV3SW50
ZXJuYWwuaCBpbiBIZWFkZXJzICovLAogCQkJCTJEMjhBNDk3MUFGOTY1QTEwMEYxOTBDOSAvKiBX
S1ZpZXdMYXlvdXRTdHJhdGVneS5oIGluIEhlYWRlcnMgKi8sCkBAIC0xMjk4MSw2ICsxMjk5OSw3
IEBACiAJCQkJRTM4QTFGQzAyM0E1NTFCRjAwRDIzNzRGIC8qIFVzZXJJbnRlcmZhY2VJZGlvbS5t
bSBpbiBTb3VyY2VzICovLAogCQkJCUNENDkxQjBEMUU3MzJFNEQwMDAwOTA2NiAvKiBVc2VyTWVk
aWFDYXB0dXJlTWFuYWdlck1lc3NhZ2VSZWNlaXZlci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlD
RDQ5MUIxNzFFNzM1MjU1MDAwMDkwNjYgLyogVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eU1l
c3NhZ2VSZWNlaXZlci5jcHAgaW4gU291cmNlcyAqLywKKwkJCQkxRDNFMUU5MTI0NTBEOUFCMDAz
NjQwNTIgLyogVmlkZW9GdWxsc2NyZWVuTWFuYWdlckluamVjdGVkQnVuZGxlQ2xpZW50LmNwcCBp
biBTb3VyY2VzICovLAogCQkJCTNGNDE4RUY5MTg4N0JEOTcwMDI3OTVGRCAvKiBWaWRlb0Z1bGxz
Y3JlZW5NYW5hZ2VyTWVzc2FnZVJlY2VpdmVyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTNGNDE4
RUZCMTg4N0JEOTcwMDI3OTVGRCAvKiBWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyUHJveHlNZXNzYWdl
UmVjZWl2ZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMkQxQjVENUQxODU4NjlDODAwNkM2NTk2
IC8qIFZpZXdHZXN0dXJlQ29udHJvbGxlck1lc3NhZ2VSZWNlaXZlci5jcHAgaW4gU291cmNlcyAq
LywKQEAgLTEzMDY2LDYgKzEzMDg1LDcgQEAKIAkJCQkxREIwMTk0NDIxMUNGMDA1MDA5RkIzRTgg
LyogV0tTaGFyZVNoZWV0Lm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJN0E3OEZGMzMyMjQxOTE5QjAw
OTY0ODNFIC8qIFdLU3RvcmFnZUFjY2Vzc0FsZXJ0Lm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJQ0Uy
MTIxNjAyNDBFRTU3MTAwNkVENDQzIC8qIFdLVGV4dFBsYWNlaG9sZGVyLm1tIGluIFNvdXJjZXMg
Ki8sCisJCQkJMUQyQzAyNTEyNDUyOEM3QzAwMjZBRDFGIC8qIFdLVmlkZW9GdWxsc2NyZWVuTWFu
YWdlci5jcHAgaW4gU291cmNlcyAqLywKIAkJCSk7CiAJCQlydW5Pbmx5Rm9yRGVwbG95bWVudFBv
c3Rwcm9jZXNzaW5nID0gMDsKIAkJfTsKZGlmZiAtLWdpdCBhL1Rvb2xzL0NoYW5nZUxvZyBiL1Rv
b2xzL0NoYW5nZUxvZwppbmRleCA5NTVhMjNlODQyZWJhMWQ1OTdmODk0ZjNkOTlmYmEwMTI5M2U0
MGQ5Li45YmIyMDBhYmZkOTAxODFmZGMwNzJhOWRiNGJlZjNlMzk4OTJkOTM2IDEwMDY0NAotLS0g
YS9Ub29scy9DaGFuZ2VMb2cKKysrIGIvVG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzAgQEAK
KzIwMjAtMDQtMjcgIFBlbmcgTGl1ICA8cGVuZy5saXU2QGFwcGxlLmNvbT4KKworICAgICAgICBV
cGRhdGUgV2ViS2l0VGVzdFJ1bm5lciB0byBzdXBwb3J0IHJ1bm5pbmcgbXVsdGlwbGUgdmlkZW8g
ZnVsbHNjcmVlbiBhbmQgUGljdHVyZS1pbi1QaWN0dXJlIHRlc3RzIHNpbXVsdGFuZW91c2x5Cisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDM3MjMKKwor
ICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFdlYktpdFRl
c3RSdW5uZXIvUGxhdGZvcm1XZWJWaWV3Lmg6CisgICAgICAgICogV2ViS2l0VGVzdFJ1bm5lci9U
ZXN0Q29udHJvbGxlci5jcHA6CisgICAgICAgIChXVFI6OlRlc3RDb250cm9sbGVyOjpjb25maWd1
cmVWaWV3Rm9yVGVzdCk6CisgICAgICAgIChXVFI6OlRlc3RDb250cm9sbGVyOjpzZXRIYXNWaWRl
b0Zyb21JbmplY3RlZEJ1bmRsZSk6CisgICAgICAgIChXVFI6OlRlc3RDb250cm9sbGVyOjpzZXRW
aWRlb0RpbWVuc2lvbnNGcm9tSW5qZWN0ZWRCdW5kbGUpOgorICAgICAgICAoV1RSOjpUZXN0Q29u
dHJvbGxlcjo6c2V0dXBGdWxsc2NyZWVuV2l0aElERnJvbUluamVjdGVkQnVuZGxlKToKKyAgICAg
ICAgKFdUUjo6VGVzdENvbnRyb2xsZXI6OmVudGVyRnVsbHNjcmVlbkZyb21JbmplY3RlZEJ1bmRs
ZSk6CisgICAgICAgIChXVFI6OlRlc3RDb250cm9sbGVyOjpleGl0RnVsbHNjcmVlbkZyb21Jbmpl
Y3RlZEJ1bmRsZSk6CisgICAgICAgIChXVFI6OlRlc3RDb250cm9sbGVyOjpzZXRJbmxpbmVSZWN0
RnJvbUluamVjdGVkQnVuZGxlKToKKyAgICAgICAgKFdUUjo6VGVzdENvbnRyb2xsZXI6OnNldEhh
c1ZpZGVvQ29udGVudExheWVyRnJvbUluamVjdGVkQnVuZGxlKToKKyAgICAgICAgKFdUUjo6VGVz
dENvbnRyb2xsZXI6OmNsZWFudXBGdWxsc2NyZWVuRnJvbUluamVjdGVkQnVuZGxlKToKKyAgICAg
ICAgKFdUUjo6VGVzdENvbnRyb2xsZXI6OnByZXBhcmVkVG9SZXR1cm5Ub0lubGluZUZyb21Jbmpl
Y3RlZEJ1bmRsZSk6CisgICAgICAgIChXVFI6OlRlc3RDb250cm9sbGVyOjpwcmVwYXJlZFRvRXhp
dEZ1bGxzY3JlZW5Gcm9tSW5qZWN0ZWRCdW5kbGUpOgorICAgICAgICAoV1RSOjpUZXN0Q29udHJv
bGxlcjo6ZXhpdEZ1bGxzY3JlZW5XaXRob3V0QW5pbWF0aW9uVG9Nb2RlRnJvbUluamVjdGVkQnVu
ZGxlKToKKyAgICAgICAgKiBXZWJLaXRUZXN0UnVubmVyL1Rlc3RDb250cm9sbGVyLmg6CisgICAg
ICAgICogV2ViS2l0VGVzdFJ1bm5lci9pb3MvUGxhdGZvcm1XZWJWaWV3SU9TLm1tOgorICAgICAg
ICAoV1RSOjpQbGF0Zm9ybVdlYlZpZXc6OnZpZGVvRnVsbHNjcmVlbk1hbmFnZXIpOgorICAgICAg
ICAqIFdlYktpdFRlc3RSdW5uZXIvbWFjL1BsYXRmb3JtV2ViVmlld01hYy5tbToKKyAgICAgICAg
KFdUUjo6UGxhdGZvcm1XZWJWaWV3Ojp2aWRlb0Z1bGxzY3JlZW5NYW5hZ2VyKToKKwogMjAyMC0w
NC0yNyAgRGFuaWVsIEJhdGVzICA8ZGFiYXRlc0BhcHBsZS5jb20+CiAKICAgICAgICAgQ2FyZXQg
bWF5IGJlIHBsYWNlZCBpbiB0aGUgd3Jvbmcgc3BvdCBmb3IgdGV4dCBpbnB1dCBjb250ZXh0IHRo
YXQgaXMgYSBmb3JtIGNvbnRyb2wKZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIv
UGxhdGZvcm1XZWJWaWV3LmggYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1BsYXRmb3JtV2ViVmll
dy5oCmluZGV4IDNhOGJiZThjZTZjYjIzMzhjZDU0ZjM4MDcxYTM2YzljZmUwZTYyMjEuLjc0ZjQy
ZGY1Y2QyOWExNDZkMzEzNTBlMTdlMDYzOTc0ZWI5NDIwMTYgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dl
YktpdFRlc3RSdW5uZXIvUGxhdGZvcm1XZWJWaWV3LmgKKysrIGIvVG9vbHMvV2ViS2l0VGVzdFJ1
bm5lci9QbGF0Zm9ybVdlYlZpZXcuaApAQCAtODMsNiArODMsNyBAQCBwdWJsaWM6CiAgICAgflBs
YXRmb3JtV2ViVmlldygpOwogCiAgICAgV0tQYWdlUmVmIHBhZ2UoKTsKKyAgICBXS1ZpZGVvRnVs
bHNjcmVlbk1hbmFnZXJSZWYgdmlkZW9GdWxsc2NyZWVuTWFuYWdlcigpOwogICAgIFBsYXRmb3Jt
V0tWaWV3IHBsYXRmb3JtVmlldygpIHsgcmV0dXJuIG1fdmlldzsgfQogICAgIFBsYXRmb3JtV2lu
ZG93IHBsYXRmb3JtV2luZG93KCkgeyByZXR1cm4gbV93aW5kb3c7IH0KICAgICBzdGF0aWMgUGxh
dGZvcm1XaW5kb3cga2V5V2luZG93KCk7CmRpZmYgLS1naXQgYS9Ub29scy9XZWJLaXRUZXN0UnVu
bmVyL1Rlc3RDb250cm9sbGVyLmNwcCBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvVGVzdENvbnRy
b2xsZXIuY3BwCmluZGV4IGFhNzIzZWQ4ZjQ5NjFhMjA4NDZmMTNhYWM4NTEwYmVhMWQzZmVmZWMu
LjcyNDkwMjU5MmE0OTUwMDVkMjNiNGY0M2M4MjBkZmUzMWNmNGI0NjggMTAwNjQ0Ci0tLSBhL1Rv
b2xzL1dlYktpdFRlc3RSdW5uZXIvVGVzdENvbnRyb2xsZXIuY3BwCisrKyBiL1Rvb2xzL1dlYktp
dFRlc3RSdW5uZXIvVGVzdENvbnRyb2xsZXIuY3BwCkBAIC02Niw2ICs2Niw4IEBACiAjaW5jbHVk
ZSA8V2ViS2l0L1dLVXNlckNvbnRlbnRDb250cm9sbGVyUmVmLmg+CiAjaW5jbHVkZSA8V2ViS2l0
L1dLVXNlckNvbnRlbnRFeHRlbnNpb25TdG9yZVJlZi5oPgogI2luY2x1ZGUgPFdlYktpdC9XS1Vz
ZXJNZWRpYVBlcm1pc3Npb25DaGVjay5oPgorI2luY2x1ZGUgPFdlYktpdC9XS1ZpZGVvRnVsbHNj
cmVlbk1hbmFnZXIuaD4KKyNpbmNsdWRlIDxXZWJLaXQvV0tWaWRlb0Z1bGxzY3JlZW5NYW5hZ2Vy
SW5qZWN0ZWRCdW5kbGVDbGllbnQuaD4KICNpbmNsdWRlIDxXZWJLaXQvV0tXZWJzaXRlRGF0YVN0
b3JlQ29uZmlndXJhdGlvblJlZi5oPgogI2luY2x1ZGUgPFdlYktpdC9XS1dlYnNpdGVEYXRhU3Rv
cmVSZWYuaD4KICNpbmNsdWRlIDxXZWJLaXQvV0tXZWJzaXRlUG9saWNpZXMuaD4KQEAgLTE1NzUs
NiArMTU3NywyNCBAQCB2b2lkIFRlc3RDb250cm9sbGVyOjpjb25maWd1cmVWaWV3Rm9yVGVzdChj
b25zdCBUZXN0SW52b2NhdGlvbiYgdGVzdCkKICAgICB1cGRhdGVXaW5kb3dTY2FsZUZvclRlc3Qo
bWFpbldlYlZpZXcoKSwgdGVzdCk7CiAgICAgY29uZmlndXJlQ29udGVudEV4dGVuc2lvbkZvclRl
c3QodGVzdCk7CiAgICAgcGxhdGZvcm1Db25maWd1cmVWaWV3Rm9yVGVzdCh0ZXN0KTsKKworI2lm
IEVOQUJMRShWSURFT19QUkVTRU5UQVRJT05fTU9ERSkKKyAgICBXS1ZpZGVvRnVsbHNjcmVlbk1h
bmFnZXJJbmplY3RlZEJ1bmRsZUNsaWVudFYwIHZpZGVvRnVsbHNjcmVlbk1hbmFnZXJJbmplY3Rl
ZEJ1bmRsZUNsaWVudCA9IHsKKyAgICAgICAgeyAwLCB0aGlzIH0sCisgICAgICAgIHNldEhhc1Zp
ZGVvRnJvbUluamVjdGVkQnVuZGxlLAorICAgICAgICBzZXRWaWRlb0RpbWVuc2lvbnNGcm9tSW5q
ZWN0ZWRCdW5kbGUsCisgICAgICAgIHNldHVwRnVsbHNjcmVlbldpdGhJREZyb21JbmplY3RlZEJ1
bmRsZSwKKyAgICAgICAgZW50ZXJGdWxsc2NyZWVuRnJvbUluamVjdGVkQnVuZGxlLAorICAgICAg
ICBleGl0RnVsbHNjcmVlbkZyb21JbmplY3RlZEJ1bmRsZSwKKyAgICAgICAgc2V0SW5saW5lUmVj
dEZyb21JbmplY3RlZEJ1bmRsZSwKKyAgICAgICAgc2V0SGFzVmlkZW9Db250ZW50TGF5ZXJGcm9t
SW5qZWN0ZWRCdW5kbGUsCisgICAgICAgIGNsZWFudXBGdWxsc2NyZWVuRnJvbUluamVjdGVkQnVu
ZGxlLAorICAgICAgICBwcmVwYXJlZFRvUmV0dXJuVG9JbmxpbmVGcm9tSW5qZWN0ZWRCdW5kbGUs
CisgICAgICAgIHByZXBhcmVkVG9FeGl0RnVsbHNjcmVlbkZyb21JbmplY3RlZEJ1bmRsZSwKKyAg
ICAgICAgZXhpdEZ1bGxzY3JlZW5XaXRob3V0QW5pbWF0aW9uVG9Nb2RlRnJvbUluamVjdGVkQnVu
ZGxlCisgICAgfTsKKyAgICBXS1ZpZGVvRnVsbHNjcmVlbk1hbmFnZXJTZXRJbmplY3RlZEJ1bmRs
ZUNsaWVudChtX21haW5XZWJWaWV3LT52aWRlb0Z1bGxzY3JlZW5NYW5hZ2VyKCksICZ2aWRlb0Z1
bGxzY3JlZW5NYW5hZ2VySW5qZWN0ZWRCdW5kbGVDbGllbnQuYmFzZSk7CisjZW5kaWYKIH0KIAog
I2lmIEVOQUJMRShDT05URU5UX0VYVEVOU0lPTlMpICYmICFQTEFURk9STShDT0NPQSkKQEAgLTE4
OTIsNiArMTkxMiw1NSBAQCB2b2lkIFRlc3RDb250cm9sbGVyOjpkaWRSZWNlaXZlU3luY2hyb25v
dXNQYWdlTWVzc2FnZUZyb21JbmplY3RlZEJ1bmRsZVdpdGhMaXN0ZQogICAgIHN0YXRpY19jYXN0
PFRlc3RDb250cm9sbGVyKj4oY29uc3RfY2FzdDx2b2lkKj4oY2xpZW50SW5mbykpLT5kaWRSZWNl
aXZlU3luY2hyb25vdXNNZXNzYWdlRnJvbUluamVjdGVkQnVuZGxlKG1lc3NhZ2VOYW1lLCBtZXNz
YWdlQm9keSwgbGlzdGVuZXIpOwogfQogCisjaWYgRU5BQkxFKFZJREVPX1BSRVNFTlRBVElPTl9N
T0RFKQorCisvLyBXS1ZpZGVvRnVsbHNjcmVlbk1hbmFnZXJJbmplY3RlZEJ1bmRsZUNsaWVudAor
dm9pZCBUZXN0Q29udHJvbGxlcjo6c2V0SGFzVmlkZW9Gcm9tSW5qZWN0ZWRCdW5kbGUoV0tWaWRl
b0Z1bGxzY3JlZW5NYW5hZ2VyUmVmIG1hbmFnZXIsIHVpbnQ2NF90IGNvbnRleHRJZCwgYm9vbCBo
YXNWaWRlbykKK3sKK30KKwordm9pZCBUZXN0Q29udHJvbGxlcjo6c2V0VmlkZW9EaW1lbnNpb25z
RnJvbUluamVjdGVkQnVuZGxlKFdLVmlkZW9GdWxsc2NyZWVuTWFuYWdlclJlZiBtYW5hZ2VyLCB1
aW50NjRfdCBjb250ZXh0SWQsIFdLU2l6ZSB2aWRlb0RpbWVuc2lvbnMpCit7Cit9CisKK3ZvaWQg
VGVzdENvbnRyb2xsZXI6OnNldHVwRnVsbHNjcmVlbldpdGhJREZyb21JbmplY3RlZEJ1bmRsZShX
S1ZpZGVvRnVsbHNjcmVlbk1hbmFnZXJSZWYgbWFuYWdlciwgdWludDY0X3QgY29udGV4dElkLCB1
aW50MzJfdCB2aWRlb0xheWVySUQsIFdLUmVjdCBpbml0aWFsUmVjdCwgZmxvYXQgaG9zdGluZ1Nj
YWxlRmFjdG9yLCBXS1ZpZGVvRnVsbHNjcmVlbk1vZGUgdmlkZW9GdWxsc2NyZWVuTW9kZSwgYm9v
bCBhbGxvd3NQaWN0dXJlSW5QaWN0dXJlLCBib29sIHN0YW5kYnkpCit7Cit9CisKK3ZvaWQgVGVz
dENvbnRyb2xsZXI6OmVudGVyRnVsbHNjcmVlbkZyb21JbmplY3RlZEJ1bmRsZShXS1ZpZGVvRnVs
bHNjcmVlbk1hbmFnZXJSZWYgbWFuYWdlciwgdWludDY0X3QgY29udGV4dElkKQoreworfQorCit2
b2lkIFRlc3RDb250cm9sbGVyOjpleGl0RnVsbHNjcmVlbkZyb21JbmplY3RlZEJ1bmRsZShXS1Zp
ZGVvRnVsbHNjcmVlbk1hbmFnZXJSZWYgbWFuYWdlciwgdWludDY0X3QgY29udGV4dElkLCBXS1Jl
Y3QgZmluYWxSZWN0KQoreworfQorCit2b2lkIFRlc3RDb250cm9sbGVyOjpzZXRJbmxpbmVSZWN0
RnJvbUluamVjdGVkQnVuZGxlKFdLVmlkZW9GdWxsc2NyZWVuTWFuYWdlclJlZiBtYW5hZ2VyLCB1
aW50NjRfdCBjb250ZXh0SWQsIFdLUmVjdCBpbmxpbmVSZWN0LCBib29sIHZpc2libGUpCit7Cit9
CisKK3ZvaWQgVGVzdENvbnRyb2xsZXI6OnNldEhhc1ZpZGVvQ29udGVudExheWVyRnJvbUluamVj
dGVkQnVuZGxlKFdLVmlkZW9GdWxsc2NyZWVuTWFuYWdlclJlZiBtYW5hZ2VyLCB1aW50NjRfdCBj
b250ZXh0SWQsIGJvb2wgdmFsdWUpCit7Cit9CisKK3ZvaWQgVGVzdENvbnRyb2xsZXI6OmNsZWFu
dXBGdWxsc2NyZWVuRnJvbUluamVjdGVkQnVuZGxlKFdLVmlkZW9GdWxsc2NyZWVuTWFuYWdlclJl
ZiBtYW5hZ2VyLCB1aW50NjRfdCBjb250ZXh0SWQpCit7Cit9CisKK3ZvaWQgVGVzdENvbnRyb2xs
ZXI6OnByZXBhcmVkVG9SZXR1cm5Ub0lubGluZUZyb21JbmplY3RlZEJ1bmRsZShXS1ZpZGVvRnVs
bHNjcmVlbk1hbmFnZXJSZWYgbWFuYWdlciwgdWludDY0X3QgY29udGV4dElkLCBib29sIHZpc2li
bGUsIFdLUmVjdCBpbmxpbmVSZWN0KQoreworfQorCit2b2lkIFRlc3RDb250cm9sbGVyOjpwcmVw
YXJlZFRvRXhpdEZ1bGxzY3JlZW5Gcm9tSW5qZWN0ZWRCdW5kbGUoV0tWaWRlb0Z1bGxzY3JlZW5N
YW5hZ2VyUmVmIG1hbmFnZXIsIHVpbnQ2NF90IGNvbnRleHRJZCkKK3sKK30KKwordm9pZCBUZXN0
Q29udHJvbGxlcjo6ZXhpdEZ1bGxzY3JlZW5XaXRob3V0QW5pbWF0aW9uVG9Nb2RlRnJvbUluamVj
dGVkQnVuZGxlKFdLVmlkZW9GdWxsc2NyZWVuTWFuYWdlclJlZiBwYWdlLCB1aW50NjRfdCBjb250
ZXh0SWQsIFdLVmlkZW9GdWxsc2NyZWVuTW9kZSB2aWRlb0Z1bGxzY3JlZW5Nb2RlKQoreworfQor
CisjZW5kaWYKKwogdm9pZCBUZXN0Q29udHJvbGxlcjo6bmV0d29ya1Byb2Nlc3NEaWRDcmFzaChX
S0NvbnRleHRSZWYgY29udGV4dCwgY29uc3Qgdm9pZCAqY2xpZW50SW5mbykKIHsKICAgICBzdGF0
aWNfY2FzdDxUZXN0Q29udHJvbGxlcio+KGNvbnN0X2Nhc3Q8dm9pZCo+KGNsaWVudEluZm8pKS0+
bmV0d29ya1Byb2Nlc3NEaWRDcmFzaCgpOwpkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViS2l0VGVzdFJ1
bm5lci9UZXN0Q29udHJvbGxlci5oIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0Q29udHJv
bGxlci5oCmluZGV4IDE1Mjc4N2FhNzM0OTM2YTE4MjY4ZTJjZmI1YTExYzRkN2M4OWYwOWQuLmMw
YWQ4NTU0MTc1MDQwYzM4NjQ0MGUxYjQyYmE3OGFjNWM4YThkNmEgMTAwNjQ0Ci0tLSBhL1Rvb2xz
L1dlYktpdFRlc3RSdW5uZXIvVGVzdENvbnRyb2xsZXIuaAorKysgYi9Ub29scy9XZWJLaXRUZXN0
UnVubmVyL1Rlc3RDb250cm9sbGVyLmgKQEAgLTQ4LDYgKzQ4LDggQEAgT0JKQ19DTEFTUyBOU1N0
cmluZzsKIE9CSkNfQ0xBU1MgVUlLZXlib2FyZElucHV0TW9kZTsKIE9CSkNfQ0xBU1MgV0tXZWJW
aWV3Q29uZmlndXJhdGlvbjsKIAordHlwZWRlZiB1aW50MzJfdCBXS1ZpZGVvRnVsbHNjcmVlbk1v
ZGU7CisKIG5hbWVzcGFjZSBXVFIgewogCiBjbGFzcyBUZXN0SW52b2NhdGlvbjsKQEAgLTQyMyw2
ICs0MjUsMjEgQEAgcHJpdmF0ZToKICAgICB2b2lkIGRpZFJlY2VpdmVTeW5jaHJvbm91c01lc3Nh
Z2VGcm9tSW5qZWN0ZWRCdW5kbGUoV0tTdHJpbmdSZWYgbWVzc2FnZU5hbWUsIFdLVHlwZVJlZiBt
ZXNzYWdlQm9keSwgV0tNZXNzYWdlTGlzdGVuZXJSZWYpOwogICAgIFdLUmV0YWluUHRyPFdLVHlw
ZVJlZj4gZ2V0SW5qZWN0ZWRCdW5kbGVJbml0aWFsaXphdGlvblVzZXJEYXRhKCk7CiAKKyNpZiBF
TkFCTEUoVklERU9fUFJFU0VOVEFUSU9OX01PREUpCisgICAgLy8gV0tWaWRlb0Z1bGxzY3JlZW5N
YW5hZ2VySW5qZWN0ZWRCdW5kbGVDbGllbnQKKyAgICBzdGF0aWMgdm9pZCBzZXRIYXNWaWRlb0Zy
b21JbmplY3RlZEJ1bmRsZShXS1ZpZGVvRnVsbHNjcmVlbk1hbmFnZXJSZWYsIHVpbnQ2NF90IGNv
bnRleHRJZCwgYm9vbCBoYXNWaWRlbyk7CisgICAgc3RhdGljIHZvaWQgc2V0VmlkZW9EaW1lbnNp
b25zRnJvbUluamVjdGVkQnVuZGxlKFdLVmlkZW9GdWxsc2NyZWVuTWFuYWdlclJlZiwgdWludDY0
X3QgY29udGV4dElkLCBXS1NpemUgdmlkZW9EaW1lbnNpb25zKTsKKyAgICBzdGF0aWMgdm9pZCBz
ZXR1cEZ1bGxzY3JlZW5XaXRoSURGcm9tSW5qZWN0ZWRCdW5kbGUoV0tWaWRlb0Z1bGxzY3JlZW5N
YW5hZ2VyUmVmLCB1aW50NjRfdCBjb250ZXh0SWQsIHVpbnQzMl90IHZpZGVvTGF5ZXJJRCwgV0tS
ZWN0IGluaXRpYWxSZWN0LCBmbG9hdCBob3N0aW5nU2NhbGVGYWN0b3IsIFdLVmlkZW9GdWxsc2Ny
ZWVuTW9kZSwgYm9vbCBhbGxvd3NQaWN0dXJlSW5QaWN0dXJlLCBib29sIHN0YW5kYnkpOworICAg
IHN0YXRpYyB2b2lkIGVudGVyRnVsbHNjcmVlbkZyb21JbmplY3RlZEJ1bmRsZShXS1ZpZGVvRnVs
bHNjcmVlbk1hbmFnZXJSZWYsIHVpbnQ2NF90IGNvbnRleHRJZCk7CisgICAgc3RhdGljIHZvaWQg
ZXhpdEZ1bGxzY3JlZW5Gcm9tSW5qZWN0ZWRCdW5kbGUoV0tWaWRlb0Z1bGxzY3JlZW5NYW5hZ2Vy
UmVmLCB1aW50NjRfdCBjb250ZXh0SWQsIFdLUmVjdCBmaW5hbFJlY3QpOworICAgIHN0YXRpYyB2
b2lkIHNldElubGluZVJlY3RGcm9tSW5qZWN0ZWRCdW5kbGUoV0tWaWRlb0Z1bGxzY3JlZW5NYW5h
Z2VyUmVmLCB1aW50NjRfdCBjb250ZXh0SWQsIFdLUmVjdCBpbmxpbmVSZWN0LCBib29sIHZpc2li
bGUpOworICAgIHN0YXRpYyB2b2lkIHNldEhhc1ZpZGVvQ29udGVudExheWVyRnJvbUluamVjdGVk
QnVuZGxlKFdLVmlkZW9GdWxsc2NyZWVuTWFuYWdlclJlZiwgdWludDY0X3QgY29udGV4dElkLCBi
b29sIHZhbHVlKTsKKyAgICBzdGF0aWMgdm9pZCBjbGVhbnVwRnVsbHNjcmVlbkZyb21JbmplY3Rl
ZEJ1bmRsZShXS1ZpZGVvRnVsbHNjcmVlbk1hbmFnZXJSZWYsIHVpbnQ2NF90IGNvbnRleHRJZCk7
CisgICAgc3RhdGljIHZvaWQgcHJlcGFyZWRUb1JldHVyblRvSW5saW5lRnJvbUluamVjdGVkQnVu
ZGxlKFdLVmlkZW9GdWxsc2NyZWVuTWFuYWdlclJlZiwgdWludDY0X3QgY29udGV4dElkLCBib29s
IHZpc2libGUsIFdLUmVjdCBpbmxpbmVSZWN0KTsKKyAgICBzdGF0aWMgdm9pZCBwcmVwYXJlZFRv
RXhpdEZ1bGxzY3JlZW5Gcm9tSW5qZWN0ZWRCdW5kbGUoV0tWaWRlb0Z1bGxzY3JlZW5NYW5hZ2Vy
UmVmLCB1aW50NjRfdCBjb250ZXh0SWQpOworICAgIHN0YXRpYyB2b2lkIGV4aXRGdWxsc2NyZWVu
V2l0aG91dEFuaW1hdGlvblRvTW9kZUZyb21JbmplY3RlZEJ1bmRsZShXS1ZpZGVvRnVsbHNjcmVl
bk1hbmFnZXJSZWYsIHVpbnQ2NF90IGNvbnRleHRJZCwgV0tWaWRlb0Z1bGxzY3JlZW5Nb2RlKTsK
KyNlbmRpZgorCiAgICAgdm9pZCBkaWRSZWNlaXZlS2V5RG93bk1lc3NhZ2VGcm9tSW5qZWN0ZWRC
dW5kbGUoV0tEaWN0aW9uYXJ5UmVmIG1lc3NhZ2VCb2R5RGljdGlvbmFyeSwgYm9vbCBzeW5jaHJv
bm91cyk7CiAKICAgICAvLyBXS0NvbnRleHRDbGllbnQKQEAgLTQ2OCw3ICs0ODUsNiBAQCBwcml2
YXRlOgogCiAgICAgc3RhdGljIFdLUGx1Z2luTG9hZFBvbGljeSBkZWNpZGVQb2xpY3lGb3JQbHVn
aW5Mb2FkKFdLUGFnZVJlZiwgV0tQbHVnaW5Mb2FkUG9saWN5IGN1cnJlbnRQbHVnaW5Mb2FkUG9s
aWN5LCBXS0RpY3Rpb25hcnlSZWYgcGx1Z2luSW5mb3JtYXRpb24sIFdLU3RyaW5nUmVmKiB1bmF2
YWlsYWJpbGl0eURlc2NyaXB0aW9uLCBjb25zdCB2b2lkKiBjbGllbnRJbmZvKTsKICAgICBXS1Bs
dWdpbkxvYWRQb2xpY3kgZGVjaWRlUG9saWN5Rm9yUGx1Z2luTG9hZChXS1BhZ2VSZWYsIFdLUGx1
Z2luTG9hZFBvbGljeSBjdXJyZW50UGx1Z2luTG9hZFBvbGljeSwgV0tEaWN0aW9uYXJ5UmVmIHBs
dWdpbkluZm9ybWF0aW9uLCBXS1N0cmluZ1JlZiogdW5hdmFpbGFiaWxpdHlEZXNjcmlwdGlvbik7
Ci0gICAgCiAKICAgICBzdGF0aWMgdm9pZCBkZWNpZGVQb2xpY3lGb3JOb3RpZmljYXRpb25QZXJt
aXNzaW9uUmVxdWVzdChXS1BhZ2VSZWYsIFdLU2VjdXJpdHlPcmlnaW5SZWYsIFdLTm90aWZpY2F0
aW9uUGVybWlzc2lvblJlcXVlc3RSZWYsIGNvbnN0IHZvaWQqKTsKICAgICB2b2lkIGRlY2lkZVBv
bGljeUZvck5vdGlmaWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0KFdLUGFnZVJlZiwgV0tTZWN1cml0
eU9yaWdpblJlZiwgV0tOb3RpZmljYXRpb25QZXJtaXNzaW9uUmVxdWVzdFJlZik7CmRpZmYgLS1n
aXQgYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL2lvcy9QbGF0Zm9ybVdlYlZpZXdJT1MubW0gYi9U
b29scy9XZWJLaXRUZXN0UnVubmVyL2lvcy9QbGF0Zm9ybVdlYlZpZXdJT1MubW0KaW5kZXggZGNl
YTM4Y2RhY2U3NjgyNjUyMGIwYjFmZDhjZTAwOGJhM2JjN2E2NC4uNTYyYTZlYzlmYTc0ZTE3ZWQ5
MDdhMTdhMjcwZThlYzk4MGM0MmI4MCAxMDA2NDQKLS0tIGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5l
ci9pb3MvUGxhdGZvcm1XZWJWaWV3SU9TLm1tCisrKyBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIv
aW9zL1BsYXRmb3JtV2ViVmlld0lPUy5tbQpAQCAtNDIsNiArNDIsNyBAQAogCiBAaW50ZXJmYWNl
IFdLV2ViVmlldyAoRGV0YWlscykKIC0gKFdLUGFnZVJlZilfcGFnZUZvclRlc3Rpbmc7CistIChX
S1ZpZGVvRnVsbHNjcmVlbk1hbmFnZXJSZWYpX3ZpZGVvRnVsbHNjcmVlbk1hbmFnZXJGb3JUZXN0
aW5nOwogQGVuZAogCiBAaW50ZXJmYWNlIFdlYktpdFRlc3RSdW5uZXJXaW5kb3cgOiBVSVdpbmRv
dyB7CkBAIC0yMzksNiArMjQwLDExIEBAIFdLUGFnZVJlZiBQbGF0Zm9ybVdlYlZpZXc6OnBhZ2Uo
KQogICAgIHJldHVybiBbbV92aWV3IF9wYWdlRm9yVGVzdGluZ107CiB9CiAKK1dLVmlkZW9GdWxs
c2NyZWVuTWFuYWdlclJlZiBQbGF0Zm9ybVdlYlZpZXc6OnZpZGVvRnVsbHNjcmVlbk1hbmFnZXIo
KQoreworICAgIHJldHVybiBbbV92aWV3IF92aWRlb0Z1bGxzY3JlZW5NYW5hZ2VyRm9yVGVzdGlu
Z107Cit9CisKIHZvaWQgUGxhdGZvcm1XZWJWaWV3Ojpmb2N1cygpCiB7CiAgICAgbWFrZVdlYlZp
ZXdGaXJzdFJlc3BvbmRlcigpOwpkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9t
YWMvUGxhdGZvcm1XZWJWaWV3TWFjLm1tIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9tYWMvUGxh
dGZvcm1XZWJWaWV3TWFjLm1tCmluZGV4IDY0MTc4MmNhOTdlMWRhZmI5MDA5MTlkYjE5YjM0NzRh
NTU0Mzg4ZTUuLmQxZTVlNzc5MmMwMzlkZGU5ZTM4ZjMxY2U3NWNhNWZmMzM4ZTBkZjQgMTAwNjQ0
Ci0tLSBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvbWFjL1BsYXRmb3JtV2ViVmlld01hYy5tbQor
KysgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL21hYy9QbGF0Zm9ybVdlYlZpZXdNYWMubW0KQEAg
LTM4LDYgKzM4LDcgQEAKIAogQGludGVyZmFjZSBXS1dlYlZpZXcgKCkKIC0gKFdLUGFnZVJlZilf
cGFnZUZvclRlc3Rpbmc7CistIChXS1ZpZGVvRnVsbHNjcmVlbk1hbmFnZXJSZWYpX3ZpZGVvRnVs
bHNjcmVlbk1hbmFnZXJGb3JUZXN0aW5nOwogQGVuZAogCiB1c2luZyBuYW1lc3BhY2UgV1RSOwpA
QCAtMTE3LDYgKzExOCwxMSBAQCBXS1BhZ2VSZWYgUGxhdGZvcm1XZWJWaWV3OjpwYWdlKCkKICAg
ICByZXR1cm4gW21fdmlldyBfcGFnZUZvclRlc3RpbmddOwogfQogCitXS1ZpZGVvRnVsbHNjcmVl
bk1hbmFnZXJSZWYgUGxhdGZvcm1XZWJWaWV3Ojp2aWRlb0Z1bGxzY3JlZW5NYW5hZ2VyKCkKK3sK
KyAgICByZXR1cm4gW21fdmlldyBfdmlkZW9GdWxsc2NyZWVuTWFuYWdlckZvclRlc3RpbmddOwor
fQorCiB2b2lkIFBsYXRmb3JtV2ViVmlldzo6Zm9jdXMoKQogewogICAgIFttX3dpbmRvdyBtYWtl
Rmlyc3RSZXNwb25kZXI6cGxhdGZvcm1WaWV3KCldOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
Q2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IGVjNzJlZDVmYzY5NDhiMGY0
YmQ5YzhmODJiMWUxNGZhNGFkMzgyZGYuLmFhMDJkZTFhZTRlODEwN2Y5ZmVmNWQwNjZjZDY4OGZl
YTc0MjQ4MGEgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9MYXlvdXRU
ZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxMyBAQAorMjAyMC0wNC0yNyAgUGVuZyBMaXUgIDxw
ZW5nLmxpdTZAYXBwbGUuY29tPgorCisgICAgICAgIFVwZGF0ZSBXZWJLaXRUZXN0UnVubmVyIHRv
IHN1cHBvcnQgcnVubmluZyBtdWx0aXBsZSB2aWRlbyBmdWxsc2NyZWVuIGFuZCBQaWN0dXJlLWlu
LVBpY3R1cmUgdGVzdHMgc2ltdWx0YW5lb3VzbHkKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTIwMzcyMworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgICogbWVkaWEvdmlkZW8tcHJlc2VudGF0aW9uLW1vZGUtZXhw
ZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBtZWRpYS92aWRlby1wcmVzZW50YXRpb24tbW9k
ZS5odG1sOiBBZGRlZC4KKwogMjAyMC0wNC0yNyAgQWxpY2lhIEJveWEgR2FyY8OtYSAgPGFib3lh
QGlnYWxpYS5jb20+CiAKICAgICAgICAgW0dTdHJlYW1lcl0gUmV3b3JrIFdlYktpdFdlYlNyYyB0
aHJlYWRpbmcKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL21lZGlhL3ZpZGVvLXByZXNlbnRhdGlv
bi1tb2RlLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL21lZGlhL3ZpZGVvLXByZXNlbnRhdGlv
bi1tb2RlLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi41NTBlODUzZDdlNzNlZDgzMTM1ZmViOTJj
NzA5OTU5Mzc5NmJkZmIwCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvbWVkaWEvdmlk
ZW8tcHJlc2VudGF0aW9uLW1vZGUtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMzIgQEAKKworVGVz
dCB0aGUgdmlkZW8gcHJlc2VudGF0aW9uIG1vZGUgKHZpZGVvIGZ1bGxzY3JlZW4gYW5kIHBpY3R1
cmUtaW4tcGljdHVyZSkgQVBJLgorCisKK0VWRU5UKGNhbnBsYXl0aHJvdWdoKQorRVhQRUNURUQg
KHZpZGVvLndlYmtpdFN1cHBvcnRzRnVsbHNjcmVlbiA9PSAndHJ1ZScpIE9LCitFWFBFQ1RFRCAo
dmlkZW8ud2Via2l0RGlzcGxheWluZ0Z1bGxzY3JlZW4gPT0gJ2ZhbHNlJykgT0sKKworKiogVHJ5
IHRvIGVudGVyIGZ1bGxzY3JlZW4KK1JVTih2aWRlby53ZWJraXRTZXRQcmVzZW50YXRpb25Nb2Rl
KCdmdWxsc2NyZWVuJykpCitFVkVOVCh3ZWJraXRwcmVzZW50YXRpb25tb2RlY2hhbmdlZCkKKwor
KiogRW50ZXJlZCBmdWxsc2NyZWVuCitFWFBFQ1RFRCAodmlkZW8ud2Via2l0UHJlc2VudGF0aW9u
TW9kZSA9PSAnZnVsbHNjcmVlbicpIE9LCisKKyoqIFRyeSB0byBlbnRlciBwaWN0dXJlLWluLXBp
Y3R1cmUKK1JVTih2aWRlby53ZWJraXRTZXRQcmVzZW50YXRpb25Nb2RlKCdwaWN0dXJlLWluLXBp
Y3R1cmUnKSkKK0VWRU5UKHdlYmtpdHByZXNlbnRhdGlvbm1vZGVjaGFuZ2VkKQorCisqKiBFbnRl
cmVkIHBpY3R1cmUtaW4tcGljdHVyCitFWFBFQ1RFRCAodmlkZW8ud2Via2l0UHJlc2VudGF0aW9u
TW9kZSA9PSAncGljdHVyZS1pbi1waWN0dXJlJykgT0sKKworKiogVHJ5IHRvIHJldHVybiB0byBp
bmxpbmUKK1JVTih2aWRlby53ZWJraXRTZXRQcmVzZW50YXRpb25Nb2RlKCdpbmxpbmUnKSkKK0VW
RU5UKHdlYmtpdHByZXNlbnRhdGlvbm1vZGVjaGFuZ2VkKQorCisqKiBSZXR1cm5lZCB0byBpbmxp
bmUKK0VYUEVDVEVEICh2aWRlby53ZWJraXRQcmVzZW50YXRpb25Nb2RlID09ICdpbmxpbmUnKSBP
SworCisqKiBUZXN0IENvbXBsZXRlZAorRU5EIE9GIFRFU1QKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvbWVkaWEvdmlkZW8tcHJlc2VudGF0aW9uLW1vZGUuaHRtbCBiL0xheW91dFRlc3RzL21l
ZGlhL3ZpZGVvLXByZXNlbnRhdGlvbi1tb2RlLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uM2ZmNDM2ZTBlMTIx
MWMwYzcxNmEyN2FhZTFkZDQ0ZTBhMzk1MmY1MQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRl
c3RzL21lZGlhL3ZpZGVvLXByZXNlbnRhdGlvbi1tb2RlLmh0bWwKQEAgLTAsMCArMSw2MSBAQAor
PCFkb2N0eXBlIGh0bWw+Cis8aHRtbD4KKyAgICA8aGVhZD4KKyAgICAgICAgPHNjcmlwdCBzcmM9
bWVkaWEtZmlsZS5qcz48L3NjcmlwdD4KKyAgICAgICAgPHNjcmlwdCBzcmM9dmlkZW8tdGVzdC5q
cz48L3NjcmlwdD4KKyAgICAgICAgPHNjcmlwdD4KKyAgICAgICAgICAgIGZ1bmN0aW9uIHN0YXJ0
KCkKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICBpZiAod2luZG93LmludGVybmFscykK
KyAgICAgICAgICAgICAgICAgICAgd2luZG93LmludGVybmFscy5zZXR0aW5ncy5zZXRBbGxvd3NQ
aWN0dXJlSW5QaWN0dXJlTWVkaWFQbGF5YmFjayh0cnVlKTsKKworICAgICAgICAgICAgICAgIHZp
ZGVvID0gZG9jdW1lbnQuZ2V0RWxlbWVudHNCeVRhZ05hbWUoJ3ZpZGVvJylbMF07CisgICAgICAg
ICAgICAgICAgd2FpdEZvckV2ZW50T25jZSgiY2FucGxheXRocm91Z2giLCBjYW5wbGF5dGhyb3Vn
aCk7CisgICAgICAgICAgICAgICAgdmlkZW8uc3JjID0gZmluZE1lZGlhRmlsZSgidmlkZW8iLCAi
Y29udGVudC90ZXN0Iik7CisKKyAgICAgICAgICAgICAgICBjb25zb2xlV3JpdGUoIiIpOworICAg
ICAgICAgICAgfQorCisgICAgICAgICAgICBmdW5jdGlvbiBjYW5wbGF5dGhyb3VnaCgpCisgICAg
ICAgICAgICB7CisgICAgICAgICAgICAgICAgdGVzdEV4cGVjdGVkKCJ2aWRlby53ZWJraXRTdXBw
b3J0c0Z1bGxzY3JlZW4iLCB0cnVlKTsKKyAgICAgICAgICAgICAgICB0ZXN0RXhwZWN0ZWQoInZp
ZGVvLndlYmtpdERpc3BsYXlpbmdGdWxsc2NyZWVuIiwgZmFsc2UpOworCisgICAgICAgICAgICAg
ICAgY29uc29sZVdyaXRlKCI8YnI+KiogVHJ5IHRvIGVudGVyIGZ1bGxzY3JlZW4iKTsKKyAgICAg
ICAgICAgICAgICBydW5XaXRoS2V5RG93bigidmlkZW8ud2Via2l0U2V0UHJlc2VudGF0aW9uTW9k
ZSgnZnVsbHNjcmVlbicpIik7CisgICAgICAgICAgICAgICAgd2FpdEZvckV2ZW50T25jZSgnd2Vi
a2l0cHJlc2VudGF0aW9ubW9kZWNoYW5nZWQnLCBwcmVzZW50YXRpb25Nb2RlQ2hhbmdlZDEpOwor
ICAgICAgICAgICAgfQorCisgICAgICAgICAgICBmdW5jdGlvbiBwcmVzZW50YXRpb25Nb2RlQ2hh
bmdlZDEoKQorICAgICAgICAgICAgeworICAgICAgICAgICAgICAgIGNvbnNvbGVXcml0ZSgiPGJy
PioqIEVudGVyZWQgZnVsbHNjcmVlbiIpOworICAgICAgICAgICAgICAgIHRlc3RFeHBlY3RlZCgi
dmlkZW8ud2Via2l0UHJlc2VudGF0aW9uTW9kZSIsICJmdWxsc2NyZWVuIik7CisgICAgICAgICAg
ICAgICAgY29uc29sZVdyaXRlKCI8YnI+KiogVHJ5IHRvIGVudGVyIHBpY3R1cmUtaW4tcGljdHVy
ZSIpOworICAgICAgICAgICAgICAgIHdhaXRGb3JFdmVudE9uY2UoJ3dlYmtpdHByZXNlbnRhdGlv
bm1vZGVjaGFuZ2VkJywgcHJlc2VudGF0aW9uTW9kZUNoYW5nZWQyKTsKKyAgICAgICAgICAgICAg
ICBydW5XaXRoS2V5RG93bigidmlkZW8ud2Via2l0U2V0UHJlc2VudGF0aW9uTW9kZSgncGljdHVy
ZS1pbi1waWN0dXJlJykiKTsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgZnVuY3Rpb24g
cHJlc2VudGF0aW9uTW9kZUNoYW5nZWQyKCkKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAg
ICBjb25zb2xlV3JpdGUoIjxicj4qKiBFbnRlcmVkIHBpY3R1cmUtaW4tcGljdHVyIik7CisgICAg
ICAgICAgICAgICAgdGVzdEV4cGVjdGVkKCJ2aWRlby53ZWJraXRQcmVzZW50YXRpb25Nb2RlIiwg
InBpY3R1cmUtaW4tcGljdHVyZSIpOworICAgICAgICAgICAgICAgIGNvbnNvbGVXcml0ZSgiPGJy
PioqIFRyeSB0byByZXR1cm4gdG8gaW5saW5lIik7CisgICAgICAgICAgICAgICAgd2FpdEZvckV2
ZW50T25jZSgnd2Via2l0cHJlc2VudGF0aW9ubW9kZWNoYW5nZWQnLCB0ZXN0Q29tcGxldGVkKTsK
KyAgICAgICAgICAgICAgICBydW5XaXRoS2V5RG93bigidmlkZW8ud2Via2l0U2V0UHJlc2VudGF0
aW9uTW9kZSgnaW5saW5lJykiKTsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgZnVuY3Rp
b24gdGVzdENvbXBsZXRlZCgpCisgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgY29uc29s
ZVdyaXRlKCI8YnI+KiogUmV0dXJuZWQgdG8gaW5saW5lIik7CisgICAgICAgICAgICAgICAgdGVz
dEV4cGVjdGVkKCJ2aWRlby53ZWJraXRQcmVzZW50YXRpb25Nb2RlIiwgImlubGluZSIpOworICAg
ICAgICAgICAgICAgIGNvbnNvbGVXcml0ZSgiPGJyPioqIFRlc3QgQ29tcGxldGVkIik7CisgICAg
ICAgICAgICAgICAgZW5kVGVzdCgpOworICAgICAgICAgICAgfQorICAgICAgICA8L3NjcmlwdD4K
KyAgICA8L2hlYWQ+CisKKyAgICA8Ym9keSBvbmxvYWQ9InN0YXJ0KCkiPgorICAgICAgICA8dmlk
ZW8gY29udHJvbHMgcGxheXNpbmxpbmU+PC92aWRlbz4KKyAgICAgICAgPHA+VGVzdCB0aGUgdmlk
ZW8gcHJlc2VudGF0aW9uIG1vZGUgKHZpZGVvIGZ1bGxzY3JlZW4gYW5kIHBpY3R1cmUtaW4tcGlj
dHVyZSkgQVBJLjwvcD4KKyAgICA8L2JvZHk+Cis8L2h0bWw+Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>397852</attachid>
            <date>2020-04-28 10:16:36 -0700</date>
            <delta_ts>2020-04-28 23:02:21 -0700</delta_ts>
            <desc>WIP patch - fix WinCairo build failures</desc>
            <filename>bug-203723-20200428101635.patch</filename>
            <type>text/plain</type>
            <size>62463</size>
            <attacher name="Peng Liu">peng.liu6</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjYwNzYyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDgyOWY2OGJjOTgyNWZkYjhm
YmY1NDhjYmRjNDE0ODgyMDcyMWNiMDUuLmVlMjc1MjJiMzhhOTczMzBjZDY3Y2I1YWEzMTVkY2E5
Y2YwM2E5MGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNTEgQEAKKzIwMjAtMDQtMjcgIFBlbmcgTGl1
ICA8cGVuZy5saXU2QGFwcGxlLmNvbT4KKworICAgICAgICBVcGRhdGUgV2ViS2l0VGVzdFJ1bm5l
ciB0byBzdXBwb3J0IHJ1bm5pbmcgbXVsdGlwbGUgdmlkZW8gZnVsbHNjcmVlbiBhbmQgUGljdHVy
ZS1pbi1QaWN0dXJlIHRlc3RzIHNpbXVsdGFuZW91c2x5CisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDM3MjMKKworICAgICAgICBSZXZpZXdlZCBieSBO
T0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFNoYXJlZC9BUEkvQVBJT2JqZWN0Lmg6CisgICAg
ICAgICogU2hhcmVkL0FQSS9jL1dLQmFzZS5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQy9X
S0FQSUNhc3QuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0MvV0tQYWdlSW5qZWN0ZWRCdW5k
bGVDbGllbnQuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0MvV0tWaWRlb0Z1bGxzY3JlZW5N
YW5hZ2VyLmNwcDogQWRkZWQuCisgICAgICAgIChXS1ZpZGVvRnVsbHNjcmVlbk1hbmFnZXJTZXRJ
bmplY3RlZEJ1bmRsZUNsaWVudCk6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9DL1dLVmlkZW9G
dWxsc2NyZWVuTWFuYWdlci5oOiBBZGRlZC4KKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0MvV0tW
aWRlb0Z1bGxzY3JlZW5NYW5hZ2VySW5qZWN0ZWRCdW5kbGVDbGllbnQuaDogQWRkZWQuCisgICAg
ICAgICogVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXcubW06CisgICAgICAgICgtW1dLV2Vi
VmlldyBfdmlkZW9GdWxsc2NyZWVuTWFuYWdlckZvclRlc3RpbmddKToKKyAgICAgICAgKiBVSVBy
b2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlld0ludGVybmFsLmg6CisgICAgICAgICogVUlQcm9jZXNz
L0NvY29hL1ZpZGVvRnVsbHNjcmVlbk1hbmFnZXJJbmplY3RlZEJ1bmRsZUNsaWVudC5jcHA6IEFk
ZGVkLgorICAgICAgICAoV2ViS2l0OjpWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VySW5qZWN0ZWRCdW5k
bGVDbGllbnQ6OnNldEhhc1ZpZGVvKToKKyAgICAgICAgKFdlYktpdDo6VmlkZW9GdWxsc2NyZWVu
TWFuYWdlckluamVjdGVkQnVuZGxlQ2xpZW50OjpzZXRWaWRlb0RpbWVuc2lvbnMpOgorICAgICAg
ICAoV2ViS2l0OjpWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VySW5qZWN0ZWRCdW5kbGVDbGllbnQ6OnNl
dHVwRnVsbHNjcmVlbldpdGhJRCk6CisgICAgICAgIChXZWJLaXQ6OlZpZGVvRnVsbHNjcmVlbk1h
bmFnZXJJbmplY3RlZEJ1bmRsZUNsaWVudDo6ZW50ZXJGdWxsc2NyZWVuKToKKyAgICAgICAgKFdl
YktpdDo6VmlkZW9GdWxsc2NyZWVuTWFuYWdlckluamVjdGVkQnVuZGxlQ2xpZW50OjpleGl0RnVs
bHNjcmVlbik6CisgICAgICAgIChXZWJLaXQ6OlZpZGVvRnVsbHNjcmVlbk1hbmFnZXJJbmplY3Rl
ZEJ1bmRsZUNsaWVudDo6c2V0SW5saW5lUmVjdCk6CisgICAgICAgIChXZWJLaXQ6OlZpZGVvRnVs
bHNjcmVlbk1hbmFnZXJJbmplY3RlZEJ1bmRsZUNsaWVudDo6c2V0SGFzVmlkZW9Db250ZW50TGF5
ZXIpOgorICAgICAgICAoV2ViS2l0OjpWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VySW5qZWN0ZWRCdW5k
bGVDbGllbnQ6OmNsZWFudXBGdWxsc2NyZWVuKToKKyAgICAgICAgKFdlYktpdDo6VmlkZW9GdWxs
c2NyZWVuTWFuYWdlckluamVjdGVkQnVuZGxlQ2xpZW50OjpwcmVwYXJlZFRvUmV0dXJuVG9Jbmxp
bmUpOgorICAgICAgICAoV2ViS2l0OjpWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VySW5qZWN0ZWRCdW5k
bGVDbGllbnQ6OnByZXBhcmVkVG9FeGl0RnVsbHNjcmVlbik6CisgICAgICAgIChXZWJLaXQ6OlZp
ZGVvRnVsbHNjcmVlbk1hbmFnZXJJbmplY3RlZEJ1bmRsZUNsaWVudDo6ZXhpdEZ1bGxzY3JlZW5X
aXRob3V0QW5pbWF0aW9uVG9Nb2RlKToKKyAgICAgICAgKiBVSVByb2Nlc3MvQ29jb2EvVmlkZW9G
dWxsc2NyZWVuTWFuYWdlckluamVjdGVkQnVuZGxlQ2xpZW50Lmg6IEFkZGVkLgorICAgICAgICAq
IFVJUHJvY2Vzcy9Db2NvYS9WaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyUHJveHkuaDoKKyAgICAgICAg
KiBVSVByb2Nlc3MvQ29jb2EvVmlkZW9GdWxsc2NyZWVuTWFuYWdlclByb3h5Lm1tOgorICAgICAg
ICAoV2ViS2l0OjpWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyUHJveHk6OnNldEluamVjdGVkQnVuZGxl
Q2xpZW50KToKKyAgICAgICAgKFdlYktpdDo6VmlkZW9GdWxsc2NyZWVuTWFuYWdlclByb3h5Ojpp
c1BsYXlpbmdWaWRlb0luRW5oYW5jZWRGdWxsc2NyZWVuIGNvbnN0KToKKyAgICAgICAgKFdlYktp
dDo6VmlkZW9GdWxsc2NyZWVuTWFuYWdlclByb3h5OjpzZXR1cEZ1bGxzY3JlZW5XaXRoSUQpOgor
ICAgICAgICAoV2ViS2l0OjpWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyUHJveHk6OnNldEhhc1ZpZGVv
KToKKyAgICAgICAgKFdlYktpdDo6VmlkZW9GdWxsc2NyZWVuTWFuYWdlclByb3h5OjpzZXRWaWRl
b0RpbWVuc2lvbnMpOgorICAgICAgICAoV2ViS2l0OjpWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyUHJv
eHk6OmVudGVyRnVsbHNjcmVlbik6CisgICAgICAgIChXZWJLaXQ6OlZpZGVvRnVsbHNjcmVlbk1h
bmFnZXJQcm94eTo6ZXhpdEZ1bGxzY3JlZW4pOgorICAgICAgICAoV2ViS2l0OjpWaWRlb0Z1bGxz
Y3JlZW5NYW5hZ2VyUHJveHk6OmV4aXRGdWxsc2NyZWVuV2l0aG91dEFuaW1hdGlvblRvTW9kZSk6
CisgICAgICAgIChXZWJLaXQ6OlZpZGVvRnVsbHNjcmVlbk1hbmFnZXJQcm94eTo6c2V0SW5saW5l
UmVjdCk6CisgICAgICAgIChXZWJLaXQ6OlZpZGVvRnVsbHNjcmVlbk1hbmFnZXJQcm94eTo6c2V0
SGFzVmlkZW9Db250ZW50TGF5ZXIpOgorICAgICAgICAoV2ViS2l0OjpWaWRlb0Z1bGxzY3JlZW5N
YW5hZ2VyUHJveHk6OmNsZWFudXBGdWxsc2NyZWVuKToKKyAgICAgICAgKFdlYktpdDo6VmlkZW9G
dWxsc2NyZWVuTWFuYWdlclByb3h5OjpwcmVwYXJlZFRvUmV0dXJuVG9JbmxpbmUpOgorICAgICAg
ICAoV2ViS2l0OjpWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyUHJveHk6OnByZXBhcmVkVG9FeGl0RnVs
bHNjcmVlbik6CisgICAgICAgICogV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisK
IDIwMjAtMDQtMjcgIFBoaWxpcHBlIE5vcm1hbmQgIDxwbm9ybWFuZEBpZ2FsaWEuY29tPgogCiAg
ICAgICAgIFtHVEtdIEVOQUJMRShPUEVOR0wpIHJlbW1hbnRzLi4uCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L0hlYWRlcnMuY21ha2UgYi9Tb3VyY2UvV2ViS2l0L0hlYWRlcnMuY21ha2UKaW5k
ZXggNDM2Mzk3MGYxYWUwMzY2ZWEwMzk1NTdhMjczZDhiODNlNjYxNjQ0OC4uMTVkYzg5N2ZhYmYw
MjNhOGVlMjQwYmEzMDRiNTk3YjIyMGRmMGI2NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9I
ZWFkZXJzLmNtYWtlCisrKyBiL1NvdXJjZS9XZWJLaXQvSGVhZGVycy5jbWFrZQpAQCAtMTA2LDYg
KzEwNiw4IEBAIHNldChXZWJLaXRfUFVCTElDX0ZSQU1FV09SS19IRUFERVJTCiAgICAgVUlQcm9j
ZXNzL0FQSS9DL1dLVXNlck1lZGlhUGVybWlzc2lvbkNoZWNrLmgKICAgICBVSVByb2Nlc3MvQVBJ
L0MvV0tVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdC5oCiAgICAgVUlQcm9jZXNzL0FQSS9DL1dL
VXNlclNjcmlwdFJlZi5oCisgICAgVUlQcm9jZXNzL0FQSS9DL1dLVmlkZW9GdWxsc2NyZWVuTWFu
YWdlci5oCisgICAgVUlQcm9jZXNzL0FQSS9DL1dLVmlkZW9GdWxsc2NyZWVuTWFuYWdlckluamVj
dGVkQnVuZGxlQ2xpZW50LmgKICAgICBVSVByb2Nlc3MvQVBJL0MvV0tWaWV3cG9ydEF0dHJpYnV0
ZXMuaAogICAgIFVJUHJvY2Vzcy9BUEkvQy9XS1dlYnNpdGVEYXRhU3RvcmVDb25maWd1cmF0aW9u
UmVmLmgKICAgICBVSVByb2Nlc3MvQVBJL0MvV0tXZWJzaXRlRGF0YVN0b3JlUmVmLmgKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0FQSS9BUElPYmplY3QuaCBiL1NvdXJjZS9XZWJL
aXQvU2hhcmVkL0FQSS9BUElPYmplY3QuaAppbmRleCA0YTY4ZGZmNTg0ZjExZTgzNWY4NTMyNmI0
NGYwN2Y0YTgwNGM5NzYyLi4wZTE3ZjcyMjFjY2Q2ZGRjMzNhYmMwYTNhYThkMGFkNWI2OTRjY2I1
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9BUEkvQVBJT2JqZWN0LmgKKysrIGIv
U291cmNlL1dlYktpdC9TaGFyZWQvQVBJL0FQSU9iamVjdC5oCkBAIC0xNjksNiArMTY5LDcgQEAg
cHVibGljOgogICAgICAgICBVc2VySW5pdGlhdGVkQWN0aW9uLAogICAgICAgICBVc2VyTWVkaWFQ
ZXJtaXNzaW9uQ2hlY2ssCiAgICAgICAgIFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0LAorICAg
ICAgICBWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyLAogICAgICAgICBWaWV3cG9ydEF0dHJpYnV0ZXMs
CiAgICAgICAgIFZpc2l0ZWRMaW5rU3RvcmUsCiAgICAgICAgIFdlYlJlc291cmNlTG9hZFN0YXRp
c3RpY3NNYW5hZ2VyLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvQVBJL2MvV0tC
YXNlLmggYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9BUEkvYy9XS0Jhc2UuaAppbmRleCA4YzlkYzkw
ODdjZGFmYzJhY2ZkYTE2NzYxYjdlYTdmOGVkNzQzMjlmLi4xZWIzMDZlZjFmZjg4NDYyNTg4YTJi
YjQ2YTg0ZjYzNjVmYjVkYmI4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9BUEkv
Yy9XS0Jhc2UuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9BUEkvYy9XS0Jhc2UuaApAQCAt
MTIzLDYgKzEyMyw3IEBAIHR5cGVkZWYgY29uc3Qgc3RydWN0IE9wYXF1ZVdLT3BlblBhbmVsUmVz
dWx0TGlzdGVuZXIqIFdLT3BlblBhbmVsUmVzdWx0TGlzdGVuZXJSCiB0eXBlZGVmIGNvbnN0IHN0
cnVjdCBPcGFxdWVXS1BhZ2UqIFdLUGFnZVJlZjsKIHR5cGVkZWYgY29uc3Qgc3RydWN0IE9wYXF1
ZVdLUGFnZUNvbmZpZ3VyYXRpb24qIFdLUGFnZUNvbmZpZ3VyYXRpb25SZWY7CiB0eXBlZGVmIGNv
bnN0IHN0cnVjdCBPcGFxdWVXS1BhZ2VHcm91cCogV0tQYWdlR3JvdXBSZWY7Cit0eXBlZGVmIGNv
bnN0IHN0cnVjdCBPcGFxdWVXS1ZpZGVvRnVsbHNjcmVlbk1hbmFnZXIqIFdLVmlkZW9GdWxsc2Ny
ZWVuTWFuYWdlclJlZjsKIHR5cGVkZWYgY29uc3Qgc3RydWN0IE9wYXF1ZVdLUHJlZmVyZW5jZXMq
IFdLUHJlZmVyZW5jZXNSZWY7CiB0eXBlZGVmIGNvbnN0IHN0cnVjdCBPcGFxdWVXS1Byb3RlY3Rp
b25TcGFjZSogV0tQcm90ZWN0aW9uU3BhY2VSZWY7CiB0eXBlZGVmIGNvbnN0IHN0cnVjdCBPcGFx
dWVXS1BhZ2VSdW5CZWZvcmVVbmxvYWRDb25maXJtUGFuZWxSZXN1bHRMaXN0ZW5lciogV0tQYWdl
UnVuQmVmb3JlVW5sb2FkQ29uZmlybVBhbmVsUmVzdWx0TGlzdGVuZXJSZWY7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQy9XS0FQSUNhc3QuaCBiL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL0FQSS9DL1dLQVBJQ2FzdC5oCmluZGV4IDQ4YjY2MWYzNDk0N2EzMTI0MDFi
ZjZhMjA5ZGRmM2FhNWNmNDJhZDguLmY1NTIwYjg5ODllOTU1N2Y3M2EyOWUwYWYwZDE0MGRmMzdk
NWYxNzMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9DL1dLQVBJQ2Fz
dC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9DL1dLQVBJQ2FzdC5oCkBAIC04
MSw2ICs4MSw3IEBAIGNsYXNzIEdlb2xvY2F0aW9uUGVybWlzc2lvblJlcXVlc3Q7CiBjbGFzcyBO
b3RpZmljYXRpb25QZXJtaXNzaW9uUmVxdWVzdDsKIGNsYXNzIFVzZXJNZWRpYVBlcm1pc3Npb25D
aGVja1Byb3h5OwogY2xhc3MgVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RQcm94eTsKK2NsYXNz
IFZpZGVvRnVsbHNjcmVlbk1hbmFnZXJQcm94eTsKIGNsYXNzIFdlYkJhY2tGb3J3YXJkTGlzdDsK
IGNsYXNzIFdlYkJhY2tGb3J3YXJkTGlzdEl0ZW07CiBjbGFzcyBXZWJDb2xvclBpY2tlclJlc3Vs
dExpc3RlbmVyUHJveHk7CkBAIC0xNjcsOCArMTY4LDkgQEAgV0tfQUREX0FQSV9NQVBQSU5HKFdL
VXNlckNvbnRlbnRGaWx0ZXJSZWYsIEFQSTo6Q29udGVudFJ1bGVMaXN0KQogV0tfQUREX0FQSV9N
QVBQSU5HKFdLVXNlck1lZGlhUGVybWlzc2lvbkNoZWNrUmVmLCBVc2VyTWVkaWFQZXJtaXNzaW9u
Q2hlY2tQcm94eSkKIFdLX0FERF9BUElfTUFQUElORyhXS1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1
ZXN0UmVmLCBVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdFByb3h5KQogV0tfQUREX0FQSV9NQVBQ
SU5HKFdLVXNlclNjcmlwdFJlZiwgQVBJOjpVc2VyU2NyaXB0KQorV0tfQUREX0FQSV9NQVBQSU5H
KFdLVmlkZW9GdWxsc2NyZWVuTWFuYWdlclJlZiwgVmlkZW9GdWxsc2NyZWVuTWFuYWdlclByb3h5
KQogV0tfQUREX0FQSV9NQVBQSU5HKFdLVmlld3BvcnRBdHRyaWJ1dGVzUmVmLCBXZWJWaWV3cG9y
dEF0dHJpYnV0ZXMpCi1XS19BRERfQVBJX01BUFBJTkcoV0tXZWJzaXRlRGF0YVN0b3JlUmVmLCBX
ZWJLaXQ6OldlYnNpdGVEYXRhU3RvcmUpCitXS19BRERfQVBJX01BUFBJTkcoV0tXZWJzaXRlRGF0
YVN0b3JlUmVmLCBXZWJzaXRlRGF0YVN0b3JlKQogV0tfQUREX0FQSV9NQVBQSU5HKFdLV2Vic2l0
ZURhdGFTdG9yZUNvbmZpZ3VyYXRpb25SZWYsIFdlYktpdDo6V2Vic2l0ZURhdGFTdG9yZUNvbmZp
Z3VyYXRpb24pCiBXS19BRERfQVBJX01BUFBJTkcoV0tXZWJzaXRlUG9saWNpZXNSZWYsIEFQSTo6
V2Vic2l0ZVBvbGljaWVzKQogV0tfQUREX0FQSV9NQVBQSU5HKFdLV2luZG93RmVhdHVyZXNSZWYs
IEFQSTo6V2luZG93RmVhdHVyZXMpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9BUEkvQy9XS1BhZ2VJbmplY3RlZEJ1bmRsZUNsaWVudC5oIGIvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvQVBJL0MvV0tQYWdlSW5qZWN0ZWRCdW5kbGVDbGllbnQuaAppbmRleCBlZGJiZjU4Y2Nj
NjU5NzQyYjliMWI0NGI1MzY1MjU3YTMwMjlkMTllLi45MTZjYTEwYTcxZjJhZDYwOGI1Yzc2MDEx
N2Q1Nzk5ZWZlMjNjMWM0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkv
Qy9XS1BhZ2VJbmplY3RlZEJ1bmRsZUNsaWVudC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL0FQSS9DL1dLUGFnZUluamVjdGVkQnVuZGxlQ2xpZW50LmgKQEAgLTMwLDcgKzMwLDYgQEAK
IAogdHlwZWRlZiB2b2lkICgqV0tQYWdlRGlkUmVjZWl2ZU1lc3NhZ2VGcm9tSW5qZWN0ZWRCdW5k
bGVDYWxsYmFjaykoV0tQYWdlUmVmIHBhZ2UsIFdLU3RyaW5nUmVmIG1lc3NhZ2VOYW1lLCBXS1R5
cGVSZWYgbWVzc2FnZUJvZHksIGNvbnN0IHZvaWQgKmNsaWVudEluZm8pOwogdHlwZWRlZiB2b2lk
ICgqV0tQYWdlRGlkUmVjZWl2ZVN5bmNocm9ub3VzTWVzc2FnZUZyb21JbmplY3RlZEJ1bmRsZUNh
bGxiYWNrKShXS1BhZ2VSZWYgcGFnZSwgV0tTdHJpbmdSZWYgbWVzc2FnZU5hbWUsIFdLVHlwZVJl
ZiBtZXNzYWdlQm9keSwgV0tUeXBlUmVmKiByZXR1cm5EYXRhLCBjb25zdCB2b2lkICpjbGllbnRJ
bmZvKTsKLXR5cGVkZWYgV0tUeXBlUmVmICgqV0tQYWdlR2V0SW5qZWN0ZWRCdW5kbGVJbml0aWFs
aXphdGlvblVzZXJEYXRhQ2FsbGJhY2spKFdLUGFnZVJlZiBwYWdlLCBjb25zdCB2b2lkICpjbGll
bnRJbmZvKTsKIHR5cGVkZWYgdm9pZCAoKldLUGFnZURpZFJlY2VpdmVTeW5jaHJvbm91c01lc3Nh
Z2VGcm9tSW5qZWN0ZWRCdW5kbGVXaXRoTGlzdGVuZXJDYWxsYmFjaykoV0tQYWdlUmVmIHBhZ2Us
IFdLU3RyaW5nUmVmIG1lc3NhZ2VOYW1lLCBXS1R5cGVSZWYgbWVzc2FnZUJvZHksIFdLTWVzc2Fn
ZUxpc3RlbmVyUmVmIGxpc3RlbmVyLCBjb25zdCB2b2lkKiBjbGllbnRJbmZvKTsKIAogdHlwZWRl
ZiBzdHJ1Y3QgV0tQYWdlSW5qZWN0ZWRCdW5kbGVDbGllbnRCYXNlIHsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9DL1dLVmlkZW9GdWxsc2NyZWVuTWFuYWdlci5jcHAg
Yi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQy9XS1ZpZGVvRnVsbHNjcmVlbk1hbmFnZXIu
Y3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLmZmZGZmZDQwMGQ5MmVlMmMxNzhhMDgxMzI2MjkzNTg4YzY2ZGIzYzIK
LS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQy9XS1ZpZGVv
RnVsbHNjcmVlbk1hbmFnZXIuY3BwCkBAIC0wLDAgKzEsMzUgQEAKKy8qCisgKiBDb3B5cmlnaHQg
KEMpIDIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJp
YnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91
dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxv
d2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNv
dXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAq
IDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJv
dmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9v
ciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAq
IFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJV
VE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMs
IElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElF
UyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVS
UE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMg
Q09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJ
REVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMg
KElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJ
VFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9S
IEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhF
T1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJ
VFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJ
TkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFE
VklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5j
bHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiV0tWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyLmgiCisK
KyNpbmNsdWRlICJXS0FQSUNhc3QuaCIKKyNpbmNsdWRlICJXZWJLaXQvVmlkZW9GdWxsc2NyZWVu
TWFuYWdlclByb3h5LmgiCisKK3ZvaWQgV0tWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyU2V0SW5qZWN0
ZWRCdW5kbGVDbGllbnQoV0tWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyUmVmIHZpZGVvRnVsbHNjcmVl
bk1hbmFnZXJSZWYsIGNvbnN0IFdLVmlkZW9GdWxsc2NyZWVuTWFuYWdlckluamVjdGVkQnVuZGxl
Q2xpZW50QmFzZSogd2tDbGllbnQpCit7CisgICAgV2ViS2l0Ojp0b0ltcGwodmlkZW9GdWxsc2Ny
ZWVuTWFuYWdlclJlZiktPnNldEluamVjdGVkQnVuZGxlQ2xpZW50KHdrQ2xpZW50KTsKK30KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9DL1dLVmlkZW9GdWxsc2NyZWVu
TWFuYWdlci5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0MvV0tWaWRlb0Z1bGxzY3Jl
ZW5NYW5hZ2VyLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYjAwMDAwNDUyMDhmZDNjMzUwYTM4Mzk1MDBiMDViOTYw
MzIyZDYyYQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9D
L1dLVmlkZW9GdWxsc2NyZWVuTWFuYWdlci5oCkBAIC0wLDAgKzEsMzggQEAKKy8qCisgKiBDb3B5
cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJl
ZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Ig
d2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhl
IGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25z
IG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0
aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9u
IGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgor
ICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENP
TlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJB
TlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FS
UkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgor
ICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBP
UiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNU
LCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERB
TUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICog
U1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJ
VFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBB
TlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBM
SUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAq
IEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVO
IElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLwor
CisjcHJhZ21hIG9uY2UKKworI2luY2x1ZGUgPFdlYktpdC9XS1ZpZGVvRnVsbHNjcmVlbk1hbmFn
ZXJJbmplY3RlZEJ1bmRsZUNsaWVudC5oPgorCisjaWZkZWYgX19jcGx1c3BsdXMKK2V4dGVybiAi
QyIgeworI2VuZGlmCisKK1dLX0VYUE9SVCB2b2lkIFdLVmlkZW9GdWxsc2NyZWVuTWFuYWdlclNl
dEluamVjdGVkQnVuZGxlQ2xpZW50KFdLVmlkZW9GdWxsc2NyZWVuTWFuYWdlclJlZiwgY29uc3Qg
V0tWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VySW5qZWN0ZWRCdW5kbGVDbGllbnRCYXNlKiB3a0NsaWVu
dCk7CisKKyNpZmRlZiBfX2NwbHVzcGx1cworfQorI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9BUEkvQy9XS1ZpZGVvRnVsbHNjcmVlbk1hbmFnZXJJbmplY3RlZEJ1
bmRsZUNsaWVudC5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0MvV0tWaWRlb0Z1bGxz
Y3JlZW5NYW5hZ2VySW5qZWN0ZWRCdW5kbGVDbGllbnQuaApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5kYjcyNmRlOTVm
NDFlNWQyYzRmODNhNGQzMzRhYWVmMGNiZjEzNzUwCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvQVBJL0MvV0tWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VySW5qZWN0ZWRC
dW5kbGVDbGllbnQuaApAQCAtMCwwICsxLDc4IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIw
IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBh
bmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1v
ZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29u
ZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29k
ZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRp
c3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHly
aWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIg
bWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNP
RlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBB
UyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVS
Q0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJF
IERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJV
VE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwg
U1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09P
RFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVT
UworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBM
SUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBU
T1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFO
WSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9G
CisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNl
CisKKyNpbmNsdWRlIDxXZWJLaXQvV0tCYXNlLmg+CisjaW5jbHVkZSA8V2ViS2l0L1dLR2VvbWV0
cnkuaD4KKworI2lmZGVmIF9fY3BsdXNwbHVzCitleHRlcm4gIkMiIHsKKyNlbmRpZgorCitlbnVt
IHsKKyAgICBXS1ZpZGVvRnVsbHNjcmVlbk1vZGVOb25lID0gMCwKKyAgICBXS1ZpZGVvRnVsbHNj
cmVlbk1vZGVTdGFuZGFyZCA9IDEgPDwgMCwKKyAgICBXS1ZpZGVvRnVsbHNjcmVlbk1vZGVQaWN0
dXJlSW5QaWN0dXJlID0gMSA8PCAxLAorfTsKK3R5cGVkZWYgdWludDMyX3QgV0tWaWRlb0Z1bGxz
Y3JlZW5Nb2RlOworCit0eXBlZGVmIHZvaWQgKCpXS1ZpZGVvRnVsbHNjcmVlbk1hbmFnZXJTZXRI
YXNWaWRlbykoV0tWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyUmVmIG1hbmFnZXIsIHVpbnQ2NF90IGNv
bnRleHRJZCwgYm9vbCBoYXNWaWRlbyk7Cit0eXBlZGVmIHZvaWQgKCpXS1ZpZGVvRnVsbHNjcmVl
bk1hbmFnZXJTZXRWaWRlb0RpbWVuc2lvbnMpKFdLVmlkZW9GdWxsc2NyZWVuTWFuYWdlclJlZiBt
YW5hZ2VyLCB1aW50NjRfdCBjb250ZXh0SWQsIFdLU2l6ZSB2aWRlb0RpbWVuc2lvbnMpOwordHlw
ZWRlZiB2b2lkICgqV0tWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyU2V0dXBGdWxsc2NyZWVuV2l0aElE
KShXS1ZpZGVvRnVsbHNjcmVlbk1hbmFnZXJSZWYgbWFuYWdlciwgdWludDY0X3QgY29udGV4dElk
LCB1aW50MzJfdCB2aWRlb0xheWVySUQsIFdLUmVjdCBpbml0aWFsUmVjdCwgZmxvYXQgaG9zdGlu
Z1NjYWxlRmFjdG9yLCBXS1ZpZGVvRnVsbHNjcmVlbk1vZGUgdmlkZW9GdWxsc2NyZWVuTW9kZSwg
Ym9vbCBhbGxvd3NQaWN0dXJlSW5QaWN0dXJlLCBib29sIHN0YW5kYnkpOwordHlwZWRlZiB2b2lk
ICgqV0tWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyRW50ZXJGdWxsc2NyZWVuKShXS1ZpZGVvRnVsbHNj
cmVlbk1hbmFnZXJSZWYgbWFuYWdlciwgdWludDY0X3QgY29udGV4dElkKTsKK3R5cGVkZWYgdm9p
ZCAoKldLVmlkZW9GdWxsc2NyZWVuTWFuYWdlckV4aXRGdWxsc2NyZWVuKShXS1ZpZGVvRnVsbHNj
cmVlbk1hbmFnZXJSZWYgbWFuYWdlciwgdWludDY0X3QgY29udGV4dElkLCBXS1JlY3QgZmluYWxS
ZWN0KTsKK3R5cGVkZWYgdm9pZCAoKldLVmlkZW9GdWxsc2NyZWVuTWFuYWdlclNldElubGluZVJl
Y3QpKFdLVmlkZW9GdWxsc2NyZWVuTWFuYWdlclJlZiBtYW5hZ2VyLCB1aW50NjRfdCBjb250ZXh0
SWQsIFdLUmVjdCBpbmxpbmVSZWN0LCBib29sIHZpc2libGUpOwordHlwZWRlZiB2b2lkICgqV0tW
aWRlb0Z1bGxzY3JlZW5NYW5hZ2VyU2V0SGFzVmlkZW9Db250ZW50TGF5ZXIpKFdLVmlkZW9GdWxs
c2NyZWVuTWFuYWdlclJlZiBtYW5hZ2VyLCB1aW50NjRfdCBjb250ZXh0SWQsIGJvb2wgdmFsdWUp
OwordHlwZWRlZiB2b2lkICgqV0tWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyQ2xlYW51cEZ1bGxzY3Jl
ZW4pKFdLVmlkZW9GdWxsc2NyZWVuTWFuYWdlclJlZiBtYW5hZ2VyLCB1aW50NjRfdCBjb250ZXh0
SWQpOwordHlwZWRlZiB2b2lkICgqV0tWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyUHJlcGFyZWRUb1Jl
dHVyblRvSW5saW5lKShXS1ZpZGVvRnVsbHNjcmVlbk1hbmFnZXJSZWYgbWFuYWdlciwgdWludDY0
X3QgY29udGV4dElkLCBib29sIHZpc2libGUsIFdLUmVjdCBpbmxpbmVSZWN0KTsKK3R5cGVkZWYg
dm9pZCAoKldLVmlkZW9GdWxsc2NyZWVuTWFuYWdlclByZXBhcmVkVG9FeGl0RnVsbHNjcmVlbiko
V0tWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyUmVmIG1hbmFnZXIsIHVpbnQ2NF90IGNvbnRleHRJZCk7
Cit0eXBlZGVmIHZvaWQgKCpXS1ZpZGVvRnVsbHNjcmVlbk1hbmFnZXJFeGl0RnVsbHNjcmVlbldp
dGhvdXRBbmltYXRpb25Ub01vZGUpKFdLVmlkZW9GdWxsc2NyZWVuTWFuYWdlclJlZiBwYWdlLCB1
aW50NjRfdCBjb250ZXh0SWQsIFdLVmlkZW9GdWxsc2NyZWVuTW9kZSB2aWRlb0Z1bGxzY3JlZW5N
b2RlKTsKKwordHlwZWRlZiBzdHJ1Y3QgV0tWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VySW5qZWN0ZWRC
dW5kbGVDbGllbnRCYXNlIHsKKyAgICBpbnQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmVyc2lvbjsKKyAgICBjb25zdCB2b2lkICog
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xpZW50
SW5mbzsKK30gV0tWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VySW5qZWN0ZWRCdW5kbGVDbGllbnRCYXNl
OworCit0eXBlZGVmIHN0cnVjdCBXS1ZpZGVvRnVsbHNjcmVlbk1hbmFnZXJJbmplY3RlZEJ1bmRs
ZUNsaWVudFYwIHsKKyAgICBXS1ZpZGVvRnVsbHNjcmVlbk1hbmFnZXJJbmplY3RlZEJ1bmRsZUNs
aWVudEJhc2UgICAgICAgICAgICAgICAgYmFzZTsKKworICAgIC8vIFZlcnNpb24gMC4KKyAgICBX
S1ZpZGVvRnVsbHNjcmVlbk1hbmFnZXJTZXRIYXNWaWRlbyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgc2V0SGFzVmlkZW87CisgICAgV0tWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyU2V0VmlkZW9E
aW1lbnNpb25zICAgICAgICAgICAgICAgICAgICAgIHNldFZpZGVvRGltZW5zaW9uczsKKyAgICBX
S1ZpZGVvRnVsbHNjcmVlbk1hbmFnZXJTZXR1cEZ1bGxzY3JlZW5XaXRoSUQgICAgICAgICAgICAg
ICAgICAgc2V0dXBGdWxsc2NyZWVuV2l0aElEOworICAgIFdLVmlkZW9GdWxsc2NyZWVuTWFuYWdl
ckVudGVyRnVsbHNjcmVlbiAgICAgICAgICAgICAgICAgICAgICAgICBlbnRlckZ1bGxzY3JlZW47
CisgICAgV0tWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyRXhpdEZ1bGxzY3JlZW4gICAgICAgICAgICAg
ICAgICAgICAgICAgIGV4aXRGdWxsc2NyZWVuOworICAgIFdLVmlkZW9GdWxsc2NyZWVuTWFuYWdl
clNldElubGluZVJlY3QgICAgICAgICAgICAgICAgICAgICAgICAgICBzZXRJbmxpbmVSZWN0Owor
ICAgIFdLVmlkZW9GdWxsc2NyZWVuTWFuYWdlclNldEhhc1ZpZGVvQ29udGVudExheWVyICAgICAg
ICAgICAgICAgICBzZXRIYXNWaWRlb0NvbnRlbnRMYXllcjsKKyAgICBXS1ZpZGVvRnVsbHNjcmVl
bk1hbmFnZXJDbGVhbnVwRnVsbHNjcmVlbiAgICAgICAgICAgICAgICAgICAgICAgY2xlYW51cEZ1
bGxzY3JlZW47CisgICAgV0tWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyUHJlcGFyZWRUb1JldHVyblRv
SW5saW5lICAgICAgICAgICAgICAgIHByZXBhcmVkVG9SZXR1cm5Ub0lubGluZTsKKyAgICBXS1Zp
ZGVvRnVsbHNjcmVlbk1hbmFnZXJQcmVwYXJlZFRvRXhpdEZ1bGxzY3JlZW4gICAgICAgICAgICAg
ICAgcHJlcGFyZWRUb0V4aXRGdWxsc2NyZWVuOworICAgIFdLVmlkZW9GdWxsc2NyZWVuTWFuYWdl
ckV4aXRGdWxsc2NyZWVuV2l0aG91dEFuaW1hdGlvblRvTW9kZSAgICBleGl0RnVsbHNjcmVlbldp
dGhvdXRBbmltYXRpb25Ub01vZGU7Cit9IFdLVmlkZW9GdWxsc2NyZWVuTWFuYWdlckluamVjdGVk
QnVuZGxlQ2xpZW50VjA7CisKKyNpZmRlZiBfX2NwbHVzcGx1cworfQorI2VuZGlmCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3Lm1tIGIvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlldy5tbQppbmRleCAyZDNhNzkw
NDM0NDdlN2RmZWI0YTU4ZDM2OTViNTVhNWQ5MWZhYTY1Li44ODczMDlhZmIzOTdhODllNmUxNTVl
MmU0NTBiYWUyZGQwNDg3MDYyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9B
UEkvQ29jb2EvV0tXZWJWaWV3Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9D
b2NvYS9XS1dlYlZpZXcubW0KQEAgLTEzMjcsNiArMTMyNywxMyBAQCAtIChOYWtlZFB0cjxXZWJL
aXQ6OldlYlBhZ2VQcm94eT4pX3BhZ2UKICAgICByZXR1cm4gX3BhZ2UuZ2V0KCk7CiB9CiAKKyNp
ZiBFTkFCTEUoVklERU9fUFJFU0VOVEFUSU9OX01PREUpCistIChXS1ZpZGVvRnVsbHNjcmVlbk1h
bmFnZXJSZWYpX3ZpZGVvRnVsbHNjcmVlbk1hbmFnZXJGb3JUZXN0aW5nCit7CisgICAgcmV0dXJu
IHRvQVBJKF9wYWdlLT52aWRlb0Z1bGxzY3JlZW5NYW5hZ2VyKCkpOworfQorI2VuZGlmCisKIC0g
KGlkIDxXS1VSTFNjaGVtZUhhbmRsZXI+KXVybFNjaGVtZUhhbmRsZXJGb3JVUkxTY2hlbWU6KE5T
U3RyaW5nICopdXJsU2NoZW1lCiB7CiAgICAgYXV0byogaGFuZGxlciA9IHN0YXRpY19jYXN0PFdl
YktpdDo6V2ViVVJMU2NoZW1lSGFuZGxlckNvY29hKj4oX3BhZ2UtPnVybFNjaGVtZUhhbmRsZXJG
b3JTY2hlbWUodXJsU2NoZW1lKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9BUEkvQ29jb2EvV0tXZWJWaWV3SW50ZXJuYWwuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L0FQSS9Db2NvYS9XS1dlYlZpZXdJbnRlcm5hbC5oCmluZGV4IDg0MGUzYjkyYmQxZTJhNTgwMTk4
ZmRhOTUzMWQ2NDM0MjA4YTkyNTQuLjQ3MTgzNDMxYTVkNGUxN2RmZmQ4YTMyZDQxYWFjZGI1ZDA4
NTMzZDEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dl
YlZpZXdJbnRlcm5hbC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9X
S1dlYlZpZXdJbnRlcm5hbC5oCkBAIC0yNjEsNiArMjYxLDcgQEAgY2xhc3MgVmlld0dlc3R1cmVD
b250cm9sbGVyOwogCiAtIChXS1BhZ2VSZWYpX3BhZ2VGb3JUZXN0aW5nOwogLSAoTmFrZWRQdHI8
V2ViS2l0OjpXZWJQYWdlUHJveHk+KV9wYWdlOworLSAoV0tWaWRlb0Z1bGxzY3JlZW5NYW5hZ2Vy
UmVmKV92aWRlb0Z1bGxzY3JlZW5NYW5hZ2VyRm9yVGVzdGluZzsKIAogQGVuZAogCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9WaWRlb0Z1bGxzY3JlZW5NYW5hZ2Vy
SW5qZWN0ZWRCdW5kbGVDbGllbnQuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2Ev
VmlkZW9GdWxsc2NyZWVuTWFuYWdlckluamVjdGVkQnVuZGxlQ2xpZW50LmNwcApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li4wOGE1NDFiMjM5MzRhN2E4NmNmOGQ1M2FkMmVjZTA3YzJlNjU3M2UzCi0tLSAvZGV2L251bGwK
KysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvVmlkZW9GdWxsc2NyZWVuTWFuYWdl
ckluamVjdGVkQnVuZGxlQ2xpZW50LmNwcApAQCAtMCwwICsxLDEwNyBAQAorLyoKKyAqIENvcHly
aWdodCAoQykgMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVk
aXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3
aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUg
Zm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMg
b2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
LgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24g
YW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisg
KgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09O
VFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFO
VElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJS
QU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisg
KiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9S
IElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1Qs
IElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFN
QUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBT
VUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklU
UzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFO
WSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJ
QUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICog
QVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4g
SUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisK
KyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VySW5q
ZWN0ZWRCdW5kbGVDbGllbnQuaCIKKworI2lmIEVOQUJMRShWSURFT19QUkVTRU5UQVRJT05fTU9E
RSkKKworI2luY2x1ZGUgPFdlYkNvcmUvRmxvYXRTaXplLmg+CisjaW5jbHVkZSA8V2ViQ29yZS9J
bnRSZWN0Lmg+CisKK25hbWVzcGFjZSBXZWJLaXQgewordXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7
CisKK3ZvaWQgVmlkZW9GdWxsc2NyZWVuTWFuYWdlckluamVjdGVkQnVuZGxlQ2xpZW50OjpzZXRI
YXNWaWRlbyhWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyUHJveHkqLCB1aW50NjRfdCBjb250ZXh0SWQs
IGJvb2wgaGFzVmlkZW8pCit7CisgICAgaWYgKCFtX2NsaWVudC5zZXRIYXNWaWRlbykKKyAgICAg
ICAgcmV0dXJuOworfQorCit2b2lkIFZpZGVvRnVsbHNjcmVlbk1hbmFnZXJJbmplY3RlZEJ1bmRs
ZUNsaWVudDo6c2V0VmlkZW9EaW1lbnNpb25zKFZpZGVvRnVsbHNjcmVlbk1hbmFnZXJQcm94eSos
IHVpbnQ2NF90IGNvbnRleHRJZCwgV2ViQ29yZTo6RmxvYXRTaXplIHZpZGVvRGltZW5zaW9ucykK
K3sKKyAgICBpZiAoIW1fY2xpZW50LnNldFZpZGVvRGltZW5zaW9ucykKKyAgICAgICAgcmV0dXJu
OworfQorCit2b2lkIFZpZGVvRnVsbHNjcmVlbk1hbmFnZXJJbmplY3RlZEJ1bmRsZUNsaWVudDo6
c2V0dXBGdWxsc2NyZWVuV2l0aElEKFZpZGVvRnVsbHNjcmVlbk1hbmFnZXJQcm94eSosIHVpbnQ2
NF90IGNvbnRleHRJZCwgdWludDMyX3QgdmlkZW9MYXllcklELCBXZWJDb3JlOjpJbnRSZWN0IGlu
aXRpYWxSZWN0LCBmbG9hdCBob3N0aW5nU2NhbGVGYWN0b3IsIFdlYkNvcmU6OkhUTUxNZWRpYUVs
ZW1lbnRFbnVtczo6VmlkZW9GdWxsc2NyZWVuTW9kZSwgYm9vbCBhbGxvd3NQaWN0dXJlSW5QaWN0
dXJlLCBib29sIHN0YW5kYnkpCit7CisgICAgaWYgKCFtX2NsaWVudC5zZXR1cEZ1bGxzY3JlZW5X
aXRoSUQpCisgICAgICAgIHJldHVybjsKK30KKwordm9pZCBWaWRlb0Z1bGxzY3JlZW5NYW5hZ2Vy
SW5qZWN0ZWRCdW5kbGVDbGllbnQ6OmVudGVyRnVsbHNjcmVlbihWaWRlb0Z1bGxzY3JlZW5NYW5h
Z2VyUHJveHkqLCB1aW50NjRfdCBjb250ZXh0SWQpCit7CisgICAgaWYgKCFtX2NsaWVudC5lbnRl
ckZ1bGxzY3JlZW4pCisgICAgICAgIHJldHVybjsKK30KKwordm9pZCBWaWRlb0Z1bGxzY3JlZW5N
YW5hZ2VySW5qZWN0ZWRCdW5kbGVDbGllbnQ6OmV4aXRGdWxsc2NyZWVuKFZpZGVvRnVsbHNjcmVl
bk1hbmFnZXJQcm94eSosIHVpbnQ2NF90IGNvbnRleHRJZCwgV2ViQ29yZTo6SW50UmVjdCBmaW5h
bFJlY3QpCit7CisgICAgaWYgKCFtX2NsaWVudC5leGl0RnVsbHNjcmVlbikKKyAgICAgICAgcmV0
dXJuOworfQorCit2b2lkIFZpZGVvRnVsbHNjcmVlbk1hbmFnZXJJbmplY3RlZEJ1bmRsZUNsaWVu
dDo6c2V0SW5saW5lUmVjdChWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyUHJveHkqLCB1aW50NjRfdCBj
b250ZXh0SWQsIFdlYkNvcmU6OkludFJlY3QgaW5saW5lUmVjdCwgYm9vbCB2aXNpYmxlKQorewor
ICAgIGlmICghbV9jbGllbnQuc2V0SW5saW5lUmVjdCkKKyAgICAgICAgcmV0dXJuOworfQorCit2
b2lkIFZpZGVvRnVsbHNjcmVlbk1hbmFnZXJJbmplY3RlZEJ1bmRsZUNsaWVudDo6c2V0SGFzVmlk
ZW9Db250ZW50TGF5ZXIoVmlkZW9GdWxsc2NyZWVuTWFuYWdlclByb3h5KiwgdWludDY0X3QgY29u
dGV4dElkLCBib29sIHZhbHVlKQoreworICAgIGlmICghbV9jbGllbnQuc2V0SGFzVmlkZW9Db250
ZW50TGF5ZXIpCisgICAgICAgIHJldHVybjsKK30KKwordm9pZCBWaWRlb0Z1bGxzY3JlZW5NYW5h
Z2VySW5qZWN0ZWRCdW5kbGVDbGllbnQ6OmNsZWFudXBGdWxsc2NyZWVuKFZpZGVvRnVsbHNjcmVl
bk1hbmFnZXJQcm94eSosIHVpbnQ2NF90IGNvbnRleHRJZCkKK3sKKyAgICBpZiAoIW1fY2xpZW50
LmNsZWFudXBGdWxsc2NyZWVuKQorICAgICAgICByZXR1cm47Cit9CisKK3ZvaWQgVmlkZW9GdWxs
c2NyZWVuTWFuYWdlckluamVjdGVkQnVuZGxlQ2xpZW50OjpwcmVwYXJlZFRvUmV0dXJuVG9Jbmxp
bmUoVmlkZW9GdWxsc2NyZWVuTWFuYWdlclByb3h5KiwgdWludDY0X3QgY29udGV4dElkLCBib29s
IHZpc2libGUsIFdlYkNvcmU6OkludFJlY3QgaW5saW5lUmVjdCkKK3sKKyAgICBpZiAoIW1fY2xp
ZW50LnByZXBhcmVkVG9SZXR1cm5Ub0lubGluZSkKKyAgICAgICAgcmV0dXJuOworfQorCit2b2lk
IFZpZGVvRnVsbHNjcmVlbk1hbmFnZXJJbmplY3RlZEJ1bmRsZUNsaWVudDo6cHJlcGFyZWRUb0V4
aXRGdWxsc2NyZWVuKFZpZGVvRnVsbHNjcmVlbk1hbmFnZXJQcm94eSosIHVpbnQ2NF90IGNvbnRl
eHRJZCkKK3sKKyAgICBpZiAoIW1fY2xpZW50LnByZXBhcmVkVG9FeGl0RnVsbHNjcmVlbikKKyAg
ICAgICAgcmV0dXJuOworfQorCisjaWYgUExBVEZPUk0oTUFDKSAmJiBFTkFCTEUoVklERU9fUFJF
U0VOVEFUSU9OX01PREUpCit2b2lkIFZpZGVvRnVsbHNjcmVlbk1hbmFnZXJJbmplY3RlZEJ1bmRs
ZUNsaWVudDo6ZXhpdEZ1bGxzY3JlZW5XaXRob3V0QW5pbWF0aW9uVG9Nb2RlKFZpZGVvRnVsbHNj
cmVlbk1hbmFnZXJQcm94eSosIHVpbnQ2NF90IGNvbnRleHRJZCwgV2ViQ29yZTo6SFRNTE1lZGlh
RWxlbWVudEVudW1zOjpWaWRlb0Z1bGxzY3JlZW5Nb2RlKQoreworICAgIGlmICghbV9jbGllbnQu
ZXhpdEZ1bGxzY3JlZW5XaXRob3V0QW5pbWF0aW9uVG9Nb2RlKQorICAgICAgICByZXR1cm47Cit9
CisjZW5kaWYKKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CisKKyNlbmRpZiAvLyBFTkFCTEUoVklE
RU9fUFJFU0VOVEFUSU9OX01PREUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9Db2NvYS9WaWRlb0Z1bGxzY3JlZW5NYW5hZ2VySW5qZWN0ZWRCdW5kbGVDbGllbnQuaCBiL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1ZpZGVvRnVsbHNjcmVlbk1hbmFnZXJJbmplY3Rl
ZEJ1bmRsZUNsaWVudC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmU1M2QxMGFhMTA1MmNiM2RjMTY1N2NiNmNlMWYw
YjQ2Yjk3MjU5YWMKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9D
b2NvYS9WaWRlb0Z1bGxzY3JlZW5NYW5hZ2VySW5qZWN0ZWRCdW5kbGVDbGllbnQuaApAQCAtMCww
ICsxLDcwIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0
cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQg
YmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1p
dHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoK
KyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJv
dmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5
IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRo
ZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdp
dGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZ
IEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVY
UFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRO
RVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVW
RU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZP
UiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBP
UgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1Mg
T0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBI
T1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4K
KyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElH
RU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0Ug
T0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkg
T0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNpZiBFTkFCTEUoVklERU9f
UFJFU0VOVEFUSU9OX01PREUpCisKKyNpbmNsdWRlICJBUElDbGllbnQuaCIKKyNpbmNsdWRlICJX
S1ZpZGVvRnVsbHNjcmVlbk1hbmFnZXJJbmplY3RlZEJ1bmRsZUNsaWVudC5oIgorI2luY2x1ZGUg
PFdlYkNvcmUvSFRNTE1lZGlhRWxlbWVudEVudW1zLmg+CisjaW5jbHVkZSA8d3RmL0ZvcndhcmQu
aD4KKworbmFtZXNwYWNlIEFQSSB7Cit0ZW1wbGF0ZTw+IHN0cnVjdCBDbGllbnRUcmFpdHM8V0tW
aWRlb0Z1bGxzY3JlZW5NYW5hZ2VySW5qZWN0ZWRCdW5kbGVDbGllbnRCYXNlPiB7CisgICAgdHlw
ZWRlZiBzdGQ6OnR1cGxlPFdLVmlkZW9GdWxsc2NyZWVuTWFuYWdlckluamVjdGVkQnVuZGxlQ2xp
ZW50VjA+IFZlcnNpb25zOworfTsKK30KKworbmFtZXNwYWNlIFdlYkNvcmUgeworY2xhc3MgRmxv
YXRTaXplOworY2xhc3MgSW50UmVjdDsKK30KKworbmFtZXNwYWNlIFdlYktpdCB7CisKK2NsYXNz
IFZpZGVvRnVsbHNjcmVlbk1hbmFnZXJQcm94eTsKKworY2xhc3MgVmlkZW9GdWxsc2NyZWVuTWFu
YWdlckluamVjdGVkQnVuZGxlQ2xpZW50IDogcHVibGljIEFQSTo6Q2xpZW50PFdLVmlkZW9GdWxs
c2NyZWVuTWFuYWdlckluamVjdGVkQnVuZGxlQ2xpZW50QmFzZT4geworICAgIFdURl9NQUtFX0ZB
U1RfQUxMT0NBVEVEOworcHVibGljOgorICAgIHZvaWQgc2V0SGFzVmlkZW8oVmlkZW9GdWxsc2Ny
ZWVuTWFuYWdlclByb3h5KiwgdWludDY0X3QgY29udGV4dElkLCBib29sIGhhc1ZpZGVvKTsKKyAg
ICB2b2lkIHNldFZpZGVvRGltZW5zaW9ucyhWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyUHJveHkqLCB1
aW50NjRfdCBjb250ZXh0SWQsIFdlYkNvcmU6OkZsb2F0U2l6ZSB2aWRlb0RpbWVuc2lvbnMpOwor
ICAgIHZvaWQgc2V0dXBGdWxsc2NyZWVuV2l0aElEKFZpZGVvRnVsbHNjcmVlbk1hbmFnZXJQcm94
eSosIHVpbnQ2NF90IGNvbnRleHRJZCwgdWludDMyX3QgdmlkZW9MYXllcklELCBXZWJDb3JlOjpJ
bnRSZWN0IGluaXRpYWxSZWN0LCBmbG9hdCBob3N0aW5nU2NhbGVGYWN0b3IsIFdlYkNvcmU6OkhU
TUxNZWRpYUVsZW1lbnRFbnVtczo6VmlkZW9GdWxsc2NyZWVuTW9kZSwgYm9vbCBhbGxvd3NQaWN0
dXJlSW5QaWN0dXJlLCBib29sIHN0YW5kYnkpOworICAgIHZvaWQgZW50ZXJGdWxsc2NyZWVuKFZp
ZGVvRnVsbHNjcmVlbk1hbmFnZXJQcm94eSosIHVpbnQ2NF90IGNvbnRleHRJZCk7CisgICAgdm9p
ZCBleGl0RnVsbHNjcmVlbihWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyUHJveHkqLCB1aW50NjRfdCBj
b250ZXh0SWQsIFdlYkNvcmU6OkludFJlY3QgZmluYWxSZWN0KTsKKyAgICB2b2lkIHNldElubGlu
ZVJlY3QoVmlkZW9GdWxsc2NyZWVuTWFuYWdlclByb3h5KiwgdWludDY0X3QgY29udGV4dElkLCBX
ZWJDb3JlOjpJbnRSZWN0IGlubGluZVJlY3QsIGJvb2wgdmlzaWJsZSk7CisgICAgdm9pZCBzZXRI
YXNWaWRlb0NvbnRlbnRMYXllcihWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyUHJveHkqLCB1aW50NjRf
dCBjb250ZXh0SWQsIGJvb2wgdmFsdWUpOworICAgIHZvaWQgY2xlYW51cEZ1bGxzY3JlZW4oVmlk
ZW9GdWxsc2NyZWVuTWFuYWdlclByb3h5KiwgdWludDY0X3QgY29udGV4dElkKTsKKyAgICB2b2lk
IHByZXBhcmVkVG9SZXR1cm5Ub0lubGluZShWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyUHJveHkqLCB1
aW50NjRfdCBjb250ZXh0SWQsIGJvb2wgdmlzaWJsZSwgV2ViQ29yZTo6SW50UmVjdCBpbmxpbmVS
ZWN0KTsKKyAgICB2b2lkIHByZXBhcmVkVG9FeGl0RnVsbHNjcmVlbihWaWRlb0Z1bGxzY3JlZW5N
YW5hZ2VyUHJveHkqLCB1aW50NjRfdCBjb250ZXh0SWQpOworI2lmIFBMQVRGT1JNKE1BQykgJiYg
RU5BQkxFKFZJREVPX1BSRVNFTlRBVElPTl9NT0RFKQorICAgIHZvaWQgZXhpdEZ1bGxzY3JlZW5X
aXRob3V0QW5pbWF0aW9uVG9Nb2RlKFZpZGVvRnVsbHNjcmVlbk1hbmFnZXJQcm94eSosIHVpbnQ2
NF90IGNvbnRleHRJZCwgV2ViQ29yZTo6SFRNTE1lZGlhRWxlbWVudEVudW1zOjpWaWRlb0Z1bGxz
Y3JlZW5Nb2RlKTsKKyNlbmRpZgorfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CisKKyNlbmRp
ZiAvLyBFTkFCTEUoVklERU9fUFJFU0VOVEFUSU9OX01PREUpCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9WaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyUHJveHkuaCBiL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1ZpZGVvRnVsbHNjcmVlbk1hbmFnZXJQcm94eS5o
CmluZGV4IDRkZmM5ZjEwNWEyZjMwZDYzNDNmYWVhN2Y2NzY5YWVjMzVkZDI3OTEuLmMxNTRiYWFj
MGFmMmQ1YzE2MTQzODkzNTU1YmRjNTM3MWE2M2QzOTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL0NvY29hL1ZpZGVvRnVsbHNjcmVlbk1hbmFnZXJQcm94eS5oCisrKyBiL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1ZpZGVvRnVsbHNjcmVlbk1hbmFnZXJQcm94eS5o
CkBAIC0yNyw3ICsyNyw5IEBACiAKICNpZiBFTkFCTEUoVklERU9fUFJFU0VOVEFUSU9OX01PREUp
CiAKKyNpbmNsdWRlICJBUElPYmplY3QuaCIKICNpbmNsdWRlICJNZXNzYWdlUmVjZWl2ZXIuaCIK
KyNpbmNsdWRlICJWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VySW5qZWN0ZWRCdW5kbGVDbGllbnQuaCIK
ICNpbmNsdWRlIDxXZWJDb3JlL0F1ZGlvU2Vzc2lvbi5oPgogI2luY2x1ZGUgPFdlYkNvcmUvR3Jh
cGhpY3NMYXllci5oPgogI2luY2x1ZGUgPFdlYkNvcmUvUGxhdGZvcm1WaWV3Lmg+CkBAIC01Mywx
MCArNTUsMTAgQEAgdHlwZWRlZiBXZWJDb3JlOjpWaWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2VNYWMg
UGxhdGZvcm1WaWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2U7CiAKIG5hbWVzcGFjZSBXZWJLaXQgewog
Ci1jbGFzcyBXZWJQYWdlUHJveHk7CiBjbGFzcyBQbGF5YmFja1Nlc3Npb25NYW5hZ2VyUHJveHk7
CiBjbGFzcyBQbGF5YmFja1Nlc3Npb25Nb2RlbENvbnRleHQ7CiBjbGFzcyBWaWRlb0Z1bGxzY3Jl
ZW5NYW5hZ2VyUHJveHk7CitjbGFzcyBXZWJQYWdlUHJveHk7CiAKIGNsYXNzIFZpZGVvRnVsbHNj
cmVlbk1vZGVsQ29udGV4dCBmaW5hbAogICAgIDogcHVibGljIFJlZkNvdW50ZWQ8VmlkZW9GdWxs
c2NyZWVuTW9kZWxDb250ZXh0PgpAQCAtMTE3LDcgKzExOSw5IEBAIHByaXZhdGU6CiAgICAgYm9v
bCBtX2hhc1ZpZGVvIHsgZmFsc2UgfTsKIH07CiAKLWNsYXNzIFZpZGVvRnVsbHNjcmVlbk1hbmFn
ZXJQcm94eSA6IHB1YmxpYyBSZWZDb3VudGVkPFZpZGVvRnVsbHNjcmVlbk1hbmFnZXJQcm94eT4s
IHByaXZhdGUgSVBDOjpNZXNzYWdlUmVjZWl2ZXIgeworY2xhc3MgVmlkZW9GdWxsc2NyZWVuTWFu
YWdlclByb3h5IDoKKyAgICBwdWJsaWMgQVBJOjpPYmplY3RJbXBsPEFQSTo6T2JqZWN0OjpUeXBl
OjpWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyPiwKKyAgICBwcml2YXRlIElQQzo6TWVzc2FnZVJlY2Vp
dmVyIHsKIHB1YmxpYzoKICAgICBzdGF0aWMgUmVmPFZpZGVvRnVsbHNjcmVlbk1hbmFnZXJQcm94
eT4gY3JlYXRlKFdlYlBhZ2VQcm94eSYsIFBsYXliYWNrU2Vzc2lvbk1hbmFnZXJQcm94eSYpOwog
ICAgIHZpcnR1YWwgflZpZGVvRnVsbHNjcmVlbk1hbmFnZXJQcm94eSgpOwpAQCAtMTMyLDE0ICsx
MzYsMTQgQEAgcHVibGljOgogCiAgICAgdm9pZCByZXF1ZXN0Um91dGVTaGFyaW5nUG9saWN5QW5k
Q29udGV4dFVJRCh1aW50NjRfdCBjb250ZXh0SWQsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoV2Vi
Q29yZTo6Um91dGVTaGFyaW5nUG9saWN5LCBTdHJpbmcpPiYmKTsKIAotI2lmIEVOQUJMRShWSURF
T19QUkVTRU5UQVRJT05fTU9ERSkKICAgICBib29sIGlzUGxheWluZ1ZpZGVvSW5FbmhhbmNlZEZ1
bGxzY3JlZW4oKSBjb25zdDsKLSNlbmRpZgogCiAgICAgUGxhdGZvcm1WaWRlb0Z1bGxzY3JlZW5J
bnRlcmZhY2UqIGNvbnRyb2xzTWFuYWdlckludGVyZmFjZSgpOwogCiAgICAgdm9pZCBmb3JFYWNo
U2Vzc2lvbihGdW5jdGlvbjx2b2lkKFdlYkNvcmU6OlZpZGVvRnVsbHNjcmVlbk1vZGVsJiwgUGxh
dGZvcm1WaWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2UmKT4mJik7CiAKKyAgICB2b2lkIHNldEluamVj
dGVkQnVuZGxlQ2xpZW50KGNvbnN0IFdLVmlkZW9GdWxsc2NyZWVuTWFuYWdlckluamVjdGVkQnVu
ZGxlQ2xpZW50QmFzZSopOworCiBwcml2YXRlOgogICAgIGZyaWVuZCBjbGFzcyBWaWRlb0Z1bGxz
Y3JlZW5Nb2RlbENvbnRleHQ7CiAKQEAgLTE4OSw2ICsxOTMsOCBAQCBwcml2YXRlOgogICAgIEhh
c2hNYXA8dWludDY0X3QsIE1vZGVsSW50ZXJmYWNlVHVwbGU+IG1fY29udGV4dE1hcDsKICAgICB1
aW50NjRfdCBtX2NvbnRyb2xzTWFuYWdlckNvbnRleHRJZCB7IDAgfTsKICAgICBIYXNoTWFwPHVp
bnQ2NF90LCBpbnQ+IG1fY2xpZW50Q291bnRzOworCisgICAgc3RkOjp1bmlxdWVfcHRyPFZpZGVv
RnVsbHNjcmVlbk1hbmFnZXJJbmplY3RlZEJ1bmRsZUNsaWVudD4gbV9pbmplY3RlZEJ1bmRsZUNs
aWVudDsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvQ29jb2EvVmlkZW9GdWxsc2NyZWVuTWFuYWdlclByb3h5Lm1tIGIvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvVmlkZW9GdWxsc2NyZWVuTWFuYWdlclByb3h5Lm1t
CmluZGV4IDMxNjFkOWJkODk1NWY5MWM1MGYzZjJmNGFhNDk4YTUwMTU5M2MyZjYuLmI2OWMzNjg1
MjhmYjg3ZWNhYjdmZmVjMmQyMjIwMGM2OWNjMzFkNWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL0NvY29hL1ZpZGVvRnVsbHNjcmVlbk1hbmFnZXJQcm94eS5tbQorKysgYi9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9WaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyUHJveHku
bW0KQEAgLTMzLDYgKzMzLDcgQEAKICNpbXBvcnQgIlBsYXliYWNrU2Vzc2lvbk1hbmFnZXJQcm94
eS5oIgogI2ltcG9ydCAiVmlkZW9GdWxsc2NyZWVuTWFuYWdlck1lc3NhZ2VzLmgiCiAjaW1wb3J0
ICJWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyUHJveHlNZXNzYWdlcy5oIgorI2ltcG9ydCAiV0tWaWRl
b0Z1bGxzY3JlZW5NYW5hZ2VySW5qZWN0ZWRCdW5kbGVDbGllbnQuaCIKICNpbXBvcnQgIldlYlBh
Z2VQcm94eS5oIgogI2ltcG9ydCAiV2ViUHJvY2Vzc1Byb3h5LmgiCiAjaW1wb3J0IDxRdWFydHpD
b3JlL0NvcmVBbmltYXRpb24uaD4KQEAgLTMzNiw2ICszMzcsMTcgQEAgVmlkZW9GdWxsc2NyZWVu
TWFuYWdlclByb3h5Ojp+VmlkZW9GdWxsc2NyZWVuTWFuYWdlclByb3h5KCkKICAgICBpbnZhbGlk
YXRlKCk7CiB9CiAKK3ZvaWQgVmlkZW9GdWxsc2NyZWVuTWFuYWdlclByb3h5OjpzZXRJbmplY3Rl
ZEJ1bmRsZUNsaWVudChjb25zdCBXS1ZpZGVvRnVsbHNjcmVlbk1hbmFnZXJJbmplY3RlZEJ1bmRs
ZUNsaWVudEJhc2UqIGNsaWVudCkKK3sKKyAgICBpZiAoIWNsaWVudCkgeworICAgICAgICBtX2lu
amVjdGVkQnVuZGxlQ2xpZW50ID0gbnVsbHB0cjsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKwor
ICAgIG1faW5qZWN0ZWRCdW5kbGVDbGllbnQgPSBtYWtlVW5pcXVlPFZpZGVvRnVsbHNjcmVlbk1h
bmFnZXJJbmplY3RlZEJ1bmRsZUNsaWVudD4oKTsKKyAgICBtX2luamVjdGVkQnVuZGxlQ2xpZW50
LT5pbml0aWFsaXplKGNsaWVudCk7Cit9CisKIHZvaWQgVmlkZW9GdWxsc2NyZWVuTWFuYWdlclBy
b3h5OjppbnZhbGlkYXRlKCkKIHsKICAgICBtX3BhZ2UtPnByb2Nlc3MoKS5yZW1vdmVNZXNzYWdl
UmVjZWl2ZXIoTWVzc2FnZXM6OlZpZGVvRnVsbHNjcmVlbk1hbmFnZXJQcm94eTo6bWVzc2FnZVJl
Y2VpdmVyTmFtZSgpLCBtX3BhZ2UtPndlYlBhZ2VJRCgpKTsKQEAgLTM3NSw3ICszODcsNiBAQCBi
b29sIFZpZGVvRnVsbHNjcmVlbk1hbmFnZXJQcm94eTo6bWF5QXV0b21hdGljYWxseVNob3dWaWRl
b1BpY3R1cmVJblBpY3R1cmUoKSBjbwogICAgIHJldHVybiBmYWxzZTsKIH0KIAotI2lmIEVOQUJM
RShWSURFT19QUkVTRU5UQVRJT05fTU9ERSkKIGJvb2wgVmlkZW9GdWxsc2NyZWVuTWFuYWdlclBy
b3h5Ojppc1BsYXlpbmdWaWRlb0luRW5oYW5jZWRGdWxsc2NyZWVuKCkgY29uc3QKIHsKICAgICBm
b3IgKGF1dG8mIFttb2RlbCwgaW50ZXJmYWNlXSA6IG1fY29udGV4dE1hcC52YWx1ZXMoKSkgewpA
QCAtMzg1LDcgKzM5Niw2IEBAIGJvb2wgVmlkZW9GdWxsc2NyZWVuTWFuYWdlclByb3h5Ojppc1Bs
YXlpbmdWaWRlb0luRW5oYW5jZWRGdWxsc2NyZWVuKCkgY29uc3QKICAgICAKICAgICByZXR1cm4g
ZmFsc2U7CiB9Ci0jZW5kaWYKIAogUGxhdGZvcm1WaWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2UqIFZp
ZGVvRnVsbHNjcmVlbk1hbmFnZXJQcm94eTo6Y29udHJvbHNNYW5hZ2VySW50ZXJmYWNlKCkKIHsK
QEAgLTQ5Myw2ICs1MDMsMTUgQEAgdm9pZCBWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyUHJveHk6OnNl
dHVwRnVsbHNjcmVlbldpdGhJRCh1aW50NjRfdCBjb250ZXh0SWQsIHVpbnQKIHsKICAgICBNRVNT
QUdFX0NIRUNLX0NPTlRFWFRJRChjb250ZXh0SWQpOwogICAgIE1FU1NBR0VfQ0hFQ0sodmlkZW9M
YXllcklEKTsKKyAgICBpZiAobV9pbmplY3RlZEJ1bmRsZUNsaWVudCkgeworICAgICAgICBtX2lu
amVjdGVkQnVuZGxlQ2xpZW50LT5zZXR1cEZ1bGxzY3JlZW5XaXRoSUQodGhpcywgY29udGV4dElk
LCB2aWRlb0xheWVySUQsIGluaXRpYWxSZWN0LCBob3N0aW5nRGV2aWNlU2NhbGVGYWN0b3IsIHZp
ZGVvRnVsbHNjcmVlbk1vZGUsIGFsbG93c1BpY3R1cmVJblBpY3R1cmUsIHN0YW5kYnkpOworI2lm
IFBMQVRGT1JNKElPU19GQU1JTFkpCisgICAgICAgIHJlcXVlc3RWaWRlb0NvbnRlbnRMYXllcihj
b250ZXh0SWQpOworI2Vsc2UKKyAgICAgICAgZGlkU2V0dXBGdWxsc2NyZWVuKGNvbnRleHRJZCk7
CisjZW5kaWYKKyAgICAgICAgcmV0dXJuOworICAgIH0KIAogICAgIGF1dG8mIFttb2RlbCwgaW50
ZXJmYWNlXSA9IGVuc3VyZU1vZGVsQW5kSW50ZXJmYWNlKGNvbnRleHRJZCk7CiAgICAgYWRkQ2xp
ZW50Rm9yQ29udGV4dChjb250ZXh0SWQpOwpAQCAtNTI3LDE4ICs1NDYsMzMgQEAgdm9pZCBWaWRl
b0Z1bGxzY3JlZW5NYW5hZ2VyUHJveHk6OnNldHVwRnVsbHNjcmVlbldpdGhJRCh1aW50NjRfdCBj
b250ZXh0SWQsIHVpbnQKIHZvaWQgVmlkZW9GdWxsc2NyZWVuTWFuYWdlclByb3h5OjpzZXRIYXNW
aWRlbyh1aW50NjRfdCBjb250ZXh0SWQsIGJvb2wgaGFzVmlkZW8pCiB7CiAgICAgTUVTU0FHRV9D
SEVDS19DT05URVhUSUQoY29udGV4dElkKTsKKyAgICBpZiAobV9pbmplY3RlZEJ1bmRsZUNsaWVu
dCkgeworICAgICAgICBtX2luamVjdGVkQnVuZGxlQ2xpZW50LT5zZXRIYXNWaWRlbyh0aGlzLCBj
b250ZXh0SWQsIGhhc1ZpZGVvKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKwogICAgIGVuc3Vy
ZUludGVyZmFjZShjb250ZXh0SWQpLmhhc1ZpZGVvQ2hhbmdlZChoYXNWaWRlbyk7CiB9CiAKIHZv
aWQgVmlkZW9GdWxsc2NyZWVuTWFuYWdlclByb3h5OjpzZXRWaWRlb0RpbWVuc2lvbnModWludDY0
X3QgY29udGV4dElkLCBjb25zdCBGbG9hdFNpemUmIHZpZGVvRGltZW5zaW9ucykKIHsKICAgICBN
RVNTQUdFX0NIRUNLX0NPTlRFWFRJRChjb250ZXh0SWQpOworICAgIGlmIChtX2luamVjdGVkQnVu
ZGxlQ2xpZW50KSB7CisgICAgICAgIG1faW5qZWN0ZWRCdW5kbGVDbGllbnQtPnNldFZpZGVvRGlt
ZW5zaW9ucyh0aGlzLCBjb250ZXh0SWQsIHZpZGVvRGltZW5zaW9ucyk7CisgICAgICAgIHJldHVy
bjsKKyAgICB9CisKICAgICBlbnN1cmVJbnRlcmZhY2UoY29udGV4dElkKS52aWRlb0RpbWVuc2lv
bnNDaGFuZ2VkKHZpZGVvRGltZW5zaW9ucyk7CiB9CiAKIHZvaWQgVmlkZW9GdWxsc2NyZWVuTWFu
YWdlclByb3h5OjplbnRlckZ1bGxzY3JlZW4odWludDY0X3QgY29udGV4dElkKQogewogICAgIE1F
U1NBR0VfQ0hFQ0tfQ09OVEVYVElEKGNvbnRleHRJZCk7CisgICAgaWYgKG1faW5qZWN0ZWRCdW5k
bGVDbGllbnQpIHsKKyAgICAgICAgbV9pbmplY3RlZEJ1bmRsZUNsaWVudC0+ZW50ZXJGdWxsc2Ny
ZWVuKHRoaXMsIGNvbnRleHRJZCk7CisgICAgICAgIGRpZEVudGVyRnVsbHNjcmVlbihjb250ZXh0
SWQpOworICAgICAgICByZXR1cm47CisgICAgfQogCiAgICAgYXV0byYgaW50ZXJmYWNlID0gZW5z
dXJlSW50ZXJmYWNlKGNvbnRleHRJZCk7CiAgICAgaW50ZXJmYWNlLmVudGVyRnVsbHNjcmVlbigp
OwpAQCAtNTU4LDYgKzU5MiwxMyBAQCB2b2lkIFZpZGVvRnVsbHNjcmVlbk1hbmFnZXJQcm94eTo6
ZW50ZXJGdWxsc2NyZWVuKHVpbnQ2NF90IGNvbnRleHRJZCkKIHZvaWQgVmlkZW9GdWxsc2NyZWVu
TWFuYWdlclByb3h5OjpleGl0RnVsbHNjcmVlbih1aW50NjRfdCBjb250ZXh0SWQsIFdlYkNvcmU6
OkludFJlY3QgZmluYWxSZWN0KQogewogICAgIE1FU1NBR0VfQ0hFQ0tfQ09OVEVYVElEKGNvbnRl
eHRJZCk7CisgICAgaWYgKG1faW5qZWN0ZWRCdW5kbGVDbGllbnQpIHsKKyAgICAgICAgbV9pbmpl
Y3RlZEJ1bmRsZUNsaWVudC0+ZXhpdEZ1bGxzY3JlZW4odGhpcywgY29udGV4dElkLCBmaW5hbFJl
Y3QpOworI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCisgICAgICAgIHJldHVyblZpZGVvQ29udGVu
dExheWVyKGNvbnRleHRJZCk7CisjZW5kaWYKKyAgICAgICAgcmV0dXJuOworICAgIH0KIAogICAg
IEFTU0VSVChtX2NvbnRleHRNYXAuY29udGFpbnMoY29udGV4dElkKSk7CiAgICAgaWYgKCFtX2Nv
bnRleHRNYXAuY29udGFpbnMoY29udGV4dElkKSkKQEAgLTU3Niw2ICs2MTcsMTEgQEAgdm9pZCBW
aWRlb0Z1bGxzY3JlZW5NYW5hZ2VyUHJveHk6OmV4aXRGdWxsc2NyZWVuKHVpbnQ2NF90IGNvbnRl
eHRJZCwgV2ViQ29yZTo6SW4KIHZvaWQgVmlkZW9GdWxsc2NyZWVuTWFuYWdlclByb3h5OjpleGl0
RnVsbHNjcmVlbldpdGhvdXRBbmltYXRpb25Ub01vZGUodWludDY0X3QgY29udGV4dElkLCBXZWJD
b3JlOjpIVE1MTWVkaWFFbGVtZW50RW51bXM6OlZpZGVvRnVsbHNjcmVlbk1vZGUgdGFyZ2V0TW9k
ZSkKIHsKICAgICBNRVNTQUdFX0NIRUNLX0NPTlRFWFRJRChjb250ZXh0SWQpOworICAgIGlmICht
X2luamVjdGVkQnVuZGxlQ2xpZW50KSB7CisgICAgICAgIG1faW5qZWN0ZWRCdW5kbGVDbGllbnQt
PmV4aXRGdWxsc2NyZWVuV2l0aG91dEFuaW1hdGlvblRvTW9kZSh0aGlzLCBjb250ZXh0SWQsIHRh
cmdldE1vZGUpOworICAgICAgICByZXR1cm47CisgICAgfQorCiAgICAgZW5zdXJlSW50ZXJmYWNl
KGNvbnRleHRJZCkuZXhpdEZ1bGxzY3JlZW5XaXRob3V0QW5pbWF0aW9uVG9Nb2RlKHRhcmdldE1v
ZGUpOwogfQogI2VuZGlmCkBAIC01ODUsMTIgKzYzMSwyNiBAQCB2b2lkIFZpZGVvRnVsbHNjcmVl
bk1hbmFnZXJQcm94eTo6ZXhpdEZ1bGxzY3JlZW5XaXRob3V0QW5pbWF0aW9uVG9Nb2RlKHVpbnQ2
NF90CiB2b2lkIFZpZGVvRnVsbHNjcmVlbk1hbmFnZXJQcm94eTo6c2V0SW5saW5lUmVjdCh1aW50
NjRfdCBjb250ZXh0SWQsIGNvbnN0IFdlYkNvcmU6OkludFJlY3QmIGlubGluZVJlY3QsIGJvb2wg
dmlzaWJsZSkKIHsKICAgICBNRVNTQUdFX0NIRUNLX0NPTlRFWFRJRChjb250ZXh0SWQpOworICAg
IGlmIChtX2luamVjdGVkQnVuZGxlQ2xpZW50KSB7CisgICAgICAgIG1faW5qZWN0ZWRCdW5kbGVD
bGllbnQtPnNldElubGluZVJlY3QodGhpcywgY29udGV4dElkLCBpbmxpbmVSZWN0LCB2aXNpYmxl
KTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKwogICAgIGVuc3VyZUludGVyZmFjZShjb250ZXh0
SWQpLnNldElubGluZVJlY3QoaW5saW5lUmVjdCwgdmlzaWJsZSk7CiB9CiAKIHZvaWQgVmlkZW9G
dWxsc2NyZWVuTWFuYWdlclByb3h5OjpzZXRIYXNWaWRlb0NvbnRlbnRMYXllcih1aW50NjRfdCBj
b250ZXh0SWQsIGJvb2wgdmFsdWUpCiB7CiAgICAgTUVTU0FHRV9DSEVDS19DT05URVhUSUQoY29u
dGV4dElkKTsKKyAgICBpZiAobV9pbmplY3RlZEJ1bmRsZUNsaWVudCkgeworICAgICAgICBtX2lu
amVjdGVkQnVuZGxlQ2xpZW50LT5zZXRIYXNWaWRlb0NvbnRlbnRMYXllcih0aGlzLCBjb250ZXh0
SWQsIHZhbHVlKTsKKyAgICAgICAgaWYgKHZhbHVlKQorICAgICAgICAgICAgZGlkU2V0dXBGdWxs
c2NyZWVuKGNvbnRleHRJZCk7CisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIGRpZEV4aXRGdWxs
c2NyZWVuKGNvbnRleHRJZCk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKICAgICBlbnN1cmVJ
bnRlcmZhY2UoY29udGV4dElkKS5zZXRIYXNWaWRlb0NvbnRlbnRMYXllcih2YWx1ZSk7CiB9CiAK
QEAgLTYxMSwxMiArNjcxLDI4IEBAIE5PX1JFVFVSTl9EVUVfVE9fQVNTRVJUIHZvaWQgVmlkZW9G
dWxsc2NyZWVuTWFuYWdlclByb3h5OjpzZXRIYXNWaWRlb0NvbnRlbnRMYXllCiB2b2lkIFZpZGVv
RnVsbHNjcmVlbk1hbmFnZXJQcm94eTo6Y2xlYW51cEZ1bGxzY3JlZW4odWludDY0X3QgY29udGV4
dElkKQogewogICAgIE1FU1NBR0VfQ0hFQ0tfQ09OVEVYVElEKGNvbnRleHRJZCk7CisgICAgaWYg
KG1faW5qZWN0ZWRCdW5kbGVDbGllbnQpIHsKKyAgICAgICAgbV9pbmplY3RlZEJ1bmRsZUNsaWVu
dC0+Y2xlYW51cEZ1bGxzY3JlZW4odGhpcywgY29udGV4dElkKTsKKyAgICAgICAgZGlkQ2xlYW51
cEZ1bGxzY3JlZW4oY29udGV4dElkKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKwogICAgIGVu
c3VyZUludGVyZmFjZShjb250ZXh0SWQpLmNsZWFudXBGdWxsc2NyZWVuKCk7CiB9CiAKIHZvaWQg
VmlkZW9GdWxsc2NyZWVuTWFuYWdlclByb3h5OjpwcmVwYXJlZFRvUmV0dXJuVG9JbmxpbmUodWlu
dDY0X3QgY29udGV4dElkLCBib29sIHZpc2libGUsIFdlYkNvcmU6OkludFJlY3QgaW5saW5lUmVj
dCkKIHsKICAgICBNRVNTQUdFX0NIRUNLX0NPTlRFWFRJRChjb250ZXh0SWQpOworICAgIGlmICht
X2luamVjdGVkQnVuZGxlQ2xpZW50KSB7CisgICAgICAgIG1fcGFnZS0+ZnVsbHNjcmVlbk1heVJl
dHVyblRvSW5saW5lKCk7CisgICAgICAgIG1faW5qZWN0ZWRCdW5kbGVDbGllbnQtPnByZXBhcmVk
VG9SZXR1cm5Ub0lubGluZSh0aGlzLCBjb250ZXh0SWQsIHZpc2libGUsIGlubGluZVJlY3QpOwor
I2lmICFQTEFURk9STShJT1NfRkFNSUxZKQorICAgICAgICBJbnRSZWN0IGlubGluZVdpbmRvd1Jl
Y3Q7CisgICAgICAgIG1fcGFnZS0+cm9vdFZpZXdUb1dpbmRvdyhpbmxpbmVSZWN0LCBpbmxpbmVX
aW5kb3dSZWN0KTsKKyNlbmRpZgorICAgICAgICByZXR1cm47CisgICAgfQorCiAgICAgbV9wYWdl
LT5mdWxsc2NyZWVuTWF5UmV0dXJuVG9JbmxpbmUoKTsKIAogI2lmIFBMQVRGT1JNKElPU19GQU1J
TFkpCkBAIC02MzEsNiArNzA3LDExIEBAIHZvaWQgVmlkZW9GdWxsc2NyZWVuTWFuYWdlclByb3h5
OjpwcmVwYXJlZFRvUmV0dXJuVG9JbmxpbmUodWludDY0X3QgY29udGV4dElkLCBiCiB2b2lkIFZp
ZGVvRnVsbHNjcmVlbk1hbmFnZXJQcm94eTo6cHJlcGFyZWRUb0V4aXRGdWxsc2NyZWVuKHVpbnQ2
NF90IGNvbnRleHRJZCkKIHsKICAgICBNRVNTQUdFX0NIRUNLX0NPTlRFWFRJRChjb250ZXh0SWQp
OworICAgIGlmIChtX2luamVjdGVkQnVuZGxlQ2xpZW50KSB7CisgICAgICAgIG1faW5qZWN0ZWRC
dW5kbGVDbGllbnQtPnByZXBhcmVkVG9FeGl0RnVsbHNjcmVlbih0aGlzLCBjb250ZXh0SWQpOwor
ICAgICAgICByZXR1cm47CisgICAgfQorCiAgICAgZW5zdXJlSW50ZXJmYWNlKGNvbnRleHRJZCku
cHJlcGFyZWRUb0V4aXRGdWxsc2NyZWVuKCk7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvV2ViS2l0L1dlYktp
dC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IDE4YWM5OWY0OGM1OWMwMGY3ZjYxZDVj
ZjU4MzE4ZGMzM2ZmZTNjYzMuLmY1Yzc4MThjZDlkOTA5MWU0MWI2MGUyZDE5YWMyZTljODk3Njg0
YzIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBi
eHByb2oKKysrIGIvU291cmNlL1dlYktpdC9XZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJv
agpAQCAtNDE3LDYgKzQxNywxMSBAQAogCQkxQ0E4Qjk0NjEyN0M4ODJBMDA1NzZDMkIgLyogV2Vi
SW5zcGVjdG9yUHJveHlNZXNzYWdlcy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gMUNBOEI5NDQxMjdDODgyQTAwNTc2QzJCIC8qIFdlYkluc3BlY3RvclBy
b3h5TWVzc2FnZXMuaCAqLzsgfTsKIAkJMUNCQkU0QTAxOUI2NkM1MzAwNkI3RDgxIC8qIFdlYklu
c3BlY3RvclVJTWVzc2FnZVJlY2VpdmVyLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDFDQkJFNDlFMTlCNjZDNTMwMDZCN0Q4MSAvKiBXZWJJbnNwZWN0
b3JVSU1lc3NhZ2VSZWNlaXZlci5jcHAgKi87IH07CiAJCTFDQkJFNEExMTlCNjZDNTMwMDZCN0Q4
MSAvKiBXZWJJbnNwZWN0b3JVSU1lc3NhZ2VzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSAxQ0JCRTQ5RjE5QjY2QzUzMDA2QjdEODEgLyogV2ViSW5zcGVj
dG9yVUlNZXNzYWdlcy5oICovOyB9OworCQkxRDJDMDI1MDI0NTI4QzdDMDAyNkFEMUYgLyogV0tW
aWRlb0Z1bGxzY3JlZW5NYW5hZ2VyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSAxRDJDMDI0RTI0NTI4QzdDMDAyNkFEMUYgLyogV0tWaWRlb0Z1bGxzY3Jl
ZW5NYW5hZ2VyLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsg
fTsKKwkJMUQyQzAyNTEyNDUyOEM3QzAwMjZBRDFGIC8qIFdLVmlkZW9GdWxsc2NyZWVuTWFuYWdl
ci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxRDJD
MDI0RjI0NTI4QzdDMDAyNkFEMUYgLyogV0tWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyLmNwcCAqLzsg
fTsKKwkJMUQzRTFFOTAyNDUwRDlBQjAwMzY0MDUyIC8qIFZpZGVvRnVsbHNjcmVlbk1hbmFnZXJJ
bmplY3RlZEJ1bmRsZUNsaWVudC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gMUQzRTFFOEUyNDUwRDlBQjAwMzY0MDUyIC8qIFZpZGVvRnVsbHNjcmVlbk1h
bmFnZXJJbmplY3RlZEJ1bmRsZUNsaWVudC5oICovOyB9OworCQkxRDNFMUU5MTI0NTBEOUFCMDAz
NjQwNTIgLyogVmlkZW9GdWxsc2NyZWVuTWFuYWdlckluamVjdGVkQnVuZGxlQ2xpZW50LmNwcCBp
biBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDFEM0UxRThGMjQ1
MEQ5QUIwMDM2NDA1MiAvKiBWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VySW5qZWN0ZWRCdW5kbGVDbGll
bnQuY3BwICovOyB9OworCQkxRDNFMUU5MzI0NTBEQzJBMDAzNjQwNTIgLyogV0tWaWRlb0Z1bGxz
Y3JlZW5NYW5hZ2VySW5qZWN0ZWRCdW5kbGVDbGllbnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDFEM0UxRTkyMjQ1MERDMkEwMDM2NDA1MiAvKiBXS1Zp
ZGVvRnVsbHNjcmVlbk1hbmFnZXJJbmplY3RlZEJ1bmRsZUNsaWVudC5oICovOyBzZXR0aW5ncyA9
IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTFENEQ3MzcwMjNBOUU1NDcwMDcx
N0EyNSAvKiBSZW1vdGVNZWRpYVJlc291cmNlTWFuYWdlck1lc3NhZ2VSZWNlaXZlci5jcHAgaW4g
U291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxRDRENzM2QjIzQTlE
RjU1MDA3MTdBMjUgLyogUmVtb3RlTWVkaWFSZXNvdXJjZU1hbmFnZXJNZXNzYWdlUmVjZWl2ZXIu
Y3BwICovOyB9OwogCQkxRDRENzM3MTIzQTlFNTYyMDA3MTdBMjUgLyogUmVtb3RlTWVkaWFSZXNv
dXJjZU1hbmFnZXJNZXNzYWdlcy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gMUQ0RDczNkMyM0E5REY2MDAwNzE3QTI1IC8qIFJlbW90ZU1lZGlhUmVzb3Vy
Y2VNYW5hZ2VyTWVzc2FnZXMuaCAqLzsgfTsKIAkJMUQ0RDczNzYyM0E5RUQxODAwNzE3QTI1IC8q
IFJlbW90ZU1lZGlhUmVzb3VyY2VNYW5hZ2VyTWVzc2FnZXNSZXBsaWVzLmggaW4gSGVhZGVycyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxRDRENzM3NTIzQTlFQjY4MDA3MTdB
MjUgLyogUmVtb3RlTWVkaWFSZXNvdXJjZU1hbmFnZXJNZXNzYWdlc1JlcGxpZXMuaCAqLzsgfTsK
QEAgLTI3NDEsNiArMjc0Niw4IEBACiAJCTFDQkJFNDlGMTlCNjZDNTMwMDZCN0Q4MSAvKiBXZWJJ
bnNwZWN0b3JVSU1lc3NhZ2VzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IFdl
Ykluc3BlY3RvclVJTWVzc2FnZXMuaDsgcGF0aCA9IERlcml2ZWRTb3VyY2VzL1dlYktpdDIvV2Vi
SW5zcGVjdG9yVUlNZXNzYWdlcy5oOyBzb3VyY2VUcmVlID0gQlVJTFRfUFJPRFVDVFNfRElSOyB9
OwogCQkxRDBFQ0VBQTIzRkM4NTg0MDBEMTcyRjYgLyogUmVtb3RlTWVkaWFQbGF5ZXJQcm94eUNv
Y29hLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gUmVtb3RlTWVkaWFQbGF5ZXJQcm94eUNvY29h
Lm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkxRDEyQ0MyNzI0MEVERjZEMDBGREEw
QTMgLyogV2ViS2l0LnBsaXN0ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93
bkZpbGVUeXBlID0gdGV4dC5wbGlzdC54bWw7IHBhdGggPSBXZWJLaXQucGxpc3Q7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CisJCTFEMkMwMjRFMjQ1MjhDN0MwMDI2QUQxRiAvKiBXS1ZpZGVv
RnVsbHNjcmVlbk1hbmFnZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV0tWaWRlb0Z1bGxzY3JlZW5NYW5h
Z2VyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTFEMkMwMjRGMjQ1MjhDN0MwMDI2
QUQxRiAvKiBXS1ZpZGVvRnVsbHNjcmVlbk1hbmFnZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0g
V0tWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
IAkJMUQzMkY4OTgyM0E4NDY1QTAwQjFFQTZBIC8qIFJlbW90ZU1lZGlhUmVzb3VyY2UuaCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Yy5oOyBwYXRoID0gUmVtb3RlTWVkaWFSZXNvdXJjZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwogCQkxRDMyRjg5OTIzQTg0NjgwMDBCMUVBNkEgLyogUmVtb3RlTWVkaWFSZXNvdXJjZS5j
cHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBSZW1vdGVNZWRpYVJlc291cmNlLmNwcDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMUQzMkY4OUIyM0E4NEJBNjAwQjFFQTZBIC8qIFJlbW90ZU1l
ZGlhUmVzb3VyY2VQcm94eS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBSZW1vdGVNZWRpYVJlc291cmNlUHJv
eHkuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTI3NDgsNiArMjc1NSw5IEBACiAJ
CTFEMzJGOEE2MjNBODYwMTkwMEIxRUE2QSAvKiBSZW1vdGVNZWRpYVJlc291cmNlTWFuYWdlci5t
ZXNzYWdlcy5pbiAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlw
ZSA9IHRleHQ7IHBhdGggPSBSZW1vdGVNZWRpYVJlc291cmNlTWFuYWdlci5tZXNzYWdlcy5pbjsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMUQzQUIwNEQyM0FCMDA3MjAwNUMxRkYwIC8q
IFJlbW90ZU1lZGlhUmVzb3VyY2VMb2FkZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUmVtb3RlTWVkaWFS
ZXNvdXJjZUxvYWRlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkxRDNBQjA0RTIz
QUIwMDlCMDA1QzFGRjAgLyogUmVtb3RlTWVkaWFSZXNvdXJjZUxvYWRlci5jcHAgKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5j
cHA7IHBhdGggPSBSZW1vdGVNZWRpYVJlc291cmNlTG9hZGVyLmNwcDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKKwkJMUQzRTFFOEUyNDUwRDlBQjAwMzY0MDUyIC8qIFZpZGVvRnVsbHNjcmVl
bk1hbmFnZXJJbmplY3RlZEJ1bmRsZUNsaWVudC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBWaWRlb0Z1bGxz
Y3JlZW5NYW5hZ2VySW5qZWN0ZWRCdW5kbGVDbGllbnQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKKwkJMUQzRTFFOEYyNDUwRDlBQjAwMzY0MDUyIC8qIFZpZGVvRnVsbHNjcmVlbk1hbmFn
ZXJJbmplY3RlZEJ1bmRsZUNsaWVudC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBWaWRlb0Z1bGxz
Y3JlZW5NYW5hZ2VySW5qZWN0ZWRCdW5kbGVDbGllbnQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OworCQkxRDNFMUU5MjI0NTBEQzJBMDAzNjQwNTIgLyogV0tWaWRlb0Z1bGxzY3JlZW5N
YW5hZ2VySW5qZWN0ZWRCdW5kbGVDbGllbnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBu
YW1lID0gV0tWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VySW5qZWN0ZWRCdW5kbGVDbGllbnQuaDsgcGF0
aCA9IFVJUHJvY2Vzcy9BUEkvQy9XS1ZpZGVvRnVsbHNjcmVlbk1hbmFnZXJJbmplY3RlZEJ1bmRs
ZUNsaWVudC5oOyBzb3VyY2VUcmVlID0gU09VUkNFX1JPT1Q7IH07CiAJCTFENEQ3MzZCMjNBOURG
NTUwMDcxN0EyNSAvKiBSZW1vdGVNZWRpYVJlc291cmNlTWFuYWdlck1lc3NhZ2VSZWNlaXZlci5j
cHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZXhwbGljaXRGaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuY3BwLmNwcDsgbmFtZSA9IFJlbW90ZU1lZGlhUmVzb3VyY2VNYW5hZ2VyTWVzc2FnZVJl
Y2VpdmVyLmNwcDsgcGF0aCA9IERlcml2ZWRTb3VyY2VzL1dlYktpdDIvUmVtb3RlTWVkaWFSZXNv
dXJjZU1hbmFnZXJNZXNzYWdlUmVjZWl2ZXIuY3BwOyBzb3VyY2VUcmVlID0gQlVJTFRfUFJPRFVD
VFNfRElSOyB9OwogCQkxRDRENzM2QzIzQTlERjYwMDA3MTdBMjUgLyogUmVtb3RlTWVkaWFSZXNv
dXJjZU1hbmFnZXJNZXNzYWdlcy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGV4cGxp
Y2l0RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IFJlbW90ZU1lZGlhUmVzb3VyY2VN
YW5hZ2VyTWVzc2FnZXMuaDsgcGF0aCA9IERlcml2ZWRTb3VyY2VzL1dlYktpdDIvUmVtb3RlTWVk
aWFSZXNvdXJjZU1hbmFnZXJNZXNzYWdlcy5oOyBzb3VyY2VUcmVlID0gQlVJTFRfUFJPRFVDVFNf
RElSOyB9OwogCQkxRDRENzM3NTIzQTlFQjY4MDA3MTdBMjUgLyogUmVtb3RlTWVkaWFSZXNvdXJj
ZU1hbmFnZXJNZXNzYWdlc1JlcGxpZXMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBl
eHBsaWNpdEZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBSZW1vdGVNZWRpYVJlc291
cmNlTWFuYWdlck1lc3NhZ2VzUmVwbGllcy5oOyBwYXRoID0gRGVyaXZlZFNvdXJjZXMvV2ViS2l0
Mi9SZW1vdGVNZWRpYVJlc291cmNlTWFuYWdlck1lc3NhZ2VzUmVwbGllcy5oOyBzb3VyY2VUcmVl
ID0gQlVJTFRfUFJPRFVDVFNfRElSOyB9OwpAQCAtNjM2MSw2ICs2MzcxLDggQEAKIAkJCQk0NjMy
MzY4NTIzMTQ4MzNGMDBBNDhGQTcgLyogVUlSZW1vdGVPYmplY3RSZWdpc3RyeS5oICovLAogCQkJ
CUU0RTg2NDhFMUIxNjczRkIwMEM4MkY0MCAvKiBWZXJzaW9uQ2hlY2tzLmggKi8sCiAJCQkJRTRF
ODY0OEYxQjE2NzNGQjAwQzgyRjQwIC8qIFZlcnNpb25DaGVja3MubW0gKi8sCisJCQkJMUQzRTFF
OEYyNDUwRDlBQjAwMzY0MDUyIC8qIFZpZGVvRnVsbHNjcmVlbk1hbmFnZXJJbmplY3RlZEJ1bmRs
ZUNsaWVudC5jcHAgKi8sCisJCQkJMUQzRTFFOEUyNDUwRDlBQjAwMzY0MDUyIC8qIFZpZGVvRnVs
bHNjcmVlbk1hbmFnZXJJbmplY3RlZEJ1bmRsZUNsaWVudC5oICovLAogCQkJCTUyRDVBMUFBMUM1
NzQ5NEUwMERFMzRBMyAvKiBWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyUHJveHkuaCAqLywKIAkJCQk1
MkQ1QTFBQjFDNTc0OTRFMDBERTM0QTMgLyogVmlkZW9GdWxsc2NyZWVuTWFuYWdlclByb3h5Lm1l
c3NhZ2VzLmluICovLAogCQkJCTUyRDVBMUFDMUM1NzQ5NEUwMERFMzRBMyAvKiBWaWRlb0Z1bGxz
Y3JlZW5NYW5hZ2VyUHJveHkubW0gKi8sCkBAIC05MzE3LDYgKzkzMjksOSBAQAogCQkJCTRBNDEw
RjM2MTlBRjdBQzMwMDJFQkFCNSAvKiBXS1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0LmggKi8s
CiAJCQkJN0M4OUQyQTExQTY3ODg3NTAwM0E1RkRFIC8qIFdLVXNlclNjcmlwdFJlZi5jcHAgKi8s
CiAJCQkJN0M4OUQyQTIxQTY3ODg3NTAwM0E1RkRFIC8qIFdLVXNlclNjcmlwdFJlZi5oICovLAor
CQkJCTFEMkMwMjRGMjQ1MjhDN0MwMDI2QUQxRiAvKiBXS1ZpZGVvRnVsbHNjcmVlbk1hbmFnZXIu
Y3BwICovLAorCQkJCTFEMkMwMjRFMjQ1MjhDN0MwMDI2QUQxRiAvKiBXS1ZpZGVvRnVsbHNjcmVl
bk1hbmFnZXIuaCAqLywKKwkJCQkxRDNFMUU5MjI0NTBEQzJBMDAzNjQwNTIgLyogV0tWaWRlb0Z1
bGxzY3JlZW5NYW5hZ2VySW5qZWN0ZWRCdW5kbGVDbGllbnQuaCAqLywKIAkJCQk1QzZFN0Q4NzIz
MjM2MUU3MDBDMjE1OUQgLyogV0tXZWJzaXRlRGF0YVN0b3JlQ29uZmlndXJhdGlvblJlZi5jcHAg
Ki8sCiAJCQkJNUM2RTdEODYyMzIzNjFFNzAwQzIxNTlEIC8qIFdLV2Vic2l0ZURhdGFTdG9yZUNv
bmZpZ3VyYXRpb25SZWYuaCAqLywKIAkJCQkxQTU3MTA5QzFBQkEwMDI3MDAyRkFCQkUgLyogV0tX
ZWJzaXRlRGF0YVN0b3JlUmVmLmNwcCAqLywKQEAgLTExMTU4LDYgKzExMTczLDcgQEAKIAkJCQk0
QTNDQzE4RDE5QjA2NDE5MDBEMTRBRUYgLyogVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RQcm94
eS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMDc0RTc1RkUxREYyMjExOTAwRDMxOEVDIC8qIFVzZXJN
ZWRpYVByb2Nlc3NNYW5hZ2VyLmggaW4gSGVhZGVycyAqLywKIAkJCQlFNEU4NjQ5MzFCMTY3NTA3
MDBDODJGNDAgLyogVmVyc2lvbkNoZWNrcy5oIGluIEhlYWRlcnMgKi8sCisJCQkJMUQzRTFFOTAy
NDUwRDlBQjAwMzY0MDUyIC8qIFZpZGVvRnVsbHNjcmVlbk1hbmFnZXJJbmplY3RlZEJ1bmRsZUNs
aWVudC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNTJENUExQjAxQzU3NDk1QTAwREUzNEEzIC8qIFZp
ZGVvRnVsbHNjcmVlbk1hbmFnZXJQcm94eS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMkQxMjVDNUUx
ODU3RUEwNTAwM0JBM0NCIC8qIFZpZXdHZXN0dXJlQ29udHJvbGxlci5oIGluIEhlYWRlcnMgKi8s
CiAJCQkJMkQxQjVENUUxODU4NjlDODAwNkM2NTk2IC8qIFZpZXdHZXN0dXJlQ29udHJvbGxlck1l
c3NhZ2VzLmggaW4gSGVhZGVycyAqLywKQEAgLTExNzYyLDYgKzExNzc4LDggQEAKIAkJCQkxQUFG
MDg5RDE5MjY3RkM4MDBCNjM5MEMgLyogV0tVc2VyU2NyaXB0SW50ZXJuYWwuaCBpbiBIZWFkZXJz
ICovLAogCQkJCTdDODgyREZBMUM3RTk5NzMwMDZCRjczMSAvKiBXS1VzZXJTY3JpcHRQcml2YXRl
LmggaW4gSGVhZGVycyAqLywKIAkJCQk3Qzg5RDJBNDFBNjc4ODc1MDAzQTVGREUgLyogV0tVc2Vy
U2NyaXB0UmVmLmggaW4gSGVhZGVycyAqLywKKwkJCQkxRDJDMDI1MDI0NTI4QzdDMDAyNkFEMUYg
LyogV0tWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyLmggaW4gSGVhZGVycyAqLywKKwkJCQkxRDNFMUU5
MzI0NTBEQzJBMDAzNjQwNTIgLyogV0tWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VySW5qZWN0ZWRCdW5k
bGVDbGllbnQuaCBpbiBIZWFkZXJzICovLAogCQkJCUJDODY5OUI1MTE2QUFEQUEwMDJBOTI1QiAv
KiBXS1ZpZXcuaCBpbiBIZWFkZXJzICovLAogCQkJCUJDODY5OUI3MTE2QUFEQUEwMDJBOTI1QiAv
KiBXS1ZpZXdJbnRlcm5hbC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMkQyOEE0OTcxQUY5NjVBMTAw
RjE5MEM5IC8qIFdLVmlld0xheW91dFN0cmF0ZWd5LmggaW4gSGVhZGVycyAqLywKQEAgLTEyOTgx
LDYgKzEyOTk5LDcgQEAKIAkJCQlFMzhBMUZDMDIzQTU1MUJGMDBEMjM3NEYgLyogVXNlckludGVy
ZmFjZUlkaW9tLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJQ0Q0OTFCMEQxRTczMkU0RDAwMDA5MDY2
IC8qIFVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyTWVzc2FnZVJlY2VpdmVyLmNwcCBpbiBTb3VyY2Vz
ICovLAogCQkJCUNENDkxQjE3MUU3MzUyNTUwMDAwOTA2NiAvKiBVc2VyTWVkaWFDYXB0dXJlTWFu
YWdlclByb3h5TWVzc2FnZVJlY2VpdmVyLmNwcCBpbiBTb3VyY2VzICovLAorCQkJCTFEM0UxRTkx
MjQ1MEQ5QUIwMDM2NDA1MiAvKiBWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VySW5qZWN0ZWRCdW5kbGVD
bGllbnQuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJM0Y0MThFRjkxODg3QkQ5NzAwMjc5NUZEIC8q
IFZpZGVvRnVsbHNjcmVlbk1hbmFnZXJNZXNzYWdlUmVjZWl2ZXIuY3BwIGluIFNvdXJjZXMgKi8s
CiAJCQkJM0Y0MThFRkIxODg3QkQ5NzAwMjc5NUZEIC8qIFZpZGVvRnVsbHNjcmVlbk1hbmFnZXJQ
cm94eU1lc3NhZ2VSZWNlaXZlci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkyRDFCNUQ1RDE4NTg2
OUM4MDA2QzY1OTYgLyogVmlld0dlc3R1cmVDb250cm9sbGVyTWVzc2FnZVJlY2VpdmVyLmNwcCBp
biBTb3VyY2VzICovLApAQCAtMTMwNjYsNiArMTMwODUsNyBAQAogCQkJCTFEQjAxOTQ0MjExQ0Yw
MDUwMDlGQjNFOCAvKiBXS1NoYXJlU2hlZXQubW0gaW4gU291cmNlcyAqLywKIAkJCQk3QTc4RkYz
MzIyNDE5MTlCMDA5NjQ4M0UgLyogV0tTdG9yYWdlQWNjZXNzQWxlcnQubW0gaW4gU291cmNlcyAq
LywKIAkJCQlDRTIxMjE2MDI0MEVFNTcxMDA2RUQ0NDMgLyogV0tUZXh0UGxhY2Vob2xkZXIubW0g
aW4gU291cmNlcyAqLywKKwkJCQkxRDJDMDI1MTI0NTI4QzdDMDAyNkFEMUYgLyogV0tWaWRlb0Z1
bGxzY3JlZW5NYW5hZ2VyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJKTsKIAkJCXJ1bk9ubHlGb3JE
ZXBsb3ltZW50UG9zdHByb2Nlc3NpbmcgPSAwOwogCQl9OwpkaWZmIC0tZ2l0IGEvVG9vbHMvQ2hh
bmdlTG9nIGIvVG9vbHMvQ2hhbmdlTG9nCmluZGV4IDk1NWEyM2U4NDJlYmExZDU5N2Y4OTRmM2Q5
OWZiYTAxMjkzZTQwZDkuLjliYjIwMGFiZmQ5MDE4MWZkYzA3MmE5ZGI0YmVmM2UzOTg5MmQ5MzYg
MTAwNjQ0Ci0tLSBhL1Rvb2xzL0NoYW5nZUxvZworKysgYi9Ub29scy9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwzMCBAQAorMjAyMC0wNC0yNyAgUGVuZyBMaXUgIDxwZW5nLmxpdTZAYXBwbGUuY29tPgor
CisgICAgICAgIFVwZGF0ZSBXZWJLaXRUZXN0UnVubmVyIHRvIHN1cHBvcnQgcnVubmluZyBtdWx0
aXBsZSB2aWRlbyBmdWxsc2NyZWVuIGFuZCBQaWN0dXJlLWluLVBpY3R1cmUgdGVzdHMgc2ltdWx0
YW5lb3VzbHkKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTIwMzcyMworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAg
ICogV2ViS2l0VGVzdFJ1bm5lci9QbGF0Zm9ybVdlYlZpZXcuaDoKKyAgICAgICAgKiBXZWJLaXRU
ZXN0UnVubmVyL1Rlc3RDb250cm9sbGVyLmNwcDoKKyAgICAgICAgKFdUUjo6VGVzdENvbnRyb2xs
ZXI6OmNvbmZpZ3VyZVZpZXdGb3JUZXN0KToKKyAgICAgICAgKFdUUjo6VGVzdENvbnRyb2xsZXI6
OnNldEhhc1ZpZGVvRnJvbUluamVjdGVkQnVuZGxlKToKKyAgICAgICAgKFdUUjo6VGVzdENvbnRy
b2xsZXI6OnNldFZpZGVvRGltZW5zaW9uc0Zyb21JbmplY3RlZEJ1bmRsZSk6CisgICAgICAgIChX
VFI6OlRlc3RDb250cm9sbGVyOjpzZXR1cEZ1bGxzY3JlZW5XaXRoSURGcm9tSW5qZWN0ZWRCdW5k
bGUpOgorICAgICAgICAoV1RSOjpUZXN0Q29udHJvbGxlcjo6ZW50ZXJGdWxsc2NyZWVuRnJvbUlu
amVjdGVkQnVuZGxlKToKKyAgICAgICAgKFdUUjo6VGVzdENvbnRyb2xsZXI6OmV4aXRGdWxsc2Ny
ZWVuRnJvbUluamVjdGVkQnVuZGxlKToKKyAgICAgICAgKFdUUjo6VGVzdENvbnRyb2xsZXI6OnNl
dElubGluZVJlY3RGcm9tSW5qZWN0ZWRCdW5kbGUpOgorICAgICAgICAoV1RSOjpUZXN0Q29udHJv
bGxlcjo6c2V0SGFzVmlkZW9Db250ZW50TGF5ZXJGcm9tSW5qZWN0ZWRCdW5kbGUpOgorICAgICAg
ICAoV1RSOjpUZXN0Q29udHJvbGxlcjo6Y2xlYW51cEZ1bGxzY3JlZW5Gcm9tSW5qZWN0ZWRCdW5k
bGUpOgorICAgICAgICAoV1RSOjpUZXN0Q29udHJvbGxlcjo6cHJlcGFyZWRUb1JldHVyblRvSW5s
aW5lRnJvbUluamVjdGVkQnVuZGxlKToKKyAgICAgICAgKFdUUjo6VGVzdENvbnRyb2xsZXI6OnBy
ZXBhcmVkVG9FeGl0RnVsbHNjcmVlbkZyb21JbmplY3RlZEJ1bmRsZSk6CisgICAgICAgIChXVFI6
OlRlc3RDb250cm9sbGVyOjpleGl0RnVsbHNjcmVlbldpdGhvdXRBbmltYXRpb25Ub01vZGVGcm9t
SW5qZWN0ZWRCdW5kbGUpOgorICAgICAgICAqIFdlYktpdFRlc3RSdW5uZXIvVGVzdENvbnRyb2xs
ZXIuaDoKKyAgICAgICAgKiBXZWJLaXRUZXN0UnVubmVyL2lvcy9QbGF0Zm9ybVdlYlZpZXdJT1Mu
bW06CisgICAgICAgIChXVFI6OlBsYXRmb3JtV2ViVmlldzo6dmlkZW9GdWxsc2NyZWVuTWFuYWdl
cik6CisgICAgICAgICogV2ViS2l0VGVzdFJ1bm5lci9tYWMvUGxhdGZvcm1XZWJWaWV3TWFjLm1t
OgorICAgICAgICAoV1RSOjpQbGF0Zm9ybVdlYlZpZXc6OnZpZGVvRnVsbHNjcmVlbk1hbmFnZXIp
OgorCiAyMDIwLTA0LTI3ICBEYW5pZWwgQmF0ZXMgIDxkYWJhdGVzQGFwcGxlLmNvbT4KIAogICAg
ICAgICBDYXJldCBtYXkgYmUgcGxhY2VkIGluIHRoZSB3cm9uZyBzcG90IGZvciB0ZXh0IGlucHV0
IGNvbnRleHQgdGhhdCBpcyBhIGZvcm0gY29udHJvbApkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViS2l0
VGVzdFJ1bm5lci9QbGF0Zm9ybVdlYlZpZXcuaCBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvUGxh
dGZvcm1XZWJWaWV3LmgKaW5kZXggM2E4YmJlOGNlNmNiMjMzOGNkNTRmMzgwNzFhMzZjOWNmZTBl
NjIyMS4uNzRmNDJkZjVjZDI5YTE0NmQzMTM1MGUxN2UwNjM5NzRlYjk0MjAxNiAxMDA2NDQKLS0t
IGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9QbGF0Zm9ybVdlYlZpZXcuaAorKysgYi9Ub29scy9X
ZWJLaXRUZXN0UnVubmVyL1BsYXRmb3JtV2ViVmlldy5oCkBAIC04Myw2ICs4Myw3IEBAIHB1Ymxp
YzoKICAgICB+UGxhdGZvcm1XZWJWaWV3KCk7CiAKICAgICBXS1BhZ2VSZWYgcGFnZSgpOworICAg
IFdLVmlkZW9GdWxsc2NyZWVuTWFuYWdlclJlZiB2aWRlb0Z1bGxzY3JlZW5NYW5hZ2VyKCk7CiAg
ICAgUGxhdGZvcm1XS1ZpZXcgcGxhdGZvcm1WaWV3KCkgeyByZXR1cm4gbV92aWV3OyB9CiAgICAg
UGxhdGZvcm1XaW5kb3cgcGxhdGZvcm1XaW5kb3coKSB7IHJldHVybiBtX3dpbmRvdzsgfQogICAg
IHN0YXRpYyBQbGF0Zm9ybVdpbmRvdyBrZXlXaW5kb3coKTsKZGlmZiAtLWdpdCBhL1Rvb2xzL1dl
YktpdFRlc3RSdW5uZXIvVGVzdENvbnRyb2xsZXIuY3BwIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5l
ci9UZXN0Q29udHJvbGxlci5jcHAKaW5kZXggYWE3MjNlZDhmNDk2MWEyMDg0NmYxM2FhYzg1MTBi
ZWExZDNmZWZlYy4uNzI0OTAyNTkyYTQ5NTAwNWQyM2I0ZjQzYzgyMGRmZTMxY2Y0YjQ2OCAxMDA2
NDQKLS0tIGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0Q29udHJvbGxlci5jcHAKKysrIGIv
VG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0Q29udHJvbGxlci5jcHAKQEAgLTY2LDYgKzY2LDgg
QEAKICNpbmNsdWRlIDxXZWJLaXQvV0tVc2VyQ29udGVudENvbnRyb2xsZXJSZWYuaD4KICNpbmNs
dWRlIDxXZWJLaXQvV0tVc2VyQ29udGVudEV4dGVuc2lvblN0b3JlUmVmLmg+CiAjaW5jbHVkZSA8
V2ViS2l0L1dLVXNlck1lZGlhUGVybWlzc2lvbkNoZWNrLmg+CisjaW5jbHVkZSA8V2ViS2l0L1dL
VmlkZW9GdWxsc2NyZWVuTWFuYWdlci5oPgorI2luY2x1ZGUgPFdlYktpdC9XS1ZpZGVvRnVsbHNj
cmVlbk1hbmFnZXJJbmplY3RlZEJ1bmRsZUNsaWVudC5oPgogI2luY2x1ZGUgPFdlYktpdC9XS1dl
YnNpdGVEYXRhU3RvcmVDb25maWd1cmF0aW9uUmVmLmg+CiAjaW5jbHVkZSA8V2ViS2l0L1dLV2Vi
c2l0ZURhdGFTdG9yZVJlZi5oPgogI2luY2x1ZGUgPFdlYktpdC9XS1dlYnNpdGVQb2xpY2llcy5o
PgpAQCAtMTU3NSw2ICsxNTc3LDI0IEBAIHZvaWQgVGVzdENvbnRyb2xsZXI6OmNvbmZpZ3VyZVZp
ZXdGb3JUZXN0KGNvbnN0IFRlc3RJbnZvY2F0aW9uJiB0ZXN0KQogICAgIHVwZGF0ZVdpbmRvd1Nj
YWxlRm9yVGVzdChtYWluV2ViVmlldygpLCB0ZXN0KTsKICAgICBjb25maWd1cmVDb250ZW50RXh0
ZW5zaW9uRm9yVGVzdCh0ZXN0KTsKICAgICBwbGF0Zm9ybUNvbmZpZ3VyZVZpZXdGb3JUZXN0KHRl
c3QpOworCisjaWYgRU5BQkxFKFZJREVPX1BSRVNFTlRBVElPTl9NT0RFKQorICAgIFdLVmlkZW9G
dWxsc2NyZWVuTWFuYWdlckluamVjdGVkQnVuZGxlQ2xpZW50VjAgdmlkZW9GdWxsc2NyZWVuTWFu
YWdlckluamVjdGVkQnVuZGxlQ2xpZW50ID0geworICAgICAgICB7IDAsIHRoaXMgfSwKKyAgICAg
ICAgc2V0SGFzVmlkZW9Gcm9tSW5qZWN0ZWRCdW5kbGUsCisgICAgICAgIHNldFZpZGVvRGltZW5z
aW9uc0Zyb21JbmplY3RlZEJ1bmRsZSwKKyAgICAgICAgc2V0dXBGdWxsc2NyZWVuV2l0aElERnJv
bUluamVjdGVkQnVuZGxlLAorICAgICAgICBlbnRlckZ1bGxzY3JlZW5Gcm9tSW5qZWN0ZWRCdW5k
bGUsCisgICAgICAgIGV4aXRGdWxsc2NyZWVuRnJvbUluamVjdGVkQnVuZGxlLAorICAgICAgICBz
ZXRJbmxpbmVSZWN0RnJvbUluamVjdGVkQnVuZGxlLAorICAgICAgICBzZXRIYXNWaWRlb0NvbnRl
bnRMYXllckZyb21JbmplY3RlZEJ1bmRsZSwKKyAgICAgICAgY2xlYW51cEZ1bGxzY3JlZW5Gcm9t
SW5qZWN0ZWRCdW5kbGUsCisgICAgICAgIHByZXBhcmVkVG9SZXR1cm5Ub0lubGluZUZyb21Jbmpl
Y3RlZEJ1bmRsZSwKKyAgICAgICAgcHJlcGFyZWRUb0V4aXRGdWxsc2NyZWVuRnJvbUluamVjdGVk
QnVuZGxlLAorICAgICAgICBleGl0RnVsbHNjcmVlbldpdGhvdXRBbmltYXRpb25Ub01vZGVGcm9t
SW5qZWN0ZWRCdW5kbGUKKyAgICB9OworICAgIFdLVmlkZW9GdWxsc2NyZWVuTWFuYWdlclNldElu
amVjdGVkQnVuZGxlQ2xpZW50KG1fbWFpbldlYlZpZXctPnZpZGVvRnVsbHNjcmVlbk1hbmFnZXIo
KSwgJnZpZGVvRnVsbHNjcmVlbk1hbmFnZXJJbmplY3RlZEJ1bmRsZUNsaWVudC5iYXNlKTsKKyNl
bmRpZgogfQogCiAjaWYgRU5BQkxFKENPTlRFTlRfRVhURU5TSU9OUykgJiYgIVBMQVRGT1JNKENP
Q09BKQpAQCAtMTg5Miw2ICsxOTEyLDU1IEBAIHZvaWQgVGVzdENvbnRyb2xsZXI6OmRpZFJlY2Vp
dmVTeW5jaHJvbm91c1BhZ2VNZXNzYWdlRnJvbUluamVjdGVkQnVuZGxlV2l0aExpc3RlCiAgICAg
c3RhdGljX2Nhc3Q8VGVzdENvbnRyb2xsZXIqPihjb25zdF9jYXN0PHZvaWQqPihjbGllbnRJbmZv
KSktPmRpZFJlY2VpdmVTeW5jaHJvbm91c01lc3NhZ2VGcm9tSW5qZWN0ZWRCdW5kbGUobWVzc2Fn
ZU5hbWUsIG1lc3NhZ2VCb2R5LCBsaXN0ZW5lcik7CiB9CiAKKyNpZiBFTkFCTEUoVklERU9fUFJF
U0VOVEFUSU9OX01PREUpCisKKy8vIFdLVmlkZW9GdWxsc2NyZWVuTWFuYWdlckluamVjdGVkQnVu
ZGxlQ2xpZW50Cit2b2lkIFRlc3RDb250cm9sbGVyOjpzZXRIYXNWaWRlb0Zyb21JbmplY3RlZEJ1
bmRsZShXS1ZpZGVvRnVsbHNjcmVlbk1hbmFnZXJSZWYgbWFuYWdlciwgdWludDY0X3QgY29udGV4
dElkLCBib29sIGhhc1ZpZGVvKQoreworfQorCit2b2lkIFRlc3RDb250cm9sbGVyOjpzZXRWaWRl
b0RpbWVuc2lvbnNGcm9tSW5qZWN0ZWRCdW5kbGUoV0tWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyUmVm
IG1hbmFnZXIsIHVpbnQ2NF90IGNvbnRleHRJZCwgV0tTaXplIHZpZGVvRGltZW5zaW9ucykKK3sK
K30KKwordm9pZCBUZXN0Q29udHJvbGxlcjo6c2V0dXBGdWxsc2NyZWVuV2l0aElERnJvbUluamVj
dGVkQnVuZGxlKFdLVmlkZW9GdWxsc2NyZWVuTWFuYWdlclJlZiBtYW5hZ2VyLCB1aW50NjRfdCBj
b250ZXh0SWQsIHVpbnQzMl90IHZpZGVvTGF5ZXJJRCwgV0tSZWN0IGluaXRpYWxSZWN0LCBmbG9h
dCBob3N0aW5nU2NhbGVGYWN0b3IsIFdLVmlkZW9GdWxsc2NyZWVuTW9kZSB2aWRlb0Z1bGxzY3Jl
ZW5Nb2RlLCBib29sIGFsbG93c1BpY3R1cmVJblBpY3R1cmUsIGJvb2wgc3RhbmRieSkKK3sKK30K
Kwordm9pZCBUZXN0Q29udHJvbGxlcjo6ZW50ZXJGdWxsc2NyZWVuRnJvbUluamVjdGVkQnVuZGxl
KFdLVmlkZW9GdWxsc2NyZWVuTWFuYWdlclJlZiBtYW5hZ2VyLCB1aW50NjRfdCBjb250ZXh0SWQp
Cit7Cit9CisKK3ZvaWQgVGVzdENvbnRyb2xsZXI6OmV4aXRGdWxsc2NyZWVuRnJvbUluamVjdGVk
QnVuZGxlKFdLVmlkZW9GdWxsc2NyZWVuTWFuYWdlclJlZiBtYW5hZ2VyLCB1aW50NjRfdCBjb250
ZXh0SWQsIFdLUmVjdCBmaW5hbFJlY3QpCit7Cit9CisKK3ZvaWQgVGVzdENvbnRyb2xsZXI6OnNl
dElubGluZVJlY3RGcm9tSW5qZWN0ZWRCdW5kbGUoV0tWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyUmVm
IG1hbmFnZXIsIHVpbnQ2NF90IGNvbnRleHRJZCwgV0tSZWN0IGlubGluZVJlY3QsIGJvb2wgdmlz
aWJsZSkKK3sKK30KKwordm9pZCBUZXN0Q29udHJvbGxlcjo6c2V0SGFzVmlkZW9Db250ZW50TGF5
ZXJGcm9tSW5qZWN0ZWRCdW5kbGUoV0tWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyUmVmIG1hbmFnZXIs
IHVpbnQ2NF90IGNvbnRleHRJZCwgYm9vbCB2YWx1ZSkKK3sKK30KKwordm9pZCBUZXN0Q29udHJv
bGxlcjo6Y2xlYW51cEZ1bGxzY3JlZW5Gcm9tSW5qZWN0ZWRCdW5kbGUoV0tWaWRlb0Z1bGxzY3Jl
ZW5NYW5hZ2VyUmVmIG1hbmFnZXIsIHVpbnQ2NF90IGNvbnRleHRJZCkKK3sKK30KKwordm9pZCBU
ZXN0Q29udHJvbGxlcjo6cHJlcGFyZWRUb1JldHVyblRvSW5saW5lRnJvbUluamVjdGVkQnVuZGxl
KFdLVmlkZW9GdWxsc2NyZWVuTWFuYWdlclJlZiBtYW5hZ2VyLCB1aW50NjRfdCBjb250ZXh0SWQs
IGJvb2wgdmlzaWJsZSwgV0tSZWN0IGlubGluZVJlY3QpCit7Cit9CisKK3ZvaWQgVGVzdENvbnRy
b2xsZXI6OnByZXBhcmVkVG9FeGl0RnVsbHNjcmVlbkZyb21JbmplY3RlZEJ1bmRsZShXS1ZpZGVv
RnVsbHNjcmVlbk1hbmFnZXJSZWYgbWFuYWdlciwgdWludDY0X3QgY29udGV4dElkKQoreworfQor
Cit2b2lkIFRlc3RDb250cm9sbGVyOjpleGl0RnVsbHNjcmVlbldpdGhvdXRBbmltYXRpb25Ub01v
ZGVGcm9tSW5qZWN0ZWRCdW5kbGUoV0tWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyUmVmIHBhZ2UsIHVp
bnQ2NF90IGNvbnRleHRJZCwgV0tWaWRlb0Z1bGxzY3JlZW5Nb2RlIHZpZGVvRnVsbHNjcmVlbk1v
ZGUpCit7Cit9CisKKyNlbmRpZgorCiB2b2lkIFRlc3RDb250cm9sbGVyOjpuZXR3b3JrUHJvY2Vz
c0RpZENyYXNoKFdLQ29udGV4dFJlZiBjb250ZXh0LCBjb25zdCB2b2lkICpjbGllbnRJbmZvKQog
ewogICAgIHN0YXRpY19jYXN0PFRlc3RDb250cm9sbGVyKj4oY29uc3RfY2FzdDx2b2lkKj4oY2xp
ZW50SW5mbykpLT5uZXR3b3JrUHJvY2Vzc0RpZENyYXNoKCk7CmRpZmYgLS1naXQgYS9Ub29scy9X
ZWJLaXRUZXN0UnVubmVyL1Rlc3RDb250cm9sbGVyLmggYi9Ub29scy9XZWJLaXRUZXN0UnVubmVy
L1Rlc3RDb250cm9sbGVyLmgKaW5kZXggMTUyNzg3YWE3MzQ5MzZhMTgyNjhlMmNmYjVhMTFjNGQ3
Yzg5ZjA5ZC4uYzBhZDg1NTQxNzUwNDBjMzg2NDQwZTFiNDJiYTc4YWM1YzhhOGQ2YSAxMDA2NDQK
LS0tIGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0Q29udHJvbGxlci5oCisrKyBiL1Rvb2xz
L1dlYktpdFRlc3RSdW5uZXIvVGVzdENvbnRyb2xsZXIuaApAQCAtNDgsNiArNDgsOCBAQCBPQkpD
X0NMQVNTIE5TU3RyaW5nOwogT0JKQ19DTEFTUyBVSUtleWJvYXJkSW5wdXRNb2RlOwogT0JKQ19D
TEFTUyBXS1dlYlZpZXdDb25maWd1cmF0aW9uOwogCit0eXBlZGVmIHVpbnQzMl90IFdLVmlkZW9G
dWxsc2NyZWVuTW9kZTsKKwogbmFtZXNwYWNlIFdUUiB7CiAKIGNsYXNzIFRlc3RJbnZvY2F0aW9u
OwpAQCAtNDIzLDYgKzQyNSwyMSBAQCBwcml2YXRlOgogICAgIHZvaWQgZGlkUmVjZWl2ZVN5bmNo
cm9ub3VzTWVzc2FnZUZyb21JbmplY3RlZEJ1bmRsZShXS1N0cmluZ1JlZiBtZXNzYWdlTmFtZSwg
V0tUeXBlUmVmIG1lc3NhZ2VCb2R5LCBXS01lc3NhZ2VMaXN0ZW5lclJlZik7CiAgICAgV0tSZXRh
aW5QdHI8V0tUeXBlUmVmPiBnZXRJbmplY3RlZEJ1bmRsZUluaXRpYWxpemF0aW9uVXNlckRhdGEo
KTsKIAorI2lmIEVOQUJMRShWSURFT19QUkVTRU5UQVRJT05fTU9ERSkKKyAgICAvLyBXS1ZpZGVv
RnVsbHNjcmVlbk1hbmFnZXJJbmplY3RlZEJ1bmRsZUNsaWVudAorICAgIHN0YXRpYyB2b2lkIHNl
dEhhc1ZpZGVvRnJvbUluamVjdGVkQnVuZGxlKFdLVmlkZW9GdWxsc2NyZWVuTWFuYWdlclJlZiwg
dWludDY0X3QgY29udGV4dElkLCBib29sIGhhc1ZpZGVvKTsKKyAgICBzdGF0aWMgdm9pZCBzZXRW
aWRlb0RpbWVuc2lvbnNGcm9tSW5qZWN0ZWRCdW5kbGUoV0tWaWRlb0Z1bGxzY3JlZW5NYW5hZ2Vy
UmVmLCB1aW50NjRfdCBjb250ZXh0SWQsIFdLU2l6ZSB2aWRlb0RpbWVuc2lvbnMpOworICAgIHN0
YXRpYyB2b2lkIHNldHVwRnVsbHNjcmVlbldpdGhJREZyb21JbmplY3RlZEJ1bmRsZShXS1ZpZGVv
RnVsbHNjcmVlbk1hbmFnZXJSZWYsIHVpbnQ2NF90IGNvbnRleHRJZCwgdWludDMyX3QgdmlkZW9M
YXllcklELCBXS1JlY3QgaW5pdGlhbFJlY3QsIGZsb2F0IGhvc3RpbmdTY2FsZUZhY3RvciwgV0tW
aWRlb0Z1bGxzY3JlZW5Nb2RlLCBib29sIGFsbG93c1BpY3R1cmVJblBpY3R1cmUsIGJvb2wgc3Rh
bmRieSk7CisgICAgc3RhdGljIHZvaWQgZW50ZXJGdWxsc2NyZWVuRnJvbUluamVjdGVkQnVuZGxl
KFdLVmlkZW9GdWxsc2NyZWVuTWFuYWdlclJlZiwgdWludDY0X3QgY29udGV4dElkKTsKKyAgICBz
dGF0aWMgdm9pZCBleGl0RnVsbHNjcmVlbkZyb21JbmplY3RlZEJ1bmRsZShXS1ZpZGVvRnVsbHNj
cmVlbk1hbmFnZXJSZWYsIHVpbnQ2NF90IGNvbnRleHRJZCwgV0tSZWN0IGZpbmFsUmVjdCk7Cisg
ICAgc3RhdGljIHZvaWQgc2V0SW5saW5lUmVjdEZyb21JbmplY3RlZEJ1bmRsZShXS1ZpZGVvRnVs
bHNjcmVlbk1hbmFnZXJSZWYsIHVpbnQ2NF90IGNvbnRleHRJZCwgV0tSZWN0IGlubGluZVJlY3Qs
IGJvb2wgdmlzaWJsZSk7CisgICAgc3RhdGljIHZvaWQgc2V0SGFzVmlkZW9Db250ZW50TGF5ZXJG
cm9tSW5qZWN0ZWRCdW5kbGUoV0tWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyUmVmLCB1aW50NjRfdCBj
b250ZXh0SWQsIGJvb2wgdmFsdWUpOworICAgIHN0YXRpYyB2b2lkIGNsZWFudXBGdWxsc2NyZWVu
RnJvbUluamVjdGVkQnVuZGxlKFdLVmlkZW9GdWxsc2NyZWVuTWFuYWdlclJlZiwgdWludDY0X3Qg
Y29udGV4dElkKTsKKyAgICBzdGF0aWMgdm9pZCBwcmVwYXJlZFRvUmV0dXJuVG9JbmxpbmVGcm9t
SW5qZWN0ZWRCdW5kbGUoV0tWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyUmVmLCB1aW50NjRfdCBjb250
ZXh0SWQsIGJvb2wgdmlzaWJsZSwgV0tSZWN0IGlubGluZVJlY3QpOworICAgIHN0YXRpYyB2b2lk
IHByZXBhcmVkVG9FeGl0RnVsbHNjcmVlbkZyb21JbmplY3RlZEJ1bmRsZShXS1ZpZGVvRnVsbHNj
cmVlbk1hbmFnZXJSZWYsIHVpbnQ2NF90IGNvbnRleHRJZCk7CisgICAgc3RhdGljIHZvaWQgZXhp
dEZ1bGxzY3JlZW5XaXRob3V0QW5pbWF0aW9uVG9Nb2RlRnJvbUluamVjdGVkQnVuZGxlKFdLVmlk
ZW9GdWxsc2NyZWVuTWFuYWdlclJlZiwgdWludDY0X3QgY29udGV4dElkLCBXS1ZpZGVvRnVsbHNj
cmVlbk1vZGUpOworI2VuZGlmCisKICAgICB2b2lkIGRpZFJlY2VpdmVLZXlEb3duTWVzc2FnZUZy
b21JbmplY3RlZEJ1bmRsZShXS0RpY3Rpb25hcnlSZWYgbWVzc2FnZUJvZHlEaWN0aW9uYXJ5LCBi
b29sIHN5bmNocm9ub3VzKTsKIAogICAgIC8vIFdLQ29udGV4dENsaWVudApAQCAtNDY4LDcgKzQ4
NSw2IEBAIHByaXZhdGU6CiAKICAgICBzdGF0aWMgV0tQbHVnaW5Mb2FkUG9saWN5IGRlY2lkZVBv
bGljeUZvclBsdWdpbkxvYWQoV0tQYWdlUmVmLCBXS1BsdWdpbkxvYWRQb2xpY3kgY3VycmVudFBs
dWdpbkxvYWRQb2xpY3ksIFdLRGljdGlvbmFyeVJlZiBwbHVnaW5JbmZvcm1hdGlvbiwgV0tTdHJp
bmdSZWYqIHVuYXZhaWxhYmlsaXR5RGVzY3JpcHRpb24sIGNvbnN0IHZvaWQqIGNsaWVudEluZm8p
OwogICAgIFdLUGx1Z2luTG9hZFBvbGljeSBkZWNpZGVQb2xpY3lGb3JQbHVnaW5Mb2FkKFdLUGFn
ZVJlZiwgV0tQbHVnaW5Mb2FkUG9saWN5IGN1cnJlbnRQbHVnaW5Mb2FkUG9saWN5LCBXS0RpY3Rp
b25hcnlSZWYgcGx1Z2luSW5mb3JtYXRpb24sIFdLU3RyaW5nUmVmKiB1bmF2YWlsYWJpbGl0eURl
c2NyaXB0aW9uKTsKLSAgICAKIAogICAgIHN0YXRpYyB2b2lkIGRlY2lkZVBvbGljeUZvck5vdGlm
aWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0KFdLUGFnZVJlZiwgV0tTZWN1cml0eU9yaWdpblJlZiwg
V0tOb3RpZmljYXRpb25QZXJtaXNzaW9uUmVxdWVzdFJlZiwgY29uc3Qgdm9pZCopOwogICAgIHZv
aWQgZGVjaWRlUG9saWN5Rm9yTm90aWZpY2F0aW9uUGVybWlzc2lvblJlcXVlc3QoV0tQYWdlUmVm
LCBXS1NlY3VyaXR5T3JpZ2luUmVmLCBXS05vdGlmaWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0UmVm
KTsKZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvaW9zL1BsYXRmb3JtV2ViVmll
d0lPUy5tbSBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvaW9zL1BsYXRmb3JtV2ViVmlld0lPUy5t
bQppbmRleCBkY2VhMzhjZGFjZTc2ODI2NTIwYjBiMWZkOGNlMDA4YmEzYmM3YTY0Li41NjJhNmVj
OWZhNzRlMTdlZDkwN2ExN2EyNzBlOGVjOTgwYzQyYjgwIDEwMDY0NAotLS0gYS9Ub29scy9XZWJL
aXRUZXN0UnVubmVyL2lvcy9QbGF0Zm9ybVdlYlZpZXdJT1MubW0KKysrIGIvVG9vbHMvV2ViS2l0
VGVzdFJ1bm5lci9pb3MvUGxhdGZvcm1XZWJWaWV3SU9TLm1tCkBAIC00Miw2ICs0Miw3IEBACiAK
IEBpbnRlcmZhY2UgV0tXZWJWaWV3IChEZXRhaWxzKQogLSAoV0tQYWdlUmVmKV9wYWdlRm9yVGVz
dGluZzsKKy0gKFdLVmlkZW9GdWxsc2NyZWVuTWFuYWdlclJlZilfdmlkZW9GdWxsc2NyZWVuTWFu
YWdlckZvclRlc3Rpbmc7CiBAZW5kCiAKIEBpbnRlcmZhY2UgV2ViS2l0VGVzdFJ1bm5lcldpbmRv
dyA6IFVJV2luZG93IHsKQEAgLTIzOSw2ICsyNDAsMTEgQEAgV0tQYWdlUmVmIFBsYXRmb3JtV2Vi
Vmlldzo6cGFnZSgpCiAgICAgcmV0dXJuIFttX3ZpZXcgX3BhZ2VGb3JUZXN0aW5nXTsKIH0KIAor
V0tWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyUmVmIFBsYXRmb3JtV2ViVmlldzo6dmlkZW9GdWxsc2Ny
ZWVuTWFuYWdlcigpCit7CisgICAgcmV0dXJuIFttX3ZpZXcgX3ZpZGVvRnVsbHNjcmVlbk1hbmFn
ZXJGb3JUZXN0aW5nXTsKK30KKwogdm9pZCBQbGF0Zm9ybVdlYlZpZXc6OmZvY3VzKCkKIHsKICAg
ICBtYWtlV2ViVmlld0ZpcnN0UmVzcG9uZGVyKCk7CmRpZmYgLS1naXQgYS9Ub29scy9XZWJLaXRU
ZXN0UnVubmVyL21hYy9QbGF0Zm9ybVdlYlZpZXdNYWMubW0gYi9Ub29scy9XZWJLaXRUZXN0UnVu
bmVyL21hYy9QbGF0Zm9ybVdlYlZpZXdNYWMubW0KaW5kZXggNjQxNzgyY2E5N2UxZGFmYjkwMDkx
OWRiMTliMzQ3NGE1NTQzODhlNS4uZDFlNWU3NzkyYzAzOWRkZTllMzhmMzFjZTc1Y2E1ZmYzMzhl
MGRmNCAxMDA2NDQKLS0tIGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9tYWMvUGxhdGZvcm1XZWJW
aWV3TWFjLm1tCisrKyBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvbWFjL1BsYXRmb3JtV2ViVmll
d01hYy5tbQpAQCAtMzgsNiArMzgsNyBAQAogCiBAaW50ZXJmYWNlIFdLV2ViVmlldyAoKQogLSAo
V0tQYWdlUmVmKV9wYWdlRm9yVGVzdGluZzsKKy0gKFdLVmlkZW9GdWxsc2NyZWVuTWFuYWdlclJl
ZilfdmlkZW9GdWxsc2NyZWVuTWFuYWdlckZvclRlc3Rpbmc7CiBAZW5kCiAKIHVzaW5nIG5hbWVz
cGFjZSBXVFI7CkBAIC0xMTcsNiArMTE4LDExIEBAIFdLUGFnZVJlZiBQbGF0Zm9ybVdlYlZpZXc6
OnBhZ2UoKQogICAgIHJldHVybiBbbV92aWV3IF9wYWdlRm9yVGVzdGluZ107CiB9CiAKK1dLVmlk
ZW9GdWxsc2NyZWVuTWFuYWdlclJlZiBQbGF0Zm9ybVdlYlZpZXc6OnZpZGVvRnVsbHNjcmVlbk1h
bmFnZXIoKQoreworICAgIHJldHVybiBbbV92aWV3IF92aWRlb0Z1bGxzY3JlZW5NYW5hZ2VyRm9y
VGVzdGluZ107Cit9CisKIHZvaWQgUGxhdGZvcm1XZWJWaWV3Ojpmb2N1cygpCiB7CiAgICAgW21f
d2luZG93IG1ha2VGaXJzdFJlc3BvbmRlcjpwbGF0Zm9ybVZpZXcoKV07CmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggZWM3MmVk
NWZjNjk0OGIwZjRiZDljOGY4MmIxZTE0ZmE0YWQzODJkZi4uYWEwMmRlMWFlNGU4MTA3ZjlmZWY1
ZDA2NmNkNjg4ZmVhNzQyNDgwYSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisr
KyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDEzIEBACisyMDIwLTA0LTI3ICBQ
ZW5nIExpdSAgPHBlbmcubGl1NkBhcHBsZS5jb20+CisKKyAgICAgICAgVXBkYXRlIFdlYktpdFRl
c3RSdW5uZXIgdG8gc3VwcG9ydCBydW5uaW5nIG11bHRpcGxlIHZpZGVvIGZ1bGxzY3JlZW4gYW5k
IFBpY3R1cmUtaW4tUGljdHVyZSB0ZXN0cyBzaW11bHRhbmVvdXNseQorICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjAzNzIzCisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBtZWRpYS92aWRlby1wcmVzZW50YXRp
b24tbW9kZS1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIG1lZGlhL3ZpZGVvLXByZXNl
bnRhdGlvbi1tb2RlLmh0bWw6IEFkZGVkLgorCiAyMDIwLTA0LTI3ICBBbGljaWEgQm95YSBHYXJj
w61hICA8YWJveWFAaWdhbGlhLmNvbT4KIAogICAgICAgICBbR1N0cmVhbWVyXSBSZXdvcmsgV2Vi
S2l0V2ViU3JjIHRocmVhZGluZwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvbWVkaWEvdmlkZW8t
cHJlc2VudGF0aW9uLW1vZGUtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvbWVkaWEvdmlkZW8t
cHJlc2VudGF0aW9uLW1vZGUtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjU1MGU4NTNkN2U3M2Vk
ODMxMzVmZWI5MmM3MDk5NTkzNzk2YmRmYjAKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0
cy9tZWRpYS92aWRlby1wcmVzZW50YXRpb24tbW9kZS1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwz
MiBAQAorCitUZXN0IHRoZSB2aWRlbyBwcmVzZW50YXRpb24gbW9kZSAodmlkZW8gZnVsbHNjcmVl
biBhbmQgcGljdHVyZS1pbi1waWN0dXJlKSBBUEkuCisKKworRVZFTlQoY2FucGxheXRocm91Z2gp
CitFWFBFQ1RFRCAodmlkZW8ud2Via2l0U3VwcG9ydHNGdWxsc2NyZWVuID09ICd0cnVlJykgT0sK
K0VYUEVDVEVEICh2aWRlby53ZWJraXREaXNwbGF5aW5nRnVsbHNjcmVlbiA9PSAnZmFsc2UnKSBP
SworCisqKiBUcnkgdG8gZW50ZXIgZnVsbHNjcmVlbgorUlVOKHZpZGVvLndlYmtpdFNldFByZXNl
bnRhdGlvbk1vZGUoJ2Z1bGxzY3JlZW4nKSkKK0VWRU5UKHdlYmtpdHByZXNlbnRhdGlvbm1vZGVj
aGFuZ2VkKQorCisqKiBFbnRlcmVkIGZ1bGxzY3JlZW4KK0VYUEVDVEVEICh2aWRlby53ZWJraXRQ
cmVzZW50YXRpb25Nb2RlID09ICdmdWxsc2NyZWVuJykgT0sKKworKiogVHJ5IHRvIGVudGVyIHBp
Y3R1cmUtaW4tcGljdHVyZQorUlVOKHZpZGVvLndlYmtpdFNldFByZXNlbnRhdGlvbk1vZGUoJ3Bp
Y3R1cmUtaW4tcGljdHVyZScpKQorRVZFTlQod2Via2l0cHJlc2VudGF0aW9ubW9kZWNoYW5nZWQp
CisKKyoqIEVudGVyZWQgcGljdHVyZS1pbi1waWN0dXIKK0VYUEVDVEVEICh2aWRlby53ZWJraXRQ
cmVzZW50YXRpb25Nb2RlID09ICdwaWN0dXJlLWluLXBpY3R1cmUnKSBPSworCisqKiBUcnkgdG8g
cmV0dXJuIHRvIGlubGluZQorUlVOKHZpZGVvLndlYmtpdFNldFByZXNlbnRhdGlvbk1vZGUoJ2lu
bGluZScpKQorRVZFTlQod2Via2l0cHJlc2VudGF0aW9ubW9kZWNoYW5nZWQpCisKKyoqIFJldHVy
bmVkIHRvIGlubGluZQorRVhQRUNURUQgKHZpZGVvLndlYmtpdFByZXNlbnRhdGlvbk1vZGUgPT0g
J2lubGluZScpIE9LCisKKyoqIFRlc3QgQ29tcGxldGVkCitFTkQgT0YgVEVTVAorCmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9tZWRpYS92aWRlby1wcmVzZW50YXRpb24tbW9kZS5odG1sIGIvTGF5
b3V0VGVzdHMvbWVkaWEvdmlkZW8tcHJlc2VudGF0aW9uLW1vZGUuaHRtbApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4z
ZmY0MzZlMGUxMjExYzBjNzE2YTI3YWFlMWRkNDRlMGEzOTUyZjUxCi0tLSAvZGV2L251bGwKKysr
IGIvTGF5b3V0VGVzdHMvbWVkaWEvdmlkZW8tcHJlc2VudGF0aW9uLW1vZGUuaHRtbApAQCAtMCww
ICsxLDYxIEBACis8IWRvY3R5cGUgaHRtbD4KKzxodG1sPgorICAgIDxoZWFkPgorICAgICAgICA8
c2NyaXB0IHNyYz1tZWRpYS1maWxlLmpzPjwvc2NyaXB0PgorICAgICAgICA8c2NyaXB0IHNyYz12
aWRlby10ZXN0LmpzPjwvc2NyaXB0PgorICAgICAgICA8c2NyaXB0PgorICAgICAgICAgICAgZnVu
Y3Rpb24gc3RhcnQoKQorICAgICAgICAgICAgeworICAgICAgICAgICAgICAgIGlmICh3aW5kb3cu
aW50ZXJuYWxzKQorICAgICAgICAgICAgICAgICAgICB3aW5kb3cuaW50ZXJuYWxzLnNldHRpbmdz
LnNldEFsbG93c1BpY3R1cmVJblBpY3R1cmVNZWRpYVBsYXliYWNrKHRydWUpOworCisgICAgICAg
ICAgICAgICAgdmlkZW8gPSBkb2N1bWVudC5nZXRFbGVtZW50c0J5VGFnTmFtZSgndmlkZW8nKVsw
XTsKKyAgICAgICAgICAgICAgICB3YWl0Rm9yRXZlbnRPbmNlKCJjYW5wbGF5dGhyb3VnaCIsIGNh
bnBsYXl0aHJvdWdoKTsKKyAgICAgICAgICAgICAgICB2aWRlby5zcmMgPSBmaW5kTWVkaWFGaWxl
KCJ2aWRlbyIsICJjb250ZW50L3Rlc3QiKTsKKworICAgICAgICAgICAgICAgIGNvbnNvbGVXcml0
ZSgiIik7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIGZ1bmN0aW9uIGNhbnBsYXl0aHJv
dWdoKCkKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICB0ZXN0RXhwZWN0ZWQoInZpZGVv
LndlYmtpdFN1cHBvcnRzRnVsbHNjcmVlbiIsIHRydWUpOworICAgICAgICAgICAgICAgIHRlc3RF
eHBlY3RlZCgidmlkZW8ud2Via2l0RGlzcGxheWluZ0Z1bGxzY3JlZW4iLCBmYWxzZSk7CisKKyAg
ICAgICAgICAgICAgICBjb25zb2xlV3JpdGUoIjxicj4qKiBUcnkgdG8gZW50ZXIgZnVsbHNjcmVl
biIpOworICAgICAgICAgICAgICAgIHJ1bldpdGhLZXlEb3duKCJ2aWRlby53ZWJraXRTZXRQcmVz
ZW50YXRpb25Nb2RlKCdmdWxsc2NyZWVuJykiKTsKKyAgICAgICAgICAgICAgICB3YWl0Rm9yRXZl
bnRPbmNlKCd3ZWJraXRwcmVzZW50YXRpb25tb2RlY2hhbmdlZCcsIHByZXNlbnRhdGlvbk1vZGVD
aGFuZ2VkMSk7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIGZ1bmN0aW9uIHByZXNlbnRh
dGlvbk1vZGVDaGFuZ2VkMSgpCisgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgY29uc29s
ZVdyaXRlKCI8YnI+KiogRW50ZXJlZCBmdWxsc2NyZWVuIik7CisgICAgICAgICAgICAgICAgdGVz
dEV4cGVjdGVkKCJ2aWRlby53ZWJraXRQcmVzZW50YXRpb25Nb2RlIiwgImZ1bGxzY3JlZW4iKTsK
KyAgICAgICAgICAgICAgICBjb25zb2xlV3JpdGUoIjxicj4qKiBUcnkgdG8gZW50ZXIgcGljdHVy
ZS1pbi1waWN0dXJlIik7CisgICAgICAgICAgICAgICAgd2FpdEZvckV2ZW50T25jZSgnd2Via2l0
cHJlc2VudGF0aW9ubW9kZWNoYW5nZWQnLCBwcmVzZW50YXRpb25Nb2RlQ2hhbmdlZDIpOworICAg
ICAgICAgICAgICAgIHJ1bldpdGhLZXlEb3duKCJ2aWRlby53ZWJraXRTZXRQcmVzZW50YXRpb25N
b2RlKCdwaWN0dXJlLWluLXBpY3R1cmUnKSIpOworICAgICAgICAgICAgfQorCisgICAgICAgICAg
ICBmdW5jdGlvbiBwcmVzZW50YXRpb25Nb2RlQ2hhbmdlZDIoKQorICAgICAgICAgICAgeworICAg
ICAgICAgICAgICAgIGNvbnNvbGVXcml0ZSgiPGJyPioqIEVudGVyZWQgcGljdHVyZS1pbi1waWN0
dXIiKTsKKyAgICAgICAgICAgICAgICB0ZXN0RXhwZWN0ZWQoInZpZGVvLndlYmtpdFByZXNlbnRh
dGlvbk1vZGUiLCAicGljdHVyZS1pbi1waWN0dXJlIik7CisgICAgICAgICAgICAgICAgY29uc29s
ZVdyaXRlKCI8YnI+KiogVHJ5IHRvIHJldHVybiB0byBpbmxpbmUiKTsKKyAgICAgICAgICAgICAg
ICB3YWl0Rm9yRXZlbnRPbmNlKCd3ZWJraXRwcmVzZW50YXRpb25tb2RlY2hhbmdlZCcsIHRlc3RD
b21wbGV0ZWQpOworICAgICAgICAgICAgICAgIHJ1bldpdGhLZXlEb3duKCJ2aWRlby53ZWJraXRT
ZXRQcmVzZW50YXRpb25Nb2RlKCdpbmxpbmUnKSIpOworICAgICAgICAgICAgfQorCisgICAgICAg
ICAgICBmdW5jdGlvbiB0ZXN0Q29tcGxldGVkKCkKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAg
ICAgICBjb25zb2xlV3JpdGUoIjxicj4qKiBSZXR1cm5lZCB0byBpbmxpbmUiKTsKKyAgICAgICAg
ICAgICAgICB0ZXN0RXhwZWN0ZWQoInZpZGVvLndlYmtpdFByZXNlbnRhdGlvbk1vZGUiLCAiaW5s
aW5lIik7CisgICAgICAgICAgICAgICAgY29uc29sZVdyaXRlKCI8YnI+KiogVGVzdCBDb21wbGV0
ZWQiKTsKKyAgICAgICAgICAgICAgICBlbmRUZXN0KCk7CisgICAgICAgICAgICB9CisgICAgICAg
IDwvc2NyaXB0PgorICAgIDwvaGVhZD4KKworICAgIDxib2R5IG9ubG9hZD0ic3RhcnQoKSI+Cisg
ICAgICAgIDx2aWRlbyBjb250cm9scyBwbGF5c2lubGluZT48L3ZpZGVvPgorICAgICAgICA8cD5U
ZXN0IHRoZSB2aWRlbyBwcmVzZW50YXRpb24gbW9kZSAodmlkZW8gZnVsbHNjcmVlbiBhbmQgcGlj
dHVyZS1pbi1waWN0dXJlKSBBUEkuPC9wPgorICAgIDwvYm9keT4KKzwvaHRtbD4K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>397927</attachid>
            <date>2020-04-28 23:02:23 -0700</date>
            <delta_ts>2020-05-01 17:31:58 -0700</delta_ts>
            <desc>WIP patch - a simpler implementation</desc>
            <filename>bug-203723-20200428230222.patch</filename>
            <type>text/plain</type>
            <size>30702</size>
            <attacher name="Peng Liu">peng.liu6</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjYwODQyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYzBlM2ZhYmI2MTc4YjI2
M2ViY2Y5NWVjODM2Mzc3NzlmZTlhMzhkMS4uYTUzNzYyZTBiZjA3NjAyN2VmMGE4MzZlZjJlZWYz
MDNjZDVkMDFkNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE5IEBACisyMDIwLTA0LTI4ICBQZW5n
IExpdSAgPHBlbmcubGl1NkBhcHBsZS5jb20+CisKKyAgICAgICAgVXBkYXRlIFdlYktpdFRlc3RS
dW5uZXIgdG8gc3VwcG9ydCBydW5uaW5nIG11bHRpcGxlIHZpZGVvIGZ1bGxzY3JlZW4gYW5kIFBp
Y3R1cmUtaW4tUGljdHVyZSB0ZXN0cyBzaW11bHRhbmVvdXNseQorICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjAzNzIzCisKKyAgICAgICAgUmV2aWV3ZWQg
YnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVGVzdDogbWVkaWEvdmlkZW8tcHJlc2VudGF0
aW9uLW1vZGUuaHRtbAorCisgICAgICAgICogcGFnZS9DaHJvbWVDbGllbnQuaDoKKyAgICAgICAg
KFdlYkNvcmU6OkNocm9tZUNsaWVudDo6c2V0TW9ja1ZpZGVvUHJlc2VudGF0aW9uTW9kZUVuYWJs
ZWQpOgorICAgICAgICAqIHRlc3RpbmcvSW50ZXJuYWxzLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OkludGVybmFsczo6c2V0TW9ja1ZpZGVvUHJlc2VudGF0aW9uTW9kZUVuYWJsZWQpOgorICAgICAg
ICAqIHRlc3RpbmcvSW50ZXJuYWxzLmg6CisgICAgICAgICogdGVzdGluZy9JbnRlcm5hbHMuaWRs
OgorCiAyMDIwLTA0LTI4ICBKYWNrIExlZSAgPHNoaWhjaGllaF9sZWVAYXBwbGUuY29tPgogCiAg
ICAgICAgIE51bGxwdHIgY3Jhc2ggaW4gRWRpdENvbW1hbmQ6OkVkaXRDb21tYW5kIHZpYSBDb21w
b3NpdGVFZGl0Q29tbWFuZDo6cmVtb3ZlTm9kZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwppbmRleCAyMDBjYzc4YTlhYjY3ZjBk
YWQ0Nzk3YTZmYTc3ZjRmMWNjOWVmNmUxLi5kYTAxZTAwOTQ5MDQyOWM1MjY2NzZlY2NlMTQ2NmI2
NTU5MWE3ZGNkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZworKysgYi9Tb3Vy
Y2UvV2ViS2l0L0NoYW5nZUxvZwpAQCAtMSwzICsxLDM0IEBACisyMDIwLTA0LTI4ICBQZW5nIExp
dSAgPHBlbmcubGl1NkBhcHBsZS5jb20+CisKKyAgICAgICAgVXBkYXRlIFdlYktpdFRlc3RSdW5u
ZXIgdG8gc3VwcG9ydCBydW5uaW5nIG11bHRpcGxlIHZpZGVvIGZ1bGxzY3JlZW4gYW5kIFBpY3R1
cmUtaW4tUGljdHVyZSB0ZXN0cyBzaW11bHRhbmVvdXNseQorICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjAzNzIzCisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUGFnZVByb3h5Lmg6Cisg
ICAgICAgICogV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuY3BwOgor
ICAgICAgICAoV2ViS2l0OjpXZWJDaHJvbWVDbGllbnQ6OnNldE1vY2tWaWRlb1ByZXNlbnRhdGlv
bk1vZGVFbmFibGVkKToKKyAgICAgICAgKFdlYktpdDo6V2ViQ2hyb21lQ2xpZW50OjpzZXRVcFBs
YXliYWNrQ29udHJvbHNNYW5hZ2VyKToKKyAgICAgICAgKFdlYktpdDo6V2ViQ2hyb21lQ2xpZW50
OjpjbGVhclBsYXliYWNrQ29udHJvbHNNYW5hZ2VyKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dl
YkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5oOgorICAgICAgICAqIFdlYlByb2Nlc3MvY29j
b2EvVmlkZW9GdWxsc2NyZWVuTWFuYWdlci5oOgorICAgICAgICAoV2ViS2l0OjpWaWRlb0Z1bGxz
Y3JlZW5NYW5hZ2VyOjpzZXRNb2NrVmlkZW9QcmVzZW50YXRpb25Nb2RlRW5hYmxlZCk6CisgICAg
ICAgICogV2ViUHJvY2Vzcy9jb2NvYS9WaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyLm1tOgorICAgICAg
ICAoV2ViS2l0OjpWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyOjplbnRlclZpZGVvRnVsbHNjcmVlbkZv
clZpZGVvRWxlbWVudCk6CisgICAgICAgIChXZWJLaXQ6OlZpZGVvRnVsbHNjcmVlbk1hbmFnZXI6
OmV4aXRWaWRlb0Z1bGxzY3JlZW5Gb3JWaWRlb0VsZW1lbnQpOgorICAgICAgICAoV2ViS2l0OjpW
aWRlb0Z1bGxzY3JlZW5NYW5hZ2VyOjpleGl0VmlkZW9GdWxsc2NyZWVuVG9Nb2RlV2l0aG91dEFu
aW1hdGlvbik6CisgICAgICAgIChXZWJLaXQ6OlZpZGVvRnVsbHNjcmVlbk1hbmFnZXI6Omhhc1Zp
ZGVvQ2hhbmdlZCk6CisgICAgICAgIChXZWJLaXQ6OlZpZGVvRnVsbHNjcmVlbk1hbmFnZXI6OnZp
ZGVvRGltZW5zaW9uc0NoYW5nZWQpOgorICAgICAgICAoV2ViS2l0OjpWaWRlb0Z1bGxzY3JlZW5N
YW5hZ2VyOjpyZXF1ZXN0VXBkYXRlSW5saW5lUmVjdCk6CisgICAgICAgIChXZWJLaXQ6OlZpZGVv
RnVsbHNjcmVlbk1hbmFnZXI6OnJlcXVlc3RWaWRlb0NvbnRlbnRMYXllcik6CisgICAgICAgIChX
ZWJLaXQ6OlZpZGVvRnVsbHNjcmVlbk1hbmFnZXI6OnJldHVyblZpZGVvQ29udGVudExheWVyKToK
KyAgICAgICAgKFdlYktpdDo6VmlkZW9GdWxsc2NyZWVuTWFuYWdlcjo6ZGlkU2V0dXBGdWxsc2Ny
ZWVuKToKKyAgICAgICAgKFdlYktpdDo6VmlkZW9GdWxsc2NyZWVuTWFuYWdlcjo6d2lsbEV4aXRG
dWxsc2NyZWVuKToKKyAgICAgICAgKFdlYktpdDo6VmlkZW9GdWxsc2NyZWVuTWFuYWdlcjo6ZGlk
RW50ZXJGdWxsc2NyZWVuKToKKyAgICAgICAgKFdlYktpdDo6VmlkZW9GdWxsc2NyZWVuTWFuYWdl
cjo6ZGlkRXhpdEZ1bGxzY3JlZW4pOgorICAgICAgICAoV2ViS2l0OjpWaWRlb0Z1bGxzY3JlZW5N
YW5hZ2VyOjpkaWRDbGVhbnVwRnVsbHNjcmVlbik6CisgICAgICAgIChXZWJLaXQ6OlZpZGVvRnVs
bHNjcmVlbk1hbmFnZXI6OmZ1bGxzY3JlZW5NYXlSZXR1cm5Ub0lubGluZSk6CisKIDIwMjAtMDQt
MjggIERhdmlkIEtpbHplciAgPGRka2lsemVyQGFwcGxlLmNvbT4KIAogICAgICAgICBbTWFjQ2F0
YWx5c3RdIEFkZCBtaXNzaW5nIHN5bWxpbmtzIHRvIFdlYktpdC5mcmFtZXdvcmtzCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0TGVn
YWN5L21hYy9DaGFuZ2VMb2cKaW5kZXggOWJkNGRjMzk3NTBmMmYxNWIzY2UyZTg5ZGRiNjk3OGFk
NDg0NjZlYi4uY2ExMWM3ZjFjYmYyMTdhYjc5ZGNmNzA3ZmQwM2NkNjg5ZWM2YzcwYSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJL
aXRMZWdhY3kvbWFjL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE3IEBACisyMDIwLTA0LTI4ICBQZW5n
IExpdSAgPHBlbmcubGl1NkBhcHBsZS5jb20+CisKKyAgICAgICAgVXBkYXRlIFdlYktpdFRlc3RS
dW5uZXIgdG8gc3VwcG9ydCBydW5uaW5nIG11bHRpcGxlIHZpZGVvIGZ1bGxzY3JlZW4gYW5kIFBp
Y3R1cmUtaW4tUGljdHVyZSB0ZXN0cyBzaW11bHRhbmVvdXNseQorICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjAzNzIzCisKKyAgICAgICAgUmV2aWV3ZWQg
YnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVD
bGllbnQuaDoKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQubW06Cisg
ICAgICAgIChXZWJDaHJvbWVDbGllbnQ6OnNldE1vY2tWaWRlb1ByZXNlbnRhdGlvbk1vZGVFbmFi
bGVkKToKKyAgICAgICAgKiBXZWJWaWV3L1dlYlZpZXcubW06CisgICAgICAgICogV2ViVmlldy9X
ZWJWaWV3RGF0YS5oOgorICAgICAgICAqIFdlYlZpZXcvV2ViVmlld0ludGVybmFsLmg6CisKIDIw
MjAtMDQtMjcgIEFudG9pbmUgUXVpbnQgIDxncmFvdXRzQGFwcGxlLmNvbT4KIAogICAgICAgICBD
bGVhbiB1cCBzb21lIHVzZWxlc3MgaW5jbHVkZXMgb2YgQ1NTQW5pbWF0aW9uQ29udHJvbGxlci5o
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0Nocm9tZUNsaWVudC5oIGIvU291cmNl
L1dlYkNvcmUvcGFnZS9DaHJvbWVDbGllbnQuaAppbmRleCA3NThkM2M2NmMzNDAzMzIzMTQ1OTQ1
NWJiNGVlODE3YTEyMzRlM2I0Li4zNDNkYTJjMTIzODUyMWE4NjljMmE4YTc3YTczYWJkMjk1ZDRi
NjUxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0Nocm9tZUNsaWVudC5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BhZ2UvQ2hyb21lQ2xpZW50LmgKQEAgLTM3OCw2ICszNzgsMTAgQEAg
cHVibGljOgogICAgIHZpcnR1YWwgdm9pZCBzZXRSb290RnVsbFNjcmVlbkxheWVyKEdyYXBoaWNz
TGF5ZXIqKSB7IH0KICNlbmRpZgogCisjaWYgRU5BQkxFKFZJREVPX1BSRVNFTlRBVElPTl9NT0RF
KQorICAgIHZpcnR1YWwgdm9pZCBzZXRNb2NrVmlkZW9QcmVzZW50YXRpb25Nb2RlRW5hYmxlZChi
b29sKSB7IH0KKyNlbmRpZgorCiAjaWYgVVNFKENPT1JESU5BVEVEX0dSQVBISUNTKQogICAgIHZp
cnR1YWwgSW50UmVjdCB2aXNpYmxlUmVjdEZvclRpbGVkQmFja2luZ1N0b3JlKCkgY29uc3QgeyBy
ZXR1cm4gSW50UmVjdCgpOyB9CiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Rl
c3RpbmcvSW50ZXJuYWxzLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmNw
cAppbmRleCAwZjhiZWM5MTE2MjczMjg2YjRmYzUyNjNiMjAxYjc0MTcxNjQ2ZTQ2Li41MTRmYTY3
ZTFiODdmMWJmY2U4OTMzOTQxMDg0NWMyZjI5MTQ0ZDlkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS90ZXN0aW5nL0ludGVybmFscy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9J
bnRlcm5hbHMuY3BwCkBAIC0zMjY2LDYgKzMyNjYsMTcgQEAgdm9pZCBJbnRlcm5hbHM6OnNldEZ1
bGxzY3JlZW5Db250cm9sc0hpZGRlbihib29sIGhpZGRlbikKICAgICBwYWdlLT5zZXRGdWxsc2Ny
ZWVuQ29udHJvbHNIaWRkZW4oaGlkZGVuKTsKIH0KIAorI2lmIEVOQUJMRShWSURFT19QUkVTRU5U
QVRJT05fTU9ERSkKK3ZvaWQgSW50ZXJuYWxzOjpzZXRNb2NrVmlkZW9QcmVzZW50YXRpb25Nb2Rl
RW5hYmxlZChib29sIGVuYWJsZWQpCit7CisgICAgRG9jdW1lbnQqIGRvY3VtZW50ID0gY29udGV4
dERvY3VtZW50KCk7CisgICAgaWYgKCFkb2N1bWVudCB8fCAhZG9jdW1lbnQtPnBhZ2UoKSkKKyAg
ICAgICAgcmV0dXJuOworCisgICAgZG9jdW1lbnQtPnBhZ2UoKS0+Y2hyb21lKCkuY2xpZW50KCku
c2V0TW9ja1ZpZGVvUHJlc2VudGF0aW9uTW9kZUVuYWJsZWQoZW5hYmxlZCk7Cit9CisjZW5kaWYK
Kwogdm9pZCBJbnRlcm5hbHM6OnNldEFwcGxpY2F0aW9uQ2FjaGVPcmlnaW5RdW90YSh1bnNpZ25l
ZCBsb25nIGxvbmcgcXVvdGEpCiB7CiAgICAgRG9jdW1lbnQqIGRvY3VtZW50ID0gY29udGV4dERv
Y3VtZW50KCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5o
IGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuaAppbmRleCAyM2M0ZmMwZDg2Y2Q4
ZjVhOWQ0YTczNTlmYTJjMjNkMDlkOWNiMTZmLi4yNWNkZDFhYTQ0MGM1YTUxNzJiMGExOTVlYjAx
YmIxMmNhZGQ4YmY0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFs
cy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmgKQEAgLTQ5Myw2ICs0
OTMsMTAgQEAgcHVibGljOgogICAgIHZvaWQgc2V0RnVsbHNjcmVlbkF1dG9IaWRlRHVyYXRpb24o
ZG91YmxlKTsKICAgICB2b2lkIHNldEZ1bGxzY3JlZW5Db250cm9sc0hpZGRlbihib29sKTsKIAor
I2lmIEVOQUJMRShWSURFT19QUkVTRU5UQVRJT05fTU9ERSkKKyAgICB2b2lkIHNldE1vY2tWaWRl
b1ByZXNlbnRhdGlvbk1vZGVFbmFibGVkKGJvb2wpOworI2VuZGlmCisKICAgICBXRUJDT1JFX1RF
U1RTVVBQT1JUX0VYUE9SVCB2b2lkIHNldEFwcGxpY2F0aW9uQ2FjaGVPcmlnaW5RdW90YSh1bnNp
Z25lZCBsb25nIGxvbmcpOwogCiAgICAgdm9pZCByZWdpc3RlclVSTFNjaGVtZUFzQnlwYXNzaW5n
Q29udGVudFNlY3VyaXR5UG9saWN5KGNvbnN0IFN0cmluZyYgc2NoZW1lKTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmlkbCBiL1NvdXJjZS9XZWJDb3JlL3Rl
c3RpbmcvSW50ZXJuYWxzLmlkbAppbmRleCBjMTUwZWNiYmRjMDMwYWVjOTcwOTE5MDcwOWZjNGRh
YmJjMGY5ZjEyLi45MjkzOTY0MWFiYWYwNWZmMTc0ZjY0ODlhM2QzZWM2NTI4MjAyMTU2IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5pZGwKKysrIGIvU291cmNl
L1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuaWRsCkBAIC01MzEsNiArNTMxLDggQEAgZW51bSBD
b21wb3NpdGluZ1BvbGljeSB7CiAgICAgdm9pZCBzZXRGdWxsc2NyZWVuQXV0b0hpZGVEdXJhdGlv
bihkb3VibGUgZHVyYXRpb24pOwogICAgIHZvaWQgc2V0RnVsbHNjcmVlbkNvbnRyb2xzSGlkZGVu
KGJvb2xlYW4gaGlkZGVuKTsKIAorICAgIFtDb25kaXRpb25hbD1WSURFT19QUkVTRU5UQVRJT05f
TU9ERV0gdm9pZCBzZXRNb2NrVmlkZW9QcmVzZW50YXRpb25Nb2RlRW5hYmxlZChib29sZWFuIGVu
YWJsZWQpOworCiAgICAgdm9pZCBzZXRBcHBsaWNhdGlvbkNhY2hlT3JpZ2luUXVvdGEodW5zaWdu
ZWQgbG9uZyBsb25nIHF1b3RhKTsKIAogICAgIHZvaWQgcmVnaXN0ZXJVUkxTY2hlbWVBc0J5cGFz
c2luZ0NvbnRlbnRTZWN1cml0eVBvbGljeShET01TdHJpbmcgc2NoZW1lKTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oIGIvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvV2ViUGFnZVByb3h5LmgKaW5kZXggZTM0YzBiZDVmNGI1MjQ4ZTBkYzYyZjNhZTNi
YzE4MDVjZDdmYjU4Yi4uOGM3ZDc1MDQ5NjIyYThhNWIyZjVlOWQ3MjBhOWE5MGY3YjdiNDYwZCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmgKKysrIGIv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmgKQEAgLTI3OTUsNyArMjc5NSw3
IEBAIHByaXZhdGU6CiAgICAgICAgIFJlZlB0cjxBUEk6Ok9iamVjdD4gbWVzc2FnZUJvZHk7CiAg
ICAgfTsKICAgICBWZWN0b3I8SW5qZWN0ZWRCdW5kbGVNZXNzYWdlPiBtX3BlbmRpbmdJbmplY3Rl
ZEJ1bmRsZU1lc3NhZ2VzOwotICAgICAgICAKKwogI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpICYm
IEVOQUJMRShERVZJQ0VfT1JJRU5UQVRJT04pCiAgICAgc3RkOjp1bmlxdWVfcHRyPFdlYkRldmlj
ZU9yaWVudGF0aW9uVXBkYXRlUHJvdmlkZXJQcm94eT4gbV93ZWJEZXZpY2VPcmllbnRhdGlvblVw
ZGF0ZVByb3ZpZGVyUHJveHk7CiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuY3BwIGIvU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5jcHAKaW5kZXggOTRi
MWJmZDg3N2IzYTViMTg5Mzk4MzAzYmMyNTA1NDIyN2RiMjYxNy4uOGU4OTFiMDgxYzg4MGY3ODVm
ODMwMjU0NzNiMDA3ODFmMWVmMTg2NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5jcHAKKysrIGIvU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5jcHAKQEAgLTk4Nywx
NCArOTg3LDkgQEAgYm9vbCBXZWJDaHJvbWVDbGllbnQ6OnN1cHBvcnRzVmlkZW9GdWxsc2NyZWVu
U3RhbmRieSgpCiAgICAgcmV0dXJuIG1fcGFnZS52aWRlb0Z1bGxzY3JlZW5NYW5hZ2VyKCkuc3Vw
cG9ydHNWaWRlb0Z1bGxzY3JlZW5TdGFuZGJ5KCk7CiB9CiAKLXZvaWQgV2ViQ2hyb21lQ2xpZW50
OjpzZXRVcFBsYXliYWNrQ29udHJvbHNNYW5hZ2VyKEhUTUxNZWRpYUVsZW1lbnQmIG1lZGlhRWxl
bWVudCkKK3ZvaWQgV2ViQ2hyb21lQ2xpZW50OjpzZXRNb2NrVmlkZW9QcmVzZW50YXRpb25Nb2Rl
RW5hYmxlZChib29sIGVuYWJsZWQpCiB7Ci0gICAgbV9wYWdlLnBsYXliYWNrU2Vzc2lvbk1hbmFn
ZXIoKS5zZXRVcFBsYXliYWNrQ29udHJvbHNNYW5hZ2VyKG1lZGlhRWxlbWVudCk7Ci19Ci0KLXZv
aWQgV2ViQ2hyb21lQ2xpZW50OjpjbGVhclBsYXliYWNrQ29udHJvbHNNYW5hZ2VyKCkKLXsKLSAg
ICBtX3BhZ2UucGxheWJhY2tTZXNzaW9uTWFuYWdlcigpLmNsZWFyUGxheWJhY2tDb250cm9sc01h
bmFnZXIoKTsKKyAgICBtX3BhZ2UudmlkZW9GdWxsc2NyZWVuTWFuYWdlcigpLnNldE1vY2tWaWRl
b1ByZXNlbnRhdGlvbk1vZGVFbmFibGVkKGVuYWJsZWQpOwogfQogCiB2b2lkIFdlYkNocm9tZUNs
aWVudDo6ZW50ZXJWaWRlb0Z1bGxzY3JlZW5Gb3JWaWRlb0VsZW1lbnQoSFRNTFZpZGVvRWxlbWVu
dCYgdmlkZW9FbGVtZW50LCBIVE1MTWVkaWFFbGVtZW50RW51bXM6OlZpZGVvRnVsbHNjcmVlbk1v
ZGUgbW9kZSwgYm9vbCBzdGFuZGJ5KQpAQCAtMTAxMSw2ICsxMDA2LDE3IEBAIHZvaWQgV2ViQ2hy
b21lQ2xpZW50OjpleGl0VmlkZW9GdWxsc2NyZWVuRm9yVmlkZW9FbGVtZW50KEhUTUxWaWRlb0Vs
ZW1lbnQmIHZpZGVvCiB7CiAgICAgbV9wYWdlLnZpZGVvRnVsbHNjcmVlbk1hbmFnZXIoKS5leGl0
VmlkZW9GdWxsc2NyZWVuRm9yVmlkZW9FbGVtZW50KHZpZGVvRWxlbWVudCk7CiB9CisKK3ZvaWQg
V2ViQ2hyb21lQ2xpZW50OjpzZXRVcFBsYXliYWNrQ29udHJvbHNNYW5hZ2VyKEhUTUxNZWRpYUVs
ZW1lbnQmIG1lZGlhRWxlbWVudCkKK3sKKyAgICBtX3BhZ2UucGxheWJhY2tTZXNzaW9uTWFuYWdl
cigpLnNldFVwUGxheWJhY2tDb250cm9sc01hbmFnZXIobWVkaWFFbGVtZW50KTsKK30KKwordm9p
ZCBXZWJDaHJvbWVDbGllbnQ6OmNsZWFyUGxheWJhY2tDb250cm9sc01hbmFnZXIoKQoreworICAg
IG1fcGFnZS5wbGF5YmFja1Nlc3Npb25NYW5hZ2VyKCkuY2xlYXJQbGF5YmFja0NvbnRyb2xzTWFu
YWdlcigpOworfQorCiAjZW5kaWYKIAogI2lmIEVOQUJMRShNRURJQV9VU0FHRSkKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGll
bnQuaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVD
bGllbnQuaAppbmRleCA2ZGJiOTE2OTE3NjUwMjJkMTljNThhYjE5YWQxODU1MzRmYzhlMGQyLi5i
Y2U1MTMwYmRmNzcyMGYwZWY5N2Q2YmE3NDMzNGUzMjU2ODMyYzdmIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmgKKysr
IGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVu
dC5oCkBAIC0yNjQsMTAgKzI2NCwxMSBAQCBwcml2YXRlOgogI2lmIEVOQUJMRShWSURFT19QUkVT
RU5UQVRJT05fTU9ERSkKICAgICBib29sIHN1cHBvcnRzVmlkZW9GdWxsc2NyZWVuKFdlYkNvcmU6
OkhUTUxNZWRpYUVsZW1lbnRFbnVtczo6VmlkZW9GdWxsc2NyZWVuTW9kZSkgZmluYWw7CiAgICAg
Ym9vbCBzdXBwb3J0c1ZpZGVvRnVsbHNjcmVlblN0YW5kYnkoKSBmaW5hbDsKLSAgICB2b2lkIHNl
dFVwUGxheWJhY2tDb250cm9sc01hbmFnZXIoV2ViQ29yZTo6SFRNTE1lZGlhRWxlbWVudCYpIGZp
bmFsOwotICAgIHZvaWQgY2xlYXJQbGF5YmFja0NvbnRyb2xzTWFuYWdlcigpIGZpbmFsOworICAg
IHZvaWQgc2V0TW9ja1ZpZGVvUHJlc2VudGF0aW9uTW9kZUVuYWJsZWQoYm9vbCkgZmluYWw7CiAg
ICAgdm9pZCBlbnRlclZpZGVvRnVsbHNjcmVlbkZvclZpZGVvRWxlbWVudChXZWJDb3JlOjpIVE1M
VmlkZW9FbGVtZW50JiwgV2ViQ29yZTo6SFRNTE1lZGlhRWxlbWVudEVudW1zOjpWaWRlb0Z1bGxz
Y3JlZW5Nb2RlLCBib29sIHN0YW5kYnkpIGZpbmFsOwogICAgIHZvaWQgZXhpdFZpZGVvRnVsbHNj
cmVlbkZvclZpZGVvRWxlbWVudChXZWJDb3JlOjpIVE1MVmlkZW9FbGVtZW50JikgZmluYWw7Cisg
ICAgdm9pZCBzZXRVcFBsYXliYWNrQ29udHJvbHNNYW5hZ2VyKFdlYkNvcmU6OkhUTUxNZWRpYUVs
ZW1lbnQmKSBmaW5hbDsKKyAgICB2b2lkIGNsZWFyUGxheWJhY2tDb250cm9sc01hbmFnZXIoKSBm
aW5hbDsKICNlbmRpZgogCiAjaWYgRU5BQkxFKE1FRElBX1VTQUdFKQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL2NvY29hL1ZpZGVvRnVsbHNjcmVlbk1hbmFnZXIuaCBiL1Nv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9jb2NvYS9WaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyLmgKaW5k
ZXggZjEzNmVjYjlkZDNlYWNlZmFkZDk3NGJkY2RiZDQyY2FlZmY2MjdjZi4uNTNiN2I5MzNjZDFh
MjQ2NDlhNWZjNjM1OWExMmQ3MDJhNGZiMDU3NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL2NvY29hL1ZpZGVvRnVsbHNjcmVlbk1hbmFnZXIuaAorKysgYi9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvY29jb2EvVmlkZW9GdWxsc2NyZWVuTWFuYWdlci5oCkBAIC0xMTUsOSAr
MTE1LDEwIEBAIHB1YmxpYzoKICAgICAKICAgICB2b2lkIGRpZFJlY2VpdmVNZXNzYWdlKElQQzo6
Q29ubmVjdGlvbiYsIElQQzo6RGVjb2RlciYpIG92ZXJyaWRlOwogCi0gICAgLy8gSW50ZXJmYWNl
IHRvIENocm9tZUNsaWVudAorICAgIC8vIEludGVyZmFjZSB0byBXZWJDaHJvbWVDbGllbnQKICAg
ICBib29sIHN1cHBvcnRzVmlkZW9GdWxsc2NyZWVuKFdlYkNvcmU6OkhUTUxNZWRpYUVsZW1lbnRF
bnVtczo6VmlkZW9GdWxsc2NyZWVuTW9kZSkgY29uc3Q7CiAgICAgYm9vbCBzdXBwb3J0c1ZpZGVv
RnVsbHNjcmVlblN0YW5kYnkoKSBjb25zdDsKKyAgICB2b2lkIHNldE1vY2tWaWRlb1ByZXNlbnRh
dGlvbk1vZGVFbmFibGVkKGJvb2wgZW5hYmxlZCkgeyBtX21vY2tWaWRlb1ByZXNlbnRhdGlvbk1v
ZGVFbmFibGVkID0gZW5hYmxlZDsgfQogICAgIHZvaWQgZW50ZXJWaWRlb0Z1bGxzY3JlZW5Gb3JW
aWRlb0VsZW1lbnQoV2ViQ29yZTo6SFRNTFZpZGVvRWxlbWVudCYsIFdlYkNvcmU6OkhUTUxNZWRp
YUVsZW1lbnRFbnVtczo6VmlkZW9GdWxsc2NyZWVuTW9kZSwgYm9vbCBzdGFuZGJ5KTsKICAgICB2
b2lkIGV4aXRWaWRlb0Z1bGxzY3JlZW5Gb3JWaWRlb0VsZW1lbnQoV2ViQ29yZTo6SFRNTFZpZGVv
RWxlbWVudCYpOwogICAgIHZvaWQgZXhpdFZpZGVvRnVsbHNjcmVlblRvTW9kZVdpdGhvdXRBbmlt
YXRpb24oV2ViQ29yZTo6SFRNTFZpZGVvRWxlbWVudCYsIFdlYkNvcmU6OkhUTUxNZWRpYUVsZW1l
bnRFbnVtczo6VmlkZW9GdWxsc2NyZWVuTW9kZSk7CkBAIC0xNTcsNiArMTU4LDcgQEAgcHJvdGVj
dGVkOgogICAgIHZvaWQgcmVxdWVzdFJvdXRlU2hhcmluZ1BvbGljeUFuZENvbnRleHRVSUQodWlu
dDY0X3QgY29udGV4dElkLCBNZXNzYWdlczo6VmlkZW9GdWxsc2NyZWVuTWFuYWdlcjo6UmVxdWVz
dFJvdXRlU2hhcmluZ1BvbGljeUFuZENvbnRleHRVSURBc3luY1JlcGx5JiYpOwogCiAgICAgV2Vi
UGFnZSogbV9wYWdlOworICAgIGJvb2wgbV9tb2NrVmlkZW9QcmVzZW50YXRpb25Nb2RlRW5hYmxl
ZCB7IGZhbHNlIH07CiAgICAgUmVmPFBsYXliYWNrU2Vzc2lvbk1hbmFnZXI+IG1fcGxheWJhY2tT
ZXNzaW9uTWFuYWdlcjsKICAgICBIYXNoTWFwPFdlYkNvcmU6OkhUTUxWaWRlb0VsZW1lbnQqLCB1
aW50NjRfdD4gbV92aWRlb0VsZW1lbnRzOwogICAgIEhhc2hNYXA8dWludDY0X3QsIE1vZGVsSW50
ZXJmYWNlVHVwbGU+IG1fY29udGV4dE1hcDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9jb2NvYS9WaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyLm1tIGIvU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL2NvY29hL1ZpZGVvRnVsbHNjcmVlbk1hbmFnZXIubW0KaW5kZXggZmY0YTJkM2U5
MTZiNTAwMmY2N2YzOWZmN2U5ZTExODU5YjM2N2U0NS4uNWFlNzM2NTQzMThhZTZiZDBhZGFhOTBl
ZjdiZDZjOTJhOWVjYjMzNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL2Nv
Y29hL1ZpZGVvRnVsbHNjcmVlbk1hbmFnZXIubW0KKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL2NvY29hL1ZpZGVvRnVsbHNjcmVlbk1hbmFnZXIubW0KQEAgLTI4NSw3ICsyODUsMTAgQEAg
dm9pZCBWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyOjplbnRlclZpZGVvRnVsbHNjcmVlbkZvclZpZGVv
RWxlbWVudChIVE1MVmlkZW9FbGVtZW4KICAgICAgICAgaW50ZXJmYWNlLT5sYXllckhvc3RpbmdD
b250ZXh0KCktPnNldFJvb3RMYXllcih2aWRlb0xheWVyLmdldCgpKTsKICAgICB9CiAKLSAgICBt
X3BhZ2UtPnNlbmQoTWVzc2FnZXM6OlZpZGVvRnVsbHNjcmVlbk1hbmFnZXJQcm94eTo6U2V0dXBG
dWxsc2NyZWVuV2l0aElEKGNvbnRleHRJZCwgaW50ZXJmYWNlLT5sYXllckhvc3RpbmdDb250ZXh0
KCktPmNvbnRleHRJRCgpLCB2aWRlb1JlY3QsIG1fcGFnZS0+ZGV2aWNlU2NhbGVGYWN0b3IoKSwg
aW50ZXJmYWNlLT5mdWxsc2NyZWVuTW9kZSgpLCBhbGxvd3NQaWN0dXJlSW5QaWN0dXJlLCBzdGFu
ZGJ5KSk7CisgICAgaWYgKCFtX21vY2tWaWRlb1ByZXNlbnRhdGlvbk1vZGVFbmFibGVkKQorICAg
ICAgICBtX3BhZ2UtPnNlbmQoTWVzc2FnZXM6OlZpZGVvRnVsbHNjcmVlbk1hbmFnZXJQcm94eTo6
U2V0dXBGdWxsc2NyZWVuV2l0aElEKGNvbnRleHRJZCwgaW50ZXJmYWNlLT5sYXllckhvc3RpbmdD
b250ZXh0KCktPmNvbnRleHRJRCgpLCB2aWRlb1JlY3QsIG1fcGFnZS0+ZGV2aWNlU2NhbGVGYWN0
b3IoKSwgaW50ZXJmYWNlLT5mdWxsc2NyZWVuTW9kZSgpLCBhbGxvd3NQaWN0dXJlSW5QaWN0dXJl
LCBzdGFuZGJ5KSk7CisgICAgZWxzZQorICAgICAgICByZXF1ZXN0VmlkZW9Db250ZW50TGF5ZXIo
Y29udGV4dElkKTsKIH0KIAogdm9pZCBWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyOjpleGl0VmlkZW9G
dWxsc2NyZWVuRm9yVmlkZW9FbGVtZW50KFdlYkNvcmU6OkhUTUxWaWRlb0VsZW1lbnQmIHZpZGVv
RWxlbWVudCkKQEAgLTMwMSw3ICszMDQsMTEgQEAgdm9pZCBWaWRlb0Z1bGxzY3JlZW5NYW5hZ2Vy
OjpleGl0VmlkZW9GdWxsc2NyZWVuRm9yVmlkZW9FbGVtZW50KFdlYkNvcmU6OkhUTUxWaWQKICAg
ICAgICAgcmV0dXJuOwogCiAgICAgaW50ZXJmYWNlLnNldEFuaW1hdGlvblN0YXRlKFZpZGVvRnVs
bHNjcmVlbkludGVyZmFjZUNvbnRleHQ6OkFuaW1hdGlvblR5cGU6OkZyb21GdWxsc2NyZWVuKTsK
LSAgICBtX3BhZ2UtPnNlbmQoTWVzc2FnZXM6OlZpZGVvRnVsbHNjcmVlbk1hbmFnZXJQcm94eTo6
RXhpdEZ1bGxzY3JlZW4oY29udGV4dElkLCBpbmxpbmVWaWRlb0ZyYW1lKHZpZGVvRWxlbWVudCkp
KTsKKworICAgIGlmICghbV9tb2NrVmlkZW9QcmVzZW50YXRpb25Nb2RlRW5hYmxlZCkKKyAgICAg
ICAgbV9wYWdlLT5zZW5kKE1lc3NhZ2VzOjpWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyUHJveHk6OkV4
aXRGdWxsc2NyZWVuKGNvbnRleHRJZCwgaW5saW5lVmlkZW9GcmFtZSh2aWRlb0VsZW1lbnQpKSk7
CisgICAgZWxzZQorICAgICAgICByZXR1cm5WaWRlb0NvbnRlbnRMYXllcihjb250ZXh0SWQpOwog
fQogCiB2b2lkIFZpZGVvRnVsbHNjcmVlbk1hbmFnZXI6OmV4aXRWaWRlb0Z1bGxzY3JlZW5Ub01v
ZGVXaXRob3V0QW5pbWF0aW9uKFdlYkNvcmU6OkhUTUxWaWRlb0VsZW1lbnQmIHZpZGVvRWxlbWVu
dCwgV2ViQ29yZTo6SFRNTE1lZGlhRWxlbWVudEVudW1zOjpWaWRlb0Z1bGxzY3JlZW5Nb2RlIHRh
cmdldE1vZGUpCkBAIC0zMTcsNyArMzI0LDggQEAgdm9pZCBWaWRlb0Z1bGxzY3JlZW5NYW5hZ2Vy
OjpleGl0VmlkZW9GdWxsc2NyZWVuVG9Nb2RlV2l0aG91dEFuaW1hdGlvbihXZWJDb3JlOjoKIAog
ICAgIGludGVyZmFjZS5zZXRUYXJnZXRJc0Z1bGxzY3JlZW4oZmFsc2UpOwogCi0gICAgbV9wYWdl
LT5zZW5kKE1lc3NhZ2VzOjpWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyUHJveHk6OkV4aXRGdWxsc2Ny
ZWVuV2l0aG91dEFuaW1hdGlvblRvTW9kZShjb250ZXh0SWQsIHRhcmdldE1vZGUpKTsKKyAgICBp
ZiAoIW1fbW9ja1ZpZGVvUHJlc2VudGF0aW9uTW9kZUVuYWJsZWQpCisgICAgICAgIG1fcGFnZS0+
c2VuZChNZXNzYWdlczo6VmlkZW9GdWxsc2NyZWVuTWFuYWdlclByb3h5OjpFeGl0RnVsbHNjcmVl
bldpdGhvdXRBbmltYXRpb25Ub01vZGUoY29udGV4dElkLCB0YXJnZXRNb2RlKSk7CiAjZWxzZQog
ICAgIFVOVVNFRF9QQVJBTSh2aWRlb0VsZW1lbnQpOwogICAgIFVOVVNFRF9QQVJBTSh0YXJnZXRN
b2RlKTsKQEAgLTMyOCwxMyArMzM2LDEzIEBAIHZvaWQgVmlkZW9GdWxsc2NyZWVuTWFuYWdlcjo6
ZXhpdFZpZGVvRnVsbHNjcmVlblRvTW9kZVdpdGhvdXRBbmltYXRpb24oV2ViQ29yZTo6CiAKIHZv
aWQgVmlkZW9GdWxsc2NyZWVuTWFuYWdlcjo6aGFzVmlkZW9DaGFuZ2VkKHVpbnQ2NF90IGNvbnRl
eHRJZCwgYm9vbCBoYXNWaWRlbykKIHsKLSAgICBpZiAobV9wYWdlKQorICAgIGlmICghbV9tb2Nr
VmlkZW9QcmVzZW50YXRpb25Nb2RlRW5hYmxlZCAmJiBtX3BhZ2UpCiAgICAgICAgIG1fcGFnZS0+
c2VuZChNZXNzYWdlczo6VmlkZW9GdWxsc2NyZWVuTWFuYWdlclByb3h5OjpTZXRIYXNWaWRlbyhj
b250ZXh0SWQsIGhhc1ZpZGVvKSk7CiB9CiAKIHZvaWQgVmlkZW9GdWxsc2NyZWVuTWFuYWdlcjo6
dmlkZW9EaW1lbnNpb25zQ2hhbmdlZCh1aW50NjRfdCBjb250ZXh0SWQsIGNvbnN0IEZsb2F0U2l6
ZSYgdmlkZW9EaW1lbnNpb25zKQogewotICAgIGlmIChtX3BhZ2UpCisgICAgaWYgKCFtX21vY2tW
aWRlb1ByZXNlbnRhdGlvbk1vZGVFbmFibGVkICYmIG1fcGFnZSkKICAgICAgICAgbV9wYWdlLT5z
ZW5kKE1lc3NhZ2VzOjpWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyUHJveHk6OlNldFZpZGVvRGltZW5z
aW9ucyhjb250ZXh0SWQsIHZpZGVvRGltZW5zaW9ucykpOwogfQogCkBAIC0zNTIsNyArMzYwLDcg
QEAgdm9pZCBWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyOjpmdWxsc2NyZWVuTW9kZUNoYW5nZWQodWlu
dDY0X3QgY29udGV4dElkLCBXZWJDb3JlOjoKIAogdm9pZCBWaWRlb0Z1bGxzY3JlZW5NYW5hZ2Vy
OjpyZXF1ZXN0VXBkYXRlSW5saW5lUmVjdCh1aW50NjRfdCBjb250ZXh0SWQpCiB7Ci0gICAgaWYg
KCFtX3BhZ2UpCisgICAgaWYgKG1fbW9ja1ZpZGVvUHJlc2VudGF0aW9uTW9kZUVuYWJsZWQgfHwg
IW1fcGFnZSkKICAgICAgICAgcmV0dXJuOwogCiAgICAgYXV0byYgbW9kZWwgPSBlbnN1cmVNb2Rl
bChjb250ZXh0SWQpOwpAQCAtMzY4LDggKzM3NiwxMyBAQCB2b2lkIFZpZGVvRnVsbHNjcmVlbk1h
bmFnZXI6OnJlcXVlc3RWaWRlb0NvbnRlbnRMYXllcih1aW50NjRfdCBjb250ZXh0SWQpCiAKICAg
ICBtb2RlbC0+c2V0VmlkZW9GdWxsc2NyZWVuTGF5ZXIodmlkZW9MYXllciwgW3Byb3RlY3RlZFRo
aXMgPSBtYWtlUmVmUHRyKHRoaXMpLCB0aGlzLCBjb250ZXh0SWRdICgpIG11dGFibGUgewogICAg
ICAgICBkaXNwYXRjaF9hc3luYyhkaXNwYXRjaF9nZXRfbWFpbl9xdWV1ZSgpLCBbcHJvdGVjdGVk
VGhpcyA9IFdURk1vdmUocHJvdGVjdGVkVGhpcyksIHRoaXMsIGNvbnRleHRJZF0gewotICAgICAg
ICAgICAgaWYgKHByb3RlY3RlZFRoaXMtPm1fcGFnZSkKKyAgICAgICAgICAgIGlmICghbV9wYWdl
KQorICAgICAgICAgICAgICAgIHJldHVybjsKKworICAgICAgICAgICAgaWYgKCFtX21vY2tWaWRl
b1ByZXNlbnRhdGlvbk1vZGVFbmFibGVkKQogICAgICAgICAgICAgICAgIG1fcGFnZS0+c2VuZChN
ZXNzYWdlczo6VmlkZW9GdWxsc2NyZWVuTWFuYWdlclByb3h5OjpTZXRIYXNWaWRlb0NvbnRlbnRM
YXllcihjb250ZXh0SWQsIHRydWUpKTsKKyAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAg
ICBkaWRTZXR1cEZ1bGxzY3JlZW4oY29udGV4dElkKTsKICAgICAgICAgfSk7CiAgICAgfSk7CiB9
CkBAIC0zODQsOCArMzk3LDEzIEBAIHZvaWQgVmlkZW9GdWxsc2NyZWVuTWFuYWdlcjo6cmV0dXJu
VmlkZW9Db250ZW50TGF5ZXIodWludDY0X3QgY29udGV4dElkKQogICAgICAgICBkaXNwYXRjaF9h
c3luYyhkaXNwYXRjaF9nZXRfbWFpbl9xdWV1ZSgpLCBbcHJvdGVjdGVkVGhpcyA9IFdURk1vdmUo
cHJvdGVjdGVkVGhpcyksIHRoaXMsIGNvbnRleHRJZCwgbW9kZWxdICgpIG11dGFibGUgewogICAg
ICAgICAgICAgbW9kZWwtPnNldFZpZGVvRnVsbHNjcmVlbkxheWVyKG5pbCwgW3Byb3RlY3RlZFRo
aXMgPSBXVEZNb3ZlKHByb3RlY3RlZFRoaXMpLCB0aGlzLCBjb250ZXh0SWRdICgpIG11dGFibGUg
ewogICAgICAgICAgICAgICAgIGRpc3BhdGNoX2FzeW5jKGRpc3BhdGNoX2dldF9tYWluX3F1ZXVl
KCksIFtwcm90ZWN0ZWRUaGlzID0gV1RGTW92ZShwcm90ZWN0ZWRUaGlzKSwgdGhpcywgY29udGV4
dElkXSB7Ci0gICAgICAgICAgICAgICAgICAgIGlmIChwcm90ZWN0ZWRUaGlzLT5tX3BhZ2UpCisg
ICAgICAgICAgICAgICAgICAgIGlmICghbV9wYWdlKQorICAgICAgICAgICAgICAgICAgICAgICAg
cmV0dXJuOworCisgICAgICAgICAgICAgICAgICAgIGlmICghbV9tb2NrVmlkZW9QcmVzZW50YXRp
b25Nb2RlRW5hYmxlZCkKICAgICAgICAgICAgICAgICAgICAgICAgIG1fcGFnZS0+c2VuZChNZXNz
YWdlczo6VmlkZW9GdWxsc2NyZWVuTWFuYWdlclByb3h5OjpTZXRIYXNWaWRlb0NvbnRlbnRMYXll
cihjb250ZXh0SWQsIGZhbHNlKSk7CisgICAgICAgICAgICAgICAgICAgIGVsc2UKKyAgICAgICAg
ICAgICAgICAgICAgICAgIGRpZEV4aXRGdWxsc2NyZWVuKGNvbnRleHRJZCk7CiAgICAgICAgICAg
ICAgICAgfSk7CiAgICAgICAgICAgICB9KTsKICAgICAgICAgfSk7CkBAIC00MDEsMTYgKzQxOSwy
NiBAQCB2b2lkIFZpZGVvRnVsbHNjcmVlbk1hbmFnZXI6OmRpZFNldHVwRnVsbHNjcmVlbih1aW50
NjRfdCBjb250ZXh0SWQpCiAKICNpZiBQTEFURk9STShJT1NfRkFNSUxZKQogICAgIGRpc3BhdGNo
X2FzeW5jKGRpc3BhdGNoX2dldF9tYWluX3F1ZXVlKCksIFtwcm90ZWN0ZWRUaGlzID0gbWFrZVJl
ZlB0cih0aGlzKSwgdGhpcywgY29udGV4dElkXSB7Ci0gICAgICAgIGlmIChwcm90ZWN0ZWRUaGlz
LT5tX3BhZ2UpCisgICAgICAgIGlmICghbV9wYWdlKQorICAgICAgICAgICAgcmV0dXJuOworCisg
ICAgICAgIGlmICghbV9tb2NrVmlkZW9QcmVzZW50YXRpb25Nb2RlRW5hYmxlZCkKICAgICAgICAg
ICAgIG1fcGFnZS0+c2VuZChNZXNzYWdlczo6VmlkZW9GdWxsc2NyZWVuTWFuYWdlclByb3h5OjpF
bnRlckZ1bGxzY3JlZW4oY29udGV4dElkKSk7CisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIGRp
ZEVudGVyRnVsbHNjcmVlbihjb250ZXh0SWQpOwogICAgIH0pOwogI2Vsc2UKICAgICBDQUxheWVy
KiB2aWRlb0xheWVyID0gaW50ZXJmYWNlLT5sYXllckhvc3RpbmdDb250ZXh0KCktPnJvb3RMYXll
cigpOwogCiAgICAgbW9kZWwtPnNldFZpZGVvRnVsbHNjcmVlbkxheWVyKHZpZGVvTGF5ZXIsIFtw
cm90ZWN0ZWRUaGlzID0gbWFrZVJlZlB0cih0aGlzKSwgdGhpcywgY29udGV4dElkXSAoKSBtdXRh
YmxlIHsKICAgICAgICAgZGlzcGF0Y2hfYXN5bmMoZGlzcGF0Y2hfZ2V0X21haW5fcXVldWUoKSwg
W3Byb3RlY3RlZFRoaXMgPSBXVEZNb3ZlKHByb3RlY3RlZFRoaXMpLCB0aGlzLCBjb250ZXh0SWRd
IHsKLSAgICAgICAgICAgIGlmIChwcm90ZWN0ZWRUaGlzLT5tX3BhZ2UpCisgICAgICAgICAgICBp
ZiAoIW1fcGFnZSkKKyAgICAgICAgICAgICAgICByZXR1cm47CisKKyAgICAgICAgICAgIGlmICgh
bV9tb2NrVmlkZW9QcmVzZW50YXRpb25Nb2RlRW5hYmxlZCkKICAgICAgICAgICAgICAgICBtX3Bh
Z2UtPnNlbmQoTWVzc2FnZXM6OlZpZGVvRnVsbHNjcmVlbk1hbmFnZXJQcm94eTo6RW50ZXJGdWxs
c2NyZWVuKGNvbnRleHRJZCkpOworICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAgIGRp
ZEVudGVyRnVsbHNjcmVlbihjb250ZXh0SWQpOwogICAgICAgICB9KTsKICAgICB9KTsKICNlbmRp
ZgpAQCAtNDI2LDEwICs0NTQsMTAgQEAgdm9pZCBWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyOjp3aWxs
RXhpdEZ1bGxzY3JlZW4odWludDY0X3QgY29udGV4dElkKQogICAgIGlmICghdmlkZW9FbGVtZW50
KQogICAgICAgICByZXR1cm47CiAKLSAgICBkaXNwYXRjaF9hc3luYyhkaXNwYXRjaF9nZXRfbWFp
bl9xdWV1ZSgpLCBbcHJvdGVjdGVkVGhpcyA9IG1ha2VSZWZQdHIodGhpcyksIHZpZGVvRWxlbWVu
dCA9IFdURk1vdmUodmlkZW9FbGVtZW50KSwgY29udGV4dElkXSB7CisgICAgZGlzcGF0Y2hfYXN5
bmMoZGlzcGF0Y2hfZ2V0X21haW5fcXVldWUoKSwgW3Byb3RlY3RlZFRoaXMgPSBtYWtlUmVmUHRy
KHRoaXMpLCB2aWRlb0VsZW1lbnQgPSBXVEZNb3ZlKHZpZGVvRWxlbWVudCksIHRoaXMsIGNvbnRl
eHRJZF0gewogICAgICAgICB2aWRlb0VsZW1lbnQtPndpbGxFeGl0RnVsbHNjcmVlbigpOwotICAg
ICAgICBpZiAocHJvdGVjdGVkVGhpcy0+bV9wYWdlKQotICAgICAgICAgICAgcHJvdGVjdGVkVGhp
cy0+bV9wYWdlLT5zZW5kKE1lc3NhZ2VzOjpWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyUHJveHk6OlBy
ZXBhcmVkVG9FeGl0RnVsbHNjcmVlbihjb250ZXh0SWQpKTsKKyAgICAgICAgaWYgKCFtX21vY2tW
aWRlb1ByZXNlbnRhdGlvbk1vZGVFbmFibGVkICYmIG1fcGFnZSkKKyAgICAgICAgICAgIG1fcGFn
ZS0+c2VuZChNZXNzYWdlczo6VmlkZW9GdWxsc2NyZWVuTWFuYWdlclByb3h5OjpQcmVwYXJlZFRv
RXhpdEZ1bGxzY3JlZW4oY29udGV4dElkKSk7CiAgICAgfSk7CiB9CiAKQEAgLTQ1NCw5ICs0ODIs
OSBAQCB2b2lkIFZpZGVvRnVsbHNjcmVlbk1hbmFnZXI6OmRpZEVudGVyRnVsbHNjcmVlbih1aW50
NjRfdCBjb250ZXh0SWQpCiAgICAgICAgIHJldHVybjsKIAogICAgIC8vIGV4aXQgZnVsbHNjcmVl
biBub3cgaWYgaXQgd2FzIHByZXZpb3VzbHkgcmVxdWVzdGVkIGR1cmluZyBhbiBhbmltYXRpb24u
Ci0gICAgZGlzcGF0Y2hfYXN5bmMoZGlzcGF0Y2hfZ2V0X21haW5fcXVldWUoKSwgW3Byb3RlY3Rl
ZFRoaXMgPSBtYWtlUmVmUHRyKHRoaXMpLCB2aWRlb0VsZW1lbnRdIHsKLSAgICAgICAgaWYgKHBy
b3RlY3RlZFRoaXMtPm1fcGFnZSkKLSAgICAgICAgICAgIHByb3RlY3RlZFRoaXMtPmV4aXRWaWRl
b0Z1bGxzY3JlZW5Gb3JWaWRlb0VsZW1lbnQoKnZpZGVvRWxlbWVudCk7CisgICAgZGlzcGF0Y2hf
YXN5bmMoZGlzcGF0Y2hfZ2V0X21haW5fcXVldWUoKSwgW3Byb3RlY3RlZFRoaXMgPSBtYWtlUmVm
UHRyKHRoaXMpLCB0aGlzLCB2aWRlb0VsZW1lbnRdIHsKKyAgICAgICAgaWYgKCFtX21vY2tWaWRl
b1ByZXNlbnRhdGlvbk1vZGVFbmFibGVkICYmIG1fcGFnZSkKKyAgICAgICAgICAgIGV4aXRWaWRl
b0Z1bGxzY3JlZW5Gb3JWaWRlb0VsZW1lbnQoKnZpZGVvRWxlbWVudCk7CiAgICAgfSk7CiB9CiAK
QEAgLTQ2OSw5ICs0OTcsMTQgQEAgdm9pZCBWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyOjpkaWRFeGl0
RnVsbHNjcmVlbih1aW50NjRfdCBjb250ZXh0SWQpCiAgICAgc3RkOjp0aWUobW9kZWwsIGludGVy
ZmFjZSkgPSBlbnN1cmVNb2RlbEFuZEludGVyZmFjZShjb250ZXh0SWQpOwogCiAjaWYgUExBVEZP
Uk0oSU9TX0ZBTUlMWSkKLSAgICBkaXNwYXRjaF9hc3luYyhkaXNwYXRjaF9nZXRfbWFpbl9xdWV1
ZSgpLCBbcHJvdGVjdGVkVGhpcyA9IG1ha2VSZWZQdHIodGhpcyksIGNvbnRleHRJZCwgaW50ZXJm
YWNlXSB7Ci0gICAgICAgIGlmIChwcm90ZWN0ZWRUaGlzLT5tX3BhZ2UpCi0gICAgICAgICAgICBw
cm90ZWN0ZWRUaGlzLT5tX3BhZ2UtPnNlbmQoTWVzc2FnZXM6OlZpZGVvRnVsbHNjcmVlbk1hbmFn
ZXJQcm94eTo6Q2xlYW51cEZ1bGxzY3JlZW4oY29udGV4dElkKSk7CisgICAgZGlzcGF0Y2hfYXN5
bmMoZGlzcGF0Y2hfZ2V0X21haW5fcXVldWUoKSwgW3Byb3RlY3RlZFRoaXMgPSBtYWtlUmVmUHRy
KHRoaXMpLCB0aGlzLCBjb250ZXh0SWQsIGludGVyZmFjZV0geworICAgICAgICBpZiAoIW1fcGFn
ZSkKKyAgICAgICAgICAgIHJldHVybjsKKworICAgICAgICBpZiAoIW1fbW9ja1ZpZGVvUHJlc2Vu
dGF0aW9uTW9kZUVuYWJsZWQpCisgICAgICAgICAgICBtX3BhZ2UtPnNlbmQoTWVzc2FnZXM6OlZp
ZGVvRnVsbHNjcmVlbk1hbmFnZXJQcm94eTo6Q2xlYW51cEZ1bGxzY3JlZW4oY29udGV4dElkKSk7
CisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIGRpZENsZWFudXBGdWxsc2NyZWVuKGNvbnRleHRJ
ZCk7CiAgICAgfSk7CiAjZWxzZQogICAgIG1vZGVsLT53YWl0Rm9yUHJlcGFyZWRGb3JJbmxpbmVU
aGVuKFtwcm90ZWN0ZWRUaGlzID0gbWFrZVJlZlB0cih0aGlzKSwgY29udGV4dElkLCBpbnRlcmZh
Y2UsIG1vZGVsXSAoKSBtdXRhYmxlIHsKQEAgLTQ4Miw4ICs1MTUsMTQgQEAgdm9pZCBWaWRlb0Z1
bGxzY3JlZW5NYW5hZ2VyOjpkaWRFeGl0RnVsbHNjcmVlbih1aW50NjRfdCBjb250ZXh0SWQpCiAg
ICAgICAgICAgICAgICAgICAgICAgICBpbnRlcmZhY2UtPmxheWVySG9zdGluZ0NvbnRleHQoKS0+
c2V0Um9vdExheWVyKG51bGxwdHIpOwogICAgICAgICAgICAgICAgICAgICAgICAgaW50ZXJmYWNl
LT5zZXRMYXllckhvc3RpbmdDb250ZXh0KG51bGxwdHIpOwogICAgICAgICAgICAgICAgICAgICB9
Ci0gICAgICAgICAgICAgICAgICAgIGlmIChwcm90ZWN0ZWRUaGlzLT5tX3BhZ2UpCisKKyAgICAg
ICAgICAgICAgICAgICAgaWYgKCFwcm90ZWN0ZWRUaGlzLT5tX3BhZ2UpCisgICAgICAgICAgICAg
ICAgICAgICAgICByZXR1cm47CisKKyAgICAgICAgICAgICAgICAgICAgaWYgKCFwcm90ZWN0ZWRU
aGlzLT5tX21vY2tWaWRlb1ByZXNlbnRhdGlvbk1vZGVFbmFibGVkKQogICAgICAgICAgICAgICAg
ICAgICAgICAgcHJvdGVjdGVkVGhpcy0+bV9wYWdlLT5zZW5kKE1lc3NhZ2VzOjpWaWRlb0Z1bGxz
Y3JlZW5NYW5hZ2VyUHJveHk6OkNsZWFudXBGdWxsc2NyZWVuKGNvbnRleHRJZCkpOworICAgICAg
ICAgICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAgICAgICAgICAgICBwcm90ZWN0ZWRUaGlz
LT5kaWRDbGVhbnVwRnVsbHNjcmVlbihjb250ZXh0SWQpOwogICAgICAgICAgICAgICAgIH0pOwog
ICAgICAgICAgICAgfSk7CiAgICAgICAgIH0pOwpAQCAtNTE4LDkgKzU1Nyw5IEBAIHZvaWQgVmlk
ZW9GdWxsc2NyZWVuTWFuYWdlcjo6ZGlkQ2xlYW51cEZ1bGxzY3JlZW4odWludDY0X3QgY29udGV4
dElkKQogICAgIGlmICghdmlkZW9FbGVtZW50IHx8ICF0YXJnZXRJc0Z1bGxzY3JlZW4pCiAgICAg
ICAgIHJldHVybjsKIAotICAgIGRpc3BhdGNoX2FzeW5jKGRpc3BhdGNoX2dldF9tYWluX3F1ZXVl
KCksIFtwcm90ZWN0ZWRUaGlzID0gbWFrZVJlZlB0cih0aGlzKSwgdmlkZW9FbGVtZW50LCBtb2Rl
LCBzdGFuZGJ5XSB7Ci0gICAgICAgIGlmIChwcm90ZWN0ZWRUaGlzLT5tX3BhZ2UpCi0gICAgICAg
ICAgICBwcm90ZWN0ZWRUaGlzLT5lbnRlclZpZGVvRnVsbHNjcmVlbkZvclZpZGVvRWxlbWVudCgq
dmlkZW9FbGVtZW50LCBtb2RlLCBzdGFuZGJ5KTsKKyAgICBkaXNwYXRjaF9hc3luYyhkaXNwYXRj
aF9nZXRfbWFpbl9xdWV1ZSgpLCBbcHJvdGVjdGVkVGhpcyA9IG1ha2VSZWZQdHIodGhpcyksIHRo
aXMsIHZpZGVvRWxlbWVudCwgbW9kZSwgc3RhbmRieV0geworICAgICAgICBpZiAobV9wYWdlKQor
ICAgICAgICAgICAgZW50ZXJWaWRlb0Z1bGxzY3JlZW5Gb3JWaWRlb0VsZW1lbnQoKnZpZGVvRWxl
bWVudCwgbW9kZSwgc3RhbmRieSk7CiAgICAgfSk7CiB9CiAgICAgCkBAIC01MzgsNyArNTc3LDkg
QEAgdm9pZCBWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyOjpmdWxsc2NyZWVuTWF5UmV0dXJuVG9Jbmxp
bmUodWludDY0X3QgY29udGV4dElkLCBib28KIAogICAgIGlmICghaXNQYWdlVmlzaWJsZSkKICAg
ICAgICAgbW9kZWwudmlkZW9FbGVtZW50KCktPnNjcm9sbEludG9WaWV3SWZOb3RWaXNpYmxlKGZh
bHNlKTsKLSAgICBtX3BhZ2UtPnNlbmQoTWVzc2FnZXM6OlZpZGVvRnVsbHNjcmVlbk1hbmFnZXJQ
cm94eTo6UHJlcGFyZWRUb1JldHVyblRvSW5saW5lKGNvbnRleHRJZCwgdHJ1ZSwgaW5saW5lVmlk
ZW9GcmFtZSgqbW9kZWwudmlkZW9FbGVtZW50KCkpKSk7CisKKyAgICBpZiAoIW1fbW9ja1ZpZGVv
UHJlc2VudGF0aW9uTW9kZUVuYWJsZWQpCisgICAgICAgIG1fcGFnZS0+c2VuZChNZXNzYWdlczo6
VmlkZW9GdWxsc2NyZWVuTWFuYWdlclByb3h5OjpQcmVwYXJlZFRvUmV0dXJuVG9JbmxpbmUoY29u
dGV4dElkLCB0cnVlLCBpbmxpbmVWaWRlb0ZyYW1lKCptb2RlbC52aWRlb0VsZW1lbnQoKSkpKTsK
IH0KIAogdm9pZCBWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyOjpyZXF1ZXN0Um91dGVTaGFyaW5nUG9s
aWN5QW5kQ29udGV4dFVJRCh1aW50NjRfdCBjb250ZXh0SWQsIE1lc3NhZ2VzOjpWaWRlb0Z1bGxz
Y3JlZW5NYW5hZ2VyOjpSZXF1ZXN0Um91dGVTaGFyaW5nUG9saWN5QW5kQ29udGV4dFVJRDo6QXN5
bmNSZXBseSYmIHJlcGx5KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2Vi
Q29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmggYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9X
ZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuaAppbmRleCBhN2QwNjkwYmZhZGIzN2I1ZWI4
MjU4ZWQxOTY0ZDNhMGM2Mzg3ZDI3Li4zYWMyMzBkOGEyNmQ3MDE2MzQ2NTdmMmI4YmMyOTkxNGIw
YTFjMGI5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJDb3JlU3VwcG9y
dC9XZWJDaHJvbWVDbGllbnQuaAorKysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJDb3Jl
U3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuaApAQCAtMTkzLDEwICsxOTMsMTMgQEAgcHJpdmF0ZToK
IAogI2lmIEVOQUJMRShWSURFTykKICAgICBib29sIHN1cHBvcnRzVmlkZW9GdWxsc2NyZWVuKFdl
YkNvcmU6OkhUTUxNZWRpYUVsZW1lbnRFbnVtczo6VmlkZW9GdWxsc2NyZWVuTW9kZSkgZmluYWw7
CisjaWYgRU5BQkxFKFZJREVPX1BSRVNFTlRBVElPTl9NT0RFKQorICAgIHZvaWQgc2V0TW9ja1Zp
ZGVvUHJlc2VudGF0aW9uTW9kZUVuYWJsZWQoYm9vbCkgZmluYWw7CiAgICAgdm9pZCBlbnRlclZp
ZGVvRnVsbHNjcmVlbkZvclZpZGVvRWxlbWVudChXZWJDb3JlOjpIVE1MVmlkZW9FbGVtZW50Jiwg
V2ViQ29yZTo6SFRNTE1lZGlhRWxlbWVudEVudW1zOjpWaWRlb0Z1bGxzY3JlZW5Nb2RlLCBib29s
IHN0YW5kYnkpIGZpbmFsOwogICAgIHZvaWQgZXhpdFZpZGVvRnVsbHNjcmVlbkZvclZpZGVvRWxl
bWVudChXZWJDb3JlOjpIVE1MVmlkZW9FbGVtZW50JikgZmluYWw7CiAgICAgdm9pZCBleGl0Vmlk
ZW9GdWxsc2NyZWVuVG9Nb2RlV2l0aG91dEFuaW1hdGlvbihXZWJDb3JlOjpIVE1MVmlkZW9FbGVt
ZW50JiwgV2ViQ29yZTo6SFRNTE1lZGlhRWxlbWVudEVudW1zOjpWaWRlb0Z1bGxzY3JlZW5Nb2Rl
KSBmaW5hbDsKICNlbmRpZgorI2VuZGlmCiAKICNpZiBFTkFCTEUoRlVMTFNDUkVFTl9BUEkpCiAg
ICAgYm9vbCBzdXBwb3J0c0Z1bGxTY3JlZW5Gb3JFbGVtZW50KGNvbnN0IFdlYkNvcmU6OkVsZW1l
bnQmLCBib29sIHdpdGhLZXlib2FyZCkgZmluYWw7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
TGVnYWN5L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQubW0gYi9Tb3VyY2UvV2Vi
S2l0TGVnYWN5L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQubW0KaW5kZXggNmQ2
OGRmN2M3MjdlNzExYWU2ZjI2ODUzZGRkZTkyYjM1ZTRkODRiNC4uNDQyNTNmOTNkOTgwYjEyZGFk
NzQ2YzEzMDVkZThlZTNkMGIwZWMyMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS9t
YWMvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXRM
ZWdhY3kvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5tbQpAQCAtOTY1LDYgKzk2
NSwxMyBAQCBib29sIFdlYkNocm9tZUNsaWVudDo6c3VwcG9ydHNWaWRlb0Z1bGxzY3JlZW4oSFRN
TE1lZGlhRWxlbWVudEVudW1zOjpWaWRlb0Z1bGxzYwogICAgIHJldHVybiB0cnVlOwogfQogCisj
aWYgRU5BQkxFKFZJREVPX1BSRVNFTlRBVElPTl9NT0RFKQordm9pZCBXZWJDaHJvbWVDbGllbnQ6
OnNldE1vY2tWaWRlb1ByZXNlbnRhdGlvbk1vZGVFbmFibGVkKGJvb2wgZW5hYmxlZCkKK3sKKyAg
ICBbbV93ZWJWaWV3IF9zZXRNb2NrVmlkZW9QcmVzZW50YXRpb25Nb2RlRW5hYmxlZDplbmFibGVk
XTsKK30KKyNlbmRpZgorCiB2b2lkIFdlYkNocm9tZUNsaWVudDo6ZW50ZXJWaWRlb0Z1bGxzY3Jl
ZW5Gb3JWaWRlb0VsZW1lbnQoSFRNTFZpZGVvRWxlbWVudCYgdmlkZW9FbGVtZW50LCBIVE1MTWVk
aWFFbGVtZW50RW51bXM6OlZpZGVvRnVsbHNjcmVlbk1vZGUgbW9kZSwgYm9vbCBzdGFuZGJ5KQog
ewogICAgIEFTU0VSVF9VTlVTRUQoc3RhbmRieSwgIXN0YW5kYnkpOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViVmlldy9XZWJWaWV3Lm1tIGIvU291cmNlL1dlYktpdExl
Z2FjeS9tYWMvV2ViVmlldy9XZWJWaWV3Lm1tCmluZGV4IDk0NjMyNTdhZjNmMzc0OWMzZjlkYWVj
ZWEyZTY3MGYwNjY4OTMwNzUuLmZiZTFhZWMxZjMwNGQxMGZhOTQ1OWQ5YTczYjBhZGQ3NTgwMGY0
NWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcvV2ViVmlldy5t
bQorKysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3L1dlYlZpZXcubW0KQEAgLTky
ODIsNiArOTI4MiwxNCBAQCAtICh2b2lkKV9zY2hlZHVsZVJlbmRlcmluZ1VwZGF0ZUZvclBlbmRp
bmdUaWxlQ2FjaGVSZXBhaW50CiAjZW5kaWYKIAogI2lmIEVOQUJMRShWSURFTykKKworI2lmIEVO
QUJMRShWSURFT19QUkVTRU5UQVRJT05fTU9ERSkKKy0gKHZvaWQpX3NldE1vY2tWaWRlb1ByZXNl
bnRhdGlvbk1vZGVFbmFibGVkOihCT09MKWVuYWJsZWQKK3sKKyAgICBfcHJpdmF0ZS0+bW9ja1Zp
ZGVvUHJlc2VudGF0aW9uTW9kZUVuYWJsZWQgPSBlbmFibGVkOworfQorI2VuZGlmCisKIC0gKHZv
aWQpX2VudGVyVmlkZW9GdWxsc2NyZWVuRm9yVmlkZW9FbGVtZW50OihOYWtlZFB0cjxXZWJDb3Jl
OjpIVE1MVmlkZW9FbGVtZW50Pil2aWRlb0VsZW1lbnQgbW9kZTooV2ViQ29yZTo6SFRNTE1lZGlh
RWxlbWVudEVudW1zOjpWaWRlb0Z1bGxzY3JlZW5Nb2RlKW1vZGUKIHsKICAgICBpZiAoX3ByaXZh
dGUtPmZ1bGxzY3JlZW5Db250cm9sbGVyKSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVn
YWN5L21hYy9XZWJWaWV3L1dlYlZpZXdEYXRhLmggYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9X
ZWJWaWV3L1dlYlZpZXdEYXRhLmgKaW5kZXggZmU5ODM5YmFjNDc0OTFhMTQzYmE2OGJlN2M5YmI2
NTBhZmQ1MDdiOC4uNjgyNjAwNDUwYjIzNWU2YzRkOTU5M2RjN2I5NTZhZGYwZjk2ODZjZiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViVmlldy9XZWJWaWV3RGF0YS5oCisr
KyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcvV2ViVmlld0RhdGEuaApAQCAtMjE2
LDcgKzIxNiw3IEBAIHByaXZhdGU6CiAgICAgQk9PTCBzaG91bGRNYWludGFpbkluYWN0aXZlU2Vs
ZWN0aW9uOwogCiAgICAgQk9PTCBhbGxvd3NVbmRvOwotICAgICAgICAKKwogICAgIGZsb2F0IHpv
b21NdWx0aXBsaWVyOwogICAgIEJPT0wgem9vbXNUZXh0T25seTsKIApAQCAtMjkzLDcgKzI5Myw2
IEBAIHByaXZhdGU6CiAgICAgUmV0YWluUHRyPE5TU3RyaW5nPiBkcmFnZ2VkTGlua1RpdGxlOwog
I2VuZGlmCiAKLQogI2lmICFQTEFURk9STShJT1NfRkFNSUxZKQogICAgIC8vIFdlYktpdCBoYXMg
Ym90aCBhIGdsb2JhbCBwbHVnLWluIGRhdGFiYXNlIGFuZCBhIHNlcGFyYXRlLCBwZXIgV2ViVmll
dyBwbHVnLWluIGRhdGFiYXNlLiBEYXNoYm9hcmQgdXNlcyB0aGUgcGVyIFdlYlZpZXcgZGF0YWJh
c2UuCiAgICAgV2ViUGx1Z2luRGF0YWJhc2UgKnBsdWdpbkRhdGFiYXNlOwpAQCAtMzI0LDYgKzMy
MywxMCBAQCBwcml2YXRlOgogICAgIFZlY3RvcjxSZXRhaW5QdHI8V2ViVmlkZW9GdWxsc2NyZWVu
Q29udHJvbGxlcj4+IGZ1bGxzY3JlZW5Db250cm9sbGVyc0V4aXRpbmc7CiAjZW5kaWYKIAorI2lm
IEVOQUJMRShWSURFT19QUkVTRU5UQVRJT05fTU9ERSkKKyAgICBCT09MIG1vY2tWaWRlb1ByZXNl
bnRhdGlvbk1vZGVFbmFibGVkOworI2VuZGlmCisKICNpZiBQTEFURk9STShNQUMpICYmIEVOQUJM
RShWSURFT19QUkVTRU5UQVRJT05fTU9ERSkKICAgICBSZWZQdHI8V2ViQ29yZTo6UGxheWJhY2tT
ZXNzaW9uTW9kZWxNZWRpYUVsZW1lbnQ+IHBsYXliYWNrU2Vzc2lvbk1vZGVsOwogICAgIFJlZlB0
cjxXZWJDb3JlOjpQbGF5YmFja1Nlc3Npb25JbnRlcmZhY2VNYWM+IHBsYXliYWNrU2Vzc2lvbklu
dGVyZmFjZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcvV2Vi
Vmlld0ludGVybmFsLmggYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3L1dlYlZpZXdJ
bnRlcm5hbC5oCmluZGV4IDU2YzhkNTYyOTBkZGNlYTRhOGM5YzBkYzAyZjA4ZmU5YTRiODg4OGEu
LmJjYTE3YWU2YzY5MjU4ZGE5NjY0OGRkMGNmMTMzNzRlOTQ5ODM2ZDIgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcvV2ViVmlld0ludGVybmFsLmgKKysrIGIvU291
cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViVmlldy9XZWJWaWV3SW50ZXJuYWwuaApAQCAtMjczLDYg
KzI3Myw5IEBAIE9CSkNfQ0xBU1MgTlNUZXh0QWx0ZXJuYXRpdmVzOwogLSAodm9pZClfaW52YWxp
ZGF0ZVVzZXJBZ2VudENhY2hlOwogCiAjaWYgRU5BQkxFKFZJREVPKSAmJiBkZWZpbmVkKF9fY3Bs
dXNwbHVzKQorI2lmIEVOQUJMRShWSURFT19QUkVTRU5UQVRJT05fTU9ERSkKKy0gKHZvaWQpX3Nl
dE1vY2tWaWRlb1ByZXNlbnRhdGlvbk1vZGVFbmFibGVkOihCT09MKWVuYWJsZWQ7CisjZW5kaWYK
IC0gKHZvaWQpX2VudGVyVmlkZW9GdWxsc2NyZWVuRm9yVmlkZW9FbGVtZW50OihOYWtlZFB0cjxX
ZWJDb3JlOjpIVE1MVmlkZW9FbGVtZW50Pil2aWRlb0VsZW1lbnQgbW9kZTooV2ViQ29yZTo6SFRN
TE1lZGlhRWxlbWVudEVudW1zOjpWaWRlb0Z1bGxzY3JlZW5Nb2RlKW1vZGU7CiAtICh2b2lkKV9l
eGl0VmlkZW9GdWxsc2NyZWVuOwogI2lmIFBMQVRGT1JNKE1BQykgJiYgRU5BQkxFKFZJREVPX1BS
RVNFTlRBVElPTl9NT0RFKQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5
b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IDQ3OGQyMWQ2MjNlM2E0MDUzZWViZWVjNjhiMDUwMWNl
ODVjNjczZDIuLjcxYjlhN2ZmMDc1M2NhMGQ4NzRmNzk1Y2E5YWU4MzFiNGUwNzYzZTMgMTAwNjQ0
Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cK
QEAgLTEsMyArMSwxMiBAQAorMjAyMC0wNC0yOCAgUGVuZyBMaXUgIDxwZW5nLmxpdTZAYXBwbGUu
Y29tPgorCisgICAgICAgIFVwZGF0ZSBXZWJLaXRUZXN0UnVubmVyIHRvIHN1cHBvcnQgcnVubmlu
ZyBtdWx0aXBsZSB2aWRlbyBmdWxsc2NyZWVuIGFuZCBQaWN0dXJlLWluLVBpY3R1cmUgdGVzdHMg
c2ltdWx0YW5lb3VzbHkKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTIwMzcyMworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisg
ICAgICAgICogbWVkaWEvdmlkZW8tcHJlc2VudGF0aW9uLW1vZGUuaHRtbDogQWRkZWQuCisKIDIw
MjAtMDQtMjggIFBoaWxpcHBlIE5vcm1hbmQgIDxwbm9ybWFuZEBpZ2FsaWEuY29tPgogCiAgICAg
ICAgIFJFR1JFU1NJT04ocjI2MDgyMik6IEJyb2tlIG1lZGlhL3RyYWNrL3RyYWNrLWluLWJhbmQt
bWV0YWRhdGEtZGlzcGxheS1vcmRlci5odG1sIG9uIE1hYwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvbWVkaWEvdmlkZW8tcHJlc2VudGF0aW9uLW1vZGUuaHRtbCBiL0xheW91dFRlc3RzL21lZGlh
L3ZpZGVvLXByZXNlbnRhdGlvbi1tb2RlLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uODkyZDg5MzI3MDdhNDk5
MDAwZjk5ZWMwYmQwMjkzYjE1NGIwZGU2NAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3Rz
L21lZGlhL3ZpZGVvLXByZXNlbnRhdGlvbi1tb2RlLmh0bWwKQEAgLTAsMCArMSw2MyBAQAorPCFk
b2N0eXBlIGh0bWw+Cis8aHRtbD4KKyAgICA8aGVhZD4KKwkgICAgPHNjcmlwdCBzcmM9bWVkaWEt
ZmlsZS5qcz48L3NjcmlwdD4KKwkgICAgPHNjcmlwdCBzcmM9dmlkZW8tdGVzdC5qcz48L3Njcmlw
dD4KKwkgICAgPHNjcmlwdD4KKyAgICAgICAgICAgIGZ1bmN0aW9uIHN0YXJ0KCkKKyAgICAgICAg
ICAgIHsKKwkgICAgICAgICAgICBpZiAod2luZG93LmludGVybmFscykgeworICAgICAgICAgICAg
ICAgICAgICB3aW5kb3cuaW50ZXJuYWxzLnNldHRpbmdzLnNldEFsbG93c1BpY3R1cmVJblBpY3R1
cmVNZWRpYVBsYXliYWNrKHRydWUpOworICAgICAgICAgICAgICAgICAgICB3aW5kb3cuaW50ZXJu
YWxzLnNldE1vY2tWaWRlb1ByZXNlbnRhdGlvbk1vZGVFbmFibGVkKHRydWUpOworICAgICAgICAg
ICAgICAgIH0KKwkKKwkgICAgICAgICAgICB2aWRlbyA9IGRvY3VtZW50LmdldEVsZW1lbnRzQnlU
YWdOYW1lKCd2aWRlbycpWzBdOworCSAgICAgICAgICAgIHdhaXRGb3JFdmVudE9uY2UoImNhbnBs
YXl0aHJvdWdoIiwgY2FucGxheXRocm91Z2gpOworCSAgICAgICAgICAgIHZpZGVvLnNyYyA9IGZp
bmRNZWRpYUZpbGUoInZpZGVvIiwgImNvbnRlbnQvdGVzdCIpOworCisJICAgICAgICAgICAgY29u
c29sZVdyaXRlKCIiKTsKKyAgICAgICAgICAgIH0KKwkKKwkgICAgICAgIGZ1bmN0aW9uIGNhbnBs
YXl0aHJvdWdoKCkKKwkgICAgICAgIHsKKwkgICAgICAgICAgICB0ZXN0RXhwZWN0ZWQoInZpZGVv
LndlYmtpdFN1cHBvcnRzRnVsbHNjcmVlbiIsIHRydWUpOworCSAgICAgICAgICAgIHRlc3RFeHBl
Y3RlZCgidmlkZW8ud2Via2l0RGlzcGxheWluZ0Z1bGxzY3JlZW4iLCBmYWxzZSk7CisJCisJICAg
ICAgICAgICAgY29uc29sZVdyaXRlKCI8YnI+KiogVHJ5IHRvIGVudGVyIGZ1bGxzY3JlZW4iKTsK
KwkgICAgICAgICAgICBydW5XaXRoS2V5RG93bigidmlkZW8ud2Via2l0U2V0UHJlc2VudGF0aW9u
TW9kZSgnZnVsbHNjcmVlbicpIik7CisJICAgICAgICAgICAgd2FpdEZvckV2ZW50T25jZSgnd2Vi
a2l0cHJlc2VudGF0aW9ubW9kZWNoYW5nZWQnLCBwcmVzZW50YXRpb25Nb2RlQ2hhbmdlZDEpOwor
CSAgICAgICAgfQorCQorCSAgICAgICAgZnVuY3Rpb24gcHJlc2VudGF0aW9uTW9kZUNoYW5nZWQx
KCkKKwkgICAgICAgIHsKKwkgICAgICAgICAgICBjb25zb2xlV3JpdGUoIjxicj4qKiBFbnRlcmVk
IGZ1bGxzY3JlZW4iKTsKKwkgICAgICAgICAgICB0ZXN0RXhwZWN0ZWQoInZpZGVvLndlYmtpdFBy
ZXNlbnRhdGlvbk1vZGUiLCAiZnVsbHNjcmVlbiIpOworCSAgICAgICAgICAgIGNvbnNvbGVXcml0
ZSgiPGJyPioqIFRyeSB0byBlbnRlciBwaWN0dXJlLWluLXBpY3R1cmUiKTsKKwkgICAgICAgICAg
ICB3YWl0Rm9yRXZlbnRPbmNlKCd3ZWJraXRwcmVzZW50YXRpb25tb2RlY2hhbmdlZCcsIHByZXNl
bnRhdGlvbk1vZGVDaGFuZ2VkMik7CisJICAgICAgICAgICAgcnVuV2l0aEtleURvd24oInZpZGVv
LndlYmtpdFNldFByZXNlbnRhdGlvbk1vZGUoJ3BpY3R1cmUtaW4tcGljdHVyZScpIik7CisJICAg
ICAgICB9CisJCisJICAgICAgICBmdW5jdGlvbiBwcmVzZW50YXRpb25Nb2RlQ2hhbmdlZDIoKQor
CSAgICAgICAgeworCSAgICAgICAgICAgIGNvbnNvbGVXcml0ZSgiPGJyPioqIEVudGVyZWQgcGlj
dHVyZS1pbi1waWN0dXIiKTsKKwkgICAgICAgICAgICB0ZXN0RXhwZWN0ZWQoInZpZGVvLndlYmtp
dFByZXNlbnRhdGlvbk1vZGUiLCAicGljdHVyZS1pbi1waWN0dXJlIik7CisJICAgICAgICAgICAg
Y29uc29sZVdyaXRlKCI8YnI+KiogVHJ5IHRvIHJldHVybiB0byBpbmxpbmUiKTsKKwkgICAgICAg
ICAgICB3YWl0Rm9yRXZlbnRPbmNlKCd3ZWJraXRwcmVzZW50YXRpb25tb2RlY2hhbmdlZCcsIHRl
c3RDb21wbGV0ZWQpOworCSAgICAgICAgICAgIHJ1bldpdGhLZXlEb3duKCJ2aWRlby53ZWJraXRT
ZXRQcmVzZW50YXRpb25Nb2RlKCdpbmxpbmUnKSIpOworCSAgICAgICAgfQorCQorCSAgICAgICAg
ZnVuY3Rpb24gdGVzdENvbXBsZXRlZCgpCisJICAgICAgICB7CisJICAgICAgICAgICAgY29uc29s
ZVdyaXRlKCI8YnI+KiogUmV0dXJuZWQgdG8gaW5saW5lIik7CisJICAgICAgICAgICAgdGVzdEV4
cGVjdGVkKCJ2aWRlby53ZWJraXRQcmVzZW50YXRpb25Nb2RlIiwgImlubGluZSIpOworCSAgICAg
ICAgICAgIGNvbnNvbGVXcml0ZSgiPGJyPioqIFRlc3QgQ29tcGxldGVkIik7CisJICAgICAgICAg
ICAgZW5kVGVzdCgpOworCSAgICAgICAgfQorCSAgICA8L3NjcmlwdD4KKwk8L2hlYWQ+CisJCisJ
PGJvZHkgb25sb2FkPSJzdGFydCgpIj4KKwkgICAgPHZpZGVvIGNvbnRyb2xzIHBsYXlzaW5saW5l
PjwvdmlkZW8+CisJICAgIDxwPlRlc3QgdGhlIHZpZGVvIHByZXNlbnRhdGlvbiBtb2RlICh2aWRl
byBmdWxsc2NyZWVuIGFuZCBwaWN0dXJlLWluLXBpY3R1cmUpIEFQSS48L3A+CisJPC9ib2R5Pgor
PC9odG1sPgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>398265</attachid>
            <date>2020-05-01 17:32:00 -0700</date>
            <delta_ts>2020-05-01 19:48:59 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-203723-20200501173159.patch</filename>
            <type>text/plain</type>
            <size>36831</size>
            <attacher name="Peng Liu">peng.liu6</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjYxMDA2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZWUwZTdlNDEwM2JlZGM0
MDU4MjhkYTA2YTg1ODQ3MzA4OTMyYmVhMi4uZWIyYmRmYjA0ZDUwMTUyZGVlMTVlMmQwNTllMGYz
MzI4NjA2OTUzMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIyIEBACisyMDIwLTA1LTAxICBQZW5n
IExpdSAgPHBlbmcubGl1NkBhcHBsZS5jb20+CisKKyAgICAgICAgVXBkYXRlIFdlYktpdFRlc3RS
dW5uZXIgdG8gc3VwcG9ydCBydW5uaW5nIG11bHRpcGxlIHZpZGVvIGZ1bGxzY3JlZW4gYW5kIFBp
Y3R1cmUtaW4tUGljdHVyZSB0ZXN0cyBzaW11bHRhbmVvdXNseQorICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjAzNzIzCisKKyAgICAgICAgUmV2aWV3ZWQg
YnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVGVzdDogbWVkaWEvdmlkZW8tcHJlc2VudGF0
aW9uLW1vZGUuaHRtbAorCisgICAgICAgIEFkZCBhIGZsYWcgTW9ja1ZpZGVvUHJlc2VudGF0aW9u
TW9kZUVuYWJsZWQgdG8gImludGVybmFscyIgZm9yIHZpZGVvIGZ1bGxzY3JlZW4KKyAgICAgICAg
YW5kIHBpY3R1cmUtaW4tcGljdHVyZSB0ZXN0cy4KKworICAgICAgICAqIHBhZ2UvQ2hyb21lQ2xp
ZW50Lmg6CisgICAgICAgIChXZWJDb3JlOjpDaHJvbWVDbGllbnQ6OnNldE1vY2tWaWRlb1ByZXNl
bnRhdGlvbk1vZGVFbmFibGVkKToKKyAgICAgICAgKiB0ZXN0aW5nL0ludGVybmFscy5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpJbnRlcm5hbHM6OnNldE1vY2tWaWRlb1ByZXNlbnRhdGlvbk1vZGVF
bmFibGVkKToKKyAgICAgICAgKiB0ZXN0aW5nL0ludGVybmFscy5oOgorICAgICAgICAqIHRlc3Rp
bmcvSW50ZXJuYWxzLmlkbDoKKwogMjAyMC0wNS0wMSAgRXJpYyBDYXJsc29uICA8ZXJpYy5jYXJs
c29uQGFwcGxlLmNvbT4KIAogICAgICAgICBbTVNFXSBBdWRpbyBzZXNzaW9uIGNhdGVnb3J5IGlz
IHNvbWV0aW1lcyBub3Qgc2V0IGNvcnJlY3RseSBhZnRlciBjaGFuZ2luZyB2aWRlbyBzb3VyY2UK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9DaGFu
Z2VMb2cKaW5kZXggYzAwNzc3ZTg5ZDk2MjIxMjAyMThkYTQ4MmMzMDQ4ZDliMGUyNTljNS4uMDA1
MzVhN2MwYTMyYjQzNzdiMThiNTcxNGMzMzFmZjc3ZjA0YmJlYyAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKQEAgLTEsMyAr
MSw0MSBAQAorMjAyMC0wNS0wMSAgUGVuZyBMaXUgIDxwZW5nLmxpdTZAYXBwbGUuY29tPgorCisg
ICAgICAgIFVwZGF0ZSBXZWJLaXRUZXN0UnVubmVyIHRvIHN1cHBvcnQgcnVubmluZyBtdWx0aXBs
ZSB2aWRlbyBmdWxsc2NyZWVuIGFuZCBQaWN0dXJlLWluLVBpY3R1cmUgdGVzdHMgc2ltdWx0YW5l
b3VzbHkKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIw
MzcyMworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFdo
ZW4gdGhlIGZsYWcgTW9ja1ZpZGVvUHJlc2VudGF0aW9uTW9kZUVuYWJsZWQgaXMgdHJ1ZSwgdGhl
IFZpZGVvRnVsbHNjcmVlbk1hbmFnZXIgaW4gdGhlIFdlYiBwcm9jZXNzCisgICAgICAgIHdpbGwg
bW9jayB0aGUgYmVoYXZpb3Igb2YgdGhlIFZpZGVvRnVsbHNjcmVlbk1hbmFnZXJQcm94eSBpbiB0
aGUgVUkgcHJvY2VzcyB3aXRob3V0IHNlbmRpbmcgSVBDCisgICAgICAgIG1lc3NhZ2VzIHRvIHRo
ZSBVSSBwcm9jZXNzLgorCisgICAgICAgICogVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oOgorICAg
ICAgICAqIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmNwcDoKKyAg
ICAgICAgKFdlYktpdDo6V2ViQ2hyb21lQ2xpZW50OjpzZXRNb2NrVmlkZW9QcmVzZW50YXRpb25N
b2RlRW5hYmxlZCk6CisgICAgICAgIChXZWJLaXQ6OldlYkNocm9tZUNsaWVudDo6c2V0VXBQbGF5
YmFja0NvbnRyb2xzTWFuYWdlcik6CisgICAgICAgIChXZWJLaXQ6OldlYkNocm9tZUNsaWVudDo6
Y2xlYXJQbGF5YmFja0NvbnRyb2xzTWFuYWdlcik6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJD
b3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuaDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL2NvY29h
L1ZpZGVvRnVsbHNjcmVlbk1hbmFnZXIuaDoKKyAgICAgICAgKFdlYktpdDo6VmlkZW9GdWxsc2Ny
ZWVuTWFuYWdlcjo6c2V0TW9ja1ZpZGVvUHJlc2VudGF0aW9uTW9kZUVuYWJsZWQpOgorICAgICAg
ICAqIFdlYlByb2Nlc3MvY29jb2EvVmlkZW9GdWxsc2NyZWVuTWFuYWdlci5tbToKKyAgICAgICAg
KFdlYktpdDo6VmlkZW9GdWxsc2NyZWVuTWFuYWdlcjo6ZW50ZXJWaWRlb0Z1bGxzY3JlZW5Gb3JW
aWRlb0VsZW1lbnQpOgorICAgICAgICAoV2ViS2l0OjpWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyOjpl
eGl0VmlkZW9GdWxsc2NyZWVuRm9yVmlkZW9FbGVtZW50KToKKyAgICAgICAgKFdlYktpdDo6Vmlk
ZW9GdWxsc2NyZWVuTWFuYWdlcjo6ZXhpdFZpZGVvRnVsbHNjcmVlblRvTW9kZVdpdGhvdXRBbmlt
YXRpb24pOgorICAgICAgICAoV2ViS2l0OjpWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyOjpoYXNWaWRl
b0NoYW5nZWQpOgorICAgICAgICAoV2ViS2l0OjpWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyOjp2aWRl
b0RpbWVuc2lvbnNDaGFuZ2VkKToKKyAgICAgICAgKFdlYktpdDo6VmlkZW9GdWxsc2NyZWVuTWFu
YWdlcjo6cmVxdWVzdFVwZGF0ZUlubGluZVJlY3QpOgorICAgICAgICAoV2ViS2l0OjpWaWRlb0Z1
bGxzY3JlZW5NYW5hZ2VyOjpyZXF1ZXN0VmlkZW9Db250ZW50TGF5ZXIpOgorICAgICAgICAoV2Vi
S2l0OjpWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyOjpyZXR1cm5WaWRlb0NvbnRlbnRMYXllcik6Cisg
ICAgICAgIChXZWJLaXQ6OlZpZGVvRnVsbHNjcmVlbk1hbmFnZXI6OmRpZFNldHVwRnVsbHNjcmVl
bik6CisgICAgICAgIChXZWJLaXQ6OlZpZGVvRnVsbHNjcmVlbk1hbmFnZXI6OndpbGxFeGl0RnVs
bHNjcmVlbik6CisgICAgICAgIChXZWJLaXQ6OlZpZGVvRnVsbHNjcmVlbk1hbmFnZXI6OmRpZEVu
dGVyRnVsbHNjcmVlbik6CisgICAgICAgIChXZWJLaXQ6OlZpZGVvRnVsbHNjcmVlbk1hbmFnZXI6
OmRpZEV4aXRGdWxsc2NyZWVuKToKKyAgICAgICAgKFdlYktpdDo6VmlkZW9GdWxsc2NyZWVuTWFu
YWdlcjo6ZGlkQ2xlYW51cEZ1bGxzY3JlZW4pOgorICAgICAgICAoV2ViS2l0OjpWaWRlb0Z1bGxz
Y3JlZW5NYW5hZ2VyOjpzZXRWaWRlb0xheWVyR3Jhdml0eUVudW0pOgorICAgICAgICAoV2ViS2l0
OjpWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyOjpmdWxsc2NyZWVuTWF5UmV0dXJuVG9JbmxpbmUpOgor
ICAgICAgICAoV2ViS2l0OjpWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyOjpyZXF1ZXN0Um91dGVTaGFy
aW5nUG9saWN5QW5kQ29udGV4dFVJRCk6CisgICAgICAgIChXZWJLaXQ6OlZpZGVvRnVsbHNjcmVl
bk1hbmFnZXI6OnNldFZpZGVvTGF5ZXJGcmFtZUZlbmNlZCk6CisKIDIwMjAtMDUtMDEgIFBlbmcg
TGl1ICA8cGVuZy5saXU2QGFwcGxlLmNvbT4KIAogICAgICAgICBBIFBpUCB3aW5kb3cgZG9lc27i
gJl0IGFjdHVhbGx5IGRpc21pc3MgYWZ0ZXIgdGhlIGJyb3dzZXIgbmF2aWdhdGVzIHRvIGEgZGlm
ZmVyZW50IHBhZ2Ugd2l0aGluIHRoZSBzYW1lIGRvbWFpbgpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdExlZ2FjeS9tYWMvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvQ2hhbmdl
TG9nCmluZGV4IGY2NWMxODE2ODM3ZDM4NWJkYzhkMjY5YTFmODgxMjJiOWZmOWU2ZjQuLmQwNTQ4
NGJiMDYyYzFlY2I1MjMyMGY2ZTVkMTg2NDRlNjBhNjNlYzggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXRMZWdhY3kvbWFjL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9D
aGFuZ2VMb2cKQEAgLTEsMyArMSwyMSBAQAorMjAyMC0wNS0wMSAgUGVuZyBMaXUgIDxwZW5nLmxp
dTZAYXBwbGUuY29tPgorCisgICAgICAgIFVwZGF0ZSBXZWJLaXRUZXN0UnVubmVyIHRvIHN1cHBv
cnQgcnVubmluZyBtdWx0aXBsZSB2aWRlbyBmdWxsc2NyZWVuIGFuZCBQaWN0dXJlLWluLVBpY3R1
cmUgdGVzdHMgc2ltdWx0YW5lb3VzbHkKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTIwMzcyMworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09Q
UyEpLgorCisgICAgICAgIFdoZW4gdGhlIGZsYWcgTW9ja1ZpZGVvUHJlc2VudGF0aW9uTW9kZUVu
YWJsZWQgaXMgdHJ1ZSwgV2ViVmlldyB3aWxsIGlnbm9yZSB0aGUgcmVxdWVzdHMgdG8KKyAgICAg
ICAgV2ViVmlkZW9GdWxsc2NyZWVuQ29udHJvbGxlciwgc28gdGhhdCB0aGUgRHVtcFJlbmRlclRy
ZWUgY2FuIHJ1biBtdWx0aXBsZSB2aWRlbyBmdWxsc2NyZWVuCisgICAgICAgIGFuZCBwaWN0dXJl
LWluLXBpY3R1cmUgdGVzdHMgaW4gcGFyYWxsZWwuCisKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9y
dC9XZWJDaHJvbWVDbGllbnQuaDoKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVD
bGllbnQubW06CisgICAgICAgIChXZWJDaHJvbWVDbGllbnQ6OnNldE1vY2tWaWRlb1ByZXNlbnRh
dGlvbk1vZGVFbmFibGVkKToKKyAgICAgICAgKiBXZWJWaWV3L1dlYlZpZXcubW06CisgICAgICAg
ICogV2ViVmlldy9XZWJWaWV3RGF0YS5oOgorICAgICAgICAqIFdlYlZpZXcvV2ViVmlld0ludGVy
bmFsLmg6CisKIDIwMjAtMDQtMzAgIFJvc3MgS2lyc2xpbmcgIDxyb3NzLmtpcnNsaW5nQHNvbnku
Y29tPgogCiAgICAgICAgIFRyaVN0YXRlIHNob3VsZCBiZSBhbiBlbnVtIGNsYXNzIGFuZCB1c2Ug
IkluZGV0ZXJtaW5hdGUiIGluc3RlYWQgb2YgIk1peGVkIgpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcGFnZS9DaHJvbWVDbGllbnQuaCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvQ2hyb21lQ2xp
ZW50LmgKaW5kZXggNzU4ZDNjNjZjMzQwMzMyMzE0NTk0NTViYjRlZTgxN2ExMjM0ZTNiNC4uMzQz
ZGEyYzEyMzg1MjFhODY5YzJhOGE3N2E3M2FiZDI5NWQ0YjY1MSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcGFnZS9DaHJvbWVDbGllbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0No
cm9tZUNsaWVudC5oCkBAIC0zNzgsNiArMzc4LDEwIEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIHZv
aWQgc2V0Um9vdEZ1bGxTY3JlZW5MYXllcihHcmFwaGljc0xheWVyKikgeyB9CiAjZW5kaWYKIAor
I2lmIEVOQUJMRShWSURFT19QUkVTRU5UQVRJT05fTU9ERSkKKyAgICB2aXJ0dWFsIHZvaWQgc2V0
TW9ja1ZpZGVvUHJlc2VudGF0aW9uTW9kZUVuYWJsZWQoYm9vbCkgeyB9CisjZW5kaWYKKwogI2lm
IFVTRShDT09SRElOQVRFRF9HUkFQSElDUykKICAgICB2aXJ0dWFsIEludFJlY3QgdmlzaWJsZVJl
Y3RGb3JUaWxlZEJhY2tpbmdTdG9yZSgpIGNvbnN0IHsgcmV0dXJuIEludFJlY3QoKTsgfQogI2Vu
ZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5jcHAgYi9T
b3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5jcHAKaW5kZXggZjExNjRhZTljMWFjM2Jm
MDE2ODk2YjlmNGRkZWExZmMzNGY2NzkwYS4uZjUyNmU2Nzc0ZTk3ZDY1YTRjM2UxOTBjZGI4OGRl
MDNjY2MxMTBiMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmNwcApAQCAtMzI2Niw2
ICszMjY2LDE3IEBAIHZvaWQgSW50ZXJuYWxzOjpzZXRGdWxsc2NyZWVuQ29udHJvbHNIaWRkZW4o
Ym9vbCBoaWRkZW4pCiAgICAgcGFnZS0+c2V0RnVsbHNjcmVlbkNvbnRyb2xzSGlkZGVuKGhpZGRl
bik7CiB9CiAKKyNpZiBFTkFCTEUoVklERU9fUFJFU0VOVEFUSU9OX01PREUpCit2b2lkIEludGVy
bmFsczo6c2V0TW9ja1ZpZGVvUHJlc2VudGF0aW9uTW9kZUVuYWJsZWQoYm9vbCBlbmFibGVkKQor
eworICAgIERvY3VtZW50KiBkb2N1bWVudCA9IGNvbnRleHREb2N1bWVudCgpOworICAgIGlmICgh
ZG9jdW1lbnQgfHwgIWRvY3VtZW50LT5wYWdlKCkpCisgICAgICAgIHJldHVybjsKKworICAgIGRv
Y3VtZW50LT5wYWdlKCktPmNocm9tZSgpLmNsaWVudCgpLnNldE1vY2tWaWRlb1ByZXNlbnRhdGlv
bk1vZGVFbmFibGVkKGVuYWJsZWQpOworfQorI2VuZGlmCisKIHZvaWQgSW50ZXJuYWxzOjpzZXRB
cHBsaWNhdGlvbkNhY2hlT3JpZ2luUXVvdGEodW5zaWduZWQgbG9uZyBsb25nIHF1b3RhKQogewog
ICAgIERvY3VtZW50KiBkb2N1bWVudCA9IGNvbnRleHREb2N1bWVudCgpOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuaCBiL1NvdXJjZS9XZWJDb3JlL3Rlc3Rp
bmcvSW50ZXJuYWxzLmgKaW5kZXggMjNjNGZjMGQ4NmNkOGY1YTlkNGE3MzU5ZmEyYzIzZDA5ZDlj
YjE2Zi4uMjVjZGQxYWE0NDBjNWE1MTcyYjBhMTk1ZWIwMWJiMTJjYWRkOGJmNCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS90ZXN0aW5nL0ludGVybmFscy5oCkBAIC00OTMsNiArNDkzLDEwIEBAIHB1YmxpYzoKICAgICB2
b2lkIHNldEZ1bGxzY3JlZW5BdXRvSGlkZUR1cmF0aW9uKGRvdWJsZSk7CiAgICAgdm9pZCBzZXRG
dWxsc2NyZWVuQ29udHJvbHNIaWRkZW4oYm9vbCk7CiAKKyNpZiBFTkFCTEUoVklERU9fUFJFU0VO
VEFUSU9OX01PREUpCisgICAgdm9pZCBzZXRNb2NrVmlkZW9QcmVzZW50YXRpb25Nb2RlRW5hYmxl
ZChib29sKTsKKyNlbmRpZgorCiAgICAgV0VCQ09SRV9URVNUU1VQUE9SVF9FWFBPUlQgdm9pZCBz
ZXRBcHBsaWNhdGlvbkNhY2hlT3JpZ2luUXVvdGEodW5zaWduZWQgbG9uZyBsb25nKTsKIAogICAg
IHZvaWQgcmVnaXN0ZXJVUkxTY2hlbWVBc0J5cGFzc2luZ0NvbnRlbnRTZWN1cml0eVBvbGljeShj
b25zdCBTdHJpbmcmIHNjaGVtZSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5n
L0ludGVybmFscy5pZGwgYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5pZGwKaW5k
ZXggYzE1MGVjYmJkYzAzMGFlYzk3MDkxOTA3MDlmYzRkYWJiYzBmOWYxMi4uOTI5Mzk2NDFhYmFm
MDVmZjE3NGY2NDg5YTNkM2VjNjUyODIwMjE1NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
dGVzdGluZy9JbnRlcm5hbHMuaWRsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJu
YWxzLmlkbApAQCAtNTMxLDYgKzUzMSw4IEBAIGVudW0gQ29tcG9zaXRpbmdQb2xpY3kgewogICAg
IHZvaWQgc2V0RnVsbHNjcmVlbkF1dG9IaWRlRHVyYXRpb24oZG91YmxlIGR1cmF0aW9uKTsKICAg
ICB2b2lkIHNldEZ1bGxzY3JlZW5Db250cm9sc0hpZGRlbihib29sZWFuIGhpZGRlbik7CiAKKyAg
ICBbQ29uZGl0aW9uYWw9VklERU9fUFJFU0VOVEFUSU9OX01PREVdIHZvaWQgc2V0TW9ja1ZpZGVv
UHJlc2VudGF0aW9uTW9kZUVuYWJsZWQoYm9vbGVhbiBlbmFibGVkKTsKKwogICAgIHZvaWQgc2V0
QXBwbGljYXRpb25DYWNoZU9yaWdpblF1b3RhKHVuc2lnbmVkIGxvbmcgbG9uZyBxdW90YSk7CiAK
ICAgICB2b2lkIHJlZ2lzdGVyVVJMU2NoZW1lQXNCeXBhc3NpbmdDb250ZW50U2VjdXJpdHlQb2xp
Y3koRE9NU3RyaW5nIHNjaGVtZSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9XZWJQYWdlUHJveHkuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5o
CmluZGV4IGI1Y2JjZTU3OWY0Njg5YzgwZTQyNDA0MjhkNjYwOWRhMTgwNDQ0MDcuLmM3ZjRmNzk4
ZTQ0MzZkNDFjMjkzODk0MjJkZDlkNmE0ZjdhMDUyYWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L1dlYlBhZ2VQcm94eS5oCkBAIC0yODAwLDcgKzI4MDAsNyBAQCBwcml2YXRlOgogICAgICAgICBS
ZWZQdHI8QVBJOjpPYmplY3Q+IG1lc3NhZ2VCb2R5OwogICAgIH07CiAgICAgVmVjdG9yPEluamVj
dGVkQnVuZGxlTWVzc2FnZT4gbV9wZW5kaW5nSW5qZWN0ZWRCdW5kbGVNZXNzYWdlczsKLSAgICAg
ICAgCisKICNpZiBQTEFURk9STShJT1NfRkFNSUxZKSAmJiBFTkFCTEUoREVWSUNFX09SSUVOVEFU
SU9OKQogICAgIHN0ZDo6dW5pcXVlX3B0cjxXZWJEZXZpY2VPcmllbnRhdGlvblVwZGF0ZVByb3Zp
ZGVyUHJveHk+IG1fd2ViRGV2aWNlT3JpZW50YXRpb25VcGRhdGVQcm92aWRlclByb3h5OwogI2Vu
ZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQv
V2ViQ2hyb21lQ2xpZW50LmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3Vw
cG9ydC9XZWJDaHJvbWVDbGllbnQuY3BwCmluZGV4IGE2ODM2Yzk4NDc2ODNjNzU3YjM4NmQ5NmNm
OTc3ZDZjYzUyMjYzMDkuLjFkM2VhOTZmYjIyNTlkNzNhM2I4OGM0ZDVhYmMxZDcxOWE3MmVhNzEg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJD
aHJvbWVDbGllbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3Vw
cG9ydC9XZWJDaHJvbWVDbGllbnQuY3BwCkBAIC05ODcsMTQgKzk4Nyw5IEBAIGJvb2wgV2ViQ2hy
b21lQ2xpZW50OjpzdXBwb3J0c1ZpZGVvRnVsbHNjcmVlblN0YW5kYnkoKQogICAgIHJldHVybiBt
X3BhZ2UudmlkZW9GdWxsc2NyZWVuTWFuYWdlcigpLnN1cHBvcnRzVmlkZW9GdWxsc2NyZWVuU3Rh
bmRieSgpOwogfQogCi12b2lkIFdlYkNocm9tZUNsaWVudDo6c2V0VXBQbGF5YmFja0NvbnRyb2xz
TWFuYWdlcihIVE1MTWVkaWFFbGVtZW50JiBtZWRpYUVsZW1lbnQpCit2b2lkIFdlYkNocm9tZUNs
aWVudDo6c2V0TW9ja1ZpZGVvUHJlc2VudGF0aW9uTW9kZUVuYWJsZWQoYm9vbCBlbmFibGVkKQog
ewotICAgIG1fcGFnZS5wbGF5YmFja1Nlc3Npb25NYW5hZ2VyKCkuc2V0VXBQbGF5YmFja0NvbnRy
b2xzTWFuYWdlcihtZWRpYUVsZW1lbnQpOwotfQotCi12b2lkIFdlYkNocm9tZUNsaWVudDo6Y2xl
YXJQbGF5YmFja0NvbnRyb2xzTWFuYWdlcigpCi17Ci0gICAgbV9wYWdlLnBsYXliYWNrU2Vzc2lv
bk1hbmFnZXIoKS5jbGVhclBsYXliYWNrQ29udHJvbHNNYW5hZ2VyKCk7CisgICAgbV9wYWdlLnZp
ZGVvRnVsbHNjcmVlbk1hbmFnZXIoKS5zZXRNb2NrVmlkZW9QcmVzZW50YXRpb25Nb2RlRW5hYmxl
ZChlbmFibGVkKTsKIH0KIAogdm9pZCBXZWJDaHJvbWVDbGllbnQ6OmVudGVyVmlkZW9GdWxsc2Ny
ZWVuRm9yVmlkZW9FbGVtZW50KEhUTUxWaWRlb0VsZW1lbnQmIHZpZGVvRWxlbWVudCwgSFRNTE1l
ZGlhRWxlbWVudEVudW1zOjpWaWRlb0Z1bGxzY3JlZW5Nb2RlIG1vZGUsIGJvb2wgc3RhbmRieSkK
QEAgLTEwMTEsNiArMTAwNiwxNyBAQCB2b2lkIFdlYkNocm9tZUNsaWVudDo6ZXhpdFZpZGVvRnVs
bHNjcmVlbkZvclZpZGVvRWxlbWVudChIVE1MVmlkZW9FbGVtZW50JiB2aWRlbwogewogICAgIG1f
cGFnZS52aWRlb0Z1bGxzY3JlZW5NYW5hZ2VyKCkuZXhpdFZpZGVvRnVsbHNjcmVlbkZvclZpZGVv
RWxlbWVudCh2aWRlb0VsZW1lbnQpOwogfQorCit2b2lkIFdlYkNocm9tZUNsaWVudDo6c2V0VXBQ
bGF5YmFja0NvbnRyb2xzTWFuYWdlcihIVE1MTWVkaWFFbGVtZW50JiBtZWRpYUVsZW1lbnQpCit7
CisgICAgbV9wYWdlLnBsYXliYWNrU2Vzc2lvbk1hbmFnZXIoKS5zZXRVcFBsYXliYWNrQ29udHJv
bHNNYW5hZ2VyKG1lZGlhRWxlbWVudCk7Cit9CisKK3ZvaWQgV2ViQ2hyb21lQ2xpZW50OjpjbGVh
clBsYXliYWNrQ29udHJvbHNNYW5hZ2VyKCkKK3sKKyAgICBtX3BhZ2UucGxheWJhY2tTZXNzaW9u
TWFuYWdlcigpLmNsZWFyUGxheWJhY2tDb250cm9sc01hbmFnZXIoKTsKK30KKwogI2VuZGlmCiAK
ICNpZiBFTkFCTEUoTUVESUFfVVNBR0UpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmggYi9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmgKaW5kZXggODZkZjYzZjU2
MTNjMmQyYjJmN2UyYWY1MjM1ZTgyNjE0ZDI1MDI2My4uMmFkZWQxMzMwODg4NTY2MmQxNjgyYjg0
NjUwZThjYTMxNWNlNTJmMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dl
YkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuaApAQCAtMjY0LDEwICsyNjQsMTEg
QEAgcHJpdmF0ZToKICNpZiBFTkFCTEUoVklERU9fUFJFU0VOVEFUSU9OX01PREUpCiAgICAgYm9v
bCBzdXBwb3J0c1ZpZGVvRnVsbHNjcmVlbihXZWJDb3JlOjpIVE1MTWVkaWFFbGVtZW50RW51bXM6
OlZpZGVvRnVsbHNjcmVlbk1vZGUpIGZpbmFsOwogICAgIGJvb2wgc3VwcG9ydHNWaWRlb0Z1bGxz
Y3JlZW5TdGFuZGJ5KCkgZmluYWw7Ci0gICAgdm9pZCBzZXRVcFBsYXliYWNrQ29udHJvbHNNYW5h
Z2VyKFdlYkNvcmU6OkhUTUxNZWRpYUVsZW1lbnQmKSBmaW5hbDsKLSAgICB2b2lkIGNsZWFyUGxh
eWJhY2tDb250cm9sc01hbmFnZXIoKSBmaW5hbDsKKyAgICB2b2lkIHNldE1vY2tWaWRlb1ByZXNl
bnRhdGlvbk1vZGVFbmFibGVkKGJvb2wpIGZpbmFsOwogICAgIHZvaWQgZW50ZXJWaWRlb0Z1bGxz
Y3JlZW5Gb3JWaWRlb0VsZW1lbnQoV2ViQ29yZTo6SFRNTFZpZGVvRWxlbWVudCYsIFdlYkNvcmU6
OkhUTUxNZWRpYUVsZW1lbnRFbnVtczo6VmlkZW9GdWxsc2NyZWVuTW9kZSwgYm9vbCBzdGFuZGJ5
KSBmaW5hbDsKICAgICB2b2lkIGV4aXRWaWRlb0Z1bGxzY3JlZW5Gb3JWaWRlb0VsZW1lbnQoV2Vi
Q29yZTo6SFRNTFZpZGVvRWxlbWVudCYpIGZpbmFsOworICAgIHZvaWQgc2V0VXBQbGF5YmFja0Nv
bnRyb2xzTWFuYWdlcihXZWJDb3JlOjpIVE1MTWVkaWFFbGVtZW50JikgZmluYWw7CisgICAgdm9p
ZCBjbGVhclBsYXliYWNrQ29udHJvbHNNYW5hZ2VyKCkgZmluYWw7CiAjZW5kaWYKIAogI2lmIEVO
QUJMRShNRURJQV9VU0FHRSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9j
b2NvYS9WaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyLmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
Y29jb2EvVmlkZW9GdWxsc2NyZWVuTWFuYWdlci5oCmluZGV4IGYxMzZlY2I5ZGQzZWFjZWZhZGQ5
NzRiZGNkYmQ0MmNhZWZmNjI3Y2YuLjVmM2M4YTVmY2MxYWJkNzZhMWE0YjViNWU4Yzg5Zjk3YTBj
ZGZhZWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9jb2NvYS9WaWRlb0Z1
bGxzY3JlZW5NYW5hZ2VyLmgKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL2NvY29hL1Zp
ZGVvRnVsbHNjcmVlbk1hbmFnZXIuaApAQCAtMTE1LDcgKzExNSw4IEBAIHB1YmxpYzoKICAgICAK
ICAgICB2b2lkIGRpZFJlY2VpdmVNZXNzYWdlKElQQzo6Q29ubmVjdGlvbiYsIElQQzo6RGVjb2Rl
ciYpIG92ZXJyaWRlOwogCi0gICAgLy8gSW50ZXJmYWNlIHRvIENocm9tZUNsaWVudAorICAgIC8v
IEludGVyZmFjZSB0byBXZWJDaHJvbWVDbGllbnQKKyAgICB2b2lkIHNldE1vY2tWaWRlb1ByZXNl
bnRhdGlvbk1vZGVFbmFibGVkKGJvb2wgZW5hYmxlZCkgeyBtX21vY2tWaWRlb1ByZXNlbnRhdGlv
bk1vZGVFbmFibGVkID0gZW5hYmxlZDsgfQogICAgIGJvb2wgc3VwcG9ydHNWaWRlb0Z1bGxzY3Jl
ZW4oV2ViQ29yZTo6SFRNTE1lZGlhRWxlbWVudEVudW1zOjpWaWRlb0Z1bGxzY3JlZW5Nb2RlKSBj
b25zdDsKICAgICBib29sIHN1cHBvcnRzVmlkZW9GdWxsc2NyZWVuU3RhbmRieSgpIGNvbnN0Owog
ICAgIHZvaWQgZW50ZXJWaWRlb0Z1bGxzY3JlZW5Gb3JWaWRlb0VsZW1lbnQoV2ViQ29yZTo6SFRN
TFZpZGVvRWxlbWVudCYsIFdlYkNvcmU6OkhUTUxNZWRpYUVsZW1lbnRFbnVtczo6VmlkZW9GdWxs
c2NyZWVuTW9kZSwgYm9vbCBzdGFuZGJ5KTsKQEAgLTE1Nyw2ICsxNTgsNyBAQCBwcm90ZWN0ZWQ6
CiAgICAgdm9pZCByZXF1ZXN0Um91dGVTaGFyaW5nUG9saWN5QW5kQ29udGV4dFVJRCh1aW50NjRf
dCBjb250ZXh0SWQsIE1lc3NhZ2VzOjpWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyOjpSZXF1ZXN0Um91
dGVTaGFyaW5nUG9saWN5QW5kQ29udGV4dFVJREFzeW5jUmVwbHkmJik7CiAKICAgICBXZWJQYWdl
KiBtX3BhZ2U7CisgICAgYm9vbCBtX21vY2tWaWRlb1ByZXNlbnRhdGlvbk1vZGVFbmFibGVkIHsg
ZmFsc2UgfTsKICAgICBSZWY8UGxheWJhY2tTZXNzaW9uTWFuYWdlcj4gbV9wbGF5YmFja1Nlc3Np
b25NYW5hZ2VyOwogICAgIEhhc2hNYXA8V2ViQ29yZTo6SFRNTFZpZGVvRWxlbWVudCosIHVpbnQ2
NF90PiBtX3ZpZGVvRWxlbWVudHM7CiAgICAgSGFzaE1hcDx1aW50NjRfdCwgTW9kZWxJbnRlcmZh
Y2VUdXBsZT4gbV9jb250ZXh0TWFwOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL2NvY29hL1ZpZGVvRnVsbHNjcmVlbk1hbmFnZXIubW0gYi9Tb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvY29jb2EvVmlkZW9GdWxsc2NyZWVuTWFuYWdlci5tbQppbmRleCBmYmRkNGU5ODExNjA2
MTQ3ODQ4MmE5N2U0MzFhZjFmYjI2MmM4ZmRjLi4zMGNlMGNiNDczNGMxZTQ0NTY5ZTFhZjY2NGQw
MTMzMjllMDY3NGU5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvY29jb2Ev
VmlkZW9GdWxsc2NyZWVuTWFuYWdlci5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
Y29jb2EvVmlkZW9GdWxsc2NyZWVuTWFuYWdlci5tbQpAQCAtMjg1LDcgKzI4NSwxMyBAQCB2b2lk
IFZpZGVvRnVsbHNjcmVlbk1hbmFnZXI6OmVudGVyVmlkZW9GdWxsc2NyZWVuRm9yVmlkZW9FbGVt
ZW50KEhUTUxWaWRlb0VsZW1lbgogICAgICAgICBpbnRlcmZhY2UtPmxheWVySG9zdGluZ0NvbnRl
eHQoKS0+c2V0Um9vdExheWVyKHZpZGVvTGF5ZXIuZ2V0KCkpOwogICAgIH0KIAotICAgIG1fcGFn
ZS0+c2VuZChNZXNzYWdlczo6VmlkZW9GdWxsc2NyZWVuTWFuYWdlclByb3h5OjpTZXR1cEZ1bGxz
Y3JlZW5XaXRoSUQoY29udGV4dElkLCBpbnRlcmZhY2UtPmxheWVySG9zdGluZ0NvbnRleHQoKS0+
Y29udGV4dElEKCksIHZpZGVvUmVjdCwgbV9wYWdlLT5kZXZpY2VTY2FsZUZhY3RvcigpLCBpbnRl
cmZhY2UtPmZ1bGxzY3JlZW5Nb2RlKCksIGFsbG93c1BpY3R1cmVJblBpY3R1cmUsIHN0YW5kYnkp
KTsKKyAgICBpZiAoIW1fbW9ja1ZpZGVvUHJlc2VudGF0aW9uTW9kZUVuYWJsZWQpCisgICAgICAg
IG1fcGFnZS0+c2VuZChNZXNzYWdlczo6VmlkZW9GdWxsc2NyZWVuTWFuYWdlclByb3h5OjpTZXR1
cEZ1bGxzY3JlZW5XaXRoSUQoY29udGV4dElkLCBpbnRlcmZhY2UtPmxheWVySG9zdGluZ0NvbnRl
eHQoKS0+Y29udGV4dElEKCksIHZpZGVvUmVjdCwgbV9wYWdlLT5kZXZpY2VTY2FsZUZhY3Rvcigp
LCBpbnRlcmZhY2UtPmZ1bGxzY3JlZW5Nb2RlKCksIGFsbG93c1BpY3R1cmVJblBpY3R1cmUsIHN0
YW5kYnkpKTsKKyAgICBlbHNlIHsKKyAgICAgICAgZGlzcGF0Y2hfYXN5bmMoZGlzcGF0Y2hfZ2V0
X21haW5fcXVldWUoKSwgW3Byb3RlY3RlZFRoaXMgPSBtYWtlUmVmUHRyKHRoaXMpLCB0aGlzLCBj
b250ZXh0SWRdIHsKKyAgICAgICAgICAgIHJlcXVlc3RWaWRlb0NvbnRlbnRMYXllcihjb250ZXh0
SWQpOworICAgICAgICB9KTsKKyAgICB9CiB9CiAKIHZvaWQgVmlkZW9GdWxsc2NyZWVuTWFuYWdl
cjo6ZXhpdFZpZGVvRnVsbHNjcmVlbkZvclZpZGVvRWxlbWVudChXZWJDb3JlOjpIVE1MVmlkZW9F
bGVtZW50JiB2aWRlb0VsZW1lbnQpCkBAIC0zMDEsNyArMzA3LDE0IEBAIHZvaWQgVmlkZW9GdWxs
c2NyZWVuTWFuYWdlcjo6ZXhpdFZpZGVvRnVsbHNjcmVlbkZvclZpZGVvRWxlbWVudChXZWJDb3Jl
OjpIVE1MVmlkCiAgICAgICAgIHJldHVybjsKIAogICAgIGludGVyZmFjZS5zZXRBbmltYXRpb25T
dGF0ZShWaWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2VDb250ZXh0OjpBbmltYXRpb25UeXBlOjpGcm9t
RnVsbHNjcmVlbik7Ci0gICAgbV9wYWdlLT5zZW5kKE1lc3NhZ2VzOjpWaWRlb0Z1bGxzY3JlZW5N
YW5hZ2VyUHJveHk6OkV4aXRGdWxsc2NyZWVuKGNvbnRleHRJZCwgaW5saW5lVmlkZW9GcmFtZSh2
aWRlb0VsZW1lbnQpKSk7CisKKyAgICBpZiAoIW1fbW9ja1ZpZGVvUHJlc2VudGF0aW9uTW9kZUVu
YWJsZWQpCisgICAgICAgIG1fcGFnZS0+c2VuZChNZXNzYWdlczo6VmlkZW9GdWxsc2NyZWVuTWFu
YWdlclByb3h5OjpFeGl0RnVsbHNjcmVlbihjb250ZXh0SWQsIGlubGluZVZpZGVvRnJhbWUodmlk
ZW9FbGVtZW50KSkpOworICAgIGVsc2UgeworICAgICAgICBkaXNwYXRjaF9hc3luYyhkaXNwYXRj
aF9nZXRfbWFpbl9xdWV1ZSgpLCBbcHJvdGVjdGVkVGhpcyA9IG1ha2VSZWZQdHIodGhpcyksIHRo
aXMsIGNvbnRleHRJZF0geworICAgICAgICAgICAgcmV0dXJuVmlkZW9Db250ZW50TGF5ZXIoY29u
dGV4dElkKTsKKyAgICAgICAgfSk7CisgICAgfQogfQogCiB2b2lkIFZpZGVvRnVsbHNjcmVlbk1h
bmFnZXI6OmV4aXRWaWRlb0Z1bGxzY3JlZW5Ub01vZGVXaXRob3V0QW5pbWF0aW9uKFdlYkNvcmU6
OkhUTUxWaWRlb0VsZW1lbnQmIHZpZGVvRWxlbWVudCwgV2ViQ29yZTo6SFRNTE1lZGlhRWxlbWVu
dEVudW1zOjpWaWRlb0Z1bGxzY3JlZW5Nb2RlIHRhcmdldE1vZGUpCkBAIC0zMTYsMjAgKzMyOSwy
MSBAQCB2b2lkIFZpZGVvRnVsbHNjcmVlbk1hbmFnZXI6OmV4aXRWaWRlb0Z1bGxzY3JlZW5Ub01v
ZGVXaXRob3V0QW5pbWF0aW9uKFdlYkNvcmU6OgogCiAgICAgaW50ZXJmYWNlLnNldFRhcmdldElz
RnVsbHNjcmVlbihmYWxzZSk7CiAKLSAgICBtX3BhZ2UtPnNlbmQoTWVzc2FnZXM6OlZpZGVvRnVs
bHNjcmVlbk1hbmFnZXJQcm94eTo6RXhpdEZ1bGxzY3JlZW5XaXRob3V0QW5pbWF0aW9uVG9Nb2Rl
KGNvbnRleHRJZCwgdGFyZ2V0TW9kZSkpOworICAgIGlmICghbV9tb2NrVmlkZW9QcmVzZW50YXRp
b25Nb2RlRW5hYmxlZCkKKyAgICAgICAgbV9wYWdlLT5zZW5kKE1lc3NhZ2VzOjpWaWRlb0Z1bGxz
Y3JlZW5NYW5hZ2VyUHJveHk6OkV4aXRGdWxsc2NyZWVuV2l0aG91dEFuaW1hdGlvblRvTW9kZShj
b250ZXh0SWQsIHRhcmdldE1vZGUpKTsKIH0KIAogI3ByYWdtYSBtYXJrIEludGVyZmFjZSB0byBW
aWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2VDb250ZXh0OgogCiB2b2lkIFZpZGVvRnVsbHNjcmVlbk1h
bmFnZXI6Omhhc1ZpZGVvQ2hhbmdlZCh1aW50NjRfdCBjb250ZXh0SWQsIGJvb2wgaGFzVmlkZW8p
CiB7Ci0gICAgaWYgKG1fcGFnZSkKKyAgICBpZiAoIW1fbW9ja1ZpZGVvUHJlc2VudGF0aW9uTW9k
ZUVuYWJsZWQgJiYgbV9wYWdlKQogICAgICAgICBtX3BhZ2UtPnNlbmQoTWVzc2FnZXM6OlZpZGVv
RnVsbHNjcmVlbk1hbmFnZXJQcm94eTo6U2V0SGFzVmlkZW8oY29udGV4dElkLCBoYXNWaWRlbykp
OwogfQogCiB2b2lkIFZpZGVvRnVsbHNjcmVlbk1hbmFnZXI6OnZpZGVvRGltZW5zaW9uc0NoYW5n
ZWQodWludDY0X3QgY29udGV4dElkLCBjb25zdCBGbG9hdFNpemUmIHZpZGVvRGltZW5zaW9ucykK
IHsKLSAgICBpZiAobV9wYWdlKQorICAgIGlmICghbV9tb2NrVmlkZW9QcmVzZW50YXRpb25Nb2Rl
RW5hYmxlZCAmJiBtX3BhZ2UpCiAgICAgICAgIG1fcGFnZS0+c2VuZChNZXNzYWdlczo6VmlkZW9G
dWxsc2NyZWVuTWFuYWdlclByb3h5OjpTZXRWaWRlb0RpbWVuc2lvbnMoY29udGV4dElkLCB2aWRl
b0RpbWVuc2lvbnMpKTsKIH0KIApAQCAtMzQ3LDcgKzM2MSw3IEBAIHZvaWQgVmlkZW9GdWxsc2Ny
ZWVuTWFuYWdlcjo6ZnVsbHNjcmVlbk1vZGVDaGFuZ2VkKHVpbnQ2NF90IGNvbnRleHRJZCwgV2Vi
Q29yZTo6CiAKIHZvaWQgVmlkZW9GdWxsc2NyZWVuTWFuYWdlcjo6cmVxdWVzdFVwZGF0ZUlubGlu
ZVJlY3QodWludDY0X3QgY29udGV4dElkKQogewotICAgIGlmICghbV9wYWdlKQorICAgIGlmICht
X21vY2tWaWRlb1ByZXNlbnRhdGlvbk1vZGVFbmFibGVkIHx8ICFtX3BhZ2UpCiAgICAgICAgIHJl
dHVybjsKIAogICAgIGF1dG8mIG1vZGVsID0gZW5zdXJlTW9kZWwoY29udGV4dElkKTsKQEAgLTM2
Miw5ICszNzYsMTcgQEAgdm9pZCBWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyOjpyZXF1ZXN0VmlkZW9D
b250ZW50TGF5ZXIodWludDY0X3QgY29udGV4dElkKQogICAgIENBTGF5ZXIqIHZpZGVvTGF5ZXIg
PSBpbnRlcmZhY2UtPmxheWVySG9zdGluZ0NvbnRleHQoKS0+cm9vdExheWVyKCk7CiAKICAgICBt
b2RlbC0+c2V0VmlkZW9GdWxsc2NyZWVuTGF5ZXIodmlkZW9MYXllciwgW3Byb3RlY3RlZFRoaXMg
PSBtYWtlUmVmUHRyKHRoaXMpLCB0aGlzLCBjb250ZXh0SWRdICgpIG11dGFibGUgewotICAgICAg
ICBkaXNwYXRjaF9hc3luYyhkaXNwYXRjaF9nZXRfbWFpbl9xdWV1ZSgpLCBbcHJvdGVjdGVkVGhp
cyA9IFdURk1vdmUocHJvdGVjdGVkVGhpcyksIHRoaXMsIGNvbnRleHRJZF0gewotICAgICAgICAg
ICAgaWYgKHByb3RlY3RlZFRoaXMtPm1fcGFnZSkKKyAgICAgICAgZGlzcGF0Y2hfYXN5bmMoZGlz
cGF0Y2hfZ2V0X21haW5fcXVldWUoKSwgW3Byb3RlY3RlZFRoaXMgPSBXVEZNb3ZlKHByb3RlY3Rl
ZFRoaXMpLCB0aGlzLCBjb250ZXh0SWRdICgpIG11dGFibGUgeworICAgICAgICAgICAgaWYgKCFt
X3BhZ2UpCisgICAgICAgICAgICAgICAgcmV0dXJuOworCisgICAgICAgICAgICBpZiAoIW1fbW9j
a1ZpZGVvUHJlc2VudGF0aW9uTW9kZUVuYWJsZWQpCiAgICAgICAgICAgICAgICAgbV9wYWdlLT5z
ZW5kKE1lc3NhZ2VzOjpWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyUHJveHk6OlNldEhhc1ZpZGVvQ29u
dGVudExheWVyKGNvbnRleHRJZCwgdHJ1ZSkpOworICAgICAgICAgICAgZWxzZSB7CisgICAgICAg
ICAgICAgICAgZGlzcGF0Y2hfYXN5bmMoZGlzcGF0Y2hfZ2V0X21haW5fcXVldWUoKSwgW3Byb3Rl
Y3RlZFRoaXMgPSBXVEZNb3ZlKHByb3RlY3RlZFRoaXMpLCB0aGlzLCBjb250ZXh0SWRdIHsKKyAg
ICAgICAgICAgICAgICAgICAgZGlkU2V0dXBGdWxsc2NyZWVuKGNvbnRleHRJZCk7CisgICAgICAg
ICAgICAgICAgfSk7CisgICAgICAgICAgICB9CiAgICAgICAgIH0pOwogICAgIH0pOwogfQpAQCAt
Mzc4LDkgKzQwMCwxNyBAQCB2b2lkIFZpZGVvRnVsbHNjcmVlbk1hbmFnZXI6OnJldHVyblZpZGVv
Q29udGVudExheWVyKHVpbnQ2NF90IGNvbnRleHRJZCkKICAgICBtb2RlbC0+d2FpdEZvclByZXBh
cmVkRm9ySW5saW5lVGhlbihbcHJvdGVjdGVkVGhpcyA9IG1ha2VSZWZQdHIodGhpcyksIHRoaXMs
IGNvbnRleHRJZCwgbW9kZWxdICgpIG11dGFibGUgeyAvLyBuZWVkIHRoaXMgZm9yIHJldHVybiB2
aWRlbyBsYXllcgogICAgICAgICBkaXNwYXRjaF9hc3luYyhkaXNwYXRjaF9nZXRfbWFpbl9xdWV1
ZSgpLCBbcHJvdGVjdGVkVGhpcyA9IFdURk1vdmUocHJvdGVjdGVkVGhpcyksIHRoaXMsIGNvbnRl
eHRJZCwgbW9kZWxdICgpIG11dGFibGUgewogICAgICAgICAgICAgbW9kZWwtPnNldFZpZGVvRnVs
bHNjcmVlbkxheWVyKG5pbCwgW3Byb3RlY3RlZFRoaXMgPSBXVEZNb3ZlKHByb3RlY3RlZFRoaXMp
LCB0aGlzLCBjb250ZXh0SWRdICgpIG11dGFibGUgewotICAgICAgICAgICAgICAgIGRpc3BhdGNo
X2FzeW5jKGRpc3BhdGNoX2dldF9tYWluX3F1ZXVlKCksIFtwcm90ZWN0ZWRUaGlzID0gV1RGTW92
ZShwcm90ZWN0ZWRUaGlzKSwgdGhpcywgY29udGV4dElkXSB7Ci0gICAgICAgICAgICAgICAgICAg
IGlmIChwcm90ZWN0ZWRUaGlzLT5tX3BhZ2UpCisgICAgICAgICAgICAgICAgZGlzcGF0Y2hfYXN5
bmMoZGlzcGF0Y2hfZ2V0X21haW5fcXVldWUoKSwgW3Byb3RlY3RlZFRoaXMgPSBXVEZNb3ZlKHBy
b3RlY3RlZFRoaXMpLCB0aGlzLCBjb250ZXh0SWRdICgpIG11dGFibGUgeworICAgICAgICAgICAg
ICAgICAgICBpZiAoIW1fcGFnZSkKKyAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybjsKKwor
ICAgICAgICAgICAgICAgICAgICBpZiAoIW1fbW9ja1ZpZGVvUHJlc2VudGF0aW9uTW9kZUVuYWJs
ZWQpCiAgICAgICAgICAgICAgICAgICAgICAgICBtX3BhZ2UtPnNlbmQoTWVzc2FnZXM6OlZpZGVv
RnVsbHNjcmVlbk1hbmFnZXJQcm94eTo6U2V0SGFzVmlkZW9Db250ZW50TGF5ZXIoY29udGV4dElk
LCBmYWxzZSkpOworICAgICAgICAgICAgICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgICAgICAg
ICAgICAgIGRpc3BhdGNoX2FzeW5jKGRpc3BhdGNoX2dldF9tYWluX3F1ZXVlKCksIFtwcm90ZWN0
ZWRUaGlzID0gV1RGTW92ZShwcm90ZWN0ZWRUaGlzKSwgdGhpcywgY29udGV4dElkXSB7CisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgZGlkRXhpdEZ1bGxzY3JlZW4oY29udGV4dElkKTsKKyAg
ICAgICAgICAgICAgICAgICAgICAgIH0pOworICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAg
ICAgICAgICAgfSk7CiAgICAgICAgICAgICB9KTsKICAgICAgICAgfSk7CkBAIC0zOTYsMTYgKzQy
NiwzMSBAQCB2b2lkIFZpZGVvRnVsbHNjcmVlbk1hbmFnZXI6OmRpZFNldHVwRnVsbHNjcmVlbih1
aW50NjRfdCBjb250ZXh0SWQpCiAKICNpZiBQTEFURk9STShJT1NfRkFNSUxZKQogICAgIGRpc3Bh
dGNoX2FzeW5jKGRpc3BhdGNoX2dldF9tYWluX3F1ZXVlKCksIFtwcm90ZWN0ZWRUaGlzID0gbWFr
ZVJlZlB0cih0aGlzKSwgdGhpcywgY29udGV4dElkXSB7Ci0gICAgICAgIGlmIChwcm90ZWN0ZWRU
aGlzLT5tX3BhZ2UpCisgICAgICAgIGlmICghbV9wYWdlKQorICAgICAgICAgICAgcmV0dXJuOwor
CisgICAgICAgIGlmICghbV9tb2NrVmlkZW9QcmVzZW50YXRpb25Nb2RlRW5hYmxlZCkKICAgICAg
ICAgICAgIG1fcGFnZS0+c2VuZChNZXNzYWdlczo6VmlkZW9GdWxsc2NyZWVuTWFuYWdlclByb3h5
OjpFbnRlckZ1bGxzY3JlZW4oY29udGV4dElkKSk7CisgICAgICAgIGVsc2UgeworICAgICAgICAg
ICAgZGlzcGF0Y2hfYXN5bmMoZGlzcGF0Y2hfZ2V0X21haW5fcXVldWUoKSwgW3Byb3RlY3RlZFRo
aXMgPSBtYWtlUmVmUHRyKHRoaXMpLCB0aGlzLCBjb250ZXh0SWRdIHsKKyAgICAgICAgICAgICAg
ICBkaWRFbnRlckZ1bGxzY3JlZW4oY29udGV4dElkKTsKKyAgICAgICAgICAgIH0pOwogICAgIH0p
OwogI2Vsc2UKICAgICBDQUxheWVyKiB2aWRlb0xheWVyID0gaW50ZXJmYWNlLT5sYXllckhvc3Rp
bmdDb250ZXh0KCktPnJvb3RMYXllcigpOwogCiAgICAgbW9kZWwtPnNldFZpZGVvRnVsbHNjcmVl
bkxheWVyKHZpZGVvTGF5ZXIsIFtwcm90ZWN0ZWRUaGlzID0gbWFrZVJlZlB0cih0aGlzKSwgdGhp
cywgY29udGV4dElkXSAoKSBtdXRhYmxlIHsKICAgICAgICAgZGlzcGF0Y2hfYXN5bmMoZGlzcGF0
Y2hfZ2V0X21haW5fcXVldWUoKSwgW3Byb3RlY3RlZFRoaXMgPSBXVEZNb3ZlKHByb3RlY3RlZFRo
aXMpLCB0aGlzLCBjb250ZXh0SWRdIHsKLSAgICAgICAgICAgIGlmIChwcm90ZWN0ZWRUaGlzLT5t
X3BhZ2UpCisgICAgICAgICAgICBpZiAoIW1fcGFnZSkKKyAgICAgICAgICAgICAgICByZXR1cm47
CisKKyAgICAgICAgICAgIGlmICghbV9tb2NrVmlkZW9QcmVzZW50YXRpb25Nb2RlRW5hYmxlZCkK
ICAgICAgICAgICAgICAgICBtX3BhZ2UtPnNlbmQoTWVzc2FnZXM6OlZpZGVvRnVsbHNjcmVlbk1h
bmFnZXJQcm94eTo6RW50ZXJGdWxsc2NyZWVuKGNvbnRleHRJZCkpOworICAgICAgICAgICAgZWxz
ZSB7CisgICAgICAgICAgICAgICAgZGlzcGF0Y2hfYXN5bmMoZGlzcGF0Y2hfZ2V0X21haW5fcXVl
dWUoKSwgW3Byb3RlY3RlZFRoaXMgPSBtYWtlUmVmUHRyKHRoaXMpLCB0aGlzLCBjb250ZXh0SWRd
IHsKKyAgICAgICAgICAgICAgICAgICAgZGlkRW50ZXJGdWxsc2NyZWVuKGNvbnRleHRJZCk7Cisg
ICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICB9CiAgICAgICAgIH0pOwogICAgIH0pOwog
I2VuZGlmCkBAIC00MjEsMTAgKzQ2NiwxMCBAQCB2b2lkIFZpZGVvRnVsbHNjcmVlbk1hbmFnZXI6
OndpbGxFeGl0RnVsbHNjcmVlbih1aW50NjRfdCBjb250ZXh0SWQpCiAgICAgaWYgKCF2aWRlb0Vs
ZW1lbnQpCiAgICAgICAgIHJldHVybjsKIAotICAgIGRpc3BhdGNoX2FzeW5jKGRpc3BhdGNoX2dl
dF9tYWluX3F1ZXVlKCksIFtwcm90ZWN0ZWRUaGlzID0gbWFrZVJlZlB0cih0aGlzKSwgdmlkZW9F
bGVtZW50ID0gV1RGTW92ZSh2aWRlb0VsZW1lbnQpLCBjb250ZXh0SWRdIHsKKyAgICBkaXNwYXRj
aF9hc3luYyhkaXNwYXRjaF9nZXRfbWFpbl9xdWV1ZSgpLCBbcHJvdGVjdGVkVGhpcyA9IG1ha2VS
ZWZQdHIodGhpcyksIHZpZGVvRWxlbWVudCA9IFdURk1vdmUodmlkZW9FbGVtZW50KSwgdGhpcywg
Y29udGV4dElkXSB7CiAgICAgICAgIHZpZGVvRWxlbWVudC0+d2lsbEV4aXRGdWxsc2NyZWVuKCk7
Ci0gICAgICAgIGlmIChwcm90ZWN0ZWRUaGlzLT5tX3BhZ2UpCi0gICAgICAgICAgICBwcm90ZWN0
ZWRUaGlzLT5tX3BhZ2UtPnNlbmQoTWVzc2FnZXM6OlZpZGVvRnVsbHNjcmVlbk1hbmFnZXJQcm94
eTo6UHJlcGFyZWRUb0V4aXRGdWxsc2NyZWVuKGNvbnRleHRJZCkpOworICAgICAgICBpZiAoIW1f
bW9ja1ZpZGVvUHJlc2VudGF0aW9uTW9kZUVuYWJsZWQgJiYgbV9wYWdlKQorICAgICAgICAgICAg
bV9wYWdlLT5zZW5kKE1lc3NhZ2VzOjpWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyUHJveHk6OlByZXBh
cmVkVG9FeGl0RnVsbHNjcmVlbihjb250ZXh0SWQpKTsKICAgICB9KTsKIH0KIApAQCAtNDQ5LDkg
KzQ5NCw5IEBAIHZvaWQgVmlkZW9GdWxsc2NyZWVuTWFuYWdlcjo6ZGlkRW50ZXJGdWxsc2NyZWVu
KHVpbnQ2NF90IGNvbnRleHRJZCkKICAgICAgICAgcmV0dXJuOwogCiAgICAgLy8gZXhpdCBmdWxs
c2NyZWVuIG5vdyBpZiBpdCB3YXMgcHJldmlvdXNseSByZXF1ZXN0ZWQgZHVyaW5nIGFuIGFuaW1h
dGlvbi4KLSAgICBkaXNwYXRjaF9hc3luYyhkaXNwYXRjaF9nZXRfbWFpbl9xdWV1ZSgpLCBbcHJv
dGVjdGVkVGhpcyA9IG1ha2VSZWZQdHIodGhpcyksIHZpZGVvRWxlbWVudF0gewotICAgICAgICBp
ZiAocHJvdGVjdGVkVGhpcy0+bV9wYWdlKQotICAgICAgICAgICAgcHJvdGVjdGVkVGhpcy0+ZXhp
dFZpZGVvRnVsbHNjcmVlbkZvclZpZGVvRWxlbWVudCgqdmlkZW9FbGVtZW50KTsKKyAgICBkaXNw
YXRjaF9hc3luYyhkaXNwYXRjaF9nZXRfbWFpbl9xdWV1ZSgpLCBbcHJvdGVjdGVkVGhpcyA9IG1h
a2VSZWZQdHIodGhpcyksIHRoaXMsIHZpZGVvRWxlbWVudF0geworICAgICAgICBpZiAobV9wYWdl
KQorICAgICAgICAgICAgZXhpdFZpZGVvRnVsbHNjcmVlbkZvclZpZGVvRWxlbWVudCgqdmlkZW9F
bGVtZW50KTsKICAgICB9KTsKIH0KIApAQCAtNDY0LDIxICs1MDksMzcgQEAgdm9pZCBWaWRlb0Z1
bGxzY3JlZW5NYW5hZ2VyOjpkaWRFeGl0RnVsbHNjcmVlbih1aW50NjRfdCBjb250ZXh0SWQpCiAg
ICAgc3RkOjp0aWUobW9kZWwsIGludGVyZmFjZSkgPSBlbnN1cmVNb2RlbEFuZEludGVyZmFjZShj
b250ZXh0SWQpOwogCiAjaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKLSAgICBkaXNwYXRjaF9hc3lu
YyhkaXNwYXRjaF9nZXRfbWFpbl9xdWV1ZSgpLCBbcHJvdGVjdGVkVGhpcyA9IG1ha2VSZWZQdHIo
dGhpcyksIGNvbnRleHRJZCwgaW50ZXJmYWNlXSB7Ci0gICAgICAgIGlmIChwcm90ZWN0ZWRUaGlz
LT5tX3BhZ2UpCi0gICAgICAgICAgICBwcm90ZWN0ZWRUaGlzLT5tX3BhZ2UtPnNlbmQoTWVzc2Fn
ZXM6OlZpZGVvRnVsbHNjcmVlbk1hbmFnZXJQcm94eTo6Q2xlYW51cEZ1bGxzY3JlZW4oY29udGV4
dElkKSk7CisgICAgZGlzcGF0Y2hfYXN5bmMoZGlzcGF0Y2hfZ2V0X21haW5fcXVldWUoKSwgW3By
b3RlY3RlZFRoaXMgPSBtYWtlUmVmUHRyKHRoaXMpLCB0aGlzLCBjb250ZXh0SWQsIGludGVyZmFj
ZV0geworICAgICAgICBpZiAoIW1fcGFnZSkKKyAgICAgICAgICAgIHJldHVybjsKKworICAgICAg
ICBpZiAoIW1fbW9ja1ZpZGVvUHJlc2VudGF0aW9uTW9kZUVuYWJsZWQpCisgICAgICAgICAgICBt
X3BhZ2UtPnNlbmQoTWVzc2FnZXM6OlZpZGVvRnVsbHNjcmVlbk1hbmFnZXJQcm94eTo6Q2xlYW51
cEZ1bGxzY3JlZW4oY29udGV4dElkKSk7CisgICAgICAgIGVsc2UgeworICAgICAgICAgICAgZGlz
cGF0Y2hfYXN5bmMoZGlzcGF0Y2hfZ2V0X21haW5fcXVldWUoKSwgW3Byb3RlY3RlZFRoaXMgPSBX
VEZNb3ZlKHByb3RlY3RlZFRoaXMpLCB0aGlzLCBjb250ZXh0SWRdIHsKKyAgICAgICAgICAgICAg
ICBkaWRDbGVhbnVwRnVsbHNjcmVlbihjb250ZXh0SWQpOworICAgICAgICAgICAgfSk7CiAgICAg
fSk7CiAjZWxzZQogICAgIG1vZGVsLT53YWl0Rm9yUHJlcGFyZWRGb3JJbmxpbmVUaGVuKFtwcm90
ZWN0ZWRUaGlzID0gbWFrZVJlZlB0cih0aGlzKSwgY29udGV4dElkLCBpbnRlcmZhY2UsIG1vZGVs
XSAoKSBtdXRhYmxlIHsKICAgICAgICAgZGlzcGF0Y2hfYXN5bmMoZGlzcGF0Y2hfZ2V0X21haW5f
cXVldWUoKSwgW3Byb3RlY3RlZFRoaXMgPSBXVEZNb3ZlKHByb3RlY3RlZFRoaXMpLCBjb250ZXh0
SWQsIGludGVyZmFjZSwgbW9kZWxdICgpIG11dGFibGUgewogICAgICAgICAgICAgbW9kZWwtPnNl
dFZpZGVvRnVsbHNjcmVlbkxheWVyKG5pbCwgW3Byb3RlY3RlZFRoaXMgPSBXVEZNb3ZlKHByb3Rl
Y3RlZFRoaXMpLCBjb250ZXh0SWQsIGludGVyZmFjZV0gKCkgbXV0YWJsZSB7Ci0gICAgICAgICAg
ICAgICAgZGlzcGF0Y2hfYXN5bmMoZGlzcGF0Y2hfZ2V0X21haW5fcXVldWUoKSwgW3Byb3RlY3Rl
ZFRoaXMgPSBXVEZNb3ZlKHByb3RlY3RlZFRoaXMpLCBjb250ZXh0SWQsIGludGVyZmFjZV0gewor
ICAgICAgICAgICAgICAgIGRpc3BhdGNoX2FzeW5jKGRpc3BhdGNoX2dldF9tYWluX3F1ZXVlKCks
IFtwcm90ZWN0ZWRUaGlzID0gV1RGTW92ZShwcm90ZWN0ZWRUaGlzKSwgY29udGV4dElkLCBpbnRl
cmZhY2VdICgpIG11dGFibGUgewogICAgICAgICAgICAgICAgICAgICBpZiAoaW50ZXJmYWNlLT5s
YXllckhvc3RpbmdDb250ZXh0KCkpIHsKICAgICAgICAgICAgICAgICAgICAgICAgIGludGVyZmFj
ZS0+bGF5ZXJIb3N0aW5nQ29udGV4dCgpLT5zZXRSb290TGF5ZXIobnVsbHB0cik7CiAgICAgICAg
ICAgICAgICAgICAgICAgICBpbnRlcmZhY2UtPnNldExheWVySG9zdGluZ0NvbnRleHQobnVsbHB0
cik7CiAgICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAgICAgaWYgKHByb3Rl
Y3RlZFRoaXMtPm1fcGFnZSkKKworICAgICAgICAgICAgICAgICAgICBpZiAoIXByb3RlY3RlZFRo
aXMtPm1fcGFnZSkKKyAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybjsKKworICAgICAgICAg
ICAgICAgICAgICBpZiAoIXByb3RlY3RlZFRoaXMtPm1fbW9ja1ZpZGVvUHJlc2VudGF0aW9uTW9k
ZUVuYWJsZWQpCiAgICAgICAgICAgICAgICAgICAgICAgICBwcm90ZWN0ZWRUaGlzLT5tX3BhZ2Ut
PnNlbmQoTWVzc2FnZXM6OlZpZGVvRnVsbHNjcmVlbk1hbmFnZXJQcm94eTo6Q2xlYW51cEZ1bGxz
Y3JlZW4oY29udGV4dElkKSk7CisgICAgICAgICAgICAgICAgICAgIGVsc2UgeworICAgICAgICAg
ICAgICAgICAgICAgICAgZGlzcGF0Y2hfYXN5bmMoZGlzcGF0Y2hfZ2V0X21haW5fcXVldWUoKSwg
W3Byb3RlY3RlZFRoaXMgPSBXVEZNb3ZlKHByb3RlY3RlZFRoaXMpLCBjb250ZXh0SWRdIHsKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBwcm90ZWN0ZWRUaGlzLT5kaWRDbGVhbnVwRnVsbHNj
cmVlbihjb250ZXh0SWQpOworICAgICAgICAgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAg
ICAgICAgICAgIH0KICAgICAgICAgICAgICAgICB9KTsKICAgICAgICAgICAgIH0pOwogICAgICAg
ICB9KTsKQEAgLTUxMyw5ICs1NzQsOSBAQCB2b2lkIFZpZGVvRnVsbHNjcmVlbk1hbmFnZXI6OmRp
ZENsZWFudXBGdWxsc2NyZWVuKHVpbnQ2NF90IGNvbnRleHRJZCkKICAgICBpZiAoIXZpZGVvRWxl
bWVudCB8fCAhdGFyZ2V0SXNGdWxsc2NyZWVuKQogICAgICAgICByZXR1cm47CiAKLSAgICBkaXNw
YXRjaF9hc3luYyhkaXNwYXRjaF9nZXRfbWFpbl9xdWV1ZSgpLCBbcHJvdGVjdGVkVGhpcyA9IG1h
a2VSZWZQdHIodGhpcyksIHZpZGVvRWxlbWVudCwgbW9kZSwgc3RhbmRieV0gewotICAgICAgICBp
ZiAocHJvdGVjdGVkVGhpcy0+bV9wYWdlKQotICAgICAgICAgICAgcHJvdGVjdGVkVGhpcy0+ZW50
ZXJWaWRlb0Z1bGxzY3JlZW5Gb3JWaWRlb0VsZW1lbnQoKnZpZGVvRWxlbWVudCwgbW9kZSwgc3Rh
bmRieSk7CisgICAgZGlzcGF0Y2hfYXN5bmMoZGlzcGF0Y2hfZ2V0X21haW5fcXVldWUoKSwgW3By
b3RlY3RlZFRoaXMgPSBtYWtlUmVmUHRyKHRoaXMpLCB0aGlzLCB2aWRlb0VsZW1lbnQsIG1vZGUs
IHN0YW5kYnldIHsKKyAgICAgICAgaWYgKG1fcGFnZSkKKyAgICAgICAgICAgIGVudGVyVmlkZW9G
dWxsc2NyZWVuRm9yVmlkZW9FbGVtZW50KCp2aWRlb0VsZW1lbnQsIG1vZGUsIHN0YW5kYnkpOwog
ICAgIH0pOwogfQogICAgIApAQCAtNTMzLDcgKzU5NCw5IEBAIHZvaWQgVmlkZW9GdWxsc2NyZWVu
TWFuYWdlcjo6ZnVsbHNjcmVlbk1heVJldHVyblRvSW5saW5lKHVpbnQ2NF90IGNvbnRleHRJZCwg
Ym9vCiAKICAgICBpZiAoIWlzUGFnZVZpc2libGUpCiAgICAgICAgIG1vZGVsLnZpZGVvRWxlbWVu
dCgpLT5zY3JvbGxJbnRvVmlld0lmTm90VmlzaWJsZShmYWxzZSk7Ci0gICAgbV9wYWdlLT5zZW5k
KE1lc3NhZ2VzOjpWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyUHJveHk6OlByZXBhcmVkVG9SZXR1cm5U
b0lubGluZShjb250ZXh0SWQsIHRydWUsIGlubGluZVZpZGVvRnJhbWUoKm1vZGVsLnZpZGVvRWxl
bWVudCgpKSkpOworCisgICAgaWYgKCFtX21vY2tWaWRlb1ByZXNlbnRhdGlvbk1vZGVFbmFibGVk
KQorICAgICAgICBtX3BhZ2UtPnNlbmQoTWVzc2FnZXM6OlZpZGVvRnVsbHNjcmVlbk1hbmFnZXJQ
cm94eTo6UHJlcGFyZWRUb1JldHVyblRvSW5saW5lKGNvbnRleHRJZCwgdHJ1ZSwgaW5saW5lVmlk
ZW9GcmFtZSgqbW9kZWwudmlkZW9FbGVtZW50KCkpKSk7CiB9CiAKIHZvaWQgVmlkZW9GdWxsc2Ny
ZWVuTWFuYWdlcjo6cmVxdWVzdFJvdXRlU2hhcmluZ1BvbGljeUFuZENvbnRleHRVSUQodWludDY0
X3QgY29udGV4dElkLCBNZXNzYWdlczo6VmlkZW9GdWxsc2NyZWVuTWFuYWdlcjo6UmVxdWVzdFJv
dXRlU2hhcmluZ1BvbGljeUFuZENvbnRleHRVSUQ6OkFzeW5jUmVwbHkmJiByZXBseSkKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNs
aWVudC5oIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21l
Q2xpZW50LmgKaW5kZXggYTdkMDY5MGJmYWRiMzdiNWViODI1OGVkMTk2NGQzYTBjNjM4N2QyNy4u
M2FjMjMwZDhhMjZkNzAxNjM0NjU3ZjJiOGJjMjk5MTRiMGExYzBiOSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmgKKysr
IGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50
LmgKQEAgLTE5MywxMCArMTkzLDEzIEBAIHByaXZhdGU6CiAKICNpZiBFTkFCTEUoVklERU8pCiAg
ICAgYm9vbCBzdXBwb3J0c1ZpZGVvRnVsbHNjcmVlbihXZWJDb3JlOjpIVE1MTWVkaWFFbGVtZW50
RW51bXM6OlZpZGVvRnVsbHNjcmVlbk1vZGUpIGZpbmFsOworI2lmIEVOQUJMRShWSURFT19QUkVT
RU5UQVRJT05fTU9ERSkKKyAgICB2b2lkIHNldE1vY2tWaWRlb1ByZXNlbnRhdGlvbk1vZGVFbmFi
bGVkKGJvb2wpIGZpbmFsOwogICAgIHZvaWQgZW50ZXJWaWRlb0Z1bGxzY3JlZW5Gb3JWaWRlb0Vs
ZW1lbnQoV2ViQ29yZTo6SFRNTFZpZGVvRWxlbWVudCYsIFdlYkNvcmU6OkhUTUxNZWRpYUVsZW1l
bnRFbnVtczo6VmlkZW9GdWxsc2NyZWVuTW9kZSwgYm9vbCBzdGFuZGJ5KSBmaW5hbDsKICAgICB2
b2lkIGV4aXRWaWRlb0Z1bGxzY3JlZW5Gb3JWaWRlb0VsZW1lbnQoV2ViQ29yZTo6SFRNTFZpZGVv
RWxlbWVudCYpIGZpbmFsOwogICAgIHZvaWQgZXhpdFZpZGVvRnVsbHNjcmVlblRvTW9kZVdpdGhv
dXRBbmltYXRpb24oV2ViQ29yZTo6SFRNTFZpZGVvRWxlbWVudCYsIFdlYkNvcmU6OkhUTUxNZWRp
YUVsZW1lbnRFbnVtczo6VmlkZW9GdWxsc2NyZWVuTW9kZSkgZmluYWw7CiAjZW5kaWYKKyNlbmRp
ZgogCiAjaWYgRU5BQkxFKEZVTExTQ1JFRU5fQVBJKQogICAgIGJvb2wgc3VwcG9ydHNGdWxsU2Ny
ZWVuRm9yRWxlbWVudChjb25zdCBXZWJDb3JlOjpFbGVtZW50JiwgYm9vbCB3aXRoS2V5Ym9hcmQp
IGZpbmFsOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViQ29yZVN1cHBv
cnQvV2ViQ2hyb21lQ2xpZW50Lm1tIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViQ29yZVN1
cHBvcnQvV2ViQ2hyb21lQ2xpZW50Lm1tCmluZGV4IDZkNjhkZjdjNzI3ZTcxMWFlNmYyNjg1M2Rk
ZGU5MmIzNWU0ZDg0YjQuLjg5NDgxNjM3NmJmODdlMzIxMzc4ODVlMDA2MDljMjNjOTZjNGY1MDkg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkNo
cm9tZUNsaWVudC5tbQorKysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJDb3JlU3VwcG9y
dC9XZWJDaHJvbWVDbGllbnQubW0KQEAgLTk2NSw2ICs5NjUsMTMgQEAgYm9vbCBXZWJDaHJvbWVD
bGllbnQ6OnN1cHBvcnRzVmlkZW9GdWxsc2NyZWVuKEhUTUxNZWRpYUVsZW1lbnRFbnVtczo6Vmlk
ZW9GdWxsc2MKICAgICByZXR1cm4gdHJ1ZTsKIH0KIAorI2lmIEVOQUJMRShWSURFT19QUkVTRU5U
QVRJT05fTU9ERSkKKwordm9pZCBXZWJDaHJvbWVDbGllbnQ6OnNldE1vY2tWaWRlb1ByZXNlbnRh
dGlvbk1vZGVFbmFibGVkKGJvb2wgZW5hYmxlZCkKK3sKKyAgICBbbV93ZWJWaWV3IF9zZXRNb2Nr
VmlkZW9QcmVzZW50YXRpb25Nb2RlRW5hYmxlZDplbmFibGVkXTsKK30KKwogdm9pZCBXZWJDaHJv
bWVDbGllbnQ6OmVudGVyVmlkZW9GdWxsc2NyZWVuRm9yVmlkZW9FbGVtZW50KEhUTUxWaWRlb0Vs
ZW1lbnQmIHZpZGVvRWxlbWVudCwgSFRNTE1lZGlhRWxlbWVudEVudW1zOjpWaWRlb0Z1bGxzY3Jl
ZW5Nb2RlIG1vZGUsIGJvb2wgc3RhbmRieSkKIHsKICAgICBBU1NFUlRfVU5VU0VEKHN0YW5kYnks
ICFzdGFuZGJ5KTsKQEAgLTk4OCw2ICs5OTUsOCBAQCB2b2lkIFdlYkNocm9tZUNsaWVudDo6ZXhp
dFZpZGVvRnVsbHNjcmVlblRvTW9kZVdpdGhvdXRBbmltYXRpb24oSFRNTFZpZGVvRWxlbWVudAog
ICAgIEVORF9CTE9DS19PQkpDX0VYQ0VQVElPTlM7CiB9CiAKKyNlbmRpZiAvLyBFTkFCTEUoVklE
RU9fUFJFU0VOVEFUSU9OX01PREUpCisKICNlbmRpZiAvLyBFTkFCTEUoVklERU8pCiAKICNpZiBF
TkFCTEUoVklERU8pICYmIFBMQVRGT1JNKE1BQykgJiYgRU5BQkxFKFZJREVPX1BSRVNFTlRBVElP
Tl9NT0RFKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViVmlldy9XZWJW
aWV3Lm1tIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViVmlldy9XZWJWaWV3Lm1tCmluZGV4
IGM5MjQxNTA4YzM5NjkxMzk1NjQ1MTQyZDA1MGIxNjlkY2ZiZDQ0NjYuLmI5MTcyMzk1YWUxMTY5
MGVjNGMxOTQzNDRjYzU1ZGQ4MTFkYjM5NzcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdh
Y3kvbWFjL1dlYlZpZXcvV2ViVmlldy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9X
ZWJWaWV3L1dlYlZpZXcubW0KQEAgLTIzNTQsNyArMjM1NCw3IEBAIC0gKHZvaWQpX2Nsb3NlCiAg
ICAgICAgIHJldHVybjsKICAgICB9CiAKLSNpZiBFTkFCTEUoVklERU8pICYmICFQTEFURk9STShJ
T1NfRkFNSUxZKQorI2lmIEVOQUJMRShWSURFT19QUkVTRU5UQVRJT05fTU9ERSkgJiYgIVBMQVRG
T1JNKElPU19GQU1JTFkpCiAgICAgW3NlbGYgX2V4aXRWaWRlb0Z1bGxzY3JlZW5dOwogI2VuZGlm
CiAKQEAgLTkyNjAsOCArOTI2MCwxOSBAQCAtICh2b2lkKV9zY2hlZHVsZVJlbmRlcmluZ1VwZGF0
ZUZvclBlbmRpbmdUaWxlQ2FjaGVSZXBhaW50CiAjZW5kaWYKIAogI2lmIEVOQUJMRShWSURFTykK
KworI2lmIEVOQUJMRShWSURFT19QUkVTRU5UQVRJT05fTU9ERSkKKworLSAodm9pZClfc2V0TW9j
a1ZpZGVvUHJlc2VudGF0aW9uTW9kZUVuYWJsZWQ6KEJPT0wpZW5hYmxlZAoreworICAgIF9wcml2
YXRlLT5tb2NrVmlkZW9QcmVzZW50YXRpb25Nb2RlRW5hYmxlZCA9IGVuYWJsZWQ7Cit9CisKIC0g
KHZvaWQpX2VudGVyVmlkZW9GdWxsc2NyZWVuRm9yVmlkZW9FbGVtZW50OihOYWtlZFB0cjxXZWJD
b3JlOjpIVE1MVmlkZW9FbGVtZW50Pil2aWRlb0VsZW1lbnQgbW9kZTooV2ViQ29yZTo6SFRNTE1l
ZGlhRWxlbWVudEVudW1zOjpWaWRlb0Z1bGxzY3JlZW5Nb2RlKW1vZGUKIHsKKyAgICBpZiAoX3By
aXZhdGUtPm1vY2tWaWRlb1ByZXNlbnRhdGlvbk1vZGVFbmFibGVkKQorICAgICAgICByZXR1cm47
CisKICAgICBpZiAoX3ByaXZhdGUtPmZ1bGxzY3JlZW5Db250cm9sbGVyKSB7CiAgICAgICAgIGlm
IChbX3ByaXZhdGUtPmZ1bGxzY3JlZW5Db250cm9sbGVyIHZpZGVvRWxlbWVudF0gPT0gdmlkZW9F
bGVtZW50KSB7CiAgICAgICAgICAgICAvLyBUaGUgYmFja2VuZCBtYXkganVzdCB3YXJuIHVzIHRo
YXQgdGhlIHVuZGVybGF5aW5nIHBsYWZ0b3JtTW92aWUoKQpAQCAtOTI5MCw2ICs5MzAxLDkgQEAg
LSAodm9pZClfZW50ZXJWaWRlb0Z1bGxzY3JlZW5Gb3JWaWRlb0VsZW1lbnQ6KE5ha2VkUHRyPFdl
YkNvcmU6OkhUTUxWaWRlb0VsZW1lbnQKIAogLSAodm9pZClfZXhpdFZpZGVvRnVsbHNjcmVlbgog
eworICAgIGlmIChfcHJpdmF0ZS0+bW9ja1ZpZGVvUHJlc2VudGF0aW9uTW9kZUVuYWJsZWQpCisg
ICAgICAgIHJldHVybjsKKwogICAgIGlmICghX3ByaXZhdGUtPmZ1bGxzY3JlZW5Db250cm9sbGVy
ICYmIF9wcml2YXRlLT5mdWxsc2NyZWVuQ29udHJvbGxlcnNFeGl0aW5nLmlzRW1wdHkoKSkKICAg
ICAgICAgcmV0dXJuOwogCkBAIC05MzA3LDcgKzkzMjEsNyBAQCAtICh2b2lkKV9leGl0VmlkZW9G
dWxsc2NyZWVuCiAgICAgW2Z1bGxzY3JlZW5Db250cm9sbGVyIGV4aXRGdWxsc2NyZWVuXTsKIH0K
IAotI2lmIFBMQVRGT1JNKE1BQykgJiYgRU5BQkxFKFZJREVPX1BSRVNFTlRBVElPTl9NT0RFKQor
I2lmIFBMQVRGT1JNKE1BQykKIC0gKEJPT0wpX2hhc0FjdGl2ZVZpZGVvRm9yQ29udHJvbHNJbnRl
cmZhY2UKIHsKICAgICBpZiAoIV9wcml2YXRlLT5wbGF5YmFja1Nlc3Npb25Nb2RlbCkKQEAgLTkz
NDcsNyArOTM2MSwxMSBAQCAtICh2b2lkKV9jbGVhclBsYXliYWNrQ29udHJvbHNNYW5hZ2VyCiAg
ICAgX3ByaXZhdGUtPnBsYXliYWNrU2Vzc2lvbkludGVyZmFjZSA9IG51bGxwdHI7CiAgICAgW3Nl
bGYgdXBkYXRlVG91Y2hCYXJdOwogfQotI2VuZGlmIC8vIFBMQVRGT1JNKE1BQykgJiYgRU5BQkxF
KFZJREVPX1BSRVNFTlRBVElPTl9NT0RFKQorCisjZW5kaWYgLy8gUExBVEZPUk0oTUFDKQorCisj
ZW5kaWYgLy8gRU5BQkxFKFZJREVPX1BSRVNFTlRBVElPTl9NT0RFKQorCiAjZW5kaWYgLy8gRU5B
QkxFKFZJREVPKQogCiAjaWYgRU5BQkxFKEZVTExTQ1JFRU5fQVBJKSAmJiAhUExBVEZPUk0oSU9T
X0ZBTUlMWSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcvV2Vi
Vmlld0RhdGEuaCBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcvV2ViVmlld0RhdGEu
aAppbmRleCBmZTk4MzliYWM0NzQ5MWExNDNiYTY4YmU3YzliYjY1MGFmZDUwN2I4Li42ODI2MDA0
NTBiMjM1ZTZjNGQ5NTkzZGM3Yjk1NmFkZjBmOTY4NmNmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0TGVnYWN5L21hYy9XZWJWaWV3L1dlYlZpZXdEYXRhLmgKKysrIGIvU291cmNlL1dlYktpdExl
Z2FjeS9tYWMvV2ViVmlldy9XZWJWaWV3RGF0YS5oCkBAIC0yMTYsNyArMjE2LDcgQEAgcHJpdmF0
ZToKICAgICBCT09MIHNob3VsZE1haW50YWluSW5hY3RpdmVTZWxlY3Rpb247CiAKICAgICBCT09M
IGFsbG93c1VuZG87Ci0gICAgICAgIAorCiAgICAgZmxvYXQgem9vbU11bHRpcGxpZXI7CiAgICAg
Qk9PTCB6b29tc1RleHRPbmx5OwogCkBAIC0yOTMsNyArMjkzLDYgQEAgcHJpdmF0ZToKICAgICBS
ZXRhaW5QdHI8TlNTdHJpbmc+IGRyYWdnZWRMaW5rVGl0bGU7CiAjZW5kaWYKIAotCiAjaWYgIVBM
QVRGT1JNKElPU19GQU1JTFkpCiAgICAgLy8gV2ViS2l0IGhhcyBib3RoIGEgZ2xvYmFsIHBsdWct
aW4gZGF0YWJhc2UgYW5kIGEgc2VwYXJhdGUsIHBlciBXZWJWaWV3IHBsdWctaW4gZGF0YWJhc2Uu
IERhc2hib2FyZCB1c2VzIHRoZSBwZXIgV2ViVmlldyBkYXRhYmFzZS4KICAgICBXZWJQbHVnaW5E
YXRhYmFzZSAqcGx1Z2luRGF0YWJhc2U7CkBAIC0zMjQsNiArMzIzLDEwIEBAIHByaXZhdGU6CiAg
ICAgVmVjdG9yPFJldGFpblB0cjxXZWJWaWRlb0Z1bGxzY3JlZW5Db250cm9sbGVyPj4gZnVsbHNj
cmVlbkNvbnRyb2xsZXJzRXhpdGluZzsKICNlbmRpZgogCisjaWYgRU5BQkxFKFZJREVPX1BSRVNF
TlRBVElPTl9NT0RFKQorICAgIEJPT0wgbW9ja1ZpZGVvUHJlc2VudGF0aW9uTW9kZUVuYWJsZWQ7
CisjZW5kaWYKKwogI2lmIFBMQVRGT1JNKE1BQykgJiYgRU5BQkxFKFZJREVPX1BSRVNFTlRBVElP
Tl9NT0RFKQogICAgIFJlZlB0cjxXZWJDb3JlOjpQbGF5YmFja1Nlc3Npb25Nb2RlbE1lZGlhRWxl
bWVudD4gcGxheWJhY2tTZXNzaW9uTW9kZWw7CiAgICAgUmVmUHRyPFdlYkNvcmU6OlBsYXliYWNr
U2Vzc2lvbkludGVyZmFjZU1hYz4gcGxheWJhY2tTZXNzaW9uSW50ZXJmYWNlOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViVmlldy9XZWJWaWV3SW50ZXJuYWwuaCBiL1Nv
dXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcvV2ViVmlld0ludGVybmFsLmgKaW5kZXggNTZj
OGQ1NjI5MGRkY2VhNGE4YzljMGRjMDJmMDhmZTlhNGI4ODg4YS4uNTI3NWYzMjg3ZTViMGExYjFm
MzZmMmI1ZTNhZTk0ZTM1N2Q2YjFmMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS9t
YWMvV2ViVmlldy9XZWJWaWV3SW50ZXJuYWwuaAorKysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21h
Yy9XZWJWaWV3L1dlYlZpZXdJbnRlcm5hbC5oCkBAIC0yNzMsMTQgKzI3MywxNyBAQCBPQkpDX0NM
QVNTIE5TVGV4dEFsdGVybmF0aXZlczsKIC0gKHZvaWQpX2ludmFsaWRhdGVVc2VyQWdlbnRDYWNo
ZTsKIAogI2lmIEVOQUJMRShWSURFTykgJiYgZGVmaW5lZChfX2NwbHVzcGx1cykKKyNpZiBFTkFC
TEUoVklERU9fUFJFU0VOVEFUSU9OX01PREUpCistICh2b2lkKV9zZXRNb2NrVmlkZW9QcmVzZW50
YXRpb25Nb2RlRW5hYmxlZDooQk9PTCllbmFibGVkOwogLSAodm9pZClfZW50ZXJWaWRlb0Z1bGxz
Y3JlZW5Gb3JWaWRlb0VsZW1lbnQ6KE5ha2VkUHRyPFdlYkNvcmU6OkhUTUxWaWRlb0VsZW1lbnQ+
KXZpZGVvRWxlbWVudCBtb2RlOihXZWJDb3JlOjpIVE1MTWVkaWFFbGVtZW50RW51bXM6OlZpZGVv
RnVsbHNjcmVlbk1vZGUpbW9kZTsKIC0gKHZvaWQpX2V4aXRWaWRlb0Z1bGxzY3JlZW47Ci0jaWYg
UExBVEZPUk0oTUFDKSAmJiBFTkFCTEUoVklERU9fUFJFU0VOVEFUSU9OX01PREUpCisjaWYgUExB
VEZPUk0oTUFDKQogLSAoQk9PTClfaGFzQWN0aXZlVmlkZW9Gb3JDb250cm9sc0ludGVyZmFjZTsK
IC0gKHZvaWQpX3NldFVwUGxheWJhY2tDb250cm9sc01hbmFnZXJGb3JNZWRpYUVsZW1lbnQ6KE5h
a2VkUmVmPFdlYkNvcmU6OkhUTUxNZWRpYUVsZW1lbnQ+KW1lZGlhRWxlbWVudDsKIC0gKHZvaWQp
X2NsZWFyUGxheWJhY2tDb250cm9sc01hbmFnZXI7CiAjZW5kaWYKICNlbmRpZgorI2VuZGlmCiAK
ICNpZiBFTkFCTEUoRlVMTFNDUkVFTl9BUEkpICYmICFQTEFURk9STShJT1NfRkFNSUxZKSAmJiBk
ZWZpbmVkKF9fY3BsdXNwbHVzKQogLSAoQk9PTClfc3VwcG9ydHNGdWxsU2NyZWVuRm9yRWxlbWVu
dDooTmFrZWRQdHI8V2ViQ29yZTo6RWxlbWVudD4pZWxlbWVudCB3aXRoS2V5Ym9hcmQ6KEJPT0wp
d2l0aEtleWJvYXJkOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0
VGVzdHMvQ2hhbmdlTG9nCmluZGV4IDI4NGU1NDhhODJkZjM4ZmMyMzkyYWNiMTU2ZmJlZTk5OTFi
NDNlZmQuLmViNjcwMWI3ODRkYWM5YjNhMDE1ZTFhMDIwMTI0ZmFlZmU1MDE5MGYgMTAwNjQ0Ci0t
LSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAg
LTEsMyArMSwxMyBAQAorMjAyMC0wNS0wMSAgUGVuZyBMaXUgIDxwZW5nLmxpdTZAYXBwbGUuY29t
PgorCisgICAgICAgIFVwZGF0ZSBXZWJLaXRUZXN0UnVubmVyIHRvIHN1cHBvcnQgcnVubmluZyBt
dWx0aXBsZSB2aWRlbyBmdWxsc2NyZWVuIGFuZCBQaWN0dXJlLWluLVBpY3R1cmUgdGVzdHMgc2lt
dWx0YW5lb3VzbHkKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTIwMzcyMworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAg
ICAgICogbWVkaWEvdmlkZW8tcHJlc2VudGF0aW9uLW1vZGUtZXhwZWN0ZWQudHh0OiBBZGRlZC4K
KyAgICAgICAgKiBtZWRpYS92aWRlby1wcmVzZW50YXRpb24tbW9kZS5odG1sOiBBZGRlZC4KKwog
MjAyMC0wNS0wMSAgRXJpYyBDYXJsc29uICA8ZXJpYy5jYXJsc29uQGFwcGxlLmNvbT4KIAogICAg
ICAgICBbTVNFXSBBdWRpbyBzZXNzaW9uIGNhdGVnb3J5IGlzIHNvbWV0aW1lcyBub3Qgc2V0IGNv
cnJlY3RseSBhZnRlciBjaGFuZ2luZyB2aWRlbyBzb3VyY2UKZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL21lZGlhL3ZpZGVvLXByZXNlbnRhdGlvbi1tb2RlLWV4cGVjdGVkLnR4dCBiL0xheW91dFRl
c3RzL21lZGlhL3ZpZGVvLXByZXNlbnRhdGlvbi1tb2RlLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li41NTBlODUzZDdlNzNlZDgzMTM1ZmViOTJjNzA5OTU5Mzc5NmJkZmIwCi0tLSAvZGV2L251bGwK
KysrIGIvTGF5b3V0VGVzdHMvbWVkaWEvdmlkZW8tcHJlc2VudGF0aW9uLW1vZGUtZXhwZWN0ZWQu
dHh0CkBAIC0wLDAgKzEsMzIgQEAKKworVGVzdCB0aGUgdmlkZW8gcHJlc2VudGF0aW9uIG1vZGUg
KHZpZGVvIGZ1bGxzY3JlZW4gYW5kIHBpY3R1cmUtaW4tcGljdHVyZSkgQVBJLgorCisKK0VWRU5U
KGNhbnBsYXl0aHJvdWdoKQorRVhQRUNURUQgKHZpZGVvLndlYmtpdFN1cHBvcnRzRnVsbHNjcmVl
biA9PSAndHJ1ZScpIE9LCitFWFBFQ1RFRCAodmlkZW8ud2Via2l0RGlzcGxheWluZ0Z1bGxzY3Jl
ZW4gPT0gJ2ZhbHNlJykgT0sKKworKiogVHJ5IHRvIGVudGVyIGZ1bGxzY3JlZW4KK1JVTih2aWRl
by53ZWJraXRTZXRQcmVzZW50YXRpb25Nb2RlKCdmdWxsc2NyZWVuJykpCitFVkVOVCh3ZWJraXRw
cmVzZW50YXRpb25tb2RlY2hhbmdlZCkKKworKiogRW50ZXJlZCBmdWxsc2NyZWVuCitFWFBFQ1RF
RCAodmlkZW8ud2Via2l0UHJlc2VudGF0aW9uTW9kZSA9PSAnZnVsbHNjcmVlbicpIE9LCisKKyoq
IFRyeSB0byBlbnRlciBwaWN0dXJlLWluLXBpY3R1cmUKK1JVTih2aWRlby53ZWJraXRTZXRQcmVz
ZW50YXRpb25Nb2RlKCdwaWN0dXJlLWluLXBpY3R1cmUnKSkKK0VWRU5UKHdlYmtpdHByZXNlbnRh
dGlvbm1vZGVjaGFuZ2VkKQorCisqKiBFbnRlcmVkIHBpY3R1cmUtaW4tcGljdHVyCitFWFBFQ1RF
RCAodmlkZW8ud2Via2l0UHJlc2VudGF0aW9uTW9kZSA9PSAncGljdHVyZS1pbi1waWN0dXJlJykg
T0sKKworKiogVHJ5IHRvIHJldHVybiB0byBpbmxpbmUKK1JVTih2aWRlby53ZWJraXRTZXRQcmVz
ZW50YXRpb25Nb2RlKCdpbmxpbmUnKSkKK0VWRU5UKHdlYmtpdHByZXNlbnRhdGlvbm1vZGVjaGFu
Z2VkKQorCisqKiBSZXR1cm5lZCB0byBpbmxpbmUKK0VYUEVDVEVEICh2aWRlby53ZWJraXRQcmVz
ZW50YXRpb25Nb2RlID09ICdpbmxpbmUnKSBPSworCisqKiBUZXN0IENvbXBsZXRlZAorRU5EIE9G
IFRFU1QKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvbWVkaWEvdmlkZW8tcHJlc2VudGF0aW9u
LW1vZGUuaHRtbCBiL0xheW91dFRlc3RzL21lZGlhL3ZpZGVvLXByZXNlbnRhdGlvbi1tb2RlLmh0
bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uODkyZDg5MzI3MDdhNDk5MDAwZjk5ZWMwYmQwMjkzYjE1NGIwZGU2NAot
LS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL21lZGlhL3ZpZGVvLXByZXNlbnRhdGlvbi1t
b2RlLmh0bWwKQEAgLTAsMCArMSw2MyBAQAorPCFkb2N0eXBlIGh0bWw+Cis8aHRtbD4KKyAgICA8
aGVhZD4KKwkgICAgPHNjcmlwdCBzcmM9bWVkaWEtZmlsZS5qcz48L3NjcmlwdD4KKwkgICAgPHNj
cmlwdCBzcmM9dmlkZW8tdGVzdC5qcz48L3NjcmlwdD4KKwkgICAgPHNjcmlwdD4KKyAgICAgICAg
ICAgIGZ1bmN0aW9uIHN0YXJ0KCkKKyAgICAgICAgICAgIHsKKwkgICAgICAgICAgICBpZiAod2lu
ZG93LmludGVybmFscykgeworICAgICAgICAgICAgICAgICAgICB3aW5kb3cuaW50ZXJuYWxzLnNl
dHRpbmdzLnNldEFsbG93c1BpY3R1cmVJblBpY3R1cmVNZWRpYVBsYXliYWNrKHRydWUpOworICAg
ICAgICAgICAgICAgICAgICB3aW5kb3cuaW50ZXJuYWxzLnNldE1vY2tWaWRlb1ByZXNlbnRhdGlv
bk1vZGVFbmFibGVkKHRydWUpOworICAgICAgICAgICAgICAgIH0KKwkKKwkgICAgICAgICAgICB2
aWRlbyA9IGRvY3VtZW50LmdldEVsZW1lbnRzQnlUYWdOYW1lKCd2aWRlbycpWzBdOworCSAgICAg
ICAgICAgIHdhaXRGb3JFdmVudE9uY2UoImNhbnBsYXl0aHJvdWdoIiwgY2FucGxheXRocm91Z2gp
OworCSAgICAgICAgICAgIHZpZGVvLnNyYyA9IGZpbmRNZWRpYUZpbGUoInZpZGVvIiwgImNvbnRl
bnQvdGVzdCIpOworCisJICAgICAgICAgICAgY29uc29sZVdyaXRlKCIiKTsKKyAgICAgICAgICAg
IH0KKwkKKwkgICAgICAgIGZ1bmN0aW9uIGNhbnBsYXl0aHJvdWdoKCkKKwkgICAgICAgIHsKKwkg
ICAgICAgICAgICB0ZXN0RXhwZWN0ZWQoInZpZGVvLndlYmtpdFN1cHBvcnRzRnVsbHNjcmVlbiIs
IHRydWUpOworCSAgICAgICAgICAgIHRlc3RFeHBlY3RlZCgidmlkZW8ud2Via2l0RGlzcGxheWlu
Z0Z1bGxzY3JlZW4iLCBmYWxzZSk7CisJCisJICAgICAgICAgICAgY29uc29sZVdyaXRlKCI8YnI+
KiogVHJ5IHRvIGVudGVyIGZ1bGxzY3JlZW4iKTsKKwkgICAgICAgICAgICBydW5XaXRoS2V5RG93
bigidmlkZW8ud2Via2l0U2V0UHJlc2VudGF0aW9uTW9kZSgnZnVsbHNjcmVlbicpIik7CisJICAg
ICAgICAgICAgd2FpdEZvckV2ZW50T25jZSgnd2Via2l0cHJlc2VudGF0aW9ubW9kZWNoYW5nZWQn
LCBwcmVzZW50YXRpb25Nb2RlQ2hhbmdlZDEpOworCSAgICAgICAgfQorCQorCSAgICAgICAgZnVu
Y3Rpb24gcHJlc2VudGF0aW9uTW9kZUNoYW5nZWQxKCkKKwkgICAgICAgIHsKKwkgICAgICAgICAg
ICBjb25zb2xlV3JpdGUoIjxicj4qKiBFbnRlcmVkIGZ1bGxzY3JlZW4iKTsKKwkgICAgICAgICAg
ICB0ZXN0RXhwZWN0ZWQoInZpZGVvLndlYmtpdFByZXNlbnRhdGlvbk1vZGUiLCAiZnVsbHNjcmVl
biIpOworCSAgICAgICAgICAgIGNvbnNvbGVXcml0ZSgiPGJyPioqIFRyeSB0byBlbnRlciBwaWN0
dXJlLWluLXBpY3R1cmUiKTsKKwkgICAgICAgICAgICB3YWl0Rm9yRXZlbnRPbmNlKCd3ZWJraXRw
cmVzZW50YXRpb25tb2RlY2hhbmdlZCcsIHByZXNlbnRhdGlvbk1vZGVDaGFuZ2VkMik7CisJICAg
ICAgICAgICAgcnVuV2l0aEtleURvd24oInZpZGVvLndlYmtpdFNldFByZXNlbnRhdGlvbk1vZGUo
J3BpY3R1cmUtaW4tcGljdHVyZScpIik7CisJICAgICAgICB9CisJCisJICAgICAgICBmdW5jdGlv
biBwcmVzZW50YXRpb25Nb2RlQ2hhbmdlZDIoKQorCSAgICAgICAgeworCSAgICAgICAgICAgIGNv
bnNvbGVXcml0ZSgiPGJyPioqIEVudGVyZWQgcGljdHVyZS1pbi1waWN0dXIiKTsKKwkgICAgICAg
ICAgICB0ZXN0RXhwZWN0ZWQoInZpZGVvLndlYmtpdFByZXNlbnRhdGlvbk1vZGUiLCAicGljdHVy
ZS1pbi1waWN0dXJlIik7CisJICAgICAgICAgICAgY29uc29sZVdyaXRlKCI8YnI+KiogVHJ5IHRv
IHJldHVybiB0byBpbmxpbmUiKTsKKwkgICAgICAgICAgICB3YWl0Rm9yRXZlbnRPbmNlKCd3ZWJr
aXRwcmVzZW50YXRpb25tb2RlY2hhbmdlZCcsIHRlc3RDb21wbGV0ZWQpOworCSAgICAgICAgICAg
IHJ1bldpdGhLZXlEb3duKCJ2aWRlby53ZWJraXRTZXRQcmVzZW50YXRpb25Nb2RlKCdpbmxpbmUn
KSIpOworCSAgICAgICAgfQorCQorCSAgICAgICAgZnVuY3Rpb24gdGVzdENvbXBsZXRlZCgpCisJ
ICAgICAgICB7CisJICAgICAgICAgICAgY29uc29sZVdyaXRlKCI8YnI+KiogUmV0dXJuZWQgdG8g
aW5saW5lIik7CisJICAgICAgICAgICAgdGVzdEV4cGVjdGVkKCJ2aWRlby53ZWJraXRQcmVzZW50
YXRpb25Nb2RlIiwgImlubGluZSIpOworCSAgICAgICAgICAgIGNvbnNvbGVXcml0ZSgiPGJyPioq
IFRlc3QgQ29tcGxldGVkIik7CisJICAgICAgICAgICAgZW5kVGVzdCgpOworCSAgICAgICAgfQor
CSAgICA8L3NjcmlwdD4KKwk8L2hlYWQ+CisJCisJPGJvZHkgb25sb2FkPSJzdGFydCgpIj4KKwkg
ICAgPHZpZGVvIGNvbnRyb2xzIHBsYXlzaW5saW5lPjwvdmlkZW8+CisJICAgIDxwPlRlc3QgdGhl
IHZpZGVvIHByZXNlbnRhdGlvbiBtb2RlICh2aWRlbyBmdWxsc2NyZWVuIGFuZCBwaWN0dXJlLWlu
LXBpY3R1cmUpIEFQSS48L3A+CisJPC9ib2R5PgorPC9odG1sPgpcIE5vIG5ld2xpbmUgYXQgZW5k
IG9mIGZpbGUK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>398273</attachid>
            <date>2020-05-01 19:49:01 -0700</date>
            <delta_ts>2020-05-04 14:04:10 -0700</delta_ts>
            <desc>Fix iOS build failures</desc>
            <filename>bug-203723-20200501194900.patch</filename>
            <type>text/plain</type>
            <size>36864</size>
            <attacher name="Peng Liu">peng.liu6</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjYxMDA2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZWUwZTdlNDEwM2JlZGM0
MDU4MjhkYTA2YTg1ODQ3MzA4OTMyYmVhMi4uZWIyYmRmYjA0ZDUwMTUyZGVlMTVlMmQwNTllMGYz
MzI4NjA2OTUzMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIyIEBACisyMDIwLTA1LTAxICBQZW5n
IExpdSAgPHBlbmcubGl1NkBhcHBsZS5jb20+CisKKyAgICAgICAgVXBkYXRlIFdlYktpdFRlc3RS
dW5uZXIgdG8gc3VwcG9ydCBydW5uaW5nIG11bHRpcGxlIHZpZGVvIGZ1bGxzY3JlZW4gYW5kIFBp
Y3R1cmUtaW4tUGljdHVyZSB0ZXN0cyBzaW11bHRhbmVvdXNseQorICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjAzNzIzCisKKyAgICAgICAgUmV2aWV3ZWQg
YnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVGVzdDogbWVkaWEvdmlkZW8tcHJlc2VudGF0
aW9uLW1vZGUuaHRtbAorCisgICAgICAgIEFkZCBhIGZsYWcgTW9ja1ZpZGVvUHJlc2VudGF0aW9u
TW9kZUVuYWJsZWQgdG8gImludGVybmFscyIgZm9yIHZpZGVvIGZ1bGxzY3JlZW4KKyAgICAgICAg
YW5kIHBpY3R1cmUtaW4tcGljdHVyZSB0ZXN0cy4KKworICAgICAgICAqIHBhZ2UvQ2hyb21lQ2xp
ZW50Lmg6CisgICAgICAgIChXZWJDb3JlOjpDaHJvbWVDbGllbnQ6OnNldE1vY2tWaWRlb1ByZXNl
bnRhdGlvbk1vZGVFbmFibGVkKToKKyAgICAgICAgKiB0ZXN0aW5nL0ludGVybmFscy5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpJbnRlcm5hbHM6OnNldE1vY2tWaWRlb1ByZXNlbnRhdGlvbk1vZGVF
bmFibGVkKToKKyAgICAgICAgKiB0ZXN0aW5nL0ludGVybmFscy5oOgorICAgICAgICAqIHRlc3Rp
bmcvSW50ZXJuYWxzLmlkbDoKKwogMjAyMC0wNS0wMSAgRXJpYyBDYXJsc29uICA8ZXJpYy5jYXJs
c29uQGFwcGxlLmNvbT4KIAogICAgICAgICBbTVNFXSBBdWRpbyBzZXNzaW9uIGNhdGVnb3J5IGlz
IHNvbWV0aW1lcyBub3Qgc2V0IGNvcnJlY3RseSBhZnRlciBjaGFuZ2luZyB2aWRlbyBzb3VyY2UK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9DaGFu
Z2VMb2cKaW5kZXggYzAwNzc3ZTg5ZDk2MjIxMjAyMThkYTQ4MmMzMDQ4ZDliMGUyNTljNS4uMDA1
MzVhN2MwYTMyYjQzNzdiMThiNTcxNGMzMzFmZjc3ZjA0YmJlYyAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKQEAgLTEsMyAr
MSw0MSBAQAorMjAyMC0wNS0wMSAgUGVuZyBMaXUgIDxwZW5nLmxpdTZAYXBwbGUuY29tPgorCisg
ICAgICAgIFVwZGF0ZSBXZWJLaXRUZXN0UnVubmVyIHRvIHN1cHBvcnQgcnVubmluZyBtdWx0aXBs
ZSB2aWRlbyBmdWxsc2NyZWVuIGFuZCBQaWN0dXJlLWluLVBpY3R1cmUgdGVzdHMgc2ltdWx0YW5l
b3VzbHkKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIw
MzcyMworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFdo
ZW4gdGhlIGZsYWcgTW9ja1ZpZGVvUHJlc2VudGF0aW9uTW9kZUVuYWJsZWQgaXMgdHJ1ZSwgdGhl
IFZpZGVvRnVsbHNjcmVlbk1hbmFnZXIgaW4gdGhlIFdlYiBwcm9jZXNzCisgICAgICAgIHdpbGwg
bW9jayB0aGUgYmVoYXZpb3Igb2YgdGhlIFZpZGVvRnVsbHNjcmVlbk1hbmFnZXJQcm94eSBpbiB0
aGUgVUkgcHJvY2VzcyB3aXRob3V0IHNlbmRpbmcgSVBDCisgICAgICAgIG1lc3NhZ2VzIHRvIHRo
ZSBVSSBwcm9jZXNzLgorCisgICAgICAgICogVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oOgorICAg
ICAgICAqIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmNwcDoKKyAg
ICAgICAgKFdlYktpdDo6V2ViQ2hyb21lQ2xpZW50OjpzZXRNb2NrVmlkZW9QcmVzZW50YXRpb25N
b2RlRW5hYmxlZCk6CisgICAgICAgIChXZWJLaXQ6OldlYkNocm9tZUNsaWVudDo6c2V0VXBQbGF5
YmFja0NvbnRyb2xzTWFuYWdlcik6CisgICAgICAgIChXZWJLaXQ6OldlYkNocm9tZUNsaWVudDo6
Y2xlYXJQbGF5YmFja0NvbnRyb2xzTWFuYWdlcik6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJD
b3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuaDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL2NvY29h
L1ZpZGVvRnVsbHNjcmVlbk1hbmFnZXIuaDoKKyAgICAgICAgKFdlYktpdDo6VmlkZW9GdWxsc2Ny
ZWVuTWFuYWdlcjo6c2V0TW9ja1ZpZGVvUHJlc2VudGF0aW9uTW9kZUVuYWJsZWQpOgorICAgICAg
ICAqIFdlYlByb2Nlc3MvY29jb2EvVmlkZW9GdWxsc2NyZWVuTWFuYWdlci5tbToKKyAgICAgICAg
KFdlYktpdDo6VmlkZW9GdWxsc2NyZWVuTWFuYWdlcjo6ZW50ZXJWaWRlb0Z1bGxzY3JlZW5Gb3JW
aWRlb0VsZW1lbnQpOgorICAgICAgICAoV2ViS2l0OjpWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyOjpl
eGl0VmlkZW9GdWxsc2NyZWVuRm9yVmlkZW9FbGVtZW50KToKKyAgICAgICAgKFdlYktpdDo6Vmlk
ZW9GdWxsc2NyZWVuTWFuYWdlcjo6ZXhpdFZpZGVvRnVsbHNjcmVlblRvTW9kZVdpdGhvdXRBbmlt
YXRpb24pOgorICAgICAgICAoV2ViS2l0OjpWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyOjpoYXNWaWRl
b0NoYW5nZWQpOgorICAgICAgICAoV2ViS2l0OjpWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyOjp2aWRl
b0RpbWVuc2lvbnNDaGFuZ2VkKToKKyAgICAgICAgKFdlYktpdDo6VmlkZW9GdWxsc2NyZWVuTWFu
YWdlcjo6cmVxdWVzdFVwZGF0ZUlubGluZVJlY3QpOgorICAgICAgICAoV2ViS2l0OjpWaWRlb0Z1
bGxzY3JlZW5NYW5hZ2VyOjpyZXF1ZXN0VmlkZW9Db250ZW50TGF5ZXIpOgorICAgICAgICAoV2Vi
S2l0OjpWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyOjpyZXR1cm5WaWRlb0NvbnRlbnRMYXllcik6Cisg
ICAgICAgIChXZWJLaXQ6OlZpZGVvRnVsbHNjcmVlbk1hbmFnZXI6OmRpZFNldHVwRnVsbHNjcmVl
bik6CisgICAgICAgIChXZWJLaXQ6OlZpZGVvRnVsbHNjcmVlbk1hbmFnZXI6OndpbGxFeGl0RnVs
bHNjcmVlbik6CisgICAgICAgIChXZWJLaXQ6OlZpZGVvRnVsbHNjcmVlbk1hbmFnZXI6OmRpZEVu
dGVyRnVsbHNjcmVlbik6CisgICAgICAgIChXZWJLaXQ6OlZpZGVvRnVsbHNjcmVlbk1hbmFnZXI6
OmRpZEV4aXRGdWxsc2NyZWVuKToKKyAgICAgICAgKFdlYktpdDo6VmlkZW9GdWxsc2NyZWVuTWFu
YWdlcjo6ZGlkQ2xlYW51cEZ1bGxzY3JlZW4pOgorICAgICAgICAoV2ViS2l0OjpWaWRlb0Z1bGxz
Y3JlZW5NYW5hZ2VyOjpzZXRWaWRlb0xheWVyR3Jhdml0eUVudW0pOgorICAgICAgICAoV2ViS2l0
OjpWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyOjpmdWxsc2NyZWVuTWF5UmV0dXJuVG9JbmxpbmUpOgor
ICAgICAgICAoV2ViS2l0OjpWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyOjpyZXF1ZXN0Um91dGVTaGFy
aW5nUG9saWN5QW5kQ29udGV4dFVJRCk6CisgICAgICAgIChXZWJLaXQ6OlZpZGVvRnVsbHNjcmVl
bk1hbmFnZXI6OnNldFZpZGVvTGF5ZXJGcmFtZUZlbmNlZCk6CisKIDIwMjAtMDUtMDEgIFBlbmcg
TGl1ICA8cGVuZy5saXU2QGFwcGxlLmNvbT4KIAogICAgICAgICBBIFBpUCB3aW5kb3cgZG9lc27i
gJl0IGFjdHVhbGx5IGRpc21pc3MgYWZ0ZXIgdGhlIGJyb3dzZXIgbmF2aWdhdGVzIHRvIGEgZGlm
ZmVyZW50IHBhZ2Ugd2l0aGluIHRoZSBzYW1lIGRvbWFpbgpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdExlZ2FjeS9tYWMvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvQ2hhbmdl
TG9nCmluZGV4IGY2NWMxODE2ODM3ZDM4NWJkYzhkMjY5YTFmODgxMjJiOWZmOWU2ZjQuLmQwNTQ4
NGJiMDYyYzFlY2I1MjMyMGY2ZTVkMTg2NDRlNjBhNjNlYzggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXRMZWdhY3kvbWFjL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9D
aGFuZ2VMb2cKQEAgLTEsMyArMSwyMSBAQAorMjAyMC0wNS0wMSAgUGVuZyBMaXUgIDxwZW5nLmxp
dTZAYXBwbGUuY29tPgorCisgICAgICAgIFVwZGF0ZSBXZWJLaXRUZXN0UnVubmVyIHRvIHN1cHBv
cnQgcnVubmluZyBtdWx0aXBsZSB2aWRlbyBmdWxsc2NyZWVuIGFuZCBQaWN0dXJlLWluLVBpY3R1
cmUgdGVzdHMgc2ltdWx0YW5lb3VzbHkKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTIwMzcyMworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09Q
UyEpLgorCisgICAgICAgIFdoZW4gdGhlIGZsYWcgTW9ja1ZpZGVvUHJlc2VudGF0aW9uTW9kZUVu
YWJsZWQgaXMgdHJ1ZSwgV2ViVmlldyB3aWxsIGlnbm9yZSB0aGUgcmVxdWVzdHMgdG8KKyAgICAg
ICAgV2ViVmlkZW9GdWxsc2NyZWVuQ29udHJvbGxlciwgc28gdGhhdCB0aGUgRHVtcFJlbmRlclRy
ZWUgY2FuIHJ1biBtdWx0aXBsZSB2aWRlbyBmdWxsc2NyZWVuCisgICAgICAgIGFuZCBwaWN0dXJl
LWluLXBpY3R1cmUgdGVzdHMgaW4gcGFyYWxsZWwuCisKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9y
dC9XZWJDaHJvbWVDbGllbnQuaDoKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVD
bGllbnQubW06CisgICAgICAgIChXZWJDaHJvbWVDbGllbnQ6OnNldE1vY2tWaWRlb1ByZXNlbnRh
dGlvbk1vZGVFbmFibGVkKToKKyAgICAgICAgKiBXZWJWaWV3L1dlYlZpZXcubW06CisgICAgICAg
ICogV2ViVmlldy9XZWJWaWV3RGF0YS5oOgorICAgICAgICAqIFdlYlZpZXcvV2ViVmlld0ludGVy
bmFsLmg6CisKIDIwMjAtMDQtMzAgIFJvc3MgS2lyc2xpbmcgIDxyb3NzLmtpcnNsaW5nQHNvbnku
Y29tPgogCiAgICAgICAgIFRyaVN0YXRlIHNob3VsZCBiZSBhbiBlbnVtIGNsYXNzIGFuZCB1c2Ug
IkluZGV0ZXJtaW5hdGUiIGluc3RlYWQgb2YgIk1peGVkIgpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcGFnZS9DaHJvbWVDbGllbnQuaCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvQ2hyb21lQ2xp
ZW50LmgKaW5kZXggNzU4ZDNjNjZjMzQwMzMyMzE0NTk0NTViYjRlZTgxN2ExMjM0ZTNiNC4uMzQz
ZGEyYzEyMzg1MjFhODY5YzJhOGE3N2E3M2FiZDI5NWQ0YjY1MSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcGFnZS9DaHJvbWVDbGllbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0No
cm9tZUNsaWVudC5oCkBAIC0zNzgsNiArMzc4LDEwIEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIHZv
aWQgc2V0Um9vdEZ1bGxTY3JlZW5MYXllcihHcmFwaGljc0xheWVyKikgeyB9CiAjZW5kaWYKIAor
I2lmIEVOQUJMRShWSURFT19QUkVTRU5UQVRJT05fTU9ERSkKKyAgICB2aXJ0dWFsIHZvaWQgc2V0
TW9ja1ZpZGVvUHJlc2VudGF0aW9uTW9kZUVuYWJsZWQoYm9vbCkgeyB9CisjZW5kaWYKKwogI2lm
IFVTRShDT09SRElOQVRFRF9HUkFQSElDUykKICAgICB2aXJ0dWFsIEludFJlY3QgdmlzaWJsZVJl
Y3RGb3JUaWxlZEJhY2tpbmdTdG9yZSgpIGNvbnN0IHsgcmV0dXJuIEludFJlY3QoKTsgfQogI2Vu
ZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5jcHAgYi9T
b3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5jcHAKaW5kZXggZjExNjRhZTljMWFjM2Jm
MDE2ODk2YjlmNGRkZWExZmMzNGY2NzkwYS4uZjUyNmU2Nzc0ZTk3ZDY1YTRjM2UxOTBjZGI4OGRl
MDNjY2MxMTBiMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmNwcApAQCAtMzI2Niw2
ICszMjY2LDE3IEBAIHZvaWQgSW50ZXJuYWxzOjpzZXRGdWxsc2NyZWVuQ29udHJvbHNIaWRkZW4o
Ym9vbCBoaWRkZW4pCiAgICAgcGFnZS0+c2V0RnVsbHNjcmVlbkNvbnRyb2xzSGlkZGVuKGhpZGRl
bik7CiB9CiAKKyNpZiBFTkFCTEUoVklERU9fUFJFU0VOVEFUSU9OX01PREUpCit2b2lkIEludGVy
bmFsczo6c2V0TW9ja1ZpZGVvUHJlc2VudGF0aW9uTW9kZUVuYWJsZWQoYm9vbCBlbmFibGVkKQor
eworICAgIERvY3VtZW50KiBkb2N1bWVudCA9IGNvbnRleHREb2N1bWVudCgpOworICAgIGlmICgh
ZG9jdW1lbnQgfHwgIWRvY3VtZW50LT5wYWdlKCkpCisgICAgICAgIHJldHVybjsKKworICAgIGRv
Y3VtZW50LT5wYWdlKCktPmNocm9tZSgpLmNsaWVudCgpLnNldE1vY2tWaWRlb1ByZXNlbnRhdGlv
bk1vZGVFbmFibGVkKGVuYWJsZWQpOworfQorI2VuZGlmCisKIHZvaWQgSW50ZXJuYWxzOjpzZXRB
cHBsaWNhdGlvbkNhY2hlT3JpZ2luUXVvdGEodW5zaWduZWQgbG9uZyBsb25nIHF1b3RhKQogewog
ICAgIERvY3VtZW50KiBkb2N1bWVudCA9IGNvbnRleHREb2N1bWVudCgpOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuaCBiL1NvdXJjZS9XZWJDb3JlL3Rlc3Rp
bmcvSW50ZXJuYWxzLmgKaW5kZXggMjNjNGZjMGQ4NmNkOGY1YTlkNGE3MzU5ZmEyYzIzZDA5ZDlj
YjE2Zi4uMjVjZGQxYWE0NDBjNWE1MTcyYjBhMTk1ZWIwMWJiMTJjYWRkOGJmNCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS90ZXN0aW5nL0ludGVybmFscy5oCkBAIC00OTMsNiArNDkzLDEwIEBAIHB1YmxpYzoKICAgICB2
b2lkIHNldEZ1bGxzY3JlZW5BdXRvSGlkZUR1cmF0aW9uKGRvdWJsZSk7CiAgICAgdm9pZCBzZXRG
dWxsc2NyZWVuQ29udHJvbHNIaWRkZW4oYm9vbCk7CiAKKyNpZiBFTkFCTEUoVklERU9fUFJFU0VO
VEFUSU9OX01PREUpCisgICAgdm9pZCBzZXRNb2NrVmlkZW9QcmVzZW50YXRpb25Nb2RlRW5hYmxl
ZChib29sKTsKKyNlbmRpZgorCiAgICAgV0VCQ09SRV9URVNUU1VQUE9SVF9FWFBPUlQgdm9pZCBz
ZXRBcHBsaWNhdGlvbkNhY2hlT3JpZ2luUXVvdGEodW5zaWduZWQgbG9uZyBsb25nKTsKIAogICAg
IHZvaWQgcmVnaXN0ZXJVUkxTY2hlbWVBc0J5cGFzc2luZ0NvbnRlbnRTZWN1cml0eVBvbGljeShj
b25zdCBTdHJpbmcmIHNjaGVtZSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5n
L0ludGVybmFscy5pZGwgYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5pZGwKaW5k
ZXggYzE1MGVjYmJkYzAzMGFlYzk3MDkxOTA3MDlmYzRkYWJiYzBmOWYxMi4uOTI5Mzk2NDFhYmFm
MDVmZjE3NGY2NDg5YTNkM2VjNjUyODIwMjE1NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
dGVzdGluZy9JbnRlcm5hbHMuaWRsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJu
YWxzLmlkbApAQCAtNTMxLDYgKzUzMSw4IEBAIGVudW0gQ29tcG9zaXRpbmdQb2xpY3kgewogICAg
IHZvaWQgc2V0RnVsbHNjcmVlbkF1dG9IaWRlRHVyYXRpb24oZG91YmxlIGR1cmF0aW9uKTsKICAg
ICB2b2lkIHNldEZ1bGxzY3JlZW5Db250cm9sc0hpZGRlbihib29sZWFuIGhpZGRlbik7CiAKKyAg
ICBbQ29uZGl0aW9uYWw9VklERU9fUFJFU0VOVEFUSU9OX01PREVdIHZvaWQgc2V0TW9ja1ZpZGVv
UHJlc2VudGF0aW9uTW9kZUVuYWJsZWQoYm9vbGVhbiBlbmFibGVkKTsKKwogICAgIHZvaWQgc2V0
QXBwbGljYXRpb25DYWNoZU9yaWdpblF1b3RhKHVuc2lnbmVkIGxvbmcgbG9uZyBxdW90YSk7CiAK
ICAgICB2b2lkIHJlZ2lzdGVyVVJMU2NoZW1lQXNCeXBhc3NpbmdDb250ZW50U2VjdXJpdHlQb2xp
Y3koRE9NU3RyaW5nIHNjaGVtZSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9XZWJQYWdlUHJveHkuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5o
CmluZGV4IGI1Y2JjZTU3OWY0Njg5YzgwZTQyNDA0MjhkNjYwOWRhMTgwNDQ0MDcuLmM3ZjRmNzk4
ZTQ0MzZkNDFjMjkzODk0MjJkZDlkNmE0ZjdhMDUyYWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L1dlYlBhZ2VQcm94eS5oCkBAIC0yODAwLDcgKzI4MDAsNyBAQCBwcml2YXRlOgogICAgICAgICBS
ZWZQdHI8QVBJOjpPYmplY3Q+IG1lc3NhZ2VCb2R5OwogICAgIH07CiAgICAgVmVjdG9yPEluamVj
dGVkQnVuZGxlTWVzc2FnZT4gbV9wZW5kaW5nSW5qZWN0ZWRCdW5kbGVNZXNzYWdlczsKLSAgICAg
ICAgCisKICNpZiBQTEFURk9STShJT1NfRkFNSUxZKSAmJiBFTkFCTEUoREVWSUNFX09SSUVOVEFU
SU9OKQogICAgIHN0ZDo6dW5pcXVlX3B0cjxXZWJEZXZpY2VPcmllbnRhdGlvblVwZGF0ZVByb3Zp
ZGVyUHJveHk+IG1fd2ViRGV2aWNlT3JpZW50YXRpb25VcGRhdGVQcm92aWRlclByb3h5OwogI2Vu
ZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQv
V2ViQ2hyb21lQ2xpZW50LmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3Vw
cG9ydC9XZWJDaHJvbWVDbGllbnQuY3BwCmluZGV4IGE2ODM2Yzk4NDc2ODNjNzU3YjM4NmQ5NmNm
OTc3ZDZjYzUyMjYzMDkuLjFkM2VhOTZmYjIyNTlkNzNhM2I4OGM0ZDVhYmMxZDcxOWE3MmVhNzEg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJD
aHJvbWVDbGllbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3Vw
cG9ydC9XZWJDaHJvbWVDbGllbnQuY3BwCkBAIC05ODcsMTQgKzk4Nyw5IEBAIGJvb2wgV2ViQ2hy
b21lQ2xpZW50OjpzdXBwb3J0c1ZpZGVvRnVsbHNjcmVlblN0YW5kYnkoKQogICAgIHJldHVybiBt
X3BhZ2UudmlkZW9GdWxsc2NyZWVuTWFuYWdlcigpLnN1cHBvcnRzVmlkZW9GdWxsc2NyZWVuU3Rh
bmRieSgpOwogfQogCi12b2lkIFdlYkNocm9tZUNsaWVudDo6c2V0VXBQbGF5YmFja0NvbnRyb2xz
TWFuYWdlcihIVE1MTWVkaWFFbGVtZW50JiBtZWRpYUVsZW1lbnQpCit2b2lkIFdlYkNocm9tZUNs
aWVudDo6c2V0TW9ja1ZpZGVvUHJlc2VudGF0aW9uTW9kZUVuYWJsZWQoYm9vbCBlbmFibGVkKQog
ewotICAgIG1fcGFnZS5wbGF5YmFja1Nlc3Npb25NYW5hZ2VyKCkuc2V0VXBQbGF5YmFja0NvbnRy
b2xzTWFuYWdlcihtZWRpYUVsZW1lbnQpOwotfQotCi12b2lkIFdlYkNocm9tZUNsaWVudDo6Y2xl
YXJQbGF5YmFja0NvbnRyb2xzTWFuYWdlcigpCi17Ci0gICAgbV9wYWdlLnBsYXliYWNrU2Vzc2lv
bk1hbmFnZXIoKS5jbGVhclBsYXliYWNrQ29udHJvbHNNYW5hZ2VyKCk7CisgICAgbV9wYWdlLnZp
ZGVvRnVsbHNjcmVlbk1hbmFnZXIoKS5zZXRNb2NrVmlkZW9QcmVzZW50YXRpb25Nb2RlRW5hYmxl
ZChlbmFibGVkKTsKIH0KIAogdm9pZCBXZWJDaHJvbWVDbGllbnQ6OmVudGVyVmlkZW9GdWxsc2Ny
ZWVuRm9yVmlkZW9FbGVtZW50KEhUTUxWaWRlb0VsZW1lbnQmIHZpZGVvRWxlbWVudCwgSFRNTE1l
ZGlhRWxlbWVudEVudW1zOjpWaWRlb0Z1bGxzY3JlZW5Nb2RlIG1vZGUsIGJvb2wgc3RhbmRieSkK
QEAgLTEwMTEsNiArMTAwNiwxNyBAQCB2b2lkIFdlYkNocm9tZUNsaWVudDo6ZXhpdFZpZGVvRnVs
bHNjcmVlbkZvclZpZGVvRWxlbWVudChIVE1MVmlkZW9FbGVtZW50JiB2aWRlbwogewogICAgIG1f
cGFnZS52aWRlb0Z1bGxzY3JlZW5NYW5hZ2VyKCkuZXhpdFZpZGVvRnVsbHNjcmVlbkZvclZpZGVv
RWxlbWVudCh2aWRlb0VsZW1lbnQpOwogfQorCit2b2lkIFdlYkNocm9tZUNsaWVudDo6c2V0VXBQ
bGF5YmFja0NvbnRyb2xzTWFuYWdlcihIVE1MTWVkaWFFbGVtZW50JiBtZWRpYUVsZW1lbnQpCit7
CisgICAgbV9wYWdlLnBsYXliYWNrU2Vzc2lvbk1hbmFnZXIoKS5zZXRVcFBsYXliYWNrQ29udHJv
bHNNYW5hZ2VyKG1lZGlhRWxlbWVudCk7Cit9CisKK3ZvaWQgV2ViQ2hyb21lQ2xpZW50OjpjbGVh
clBsYXliYWNrQ29udHJvbHNNYW5hZ2VyKCkKK3sKKyAgICBtX3BhZ2UucGxheWJhY2tTZXNzaW9u
TWFuYWdlcigpLmNsZWFyUGxheWJhY2tDb250cm9sc01hbmFnZXIoKTsKK30KKwogI2VuZGlmCiAK
ICNpZiBFTkFCTEUoTUVESUFfVVNBR0UpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmggYi9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmgKaW5kZXggODZkZjYzZjU2
MTNjMmQyYjJmN2UyYWY1MjM1ZTgyNjE0ZDI1MDI2My4uMmFkZWQxMzMwODg4NTY2MmQxNjgyYjg0
NjUwZThjYTMxNWNlNTJmMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dl
YkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuaApAQCAtMjY0LDEwICsyNjQsMTEg
QEAgcHJpdmF0ZToKICNpZiBFTkFCTEUoVklERU9fUFJFU0VOVEFUSU9OX01PREUpCiAgICAgYm9v
bCBzdXBwb3J0c1ZpZGVvRnVsbHNjcmVlbihXZWJDb3JlOjpIVE1MTWVkaWFFbGVtZW50RW51bXM6
OlZpZGVvRnVsbHNjcmVlbk1vZGUpIGZpbmFsOwogICAgIGJvb2wgc3VwcG9ydHNWaWRlb0Z1bGxz
Y3JlZW5TdGFuZGJ5KCkgZmluYWw7Ci0gICAgdm9pZCBzZXRVcFBsYXliYWNrQ29udHJvbHNNYW5h
Z2VyKFdlYkNvcmU6OkhUTUxNZWRpYUVsZW1lbnQmKSBmaW5hbDsKLSAgICB2b2lkIGNsZWFyUGxh
eWJhY2tDb250cm9sc01hbmFnZXIoKSBmaW5hbDsKKyAgICB2b2lkIHNldE1vY2tWaWRlb1ByZXNl
bnRhdGlvbk1vZGVFbmFibGVkKGJvb2wpIGZpbmFsOwogICAgIHZvaWQgZW50ZXJWaWRlb0Z1bGxz
Y3JlZW5Gb3JWaWRlb0VsZW1lbnQoV2ViQ29yZTo6SFRNTFZpZGVvRWxlbWVudCYsIFdlYkNvcmU6
OkhUTUxNZWRpYUVsZW1lbnRFbnVtczo6VmlkZW9GdWxsc2NyZWVuTW9kZSwgYm9vbCBzdGFuZGJ5
KSBmaW5hbDsKICAgICB2b2lkIGV4aXRWaWRlb0Z1bGxzY3JlZW5Gb3JWaWRlb0VsZW1lbnQoV2Vi
Q29yZTo6SFRNTFZpZGVvRWxlbWVudCYpIGZpbmFsOworICAgIHZvaWQgc2V0VXBQbGF5YmFja0Nv
bnRyb2xzTWFuYWdlcihXZWJDb3JlOjpIVE1MTWVkaWFFbGVtZW50JikgZmluYWw7CisgICAgdm9p
ZCBjbGVhclBsYXliYWNrQ29udHJvbHNNYW5hZ2VyKCkgZmluYWw7CiAjZW5kaWYKIAogI2lmIEVO
QUJMRShNRURJQV9VU0FHRSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9j
b2NvYS9WaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyLmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
Y29jb2EvVmlkZW9GdWxsc2NyZWVuTWFuYWdlci5oCmluZGV4IGYxMzZlY2I5ZGQzZWFjZWZhZGQ5
NzRiZGNkYmQ0MmNhZWZmNjI3Y2YuLjVmM2M4YTVmY2MxYWJkNzZhMWE0YjViNWU4Yzg5Zjk3YTBj
ZGZhZWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9jb2NvYS9WaWRlb0Z1
bGxzY3JlZW5NYW5hZ2VyLmgKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL2NvY29hL1Zp
ZGVvRnVsbHNjcmVlbk1hbmFnZXIuaApAQCAtMTE1LDcgKzExNSw4IEBAIHB1YmxpYzoKICAgICAK
ICAgICB2b2lkIGRpZFJlY2VpdmVNZXNzYWdlKElQQzo6Q29ubmVjdGlvbiYsIElQQzo6RGVjb2Rl
ciYpIG92ZXJyaWRlOwogCi0gICAgLy8gSW50ZXJmYWNlIHRvIENocm9tZUNsaWVudAorICAgIC8v
IEludGVyZmFjZSB0byBXZWJDaHJvbWVDbGllbnQKKyAgICB2b2lkIHNldE1vY2tWaWRlb1ByZXNl
bnRhdGlvbk1vZGVFbmFibGVkKGJvb2wgZW5hYmxlZCkgeyBtX21vY2tWaWRlb1ByZXNlbnRhdGlv
bk1vZGVFbmFibGVkID0gZW5hYmxlZDsgfQogICAgIGJvb2wgc3VwcG9ydHNWaWRlb0Z1bGxzY3Jl
ZW4oV2ViQ29yZTo6SFRNTE1lZGlhRWxlbWVudEVudW1zOjpWaWRlb0Z1bGxzY3JlZW5Nb2RlKSBj
b25zdDsKICAgICBib29sIHN1cHBvcnRzVmlkZW9GdWxsc2NyZWVuU3RhbmRieSgpIGNvbnN0Owog
ICAgIHZvaWQgZW50ZXJWaWRlb0Z1bGxzY3JlZW5Gb3JWaWRlb0VsZW1lbnQoV2ViQ29yZTo6SFRN
TFZpZGVvRWxlbWVudCYsIFdlYkNvcmU6OkhUTUxNZWRpYUVsZW1lbnRFbnVtczo6VmlkZW9GdWxs
c2NyZWVuTW9kZSwgYm9vbCBzdGFuZGJ5KTsKQEAgLTE1Nyw2ICsxNTgsNyBAQCBwcm90ZWN0ZWQ6
CiAgICAgdm9pZCByZXF1ZXN0Um91dGVTaGFyaW5nUG9saWN5QW5kQ29udGV4dFVJRCh1aW50NjRf
dCBjb250ZXh0SWQsIE1lc3NhZ2VzOjpWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyOjpSZXF1ZXN0Um91
dGVTaGFyaW5nUG9saWN5QW5kQ29udGV4dFVJREFzeW5jUmVwbHkmJik7CiAKICAgICBXZWJQYWdl
KiBtX3BhZ2U7CisgICAgYm9vbCBtX21vY2tWaWRlb1ByZXNlbnRhdGlvbk1vZGVFbmFibGVkIHsg
ZmFsc2UgfTsKICAgICBSZWY8UGxheWJhY2tTZXNzaW9uTWFuYWdlcj4gbV9wbGF5YmFja1Nlc3Np
b25NYW5hZ2VyOwogICAgIEhhc2hNYXA8V2ViQ29yZTo6SFRNTFZpZGVvRWxlbWVudCosIHVpbnQ2
NF90PiBtX3ZpZGVvRWxlbWVudHM7CiAgICAgSGFzaE1hcDx1aW50NjRfdCwgTW9kZWxJbnRlcmZh
Y2VUdXBsZT4gbV9jb250ZXh0TWFwOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL2NvY29hL1ZpZGVvRnVsbHNjcmVlbk1hbmFnZXIubW0gYi9Tb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvY29jb2EvVmlkZW9GdWxsc2NyZWVuTWFuYWdlci5tbQppbmRleCBmYmRkNGU5ODExNjA2
MTQ3ODQ4MmE5N2U0MzFhZjFmYjI2MmM4ZmRjLi5iNjkyMWIwODdhMmQwZmJiMmY2YmQ3NzI0N2Y4
ZDBhNGRlMzk5ZmZkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvY29jb2Ev
VmlkZW9GdWxsc2NyZWVuTWFuYWdlci5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
Y29jb2EvVmlkZW9GdWxsc2NyZWVuTWFuYWdlci5tbQpAQCAtMjg1LDcgKzI4NSwxMyBAQCB2b2lk
IFZpZGVvRnVsbHNjcmVlbk1hbmFnZXI6OmVudGVyVmlkZW9GdWxsc2NyZWVuRm9yVmlkZW9FbGVt
ZW50KEhUTUxWaWRlb0VsZW1lbgogICAgICAgICBpbnRlcmZhY2UtPmxheWVySG9zdGluZ0NvbnRl
eHQoKS0+c2V0Um9vdExheWVyKHZpZGVvTGF5ZXIuZ2V0KCkpOwogICAgIH0KIAotICAgIG1fcGFn
ZS0+c2VuZChNZXNzYWdlczo6VmlkZW9GdWxsc2NyZWVuTWFuYWdlclByb3h5OjpTZXR1cEZ1bGxz
Y3JlZW5XaXRoSUQoY29udGV4dElkLCBpbnRlcmZhY2UtPmxheWVySG9zdGluZ0NvbnRleHQoKS0+
Y29udGV4dElEKCksIHZpZGVvUmVjdCwgbV9wYWdlLT5kZXZpY2VTY2FsZUZhY3RvcigpLCBpbnRl
cmZhY2UtPmZ1bGxzY3JlZW5Nb2RlKCksIGFsbG93c1BpY3R1cmVJblBpY3R1cmUsIHN0YW5kYnkp
KTsKKyAgICBpZiAoIW1fbW9ja1ZpZGVvUHJlc2VudGF0aW9uTW9kZUVuYWJsZWQpCisgICAgICAg
IG1fcGFnZS0+c2VuZChNZXNzYWdlczo6VmlkZW9GdWxsc2NyZWVuTWFuYWdlclByb3h5OjpTZXR1
cEZ1bGxzY3JlZW5XaXRoSUQoY29udGV4dElkLCBpbnRlcmZhY2UtPmxheWVySG9zdGluZ0NvbnRl
eHQoKS0+Y29udGV4dElEKCksIHZpZGVvUmVjdCwgbV9wYWdlLT5kZXZpY2VTY2FsZUZhY3Rvcigp
LCBpbnRlcmZhY2UtPmZ1bGxzY3JlZW5Nb2RlKCksIGFsbG93c1BpY3R1cmVJblBpY3R1cmUsIHN0
YW5kYnkpKTsKKyAgICBlbHNlIHsKKyAgICAgICAgZGlzcGF0Y2hfYXN5bmMoZGlzcGF0Y2hfZ2V0
X21haW5fcXVldWUoKSwgW3Byb3RlY3RlZFRoaXMgPSBtYWtlUmVmUHRyKHRoaXMpLCB0aGlzLCBj
b250ZXh0SWRdIHsKKyAgICAgICAgICAgIHJlcXVlc3RWaWRlb0NvbnRlbnRMYXllcihjb250ZXh0
SWQpOworICAgICAgICB9KTsKKyAgICB9CiB9CiAKIHZvaWQgVmlkZW9GdWxsc2NyZWVuTWFuYWdl
cjo6ZXhpdFZpZGVvRnVsbHNjcmVlbkZvclZpZGVvRWxlbWVudChXZWJDb3JlOjpIVE1MVmlkZW9F
bGVtZW50JiB2aWRlb0VsZW1lbnQpCkBAIC0zMDEsNyArMzA3LDE0IEBAIHZvaWQgVmlkZW9GdWxs
c2NyZWVuTWFuYWdlcjo6ZXhpdFZpZGVvRnVsbHNjcmVlbkZvclZpZGVvRWxlbWVudChXZWJDb3Jl
OjpIVE1MVmlkCiAgICAgICAgIHJldHVybjsKIAogICAgIGludGVyZmFjZS5zZXRBbmltYXRpb25T
dGF0ZShWaWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2VDb250ZXh0OjpBbmltYXRpb25UeXBlOjpGcm9t
RnVsbHNjcmVlbik7Ci0gICAgbV9wYWdlLT5zZW5kKE1lc3NhZ2VzOjpWaWRlb0Z1bGxzY3JlZW5N
YW5hZ2VyUHJveHk6OkV4aXRGdWxsc2NyZWVuKGNvbnRleHRJZCwgaW5saW5lVmlkZW9GcmFtZSh2
aWRlb0VsZW1lbnQpKSk7CisKKyAgICBpZiAoIW1fbW9ja1ZpZGVvUHJlc2VudGF0aW9uTW9kZUVu
YWJsZWQpCisgICAgICAgIG1fcGFnZS0+c2VuZChNZXNzYWdlczo6VmlkZW9GdWxsc2NyZWVuTWFu
YWdlclByb3h5OjpFeGl0RnVsbHNjcmVlbihjb250ZXh0SWQsIGlubGluZVZpZGVvRnJhbWUodmlk
ZW9FbGVtZW50KSkpOworICAgIGVsc2UgeworICAgICAgICBkaXNwYXRjaF9hc3luYyhkaXNwYXRj
aF9nZXRfbWFpbl9xdWV1ZSgpLCBbcHJvdGVjdGVkVGhpcyA9IG1ha2VSZWZQdHIodGhpcyksIHRo
aXMsIGNvbnRleHRJZF0geworICAgICAgICAgICAgcmV0dXJuVmlkZW9Db250ZW50TGF5ZXIoY29u
dGV4dElkKTsKKyAgICAgICAgfSk7CisgICAgfQogfQogCiB2b2lkIFZpZGVvRnVsbHNjcmVlbk1h
bmFnZXI6OmV4aXRWaWRlb0Z1bGxzY3JlZW5Ub01vZGVXaXRob3V0QW5pbWF0aW9uKFdlYkNvcmU6
OkhUTUxWaWRlb0VsZW1lbnQmIHZpZGVvRWxlbWVudCwgV2ViQ29yZTo6SFRNTE1lZGlhRWxlbWVu
dEVudW1zOjpWaWRlb0Z1bGxzY3JlZW5Nb2RlIHRhcmdldE1vZGUpCkBAIC0zMTYsMjAgKzMyOSwy
MSBAQCB2b2lkIFZpZGVvRnVsbHNjcmVlbk1hbmFnZXI6OmV4aXRWaWRlb0Z1bGxzY3JlZW5Ub01v
ZGVXaXRob3V0QW5pbWF0aW9uKFdlYkNvcmU6OgogCiAgICAgaW50ZXJmYWNlLnNldFRhcmdldElz
RnVsbHNjcmVlbihmYWxzZSk7CiAKLSAgICBtX3BhZ2UtPnNlbmQoTWVzc2FnZXM6OlZpZGVvRnVs
bHNjcmVlbk1hbmFnZXJQcm94eTo6RXhpdEZ1bGxzY3JlZW5XaXRob3V0QW5pbWF0aW9uVG9Nb2Rl
KGNvbnRleHRJZCwgdGFyZ2V0TW9kZSkpOworICAgIGlmICghbV9tb2NrVmlkZW9QcmVzZW50YXRp
b25Nb2RlRW5hYmxlZCkKKyAgICAgICAgbV9wYWdlLT5zZW5kKE1lc3NhZ2VzOjpWaWRlb0Z1bGxz
Y3JlZW5NYW5hZ2VyUHJveHk6OkV4aXRGdWxsc2NyZWVuV2l0aG91dEFuaW1hdGlvblRvTW9kZShj
b250ZXh0SWQsIHRhcmdldE1vZGUpKTsKIH0KIAogI3ByYWdtYSBtYXJrIEludGVyZmFjZSB0byBW
aWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2VDb250ZXh0OgogCiB2b2lkIFZpZGVvRnVsbHNjcmVlbk1h
bmFnZXI6Omhhc1ZpZGVvQ2hhbmdlZCh1aW50NjRfdCBjb250ZXh0SWQsIGJvb2wgaGFzVmlkZW8p
CiB7Ci0gICAgaWYgKG1fcGFnZSkKKyAgICBpZiAoIW1fbW9ja1ZpZGVvUHJlc2VudGF0aW9uTW9k
ZUVuYWJsZWQgJiYgbV9wYWdlKQogICAgICAgICBtX3BhZ2UtPnNlbmQoTWVzc2FnZXM6OlZpZGVv
RnVsbHNjcmVlbk1hbmFnZXJQcm94eTo6U2V0SGFzVmlkZW8oY29udGV4dElkLCBoYXNWaWRlbykp
OwogfQogCiB2b2lkIFZpZGVvRnVsbHNjcmVlbk1hbmFnZXI6OnZpZGVvRGltZW5zaW9uc0NoYW5n
ZWQodWludDY0X3QgY29udGV4dElkLCBjb25zdCBGbG9hdFNpemUmIHZpZGVvRGltZW5zaW9ucykK
IHsKLSAgICBpZiAobV9wYWdlKQorICAgIGlmICghbV9tb2NrVmlkZW9QcmVzZW50YXRpb25Nb2Rl
RW5hYmxlZCAmJiBtX3BhZ2UpCiAgICAgICAgIG1fcGFnZS0+c2VuZChNZXNzYWdlczo6VmlkZW9G
dWxsc2NyZWVuTWFuYWdlclByb3h5OjpTZXRWaWRlb0RpbWVuc2lvbnMoY29udGV4dElkLCB2aWRl
b0RpbWVuc2lvbnMpKTsKIH0KIApAQCAtMzQ3LDcgKzM2MSw3IEBAIHZvaWQgVmlkZW9GdWxsc2Ny
ZWVuTWFuYWdlcjo6ZnVsbHNjcmVlbk1vZGVDaGFuZ2VkKHVpbnQ2NF90IGNvbnRleHRJZCwgV2Vi
Q29yZTo6CiAKIHZvaWQgVmlkZW9GdWxsc2NyZWVuTWFuYWdlcjo6cmVxdWVzdFVwZGF0ZUlubGlu
ZVJlY3QodWludDY0X3QgY29udGV4dElkKQogewotICAgIGlmICghbV9wYWdlKQorICAgIGlmICht
X21vY2tWaWRlb1ByZXNlbnRhdGlvbk1vZGVFbmFibGVkIHx8ICFtX3BhZ2UpCiAgICAgICAgIHJl
dHVybjsKIAogICAgIGF1dG8mIG1vZGVsID0gZW5zdXJlTW9kZWwoY29udGV4dElkKTsKQEAgLTM2
Miw5ICszNzYsMTcgQEAgdm9pZCBWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyOjpyZXF1ZXN0VmlkZW9D
b250ZW50TGF5ZXIodWludDY0X3QgY29udGV4dElkKQogICAgIENBTGF5ZXIqIHZpZGVvTGF5ZXIg
PSBpbnRlcmZhY2UtPmxheWVySG9zdGluZ0NvbnRleHQoKS0+cm9vdExheWVyKCk7CiAKICAgICBt
b2RlbC0+c2V0VmlkZW9GdWxsc2NyZWVuTGF5ZXIodmlkZW9MYXllciwgW3Byb3RlY3RlZFRoaXMg
PSBtYWtlUmVmUHRyKHRoaXMpLCB0aGlzLCBjb250ZXh0SWRdICgpIG11dGFibGUgewotICAgICAg
ICBkaXNwYXRjaF9hc3luYyhkaXNwYXRjaF9nZXRfbWFpbl9xdWV1ZSgpLCBbcHJvdGVjdGVkVGhp
cyA9IFdURk1vdmUocHJvdGVjdGVkVGhpcyksIHRoaXMsIGNvbnRleHRJZF0gewotICAgICAgICAg
ICAgaWYgKHByb3RlY3RlZFRoaXMtPm1fcGFnZSkKKyAgICAgICAgZGlzcGF0Y2hfYXN5bmMoZGlz
cGF0Y2hfZ2V0X21haW5fcXVldWUoKSwgW3Byb3RlY3RlZFRoaXMgPSBXVEZNb3ZlKHByb3RlY3Rl
ZFRoaXMpLCB0aGlzLCBjb250ZXh0SWRdICgpIG11dGFibGUgeworICAgICAgICAgICAgaWYgKCFt
X3BhZ2UpCisgICAgICAgICAgICAgICAgcmV0dXJuOworCisgICAgICAgICAgICBpZiAoIW1fbW9j
a1ZpZGVvUHJlc2VudGF0aW9uTW9kZUVuYWJsZWQpCiAgICAgICAgICAgICAgICAgbV9wYWdlLT5z
ZW5kKE1lc3NhZ2VzOjpWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyUHJveHk6OlNldEhhc1ZpZGVvQ29u
dGVudExheWVyKGNvbnRleHRJZCwgdHJ1ZSkpOworICAgICAgICAgICAgZWxzZSB7CisgICAgICAg
ICAgICAgICAgZGlzcGF0Y2hfYXN5bmMoZGlzcGF0Y2hfZ2V0X21haW5fcXVldWUoKSwgW3Byb3Rl
Y3RlZFRoaXMgPSBXVEZNb3ZlKHByb3RlY3RlZFRoaXMpLCB0aGlzLCBjb250ZXh0SWRdIHsKKyAg
ICAgICAgICAgICAgICAgICAgZGlkU2V0dXBGdWxsc2NyZWVuKGNvbnRleHRJZCk7CisgICAgICAg
ICAgICAgICAgfSk7CisgICAgICAgICAgICB9CiAgICAgICAgIH0pOwogICAgIH0pOwogfQpAQCAt
Mzc4LDkgKzQwMCwxNyBAQCB2b2lkIFZpZGVvRnVsbHNjcmVlbk1hbmFnZXI6OnJldHVyblZpZGVv
Q29udGVudExheWVyKHVpbnQ2NF90IGNvbnRleHRJZCkKICAgICBtb2RlbC0+d2FpdEZvclByZXBh
cmVkRm9ySW5saW5lVGhlbihbcHJvdGVjdGVkVGhpcyA9IG1ha2VSZWZQdHIodGhpcyksIHRoaXMs
IGNvbnRleHRJZCwgbW9kZWxdICgpIG11dGFibGUgeyAvLyBuZWVkIHRoaXMgZm9yIHJldHVybiB2
aWRlbyBsYXllcgogICAgICAgICBkaXNwYXRjaF9hc3luYyhkaXNwYXRjaF9nZXRfbWFpbl9xdWV1
ZSgpLCBbcHJvdGVjdGVkVGhpcyA9IFdURk1vdmUocHJvdGVjdGVkVGhpcyksIHRoaXMsIGNvbnRl
eHRJZCwgbW9kZWxdICgpIG11dGFibGUgewogICAgICAgICAgICAgbW9kZWwtPnNldFZpZGVvRnVs
bHNjcmVlbkxheWVyKG5pbCwgW3Byb3RlY3RlZFRoaXMgPSBXVEZNb3ZlKHByb3RlY3RlZFRoaXMp
LCB0aGlzLCBjb250ZXh0SWRdICgpIG11dGFibGUgewotICAgICAgICAgICAgICAgIGRpc3BhdGNo
X2FzeW5jKGRpc3BhdGNoX2dldF9tYWluX3F1ZXVlKCksIFtwcm90ZWN0ZWRUaGlzID0gV1RGTW92
ZShwcm90ZWN0ZWRUaGlzKSwgdGhpcywgY29udGV4dElkXSB7Ci0gICAgICAgICAgICAgICAgICAg
IGlmIChwcm90ZWN0ZWRUaGlzLT5tX3BhZ2UpCisgICAgICAgICAgICAgICAgZGlzcGF0Y2hfYXN5
bmMoZGlzcGF0Y2hfZ2V0X21haW5fcXVldWUoKSwgW3Byb3RlY3RlZFRoaXMgPSBXVEZNb3ZlKHBy
b3RlY3RlZFRoaXMpLCB0aGlzLCBjb250ZXh0SWRdICgpIG11dGFibGUgeworICAgICAgICAgICAg
ICAgICAgICBpZiAoIW1fcGFnZSkKKyAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybjsKKwor
ICAgICAgICAgICAgICAgICAgICBpZiAoIW1fbW9ja1ZpZGVvUHJlc2VudGF0aW9uTW9kZUVuYWJs
ZWQpCiAgICAgICAgICAgICAgICAgICAgICAgICBtX3BhZ2UtPnNlbmQoTWVzc2FnZXM6OlZpZGVv
RnVsbHNjcmVlbk1hbmFnZXJQcm94eTo6U2V0SGFzVmlkZW9Db250ZW50TGF5ZXIoY29udGV4dElk
LCBmYWxzZSkpOworICAgICAgICAgICAgICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgICAgICAg
ICAgICAgIGRpc3BhdGNoX2FzeW5jKGRpc3BhdGNoX2dldF9tYWluX3F1ZXVlKCksIFtwcm90ZWN0
ZWRUaGlzID0gV1RGTW92ZShwcm90ZWN0ZWRUaGlzKSwgdGhpcywgY29udGV4dElkXSB7CisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgZGlkRXhpdEZ1bGxzY3JlZW4oY29udGV4dElkKTsKKyAg
ICAgICAgICAgICAgICAgICAgICAgIH0pOworICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAg
ICAgICAgICAgfSk7CiAgICAgICAgICAgICB9KTsKICAgICAgICAgfSk7CkBAIC0zOTYsMTYgKzQy
NiwzMiBAQCB2b2lkIFZpZGVvRnVsbHNjcmVlbk1hbmFnZXI6OmRpZFNldHVwRnVsbHNjcmVlbih1
aW50NjRfdCBjb250ZXh0SWQpCiAKICNpZiBQTEFURk9STShJT1NfRkFNSUxZKQogICAgIGRpc3Bh
dGNoX2FzeW5jKGRpc3BhdGNoX2dldF9tYWluX3F1ZXVlKCksIFtwcm90ZWN0ZWRUaGlzID0gbWFr
ZVJlZlB0cih0aGlzKSwgdGhpcywgY29udGV4dElkXSB7Ci0gICAgICAgIGlmIChwcm90ZWN0ZWRU
aGlzLT5tX3BhZ2UpCisgICAgICAgIGlmICghbV9wYWdlKQorICAgICAgICAgICAgcmV0dXJuOwor
CisgICAgICAgIGlmICghbV9tb2NrVmlkZW9QcmVzZW50YXRpb25Nb2RlRW5hYmxlZCkKICAgICAg
ICAgICAgIG1fcGFnZS0+c2VuZChNZXNzYWdlczo6VmlkZW9GdWxsc2NyZWVuTWFuYWdlclByb3h5
OjpFbnRlckZ1bGxzY3JlZW4oY29udGV4dElkKSk7CisgICAgICAgIGVsc2UgeworICAgICAgICAg
ICAgZGlzcGF0Y2hfYXN5bmMoZGlzcGF0Y2hfZ2V0X21haW5fcXVldWUoKSwgW3Byb3RlY3RlZFRo
aXMgPSBtYWtlUmVmUHRyKHRoaXMpLCB0aGlzLCBjb250ZXh0SWRdIHsKKyAgICAgICAgICAgICAg
ICBkaWRFbnRlckZ1bGxzY3JlZW4oY29udGV4dElkKTsKKyAgICAgICAgICAgIH0pOworICAgICAg
ICB9CiAgICAgfSk7CiAjZWxzZQogICAgIENBTGF5ZXIqIHZpZGVvTGF5ZXIgPSBpbnRlcmZhY2Ut
PmxheWVySG9zdGluZ0NvbnRleHQoKS0+cm9vdExheWVyKCk7CiAKICAgICBtb2RlbC0+c2V0Vmlk
ZW9GdWxsc2NyZWVuTGF5ZXIodmlkZW9MYXllciwgW3Byb3RlY3RlZFRoaXMgPSBtYWtlUmVmUHRy
KHRoaXMpLCB0aGlzLCBjb250ZXh0SWRdICgpIG11dGFibGUgewogICAgICAgICBkaXNwYXRjaF9h
c3luYyhkaXNwYXRjaF9nZXRfbWFpbl9xdWV1ZSgpLCBbcHJvdGVjdGVkVGhpcyA9IFdURk1vdmUo
cHJvdGVjdGVkVGhpcyksIHRoaXMsIGNvbnRleHRJZF0gewotICAgICAgICAgICAgaWYgKHByb3Rl
Y3RlZFRoaXMtPm1fcGFnZSkKKyAgICAgICAgICAgIGlmICghbV9wYWdlKQorICAgICAgICAgICAg
ICAgIHJldHVybjsKKworICAgICAgICAgICAgaWYgKCFtX21vY2tWaWRlb1ByZXNlbnRhdGlvbk1v
ZGVFbmFibGVkKQogICAgICAgICAgICAgICAgIG1fcGFnZS0+c2VuZChNZXNzYWdlczo6VmlkZW9G
dWxsc2NyZWVuTWFuYWdlclByb3h5OjpFbnRlckZ1bGxzY3JlZW4oY29udGV4dElkKSk7CisgICAg
ICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgICAgICBkaXNwYXRjaF9hc3luYyhkaXNwYXRjaF9n
ZXRfbWFpbl9xdWV1ZSgpLCBbcHJvdGVjdGVkVGhpcyA9IG1ha2VSZWZQdHIodGhpcyksIHRoaXMs
IGNvbnRleHRJZF0geworICAgICAgICAgICAgICAgICAgICBkaWRFbnRlckZ1bGxzY3JlZW4oY29u
dGV4dElkKTsKKyAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgIH0KICAgICAgICAgfSk7
CiAgICAgfSk7CiAjZW5kaWYKQEAgLTQyMSwxMCArNDY3LDEwIEBAIHZvaWQgVmlkZW9GdWxsc2Ny
ZWVuTWFuYWdlcjo6d2lsbEV4aXRGdWxsc2NyZWVuKHVpbnQ2NF90IGNvbnRleHRJZCkKICAgICBp
ZiAoIXZpZGVvRWxlbWVudCkKICAgICAgICAgcmV0dXJuOwogCi0gICAgZGlzcGF0Y2hfYXN5bmMo
ZGlzcGF0Y2hfZ2V0X21haW5fcXVldWUoKSwgW3Byb3RlY3RlZFRoaXMgPSBtYWtlUmVmUHRyKHRo
aXMpLCB2aWRlb0VsZW1lbnQgPSBXVEZNb3ZlKHZpZGVvRWxlbWVudCksIGNvbnRleHRJZF0gewor
ICAgIGRpc3BhdGNoX2FzeW5jKGRpc3BhdGNoX2dldF9tYWluX3F1ZXVlKCksIFtwcm90ZWN0ZWRU
aGlzID0gbWFrZVJlZlB0cih0aGlzKSwgdmlkZW9FbGVtZW50ID0gV1RGTW92ZSh2aWRlb0VsZW1l
bnQpLCB0aGlzLCBjb250ZXh0SWRdIHsKICAgICAgICAgdmlkZW9FbGVtZW50LT53aWxsRXhpdEZ1
bGxzY3JlZW4oKTsKLSAgICAgICAgaWYgKHByb3RlY3RlZFRoaXMtPm1fcGFnZSkKLSAgICAgICAg
ICAgIHByb3RlY3RlZFRoaXMtPm1fcGFnZS0+c2VuZChNZXNzYWdlczo6VmlkZW9GdWxsc2NyZWVu
TWFuYWdlclByb3h5OjpQcmVwYXJlZFRvRXhpdEZ1bGxzY3JlZW4oY29udGV4dElkKSk7CisgICAg
ICAgIGlmICghbV9tb2NrVmlkZW9QcmVzZW50YXRpb25Nb2RlRW5hYmxlZCAmJiBtX3BhZ2UpCisg
ICAgICAgICAgICBtX3BhZ2UtPnNlbmQoTWVzc2FnZXM6OlZpZGVvRnVsbHNjcmVlbk1hbmFnZXJQ
cm94eTo6UHJlcGFyZWRUb0V4aXRGdWxsc2NyZWVuKGNvbnRleHRJZCkpOwogICAgIH0pOwogfQog
CkBAIC00NDksOSArNDk1LDkgQEAgdm9pZCBWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyOjpkaWRFbnRl
ckZ1bGxzY3JlZW4odWludDY0X3QgY29udGV4dElkKQogICAgICAgICByZXR1cm47CiAKICAgICAv
LyBleGl0IGZ1bGxzY3JlZW4gbm93IGlmIGl0IHdhcyBwcmV2aW91c2x5IHJlcXVlc3RlZCBkdXJp
bmcgYW4gYW5pbWF0aW9uLgotICAgIGRpc3BhdGNoX2FzeW5jKGRpc3BhdGNoX2dldF9tYWluX3F1
ZXVlKCksIFtwcm90ZWN0ZWRUaGlzID0gbWFrZVJlZlB0cih0aGlzKSwgdmlkZW9FbGVtZW50XSB7
Ci0gICAgICAgIGlmIChwcm90ZWN0ZWRUaGlzLT5tX3BhZ2UpCi0gICAgICAgICAgICBwcm90ZWN0
ZWRUaGlzLT5leGl0VmlkZW9GdWxsc2NyZWVuRm9yVmlkZW9FbGVtZW50KCp2aWRlb0VsZW1lbnQp
OworICAgIGRpc3BhdGNoX2FzeW5jKGRpc3BhdGNoX2dldF9tYWluX3F1ZXVlKCksIFtwcm90ZWN0
ZWRUaGlzID0gbWFrZVJlZlB0cih0aGlzKSwgdGhpcywgdmlkZW9FbGVtZW50XSB7CisgICAgICAg
IGlmIChtX3BhZ2UpCisgICAgICAgICAgICBleGl0VmlkZW9GdWxsc2NyZWVuRm9yVmlkZW9FbGVt
ZW50KCp2aWRlb0VsZW1lbnQpOwogICAgIH0pOwogfQogCkBAIC00NjQsMjEgKzUxMCwzOCBAQCB2
b2lkIFZpZGVvRnVsbHNjcmVlbk1hbmFnZXI6OmRpZEV4aXRGdWxsc2NyZWVuKHVpbnQ2NF90IGNv
bnRleHRJZCkKICAgICBzdGQ6OnRpZShtb2RlbCwgaW50ZXJmYWNlKSA9IGVuc3VyZU1vZGVsQW5k
SW50ZXJmYWNlKGNvbnRleHRJZCk7CiAKICNpZiBQTEFURk9STShJT1NfRkFNSUxZKQotICAgIGRp
c3BhdGNoX2FzeW5jKGRpc3BhdGNoX2dldF9tYWluX3F1ZXVlKCksIFtwcm90ZWN0ZWRUaGlzID0g
bWFrZVJlZlB0cih0aGlzKSwgY29udGV4dElkLCBpbnRlcmZhY2VdIHsKLSAgICAgICAgaWYgKHBy
b3RlY3RlZFRoaXMtPm1fcGFnZSkKLSAgICAgICAgICAgIHByb3RlY3RlZFRoaXMtPm1fcGFnZS0+
c2VuZChNZXNzYWdlczo6VmlkZW9GdWxsc2NyZWVuTWFuYWdlclByb3h5OjpDbGVhbnVwRnVsbHNj
cmVlbihjb250ZXh0SWQpKTsKKyAgICBkaXNwYXRjaF9hc3luYyhkaXNwYXRjaF9nZXRfbWFpbl9x
dWV1ZSgpLCBbcHJvdGVjdGVkVGhpcyA9IG1ha2VSZWZQdHIodGhpcyksIHRoaXMsIGNvbnRleHRJ
ZCwgaW50ZXJmYWNlXSAoKSBtdXRhYmxlIHsKKyAgICAgICAgaWYgKCFtX3BhZ2UpCisgICAgICAg
ICAgICByZXR1cm47CisKKyAgICAgICAgaWYgKCFtX21vY2tWaWRlb1ByZXNlbnRhdGlvbk1vZGVF
bmFibGVkKQorICAgICAgICAgICAgbV9wYWdlLT5zZW5kKE1lc3NhZ2VzOjpWaWRlb0Z1bGxzY3Jl
ZW5NYW5hZ2VyUHJveHk6OkNsZWFudXBGdWxsc2NyZWVuKGNvbnRleHRJZCkpOworICAgICAgICBl
bHNlIHsKKyAgICAgICAgICAgIGRpc3BhdGNoX2FzeW5jKGRpc3BhdGNoX2dldF9tYWluX3F1ZXVl
KCksIFtwcm90ZWN0ZWRUaGlzID0gV1RGTW92ZShwcm90ZWN0ZWRUaGlzKSwgdGhpcywgY29udGV4
dElkXSB7CisgICAgICAgICAgICAgICAgZGlkQ2xlYW51cEZ1bGxzY3JlZW4oY29udGV4dElkKTsK
KyAgICAgICAgICAgIH0pOworICAgICAgICB9CiAgICAgfSk7CiAjZWxzZQogICAgIG1vZGVsLT53
YWl0Rm9yUHJlcGFyZWRGb3JJbmxpbmVUaGVuKFtwcm90ZWN0ZWRUaGlzID0gbWFrZVJlZlB0cih0
aGlzKSwgY29udGV4dElkLCBpbnRlcmZhY2UsIG1vZGVsXSAoKSBtdXRhYmxlIHsKICAgICAgICAg
ZGlzcGF0Y2hfYXN5bmMoZGlzcGF0Y2hfZ2V0X21haW5fcXVldWUoKSwgW3Byb3RlY3RlZFRoaXMg
PSBXVEZNb3ZlKHByb3RlY3RlZFRoaXMpLCBjb250ZXh0SWQsIGludGVyZmFjZSwgbW9kZWxdICgp
IG11dGFibGUgewogICAgICAgICAgICAgbW9kZWwtPnNldFZpZGVvRnVsbHNjcmVlbkxheWVyKG5p
bCwgW3Byb3RlY3RlZFRoaXMgPSBXVEZNb3ZlKHByb3RlY3RlZFRoaXMpLCBjb250ZXh0SWQsIGlu
dGVyZmFjZV0gKCkgbXV0YWJsZSB7Ci0gICAgICAgICAgICAgICAgZGlzcGF0Y2hfYXN5bmMoZGlz
cGF0Y2hfZ2V0X21haW5fcXVldWUoKSwgW3Byb3RlY3RlZFRoaXMgPSBXVEZNb3ZlKHByb3RlY3Rl
ZFRoaXMpLCBjb250ZXh0SWQsIGludGVyZmFjZV0geworICAgICAgICAgICAgICAgIGRpc3BhdGNo
X2FzeW5jKGRpc3BhdGNoX2dldF9tYWluX3F1ZXVlKCksIFtwcm90ZWN0ZWRUaGlzID0gV1RGTW92
ZShwcm90ZWN0ZWRUaGlzKSwgY29udGV4dElkLCBpbnRlcmZhY2VdICgpIG11dGFibGUgewogICAg
ICAgICAgICAgICAgICAgICBpZiAoaW50ZXJmYWNlLT5sYXllckhvc3RpbmdDb250ZXh0KCkpIHsK
ICAgICAgICAgICAgICAgICAgICAgICAgIGludGVyZmFjZS0+bGF5ZXJIb3N0aW5nQ29udGV4dCgp
LT5zZXRSb290TGF5ZXIobnVsbHB0cik7CiAgICAgICAgICAgICAgICAgICAgICAgICBpbnRlcmZh
Y2UtPnNldExheWVySG9zdGluZ0NvbnRleHQobnVsbHB0cik7CiAgICAgICAgICAgICAgICAgICAg
IH0KLSAgICAgICAgICAgICAgICAgICAgaWYgKHByb3RlY3RlZFRoaXMtPm1fcGFnZSkKKworICAg
ICAgICAgICAgICAgICAgICBpZiAoIXByb3RlY3RlZFRoaXMtPm1fcGFnZSkKKyAgICAgICAgICAg
ICAgICAgICAgICAgIHJldHVybjsKKworICAgICAgICAgICAgICAgICAgICBpZiAoIXByb3RlY3Rl
ZFRoaXMtPm1fbW9ja1ZpZGVvUHJlc2VudGF0aW9uTW9kZUVuYWJsZWQpCiAgICAgICAgICAgICAg
ICAgICAgICAgICBwcm90ZWN0ZWRUaGlzLT5tX3BhZ2UtPnNlbmQoTWVzc2FnZXM6OlZpZGVvRnVs
bHNjcmVlbk1hbmFnZXJQcm94eTo6Q2xlYW51cEZ1bGxzY3JlZW4oY29udGV4dElkKSk7CisgICAg
ICAgICAgICAgICAgICAgIGVsc2UgeworICAgICAgICAgICAgICAgICAgICAgICAgZGlzcGF0Y2hf
YXN5bmMoZGlzcGF0Y2hfZ2V0X21haW5fcXVldWUoKSwgW3Byb3RlY3RlZFRoaXMgPSBXVEZNb3Zl
KHByb3RlY3RlZFRoaXMpLCBjb250ZXh0SWRdIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBwcm90ZWN0ZWRUaGlzLT5kaWRDbGVhbnVwRnVsbHNjcmVlbihjb250ZXh0SWQpOworICAgICAg
ICAgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAg
ICAgICB9KTsKICAgICAgICAgICAgIH0pOwogICAgICAgICB9KTsKQEAgLTUxMyw5ICs1NzYsOSBA
QCB2b2lkIFZpZGVvRnVsbHNjcmVlbk1hbmFnZXI6OmRpZENsZWFudXBGdWxsc2NyZWVuKHVpbnQ2
NF90IGNvbnRleHRJZCkKICAgICBpZiAoIXZpZGVvRWxlbWVudCB8fCAhdGFyZ2V0SXNGdWxsc2Ny
ZWVuKQogICAgICAgICByZXR1cm47CiAKLSAgICBkaXNwYXRjaF9hc3luYyhkaXNwYXRjaF9nZXRf
bWFpbl9xdWV1ZSgpLCBbcHJvdGVjdGVkVGhpcyA9IG1ha2VSZWZQdHIodGhpcyksIHZpZGVvRWxl
bWVudCwgbW9kZSwgc3RhbmRieV0gewotICAgICAgICBpZiAocHJvdGVjdGVkVGhpcy0+bV9wYWdl
KQotICAgICAgICAgICAgcHJvdGVjdGVkVGhpcy0+ZW50ZXJWaWRlb0Z1bGxzY3JlZW5Gb3JWaWRl
b0VsZW1lbnQoKnZpZGVvRWxlbWVudCwgbW9kZSwgc3RhbmRieSk7CisgICAgZGlzcGF0Y2hfYXN5
bmMoZGlzcGF0Y2hfZ2V0X21haW5fcXVldWUoKSwgW3Byb3RlY3RlZFRoaXMgPSBtYWtlUmVmUHRy
KHRoaXMpLCB0aGlzLCB2aWRlb0VsZW1lbnQsIG1vZGUsIHN0YW5kYnldIHsKKyAgICAgICAgaWYg
KG1fcGFnZSkKKyAgICAgICAgICAgIGVudGVyVmlkZW9GdWxsc2NyZWVuRm9yVmlkZW9FbGVtZW50
KCp2aWRlb0VsZW1lbnQsIG1vZGUsIHN0YW5kYnkpOwogICAgIH0pOwogfQogICAgIApAQCAtNTMz
LDcgKzU5Niw5IEBAIHZvaWQgVmlkZW9GdWxsc2NyZWVuTWFuYWdlcjo6ZnVsbHNjcmVlbk1heVJl
dHVyblRvSW5saW5lKHVpbnQ2NF90IGNvbnRleHRJZCwgYm9vCiAKICAgICBpZiAoIWlzUGFnZVZp
c2libGUpCiAgICAgICAgIG1vZGVsLnZpZGVvRWxlbWVudCgpLT5zY3JvbGxJbnRvVmlld0lmTm90
VmlzaWJsZShmYWxzZSk7Ci0gICAgbV9wYWdlLT5zZW5kKE1lc3NhZ2VzOjpWaWRlb0Z1bGxzY3Jl
ZW5NYW5hZ2VyUHJveHk6OlByZXBhcmVkVG9SZXR1cm5Ub0lubGluZShjb250ZXh0SWQsIHRydWUs
IGlubGluZVZpZGVvRnJhbWUoKm1vZGVsLnZpZGVvRWxlbWVudCgpKSkpOworCisgICAgaWYgKCFt
X21vY2tWaWRlb1ByZXNlbnRhdGlvbk1vZGVFbmFibGVkKQorICAgICAgICBtX3BhZ2UtPnNlbmQo
TWVzc2FnZXM6OlZpZGVvRnVsbHNjcmVlbk1hbmFnZXJQcm94eTo6UHJlcGFyZWRUb1JldHVyblRv
SW5saW5lKGNvbnRleHRJZCwgdHJ1ZSwgaW5saW5lVmlkZW9GcmFtZSgqbW9kZWwudmlkZW9FbGVt
ZW50KCkpKSk7CiB9CiAKIHZvaWQgVmlkZW9GdWxsc2NyZWVuTWFuYWdlcjo6cmVxdWVzdFJvdXRl
U2hhcmluZ1BvbGljeUFuZENvbnRleHRVSUQodWludDY0X3QgY29udGV4dElkLCBNZXNzYWdlczo6
VmlkZW9GdWxsc2NyZWVuTWFuYWdlcjo6UmVxdWVzdFJvdXRlU2hhcmluZ1BvbGljeUFuZENvbnRl
eHRVSUQ6OkFzeW5jUmVwbHkmJiByZXBseSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdh
Y3kvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5oIGIvU291cmNlL1dlYktpdExl
Z2FjeS9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmgKaW5kZXggYTdkMDY5MGJm
YWRiMzdiNWViODI1OGVkMTk2NGQzYTBjNjM4N2QyNy4uM2FjMjMwZDhhMjZkNzAxNjM0NjU3ZjJi
OGJjMjk5MTRiMGExYzBiOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2Vi
Q29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmgKKysrIGIvU291cmNlL1dlYktpdExlZ2FjeS9t
YWMvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmgKQEAgLTE5MywxMCArMTkzLDEzIEBA
IHByaXZhdGU6CiAKICNpZiBFTkFCTEUoVklERU8pCiAgICAgYm9vbCBzdXBwb3J0c1ZpZGVvRnVs
bHNjcmVlbihXZWJDb3JlOjpIVE1MTWVkaWFFbGVtZW50RW51bXM6OlZpZGVvRnVsbHNjcmVlbk1v
ZGUpIGZpbmFsOworI2lmIEVOQUJMRShWSURFT19QUkVTRU5UQVRJT05fTU9ERSkKKyAgICB2b2lk
IHNldE1vY2tWaWRlb1ByZXNlbnRhdGlvbk1vZGVFbmFibGVkKGJvb2wpIGZpbmFsOwogICAgIHZv
aWQgZW50ZXJWaWRlb0Z1bGxzY3JlZW5Gb3JWaWRlb0VsZW1lbnQoV2ViQ29yZTo6SFRNTFZpZGVv
RWxlbWVudCYsIFdlYkNvcmU6OkhUTUxNZWRpYUVsZW1lbnRFbnVtczo6VmlkZW9GdWxsc2NyZWVu
TW9kZSwgYm9vbCBzdGFuZGJ5KSBmaW5hbDsKICAgICB2b2lkIGV4aXRWaWRlb0Z1bGxzY3JlZW5G
b3JWaWRlb0VsZW1lbnQoV2ViQ29yZTo6SFRNTFZpZGVvRWxlbWVudCYpIGZpbmFsOwogICAgIHZv
aWQgZXhpdFZpZGVvRnVsbHNjcmVlblRvTW9kZVdpdGhvdXRBbmltYXRpb24oV2ViQ29yZTo6SFRN
TFZpZGVvRWxlbWVudCYsIFdlYkNvcmU6OkhUTUxNZWRpYUVsZW1lbnRFbnVtczo6VmlkZW9GdWxs
c2NyZWVuTW9kZSkgZmluYWw7CiAjZW5kaWYKKyNlbmRpZgogCiAjaWYgRU5BQkxFKEZVTExTQ1JF
RU5fQVBJKQogICAgIGJvb2wgc3VwcG9ydHNGdWxsU2NyZWVuRm9yRWxlbWVudChjb25zdCBXZWJD
b3JlOjpFbGVtZW50JiwgYm9vbCB3aXRoS2V5Ym9hcmQpIGZpbmFsOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50Lm1tIGIv
U291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50Lm1t
CmluZGV4IDZkNjhkZjdjNzI3ZTcxMWFlNmYyNjg1M2RkZGU5MmIzNWU0ZDg0YjQuLjg5NDgxNjM3
NmJmODdlMzIxMzc4ODVlMDA2MDljMjNjOTZjNGY1MDkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXRMZWdhY3kvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5tbQorKysgYi9Tb3Vy
Y2UvV2ViS2l0TGVnYWN5L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQubW0KQEAg
LTk2NSw2ICs5NjUsMTMgQEAgYm9vbCBXZWJDaHJvbWVDbGllbnQ6OnN1cHBvcnRzVmlkZW9GdWxs
c2NyZWVuKEhUTUxNZWRpYUVsZW1lbnRFbnVtczo6VmlkZW9GdWxsc2MKICAgICByZXR1cm4gdHJ1
ZTsKIH0KIAorI2lmIEVOQUJMRShWSURFT19QUkVTRU5UQVRJT05fTU9ERSkKKwordm9pZCBXZWJD
aHJvbWVDbGllbnQ6OnNldE1vY2tWaWRlb1ByZXNlbnRhdGlvbk1vZGVFbmFibGVkKGJvb2wgZW5h
YmxlZCkKK3sKKyAgICBbbV93ZWJWaWV3IF9zZXRNb2NrVmlkZW9QcmVzZW50YXRpb25Nb2RlRW5h
YmxlZDplbmFibGVkXTsKK30KKwogdm9pZCBXZWJDaHJvbWVDbGllbnQ6OmVudGVyVmlkZW9GdWxs
c2NyZWVuRm9yVmlkZW9FbGVtZW50KEhUTUxWaWRlb0VsZW1lbnQmIHZpZGVvRWxlbWVudCwgSFRN
TE1lZGlhRWxlbWVudEVudW1zOjpWaWRlb0Z1bGxzY3JlZW5Nb2RlIG1vZGUsIGJvb2wgc3RhbmRi
eSkKIHsKICAgICBBU1NFUlRfVU5VU0VEKHN0YW5kYnksICFzdGFuZGJ5KTsKQEAgLTk4OCw2ICs5
OTUsOCBAQCB2b2lkIFdlYkNocm9tZUNsaWVudDo6ZXhpdFZpZGVvRnVsbHNjcmVlblRvTW9kZVdp
dGhvdXRBbmltYXRpb24oSFRNTFZpZGVvRWxlbWVudAogICAgIEVORF9CTE9DS19PQkpDX0VYQ0VQ
VElPTlM7CiB9CiAKKyNlbmRpZiAvLyBFTkFCTEUoVklERU9fUFJFU0VOVEFUSU9OX01PREUpCisK
ICNlbmRpZiAvLyBFTkFCTEUoVklERU8pCiAKICNpZiBFTkFCTEUoVklERU8pICYmIFBMQVRGT1JN
KE1BQykgJiYgRU5BQkxFKFZJREVPX1BSRVNFTlRBVElPTl9NT0RFKQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViVmlldy9XZWJWaWV3Lm1tIGIvU291cmNlL1dlYktpdExl
Z2FjeS9tYWMvV2ViVmlldy9XZWJWaWV3Lm1tCmluZGV4IGM5MjQxNTA4YzM5NjkxMzk1NjQ1MTQy
ZDA1MGIxNjlkY2ZiZDQ0NjYuLmI5MTcyMzk1YWUxMTY5MGVjNGMxOTQzNDRjYzU1ZGQ4MTFkYjM5
NzcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcvV2ViVmlldy5t
bQorKysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3L1dlYlZpZXcubW0KQEAgLTIz
NTQsNyArMjM1NCw3IEBAIC0gKHZvaWQpX2Nsb3NlCiAgICAgICAgIHJldHVybjsKICAgICB9CiAK
LSNpZiBFTkFCTEUoVklERU8pICYmICFQTEFURk9STShJT1NfRkFNSUxZKQorI2lmIEVOQUJMRShW
SURFT19QUkVTRU5UQVRJT05fTU9ERSkgJiYgIVBMQVRGT1JNKElPU19GQU1JTFkpCiAgICAgW3Nl
bGYgX2V4aXRWaWRlb0Z1bGxzY3JlZW5dOwogI2VuZGlmCiAKQEAgLTkyNjAsOCArOTI2MCwxOSBA
QCAtICh2b2lkKV9zY2hlZHVsZVJlbmRlcmluZ1VwZGF0ZUZvclBlbmRpbmdUaWxlQ2FjaGVSZXBh
aW50CiAjZW5kaWYKIAogI2lmIEVOQUJMRShWSURFTykKKworI2lmIEVOQUJMRShWSURFT19QUkVT
RU5UQVRJT05fTU9ERSkKKworLSAodm9pZClfc2V0TW9ja1ZpZGVvUHJlc2VudGF0aW9uTW9kZUVu
YWJsZWQ6KEJPT0wpZW5hYmxlZAoreworICAgIF9wcml2YXRlLT5tb2NrVmlkZW9QcmVzZW50YXRp
b25Nb2RlRW5hYmxlZCA9IGVuYWJsZWQ7Cit9CisKIC0gKHZvaWQpX2VudGVyVmlkZW9GdWxsc2Ny
ZWVuRm9yVmlkZW9FbGVtZW50OihOYWtlZFB0cjxXZWJDb3JlOjpIVE1MVmlkZW9FbGVtZW50Pil2
aWRlb0VsZW1lbnQgbW9kZTooV2ViQ29yZTo6SFRNTE1lZGlhRWxlbWVudEVudW1zOjpWaWRlb0Z1
bGxzY3JlZW5Nb2RlKW1vZGUKIHsKKyAgICBpZiAoX3ByaXZhdGUtPm1vY2tWaWRlb1ByZXNlbnRh
dGlvbk1vZGVFbmFibGVkKQorICAgICAgICByZXR1cm47CisKICAgICBpZiAoX3ByaXZhdGUtPmZ1
bGxzY3JlZW5Db250cm9sbGVyKSB7CiAgICAgICAgIGlmIChbX3ByaXZhdGUtPmZ1bGxzY3JlZW5D
b250cm9sbGVyIHZpZGVvRWxlbWVudF0gPT0gdmlkZW9FbGVtZW50KSB7CiAgICAgICAgICAgICAv
LyBUaGUgYmFja2VuZCBtYXkganVzdCB3YXJuIHVzIHRoYXQgdGhlIHVuZGVybGF5aW5nIHBsYWZ0
b3JtTW92aWUoKQpAQCAtOTI5MCw2ICs5MzAxLDkgQEAgLSAodm9pZClfZW50ZXJWaWRlb0Z1bGxz
Y3JlZW5Gb3JWaWRlb0VsZW1lbnQ6KE5ha2VkUHRyPFdlYkNvcmU6OkhUTUxWaWRlb0VsZW1lbnQK
IAogLSAodm9pZClfZXhpdFZpZGVvRnVsbHNjcmVlbgogeworICAgIGlmIChfcHJpdmF0ZS0+bW9j
a1ZpZGVvUHJlc2VudGF0aW9uTW9kZUVuYWJsZWQpCisgICAgICAgIHJldHVybjsKKwogICAgIGlm
ICghX3ByaXZhdGUtPmZ1bGxzY3JlZW5Db250cm9sbGVyICYmIF9wcml2YXRlLT5mdWxsc2NyZWVu
Q29udHJvbGxlcnNFeGl0aW5nLmlzRW1wdHkoKSkKICAgICAgICAgcmV0dXJuOwogCkBAIC05MzA3
LDcgKzkzMjEsNyBAQCAtICh2b2lkKV9leGl0VmlkZW9GdWxsc2NyZWVuCiAgICAgW2Z1bGxzY3Jl
ZW5Db250cm9sbGVyIGV4aXRGdWxsc2NyZWVuXTsKIH0KIAotI2lmIFBMQVRGT1JNKE1BQykgJiYg
RU5BQkxFKFZJREVPX1BSRVNFTlRBVElPTl9NT0RFKQorI2lmIFBMQVRGT1JNKE1BQykKIC0gKEJP
T0wpX2hhc0FjdGl2ZVZpZGVvRm9yQ29udHJvbHNJbnRlcmZhY2UKIHsKICAgICBpZiAoIV9wcml2
YXRlLT5wbGF5YmFja1Nlc3Npb25Nb2RlbCkKQEAgLTkzNDcsNyArOTM2MSwxMSBAQCAtICh2b2lk
KV9jbGVhclBsYXliYWNrQ29udHJvbHNNYW5hZ2VyCiAgICAgX3ByaXZhdGUtPnBsYXliYWNrU2Vz
c2lvbkludGVyZmFjZSA9IG51bGxwdHI7CiAgICAgW3NlbGYgdXBkYXRlVG91Y2hCYXJdOwogfQot
I2VuZGlmIC8vIFBMQVRGT1JNKE1BQykgJiYgRU5BQkxFKFZJREVPX1BSRVNFTlRBVElPTl9NT0RF
KQorCisjZW5kaWYgLy8gUExBVEZPUk0oTUFDKQorCisjZW5kaWYgLy8gRU5BQkxFKFZJREVPX1BS
RVNFTlRBVElPTl9NT0RFKQorCiAjZW5kaWYgLy8gRU5BQkxFKFZJREVPKQogCiAjaWYgRU5BQkxF
KEZVTExTQ1JFRU5fQVBJKSAmJiAhUExBVEZPUk0oSU9TX0ZBTUlMWSkKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcvV2ViVmlld0RhdGEuaCBiL1NvdXJjZS9XZWJL
aXRMZWdhY3kvbWFjL1dlYlZpZXcvV2ViVmlld0RhdGEuaAppbmRleCBmZTk4MzliYWM0NzQ5MWEx
NDNiYTY4YmU3YzliYjY1MGFmZDUwN2I4Li42ODI2MDA0NTBiMjM1ZTZjNGQ5NTkzZGM3Yjk1NmFk
ZjBmOTY4NmNmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3L1dl
YlZpZXdEYXRhLmgKKysrIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViVmlldy9XZWJWaWV3
RGF0YS5oCkBAIC0yMTYsNyArMjE2LDcgQEAgcHJpdmF0ZToKICAgICBCT09MIHNob3VsZE1haW50
YWluSW5hY3RpdmVTZWxlY3Rpb247CiAKICAgICBCT09MIGFsbG93c1VuZG87Ci0gICAgICAgIAor
CiAgICAgZmxvYXQgem9vbU11bHRpcGxpZXI7CiAgICAgQk9PTCB6b29tc1RleHRPbmx5OwogCkBA
IC0yOTMsNyArMjkzLDYgQEAgcHJpdmF0ZToKICAgICBSZXRhaW5QdHI8TlNTdHJpbmc+IGRyYWdn
ZWRMaW5rVGl0bGU7CiAjZW5kaWYKIAotCiAjaWYgIVBMQVRGT1JNKElPU19GQU1JTFkpCiAgICAg
Ly8gV2ViS2l0IGhhcyBib3RoIGEgZ2xvYmFsIHBsdWctaW4gZGF0YWJhc2UgYW5kIGEgc2VwYXJh
dGUsIHBlciBXZWJWaWV3IHBsdWctaW4gZGF0YWJhc2UuIERhc2hib2FyZCB1c2VzIHRoZSBwZXIg
V2ViVmlldyBkYXRhYmFzZS4KICAgICBXZWJQbHVnaW5EYXRhYmFzZSAqcGx1Z2luRGF0YWJhc2U7
CkBAIC0zMjQsNiArMzIzLDEwIEBAIHByaXZhdGU6CiAgICAgVmVjdG9yPFJldGFpblB0cjxXZWJW
aWRlb0Z1bGxzY3JlZW5Db250cm9sbGVyPj4gZnVsbHNjcmVlbkNvbnRyb2xsZXJzRXhpdGluZzsK
ICNlbmRpZgogCisjaWYgRU5BQkxFKFZJREVPX1BSRVNFTlRBVElPTl9NT0RFKQorICAgIEJPT0wg
bW9ja1ZpZGVvUHJlc2VudGF0aW9uTW9kZUVuYWJsZWQ7CisjZW5kaWYKKwogI2lmIFBMQVRGT1JN
KE1BQykgJiYgRU5BQkxFKFZJREVPX1BSRVNFTlRBVElPTl9NT0RFKQogICAgIFJlZlB0cjxXZWJD
b3JlOjpQbGF5YmFja1Nlc3Npb25Nb2RlbE1lZGlhRWxlbWVudD4gcGxheWJhY2tTZXNzaW9uTW9k
ZWw7CiAgICAgUmVmUHRyPFdlYkNvcmU6OlBsYXliYWNrU2Vzc2lvbkludGVyZmFjZU1hYz4gcGxh
eWJhY2tTZXNzaW9uSW50ZXJmYWNlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdExlZ2FjeS9t
YWMvV2ViVmlldy9XZWJWaWV3SW50ZXJuYWwuaCBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dl
YlZpZXcvV2ViVmlld0ludGVybmFsLmgKaW5kZXggNTZjOGQ1NjI5MGRkY2VhNGE4YzljMGRjMDJm
MDhmZTlhNGI4ODg4YS4uNTI3NWYzMjg3ZTViMGExYjFmMzZmMmI1ZTNhZTk0ZTM1N2Q2YjFmMCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViVmlldy9XZWJWaWV3SW50ZXJu
YWwuaAorKysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3L1dlYlZpZXdJbnRlcm5h
bC5oCkBAIC0yNzMsMTQgKzI3MywxNyBAQCBPQkpDX0NMQVNTIE5TVGV4dEFsdGVybmF0aXZlczsK
IC0gKHZvaWQpX2ludmFsaWRhdGVVc2VyQWdlbnRDYWNoZTsKIAogI2lmIEVOQUJMRShWSURFTykg
JiYgZGVmaW5lZChfX2NwbHVzcGx1cykKKyNpZiBFTkFCTEUoVklERU9fUFJFU0VOVEFUSU9OX01P
REUpCistICh2b2lkKV9zZXRNb2NrVmlkZW9QcmVzZW50YXRpb25Nb2RlRW5hYmxlZDooQk9PTCll
bmFibGVkOwogLSAodm9pZClfZW50ZXJWaWRlb0Z1bGxzY3JlZW5Gb3JWaWRlb0VsZW1lbnQ6KE5h
a2VkUHRyPFdlYkNvcmU6OkhUTUxWaWRlb0VsZW1lbnQ+KXZpZGVvRWxlbWVudCBtb2RlOihXZWJD
b3JlOjpIVE1MTWVkaWFFbGVtZW50RW51bXM6OlZpZGVvRnVsbHNjcmVlbk1vZGUpbW9kZTsKIC0g
KHZvaWQpX2V4aXRWaWRlb0Z1bGxzY3JlZW47Ci0jaWYgUExBVEZPUk0oTUFDKSAmJiBFTkFCTEUo
VklERU9fUFJFU0VOVEFUSU9OX01PREUpCisjaWYgUExBVEZPUk0oTUFDKQogLSAoQk9PTClfaGFz
QWN0aXZlVmlkZW9Gb3JDb250cm9sc0ludGVyZmFjZTsKIC0gKHZvaWQpX3NldFVwUGxheWJhY2tD
b250cm9sc01hbmFnZXJGb3JNZWRpYUVsZW1lbnQ6KE5ha2VkUmVmPFdlYkNvcmU6OkhUTUxNZWRp
YUVsZW1lbnQ+KW1lZGlhRWxlbWVudDsKIC0gKHZvaWQpX2NsZWFyUGxheWJhY2tDb250cm9sc01h
bmFnZXI7CiAjZW5kaWYKICNlbmRpZgorI2VuZGlmCiAKICNpZiBFTkFCTEUoRlVMTFNDUkVFTl9B
UEkpICYmICFQTEFURk9STShJT1NfRkFNSUxZKSAmJiBkZWZpbmVkKF9fY3BsdXNwbHVzKQogLSAo
Qk9PTClfc3VwcG9ydHNGdWxsU2NyZWVuRm9yRWxlbWVudDooTmFrZWRQdHI8V2ViQ29yZTo6RWxl
bWVudD4pZWxlbWVudCB3aXRoS2V5Ym9hcmQ6KEJPT0wpd2l0aEtleWJvYXJkOwpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IDI4
NGU1NDhhODJkZjM4ZmMyMzkyYWNiMTU2ZmJlZTk5OTFiNDNlZmQuLmViNjcwMWI3ODRkYWM5YjNh
MDE1ZTFhMDIwMTI0ZmFlZmU1MDE5MGYgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxv
ZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxMyBAQAorMjAyMC0wNS0w
MSAgUGVuZyBMaXUgIDxwZW5nLmxpdTZAYXBwbGUuY29tPgorCisgICAgICAgIFVwZGF0ZSBXZWJL
aXRUZXN0UnVubmVyIHRvIHN1cHBvcnQgcnVubmluZyBtdWx0aXBsZSB2aWRlbyBmdWxsc2NyZWVu
IGFuZCBQaWN0dXJlLWluLVBpY3R1cmUgdGVzdHMgc2ltdWx0YW5lb3VzbHkKKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIwMzcyMworCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogbWVkaWEvdmlkZW8tcHJlc2Vu
dGF0aW9uLW1vZGUtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBtZWRpYS92aWRlby1w
cmVzZW50YXRpb24tbW9kZS5odG1sOiBBZGRlZC4KKwogMjAyMC0wNS0wMSAgRXJpYyBDYXJsc29u
ICA8ZXJpYy5jYXJsc29uQGFwcGxlLmNvbT4KIAogICAgICAgICBbTVNFXSBBdWRpbyBzZXNzaW9u
IGNhdGVnb3J5IGlzIHNvbWV0aW1lcyBub3Qgc2V0IGNvcnJlY3RseSBhZnRlciBjaGFuZ2luZyB2
aWRlbyBzb3VyY2UKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL21lZGlhL3ZpZGVvLXByZXNlbnRh
dGlvbi1tb2RlLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL21lZGlhL3ZpZGVvLXByZXNlbnRh
dGlvbi1tb2RlLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi41NTBlODUzZDdlNzNlZDgzMTM1ZmVi
OTJjNzA5OTU5Mzc5NmJkZmIwCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvbWVkaWEv
dmlkZW8tcHJlc2VudGF0aW9uLW1vZGUtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMzIgQEAKKwor
VGVzdCB0aGUgdmlkZW8gcHJlc2VudGF0aW9uIG1vZGUgKHZpZGVvIGZ1bGxzY3JlZW4gYW5kIHBp
Y3R1cmUtaW4tcGljdHVyZSkgQVBJLgorCisKK0VWRU5UKGNhbnBsYXl0aHJvdWdoKQorRVhQRUNU
RUQgKHZpZGVvLndlYmtpdFN1cHBvcnRzRnVsbHNjcmVlbiA9PSAndHJ1ZScpIE9LCitFWFBFQ1RF
RCAodmlkZW8ud2Via2l0RGlzcGxheWluZ0Z1bGxzY3JlZW4gPT0gJ2ZhbHNlJykgT0sKKworKiog
VHJ5IHRvIGVudGVyIGZ1bGxzY3JlZW4KK1JVTih2aWRlby53ZWJraXRTZXRQcmVzZW50YXRpb25N
b2RlKCdmdWxsc2NyZWVuJykpCitFVkVOVCh3ZWJraXRwcmVzZW50YXRpb25tb2RlY2hhbmdlZCkK
KworKiogRW50ZXJlZCBmdWxsc2NyZWVuCitFWFBFQ1RFRCAodmlkZW8ud2Via2l0UHJlc2VudGF0
aW9uTW9kZSA9PSAnZnVsbHNjcmVlbicpIE9LCisKKyoqIFRyeSB0byBlbnRlciBwaWN0dXJlLWlu
LXBpY3R1cmUKK1JVTih2aWRlby53ZWJraXRTZXRQcmVzZW50YXRpb25Nb2RlKCdwaWN0dXJlLWlu
LXBpY3R1cmUnKSkKK0VWRU5UKHdlYmtpdHByZXNlbnRhdGlvbm1vZGVjaGFuZ2VkKQorCisqKiBF
bnRlcmVkIHBpY3R1cmUtaW4tcGljdHVyCitFWFBFQ1RFRCAodmlkZW8ud2Via2l0UHJlc2VudGF0
aW9uTW9kZSA9PSAncGljdHVyZS1pbi1waWN0dXJlJykgT0sKKworKiogVHJ5IHRvIHJldHVybiB0
byBpbmxpbmUKK1JVTih2aWRlby53ZWJraXRTZXRQcmVzZW50YXRpb25Nb2RlKCdpbmxpbmUnKSkK
K0VWRU5UKHdlYmtpdHByZXNlbnRhdGlvbm1vZGVjaGFuZ2VkKQorCisqKiBSZXR1cm5lZCB0byBp
bmxpbmUKK0VYUEVDVEVEICh2aWRlby53ZWJraXRQcmVzZW50YXRpb25Nb2RlID09ICdpbmxpbmUn
KSBPSworCisqKiBUZXN0IENvbXBsZXRlZAorRU5EIE9GIFRFU1QKKwpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvbWVkaWEvdmlkZW8tcHJlc2VudGF0aW9uLW1vZGUuaHRtbCBiL0xheW91dFRlc3Rz
L21lZGlhL3ZpZGVvLXByZXNlbnRhdGlvbi1tb2RlLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uODkyZDg5MzI3
MDdhNDk5MDAwZjk5ZWMwYmQwMjkzYjE1NGIwZGU2NAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91
dFRlc3RzL21lZGlhL3ZpZGVvLXByZXNlbnRhdGlvbi1tb2RlLmh0bWwKQEAgLTAsMCArMSw2MyBA
QAorPCFkb2N0eXBlIGh0bWw+Cis8aHRtbD4KKyAgICA8aGVhZD4KKwkgICAgPHNjcmlwdCBzcmM9
bWVkaWEtZmlsZS5qcz48L3NjcmlwdD4KKwkgICAgPHNjcmlwdCBzcmM9dmlkZW8tdGVzdC5qcz48
L3NjcmlwdD4KKwkgICAgPHNjcmlwdD4KKyAgICAgICAgICAgIGZ1bmN0aW9uIHN0YXJ0KCkKKyAg
ICAgICAgICAgIHsKKwkgICAgICAgICAgICBpZiAod2luZG93LmludGVybmFscykgeworICAgICAg
ICAgICAgICAgICAgICB3aW5kb3cuaW50ZXJuYWxzLnNldHRpbmdzLnNldEFsbG93c1BpY3R1cmVJ
blBpY3R1cmVNZWRpYVBsYXliYWNrKHRydWUpOworICAgICAgICAgICAgICAgICAgICB3aW5kb3cu
aW50ZXJuYWxzLnNldE1vY2tWaWRlb1ByZXNlbnRhdGlvbk1vZGVFbmFibGVkKHRydWUpOworICAg
ICAgICAgICAgICAgIH0KKwkKKwkgICAgICAgICAgICB2aWRlbyA9IGRvY3VtZW50LmdldEVsZW1l
bnRzQnlUYWdOYW1lKCd2aWRlbycpWzBdOworCSAgICAgICAgICAgIHdhaXRGb3JFdmVudE9uY2Uo
ImNhbnBsYXl0aHJvdWdoIiwgY2FucGxheXRocm91Z2gpOworCSAgICAgICAgICAgIHZpZGVvLnNy
YyA9IGZpbmRNZWRpYUZpbGUoInZpZGVvIiwgImNvbnRlbnQvdGVzdCIpOworCisJICAgICAgICAg
ICAgY29uc29sZVdyaXRlKCIiKTsKKyAgICAgICAgICAgIH0KKwkKKwkgICAgICAgIGZ1bmN0aW9u
IGNhbnBsYXl0aHJvdWdoKCkKKwkgICAgICAgIHsKKwkgICAgICAgICAgICB0ZXN0RXhwZWN0ZWQo
InZpZGVvLndlYmtpdFN1cHBvcnRzRnVsbHNjcmVlbiIsIHRydWUpOworCSAgICAgICAgICAgIHRl
c3RFeHBlY3RlZCgidmlkZW8ud2Via2l0RGlzcGxheWluZ0Z1bGxzY3JlZW4iLCBmYWxzZSk7CisJ
CisJICAgICAgICAgICAgY29uc29sZVdyaXRlKCI8YnI+KiogVHJ5IHRvIGVudGVyIGZ1bGxzY3Jl
ZW4iKTsKKwkgICAgICAgICAgICBydW5XaXRoS2V5RG93bigidmlkZW8ud2Via2l0U2V0UHJlc2Vu
dGF0aW9uTW9kZSgnZnVsbHNjcmVlbicpIik7CisJICAgICAgICAgICAgd2FpdEZvckV2ZW50T25j
ZSgnd2Via2l0cHJlc2VudGF0aW9ubW9kZWNoYW5nZWQnLCBwcmVzZW50YXRpb25Nb2RlQ2hhbmdl
ZDEpOworCSAgICAgICAgfQorCQorCSAgICAgICAgZnVuY3Rpb24gcHJlc2VudGF0aW9uTW9kZUNo
YW5nZWQxKCkKKwkgICAgICAgIHsKKwkgICAgICAgICAgICBjb25zb2xlV3JpdGUoIjxicj4qKiBF
bnRlcmVkIGZ1bGxzY3JlZW4iKTsKKwkgICAgICAgICAgICB0ZXN0RXhwZWN0ZWQoInZpZGVvLndl
YmtpdFByZXNlbnRhdGlvbk1vZGUiLCAiZnVsbHNjcmVlbiIpOworCSAgICAgICAgICAgIGNvbnNv
bGVXcml0ZSgiPGJyPioqIFRyeSB0byBlbnRlciBwaWN0dXJlLWluLXBpY3R1cmUiKTsKKwkgICAg
ICAgICAgICB3YWl0Rm9yRXZlbnRPbmNlKCd3ZWJraXRwcmVzZW50YXRpb25tb2RlY2hhbmdlZCcs
IHByZXNlbnRhdGlvbk1vZGVDaGFuZ2VkMik7CisJICAgICAgICAgICAgcnVuV2l0aEtleURvd24o
InZpZGVvLndlYmtpdFNldFByZXNlbnRhdGlvbk1vZGUoJ3BpY3R1cmUtaW4tcGljdHVyZScpIik7
CisJICAgICAgICB9CisJCisJICAgICAgICBmdW5jdGlvbiBwcmVzZW50YXRpb25Nb2RlQ2hhbmdl
ZDIoKQorCSAgICAgICAgeworCSAgICAgICAgICAgIGNvbnNvbGVXcml0ZSgiPGJyPioqIEVudGVy
ZWQgcGljdHVyZS1pbi1waWN0dXIiKTsKKwkgICAgICAgICAgICB0ZXN0RXhwZWN0ZWQoInZpZGVv
LndlYmtpdFByZXNlbnRhdGlvbk1vZGUiLCAicGljdHVyZS1pbi1waWN0dXJlIik7CisJICAgICAg
ICAgICAgY29uc29sZVdyaXRlKCI8YnI+KiogVHJ5IHRvIHJldHVybiB0byBpbmxpbmUiKTsKKwkg
ICAgICAgICAgICB3YWl0Rm9yRXZlbnRPbmNlKCd3ZWJraXRwcmVzZW50YXRpb25tb2RlY2hhbmdl
ZCcsIHRlc3RDb21wbGV0ZWQpOworCSAgICAgICAgICAgIHJ1bldpdGhLZXlEb3duKCJ2aWRlby53
ZWJraXRTZXRQcmVzZW50YXRpb25Nb2RlKCdpbmxpbmUnKSIpOworCSAgICAgICAgfQorCQorCSAg
ICAgICAgZnVuY3Rpb24gdGVzdENvbXBsZXRlZCgpCisJICAgICAgICB7CisJICAgICAgICAgICAg
Y29uc29sZVdyaXRlKCI8YnI+KiogUmV0dXJuZWQgdG8gaW5saW5lIik7CisJICAgICAgICAgICAg
dGVzdEV4cGVjdGVkKCJ2aWRlby53ZWJraXRQcmVzZW50YXRpb25Nb2RlIiwgImlubGluZSIpOwor
CSAgICAgICAgICAgIGNvbnNvbGVXcml0ZSgiPGJyPioqIFRlc3QgQ29tcGxldGVkIik7CisJICAg
ICAgICAgICAgZW5kVGVzdCgpOworCSAgICAgICAgfQorCSAgICA8L3NjcmlwdD4KKwk8L2hlYWQ+
CisJCisJPGJvZHkgb25sb2FkPSJzdGFydCgpIj4KKwkgICAgPHZpZGVvIGNvbnRyb2xzIHBsYXlz
aW5saW5lPjwvdmlkZW8+CisJICAgIDxwPlRlc3QgdGhlIHZpZGVvIHByZXNlbnRhdGlvbiBtb2Rl
ICh2aWRlbyBmdWxsc2NyZWVuIGFuZCBwaWN0dXJlLWluLXBpY3R1cmUpIEFQSS48L3A+CisJPC9i
b2R5PgorPC9odG1sPgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>398410</attachid>
            <date>2020-05-04 14:04:12 -0700</date>
            <delta_ts>2020-05-05 13:42:55 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-203723-20200504140411.patch</filename>
            <type>text/plain</type>
            <size>32314</size>
            <attacher name="Peng Liu">peng.liu6</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjYxMDg3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMWRiNDVhMTkzYjFlZDVk
MGQ5NzBhNzZjMTdkOGFmNGIxYTg4MjdkNS4uYTMwMjkyYzUyODY4MDVmNDZmNzZkNzk0MmM4M2Q0
NGEwMGUzY2UxYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIyIEBACisyMDIwLTA1LTA0ICBQZW5n
IExpdSAgPHBlbmcubGl1NkBhcHBsZS5jb20+CisKKyAgICAgICAgVXBkYXRlIFdlYktpdFRlc3RS
dW5uZXIgdG8gc3VwcG9ydCBydW5uaW5nIG11bHRpcGxlIHZpZGVvIGZ1bGxzY3JlZW4gYW5kIFBp
Y3R1cmUtaW4tUGljdHVyZSB0ZXN0cyBzaW11bHRhbmVvdXNseQorICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjAzNzIzCisKKyAgICAgICAgUmV2aWV3ZWQg
YnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVGVzdDogbWVkaWEvdmlkZW8tcHJlc2VudGF0
aW9uLW1vZGUuaHRtbAorCisgICAgICAgIEFkZCBhIGZsYWcgTW9ja1ZpZGVvUHJlc2VudGF0aW9u
TW9kZUVuYWJsZWQgdG8gImludGVybmFscyIgZm9yIHZpZGVvIGZ1bGxzY3JlZW4KKyAgICAgICAg
YW5kIHBpY3R1cmUtaW4tcGljdHVyZSB0ZXN0cy4KKworICAgICAgICAqIHBhZ2UvQ2hyb21lQ2xp
ZW50Lmg6CisgICAgICAgIChXZWJDb3JlOjpDaHJvbWVDbGllbnQ6OnNldE1vY2tWaWRlb1ByZXNl
bnRhdGlvbk1vZGVFbmFibGVkKToKKyAgICAgICAgKiB0ZXN0aW5nL0ludGVybmFscy5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpJbnRlcm5hbHM6OnNldE1vY2tWaWRlb1ByZXNlbnRhdGlvbk1vZGVF
bmFibGVkKToKKyAgICAgICAgKiB0ZXN0aW5nL0ludGVybmFscy5oOgorICAgICAgICAqIHRlc3Rp
bmcvSW50ZXJuYWxzLmlkbDoKKwogMjAyMC0wNS0wNCAgQW50b2luZSBRdWludCAgPGdyYW91dHNA
YXBwbGUuY29tPgogCiAgICAgICAgIE1lZGlhIGNvbnRyb2xzIHRyYWNrcyBtZW51IHNob3dzICJB
dXRvIiBzZWxlY3RlZCBpbnN0ZWFkIG9mIHRyYWNrIHNlbGVjdGVkIHZpYSB0aGUgSlMgQVBJCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdl
TG9nCmluZGV4IDc0NjJmZGQ3ZDAxM2MzNmVhNzMyZmFmZDEwODA5MDMyYTU4NGZkNTUuLjAxYjhh
NzE0NDVjODNlNzVjMTVmOTkwYjg3MWU3NDExZjM2MmU5OGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEs
NDEgQEAKKzIwMjAtMDUtMDQgIFBlbmcgTGl1ICA8cGVuZy5saXU2QGFwcGxlLmNvbT4KKworICAg
ICAgICBVcGRhdGUgV2ViS2l0VGVzdFJ1bm5lciB0byBzdXBwb3J0IHJ1bm5pbmcgbXVsdGlwbGUg
dmlkZW8gZnVsbHNjcmVlbiBhbmQgUGljdHVyZS1pbi1QaWN0dXJlIHRlc3RzIHNpbXVsdGFuZW91
c2x5CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDM3
MjMKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBXaGVu
IHRoZSBmbGFnIE1vY2tWaWRlb1ByZXNlbnRhdGlvbk1vZGVFbmFibGVkIGlzIHRydWUsIHRoZSBW
aWRlb0Z1bGxzY3JlZW5NYW5hZ2VyUHJveHkgaW4gdGhlIFVJIHByb2Nlc3MKKyAgICAgICAgd2ls
bCBtb2NrIHRoZSBiZWhhdmlvciBvZiB0aGUgVmlkZW9GdWxsc2NyZWVuSW50ZXJmYWNlW01hY3xB
VktpdF0uCisKKyAgICAgICAgKiBVSVByb2Nlc3MvQ29jb2EvVmlkZW9GdWxsc2NyZWVuTWFuYWdl
clByb3h5Lmg6CisgICAgICAgIChXZWJLaXQ6OlZpZGVvRnVsbHNjcmVlbk1hbmFnZXJQcm94eTo6
c2V0TW9ja1ZpZGVvUHJlc2VudGF0aW9uTW9kZUVuYWJsZWQpOgorICAgICAgICAqIFVJUHJvY2Vz
cy9Db2NvYS9WaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyUHJveHkubW06CisgICAgICAgIChXZWJLaXQ6
OlZpZGVvRnVsbHNjcmVlbk1hbmFnZXJQcm94eTo6cmVxdWVzdEhpZGVBbmRFeGl0RnVsbHNjcmVl
bik6CisgICAgICAgIChXZWJLaXQ6OlZpZGVvRnVsbHNjcmVlbk1hbmFnZXJQcm94eTo6YXBwbGlj
YXRpb25EaWRCZWNvbWVBY3RpdmUpOgorICAgICAgICAoV2ViS2l0OjpWaWRlb0Z1bGxzY3JlZW5N
YW5hZ2VyUHJveHk6OnNldHVwRnVsbHNjcmVlbldpdGhJRCk6CisgICAgICAgIChXZWJLaXQ6OlZp
ZGVvRnVsbHNjcmVlbk1hbmFnZXJQcm94eTo6c2V0SGFzVmlkZW8pOgorICAgICAgICAoV2ViS2l0
OjpWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyUHJveHk6OnNldFZpZGVvRGltZW5zaW9ucyk6CisgICAg
ICAgIChXZWJLaXQ6OlZpZGVvRnVsbHNjcmVlbk1hbmFnZXJQcm94eTo6ZW50ZXJGdWxsc2NyZWVu
KToKKyAgICAgICAgKFdlYktpdDo6VmlkZW9GdWxsc2NyZWVuTWFuYWdlclByb3h5OjpleGl0RnVs
bHNjcmVlbik6CisgICAgICAgIChXZWJLaXQ6OlZpZGVvRnVsbHNjcmVlbk1hbmFnZXJQcm94eTo6
ZXhpdEZ1bGxzY3JlZW5XaXRob3V0QW5pbWF0aW9uVG9Nb2RlKToKKyAgICAgICAgKFdlYktpdDo6
VmlkZW9GdWxsc2NyZWVuTWFuYWdlclByb3h5OjpzZXRJbmxpbmVSZWN0KToKKyAgICAgICAgKFdl
YktpdDo6VmlkZW9GdWxsc2NyZWVuTWFuYWdlclByb3h5OjpzZXRIYXNWaWRlb0NvbnRlbnRMYXll
cik6CisgICAgICAgIChXZWJLaXQ6OlZpZGVvRnVsbHNjcmVlbk1hbmFnZXJQcm94eTo6Y2xlYW51
cEZ1bGxzY3JlZW4pOgorICAgICAgICAoV2ViS2l0OjpWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyUHJv
eHk6OnByZXBhcmVkVG9SZXR1cm5Ub0lubGluZSk6CisgICAgICAgIChXZWJLaXQ6OlZpZGVvRnVs
bHNjcmVlbk1hbmFnZXJQcm94eTo6cHJlcGFyZWRUb0V4aXRGdWxsc2NyZWVuKToKKyAgICAgICAg
KiBVSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVBy
b3h5OjpkaWRBdHRhY2hUb1J1bm5pbmdQcm9jZXNzKToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFn
ZVByb3h5OjpzZXRNb2NrVmlkZW9QcmVzZW50YXRpb25Nb2RlRW5hYmxlZCk6CisgICAgICAgICog
VUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQYWdlUHJv
eHkubWVzc2FnZXMuaW46CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJD
aHJvbWVDbGllbnQuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJDaHJvbWVDbGllbnQ6OnNldE1v
Y2tWaWRlb1ByZXNlbnRhdGlvbk1vZGVFbmFibGVkKToKKyAgICAgICAgKFdlYktpdDo6V2ViQ2hy
b21lQ2xpZW50OjpzZXRVcFBsYXliYWNrQ29udHJvbHNNYW5hZ2VyKToKKyAgICAgICAgKFdlYktp
dDo6V2ViQ2hyb21lQ2xpZW50OjpjbGVhclBsYXliYWNrQ29udHJvbHNNYW5hZ2VyKToKKyAgICAg
ICAgKiBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5oOgorICAgICAg
ICAqIFdlYlByb2Nlc3MvY29jb2EvVmlkZW9GdWxsc2NyZWVuTWFuYWdlci5oOgorCiAyMDIwLTA1
LTA0ICBZdXN1a2UgU3V6dWtpICA8eXN1enVraUBhcHBsZS5jb20+CiAKICAgICAgICAgVW5yZXZp
ZXdlZCwgc3BlY3VsYXRpdmUgYnVpbGQgZml4IGZvciByMjYxMDcxCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0TGVnYWN5L21hYy9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9D
aGFuZ2VMb2cKaW5kZXggMDIxYzE5N2JhOGJmM2FhMzNlYjdlZDk3NzdhMThkOGExNjQ4MmNmOS4u
Mzc5NTczZWU0NDczZmFjMzE4MDA3OWEzYzQ5MmIyZDNmMWE0NmZlZiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdExlZ2FjeS9tYWMvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kv
bWFjL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIxIEBACisyMDIwLTA1LTA0ICBQZW5nIExpdSAgPHBl
bmcubGl1NkBhcHBsZS5jb20+CisKKyAgICAgICAgVXBkYXRlIFdlYktpdFRlc3RSdW5uZXIgdG8g
c3VwcG9ydCBydW5uaW5nIG11bHRpcGxlIHZpZGVvIGZ1bGxzY3JlZW4gYW5kIFBpY3R1cmUtaW4t
UGljdHVyZSB0ZXN0cyBzaW11bHRhbmVvdXNseQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjAzNzIzCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZ
IChPT1BTISkuCisKKyAgICAgICAgV2hlbiB0aGUgZmxhZyBNb2NrVmlkZW9QcmVzZW50YXRpb25N
b2RlRW5hYmxlZCBpcyB0cnVlLCBXZWJWaWV3IHdpbGwgaWdub3JlIHRoZSByZXF1ZXN0cyB0bwor
ICAgICAgICBXZWJWaWRlb0Z1bGxzY3JlZW5Db250cm9sbGVyLCBzbyB0aGF0IHRoZSBEdW1wUmVu
ZGVyVHJlZSBjYW4gcnVuIG11bHRpcGxlIHZpZGVvIGZ1bGxzY3JlZW4KKyAgICAgICAgYW5kIHBp
Y3R1cmUtaW4tcGljdHVyZSB0ZXN0cyBpbiBwYXJhbGxlbC4KKworICAgICAgICAqIFdlYkNvcmVT
dXBwb3J0L1dlYkNocm9tZUNsaWVudC5oOgorICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L1dlYkNo
cm9tZUNsaWVudC5tbToKKyAgICAgICAgKFdlYkNocm9tZUNsaWVudDo6c2V0TW9ja1ZpZGVvUHJl
c2VudGF0aW9uTW9kZUVuYWJsZWQpOgorICAgICAgICAqIFdlYlZpZXcvV2ViVmlldy5tbToKKyAg
ICAgICAgKiBXZWJWaWV3L1dlYlZpZXdEYXRhLmg6CisgICAgICAgICogV2ViVmlldy9XZWJWaWV3
SW50ZXJuYWwuaDoKKwogMjAyMC0wNS0wNCAgRW1pbGlvIENvYm9zIMOBbHZhcmV6ICA8ZW1pbGlv
QGNyaXNhbC5pbz4KIAogICAgICAgICBQdXQgbGggLyBybGggdW5pdHMgYmVoaW5kIGEgZmxhZyB1
bnRpbCBidWcgMjExMzUxIGlzIHNvcnRlZCBvdXQuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wYWdlL0Nocm9tZUNsaWVudC5oIGIvU291cmNlL1dlYkNvcmUvcGFnZS9DaHJvbWVDbGllbnQu
aAppbmRleCA3NThkM2M2NmMzNDAzMzIzMTQ1OTQ1NWJiNGVlODE3YTEyMzRlM2I0Li4zNDNkYTJj
MTIzODUyMWE4NjljMmE4YTc3YTczYWJkMjk1ZDRiNjUxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9wYWdlL0Nocm9tZUNsaWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvQ2hyb21l
Q2xpZW50LmgKQEAgLTM3OCw2ICszNzgsMTAgQEAgcHVibGljOgogICAgIHZpcnR1YWwgdm9pZCBz
ZXRSb290RnVsbFNjcmVlbkxheWVyKEdyYXBoaWNzTGF5ZXIqKSB7IH0KICNlbmRpZgogCisjaWYg
RU5BQkxFKFZJREVPX1BSRVNFTlRBVElPTl9NT0RFKQorICAgIHZpcnR1YWwgdm9pZCBzZXRNb2Nr
VmlkZW9QcmVzZW50YXRpb25Nb2RlRW5hYmxlZChib29sKSB7IH0KKyNlbmRpZgorCiAjaWYgVVNF
KENPT1JESU5BVEVEX0dSQVBISUNTKQogICAgIHZpcnR1YWwgSW50UmVjdCB2aXNpYmxlUmVjdEZv
clRpbGVkQmFja2luZ1N0b3JlKCkgY29uc3QgeyByZXR1cm4gSW50UmVjdCgpOyB9CiAjZW5kaWYK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmNwcAppbmRleCA5OWM2NTAwNmE0MTIxYjk4ZWJj
YzcyMDJjNjJlNjc3MGVmNDNkY2IyLi5jODg3NTE2MTVjZjkwNDQ2MDlkM2M2ZTUxYzdhMGU4NjA0
ZGQ2YWYxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuY3BwCkBAIC0zMjcyLDYgKzMy
NzIsMTcgQEAgdm9pZCBJbnRlcm5hbHM6OnNldEZ1bGxzY3JlZW5Db250cm9sc0hpZGRlbihib29s
IGhpZGRlbikKICAgICBwYWdlLT5zZXRGdWxsc2NyZWVuQ29udHJvbHNIaWRkZW4oaGlkZGVuKTsK
IH0KIAorI2lmIEVOQUJMRShWSURFT19QUkVTRU5UQVRJT05fTU9ERSkKK3ZvaWQgSW50ZXJuYWxz
OjpzZXRNb2NrVmlkZW9QcmVzZW50YXRpb25Nb2RlRW5hYmxlZChib29sIGVuYWJsZWQpCit7Cisg
ICAgRG9jdW1lbnQqIGRvY3VtZW50ID0gY29udGV4dERvY3VtZW50KCk7CisgICAgaWYgKCFkb2N1
bWVudCB8fCAhZG9jdW1lbnQtPnBhZ2UoKSkKKyAgICAgICAgcmV0dXJuOworCisgICAgZG9jdW1l
bnQtPnBhZ2UoKS0+Y2hyb21lKCkuY2xpZW50KCkuc2V0TW9ja1ZpZGVvUHJlc2VudGF0aW9uTW9k
ZUVuYWJsZWQoZW5hYmxlZCk7Cit9CisjZW5kaWYKKwogdm9pZCBJbnRlcm5hbHM6OnNldEFwcGxp
Y2F0aW9uQ2FjaGVPcmlnaW5RdW90YSh1bnNpZ25lZCBsb25nIGxvbmcgcXVvdGEpCiB7CiAgICAg
RG9jdW1lbnQqIGRvY3VtZW50ID0gY29udGV4dERvY3VtZW50KCk7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5oIGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9J
bnRlcm5hbHMuaAppbmRleCBjNDJiNmM3NmM0Nzc3ZWY4NmMzYjEzMTMyNDBlNGQzNWE1Nzk3OTNl
Li5iZDNmZDRlNGQ1MTEzZmJkNTc2Y2VhOWE1ZDFkYTlmMDg1ODVhMGJiIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Rl
c3RpbmcvSW50ZXJuYWxzLmgKQEAgLTQ5Nyw2ICs0OTcsMTAgQEAgcHVibGljOgogICAgIHZvaWQg
c2V0RnVsbHNjcmVlbkF1dG9IaWRlRHVyYXRpb24oZG91YmxlKTsKICAgICB2b2lkIHNldEZ1bGxz
Y3JlZW5Db250cm9sc0hpZGRlbihib29sKTsKIAorI2lmIEVOQUJMRShWSURFT19QUkVTRU5UQVRJ
T05fTU9ERSkKKyAgICB2b2lkIHNldE1vY2tWaWRlb1ByZXNlbnRhdGlvbk1vZGVFbmFibGVkKGJv
b2wpOworI2VuZGlmCisKICAgICBXRUJDT1JFX1RFU1RTVVBQT1JUX0VYUE9SVCB2b2lkIHNldEFw
cGxpY2F0aW9uQ2FjaGVPcmlnaW5RdW90YSh1bnNpZ25lZCBsb25nIGxvbmcpOwogCiAgICAgdm9p
ZCByZWdpc3RlclVSTFNjaGVtZUFzQnlwYXNzaW5nQ29udGVudFNlY3VyaXR5UG9saWN5KGNvbnN0
IFN0cmluZyYgc2NoZW1lKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50
ZXJuYWxzLmlkbCBiL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmlkbAppbmRleCA5
MzE2OGY3MzE5ZTE0ZTU1YjNjZjM1YWNhOWE2NzMzNzNkNzI2ZDc4Li43ZGNmNDVlY2E3OWI5ZjAy
ZmE3ZDZlODc4OWIyMjI2MDBmY2QxMTYwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS90ZXN0
aW5nL0ludGVybmFscy5pZGwKKysrIGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMu
aWRsCkBAIC01MzMsNiArNTMzLDggQEAgZW51bSBDb21wb3NpdGluZ1BvbGljeSB7CiAgICAgdm9p
ZCBzZXRGdWxsc2NyZWVuQXV0b0hpZGVEdXJhdGlvbihkb3VibGUgZHVyYXRpb24pOwogICAgIHZv
aWQgc2V0RnVsbHNjcmVlbkNvbnRyb2xzSGlkZGVuKGJvb2xlYW4gaGlkZGVuKTsKIAorICAgIFtD
b25kaXRpb25hbD1WSURFT19QUkVTRU5UQVRJT05fTU9ERV0gdm9pZCBzZXRNb2NrVmlkZW9QcmVz
ZW50YXRpb25Nb2RlRW5hYmxlZChib29sZWFuIGVuYWJsZWQpOworCiAgICAgdm9pZCBzZXRBcHBs
aWNhdGlvbkNhY2hlT3JpZ2luUXVvdGEodW5zaWduZWQgbG9uZyBsb25nIHF1b3RhKTsKIAogICAg
IHZvaWQgcmVnaXN0ZXJVUkxTY2hlbWVBc0J5cGFzc2luZ0NvbnRlbnRTZWN1cml0eVBvbGljeShE
T01TdHJpbmcgc2NoZW1lKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0Nv
Y29hL1ZpZGVvRnVsbHNjcmVlbk1hbmFnZXJQcm94eS5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvQ29jb2EvVmlkZW9GdWxsc2NyZWVuTWFuYWdlclByb3h5LmgKaW5kZXggZmJlNThjMGRmY2Ex
ZTg0OWFkN2Q2Y2YwNjdlYzdjYjU4YjEwZTE0Yy4uOWJlOTBhMjQ2MzEyZDMzMDE2NDI2MzBmMDhi
MWRkZTZkOTIzNzcxOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2Ev
VmlkZW9GdWxsc2NyZWVuTWFuYWdlclByb3h5LmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvQ29jb2EvVmlkZW9GdWxsc2NyZWVuTWFuYWdlclByb3h5LmgKQEAgLTEzMCw2ICsxMzAsOCBA
QCBwdWJsaWM6CiAgICAgdm9pZCBhcHBsaWNhdGlvbkRpZEJlY29tZUFjdGl2ZSgpOwogICAgIGJv
b2wgaXNWaXNpYmxlKCkgY29uc3Q7CiAKKyAgICB2b2lkIHNldE1vY2tWaWRlb1ByZXNlbnRhdGlv
bk1vZGVFbmFibGVkKGJvb2wgZW5hYmxlZCkgeyBtX3NldE1vY2tWaWRlb1ByZXNlbnRhdGlvbk1v
ZGVFbmFibGVkID0gZW5hYmxlZDsgfQorCiAgICAgdm9pZCByZXF1ZXN0Um91dGVTaGFyaW5nUG9s
aWN5QW5kQ29udGV4dFVJRCh1aW50NjRfdCBjb250ZXh0SWQsIENvbXBsZXRpb25IYW5kbGVyPHZv
aWQoV2ViQ29yZTo6Um91dGVTaGFyaW5nUG9saWN5LCBTdHJpbmcpPiYmKTsKIAogICAgIGJvb2wg
aXNQbGF5aW5nVmlkZW9JbkVuaGFuY2VkRnVsbHNjcmVlbigpIGNvbnN0OwpAQCAtMTgwLDYgKzE4
Miw4IEBAIHByaXZhdGU6CiAgICAgdm9pZCBmdWxsc2NyZWVuTW9kZUNoYW5nZWQodWludDY0X3Qg
Y29udGV4dElkLCBXZWJDb3JlOjpIVE1MTWVkaWFFbGVtZW50RW51bXM6OlZpZGVvRnVsbHNjcmVl
bk1vZGUpOwogICAgIHZvaWQgZnVsbHNjcmVlbk1heVJldHVyblRvSW5saW5lKHVpbnQ2NF90IGNv
bnRleHRJZCk7CiAKKyAgICBib29sIG1fc2V0TW9ja1ZpZGVvUHJlc2VudGF0aW9uTW9kZUVuYWJs
ZWQgeyBmYWxzZSB9OworCiAgICAgV2ViUGFnZVByb3h5KiBtX3BhZ2U7CiAgICAgUmVmPFBsYXli
YWNrU2Vzc2lvbk1hbmFnZXJQcm94eT4gbV9wbGF5YmFja1Nlc3Npb25NYW5hZ2VyUHJveHk7CiAg
ICAgSGFzaE1hcDx1aW50NjRfdCwgTW9kZWxJbnRlcmZhY2VUdXBsZT4gbV9jb250ZXh0TWFwOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvVmlkZW9GdWxsc2NyZWVu
TWFuYWdlclByb3h5Lm1tIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvVmlkZW9GdWxs
c2NyZWVuTWFuYWdlclByb3h5Lm1tCmluZGV4IDFkZjVkOTI4MmI2ZTYzMTU1NTRmYjQzOTcwZDdj
YmQ3OTgwN2M1Y2QuLjJlY2VlZmQ3YmQ2ODBhNzA3YjA5ZGRiMmIyYmU3ZDdhOGUxMDAzOWMgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1ZpZGVvRnVsbHNjcmVlbk1h
bmFnZXJQcm94eS5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9WaWRlb0Z1
bGxzY3JlZW5NYW5hZ2VyUHJveHkubW0KQEAgLTE1MCwxMiArMTUwLDEwIEBAIGJvb2wgVmlkZW9G
dWxsc2NyZWVuTWFuYWdlclByb3h5OjptYXlBdXRvbWF0aWNhbGx5U2hvd1ZpZGVvUGljdHVyZUlu
UGljdHVyZSgpIGNvCiAKIHZvaWQgVmlkZW9GdWxsc2NyZWVuTWFuYWdlclByb3h5OjpyZXF1ZXN0
SGlkZUFuZEV4aXRGdWxsc2NyZWVuKCkKIHsKLQogfQogCiB2b2lkIFZpZGVvRnVsbHNjcmVlbk1h
bmFnZXJQcm94eTo6YXBwbGljYXRpb25EaWRCZWNvbWVBY3RpdmUoKQogewotCiB9CiAjZWxzZQog
CkBAIC00OTcsNiArNDk1LDE1IEBAIHZvaWQgVmlkZW9GdWxsc2NyZWVuTWFuYWdlclByb3h5Ojpz
ZXR1cEZ1bGxzY3JlZW5XaXRoSUQodWludDY0X3QgY29udGV4dElkLCB1aW50CiAgICAgYXV0byYg
W21vZGVsLCBpbnRlcmZhY2VdID0gZW5zdXJlTW9kZWxBbmRJbnRlcmZhY2UoY29udGV4dElkKTsK
ICAgICBhZGRDbGllbnRGb3JDb250ZXh0KGNvbnRleHRJZCk7CiAKKyAgICBpZiAobV9zZXRNb2Nr
VmlkZW9QcmVzZW50YXRpb25Nb2RlRW5hYmxlZCkgeworI2lmIFBMQVRGT1JNKElPU19GQU1JTFkp
CisgICAgICAgIHJlcXVlc3RWaWRlb0NvbnRlbnRMYXllcihjb250ZXh0SWQpOworI2Vsc2UKKyAg
ICAgICAgZGlkU2V0dXBGdWxsc2NyZWVuKGNvbnRleHRJZCk7CisjZW5kaWYKKyAgICAgICAgcmV0
dXJuOworICAgIH0KKwogICAgIFJldGFpblB0cjxXS0xheWVySG9zdFZpZXc+IHZpZXcgPSBzdGF0
aWNfY2FzdDxXS0xheWVySG9zdFZpZXcqPihtb2RlbC0+bGF5ZXJIb3N0VmlldygpKTsKICAgICBp
ZiAoIXZpZXcpIHsKICAgICAgICAgdmlldyA9IGFkb3B0TlMoW1tXS0xheWVySG9zdFZpZXcgYWxs
b2NdIGluaXRdKTsKQEAgLTUyNywxOCArNTM0LDI4IEBAIHZvaWQgVmlkZW9GdWxsc2NyZWVuTWFu
YWdlclByb3h5OjpzZXR1cEZ1bGxzY3JlZW5XaXRoSUQodWludDY0X3QgY29udGV4dElkLCB1aW50
CiB2b2lkIFZpZGVvRnVsbHNjcmVlbk1hbmFnZXJQcm94eTo6c2V0SGFzVmlkZW8odWludDY0X3Qg
Y29udGV4dElkLCBib29sIGhhc1ZpZGVvKQogewogICAgIE1FU1NBR0VfQ0hFQ0tfQ09OVEVYVElE
KGNvbnRleHRJZCk7CisgICAgaWYgKG1fc2V0TW9ja1ZpZGVvUHJlc2VudGF0aW9uTW9kZUVuYWJs
ZWQpCisgICAgICAgIHJldHVybjsKKwogICAgIGVuc3VyZUludGVyZmFjZShjb250ZXh0SWQpLmhh
c1ZpZGVvQ2hhbmdlZChoYXNWaWRlbyk7CiB9CiAKIHZvaWQgVmlkZW9GdWxsc2NyZWVuTWFuYWdl
clByb3h5OjpzZXRWaWRlb0RpbWVuc2lvbnModWludDY0X3QgY29udGV4dElkLCBjb25zdCBGbG9h
dFNpemUmIHZpZGVvRGltZW5zaW9ucykKIHsKICAgICBNRVNTQUdFX0NIRUNLX0NPTlRFWFRJRChj
b250ZXh0SWQpOworICAgIGlmIChtX3NldE1vY2tWaWRlb1ByZXNlbnRhdGlvbk1vZGVFbmFibGVk
KQorICAgICAgICByZXR1cm47CisKICAgICBlbnN1cmVJbnRlcmZhY2UoY29udGV4dElkKS52aWRl
b0RpbWVuc2lvbnNDaGFuZ2VkKHZpZGVvRGltZW5zaW9ucyk7CiB9CiAKIHZvaWQgVmlkZW9GdWxs
c2NyZWVuTWFuYWdlclByb3h5OjplbnRlckZ1bGxzY3JlZW4odWludDY0X3QgY29udGV4dElkKQog
ewogICAgIE1FU1NBR0VfQ0hFQ0tfQ09OVEVYVElEKGNvbnRleHRJZCk7CisgICAgaWYgKG1fc2V0
TW9ja1ZpZGVvUHJlc2VudGF0aW9uTW9kZUVuYWJsZWQpIHsKKyAgICAgICAgZGlkRW50ZXJGdWxs
c2NyZWVuKGNvbnRleHRJZCk7CisgICAgICAgIHJldHVybjsKKyAgICB9CiAKICAgICBhdXRvJiBp
bnRlcmZhY2UgPSBlbnN1cmVJbnRlcmZhY2UoY29udGV4dElkKTsKICAgICBpbnRlcmZhY2UuZW50
ZXJGdWxsc2NyZWVuKCk7CkBAIC01NjMsMTEgKzU4MCwyMyBAQCB2b2lkIFZpZGVvRnVsbHNjcmVl
bk1hbmFnZXJQcm94eTo6ZXhpdEZ1bGxzY3JlZW4odWludDY0X3QgY29udGV4dElkLCBXZWJDb3Jl
OjpJbgogICAgIGlmICghbV9jb250ZXh0TWFwLmNvbnRhaW5zKGNvbnRleHRJZCkpCiAgICAgICAg
IHJldHVybjsKIAorI2lmICFQTEFURk9STShJT1NfRkFNSUxZKQorICAgIEludFJlY3QgZmluYWxX
aW5kb3dSZWN0OworICAgIG1fcGFnZS0+cm9vdFZpZXdUb1dpbmRvdyhmaW5hbFJlY3QsIGZpbmFs
V2luZG93UmVjdCk7CisjZW5kaWYKKworICAgIGlmIChtX3NldE1vY2tWaWRlb1ByZXNlbnRhdGlv
bk1vZGVFbmFibGVkKSB7CisjaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKKyAgICAgICAgcmV0dXJu
VmlkZW9Db250ZW50TGF5ZXIoY29udGV4dElkKTsKKyNlbHNlCisgICAgICAgIGRpZEV4aXRGdWxs
c2NyZWVuKGNvbnRleHRJZCk7CisjZW5kaWYKKyAgICAgICAgcmV0dXJuOworICAgIH0KKwogI2lm
IFBMQVRGT1JNKElPU19GQU1JTFkpCiAgICAgZW5zdXJlSW50ZXJmYWNlKGNvbnRleHRJZCkuZXhp
dEZ1bGxzY3JlZW4oZmluYWxSZWN0KTsKICNlbHNlCi0gICAgSW50UmVjdCBmaW5hbFdpbmRvd1Jl
Y3Q7Ci0gICAgbV9wYWdlLT5yb290Vmlld1RvV2luZG93KGZpbmFsUmVjdCwgZmluYWxXaW5kb3dS
ZWN0KTsKICAgICBlbnN1cmVJbnRlcmZhY2UoY29udGV4dElkKS5leGl0RnVsbHNjcmVlbihmaW5h
bFdpbmRvd1JlY3QsIG1fcGFnZS0+cGxhdGZvcm1XaW5kb3coKSk7CiAjZW5kaWYKIH0KQEAgLTU3
NSw2ICs2MDQsOSBAQCB2b2lkIFZpZGVvRnVsbHNjcmVlbk1hbmFnZXJQcm94eTo6ZXhpdEZ1bGxz
Y3JlZW4odWludDY0X3QgY29udGV4dElkLCBXZWJDb3JlOjpJbgogdm9pZCBWaWRlb0Z1bGxzY3Jl
ZW5NYW5hZ2VyUHJveHk6OmV4aXRGdWxsc2NyZWVuV2l0aG91dEFuaW1hdGlvblRvTW9kZSh1aW50
NjRfdCBjb250ZXh0SWQsIFdlYkNvcmU6OkhUTUxNZWRpYUVsZW1lbnRFbnVtczo6VmlkZW9GdWxs
c2NyZWVuTW9kZSB0YXJnZXRNb2RlKQogewogICAgIE1FU1NBR0VfQ0hFQ0tfQ09OVEVYVElEKGNv
bnRleHRJZCk7CisgICAgaWYgKG1fc2V0TW9ja1ZpZGVvUHJlc2VudGF0aW9uTW9kZUVuYWJsZWQp
CisgICAgICAgIHJldHVybjsKKwogI2lmIFBMQVRGT1JNKE1BQykKICAgICBlbnN1cmVJbnRlcmZh
Y2UoY29udGV4dElkKS5leGl0RnVsbHNjcmVlbldpdGhvdXRBbmltYXRpb25Ub01vZGUodGFyZ2V0
TW9kZSk7CiAjZWxzZQpAQCAtNTkyLDEyICs2MjQsMjQgQEAgdm9pZCBWaWRlb0Z1bGxzY3JlZW5N
YW5hZ2VyUHJveHk6OmV4aXRGdWxsc2NyZWVuV2l0aG91dEFuaW1hdGlvblRvTW9kZSh1aW50NjRf
dAogdm9pZCBWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyUHJveHk6OnNldElubGluZVJlY3QodWludDY0
X3QgY29udGV4dElkLCBjb25zdCBXZWJDb3JlOjpJbnRSZWN0JiBpbmxpbmVSZWN0LCBib29sIHZp
c2libGUpCiB7CiAgICAgTUVTU0FHRV9DSEVDS19DT05URVhUSUQoY29udGV4dElkKTsKKyAgICBp
ZiAobV9zZXRNb2NrVmlkZW9QcmVzZW50YXRpb25Nb2RlRW5hYmxlZCkKKyAgICAgICAgcmV0dXJu
OworCiAgICAgZW5zdXJlSW50ZXJmYWNlKGNvbnRleHRJZCkuc2V0SW5saW5lUmVjdChpbmxpbmVS
ZWN0LCB2aXNpYmxlKTsKIH0KIAogdm9pZCBWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyUHJveHk6OnNl
dEhhc1ZpZGVvQ29udGVudExheWVyKHVpbnQ2NF90IGNvbnRleHRJZCwgYm9vbCB2YWx1ZSkKIHsK
ICAgICBNRVNTQUdFX0NIRUNLX0NPTlRFWFRJRChjb250ZXh0SWQpOworICAgIGlmIChtX3NldE1v
Y2tWaWRlb1ByZXNlbnRhdGlvbk1vZGVFbmFibGVkKSB7CisgICAgICAgIGlmICh2YWx1ZSkKKyAg
ICAgICAgICAgIGRpZFNldHVwRnVsbHNjcmVlbihjb250ZXh0SWQpOworICAgICAgICBlbHNlCisg
ICAgICAgICAgICBkaWRFeGl0RnVsbHNjcmVlbihjb250ZXh0SWQpOworCisgICAgICAgIHJldHVy
bjsKKyAgICB9CisKICAgICBlbnN1cmVJbnRlcmZhY2UoY29udGV4dElkKS5zZXRIYXNWaWRlb0Nv
bnRlbnRMYXllcih2YWx1ZSk7CiB9CiAKQEAgLTYxOCw2ICs2NjIsMTEgQEAgTk9fUkVUVVJOX0RV
RV9UT19BU1NFUlQgdm9pZCBWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyUHJveHk6OnNldEhhc1ZpZGVv
Q29udGVudExheWUKIHZvaWQgVmlkZW9GdWxsc2NyZWVuTWFuYWdlclByb3h5OjpjbGVhbnVwRnVs
bHNjcmVlbih1aW50NjRfdCBjb250ZXh0SWQpCiB7CiAgICAgTUVTU0FHRV9DSEVDS19DT05URVhU
SUQoY29udGV4dElkKTsKKyAgICBpZiAobV9zZXRNb2NrVmlkZW9QcmVzZW50YXRpb25Nb2RlRW5h
YmxlZCkgeworICAgICAgICBkaWRDbGVhbnVwRnVsbHNjcmVlbihjb250ZXh0SWQpOworICAgICAg
ICByZXR1cm47CisgICAgfQorCiAgICAgZW5zdXJlSW50ZXJmYWNlKGNvbnRleHRJZCkuY2xlYW51
cEZ1bGxzY3JlZW4oKTsKIH0KIApAQCAtNjI2LDExICs2NzUsMTcgQEAgdm9pZCBWaWRlb0Z1bGxz
Y3JlZW5NYW5hZ2VyUHJveHk6OnByZXBhcmVkVG9SZXR1cm5Ub0lubGluZSh1aW50NjRfdCBjb250
ZXh0SWQsIGIKICAgICBNRVNTQUdFX0NIRUNLX0NPTlRFWFRJRChjb250ZXh0SWQpOwogICAgIG1f
cGFnZS0+ZnVsbHNjcmVlbk1heVJldHVyblRvSW5saW5lKCk7CiAKKyNpZiAhUExBVEZPUk0oSU9T
X0ZBTUlMWSkKKyAgICBJbnRSZWN0IGlubGluZVdpbmRvd1JlY3Q7CisgICAgbV9wYWdlLT5yb290
Vmlld1RvV2luZG93KGlubGluZVJlY3QsIGlubGluZVdpbmRvd1JlY3QpOworI2VuZGlmCisKKyAg
ICBpZiAobV9zZXRNb2NrVmlkZW9QcmVzZW50YXRpb25Nb2RlRW5hYmxlZCkKKyAgICAgICAgcmV0
dXJuOworCiAjaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKICAgICBlbnN1cmVJbnRlcmZhY2UoY29u
dGV4dElkKS5wcmVwYXJlZFRvUmV0dXJuVG9JbmxpbmUodmlzaWJsZSwgaW5saW5lUmVjdCk7CiAj
ZWxzZQotICAgIEludFJlY3QgaW5saW5lV2luZG93UmVjdDsKLSAgICBtX3BhZ2UtPnJvb3RWaWV3
VG9XaW5kb3coaW5saW5lUmVjdCwgaW5saW5lV2luZG93UmVjdCk7CiAgICAgZW5zdXJlSW50ZXJm
YWNlKGNvbnRleHRJZCkucHJlcGFyZWRUb1JldHVyblRvSW5saW5lKHZpc2libGUsIGlubGluZVdp
bmRvd1JlY3QsIG1fcGFnZS0+cGxhdGZvcm1XaW5kb3coKSk7CiAjZW5kaWYKIH0KQEAgLTYzOCw2
ICs2OTMsOSBAQCB2b2lkIFZpZGVvRnVsbHNjcmVlbk1hbmFnZXJQcm94eTo6cHJlcGFyZWRUb1Jl
dHVyblRvSW5saW5lKHVpbnQ2NF90IGNvbnRleHRJZCwgYgogdm9pZCBWaWRlb0Z1bGxzY3JlZW5N
YW5hZ2VyUHJveHk6OnByZXBhcmVkVG9FeGl0RnVsbHNjcmVlbih1aW50NjRfdCBjb250ZXh0SWQp
CiB7CiAgICAgTUVTU0FHRV9DSEVDS19DT05URVhUSUQoY29udGV4dElkKTsKKyAgICBpZiAobV9z
ZXRNb2NrVmlkZW9QcmVzZW50YXRpb25Nb2RlRW5hYmxlZCkKKyAgICAgICAgcmV0dXJuOworCiAg
ICAgZW5zdXJlSW50ZXJmYWNlKGNvbnRleHRJZCkucHJlcGFyZWRUb0V4aXRGdWxsc2NyZWVuKCk7
CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5j
cHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwCmluZGV4IGJmNDAx
Zjg5MjBlM2EwZWQxMjYyODViZTUwMTliMDQyNTNhMjg3YjYuLjNiYTg3YjlmZDRkMzY5Y2E0NDdk
NzY2MGM1NjZmNTM1ZjUxZWJlMjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L1dlYlBhZ2VQcm94eS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVBy
b3h5LmNwcApAQCAtOTYxLDYgKzk2MSw4IEBAIHZvaWQgV2ViUGFnZVByb3h5OjpkaWRBdHRhY2hU
b1J1bm5pbmdQcm9jZXNzKCkKICAgICBtX3BsYXliYWNrU2Vzc2lvbk1hbmFnZXIgPSBQbGF5YmFj
a1Nlc3Npb25NYW5hZ2VyUHJveHk6OmNyZWF0ZSgqdGhpcyk7CiAgICAgQVNTRVJUKCFtX3ZpZGVv
RnVsbHNjcmVlbk1hbmFnZXIpOwogICAgIG1fdmlkZW9GdWxsc2NyZWVuTWFuYWdlciA9IFZpZGVv
RnVsbHNjcmVlbk1hbmFnZXJQcm94eTo6Y3JlYXRlKCp0aGlzLCAqbV9wbGF5YmFja1Nlc3Npb25N
YW5hZ2VyKTsKKyAgICBpZiAobV92aWRlb0Z1bGxzY3JlZW5NYW5hZ2VyKQorICAgICAgICBtX3Zp
ZGVvRnVsbHNjcmVlbk1hbmFnZXItPnNldE1vY2tWaWRlb1ByZXNlbnRhdGlvbk1vZGVFbmFibGVk
KG1fbW9ja1ZpZGVvUHJlc2VudGF0aW9uTW9kZUVuYWJsZWQpOwogI2VuZGlmCiAKICNpZiBFTkFC
TEUoQVBQTEVfUEFZKQpAQCAtNjIyNSw2ICs2MjI3LDEzIEBAIFZpZGVvRnVsbHNjcmVlbk1hbmFn
ZXJQcm94eSogV2ViUGFnZVByb3h5Ojp2aWRlb0Z1bGxzY3JlZW5NYW5hZ2VyKCkKIHsKICAgICBy
ZXR1cm4gbV92aWRlb0Z1bGxzY3JlZW5NYW5hZ2VyLmdldCgpOwogfQorCit2b2lkIFdlYlBhZ2VQ
cm94eTo6c2V0TW9ja1ZpZGVvUHJlc2VudGF0aW9uTW9kZUVuYWJsZWQoYm9vbCBlbmFibGVkKQor
eworICAgIG1fbW9ja1ZpZGVvUHJlc2VudGF0aW9uTW9kZUVuYWJsZWQgPSBlbmFibGVkOworICAg
IGlmIChtX3ZpZGVvRnVsbHNjcmVlbk1hbmFnZXIpCisgICAgICAgIG1fdmlkZW9GdWxsc2NyZWVu
TWFuYWdlci0+c2V0TW9ja1ZpZGVvUHJlc2VudGF0aW9uTW9kZUVuYWJsZWQoZW5hYmxlZCk7Cit9
CiAjZW5kaWYKIAogI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L1dlYlBhZ2VQcm94eS5oCmluZGV4IDNiNDEyOWZlMTZiMGY4ZmZmZTRiMWM4YzE5MDA4MzdiNGM3
ZWNlYjUuLjk2NTIzZjJmZGVhN2I1ZWFkYTlhM2MwZGNlYzExYTFiNzM3MDRjYzEgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oCisrKyBiL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oCkBAIC01MjcsNiArNTI3LDcgQEAgcHVibGlj
OgogI2lmIEVOQUJMRShWSURFT19QUkVTRU5UQVRJT05fTU9ERSkKICAgICBQbGF5YmFja1Nlc3Np
b25NYW5hZ2VyUHJveHkqIHBsYXliYWNrU2Vzc2lvbk1hbmFnZXIoKTsKICAgICBWaWRlb0Z1bGxz
Y3JlZW5NYW5hZ2VyUHJveHkqIHZpZGVvRnVsbHNjcmVlbk1hbmFnZXIoKTsKKyAgICB2b2lkIHNl
dE1vY2tWaWRlb1ByZXNlbnRhdGlvbk1vZGVFbmFibGVkKGJvb2wpOwogI2VuZGlmCiAKICNpZiBQ
TEFURk9STShJT1NfRkFNSUxZKQpAQCAtMjM4NCw2ICsyMzg1LDcgQEAgcHJpdmF0ZToKICNpZiBF
TkFCTEUoVklERU9fUFJFU0VOVEFUSU9OX01PREUpCiAgICAgUmVmUHRyPFBsYXliYWNrU2Vzc2lv
bk1hbmFnZXJQcm94eT4gbV9wbGF5YmFja1Nlc3Npb25NYW5hZ2VyOwogICAgIFJlZlB0cjxWaWRl
b0Z1bGxzY3JlZW5NYW5hZ2VyUHJveHk+IG1fdmlkZW9GdWxsc2NyZWVuTWFuYWdlcjsKKyAgICBi
b29sIG1fbW9ja1ZpZGVvUHJlc2VudGF0aW9uTW9kZUVuYWJsZWQgeyBmYWxzZSB9OwogI2VuZGlm
CiAKICNpZiBFTkFCTEUoTUVESUFfVVNBR0UpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9XZWJQYWdlUHJveHkubWVzc2FnZXMuaW4gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9XZWJQYWdlUHJveHkubWVzc2FnZXMuaW4KaW5kZXggNGI0ZDQwODk4YzZmZDc2ZDQ3ZjVmMDIy
ZWU4OTlhMmUzYTMwMDNjMS4uOGY4MGJhNDA4MWRkZWJkNWZkMjhjZDk5YzQyM2EzYTYwNjc1NjFl
YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5Lm1lc3Nh
Z2VzLmluCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5tZXNzYWdl
cy5pbgpAQCAtNTA4LDYgKzUwOCwxMCBAQCBtZXNzYWdlcyAtPiBXZWJQYWdlUHJveHkgewogICAg
IE1vY2tNZWRpYVBsYXliYWNrVGFyZ2V0UGlja2VyRGlzbWlzc1BvcHVwKCkKICNlbmRpZgogCisj
aWYgRU5BQkxFKFZJREVPX1BSRVNFTlRBVElPTl9NT0RFKQorICAgIFNldE1vY2tWaWRlb1ByZXNl
bnRhdGlvbk1vZGVFbmFibGVkKGJvb2wgZW5hYmxlZCkKKyNlbmRpZgorCiAjaWYgRU5BQkxFKFBP
SU5URVJfTE9DSykKICAgICBSZXF1ZXN0UG9pbnRlckxvY2soKQogICAgIFJlcXVlc3RQb2ludGVy
VW5sb2NrKCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3Vw
cG9ydC9XZWJDaHJvbWVDbGllbnQuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNv
cmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5jcHAKaW5kZXggYTY4MzZjOTg0NzY4M2M3NTdiMzg2
ZDk2Y2Y5NzdkNmNjNTIyNjMwOS4uNTZhYTEzNmFjNGEzNzg0ZDRiN2JhMjU1MDEzMTg3MjNhZTdi
NTdiOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0
L1dlYkNocm9tZUNsaWVudC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNv
cmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5jcHAKQEAgLTk4NywxNCArOTg3LDkgQEAgYm9vbCBX
ZWJDaHJvbWVDbGllbnQ6OnN1cHBvcnRzVmlkZW9GdWxsc2NyZWVuU3RhbmRieSgpCiAgICAgcmV0
dXJuIG1fcGFnZS52aWRlb0Z1bGxzY3JlZW5NYW5hZ2VyKCkuc3VwcG9ydHNWaWRlb0Z1bGxzY3Jl
ZW5TdGFuZGJ5KCk7CiB9CiAKLXZvaWQgV2ViQ2hyb21lQ2xpZW50OjpzZXRVcFBsYXliYWNrQ29u
dHJvbHNNYW5hZ2VyKEhUTUxNZWRpYUVsZW1lbnQmIG1lZGlhRWxlbWVudCkKK3ZvaWQgV2ViQ2hy
b21lQ2xpZW50OjpzZXRNb2NrVmlkZW9QcmVzZW50YXRpb25Nb2RlRW5hYmxlZChib29sIGVuYWJs
ZWQpCiB7Ci0gICAgbV9wYWdlLnBsYXliYWNrU2Vzc2lvbk1hbmFnZXIoKS5zZXRVcFBsYXliYWNr
Q29udHJvbHNNYW5hZ2VyKG1lZGlhRWxlbWVudCk7Ci19Ci0KLXZvaWQgV2ViQ2hyb21lQ2xpZW50
OjpjbGVhclBsYXliYWNrQ29udHJvbHNNYW5hZ2VyKCkKLXsKLSAgICBtX3BhZ2UucGxheWJhY2tT
ZXNzaW9uTWFuYWdlcigpLmNsZWFyUGxheWJhY2tDb250cm9sc01hbmFnZXIoKTsKKyAgICBtX3Bh
Z2Uuc2VuZChNZXNzYWdlczo6V2ViUGFnZVByb3h5OjpTZXRNb2NrVmlkZW9QcmVzZW50YXRpb25N
b2RlRW5hYmxlZChlbmFibGVkKSk7CiB9CiAKIHZvaWQgV2ViQ2hyb21lQ2xpZW50OjplbnRlclZp
ZGVvRnVsbHNjcmVlbkZvclZpZGVvRWxlbWVudChIVE1MVmlkZW9FbGVtZW50JiB2aWRlb0VsZW1l
bnQsIEhUTUxNZWRpYUVsZW1lbnRFbnVtczo6VmlkZW9GdWxsc2NyZWVuTW9kZSBtb2RlLCBib29s
IHN0YW5kYnkpCkBAIC0xMDExLDYgKzEwMDYsMTcgQEAgdm9pZCBXZWJDaHJvbWVDbGllbnQ6OmV4
aXRWaWRlb0Z1bGxzY3JlZW5Gb3JWaWRlb0VsZW1lbnQoSFRNTFZpZGVvRWxlbWVudCYgdmlkZW8K
IHsKICAgICBtX3BhZ2UudmlkZW9GdWxsc2NyZWVuTWFuYWdlcigpLmV4aXRWaWRlb0Z1bGxzY3Jl
ZW5Gb3JWaWRlb0VsZW1lbnQodmlkZW9FbGVtZW50KTsKIH0KKwordm9pZCBXZWJDaHJvbWVDbGll
bnQ6OnNldFVwUGxheWJhY2tDb250cm9sc01hbmFnZXIoSFRNTE1lZGlhRWxlbWVudCYgbWVkaWFF
bGVtZW50KQoreworICAgIG1fcGFnZS5wbGF5YmFja1Nlc3Npb25NYW5hZ2VyKCkuc2V0VXBQbGF5
YmFja0NvbnRyb2xzTWFuYWdlcihtZWRpYUVsZW1lbnQpOworfQorCit2b2lkIFdlYkNocm9tZUNs
aWVudDo6Y2xlYXJQbGF5YmFja0NvbnRyb2xzTWFuYWdlcigpCit7CisgICAgbV9wYWdlLnBsYXli
YWNrU2Vzc2lvbk1hbmFnZXIoKS5jbGVhclBsYXliYWNrQ29udHJvbHNNYW5hZ2VyKCk7Cit9CisK
ICNlbmRpZgogCiAjaWYgRU5BQkxFKE1FRElBX1VTQUdFKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5oIGIvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5oCmluZGV4
IDg2ZGY2M2Y1NjEzYzJkMmIyZjdlMmFmNTIzNWU4MjYxNGQyNTAyNjMuLjJhZGVkMTMzMDg4ODU2
NjJkMTY4MmI4NDY1MGU4Y2EzMTVjZTUyZjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuaAorKysgYi9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmgKQEAgLTI2NCwx
MCArMjY0LDExIEBAIHByaXZhdGU6CiAjaWYgRU5BQkxFKFZJREVPX1BSRVNFTlRBVElPTl9NT0RF
KQogICAgIGJvb2wgc3VwcG9ydHNWaWRlb0Z1bGxzY3JlZW4oV2ViQ29yZTo6SFRNTE1lZGlhRWxl
bWVudEVudW1zOjpWaWRlb0Z1bGxzY3JlZW5Nb2RlKSBmaW5hbDsKICAgICBib29sIHN1cHBvcnRz
VmlkZW9GdWxsc2NyZWVuU3RhbmRieSgpIGZpbmFsOwotICAgIHZvaWQgc2V0VXBQbGF5YmFja0Nv
bnRyb2xzTWFuYWdlcihXZWJDb3JlOjpIVE1MTWVkaWFFbGVtZW50JikgZmluYWw7Ci0gICAgdm9p
ZCBjbGVhclBsYXliYWNrQ29udHJvbHNNYW5hZ2VyKCkgZmluYWw7CisgICAgdm9pZCBzZXRNb2Nr
VmlkZW9QcmVzZW50YXRpb25Nb2RlRW5hYmxlZChib29sKSBmaW5hbDsKICAgICB2b2lkIGVudGVy
VmlkZW9GdWxsc2NyZWVuRm9yVmlkZW9FbGVtZW50KFdlYkNvcmU6OkhUTUxWaWRlb0VsZW1lbnQm
LCBXZWJDb3JlOjpIVE1MTWVkaWFFbGVtZW50RW51bXM6OlZpZGVvRnVsbHNjcmVlbk1vZGUsIGJv
b2wgc3RhbmRieSkgZmluYWw7CiAgICAgdm9pZCBleGl0VmlkZW9GdWxsc2NyZWVuRm9yVmlkZW9F
bGVtZW50KFdlYkNvcmU6OkhUTUxWaWRlb0VsZW1lbnQmKSBmaW5hbDsKKyAgICB2b2lkIHNldFVw
UGxheWJhY2tDb250cm9sc01hbmFnZXIoV2ViQ29yZTo6SFRNTE1lZGlhRWxlbWVudCYpIGZpbmFs
OworICAgIHZvaWQgY2xlYXJQbGF5YmFja0NvbnRyb2xzTWFuYWdlcigpIGZpbmFsOwogI2VuZGlm
CiAKICNpZiBFTkFCTEUoTUVESUFfVVNBR0UpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvY29jb2EvVmlkZW9GdWxsc2NyZWVuTWFuYWdlci5oIGIvU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL2NvY29hL1ZpZGVvRnVsbHNjcmVlbk1hbmFnZXIuaAppbmRleCBmMTM2ZWNiOWRk
M2VhY2VmYWRkOTc0YmRjZGJkNDJjYWVmZjYyN2NmLi5iY2NhNzYxYTcyNGI3ZmU0NGRlZGU5NmI2
NDBlOGZmMGQwM2MyZDc3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvY29j
b2EvVmlkZW9GdWxsc2NyZWVuTWFuYWdlci5oCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9jb2NvYS9WaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyLmgKQEAgLTExNSw3ICsxMTUsNyBAQCBwdWJs
aWM6CiAgICAgCiAgICAgdm9pZCBkaWRSZWNlaXZlTWVzc2FnZShJUEM6OkNvbm5lY3Rpb24mLCBJ
UEM6OkRlY29kZXImKSBvdmVycmlkZTsKIAotICAgIC8vIEludGVyZmFjZSB0byBDaHJvbWVDbGll
bnQKKyAgICAvLyBJbnRlcmZhY2UgdG8gV2ViQ2hyb21lQ2xpZW50CiAgICAgYm9vbCBzdXBwb3J0
c1ZpZGVvRnVsbHNjcmVlbihXZWJDb3JlOjpIVE1MTWVkaWFFbGVtZW50RW51bXM6OlZpZGVvRnVs
bHNjcmVlbk1vZGUpIGNvbnN0OwogICAgIGJvb2wgc3VwcG9ydHNWaWRlb0Z1bGxzY3JlZW5TdGFu
ZGJ5KCkgY29uc3Q7CiAgICAgdm9pZCBlbnRlclZpZGVvRnVsbHNjcmVlbkZvclZpZGVvRWxlbWVu
dChXZWJDb3JlOjpIVE1MVmlkZW9FbGVtZW50JiwgV2ViQ29yZTo6SFRNTE1lZGlhRWxlbWVudEVu
dW1zOjpWaWRlb0Z1bGxzY3JlZW5Nb2RlLCBib29sIHN0YW5kYnkpOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmggYi9T
b3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuaApp
bmRleCBhN2QwNjkwYmZhZGIzN2I1ZWI4MjU4ZWQxOTY0ZDNhMGM2Mzg3ZDI3Li4zYWMyMzBkOGEy
NmQ3MDE2MzQ2NTdmMmI4YmMyOTkxNGIwYTFjMGI5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
TGVnYWN5L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuaAorKysgYi9Tb3VyY2Uv
V2ViS2l0TGVnYWN5L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuaApAQCAtMTkz
LDEwICsxOTMsMTMgQEAgcHJpdmF0ZToKIAogI2lmIEVOQUJMRShWSURFTykKICAgICBib29sIHN1
cHBvcnRzVmlkZW9GdWxsc2NyZWVuKFdlYkNvcmU6OkhUTUxNZWRpYUVsZW1lbnRFbnVtczo6Vmlk
ZW9GdWxsc2NyZWVuTW9kZSkgZmluYWw7CisjaWYgRU5BQkxFKFZJREVPX1BSRVNFTlRBVElPTl9N
T0RFKQorICAgIHZvaWQgc2V0TW9ja1ZpZGVvUHJlc2VudGF0aW9uTW9kZUVuYWJsZWQoYm9vbCkg
ZmluYWw7CiAgICAgdm9pZCBlbnRlclZpZGVvRnVsbHNjcmVlbkZvclZpZGVvRWxlbWVudChXZWJD
b3JlOjpIVE1MVmlkZW9FbGVtZW50JiwgV2ViQ29yZTo6SFRNTE1lZGlhRWxlbWVudEVudW1zOjpW
aWRlb0Z1bGxzY3JlZW5Nb2RlLCBib29sIHN0YW5kYnkpIGZpbmFsOwogICAgIHZvaWQgZXhpdFZp
ZGVvRnVsbHNjcmVlbkZvclZpZGVvRWxlbWVudChXZWJDb3JlOjpIVE1MVmlkZW9FbGVtZW50Jikg
ZmluYWw7CiAgICAgdm9pZCBleGl0VmlkZW9GdWxsc2NyZWVuVG9Nb2RlV2l0aG91dEFuaW1hdGlv
bihXZWJDb3JlOjpIVE1MVmlkZW9FbGVtZW50JiwgV2ViQ29yZTo6SFRNTE1lZGlhRWxlbWVudEVu
dW1zOjpWaWRlb0Z1bGxzY3JlZW5Nb2RlKSBmaW5hbDsKICNlbmRpZgorI2VuZGlmCiAKICNpZiBF
TkFCTEUoRlVMTFNDUkVFTl9BUEkpCiAgICAgYm9vbCBzdXBwb3J0c0Z1bGxTY3JlZW5Gb3JFbGVt
ZW50KGNvbnN0IFdlYkNvcmU6OkVsZW1lbnQmLCBib29sIHdpdGhLZXlib2FyZCkgZmluYWw7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJv
bWVDbGllbnQubW0gYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJD
aHJvbWVDbGllbnQubW0KaW5kZXggNmQ2OGRmN2M3MjdlNzExYWU2ZjI2ODUzZGRkZTkyYjM1ZTRk
ODRiNC4uODk0ODE2Mzc2YmY4N2UzMjEzNzg4NWUwMDYwOWMyM2M5NmM0ZjUwOSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50
Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9t
ZUNsaWVudC5tbQpAQCAtOTY1LDYgKzk2NSwxMyBAQCBib29sIFdlYkNocm9tZUNsaWVudDo6c3Vw
cG9ydHNWaWRlb0Z1bGxzY3JlZW4oSFRNTE1lZGlhRWxlbWVudEVudW1zOjpWaWRlb0Z1bGxzYwog
ICAgIHJldHVybiB0cnVlOwogfQogCisjaWYgRU5BQkxFKFZJREVPX1BSRVNFTlRBVElPTl9NT0RF
KQorCit2b2lkIFdlYkNocm9tZUNsaWVudDo6c2V0TW9ja1ZpZGVvUHJlc2VudGF0aW9uTW9kZUVu
YWJsZWQoYm9vbCBlbmFibGVkKQoreworICAgIFttX3dlYlZpZXcgX3NldE1vY2tWaWRlb1ByZXNl
bnRhdGlvbk1vZGVFbmFibGVkOmVuYWJsZWRdOworfQorCiB2b2lkIFdlYkNocm9tZUNsaWVudDo6
ZW50ZXJWaWRlb0Z1bGxzY3JlZW5Gb3JWaWRlb0VsZW1lbnQoSFRNTFZpZGVvRWxlbWVudCYgdmlk
ZW9FbGVtZW50LCBIVE1MTWVkaWFFbGVtZW50RW51bXM6OlZpZGVvRnVsbHNjcmVlbk1vZGUgbW9k
ZSwgYm9vbCBzdGFuZGJ5KQogewogICAgIEFTU0VSVF9VTlVTRUQoc3RhbmRieSwgIXN0YW5kYnkp
OwpAQCAtOTg4LDYgKzk5NSw4IEBAIHZvaWQgV2ViQ2hyb21lQ2xpZW50OjpleGl0VmlkZW9GdWxs
c2NyZWVuVG9Nb2RlV2l0aG91dEFuaW1hdGlvbihIVE1MVmlkZW9FbGVtZW50CiAgICAgRU5EX0JM
T0NLX09CSkNfRVhDRVBUSU9OUzsKIH0KIAorI2VuZGlmIC8vIEVOQUJMRShWSURFT19QUkVTRU5U
QVRJT05fTU9ERSkKKwogI2VuZGlmIC8vIEVOQUJMRShWSURFTykKIAogI2lmIEVOQUJMRShWSURF
TykgJiYgUExBVEZPUk0oTUFDKSAmJiBFTkFCTEUoVklERU9fUFJFU0VOVEFUSU9OX01PREUpCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3L1dlYlZpZXcubW0gYi9T
b3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3L1dlYlZpZXcubW0KaW5kZXggZDRmYTgzMmQ4
ZDczMWNiZWVlZTUwM2E4OGU0ZGMyMzMzODRmNjE0Mi4uY2VhM2Y2NmYyYmQ3Y2VmM2ExOWJmOWRh
NmJkNjVkYTZmYWNmNjdlYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2Vi
Vmlldy9XZWJWaWV3Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcvV2Vi
Vmlldy5tbQpAQCAtMjM1NCw3ICsyMzU0LDcgQEAgLSAodm9pZClfY2xvc2UKICAgICAgICAgcmV0
dXJuOwogICAgIH0KIAotI2lmIEVOQUJMRShWSURFTykgJiYgIVBMQVRGT1JNKElPU19GQU1JTFkp
CisjaWYgRU5BQkxFKFZJREVPX1BSRVNFTlRBVElPTl9NT0RFKSAmJiAhUExBVEZPUk0oSU9TX0ZB
TUlMWSkKICAgICBbc2VsZiBfZXhpdFZpZGVvRnVsbHNjcmVlbl07CiAjZW5kaWYKIApAQCAtOTI2
Miw4ICs5MjYyLDE5IEBAIC0gKHZvaWQpX3NjaGVkdWxlUmVuZGVyaW5nVXBkYXRlRm9yUGVuZGlu
Z1RpbGVDYWNoZVJlcGFpbnQKICNlbmRpZgogCiAjaWYgRU5BQkxFKFZJREVPKQorCisjaWYgRU5B
QkxFKFZJREVPX1BSRVNFTlRBVElPTl9NT0RFKQorCistICh2b2lkKV9zZXRNb2NrVmlkZW9QcmVz
ZW50YXRpb25Nb2RlRW5hYmxlZDooQk9PTCllbmFibGVkCit7CisgICAgX3ByaXZhdGUtPm1vY2tW
aWRlb1ByZXNlbnRhdGlvbk1vZGVFbmFibGVkID0gZW5hYmxlZDsKK30KKwogLSAodm9pZClfZW50
ZXJWaWRlb0Z1bGxzY3JlZW5Gb3JWaWRlb0VsZW1lbnQ6KE5ha2VkUHRyPFdlYkNvcmU6OkhUTUxW
aWRlb0VsZW1lbnQ+KXZpZGVvRWxlbWVudCBtb2RlOihXZWJDb3JlOjpIVE1MTWVkaWFFbGVtZW50
RW51bXM6OlZpZGVvRnVsbHNjcmVlbk1vZGUpbW9kZQogeworICAgIGlmIChfcHJpdmF0ZS0+bW9j
a1ZpZGVvUHJlc2VudGF0aW9uTW9kZUVuYWJsZWQpCisgICAgICAgIHJldHVybjsKKwogICAgIGlm
IChfcHJpdmF0ZS0+ZnVsbHNjcmVlbkNvbnRyb2xsZXIpIHsKICAgICAgICAgaWYgKFtfcHJpdmF0
ZS0+ZnVsbHNjcmVlbkNvbnRyb2xsZXIgdmlkZW9FbGVtZW50XSA9PSB2aWRlb0VsZW1lbnQpIHsK
ICAgICAgICAgICAgIC8vIFRoZSBiYWNrZW5kIG1heSBqdXN0IHdhcm4gdXMgdGhhdCB0aGUgdW5k
ZXJsYXlpbmcgcGxhZnRvcm1Nb3ZpZSgpCkBAIC05MjkyLDYgKzkzMDMsOSBAQCAtICh2b2lkKV9l
bnRlclZpZGVvRnVsbHNjcmVlbkZvclZpZGVvRWxlbWVudDooTmFrZWRQdHI8V2ViQ29yZTo6SFRN
TFZpZGVvRWxlbWVudAogCiAtICh2b2lkKV9leGl0VmlkZW9GdWxsc2NyZWVuCiB7CisgICAgaWYg
KF9wcml2YXRlLT5tb2NrVmlkZW9QcmVzZW50YXRpb25Nb2RlRW5hYmxlZCkKKyAgICAgICAgcmV0
dXJuOworCiAgICAgaWYgKCFfcHJpdmF0ZS0+ZnVsbHNjcmVlbkNvbnRyb2xsZXIgJiYgX3ByaXZh
dGUtPmZ1bGxzY3JlZW5Db250cm9sbGVyc0V4aXRpbmcuaXNFbXB0eSgpKQogICAgICAgICByZXR1
cm47CiAKQEAgLTkzMDksNyArOTMyMyw3IEBAIC0gKHZvaWQpX2V4aXRWaWRlb0Z1bGxzY3JlZW4K
ICAgICBbZnVsbHNjcmVlbkNvbnRyb2xsZXIgZXhpdEZ1bGxzY3JlZW5dOwogfQogCi0jaWYgUExB
VEZPUk0oTUFDKSAmJiBFTkFCTEUoVklERU9fUFJFU0VOVEFUSU9OX01PREUpCisjaWYgUExBVEZP
Uk0oTUFDKQogLSAoQk9PTClfaGFzQWN0aXZlVmlkZW9Gb3JDb250cm9sc0ludGVyZmFjZQogewog
ICAgIGlmICghX3ByaXZhdGUtPnBsYXliYWNrU2Vzc2lvbk1vZGVsKQpAQCAtOTM0OSw3ICs5MzYz
LDExIEBAIC0gKHZvaWQpX2NsZWFyUGxheWJhY2tDb250cm9sc01hbmFnZXIKICAgICBfcHJpdmF0
ZS0+cGxheWJhY2tTZXNzaW9uSW50ZXJmYWNlID0gbnVsbHB0cjsKICAgICBbc2VsZiB1cGRhdGVU
b3VjaEJhcl07CiB9Ci0jZW5kaWYgLy8gUExBVEZPUk0oTUFDKSAmJiBFTkFCTEUoVklERU9fUFJF
U0VOVEFUSU9OX01PREUpCisKKyNlbmRpZiAvLyBQTEFURk9STShNQUMpCisKKyNlbmRpZiAvLyBF
TkFCTEUoVklERU9fUFJFU0VOVEFUSU9OX01PREUpCisKICNlbmRpZiAvLyBFTkFCTEUoVklERU8p
CiAKICNpZiBFTkFCTEUoRlVMTFNDUkVFTl9BUEkpICYmICFQTEFURk9STShJT1NfRkFNSUxZKQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViVmlldy9XZWJWaWV3RGF0YS5o
IGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViVmlldy9XZWJWaWV3RGF0YS5oCmluZGV4IGZl
OTgzOWJhYzQ3NDkxYTE0M2JhNjhiZTdjOWJiNjUwYWZkNTA3YjguLjY4MjYwMDQ1MGIyMzVlNmM0
ZDk1OTNkYzdiOTU2YWRmMGY5Njg2Y2YgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kv
bWFjL1dlYlZpZXcvV2ViVmlld0RhdGEuaAorKysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9X
ZWJWaWV3L1dlYlZpZXdEYXRhLmgKQEAgLTIxNiw3ICsyMTYsNyBAQCBwcml2YXRlOgogICAgIEJP
T0wgc2hvdWxkTWFpbnRhaW5JbmFjdGl2ZVNlbGVjdGlvbjsKIAogICAgIEJPT0wgYWxsb3dzVW5k
bzsKLSAgICAgICAgCisKICAgICBmbG9hdCB6b29tTXVsdGlwbGllcjsKICAgICBCT09MIHpvb21z
VGV4dE9ubHk7CiAKQEAgLTI5Myw3ICsyOTMsNiBAQCBwcml2YXRlOgogICAgIFJldGFpblB0cjxO
U1N0cmluZz4gZHJhZ2dlZExpbmtUaXRsZTsKICNlbmRpZgogCi0KICNpZiAhUExBVEZPUk0oSU9T
X0ZBTUlMWSkKICAgICAvLyBXZWJLaXQgaGFzIGJvdGggYSBnbG9iYWwgcGx1Zy1pbiBkYXRhYmFz
ZSBhbmQgYSBzZXBhcmF0ZSwgcGVyIFdlYlZpZXcgcGx1Zy1pbiBkYXRhYmFzZS4gRGFzaGJvYXJk
IHVzZXMgdGhlIHBlciBXZWJWaWV3IGRhdGFiYXNlLgogICAgIFdlYlBsdWdpbkRhdGFiYXNlICpw
bHVnaW5EYXRhYmFzZTsKQEAgLTMyNCw2ICszMjMsMTAgQEAgcHJpdmF0ZToKICAgICBWZWN0b3I8
UmV0YWluUHRyPFdlYlZpZGVvRnVsbHNjcmVlbkNvbnRyb2xsZXI+PiBmdWxsc2NyZWVuQ29udHJv
bGxlcnNFeGl0aW5nOwogI2VuZGlmCiAKKyNpZiBFTkFCTEUoVklERU9fUFJFU0VOVEFUSU9OX01P
REUpCisgICAgQk9PTCBtb2NrVmlkZW9QcmVzZW50YXRpb25Nb2RlRW5hYmxlZDsKKyNlbmRpZgor
CiAjaWYgUExBVEZPUk0oTUFDKSAmJiBFTkFCTEUoVklERU9fUFJFU0VOVEFUSU9OX01PREUpCiAg
ICAgUmVmUHRyPFdlYkNvcmU6OlBsYXliYWNrU2Vzc2lvbk1vZGVsTWVkaWFFbGVtZW50PiBwbGF5
YmFja1Nlc3Npb25Nb2RlbDsKICAgICBSZWZQdHI8V2ViQ29yZTo6UGxheWJhY2tTZXNzaW9uSW50
ZXJmYWNlTWFjPiBwbGF5YmFja1Nlc3Npb25JbnRlcmZhY2U7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3L1dlYlZpZXdJbnRlcm5hbC5oIGIvU291cmNlL1dlYktp
dExlZ2FjeS9tYWMvV2ViVmlldy9XZWJWaWV3SW50ZXJuYWwuaAppbmRleCA1NmM4ZDU2MjkwZGRj
ZWE0YThjOWMwZGMwMmYwOGZlOWE0Yjg4ODhhLi41Mjc1ZjMyODdlNWIwYTFiMWYzNmYyYjVlM2Fl
OTRlMzU3ZDZiMWYwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3
L1dlYlZpZXdJbnRlcm5hbC5oCisrKyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcv
V2ViVmlld0ludGVybmFsLmgKQEAgLTI3MywxNCArMjczLDE3IEBAIE9CSkNfQ0xBU1MgTlNUZXh0
QWx0ZXJuYXRpdmVzOwogLSAodm9pZClfaW52YWxpZGF0ZVVzZXJBZ2VudENhY2hlOwogCiAjaWYg
RU5BQkxFKFZJREVPKSAmJiBkZWZpbmVkKF9fY3BsdXNwbHVzKQorI2lmIEVOQUJMRShWSURFT19Q
UkVTRU5UQVRJT05fTU9ERSkKKy0gKHZvaWQpX3NldE1vY2tWaWRlb1ByZXNlbnRhdGlvbk1vZGVF
bmFibGVkOihCT09MKWVuYWJsZWQ7CiAtICh2b2lkKV9lbnRlclZpZGVvRnVsbHNjcmVlbkZvclZp
ZGVvRWxlbWVudDooTmFrZWRQdHI8V2ViQ29yZTo6SFRNTFZpZGVvRWxlbWVudD4pdmlkZW9FbGVt
ZW50IG1vZGU6KFdlYkNvcmU6OkhUTUxNZWRpYUVsZW1lbnRFbnVtczo6VmlkZW9GdWxsc2NyZWVu
TW9kZSltb2RlOwogLSAodm9pZClfZXhpdFZpZGVvRnVsbHNjcmVlbjsKLSNpZiBQTEFURk9STShN
QUMpICYmIEVOQUJMRShWSURFT19QUkVTRU5UQVRJT05fTU9ERSkKKyNpZiBQTEFURk9STShNQUMp
CiAtIChCT09MKV9oYXNBY3RpdmVWaWRlb0ZvckNvbnRyb2xzSW50ZXJmYWNlOwogLSAodm9pZClf
c2V0VXBQbGF5YmFja0NvbnRyb2xzTWFuYWdlckZvck1lZGlhRWxlbWVudDooTmFrZWRSZWY8V2Vi
Q29yZTo6SFRNTE1lZGlhRWxlbWVudD4pbWVkaWFFbGVtZW50OwogLSAodm9pZClfY2xlYXJQbGF5
YmFja0NvbnRyb2xzTWFuYWdlcjsKICNlbmRpZgogI2VuZGlmCisjZW5kaWYKIAogI2lmIEVOQUJM
RShGVUxMU0NSRUVOX0FQSSkgJiYgIVBMQVRGT1JNKElPU19GQU1JTFkpICYmIGRlZmluZWQoX19j
cGx1c3BsdXMpCiAtIChCT09MKV9zdXBwb3J0c0Z1bGxTY3JlZW5Gb3JFbGVtZW50OihOYWtlZFB0
cjxXZWJDb3JlOjpFbGVtZW50PillbGVtZW50IHdpdGhLZXlib2FyZDooQk9PTCl3aXRoS2V5Ym9h
cmQ7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFu
Z2VMb2cKaW5kZXggOWYxODQ5YzVmYzRiNmQxZTFmYTFiMjQ3MzMyY2VhMTVlNjc5ZGE4NS4uNmIx
ZDI4NjllYTc3NTljNjgwZThlNTBlMjUxNGFmNmVmNzJiNzg0MCAxMDA2NDQKLS0tIGEvTGF5b3V0
VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDEz
IEBACisyMDIwLTA1LTA0ICBQZW5nIExpdSAgPHBlbmcubGl1NkBhcHBsZS5jb20+CisKKyAgICAg
ICAgVXBkYXRlIFdlYktpdFRlc3RSdW5uZXIgdG8gc3VwcG9ydCBydW5uaW5nIG11bHRpcGxlIHZp
ZGVvIGZ1bGxzY3JlZW4gYW5kIFBpY3R1cmUtaW4tUGljdHVyZSB0ZXN0cyBzaW11bHRhbmVvdXNs
eQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjAzNzIz
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBtZWRp
YS92aWRlby1wcmVzZW50YXRpb24tbW9kZS1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAq
IG1lZGlhL3ZpZGVvLXByZXNlbnRhdGlvbi1tb2RlLmh0bWw6IEFkZGVkLgorCiAyMDIwLTA1LTA0
ICBQZXIgQXJuZSBWb2xsYW4gIDxwdm9sbGFuQGFwcGxlLmNvbT4KIAogICAgICAgICBVbnJldmll
d2VkIHRlc3QgZ2FyZGVuaW5nLgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvbWVkaWEvdmlkZW8t
cHJlc2VudGF0aW9uLW1vZGUtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvbWVkaWEvdmlkZW8t
cHJlc2VudGF0aW9uLW1vZGUtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmUwMWM0MzdjYTVkY2Ew
MWQ3NWE4OWQxMjU3Y2NhZGYzN2Q5NzQ1OTIKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0
cy9tZWRpYS92aWRlby1wcmVzZW50YXRpb24tbW9kZS1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwz
MiBAQAorCitUZXN0IHRoZSB2aWRlbyBwcmVzZW50YXRpb24gbW9kZSAodmlkZW8gZnVsbHNjcmVl
biBhbmQgcGljdHVyZS1pbi1waWN0dXJlKSBBUEkuCisKKworRVZFTlQoY2FucGxheXRocm91Z2gp
CitFWFBFQ1RFRCAodmlkZW8ud2Via2l0U3VwcG9ydHNGdWxsc2NyZWVuID09ICd0cnVlJykgT0sK
K0VYUEVDVEVEICh2aWRlby53ZWJraXREaXNwbGF5aW5nRnVsbHNjcmVlbiA9PSAnZmFsc2UnKSBP
SworCisqKiBUcnkgdG8gZW50ZXIgZnVsbHNjcmVlbgorUlVOKHZpZGVvLndlYmtpdFNldFByZXNl
bnRhdGlvbk1vZGUoJ2Z1bGxzY3JlZW4nKSkKK0VWRU5UKHdlYmtpdHByZXNlbnRhdGlvbm1vZGVj
aGFuZ2VkKQorCisqKiBFbnRlcmVkIGZ1bGxzY3JlZW4KK0VYUEVDVEVEICh2aWRlby53ZWJraXRQ
cmVzZW50YXRpb25Nb2RlID09ICdmdWxsc2NyZWVuJykgT0sKKworKiogVHJ5IHRvIGVudGVyIHBp
Y3R1cmUtaW4tcGljdHVyZQorUlVOKHZpZGVvLndlYmtpdFNldFByZXNlbnRhdGlvbk1vZGUoJ3Bp
Y3R1cmUtaW4tcGljdHVyZScpKQorRVZFTlQod2Via2l0cHJlc2VudGF0aW9ubW9kZWNoYW5nZWQp
CisKKyoqIEVudGVyZWQgcGljdHVyZS1pbi1waWN0dXJlCitFWFBFQ1RFRCAodmlkZW8ud2Via2l0
UHJlc2VudGF0aW9uTW9kZSA9PSAncGljdHVyZS1pbi1waWN0dXJlJykgT0sKKworKiogVHJ5IHRv
IHJldHVybiB0byBpbmxpbmUKK1JVTih2aWRlby53ZWJraXRTZXRQcmVzZW50YXRpb25Nb2RlKCdp
bmxpbmUnKSkKK0VWRU5UKHdlYmtpdHByZXNlbnRhdGlvbm1vZGVjaGFuZ2VkKQorCisqKiBSZXR1
cm5lZCB0byBpbmxpbmUKK0VYUEVDVEVEICh2aWRlby53ZWJraXRQcmVzZW50YXRpb25Nb2RlID09
ICdpbmxpbmUnKSBPSworCisqKiBUZXN0IENvbXBsZXRlZAorRU5EIE9GIFRFU1QKKwpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvbWVkaWEvdmlkZW8tcHJlc2VudGF0aW9uLW1vZGUuaHRtbCBiL0xh
eW91dFRlc3RzL21lZGlhL3ZpZGVvLXByZXNlbnRhdGlvbi1tb2RlLmh0bWwKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
YmNlODA4ZGRkNzQzNGNjZjVmOWEzODAzNGIxY2EzZjU1OTJjNTI1MAotLS0gL2Rldi9udWxsCisr
KyBiL0xheW91dFRlc3RzL21lZGlhL3ZpZGVvLXByZXNlbnRhdGlvbi1tb2RlLmh0bWwKQEAgLTAs
MCArMSw2MyBAQAorPCFkb2N0eXBlIGh0bWw+Cis8aHRtbD4KKyAgICA8aGVhZD4KKwkgICAgPHNj
cmlwdCBzcmM9bWVkaWEtZmlsZS5qcz48L3NjcmlwdD4KKwkgICAgPHNjcmlwdCBzcmM9dmlkZW8t
dGVzdC5qcz48L3NjcmlwdD4KKwkgICAgPHNjcmlwdD4KKyAgICAgICAgICAgIGZ1bmN0aW9uIHN0
YXJ0KCkKKyAgICAgICAgICAgIHsKKwkgICAgICAgICAgICBpZiAod2luZG93LmludGVybmFscykg
eworICAgICAgICAgICAgICAgICAgICB3aW5kb3cuaW50ZXJuYWxzLnNldHRpbmdzLnNldEFsbG93
c1BpY3R1cmVJblBpY3R1cmVNZWRpYVBsYXliYWNrKHRydWUpOworICAgICAgICAgICAgICAgICAg
ICB3aW5kb3cuaW50ZXJuYWxzLnNldE1vY2tWaWRlb1ByZXNlbnRhdGlvbk1vZGVFbmFibGVkKHRy
dWUpOworICAgICAgICAgICAgICAgIH0KKwkKKwkgICAgICAgICAgICB2aWRlbyA9IGRvY3VtZW50
LmdldEVsZW1lbnRzQnlUYWdOYW1lKCd2aWRlbycpWzBdOworCSAgICAgICAgICAgIHdhaXRGb3JF
dmVudE9uY2UoImNhbnBsYXl0aHJvdWdoIiwgY2FucGxheXRocm91Z2gpOworCSAgICAgICAgICAg
IHZpZGVvLnNyYyA9IGZpbmRNZWRpYUZpbGUoInZpZGVvIiwgImNvbnRlbnQvdGVzdCIpOworCisJ
ICAgICAgICAgICAgY29uc29sZVdyaXRlKCIiKTsKKyAgICAgICAgICAgIH0KKwkKKwkgICAgICAg
IGZ1bmN0aW9uIGNhbnBsYXl0aHJvdWdoKCkKKwkgICAgICAgIHsKKwkgICAgICAgICAgICB0ZXN0
RXhwZWN0ZWQoInZpZGVvLndlYmtpdFN1cHBvcnRzRnVsbHNjcmVlbiIsIHRydWUpOworCSAgICAg
ICAgICAgIHRlc3RFeHBlY3RlZCgidmlkZW8ud2Via2l0RGlzcGxheWluZ0Z1bGxzY3JlZW4iLCBm
YWxzZSk7CisJCisJICAgICAgICAgICAgY29uc29sZVdyaXRlKCI8YnI+KiogVHJ5IHRvIGVudGVy
IGZ1bGxzY3JlZW4iKTsKKwkgICAgICAgICAgICBydW5XaXRoS2V5RG93bigidmlkZW8ud2Via2l0
U2V0UHJlc2VudGF0aW9uTW9kZSgnZnVsbHNjcmVlbicpIik7CisJICAgICAgICAgICAgd2FpdEZv
ckV2ZW50T25jZSgnd2Via2l0cHJlc2VudGF0aW9ubW9kZWNoYW5nZWQnLCBwcmVzZW50YXRpb25N
b2RlQ2hhbmdlZDEpOworCSAgICAgICAgfQorCQorCSAgICAgICAgZnVuY3Rpb24gcHJlc2VudGF0
aW9uTW9kZUNoYW5nZWQxKCkKKwkgICAgICAgIHsKKwkgICAgICAgICAgICBjb25zb2xlV3JpdGUo
Ijxicj4qKiBFbnRlcmVkIGZ1bGxzY3JlZW4iKTsKKwkgICAgICAgICAgICB0ZXN0RXhwZWN0ZWQo
InZpZGVvLndlYmtpdFByZXNlbnRhdGlvbk1vZGUiLCAiZnVsbHNjcmVlbiIpOworCSAgICAgICAg
ICAgIGNvbnNvbGVXcml0ZSgiPGJyPioqIFRyeSB0byBlbnRlciBwaWN0dXJlLWluLXBpY3R1cmUi
KTsKKwkgICAgICAgICAgICB3YWl0Rm9yRXZlbnRPbmNlKCd3ZWJraXRwcmVzZW50YXRpb25tb2Rl
Y2hhbmdlZCcsIHByZXNlbnRhdGlvbk1vZGVDaGFuZ2VkMik7CisJICAgICAgICAgICAgcnVuV2l0
aEtleURvd24oInZpZGVvLndlYmtpdFNldFByZXNlbnRhdGlvbk1vZGUoJ3BpY3R1cmUtaW4tcGlj
dHVyZScpIik7CisJICAgICAgICB9CisJCisJICAgICAgICBmdW5jdGlvbiBwcmVzZW50YXRpb25N
b2RlQ2hhbmdlZDIoKQorCSAgICAgICAgeworCSAgICAgICAgICAgIGNvbnNvbGVXcml0ZSgiPGJy
PioqIEVudGVyZWQgcGljdHVyZS1pbi1waWN0dXJlIik7CisJICAgICAgICAgICAgdGVzdEV4cGVj
dGVkKCJ2aWRlby53ZWJraXRQcmVzZW50YXRpb25Nb2RlIiwgInBpY3R1cmUtaW4tcGljdHVyZSIp
OworCSAgICAgICAgICAgIGNvbnNvbGVXcml0ZSgiPGJyPioqIFRyeSB0byByZXR1cm4gdG8gaW5s
aW5lIik7CisJICAgICAgICAgICAgd2FpdEZvckV2ZW50T25jZSgnd2Via2l0cHJlc2VudGF0aW9u
bW9kZWNoYW5nZWQnLCB0ZXN0Q29tcGxldGVkKTsKKwkgICAgICAgICAgICBydW5XaXRoS2V5RG93
bigidmlkZW8ud2Via2l0U2V0UHJlc2VudGF0aW9uTW9kZSgnaW5saW5lJykiKTsKKwkgICAgICAg
IH0KKwkKKwkgICAgICAgIGZ1bmN0aW9uIHRlc3RDb21wbGV0ZWQoKQorCSAgICAgICAgeworCSAg
ICAgICAgICAgIGNvbnNvbGVXcml0ZSgiPGJyPioqIFJldHVybmVkIHRvIGlubGluZSIpOworCSAg
ICAgICAgICAgIHRlc3RFeHBlY3RlZCgidmlkZW8ud2Via2l0UHJlc2VudGF0aW9uTW9kZSIsICJp
bmxpbmUiKTsKKwkgICAgICAgICAgICBjb25zb2xlV3JpdGUoIjxicj4qKiBUZXN0IENvbXBsZXRl
ZCIpOworCSAgICAgICAgICAgIGVuZFRlc3QoKTsKKwkgICAgICAgIH0KKwkgICAgPC9zY3JpcHQ+
CisJPC9oZWFkPgorCQorCTxib2R5IG9ubG9hZD0ic3RhcnQoKSI+CisJICAgIDx2aWRlbyBjb250
cm9scyBwbGF5c2lubGluZT48L3ZpZGVvPgorCSAgICA8cD5UZXN0IHRoZSB2aWRlbyBwcmVzZW50
YXRpb24gbW9kZSAodmlkZW8gZnVsbHNjcmVlbiBhbmQgcGljdHVyZS1pbi1waWN0dXJlKSBBUEku
PC9wPgorCTwvYm9keT4KKzwvaHRtbD4KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCg==
</data>
<flag name="review"
          id="413797"
          type_id="1"
          status="+"
          setter="jer.noble"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>398553</attachid>
            <date>2020-05-05 14:50:23 -0700</date>
            <delta_ts>2020-05-05 15:37:41 -0700</delta_ts>
            <desc>Prepare for landing (update based on Youenn&apos;s comments)</desc>
            <filename>bug-203723-20200505145022.patch</filename>
            <type>text/plain</type>
            <size>32279</size>
            <attacher name="Peng Liu">peng.liu6</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjYxMTk0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMjkxZTAwNjk4NmIxOGZm
ZmE4Zjk4NDc3ZGY5NzFhNjEwYmI0MDI4My4uOWIwMWQ4YTQyNzU1ZWU2OTc0NTk0ZGI0ODA5MTY2
NTBjNmQ3OTViMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIyIEBACisyMDIwLTA1LTA1ICBQZW5n
IExpdSAgPHBlbmcubGl1NkBhcHBsZS5jb20+CisKKyAgICAgICAgVXBkYXRlIFdlYktpdFRlc3RS
dW5uZXIgdG8gc3VwcG9ydCBydW5uaW5nIG11bHRpcGxlIHZpZGVvIGZ1bGxzY3JlZW4gYW5kIFBp
Y3R1cmUtaW4tUGljdHVyZSB0ZXN0cyBzaW11bHRhbmVvdXNseQorICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjAzNzIzCisKKyAgICAgICAgUmV2aWV3ZWQg
YnkgSmVyIE5vYmxlLgorCisgICAgICAgIFRlc3Q6IG1lZGlhL3ZpZGVvLXByZXNlbnRhdGlvbi1t
b2RlLmh0bWwKKworICAgICAgICBBZGQgYSBmbGFnIE1vY2tWaWRlb1ByZXNlbnRhdGlvbk1vZGVF
bmFibGVkIHRvICJpbnRlcm5hbHMiIGZvciB2aWRlbyBmdWxsc2NyZWVuCisgICAgICAgIGFuZCBw
aWN0dXJlLWluLXBpY3R1cmUgdGVzdHMuCisKKyAgICAgICAgKiBwYWdlL0Nocm9tZUNsaWVudC5o
OgorICAgICAgICAoV2ViQ29yZTo6Q2hyb21lQ2xpZW50OjpzZXRNb2NrVmlkZW9QcmVzZW50YXRp
b25Nb2RlRW5hYmxlZCk6CisgICAgICAgICogdGVzdGluZy9JbnRlcm5hbHMuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6SW50ZXJuYWxzOjpzZXRNb2NrVmlkZW9QcmVzZW50YXRpb25Nb2RlRW5hYmxl
ZCk6CisgICAgICAgICogdGVzdGluZy9JbnRlcm5hbHMuaDoKKyAgICAgICAgKiB0ZXN0aW5nL0lu
dGVybmFscy5pZGw6CisKIDIwMjAtMDUtMDUgIEFudHRpIEtvaXZpc3RvICA8YW50dGlAYXBwbGUu
Y29tPgogCiAgICAgICAgIEZhY3RvciBSZW5kZXJMYXllckJhY2tpbmc6OnVwZGF0ZUV2ZW50UmVn
aW9uIHNraXAgY29uZGl0aW9ucyBpbnRvIGEgbGFtYmRhCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDkzOGMwNzQwOTgw
ODhlNjk5N2U3YWZhYjg4ODE5MWQwNzkxM2RkMmUuLjhmMWQ4NWZhNTBlNDgxNjA1NDQxYjA0YmYx
ZWVjODAzZDE0ZmZlOWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBi
L1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNDEgQEAKKzIwMjAtMDUtMDUgIFBl
bmcgTGl1ICA8cGVuZy5saXU2QGFwcGxlLmNvbT4KKworICAgICAgICBVcGRhdGUgV2ViS2l0VGVz
dFJ1bm5lciB0byBzdXBwb3J0IHJ1bm5pbmcgbXVsdGlwbGUgdmlkZW8gZnVsbHNjcmVlbiBhbmQg
UGljdHVyZS1pbi1QaWN0dXJlIHRlc3RzIHNpbXVsdGFuZW91c2x5CisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDM3MjMKKworICAgICAgICBSZXZpZXdl
ZCBieSBKZXIgTm9ibGUuCisKKyAgICAgICAgV2hlbiB0aGUgZmxhZyBNb2NrVmlkZW9QcmVzZW50
YXRpb25Nb2RlRW5hYmxlZCBpcyB0cnVlLCB0aGUgVmlkZW9GdWxsc2NyZWVuTWFuYWdlclByb3h5
IGluIHRoZSBVSSBwcm9jZXNzCisgICAgICAgIHdpbGwgbW9jayB0aGUgYmVoYXZpb3Igb2YgdGhl
IFZpZGVvRnVsbHNjcmVlbkludGVyZmFjZVtNYWN8QVZLaXRdLgorCisgICAgICAgICogVUlQcm9j
ZXNzL0NvY29hL1ZpZGVvRnVsbHNjcmVlbk1hbmFnZXJQcm94eS5oOgorICAgICAgICAoV2ViS2l0
OjpWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyUHJveHk6OnNldE1vY2tWaWRlb1ByZXNlbnRhdGlvbk1v
ZGVFbmFibGVkKToKKyAgICAgICAgKiBVSVByb2Nlc3MvQ29jb2EvVmlkZW9GdWxsc2NyZWVuTWFu
YWdlclByb3h5Lm1tOgorICAgICAgICAoV2ViS2l0OjpWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyUHJv
eHk6OnJlcXVlc3RIaWRlQW5kRXhpdEZ1bGxzY3JlZW4pOgorICAgICAgICAoV2ViS2l0OjpWaWRl
b0Z1bGxzY3JlZW5NYW5hZ2VyUHJveHk6OmFwcGxpY2F0aW9uRGlkQmVjb21lQWN0aXZlKToKKyAg
ICAgICAgKFdlYktpdDo6VmlkZW9GdWxsc2NyZWVuTWFuYWdlclByb3h5OjpzZXR1cEZ1bGxzY3Jl
ZW5XaXRoSUQpOgorICAgICAgICAoV2ViS2l0OjpWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyUHJveHk6
OnNldEhhc1ZpZGVvKToKKyAgICAgICAgKFdlYktpdDo6VmlkZW9GdWxsc2NyZWVuTWFuYWdlclBy
b3h5OjpzZXRWaWRlb0RpbWVuc2lvbnMpOgorICAgICAgICAoV2ViS2l0OjpWaWRlb0Z1bGxzY3Jl
ZW5NYW5hZ2VyUHJveHk6OmVudGVyRnVsbHNjcmVlbik6CisgICAgICAgIChXZWJLaXQ6OlZpZGVv
RnVsbHNjcmVlbk1hbmFnZXJQcm94eTo6ZXhpdEZ1bGxzY3JlZW4pOgorICAgICAgICAoV2ViS2l0
OjpWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyUHJveHk6OmV4aXRGdWxsc2NyZWVuV2l0aG91dEFuaW1h
dGlvblRvTW9kZSk6CisgICAgICAgIChXZWJLaXQ6OlZpZGVvRnVsbHNjcmVlbk1hbmFnZXJQcm94
eTo6c2V0SW5saW5lUmVjdCk6CisgICAgICAgIChXZWJLaXQ6OlZpZGVvRnVsbHNjcmVlbk1hbmFn
ZXJQcm94eTo6c2V0SGFzVmlkZW9Db250ZW50TGF5ZXIpOgorICAgICAgICAoV2ViS2l0OjpWaWRl
b0Z1bGxzY3JlZW5NYW5hZ2VyUHJveHk6OmNsZWFudXBGdWxsc2NyZWVuKToKKyAgICAgICAgKFdl
YktpdDo6VmlkZW9GdWxsc2NyZWVuTWFuYWdlclByb3h5OjpwcmVwYXJlZFRvUmV0dXJuVG9Jbmxp
bmUpOgorICAgICAgICAoV2ViS2l0OjpWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyUHJveHk6OnByZXBh
cmVkVG9FeGl0RnVsbHNjcmVlbik6CisgICAgICAgICogVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5j
cHA6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6ZGlkQXR0YWNoVG9SdW5uaW5nUHJv
Y2Vzcyk6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6c2V0TW9ja1ZpZGVvUHJlc2Vu
dGF0aW9uTW9kZUVuYWJsZWQpOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaDoK
KyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUGFnZVByb3h5Lm1lc3NhZ2VzLmluOgorICAgICAgICAq
IFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmNwcDoKKyAgICAgICAg
KFdlYktpdDo6V2ViQ2hyb21lQ2xpZW50OjpzZXRNb2NrVmlkZW9QcmVzZW50YXRpb25Nb2RlRW5h
YmxlZCk6CisgICAgICAgIChXZWJLaXQ6OldlYkNocm9tZUNsaWVudDo6c2V0VXBQbGF5YmFja0Nv
bnRyb2xzTWFuYWdlcik6CisgICAgICAgIChXZWJLaXQ6OldlYkNocm9tZUNsaWVudDo6Y2xlYXJQ
bGF5YmFja0NvbnRyb2xzTWFuYWdlcik6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJDb3JlU3Vw
cG9ydC9XZWJDaHJvbWVDbGllbnQuaDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL2NvY29hL1ZpZGVv
RnVsbHNjcmVlbk1hbmFnZXIuaDoKKwogMjAyMC0wNS0wNSAgRGFuaWVsIEJhdGVzICA8ZGFiYXRl
c0BhcHBsZS5jb20+CiAKICAgICAgICAgU2hvdWxkIHNob3cgc2VsZWN0aW9uIGhpZ2hsaWdodCBk
dXJpbmcgdGV4dCBpbnRlcmFjdGlvbgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdExlZ2FjeS9t
YWMvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvQ2hhbmdlTG9nCmluZGV4IGMy
ZmUyNTc3NmM1ZmZhMzBiMDY2NWFhMWZhOWI0NjdiOTRkMTM4MWIuLjQ3M2QxZmUxMjUxODlmYjhh
NzY1YTU1YTA1NzUwMzEyYjUxNDJkMTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kv
bWFjL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9DaGFuZ2VMb2cKQEAg
LTEsMyArMSwyMSBAQAorMjAyMC0wNS0wNSAgUGVuZyBMaXUgIDxwZW5nLmxpdTZAYXBwbGUuY29t
PgorCisgICAgICAgIFVwZGF0ZSBXZWJLaXRUZXN0UnVubmVyIHRvIHN1cHBvcnQgcnVubmluZyBt
dWx0aXBsZSB2aWRlbyBmdWxsc2NyZWVuIGFuZCBQaWN0dXJlLWluLVBpY3R1cmUgdGVzdHMgc2lt
dWx0YW5lb3VzbHkKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTIwMzcyMworCisgICAgICAgIFJldmlld2VkIGJ5IEplciBOb2JsZS4KKworICAgICAgICBX
aGVuIHRoZSBmbGFnIE1vY2tWaWRlb1ByZXNlbnRhdGlvbk1vZGVFbmFibGVkIGlzIHRydWUsIFdl
YlZpZXcgd2lsbCBpZ25vcmUgdGhlIHJlcXVlc3RzIHRvCisgICAgICAgIFdlYlZpZGVvRnVsbHNj
cmVlbkNvbnRyb2xsZXIsIHNvIHRoYXQgdGhlIER1bXBSZW5kZXJUcmVlIGNhbiBydW4gbXVsdGlw
bGUgdmlkZW8gZnVsbHNjcmVlbgorICAgICAgICBhbmQgcGljdHVyZS1pbi1waWN0dXJlIHRlc3Rz
IGluIHBhcmFsbGVsLgorCisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50
Lmg6CisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50Lm1tOgorICAgICAg
ICAoV2ViQ2hyb21lQ2xpZW50OjpzZXRNb2NrVmlkZW9QcmVzZW50YXRpb25Nb2RlRW5hYmxlZCk6
CisgICAgICAgICogV2ViVmlldy9XZWJWaWV3Lm1tOgorICAgICAgICAqIFdlYlZpZXcvV2ViVmll
d0RhdGEuaDoKKyAgICAgICAgKiBXZWJWaWV3L1dlYlZpZXdJbnRlcm5hbC5oOgorCiAyMDIwLTA1
LTA1ICBEYXJpbiBBZGxlciAgPGRhcmluQGFwcGxlLmNvbT4KIAogICAgICAgICBSZW1vdmUgbm93
LXVuZWVkZWQgSEFWRSBtYWNyb3MgcmVsYXRlZCB0byBQREYKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3BhZ2UvQ2hyb21lQ2xpZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0Nocm9tZUNs
aWVudC5oCmluZGV4IDc1OGQzYzY2YzM0MDMzMjMxNDU5NDU1YmI0ZWU4MTdhMTIzNGUzYjQuLjM0
M2RhMmMxMjM4NTIxYTg2OWMyYThhNzdhNzNhYmQyOTVkNGI2NTEgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3BhZ2UvQ2hyb21lQ2xpZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9D
aHJvbWVDbGllbnQuaApAQCAtMzc4LDYgKzM3OCwxMCBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB2
b2lkIHNldFJvb3RGdWxsU2NyZWVuTGF5ZXIoR3JhcGhpY3NMYXllciopIHsgfQogI2VuZGlmCiAK
KyNpZiBFTkFCTEUoVklERU9fUFJFU0VOVEFUSU9OX01PREUpCisgICAgdmlydHVhbCB2b2lkIHNl
dE1vY2tWaWRlb1ByZXNlbnRhdGlvbk1vZGVFbmFibGVkKGJvb2wpIHsgfQorI2VuZGlmCisKICNp
ZiBVU0UoQ09PUkRJTkFURURfR1JBUEhJQ1MpCiAgICAgdmlydHVhbCBJbnRSZWN0IHZpc2libGVS
ZWN0Rm9yVGlsZWRCYWNraW5nU3RvcmUoKSBjb25zdCB7IHJldHVybiBJbnRSZWN0KCk7IH0KICNl
bmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuY3BwIGIv
U291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuY3BwCmluZGV4IGY1MjlkZjc1ZmE0ZjI2
YTMxNmVjNDIxMjA5ODUwMjk2ZjFiNjRjMzUuLmJmZTgxZDNjMjI4YTI4NGMyNmNiODRkYzg2YmVh
MTE3ZjM1ZGMyNzUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxz
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5jcHAKQEAgLTMyNzUs
NiArMzI3NSwxNyBAQCB2b2lkIEludGVybmFsczo6c2V0RnVsbHNjcmVlbkNvbnRyb2xzSGlkZGVu
KGJvb2wgaGlkZGVuKQogICAgIHBhZ2UtPnNldEZ1bGxzY3JlZW5Db250cm9sc0hpZGRlbihoaWRk
ZW4pOwogfQogCisjaWYgRU5BQkxFKFZJREVPX1BSRVNFTlRBVElPTl9NT0RFKQordm9pZCBJbnRl
cm5hbHM6OnNldE1vY2tWaWRlb1ByZXNlbnRhdGlvbk1vZGVFbmFibGVkKGJvb2wgZW5hYmxlZCkK
K3sKKyAgICBEb2N1bWVudCogZG9jdW1lbnQgPSBjb250ZXh0RG9jdW1lbnQoKTsKKyAgICBpZiAo
IWRvY3VtZW50IHx8ICFkb2N1bWVudC0+cGFnZSgpKQorICAgICAgICByZXR1cm47CisKKyAgICBk
b2N1bWVudC0+cGFnZSgpLT5jaHJvbWUoKS5jbGllbnQoKS5zZXRNb2NrVmlkZW9QcmVzZW50YXRp
b25Nb2RlRW5hYmxlZChlbmFibGVkKTsKK30KKyNlbmRpZgorCiB2b2lkIEludGVybmFsczo6c2V0
QXBwbGljYXRpb25DYWNoZU9yaWdpblF1b3RhKHVuc2lnbmVkIGxvbmcgbG9uZyBxdW90YSkKIHsK
ICAgICBEb2N1bWVudCogZG9jdW1lbnQgPSBjb250ZXh0RG9jdW1lbnQoKTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmggYi9Tb3VyY2UvV2ViQ29yZS90ZXN0
aW5nL0ludGVybmFscy5oCmluZGV4IDI4Njg2ZTlhZGM3MGE3NjQ1MmExNWRkOTRkZjNlNGNhMDlj
YmEyM2UuLmEzNmYwN2E3MGI1OGIzMWIyMzFmYzhiODA1ZjdhYzMxN2EyNDkzMjkgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmgKKysrIGIvU291cmNlL1dlYkNv
cmUvdGVzdGluZy9JbnRlcm5hbHMuaApAQCAtNDk3LDYgKzQ5NywxMCBAQCBwdWJsaWM6CiAgICAg
dm9pZCBzZXRGdWxsc2NyZWVuQXV0b0hpZGVEdXJhdGlvbihkb3VibGUpOwogICAgIHZvaWQgc2V0
RnVsbHNjcmVlbkNvbnRyb2xzSGlkZGVuKGJvb2wpOwogCisjaWYgRU5BQkxFKFZJREVPX1BSRVNF
TlRBVElPTl9NT0RFKQorICAgIHZvaWQgc2V0TW9ja1ZpZGVvUHJlc2VudGF0aW9uTW9kZUVuYWJs
ZWQoYm9vbCk7CisjZW5kaWYKKwogICAgIFdFQkNPUkVfVEVTVFNVUFBPUlRfRVhQT1JUIHZvaWQg
c2V0QXBwbGljYXRpb25DYWNoZU9yaWdpblF1b3RhKHVuc2lnbmVkIGxvbmcgbG9uZyk7CiAKICAg
ICB2b2lkIHJlZ2lzdGVyVVJMU2NoZW1lQXNCeXBhc3NpbmdDb250ZW50U2VjdXJpdHlQb2xpY3ko
Y29uc3QgU3RyaW5nJiBzY2hlbWUpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvdGVzdGlu
Zy9JbnRlcm5hbHMuaWRsIGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuaWRsCmlu
ZGV4IDA0MmQ5MGRiNGViMjEyNDE2MGU4YjM3Njc3OWFmYzVkNDYwZDdhZmMuLjM0YTJmMzNjZTZj
YzU3ZDFkMTgxM2ZkN2Q0ZTM0ZjQwZWUxN2Q2YjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3Rlc3RpbmcvSW50ZXJuYWxzLmlkbAorKysgYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVy
bmFscy5pZGwKQEAgLTUzMyw2ICs1MzMsOCBAQCBlbnVtIENvbXBvc2l0aW5nUG9saWN5IHsKICAg
ICB2b2lkIHNldEZ1bGxzY3JlZW5BdXRvSGlkZUR1cmF0aW9uKGRvdWJsZSBkdXJhdGlvbik7CiAg
ICAgdm9pZCBzZXRGdWxsc2NyZWVuQ29udHJvbHNIaWRkZW4oYm9vbGVhbiBoaWRkZW4pOwogCisg
ICAgW0NvbmRpdGlvbmFsPVZJREVPX1BSRVNFTlRBVElPTl9NT0RFXSB2b2lkIHNldE1vY2tWaWRl
b1ByZXNlbnRhdGlvbk1vZGVFbmFibGVkKGJvb2xlYW4gZW5hYmxlZCk7CisKICAgICB2b2lkIHNl
dEFwcGxpY2F0aW9uQ2FjaGVPcmlnaW5RdW90YSh1bnNpZ25lZCBsb25nIGxvbmcgcXVvdGEpOwog
CiAgICAgdm9pZCByZWdpc3RlclVSTFNjaGVtZUFzQnlwYXNzaW5nQ29udGVudFNlY3VyaXR5UG9s
aWN5KERPTVN0cmluZyBzY2hlbWUpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvQ29jb2EvVmlkZW9GdWxsc2NyZWVuTWFuYWdlclByb3h5LmggYi9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9Db2NvYS9WaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyUHJveHkuaAppbmRleCBmYmU1OGMw
ZGZjYTFlODQ5YWQ3ZDZjZjA2N2VjN2NiNThiMTBlMTRjLi5jMDUzNGU2MThhNjYyNWMzM2JhNTYz
ODRlMWFmNzg5ZTZiMDk1YzM1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9D
b2NvYS9WaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyUHJveHkuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9Db2NvYS9WaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyUHJveHkuaApAQCAtMTMwLDYgKzEz
MCw4IEBAIHB1YmxpYzoKICAgICB2b2lkIGFwcGxpY2F0aW9uRGlkQmVjb21lQWN0aXZlKCk7CiAg
ICAgYm9vbCBpc1Zpc2libGUoKSBjb25zdDsKIAorICAgIHZvaWQgc2V0TW9ja1ZpZGVvUHJlc2Vu
dGF0aW9uTW9kZUVuYWJsZWQoYm9vbCBlbmFibGVkKSB7IG1fbW9ja1ZpZGVvUHJlc2VudGF0aW9u
TW9kZUVuYWJsZWQgPSBlbmFibGVkOyB9CisKICAgICB2b2lkIHJlcXVlc3RSb3V0ZVNoYXJpbmdQ
b2xpY3lBbmRDb250ZXh0VUlEKHVpbnQ2NF90IGNvbnRleHRJZCwgQ29tcGxldGlvbkhhbmRsZXI8
dm9pZChXZWJDb3JlOjpSb3V0ZVNoYXJpbmdQb2xpY3ksIFN0cmluZyk+JiYpOwogCiAgICAgYm9v
bCBpc1BsYXlpbmdWaWRlb0luRW5oYW5jZWRGdWxsc2NyZWVuKCkgY29uc3Q7CkBAIC0xODAsNiAr
MTgyLDggQEAgcHJpdmF0ZToKICAgICB2b2lkIGZ1bGxzY3JlZW5Nb2RlQ2hhbmdlZCh1aW50NjRf
dCBjb250ZXh0SWQsIFdlYkNvcmU6OkhUTUxNZWRpYUVsZW1lbnRFbnVtczo6VmlkZW9GdWxsc2Ny
ZWVuTW9kZSk7CiAgICAgdm9pZCBmdWxsc2NyZWVuTWF5UmV0dXJuVG9JbmxpbmUodWludDY0X3Qg
Y29udGV4dElkKTsKIAorICAgIGJvb2wgbV9tb2NrVmlkZW9QcmVzZW50YXRpb25Nb2RlRW5hYmxl
ZCB7IGZhbHNlIH07CisKICAgICBXZWJQYWdlUHJveHkqIG1fcGFnZTsKICAgICBSZWY8UGxheWJh
Y2tTZXNzaW9uTWFuYWdlclByb3h5PiBtX3BsYXliYWNrU2Vzc2lvbk1hbmFnZXJQcm94eTsKICAg
ICBIYXNoTWFwPHVpbnQ2NF90LCBNb2RlbEludGVyZmFjZVR1cGxlPiBtX2NvbnRleHRNYXA7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9WaWRlb0Z1bGxzY3JlZW5N
YW5hZ2VyUHJveHkubW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9WaWRlb0Z1bGxz
Y3JlZW5NYW5hZ2VyUHJveHkubW0KaW5kZXggMWRmNWQ5MjgyYjZlNjMxNTU1NGZiNDM5NzBkN2Ni
ZDc5ODA3YzVjZC4uM2U1YWMxYmY3MzkzNGZjNzhkY2U0ZmRjZjU4ZGI0YjQxNmQ2MmU2NyAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvVmlkZW9GdWxsc2NyZWVuTWFu
YWdlclByb3h5Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1ZpZGVvRnVs
bHNjcmVlbk1hbmFnZXJQcm94eS5tbQpAQCAtMTUwLDEyICsxNTAsMTAgQEAgYm9vbCBWaWRlb0Z1
bGxzY3JlZW5NYW5hZ2VyUHJveHk6Om1heUF1dG9tYXRpY2FsbHlTaG93VmlkZW9QaWN0dXJlSW5Q
aWN0dXJlKCkgY28KIAogdm9pZCBWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyUHJveHk6OnJlcXVlc3RI
aWRlQW5kRXhpdEZ1bGxzY3JlZW4oKQogewotCiB9CiAKIHZvaWQgVmlkZW9GdWxsc2NyZWVuTWFu
YWdlclByb3h5OjphcHBsaWNhdGlvbkRpZEJlY29tZUFjdGl2ZSgpCiB7Ci0KIH0KICNlbHNlCiAK
QEAgLTQ5Nyw2ICs0OTUsMTUgQEAgdm9pZCBWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyUHJveHk6OnNl
dHVwRnVsbHNjcmVlbldpdGhJRCh1aW50NjRfdCBjb250ZXh0SWQsIHVpbnQKICAgICBhdXRvJiBb
bW9kZWwsIGludGVyZmFjZV0gPSBlbnN1cmVNb2RlbEFuZEludGVyZmFjZShjb250ZXh0SWQpOwog
ICAgIGFkZENsaWVudEZvckNvbnRleHQoY29udGV4dElkKTsKIAorICAgIGlmIChtX21vY2tWaWRl
b1ByZXNlbnRhdGlvbk1vZGVFbmFibGVkKSB7CisjaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKKyAg
ICAgICAgcmVxdWVzdFZpZGVvQ29udGVudExheWVyKGNvbnRleHRJZCk7CisjZWxzZQorICAgICAg
ICBkaWRTZXR1cEZ1bGxzY3JlZW4oY29udGV4dElkKTsKKyNlbmRpZgorICAgICAgICByZXR1cm47
CisgICAgfQorCiAgICAgUmV0YWluUHRyPFdLTGF5ZXJIb3N0Vmlldz4gdmlldyA9IHN0YXRpY19j
YXN0PFdLTGF5ZXJIb3N0Vmlldyo+KG1vZGVsLT5sYXllckhvc3RWaWV3KCkpOwogICAgIGlmICgh
dmlldykgewogICAgICAgICB2aWV3ID0gYWRvcHROUyhbW1dLTGF5ZXJIb3N0VmlldyBhbGxvY10g
aW5pdF0pOwpAQCAtNTI3LDE4ICs1MzQsMjggQEAgdm9pZCBWaWRlb0Z1bGxzY3JlZW5NYW5hZ2Vy
UHJveHk6OnNldHVwRnVsbHNjcmVlbldpdGhJRCh1aW50NjRfdCBjb250ZXh0SWQsIHVpbnQKIHZv
aWQgVmlkZW9GdWxsc2NyZWVuTWFuYWdlclByb3h5OjpzZXRIYXNWaWRlbyh1aW50NjRfdCBjb250
ZXh0SWQsIGJvb2wgaGFzVmlkZW8pCiB7CiAgICAgTUVTU0FHRV9DSEVDS19DT05URVhUSUQoY29u
dGV4dElkKTsKKyAgICBpZiAobV9tb2NrVmlkZW9QcmVzZW50YXRpb25Nb2RlRW5hYmxlZCkKKyAg
ICAgICAgcmV0dXJuOworCiAgICAgZW5zdXJlSW50ZXJmYWNlKGNvbnRleHRJZCkuaGFzVmlkZW9D
aGFuZ2VkKGhhc1ZpZGVvKTsKIH0KIAogdm9pZCBWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyUHJveHk6
OnNldFZpZGVvRGltZW5zaW9ucyh1aW50NjRfdCBjb250ZXh0SWQsIGNvbnN0IEZsb2F0U2l6ZSYg
dmlkZW9EaW1lbnNpb25zKQogewogICAgIE1FU1NBR0VfQ0hFQ0tfQ09OVEVYVElEKGNvbnRleHRJ
ZCk7CisgICAgaWYgKG1fbW9ja1ZpZGVvUHJlc2VudGF0aW9uTW9kZUVuYWJsZWQpCisgICAgICAg
IHJldHVybjsKKwogICAgIGVuc3VyZUludGVyZmFjZShjb250ZXh0SWQpLnZpZGVvRGltZW5zaW9u
c0NoYW5nZWQodmlkZW9EaW1lbnNpb25zKTsKIH0KIAogdm9pZCBWaWRlb0Z1bGxzY3JlZW5NYW5h
Z2VyUHJveHk6OmVudGVyRnVsbHNjcmVlbih1aW50NjRfdCBjb250ZXh0SWQpCiB7CiAgICAgTUVT
U0FHRV9DSEVDS19DT05URVhUSUQoY29udGV4dElkKTsKKyAgICBpZiAobV9tb2NrVmlkZW9QcmVz
ZW50YXRpb25Nb2RlRW5hYmxlZCkgeworICAgICAgICBkaWRFbnRlckZ1bGxzY3JlZW4oY29udGV4
dElkKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KIAogICAgIGF1dG8mIGludGVyZmFjZSA9IGVu
c3VyZUludGVyZmFjZShjb250ZXh0SWQpOwogICAgIGludGVyZmFjZS5lbnRlckZ1bGxzY3JlZW4o
KTsKQEAgLTU2MywxMSArNTgwLDIzIEBAIHZvaWQgVmlkZW9GdWxsc2NyZWVuTWFuYWdlclByb3h5
OjpleGl0RnVsbHNjcmVlbih1aW50NjRfdCBjb250ZXh0SWQsIFdlYkNvcmU6OkluCiAgICAgaWYg
KCFtX2NvbnRleHRNYXAuY29udGFpbnMoY29udGV4dElkKSkKICAgICAgICAgcmV0dXJuOwogCisj
aWYgIVBMQVRGT1JNKElPU19GQU1JTFkpCisgICAgSW50UmVjdCBmaW5hbFdpbmRvd1JlY3Q7Cisg
ICAgbV9wYWdlLT5yb290Vmlld1RvV2luZG93KGZpbmFsUmVjdCwgZmluYWxXaW5kb3dSZWN0KTsK
KyNlbmRpZgorCisgICAgaWYgKG1fbW9ja1ZpZGVvUHJlc2VudGF0aW9uTW9kZUVuYWJsZWQpIHsK
KyNpZiBQTEFURk9STShJT1NfRkFNSUxZKQorICAgICAgICByZXR1cm5WaWRlb0NvbnRlbnRMYXll
cihjb250ZXh0SWQpOworI2Vsc2UKKyAgICAgICAgZGlkRXhpdEZ1bGxzY3JlZW4oY29udGV4dElk
KTsKKyNlbmRpZgorICAgICAgICByZXR1cm47CisgICAgfQorCiAjaWYgUExBVEZPUk0oSU9TX0ZB
TUlMWSkKICAgICBlbnN1cmVJbnRlcmZhY2UoY29udGV4dElkKS5leGl0RnVsbHNjcmVlbihmaW5h
bFJlY3QpOwogI2Vsc2UKLSAgICBJbnRSZWN0IGZpbmFsV2luZG93UmVjdDsKLSAgICBtX3BhZ2Ut
PnJvb3RWaWV3VG9XaW5kb3coZmluYWxSZWN0LCBmaW5hbFdpbmRvd1JlY3QpOwogICAgIGVuc3Vy
ZUludGVyZmFjZShjb250ZXh0SWQpLmV4aXRGdWxsc2NyZWVuKGZpbmFsV2luZG93UmVjdCwgbV9w
YWdlLT5wbGF0Zm9ybVdpbmRvdygpKTsKICNlbmRpZgogfQpAQCAtNTc1LDYgKzYwNCw5IEBAIHZv
aWQgVmlkZW9GdWxsc2NyZWVuTWFuYWdlclByb3h5OjpleGl0RnVsbHNjcmVlbih1aW50NjRfdCBj
b250ZXh0SWQsIFdlYkNvcmU6OkluCiB2b2lkIFZpZGVvRnVsbHNjcmVlbk1hbmFnZXJQcm94eTo6
ZXhpdEZ1bGxzY3JlZW5XaXRob3V0QW5pbWF0aW9uVG9Nb2RlKHVpbnQ2NF90IGNvbnRleHRJZCwg
V2ViQ29yZTo6SFRNTE1lZGlhRWxlbWVudEVudW1zOjpWaWRlb0Z1bGxzY3JlZW5Nb2RlIHRhcmdl
dE1vZGUpCiB7CiAgICAgTUVTU0FHRV9DSEVDS19DT05URVhUSUQoY29udGV4dElkKTsKKyAgICBp
ZiAobV9tb2NrVmlkZW9QcmVzZW50YXRpb25Nb2RlRW5hYmxlZCkKKyAgICAgICAgcmV0dXJuOwor
CiAjaWYgUExBVEZPUk0oTUFDKQogICAgIGVuc3VyZUludGVyZmFjZShjb250ZXh0SWQpLmV4aXRG
dWxsc2NyZWVuV2l0aG91dEFuaW1hdGlvblRvTW9kZSh0YXJnZXRNb2RlKTsKICNlbHNlCkBAIC01
OTIsMTIgKzYyNCwyNCBAQCB2b2lkIFZpZGVvRnVsbHNjcmVlbk1hbmFnZXJQcm94eTo6ZXhpdEZ1
bGxzY3JlZW5XaXRob3V0QW5pbWF0aW9uVG9Nb2RlKHVpbnQ2NF90CiB2b2lkIFZpZGVvRnVsbHNj
cmVlbk1hbmFnZXJQcm94eTo6c2V0SW5saW5lUmVjdCh1aW50NjRfdCBjb250ZXh0SWQsIGNvbnN0
IFdlYkNvcmU6OkludFJlY3QmIGlubGluZVJlY3QsIGJvb2wgdmlzaWJsZSkKIHsKICAgICBNRVNT
QUdFX0NIRUNLX0NPTlRFWFRJRChjb250ZXh0SWQpOworICAgIGlmIChtX21vY2tWaWRlb1ByZXNl
bnRhdGlvbk1vZGVFbmFibGVkKQorICAgICAgICByZXR1cm47CisKICAgICBlbnN1cmVJbnRlcmZh
Y2UoY29udGV4dElkKS5zZXRJbmxpbmVSZWN0KGlubGluZVJlY3QsIHZpc2libGUpOwogfQogCiB2
b2lkIFZpZGVvRnVsbHNjcmVlbk1hbmFnZXJQcm94eTo6c2V0SGFzVmlkZW9Db250ZW50TGF5ZXIo
dWludDY0X3QgY29udGV4dElkLCBib29sIHZhbHVlKQogewogICAgIE1FU1NBR0VfQ0hFQ0tfQ09O
VEVYVElEKGNvbnRleHRJZCk7CisgICAgaWYgKG1fbW9ja1ZpZGVvUHJlc2VudGF0aW9uTW9kZUVu
YWJsZWQpIHsKKyAgICAgICAgaWYgKHZhbHVlKQorICAgICAgICAgICAgZGlkU2V0dXBGdWxsc2Ny
ZWVuKGNvbnRleHRJZCk7CisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIGRpZEV4aXRGdWxsc2Ny
ZWVuKGNvbnRleHRJZCk7CisKKyAgICAgICAgcmV0dXJuOworICAgIH0KKwogICAgIGVuc3VyZUlu
dGVyZmFjZShjb250ZXh0SWQpLnNldEhhc1ZpZGVvQ29udGVudExheWVyKHZhbHVlKTsKIH0KIApA
QCAtNjE4LDYgKzY2MiwxMSBAQCBOT19SRVRVUk5fRFVFX1RPX0FTU0VSVCB2b2lkIFZpZGVvRnVs
bHNjcmVlbk1hbmFnZXJQcm94eTo6c2V0SGFzVmlkZW9Db250ZW50TGF5ZQogdm9pZCBWaWRlb0Z1
bGxzY3JlZW5NYW5hZ2VyUHJveHk6OmNsZWFudXBGdWxsc2NyZWVuKHVpbnQ2NF90IGNvbnRleHRJ
ZCkKIHsKICAgICBNRVNTQUdFX0NIRUNLX0NPTlRFWFRJRChjb250ZXh0SWQpOworICAgIGlmICht
X21vY2tWaWRlb1ByZXNlbnRhdGlvbk1vZGVFbmFibGVkKSB7CisgICAgICAgIGRpZENsZWFudXBG
dWxsc2NyZWVuKGNvbnRleHRJZCk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKICAgICBlbnN1
cmVJbnRlcmZhY2UoY29udGV4dElkKS5jbGVhbnVwRnVsbHNjcmVlbigpOwogfQogCkBAIC02MjYs
MTEgKzY3NSwxNyBAQCB2b2lkIFZpZGVvRnVsbHNjcmVlbk1hbmFnZXJQcm94eTo6cHJlcGFyZWRU
b1JldHVyblRvSW5saW5lKHVpbnQ2NF90IGNvbnRleHRJZCwgYgogICAgIE1FU1NBR0VfQ0hFQ0tf
Q09OVEVYVElEKGNvbnRleHRJZCk7CiAgICAgbV9wYWdlLT5mdWxsc2NyZWVuTWF5UmV0dXJuVG9J
bmxpbmUoKTsKIAorI2lmICFQTEFURk9STShJT1NfRkFNSUxZKQorICAgIEludFJlY3QgaW5saW5l
V2luZG93UmVjdDsKKyAgICBtX3BhZ2UtPnJvb3RWaWV3VG9XaW5kb3coaW5saW5lUmVjdCwgaW5s
aW5lV2luZG93UmVjdCk7CisjZW5kaWYKKworICAgIGlmIChtX21vY2tWaWRlb1ByZXNlbnRhdGlv
bk1vZGVFbmFibGVkKQorICAgICAgICByZXR1cm47CisKICNpZiBQTEFURk9STShJT1NfRkFNSUxZ
KQogICAgIGVuc3VyZUludGVyZmFjZShjb250ZXh0SWQpLnByZXBhcmVkVG9SZXR1cm5Ub0lubGlu
ZSh2aXNpYmxlLCBpbmxpbmVSZWN0KTsKICNlbHNlCi0gICAgSW50UmVjdCBpbmxpbmVXaW5kb3dS
ZWN0OwotICAgIG1fcGFnZS0+cm9vdFZpZXdUb1dpbmRvdyhpbmxpbmVSZWN0LCBpbmxpbmVXaW5k
b3dSZWN0KTsKICAgICBlbnN1cmVJbnRlcmZhY2UoY29udGV4dElkKS5wcmVwYXJlZFRvUmV0dXJu
VG9JbmxpbmUodmlzaWJsZSwgaW5saW5lV2luZG93UmVjdCwgbV9wYWdlLT5wbGF0Zm9ybVdpbmRv
dygpKTsKICNlbmRpZgogfQpAQCAtNjM4LDYgKzY5Myw5IEBAIHZvaWQgVmlkZW9GdWxsc2NyZWVu
TWFuYWdlclByb3h5OjpwcmVwYXJlZFRvUmV0dXJuVG9JbmxpbmUodWludDY0X3QgY29udGV4dElk
LCBiCiB2b2lkIFZpZGVvRnVsbHNjcmVlbk1hbmFnZXJQcm94eTo6cHJlcGFyZWRUb0V4aXRGdWxs
c2NyZWVuKHVpbnQ2NF90IGNvbnRleHRJZCkKIHsKICAgICBNRVNTQUdFX0NIRUNLX0NPTlRFWFRJ
RChjb250ZXh0SWQpOworICAgIGlmIChtX21vY2tWaWRlb1ByZXNlbnRhdGlvbk1vZGVFbmFibGVk
KQorICAgICAgICByZXR1cm47CisKICAgICBlbnN1cmVJbnRlcmZhY2UoY29udGV4dElkKS5wcmVw
YXJlZFRvRXhpdEZ1bGxzY3JlZW4oKTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBh
Z2VQcm94eS5jcHAKaW5kZXggZWY5ZWNkZTFjNDAwNWRmZTExZjQ3ZTIxMTU4ZDI1MGRhMmMxYmFi
ZC4uNTJkYTFmNzZiNGE3MzYxMmJiODE1MDZhMzkwZmE3NjY5YjY5NDViNSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcAorKysgYi9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwCkBAIC05NjEsNiArOTYxLDggQEAgdm9pZCBX
ZWJQYWdlUHJveHk6OmRpZEF0dGFjaFRvUnVubmluZ1Byb2Nlc3MoKQogICAgIG1fcGxheWJhY2tT
ZXNzaW9uTWFuYWdlciA9IFBsYXliYWNrU2Vzc2lvbk1hbmFnZXJQcm94eTo6Y3JlYXRlKCp0aGlz
KTsKICAgICBBU1NFUlQoIW1fdmlkZW9GdWxsc2NyZWVuTWFuYWdlcik7CiAgICAgbV92aWRlb0Z1
bGxzY3JlZW5NYW5hZ2VyID0gVmlkZW9GdWxsc2NyZWVuTWFuYWdlclByb3h5OjpjcmVhdGUoKnRo
aXMsICptX3BsYXliYWNrU2Vzc2lvbk1hbmFnZXIpOworICAgIGlmIChtX3ZpZGVvRnVsbHNjcmVl
bk1hbmFnZXIpCisgICAgICAgIG1fdmlkZW9GdWxsc2NyZWVuTWFuYWdlci0+c2V0TW9ja1ZpZGVv
UHJlc2VudGF0aW9uTW9kZUVuYWJsZWQobV9tb2NrVmlkZW9QcmVzZW50YXRpb25Nb2RlRW5hYmxl
ZCk7CiAjZW5kaWYKIAogI2lmIEVOQUJMRShBUFBMRV9QQVkpCkBAIC02MjI1LDYgKzYyMjcsMTMg
QEAgVmlkZW9GdWxsc2NyZWVuTWFuYWdlclByb3h5KiBXZWJQYWdlUHJveHk6OnZpZGVvRnVsbHNj
cmVlbk1hbmFnZXIoKQogewogICAgIHJldHVybiBtX3ZpZGVvRnVsbHNjcmVlbk1hbmFnZXIuZ2V0
KCk7CiB9CisKK3ZvaWQgV2ViUGFnZVByb3h5OjpzZXRNb2NrVmlkZW9QcmVzZW50YXRpb25Nb2Rl
RW5hYmxlZChib29sIGVuYWJsZWQpCit7CisgICAgbV9tb2NrVmlkZW9QcmVzZW50YXRpb25Nb2Rl
RW5hYmxlZCA9IGVuYWJsZWQ7CisgICAgaWYgKG1fdmlkZW9GdWxsc2NyZWVuTWFuYWdlcikKKyAg
ICAgICAgbV92aWRlb0Z1bGxzY3JlZW5NYW5hZ2VyLT5zZXRNb2NrVmlkZW9QcmVzZW50YXRpb25N
b2RlRW5hYmxlZChlbmFibGVkKTsKK30KICNlbmRpZgogCiAjaWYgUExBVEZPUk0oSU9TX0ZBTUlM
WSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oIGIv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmgKaW5kZXggM2I0MTI5ZmUxNmIw
ZjhmZmZlNGIxYzhjMTkwMDgzN2I0YzdlY2ViNS4uOTY1MjNmMmZkZWE3YjVlYWRhOWEzYzBkY2Vj
MTFhMWI3MzcwNGNjMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFn
ZVByb3h5LmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmgKQEAg
LTUyNyw2ICs1MjcsNyBAQCBwdWJsaWM6CiAjaWYgRU5BQkxFKFZJREVPX1BSRVNFTlRBVElPTl9N
T0RFKQogICAgIFBsYXliYWNrU2Vzc2lvbk1hbmFnZXJQcm94eSogcGxheWJhY2tTZXNzaW9uTWFu
YWdlcigpOwogICAgIFZpZGVvRnVsbHNjcmVlbk1hbmFnZXJQcm94eSogdmlkZW9GdWxsc2NyZWVu
TWFuYWdlcigpOworICAgIHZvaWQgc2V0TW9ja1ZpZGVvUHJlc2VudGF0aW9uTW9kZUVuYWJsZWQo
Ym9vbCk7CiAjZW5kaWYKIAogI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCkBAIC0yMzg0LDYgKzIz
ODUsNyBAQCBwcml2YXRlOgogI2lmIEVOQUJMRShWSURFT19QUkVTRU5UQVRJT05fTU9ERSkKICAg
ICBSZWZQdHI8UGxheWJhY2tTZXNzaW9uTWFuYWdlclByb3h5PiBtX3BsYXliYWNrU2Vzc2lvbk1h
bmFnZXI7CiAgICAgUmVmUHRyPFZpZGVvRnVsbHNjcmVlbk1hbmFnZXJQcm94eT4gbV92aWRlb0Z1
bGxzY3JlZW5NYW5hZ2VyOworICAgIGJvb2wgbV9tb2NrVmlkZW9QcmVzZW50YXRpb25Nb2RlRW5h
YmxlZCB7IGZhbHNlIH07CiAjZW5kaWYKIAogI2lmIEVOQUJMRShNRURJQV9VU0FHRSkKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5tZXNzYWdlcy5pbiBi
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5tZXNzYWdlcy5pbgppbmRleCA0
YjRkNDA4OThjNmZkNzZkNDdmNWYwMjJlZTg5OWEyZTNhMzAwM2MxLi44ZjgwYmE0MDgxZGRlYmQ1
ZmQyOGNkOTljNDIzYTNhNjA2NzU2MWVjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9XZWJQYWdlUHJveHkubWVzc2FnZXMuaW4KKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvV2ViUGFnZVByb3h5Lm1lc3NhZ2VzLmluCkBAIC01MDgsNiArNTA4LDEwIEBAIG1lc3NhZ2Vz
IC0+IFdlYlBhZ2VQcm94eSB7CiAgICAgTW9ja01lZGlhUGxheWJhY2tUYXJnZXRQaWNrZXJEaXNt
aXNzUG9wdXAoKQogI2VuZGlmCiAKKyNpZiBFTkFCTEUoVklERU9fUFJFU0VOVEFUSU9OX01PREUp
CisgICAgU2V0TW9ja1ZpZGVvUHJlc2VudGF0aW9uTW9kZUVuYWJsZWQoYm9vbCBlbmFibGVkKQor
I2VuZGlmCisKICNpZiBFTkFCTEUoUE9JTlRFUl9MT0NLKQogICAgIFJlcXVlc3RQb2ludGVyTG9j
aygpCiAgICAgUmVxdWVzdFBvaW50ZXJVbmxvY2soKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5jcHAgYi9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmNwcAppbmRl
eCBhNjgzNmM5ODQ3NjgzYzc1N2IzODZkOTZjZjk3N2Q2Y2M1MjI2MzA5Li41NmFhMTM2YWM0YTM3
ODRkNGI3YmEyNTUwMTMxODcyM2FlN2I1N2I5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmNwcAorKysgYi9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmNwcApAQCAt
OTg3LDE0ICs5ODcsOSBAQCBib29sIFdlYkNocm9tZUNsaWVudDo6c3VwcG9ydHNWaWRlb0Z1bGxz
Y3JlZW5TdGFuZGJ5KCkKICAgICByZXR1cm4gbV9wYWdlLnZpZGVvRnVsbHNjcmVlbk1hbmFnZXIo
KS5zdXBwb3J0c1ZpZGVvRnVsbHNjcmVlblN0YW5kYnkoKTsKIH0KIAotdm9pZCBXZWJDaHJvbWVD
bGllbnQ6OnNldFVwUGxheWJhY2tDb250cm9sc01hbmFnZXIoSFRNTE1lZGlhRWxlbWVudCYgbWVk
aWFFbGVtZW50KQordm9pZCBXZWJDaHJvbWVDbGllbnQ6OnNldE1vY2tWaWRlb1ByZXNlbnRhdGlv
bk1vZGVFbmFibGVkKGJvb2wgZW5hYmxlZCkKIHsKLSAgICBtX3BhZ2UucGxheWJhY2tTZXNzaW9u
TWFuYWdlcigpLnNldFVwUGxheWJhY2tDb250cm9sc01hbmFnZXIobWVkaWFFbGVtZW50KTsKLX0K
LQotdm9pZCBXZWJDaHJvbWVDbGllbnQ6OmNsZWFyUGxheWJhY2tDb250cm9sc01hbmFnZXIoKQot
ewotICAgIG1fcGFnZS5wbGF5YmFja1Nlc3Npb25NYW5hZ2VyKCkuY2xlYXJQbGF5YmFja0NvbnRy
b2xzTWFuYWdlcigpOworICAgIG1fcGFnZS5zZW5kKE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6OlNl
dE1vY2tWaWRlb1ByZXNlbnRhdGlvbk1vZGVFbmFibGVkKGVuYWJsZWQpKTsKIH0KIAogdm9pZCBX
ZWJDaHJvbWVDbGllbnQ6OmVudGVyVmlkZW9GdWxsc2NyZWVuRm9yVmlkZW9FbGVtZW50KEhUTUxW
aWRlb0VsZW1lbnQmIHZpZGVvRWxlbWVudCwgSFRNTE1lZGlhRWxlbWVudEVudW1zOjpWaWRlb0Z1
bGxzY3JlZW5Nb2RlIG1vZGUsIGJvb2wgc3RhbmRieSkKQEAgLTEwMTEsNiArMTAwNiwxNyBAQCB2
b2lkIFdlYkNocm9tZUNsaWVudDo6ZXhpdFZpZGVvRnVsbHNjcmVlbkZvclZpZGVvRWxlbWVudChI
VE1MVmlkZW9FbGVtZW50JiB2aWRlbwogewogICAgIG1fcGFnZS52aWRlb0Z1bGxzY3JlZW5NYW5h
Z2VyKCkuZXhpdFZpZGVvRnVsbHNjcmVlbkZvclZpZGVvRWxlbWVudCh2aWRlb0VsZW1lbnQpOwog
fQorCit2b2lkIFdlYkNocm9tZUNsaWVudDo6c2V0VXBQbGF5YmFja0NvbnRyb2xzTWFuYWdlcihI
VE1MTWVkaWFFbGVtZW50JiBtZWRpYUVsZW1lbnQpCit7CisgICAgbV9wYWdlLnBsYXliYWNrU2Vz
c2lvbk1hbmFnZXIoKS5zZXRVcFBsYXliYWNrQ29udHJvbHNNYW5hZ2VyKG1lZGlhRWxlbWVudCk7
Cit9CisKK3ZvaWQgV2ViQ2hyb21lQ2xpZW50OjpjbGVhclBsYXliYWNrQ29udHJvbHNNYW5hZ2Vy
KCkKK3sKKyAgICBtX3BhZ2UucGxheWJhY2tTZXNzaW9uTWFuYWdlcigpLmNsZWFyUGxheWJhY2tD
b250cm9sc01hbmFnZXIoKTsKK30KKwogI2VuZGlmCiAKICNpZiBFTkFCTEUoTUVESUFfVVNBR0Up
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2Vi
Q2hyb21lQ2xpZW50LmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQv
V2ViQ2hyb21lQ2xpZW50LmgKaW5kZXggODZkZjYzZjU2MTNjMmQyYjJmN2UyYWY1MjM1ZTgyNjE0
ZDI1MDI2My4uMmFkZWQxMzMwODg4NTY2MmQxNjgyYjg0NjUwZThjYTMxNWNlNTJmMyAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNs
aWVudC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJD
aHJvbWVDbGllbnQuaApAQCAtMjY0LDEwICsyNjQsMTEgQEAgcHJpdmF0ZToKICNpZiBFTkFCTEUo
VklERU9fUFJFU0VOVEFUSU9OX01PREUpCiAgICAgYm9vbCBzdXBwb3J0c1ZpZGVvRnVsbHNjcmVl
bihXZWJDb3JlOjpIVE1MTWVkaWFFbGVtZW50RW51bXM6OlZpZGVvRnVsbHNjcmVlbk1vZGUpIGZp
bmFsOwogICAgIGJvb2wgc3VwcG9ydHNWaWRlb0Z1bGxzY3JlZW5TdGFuZGJ5KCkgZmluYWw7Ci0g
ICAgdm9pZCBzZXRVcFBsYXliYWNrQ29udHJvbHNNYW5hZ2VyKFdlYkNvcmU6OkhUTUxNZWRpYUVs
ZW1lbnQmKSBmaW5hbDsKLSAgICB2b2lkIGNsZWFyUGxheWJhY2tDb250cm9sc01hbmFnZXIoKSBm
aW5hbDsKKyAgICB2b2lkIHNldE1vY2tWaWRlb1ByZXNlbnRhdGlvbk1vZGVFbmFibGVkKGJvb2wp
IGZpbmFsOwogICAgIHZvaWQgZW50ZXJWaWRlb0Z1bGxzY3JlZW5Gb3JWaWRlb0VsZW1lbnQoV2Vi
Q29yZTo6SFRNTFZpZGVvRWxlbWVudCYsIFdlYkNvcmU6OkhUTUxNZWRpYUVsZW1lbnRFbnVtczo6
VmlkZW9GdWxsc2NyZWVuTW9kZSwgYm9vbCBzdGFuZGJ5KSBmaW5hbDsKICAgICB2b2lkIGV4aXRW
aWRlb0Z1bGxzY3JlZW5Gb3JWaWRlb0VsZW1lbnQoV2ViQ29yZTo6SFRNTFZpZGVvRWxlbWVudCYp
IGZpbmFsOworICAgIHZvaWQgc2V0VXBQbGF5YmFja0NvbnRyb2xzTWFuYWdlcihXZWJDb3JlOjpI
VE1MTWVkaWFFbGVtZW50JikgZmluYWw7CisgICAgdm9pZCBjbGVhclBsYXliYWNrQ29udHJvbHNN
YW5hZ2VyKCkgZmluYWw7CiAjZW5kaWYKIAogI2lmIEVOQUJMRShNRURJQV9VU0FHRSkKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9jb2NvYS9WaWRlb0Z1bGxzY3JlZW5NYW5h
Z2VyLmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvY29jb2EvVmlkZW9GdWxsc2NyZWVuTWFu
YWdlci5oCmluZGV4IGYxMzZlY2I5ZGQzZWFjZWZhZGQ5NzRiZGNkYmQ0MmNhZWZmNjI3Y2YuLmJj
Y2E3NjFhNzI0YjdmZTQ0ZGVkZTk2YjY0MGU4ZmYwZDAzYzJkNzcgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9jb2NvYS9WaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyLmgKKysrIGIv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL2NvY29hL1ZpZGVvRnVsbHNjcmVlbk1hbmFnZXIuaApA
QCAtMTE1LDcgKzExNSw3IEBAIHB1YmxpYzoKICAgICAKICAgICB2b2lkIGRpZFJlY2VpdmVNZXNz
YWdlKElQQzo6Q29ubmVjdGlvbiYsIElQQzo6RGVjb2RlciYpIG92ZXJyaWRlOwogCi0gICAgLy8g
SW50ZXJmYWNlIHRvIENocm9tZUNsaWVudAorICAgIC8vIEludGVyZmFjZSB0byBXZWJDaHJvbWVD
bGllbnQKICAgICBib29sIHN1cHBvcnRzVmlkZW9GdWxsc2NyZWVuKFdlYkNvcmU6OkhUTUxNZWRp
YUVsZW1lbnRFbnVtczo6VmlkZW9GdWxsc2NyZWVuTW9kZSkgY29uc3Q7CiAgICAgYm9vbCBzdXBw
b3J0c1ZpZGVvRnVsbHNjcmVlblN0YW5kYnkoKSBjb25zdDsKICAgICB2b2lkIGVudGVyVmlkZW9G
dWxsc2NyZWVuRm9yVmlkZW9FbGVtZW50KFdlYkNvcmU6OkhUTUxWaWRlb0VsZW1lbnQmLCBXZWJD
b3JlOjpIVE1MTWVkaWFFbGVtZW50RW51bXM6OlZpZGVvRnVsbHNjcmVlbk1vZGUsIGJvb2wgc3Rh
bmRieSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJDb3JlU3VwcG9y
dC9XZWJDaHJvbWVDbGllbnQuaCBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYkNvcmVTdXBw
b3J0L1dlYkNocm9tZUNsaWVudC5oCmluZGV4IGE3ZDA2OTBiZmFkYjM3YjVlYjgyNThlZDE5NjRk
M2EwYzYzODdkMjcuLjNhYzIzMGQ4YTI2ZDcwMTYzNDY1N2YyYjhiYzI5OTE0YjBhMWMwYjkgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9t
ZUNsaWVudC5oCisrKyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYkNvcmVTdXBwb3J0L1dl
YkNocm9tZUNsaWVudC5oCkBAIC0xOTMsMTAgKzE5MywxMyBAQCBwcml2YXRlOgogCiAjaWYgRU5B
QkxFKFZJREVPKQogICAgIGJvb2wgc3VwcG9ydHNWaWRlb0Z1bGxzY3JlZW4oV2ViQ29yZTo6SFRN
TE1lZGlhRWxlbWVudEVudW1zOjpWaWRlb0Z1bGxzY3JlZW5Nb2RlKSBmaW5hbDsKKyNpZiBFTkFC
TEUoVklERU9fUFJFU0VOVEFUSU9OX01PREUpCisgICAgdm9pZCBzZXRNb2NrVmlkZW9QcmVzZW50
YXRpb25Nb2RlRW5hYmxlZChib29sKSBmaW5hbDsKICAgICB2b2lkIGVudGVyVmlkZW9GdWxsc2Ny
ZWVuRm9yVmlkZW9FbGVtZW50KFdlYkNvcmU6OkhUTUxWaWRlb0VsZW1lbnQmLCBXZWJDb3JlOjpI
VE1MTWVkaWFFbGVtZW50RW51bXM6OlZpZGVvRnVsbHNjcmVlbk1vZGUsIGJvb2wgc3RhbmRieSkg
ZmluYWw7CiAgICAgdm9pZCBleGl0VmlkZW9GdWxsc2NyZWVuRm9yVmlkZW9FbGVtZW50KFdlYkNv
cmU6OkhUTUxWaWRlb0VsZW1lbnQmKSBmaW5hbDsKICAgICB2b2lkIGV4aXRWaWRlb0Z1bGxzY3Jl
ZW5Ub01vZGVXaXRob3V0QW5pbWF0aW9uKFdlYkNvcmU6OkhUTUxWaWRlb0VsZW1lbnQmLCBXZWJD
b3JlOjpIVE1MTWVkaWFFbGVtZW50RW51bXM6OlZpZGVvRnVsbHNjcmVlbk1vZGUpIGZpbmFsOwog
I2VuZGlmCisjZW5kaWYKIAogI2lmIEVOQUJMRShGVUxMU0NSRUVOX0FQSSkKICAgICBib29sIHN1
cHBvcnRzRnVsbFNjcmVlbkZvckVsZW1lbnQoY29uc3QgV2ViQ29yZTo6RWxlbWVudCYsIGJvb2wg
d2l0aEtleWJvYXJkKSBmaW5hbDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFj
L1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5tbSBiL1NvdXJjZS9XZWJLaXRMZWdhY3kv
bWFjL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5tbQppbmRleCA2ZDY4ZGY3YzcyN2U3
MTFhZTZmMjY4NTNkZGRlOTJiMzVlNGQ4NGI0Li44OTQ4MTYzNzZiZjg3ZTMyMTM3ODg1ZTAwNjA5
YzIzYzk2YzRmNTA5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJDb3Jl
U3VwcG9ydC9XZWJDaHJvbWVDbGllbnQubW0KKysrIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMv
V2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50Lm1tCkBAIC05NjUsNiArOTY1LDEzIEBAIGJv
b2wgV2ViQ2hyb21lQ2xpZW50OjpzdXBwb3J0c1ZpZGVvRnVsbHNjcmVlbihIVE1MTWVkaWFFbGVt
ZW50RW51bXM6OlZpZGVvRnVsbHNjCiAgICAgcmV0dXJuIHRydWU7CiB9CiAKKyNpZiBFTkFCTEUo
VklERU9fUFJFU0VOVEFUSU9OX01PREUpCisKK3ZvaWQgV2ViQ2hyb21lQ2xpZW50OjpzZXRNb2Nr
VmlkZW9QcmVzZW50YXRpb25Nb2RlRW5hYmxlZChib29sIGVuYWJsZWQpCit7CisgICAgW21fd2Vi
VmlldyBfc2V0TW9ja1ZpZGVvUHJlc2VudGF0aW9uTW9kZUVuYWJsZWQ6ZW5hYmxlZF07Cit9CisK
IHZvaWQgV2ViQ2hyb21lQ2xpZW50OjplbnRlclZpZGVvRnVsbHNjcmVlbkZvclZpZGVvRWxlbWVu
dChIVE1MVmlkZW9FbGVtZW50JiB2aWRlb0VsZW1lbnQsIEhUTUxNZWRpYUVsZW1lbnRFbnVtczo6
VmlkZW9GdWxsc2NyZWVuTW9kZSBtb2RlLCBib29sIHN0YW5kYnkpCiB7CiAgICAgQVNTRVJUX1VO
VVNFRChzdGFuZGJ5LCAhc3RhbmRieSk7CkBAIC05ODgsNiArOTk1LDggQEAgdm9pZCBXZWJDaHJv
bWVDbGllbnQ6OmV4aXRWaWRlb0Z1bGxzY3JlZW5Ub01vZGVXaXRob3V0QW5pbWF0aW9uKEhUTUxW
aWRlb0VsZW1lbnQKICAgICBFTkRfQkxPQ0tfT0JKQ19FWENFUFRJT05TOwogfQogCisjZW5kaWYg
Ly8gRU5BQkxFKFZJREVPX1BSRVNFTlRBVElPTl9NT0RFKQorCiAjZW5kaWYgLy8gRU5BQkxFKFZJ
REVPKQogCiAjaWYgRU5BQkxFKFZJREVPKSAmJiBQTEFURk9STShNQUMpICYmIEVOQUJMRShWSURF
T19QUkVTRU5UQVRJT05fTU9ERSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFj
L1dlYlZpZXcvV2ViVmlldy5tbSBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcvV2Vi
Vmlldy5tbQppbmRleCAzMGYwMTMzOGNhMjJiMDJiY2U5MGRkYjRlNzhjMjdiN2RiNWQyYTYzLi5m
ZTExZmRlOTQwNzY2YzA3YmZhZDViNWIyODI5MDRlZWZlZGI1MTVkIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3L1dlYlZpZXcubW0KKysrIGIvU291cmNlL1dlYktp
dExlZ2FjeS9tYWMvV2ViVmlldy9XZWJWaWV3Lm1tCkBAIC0yMzUxLDcgKzIzNTEsNyBAQCAtICh2
b2lkKV9jbG9zZQogICAgICAgICByZXR1cm47CiAgICAgfQogCi0jaWYgRU5BQkxFKFZJREVPKSAm
JiAhUExBVEZPUk0oSU9TX0ZBTUlMWSkKKyNpZiBFTkFCTEUoVklERU9fUFJFU0VOVEFUSU9OX01P
REUpICYmICFQTEFURk9STShJT1NfRkFNSUxZKQogICAgIFtzZWxmIF9leGl0VmlkZW9GdWxsc2Ny
ZWVuXTsKICNlbmRpZgogCkBAIC05MjU5LDggKzkyNTksMTkgQEAgLSAodm9pZClfc2NoZWR1bGVS
ZW5kZXJpbmdVcGRhdGVGb3JQZW5kaW5nVGlsZUNhY2hlUmVwYWludAogI2VuZGlmCiAKICNpZiBF
TkFCTEUoVklERU8pCisKKyNpZiBFTkFCTEUoVklERU9fUFJFU0VOVEFUSU9OX01PREUpCisKKy0g
KHZvaWQpX3NldE1vY2tWaWRlb1ByZXNlbnRhdGlvbk1vZGVFbmFibGVkOihCT09MKWVuYWJsZWQK
K3sKKyAgICBfcHJpdmF0ZS0+bW9ja1ZpZGVvUHJlc2VudGF0aW9uTW9kZUVuYWJsZWQgPSBlbmFi
bGVkOworfQorCiAtICh2b2lkKV9lbnRlclZpZGVvRnVsbHNjcmVlbkZvclZpZGVvRWxlbWVudDoo
TmFrZWRQdHI8V2ViQ29yZTo6SFRNTFZpZGVvRWxlbWVudD4pdmlkZW9FbGVtZW50IG1vZGU6KFdl
YkNvcmU6OkhUTUxNZWRpYUVsZW1lbnRFbnVtczo6VmlkZW9GdWxsc2NyZWVuTW9kZSltb2RlCiB7
CisgICAgaWYgKF9wcml2YXRlLT5tb2NrVmlkZW9QcmVzZW50YXRpb25Nb2RlRW5hYmxlZCkKKyAg
ICAgICAgcmV0dXJuOworCiAgICAgaWYgKF9wcml2YXRlLT5mdWxsc2NyZWVuQ29udHJvbGxlcikg
ewogICAgICAgICBpZiAoW19wcml2YXRlLT5mdWxsc2NyZWVuQ29udHJvbGxlciB2aWRlb0VsZW1l
bnRdID09IHZpZGVvRWxlbWVudCkgewogICAgICAgICAgICAgLy8gVGhlIGJhY2tlbmQgbWF5IGp1
c3Qgd2FybiB1cyB0aGF0IHRoZSB1bmRlcmxheWluZyBwbGFmdG9ybU1vdmllKCkKQEAgLTkyODks
NiArOTMwMCw5IEBAIC0gKHZvaWQpX2VudGVyVmlkZW9GdWxsc2NyZWVuRm9yVmlkZW9FbGVtZW50
OihOYWtlZFB0cjxXZWJDb3JlOjpIVE1MVmlkZW9FbGVtZW50CiAKIC0gKHZvaWQpX2V4aXRWaWRl
b0Z1bGxzY3JlZW4KIHsKKyAgICBpZiAoX3ByaXZhdGUtPm1vY2tWaWRlb1ByZXNlbnRhdGlvbk1v
ZGVFbmFibGVkKQorICAgICAgICByZXR1cm47CisKICAgICBpZiAoIV9wcml2YXRlLT5mdWxsc2Ny
ZWVuQ29udHJvbGxlciAmJiBfcHJpdmF0ZS0+ZnVsbHNjcmVlbkNvbnRyb2xsZXJzRXhpdGluZy5p
c0VtcHR5KCkpCiAgICAgICAgIHJldHVybjsKIApAQCAtOTMwNiw3ICs5MzIwLDcgQEAgLSAodm9p
ZClfZXhpdFZpZGVvRnVsbHNjcmVlbgogICAgIFtmdWxsc2NyZWVuQ29udHJvbGxlciBleGl0RnVs
bHNjcmVlbl07CiB9CiAKLSNpZiBQTEFURk9STShNQUMpICYmIEVOQUJMRShWSURFT19QUkVTRU5U
QVRJT05fTU9ERSkKKyNpZiBQTEFURk9STShNQUMpCiAtIChCT09MKV9oYXNBY3RpdmVWaWRlb0Zv
ckNvbnRyb2xzSW50ZXJmYWNlCiB7CiAgICAgaWYgKCFfcHJpdmF0ZS0+cGxheWJhY2tTZXNzaW9u
TW9kZWwpCkBAIC05MzQ2LDcgKzkzNjAsMTEgQEAgLSAodm9pZClfY2xlYXJQbGF5YmFja0NvbnRy
b2xzTWFuYWdlcgogICAgIF9wcml2YXRlLT5wbGF5YmFja1Nlc3Npb25JbnRlcmZhY2UgPSBudWxs
cHRyOwogICAgIFtzZWxmIHVwZGF0ZVRvdWNoQmFyXTsKIH0KLSNlbmRpZiAvLyBQTEFURk9STShN
QUMpICYmIEVOQUJMRShWSURFT19QUkVTRU5UQVRJT05fTU9ERSkKKworI2VuZGlmIC8vIFBMQVRG
T1JNKE1BQykKKworI2VuZGlmIC8vIEVOQUJMRShWSURFT19QUkVTRU5UQVRJT05fTU9ERSkKKwog
I2VuZGlmIC8vIEVOQUJMRShWSURFTykKIAogI2lmIEVOQUJMRShGVUxMU0NSRUVOX0FQSSkgJiYg
IVBMQVRGT1JNKElPU19GQU1JTFkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21h
Yy9XZWJWaWV3L1dlYlZpZXdEYXRhLmggYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3
L1dlYlZpZXdEYXRhLmgKaW5kZXggZmU5ODM5YmFjNDc0OTFhMTQzYmE2OGJlN2M5YmI2NTBhZmQ1
MDdiOC4uNjgyNjAwNDUwYjIzNWU2YzRkOTU5M2RjN2I5NTZhZGYwZjk2ODZjZiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViVmlldy9XZWJWaWV3RGF0YS5oCisrKyBiL1Nv
dXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcvV2ViVmlld0RhdGEuaApAQCAtMjE2LDcgKzIx
Niw3IEBAIHByaXZhdGU6CiAgICAgQk9PTCBzaG91bGRNYWludGFpbkluYWN0aXZlU2VsZWN0aW9u
OwogCiAgICAgQk9PTCBhbGxvd3NVbmRvOwotICAgICAgICAKKwogICAgIGZsb2F0IHpvb21NdWx0
aXBsaWVyOwogICAgIEJPT0wgem9vbXNUZXh0T25seTsKIApAQCAtMjkzLDcgKzI5Myw2IEBAIHBy
aXZhdGU6CiAgICAgUmV0YWluUHRyPE5TU3RyaW5nPiBkcmFnZ2VkTGlua1RpdGxlOwogI2VuZGlm
CiAKLQogI2lmICFQTEFURk9STShJT1NfRkFNSUxZKQogICAgIC8vIFdlYktpdCBoYXMgYm90aCBh
IGdsb2JhbCBwbHVnLWluIGRhdGFiYXNlIGFuZCBhIHNlcGFyYXRlLCBwZXIgV2ViVmlldyBwbHVn
LWluIGRhdGFiYXNlLiBEYXNoYm9hcmQgdXNlcyB0aGUgcGVyIFdlYlZpZXcgZGF0YWJhc2UuCiAg
ICAgV2ViUGx1Z2luRGF0YWJhc2UgKnBsdWdpbkRhdGFiYXNlOwpAQCAtMzI0LDYgKzMyMywxMCBA
QCBwcml2YXRlOgogICAgIFZlY3RvcjxSZXRhaW5QdHI8V2ViVmlkZW9GdWxsc2NyZWVuQ29udHJv
bGxlcj4+IGZ1bGxzY3JlZW5Db250cm9sbGVyc0V4aXRpbmc7CiAjZW5kaWYKIAorI2lmIEVOQUJM
RShWSURFT19QUkVTRU5UQVRJT05fTU9ERSkKKyAgICBCT09MIG1vY2tWaWRlb1ByZXNlbnRhdGlv
bk1vZGVFbmFibGVkOworI2VuZGlmCisKICNpZiBQTEFURk9STShNQUMpICYmIEVOQUJMRShWSURF
T19QUkVTRU5UQVRJT05fTU9ERSkKICAgICBSZWZQdHI8V2ViQ29yZTo6UGxheWJhY2tTZXNzaW9u
TW9kZWxNZWRpYUVsZW1lbnQ+IHBsYXliYWNrU2Vzc2lvbk1vZGVsOwogICAgIFJlZlB0cjxXZWJD
b3JlOjpQbGF5YmFja1Nlc3Npb25JbnRlcmZhY2VNYWM+IHBsYXliYWNrU2Vzc2lvbkludGVyZmFj
ZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcvV2ViVmlld0lu
dGVybmFsLmggYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3L1dlYlZpZXdJbnRlcm5h
bC5oCmluZGV4IDU2YzhkNTYyOTBkZGNlYTRhOGM5YzBkYzAyZjA4ZmU5YTRiODg4OGEuLjUyNzVm
MzI4N2U1YjBhMWIxZjM2ZjJiNWUzYWU5NGUzNTdkNmIxZjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcvV2ViVmlld0ludGVybmFsLmgKKysrIGIvU291cmNlL1dl
YktpdExlZ2FjeS9tYWMvV2ViVmlldy9XZWJWaWV3SW50ZXJuYWwuaApAQCAtMjczLDE0ICsyNzMs
MTcgQEAgT0JKQ19DTEFTUyBOU1RleHRBbHRlcm5hdGl2ZXM7CiAtICh2b2lkKV9pbnZhbGlkYXRl
VXNlckFnZW50Q2FjaGU7CiAKICNpZiBFTkFCTEUoVklERU8pICYmIGRlZmluZWQoX19jcGx1c3Bs
dXMpCisjaWYgRU5BQkxFKFZJREVPX1BSRVNFTlRBVElPTl9NT0RFKQorLSAodm9pZClfc2V0TW9j
a1ZpZGVvUHJlc2VudGF0aW9uTW9kZUVuYWJsZWQ6KEJPT0wpZW5hYmxlZDsKIC0gKHZvaWQpX2Vu
dGVyVmlkZW9GdWxsc2NyZWVuRm9yVmlkZW9FbGVtZW50OihOYWtlZFB0cjxXZWJDb3JlOjpIVE1M
VmlkZW9FbGVtZW50Pil2aWRlb0VsZW1lbnQgbW9kZTooV2ViQ29yZTo6SFRNTE1lZGlhRWxlbWVu
dEVudW1zOjpWaWRlb0Z1bGxzY3JlZW5Nb2RlKW1vZGU7CiAtICh2b2lkKV9leGl0VmlkZW9GdWxs
c2NyZWVuOwotI2lmIFBMQVRGT1JNKE1BQykgJiYgRU5BQkxFKFZJREVPX1BSRVNFTlRBVElPTl9N
T0RFKQorI2lmIFBMQVRGT1JNKE1BQykKIC0gKEJPT0wpX2hhc0FjdGl2ZVZpZGVvRm9yQ29udHJv
bHNJbnRlcmZhY2U7CiAtICh2b2lkKV9zZXRVcFBsYXliYWNrQ29udHJvbHNNYW5hZ2VyRm9yTWVk
aWFFbGVtZW50OihOYWtlZFJlZjxXZWJDb3JlOjpIVE1MTWVkaWFFbGVtZW50PiltZWRpYUVsZW1l
bnQ7CiAtICh2b2lkKV9jbGVhclBsYXliYWNrQ29udHJvbHNNYW5hZ2VyOwogI2VuZGlmCiAjZW5k
aWYKKyNlbmRpZgogCiAjaWYgRU5BQkxFKEZVTExTQ1JFRU5fQVBJKSAmJiAhUExBVEZPUk0oSU9T
X0ZBTUlMWSkgJiYgZGVmaW5lZChfX2NwbHVzcGx1cykKIC0gKEJPT0wpX3N1cHBvcnRzRnVsbFNj
cmVlbkZvckVsZW1lbnQ6KE5ha2VkUHRyPFdlYkNvcmU6OkVsZW1lbnQ+KWVsZW1lbnQgd2l0aEtl
eWJvYXJkOihCT09MKXdpdGhLZXlib2FyZDsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5n
ZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCBmYzhkYzAxMTkwOTkwMDRiMmNkNjhj
NGRiZTdmMDIyMDlmNzgzMzAzLi5hNTllYzBmMDEzNzM3MzFmMDA3MDBlYjA3NDI2MDQ0ZjVhMzU1
ZGU3IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMv
Q2hhbmdlTG9nCkBAIC0xLDMgKzEsMTMgQEAKKzIwMjAtMDUtMDUgIFBlbmcgTGl1ICA8cGVuZy5s
aXU2QGFwcGxlLmNvbT4KKworICAgICAgICBVcGRhdGUgV2ViS2l0VGVzdFJ1bm5lciB0byBzdXBw
b3J0IHJ1bm5pbmcgbXVsdGlwbGUgdmlkZW8gZnVsbHNjcmVlbiBhbmQgUGljdHVyZS1pbi1QaWN0
dXJlIHRlc3RzIHNpbXVsdGFuZW91c2x5CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD0yMDM3MjMKKworICAgICAgICBSZXZpZXdlZCBieSBKZXIgTm9ibGUu
CisKKyAgICAgICAgKiBtZWRpYS92aWRlby1wcmVzZW50YXRpb24tbW9kZS1leHBlY3RlZC50eHQ6
IEFkZGVkLgorICAgICAgICAqIG1lZGlhL3ZpZGVvLXByZXNlbnRhdGlvbi1tb2RlLmh0bWw6IEFk
ZGVkLgorCiAyMDIwLTA1LTA1ICBTYWlkIEFib3UtSGFsbGF3YSAgPHNhYm91aGFsbGF3YUBhcHBs
ZS5jb20+CiAKICAgICAgICAgWyBNYWMgXSBmYXN0L2FuaW1hdGlvbi9yZXF1ZXN0LWFuaW1hdGlv
bi1mcmFtZS10aW1lc3RhbXBzLmh0bWwgaXMgZmxha3kgZmFpbGluZy4KZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL21lZGlhL3ZpZGVvLXByZXNlbnRhdGlvbi1tb2RlLWV4cGVjdGVkLnR4dCBiL0xh
eW91dFRlc3RzL21lZGlhL3ZpZGVvLXByZXNlbnRhdGlvbi1tb2RlLWV4cGVjdGVkLnR4dApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi5lMDFjNDM3Y2E1ZGNhMDFkNzVhODlkMTI1N2NjYWRmMzdkOTc0NTkyCi0tLSAvZGV2
L251bGwKKysrIGIvTGF5b3V0VGVzdHMvbWVkaWEvdmlkZW8tcHJlc2VudGF0aW9uLW1vZGUtZXhw
ZWN0ZWQudHh0CkBAIC0wLDAgKzEsMzIgQEAKKworVGVzdCB0aGUgdmlkZW8gcHJlc2VudGF0aW9u
IG1vZGUgKHZpZGVvIGZ1bGxzY3JlZW4gYW5kIHBpY3R1cmUtaW4tcGljdHVyZSkgQVBJLgorCisK
K0VWRU5UKGNhbnBsYXl0aHJvdWdoKQorRVhQRUNURUQgKHZpZGVvLndlYmtpdFN1cHBvcnRzRnVs
bHNjcmVlbiA9PSAndHJ1ZScpIE9LCitFWFBFQ1RFRCAodmlkZW8ud2Via2l0RGlzcGxheWluZ0Z1
bGxzY3JlZW4gPT0gJ2ZhbHNlJykgT0sKKworKiogVHJ5IHRvIGVudGVyIGZ1bGxzY3JlZW4KK1JV
Tih2aWRlby53ZWJraXRTZXRQcmVzZW50YXRpb25Nb2RlKCdmdWxsc2NyZWVuJykpCitFVkVOVCh3
ZWJraXRwcmVzZW50YXRpb25tb2RlY2hhbmdlZCkKKworKiogRW50ZXJlZCBmdWxsc2NyZWVuCitF
WFBFQ1RFRCAodmlkZW8ud2Via2l0UHJlc2VudGF0aW9uTW9kZSA9PSAnZnVsbHNjcmVlbicpIE9L
CisKKyoqIFRyeSB0byBlbnRlciBwaWN0dXJlLWluLXBpY3R1cmUKK1JVTih2aWRlby53ZWJraXRT
ZXRQcmVzZW50YXRpb25Nb2RlKCdwaWN0dXJlLWluLXBpY3R1cmUnKSkKK0VWRU5UKHdlYmtpdHBy
ZXNlbnRhdGlvbm1vZGVjaGFuZ2VkKQorCisqKiBFbnRlcmVkIHBpY3R1cmUtaW4tcGljdHVyZQor
RVhQRUNURUQgKHZpZGVvLndlYmtpdFByZXNlbnRhdGlvbk1vZGUgPT0gJ3BpY3R1cmUtaW4tcGlj
dHVyZScpIE9LCisKKyoqIFRyeSB0byByZXR1cm4gdG8gaW5saW5lCitSVU4odmlkZW8ud2Via2l0
U2V0UHJlc2VudGF0aW9uTW9kZSgnaW5saW5lJykpCitFVkVOVCh3ZWJraXRwcmVzZW50YXRpb25t
b2RlY2hhbmdlZCkKKworKiogUmV0dXJuZWQgdG8gaW5saW5lCitFWFBFQ1RFRCAodmlkZW8ud2Vi
a2l0UHJlc2VudGF0aW9uTW9kZSA9PSAnaW5saW5lJykgT0sKKworKiogVGVzdCBDb21wbGV0ZWQK
K0VORCBPRiBURVNUCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL21lZGlhL3ZpZGVvLXByZXNl
bnRhdGlvbi1tb2RlLmh0bWwgYi9MYXlvdXRUZXN0cy9tZWRpYS92aWRlby1wcmVzZW50YXRpb24t
bW9kZS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAuLmJjZTgwOGRkZDc0MzRjY2Y1ZjlhMzgwMzRiMWNhM2Y1NTky
YzUyNTAKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9tZWRpYS92aWRlby1wcmVzZW50
YXRpb24tbW9kZS5odG1sCkBAIC0wLDAgKzEsNjMgQEAKKzwhZG9jdHlwZSBodG1sPgorPGh0bWw+
CisgICAgPGhlYWQ+CisJICAgIDxzY3JpcHQgc3JjPW1lZGlhLWZpbGUuanM+PC9zY3JpcHQ+CisJ
ICAgIDxzY3JpcHQgc3JjPXZpZGVvLXRlc3QuanM+PC9zY3JpcHQ+CisJICAgIDxzY3JpcHQ+Cisg
ICAgICAgICAgICBmdW5jdGlvbiBzdGFydCgpCisgICAgICAgICAgICB7CisJICAgICAgICAgICAg
aWYgKHdpbmRvdy5pbnRlcm5hbHMpIHsKKyAgICAgICAgICAgICAgICAgICAgd2luZG93LmludGVy
bmFscy5zZXR0aW5ncy5zZXRBbGxvd3NQaWN0dXJlSW5QaWN0dXJlTWVkaWFQbGF5YmFjayh0cnVl
KTsKKyAgICAgICAgICAgICAgICAgICAgd2luZG93LmludGVybmFscy5zZXRNb2NrVmlkZW9QcmVz
ZW50YXRpb25Nb2RlRW5hYmxlZCh0cnVlKTsKKyAgICAgICAgICAgICAgICB9CisJCisJICAgICAg
ICAgICAgdmlkZW8gPSBkb2N1bWVudC5nZXRFbGVtZW50c0J5VGFnTmFtZSgndmlkZW8nKVswXTsK
KwkgICAgICAgICAgICB3YWl0Rm9yRXZlbnRPbmNlKCJjYW5wbGF5dGhyb3VnaCIsIGNhbnBsYXl0
aHJvdWdoKTsKKwkgICAgICAgICAgICB2aWRlby5zcmMgPSBmaW5kTWVkaWFGaWxlKCJ2aWRlbyIs
ICJjb250ZW50L3Rlc3QiKTsKKworCSAgICAgICAgICAgIGNvbnNvbGVXcml0ZSgiIik7CisgICAg
ICAgICAgICB9CisJCisJICAgICAgICBmdW5jdGlvbiBjYW5wbGF5dGhyb3VnaCgpCisJICAgICAg
ICB7CisJICAgICAgICAgICAgdGVzdEV4cGVjdGVkKCJ2aWRlby53ZWJraXRTdXBwb3J0c0Z1bGxz
Y3JlZW4iLCB0cnVlKTsKKwkgICAgICAgICAgICB0ZXN0RXhwZWN0ZWQoInZpZGVvLndlYmtpdERp
c3BsYXlpbmdGdWxsc2NyZWVuIiwgZmFsc2UpOworCQorCSAgICAgICAgICAgIGNvbnNvbGVXcml0
ZSgiPGJyPioqIFRyeSB0byBlbnRlciBmdWxsc2NyZWVuIik7CisJICAgICAgICAgICAgcnVuV2l0
aEtleURvd24oInZpZGVvLndlYmtpdFNldFByZXNlbnRhdGlvbk1vZGUoJ2Z1bGxzY3JlZW4nKSIp
OworCSAgICAgICAgICAgIHdhaXRGb3JFdmVudE9uY2UoJ3dlYmtpdHByZXNlbnRhdGlvbm1vZGVj
aGFuZ2VkJywgcHJlc2VudGF0aW9uTW9kZUNoYW5nZWQxKTsKKwkgICAgICAgIH0KKwkKKwkgICAg
ICAgIGZ1bmN0aW9uIHByZXNlbnRhdGlvbk1vZGVDaGFuZ2VkMSgpCisJICAgICAgICB7CisJICAg
ICAgICAgICAgY29uc29sZVdyaXRlKCI8YnI+KiogRW50ZXJlZCBmdWxsc2NyZWVuIik7CisJICAg
ICAgICAgICAgdGVzdEV4cGVjdGVkKCJ2aWRlby53ZWJraXRQcmVzZW50YXRpb25Nb2RlIiwgImZ1
bGxzY3JlZW4iKTsKKwkgICAgICAgICAgICBjb25zb2xlV3JpdGUoIjxicj4qKiBUcnkgdG8gZW50
ZXIgcGljdHVyZS1pbi1waWN0dXJlIik7CisJICAgICAgICAgICAgd2FpdEZvckV2ZW50T25jZSgn
d2Via2l0cHJlc2VudGF0aW9ubW9kZWNoYW5nZWQnLCBwcmVzZW50YXRpb25Nb2RlQ2hhbmdlZDIp
OworCSAgICAgICAgICAgIHJ1bldpdGhLZXlEb3duKCJ2aWRlby53ZWJraXRTZXRQcmVzZW50YXRp
b25Nb2RlKCdwaWN0dXJlLWluLXBpY3R1cmUnKSIpOworCSAgICAgICAgfQorCQorCSAgICAgICAg
ZnVuY3Rpb24gcHJlc2VudGF0aW9uTW9kZUNoYW5nZWQyKCkKKwkgICAgICAgIHsKKwkgICAgICAg
ICAgICBjb25zb2xlV3JpdGUoIjxicj4qKiBFbnRlcmVkIHBpY3R1cmUtaW4tcGljdHVyZSIpOwor
CSAgICAgICAgICAgIHRlc3RFeHBlY3RlZCgidmlkZW8ud2Via2l0UHJlc2VudGF0aW9uTW9kZSIs
ICJwaWN0dXJlLWluLXBpY3R1cmUiKTsKKwkgICAgICAgICAgICBjb25zb2xlV3JpdGUoIjxicj4q
KiBUcnkgdG8gcmV0dXJuIHRvIGlubGluZSIpOworCSAgICAgICAgICAgIHdhaXRGb3JFdmVudE9u
Y2UoJ3dlYmtpdHByZXNlbnRhdGlvbm1vZGVjaGFuZ2VkJywgdGVzdENvbXBsZXRlZCk7CisJICAg
ICAgICAgICAgcnVuV2l0aEtleURvd24oInZpZGVvLndlYmtpdFNldFByZXNlbnRhdGlvbk1vZGUo
J2lubGluZScpIik7CisJICAgICAgICB9CisJCisJICAgICAgICBmdW5jdGlvbiB0ZXN0Q29tcGxl
dGVkKCkKKwkgICAgICAgIHsKKwkgICAgICAgICAgICBjb25zb2xlV3JpdGUoIjxicj4qKiBSZXR1
cm5lZCB0byBpbmxpbmUiKTsKKwkgICAgICAgICAgICB0ZXN0RXhwZWN0ZWQoInZpZGVvLndlYmtp
dFByZXNlbnRhdGlvbk1vZGUiLCAiaW5saW5lIik7CisJICAgICAgICAgICAgY29uc29sZVdyaXRl
KCI8YnI+KiogVGVzdCBDb21wbGV0ZWQiKTsKKwkgICAgICAgICAgICBlbmRUZXN0KCk7CisJICAg
ICAgICB9CisJICAgIDwvc2NyaXB0PgorCTwvaGVhZD4KKwkKKwk8Ym9keSBvbmxvYWQ9InN0YXJ0
KCkiPgorCSAgICA8dmlkZW8gY29udHJvbHMgcGxheXNpbmxpbmU+PC92aWRlbz4KKwkgICAgPHA+
VGVzdCB0aGUgdmlkZW8gcHJlc2VudGF0aW9uIG1vZGUgKHZpZGVvIGZ1bGxzY3JlZW4gYW5kIHBp
Y3R1cmUtaW4tcGljdHVyZSkgQVBJLjwvcD4KKwk8L2JvZHk+Cis8L2h0bWw+ClwgTm8gbmV3bGlu
ZSBhdCBlbmQgb2YgZmlsZQo=
</data>

          </attachment>
      

    </bug>

</bugzilla>