<?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>238082</bug_id>
          
          <creation_ts>2022-03-18 10:31:31 -0700</creation_ts>
          <short_desc>Add logging about process entering background to NetworkProcess::processDidResume</short_desc>
          <delta_ts>2022-03-29 11:34:52 -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>New Bugs</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Sihui Liu">sihui_liu</reporter>
          <assigned_to name="Sihui Liu">sihui_liu</assigned_to>
          <cc>cdumez</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>pascoe</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1852764</commentid>
    <comment_count>0</comment_count>
    <who name="Sihui Liu">sihui_liu</who>
    <bug_when>2022-03-18 10:31:31 -0700</bug_when>
    <thetext>...</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1852769</commentid>
    <comment_count>1</comment_count>
      <attachid>455112</attachid>
    <who name="Sihui Liu">sihui_liu</who>
    <bug_when>2022-03-18 11:07:09 -0700</bug_when>
    <thetext>Created attachment 455112
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1852772</commentid>
    <comment_count>2</comment_count>
      <attachid>455114</attachid>
    <who name="Sihui Liu">sihui_liu</who>
    <bug_when>2022-03-18 11:12:06 -0700</bug_when>
    <thetext>Created attachment 455114
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1852782</commentid>
    <comment_count>3</comment_count>
      <attachid>455118</attachid>
    <who name="Sihui Liu">sihui_liu</who>
    <bug_when>2022-03-18 11:46:30 -0700</bug_when>
    <thetext>Created attachment 455118
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1852787</commentid>
    <comment_count>4</comment_count>
      <attachid>455121</attachid>
    <who name="Sihui Liu">sihui_liu</who>
    <bug_when>2022-03-18 11:55:01 -0700</bug_when>
    <thetext>Created attachment 455121
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1852795</commentid>
    <comment_count>5</comment_count>
      <attachid>455124</attachid>
    <who name="Sihui Liu">sihui_liu</who>
    <bug_when>2022-03-18 12:09:10 -0700</bug_when>
    <thetext>Created attachment 455124
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1852872</commentid>
    <comment_count>6</comment_count>
      <attachid>455124</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2022-03-18 15:53:01 -0700</bug_when>
    <thetext>Comment on attachment 455124
Patch

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

&gt; Source/WebKit/ChangeLog:9
&gt; +        For network porcess, processDidResume means process is not suspended and it is safe to perform database 

typo: porcess

&gt; Source/WebKit/NetworkProcess/NetworkProcess.cpp:2117
&gt; +    RELEASE_LOG(ProcessSuspension, &quot;%p - NetworkProcess::prepareToSuspend(), isSuspensionImminent=%d Process is %s in background&quot;, this, isSuspensionImminent, m_enterBackgroundTimestamp ? &quot;&quot; : &quot;not&quot;);

There is going to be a extra space between &quot;is&quot; and &quot;in&quot;: &quot;Process is  in background&quot;

&gt; Source/WebKit/NetworkProcess/NetworkProcess.cpp:2151
&gt; +    m_enterBackgroundTimestamp = WallTime::now();

We want to be using MonotonicTime, not WallTime. If the timezone changes (or daylight savings) while suspended for e.g., you&apos;d get unexpected results.

&gt; Source/WebKit/NetworkProcess/NetworkProcess.cpp:2168
&gt; +        auto interval = WallTime::now() - m_enterBackgroundTimestamp.value();

MonotonicTime

&gt; Source/WebKit/NetworkProcess/NetworkProcess.cpp:2169
&gt; +        RELEASE_LOG_ERROR(ProcessSuspension, &quot;%p - NetworkProcess::processDidResume() Process is in background for %f ms&quot;, this, interval.value());

How is that an error?

Also, I have a feeling interval.value() is seconds and the logging claims it is milliseconds?

&gt; Source/WebKit/UIProcess/API/Cocoa/WKWebViewTesting.mm:216
&gt; +        _page-&gt;process().sendProcessDidResume(true);

This is the reason we use enum classes for parameters and not booleans, the reader has no idea what true means here.

&gt; Source/WebKit/UIProcess/ios/ProcessAssertionIOS.mm:97
&gt; +        WebKit::WebsiteDataStore::forEachWebsiteDataStore([] (WebKit::WebsiteDataStore&amp; dataStore) {

Seems like a layer violation to be using WebsiteDataStore inside ProcessAssertionIOS.mm (as a ProcessAssertion could theoretically be taken in any process).
Odds are we want to set a new listener inside NetworkProcessCocoa.mm instead.

&gt; Source/WebKit/UIProcess/ios/ProcessAssertionIOS.mm:99
&gt; +                networkProcess-&gt;applicationWillEnterForeground();

Looks like this will send duplicate IPCs if several data stores share the same network process (which is always the case on Cocoa)_

&gt; Source/WebKit/UIProcess/ios/ProcessAssertionIOS.mm:109
&gt; +                networkProcess-&gt;applicationDidEnterBackground();

ditto.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1852886</commentid>
    <comment_count>7</comment_count>
      <attachid>455124</attachid>
    <who name="Sihui Liu">sihui_liu</who>
    <bug_when>2022-03-18 16:37:21 -0700</bug_when>
    <thetext>Comment on attachment 455124
Patch

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

&gt;&gt; Source/WebKit/ChangeLog:9
&gt;&gt; +        For network porcess, processDidResume means process is not suspended and it is safe to perform database 
&gt; 
&gt; typo: porcess

Will change.

&gt;&gt; Source/WebKit/NetworkProcess/NetworkProcess.cpp:2117
&gt;&gt; +    RELEASE_LOG(ProcessSuspension, &quot;%p - NetworkProcess::prepareToSuspend(), isSuspensionImminent=%d Process is %s in background&quot;, this, isSuspensionImminent, m_enterBackgroundTimestamp ? &quot;&quot; : &quot;not&quot;);
&gt; 
&gt; There is going to be a extra space between &quot;is&quot; and &quot;in&quot;: &quot;Process is  in background&quot;

oh, will move to a space to &quot;not&quot;

&gt;&gt; Source/WebKit/NetworkProcess/NetworkProcess.cpp:2151
&gt;&gt; +    m_enterBackgroundTimestamp = WallTime::now();
&gt; 
&gt; We want to be using MonotonicTime, not WallTime. If the timezone changes (or daylight savings) while suspended for e.g., you&apos;d get unexpected results.

Sure.

&gt;&gt; Source/WebKit/NetworkProcess/NetworkProcess.cpp:2168
&gt;&gt; +        auto interval = WallTime::now() - m_enterBackgroundTimestamp.value();
&gt; 
&gt; MonotonicTime

Sure.

&gt;&gt; Source/WebKit/NetworkProcess/NetworkProcess.cpp:2169
&gt;&gt; +        RELEASE_LOG_ERROR(ProcessSuspension, &quot;%p - NetworkProcess::processDidResume() Process is in background for %f ms&quot;, this, interval.value());
&gt; 
&gt; How is that an error?
&gt; 
&gt; Also, I have a feeling interval.value() is seconds and the logging claims it is milliseconds?

Yes, should be milliseconds() not value().

&gt;&gt; Source/WebKit/UIProcess/API/Cocoa/WKWebViewTesting.mm:216
&gt;&gt; +        _page-&gt;process().sendProcessDidResume(true);
&gt; 
&gt; This is the reason we use enum classes for parameters and not booleans, the reader has no idea what true means here.

Okay will change to enum.

&gt;&gt; Source/WebKit/UIProcess/ios/ProcessAssertionIOS.mm:97
&gt;&gt; +        WebKit::WebsiteDataStore::forEachWebsiteDataStore([] (WebKit::WebsiteDataStore&amp; dataStore) {
&gt; 
&gt; Seems like a layer violation to be using WebsiteDataStore inside ProcessAssertionIOS.mm (as a ProcessAssertion could theoretically be taken in any process).
&gt; Odds are we want to set a new listener inside NetworkProcessCocoa.mm instead.

I will try adding to NetworkProcessCocoa.mm and see if it works

&gt;&gt; Source/WebKit/UIProcess/ios/ProcessAssertionIOS.mm:99
&gt;&gt; +                networkProcess-&gt;applicationWillEnterForeground();
&gt; 
&gt; Looks like this will send duplicate IPCs if several data stores share the same network process (which is always the case on Cocoa)_

If network process can receive the notification, we don&apos;t need the message I guess.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1852888</commentid>
    <comment_count>8</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2022-03-18 16:41:26 -0700</bug_when>
    <thetext>(In reply to Sihui Liu from comment #7)
&gt; Comment on attachment 455124 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=455124&amp;action=review
&gt; 
&gt; &gt;&gt; Source/WebKit/ChangeLog:9
&gt; &gt;&gt; +        For network porcess, processDidResume means process is not suspended and it is safe to perform database 
&gt; &gt; 
&gt; &gt; typo: porcess
&gt; 
&gt; Will change.
&gt; 
&gt; &gt;&gt; Source/WebKit/NetworkProcess/NetworkProcess.cpp:2117
&gt; &gt;&gt; +    RELEASE_LOG(ProcessSuspension, &quot;%p - NetworkProcess::prepareToSuspend(), isSuspensionImminent=%d Process is %s in background&quot;, this, isSuspensionImminent, m_enterBackgroundTimestamp ? &quot;&quot; : &quot;not&quot;);
&gt; &gt; 
&gt; &gt; There is going to be a extra space between &quot;is&quot; and &quot;in&quot;: &quot;Process is  in background&quot;
&gt; 
&gt; oh, will move to a space to &quot;not&quot;
&gt; 
&gt; &gt;&gt; Source/WebKit/NetworkProcess/NetworkProcess.cpp:2151
&gt; &gt;&gt; +    m_enterBackgroundTimestamp = WallTime::now();
&gt; &gt; 
&gt; &gt; We want to be using MonotonicTime, not WallTime. If the timezone changes (or daylight savings) while suspended for e.g., you&apos;d get unexpected results.
&gt; 
&gt; Sure.
&gt; 
&gt; &gt;&gt; Source/WebKit/NetworkProcess/NetworkProcess.cpp:2168
&gt; &gt;&gt; +        auto interval = WallTime::now() - m_enterBackgroundTimestamp.value();
&gt; &gt; 
&gt; &gt; MonotonicTime
&gt; 
&gt; Sure.
&gt; 
&gt; &gt;&gt; Source/WebKit/NetworkProcess/NetworkProcess.cpp:2169
&gt; &gt;&gt; +        RELEASE_LOG_ERROR(ProcessSuspension, &quot;%p - NetworkProcess::processDidResume() Process is in background for %f ms&quot;, this, interval.value());
&gt; &gt; 
&gt; &gt; How is that an error?
&gt; &gt; 
&gt; &gt; Also, I have a feeling interval.value() is seconds and the logging claims it is milliseconds?
&gt; 
&gt; Yes, should be milliseconds() not value().
&gt; 
&gt; &gt;&gt; Source/WebKit/UIProcess/API/Cocoa/WKWebViewTesting.mm:216
&gt; &gt;&gt; +        _page-&gt;process().sendProcessDidResume(true);
&gt; &gt; 
&gt; &gt; This is the reason we use enum classes for parameters and not booleans, the reader has no idea what true means here.
&gt; 
&gt; Okay will change to enum.
&gt; 
&gt; &gt;&gt; Source/WebKit/UIProcess/ios/ProcessAssertionIOS.mm:97
&gt; &gt;&gt; +        WebKit::WebsiteDataStore::forEachWebsiteDataStore([] (WebKit::WebsiteDataStore&amp; dataStore) {
&gt; &gt; 
&gt; &gt; Seems like a layer violation to be using WebsiteDataStore inside ProcessAssertionIOS.mm (as a ProcessAssertion could theoretically be taken in any process).
&gt; &gt; Odds are we want to set a new listener inside NetworkProcessCocoa.mm instead.
&gt; 
&gt; I will try adding to NetworkProcessCocoa.mm and see if it works
&gt; 
&gt; &gt;&gt; Source/WebKit/UIProcess/ios/ProcessAssertionIOS.mm:99
&gt; &gt;&gt; +                networkProcess-&gt;applicationWillEnterForeground();
&gt; &gt; 
&gt; &gt; Looks like this will send duplicate IPCs if several data stores share the same network process (which is always the case on Cocoa)_
&gt; 
&gt; If network process can receive the notification, we don&apos;t need the message I
&gt; guess.

Sorry, I meant NetworkProcessProxyCocoa.mm, in the UIProcess. I don&apos;t think the NetworkProcess will be able to listener for this.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1853280</commentid>
    <comment_count>9</comment_count>
      <attachid>455261</attachid>
    <who name="Sihui Liu">sihui_liu</who>
    <bug_when>2022-03-21 12:05:50 -0700</bug_when>
    <thetext>Created attachment 455261
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1853281</commentid>
    <comment_count>10</comment_count>
      <attachid>455262</attachid>
    <who name="Sihui Liu">sihui_liu</who>
    <bug_when>2022-03-21 12:06:41 -0700</bug_when>
    <thetext>Created attachment 455262
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1853288</commentid>
    <comment_count>11</comment_count>
      <attachid>455263</attachid>
    <who name="Sihui Liu">sihui_liu</who>
    <bug_when>2022-03-21 12:20:08 -0700</bug_when>
    <thetext>Created attachment 455263
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1853326</commentid>
    <comment_count>12</comment_count>
      <attachid>455272</attachid>
    <who name="Sihui Liu">sihui_liu</who>
    <bug_when>2022-03-21 13:49:16 -0700</bug_when>
    <thetext>Created attachment 455272
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1853494</commentid>
    <comment_count>13</comment_count>
      <attachid>455322</attachid>
    <who name="Sihui Liu">sihui_liu</who>
    <bug_when>2022-03-21 20:26:17 -0700</bug_when>
    <thetext>Created attachment 455322
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1853501</commentid>
    <comment_count>14</comment_count>
      <attachid>455323</attachid>
    <who name="Sihui Liu">sihui_liu</who>
    <bug_when>2022-03-21 20:37:31 -0700</bug_when>
    <thetext>Created attachment 455323
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1854454</commentid>
    <comment_count>15</comment_count>
      <attachid>455323</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2022-03-23 15:56:50 -0700</bug_when>
    <thetext>Comment on attachment 455323
Patch

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

r=me with changes.

&gt; Source/WebKit/ChangeLog:8
&gt; +        In rdar://82412733, we found network process can be suspended right after it receives processDidResume message. 

Sure, RunningBoard can suspend us at any point once we&apos;re no longer visible. If something takes a process assertion (causing the processDidResume IPC to get sent) and then the 30 second timeout in the background hits shortly after. We may or may not get notified by Runningboard that our assertion has expired before forced suspension and if we do get notified, we may or may not have time to send the ProcessDidSuspend IPC (or the child process may or may not have time to process it). This is a know issue.

This is why we should do our best not to wake up new processes while backgrounded (technically while the RunningBoard timer has started, which is slightly different).

&gt; Source/WebKit/ChangeLog:9
&gt; +        For network porcess, processDidResume means process is not suspended and it is safe to perform database 

typo: porcess.

&gt; Source/WebKit/NetworkProcess/NetworkProcess.cpp:2132
&gt; +    RELEASE_LOG(ProcessSuspension, &quot;%p - NetworkProcess::prepareToSuspend(), isSuspensionImminent=%d Process is %sin background&quot;, this, isSuspensionImminent, m_enterBackgroundTimestamp ? &quot;&quot; : &quot;not &quot;);

%{public}s

&gt; Source/WebKit/NetworkProcess/NetworkProcess.cpp:2179
&gt; +    String backgroundIntervalString = &quot;&quot;;

emptyString()

&gt; Source/WebKit/NetworkProcess/NetworkProcess.cpp:2181
&gt; +        backgroundIntervalString = makeString(&quot; Process is in background for &quot;, (MonotonicTime::now() - m_enterBackgroundTimestamp.value()).value(), &quot; seconds&quot;);

is -&gt; has been

&gt; Source/WebKit/NetworkProcess/NetworkProcess.cpp:2182
&gt; +    RELEASE_LOG(ProcessSuspension, &quot;%p - NetworkProcess::processDidResume() forForegroundActivity=%d%s&quot;, this, forForegroundActivity, backgroundIntervalString.utf8().data());

This %s won&apos;t print on public builds. We could use %{public}s but I would just suggest using branching:
if (m_enterBackgroundTimestamp)
    RELEASE_LOG(...)
else
    RELEASE_LOG(...)

&gt; Source/WebKit/UIProcess/Network/NetworkProcessProxy.h:239
&gt; +    void sendProcessDidResume(ResumeReason = ResumeReason::ForegroundActivity) final;

Can we avoid having a default parameter on a virtual function?
Seems also error prone to not force the caller to specify it.

&gt; Source/WebKit/UIProcess/Network/NetworkProcessProxy.h:305
&gt; +    void applicationDidEnterBackground();

Can these be private?

&gt; Source/WebKit/UIProcess/Network/NetworkProcessProxy.h:308
&gt; +    void addBackgroundStateObservers();

Can these be private?

&gt; Source/WebKit/UIProcess/Network/NetworkProcessProxyCocoa.mm:101
&gt; +            return;

nit: Early returns for one liners seem overly verbose.

&gt; Source/WebKit/UIProcess/Network/NetworkProcessProxyCocoa.mm:106
&gt; +            return;

ditto.

&gt; Source/WebKit/UIProcess/ProcessThrottlerClient.h:41
&gt; +    virtual void sendProcessDidResume(ResumeReason = ForegroundActivity) = 0;

Ideally we wouldn&apos;t have a default parameter value.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1855156</commentid>
    <comment_count>16</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2022-03-25 10:32:15 -0700</bug_when>
    <thetext>&lt;rdar://problem/90844775&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1855873</commentid>
    <comment_count>17</comment_count>
      <attachid>455977</attachid>
    <who name="Sihui Liu">sihui_liu</who>
    <bug_when>2022-03-28 18:27:15 -0700</bug_when>
    <thetext>Created attachment 455977
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1855924</commentid>
    <comment_count>18</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2022-03-28 22:56:07 -0700</bug_when>
    <thetext>Committed r292024 (248967@main): &lt;https://commits.webkit.org/248967@main&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 455977.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1856083</commentid>
    <comment_count>19</comment_count>
    <who name="Sihui Liu">sihui_liu</who>
    <bug_when>2022-03-29 10:33:12 -0700</bug_when>
    <thetext>Reopening to attach new patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1856085</commentid>
    <comment_count>20</comment_count>
      <attachid>456041</attachid>
    <who name="Sihui Liu">sihui_liu</who>
    <bug_when>2022-03-29 10:33:14 -0700</bug_when>
    <thetext>Created attachment 456041
[fast-cq] Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1856116</commentid>
    <comment_count>21</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2022-03-29 11:34:48 -0700</bug_when>
    <thetext>Committed r292051 (248988@main): &lt;https://commits.webkit.org/248988@main&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 456041.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>455112</attachid>
            <date>2022-03-18 11:07:09 -0700</date>
            <delta_ts>2022-03-18 11:29:05 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-238082-20220318110708.patch</filename>
            <type>text/plain</type>
            <size>18051</size>
            <attacher name="Sihui Liu">sihui_liu</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjkxNDQ2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDA3OTdjODQyNDJlODI1ZDhi
MGE1NTVmMmIzOTllNTk0NDVkNGUyNWYuLmFjODAxNmU1MDJiNmVkYWJkYmE4NTM1NjQ4YTkzYjcx
YWRiMzcyYzQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNDYgQEAKKzIwMjItMDMtMTggIFNpaHVpIExp
dSAgPHNpaHVpX2xpdUBhcHBsZS5jb20+CisKKyAgICAgICAgQWRkIGxvZ2dpbmcgYWJvdXQgcHJv
Y2VzcyBlbnRlcmluZyBiYWNrZ3JvdW5kIHRvIE5ldHdvcmtQcm9jZXNzOjpwcm9jZXNzRGlkUmVz
dW1lCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzgw
ODIKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBJbiBy
ZGFyOi8vODI0MTI3MzMsIHdlIGZvdW5kIG5ldHdvcmsgcHJvY2VzcyBjYW4gYmUgc3VzcGVuZGVk
IHJpZ2h0IGFmdGVyIGl0IHJlY2VpdmVzIHByb2Nlc3NEaWRSZXN1bWUgbWVzc2FnZS4gCisgICAg
ICAgIEZvciBuZXR3b3JrIHBvcmNlc3MsIHByb2Nlc3NEaWRSZXN1bWUgbWVhbnMgcHJvY2VzcyBp
cyBub3Qgc3VzcGVuZGVkIGFuZCBpdCBpcyBzYWZlIHRvIHBlcmZvcm0gZGF0YWJhc2UgCisgICAg
ICAgIG9wZXJhdGlvbnMuIExldCdzIGFkZCBsb2dnaW5nIHRvIGNoZWNrIHdoZW4gYW5kIHdoeSBw
cm9jZXNzRGlkUmVzdW1lIG1lc3NhZ2UgaXMgc2VudC4gSWYgdGhlIGxvZ2dpbmcgY29uZmlybXMK
KyAgICAgICAgdGhhdCBwcm9jZXNzRGlkUmVzdW1lIG1lc3NhZ2UgY2FuIGJlIHJlY2VpdmVkIHdo
ZW4gcHJvY2VzcyBpcyBjbG9zZSB0byBhc3NlcnRpb24gdGltZW91dCwgd2UgcHJvYmFibHkgd2Fu
dCB0byAKKyAgICAgICAgaWdub3JlIHN1Y2ggbWVzc2FnZSBhbmQgcmVzdW1lIGRhdGFiYXNlIG9w
ZXJhdGlvbnMgd2hlbiBhcHBsaWNhdGlvbiBlbnRlcnMgZm9yZWdyb3VuZC4KKworICAgICAgICAq
IE5ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLmNwcDoKKyAgICAgICAgKFdlYktpdDo6TmV0
d29ya1Byb2Nlc3M6OnByZXBhcmVUb1N1c3BlbmQpOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3Jr
UHJvY2Vzczo6YXBwbGljYXRpb25EaWRFbnRlckJhY2tncm91bmQpOgorICAgICAgICAoV2ViS2l0
OjpOZXR3b3JrUHJvY2Vzczo6YXBwbGljYXRpb25XaWxsRW50ZXJGb3JlZ3JvdW5kKToKKyAgICAg
ICAgKFdlYktpdDo6TmV0d29ya1Byb2Nlc3M6OnByb2Nlc3NEaWRSZXN1bWUpOgorICAgICAgICAq
IE5ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLmg6CisgICAgICAgICogTmV0d29ya1Byb2Nl
c3MvTmV0d29ya1Byb2Nlc3MubWVzc2FnZXMuaW46CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9D
b2NvYS9XS1dlYlZpZXdUZXN0aW5nLm1tOgorICAgICAgICAoLVtXS1dlYlZpZXcgX3Byb2Nlc3NE
aWRSZXN1bWVGb3JUZXN0aW5nXSk6CisgICAgICAgICogVUlQcm9jZXNzL0dQVS9HUFVQcm9jZXNz
UHJveHkuY3BwOgorICAgICAgICAoV2ViS2l0OjpHUFVQcm9jZXNzUHJveHk6OnNlbmRQcm9jZXNz
RGlkUmVzdW1lKToKKyAgICAgICAgKiBVSVByb2Nlc3MvR1BVL0dQVVByb2Nlc3NQcm94eS5oOgor
ICAgICAgICAqIFVJUHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9jZXNzUHJveHkuY3BwOgorICAg
ICAgICAoV2ViS2l0OjpOZXR3b3JrUHJvY2Vzc1Byb3h5OjpzZW5kUHJvY2Vzc0RpZFJlc3VtZSk6
CisgICAgICAgICogVUlQcm9jZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nlc3NQcm94eS5oOgorICAg
ICAgICAqIFVJUHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9jZXNzUHJveHlDb2NvYS5tbToKKyAg
ICAgICAgKFdlYktpdDo6TmV0d29ya1Byb2Nlc3M6OmFwcGxpY2F0aW9uV2lsbEVudGVyRm9yZWdy
b3VuZCk6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtQcm9jZXNzOjphcHBsaWNhdGlvbkRpZEVu
dGVyQmFja2dyb3VuZCk6CisgICAgICAgICogVUlQcm9jZXNzL1Byb2Nlc3NUaHJvdHRsZXIuY3Bw
OgorICAgICAgICAoV2ViS2l0OjpQcm9jZXNzVGhyb3R0bGVyOjp1cGRhdGVBc3NlcnRpb25JZk5l
ZWRlZCk6CisgICAgICAgICogVUlQcm9jZXNzL1Byb2Nlc3NUaHJvdHRsZXJDbGllbnQuaDoKKyAg
ICAgICAgKiBVSVByb2Nlc3MvV2ViQXV0aGVudGljYXRpb24vV2ViQXV0aG5Qcm9jZXNzUHJveHku
aDoKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5LmNwcDoKKyAgICAgICAgKFdl
YktpdDo6V2ViUHJvY2Vzc1Byb3h5OjpzZW5kUHJvY2Vzc0RpZFJlc3VtZSk6CisgICAgICAgICog
VUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJzaXRl
RGF0YS9XZWJzaXRlRGF0YVN0b3JlLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2Vic2l0ZURhdGFT
dG9yZTo6c2VuZE5ldHdvcmtQcm9jZXNzRGlkUmVzdW1lKToKKyAgICAgICAgKiBVSVByb2Nlc3Mv
aW9zL1Byb2Nlc3NBc3NlcnRpb25JT1MubW06CisgICAgICAgICgtW1dLUHJvY2Vzc0Fzc2VydGlv
bkJhY2tncm91bmRUYXNrTWFuYWdlciBpbml0XSk6CisKIDIwMjItMDMtMTcgIEFkaXR5YSBLZWVy
dGhpICA8YWtlZXJ0aGlAYXBwbGUuY29tPgogCiAgICAgICAgIFtpT1NdIFN1cHBvcnQgUERGIHNl
YXJjaCB3aGVuIHVzaW5nIGEgZmluZCBpbnRlcmFjdGlvbgpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5jcHAgYi9Tb3VyY2UvV2ViS2l0L05l
dHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLmNwcAppbmRleCBjNzQ0MDZhNTU4YWY0ZTY4NGZh
NDA0N2M2MDgzNDg1YTFlNTYxMjY4Li5kZTQyYTE5ZDllMjAzZDJmMTVjNTkwYzhhM2Q5NjliZDg5
OTQwODBhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtQ
cm9jZXNzLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9j
ZXNzLmNwcApAQCAtMjExNCw3ICsyMTE0LDcgQEAgdm9pZCBOZXR3b3JrUHJvY2Vzczo6dGVybWlu
YXRlUmVtb3RlV29ya2VyQ29udGV4dENvbm5lY3Rpb25XaGVuUG9zc2libGUoUmVtb3RlV28KIAog
dm9pZCBOZXR3b3JrUHJvY2Vzczo6cHJlcGFyZVRvU3VzcGVuZChib29sIGlzU3VzcGVuc2lvbklt
bWluZW50LCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYgY29tcGxldGlvbkhhbmRsZXIpCiB7
Ci0gICAgUkVMRUFTRV9MT0coUHJvY2Vzc1N1c3BlbnNpb24sICIlcCAtIE5ldHdvcmtQcm9jZXNz
OjpwcmVwYXJlVG9TdXNwZW5kKCksIGlzU3VzcGVuc2lvbkltbWluZW50PSVkIiwgdGhpcywgaXNT
dXNwZW5zaW9uSW1taW5lbnQpOworICAgIFJFTEVBU0VfTE9HKFByb2Nlc3NTdXNwZW5zaW9uLCAi
JXAgLSBOZXR3b3JrUHJvY2Vzczo6cHJlcGFyZVRvU3VzcGVuZCgpLCBpc1N1c3BlbnNpb25JbW1p
bmVudD0lZCBQcm9jZXNzIGlzICVzIGluIGJhY2tncm91bmQiLCB0aGlzLCBpc1N1c3BlbnNpb25J
bW1pbmVudCwgbV9lbnRlckJhY2tncm91bmRUaW1lc3RhbXAgPyAiIiA6ICJub3QiKTsKIAogICAg
IG1faXNTdXNwZW5kZWQgPSB0cnVlOwogICAgIGxvd01lbW9yeUhhbmRsZXIoQ3JpdGljYWw6Olll
cyk7CkBAIC0yMTQ1LDE3ICsyMTQ1LDI5IEBAIHZvaWQgTmV0d29ya1Byb2Nlc3M6OnByZXBhcmVU
b1N1c3BlbmQoYm9vbCBpc1N1c3BlbnNpb25JbW1pbmVudCwgQ29tcGxldGlvbkhhbmRsCiAKIHZv
aWQgTmV0d29ya1Byb2Nlc3M6OmFwcGxpY2F0aW9uRGlkRW50ZXJCYWNrZ3JvdW5kKCkKIHsKKyAg
ICBpZiAobV9lbnRlckJhY2tncm91bmRUaW1lc3RhbXApCisgICAgICAgIHJldHVybjsKKworICAg
IG1fZW50ZXJCYWNrZ3JvdW5kVGltZXN0YW1wID0gV2FsbFRpbWU6Om5vdygpOwogICAgIG1fZG93
bmxvYWRNYW5hZ2VyLmFwcGxpY2F0aW9uRGlkRW50ZXJCYWNrZ3JvdW5kKCk7CiB9CiAKIHZvaWQg
TmV0d29ya1Byb2Nlc3M6OmFwcGxpY2F0aW9uV2lsbEVudGVyRm9yZWdyb3VuZCgpCiB7CisgICAg
aWYgKCFtX2VudGVyQmFja2dyb3VuZFRpbWVzdGFtcCkKKyAgICAgICAgcmV0dXJuOworCisgICAg
bV9lbnRlckJhY2tncm91bmRUaW1lc3RhbXAgPSBzdGQ6Om51bGxvcHQ7CiAgICAgbV9kb3dubG9h
ZE1hbmFnZXIuYXBwbGljYXRpb25XaWxsRW50ZXJGb3JlZ3JvdW5kKCk7CiB9CiAKLXZvaWQgTmV0
d29ya1Byb2Nlc3M6OnByb2Nlc3NEaWRSZXN1bWUoKQordm9pZCBOZXR3b3JrUHJvY2Vzczo6cHJv
Y2Vzc0RpZFJlc3VtZShib29sIGZvckZvcmVncm91bmRBY3Rpdml0eSkKIHsKLSAgICBSRUxFQVNF
X0xPRyhQcm9jZXNzU3VzcGVuc2lvbiwgIiVwIC0gTmV0d29ya1Byb2Nlc3M6OnByb2Nlc3NEaWRS
ZXN1bWUoKSIsIHRoaXMpOworICAgIFJFTEVBU0VfTE9HKFByb2Nlc3NTdXNwZW5zaW9uLCAiJXAg
LSBOZXR3b3JrUHJvY2Vzczo6cHJvY2Vzc0RpZFJlc3VtZSgpIGZvckZvcmVncm91bmRBY3Rpdml0
eT0lZCIsIHRoaXMsIGZvckZvcmVncm91bmRBY3Rpdml0eSk7CisgICAgaWYgKG1fZW50ZXJCYWNr
Z3JvdW5kVGltZXN0YW1wKSB7CisgICAgICAgIGF1dG8gaW50ZXJ2YWwgPSBXYWxsVGltZTo6bm93
KCkgLSBtX2VudGVyQmFja2dyb3VuZFRpbWVzdGFtcC52YWx1ZSgpOworICAgICAgICBSRUxFQVNF
X0xPR19FUlJPUihQcm9jZXNzU3VzcGVuc2lvbiwgIiVwIC0gTmV0d29ya1Byb2Nlc3M6OnByb2Nl
c3NEaWRSZXN1bWUoKSBQcm9jZXNzIGlzIGluIGJhY2tncm91bmQgZm9yICVmIG1zIiwgdGhpcywg
aW50ZXJ2YWwudmFsdWUoKSk7CisgICAgfQogCiAgICAgbV9pc1N1c3BlbmRlZCA9IGZhbHNlOwog
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNz
LmggYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLmgKaW5kZXgg
MDYzOTY1YTE2YTk0MTRjYzg0NzU3MmEyMWRiMjQxOGI0N2JlYTE4Zi4uMDM4MDRjYTNiMjBlZmUy
NTE3MjY4NzA4OTZiMDg0MTQ0OThkNWRiMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3
b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5oCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1By
b2Nlc3MvTmV0d29ya1Byb2Nlc3MuaApAQCAtMTc0LDcgKzE3NCw3IEBAIHB1YmxpYzoKIAogICAg
IHZvaWQgcHJvY2Vzc1dpbGxTdXNwZW5kSW1taW5lbnRseUZvclRlc3RpbmdTeW5jKENvbXBsZXRp
b25IYW5kbGVyPHZvaWQoKT4mJik7CiAgICAgdm9pZCBwcmVwYXJlVG9TdXNwZW5kKGJvb2wgaXNT
dXNwZW5zaW9uSW1taW5lbnQsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJik7Ci0gICAgdm9p
ZCBwcm9jZXNzRGlkUmVzdW1lKCk7CisgICAgdm9pZCBwcm9jZXNzRGlkUmVzdW1lKGJvb2wgZm9y
Rm9yZWdyb3VuZEFjdGl2aXR5KTsKIAogICAgIENhY2hlTW9kZWwgY2FjaGVNb2RlbCgpIGNvbnN0
IHsgcmV0dXJuIG1fY2FjaGVNb2RlbDsgfQogCkBAIC01MjQsNiArNTI0LDcgQEAgcHJpdmF0ZToK
ICAgICBib29sIG1fcHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRFbmFibGVkIHsgdHJ1ZSB9OwogICAg
IGJvb2wgbV9mdHBFbmFibGVkIHsgZmFsc2UgfTsKICAgICBib29sIG1faXNTdXNwZW5kZWQgeyBm
YWxzZSB9OworICAgIHN0ZDo6b3B0aW9uYWw8V2FsbFRpbWU+IG1fZW50ZXJCYWNrZ3JvdW5kVGlt
ZXN0YW1wOwogfTsKIAogI2lmICFQTEFURk9STShDT0NPQSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MubWVzc2FnZXMuaW4gYi9Tb3VyY2Uv
V2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLm1lc3NhZ2VzLmluCmluZGV4IDFj
ZjMyZWFkNjBiYjM0ZmEyMmVmNGRkMzllOTg1NjA4ZjdlNjZiMjQuLjliZGVkYTQ4OTc3MmYyNTcy
MWE1ZWJjNjVjOGQyZjRkZDFiNGVkNTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29y
a1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MubWVzc2FnZXMuaW4KKysrIGIvU291cmNlL1dlYktpdC9O
ZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5tZXNzYWdlcy5pbgpAQCAtNzUsNyArNzUsNyBA
QCBtZXNzYWdlcyAtPiBOZXR3b3JrUHJvY2VzcyBMZWdhY3lSZWNlaXZlciB7CiAKICAgICBQcm9j
ZXNzV2lsbFN1c3BlbmRJbW1pbmVudGx5Rm9yVGVzdGluZ1N5bmMoKSAtPiAoKSBTeW5jaHJvbm91
cwogICAgIFByZXBhcmVUb1N1c3BlbmQoYm9vbCBpc1N1c3BlbnNpb25JbW1pbmVudCkgLT4gKCkK
LSAgICBQcm9jZXNzRGlkUmVzdW1lKCkKKyAgICBQcm9jZXNzRGlkUmVzdW1lKGJvb2wgZm9yRm9y
ZWdyb3VuZEFjdGl2aXR5KQogCiAgICAgUHJlY29ubmVjdFRvKFBBTDo6U2Vzc2lvbklEIHNlc3Np
b25JRCwgV2ViS2l0OjpXZWJQYWdlUHJveHlJZGVudGlmaWVyIHdlYlBhZ2VQcm94eUlELCBXZWJD
b3JlOjpQYWdlSWRlbnRpZmllciB3ZWJQYWdlSUQsIFVSTCB1cmwsIFN0cmluZyB1c2VyQWdlbnQs
IGVudW06dWludDhfdCBXZWJDb3JlOjpTdG9yZWRDcmVkZW50aWFsc1BvbGljeSBzdG9yZWRDcmVk
ZW50aWFsc1BvbGljeSwgZW51bTpib29sIHN0ZDo6b3B0aW9uYWw8V2ViS2l0OjpOYXZpZ2F0aW5n
VG9BcHBCb3VuZERvbWFpbj4gaXNOYXZpZ2F0aW5nVG9BcHBCb3VuZERvbWFpbiwgZW51bTpib29s
IFdlYktpdDo6TGFzdE5hdmlnYXRpb25XYXNBcHBJbml0aWF0ZWQgbGFzdE5hdmlnYXRpb25XYXNB
cHBJbml0aWF0ZWQpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkv
Q29jb2EvV0tXZWJWaWV3VGVzdGluZy5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9D
b2NvYS9XS1dlYlZpZXdUZXN0aW5nLm1tCmluZGV4IGMwY2Y5NzhjOTY2MmVhODI3NjdjYTRjY2Fl
OTViNjRmZmNjNjk2NzkuLmE1MjQzNTRmZDQ1NWViYTU5Y2E5ZjE3NTlhYjI3ZjU1ZDYxMGUzNjAg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXdU
ZXN0aW5nLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZp
ZXdUZXN0aW5nLm1tCkBAIC0yMTMsNyArMjEzLDcgQEAKIC0gKHZvaWQpX3Byb2Nlc3NEaWRSZXN1
bWVGb3JUZXN0aW5nCiB7CiAgICAgaWYgKF9wYWdlKQotICAgICAgICBfcGFnZS0+cHJvY2Vzcygp
LnNlbmRQcm9jZXNzRGlkUmVzdW1lKCk7CisgICAgICAgIF9wYWdlLT5wcm9jZXNzKCkuc2VuZFBy
b2Nlc3NEaWRSZXN1bWUodHJ1ZSk7CiB9CiAKIC0gKHZvaWQpX3NldEFzc2VydGlvblR5cGVGb3JU
ZXN0aW5nOihpbnQpdmFsdWUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0dQ
VS9HUFVQcm9jZXNzUHJveHkuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvR1BVL0dQVVBy
b2Nlc3NQcm94eS5jcHAKaW5kZXggNGFmMjc2MDI3OTEzNTUyMWVjMTNhYjhjMzIxNzFkZmQzMWY4
Y2ZiNC4uM2Q4ZGI3Mjc2NDYxYjkwMjY1NzhkODcwMTEyYmI1NjMxOWQxZmE1YyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvR1BVL0dQVVByb2Nlc3NQcm94eS5jcHAKKysrIGIv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvR1BVL0dQVVByb2Nlc3NQcm94eS5jcHAKQEAgLTU3NSw3
ICs1NzUsNyBAQCB2b2lkIEdQVVByb2Nlc3NQcm94eTo6c2VuZFByZXBhcmVUb1N1c3BlbmQoSXNT
dXNwZW5zaW9uSW1taW5lbnQgaXNTdXNwZW5zaW9uSW1taQogICAgIHNlbmRXaXRoQXN5bmNSZXBs
eShNZXNzYWdlczo6R1BVUHJvY2Vzczo6UHJlcGFyZVRvU3VzcGVuZChpc1N1c3BlbnNpb25JbW1p
bmVudCA9PSBJc1N1c3BlbnNpb25JbW1pbmVudDo6WWVzKSwgV1RGTW92ZShjb21wbGV0aW9uSGFu
ZGxlciksIDAsIHsgfSwgU2hvdWxkU3RhcnRQcm9jZXNzVGhyb3R0bGVyQWN0aXZpdHk6Ok5vKTsK
IH0KIAotdm9pZCBHUFVQcm9jZXNzUHJveHk6OnNlbmRQcm9jZXNzRGlkUmVzdW1lKCkKK3ZvaWQg
R1BVUHJvY2Vzc1Byb3h5OjpzZW5kUHJvY2Vzc0RpZFJlc3VtZShib29sKQogewogICAgIGlmIChj
YW5TZW5kTWVzc2FnZSgpKQogICAgICAgICBzZW5kKE1lc3NhZ2VzOjpHUFVQcm9jZXNzOjpQcm9j
ZXNzRGlkUmVzdW1lKCksIDApOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
R1BVL0dQVVByb2Nlc3NQcm94eS5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvR1BVL0dQVVBy
b2Nlc3NQcm94eS5oCmluZGV4IDQ0M2U5YjdhNDY2YWZlNTFlODg0YjRmOTQzOGM0Y2M2NWQ3M2I4
ZGMuLjE3YWNhZTJkZjAyYWE3YzBmZjhhOGFiYTYwNTA3Y2QwNjBhZjM5OWIgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0dQVS9HUFVQcm9jZXNzUHJveHkuaAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9HUFUvR1BVUHJvY2Vzc1Byb3h5LmgKQEAgLTEyNyw3ICsxMjcs
NyBAQCBwcml2YXRlOgogICAgIC8vIFByb2Nlc3NUaHJvdHRsZXJDbGllbnQKICAgICBBU0NJSUxp
dGVyYWwgY2xpZW50TmFtZSgpIGNvbnN0IGZpbmFsIHsgcmV0dXJuICJHUFVQcm9jZXNzIl9zOyB9
CiAgICAgdm9pZCBzZW5kUHJlcGFyZVRvU3VzcGVuZChJc1N1c3BlbnNpb25JbW1pbmVudCwgQ29t
cGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmKSBmaW5hbDsKLSAgICB2b2lkIHNlbmRQcm9jZXNzRGlk
UmVzdW1lKCkgZmluYWw7CisgICAgdm9pZCBzZW5kUHJvY2Vzc0RpZFJlc3VtZShib29sKSBmaW5h
bDsKIAogICAgIC8vIFByb2Nlc3NMYXVuY2hlcjo6Q2xpZW50CiAgICAgdm9pZCBkaWRGaW5pc2hM
YXVuY2hpbmcoUHJvY2Vzc0xhdW5jaGVyKiwgSVBDOjpDb25uZWN0aW9uOjpJZGVudGlmaWVyKSBv
dmVycmlkZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL05ldHdvcmsvTmV0
d29ya1Byb2Nlc3NQcm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9OZXR3b3JrL05l
dHdvcmtQcm9jZXNzUHJveHkuY3BwCmluZGV4IGUxOWI4YjI0ZWY5Y2IyYWJlMWZhODcwNmVlN2Nl
YTEyNTFlYzMwMDYuLjkxMGRhMTM4ZGVkYjI4ZDdhNDNiNWFhNGNjZWY2MjJiNGE0Zjc5N2QgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nlc3NQ
cm94eS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvTmV0d29yay9OZXR3b3JrUHJv
Y2Vzc1Byb3h5LmNwcApAQCAtMTM5OSwxMCArMTM5OSwxMCBAQCB2b2lkIE5ldHdvcmtQcm9jZXNz
UHJveHk6OnNlbmRQcmVwYXJlVG9TdXNwZW5kKElzU3VzcGVuc2lvbkltbWluZW50IGlzU3VzcGVu
c2lvbgogICAgIHNlbmRXaXRoQXN5bmNSZXBseShNZXNzYWdlczo6TmV0d29ya1Byb2Nlc3M6OlBy
ZXBhcmVUb1N1c3BlbmQoaXNTdXNwZW5zaW9uSW1taW5lbnQgPT0gSXNTdXNwZW5zaW9uSW1taW5l
bnQ6OlllcyksIFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpLCAwLCB7IH0sIFNob3VsZFN0YXJ0
UHJvY2Vzc1Rocm90dGxlckFjdGl2aXR5OjpObyk7CiB9CiAKLXZvaWQgTmV0d29ya1Byb2Nlc3NQ
cm94eTo6c2VuZFByb2Nlc3NEaWRSZXN1bWUoKQordm9pZCBOZXR3b3JrUHJvY2Vzc1Byb3h5Ojpz
ZW5kUHJvY2Vzc0RpZFJlc3VtZShib29sIGZvckZvcmVncm91bmRBY3Rpdml0eSkKIHsKICAgICBp
ZiAoY2FuU2VuZE1lc3NhZ2UoKSkKLSAgICAgICAgc2VuZChNZXNzYWdlczo6TmV0d29ya1Byb2Nl
c3M6OlByb2Nlc3NEaWRSZXN1bWUoKSwgMCk7CisgICAgICAgIHNlbmQoTWVzc2FnZXM6Ok5ldHdv
cmtQcm9jZXNzOjpQcm9jZXNzRGlkUmVzdW1lKGZvckZvcmVncm91bmRBY3Rpdml0eSksIDApOwog
fQogCiB2b2lkIE5ldHdvcmtQcm9jZXNzUHJveHk6OmZsdXNoQ29va2llcyhQQUw6OlNlc3Npb25J
RCBzZXNzaW9uSUQsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJiBjb21wbGV0aW9uSGFuZGxl
cikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL05ldHdvcmsvTmV0d29ya1By
b2Nlc3NQcm94eS5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvTmV0d29yay9OZXR3b3JrUHJv
Y2Vzc1Byb3h5LmgKaW5kZXggMTA1ZDY2MTI5ZGQyY2NmNmE1NTFmZGZiYmM1MmQ2MjhhNGQwYWUy
Mi4uMzBjYzRiZjg4ZWUwZDIyM2Q1NjhmY2VlY2NlYTYzOTFiMzk0M2M4MyAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvTmV0d29yay9OZXR3b3JrUHJvY2Vzc1Byb3h5LmgKKysr
IGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvTmV0d29yay9OZXR3b3JrUHJvY2Vzc1Byb3h5LmgK
QEAgLTIzNiw3ICsyMzYsNyBAQCBwdWJsaWM6CiAgICAgdm9pZCBjcmVhdGVTeW1MaW5rRm9yRmls
ZVVwZ3JhZGUoY29uc3QgU3RyaW5nJiBpbmRleGVkRGF0YWJhc2VEaXJlY3RvcnkpOwogCiAgICAg
Ly8gUHJvY2Vzc1Rocm90dGxlckNsaWVudAotICAgIHZvaWQgc2VuZFByb2Nlc3NEaWRSZXN1bWUo
KSBmaW5hbDsKKyAgICB2b2lkIHNlbmRQcm9jZXNzRGlkUmVzdW1lKGJvb2wgZm9yRm9yZWdyb3Vu
ZEFjdGl2aXR5KSBmaW5hbDsKICAgICBBU0NJSUxpdGVyYWwgY2xpZW50TmFtZSgpIGNvbnN0IGZp
bmFsIHsgcmV0dXJuICJOZXR3b3JrUHJvY2VzcyJfczsgfQogICAgIAogICAgIHN0YXRpYyB2b2lk
IHNldFN1c3BlbnNpb25BbGxvd2VkRm9yVGVzdGluZyhib29sKTsKQEAgLTMwMSw2ICszMDEsMTEg
QEAgcHVibGljOgogCiAgICAgdm9pZCB0ZXJtaW5hdGVSZW1vdGVXb3JrZXJDb250ZXh0Q29ubmVj
dGlvbldoZW5Qb3NzaWJsZShSZW1vdGVXb3JrZXJUeXBlLCBQQUw6OlNlc3Npb25JRCwgY29uc3Qg
V2ViQ29yZTo6UmVnaXN0cmFibGVEb21haW4mLCBXZWJDb3JlOjpQcm9jZXNzSWRlbnRpZmllcik7
CiAKKyNpZiBQTEFURk9STShJT1NfRkFNSUxZKQorICAgIHZvaWQgYXBwbGljYXRpb25XaWxsRW50
ZXJGb3JlZ3JvdW5kKCk7CisgICAgdm9pZCBhcHBsaWNhdGlvbkRpZEVudGVyQmFja2dyb3VuZCgp
OworI2VuZGlmCisKIHByaXZhdGU6CiAgICAgZXhwbGljaXQgTmV0d29ya1Byb2Nlc3NQcm94eSgp
OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQ
cm9jZXNzUHJveHlDb2NvYS5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL05ldHdvcmsvTmV0
d29ya1Byb2Nlc3NQcm94eUNvY29hLm1tCmluZGV4IGI2NGI1MDIwNjFiNDg5YzM3OTU1YzI5NTA3
NTMyN2RiYjAxNjRlMmEuLjg3ZGE5ZDQ0YWIyMjI0ZDNiZmU3ODcwZGYyMjhiZDU2YjhkOTBiMDcg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nl
c3NQcm94eUNvY29hLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL05ldHdvcmsvTmV0
d29ya1Byb2Nlc3NQcm94eUNvY29hLm1tCkBAIC04NSw0ICs4NSwxOCBAQCBib29sIE5ldHdvcmtQ
cm9jZXNzUHJveHk6OnNlbmRYUENFbmRwb2ludFRvUHJvY2VzcyhBdXhpbGlhcnlQcm9jZXNzUHJv
eHkmIHByb2NlcwogICAgIHJldHVybiB0cnVlOwogfQogCisjaWYgUExBVEZPUk0oSU9TX0ZBTUlM
WSkKKwordm9pZCBOZXR3b3JrUHJvY2Vzczo6YXBwbGljYXRpb25XaWxsRW50ZXJGb3JlZ3JvdW5k
KCkKK3sKKyAgICBzZW5kKE1lc3NhZ2VzOjpOZXR3b3JrUHJvY2Vzczo6QXBwbGljYXRpb25XaWxs
RW50ZXJGb3JlZ3JvdW5kKCksIDApOworfQorCit2b2lkIE5ldHdvcmtQcm9jZXNzOjphcHBsaWNh
dGlvbkRpZEVudGVyQmFja2dyb3VuZCgpCit7CisgICAgc2VuZChNZXNzYWdlczo6TmV0d29ya1By
b2Nlc3M6OkFwcGxpY2F0aW9uRGlkRW50ZXJCYWNrZ3JvdW5kKCksIDApOworfQorCisjZW5kaWYK
KwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvUHJvY2Vzc1Rocm90dGxl
ci5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Qcm9jZXNzVGhyb3R0bGVyLmNwcAppbmRl
eCBiNjliNjQ5NmZhYzgwMmFiNDNlZmJmODI3ZmRkMzJhOWIwZmQxNWFiLi5kNjY5NmQ4YzA4MjI2
ZjI4NDAwMWMxMDhjYjNjZGEzOGMyNTk2YjM4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9Qcm9jZXNzVGhyb3R0bGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9Qcm9jZXNzVGhyb3R0bGVyLmNwcApAQCAtMTU5LDcgKzE1OSw3IEBAIHZvaWQgUHJvY2Vzc1Ro
cm90dGxlcjo6dXBkYXRlQXNzZXJ0aW9uSWZOZWVkZWQoKQogICAgICAgICAgICAgICAgIFBST0NF
U1NUSFJPVFRMRVJfUkVMRUFTRV9MT0coInVwZGF0ZUFzc2VydGlvbklmTmVlZGVkOiBzZW5kaW5n
IFByb2Nlc3NEaWRSZXN1bWUgSVBDIGJlY2F1c2UgdGhlIHByb2Nlc3Mgd2FzIHN1c3BlbmRlZCIp
OwogICAgICAgICAgICAgZWxzZQogICAgICAgICAgICAgICAgIFBST0NFU1NUSFJPVFRMRVJfUkVM
RUFTRV9MT0coInVwZGF0ZUFzc2VydGlvbklmTmVlZGVkOiBzZW5kaW5nIFByb2Nlc3NEaWRSZXN1
bWUgSVBDIGJlY2F1c2UgdGhlIFdlYlByb2Nlc3MgaXMgc3RpbGwgcHJvY2Vzc2luZyByZXF1ZXN0
IHRvIHN1c3BlbmQ9JSIgUFJJdTY0LCAqbV9wZW5kaW5nUmVxdWVzdFRvU3VzcGVuZElEKTsKLSAg
ICAgICAgICAgIG1fcHJvY2Vzcy5zZW5kUHJvY2Vzc0RpZFJlc3VtZSgpOworICAgICAgICAgICAg
bV9wcm9jZXNzLnNlbmRQcm9jZXNzRGlkUmVzdW1lKGV4cGVjdGVkQXNzZXJ0aW9uVHlwZSgpID09
IFByb2Nlc3NBc3NlcnRpb25UeXBlOjpGb3JlZ3JvdW5kKTsKICAgICAgICAgICAgIGNsZWFyUGVu
ZGluZ1JlcXVlc3RUb1N1c3BlbmQoKTsKICAgICAgICAgfQogICAgIH0gZWxzZSB7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Qcm9jZXNzVGhyb3R0bGVyQ2xpZW50LmggYi9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Qcm9jZXNzVGhyb3R0bGVyQ2xpZW50LmgKaW5kZXggMTE4
YmYwZGQyMzU4MjI0YzJlYzdkZjliOTY1MWU5ZjEzNzhlNmUwMC4uMDRkMzFhMDE5ODQzYzI0Mjg0
MzdhMWFlYzNjMTM3YmQxM2E5MTY1NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvUHJvY2Vzc1Rocm90dGxlckNsaWVudC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L1Byb2Nlc3NUaHJvdHRsZXJDbGllbnQuaApAQCAtMzcsNyArMzcsNyBAQCBwdWJsaWM6CiAgICAg
dmlydHVhbCB+UHJvY2Vzc1Rocm90dGxlckNsaWVudCgpIHsgfQogCiAgICAgdmlydHVhbCB2b2lk
IHNlbmRQcmVwYXJlVG9TdXNwZW5kKElzU3VzcGVuc2lvbkltbWluZW50LCBDb21wbGV0aW9uSGFu
ZGxlcjx2b2lkKCk+JiYpID0gMDsKLSAgICB2aXJ0dWFsIHZvaWQgc2VuZFByb2Nlc3NEaWRSZXN1
bWUoKSA9IDA7CisgICAgdmlydHVhbCB2b2lkIHNlbmRQcm9jZXNzRGlkUmVzdW1lKGJvb2wgZm9y
Rm9yZWdyb3VuZEFjdGl2aXR5KSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIGRpZFNldEFzc2VydGlv
blR5cGUoUHJvY2Vzc0Fzc2VydGlvblR5cGUpIHsgfTsKICAgICB2aXJ0dWFsIEFTQ0lJTGl0ZXJh
bCBjbGllbnROYW1lKCkgY29uc3QgPSAwOwogfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL1dlYkF1dGhlbnRpY2F0aW9uL1dlYkF1dGhuUHJvY2Vzc1Byb3h5LmggYi9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJBdXRoZW50aWNhdGlvbi9XZWJBdXRoblByb2Nlc3NQcm94
eS5oCmluZGV4IGM1YjE2NzFiMWFhMDYzNGQxMzJiOWE2ZWY4OWFlODNlY2ZiMDNiM2UuLjBiNjA1
MTc4YjM2MGRiNjVhZWI1NTM0MWRjMmExODRlZDcyMDc3MTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL1dlYkF1dGhlbnRpY2F0aW9uL1dlYkF1dGhuUHJvY2Vzc1Byb3h5LmgK
KysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViQXV0aGVudGljYXRpb24vV2ViQXV0aG5Q
cm9jZXNzUHJveHkuaApAQCAtNTUsNyArNTUsNyBAQCBwdWJsaWM6CiAgICAgdm9pZCB1cGRhdGVQ
cm9jZXNzQXNzZXJ0aW9uKCk7CiAKICAgICAvLyBQcm9jZXNzVGhyb3R0bGVyQ2xpZW50Ci0gICAg
dm9pZCBzZW5kUHJvY2Vzc0RpZFJlc3VtZSgpIGZpbmFsIHsgfQorICAgIHZvaWQgc2VuZFByb2Nl
c3NEaWRSZXN1bWUoYm9vbCkgZmluYWwgeyB9CiAgICAgQVNDSUlMaXRlcmFsIGNsaWVudE5hbWUo
KSBjb25zdCBmaW5hbCB7IHJldHVybiAiV2ViQXV0aG5Qcm9jZXNzIl9zOyB9CiAKIHByaXZhdGU6
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkuY3Bw
IGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5LmNwcAppbmRleCAyZjFl
NjkzNmJlNjE0NTgxMmQ0NzdmYWJhN2RjMmE4MDM3ODRlN2FmLi5jMjQ1NDhlMjhlY2Y4OWI1YzJh
YzYzODEwYjBjZDhhY2E0M2IyNGY4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9XZWJQcm9jZXNzUHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBy
b2Nlc3NQcm94eS5jcHAKQEAgLTE0MzUsNyArMTQzNSw3IEBAIHZvaWQgV2ViUHJvY2Vzc1Byb3h5
OjpzZW5kUHJlcGFyZVRvU3VzcGVuZChJc1N1c3BlbnNpb25JbW1pbmVudCBpc1N1c3BlbnNpb25J
bW1pCiAgICAgc2VuZFdpdGhBc3luY1JlcGx5KE1lc3NhZ2VzOjpXZWJQcm9jZXNzOjpQcmVwYXJl
VG9TdXNwZW5kKGlzU3VzcGVuc2lvbkltbWluZW50ID09IElzU3VzcGVuc2lvbkltbWluZW50OjpZ
ZXMpLCBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKSwgMCwgeyB9LCBTaG91bGRTdGFydFByb2Nl
c3NUaHJvdHRsZXJBY3Rpdml0eTo6Tm8pOwogfQogCi12b2lkIFdlYlByb2Nlc3NQcm94eTo6c2Vu
ZFByb2Nlc3NEaWRSZXN1bWUoKQordm9pZCBXZWJQcm9jZXNzUHJveHk6OnNlbmRQcm9jZXNzRGlk
UmVzdW1lKGJvb2wpCiB7CiAgICAgV0VCUFJPQ0VTU1BST1hZX1JFTEVBU0VfTE9HKFByb2Nlc3NT
dXNwZW5zaW9uLCAic2VuZFByb2Nlc3NEaWRSZXN1bWU6Iik7CiAgICAgaWYgKGNhblNlbmRNZXNz
YWdlKCkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUHJv
eHkuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5oCmluZGV4IGJm
Yzc5NTZjMDJlZTVhY2UyZDU1NzM0M2M1MDc1MzdhODVjZmQ0ZmMuLjAyYzFjOGIzY2NkNzM1Yjcw
MmYxOGM2ZTU3NTFiYTk4MzUzY2VlMTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL1dlYlByb2Nlc3NQcm94eS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBy
b2Nlc3NQcm94eS5oCkBAIC0zMjcsNyArMzI3LDcgQEAgcHVibGljOgogCiAgICAgLy8gUHJvY2Vz
c1Rocm90dGxlckNsaWVudAogICAgIHZvaWQgc2VuZFByZXBhcmVUb1N1c3BlbmQoSXNTdXNwZW5z
aW9uSW1taW5lbnQsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJikgZmluYWw7Ci0gICAgdm9p
ZCBzZW5kUHJvY2Vzc0RpZFJlc3VtZSgpIGZpbmFsOworICAgIHZvaWQgc2VuZFByb2Nlc3NEaWRS
ZXN1bWUoYm9vbCkgZmluYWw7CiAgICAgdm9pZCBkaWRTZXRBc3NlcnRpb25UeXBlKFByb2Nlc3NB
c3NlcnRpb25UeXBlKSBmaW5hbDsKICAgICBBU0NJSUxpdGVyYWwgY2xpZW50TmFtZSgpIGNvbnN0
IGZpbmFsIHsgcmV0dXJuICJXZWJQcm9jZXNzIl9zOyB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL1dlYnNpdGVEYXRhL1dlYnNpdGVEYXRhU3RvcmUuY3BwIGIvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvV2Vic2l0ZURhdGEvV2Vic2l0ZURhdGFTdG9yZS5jcHAKaW5kZXgg
NTBjOTM1MmI2NjljNTg2OWM3NzQ4YzM5OWJhMjFjOGI3ZDU5MGExMy4uMWNiOTMyZmMzNzdhNzdj
ZDgxYmMyZjU5ZjYzYjcwYjUwZWFjNDI0NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvV2Vic2l0ZURhdGEvV2Vic2l0ZURhdGFTdG9yZS5jcHAKKysrIGIvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvV2Vic2l0ZURhdGEvV2Vic2l0ZURhdGFTdG9yZS5jcHAKQEAgLTE1NzUsNyAr
MTU3NSw3IEBAIHZvaWQgV2Vic2l0ZURhdGFTdG9yZTo6c2VuZE5ldHdvcmtQcm9jZXNzV2lsbFN1
c3BlbmRJbW1pbmVudGx5Rm9yVGVzdGluZygpCiAKIHZvaWQgV2Vic2l0ZURhdGFTdG9yZTo6c2Vu
ZE5ldHdvcmtQcm9jZXNzRGlkUmVzdW1lKCkKIHsKLSAgICBuZXR3b3JrUHJvY2VzcygpLnNlbmRQ
cm9jZXNzRGlkUmVzdW1lKCk7CisgICAgbmV0d29ya1Byb2Nlc3MoKS5zZW5kUHJvY2Vzc0RpZFJl
c3VtZSh0cnVlKTsKIH0KIAogYm9vbCBXZWJzaXRlRGF0YVN0b3JlOjpyZXNvdXJjZUxvYWRTdGF0
aXN0aWNzRW5hYmxlZCgpIGNvbnN0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9pb3MvUHJvY2Vzc0Fzc2VydGlvbklPUy5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lv
cy9Qcm9jZXNzQXNzZXJ0aW9uSU9TLm1tCmluZGV4IGZkODc4OWI4NjhkMjExNGI2YjcwMzlhNjMw
ZjdmMWRiZjgwZDE1YjkuLmZhYjU5ZTZiNDhiYzdjMDdkZGEyYTY3MjhjYjA2ZjZjNjMwYWY4ZmUg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9Qcm9jZXNzQXNzZXJ0aW9u
SU9TLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9Qcm9jZXNzQXNzZXJ0aW9u
SU9TLm1tCkBAIC0zMSw2ICszMSw3IEBACiAjaW1wb3J0ICJMb2dnaW5nLmgiCiAjaW1wb3J0ICJS
dW5uaW5nQm9hcmRTZXJ2aWNlc1NQSS5oIgogI2ltcG9ydCAiV2ViUHJvY2Vzc1Bvb2wuaCIKKyNp
bXBvcnQgIldlYnNpdGVEYXRhU3RvcmUuaCIKICNpbXBvcnQgPFVJS2l0L1VJQXBwbGljYXRpb24u
aD4KICNpbXBvcnQgPHd0Zi9IYXNoTWFwLmg+CiAjaW1wb3J0IDx3dGYvUnVuTG9vcC5oPgpAQCAt
OTIsMTEgKzkzLDIxIEBAIHN0YXRpYyBib29sIHByb2Nlc3NIYXNBY3RpdmVSdW5UaW1lTGltaXRh
dGlvbigpCiAgICAgW1tOU05vdGlmaWNhdGlvbkNlbnRlciBkZWZhdWx0Q2VudGVyXSBhZGRPYnNl
cnZlckZvck5hbWU6VUlBcHBsaWNhdGlvbldpbGxFbnRlckZvcmVncm91bmROb3RpZmljYXRpb24g
b2JqZWN0OltVSUFwcGxpY2F0aW9uIHNoYXJlZEFwcGxpY2F0aW9uXSBxdWV1ZTpuaWwgdXNpbmdC
bG9jazpeKE5TTm90aWZpY2F0aW9uICopIHsKICAgICAgICAgW3NlbGYgX2NhbmNlbFBlbmRpbmdS
ZWxlYXNlVGFza107CiAgICAgICAgIFtzZWxmIF91cGRhdGVCYWNrZ3JvdW5kVGFza107CisKKyAg
ICAgICAgV2Vic2l0ZURhdGFTdG9yZTo6Zm9yRWFjaFdlYnNpdGVEYXRhU3RvcmUoXSAoV2Vic2l0
ZURhdGFTdG9yZSYgZGF0YVN0b3JlKSB7CisgICAgICAgICAgICBpZiAoYXV0byogbmV0d29ya1By
b2Nlc3MgPSBkYXRhU3RvcmUubmV0d29ya1Byb2Nlc3NJZkV4aXN0cygpKQorICAgICAgICAgICAg
ICAgIG5ldHdvcmtQcm9jZXNzLT5hcHBsaWNhdGlvbldpbGxFbnRlckZvcmVncm91bmQoKTsKKyAg
ICAgICAgfSk7CiAgICAgfV07CiAKICAgICBbW05TTm90aWZpY2F0aW9uQ2VudGVyIGRlZmF1bHRD
ZW50ZXJdIGFkZE9ic2VydmVyRm9yTmFtZTpVSUFwcGxpY2F0aW9uRGlkRW50ZXJCYWNrZ3JvdW5k
Tm90aWZpY2F0aW9uIG9iamVjdDpbVUlBcHBsaWNhdGlvbiBzaGFyZWRBcHBsaWNhdGlvbl0gcXVl
dWU6bmlsIHVzaW5nQmxvY2s6XihOU05vdGlmaWNhdGlvbiAqKSB7CiAgICAgICAgIGlmICghW3Nl
bGYgX2hhc0JhY2tncm91bmRUYXNrXSkKICAgICAgICAgICAgIFdlYktpdDo6V2ViUHJvY2Vzc1Bv
b2w6Om5vdGlmeVByb2Nlc3NQb29sc0FwcGxpY2F0aW9uSXNBYm91dFRvU3VzcGVuZCgpOworCisg
ICAgICAgIFdlYnNpdGVEYXRhU3RvcmU6OmZvckVhY2hXZWJzaXRlRGF0YVN0b3JlKF0gKFdlYnNp
dGVEYXRhU3RvcmUmIGRhdGFTdG9yZSkgeworICAgICAgICAgICAgaWYgKGF1dG8qIG5ldHdvcmtQ
cm9jZXNzID0gZGF0YVN0b3JlLm5ldHdvcmtQcm9jZXNzSWZFeGlzdHMoKSkKKyAgICAgICAgICAg
ICAgICBuZXR3b3JrUHJvY2Vzcy0+YXBwbGljYXRpb25EaWRFbnRlckJhY2tncm91bmQoKTsKKyAg
ICAgICAgfSk7CiAgICAgfV07CiAKICAgICByZXR1cm4gc2VsZjsK
</data>
<flag name="commit-queue"
          id="482988"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>455114</attachid>
            <date>2022-03-18 11:12:06 -0700</date>
            <delta_ts>2022-03-18 11:50:37 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-238082-20220318111205.patch</filename>
            <type>text/plain</type>
            <size>18061</size>
            <attacher name="Sihui Liu">sihui_liu</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjkxNDQ2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDA3OTdjODQyNDJlODI1ZDhi
MGE1NTVmMmIzOTllNTk0NDVkNGUyNWYuLmFjODAxNmU1MDJiNmVkYWJkYmE4NTM1NjQ4YTkzYjcx
YWRiMzcyYzQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNDYgQEAKKzIwMjItMDMtMTggIFNpaHVpIExp
dSAgPHNpaHVpX2xpdUBhcHBsZS5jb20+CisKKyAgICAgICAgQWRkIGxvZ2dpbmcgYWJvdXQgcHJv
Y2VzcyBlbnRlcmluZyBiYWNrZ3JvdW5kIHRvIE5ldHdvcmtQcm9jZXNzOjpwcm9jZXNzRGlkUmVz
dW1lCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzgw
ODIKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBJbiBy
ZGFyOi8vODI0MTI3MzMsIHdlIGZvdW5kIG5ldHdvcmsgcHJvY2VzcyBjYW4gYmUgc3VzcGVuZGVk
IHJpZ2h0IGFmdGVyIGl0IHJlY2VpdmVzIHByb2Nlc3NEaWRSZXN1bWUgbWVzc2FnZS4gCisgICAg
ICAgIEZvciBuZXR3b3JrIHBvcmNlc3MsIHByb2Nlc3NEaWRSZXN1bWUgbWVhbnMgcHJvY2VzcyBp
cyBub3Qgc3VzcGVuZGVkIGFuZCBpdCBpcyBzYWZlIHRvIHBlcmZvcm0gZGF0YWJhc2UgCisgICAg
ICAgIG9wZXJhdGlvbnMuIExldCdzIGFkZCBsb2dnaW5nIHRvIGNoZWNrIHdoZW4gYW5kIHdoeSBw
cm9jZXNzRGlkUmVzdW1lIG1lc3NhZ2UgaXMgc2VudC4gSWYgdGhlIGxvZ2dpbmcgY29uZmlybXMK
KyAgICAgICAgdGhhdCBwcm9jZXNzRGlkUmVzdW1lIG1lc3NhZ2UgY2FuIGJlIHJlY2VpdmVkIHdo
ZW4gcHJvY2VzcyBpcyBjbG9zZSB0byBhc3NlcnRpb24gdGltZW91dCwgd2UgcHJvYmFibHkgd2Fu
dCB0byAKKyAgICAgICAgaWdub3JlIHN1Y2ggbWVzc2FnZSBhbmQgcmVzdW1lIGRhdGFiYXNlIG9w
ZXJhdGlvbnMgd2hlbiBhcHBsaWNhdGlvbiBlbnRlcnMgZm9yZWdyb3VuZC4KKworICAgICAgICAq
IE5ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLmNwcDoKKyAgICAgICAgKFdlYktpdDo6TmV0
d29ya1Byb2Nlc3M6OnByZXBhcmVUb1N1c3BlbmQpOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3Jr
UHJvY2Vzczo6YXBwbGljYXRpb25EaWRFbnRlckJhY2tncm91bmQpOgorICAgICAgICAoV2ViS2l0
OjpOZXR3b3JrUHJvY2Vzczo6YXBwbGljYXRpb25XaWxsRW50ZXJGb3JlZ3JvdW5kKToKKyAgICAg
ICAgKFdlYktpdDo6TmV0d29ya1Byb2Nlc3M6OnByb2Nlc3NEaWRSZXN1bWUpOgorICAgICAgICAq
IE5ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLmg6CisgICAgICAgICogTmV0d29ya1Byb2Nl
c3MvTmV0d29ya1Byb2Nlc3MubWVzc2FnZXMuaW46CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9D
b2NvYS9XS1dlYlZpZXdUZXN0aW5nLm1tOgorICAgICAgICAoLVtXS1dlYlZpZXcgX3Byb2Nlc3NE
aWRSZXN1bWVGb3JUZXN0aW5nXSk6CisgICAgICAgICogVUlQcm9jZXNzL0dQVS9HUFVQcm9jZXNz
UHJveHkuY3BwOgorICAgICAgICAoV2ViS2l0OjpHUFVQcm9jZXNzUHJveHk6OnNlbmRQcm9jZXNz
RGlkUmVzdW1lKToKKyAgICAgICAgKiBVSVByb2Nlc3MvR1BVL0dQVVByb2Nlc3NQcm94eS5oOgor
ICAgICAgICAqIFVJUHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9jZXNzUHJveHkuY3BwOgorICAg
ICAgICAoV2ViS2l0OjpOZXR3b3JrUHJvY2Vzc1Byb3h5OjpzZW5kUHJvY2Vzc0RpZFJlc3VtZSk6
CisgICAgICAgICogVUlQcm9jZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nlc3NQcm94eS5oOgorICAg
ICAgICAqIFVJUHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9jZXNzUHJveHlDb2NvYS5tbToKKyAg
ICAgICAgKFdlYktpdDo6TmV0d29ya1Byb2Nlc3M6OmFwcGxpY2F0aW9uV2lsbEVudGVyRm9yZWdy
b3VuZCk6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtQcm9jZXNzOjphcHBsaWNhdGlvbkRpZEVu
dGVyQmFja2dyb3VuZCk6CisgICAgICAgICogVUlQcm9jZXNzL1Byb2Nlc3NUaHJvdHRsZXIuY3Bw
OgorICAgICAgICAoV2ViS2l0OjpQcm9jZXNzVGhyb3R0bGVyOjp1cGRhdGVBc3NlcnRpb25JZk5l
ZWRlZCk6CisgICAgICAgICogVUlQcm9jZXNzL1Byb2Nlc3NUaHJvdHRsZXJDbGllbnQuaDoKKyAg
ICAgICAgKiBVSVByb2Nlc3MvV2ViQXV0aGVudGljYXRpb24vV2ViQXV0aG5Qcm9jZXNzUHJveHku
aDoKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5LmNwcDoKKyAgICAgICAgKFdl
YktpdDo6V2ViUHJvY2Vzc1Byb3h5OjpzZW5kUHJvY2Vzc0RpZFJlc3VtZSk6CisgICAgICAgICog
VUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJzaXRl
RGF0YS9XZWJzaXRlRGF0YVN0b3JlLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2Vic2l0ZURhdGFT
dG9yZTo6c2VuZE5ldHdvcmtQcm9jZXNzRGlkUmVzdW1lKToKKyAgICAgICAgKiBVSVByb2Nlc3Mv
aW9zL1Byb2Nlc3NBc3NlcnRpb25JT1MubW06CisgICAgICAgICgtW1dLUHJvY2Vzc0Fzc2VydGlv
bkJhY2tncm91bmRUYXNrTWFuYWdlciBpbml0XSk6CisKIDIwMjItMDMtMTcgIEFkaXR5YSBLZWVy
dGhpICA8YWtlZXJ0aGlAYXBwbGUuY29tPgogCiAgICAgICAgIFtpT1NdIFN1cHBvcnQgUERGIHNl
YXJjaCB3aGVuIHVzaW5nIGEgZmluZCBpbnRlcmFjdGlvbgpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5jcHAgYi9Tb3VyY2UvV2ViS2l0L05l
dHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLmNwcAppbmRleCBjNzQ0MDZhNTU4YWY0ZTY4NGZh
NDA0N2M2MDgzNDg1YTFlNTYxMjY4Li5kZTQyYTE5ZDllMjAzZDJmMTVjNTkwYzhhM2Q5NjliZDg5
OTQwODBhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtQ
cm9jZXNzLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9j
ZXNzLmNwcApAQCAtMjExNCw3ICsyMTE0LDcgQEAgdm9pZCBOZXR3b3JrUHJvY2Vzczo6dGVybWlu
YXRlUmVtb3RlV29ya2VyQ29udGV4dENvbm5lY3Rpb25XaGVuUG9zc2libGUoUmVtb3RlV28KIAog
dm9pZCBOZXR3b3JrUHJvY2Vzczo6cHJlcGFyZVRvU3VzcGVuZChib29sIGlzU3VzcGVuc2lvbklt
bWluZW50LCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYgY29tcGxldGlvbkhhbmRsZXIpCiB7
Ci0gICAgUkVMRUFTRV9MT0coUHJvY2Vzc1N1c3BlbnNpb24sICIlcCAtIE5ldHdvcmtQcm9jZXNz
OjpwcmVwYXJlVG9TdXNwZW5kKCksIGlzU3VzcGVuc2lvbkltbWluZW50PSVkIiwgdGhpcywgaXNT
dXNwZW5zaW9uSW1taW5lbnQpOworICAgIFJFTEVBU0VfTE9HKFByb2Nlc3NTdXNwZW5zaW9uLCAi
JXAgLSBOZXR3b3JrUHJvY2Vzczo6cHJlcGFyZVRvU3VzcGVuZCgpLCBpc1N1c3BlbnNpb25JbW1p
bmVudD0lZCBQcm9jZXNzIGlzICVzIGluIGJhY2tncm91bmQiLCB0aGlzLCBpc1N1c3BlbnNpb25J
bW1pbmVudCwgbV9lbnRlckJhY2tncm91bmRUaW1lc3RhbXAgPyAiIiA6ICJub3QiKTsKIAogICAg
IG1faXNTdXNwZW5kZWQgPSB0cnVlOwogICAgIGxvd01lbW9yeUhhbmRsZXIoQ3JpdGljYWw6Olll
cyk7CkBAIC0yMTQ1LDE3ICsyMTQ1LDI5IEBAIHZvaWQgTmV0d29ya1Byb2Nlc3M6OnByZXBhcmVU
b1N1c3BlbmQoYm9vbCBpc1N1c3BlbnNpb25JbW1pbmVudCwgQ29tcGxldGlvbkhhbmRsCiAKIHZv
aWQgTmV0d29ya1Byb2Nlc3M6OmFwcGxpY2F0aW9uRGlkRW50ZXJCYWNrZ3JvdW5kKCkKIHsKKyAg
ICBpZiAobV9lbnRlckJhY2tncm91bmRUaW1lc3RhbXApCisgICAgICAgIHJldHVybjsKKworICAg
IG1fZW50ZXJCYWNrZ3JvdW5kVGltZXN0YW1wID0gV2FsbFRpbWU6Om5vdygpOwogICAgIG1fZG93
bmxvYWRNYW5hZ2VyLmFwcGxpY2F0aW9uRGlkRW50ZXJCYWNrZ3JvdW5kKCk7CiB9CiAKIHZvaWQg
TmV0d29ya1Byb2Nlc3M6OmFwcGxpY2F0aW9uV2lsbEVudGVyRm9yZWdyb3VuZCgpCiB7CisgICAg
aWYgKCFtX2VudGVyQmFja2dyb3VuZFRpbWVzdGFtcCkKKyAgICAgICAgcmV0dXJuOworCisgICAg
bV9lbnRlckJhY2tncm91bmRUaW1lc3RhbXAgPSBzdGQ6Om51bGxvcHQ7CiAgICAgbV9kb3dubG9h
ZE1hbmFnZXIuYXBwbGljYXRpb25XaWxsRW50ZXJGb3JlZ3JvdW5kKCk7CiB9CiAKLXZvaWQgTmV0
d29ya1Byb2Nlc3M6OnByb2Nlc3NEaWRSZXN1bWUoKQordm9pZCBOZXR3b3JrUHJvY2Vzczo6cHJv
Y2Vzc0RpZFJlc3VtZShib29sIGZvckZvcmVncm91bmRBY3Rpdml0eSkKIHsKLSAgICBSRUxFQVNF
X0xPRyhQcm9jZXNzU3VzcGVuc2lvbiwgIiVwIC0gTmV0d29ya1Byb2Nlc3M6OnByb2Nlc3NEaWRS
ZXN1bWUoKSIsIHRoaXMpOworICAgIFJFTEVBU0VfTE9HKFByb2Nlc3NTdXNwZW5zaW9uLCAiJXAg
LSBOZXR3b3JrUHJvY2Vzczo6cHJvY2Vzc0RpZFJlc3VtZSgpIGZvckZvcmVncm91bmRBY3Rpdml0
eT0lZCIsIHRoaXMsIGZvckZvcmVncm91bmRBY3Rpdml0eSk7CisgICAgaWYgKG1fZW50ZXJCYWNr
Z3JvdW5kVGltZXN0YW1wKSB7CisgICAgICAgIGF1dG8gaW50ZXJ2YWwgPSBXYWxsVGltZTo6bm93
KCkgLSBtX2VudGVyQmFja2dyb3VuZFRpbWVzdGFtcC52YWx1ZSgpOworICAgICAgICBSRUxFQVNF
X0xPR19FUlJPUihQcm9jZXNzU3VzcGVuc2lvbiwgIiVwIC0gTmV0d29ya1Byb2Nlc3M6OnByb2Nl
c3NEaWRSZXN1bWUoKSBQcm9jZXNzIGlzIGluIGJhY2tncm91bmQgZm9yICVmIG1zIiwgdGhpcywg
aW50ZXJ2YWwudmFsdWUoKSk7CisgICAgfQogCiAgICAgbV9pc1N1c3BlbmRlZCA9IGZhbHNlOwog
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNz
LmggYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLmgKaW5kZXgg
MDYzOTY1YTE2YTk0MTRjYzg0NzU3MmEyMWRiMjQxOGI0N2JlYTE4Zi4uMDM4MDRjYTNiMjBlZmUy
NTE3MjY4NzA4OTZiMDg0MTQ0OThkNWRiMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3
b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5oCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1By
b2Nlc3MvTmV0d29ya1Byb2Nlc3MuaApAQCAtMTc0LDcgKzE3NCw3IEBAIHB1YmxpYzoKIAogICAg
IHZvaWQgcHJvY2Vzc1dpbGxTdXNwZW5kSW1taW5lbnRseUZvclRlc3RpbmdTeW5jKENvbXBsZXRp
b25IYW5kbGVyPHZvaWQoKT4mJik7CiAgICAgdm9pZCBwcmVwYXJlVG9TdXNwZW5kKGJvb2wgaXNT
dXNwZW5zaW9uSW1taW5lbnQsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJik7Ci0gICAgdm9p
ZCBwcm9jZXNzRGlkUmVzdW1lKCk7CisgICAgdm9pZCBwcm9jZXNzRGlkUmVzdW1lKGJvb2wgZm9y
Rm9yZWdyb3VuZEFjdGl2aXR5KTsKIAogICAgIENhY2hlTW9kZWwgY2FjaGVNb2RlbCgpIGNvbnN0
IHsgcmV0dXJuIG1fY2FjaGVNb2RlbDsgfQogCkBAIC01MjQsNiArNTI0LDcgQEAgcHJpdmF0ZToK
ICAgICBib29sIG1fcHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRFbmFibGVkIHsgdHJ1ZSB9OwogICAg
IGJvb2wgbV9mdHBFbmFibGVkIHsgZmFsc2UgfTsKICAgICBib29sIG1faXNTdXNwZW5kZWQgeyBm
YWxzZSB9OworICAgIHN0ZDo6b3B0aW9uYWw8V2FsbFRpbWU+IG1fZW50ZXJCYWNrZ3JvdW5kVGlt
ZXN0YW1wOwogfTsKIAogI2lmICFQTEFURk9STShDT0NPQSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MubWVzc2FnZXMuaW4gYi9Tb3VyY2Uv
V2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLm1lc3NhZ2VzLmluCmluZGV4IDFj
ZjMyZWFkNjBiYjM0ZmEyMmVmNGRkMzllOTg1NjA4ZjdlNjZiMjQuLjliZGVkYTQ4OTc3MmYyNTcy
MWE1ZWJjNjVjOGQyZjRkZDFiNGVkNTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29y
a1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MubWVzc2FnZXMuaW4KKysrIGIvU291cmNlL1dlYktpdC9O
ZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5tZXNzYWdlcy5pbgpAQCAtNzUsNyArNzUsNyBA
QCBtZXNzYWdlcyAtPiBOZXR3b3JrUHJvY2VzcyBMZWdhY3lSZWNlaXZlciB7CiAKICAgICBQcm9j
ZXNzV2lsbFN1c3BlbmRJbW1pbmVudGx5Rm9yVGVzdGluZ1N5bmMoKSAtPiAoKSBTeW5jaHJvbm91
cwogICAgIFByZXBhcmVUb1N1c3BlbmQoYm9vbCBpc1N1c3BlbnNpb25JbW1pbmVudCkgLT4gKCkK
LSAgICBQcm9jZXNzRGlkUmVzdW1lKCkKKyAgICBQcm9jZXNzRGlkUmVzdW1lKGJvb2wgZm9yRm9y
ZWdyb3VuZEFjdGl2aXR5KQogCiAgICAgUHJlY29ubmVjdFRvKFBBTDo6U2Vzc2lvbklEIHNlc3Np
b25JRCwgV2ViS2l0OjpXZWJQYWdlUHJveHlJZGVudGlmaWVyIHdlYlBhZ2VQcm94eUlELCBXZWJD
b3JlOjpQYWdlSWRlbnRpZmllciB3ZWJQYWdlSUQsIFVSTCB1cmwsIFN0cmluZyB1c2VyQWdlbnQs
IGVudW06dWludDhfdCBXZWJDb3JlOjpTdG9yZWRDcmVkZW50aWFsc1BvbGljeSBzdG9yZWRDcmVk
ZW50aWFsc1BvbGljeSwgZW51bTpib29sIHN0ZDo6b3B0aW9uYWw8V2ViS2l0OjpOYXZpZ2F0aW5n
VG9BcHBCb3VuZERvbWFpbj4gaXNOYXZpZ2F0aW5nVG9BcHBCb3VuZERvbWFpbiwgZW51bTpib29s
IFdlYktpdDo6TGFzdE5hdmlnYXRpb25XYXNBcHBJbml0aWF0ZWQgbGFzdE5hdmlnYXRpb25XYXNB
cHBJbml0aWF0ZWQpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkv
Q29jb2EvV0tXZWJWaWV3VGVzdGluZy5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9D
b2NvYS9XS1dlYlZpZXdUZXN0aW5nLm1tCmluZGV4IGMwY2Y5NzhjOTY2MmVhODI3NjdjYTRjY2Fl
OTViNjRmZmNjNjk2NzkuLmE1MjQzNTRmZDQ1NWViYTU5Y2E5ZjE3NTlhYjI3ZjU1ZDYxMGUzNjAg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXdU
ZXN0aW5nLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZp
ZXdUZXN0aW5nLm1tCkBAIC0yMTMsNyArMjEzLDcgQEAKIC0gKHZvaWQpX3Byb2Nlc3NEaWRSZXN1
bWVGb3JUZXN0aW5nCiB7CiAgICAgaWYgKF9wYWdlKQotICAgICAgICBfcGFnZS0+cHJvY2Vzcygp
LnNlbmRQcm9jZXNzRGlkUmVzdW1lKCk7CisgICAgICAgIF9wYWdlLT5wcm9jZXNzKCkuc2VuZFBy
b2Nlc3NEaWRSZXN1bWUodHJ1ZSk7CiB9CiAKIC0gKHZvaWQpX3NldEFzc2VydGlvblR5cGVGb3JU
ZXN0aW5nOihpbnQpdmFsdWUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0dQ
VS9HUFVQcm9jZXNzUHJveHkuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvR1BVL0dQVVBy
b2Nlc3NQcm94eS5jcHAKaW5kZXggNGFmMjc2MDI3OTEzNTUyMWVjMTNhYjhjMzIxNzFkZmQzMWY4
Y2ZiNC4uM2Q4ZGI3Mjc2NDYxYjkwMjY1NzhkODcwMTEyYmI1NjMxOWQxZmE1YyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvR1BVL0dQVVByb2Nlc3NQcm94eS5jcHAKKysrIGIv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvR1BVL0dQVVByb2Nlc3NQcm94eS5jcHAKQEAgLTU3NSw3
ICs1NzUsNyBAQCB2b2lkIEdQVVByb2Nlc3NQcm94eTo6c2VuZFByZXBhcmVUb1N1c3BlbmQoSXNT
dXNwZW5zaW9uSW1taW5lbnQgaXNTdXNwZW5zaW9uSW1taQogICAgIHNlbmRXaXRoQXN5bmNSZXBs
eShNZXNzYWdlczo6R1BVUHJvY2Vzczo6UHJlcGFyZVRvU3VzcGVuZChpc1N1c3BlbnNpb25JbW1p
bmVudCA9PSBJc1N1c3BlbnNpb25JbW1pbmVudDo6WWVzKSwgV1RGTW92ZShjb21wbGV0aW9uSGFu
ZGxlciksIDAsIHsgfSwgU2hvdWxkU3RhcnRQcm9jZXNzVGhyb3R0bGVyQWN0aXZpdHk6Ok5vKTsK
IH0KIAotdm9pZCBHUFVQcm9jZXNzUHJveHk6OnNlbmRQcm9jZXNzRGlkUmVzdW1lKCkKK3ZvaWQg
R1BVUHJvY2Vzc1Byb3h5OjpzZW5kUHJvY2Vzc0RpZFJlc3VtZShib29sKQogewogICAgIGlmIChj
YW5TZW5kTWVzc2FnZSgpKQogICAgICAgICBzZW5kKE1lc3NhZ2VzOjpHUFVQcm9jZXNzOjpQcm9j
ZXNzRGlkUmVzdW1lKCksIDApOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
R1BVL0dQVVByb2Nlc3NQcm94eS5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvR1BVL0dQVVBy
b2Nlc3NQcm94eS5oCmluZGV4IDQ0M2U5YjdhNDY2YWZlNTFlODg0YjRmOTQzOGM0Y2M2NWQ3M2I4
ZGMuLjE3YWNhZTJkZjAyYWE3YzBmZjhhOGFiYTYwNTA3Y2QwNjBhZjM5OWIgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0dQVS9HUFVQcm9jZXNzUHJveHkuaAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9HUFUvR1BVUHJvY2Vzc1Byb3h5LmgKQEAgLTEyNyw3ICsxMjcs
NyBAQCBwcml2YXRlOgogICAgIC8vIFByb2Nlc3NUaHJvdHRsZXJDbGllbnQKICAgICBBU0NJSUxp
dGVyYWwgY2xpZW50TmFtZSgpIGNvbnN0IGZpbmFsIHsgcmV0dXJuICJHUFVQcm9jZXNzIl9zOyB9
CiAgICAgdm9pZCBzZW5kUHJlcGFyZVRvU3VzcGVuZChJc1N1c3BlbnNpb25JbW1pbmVudCwgQ29t
cGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmKSBmaW5hbDsKLSAgICB2b2lkIHNlbmRQcm9jZXNzRGlk
UmVzdW1lKCkgZmluYWw7CisgICAgdm9pZCBzZW5kUHJvY2Vzc0RpZFJlc3VtZShib29sKSBmaW5h
bDsKIAogICAgIC8vIFByb2Nlc3NMYXVuY2hlcjo6Q2xpZW50CiAgICAgdm9pZCBkaWRGaW5pc2hM
YXVuY2hpbmcoUHJvY2Vzc0xhdW5jaGVyKiwgSVBDOjpDb25uZWN0aW9uOjpJZGVudGlmaWVyKSBv
dmVycmlkZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL05ldHdvcmsvTmV0
d29ya1Byb2Nlc3NQcm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9OZXR3b3JrL05l
dHdvcmtQcm9jZXNzUHJveHkuY3BwCmluZGV4IGUxOWI4YjI0ZWY5Y2IyYWJlMWZhODcwNmVlN2Nl
YTEyNTFlYzMwMDYuLjkxMGRhMTM4ZGVkYjI4ZDdhNDNiNWFhNGNjZWY2MjJiNGE0Zjc5N2QgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nlc3NQ
cm94eS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvTmV0d29yay9OZXR3b3JrUHJv
Y2Vzc1Byb3h5LmNwcApAQCAtMTM5OSwxMCArMTM5OSwxMCBAQCB2b2lkIE5ldHdvcmtQcm9jZXNz
UHJveHk6OnNlbmRQcmVwYXJlVG9TdXNwZW5kKElzU3VzcGVuc2lvbkltbWluZW50IGlzU3VzcGVu
c2lvbgogICAgIHNlbmRXaXRoQXN5bmNSZXBseShNZXNzYWdlczo6TmV0d29ya1Byb2Nlc3M6OlBy
ZXBhcmVUb1N1c3BlbmQoaXNTdXNwZW5zaW9uSW1taW5lbnQgPT0gSXNTdXNwZW5zaW9uSW1taW5l
bnQ6OlllcyksIFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpLCAwLCB7IH0sIFNob3VsZFN0YXJ0
UHJvY2Vzc1Rocm90dGxlckFjdGl2aXR5OjpObyk7CiB9CiAKLXZvaWQgTmV0d29ya1Byb2Nlc3NQ
cm94eTo6c2VuZFByb2Nlc3NEaWRSZXN1bWUoKQordm9pZCBOZXR3b3JrUHJvY2Vzc1Byb3h5Ojpz
ZW5kUHJvY2Vzc0RpZFJlc3VtZShib29sIGZvckZvcmVncm91bmRBY3Rpdml0eSkKIHsKICAgICBp
ZiAoY2FuU2VuZE1lc3NhZ2UoKSkKLSAgICAgICAgc2VuZChNZXNzYWdlczo6TmV0d29ya1Byb2Nl
c3M6OlByb2Nlc3NEaWRSZXN1bWUoKSwgMCk7CisgICAgICAgIHNlbmQoTWVzc2FnZXM6Ok5ldHdv
cmtQcm9jZXNzOjpQcm9jZXNzRGlkUmVzdW1lKGZvckZvcmVncm91bmRBY3Rpdml0eSksIDApOwog
fQogCiB2b2lkIE5ldHdvcmtQcm9jZXNzUHJveHk6OmZsdXNoQ29va2llcyhQQUw6OlNlc3Npb25J
RCBzZXNzaW9uSUQsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJiBjb21wbGV0aW9uSGFuZGxl
cikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL05ldHdvcmsvTmV0d29ya1By
b2Nlc3NQcm94eS5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvTmV0d29yay9OZXR3b3JrUHJv
Y2Vzc1Byb3h5LmgKaW5kZXggMTA1ZDY2MTI5ZGQyY2NmNmE1NTFmZGZiYmM1MmQ2MjhhNGQwYWUy
Mi4uMzBjYzRiZjg4ZWUwZDIyM2Q1NjhmY2VlY2NlYTYzOTFiMzk0M2M4MyAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvTmV0d29yay9OZXR3b3JrUHJvY2Vzc1Byb3h5LmgKKysr
IGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvTmV0d29yay9OZXR3b3JrUHJvY2Vzc1Byb3h5LmgK
QEAgLTIzNiw3ICsyMzYsNyBAQCBwdWJsaWM6CiAgICAgdm9pZCBjcmVhdGVTeW1MaW5rRm9yRmls
ZVVwZ3JhZGUoY29uc3QgU3RyaW5nJiBpbmRleGVkRGF0YWJhc2VEaXJlY3RvcnkpOwogCiAgICAg
Ly8gUHJvY2Vzc1Rocm90dGxlckNsaWVudAotICAgIHZvaWQgc2VuZFByb2Nlc3NEaWRSZXN1bWUo
KSBmaW5hbDsKKyAgICB2b2lkIHNlbmRQcm9jZXNzRGlkUmVzdW1lKGJvb2wgZm9yRm9yZWdyb3Vu
ZEFjdGl2aXR5KSBmaW5hbDsKICAgICBBU0NJSUxpdGVyYWwgY2xpZW50TmFtZSgpIGNvbnN0IGZp
bmFsIHsgcmV0dXJuICJOZXR3b3JrUHJvY2VzcyJfczsgfQogICAgIAogICAgIHN0YXRpYyB2b2lk
IHNldFN1c3BlbnNpb25BbGxvd2VkRm9yVGVzdGluZyhib29sKTsKQEAgLTMwMSw2ICszMDEsMTEg
QEAgcHVibGljOgogCiAgICAgdm9pZCB0ZXJtaW5hdGVSZW1vdGVXb3JrZXJDb250ZXh0Q29ubmVj
dGlvbldoZW5Qb3NzaWJsZShSZW1vdGVXb3JrZXJUeXBlLCBQQUw6OlNlc3Npb25JRCwgY29uc3Qg
V2ViQ29yZTo6UmVnaXN0cmFibGVEb21haW4mLCBXZWJDb3JlOjpQcm9jZXNzSWRlbnRpZmllcik7
CiAKKyNpZiBQTEFURk9STShJT1NfRkFNSUxZKQorICAgIHZvaWQgYXBwbGljYXRpb25XaWxsRW50
ZXJGb3JlZ3JvdW5kKCk7CisgICAgdm9pZCBhcHBsaWNhdGlvbkRpZEVudGVyQmFja2dyb3VuZCgp
OworI2VuZGlmCisKIHByaXZhdGU6CiAgICAgZXhwbGljaXQgTmV0d29ya1Byb2Nlc3NQcm94eSgp
OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQ
cm9jZXNzUHJveHlDb2NvYS5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL05ldHdvcmsvTmV0
d29ya1Byb2Nlc3NQcm94eUNvY29hLm1tCmluZGV4IGI2NGI1MDIwNjFiNDg5YzM3OTU1YzI5NTA3
NTMyN2RiYjAxNjRlMmEuLmI2ZmI0MDAyNTlhZGI2MjNjNmMyNzYwZTVhOGQ5NjZlMDEwMGNmZWMg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nl
c3NQcm94eUNvY29hLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL05ldHdvcmsvTmV0
d29ya1Byb2Nlc3NQcm94eUNvY29hLm1tCkBAIC04NSw0ICs4NSwxOCBAQCBib29sIE5ldHdvcmtQ
cm9jZXNzUHJveHk6OnNlbmRYUENFbmRwb2ludFRvUHJvY2VzcyhBdXhpbGlhcnlQcm9jZXNzUHJv
eHkmIHByb2NlcwogICAgIHJldHVybiB0cnVlOwogfQogCisjaWYgUExBVEZPUk0oSU9TX0ZBTUlM
WSkKKwordm9pZCBOZXR3b3JrUHJvY2Vzc1Byb3h5OjphcHBsaWNhdGlvbldpbGxFbnRlckZvcmVn
cm91bmQoKQoreworICAgIHNlbmQoTWVzc2FnZXM6Ok5ldHdvcmtQcm9jZXNzOjpBcHBsaWNhdGlv
bldpbGxFbnRlckZvcmVncm91bmQoKSwgMCk7Cit9CisKK3ZvaWQgTmV0d29ya1Byb2Nlc3NQcm94
eTo6YXBwbGljYXRpb25EaWRFbnRlckJhY2tncm91bmQoKQoreworICAgIHNlbmQoTWVzc2FnZXM6
Ok5ldHdvcmtQcm9jZXNzOjpBcHBsaWNhdGlvbkRpZEVudGVyQmFja2dyb3VuZCgpLCAwKTsKK30K
KworI2VuZGlmCisKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1Byb2Nl
c3NUaHJvdHRsZXIuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvUHJvY2Vzc1Rocm90dGxl
ci5jcHAKaW5kZXggYjY5YjY0OTZmYWM4MDJhYjQzZWZiZjgyN2ZkZDMyYTliMGZkMTVhYi4uZDY2
OTZkOGMwODIyNmYyODQwMDFjMTA4Y2IzY2RhMzhjMjU5NmIzOCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvUHJvY2Vzc1Rocm90dGxlci5jcHAKKysrIGIvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvUHJvY2Vzc1Rocm90dGxlci5jcHAKQEAgLTE1OSw3ICsxNTksNyBAQCB2b2lk
IFByb2Nlc3NUaHJvdHRsZXI6OnVwZGF0ZUFzc2VydGlvbklmTmVlZGVkKCkKICAgICAgICAgICAg
ICAgICBQUk9DRVNTVEhST1RUTEVSX1JFTEVBU0VfTE9HKCJ1cGRhdGVBc3NlcnRpb25JZk5lZWRl
ZDogc2VuZGluZyBQcm9jZXNzRGlkUmVzdW1lIElQQyBiZWNhdXNlIHRoZSBwcm9jZXNzIHdhcyBz
dXNwZW5kZWQiKTsKICAgICAgICAgICAgIGVsc2UKICAgICAgICAgICAgICAgICBQUk9DRVNTVEhS
T1RUTEVSX1JFTEVBU0VfTE9HKCJ1cGRhdGVBc3NlcnRpb25JZk5lZWRlZDogc2VuZGluZyBQcm9j
ZXNzRGlkUmVzdW1lIElQQyBiZWNhdXNlIHRoZSBXZWJQcm9jZXNzIGlzIHN0aWxsIHByb2Nlc3Np
bmcgcmVxdWVzdCB0byBzdXNwZW5kPSUiIFBSSXU2NCwgKm1fcGVuZGluZ1JlcXVlc3RUb1N1c3Bl
bmRJRCk7Ci0gICAgICAgICAgICBtX3Byb2Nlc3Muc2VuZFByb2Nlc3NEaWRSZXN1bWUoKTsKKyAg
ICAgICAgICAgIG1fcHJvY2Vzcy5zZW5kUHJvY2Vzc0RpZFJlc3VtZShleHBlY3RlZEFzc2VydGlv
blR5cGUoKSA9PSBQcm9jZXNzQXNzZXJ0aW9uVHlwZTo6Rm9yZWdyb3VuZCk7CiAgICAgICAgICAg
ICBjbGVhclBlbmRpbmdSZXF1ZXN0VG9TdXNwZW5kKCk7CiAgICAgICAgIH0KICAgICB9IGVsc2Ug
ewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvUHJvY2Vzc1Rocm90dGxlckNs
aWVudC5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvUHJvY2Vzc1Rocm90dGxlckNsaWVudC5o
CmluZGV4IDExOGJmMGRkMjM1ODIyNGMyZWM3ZGY5Yjk2NTFlOWYxMzc4ZTZlMDAuLjA0ZDMxYTAx
OTg0M2MyNDI4NDM3YTFhZWMzYzEzN2JkMTNhOTE2NTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL1Byb2Nlc3NUaHJvdHRsZXJDbGllbnQuaAorKysgYi9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9Qcm9jZXNzVGhyb3R0bGVyQ2xpZW50LmgKQEAgLTM3LDcgKzM3LDcgQEAgcHVi
bGljOgogICAgIHZpcnR1YWwgflByb2Nlc3NUaHJvdHRsZXJDbGllbnQoKSB7IH0KIAogICAgIHZp
cnR1YWwgdm9pZCBzZW5kUHJlcGFyZVRvU3VzcGVuZChJc1N1c3BlbnNpb25JbW1pbmVudCwgQ29t
cGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmKSA9IDA7Ci0gICAgdmlydHVhbCB2b2lkIHNlbmRQcm9j
ZXNzRGlkUmVzdW1lKCkgPSAwOworICAgIHZpcnR1YWwgdm9pZCBzZW5kUHJvY2Vzc0RpZFJlc3Vt
ZShib29sIGZvckZvcmVncm91bmRBY3Rpdml0eSkgPSAwOwogICAgIHZpcnR1YWwgdm9pZCBkaWRT
ZXRBc3NlcnRpb25UeXBlKFByb2Nlc3NBc3NlcnRpb25UeXBlKSB7IH07CiAgICAgdmlydHVhbCBB
U0NJSUxpdGVyYWwgY2xpZW50TmFtZSgpIGNvbnN0ID0gMDsKIH07CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJBdXRoZW50aWNhdGlvbi9XZWJBdXRoblByb2Nlc3NQcm94
eS5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViQXV0aGVudGljYXRpb24vV2ViQXV0aG5Q
cm9jZXNzUHJveHkuaAppbmRleCBjNWIxNjcxYjFhYTA2MzRkMTMyYjlhNmVmODlhZTgzZWNmYjAz
YjNlLi4wYjYwNTE3OGIzNjBkYjY1YWViNTUzNDFkYzJhMTg0ZWQ3MjA3NzE3IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJBdXRoZW50aWNhdGlvbi9XZWJBdXRoblByb2Nl
c3NQcm94eS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYkF1dGhlbnRpY2F0aW9u
L1dlYkF1dGhuUHJvY2Vzc1Byb3h5LmgKQEAgLTU1LDcgKzU1LDcgQEAgcHVibGljOgogICAgIHZv
aWQgdXBkYXRlUHJvY2Vzc0Fzc2VydGlvbigpOwogCiAgICAgLy8gUHJvY2Vzc1Rocm90dGxlckNs
aWVudAotICAgIHZvaWQgc2VuZFByb2Nlc3NEaWRSZXN1bWUoKSBmaW5hbCB7IH0KKyAgICB2b2lk
IHNlbmRQcm9jZXNzRGlkUmVzdW1lKGJvb2wpIGZpbmFsIHsgfQogICAgIEFTQ0lJTGl0ZXJhbCBj
bGllbnROYW1lKCkgY29uc3QgZmluYWwgeyByZXR1cm4gIldlYkF1dGhuUHJvY2VzcyJfczsgfQog
CiBwcml2YXRlOgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vz
c1Byb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5jcHAK
aW5kZXggMmYxZTY5MzZiZTYxNDU4MTJkNDc3ZmFiYTdkYzJhODAzNzg0ZTdhZi4uYzI0NTQ4ZTI4
ZWNmODliNWMyYWM2MzgxMGIwY2Q4YWNhNDNiMjRmOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9XZWJQcm9jZXNzUHJveHkuY3BwCkBAIC0xNDM1LDcgKzE0MzUsNyBAQCB2b2lkIFdlYlBy
b2Nlc3NQcm94eTo6c2VuZFByZXBhcmVUb1N1c3BlbmQoSXNTdXNwZW5zaW9uSW1taW5lbnQgaXNT
dXNwZW5zaW9uSW1taQogICAgIHNlbmRXaXRoQXN5bmNSZXBseShNZXNzYWdlczo6V2ViUHJvY2Vz
czo6UHJlcGFyZVRvU3VzcGVuZChpc1N1c3BlbnNpb25JbW1pbmVudCA9PSBJc1N1c3BlbnNpb25J
bW1pbmVudDo6WWVzKSwgV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlciksIDAsIHsgfSwgU2hvdWxk
U3RhcnRQcm9jZXNzVGhyb3R0bGVyQWN0aXZpdHk6Ok5vKTsKIH0KIAotdm9pZCBXZWJQcm9jZXNz
UHJveHk6OnNlbmRQcm9jZXNzRGlkUmVzdW1lKCkKK3ZvaWQgV2ViUHJvY2Vzc1Byb3h5OjpzZW5k
UHJvY2Vzc0RpZFJlc3VtZShib29sKQogewogICAgIFdFQlBST0NFU1NQUk9YWV9SRUxFQVNFX0xP
RyhQcm9jZXNzU3VzcGVuc2lvbiwgInNlbmRQcm9jZXNzRGlkUmVzdW1lOiIpOwogICAgIGlmIChj
YW5TZW5kTWVzc2FnZSgpKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2Vi
UHJvY2Vzc1Byb3h5LmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHku
aAppbmRleCBiZmM3OTU2YzAyZWU1YWNlMmQ1NTczNDNjNTA3NTM3YTg1Y2ZkNGZjLi4wMmMxYzhi
M2NjZDczNWI3MDJmMThjNmU1NzUxYmE5ODM1M2NlZTE4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9XZWJQcm9jZXNzUHJveHkuaApAQCAtMzI3LDcgKzMyNyw3IEBAIHB1YmxpYzoKIAogICAg
IC8vIFByb2Nlc3NUaHJvdHRsZXJDbGllbnQKICAgICB2b2lkIHNlbmRQcmVwYXJlVG9TdXNwZW5k
KElzU3VzcGVuc2lvbkltbWluZW50LCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYpIGZpbmFs
OwotICAgIHZvaWQgc2VuZFByb2Nlc3NEaWRSZXN1bWUoKSBmaW5hbDsKKyAgICB2b2lkIHNlbmRQ
cm9jZXNzRGlkUmVzdW1lKGJvb2wpIGZpbmFsOwogICAgIHZvaWQgZGlkU2V0QXNzZXJ0aW9uVHlw
ZShQcm9jZXNzQXNzZXJ0aW9uVHlwZSkgZmluYWw7CiAgICAgQVNDSUlMaXRlcmFsIGNsaWVudE5h
bWUoKSBjb25zdCBmaW5hbCB7IHJldHVybiAiV2ViUHJvY2VzcyJfczsgfQogCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJzaXRlRGF0YS9XZWJzaXRlRGF0YVN0b3JlLmNw
cCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYnNpdGVEYXRhL1dlYnNpdGVEYXRhU3RvcmUu
Y3BwCmluZGV4IDUwYzkzNTJiNjY5YzU4NjljNzc0OGMzOTliYTIxYzhiN2Q1OTBhMTMuLjFjYjkz
MmZjMzc3YTc3Y2Q4MWJjMmY1OWY2M2I3MGI1MGVhYzQyNDYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL1dlYnNpdGVEYXRhL1dlYnNpdGVEYXRhU3RvcmUuY3BwCisrKyBiL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYnNpdGVEYXRhL1dlYnNpdGVEYXRhU3RvcmUuY3BwCkBA
IC0xNTc1LDcgKzE1NzUsNyBAQCB2b2lkIFdlYnNpdGVEYXRhU3RvcmU6OnNlbmROZXR3b3JrUHJv
Y2Vzc1dpbGxTdXNwZW5kSW1taW5lbnRseUZvclRlc3RpbmcoKQogCiB2b2lkIFdlYnNpdGVEYXRh
U3RvcmU6OnNlbmROZXR3b3JrUHJvY2Vzc0RpZFJlc3VtZSgpCiB7Ci0gICAgbmV0d29ya1Byb2Nl
c3MoKS5zZW5kUHJvY2Vzc0RpZFJlc3VtZSgpOworICAgIG5ldHdvcmtQcm9jZXNzKCkuc2VuZFBy
b2Nlc3NEaWRSZXN1bWUodHJ1ZSk7CiB9CiAKIGJvb2wgV2Vic2l0ZURhdGFTdG9yZTo6cmVzb3Vy
Y2VMb2FkU3RhdGlzdGljc0VuYWJsZWQoKSBjb25zdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvaW9zL1Byb2Nlc3NBc3NlcnRpb25JT1MubW0gYi9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9pb3MvUHJvY2Vzc0Fzc2VydGlvbklPUy5tbQppbmRleCBmZDg3ODliODY4ZDIxMTRi
NmI3MDM5YTYzMGY3ZjFkYmY4MGQxNWI5Li5mYWI1OWU2YjQ4YmM3YzA3ZGRhMmE2NzI4Y2IwNmY2
YzYzMGFmOGZlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvUHJvY2Vz
c0Fzc2VydGlvbklPUy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvUHJvY2Vz
c0Fzc2VydGlvbklPUy5tbQpAQCAtMzEsNiArMzEsNyBAQAogI2ltcG9ydCAiTG9nZ2luZy5oIgog
I2ltcG9ydCAiUnVubmluZ0JvYXJkU2VydmljZXNTUEkuaCIKICNpbXBvcnQgIldlYlByb2Nlc3NQ
b29sLmgiCisjaW1wb3J0ICJXZWJzaXRlRGF0YVN0b3JlLmgiCiAjaW1wb3J0IDxVSUtpdC9VSUFw
cGxpY2F0aW9uLmg+CiAjaW1wb3J0IDx3dGYvSGFzaE1hcC5oPgogI2ltcG9ydCA8d3RmL1J1bkxv
b3AuaD4KQEAgLTkyLDExICs5MywyMSBAQCBzdGF0aWMgYm9vbCBwcm9jZXNzSGFzQWN0aXZlUnVu
VGltZUxpbWl0YXRpb24oKQogICAgIFtbTlNOb3RpZmljYXRpb25DZW50ZXIgZGVmYXVsdENlbnRl
cl0gYWRkT2JzZXJ2ZXJGb3JOYW1lOlVJQXBwbGljYXRpb25XaWxsRW50ZXJGb3JlZ3JvdW5kTm90
aWZpY2F0aW9uIG9iamVjdDpbVUlBcHBsaWNhdGlvbiBzaGFyZWRBcHBsaWNhdGlvbl0gcXVldWU6
bmlsIHVzaW5nQmxvY2s6XihOU05vdGlmaWNhdGlvbiAqKSB7CiAgICAgICAgIFtzZWxmIF9jYW5j
ZWxQZW5kaW5nUmVsZWFzZVRhc2tdOwogICAgICAgICBbc2VsZiBfdXBkYXRlQmFja2dyb3VuZFRh
c2tdOworCisgICAgICAgIFdlYnNpdGVEYXRhU3RvcmU6OmZvckVhY2hXZWJzaXRlRGF0YVN0b3Jl
KF0gKFdlYnNpdGVEYXRhU3RvcmUmIGRhdGFTdG9yZSkgeworICAgICAgICAgICAgaWYgKGF1dG8q
IG5ldHdvcmtQcm9jZXNzID0gZGF0YVN0b3JlLm5ldHdvcmtQcm9jZXNzSWZFeGlzdHMoKSkKKyAg
ICAgICAgICAgICAgICBuZXR3b3JrUHJvY2Vzcy0+YXBwbGljYXRpb25XaWxsRW50ZXJGb3JlZ3Jv
dW5kKCk7CisgICAgICAgIH0pOwogICAgIH1dOwogCiAgICAgW1tOU05vdGlmaWNhdGlvbkNlbnRl
ciBkZWZhdWx0Q2VudGVyXSBhZGRPYnNlcnZlckZvck5hbWU6VUlBcHBsaWNhdGlvbkRpZEVudGVy
QmFja2dyb3VuZE5vdGlmaWNhdGlvbiBvYmplY3Q6W1VJQXBwbGljYXRpb24gc2hhcmVkQXBwbGlj
YXRpb25dIHF1ZXVlOm5pbCB1c2luZ0Jsb2NrOl4oTlNOb3RpZmljYXRpb24gKikgewogICAgICAg
ICBpZiAoIVtzZWxmIF9oYXNCYWNrZ3JvdW5kVGFza10pCiAgICAgICAgICAgICBXZWJLaXQ6Oldl
YlByb2Nlc3NQb29sOjpub3RpZnlQcm9jZXNzUG9vbHNBcHBsaWNhdGlvbklzQWJvdXRUb1N1c3Bl
bmQoKTsKKworICAgICAgICBXZWJzaXRlRGF0YVN0b3JlOjpmb3JFYWNoV2Vic2l0ZURhdGFTdG9y
ZShdIChXZWJzaXRlRGF0YVN0b3JlJiBkYXRhU3RvcmUpIHsKKyAgICAgICAgICAgIGlmIChhdXRv
KiBuZXR3b3JrUHJvY2VzcyA9IGRhdGFTdG9yZS5uZXR3b3JrUHJvY2Vzc0lmRXhpc3RzKCkpCisg
ICAgICAgICAgICAgICAgbmV0d29ya1Byb2Nlc3MtPmFwcGxpY2F0aW9uRGlkRW50ZXJCYWNrZ3Jv
dW5kKCk7CisgICAgICAgIH0pOwogICAgIH1dOwogCiAgICAgcmV0dXJuIHNlbGY7Cg==
</data>
<flag name="commit-queue"
          id="482994"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>455118</attachid>
            <date>2022-03-18 11:46:30 -0700</date>
            <delta_ts>2022-03-18 12:07:26 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-238082-20220318114629.patch</filename>
            <type>text/plain</type>
            <size>18253</size>
            <attacher name="Sihui Liu">sihui_liu</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjkxNDQ2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDA3OTdjODQyNDJlODI1ZDhi
MGE1NTVmMmIzOTllNTk0NDVkNGUyNWYuLmFjODAxNmU1MDJiNmVkYWJkYmE4NTM1NjQ4YTkzYjcx
YWRiMzcyYzQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNDYgQEAKKzIwMjItMDMtMTggIFNpaHVpIExp
dSAgPHNpaHVpX2xpdUBhcHBsZS5jb20+CisKKyAgICAgICAgQWRkIGxvZ2dpbmcgYWJvdXQgcHJv
Y2VzcyBlbnRlcmluZyBiYWNrZ3JvdW5kIHRvIE5ldHdvcmtQcm9jZXNzOjpwcm9jZXNzRGlkUmVz
dW1lCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzgw
ODIKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBJbiBy
ZGFyOi8vODI0MTI3MzMsIHdlIGZvdW5kIG5ldHdvcmsgcHJvY2VzcyBjYW4gYmUgc3VzcGVuZGVk
IHJpZ2h0IGFmdGVyIGl0IHJlY2VpdmVzIHByb2Nlc3NEaWRSZXN1bWUgbWVzc2FnZS4gCisgICAg
ICAgIEZvciBuZXR3b3JrIHBvcmNlc3MsIHByb2Nlc3NEaWRSZXN1bWUgbWVhbnMgcHJvY2VzcyBp
cyBub3Qgc3VzcGVuZGVkIGFuZCBpdCBpcyBzYWZlIHRvIHBlcmZvcm0gZGF0YWJhc2UgCisgICAg
ICAgIG9wZXJhdGlvbnMuIExldCdzIGFkZCBsb2dnaW5nIHRvIGNoZWNrIHdoZW4gYW5kIHdoeSBw
cm9jZXNzRGlkUmVzdW1lIG1lc3NhZ2UgaXMgc2VudC4gSWYgdGhlIGxvZ2dpbmcgY29uZmlybXMK
KyAgICAgICAgdGhhdCBwcm9jZXNzRGlkUmVzdW1lIG1lc3NhZ2UgY2FuIGJlIHJlY2VpdmVkIHdo
ZW4gcHJvY2VzcyBpcyBjbG9zZSB0byBhc3NlcnRpb24gdGltZW91dCwgd2UgcHJvYmFibHkgd2Fu
dCB0byAKKyAgICAgICAgaWdub3JlIHN1Y2ggbWVzc2FnZSBhbmQgcmVzdW1lIGRhdGFiYXNlIG9w
ZXJhdGlvbnMgd2hlbiBhcHBsaWNhdGlvbiBlbnRlcnMgZm9yZWdyb3VuZC4KKworICAgICAgICAq
IE5ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLmNwcDoKKyAgICAgICAgKFdlYktpdDo6TmV0
d29ya1Byb2Nlc3M6OnByZXBhcmVUb1N1c3BlbmQpOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3Jr
UHJvY2Vzczo6YXBwbGljYXRpb25EaWRFbnRlckJhY2tncm91bmQpOgorICAgICAgICAoV2ViS2l0
OjpOZXR3b3JrUHJvY2Vzczo6YXBwbGljYXRpb25XaWxsRW50ZXJGb3JlZ3JvdW5kKToKKyAgICAg
ICAgKFdlYktpdDo6TmV0d29ya1Byb2Nlc3M6OnByb2Nlc3NEaWRSZXN1bWUpOgorICAgICAgICAq
IE5ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLmg6CisgICAgICAgICogTmV0d29ya1Byb2Nl
c3MvTmV0d29ya1Byb2Nlc3MubWVzc2FnZXMuaW46CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9D
b2NvYS9XS1dlYlZpZXdUZXN0aW5nLm1tOgorICAgICAgICAoLVtXS1dlYlZpZXcgX3Byb2Nlc3NE
aWRSZXN1bWVGb3JUZXN0aW5nXSk6CisgICAgICAgICogVUlQcm9jZXNzL0dQVS9HUFVQcm9jZXNz
UHJveHkuY3BwOgorICAgICAgICAoV2ViS2l0OjpHUFVQcm9jZXNzUHJveHk6OnNlbmRQcm9jZXNz
RGlkUmVzdW1lKToKKyAgICAgICAgKiBVSVByb2Nlc3MvR1BVL0dQVVByb2Nlc3NQcm94eS5oOgor
ICAgICAgICAqIFVJUHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9jZXNzUHJveHkuY3BwOgorICAg
ICAgICAoV2ViS2l0OjpOZXR3b3JrUHJvY2Vzc1Byb3h5OjpzZW5kUHJvY2Vzc0RpZFJlc3VtZSk6
CisgICAgICAgICogVUlQcm9jZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nlc3NQcm94eS5oOgorICAg
ICAgICAqIFVJUHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9jZXNzUHJveHlDb2NvYS5tbToKKyAg
ICAgICAgKFdlYktpdDo6TmV0d29ya1Byb2Nlc3M6OmFwcGxpY2F0aW9uV2lsbEVudGVyRm9yZWdy
b3VuZCk6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtQcm9jZXNzOjphcHBsaWNhdGlvbkRpZEVu
dGVyQmFja2dyb3VuZCk6CisgICAgICAgICogVUlQcm9jZXNzL1Byb2Nlc3NUaHJvdHRsZXIuY3Bw
OgorICAgICAgICAoV2ViS2l0OjpQcm9jZXNzVGhyb3R0bGVyOjp1cGRhdGVBc3NlcnRpb25JZk5l
ZWRlZCk6CisgICAgICAgICogVUlQcm9jZXNzL1Byb2Nlc3NUaHJvdHRsZXJDbGllbnQuaDoKKyAg
ICAgICAgKiBVSVByb2Nlc3MvV2ViQXV0aGVudGljYXRpb24vV2ViQXV0aG5Qcm9jZXNzUHJveHku
aDoKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5LmNwcDoKKyAgICAgICAgKFdl
YktpdDo6V2ViUHJvY2Vzc1Byb3h5OjpzZW5kUHJvY2Vzc0RpZFJlc3VtZSk6CisgICAgICAgICog
VUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJzaXRl
RGF0YS9XZWJzaXRlRGF0YVN0b3JlLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2Vic2l0ZURhdGFT
dG9yZTo6c2VuZE5ldHdvcmtQcm9jZXNzRGlkUmVzdW1lKToKKyAgICAgICAgKiBVSVByb2Nlc3Mv
aW9zL1Byb2Nlc3NBc3NlcnRpb25JT1MubW06CisgICAgICAgICgtW1dLUHJvY2Vzc0Fzc2VydGlv
bkJhY2tncm91bmRUYXNrTWFuYWdlciBpbml0XSk6CisKIDIwMjItMDMtMTcgIEFkaXR5YSBLZWVy
dGhpICA8YWtlZXJ0aGlAYXBwbGUuY29tPgogCiAgICAgICAgIFtpT1NdIFN1cHBvcnQgUERGIHNl
YXJjaCB3aGVuIHVzaW5nIGEgZmluZCBpbnRlcmFjdGlvbgpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5jcHAgYi9Tb3VyY2UvV2ViS2l0L05l
dHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLmNwcAppbmRleCBjNzQ0MDZhNTU4YWY0ZTY4NGZh
NDA0N2M2MDgzNDg1YTFlNTYxMjY4Li5kZTQyYTE5ZDllMjAzZDJmMTVjNTkwYzhhM2Q5NjliZDg5
OTQwODBhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtQ
cm9jZXNzLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9j
ZXNzLmNwcApAQCAtMjExNCw3ICsyMTE0LDcgQEAgdm9pZCBOZXR3b3JrUHJvY2Vzczo6dGVybWlu
YXRlUmVtb3RlV29ya2VyQ29udGV4dENvbm5lY3Rpb25XaGVuUG9zc2libGUoUmVtb3RlV28KIAog
dm9pZCBOZXR3b3JrUHJvY2Vzczo6cHJlcGFyZVRvU3VzcGVuZChib29sIGlzU3VzcGVuc2lvbklt
bWluZW50LCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYgY29tcGxldGlvbkhhbmRsZXIpCiB7
Ci0gICAgUkVMRUFTRV9MT0coUHJvY2Vzc1N1c3BlbnNpb24sICIlcCAtIE5ldHdvcmtQcm9jZXNz
OjpwcmVwYXJlVG9TdXNwZW5kKCksIGlzU3VzcGVuc2lvbkltbWluZW50PSVkIiwgdGhpcywgaXNT
dXNwZW5zaW9uSW1taW5lbnQpOworICAgIFJFTEVBU0VfTE9HKFByb2Nlc3NTdXNwZW5zaW9uLCAi
JXAgLSBOZXR3b3JrUHJvY2Vzczo6cHJlcGFyZVRvU3VzcGVuZCgpLCBpc1N1c3BlbnNpb25JbW1p
bmVudD0lZCBQcm9jZXNzIGlzICVzIGluIGJhY2tncm91bmQiLCB0aGlzLCBpc1N1c3BlbnNpb25J
bW1pbmVudCwgbV9lbnRlckJhY2tncm91bmRUaW1lc3RhbXAgPyAiIiA6ICJub3QiKTsKIAogICAg
IG1faXNTdXNwZW5kZWQgPSB0cnVlOwogICAgIGxvd01lbW9yeUhhbmRsZXIoQ3JpdGljYWw6Olll
cyk7CkBAIC0yMTQ1LDE3ICsyMTQ1LDI5IEBAIHZvaWQgTmV0d29ya1Byb2Nlc3M6OnByZXBhcmVU
b1N1c3BlbmQoYm9vbCBpc1N1c3BlbnNpb25JbW1pbmVudCwgQ29tcGxldGlvbkhhbmRsCiAKIHZv
aWQgTmV0d29ya1Byb2Nlc3M6OmFwcGxpY2F0aW9uRGlkRW50ZXJCYWNrZ3JvdW5kKCkKIHsKKyAg
ICBpZiAobV9lbnRlckJhY2tncm91bmRUaW1lc3RhbXApCisgICAgICAgIHJldHVybjsKKworICAg
IG1fZW50ZXJCYWNrZ3JvdW5kVGltZXN0YW1wID0gV2FsbFRpbWU6Om5vdygpOwogICAgIG1fZG93
bmxvYWRNYW5hZ2VyLmFwcGxpY2F0aW9uRGlkRW50ZXJCYWNrZ3JvdW5kKCk7CiB9CiAKIHZvaWQg
TmV0d29ya1Byb2Nlc3M6OmFwcGxpY2F0aW9uV2lsbEVudGVyRm9yZWdyb3VuZCgpCiB7CisgICAg
aWYgKCFtX2VudGVyQmFja2dyb3VuZFRpbWVzdGFtcCkKKyAgICAgICAgcmV0dXJuOworCisgICAg
bV9lbnRlckJhY2tncm91bmRUaW1lc3RhbXAgPSBzdGQ6Om51bGxvcHQ7CiAgICAgbV9kb3dubG9h
ZE1hbmFnZXIuYXBwbGljYXRpb25XaWxsRW50ZXJGb3JlZ3JvdW5kKCk7CiB9CiAKLXZvaWQgTmV0
d29ya1Byb2Nlc3M6OnByb2Nlc3NEaWRSZXN1bWUoKQordm9pZCBOZXR3b3JrUHJvY2Vzczo6cHJv
Y2Vzc0RpZFJlc3VtZShib29sIGZvckZvcmVncm91bmRBY3Rpdml0eSkKIHsKLSAgICBSRUxFQVNF
X0xPRyhQcm9jZXNzU3VzcGVuc2lvbiwgIiVwIC0gTmV0d29ya1Byb2Nlc3M6OnByb2Nlc3NEaWRS
ZXN1bWUoKSIsIHRoaXMpOworICAgIFJFTEVBU0VfTE9HKFByb2Nlc3NTdXNwZW5zaW9uLCAiJXAg
LSBOZXR3b3JrUHJvY2Vzczo6cHJvY2Vzc0RpZFJlc3VtZSgpIGZvckZvcmVncm91bmRBY3Rpdml0
eT0lZCIsIHRoaXMsIGZvckZvcmVncm91bmRBY3Rpdml0eSk7CisgICAgaWYgKG1fZW50ZXJCYWNr
Z3JvdW5kVGltZXN0YW1wKSB7CisgICAgICAgIGF1dG8gaW50ZXJ2YWwgPSBXYWxsVGltZTo6bm93
KCkgLSBtX2VudGVyQmFja2dyb3VuZFRpbWVzdGFtcC52YWx1ZSgpOworICAgICAgICBSRUxFQVNF
X0xPR19FUlJPUihQcm9jZXNzU3VzcGVuc2lvbiwgIiVwIC0gTmV0d29ya1Byb2Nlc3M6OnByb2Nl
c3NEaWRSZXN1bWUoKSBQcm9jZXNzIGlzIGluIGJhY2tncm91bmQgZm9yICVmIG1zIiwgdGhpcywg
aW50ZXJ2YWwudmFsdWUoKSk7CisgICAgfQogCiAgICAgbV9pc1N1c3BlbmRlZCA9IGZhbHNlOwog
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNz
LmggYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLmgKaW5kZXgg
MDYzOTY1YTE2YTk0MTRjYzg0NzU3MmEyMWRiMjQxOGI0N2JlYTE4Zi4uMDM4MDRjYTNiMjBlZmUy
NTE3MjY4NzA4OTZiMDg0MTQ0OThkNWRiMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3
b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5oCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1By
b2Nlc3MvTmV0d29ya1Byb2Nlc3MuaApAQCAtMTc0LDcgKzE3NCw3IEBAIHB1YmxpYzoKIAogICAg
IHZvaWQgcHJvY2Vzc1dpbGxTdXNwZW5kSW1taW5lbnRseUZvclRlc3RpbmdTeW5jKENvbXBsZXRp
b25IYW5kbGVyPHZvaWQoKT4mJik7CiAgICAgdm9pZCBwcmVwYXJlVG9TdXNwZW5kKGJvb2wgaXNT
dXNwZW5zaW9uSW1taW5lbnQsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJik7Ci0gICAgdm9p
ZCBwcm9jZXNzRGlkUmVzdW1lKCk7CisgICAgdm9pZCBwcm9jZXNzRGlkUmVzdW1lKGJvb2wgZm9y
Rm9yZWdyb3VuZEFjdGl2aXR5KTsKIAogICAgIENhY2hlTW9kZWwgY2FjaGVNb2RlbCgpIGNvbnN0
IHsgcmV0dXJuIG1fY2FjaGVNb2RlbDsgfQogCkBAIC01MjQsNiArNTI0LDcgQEAgcHJpdmF0ZToK
ICAgICBib29sIG1fcHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRFbmFibGVkIHsgdHJ1ZSB9OwogICAg
IGJvb2wgbV9mdHBFbmFibGVkIHsgZmFsc2UgfTsKICAgICBib29sIG1faXNTdXNwZW5kZWQgeyBm
YWxzZSB9OworICAgIHN0ZDo6b3B0aW9uYWw8V2FsbFRpbWU+IG1fZW50ZXJCYWNrZ3JvdW5kVGlt
ZXN0YW1wOwogfTsKIAogI2lmICFQTEFURk9STShDT0NPQSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MubWVzc2FnZXMuaW4gYi9Tb3VyY2Uv
V2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLm1lc3NhZ2VzLmluCmluZGV4IDFj
ZjMyZWFkNjBiYjM0ZmEyMmVmNGRkMzllOTg1NjA4ZjdlNjZiMjQuLjliZGVkYTQ4OTc3MmYyNTcy
MWE1ZWJjNjVjOGQyZjRkZDFiNGVkNTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29y
a1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MubWVzc2FnZXMuaW4KKysrIGIvU291cmNlL1dlYktpdC9O
ZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5tZXNzYWdlcy5pbgpAQCAtNzUsNyArNzUsNyBA
QCBtZXNzYWdlcyAtPiBOZXR3b3JrUHJvY2VzcyBMZWdhY3lSZWNlaXZlciB7CiAKICAgICBQcm9j
ZXNzV2lsbFN1c3BlbmRJbW1pbmVudGx5Rm9yVGVzdGluZ1N5bmMoKSAtPiAoKSBTeW5jaHJvbm91
cwogICAgIFByZXBhcmVUb1N1c3BlbmQoYm9vbCBpc1N1c3BlbnNpb25JbW1pbmVudCkgLT4gKCkK
LSAgICBQcm9jZXNzRGlkUmVzdW1lKCkKKyAgICBQcm9jZXNzRGlkUmVzdW1lKGJvb2wgZm9yRm9y
ZWdyb3VuZEFjdGl2aXR5KQogCiAgICAgUHJlY29ubmVjdFRvKFBBTDo6U2Vzc2lvbklEIHNlc3Np
b25JRCwgV2ViS2l0OjpXZWJQYWdlUHJveHlJZGVudGlmaWVyIHdlYlBhZ2VQcm94eUlELCBXZWJD
b3JlOjpQYWdlSWRlbnRpZmllciB3ZWJQYWdlSUQsIFVSTCB1cmwsIFN0cmluZyB1c2VyQWdlbnQs
IGVudW06dWludDhfdCBXZWJDb3JlOjpTdG9yZWRDcmVkZW50aWFsc1BvbGljeSBzdG9yZWRDcmVk
ZW50aWFsc1BvbGljeSwgZW51bTpib29sIHN0ZDo6b3B0aW9uYWw8V2ViS2l0OjpOYXZpZ2F0aW5n
VG9BcHBCb3VuZERvbWFpbj4gaXNOYXZpZ2F0aW5nVG9BcHBCb3VuZERvbWFpbiwgZW51bTpib29s
IFdlYktpdDo6TGFzdE5hdmlnYXRpb25XYXNBcHBJbml0aWF0ZWQgbGFzdE5hdmlnYXRpb25XYXNB
cHBJbml0aWF0ZWQpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkv
Q29jb2EvV0tXZWJWaWV3VGVzdGluZy5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9D
b2NvYS9XS1dlYlZpZXdUZXN0aW5nLm1tCmluZGV4IGMwY2Y5NzhjOTY2MmVhODI3NjdjYTRjY2Fl
OTViNjRmZmNjNjk2NzkuLmE1MjQzNTRmZDQ1NWViYTU5Y2E5ZjE3NTlhYjI3ZjU1ZDYxMGUzNjAg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXdU
ZXN0aW5nLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZp
ZXdUZXN0aW5nLm1tCkBAIC0yMTMsNyArMjEzLDcgQEAKIC0gKHZvaWQpX3Byb2Nlc3NEaWRSZXN1
bWVGb3JUZXN0aW5nCiB7CiAgICAgaWYgKF9wYWdlKQotICAgICAgICBfcGFnZS0+cHJvY2Vzcygp
LnNlbmRQcm9jZXNzRGlkUmVzdW1lKCk7CisgICAgICAgIF9wYWdlLT5wcm9jZXNzKCkuc2VuZFBy
b2Nlc3NEaWRSZXN1bWUodHJ1ZSk7CiB9CiAKIC0gKHZvaWQpX3NldEFzc2VydGlvblR5cGVGb3JU
ZXN0aW5nOihpbnQpdmFsdWUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0dQ
VS9HUFVQcm9jZXNzUHJveHkuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvR1BVL0dQVVBy
b2Nlc3NQcm94eS5jcHAKaW5kZXggNGFmMjc2MDI3OTEzNTUyMWVjMTNhYjhjMzIxNzFkZmQzMWY4
Y2ZiNC4uM2Q4ZGI3Mjc2NDYxYjkwMjY1NzhkODcwMTEyYmI1NjMxOWQxZmE1YyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvR1BVL0dQVVByb2Nlc3NQcm94eS5jcHAKKysrIGIv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvR1BVL0dQVVByb2Nlc3NQcm94eS5jcHAKQEAgLTU3NSw3
ICs1NzUsNyBAQCB2b2lkIEdQVVByb2Nlc3NQcm94eTo6c2VuZFByZXBhcmVUb1N1c3BlbmQoSXNT
dXNwZW5zaW9uSW1taW5lbnQgaXNTdXNwZW5zaW9uSW1taQogICAgIHNlbmRXaXRoQXN5bmNSZXBs
eShNZXNzYWdlczo6R1BVUHJvY2Vzczo6UHJlcGFyZVRvU3VzcGVuZChpc1N1c3BlbnNpb25JbW1p
bmVudCA9PSBJc1N1c3BlbnNpb25JbW1pbmVudDo6WWVzKSwgV1RGTW92ZShjb21wbGV0aW9uSGFu
ZGxlciksIDAsIHsgfSwgU2hvdWxkU3RhcnRQcm9jZXNzVGhyb3R0bGVyQWN0aXZpdHk6Ok5vKTsK
IH0KIAotdm9pZCBHUFVQcm9jZXNzUHJveHk6OnNlbmRQcm9jZXNzRGlkUmVzdW1lKCkKK3ZvaWQg
R1BVUHJvY2Vzc1Byb3h5OjpzZW5kUHJvY2Vzc0RpZFJlc3VtZShib29sKQogewogICAgIGlmIChj
YW5TZW5kTWVzc2FnZSgpKQogICAgICAgICBzZW5kKE1lc3NhZ2VzOjpHUFVQcm9jZXNzOjpQcm9j
ZXNzRGlkUmVzdW1lKCksIDApOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
R1BVL0dQVVByb2Nlc3NQcm94eS5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvR1BVL0dQVVBy
b2Nlc3NQcm94eS5oCmluZGV4IDQ0M2U5YjdhNDY2YWZlNTFlODg0YjRmOTQzOGM0Y2M2NWQ3M2I4
ZGMuLjE3YWNhZTJkZjAyYWE3YzBmZjhhOGFiYTYwNTA3Y2QwNjBhZjM5OWIgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0dQVS9HUFVQcm9jZXNzUHJveHkuaAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9HUFUvR1BVUHJvY2Vzc1Byb3h5LmgKQEAgLTEyNyw3ICsxMjcs
NyBAQCBwcml2YXRlOgogICAgIC8vIFByb2Nlc3NUaHJvdHRsZXJDbGllbnQKICAgICBBU0NJSUxp
dGVyYWwgY2xpZW50TmFtZSgpIGNvbnN0IGZpbmFsIHsgcmV0dXJuICJHUFVQcm9jZXNzIl9zOyB9
CiAgICAgdm9pZCBzZW5kUHJlcGFyZVRvU3VzcGVuZChJc1N1c3BlbnNpb25JbW1pbmVudCwgQ29t
cGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmKSBmaW5hbDsKLSAgICB2b2lkIHNlbmRQcm9jZXNzRGlk
UmVzdW1lKCkgZmluYWw7CisgICAgdm9pZCBzZW5kUHJvY2Vzc0RpZFJlc3VtZShib29sKSBmaW5h
bDsKIAogICAgIC8vIFByb2Nlc3NMYXVuY2hlcjo6Q2xpZW50CiAgICAgdm9pZCBkaWRGaW5pc2hM
YXVuY2hpbmcoUHJvY2Vzc0xhdW5jaGVyKiwgSVBDOjpDb25uZWN0aW9uOjpJZGVudGlmaWVyKSBv
dmVycmlkZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL05ldHdvcmsvTmV0
d29ya1Byb2Nlc3NQcm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9OZXR3b3JrL05l
dHdvcmtQcm9jZXNzUHJveHkuY3BwCmluZGV4IGUxOWI4YjI0ZWY5Y2IyYWJlMWZhODcwNmVlN2Nl
YTEyNTFlYzMwMDYuLjkxMGRhMTM4ZGVkYjI4ZDdhNDNiNWFhNGNjZWY2MjJiNGE0Zjc5N2QgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nlc3NQ
cm94eS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvTmV0d29yay9OZXR3b3JrUHJv
Y2Vzc1Byb3h5LmNwcApAQCAtMTM5OSwxMCArMTM5OSwxMCBAQCB2b2lkIE5ldHdvcmtQcm9jZXNz
UHJveHk6OnNlbmRQcmVwYXJlVG9TdXNwZW5kKElzU3VzcGVuc2lvbkltbWluZW50IGlzU3VzcGVu
c2lvbgogICAgIHNlbmRXaXRoQXN5bmNSZXBseShNZXNzYWdlczo6TmV0d29ya1Byb2Nlc3M6OlBy
ZXBhcmVUb1N1c3BlbmQoaXNTdXNwZW5zaW9uSW1taW5lbnQgPT0gSXNTdXNwZW5zaW9uSW1taW5l
bnQ6OlllcyksIFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpLCAwLCB7IH0sIFNob3VsZFN0YXJ0
UHJvY2Vzc1Rocm90dGxlckFjdGl2aXR5OjpObyk7CiB9CiAKLXZvaWQgTmV0d29ya1Byb2Nlc3NQ
cm94eTo6c2VuZFByb2Nlc3NEaWRSZXN1bWUoKQordm9pZCBOZXR3b3JrUHJvY2Vzc1Byb3h5Ojpz
ZW5kUHJvY2Vzc0RpZFJlc3VtZShib29sIGZvckZvcmVncm91bmRBY3Rpdml0eSkKIHsKICAgICBp
ZiAoY2FuU2VuZE1lc3NhZ2UoKSkKLSAgICAgICAgc2VuZChNZXNzYWdlczo6TmV0d29ya1Byb2Nl
c3M6OlByb2Nlc3NEaWRSZXN1bWUoKSwgMCk7CisgICAgICAgIHNlbmQoTWVzc2FnZXM6Ok5ldHdv
cmtQcm9jZXNzOjpQcm9jZXNzRGlkUmVzdW1lKGZvckZvcmVncm91bmRBY3Rpdml0eSksIDApOwog
fQogCiB2b2lkIE5ldHdvcmtQcm9jZXNzUHJveHk6OmZsdXNoQ29va2llcyhQQUw6OlNlc3Npb25J
RCBzZXNzaW9uSUQsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJiBjb21wbGV0aW9uSGFuZGxl
cikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL05ldHdvcmsvTmV0d29ya1By
b2Nlc3NQcm94eS5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvTmV0d29yay9OZXR3b3JrUHJv
Y2Vzc1Byb3h5LmgKaW5kZXggMTA1ZDY2MTI5ZGQyY2NmNmE1NTFmZGZiYmM1MmQ2MjhhNGQwYWUy
Mi4uMzBjYzRiZjg4ZWUwZDIyM2Q1NjhmY2VlY2NlYTYzOTFiMzk0M2M4MyAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvTmV0d29yay9OZXR3b3JrUHJvY2Vzc1Byb3h5LmgKKysr
IGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvTmV0d29yay9OZXR3b3JrUHJvY2Vzc1Byb3h5LmgK
QEAgLTIzNiw3ICsyMzYsNyBAQCBwdWJsaWM6CiAgICAgdm9pZCBjcmVhdGVTeW1MaW5rRm9yRmls
ZVVwZ3JhZGUoY29uc3QgU3RyaW5nJiBpbmRleGVkRGF0YWJhc2VEaXJlY3RvcnkpOwogCiAgICAg
Ly8gUHJvY2Vzc1Rocm90dGxlckNsaWVudAotICAgIHZvaWQgc2VuZFByb2Nlc3NEaWRSZXN1bWUo
KSBmaW5hbDsKKyAgICB2b2lkIHNlbmRQcm9jZXNzRGlkUmVzdW1lKGJvb2wgZm9yRm9yZWdyb3Vu
ZEFjdGl2aXR5KSBmaW5hbDsKICAgICBBU0NJSUxpdGVyYWwgY2xpZW50TmFtZSgpIGNvbnN0IGZp
bmFsIHsgcmV0dXJuICJOZXR3b3JrUHJvY2VzcyJfczsgfQogICAgIAogICAgIHN0YXRpYyB2b2lk
IHNldFN1c3BlbnNpb25BbGxvd2VkRm9yVGVzdGluZyhib29sKTsKQEAgLTMwMSw2ICszMDEsMTEg
QEAgcHVibGljOgogCiAgICAgdm9pZCB0ZXJtaW5hdGVSZW1vdGVXb3JrZXJDb250ZXh0Q29ubmVj
dGlvbldoZW5Qb3NzaWJsZShSZW1vdGVXb3JrZXJUeXBlLCBQQUw6OlNlc3Npb25JRCwgY29uc3Qg
V2ViQ29yZTo6UmVnaXN0cmFibGVEb21haW4mLCBXZWJDb3JlOjpQcm9jZXNzSWRlbnRpZmllcik7
CiAKKyNpZiBQTEFURk9STShJT1NfRkFNSUxZKQorICAgIHZvaWQgYXBwbGljYXRpb25XaWxsRW50
ZXJGb3JlZ3JvdW5kKCk7CisgICAgdm9pZCBhcHBsaWNhdGlvbkRpZEVudGVyQmFja2dyb3VuZCgp
OworI2VuZGlmCisKIHByaXZhdGU6CiAgICAgZXhwbGljaXQgTmV0d29ya1Byb2Nlc3NQcm94eSgp
OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQ
cm9jZXNzUHJveHlDb2NvYS5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL05ldHdvcmsvTmV0
d29ya1Byb2Nlc3NQcm94eUNvY29hLm1tCmluZGV4IGI2NGI1MDIwNjFiNDg5YzM3OTU1YzI5NTA3
NTMyN2RiYjAxNjRlMmEuLjk0MWFkMWRjMDQyMzAyNTc4MTdiOGRkYTFhNGRlMjQ3MzI2ODg4NDUg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nl
c3NQcm94eUNvY29hLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL05ldHdvcmsvTmV0
d29ya1Byb2Nlc3NQcm94eUNvY29hLm1tCkBAIC0yNyw2ICsyNyw3IEBACiAjaW1wb3J0ICJOZXR3
b3JrUHJvY2Vzc1Byb3h5LmgiCiAKICNpbXBvcnQgIkxhdW5jaFNlcnZpY2VzRGF0YWJhc2VYUEND
b25zdGFudHMuaCIKKyNpbXBvcnQgIk5ldHdvcmtQcm9jZXNzTWVzc2FnZXMuaCIKICNpbXBvcnQg
IldlYlByb2Nlc3NQb29sLmgiCiAjaW1wb3J0ICJYUENFbmRwb2ludC5oIgogCkBAIC04NSw0ICs4
NiwxOCBAQCBib29sIE5ldHdvcmtQcm9jZXNzUHJveHk6OnNlbmRYUENFbmRwb2ludFRvUHJvY2Vz
cyhBdXhpbGlhcnlQcm9jZXNzUHJveHkmIHByb2NlcwogICAgIHJldHVybiB0cnVlOwogfQogCisj
aWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKKwordm9pZCBOZXR3b3JrUHJvY2Vzc1Byb3h5OjphcHBs
aWNhdGlvbldpbGxFbnRlckZvcmVncm91bmQoKQoreworICAgIHNlbmQoTWVzc2FnZXM6Ok5ldHdv
cmtQcm9jZXNzOjpBcHBsaWNhdGlvbldpbGxFbnRlckZvcmVncm91bmQoKSwgMCk7Cit9CisKK3Zv
aWQgTmV0d29ya1Byb2Nlc3NQcm94eTo6YXBwbGljYXRpb25EaWRFbnRlckJhY2tncm91bmQoKQor
eworICAgIHNlbmQoTWVzc2FnZXM6Ok5ldHdvcmtQcm9jZXNzOjpBcHBsaWNhdGlvbkRpZEVudGVy
QmFja2dyb3VuZCgpLCAwKTsKK30KKworI2VuZGlmCisKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL1Byb2Nlc3NUaHJvdHRsZXIuY3BwIGIvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvUHJvY2Vzc1Rocm90dGxlci5jcHAKaW5kZXggYjY5YjY0OTZmYWM4MDJhYjQzZWZiZjgy
N2ZkZDMyYTliMGZkMTVhYi4uZDY2OTZkOGMwODIyNmYyODQwMDFjMTA4Y2IzY2RhMzhjMjU5NmIz
OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvUHJvY2Vzc1Rocm90dGxlci5j
cHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvUHJvY2Vzc1Rocm90dGxlci5jcHAKQEAg
LTE1OSw3ICsxNTksNyBAQCB2b2lkIFByb2Nlc3NUaHJvdHRsZXI6OnVwZGF0ZUFzc2VydGlvbklm
TmVlZGVkKCkKICAgICAgICAgICAgICAgICBQUk9DRVNTVEhST1RUTEVSX1JFTEVBU0VfTE9HKCJ1
cGRhdGVBc3NlcnRpb25JZk5lZWRlZDogc2VuZGluZyBQcm9jZXNzRGlkUmVzdW1lIElQQyBiZWNh
dXNlIHRoZSBwcm9jZXNzIHdhcyBzdXNwZW5kZWQiKTsKICAgICAgICAgICAgIGVsc2UKICAgICAg
ICAgICAgICAgICBQUk9DRVNTVEhST1RUTEVSX1JFTEVBU0VfTE9HKCJ1cGRhdGVBc3NlcnRpb25J
Zk5lZWRlZDogc2VuZGluZyBQcm9jZXNzRGlkUmVzdW1lIElQQyBiZWNhdXNlIHRoZSBXZWJQcm9j
ZXNzIGlzIHN0aWxsIHByb2Nlc3NpbmcgcmVxdWVzdCB0byBzdXNwZW5kPSUiIFBSSXU2NCwgKm1f
cGVuZGluZ1JlcXVlc3RUb1N1c3BlbmRJRCk7Ci0gICAgICAgICAgICBtX3Byb2Nlc3Muc2VuZFBy
b2Nlc3NEaWRSZXN1bWUoKTsKKyAgICAgICAgICAgIG1fcHJvY2Vzcy5zZW5kUHJvY2Vzc0RpZFJl
c3VtZShleHBlY3RlZEFzc2VydGlvblR5cGUoKSA9PSBQcm9jZXNzQXNzZXJ0aW9uVHlwZTo6Rm9y
ZWdyb3VuZCk7CiAgICAgICAgICAgICBjbGVhclBlbmRpbmdSZXF1ZXN0VG9TdXNwZW5kKCk7CiAg
ICAgICAgIH0KICAgICB9IGVsc2UgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvUHJvY2Vzc1Rocm90dGxlckNsaWVudC5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvUHJv
Y2Vzc1Rocm90dGxlckNsaWVudC5oCmluZGV4IDExOGJmMGRkMjM1ODIyNGMyZWM3ZGY5Yjk2NTFl
OWYxMzc4ZTZlMDAuLjA0ZDMxYTAxOTg0M2MyNDI4NDM3YTFhZWMzYzEzN2JkMTNhOTE2NTQgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1Byb2Nlc3NUaHJvdHRsZXJDbGllbnQu
aAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Qcm9jZXNzVGhyb3R0bGVyQ2xpZW50LmgK
QEAgLTM3LDcgKzM3LDcgQEAgcHVibGljOgogICAgIHZpcnR1YWwgflByb2Nlc3NUaHJvdHRsZXJD
bGllbnQoKSB7IH0KIAogICAgIHZpcnR1YWwgdm9pZCBzZW5kUHJlcGFyZVRvU3VzcGVuZChJc1N1
c3BlbnNpb25JbW1pbmVudCwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmKSA9IDA7Ci0gICAg
dmlydHVhbCB2b2lkIHNlbmRQcm9jZXNzRGlkUmVzdW1lKCkgPSAwOworICAgIHZpcnR1YWwgdm9p
ZCBzZW5kUHJvY2Vzc0RpZFJlc3VtZShib29sIGZvckZvcmVncm91bmRBY3Rpdml0eSkgPSAwOwog
ICAgIHZpcnR1YWwgdm9pZCBkaWRTZXRBc3NlcnRpb25UeXBlKFByb2Nlc3NBc3NlcnRpb25UeXBl
KSB7IH07CiAgICAgdmlydHVhbCBBU0NJSUxpdGVyYWwgY2xpZW50TmFtZSgpIGNvbnN0ID0gMDsK
IH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJBdXRoZW50aWNhdGlv
bi9XZWJBdXRoblByb2Nlc3NQcm94eS5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViQXV0
aGVudGljYXRpb24vV2ViQXV0aG5Qcm9jZXNzUHJveHkuaAppbmRleCBjNWIxNjcxYjFhYTA2MzRk
MTMyYjlhNmVmODlhZTgzZWNmYjAzYjNlLi4wYjYwNTE3OGIzNjBkYjY1YWViNTUzNDFkYzJhMTg0
ZWQ3MjA3NzE3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJBdXRoZW50
aWNhdGlvbi9XZWJBdXRoblByb2Nlc3NQcm94eS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL1dlYkF1dGhlbnRpY2F0aW9uL1dlYkF1dGhuUHJvY2Vzc1Byb3h5LmgKQEAgLTU1LDcgKzU1
LDcgQEAgcHVibGljOgogICAgIHZvaWQgdXBkYXRlUHJvY2Vzc0Fzc2VydGlvbigpOwogCiAgICAg
Ly8gUHJvY2Vzc1Rocm90dGxlckNsaWVudAotICAgIHZvaWQgc2VuZFByb2Nlc3NEaWRSZXN1bWUo
KSBmaW5hbCB7IH0KKyAgICB2b2lkIHNlbmRQcm9jZXNzRGlkUmVzdW1lKGJvb2wpIGZpbmFsIHsg
fQogICAgIEFTQ0lJTGl0ZXJhbCBjbGllbnROYW1lKCkgY29uc3QgZmluYWwgeyByZXR1cm4gIldl
YkF1dGhuUHJvY2VzcyJfczsgfQogCiBwcml2YXRlOgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L1dlYlByb2Nlc3NQcm94eS5jcHAKaW5kZXggMmYxZTY5MzZiZTYxNDU4MTJkNDc3ZmFiYTdkYzJh
ODAzNzg0ZTdhZi4uYzI0NTQ4ZTI4ZWNmODliNWMyYWM2MzgxMGIwY2Q4YWNhNDNiMjRmOCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5LmNwcAorKysg
Yi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkuY3BwCkBAIC0xNDM1LDcg
KzE0MzUsNyBAQCB2b2lkIFdlYlByb2Nlc3NQcm94eTo6c2VuZFByZXBhcmVUb1N1c3BlbmQoSXNT
dXNwZW5zaW9uSW1taW5lbnQgaXNTdXNwZW5zaW9uSW1taQogICAgIHNlbmRXaXRoQXN5bmNSZXBs
eShNZXNzYWdlczo6V2ViUHJvY2Vzczo6UHJlcGFyZVRvU3VzcGVuZChpc1N1c3BlbnNpb25JbW1p
bmVudCA9PSBJc1N1c3BlbnNpb25JbW1pbmVudDo6WWVzKSwgV1RGTW92ZShjb21wbGV0aW9uSGFu
ZGxlciksIDAsIHsgfSwgU2hvdWxkU3RhcnRQcm9jZXNzVGhyb3R0bGVyQWN0aXZpdHk6Ok5vKTsK
IH0KIAotdm9pZCBXZWJQcm9jZXNzUHJveHk6OnNlbmRQcm9jZXNzRGlkUmVzdW1lKCkKK3ZvaWQg
V2ViUHJvY2Vzc1Byb3h5OjpzZW5kUHJvY2Vzc0RpZFJlc3VtZShib29sKQogewogICAgIFdFQlBS
T0NFU1NQUk9YWV9SRUxFQVNFX0xPRyhQcm9jZXNzU3VzcGVuc2lvbiwgInNlbmRQcm9jZXNzRGlk
UmVzdW1lOiIpOwogICAgIGlmIChjYW5TZW5kTWVzc2FnZSgpKQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5LmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9XZWJQcm9jZXNzUHJveHkuaAppbmRleCBiZmM3OTU2YzAyZWU1YWNlMmQ1NTczNDNjNTA3
NTM3YTg1Y2ZkNGZjLi4wMmMxYzhiM2NjZDczNWI3MDJmMThjNmU1NzUxYmE5ODM1M2NlZTE4IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkuaAorKysg
Yi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkuaApAQCAtMzI3LDcgKzMy
Nyw3IEBAIHB1YmxpYzoKIAogICAgIC8vIFByb2Nlc3NUaHJvdHRsZXJDbGllbnQKICAgICB2b2lk
IHNlbmRQcmVwYXJlVG9TdXNwZW5kKElzU3VzcGVuc2lvbkltbWluZW50LCBDb21wbGV0aW9uSGFu
ZGxlcjx2b2lkKCk+JiYpIGZpbmFsOwotICAgIHZvaWQgc2VuZFByb2Nlc3NEaWRSZXN1bWUoKSBm
aW5hbDsKKyAgICB2b2lkIHNlbmRQcm9jZXNzRGlkUmVzdW1lKGJvb2wpIGZpbmFsOwogICAgIHZv
aWQgZGlkU2V0QXNzZXJ0aW9uVHlwZShQcm9jZXNzQXNzZXJ0aW9uVHlwZSkgZmluYWw7CiAgICAg
QVNDSUlMaXRlcmFsIGNsaWVudE5hbWUoKSBjb25zdCBmaW5hbCB7IHJldHVybiAiV2ViUHJvY2Vz
cyJfczsgfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJzaXRlRGF0
YS9XZWJzaXRlRGF0YVN0b3JlLmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYnNpdGVE
YXRhL1dlYnNpdGVEYXRhU3RvcmUuY3BwCmluZGV4IDUwYzkzNTJiNjY5YzU4NjljNzc0OGMzOTli
YTIxYzhiN2Q1OTBhMTMuLjFjYjkzMmZjMzc3YTc3Y2Q4MWJjMmY1OWY2M2I3MGI1MGVhYzQyNDYg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYnNpdGVEYXRhL1dlYnNpdGVE
YXRhU3RvcmUuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYnNpdGVEYXRhL1dl
YnNpdGVEYXRhU3RvcmUuY3BwCkBAIC0xNTc1LDcgKzE1NzUsNyBAQCB2b2lkIFdlYnNpdGVEYXRh
U3RvcmU6OnNlbmROZXR3b3JrUHJvY2Vzc1dpbGxTdXNwZW5kSW1taW5lbnRseUZvclRlc3Rpbmco
KQogCiB2b2lkIFdlYnNpdGVEYXRhU3RvcmU6OnNlbmROZXR3b3JrUHJvY2Vzc0RpZFJlc3VtZSgp
CiB7Ci0gICAgbmV0d29ya1Byb2Nlc3MoKS5zZW5kUHJvY2Vzc0RpZFJlc3VtZSgpOworICAgIG5l
dHdvcmtQcm9jZXNzKCkuc2VuZFByb2Nlc3NEaWRSZXN1bWUodHJ1ZSk7CiB9CiAKIGJvb2wgV2Vi
c2l0ZURhdGFTdG9yZTo6cmVzb3VyY2VMb2FkU3RhdGlzdGljc0VuYWJsZWQoKSBjb25zdApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1Byb2Nlc3NBc3NlcnRpb25JT1Mu
bW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvUHJvY2Vzc0Fzc2VydGlvbklPUy5tbQpp
bmRleCBmZDg3ODliODY4ZDIxMTRiNmI3MDM5YTYzMGY3ZjFkYmY4MGQxNWI5Li5mYWI1OWU2YjQ4
YmM3YzA3ZGRhMmE2NzI4Y2IwNmY2YzYzMGFmOGZlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9pb3MvUHJvY2Vzc0Fzc2VydGlvbklPUy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9pb3MvUHJvY2Vzc0Fzc2VydGlvbklPUy5tbQpAQCAtMzEsNiArMzEsNyBAQAog
I2ltcG9ydCAiTG9nZ2luZy5oIgogI2ltcG9ydCAiUnVubmluZ0JvYXJkU2VydmljZXNTUEkuaCIK
ICNpbXBvcnQgIldlYlByb2Nlc3NQb29sLmgiCisjaW1wb3J0ICJXZWJzaXRlRGF0YVN0b3JlLmgi
CiAjaW1wb3J0IDxVSUtpdC9VSUFwcGxpY2F0aW9uLmg+CiAjaW1wb3J0IDx3dGYvSGFzaE1hcC5o
PgogI2ltcG9ydCA8d3RmL1J1bkxvb3AuaD4KQEAgLTkyLDExICs5MywyMSBAQCBzdGF0aWMgYm9v
bCBwcm9jZXNzSGFzQWN0aXZlUnVuVGltZUxpbWl0YXRpb24oKQogICAgIFtbTlNOb3RpZmljYXRp
b25DZW50ZXIgZGVmYXVsdENlbnRlcl0gYWRkT2JzZXJ2ZXJGb3JOYW1lOlVJQXBwbGljYXRpb25X
aWxsRW50ZXJGb3JlZ3JvdW5kTm90aWZpY2F0aW9uIG9iamVjdDpbVUlBcHBsaWNhdGlvbiBzaGFy
ZWRBcHBsaWNhdGlvbl0gcXVldWU6bmlsIHVzaW5nQmxvY2s6XihOU05vdGlmaWNhdGlvbiAqKSB7
CiAgICAgICAgIFtzZWxmIF9jYW5jZWxQZW5kaW5nUmVsZWFzZVRhc2tdOwogICAgICAgICBbc2Vs
ZiBfdXBkYXRlQmFja2dyb3VuZFRhc2tdOworCisgICAgICAgIFdlYnNpdGVEYXRhU3RvcmU6OmZv
ckVhY2hXZWJzaXRlRGF0YVN0b3JlKF0gKFdlYnNpdGVEYXRhU3RvcmUmIGRhdGFTdG9yZSkgewor
ICAgICAgICAgICAgaWYgKGF1dG8qIG5ldHdvcmtQcm9jZXNzID0gZGF0YVN0b3JlLm5ldHdvcmtQ
cm9jZXNzSWZFeGlzdHMoKSkKKyAgICAgICAgICAgICAgICBuZXR3b3JrUHJvY2Vzcy0+YXBwbGlj
YXRpb25XaWxsRW50ZXJGb3JlZ3JvdW5kKCk7CisgICAgICAgIH0pOwogICAgIH1dOwogCiAgICAg
W1tOU05vdGlmaWNhdGlvbkNlbnRlciBkZWZhdWx0Q2VudGVyXSBhZGRPYnNlcnZlckZvck5hbWU6
VUlBcHBsaWNhdGlvbkRpZEVudGVyQmFja2dyb3VuZE5vdGlmaWNhdGlvbiBvYmplY3Q6W1VJQXBw
bGljYXRpb24gc2hhcmVkQXBwbGljYXRpb25dIHF1ZXVlOm5pbCB1c2luZ0Jsb2NrOl4oTlNOb3Rp
ZmljYXRpb24gKikgewogICAgICAgICBpZiAoIVtzZWxmIF9oYXNCYWNrZ3JvdW5kVGFza10pCiAg
ICAgICAgICAgICBXZWJLaXQ6OldlYlByb2Nlc3NQb29sOjpub3RpZnlQcm9jZXNzUG9vbHNBcHBs
aWNhdGlvbklzQWJvdXRUb1N1c3BlbmQoKTsKKworICAgICAgICBXZWJzaXRlRGF0YVN0b3JlOjpm
b3JFYWNoV2Vic2l0ZURhdGFTdG9yZShdIChXZWJzaXRlRGF0YVN0b3JlJiBkYXRhU3RvcmUpIHsK
KyAgICAgICAgICAgIGlmIChhdXRvKiBuZXR3b3JrUHJvY2VzcyA9IGRhdGFTdG9yZS5uZXR3b3Jr
UHJvY2Vzc0lmRXhpc3RzKCkpCisgICAgICAgICAgICAgICAgbmV0d29ya1Byb2Nlc3MtPmFwcGxp
Y2F0aW9uRGlkRW50ZXJCYWNrZ3JvdW5kKCk7CisgICAgICAgIH0pOwogICAgIH1dOwogCiAgICAg
cmV0dXJuIHNlbGY7Cg==
</data>
<flag name="commit-queue"
          id="482998"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>455121</attachid>
            <date>2022-03-18 11:55:01 -0700</date>
            <delta_ts>2022-03-18 12:17:12 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-238082-20220318115500.patch</filename>
            <type>text/plain</type>
            <size>18255</size>
            <attacher name="Sihui Liu">sihui_liu</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjkxNDQ2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDA3OTdjODQyNDJlODI1ZDhi
MGE1NTVmMmIzOTllNTk0NDVkNGUyNWYuLmFjODAxNmU1MDJiNmVkYWJkYmE4NTM1NjQ4YTkzYjcx
YWRiMzcyYzQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNDYgQEAKKzIwMjItMDMtMTggIFNpaHVpIExp
dSAgPHNpaHVpX2xpdUBhcHBsZS5jb20+CisKKyAgICAgICAgQWRkIGxvZ2dpbmcgYWJvdXQgcHJv
Y2VzcyBlbnRlcmluZyBiYWNrZ3JvdW5kIHRvIE5ldHdvcmtQcm9jZXNzOjpwcm9jZXNzRGlkUmVz
dW1lCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzgw
ODIKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBJbiBy
ZGFyOi8vODI0MTI3MzMsIHdlIGZvdW5kIG5ldHdvcmsgcHJvY2VzcyBjYW4gYmUgc3VzcGVuZGVk
IHJpZ2h0IGFmdGVyIGl0IHJlY2VpdmVzIHByb2Nlc3NEaWRSZXN1bWUgbWVzc2FnZS4gCisgICAg
ICAgIEZvciBuZXR3b3JrIHBvcmNlc3MsIHByb2Nlc3NEaWRSZXN1bWUgbWVhbnMgcHJvY2VzcyBp
cyBub3Qgc3VzcGVuZGVkIGFuZCBpdCBpcyBzYWZlIHRvIHBlcmZvcm0gZGF0YWJhc2UgCisgICAg
ICAgIG9wZXJhdGlvbnMuIExldCdzIGFkZCBsb2dnaW5nIHRvIGNoZWNrIHdoZW4gYW5kIHdoeSBw
cm9jZXNzRGlkUmVzdW1lIG1lc3NhZ2UgaXMgc2VudC4gSWYgdGhlIGxvZ2dpbmcgY29uZmlybXMK
KyAgICAgICAgdGhhdCBwcm9jZXNzRGlkUmVzdW1lIG1lc3NhZ2UgY2FuIGJlIHJlY2VpdmVkIHdo
ZW4gcHJvY2VzcyBpcyBjbG9zZSB0byBhc3NlcnRpb24gdGltZW91dCwgd2UgcHJvYmFibHkgd2Fu
dCB0byAKKyAgICAgICAgaWdub3JlIHN1Y2ggbWVzc2FnZSBhbmQgcmVzdW1lIGRhdGFiYXNlIG9w
ZXJhdGlvbnMgd2hlbiBhcHBsaWNhdGlvbiBlbnRlcnMgZm9yZWdyb3VuZC4KKworICAgICAgICAq
IE5ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLmNwcDoKKyAgICAgICAgKFdlYktpdDo6TmV0
d29ya1Byb2Nlc3M6OnByZXBhcmVUb1N1c3BlbmQpOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3Jr
UHJvY2Vzczo6YXBwbGljYXRpb25EaWRFbnRlckJhY2tncm91bmQpOgorICAgICAgICAoV2ViS2l0
OjpOZXR3b3JrUHJvY2Vzczo6YXBwbGljYXRpb25XaWxsRW50ZXJGb3JlZ3JvdW5kKToKKyAgICAg
ICAgKFdlYktpdDo6TmV0d29ya1Byb2Nlc3M6OnByb2Nlc3NEaWRSZXN1bWUpOgorICAgICAgICAq
IE5ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLmg6CisgICAgICAgICogTmV0d29ya1Byb2Nl
c3MvTmV0d29ya1Byb2Nlc3MubWVzc2FnZXMuaW46CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9D
b2NvYS9XS1dlYlZpZXdUZXN0aW5nLm1tOgorICAgICAgICAoLVtXS1dlYlZpZXcgX3Byb2Nlc3NE
aWRSZXN1bWVGb3JUZXN0aW5nXSk6CisgICAgICAgICogVUlQcm9jZXNzL0dQVS9HUFVQcm9jZXNz
UHJveHkuY3BwOgorICAgICAgICAoV2ViS2l0OjpHUFVQcm9jZXNzUHJveHk6OnNlbmRQcm9jZXNz
RGlkUmVzdW1lKToKKyAgICAgICAgKiBVSVByb2Nlc3MvR1BVL0dQVVByb2Nlc3NQcm94eS5oOgor
ICAgICAgICAqIFVJUHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9jZXNzUHJveHkuY3BwOgorICAg
ICAgICAoV2ViS2l0OjpOZXR3b3JrUHJvY2Vzc1Byb3h5OjpzZW5kUHJvY2Vzc0RpZFJlc3VtZSk6
CisgICAgICAgICogVUlQcm9jZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nlc3NQcm94eS5oOgorICAg
ICAgICAqIFVJUHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9jZXNzUHJveHlDb2NvYS5tbToKKyAg
ICAgICAgKFdlYktpdDo6TmV0d29ya1Byb2Nlc3M6OmFwcGxpY2F0aW9uV2lsbEVudGVyRm9yZWdy
b3VuZCk6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtQcm9jZXNzOjphcHBsaWNhdGlvbkRpZEVu
dGVyQmFja2dyb3VuZCk6CisgICAgICAgICogVUlQcm9jZXNzL1Byb2Nlc3NUaHJvdHRsZXIuY3Bw
OgorICAgICAgICAoV2ViS2l0OjpQcm9jZXNzVGhyb3R0bGVyOjp1cGRhdGVBc3NlcnRpb25JZk5l
ZWRlZCk6CisgICAgICAgICogVUlQcm9jZXNzL1Byb2Nlc3NUaHJvdHRsZXJDbGllbnQuaDoKKyAg
ICAgICAgKiBVSVByb2Nlc3MvV2ViQXV0aGVudGljYXRpb24vV2ViQXV0aG5Qcm9jZXNzUHJveHku
aDoKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5LmNwcDoKKyAgICAgICAgKFdl
YktpdDo6V2ViUHJvY2Vzc1Byb3h5OjpzZW5kUHJvY2Vzc0RpZFJlc3VtZSk6CisgICAgICAgICog
VUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJzaXRl
RGF0YS9XZWJzaXRlRGF0YVN0b3JlLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2Vic2l0ZURhdGFT
dG9yZTo6c2VuZE5ldHdvcmtQcm9jZXNzRGlkUmVzdW1lKToKKyAgICAgICAgKiBVSVByb2Nlc3Mv
aW9zL1Byb2Nlc3NBc3NlcnRpb25JT1MubW06CisgICAgICAgICgtW1dLUHJvY2Vzc0Fzc2VydGlv
bkJhY2tncm91bmRUYXNrTWFuYWdlciBpbml0XSk6CisKIDIwMjItMDMtMTcgIEFkaXR5YSBLZWVy
dGhpICA8YWtlZXJ0aGlAYXBwbGUuY29tPgogCiAgICAgICAgIFtpT1NdIFN1cHBvcnQgUERGIHNl
YXJjaCB3aGVuIHVzaW5nIGEgZmluZCBpbnRlcmFjdGlvbgpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5jcHAgYi9Tb3VyY2UvV2ViS2l0L05l
dHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLmNwcAppbmRleCBjNzQ0MDZhNTU4YWY0ZTY4NGZh
NDA0N2M2MDgzNDg1YTFlNTYxMjY4Li5kZTQyYTE5ZDllMjAzZDJmMTVjNTkwYzhhM2Q5NjliZDg5
OTQwODBhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtQ
cm9jZXNzLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9j
ZXNzLmNwcApAQCAtMjExNCw3ICsyMTE0LDcgQEAgdm9pZCBOZXR3b3JrUHJvY2Vzczo6dGVybWlu
YXRlUmVtb3RlV29ya2VyQ29udGV4dENvbm5lY3Rpb25XaGVuUG9zc2libGUoUmVtb3RlV28KIAog
dm9pZCBOZXR3b3JrUHJvY2Vzczo6cHJlcGFyZVRvU3VzcGVuZChib29sIGlzU3VzcGVuc2lvbklt
bWluZW50LCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYgY29tcGxldGlvbkhhbmRsZXIpCiB7
Ci0gICAgUkVMRUFTRV9MT0coUHJvY2Vzc1N1c3BlbnNpb24sICIlcCAtIE5ldHdvcmtQcm9jZXNz
OjpwcmVwYXJlVG9TdXNwZW5kKCksIGlzU3VzcGVuc2lvbkltbWluZW50PSVkIiwgdGhpcywgaXNT
dXNwZW5zaW9uSW1taW5lbnQpOworICAgIFJFTEVBU0VfTE9HKFByb2Nlc3NTdXNwZW5zaW9uLCAi
JXAgLSBOZXR3b3JrUHJvY2Vzczo6cHJlcGFyZVRvU3VzcGVuZCgpLCBpc1N1c3BlbnNpb25JbW1p
bmVudD0lZCBQcm9jZXNzIGlzICVzIGluIGJhY2tncm91bmQiLCB0aGlzLCBpc1N1c3BlbnNpb25J
bW1pbmVudCwgbV9lbnRlckJhY2tncm91bmRUaW1lc3RhbXAgPyAiIiA6ICJub3QiKTsKIAogICAg
IG1faXNTdXNwZW5kZWQgPSB0cnVlOwogICAgIGxvd01lbW9yeUhhbmRsZXIoQ3JpdGljYWw6Olll
cyk7CkBAIC0yMTQ1LDE3ICsyMTQ1LDI5IEBAIHZvaWQgTmV0d29ya1Byb2Nlc3M6OnByZXBhcmVU
b1N1c3BlbmQoYm9vbCBpc1N1c3BlbnNpb25JbW1pbmVudCwgQ29tcGxldGlvbkhhbmRsCiAKIHZv
aWQgTmV0d29ya1Byb2Nlc3M6OmFwcGxpY2F0aW9uRGlkRW50ZXJCYWNrZ3JvdW5kKCkKIHsKKyAg
ICBpZiAobV9lbnRlckJhY2tncm91bmRUaW1lc3RhbXApCisgICAgICAgIHJldHVybjsKKworICAg
IG1fZW50ZXJCYWNrZ3JvdW5kVGltZXN0YW1wID0gV2FsbFRpbWU6Om5vdygpOwogICAgIG1fZG93
bmxvYWRNYW5hZ2VyLmFwcGxpY2F0aW9uRGlkRW50ZXJCYWNrZ3JvdW5kKCk7CiB9CiAKIHZvaWQg
TmV0d29ya1Byb2Nlc3M6OmFwcGxpY2F0aW9uV2lsbEVudGVyRm9yZWdyb3VuZCgpCiB7CisgICAg
aWYgKCFtX2VudGVyQmFja2dyb3VuZFRpbWVzdGFtcCkKKyAgICAgICAgcmV0dXJuOworCisgICAg
bV9lbnRlckJhY2tncm91bmRUaW1lc3RhbXAgPSBzdGQ6Om51bGxvcHQ7CiAgICAgbV9kb3dubG9h
ZE1hbmFnZXIuYXBwbGljYXRpb25XaWxsRW50ZXJGb3JlZ3JvdW5kKCk7CiB9CiAKLXZvaWQgTmV0
d29ya1Byb2Nlc3M6OnByb2Nlc3NEaWRSZXN1bWUoKQordm9pZCBOZXR3b3JrUHJvY2Vzczo6cHJv
Y2Vzc0RpZFJlc3VtZShib29sIGZvckZvcmVncm91bmRBY3Rpdml0eSkKIHsKLSAgICBSRUxFQVNF
X0xPRyhQcm9jZXNzU3VzcGVuc2lvbiwgIiVwIC0gTmV0d29ya1Byb2Nlc3M6OnByb2Nlc3NEaWRS
ZXN1bWUoKSIsIHRoaXMpOworICAgIFJFTEVBU0VfTE9HKFByb2Nlc3NTdXNwZW5zaW9uLCAiJXAg
LSBOZXR3b3JrUHJvY2Vzczo6cHJvY2Vzc0RpZFJlc3VtZSgpIGZvckZvcmVncm91bmRBY3Rpdml0
eT0lZCIsIHRoaXMsIGZvckZvcmVncm91bmRBY3Rpdml0eSk7CisgICAgaWYgKG1fZW50ZXJCYWNr
Z3JvdW5kVGltZXN0YW1wKSB7CisgICAgICAgIGF1dG8gaW50ZXJ2YWwgPSBXYWxsVGltZTo6bm93
KCkgLSBtX2VudGVyQmFja2dyb3VuZFRpbWVzdGFtcC52YWx1ZSgpOworICAgICAgICBSRUxFQVNF
X0xPR19FUlJPUihQcm9jZXNzU3VzcGVuc2lvbiwgIiVwIC0gTmV0d29ya1Byb2Nlc3M6OnByb2Nl
c3NEaWRSZXN1bWUoKSBQcm9jZXNzIGlzIGluIGJhY2tncm91bmQgZm9yICVmIG1zIiwgdGhpcywg
aW50ZXJ2YWwudmFsdWUoKSk7CisgICAgfQogCiAgICAgbV9pc1N1c3BlbmRlZCA9IGZhbHNlOwog
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNz
LmggYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLmgKaW5kZXgg
MDYzOTY1YTE2YTk0MTRjYzg0NzU3MmEyMWRiMjQxOGI0N2JlYTE4Zi4uMDM4MDRjYTNiMjBlZmUy
NTE3MjY4NzA4OTZiMDg0MTQ0OThkNWRiMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3
b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5oCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1By
b2Nlc3MvTmV0d29ya1Byb2Nlc3MuaApAQCAtMTc0LDcgKzE3NCw3IEBAIHB1YmxpYzoKIAogICAg
IHZvaWQgcHJvY2Vzc1dpbGxTdXNwZW5kSW1taW5lbnRseUZvclRlc3RpbmdTeW5jKENvbXBsZXRp
b25IYW5kbGVyPHZvaWQoKT4mJik7CiAgICAgdm9pZCBwcmVwYXJlVG9TdXNwZW5kKGJvb2wgaXNT
dXNwZW5zaW9uSW1taW5lbnQsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJik7Ci0gICAgdm9p
ZCBwcm9jZXNzRGlkUmVzdW1lKCk7CisgICAgdm9pZCBwcm9jZXNzRGlkUmVzdW1lKGJvb2wgZm9y
Rm9yZWdyb3VuZEFjdGl2aXR5KTsKIAogICAgIENhY2hlTW9kZWwgY2FjaGVNb2RlbCgpIGNvbnN0
IHsgcmV0dXJuIG1fY2FjaGVNb2RlbDsgfQogCkBAIC01MjQsNiArNTI0LDcgQEAgcHJpdmF0ZToK
ICAgICBib29sIG1fcHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRFbmFibGVkIHsgdHJ1ZSB9OwogICAg
IGJvb2wgbV9mdHBFbmFibGVkIHsgZmFsc2UgfTsKICAgICBib29sIG1faXNTdXNwZW5kZWQgeyBm
YWxzZSB9OworICAgIHN0ZDo6b3B0aW9uYWw8V2FsbFRpbWU+IG1fZW50ZXJCYWNrZ3JvdW5kVGlt
ZXN0YW1wOwogfTsKIAogI2lmICFQTEFURk9STShDT0NPQSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MubWVzc2FnZXMuaW4gYi9Tb3VyY2Uv
V2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLm1lc3NhZ2VzLmluCmluZGV4IDFj
ZjMyZWFkNjBiYjM0ZmEyMmVmNGRkMzllOTg1NjA4ZjdlNjZiMjQuLjliZGVkYTQ4OTc3MmYyNTcy
MWE1ZWJjNjVjOGQyZjRkZDFiNGVkNTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29y
a1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MubWVzc2FnZXMuaW4KKysrIGIvU291cmNlL1dlYktpdC9O
ZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5tZXNzYWdlcy5pbgpAQCAtNzUsNyArNzUsNyBA
QCBtZXNzYWdlcyAtPiBOZXR3b3JrUHJvY2VzcyBMZWdhY3lSZWNlaXZlciB7CiAKICAgICBQcm9j
ZXNzV2lsbFN1c3BlbmRJbW1pbmVudGx5Rm9yVGVzdGluZ1N5bmMoKSAtPiAoKSBTeW5jaHJvbm91
cwogICAgIFByZXBhcmVUb1N1c3BlbmQoYm9vbCBpc1N1c3BlbnNpb25JbW1pbmVudCkgLT4gKCkK
LSAgICBQcm9jZXNzRGlkUmVzdW1lKCkKKyAgICBQcm9jZXNzRGlkUmVzdW1lKGJvb2wgZm9yRm9y
ZWdyb3VuZEFjdGl2aXR5KQogCiAgICAgUHJlY29ubmVjdFRvKFBBTDo6U2Vzc2lvbklEIHNlc3Np
b25JRCwgV2ViS2l0OjpXZWJQYWdlUHJveHlJZGVudGlmaWVyIHdlYlBhZ2VQcm94eUlELCBXZWJD
b3JlOjpQYWdlSWRlbnRpZmllciB3ZWJQYWdlSUQsIFVSTCB1cmwsIFN0cmluZyB1c2VyQWdlbnQs
IGVudW06dWludDhfdCBXZWJDb3JlOjpTdG9yZWRDcmVkZW50aWFsc1BvbGljeSBzdG9yZWRDcmVk
ZW50aWFsc1BvbGljeSwgZW51bTpib29sIHN0ZDo6b3B0aW9uYWw8V2ViS2l0OjpOYXZpZ2F0aW5n
VG9BcHBCb3VuZERvbWFpbj4gaXNOYXZpZ2F0aW5nVG9BcHBCb3VuZERvbWFpbiwgZW51bTpib29s
IFdlYktpdDo6TGFzdE5hdmlnYXRpb25XYXNBcHBJbml0aWF0ZWQgbGFzdE5hdmlnYXRpb25XYXNB
cHBJbml0aWF0ZWQpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkv
Q29jb2EvV0tXZWJWaWV3VGVzdGluZy5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9D
b2NvYS9XS1dlYlZpZXdUZXN0aW5nLm1tCmluZGV4IGMwY2Y5NzhjOTY2MmVhODI3NjdjYTRjY2Fl
OTViNjRmZmNjNjk2NzkuLmE1MjQzNTRmZDQ1NWViYTU5Y2E5ZjE3NTlhYjI3ZjU1ZDYxMGUzNjAg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXdU
ZXN0aW5nLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZp
ZXdUZXN0aW5nLm1tCkBAIC0yMTMsNyArMjEzLDcgQEAKIC0gKHZvaWQpX3Byb2Nlc3NEaWRSZXN1
bWVGb3JUZXN0aW5nCiB7CiAgICAgaWYgKF9wYWdlKQotICAgICAgICBfcGFnZS0+cHJvY2Vzcygp
LnNlbmRQcm9jZXNzRGlkUmVzdW1lKCk7CisgICAgICAgIF9wYWdlLT5wcm9jZXNzKCkuc2VuZFBy
b2Nlc3NEaWRSZXN1bWUodHJ1ZSk7CiB9CiAKIC0gKHZvaWQpX3NldEFzc2VydGlvblR5cGVGb3JU
ZXN0aW5nOihpbnQpdmFsdWUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0dQ
VS9HUFVQcm9jZXNzUHJveHkuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvR1BVL0dQVVBy
b2Nlc3NQcm94eS5jcHAKaW5kZXggNGFmMjc2MDI3OTEzNTUyMWVjMTNhYjhjMzIxNzFkZmQzMWY4
Y2ZiNC4uM2Q4ZGI3Mjc2NDYxYjkwMjY1NzhkODcwMTEyYmI1NjMxOWQxZmE1YyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvR1BVL0dQVVByb2Nlc3NQcm94eS5jcHAKKysrIGIv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvR1BVL0dQVVByb2Nlc3NQcm94eS5jcHAKQEAgLTU3NSw3
ICs1NzUsNyBAQCB2b2lkIEdQVVByb2Nlc3NQcm94eTo6c2VuZFByZXBhcmVUb1N1c3BlbmQoSXNT
dXNwZW5zaW9uSW1taW5lbnQgaXNTdXNwZW5zaW9uSW1taQogICAgIHNlbmRXaXRoQXN5bmNSZXBs
eShNZXNzYWdlczo6R1BVUHJvY2Vzczo6UHJlcGFyZVRvU3VzcGVuZChpc1N1c3BlbnNpb25JbW1p
bmVudCA9PSBJc1N1c3BlbnNpb25JbW1pbmVudDo6WWVzKSwgV1RGTW92ZShjb21wbGV0aW9uSGFu
ZGxlciksIDAsIHsgfSwgU2hvdWxkU3RhcnRQcm9jZXNzVGhyb3R0bGVyQWN0aXZpdHk6Ok5vKTsK
IH0KIAotdm9pZCBHUFVQcm9jZXNzUHJveHk6OnNlbmRQcm9jZXNzRGlkUmVzdW1lKCkKK3ZvaWQg
R1BVUHJvY2Vzc1Byb3h5OjpzZW5kUHJvY2Vzc0RpZFJlc3VtZShib29sKQogewogICAgIGlmIChj
YW5TZW5kTWVzc2FnZSgpKQogICAgICAgICBzZW5kKE1lc3NhZ2VzOjpHUFVQcm9jZXNzOjpQcm9j
ZXNzRGlkUmVzdW1lKCksIDApOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
R1BVL0dQVVByb2Nlc3NQcm94eS5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvR1BVL0dQVVBy
b2Nlc3NQcm94eS5oCmluZGV4IDQ0M2U5YjdhNDY2YWZlNTFlODg0YjRmOTQzOGM0Y2M2NWQ3M2I4
ZGMuLjE3YWNhZTJkZjAyYWE3YzBmZjhhOGFiYTYwNTA3Y2QwNjBhZjM5OWIgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0dQVS9HUFVQcm9jZXNzUHJveHkuaAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9HUFUvR1BVUHJvY2Vzc1Byb3h5LmgKQEAgLTEyNyw3ICsxMjcs
NyBAQCBwcml2YXRlOgogICAgIC8vIFByb2Nlc3NUaHJvdHRsZXJDbGllbnQKICAgICBBU0NJSUxp
dGVyYWwgY2xpZW50TmFtZSgpIGNvbnN0IGZpbmFsIHsgcmV0dXJuICJHUFVQcm9jZXNzIl9zOyB9
CiAgICAgdm9pZCBzZW5kUHJlcGFyZVRvU3VzcGVuZChJc1N1c3BlbnNpb25JbW1pbmVudCwgQ29t
cGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmKSBmaW5hbDsKLSAgICB2b2lkIHNlbmRQcm9jZXNzRGlk
UmVzdW1lKCkgZmluYWw7CisgICAgdm9pZCBzZW5kUHJvY2Vzc0RpZFJlc3VtZShib29sKSBmaW5h
bDsKIAogICAgIC8vIFByb2Nlc3NMYXVuY2hlcjo6Q2xpZW50CiAgICAgdm9pZCBkaWRGaW5pc2hM
YXVuY2hpbmcoUHJvY2Vzc0xhdW5jaGVyKiwgSVBDOjpDb25uZWN0aW9uOjpJZGVudGlmaWVyKSBv
dmVycmlkZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL05ldHdvcmsvTmV0
d29ya1Byb2Nlc3NQcm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9OZXR3b3JrL05l
dHdvcmtQcm9jZXNzUHJveHkuY3BwCmluZGV4IGUxOWI4YjI0ZWY5Y2IyYWJlMWZhODcwNmVlN2Nl
YTEyNTFlYzMwMDYuLjkxMGRhMTM4ZGVkYjI4ZDdhNDNiNWFhNGNjZWY2MjJiNGE0Zjc5N2QgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nlc3NQ
cm94eS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvTmV0d29yay9OZXR3b3JrUHJv
Y2Vzc1Byb3h5LmNwcApAQCAtMTM5OSwxMCArMTM5OSwxMCBAQCB2b2lkIE5ldHdvcmtQcm9jZXNz
UHJveHk6OnNlbmRQcmVwYXJlVG9TdXNwZW5kKElzU3VzcGVuc2lvbkltbWluZW50IGlzU3VzcGVu
c2lvbgogICAgIHNlbmRXaXRoQXN5bmNSZXBseShNZXNzYWdlczo6TmV0d29ya1Byb2Nlc3M6OlBy
ZXBhcmVUb1N1c3BlbmQoaXNTdXNwZW5zaW9uSW1taW5lbnQgPT0gSXNTdXNwZW5zaW9uSW1taW5l
bnQ6OlllcyksIFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpLCAwLCB7IH0sIFNob3VsZFN0YXJ0
UHJvY2Vzc1Rocm90dGxlckFjdGl2aXR5OjpObyk7CiB9CiAKLXZvaWQgTmV0d29ya1Byb2Nlc3NQ
cm94eTo6c2VuZFByb2Nlc3NEaWRSZXN1bWUoKQordm9pZCBOZXR3b3JrUHJvY2Vzc1Byb3h5Ojpz
ZW5kUHJvY2Vzc0RpZFJlc3VtZShib29sIGZvckZvcmVncm91bmRBY3Rpdml0eSkKIHsKICAgICBp
ZiAoY2FuU2VuZE1lc3NhZ2UoKSkKLSAgICAgICAgc2VuZChNZXNzYWdlczo6TmV0d29ya1Byb2Nl
c3M6OlByb2Nlc3NEaWRSZXN1bWUoKSwgMCk7CisgICAgICAgIHNlbmQoTWVzc2FnZXM6Ok5ldHdv
cmtQcm9jZXNzOjpQcm9jZXNzRGlkUmVzdW1lKGZvckZvcmVncm91bmRBY3Rpdml0eSksIDApOwog
fQogCiB2b2lkIE5ldHdvcmtQcm9jZXNzUHJveHk6OmZsdXNoQ29va2llcyhQQUw6OlNlc3Npb25J
RCBzZXNzaW9uSUQsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJiBjb21wbGV0aW9uSGFuZGxl
cikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL05ldHdvcmsvTmV0d29ya1By
b2Nlc3NQcm94eS5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvTmV0d29yay9OZXR3b3JrUHJv
Y2Vzc1Byb3h5LmgKaW5kZXggMTA1ZDY2MTI5ZGQyY2NmNmE1NTFmZGZiYmM1MmQ2MjhhNGQwYWUy
Mi4uMzBjYzRiZjg4ZWUwZDIyM2Q1NjhmY2VlY2NlYTYzOTFiMzk0M2M4MyAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvTmV0d29yay9OZXR3b3JrUHJvY2Vzc1Byb3h5LmgKKysr
IGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvTmV0d29yay9OZXR3b3JrUHJvY2Vzc1Byb3h5LmgK
QEAgLTIzNiw3ICsyMzYsNyBAQCBwdWJsaWM6CiAgICAgdm9pZCBjcmVhdGVTeW1MaW5rRm9yRmls
ZVVwZ3JhZGUoY29uc3QgU3RyaW5nJiBpbmRleGVkRGF0YWJhc2VEaXJlY3RvcnkpOwogCiAgICAg
Ly8gUHJvY2Vzc1Rocm90dGxlckNsaWVudAotICAgIHZvaWQgc2VuZFByb2Nlc3NEaWRSZXN1bWUo
KSBmaW5hbDsKKyAgICB2b2lkIHNlbmRQcm9jZXNzRGlkUmVzdW1lKGJvb2wgZm9yRm9yZWdyb3Vu
ZEFjdGl2aXR5KSBmaW5hbDsKICAgICBBU0NJSUxpdGVyYWwgY2xpZW50TmFtZSgpIGNvbnN0IGZp
bmFsIHsgcmV0dXJuICJOZXR3b3JrUHJvY2VzcyJfczsgfQogICAgIAogICAgIHN0YXRpYyB2b2lk
IHNldFN1c3BlbnNpb25BbGxvd2VkRm9yVGVzdGluZyhib29sKTsKQEAgLTMwMSw2ICszMDEsMTEg
QEAgcHVibGljOgogCiAgICAgdm9pZCB0ZXJtaW5hdGVSZW1vdGVXb3JrZXJDb250ZXh0Q29ubmVj
dGlvbldoZW5Qb3NzaWJsZShSZW1vdGVXb3JrZXJUeXBlLCBQQUw6OlNlc3Npb25JRCwgY29uc3Qg
V2ViQ29yZTo6UmVnaXN0cmFibGVEb21haW4mLCBXZWJDb3JlOjpQcm9jZXNzSWRlbnRpZmllcik7
CiAKKyNpZiBQTEFURk9STShJT1NfRkFNSUxZKQorICAgIHZvaWQgYXBwbGljYXRpb25XaWxsRW50
ZXJGb3JlZ3JvdW5kKCk7CisgICAgdm9pZCBhcHBsaWNhdGlvbkRpZEVudGVyQmFja2dyb3VuZCgp
OworI2VuZGlmCisKIHByaXZhdGU6CiAgICAgZXhwbGljaXQgTmV0d29ya1Byb2Nlc3NQcm94eSgp
OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQ
cm9jZXNzUHJveHlDb2NvYS5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL05ldHdvcmsvTmV0
d29ya1Byb2Nlc3NQcm94eUNvY29hLm1tCmluZGV4IGI2NGI1MDIwNjFiNDg5YzM3OTU1YzI5NTA3
NTMyN2RiYjAxNjRlMmEuLjk0MWFkMWRjMDQyMzAyNTc4MTdiOGRkYTFhNGRlMjQ3MzI2ODg4NDUg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nl
c3NQcm94eUNvY29hLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL05ldHdvcmsvTmV0
d29ya1Byb2Nlc3NQcm94eUNvY29hLm1tCkBAIC0yNyw2ICsyNyw3IEBACiAjaW1wb3J0ICJOZXR3
b3JrUHJvY2Vzc1Byb3h5LmgiCiAKICNpbXBvcnQgIkxhdW5jaFNlcnZpY2VzRGF0YWJhc2VYUEND
b25zdGFudHMuaCIKKyNpbXBvcnQgIk5ldHdvcmtQcm9jZXNzTWVzc2FnZXMuaCIKICNpbXBvcnQg
IldlYlByb2Nlc3NQb29sLmgiCiAjaW1wb3J0ICJYUENFbmRwb2ludC5oIgogCkBAIC04NSw0ICs4
NiwxOCBAQCBib29sIE5ldHdvcmtQcm9jZXNzUHJveHk6OnNlbmRYUENFbmRwb2ludFRvUHJvY2Vz
cyhBdXhpbGlhcnlQcm9jZXNzUHJveHkmIHByb2NlcwogICAgIHJldHVybiB0cnVlOwogfQogCisj
aWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKKwordm9pZCBOZXR3b3JrUHJvY2Vzc1Byb3h5OjphcHBs
aWNhdGlvbldpbGxFbnRlckZvcmVncm91bmQoKQoreworICAgIHNlbmQoTWVzc2FnZXM6Ok5ldHdv
cmtQcm9jZXNzOjpBcHBsaWNhdGlvbldpbGxFbnRlckZvcmVncm91bmQoKSwgMCk7Cit9CisKK3Zv
aWQgTmV0d29ya1Byb2Nlc3NQcm94eTo6YXBwbGljYXRpb25EaWRFbnRlckJhY2tncm91bmQoKQor
eworICAgIHNlbmQoTWVzc2FnZXM6Ok5ldHdvcmtQcm9jZXNzOjpBcHBsaWNhdGlvbkRpZEVudGVy
QmFja2dyb3VuZCgpLCAwKTsKK30KKworI2VuZGlmCisKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL1Byb2Nlc3NUaHJvdHRsZXIuY3BwIGIvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvUHJvY2Vzc1Rocm90dGxlci5jcHAKaW5kZXggYjY5YjY0OTZmYWM4MDJhYjQzZWZiZjgy
N2ZkZDMyYTliMGZkMTVhYi4uZDY2OTZkOGMwODIyNmYyODQwMDFjMTA4Y2IzY2RhMzhjMjU5NmIz
OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvUHJvY2Vzc1Rocm90dGxlci5j
cHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvUHJvY2Vzc1Rocm90dGxlci5jcHAKQEAg
LTE1OSw3ICsxNTksNyBAQCB2b2lkIFByb2Nlc3NUaHJvdHRsZXI6OnVwZGF0ZUFzc2VydGlvbklm
TmVlZGVkKCkKICAgICAgICAgICAgICAgICBQUk9DRVNTVEhST1RUTEVSX1JFTEVBU0VfTE9HKCJ1
cGRhdGVBc3NlcnRpb25JZk5lZWRlZDogc2VuZGluZyBQcm9jZXNzRGlkUmVzdW1lIElQQyBiZWNh
dXNlIHRoZSBwcm9jZXNzIHdhcyBzdXNwZW5kZWQiKTsKICAgICAgICAgICAgIGVsc2UKICAgICAg
ICAgICAgICAgICBQUk9DRVNTVEhST1RUTEVSX1JFTEVBU0VfTE9HKCJ1cGRhdGVBc3NlcnRpb25J
Zk5lZWRlZDogc2VuZGluZyBQcm9jZXNzRGlkUmVzdW1lIElQQyBiZWNhdXNlIHRoZSBXZWJQcm9j
ZXNzIGlzIHN0aWxsIHByb2Nlc3NpbmcgcmVxdWVzdCB0byBzdXNwZW5kPSUiIFBSSXU2NCwgKm1f
cGVuZGluZ1JlcXVlc3RUb1N1c3BlbmRJRCk7Ci0gICAgICAgICAgICBtX3Byb2Nlc3Muc2VuZFBy
b2Nlc3NEaWRSZXN1bWUoKTsKKyAgICAgICAgICAgIG1fcHJvY2Vzcy5zZW5kUHJvY2Vzc0RpZFJl
c3VtZShleHBlY3RlZEFzc2VydGlvblR5cGUoKSA9PSBQcm9jZXNzQXNzZXJ0aW9uVHlwZTo6Rm9y
ZWdyb3VuZCk7CiAgICAgICAgICAgICBjbGVhclBlbmRpbmdSZXF1ZXN0VG9TdXNwZW5kKCk7CiAg
ICAgICAgIH0KICAgICB9IGVsc2UgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvUHJvY2Vzc1Rocm90dGxlckNsaWVudC5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvUHJv
Y2Vzc1Rocm90dGxlckNsaWVudC5oCmluZGV4IDExOGJmMGRkMjM1ODIyNGMyZWM3ZGY5Yjk2NTFl
OWYxMzc4ZTZlMDAuLjA0ZDMxYTAxOTg0M2MyNDI4NDM3YTFhZWMzYzEzN2JkMTNhOTE2NTQgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1Byb2Nlc3NUaHJvdHRsZXJDbGllbnQu
aAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Qcm9jZXNzVGhyb3R0bGVyQ2xpZW50LmgK
QEAgLTM3LDcgKzM3LDcgQEAgcHVibGljOgogICAgIHZpcnR1YWwgflByb2Nlc3NUaHJvdHRsZXJD
bGllbnQoKSB7IH0KIAogICAgIHZpcnR1YWwgdm9pZCBzZW5kUHJlcGFyZVRvU3VzcGVuZChJc1N1
c3BlbnNpb25JbW1pbmVudCwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmKSA9IDA7Ci0gICAg
dmlydHVhbCB2b2lkIHNlbmRQcm9jZXNzRGlkUmVzdW1lKCkgPSAwOworICAgIHZpcnR1YWwgdm9p
ZCBzZW5kUHJvY2Vzc0RpZFJlc3VtZShib29sIGZvckZvcmVncm91bmRBY3Rpdml0eSkgPSAwOwog
ICAgIHZpcnR1YWwgdm9pZCBkaWRTZXRBc3NlcnRpb25UeXBlKFByb2Nlc3NBc3NlcnRpb25UeXBl
KSB7IH07CiAgICAgdmlydHVhbCBBU0NJSUxpdGVyYWwgY2xpZW50TmFtZSgpIGNvbnN0ID0gMDsK
IH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJBdXRoZW50aWNhdGlv
bi9XZWJBdXRoblByb2Nlc3NQcm94eS5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViQXV0
aGVudGljYXRpb24vV2ViQXV0aG5Qcm9jZXNzUHJveHkuaAppbmRleCBjNWIxNjcxYjFhYTA2MzRk
MTMyYjlhNmVmODlhZTgzZWNmYjAzYjNlLi4wYjYwNTE3OGIzNjBkYjY1YWViNTUzNDFkYzJhMTg0
ZWQ3MjA3NzE3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJBdXRoZW50
aWNhdGlvbi9XZWJBdXRoblByb2Nlc3NQcm94eS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL1dlYkF1dGhlbnRpY2F0aW9uL1dlYkF1dGhuUHJvY2Vzc1Byb3h5LmgKQEAgLTU1LDcgKzU1
LDcgQEAgcHVibGljOgogICAgIHZvaWQgdXBkYXRlUHJvY2Vzc0Fzc2VydGlvbigpOwogCiAgICAg
Ly8gUHJvY2Vzc1Rocm90dGxlckNsaWVudAotICAgIHZvaWQgc2VuZFByb2Nlc3NEaWRSZXN1bWUo
KSBmaW5hbCB7IH0KKyAgICB2b2lkIHNlbmRQcm9jZXNzRGlkUmVzdW1lKGJvb2wpIGZpbmFsIHsg
fQogICAgIEFTQ0lJTGl0ZXJhbCBjbGllbnROYW1lKCkgY29uc3QgZmluYWwgeyByZXR1cm4gIldl
YkF1dGhuUHJvY2VzcyJfczsgfQogCiBwcml2YXRlOgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L1dlYlByb2Nlc3NQcm94eS5jcHAKaW5kZXggMmYxZTY5MzZiZTYxNDU4MTJkNDc3ZmFiYTdkYzJh
ODAzNzg0ZTdhZi4uYzI0NTQ4ZTI4ZWNmODliNWMyYWM2MzgxMGIwY2Q4YWNhNDNiMjRmOCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5LmNwcAorKysg
Yi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkuY3BwCkBAIC0xNDM1LDcg
KzE0MzUsNyBAQCB2b2lkIFdlYlByb2Nlc3NQcm94eTo6c2VuZFByZXBhcmVUb1N1c3BlbmQoSXNT
dXNwZW5zaW9uSW1taW5lbnQgaXNTdXNwZW5zaW9uSW1taQogICAgIHNlbmRXaXRoQXN5bmNSZXBs
eShNZXNzYWdlczo6V2ViUHJvY2Vzczo6UHJlcGFyZVRvU3VzcGVuZChpc1N1c3BlbnNpb25JbW1p
bmVudCA9PSBJc1N1c3BlbnNpb25JbW1pbmVudDo6WWVzKSwgV1RGTW92ZShjb21wbGV0aW9uSGFu
ZGxlciksIDAsIHsgfSwgU2hvdWxkU3RhcnRQcm9jZXNzVGhyb3R0bGVyQWN0aXZpdHk6Ok5vKTsK
IH0KIAotdm9pZCBXZWJQcm9jZXNzUHJveHk6OnNlbmRQcm9jZXNzRGlkUmVzdW1lKCkKK3ZvaWQg
V2ViUHJvY2Vzc1Byb3h5OjpzZW5kUHJvY2Vzc0RpZFJlc3VtZShib29sKQogewogICAgIFdFQlBS
T0NFU1NQUk9YWV9SRUxFQVNFX0xPRyhQcm9jZXNzU3VzcGVuc2lvbiwgInNlbmRQcm9jZXNzRGlk
UmVzdW1lOiIpOwogICAgIGlmIChjYW5TZW5kTWVzc2FnZSgpKQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5LmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9XZWJQcm9jZXNzUHJveHkuaAppbmRleCBiZmM3OTU2YzAyZWU1YWNlMmQ1NTczNDNjNTA3
NTM3YTg1Y2ZkNGZjLi4wMmMxYzhiM2NjZDczNWI3MDJmMThjNmU1NzUxYmE5ODM1M2NlZTE4IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkuaAorKysg
Yi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkuaApAQCAtMzI3LDcgKzMy
Nyw3IEBAIHB1YmxpYzoKIAogICAgIC8vIFByb2Nlc3NUaHJvdHRsZXJDbGllbnQKICAgICB2b2lk
IHNlbmRQcmVwYXJlVG9TdXNwZW5kKElzU3VzcGVuc2lvbkltbWluZW50LCBDb21wbGV0aW9uSGFu
ZGxlcjx2b2lkKCk+JiYpIGZpbmFsOwotICAgIHZvaWQgc2VuZFByb2Nlc3NEaWRSZXN1bWUoKSBm
aW5hbDsKKyAgICB2b2lkIHNlbmRQcm9jZXNzRGlkUmVzdW1lKGJvb2wpIGZpbmFsOwogICAgIHZv
aWQgZGlkU2V0QXNzZXJ0aW9uVHlwZShQcm9jZXNzQXNzZXJ0aW9uVHlwZSkgZmluYWw7CiAgICAg
QVNDSUlMaXRlcmFsIGNsaWVudE5hbWUoKSBjb25zdCBmaW5hbCB7IHJldHVybiAiV2ViUHJvY2Vz
cyJfczsgfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJzaXRlRGF0
YS9XZWJzaXRlRGF0YVN0b3JlLmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYnNpdGVE
YXRhL1dlYnNpdGVEYXRhU3RvcmUuY3BwCmluZGV4IDUwYzkzNTJiNjY5YzU4NjljNzc0OGMzOTli
YTIxYzhiN2Q1OTBhMTMuLjFjYjkzMmZjMzc3YTc3Y2Q4MWJjMmY1OWY2M2I3MGI1MGVhYzQyNDYg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYnNpdGVEYXRhL1dlYnNpdGVE
YXRhU3RvcmUuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYnNpdGVEYXRhL1dl
YnNpdGVEYXRhU3RvcmUuY3BwCkBAIC0xNTc1LDcgKzE1NzUsNyBAQCB2b2lkIFdlYnNpdGVEYXRh
U3RvcmU6OnNlbmROZXR3b3JrUHJvY2Vzc1dpbGxTdXNwZW5kSW1taW5lbnRseUZvclRlc3Rpbmco
KQogCiB2b2lkIFdlYnNpdGVEYXRhU3RvcmU6OnNlbmROZXR3b3JrUHJvY2Vzc0RpZFJlc3VtZSgp
CiB7Ci0gICAgbmV0d29ya1Byb2Nlc3MoKS5zZW5kUHJvY2Vzc0RpZFJlc3VtZSgpOworICAgIG5l
dHdvcmtQcm9jZXNzKCkuc2VuZFByb2Nlc3NEaWRSZXN1bWUodHJ1ZSk7CiB9CiAKIGJvb2wgV2Vi
c2l0ZURhdGFTdG9yZTo6cmVzb3VyY2VMb2FkU3RhdGlzdGljc0VuYWJsZWQoKSBjb25zdApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1Byb2Nlc3NBc3NlcnRpb25JT1Mu
bW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvUHJvY2Vzc0Fzc2VydGlvbklPUy5tbQpp
bmRleCBmZDg3ODliODY4ZDIxMTRiNmI3MDM5YTYzMGY3ZjFkYmY4MGQxNWI5Li45YTQyMWVlZGEw
Mjc1YjM0ZGU2N2RlMjc4NDJlMGUzY2Y3N2RmNWFmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9pb3MvUHJvY2Vzc0Fzc2VydGlvbklPUy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9pb3MvUHJvY2Vzc0Fzc2VydGlvbklPUy5tbQpAQCAtMzEsNiArMzEsNyBAQAog
I2ltcG9ydCAiTG9nZ2luZy5oIgogI2ltcG9ydCAiUnVubmluZ0JvYXJkU2VydmljZXNTUEkuaCIK
ICNpbXBvcnQgIldlYlByb2Nlc3NQb29sLmgiCisjaW1wb3J0ICJXZWJzaXRlRGF0YVN0b3JlLmgi
CiAjaW1wb3J0IDxVSUtpdC9VSUFwcGxpY2F0aW9uLmg+CiAjaW1wb3J0IDx3dGYvSGFzaE1hcC5o
PgogI2ltcG9ydCA8d3RmL1J1bkxvb3AuaD4KQEAgLTkyLDExICs5MywyMSBAQCBzdGF0aWMgYm9v
bCBwcm9jZXNzSGFzQWN0aXZlUnVuVGltZUxpbWl0YXRpb24oKQogICAgIFtbTlNOb3RpZmljYXRp
b25DZW50ZXIgZGVmYXVsdENlbnRlcl0gYWRkT2JzZXJ2ZXJGb3JOYW1lOlVJQXBwbGljYXRpb25X
aWxsRW50ZXJGb3JlZ3JvdW5kTm90aWZpY2F0aW9uIG9iamVjdDpbVUlBcHBsaWNhdGlvbiBzaGFy
ZWRBcHBsaWNhdGlvbl0gcXVldWU6bmlsIHVzaW5nQmxvY2s6XihOU05vdGlmaWNhdGlvbiAqKSB7
CiAgICAgICAgIFtzZWxmIF9jYW5jZWxQZW5kaW5nUmVsZWFzZVRhc2tdOwogICAgICAgICBbc2Vs
ZiBfdXBkYXRlQmFja2dyb3VuZFRhc2tdOworCisgICAgICAgIFdlYnNpdGVEYXRhU3RvcmU6OmZv
ckVhY2hXZWJzaXRlRGF0YVN0b3JlKFtdIChXZWJzaXRlRGF0YVN0b3JlJiBkYXRhU3RvcmUpIHsK
KyAgICAgICAgICAgIGlmIChhdXRvKiBuZXR3b3JrUHJvY2VzcyA9IGRhdGFTdG9yZS5uZXR3b3Jr
UHJvY2Vzc0lmRXhpc3RzKCkpCisgICAgICAgICAgICAgICAgbmV0d29ya1Byb2Nlc3MtPmFwcGxp
Y2F0aW9uV2lsbEVudGVyRm9yZWdyb3VuZCgpOworICAgICAgICB9KTsKICAgICB9XTsKIAogICAg
IFtbTlNOb3RpZmljYXRpb25DZW50ZXIgZGVmYXVsdENlbnRlcl0gYWRkT2JzZXJ2ZXJGb3JOYW1l
OlVJQXBwbGljYXRpb25EaWRFbnRlckJhY2tncm91bmROb3RpZmljYXRpb24gb2JqZWN0OltVSUFw
cGxpY2F0aW9uIHNoYXJlZEFwcGxpY2F0aW9uXSBxdWV1ZTpuaWwgdXNpbmdCbG9jazpeKE5TTm90
aWZpY2F0aW9uICopIHsKICAgICAgICAgaWYgKCFbc2VsZiBfaGFzQmFja2dyb3VuZFRhc2tdKQog
ICAgICAgICAgICAgV2ViS2l0OjpXZWJQcm9jZXNzUG9vbDo6bm90aWZ5UHJvY2Vzc1Bvb2xzQXBw
bGljYXRpb25Jc0Fib3V0VG9TdXNwZW5kKCk7CisKKyAgICAgICAgV2Vic2l0ZURhdGFTdG9yZTo6
Zm9yRWFjaFdlYnNpdGVEYXRhU3RvcmUoW10gKFdlYnNpdGVEYXRhU3RvcmUmIGRhdGFTdG9yZSkg
eworICAgICAgICAgICAgaWYgKGF1dG8qIG5ldHdvcmtQcm9jZXNzID0gZGF0YVN0b3JlLm5ldHdv
cmtQcm9jZXNzSWZFeGlzdHMoKSkKKyAgICAgICAgICAgICAgICBuZXR3b3JrUHJvY2Vzcy0+YXBw
bGljYXRpb25EaWRFbnRlckJhY2tncm91bmQoKTsKKyAgICAgICAgfSk7CiAgICAgfV07CiAKICAg
ICByZXR1cm4gc2VsZjsK
</data>
<flag name="commit-queue"
          id="482999"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>455124</attachid>
            <date>2022-03-18 12:09:10 -0700</date>
            <delta_ts>2022-03-21 12:05:47 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-238082-20220318120909.patch</filename>
            <type>text/plain</type>
            <size>18287</size>
            <attacher name="Sihui Liu">sihui_liu</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjkxNDQ2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDA3OTdjODQyNDJlODI1ZDhi
MGE1NTVmMmIzOTllNTk0NDVkNGUyNWYuLmFjODAxNmU1MDJiNmVkYWJkYmE4NTM1NjQ4YTkzYjcx
YWRiMzcyYzQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNDYgQEAKKzIwMjItMDMtMTggIFNpaHVpIExp
dSAgPHNpaHVpX2xpdUBhcHBsZS5jb20+CisKKyAgICAgICAgQWRkIGxvZ2dpbmcgYWJvdXQgcHJv
Y2VzcyBlbnRlcmluZyBiYWNrZ3JvdW5kIHRvIE5ldHdvcmtQcm9jZXNzOjpwcm9jZXNzRGlkUmVz
dW1lCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzgw
ODIKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBJbiBy
ZGFyOi8vODI0MTI3MzMsIHdlIGZvdW5kIG5ldHdvcmsgcHJvY2VzcyBjYW4gYmUgc3VzcGVuZGVk
IHJpZ2h0IGFmdGVyIGl0IHJlY2VpdmVzIHByb2Nlc3NEaWRSZXN1bWUgbWVzc2FnZS4gCisgICAg
ICAgIEZvciBuZXR3b3JrIHBvcmNlc3MsIHByb2Nlc3NEaWRSZXN1bWUgbWVhbnMgcHJvY2VzcyBp
cyBub3Qgc3VzcGVuZGVkIGFuZCBpdCBpcyBzYWZlIHRvIHBlcmZvcm0gZGF0YWJhc2UgCisgICAg
ICAgIG9wZXJhdGlvbnMuIExldCdzIGFkZCBsb2dnaW5nIHRvIGNoZWNrIHdoZW4gYW5kIHdoeSBw
cm9jZXNzRGlkUmVzdW1lIG1lc3NhZ2UgaXMgc2VudC4gSWYgdGhlIGxvZ2dpbmcgY29uZmlybXMK
KyAgICAgICAgdGhhdCBwcm9jZXNzRGlkUmVzdW1lIG1lc3NhZ2UgY2FuIGJlIHJlY2VpdmVkIHdo
ZW4gcHJvY2VzcyBpcyBjbG9zZSB0byBhc3NlcnRpb24gdGltZW91dCwgd2UgcHJvYmFibHkgd2Fu
dCB0byAKKyAgICAgICAgaWdub3JlIHN1Y2ggbWVzc2FnZSBhbmQgcmVzdW1lIGRhdGFiYXNlIG9w
ZXJhdGlvbnMgd2hlbiBhcHBsaWNhdGlvbiBlbnRlcnMgZm9yZWdyb3VuZC4KKworICAgICAgICAq
IE5ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLmNwcDoKKyAgICAgICAgKFdlYktpdDo6TmV0
d29ya1Byb2Nlc3M6OnByZXBhcmVUb1N1c3BlbmQpOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3Jr
UHJvY2Vzczo6YXBwbGljYXRpb25EaWRFbnRlckJhY2tncm91bmQpOgorICAgICAgICAoV2ViS2l0
OjpOZXR3b3JrUHJvY2Vzczo6YXBwbGljYXRpb25XaWxsRW50ZXJGb3JlZ3JvdW5kKToKKyAgICAg
ICAgKFdlYktpdDo6TmV0d29ya1Byb2Nlc3M6OnByb2Nlc3NEaWRSZXN1bWUpOgorICAgICAgICAq
IE5ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLmg6CisgICAgICAgICogTmV0d29ya1Byb2Nl
c3MvTmV0d29ya1Byb2Nlc3MubWVzc2FnZXMuaW46CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9D
b2NvYS9XS1dlYlZpZXdUZXN0aW5nLm1tOgorICAgICAgICAoLVtXS1dlYlZpZXcgX3Byb2Nlc3NE
aWRSZXN1bWVGb3JUZXN0aW5nXSk6CisgICAgICAgICogVUlQcm9jZXNzL0dQVS9HUFVQcm9jZXNz
UHJveHkuY3BwOgorICAgICAgICAoV2ViS2l0OjpHUFVQcm9jZXNzUHJveHk6OnNlbmRQcm9jZXNz
RGlkUmVzdW1lKToKKyAgICAgICAgKiBVSVByb2Nlc3MvR1BVL0dQVVByb2Nlc3NQcm94eS5oOgor
ICAgICAgICAqIFVJUHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9jZXNzUHJveHkuY3BwOgorICAg
ICAgICAoV2ViS2l0OjpOZXR3b3JrUHJvY2Vzc1Byb3h5OjpzZW5kUHJvY2Vzc0RpZFJlc3VtZSk6
CisgICAgICAgICogVUlQcm9jZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nlc3NQcm94eS5oOgorICAg
ICAgICAqIFVJUHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9jZXNzUHJveHlDb2NvYS5tbToKKyAg
ICAgICAgKFdlYktpdDo6TmV0d29ya1Byb2Nlc3M6OmFwcGxpY2F0aW9uV2lsbEVudGVyRm9yZWdy
b3VuZCk6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtQcm9jZXNzOjphcHBsaWNhdGlvbkRpZEVu
dGVyQmFja2dyb3VuZCk6CisgICAgICAgICogVUlQcm9jZXNzL1Byb2Nlc3NUaHJvdHRsZXIuY3Bw
OgorICAgICAgICAoV2ViS2l0OjpQcm9jZXNzVGhyb3R0bGVyOjp1cGRhdGVBc3NlcnRpb25JZk5l
ZWRlZCk6CisgICAgICAgICogVUlQcm9jZXNzL1Byb2Nlc3NUaHJvdHRsZXJDbGllbnQuaDoKKyAg
ICAgICAgKiBVSVByb2Nlc3MvV2ViQXV0aGVudGljYXRpb24vV2ViQXV0aG5Qcm9jZXNzUHJveHku
aDoKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5LmNwcDoKKyAgICAgICAgKFdl
YktpdDo6V2ViUHJvY2Vzc1Byb3h5OjpzZW5kUHJvY2Vzc0RpZFJlc3VtZSk6CisgICAgICAgICog
VUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJzaXRl
RGF0YS9XZWJzaXRlRGF0YVN0b3JlLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2Vic2l0ZURhdGFT
dG9yZTo6c2VuZE5ldHdvcmtQcm9jZXNzRGlkUmVzdW1lKToKKyAgICAgICAgKiBVSVByb2Nlc3Mv
aW9zL1Byb2Nlc3NBc3NlcnRpb25JT1MubW06CisgICAgICAgICgtW1dLUHJvY2Vzc0Fzc2VydGlv
bkJhY2tncm91bmRUYXNrTWFuYWdlciBpbml0XSk6CisKIDIwMjItMDMtMTcgIEFkaXR5YSBLZWVy
dGhpICA8YWtlZXJ0aGlAYXBwbGUuY29tPgogCiAgICAgICAgIFtpT1NdIFN1cHBvcnQgUERGIHNl
YXJjaCB3aGVuIHVzaW5nIGEgZmluZCBpbnRlcmFjdGlvbgpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5jcHAgYi9Tb3VyY2UvV2ViS2l0L05l
dHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLmNwcAppbmRleCBjNzQ0MDZhNTU4YWY0ZTY4NGZh
NDA0N2M2MDgzNDg1YTFlNTYxMjY4Li5kZTQyYTE5ZDllMjAzZDJmMTVjNTkwYzhhM2Q5NjliZDg5
OTQwODBhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtQ
cm9jZXNzLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9j
ZXNzLmNwcApAQCAtMjExNCw3ICsyMTE0LDcgQEAgdm9pZCBOZXR3b3JrUHJvY2Vzczo6dGVybWlu
YXRlUmVtb3RlV29ya2VyQ29udGV4dENvbm5lY3Rpb25XaGVuUG9zc2libGUoUmVtb3RlV28KIAog
dm9pZCBOZXR3b3JrUHJvY2Vzczo6cHJlcGFyZVRvU3VzcGVuZChib29sIGlzU3VzcGVuc2lvbklt
bWluZW50LCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYgY29tcGxldGlvbkhhbmRsZXIpCiB7
Ci0gICAgUkVMRUFTRV9MT0coUHJvY2Vzc1N1c3BlbnNpb24sICIlcCAtIE5ldHdvcmtQcm9jZXNz
OjpwcmVwYXJlVG9TdXNwZW5kKCksIGlzU3VzcGVuc2lvbkltbWluZW50PSVkIiwgdGhpcywgaXNT
dXNwZW5zaW9uSW1taW5lbnQpOworICAgIFJFTEVBU0VfTE9HKFByb2Nlc3NTdXNwZW5zaW9uLCAi
JXAgLSBOZXR3b3JrUHJvY2Vzczo6cHJlcGFyZVRvU3VzcGVuZCgpLCBpc1N1c3BlbnNpb25JbW1p
bmVudD0lZCBQcm9jZXNzIGlzICVzIGluIGJhY2tncm91bmQiLCB0aGlzLCBpc1N1c3BlbnNpb25J
bW1pbmVudCwgbV9lbnRlckJhY2tncm91bmRUaW1lc3RhbXAgPyAiIiA6ICJub3QiKTsKIAogICAg
IG1faXNTdXNwZW5kZWQgPSB0cnVlOwogICAgIGxvd01lbW9yeUhhbmRsZXIoQ3JpdGljYWw6Olll
cyk7CkBAIC0yMTQ1LDE3ICsyMTQ1LDI5IEBAIHZvaWQgTmV0d29ya1Byb2Nlc3M6OnByZXBhcmVU
b1N1c3BlbmQoYm9vbCBpc1N1c3BlbnNpb25JbW1pbmVudCwgQ29tcGxldGlvbkhhbmRsCiAKIHZv
aWQgTmV0d29ya1Byb2Nlc3M6OmFwcGxpY2F0aW9uRGlkRW50ZXJCYWNrZ3JvdW5kKCkKIHsKKyAg
ICBpZiAobV9lbnRlckJhY2tncm91bmRUaW1lc3RhbXApCisgICAgICAgIHJldHVybjsKKworICAg
IG1fZW50ZXJCYWNrZ3JvdW5kVGltZXN0YW1wID0gV2FsbFRpbWU6Om5vdygpOwogICAgIG1fZG93
bmxvYWRNYW5hZ2VyLmFwcGxpY2F0aW9uRGlkRW50ZXJCYWNrZ3JvdW5kKCk7CiB9CiAKIHZvaWQg
TmV0d29ya1Byb2Nlc3M6OmFwcGxpY2F0aW9uV2lsbEVudGVyRm9yZWdyb3VuZCgpCiB7CisgICAg
aWYgKCFtX2VudGVyQmFja2dyb3VuZFRpbWVzdGFtcCkKKyAgICAgICAgcmV0dXJuOworCisgICAg
bV9lbnRlckJhY2tncm91bmRUaW1lc3RhbXAgPSBzdGQ6Om51bGxvcHQ7CiAgICAgbV9kb3dubG9h
ZE1hbmFnZXIuYXBwbGljYXRpb25XaWxsRW50ZXJGb3JlZ3JvdW5kKCk7CiB9CiAKLXZvaWQgTmV0
d29ya1Byb2Nlc3M6OnByb2Nlc3NEaWRSZXN1bWUoKQordm9pZCBOZXR3b3JrUHJvY2Vzczo6cHJv
Y2Vzc0RpZFJlc3VtZShib29sIGZvckZvcmVncm91bmRBY3Rpdml0eSkKIHsKLSAgICBSRUxFQVNF
X0xPRyhQcm9jZXNzU3VzcGVuc2lvbiwgIiVwIC0gTmV0d29ya1Byb2Nlc3M6OnByb2Nlc3NEaWRS
ZXN1bWUoKSIsIHRoaXMpOworICAgIFJFTEVBU0VfTE9HKFByb2Nlc3NTdXNwZW5zaW9uLCAiJXAg
LSBOZXR3b3JrUHJvY2Vzczo6cHJvY2Vzc0RpZFJlc3VtZSgpIGZvckZvcmVncm91bmRBY3Rpdml0
eT0lZCIsIHRoaXMsIGZvckZvcmVncm91bmRBY3Rpdml0eSk7CisgICAgaWYgKG1fZW50ZXJCYWNr
Z3JvdW5kVGltZXN0YW1wKSB7CisgICAgICAgIGF1dG8gaW50ZXJ2YWwgPSBXYWxsVGltZTo6bm93
KCkgLSBtX2VudGVyQmFja2dyb3VuZFRpbWVzdGFtcC52YWx1ZSgpOworICAgICAgICBSRUxFQVNF
X0xPR19FUlJPUihQcm9jZXNzU3VzcGVuc2lvbiwgIiVwIC0gTmV0d29ya1Byb2Nlc3M6OnByb2Nl
c3NEaWRSZXN1bWUoKSBQcm9jZXNzIGlzIGluIGJhY2tncm91bmQgZm9yICVmIG1zIiwgdGhpcywg
aW50ZXJ2YWwudmFsdWUoKSk7CisgICAgfQogCiAgICAgbV9pc1N1c3BlbmRlZCA9IGZhbHNlOwog
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNz
LmggYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLmgKaW5kZXgg
MDYzOTY1YTE2YTk0MTRjYzg0NzU3MmEyMWRiMjQxOGI0N2JlYTE4Zi4uMDM4MDRjYTNiMjBlZmUy
NTE3MjY4NzA4OTZiMDg0MTQ0OThkNWRiMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3
b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5oCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1By
b2Nlc3MvTmV0d29ya1Byb2Nlc3MuaApAQCAtMTc0LDcgKzE3NCw3IEBAIHB1YmxpYzoKIAogICAg
IHZvaWQgcHJvY2Vzc1dpbGxTdXNwZW5kSW1taW5lbnRseUZvclRlc3RpbmdTeW5jKENvbXBsZXRp
b25IYW5kbGVyPHZvaWQoKT4mJik7CiAgICAgdm9pZCBwcmVwYXJlVG9TdXNwZW5kKGJvb2wgaXNT
dXNwZW5zaW9uSW1taW5lbnQsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJik7Ci0gICAgdm9p
ZCBwcm9jZXNzRGlkUmVzdW1lKCk7CisgICAgdm9pZCBwcm9jZXNzRGlkUmVzdW1lKGJvb2wgZm9y
Rm9yZWdyb3VuZEFjdGl2aXR5KTsKIAogICAgIENhY2hlTW9kZWwgY2FjaGVNb2RlbCgpIGNvbnN0
IHsgcmV0dXJuIG1fY2FjaGVNb2RlbDsgfQogCkBAIC01MjQsNiArNTI0LDcgQEAgcHJpdmF0ZToK
ICAgICBib29sIG1fcHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRFbmFibGVkIHsgdHJ1ZSB9OwogICAg
IGJvb2wgbV9mdHBFbmFibGVkIHsgZmFsc2UgfTsKICAgICBib29sIG1faXNTdXNwZW5kZWQgeyBm
YWxzZSB9OworICAgIHN0ZDo6b3B0aW9uYWw8V2FsbFRpbWU+IG1fZW50ZXJCYWNrZ3JvdW5kVGlt
ZXN0YW1wOwogfTsKIAogI2lmICFQTEFURk9STShDT0NPQSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MubWVzc2FnZXMuaW4gYi9Tb3VyY2Uv
V2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLm1lc3NhZ2VzLmluCmluZGV4IDFj
ZjMyZWFkNjBiYjM0ZmEyMmVmNGRkMzllOTg1NjA4ZjdlNjZiMjQuLjliZGVkYTQ4OTc3MmYyNTcy
MWE1ZWJjNjVjOGQyZjRkZDFiNGVkNTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29y
a1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MubWVzc2FnZXMuaW4KKysrIGIvU291cmNlL1dlYktpdC9O
ZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5tZXNzYWdlcy5pbgpAQCAtNzUsNyArNzUsNyBA
QCBtZXNzYWdlcyAtPiBOZXR3b3JrUHJvY2VzcyBMZWdhY3lSZWNlaXZlciB7CiAKICAgICBQcm9j
ZXNzV2lsbFN1c3BlbmRJbW1pbmVudGx5Rm9yVGVzdGluZ1N5bmMoKSAtPiAoKSBTeW5jaHJvbm91
cwogICAgIFByZXBhcmVUb1N1c3BlbmQoYm9vbCBpc1N1c3BlbnNpb25JbW1pbmVudCkgLT4gKCkK
LSAgICBQcm9jZXNzRGlkUmVzdW1lKCkKKyAgICBQcm9jZXNzRGlkUmVzdW1lKGJvb2wgZm9yRm9y
ZWdyb3VuZEFjdGl2aXR5KQogCiAgICAgUHJlY29ubmVjdFRvKFBBTDo6U2Vzc2lvbklEIHNlc3Np
b25JRCwgV2ViS2l0OjpXZWJQYWdlUHJveHlJZGVudGlmaWVyIHdlYlBhZ2VQcm94eUlELCBXZWJD
b3JlOjpQYWdlSWRlbnRpZmllciB3ZWJQYWdlSUQsIFVSTCB1cmwsIFN0cmluZyB1c2VyQWdlbnQs
IGVudW06dWludDhfdCBXZWJDb3JlOjpTdG9yZWRDcmVkZW50aWFsc1BvbGljeSBzdG9yZWRDcmVk
ZW50aWFsc1BvbGljeSwgZW51bTpib29sIHN0ZDo6b3B0aW9uYWw8V2ViS2l0OjpOYXZpZ2F0aW5n
VG9BcHBCb3VuZERvbWFpbj4gaXNOYXZpZ2F0aW5nVG9BcHBCb3VuZERvbWFpbiwgZW51bTpib29s
IFdlYktpdDo6TGFzdE5hdmlnYXRpb25XYXNBcHBJbml0aWF0ZWQgbGFzdE5hdmlnYXRpb25XYXNB
cHBJbml0aWF0ZWQpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkv
Q29jb2EvV0tXZWJWaWV3VGVzdGluZy5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9D
b2NvYS9XS1dlYlZpZXdUZXN0aW5nLm1tCmluZGV4IGMwY2Y5NzhjOTY2MmVhODI3NjdjYTRjY2Fl
OTViNjRmZmNjNjk2NzkuLmE1MjQzNTRmZDQ1NWViYTU5Y2E5ZjE3NTlhYjI3ZjU1ZDYxMGUzNjAg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXdU
ZXN0aW5nLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZp
ZXdUZXN0aW5nLm1tCkBAIC0yMTMsNyArMjEzLDcgQEAKIC0gKHZvaWQpX3Byb2Nlc3NEaWRSZXN1
bWVGb3JUZXN0aW5nCiB7CiAgICAgaWYgKF9wYWdlKQotICAgICAgICBfcGFnZS0+cHJvY2Vzcygp
LnNlbmRQcm9jZXNzRGlkUmVzdW1lKCk7CisgICAgICAgIF9wYWdlLT5wcm9jZXNzKCkuc2VuZFBy
b2Nlc3NEaWRSZXN1bWUodHJ1ZSk7CiB9CiAKIC0gKHZvaWQpX3NldEFzc2VydGlvblR5cGVGb3JU
ZXN0aW5nOihpbnQpdmFsdWUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0dQ
VS9HUFVQcm9jZXNzUHJveHkuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvR1BVL0dQVVBy
b2Nlc3NQcm94eS5jcHAKaW5kZXggNGFmMjc2MDI3OTEzNTUyMWVjMTNhYjhjMzIxNzFkZmQzMWY4
Y2ZiNC4uM2Q4ZGI3Mjc2NDYxYjkwMjY1NzhkODcwMTEyYmI1NjMxOWQxZmE1YyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvR1BVL0dQVVByb2Nlc3NQcm94eS5jcHAKKysrIGIv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvR1BVL0dQVVByb2Nlc3NQcm94eS5jcHAKQEAgLTU3NSw3
ICs1NzUsNyBAQCB2b2lkIEdQVVByb2Nlc3NQcm94eTo6c2VuZFByZXBhcmVUb1N1c3BlbmQoSXNT
dXNwZW5zaW9uSW1taW5lbnQgaXNTdXNwZW5zaW9uSW1taQogICAgIHNlbmRXaXRoQXN5bmNSZXBs
eShNZXNzYWdlczo6R1BVUHJvY2Vzczo6UHJlcGFyZVRvU3VzcGVuZChpc1N1c3BlbnNpb25JbW1p
bmVudCA9PSBJc1N1c3BlbnNpb25JbW1pbmVudDo6WWVzKSwgV1RGTW92ZShjb21wbGV0aW9uSGFu
ZGxlciksIDAsIHsgfSwgU2hvdWxkU3RhcnRQcm9jZXNzVGhyb3R0bGVyQWN0aXZpdHk6Ok5vKTsK
IH0KIAotdm9pZCBHUFVQcm9jZXNzUHJveHk6OnNlbmRQcm9jZXNzRGlkUmVzdW1lKCkKK3ZvaWQg
R1BVUHJvY2Vzc1Byb3h5OjpzZW5kUHJvY2Vzc0RpZFJlc3VtZShib29sKQogewogICAgIGlmIChj
YW5TZW5kTWVzc2FnZSgpKQogICAgICAgICBzZW5kKE1lc3NhZ2VzOjpHUFVQcm9jZXNzOjpQcm9j
ZXNzRGlkUmVzdW1lKCksIDApOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
R1BVL0dQVVByb2Nlc3NQcm94eS5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvR1BVL0dQVVBy
b2Nlc3NQcm94eS5oCmluZGV4IDQ0M2U5YjdhNDY2YWZlNTFlODg0YjRmOTQzOGM0Y2M2NWQ3M2I4
ZGMuLjE3YWNhZTJkZjAyYWE3YzBmZjhhOGFiYTYwNTA3Y2QwNjBhZjM5OWIgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0dQVS9HUFVQcm9jZXNzUHJveHkuaAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9HUFUvR1BVUHJvY2Vzc1Byb3h5LmgKQEAgLTEyNyw3ICsxMjcs
NyBAQCBwcml2YXRlOgogICAgIC8vIFByb2Nlc3NUaHJvdHRsZXJDbGllbnQKICAgICBBU0NJSUxp
dGVyYWwgY2xpZW50TmFtZSgpIGNvbnN0IGZpbmFsIHsgcmV0dXJuICJHUFVQcm9jZXNzIl9zOyB9
CiAgICAgdm9pZCBzZW5kUHJlcGFyZVRvU3VzcGVuZChJc1N1c3BlbnNpb25JbW1pbmVudCwgQ29t
cGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmKSBmaW5hbDsKLSAgICB2b2lkIHNlbmRQcm9jZXNzRGlk
UmVzdW1lKCkgZmluYWw7CisgICAgdm9pZCBzZW5kUHJvY2Vzc0RpZFJlc3VtZShib29sKSBmaW5h
bDsKIAogICAgIC8vIFByb2Nlc3NMYXVuY2hlcjo6Q2xpZW50CiAgICAgdm9pZCBkaWRGaW5pc2hM
YXVuY2hpbmcoUHJvY2Vzc0xhdW5jaGVyKiwgSVBDOjpDb25uZWN0aW9uOjpJZGVudGlmaWVyKSBv
dmVycmlkZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL05ldHdvcmsvTmV0
d29ya1Byb2Nlc3NQcm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9OZXR3b3JrL05l
dHdvcmtQcm9jZXNzUHJveHkuY3BwCmluZGV4IGUxOWI4YjI0ZWY5Y2IyYWJlMWZhODcwNmVlN2Nl
YTEyNTFlYzMwMDYuLjkxMGRhMTM4ZGVkYjI4ZDdhNDNiNWFhNGNjZWY2MjJiNGE0Zjc5N2QgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nlc3NQ
cm94eS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvTmV0d29yay9OZXR3b3JrUHJv
Y2Vzc1Byb3h5LmNwcApAQCAtMTM5OSwxMCArMTM5OSwxMCBAQCB2b2lkIE5ldHdvcmtQcm9jZXNz
UHJveHk6OnNlbmRQcmVwYXJlVG9TdXNwZW5kKElzU3VzcGVuc2lvbkltbWluZW50IGlzU3VzcGVu
c2lvbgogICAgIHNlbmRXaXRoQXN5bmNSZXBseShNZXNzYWdlczo6TmV0d29ya1Byb2Nlc3M6OlBy
ZXBhcmVUb1N1c3BlbmQoaXNTdXNwZW5zaW9uSW1taW5lbnQgPT0gSXNTdXNwZW5zaW9uSW1taW5l
bnQ6OlllcyksIFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpLCAwLCB7IH0sIFNob3VsZFN0YXJ0
UHJvY2Vzc1Rocm90dGxlckFjdGl2aXR5OjpObyk7CiB9CiAKLXZvaWQgTmV0d29ya1Byb2Nlc3NQ
cm94eTo6c2VuZFByb2Nlc3NEaWRSZXN1bWUoKQordm9pZCBOZXR3b3JrUHJvY2Vzc1Byb3h5Ojpz
ZW5kUHJvY2Vzc0RpZFJlc3VtZShib29sIGZvckZvcmVncm91bmRBY3Rpdml0eSkKIHsKICAgICBp
ZiAoY2FuU2VuZE1lc3NhZ2UoKSkKLSAgICAgICAgc2VuZChNZXNzYWdlczo6TmV0d29ya1Byb2Nl
c3M6OlByb2Nlc3NEaWRSZXN1bWUoKSwgMCk7CisgICAgICAgIHNlbmQoTWVzc2FnZXM6Ok5ldHdv
cmtQcm9jZXNzOjpQcm9jZXNzRGlkUmVzdW1lKGZvckZvcmVncm91bmRBY3Rpdml0eSksIDApOwog
fQogCiB2b2lkIE5ldHdvcmtQcm9jZXNzUHJveHk6OmZsdXNoQ29va2llcyhQQUw6OlNlc3Npb25J
RCBzZXNzaW9uSUQsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJiBjb21wbGV0aW9uSGFuZGxl
cikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL05ldHdvcmsvTmV0d29ya1By
b2Nlc3NQcm94eS5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvTmV0d29yay9OZXR3b3JrUHJv
Y2Vzc1Byb3h5LmgKaW5kZXggMTA1ZDY2MTI5ZGQyY2NmNmE1NTFmZGZiYmM1MmQ2MjhhNGQwYWUy
Mi4uMzBjYzRiZjg4ZWUwZDIyM2Q1NjhmY2VlY2NlYTYzOTFiMzk0M2M4MyAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvTmV0d29yay9OZXR3b3JrUHJvY2Vzc1Byb3h5LmgKKysr
IGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvTmV0d29yay9OZXR3b3JrUHJvY2Vzc1Byb3h5LmgK
QEAgLTIzNiw3ICsyMzYsNyBAQCBwdWJsaWM6CiAgICAgdm9pZCBjcmVhdGVTeW1MaW5rRm9yRmls
ZVVwZ3JhZGUoY29uc3QgU3RyaW5nJiBpbmRleGVkRGF0YWJhc2VEaXJlY3RvcnkpOwogCiAgICAg
Ly8gUHJvY2Vzc1Rocm90dGxlckNsaWVudAotICAgIHZvaWQgc2VuZFByb2Nlc3NEaWRSZXN1bWUo
KSBmaW5hbDsKKyAgICB2b2lkIHNlbmRQcm9jZXNzRGlkUmVzdW1lKGJvb2wgZm9yRm9yZWdyb3Vu
ZEFjdGl2aXR5KSBmaW5hbDsKICAgICBBU0NJSUxpdGVyYWwgY2xpZW50TmFtZSgpIGNvbnN0IGZp
bmFsIHsgcmV0dXJuICJOZXR3b3JrUHJvY2VzcyJfczsgfQogICAgIAogICAgIHN0YXRpYyB2b2lk
IHNldFN1c3BlbnNpb25BbGxvd2VkRm9yVGVzdGluZyhib29sKTsKQEAgLTMwMSw2ICszMDEsMTEg
QEAgcHVibGljOgogCiAgICAgdm9pZCB0ZXJtaW5hdGVSZW1vdGVXb3JrZXJDb250ZXh0Q29ubmVj
dGlvbldoZW5Qb3NzaWJsZShSZW1vdGVXb3JrZXJUeXBlLCBQQUw6OlNlc3Npb25JRCwgY29uc3Qg
V2ViQ29yZTo6UmVnaXN0cmFibGVEb21haW4mLCBXZWJDb3JlOjpQcm9jZXNzSWRlbnRpZmllcik7
CiAKKyNpZiBQTEFURk9STShJT1NfRkFNSUxZKQorICAgIHZvaWQgYXBwbGljYXRpb25XaWxsRW50
ZXJGb3JlZ3JvdW5kKCk7CisgICAgdm9pZCBhcHBsaWNhdGlvbkRpZEVudGVyQmFja2dyb3VuZCgp
OworI2VuZGlmCisKIHByaXZhdGU6CiAgICAgZXhwbGljaXQgTmV0d29ya1Byb2Nlc3NQcm94eSgp
OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQ
cm9jZXNzUHJveHlDb2NvYS5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL05ldHdvcmsvTmV0
d29ya1Byb2Nlc3NQcm94eUNvY29hLm1tCmluZGV4IGI2NGI1MDIwNjFiNDg5YzM3OTU1YzI5NTA3
NTMyN2RiYjAxNjRlMmEuLjk0MWFkMWRjMDQyMzAyNTc4MTdiOGRkYTFhNGRlMjQ3MzI2ODg4NDUg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nl
c3NQcm94eUNvY29hLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL05ldHdvcmsvTmV0
d29ya1Byb2Nlc3NQcm94eUNvY29hLm1tCkBAIC0yNyw2ICsyNyw3IEBACiAjaW1wb3J0ICJOZXR3
b3JrUHJvY2Vzc1Byb3h5LmgiCiAKICNpbXBvcnQgIkxhdW5jaFNlcnZpY2VzRGF0YWJhc2VYUEND
b25zdGFudHMuaCIKKyNpbXBvcnQgIk5ldHdvcmtQcm9jZXNzTWVzc2FnZXMuaCIKICNpbXBvcnQg
IldlYlByb2Nlc3NQb29sLmgiCiAjaW1wb3J0ICJYUENFbmRwb2ludC5oIgogCkBAIC04NSw0ICs4
NiwxOCBAQCBib29sIE5ldHdvcmtQcm9jZXNzUHJveHk6OnNlbmRYUENFbmRwb2ludFRvUHJvY2Vz
cyhBdXhpbGlhcnlQcm9jZXNzUHJveHkmIHByb2NlcwogICAgIHJldHVybiB0cnVlOwogfQogCisj
aWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKKwordm9pZCBOZXR3b3JrUHJvY2Vzc1Byb3h5OjphcHBs
aWNhdGlvbldpbGxFbnRlckZvcmVncm91bmQoKQoreworICAgIHNlbmQoTWVzc2FnZXM6Ok5ldHdv
cmtQcm9jZXNzOjpBcHBsaWNhdGlvbldpbGxFbnRlckZvcmVncm91bmQoKSwgMCk7Cit9CisKK3Zv
aWQgTmV0d29ya1Byb2Nlc3NQcm94eTo6YXBwbGljYXRpb25EaWRFbnRlckJhY2tncm91bmQoKQor
eworICAgIHNlbmQoTWVzc2FnZXM6Ok5ldHdvcmtQcm9jZXNzOjpBcHBsaWNhdGlvbkRpZEVudGVy
QmFja2dyb3VuZCgpLCAwKTsKK30KKworI2VuZGlmCisKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL1Byb2Nlc3NUaHJvdHRsZXIuY3BwIGIvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvUHJvY2Vzc1Rocm90dGxlci5jcHAKaW5kZXggYjY5YjY0OTZmYWM4MDJhYjQzZWZiZjgy
N2ZkZDMyYTliMGZkMTVhYi4uZDY2OTZkOGMwODIyNmYyODQwMDFjMTA4Y2IzY2RhMzhjMjU5NmIz
OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvUHJvY2Vzc1Rocm90dGxlci5j
cHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvUHJvY2Vzc1Rocm90dGxlci5jcHAKQEAg
LTE1OSw3ICsxNTksNyBAQCB2b2lkIFByb2Nlc3NUaHJvdHRsZXI6OnVwZGF0ZUFzc2VydGlvbklm
TmVlZGVkKCkKICAgICAgICAgICAgICAgICBQUk9DRVNTVEhST1RUTEVSX1JFTEVBU0VfTE9HKCJ1
cGRhdGVBc3NlcnRpb25JZk5lZWRlZDogc2VuZGluZyBQcm9jZXNzRGlkUmVzdW1lIElQQyBiZWNh
dXNlIHRoZSBwcm9jZXNzIHdhcyBzdXNwZW5kZWQiKTsKICAgICAgICAgICAgIGVsc2UKICAgICAg
ICAgICAgICAgICBQUk9DRVNTVEhST1RUTEVSX1JFTEVBU0VfTE9HKCJ1cGRhdGVBc3NlcnRpb25J
Zk5lZWRlZDogc2VuZGluZyBQcm9jZXNzRGlkUmVzdW1lIElQQyBiZWNhdXNlIHRoZSBXZWJQcm9j
ZXNzIGlzIHN0aWxsIHByb2Nlc3NpbmcgcmVxdWVzdCB0byBzdXNwZW5kPSUiIFBSSXU2NCwgKm1f
cGVuZGluZ1JlcXVlc3RUb1N1c3BlbmRJRCk7Ci0gICAgICAgICAgICBtX3Byb2Nlc3Muc2VuZFBy
b2Nlc3NEaWRSZXN1bWUoKTsKKyAgICAgICAgICAgIG1fcHJvY2Vzcy5zZW5kUHJvY2Vzc0RpZFJl
c3VtZShleHBlY3RlZEFzc2VydGlvblR5cGUoKSA9PSBQcm9jZXNzQXNzZXJ0aW9uVHlwZTo6Rm9y
ZWdyb3VuZCk7CiAgICAgICAgICAgICBjbGVhclBlbmRpbmdSZXF1ZXN0VG9TdXNwZW5kKCk7CiAg
ICAgICAgIH0KICAgICB9IGVsc2UgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvUHJvY2Vzc1Rocm90dGxlckNsaWVudC5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvUHJv
Y2Vzc1Rocm90dGxlckNsaWVudC5oCmluZGV4IDExOGJmMGRkMjM1ODIyNGMyZWM3ZGY5Yjk2NTFl
OWYxMzc4ZTZlMDAuLjA0ZDMxYTAxOTg0M2MyNDI4NDM3YTFhZWMzYzEzN2JkMTNhOTE2NTQgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1Byb2Nlc3NUaHJvdHRsZXJDbGllbnQu
aAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Qcm9jZXNzVGhyb3R0bGVyQ2xpZW50LmgK
QEAgLTM3LDcgKzM3LDcgQEAgcHVibGljOgogICAgIHZpcnR1YWwgflByb2Nlc3NUaHJvdHRsZXJD
bGllbnQoKSB7IH0KIAogICAgIHZpcnR1YWwgdm9pZCBzZW5kUHJlcGFyZVRvU3VzcGVuZChJc1N1
c3BlbnNpb25JbW1pbmVudCwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmKSA9IDA7Ci0gICAg
dmlydHVhbCB2b2lkIHNlbmRQcm9jZXNzRGlkUmVzdW1lKCkgPSAwOworICAgIHZpcnR1YWwgdm9p
ZCBzZW5kUHJvY2Vzc0RpZFJlc3VtZShib29sIGZvckZvcmVncm91bmRBY3Rpdml0eSkgPSAwOwog
ICAgIHZpcnR1YWwgdm9pZCBkaWRTZXRBc3NlcnRpb25UeXBlKFByb2Nlc3NBc3NlcnRpb25UeXBl
KSB7IH07CiAgICAgdmlydHVhbCBBU0NJSUxpdGVyYWwgY2xpZW50TmFtZSgpIGNvbnN0ID0gMDsK
IH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJBdXRoZW50aWNhdGlv
bi9XZWJBdXRoblByb2Nlc3NQcm94eS5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViQXV0
aGVudGljYXRpb24vV2ViQXV0aG5Qcm9jZXNzUHJveHkuaAppbmRleCBjNWIxNjcxYjFhYTA2MzRk
MTMyYjlhNmVmODlhZTgzZWNmYjAzYjNlLi4wYjYwNTE3OGIzNjBkYjY1YWViNTUzNDFkYzJhMTg0
ZWQ3MjA3NzE3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJBdXRoZW50
aWNhdGlvbi9XZWJBdXRoblByb2Nlc3NQcm94eS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL1dlYkF1dGhlbnRpY2F0aW9uL1dlYkF1dGhuUHJvY2Vzc1Byb3h5LmgKQEAgLTU1LDcgKzU1
LDcgQEAgcHVibGljOgogICAgIHZvaWQgdXBkYXRlUHJvY2Vzc0Fzc2VydGlvbigpOwogCiAgICAg
Ly8gUHJvY2Vzc1Rocm90dGxlckNsaWVudAotICAgIHZvaWQgc2VuZFByb2Nlc3NEaWRSZXN1bWUo
KSBmaW5hbCB7IH0KKyAgICB2b2lkIHNlbmRQcm9jZXNzRGlkUmVzdW1lKGJvb2wpIGZpbmFsIHsg
fQogICAgIEFTQ0lJTGl0ZXJhbCBjbGllbnROYW1lKCkgY29uc3QgZmluYWwgeyByZXR1cm4gIldl
YkF1dGhuUHJvY2VzcyJfczsgfQogCiBwcml2YXRlOgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L1dlYlByb2Nlc3NQcm94eS5jcHAKaW5kZXggMmYxZTY5MzZiZTYxNDU4MTJkNDc3ZmFiYTdkYzJh
ODAzNzg0ZTdhZi4uYzI0NTQ4ZTI4ZWNmODliNWMyYWM2MzgxMGIwY2Q4YWNhNDNiMjRmOCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5LmNwcAorKysg
Yi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkuY3BwCkBAIC0xNDM1LDcg
KzE0MzUsNyBAQCB2b2lkIFdlYlByb2Nlc3NQcm94eTo6c2VuZFByZXBhcmVUb1N1c3BlbmQoSXNT
dXNwZW5zaW9uSW1taW5lbnQgaXNTdXNwZW5zaW9uSW1taQogICAgIHNlbmRXaXRoQXN5bmNSZXBs
eShNZXNzYWdlczo6V2ViUHJvY2Vzczo6UHJlcGFyZVRvU3VzcGVuZChpc1N1c3BlbnNpb25JbW1p
bmVudCA9PSBJc1N1c3BlbnNpb25JbW1pbmVudDo6WWVzKSwgV1RGTW92ZShjb21wbGV0aW9uSGFu
ZGxlciksIDAsIHsgfSwgU2hvdWxkU3RhcnRQcm9jZXNzVGhyb3R0bGVyQWN0aXZpdHk6Ok5vKTsK
IH0KIAotdm9pZCBXZWJQcm9jZXNzUHJveHk6OnNlbmRQcm9jZXNzRGlkUmVzdW1lKCkKK3ZvaWQg
V2ViUHJvY2Vzc1Byb3h5OjpzZW5kUHJvY2Vzc0RpZFJlc3VtZShib29sKQogewogICAgIFdFQlBS
T0NFU1NQUk9YWV9SRUxFQVNFX0xPRyhQcm9jZXNzU3VzcGVuc2lvbiwgInNlbmRQcm9jZXNzRGlk
UmVzdW1lOiIpOwogICAgIGlmIChjYW5TZW5kTWVzc2FnZSgpKQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5LmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9XZWJQcm9jZXNzUHJveHkuaAppbmRleCBiZmM3OTU2YzAyZWU1YWNlMmQ1NTczNDNjNTA3
NTM3YTg1Y2ZkNGZjLi4wMmMxYzhiM2NjZDczNWI3MDJmMThjNmU1NzUxYmE5ODM1M2NlZTE4IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkuaAorKysg
Yi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkuaApAQCAtMzI3LDcgKzMy
Nyw3IEBAIHB1YmxpYzoKIAogICAgIC8vIFByb2Nlc3NUaHJvdHRsZXJDbGllbnQKICAgICB2b2lk
IHNlbmRQcmVwYXJlVG9TdXNwZW5kKElzU3VzcGVuc2lvbkltbWluZW50LCBDb21wbGV0aW9uSGFu
ZGxlcjx2b2lkKCk+JiYpIGZpbmFsOwotICAgIHZvaWQgc2VuZFByb2Nlc3NEaWRSZXN1bWUoKSBm
aW5hbDsKKyAgICB2b2lkIHNlbmRQcm9jZXNzRGlkUmVzdW1lKGJvb2wpIGZpbmFsOwogICAgIHZv
aWQgZGlkU2V0QXNzZXJ0aW9uVHlwZShQcm9jZXNzQXNzZXJ0aW9uVHlwZSkgZmluYWw7CiAgICAg
QVNDSUlMaXRlcmFsIGNsaWVudE5hbWUoKSBjb25zdCBmaW5hbCB7IHJldHVybiAiV2ViUHJvY2Vz
cyJfczsgfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJzaXRlRGF0
YS9XZWJzaXRlRGF0YVN0b3JlLmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYnNpdGVE
YXRhL1dlYnNpdGVEYXRhU3RvcmUuY3BwCmluZGV4IDUwYzkzNTJiNjY5YzU4NjljNzc0OGMzOTli
YTIxYzhiN2Q1OTBhMTMuLjFjYjkzMmZjMzc3YTc3Y2Q4MWJjMmY1OWY2M2I3MGI1MGVhYzQyNDYg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYnNpdGVEYXRhL1dlYnNpdGVE
YXRhU3RvcmUuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYnNpdGVEYXRhL1dl
YnNpdGVEYXRhU3RvcmUuY3BwCkBAIC0xNTc1LDcgKzE1NzUsNyBAQCB2b2lkIFdlYnNpdGVEYXRh
U3RvcmU6OnNlbmROZXR3b3JrUHJvY2Vzc1dpbGxTdXNwZW5kSW1taW5lbnRseUZvclRlc3Rpbmco
KQogCiB2b2lkIFdlYnNpdGVEYXRhU3RvcmU6OnNlbmROZXR3b3JrUHJvY2Vzc0RpZFJlc3VtZSgp
CiB7Ci0gICAgbmV0d29ya1Byb2Nlc3MoKS5zZW5kUHJvY2Vzc0RpZFJlc3VtZSgpOworICAgIG5l
dHdvcmtQcm9jZXNzKCkuc2VuZFByb2Nlc3NEaWRSZXN1bWUodHJ1ZSk7CiB9CiAKIGJvb2wgV2Vi
c2l0ZURhdGFTdG9yZTo6cmVzb3VyY2VMb2FkU3RhdGlzdGljc0VuYWJsZWQoKSBjb25zdApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1Byb2Nlc3NBc3NlcnRpb25JT1Mu
bW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvUHJvY2Vzc0Fzc2VydGlvbklPUy5tbQpp
bmRleCBmZDg3ODliODY4ZDIxMTRiNmI3MDM5YTYzMGY3ZjFkYmY4MGQxNWI5Li4zNWFkMTIwZmFl
YjBiZDNiODRiZjBkMzliMGFmZTNkMTkwMTRhNDMxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9pb3MvUHJvY2Vzc0Fzc2VydGlvbklPUy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9pb3MvUHJvY2Vzc0Fzc2VydGlvbklPUy5tbQpAQCAtMzEsNiArMzEsNyBAQAog
I2ltcG9ydCAiTG9nZ2luZy5oIgogI2ltcG9ydCAiUnVubmluZ0JvYXJkU2VydmljZXNTUEkuaCIK
ICNpbXBvcnQgIldlYlByb2Nlc3NQb29sLmgiCisjaW1wb3J0ICJXZWJzaXRlRGF0YVN0b3JlLmgi
CiAjaW1wb3J0IDxVSUtpdC9VSUFwcGxpY2F0aW9uLmg+CiAjaW1wb3J0IDx3dGYvSGFzaE1hcC5o
PgogI2ltcG9ydCA8d3RmL1J1bkxvb3AuaD4KQEAgLTkyLDExICs5MywyMSBAQCBzdGF0aWMgYm9v
bCBwcm9jZXNzSGFzQWN0aXZlUnVuVGltZUxpbWl0YXRpb24oKQogICAgIFtbTlNOb3RpZmljYXRp
b25DZW50ZXIgZGVmYXVsdENlbnRlcl0gYWRkT2JzZXJ2ZXJGb3JOYW1lOlVJQXBwbGljYXRpb25X
aWxsRW50ZXJGb3JlZ3JvdW5kTm90aWZpY2F0aW9uIG9iamVjdDpbVUlBcHBsaWNhdGlvbiBzaGFy
ZWRBcHBsaWNhdGlvbl0gcXVldWU6bmlsIHVzaW5nQmxvY2s6XihOU05vdGlmaWNhdGlvbiAqKSB7
CiAgICAgICAgIFtzZWxmIF9jYW5jZWxQZW5kaW5nUmVsZWFzZVRhc2tdOwogICAgICAgICBbc2Vs
ZiBfdXBkYXRlQmFja2dyb3VuZFRhc2tdOworCisgICAgICAgIFdlYktpdDo6V2Vic2l0ZURhdGFT
dG9yZTo6Zm9yRWFjaFdlYnNpdGVEYXRhU3RvcmUoW10gKFdlYktpdDo6V2Vic2l0ZURhdGFTdG9y
ZSYgZGF0YVN0b3JlKSB7CisgICAgICAgICAgICBpZiAoYXV0byogbmV0d29ya1Byb2Nlc3MgPSBk
YXRhU3RvcmUubmV0d29ya1Byb2Nlc3NJZkV4aXN0cygpKQorICAgICAgICAgICAgICAgIG5ldHdv
cmtQcm9jZXNzLT5hcHBsaWNhdGlvbldpbGxFbnRlckZvcmVncm91bmQoKTsKKyAgICAgICAgfSk7
CiAgICAgfV07CiAKICAgICBbW05TTm90aWZpY2F0aW9uQ2VudGVyIGRlZmF1bHRDZW50ZXJdIGFk
ZE9ic2VydmVyRm9yTmFtZTpVSUFwcGxpY2F0aW9uRGlkRW50ZXJCYWNrZ3JvdW5kTm90aWZpY2F0
aW9uIG9iamVjdDpbVUlBcHBsaWNhdGlvbiBzaGFyZWRBcHBsaWNhdGlvbl0gcXVldWU6bmlsIHVz
aW5nQmxvY2s6XihOU05vdGlmaWNhdGlvbiAqKSB7CiAgICAgICAgIGlmICghW3NlbGYgX2hhc0Jh
Y2tncm91bmRUYXNrXSkKICAgICAgICAgICAgIFdlYktpdDo6V2ViUHJvY2Vzc1Bvb2w6Om5vdGlm
eVByb2Nlc3NQb29sc0FwcGxpY2F0aW9uSXNBYm91dFRvU3VzcGVuZCgpOworCisgICAgICAgIFdl
YktpdDo6V2Vic2l0ZURhdGFTdG9yZTo6Zm9yRWFjaFdlYnNpdGVEYXRhU3RvcmUoW10gKFdlYktp
dDo6V2Vic2l0ZURhdGFTdG9yZSYgZGF0YVN0b3JlKSB7CisgICAgICAgICAgICBpZiAoYXV0byog
bmV0d29ya1Byb2Nlc3MgPSBkYXRhU3RvcmUubmV0d29ya1Byb2Nlc3NJZkV4aXN0cygpKQorICAg
ICAgICAgICAgICAgIG5ldHdvcmtQcm9jZXNzLT5hcHBsaWNhdGlvbkRpZEVudGVyQmFja2dyb3Vu
ZCgpOworICAgICAgICB9KTsKICAgICB9XTsKIAogICAgIHJldHVybiBzZWxmOwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>455261</attachid>
            <date>2022-03-21 12:05:50 -0700</date>
            <delta_ts>2022-03-21 12:06:38 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-238082-20220321120549.patch</filename>
            <type>text/plain</type>
            <size>17263</size>
            <attacher name="Sihui Liu">sihui_liu</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjkxNTU5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IGEzMjE1YjQ0Mzc5N2M3NjNm
MDM1MjU5MThmZTFhNWUzZWViNGJlN2YuLmY3NTc3YzUxZWIwOTE5OGM3NmU2NmVjODlhMTMxNTdk
OWQ0ZmVlYmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNDMgQEAKKzIwMjItMDMtMjEgIFNpaHVpIExp
dSAgPHNpaHVpX2xpdUBhcHBsZS5jb20+CisKKyAgICAgICAgQWRkIGxvZ2dpbmcgYWJvdXQgcHJv
Y2VzcyBlbnRlcmluZyBiYWNrZ3JvdW5kIHRvIE5ldHdvcmtQcm9jZXNzOjpwcm9jZXNzRGlkUmVz
dW1lCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzgw
ODIKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBJbiBy
ZGFyOi8vODI0MTI3MzMsIHdlIGZvdW5kIG5ldHdvcmsgcHJvY2VzcyBjYW4gYmUgc3VzcGVuZGVk
IHJpZ2h0IGFmdGVyIGl0IHJlY2VpdmVzIHByb2Nlc3NEaWRSZXN1bWUgbWVzc2FnZS4gCisgICAg
ICAgIEZvciBuZXR3b3JrIHBvcmNlc3MsIHByb2Nlc3NEaWRSZXN1bWUgbWVhbnMgcHJvY2VzcyBp
cyBub3Qgc3VzcGVuZGVkIGFuZCBpdCBpcyBzYWZlIHRvIHBlcmZvcm0gZGF0YWJhc2UgCisgICAg
ICAgIG9wZXJhdGlvbnMuIExldCdzIGFkZCBsb2dnaW5nIHRvIGNoZWNrIHdoZW4gYW5kIHdoeSBw
cm9jZXNzRGlkUmVzdW1lIG1lc3NhZ2UgaXMgc2VudC4gSWYgdGhlIGxvZ2dpbmcgY29uZmlybXMK
KyAgICAgICAgdGhhdCBwcm9jZXNzRGlkUmVzdW1lIG1lc3NhZ2UgY2FuIGJlIHJlY2VpdmVkIHdo
ZW4gcHJvY2VzcyBpcyBjbG9zZSB0byBhc3NlcnRpb24gdGltZW91dCwgd2UgcHJvYmFibHkgd2Fu
dCB0byAKKyAgICAgICAgaWdub3JlIHN1Y2ggbWVzc2FnZSBhbmQgcmVzdW1lIGRhdGFiYXNlIG9w
ZXJhdGlvbnMgd2hlbiBhcHBsaWNhdGlvbiBhY3R1YWxseSBlbnRlcnMgZm9yZWdyb3VuZC4KKwor
ICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLmNwcDoKKyAgICAgICAgKFdl
YktpdDo6TmV0d29ya1Byb2Nlc3M6OmRpZENsb3NlKToKKyAgICAgICAgKFdlYktpdDo6TmV0d29y
a1Byb2Nlc3M6OnByZXBhcmVUb1N1c3BlbmQpOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrUHJv
Y2Vzczo6YXBwbGljYXRpb25EaWRFbnRlckJhY2tncm91bmQpOgorICAgICAgICAoV2ViS2l0OjpO
ZXR3b3JrUHJvY2Vzczo6YXBwbGljYXRpb25XaWxsRW50ZXJGb3JlZ3JvdW5kKToKKyAgICAgICAg
KFdlYktpdDo6TmV0d29ya1Byb2Nlc3M6OnByb2Nlc3NEaWRSZXN1bWUpOgorICAgICAgICAqIE5l
dHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLmg6CisgICAgICAgICogTmV0d29ya1Byb2Nlc3Mv
TmV0d29ya1Byb2Nlc3MubWVzc2FnZXMuaW46CisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvaW9z
L05ldHdvcmtQcm9jZXNzSU9TLm1tOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrUHJvY2Vzczo6
cGxhdGZvcm1Jbml0aWFsaXplTmV0d29ya1Byb2Nlc3MpOgorICAgICAgICAoV2ViS2l0OjpOZXR3
b3JrUHJvY2Vzczo6YWRkQmFja2dyb3VuZFN0YXRlT2JzZXJ2ZXJzKToKKyAgICAgICAgKFdlYktp
dDo6TmV0d29ya1Byb2Nlc3M6OnJlbW92ZUJhY2tncm91bmRTdGF0ZU9ic2VydmVycyk6CisgICAg
ICAgICogVUlQcm9jZXNzL0dQVS9HUFVQcm9jZXNzUHJveHkuY3BwOgorICAgICAgICAoV2ViS2l0
OjpHUFVQcm9jZXNzUHJveHk6OnNlbmRQcm9jZXNzRGlkUmVzdW1lKToKKyAgICAgICAgKiBVSVBy
b2Nlc3MvR1BVL0dQVVByb2Nlc3NQcm94eS5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9OZXR3b3Jr
L05ldHdvcmtQcm9jZXNzUHJveHkuY3BwOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrUHJvY2Vz
c1Byb3h5OjpzZW5kUHJvY2Vzc0RpZFJlc3VtZSk6CisgICAgICAgICogVUlQcm9jZXNzL05ldHdv
cmsvTmV0d29ya1Byb2Nlc3NQcm94eS5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9OZXR3b3JrL05l
dHdvcmtQcm9jZXNzUHJveHlDb2NvYS5tbToKKyAgICAgICAgKiBVSVByb2Nlc3MvUHJvY2Vzc1Ro
cm90dGxlci5jcHA6CisgICAgICAgIChXZWJLaXQ6OlByb2Nlc3NUaHJvdHRsZXI6OnVwZGF0ZUFz
c2VydGlvbklmTmVlZGVkKToKKyAgICAgICAgKiBVSVByb2Nlc3MvUHJvY2Vzc1Rocm90dGxlckNs
aWVudC5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJBdXRoZW50aWNhdGlvbi9XZWJBdXRoblBy
b2Nlc3NQcm94eS5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkuY3BwOgor
ICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzUHJveHk6OnNlbmRQcm9jZXNzRGlkUmVzdW1lKToK
KyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5Lmg6CisKIDIwMjItMDMtMjEgIEpv
bmF0aGFuIEJlZGFyZCAgPGpiZWRhcmRAYXBwbGUuY29tPgogCiAgICAgICAgIFVucmV2aWV3ZWQs
IHJldmVydGluZyByMjkxNTU4LgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJv
Y2Vzcy9OZXR3b3JrUHJvY2Vzcy5jcHAgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05l
dHdvcmtQcm9jZXNzLmNwcAppbmRleCBlYjJmNWJiYmRmYTZlMzFhNTkwMGNhYzdmMmEzMGI1NzZl
NTUwY2ZmLi43MjY0Mjk5ZTQ0ZjNiYWRiZmNkNDYxMGZlNWIyNjZiMzIxMzJmYTU4IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLmNwcAorKysg
Yi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLmNwcApAQCAtMjY5
LDYgKzI2OSwxMCBAQCB2b2lkIE5ldHdvcmtQcm9jZXNzOjpkaWRDbG9zZShJUEM6OkNvbm5lY3Rp
b24mKQogICAgIE5ldHdvcmtTdG9yYWdlTWFuYWdlcjo6Zm9yRWFjaChbJl0oYXV0byYgbWFuYWdl
cikgewogICAgICAgICBtYW5hZ2VyLnN5bmNMb2NhbFN0b3JhZ2UoW2NhbGxiYWNrQWdncmVnYXRv
cl0geyB9KTsKICAgICB9KTsKKworI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCisgICAgcmVtb3Zl
QmFja2dyb3VuZFN0YXRlT2JzZXJ2ZXJzKCk7CisjZW5kaWYKIH0KIAogdm9pZCBOZXR3b3JrUHJv
Y2Vzczo6ZGlkQ3JlYXRlRG93bmxvYWQoKQpAQCAtMjEyOSw3ICsyMTMzLDcgQEAgdm9pZCBOZXR3
b3JrUHJvY2Vzczo6dGVybWluYXRlUmVtb3RlV29ya2VyQ29udGV4dENvbm5lY3Rpb25XaGVuUG9z
c2libGUoUmVtb3RlV28KIAogdm9pZCBOZXR3b3JrUHJvY2Vzczo6cHJlcGFyZVRvU3VzcGVuZChi
b29sIGlzU3VzcGVuc2lvbkltbWluZW50LCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYgY29t
cGxldGlvbkhhbmRsZXIpCiB7Ci0gICAgUkVMRUFTRV9MT0coUHJvY2Vzc1N1c3BlbnNpb24sICIl
cCAtIE5ldHdvcmtQcm9jZXNzOjpwcmVwYXJlVG9TdXNwZW5kKCksIGlzU3VzcGVuc2lvbkltbWlu
ZW50PSVkIiwgdGhpcywgaXNTdXNwZW5zaW9uSW1taW5lbnQpOworICAgIFJFTEVBU0VfTE9HKFBy
b2Nlc3NTdXNwZW5zaW9uLCAiJXAgLSBOZXR3b3JrUHJvY2Vzczo6cHJlcGFyZVRvU3VzcGVuZCgp
LCBpc1N1c3BlbnNpb25JbW1pbmVudD0lZCBQcm9jZXNzIGlzICVzaW4gYmFja2dyb3VuZCIsIHRo
aXMsIGlzU3VzcGVuc2lvbkltbWluZW50LCBtX2VudGVyQmFja2dyb3VuZFRpbWVzdGFtcCA/ICIi
IDogIm5vdCAiKTsKIAogICAgIG1faXNTdXNwZW5kZWQgPSB0cnVlOwogICAgIGxvd01lbW9yeUhh
bmRsZXIoQ3JpdGljYWw6Olllcyk7CkBAIC0yMTYwLDE3ICsyMTY0LDI4IEBAIHZvaWQgTmV0d29y
a1Byb2Nlc3M6OnByZXBhcmVUb1N1c3BlbmQoYm9vbCBpc1N1c3BlbnNpb25JbW1pbmVudCwgQ29t
cGxldGlvbkhhbmRsCiAKIHZvaWQgTmV0d29ya1Byb2Nlc3M6OmFwcGxpY2F0aW9uRGlkRW50ZXJC
YWNrZ3JvdW5kKCkKIHsKKyAgICBpZiAobV9lbnRlckJhY2tncm91bmRUaW1lc3RhbXApCisgICAg
ICAgIHJldHVybjsKKworICAgIG1fZW50ZXJCYWNrZ3JvdW5kVGltZXN0YW1wID0gTW9ub3Rvbmlj
VGltZTo6bm93KCk7CiAgICAgbV9kb3dubG9hZE1hbmFnZXIuYXBwbGljYXRpb25EaWRFbnRlckJh
Y2tncm91bmQoKTsKIH0KIAogdm9pZCBOZXR3b3JrUHJvY2Vzczo6YXBwbGljYXRpb25XaWxsRW50
ZXJGb3JlZ3JvdW5kKCkKIHsKKyAgICBpZiAoIW1fZW50ZXJCYWNrZ3JvdW5kVGltZXN0YW1wKQor
ICAgICAgICByZXR1cm47CisKKyAgICBtX2VudGVyQmFja2dyb3VuZFRpbWVzdGFtcCA9IHN0ZDo6
bnVsbG9wdDsKICAgICBtX2Rvd25sb2FkTWFuYWdlci5hcHBsaWNhdGlvbldpbGxFbnRlckZvcmVn
cm91bmQoKTsKIH0KIAotdm9pZCBOZXR3b3JrUHJvY2Vzczo6cHJvY2Vzc0RpZFJlc3VtZSgpCit2
b2lkIE5ldHdvcmtQcm9jZXNzOjpwcm9jZXNzRGlkUmVzdW1lKGJvb2wgZm9yRm9yZWdyb3VuZEFj
dGl2aXR5KQogewotICAgIFJFTEVBU0VfTE9HKFByb2Nlc3NTdXNwZW5zaW9uLCAiJXAgLSBOZXR3
b3JrUHJvY2Vzczo6cHJvY2Vzc0RpZFJlc3VtZSgpIiwgdGhpcyk7CisgICAgU3RyaW5nIGJhY2tn
cm91bmRJbnRlcnZhbFN0cmluZyA9ICIiOworICAgIGlmIChtX2VudGVyQmFja2dyb3VuZFRpbWVz
dGFtcCkKKyAgICAgICAgYmFja2dyb3VuZEludGVydmFsU3RyaW5nID0gbWFrZVN0cmluZygiIFBy
b2Nlc3MgaXMgaW4gYmFja2dyb3VuZCBmb3IiLCAoTW9ub3RvbmljVGltZTo6bm93KCkgLSBtX2Vu
dGVyQmFja2dyb3VuZFRpbWVzdGFtcC52YWx1ZSgpKS52YWx1ZSgpLCAiIHNlY29uZHMiKTsKKyAg
ICBSRUxFQVNFX0xPRyhQcm9jZXNzU3VzcGVuc2lvbiwgIiVwIC0gTmV0d29ya1Byb2Nlc3M6OnBy
b2Nlc3NEaWRSZXN1bWUoKSBmb3JGb3JlZ3JvdW5kQWN0aXZpdHk9JWQlcyIsIHRoaXMsIGZvckZv
cmVncm91bmRBY3Rpdml0eSwgYmFja2dyb3VuZEludGVydmFsU3RyaW5nLnV0ZjgoKS5kYXRhKCkp
OwogCiAgICAgbV9pc1N1c3BlbmRlZCA9IGZhbHNlOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLmggYi9Tb3VyY2UvV2ViS2l0L05ldHdv
cmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLmgKaW5kZXggZjc3MDQ1ZTVhZjhlNDM3MjE2MmE1MTY3
Y2FmYzAwODRkMzA5ZTg4OS4uNjlhNzgxMzBhY2QyODA2MWFjMGMxNWI2MjA2Y2Y4OTNjNTQ0OTU3
YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vz
cy5oCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MuaApA
QCAtMTc0LDcgKzE3NCw3IEBAIHB1YmxpYzoKIAogICAgIHZvaWQgcHJvY2Vzc1dpbGxTdXNwZW5k
SW1taW5lbnRseUZvclRlc3RpbmdTeW5jKENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJik7CiAg
ICAgdm9pZCBwcmVwYXJlVG9TdXNwZW5kKGJvb2wgaXNTdXNwZW5zaW9uSW1taW5lbnQsIENvbXBs
ZXRpb25IYW5kbGVyPHZvaWQoKT4mJik7Ci0gICAgdm9pZCBwcm9jZXNzRGlkUmVzdW1lKCk7Cisg
ICAgdm9pZCBwcm9jZXNzRGlkUmVzdW1lKGJvb2wgZm9yRm9yZWdyb3VuZEFjdGl2aXR5KTsKIAog
ICAgIENhY2hlTW9kZWwgY2FjaGVNb2RlbCgpIGNvbnN0IHsgcmV0dXJuIG1fY2FjaGVNb2RlbDsg
fQogCkBAIC00NzMsNiArNDczLDggQEAgcHJpdmF0ZToKIAogI2lmIFBMQVRGT1JNKElPU19GQU1J
TFkpCiAgICAgdm9pZCBzZXRJc0hvbGRpbmdMb2NrZWRGaWxlcyhib29sKTsKKyAgICB2b2lkIGFk
ZEJhY2tncm91bmRTdGF0ZU9ic2VydmVycygpOworICAgIHZvaWQgcmVtb3ZlQmFja2dyb3VuZFN0
YXRlT2JzZXJ2ZXJzKCk7CiAjZW5kaWYKIAogICAgIC8vIENvbm5lY3Rpb25zIHRvIFdlYlByb2Nl
c3Nlcy4KQEAgLTUyNSw2ICs1MjcsMTEgQEAgcHJpdmF0ZToKICAgICBib29sIG1fcHJpdmF0ZUNs
aWNrTWVhc3VyZW1lbnRFbmFibGVkIHsgdHJ1ZSB9OwogICAgIGJvb2wgbV9mdHBFbmFibGVkIHsg
ZmFsc2UgfTsKICAgICBib29sIG1faXNTdXNwZW5kZWQgeyBmYWxzZSB9OworICAgIHN0ZDo6b3B0
aW9uYWw8TW9ub3RvbmljVGltZT4gbV9lbnRlckJhY2tncm91bmRUaW1lc3RhbXA7CisjaWYgUExB
VEZPUk0oSU9TX0ZBTUlMWSkKKyAgICBSZXRhaW5QdHI8aWQ+IG1fYmFja2dyb3VuZE9ic2VydmVy
OworICAgIFJldGFpblB0cjxpZD4gbV9mb3JlZ3JvdW5kT2JzZXJ2ZXI7CisjZW5kaWYKIH07CiAK
ICNpZiAhUExBVEZPUk0oQ09DT0EpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQ
cm9jZXNzL05ldHdvcmtQcm9jZXNzLm1lc3NhZ2VzLmluIGIvU291cmNlL1dlYktpdC9OZXR3b3Jr
UHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5tZXNzYWdlcy5pbgppbmRleCA2Nzg4ZDY1Y2M2YThjY2Qz
ZjExZjkwYjJkNjc3OWUyMWFiZDFjZGM2Li40MTZhYzA0NDM4MmI4MzBkNThmYTk2ODJhZGJhMDc4
NDA4ZTAxMWUyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdv
cmtQcm9jZXNzLm1lc3NhZ2VzLmluCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mv
TmV0d29ya1Byb2Nlc3MubWVzc2FnZXMuaW4KQEAgLTc1LDcgKzc1LDcgQEAgbWVzc2FnZXMgLT4g
TmV0d29ya1Byb2Nlc3MgTGVnYWN5UmVjZWl2ZXIgewogCiAgICAgUHJvY2Vzc1dpbGxTdXNwZW5k
SW1taW5lbnRseUZvclRlc3RpbmdTeW5jKCkgLT4gKCkgU3luY2hyb25vdXMKICAgICBQcmVwYXJl
VG9TdXNwZW5kKGJvb2wgaXNTdXNwZW5zaW9uSW1taW5lbnQpIC0+ICgpCi0gICAgUHJvY2Vzc0Rp
ZFJlc3VtZSgpCisgICAgUHJvY2Vzc0RpZFJlc3VtZShib29sIGZvckZvcmVncm91bmRBY3Rpdml0
eSkKIAogICAgIFByZWNvbm5lY3RUbyhQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIFdlYktpdDo6
V2ViUGFnZVByb3h5SWRlbnRpZmllciB3ZWJQYWdlUHJveHlJRCwgV2ViQ29yZTo6UGFnZUlkZW50
aWZpZXIgd2ViUGFnZUlELCBVUkwgdXJsLCBTdHJpbmcgdXNlckFnZW50LCBlbnVtOnVpbnQ4X3Qg
V2ViQ29yZTo6U3RvcmVkQ3JlZGVudGlhbHNQb2xpY3kgc3RvcmVkQ3JlZGVudGlhbHNQb2xpY3ks
IGVudW06Ym9vbCBzdGQ6Om9wdGlvbmFsPFdlYktpdDo6TmF2aWdhdGluZ1RvQXBwQm91bmREb21h
aW4+IGlzTmF2aWdhdGluZ1RvQXBwQm91bmREb21haW4sIGVudW06Ym9vbCBXZWJLaXQ6Okxhc3RO
YXZpZ2F0aW9uV2FzQXBwSW5pdGlhdGVkIGxhc3ROYXZpZ2F0aW9uV2FzQXBwSW5pdGlhdGVkKTsK
IApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9pb3MvTmV0d29ya1By
b2Nlc3NJT1MubW0gYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL2lvcy9OZXR3b3JrUHJv
Y2Vzc0lPUy5tbQppbmRleCA4MjdkZGY2ZWNmNGQ5MjkxZTBiZmY3NGZhNWViYjgxN2I3ZGNmZmQ3
Li5jODcyOGZhZTM0ZjBlZWMxNTQ5Zjg4ZGI1NTg4ODljNjQyMDdlYTM1IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL2lvcy9OZXR3b3JrUHJvY2Vzc0lPUy5tbQorKysg
Yi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL2lvcy9OZXR3b3JrUHJvY2Vzc0lPUy5tbQpA
QCAtNjQsNiArNjQsNyBAQCB2b2lkIE5ldHdvcmtQcm9jZXNzOjpwbGF0Zm9ybUluaXRpYWxpemVO
ZXR3b3JrUHJvY2Vzcyhjb25zdCBOZXR3b3JrUHJvY2Vzc0NyZWF0aQogICAgIGluaXRpYWxpemVT
ZWNJdGVtU2hpbSgqdGhpcyk7CiAjZW5kaWYKICAgICBwbGF0Zm9ybUluaXRpYWxpemVOZXR3b3Jr
UHJvY2Vzc0NvY29hKHBhcmFtZXRlcnMpOworICAgIGFkZEJhY2tncm91bmRTdGF0ZU9ic2VydmVy
cygpOwogfQogCiB2b2lkIE5ldHdvcmtQcm9jZXNzOjpwbGF0Zm9ybVRlcm1pbmF0ZSgpCkBAIC0x
MTAsNiArMTExLDI0IEBAIHZvaWQgTmV0d29ya1Byb2Nlc3M6OnNldElzSG9sZGluZ0xvY2tlZEZp
bGVzKGJvb2wgaXNIb2xkaW5nTG9ja2VkRmlsZXMpCiAgICAgbV9ob2xkaW5nTG9ja2VkRmlsZUFz
c2VydGlvbiA9IFByb2Nlc3NBc3NlcnRpb246OmNyZWF0ZShnZXRDdXJyZW50UHJvY2Vzc0lEKCks
ICJOZXR3b3JrIFByb2Nlc3MgaXMgaG9sZGluZyBsb2NrZWQgZmlsZXMiX3MsIFByb2Nlc3NBc3Nl
cnRpb25UeXBlOjpGaW5pc2hUYXNrSW50ZXJydXB0YWJsZSwgUHJvY2Vzc0Fzc2VydGlvbjo6TW9k
ZTo6U3luYyk7CiB9CiAKK3ZvaWQgTmV0d29ya1Byb2Nlc3M6OmFkZEJhY2tncm91bmRTdGF0ZU9i
c2VydmVycygpCit7CisgICAgbV9iYWNrZ3JvdW5kT2JzZXJ2ZXIgPSBbW05TTm90aWZpY2F0aW9u
Q2VudGVyIGRlZmF1bHRDZW50ZXJdIGFkZE9ic2VydmVyRm9yTmFtZTpVSUFwcGxpY2F0aW9uRGlk
RW50ZXJCYWNrZ3JvdW5kTm90aWZpY2F0aW9uIG9iamVjdDpbVUlBcHBsaWNhdGlvbiBzaGFyZWRB
cHBsaWNhdGlvbl0gcXVldWU6bmlsIHVzaW5nQmxvY2s6bWFrZUJsb2NrUHRyKFt3ZWFrVGhpcyA9
IFdlYWtQdHIgeyAqdGhpcyB9XShOU05vdGlmaWNhdGlvbiAqKSB7CisgICAgICAgIGlmICh3ZWFr
VGhpcykKKyAgICAgICAgICAgIHdlYWtUaGlzLT5hcHBsaWNhdGlvbkRpZEVudGVyQmFja2dyb3Vu
ZCgpOworICAgIH0pLmdldCgpXTsKKyAgICBtX2ZvcmVncm91bmRPYnNlcnZlciA9IFtbTlNOb3Rp
ZmljYXRpb25DZW50ZXIgZGVmYXVsdENlbnRlcl0gYWRkT2JzZXJ2ZXJGb3JOYW1lOlVJQXBwbGlj
YXRpb25XaWxsRW50ZXJGb3JlZ3JvdW5kTm90aWZpY2F0aW9uIG9iamVjdDpbVUlBcHBsaWNhdGlv
biBzaGFyZWRBcHBsaWNhdGlvbl0gcXVldWU6bmlsIHVzaW5nQmxvY2s6bWFrZUJsb2NrUHRyKFt3
ZWFrVGhpcyA9IFdlYWtQdHIgeyAqdGhpcyB9XShOU05vdGlmaWNhdGlvbiAqKSB7CisgICAgICAg
IGlmICh3ZWFrVGhpcykKKyAgICAgICAgICAgIHdlYWtUaGlzLT5hcHBsaWNhdGlvbldpbGxFbnRl
ckZvcmVncm91bmQoKTsKKyAgICB9KS5nZXQoKV07Cit9CisKK3ZvaWQgTmV0d29ya1Byb2Nlc3M6
OnJlbW92ZUJhY2tncm91bmRTdGF0ZU9ic2VydmVycygpCit7CisgICAgW1tOU05vdGlmaWNhdGlv
bkNlbnRlciBkZWZhdWx0Q2VudGVyXSByZW1vdmVPYnNlcnZlcjptX2JhY2tncm91bmRPYnNlcnZl
ci5nZXQoKV07CisgICAgW1tOU05vdGlmaWNhdGlvbkNlbnRlciBkZWZhdWx0Q2VudGVyXSByZW1v
dmVPYnNlcnZlcjptX2ZvcmVncm91bmRPYnNlcnZlci5nZXQoKV07Cit9CisKIH0gLy8gbmFtZXNw
YWNlIFdlYktpdAogCiAjZW5kaWYgLy8gUExBVEZPUk0oSU9TX0ZBTUlMWSkKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0dQVS9HUFVQcm9jZXNzUHJveHkuY3BwIGIvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvR1BVL0dQVVByb2Nlc3NQcm94eS5jcHAKaW5kZXggNGFmMjc2MDI3
OTEzNTUyMWVjMTNhYjhjMzIxNzFkZmQzMWY4Y2ZiNC4uODQzZGNkMmU1Zjg0NjRiYTE1MWFiZjQ5
NDU0ZmNhOGU0ZmIzYWZhYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvR1BV
L0dQVVByb2Nlc3NQcm94eS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvR1BVL0dQ
VVByb2Nlc3NQcm94eS5jcHAKQEAgLTU3NSw3ICs1NzUsNyBAQCB2b2lkIEdQVVByb2Nlc3NQcm94
eTo6c2VuZFByZXBhcmVUb1N1c3BlbmQoSXNTdXNwZW5zaW9uSW1taW5lbnQgaXNTdXNwZW5zaW9u
SW1taQogICAgIHNlbmRXaXRoQXN5bmNSZXBseShNZXNzYWdlczo6R1BVUHJvY2Vzczo6UHJlcGFy
ZVRvU3VzcGVuZChpc1N1c3BlbnNpb25JbW1pbmVudCA9PSBJc1N1c3BlbnNpb25JbW1pbmVudDo6
WWVzKSwgV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlciksIDAsIHsgfSwgU2hvdWxkU3RhcnRQcm9j
ZXNzVGhyb3R0bGVyQWN0aXZpdHk6Ok5vKTsKIH0KIAotdm9pZCBHUFVQcm9jZXNzUHJveHk6OnNl
bmRQcm9jZXNzRGlkUmVzdW1lKCkKK3ZvaWQgR1BVUHJvY2Vzc1Byb3h5OjpzZW5kUHJvY2Vzc0Rp
ZFJlc3VtZShSZXN1bWVSZWFzb24pCiB7CiAgICAgaWYgKGNhblNlbmRNZXNzYWdlKCkpCiAgICAg
ICAgIHNlbmQoTWVzc2FnZXM6OkdQVVByb2Nlc3M6OlByb2Nlc3NEaWRSZXN1bWUoKSwgMCk7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9HUFUvR1BVUHJvY2Vzc1Byb3h5Lmgg
Yi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9HUFUvR1BVUHJvY2Vzc1Byb3h5LmgKaW5kZXggNDQz
ZTliN2E0NjZhZmU1MWU4ODRiNGY5NDM4YzRjYzY1ZDczYjhkYy4uMmI0Nzg4N2I4NDFlMThiMGEx
NmEzMDU3NGRmMDFiMTlkYjYxYzVjYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvR1BVL0dQVVByb2Nlc3NQcm94eS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0dQ
VS9HUFVQcm9jZXNzUHJveHkuaApAQCAtMTI3LDcgKzEyNyw3IEBAIHByaXZhdGU6CiAgICAgLy8g
UHJvY2Vzc1Rocm90dGxlckNsaWVudAogICAgIEFTQ0lJTGl0ZXJhbCBjbGllbnROYW1lKCkgY29u
c3QgZmluYWwgeyByZXR1cm4gIkdQVVByb2Nlc3MiX3M7IH0KICAgICB2b2lkIHNlbmRQcmVwYXJl
VG9TdXNwZW5kKElzU3VzcGVuc2lvbkltbWluZW50LCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+
JiYpIGZpbmFsOwotICAgIHZvaWQgc2VuZFByb2Nlc3NEaWRSZXN1bWUoKSBmaW5hbDsKKyAgICB2
b2lkIHNlbmRQcm9jZXNzRGlkUmVzdW1lKFJlc3VtZVJlYXNvbikgZmluYWw7CiAKICAgICAvLyBQ
cm9jZXNzTGF1bmNoZXI6OkNsaWVudAogICAgIHZvaWQgZGlkRmluaXNoTGF1bmNoaW5nKFByb2Nl
c3NMYXVuY2hlciosIElQQzo6Q29ubmVjdGlvbjo6SWRlbnRpZmllcikgb3ZlcnJpZGU7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9jZXNzUHJv
eHkuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvTmV0d29yay9OZXR3b3JrUHJvY2Vzc1By
b3h5LmNwcAppbmRleCAzODg1ZTRkZjZhYjA4YzJkOWY0YTdjOWM1M2U4MGYyOGFhNGExOTVkLi4x
NTg0NTJjMzczNjE4NTYxYWJjMDY3OGY2MGNjMjI1YjY0Mzg2OWMzIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9jZXNzUHJveHkuY3BwCisrKyBi
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nlc3NQcm94eS5jcHAK
QEAgLTEzOTksMTAgKzEzOTksMTAgQEAgdm9pZCBOZXR3b3JrUHJvY2Vzc1Byb3h5OjpzZW5kUHJl
cGFyZVRvU3VzcGVuZChJc1N1c3BlbnNpb25JbW1pbmVudCBpc1N1c3BlbnNpb24KICAgICBzZW5k
V2l0aEFzeW5jUmVwbHkoTWVzc2FnZXM6Ok5ldHdvcmtQcm9jZXNzOjpQcmVwYXJlVG9TdXNwZW5k
KGlzU3VzcGVuc2lvbkltbWluZW50ID09IElzU3VzcGVuc2lvbkltbWluZW50OjpZZXMpLCBXVEZN
b3ZlKGNvbXBsZXRpb25IYW5kbGVyKSwgMCwgeyB9LCBTaG91bGRTdGFydFByb2Nlc3NUaHJvdHRs
ZXJBY3Rpdml0eTo6Tm8pOwogfQogCi12b2lkIE5ldHdvcmtQcm9jZXNzUHJveHk6OnNlbmRQcm9j
ZXNzRGlkUmVzdW1lKCkKK3ZvaWQgTmV0d29ya1Byb2Nlc3NQcm94eTo6c2VuZFByb2Nlc3NEaWRS
ZXN1bWUoUmVzdW1lUmVhc29uIHJlYXNvbikKIHsKICAgICBpZiAoY2FuU2VuZE1lc3NhZ2UoKSkK
LSAgICAgICAgc2VuZChNZXNzYWdlczo6TmV0d29ya1Byb2Nlc3M6OlByb2Nlc3NEaWRSZXN1bWUo
KSwgMCk7CisgICAgICAgIHNlbmQoTWVzc2FnZXM6Ok5ldHdvcmtQcm9jZXNzOjpQcm9jZXNzRGlk
UmVzdW1lKHJlYXNvbiA9PSBSZXN1bWVSZWFzb246OkZvcmVncm91bmRBY3Rpdml0eSksIDApOwog
fQogCiB2b2lkIE5ldHdvcmtQcm9jZXNzUHJveHk6OmZsdXNoQ29va2llcyhQQUw6OlNlc3Npb25J
RCBzZXNzaW9uSUQsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJiBjb21wbGV0aW9uSGFuZGxl
cikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL05ldHdvcmsvTmV0d29ya1By
b2Nlc3NQcm94eS5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvTmV0d29yay9OZXR3b3JrUHJv
Y2Vzc1Byb3h5LmgKaW5kZXggZTBhZWUyZjdiMzZhYmRjZTYzNDg1Nzc1YzE1NDJiYzc1NGJkMjUy
My4uNTUzODNlN2ViMTU0MzE4YjFlYjFkNzI5YjkyZmEzZWI3YWRkMTNkMyAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvTmV0d29yay9OZXR3b3JrUHJvY2Vzc1Byb3h5LmgKKysr
IGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvTmV0d29yay9OZXR3b3JrUHJvY2Vzc1Byb3h5LmgK
QEAgLTIzNiw3ICsyMzYsNyBAQCBwdWJsaWM6CiAgICAgdm9pZCBjcmVhdGVTeW1MaW5rRm9yRmls
ZVVwZ3JhZGUoY29uc3QgU3RyaW5nJiBpbmRleGVkRGF0YWJhc2VEaXJlY3RvcnkpOwogCiAgICAg
Ly8gUHJvY2Vzc1Rocm90dGxlckNsaWVudAotICAgIHZvaWQgc2VuZFByb2Nlc3NEaWRSZXN1bWUo
KSBmaW5hbDsKKyAgICB2b2lkIHNlbmRQcm9jZXNzRGlkUmVzdW1lKFJlc3VtZVJlYXNvbiA9IFJl
c3VtZVJlYXNvbjo6Rm9yZWdyb3VuZEFjdGl2aXR5KSBmaW5hbDsKICAgICBBU0NJSUxpdGVyYWwg
Y2xpZW50TmFtZSgpIGNvbnN0IGZpbmFsIHsgcmV0dXJuICJOZXR3b3JrUHJvY2VzcyJfczsgfQog
ICAgIAogICAgIHN0YXRpYyB2b2lkIHNldFN1c3BlbnNpb25BbGxvd2VkRm9yVGVzdGluZyhib29s
KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL05ldHdvcmsvTmV0d29ya1By
b2Nlc3NQcm94eUNvY29hLm1tIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvTmV0d29yay9OZXR3
b3JrUHJvY2Vzc1Byb3h5Q29jb2EubW0KaW5kZXggYjY0YjUwMjA2MWI0ODljMzc5NTVjMjk1MDc1
MzI3ZGJiMDE2NGUyYS4uMTQ1ZGZmYzUxNTU4YWVhNGViZjZlZDFmZjJiY2ZhZDY4YWY1YjIyNiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvTmV0d29yay9OZXR3b3JrUHJvY2Vz
c1Byb3h5Q29jb2EubW0KKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvTmV0d29yay9OZXR3
b3JrUHJvY2Vzc1Byb3h5Q29jb2EubW0KQEAgLTI3LDYgKzI3LDcgQEAKICNpbXBvcnQgIk5ldHdv
cmtQcm9jZXNzUHJveHkuaCIKIAogI2ltcG9ydCAiTGF1bmNoU2VydmljZXNEYXRhYmFzZVhQQ0Nv
bnN0YW50cy5oIgorI2ltcG9ydCAiTmV0d29ya1Byb2Nlc3NNZXNzYWdlcy5oIgogI2ltcG9ydCAi
V2ViUHJvY2Vzc1Bvb2wuaCIKICNpbXBvcnQgIlhQQ0VuZHBvaW50LmgiCiAKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1Byb2Nlc3NUaHJvdHRsZXIuY3BwIGIvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvUHJvY2Vzc1Rocm90dGxlci5jcHAKaW5kZXggYjY5YjY0OTZmYWM4MDJh
YjQzZWZiZjgyN2ZkZDMyYTliMGZkMTVhYi4uNDcxMmYyZWNmYmEyYzVhOTllMmQ2YmFkNGYxZTA1
YzU3ZGRlODZhNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvUHJvY2Vzc1Ro
cm90dGxlci5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvUHJvY2Vzc1Rocm90dGxl
ci5jcHAKQEAgLTE1OSw3ICsxNTksNyBAQCB2b2lkIFByb2Nlc3NUaHJvdHRsZXI6OnVwZGF0ZUFz
c2VydGlvbklmTmVlZGVkKCkKICAgICAgICAgICAgICAgICBQUk9DRVNTVEhST1RUTEVSX1JFTEVB
U0VfTE9HKCJ1cGRhdGVBc3NlcnRpb25JZk5lZWRlZDogc2VuZGluZyBQcm9jZXNzRGlkUmVzdW1l
IElQQyBiZWNhdXNlIHRoZSBwcm9jZXNzIHdhcyBzdXNwZW5kZWQiKTsKICAgICAgICAgICAgIGVs
c2UKICAgICAgICAgICAgICAgICBQUk9DRVNTVEhST1RUTEVSX1JFTEVBU0VfTE9HKCJ1cGRhdGVB
c3NlcnRpb25JZk5lZWRlZDogc2VuZGluZyBQcm9jZXNzRGlkUmVzdW1lIElQQyBiZWNhdXNlIHRo
ZSBXZWJQcm9jZXNzIGlzIHN0aWxsIHByb2Nlc3NpbmcgcmVxdWVzdCB0byBzdXNwZW5kPSUiIFBS
SXU2NCwgKm1fcGVuZGluZ1JlcXVlc3RUb1N1c3BlbmRJRCk7Ci0gICAgICAgICAgICBtX3Byb2Nl
c3Muc2VuZFByb2Nlc3NEaWRSZXN1bWUoKTsKKyAgICAgICAgICAgIG1fcHJvY2Vzcy5zZW5kUHJv
Y2Vzc0RpZFJlc3VtZShleHBlY3RlZEFzc2VydGlvblR5cGUoKSA9PSBQcm9jZXNzQXNzZXJ0aW9u
VHlwZTo6Rm9yZWdyb3VuZCA/IFByb2Nlc3NUaHJvdHRsZXJDbGllbnQ6OlJlc3VtZVJlYXNvbjo6
Rm9yZWdyb3VuZEFjdGl2aXR5IDogUHJvY2Vzc1Rocm90dGxlckNsaWVudDo6UmVzdW1lUmVhc29u
OjpCYWNrZ3JvdW5kQWN0aXZpdHkpOwogICAgICAgICAgICAgY2xlYXJQZW5kaW5nUmVxdWVzdFRv
U3VzcGVuZCgpOwogICAgICAgICB9CiAgICAgfSBlbHNlIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL1Byb2Nlc3NUaHJvdHRsZXJDbGllbnQuaCBiL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL1Byb2Nlc3NUaHJvdHRsZXJDbGllbnQuaAppbmRleCAxMThiZjBkZDIzNTgyMjRj
MmVjN2RmOWI5NjUxZTlmMTM3OGU2ZTAwLi43NmE1YTkzODhiYmNmNDBlOTk0ZDM5N2IyZDRmZGQw
MGU1ZDlhODQxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Qcm9jZXNzVGhy
b3R0bGVyQ2xpZW50LmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvUHJvY2Vzc1Rocm90
dGxlckNsaWVudC5oCkBAIC0zNyw3ICszNyw4IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIH5Qcm9j
ZXNzVGhyb3R0bGVyQ2xpZW50KCkgeyB9CiAKICAgICB2aXJ0dWFsIHZvaWQgc2VuZFByZXBhcmVU
b1N1c3BlbmQoSXNTdXNwZW5zaW9uSW1taW5lbnQsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4m
JikgPSAwOwotICAgIHZpcnR1YWwgdm9pZCBzZW5kUHJvY2Vzc0RpZFJlc3VtZSgpID0gMDsKKyAg
ICBlbnVtIFJlc3VtZVJlYXNvbiA6IGJvb2wgeyBGb3JlZ3JvdW5kQWN0aXZpdHksIEJhY2tncm91
bmRBY3Rpdml0eSB9OworICAgIHZpcnR1YWwgdm9pZCBzZW5kUHJvY2Vzc0RpZFJlc3VtZShSZXN1
bWVSZWFzb24gPSBGb3JlZ3JvdW5kQWN0aXZpdHkpID0gMDsKICAgICB2aXJ0dWFsIHZvaWQgZGlk
U2V0QXNzZXJ0aW9uVHlwZShQcm9jZXNzQXNzZXJ0aW9uVHlwZSkgeyB9OwogICAgIHZpcnR1YWwg
QVNDSUlMaXRlcmFsIGNsaWVudE5hbWUoKSBjb25zdCA9IDA7CiB9OwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViQXV0aGVudGljYXRpb24vV2ViQXV0aG5Qcm9jZXNzUHJv
eHkuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYkF1dGhlbnRpY2F0aW9uL1dlYkF1dGhu
UHJvY2Vzc1Byb3h5LmgKaW5kZXggYzViMTY3MWIxYWEwNjM0ZDEzMmI5YTZlZjg5YWU4M2VjZmIw
M2IzZS4uMTFiZjA0NzE3YTY1MjBmZmE0YTY3ZTM3ODYwZGNhYmJmNjJlNTY1MyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViQXV0aGVudGljYXRpb24vV2ViQXV0aG5Qcm9j
ZXNzUHJveHkuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJBdXRoZW50aWNhdGlv
bi9XZWJBdXRoblByb2Nlc3NQcm94eS5oCkBAIC01NSw3ICs1NSw3IEBAIHB1YmxpYzoKICAgICB2
b2lkIHVwZGF0ZVByb2Nlc3NBc3NlcnRpb24oKTsKIAogICAgIC8vIFByb2Nlc3NUaHJvdHRsZXJD
bGllbnQKLSAgICB2b2lkIHNlbmRQcm9jZXNzRGlkUmVzdW1lKCkgZmluYWwgeyB9CisgICAgdm9p
ZCBzZW5kUHJvY2Vzc0RpZFJlc3VtZShSZXN1bWVSZWFzb24pIGZpbmFsIHsgfQogICAgIEFTQ0lJ
TGl0ZXJhbCBjbGllbnROYW1lKCkgY29uc3QgZmluYWwgeyByZXR1cm4gIldlYkF1dGhuUHJvY2Vz
cyJfczsgfQogCiBwcml2YXRlOgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
V2ViUHJvY2Vzc1Byb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQ
cm94eS5jcHAKaW5kZXggMmYxZTY5MzZiZTYxNDU4MTJkNDc3ZmFiYTdkYzJhODAzNzg0ZTdhZi4u
MzZjMmI1YWFiMzFhYTczODIyOGRmOWY2ZDE4MDhhMDA1ODkzMDUxMiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5LmNwcAorKysgYi9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkuY3BwCkBAIC0xNDM1LDcgKzE0MzUsNyBAQCB2
b2lkIFdlYlByb2Nlc3NQcm94eTo6c2VuZFByZXBhcmVUb1N1c3BlbmQoSXNTdXNwZW5zaW9uSW1t
aW5lbnQgaXNTdXNwZW5zaW9uSW1taQogICAgIHNlbmRXaXRoQXN5bmNSZXBseShNZXNzYWdlczo6
V2ViUHJvY2Vzczo6UHJlcGFyZVRvU3VzcGVuZChpc1N1c3BlbnNpb25JbW1pbmVudCA9PSBJc1N1
c3BlbnNpb25JbW1pbmVudDo6WWVzKSwgV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlciksIDAsIHsg
fSwgU2hvdWxkU3RhcnRQcm9jZXNzVGhyb3R0bGVyQWN0aXZpdHk6Ok5vKTsKIH0KIAotdm9pZCBX
ZWJQcm9jZXNzUHJveHk6OnNlbmRQcm9jZXNzRGlkUmVzdW1lKCkKK3ZvaWQgV2ViUHJvY2Vzc1By
b3h5OjpzZW5kUHJvY2Vzc0RpZFJlc3VtZShSZXN1bWVSZWFzb24pCiB7CiAgICAgV0VCUFJPQ0VT
U1BST1hZX1JFTEVBU0VfTE9HKFByb2Nlc3NTdXNwZW5zaW9uLCAic2VuZFByb2Nlc3NEaWRSZXN1
bWU6Iik7CiAgICAgaWYgKGNhblNlbmRNZXNzYWdlKCkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L1dlYlByb2Nlc3NQcm94eS5oCmluZGV4IGJmYzc5NTZjMDJlZTVhY2UyZDU1NzM0M2M1MDc1Mzdh
ODVjZmQ0ZmMuLjExNDE3ZWE3YzQ2ZWJmNmM5ODczZDVjNDIxZTJkNTU2YjY4OWNkNDQgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5oCisrKyBiL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5oCkBAIC0zMjcsNyArMzI3LDcg
QEAgcHVibGljOgogCiAgICAgLy8gUHJvY2Vzc1Rocm90dGxlckNsaWVudAogICAgIHZvaWQgc2Vu
ZFByZXBhcmVUb1N1c3BlbmQoSXNTdXNwZW5zaW9uSW1taW5lbnQsIENvbXBsZXRpb25IYW5kbGVy
PHZvaWQoKT4mJikgZmluYWw7Ci0gICAgdm9pZCBzZW5kUHJvY2Vzc0RpZFJlc3VtZSgpIGZpbmFs
OworICAgIHZvaWQgc2VuZFByb2Nlc3NEaWRSZXN1bWUoUmVzdW1lUmVhc29uID0gUmVzdW1lUmVh
c29uOjpGb3JlZ3JvdW5kQWN0aXZpdHkpIGZpbmFsOwogICAgIHZvaWQgZGlkU2V0QXNzZXJ0aW9u
VHlwZShQcm9jZXNzQXNzZXJ0aW9uVHlwZSkgZmluYWw7CiAgICAgQVNDSUlMaXRlcmFsIGNsaWVu
dE5hbWUoKSBjb25zdCBmaW5hbCB7IHJldHVybiAiV2ViUHJvY2VzcyJfczsgfQogCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>455262</attachid>
            <date>2022-03-21 12:06:41 -0700</date>
            <delta_ts>2022-03-21 12:28:30 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-238082-20220321120640.patch</filename>
            <type>text/plain</type>
            <size>17264</size>
            <attacher name="Sihui Liu">sihui_liu</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjkxNTU5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IGEzMjE1YjQ0Mzc5N2M3NjNm
MDM1MjU5MThmZTFhNWUzZWViNGJlN2YuLmY3NTc3YzUxZWIwOTE5OGM3NmU2NmVjODlhMTMxNTdk
OWQ0ZmVlYmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNDMgQEAKKzIwMjItMDMtMjEgIFNpaHVpIExp
dSAgPHNpaHVpX2xpdUBhcHBsZS5jb20+CisKKyAgICAgICAgQWRkIGxvZ2dpbmcgYWJvdXQgcHJv
Y2VzcyBlbnRlcmluZyBiYWNrZ3JvdW5kIHRvIE5ldHdvcmtQcm9jZXNzOjpwcm9jZXNzRGlkUmVz
dW1lCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzgw
ODIKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBJbiBy
ZGFyOi8vODI0MTI3MzMsIHdlIGZvdW5kIG5ldHdvcmsgcHJvY2VzcyBjYW4gYmUgc3VzcGVuZGVk
IHJpZ2h0IGFmdGVyIGl0IHJlY2VpdmVzIHByb2Nlc3NEaWRSZXN1bWUgbWVzc2FnZS4gCisgICAg
ICAgIEZvciBuZXR3b3JrIHBvcmNlc3MsIHByb2Nlc3NEaWRSZXN1bWUgbWVhbnMgcHJvY2VzcyBp
cyBub3Qgc3VzcGVuZGVkIGFuZCBpdCBpcyBzYWZlIHRvIHBlcmZvcm0gZGF0YWJhc2UgCisgICAg
ICAgIG9wZXJhdGlvbnMuIExldCdzIGFkZCBsb2dnaW5nIHRvIGNoZWNrIHdoZW4gYW5kIHdoeSBw
cm9jZXNzRGlkUmVzdW1lIG1lc3NhZ2UgaXMgc2VudC4gSWYgdGhlIGxvZ2dpbmcgY29uZmlybXMK
KyAgICAgICAgdGhhdCBwcm9jZXNzRGlkUmVzdW1lIG1lc3NhZ2UgY2FuIGJlIHJlY2VpdmVkIHdo
ZW4gcHJvY2VzcyBpcyBjbG9zZSB0byBhc3NlcnRpb24gdGltZW91dCwgd2UgcHJvYmFibHkgd2Fu
dCB0byAKKyAgICAgICAgaWdub3JlIHN1Y2ggbWVzc2FnZSBhbmQgcmVzdW1lIGRhdGFiYXNlIG9w
ZXJhdGlvbnMgd2hlbiBhcHBsaWNhdGlvbiBhY3R1YWxseSBlbnRlcnMgZm9yZWdyb3VuZC4KKwor
ICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLmNwcDoKKyAgICAgICAgKFdl
YktpdDo6TmV0d29ya1Byb2Nlc3M6OmRpZENsb3NlKToKKyAgICAgICAgKFdlYktpdDo6TmV0d29y
a1Byb2Nlc3M6OnByZXBhcmVUb1N1c3BlbmQpOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrUHJv
Y2Vzczo6YXBwbGljYXRpb25EaWRFbnRlckJhY2tncm91bmQpOgorICAgICAgICAoV2ViS2l0OjpO
ZXR3b3JrUHJvY2Vzczo6YXBwbGljYXRpb25XaWxsRW50ZXJGb3JlZ3JvdW5kKToKKyAgICAgICAg
KFdlYktpdDo6TmV0d29ya1Byb2Nlc3M6OnByb2Nlc3NEaWRSZXN1bWUpOgorICAgICAgICAqIE5l
dHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLmg6CisgICAgICAgICogTmV0d29ya1Byb2Nlc3Mv
TmV0d29ya1Byb2Nlc3MubWVzc2FnZXMuaW46CisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvaW9z
L05ldHdvcmtQcm9jZXNzSU9TLm1tOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrUHJvY2Vzczo6
cGxhdGZvcm1Jbml0aWFsaXplTmV0d29ya1Byb2Nlc3MpOgorICAgICAgICAoV2ViS2l0OjpOZXR3
b3JrUHJvY2Vzczo6YWRkQmFja2dyb3VuZFN0YXRlT2JzZXJ2ZXJzKToKKyAgICAgICAgKFdlYktp
dDo6TmV0d29ya1Byb2Nlc3M6OnJlbW92ZUJhY2tncm91bmRTdGF0ZU9ic2VydmVycyk6CisgICAg
ICAgICogVUlQcm9jZXNzL0dQVS9HUFVQcm9jZXNzUHJveHkuY3BwOgorICAgICAgICAoV2ViS2l0
OjpHUFVQcm9jZXNzUHJveHk6OnNlbmRQcm9jZXNzRGlkUmVzdW1lKToKKyAgICAgICAgKiBVSVBy
b2Nlc3MvR1BVL0dQVVByb2Nlc3NQcm94eS5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9OZXR3b3Jr
L05ldHdvcmtQcm9jZXNzUHJveHkuY3BwOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrUHJvY2Vz
c1Byb3h5OjpzZW5kUHJvY2Vzc0RpZFJlc3VtZSk6CisgICAgICAgICogVUlQcm9jZXNzL05ldHdv
cmsvTmV0d29ya1Byb2Nlc3NQcm94eS5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9OZXR3b3JrL05l
dHdvcmtQcm9jZXNzUHJveHlDb2NvYS5tbToKKyAgICAgICAgKiBVSVByb2Nlc3MvUHJvY2Vzc1Ro
cm90dGxlci5jcHA6CisgICAgICAgIChXZWJLaXQ6OlByb2Nlc3NUaHJvdHRsZXI6OnVwZGF0ZUFz
c2VydGlvbklmTmVlZGVkKToKKyAgICAgICAgKiBVSVByb2Nlc3MvUHJvY2Vzc1Rocm90dGxlckNs
aWVudC5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJBdXRoZW50aWNhdGlvbi9XZWJBdXRoblBy
b2Nlc3NQcm94eS5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkuY3BwOgor
ICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzUHJveHk6OnNlbmRQcm9jZXNzRGlkUmVzdW1lKToK
KyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5Lmg6CisKIDIwMjItMDMtMjEgIEpv
bmF0aGFuIEJlZGFyZCAgPGpiZWRhcmRAYXBwbGUuY29tPgogCiAgICAgICAgIFVucmV2aWV3ZWQs
IHJldmVydGluZyByMjkxNTU4LgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJv
Y2Vzcy9OZXR3b3JrUHJvY2Vzcy5jcHAgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05l
dHdvcmtQcm9jZXNzLmNwcAppbmRleCBlYjJmNWJiYmRmYTZlMzFhNTkwMGNhYzdmMmEzMGI1NzZl
NTUwY2ZmLi5mYjFjYWI1MzUyYWU0Y2JjNTU2OTUyYjMyY2RiYjA5NmVlOGFhNzdkIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLmNwcAorKysg
Yi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLmNwcApAQCAtMjY5
LDYgKzI2OSwxMCBAQCB2b2lkIE5ldHdvcmtQcm9jZXNzOjpkaWRDbG9zZShJUEM6OkNvbm5lY3Rp
b24mKQogICAgIE5ldHdvcmtTdG9yYWdlTWFuYWdlcjo6Zm9yRWFjaChbJl0oYXV0byYgbWFuYWdl
cikgewogICAgICAgICBtYW5hZ2VyLnN5bmNMb2NhbFN0b3JhZ2UoW2NhbGxiYWNrQWdncmVnYXRv
cl0geyB9KTsKICAgICB9KTsKKworI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCisgICAgcmVtb3Zl
QmFja2dyb3VuZFN0YXRlT2JzZXJ2ZXJzKCk7CisjZW5kaWYKIH0KIAogdm9pZCBOZXR3b3JrUHJv
Y2Vzczo6ZGlkQ3JlYXRlRG93bmxvYWQoKQpAQCAtMjEyOSw3ICsyMTMzLDcgQEAgdm9pZCBOZXR3
b3JrUHJvY2Vzczo6dGVybWluYXRlUmVtb3RlV29ya2VyQ29udGV4dENvbm5lY3Rpb25XaGVuUG9z
c2libGUoUmVtb3RlV28KIAogdm9pZCBOZXR3b3JrUHJvY2Vzczo6cHJlcGFyZVRvU3VzcGVuZChi
b29sIGlzU3VzcGVuc2lvbkltbWluZW50LCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYgY29t
cGxldGlvbkhhbmRsZXIpCiB7Ci0gICAgUkVMRUFTRV9MT0coUHJvY2Vzc1N1c3BlbnNpb24sICIl
cCAtIE5ldHdvcmtQcm9jZXNzOjpwcmVwYXJlVG9TdXNwZW5kKCksIGlzU3VzcGVuc2lvbkltbWlu
ZW50PSVkIiwgdGhpcywgaXNTdXNwZW5zaW9uSW1taW5lbnQpOworICAgIFJFTEVBU0VfTE9HKFBy
b2Nlc3NTdXNwZW5zaW9uLCAiJXAgLSBOZXR3b3JrUHJvY2Vzczo6cHJlcGFyZVRvU3VzcGVuZCgp
LCBpc1N1c3BlbnNpb25JbW1pbmVudD0lZCBQcm9jZXNzIGlzICVzaW4gYmFja2dyb3VuZCIsIHRo
aXMsIGlzU3VzcGVuc2lvbkltbWluZW50LCBtX2VudGVyQmFja2dyb3VuZFRpbWVzdGFtcCA/ICIi
IDogIm5vdCAiKTsKIAogICAgIG1faXNTdXNwZW5kZWQgPSB0cnVlOwogICAgIGxvd01lbW9yeUhh
bmRsZXIoQ3JpdGljYWw6Olllcyk7CkBAIC0yMTYwLDE3ICsyMTY0LDI4IEBAIHZvaWQgTmV0d29y
a1Byb2Nlc3M6OnByZXBhcmVUb1N1c3BlbmQoYm9vbCBpc1N1c3BlbnNpb25JbW1pbmVudCwgQ29t
cGxldGlvbkhhbmRsCiAKIHZvaWQgTmV0d29ya1Byb2Nlc3M6OmFwcGxpY2F0aW9uRGlkRW50ZXJC
YWNrZ3JvdW5kKCkKIHsKKyAgICBpZiAobV9lbnRlckJhY2tncm91bmRUaW1lc3RhbXApCisgICAg
ICAgIHJldHVybjsKKworICAgIG1fZW50ZXJCYWNrZ3JvdW5kVGltZXN0YW1wID0gTW9ub3Rvbmlj
VGltZTo6bm93KCk7CiAgICAgbV9kb3dubG9hZE1hbmFnZXIuYXBwbGljYXRpb25EaWRFbnRlckJh
Y2tncm91bmQoKTsKIH0KIAogdm9pZCBOZXR3b3JrUHJvY2Vzczo6YXBwbGljYXRpb25XaWxsRW50
ZXJGb3JlZ3JvdW5kKCkKIHsKKyAgICBpZiAoIW1fZW50ZXJCYWNrZ3JvdW5kVGltZXN0YW1wKQor
ICAgICAgICByZXR1cm47CisKKyAgICBtX2VudGVyQmFja2dyb3VuZFRpbWVzdGFtcCA9IHN0ZDo6
bnVsbG9wdDsKICAgICBtX2Rvd25sb2FkTWFuYWdlci5hcHBsaWNhdGlvbldpbGxFbnRlckZvcmVn
cm91bmQoKTsKIH0KIAotdm9pZCBOZXR3b3JrUHJvY2Vzczo6cHJvY2Vzc0RpZFJlc3VtZSgpCit2
b2lkIE5ldHdvcmtQcm9jZXNzOjpwcm9jZXNzRGlkUmVzdW1lKGJvb2wgZm9yRm9yZWdyb3VuZEFj
dGl2aXR5KQogewotICAgIFJFTEVBU0VfTE9HKFByb2Nlc3NTdXNwZW5zaW9uLCAiJXAgLSBOZXR3
b3JrUHJvY2Vzczo6cHJvY2Vzc0RpZFJlc3VtZSgpIiwgdGhpcyk7CisgICAgU3RyaW5nIGJhY2tn
cm91bmRJbnRlcnZhbFN0cmluZyA9ICIiOworICAgIGlmIChtX2VudGVyQmFja2dyb3VuZFRpbWVz
dGFtcCkKKyAgICAgICAgYmFja2dyb3VuZEludGVydmFsU3RyaW5nID0gbWFrZVN0cmluZygiIFBy
b2Nlc3MgaXMgaW4gYmFja2dyb3VuZCBmb3IgIiwgKE1vbm90b25pY1RpbWU6Om5vdygpIC0gbV9l
bnRlckJhY2tncm91bmRUaW1lc3RhbXAudmFsdWUoKSkudmFsdWUoKSwgIiBzZWNvbmRzIik7Cisg
ICAgUkVMRUFTRV9MT0coUHJvY2Vzc1N1c3BlbnNpb24sICIlcCAtIE5ldHdvcmtQcm9jZXNzOjpw
cm9jZXNzRGlkUmVzdW1lKCkgZm9yRm9yZWdyb3VuZEFjdGl2aXR5PSVkJXMiLCB0aGlzLCBmb3JG
b3JlZ3JvdW5kQWN0aXZpdHksIGJhY2tncm91bmRJbnRlcnZhbFN0cmluZy51dGY4KCkuZGF0YSgp
KTsKIAogICAgIG1faXNTdXNwZW5kZWQgPSBmYWxzZTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5oIGIvU291cmNlL1dlYktpdC9OZXR3
b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5oCmluZGV4IGY3NzA0NWU1YWY4ZTQzNzIxNjJhNTE2
N2NhZmMwMDg0ZDMwOWU4ODkuLjY5YTc4MTMwYWNkMjgwNjFhYzBjMTViNjIwNmNmODkzYzU0NDk1
N2EgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nl
c3MuaAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLmgK
QEAgLTE3NCw3ICsxNzQsNyBAQCBwdWJsaWM6CiAKICAgICB2b2lkIHByb2Nlc3NXaWxsU3VzcGVu
ZEltbWluZW50bHlGb3JUZXN0aW5nU3luYyhDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYpOwog
ICAgIHZvaWQgcHJlcGFyZVRvU3VzcGVuZChib29sIGlzU3VzcGVuc2lvbkltbWluZW50LCBDb21w
bGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYpOwotICAgIHZvaWQgcHJvY2Vzc0RpZFJlc3VtZSgpOwor
ICAgIHZvaWQgcHJvY2Vzc0RpZFJlc3VtZShib29sIGZvckZvcmVncm91bmRBY3Rpdml0eSk7CiAK
ICAgICBDYWNoZU1vZGVsIGNhY2hlTW9kZWwoKSBjb25zdCB7IHJldHVybiBtX2NhY2hlTW9kZWw7
IH0KIApAQCAtNDczLDYgKzQ3Myw4IEBAIHByaXZhdGU6CiAKICNpZiBQTEFURk9STShJT1NfRkFN
SUxZKQogICAgIHZvaWQgc2V0SXNIb2xkaW5nTG9ja2VkRmlsZXMoYm9vbCk7CisgICAgdm9pZCBh
ZGRCYWNrZ3JvdW5kU3RhdGVPYnNlcnZlcnMoKTsKKyAgICB2b2lkIHJlbW92ZUJhY2tncm91bmRT
dGF0ZU9ic2VydmVycygpOwogI2VuZGlmCiAKICAgICAvLyBDb25uZWN0aW9ucyB0byBXZWJQcm9j
ZXNzZXMuCkBAIC01MjUsNiArNTI3LDExIEBAIHByaXZhdGU6CiAgICAgYm9vbCBtX3ByaXZhdGVD
bGlja01lYXN1cmVtZW50RW5hYmxlZCB7IHRydWUgfTsKICAgICBib29sIG1fZnRwRW5hYmxlZCB7
IGZhbHNlIH07CiAgICAgYm9vbCBtX2lzU3VzcGVuZGVkIHsgZmFsc2UgfTsKKyAgICBzdGQ6Om9w
dGlvbmFsPE1vbm90b25pY1RpbWU+IG1fZW50ZXJCYWNrZ3JvdW5kVGltZXN0YW1wOworI2lmIFBM
QVRGT1JNKElPU19GQU1JTFkpCisgICAgUmV0YWluUHRyPGlkPiBtX2JhY2tncm91bmRPYnNlcnZl
cjsKKyAgICBSZXRhaW5QdHI8aWQ+IG1fZm9yZWdyb3VuZE9ic2VydmVyOworI2VuZGlmCiB9Owog
CiAjaWYgIVBMQVRGT1JNKENPQ09BKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3Jr
UHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5tZXNzYWdlcy5pbiBiL1NvdXJjZS9XZWJLaXQvTmV0d29y
a1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MubWVzc2FnZXMuaW4KaW5kZXggNjc4OGQ2NWNjNmE4Y2Nk
M2YxMWY5MGIyZDY3NzllMjFhYmQxY2RjNi4uNDE2YWMwNDQzODJiODMwZDU4ZmE5NjgyYWRiYTA3
ODQwOGUwMTFlMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3
b3JrUHJvY2Vzcy5tZXNzYWdlcy5pbgorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNz
L05ldHdvcmtQcm9jZXNzLm1lc3NhZ2VzLmluCkBAIC03NSw3ICs3NSw3IEBAIG1lc3NhZ2VzIC0+
IE5ldHdvcmtQcm9jZXNzIExlZ2FjeVJlY2VpdmVyIHsKIAogICAgIFByb2Nlc3NXaWxsU3VzcGVu
ZEltbWluZW50bHlGb3JUZXN0aW5nU3luYygpIC0+ICgpIFN5bmNocm9ub3VzCiAgICAgUHJlcGFy
ZVRvU3VzcGVuZChib29sIGlzU3VzcGVuc2lvbkltbWluZW50KSAtPiAoKQotICAgIFByb2Nlc3NE
aWRSZXN1bWUoKQorICAgIFByb2Nlc3NEaWRSZXN1bWUoYm9vbCBmb3JGb3JlZ3JvdW5kQWN0aXZp
dHkpCiAKICAgICBQcmVjb25uZWN0VG8oUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBXZWJLaXQ6
OldlYlBhZ2VQcm94eUlkZW50aWZpZXIgd2ViUGFnZVByb3h5SUQsIFdlYkNvcmU6OlBhZ2VJZGVu
dGlmaWVyIHdlYlBhZ2VJRCwgVVJMIHVybCwgU3RyaW5nIHVzZXJBZ2VudCwgZW51bTp1aW50OF90
IFdlYkNvcmU6OlN0b3JlZENyZWRlbnRpYWxzUG9saWN5IHN0b3JlZENyZWRlbnRpYWxzUG9saWN5
LCBlbnVtOmJvb2wgc3RkOjpvcHRpb25hbDxXZWJLaXQ6Ok5hdmlnYXRpbmdUb0FwcEJvdW5kRG9t
YWluPiBpc05hdmlnYXRpbmdUb0FwcEJvdW5kRG9tYWluLCBlbnVtOmJvb2wgV2ViS2l0OjpMYXN0
TmF2aWdhdGlvbldhc0FwcEluaXRpYXRlZCBsYXN0TmF2aWdhdGlvbldhc0FwcEluaXRpYXRlZCk7
CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvaW9zL05ldHdvcmtQ
cm9jZXNzSU9TLm1tIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9pb3MvTmV0d29ya1By
b2Nlc3NJT1MubW0KaW5kZXggODI3ZGRmNmVjZjRkOTI5MWUwYmZmNzRmYTVlYmI4MTdiN2RjZmZk
Ny4uYzg3MjhmYWUzNGYwZWVjMTU0OWY4OGRiNTU4ODg5YzY0MjA3ZWEzNSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9pb3MvTmV0d29ya1Byb2Nlc3NJT1MubW0KKysr
IGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9pb3MvTmV0d29ya1Byb2Nlc3NJT1MubW0K
QEAgLTY0LDYgKzY0LDcgQEAgdm9pZCBOZXR3b3JrUHJvY2Vzczo6cGxhdGZvcm1Jbml0aWFsaXpl
TmV0d29ya1Byb2Nlc3MoY29uc3QgTmV0d29ya1Byb2Nlc3NDcmVhdGkKICAgICBpbml0aWFsaXpl
U2VjSXRlbVNoaW0oKnRoaXMpOwogI2VuZGlmCiAgICAgcGxhdGZvcm1Jbml0aWFsaXplTmV0d29y
a1Byb2Nlc3NDb2NvYShwYXJhbWV0ZXJzKTsKKyAgICBhZGRCYWNrZ3JvdW5kU3RhdGVPYnNlcnZl
cnMoKTsKIH0KIAogdm9pZCBOZXR3b3JrUHJvY2Vzczo6cGxhdGZvcm1UZXJtaW5hdGUoKQpAQCAt
MTEwLDYgKzExMSwyNCBAQCB2b2lkIE5ldHdvcmtQcm9jZXNzOjpzZXRJc0hvbGRpbmdMb2NrZWRG
aWxlcyhib29sIGlzSG9sZGluZ0xvY2tlZEZpbGVzKQogICAgIG1faG9sZGluZ0xvY2tlZEZpbGVB
c3NlcnRpb24gPSBQcm9jZXNzQXNzZXJ0aW9uOjpjcmVhdGUoZ2V0Q3VycmVudFByb2Nlc3NJRCgp
LCAiTmV0d29yayBQcm9jZXNzIGlzIGhvbGRpbmcgbG9ja2VkIGZpbGVzIl9zLCBQcm9jZXNzQXNz
ZXJ0aW9uVHlwZTo6RmluaXNoVGFza0ludGVycnVwdGFibGUsIFByb2Nlc3NBc3NlcnRpb246Ok1v
ZGU6OlN5bmMpOwogfQogCit2b2lkIE5ldHdvcmtQcm9jZXNzOjphZGRCYWNrZ3JvdW5kU3RhdGVP
YnNlcnZlcnMoKQoreworICAgIG1fYmFja2dyb3VuZE9ic2VydmVyID0gW1tOU05vdGlmaWNhdGlv
bkNlbnRlciBkZWZhdWx0Q2VudGVyXSBhZGRPYnNlcnZlckZvck5hbWU6VUlBcHBsaWNhdGlvbkRp
ZEVudGVyQmFja2dyb3VuZE5vdGlmaWNhdGlvbiBvYmplY3Q6W1VJQXBwbGljYXRpb24gc2hhcmVk
QXBwbGljYXRpb25dIHF1ZXVlOm5pbCB1c2luZ0Jsb2NrOm1ha2VCbG9ja1B0cihbd2Vha1RoaXMg
PSBXZWFrUHRyIHsgKnRoaXMgfV0oTlNOb3RpZmljYXRpb24gKikgeworICAgICAgICBpZiAod2Vh
a1RoaXMpCisgICAgICAgICAgICB3ZWFrVGhpcy0+YXBwbGljYXRpb25EaWRFbnRlckJhY2tncm91
bmQoKTsKKyAgICB9KS5nZXQoKV07CisgICAgbV9mb3JlZ3JvdW5kT2JzZXJ2ZXIgPSBbW05TTm90
aWZpY2F0aW9uQ2VudGVyIGRlZmF1bHRDZW50ZXJdIGFkZE9ic2VydmVyRm9yTmFtZTpVSUFwcGxp
Y2F0aW9uV2lsbEVudGVyRm9yZWdyb3VuZE5vdGlmaWNhdGlvbiBvYmplY3Q6W1VJQXBwbGljYXRp
b24gc2hhcmVkQXBwbGljYXRpb25dIHF1ZXVlOm5pbCB1c2luZ0Jsb2NrOm1ha2VCbG9ja1B0cihb
d2Vha1RoaXMgPSBXZWFrUHRyIHsgKnRoaXMgfV0oTlNOb3RpZmljYXRpb24gKikgeworICAgICAg
ICBpZiAod2Vha1RoaXMpCisgICAgICAgICAgICB3ZWFrVGhpcy0+YXBwbGljYXRpb25XaWxsRW50
ZXJGb3JlZ3JvdW5kKCk7CisgICAgfSkuZ2V0KCldOworfQorCit2b2lkIE5ldHdvcmtQcm9jZXNz
OjpyZW1vdmVCYWNrZ3JvdW5kU3RhdGVPYnNlcnZlcnMoKQoreworICAgIFtbTlNOb3RpZmljYXRp
b25DZW50ZXIgZGVmYXVsdENlbnRlcl0gcmVtb3ZlT2JzZXJ2ZXI6bV9iYWNrZ3JvdW5kT2JzZXJ2
ZXIuZ2V0KCldOworICAgIFtbTlNOb3RpZmljYXRpb25DZW50ZXIgZGVmYXVsdENlbnRlcl0gcmVt
b3ZlT2JzZXJ2ZXI6bV9mb3JlZ3JvdW5kT2JzZXJ2ZXIuZ2V0KCldOworfQorCiB9IC8vIG5hbWVz
cGFjZSBXZWJLaXQKIAogI2VuZGlmIC8vIFBMQVRGT1JNKElPU19GQU1JTFkpCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9HUFUvR1BVUHJvY2Vzc1Byb3h5LmNwcCBiL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL0dQVS9HUFVQcm9jZXNzUHJveHkuY3BwCmluZGV4IDRhZjI3NjAy
NzkxMzU1MjFlYzEzYWI4YzMyMTcxZGZkMzFmOGNmYjQuLjg0M2RjZDJlNWY4NDY0YmExNTFhYmY0
OTQ1NGZjYThlNGZiM2FmYWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0dQ
VS9HUFVQcm9jZXNzUHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0dQVS9H
UFVQcm9jZXNzUHJveHkuY3BwCkBAIC01NzUsNyArNTc1LDcgQEAgdm9pZCBHUFVQcm9jZXNzUHJv
eHk6OnNlbmRQcmVwYXJlVG9TdXNwZW5kKElzU3VzcGVuc2lvbkltbWluZW50IGlzU3VzcGVuc2lv
bkltbWkKICAgICBzZW5kV2l0aEFzeW5jUmVwbHkoTWVzc2FnZXM6OkdQVVByb2Nlc3M6OlByZXBh
cmVUb1N1c3BlbmQoaXNTdXNwZW5zaW9uSW1taW5lbnQgPT0gSXNTdXNwZW5zaW9uSW1taW5lbnQ6
OlllcyksIFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpLCAwLCB7IH0sIFNob3VsZFN0YXJ0UHJv
Y2Vzc1Rocm90dGxlckFjdGl2aXR5OjpObyk7CiB9CiAKLXZvaWQgR1BVUHJvY2Vzc1Byb3h5Ojpz
ZW5kUHJvY2Vzc0RpZFJlc3VtZSgpCit2b2lkIEdQVVByb2Nlc3NQcm94eTo6c2VuZFByb2Nlc3NE
aWRSZXN1bWUoUmVzdW1lUmVhc29uKQogewogICAgIGlmIChjYW5TZW5kTWVzc2FnZSgpKQogICAg
ICAgICBzZW5kKE1lc3NhZ2VzOjpHUFVQcm9jZXNzOjpQcm9jZXNzRGlkUmVzdW1lKCksIDApOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvR1BVL0dQVVByb2Nlc3NQcm94eS5o
IGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvR1BVL0dQVVByb2Nlc3NQcm94eS5oCmluZGV4IDQ0
M2U5YjdhNDY2YWZlNTFlODg0YjRmOTQzOGM0Y2M2NWQ3M2I4ZGMuLjJiNDc4ODdiODQxZTE4YjBh
MTZhMzA1NzRkZjAxYjE5ZGI2MWM1Y2EgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL0dQVS9HUFVQcm9jZXNzUHJveHkuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9H
UFUvR1BVUHJvY2Vzc1Byb3h5LmgKQEAgLTEyNyw3ICsxMjcsNyBAQCBwcml2YXRlOgogICAgIC8v
IFByb2Nlc3NUaHJvdHRsZXJDbGllbnQKICAgICBBU0NJSUxpdGVyYWwgY2xpZW50TmFtZSgpIGNv
bnN0IGZpbmFsIHsgcmV0dXJuICJHUFVQcm9jZXNzIl9zOyB9CiAgICAgdm9pZCBzZW5kUHJlcGFy
ZVRvU3VzcGVuZChJc1N1c3BlbnNpb25JbW1pbmVudCwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgp
PiYmKSBmaW5hbDsKLSAgICB2b2lkIHNlbmRQcm9jZXNzRGlkUmVzdW1lKCkgZmluYWw7CisgICAg
dm9pZCBzZW5kUHJvY2Vzc0RpZFJlc3VtZShSZXN1bWVSZWFzb24pIGZpbmFsOwogCiAgICAgLy8g
UHJvY2Vzc0xhdW5jaGVyOjpDbGllbnQKICAgICB2b2lkIGRpZEZpbmlzaExhdW5jaGluZyhQcm9j
ZXNzTGF1bmNoZXIqLCBJUEM6OkNvbm5lY3Rpb246OklkZW50aWZpZXIpIG92ZXJyaWRlOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvTmV0d29yay9OZXR3b3JrUHJvY2Vzc1By
b3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nlc3NQ
cm94eS5jcHAKaW5kZXggMzg4NWU0ZGY2YWIwOGMyZDlmNGE3YzljNTNlODBmMjhhYTRhMTk1ZC4u
MTU4NDUyYzM3MzYxODU2MWFiYzA2NzhmNjBjYzIyNWI2NDM4NjljMyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvTmV0d29yay9OZXR3b3JrUHJvY2Vzc1Byb3h5LmNwcAorKysg
Yi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9jZXNzUHJveHkuY3Bw
CkBAIC0xMzk5LDEwICsxMzk5LDEwIEBAIHZvaWQgTmV0d29ya1Byb2Nlc3NQcm94eTo6c2VuZFBy
ZXBhcmVUb1N1c3BlbmQoSXNTdXNwZW5zaW9uSW1taW5lbnQgaXNTdXNwZW5zaW9uCiAgICAgc2Vu
ZFdpdGhBc3luY1JlcGx5KE1lc3NhZ2VzOjpOZXR3b3JrUHJvY2Vzczo6UHJlcGFyZVRvU3VzcGVu
ZChpc1N1c3BlbnNpb25JbW1pbmVudCA9PSBJc1N1c3BlbnNpb25JbW1pbmVudDo6WWVzKSwgV1RG
TW92ZShjb21wbGV0aW9uSGFuZGxlciksIDAsIHsgfSwgU2hvdWxkU3RhcnRQcm9jZXNzVGhyb3R0
bGVyQWN0aXZpdHk6Ok5vKTsKIH0KIAotdm9pZCBOZXR3b3JrUHJvY2Vzc1Byb3h5OjpzZW5kUHJv
Y2Vzc0RpZFJlc3VtZSgpCit2b2lkIE5ldHdvcmtQcm9jZXNzUHJveHk6OnNlbmRQcm9jZXNzRGlk
UmVzdW1lKFJlc3VtZVJlYXNvbiByZWFzb24pCiB7CiAgICAgaWYgKGNhblNlbmRNZXNzYWdlKCkp
Ci0gICAgICAgIHNlbmQoTWVzc2FnZXM6Ok5ldHdvcmtQcm9jZXNzOjpQcm9jZXNzRGlkUmVzdW1l
KCksIDApOworICAgICAgICBzZW5kKE1lc3NhZ2VzOjpOZXR3b3JrUHJvY2Vzczo6UHJvY2Vzc0Rp
ZFJlc3VtZShyZWFzb24gPT0gUmVzdW1lUmVhc29uOjpGb3JlZ3JvdW5kQWN0aXZpdHkpLCAwKTsK
IH0KIAogdm9pZCBOZXR3b3JrUHJvY2Vzc1Byb3h5OjpmbHVzaENvb2tpZXMoUEFMOjpTZXNzaW9u
SUQgc2Vzc2lvbklELCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYgY29tcGxldGlvbkhhbmRs
ZXIpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQ
cm9jZXNzUHJveHkuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL05ldHdvcmsvTmV0d29ya1By
b2Nlc3NQcm94eS5oCmluZGV4IGUwYWVlMmY3YjM2YWJkY2U2MzQ4NTc3NWMxNTQyYmM3NTRiZDI1
MjMuLjU1MzgzZTdlYjE1NDMxOGIxZWIxZDcyOWI5MmZhM2ViN2FkZDEzZDMgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nlc3NQcm94eS5oCisr
KyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nlc3NQcm94eS5o
CkBAIC0yMzYsNyArMjM2LDcgQEAgcHVibGljOgogICAgIHZvaWQgY3JlYXRlU3ltTGlua0ZvckZp
bGVVcGdyYWRlKGNvbnN0IFN0cmluZyYgaW5kZXhlZERhdGFiYXNlRGlyZWN0b3J5KTsKIAogICAg
IC8vIFByb2Nlc3NUaHJvdHRsZXJDbGllbnQKLSAgICB2b2lkIHNlbmRQcm9jZXNzRGlkUmVzdW1l
KCkgZmluYWw7CisgICAgdm9pZCBzZW5kUHJvY2Vzc0RpZFJlc3VtZShSZXN1bWVSZWFzb24gPSBS
ZXN1bWVSZWFzb246OkZvcmVncm91bmRBY3Rpdml0eSkgZmluYWw7CiAgICAgQVNDSUlMaXRlcmFs
IGNsaWVudE5hbWUoKSBjb25zdCBmaW5hbCB7IHJldHVybiAiTmV0d29ya1Byb2Nlc3MiX3M7IH0K
ICAgICAKICAgICBzdGF0aWMgdm9pZCBzZXRTdXNwZW5zaW9uQWxsb3dlZEZvclRlc3RpbmcoYm9v
bCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQ
cm9jZXNzUHJveHlDb2NvYS5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL05ldHdvcmsvTmV0
d29ya1Byb2Nlc3NQcm94eUNvY29hLm1tCmluZGV4IGI2NGI1MDIwNjFiNDg5YzM3OTU1YzI5NTA3
NTMyN2RiYjAxNjRlMmEuLjE0NWRmZmM1MTU1OGFlYTRlYmY2ZWQxZmYyYmNmYWQ2OGFmNWIyMjYg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nl
c3NQcm94eUNvY29hLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL05ldHdvcmsvTmV0
d29ya1Byb2Nlc3NQcm94eUNvY29hLm1tCkBAIC0yNyw2ICsyNyw3IEBACiAjaW1wb3J0ICJOZXR3
b3JrUHJvY2Vzc1Byb3h5LmgiCiAKICNpbXBvcnQgIkxhdW5jaFNlcnZpY2VzRGF0YWJhc2VYUEND
b25zdGFudHMuaCIKKyNpbXBvcnQgIk5ldHdvcmtQcm9jZXNzTWVzc2FnZXMuaCIKICNpbXBvcnQg
IldlYlByb2Nlc3NQb29sLmgiCiAjaW1wb3J0ICJYUENFbmRwb2ludC5oIgogCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Qcm9jZXNzVGhyb3R0bGVyLmNwcCBiL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL1Byb2Nlc3NUaHJvdHRsZXIuY3BwCmluZGV4IGI2OWI2NDk2ZmFjODAy
YWI0M2VmYmY4MjdmZGQzMmE5YjBmZDE1YWIuLjQ3MTJmMmVjZmJhMmM1YTk5ZTJkNmJhZDRmMWUw
NWM1N2RkZTg2YTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1Byb2Nlc3NU
aHJvdHRsZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1Byb2Nlc3NUaHJvdHRs
ZXIuY3BwCkBAIC0xNTksNyArMTU5LDcgQEAgdm9pZCBQcm9jZXNzVGhyb3R0bGVyOjp1cGRhdGVB
c3NlcnRpb25JZk5lZWRlZCgpCiAgICAgICAgICAgICAgICAgUFJPQ0VTU1RIUk9UVExFUl9SRUxF
QVNFX0xPRygidXBkYXRlQXNzZXJ0aW9uSWZOZWVkZWQ6IHNlbmRpbmcgUHJvY2Vzc0RpZFJlc3Vt
ZSBJUEMgYmVjYXVzZSB0aGUgcHJvY2VzcyB3YXMgc3VzcGVuZGVkIik7CiAgICAgICAgICAgICBl
bHNlCiAgICAgICAgICAgICAgICAgUFJPQ0VTU1RIUk9UVExFUl9SRUxFQVNFX0xPRygidXBkYXRl
QXNzZXJ0aW9uSWZOZWVkZWQ6IHNlbmRpbmcgUHJvY2Vzc0RpZFJlc3VtZSBJUEMgYmVjYXVzZSB0
aGUgV2ViUHJvY2VzcyBpcyBzdGlsbCBwcm9jZXNzaW5nIHJlcXVlc3QgdG8gc3VzcGVuZD0lIiBQ
Ukl1NjQsICptX3BlbmRpbmdSZXF1ZXN0VG9TdXNwZW5kSUQpOwotICAgICAgICAgICAgbV9wcm9j
ZXNzLnNlbmRQcm9jZXNzRGlkUmVzdW1lKCk7CisgICAgICAgICAgICBtX3Byb2Nlc3Muc2VuZFBy
b2Nlc3NEaWRSZXN1bWUoZXhwZWN0ZWRBc3NlcnRpb25UeXBlKCkgPT0gUHJvY2Vzc0Fzc2VydGlv
blR5cGU6OkZvcmVncm91bmQgPyBQcm9jZXNzVGhyb3R0bGVyQ2xpZW50OjpSZXN1bWVSZWFzb246
OkZvcmVncm91bmRBY3Rpdml0eSA6IFByb2Nlc3NUaHJvdHRsZXJDbGllbnQ6OlJlc3VtZVJlYXNv
bjo6QmFja2dyb3VuZEFjdGl2aXR5KTsKICAgICAgICAgICAgIGNsZWFyUGVuZGluZ1JlcXVlc3RU
b1N1c3BlbmQoKTsKICAgICAgICAgfQogICAgIH0gZWxzZSB7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9Qcm9jZXNzVGhyb3R0bGVyQ2xpZW50LmggYi9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9Qcm9jZXNzVGhyb3R0bGVyQ2xpZW50LmgKaW5kZXggMTE4YmYwZGQyMzU4MjI0
YzJlYzdkZjliOTY1MWU5ZjEzNzhlNmUwMC4uNzZhNWE5Mzg4YmJjZjQwZTk5NGQzOTdiMmQ0ZmRk
MDBlNWQ5YTg0MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvUHJvY2Vzc1Ro
cm90dGxlckNsaWVudC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1Byb2Nlc3NUaHJv
dHRsZXJDbGllbnQuaApAQCAtMzcsNyArMzcsOCBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB+UHJv
Y2Vzc1Rocm90dGxlckNsaWVudCgpIHsgfQogCiAgICAgdmlydHVhbCB2b2lkIHNlbmRQcmVwYXJl
VG9TdXNwZW5kKElzU3VzcGVuc2lvbkltbWluZW50LCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+
JiYpID0gMDsKLSAgICB2aXJ0dWFsIHZvaWQgc2VuZFByb2Nlc3NEaWRSZXN1bWUoKSA9IDA7Cisg
ICAgZW51bSBSZXN1bWVSZWFzb24gOiBib29sIHsgRm9yZWdyb3VuZEFjdGl2aXR5LCBCYWNrZ3Jv
dW5kQWN0aXZpdHkgfTsKKyAgICB2aXJ0dWFsIHZvaWQgc2VuZFByb2Nlc3NEaWRSZXN1bWUoUmVz
dW1lUmVhc29uID0gRm9yZWdyb3VuZEFjdGl2aXR5KSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIGRp
ZFNldEFzc2VydGlvblR5cGUoUHJvY2Vzc0Fzc2VydGlvblR5cGUpIHsgfTsKICAgICB2aXJ0dWFs
IEFTQ0lJTGl0ZXJhbCBjbGllbnROYW1lKCkgY29uc3QgPSAwOwogfTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYkF1dGhlbnRpY2F0aW9uL1dlYkF1dGhuUHJvY2Vzc1By
b3h5LmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJBdXRoZW50aWNhdGlvbi9XZWJBdXRo
blByb2Nlc3NQcm94eS5oCmluZGV4IGM1YjE2NzFiMWFhMDYzNGQxMzJiOWE2ZWY4OWFlODNlY2Zi
MDNiM2UuLjExYmYwNDcxN2E2NTIwZmZhNGE2N2UzNzg2MGRjYWJiZjYyZTU2NTMgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYkF1dGhlbnRpY2F0aW9uL1dlYkF1dGhuUHJv
Y2Vzc1Byb3h5LmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViQXV0aGVudGljYXRp
b24vV2ViQXV0aG5Qcm9jZXNzUHJveHkuaApAQCAtNTUsNyArNTUsNyBAQCBwdWJsaWM6CiAgICAg
dm9pZCB1cGRhdGVQcm9jZXNzQXNzZXJ0aW9uKCk7CiAKICAgICAvLyBQcm9jZXNzVGhyb3R0bGVy
Q2xpZW50Ci0gICAgdm9pZCBzZW5kUHJvY2Vzc0RpZFJlc3VtZSgpIGZpbmFsIHsgfQorICAgIHZv
aWQgc2VuZFByb2Nlc3NEaWRSZXN1bWUoUmVzdW1lUmVhc29uKSBmaW5hbCB7IH0KICAgICBBU0NJ
SUxpdGVyYWwgY2xpZW50TmFtZSgpIGNvbnN0IGZpbmFsIHsgcmV0dXJuICJXZWJBdXRoblByb2Nl
c3MiX3M7IH0KIAogcHJpdmF0ZToKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L1dlYlByb2Nlc3NQcm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNz
UHJveHkuY3BwCmluZGV4IDJmMWU2OTM2YmU2MTQ1ODEyZDQ3N2ZhYmE3ZGMyYTgwMzc4NGU3YWYu
LjM2YzJiNWFhYjMxYWE3MzgyMjhkZjlmNmQxODA4YTAwNTg5MzA1MTIgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5jcHAKKysrIGIvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5LmNwcApAQCAtMTQzNSw3ICsxNDM1LDcgQEAg
dm9pZCBXZWJQcm9jZXNzUHJveHk6OnNlbmRQcmVwYXJlVG9TdXNwZW5kKElzU3VzcGVuc2lvbklt
bWluZW50IGlzU3VzcGVuc2lvbkltbWkKICAgICBzZW5kV2l0aEFzeW5jUmVwbHkoTWVzc2FnZXM6
OldlYlByb2Nlc3M6OlByZXBhcmVUb1N1c3BlbmQoaXNTdXNwZW5zaW9uSW1taW5lbnQgPT0gSXNT
dXNwZW5zaW9uSW1taW5lbnQ6OlllcyksIFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpLCAwLCB7
IH0sIFNob3VsZFN0YXJ0UHJvY2Vzc1Rocm90dGxlckFjdGl2aXR5OjpObyk7CiB9CiAKLXZvaWQg
V2ViUHJvY2Vzc1Byb3h5OjpzZW5kUHJvY2Vzc0RpZFJlc3VtZSgpCit2b2lkIFdlYlByb2Nlc3NQ
cm94eTo6c2VuZFByb2Nlc3NEaWRSZXN1bWUoUmVzdW1lUmVhc29uKQogewogICAgIFdFQlBST0NF
U1NQUk9YWV9SRUxFQVNFX0xPRyhQcm9jZXNzU3VzcGVuc2lvbiwgInNlbmRQcm9jZXNzRGlkUmVz
dW1lOiIpOwogICAgIGlmIChjYW5TZW5kTWVzc2FnZSgpKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5LmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9XZWJQcm9jZXNzUHJveHkuaAppbmRleCBiZmM3OTU2YzAyZWU1YWNlMmQ1NTczNDNjNTA3NTM3
YTg1Y2ZkNGZjLi4xMTQxN2VhN2M0NmViZjZjOTg3M2Q1YzQyMWUyZDU1NmI2ODljZDQ0IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkuaAorKysgYi9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkuaApAQCAtMzI3LDcgKzMyNyw3
IEBAIHB1YmxpYzoKIAogICAgIC8vIFByb2Nlc3NUaHJvdHRsZXJDbGllbnQKICAgICB2b2lkIHNl
bmRQcmVwYXJlVG9TdXNwZW5kKElzU3VzcGVuc2lvbkltbWluZW50LCBDb21wbGV0aW9uSGFuZGxl
cjx2b2lkKCk+JiYpIGZpbmFsOwotICAgIHZvaWQgc2VuZFByb2Nlc3NEaWRSZXN1bWUoKSBmaW5h
bDsKKyAgICB2b2lkIHNlbmRQcm9jZXNzRGlkUmVzdW1lKFJlc3VtZVJlYXNvbiA9IFJlc3VtZVJl
YXNvbjo6Rm9yZWdyb3VuZEFjdGl2aXR5KSBmaW5hbDsKICAgICB2b2lkIGRpZFNldEFzc2VydGlv
blR5cGUoUHJvY2Vzc0Fzc2VydGlvblR5cGUpIGZpbmFsOwogICAgIEFTQ0lJTGl0ZXJhbCBjbGll
bnROYW1lKCkgY29uc3QgZmluYWwgeyByZXR1cm4gIldlYlByb2Nlc3MiX3M7IH0KIAo=
</data>
<flag name="commit-queue"
          id="483215"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>455263</attachid>
            <date>2022-03-21 12:20:08 -0700</date>
            <delta_ts>2022-03-21 13:49:13 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-238082-20220321122007.patch</filename>
            <type>text/plain</type>
            <size>17530</size>
            <attacher name="Sihui Liu">sihui_liu</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjkxNTU5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IGEzMjE1YjQ0Mzc5N2M3NjNm
MDM1MjU5MThmZTFhNWUzZWViNGJlN2YuLmY3NTc3YzUxZWIwOTE5OGM3NmU2NmVjODlhMTMxNTdk
OWQ0ZmVlYmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNDMgQEAKKzIwMjItMDMtMjEgIFNpaHVpIExp
dSAgPHNpaHVpX2xpdUBhcHBsZS5jb20+CisKKyAgICAgICAgQWRkIGxvZ2dpbmcgYWJvdXQgcHJv
Y2VzcyBlbnRlcmluZyBiYWNrZ3JvdW5kIHRvIE5ldHdvcmtQcm9jZXNzOjpwcm9jZXNzRGlkUmVz
dW1lCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzgw
ODIKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBJbiBy
ZGFyOi8vODI0MTI3MzMsIHdlIGZvdW5kIG5ldHdvcmsgcHJvY2VzcyBjYW4gYmUgc3VzcGVuZGVk
IHJpZ2h0IGFmdGVyIGl0IHJlY2VpdmVzIHByb2Nlc3NEaWRSZXN1bWUgbWVzc2FnZS4gCisgICAg
ICAgIEZvciBuZXR3b3JrIHBvcmNlc3MsIHByb2Nlc3NEaWRSZXN1bWUgbWVhbnMgcHJvY2VzcyBp
cyBub3Qgc3VzcGVuZGVkIGFuZCBpdCBpcyBzYWZlIHRvIHBlcmZvcm0gZGF0YWJhc2UgCisgICAg
ICAgIG9wZXJhdGlvbnMuIExldCdzIGFkZCBsb2dnaW5nIHRvIGNoZWNrIHdoZW4gYW5kIHdoeSBw
cm9jZXNzRGlkUmVzdW1lIG1lc3NhZ2UgaXMgc2VudC4gSWYgdGhlIGxvZ2dpbmcgY29uZmlybXMK
KyAgICAgICAgdGhhdCBwcm9jZXNzRGlkUmVzdW1lIG1lc3NhZ2UgY2FuIGJlIHJlY2VpdmVkIHdo
ZW4gcHJvY2VzcyBpcyBjbG9zZSB0byBhc3NlcnRpb24gdGltZW91dCwgd2UgcHJvYmFibHkgd2Fu
dCB0byAKKyAgICAgICAgaWdub3JlIHN1Y2ggbWVzc2FnZSBhbmQgcmVzdW1lIGRhdGFiYXNlIG9w
ZXJhdGlvbnMgd2hlbiBhcHBsaWNhdGlvbiBhY3R1YWxseSBlbnRlcnMgZm9yZWdyb3VuZC4KKwor
ICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLmNwcDoKKyAgICAgICAgKFdl
YktpdDo6TmV0d29ya1Byb2Nlc3M6OmRpZENsb3NlKToKKyAgICAgICAgKFdlYktpdDo6TmV0d29y
a1Byb2Nlc3M6OnByZXBhcmVUb1N1c3BlbmQpOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrUHJv
Y2Vzczo6YXBwbGljYXRpb25EaWRFbnRlckJhY2tncm91bmQpOgorICAgICAgICAoV2ViS2l0OjpO
ZXR3b3JrUHJvY2Vzczo6YXBwbGljYXRpb25XaWxsRW50ZXJGb3JlZ3JvdW5kKToKKyAgICAgICAg
KFdlYktpdDo6TmV0d29ya1Byb2Nlc3M6OnByb2Nlc3NEaWRSZXN1bWUpOgorICAgICAgICAqIE5l
dHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLmg6CisgICAgICAgICogTmV0d29ya1Byb2Nlc3Mv
TmV0d29ya1Byb2Nlc3MubWVzc2FnZXMuaW46CisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvaW9z
L05ldHdvcmtQcm9jZXNzSU9TLm1tOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrUHJvY2Vzczo6
cGxhdGZvcm1Jbml0aWFsaXplTmV0d29ya1Byb2Nlc3MpOgorICAgICAgICAoV2ViS2l0OjpOZXR3
b3JrUHJvY2Vzczo6YWRkQmFja2dyb3VuZFN0YXRlT2JzZXJ2ZXJzKToKKyAgICAgICAgKFdlYktp
dDo6TmV0d29ya1Byb2Nlc3M6OnJlbW92ZUJhY2tncm91bmRTdGF0ZU9ic2VydmVycyk6CisgICAg
ICAgICogVUlQcm9jZXNzL0dQVS9HUFVQcm9jZXNzUHJveHkuY3BwOgorICAgICAgICAoV2ViS2l0
OjpHUFVQcm9jZXNzUHJveHk6OnNlbmRQcm9jZXNzRGlkUmVzdW1lKToKKyAgICAgICAgKiBVSVBy
b2Nlc3MvR1BVL0dQVVByb2Nlc3NQcm94eS5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9OZXR3b3Jr
L05ldHdvcmtQcm9jZXNzUHJveHkuY3BwOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrUHJvY2Vz
c1Byb3h5OjpzZW5kUHJvY2Vzc0RpZFJlc3VtZSk6CisgICAgICAgICogVUlQcm9jZXNzL05ldHdv
cmsvTmV0d29ya1Byb2Nlc3NQcm94eS5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9OZXR3b3JrL05l
dHdvcmtQcm9jZXNzUHJveHlDb2NvYS5tbToKKyAgICAgICAgKiBVSVByb2Nlc3MvUHJvY2Vzc1Ro
cm90dGxlci5jcHA6CisgICAgICAgIChXZWJLaXQ6OlByb2Nlc3NUaHJvdHRsZXI6OnVwZGF0ZUFz
c2VydGlvbklmTmVlZGVkKToKKyAgICAgICAgKiBVSVByb2Nlc3MvUHJvY2Vzc1Rocm90dGxlckNs
aWVudC5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJBdXRoZW50aWNhdGlvbi9XZWJBdXRoblBy
b2Nlc3NQcm94eS5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkuY3BwOgor
ICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzUHJveHk6OnNlbmRQcm9jZXNzRGlkUmVzdW1lKToK
KyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5Lmg6CisKIDIwMjItMDMtMjEgIEpv
bmF0aGFuIEJlZGFyZCAgPGpiZWRhcmRAYXBwbGUuY29tPgogCiAgICAgICAgIFVucmV2aWV3ZWQs
IHJldmVydGluZyByMjkxNTU4LgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJv
Y2Vzcy9OZXR3b3JrUHJvY2Vzcy5jcHAgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05l
dHdvcmtQcm9jZXNzLmNwcAppbmRleCBlYjJmNWJiYmRmYTZlMzFhNTkwMGNhYzdmMmEzMGI1NzZl
NTUwY2ZmLi5mYjFjYWI1MzUyYWU0Y2JjNTU2OTUyYjMyY2RiYjA5NmVlOGFhNzdkIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLmNwcAorKysg
Yi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLmNwcApAQCAtMjY5
LDYgKzI2OSwxMCBAQCB2b2lkIE5ldHdvcmtQcm9jZXNzOjpkaWRDbG9zZShJUEM6OkNvbm5lY3Rp
b24mKQogICAgIE5ldHdvcmtTdG9yYWdlTWFuYWdlcjo6Zm9yRWFjaChbJl0oYXV0byYgbWFuYWdl
cikgewogICAgICAgICBtYW5hZ2VyLnN5bmNMb2NhbFN0b3JhZ2UoW2NhbGxiYWNrQWdncmVnYXRv
cl0geyB9KTsKICAgICB9KTsKKworI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCisgICAgcmVtb3Zl
QmFja2dyb3VuZFN0YXRlT2JzZXJ2ZXJzKCk7CisjZW5kaWYKIH0KIAogdm9pZCBOZXR3b3JrUHJv
Y2Vzczo6ZGlkQ3JlYXRlRG93bmxvYWQoKQpAQCAtMjEyOSw3ICsyMTMzLDcgQEAgdm9pZCBOZXR3
b3JrUHJvY2Vzczo6dGVybWluYXRlUmVtb3RlV29ya2VyQ29udGV4dENvbm5lY3Rpb25XaGVuUG9z
c2libGUoUmVtb3RlV28KIAogdm9pZCBOZXR3b3JrUHJvY2Vzczo6cHJlcGFyZVRvU3VzcGVuZChi
b29sIGlzU3VzcGVuc2lvbkltbWluZW50LCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYgY29t
cGxldGlvbkhhbmRsZXIpCiB7Ci0gICAgUkVMRUFTRV9MT0coUHJvY2Vzc1N1c3BlbnNpb24sICIl
cCAtIE5ldHdvcmtQcm9jZXNzOjpwcmVwYXJlVG9TdXNwZW5kKCksIGlzU3VzcGVuc2lvbkltbWlu
ZW50PSVkIiwgdGhpcywgaXNTdXNwZW5zaW9uSW1taW5lbnQpOworICAgIFJFTEVBU0VfTE9HKFBy
b2Nlc3NTdXNwZW5zaW9uLCAiJXAgLSBOZXR3b3JrUHJvY2Vzczo6cHJlcGFyZVRvU3VzcGVuZCgp
LCBpc1N1c3BlbnNpb25JbW1pbmVudD0lZCBQcm9jZXNzIGlzICVzaW4gYmFja2dyb3VuZCIsIHRo
aXMsIGlzU3VzcGVuc2lvbkltbWluZW50LCBtX2VudGVyQmFja2dyb3VuZFRpbWVzdGFtcCA/ICIi
IDogIm5vdCAiKTsKIAogICAgIG1faXNTdXNwZW5kZWQgPSB0cnVlOwogICAgIGxvd01lbW9yeUhh
bmRsZXIoQ3JpdGljYWw6Olllcyk7CkBAIC0yMTYwLDE3ICsyMTY0LDI4IEBAIHZvaWQgTmV0d29y
a1Byb2Nlc3M6OnByZXBhcmVUb1N1c3BlbmQoYm9vbCBpc1N1c3BlbnNpb25JbW1pbmVudCwgQ29t
cGxldGlvbkhhbmRsCiAKIHZvaWQgTmV0d29ya1Byb2Nlc3M6OmFwcGxpY2F0aW9uRGlkRW50ZXJC
YWNrZ3JvdW5kKCkKIHsKKyAgICBpZiAobV9lbnRlckJhY2tncm91bmRUaW1lc3RhbXApCisgICAg
ICAgIHJldHVybjsKKworICAgIG1fZW50ZXJCYWNrZ3JvdW5kVGltZXN0YW1wID0gTW9ub3Rvbmlj
VGltZTo6bm93KCk7CiAgICAgbV9kb3dubG9hZE1hbmFnZXIuYXBwbGljYXRpb25EaWRFbnRlckJh
Y2tncm91bmQoKTsKIH0KIAogdm9pZCBOZXR3b3JrUHJvY2Vzczo6YXBwbGljYXRpb25XaWxsRW50
ZXJGb3JlZ3JvdW5kKCkKIHsKKyAgICBpZiAoIW1fZW50ZXJCYWNrZ3JvdW5kVGltZXN0YW1wKQor
ICAgICAgICByZXR1cm47CisKKyAgICBtX2VudGVyQmFja2dyb3VuZFRpbWVzdGFtcCA9IHN0ZDo6
bnVsbG9wdDsKICAgICBtX2Rvd25sb2FkTWFuYWdlci5hcHBsaWNhdGlvbldpbGxFbnRlckZvcmVn
cm91bmQoKTsKIH0KIAotdm9pZCBOZXR3b3JrUHJvY2Vzczo6cHJvY2Vzc0RpZFJlc3VtZSgpCit2
b2lkIE5ldHdvcmtQcm9jZXNzOjpwcm9jZXNzRGlkUmVzdW1lKGJvb2wgZm9yRm9yZWdyb3VuZEFj
dGl2aXR5KQogewotICAgIFJFTEVBU0VfTE9HKFByb2Nlc3NTdXNwZW5zaW9uLCAiJXAgLSBOZXR3
b3JrUHJvY2Vzczo6cHJvY2Vzc0RpZFJlc3VtZSgpIiwgdGhpcyk7CisgICAgU3RyaW5nIGJhY2tn
cm91bmRJbnRlcnZhbFN0cmluZyA9ICIiOworICAgIGlmIChtX2VudGVyQmFja2dyb3VuZFRpbWVz
dGFtcCkKKyAgICAgICAgYmFja2dyb3VuZEludGVydmFsU3RyaW5nID0gbWFrZVN0cmluZygiIFBy
b2Nlc3MgaXMgaW4gYmFja2dyb3VuZCBmb3IgIiwgKE1vbm90b25pY1RpbWU6Om5vdygpIC0gbV9l
bnRlckJhY2tncm91bmRUaW1lc3RhbXAudmFsdWUoKSkudmFsdWUoKSwgIiBzZWNvbmRzIik7Cisg
ICAgUkVMRUFTRV9MT0coUHJvY2Vzc1N1c3BlbnNpb24sICIlcCAtIE5ldHdvcmtQcm9jZXNzOjpw
cm9jZXNzRGlkUmVzdW1lKCkgZm9yRm9yZWdyb3VuZEFjdGl2aXR5PSVkJXMiLCB0aGlzLCBmb3JG
b3JlZ3JvdW5kQWN0aXZpdHksIGJhY2tncm91bmRJbnRlcnZhbFN0cmluZy51dGY4KCkuZGF0YSgp
KTsKIAogICAgIG1faXNTdXNwZW5kZWQgPSBmYWxzZTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5oIGIvU291cmNlL1dlYktpdC9OZXR3
b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5oCmluZGV4IGY3NzA0NWU1YWY4ZTQzNzIxNjJhNTE2
N2NhZmMwMDg0ZDMwOWU4ODkuLjY5YTc4MTMwYWNkMjgwNjFhYzBjMTViNjIwNmNmODkzYzU0NDk1
N2EgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nl
c3MuaAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLmgK
QEAgLTE3NCw3ICsxNzQsNyBAQCBwdWJsaWM6CiAKICAgICB2b2lkIHByb2Nlc3NXaWxsU3VzcGVu
ZEltbWluZW50bHlGb3JUZXN0aW5nU3luYyhDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYpOwog
ICAgIHZvaWQgcHJlcGFyZVRvU3VzcGVuZChib29sIGlzU3VzcGVuc2lvbkltbWluZW50LCBDb21w
bGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYpOwotICAgIHZvaWQgcHJvY2Vzc0RpZFJlc3VtZSgpOwor
ICAgIHZvaWQgcHJvY2Vzc0RpZFJlc3VtZShib29sIGZvckZvcmVncm91bmRBY3Rpdml0eSk7CiAK
ICAgICBDYWNoZU1vZGVsIGNhY2hlTW9kZWwoKSBjb25zdCB7IHJldHVybiBtX2NhY2hlTW9kZWw7
IH0KIApAQCAtNDczLDYgKzQ3Myw4IEBAIHByaXZhdGU6CiAKICNpZiBQTEFURk9STShJT1NfRkFN
SUxZKQogICAgIHZvaWQgc2V0SXNIb2xkaW5nTG9ja2VkRmlsZXMoYm9vbCk7CisgICAgdm9pZCBh
ZGRCYWNrZ3JvdW5kU3RhdGVPYnNlcnZlcnMoKTsKKyAgICB2b2lkIHJlbW92ZUJhY2tncm91bmRT
dGF0ZU9ic2VydmVycygpOwogI2VuZGlmCiAKICAgICAvLyBDb25uZWN0aW9ucyB0byBXZWJQcm9j
ZXNzZXMuCkBAIC01MjUsNiArNTI3LDExIEBAIHByaXZhdGU6CiAgICAgYm9vbCBtX3ByaXZhdGVD
bGlja01lYXN1cmVtZW50RW5hYmxlZCB7IHRydWUgfTsKICAgICBib29sIG1fZnRwRW5hYmxlZCB7
IGZhbHNlIH07CiAgICAgYm9vbCBtX2lzU3VzcGVuZGVkIHsgZmFsc2UgfTsKKyAgICBzdGQ6Om9w
dGlvbmFsPE1vbm90b25pY1RpbWU+IG1fZW50ZXJCYWNrZ3JvdW5kVGltZXN0YW1wOworI2lmIFBM
QVRGT1JNKElPU19GQU1JTFkpCisgICAgUmV0YWluUHRyPGlkPiBtX2JhY2tncm91bmRPYnNlcnZl
cjsKKyAgICBSZXRhaW5QdHI8aWQ+IG1fZm9yZWdyb3VuZE9ic2VydmVyOworI2VuZGlmCiB9Owog
CiAjaWYgIVBMQVRGT1JNKENPQ09BKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3Jr
UHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5tZXNzYWdlcy5pbiBiL1NvdXJjZS9XZWJLaXQvTmV0d29y
a1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MubWVzc2FnZXMuaW4KaW5kZXggNjc4OGQ2NWNjNmE4Y2Nk
M2YxMWY5MGIyZDY3NzllMjFhYmQxY2RjNi4uNDE2YWMwNDQzODJiODMwZDU4ZmE5NjgyYWRiYTA3
ODQwOGUwMTFlMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3
b3JrUHJvY2Vzcy5tZXNzYWdlcy5pbgorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNz
L05ldHdvcmtQcm9jZXNzLm1lc3NhZ2VzLmluCkBAIC03NSw3ICs3NSw3IEBAIG1lc3NhZ2VzIC0+
IE5ldHdvcmtQcm9jZXNzIExlZ2FjeVJlY2VpdmVyIHsKIAogICAgIFByb2Nlc3NXaWxsU3VzcGVu
ZEltbWluZW50bHlGb3JUZXN0aW5nU3luYygpIC0+ICgpIFN5bmNocm9ub3VzCiAgICAgUHJlcGFy
ZVRvU3VzcGVuZChib29sIGlzU3VzcGVuc2lvbkltbWluZW50KSAtPiAoKQotICAgIFByb2Nlc3NE
aWRSZXN1bWUoKQorICAgIFByb2Nlc3NEaWRSZXN1bWUoYm9vbCBmb3JGb3JlZ3JvdW5kQWN0aXZp
dHkpCiAKICAgICBQcmVjb25uZWN0VG8oUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBXZWJLaXQ6
OldlYlBhZ2VQcm94eUlkZW50aWZpZXIgd2ViUGFnZVByb3h5SUQsIFdlYkNvcmU6OlBhZ2VJZGVu
dGlmaWVyIHdlYlBhZ2VJRCwgVVJMIHVybCwgU3RyaW5nIHVzZXJBZ2VudCwgZW51bTp1aW50OF90
IFdlYkNvcmU6OlN0b3JlZENyZWRlbnRpYWxzUG9saWN5IHN0b3JlZENyZWRlbnRpYWxzUG9saWN5
LCBlbnVtOmJvb2wgc3RkOjpvcHRpb25hbDxXZWJLaXQ6Ok5hdmlnYXRpbmdUb0FwcEJvdW5kRG9t
YWluPiBpc05hdmlnYXRpbmdUb0FwcEJvdW5kRG9tYWluLCBlbnVtOmJvb2wgV2ViS2l0OjpMYXN0
TmF2aWdhdGlvbldhc0FwcEluaXRpYXRlZCBsYXN0TmF2aWdhdGlvbldhc0FwcEluaXRpYXRlZCk7
CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvaW9zL05ldHdvcmtQ
cm9jZXNzSU9TLm1tIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9pb3MvTmV0d29ya1By
b2Nlc3NJT1MubW0KaW5kZXggODI3ZGRmNmVjZjRkOTI5MWUwYmZmNzRmYTVlYmI4MTdiN2RjZmZk
Ny4uYWQ2ZGI2YzM0NGY1NTM2MjJiNmY2ZjFkNWIzYzcwMWMwNDE4ZjBhZCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9pb3MvTmV0d29ya1Byb2Nlc3NJT1MubW0KKysr
IGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9pb3MvTmV0d29ya1Byb2Nlc3NJT1MubW0K
QEAgLTMzLDYgKzMzLDcgQEAKICNpbXBvcnQgIlByb2Nlc3NBc3NlcnRpb24uaCIKICNpbXBvcnQg
IlNhbmRib3hJbml0aWFsaXphdGlvblBhcmFtZXRlcnMuaCIKICNpbXBvcnQgIlNlY0l0ZW1TaGlt
LmgiCisjaW1wb3J0IDxVSUtpdC9VSUtpdC5oPgogI2ltcG9ydCA8V2ViQ29yZS9DZXJ0aWZpY2F0
ZUluZm8uaD4KICNpbXBvcnQgPFdlYkNvcmUvTm90SW1wbGVtZW50ZWQuaD4KICNpbXBvcnQgPFdl
YkNvcmUvV2ViQ29yZVRocmVhZFN5c3RlbUludGVyZmFjZS5oPgpAQCAtNjQsNiArNjUsNyBAQCB2
b2lkIE5ldHdvcmtQcm9jZXNzOjpwbGF0Zm9ybUluaXRpYWxpemVOZXR3b3JrUHJvY2Vzcyhjb25z
dCBOZXR3b3JrUHJvY2Vzc0NyZWF0aQogICAgIGluaXRpYWxpemVTZWNJdGVtU2hpbSgqdGhpcyk7
CiAjZW5kaWYKICAgICBwbGF0Zm9ybUluaXRpYWxpemVOZXR3b3JrUHJvY2Vzc0NvY29hKHBhcmFt
ZXRlcnMpOworICAgIGFkZEJhY2tncm91bmRTdGF0ZU9ic2VydmVycygpOwogfQogCiB2b2lkIE5l
dHdvcmtQcm9jZXNzOjpwbGF0Zm9ybVRlcm1pbmF0ZSgpCkBAIC0xMTAsNiArMTEyLDI0IEBAIHZv
aWQgTmV0d29ya1Byb2Nlc3M6OnNldElzSG9sZGluZ0xvY2tlZEZpbGVzKGJvb2wgaXNIb2xkaW5n
TG9ja2VkRmlsZXMpCiAgICAgbV9ob2xkaW5nTG9ja2VkRmlsZUFzc2VydGlvbiA9IFByb2Nlc3NB
c3NlcnRpb246OmNyZWF0ZShnZXRDdXJyZW50UHJvY2Vzc0lEKCksICJOZXR3b3JrIFByb2Nlc3Mg
aXMgaG9sZGluZyBsb2NrZWQgZmlsZXMiX3MsIFByb2Nlc3NBc3NlcnRpb25UeXBlOjpGaW5pc2hU
YXNrSW50ZXJydXB0YWJsZSwgUHJvY2Vzc0Fzc2VydGlvbjo6TW9kZTo6U3luYyk7CiB9CiAKK3Zv
aWQgTmV0d29ya1Byb2Nlc3M6OmFkZEJhY2tncm91bmRTdGF0ZU9ic2VydmVycygpCit7CisgICAg
bV9iYWNrZ3JvdW5kT2JzZXJ2ZXIgPSBbW05TTm90aWZpY2F0aW9uQ2VudGVyIGRlZmF1bHRDZW50
ZXJdIGFkZE9ic2VydmVyRm9yTmFtZTpVSUFwcGxpY2F0aW9uRGlkRW50ZXJCYWNrZ3JvdW5kTm90
aWZpY2F0aW9uIG9iamVjdDpbVUlBcHBsaWNhdGlvbiBzaGFyZWRBcHBsaWNhdGlvbl0gcXVldWU6
bmlsIHVzaW5nQmxvY2s6bWFrZUJsb2NrUHRyKFt3ZWFrVGhpcyA9IFdlYWtQdHIgeyAqdGhpcyB9
XShOU05vdGlmaWNhdGlvbiAqKSB7CisgICAgICAgIGlmICh3ZWFrVGhpcykKKyAgICAgICAgICAg
IHdlYWtUaGlzLT5hcHBsaWNhdGlvbkRpZEVudGVyQmFja2dyb3VuZCgpOworICAgIH0pLmdldCgp
XTsKKyAgICBtX2ZvcmVncm91bmRPYnNlcnZlciA9IFtbTlNOb3RpZmljYXRpb25DZW50ZXIgZGVm
YXVsdENlbnRlcl0gYWRkT2JzZXJ2ZXJGb3JOYW1lOlVJQXBwbGljYXRpb25XaWxsRW50ZXJGb3Jl
Z3JvdW5kTm90aWZpY2F0aW9uIG9iamVjdDpbVUlBcHBsaWNhdGlvbiBzaGFyZWRBcHBsaWNhdGlv
bl0gcXVldWU6bmlsIHVzaW5nQmxvY2s6bWFrZUJsb2NrUHRyKFt3ZWFrVGhpcyA9IFdlYWtQdHIg
eyAqdGhpcyB9XShOU05vdGlmaWNhdGlvbiAqKSB7CisgICAgICAgIGlmICh3ZWFrVGhpcykKKyAg
ICAgICAgICAgIHdlYWtUaGlzLT5hcHBsaWNhdGlvbldpbGxFbnRlckZvcmVncm91bmQoKTsKKyAg
ICB9KS5nZXQoKV07Cit9CisKK3ZvaWQgTmV0d29ya1Byb2Nlc3M6OnJlbW92ZUJhY2tncm91bmRT
dGF0ZU9ic2VydmVycygpCit7CisgICAgW1tOU05vdGlmaWNhdGlvbkNlbnRlciBkZWZhdWx0Q2Vu
dGVyXSByZW1vdmVPYnNlcnZlcjptX2JhY2tncm91bmRPYnNlcnZlci5nZXQoKV07CisgICAgW1tO
U05vdGlmaWNhdGlvbkNlbnRlciBkZWZhdWx0Q2VudGVyXSByZW1vdmVPYnNlcnZlcjptX2ZvcmVn
cm91bmRPYnNlcnZlci5nZXQoKV07Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdlYktpdAogCiAjZW5k
aWYgLy8gUExBVEZPUk0oSU9TX0ZBTUlMWSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL0dQVS9HUFVQcm9jZXNzUHJveHkuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
R1BVL0dQVVByb2Nlc3NQcm94eS5jcHAKaW5kZXggNGFmMjc2MDI3OTEzNTUyMWVjMTNhYjhjMzIx
NzFkZmQzMWY4Y2ZiNC4uODQzZGNkMmU1Zjg0NjRiYTE1MWFiZjQ5NDU0ZmNhOGU0ZmIzYWZhYyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvR1BVL0dQVVByb2Nlc3NQcm94eS5j
cHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvR1BVL0dQVVByb2Nlc3NQcm94eS5jcHAK
QEAgLTU3NSw3ICs1NzUsNyBAQCB2b2lkIEdQVVByb2Nlc3NQcm94eTo6c2VuZFByZXBhcmVUb1N1
c3BlbmQoSXNTdXNwZW5zaW9uSW1taW5lbnQgaXNTdXNwZW5zaW9uSW1taQogICAgIHNlbmRXaXRo
QXN5bmNSZXBseShNZXNzYWdlczo6R1BVUHJvY2Vzczo6UHJlcGFyZVRvU3VzcGVuZChpc1N1c3Bl
bnNpb25JbW1pbmVudCA9PSBJc1N1c3BlbnNpb25JbW1pbmVudDo6WWVzKSwgV1RGTW92ZShjb21w
bGV0aW9uSGFuZGxlciksIDAsIHsgfSwgU2hvdWxkU3RhcnRQcm9jZXNzVGhyb3R0bGVyQWN0aXZp
dHk6Ok5vKTsKIH0KIAotdm9pZCBHUFVQcm9jZXNzUHJveHk6OnNlbmRQcm9jZXNzRGlkUmVzdW1l
KCkKK3ZvaWQgR1BVUHJvY2Vzc1Byb3h5OjpzZW5kUHJvY2Vzc0RpZFJlc3VtZShSZXN1bWVSZWFz
b24pCiB7CiAgICAgaWYgKGNhblNlbmRNZXNzYWdlKCkpCiAgICAgICAgIHNlbmQoTWVzc2FnZXM6
OkdQVVByb2Nlc3M6OlByb2Nlc3NEaWRSZXN1bWUoKSwgMCk7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9HUFUvR1BVUHJvY2Vzc1Byb3h5LmggYi9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9HUFUvR1BVUHJvY2Vzc1Byb3h5LmgKaW5kZXggNDQzZTliN2E0NjZhZmU1MWU4ODRi
NGY5NDM4YzRjYzY1ZDczYjhkYy4uMmI0Nzg4N2I4NDFlMThiMGExNmEzMDU3NGRmMDFiMTlkYjYx
YzVjYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvR1BVL0dQVVByb2Nlc3NQ
cm94eS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0dQVS9HUFVQcm9jZXNzUHJveHku
aApAQCAtMTI3LDcgKzEyNyw3IEBAIHByaXZhdGU6CiAgICAgLy8gUHJvY2Vzc1Rocm90dGxlckNs
aWVudAogICAgIEFTQ0lJTGl0ZXJhbCBjbGllbnROYW1lKCkgY29uc3QgZmluYWwgeyByZXR1cm4g
IkdQVVByb2Nlc3MiX3M7IH0KICAgICB2b2lkIHNlbmRQcmVwYXJlVG9TdXNwZW5kKElzU3VzcGVu
c2lvbkltbWluZW50LCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYpIGZpbmFsOwotICAgIHZv
aWQgc2VuZFByb2Nlc3NEaWRSZXN1bWUoKSBmaW5hbDsKKyAgICB2b2lkIHNlbmRQcm9jZXNzRGlk
UmVzdW1lKFJlc3VtZVJlYXNvbikgZmluYWw7CiAKICAgICAvLyBQcm9jZXNzTGF1bmNoZXI6OkNs
aWVudAogICAgIHZvaWQgZGlkRmluaXNoTGF1bmNoaW5nKFByb2Nlc3NMYXVuY2hlciosIElQQzo6
Q29ubmVjdGlvbjo6SWRlbnRpZmllcikgb3ZlcnJpZGU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9jZXNzUHJveHkuY3BwIGIvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvTmV0d29yay9OZXR3b3JrUHJvY2Vzc1Byb3h5LmNwcAppbmRleCAzODg1
ZTRkZjZhYjA4YzJkOWY0YTdjOWM1M2U4MGYyOGFhNGExOTVkLi4xNTg0NTJjMzczNjE4NTYxYWJj
MDY3OGY2MGNjMjI1YjY0Mzg2OWMzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9OZXR3b3JrL05ldHdvcmtQcm9jZXNzUHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nlc3NQcm94eS5jcHAKQEAgLTEzOTksMTAgKzEzOTks
MTAgQEAgdm9pZCBOZXR3b3JrUHJvY2Vzc1Byb3h5OjpzZW5kUHJlcGFyZVRvU3VzcGVuZChJc1N1
c3BlbnNpb25JbW1pbmVudCBpc1N1c3BlbnNpb24KICAgICBzZW5kV2l0aEFzeW5jUmVwbHkoTWVz
c2FnZXM6Ok5ldHdvcmtQcm9jZXNzOjpQcmVwYXJlVG9TdXNwZW5kKGlzU3VzcGVuc2lvbkltbWlu
ZW50ID09IElzU3VzcGVuc2lvbkltbWluZW50OjpZZXMpLCBXVEZNb3ZlKGNvbXBsZXRpb25IYW5k
bGVyKSwgMCwgeyB9LCBTaG91bGRTdGFydFByb2Nlc3NUaHJvdHRsZXJBY3Rpdml0eTo6Tm8pOwog
fQogCi12b2lkIE5ldHdvcmtQcm9jZXNzUHJveHk6OnNlbmRQcm9jZXNzRGlkUmVzdW1lKCkKK3Zv
aWQgTmV0d29ya1Byb2Nlc3NQcm94eTo6c2VuZFByb2Nlc3NEaWRSZXN1bWUoUmVzdW1lUmVhc29u
IHJlYXNvbikKIHsKICAgICBpZiAoY2FuU2VuZE1lc3NhZ2UoKSkKLSAgICAgICAgc2VuZChNZXNz
YWdlczo6TmV0d29ya1Byb2Nlc3M6OlByb2Nlc3NEaWRSZXN1bWUoKSwgMCk7CisgICAgICAgIHNl
bmQoTWVzc2FnZXM6Ok5ldHdvcmtQcm9jZXNzOjpQcm9jZXNzRGlkUmVzdW1lKHJlYXNvbiA9PSBS
ZXN1bWVSZWFzb246OkZvcmVncm91bmRBY3Rpdml0eSksIDApOwogfQogCiB2b2lkIE5ldHdvcmtQ
cm9jZXNzUHJveHk6OmZsdXNoQ29va2llcyhQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIENvbXBs
ZXRpb25IYW5kbGVyPHZvaWQoKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nlc3NQcm94eS5oIGIvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvTmV0d29yay9OZXR3b3JrUHJvY2Vzc1Byb3h5LmgKaW5kZXgg
ZTBhZWUyZjdiMzZhYmRjZTYzNDg1Nzc1YzE1NDJiYzc1NGJkMjUyMy4uNTUzODNlN2ViMTU0MzE4
YjFlYjFkNzI5YjkyZmEzZWI3YWRkMTNkMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvTmV0d29yay9OZXR3b3JrUHJvY2Vzc1Byb3h5LmgKKysrIGIvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvTmV0d29yay9OZXR3b3JrUHJvY2Vzc1Byb3h5LmgKQEAgLTIzNiw3ICsyMzYsNyBA
QCBwdWJsaWM6CiAgICAgdm9pZCBjcmVhdGVTeW1MaW5rRm9yRmlsZVVwZ3JhZGUoY29uc3QgU3Ry
aW5nJiBpbmRleGVkRGF0YWJhc2VEaXJlY3RvcnkpOwogCiAgICAgLy8gUHJvY2Vzc1Rocm90dGxl
ckNsaWVudAotICAgIHZvaWQgc2VuZFByb2Nlc3NEaWRSZXN1bWUoKSBmaW5hbDsKKyAgICB2b2lk
IHNlbmRQcm9jZXNzRGlkUmVzdW1lKFJlc3VtZVJlYXNvbiA9IFJlc3VtZVJlYXNvbjo6Rm9yZWdy
b3VuZEFjdGl2aXR5KSBmaW5hbDsKICAgICBBU0NJSUxpdGVyYWwgY2xpZW50TmFtZSgpIGNvbnN0
IGZpbmFsIHsgcmV0dXJuICJOZXR3b3JrUHJvY2VzcyJfczsgfQogICAgIAogICAgIHN0YXRpYyB2
b2lkIHNldFN1c3BlbnNpb25BbGxvd2VkRm9yVGVzdGluZyhib29sKTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nlc3NQcm94eUNvY29hLm1t
IGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvTmV0d29yay9OZXR3b3JrUHJvY2Vzc1Byb3h5Q29j
b2EubW0KaW5kZXggYjY0YjUwMjA2MWI0ODljMzc5NTVjMjk1MDc1MzI3ZGJiMDE2NGUyYS4uMTQ1
ZGZmYzUxNTU4YWVhNGViZjZlZDFmZjJiY2ZhZDY4YWY1YjIyNiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvTmV0d29yay9OZXR3b3JrUHJvY2Vzc1Byb3h5Q29jb2EubW0KKysr
IGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvTmV0d29yay9OZXR3b3JrUHJvY2Vzc1Byb3h5Q29j
b2EubW0KQEAgLTI3LDYgKzI3LDcgQEAKICNpbXBvcnQgIk5ldHdvcmtQcm9jZXNzUHJveHkuaCIK
IAogI2ltcG9ydCAiTGF1bmNoU2VydmljZXNEYXRhYmFzZVhQQ0NvbnN0YW50cy5oIgorI2ltcG9y
dCAiTmV0d29ya1Byb2Nlc3NNZXNzYWdlcy5oIgogI2ltcG9ydCAiV2ViUHJvY2Vzc1Bvb2wuaCIK
ICNpbXBvcnQgIlhQQ0VuZHBvaW50LmgiCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL1Byb2Nlc3NUaHJvdHRsZXIuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvUHJv
Y2Vzc1Rocm90dGxlci5jcHAKaW5kZXggYjY5YjY0OTZmYWM4MDJhYjQzZWZiZjgyN2ZkZDMyYTli
MGZkMTVhYi4uNDcxMmYyZWNmYmEyYzVhOTllMmQ2YmFkNGYxZTA1YzU3ZGRlODZhNSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvUHJvY2Vzc1Rocm90dGxlci5jcHAKKysrIGIv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvUHJvY2Vzc1Rocm90dGxlci5jcHAKQEAgLTE1OSw3ICsx
NTksNyBAQCB2b2lkIFByb2Nlc3NUaHJvdHRsZXI6OnVwZGF0ZUFzc2VydGlvbklmTmVlZGVkKCkK
ICAgICAgICAgICAgICAgICBQUk9DRVNTVEhST1RUTEVSX1JFTEVBU0VfTE9HKCJ1cGRhdGVBc3Nl
cnRpb25JZk5lZWRlZDogc2VuZGluZyBQcm9jZXNzRGlkUmVzdW1lIElQQyBiZWNhdXNlIHRoZSBw
cm9jZXNzIHdhcyBzdXNwZW5kZWQiKTsKICAgICAgICAgICAgIGVsc2UKICAgICAgICAgICAgICAg
ICBQUk9DRVNTVEhST1RUTEVSX1JFTEVBU0VfTE9HKCJ1cGRhdGVBc3NlcnRpb25JZk5lZWRlZDog
c2VuZGluZyBQcm9jZXNzRGlkUmVzdW1lIElQQyBiZWNhdXNlIHRoZSBXZWJQcm9jZXNzIGlzIHN0
aWxsIHByb2Nlc3NpbmcgcmVxdWVzdCB0byBzdXNwZW5kPSUiIFBSSXU2NCwgKm1fcGVuZGluZ1Jl
cXVlc3RUb1N1c3BlbmRJRCk7Ci0gICAgICAgICAgICBtX3Byb2Nlc3Muc2VuZFByb2Nlc3NEaWRS
ZXN1bWUoKTsKKyAgICAgICAgICAgIG1fcHJvY2Vzcy5zZW5kUHJvY2Vzc0RpZFJlc3VtZShleHBl
Y3RlZEFzc2VydGlvblR5cGUoKSA9PSBQcm9jZXNzQXNzZXJ0aW9uVHlwZTo6Rm9yZWdyb3VuZCA/
IFByb2Nlc3NUaHJvdHRsZXJDbGllbnQ6OlJlc3VtZVJlYXNvbjo6Rm9yZWdyb3VuZEFjdGl2aXR5
IDogUHJvY2Vzc1Rocm90dGxlckNsaWVudDo6UmVzdW1lUmVhc29uOjpCYWNrZ3JvdW5kQWN0aXZp
dHkpOwogICAgICAgICAgICAgY2xlYXJQZW5kaW5nUmVxdWVzdFRvU3VzcGVuZCgpOwogICAgICAg
ICB9CiAgICAgfSBlbHNlIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1By
b2Nlc3NUaHJvdHRsZXJDbGllbnQuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1Byb2Nlc3NU
aHJvdHRsZXJDbGllbnQuaAppbmRleCAxMThiZjBkZDIzNTgyMjRjMmVjN2RmOWI5NjUxZTlmMTM3
OGU2ZTAwLi43NmE1YTkzODhiYmNmNDBlOTk0ZDM5N2IyZDRmZGQwMGU1ZDlhODQxIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Qcm9jZXNzVGhyb3R0bGVyQ2xpZW50LmgKKysr
IGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvUHJvY2Vzc1Rocm90dGxlckNsaWVudC5oCkBAIC0z
Nyw3ICszNyw4IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIH5Qcm9jZXNzVGhyb3R0bGVyQ2xpZW50
KCkgeyB9CiAKICAgICB2aXJ0dWFsIHZvaWQgc2VuZFByZXBhcmVUb1N1c3BlbmQoSXNTdXNwZW5z
aW9uSW1taW5lbnQsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJikgPSAwOwotICAgIHZpcnR1
YWwgdm9pZCBzZW5kUHJvY2Vzc0RpZFJlc3VtZSgpID0gMDsKKyAgICBlbnVtIFJlc3VtZVJlYXNv
biA6IGJvb2wgeyBGb3JlZ3JvdW5kQWN0aXZpdHksIEJhY2tncm91bmRBY3Rpdml0eSB9OworICAg
IHZpcnR1YWwgdm9pZCBzZW5kUHJvY2Vzc0RpZFJlc3VtZShSZXN1bWVSZWFzb24gPSBGb3JlZ3Jv
dW5kQWN0aXZpdHkpID0gMDsKICAgICB2aXJ0dWFsIHZvaWQgZGlkU2V0QXNzZXJ0aW9uVHlwZShQ
cm9jZXNzQXNzZXJ0aW9uVHlwZSkgeyB9OwogICAgIHZpcnR1YWwgQVNDSUlMaXRlcmFsIGNsaWVu
dE5hbWUoKSBjb25zdCA9IDA7CiB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvV2ViQXV0aGVudGljYXRpb24vV2ViQXV0aG5Qcm9jZXNzUHJveHkuaCBiL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL1dlYkF1dGhlbnRpY2F0aW9uL1dlYkF1dGhuUHJvY2Vzc1Byb3h5LmgKaW5k
ZXggYzViMTY3MWIxYWEwNjM0ZDEzMmI5YTZlZjg5YWU4M2VjZmIwM2IzZS4uMTFiZjA0NzE3YTY1
MjBmZmE0YTY3ZTM3ODYwZGNhYmJmNjJlNTY1MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvV2ViQXV0aGVudGljYXRpb24vV2ViQXV0aG5Qcm9jZXNzUHJveHkuaAorKysgYi9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJBdXRoZW50aWNhdGlvbi9XZWJBdXRoblByb2Nlc3NQ
cm94eS5oCkBAIC01NSw3ICs1NSw3IEBAIHB1YmxpYzoKICAgICB2b2lkIHVwZGF0ZVByb2Nlc3NB
c3NlcnRpb24oKTsKIAogICAgIC8vIFByb2Nlc3NUaHJvdHRsZXJDbGllbnQKLSAgICB2b2lkIHNl
bmRQcm9jZXNzRGlkUmVzdW1lKCkgZmluYWwgeyB9CisgICAgdm9pZCBzZW5kUHJvY2Vzc0RpZFJl
c3VtZShSZXN1bWVSZWFzb24pIGZpbmFsIHsgfQogICAgIEFTQ0lJTGl0ZXJhbCBjbGllbnROYW1l
KCkgY29uc3QgZmluYWwgeyByZXR1cm4gIldlYkF1dGhuUHJvY2VzcyJfczsgfQogCiBwcml2YXRl
OgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5LmNw
cCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5jcHAKaW5kZXggMmYx
ZTY5MzZiZTYxNDU4MTJkNDc3ZmFiYTdkYzJhODAzNzg0ZTdhZi4uMzZjMmI1YWFiMzFhYTczODIy
OGRmOWY2ZDE4MDhhMDA1ODkzMDUxMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvV2ViUHJvY2Vzc1Byb3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQ
cm9jZXNzUHJveHkuY3BwCkBAIC0xNDM1LDcgKzE0MzUsNyBAQCB2b2lkIFdlYlByb2Nlc3NQcm94
eTo6c2VuZFByZXBhcmVUb1N1c3BlbmQoSXNTdXNwZW5zaW9uSW1taW5lbnQgaXNTdXNwZW5zaW9u
SW1taQogICAgIHNlbmRXaXRoQXN5bmNSZXBseShNZXNzYWdlczo6V2ViUHJvY2Vzczo6UHJlcGFy
ZVRvU3VzcGVuZChpc1N1c3BlbnNpb25JbW1pbmVudCA9PSBJc1N1c3BlbnNpb25JbW1pbmVudDo6
WWVzKSwgV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlciksIDAsIHsgfSwgU2hvdWxkU3RhcnRQcm9j
ZXNzVGhyb3R0bGVyQWN0aXZpdHk6Ok5vKTsKIH0KIAotdm9pZCBXZWJQcm9jZXNzUHJveHk6OnNl
bmRQcm9jZXNzRGlkUmVzdW1lKCkKK3ZvaWQgV2ViUHJvY2Vzc1Byb3h5OjpzZW5kUHJvY2Vzc0Rp
ZFJlc3VtZShSZXN1bWVSZWFzb24pCiB7CiAgICAgV0VCUFJPQ0VTU1BST1hZX1JFTEVBU0VfTE9H
KFByb2Nlc3NTdXNwZW5zaW9uLCAic2VuZFByb2Nlc3NEaWRSZXN1bWU6Iik7CiAgICAgaWYgKGNh
blNlbmRNZXNzYWdlKCkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQ
cm9jZXNzUHJveHkuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5o
CmluZGV4IGJmYzc5NTZjMDJlZTVhY2UyZDU1NzM0M2M1MDc1MzdhODVjZmQ0ZmMuLjExNDE3ZWE3
YzQ2ZWJmNmM5ODczZDVjNDIxZTJkNTU2YjY4OWNkNDQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL1dlYlByb2Nlc3NQcm94eS5oCkBAIC0zMjcsNyArMzI3LDcgQEAgcHVibGljOgogCiAgICAg
Ly8gUHJvY2Vzc1Rocm90dGxlckNsaWVudAogICAgIHZvaWQgc2VuZFByZXBhcmVUb1N1c3BlbmQo
SXNTdXNwZW5zaW9uSW1taW5lbnQsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJikgZmluYWw7
Ci0gICAgdm9pZCBzZW5kUHJvY2Vzc0RpZFJlc3VtZSgpIGZpbmFsOworICAgIHZvaWQgc2VuZFBy
b2Nlc3NEaWRSZXN1bWUoUmVzdW1lUmVhc29uID0gUmVzdW1lUmVhc29uOjpGb3JlZ3JvdW5kQWN0
aXZpdHkpIGZpbmFsOwogICAgIHZvaWQgZGlkU2V0QXNzZXJ0aW9uVHlwZShQcm9jZXNzQXNzZXJ0
aW9uVHlwZSkgZmluYWw7CiAgICAgQVNDSUlMaXRlcmFsIGNsaWVudE5hbWUoKSBjb25zdCBmaW5h
bCB7IHJldHVybiAiV2ViUHJvY2VzcyJfczsgfQogCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>455272</attachid>
            <date>2022-03-21 13:49:16 -0700</date>
            <delta_ts>2022-03-21 20:26:14 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-238082-20220321134915.patch</filename>
            <type>text/plain</type>
            <size>20825</size>
            <attacher name="Sihui Liu">sihui_liu</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjkxNTU5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IGEzMjE1YjQ0Mzc5N2M3NjNm
MDM1MjU5MThmZTFhNWUzZWViNGJlN2YuLmFhMjMyMjIyNDAyYTJlNzk0MTYyZWI0MDE3NTllMTMy
NTVjZGM4YzkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNTAgQEAKKzIwMjItMDMtMjEgIFNpaHVpIExp
dSAgPHNpaHVpX2xpdUBhcHBsZS5jb20+CisKKyAgICAgICAgQWRkIGxvZ2dpbmcgYWJvdXQgcHJv
Y2VzcyBlbnRlcmluZyBiYWNrZ3JvdW5kIHRvIE5ldHdvcmtQcm9jZXNzOjpwcm9jZXNzRGlkUmVz
dW1lCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzgw
ODIKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBJbiBy
ZGFyOi8vODI0MTI3MzMsIHdlIGZvdW5kIG5ldHdvcmsgcHJvY2VzcyBjYW4gYmUgc3VzcGVuZGVk
IHJpZ2h0IGFmdGVyIGl0IHJlY2VpdmVzIHByb2Nlc3NEaWRSZXN1bWUgbWVzc2FnZS4gCisgICAg
ICAgIEZvciBuZXR3b3JrIHBvcmNlc3MsIHByb2Nlc3NEaWRSZXN1bWUgbWVhbnMgcHJvY2VzcyBp
cyBub3Qgc3VzcGVuZGVkIGFuZCBpdCBpcyBzYWZlIHRvIHBlcmZvcm0gZGF0YWJhc2UgCisgICAg
ICAgIG9wZXJhdGlvbnMuIExldCdzIGFkZCBsb2dnaW5nIHRvIGNoZWNrIHdoZW4gYW5kIHdoeSBw
cm9jZXNzRGlkUmVzdW1lIG1lc3NhZ2UgaXMgc2VudC4gSWYgdGhlIGxvZ2dpbmcgY29uZmlybXMK
KyAgICAgICAgdGhhdCBwcm9jZXNzRGlkUmVzdW1lIG1lc3NhZ2UgY2FuIGJlIHJlY2VpdmVkIHdo
ZW4gcHJvY2VzcyBpcyBjbG9zZSB0byBhc3NlcnRpb24gdGltZW91dCwgd2UgcHJvYmFibHkgd2Fu
dCB0byAKKyAgICAgICAgaWdub3JlIHN1Y2ggbWVzc2FnZSBhbmQgcmVzdW1lIGRhdGFiYXNlIG9w
ZXJhdGlvbnMgd2hlbiBhcHBsaWNhdGlvbiBhY3R1YWxseSBlbnRlcnMgZm9yZWdyb3VuZC4KKwor
ICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLmNwcDoKKyAgICAgICAgKFdl
YktpdDo6TmV0d29ya1Byb2Nlc3M6OmRpZENsb3NlKToKKyAgICAgICAgKFdlYktpdDo6TmV0d29y
a1Byb2Nlc3M6OnByZXBhcmVUb1N1c3BlbmQpOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrUHJv
Y2Vzczo6YXBwbGljYXRpb25EaWRFbnRlckJhY2tncm91bmRGb3JEb3dubG9hZCk6CisgICAgICAg
IChXZWJLaXQ6Ok5ldHdvcmtQcm9jZXNzOjphcHBsaWNhdGlvbldpbGxFbnRlckZvcmVncm91bmRG
b3JEb3dubG9hZCk6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtQcm9jZXNzOjpwcm9jZXNzRGlk
UmVzdW1lKToKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya1Byb2Nlc3M6OmFwcGxpY2F0aW9uRGlk
RW50ZXJCYWNrZ3JvdW5kKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYktpdDo6TmV0d29ya1Byb2Nl
c3M6OmFwcGxpY2F0aW9uV2lsbEVudGVyRm9yZWdyb3VuZCk6IERlbGV0ZWQuCisgICAgICAgICog
TmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MuaDoKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vz
cy9OZXR3b3JrUHJvY2Vzcy5tZXNzYWdlcy5pbjoKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9p
b3MvTmV0d29ya1Byb2Nlc3NJT1MubW06CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtQcm9jZXNz
OjpwbGF0Zm9ybUluaXRpYWxpemVOZXR3b3JrUHJvY2Vzcyk6CisgICAgICAgIChXZWJLaXQ6Ok5l
dHdvcmtQcm9jZXNzOjphZGRCYWNrZ3JvdW5kU3RhdGVPYnNlcnZlcnMpOgorICAgICAgICAoV2Vi
S2l0OjpOZXR3b3JrUHJvY2Vzczo6cmVtb3ZlQmFja2dyb3VuZFN0YXRlT2JzZXJ2ZXJzKToKKyAg
ICAgICAgKFdlYktpdDo6TmV0d29ya1Byb2Nlc3M6OmFwcGxpY2F0aW9uRGlkRW50ZXJCYWNrZ3Jv
dW5kKToKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya1Byb2Nlc3M6OmFwcGxpY2F0aW9uV2lsbEVu
dGVyRm9yZWdyb3VuZCk6CisgICAgICAgICogVUlQcm9jZXNzL0Rvd25sb2Fkcy9Eb3dubG9hZFBy
b3h5TWFwLmNwcDoKKyAgICAgICAgKFdlYktpdDo6RG93bmxvYWRQcm94eU1hcDo6YXBwbGljYXRp
b25EaWRFbnRlckJhY2tncm91bmQpOgorICAgICAgICAoV2ViS2l0OjpEb3dubG9hZFByb3h5TWFw
OjphcHBsaWNhdGlvbldpbGxFbnRlckZvcmVncm91bmQpOgorICAgICAgICAqIFVJUHJvY2Vzcy9H
UFUvR1BVUHJvY2Vzc1Byb3h5LmNwcDoKKyAgICAgICAgKFdlYktpdDo6R1BVUHJvY2Vzc1Byb3h5
OjpzZW5kUHJvY2Vzc0RpZFJlc3VtZSk6CisgICAgICAgICogVUlQcm9jZXNzL0dQVS9HUFVQcm9j
ZXNzUHJveHkuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvTmV0d29yay9OZXR3b3JrUHJvY2Vzc1By
b3h5LmNwcDoKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya1Byb2Nlc3NQcm94eTo6c2VuZFByb2Nl
c3NEaWRSZXN1bWUpOgorICAgICAgICAqIFVJUHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9jZXNz
UHJveHkuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvTmV0d29yay9OZXR3b3JrUHJvY2Vzc1Byb3h5
Q29jb2EubW06CisgICAgICAgICogVUlQcm9jZXNzL1Byb2Nlc3NUaHJvdHRsZXIuY3BwOgorICAg
ICAgICAoV2ViS2l0OjpQcm9jZXNzVGhyb3R0bGVyOjp1cGRhdGVBc3NlcnRpb25JZk5lZWRlZCk6
CisgICAgICAgICogVUlQcm9jZXNzL1Byb2Nlc3NUaHJvdHRsZXJDbGllbnQuaDoKKyAgICAgICAg
KiBVSVByb2Nlc3MvV2ViQXV0aGVudGljYXRpb24vV2ViQXV0aG5Qcm9jZXNzUHJveHkuaDoKKyAg
ICAgICAgKiBVSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5LmNwcDoKKyAgICAgICAgKFdlYktpdDo6
V2ViUHJvY2Vzc1Byb3h5OjpzZW5kUHJvY2Vzc0RpZFJlc3VtZSk6CisgICAgICAgICogVUlQcm9j
ZXNzL1dlYlByb2Nlc3NQcm94eS5oOgorCiAyMDIyLTAzLTIxICBKb25hdGhhbiBCZWRhcmQgIDxq
YmVkYXJkQGFwcGxlLmNvbT4KIAogICAgICAgICBVbnJldmlld2VkLCByZXZlcnRpbmcgcjI5MTU1
OC4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nl
c3MuY3BwIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5jcHAK
aW5kZXggZWIyZjViYmJkZmE2ZTMxYTU5MDBjYWM3ZjJhMzBiNTc2ZTU1MGNmZi4uZWU2ZGU2ZmNj
ZmM4YmIzYTUyZmUwZDgyM2FlZDBjNzdjZDk5NjkwYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5jcHAKKysrIGIvU291cmNlL1dlYktpdC9O
ZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5jcHAKQEAgLTI2OSw2ICsyNjksMTAgQEAgdm9p
ZCBOZXR3b3JrUHJvY2Vzczo6ZGlkQ2xvc2UoSVBDOjpDb25uZWN0aW9uJikKICAgICBOZXR3b3Jr
U3RvcmFnZU1hbmFnZXI6OmZvckVhY2goWyZdKGF1dG8mIG1hbmFnZXIpIHsKICAgICAgICAgbWFu
YWdlci5zeW5jTG9jYWxTdG9yYWdlKFtjYWxsYmFja0FnZ3JlZ2F0b3JdIHsgfSk7CiAgICAgfSk7
CisKKyNpZiBQTEFURk9STShJT1NfRkFNSUxZKQorICAgIHJlbW92ZUJhY2tncm91bmRTdGF0ZU9i
c2VydmVycygpOworI2VuZGlmCiB9CiAKIHZvaWQgTmV0d29ya1Byb2Nlc3M6OmRpZENyZWF0ZURv
d25sb2FkKCkKQEAgLTIxMjksNyArMjEzMyw3IEBAIHZvaWQgTmV0d29ya1Byb2Nlc3M6OnRlcm1p
bmF0ZVJlbW90ZVdvcmtlckNvbnRleHRDb25uZWN0aW9uV2hlblBvc3NpYmxlKFJlbW90ZVdvCiAK
IHZvaWQgTmV0d29ya1Byb2Nlc3M6OnByZXBhcmVUb1N1c3BlbmQoYm9vbCBpc1N1c3BlbnNpb25J
bW1pbmVudCwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQog
ewotICAgIFJFTEVBU0VfTE9HKFByb2Nlc3NTdXNwZW5zaW9uLCAiJXAgLSBOZXR3b3JrUHJvY2Vz
czo6cHJlcGFyZVRvU3VzcGVuZCgpLCBpc1N1c3BlbnNpb25JbW1pbmVudD0lZCIsIHRoaXMsIGlz
U3VzcGVuc2lvbkltbWluZW50KTsKKyAgICBSRUxFQVNFX0xPRyhQcm9jZXNzU3VzcGVuc2lvbiwg
IiVwIC0gTmV0d29ya1Byb2Nlc3M6OnByZXBhcmVUb1N1c3BlbmQoKSwgaXNTdXNwZW5zaW9uSW1t
aW5lbnQ9JWQgUHJvY2VzcyBpcyAlc2luIGJhY2tncm91bmQiLCB0aGlzLCBpc1N1c3BlbnNpb25J
bW1pbmVudCwgbV9lbnRlckJhY2tncm91bmRUaW1lc3RhbXAgPyAiIiA6ICJub3QgIik7CiAKICAg
ICBtX2lzU3VzcGVuZGVkID0gdHJ1ZTsKICAgICBsb3dNZW1vcnlIYW5kbGVyKENyaXRpY2FsOjpZ
ZXMpOwpAQCAtMjE1OCwxOSArMjE2MiwyMiBAQCB2b2lkIE5ldHdvcmtQcm9jZXNzOjpwcmVwYXJl
VG9TdXNwZW5kKGJvb2wgaXNTdXNwZW5zaW9uSW1taW5lbnQsIENvbXBsZXRpb25IYW5kbAogICAg
ICAgICBjb25uZWN0aW9uLT5jbGVhbnVwRm9yU3VzcGVuc2lvbihbY2FsbGJhY2tBZ2dyZWdhdG9y
XSB7IH0pOwogfQogCi12b2lkIE5ldHdvcmtQcm9jZXNzOjphcHBsaWNhdGlvbkRpZEVudGVyQmFj
a2dyb3VuZCgpCit2b2lkIE5ldHdvcmtQcm9jZXNzOjphcHBsaWNhdGlvbkRpZEVudGVyQmFja2dy
b3VuZEZvckRvd25sb2FkKCkKIHsKICAgICBtX2Rvd25sb2FkTWFuYWdlci5hcHBsaWNhdGlvbkRp
ZEVudGVyQmFja2dyb3VuZCgpOwogfQogCi12b2lkIE5ldHdvcmtQcm9jZXNzOjphcHBsaWNhdGlv
bldpbGxFbnRlckZvcmVncm91bmQoKQordm9pZCBOZXR3b3JrUHJvY2Vzczo6YXBwbGljYXRpb25X
aWxsRW50ZXJGb3JlZ3JvdW5kRm9yRG93bmxvYWQoKQogewogICAgIG1fZG93bmxvYWRNYW5hZ2Vy
LmFwcGxpY2F0aW9uV2lsbEVudGVyRm9yZWdyb3VuZCgpOwogfQogCi12b2lkIE5ldHdvcmtQcm9j
ZXNzOjpwcm9jZXNzRGlkUmVzdW1lKCkKK3ZvaWQgTmV0d29ya1Byb2Nlc3M6OnByb2Nlc3NEaWRS
ZXN1bWUoYm9vbCBmb3JGb3JlZ3JvdW5kQWN0aXZpdHkpCiB7Ci0gICAgUkVMRUFTRV9MT0coUHJv
Y2Vzc1N1c3BlbnNpb24sICIlcCAtIE5ldHdvcmtQcm9jZXNzOjpwcm9jZXNzRGlkUmVzdW1lKCki
LCB0aGlzKTsKKyAgICBTdHJpbmcgYmFja2dyb3VuZEludGVydmFsU3RyaW5nID0gIiI7CisgICAg
aWYgKG1fZW50ZXJCYWNrZ3JvdW5kVGltZXN0YW1wKQorICAgICAgICBiYWNrZ3JvdW5kSW50ZXJ2
YWxTdHJpbmcgPSBtYWtlU3RyaW5nKCIgUHJvY2VzcyBpcyBpbiBiYWNrZ3JvdW5kIGZvciAiLCAo
TW9ub3RvbmljVGltZTo6bm93KCkgLSBtX2VudGVyQmFja2dyb3VuZFRpbWVzdGFtcC52YWx1ZSgp
KS52YWx1ZSgpLCAiIHNlY29uZHMiKTsKKyAgICBSRUxFQVNFX0xPRyhQcm9jZXNzU3VzcGVuc2lv
biwgIiVwIC0gTmV0d29ya1Byb2Nlc3M6OnByb2Nlc3NEaWRSZXN1bWUoKSBmb3JGb3JlZ3JvdW5k
QWN0aXZpdHk9JWQlcyIsIHRoaXMsIGZvckZvcmVncm91bmRBY3Rpdml0eSwgYmFja2dyb3VuZElu
dGVydmFsU3RyaW5nLnV0ZjgoKS5kYXRhKCkpOwogCiAgICAgbV9pc1N1c3BlbmRlZCA9IGZhbHNl
OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9j
ZXNzLmggYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLmgKaW5k
ZXggZjc3MDQ1ZTVhZjhlNDM3MjE2MmE1MTY3Y2FmYzAwODRkMzA5ZTg4OS4uYjZhMmFjZjljMGE2
YWE1NjJiZjE0OWM5Y2NkYzNhNzRlNzM2ZjFiOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9O
ZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5oCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29y
a1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MuaApAQCAtMTc0LDcgKzE3NCw3IEBAIHB1YmxpYzoKIAog
ICAgIHZvaWQgcHJvY2Vzc1dpbGxTdXNwZW5kSW1taW5lbnRseUZvclRlc3RpbmdTeW5jKENvbXBs
ZXRpb25IYW5kbGVyPHZvaWQoKT4mJik7CiAgICAgdm9pZCBwcmVwYXJlVG9TdXNwZW5kKGJvb2wg
aXNTdXNwZW5zaW9uSW1taW5lbnQsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJik7Ci0gICAg
dm9pZCBwcm9jZXNzRGlkUmVzdW1lKCk7CisgICAgdm9pZCBwcm9jZXNzRGlkUmVzdW1lKGJvb2wg
Zm9yRm9yZWdyb3VuZEFjdGl2aXR5KTsKIAogICAgIENhY2hlTW9kZWwgY2FjaGVNb2RlbCgpIGNv
bnN0IHsgcmV0dXJuIG1fY2FjaGVNb2RlbDsgfQogCkBAIC00MzIsOCArNDMyLDggQEAgcHJpdmF0
ZToKICAgICB2b2lkIGNvbnRpbnVlV2lsbFNlbmRSZXF1ZXN0KERvd25sb2FkSUQsIFdlYkNvcmU6
OlJlc291cmNlUmVxdWVzdCYmKTsKICAgICB2b2lkIGRhdGFUYXNrV2l0aFJlcXVlc3QoV2ViUGFn
ZVByb3h5SWRlbnRpZmllciwgUEFMOjpTZXNzaW9uSUQsIFdlYkNvcmU6OlJlc291cmNlUmVxdWVz
dCYmLCBJUEM6OkZvcm1EYXRhUmVmZXJlbmNlJiYsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoRGF0
YVRhc2tJZGVudGlmaWVyKT4mJik7CiAgICAgdm9pZCBjYW5jZWxEYXRhVGFzayhEYXRhVGFza0lk
ZW50aWZpZXIsIFBBTDo6U2Vzc2lvbklEKTsKLSAgICB2b2lkIGFwcGxpY2F0aW9uRGlkRW50ZXJC
YWNrZ3JvdW5kKCk7Ci0gICAgdm9pZCBhcHBsaWNhdGlvbldpbGxFbnRlckZvcmVncm91bmQoKTsK
KyAgICB2b2lkIGFwcGxpY2F0aW9uRGlkRW50ZXJCYWNrZ3JvdW5kRm9yRG93bmxvYWQoKTsKKyAg
ICB2b2lkIGFwcGxpY2F0aW9uV2lsbEVudGVyRm9yZWdyb3VuZEZvckRvd25sb2FkKCk7CiAKICAg
ICB2b2lkIHNldENhY2hlTW9kZWwoQ2FjaGVNb2RlbCk7CiAgICAgdm9pZCBzZXRDYWNoZU1vZGVs
U3luY2hyb25vdXNseUZvclRlc3RpbmcoQ2FjaGVNb2RlbCwgQ29tcGxldGlvbkhhbmRsZXI8dm9p
ZCgpPiYmKTsKQEAgLTQ3Myw2ICs0NzMsMTAgQEAgcHJpdmF0ZToKIAogI2lmIFBMQVRGT1JNKElP
U19GQU1JTFkpCiAgICAgdm9pZCBzZXRJc0hvbGRpbmdMb2NrZWRGaWxlcyhib29sKTsKKyAgICB2
b2lkIGFkZEJhY2tncm91bmRTdGF0ZU9ic2VydmVycygpOworICAgIHZvaWQgcmVtb3ZlQmFja2dy
b3VuZFN0YXRlT2JzZXJ2ZXJzKCk7CisgICAgdm9pZCBhcHBsaWNhdGlvbkRpZEVudGVyQmFja2dy
b3VuZCgpOworICAgIHZvaWQgYXBwbGljYXRpb25XaWxsRW50ZXJGb3JlZ3JvdW5kKCk7CiAjZW5k
aWYKIAogICAgIC8vIENvbm5lY3Rpb25zIHRvIFdlYlByb2Nlc3Nlcy4KQEAgLTUyNSw2ICs1Mjks
MTEgQEAgcHJpdmF0ZToKICAgICBib29sIG1fcHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRFbmFibGVk
IHsgdHJ1ZSB9OwogICAgIGJvb2wgbV9mdHBFbmFibGVkIHsgZmFsc2UgfTsKICAgICBib29sIG1f
aXNTdXNwZW5kZWQgeyBmYWxzZSB9OworICAgIHN0ZDo6b3B0aW9uYWw8TW9ub3RvbmljVGltZT4g
bV9lbnRlckJhY2tncm91bmRUaW1lc3RhbXA7CisjaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKKyAg
ICBSZXRhaW5QdHI8aWQ+IG1fYmFja2dyb3VuZE9ic2VydmVyOworICAgIFJldGFpblB0cjxpZD4g
bV9mb3JlZ3JvdW5kT2JzZXJ2ZXI7CisjZW5kaWYKIH07CiAKICNpZiAhUExBVEZPUk0oQ09DT0Ep
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNz
Lm1lc3NhZ2VzLmluIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vz
cy5tZXNzYWdlcy5pbgppbmRleCA2Nzg4ZDY1Y2M2YThjY2QzZjExZjkwYjJkNjc3OWUyMWFiZDFj
ZGM2Li5lZDllYTQ1NGY2ZTljZTJkYzlkOGQwMTRjODk5YzcxOWI0MzQ0N2Q5IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLm1lc3NhZ2VzLmlu
CisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MubWVzc2Fn
ZXMuaW4KQEAgLTU1LDggKzU1LDggQEAgbWVzc2FnZXMgLT4gTmV0d29ya1Byb2Nlc3MgTGVnYWN5
UmVjZWl2ZXIgewogI2VuZGlmCiAgICAgRGF0YVRhc2tXaXRoUmVxdWVzdChXZWJLaXQ6OldlYlBh
Z2VQcm94eUlkZW50aWZpZXIgcGFnZUlELCBQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIFdlYkNv
cmU6OlJlc291cmNlUmVxdWVzdCByZXF1ZXN0LCBJUEM6OkZvcm1EYXRhUmVmZXJlbmNlIHJlcXVl
c3RCb2R5KSAtPiAoV2ViS2l0OjpEYXRhVGFza0lkZW50aWZpZXIgdGFza0lkZW50aWZpZXIpCiAg
ICAgQ2FuY2VsRGF0YVRhc2soV2ViS2l0OjpEYXRhVGFza0lkZW50aWZpZXIgdGFza0lkZW50aWZp
ZXIsIFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCkKLSAgICBBcHBsaWNhdGlvbkRpZEVudGVyQmFj
a2dyb3VuZCgpCi0gICAgQXBwbGljYXRpb25XaWxsRW50ZXJGb3JlZ3JvdW5kKCkKKyAgICBBcHBs
aWNhdGlvbkRpZEVudGVyQmFja2dyb3VuZEZvckRvd25sb2FkKCkKKyAgICBBcHBsaWNhdGlvbldp
bGxFbnRlckZvcmVncm91bmRGb3JEb3dubG9hZCgpCiAKICAgICBDb250aW51ZVdpbGxTZW5kUmVx
dWVzdChXZWJLaXQ6OkRvd25sb2FkSUQgZG93bmxvYWRJRCwgV2ViQ29yZTo6UmVzb3VyY2VSZXF1
ZXN0IHJlcXVlc3QpCiAKQEAgLTc1LDcgKzc1LDcgQEAgbWVzc2FnZXMgLT4gTmV0d29ya1Byb2Nl
c3MgTGVnYWN5UmVjZWl2ZXIgewogCiAgICAgUHJvY2Vzc1dpbGxTdXNwZW5kSW1taW5lbnRseUZv
clRlc3RpbmdTeW5jKCkgLT4gKCkgU3luY2hyb25vdXMKICAgICBQcmVwYXJlVG9TdXNwZW5kKGJv
b2wgaXNTdXNwZW5zaW9uSW1taW5lbnQpIC0+ICgpCi0gICAgUHJvY2Vzc0RpZFJlc3VtZSgpCisg
ICAgUHJvY2Vzc0RpZFJlc3VtZShib29sIGZvckZvcmVncm91bmRBY3Rpdml0eSkKIAogICAgIFBy
ZWNvbm5lY3RUbyhQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIFdlYktpdDo6V2ViUGFnZVByb3h5
SWRlbnRpZmllciB3ZWJQYWdlUHJveHlJRCwgV2ViQ29yZTo6UGFnZUlkZW50aWZpZXIgd2ViUGFn
ZUlELCBVUkwgdXJsLCBTdHJpbmcgdXNlckFnZW50LCBlbnVtOnVpbnQ4X3QgV2ViQ29yZTo6U3Rv
cmVkQ3JlZGVudGlhbHNQb2xpY3kgc3RvcmVkQ3JlZGVudGlhbHNQb2xpY3ksIGVudW06Ym9vbCBz
dGQ6Om9wdGlvbmFsPFdlYktpdDo6TmF2aWdhdGluZ1RvQXBwQm91bmREb21haW4+IGlzTmF2aWdh
dGluZ1RvQXBwQm91bmREb21haW4sIGVudW06Ym9vbCBXZWJLaXQ6Okxhc3ROYXZpZ2F0aW9uV2Fz
QXBwSW5pdGlhdGVkIGxhc3ROYXZpZ2F0aW9uV2FzQXBwSW5pdGlhdGVkKTsKIApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9pb3MvTmV0d29ya1Byb2Nlc3NJT1MubW0g
Yi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL2lvcy9OZXR3b3JrUHJvY2Vzc0lPUy5tbQpp
bmRleCA4MjdkZGY2ZWNmNGQ5MjkxZTBiZmY3NGZhNWViYjgxN2I3ZGNmZmQ3Li41YWRlZjU5Yjlk
NjA4Y2EzZDU1OWIwYTRlNjQ5NTBjN2ZlODZlNmVhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L05ldHdvcmtQcm9jZXNzL2lvcy9OZXR3b3JrUHJvY2Vzc0lPUy5tbQorKysgYi9Tb3VyY2UvV2Vi
S2l0L05ldHdvcmtQcm9jZXNzL2lvcy9OZXR3b3JrUHJvY2Vzc0lPUy5tbQpAQCAtMzMsNiArMzMs
NyBAQAogI2ltcG9ydCAiUHJvY2Vzc0Fzc2VydGlvbi5oIgogI2ltcG9ydCAiU2FuZGJveEluaXRp
YWxpemF0aW9uUGFyYW1ldGVycy5oIgogI2ltcG9ydCAiU2VjSXRlbVNoaW0uaCIKKyNpbXBvcnQg
PFVJS2l0L1VJS2l0Lmg+CiAjaW1wb3J0IDxXZWJDb3JlL0NlcnRpZmljYXRlSW5mby5oPgogI2lt
cG9ydCA8V2ViQ29yZS9Ob3RJbXBsZW1lbnRlZC5oPgogI2ltcG9ydCA8V2ViQ29yZS9XZWJDb3Jl
VGhyZWFkU3lzdGVtSW50ZXJmYWNlLmg+CkBAIC02NCw2ICs2NSw3IEBAIHZvaWQgTmV0d29ya1By
b2Nlc3M6OnBsYXRmb3JtSW5pdGlhbGl6ZU5ldHdvcmtQcm9jZXNzKGNvbnN0IE5ldHdvcmtQcm9j
ZXNzQ3JlYXRpCiAgICAgaW5pdGlhbGl6ZVNlY0l0ZW1TaGltKCp0aGlzKTsKICNlbmRpZgogICAg
IHBsYXRmb3JtSW5pdGlhbGl6ZU5ldHdvcmtQcm9jZXNzQ29jb2EocGFyYW1ldGVycyk7CisgICAg
YWRkQmFja2dyb3VuZFN0YXRlT2JzZXJ2ZXJzKCk7CiB9CiAKIHZvaWQgTmV0d29ya1Byb2Nlc3M6
OnBsYXRmb3JtVGVybWluYXRlKCkKQEAgLTExMCw2ICsxMTIsMzYgQEAgdm9pZCBOZXR3b3JrUHJv
Y2Vzczo6c2V0SXNIb2xkaW5nTG9ja2VkRmlsZXMoYm9vbCBpc0hvbGRpbmdMb2NrZWRGaWxlcykK
ICAgICBtX2hvbGRpbmdMb2NrZWRGaWxlQXNzZXJ0aW9uID0gUHJvY2Vzc0Fzc2VydGlvbjo6Y3Jl
YXRlKGdldEN1cnJlbnRQcm9jZXNzSUQoKSwgIk5ldHdvcmsgUHJvY2VzcyBpcyBob2xkaW5nIGxv
Y2tlZCBmaWxlcyJfcywgUHJvY2Vzc0Fzc2VydGlvblR5cGU6OkZpbmlzaFRhc2tJbnRlcnJ1cHRh
YmxlLCBQcm9jZXNzQXNzZXJ0aW9uOjpNb2RlOjpTeW5jKTsKIH0KIAordm9pZCBOZXR3b3JrUHJv
Y2Vzczo6YWRkQmFja2dyb3VuZFN0YXRlT2JzZXJ2ZXJzKCkKK3sKKyAgICBtX2JhY2tncm91bmRP
YnNlcnZlciA9IFtbTlNOb3RpZmljYXRpb25DZW50ZXIgZGVmYXVsdENlbnRlcl0gYWRkT2JzZXJ2
ZXJGb3JOYW1lOlVJQXBwbGljYXRpb25EaWRFbnRlckJhY2tncm91bmROb3RpZmljYXRpb24gb2Jq
ZWN0OltVSUFwcGxpY2F0aW9uIHNoYXJlZEFwcGxpY2F0aW9uXSBxdWV1ZTpuaWwgdXNpbmdCbG9j
azptYWtlQmxvY2tQdHIoW3dlYWtUaGlzID0gV2Vha1B0ciB7ICp0aGlzIH1dKE5TTm90aWZpY2F0
aW9uICopIHsKKyAgICAgICAgaWYgKHdlYWtUaGlzKQorICAgICAgICAgICAgd2Vha1RoaXMtPmFw
cGxpY2F0aW9uRGlkRW50ZXJCYWNrZ3JvdW5kKCk7CisgICAgfSkuZ2V0KCldOworICAgIG1fZm9y
ZWdyb3VuZE9ic2VydmVyID0gW1tOU05vdGlmaWNhdGlvbkNlbnRlciBkZWZhdWx0Q2VudGVyXSBh
ZGRPYnNlcnZlckZvck5hbWU6VUlBcHBsaWNhdGlvbldpbGxFbnRlckZvcmVncm91bmROb3RpZmlj
YXRpb24gb2JqZWN0OltVSUFwcGxpY2F0aW9uIHNoYXJlZEFwcGxpY2F0aW9uXSBxdWV1ZTpuaWwg
dXNpbmdCbG9jazptYWtlQmxvY2tQdHIoW3dlYWtUaGlzID0gV2Vha1B0ciB7ICp0aGlzIH1dKE5T
Tm90aWZpY2F0aW9uICopIHsKKyAgICAgICAgaWYgKHdlYWtUaGlzKQorICAgICAgICAgICAgd2Vh
a1RoaXMtPmFwcGxpY2F0aW9uV2lsbEVudGVyRm9yZWdyb3VuZCgpOworICAgIH0pLmdldCgpXTsK
K30KKwordm9pZCBOZXR3b3JrUHJvY2Vzczo6cmVtb3ZlQmFja2dyb3VuZFN0YXRlT2JzZXJ2ZXJz
KCkKK3sKKyAgICBbW05TTm90aWZpY2F0aW9uQ2VudGVyIGRlZmF1bHRDZW50ZXJdIHJlbW92ZU9i
c2VydmVyOm1fYmFja2dyb3VuZE9ic2VydmVyLmdldCgpXTsKKyAgICBbW05TTm90aWZpY2F0aW9u
Q2VudGVyIGRlZmF1bHRDZW50ZXJdIHJlbW92ZU9ic2VydmVyOm1fZm9yZWdyb3VuZE9ic2VydmVy
LmdldCgpXTsKK30KKwordm9pZCBOZXR3b3JrUHJvY2Vzczo6YXBwbGljYXRpb25EaWRFbnRlckJh
Y2tncm91bmQoKQoreworICAgIGlmICghbV9lbnRlckJhY2tncm91bmRUaW1lc3RhbXApCisgICAg
ICAgIG1fZW50ZXJCYWNrZ3JvdW5kVGltZXN0YW1wID0gTW9ub3RvbmljVGltZTo6bm93KCk7Cit9
CisKK3ZvaWQgTmV0d29ya1Byb2Nlc3M6OmFwcGxpY2F0aW9uV2lsbEVudGVyRm9yZWdyb3VuZCgp
Cit7CisgICAgaWYgKG1fZW50ZXJCYWNrZ3JvdW5kVGltZXN0YW1wKQorICAgICAgICBtX2VudGVy
QmFja2dyb3VuZFRpbWVzdGFtcCA9IHN0ZDo6bnVsbG9wdDsKK30KKwogfSAvLyBuYW1lc3BhY2Ug
V2ViS2l0CiAKICNlbmRpZiAvLyBQTEFURk9STShJT1NfRkFNSUxZKQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvRG93bmxvYWRzL0Rvd25sb2FkUHJveHlNYXAuY3BwIGIvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvRG93bmxvYWRzL0Rvd25sb2FkUHJveHlNYXAuY3BwCmluZGV4
IGIxNDk5ZmYxNDVjYjc1NmMyNDZhNDdhZWZlMzk4ZDZhYjdjNDNjYjYuLjNjYjRiNzQzMjM2ZGU2
YTdmNGFiYzMwZDM2ODFjNzE2YTFkZDMzNjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL0Rvd25sb2Fkcy9Eb3dubG9hZFByb3h5TWFwLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9Eb3dubG9hZHMvRG93bmxvYWRQcm94eU1hcC5jcHAKQEAgLTcxLDEyICs3MSwx
MiBAQCB2b2lkIERvd25sb2FkUHJveHlNYXA6OnBsYXRmb3JtRGVzdHJveSgpCiAKIHZvaWQgRG93
bmxvYWRQcm94eU1hcDo6YXBwbGljYXRpb25EaWRFbnRlckJhY2tncm91bmQoKQogewotICAgIG1f
cHJvY2Vzcy5zZW5kKE1lc3NhZ2VzOjpOZXR3b3JrUHJvY2Vzczo6QXBwbGljYXRpb25EaWRFbnRl
ckJhY2tncm91bmQoKSwgMCk7CisgICAgbV9wcm9jZXNzLnNlbmQoTWVzc2FnZXM6Ok5ldHdvcmtQ
cm9jZXNzOjpBcHBsaWNhdGlvbkRpZEVudGVyQmFja2dyb3VuZEZvckRvd25sb2FkKCksIDApOwog
fQogCiB2b2lkIERvd25sb2FkUHJveHlNYXA6OmFwcGxpY2F0aW9uV2lsbEVudGVyRm9yZWdyb3Vu
ZCgpCiB7Ci0gICAgbV9wcm9jZXNzLnNlbmQoTWVzc2FnZXM6Ok5ldHdvcmtQcm9jZXNzOjpBcHBs
aWNhdGlvbldpbGxFbnRlckZvcmVncm91bmQoKSwgMCk7CisgICAgbV9wcm9jZXNzLnNlbmQoTWVz
c2FnZXM6Ok5ldHdvcmtQcm9jZXNzOjpBcHBsaWNhdGlvbldpbGxFbnRlckZvcmVncm91bmRGb3JE
b3dubG9hZCgpLCAwKTsKIH0KIAogRG93bmxvYWRQcm94eSYgRG93bmxvYWRQcm94eU1hcDo6Y3Jl
YXRlRG93bmxvYWRQcm94eShXZWJzaXRlRGF0YVN0b3JlJiBkYXRhU3RvcmUsIFdlYlByb2Nlc3NQ
b29sJiBwcm9jZXNzUG9vbCwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiByZXNvdXJj
ZVJlcXVlc3QsIGNvbnN0IEZyYW1lSW5mb0RhdGEmIGZyYW1lSW5mbywgV2ViUGFnZVByb3h5KiBv
cmlnaW5hdGluZ1BhZ2UpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9HUFUv
R1BVUHJvY2Vzc1Byb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0dQVS9HUFVQcm9j
ZXNzUHJveHkuY3BwCmluZGV4IDRhZjI3NjAyNzkxMzU1MjFlYzEzYWI4YzMyMTcxZGZkMzFmOGNm
YjQuLjg0M2RjZDJlNWY4NDY0YmExNTFhYmY0OTQ1NGZjYThlNGZiM2FmYWMgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0dQVS9HUFVQcm9jZXNzUHJveHkuY3BwCisrKyBiL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL0dQVS9HUFVQcm9jZXNzUHJveHkuY3BwCkBAIC01NzUsNyAr
NTc1LDcgQEAgdm9pZCBHUFVQcm9jZXNzUHJveHk6OnNlbmRQcmVwYXJlVG9TdXNwZW5kKElzU3Vz
cGVuc2lvbkltbWluZW50IGlzU3VzcGVuc2lvbkltbWkKICAgICBzZW5kV2l0aEFzeW5jUmVwbHko
TWVzc2FnZXM6OkdQVVByb2Nlc3M6OlByZXBhcmVUb1N1c3BlbmQoaXNTdXNwZW5zaW9uSW1taW5l
bnQgPT0gSXNTdXNwZW5zaW9uSW1taW5lbnQ6OlllcyksIFdURk1vdmUoY29tcGxldGlvbkhhbmRs
ZXIpLCAwLCB7IH0sIFNob3VsZFN0YXJ0UHJvY2Vzc1Rocm90dGxlckFjdGl2aXR5OjpObyk7CiB9
CiAKLXZvaWQgR1BVUHJvY2Vzc1Byb3h5OjpzZW5kUHJvY2Vzc0RpZFJlc3VtZSgpCit2b2lkIEdQ
VVByb2Nlc3NQcm94eTo6c2VuZFByb2Nlc3NEaWRSZXN1bWUoUmVzdW1lUmVhc29uKQogewogICAg
IGlmIChjYW5TZW5kTWVzc2FnZSgpKQogICAgICAgICBzZW5kKE1lc3NhZ2VzOjpHUFVQcm9jZXNz
OjpQcm9jZXNzRGlkUmVzdW1lKCksIDApOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvR1BVL0dQVVByb2Nlc3NQcm94eS5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvR1BV
L0dQVVByb2Nlc3NQcm94eS5oCmluZGV4IDQ0M2U5YjdhNDY2YWZlNTFlODg0YjRmOTQzOGM0Y2M2
NWQ3M2I4ZGMuLjJiNDc4ODdiODQxZTE4YjBhMTZhMzA1NzRkZjAxYjE5ZGI2MWM1Y2EgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0dQVS9HUFVQcm9jZXNzUHJveHkuaAorKysg
Yi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9HUFUvR1BVUHJvY2Vzc1Byb3h5LmgKQEAgLTEyNyw3
ICsxMjcsNyBAQCBwcml2YXRlOgogICAgIC8vIFByb2Nlc3NUaHJvdHRsZXJDbGllbnQKICAgICBB
U0NJSUxpdGVyYWwgY2xpZW50TmFtZSgpIGNvbnN0IGZpbmFsIHsgcmV0dXJuICJHUFVQcm9jZXNz
Il9zOyB9CiAgICAgdm9pZCBzZW5kUHJlcGFyZVRvU3VzcGVuZChJc1N1c3BlbnNpb25JbW1pbmVu
dCwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmKSBmaW5hbDsKLSAgICB2b2lkIHNlbmRQcm9j
ZXNzRGlkUmVzdW1lKCkgZmluYWw7CisgICAgdm9pZCBzZW5kUHJvY2Vzc0RpZFJlc3VtZShSZXN1
bWVSZWFzb24pIGZpbmFsOwogCiAgICAgLy8gUHJvY2Vzc0xhdW5jaGVyOjpDbGllbnQKICAgICB2
b2lkIGRpZEZpbmlzaExhdW5jaGluZyhQcm9jZXNzTGF1bmNoZXIqLCBJUEM6OkNvbm5lY3Rpb246
OklkZW50aWZpZXIpIG92ZXJyaWRlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvTmV0d29yay9OZXR3b3JrUHJvY2Vzc1Byb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nlc3NQcm94eS5jcHAKaW5kZXggMzg4NWU0ZGY2YWIwOGMy
ZDlmNGE3YzljNTNlODBmMjhhYTRhMTk1ZC4uMTU4NDUyYzM3MzYxODU2MWFiYzA2NzhmNjBjYzIy
NWI2NDM4NjljMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvTmV0d29yay9O
ZXR3b3JrUHJvY2Vzc1Byb3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9OZXR3
b3JrL05ldHdvcmtQcm9jZXNzUHJveHkuY3BwCkBAIC0xMzk5LDEwICsxMzk5LDEwIEBAIHZvaWQg
TmV0d29ya1Byb2Nlc3NQcm94eTo6c2VuZFByZXBhcmVUb1N1c3BlbmQoSXNTdXNwZW5zaW9uSW1t
aW5lbnQgaXNTdXNwZW5zaW9uCiAgICAgc2VuZFdpdGhBc3luY1JlcGx5KE1lc3NhZ2VzOjpOZXR3
b3JrUHJvY2Vzczo6UHJlcGFyZVRvU3VzcGVuZChpc1N1c3BlbnNpb25JbW1pbmVudCA9PSBJc1N1
c3BlbnNpb25JbW1pbmVudDo6WWVzKSwgV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlciksIDAsIHsg
fSwgU2hvdWxkU3RhcnRQcm9jZXNzVGhyb3R0bGVyQWN0aXZpdHk6Ok5vKTsKIH0KIAotdm9pZCBO
ZXR3b3JrUHJvY2Vzc1Byb3h5OjpzZW5kUHJvY2Vzc0RpZFJlc3VtZSgpCit2b2lkIE5ldHdvcmtQ
cm9jZXNzUHJveHk6OnNlbmRQcm9jZXNzRGlkUmVzdW1lKFJlc3VtZVJlYXNvbiByZWFzb24pCiB7
CiAgICAgaWYgKGNhblNlbmRNZXNzYWdlKCkpCi0gICAgICAgIHNlbmQoTWVzc2FnZXM6Ok5ldHdv
cmtQcm9jZXNzOjpQcm9jZXNzRGlkUmVzdW1lKCksIDApOworICAgICAgICBzZW5kKE1lc3NhZ2Vz
OjpOZXR3b3JrUHJvY2Vzczo6UHJvY2Vzc0RpZFJlc3VtZShyZWFzb24gPT0gUmVzdW1lUmVhc29u
OjpGb3JlZ3JvdW5kQWN0aXZpdHkpLCAwKTsKIH0KIAogdm9pZCBOZXR3b3JrUHJvY2Vzc1Byb3h5
OjpmbHVzaENvb2tpZXMoUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBDb21wbGV0aW9uSGFuZGxl
cjx2b2lkKCk+JiYgY29tcGxldGlvbkhhbmRsZXIpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9jZXNzUHJveHkuaCBiL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nlc3NQcm94eS5oCmluZGV4IGUwYWVlMmY3YjM2
YWJkY2U2MzQ4NTc3NWMxNTQyYmM3NTRiZDI1MjMuLjU1MzgzZTdlYjE1NDMxOGIxZWIxZDcyOWI5
MmZhM2ViN2FkZDEzZDMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL05ldHdv
cmsvTmV0d29ya1Byb2Nlc3NQcm94eS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL05l
dHdvcmsvTmV0d29ya1Byb2Nlc3NQcm94eS5oCkBAIC0yMzYsNyArMjM2LDcgQEAgcHVibGljOgog
ICAgIHZvaWQgY3JlYXRlU3ltTGlua0ZvckZpbGVVcGdyYWRlKGNvbnN0IFN0cmluZyYgaW5kZXhl
ZERhdGFiYXNlRGlyZWN0b3J5KTsKIAogICAgIC8vIFByb2Nlc3NUaHJvdHRsZXJDbGllbnQKLSAg
ICB2b2lkIHNlbmRQcm9jZXNzRGlkUmVzdW1lKCkgZmluYWw7CisgICAgdm9pZCBzZW5kUHJvY2Vz
c0RpZFJlc3VtZShSZXN1bWVSZWFzb24gPSBSZXN1bWVSZWFzb246OkZvcmVncm91bmRBY3Rpdml0
eSkgZmluYWw7CiAgICAgQVNDSUlMaXRlcmFsIGNsaWVudE5hbWUoKSBjb25zdCBmaW5hbCB7IHJl
dHVybiAiTmV0d29ya1Byb2Nlc3MiX3M7IH0KICAgICAKICAgICBzdGF0aWMgdm9pZCBzZXRTdXNw
ZW5zaW9uQWxsb3dlZEZvclRlc3RpbmcoYm9vbCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9jZXNzUHJveHlDb2NvYS5tbSBiL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nlc3NQcm94eUNvY29hLm1tCmluZGV4
IGI2NGI1MDIwNjFiNDg5YzM3OTU1YzI5NTA3NTMyN2RiYjAxNjRlMmEuLjE0NWRmZmM1MTU1OGFl
YTRlYmY2ZWQxZmYyYmNmYWQ2OGFmNWIyMjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nlc3NQcm94eUNvY29hLm1tCisrKyBiL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nlc3NQcm94eUNvY29hLm1tCkBAIC0y
Nyw2ICsyNyw3IEBACiAjaW1wb3J0ICJOZXR3b3JrUHJvY2Vzc1Byb3h5LmgiCiAKICNpbXBvcnQg
IkxhdW5jaFNlcnZpY2VzRGF0YWJhc2VYUENDb25zdGFudHMuaCIKKyNpbXBvcnQgIk5ldHdvcmtQ
cm9jZXNzTWVzc2FnZXMuaCIKICNpbXBvcnQgIldlYlByb2Nlc3NQb29sLmgiCiAjaW1wb3J0ICJY
UENFbmRwb2ludC5oIgogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Qcm9j
ZXNzVGhyb3R0bGVyLmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1Byb2Nlc3NUaHJvdHRs
ZXIuY3BwCmluZGV4IGI2OWI2NDk2ZmFjODAyYWI0M2VmYmY4MjdmZGQzMmE5YjBmZDE1YWIuLjQ3
MTJmMmVjZmJhMmM1YTk5ZTJkNmJhZDRmMWUwNWM1N2RkZTg2YTUgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL1Byb2Nlc3NUaHJvdHRsZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL1Byb2Nlc3NUaHJvdHRsZXIuY3BwCkBAIC0xNTksNyArMTU5LDcgQEAgdm9p
ZCBQcm9jZXNzVGhyb3R0bGVyOjp1cGRhdGVBc3NlcnRpb25JZk5lZWRlZCgpCiAgICAgICAgICAg
ICAgICAgUFJPQ0VTU1RIUk9UVExFUl9SRUxFQVNFX0xPRygidXBkYXRlQXNzZXJ0aW9uSWZOZWVk
ZWQ6IHNlbmRpbmcgUHJvY2Vzc0RpZFJlc3VtZSBJUEMgYmVjYXVzZSB0aGUgcHJvY2VzcyB3YXMg
c3VzcGVuZGVkIik7CiAgICAgICAgICAgICBlbHNlCiAgICAgICAgICAgICAgICAgUFJPQ0VTU1RI
Uk9UVExFUl9SRUxFQVNFX0xPRygidXBkYXRlQXNzZXJ0aW9uSWZOZWVkZWQ6IHNlbmRpbmcgUHJv
Y2Vzc0RpZFJlc3VtZSBJUEMgYmVjYXVzZSB0aGUgV2ViUHJvY2VzcyBpcyBzdGlsbCBwcm9jZXNz
aW5nIHJlcXVlc3QgdG8gc3VzcGVuZD0lIiBQUkl1NjQsICptX3BlbmRpbmdSZXF1ZXN0VG9TdXNw
ZW5kSUQpOwotICAgICAgICAgICAgbV9wcm9jZXNzLnNlbmRQcm9jZXNzRGlkUmVzdW1lKCk7Cisg
ICAgICAgICAgICBtX3Byb2Nlc3Muc2VuZFByb2Nlc3NEaWRSZXN1bWUoZXhwZWN0ZWRBc3NlcnRp
b25UeXBlKCkgPT0gUHJvY2Vzc0Fzc2VydGlvblR5cGU6OkZvcmVncm91bmQgPyBQcm9jZXNzVGhy
b3R0bGVyQ2xpZW50OjpSZXN1bWVSZWFzb246OkZvcmVncm91bmRBY3Rpdml0eSA6IFByb2Nlc3NU
aHJvdHRsZXJDbGllbnQ6OlJlc3VtZVJlYXNvbjo6QmFja2dyb3VuZEFjdGl2aXR5KTsKICAgICAg
ICAgICAgIGNsZWFyUGVuZGluZ1JlcXVlc3RUb1N1c3BlbmQoKTsKICAgICAgICAgfQogICAgIH0g
ZWxzZSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Qcm9jZXNzVGhyb3R0
bGVyQ2xpZW50LmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Qcm9jZXNzVGhyb3R0bGVyQ2xp
ZW50LmgKaW5kZXggMTE4YmYwZGQyMzU4MjI0YzJlYzdkZjliOTY1MWU5ZjEzNzhlNmUwMC4uNzZh
NWE5Mzg4YmJjZjQwZTk5NGQzOTdiMmQ0ZmRkMDBlNWQ5YTg0MSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvUHJvY2Vzc1Rocm90dGxlckNsaWVudC5oCisrKyBiL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL1Byb2Nlc3NUaHJvdHRsZXJDbGllbnQuaApAQCAtMzcsNyArMzcsOCBA
QCBwdWJsaWM6CiAgICAgdmlydHVhbCB+UHJvY2Vzc1Rocm90dGxlckNsaWVudCgpIHsgfQogCiAg
ICAgdmlydHVhbCB2b2lkIHNlbmRQcmVwYXJlVG9TdXNwZW5kKElzU3VzcGVuc2lvbkltbWluZW50
LCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYpID0gMDsKLSAgICB2aXJ0dWFsIHZvaWQgc2Vu
ZFByb2Nlc3NEaWRSZXN1bWUoKSA9IDA7CisgICAgZW51bSBSZXN1bWVSZWFzb24gOiBib29sIHsg
Rm9yZWdyb3VuZEFjdGl2aXR5LCBCYWNrZ3JvdW5kQWN0aXZpdHkgfTsKKyAgICB2aXJ0dWFsIHZv
aWQgc2VuZFByb2Nlc3NEaWRSZXN1bWUoUmVzdW1lUmVhc29uID0gRm9yZWdyb3VuZEFjdGl2aXR5
KSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIGRpZFNldEFzc2VydGlvblR5cGUoUHJvY2Vzc0Fzc2Vy
dGlvblR5cGUpIHsgfTsKICAgICB2aXJ0dWFsIEFTQ0lJTGl0ZXJhbCBjbGllbnROYW1lKCkgY29u
c3QgPSAwOwogfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYkF1dGhl
bnRpY2F0aW9uL1dlYkF1dGhuUHJvY2Vzc1Byb3h5LmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9XZWJBdXRoZW50aWNhdGlvbi9XZWJBdXRoblByb2Nlc3NQcm94eS5oCmluZGV4IGM1YjE2NzFi
MWFhMDYzNGQxMzJiOWE2ZWY4OWFlODNlY2ZiMDNiM2UuLjExYmYwNDcxN2E2NTIwZmZhNGE2N2Uz
Nzg2MGRjYWJiZjYyZTU2NTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dl
YkF1dGhlbnRpY2F0aW9uL1dlYkF1dGhuUHJvY2Vzc1Byb3h5LmgKKysrIGIvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvV2ViQXV0aGVudGljYXRpb24vV2ViQXV0aG5Qcm9jZXNzUHJveHkuaApAQCAt
NTUsNyArNTUsNyBAQCBwdWJsaWM6CiAgICAgdm9pZCB1cGRhdGVQcm9jZXNzQXNzZXJ0aW9uKCk7
CiAKICAgICAvLyBQcm9jZXNzVGhyb3R0bGVyQ2xpZW50Ci0gICAgdm9pZCBzZW5kUHJvY2Vzc0Rp
ZFJlc3VtZSgpIGZpbmFsIHsgfQorICAgIHZvaWQgc2VuZFByb2Nlc3NEaWRSZXN1bWUoUmVzdW1l
UmVhc29uKSBmaW5hbCB7IH0KICAgICBBU0NJSUxpdGVyYWwgY2xpZW50TmFtZSgpIGNvbnN0IGZp
bmFsIHsgcmV0dXJuICJXZWJBdXRoblByb2Nlc3MiX3M7IH0KIAogcHJpdmF0ZToKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5jcHAgYi9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkuY3BwCmluZGV4IDJmMWU2OTM2YmU2MTQ1
ODEyZDQ3N2ZhYmE3ZGMyYTgwMzc4NGU3YWYuLjM2YzJiNWFhYjMxYWE3MzgyMjhkZjlmNmQxODA4
YTAwNTg5MzA1MTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nl
c3NQcm94eS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5
LmNwcApAQCAtMTQzNSw3ICsxNDM1LDcgQEAgdm9pZCBXZWJQcm9jZXNzUHJveHk6OnNlbmRQcmVw
YXJlVG9TdXNwZW5kKElzU3VzcGVuc2lvbkltbWluZW50IGlzU3VzcGVuc2lvbkltbWkKICAgICBz
ZW5kV2l0aEFzeW5jUmVwbHkoTWVzc2FnZXM6OldlYlByb2Nlc3M6OlByZXBhcmVUb1N1c3BlbmQo
aXNTdXNwZW5zaW9uSW1taW5lbnQgPT0gSXNTdXNwZW5zaW9uSW1taW5lbnQ6OlllcyksIFdURk1v
dmUoY29tcGxldGlvbkhhbmRsZXIpLCAwLCB7IH0sIFNob3VsZFN0YXJ0UHJvY2Vzc1Rocm90dGxl
ckFjdGl2aXR5OjpObyk7CiB9CiAKLXZvaWQgV2ViUHJvY2Vzc1Byb3h5OjpzZW5kUHJvY2Vzc0Rp
ZFJlc3VtZSgpCit2b2lkIFdlYlByb2Nlc3NQcm94eTo6c2VuZFByb2Nlc3NEaWRSZXN1bWUoUmVz
dW1lUmVhc29uKQogewogICAgIFdFQlBST0NFU1NQUk9YWV9SRUxFQVNFX0xPRyhQcm9jZXNzU3Vz
cGVuc2lvbiwgInNlbmRQcm9jZXNzRGlkUmVzdW1lOiIpOwogICAgIGlmIChjYW5TZW5kTWVzc2Fn
ZSgpKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5
LmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkuaAppbmRleCBiZmM3
OTU2YzAyZWU1YWNlMmQ1NTczNDNjNTA3NTM3YTg1Y2ZkNGZjLi4xMTQxN2VhN2M0NmViZjZjOTg3
M2Q1YzQyMWUyZDU1NmI2ODljZDQ0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9XZWJQcm9jZXNzUHJveHkuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9j
ZXNzUHJveHkuaApAQCAtMzI3LDcgKzMyNyw3IEBAIHB1YmxpYzoKIAogICAgIC8vIFByb2Nlc3NU
aHJvdHRsZXJDbGllbnQKICAgICB2b2lkIHNlbmRQcmVwYXJlVG9TdXNwZW5kKElzU3VzcGVuc2lv
bkltbWluZW50LCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYpIGZpbmFsOwotICAgIHZvaWQg
c2VuZFByb2Nlc3NEaWRSZXN1bWUoKSBmaW5hbDsKKyAgICB2b2lkIHNlbmRQcm9jZXNzRGlkUmVz
dW1lKFJlc3VtZVJlYXNvbiA9IFJlc3VtZVJlYXNvbjo6Rm9yZWdyb3VuZEFjdGl2aXR5KSBmaW5h
bDsKICAgICB2b2lkIGRpZFNldEFzc2VydGlvblR5cGUoUHJvY2Vzc0Fzc2VydGlvblR5cGUpIGZp
bmFsOwogICAgIEFTQ0lJTGl0ZXJhbCBjbGllbnROYW1lKCkgY29uc3QgZmluYWwgeyByZXR1cm4g
IldlYlByb2Nlc3MiX3M7IH0KIAo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>455322</attachid>
            <date>2022-03-21 20:26:17 -0700</date>
            <delta_ts>2022-03-21 20:49:32 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-238082-20220321202616.patch</filename>
            <type>text/plain</type>
            <size>23491</size>
            <attacher name="Sihui Liu">sihui_liu</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjkxNTg5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDU4ZTIzZTZmZjlhY2FjZTY3
MWEwYWNlY2QyNTFkMjFlOWFmMzgyOGUuLmNhYWY3NTIwYzkwODUzMjQxNzc1YzMzYTc0MTdhYmY5
MWJhMmViNzAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNTQgQEAKKzIwMjItMDMtMjEgIFNpaHVpIExp
dSAgPHNpaHVpX2xpdUBhcHBsZS5jb20+CisKKyAgICAgICAgQWRkIGxvZ2dpbmcgYWJvdXQgcHJv
Y2VzcyBlbnRlcmluZyBiYWNrZ3JvdW5kIHRvIE5ldHdvcmtQcm9jZXNzOjpwcm9jZXNzRGlkUmVz
dW1lCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzgw
ODIKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBJbiBy
ZGFyOi8vODI0MTI3MzMsIHdlIGZvdW5kIG5ldHdvcmsgcHJvY2VzcyBjYW4gYmUgc3VzcGVuZGVk
IHJpZ2h0IGFmdGVyIGl0IHJlY2VpdmVzIHByb2Nlc3NEaWRSZXN1bWUgbWVzc2FnZS4gCisgICAg
ICAgIEZvciBuZXR3b3JrIHBvcmNlc3MsIHByb2Nlc3NEaWRSZXN1bWUgbWVhbnMgcHJvY2VzcyBp
cyBub3Qgc3VzcGVuZGVkIGFuZCBpdCBpcyBzYWZlIHRvIHBlcmZvcm0gZGF0YWJhc2UgCisgICAg
ICAgIG9wZXJhdGlvbnMuIExldCdzIGFkZCBsb2dnaW5nIHRvIGNoZWNrIHdoZW4gYW5kIHdoeSBw
cm9jZXNzRGlkUmVzdW1lIG1lc3NhZ2UgaXMgc2VudC4gSWYgdGhlIGxvZ2dpbmcgY29uZmlybXMK
KyAgICAgICAgdGhhdCBwcm9jZXNzRGlkUmVzdW1lIG1lc3NhZ2UgY2FuIGJlIHJlY2VpdmVkIHdo
ZW4gcHJvY2VzcyBpcyBjbG9zZSB0byBhc3NlcnRpb24gdGltZW91dCwgd2UgcHJvYmFibHkgd2Fu
dCB0byAKKyAgICAgICAgaWdub3JlIHN1Y2ggbWVzc2FnZSBhbmQgcmVzdW1lIGRhdGFiYXNlIG9w
ZXJhdGlvbnMgd2hlbiBhcHBsaWNhdGlvbiBhY3R1YWxseSBlbnRlcnMgZm9yZWdyb3VuZC4KKwor
ICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLmNwcDoKKyAgICAgICAgKFdl
YktpdDo6TmV0d29ya1Byb2Nlc3M6OnByZXBhcmVUb1N1c3BlbmQpOgorICAgICAgICAoV2ViS2l0
OjpOZXR3b3JrUHJvY2Vzczo6YXBwbGljYXRpb25EaWRFbnRlckJhY2tncm91bmQpOgorICAgICAg
ICAoV2ViS2l0OjpOZXR3b3JrUHJvY2Vzczo6YXBwbGljYXRpb25XaWxsRW50ZXJGb3JlZ3JvdW5k
KToKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya1Byb2Nlc3M6OnByb2Nlc3NEaWRSZXN1bWUpOgor
ICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLmg6CisgICAgICAgICogTmV0
d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MubWVzc2FnZXMuaW46CisgICAgICAgICogTmV0d29y
a1Byb2Nlc3MvaW9zL05ldHdvcmtQcm9jZXNzSU9TLm1tOgorICAgICAgICAqIFVJUHJvY2Vzcy9D
b2NvYS9Eb3dubG9hZFByb3h5TWFwQ29jb2EubW06CisgICAgICAgIChXZWJLaXQ6OkRvd25sb2Fk
UHJveHlNYXA6OnBsYXRmb3JtQ3JlYXRlKToKKyAgICAgICAgKFdlYktpdDo6RG93bmxvYWRQcm94
eU1hcDo6cGxhdGZvcm1EZXN0cm95KToKKyAgICAgICAgKiBVSVByb2Nlc3MvRG93bmxvYWRzL0Rv
d25sb2FkUHJveHlNYXAuY3BwOgorICAgICAgICAoV2ViS2l0OjpEb3dubG9hZFByb3h5TWFwOjph
cHBsaWNhdGlvbkRpZEVudGVyQmFja2dyb3VuZCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJLaXQ6
OkRvd25sb2FkUHJveHlNYXA6OmFwcGxpY2F0aW9uV2lsbEVudGVyRm9yZWdyb3VuZCk6IERlbGV0
ZWQuCisgICAgICAgICogVUlQcm9jZXNzL0Rvd25sb2Fkcy9Eb3dubG9hZFByb3h5TWFwLmg6Cisg
ICAgICAgIChXZWJLaXQ6OkRvd25sb2FkUHJveHlNYXA6OmlzRW1wdHkgY29uc3QpOgorICAgICAg
ICAqIFVJUHJvY2Vzcy9HUFUvR1BVUHJvY2Vzc1Byb3h5LmNwcDoKKyAgICAgICAgKFdlYktpdDo6
R1BVUHJvY2Vzc1Byb3h5OjpzZW5kUHJvY2Vzc0RpZFJlc3VtZSk6CisgICAgICAgICogVUlQcm9j
ZXNzL0dQVS9HUFVQcm9jZXNzUHJveHkuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvTmV0d29yay9O
ZXR3b3JrUHJvY2Vzc1Byb3h5LmNwcDoKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya1Byb2Nlc3NQ
cm94eTo6TmV0d29ya1Byb2Nlc3NQcm94eSk6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtQcm9j
ZXNzUHJveHk6On5OZXR3b3JrUHJvY2Vzc1Byb3h5KToKKyAgICAgICAgKFdlYktpdDo6TmV0d29y
a1Byb2Nlc3NQcm94eTo6c3ludGhlc2l6ZUFwcElzQmFja2dyb3VuZCk6CisgICAgICAgIChXZWJL
aXQ6Ok5ldHdvcmtQcm9jZXNzUHJveHk6OnNlbmRQcm9jZXNzRGlkUmVzdW1lKToKKyAgICAgICAg
KFdlYktpdDo6TmV0d29ya1Byb2Nlc3NQcm94eTo6YXBwbGljYXRpb25EaWRFbnRlckJhY2tncm91
bmQpOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrUHJvY2Vzc1Byb3h5OjphcHBsaWNhdGlvbldp
bGxFbnRlckZvcmVncm91bmQpOgorICAgICAgICAqIFVJUHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQ
cm9jZXNzUHJveHkuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvTmV0d29yay9OZXR3b3JrUHJvY2Vz
c1Byb3h5Q29jb2EubW06CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtQcm9jZXNzUHJveHk6OmFk
ZEJhY2tncm91bmRTdGF0ZU9ic2VydmVycyk6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtQcm9j
ZXNzUHJveHk6OnJlbW92ZUJhY2tncm91bmRTdGF0ZU9ic2VydmVycyk6CisgICAgICAgICogVUlQ
cm9jZXNzL1Byb2Nlc3NUaHJvdHRsZXIuY3BwOgorICAgICAgICAoV2ViS2l0OjpQcm9jZXNzVGhy
b3R0bGVyOjp1cGRhdGVBc3NlcnRpb25JZk5lZWRlZCk6CisgICAgICAgICogVUlQcm9jZXNzL1By
b2Nlc3NUaHJvdHRsZXJDbGllbnQuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViQXV0aGVudGlj
YXRpb24vV2ViQXV0aG5Qcm9jZXNzUHJveHkuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUHJv
Y2Vzc1Byb3h5LmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViUHJvY2Vzc1Byb3h5OjpzZW5kUHJv
Y2Vzc0RpZFJlc3VtZSk6CisgICAgICAgICogVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5oOgor
CiAyMDIyLTAzLTIxICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CiAKICAgICAgICAg
QnJvYWRjYXN0Q2hhbm5lbCBpbnN0YW5jZXMgaW4gZGlzdGluY3Qgb3BhcXVlIG9yaWdpbnMgY2Fu
IGNvbW11bmljYXRlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05l
dHdvcmtQcm9jZXNzLmNwcCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1By
b2Nlc3MuY3BwCmluZGV4IDgzNGQxOWE1YjYzZDBlNTNhOGJmMjM3MmE5NTMxYzRhMWNlZjY4ZjIu
LjkwZjUxOGIzYzE3YmQ0Y2UyZGUwNTJhMjdjNTQxMjc1NWEzZTFiNzQgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MuY3BwCisrKyBiL1NvdXJj
ZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MuY3BwCkBAIC0yMTI5LDcgKzIx
MjksNyBAQCB2b2lkIE5ldHdvcmtQcm9jZXNzOjp0ZXJtaW5hdGVSZW1vdGVXb3JrZXJDb250ZXh0
Q29ubmVjdGlvbldoZW5Qb3NzaWJsZShSZW1vdGVXbwogCiB2b2lkIE5ldHdvcmtQcm9jZXNzOjpw
cmVwYXJlVG9TdXNwZW5kKGJvb2wgaXNTdXNwZW5zaW9uSW1taW5lbnQsIENvbXBsZXRpb25IYW5k
bGVyPHZvaWQoKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKIHsKLSAgICBSRUxFQVNFX0xPRyhQcm9j
ZXNzU3VzcGVuc2lvbiwgIiVwIC0gTmV0d29ya1Byb2Nlc3M6OnByZXBhcmVUb1N1c3BlbmQoKSwg
aXNTdXNwZW5zaW9uSW1taW5lbnQ9JWQiLCB0aGlzLCBpc1N1c3BlbnNpb25JbW1pbmVudCk7Cisg
ICAgUkVMRUFTRV9MT0coUHJvY2Vzc1N1c3BlbnNpb24sICIlcCAtIE5ldHdvcmtQcm9jZXNzOjpw
cmVwYXJlVG9TdXNwZW5kKCksIGlzU3VzcGVuc2lvbkltbWluZW50PSVkIFByb2Nlc3MgaXMgJXNp
biBiYWNrZ3JvdW5kIiwgdGhpcywgaXNTdXNwZW5zaW9uSW1taW5lbnQsIG1fZW50ZXJCYWNrZ3Jv
dW5kVGltZXN0YW1wID8gIiIgOiAibm90ICIpOwogCiAgICAgbV9pc1N1c3BlbmRlZCA9IHRydWU7
CiAgICAgbG93TWVtb3J5SGFuZGxlcihDcml0aWNhbDo6WWVzKTsKQEAgLTIxNjAsMTcgKzIxNjAs
MjYgQEAgdm9pZCBOZXR3b3JrUHJvY2Vzczo6cHJlcGFyZVRvU3VzcGVuZChib29sIGlzU3VzcGVu
c2lvbkltbWluZW50LCBDb21wbGV0aW9uSGFuZGwKIAogdm9pZCBOZXR3b3JrUHJvY2Vzczo6YXBw
bGljYXRpb25EaWRFbnRlckJhY2tncm91bmQoKQogeworICAgIGlmICghbV9lbnRlckJhY2tncm91
bmRUaW1lc3RhbXApCisgICAgICAgIG1fZW50ZXJCYWNrZ3JvdW5kVGltZXN0YW1wID0gTW9ub3Rv
bmljVGltZTo6bm93KCk7CisKICAgICBtX2Rvd25sb2FkTWFuYWdlci5hcHBsaWNhdGlvbkRpZEVu
dGVyQmFja2dyb3VuZCgpOwogfQogCiB2b2lkIE5ldHdvcmtQcm9jZXNzOjphcHBsaWNhdGlvbldp
bGxFbnRlckZvcmVncm91bmQoKQogeworICAgIGlmIChtX2VudGVyQmFja2dyb3VuZFRpbWVzdGFt
cCkKKyAgICAgICAgbV9lbnRlckJhY2tncm91bmRUaW1lc3RhbXAgPSBzdGQ6Om51bGxvcHQ7CisK
ICAgICBtX2Rvd25sb2FkTWFuYWdlci5hcHBsaWNhdGlvbldpbGxFbnRlckZvcmVncm91bmQoKTsK
IH0KIAotdm9pZCBOZXR3b3JrUHJvY2Vzczo6cHJvY2Vzc0RpZFJlc3VtZSgpCit2b2lkIE5ldHdv
cmtQcm9jZXNzOjpwcm9jZXNzRGlkUmVzdW1lKGJvb2wgZm9yRm9yZWdyb3VuZEFjdGl2aXR5KQog
ewotICAgIFJFTEVBU0VfTE9HKFByb2Nlc3NTdXNwZW5zaW9uLCAiJXAgLSBOZXR3b3JrUHJvY2Vz
czo6cHJvY2Vzc0RpZFJlc3VtZSgpIiwgdGhpcyk7CisgICAgU3RyaW5nIGJhY2tncm91bmRJbnRl
cnZhbFN0cmluZyA9ICIiOworICAgIGlmIChtX2VudGVyQmFja2dyb3VuZFRpbWVzdGFtcCkKKyAg
ICAgICAgYmFja2dyb3VuZEludGVydmFsU3RyaW5nID0gbWFrZVN0cmluZygiIFByb2Nlc3MgaXMg
aW4gYmFja2dyb3VuZCBmb3IgIiwgKE1vbm90b25pY1RpbWU6Om5vdygpIC0gbV9lbnRlckJhY2tn
cm91bmRUaW1lc3RhbXAudmFsdWUoKSkudmFsdWUoKSwgIiBzZWNvbmRzIik7CisgICAgUkVMRUFT
RV9MT0coUHJvY2Vzc1N1c3BlbnNpb24sICIlcCAtIE5ldHdvcmtQcm9jZXNzOjpwcm9jZXNzRGlk
UmVzdW1lKCkgZm9yRm9yZWdyb3VuZEFjdGl2aXR5PSVkJXMiLCB0aGlzLCBmb3JGb3JlZ3JvdW5k
QWN0aXZpdHksIGJhY2tncm91bmRJbnRlcnZhbFN0cmluZy51dGY4KCkuZGF0YSgpKTsKIAogICAg
IG1faXNTdXNwZW5kZWQgPSBmYWxzZTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3
b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5oIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vz
cy9OZXR3b3JrUHJvY2Vzcy5oCmluZGV4IGQ5MzVmNDZjY2M5OWNhODY3ODRmNWYxNGU4MGRkNzBi
NTAzODNiMjkuLmU3ZDlhNzZjNjUyZDY5Zjk3MDNlYzY4ZDIzN2RkMWVjZDAwN2E3Y2YgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MuaAorKysg
Yi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLmgKQEAgLTE3NCw3
ICsxNzQsNyBAQCBwdWJsaWM6CiAKICAgICB2b2lkIHByb2Nlc3NXaWxsU3VzcGVuZEltbWluZW50
bHlGb3JUZXN0aW5nU3luYyhDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYpOwogICAgIHZvaWQg
cHJlcGFyZVRvU3VzcGVuZChib29sIGlzU3VzcGVuc2lvbkltbWluZW50LCBDb21wbGV0aW9uSGFu
ZGxlcjx2b2lkKCk+JiYpOwotICAgIHZvaWQgcHJvY2Vzc0RpZFJlc3VtZSgpOworICAgIHZvaWQg
cHJvY2Vzc0RpZFJlc3VtZShib29sIGZvckZvcmVncm91bmRBY3Rpdml0eSk7CiAKICAgICBDYWNo
ZU1vZGVsIGNhY2hlTW9kZWwoKSBjb25zdCB7IHJldHVybiBtX2NhY2hlTW9kZWw7IH0KIApAQCAt
NTI2LDYgKzUyNiw3IEBAIHByaXZhdGU6CiAgICAgYm9vbCBtX3ByaXZhdGVDbGlja01lYXN1cmVt
ZW50RW5hYmxlZCB7IHRydWUgfTsKICAgICBib29sIG1fZnRwRW5hYmxlZCB7IGZhbHNlIH07CiAg
ICAgYm9vbCBtX2lzU3VzcGVuZGVkIHsgZmFsc2UgfTsKKyAgICBzdGQ6Om9wdGlvbmFsPE1vbm90
b25pY1RpbWU+IG1fZW50ZXJCYWNrZ3JvdW5kVGltZXN0YW1wOwogfTsKIAogI2lmICFQTEFURk9S
TShDT0NPQSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29y
a1Byb2Nlc3MubWVzc2FnZXMuaW4gYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdv
cmtQcm9jZXNzLm1lc3NhZ2VzLmluCmluZGV4IDY3ODhkNjVjYzZhOGNjZDNmMTFmOTBiMmQ2Nzc5
ZTIxYWJkMWNkYzYuLjQxNmFjMDQ0MzgyYjgzMGQ1OGZhOTY4MmFkYmEwNzg0MDhlMDExZTIgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MubWVz
c2FnZXMuaW4KKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vz
cy5tZXNzYWdlcy5pbgpAQCAtNzUsNyArNzUsNyBAQCBtZXNzYWdlcyAtPiBOZXR3b3JrUHJvY2Vz
cyBMZWdhY3lSZWNlaXZlciB7CiAKICAgICBQcm9jZXNzV2lsbFN1c3BlbmRJbW1pbmVudGx5Rm9y
VGVzdGluZ1N5bmMoKSAtPiAoKSBTeW5jaHJvbm91cwogICAgIFByZXBhcmVUb1N1c3BlbmQoYm9v
bCBpc1N1c3BlbnNpb25JbW1pbmVudCkgLT4gKCkKLSAgICBQcm9jZXNzRGlkUmVzdW1lKCkKKyAg
ICBQcm9jZXNzRGlkUmVzdW1lKGJvb2wgZm9yRm9yZWdyb3VuZEFjdGl2aXR5KQogCiAgICAgUHJl
Y29ubmVjdFRvKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgV2ViS2l0OjpXZWJQYWdlUHJveHlJ
ZGVudGlmaWVyIHdlYlBhZ2VQcm94eUlELCBXZWJDb3JlOjpQYWdlSWRlbnRpZmllciB3ZWJQYWdl
SUQsIFVSTCB1cmwsIFN0cmluZyB1c2VyQWdlbnQsIGVudW06dWludDhfdCBXZWJDb3JlOjpTdG9y
ZWRDcmVkZW50aWFsc1BvbGljeSBzdG9yZWRDcmVkZW50aWFsc1BvbGljeSwgZW51bTpib29sIHN0
ZDo6b3B0aW9uYWw8V2ViS2l0OjpOYXZpZ2F0aW5nVG9BcHBCb3VuZERvbWFpbj4gaXNOYXZpZ2F0
aW5nVG9BcHBCb3VuZERvbWFpbiwgZW51bTpib29sIFdlYktpdDo6TGFzdE5hdmlnYXRpb25XYXNB
cHBJbml0aWF0ZWQgbGFzdE5hdmlnYXRpb25XYXNBcHBJbml0aWF0ZWQpOwogCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL2lvcy9OZXR3b3JrUHJvY2Vzc0lPUy5tbSBi
L1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvaW9zL05ldHdvcmtQcm9jZXNzSU9TLm1tCmlu
ZGV4IDgyN2RkZjZlY2Y0ZDkyOTFlMGJmZjc0ZmE1ZWJiODE3YjdkY2ZmZDcuLjAzYThjM2E4MmQz
NzA2MzA2ZTIwYjEzOGE3Y2M3Njc1MDQ0N2MyMTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
TmV0d29ya1Byb2Nlc3MvaW9zL05ldHdvcmtQcm9jZXNzSU9TLm1tCisrKyBiL1NvdXJjZS9XZWJL
aXQvTmV0d29ya1Byb2Nlc3MvaW9zL05ldHdvcmtQcm9jZXNzSU9TLm1tCkBAIC0zMyw2ICszMyw3
IEBACiAjaW1wb3J0ICJQcm9jZXNzQXNzZXJ0aW9uLmgiCiAjaW1wb3J0ICJTYW5kYm94SW5pdGlh
bGl6YXRpb25QYXJhbWV0ZXJzLmgiCiAjaW1wb3J0ICJTZWNJdGVtU2hpbS5oIgorI2ltcG9ydCA8
VUlLaXQvVUlLaXQuaD4KICNpbXBvcnQgPFdlYkNvcmUvQ2VydGlmaWNhdGVJbmZvLmg+CiAjaW1w
b3J0IDxXZWJDb3JlL05vdEltcGxlbWVudGVkLmg+CiAjaW1wb3J0IDxXZWJDb3JlL1dlYkNvcmVU
aHJlYWRTeXN0ZW1JbnRlcmZhY2UuaD4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL0NvY29hL0Rvd25sb2FkUHJveHlNYXBDb2NvYS5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL0NvY29hL0Rvd25sb2FkUHJveHlNYXBDb2NvYS5tbQppbmRleCBiM2Q5ZGVmOTY4M2VhMmQy
OTZkZTExOWFiMzdhZGQ3MjEwZjBhZTA1Li5kNDEzNzcyZjRlNDNiNzRlMDJiN2RlYTk0YmEyY2Vl
ZjgyYTQyMTcxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9Eb3du
bG9hZFByb3h5TWFwQ29jb2EubW0KKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2Ev
RG93bmxvYWRQcm94eU1hcENvY29hLm1tCkBAIC0zNiwyNiArMzYsMTAgQEAgbmFtZXNwYWNlIFdl
YktpdCB7CiAKIHZvaWQgRG93bmxvYWRQcm94eU1hcDo6cGxhdGZvcm1DcmVhdGUoKQogewotI2lm
IFBMQVRGT1JNKElPU19GQU1JTFkpCi0gICAgbV9iYWNrZ3JvdW5kT2JzZXJ2ZXIgPSBbW05TTm90
aWZpY2F0aW9uQ2VudGVyIGRlZmF1bHRDZW50ZXJdIGFkZE9ic2VydmVyRm9yTmFtZTpVSUFwcGxp
Y2F0aW9uRGlkRW50ZXJCYWNrZ3JvdW5kTm90aWZpY2F0aW9uIG9iamVjdDpbVUlBcHBsaWNhdGlv
biBzaGFyZWRBcHBsaWNhdGlvbl0gcXVldWU6bmlsIHVzaW5nQmxvY2s6bWFrZUJsb2NrUHRyKFt3
ZWFrVGhpcyA9IFdlYWtQdHIgeyAqdGhpcyB9XShOU05vdGlmaWNhdGlvbiAqKSB7Ci0gICAgICAg
IGlmICghd2Vha1RoaXMpCi0gICAgICAgICAgICByZXR1cm47Ci0gICAgICAgIHdlYWtUaGlzLT5h
cHBsaWNhdGlvbkRpZEVudGVyQmFja2dyb3VuZCgpOwotICAgIH0pLmdldCgpXTsKLSAgICBtX2Zv
cmVncm91bmRPYnNlcnZlciA9IFtbTlNOb3RpZmljYXRpb25DZW50ZXIgZGVmYXVsdENlbnRlcl0g
YWRkT2JzZXJ2ZXJGb3JOYW1lOlVJQXBwbGljYXRpb25XaWxsRW50ZXJGb3JlZ3JvdW5kTm90aWZp
Y2F0aW9uIG9iamVjdDpbVUlBcHBsaWNhdGlvbiBzaGFyZWRBcHBsaWNhdGlvbl0gcXVldWU6bmls
IHVzaW5nQmxvY2s6bWFrZUJsb2NrUHRyKFt3ZWFrVGhpcyA9IFdlYWtQdHIgeyAqdGhpcyB9XShO
U05vdGlmaWNhdGlvbiAqKSB7Ci0gICAgICAgIGlmICghd2Vha1RoaXMpCi0gICAgICAgICAgICBy
ZXR1cm47Ci0gICAgICAgIHdlYWtUaGlzLT5hcHBsaWNhdGlvbldpbGxFbnRlckZvcmVncm91bmQo
KTsKLSAgICB9KS5nZXQoKV07Ci0jZW5kaWYKIH0KIAogdm9pZCBEb3dubG9hZFByb3h5TWFwOjpw
bGF0Zm9ybURlc3Ryb3koKQogewotI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCi0gICAgW1tOU05v
dGlmaWNhdGlvbkNlbnRlciBkZWZhdWx0Q2VudGVyXSByZW1vdmVPYnNlcnZlcjptX2JhY2tncm91
bmRPYnNlcnZlci5nZXQoKV07Ci0gICAgW1tOU05vdGlmaWNhdGlvbkNlbnRlciBkZWZhdWx0Q2Vu
dGVyXSByZW1vdmVPYnNlcnZlcjptX2ZvcmVncm91bmRPYnNlcnZlci5nZXQoKV07Ci0jZW5kaWYK
IH0KIAogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9Eb3dubG9hZHMvRG93bmxvYWRQcm94eU1hcC5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9Eb3dubG9hZHMvRG93bmxvYWRQcm94eU1hcC5jcHAKaW5kZXggYjE0OTlmZjE0NWNi
NzU2YzI0NmE0N2FlZmUzOThkNmFiN2M0M2NiNi4uMzM3MTY0N2MwOWYxMGNlOTBhODM1ZWIxZDIy
ZWQ5MTYxNGVhNThiNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvRG93bmxv
YWRzL0Rvd25sb2FkUHJveHlNYXAuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0Rv
d25sb2Fkcy9Eb3dubG9hZFByb3h5TWFwLmNwcApAQCAtNjksMTYgKzY5LDYgQEAgdm9pZCBEb3du
bG9hZFByb3h5TWFwOjpwbGF0Zm9ybURlc3Ryb3koKQogfQogI2VuZGlmCiAKLXZvaWQgRG93bmxv
YWRQcm94eU1hcDo6YXBwbGljYXRpb25EaWRFbnRlckJhY2tncm91bmQoKQotewotICAgIG1fcHJv
Y2Vzcy5zZW5kKE1lc3NhZ2VzOjpOZXR3b3JrUHJvY2Vzczo6QXBwbGljYXRpb25EaWRFbnRlckJh
Y2tncm91bmQoKSwgMCk7Ci19Ci0KLXZvaWQgRG93bmxvYWRQcm94eU1hcDo6YXBwbGljYXRpb25X
aWxsRW50ZXJGb3JlZ3JvdW5kKCkKLXsKLSAgICBtX3Byb2Nlc3Muc2VuZChNZXNzYWdlczo6TmV0
d29ya1Byb2Nlc3M6OkFwcGxpY2F0aW9uV2lsbEVudGVyRm9yZWdyb3VuZCgpLCAwKTsKLX0KLQog
RG93bmxvYWRQcm94eSYgRG93bmxvYWRQcm94eU1hcDo6Y3JlYXRlRG93bmxvYWRQcm94eShXZWJz
aXRlRGF0YVN0b3JlJiBkYXRhU3RvcmUsIFdlYlByb2Nlc3NQb29sJiBwcm9jZXNzUG9vbCwgY29u
c3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiByZXNvdXJjZVJlcXVlc3QsIGNvbnN0IEZyYW1l
SW5mb0RhdGEmIGZyYW1lSW5mbywgV2ViUGFnZVByb3h5KiBvcmlnaW5hdGluZ1BhZ2UpCiB7CiAg
ICAgYXV0byogbGVnYWN5RG93bmxvYWRDbGllbnQgPSBwcm9jZXNzUG9vbC5sZWdhY3lEb3dubG9h
ZENsaWVudCgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvRG93bmxvYWRz
L0Rvd25sb2FkUHJveHlNYXAuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0Rvd25sb2Fkcy9E
b3dubG9hZFByb3h5TWFwLmgKaW5kZXggODEyZjY0ZDQ3MjU3NWIxNDIxYTZlNzViZDgyODljMGVk
MTAzOTk5My4uYWY0MjJjZDRkODg2ZmE5Zjg5NDg3MGQyOTVhNTFmYmNhYWE0NjAxZSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvRG93bmxvYWRzL0Rvd25sb2FkUHJveHlNYXAu
aAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Eb3dubG9hZHMvRG93bmxvYWRQcm94eU1h
cC5oCkBAIC02MSwxMiArNjEsOCBAQCBwdWJsaWM6CiAgICAgdm9pZCBkb3dubG9hZEZpbmlzaGVk
KERvd25sb2FkUHJveHkmKTsKIAogICAgIGJvb2wgaXNFbXB0eSgpIGNvbnN0IHsgcmV0dXJuIG1f
ZG93bmxvYWRzLmlzRW1wdHkoKTsgfQotCiAgICAgdm9pZCBpbnZhbGlkYXRlKCk7CiAKLSAgICB2
b2lkIGFwcGxpY2F0aW9uRGlkRW50ZXJCYWNrZ3JvdW5kKCk7Ci0gICAgdm9pZCBhcHBsaWNhdGlv
bldpbGxFbnRlckZvcmVncm91bmQoKTsKLQogcHJpdmF0ZToKICAgICB2b2lkIHBsYXRmb3JtQ3Jl
YXRlKCk7CiAgICAgdm9pZCBwbGF0Zm9ybURlc3Ryb3koKTsKQEAgLTc3LDExICs3Myw2IEBAIHBy
aXZhdGU6CiAgICAgYm9vbCBtX3Nob3VsZFRha2VBc3NlcnRpb24geyBmYWxzZSB9OwogICAgIFJl
ZlB0cjxQcm9jZXNzQXNzZXJ0aW9uPiBtX2Rvd25sb2FkVUlBc3NlcnRpb247CiAgICAgUmVmUHRy
PFByb2Nlc3NBc3NlcnRpb24+IG1fZG93bmxvYWROZXR3b3JraW5nQXNzZXJ0aW9uOwotCi0jaWYg
UExBVEZPUk0oSU9TX0ZBTUlMWSkKLSAgICBSZXRhaW5QdHI8aWQ+IG1fYmFja2dyb3VuZE9ic2Vy
dmVyOwotICAgIFJldGFpblB0cjxpZD4gbV9mb3JlZ3JvdW5kT2JzZXJ2ZXI7Ci0jZW5kaWYKIH07
CiAKIH0gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvR1BVL0dQVVByb2Nlc3NQcm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9H
UFUvR1BVUHJvY2Vzc1Byb3h5LmNwcAppbmRleCA0YWYyNzYwMjc5MTM1NTIxZWMxM2FiOGMzMjE3
MWRmZDMxZjhjZmI0Li44NDNkY2QyZTVmODQ2NGJhMTUxYWJmNDk0NTRmY2E4ZTRmYjNhZmFjIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9HUFUvR1BVUHJvY2Vzc1Byb3h5LmNw
cAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9HUFUvR1BVUHJvY2Vzc1Byb3h5LmNwcApA
QCAtNTc1LDcgKzU3NSw3IEBAIHZvaWQgR1BVUHJvY2Vzc1Byb3h5OjpzZW5kUHJlcGFyZVRvU3Vz
cGVuZChJc1N1c3BlbnNpb25JbW1pbmVudCBpc1N1c3BlbnNpb25JbW1pCiAgICAgc2VuZFdpdGhB
c3luY1JlcGx5KE1lc3NhZ2VzOjpHUFVQcm9jZXNzOjpQcmVwYXJlVG9TdXNwZW5kKGlzU3VzcGVu
c2lvbkltbWluZW50ID09IElzU3VzcGVuc2lvbkltbWluZW50OjpZZXMpLCBXVEZNb3ZlKGNvbXBs
ZXRpb25IYW5kbGVyKSwgMCwgeyB9LCBTaG91bGRTdGFydFByb2Nlc3NUaHJvdHRsZXJBY3Rpdml0
eTo6Tm8pOwogfQogCi12b2lkIEdQVVByb2Nlc3NQcm94eTo6c2VuZFByb2Nlc3NEaWRSZXN1bWUo
KQordm9pZCBHUFVQcm9jZXNzUHJveHk6OnNlbmRQcm9jZXNzRGlkUmVzdW1lKFJlc3VtZVJlYXNv
bikKIHsKICAgICBpZiAoY2FuU2VuZE1lc3NhZ2UoKSkKICAgICAgICAgc2VuZChNZXNzYWdlczo6
R1BVUHJvY2Vzczo6UHJvY2Vzc0RpZFJlc3VtZSgpLCAwKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL0dQVS9HUFVQcm9jZXNzUHJveHkuaCBiL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL0dQVS9HUFVQcm9jZXNzUHJveHkuaAppbmRleCA0NDNlOWI3YTQ2NmFmZTUxZTg4NGI0
Zjk0MzhjNGNjNjVkNzNiOGRjLi4yYjQ3ODg3Yjg0MWUxOGIwYTE2YTMwNTc0ZGYwMWIxOWRiNjFj
NWNhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9HUFUvR1BVUHJvY2Vzc1By
b3h5LmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvR1BVL0dQVVByb2Nlc3NQcm94eS5o
CkBAIC0xMjcsNyArMTI3LDcgQEAgcHJpdmF0ZToKICAgICAvLyBQcm9jZXNzVGhyb3R0bGVyQ2xp
ZW50CiAgICAgQVNDSUlMaXRlcmFsIGNsaWVudE5hbWUoKSBjb25zdCBmaW5hbCB7IHJldHVybiAi
R1BVUHJvY2VzcyJfczsgfQogICAgIHZvaWQgc2VuZFByZXBhcmVUb1N1c3BlbmQoSXNTdXNwZW5z
aW9uSW1taW5lbnQsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJikgZmluYWw7Ci0gICAgdm9p
ZCBzZW5kUHJvY2Vzc0RpZFJlc3VtZSgpIGZpbmFsOworICAgIHZvaWQgc2VuZFByb2Nlc3NEaWRS
ZXN1bWUoUmVzdW1lUmVhc29uKSBmaW5hbDsKIAogICAgIC8vIFByb2Nlc3NMYXVuY2hlcjo6Q2xp
ZW50CiAgICAgdm9pZCBkaWRGaW5pc2hMYXVuY2hpbmcoUHJvY2Vzc0xhdW5jaGVyKiwgSVBDOjpD
b25uZWN0aW9uOjpJZGVudGlmaWVyKSBvdmVycmlkZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nlc3NQcm94eS5jcHAgYi9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9jZXNzUHJveHkuY3BwCmluZGV4IDM4ODVl
NGRmNmFiMDhjMmQ5ZjRhN2M5YzUzZTgwZjI4YWE0YTE5NWQuLjEzYjRiOGIyNjBjOTcyZmFlYWNh
NDc4MjNjMTU4ZTU4ZGYxZTYyMmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L05ldHdvcmsvTmV0d29ya1Byb2Nlc3NQcm94eS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvTmV0d29yay9OZXR3b3JrUHJvY2Vzc1Byb3h5LmNwcApAQCAtMjY5LDYgKzI2OSw5IEBA
IE5ldHdvcmtQcm9jZXNzUHJveHk6Ok5ldHdvcmtQcm9jZXNzUHJveHkoKQogICAgIHNlbmRDcmVh
dGlvblBhcmFtZXRlcnNUb05ld1Byb2Nlc3MoKTsKICAgICB1cGRhdGVQcm9jZXNzQXNzZXJ0aW9u
KCk7CiAgICAgbmV0d29ya1Byb2Nlc3Nlc1NldCgpLmFkZCh0aGlzKTsKKyNpZiBQTEFURk9STShJ
T1NfRkFNSUxZKQorICAgIGFkZEJhY2tncm91bmRTdGF0ZU9ic2VydmVycygpOworI2VuZGlmCiB9
CiAKIE5ldHdvcmtQcm9jZXNzUHJveHk6On5OZXR3b3JrUHJvY2Vzc1Byb3h5KCkKQEAgLTI4MSw2
ICsyODQsOSBAQCBOZXR3b3JrUHJvY2Vzc1Byb3h5Ojp+TmV0d29ya1Byb2Nlc3NQcm94eSgpCiAg
ICAgaWYgKG1fZG93bmxvYWRQcm94eU1hcCkKICAgICAgICAgbV9kb3dubG9hZFByb3h5TWFwLT5p
bnZhbGlkYXRlKCk7CiAgICAgbmV0d29ya1Byb2Nlc3Nlc1NldCgpLnJlbW92ZSh0aGlzKTsKKyNp
ZiBQTEFURk9STShJT1NfRkFNSUxZKQorICAgIHJlbW92ZUJhY2tncm91bmRTdGF0ZU9ic2VydmVy
cygpOworI2VuZGlmCiB9CiAKIHZvaWQgTmV0d29ya1Byb2Nlc3NQcm94eTo6Z2V0TGF1bmNoT3B0
aW9ucyhQcm9jZXNzTGF1bmNoZXI6OkxhdW5jaE9wdGlvbnMmIGxhdW5jaE9wdGlvbnMpCkBAIC0z
MzYsMTIgKzM0MiwxMCBAQCB2b2lkIE5ldHdvcmtQcm9jZXNzUHJveHk6OmdldE5ldHdvcmtQcm9j
ZXNzQ29ubmVjdGlvbihXZWJQcm9jZXNzUHJveHkmIHdlYlByb2NlcwogCiB2b2lkIE5ldHdvcmtQ
cm9jZXNzUHJveHk6OnN5bnRoZXNpemVBcHBJc0JhY2tncm91bmQoYm9vbCBiYWNrZ3JvdW5kKQog
ewotICAgIGlmIChtX2Rvd25sb2FkUHJveHlNYXApIHsKLSAgICAgICAgaWYgKGJhY2tncm91bmQp
Ci0gICAgICAgICAgICBtX2Rvd25sb2FkUHJveHlNYXAtPmFwcGxpY2F0aW9uRGlkRW50ZXJCYWNr
Z3JvdW5kKCk7Ci0gICAgICAgIGVsc2UKLSAgICAgICAgICAgIG1fZG93bmxvYWRQcm94eU1hcC0+
YXBwbGljYXRpb25XaWxsRW50ZXJGb3JlZ3JvdW5kKCk7Ci0gICAgfQorICAgIGlmIChiYWNrZ3Jv
dW5kKQorICAgICAgICBhcHBsaWNhdGlvbkRpZEVudGVyQmFja2dyb3VuZCgpOworICAgIGVsc2UK
KyAgICAgICAgYXBwbGljYXRpb25XaWxsRW50ZXJGb3JlZ3JvdW5kKCk7CiB9CiAKIERvd25sb2Fk
UHJveHkmIE5ldHdvcmtQcm9jZXNzUHJveHk6OmNyZWF0ZURvd25sb2FkUHJveHkoV2Vic2l0ZURh
dGFTdG9yZSYgZGF0YVN0b3JlLCBXZWJQcm9jZXNzUG9vbCYgcHJvY2Vzc1Bvb2wsIGNvbnN0IFJl
c291cmNlUmVxdWVzdCYgcmVzb3VyY2VSZXF1ZXN0LCBjb25zdCBGcmFtZUluZm9EYXRhJiBmcmFt
ZUluZm8sIFdlYlBhZ2VQcm94eSogb3JpZ2luYXRpbmdQYWdlKQpAQCAtMTM5OSwxMCArMTQwMywx
MCBAQCB2b2lkIE5ldHdvcmtQcm9jZXNzUHJveHk6OnNlbmRQcmVwYXJlVG9TdXNwZW5kKElzU3Vz
cGVuc2lvbkltbWluZW50IGlzU3VzcGVuc2lvbgogICAgIHNlbmRXaXRoQXN5bmNSZXBseShNZXNz
YWdlczo6TmV0d29ya1Byb2Nlc3M6OlByZXBhcmVUb1N1c3BlbmQoaXNTdXNwZW5zaW9uSW1taW5l
bnQgPT0gSXNTdXNwZW5zaW9uSW1taW5lbnQ6OlllcyksIFdURk1vdmUoY29tcGxldGlvbkhhbmRs
ZXIpLCAwLCB7IH0sIFNob3VsZFN0YXJ0UHJvY2Vzc1Rocm90dGxlckFjdGl2aXR5OjpObyk7CiB9
CiAKLXZvaWQgTmV0d29ya1Byb2Nlc3NQcm94eTo6c2VuZFByb2Nlc3NEaWRSZXN1bWUoKQordm9p
ZCBOZXR3b3JrUHJvY2Vzc1Byb3h5OjpzZW5kUHJvY2Vzc0RpZFJlc3VtZShSZXN1bWVSZWFzb24g
cmVhc29uKQogewogICAgIGlmIChjYW5TZW5kTWVzc2FnZSgpKQotICAgICAgICBzZW5kKE1lc3Nh
Z2VzOjpOZXR3b3JrUHJvY2Vzczo6UHJvY2Vzc0RpZFJlc3VtZSgpLCAwKTsKKyAgICAgICAgc2Vu
ZChNZXNzYWdlczo6TmV0d29ya1Byb2Nlc3M6OlByb2Nlc3NEaWRSZXN1bWUocmVhc29uID09IFJl
c3VtZVJlYXNvbjo6Rm9yZWdyb3VuZEFjdGl2aXR5KSwgMCk7CiB9CiAKIHZvaWQgTmV0d29ya1By
b2Nlc3NQcm94eTo6Zmx1c2hDb29raWVzKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgQ29tcGxl
dGlvbkhhbmRsZXI8dm9pZCgpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQpAQCAtMTgwMSw2ICsxODA1
LDE2IEBAIHZvaWQgTmV0d29ya1Byb2Nlc3NQcm94eTo6dGVybWluYXRlUmVtb3RlV29ya2VyQ29u
dGV4dENvbm5lY3Rpb25XaGVuUG9zc2libGUoUmVtCiAgICAgc2VuZChNZXNzYWdlczo6TmV0d29y
a1Byb2Nlc3M6OlRlcm1pbmF0ZVJlbW90ZVdvcmtlckNvbnRleHRDb25uZWN0aW9uV2hlblBvc3Np
YmxlKHdvcmtlclR5cGUsIHNlc3Npb25JRCwgcmVnaXN0cmFibGVEb21haW4sIHByb2Nlc3NJZGVu
dGlmaWVyKSwgMCk7CiB9CiAKK3ZvaWQgTmV0d29ya1Byb2Nlc3NQcm94eTo6YXBwbGljYXRpb25E
aWRFbnRlckJhY2tncm91bmQoKQoreworICAgIHNlbmQoTWVzc2FnZXM6Ok5ldHdvcmtQcm9jZXNz
OjpBcHBsaWNhdGlvbkRpZEVudGVyQmFja2dyb3VuZCgpLCAwKTsKK30KKwordm9pZCBOZXR3b3Jr
UHJvY2Vzc1Byb3h5OjphcHBsaWNhdGlvbldpbGxFbnRlckZvcmVncm91bmQoKQoreworICAgIHNl
bmQoTWVzc2FnZXM6Ok5ldHdvcmtQcm9jZXNzOjpBcHBsaWNhdGlvbldpbGxFbnRlckZvcmVncm91
bmQoKSwgMCk7Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdlYktpdAogCiAjdW5kZWYgTUVTU0FHRV9D
SEVDSwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvTmV0d29yay9OZXR3b3Jr
UHJvY2Vzc1Byb3h5LmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQ
cm9jZXNzUHJveHkuaAppbmRleCBlMGFlZTJmN2IzNmFiZGNlNjM0ODU3NzVjMTU0MmJjNzU0YmQy
NTIzLi41OWFmYWQzZGY2YTgwYmFmOTRkZjlhNzUwMDNlYWY3YmRlZDY2YzgyIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9jZXNzUHJveHkuaAor
KysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9jZXNzUHJveHku
aApAQCAtMjM2LDcgKzIzNiw3IEBAIHB1YmxpYzoKICAgICB2b2lkIGNyZWF0ZVN5bUxpbmtGb3JG
aWxlVXBncmFkZShjb25zdCBTdHJpbmcmIGluZGV4ZWREYXRhYmFzZURpcmVjdG9yeSk7CiAKICAg
ICAvLyBQcm9jZXNzVGhyb3R0bGVyQ2xpZW50Ci0gICAgdm9pZCBzZW5kUHJvY2Vzc0RpZFJlc3Vt
ZSgpIGZpbmFsOworICAgIHZvaWQgc2VuZFByb2Nlc3NEaWRSZXN1bWUoUmVzdW1lUmVhc29uID0g
UmVzdW1lUmVhc29uOjpGb3JlZ3JvdW5kQWN0aXZpdHkpIGZpbmFsOwogICAgIEFTQ0lJTGl0ZXJh
bCBjbGllbnROYW1lKCkgY29uc3QgZmluYWwgeyByZXR1cm4gIk5ldHdvcmtQcm9jZXNzIl9zOyB9
CiAgICAgCiAgICAgc3RhdGljIHZvaWQgc2V0U3VzcGVuc2lvbkFsbG93ZWRGb3JUZXN0aW5nKGJv
b2wpOwpAQCAtMzAyLDYgKzMwMiwxMyBAQCBwdWJsaWM6CiAKICAgICB2b2lkIHRlcm1pbmF0ZVJl
bW90ZVdvcmtlckNvbnRleHRDb25uZWN0aW9uV2hlblBvc3NpYmxlKFJlbW90ZVdvcmtlclR5cGUs
IFBBTDo6U2Vzc2lvbklELCBjb25zdCBXZWJDb3JlOjpSZWdpc3RyYWJsZURvbWFpbiYsIFdlYkNv
cmU6OlByb2Nlc3NJZGVudGlmaWVyKTsKIAorICAgIHZvaWQgYXBwbGljYXRpb25EaWRFbnRlckJh
Y2tncm91bmQoKTsKKyAgICB2b2lkIGFwcGxpY2F0aW9uV2lsbEVudGVyRm9yZWdyb3VuZCgpOwor
I2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCisgICAgdm9pZCBhZGRCYWNrZ3JvdW5kU3RhdGVPYnNl
cnZlcnMoKTsKKyAgICB2b2lkIHJlbW92ZUJhY2tncm91bmRTdGF0ZU9ic2VydmVycygpOworI2Vu
ZGlmCisKIHByaXZhdGU6CiAgICAgZXhwbGljaXQgTmV0d29ya1Byb2Nlc3NQcm94eSgpOwogCkBA
IC00MTIsNiArNDE5LDExIEBAIHByaXZhdGU6CiAgICAgV2Vha0hhc2hTZXQ8V2Vic2l0ZURhdGFT
dG9yZT4gbV93ZWJzaXRlRGF0YVN0b3JlczsKICAgICBVbmlxdWVSZWY8V2ViQ29va2llTWFuYWdl
clByb3h5PiBtX2Nvb2tpZU1hbmFnZXI7CiAgICAgSGFzaE1hcDxEYXRhVGFza0lkZW50aWZpZXIs
IFJlZjxBUEk6OkRhdGFUYXNrPj4gbV9kYXRhVGFza3M7CisKKyNpZiBQTEFURk9STShJT1NfRkFN
SUxZKQorICAgIFJldGFpblB0cjxpZD4gbV9iYWNrZ3JvdW5kT2JzZXJ2ZXI7CisgICAgUmV0YWlu
UHRyPGlkPiBtX2ZvcmVncm91bmRPYnNlcnZlcjsKKyNlbmRpZgogfTsKIAogfSAvLyBuYW1lc3Bh
Y2UgV2ViS2l0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9OZXR3b3JrL05l
dHdvcmtQcm9jZXNzUHJveHlDb2NvYS5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL05ldHdv
cmsvTmV0d29ya1Byb2Nlc3NQcm94eUNvY29hLm1tCmluZGV4IGI2NGI1MDIwNjFiNDg5YzM3OTU1
YzI5NTA3NTMyN2RiYjAxNjRlMmEuLjVmZTc1OGE2MzMzNWI3Yjc1NTVmZmVjMGFmYTc4ODgwYWQ3
ZTdmNjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL05ldHdvcmsvTmV0d29y
a1Byb2Nlc3NQcm94eUNvY29hLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL05ldHdv
cmsvTmV0d29ya1Byb2Nlc3NQcm94eUNvY29hLm1tCkBAIC0yNyw5ICsyNywxNCBAQAogI2ltcG9y
dCAiTmV0d29ya1Byb2Nlc3NQcm94eS5oIgogCiAjaW1wb3J0ICJMYXVuY2hTZXJ2aWNlc0RhdGFi
YXNlWFBDQ29uc3RhbnRzLmgiCisjaW1wb3J0ICJOZXR3b3JrUHJvY2Vzc01lc3NhZ2VzLmgiCiAj
aW1wb3J0ICJXZWJQcm9jZXNzUG9vbC5oIgogI2ltcG9ydCAiWFBDRW5kcG9pbnQuaCIKIAorI2lm
IFBMQVRGT1JNKElPU19GQU1JTFkpCisjaW1wb3J0IDxVSUtpdC9VSUtpdC5oPgorI2VuZGlmCisK
IG5hbWVzcGFjZSBXZWJLaXQgewogCiB1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKQEAgLTg1LDQg
KzkwLDI4IEBAIGJvb2wgTmV0d29ya1Byb2Nlc3NQcm94eTo6c2VuZFhQQ0VuZHBvaW50VG9Qcm9j
ZXNzKEF1eGlsaWFyeVByb2Nlc3NQcm94eSYgcHJvY2VzCiAgICAgcmV0dXJuIHRydWU7CiB9CiAK
KyNpZiBQTEFURk9STShJT1NfRkFNSUxZKQorCit2b2lkIE5ldHdvcmtQcm9jZXNzUHJveHk6OmFk
ZEJhY2tncm91bmRTdGF0ZU9ic2VydmVycygpCit7CisgICAgbV9iYWNrZ3JvdW5kT2JzZXJ2ZXIg
PSBbW05TTm90aWZpY2F0aW9uQ2VudGVyIGRlZmF1bHRDZW50ZXJdIGFkZE9ic2VydmVyRm9yTmFt
ZTpVSUFwcGxpY2F0aW9uRGlkRW50ZXJCYWNrZ3JvdW5kTm90aWZpY2F0aW9uIG9iamVjdDpbVUlB
cHBsaWNhdGlvbiBzaGFyZWRBcHBsaWNhdGlvbl0gcXVldWU6bmlsIHVzaW5nQmxvY2s6bWFrZUJs
b2NrUHRyKFt3ZWFrVGhpcyA9IFdlYWtQdHIgeyAqdGhpcyB9XShOU05vdGlmaWNhdGlvbiAqKSB7
CisgICAgICAgIGlmICghd2Vha1RoaXMpCisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIHdl
YWtUaGlzLT5hcHBsaWNhdGlvbkRpZEVudGVyQmFja2dyb3VuZCgpOworICAgIH0pLmdldCgpXTsK
KyAgICBtX2ZvcmVncm91bmRPYnNlcnZlciA9IFtbTlNOb3RpZmljYXRpb25DZW50ZXIgZGVmYXVs
dENlbnRlcl0gYWRkT2JzZXJ2ZXJGb3JOYW1lOlVJQXBwbGljYXRpb25XaWxsRW50ZXJGb3JlZ3Jv
dW5kTm90aWZpY2F0aW9uIG9iamVjdDpbVUlBcHBsaWNhdGlvbiBzaGFyZWRBcHBsaWNhdGlvbl0g
cXVldWU6bmlsIHVzaW5nQmxvY2s6bWFrZUJsb2NrUHRyKFt3ZWFrVGhpcyA9IFdlYWtQdHIgeyAq
dGhpcyB9XShOU05vdGlmaWNhdGlvbiAqKSB7CisgICAgICAgIGlmICghd2Vha1RoaXMpCisgICAg
ICAgICAgICByZXR1cm47CisgICAgICAgIHdlYWtUaGlzLT5hcHBsaWNhdGlvbldpbGxFbnRlckZv
cmVncm91bmQoKTsKKyAgICB9KS5nZXQoKV07Cit9CisKK3ZvaWQgTmV0d29ya1Byb2Nlc3NQcm94
eTo6cmVtb3ZlQmFja2dyb3VuZFN0YXRlT2JzZXJ2ZXJzKCkKK3sKKyAgICBbW05TTm90aWZpY2F0
aW9uQ2VudGVyIGRlZmF1bHRDZW50ZXJdIHJlbW92ZU9ic2VydmVyOm1fYmFja2dyb3VuZE9ic2Vy
dmVyLmdldCgpXTsKKyAgICBbW05TTm90aWZpY2F0aW9uQ2VudGVyIGRlZmF1bHRDZW50ZXJdIHJl
bW92ZU9ic2VydmVyOm1fZm9yZWdyb3VuZE9ic2VydmVyLmdldCgpXTsKK30KKworI2VuZGlmCisK
IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1Byb2Nlc3NUaHJvdHRsZXIu
Y3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvUHJvY2Vzc1Rocm90dGxlci5jcHAKaW5kZXgg
YjY5YjY0OTZmYWM4MDJhYjQzZWZiZjgyN2ZkZDMyYTliMGZkMTVhYi4uNDcxMmYyZWNmYmEyYzVh
OTllMmQ2YmFkNGYxZTA1YzU3ZGRlODZhNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvUHJvY2Vzc1Rocm90dGxlci5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
UHJvY2Vzc1Rocm90dGxlci5jcHAKQEAgLTE1OSw3ICsxNTksNyBAQCB2b2lkIFByb2Nlc3NUaHJv
dHRsZXI6OnVwZGF0ZUFzc2VydGlvbklmTmVlZGVkKCkKICAgICAgICAgICAgICAgICBQUk9DRVNT
VEhST1RUTEVSX1JFTEVBU0VfTE9HKCJ1cGRhdGVBc3NlcnRpb25JZk5lZWRlZDogc2VuZGluZyBQ
cm9jZXNzRGlkUmVzdW1lIElQQyBiZWNhdXNlIHRoZSBwcm9jZXNzIHdhcyBzdXNwZW5kZWQiKTsK
ICAgICAgICAgICAgIGVsc2UKICAgICAgICAgICAgICAgICBQUk9DRVNTVEhST1RUTEVSX1JFTEVB
U0VfTE9HKCJ1cGRhdGVBc3NlcnRpb25JZk5lZWRlZDogc2VuZGluZyBQcm9jZXNzRGlkUmVzdW1l
IElQQyBiZWNhdXNlIHRoZSBXZWJQcm9jZXNzIGlzIHN0aWxsIHByb2Nlc3NpbmcgcmVxdWVzdCB0
byBzdXNwZW5kPSUiIFBSSXU2NCwgKm1fcGVuZGluZ1JlcXVlc3RUb1N1c3BlbmRJRCk7Ci0gICAg
ICAgICAgICBtX3Byb2Nlc3Muc2VuZFByb2Nlc3NEaWRSZXN1bWUoKTsKKyAgICAgICAgICAgIG1f
cHJvY2Vzcy5zZW5kUHJvY2Vzc0RpZFJlc3VtZShleHBlY3RlZEFzc2VydGlvblR5cGUoKSA9PSBQ
cm9jZXNzQXNzZXJ0aW9uVHlwZTo6Rm9yZWdyb3VuZCA/IFByb2Nlc3NUaHJvdHRsZXJDbGllbnQ6
OlJlc3VtZVJlYXNvbjo6Rm9yZWdyb3VuZEFjdGl2aXR5IDogUHJvY2Vzc1Rocm90dGxlckNsaWVu
dDo6UmVzdW1lUmVhc29uOjpCYWNrZ3JvdW5kQWN0aXZpdHkpOwogICAgICAgICAgICAgY2xlYXJQ
ZW5kaW5nUmVxdWVzdFRvU3VzcGVuZCgpOwogICAgICAgICB9CiAgICAgfSBlbHNlIHsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1Byb2Nlc3NUaHJvdHRsZXJDbGllbnQuaCBi
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1Byb2Nlc3NUaHJvdHRsZXJDbGllbnQuaAppbmRleCAx
MThiZjBkZDIzNTgyMjRjMmVjN2RmOWI5NjUxZTlmMTM3OGU2ZTAwLi43NmE1YTkzODhiYmNmNDBl
OTk0ZDM5N2IyZDRmZGQwMGU1ZDlhODQxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9Qcm9jZXNzVGhyb3R0bGVyQ2xpZW50LmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvUHJvY2Vzc1Rocm90dGxlckNsaWVudC5oCkBAIC0zNyw3ICszNyw4IEBAIHB1YmxpYzoKICAg
ICB2aXJ0dWFsIH5Qcm9jZXNzVGhyb3R0bGVyQ2xpZW50KCkgeyB9CiAKICAgICB2aXJ0dWFsIHZv
aWQgc2VuZFByZXBhcmVUb1N1c3BlbmQoSXNTdXNwZW5zaW9uSW1taW5lbnQsIENvbXBsZXRpb25I
YW5kbGVyPHZvaWQoKT4mJikgPSAwOwotICAgIHZpcnR1YWwgdm9pZCBzZW5kUHJvY2Vzc0RpZFJl
c3VtZSgpID0gMDsKKyAgICBlbnVtIFJlc3VtZVJlYXNvbiA6IGJvb2wgeyBGb3JlZ3JvdW5kQWN0
aXZpdHksIEJhY2tncm91bmRBY3Rpdml0eSB9OworICAgIHZpcnR1YWwgdm9pZCBzZW5kUHJvY2Vz
c0RpZFJlc3VtZShSZXN1bWVSZWFzb24gPSBGb3JlZ3JvdW5kQWN0aXZpdHkpID0gMDsKICAgICB2
aXJ0dWFsIHZvaWQgZGlkU2V0QXNzZXJ0aW9uVHlwZShQcm9jZXNzQXNzZXJ0aW9uVHlwZSkgeyB9
OwogICAgIHZpcnR1YWwgQVNDSUlMaXRlcmFsIGNsaWVudE5hbWUoKSBjb25zdCA9IDA7CiB9Owpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViQXV0aGVudGljYXRpb24vV2Vi
QXV0aG5Qcm9jZXNzUHJveHkuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYkF1dGhlbnRp
Y2F0aW9uL1dlYkF1dGhuUHJvY2Vzc1Byb3h5LmgKaW5kZXggYzViMTY3MWIxYWEwNjM0ZDEzMmI5
YTZlZjg5YWU4M2VjZmIwM2IzZS4uMTFiZjA0NzE3YTY1MjBmZmE0YTY3ZTM3ODYwZGNhYmJmNjJl
NTY1MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViQXV0aGVudGljYXRp
b24vV2ViQXV0aG5Qcm9jZXNzUHJveHkuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9X
ZWJBdXRoZW50aWNhdGlvbi9XZWJBdXRoblByb2Nlc3NQcm94eS5oCkBAIC01NSw3ICs1NSw3IEBA
IHB1YmxpYzoKICAgICB2b2lkIHVwZGF0ZVByb2Nlc3NBc3NlcnRpb24oKTsKIAogICAgIC8vIFBy
b2Nlc3NUaHJvdHRsZXJDbGllbnQKLSAgICB2b2lkIHNlbmRQcm9jZXNzRGlkUmVzdW1lKCkgZmlu
YWwgeyB9CisgICAgdm9pZCBzZW5kUHJvY2Vzc0RpZFJlc3VtZShSZXN1bWVSZWFzb24pIGZpbmFs
IHsgfQogICAgIEFTQ0lJTGl0ZXJhbCBjbGllbnROYW1lKCkgY29uc3QgZmluYWwgeyByZXR1cm4g
IldlYkF1dGhuUHJvY2VzcyJfczsgfQogCiBwcml2YXRlOgpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL1dlYlByb2Nlc3NQcm94eS5jcHAKaW5kZXggMmYxZTY5MzZiZTYxNDU4MTJkNDc3ZmFiYTdk
YzJhODAzNzg0ZTdhZi4uMzZjMmI1YWFiMzFhYTczODIyOGRmOWY2ZDE4MDhhMDA1ODkzMDUxMiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5LmNwcAor
KysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkuY3BwCkBAIC0xNDM1
LDcgKzE0MzUsNyBAQCB2b2lkIFdlYlByb2Nlc3NQcm94eTo6c2VuZFByZXBhcmVUb1N1c3BlbmQo
SXNTdXNwZW5zaW9uSW1taW5lbnQgaXNTdXNwZW5zaW9uSW1taQogICAgIHNlbmRXaXRoQXN5bmNS
ZXBseShNZXNzYWdlczo6V2ViUHJvY2Vzczo6UHJlcGFyZVRvU3VzcGVuZChpc1N1c3BlbnNpb25J
bW1pbmVudCA9PSBJc1N1c3BlbnNpb25JbW1pbmVudDo6WWVzKSwgV1RGTW92ZShjb21wbGV0aW9u
SGFuZGxlciksIDAsIHsgfSwgU2hvdWxkU3RhcnRQcm9jZXNzVGhyb3R0bGVyQWN0aXZpdHk6Ok5v
KTsKIH0KIAotdm9pZCBXZWJQcm9jZXNzUHJveHk6OnNlbmRQcm9jZXNzRGlkUmVzdW1lKCkKK3Zv
aWQgV2ViUHJvY2Vzc1Byb3h5OjpzZW5kUHJvY2Vzc0RpZFJlc3VtZShSZXN1bWVSZWFzb24pCiB7
CiAgICAgV0VCUFJPQ0VTU1BST1hZX1JFTEVBU0VfTE9HKFByb2Nlc3NTdXNwZW5zaW9uLCAic2Vu
ZFByb2Nlc3NEaWRSZXN1bWU6Iik7CiAgICAgaWYgKGNhblNlbmRNZXNzYWdlKCkpCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkuaCBiL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5oCmluZGV4IGJmYzc5NTZjMDJlZTVhY2Uy
ZDU1NzM0M2M1MDc1MzdhODVjZmQ0ZmMuLjExNDE3ZWE3YzQ2ZWJmNmM5ODczZDVjNDIxZTJkNTU2
YjY4OWNkNDQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQ
cm94eS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5oCkBA
IC0zMjcsNyArMzI3LDcgQEAgcHVibGljOgogCiAgICAgLy8gUHJvY2Vzc1Rocm90dGxlckNsaWVu
dAogICAgIHZvaWQgc2VuZFByZXBhcmVUb1N1c3BlbmQoSXNTdXNwZW5zaW9uSW1taW5lbnQsIENv
bXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJikgZmluYWw7Ci0gICAgdm9pZCBzZW5kUHJvY2Vzc0Rp
ZFJlc3VtZSgpIGZpbmFsOworICAgIHZvaWQgc2VuZFByb2Nlc3NEaWRSZXN1bWUoUmVzdW1lUmVh
c29uID0gUmVzdW1lUmVhc29uOjpGb3JlZ3JvdW5kQWN0aXZpdHkpIGZpbmFsOwogICAgIHZvaWQg
ZGlkU2V0QXNzZXJ0aW9uVHlwZShQcm9jZXNzQXNzZXJ0aW9uVHlwZSkgZmluYWw7CiAgICAgQVND
SUlMaXRlcmFsIGNsaWVudE5hbWUoKSBjb25zdCBmaW5hbCB7IHJldHVybiAiV2ViUHJvY2VzcyJf
czsgfQogCg==
</data>
<flag name="commit-queue"
          id="483287"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>455323</attachid>
            <date>2022-03-21 20:37:31 -0700</date>
            <delta_ts>2022-03-28 18:27:12 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-238082-20220321203730.patch</filename>
            <type>text/plain</type>
            <size>23542</size>
            <attacher name="Sihui Liu">sihui_liu</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjkxNTg5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDU4ZTIzZTZmZjlhY2FjZTY3
MWEwYWNlY2QyNTFkMjFlOWFmMzgyOGUuLmNhYWY3NTIwYzkwODUzMjQxNzc1YzMzYTc0MTdhYmY5
MWJhMmViNzAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNTQgQEAKKzIwMjItMDMtMjEgIFNpaHVpIExp
dSAgPHNpaHVpX2xpdUBhcHBsZS5jb20+CisKKyAgICAgICAgQWRkIGxvZ2dpbmcgYWJvdXQgcHJv
Y2VzcyBlbnRlcmluZyBiYWNrZ3JvdW5kIHRvIE5ldHdvcmtQcm9jZXNzOjpwcm9jZXNzRGlkUmVz
dW1lCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzgw
ODIKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBJbiBy
ZGFyOi8vODI0MTI3MzMsIHdlIGZvdW5kIG5ldHdvcmsgcHJvY2VzcyBjYW4gYmUgc3VzcGVuZGVk
IHJpZ2h0IGFmdGVyIGl0IHJlY2VpdmVzIHByb2Nlc3NEaWRSZXN1bWUgbWVzc2FnZS4gCisgICAg
ICAgIEZvciBuZXR3b3JrIHBvcmNlc3MsIHByb2Nlc3NEaWRSZXN1bWUgbWVhbnMgcHJvY2VzcyBp
cyBub3Qgc3VzcGVuZGVkIGFuZCBpdCBpcyBzYWZlIHRvIHBlcmZvcm0gZGF0YWJhc2UgCisgICAg
ICAgIG9wZXJhdGlvbnMuIExldCdzIGFkZCBsb2dnaW5nIHRvIGNoZWNrIHdoZW4gYW5kIHdoeSBw
cm9jZXNzRGlkUmVzdW1lIG1lc3NhZ2UgaXMgc2VudC4gSWYgdGhlIGxvZ2dpbmcgY29uZmlybXMK
KyAgICAgICAgdGhhdCBwcm9jZXNzRGlkUmVzdW1lIG1lc3NhZ2UgY2FuIGJlIHJlY2VpdmVkIHdo
ZW4gcHJvY2VzcyBpcyBjbG9zZSB0byBhc3NlcnRpb24gdGltZW91dCwgd2UgcHJvYmFibHkgd2Fu
dCB0byAKKyAgICAgICAgaWdub3JlIHN1Y2ggbWVzc2FnZSBhbmQgcmVzdW1lIGRhdGFiYXNlIG9w
ZXJhdGlvbnMgd2hlbiBhcHBsaWNhdGlvbiBhY3R1YWxseSBlbnRlcnMgZm9yZWdyb3VuZC4KKwor
ICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLmNwcDoKKyAgICAgICAgKFdl
YktpdDo6TmV0d29ya1Byb2Nlc3M6OnByZXBhcmVUb1N1c3BlbmQpOgorICAgICAgICAoV2ViS2l0
OjpOZXR3b3JrUHJvY2Vzczo6YXBwbGljYXRpb25EaWRFbnRlckJhY2tncm91bmQpOgorICAgICAg
ICAoV2ViS2l0OjpOZXR3b3JrUHJvY2Vzczo6YXBwbGljYXRpb25XaWxsRW50ZXJGb3JlZ3JvdW5k
KToKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya1Byb2Nlc3M6OnByb2Nlc3NEaWRSZXN1bWUpOgor
ICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLmg6CisgICAgICAgICogTmV0
d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MubWVzc2FnZXMuaW46CisgICAgICAgICogTmV0d29y
a1Byb2Nlc3MvaW9zL05ldHdvcmtQcm9jZXNzSU9TLm1tOgorICAgICAgICAqIFVJUHJvY2Vzcy9D
b2NvYS9Eb3dubG9hZFByb3h5TWFwQ29jb2EubW06CisgICAgICAgIChXZWJLaXQ6OkRvd25sb2Fk
UHJveHlNYXA6OnBsYXRmb3JtQ3JlYXRlKToKKyAgICAgICAgKFdlYktpdDo6RG93bmxvYWRQcm94
eU1hcDo6cGxhdGZvcm1EZXN0cm95KToKKyAgICAgICAgKiBVSVByb2Nlc3MvRG93bmxvYWRzL0Rv
d25sb2FkUHJveHlNYXAuY3BwOgorICAgICAgICAoV2ViS2l0OjpEb3dubG9hZFByb3h5TWFwOjph
cHBsaWNhdGlvbkRpZEVudGVyQmFja2dyb3VuZCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJLaXQ6
OkRvd25sb2FkUHJveHlNYXA6OmFwcGxpY2F0aW9uV2lsbEVudGVyRm9yZWdyb3VuZCk6IERlbGV0
ZWQuCisgICAgICAgICogVUlQcm9jZXNzL0Rvd25sb2Fkcy9Eb3dubG9hZFByb3h5TWFwLmg6Cisg
ICAgICAgIChXZWJLaXQ6OkRvd25sb2FkUHJveHlNYXA6OmlzRW1wdHkgY29uc3QpOgorICAgICAg
ICAqIFVJUHJvY2Vzcy9HUFUvR1BVUHJvY2Vzc1Byb3h5LmNwcDoKKyAgICAgICAgKFdlYktpdDo6
R1BVUHJvY2Vzc1Byb3h5OjpzZW5kUHJvY2Vzc0RpZFJlc3VtZSk6CisgICAgICAgICogVUlQcm9j
ZXNzL0dQVS9HUFVQcm9jZXNzUHJveHkuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvTmV0d29yay9O
ZXR3b3JrUHJvY2Vzc1Byb3h5LmNwcDoKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya1Byb2Nlc3NQ
cm94eTo6TmV0d29ya1Byb2Nlc3NQcm94eSk6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtQcm9j
ZXNzUHJveHk6On5OZXR3b3JrUHJvY2Vzc1Byb3h5KToKKyAgICAgICAgKFdlYktpdDo6TmV0d29y
a1Byb2Nlc3NQcm94eTo6c3ludGhlc2l6ZUFwcElzQmFja2dyb3VuZCk6CisgICAgICAgIChXZWJL
aXQ6Ok5ldHdvcmtQcm9jZXNzUHJveHk6OnNlbmRQcm9jZXNzRGlkUmVzdW1lKToKKyAgICAgICAg
KFdlYktpdDo6TmV0d29ya1Byb2Nlc3NQcm94eTo6YXBwbGljYXRpb25EaWRFbnRlckJhY2tncm91
bmQpOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrUHJvY2Vzc1Byb3h5OjphcHBsaWNhdGlvbldp
bGxFbnRlckZvcmVncm91bmQpOgorICAgICAgICAqIFVJUHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQ
cm9jZXNzUHJveHkuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvTmV0d29yay9OZXR3b3JrUHJvY2Vz
c1Byb3h5Q29jb2EubW06CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtQcm9jZXNzUHJveHk6OmFk
ZEJhY2tncm91bmRTdGF0ZU9ic2VydmVycyk6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtQcm9j
ZXNzUHJveHk6OnJlbW92ZUJhY2tncm91bmRTdGF0ZU9ic2VydmVycyk6CisgICAgICAgICogVUlQ
cm9jZXNzL1Byb2Nlc3NUaHJvdHRsZXIuY3BwOgorICAgICAgICAoV2ViS2l0OjpQcm9jZXNzVGhy
b3R0bGVyOjp1cGRhdGVBc3NlcnRpb25JZk5lZWRlZCk6CisgICAgICAgICogVUlQcm9jZXNzL1By
b2Nlc3NUaHJvdHRsZXJDbGllbnQuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViQXV0aGVudGlj
YXRpb24vV2ViQXV0aG5Qcm9jZXNzUHJveHkuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUHJv
Y2Vzc1Byb3h5LmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViUHJvY2Vzc1Byb3h5OjpzZW5kUHJv
Y2Vzc0RpZFJlc3VtZSk6CisgICAgICAgICogVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5oOgor
CiAyMDIyLTAzLTIxICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CiAKICAgICAgICAg
QnJvYWRjYXN0Q2hhbm5lbCBpbnN0YW5jZXMgaW4gZGlzdGluY3Qgb3BhcXVlIG9yaWdpbnMgY2Fu
IGNvbW11bmljYXRlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05l
dHdvcmtQcm9jZXNzLmNwcCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1By
b2Nlc3MuY3BwCmluZGV4IDgzNGQxOWE1YjYzZDBlNTNhOGJmMjM3MmE5NTMxYzRhMWNlZjY4ZjIu
LjkwZjUxOGIzYzE3YmQ0Y2UyZGUwNTJhMjdjNTQxMjc1NWEzZTFiNzQgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MuY3BwCisrKyBiL1NvdXJj
ZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MuY3BwCkBAIC0yMTI5LDcgKzIx
MjksNyBAQCB2b2lkIE5ldHdvcmtQcm9jZXNzOjp0ZXJtaW5hdGVSZW1vdGVXb3JrZXJDb250ZXh0
Q29ubmVjdGlvbldoZW5Qb3NzaWJsZShSZW1vdGVXbwogCiB2b2lkIE5ldHdvcmtQcm9jZXNzOjpw
cmVwYXJlVG9TdXNwZW5kKGJvb2wgaXNTdXNwZW5zaW9uSW1taW5lbnQsIENvbXBsZXRpb25IYW5k
bGVyPHZvaWQoKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKIHsKLSAgICBSRUxFQVNFX0xPRyhQcm9j
ZXNzU3VzcGVuc2lvbiwgIiVwIC0gTmV0d29ya1Byb2Nlc3M6OnByZXBhcmVUb1N1c3BlbmQoKSwg
aXNTdXNwZW5zaW9uSW1taW5lbnQ9JWQiLCB0aGlzLCBpc1N1c3BlbnNpb25JbW1pbmVudCk7Cisg
ICAgUkVMRUFTRV9MT0coUHJvY2Vzc1N1c3BlbnNpb24sICIlcCAtIE5ldHdvcmtQcm9jZXNzOjpw
cmVwYXJlVG9TdXNwZW5kKCksIGlzU3VzcGVuc2lvbkltbWluZW50PSVkIFByb2Nlc3MgaXMgJXNp
biBiYWNrZ3JvdW5kIiwgdGhpcywgaXNTdXNwZW5zaW9uSW1taW5lbnQsIG1fZW50ZXJCYWNrZ3Jv
dW5kVGltZXN0YW1wID8gIiIgOiAibm90ICIpOwogCiAgICAgbV9pc1N1c3BlbmRlZCA9IHRydWU7
CiAgICAgbG93TWVtb3J5SGFuZGxlcihDcml0aWNhbDo6WWVzKTsKQEAgLTIxNjAsMTcgKzIxNjAs
MjYgQEAgdm9pZCBOZXR3b3JrUHJvY2Vzczo6cHJlcGFyZVRvU3VzcGVuZChib29sIGlzU3VzcGVu
c2lvbkltbWluZW50LCBDb21wbGV0aW9uSGFuZGwKIAogdm9pZCBOZXR3b3JrUHJvY2Vzczo6YXBw
bGljYXRpb25EaWRFbnRlckJhY2tncm91bmQoKQogeworICAgIGlmICghbV9lbnRlckJhY2tncm91
bmRUaW1lc3RhbXApCisgICAgICAgIG1fZW50ZXJCYWNrZ3JvdW5kVGltZXN0YW1wID0gTW9ub3Rv
bmljVGltZTo6bm93KCk7CisKICAgICBtX2Rvd25sb2FkTWFuYWdlci5hcHBsaWNhdGlvbkRpZEVu
dGVyQmFja2dyb3VuZCgpOwogfQogCiB2b2lkIE5ldHdvcmtQcm9jZXNzOjphcHBsaWNhdGlvbldp
bGxFbnRlckZvcmVncm91bmQoKQogeworICAgIGlmIChtX2VudGVyQmFja2dyb3VuZFRpbWVzdGFt
cCkKKyAgICAgICAgbV9lbnRlckJhY2tncm91bmRUaW1lc3RhbXAgPSBzdGQ6Om51bGxvcHQ7CisK
ICAgICBtX2Rvd25sb2FkTWFuYWdlci5hcHBsaWNhdGlvbldpbGxFbnRlckZvcmVncm91bmQoKTsK
IH0KIAotdm9pZCBOZXR3b3JrUHJvY2Vzczo6cHJvY2Vzc0RpZFJlc3VtZSgpCit2b2lkIE5ldHdv
cmtQcm9jZXNzOjpwcm9jZXNzRGlkUmVzdW1lKGJvb2wgZm9yRm9yZWdyb3VuZEFjdGl2aXR5KQog
ewotICAgIFJFTEVBU0VfTE9HKFByb2Nlc3NTdXNwZW5zaW9uLCAiJXAgLSBOZXR3b3JrUHJvY2Vz
czo6cHJvY2Vzc0RpZFJlc3VtZSgpIiwgdGhpcyk7CisgICAgU3RyaW5nIGJhY2tncm91bmRJbnRl
cnZhbFN0cmluZyA9ICIiOworICAgIGlmIChtX2VudGVyQmFja2dyb3VuZFRpbWVzdGFtcCkKKyAg
ICAgICAgYmFja2dyb3VuZEludGVydmFsU3RyaW5nID0gbWFrZVN0cmluZygiIFByb2Nlc3MgaXMg
aW4gYmFja2dyb3VuZCBmb3IgIiwgKE1vbm90b25pY1RpbWU6Om5vdygpIC0gbV9lbnRlckJhY2tn
cm91bmRUaW1lc3RhbXAudmFsdWUoKSkudmFsdWUoKSwgIiBzZWNvbmRzIik7CisgICAgUkVMRUFT
RV9MT0coUHJvY2Vzc1N1c3BlbnNpb24sICIlcCAtIE5ldHdvcmtQcm9jZXNzOjpwcm9jZXNzRGlk
UmVzdW1lKCkgZm9yRm9yZWdyb3VuZEFjdGl2aXR5PSVkJXMiLCB0aGlzLCBmb3JGb3JlZ3JvdW5k
QWN0aXZpdHksIGJhY2tncm91bmRJbnRlcnZhbFN0cmluZy51dGY4KCkuZGF0YSgpKTsKIAogICAg
IG1faXNTdXNwZW5kZWQgPSBmYWxzZTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3
b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5oIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vz
cy9OZXR3b3JrUHJvY2Vzcy5oCmluZGV4IGQ5MzVmNDZjY2M5OWNhODY3ODRmNWYxNGU4MGRkNzBi
NTAzODNiMjkuLmU3ZDlhNzZjNjUyZDY5Zjk3MDNlYzY4ZDIzN2RkMWVjZDAwN2E3Y2YgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MuaAorKysg
Yi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLmgKQEAgLTE3NCw3
ICsxNzQsNyBAQCBwdWJsaWM6CiAKICAgICB2b2lkIHByb2Nlc3NXaWxsU3VzcGVuZEltbWluZW50
bHlGb3JUZXN0aW5nU3luYyhDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYpOwogICAgIHZvaWQg
cHJlcGFyZVRvU3VzcGVuZChib29sIGlzU3VzcGVuc2lvbkltbWluZW50LCBDb21wbGV0aW9uSGFu
ZGxlcjx2b2lkKCk+JiYpOwotICAgIHZvaWQgcHJvY2Vzc0RpZFJlc3VtZSgpOworICAgIHZvaWQg
cHJvY2Vzc0RpZFJlc3VtZShib29sIGZvckZvcmVncm91bmRBY3Rpdml0eSk7CiAKICAgICBDYWNo
ZU1vZGVsIGNhY2hlTW9kZWwoKSBjb25zdCB7IHJldHVybiBtX2NhY2hlTW9kZWw7IH0KIApAQCAt
NTI2LDYgKzUyNiw3IEBAIHByaXZhdGU6CiAgICAgYm9vbCBtX3ByaXZhdGVDbGlja01lYXN1cmVt
ZW50RW5hYmxlZCB7IHRydWUgfTsKICAgICBib29sIG1fZnRwRW5hYmxlZCB7IGZhbHNlIH07CiAg
ICAgYm9vbCBtX2lzU3VzcGVuZGVkIHsgZmFsc2UgfTsKKyAgICBzdGQ6Om9wdGlvbmFsPE1vbm90
b25pY1RpbWU+IG1fZW50ZXJCYWNrZ3JvdW5kVGltZXN0YW1wOwogfTsKIAogI2lmICFQTEFURk9S
TShDT0NPQSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29y
a1Byb2Nlc3MubWVzc2FnZXMuaW4gYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdv
cmtQcm9jZXNzLm1lc3NhZ2VzLmluCmluZGV4IDY3ODhkNjVjYzZhOGNjZDNmMTFmOTBiMmQ2Nzc5
ZTIxYWJkMWNkYzYuLjQxNmFjMDQ0MzgyYjgzMGQ1OGZhOTY4MmFkYmEwNzg0MDhlMDExZTIgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MubWVz
c2FnZXMuaW4KKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vz
cy5tZXNzYWdlcy5pbgpAQCAtNzUsNyArNzUsNyBAQCBtZXNzYWdlcyAtPiBOZXR3b3JrUHJvY2Vz
cyBMZWdhY3lSZWNlaXZlciB7CiAKICAgICBQcm9jZXNzV2lsbFN1c3BlbmRJbW1pbmVudGx5Rm9y
VGVzdGluZ1N5bmMoKSAtPiAoKSBTeW5jaHJvbm91cwogICAgIFByZXBhcmVUb1N1c3BlbmQoYm9v
bCBpc1N1c3BlbnNpb25JbW1pbmVudCkgLT4gKCkKLSAgICBQcm9jZXNzRGlkUmVzdW1lKCkKKyAg
ICBQcm9jZXNzRGlkUmVzdW1lKGJvb2wgZm9yRm9yZWdyb3VuZEFjdGl2aXR5KQogCiAgICAgUHJl
Y29ubmVjdFRvKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgV2ViS2l0OjpXZWJQYWdlUHJveHlJ
ZGVudGlmaWVyIHdlYlBhZ2VQcm94eUlELCBXZWJDb3JlOjpQYWdlSWRlbnRpZmllciB3ZWJQYWdl
SUQsIFVSTCB1cmwsIFN0cmluZyB1c2VyQWdlbnQsIGVudW06dWludDhfdCBXZWJDb3JlOjpTdG9y
ZWRDcmVkZW50aWFsc1BvbGljeSBzdG9yZWRDcmVkZW50aWFsc1BvbGljeSwgZW51bTpib29sIHN0
ZDo6b3B0aW9uYWw8V2ViS2l0OjpOYXZpZ2F0aW5nVG9BcHBCb3VuZERvbWFpbj4gaXNOYXZpZ2F0
aW5nVG9BcHBCb3VuZERvbWFpbiwgZW51bTpib29sIFdlYktpdDo6TGFzdE5hdmlnYXRpb25XYXNB
cHBJbml0aWF0ZWQgbGFzdE5hdmlnYXRpb25XYXNBcHBJbml0aWF0ZWQpOwogCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL2lvcy9OZXR3b3JrUHJvY2Vzc0lPUy5tbSBi
L1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvaW9zL05ldHdvcmtQcm9jZXNzSU9TLm1tCmlu
ZGV4IDgyN2RkZjZlY2Y0ZDkyOTFlMGJmZjc0ZmE1ZWJiODE3YjdkY2ZmZDcuLjAzYThjM2E4MmQz
NzA2MzA2ZTIwYjEzOGE3Y2M3Njc1MDQ0N2MyMTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
TmV0d29ya1Byb2Nlc3MvaW9zL05ldHdvcmtQcm9jZXNzSU9TLm1tCisrKyBiL1NvdXJjZS9XZWJL
aXQvTmV0d29ya1Byb2Nlc3MvaW9zL05ldHdvcmtQcm9jZXNzSU9TLm1tCkBAIC0zMyw2ICszMyw3
IEBACiAjaW1wb3J0ICJQcm9jZXNzQXNzZXJ0aW9uLmgiCiAjaW1wb3J0ICJTYW5kYm94SW5pdGlh
bGl6YXRpb25QYXJhbWV0ZXJzLmgiCiAjaW1wb3J0ICJTZWNJdGVtU2hpbS5oIgorI2ltcG9ydCA8
VUlLaXQvVUlLaXQuaD4KICNpbXBvcnQgPFdlYkNvcmUvQ2VydGlmaWNhdGVJbmZvLmg+CiAjaW1w
b3J0IDxXZWJDb3JlL05vdEltcGxlbWVudGVkLmg+CiAjaW1wb3J0IDxXZWJDb3JlL1dlYkNvcmVU
aHJlYWRTeXN0ZW1JbnRlcmZhY2UuaD4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL0NvY29hL0Rvd25sb2FkUHJveHlNYXBDb2NvYS5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL0NvY29hL0Rvd25sb2FkUHJveHlNYXBDb2NvYS5tbQppbmRleCBiM2Q5ZGVmOTY4M2VhMmQy
OTZkZTExOWFiMzdhZGQ3MjEwZjBhZTA1Li5kNDEzNzcyZjRlNDNiNzRlMDJiN2RlYTk0YmEyY2Vl
ZjgyYTQyMTcxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9Eb3du
bG9hZFByb3h5TWFwQ29jb2EubW0KKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2Ev
RG93bmxvYWRQcm94eU1hcENvY29hLm1tCkBAIC0zNiwyNiArMzYsMTAgQEAgbmFtZXNwYWNlIFdl
YktpdCB7CiAKIHZvaWQgRG93bmxvYWRQcm94eU1hcDo6cGxhdGZvcm1DcmVhdGUoKQogewotI2lm
IFBMQVRGT1JNKElPU19GQU1JTFkpCi0gICAgbV9iYWNrZ3JvdW5kT2JzZXJ2ZXIgPSBbW05TTm90
aWZpY2F0aW9uQ2VudGVyIGRlZmF1bHRDZW50ZXJdIGFkZE9ic2VydmVyRm9yTmFtZTpVSUFwcGxp
Y2F0aW9uRGlkRW50ZXJCYWNrZ3JvdW5kTm90aWZpY2F0aW9uIG9iamVjdDpbVUlBcHBsaWNhdGlv
biBzaGFyZWRBcHBsaWNhdGlvbl0gcXVldWU6bmlsIHVzaW5nQmxvY2s6bWFrZUJsb2NrUHRyKFt3
ZWFrVGhpcyA9IFdlYWtQdHIgeyAqdGhpcyB9XShOU05vdGlmaWNhdGlvbiAqKSB7Ci0gICAgICAg
IGlmICghd2Vha1RoaXMpCi0gICAgICAgICAgICByZXR1cm47Ci0gICAgICAgIHdlYWtUaGlzLT5h
cHBsaWNhdGlvbkRpZEVudGVyQmFja2dyb3VuZCgpOwotICAgIH0pLmdldCgpXTsKLSAgICBtX2Zv
cmVncm91bmRPYnNlcnZlciA9IFtbTlNOb3RpZmljYXRpb25DZW50ZXIgZGVmYXVsdENlbnRlcl0g
YWRkT2JzZXJ2ZXJGb3JOYW1lOlVJQXBwbGljYXRpb25XaWxsRW50ZXJGb3JlZ3JvdW5kTm90aWZp
Y2F0aW9uIG9iamVjdDpbVUlBcHBsaWNhdGlvbiBzaGFyZWRBcHBsaWNhdGlvbl0gcXVldWU6bmls
IHVzaW5nQmxvY2s6bWFrZUJsb2NrUHRyKFt3ZWFrVGhpcyA9IFdlYWtQdHIgeyAqdGhpcyB9XShO
U05vdGlmaWNhdGlvbiAqKSB7Ci0gICAgICAgIGlmICghd2Vha1RoaXMpCi0gICAgICAgICAgICBy
ZXR1cm47Ci0gICAgICAgIHdlYWtUaGlzLT5hcHBsaWNhdGlvbldpbGxFbnRlckZvcmVncm91bmQo
KTsKLSAgICB9KS5nZXQoKV07Ci0jZW5kaWYKIH0KIAogdm9pZCBEb3dubG9hZFByb3h5TWFwOjpw
bGF0Zm9ybURlc3Ryb3koKQogewotI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCi0gICAgW1tOU05v
dGlmaWNhdGlvbkNlbnRlciBkZWZhdWx0Q2VudGVyXSByZW1vdmVPYnNlcnZlcjptX2JhY2tncm91
bmRPYnNlcnZlci5nZXQoKV07Ci0gICAgW1tOU05vdGlmaWNhdGlvbkNlbnRlciBkZWZhdWx0Q2Vu
dGVyXSByZW1vdmVPYnNlcnZlcjptX2ZvcmVncm91bmRPYnNlcnZlci5nZXQoKV07Ci0jZW5kaWYK
IH0KIAogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9Eb3dubG9hZHMvRG93bmxvYWRQcm94eU1hcC5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9Eb3dubG9hZHMvRG93bmxvYWRQcm94eU1hcC5jcHAKaW5kZXggYjE0OTlmZjE0NWNi
NzU2YzI0NmE0N2FlZmUzOThkNmFiN2M0M2NiNi4uMzM3MTY0N2MwOWYxMGNlOTBhODM1ZWIxZDIy
ZWQ5MTYxNGVhNThiNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvRG93bmxv
YWRzL0Rvd25sb2FkUHJveHlNYXAuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0Rv
d25sb2Fkcy9Eb3dubG9hZFByb3h5TWFwLmNwcApAQCAtNjksMTYgKzY5LDYgQEAgdm9pZCBEb3du
bG9hZFByb3h5TWFwOjpwbGF0Zm9ybURlc3Ryb3koKQogfQogI2VuZGlmCiAKLXZvaWQgRG93bmxv
YWRQcm94eU1hcDo6YXBwbGljYXRpb25EaWRFbnRlckJhY2tncm91bmQoKQotewotICAgIG1fcHJv
Y2Vzcy5zZW5kKE1lc3NhZ2VzOjpOZXR3b3JrUHJvY2Vzczo6QXBwbGljYXRpb25EaWRFbnRlckJh
Y2tncm91bmQoKSwgMCk7Ci19Ci0KLXZvaWQgRG93bmxvYWRQcm94eU1hcDo6YXBwbGljYXRpb25X
aWxsRW50ZXJGb3JlZ3JvdW5kKCkKLXsKLSAgICBtX3Byb2Nlc3Muc2VuZChNZXNzYWdlczo6TmV0
d29ya1Byb2Nlc3M6OkFwcGxpY2F0aW9uV2lsbEVudGVyRm9yZWdyb3VuZCgpLCAwKTsKLX0KLQog
RG93bmxvYWRQcm94eSYgRG93bmxvYWRQcm94eU1hcDo6Y3JlYXRlRG93bmxvYWRQcm94eShXZWJz
aXRlRGF0YVN0b3JlJiBkYXRhU3RvcmUsIFdlYlByb2Nlc3NQb29sJiBwcm9jZXNzUG9vbCwgY29u
c3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiByZXNvdXJjZVJlcXVlc3QsIGNvbnN0IEZyYW1l
SW5mb0RhdGEmIGZyYW1lSW5mbywgV2ViUGFnZVByb3h5KiBvcmlnaW5hdGluZ1BhZ2UpCiB7CiAg
ICAgYXV0byogbGVnYWN5RG93bmxvYWRDbGllbnQgPSBwcm9jZXNzUG9vbC5sZWdhY3lEb3dubG9h
ZENsaWVudCgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvRG93bmxvYWRz
L0Rvd25sb2FkUHJveHlNYXAuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0Rvd25sb2Fkcy9E
b3dubG9hZFByb3h5TWFwLmgKaW5kZXggODEyZjY0ZDQ3MjU3NWIxNDIxYTZlNzViZDgyODljMGVk
MTAzOTk5My4uYWY0MjJjZDRkODg2ZmE5Zjg5NDg3MGQyOTVhNTFmYmNhYWE0NjAxZSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvRG93bmxvYWRzL0Rvd25sb2FkUHJveHlNYXAu
aAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Eb3dubG9hZHMvRG93bmxvYWRQcm94eU1h
cC5oCkBAIC02MSwxMiArNjEsOCBAQCBwdWJsaWM6CiAgICAgdm9pZCBkb3dubG9hZEZpbmlzaGVk
KERvd25sb2FkUHJveHkmKTsKIAogICAgIGJvb2wgaXNFbXB0eSgpIGNvbnN0IHsgcmV0dXJuIG1f
ZG93bmxvYWRzLmlzRW1wdHkoKTsgfQotCiAgICAgdm9pZCBpbnZhbGlkYXRlKCk7CiAKLSAgICB2
b2lkIGFwcGxpY2F0aW9uRGlkRW50ZXJCYWNrZ3JvdW5kKCk7Ci0gICAgdm9pZCBhcHBsaWNhdGlv
bldpbGxFbnRlckZvcmVncm91bmQoKTsKLQogcHJpdmF0ZToKICAgICB2b2lkIHBsYXRmb3JtQ3Jl
YXRlKCk7CiAgICAgdm9pZCBwbGF0Zm9ybURlc3Ryb3koKTsKQEAgLTc3LDExICs3Myw2IEBAIHBy
aXZhdGU6CiAgICAgYm9vbCBtX3Nob3VsZFRha2VBc3NlcnRpb24geyBmYWxzZSB9OwogICAgIFJl
ZlB0cjxQcm9jZXNzQXNzZXJ0aW9uPiBtX2Rvd25sb2FkVUlBc3NlcnRpb247CiAgICAgUmVmUHRy
PFByb2Nlc3NBc3NlcnRpb24+IG1fZG93bmxvYWROZXR3b3JraW5nQXNzZXJ0aW9uOwotCi0jaWYg
UExBVEZPUk0oSU9TX0ZBTUlMWSkKLSAgICBSZXRhaW5QdHI8aWQ+IG1fYmFja2dyb3VuZE9ic2Vy
dmVyOwotICAgIFJldGFpblB0cjxpZD4gbV9mb3JlZ3JvdW5kT2JzZXJ2ZXI7Ci0jZW5kaWYKIH07
CiAKIH0gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvR1BVL0dQVVByb2Nlc3NQcm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9H
UFUvR1BVUHJvY2Vzc1Byb3h5LmNwcAppbmRleCA0YWYyNzYwMjc5MTM1NTIxZWMxM2FiOGMzMjE3
MWRmZDMxZjhjZmI0Li44NDNkY2QyZTVmODQ2NGJhMTUxYWJmNDk0NTRmY2E4ZTRmYjNhZmFjIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9HUFUvR1BVUHJvY2Vzc1Byb3h5LmNw
cAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9HUFUvR1BVUHJvY2Vzc1Byb3h5LmNwcApA
QCAtNTc1LDcgKzU3NSw3IEBAIHZvaWQgR1BVUHJvY2Vzc1Byb3h5OjpzZW5kUHJlcGFyZVRvU3Vz
cGVuZChJc1N1c3BlbnNpb25JbW1pbmVudCBpc1N1c3BlbnNpb25JbW1pCiAgICAgc2VuZFdpdGhB
c3luY1JlcGx5KE1lc3NhZ2VzOjpHUFVQcm9jZXNzOjpQcmVwYXJlVG9TdXNwZW5kKGlzU3VzcGVu
c2lvbkltbWluZW50ID09IElzU3VzcGVuc2lvbkltbWluZW50OjpZZXMpLCBXVEZNb3ZlKGNvbXBs
ZXRpb25IYW5kbGVyKSwgMCwgeyB9LCBTaG91bGRTdGFydFByb2Nlc3NUaHJvdHRsZXJBY3Rpdml0
eTo6Tm8pOwogfQogCi12b2lkIEdQVVByb2Nlc3NQcm94eTo6c2VuZFByb2Nlc3NEaWRSZXN1bWUo
KQordm9pZCBHUFVQcm9jZXNzUHJveHk6OnNlbmRQcm9jZXNzRGlkUmVzdW1lKFJlc3VtZVJlYXNv
bikKIHsKICAgICBpZiAoY2FuU2VuZE1lc3NhZ2UoKSkKICAgICAgICAgc2VuZChNZXNzYWdlczo6
R1BVUHJvY2Vzczo6UHJvY2Vzc0RpZFJlc3VtZSgpLCAwKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL0dQVS9HUFVQcm9jZXNzUHJveHkuaCBiL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL0dQVS9HUFVQcm9jZXNzUHJveHkuaAppbmRleCA0NDNlOWI3YTQ2NmFmZTUxZTg4NGI0
Zjk0MzhjNGNjNjVkNzNiOGRjLi4yYjQ3ODg3Yjg0MWUxOGIwYTE2YTMwNTc0ZGYwMWIxOWRiNjFj
NWNhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9HUFUvR1BVUHJvY2Vzc1By
b3h5LmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvR1BVL0dQVVByb2Nlc3NQcm94eS5o
CkBAIC0xMjcsNyArMTI3LDcgQEAgcHJpdmF0ZToKICAgICAvLyBQcm9jZXNzVGhyb3R0bGVyQ2xp
ZW50CiAgICAgQVNDSUlMaXRlcmFsIGNsaWVudE5hbWUoKSBjb25zdCBmaW5hbCB7IHJldHVybiAi
R1BVUHJvY2VzcyJfczsgfQogICAgIHZvaWQgc2VuZFByZXBhcmVUb1N1c3BlbmQoSXNTdXNwZW5z
aW9uSW1taW5lbnQsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJikgZmluYWw7Ci0gICAgdm9p
ZCBzZW5kUHJvY2Vzc0RpZFJlc3VtZSgpIGZpbmFsOworICAgIHZvaWQgc2VuZFByb2Nlc3NEaWRS
ZXN1bWUoUmVzdW1lUmVhc29uKSBmaW5hbDsKIAogICAgIC8vIFByb2Nlc3NMYXVuY2hlcjo6Q2xp
ZW50CiAgICAgdm9pZCBkaWRGaW5pc2hMYXVuY2hpbmcoUHJvY2Vzc0xhdW5jaGVyKiwgSVBDOjpD
b25uZWN0aW9uOjpJZGVudGlmaWVyKSBvdmVycmlkZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nlc3NQcm94eS5jcHAgYi9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9jZXNzUHJveHkuY3BwCmluZGV4IDM4ODVl
NGRmNmFiMDhjMmQ5ZjRhN2M5YzUzZTgwZjI4YWE0YTE5NWQuLjEzYjRiOGIyNjBjOTcyZmFlYWNh
NDc4MjNjMTU4ZTU4ZGYxZTYyMmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L05ldHdvcmsvTmV0d29ya1Byb2Nlc3NQcm94eS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvTmV0d29yay9OZXR3b3JrUHJvY2Vzc1Byb3h5LmNwcApAQCAtMjY5LDYgKzI2OSw5IEBA
IE5ldHdvcmtQcm9jZXNzUHJveHk6Ok5ldHdvcmtQcm9jZXNzUHJveHkoKQogICAgIHNlbmRDcmVh
dGlvblBhcmFtZXRlcnNUb05ld1Byb2Nlc3MoKTsKICAgICB1cGRhdGVQcm9jZXNzQXNzZXJ0aW9u
KCk7CiAgICAgbmV0d29ya1Byb2Nlc3Nlc1NldCgpLmFkZCh0aGlzKTsKKyNpZiBQTEFURk9STShJ
T1NfRkFNSUxZKQorICAgIGFkZEJhY2tncm91bmRTdGF0ZU9ic2VydmVycygpOworI2VuZGlmCiB9
CiAKIE5ldHdvcmtQcm9jZXNzUHJveHk6On5OZXR3b3JrUHJvY2Vzc1Byb3h5KCkKQEAgLTI4MSw2
ICsyODQsOSBAQCBOZXR3b3JrUHJvY2Vzc1Byb3h5Ojp+TmV0d29ya1Byb2Nlc3NQcm94eSgpCiAg
ICAgaWYgKG1fZG93bmxvYWRQcm94eU1hcCkKICAgICAgICAgbV9kb3dubG9hZFByb3h5TWFwLT5p
bnZhbGlkYXRlKCk7CiAgICAgbmV0d29ya1Byb2Nlc3Nlc1NldCgpLnJlbW92ZSh0aGlzKTsKKyNp
ZiBQTEFURk9STShJT1NfRkFNSUxZKQorICAgIHJlbW92ZUJhY2tncm91bmRTdGF0ZU9ic2VydmVy
cygpOworI2VuZGlmCiB9CiAKIHZvaWQgTmV0d29ya1Byb2Nlc3NQcm94eTo6Z2V0TGF1bmNoT3B0
aW9ucyhQcm9jZXNzTGF1bmNoZXI6OkxhdW5jaE9wdGlvbnMmIGxhdW5jaE9wdGlvbnMpCkBAIC0z
MzYsMTIgKzM0MiwxMCBAQCB2b2lkIE5ldHdvcmtQcm9jZXNzUHJveHk6OmdldE5ldHdvcmtQcm9j
ZXNzQ29ubmVjdGlvbihXZWJQcm9jZXNzUHJveHkmIHdlYlByb2NlcwogCiB2b2lkIE5ldHdvcmtQ
cm9jZXNzUHJveHk6OnN5bnRoZXNpemVBcHBJc0JhY2tncm91bmQoYm9vbCBiYWNrZ3JvdW5kKQog
ewotICAgIGlmIChtX2Rvd25sb2FkUHJveHlNYXApIHsKLSAgICAgICAgaWYgKGJhY2tncm91bmQp
Ci0gICAgICAgICAgICBtX2Rvd25sb2FkUHJveHlNYXAtPmFwcGxpY2F0aW9uRGlkRW50ZXJCYWNr
Z3JvdW5kKCk7Ci0gICAgICAgIGVsc2UKLSAgICAgICAgICAgIG1fZG93bmxvYWRQcm94eU1hcC0+
YXBwbGljYXRpb25XaWxsRW50ZXJGb3JlZ3JvdW5kKCk7Ci0gICAgfQorICAgIGlmIChiYWNrZ3Jv
dW5kKQorICAgICAgICBhcHBsaWNhdGlvbkRpZEVudGVyQmFja2dyb3VuZCgpOworICAgIGVsc2UK
KyAgICAgICAgYXBwbGljYXRpb25XaWxsRW50ZXJGb3JlZ3JvdW5kKCk7CiB9CiAKIERvd25sb2Fk
UHJveHkmIE5ldHdvcmtQcm9jZXNzUHJveHk6OmNyZWF0ZURvd25sb2FkUHJveHkoV2Vic2l0ZURh
dGFTdG9yZSYgZGF0YVN0b3JlLCBXZWJQcm9jZXNzUG9vbCYgcHJvY2Vzc1Bvb2wsIGNvbnN0IFJl
c291cmNlUmVxdWVzdCYgcmVzb3VyY2VSZXF1ZXN0LCBjb25zdCBGcmFtZUluZm9EYXRhJiBmcmFt
ZUluZm8sIFdlYlBhZ2VQcm94eSogb3JpZ2luYXRpbmdQYWdlKQpAQCAtMTM5OSwxMCArMTQwMywx
MCBAQCB2b2lkIE5ldHdvcmtQcm9jZXNzUHJveHk6OnNlbmRQcmVwYXJlVG9TdXNwZW5kKElzU3Vz
cGVuc2lvbkltbWluZW50IGlzU3VzcGVuc2lvbgogICAgIHNlbmRXaXRoQXN5bmNSZXBseShNZXNz
YWdlczo6TmV0d29ya1Byb2Nlc3M6OlByZXBhcmVUb1N1c3BlbmQoaXNTdXNwZW5zaW9uSW1taW5l
bnQgPT0gSXNTdXNwZW5zaW9uSW1taW5lbnQ6OlllcyksIFdURk1vdmUoY29tcGxldGlvbkhhbmRs
ZXIpLCAwLCB7IH0sIFNob3VsZFN0YXJ0UHJvY2Vzc1Rocm90dGxlckFjdGl2aXR5OjpObyk7CiB9
CiAKLXZvaWQgTmV0d29ya1Byb2Nlc3NQcm94eTo6c2VuZFByb2Nlc3NEaWRSZXN1bWUoKQordm9p
ZCBOZXR3b3JrUHJvY2Vzc1Byb3h5OjpzZW5kUHJvY2Vzc0RpZFJlc3VtZShSZXN1bWVSZWFzb24g
cmVhc29uKQogewogICAgIGlmIChjYW5TZW5kTWVzc2FnZSgpKQotICAgICAgICBzZW5kKE1lc3Nh
Z2VzOjpOZXR3b3JrUHJvY2Vzczo6UHJvY2Vzc0RpZFJlc3VtZSgpLCAwKTsKKyAgICAgICAgc2Vu
ZChNZXNzYWdlczo6TmV0d29ya1Byb2Nlc3M6OlByb2Nlc3NEaWRSZXN1bWUocmVhc29uID09IFJl
c3VtZVJlYXNvbjo6Rm9yZWdyb3VuZEFjdGl2aXR5KSwgMCk7CiB9CiAKIHZvaWQgTmV0d29ya1By
b2Nlc3NQcm94eTo6Zmx1c2hDb29raWVzKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgQ29tcGxl
dGlvbkhhbmRsZXI8dm9pZCgpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQpAQCAtMTgwMSw2ICsxODA1
LDE2IEBAIHZvaWQgTmV0d29ya1Byb2Nlc3NQcm94eTo6dGVybWluYXRlUmVtb3RlV29ya2VyQ29u
dGV4dENvbm5lY3Rpb25XaGVuUG9zc2libGUoUmVtCiAgICAgc2VuZChNZXNzYWdlczo6TmV0d29y
a1Byb2Nlc3M6OlRlcm1pbmF0ZVJlbW90ZVdvcmtlckNvbnRleHRDb25uZWN0aW9uV2hlblBvc3Np
YmxlKHdvcmtlclR5cGUsIHNlc3Npb25JRCwgcmVnaXN0cmFibGVEb21haW4sIHByb2Nlc3NJZGVu
dGlmaWVyKSwgMCk7CiB9CiAKK3ZvaWQgTmV0d29ya1Byb2Nlc3NQcm94eTo6YXBwbGljYXRpb25E
aWRFbnRlckJhY2tncm91bmQoKQoreworICAgIHNlbmQoTWVzc2FnZXM6Ok5ldHdvcmtQcm9jZXNz
OjpBcHBsaWNhdGlvbkRpZEVudGVyQmFja2dyb3VuZCgpLCAwKTsKK30KKwordm9pZCBOZXR3b3Jr
UHJvY2Vzc1Byb3h5OjphcHBsaWNhdGlvbldpbGxFbnRlckZvcmVncm91bmQoKQoreworICAgIHNl
bmQoTWVzc2FnZXM6Ok5ldHdvcmtQcm9jZXNzOjpBcHBsaWNhdGlvbldpbGxFbnRlckZvcmVncm91
bmQoKSwgMCk7Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdlYktpdAogCiAjdW5kZWYgTUVTU0FHRV9D
SEVDSwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvTmV0d29yay9OZXR3b3Jr
UHJvY2Vzc1Byb3h5LmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQ
cm9jZXNzUHJveHkuaAppbmRleCBlMGFlZTJmN2IzNmFiZGNlNjM0ODU3NzVjMTU0MmJjNzU0YmQy
NTIzLi41OWFmYWQzZGY2YTgwYmFmOTRkZjlhNzUwMDNlYWY3YmRlZDY2YzgyIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9jZXNzUHJveHkuaAor
KysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9jZXNzUHJveHku
aApAQCAtMjM2LDcgKzIzNiw3IEBAIHB1YmxpYzoKICAgICB2b2lkIGNyZWF0ZVN5bUxpbmtGb3JG
aWxlVXBncmFkZShjb25zdCBTdHJpbmcmIGluZGV4ZWREYXRhYmFzZURpcmVjdG9yeSk7CiAKICAg
ICAvLyBQcm9jZXNzVGhyb3R0bGVyQ2xpZW50Ci0gICAgdm9pZCBzZW5kUHJvY2Vzc0RpZFJlc3Vt
ZSgpIGZpbmFsOworICAgIHZvaWQgc2VuZFByb2Nlc3NEaWRSZXN1bWUoUmVzdW1lUmVhc29uID0g
UmVzdW1lUmVhc29uOjpGb3JlZ3JvdW5kQWN0aXZpdHkpIGZpbmFsOwogICAgIEFTQ0lJTGl0ZXJh
bCBjbGllbnROYW1lKCkgY29uc3QgZmluYWwgeyByZXR1cm4gIk5ldHdvcmtQcm9jZXNzIl9zOyB9
CiAgICAgCiAgICAgc3RhdGljIHZvaWQgc2V0U3VzcGVuc2lvbkFsbG93ZWRGb3JUZXN0aW5nKGJv
b2wpOwpAQCAtMzAyLDYgKzMwMiwxMyBAQCBwdWJsaWM6CiAKICAgICB2b2lkIHRlcm1pbmF0ZVJl
bW90ZVdvcmtlckNvbnRleHRDb25uZWN0aW9uV2hlblBvc3NpYmxlKFJlbW90ZVdvcmtlclR5cGUs
IFBBTDo6U2Vzc2lvbklELCBjb25zdCBXZWJDb3JlOjpSZWdpc3RyYWJsZURvbWFpbiYsIFdlYkNv
cmU6OlByb2Nlc3NJZGVudGlmaWVyKTsKIAorICAgIHZvaWQgYXBwbGljYXRpb25EaWRFbnRlckJh
Y2tncm91bmQoKTsKKyAgICB2b2lkIGFwcGxpY2F0aW9uV2lsbEVudGVyRm9yZWdyb3VuZCgpOwor
I2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCisgICAgdm9pZCBhZGRCYWNrZ3JvdW5kU3RhdGVPYnNl
cnZlcnMoKTsKKyAgICB2b2lkIHJlbW92ZUJhY2tncm91bmRTdGF0ZU9ic2VydmVycygpOworI2Vu
ZGlmCisKIHByaXZhdGU6CiAgICAgZXhwbGljaXQgTmV0d29ya1Byb2Nlc3NQcm94eSgpOwogCkBA
IC00MTIsNiArNDE5LDExIEBAIHByaXZhdGU6CiAgICAgV2Vha0hhc2hTZXQ8V2Vic2l0ZURhdGFT
dG9yZT4gbV93ZWJzaXRlRGF0YVN0b3JlczsKICAgICBVbmlxdWVSZWY8V2ViQ29va2llTWFuYWdl
clByb3h5PiBtX2Nvb2tpZU1hbmFnZXI7CiAgICAgSGFzaE1hcDxEYXRhVGFza0lkZW50aWZpZXIs
IFJlZjxBUEk6OkRhdGFUYXNrPj4gbV9kYXRhVGFza3M7CisKKyNpZiBQTEFURk9STShJT1NfRkFN
SUxZKQorICAgIFJldGFpblB0cjxpZD4gbV9iYWNrZ3JvdW5kT2JzZXJ2ZXI7CisgICAgUmV0YWlu
UHRyPGlkPiBtX2ZvcmVncm91bmRPYnNlcnZlcjsKKyNlbmRpZgogfTsKIAogfSAvLyBuYW1lc3Bh
Y2UgV2ViS2l0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9OZXR3b3JrL05l
dHdvcmtQcm9jZXNzUHJveHlDb2NvYS5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL05ldHdv
cmsvTmV0d29ya1Byb2Nlc3NQcm94eUNvY29hLm1tCmluZGV4IGI2NGI1MDIwNjFiNDg5YzM3OTU1
YzI5NTA3NTMyN2RiYjAxNjRlMmEuLjQ3YjNiYjZiMWVhZGM2Y2Y2MjNiN2EwN2YyYjI0ZDA4OGMx
OGIzMzggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL05ldHdvcmsvTmV0d29y
a1Byb2Nlc3NQcm94eUNvY29hLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL05ldHdv
cmsvTmV0d29ya1Byb2Nlc3NQcm94eUNvY29hLm1tCkBAIC0yNyw5ICsyNywxNiBAQAogI2ltcG9y
dCAiTmV0d29ya1Byb2Nlc3NQcm94eS5oIgogCiAjaW1wb3J0ICJMYXVuY2hTZXJ2aWNlc0RhdGFi
YXNlWFBDQ29uc3RhbnRzLmgiCisjaW1wb3J0ICJOZXR3b3JrUHJvY2Vzc01lc3NhZ2VzLmgiCiAj
aW1wb3J0ICJXZWJQcm9jZXNzUG9vbC5oIgogI2ltcG9ydCAiWFBDRW5kcG9pbnQuaCIKIAorI2lm
IFBMQVRGT1JNKElPU19GQU1JTFkpCisjaW1wb3J0IDxVSUtpdC9VSUtpdC5oPgorI2ltcG9ydCA8
d3RmL0Jsb2NrUHRyLmg+CisjaW1wb3J0IDx3dGYvV2Vha1B0ci5oPgorI2VuZGlmCisKIG5hbWVz
cGFjZSBXZWJLaXQgewogCiB1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKQEAgLTg1LDQgKzkyLDI4
IEBAIGJvb2wgTmV0d29ya1Byb2Nlc3NQcm94eTo6c2VuZFhQQ0VuZHBvaW50VG9Qcm9jZXNzKEF1
eGlsaWFyeVByb2Nlc3NQcm94eSYgcHJvY2VzCiAgICAgcmV0dXJuIHRydWU7CiB9CiAKKyNpZiBQ
TEFURk9STShJT1NfRkFNSUxZKQorCit2b2lkIE5ldHdvcmtQcm9jZXNzUHJveHk6OmFkZEJhY2tn
cm91bmRTdGF0ZU9ic2VydmVycygpCit7CisgICAgbV9iYWNrZ3JvdW5kT2JzZXJ2ZXIgPSBbW05T
Tm90aWZpY2F0aW9uQ2VudGVyIGRlZmF1bHRDZW50ZXJdIGFkZE9ic2VydmVyRm9yTmFtZTpVSUFw
cGxpY2F0aW9uRGlkRW50ZXJCYWNrZ3JvdW5kTm90aWZpY2F0aW9uIG9iamVjdDpbVUlBcHBsaWNh
dGlvbiBzaGFyZWRBcHBsaWNhdGlvbl0gcXVldWU6bmlsIHVzaW5nQmxvY2s6bWFrZUJsb2NrUHRy
KFt3ZWFrVGhpcyA9IFdlYWtQdHIgeyAqdGhpcyB9XShOU05vdGlmaWNhdGlvbiAqKSB7CisgICAg
ICAgIGlmICghd2Vha1RoaXMpCisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIHdlYWtUaGlz
LT5hcHBsaWNhdGlvbkRpZEVudGVyQmFja2dyb3VuZCgpOworICAgIH0pLmdldCgpXTsKKyAgICBt
X2ZvcmVncm91bmRPYnNlcnZlciA9IFtbTlNOb3RpZmljYXRpb25DZW50ZXIgZGVmYXVsdENlbnRl
cl0gYWRkT2JzZXJ2ZXJGb3JOYW1lOlVJQXBwbGljYXRpb25XaWxsRW50ZXJGb3JlZ3JvdW5kTm90
aWZpY2F0aW9uIG9iamVjdDpbVUlBcHBsaWNhdGlvbiBzaGFyZWRBcHBsaWNhdGlvbl0gcXVldWU6
bmlsIHVzaW5nQmxvY2s6bWFrZUJsb2NrUHRyKFt3ZWFrVGhpcyA9IFdlYWtQdHIgeyAqdGhpcyB9
XShOU05vdGlmaWNhdGlvbiAqKSB7CisgICAgICAgIGlmICghd2Vha1RoaXMpCisgICAgICAgICAg
ICByZXR1cm47CisgICAgICAgIHdlYWtUaGlzLT5hcHBsaWNhdGlvbldpbGxFbnRlckZvcmVncm91
bmQoKTsKKyAgICB9KS5nZXQoKV07Cit9CisKK3ZvaWQgTmV0d29ya1Byb2Nlc3NQcm94eTo6cmVt
b3ZlQmFja2dyb3VuZFN0YXRlT2JzZXJ2ZXJzKCkKK3sKKyAgICBbW05TTm90aWZpY2F0aW9uQ2Vu
dGVyIGRlZmF1bHRDZW50ZXJdIHJlbW92ZU9ic2VydmVyOm1fYmFja2dyb3VuZE9ic2VydmVyLmdl
dCgpXTsKKyAgICBbW05TTm90aWZpY2F0aW9uQ2VudGVyIGRlZmF1bHRDZW50ZXJdIHJlbW92ZU9i
c2VydmVyOm1fZm9yZWdyb3VuZE9ic2VydmVyLmdldCgpXTsKK30KKworI2VuZGlmCisKIH0KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1Byb2Nlc3NUaHJvdHRsZXIuY3BwIGIv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvUHJvY2Vzc1Rocm90dGxlci5jcHAKaW5kZXggYjY5YjY0
OTZmYWM4MDJhYjQzZWZiZjgyN2ZkZDMyYTliMGZkMTVhYi4uNDcxMmYyZWNmYmEyYzVhOTllMmQ2
YmFkNGYxZTA1YzU3ZGRlODZhNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
UHJvY2Vzc1Rocm90dGxlci5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvUHJvY2Vz
c1Rocm90dGxlci5jcHAKQEAgLTE1OSw3ICsxNTksNyBAQCB2b2lkIFByb2Nlc3NUaHJvdHRsZXI6
OnVwZGF0ZUFzc2VydGlvbklmTmVlZGVkKCkKICAgICAgICAgICAgICAgICBQUk9DRVNTVEhST1RU
TEVSX1JFTEVBU0VfTE9HKCJ1cGRhdGVBc3NlcnRpb25JZk5lZWRlZDogc2VuZGluZyBQcm9jZXNz
RGlkUmVzdW1lIElQQyBiZWNhdXNlIHRoZSBwcm9jZXNzIHdhcyBzdXNwZW5kZWQiKTsKICAgICAg
ICAgICAgIGVsc2UKICAgICAgICAgICAgICAgICBQUk9DRVNTVEhST1RUTEVSX1JFTEVBU0VfTE9H
KCJ1cGRhdGVBc3NlcnRpb25JZk5lZWRlZDogc2VuZGluZyBQcm9jZXNzRGlkUmVzdW1lIElQQyBi
ZWNhdXNlIHRoZSBXZWJQcm9jZXNzIGlzIHN0aWxsIHByb2Nlc3NpbmcgcmVxdWVzdCB0byBzdXNw
ZW5kPSUiIFBSSXU2NCwgKm1fcGVuZGluZ1JlcXVlc3RUb1N1c3BlbmRJRCk7Ci0gICAgICAgICAg
ICBtX3Byb2Nlc3Muc2VuZFByb2Nlc3NEaWRSZXN1bWUoKTsKKyAgICAgICAgICAgIG1fcHJvY2Vz
cy5zZW5kUHJvY2Vzc0RpZFJlc3VtZShleHBlY3RlZEFzc2VydGlvblR5cGUoKSA9PSBQcm9jZXNz
QXNzZXJ0aW9uVHlwZTo6Rm9yZWdyb3VuZCA/IFByb2Nlc3NUaHJvdHRsZXJDbGllbnQ6OlJlc3Vt
ZVJlYXNvbjo6Rm9yZWdyb3VuZEFjdGl2aXR5IDogUHJvY2Vzc1Rocm90dGxlckNsaWVudDo6UmVz
dW1lUmVhc29uOjpCYWNrZ3JvdW5kQWN0aXZpdHkpOwogICAgICAgICAgICAgY2xlYXJQZW5kaW5n
UmVxdWVzdFRvU3VzcGVuZCgpOwogICAgICAgICB9CiAgICAgfSBlbHNlIHsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1Byb2Nlc3NUaHJvdHRsZXJDbGllbnQuaCBiL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL1Byb2Nlc3NUaHJvdHRsZXJDbGllbnQuaAppbmRleCAxMThiZjBk
ZDIzNTgyMjRjMmVjN2RmOWI5NjUxZTlmMTM3OGU2ZTAwLi43NmE1YTkzODhiYmNmNDBlOTk0ZDM5
N2IyZDRmZGQwMGU1ZDlhODQxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Q
cm9jZXNzVGhyb3R0bGVyQ2xpZW50LmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvUHJv
Y2Vzc1Rocm90dGxlckNsaWVudC5oCkBAIC0zNyw3ICszNyw4IEBAIHB1YmxpYzoKICAgICB2aXJ0
dWFsIH5Qcm9jZXNzVGhyb3R0bGVyQ2xpZW50KCkgeyB9CiAKICAgICB2aXJ0dWFsIHZvaWQgc2Vu
ZFByZXBhcmVUb1N1c3BlbmQoSXNTdXNwZW5zaW9uSW1taW5lbnQsIENvbXBsZXRpb25IYW5kbGVy
PHZvaWQoKT4mJikgPSAwOwotICAgIHZpcnR1YWwgdm9pZCBzZW5kUHJvY2Vzc0RpZFJlc3VtZSgp
ID0gMDsKKyAgICBlbnVtIFJlc3VtZVJlYXNvbiA6IGJvb2wgeyBGb3JlZ3JvdW5kQWN0aXZpdHks
IEJhY2tncm91bmRBY3Rpdml0eSB9OworICAgIHZpcnR1YWwgdm9pZCBzZW5kUHJvY2Vzc0RpZFJl
c3VtZShSZXN1bWVSZWFzb24gPSBGb3JlZ3JvdW5kQWN0aXZpdHkpID0gMDsKICAgICB2aXJ0dWFs
IHZvaWQgZGlkU2V0QXNzZXJ0aW9uVHlwZShQcm9jZXNzQXNzZXJ0aW9uVHlwZSkgeyB9OwogICAg
IHZpcnR1YWwgQVNDSUlMaXRlcmFsIGNsaWVudE5hbWUoKSBjb25zdCA9IDA7CiB9OwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViQXV0aGVudGljYXRpb24vV2ViQXV0aG5Q
cm9jZXNzUHJveHkuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYkF1dGhlbnRpY2F0aW9u
L1dlYkF1dGhuUHJvY2Vzc1Byb3h5LmgKaW5kZXggYzViMTY3MWIxYWEwNjM0ZDEzMmI5YTZlZjg5
YWU4M2VjZmIwM2IzZS4uMTFiZjA0NzE3YTY1MjBmZmE0YTY3ZTM3ODYwZGNhYmJmNjJlNTY1MyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViQXV0aGVudGljYXRpb24vV2Vi
QXV0aG5Qcm9jZXNzUHJveHkuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJBdXRo
ZW50aWNhdGlvbi9XZWJBdXRoblByb2Nlc3NQcm94eS5oCkBAIC01NSw3ICs1NSw3IEBAIHB1Ymxp
YzoKICAgICB2b2lkIHVwZGF0ZVByb2Nlc3NBc3NlcnRpb24oKTsKIAogICAgIC8vIFByb2Nlc3NU
aHJvdHRsZXJDbGllbnQKLSAgICB2b2lkIHNlbmRQcm9jZXNzRGlkUmVzdW1lKCkgZmluYWwgeyB9
CisgICAgdm9pZCBzZW5kUHJvY2Vzc0RpZFJlc3VtZShSZXN1bWVSZWFzb24pIGZpbmFsIHsgfQog
ICAgIEFTQ0lJTGl0ZXJhbCBjbGllbnROYW1lKCkgY29uc3QgZmluYWwgeyByZXR1cm4gIldlYkF1
dGhuUHJvY2VzcyJfczsgfQogCiBwcml2YXRlOgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dl
YlByb2Nlc3NQcm94eS5jcHAKaW5kZXggMmYxZTY5MzZiZTYxNDU4MTJkNDc3ZmFiYTdkYzJhODAz
Nzg0ZTdhZi4uMzZjMmI1YWFiMzFhYTczODIyOGRmOWY2ZDE4MDhhMDA1ODkzMDUxMiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5LmNwcAorKysgYi9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkuY3BwCkBAIC0xNDM1LDcgKzE0
MzUsNyBAQCB2b2lkIFdlYlByb2Nlc3NQcm94eTo6c2VuZFByZXBhcmVUb1N1c3BlbmQoSXNTdXNw
ZW5zaW9uSW1taW5lbnQgaXNTdXNwZW5zaW9uSW1taQogICAgIHNlbmRXaXRoQXN5bmNSZXBseShN
ZXNzYWdlczo6V2ViUHJvY2Vzczo6UHJlcGFyZVRvU3VzcGVuZChpc1N1c3BlbnNpb25JbW1pbmVu
dCA9PSBJc1N1c3BlbnNpb25JbW1pbmVudDo6WWVzKSwgV1RGTW92ZShjb21wbGV0aW9uSGFuZGxl
ciksIDAsIHsgfSwgU2hvdWxkU3RhcnRQcm9jZXNzVGhyb3R0bGVyQWN0aXZpdHk6Ok5vKTsKIH0K
IAotdm9pZCBXZWJQcm9jZXNzUHJveHk6OnNlbmRQcm9jZXNzRGlkUmVzdW1lKCkKK3ZvaWQgV2Vi
UHJvY2Vzc1Byb3h5OjpzZW5kUHJvY2Vzc0RpZFJlc3VtZShSZXN1bWVSZWFzb24pCiB7CiAgICAg
V0VCUFJPQ0VTU1BST1hZX1JFTEVBU0VfTE9HKFByb2Nlc3NTdXNwZW5zaW9uLCAic2VuZFByb2Nl
c3NEaWRSZXN1bWU6Iik7CiAgICAgaWYgKGNhblNlbmRNZXNzYWdlKCkpCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkuaCBiL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5oCmluZGV4IGJmYzc5NTZjMDJlZTVhY2UyZDU1NzM0
M2M1MDc1MzdhODVjZmQ0ZmMuLjExNDE3ZWE3YzQ2ZWJmNmM5ODczZDVjNDIxZTJkNTU2YjY4OWNk
NDQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5o
CisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5oCkBAIC0zMjcs
NyArMzI3LDcgQEAgcHVibGljOgogCiAgICAgLy8gUHJvY2Vzc1Rocm90dGxlckNsaWVudAogICAg
IHZvaWQgc2VuZFByZXBhcmVUb1N1c3BlbmQoSXNTdXNwZW5zaW9uSW1taW5lbnQsIENvbXBsZXRp
b25IYW5kbGVyPHZvaWQoKT4mJikgZmluYWw7Ci0gICAgdm9pZCBzZW5kUHJvY2Vzc0RpZFJlc3Vt
ZSgpIGZpbmFsOworICAgIHZvaWQgc2VuZFByb2Nlc3NEaWRSZXN1bWUoUmVzdW1lUmVhc29uID0g
UmVzdW1lUmVhc29uOjpGb3JlZ3JvdW5kQWN0aXZpdHkpIGZpbmFsOwogICAgIHZvaWQgZGlkU2V0
QXNzZXJ0aW9uVHlwZShQcm9jZXNzQXNzZXJ0aW9uVHlwZSkgZmluYWw7CiAgICAgQVNDSUlMaXRl
cmFsIGNsaWVudE5hbWUoKSBjb25zdCBmaW5hbCB7IHJldHVybiAiV2ViUHJvY2VzcyJfczsgfQog
Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>455977</attachid>
            <date>2022-03-28 18:27:15 -0700</date>
            <delta_ts>2022-03-29 10:33:09 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-238082-20220328182714.patch</filename>
            <type>text/plain</type>
            <size>24905</size>
            <attacher name="Sihui Liu">sihui_liu</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjkxOTkyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDQ5ZWJhOTc1YTczMjMxNDRj
NTU4YzU1MTliODdhZmE4NTM4ODkzODcuLjM0NThiMzM1ODk1YzNhOGM2MjY0OWY1MDllNTQwYWFk
Y2Y4MjA2YzIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNTkgQEAKKzIwMjItMDMtMjggIFNpaHVpIExp
dSAgPHNpaHVpX2xpdUBhcHBsZS5jb20+CisKKyAgICAgICAgQWRkIGxvZ2dpbmcgYWJvdXQgcHJv
Y2VzcyBlbnRlcmluZyBiYWNrZ3JvdW5kIHRvIE5ldHdvcmtQcm9jZXNzOjpwcm9jZXNzRGlkUmVz
dW1lCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzgw
ODIKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzkwODQ0Nzc1PgorCisgICAgICAgIFJldmlld2Vk
IGJ5IENocmlzIER1bWV6LgorCisgICAgICAgIEluIHJkYXI6Ly84MjQxMjczMywgd2UgZm91bmQg
bmV0d29yayBwcm9jZXNzIGNhbiBiZSBzdXNwZW5kZWQgcmlnaHQgYWZ0ZXIgaXQgcmVjZWl2ZXMg
cHJvY2Vzc0RpZFJlc3VtZSBtZXNzYWdlLiAKKyAgICAgICAgRm9yIG5ldHdvcmsgcHJvY2Vzcywg
cHJvY2Vzc0RpZFJlc3VtZSBtZWFucyBwcm9jZXNzIGlzIG5vdCBzdXNwZW5kZWQgYW5kIGl0IGlz
IHNhZmUgdG8gcGVyZm9ybSBkYXRhYmFzZSAKKyAgICAgICAgb3BlcmF0aW9ucy4gTGV0J3MgYWRk
IGxvZ2dpbmcgdG8gY2hlY2sgd2hlbiBhbmQgd2h5IHByb2Nlc3NEaWRSZXN1bWUgbWVzc2FnZSBp
cyBzZW50LiBJZiB0aGUgbG9nZ2luZyBjb25maXJtcworICAgICAgICB0aGF0IHByb2Nlc3NEaWRS
ZXN1bWUgbWVzc2FnZSBjYW4gYmUgcmVjZWl2ZWQgd2hlbiBwcm9jZXNzIGlzIGNsb3NlIHRvIGFz
c2VydGlvbiB0aW1lb3V0LCB3ZSBwcm9iYWJseSB3YW50IHRvIAorICAgICAgICBpZ25vcmUgc3Vj
aCBtZXNzYWdlIGFuZCByZXN1bWUgZGF0YWJhc2Ugb3BlcmF0aW9ucyB3aGVuIGFwcGxpY2F0aW9u
IGFjdHVhbGx5IGVudGVycyBmb3JlZ3JvdW5kLgorCisgICAgICAgICogTmV0d29ya1Byb2Nlc3Mv
TmV0d29ya1Byb2Nlc3MuY3BwOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrUHJvY2Vzczo6cHJl
cGFyZVRvU3VzcGVuZCk6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtQcm9jZXNzOjphcHBsaWNh
dGlvbkRpZEVudGVyQmFja2dyb3VuZCk6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtQcm9jZXNz
OjphcHBsaWNhdGlvbldpbGxFbnRlckZvcmVncm91bmQpOgorICAgICAgICAoV2ViS2l0OjpOZXR3
b3JrUHJvY2Vzczo6cHJvY2Vzc0RpZFJlc3VtZSk6CisgICAgICAgICogTmV0d29ya1Byb2Nlc3Mv
TmV0d29ya1Byb2Nlc3MuaDoKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vz
cy5tZXNzYWdlcy5pbjoKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9pb3MvTmV0d29ya1Byb2Nl
c3NJT1MubW06CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXdUZXN0aW5n
Lm1tOgorICAgICAgICAoLVtXS1dlYlZpZXcgX3Byb2Nlc3NEaWRSZXN1bWVGb3JUZXN0aW5nXSk6
CisgICAgICAgICogVUlQcm9jZXNzL0NvY29hL0Rvd25sb2FkUHJveHlNYXBDb2NvYS5tbToKKyAg
ICAgICAgKFdlYktpdDo6RG93bmxvYWRQcm94eU1hcDo6cGxhdGZvcm1DcmVhdGUpOgorICAgICAg
ICAoV2ViS2l0OjpEb3dubG9hZFByb3h5TWFwOjpwbGF0Zm9ybURlc3Ryb3kpOgorICAgICAgICAq
IFVJUHJvY2Vzcy9Eb3dubG9hZHMvRG93bmxvYWRQcm94eU1hcC5jcHA6CisgICAgICAgIChXZWJL
aXQ6OkRvd25sb2FkUHJveHlNYXA6OmFwcGxpY2F0aW9uRGlkRW50ZXJCYWNrZ3JvdW5kKTogRGVs
ZXRlZC4KKyAgICAgICAgKFdlYktpdDo6RG93bmxvYWRQcm94eU1hcDo6YXBwbGljYXRpb25XaWxs
RW50ZXJGb3JlZ3JvdW5kKTogRGVsZXRlZC4KKyAgICAgICAgKiBVSVByb2Nlc3MvRG93bmxvYWRz
L0Rvd25sb2FkUHJveHlNYXAuaDoKKyAgICAgICAgKFdlYktpdDo6RG93bmxvYWRQcm94eU1hcDo6
aXNFbXB0eSBjb25zdCk6CisgICAgICAgICogVUlQcm9jZXNzL0dQVS9HUFVQcm9jZXNzUHJveHku
Y3BwOgorICAgICAgICAoV2ViS2l0OjpHUFVQcm9jZXNzUHJveHk6OnNlbmRQcm9jZXNzRGlkUmVz
dW1lKToKKyAgICAgICAgKiBVSVByb2Nlc3MvR1BVL0dQVVByb2Nlc3NQcm94eS5oOgorICAgICAg
ICAqIFVJUHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9jZXNzUHJveHkuY3BwOgorICAgICAgICAo
V2ViS2l0OjpOZXR3b3JrUHJvY2Vzc1Byb3h5OjpOZXR3b3JrUHJvY2Vzc1Byb3h5KToKKyAgICAg
ICAgKFdlYktpdDo6TmV0d29ya1Byb2Nlc3NQcm94eTo6fk5ldHdvcmtQcm9jZXNzUHJveHkpOgor
ICAgICAgICAoV2ViS2l0OjpOZXR3b3JrUHJvY2Vzc1Byb3h5OjpzeW50aGVzaXplQXBwSXNCYWNr
Z3JvdW5kKToKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya1Byb2Nlc3NQcm94eTo6c2VuZFByb2Nl
c3NEaWRSZXN1bWUpOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrUHJvY2Vzc1Byb3h5OjphcHBs
aWNhdGlvbkRpZEVudGVyQmFja2dyb3VuZCk6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtQcm9j
ZXNzUHJveHk6OmFwcGxpY2F0aW9uV2lsbEVudGVyRm9yZWdyb3VuZCk6CisgICAgICAgICogVUlQ
cm9jZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nlc3NQcm94eS5oOgorICAgICAgICAqIFVJUHJvY2Vz
cy9OZXR3b3JrL05ldHdvcmtQcm9jZXNzUHJveHlDb2NvYS5tbToKKyAgICAgICAgKFdlYktpdDo6
TmV0d29ya1Byb2Nlc3NQcm94eTo6YWRkQmFja2dyb3VuZFN0YXRlT2JzZXJ2ZXJzKToKKyAgICAg
ICAgKFdlYktpdDo6TmV0d29ya1Byb2Nlc3NQcm94eTo6cmVtb3ZlQmFja2dyb3VuZFN0YXRlT2Jz
ZXJ2ZXJzKToKKyAgICAgICAgKiBVSVByb2Nlc3MvUHJvY2Vzc1Rocm90dGxlci5jcHA6CisgICAg
ICAgIChXZWJLaXQ6OlByb2Nlc3NUaHJvdHRsZXI6OnVwZGF0ZUFzc2VydGlvbklmTmVlZGVkKToK
KyAgICAgICAgKiBVSVByb2Nlc3MvUHJvY2Vzc1Rocm90dGxlckNsaWVudC5oOgorICAgICAgICAq
IFVJUHJvY2Vzcy9XZWJBdXRoZW50aWNhdGlvbi9XZWJBdXRoblByb2Nlc3NQcm94eS5oOgorICAg
ICAgICAqIFVJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkuY3BwOgorICAgICAgICAoV2ViS2l0OjpX
ZWJQcm9jZXNzUHJveHk6OnNlbmRQcm9jZXNzRGlkUmVzdW1lKToKKyAgICAgICAgKiBVSVByb2Nl
c3MvV2ViUHJvY2Vzc1Byb3h5Lmg6CisgICAgICAgICogVUlQcm9jZXNzL1dlYnNpdGVEYXRhL1dl
YnNpdGVEYXRhU3RvcmUuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJzaXRlRGF0YVN0b3JlOjpz
ZW5kTmV0d29ya1Byb2Nlc3NEaWRSZXN1bWUpOgorCiAyMDIyLTAzLTI4ICBDaHJpcyBEdW1leiAg
PGNkdW1lekBhcHBsZS5jb20+CiAKICAgICAgICAgUHJlcGFyZSBXZWJDb3JlIGZvciBtYWtpbmcg
dGhlIFN0cmluZyhjb25zdCBjaGFyKikgY29uc3RydWN0b3IgZXhwbGljaXQKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MuY3BwIGIvU291cmNl
L1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5jcHAKaW5kZXggNTg5ZDE2NjM0
MTJjZjM0ZTMwY2UwMTYwMzRlYmEzYWY4NjQ0MmVhZS4uMTE1MTNhOGViOGU2YTBhZDU5ZjZiNjlk
MmIxOTkxOGQwNzQwMWZjNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vz
cy9OZXR3b3JrUHJvY2Vzcy5jcHAKKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9O
ZXR3b3JrUHJvY2Vzcy5jcHAKQEAgLTIxMjksNyArMjEyOSw3IEBAIHZvaWQgTmV0d29ya1Byb2Nl
c3M6OnRlcm1pbmF0ZVJlbW90ZVdvcmtlckNvbnRleHRDb25uZWN0aW9uV2hlblBvc3NpYmxlKFJl
bW90ZVdvCiAKIHZvaWQgTmV0d29ya1Byb2Nlc3M6OnByZXBhcmVUb1N1c3BlbmQoYm9vbCBpc1N1
c3BlbnNpb25JbW1pbmVudCwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmIGNvbXBsZXRpb25I
YW5kbGVyKQogewotICAgIFJFTEVBU0VfTE9HKFByb2Nlc3NTdXNwZW5zaW9uLCAiJXAgLSBOZXR3
b3JrUHJvY2Vzczo6cHJlcGFyZVRvU3VzcGVuZCgpLCBpc1N1c3BlbnNpb25JbW1pbmVudD0lZCIs
IHRoaXMsIGlzU3VzcGVuc2lvbkltbWluZW50KTsKKyAgICBSRUxFQVNFX0xPRyhQcm9jZXNzU3Vz
cGVuc2lvbiwgIiVwIC0gTmV0d29ya1Byb2Nlc3M6OnByZXBhcmVUb1N1c3BlbmQoKSwgaXNTdXNw
ZW5zaW9uSW1taW5lbnQ9JWQgUHJvY2VzcyBpcyAle3B1YmxpY31zaW4gYmFja2dyb3VuZCIsIHRo
aXMsIGlzU3VzcGVuc2lvbkltbWluZW50LCBtX2VudGVyQmFja2dyb3VuZFRpbWVzdGFtcCA/ICIi
IDogIm5vdCAiKTsKIAogICAgIG1faXNTdXNwZW5kZWQgPSB0cnVlOwogICAgIGxvd01lbW9yeUhh
bmRsZXIoQ3JpdGljYWw6Olllcyk7CkBAIC0yMTYwLDE3ICsyMTYwLDI2IEBAIHZvaWQgTmV0d29y
a1Byb2Nlc3M6OnByZXBhcmVUb1N1c3BlbmQoYm9vbCBpc1N1c3BlbnNpb25JbW1pbmVudCwgQ29t
cGxldGlvbkhhbmRsCiAKIHZvaWQgTmV0d29ya1Byb2Nlc3M6OmFwcGxpY2F0aW9uRGlkRW50ZXJC
YWNrZ3JvdW5kKCkKIHsKKyAgICBpZiAoIW1fZW50ZXJCYWNrZ3JvdW5kVGltZXN0YW1wKQorICAg
ICAgICBtX2VudGVyQmFja2dyb3VuZFRpbWVzdGFtcCA9IE1vbm90b25pY1RpbWU6Om5vdygpOwor
CiAgICAgbV9kb3dubG9hZE1hbmFnZXIuYXBwbGljYXRpb25EaWRFbnRlckJhY2tncm91bmQoKTsK
IH0KIAogdm9pZCBOZXR3b3JrUHJvY2Vzczo6YXBwbGljYXRpb25XaWxsRW50ZXJGb3JlZ3JvdW5k
KCkKIHsKKyAgICBpZiAobV9lbnRlckJhY2tncm91bmRUaW1lc3RhbXApCisgICAgICAgIG1fZW50
ZXJCYWNrZ3JvdW5kVGltZXN0YW1wID0gc3RkOjpudWxsb3B0OworCiAgICAgbV9kb3dubG9hZE1h
bmFnZXIuYXBwbGljYXRpb25XaWxsRW50ZXJGb3JlZ3JvdW5kKCk7CiB9CiAKLXZvaWQgTmV0d29y
a1Byb2Nlc3M6OnByb2Nlc3NEaWRSZXN1bWUoKQordm9pZCBOZXR3b3JrUHJvY2Vzczo6cHJvY2Vz
c0RpZFJlc3VtZShib29sIGZvckZvcmVncm91bmRBY3Rpdml0eSkKIHsKLSAgICBSRUxFQVNFX0xP
RyhQcm9jZXNzU3VzcGVuc2lvbiwgIiVwIC0gTmV0d29ya1Byb2Nlc3M6OnByb2Nlc3NEaWRSZXN1
bWUoKSIsIHRoaXMpOworICAgIGlmIChtX2VudGVyQmFja2dyb3VuZFRpbWVzdGFtcCkKKyAgICAg
ICAgUkVMRUFTRV9MT0coUHJvY2Vzc1N1c3BlbnNpb24sICIlcCAtIE5ldHdvcmtQcm9jZXNzOjpw
cm9jZXNzRGlkUmVzdW1lKCkgZm9yRm9yZWdyb3VuZEFjdGl2aXR5PSVkIiwgdGhpcywgZm9yRm9y
ZWdyb3VuZEFjdGl2aXR5KTsKKyAgICBlbHNlCisgICAgICAgIFJFTEVBU0VfTE9HKFByb2Nlc3NT
dXNwZW5zaW9uLCAiJXAgLSBOZXR3b3JrUHJvY2Vzczo6cHJvY2Vzc0RpZFJlc3VtZSgpIGZvckZv
cmVncm91bmRBY3Rpdml0eT0lZCBQcm9jZXNzIGhhcyBiZWVuIGluIGJhY2tncm91bmQgZm9yICVm
IHNlY29uZHMiLCB0aGlzLCBmb3JGb3JlZ3JvdW5kQWN0aXZpdHksIChNb25vdG9uaWNUaW1lOjpu
b3coKSAtIG1fZW50ZXJCYWNrZ3JvdW5kVGltZXN0YW1wLnZhbHVlKCkpLnZhbHVlKCkpOwogCiAg
ICAgbV9pc1N1c3BlbmRlZCA9IGZhbHNlOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05l
dHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLmggYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9j
ZXNzL05ldHdvcmtQcm9jZXNzLmgKaW5kZXggYmZhMzJkZmU3NGI3OWU2YThkNTBhNjU3MTVkNTEw
YTQxYjhlMjM3Zi4uNmE5MDBmZDFiYjI5MzcwYzhjOTBmZjJiZmE5YWIwZWMzZTZlOTRlZSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5oCisr
KyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MuaApAQCAtMTc0
LDcgKzE3NCw3IEBAIHB1YmxpYzoKIAogICAgIHZvaWQgcHJvY2Vzc1dpbGxTdXNwZW5kSW1taW5l
bnRseUZvclRlc3RpbmdTeW5jKENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJik7CiAgICAgdm9p
ZCBwcmVwYXJlVG9TdXNwZW5kKGJvb2wgaXNTdXNwZW5zaW9uSW1taW5lbnQsIENvbXBsZXRpb25I
YW5kbGVyPHZvaWQoKT4mJik7Ci0gICAgdm9pZCBwcm9jZXNzRGlkUmVzdW1lKCk7CisgICAgdm9p
ZCBwcm9jZXNzRGlkUmVzdW1lKGJvb2wgZm9yRm9yZWdyb3VuZEFjdGl2aXR5KTsKIAogICAgIENh
Y2hlTW9kZWwgY2FjaGVNb2RlbCgpIGNvbnN0IHsgcmV0dXJuIG1fY2FjaGVNb2RlbDsgfQogCkBA
IC01MjcsNiArNTI3LDcgQEAgcHJpdmF0ZToKICAgICBib29sIG1fcHJpdmF0ZUNsaWNrTWVhc3Vy
ZW1lbnRFbmFibGVkIHsgdHJ1ZSB9OwogICAgIGJvb2wgbV9mdHBFbmFibGVkIHsgZmFsc2UgfTsK
ICAgICBib29sIG1faXNTdXNwZW5kZWQgeyBmYWxzZSB9OworICAgIHN0ZDo6b3B0aW9uYWw8TW9u
b3RvbmljVGltZT4gbV9lbnRlckJhY2tncm91bmRUaW1lc3RhbXA7CiB9OwogCiAjaWYgIVBMQVRG
T1JNKENPQ09BKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3
b3JrUHJvY2Vzcy5tZXNzYWdlcy5pbiBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0
d29ya1Byb2Nlc3MubWVzc2FnZXMuaW4KaW5kZXggZmE3OWM1YjVkYjE0NDU5ZTM2NjYxOTEyZGEy
Y2JmODk5ZTNkNjYyOS4uYjVhMDMyOGIwYjQ0NTc2MDk3Yzg3M2MwZDY0YmUyMTRhYTg4ZWFiYSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5t
ZXNzYWdlcy5pbgorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9j
ZXNzLm1lc3NhZ2VzLmluCkBAIC03Niw3ICs3Niw3IEBAIG1lc3NhZ2VzIC0+IE5ldHdvcmtQcm9j
ZXNzIExlZ2FjeVJlY2VpdmVyIHsKIAogICAgIFByb2Nlc3NXaWxsU3VzcGVuZEltbWluZW50bHlG
b3JUZXN0aW5nU3luYygpIC0+ICgpIFN5bmNocm9ub3VzCiAgICAgUHJlcGFyZVRvU3VzcGVuZChi
b29sIGlzU3VzcGVuc2lvbkltbWluZW50KSAtPiAoKQotICAgIFByb2Nlc3NEaWRSZXN1bWUoKQor
ICAgIFByb2Nlc3NEaWRSZXN1bWUoYm9vbCBmb3JGb3JlZ3JvdW5kQWN0aXZpdHkpCiAKICAgICBQ
cmVjb25uZWN0VG8oUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBXZWJLaXQ6OldlYlBhZ2VQcm94
eUlkZW50aWZpZXIgd2ViUGFnZVByb3h5SUQsIFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyIHdlYlBh
Z2VJRCwgVVJMIHVybCwgU3RyaW5nIHVzZXJBZ2VudCwgZW51bTp1aW50OF90IFdlYkNvcmU6OlN0
b3JlZENyZWRlbnRpYWxzUG9saWN5IHN0b3JlZENyZWRlbnRpYWxzUG9saWN5LCBlbnVtOmJvb2wg
c3RkOjpvcHRpb25hbDxXZWJLaXQ6Ok5hdmlnYXRpbmdUb0FwcEJvdW5kRG9tYWluPiBpc05hdmln
YXRpbmdUb0FwcEJvdW5kRG9tYWluLCBlbnVtOmJvb2wgV2ViS2l0OjpMYXN0TmF2aWdhdGlvbldh
c0FwcEluaXRpYXRlZCBsYXN0TmF2aWdhdGlvbldhc0FwcEluaXRpYXRlZCk7CiAKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvaW9zL05ldHdvcmtQcm9jZXNzSU9TLm1t
IGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9pb3MvTmV0d29ya1Byb2Nlc3NJT1MubW0K
aW5kZXggODI3ZGRmNmVjZjRkOTI5MWUwYmZmNzRmYTVlYmI4MTdiN2RjZmZkNy4uMDNhOGMzYTgy
ZDM3MDYzMDZlMjBiMTM4YTdjYzc2NzUwNDQ3YzIxOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9OZXR3b3JrUHJvY2Vzcy9pb3MvTmV0d29ya1Byb2Nlc3NJT1MubW0KKysrIGIvU291cmNlL1dl
YktpdC9OZXR3b3JrUHJvY2Vzcy9pb3MvTmV0d29ya1Byb2Nlc3NJT1MubW0KQEAgLTMzLDYgKzMz
LDcgQEAKICNpbXBvcnQgIlByb2Nlc3NBc3NlcnRpb24uaCIKICNpbXBvcnQgIlNhbmRib3hJbml0
aWFsaXphdGlvblBhcmFtZXRlcnMuaCIKICNpbXBvcnQgIlNlY0l0ZW1TaGltLmgiCisjaW1wb3J0
IDxVSUtpdC9VSUtpdC5oPgogI2ltcG9ydCA8V2ViQ29yZS9DZXJ0aWZpY2F0ZUluZm8uaD4KICNp
bXBvcnQgPFdlYkNvcmUvTm90SW1wbGVtZW50ZWQuaD4KICNpbXBvcnQgPFdlYkNvcmUvV2ViQ29y
ZVRocmVhZFN5c3RlbUludGVyZmFjZS5oPgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlld1Rlc3RpbmcubW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3VGVzdGluZy5tbQppbmRleCBjMGNmOTc4Yzk2NjJlYTgy
NzY3Y2E0Y2NhZTk1YjY0ZmZjYzY5Njc5Li43YjRlYWU5MjM4NjUzNTI2NzViMmI4YWViYTAyMDc4
YzdlNzJiMDZlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2Ev
V0tXZWJWaWV3VGVzdGluZy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29j
b2EvV0tXZWJWaWV3VGVzdGluZy5tbQpAQCAtMjEzLDcgKzIxMyw3IEBACiAtICh2b2lkKV9wcm9j
ZXNzRGlkUmVzdW1lRm9yVGVzdGluZwogewogICAgIGlmIChfcGFnZSkKLSAgICAgICAgX3BhZ2Ut
PnByb2Nlc3MoKS5zZW5kUHJvY2Vzc0RpZFJlc3VtZSgpOworICAgICAgICBfcGFnZS0+cHJvY2Vz
cygpLnNlbmRQcm9jZXNzRGlkUmVzdW1lKFdlYktpdDo6UHJvY2Vzc1Rocm90dGxlckNsaWVudDo6
UmVzdW1lUmVhc29uOjpGb3JlZ3JvdW5kQWN0aXZpdHkpOwogfQogCiAtICh2b2lkKV9zZXRBc3Nl
cnRpb25UeXBlRm9yVGVzdGluZzooaW50KXZhbHVlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9Db2NvYS9Eb3dubG9hZFByb3h5TWFwQ29jb2EubW0gYi9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9Db2NvYS9Eb3dubG9hZFByb3h5TWFwQ29jb2EubW0KaW5kZXggYjNkOWRlZjk2
ODNlYTJkMjk2ZGUxMTlhYjM3YWRkNzIxMGYwYWUwNS4uZDQxMzc3MmY0ZTQzYjc0ZTAyYjdkZWE5
NGJhMmNlZWY4MmE0MjE3MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29j
b2EvRG93bmxvYWRQcm94eU1hcENvY29hLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L0NvY29hL0Rvd25sb2FkUHJveHlNYXBDb2NvYS5tbQpAQCAtMzYsMjYgKzM2LDEwIEBAIG5hbWVz
cGFjZSBXZWJLaXQgewogCiB2b2lkIERvd25sb2FkUHJveHlNYXA6OnBsYXRmb3JtQ3JlYXRlKCkK
IHsKLSNpZiBQTEFURk9STShJT1NfRkFNSUxZKQotICAgIG1fYmFja2dyb3VuZE9ic2VydmVyID0g
W1tOU05vdGlmaWNhdGlvbkNlbnRlciBkZWZhdWx0Q2VudGVyXSBhZGRPYnNlcnZlckZvck5hbWU6
VUlBcHBsaWNhdGlvbkRpZEVudGVyQmFja2dyb3VuZE5vdGlmaWNhdGlvbiBvYmplY3Q6W1VJQXBw
bGljYXRpb24gc2hhcmVkQXBwbGljYXRpb25dIHF1ZXVlOm5pbCB1c2luZ0Jsb2NrOm1ha2VCbG9j
a1B0cihbd2Vha1RoaXMgPSBXZWFrUHRyIHsgKnRoaXMgfV0oTlNOb3RpZmljYXRpb24gKikgewot
ICAgICAgICBpZiAoIXdlYWtUaGlzKQotICAgICAgICAgICAgcmV0dXJuOwotICAgICAgICB3ZWFr
VGhpcy0+YXBwbGljYXRpb25EaWRFbnRlckJhY2tncm91bmQoKTsKLSAgICB9KS5nZXQoKV07Ci0g
ICAgbV9mb3JlZ3JvdW5kT2JzZXJ2ZXIgPSBbW05TTm90aWZpY2F0aW9uQ2VudGVyIGRlZmF1bHRD
ZW50ZXJdIGFkZE9ic2VydmVyRm9yTmFtZTpVSUFwcGxpY2F0aW9uV2lsbEVudGVyRm9yZWdyb3Vu
ZE5vdGlmaWNhdGlvbiBvYmplY3Q6W1VJQXBwbGljYXRpb24gc2hhcmVkQXBwbGljYXRpb25dIHF1
ZXVlOm5pbCB1c2luZ0Jsb2NrOm1ha2VCbG9ja1B0cihbd2Vha1RoaXMgPSBXZWFrUHRyIHsgKnRo
aXMgfV0oTlNOb3RpZmljYXRpb24gKikgewotICAgICAgICBpZiAoIXdlYWtUaGlzKQotICAgICAg
ICAgICAgcmV0dXJuOwotICAgICAgICB3ZWFrVGhpcy0+YXBwbGljYXRpb25XaWxsRW50ZXJGb3Jl
Z3JvdW5kKCk7Ci0gICAgfSkuZ2V0KCldOwotI2VuZGlmCiB9CiAKIHZvaWQgRG93bmxvYWRQcm94
eU1hcDo6cGxhdGZvcm1EZXN0cm95KCkKIHsKLSNpZiBQTEFURk9STShJT1NfRkFNSUxZKQotICAg
IFtbTlNOb3RpZmljYXRpb25DZW50ZXIgZGVmYXVsdENlbnRlcl0gcmVtb3ZlT2JzZXJ2ZXI6bV9i
YWNrZ3JvdW5kT2JzZXJ2ZXIuZ2V0KCldOwotICAgIFtbTlNOb3RpZmljYXRpb25DZW50ZXIgZGVm
YXVsdENlbnRlcl0gcmVtb3ZlT2JzZXJ2ZXI6bV9mb3JlZ3JvdW5kT2JzZXJ2ZXIuZ2V0KCldOwot
I2VuZGlmCiB9CiAKIH0gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvRG93bmxvYWRzL0Rvd25sb2FkUHJveHlNYXAuY3BwIGIvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvRG93bmxvYWRzL0Rvd25sb2FkUHJveHlNYXAuY3BwCmluZGV4IGIxNDk5
ZmYxNDVjYjc1NmMyNDZhNDdhZWZlMzk4ZDZhYjdjNDNjYjYuLjMzNzE2NDdjMDlmMTBjZTkwYTgz
NWViMWQyMmVkOTE2MTRlYTU4YjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L0Rvd25sb2Fkcy9Eb3dubG9hZFByb3h5TWFwLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9Eb3dubG9hZHMvRG93bmxvYWRQcm94eU1hcC5jcHAKQEAgLTY5LDE2ICs2OSw2IEBAIHZv
aWQgRG93bmxvYWRQcm94eU1hcDo6cGxhdGZvcm1EZXN0cm95KCkKIH0KICNlbmRpZgogCi12b2lk
IERvd25sb2FkUHJveHlNYXA6OmFwcGxpY2F0aW9uRGlkRW50ZXJCYWNrZ3JvdW5kKCkKLXsKLSAg
ICBtX3Byb2Nlc3Muc2VuZChNZXNzYWdlczo6TmV0d29ya1Byb2Nlc3M6OkFwcGxpY2F0aW9uRGlk
RW50ZXJCYWNrZ3JvdW5kKCksIDApOwotfQotCi12b2lkIERvd25sb2FkUHJveHlNYXA6OmFwcGxp
Y2F0aW9uV2lsbEVudGVyRm9yZWdyb3VuZCgpCi17Ci0gICAgbV9wcm9jZXNzLnNlbmQoTWVzc2Fn
ZXM6Ok5ldHdvcmtQcm9jZXNzOjpBcHBsaWNhdGlvbldpbGxFbnRlckZvcmVncm91bmQoKSwgMCk7
Ci19Ci0KIERvd25sb2FkUHJveHkmIERvd25sb2FkUHJveHlNYXA6OmNyZWF0ZURvd25sb2FkUHJv
eHkoV2Vic2l0ZURhdGFTdG9yZSYgZGF0YVN0b3JlLCBXZWJQcm9jZXNzUG9vbCYgcHJvY2Vzc1Bv
b2wsIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYgcmVzb3VyY2VSZXF1ZXN0LCBjb25z
dCBGcmFtZUluZm9EYXRhJiBmcmFtZUluZm8sIFdlYlBhZ2VQcm94eSogb3JpZ2luYXRpbmdQYWdl
KQogewogICAgIGF1dG8qIGxlZ2FjeURvd25sb2FkQ2xpZW50ID0gcHJvY2Vzc1Bvb2wubGVnYWN5
RG93bmxvYWRDbGllbnQoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0Rv
d25sb2Fkcy9Eb3dubG9hZFByb3h5TWFwLmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Eb3du
bG9hZHMvRG93bmxvYWRQcm94eU1hcC5oCmluZGV4IDgxMmY2NGQ0NzI1NzViMTQyMWE2ZTc1YmQ4
Mjg5YzBlZDEwMzk5OTMuLmFmNDIyY2Q0ZDg4NmZhOWY4OTQ4NzBkMjk1YTUxZmJjYWFhNDYwMWUg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0Rvd25sb2Fkcy9Eb3dubG9hZFBy
b3h5TWFwLmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvRG93bmxvYWRzL0Rvd25sb2Fk
UHJveHlNYXAuaApAQCAtNjEsMTIgKzYxLDggQEAgcHVibGljOgogICAgIHZvaWQgZG93bmxvYWRG
aW5pc2hlZChEb3dubG9hZFByb3h5Jik7CiAKICAgICBib29sIGlzRW1wdHkoKSBjb25zdCB7IHJl
dHVybiBtX2Rvd25sb2Fkcy5pc0VtcHR5KCk7IH0KLQogICAgIHZvaWQgaW52YWxpZGF0ZSgpOwog
Ci0gICAgdm9pZCBhcHBsaWNhdGlvbkRpZEVudGVyQmFja2dyb3VuZCgpOwotICAgIHZvaWQgYXBw
bGljYXRpb25XaWxsRW50ZXJGb3JlZ3JvdW5kKCk7Ci0KIHByaXZhdGU6CiAgICAgdm9pZCBwbGF0
Zm9ybUNyZWF0ZSgpOwogICAgIHZvaWQgcGxhdGZvcm1EZXN0cm95KCk7CkBAIC03NywxMSArNzMs
NiBAQCBwcml2YXRlOgogICAgIGJvb2wgbV9zaG91bGRUYWtlQXNzZXJ0aW9uIHsgZmFsc2UgfTsK
ICAgICBSZWZQdHI8UHJvY2Vzc0Fzc2VydGlvbj4gbV9kb3dubG9hZFVJQXNzZXJ0aW9uOwogICAg
IFJlZlB0cjxQcm9jZXNzQXNzZXJ0aW9uPiBtX2Rvd25sb2FkTmV0d29ya2luZ0Fzc2VydGlvbjsK
LQotI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCi0gICAgUmV0YWluUHRyPGlkPiBtX2JhY2tncm91
bmRPYnNlcnZlcjsKLSAgICBSZXRhaW5QdHI8aWQ+IG1fZm9yZWdyb3VuZE9ic2VydmVyOwotI2Vu
ZGlmCiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL0dQVS9HUFVQcm9jZXNzUHJveHkuY3BwIGIvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvR1BVL0dQVVByb2Nlc3NQcm94eS5jcHAKaW5kZXggYWY0NmEyYWVjZGU5ODQ3MWZlNTVm
ZjNlMjkyODcxM2IwYTY4YWNhZi4uODNhZjFlNTVkZGY3NDg4MjM5Zjg2OTE5Mjc3MjBhYjZhODYz
MTk3ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvR1BVL0dQVVByb2Nlc3NQ
cm94eS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvR1BVL0dQVVByb2Nlc3NQcm94
eS5jcHAKQEAgLTU3OCw3ICs1NzgsNyBAQCB2b2lkIEdQVVByb2Nlc3NQcm94eTo6c2VuZFByZXBh
cmVUb1N1c3BlbmQoSXNTdXNwZW5zaW9uSW1taW5lbnQgaXNTdXNwZW5zaW9uSW1taQogICAgIHNl
bmRXaXRoQXN5bmNSZXBseShNZXNzYWdlczo6R1BVUHJvY2Vzczo6UHJlcGFyZVRvU3VzcGVuZChp
c1N1c3BlbnNpb25JbW1pbmVudCA9PSBJc1N1c3BlbnNpb25JbW1pbmVudDo6WWVzKSwgV1RGTW92
ZShjb21wbGV0aW9uSGFuZGxlciksIDAsIHsgfSwgU2hvdWxkU3RhcnRQcm9jZXNzVGhyb3R0bGVy
QWN0aXZpdHk6Ok5vKTsKIH0KIAotdm9pZCBHUFVQcm9jZXNzUHJveHk6OnNlbmRQcm9jZXNzRGlk
UmVzdW1lKCkKK3ZvaWQgR1BVUHJvY2Vzc1Byb3h5OjpzZW5kUHJvY2Vzc0RpZFJlc3VtZShSZXN1
bWVSZWFzb24pCiB7CiAgICAgaWYgKGNhblNlbmRNZXNzYWdlKCkpCiAgICAgICAgIHNlbmQoTWVz
c2FnZXM6OkdQVVByb2Nlc3M6OlByb2Nlc3NEaWRSZXN1bWUoKSwgMCk7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9HUFUvR1BVUHJvY2Vzc1Byb3h5LmggYi9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9HUFUvR1BVUHJvY2Vzc1Byb3h5LmgKaW5kZXggNDQzZTliN2E0NjZhZmU1
MWU4ODRiNGY5NDM4YzRjYzY1ZDczYjhkYy4uMmI0Nzg4N2I4NDFlMThiMGExNmEzMDU3NGRmMDFi
MTlkYjYxYzVjYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvR1BVL0dQVVBy
b2Nlc3NQcm94eS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0dQVS9HUFVQcm9jZXNz
UHJveHkuaApAQCAtMTI3LDcgKzEyNyw3IEBAIHByaXZhdGU6CiAgICAgLy8gUHJvY2Vzc1Rocm90
dGxlckNsaWVudAogICAgIEFTQ0lJTGl0ZXJhbCBjbGllbnROYW1lKCkgY29uc3QgZmluYWwgeyBy
ZXR1cm4gIkdQVVByb2Nlc3MiX3M7IH0KICAgICB2b2lkIHNlbmRQcmVwYXJlVG9TdXNwZW5kKElz
U3VzcGVuc2lvbkltbWluZW50LCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYpIGZpbmFsOwot
ICAgIHZvaWQgc2VuZFByb2Nlc3NEaWRSZXN1bWUoKSBmaW5hbDsKKyAgICB2b2lkIHNlbmRQcm9j
ZXNzRGlkUmVzdW1lKFJlc3VtZVJlYXNvbikgZmluYWw7CiAKICAgICAvLyBQcm9jZXNzTGF1bmNo
ZXI6OkNsaWVudAogICAgIHZvaWQgZGlkRmluaXNoTGF1bmNoaW5nKFByb2Nlc3NMYXVuY2hlcios
IElQQzo6Q29ubmVjdGlvbjo6SWRlbnRpZmllcikgb3ZlcnJpZGU7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9jZXNzUHJveHkuY3BwIGIvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvTmV0d29yay9OZXR3b3JrUHJvY2Vzc1Byb3h5LmNwcAppbmRl
eCBmMmUyNWVjODQ1NmRhNTg1YzAyYjc1Mjc4ZDRmYTFjOTQwODg0MDE3Li44ZmU2NTgxYTA1YjA0
YzY5ZmJkMDFhYTYxNTJmY2NkMGM3MjFmM2MyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9jZXNzUHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nlc3NQcm94eS5jcHAKQEAgLTI2OSw2ICsy
NjksOSBAQCBOZXR3b3JrUHJvY2Vzc1Byb3h5OjpOZXR3b3JrUHJvY2Vzc1Byb3h5KCkKICAgICBz
ZW5kQ3JlYXRpb25QYXJhbWV0ZXJzVG9OZXdQcm9jZXNzKCk7CiAgICAgdXBkYXRlUHJvY2Vzc0Fz
c2VydGlvbigpOwogICAgIG5ldHdvcmtQcm9jZXNzZXNTZXQoKS5hZGQodGhpcyk7CisjaWYgUExB
VEZPUk0oSU9TX0ZBTUlMWSkKKyAgICBhZGRCYWNrZ3JvdW5kU3RhdGVPYnNlcnZlcnMoKTsKKyNl
bmRpZgogfQogCiBOZXR3b3JrUHJvY2Vzc1Byb3h5Ojp+TmV0d29ya1Byb2Nlc3NQcm94eSgpCkBA
IC0yODEsNiArMjg0LDkgQEAgTmV0d29ya1Byb2Nlc3NQcm94eTo6fk5ldHdvcmtQcm9jZXNzUHJv
eHkoKQogICAgIGlmIChtX2Rvd25sb2FkUHJveHlNYXApCiAgICAgICAgIG1fZG93bmxvYWRQcm94
eU1hcC0+aW52YWxpZGF0ZSgpOwogICAgIG5ldHdvcmtQcm9jZXNzZXNTZXQoKS5yZW1vdmUodGhp
cyk7CisjaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKKyAgICByZW1vdmVCYWNrZ3JvdW5kU3RhdGVP
YnNlcnZlcnMoKTsKKyNlbmRpZgogfQogCiB2b2lkIE5ldHdvcmtQcm9jZXNzUHJveHk6OmdldExh
dW5jaE9wdGlvbnMoUHJvY2Vzc0xhdW5jaGVyOjpMYXVuY2hPcHRpb25zJiBsYXVuY2hPcHRpb25z
KQpAQCAtMzM2LDEyICszNDIsMTAgQEAgdm9pZCBOZXR3b3JrUHJvY2Vzc1Byb3h5OjpnZXROZXR3
b3JrUHJvY2Vzc0Nvbm5lY3Rpb24oV2ViUHJvY2Vzc1Byb3h5JiB3ZWJQcm9jZXMKIAogdm9pZCBO
ZXR3b3JrUHJvY2Vzc1Byb3h5OjpzeW50aGVzaXplQXBwSXNCYWNrZ3JvdW5kKGJvb2wgYmFja2dy
b3VuZCkKIHsKLSAgICBpZiAobV9kb3dubG9hZFByb3h5TWFwKSB7Ci0gICAgICAgIGlmIChiYWNr
Z3JvdW5kKQotICAgICAgICAgICAgbV9kb3dubG9hZFByb3h5TWFwLT5hcHBsaWNhdGlvbkRpZEVu
dGVyQmFja2dyb3VuZCgpOwotICAgICAgICBlbHNlCi0gICAgICAgICAgICBtX2Rvd25sb2FkUHJv
eHlNYXAtPmFwcGxpY2F0aW9uV2lsbEVudGVyRm9yZWdyb3VuZCgpOwotICAgIH0KKyAgICBpZiAo
YmFja2dyb3VuZCkKKyAgICAgICAgYXBwbGljYXRpb25EaWRFbnRlckJhY2tncm91bmQoKTsKKyAg
ICBlbHNlCisgICAgICAgIGFwcGxpY2F0aW9uV2lsbEVudGVyRm9yZWdyb3VuZCgpOwogfQogCiBE
b3dubG9hZFByb3h5JiBOZXR3b3JrUHJvY2Vzc1Byb3h5OjpjcmVhdGVEb3dubG9hZFByb3h5KFdl
YnNpdGVEYXRhU3RvcmUmIGRhdGFTdG9yZSwgV2ViUHJvY2Vzc1Bvb2wmIHByb2Nlc3NQb29sLCBj
b25zdCBSZXNvdXJjZVJlcXVlc3QmIHJlc291cmNlUmVxdWVzdCwgY29uc3QgRnJhbWVJbmZvRGF0
YSYgZnJhbWVJbmZvLCBXZWJQYWdlUHJveHkqIG9yaWdpbmF0aW5nUGFnZSkKQEAgLTEzOTYsMTAg
KzE0MDAsMTAgQEAgdm9pZCBOZXR3b3JrUHJvY2Vzc1Byb3h5OjpzZW5kUHJlcGFyZVRvU3VzcGVu
ZChJc1N1c3BlbnNpb25JbW1pbmVudCBpc1N1c3BlbnNpb24KICAgICBzZW5kV2l0aEFzeW5jUmVw
bHkoTWVzc2FnZXM6Ok5ldHdvcmtQcm9jZXNzOjpQcmVwYXJlVG9TdXNwZW5kKGlzU3VzcGVuc2lv
bkltbWluZW50ID09IElzU3VzcGVuc2lvbkltbWluZW50OjpZZXMpLCBXVEZNb3ZlKGNvbXBsZXRp
b25IYW5kbGVyKSwgMCwgeyB9LCBTaG91bGRTdGFydFByb2Nlc3NUaHJvdHRsZXJBY3Rpdml0eTo6
Tm8pOwogfQogCi12b2lkIE5ldHdvcmtQcm9jZXNzUHJveHk6OnNlbmRQcm9jZXNzRGlkUmVzdW1l
KCkKK3ZvaWQgTmV0d29ya1Byb2Nlc3NQcm94eTo6c2VuZFByb2Nlc3NEaWRSZXN1bWUoUmVzdW1l
UmVhc29uIHJlYXNvbikKIHsKICAgICBpZiAoY2FuU2VuZE1lc3NhZ2UoKSkKLSAgICAgICAgc2Vu
ZChNZXNzYWdlczo6TmV0d29ya1Byb2Nlc3M6OlByb2Nlc3NEaWRSZXN1bWUoKSwgMCk7CisgICAg
ICAgIHNlbmQoTWVzc2FnZXM6Ok5ldHdvcmtQcm9jZXNzOjpQcm9jZXNzRGlkUmVzdW1lKHJlYXNv
biA9PSBSZXN1bWVSZWFzb246OkZvcmVncm91bmRBY3Rpdml0eSksIDApOwogfQogCiB2b2lkIE5l
dHdvcmtQcm9jZXNzUHJveHk6OmZsdXNoQ29va2llcyhQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQs
IENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKQEAgLTE4MDgs
NiArMTgxMiwxNiBAQCB2b2lkIE5ldHdvcmtQcm9jZXNzUHJveHk6Om9wZW5XaW5kb3dGcm9tU2Vy
dmljZVdvcmtlcihQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsCiAgICAgY2FsbGJhY2soc3RkOjpu
dWxsb3B0KTsKIH0KIAordm9pZCBOZXR3b3JrUHJvY2Vzc1Byb3h5OjphcHBsaWNhdGlvbkRpZEVu
dGVyQmFja2dyb3VuZCgpCit7CisgICAgc2VuZChNZXNzYWdlczo6TmV0d29ya1Byb2Nlc3M6OkFw
cGxpY2F0aW9uRGlkRW50ZXJCYWNrZ3JvdW5kKCksIDApOworfQorCit2b2lkIE5ldHdvcmtQcm9j
ZXNzUHJveHk6OmFwcGxpY2F0aW9uV2lsbEVudGVyRm9yZWdyb3VuZCgpCit7CisgICAgc2VuZChN
ZXNzYWdlczo6TmV0d29ya1Byb2Nlc3M6OkFwcGxpY2F0aW9uV2lsbEVudGVyRm9yZWdyb3VuZCgp
LCAwKTsKK30KKwogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CiAKICN1bmRlZiBNRVNTQUdFX0NIRUNL
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9j
ZXNzUHJveHkuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nl
c3NQcm94eS5oCmluZGV4IDE1ZTdmNzYzYTAyMWYwMGJlMjNiMzI0NGM5OGJlOWU1NmYxZmFkYjUu
LjVjMWQwNTNmMWY4Y2ZmNTU2MGY2ZGU5ZTE2YWExNTFmYWI3YTVmNjYgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nlc3NQcm94eS5oCisrKyBi
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nlc3NQcm94eS5oCkBA
IC0yMzcsNyArMjM3LDcgQEAgcHVibGljOgogICAgIHZvaWQgY3JlYXRlU3ltTGlua0ZvckZpbGVV
cGdyYWRlKGNvbnN0IFN0cmluZyYgaW5kZXhlZERhdGFiYXNlRGlyZWN0b3J5KTsKIAogICAgIC8v
IFByb2Nlc3NUaHJvdHRsZXJDbGllbnQKLSAgICB2b2lkIHNlbmRQcm9jZXNzRGlkUmVzdW1lKCkg
ZmluYWw7CisgICAgdm9pZCBzZW5kUHJvY2Vzc0RpZFJlc3VtZShSZXN1bWVSZWFzb24pIGZpbmFs
OwogICAgIEFTQ0lJTGl0ZXJhbCBjbGllbnROYW1lKCkgY29uc3QgZmluYWwgeyByZXR1cm4gIk5l
dHdvcmtQcm9jZXNzIl9zOyB9CiAgICAgCiAgICAgc3RhdGljIHZvaWQgc2V0U3VzcGVuc2lvbkFs
bG93ZWRGb3JUZXN0aW5nKGJvb2wpOwpAQCAtMzc0LDYgKzM3NCwxMyBAQCBwcml2YXRlOgogICAg
IHZvaWQgZGlkRXhjZWVkTWVtb3J5TGltaXQoKTsKICNlbmRpZgogCisgICAgdm9pZCBhcHBsaWNh
dGlvbkRpZEVudGVyQmFja2dyb3VuZCgpOworICAgIHZvaWQgYXBwbGljYXRpb25XaWxsRW50ZXJG
b3JlZ3JvdW5kKCk7CisjaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKKyAgICB2b2lkIGFkZEJhY2tn
cm91bmRTdGF0ZU9ic2VydmVycygpOworICAgIHZvaWQgcmVtb3ZlQmFja2dyb3VuZFN0YXRlT2Jz
ZXJ2ZXJzKCk7CisjZW5kaWYKKwogICAgIHN0ZDo6dW5pcXVlX3B0cjxEb3dubG9hZFByb3h5TWFw
PiBtX2Rvd25sb2FkUHJveHlNYXA7CiAKICAgICBVbmlxdWVSZWY8QVBJOjpDdXN0b21Qcm90b2Nv
bE1hbmFnZXJDbGllbnQ+IG1fY3VzdG9tUHJvdG9jb2xNYW5hZ2VyQ2xpZW50OwpAQCAtNDExLDYg
KzQxOCwxMSBAQCBwcml2YXRlOgogICAgIFdlYWtIYXNoU2V0PFdlYnNpdGVEYXRhU3RvcmU+IG1f
d2Vic2l0ZURhdGFTdG9yZXM7CiAgICAgVW5pcXVlUmVmPFdlYkNvb2tpZU1hbmFnZXJQcm94eT4g
bV9jb29raWVNYW5hZ2VyOwogICAgIEhhc2hNYXA8RGF0YVRhc2tJZGVudGlmaWVyLCBSZWY8QVBJ
OjpEYXRhVGFzaz4+IG1fZGF0YVRhc2tzOworCisjaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKKyAg
ICBSZXRhaW5QdHI8aWQ+IG1fYmFja2dyb3VuZE9ic2VydmVyOworICAgIFJldGFpblB0cjxpZD4g
bV9mb3JlZ3JvdW5kT2JzZXJ2ZXI7CisjZW5kaWYKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYktp
dApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvTmV0d29yay9OZXR3b3JrUHJv
Y2Vzc1Byb3h5Q29jb2EubW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9OZXR3b3JrL05ldHdv
cmtQcm9jZXNzUHJveHlDb2NvYS5tbQppbmRleCBiNjRiNTAyMDYxYjQ4OWMzNzk1NWMyOTUwNzUz
MjdkYmIwMTY0ZTJhLi4yZTg2YzFiNjZhNGQ1MmQ2ZjMwNGE0OTA1MmUwZmUwOTg1ZGMzMzc4IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9jZXNz
UHJveHlDb2NvYS5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9OZXR3b3JrL05ldHdv
cmtQcm9jZXNzUHJveHlDb2NvYS5tbQpAQCAtMjcsOSArMjcsMTYgQEAKICNpbXBvcnQgIk5ldHdv
cmtQcm9jZXNzUHJveHkuaCIKIAogI2ltcG9ydCAiTGF1bmNoU2VydmljZXNEYXRhYmFzZVhQQ0Nv
bnN0YW50cy5oIgorI2ltcG9ydCAiTmV0d29ya1Byb2Nlc3NNZXNzYWdlcy5oIgogI2ltcG9ydCAi
V2ViUHJvY2Vzc1Bvb2wuaCIKICNpbXBvcnQgIlhQQ0VuZHBvaW50LmgiCiAKKyNpZiBQTEFURk9S
TShJT1NfRkFNSUxZKQorI2ltcG9ydCA8VUlLaXQvVUlLaXQuaD4KKyNpbXBvcnQgPHd0Zi9CbG9j
a1B0ci5oPgorI2ltcG9ydCA8d3RmL1dlYWtQdHIuaD4KKyNlbmRpZgorCiBuYW1lc3BhY2UgV2Vi
S2l0IHsKIAogdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CkBAIC04NSw0ICs5MiwyNiBAQCBib29s
IE5ldHdvcmtQcm9jZXNzUHJveHk6OnNlbmRYUENFbmRwb2ludFRvUHJvY2VzcyhBdXhpbGlhcnlQ
cm9jZXNzUHJveHkmIHByb2NlcwogICAgIHJldHVybiB0cnVlOwogfQogCisjaWYgUExBVEZPUk0o
SU9TX0ZBTUlMWSkKKwordm9pZCBOZXR3b3JrUHJvY2Vzc1Byb3h5OjphZGRCYWNrZ3JvdW5kU3Rh
dGVPYnNlcnZlcnMoKQoreworICAgIG1fYmFja2dyb3VuZE9ic2VydmVyID0gW1tOU05vdGlmaWNh
dGlvbkNlbnRlciBkZWZhdWx0Q2VudGVyXSBhZGRPYnNlcnZlckZvck5hbWU6VUlBcHBsaWNhdGlv
bkRpZEVudGVyQmFja2dyb3VuZE5vdGlmaWNhdGlvbiBvYmplY3Q6W1VJQXBwbGljYXRpb24gc2hh
cmVkQXBwbGljYXRpb25dIHF1ZXVlOm5pbCB1c2luZ0Jsb2NrOm1ha2VCbG9ja1B0cihbd2Vha1Ro
aXMgPSBXZWFrUHRyIHsgKnRoaXMgfV0oTlNOb3RpZmljYXRpb24gKikgeworICAgICAgICBpZiAo
d2Vha1RoaXMpCisgICAgICAgICAgICB3ZWFrVGhpcy0+YXBwbGljYXRpb25EaWRFbnRlckJhY2tn
cm91bmQoKTsKKyAgICB9KS5nZXQoKV07CisgICAgbV9mb3JlZ3JvdW5kT2JzZXJ2ZXIgPSBbW05T
Tm90aWZpY2F0aW9uQ2VudGVyIGRlZmF1bHRDZW50ZXJdIGFkZE9ic2VydmVyRm9yTmFtZTpVSUFw
cGxpY2F0aW9uV2lsbEVudGVyRm9yZWdyb3VuZE5vdGlmaWNhdGlvbiBvYmplY3Q6W1VJQXBwbGlj
YXRpb24gc2hhcmVkQXBwbGljYXRpb25dIHF1ZXVlOm5pbCB1c2luZ0Jsb2NrOm1ha2VCbG9ja1B0
cihbd2Vha1RoaXMgPSBXZWFrUHRyIHsgKnRoaXMgfV0oTlNOb3RpZmljYXRpb24gKikgeworICAg
ICAgICBpZiAod2Vha1RoaXMpCisgICAgICAgICAgICB3ZWFrVGhpcy0+YXBwbGljYXRpb25XaWxs
RW50ZXJGb3JlZ3JvdW5kKCk7CisgICAgfSkuZ2V0KCldOworfQorCit2b2lkIE5ldHdvcmtQcm9j
ZXNzUHJveHk6OnJlbW92ZUJhY2tncm91bmRTdGF0ZU9ic2VydmVycygpCit7CisgICAgW1tOU05v
dGlmaWNhdGlvbkNlbnRlciBkZWZhdWx0Q2VudGVyXSByZW1vdmVPYnNlcnZlcjptX2JhY2tncm91
bmRPYnNlcnZlci5nZXQoKV07CisgICAgW1tOU05vdGlmaWNhdGlvbkNlbnRlciBkZWZhdWx0Q2Vu
dGVyXSByZW1vdmVPYnNlcnZlcjptX2ZvcmVncm91bmRPYnNlcnZlci5nZXQoKV07Cit9CisKKyNl
bmRpZgorCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Qcm9jZXNzVGhy
b3R0bGVyLmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1Byb2Nlc3NUaHJvdHRsZXIuY3Bw
CmluZGV4IGI2OWI2NDk2ZmFjODAyYWI0M2VmYmY4MjdmZGQzMmE5YjBmZDE1YWIuLjQ3MTJmMmVj
ZmJhMmM1YTk5ZTJkNmJhZDRmMWUwNWM1N2RkZTg2YTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL1Byb2Nlc3NUaHJvdHRsZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL1Byb2Nlc3NUaHJvdHRsZXIuY3BwCkBAIC0xNTksNyArMTU5LDcgQEAgdm9pZCBQcm9j
ZXNzVGhyb3R0bGVyOjp1cGRhdGVBc3NlcnRpb25JZk5lZWRlZCgpCiAgICAgICAgICAgICAgICAg
UFJPQ0VTU1RIUk9UVExFUl9SRUxFQVNFX0xPRygidXBkYXRlQXNzZXJ0aW9uSWZOZWVkZWQ6IHNl
bmRpbmcgUHJvY2Vzc0RpZFJlc3VtZSBJUEMgYmVjYXVzZSB0aGUgcHJvY2VzcyB3YXMgc3VzcGVu
ZGVkIik7CiAgICAgICAgICAgICBlbHNlCiAgICAgICAgICAgICAgICAgUFJPQ0VTU1RIUk9UVExF
Ul9SRUxFQVNFX0xPRygidXBkYXRlQXNzZXJ0aW9uSWZOZWVkZWQ6IHNlbmRpbmcgUHJvY2Vzc0Rp
ZFJlc3VtZSBJUEMgYmVjYXVzZSB0aGUgV2ViUHJvY2VzcyBpcyBzdGlsbCBwcm9jZXNzaW5nIHJl
cXVlc3QgdG8gc3VzcGVuZD0lIiBQUkl1NjQsICptX3BlbmRpbmdSZXF1ZXN0VG9TdXNwZW5kSUQp
OwotICAgICAgICAgICAgbV9wcm9jZXNzLnNlbmRQcm9jZXNzRGlkUmVzdW1lKCk7CisgICAgICAg
ICAgICBtX3Byb2Nlc3Muc2VuZFByb2Nlc3NEaWRSZXN1bWUoZXhwZWN0ZWRBc3NlcnRpb25UeXBl
KCkgPT0gUHJvY2Vzc0Fzc2VydGlvblR5cGU6OkZvcmVncm91bmQgPyBQcm9jZXNzVGhyb3R0bGVy
Q2xpZW50OjpSZXN1bWVSZWFzb246OkZvcmVncm91bmRBY3Rpdml0eSA6IFByb2Nlc3NUaHJvdHRs
ZXJDbGllbnQ6OlJlc3VtZVJlYXNvbjo6QmFja2dyb3VuZEFjdGl2aXR5KTsKICAgICAgICAgICAg
IGNsZWFyUGVuZGluZ1JlcXVlc3RUb1N1c3BlbmQoKTsKICAgICAgICAgfQogICAgIH0gZWxzZSB7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Qcm9jZXNzVGhyb3R0bGVyQ2xp
ZW50LmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Qcm9jZXNzVGhyb3R0bGVyQ2xpZW50LmgK
aW5kZXggMTE4YmYwZGQyMzU4MjI0YzJlYzdkZjliOTY1MWU5ZjEzNzhlNmUwMC4uZmM3N2JhOTUz
MzlhNDZmODg3OTY2ZjhmY2IzMGE1OWRmZGVhYjQ2NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvUHJvY2Vzc1Rocm90dGxlckNsaWVudC5oCisrKyBiL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL1Byb2Nlc3NUaHJvdHRsZXJDbGllbnQuaApAQCAtMzcsNyArMzcsOCBAQCBwdWJs
aWM6CiAgICAgdmlydHVhbCB+UHJvY2Vzc1Rocm90dGxlckNsaWVudCgpIHsgfQogCiAgICAgdmly
dHVhbCB2b2lkIHNlbmRQcmVwYXJlVG9TdXNwZW5kKElzU3VzcGVuc2lvbkltbWluZW50LCBDb21w
bGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYpID0gMDsKLSAgICB2aXJ0dWFsIHZvaWQgc2VuZFByb2Nl
c3NEaWRSZXN1bWUoKSA9IDA7CisgICAgZW51bSBSZXN1bWVSZWFzb24gOiBib29sIHsgRm9yZWdy
b3VuZEFjdGl2aXR5LCBCYWNrZ3JvdW5kQWN0aXZpdHkgfTsKKyAgICB2aXJ0dWFsIHZvaWQgc2Vu
ZFByb2Nlc3NEaWRSZXN1bWUoUmVzdW1lUmVhc29uKSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIGRp
ZFNldEFzc2VydGlvblR5cGUoUHJvY2Vzc0Fzc2VydGlvblR5cGUpIHsgfTsKICAgICB2aXJ0dWFs
IEFTQ0lJTGl0ZXJhbCBjbGllbnROYW1lKCkgY29uc3QgPSAwOwogfTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYkF1dGhlbnRpY2F0aW9uL1dlYkF1dGhuUHJvY2Vzc1By
b3h5LmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJBdXRoZW50aWNhdGlvbi9XZWJBdXRo
blByb2Nlc3NQcm94eS5oCmluZGV4IGM1YjE2NzFiMWFhMDYzNGQxMzJiOWE2ZWY4OWFlODNlY2Zi
MDNiM2UuLjExYmYwNDcxN2E2NTIwZmZhNGE2N2UzNzg2MGRjYWJiZjYyZTU2NTMgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYkF1dGhlbnRpY2F0aW9uL1dlYkF1dGhuUHJv
Y2Vzc1Byb3h5LmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViQXV0aGVudGljYXRp
b24vV2ViQXV0aG5Qcm9jZXNzUHJveHkuaApAQCAtNTUsNyArNTUsNyBAQCBwdWJsaWM6CiAgICAg
dm9pZCB1cGRhdGVQcm9jZXNzQXNzZXJ0aW9uKCk7CiAKICAgICAvLyBQcm9jZXNzVGhyb3R0bGVy
Q2xpZW50Ci0gICAgdm9pZCBzZW5kUHJvY2Vzc0RpZFJlc3VtZSgpIGZpbmFsIHsgfQorICAgIHZv
aWQgc2VuZFByb2Nlc3NEaWRSZXN1bWUoUmVzdW1lUmVhc29uKSBmaW5hbCB7IH0KICAgICBBU0NJ
SUxpdGVyYWwgY2xpZW50TmFtZSgpIGNvbnN0IGZpbmFsIHsgcmV0dXJuICJXZWJBdXRoblByb2Nl
c3MiX3M7IH0KIAogcHJpdmF0ZToKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L1dlYlByb2Nlc3NQcm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNz
UHJveHkuY3BwCmluZGV4IGZkNTQwOWQ3NWZiMjljZDhhZmI0YTM4MjA0N2UxMWIzN2JiNWI2YjIu
LmJkYzhhNDMxY2Q1MzQ0NzA4NDVkYTVkYjBmYzE1MmU5YTY3NjBmMDkgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5jcHAKKysrIGIvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5LmNwcApAQCAtMTQ0OCw3ICsxNDQ4LDcgQEAg
dm9pZCBXZWJQcm9jZXNzUHJveHk6OnNlbmRQcmVwYXJlVG9TdXNwZW5kKElzU3VzcGVuc2lvbklt
bWluZW50IGlzU3VzcGVuc2lvbkltbWkKICAgICBzZW5kV2l0aEFzeW5jUmVwbHkoTWVzc2FnZXM6
OldlYlByb2Nlc3M6OlByZXBhcmVUb1N1c3BlbmQoaXNTdXNwZW5zaW9uSW1taW5lbnQgPT0gSXNT
dXNwZW5zaW9uSW1taW5lbnQ6OlllcyksIFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpLCAwLCB7
IH0sIFNob3VsZFN0YXJ0UHJvY2Vzc1Rocm90dGxlckFjdGl2aXR5OjpObyk7CiB9CiAKLXZvaWQg
V2ViUHJvY2Vzc1Byb3h5OjpzZW5kUHJvY2Vzc0RpZFJlc3VtZSgpCit2b2lkIFdlYlByb2Nlc3NQ
cm94eTo6c2VuZFByb2Nlc3NEaWRSZXN1bWUoUmVzdW1lUmVhc29uKQogewogICAgIFdFQlBST0NF
U1NQUk9YWV9SRUxFQVNFX0xPRyhQcm9jZXNzU3VzcGVuc2lvbiwgInNlbmRQcm9jZXNzRGlkUmVz
dW1lOiIpOwogICAgIGlmIChjYW5TZW5kTWVzc2FnZSgpKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5LmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9XZWJQcm9jZXNzUHJveHkuaAppbmRleCBkY2Q0OGNkOWU0NTNlNjdhNDFlODhjOTRmY2VmZGNj
OGJmY2ExZWUxLi5jYjQyNDRiYWY4YTg2OTg1ODUwZjkwNjJmZDYzMTcyMjgwYjQxNTRjIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkuaAorKysgYi9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkuaApAQCAtMzI3LDcgKzMyNyw3
IEBAIHB1YmxpYzoKIAogICAgIC8vIFByb2Nlc3NUaHJvdHRsZXJDbGllbnQKICAgICB2b2lkIHNl
bmRQcmVwYXJlVG9TdXNwZW5kKElzU3VzcGVuc2lvbkltbWluZW50LCBDb21wbGV0aW9uSGFuZGxl
cjx2b2lkKCk+JiYpIGZpbmFsOwotICAgIHZvaWQgc2VuZFByb2Nlc3NEaWRSZXN1bWUoKSBmaW5h
bDsKKyAgICB2b2lkIHNlbmRQcm9jZXNzRGlkUmVzdW1lKFJlc3VtZVJlYXNvbikgZmluYWw7CiAg
ICAgdm9pZCBkaWRTZXRBc3NlcnRpb25UeXBlKFByb2Nlc3NBc3NlcnRpb25UeXBlKSBmaW5hbDsK
ICAgICBBU0NJSUxpdGVyYWwgY2xpZW50TmFtZSgpIGNvbnN0IGZpbmFsIHsgcmV0dXJuICJXZWJQ
cm9jZXNzIl9zOyB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYnNp
dGVEYXRhL1dlYnNpdGVEYXRhU3RvcmUuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2Vi
c2l0ZURhdGEvV2Vic2l0ZURhdGFTdG9yZS5jcHAKaW5kZXggZTE3MzY1ODY3MTk4MDZhZWVmOGQ0
NDEzMzMzYTcwNzYyYWRkMTEzZC4uMmNkN2NjM2Y4MzY0NDNiYWY4MWI0ZjY3YzgwODlmNDdmOTZm
MWVjYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2Vic2l0ZURhdGEvV2Vi
c2l0ZURhdGFTdG9yZS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2Vic2l0ZURh
dGEvV2Vic2l0ZURhdGFTdG9yZS5jcHAKQEAgLTE1NzUsNyArMTU3NSw3IEBAIHZvaWQgV2Vic2l0
ZURhdGFTdG9yZTo6c2VuZE5ldHdvcmtQcm9jZXNzV2lsbFN1c3BlbmRJbW1pbmVudGx5Rm9yVGVz
dGluZygpCiAKIHZvaWQgV2Vic2l0ZURhdGFTdG9yZTo6c2VuZE5ldHdvcmtQcm9jZXNzRGlkUmVz
dW1lKCkKIHsKLSAgICBuZXR3b3JrUHJvY2VzcygpLnNlbmRQcm9jZXNzRGlkUmVzdW1lKCk7Cisg
ICAgbmV0d29ya1Byb2Nlc3MoKS5zZW5kUHJvY2Vzc0RpZFJlc3VtZShQcm9jZXNzVGhyb3R0bGVy
Q2xpZW50OjpSZXN1bWVSZWFzb246OkZvcmVncm91bmRBY3Rpdml0eSk7CiB9CiAKIGJvb2wgV2Vi
c2l0ZURhdGFTdG9yZTo6cmVzb3VyY2VMb2FkU3RhdGlzdGljc0VuYWJsZWQoKSBjb25zdAo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>456041</attachid>
            <date>2022-03-29 10:33:14 -0700</date>
            <delta_ts>2022-03-29 11:34:50 -0700</delta_ts>
            <desc>[fast-cq] Patch for landing</desc>
            <filename>bug-238082-20220329103313.patch</filename>
            <type>text/plain</type>
            <size>1680</size>
            <attacher name="Sihui Liu">sihui_liu</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjkyMDM3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDEyYWFhYzM5MmI5M2RkNGQ1
ODEwM2ExMDI4MTFjMGU4OWZmNTdhODYuLjJiOGMzMTYwOGJjYWE5YzYyOWZkYTI3MjNkMDVlNGJh
YjI4ZmUwNGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTQgQEAKKzIwMjItMDMtMjkgIFNpaHVpIExp
dSAgPHNpaHVpX2xpdUBhcHBsZS5jb20+CisKKyAgICAgICAgVW5yZXZpZXdlZCB0ZXN0IGZpeCBh
ZnRlciByMjkyMDI0LgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9MjM4MDgyCisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS85MDg0NDc3NT4KKworICAgICAg
ICBDb3JyZWN0aW5nIGFuIGlmIGNvbmRpdGlvbi4KKworICAgICAgICAqIE5ldHdvcmtQcm9jZXNz
L05ldHdvcmtQcm9jZXNzLmNwcDoKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya1Byb2Nlc3M6OnBy
b2Nlc3NEaWRSZXN1bWUpOgorCiAyMDIyLTAzLTI5ICBQYXRyaWNrIEFuZ2xlICA8cGFuZ2xlQGFw
cGxlLmNvbT4KIAogICAgICAgICBXZWIgSW5zcGVjdG9yOiBbQ29jb2FdIEluZGljYXRlIGEgcmVx
dWVzdCB3YXMgc2VudCB0aHJvdWdoIHByb3h5L3ByaXZhdGUgcmVsYXkgaW4gTmV0d29yayB0YWIK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3Mu
Y3BwIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5jcHAKaW5k
ZXggMTE1MTNhOGViOGU2YTBhZDU5ZjZiNjlkMmIxOTkxOGQwNzQwMWZjNi4uMGY4NzNjNmNlNzcz
M2VmYjVhYTBkMGJlMTUyMDY3MzU2NDZmMGRlOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9O
ZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5jcHAKKysrIGIvU291cmNlL1dlYktpdC9OZXR3
b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5jcHAKQEAgLTIxNzYsNyArMjE3Niw3IEBAIHZvaWQg
TmV0d29ya1Byb2Nlc3M6OmFwcGxpY2F0aW9uV2lsbEVudGVyRm9yZWdyb3VuZCgpCiAKIHZvaWQg
TmV0d29ya1Byb2Nlc3M6OnByb2Nlc3NEaWRSZXN1bWUoYm9vbCBmb3JGb3JlZ3JvdW5kQWN0aXZp
dHkpCiB7Ci0gICAgaWYgKG1fZW50ZXJCYWNrZ3JvdW5kVGltZXN0YW1wKQorICAgIGlmICghbV9l
bnRlckJhY2tncm91bmRUaW1lc3RhbXApCiAgICAgICAgIFJFTEVBU0VfTE9HKFByb2Nlc3NTdXNw
ZW5zaW9uLCAiJXAgLSBOZXR3b3JrUHJvY2Vzczo6cHJvY2Vzc0RpZFJlc3VtZSgpIGZvckZvcmVn
cm91bmRBY3Rpdml0eT0lZCIsIHRoaXMsIGZvckZvcmVncm91bmRBY3Rpdml0eSk7CiAgICAgZWxz
ZQogICAgICAgICBSRUxFQVNFX0xPRyhQcm9jZXNzU3VzcGVuc2lvbiwgIiVwIC0gTmV0d29ya1By
b2Nlc3M6OnByb2Nlc3NEaWRSZXN1bWUoKSBmb3JGb3JlZ3JvdW5kQWN0aXZpdHk9JWQgUHJvY2Vz
cyBoYXMgYmVlbiBpbiBiYWNrZ3JvdW5kIGZvciAlZiBzZWNvbmRzIiwgdGhpcywgZm9yRm9yZWdy
b3VuZEFjdGl2aXR5LCAoTW9ub3RvbmljVGltZTo6bm93KCkgLSBtX2VudGVyQmFja2dyb3VuZFRp
bWVzdGFtcC52YWx1ZSgpKS52YWx1ZSgpKTsK
</data>

          </attachment>
      

    </bug>

</bugzilla>