<?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>225324</bug_id>
          
          <creation_ts>2021-05-03 13:06:49 -0700</creation_ts>
          <short_desc>[iOS] Have ProcessAssertion take the RunningBoard assertion asynchronously by default</short_desc>
          <delta_ts>2021-07-12 09:15:38 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>WebKit2</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          <see_also>https://bugs.webkit.org/show_bug.cgi?id=227552</see_also>
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>227875</dependson>
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Chris Dumez">cdumez</reporter>
          <assigned_to name="Chris Dumez">cdumez</assigned_to>
          <cc>ggaren</cc>
    
    <cc>kkinnunen</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1756285</commentid>
    <comment_count>0</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2021-05-03 13:06:49 -0700</bug_when>
    <thetext>Use async API to take RunningBoard assertions to avoid hanging the main thread.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1756286</commentid>
    <comment_count>1</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2021-05-03 13:07:17 -0700</bug_when>
    <thetext>&lt;rdar://76972252&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1756290</commentid>
    <comment_count>2</comment_count>
      <attachid>427590</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2021-05-03 13:13:10 -0700</bug_when>
    <thetext>Created attachment 427590
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1756300</commentid>
    <comment_count>3</comment_count>
      <attachid>427593</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2021-05-03 13:31:14 -0700</bug_when>
    <thetext>Created attachment 427593
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1756306</commentid>
    <comment_count>4</comment_count>
      <attachid>427596</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2021-05-03 13:38:40 -0700</bug_when>
    <thetext>Created attachment 427596
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1756404</commentid>
    <comment_count>5</comment_count>
      <attachid>427596</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2021-05-03 18:38:55 -0700</bug_when>
    <thetext>Comment on attachment 427596
Patch

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

&gt; Source/WebKit/UIProcess/ProcessAssertion.h:78
&gt; +    bool m_isValid { false }; // Assume valid while in the process of being acquired.

The comment seems to disagree with the initialization value.

&gt; Source/WebKit/UIProcess/ios/ProcessAssertionIOS.mm:66
&gt; +    std::atomic&lt;bool&gt; m_hasValidBackgroundAssertion; // Assume valid while in the process of being acquired.

The comment here is also confusing.

&gt; Source/WebKit/UIProcess/ios/ProcessAssertionIOS.mm:168
&gt; +        m_hasValidBackgroundAssertion = true;

This is where I&apos;d put the comment. Would it be more truthful to use an Optional&lt;&gt; to indicate that we don&apos;t know the state yet?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1756427</commentid>
    <comment_count>6</comment_count>
      <attachid>427596</attachid>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2021-05-03 20:59:39 -0700</bug_when>
    <thetext>Comment on attachment 427596
Patch

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

&gt;&gt; Source/WebKit/UIProcess/ProcessAssertion.h:78
&gt;&gt; +    bool m_isValid { false }; // Assume valid while in the process of being acquired.
&gt; 
&gt; The comment seems to disagree with the initialization value.

The dissonance between comment and initialization here threw me for a loop too at first. I&apos;d suggest changing the default initialization to true, removing the comment, and removing the (additional) initialization from the cross platform constructor. The iOS constructor can explicitly set m_isValid to false in the !pid case.

&gt;&gt; Source/WebKit/UIProcess/ios/ProcessAssertionIOS.mm:66
&gt;&gt; +    std::atomic&lt;bool&gt; m_hasValidBackgroundAssertion; // Assume valid while in the process of being acquired.
&gt; 
&gt; The comment here is also confusing.

I&apos;d call this _backgroundTaskIsValid and remove the comment.

&gt;&gt; Source/WebKit/UIProcess/ios/ProcessAssertionIOS.mm:168
&gt;&gt; +        m_hasValidBackgroundAssertion = true;
&gt; 
&gt; This is where I&apos;d put the comment. Would it be more truthful to use an Optional&lt;&gt; to indicate that we don&apos;t know the state yet?

I don&apos;t think we can use Optional&lt;&gt; here because we never transition from not knowing to knowing. We&apos;re always in the &quot;I tried to acquire state&quot; until we&apos;re in the &quot;I got invalidated&quot; state.

That said, I think it&apos;s fine to say that our state is &quot;valid&quot; from the moment we try to acquire. Our definition of &quot;valid&quot; is &quot;there is no need to acquire&quot;.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1756434</commentid>
    <comment_count>7</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2021-05-03 22:02:29 -0700</bug_when>
    <thetext>I was thinking of renaming the flag to m_wasInvalidated so it is clearer what it means. The definition of is valid is a bit ambiguous otherwise.

And Geoff is right that we don’t know when we’ve successfully acquired the assertion. The only signal we get is the invalidation (which may be a failure to acquire).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1756438</commentid>
    <comment_count>8</comment_count>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2021-05-03 22:14:43 -0700</bug_when>
    <thetext>(In reply to Chris Dumez from comment #7)
&gt; I was thinking of renaming the flag to m_wasInvalidated so it is clearer
&gt; what it means. The definition of is valid is a bit ambiguous otherwise.

m_wasInvalidated sounds good to me. Clearer. And it makes the initialization case clearer. (Anything with &apos;was&apos; in the name must start out false, since nothing has happened yet.) (Remember to set wasInvalidated in the !pid case.)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1756443</commentid>
    <comment_count>9</comment_count>
      <attachid>427639</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2021-05-03 22:24:54 -0700</bug_when>
    <thetext>Created attachment 427639
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1756447</commentid>
    <comment_count>10</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2021-05-03 22:29:46 -0700</bug_when>
    <thetext>(In reply to Geoffrey Garen from comment #8)
&gt; (In reply to Chris Dumez from comment #7)
&gt; &gt; I was thinking of renaming the flag to m_wasInvalidated so it is clearer
&gt; &gt; what it means. The definition of is valid is a bit ambiguous otherwise.
&gt; 
&gt; m_wasInvalidated sounds good to me. Clearer. And it makes the initialization
&gt; case clearer. (Anything with &apos;was&apos; in the name must start out false, since
&gt; nothing has happened yet.) (Remember to set wasInvalidated in the !pid case.)

isValid() was already taking care of the !pid case:
```
bool ProcessAssertion::isValid() const
{
-    return m_rbsAssertion &amp;&amp; m_rbsAssertion.get().valid;
+    return m_rbsAssertion &amp;&amp; !m_wasInvalidated;
}
```</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1756450</commentid>
    <comment_count>11</comment_count>
      <attachid>427640</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2021-05-03 23:15:17 -0700</bug_when>
    <thetext>Created attachment 427640
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1756594</commentid>
    <comment_count>12</comment_count>
      <attachid>427640</attachid>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2021-05-04 10:54:13 -0700</bug_when>
    <thetext>Comment on attachment 427640
Patch

r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1756597</commentid>
    <comment_count>13</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2021-05-04 11:04:23 -0700</bug_when>
    <thetext>Committed r276969 (237298@main): &lt;https://commits.webkit.org/237298@main&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 427640.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1773762</commentid>
    <comment_count>14</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2021-06-30 08:38:13 -0700</bug_when>
    <thetext>Reverted r276969 for reason:

Causes previous assertion to get released before the new one is taken (asynchronously)

Committed r279412 (239277@main): &lt;https://commits.webkit.org/239277@main&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1774219</commentid>
    <comment_count>15</comment_count>
      <attachid>432716</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2021-07-01 12:51:34 -0700</bug_when>
    <thetext>Created attachment 432716
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1774226</commentid>
    <comment_count>16</comment_count>
      <attachid>432718</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2021-07-01 13:07:19 -0700</bug_when>
    <thetext>Created attachment 432718
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1774235</commentid>
    <comment_count>17</comment_count>
      <attachid>432719</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2021-07-01 13:39:15 -0700</bug_when>
    <thetext>Created attachment 432719
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1774277</commentid>
    <comment_count>18</comment_count>
      <attachid>432740</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2021-07-01 15:56:42 -0700</bug_when>
    <thetext>Created attachment 432740
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1774555</commentid>
    <comment_count>19</comment_count>
      <attachid>432819</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2021-07-02 13:43:13 -0700</bug_when>
    <thetext>Created attachment 432819
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1774557</commentid>
    <comment_count>20</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2021-07-02 13:43:41 -0700</bug_when>
    <thetext>Had to rebase because of Bug 227552 landing.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1774602</commentid>
    <comment_count>21</comment_count>
      <attachid>432829</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2021-07-02 15:36:13 -0700</bug_when>
    <thetext>Created attachment 432829
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1774626</commentid>
    <comment_count>22</comment_count>
      <attachid>432829</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2021-07-02 17:37:32 -0700</bug_when>
    <thetext>Comment on attachment 432829
Patch

EWS is happy, patch is ready for review.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1774994</commentid>
    <comment_count>23</comment_count>
      <attachid>432829</attachid>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2021-07-06 10:56:00 -0700</bug_when>
    <thetext>Comment on attachment 432829
Patch

r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1775021</commentid>
    <comment_count>24</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2021-07-06 12:01:36 -0700</bug_when>
    <thetext>Committed r279601 (239425@main): &lt;https://commits.webkit.org/239425@main&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 432829.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1775487</commentid>
    <comment_count>25</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2021-07-07 15:23:14 -0700</bug_when>
    <thetext>Follow-up in https://commits.webkit.org/r279679 to address assertions on the iOS debug bots.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>427590</attachid>
            <date>2021-05-03 13:13:10 -0700</date>
            <delta_ts>2021-05-03 13:33:08 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-225324-20210503131309.patch</filename>
            <type>text/plain</type>
            <size>12849</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc2ODg4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IGIzMzg1YmM1ZmY3ZWVmNTgy
OGYxOGVjYTQxYTllODBlYzczM2I4Y2UuLmQ4NDkwYWUyMjlkM2RhNDI4MGJkOTc1ODRmOTkyMzcz
MzlkZTVjNjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzkgQEAKKzIwMjEtMDUtMDMgIENocmlzIER1
bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KKworICAgICAgICBbaU9TXSBVc2UgYXN5bmMgQVBJIHRv
IHRha2UgUnVubmluZ0JvYXJkIGFzc2VydGlvbnMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTIyNTMyNAorICAgICAgICA8cmRhcjovLzc2OTcyMjUyPgor
CisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFVzZSBhc3lu
YyBbUkJTQXNzZXJ0aW9uIGFjcXVpcmVXaXRoSW52YWxpZGF0aW9uSGFuZGxlcjpdIEFQSSB0byB0
YWtlIHByb2Nlc3MgYXNzZXJ0aW9ucworICAgICAgICBpbnN0ZWFkIG9mIHRoZSBzeW5jaHJvbm91
cyBbUkJTQXNzZXJ0aW9uIGFjcXVpcmVXaXRoRXJyb3I6XSBBUEkuIFRoaXMgYXZvaWRzIHJpc2tp
bmcKKyAgICAgICAgaGFuZ2luZyB0aGUgbWFpbiB0aHJlYWQgZm9yIHRvbyBsb25nLgorCisgICAg
ICAgIE5vdGUgdGhhdCBbUkJTQXNzZXJ0aW9uIGlzVmFsaWRdIHJldHVybnMgZmFsc2UgdW50aWwg
dGhlIGFzc2VydGlvbiBpcyB0YWtlbiBzbyBJIGFtCisgICAgICAgIHVzaW5nIG91ciBvd24gImlz
VmFsaWQiIGJvb2xlYW4gdG8gaW5kaWNhdGUgaWYgdGhlIFJCU0Fzc2VydGlvbiB3YXMgaW52YWxp
ZGF0ZWQgb3IKKyAgICAgICAgb3Igbm90LiBXZSB1c2UgdGhpcyBmbGFnIHRvIGRlY2lkZSBpZiB3
ZSBuZWVkIHRvIHRha2UgdGhlIGFzc2VydGlvbiBhZ2Fpbi4gV2Ugd291bGRuJ3QKKyAgICAgICAg
d2FudCB0byByZS10YWtlIHRoZSBhc3NlcnRpb24gc2ltcGx5IGJlY2F1c2UgaXQgaXMgc3RpbGwg
aW4gdGhlIHByb2Nlc3Mgb2YgYmVpbmcKKyAgICAgICAgYWNxdWlyZWQuCisKKyAgICAgICAgKiBV
SVByb2Nlc3MvUHJvY2Vzc0Fzc2VydGlvbi5jcHA6CisgICAgICAgIChXZWJLaXQ6OlByb2Nlc3NB
c3NlcnRpb246OmlzVmFsaWQgY29uc3QpOiBEZWxldGVkLgorICAgICAgICAqIFVJUHJvY2Vzcy9Q
cm9jZXNzQXNzZXJ0aW9uLmg6CisgICAgICAgIChXZWJLaXQ6OlByb2Nlc3NBc3NlcnRpb246Omlz
VmFsaWQgY29uc3QpOgorICAgICAgICAqIFVJUHJvY2Vzcy9pb3MvUHJvY2Vzc0Fzc2VydGlvbklP
Uy5tbToKKyAgICAgICAgKC1bV0tQcm9jZXNzQXNzZXJ0aW9uQmFja2dyb3VuZFRhc2tNYW5hZ2Vy
IGluaXRdKToKKyAgICAgICAgKC1bV0tQcm9jZXNzQXNzZXJ0aW9uQmFja2dyb3VuZFRhc2tNYW5h
Z2VyIF91cGRhdGVCYWNrZ3JvdW5kVGFza10pOgorICAgICAgICAoLVtXS1Byb2Nlc3NBc3NlcnRp
b25CYWNrZ3JvdW5kVGFza01hbmFnZXIgYXNzZXJ0aW9uOmRpZEludmFsaWRhdGVXaXRoRXJyb3I6
XSk6CisgICAgICAgICgtW1dLUHJvY2Vzc0Fzc2VydGlvbkJhY2tncm91bmRUYXNrTWFuYWdlciBf
cmVsZWFzZUJhY2tncm91bmRUYXNrXSk6CisgICAgICAgIChXZWJLaXQ6OlByb2Nlc3NBc3NlcnRp
b246OlByb2Nlc3NBc3NlcnRpb24pOgorICAgICAgICAoV2ViS2l0OjpQcm9jZXNzQXNzZXJ0aW9u
Ojp+UHJvY2Vzc0Fzc2VydGlvbik6CisgICAgICAgIChXZWJLaXQ6OlByb2Nlc3NBc3NlcnRpb246
OnByb2Nlc3NBc3NlcnRpb25XYXNJbnZhbGlkYXRlZCk6CisgICAgICAgICgtW1dLUHJvY2Vzc0Fz
c2VydGlvbkJhY2tncm91bmRUYXNrTWFuYWdlciBfaGFzQmFja2dyb3VuZFRhc2tdKTogRGVsZXRl
ZC4KKyAgICAgICAgKC1bV0tSQlNBc3NlcnRpb25EZWxlZ2F0ZSBkZWFsbG9jXSk6IERlbGV0ZWQu
CisgICAgICAgICgtW1dLUkJTQXNzZXJ0aW9uRGVsZWdhdGUgYXNzZXJ0aW9uV2lsbEludmFsaWRh
dGU6XSk6IERlbGV0ZWQuCisgICAgICAgICgtW1dLUkJTQXNzZXJ0aW9uRGVsZWdhdGUgYXNzZXJ0
aW9uOmRpZEludmFsaWRhdGVXaXRoRXJyb3I6XSk6IERlbGV0ZWQuCisgICAgICAgIChXZWJLaXQ6
OlByb2Nlc3NBc3NlcnRpb246OmlzVmFsaWQgY29uc3QpOiBEZWxldGVkLgorCiAyMDIxLTA0LTMw
ICBEYXJpbiBBZGxlciAgPGRhcmluQGFwcGxlLmNvbT4KIAogICAgICAgICBVc2UgU29ydGVkQXJy
YXlNYXAgaW4gYSBmZXcgbW9yZSBwbGFjZXMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL1Byb2Nlc3NBc3NlcnRpb24uY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvUHJv
Y2Vzc0Fzc2VydGlvbi5jcHAKaW5kZXggZmE4ZTAzNzAxMWUzNjQ5MGFlNzQ3ODk2ZjAyODU3NWU4
YmFkZmFiMi4uOWNkNGFkYTI3ZTVlZjQ4NzM2ODI5NGZlYTBiNzM3OThmMWQ5NjY1MCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvUHJvY2Vzc0Fzc2VydGlvbi5jcHAKKysrIGIv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvUHJvY2Vzc0Fzc2VydGlvbi5jcHAKQEAgLTM1LDE2ICsz
NSwxMiBAQCBuYW1lc3BhY2UgV2ViS2l0IHsKIFByb2Nlc3NBc3NlcnRpb246OlByb2Nlc3NBc3Nl
cnRpb24oUHJvY2Vzc0lEIHBpZCwgY29uc3QgU3RyaW5nJiwgUHJvY2Vzc0Fzc2VydGlvblR5cGUg
YXNzZXJ0aW9uVHlwZSkKICAgICA6IG1fYXNzZXJ0aW9uVHlwZShhc3NlcnRpb25UeXBlKQogICAg
ICwgbV9waWQocGlkKQorICAgICwgbV9pc1ZhbGlkKHRydWUpCiB7CiB9CiAKIFByb2Nlc3NBc3Nl
cnRpb246On5Qcm9jZXNzQXNzZXJ0aW9uKCkgPSBkZWZhdWx0OwogCi1ib29sIFByb2Nlc3NBc3Nl
cnRpb246OmlzVmFsaWQoKSBjb25zdAotewotICAgIHJldHVybiB0cnVlOwotfQotCiBQcm9jZXNz
QW5kVUlBc3NlcnRpb246OlByb2Nlc3NBbmRVSUFzc2VydGlvbihQcm9jZXNzSUQgcGlkLCBjb25z
dCBTdHJpbmcmIHJlYXNvbiwgUHJvY2Vzc0Fzc2VydGlvblR5cGUgYXNzZXJ0aW9uVHlwZSkKICAg
ICA6IFByb2Nlc3NBc3NlcnRpb24ocGlkLCByZWFzb24sIGFzc2VydGlvblR5cGUpCiB7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Qcm9jZXNzQXNzZXJ0aW9uLmggYi9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9Qcm9jZXNzQXNzZXJ0aW9uLmgKaW5kZXggZWI3NWMyYTJlOTU1
NGZkMjU5ZWZlZDI3NTU3MDI2ZWU5Y2EwNDYwMy4uMzNjYjgzN2M0MGJkYWNlNjBlYWMzZTRlODI3
YWM2NjMxYTkwMjYwYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvUHJvY2Vz
c0Fzc2VydGlvbi5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1Byb2Nlc3NBc3NlcnRp
b24uaApAQCAtMzgsNyArMzgsNiBAQAogI2luY2x1ZGUgPHd0Zi9SZXRhaW5QdHIuaD4KIAogT0JK
Q19DTEFTUyBSQlNBc3NlcnRpb247Ci1PQkpDX0NMQVNTIFdLUkJTQXNzZXJ0aW9uRGVsZWdhdGU7
CiAjZW5kaWYgLy8gUExBVEZPUk0oSU9TX0ZBTUlMWSkKIAogbmFtZXNwYWNlIFdlYktpdCB7CkBA
IC02Miw3ICs2MSw3IEBAIHB1YmxpYzoKICAgICBQcm9jZXNzQXNzZXJ0aW9uVHlwZSB0eXBlKCkg
Y29uc3QgeyByZXR1cm4gbV9hc3NlcnRpb25UeXBlOyB9CiAgICAgUHJvY2Vzc0lEIHBpZCgpIGNv
bnN0IHsgcmV0dXJuIG1fcGlkOyB9CiAKLSAgICBib29sIGlzVmFsaWQoKSBjb25zdDsKKyAgICBi
b29sIGlzVmFsaWQoKSBjb25zdCB7IHJldHVybiBtX2lzVmFsaWQ7IH0KIAogI2lmIFBMQVRGT1JN
KElPU19GQU1JTFkpCiBwcm90ZWN0ZWQ6CkBAIC03NCw5ICs3Myw5IEBAIHByaXZhdGU6CiAgICAg
Y29uc3QgUHJvY2Vzc0lEIG1fcGlkOwogI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCiAgICAgUmV0
YWluUHRyPFJCU0Fzc2VydGlvbj4gbV9yYnNBc3NlcnRpb247Ci0gICAgUmV0YWluUHRyPFdLUkJT
QXNzZXJ0aW9uRGVsZWdhdGU+IG1fZGVsZWdhdGU7CiAjZW5kaWYKICAgICBGdW5jdGlvbjx2b2lk
KCk+IG1faW52YWxpZGF0aW9uSGFuZGxlcjsKKyAgICBib29sIG1faXNWYWxpZCB7IGZhbHNlIH07
IC8vIEFzc3VtZSB2YWxpZCB3aGlsZSBpbiB0aGUgcHJvY2VzcyBvZiBiZWluZyBhY3F1aXJlZC4K
IH07CiAKIGNsYXNzIFByb2Nlc3NBbmRVSUFzc2VydGlvbiBmaW5hbCA6IHB1YmxpYyBQcm9jZXNz
QXNzZXJ0aW9uIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9Qcm9j
ZXNzQXNzZXJ0aW9uSU9TLm1tIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1Byb2Nlc3NB
c3NlcnRpb25JT1MubW0KaW5kZXggZGZjZjJiNTBiYWQ5ZTNjNThjMGY1OTJmODA2ODQ3ODkxOTcx
ZjcyMy4uMjE2ZWZhNWJmMDhiMGM2Mjc4N2VjNjEwNGRlZGNmNWQzYWI0MTU3MSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1Byb2Nlc3NBc3NlcnRpb25JT1MubW0KKysr
IGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1Byb2Nlc3NBc3NlcnRpb25JT1MubW0KQEAg
LTYzLDYgKzYzLDcgQEAgQGVuZAogQGltcGxlbWVudGF0aW9uIFdLUHJvY2Vzc0Fzc2VydGlvbkJh
Y2tncm91bmRUYXNrTWFuYWdlcgogewogICAgIFJldGFpblB0cjxSQlNBc3NlcnRpb24+IF9iYWNr
Z3JvdW5kVGFzazsKKyAgICBzdGQ6OmF0b21pYzxib29sPiBtX2hhc1ZhbGlkQmFja2dyb3VuZEFz
c2VydGlvbjsgLy8gQXNzdW1lIHZhbGlkIHdoaWxlIGluIHRoZSBwcm9jZXNzIG9mIGJlaW5nIGFj
cXVpcmVkLgogICAgIFdlYWtIYXNoU2V0PFByb2Nlc3NBbmRVSUFzc2VydGlvbj4gX2Fzc2VydGlv
bnNOZWVkaW5nQmFja2dyb3VuZFRhc2s7CiAgICAgZGlzcGF0Y2hfYmxvY2tfdCBfcGVuZGluZ1Rh
c2tSZWxlYXNlVGFzazsKIH0KQEAgLTg3LDcgKzg4LDcgQEAgLSAoaW5zdGFuY2V0eXBlKWluaXQK
ICAgICB9XTsKIAogICAgIFtbTlNOb3RpZmljYXRpb25DZW50ZXIgZGVmYXVsdENlbnRlcl0gYWRk
T2JzZXJ2ZXJGb3JOYW1lOlVJQXBwbGljYXRpb25EaWRFbnRlckJhY2tncm91bmROb3RpZmljYXRp
b24gb2JqZWN0OltVSUFwcGxpY2F0aW9uIHNoYXJlZEFwcGxpY2F0aW9uXSBxdWV1ZTpuaWwgdXNp
bmdCbG9jazpeKE5TTm90aWZpY2F0aW9uICopIHsKLSAgICAgICAgaWYgKCFbc2VsZiBfaGFzQmFj
a2dyb3VuZFRhc2tdKQorICAgICAgICBpZiAoIV9iYWNrZ3JvdW5kVGFzaykKICAgICAgICAgICAg
IFdlYktpdDo6V2ViUHJvY2Vzc1Bvb2w6Om5vdGlmeVByb2Nlc3NQb29sc0FwcGxpY2F0aW9uSXNB
Ym91dFRvU3VzcGVuZCgpOwogICAgIH1dOwogCkBAIC0xNTIsMTQgKzE1Myw5IEBAIC0gKHZvaWQp
X2NhbmNlbFBlbmRpbmdSZWxlYXNlVGFzawogICAgIF9wZW5kaW5nVGFza1JlbGVhc2VUYXNrID0g
bmlsOwogfQogCi0tIChCT09MKV9oYXNCYWNrZ3JvdW5kVGFzawotewotICAgIHJldHVybiAhIV9i
YWNrZ3JvdW5kVGFzazsKLX0KLQogLSAodm9pZClfdXBkYXRlQmFja2dyb3VuZFRhc2sKIHsKLSAg
ICBpZiAoIV9hc3NlcnRpb25zTmVlZGluZ0JhY2tncm91bmRUYXNrLmNvbXB1dGVzRW1wdHkoKSAm
JiAhW3NlbGYgX2hhc0JhY2tncm91bmRUYXNrXSkgeworICAgIGlmICghX2Fzc2VydGlvbnNOZWVk
aW5nQmFja2dyb3VuZFRhc2suY29tcHV0ZXNFbXB0eSgpICYmICFtX2hhc1ZhbGlkQmFja2dyb3Vu
ZEFzc2VydGlvbikgewogICAgICAgICBpZiAocHJvY2Vzc0hhc0FjdGl2ZVJ1blRpbWVMaW1pdGF0
aW9uKCkpIHsKICAgICAgICAgICAgIFJFTEVBU0VfTE9HKFByb2Nlc3NTdXNwZW5zaW9uLCAiJXAg
LSBXS1Byb2Nlc3NBc3NlcnRpb25CYWNrZ3JvdW5kVGFza01hbmFnZXI6IElnbm9yZWQgcmVxdWVz
dCB0byBzdGFydCBhIG5ldyBiYWNrZ3JvdW5kIHRhc2sgYmVjYXVzZSBSdW5uaW5nQm9hcmQgaGFz
IGFscmVhZHkgc3RhcnRlZCB0aGUgZXhwaXJhdGlvbiB0aW1lciIsIHNlbGYpOwogICAgICAgICAg
ICAgcmV0dXJuOwpAQCAtMTY5LDEyICsxNjUsOSBAQCAtICh2b2lkKV91cGRhdGVCYWNrZ3JvdW5k
VGFzawogICAgICAgICBSQlNEb21haW5BdHRyaWJ1dGUgKmRvbWFpbkF0dHJpYnV0ZSA9IFtSQlNE
b21haW5BdHRyaWJ1dGUgYXR0cmlidXRlV2l0aERvbWFpbjpAImNvbS5hcHBsZS5jb21tb24iIG5h
bWU6QCJGaW5pc2hUYXNrSW50ZXJydXB0YWJsZSJdOwogICAgICAgICBfYmFja2dyb3VuZFRhc2sg
PSBhZG9wdE5TKFtbUkJTQXNzZXJ0aW9uIGFsbG9jXSBpbml0V2l0aEV4cGxhbmF0aW9uOkAiV2Vi
S2l0IFVJUHJvY2VzcyBiYWNrZ3JvdW5kIHRhc2siIHRhcmdldDp0YXJnZXQgYXR0cmlidXRlczpA
W2RvbWFpbkF0dHJpYnV0ZV1dKTsKICAgICAgICAgW19iYWNrZ3JvdW5kVGFzayBhZGRPYnNlcnZl
cjpzZWxmXTsKLQotICAgICAgICBOU0Vycm9yICphY3F1aXNpdGlvbkVycm9yID0gbmlsOwotICAg
ICAgICBpZiAoIVtfYmFja2dyb3VuZFRhc2sgYWNxdWlyZVdpdGhFcnJvcjomYWNxdWlzaXRpb25F
cnJvcl0pCi0gICAgICAgICAgICBSRUxFQVNFX0xPR19FUlJPUihQcm9jZXNzU3VzcGVuc2lvbiwg
IldLUHJvY2Vzc0Fzc2VydGlvbkJhY2tncm91bmRUYXNrTWFuYWdlcjogRmFpbGVkIHRvIGFjcXVp
cmUgRmluaXNoVGFza0ludGVycnVwdGFibGUgYXNzZXJ0aW9uIGZvciBvd24gcHJvY2VzcywgZXJy
b3I6ICV7cHVibGljfUAiLCBhY3F1aXNpdGlvbkVycm9yKTsKLSAgICAgICAgZWxzZQotICAgICAg
ICAgICAgUkVMRUFTRV9MT0coUHJvY2Vzc1N1c3BlbnNpb24sICJXS1Byb2Nlc3NBc3NlcnRpb25C
YWNrZ3JvdW5kVGFza01hbmFnZXI6IFN1Y2Nlc3NmdWxseSB0b29rIGEgRmluaXNoVGFza0ludGVy
cnVwdGFibGUgYXNzZXJ0aW9uIGZvciBvd24gcHJvY2VzcyIpOworICAgICAgICBtX2hhc1ZhbGlk
QmFja2dyb3VuZEFzc2VydGlvbiA9IHRydWU7CisgICAgICAgIFtfYmFja2dyb3VuZFRhc2sgYWNx
dWlyZVdpdGhJbnZhbGlkYXRpb25IYW5kbGVyOm5pbF07CisgICAgICAgIFJFTEVBU0VfTE9HKFBy
b2Nlc3NTdXNwZW5zaW9uLCAiV0tQcm9jZXNzQXNzZXJ0aW9uQmFja2dyb3VuZFRhc2tNYW5hZ2Vy
OiBUb29rIGEgRmluaXNoVGFza0ludGVycnVwdGFibGUgYXNzZXJ0aW9uIGZvciBvd24gcHJvY2Vz
cyIpOwogICAgIH0gZWxzZSBpZiAoX2Fzc2VydGlvbnNOZWVkaW5nQmFja2dyb3VuZFRhc2suY29t
cHV0ZXNFbXB0eSgpKSB7CiAgICAgICAgIC8vIFJlbGVhc2UgdGhlIGJhY2tncm91bmQgdGFzayBh
c3luY2hyb25vdXNseSBiZWNhdXNlIHJlbGVhc2luZyB0aGUgYmFja2dyb3VuZCB0YXNrIG1heSBk
ZXN0cm95IHRoZSBQcm9jZXNzVGhyb3R0bGVyIGFuZCB3ZSBkb24ndAogICAgICAgICAvLyB3YW50
IGl0IHRvIGdldCBkZXN0cm95ZWQgd2hpbGUgaW4gdGhlIG1pZGRsZSBvZiB1cGRhdGluZyBpdHMg
YXNzZXJ0aW9uLgpAQCAtMTk1LDYgKzE4OCw3IEBAIC0gKHZvaWQpYXNzZXJ0aW9uOihSQlNBc3Nl
cnRpb24gKilhc3NlcnRpb24gZGlkSW52YWxpZGF0ZVdpdGhFcnJvcjooTlNFcnJvciAqKWVyCiB7
CiAgICAgQVNTRVJUKGFzc2VydGlvbiA9PSBfYmFja2dyb3VuZFRhc2suZ2V0KCkpOwogICAgIFJF
TEVBU0VfTE9HX0VSUk9SKFByb2Nlc3NTdXNwZW5zaW9uLCAiV0tQcm9jZXNzQXNzZXJ0aW9uQmFj
a2dyb3VuZFRhc2tNYW5hZ2VyOiBGaW5pc2hUYXNrSW50ZXJydXB0YWJsZSBhc3NlcnRpb24gd2Fz
IGludmFsaWRhdGVkLCBlcnJvcjogJXtwdWJsaWN9QCIsIGVycm9yKTsKKyAgICBtX2hhc1ZhbGlk
QmFja2dyb3VuZEFzc2VydGlvbiA9IGZhbHNlOwogfQogCiAtICh2b2lkKV9oYW5kbGVCYWNrZ3Jv
dW5kVGFza0V4cGlyYXRpb24KQEAgLTIzMSw3ICsyMjUsNyBAQCAtICh2b2lkKV9oYW5kbGVCYWNr
Z3JvdW5kVGFza0V4cGlyYXRpb25Pbk1haW5UaHJlYWQKIAogLSAodm9pZClfcmVsZWFzZUJhY2tn
cm91bmRUYXNrCiB7Ci0gICAgaWYgKCFbc2VsZiBfaGFzQmFja2dyb3VuZFRhc2tdKQorICAgIGlm
ICghX2JhY2tncm91bmRUYXNrKQogICAgICAgICByZXR1cm47CiAKICAgICBSRUxFQVNFX0xPRyhQ
cm9jZXNzU3VzcGVuc2lvbiwgIiVwIC0gV0tQcm9jZXNzQXNzZXJ0aW9uQmFja2dyb3VuZFRhc2tN
YW5hZ2VyOiBlbmRCYWNrZ3JvdW5kVGFzayIsIHNlbGYpOwpAQCAtMjQ1LDM2ICsyMzksNiBAQCAt
ICh2b2lkKV9yZWxlYXNlQmFja2dyb3VuZFRhc2sKIAogQGVuZAogCi10eXBlZGVmIHZvaWQoXlJC
U0Fzc2VydGlvbkludmFsaWRhdGlvbkNhbGxiYWNrVHlwZSkoKTsKLQotQGludGVyZmFjZSBXS1JC
U0Fzc2VydGlvbkRlbGVnYXRlIDogTlNPYmplY3Q8UkJTQXNzZXJ0aW9uT2JzZXJ2aW5nPgotQHBy
b3BlcnR5IChjb3B5KSBSQlNBc3NlcnRpb25JbnZhbGlkYXRpb25DYWxsYmFja1R5cGUgaW52YWxp
ZGF0aW9uQ2FsbGJhY2s7Ci1AZW5kCi0KLUBpbXBsZW1lbnRhdGlvbiBXS1JCU0Fzc2VydGlvbkRl
bGVnYXRlCi0tICh2b2lkKWRlYWxsb2MKLXsKLSAgICBbX2ludmFsaWRhdGlvbkNhbGxiYWNrIHJl
bGVhc2VdOwotICAgIFtzdXBlciBkZWFsbG9jXTsKLX0KLQotLSAodm9pZClhc3NlcnRpb25XaWxs
SW52YWxpZGF0ZTooUkJTQXNzZXJ0aW9uICopYXNzZXJ0aW9uCi17Ci0gICAgUkVMRUFTRV9MT0co
UHJvY2Vzc1N1c3BlbnNpb24sICIlcCAtIFdLUkJTQXNzZXJ0aW9uRGVsZWdhdGU6IGFzc2VydGlv
bldpbGxJbnZhbGlkYXRlIiwgc2VsZik7Ci19Ci0KLS0gKHZvaWQpYXNzZXJ0aW9uOihSQlNBc3Nl
cnRpb24gKilhc3NlcnRpb24gZGlkSW52YWxpZGF0ZVdpdGhFcnJvcjooTlNFcnJvciAqKWVycm9y
Ci17Ci0gICAgUkVMRUFTRV9MT0coUHJvY2Vzc1N1c3BlbnNpb24sICIlcCAtIFdLUkJTQXNzZXJ0
aW9uRGVsZWdhdGU6IGFzc2VydGlvbiB3YXMgaW52YWxpZGF0ZWQsIGVycm9yOiAle3B1YmxpY31A
IiwgZXJyb3IsIHNlbGYpOwotCi0gICAgUnVuTG9vcDo6bWFpbigpLmRpc3BhdGNoKFt3ZWFrU2Vs
ZiA9IFdlYWtPYmpDUHRyPFdLUkJTQXNzZXJ0aW9uRGVsZWdhdGU+KHNlbGYpXSB7Ci0gICAgICAg
IGF1dG8gc3Ryb25nU2VsZiA9IHdlYWtTZWxmLmdldCgpOwotICAgICAgICBpZiAoc3Ryb25nU2Vs
ZiAmJiBzdHJvbmdTZWxmLmdldCgpLmludmFsaWRhdGlvbkNhbGxiYWNrKQotICAgICAgICAgICAg
c3Ryb25nU2VsZi5nZXQoKS5pbnZhbGlkYXRpb25DYWxsYmFjaygpOwotICAgIH0pOwotfQotQGVu
ZAotCiBuYW1lc3BhY2UgV2ViS2l0IHsKIAogc3RhdGljIE5TU3RyaW5nICpydW5uaW5nQm9hcmRO
YW1lRm9yQXNzZXJ0aW9uVHlwZShQcm9jZXNzQXNzZXJ0aW9uVHlwZSBhc3NlcnRpb25UeXBlKQpA
QCAtMzA0LDM4ICsyNjgsMjggQEAgUHJvY2Vzc0Fzc2VydGlvbjo6UHJvY2Vzc0Fzc2VydGlvbihw
aWRfdCBwaWQsIGNvbnN0IFN0cmluZyYgcmVhc29uLCBQcm9jZXNzQXNzZXIKICAgICAgICAgcmV0
dXJuOwogICAgIH0KIAorICAgIG1faXNWYWxpZCA9IHRydWU7CiAgICAgUkJTVGFyZ2V0ICp0YXJn
ZXQgPSBbUkJTVGFyZ2V0IHRhcmdldFdpdGhQaWQ6cGlkXTsKICAgICBSQlNEb21haW5BdHRyaWJ1
dGUgKmRvbWFpbkF0dHJpYnV0ZSA9IFtSQlNEb21haW5BdHRyaWJ1dGUgYXR0cmlidXRlV2l0aERv
bWFpbjpAImNvbS5hcHBsZS53ZWJraXQiIG5hbWU6cnVubmluZ0JvYXJkQXNzZXJ0aW9uTmFtZV07
CiAgICAgbV9yYnNBc3NlcnRpb24gPSBhZG9wdE5TKFtbUkJTQXNzZXJ0aW9uIGFsbG9jXSBpbml0
V2l0aEV4cGxhbmF0aW9uOnJlYXNvbiB0YXJnZXQ6dGFyZ2V0IGF0dHJpYnV0ZXM6QFtkb21haW5B
dHRyaWJ1dGVdXSk7Ci0KLSAgICBtX2RlbGVnYXRlID0gYWRvcHROUyhbW1dLUkJTQXNzZXJ0aW9u
RGVsZWdhdGUgYWxsb2NdIGluaXRdKTsKLSAgICBbbV9yYnNBc3NlcnRpb24gYWRkT2JzZXJ2ZXI6
bV9kZWxlZ2F0ZS5nZXQoKV07Ci0gICAgbV9kZWxlZ2F0ZS5nZXQoKS5pbnZhbGlkYXRpb25DYWxs
YmFjayA9IF57Ci0gICAgICAgIFJFTEVBU0VfTE9HKFByb2Nlc3NTdXNwZW5zaW9uLCAiJXAgLSBQ
cm9jZXNzQXNzZXJ0aW9uKCkgUkJTICV7cHVibGljfUAgYXNzZXJ0aW9uIGZvciBwcm9jZXNzIHdp
dGggUElEPSVkIHdhcyBpbnZhbGlkYXRlZCIsIHRoaXMsIHJ1bm5pbmdCb2FyZEFzc2VydGlvbk5h
bWUsIHBpZCk7Ci0gICAgICAgIHByb2Nlc3NBc3NlcnRpb25XYXNJbnZhbGlkYXRlZCgpOwotICAg
IH07Ci0KLSAgICBOU0Vycm9yICphY3F1aXNpdGlvbkVycm9yID0gbmlsOwotICAgIGlmICghW21f
cmJzQXNzZXJ0aW9uIGFjcXVpcmVXaXRoRXJyb3I6JmFjcXVpc2l0aW9uRXJyb3JdKSB7Ci0gICAg
ICAgIFJFTEVBU0VfTE9HX0VSUk9SKFByb2Nlc3NTdXNwZW5zaW9uLCAiJXAgLSBQcm9jZXNzQXNz
ZXJ0aW9uOiBGYWlsZWQgdG8gYWNxdWlyZSBSQlMgJXtwdWJsaWN9QCBhc3NlcnRpb24gJyV7cHVi
bGljfXMnIGZvciBwcm9jZXNzIHdpdGggUElEPSVkLCBlcnJvcjogJXtwdWJsaWN9QCIsIHRoaXMs
IHJ1bm5pbmdCb2FyZEFzc2VydGlvbk5hbWUsIHJlYXNvbi51dGY4KCkuZGF0YSgpLCBwaWQsIGFj
cXVpc2l0aW9uRXJyb3IpOwotICAgICAgICBSdW5Mb29wOjptYWluKCkuZGlzcGF0Y2goW3dlYWtU
aGlzID0gbWFrZVdlYWtQdHIoKnRoaXMpXSB7Ci0gICAgICAgICAgICBpZiAod2Vha1RoaXMpCi0g
ICAgICAgICAgICAgICAgd2Vha1RoaXMtPnByb2Nlc3NBc3NlcnRpb25XYXNJbnZhbGlkYXRlZCgp
OworICAgIFttX3Jic0Fzc2VydGlvbiBhY3F1aXJlV2l0aEludmFsaWRhdGlvbkhhbmRsZXI6W3dl
YWtUaGlzID0gbWFrZVdlYWtQdHIoKnRoaXMpLCBwaWQsIHJ1bm5pbmdCb2FyZEFzc2VydGlvbk5h
bWUgPSByZXRhaW5QdHIocnVubmluZ0JvYXJkQXNzZXJ0aW9uTmFtZSldKFJCU0Fzc2VydGlvbiAq
YXNzZXJ0aW9uLCBOU0Vycm9yICplcnJvcikgbXV0YWJsZSB7CisgICAgICAgIGNhbGxPbk1haW5S
dW5Mb29wKFt3ZWFrVGhpcyA9IFdURk1vdmUod2Vha1RoaXMpLCBwaWQsIHJ1bm5pbmdCb2FyZEFz
c2VydGlvbk5hbWUgPSBXVEZNb3ZlKHJ1bm5pbmdCb2FyZEFzc2VydGlvbk5hbWUpLCBlcnJvciA9
IHJldGFpblB0cihlcnJvcildIHsKKyAgICAgICAgICAgIGlmICghd2Vha1RoaXMpCisgICAgICAg
ICAgICAgICAgcmV0dXJuOworICAgICAgICAgICAgUkVMRUFTRV9MT0coUHJvY2Vzc1N1c3BlbnNp
b24sICIlcCAtIFByb2Nlc3NBc3NlcnRpb24oKSBSQlMgJXtwdWJsaWN9QCBhc3NlcnRpb24gZm9y
IHByb2Nlc3Mgd2l0aCBQSUQ9JWQgd2FzIGludmFsaWRhdGVkLCBlcnJvcjogJXtwdWJsaWN9QCIs
IHdlYWtUaGlzLmdldCgpLCBydW5uaW5nQm9hcmRBc3NlcnRpb25OYW1lLmdldCgpLCBwaWQsIGVy
cm9yLmdldCgpKTsKKyAgICAgICAgICAgIHdlYWtUaGlzLT5wcm9jZXNzQXNzZXJ0aW9uV2FzSW52
YWxpZGF0ZWQoKTsKICAgICAgICAgfSk7Ci0gICAgfSBlbHNlCi0gICAgICAgIFJFTEVBU0VfTE9H
KFByb2Nlc3NTdXNwZW5zaW9uLCAiJXAgLSBQcm9jZXNzQXNzZXJ0aW9uOiBTdWNjZXNzZnVsbHkg
dG9vayBSQlMgJXtwdWJsaWN9QCBhc3NlcnRpb24gJyV7cHVibGljfXMnIGZvciBwcm9jZXNzIHdp
dGggUElEPSVkIiwgdGhpcywgcnVubmluZ0JvYXJkQXNzZXJ0aW9uTmFtZSwgcmVhc29uLnV0Zjgo
KS5kYXRhKCksIHBpZCk7CisgICAgfV07CisKKyAgICBSRUxFQVNFX0xPRyhQcm9jZXNzU3VzcGVu
c2lvbiwgIiVwIC0gUHJvY2Vzc0Fzc2VydGlvbjogVG9vayBSQlMgJXtwdWJsaWN9QCBhc3NlcnRp
b24gJyV7cHVibGljfXMnIGZvciBwcm9jZXNzIHdpdGggUElEPSVkIiwgdGhpcywgcnVubmluZ0Jv
YXJkQXNzZXJ0aW9uTmFtZSwgcmVhc29uLnV0ZjgoKS5kYXRhKCksIHBpZCk7CiB9CiAKIFByb2Nl
c3NBc3NlcnRpb246On5Qcm9jZXNzQXNzZXJ0aW9uKCkKIHsKICAgICBSRUxFQVNFX0xPRyhQcm9j
ZXNzU3VzcGVuc2lvbiwgIiVwIC0gflByb2Nlc3NBc3NlcnRpb24oKSBSZWxlYXNpbmcgcHJvY2Vz
cyBhc3NlcnRpb24gZm9yIHByb2Nlc3Mgd2l0aCBQSUQ9JWQiLCB0aGlzLCBtX3BpZCk7CiAKLSAg
ICBpZiAobV9yYnNBc3NlcnRpb24pIHsKLSAgICAgICAgbV9kZWxlZ2F0ZS5nZXQoKS5pbnZhbGlk
YXRpb25DYWxsYmFjayA9IG5pbDsKLSAgICAgICAgW21fcmJzQXNzZXJ0aW9uIHJlbW92ZU9ic2Vy
dmVyOm1fZGVsZWdhdGUuZ2V0KCldOwotICAgICAgICBtX2RlbGVnYXRlID0gbmlsOworICAgIGlm
IChtX3Jic0Fzc2VydGlvbikKICAgICAgICAgW21fcmJzQXNzZXJ0aW9uIGludmFsaWRhdGVdOwot
ICAgIH0KIH0KIAogdm9pZCBQcm9jZXNzQXNzZXJ0aW9uOjpwcm9jZXNzQXNzZXJ0aW9uV2FzSW52
YWxpZGF0ZWQoKQpAQCAtMzQzLDE1ICsyOTcsMTEgQEAgdm9pZCBQcm9jZXNzQXNzZXJ0aW9uOjpw
cm9jZXNzQXNzZXJ0aW9uV2FzSW52YWxpZGF0ZWQoKQogICAgIEFTU0VSVChSdW5Mb29wOjppc01h
aW4oKSk7CiAgICAgUkVMRUFTRV9MT0coUHJvY2Vzc1N1c3BlbnNpb24sICIlcCAtIFByb2Nlc3NB
c3NlcnRpb246OnByb2Nlc3NBc3NlcnRpb25XYXNJbnZhbGlkYXRlZCgpIFBJRD0lZCIsIHRoaXMs
IG1fcGlkKTsKIAorICAgIG1faXNWYWxpZCA9IGZhbHNlOwogICAgIGlmIChtX2ludmFsaWRhdGlv
bkhhbmRsZXIpCiAgICAgICAgIG1faW52YWxpZGF0aW9uSGFuZGxlcigpOwogfQogCi1ib29sIFBy
b2Nlc3NBc3NlcnRpb246OmlzVmFsaWQoKSBjb25zdAotewotICAgIHJldHVybiBtX3Jic0Fzc2Vy
dGlvbiAmJiBtX3Jic0Fzc2VydGlvbi5nZXQoKS52YWxpZDsKLX0KLQogdm9pZCBQcm9jZXNzQW5k
VUlBc3NlcnRpb246OnVwZGF0ZVJ1bkluQmFja2dyb3VuZENvdW50KCkKIHsKICAgICBib29sIHNo
b3VsZEhvbGRCYWNrZ3JvdW5kVGFzayA9IGlzVmFsaWQoKSAmJiB0eXBlKCkgIT0gUHJvY2Vzc0Fz
c2VydGlvblR5cGU6OlN1c3BlbmRlZDsK
</data>
<flag name="commit-queue"
          id="448249"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>427593</attachid>
            <date>2021-05-03 13:31:14 -0700</date>
            <delta_ts>2021-05-03 13:48:41 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-225324-20210503133113.patch</filename>
            <type>text/plain</type>
            <size>13912</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc2OTIxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDhhNTE4MDE0ZGJkYWJhYTE1
ZjI5ODQxZDExODUyMzQ5ODY1MWIyNTUuLmI2M2FjZDA3ZGYyZTljMWU3MzdhNGUzYmViNmQ2NTgy
YmI2M2QxYzYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzkgQEAKKzIwMjEtMDUtMDMgIENocmlzIER1
bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KKworICAgICAgICBbaU9TXSBVc2UgYXN5bmMgQVBJIHRv
IHRha2UgUnVubmluZ0JvYXJkIGFzc2VydGlvbnMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTIyNTMyNAorICAgICAgICA8cmRhcjovLzc2OTcyMjUyPgor
CisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFVzZSBhc3lu
YyBbUkJTQXNzZXJ0aW9uIGFjcXVpcmVXaXRoSW52YWxpZGF0aW9uSGFuZGxlcjpdIEFQSSB0byB0
YWtlIHByb2Nlc3MgYXNzZXJ0aW9ucworICAgICAgICBpbnN0ZWFkIG9mIHRoZSBzeW5jaHJvbm91
cyBbUkJTQXNzZXJ0aW9uIGFjcXVpcmVXaXRoRXJyb3I6XSBBUEkuIFRoaXMgYXZvaWRzIHJpc2tp
bmcKKyAgICAgICAgaGFuZ2luZyB0aGUgbWFpbiB0aHJlYWQgZm9yIHRvbyBsb25nLgorCisgICAg
ICAgIE5vdGUgdGhhdCBbUkJTQXNzZXJ0aW9uIGlzVmFsaWRdIHJldHVybnMgZmFsc2UgdW50aWwg
dGhlIGFzc2VydGlvbiBpcyB0YWtlbiBzbyBJIGFtCisgICAgICAgIHVzaW5nIG91ciBvd24gImlz
VmFsaWQiIGJvb2xlYW4gdG8gaW5kaWNhdGUgaWYgdGhlIFJCU0Fzc2VydGlvbiB3YXMgaW52YWxp
ZGF0ZWQgb3IKKyAgICAgICAgb3Igbm90LiBXZSB1c2UgdGhpcyBmbGFnIHRvIGRlY2lkZSBpZiB3
ZSBuZWVkIHRvIHRha2UgdGhlIGFzc2VydGlvbiBhZ2Fpbi4gV2Ugd291bGRuJ3QKKyAgICAgICAg
d2FudCB0byByZS10YWtlIHRoZSBhc3NlcnRpb24gc2ltcGx5IGJlY2F1c2UgaXQgaXMgc3RpbGwg
aW4gdGhlIHByb2Nlc3Mgb2YgYmVpbmcKKyAgICAgICAgYWNxdWlyZWQuCisKKyAgICAgICAgKiBV
SVByb2Nlc3MvUHJvY2Vzc0Fzc2VydGlvbi5jcHA6CisgICAgICAgIChXZWJLaXQ6OlByb2Nlc3NB
c3NlcnRpb246OmlzVmFsaWQgY29uc3QpOiBEZWxldGVkLgorICAgICAgICAqIFVJUHJvY2Vzcy9Q
cm9jZXNzQXNzZXJ0aW9uLmg6CisgICAgICAgIChXZWJLaXQ6OlByb2Nlc3NBc3NlcnRpb246Omlz
VmFsaWQgY29uc3QpOgorICAgICAgICAqIFVJUHJvY2Vzcy9pb3MvUHJvY2Vzc0Fzc2VydGlvbklP
Uy5tbToKKyAgICAgICAgKC1bV0tQcm9jZXNzQXNzZXJ0aW9uQmFja2dyb3VuZFRhc2tNYW5hZ2Vy
IGluaXRdKToKKyAgICAgICAgKC1bV0tQcm9jZXNzQXNzZXJ0aW9uQmFja2dyb3VuZFRhc2tNYW5h
Z2VyIF91cGRhdGVCYWNrZ3JvdW5kVGFza10pOgorICAgICAgICAoLVtXS1Byb2Nlc3NBc3NlcnRp
b25CYWNrZ3JvdW5kVGFza01hbmFnZXIgYXNzZXJ0aW9uOmRpZEludmFsaWRhdGVXaXRoRXJyb3I6
XSk6CisgICAgICAgICgtW1dLUHJvY2Vzc0Fzc2VydGlvbkJhY2tncm91bmRUYXNrTWFuYWdlciBf
cmVsZWFzZUJhY2tncm91bmRUYXNrXSk6CisgICAgICAgIChXZWJLaXQ6OlByb2Nlc3NBc3NlcnRp
b246OlByb2Nlc3NBc3NlcnRpb24pOgorICAgICAgICAoV2ViS2l0OjpQcm9jZXNzQXNzZXJ0aW9u
Ojp+UHJvY2Vzc0Fzc2VydGlvbik6CisgICAgICAgIChXZWJLaXQ6OlByb2Nlc3NBc3NlcnRpb246
OnByb2Nlc3NBc3NlcnRpb25XYXNJbnZhbGlkYXRlZCk6CisgICAgICAgICgtW1dLUHJvY2Vzc0Fz
c2VydGlvbkJhY2tncm91bmRUYXNrTWFuYWdlciBfaGFzQmFja2dyb3VuZFRhc2tdKTogRGVsZXRl
ZC4KKyAgICAgICAgKC1bV0tSQlNBc3NlcnRpb25EZWxlZ2F0ZSBkZWFsbG9jXSk6IERlbGV0ZWQu
CisgICAgICAgICgtW1dLUkJTQXNzZXJ0aW9uRGVsZWdhdGUgYXNzZXJ0aW9uV2lsbEludmFsaWRh
dGU6XSk6IERlbGV0ZWQuCisgICAgICAgICgtW1dLUkJTQXNzZXJ0aW9uRGVsZWdhdGUgYXNzZXJ0
aW9uOmRpZEludmFsaWRhdGVXaXRoRXJyb3I6XSk6IERlbGV0ZWQuCisgICAgICAgIChXZWJLaXQ6
OlByb2Nlc3NBc3NlcnRpb246OmlzVmFsaWQgY29uc3QpOiBEZWxldGVkLgorCiAyMDIxLTA1LTAz
ICBBZGl0eWEgS2VlcnRoaSAgPGFrZWVydGhpQGFwcGxlLmNvbT4KIAogICAgICAgICBbaU9TXVtG
Q1JdIEdyb3VwZWQgPHNlbGVjdD4gb3B0aW9ucyBzaG91bGQgYXBwZWFyIGlubGluZSBpbiB0aGUg
bWVudQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9QbGF0Zm9ybS9zcGkvaW9zL1J1bm5pbmdC
b2FyZFNlcnZpY2VzU1BJLmggYi9Tb3VyY2UvV2ViS2l0L1BsYXRmb3JtL3NwaS9pb3MvUnVubmlu
Z0JvYXJkU2VydmljZXNTUEkuaAppbmRleCBkNTViNmM5MGMzMWJlNGJiYzA2M2RlNWU2YmFlMGM4
NTdlZGRhNDE5Li4yYjM5MTdjZmU5MWU2NWEyN2M4ZjU0NmUxMzA0ZTJhNWY1NGNmZDhlIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1BsYXRmb3JtL3NwaS9pb3MvUnVubmluZ0JvYXJkU2Vydmlj
ZXNTUEkuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1BsYXRmb3JtL3NwaS9pb3MvUnVubmluZ0JvYXJk
U2VydmljZXNTUEkuaApAQCAtNTUsMTEgKzU1LDE0IEBAIE5TX0FTU1VNRV9OT05OVUxMX0JFR0lO
CiArIChSQlNUYXJnZXQgKiljdXJyZW50UHJvY2VzczsKIEBlbmQKIAorQGNsYXNzIFJCU0Fzc2Vy
dGlvbjsKIEBwcm90b2NvbCBSQlNBc3NlcnRpb25PYnNlcnZpbmc7Cit0eXBlZGVmIHZvaWQgKF5S
QlNBc3NlcnRpb25JbnZhbGlkYXRpb25IYW5kbGVyKShSQlNBc3NlcnRpb24gKmFzc2VydGlvbiwg
TlNFcnJvciAqZXJyb3IpOwogCiBAaW50ZXJmYWNlIFJCU0Fzc2VydGlvbiA6IE5TT2JqZWN0CiAt
IChpbnN0YW5jZXR5cGUpaW5pdFdpdGhFeHBsYW5hdGlvbjooTlNTdHJpbmcgKilleHBsYW5hdGlv
biB0YXJnZXQ6KFJCU1RhcmdldCAqKXRhcmdldCBhdHRyaWJ1dGVzOihOU0FycmF5IDxSQlNBdHRy
aWJ1dGUgKj4gKilhdHRyaWJ1dGVzOwogLSAoQk9PTClhY3F1aXJlV2l0aEVycm9yOihOU0Vycm9y
ICoqKWVycm9yOworLSAodm9pZClhY3F1aXJlV2l0aEludmFsaWRhdGlvbkhhbmRsZXI6KFJCU0Fz
c2VydGlvbkludmFsaWRhdGlvbkhhbmRsZXIpaGFuZGxlcjsKIC0gKHZvaWQpaW52YWxpZGF0ZTsK
IC0gKHZvaWQpYWRkT2JzZXJ2ZXI6KGlkIDxSQlNBc3NlcnRpb25PYnNlcnZpbmc+KW9ic2VydmVy
OwogLSAodm9pZClyZW1vdmVPYnNlcnZlcjooaWQgPFJCU0Fzc2VydGlvbk9ic2VydmluZz4pb2Jz
ZXJ2ZXI7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Qcm9jZXNzQXNzZXJ0
aW9uLmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1Byb2Nlc3NBc3NlcnRpb24uY3BwCmlu
ZGV4IGZhOGUwMzcwMTFlMzY0OTBhZTc0Nzg5NmYwMjg1NzVlOGJhZGZhYjIuLjljZDRhZGEyN2U1
ZWY0ODczNjgyOTRmZWEwYjczNzk4ZjFkOTY2NTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL1Byb2Nlc3NBc3NlcnRpb24uY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL1Byb2Nlc3NBc3NlcnRpb24uY3BwCkBAIC0zNSwxNiArMzUsMTIgQEAgbmFtZXNwYWNlIFdl
YktpdCB7CiBQcm9jZXNzQXNzZXJ0aW9uOjpQcm9jZXNzQXNzZXJ0aW9uKFByb2Nlc3NJRCBwaWQs
IGNvbnN0IFN0cmluZyYsIFByb2Nlc3NBc3NlcnRpb25UeXBlIGFzc2VydGlvblR5cGUpCiAgICAg
OiBtX2Fzc2VydGlvblR5cGUoYXNzZXJ0aW9uVHlwZSkKICAgICAsIG1fcGlkKHBpZCkKKyAgICAs
IG1faXNWYWxpZCh0cnVlKQogewogfQogCiBQcm9jZXNzQXNzZXJ0aW9uOjp+UHJvY2Vzc0Fzc2Vy
dGlvbigpID0gZGVmYXVsdDsKIAotYm9vbCBQcm9jZXNzQXNzZXJ0aW9uOjppc1ZhbGlkKCkgY29u
c3QKLXsKLSAgICByZXR1cm4gdHJ1ZTsKLX0KLQogUHJvY2Vzc0FuZFVJQXNzZXJ0aW9uOjpQcm9j
ZXNzQW5kVUlBc3NlcnRpb24oUHJvY2Vzc0lEIHBpZCwgY29uc3QgU3RyaW5nJiByZWFzb24sIFBy
b2Nlc3NBc3NlcnRpb25UeXBlIGFzc2VydGlvblR5cGUpCiAgICAgOiBQcm9jZXNzQXNzZXJ0aW9u
KHBpZCwgcmVhc29uLCBhc3NlcnRpb25UeXBlKQogewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvUHJvY2Vzc0Fzc2VydGlvbi5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
UHJvY2Vzc0Fzc2VydGlvbi5oCmluZGV4IGViNzVjMmEyZTk1NTRmZDI1OWVmZWQyNzU1NzAyNmVl
OWNhMDQ2MDMuLjMzY2I4MzdjNDBiZGFjZTYwZWFjM2U0ZTgyN2FjNjYzMWE5MDI2MGIgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1Byb2Nlc3NBc3NlcnRpb24uaAorKysgYi9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Qcm9jZXNzQXNzZXJ0aW9uLmgKQEAgLTM4LDcgKzM4LDYg
QEAKICNpbmNsdWRlIDx3dGYvUmV0YWluUHRyLmg+CiAKIE9CSkNfQ0xBU1MgUkJTQXNzZXJ0aW9u
OwotT0JKQ19DTEFTUyBXS1JCU0Fzc2VydGlvbkRlbGVnYXRlOwogI2VuZGlmIC8vIFBMQVRGT1JN
KElPU19GQU1JTFkpCiAKIG5hbWVzcGFjZSBXZWJLaXQgewpAQCAtNjIsNyArNjEsNyBAQCBwdWJs
aWM6CiAgICAgUHJvY2Vzc0Fzc2VydGlvblR5cGUgdHlwZSgpIGNvbnN0IHsgcmV0dXJuIG1fYXNz
ZXJ0aW9uVHlwZTsgfQogICAgIFByb2Nlc3NJRCBwaWQoKSBjb25zdCB7IHJldHVybiBtX3BpZDsg
fQogCi0gICAgYm9vbCBpc1ZhbGlkKCkgY29uc3Q7CisgICAgYm9vbCBpc1ZhbGlkKCkgY29uc3Qg
eyByZXR1cm4gbV9pc1ZhbGlkOyB9CiAKICNpZiBQTEFURk9STShJT1NfRkFNSUxZKQogcHJvdGVj
dGVkOgpAQCAtNzQsOSArNzMsOSBAQCBwcml2YXRlOgogICAgIGNvbnN0IFByb2Nlc3NJRCBtX3Bp
ZDsKICNpZiBQTEFURk9STShJT1NfRkFNSUxZKQogICAgIFJldGFpblB0cjxSQlNBc3NlcnRpb24+
IG1fcmJzQXNzZXJ0aW9uOwotICAgIFJldGFpblB0cjxXS1JCU0Fzc2VydGlvbkRlbGVnYXRlPiBt
X2RlbGVnYXRlOwogI2VuZGlmCiAgICAgRnVuY3Rpb248dm9pZCgpPiBtX2ludmFsaWRhdGlvbkhh
bmRsZXI7CisgICAgYm9vbCBtX2lzVmFsaWQgeyBmYWxzZSB9OyAvLyBBc3N1bWUgdmFsaWQgd2hp
bGUgaW4gdGhlIHByb2Nlc3Mgb2YgYmVpbmcgYWNxdWlyZWQuCiB9OwogCiBjbGFzcyBQcm9jZXNz
QW5kVUlBc3NlcnRpb24gZmluYWwgOiBwdWJsaWMgUHJvY2Vzc0Fzc2VydGlvbiB7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvUHJvY2Vzc0Fzc2VydGlvbklPUy5tbSBi
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9Qcm9jZXNzQXNzZXJ0aW9uSU9TLm1tCmluZGV4
IGRmY2YyYjUwYmFkOWUzYzU4YzBmNTkyZjgwNjg0Nzg5MTk3MWY3MjMuLjIxNmVmYTViZjA4YjBj
NjI3ODdlYzYxMDRkZWRjZjVkM2FiNDE1NzEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL2lvcy9Qcm9jZXNzQXNzZXJ0aW9uSU9TLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL2lvcy9Qcm9jZXNzQXNzZXJ0aW9uSU9TLm1tCkBAIC02Myw2ICs2Myw3IEBAIEBlbmQK
IEBpbXBsZW1lbnRhdGlvbiBXS1Byb2Nlc3NBc3NlcnRpb25CYWNrZ3JvdW5kVGFza01hbmFnZXIK
IHsKICAgICBSZXRhaW5QdHI8UkJTQXNzZXJ0aW9uPiBfYmFja2dyb3VuZFRhc2s7CisgICAgc3Rk
OjphdG9taWM8Ym9vbD4gbV9oYXNWYWxpZEJhY2tncm91bmRBc3NlcnRpb247IC8vIEFzc3VtZSB2
YWxpZCB3aGlsZSBpbiB0aGUgcHJvY2VzcyBvZiBiZWluZyBhY3F1aXJlZC4KICAgICBXZWFrSGFz
aFNldDxQcm9jZXNzQW5kVUlBc3NlcnRpb24+IF9hc3NlcnRpb25zTmVlZGluZ0JhY2tncm91bmRU
YXNrOwogICAgIGRpc3BhdGNoX2Jsb2NrX3QgX3BlbmRpbmdUYXNrUmVsZWFzZVRhc2s7CiB9CkBA
IC04Nyw3ICs4OCw3IEBAIC0gKGluc3RhbmNldHlwZSlpbml0CiAgICAgfV07CiAKICAgICBbW05T
Tm90aWZpY2F0aW9uQ2VudGVyIGRlZmF1bHRDZW50ZXJdIGFkZE9ic2VydmVyRm9yTmFtZTpVSUFw
cGxpY2F0aW9uRGlkRW50ZXJCYWNrZ3JvdW5kTm90aWZpY2F0aW9uIG9iamVjdDpbVUlBcHBsaWNh
dGlvbiBzaGFyZWRBcHBsaWNhdGlvbl0gcXVldWU6bmlsIHVzaW5nQmxvY2s6XihOU05vdGlmaWNh
dGlvbiAqKSB7Ci0gICAgICAgIGlmICghW3NlbGYgX2hhc0JhY2tncm91bmRUYXNrXSkKKyAgICAg
ICAgaWYgKCFfYmFja2dyb3VuZFRhc2spCiAgICAgICAgICAgICBXZWJLaXQ6OldlYlByb2Nlc3NQ
b29sOjpub3RpZnlQcm9jZXNzUG9vbHNBcHBsaWNhdGlvbklzQWJvdXRUb1N1c3BlbmQoKTsKICAg
ICB9XTsKIApAQCAtMTUyLDE0ICsxNTMsOSBAQCAtICh2b2lkKV9jYW5jZWxQZW5kaW5nUmVsZWFz
ZVRhc2sKICAgICBfcGVuZGluZ1Rhc2tSZWxlYXNlVGFzayA9IG5pbDsKIH0KIAotLSAoQk9PTClf
aGFzQmFja2dyb3VuZFRhc2sKLXsKLSAgICByZXR1cm4gISFfYmFja2dyb3VuZFRhc2s7Ci19Ci0K
IC0gKHZvaWQpX3VwZGF0ZUJhY2tncm91bmRUYXNrCiB7Ci0gICAgaWYgKCFfYXNzZXJ0aW9uc05l
ZWRpbmdCYWNrZ3JvdW5kVGFzay5jb21wdXRlc0VtcHR5KCkgJiYgIVtzZWxmIF9oYXNCYWNrZ3Jv
dW5kVGFza10pIHsKKyAgICBpZiAoIV9hc3NlcnRpb25zTmVlZGluZ0JhY2tncm91bmRUYXNrLmNv
bXB1dGVzRW1wdHkoKSAmJiAhbV9oYXNWYWxpZEJhY2tncm91bmRBc3NlcnRpb24pIHsKICAgICAg
ICAgaWYgKHByb2Nlc3NIYXNBY3RpdmVSdW5UaW1lTGltaXRhdGlvbigpKSB7CiAgICAgICAgICAg
ICBSRUxFQVNFX0xPRyhQcm9jZXNzU3VzcGVuc2lvbiwgIiVwIC0gV0tQcm9jZXNzQXNzZXJ0aW9u
QmFja2dyb3VuZFRhc2tNYW5hZ2VyOiBJZ25vcmVkIHJlcXVlc3QgdG8gc3RhcnQgYSBuZXcgYmFj
a2dyb3VuZCB0YXNrIGJlY2F1c2UgUnVubmluZ0JvYXJkIGhhcyBhbHJlYWR5IHN0YXJ0ZWQgdGhl
IGV4cGlyYXRpb24gdGltZXIiLCBzZWxmKTsKICAgICAgICAgICAgIHJldHVybjsKQEAgLTE2OSwx
MiArMTY1LDkgQEAgLSAodm9pZClfdXBkYXRlQmFja2dyb3VuZFRhc2sKICAgICAgICAgUkJTRG9t
YWluQXR0cmlidXRlICpkb21haW5BdHRyaWJ1dGUgPSBbUkJTRG9tYWluQXR0cmlidXRlIGF0dHJp
YnV0ZVdpdGhEb21haW46QCJjb20uYXBwbGUuY29tbW9uIiBuYW1lOkAiRmluaXNoVGFza0ludGVy
cnVwdGFibGUiXTsKICAgICAgICAgX2JhY2tncm91bmRUYXNrID0gYWRvcHROUyhbW1JCU0Fzc2Vy
dGlvbiBhbGxvY10gaW5pdFdpdGhFeHBsYW5hdGlvbjpAIldlYktpdCBVSVByb2Nlc3MgYmFja2dy
b3VuZCB0YXNrIiB0YXJnZXQ6dGFyZ2V0IGF0dHJpYnV0ZXM6QFtkb21haW5BdHRyaWJ1dGVdXSk7
CiAgICAgICAgIFtfYmFja2dyb3VuZFRhc2sgYWRkT2JzZXJ2ZXI6c2VsZl07Ci0KLSAgICAgICAg
TlNFcnJvciAqYWNxdWlzaXRpb25FcnJvciA9IG5pbDsKLSAgICAgICAgaWYgKCFbX2JhY2tncm91
bmRUYXNrIGFjcXVpcmVXaXRoRXJyb3I6JmFjcXVpc2l0aW9uRXJyb3JdKQotICAgICAgICAgICAg
UkVMRUFTRV9MT0dfRVJST1IoUHJvY2Vzc1N1c3BlbnNpb24sICJXS1Byb2Nlc3NBc3NlcnRpb25C
YWNrZ3JvdW5kVGFza01hbmFnZXI6IEZhaWxlZCB0byBhY3F1aXJlIEZpbmlzaFRhc2tJbnRlcnJ1
cHRhYmxlIGFzc2VydGlvbiBmb3Igb3duIHByb2Nlc3MsIGVycm9yOiAle3B1YmxpY31AIiwgYWNx
dWlzaXRpb25FcnJvcik7Ci0gICAgICAgIGVsc2UKLSAgICAgICAgICAgIFJFTEVBU0VfTE9HKFBy
b2Nlc3NTdXNwZW5zaW9uLCAiV0tQcm9jZXNzQXNzZXJ0aW9uQmFja2dyb3VuZFRhc2tNYW5hZ2Vy
OiBTdWNjZXNzZnVsbHkgdG9vayBhIEZpbmlzaFRhc2tJbnRlcnJ1cHRhYmxlIGFzc2VydGlvbiBm
b3Igb3duIHByb2Nlc3MiKTsKKyAgICAgICAgbV9oYXNWYWxpZEJhY2tncm91bmRBc3NlcnRpb24g
PSB0cnVlOworICAgICAgICBbX2JhY2tncm91bmRUYXNrIGFjcXVpcmVXaXRoSW52YWxpZGF0aW9u
SGFuZGxlcjpuaWxdOworICAgICAgICBSRUxFQVNFX0xPRyhQcm9jZXNzU3VzcGVuc2lvbiwgIldL
UHJvY2Vzc0Fzc2VydGlvbkJhY2tncm91bmRUYXNrTWFuYWdlcjogVG9vayBhIEZpbmlzaFRhc2tJ
bnRlcnJ1cHRhYmxlIGFzc2VydGlvbiBmb3Igb3duIHByb2Nlc3MiKTsKICAgICB9IGVsc2UgaWYg
KF9hc3NlcnRpb25zTmVlZGluZ0JhY2tncm91bmRUYXNrLmNvbXB1dGVzRW1wdHkoKSkgewogICAg
ICAgICAvLyBSZWxlYXNlIHRoZSBiYWNrZ3JvdW5kIHRhc2sgYXN5bmNocm9ub3VzbHkgYmVjYXVz
ZSByZWxlYXNpbmcgdGhlIGJhY2tncm91bmQgdGFzayBtYXkgZGVzdHJveSB0aGUgUHJvY2Vzc1Ro
cm90dGxlciBhbmQgd2UgZG9uJ3QKICAgICAgICAgLy8gd2FudCBpdCB0byBnZXQgZGVzdHJveWVk
IHdoaWxlIGluIHRoZSBtaWRkbGUgb2YgdXBkYXRpbmcgaXRzIGFzc2VydGlvbi4KQEAgLTE5NSw2
ICsxODgsNyBAQCAtICh2b2lkKWFzc2VydGlvbjooUkJTQXNzZXJ0aW9uICopYXNzZXJ0aW9uIGRp
ZEludmFsaWRhdGVXaXRoRXJyb3I6KE5TRXJyb3IgKillcgogewogICAgIEFTU0VSVChhc3NlcnRp
b24gPT0gX2JhY2tncm91bmRUYXNrLmdldCgpKTsKICAgICBSRUxFQVNFX0xPR19FUlJPUihQcm9j
ZXNzU3VzcGVuc2lvbiwgIldLUHJvY2Vzc0Fzc2VydGlvbkJhY2tncm91bmRUYXNrTWFuYWdlcjog
RmluaXNoVGFza0ludGVycnVwdGFibGUgYXNzZXJ0aW9uIHdhcyBpbnZhbGlkYXRlZCwgZXJyb3I6
ICV7cHVibGljfUAiLCBlcnJvcik7CisgICAgbV9oYXNWYWxpZEJhY2tncm91bmRBc3NlcnRpb24g
PSBmYWxzZTsKIH0KIAogLSAodm9pZClfaGFuZGxlQmFja2dyb3VuZFRhc2tFeHBpcmF0aW9uCkBA
IC0yMzEsNyArMjI1LDcgQEAgLSAodm9pZClfaGFuZGxlQmFja2dyb3VuZFRhc2tFeHBpcmF0aW9u
T25NYWluVGhyZWFkCiAKIC0gKHZvaWQpX3JlbGVhc2VCYWNrZ3JvdW5kVGFzawogewotICAgIGlm
ICghW3NlbGYgX2hhc0JhY2tncm91bmRUYXNrXSkKKyAgICBpZiAoIV9iYWNrZ3JvdW5kVGFzaykK
ICAgICAgICAgcmV0dXJuOwogCiAgICAgUkVMRUFTRV9MT0coUHJvY2Vzc1N1c3BlbnNpb24sICIl
cCAtIFdLUHJvY2Vzc0Fzc2VydGlvbkJhY2tncm91bmRUYXNrTWFuYWdlcjogZW5kQmFja2dyb3Vu
ZFRhc2siLCBzZWxmKTsKQEAgLTI0NSwzNiArMjM5LDYgQEAgLSAodm9pZClfcmVsZWFzZUJhY2tn
cm91bmRUYXNrCiAKIEBlbmQKIAotdHlwZWRlZiB2b2lkKF5SQlNBc3NlcnRpb25JbnZhbGlkYXRp
b25DYWxsYmFja1R5cGUpKCk7Ci0KLUBpbnRlcmZhY2UgV0tSQlNBc3NlcnRpb25EZWxlZ2F0ZSA6
IE5TT2JqZWN0PFJCU0Fzc2VydGlvbk9ic2VydmluZz4KLUBwcm9wZXJ0eSAoY29weSkgUkJTQXNz
ZXJ0aW9uSW52YWxpZGF0aW9uQ2FsbGJhY2tUeXBlIGludmFsaWRhdGlvbkNhbGxiYWNrOwotQGVu
ZAotCi1AaW1wbGVtZW50YXRpb24gV0tSQlNBc3NlcnRpb25EZWxlZ2F0ZQotLSAodm9pZClkZWFs
bG9jCi17Ci0gICAgW19pbnZhbGlkYXRpb25DYWxsYmFjayByZWxlYXNlXTsKLSAgICBbc3VwZXIg
ZGVhbGxvY107Ci19Ci0KLS0gKHZvaWQpYXNzZXJ0aW9uV2lsbEludmFsaWRhdGU6KFJCU0Fzc2Vy
dGlvbiAqKWFzc2VydGlvbgotewotICAgIFJFTEVBU0VfTE9HKFByb2Nlc3NTdXNwZW5zaW9uLCAi
JXAgLSBXS1JCU0Fzc2VydGlvbkRlbGVnYXRlOiBhc3NlcnRpb25XaWxsSW52YWxpZGF0ZSIsIHNl
bGYpOwotfQotCi0tICh2b2lkKWFzc2VydGlvbjooUkJTQXNzZXJ0aW9uICopYXNzZXJ0aW9uIGRp
ZEludmFsaWRhdGVXaXRoRXJyb3I6KE5TRXJyb3IgKillcnJvcgotewotICAgIFJFTEVBU0VfTE9H
KFByb2Nlc3NTdXNwZW5zaW9uLCAiJXAgLSBXS1JCU0Fzc2VydGlvbkRlbGVnYXRlOiBhc3NlcnRp
b24gd2FzIGludmFsaWRhdGVkLCBlcnJvcjogJXtwdWJsaWN9QCIsIGVycm9yLCBzZWxmKTsKLQot
ICAgIFJ1bkxvb3A6Om1haW4oKS5kaXNwYXRjaChbd2Vha1NlbGYgPSBXZWFrT2JqQ1B0cjxXS1JC
U0Fzc2VydGlvbkRlbGVnYXRlPihzZWxmKV0gewotICAgICAgICBhdXRvIHN0cm9uZ1NlbGYgPSB3
ZWFrU2VsZi5nZXQoKTsKLSAgICAgICAgaWYgKHN0cm9uZ1NlbGYgJiYgc3Ryb25nU2VsZi5nZXQo
KS5pbnZhbGlkYXRpb25DYWxsYmFjaykKLSAgICAgICAgICAgIHN0cm9uZ1NlbGYuZ2V0KCkuaW52
YWxpZGF0aW9uQ2FsbGJhY2soKTsKLSAgICB9KTsKLX0KLUBlbmQKLQogbmFtZXNwYWNlIFdlYktp
dCB7CiAKIHN0YXRpYyBOU1N0cmluZyAqcnVubmluZ0JvYXJkTmFtZUZvckFzc2VydGlvblR5cGUo
UHJvY2Vzc0Fzc2VydGlvblR5cGUgYXNzZXJ0aW9uVHlwZSkKQEAgLTMwNCwzOCArMjY4LDI4IEBA
IFByb2Nlc3NBc3NlcnRpb246OlByb2Nlc3NBc3NlcnRpb24ocGlkX3QgcGlkLCBjb25zdCBTdHJp
bmcmIHJlYXNvbiwgUHJvY2Vzc0Fzc2VyCiAgICAgICAgIHJldHVybjsKICAgICB9CiAKKyAgICBt
X2lzVmFsaWQgPSB0cnVlOwogICAgIFJCU1RhcmdldCAqdGFyZ2V0ID0gW1JCU1RhcmdldCB0YXJn
ZXRXaXRoUGlkOnBpZF07CiAgICAgUkJTRG9tYWluQXR0cmlidXRlICpkb21haW5BdHRyaWJ1dGUg
PSBbUkJTRG9tYWluQXR0cmlidXRlIGF0dHJpYnV0ZVdpdGhEb21haW46QCJjb20uYXBwbGUud2Vi
a2l0IiBuYW1lOnJ1bm5pbmdCb2FyZEFzc2VydGlvbk5hbWVdOwogICAgIG1fcmJzQXNzZXJ0aW9u
ID0gYWRvcHROUyhbW1JCU0Fzc2VydGlvbiBhbGxvY10gaW5pdFdpdGhFeHBsYW5hdGlvbjpyZWFz
b24gdGFyZ2V0OnRhcmdldCBhdHRyaWJ1dGVzOkBbZG9tYWluQXR0cmlidXRlXV0pOwotCi0gICAg
bV9kZWxlZ2F0ZSA9IGFkb3B0TlMoW1tXS1JCU0Fzc2VydGlvbkRlbGVnYXRlIGFsbG9jXSBpbml0
XSk7Ci0gICAgW21fcmJzQXNzZXJ0aW9uIGFkZE9ic2VydmVyOm1fZGVsZWdhdGUuZ2V0KCldOwot
ICAgIG1fZGVsZWdhdGUuZ2V0KCkuaW52YWxpZGF0aW9uQ2FsbGJhY2sgPSBeewotICAgICAgICBS
RUxFQVNFX0xPRyhQcm9jZXNzU3VzcGVuc2lvbiwgIiVwIC0gUHJvY2Vzc0Fzc2VydGlvbigpIFJC
UyAle3B1YmxpY31AIGFzc2VydGlvbiBmb3IgcHJvY2VzcyB3aXRoIFBJRD0lZCB3YXMgaW52YWxp
ZGF0ZWQiLCB0aGlzLCBydW5uaW5nQm9hcmRBc3NlcnRpb25OYW1lLCBwaWQpOwotICAgICAgICBw
cm9jZXNzQXNzZXJ0aW9uV2FzSW52YWxpZGF0ZWQoKTsKLSAgICB9OwotCi0gICAgTlNFcnJvciAq
YWNxdWlzaXRpb25FcnJvciA9IG5pbDsKLSAgICBpZiAoIVttX3Jic0Fzc2VydGlvbiBhY3F1aXJl
V2l0aEVycm9yOiZhY3F1aXNpdGlvbkVycm9yXSkgewotICAgICAgICBSRUxFQVNFX0xPR19FUlJP
UihQcm9jZXNzU3VzcGVuc2lvbiwgIiVwIC0gUHJvY2Vzc0Fzc2VydGlvbjogRmFpbGVkIHRvIGFj
cXVpcmUgUkJTICV7cHVibGljfUAgYXNzZXJ0aW9uICcle3B1YmxpY31zJyBmb3IgcHJvY2VzcyB3
aXRoIFBJRD0lZCwgZXJyb3I6ICV7cHVibGljfUAiLCB0aGlzLCBydW5uaW5nQm9hcmRBc3NlcnRp
b25OYW1lLCByZWFzb24udXRmOCgpLmRhdGEoKSwgcGlkLCBhY3F1aXNpdGlvbkVycm9yKTsKLSAg
ICAgICAgUnVuTG9vcDo6bWFpbigpLmRpc3BhdGNoKFt3ZWFrVGhpcyA9IG1ha2VXZWFrUHRyKCp0
aGlzKV0gewotICAgICAgICAgICAgaWYgKHdlYWtUaGlzKQotICAgICAgICAgICAgICAgIHdlYWtU
aGlzLT5wcm9jZXNzQXNzZXJ0aW9uV2FzSW52YWxpZGF0ZWQoKTsKKyAgICBbbV9yYnNBc3NlcnRp
b24gYWNxdWlyZVdpdGhJbnZhbGlkYXRpb25IYW5kbGVyOlt3ZWFrVGhpcyA9IG1ha2VXZWFrUHRy
KCp0aGlzKSwgcGlkLCBydW5uaW5nQm9hcmRBc3NlcnRpb25OYW1lID0gcmV0YWluUHRyKHJ1bm5p
bmdCb2FyZEFzc2VydGlvbk5hbWUpXShSQlNBc3NlcnRpb24gKmFzc2VydGlvbiwgTlNFcnJvciAq
ZXJyb3IpIG11dGFibGUgeworICAgICAgICBjYWxsT25NYWluUnVuTG9vcChbd2Vha1RoaXMgPSBX
VEZNb3ZlKHdlYWtUaGlzKSwgcGlkLCBydW5uaW5nQm9hcmRBc3NlcnRpb25OYW1lID0gV1RGTW92
ZShydW5uaW5nQm9hcmRBc3NlcnRpb25OYW1lKSwgZXJyb3IgPSByZXRhaW5QdHIoZXJyb3IpXSB7
CisgICAgICAgICAgICBpZiAoIXdlYWtUaGlzKQorICAgICAgICAgICAgICAgIHJldHVybjsKKyAg
ICAgICAgICAgIFJFTEVBU0VfTE9HKFByb2Nlc3NTdXNwZW5zaW9uLCAiJXAgLSBQcm9jZXNzQXNz
ZXJ0aW9uKCkgUkJTICV7cHVibGljfUAgYXNzZXJ0aW9uIGZvciBwcm9jZXNzIHdpdGggUElEPSVk
IHdhcyBpbnZhbGlkYXRlZCwgZXJyb3I6ICV7cHVibGljfUAiLCB3ZWFrVGhpcy5nZXQoKSwgcnVu
bmluZ0JvYXJkQXNzZXJ0aW9uTmFtZS5nZXQoKSwgcGlkLCBlcnJvci5nZXQoKSk7CisgICAgICAg
ICAgICB3ZWFrVGhpcy0+cHJvY2Vzc0Fzc2VydGlvbldhc0ludmFsaWRhdGVkKCk7CiAgICAgICAg
IH0pOwotICAgIH0gZWxzZQotICAgICAgICBSRUxFQVNFX0xPRyhQcm9jZXNzU3VzcGVuc2lvbiwg
IiVwIC0gUHJvY2Vzc0Fzc2VydGlvbjogU3VjY2Vzc2Z1bGx5IHRvb2sgUkJTICV7cHVibGljfUAg
YXNzZXJ0aW9uICcle3B1YmxpY31zJyBmb3IgcHJvY2VzcyB3aXRoIFBJRD0lZCIsIHRoaXMsIHJ1
bm5pbmdCb2FyZEFzc2VydGlvbk5hbWUsIHJlYXNvbi51dGY4KCkuZGF0YSgpLCBwaWQpOworICAg
IH1dOworCisgICAgUkVMRUFTRV9MT0coUHJvY2Vzc1N1c3BlbnNpb24sICIlcCAtIFByb2Nlc3NB
c3NlcnRpb246IFRvb2sgUkJTICV7cHVibGljfUAgYXNzZXJ0aW9uICcle3B1YmxpY31zJyBmb3Ig
cHJvY2VzcyB3aXRoIFBJRD0lZCIsIHRoaXMsIHJ1bm5pbmdCb2FyZEFzc2VydGlvbk5hbWUsIHJl
YXNvbi51dGY4KCkuZGF0YSgpLCBwaWQpOwogfQogCiBQcm9jZXNzQXNzZXJ0aW9uOjp+UHJvY2Vz
c0Fzc2VydGlvbigpCiB7CiAgICAgUkVMRUFTRV9MT0coUHJvY2Vzc1N1c3BlbnNpb24sICIlcCAt
IH5Qcm9jZXNzQXNzZXJ0aW9uKCkgUmVsZWFzaW5nIHByb2Nlc3MgYXNzZXJ0aW9uIGZvciBwcm9j
ZXNzIHdpdGggUElEPSVkIiwgdGhpcywgbV9waWQpOwogCi0gICAgaWYgKG1fcmJzQXNzZXJ0aW9u
KSB7Ci0gICAgICAgIG1fZGVsZWdhdGUuZ2V0KCkuaW52YWxpZGF0aW9uQ2FsbGJhY2sgPSBuaWw7
Ci0gICAgICAgIFttX3Jic0Fzc2VydGlvbiByZW1vdmVPYnNlcnZlcjptX2RlbGVnYXRlLmdldCgp
XTsKLSAgICAgICAgbV9kZWxlZ2F0ZSA9IG5pbDsKKyAgICBpZiAobV9yYnNBc3NlcnRpb24pCiAg
ICAgICAgIFttX3Jic0Fzc2VydGlvbiBpbnZhbGlkYXRlXTsKLSAgICB9CiB9CiAKIHZvaWQgUHJv
Y2Vzc0Fzc2VydGlvbjo6cHJvY2Vzc0Fzc2VydGlvbldhc0ludmFsaWRhdGVkKCkKQEAgLTM0Mywx
NSArMjk3LDExIEBAIHZvaWQgUHJvY2Vzc0Fzc2VydGlvbjo6cHJvY2Vzc0Fzc2VydGlvbldhc0lu
dmFsaWRhdGVkKCkKICAgICBBU1NFUlQoUnVuTG9vcDo6aXNNYWluKCkpOwogICAgIFJFTEVBU0Vf
TE9HKFByb2Nlc3NTdXNwZW5zaW9uLCAiJXAgLSBQcm9jZXNzQXNzZXJ0aW9uOjpwcm9jZXNzQXNz
ZXJ0aW9uV2FzSW52YWxpZGF0ZWQoKSBQSUQ9JWQiLCB0aGlzLCBtX3BpZCk7CiAKKyAgICBtX2lz
VmFsaWQgPSBmYWxzZTsKICAgICBpZiAobV9pbnZhbGlkYXRpb25IYW5kbGVyKQogICAgICAgICBt
X2ludmFsaWRhdGlvbkhhbmRsZXIoKTsKIH0KIAotYm9vbCBQcm9jZXNzQXNzZXJ0aW9uOjppc1Zh
bGlkKCkgY29uc3QKLXsKLSAgICByZXR1cm4gbV9yYnNBc3NlcnRpb24gJiYgbV9yYnNBc3NlcnRp
b24uZ2V0KCkudmFsaWQ7Ci19Ci0KIHZvaWQgUHJvY2Vzc0FuZFVJQXNzZXJ0aW9uOjp1cGRhdGVS
dW5JbkJhY2tncm91bmRDb3VudCgpCiB7CiAgICAgYm9vbCBzaG91bGRIb2xkQmFja2dyb3VuZFRh
c2sgPSBpc1ZhbGlkKCkgJiYgdHlwZSgpICE9IFByb2Nlc3NBc3NlcnRpb25UeXBlOjpTdXNwZW5k
ZWQ7Cg==
</data>
<flag name="commit-queue"
          id="448252"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>427596</attachid>
            <date>2021-05-03 13:38:40 -0700</date>
            <delta_ts>2021-05-03 22:24:52 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-225324-20210503133839.patch</filename>
            <type>text/plain</type>
            <size>13921</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc2OTIyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDhhNTE4MDE0ZGJkYWJhYTE1
ZjI5ODQxZDExODUyMzQ5ODY1MWIyNTUuLmI2M2FjZDA3ZGYyZTljMWU3MzdhNGUzYmViNmQ2NTgy
YmI2M2QxYzYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzkgQEAKKzIwMjEtMDUtMDMgIENocmlzIER1
bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KKworICAgICAgICBbaU9TXSBVc2UgYXN5bmMgQVBJIHRv
IHRha2UgUnVubmluZ0JvYXJkIGFzc2VydGlvbnMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTIyNTMyNAorICAgICAgICA8cmRhcjovLzc2OTcyMjUyPgor
CisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFVzZSBhc3lu
YyBbUkJTQXNzZXJ0aW9uIGFjcXVpcmVXaXRoSW52YWxpZGF0aW9uSGFuZGxlcjpdIEFQSSB0byB0
YWtlIHByb2Nlc3MgYXNzZXJ0aW9ucworICAgICAgICBpbnN0ZWFkIG9mIHRoZSBzeW5jaHJvbm91
cyBbUkJTQXNzZXJ0aW9uIGFjcXVpcmVXaXRoRXJyb3I6XSBBUEkuIFRoaXMgYXZvaWRzIHJpc2tp
bmcKKyAgICAgICAgaGFuZ2luZyB0aGUgbWFpbiB0aHJlYWQgZm9yIHRvbyBsb25nLgorCisgICAg
ICAgIE5vdGUgdGhhdCBbUkJTQXNzZXJ0aW9uIGlzVmFsaWRdIHJldHVybnMgZmFsc2UgdW50aWwg
dGhlIGFzc2VydGlvbiBpcyB0YWtlbiBzbyBJIGFtCisgICAgICAgIHVzaW5nIG91ciBvd24gImlz
VmFsaWQiIGJvb2xlYW4gdG8gaW5kaWNhdGUgaWYgdGhlIFJCU0Fzc2VydGlvbiB3YXMgaW52YWxp
ZGF0ZWQgb3IKKyAgICAgICAgb3Igbm90LiBXZSB1c2UgdGhpcyBmbGFnIHRvIGRlY2lkZSBpZiB3
ZSBuZWVkIHRvIHRha2UgdGhlIGFzc2VydGlvbiBhZ2Fpbi4gV2Ugd291bGRuJ3QKKyAgICAgICAg
d2FudCB0byByZS10YWtlIHRoZSBhc3NlcnRpb24gc2ltcGx5IGJlY2F1c2UgaXQgaXMgc3RpbGwg
aW4gdGhlIHByb2Nlc3Mgb2YgYmVpbmcKKyAgICAgICAgYWNxdWlyZWQuCisKKyAgICAgICAgKiBV
SVByb2Nlc3MvUHJvY2Vzc0Fzc2VydGlvbi5jcHA6CisgICAgICAgIChXZWJLaXQ6OlByb2Nlc3NB
c3NlcnRpb246OmlzVmFsaWQgY29uc3QpOiBEZWxldGVkLgorICAgICAgICAqIFVJUHJvY2Vzcy9Q
cm9jZXNzQXNzZXJ0aW9uLmg6CisgICAgICAgIChXZWJLaXQ6OlByb2Nlc3NBc3NlcnRpb246Omlz
VmFsaWQgY29uc3QpOgorICAgICAgICAqIFVJUHJvY2Vzcy9pb3MvUHJvY2Vzc0Fzc2VydGlvbklP
Uy5tbToKKyAgICAgICAgKC1bV0tQcm9jZXNzQXNzZXJ0aW9uQmFja2dyb3VuZFRhc2tNYW5hZ2Vy
IGluaXRdKToKKyAgICAgICAgKC1bV0tQcm9jZXNzQXNzZXJ0aW9uQmFja2dyb3VuZFRhc2tNYW5h
Z2VyIF91cGRhdGVCYWNrZ3JvdW5kVGFza10pOgorICAgICAgICAoLVtXS1Byb2Nlc3NBc3NlcnRp
b25CYWNrZ3JvdW5kVGFza01hbmFnZXIgYXNzZXJ0aW9uOmRpZEludmFsaWRhdGVXaXRoRXJyb3I6
XSk6CisgICAgICAgICgtW1dLUHJvY2Vzc0Fzc2VydGlvbkJhY2tncm91bmRUYXNrTWFuYWdlciBf
cmVsZWFzZUJhY2tncm91bmRUYXNrXSk6CisgICAgICAgIChXZWJLaXQ6OlByb2Nlc3NBc3NlcnRp
b246OlByb2Nlc3NBc3NlcnRpb24pOgorICAgICAgICAoV2ViS2l0OjpQcm9jZXNzQXNzZXJ0aW9u
Ojp+UHJvY2Vzc0Fzc2VydGlvbik6CisgICAgICAgIChXZWJLaXQ6OlByb2Nlc3NBc3NlcnRpb246
OnByb2Nlc3NBc3NlcnRpb25XYXNJbnZhbGlkYXRlZCk6CisgICAgICAgICgtW1dLUHJvY2Vzc0Fz
c2VydGlvbkJhY2tncm91bmRUYXNrTWFuYWdlciBfaGFzQmFja2dyb3VuZFRhc2tdKTogRGVsZXRl
ZC4KKyAgICAgICAgKC1bV0tSQlNBc3NlcnRpb25EZWxlZ2F0ZSBkZWFsbG9jXSk6IERlbGV0ZWQu
CisgICAgICAgICgtW1dLUkJTQXNzZXJ0aW9uRGVsZWdhdGUgYXNzZXJ0aW9uV2lsbEludmFsaWRh
dGU6XSk6IERlbGV0ZWQuCisgICAgICAgICgtW1dLUkJTQXNzZXJ0aW9uRGVsZWdhdGUgYXNzZXJ0
aW9uOmRpZEludmFsaWRhdGVXaXRoRXJyb3I6XSk6IERlbGV0ZWQuCisgICAgICAgIChXZWJLaXQ6
OlByb2Nlc3NBc3NlcnRpb246OmlzVmFsaWQgY29uc3QpOiBEZWxldGVkLgorCiAyMDIxLTA1LTAz
ICBBZGl0eWEgS2VlcnRoaSAgPGFrZWVydGhpQGFwcGxlLmNvbT4KIAogICAgICAgICBbaU9TXVtG
Q1JdIEdyb3VwZWQgPHNlbGVjdD4gb3B0aW9ucyBzaG91bGQgYXBwZWFyIGlubGluZSBpbiB0aGUg
bWVudQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9QbGF0Zm9ybS9zcGkvaW9zL1J1bm5pbmdC
b2FyZFNlcnZpY2VzU1BJLmggYi9Tb3VyY2UvV2ViS2l0L1BsYXRmb3JtL3NwaS9pb3MvUnVubmlu
Z0JvYXJkU2VydmljZXNTUEkuaAppbmRleCBkNTViNmM5MGMzMWJlNGJiYzA2M2RlNWU2YmFlMGM4
NTdlZGRhNDE5Li40MjUxMzJmZTkwY2ZiZWMzNzZmMzY5MjE1ZjA0MzJjZjJiYTk4ODRkIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1BsYXRmb3JtL3NwaS9pb3MvUnVubmluZ0JvYXJkU2Vydmlj
ZXNTUEkuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1BsYXRmb3JtL3NwaS9pb3MvUnVubmluZ0JvYXJk
U2VydmljZXNTUEkuaApAQCAtNTUsMTEgKzU1LDE0IEBAIE5TX0FTU1VNRV9OT05OVUxMX0JFR0lO
CiArIChSQlNUYXJnZXQgKiljdXJyZW50UHJvY2VzczsKIEBlbmQKIAorQGNsYXNzIFJCU0Fzc2Vy
dGlvbjsKIEBwcm90b2NvbCBSQlNBc3NlcnRpb25PYnNlcnZpbmc7Cit0eXBlZGVmIHZvaWQgKF5S
QlNBc3NlcnRpb25JbnZhbGlkYXRpb25IYW5kbGVyKShSQlNBc3NlcnRpb24gKmFzc2VydGlvbiwg
TlNFcnJvciAqZXJyb3IpOwogCiBAaW50ZXJmYWNlIFJCU0Fzc2VydGlvbiA6IE5TT2JqZWN0CiAt
IChpbnN0YW5jZXR5cGUpaW5pdFdpdGhFeHBsYW5hdGlvbjooTlNTdHJpbmcgKilleHBsYW5hdGlv
biB0YXJnZXQ6KFJCU1RhcmdldCAqKXRhcmdldCBhdHRyaWJ1dGVzOihOU0FycmF5IDxSQlNBdHRy
aWJ1dGUgKj4gKilhdHRyaWJ1dGVzOwogLSAoQk9PTClhY3F1aXJlV2l0aEVycm9yOihOU0Vycm9y
ICoqKWVycm9yOworLSAodm9pZClhY3F1aXJlV2l0aEludmFsaWRhdGlvbkhhbmRsZXI6KG51bGxh
YmxlIFJCU0Fzc2VydGlvbkludmFsaWRhdGlvbkhhbmRsZXIpaGFuZGxlcjsKIC0gKHZvaWQpaW52
YWxpZGF0ZTsKIC0gKHZvaWQpYWRkT2JzZXJ2ZXI6KGlkIDxSQlNBc3NlcnRpb25PYnNlcnZpbmc+
KW9ic2VydmVyOwogLSAodm9pZClyZW1vdmVPYnNlcnZlcjooaWQgPFJCU0Fzc2VydGlvbk9ic2Vy
dmluZz4pb2JzZXJ2ZXI7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Qcm9j
ZXNzQXNzZXJ0aW9uLmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1Byb2Nlc3NBc3NlcnRp
b24uY3BwCmluZGV4IGZhOGUwMzcwMTFlMzY0OTBhZTc0Nzg5NmYwMjg1NzVlOGJhZGZhYjIuLjlj
ZDRhZGEyN2U1ZWY0ODczNjgyOTRmZWEwYjczNzk4ZjFkOTY2NTAgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL1Byb2Nlc3NBc3NlcnRpb24uY3BwCisrKyBiL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL1Byb2Nlc3NBc3NlcnRpb24uY3BwCkBAIC0zNSwxNiArMzUsMTIgQEAgbmFt
ZXNwYWNlIFdlYktpdCB7CiBQcm9jZXNzQXNzZXJ0aW9uOjpQcm9jZXNzQXNzZXJ0aW9uKFByb2Nl
c3NJRCBwaWQsIGNvbnN0IFN0cmluZyYsIFByb2Nlc3NBc3NlcnRpb25UeXBlIGFzc2VydGlvblR5
cGUpCiAgICAgOiBtX2Fzc2VydGlvblR5cGUoYXNzZXJ0aW9uVHlwZSkKICAgICAsIG1fcGlkKHBp
ZCkKKyAgICAsIG1faXNWYWxpZCh0cnVlKQogewogfQogCiBQcm9jZXNzQXNzZXJ0aW9uOjp+UHJv
Y2Vzc0Fzc2VydGlvbigpID0gZGVmYXVsdDsKIAotYm9vbCBQcm9jZXNzQXNzZXJ0aW9uOjppc1Zh
bGlkKCkgY29uc3QKLXsKLSAgICByZXR1cm4gdHJ1ZTsKLX0KLQogUHJvY2Vzc0FuZFVJQXNzZXJ0
aW9uOjpQcm9jZXNzQW5kVUlBc3NlcnRpb24oUHJvY2Vzc0lEIHBpZCwgY29uc3QgU3RyaW5nJiBy
ZWFzb24sIFByb2Nlc3NBc3NlcnRpb25UeXBlIGFzc2VydGlvblR5cGUpCiAgICAgOiBQcm9jZXNz
QXNzZXJ0aW9uKHBpZCwgcmVhc29uLCBhc3NlcnRpb25UeXBlKQogewpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvUHJvY2Vzc0Fzc2VydGlvbi5oIGIvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvUHJvY2Vzc0Fzc2VydGlvbi5oCmluZGV4IGViNzVjMmEyZTk1NTRmZDI1OWVmZWQy
NzU1NzAyNmVlOWNhMDQ2MDMuLjMzY2I4MzdjNDBiZGFjZTYwZWFjM2U0ZTgyN2FjNjYzMWE5MDI2
MGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1Byb2Nlc3NBc3NlcnRpb24u
aAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Qcm9jZXNzQXNzZXJ0aW9uLmgKQEAgLTM4
LDcgKzM4LDYgQEAKICNpbmNsdWRlIDx3dGYvUmV0YWluUHRyLmg+CiAKIE9CSkNfQ0xBU1MgUkJT
QXNzZXJ0aW9uOwotT0JKQ19DTEFTUyBXS1JCU0Fzc2VydGlvbkRlbGVnYXRlOwogI2VuZGlmIC8v
IFBMQVRGT1JNKElPU19GQU1JTFkpCiAKIG5hbWVzcGFjZSBXZWJLaXQgewpAQCAtNjIsNyArNjEs
NyBAQCBwdWJsaWM6CiAgICAgUHJvY2Vzc0Fzc2VydGlvblR5cGUgdHlwZSgpIGNvbnN0IHsgcmV0
dXJuIG1fYXNzZXJ0aW9uVHlwZTsgfQogICAgIFByb2Nlc3NJRCBwaWQoKSBjb25zdCB7IHJldHVy
biBtX3BpZDsgfQogCi0gICAgYm9vbCBpc1ZhbGlkKCkgY29uc3Q7CisgICAgYm9vbCBpc1ZhbGlk
KCkgY29uc3QgeyByZXR1cm4gbV9pc1ZhbGlkOyB9CiAKICNpZiBQTEFURk9STShJT1NfRkFNSUxZ
KQogcHJvdGVjdGVkOgpAQCAtNzQsOSArNzMsOSBAQCBwcml2YXRlOgogICAgIGNvbnN0IFByb2Nl
c3NJRCBtX3BpZDsKICNpZiBQTEFURk9STShJT1NfRkFNSUxZKQogICAgIFJldGFpblB0cjxSQlNB
c3NlcnRpb24+IG1fcmJzQXNzZXJ0aW9uOwotICAgIFJldGFpblB0cjxXS1JCU0Fzc2VydGlvbkRl
bGVnYXRlPiBtX2RlbGVnYXRlOwogI2VuZGlmCiAgICAgRnVuY3Rpb248dm9pZCgpPiBtX2ludmFs
aWRhdGlvbkhhbmRsZXI7CisgICAgYm9vbCBtX2lzVmFsaWQgeyBmYWxzZSB9OyAvLyBBc3N1bWUg
dmFsaWQgd2hpbGUgaW4gdGhlIHByb2Nlc3Mgb2YgYmVpbmcgYWNxdWlyZWQuCiB9OwogCiBjbGFz
cyBQcm9jZXNzQW5kVUlBc3NlcnRpb24gZmluYWwgOiBwdWJsaWMgUHJvY2Vzc0Fzc2VydGlvbiB7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvUHJvY2Vzc0Fzc2VydGlv
bklPUy5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9Qcm9jZXNzQXNzZXJ0aW9uSU9T
Lm1tCmluZGV4IGRmY2YyYjUwYmFkOWUzYzU4YzBmNTkyZjgwNjg0Nzg5MTk3MWY3MjMuLjIxNmVm
YTViZjA4YjBjNjI3ODdlYzYxMDRkZWRjZjVkM2FiNDE1NzEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL2lvcy9Qcm9jZXNzQXNzZXJ0aW9uSU9TLm1tCisrKyBiL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL2lvcy9Qcm9jZXNzQXNzZXJ0aW9uSU9TLm1tCkBAIC02Myw2ICs2Myw3
IEBAIEBlbmQKIEBpbXBsZW1lbnRhdGlvbiBXS1Byb2Nlc3NBc3NlcnRpb25CYWNrZ3JvdW5kVGFz
a01hbmFnZXIKIHsKICAgICBSZXRhaW5QdHI8UkJTQXNzZXJ0aW9uPiBfYmFja2dyb3VuZFRhc2s7
CisgICAgc3RkOjphdG9taWM8Ym9vbD4gbV9oYXNWYWxpZEJhY2tncm91bmRBc3NlcnRpb247IC8v
IEFzc3VtZSB2YWxpZCB3aGlsZSBpbiB0aGUgcHJvY2VzcyBvZiBiZWluZyBhY3F1aXJlZC4KICAg
ICBXZWFrSGFzaFNldDxQcm9jZXNzQW5kVUlBc3NlcnRpb24+IF9hc3NlcnRpb25zTmVlZGluZ0Jh
Y2tncm91bmRUYXNrOwogICAgIGRpc3BhdGNoX2Jsb2NrX3QgX3BlbmRpbmdUYXNrUmVsZWFzZVRh
c2s7CiB9CkBAIC04Nyw3ICs4OCw3IEBAIC0gKGluc3RhbmNldHlwZSlpbml0CiAgICAgfV07CiAK
ICAgICBbW05TTm90aWZpY2F0aW9uQ2VudGVyIGRlZmF1bHRDZW50ZXJdIGFkZE9ic2VydmVyRm9y
TmFtZTpVSUFwcGxpY2F0aW9uRGlkRW50ZXJCYWNrZ3JvdW5kTm90aWZpY2F0aW9uIG9iamVjdDpb
VUlBcHBsaWNhdGlvbiBzaGFyZWRBcHBsaWNhdGlvbl0gcXVldWU6bmlsIHVzaW5nQmxvY2s6XihO
U05vdGlmaWNhdGlvbiAqKSB7Ci0gICAgICAgIGlmICghW3NlbGYgX2hhc0JhY2tncm91bmRUYXNr
XSkKKyAgICAgICAgaWYgKCFfYmFja2dyb3VuZFRhc2spCiAgICAgICAgICAgICBXZWJLaXQ6Oldl
YlByb2Nlc3NQb29sOjpub3RpZnlQcm9jZXNzUG9vbHNBcHBsaWNhdGlvbklzQWJvdXRUb1N1c3Bl
bmQoKTsKICAgICB9XTsKIApAQCAtMTUyLDE0ICsxNTMsOSBAQCAtICh2b2lkKV9jYW5jZWxQZW5k
aW5nUmVsZWFzZVRhc2sKICAgICBfcGVuZGluZ1Rhc2tSZWxlYXNlVGFzayA9IG5pbDsKIH0KIAot
LSAoQk9PTClfaGFzQmFja2dyb3VuZFRhc2sKLXsKLSAgICByZXR1cm4gISFfYmFja2dyb3VuZFRh
c2s7Ci19Ci0KIC0gKHZvaWQpX3VwZGF0ZUJhY2tncm91bmRUYXNrCiB7Ci0gICAgaWYgKCFfYXNz
ZXJ0aW9uc05lZWRpbmdCYWNrZ3JvdW5kVGFzay5jb21wdXRlc0VtcHR5KCkgJiYgIVtzZWxmIF9o
YXNCYWNrZ3JvdW5kVGFza10pIHsKKyAgICBpZiAoIV9hc3NlcnRpb25zTmVlZGluZ0JhY2tncm91
bmRUYXNrLmNvbXB1dGVzRW1wdHkoKSAmJiAhbV9oYXNWYWxpZEJhY2tncm91bmRBc3NlcnRpb24p
IHsKICAgICAgICAgaWYgKHByb2Nlc3NIYXNBY3RpdmVSdW5UaW1lTGltaXRhdGlvbigpKSB7CiAg
ICAgICAgICAgICBSRUxFQVNFX0xPRyhQcm9jZXNzU3VzcGVuc2lvbiwgIiVwIC0gV0tQcm9jZXNz
QXNzZXJ0aW9uQmFja2dyb3VuZFRhc2tNYW5hZ2VyOiBJZ25vcmVkIHJlcXVlc3QgdG8gc3RhcnQg
YSBuZXcgYmFja2dyb3VuZCB0YXNrIGJlY2F1c2UgUnVubmluZ0JvYXJkIGhhcyBhbHJlYWR5IHN0
YXJ0ZWQgdGhlIGV4cGlyYXRpb24gdGltZXIiLCBzZWxmKTsKICAgICAgICAgICAgIHJldHVybjsK
QEAgLTE2OSwxMiArMTY1LDkgQEAgLSAodm9pZClfdXBkYXRlQmFja2dyb3VuZFRhc2sKICAgICAg
ICAgUkJTRG9tYWluQXR0cmlidXRlICpkb21haW5BdHRyaWJ1dGUgPSBbUkJTRG9tYWluQXR0cmli
dXRlIGF0dHJpYnV0ZVdpdGhEb21haW46QCJjb20uYXBwbGUuY29tbW9uIiBuYW1lOkAiRmluaXNo
VGFza0ludGVycnVwdGFibGUiXTsKICAgICAgICAgX2JhY2tncm91bmRUYXNrID0gYWRvcHROUyhb
W1JCU0Fzc2VydGlvbiBhbGxvY10gaW5pdFdpdGhFeHBsYW5hdGlvbjpAIldlYktpdCBVSVByb2Nl
c3MgYmFja2dyb3VuZCB0YXNrIiB0YXJnZXQ6dGFyZ2V0IGF0dHJpYnV0ZXM6QFtkb21haW5BdHRy
aWJ1dGVdXSk7CiAgICAgICAgIFtfYmFja2dyb3VuZFRhc2sgYWRkT2JzZXJ2ZXI6c2VsZl07Ci0K
LSAgICAgICAgTlNFcnJvciAqYWNxdWlzaXRpb25FcnJvciA9IG5pbDsKLSAgICAgICAgaWYgKCFb
X2JhY2tncm91bmRUYXNrIGFjcXVpcmVXaXRoRXJyb3I6JmFjcXVpc2l0aW9uRXJyb3JdKQotICAg
ICAgICAgICAgUkVMRUFTRV9MT0dfRVJST1IoUHJvY2Vzc1N1c3BlbnNpb24sICJXS1Byb2Nlc3NB
c3NlcnRpb25CYWNrZ3JvdW5kVGFza01hbmFnZXI6IEZhaWxlZCB0byBhY3F1aXJlIEZpbmlzaFRh
c2tJbnRlcnJ1cHRhYmxlIGFzc2VydGlvbiBmb3Igb3duIHByb2Nlc3MsIGVycm9yOiAle3B1Ymxp
Y31AIiwgYWNxdWlzaXRpb25FcnJvcik7Ci0gICAgICAgIGVsc2UKLSAgICAgICAgICAgIFJFTEVB
U0VfTE9HKFByb2Nlc3NTdXNwZW5zaW9uLCAiV0tQcm9jZXNzQXNzZXJ0aW9uQmFja2dyb3VuZFRh
c2tNYW5hZ2VyOiBTdWNjZXNzZnVsbHkgdG9vayBhIEZpbmlzaFRhc2tJbnRlcnJ1cHRhYmxlIGFz
c2VydGlvbiBmb3Igb3duIHByb2Nlc3MiKTsKKyAgICAgICAgbV9oYXNWYWxpZEJhY2tncm91bmRB
c3NlcnRpb24gPSB0cnVlOworICAgICAgICBbX2JhY2tncm91bmRUYXNrIGFjcXVpcmVXaXRoSW52
YWxpZGF0aW9uSGFuZGxlcjpuaWxdOworICAgICAgICBSRUxFQVNFX0xPRyhQcm9jZXNzU3VzcGVu
c2lvbiwgIldLUHJvY2Vzc0Fzc2VydGlvbkJhY2tncm91bmRUYXNrTWFuYWdlcjogVG9vayBhIEZp
bmlzaFRhc2tJbnRlcnJ1cHRhYmxlIGFzc2VydGlvbiBmb3Igb3duIHByb2Nlc3MiKTsKICAgICB9
IGVsc2UgaWYgKF9hc3NlcnRpb25zTmVlZGluZ0JhY2tncm91bmRUYXNrLmNvbXB1dGVzRW1wdHko
KSkgewogICAgICAgICAvLyBSZWxlYXNlIHRoZSBiYWNrZ3JvdW5kIHRhc2sgYXN5bmNocm9ub3Vz
bHkgYmVjYXVzZSByZWxlYXNpbmcgdGhlIGJhY2tncm91bmQgdGFzayBtYXkgZGVzdHJveSB0aGUg
UHJvY2Vzc1Rocm90dGxlciBhbmQgd2UgZG9uJ3QKICAgICAgICAgLy8gd2FudCBpdCB0byBnZXQg
ZGVzdHJveWVkIHdoaWxlIGluIHRoZSBtaWRkbGUgb2YgdXBkYXRpbmcgaXRzIGFzc2VydGlvbi4K
QEAgLTE5NSw2ICsxODgsNyBAQCAtICh2b2lkKWFzc2VydGlvbjooUkJTQXNzZXJ0aW9uICopYXNz
ZXJ0aW9uIGRpZEludmFsaWRhdGVXaXRoRXJyb3I6KE5TRXJyb3IgKillcgogewogICAgIEFTU0VS
VChhc3NlcnRpb24gPT0gX2JhY2tncm91bmRUYXNrLmdldCgpKTsKICAgICBSRUxFQVNFX0xPR19F
UlJPUihQcm9jZXNzU3VzcGVuc2lvbiwgIldLUHJvY2Vzc0Fzc2VydGlvbkJhY2tncm91bmRUYXNr
TWFuYWdlcjogRmluaXNoVGFza0ludGVycnVwdGFibGUgYXNzZXJ0aW9uIHdhcyBpbnZhbGlkYXRl
ZCwgZXJyb3I6ICV7cHVibGljfUAiLCBlcnJvcik7CisgICAgbV9oYXNWYWxpZEJhY2tncm91bmRB
c3NlcnRpb24gPSBmYWxzZTsKIH0KIAogLSAodm9pZClfaGFuZGxlQmFja2dyb3VuZFRhc2tFeHBp
cmF0aW9uCkBAIC0yMzEsNyArMjI1LDcgQEAgLSAodm9pZClfaGFuZGxlQmFja2dyb3VuZFRhc2tF
eHBpcmF0aW9uT25NYWluVGhyZWFkCiAKIC0gKHZvaWQpX3JlbGVhc2VCYWNrZ3JvdW5kVGFzawog
ewotICAgIGlmICghW3NlbGYgX2hhc0JhY2tncm91bmRUYXNrXSkKKyAgICBpZiAoIV9iYWNrZ3Jv
dW5kVGFzaykKICAgICAgICAgcmV0dXJuOwogCiAgICAgUkVMRUFTRV9MT0coUHJvY2Vzc1N1c3Bl
bnNpb24sICIlcCAtIFdLUHJvY2Vzc0Fzc2VydGlvbkJhY2tncm91bmRUYXNrTWFuYWdlcjogZW5k
QmFja2dyb3VuZFRhc2siLCBzZWxmKTsKQEAgLTI0NSwzNiArMjM5LDYgQEAgLSAodm9pZClfcmVs
ZWFzZUJhY2tncm91bmRUYXNrCiAKIEBlbmQKIAotdHlwZWRlZiB2b2lkKF5SQlNBc3NlcnRpb25J
bnZhbGlkYXRpb25DYWxsYmFja1R5cGUpKCk7Ci0KLUBpbnRlcmZhY2UgV0tSQlNBc3NlcnRpb25E
ZWxlZ2F0ZSA6IE5TT2JqZWN0PFJCU0Fzc2VydGlvbk9ic2VydmluZz4KLUBwcm9wZXJ0eSAoY29w
eSkgUkJTQXNzZXJ0aW9uSW52YWxpZGF0aW9uQ2FsbGJhY2tUeXBlIGludmFsaWRhdGlvbkNhbGxi
YWNrOwotQGVuZAotCi1AaW1wbGVtZW50YXRpb24gV0tSQlNBc3NlcnRpb25EZWxlZ2F0ZQotLSAo
dm9pZClkZWFsbG9jCi17Ci0gICAgW19pbnZhbGlkYXRpb25DYWxsYmFjayByZWxlYXNlXTsKLSAg
ICBbc3VwZXIgZGVhbGxvY107Ci19Ci0KLS0gKHZvaWQpYXNzZXJ0aW9uV2lsbEludmFsaWRhdGU6
KFJCU0Fzc2VydGlvbiAqKWFzc2VydGlvbgotewotICAgIFJFTEVBU0VfTE9HKFByb2Nlc3NTdXNw
ZW5zaW9uLCAiJXAgLSBXS1JCU0Fzc2VydGlvbkRlbGVnYXRlOiBhc3NlcnRpb25XaWxsSW52YWxp
ZGF0ZSIsIHNlbGYpOwotfQotCi0tICh2b2lkKWFzc2VydGlvbjooUkJTQXNzZXJ0aW9uICopYXNz
ZXJ0aW9uIGRpZEludmFsaWRhdGVXaXRoRXJyb3I6KE5TRXJyb3IgKillcnJvcgotewotICAgIFJF
TEVBU0VfTE9HKFByb2Nlc3NTdXNwZW5zaW9uLCAiJXAgLSBXS1JCU0Fzc2VydGlvbkRlbGVnYXRl
OiBhc3NlcnRpb24gd2FzIGludmFsaWRhdGVkLCBlcnJvcjogJXtwdWJsaWN9QCIsIGVycm9yLCBz
ZWxmKTsKLQotICAgIFJ1bkxvb3A6Om1haW4oKS5kaXNwYXRjaChbd2Vha1NlbGYgPSBXZWFrT2Jq
Q1B0cjxXS1JCU0Fzc2VydGlvbkRlbGVnYXRlPihzZWxmKV0gewotICAgICAgICBhdXRvIHN0cm9u
Z1NlbGYgPSB3ZWFrU2VsZi5nZXQoKTsKLSAgICAgICAgaWYgKHN0cm9uZ1NlbGYgJiYgc3Ryb25n
U2VsZi5nZXQoKS5pbnZhbGlkYXRpb25DYWxsYmFjaykKLSAgICAgICAgICAgIHN0cm9uZ1NlbGYu
Z2V0KCkuaW52YWxpZGF0aW9uQ2FsbGJhY2soKTsKLSAgICB9KTsKLX0KLUBlbmQKLQogbmFtZXNw
YWNlIFdlYktpdCB7CiAKIHN0YXRpYyBOU1N0cmluZyAqcnVubmluZ0JvYXJkTmFtZUZvckFzc2Vy
dGlvblR5cGUoUHJvY2Vzc0Fzc2VydGlvblR5cGUgYXNzZXJ0aW9uVHlwZSkKQEAgLTMwNCwzOCAr
MjY4LDI4IEBAIFByb2Nlc3NBc3NlcnRpb246OlByb2Nlc3NBc3NlcnRpb24ocGlkX3QgcGlkLCBj
b25zdCBTdHJpbmcmIHJlYXNvbiwgUHJvY2Vzc0Fzc2VyCiAgICAgICAgIHJldHVybjsKICAgICB9
CiAKKyAgICBtX2lzVmFsaWQgPSB0cnVlOwogICAgIFJCU1RhcmdldCAqdGFyZ2V0ID0gW1JCU1Rh
cmdldCB0YXJnZXRXaXRoUGlkOnBpZF07CiAgICAgUkJTRG9tYWluQXR0cmlidXRlICpkb21haW5B
dHRyaWJ1dGUgPSBbUkJTRG9tYWluQXR0cmlidXRlIGF0dHJpYnV0ZVdpdGhEb21haW46QCJjb20u
YXBwbGUud2Via2l0IiBuYW1lOnJ1bm5pbmdCb2FyZEFzc2VydGlvbk5hbWVdOwogICAgIG1fcmJz
QXNzZXJ0aW9uID0gYWRvcHROUyhbW1JCU0Fzc2VydGlvbiBhbGxvY10gaW5pdFdpdGhFeHBsYW5h
dGlvbjpyZWFzb24gdGFyZ2V0OnRhcmdldCBhdHRyaWJ1dGVzOkBbZG9tYWluQXR0cmlidXRlXV0p
OwotCi0gICAgbV9kZWxlZ2F0ZSA9IGFkb3B0TlMoW1tXS1JCU0Fzc2VydGlvbkRlbGVnYXRlIGFs
bG9jXSBpbml0XSk7Ci0gICAgW21fcmJzQXNzZXJ0aW9uIGFkZE9ic2VydmVyOm1fZGVsZWdhdGUu
Z2V0KCldOwotICAgIG1fZGVsZWdhdGUuZ2V0KCkuaW52YWxpZGF0aW9uQ2FsbGJhY2sgPSBeewot
ICAgICAgICBSRUxFQVNFX0xPRyhQcm9jZXNzU3VzcGVuc2lvbiwgIiVwIC0gUHJvY2Vzc0Fzc2Vy
dGlvbigpIFJCUyAle3B1YmxpY31AIGFzc2VydGlvbiBmb3IgcHJvY2VzcyB3aXRoIFBJRD0lZCB3
YXMgaW52YWxpZGF0ZWQiLCB0aGlzLCBydW5uaW5nQm9hcmRBc3NlcnRpb25OYW1lLCBwaWQpOwot
ICAgICAgICBwcm9jZXNzQXNzZXJ0aW9uV2FzSW52YWxpZGF0ZWQoKTsKLSAgICB9OwotCi0gICAg
TlNFcnJvciAqYWNxdWlzaXRpb25FcnJvciA9IG5pbDsKLSAgICBpZiAoIVttX3Jic0Fzc2VydGlv
biBhY3F1aXJlV2l0aEVycm9yOiZhY3F1aXNpdGlvbkVycm9yXSkgewotICAgICAgICBSRUxFQVNF
X0xPR19FUlJPUihQcm9jZXNzU3VzcGVuc2lvbiwgIiVwIC0gUHJvY2Vzc0Fzc2VydGlvbjogRmFp
bGVkIHRvIGFjcXVpcmUgUkJTICV7cHVibGljfUAgYXNzZXJ0aW9uICcle3B1YmxpY31zJyBmb3Ig
cHJvY2VzcyB3aXRoIFBJRD0lZCwgZXJyb3I6ICV7cHVibGljfUAiLCB0aGlzLCBydW5uaW5nQm9h
cmRBc3NlcnRpb25OYW1lLCByZWFzb24udXRmOCgpLmRhdGEoKSwgcGlkLCBhY3F1aXNpdGlvbkVy
cm9yKTsKLSAgICAgICAgUnVuTG9vcDo6bWFpbigpLmRpc3BhdGNoKFt3ZWFrVGhpcyA9IG1ha2VX
ZWFrUHRyKCp0aGlzKV0gewotICAgICAgICAgICAgaWYgKHdlYWtUaGlzKQotICAgICAgICAgICAg
ICAgIHdlYWtUaGlzLT5wcm9jZXNzQXNzZXJ0aW9uV2FzSW52YWxpZGF0ZWQoKTsKKyAgICBbbV9y
YnNBc3NlcnRpb24gYWNxdWlyZVdpdGhJbnZhbGlkYXRpb25IYW5kbGVyOlt3ZWFrVGhpcyA9IG1h
a2VXZWFrUHRyKCp0aGlzKSwgcGlkLCBydW5uaW5nQm9hcmRBc3NlcnRpb25OYW1lID0gcmV0YWlu
UHRyKHJ1bm5pbmdCb2FyZEFzc2VydGlvbk5hbWUpXShSQlNBc3NlcnRpb24gKmFzc2VydGlvbiwg
TlNFcnJvciAqZXJyb3IpIG11dGFibGUgeworICAgICAgICBjYWxsT25NYWluUnVuTG9vcChbd2Vh
a1RoaXMgPSBXVEZNb3ZlKHdlYWtUaGlzKSwgcGlkLCBydW5uaW5nQm9hcmRBc3NlcnRpb25OYW1l
ID0gV1RGTW92ZShydW5uaW5nQm9hcmRBc3NlcnRpb25OYW1lKSwgZXJyb3IgPSByZXRhaW5QdHIo
ZXJyb3IpXSB7CisgICAgICAgICAgICBpZiAoIXdlYWtUaGlzKQorICAgICAgICAgICAgICAgIHJl
dHVybjsKKyAgICAgICAgICAgIFJFTEVBU0VfTE9HKFByb2Nlc3NTdXNwZW5zaW9uLCAiJXAgLSBQ
cm9jZXNzQXNzZXJ0aW9uKCkgUkJTICV7cHVibGljfUAgYXNzZXJ0aW9uIGZvciBwcm9jZXNzIHdp
dGggUElEPSVkIHdhcyBpbnZhbGlkYXRlZCwgZXJyb3I6ICV7cHVibGljfUAiLCB3ZWFrVGhpcy5n
ZXQoKSwgcnVubmluZ0JvYXJkQXNzZXJ0aW9uTmFtZS5nZXQoKSwgcGlkLCBlcnJvci5nZXQoKSk7
CisgICAgICAgICAgICB3ZWFrVGhpcy0+cHJvY2Vzc0Fzc2VydGlvbldhc0ludmFsaWRhdGVkKCk7
CiAgICAgICAgIH0pOwotICAgIH0gZWxzZQotICAgICAgICBSRUxFQVNFX0xPRyhQcm9jZXNzU3Vz
cGVuc2lvbiwgIiVwIC0gUHJvY2Vzc0Fzc2VydGlvbjogU3VjY2Vzc2Z1bGx5IHRvb2sgUkJTICV7
cHVibGljfUAgYXNzZXJ0aW9uICcle3B1YmxpY31zJyBmb3IgcHJvY2VzcyB3aXRoIFBJRD0lZCIs
IHRoaXMsIHJ1bm5pbmdCb2FyZEFzc2VydGlvbk5hbWUsIHJlYXNvbi51dGY4KCkuZGF0YSgpLCBw
aWQpOworICAgIH1dOworCisgICAgUkVMRUFTRV9MT0coUHJvY2Vzc1N1c3BlbnNpb24sICIlcCAt
IFByb2Nlc3NBc3NlcnRpb246IFRvb2sgUkJTICV7cHVibGljfUAgYXNzZXJ0aW9uICcle3B1Ymxp
Y31zJyBmb3IgcHJvY2VzcyB3aXRoIFBJRD0lZCIsIHRoaXMsIHJ1bm5pbmdCb2FyZEFzc2VydGlv
bk5hbWUsIHJlYXNvbi51dGY4KCkuZGF0YSgpLCBwaWQpOwogfQogCiBQcm9jZXNzQXNzZXJ0aW9u
Ojp+UHJvY2Vzc0Fzc2VydGlvbigpCiB7CiAgICAgUkVMRUFTRV9MT0coUHJvY2Vzc1N1c3BlbnNp
b24sICIlcCAtIH5Qcm9jZXNzQXNzZXJ0aW9uKCkgUmVsZWFzaW5nIHByb2Nlc3MgYXNzZXJ0aW9u
IGZvciBwcm9jZXNzIHdpdGggUElEPSVkIiwgdGhpcywgbV9waWQpOwogCi0gICAgaWYgKG1fcmJz
QXNzZXJ0aW9uKSB7Ci0gICAgICAgIG1fZGVsZWdhdGUuZ2V0KCkuaW52YWxpZGF0aW9uQ2FsbGJh
Y2sgPSBuaWw7Ci0gICAgICAgIFttX3Jic0Fzc2VydGlvbiByZW1vdmVPYnNlcnZlcjptX2RlbGVn
YXRlLmdldCgpXTsKLSAgICAgICAgbV9kZWxlZ2F0ZSA9IG5pbDsKKyAgICBpZiAobV9yYnNBc3Nl
cnRpb24pCiAgICAgICAgIFttX3Jic0Fzc2VydGlvbiBpbnZhbGlkYXRlXTsKLSAgICB9CiB9CiAK
IHZvaWQgUHJvY2Vzc0Fzc2VydGlvbjo6cHJvY2Vzc0Fzc2VydGlvbldhc0ludmFsaWRhdGVkKCkK
QEAgLTM0MywxNSArMjk3LDExIEBAIHZvaWQgUHJvY2Vzc0Fzc2VydGlvbjo6cHJvY2Vzc0Fzc2Vy
dGlvbldhc0ludmFsaWRhdGVkKCkKICAgICBBU1NFUlQoUnVuTG9vcDo6aXNNYWluKCkpOwogICAg
IFJFTEVBU0VfTE9HKFByb2Nlc3NTdXNwZW5zaW9uLCAiJXAgLSBQcm9jZXNzQXNzZXJ0aW9uOjpw
cm9jZXNzQXNzZXJ0aW9uV2FzSW52YWxpZGF0ZWQoKSBQSUQ9JWQiLCB0aGlzLCBtX3BpZCk7CiAK
KyAgICBtX2lzVmFsaWQgPSBmYWxzZTsKICAgICBpZiAobV9pbnZhbGlkYXRpb25IYW5kbGVyKQog
ICAgICAgICBtX2ludmFsaWRhdGlvbkhhbmRsZXIoKTsKIH0KIAotYm9vbCBQcm9jZXNzQXNzZXJ0
aW9uOjppc1ZhbGlkKCkgY29uc3QKLXsKLSAgICByZXR1cm4gbV9yYnNBc3NlcnRpb24gJiYgbV9y
YnNBc3NlcnRpb24uZ2V0KCkudmFsaWQ7Ci19Ci0KIHZvaWQgUHJvY2Vzc0FuZFVJQXNzZXJ0aW9u
Ojp1cGRhdGVSdW5JbkJhY2tncm91bmRDb3VudCgpCiB7CiAgICAgYm9vbCBzaG91bGRIb2xkQmFj
a2dyb3VuZFRhc2sgPSBpc1ZhbGlkKCkgJiYgdHlwZSgpICE9IFByb2Nlc3NBc3NlcnRpb25UeXBl
OjpTdXNwZW5kZWQ7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>427639</attachid>
            <date>2021-05-03 22:24:54 -0700</date>
            <delta_ts>2021-05-03 23:15:15 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-225324-20210503222454.patch</filename>
            <type>text/plain</type>
            <size>11879</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc2OTQ1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDI5YTBjYTcyZjQwZWEyMGY1
NjFmMjY2YTBkMzlmODI5NDFiZDc4MmEuLjlhMzZkY2NlMTU4YzQ1OTk4Y2VlNjI3NTRjMTYxYjgy
MTQ1MjQxNDcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzkgQEAKKzIwMjEtMDUtMDMgIENocmlzIER1
bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KKworICAgICAgICBbaU9TXSBVc2UgYXN5bmMgQVBJIHRv
IHRha2UgUnVubmluZ0JvYXJkIGFzc2VydGlvbnMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTIyNTMyNAorICAgICAgICA8cmRhcjovLzc2OTcyMjUyPgor
CisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFVzZSBhc3lu
YyBbUkJTQXNzZXJ0aW9uIGFjcXVpcmVXaXRoSW52YWxpZGF0aW9uSGFuZGxlcjpdIEFQSSB0byB0
YWtlIHByb2Nlc3MgYXNzZXJ0aW9ucworICAgICAgICBpbnN0ZWFkIG9mIHRoZSBzeW5jaHJvbm91
cyBbUkJTQXNzZXJ0aW9uIGFjcXVpcmVXaXRoRXJyb3I6XSBBUEkuIFRoaXMgYXZvaWRzIHJpc2tp
bmcKKyAgICAgICAgaGFuZ2luZyB0aGUgbWFpbiB0aHJlYWQgZm9yIHRvbyBsb25nLgorCisgICAg
ICAgIE5vdGUgdGhhdCBbUkJTQXNzZXJ0aW9uIGlzVmFsaWRdIHJldHVybnMgZmFsc2UgdW50aWwg
dGhlIGFzc2VydGlvbiBpcyB0YWtlbiBzbyBJIGFtCisgICAgICAgIHVzaW5nIG91ciBvd24gImlz
VmFsaWQiIGJvb2xlYW4gdG8gaW5kaWNhdGUgaWYgdGhlIFJCU0Fzc2VydGlvbiB3YXMgaW52YWxp
ZGF0ZWQgb3IKKyAgICAgICAgb3Igbm90LiBXZSB1c2UgdGhpcyBmbGFnIHRvIGRlY2lkZSBpZiB3
ZSBuZWVkIHRvIHRha2UgdGhlIGFzc2VydGlvbiBhZ2Fpbi4gV2Ugd291bGRuJ3QKKyAgICAgICAg
d2FudCB0byByZS10YWtlIHRoZSBhc3NlcnRpb24gc2ltcGx5IGJlY2F1c2UgaXQgaXMgc3RpbGwg
aW4gdGhlIHByb2Nlc3Mgb2YgYmVpbmcKKyAgICAgICAgYWNxdWlyZWQuCisKKyAgICAgICAgKiBV
SVByb2Nlc3MvUHJvY2Vzc0Fzc2VydGlvbi5jcHA6CisgICAgICAgIChXZWJLaXQ6OlByb2Nlc3NB
c3NlcnRpb246OmlzVmFsaWQgY29uc3QpOiBEZWxldGVkLgorICAgICAgICAqIFVJUHJvY2Vzcy9Q
cm9jZXNzQXNzZXJ0aW9uLmg6CisgICAgICAgIChXZWJLaXQ6OlByb2Nlc3NBc3NlcnRpb246Omlz
VmFsaWQgY29uc3QpOgorICAgICAgICAqIFVJUHJvY2Vzcy9pb3MvUHJvY2Vzc0Fzc2VydGlvbklP
Uy5tbToKKyAgICAgICAgKC1bV0tQcm9jZXNzQXNzZXJ0aW9uQmFja2dyb3VuZFRhc2tNYW5hZ2Vy
IGluaXRdKToKKyAgICAgICAgKC1bV0tQcm9jZXNzQXNzZXJ0aW9uQmFja2dyb3VuZFRhc2tNYW5h
Z2VyIF91cGRhdGVCYWNrZ3JvdW5kVGFza10pOgorICAgICAgICAoLVtXS1Byb2Nlc3NBc3NlcnRp
b25CYWNrZ3JvdW5kVGFza01hbmFnZXIgYXNzZXJ0aW9uOmRpZEludmFsaWRhdGVXaXRoRXJyb3I6
XSk6CisgICAgICAgICgtW1dLUHJvY2Vzc0Fzc2VydGlvbkJhY2tncm91bmRUYXNrTWFuYWdlciBf
cmVsZWFzZUJhY2tncm91bmRUYXNrXSk6CisgICAgICAgIChXZWJLaXQ6OlByb2Nlc3NBc3NlcnRp
b246OlByb2Nlc3NBc3NlcnRpb24pOgorICAgICAgICAoV2ViS2l0OjpQcm9jZXNzQXNzZXJ0aW9u
Ojp+UHJvY2Vzc0Fzc2VydGlvbik6CisgICAgICAgIChXZWJLaXQ6OlByb2Nlc3NBc3NlcnRpb246
OnByb2Nlc3NBc3NlcnRpb25XYXNJbnZhbGlkYXRlZCk6CisgICAgICAgICgtW1dLUHJvY2Vzc0Fz
c2VydGlvbkJhY2tncm91bmRUYXNrTWFuYWdlciBfaGFzQmFja2dyb3VuZFRhc2tdKTogRGVsZXRl
ZC4KKyAgICAgICAgKC1bV0tSQlNBc3NlcnRpb25EZWxlZ2F0ZSBkZWFsbG9jXSk6IERlbGV0ZWQu
CisgICAgICAgICgtW1dLUkJTQXNzZXJ0aW9uRGVsZWdhdGUgYXNzZXJ0aW9uV2lsbEludmFsaWRh
dGU6XSk6IERlbGV0ZWQuCisgICAgICAgICgtW1dLUkJTQXNzZXJ0aW9uRGVsZWdhdGUgYXNzZXJ0
aW9uOmRpZEludmFsaWRhdGVXaXRoRXJyb3I6XSk6IERlbGV0ZWQuCisgICAgICAgIChXZWJLaXQ6
OlByb2Nlc3NBc3NlcnRpb246OmlzVmFsaWQgY29uc3QpOiBEZWxldGVkLgorCiAyMDIxLTA1LTAz
ICBUaW0gSG9ydG9uICA8dGltb3RoeV9ob3J0b25AYXBwbGUuY29tPgogCiAgICAgICAgIFVzZSBJ
bWFnZUJ1ZmZlciBzY2FsaW5nIGluIFJlbW90ZUxheWVyQmFja2luZ1N0b3JlLCByYXRoZXIgdGhh
biBoYW5kbGluZyBzY2FsZSBpbiB0aGUgY2xhc3MKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
UGxhdGZvcm0vc3BpL2lvcy9SdW5uaW5nQm9hcmRTZXJ2aWNlc1NQSS5oIGIvU291cmNlL1dlYktp
dC9QbGF0Zm9ybS9zcGkvaW9zL1J1bm5pbmdCb2FyZFNlcnZpY2VzU1BJLmgKaW5kZXggZDU1YjZj
OTBjMzFiZTRiYmMwNjNkZTVlNmJhZTBjODU3ZWRkYTQxOS4uNDI1MTMyZmU5MGNmYmVjMzc2ZjM2
OTIxNWYwNDMyY2YyYmE5ODg0ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9QbGF0Zm9ybS9z
cGkvaW9zL1J1bm5pbmdCb2FyZFNlcnZpY2VzU1BJLmgKKysrIGIvU291cmNlL1dlYktpdC9QbGF0
Zm9ybS9zcGkvaW9zL1J1bm5pbmdCb2FyZFNlcnZpY2VzU1BJLmgKQEAgLTU1LDExICs1NSwxNCBA
QCBOU19BU1NVTUVfTk9OTlVMTF9CRUdJTgogKyAoUkJTVGFyZ2V0ICopY3VycmVudFByb2Nlc3M7
CiBAZW5kCiAKK0BjbGFzcyBSQlNBc3NlcnRpb247CiBAcHJvdG9jb2wgUkJTQXNzZXJ0aW9uT2Jz
ZXJ2aW5nOwordHlwZWRlZiB2b2lkICheUkJTQXNzZXJ0aW9uSW52YWxpZGF0aW9uSGFuZGxlciko
UkJTQXNzZXJ0aW9uICphc3NlcnRpb24sIE5TRXJyb3IgKmVycm9yKTsKIAogQGludGVyZmFjZSBS
QlNBc3NlcnRpb24gOiBOU09iamVjdAogLSAoaW5zdGFuY2V0eXBlKWluaXRXaXRoRXhwbGFuYXRp
b246KE5TU3RyaW5nICopZXhwbGFuYXRpb24gdGFyZ2V0OihSQlNUYXJnZXQgKil0YXJnZXQgYXR0
cmlidXRlczooTlNBcnJheSA8UkJTQXR0cmlidXRlICo+ICopYXR0cmlidXRlczsKIC0gKEJPT0wp
YWNxdWlyZVdpdGhFcnJvcjooTlNFcnJvciAqKillcnJvcjsKKy0gKHZvaWQpYWNxdWlyZVdpdGhJ
bnZhbGlkYXRpb25IYW5kbGVyOihudWxsYWJsZSBSQlNBc3NlcnRpb25JbnZhbGlkYXRpb25IYW5k
bGVyKWhhbmRsZXI7CiAtICh2b2lkKWludmFsaWRhdGU7CiAtICh2b2lkKWFkZE9ic2VydmVyOihp
ZCA8UkJTQXNzZXJ0aW9uT2JzZXJ2aW5nPilvYnNlcnZlcjsKIC0gKHZvaWQpcmVtb3ZlT2JzZXJ2
ZXI6KGlkIDxSQlNBc3NlcnRpb25PYnNlcnZpbmc+KW9ic2VydmVyOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvUHJvY2Vzc0Fzc2VydGlvbi5oIGIvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvUHJvY2Vzc0Fzc2VydGlvbi5oCmluZGV4IGViNzVjMmEyZTk1NTRmZDI1OWVmZWQy
NzU1NzAyNmVlOWNhMDQ2MDMuLjk1N2U5NGVkY2M3NmU0N2QyZTRhYzI3ZDBhNmFiYjczZDVhMTg1
MzMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1Byb2Nlc3NBc3NlcnRpb24u
aAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Qcm9jZXNzQXNzZXJ0aW9uLmgKQEAgLTM4
LDcgKzM4LDYgQEAKICNpbmNsdWRlIDx3dGYvUmV0YWluUHRyLmg+CiAKIE9CSkNfQ0xBU1MgUkJT
QXNzZXJ0aW9uOwotT0JKQ19DTEFTUyBXS1JCU0Fzc2VydGlvbkRlbGVnYXRlOwogI2VuZGlmIC8v
IFBMQVRGT1JNKElPU19GQU1JTFkpCiAKIG5hbWVzcGFjZSBXZWJLaXQgewpAQCAtNzQsOSArNzMs
OSBAQCBwcml2YXRlOgogICAgIGNvbnN0IFByb2Nlc3NJRCBtX3BpZDsKICNpZiBQTEFURk9STShJ
T1NfRkFNSUxZKQogICAgIFJldGFpblB0cjxSQlNBc3NlcnRpb24+IG1fcmJzQXNzZXJ0aW9uOwot
ICAgIFJldGFpblB0cjxXS1JCU0Fzc2VydGlvbkRlbGVnYXRlPiBtX2RlbGVnYXRlOwogI2VuZGlm
CiAgICAgRnVuY3Rpb248dm9pZCgpPiBtX2ludmFsaWRhdGlvbkhhbmRsZXI7CisgICAgYm9vbCBt
X3dhc0ludmFsaWRhdGVkIHsgZmFsc2UgfTsKIH07CiAKIGNsYXNzIFByb2Nlc3NBbmRVSUFzc2Vy
dGlvbiBmaW5hbCA6IHB1YmxpYyBQcm9jZXNzQXNzZXJ0aW9uIHsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9Qcm9jZXNzQXNzZXJ0aW9uSU9TLm1tIGIvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvaW9zL1Byb2Nlc3NBc3NlcnRpb25JT1MubW0KaW5kZXggZGZjZjJiNTBi
YWQ5ZTNjNThjMGY1OTJmODA2ODQ3ODkxOTcxZjcyMy4uNzIwMGE4YTFjMGRlZTJmZWVhYmM0YjYy
OWU0OWFjMzQwOWYxZGY1YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9z
L1Byb2Nlc3NBc3NlcnRpb25JT1MubW0KKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9z
L1Byb2Nlc3NBc3NlcnRpb25JT1MubW0KQEAgLTYzLDYgKzYzLDcgQEAgQGVuZAogQGltcGxlbWVu
dGF0aW9uIFdLUHJvY2Vzc0Fzc2VydGlvbkJhY2tncm91bmRUYXNrTWFuYWdlcgogewogICAgIFJl
dGFpblB0cjxSQlNBc3NlcnRpb24+IF9iYWNrZ3JvdW5kVGFzazsKKyAgICBzdGQ6OmF0b21pYzxi
b29sPiBfYmFja2dyb3VuZFRhc2tXYXNJbnZhbGlkYXRlZDsKICAgICBXZWFrSGFzaFNldDxQcm9j
ZXNzQW5kVUlBc3NlcnRpb24+IF9hc3NlcnRpb25zTmVlZGluZ0JhY2tncm91bmRUYXNrOwogICAg
IGRpc3BhdGNoX2Jsb2NrX3QgX3BlbmRpbmdUYXNrUmVsZWFzZVRhc2s7CiB9CkBAIC0xNTksNyAr
MTYwLDcgQEAgLSAoQk9PTClfaGFzQmFja2dyb3VuZFRhc2sKIAogLSAodm9pZClfdXBkYXRlQmFj
a2dyb3VuZFRhc2sKIHsKLSAgICBpZiAoIV9hc3NlcnRpb25zTmVlZGluZ0JhY2tncm91bmRUYXNr
LmNvbXB1dGVzRW1wdHkoKSAmJiAhW3NlbGYgX2hhc0JhY2tncm91bmRUYXNrXSkgeworICAgIGlm
ICghX2Fzc2VydGlvbnNOZWVkaW5nQmFja2dyb3VuZFRhc2suY29tcHV0ZXNFbXB0eSgpICYmICgh
W3NlbGYgX2hhc0JhY2tncm91bmRUYXNrXSB8fCBfYmFja2dyb3VuZFRhc2tXYXNJbnZhbGlkYXRl
ZCkpIHsKICAgICAgICAgaWYgKHByb2Nlc3NIYXNBY3RpdmVSdW5UaW1lTGltaXRhdGlvbigpKSB7
CiAgICAgICAgICAgICBSRUxFQVNFX0xPRyhQcm9jZXNzU3VzcGVuc2lvbiwgIiVwIC0gV0tQcm9j
ZXNzQXNzZXJ0aW9uQmFja2dyb3VuZFRhc2tNYW5hZ2VyOiBJZ25vcmVkIHJlcXVlc3QgdG8gc3Rh
cnQgYSBuZXcgYmFja2dyb3VuZCB0YXNrIGJlY2F1c2UgUnVubmluZ0JvYXJkIGhhcyBhbHJlYWR5
IHN0YXJ0ZWQgdGhlIGV4cGlyYXRpb24gdGltZXIiLCBzZWxmKTsKICAgICAgICAgICAgIHJldHVy
bjsKQEAgLTE2OSwxMiArMTcwLDkgQEAgLSAodm9pZClfdXBkYXRlQmFja2dyb3VuZFRhc2sKICAg
ICAgICAgUkJTRG9tYWluQXR0cmlidXRlICpkb21haW5BdHRyaWJ1dGUgPSBbUkJTRG9tYWluQXR0
cmlidXRlIGF0dHJpYnV0ZVdpdGhEb21haW46QCJjb20uYXBwbGUuY29tbW9uIiBuYW1lOkAiRmlu
aXNoVGFza0ludGVycnVwdGFibGUiXTsKICAgICAgICAgX2JhY2tncm91bmRUYXNrID0gYWRvcHRO
UyhbW1JCU0Fzc2VydGlvbiBhbGxvY10gaW5pdFdpdGhFeHBsYW5hdGlvbjpAIldlYktpdCBVSVBy
b2Nlc3MgYmFja2dyb3VuZCB0YXNrIiB0YXJnZXQ6dGFyZ2V0IGF0dHJpYnV0ZXM6QFtkb21haW5B
dHRyaWJ1dGVdXSk7CiAgICAgICAgIFtfYmFja2dyb3VuZFRhc2sgYWRkT2JzZXJ2ZXI6c2VsZl07
Ci0KLSAgICAgICAgTlNFcnJvciAqYWNxdWlzaXRpb25FcnJvciA9IG5pbDsKLSAgICAgICAgaWYg
KCFbX2JhY2tncm91bmRUYXNrIGFjcXVpcmVXaXRoRXJyb3I6JmFjcXVpc2l0aW9uRXJyb3JdKQot
ICAgICAgICAgICAgUkVMRUFTRV9MT0dfRVJST1IoUHJvY2Vzc1N1c3BlbnNpb24sICJXS1Byb2Nl
c3NBc3NlcnRpb25CYWNrZ3JvdW5kVGFza01hbmFnZXI6IEZhaWxlZCB0byBhY3F1aXJlIEZpbmlz
aFRhc2tJbnRlcnJ1cHRhYmxlIGFzc2VydGlvbiBmb3Igb3duIHByb2Nlc3MsIGVycm9yOiAle3B1
YmxpY31AIiwgYWNxdWlzaXRpb25FcnJvcik7Ci0gICAgICAgIGVsc2UKLSAgICAgICAgICAgIFJF
TEVBU0VfTE9HKFByb2Nlc3NTdXNwZW5zaW9uLCAiV0tQcm9jZXNzQXNzZXJ0aW9uQmFja2dyb3Vu
ZFRhc2tNYW5hZ2VyOiBTdWNjZXNzZnVsbHkgdG9vayBhIEZpbmlzaFRhc2tJbnRlcnJ1cHRhYmxl
IGFzc2VydGlvbiBmb3Igb3duIHByb2Nlc3MiKTsKKyAgICAgICAgX2JhY2tncm91bmRUYXNrV2Fz
SW52YWxpZGF0ZWQgPSBmYWxzZTsKKyAgICAgICAgW19iYWNrZ3JvdW5kVGFzayBhY3F1aXJlV2l0
aEludmFsaWRhdGlvbkhhbmRsZXI6bmlsXTsKKyAgICAgICAgUkVMRUFTRV9MT0coUHJvY2Vzc1N1
c3BlbnNpb24sICJXS1Byb2Nlc3NBc3NlcnRpb25CYWNrZ3JvdW5kVGFza01hbmFnZXI6IFRvb2sg
YSBGaW5pc2hUYXNrSW50ZXJydXB0YWJsZSBhc3NlcnRpb24gZm9yIG93biBwcm9jZXNzIik7CiAg
ICAgfSBlbHNlIGlmIChfYXNzZXJ0aW9uc05lZWRpbmdCYWNrZ3JvdW5kVGFzay5jb21wdXRlc0Vt
cHR5KCkpIHsKICAgICAgICAgLy8gUmVsZWFzZSB0aGUgYmFja2dyb3VuZCB0YXNrIGFzeW5jaHJv
bm91c2x5IGJlY2F1c2UgcmVsZWFzaW5nIHRoZSBiYWNrZ3JvdW5kIHRhc2sgbWF5IGRlc3Ryb3kg
dGhlIFByb2Nlc3NUaHJvdHRsZXIgYW5kIHdlIGRvbid0CiAgICAgICAgIC8vIHdhbnQgaXQgdG8g
Z2V0IGRlc3Ryb3llZCB3aGlsZSBpbiB0aGUgbWlkZGxlIG9mIHVwZGF0aW5nIGl0cyBhc3NlcnRp
b24uCkBAIC0xOTUsNiArMTkzLDcgQEAgLSAodm9pZClhc3NlcnRpb246KFJCU0Fzc2VydGlvbiAq
KWFzc2VydGlvbiBkaWRJbnZhbGlkYXRlV2l0aEVycm9yOihOU0Vycm9yICopZXIKIHsKICAgICBB
U1NFUlQoYXNzZXJ0aW9uID09IF9iYWNrZ3JvdW5kVGFzay5nZXQoKSk7CiAgICAgUkVMRUFTRV9M
T0dfRVJST1IoUHJvY2Vzc1N1c3BlbnNpb24sICJXS1Byb2Nlc3NBc3NlcnRpb25CYWNrZ3JvdW5k
VGFza01hbmFnZXI6IEZpbmlzaFRhc2tJbnRlcnJ1cHRhYmxlIGFzc2VydGlvbiB3YXMgaW52YWxp
ZGF0ZWQsIGVycm9yOiAle3B1YmxpY31AIiwgZXJyb3IpOworICAgIF9iYWNrZ3JvdW5kVGFza1dh
c0ludmFsaWRhdGVkID0gdHJ1ZTsKIH0KIAogLSAodm9pZClfaGFuZGxlQmFja2dyb3VuZFRhc2tF
eHBpcmF0aW9uCkBAIC0yNDUsMzYgKzI0NCw2IEBAIC0gKHZvaWQpX3JlbGVhc2VCYWNrZ3JvdW5k
VGFzawogCiBAZW5kCiAKLXR5cGVkZWYgdm9pZCheUkJTQXNzZXJ0aW9uSW52YWxpZGF0aW9uQ2Fs
bGJhY2tUeXBlKSgpOwotCi1AaW50ZXJmYWNlIFdLUkJTQXNzZXJ0aW9uRGVsZWdhdGUgOiBOU09i
amVjdDxSQlNBc3NlcnRpb25PYnNlcnZpbmc+Ci1AcHJvcGVydHkgKGNvcHkpIFJCU0Fzc2VydGlv
bkludmFsaWRhdGlvbkNhbGxiYWNrVHlwZSBpbnZhbGlkYXRpb25DYWxsYmFjazsKLUBlbmQKLQot
QGltcGxlbWVudGF0aW9uIFdLUkJTQXNzZXJ0aW9uRGVsZWdhdGUKLS0gKHZvaWQpZGVhbGxvYwot
ewotICAgIFtfaW52YWxpZGF0aW9uQ2FsbGJhY2sgcmVsZWFzZV07Ci0gICAgW3N1cGVyIGRlYWxs
b2NdOwotfQotCi0tICh2b2lkKWFzc2VydGlvbldpbGxJbnZhbGlkYXRlOihSQlNBc3NlcnRpb24g
Kilhc3NlcnRpb24KLXsKLSAgICBSRUxFQVNFX0xPRyhQcm9jZXNzU3VzcGVuc2lvbiwgIiVwIC0g
V0tSQlNBc3NlcnRpb25EZWxlZ2F0ZTogYXNzZXJ0aW9uV2lsbEludmFsaWRhdGUiLCBzZWxmKTsK
LX0KLQotLSAodm9pZClhc3NlcnRpb246KFJCU0Fzc2VydGlvbiAqKWFzc2VydGlvbiBkaWRJbnZh
bGlkYXRlV2l0aEVycm9yOihOU0Vycm9yICopZXJyb3IKLXsKLSAgICBSRUxFQVNFX0xPRyhQcm9j
ZXNzU3VzcGVuc2lvbiwgIiVwIC0gV0tSQlNBc3NlcnRpb25EZWxlZ2F0ZTogYXNzZXJ0aW9uIHdh
cyBpbnZhbGlkYXRlZCwgZXJyb3I6ICV7cHVibGljfUAiLCBlcnJvciwgc2VsZik7Ci0KLSAgICBS
dW5Mb29wOjptYWluKCkuZGlzcGF0Y2goW3dlYWtTZWxmID0gV2Vha09iakNQdHI8V0tSQlNBc3Nl
cnRpb25EZWxlZ2F0ZT4oc2VsZildIHsKLSAgICAgICAgYXV0byBzdHJvbmdTZWxmID0gd2Vha1Nl
bGYuZ2V0KCk7Ci0gICAgICAgIGlmIChzdHJvbmdTZWxmICYmIHN0cm9uZ1NlbGYuZ2V0KCkuaW52
YWxpZGF0aW9uQ2FsbGJhY2spCi0gICAgICAgICAgICBzdHJvbmdTZWxmLmdldCgpLmludmFsaWRh
dGlvbkNhbGxiYWNrKCk7Ci0gICAgfSk7Ci19Ci1AZW5kCi0KIG5hbWVzcGFjZSBXZWJLaXQgewog
CiBzdGF0aWMgTlNTdHJpbmcgKnJ1bm5pbmdCb2FyZE5hbWVGb3JBc3NlcnRpb25UeXBlKFByb2Nl
c3NBc3NlcnRpb25UeXBlIGFzc2VydGlvblR5cGUpCkBAIC0zMDcsMzUgKzI3NiwyNCBAQCBQcm9j
ZXNzQXNzZXJ0aW9uOjpQcm9jZXNzQXNzZXJ0aW9uKHBpZF90IHBpZCwgY29uc3QgU3RyaW5nJiBy
ZWFzb24sIFByb2Nlc3NBc3NlcgogICAgIFJCU1RhcmdldCAqdGFyZ2V0ID0gW1JCU1RhcmdldCB0
YXJnZXRXaXRoUGlkOnBpZF07CiAgICAgUkJTRG9tYWluQXR0cmlidXRlICpkb21haW5BdHRyaWJ1
dGUgPSBbUkJTRG9tYWluQXR0cmlidXRlIGF0dHJpYnV0ZVdpdGhEb21haW46QCJjb20uYXBwbGUu
d2Via2l0IiBuYW1lOnJ1bm5pbmdCb2FyZEFzc2VydGlvbk5hbWVdOwogICAgIG1fcmJzQXNzZXJ0
aW9uID0gYWRvcHROUyhbW1JCU0Fzc2VydGlvbiBhbGxvY10gaW5pdFdpdGhFeHBsYW5hdGlvbjpy
ZWFzb24gdGFyZ2V0OnRhcmdldCBhdHRyaWJ1dGVzOkBbZG9tYWluQXR0cmlidXRlXV0pOwotCi0g
ICAgbV9kZWxlZ2F0ZSA9IGFkb3B0TlMoW1tXS1JCU0Fzc2VydGlvbkRlbGVnYXRlIGFsbG9jXSBp
bml0XSk7Ci0gICAgW21fcmJzQXNzZXJ0aW9uIGFkZE9ic2VydmVyOm1fZGVsZWdhdGUuZ2V0KCld
OwotICAgIG1fZGVsZWdhdGUuZ2V0KCkuaW52YWxpZGF0aW9uQ2FsbGJhY2sgPSBeewotICAgICAg
ICBSRUxFQVNFX0xPRyhQcm9jZXNzU3VzcGVuc2lvbiwgIiVwIC0gUHJvY2Vzc0Fzc2VydGlvbigp
IFJCUyAle3B1YmxpY31AIGFzc2VydGlvbiBmb3IgcHJvY2VzcyB3aXRoIFBJRD0lZCB3YXMgaW52
YWxpZGF0ZWQiLCB0aGlzLCBydW5uaW5nQm9hcmRBc3NlcnRpb25OYW1lLCBwaWQpOwotICAgICAg
ICBwcm9jZXNzQXNzZXJ0aW9uV2FzSW52YWxpZGF0ZWQoKTsKLSAgICB9OwotCi0gICAgTlNFcnJv
ciAqYWNxdWlzaXRpb25FcnJvciA9IG5pbDsKLSAgICBpZiAoIVttX3Jic0Fzc2VydGlvbiBhY3F1
aXJlV2l0aEVycm9yOiZhY3F1aXNpdGlvbkVycm9yXSkgewotICAgICAgICBSRUxFQVNFX0xPR19F
UlJPUihQcm9jZXNzU3VzcGVuc2lvbiwgIiVwIC0gUHJvY2Vzc0Fzc2VydGlvbjogRmFpbGVkIHRv
IGFjcXVpcmUgUkJTICV7cHVibGljfUAgYXNzZXJ0aW9uICcle3B1YmxpY31zJyBmb3IgcHJvY2Vz
cyB3aXRoIFBJRD0lZCwgZXJyb3I6ICV7cHVibGljfUAiLCB0aGlzLCBydW5uaW5nQm9hcmRBc3Nl
cnRpb25OYW1lLCByZWFzb24udXRmOCgpLmRhdGEoKSwgcGlkLCBhY3F1aXNpdGlvbkVycm9yKTsK
LSAgICAgICAgUnVuTG9vcDo6bWFpbigpLmRpc3BhdGNoKFt3ZWFrVGhpcyA9IG1ha2VXZWFrUHRy
KCp0aGlzKV0gewotICAgICAgICAgICAgaWYgKHdlYWtUaGlzKQotICAgICAgICAgICAgICAgIHdl
YWtUaGlzLT5wcm9jZXNzQXNzZXJ0aW9uV2FzSW52YWxpZGF0ZWQoKTsKKyAgICBbbV9yYnNBc3Nl
cnRpb24gYWNxdWlyZVdpdGhJbnZhbGlkYXRpb25IYW5kbGVyOlt3ZWFrVGhpcyA9IG1ha2VXZWFr
UHRyKCp0aGlzKSwgcGlkLCBydW5uaW5nQm9hcmRBc3NlcnRpb25OYW1lID0gcmV0YWluUHRyKHJ1
bm5pbmdCb2FyZEFzc2VydGlvbk5hbWUpXShSQlNBc3NlcnRpb24gKmFzc2VydGlvbiwgTlNFcnJv
ciAqZXJyb3IpIG11dGFibGUgeworICAgICAgICBjYWxsT25NYWluUnVuTG9vcChbd2Vha1RoaXMg
PSBXVEZNb3ZlKHdlYWtUaGlzKSwgcGlkLCBydW5uaW5nQm9hcmRBc3NlcnRpb25OYW1lID0gV1RG
TW92ZShydW5uaW5nQm9hcmRBc3NlcnRpb25OYW1lKSwgZXJyb3IgPSByZXRhaW5QdHIoZXJyb3Ip
XSB7CisgICAgICAgICAgICBpZiAoIXdlYWtUaGlzKQorICAgICAgICAgICAgICAgIHJldHVybjsK
KyAgICAgICAgICAgIFJFTEVBU0VfTE9HKFByb2Nlc3NTdXNwZW5zaW9uLCAiJXAgLSBQcm9jZXNz
QXNzZXJ0aW9uKCkgUkJTICV7cHVibGljfUAgYXNzZXJ0aW9uIGZvciBwcm9jZXNzIHdpdGggUElE
PSVkIHdhcyBpbnZhbGlkYXRlZCwgZXJyb3I6ICV7cHVibGljfUAiLCB3ZWFrVGhpcy5nZXQoKSwg
cnVubmluZ0JvYXJkQXNzZXJ0aW9uTmFtZS5nZXQoKSwgcGlkLCBlcnJvci5nZXQoKSk7CisgICAg
ICAgICAgICB3ZWFrVGhpcy0+cHJvY2Vzc0Fzc2VydGlvbldhc0ludmFsaWRhdGVkKCk7CiAgICAg
ICAgIH0pOwotICAgIH0gZWxzZQotICAgICAgICBSRUxFQVNFX0xPRyhQcm9jZXNzU3VzcGVuc2lv
biwgIiVwIC0gUHJvY2Vzc0Fzc2VydGlvbjogU3VjY2Vzc2Z1bGx5IHRvb2sgUkJTICV7cHVibGlj
fUAgYXNzZXJ0aW9uICcle3B1YmxpY31zJyBmb3IgcHJvY2VzcyB3aXRoIFBJRD0lZCIsIHRoaXMs
IHJ1bm5pbmdCb2FyZEFzc2VydGlvbk5hbWUsIHJlYXNvbi51dGY4KCkuZGF0YSgpLCBwaWQpOwor
ICAgIH1dOworCisgICAgUkVMRUFTRV9MT0coUHJvY2Vzc1N1c3BlbnNpb24sICIlcCAtIFByb2Nl
c3NBc3NlcnRpb246IFRvb2sgUkJTICV7cHVibGljfUAgYXNzZXJ0aW9uICcle3B1YmxpY31zJyBm
b3IgcHJvY2VzcyB3aXRoIFBJRD0lZCIsIHRoaXMsIHJ1bm5pbmdCb2FyZEFzc2VydGlvbk5hbWUs
IHJlYXNvbi51dGY4KCkuZGF0YSgpLCBwaWQpOwogfQogCiBQcm9jZXNzQXNzZXJ0aW9uOjp+UHJv
Y2Vzc0Fzc2VydGlvbigpCiB7CiAgICAgUkVMRUFTRV9MT0coUHJvY2Vzc1N1c3BlbnNpb24sICIl
cCAtIH5Qcm9jZXNzQXNzZXJ0aW9uKCkgUmVsZWFzaW5nIHByb2Nlc3MgYXNzZXJ0aW9uIGZvciBw
cm9jZXNzIHdpdGggUElEPSVkIiwgdGhpcywgbV9waWQpOwogCi0gICAgaWYgKG1fcmJzQXNzZXJ0
aW9uKSB7Ci0gICAgICAgIG1fZGVsZWdhdGUuZ2V0KCkuaW52YWxpZGF0aW9uQ2FsbGJhY2sgPSBu
aWw7Ci0gICAgICAgIFttX3Jic0Fzc2VydGlvbiByZW1vdmVPYnNlcnZlcjptX2RlbGVnYXRlLmdl
dCgpXTsKLSAgICAgICAgbV9kZWxlZ2F0ZSA9IG5pbDsKKyAgICBpZiAobV9yYnNBc3NlcnRpb24p
CiAgICAgICAgIFttX3Jic0Fzc2VydGlvbiBpbnZhbGlkYXRlXTsKLSAgICB9CiB9CiAKIHZvaWQg
UHJvY2Vzc0Fzc2VydGlvbjo6cHJvY2Vzc0Fzc2VydGlvbldhc0ludmFsaWRhdGVkKCkKQEAgLTM0
MywxMyArMzAxLDE0IEBAIHZvaWQgUHJvY2Vzc0Fzc2VydGlvbjo6cHJvY2Vzc0Fzc2VydGlvbldh
c0ludmFsaWRhdGVkKCkKICAgICBBU1NFUlQoUnVuTG9vcDo6aXNNYWluKCkpOwogICAgIFJFTEVB
U0VfTE9HKFByb2Nlc3NTdXNwZW5zaW9uLCAiJXAgLSBQcm9jZXNzQXNzZXJ0aW9uOjpwcm9jZXNz
QXNzZXJ0aW9uV2FzSW52YWxpZGF0ZWQoKSBQSUQ9JWQiLCB0aGlzLCBtX3BpZCk7CiAKKyAgICBt
X3dhc0ludmFsaWRhdGVkID0gdHJ1ZTsKICAgICBpZiAobV9pbnZhbGlkYXRpb25IYW5kbGVyKQog
ICAgICAgICBtX2ludmFsaWRhdGlvbkhhbmRsZXIoKTsKIH0KIAogYm9vbCBQcm9jZXNzQXNzZXJ0
aW9uOjppc1ZhbGlkKCkgY29uc3QKIHsKLSAgICByZXR1cm4gbV9yYnNBc3NlcnRpb24gJiYgbV9y
YnNBc3NlcnRpb24uZ2V0KCkudmFsaWQ7CisgICAgcmV0dXJuIG1fcmJzQXNzZXJ0aW9uICYmICFt
X3dhc0ludmFsaWRhdGVkOwogfQogCiB2b2lkIFByb2Nlc3NBbmRVSUFzc2VydGlvbjo6dXBkYXRl
UnVuSW5CYWNrZ3JvdW5kQ291bnQoKQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>427640</attachid>
            <date>2021-05-03 23:15:17 -0700</date>
            <delta_ts>2021-07-01 12:51:32 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-225324-20210503231516.patch</filename>
            <type>text/plain</type>
            <size>11814</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc2OTQ1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDI5YTBjYTcyZjQwZWEyMGY1
NjFmMjY2YTBkMzlmODI5NDFiZDc4MmEuLjlhMzZkY2NlMTU4YzQ1OTk4Y2VlNjI3NTRjMTYxYjgy
MTQ1MjQxNDcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzkgQEAKKzIwMjEtMDUtMDMgIENocmlzIER1
bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KKworICAgICAgICBbaU9TXSBVc2UgYXN5bmMgQVBJIHRv
IHRha2UgUnVubmluZ0JvYXJkIGFzc2VydGlvbnMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTIyNTMyNAorICAgICAgICA8cmRhcjovLzc2OTcyMjUyPgor
CisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFVzZSBhc3lu
YyBbUkJTQXNzZXJ0aW9uIGFjcXVpcmVXaXRoSW52YWxpZGF0aW9uSGFuZGxlcjpdIEFQSSB0byB0
YWtlIHByb2Nlc3MgYXNzZXJ0aW9ucworICAgICAgICBpbnN0ZWFkIG9mIHRoZSBzeW5jaHJvbm91
cyBbUkJTQXNzZXJ0aW9uIGFjcXVpcmVXaXRoRXJyb3I6XSBBUEkuIFRoaXMgYXZvaWRzIHJpc2tp
bmcKKyAgICAgICAgaGFuZ2luZyB0aGUgbWFpbiB0aHJlYWQgZm9yIHRvbyBsb25nLgorCisgICAg
ICAgIE5vdGUgdGhhdCBbUkJTQXNzZXJ0aW9uIGlzVmFsaWRdIHJldHVybnMgZmFsc2UgdW50aWwg
dGhlIGFzc2VydGlvbiBpcyB0YWtlbiBzbyBJIGFtCisgICAgICAgIHVzaW5nIG91ciBvd24gImlz
VmFsaWQiIGJvb2xlYW4gdG8gaW5kaWNhdGUgaWYgdGhlIFJCU0Fzc2VydGlvbiB3YXMgaW52YWxp
ZGF0ZWQgb3IKKyAgICAgICAgb3Igbm90LiBXZSB1c2UgdGhpcyBmbGFnIHRvIGRlY2lkZSBpZiB3
ZSBuZWVkIHRvIHRha2UgdGhlIGFzc2VydGlvbiBhZ2Fpbi4gV2Ugd291bGRuJ3QKKyAgICAgICAg
d2FudCB0byByZS10YWtlIHRoZSBhc3NlcnRpb24gc2ltcGx5IGJlY2F1c2UgaXQgaXMgc3RpbGwg
aW4gdGhlIHByb2Nlc3Mgb2YgYmVpbmcKKyAgICAgICAgYWNxdWlyZWQuCisKKyAgICAgICAgKiBV
SVByb2Nlc3MvUHJvY2Vzc0Fzc2VydGlvbi5jcHA6CisgICAgICAgIChXZWJLaXQ6OlByb2Nlc3NB
c3NlcnRpb246OmlzVmFsaWQgY29uc3QpOiBEZWxldGVkLgorICAgICAgICAqIFVJUHJvY2Vzcy9Q
cm9jZXNzQXNzZXJ0aW9uLmg6CisgICAgICAgIChXZWJLaXQ6OlByb2Nlc3NBc3NlcnRpb246Omlz
VmFsaWQgY29uc3QpOgorICAgICAgICAqIFVJUHJvY2Vzcy9pb3MvUHJvY2Vzc0Fzc2VydGlvbklP
Uy5tbToKKyAgICAgICAgKC1bV0tQcm9jZXNzQXNzZXJ0aW9uQmFja2dyb3VuZFRhc2tNYW5hZ2Vy
IGluaXRdKToKKyAgICAgICAgKC1bV0tQcm9jZXNzQXNzZXJ0aW9uQmFja2dyb3VuZFRhc2tNYW5h
Z2VyIF91cGRhdGVCYWNrZ3JvdW5kVGFza10pOgorICAgICAgICAoLVtXS1Byb2Nlc3NBc3NlcnRp
b25CYWNrZ3JvdW5kVGFza01hbmFnZXIgYXNzZXJ0aW9uOmRpZEludmFsaWRhdGVXaXRoRXJyb3I6
XSk6CisgICAgICAgICgtW1dLUHJvY2Vzc0Fzc2VydGlvbkJhY2tncm91bmRUYXNrTWFuYWdlciBf
cmVsZWFzZUJhY2tncm91bmRUYXNrXSk6CisgICAgICAgIChXZWJLaXQ6OlByb2Nlc3NBc3NlcnRp
b246OlByb2Nlc3NBc3NlcnRpb24pOgorICAgICAgICAoV2ViS2l0OjpQcm9jZXNzQXNzZXJ0aW9u
Ojp+UHJvY2Vzc0Fzc2VydGlvbik6CisgICAgICAgIChXZWJLaXQ6OlByb2Nlc3NBc3NlcnRpb246
OnByb2Nlc3NBc3NlcnRpb25XYXNJbnZhbGlkYXRlZCk6CisgICAgICAgICgtW1dLUHJvY2Vzc0Fz
c2VydGlvbkJhY2tncm91bmRUYXNrTWFuYWdlciBfaGFzQmFja2dyb3VuZFRhc2tdKTogRGVsZXRl
ZC4KKyAgICAgICAgKC1bV0tSQlNBc3NlcnRpb25EZWxlZ2F0ZSBkZWFsbG9jXSk6IERlbGV0ZWQu
CisgICAgICAgICgtW1dLUkJTQXNzZXJ0aW9uRGVsZWdhdGUgYXNzZXJ0aW9uV2lsbEludmFsaWRh
dGU6XSk6IERlbGV0ZWQuCisgICAgICAgICgtW1dLUkJTQXNzZXJ0aW9uRGVsZWdhdGUgYXNzZXJ0
aW9uOmRpZEludmFsaWRhdGVXaXRoRXJyb3I6XSk6IERlbGV0ZWQuCisgICAgICAgIChXZWJLaXQ6
OlByb2Nlc3NBc3NlcnRpb246OmlzVmFsaWQgY29uc3QpOiBEZWxldGVkLgorCiAyMDIxLTA1LTAz
ICBUaW0gSG9ydG9uICA8dGltb3RoeV9ob3J0b25AYXBwbGUuY29tPgogCiAgICAgICAgIFVzZSBJ
bWFnZUJ1ZmZlciBzY2FsaW5nIGluIFJlbW90ZUxheWVyQmFja2luZ1N0b3JlLCByYXRoZXIgdGhh
biBoYW5kbGluZyBzY2FsZSBpbiB0aGUgY2xhc3MKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
UGxhdGZvcm0vc3BpL2lvcy9SdW5uaW5nQm9hcmRTZXJ2aWNlc1NQSS5oIGIvU291cmNlL1dlYktp
dC9QbGF0Zm9ybS9zcGkvaW9zL1J1bm5pbmdCb2FyZFNlcnZpY2VzU1BJLmgKaW5kZXggZDU1YjZj
OTBjMzFiZTRiYmMwNjNkZTVlNmJhZTBjODU3ZWRkYTQxOS4uNDI1MTMyZmU5MGNmYmVjMzc2ZjM2
OTIxNWYwNDMyY2YyYmE5ODg0ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9QbGF0Zm9ybS9z
cGkvaW9zL1J1bm5pbmdCb2FyZFNlcnZpY2VzU1BJLmgKKysrIGIvU291cmNlL1dlYktpdC9QbGF0
Zm9ybS9zcGkvaW9zL1J1bm5pbmdCb2FyZFNlcnZpY2VzU1BJLmgKQEAgLTU1LDExICs1NSwxNCBA
QCBOU19BU1NVTUVfTk9OTlVMTF9CRUdJTgogKyAoUkJTVGFyZ2V0ICopY3VycmVudFByb2Nlc3M7
CiBAZW5kCiAKK0BjbGFzcyBSQlNBc3NlcnRpb247CiBAcHJvdG9jb2wgUkJTQXNzZXJ0aW9uT2Jz
ZXJ2aW5nOwordHlwZWRlZiB2b2lkICheUkJTQXNzZXJ0aW9uSW52YWxpZGF0aW9uSGFuZGxlciko
UkJTQXNzZXJ0aW9uICphc3NlcnRpb24sIE5TRXJyb3IgKmVycm9yKTsKIAogQGludGVyZmFjZSBS
QlNBc3NlcnRpb24gOiBOU09iamVjdAogLSAoaW5zdGFuY2V0eXBlKWluaXRXaXRoRXhwbGFuYXRp
b246KE5TU3RyaW5nICopZXhwbGFuYXRpb24gdGFyZ2V0OihSQlNUYXJnZXQgKil0YXJnZXQgYXR0
cmlidXRlczooTlNBcnJheSA8UkJTQXR0cmlidXRlICo+ICopYXR0cmlidXRlczsKIC0gKEJPT0wp
YWNxdWlyZVdpdGhFcnJvcjooTlNFcnJvciAqKillcnJvcjsKKy0gKHZvaWQpYWNxdWlyZVdpdGhJ
bnZhbGlkYXRpb25IYW5kbGVyOihudWxsYWJsZSBSQlNBc3NlcnRpb25JbnZhbGlkYXRpb25IYW5k
bGVyKWhhbmRsZXI7CiAtICh2b2lkKWludmFsaWRhdGU7CiAtICh2b2lkKWFkZE9ic2VydmVyOihp
ZCA8UkJTQXNzZXJ0aW9uT2JzZXJ2aW5nPilvYnNlcnZlcjsKIC0gKHZvaWQpcmVtb3ZlT2JzZXJ2
ZXI6KGlkIDxSQlNBc3NlcnRpb25PYnNlcnZpbmc+KW9ic2VydmVyOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvUHJvY2Vzc0Fzc2VydGlvbi5oIGIvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvUHJvY2Vzc0Fzc2VydGlvbi5oCmluZGV4IGViNzVjMmEyZTk1NTRmZDI1OWVmZWQy
NzU1NzAyNmVlOWNhMDQ2MDMuLjhiNGQ1NzUzODc4YWM1OGY2ZjVjZWYyOGYyYzg5YWM0ZjVhZGI3
OWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1Byb2Nlc3NBc3NlcnRpb24u
aAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Qcm9jZXNzQXNzZXJ0aW9uLmgKQEAgLTM4
LDcgKzM4LDYgQEAKICNpbmNsdWRlIDx3dGYvUmV0YWluUHRyLmg+CiAKIE9CSkNfQ0xBU1MgUkJT
QXNzZXJ0aW9uOwotT0JKQ19DTEFTUyBXS1JCU0Fzc2VydGlvbkRlbGVnYXRlOwogI2VuZGlmIC8v
IFBMQVRGT1JNKElPU19GQU1JTFkpCiAKIG5hbWVzcGFjZSBXZWJLaXQgewpAQCAtNzQsNyArNzMs
NyBAQCBwcml2YXRlOgogICAgIGNvbnN0IFByb2Nlc3NJRCBtX3BpZDsKICNpZiBQTEFURk9STShJ
T1NfRkFNSUxZKQogICAgIFJldGFpblB0cjxSQlNBc3NlcnRpb24+IG1fcmJzQXNzZXJ0aW9uOwot
ICAgIFJldGFpblB0cjxXS1JCU0Fzc2VydGlvbkRlbGVnYXRlPiBtX2RlbGVnYXRlOworICAgIGJv
b2wgbV93YXNJbnZhbGlkYXRlZCB7IGZhbHNlIH07CiAjZW5kaWYKICAgICBGdW5jdGlvbjx2b2lk
KCk+IG1faW52YWxpZGF0aW9uSGFuZGxlcjsKIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9pb3MvUHJvY2Vzc0Fzc2VydGlvbklPUy5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL2lvcy9Qcm9jZXNzQXNzZXJ0aW9uSU9TLm1tCmluZGV4IGRmY2YyYjUwYmFkOWUzYzU4
YzBmNTkyZjgwNjg0Nzg5MTk3MWY3MjMuLjcyMDBhOGExYzBkZWUyZmVlYWJjNGI2MjllNDlhYzM0
MDlmMWRmNWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9Qcm9jZXNz
QXNzZXJ0aW9uSU9TLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9Qcm9jZXNz
QXNzZXJ0aW9uSU9TLm1tCkBAIC02Myw2ICs2Myw3IEBAIEBlbmQKIEBpbXBsZW1lbnRhdGlvbiBX
S1Byb2Nlc3NBc3NlcnRpb25CYWNrZ3JvdW5kVGFza01hbmFnZXIKIHsKICAgICBSZXRhaW5QdHI8
UkJTQXNzZXJ0aW9uPiBfYmFja2dyb3VuZFRhc2s7CisgICAgc3RkOjphdG9taWM8Ym9vbD4gX2Jh
Y2tncm91bmRUYXNrV2FzSW52YWxpZGF0ZWQ7CiAgICAgV2Vha0hhc2hTZXQ8UHJvY2Vzc0FuZFVJ
QXNzZXJ0aW9uPiBfYXNzZXJ0aW9uc05lZWRpbmdCYWNrZ3JvdW5kVGFzazsKICAgICBkaXNwYXRj
aF9ibG9ja190IF9wZW5kaW5nVGFza1JlbGVhc2VUYXNrOwogfQpAQCAtMTU5LDcgKzE2MCw3IEBA
IC0gKEJPT0wpX2hhc0JhY2tncm91bmRUYXNrCiAKIC0gKHZvaWQpX3VwZGF0ZUJhY2tncm91bmRU
YXNrCiB7Ci0gICAgaWYgKCFfYXNzZXJ0aW9uc05lZWRpbmdCYWNrZ3JvdW5kVGFzay5jb21wdXRl
c0VtcHR5KCkgJiYgIVtzZWxmIF9oYXNCYWNrZ3JvdW5kVGFza10pIHsKKyAgICBpZiAoIV9hc3Nl
cnRpb25zTmVlZGluZ0JhY2tncm91bmRUYXNrLmNvbXB1dGVzRW1wdHkoKSAmJiAoIVtzZWxmIF9o
YXNCYWNrZ3JvdW5kVGFza10gfHwgX2JhY2tncm91bmRUYXNrV2FzSW52YWxpZGF0ZWQpKSB7CiAg
ICAgICAgIGlmIChwcm9jZXNzSGFzQWN0aXZlUnVuVGltZUxpbWl0YXRpb24oKSkgewogICAgICAg
ICAgICAgUkVMRUFTRV9MT0coUHJvY2Vzc1N1c3BlbnNpb24sICIlcCAtIFdLUHJvY2Vzc0Fzc2Vy
dGlvbkJhY2tncm91bmRUYXNrTWFuYWdlcjogSWdub3JlZCByZXF1ZXN0IHRvIHN0YXJ0IGEgbmV3
IGJhY2tncm91bmQgdGFzayBiZWNhdXNlIFJ1bm5pbmdCb2FyZCBoYXMgYWxyZWFkeSBzdGFydGVk
IHRoZSBleHBpcmF0aW9uIHRpbWVyIiwgc2VsZik7CiAgICAgICAgICAgICByZXR1cm47CkBAIC0x
NjksMTIgKzE3MCw5IEBAIC0gKHZvaWQpX3VwZGF0ZUJhY2tncm91bmRUYXNrCiAgICAgICAgIFJC
U0RvbWFpbkF0dHJpYnV0ZSAqZG9tYWluQXR0cmlidXRlID0gW1JCU0RvbWFpbkF0dHJpYnV0ZSBh
dHRyaWJ1dGVXaXRoRG9tYWluOkAiY29tLmFwcGxlLmNvbW1vbiIgbmFtZTpAIkZpbmlzaFRhc2tJ
bnRlcnJ1cHRhYmxlIl07CiAgICAgICAgIF9iYWNrZ3JvdW5kVGFzayA9IGFkb3B0TlMoW1tSQlNB
c3NlcnRpb24gYWxsb2NdIGluaXRXaXRoRXhwbGFuYXRpb246QCJXZWJLaXQgVUlQcm9jZXNzIGJh
Y2tncm91bmQgdGFzayIgdGFyZ2V0OnRhcmdldCBhdHRyaWJ1dGVzOkBbZG9tYWluQXR0cmlidXRl
XV0pOwogICAgICAgICBbX2JhY2tncm91bmRUYXNrIGFkZE9ic2VydmVyOnNlbGZdOwotCi0gICAg
ICAgIE5TRXJyb3IgKmFjcXVpc2l0aW9uRXJyb3IgPSBuaWw7Ci0gICAgICAgIGlmICghW19iYWNr
Z3JvdW5kVGFzayBhY3F1aXJlV2l0aEVycm9yOiZhY3F1aXNpdGlvbkVycm9yXSkKLSAgICAgICAg
ICAgIFJFTEVBU0VfTE9HX0VSUk9SKFByb2Nlc3NTdXNwZW5zaW9uLCAiV0tQcm9jZXNzQXNzZXJ0
aW9uQmFja2dyb3VuZFRhc2tNYW5hZ2VyOiBGYWlsZWQgdG8gYWNxdWlyZSBGaW5pc2hUYXNrSW50
ZXJydXB0YWJsZSBhc3NlcnRpb24gZm9yIG93biBwcm9jZXNzLCBlcnJvcjogJXtwdWJsaWN9QCIs
IGFjcXVpc2l0aW9uRXJyb3IpOwotICAgICAgICBlbHNlCi0gICAgICAgICAgICBSRUxFQVNFX0xP
RyhQcm9jZXNzU3VzcGVuc2lvbiwgIldLUHJvY2Vzc0Fzc2VydGlvbkJhY2tncm91bmRUYXNrTWFu
YWdlcjogU3VjY2Vzc2Z1bGx5IHRvb2sgYSBGaW5pc2hUYXNrSW50ZXJydXB0YWJsZSBhc3NlcnRp
b24gZm9yIG93biBwcm9jZXNzIik7CisgICAgICAgIF9iYWNrZ3JvdW5kVGFza1dhc0ludmFsaWRh
dGVkID0gZmFsc2U7CisgICAgICAgIFtfYmFja2dyb3VuZFRhc2sgYWNxdWlyZVdpdGhJbnZhbGlk
YXRpb25IYW5kbGVyOm5pbF07CisgICAgICAgIFJFTEVBU0VfTE9HKFByb2Nlc3NTdXNwZW5zaW9u
LCAiV0tQcm9jZXNzQXNzZXJ0aW9uQmFja2dyb3VuZFRhc2tNYW5hZ2VyOiBUb29rIGEgRmluaXNo
VGFza0ludGVycnVwdGFibGUgYXNzZXJ0aW9uIGZvciBvd24gcHJvY2VzcyIpOwogICAgIH0gZWxz
ZSBpZiAoX2Fzc2VydGlvbnNOZWVkaW5nQmFja2dyb3VuZFRhc2suY29tcHV0ZXNFbXB0eSgpKSB7
CiAgICAgICAgIC8vIFJlbGVhc2UgdGhlIGJhY2tncm91bmQgdGFzayBhc3luY2hyb25vdXNseSBi
ZWNhdXNlIHJlbGVhc2luZyB0aGUgYmFja2dyb3VuZCB0YXNrIG1heSBkZXN0cm95IHRoZSBQcm9j
ZXNzVGhyb3R0bGVyIGFuZCB3ZSBkb24ndAogICAgICAgICAvLyB3YW50IGl0IHRvIGdldCBkZXN0
cm95ZWQgd2hpbGUgaW4gdGhlIG1pZGRsZSBvZiB1cGRhdGluZyBpdHMgYXNzZXJ0aW9uLgpAQCAt
MTk1LDYgKzE5Myw3IEBAIC0gKHZvaWQpYXNzZXJ0aW9uOihSQlNBc3NlcnRpb24gKilhc3NlcnRp
b24gZGlkSW52YWxpZGF0ZVdpdGhFcnJvcjooTlNFcnJvciAqKWVyCiB7CiAgICAgQVNTRVJUKGFz
c2VydGlvbiA9PSBfYmFja2dyb3VuZFRhc2suZ2V0KCkpOwogICAgIFJFTEVBU0VfTE9HX0VSUk9S
KFByb2Nlc3NTdXNwZW5zaW9uLCAiV0tQcm9jZXNzQXNzZXJ0aW9uQmFja2dyb3VuZFRhc2tNYW5h
Z2VyOiBGaW5pc2hUYXNrSW50ZXJydXB0YWJsZSBhc3NlcnRpb24gd2FzIGludmFsaWRhdGVkLCBl
cnJvcjogJXtwdWJsaWN9QCIsIGVycm9yKTsKKyAgICBfYmFja2dyb3VuZFRhc2tXYXNJbnZhbGlk
YXRlZCA9IHRydWU7CiB9CiAKIC0gKHZvaWQpX2hhbmRsZUJhY2tncm91bmRUYXNrRXhwaXJhdGlv
bgpAQCAtMjQ1LDM2ICsyNDQsNiBAQCAtICh2b2lkKV9yZWxlYXNlQmFja2dyb3VuZFRhc2sKIAog
QGVuZAogCi10eXBlZGVmIHZvaWQoXlJCU0Fzc2VydGlvbkludmFsaWRhdGlvbkNhbGxiYWNrVHlw
ZSkoKTsKLQotQGludGVyZmFjZSBXS1JCU0Fzc2VydGlvbkRlbGVnYXRlIDogTlNPYmplY3Q8UkJT
QXNzZXJ0aW9uT2JzZXJ2aW5nPgotQHByb3BlcnR5IChjb3B5KSBSQlNBc3NlcnRpb25JbnZhbGlk
YXRpb25DYWxsYmFja1R5cGUgaW52YWxpZGF0aW9uQ2FsbGJhY2s7Ci1AZW5kCi0KLUBpbXBsZW1l
bnRhdGlvbiBXS1JCU0Fzc2VydGlvbkRlbGVnYXRlCi0tICh2b2lkKWRlYWxsb2MKLXsKLSAgICBb
X2ludmFsaWRhdGlvbkNhbGxiYWNrIHJlbGVhc2VdOwotICAgIFtzdXBlciBkZWFsbG9jXTsKLX0K
LQotLSAodm9pZClhc3NlcnRpb25XaWxsSW52YWxpZGF0ZTooUkJTQXNzZXJ0aW9uICopYXNzZXJ0
aW9uCi17Ci0gICAgUkVMRUFTRV9MT0coUHJvY2Vzc1N1c3BlbnNpb24sICIlcCAtIFdLUkJTQXNz
ZXJ0aW9uRGVsZWdhdGU6IGFzc2VydGlvbldpbGxJbnZhbGlkYXRlIiwgc2VsZik7Ci19Ci0KLS0g
KHZvaWQpYXNzZXJ0aW9uOihSQlNBc3NlcnRpb24gKilhc3NlcnRpb24gZGlkSW52YWxpZGF0ZVdp
dGhFcnJvcjooTlNFcnJvciAqKWVycm9yCi17Ci0gICAgUkVMRUFTRV9MT0coUHJvY2Vzc1N1c3Bl
bnNpb24sICIlcCAtIFdLUkJTQXNzZXJ0aW9uRGVsZWdhdGU6IGFzc2VydGlvbiB3YXMgaW52YWxp
ZGF0ZWQsIGVycm9yOiAle3B1YmxpY31AIiwgZXJyb3IsIHNlbGYpOwotCi0gICAgUnVuTG9vcDo6
bWFpbigpLmRpc3BhdGNoKFt3ZWFrU2VsZiA9IFdlYWtPYmpDUHRyPFdLUkJTQXNzZXJ0aW9uRGVs
ZWdhdGU+KHNlbGYpXSB7Ci0gICAgICAgIGF1dG8gc3Ryb25nU2VsZiA9IHdlYWtTZWxmLmdldCgp
OwotICAgICAgICBpZiAoc3Ryb25nU2VsZiAmJiBzdHJvbmdTZWxmLmdldCgpLmludmFsaWRhdGlv
bkNhbGxiYWNrKQotICAgICAgICAgICAgc3Ryb25nU2VsZi5nZXQoKS5pbnZhbGlkYXRpb25DYWxs
YmFjaygpOwotICAgIH0pOwotfQotQGVuZAotCiBuYW1lc3BhY2UgV2ViS2l0IHsKIAogc3RhdGlj
IE5TU3RyaW5nICpydW5uaW5nQm9hcmROYW1lRm9yQXNzZXJ0aW9uVHlwZShQcm9jZXNzQXNzZXJ0
aW9uVHlwZSBhc3NlcnRpb25UeXBlKQpAQCAtMzA3LDM1ICsyNzYsMjQgQEAgUHJvY2Vzc0Fzc2Vy
dGlvbjo6UHJvY2Vzc0Fzc2VydGlvbihwaWRfdCBwaWQsIGNvbnN0IFN0cmluZyYgcmVhc29uLCBQ
cm9jZXNzQXNzZXIKICAgICBSQlNUYXJnZXQgKnRhcmdldCA9IFtSQlNUYXJnZXQgdGFyZ2V0V2l0
aFBpZDpwaWRdOwogICAgIFJCU0RvbWFpbkF0dHJpYnV0ZSAqZG9tYWluQXR0cmlidXRlID0gW1JC
U0RvbWFpbkF0dHJpYnV0ZSBhdHRyaWJ1dGVXaXRoRG9tYWluOkAiY29tLmFwcGxlLndlYmtpdCIg
bmFtZTpydW5uaW5nQm9hcmRBc3NlcnRpb25OYW1lXTsKICAgICBtX3Jic0Fzc2VydGlvbiA9IGFk
b3B0TlMoW1tSQlNBc3NlcnRpb24gYWxsb2NdIGluaXRXaXRoRXhwbGFuYXRpb246cmVhc29uIHRh
cmdldDp0YXJnZXQgYXR0cmlidXRlczpAW2RvbWFpbkF0dHJpYnV0ZV1dKTsKLQotICAgIG1fZGVs
ZWdhdGUgPSBhZG9wdE5TKFtbV0tSQlNBc3NlcnRpb25EZWxlZ2F0ZSBhbGxvY10gaW5pdF0pOwot
ICAgIFttX3Jic0Fzc2VydGlvbiBhZGRPYnNlcnZlcjptX2RlbGVnYXRlLmdldCgpXTsKLSAgICBt
X2RlbGVnYXRlLmdldCgpLmludmFsaWRhdGlvbkNhbGxiYWNrID0gXnsKLSAgICAgICAgUkVMRUFT
RV9MT0coUHJvY2Vzc1N1c3BlbnNpb24sICIlcCAtIFByb2Nlc3NBc3NlcnRpb24oKSBSQlMgJXtw
dWJsaWN9QCBhc3NlcnRpb24gZm9yIHByb2Nlc3Mgd2l0aCBQSUQ9JWQgd2FzIGludmFsaWRhdGVk
IiwgdGhpcywgcnVubmluZ0JvYXJkQXNzZXJ0aW9uTmFtZSwgcGlkKTsKLSAgICAgICAgcHJvY2Vz
c0Fzc2VydGlvbldhc0ludmFsaWRhdGVkKCk7Ci0gICAgfTsKLQotICAgIE5TRXJyb3IgKmFjcXVp
c2l0aW9uRXJyb3IgPSBuaWw7Ci0gICAgaWYgKCFbbV9yYnNBc3NlcnRpb24gYWNxdWlyZVdpdGhF
cnJvcjomYWNxdWlzaXRpb25FcnJvcl0pIHsKLSAgICAgICAgUkVMRUFTRV9MT0dfRVJST1IoUHJv
Y2Vzc1N1c3BlbnNpb24sICIlcCAtIFByb2Nlc3NBc3NlcnRpb246IEZhaWxlZCB0byBhY3F1aXJl
IFJCUyAle3B1YmxpY31AIGFzc2VydGlvbiAnJXtwdWJsaWN9cycgZm9yIHByb2Nlc3Mgd2l0aCBQ
SUQ9JWQsIGVycm9yOiAle3B1YmxpY31AIiwgdGhpcywgcnVubmluZ0JvYXJkQXNzZXJ0aW9uTmFt
ZSwgcmVhc29uLnV0ZjgoKS5kYXRhKCksIHBpZCwgYWNxdWlzaXRpb25FcnJvcik7Ci0gICAgICAg
IFJ1bkxvb3A6Om1haW4oKS5kaXNwYXRjaChbd2Vha1RoaXMgPSBtYWtlV2Vha1B0cigqdGhpcyld
IHsKLSAgICAgICAgICAgIGlmICh3ZWFrVGhpcykKLSAgICAgICAgICAgICAgICB3ZWFrVGhpcy0+
cHJvY2Vzc0Fzc2VydGlvbldhc0ludmFsaWRhdGVkKCk7CisgICAgW21fcmJzQXNzZXJ0aW9uIGFj
cXVpcmVXaXRoSW52YWxpZGF0aW9uSGFuZGxlcjpbd2Vha1RoaXMgPSBtYWtlV2Vha1B0cigqdGhp
cyksIHBpZCwgcnVubmluZ0JvYXJkQXNzZXJ0aW9uTmFtZSA9IHJldGFpblB0cihydW5uaW5nQm9h
cmRBc3NlcnRpb25OYW1lKV0oUkJTQXNzZXJ0aW9uICphc3NlcnRpb24sIE5TRXJyb3IgKmVycm9y
KSBtdXRhYmxlIHsKKyAgICAgICAgY2FsbE9uTWFpblJ1bkxvb3AoW3dlYWtUaGlzID0gV1RGTW92
ZSh3ZWFrVGhpcyksIHBpZCwgcnVubmluZ0JvYXJkQXNzZXJ0aW9uTmFtZSA9IFdURk1vdmUocnVu
bmluZ0JvYXJkQXNzZXJ0aW9uTmFtZSksIGVycm9yID0gcmV0YWluUHRyKGVycm9yKV0geworICAg
ICAgICAgICAgaWYgKCF3ZWFrVGhpcykKKyAgICAgICAgICAgICAgICByZXR1cm47CisgICAgICAg
ICAgICBSRUxFQVNFX0xPRyhQcm9jZXNzU3VzcGVuc2lvbiwgIiVwIC0gUHJvY2Vzc0Fzc2VydGlv
bigpIFJCUyAle3B1YmxpY31AIGFzc2VydGlvbiBmb3IgcHJvY2VzcyB3aXRoIFBJRD0lZCB3YXMg
aW52YWxpZGF0ZWQsIGVycm9yOiAle3B1YmxpY31AIiwgd2Vha1RoaXMuZ2V0KCksIHJ1bm5pbmdC
b2FyZEFzc2VydGlvbk5hbWUuZ2V0KCksIHBpZCwgZXJyb3IuZ2V0KCkpOworICAgICAgICAgICAg
d2Vha1RoaXMtPnByb2Nlc3NBc3NlcnRpb25XYXNJbnZhbGlkYXRlZCgpOwogICAgICAgICB9KTsK
LSAgICB9IGVsc2UKLSAgICAgICAgUkVMRUFTRV9MT0coUHJvY2Vzc1N1c3BlbnNpb24sICIlcCAt
IFByb2Nlc3NBc3NlcnRpb246IFN1Y2Nlc3NmdWxseSB0b29rIFJCUyAle3B1YmxpY31AIGFzc2Vy
dGlvbiAnJXtwdWJsaWN9cycgZm9yIHByb2Nlc3Mgd2l0aCBQSUQ9JWQiLCB0aGlzLCBydW5uaW5n
Qm9hcmRBc3NlcnRpb25OYW1lLCByZWFzb24udXRmOCgpLmRhdGEoKSwgcGlkKTsKKyAgICB9XTsK
KworICAgIFJFTEVBU0VfTE9HKFByb2Nlc3NTdXNwZW5zaW9uLCAiJXAgLSBQcm9jZXNzQXNzZXJ0
aW9uOiBUb29rIFJCUyAle3B1YmxpY31AIGFzc2VydGlvbiAnJXtwdWJsaWN9cycgZm9yIHByb2Nl
c3Mgd2l0aCBQSUQ9JWQiLCB0aGlzLCBydW5uaW5nQm9hcmRBc3NlcnRpb25OYW1lLCByZWFzb24u
dXRmOCgpLmRhdGEoKSwgcGlkKTsKIH0KIAogUHJvY2Vzc0Fzc2VydGlvbjo6flByb2Nlc3NBc3Nl
cnRpb24oKQogewogICAgIFJFTEVBU0VfTE9HKFByb2Nlc3NTdXNwZW5zaW9uLCAiJXAgLSB+UHJv
Y2Vzc0Fzc2VydGlvbigpIFJlbGVhc2luZyBwcm9jZXNzIGFzc2VydGlvbiBmb3IgcHJvY2VzcyB3
aXRoIFBJRD0lZCIsIHRoaXMsIG1fcGlkKTsKIAotICAgIGlmIChtX3Jic0Fzc2VydGlvbikgewot
ICAgICAgICBtX2RlbGVnYXRlLmdldCgpLmludmFsaWRhdGlvbkNhbGxiYWNrID0gbmlsOwotICAg
ICAgICBbbV9yYnNBc3NlcnRpb24gcmVtb3ZlT2JzZXJ2ZXI6bV9kZWxlZ2F0ZS5nZXQoKV07Ci0g
ICAgICAgIG1fZGVsZWdhdGUgPSBuaWw7CisgICAgaWYgKG1fcmJzQXNzZXJ0aW9uKQogICAgICAg
ICBbbV9yYnNBc3NlcnRpb24gaW52YWxpZGF0ZV07Ci0gICAgfQogfQogCiB2b2lkIFByb2Nlc3NB
c3NlcnRpb246OnByb2Nlc3NBc3NlcnRpb25XYXNJbnZhbGlkYXRlZCgpCkBAIC0zNDMsMTMgKzMw
MSwxNCBAQCB2b2lkIFByb2Nlc3NBc3NlcnRpb246OnByb2Nlc3NBc3NlcnRpb25XYXNJbnZhbGlk
YXRlZCgpCiAgICAgQVNTRVJUKFJ1bkxvb3A6OmlzTWFpbigpKTsKICAgICBSRUxFQVNFX0xPRyhQ
cm9jZXNzU3VzcGVuc2lvbiwgIiVwIC0gUHJvY2Vzc0Fzc2VydGlvbjo6cHJvY2Vzc0Fzc2VydGlv
bldhc0ludmFsaWRhdGVkKCkgUElEPSVkIiwgdGhpcywgbV9waWQpOwogCisgICAgbV93YXNJbnZh
bGlkYXRlZCA9IHRydWU7CiAgICAgaWYgKG1faW52YWxpZGF0aW9uSGFuZGxlcikKICAgICAgICAg
bV9pbnZhbGlkYXRpb25IYW5kbGVyKCk7CiB9CiAKIGJvb2wgUHJvY2Vzc0Fzc2VydGlvbjo6aXNW
YWxpZCgpIGNvbnN0CiB7Ci0gICAgcmV0dXJuIG1fcmJzQXNzZXJ0aW9uICYmIG1fcmJzQXNzZXJ0
aW9uLmdldCgpLnZhbGlkOworICAgIHJldHVybiBtX3Jic0Fzc2VydGlvbiAmJiAhbV93YXNJbnZh
bGlkYXRlZDsKIH0KIAogdm9pZCBQcm9jZXNzQW5kVUlBc3NlcnRpb246OnVwZGF0ZVJ1bkluQmFj
a2dyb3VuZENvdW50KCkK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>432716</attachid>
            <date>2021-07-01 12:51:34 -0700</date>
            <delta_ts>2021-07-01 13:21:38 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-225324-20210701125133.patch</filename>
            <type>text/plain</type>
            <size>29857</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc5NDYzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IGI3MTRhOGJhNTRkMmU5Y2Vh
NWM3YjE0MTdkNmY0NDg5OThmNjQyYWIuLjFjMTA3NTg3NDQyMmU5OTIzZDM5MmExMDM5YmI5MzAw
ZDAxN2UzMWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNzAgQEAKKzIwMjEtMDctMDEgIENocmlzIER1
bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KKworICAgICAgICBbaU9TXSBIYXZlIFByb2Nlc3NBc3Nl
cnRpb24gdGFrZSB0aGUgUnVubmluZ0JvYXJkIGFzc2VydGlvbiBhc3luY2hyb25vdXNseSBieSBk
ZWZhdWx0CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0y
MjUzMjQKKyAgICAgICAgPHJkYXI6Ly83Njk3MjI1Mj4KKworICAgICAgICBSZXZpZXdlZCBieSBO
T0JPRFkgKE9PUFMhKS4KKworICAgICAgICBIYXZlIFByb2Nlc3NBc3NlcnRpb24gdGFrZSB0aGUg
UnVubmluZ0JvYXJkIGFzc2VydGlvbiBhc3luY2hyb25vdXNseSAob24gYSBiYWNrZ3JvdW5kIHRo
cmVhZCkgYnkKKyAgICAgICAgZGVmYXVsdCBhcyB3ZSBoYXZlIGV2aWRlbmNlIHRoYXQgZG9pbmcg
c28gb24gdGhlIG1haW4gdGhyZWFkIGlzIGJhZCBmb3IgcGVyZm9ybWFuY2UgYW5kIG1heQorICAg
ICAgICBuZWdhdGl2ZWx5IGltcGFjdCBsYXVuY2ggdGltZS4KKworICAgICAgICBXaGVuIGNvbnN0
cnVjdGluZyBhIFByb2Nlc3NBc3NlcnRpb24sIHRoZSBjYWxsZXIgY2FuIG5vdyBpbmRpY2F0ZSBp
ZiBpdCB3YW50cyB0aGUgYXNzZXJ0aW9uIHRvIGJlCisgICAgICAgIHRha2VuIGFzeW5jaHJvbm91
c2x5IChkZWZhdWx0KSBvciBub3QuIEJ1ZyAyMjc1NTIgaXMgYW4gZXhhbXBsZSBvZiBhIGNhc2Ug
d2hlcmUgd2Ugc3RpbGwgd2FudCB0bworICAgICAgICB0YWtlIHRoZSBhc3NlcnRpb24gc3luY2hy
b25vdXNseSAoYmVjYXVzZSB3ZSdyZSBub3Qgb24gdGhlIG1haW4gdGhyZWFkIGFuZCB3ZSBuZWVk
IHRvIG1ha2Ugc3VyZQorICAgICAgICB3ZSBoYXZlIHRoZSBhc3NlcnRpb24gYmVmb3JlIHByb2Nl
ZWRpbmcpLgorCisgICAgICAgIFRoZSBjYWxsZXIgY2FuIGFsc28gcHJvdmlkZSBhIGNvbXBsZXRp
b24gaGFuZGxlciB0aGF0IHdpbGwgZ2V0IGNhbGxlZCBvbmNlIHRoZSBSdW5uaW5nQm9hcmQgaXMK
KyAgICAgICAgdGFrZW4uIE5vdGUgdGhhdCB0aGUgUnVubmluZ0JvYXJkIGFzeW5jIEFQSSAoW1JC
U0Fzc2VydGlvbiBhY3F1aXJlV2l0aEludmFsaWRhdGlvbkhhbmRsZXJdKSBkb2VzCisgICAgICAg
IG5vdCBwcm92aWRlIGEgd2F5IGZvciB1cyB0byBrbm93IHdoZW4gdGhlIGFzc2VydGlvbiBpcyB0
YWtlbi4gRm9yIHRoaXMgcmVhc29uLCBQcm9jZXNzQXNzZXJ0aW9uCisgICAgICAgIGtlZXBzIHVz
aW5nIHRoZSBSdW5uaW5nQm9hcmQgc3luYyBBUEkgKFtSQlNBc3NlcnRpb24gYWNxdWlyZVdpdGhF
cnJvcjpdKSBidXQgY2FsbHMgaW4gb24gYQorICAgICAgICBiYWNrZ3JvdW5kIHF1ZXVlLgorCisg
ICAgICAgIEZvciB0aGUgVUlQcm9jZXNzJ3MgYmFja2dyb3VuZCB0YXNrIHRob3VnaCwgd2UgZG9u
J3QgbmVlZCB0byBrbm93IHdoZW4gdGhlIGFzc2VydGlvbiBpcyB0YWtlbgorICAgICAgICBzbyB3
ZSBjYW4gdXNlIHRoZSBSdW5uaW5nQm9hcmQgYXN5bmMgQVBJLgorCisgICAgICAgIE5vdGUgdGhh
dCB0aGUgcHJldmlvdXMgaXRlcmF0aW9uIG9mIHRoaXMgcGF0Y2ggaGFkIGEgYnVnIHdoZXJlIHRo
ZSBQcm9jZXNzVGhyb3R0bGVyIHdvdWxkIHJlbGVhc2UKKyAgICAgICAgaXRzIHByZXZpb3VzIGFz
c2VydGlvbiBiZWZvcmUgdGhlIG5ldyBvbmUgaXMgdGFrZW4gKGFzeW5jaHJvbm91c2x5KSB3aGVu
IGNoYW5naW5nIHRoZSBhc3NlcnRpb24KKyAgICAgICAgdHlwZSAoZS5nLiBmb3JlZ3JvdW5kIHRv
IGJhY2tncm91bmQpLiBUaGlzIGlzIGFkZHJlc3NlZCBpbiB0aGlzIHBhdGNoLiBQcm9jZXNzVGhy
b3R0bGVyIG5vdyBwYXNzZXMKKyAgICAgICAgYW4gYWNxdWlzaXRpb24gaGFuZGxlciB3aGVuIGNv
bnN0cnVjdGluZyB0aGUgUHJvY2Vzc0Fzc2VydGlvbiBhbmQgb25seSByZWxlYXNlcyBpdHMgcHJl
dmlvdXMKKyAgICAgICAgYXNzZXJ0aW9uIG9uY2UgdGhlIGFjcXVpc2l0aW9uIGhhbmRsZXIgZm9y
IHRoZSBuZXcgb25lIGlzIHRha2VuLgorCisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvRG93bmxv
YWRzL0Rvd25sb2FkTWFwLmNwcDoKKyAgICAgICAgKFdlYktpdDo6RG93bmxvYWRNYXA6OmFkZCk6
CisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvRG93bmxvYWRzL0Rvd25sb2FkTWFwLmg6CisgICAg
ICAgICogUGxhdGZvcm0vSVBDL2NvY29hL0Nvbm5lY3Rpb25Db2NvYS5tbToKKyAgICAgICAgKElQ
Qzo6Q29ubmVjdGlvblRlcm1pbmF0aW9uV2F0Y2hkb2c6OkNvbm5lY3Rpb25UZXJtaW5hdGlvbldh
dGNoZG9nKToKKyAgICAgICAgKiBVSVByb2Nlc3MvRG93bmxvYWRzL0Rvd25sb2FkUHJveHlNYXAu
Y3BwOgorICAgICAgICAoV2ViS2l0OjpEb3dubG9hZFByb3h5TWFwOjpjcmVhdGVEb3dubG9hZFBy
b3h5KToKKyAgICAgICAgKiBVSVByb2Nlc3MvRG93bmxvYWRzL0Rvd25sb2FkUHJveHlNYXAuaDoK
KyAgICAgICAgKiBVSVByb2Nlc3MvTmV0d29yay9OZXR3b3JrUHJvY2Vzc1Byb3h5LmNwcDoKKyAg
ICAgICAgKFdlYktpdDo6TmV0d29ya1Byb2Nlc3NQcm94eTo6c2V0V2ViUHJvY2Vzc0hhc1VwbG9h
ZHMpOgorICAgICAgICAqIFVJUHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9jZXNzUHJveHkuaDoK
KyAgICAgICAgKiBVSVByb2Nlc3MvUHJvY2Vzc0Fzc2VydGlvbi5jcHA6CisgICAgICAgIChXZWJL
aXQ6OlByb2Nlc3NBc3NlcnRpb246OlByb2Nlc3NBc3NlcnRpb24pOgorICAgICAgICAqIFVJUHJv
Y2Vzcy9Qcm9jZXNzQXNzZXJ0aW9uLmg6CisgICAgICAgIChXZWJLaXQ6OlByb2Nlc3NBc3NlcnRp
b246OmNyZWF0ZSk6CisgICAgICAgICogVUlQcm9jZXNzL1Byb2Nlc3NUaHJvdHRsZXIuY3BwOgor
ICAgICAgICAoV2ViS2l0OjpQcm9jZXNzVGhyb3R0bGVyOjpzZXRBc3NlcnRpb25UeXBlKToKKyAg
ICAgICAgKiBVSVByb2Nlc3MvUHJvY2Vzc1Rocm90dGxlci5oOgorICAgICAgICAqIFVJUHJvY2Vz
cy9XZWJQcm9jZXNzUG9vbC5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3NQb29sOjp1
cGRhdGVBdWRpYmxlTWVkaWFBc3NlcnRpb25zKToKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUHJv
Y2Vzc1Bvb2wuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5LmNwcDoKKyAg
ICAgICAgKFdlYktpdDo6V2ViUHJvY2Vzc1Byb3h5Ojp1cGRhdGVBdWRpYmxlTWVkaWFBc3NlcnRp
b25zKToKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5Lmg6CisgICAgICAgICog
VUlQcm9jZXNzL2lvcy9Qcm9jZXNzQXNzZXJ0aW9uSU9TLm1tOgorICAgICAgICAoYXNzZXJ0aW9u
c1dvcmtRdWV1ZSk6CisgICAgICAgICgtW1dLUHJvY2Vzc0Fzc2VydGlvbkJhY2tncm91bmRUYXNr
TWFuYWdlciBfdXBkYXRlQmFja2dyb3VuZFRhc2tdKToKKyAgICAgICAgKC1bV0tQcm9jZXNzQXNz
ZXJ0aW9uQmFja2dyb3VuZFRhc2tNYW5hZ2VyIGFzc2VydGlvbjpkaWRJbnZhbGlkYXRlV2l0aEVy
cm9yOl0pOgorICAgICAgICAoV2ViS2l0OjpQcm9jZXNzQXNzZXJ0aW9uOjpQcm9jZXNzQXNzZXJ0
aW9uKToKKyAgICAgICAgKFdlYktpdDo6UHJvY2Vzc0Fzc2VydGlvbjo6YWNxdWlyZUFzeW5jKToK
KyAgICAgICAgKFdlYktpdDo6UHJvY2Vzc0Fzc2VydGlvbjo6YWNxdWlyZVN5bmMpOgorICAgICAg
ICAoV2ViS2l0OjpQcm9jZXNzQXNzZXJ0aW9uOjp+UHJvY2Vzc0Fzc2VydGlvbik6CisgICAgICAg
IChXZWJLaXQ6OlByb2Nlc3NBc3NlcnRpb246OnByb2Nlc3NBc3NlcnRpb25XYXNJbnZhbGlkYXRl
ZCk6CisgICAgICAgIChXZWJLaXQ6OlByb2Nlc3NBc3NlcnRpb246OmlzVmFsaWQgY29uc3QpOgor
CiAyMDIxLTA3LTAxICBZb3Vlbm4gRmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KIAogICAgICAg
ICBbQ29jb2FdIE1pZ3JhdGUgV2ViUlRDIFVEUCBzb2NrZXQgaGFuZGxpbmcgdG8gTlcgQVBJCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL0Rvd25sb2Fkcy9Eb3dubG9h
ZE1hcC5jcHAgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL0Rvd25sb2Fkcy9Eb3dubG9h
ZE1hcC5jcHAKaW5kZXggOGQ1MDIwMzc2OGFhZjNjNzk3MTdjZjRmMjk4NzgyMjc4ZWM2NGU0NS4u
NDA0MmRkZjVkOGJmZTMzNDE4OWJmNGRmMzBmZDFhZTUwNjFmMDM3YSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9Eb3dubG9hZHMvRG93bmxvYWRNYXAuY3BwCisrKyBi
L1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvRG93bmxvYWRzL0Rvd25sb2FkTWFwLmNwcApA
QCAtNjEsNyArNjEsNyBAQCBEb3dubG9hZE1hcDo6RG93bmxvYWRNYXBUeXBlOjpBZGRSZXN1bHQg
RG93bmxvYWRNYXA6OmFkZChEb3dubG9hZElEIGRvd25sb2FkSUQsCiAgICAgYXV0byByZXN1bHQg
PSBtX2Rvd25sb2Fkcy5hZGQoZG93bmxvYWRJRCwgV1RGTW92ZShkb3dubG9hZCkpOwogICAgIGlm
IChtX2Rvd25sb2Fkcy5zaXplKCkgPT0gMSkgewogICAgICAgICBBU1NFUlQoIW1fZG93bmxvYWRB
c3NlcnRpb24pOwotICAgICAgICBtX2Rvd25sb2FkQXNzZXJ0aW9uID0gbWFrZVVuaXF1ZTxQcm9j
ZXNzQXNzZXJ0aW9uPihnZXRwaWQoKSwgIldlYktpdCBkb3dubG9hZHMiX3MsIFByb2Nlc3NBc3Nl
cnRpb25UeXBlOjpVbmJvdW5kZWROZXR3b3JraW5nKTsKKyAgICAgICAgbV9kb3dubG9hZEFzc2Vy
dGlvbiA9IFByb2Nlc3NBc3NlcnRpb246OmNyZWF0ZShnZXRwaWQoKSwgIldlYktpdCBkb3dubG9h
ZHMiX3MsIFByb2Nlc3NBc3NlcnRpb25UeXBlOjpVbmJvdW5kZWROZXR3b3JraW5nKTsKICAgICAg
ICAgUkVMRUFTRV9MT0coUHJvY2Vzc1N1c3BlbnNpb24sICJUb29rICdXZWJLaXQgZG93bmxvYWRz
JyBhc3NlcnRpb24gaW4gTmV0d29ya1Byb2Nlc3MiKTsKICAgICB9CiAKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvRG93bmxvYWRzL0Rvd25sb2FkTWFwLmggYi9Tb3Vy
Y2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL0Rvd25sb2Fkcy9Eb3dubG9hZE1hcC5oCmluZGV4IGI1
MjU2N2NhYTM4YTQzNzYxOWNmMGU2NzI2ZWI4YzNmYzkxMTY3MTAuLmE4YmQyOGU2OGNhZDNhZGU0
ODMwNTViMmYyMTdmNTAxYmQ5ZmI5YmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29y
a1Byb2Nlc3MvRG93bmxvYWRzL0Rvd25sb2FkTWFwLmgKKysrIGIvU291cmNlL1dlYktpdC9OZXR3
b3JrUHJvY2Vzcy9Eb3dubG9hZHMvRG93bmxvYWRNYXAuaApAQCAtNTMsNyArNTMsNyBAQCBwdWJs
aWM6CiAKIHByaXZhdGU6CiAgICAgRG93bmxvYWRNYXBUeXBlIG1fZG93bmxvYWRzOwotICAgIHN0
ZDo6dW5pcXVlX3B0cjxQcm9jZXNzQXNzZXJ0aW9uPiBtX2Rvd25sb2FkQXNzZXJ0aW9uOworICAg
IFJlZlB0cjxQcm9jZXNzQXNzZXJ0aW9uPiBtX2Rvd25sb2FkQXNzZXJ0aW9uOwogfTsKIAogI2Vu
ZGlmIC8vICFFTkFCTEUoVEFLRV9VTkJPVU5ERURfTkVUV09SS0lOR19BU1NFUlRJT04pCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L1BsYXRmb3JtL0lQQy9jb2NvYS9Db25uZWN0aW9uQ29jb2Eu
bW0gYi9Tb3VyY2UvV2ViS2l0L1BsYXRmb3JtL0lQQy9jb2NvYS9Db25uZWN0aW9uQ29jb2EubW0K
aW5kZXggMzg5ODIwMDk3OGU0MzU0OTdkMzgwNzQwMWUzNjZhMTkyODc0NzhjMy4uZTc5MjIxOTM0
ZmI0YzUyOTEyNDc5NDlmMTRmMzY5NzFlMTZlYzcxNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9QbGF0Zm9ybS9JUEMvY29jb2EvQ29ubmVjdGlvbkNvY29hLm1tCisrKyBiL1NvdXJjZS9XZWJL
aXQvUGxhdGZvcm0vSVBDL2NvY29hL0Nvbm5lY3Rpb25Db2NvYS5tbQpAQCAtODksNyArODksNyBA
QCBwcml2YXRlOgogICAgICAgICA6IG1feHBjQ29ubmVjdGlvbih4cGNDb25uZWN0aW9uKQogICAg
ICAgICAsIG1fd2F0Y2hkb2dUaW1lcihSdW5Mb29wOjptYWluKCksIHRoaXMsICZDb25uZWN0aW9u
VGVybWluYXRpb25XYXRjaGRvZzo6d2F0Y2hkb2dUaW1lckZpcmVkKQogI2lmIFBMQVRGT1JNKElP
U19GQU1JTFkpCi0gICAgICAgICwgbV9hc3NlcnRpb24obWFrZVVuaXF1ZTxXZWJLaXQ6OlByb2Nl
c3NBbmRVSUFzc2VydGlvbj4oeHBjX2Nvbm5lY3Rpb25fZ2V0X3BpZChtX3hwY0Nvbm5lY3Rpb24u
Z2V0KCkpLCAiQ29ubmVjdGlvblRlcm1pbmF0aW9uV2F0Y2hkb2ciX3MsIFdlYktpdDo6UHJvY2Vz
c0Fzc2VydGlvblR5cGU6OkJhY2tncm91bmQpKQorICAgICAgICAsIG1fYXNzZXJ0aW9uKFdlYktp
dDo6UHJvY2Vzc0FuZFVJQXNzZXJ0aW9uOjpjcmVhdGUoeHBjX2Nvbm5lY3Rpb25fZ2V0X3BpZCht
X3hwY0Nvbm5lY3Rpb24uZ2V0KCkpLCAiQ29ubmVjdGlvblRlcm1pbmF0aW9uV2F0Y2hkb2ciX3Ms
IFdlYktpdDo6UHJvY2Vzc0Fzc2VydGlvblR5cGU6OkJhY2tncm91bmQpKQogI2VuZGlmCiAgICAg
ewogICAgICAgICBtX3dhdGNoZG9nVGltZXIuc3RhcnRPbmVTaG90KGludGVydmFsKTsKQEAgLTEw
NCw3ICsxMDQsNyBAQCBwcml2YXRlOgogICAgIE9TT2JqZWN0UHRyPHhwY19jb25uZWN0aW9uX3Q+
IG1feHBjQ29ubmVjdGlvbjsKICAgICBSdW5Mb29wOjpUaW1lcjxDb25uZWN0aW9uVGVybWluYXRp
b25XYXRjaGRvZz4gbV93YXRjaGRvZ1RpbWVyOwogI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCi0g
ICAgc3RkOjp1bmlxdWVfcHRyPFdlYktpdDo6UHJvY2Vzc0FuZFVJQXNzZXJ0aW9uPiBtX2Fzc2Vy
dGlvbjsKKyAgICBSZWY8V2ViS2l0OjpQcm9jZXNzQW5kVUlBc3NlcnRpb24+IG1fYXNzZXJ0aW9u
OwogI2VuZGlmCiB9OwogICAgIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
RG93bmxvYWRzL0Rvd25sb2FkUHJveHlNYXAuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
RG93bmxvYWRzL0Rvd25sb2FkUHJveHlNYXAuY3BwCmluZGV4IDA3MDI3NGM0N2E4MGU1ODRlNjc0
YmQyMjkxMzQ2NjQ5OTMzZTU3YjIuLmIxNDk5ZmYxNDVjYjc1NmMyNDZhNDdhZWZlMzk4ZDZhYjdj
NDNjYjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0Rvd25sb2Fkcy9Eb3du
bG9hZFByb3h5TWFwLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Eb3dubG9hZHMv
RG93bmxvYWRQcm94eU1hcC5jcHAKQEAgLTkwLDEwICs5MCwxMCBAQCBEb3dubG9hZFByb3h5JiBE
b3dubG9hZFByb3h5TWFwOjpjcmVhdGVEb3dubG9hZFByb3h5KFdlYnNpdGVEYXRhU3RvcmUmIGRh
dGFTdG9yZQogCiAgICAgaWYgKG1fZG93bmxvYWRzLnNpemUoKSA9PSAxICYmIG1fc2hvdWxkVGFr
ZUFzc2VydGlvbikgewogICAgICAgICBBU1NFUlQoIW1fZG93bmxvYWRVSUFzc2VydGlvbik7Ci0g
ICAgICAgIG1fZG93bmxvYWRVSUFzc2VydGlvbiA9IG1ha2VVbmlxdWU8UHJvY2Vzc0Fzc2VydGlv
bj4oZ2V0Q3VycmVudFByb2Nlc3NJRCgpLCAiV2ViS2l0IGRvd25sb2FkcyJfcywgUHJvY2Vzc0Fz
c2VydGlvblR5cGU6OlVuYm91bmRlZE5ldHdvcmtpbmcpOworICAgICAgICBtX2Rvd25sb2FkVUlB
c3NlcnRpb24gPSBQcm9jZXNzQXNzZXJ0aW9uOjpjcmVhdGUoZ2V0Q3VycmVudFByb2Nlc3NJRCgp
LCAiV2ViS2l0IGRvd25sb2FkcyJfcywgUHJvY2Vzc0Fzc2VydGlvblR5cGU6OlVuYm91bmRlZE5l
dHdvcmtpbmcpOwogCiAgICAgICAgIEFTU0VSVCghbV9kb3dubG9hZE5ldHdvcmtpbmdBc3NlcnRp
b24pOwotICAgICAgICBtX2Rvd25sb2FkTmV0d29ya2luZ0Fzc2VydGlvbiA9IG1ha2VVbmlxdWU8
UHJvY2Vzc0Fzc2VydGlvbj4obV9wcm9jZXNzLnByb2Nlc3NJZGVudGlmaWVyKCksICJXZWJLaXQg
ZG93bmxvYWRzIl9zLCBQcm9jZXNzQXNzZXJ0aW9uVHlwZTo6VW5ib3VuZGVkTmV0d29ya2luZyk7
CisgICAgICAgIG1fZG93bmxvYWROZXR3b3JraW5nQXNzZXJ0aW9uID0gUHJvY2Vzc0Fzc2VydGlv
bjo6Y3JlYXRlKG1fcHJvY2Vzcy5wcm9jZXNzSWRlbnRpZmllcigpLCAiV2ViS2l0IGRvd25sb2Fk
cyJfcywgUHJvY2Vzc0Fzc2VydGlvblR5cGU6OlVuYm91bmRlZE5ldHdvcmtpbmcpOwogCiAgICAg
ICAgIFJFTEVBU0VfTE9HKFByb2Nlc3NTdXNwZW5zaW9uLCAiVUlQcm9jZXNzIHRvb2sgJ1dlYktp
dCBkb3dubG9hZHMnIGFzc2VydGlvbnMgZm9yIFVJUHJvY2VzcyBhbmQgTmV0d29ya1Byb2Nlc3Mi
KTsKICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Eb3dubG9hZHMv
RG93bmxvYWRQcm94eU1hcC5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvRG93bmxvYWRzL0Rv
d25sb2FkUHJveHlNYXAuaAppbmRleCA0ZmEwMDFiZDdmYWUxY2VkMDI0ZDJiOTFmMjAxNzBmZjk5
NDUyOGJlLi44MTJmNjRkNDcyNTc1YjE0MjFhNmU3NWJkODI4OWMwZWQxMDM5OTkzIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Eb3dubG9hZHMvRG93bmxvYWRQcm94eU1hcC5o
CisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0Rvd25sb2Fkcy9Eb3dubG9hZFByb3h5TWFw
LmgKQEAgLTc1LDggKzc1LDggQEAgcHJpdmF0ZToKICAgICBIYXNoTWFwPERvd25sb2FkSUQsIFJl
ZlB0cjxEb3dubG9hZFByb3h5Pj4gbV9kb3dubG9hZHM7CiAKICAgICBib29sIG1fc2hvdWxkVGFr
ZUFzc2VydGlvbiB7IGZhbHNlIH07Ci0gICAgc3RkOjp1bmlxdWVfcHRyPFByb2Nlc3NBc3NlcnRp
b24+IG1fZG93bmxvYWRVSUFzc2VydGlvbjsKLSAgICBzdGQ6OnVuaXF1ZV9wdHI8UHJvY2Vzc0Fz
c2VydGlvbj4gbV9kb3dubG9hZE5ldHdvcmtpbmdBc3NlcnRpb247CisgICAgUmVmUHRyPFByb2Nl
c3NBc3NlcnRpb24+IG1fZG93bmxvYWRVSUFzc2VydGlvbjsKKyAgICBSZWZQdHI8UHJvY2Vzc0Fz
c2VydGlvbj4gbV9kb3dubG9hZE5ldHdvcmtpbmdBc3NlcnRpb247CiAKICNpZiBQTEFURk9STShJ
T1NfRkFNSUxZKQogICAgIFJldGFpblB0cjxpZD4gbV9iYWNrZ3JvdW5kT2JzZXJ2ZXI7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9jZXNzUHJv
eHkuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvTmV0d29yay9OZXR3b3JrUHJvY2Vzc1By
b3h5LmNwcAppbmRleCBlNjA2YjkxZTE2Y2RlNGEzNGFjYjk1YmQwMjFkMzY2MWMyMWI2OTVkLi4x
NGE3MjlkZTEyNjI5NGFiMzEyMWE4ZDQ1Yzc4OTljMGVmZTYxMDNjIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9jZXNzUHJveHkuY3BwCisrKyBi
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nlc3NQcm94eS5jcHAK
QEAgLTE0NTcsMTUgKzE0NTcsMTUgQEAgdm9pZCBOZXR3b3JrUHJvY2Vzc1Byb3h5OjpzZXRXZWJQ
cm9jZXNzSGFzVXBsb2FkcyhXZWJDb3JlOjpQcm9jZXNzSWRlbnRpZmllciBwcm8KICAgICBpZiAo
IW1fdXBsb2FkQWN0aXZpdHkpIHsKICAgICAgICAgUkVMRUFTRV9MT0coUHJvY2Vzc1N1c3BlbnNp
b24sICJOZXR3b3JrUHJvY2Vzc1Byb3h5OjpzZXRXZWJQcm9jZXNzSGFzVXBsb2FkczogVGhlIG51
bWJlciBvZiB1cGxvYWRzIGluIHByb2dyZXNzIGlzIG5vdyBncmVhdGVyIHRoYW4gMC4gVGFraW5n
IE5ldHdvcmtpbmcgYW5kIFVJIHByb2Nlc3MgYXNzZXJ0aW9ucy4iKTsKICAgICAgICAgbV91cGxv
YWRBY3Rpdml0eSA9IFVwbG9hZEFjdGl2aXR5IHsKLSAgICAgICAgICAgIG1ha2VVbmlxdWU8UHJv
Y2Vzc0Fzc2VydGlvbj4oZ2V0Q3VycmVudFByb2Nlc3NJRCgpLCAiV2ViS2l0IHVwbG9hZHMiX3Ms
IFByb2Nlc3NBc3NlcnRpb25UeXBlOjpVbmJvdW5kZWROZXR3b3JraW5nKSwKLSAgICAgICAgICAg
IG1ha2VVbmlxdWU8UHJvY2Vzc0Fzc2VydGlvbj4ocHJvY2Vzc0lkZW50aWZpZXIoKSwgIldlYktp
dCB1cGxvYWRzIl9zLCBQcm9jZXNzQXNzZXJ0aW9uVHlwZTo6VW5ib3VuZGVkTmV0d29ya2luZyks
Ci0gICAgICAgICAgICBIYXNoTWFwPFdlYkNvcmU6OlByb2Nlc3NJZGVudGlmaWVyLCBzdGQ6OnVu
aXF1ZV9wdHI8UHJvY2Vzc0Fzc2VydGlvbj4+KCkKKyAgICAgICAgICAgIFByb2Nlc3NBc3NlcnRp
b246OmNyZWF0ZShnZXRDdXJyZW50UHJvY2Vzc0lEKCksICJXZWJLaXQgdXBsb2FkcyJfcywgUHJv
Y2Vzc0Fzc2VydGlvblR5cGU6OlVuYm91bmRlZE5ldHdvcmtpbmcpLAorICAgICAgICAgICAgUHJv
Y2Vzc0Fzc2VydGlvbjo6Y3JlYXRlKHByb2Nlc3NJZGVudGlmaWVyKCksICJXZWJLaXQgdXBsb2Fk
cyJfcywgUHJvY2Vzc0Fzc2VydGlvblR5cGU6OlVuYm91bmRlZE5ldHdvcmtpbmcpLAorICAgICAg
ICAgICAgSGFzaE1hcDxXZWJDb3JlOjpQcm9jZXNzSWRlbnRpZmllciwgUmVmUHRyPFByb2Nlc3NB
c3NlcnRpb24+PigpCiAgICAgICAgIH07CiAgICAgfQogCiAgICAgbV91cGxvYWRBY3Rpdml0eS0+
d2ViUHJvY2Vzc0Fzc2VydGlvbnMuZW5zdXJlKHByb2Nlc3NJRCwgWyZdIHsKICAgICAgICAgUkVM
RUFTRV9MT0coUHJvY2Vzc1N1c3BlbnNpb24sICJOZXR3b3JrUHJvY2Vzc1Byb3h5OjpzZXRXZWJQ
cm9jZXNzSGFzVXBsb2FkczogVGFraW5nIHVwbG9hZCBhc3NlcnRpb24gb24gYmVoYWxmIG9mIFdl
YlByb2Nlc3Mgd2l0aCBQSUQgJWQiLCBwcm9jZXNzLT5wcm9jZXNzSWRlbnRpZmllcigpKTsKLSAg
ICAgICAgcmV0dXJuIG1ha2VVbmlxdWU8UHJvY2Vzc0Fzc2VydGlvbj4ocHJvY2Vzcy0+cHJvY2Vz
c0lkZW50aWZpZXIoKSwgIldlYktpdCB1cGxvYWRzIl9zLCBQcm9jZXNzQXNzZXJ0aW9uVHlwZTo6
VW5ib3VuZGVkTmV0d29ya2luZyk7CisgICAgICAgIHJldHVybiBQcm9jZXNzQXNzZXJ0aW9uOjpj
cmVhdGUocHJvY2Vzcy0+cHJvY2Vzc0lkZW50aWZpZXIoKSwgIldlYktpdCB1cGxvYWRzIl9zLCBQ
cm9jZXNzQXNzZXJ0aW9uVHlwZTo6VW5ib3VuZGVkTmV0d29ya2luZyk7CiAgICAgfSk7CiB9CiAK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nl
c3NQcm94eS5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvTmV0d29yay9OZXR3b3JrUHJvY2Vz
c1Byb3h5LmgKaW5kZXggOGNmZTUzYmI0OTRmOGNjY2Y0YTczNjRlODllNGZlYTAzY2MwNTEwMy4u
MGNiMzE2ODFlYTgzZTQ3NDlkNTk3NmFkNjRiYTQyYTY0NzlkZjAzNCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvTmV0d29yay9OZXR3b3JrUHJvY2Vzc1Byb3h5LmgKKysrIGIv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvTmV0d29yay9OZXR3b3JrUHJvY2Vzc1Byb3h5LmgKQEAg
LTM0Nyw5ICszNDcsOSBAQCBwcml2YXRlOgogI2VuZGlmCiAKICAgICBzdHJ1Y3QgVXBsb2FkQWN0
aXZpdHkgewotICAgICAgICBzdGQ6OnVuaXF1ZV9wdHI8UHJvY2Vzc0Fzc2VydGlvbj4gdWlBc3Nl
cnRpb247Ci0gICAgICAgIHN0ZDo6dW5pcXVlX3B0cjxQcm9jZXNzQXNzZXJ0aW9uPiBuZXR3b3Jr
QXNzZXJ0aW9uOwotICAgICAgICBIYXNoTWFwPFdlYkNvcmU6OlByb2Nlc3NJZGVudGlmaWVyLCBz
dGQ6OnVuaXF1ZV9wdHI8UHJvY2Vzc0Fzc2VydGlvbj4+IHdlYlByb2Nlc3NBc3NlcnRpb25zOwor
ICAgICAgICBSZWZQdHI8UHJvY2Vzc0Fzc2VydGlvbj4gdWlBc3NlcnRpb247CisgICAgICAgIFJl
ZlB0cjxQcm9jZXNzQXNzZXJ0aW9uPiBuZXR3b3JrQXNzZXJ0aW9uOworICAgICAgICBIYXNoTWFw
PFdlYkNvcmU6OlByb2Nlc3NJZGVudGlmaWVyLCBSZWZQdHI8UHJvY2Vzc0Fzc2VydGlvbj4+IHdl
YlByb2Nlc3NBc3NlcnRpb25zOwogICAgIH07CiAgICAgc3RkOjpvcHRpb25hbDxVcGxvYWRBY3Rp
dml0eT4gbV91cGxvYWRBY3Rpdml0eTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvUHJvY2Vzc0Fzc2VydGlvbi5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Qcm9j
ZXNzQXNzZXJ0aW9uLmNwcAppbmRleCBmYThlMDM3MDExZTM2NDkwYWU3NDc4OTZmMDI4NTc1ZThi
YWRmYWIyLi5kYzIyZWU5YTAyNDk4MDJhOTBhZmZlOTlmMDEwYzIxNzMwNjNlOWQ5IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Qcm9jZXNzQXNzZXJ0aW9uLmNwcAorKysgYi9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Qcm9jZXNzQXNzZXJ0aW9uLmNwcApAQCAtMzIsOSArMzIs
MTAgQEAKIAogbmFtZXNwYWNlIFdlYktpdCB7CiAKLVByb2Nlc3NBc3NlcnRpb246OlByb2Nlc3NB
c3NlcnRpb24oUHJvY2Vzc0lEIHBpZCwgY29uc3QgU3RyaW5nJiwgUHJvY2Vzc0Fzc2VydGlvblR5
cGUgYXNzZXJ0aW9uVHlwZSkKK1Byb2Nlc3NBc3NlcnRpb246OlByb2Nlc3NBc3NlcnRpb24oUHJv
Y2Vzc0lEIHBpZCwgY29uc3QgU3RyaW5nJiByZWFzb24sIFByb2Nlc3NBc3NlcnRpb25UeXBlIGFz
c2VydGlvblR5cGUpCiAgICAgOiBtX2Fzc2VydGlvblR5cGUoYXNzZXJ0aW9uVHlwZSkKICAgICAs
IG1fcGlkKHBpZCkKKyAgICAsIG1fcmVhc29uKHJlYXNvbikKIHsKIH0KIApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvUHJvY2Vzc0Fzc2VydGlvbi5oIGIvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvUHJvY2Vzc0Fzc2VydGlvbi5oCmluZGV4IGViNzVjMmEyZTk1NTRmZDI1OWVm
ZWQyNzU1NzAyNmVlOWNhMDQ2MDMuLjUxOGMwYTUzOGFhNTFhZmI5MmZiNzZmNWVmNWMwYjQ3Y2Zj
NDVkY2IgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1Byb2Nlc3NBc3NlcnRp
b24uaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Qcm9jZXNzQXNzZXJ0aW9uLmgKQEAg
LTI1LDggKzI1LDEwIEBACiAKICNwcmFnbWEgb25jZQogCisjaW5jbHVkZSA8d3RmL0NvbXBsZXRp
b25IYW5kbGVyLmg+CiAjaW5jbHVkZSA8d3RmL0Z1bmN0aW9uLmg+CiAjaW5jbHVkZSA8d3RmL1By
b2Nlc3NJRC5oPgorI2luY2x1ZGUgPHd0Zi9UaHJlYWRTYWZlUmVmQ291bnRlZC5oPgogI2luY2x1
ZGUgPHd0Zi9XZWFrUHRyLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+CiAKQEAg
LTUxLDEwICs1MywyMSBAQCBlbnVtIGNsYXNzIFByb2Nlc3NBc3NlcnRpb25UeXBlIHsKICAgICBN
ZWRpYVBsYXliYWNrLAogfTsKIAotY2xhc3MgUHJvY2Vzc0Fzc2VydGlvbiA6IHB1YmxpYyBDYW5N
YWtlV2Vha1B0cjxQcm9jZXNzQXNzZXJ0aW9uPiB7CitjbGFzcyBQcm9jZXNzQXNzZXJ0aW9uIDog
cHVibGljIFRocmVhZFNhZmVSZWZDb3VudGVkPFByb2Nlc3NBc3NlcnRpb24+LCBwdWJsaWMgQ2Fu
TWFrZVdlYWtQdHI8UHJvY2Vzc0Fzc2VydGlvbj4gewogICAgIFdURl9NQUtFX0ZBU1RfQUxMT0NB
VEVEOwogcHVibGljOgotICAgIFByb2Nlc3NBc3NlcnRpb24oUHJvY2Vzc0lELCBjb25zdCBTdHJp
bmcmIHJlYXNvbiwgUHJvY2Vzc0Fzc2VydGlvblR5cGUpOworICAgIGVudW0gY2xhc3MgTW9kZSA6
IGJvb2wgeyBTeW5jLCBBc3luYyB9OworICAgIHN0YXRpYyBSZWY8UHJvY2Vzc0Fzc2VydGlvbj4g
Y3JlYXRlKFByb2Nlc3NJRCBwaWQsIGNvbnN0IFN0cmluZyYgcmVhc29uLCBQcm9jZXNzQXNzZXJ0
aW9uVHlwZSB0eXBlLCBNb2RlIG1vZGUgPSBNb2RlOjpBc3luYywgQ29tcGxldGlvbkhhbmRsZXI8
dm9pZCgpPiYmIGFjcXVpc2lzaW9uSGFuZGxlciA9IG51bGxwdHIpCisgICAgeworICAgICAgICBh
dXRvIGFzc2VydGlvbiA9IGFkb3B0UmVmKCpuZXcgUHJvY2Vzc0Fzc2VydGlvbihwaWQsIHJlYXNv
biwgdHlwZSkpOworICAgICAgICBpZiAobW9kZSA9PSBNb2RlOjpBc3luYykKKyAgICAgICAgICAg
IGFzc2VydGlvbi0+YWNxdWlyZUFzeW5jKFdURk1vdmUoYWNxdWlzaXNpb25IYW5kbGVyKSk7Cisg
ICAgICAgIGVsc2UgeworICAgICAgICAgICAgYXNzZXJ0aW9uLT5hY3F1aXJlU3luYygpOworICAg
ICAgICAgICAgYWNxdWlzaXNpb25IYW5kbGVyKCk7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJu
IGFzc2VydGlvbjsKKyAgICB9CiAgICAgdmlydHVhbCB+UHJvY2Vzc0Fzc2VydGlvbigpOwogCiAg
ICAgdm9pZCBzZXRJbnZhbGlkYXRpb25IYW5kbGVyKEZ1bmN0aW9uPHZvaWQoKT4mJiBoYW5kbGVy
KSB7IG1faW52YWxpZGF0aW9uSGFuZGxlciA9IFdURk1vdmUoaGFuZGxlcik7IH0KQEAgLTY0LDI0
ICs3Nyw0MSBAQCBwdWJsaWM6CiAKICAgICBib29sIGlzVmFsaWQoKSBjb25zdDsKIAotI2lmIFBM
QVRGT1JNKElPU19GQU1JTFkpCiBwcm90ZWN0ZWQ6CisgICAgUHJvY2Vzc0Fzc2VydGlvbihQcm9j
ZXNzSUQsIGNvbnN0IFN0cmluZyYgcmVhc29uLCBQcm9jZXNzQXNzZXJ0aW9uVHlwZSk7CisKKyAg
ICB2b2lkIGFjcXVpcmVBc3luYyhDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYpOworICAgIHZv
aWQgYWNxdWlyZVN5bmMoKTsKKworI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCiAgICAgdmlydHVh
bCB2b2lkIHByb2Nlc3NBc3NlcnRpb25XYXNJbnZhbGlkYXRlZCgpOwogI2VuZGlmCiAKIHByaXZh
dGU6CiAgICAgY29uc3QgUHJvY2Vzc0Fzc2VydGlvblR5cGUgbV9hc3NlcnRpb25UeXBlOwogICAg
IGNvbnN0IFByb2Nlc3NJRCBtX3BpZDsKKyAgICBjb25zdCBTdHJpbmcgbV9yZWFzb247CiAjaWYg
UExBVEZPUk0oSU9TX0ZBTUlMWSkKICAgICBSZXRhaW5QdHI8UkJTQXNzZXJ0aW9uPiBtX3Jic0Fz
c2VydGlvbjsKICAgICBSZXRhaW5QdHI8V0tSQlNBc3NlcnRpb25EZWxlZ2F0ZT4gbV9kZWxlZ2F0
ZTsKKyAgICBib29sIG1fd2FzSW52YWxpZGF0ZWQgeyBmYWxzZSB9OwogI2VuZGlmCiAgICAgRnVu
Y3Rpb248dm9pZCgpPiBtX2ludmFsaWRhdGlvbkhhbmRsZXI7CiB9OwogCiBjbGFzcyBQcm9jZXNz
QW5kVUlBc3NlcnRpb24gZmluYWwgOiBwdWJsaWMgUHJvY2Vzc0Fzc2VydGlvbiB7CiBwdWJsaWM6
Ci0gICAgUHJvY2Vzc0FuZFVJQXNzZXJ0aW9uKFByb2Nlc3NJRCwgY29uc3QgU3RyaW5nJiByZWFz
b24sIFByb2Nlc3NBc3NlcnRpb25UeXBlKTsKKyAgICBzdGF0aWMgUmVmPFByb2Nlc3NBbmRVSUFz
c2VydGlvbj4gY3JlYXRlKFByb2Nlc3NJRCBwaWQsIGNvbnN0IFN0cmluZyYgcmVhc29uLCBQcm9j
ZXNzQXNzZXJ0aW9uVHlwZSB0eXBlLCBNb2RlIG1vZGUgPSBNb2RlOjpBc3luYywgQ29tcGxldGlv
bkhhbmRsZXI8dm9pZCgpPiYmIGFjcXVpc2lzaW9uSGFuZGxlciA9IG51bGxwdHIpCisgICAgewor
ICAgICAgICBhdXRvIGFzc2VydGlvbiA9IGFkb3B0UmVmKCpuZXcgUHJvY2Vzc0FuZFVJQXNzZXJ0
aW9uKHBpZCwgcmVhc29uLCB0eXBlKSk7CisgICAgICAgIGlmIChtb2RlID09IE1vZGU6OkFzeW5j
KQorICAgICAgICAgICAgYXNzZXJ0aW9uLT5hY3F1aXJlQXN5bmMoV1RGTW92ZShhY3F1aXNpc2lv
bkhhbmRsZXIpKTsKKyAgICAgICAgZWxzZSB7CisgICAgICAgICAgICBhc3NlcnRpb24tPmFjcXVp
cmVTeW5jKCk7CisgICAgICAgICAgICBhY3F1aXNpc2lvbkhhbmRsZXIoKTsKKyAgICAgICAgfQor
ICAgICAgICByZXR1cm4gYXNzZXJ0aW9uOworICAgIH0KICAgICB+UHJvY2Vzc0FuZFVJQXNzZXJ0
aW9uKCk7CiAKICAgICB2b2lkIHVpQXNzZXJ0aW9uV2lsbEV4cGlyZUltbWluZW50bHkoKTsKQEAg
LTg5LDYgKzExOSw4IEBAIHB1YmxpYzoKICAgICB2b2lkIHNldFVJQXNzZXJ0aW9uRXhwaXJhdGlv
bkhhbmRsZXIoRnVuY3Rpb248dm9pZCgpPiYmIGhhbmRsZXIpIHsgbV91aUFzc2VydGlvbkV4cGly
YXRpb25IYW5kbGVyID0gV1RGTW92ZShoYW5kbGVyKTsgfQogCiBwcml2YXRlOgorICAgIFByb2Nl
c3NBbmRVSUFzc2VydGlvbihQcm9jZXNzSUQsIGNvbnN0IFN0cmluZyYgcmVhc29uLCBQcm9jZXNz
QXNzZXJ0aW9uVHlwZSk7CisKICNpZiBQTEFURk9STShJT1NfRkFNSUxZKQogICAgIHZvaWQgcHJv
Y2Vzc0Fzc2VydGlvbldhc0ludmFsaWRhdGVkKCkgZmluYWw7CiAjZW5kaWYKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1Byb2Nlc3NUaHJvdHRsZXIuY3BwIGIvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvUHJvY2Vzc1Rocm90dGxlci5jcHAKaW5kZXggYzA5MTU5ZmE4ZTAwMGJl
NDc3Nzc2ZTNkMzZkYmY1YmRkMjY3MTJkZi4uNmEzMTEzOGM5MThlOGU2ZjkzZjMwNzNjOGFjZTEy
NGJmODIxYjQxNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvUHJvY2Vzc1Ro
cm90dGxlci5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvUHJvY2Vzc1Rocm90dGxl
ci5jcHAKQEAgLTEyOCwyMCArMTI4LDIxIEBAIHZvaWQgUHJvY2Vzc1Rocm90dGxlcjo6c2V0QXNz
ZXJ0aW9uVHlwZShQcm9jZXNzQXNzZXJ0aW9uVHlwZSBuZXdUeXBlKQogCiAgICAgUFJPQ0VTU1RI
Uk9UVExFUl9SRUxFQVNFX0xPRygic2V0QXNzZXJ0aW9uVHlwZTogVXBkYXRpbmcgcHJvY2VzcyBh
c3NlcnRpb24gdHlwZSB0byAldSAoZm9yZWdyb3VuZEFjdGl2aXRpZXM9JXUsIGJhY2tncm91bmRB
Y3Rpdml0aWVzPSV1KSIsIG5ld1R5cGUsIG1fZm9yZWdyb3VuZEFjdGl2aXRpZXMuc2l6ZSgpLCBt
X2JhY2tncm91bmRBY3Rpdml0aWVzLnNpemUoKSk7CiAKLSAgICAvLyBLZWVwIHRoZSBwcmV2aW91
cyBhc3NlcnRpb24gYXJvdW5kIHVudGlsIGFmdGVyIHRoZSBuZXcgb25lIGhhcyBiZWVuIGNyZWF0
ZWQgc28gdGhhdCB3ZSBhbHdheXMgaG9sZAotICAgIC8vIGEgcHJvY2VzcyBhc3NlcnRpb24gZm9y
IHRoZSBwcm9jZXNzLgorICAgIC8vIEtlZXAgdGhlIHByZXZpb3VzIGFzc2VydGlvbiBhY3RpdmUg
dW50aWwgdGhlIG5ldyBhc3NlcnRpb24gaXMgdGFrZW4gYXN5bmNocm9ub3VzbHkuCiAgICAgYXV0
byBwcmV2aW91c0Fzc2VydGlvbiA9IHN0ZDo6ZXhjaGFuZ2UobV9hc3NlcnRpb24sIG51bGxwdHIp
OwogICAgIGlmIChtX3Nob3VsZFRha2VVSUJhY2tncm91bmRBc3NlcnRpb24pIHsKLSAgICAgICAg
YXV0byBhc3NlcnRpb24gPSBtYWtlVW5pcXVlPFByb2Nlc3NBbmRVSUFzc2VydGlvbj4obV9wcm9j
ZXNzSWRlbnRpZmllciwgYXNzZXJ0aW9uTmFtZShuZXdUeXBlKSwgbmV3VHlwZSk7Ci0gICAgICAg
IGFzc2VydGlvbi0+c2V0VUlBc3NlcnRpb25FeHBpcmF0aW9uSGFuZGxlcihbdGhpc10gewotICAg
ICAgICAgICAgdWlBc3NlcnRpb25XaWxsRXhwaXJlSW1taW5lbnRseSgpOworICAgICAgICBhdXRv
IGFzc2VydGlvbiA9IFByb2Nlc3NBbmRVSUFzc2VydGlvbjo6Y3JlYXRlKG1fcHJvY2Vzc0lkZW50
aWZpZXIsIGFzc2VydGlvbk5hbWUobmV3VHlwZSksIG5ld1R5cGUsIFByb2Nlc3NBc3NlcnRpb246
Ok1vZGU6OkFzeW5jLCBbcHJldmlvdXNBc3NlcnRpb24gPSBXVEZNb3ZlKHByZXZpb3VzQXNzZXJ0
aW9uKV0geyB9KTsKKyAgICAgICAgYXNzZXJ0aW9uLT5zZXRVSUFzc2VydGlvbkV4cGlyYXRpb25I
YW5kbGVyKFt3ZWFrVGhpcyA9IG1ha2VXZWFrUHRyKCp0aGlzKV0geworICAgICAgICAgICAgaWYg
KHdlYWtUaGlzKQorICAgICAgICAgICAgICAgIHdlYWtUaGlzLT51aUFzc2VydGlvbldpbGxFeHBp
cmVJbW1pbmVudGx5KCk7CiAgICAgICAgIH0pOwogICAgICAgICBtX2Fzc2VydGlvbiA9IFdURk1v
dmUoYXNzZXJ0aW9uKTsKICAgICB9IGVsc2UKLSAgICAgICAgbV9hc3NlcnRpb24gPSBtYWtlVW5p
cXVlPFByb2Nlc3NBc3NlcnRpb24+KG1fcHJvY2Vzc0lkZW50aWZpZXIsIGFzc2VydGlvbk5hbWUo
bmV3VHlwZSksIG5ld1R5cGUpOworICAgICAgICBtX2Fzc2VydGlvbiA9IFByb2Nlc3NBc3NlcnRp
b246OmNyZWF0ZShtX3Byb2Nlc3NJZGVudGlmaWVyLCBhc3NlcnRpb25OYW1lKG5ld1R5cGUpLCBu
ZXdUeXBlLCBQcm9jZXNzQXNzZXJ0aW9uOjpNb2RlOjpBc3luYywgW3ByZXZpb3VzQXNzZXJ0aW9u
ID0gV1RGTW92ZShwcmV2aW91c0Fzc2VydGlvbildIHsgfSk7CiAKLSAgICBtX2Fzc2VydGlvbi0+
c2V0SW52YWxpZGF0aW9uSGFuZGxlcihbdGhpc10gewotICAgICAgICBhc3NlcnRpb25XYXNJbnZh
bGlkYXRlZCgpOworICAgIG1fYXNzZXJ0aW9uLT5zZXRJbnZhbGlkYXRpb25IYW5kbGVyKFt3ZWFr
VGhpcyA9IG1ha2VXZWFrUHRyKCp0aGlzKV0geworICAgICAgICBpZiAod2Vha1RoaXMpCisgICAg
ICAgICAgICB3ZWFrVGhpcy0+YXNzZXJ0aW9uV2FzSW52YWxpZGF0ZWQoKTsKICAgICB9KTsKICAg
ICBtX3Byb2Nlc3MuZGlkU2V0QXNzZXJ0aW9uVHlwZShuZXdUeXBlKTsKIH0KZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1Byb2Nlc3NUaHJvdHRsZXIuaCBiL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL1Byb2Nlc3NUaHJvdHRsZXIuaAppbmRleCBiZDY4NWU3Y2NiMTdjZjJkODNi
NTJkNDZkNzIwZmE2YzU5ZWZiNDBjLi42OWE3YzU1NTI1MTdlYzU0YTU2NGVjNGQxY2M0ZGZhM2Rj
MjkyOGUwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Qcm9jZXNzVGhyb3R0
bGVyLmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvUHJvY2Vzc1Rocm90dGxlci5oCkBA
IC0xNDksNyArMTQ5LDcgQEAgcHJpdmF0ZToKIAogICAgIFByb2Nlc3NUaHJvdHRsZXJDbGllbnQm
IG1fcHJvY2VzczsKICAgICBQcm9jZXNzSUQgbV9wcm9jZXNzSWRlbnRpZmllciB7IDAgfTsKLSAg
ICBzdGQ6OnVuaXF1ZV9wdHI8UHJvY2Vzc0Fzc2VydGlvbj4gbV9hc3NlcnRpb247CisgICAgUmVm
UHRyPFByb2Nlc3NBc3NlcnRpb24+IG1fYXNzZXJ0aW9uOwogICAgIFJ1bkxvb3A6OlRpbWVyPFBy
b2Nlc3NUaHJvdHRsZXI+IG1fcHJlcGFyZVRvU3VzcGVuZFRpbWVvdXRUaW1lcjsKICAgICBIYXNo
U2V0PEZvcmVncm91bmRBY3Rpdml0eSo+IG1fZm9yZWdyb3VuZEFjdGl2aXRpZXM7CiAgICAgSGFz
aFNldDxCYWNrZ3JvdW5kQWN0aXZpdHkqPiBtX2JhY2tncm91bmRBY3Rpdml0aWVzOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Bvb2wuY3BwIGIvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Bvb2wuY3BwCmluZGV4IGJhOWU3Y2UzNDJkOWU2
NjIxZGYzMDdiMTMwNjM2YmY2MGZjNWM1Y2MuLjdjYmI4MjFmODY3MTA2MmI5MzI0YmJlNWNiMTAx
MjJmZTk4ZGJlZDUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nl
c3NQb29sLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUG9vbC5j
cHAKQEAgLTIwMjgsOSArMjAyOCw5IEBAIHZvaWQgV2ViUHJvY2Vzc1Bvb2w6OnVwZGF0ZUF1ZGli
bGVNZWRpYUFzc2VydGlvbnMoKQogCiAgICAgV0VCUFJPQ0VTU1BPT0xfUkVMRUFTRV9MT0coUHJv
Y2Vzc1N1c3BlbnNpb24sICJ1cGRhdGVBdWRpYmxlTWVkaWFBc3NlcnRpb25zOiBUaGUgbnVtYmVy
IG9mIHByb2Nlc3NlcyBwbGF5aW5nIGF1ZGlibGUgbWVkaWEgaXMgbm93IGdyZWF0ZXIgdGhhbiB6
ZXJvLiBUYWtpbmcgVUkgcHJvY2VzcyBhc3NlcnRpb24uIik7CiAgICAgbV9hdWRpYmxlTWVkaWFB
Y3Rpdml0eSA9IEF1ZGlibGVNZWRpYUFjdGl2aXR5IHsKLSAgICAgICAgbWFrZVVuaXF1ZVJlZjxQ
cm9jZXNzQXNzZXJ0aW9uPihnZXRDdXJyZW50UHJvY2Vzc0lEKCksICJXZWJLaXQgTWVkaWEgUGxh
eWJhY2siX3MsIFByb2Nlc3NBc3NlcnRpb25UeXBlOjpNZWRpYVBsYXliYWNrKQorICAgICAgICBQ
cm9jZXNzQXNzZXJ0aW9uOjpjcmVhdGUoZ2V0Q3VycmVudFByb2Nlc3NJRCgpLCAiV2ViS2l0IE1l
ZGlhIFBsYXliYWNrIl9zLCBQcm9jZXNzQXNzZXJ0aW9uVHlwZTo6TWVkaWFQbGF5YmFjaykKICNp
ZiBFTkFCTEUoR1BVX1BST0NFU1MpCi0gICAgICAgICwgZ3B1UHJvY2VzcygpID8gbWFrZVVuaXF1
ZTxQcm9jZXNzQXNzZXJ0aW9uPihncHVQcm9jZXNzKCktPnByb2Nlc3NJZGVudGlmaWVyKCksICJX
ZWJLaXQgTWVkaWEgUGxheWJhY2siX3MsIFByb2Nlc3NBc3NlcnRpb25UeXBlOjpNZWRpYVBsYXli
YWNrKSA6IG51bGxwdHIKKyAgICAgICAgLCBncHVQcm9jZXNzKCkgPyBSZWZQdHI8UHJvY2Vzc0Fz
c2VydGlvbj4geyBQcm9jZXNzQXNzZXJ0aW9uOjpjcmVhdGUoZ3B1UHJvY2VzcygpLT5wcm9jZXNz
SWRlbnRpZmllcigpLCAiV2ViS2l0IE1lZGlhIFBsYXliYWNrIl9zLCBQcm9jZXNzQXNzZXJ0aW9u
VHlwZTo6TWVkaWFQbGF5YmFjaykgfSA6IG51bGxwdHIKICNlbmRpZgogICAgIH07CiB9CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUG9vbC5oIGIvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Bvb2wuaAppbmRleCAyOTM2MWEwNDg1MWI0YmU2
YjI0ZmViMzZjMzQ1MjY2MWI4NGNiMjYyLi40ZWY1NDFkMDc5ZTE3ZDBjNjQ0NzQ2YWVkMjQ5NjA5
Mjk0MTdiYjM2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNz
UG9vbC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQb29sLmgKQEAg
LTc2Myw5ICs3NjMsOSBAQCBwcml2YXRlOgogICAgIFdlYlByb2Nlc3NXaXRoQXVkaWJsZU1lZGlh
Q291bnRlciBtX3dlYlByb2Nlc3NXaXRoQXVkaWJsZU1lZGlhQ291bnRlcjsKIAogICAgIHN0cnVj
dCBBdWRpYmxlTWVkaWFBY3Rpdml0eSB7Ci0gICAgICAgIFVuaXF1ZVJlZjxQcm9jZXNzQXNzZXJ0
aW9uPiB1aVByb2Nlc3NNZWRpYVBsYXliYWNrQXNzZXJ0aW9uOworICAgICAgICBSZWY8UHJvY2Vz
c0Fzc2VydGlvbj4gdWlQcm9jZXNzTWVkaWFQbGF5YmFja0Fzc2VydGlvbjsKICNpZiBFTkFCTEUo
R1BVX1BST0NFU1MpCi0gICAgICAgIHN0ZDo6dW5pcXVlX3B0cjxQcm9jZXNzQXNzZXJ0aW9uPiBn
cHVQcm9jZXNzTWVkaWFQbGF5YmFja0Fzc2VydGlvbjsKKyAgICAgICAgUmVmUHRyPFByb2Nlc3NB
c3NlcnRpb24+IGdwdVByb2Nlc3NNZWRpYVBsYXliYWNrQXNzZXJ0aW9uOwogI2VuZGlmCiAgICAg
fTsKICAgICBzdGQ6Om9wdGlvbmFsPEF1ZGlibGVNZWRpYUFjdGl2aXR5PiBtX2F1ZGlibGVNZWRp
YUFjdGl2aXR5OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vz
c1Byb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5jcHAK
aW5kZXggOThiODM2OTBlYzUwYmNjZDg4NjZjZGI0YzdkYzlkODNjNzgyOTJkZS4uMjM3NjIwNjgx
OWU1NGNjM2IxMjFhNjg2OWIwZjJhOTcyM2RmOTAxYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9XZWJQcm9jZXNzUHJveHkuY3BwCkBAIC0xNDg3LDcgKzE0ODcsNyBAQCB2b2lkIFdlYlBy
b2Nlc3NQcm94eTo6dXBkYXRlQXVkaWJsZU1lZGlhQXNzZXJ0aW9ucygpCiAgICAgaWYgKG5ld0hh
c0F1ZGlibGVXZWJQYWdlKSB7CiAgICAgICAgIFdFQlBST0NFU1NQUk9YWV9SRUxFQVNFX0xPRyhQ
cm9jZXNzU3VzcGVuc2lvbiwgInVwZGF0ZUF1ZGlibGVNZWRpYUFzc2VydGlvbnM6IFRha2luZyBN
ZWRpYVBsYXliYWNrIGFzc2VydGlvbiBmb3IgV2ViUHJvY2VzcyIpOwogICAgICAgICBtX2F1ZGli
bGVNZWRpYUFjdGl2aXR5ID0gQXVkaWJsZU1lZGlhQWN0aXZpdHkgewotICAgICAgICAgICAgbWFr
ZVVuaXF1ZVJlZjxQcm9jZXNzQXNzZXJ0aW9uPihwcm9jZXNzSWRlbnRpZmllcigpLCAiV2ViS2l0
IE1lZGlhIFBsYXliYWNrIl9zLCBQcm9jZXNzQXNzZXJ0aW9uVHlwZTo6TWVkaWFQbGF5YmFjayks
CisgICAgICAgICAgICBQcm9jZXNzQXNzZXJ0aW9uOjpjcmVhdGUocHJvY2Vzc0lkZW50aWZpZXIo
KSwgIldlYktpdCBNZWRpYSBQbGF5YmFjayJfcywgUHJvY2Vzc0Fzc2VydGlvblR5cGU6Ok1lZGlh
UGxheWJhY2spLAogICAgICAgICAgICAgcHJvY2Vzc1Bvb2woKS53ZWJQcm9jZXNzV2l0aEF1ZGli
bGVNZWRpYVRva2VuKCkKICAgICAgICAgfTsKICAgICB9IGVsc2UgewpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5LmggYi9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkuaAppbmRleCBlMjI1ZmY0NjdkYzg0YjU3NmRjMjVkNjYy
NTAyOGI2MDE5Y2Y1ZTg5Li5iOTZlMzUyYmJiOTk4YjU2ZDU5MTE0N2RhYzY1ODkyODUxMDg4NzYw
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkuaAor
KysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkuaApAQCAtNjM2LDcg
KzYzNiw3IEBAIHByaXZhdGU6CiAgICAgSGFzaE1hcDxXZWJDb3JlOjpTbGVlcERpc2FibGVySWRl
bnRpZmllciwgc3RkOjp1bmlxdWVfcHRyPFdlYkNvcmU6OlNsZWVwRGlzYWJsZXI+PiBtX3NsZWVw
RGlzYWJsZXJzOwogCiAgICAgc3RydWN0IEF1ZGlibGVNZWRpYUFjdGl2aXR5IHsKLSAgICAgICAg
VW5pcXVlUmVmPFByb2Nlc3NBc3NlcnRpb24+IGFzc2VydGlvbjsKKyAgICAgICAgUmVmPFByb2Nl
c3NBc3NlcnRpb24+IGFzc2VydGlvbjsKICAgICAgICAgV2ViUHJvY2Vzc1dpdGhBdWRpYmxlTWVk
aWFUb2tlbiB0b2tlbjsKICAgICB9OwogICAgIHN0ZDo6b3B0aW9uYWw8QXVkaWJsZU1lZGlhQWN0
aXZpdHk+IG1fYXVkaWJsZU1lZGlhQWN0aXZpdHk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9pb3MvUHJvY2Vzc0Fzc2VydGlvbklPUy5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL2lvcy9Qcm9jZXNzQXNzZXJ0aW9uSU9TLm1tCmluZGV4IGFiMjdlZGViYTJhZTZlNWNm
MmFiOGFlMGNkMTM3MjgzZmUxMjgzZTEuLjg0YWUzN2Q3MWU1MGZmYTZlNjg4N2QxOWM3YWRmNDhi
NmEzYmE3YWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9Qcm9jZXNz
QXNzZXJ0aW9uSU9TLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9Qcm9jZXNz
QXNzZXJ0aW9uSU9TLm1tCkBAIC00MSw2ICs0MSwxMiBAQAogCiB1c2luZyBXZWJLaXQ6OlByb2Nl
c3NBbmRVSUFzc2VydGlvbjsKIAorc3RhdGljIFdvcmtRdWV1ZSYgYXNzZXJ0aW9uc1dvcmtRdWV1
ZSgpCit7CisgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPFJlZjxXb3JrUXVldWU+PiB3b3JrUXVl
dWUoV29ya1F1ZXVlOjpjcmVhdGUoIlByb2Nlc3NBc3NlcnRpb24gUXVldWUiKSk7CisgICAgcmV0
dXJuIHdvcmtRdWV1ZS5nZXQoKTsKK30KKwogLy8gVGhpcyBnaXZlcyBzb21lIHRpbWUgdG8gb3Vy
IGNoaWxkIHByb2Nlc3NlcyB0byBwcm9jZXNzIHRoZSBQcm9jZXNzV2lsbFN1c3BlbmRJbW1pbmVu
dGx5IElQQyBidXQgbWFrZXMgc3VyZSB3ZSByZWxlYXNlCiAvLyB0aGUgYmFja2dyb3VuZCB0YXNr
IGJlZm9yZSB0aGUgVUlLaXQgdGltZW91dCAoV2UgZ2V0IGtpbGxlZCBpZiB3ZSBkbyBub3QgcmVs
ZWFzZSB0aGUgYmFja2dyb3VuZCB0YXNrIHdpdGhpbiA1IHNlY29uZHMKIC8vIG9uIHRoZSBleHBp
cmF0aW9uIGhhbmRsZXIgZ2V0dGluZyBjYWxsZWQpLgpAQCAtNjQsNiArNzAsNyBAQCBAZW5kCiBA
aW1wbGVtZW50YXRpb24gV0tQcm9jZXNzQXNzZXJ0aW9uQmFja2dyb3VuZFRhc2tNYW5hZ2VyCiB7
CiAgICAgUmV0YWluUHRyPFJCU0Fzc2VydGlvbj4gX2JhY2tncm91bmRUYXNrOworICAgIHN0ZDo6
YXRvbWljPGJvb2w+IF9iYWNrZ3JvdW5kVGFza1dhc0ludmFsaWRhdGVkOwogICAgIFdlYWtIYXNo
U2V0PFByb2Nlc3NBbmRVSUFzc2VydGlvbj4gX2Fzc2VydGlvbnNOZWVkaW5nQmFja2dyb3VuZFRh
c2s7CiAgICAgZGlzcGF0Y2hfYmxvY2tfdCBfcGVuZGluZ1Rhc2tSZWxlYXNlVGFzazsKIH0KQEAg
LTE2MCw3ICsxNjcsNyBAQCAtIChCT09MKV9oYXNCYWNrZ3JvdW5kVGFzawogCiAtICh2b2lkKV91
cGRhdGVCYWNrZ3JvdW5kVGFzawogewotICAgIGlmICghX2Fzc2VydGlvbnNOZWVkaW5nQmFja2dy
b3VuZFRhc2suY29tcHV0ZXNFbXB0eSgpICYmICFbc2VsZiBfaGFzQmFja2dyb3VuZFRhc2tdKSB7
CisgICAgaWYgKCFfYXNzZXJ0aW9uc05lZWRpbmdCYWNrZ3JvdW5kVGFzay5jb21wdXRlc0VtcHR5
KCkgJiYgKCFbc2VsZiBfaGFzQmFja2dyb3VuZFRhc2tdIHx8IF9iYWNrZ3JvdW5kVGFza1dhc0lu
dmFsaWRhdGVkKSkgewogICAgICAgICBpZiAocHJvY2Vzc0hhc0FjdGl2ZVJ1blRpbWVMaW1pdGF0
aW9uKCkpIHsKICAgICAgICAgICAgIFJFTEVBU0VfTE9HKFByb2Nlc3NTdXNwZW5zaW9uLCAiJXAg
LSBXS1Byb2Nlc3NBc3NlcnRpb25CYWNrZ3JvdW5kVGFza01hbmFnZXI6IElnbm9yZWQgcmVxdWVz
dCB0byBzdGFydCBhIG5ldyBiYWNrZ3JvdW5kIHRhc2sgYmVjYXVzZSBSdW5uaW5nQm9hcmQgaGFz
IGFscmVhZHkgc3RhcnRlZCB0aGUgZXhwaXJhdGlvbiB0aW1lciIsIHNlbGYpOwogICAgICAgICAg
ICAgcmV0dXJuOwpAQCAtMTcxLDExICsxNzgsOSBAQCAtICh2b2lkKV91cGRhdGVCYWNrZ3JvdW5k
VGFzawogICAgICAgICBfYmFja2dyb3VuZFRhc2sgPSBhZG9wdE5TKFtbUkJTQXNzZXJ0aW9uIGFs
bG9jXSBpbml0V2l0aEV4cGxhbmF0aW9uOkAiV2ViS2l0IFVJUHJvY2VzcyBiYWNrZ3JvdW5kIHRh
c2siIHRhcmdldDp0YXJnZXQgYXR0cmlidXRlczpAW2RvbWFpbkF0dHJpYnV0ZV1dKTsKICAgICAg
ICAgW19iYWNrZ3JvdW5kVGFzayBhZGRPYnNlcnZlcjpzZWxmXTsKIAotICAgICAgICBOU0Vycm9y
ICphY3F1aXNpdGlvbkVycm9yID0gbmlsOwotICAgICAgICBpZiAoIVtfYmFja2dyb3VuZFRhc2sg
YWNxdWlyZVdpdGhFcnJvcjomYWNxdWlzaXRpb25FcnJvcl0pCi0gICAgICAgICAgICBSRUxFQVNF
X0xPR19FUlJPUihQcm9jZXNzU3VzcGVuc2lvbiwgIldLUHJvY2Vzc0Fzc2VydGlvbkJhY2tncm91
bmRUYXNrTWFuYWdlcjogRmFpbGVkIHRvIGFjcXVpcmUgRmluaXNoVGFza0ludGVycnVwdGFibGUg
YXNzZXJ0aW9uIGZvciBvd24gcHJvY2VzcywgZXJyb3I6ICV7cHVibGljfUAiLCBhY3F1aXNpdGlv
bkVycm9yKTsKLSAgICAgICAgZWxzZQotICAgICAgICAgICAgUkVMRUFTRV9MT0coUHJvY2Vzc1N1
c3BlbnNpb24sICJXS1Byb2Nlc3NBc3NlcnRpb25CYWNrZ3JvdW5kVGFza01hbmFnZXI6IFN1Y2Nl
c3NmdWxseSB0b29rIGEgRmluaXNoVGFza0ludGVycnVwdGFibGUgYXNzZXJ0aW9uIGZvciBvd24g
cHJvY2VzcyIpOworICAgICAgICBfYmFja2dyb3VuZFRhc2tXYXNJbnZhbGlkYXRlZCA9IGZhbHNl
OworICAgICAgICBbX2JhY2tncm91bmRUYXNrIGFjcXVpcmVXaXRoSW52YWxpZGF0aW9uSGFuZGxl
cjpuaWxdOworICAgICAgICBSRUxFQVNFX0xPRyhQcm9jZXNzU3VzcGVuc2lvbiwgIldLUHJvY2Vz
c0Fzc2VydGlvbkJhY2tncm91bmRUYXNrTWFuYWdlcjogVG9vayBhIEZpbmlzaFRhc2tJbnRlcnJ1
cHRhYmxlIGFzc2VydGlvbiBmb3Igb3duIHByb2Nlc3MiKTsKICAgICB9IGVsc2UgaWYgKF9hc3Nl
cnRpb25zTmVlZGluZ0JhY2tncm91bmRUYXNrLmNvbXB1dGVzRW1wdHkoKSkgewogICAgICAgICAv
LyBSZWxlYXNlIHRoZSBiYWNrZ3JvdW5kIHRhc2sgYXN5bmNocm9ub3VzbHkgYmVjYXVzZSByZWxl
YXNpbmcgdGhlIGJhY2tncm91bmQgdGFzayBtYXkgZGVzdHJveSB0aGUgUHJvY2Vzc1Rocm90dGxl
ciBhbmQgd2UgZG9uJ3QKICAgICAgICAgLy8gd2FudCBpdCB0byBnZXQgZGVzdHJveWVkIHdoaWxl
IGluIHRoZSBtaWRkbGUgb2YgdXBkYXRpbmcgaXRzIGFzc2VydGlvbi4KQEAgLTE5Niw2ICsyMDEs
NyBAQCAtICh2b2lkKWFzc2VydGlvbjooUkJTQXNzZXJ0aW9uICopYXNzZXJ0aW9uIGRpZEludmFs
aWRhdGVXaXRoRXJyb3I6KE5TRXJyb3IgKillcgogewogICAgIEFTU0VSVChhc3NlcnRpb24gPT0g
X2JhY2tncm91bmRUYXNrLmdldCgpKTsKICAgICBSRUxFQVNFX0xPR19FUlJPUihQcm9jZXNzU3Vz
cGVuc2lvbiwgIldLUHJvY2Vzc0Fzc2VydGlvbkJhY2tncm91bmRUYXNrTWFuYWdlcjogRmluaXNo
VGFza0ludGVycnVwdGFibGUgYXNzZXJ0aW9uIHdhcyBpbnZhbGlkYXRlZCwgZXJyb3I6ICV7cHVi
bGljfUAiLCBlcnJvcik7CisgICAgX2JhY2tncm91bmRUYXNrV2FzSW52YWxpZGF0ZWQgPSB0cnVl
OwogfQogCiAtICh2b2lkKV9oYW5kbGVCYWNrZ3JvdW5kVGFza0V4cGlyYXRpb24KQEAgLTI5Nywx
MSArMzAzLDEzIEBAIHN0YXRpYyBOU1N0cmluZyAqcnVubmluZ0JvYXJkTmFtZUZvckFzc2VydGlv
blR5cGUoUHJvY2Vzc0Fzc2VydGlvblR5cGUgYXNzZXJ0aW9uCiBQcm9jZXNzQXNzZXJ0aW9uOjpQ
cm9jZXNzQXNzZXJ0aW9uKHBpZF90IHBpZCwgY29uc3QgU3RyaW5nJiByZWFzb24sIFByb2Nlc3NB
c3NlcnRpb25UeXBlIGFzc2VydGlvblR5cGUpCiAgICAgOiBtX2Fzc2VydGlvblR5cGUoYXNzZXJ0
aW9uVHlwZSkKICAgICAsIG1fcGlkKHBpZCkKKyAgICAsIG1fcmVhc29uKHJlYXNvbikKIHsKICAg
ICBOU1N0cmluZyAqcnVubmluZ0JvYXJkQXNzZXJ0aW9uTmFtZSA9IHJ1bm5pbmdCb2FyZE5hbWVG
b3JBc3NlcnRpb25UeXBlKGFzc2VydGlvblR5cGUpOwogICAgIEFTU0VSVChydW5uaW5nQm9hcmRB
c3NlcnRpb25OYW1lKTsKICAgICBpZiAoIXBpZCkgewogICAgICAgICBSRUxFQVNFX0xPR19FUlJP
UihQcm9jZXNzU3VzcGVuc2lvbiwgIiVwIC0gUHJvY2Vzc0Fzc2VydGlvbjogRmFpbGVkIHRvIGFj
cXVpcmUgUkJTICV7cHVibGljfUAgYXNzZXJ0aW9uICcle3B1YmxpY31zJyBmb3IgcHJvY2VzcyBi
ZWNhdXNlIFBJRCBpcyBpbnZhbGlkIiwgdGhpcywgcnVubmluZ0JvYXJkQXNzZXJ0aW9uTmFtZSwg
cmVhc29uLnV0ZjgoKS5kYXRhKCkpOworICAgICAgICBtX3dhc0ludmFsaWRhdGVkID0gdHJ1ZTsK
ICAgICAgICAgcmV0dXJuOwogICAgIH0KIApAQCAtMzEyLDI0ICszMjAsMzYgQEAgUHJvY2Vzc0Fz
c2VydGlvbjo6UHJvY2Vzc0Fzc2VydGlvbihwaWRfdCBwaWQsIGNvbnN0IFN0cmluZyYgcmVhc29u
LCBQcm9jZXNzQXNzZXIKICAgICBtX2RlbGVnYXRlID0gYWRvcHROUyhbW1dLUkJTQXNzZXJ0aW9u
RGVsZWdhdGUgYWxsb2NdIGluaXRdKTsKICAgICBbbV9yYnNBc3NlcnRpb24gYWRkT2JzZXJ2ZXI6
bV9kZWxlZ2F0ZS5nZXQoKV07CiAgICAgbV9kZWxlZ2F0ZS5nZXQoKS5pbnZhbGlkYXRpb25DYWxs
YmFjayA9IF57Ci0gICAgICAgIFJFTEVBU0VfTE9HKFByb2Nlc3NTdXNwZW5zaW9uLCAiJXAgLSBQ
cm9jZXNzQXNzZXJ0aW9uKCkgUkJTICV7cHVibGljfUAgYXNzZXJ0aW9uIGZvciBwcm9jZXNzIHdp
dGggUElEPSVkIHdhcyBpbnZhbGlkYXRlZCIsIHRoaXMsIHJ1bm5pbmdCb2FyZEFzc2VydGlvbk5h
bWUsIHBpZCk7CisgICAgICAgIFJFTEVBU0VfTE9HKFByb2Nlc3NTdXNwZW5zaW9uLCAiJXAgLSBQ
cm9jZXNzQXNzZXJ0aW9uOiBSQlMgJXtwdWJsaWN9QCBhc3NlcnRpb24gZm9yIHByb2Nlc3Mgd2l0
aCBQSUQ9JWQgd2FzIGludmFsaWRhdGVkIiwgdGhpcywgcnVubmluZ0JvYXJkQXNzZXJ0aW9uTmFt
ZSwgcGlkKTsKICAgICAgICAgcHJvY2Vzc0Fzc2VydGlvbldhc0ludmFsaWRhdGVkKCk7CiAgICAg
fTsKK30KIAordm9pZCBQcm9jZXNzQXNzZXJ0aW9uOjphY3F1aXJlQXN5bmMoQ29tcGxldGlvbkhh
bmRsZXI8dm9pZCgpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQoreworICAgIGFzc2VydGlvbnNXb3Jr
UXVldWUoKS5kaXNwYXRjaChbcHJvdGVjdGVkVGhpcyA9IG1ha2VSZWYoKnRoaXMpLCBjb21wbGV0
aW9uSGFuZGxlciA9IFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpXSgpIG11dGFibGUgeworICAg
ICAgICBwcm90ZWN0ZWRUaGlzLT5hY3F1aXJlU3luYygpOworICAgICAgICBpZiAoY29tcGxldGlv
bkhhbmRsZXIpCisgICAgICAgICAgICBSdW5Mb29wOjptYWluKCkuZGlzcGF0Y2goV1RGTW92ZShj
b21wbGV0aW9uSGFuZGxlcikpOworICAgIH0pOworfQorCit2b2lkIFByb2Nlc3NBc3NlcnRpb246
OmFjcXVpcmVTeW5jKCkKK3sKICAgICBOU0Vycm9yICphY3F1aXNpdGlvbkVycm9yID0gbmlsOwog
ICAgIGlmICghW21fcmJzQXNzZXJ0aW9uIGFjcXVpcmVXaXRoRXJyb3I6JmFjcXVpc2l0aW9uRXJy
b3JdKSB7Ci0gICAgICAgIFJFTEVBU0VfTE9HX0VSUk9SKFByb2Nlc3NTdXNwZW5zaW9uLCAiJXAg
LSBQcm9jZXNzQXNzZXJ0aW9uOiBGYWlsZWQgdG8gYWNxdWlyZSBSQlMgJXtwdWJsaWN9QCBhc3Nl
cnRpb24gJyV7cHVibGljfXMnIGZvciBwcm9jZXNzIHdpdGggUElEPSVkLCBlcnJvcjogJXtwdWJs
aWN9QCIsIHRoaXMsIHJ1bm5pbmdCb2FyZEFzc2VydGlvbk5hbWUsIHJlYXNvbi51dGY4KCkuZGF0
YSgpLCBwaWQsIGFjcXVpc2l0aW9uRXJyb3IpOworICAgICAgICBSRUxFQVNFX0xPR19FUlJPUihQ
cm9jZXNzU3VzcGVuc2lvbiwgIiVwIC0gUHJvY2Vzc0Fzc2VydGlvbjogRmFpbGVkIHRvIGFjcXVp
cmUgUkJTIGFzc2VydGlvbiAnJXtwdWJsaWN9cycgZm9yIHByb2Nlc3Mgd2l0aCBQSUQ9JWQsIGVy
cm9yOiAle3B1YmxpY31AIiwgdGhpcywgbV9yZWFzb24udXRmOCgpLmRhdGEoKSwgbV9waWQsIGFj
cXVpc2l0aW9uRXJyb3IpOwogICAgICAgICBSdW5Mb29wOjptYWluKCkuZGlzcGF0Y2goW3dlYWtU
aGlzID0gbWFrZVdlYWtQdHIoKnRoaXMpXSB7CiAgICAgICAgICAgICBpZiAod2Vha1RoaXMpCiAg
ICAgICAgICAgICAgICAgd2Vha1RoaXMtPnByb2Nlc3NBc3NlcnRpb25XYXNJbnZhbGlkYXRlZCgp
OwogICAgICAgICB9KTsKICAgICB9IGVsc2UKLSAgICAgICAgUkVMRUFTRV9MT0coUHJvY2Vzc1N1
c3BlbnNpb24sICIlcCAtIFByb2Nlc3NBc3NlcnRpb246IFN1Y2Nlc3NmdWxseSB0b29rIFJCUyAl
e3B1YmxpY31AIGFzc2VydGlvbiAnJXtwdWJsaWN9cycgZm9yIHByb2Nlc3Mgd2l0aCBQSUQ9JWQi
LCB0aGlzLCBydW5uaW5nQm9hcmRBc3NlcnRpb25OYW1lLCByZWFzb24udXRmOCgpLmRhdGEoKSwg
cGlkKTsKKyAgICAgICAgUkVMRUFTRV9MT0coUHJvY2Vzc1N1c3BlbnNpb24sICIlcCAtIFByb2Nl
c3NBc3NlcnRpb246IFN1Y2Nlc3NmdWxseSB0b29rIFJCUyBhc3NlcnRpb24gJyV7cHVibGljfXMn
IGZvciBwcm9jZXNzIHdpdGggUElEPSVkIiwgdGhpcywgbV9yZWFzb24udXRmOCgpLmRhdGEoKSwg
bV9waWQpOwogfQogCiBQcm9jZXNzQXNzZXJ0aW9uOjp+UHJvY2Vzc0Fzc2VydGlvbigpCiB7Ci0g
ICAgUkVMRUFTRV9MT0coUHJvY2Vzc1N1c3BlbnNpb24sICIlcCAtIH5Qcm9jZXNzQXNzZXJ0aW9u
KCkgUmVsZWFzaW5nIHByb2Nlc3MgYXNzZXJ0aW9uIGZvciBwcm9jZXNzIHdpdGggUElEPSVkIiwg
dGhpcywgbV9waWQpOworICAgIFJFTEVBU0VfTE9HKFByb2Nlc3NTdXNwZW5zaW9uLCAiJXAgLSB+
UHJvY2Vzc0Fzc2VydGlvbjogUmVsZWFzaW5nIHByb2Nlc3MgYXNzZXJ0aW9uICcle3B1YmxpY31z
JyBmb3IgcHJvY2VzcyB3aXRoIFBJRD0lZCIsIHRoaXMsIG1fcmVhc29uLnV0ZjgoKS5kYXRhKCks
IG1fcGlkKTsKIAogICAgIGlmIChtX3Jic0Fzc2VydGlvbikgewogICAgICAgICBtX2RlbGVnYXRl
LmdldCgpLmludmFsaWRhdGlvbkNhbGxiYWNrID0gbmlsOwpAQCAtMzQ0LDEzICszNjQsMTQgQEAg
dm9pZCBQcm9jZXNzQXNzZXJ0aW9uOjpwcm9jZXNzQXNzZXJ0aW9uV2FzSW52YWxpZGF0ZWQoKQog
ICAgIEFTU0VSVChSdW5Mb29wOjppc01haW4oKSk7CiAgICAgUkVMRUFTRV9MT0coUHJvY2Vzc1N1
c3BlbnNpb24sICIlcCAtIFByb2Nlc3NBc3NlcnRpb246OnByb2Nlc3NBc3NlcnRpb25XYXNJbnZh
bGlkYXRlZCgpIFBJRD0lZCIsIHRoaXMsIG1fcGlkKTsKIAorICAgIG1fd2FzSW52YWxpZGF0ZWQg
PSB0cnVlOwogICAgIGlmIChtX2ludmFsaWRhdGlvbkhhbmRsZXIpCiAgICAgICAgIG1faW52YWxp
ZGF0aW9uSGFuZGxlcigpOwogfQogCiBib29sIFByb2Nlc3NBc3NlcnRpb246OmlzVmFsaWQoKSBj
b25zdAogewotICAgIHJldHVybiBtX3Jic0Fzc2VydGlvbiAmJiBtX3Jic0Fzc2VydGlvbi5nZXQo
KS52YWxpZDsKKyAgICByZXR1cm4gIW1fd2FzSW52YWxpZGF0ZWQ7CiB9CiAKIHZvaWQgUHJvY2Vz
c0FuZFVJQXNzZXJ0aW9uOjp1cGRhdGVSdW5JbkJhY2tncm91bmRDb3VudCgpCg==
</data>
<flag name="commit-queue"
          id="454768"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>432718</attachid>
            <date>2021-07-01 13:07:19 -0700</date>
            <delta_ts>2021-07-01 13:51:50 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-225324-20210701130718.patch</filename>
            <type>text/plain</type>
            <size>30309</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc5NDYzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IGI3MTRhOGJhNTRkMmU5Y2Vh
NWM3YjE0MTdkNmY0NDg5OThmNjQyYWIuLjFjMTA3NTg3NDQyMmU5OTIzZDM5MmExMDM5YmI5MzAw
ZDAxN2UzMWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNzAgQEAKKzIwMjEtMDctMDEgIENocmlzIER1
bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KKworICAgICAgICBbaU9TXSBIYXZlIFByb2Nlc3NBc3Nl
cnRpb24gdGFrZSB0aGUgUnVubmluZ0JvYXJkIGFzc2VydGlvbiBhc3luY2hyb25vdXNseSBieSBk
ZWZhdWx0CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0y
MjUzMjQKKyAgICAgICAgPHJkYXI6Ly83Njk3MjI1Mj4KKworICAgICAgICBSZXZpZXdlZCBieSBO
T0JPRFkgKE9PUFMhKS4KKworICAgICAgICBIYXZlIFByb2Nlc3NBc3NlcnRpb24gdGFrZSB0aGUg
UnVubmluZ0JvYXJkIGFzc2VydGlvbiBhc3luY2hyb25vdXNseSAob24gYSBiYWNrZ3JvdW5kIHRo
cmVhZCkgYnkKKyAgICAgICAgZGVmYXVsdCBhcyB3ZSBoYXZlIGV2aWRlbmNlIHRoYXQgZG9pbmcg
c28gb24gdGhlIG1haW4gdGhyZWFkIGlzIGJhZCBmb3IgcGVyZm9ybWFuY2UgYW5kIG1heQorICAg
ICAgICBuZWdhdGl2ZWx5IGltcGFjdCBsYXVuY2ggdGltZS4KKworICAgICAgICBXaGVuIGNvbnN0
cnVjdGluZyBhIFByb2Nlc3NBc3NlcnRpb24sIHRoZSBjYWxsZXIgY2FuIG5vdyBpbmRpY2F0ZSBp
ZiBpdCB3YW50cyB0aGUgYXNzZXJ0aW9uIHRvIGJlCisgICAgICAgIHRha2VuIGFzeW5jaHJvbm91
c2x5IChkZWZhdWx0KSBvciBub3QuIEJ1ZyAyMjc1NTIgaXMgYW4gZXhhbXBsZSBvZiBhIGNhc2Ug
d2hlcmUgd2Ugc3RpbGwgd2FudCB0bworICAgICAgICB0YWtlIHRoZSBhc3NlcnRpb24gc3luY2hy
b25vdXNseSAoYmVjYXVzZSB3ZSdyZSBub3Qgb24gdGhlIG1haW4gdGhyZWFkIGFuZCB3ZSBuZWVk
IHRvIG1ha2Ugc3VyZQorICAgICAgICB3ZSBoYXZlIHRoZSBhc3NlcnRpb24gYmVmb3JlIHByb2Nl
ZWRpbmcpLgorCisgICAgICAgIFRoZSBjYWxsZXIgY2FuIGFsc28gcHJvdmlkZSBhIGNvbXBsZXRp
b24gaGFuZGxlciB0aGF0IHdpbGwgZ2V0IGNhbGxlZCBvbmNlIHRoZSBSdW5uaW5nQm9hcmQgaXMK
KyAgICAgICAgdGFrZW4uIE5vdGUgdGhhdCB0aGUgUnVubmluZ0JvYXJkIGFzeW5jIEFQSSAoW1JC
U0Fzc2VydGlvbiBhY3F1aXJlV2l0aEludmFsaWRhdGlvbkhhbmRsZXJdKSBkb2VzCisgICAgICAg
IG5vdCBwcm92aWRlIGEgd2F5IGZvciB1cyB0byBrbm93IHdoZW4gdGhlIGFzc2VydGlvbiBpcyB0
YWtlbi4gRm9yIHRoaXMgcmVhc29uLCBQcm9jZXNzQXNzZXJ0aW9uCisgICAgICAgIGtlZXBzIHVz
aW5nIHRoZSBSdW5uaW5nQm9hcmQgc3luYyBBUEkgKFtSQlNBc3NlcnRpb24gYWNxdWlyZVdpdGhF
cnJvcjpdKSBidXQgY2FsbHMgaW4gb24gYQorICAgICAgICBiYWNrZ3JvdW5kIHF1ZXVlLgorCisg
ICAgICAgIEZvciB0aGUgVUlQcm9jZXNzJ3MgYmFja2dyb3VuZCB0YXNrIHRob3VnaCwgd2UgZG9u
J3QgbmVlZCB0byBrbm93IHdoZW4gdGhlIGFzc2VydGlvbiBpcyB0YWtlbgorICAgICAgICBzbyB3
ZSBjYW4gdXNlIHRoZSBSdW5uaW5nQm9hcmQgYXN5bmMgQVBJLgorCisgICAgICAgIE5vdGUgdGhh
dCB0aGUgcHJldmlvdXMgaXRlcmF0aW9uIG9mIHRoaXMgcGF0Y2ggaGFkIGEgYnVnIHdoZXJlIHRo
ZSBQcm9jZXNzVGhyb3R0bGVyIHdvdWxkIHJlbGVhc2UKKyAgICAgICAgaXRzIHByZXZpb3VzIGFz
c2VydGlvbiBiZWZvcmUgdGhlIG5ldyBvbmUgaXMgdGFrZW4gKGFzeW5jaHJvbm91c2x5KSB3aGVu
IGNoYW5naW5nIHRoZSBhc3NlcnRpb24KKyAgICAgICAgdHlwZSAoZS5nLiBmb3JlZ3JvdW5kIHRv
IGJhY2tncm91bmQpLiBUaGlzIGlzIGFkZHJlc3NlZCBpbiB0aGlzIHBhdGNoLiBQcm9jZXNzVGhy
b3R0bGVyIG5vdyBwYXNzZXMKKyAgICAgICAgYW4gYWNxdWlzaXRpb24gaGFuZGxlciB3aGVuIGNv
bnN0cnVjdGluZyB0aGUgUHJvY2Vzc0Fzc2VydGlvbiBhbmQgb25seSByZWxlYXNlcyBpdHMgcHJl
dmlvdXMKKyAgICAgICAgYXNzZXJ0aW9uIG9uY2UgdGhlIGFjcXVpc2l0aW9uIGhhbmRsZXIgZm9y
IHRoZSBuZXcgb25lIGlzIHRha2VuLgorCisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvRG93bmxv
YWRzL0Rvd25sb2FkTWFwLmNwcDoKKyAgICAgICAgKFdlYktpdDo6RG93bmxvYWRNYXA6OmFkZCk6
CisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvRG93bmxvYWRzL0Rvd25sb2FkTWFwLmg6CisgICAg
ICAgICogUGxhdGZvcm0vSVBDL2NvY29hL0Nvbm5lY3Rpb25Db2NvYS5tbToKKyAgICAgICAgKElQ
Qzo6Q29ubmVjdGlvblRlcm1pbmF0aW9uV2F0Y2hkb2c6OkNvbm5lY3Rpb25UZXJtaW5hdGlvbldh
dGNoZG9nKToKKyAgICAgICAgKiBVSVByb2Nlc3MvRG93bmxvYWRzL0Rvd25sb2FkUHJveHlNYXAu
Y3BwOgorICAgICAgICAoV2ViS2l0OjpEb3dubG9hZFByb3h5TWFwOjpjcmVhdGVEb3dubG9hZFBy
b3h5KToKKyAgICAgICAgKiBVSVByb2Nlc3MvRG93bmxvYWRzL0Rvd25sb2FkUHJveHlNYXAuaDoK
KyAgICAgICAgKiBVSVByb2Nlc3MvTmV0d29yay9OZXR3b3JrUHJvY2Vzc1Byb3h5LmNwcDoKKyAg
ICAgICAgKFdlYktpdDo6TmV0d29ya1Byb2Nlc3NQcm94eTo6c2V0V2ViUHJvY2Vzc0hhc1VwbG9h
ZHMpOgorICAgICAgICAqIFVJUHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9jZXNzUHJveHkuaDoK
KyAgICAgICAgKiBVSVByb2Nlc3MvUHJvY2Vzc0Fzc2VydGlvbi5jcHA6CisgICAgICAgIChXZWJL
aXQ6OlByb2Nlc3NBc3NlcnRpb246OlByb2Nlc3NBc3NlcnRpb24pOgorICAgICAgICAqIFVJUHJv
Y2Vzcy9Qcm9jZXNzQXNzZXJ0aW9uLmg6CisgICAgICAgIChXZWJLaXQ6OlByb2Nlc3NBc3NlcnRp
b246OmNyZWF0ZSk6CisgICAgICAgICogVUlQcm9jZXNzL1Byb2Nlc3NUaHJvdHRsZXIuY3BwOgor
ICAgICAgICAoV2ViS2l0OjpQcm9jZXNzVGhyb3R0bGVyOjpzZXRBc3NlcnRpb25UeXBlKToKKyAg
ICAgICAgKiBVSVByb2Nlc3MvUHJvY2Vzc1Rocm90dGxlci5oOgorICAgICAgICAqIFVJUHJvY2Vz
cy9XZWJQcm9jZXNzUG9vbC5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3NQb29sOjp1
cGRhdGVBdWRpYmxlTWVkaWFBc3NlcnRpb25zKToKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUHJv
Y2Vzc1Bvb2wuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5LmNwcDoKKyAg
ICAgICAgKFdlYktpdDo6V2ViUHJvY2Vzc1Byb3h5Ojp1cGRhdGVBdWRpYmxlTWVkaWFBc3NlcnRp
b25zKToKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5Lmg6CisgICAgICAgICog
VUlQcm9jZXNzL2lvcy9Qcm9jZXNzQXNzZXJ0aW9uSU9TLm1tOgorICAgICAgICAoYXNzZXJ0aW9u
c1dvcmtRdWV1ZSk6CisgICAgICAgICgtW1dLUHJvY2Vzc0Fzc2VydGlvbkJhY2tncm91bmRUYXNr
TWFuYWdlciBfdXBkYXRlQmFja2dyb3VuZFRhc2tdKToKKyAgICAgICAgKC1bV0tQcm9jZXNzQXNz
ZXJ0aW9uQmFja2dyb3VuZFRhc2tNYW5hZ2VyIGFzc2VydGlvbjpkaWRJbnZhbGlkYXRlV2l0aEVy
cm9yOl0pOgorICAgICAgICAoV2ViS2l0OjpQcm9jZXNzQXNzZXJ0aW9uOjpQcm9jZXNzQXNzZXJ0
aW9uKToKKyAgICAgICAgKFdlYktpdDo6UHJvY2Vzc0Fzc2VydGlvbjo6YWNxdWlyZUFzeW5jKToK
KyAgICAgICAgKFdlYktpdDo6UHJvY2Vzc0Fzc2VydGlvbjo6YWNxdWlyZVN5bmMpOgorICAgICAg
ICAoV2ViS2l0OjpQcm9jZXNzQXNzZXJ0aW9uOjp+UHJvY2Vzc0Fzc2VydGlvbik6CisgICAgICAg
IChXZWJLaXQ6OlByb2Nlc3NBc3NlcnRpb246OnByb2Nlc3NBc3NlcnRpb25XYXNJbnZhbGlkYXRl
ZCk6CisgICAgICAgIChXZWJLaXQ6OlByb2Nlc3NBc3NlcnRpb246OmlzVmFsaWQgY29uc3QpOgor
CiAyMDIxLTA3LTAxICBZb3Vlbm4gRmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KIAogICAgICAg
ICBbQ29jb2FdIE1pZ3JhdGUgV2ViUlRDIFVEUCBzb2NrZXQgaGFuZGxpbmcgdG8gTlcgQVBJCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL0Rvd25sb2Fkcy9Eb3dubG9h
ZE1hcC5jcHAgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL0Rvd25sb2Fkcy9Eb3dubG9h
ZE1hcC5jcHAKaW5kZXggOGQ1MDIwMzc2OGFhZjNjNzk3MTdjZjRmMjk4NzgyMjc4ZWM2NGU0NS4u
NDA0MmRkZjVkOGJmZTMzNDE4OWJmNGRmMzBmZDFhZTUwNjFmMDM3YSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9Eb3dubG9hZHMvRG93bmxvYWRNYXAuY3BwCisrKyBi
L1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvRG93bmxvYWRzL0Rvd25sb2FkTWFwLmNwcApA
QCAtNjEsNyArNjEsNyBAQCBEb3dubG9hZE1hcDo6RG93bmxvYWRNYXBUeXBlOjpBZGRSZXN1bHQg
RG93bmxvYWRNYXA6OmFkZChEb3dubG9hZElEIGRvd25sb2FkSUQsCiAgICAgYXV0byByZXN1bHQg
PSBtX2Rvd25sb2Fkcy5hZGQoZG93bmxvYWRJRCwgV1RGTW92ZShkb3dubG9hZCkpOwogICAgIGlm
IChtX2Rvd25sb2Fkcy5zaXplKCkgPT0gMSkgewogICAgICAgICBBU1NFUlQoIW1fZG93bmxvYWRB
c3NlcnRpb24pOwotICAgICAgICBtX2Rvd25sb2FkQXNzZXJ0aW9uID0gbWFrZVVuaXF1ZTxQcm9j
ZXNzQXNzZXJ0aW9uPihnZXRwaWQoKSwgIldlYktpdCBkb3dubG9hZHMiX3MsIFByb2Nlc3NBc3Nl
cnRpb25UeXBlOjpVbmJvdW5kZWROZXR3b3JraW5nKTsKKyAgICAgICAgbV9kb3dubG9hZEFzc2Vy
dGlvbiA9IFByb2Nlc3NBc3NlcnRpb246OmNyZWF0ZShnZXRwaWQoKSwgIldlYktpdCBkb3dubG9h
ZHMiX3MsIFByb2Nlc3NBc3NlcnRpb25UeXBlOjpVbmJvdW5kZWROZXR3b3JraW5nKTsKICAgICAg
ICAgUkVMRUFTRV9MT0coUHJvY2Vzc1N1c3BlbnNpb24sICJUb29rICdXZWJLaXQgZG93bmxvYWRz
JyBhc3NlcnRpb24gaW4gTmV0d29ya1Byb2Nlc3MiKTsKICAgICB9CiAKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvRG93bmxvYWRzL0Rvd25sb2FkTWFwLmggYi9Tb3Vy
Y2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL0Rvd25sb2Fkcy9Eb3dubG9hZE1hcC5oCmluZGV4IGI1
MjU2N2NhYTM4YTQzNzYxOWNmMGU2NzI2ZWI4YzNmYzkxMTY3MTAuLmE4YmQyOGU2OGNhZDNhZGU0
ODMwNTViMmYyMTdmNTAxYmQ5ZmI5YmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29y
a1Byb2Nlc3MvRG93bmxvYWRzL0Rvd25sb2FkTWFwLmgKKysrIGIvU291cmNlL1dlYktpdC9OZXR3
b3JrUHJvY2Vzcy9Eb3dubG9hZHMvRG93bmxvYWRNYXAuaApAQCAtNTMsNyArNTMsNyBAQCBwdWJs
aWM6CiAKIHByaXZhdGU6CiAgICAgRG93bmxvYWRNYXBUeXBlIG1fZG93bmxvYWRzOwotICAgIHN0
ZDo6dW5pcXVlX3B0cjxQcm9jZXNzQXNzZXJ0aW9uPiBtX2Rvd25sb2FkQXNzZXJ0aW9uOworICAg
IFJlZlB0cjxQcm9jZXNzQXNzZXJ0aW9uPiBtX2Rvd25sb2FkQXNzZXJ0aW9uOwogfTsKIAogI2Vu
ZGlmIC8vICFFTkFCTEUoVEFLRV9VTkJPVU5ERURfTkVUV09SS0lOR19BU1NFUlRJT04pCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L1BsYXRmb3JtL0lQQy9jb2NvYS9Db25uZWN0aW9uQ29jb2Eu
bW0gYi9Tb3VyY2UvV2ViS2l0L1BsYXRmb3JtL0lQQy9jb2NvYS9Db25uZWN0aW9uQ29jb2EubW0K
aW5kZXggMzg5ODIwMDk3OGU0MzU0OTdkMzgwNzQwMWUzNjZhMTkyODc0NzhjMy4uZTc5MjIxOTM0
ZmI0YzUyOTEyNDc5NDlmMTRmMzY5NzFlMTZlYzcxNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9QbGF0Zm9ybS9JUEMvY29jb2EvQ29ubmVjdGlvbkNvY29hLm1tCisrKyBiL1NvdXJjZS9XZWJL
aXQvUGxhdGZvcm0vSVBDL2NvY29hL0Nvbm5lY3Rpb25Db2NvYS5tbQpAQCAtODksNyArODksNyBA
QCBwcml2YXRlOgogICAgICAgICA6IG1feHBjQ29ubmVjdGlvbih4cGNDb25uZWN0aW9uKQogICAg
ICAgICAsIG1fd2F0Y2hkb2dUaW1lcihSdW5Mb29wOjptYWluKCksIHRoaXMsICZDb25uZWN0aW9u
VGVybWluYXRpb25XYXRjaGRvZzo6d2F0Y2hkb2dUaW1lckZpcmVkKQogI2lmIFBMQVRGT1JNKElP
U19GQU1JTFkpCi0gICAgICAgICwgbV9hc3NlcnRpb24obWFrZVVuaXF1ZTxXZWJLaXQ6OlByb2Nl
c3NBbmRVSUFzc2VydGlvbj4oeHBjX2Nvbm5lY3Rpb25fZ2V0X3BpZChtX3hwY0Nvbm5lY3Rpb24u
Z2V0KCkpLCAiQ29ubmVjdGlvblRlcm1pbmF0aW9uV2F0Y2hkb2ciX3MsIFdlYktpdDo6UHJvY2Vz
c0Fzc2VydGlvblR5cGU6OkJhY2tncm91bmQpKQorICAgICAgICAsIG1fYXNzZXJ0aW9uKFdlYktp
dDo6UHJvY2Vzc0FuZFVJQXNzZXJ0aW9uOjpjcmVhdGUoeHBjX2Nvbm5lY3Rpb25fZ2V0X3BpZCht
X3hwY0Nvbm5lY3Rpb24uZ2V0KCkpLCAiQ29ubmVjdGlvblRlcm1pbmF0aW9uV2F0Y2hkb2ciX3Ms
IFdlYktpdDo6UHJvY2Vzc0Fzc2VydGlvblR5cGU6OkJhY2tncm91bmQpKQogI2VuZGlmCiAgICAg
ewogICAgICAgICBtX3dhdGNoZG9nVGltZXIuc3RhcnRPbmVTaG90KGludGVydmFsKTsKQEAgLTEw
NCw3ICsxMDQsNyBAQCBwcml2YXRlOgogICAgIE9TT2JqZWN0UHRyPHhwY19jb25uZWN0aW9uX3Q+
IG1feHBjQ29ubmVjdGlvbjsKICAgICBSdW5Mb29wOjpUaW1lcjxDb25uZWN0aW9uVGVybWluYXRp
b25XYXRjaGRvZz4gbV93YXRjaGRvZ1RpbWVyOwogI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCi0g
ICAgc3RkOjp1bmlxdWVfcHRyPFdlYktpdDo6UHJvY2Vzc0FuZFVJQXNzZXJ0aW9uPiBtX2Fzc2Vy
dGlvbjsKKyAgICBSZWY8V2ViS2l0OjpQcm9jZXNzQW5kVUlBc3NlcnRpb24+IG1fYXNzZXJ0aW9u
OwogI2VuZGlmCiB9OwogICAgIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
RG93bmxvYWRzL0Rvd25sb2FkUHJveHlNYXAuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
RG93bmxvYWRzL0Rvd25sb2FkUHJveHlNYXAuY3BwCmluZGV4IDA3MDI3NGM0N2E4MGU1ODRlNjc0
YmQyMjkxMzQ2NjQ5OTMzZTU3YjIuLmIxNDk5ZmYxNDVjYjc1NmMyNDZhNDdhZWZlMzk4ZDZhYjdj
NDNjYjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0Rvd25sb2Fkcy9Eb3du
bG9hZFByb3h5TWFwLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Eb3dubG9hZHMv
RG93bmxvYWRQcm94eU1hcC5jcHAKQEAgLTkwLDEwICs5MCwxMCBAQCBEb3dubG9hZFByb3h5JiBE
b3dubG9hZFByb3h5TWFwOjpjcmVhdGVEb3dubG9hZFByb3h5KFdlYnNpdGVEYXRhU3RvcmUmIGRh
dGFTdG9yZQogCiAgICAgaWYgKG1fZG93bmxvYWRzLnNpemUoKSA9PSAxICYmIG1fc2hvdWxkVGFr
ZUFzc2VydGlvbikgewogICAgICAgICBBU1NFUlQoIW1fZG93bmxvYWRVSUFzc2VydGlvbik7Ci0g
ICAgICAgIG1fZG93bmxvYWRVSUFzc2VydGlvbiA9IG1ha2VVbmlxdWU8UHJvY2Vzc0Fzc2VydGlv
bj4oZ2V0Q3VycmVudFByb2Nlc3NJRCgpLCAiV2ViS2l0IGRvd25sb2FkcyJfcywgUHJvY2Vzc0Fz
c2VydGlvblR5cGU6OlVuYm91bmRlZE5ldHdvcmtpbmcpOworICAgICAgICBtX2Rvd25sb2FkVUlB
c3NlcnRpb24gPSBQcm9jZXNzQXNzZXJ0aW9uOjpjcmVhdGUoZ2V0Q3VycmVudFByb2Nlc3NJRCgp
LCAiV2ViS2l0IGRvd25sb2FkcyJfcywgUHJvY2Vzc0Fzc2VydGlvblR5cGU6OlVuYm91bmRlZE5l
dHdvcmtpbmcpOwogCiAgICAgICAgIEFTU0VSVCghbV9kb3dubG9hZE5ldHdvcmtpbmdBc3NlcnRp
b24pOwotICAgICAgICBtX2Rvd25sb2FkTmV0d29ya2luZ0Fzc2VydGlvbiA9IG1ha2VVbmlxdWU8
UHJvY2Vzc0Fzc2VydGlvbj4obV9wcm9jZXNzLnByb2Nlc3NJZGVudGlmaWVyKCksICJXZWJLaXQg
ZG93bmxvYWRzIl9zLCBQcm9jZXNzQXNzZXJ0aW9uVHlwZTo6VW5ib3VuZGVkTmV0d29ya2luZyk7
CisgICAgICAgIG1fZG93bmxvYWROZXR3b3JraW5nQXNzZXJ0aW9uID0gUHJvY2Vzc0Fzc2VydGlv
bjo6Y3JlYXRlKG1fcHJvY2Vzcy5wcm9jZXNzSWRlbnRpZmllcigpLCAiV2ViS2l0IGRvd25sb2Fk
cyJfcywgUHJvY2Vzc0Fzc2VydGlvblR5cGU6OlVuYm91bmRlZE5ldHdvcmtpbmcpOwogCiAgICAg
ICAgIFJFTEVBU0VfTE9HKFByb2Nlc3NTdXNwZW5zaW9uLCAiVUlQcm9jZXNzIHRvb2sgJ1dlYktp
dCBkb3dubG9hZHMnIGFzc2VydGlvbnMgZm9yIFVJUHJvY2VzcyBhbmQgTmV0d29ya1Byb2Nlc3Mi
KTsKICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Eb3dubG9hZHMv
RG93bmxvYWRQcm94eU1hcC5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvRG93bmxvYWRzL0Rv
d25sb2FkUHJveHlNYXAuaAppbmRleCA0ZmEwMDFiZDdmYWUxY2VkMDI0ZDJiOTFmMjAxNzBmZjk5
NDUyOGJlLi44MTJmNjRkNDcyNTc1YjE0MjFhNmU3NWJkODI4OWMwZWQxMDM5OTkzIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Eb3dubG9hZHMvRG93bmxvYWRQcm94eU1hcC5o
CisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0Rvd25sb2Fkcy9Eb3dubG9hZFByb3h5TWFw
LmgKQEAgLTc1LDggKzc1LDggQEAgcHJpdmF0ZToKICAgICBIYXNoTWFwPERvd25sb2FkSUQsIFJl
ZlB0cjxEb3dubG9hZFByb3h5Pj4gbV9kb3dubG9hZHM7CiAKICAgICBib29sIG1fc2hvdWxkVGFr
ZUFzc2VydGlvbiB7IGZhbHNlIH07Ci0gICAgc3RkOjp1bmlxdWVfcHRyPFByb2Nlc3NBc3NlcnRp
b24+IG1fZG93bmxvYWRVSUFzc2VydGlvbjsKLSAgICBzdGQ6OnVuaXF1ZV9wdHI8UHJvY2Vzc0Fz
c2VydGlvbj4gbV9kb3dubG9hZE5ldHdvcmtpbmdBc3NlcnRpb247CisgICAgUmVmUHRyPFByb2Nl
c3NBc3NlcnRpb24+IG1fZG93bmxvYWRVSUFzc2VydGlvbjsKKyAgICBSZWZQdHI8UHJvY2Vzc0Fz
c2VydGlvbj4gbV9kb3dubG9hZE5ldHdvcmtpbmdBc3NlcnRpb247CiAKICNpZiBQTEFURk9STShJ
T1NfRkFNSUxZKQogICAgIFJldGFpblB0cjxpZD4gbV9iYWNrZ3JvdW5kT2JzZXJ2ZXI7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9jZXNzUHJv
eHkuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvTmV0d29yay9OZXR3b3JrUHJvY2Vzc1By
b3h5LmNwcAppbmRleCBlNjA2YjkxZTE2Y2RlNGEzNGFjYjk1YmQwMjFkMzY2MWMyMWI2OTVkLi4x
NGE3MjlkZTEyNjI5NGFiMzEyMWE4ZDQ1Yzc4OTljMGVmZTYxMDNjIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9jZXNzUHJveHkuY3BwCisrKyBi
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nlc3NQcm94eS5jcHAK
QEAgLTE0NTcsMTUgKzE0NTcsMTUgQEAgdm9pZCBOZXR3b3JrUHJvY2Vzc1Byb3h5OjpzZXRXZWJQ
cm9jZXNzSGFzVXBsb2FkcyhXZWJDb3JlOjpQcm9jZXNzSWRlbnRpZmllciBwcm8KICAgICBpZiAo
IW1fdXBsb2FkQWN0aXZpdHkpIHsKICAgICAgICAgUkVMRUFTRV9MT0coUHJvY2Vzc1N1c3BlbnNp
b24sICJOZXR3b3JrUHJvY2Vzc1Byb3h5OjpzZXRXZWJQcm9jZXNzSGFzVXBsb2FkczogVGhlIG51
bWJlciBvZiB1cGxvYWRzIGluIHByb2dyZXNzIGlzIG5vdyBncmVhdGVyIHRoYW4gMC4gVGFraW5n
IE5ldHdvcmtpbmcgYW5kIFVJIHByb2Nlc3MgYXNzZXJ0aW9ucy4iKTsKICAgICAgICAgbV91cGxv
YWRBY3Rpdml0eSA9IFVwbG9hZEFjdGl2aXR5IHsKLSAgICAgICAgICAgIG1ha2VVbmlxdWU8UHJv
Y2Vzc0Fzc2VydGlvbj4oZ2V0Q3VycmVudFByb2Nlc3NJRCgpLCAiV2ViS2l0IHVwbG9hZHMiX3Ms
IFByb2Nlc3NBc3NlcnRpb25UeXBlOjpVbmJvdW5kZWROZXR3b3JraW5nKSwKLSAgICAgICAgICAg
IG1ha2VVbmlxdWU8UHJvY2Vzc0Fzc2VydGlvbj4ocHJvY2Vzc0lkZW50aWZpZXIoKSwgIldlYktp
dCB1cGxvYWRzIl9zLCBQcm9jZXNzQXNzZXJ0aW9uVHlwZTo6VW5ib3VuZGVkTmV0d29ya2luZyks
Ci0gICAgICAgICAgICBIYXNoTWFwPFdlYkNvcmU6OlByb2Nlc3NJZGVudGlmaWVyLCBzdGQ6OnVu
aXF1ZV9wdHI8UHJvY2Vzc0Fzc2VydGlvbj4+KCkKKyAgICAgICAgICAgIFByb2Nlc3NBc3NlcnRp
b246OmNyZWF0ZShnZXRDdXJyZW50UHJvY2Vzc0lEKCksICJXZWJLaXQgdXBsb2FkcyJfcywgUHJv
Y2Vzc0Fzc2VydGlvblR5cGU6OlVuYm91bmRlZE5ldHdvcmtpbmcpLAorICAgICAgICAgICAgUHJv
Y2Vzc0Fzc2VydGlvbjo6Y3JlYXRlKHByb2Nlc3NJZGVudGlmaWVyKCksICJXZWJLaXQgdXBsb2Fk
cyJfcywgUHJvY2Vzc0Fzc2VydGlvblR5cGU6OlVuYm91bmRlZE5ldHdvcmtpbmcpLAorICAgICAg
ICAgICAgSGFzaE1hcDxXZWJDb3JlOjpQcm9jZXNzSWRlbnRpZmllciwgUmVmUHRyPFByb2Nlc3NB
c3NlcnRpb24+PigpCiAgICAgICAgIH07CiAgICAgfQogCiAgICAgbV91cGxvYWRBY3Rpdml0eS0+
d2ViUHJvY2Vzc0Fzc2VydGlvbnMuZW5zdXJlKHByb2Nlc3NJRCwgWyZdIHsKICAgICAgICAgUkVM
RUFTRV9MT0coUHJvY2Vzc1N1c3BlbnNpb24sICJOZXR3b3JrUHJvY2Vzc1Byb3h5OjpzZXRXZWJQ
cm9jZXNzSGFzVXBsb2FkczogVGFraW5nIHVwbG9hZCBhc3NlcnRpb24gb24gYmVoYWxmIG9mIFdl
YlByb2Nlc3Mgd2l0aCBQSUQgJWQiLCBwcm9jZXNzLT5wcm9jZXNzSWRlbnRpZmllcigpKTsKLSAg
ICAgICAgcmV0dXJuIG1ha2VVbmlxdWU8UHJvY2Vzc0Fzc2VydGlvbj4ocHJvY2Vzcy0+cHJvY2Vz
c0lkZW50aWZpZXIoKSwgIldlYktpdCB1cGxvYWRzIl9zLCBQcm9jZXNzQXNzZXJ0aW9uVHlwZTo6
VW5ib3VuZGVkTmV0d29ya2luZyk7CisgICAgICAgIHJldHVybiBQcm9jZXNzQXNzZXJ0aW9uOjpj
cmVhdGUocHJvY2Vzcy0+cHJvY2Vzc0lkZW50aWZpZXIoKSwgIldlYktpdCB1cGxvYWRzIl9zLCBQ
cm9jZXNzQXNzZXJ0aW9uVHlwZTo6VW5ib3VuZGVkTmV0d29ya2luZyk7CiAgICAgfSk7CiB9CiAK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nl
c3NQcm94eS5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvTmV0d29yay9OZXR3b3JrUHJvY2Vz
c1Byb3h5LmgKaW5kZXggOGNmZTUzYmI0OTRmOGNjY2Y0YTczNjRlODllNGZlYTAzY2MwNTEwMy4u
MGNiMzE2ODFlYTgzZTQ3NDlkNTk3NmFkNjRiYTQyYTY0NzlkZjAzNCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvTmV0d29yay9OZXR3b3JrUHJvY2Vzc1Byb3h5LmgKKysrIGIv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvTmV0d29yay9OZXR3b3JrUHJvY2Vzc1Byb3h5LmgKQEAg
LTM0Nyw5ICszNDcsOSBAQCBwcml2YXRlOgogI2VuZGlmCiAKICAgICBzdHJ1Y3QgVXBsb2FkQWN0
aXZpdHkgewotICAgICAgICBzdGQ6OnVuaXF1ZV9wdHI8UHJvY2Vzc0Fzc2VydGlvbj4gdWlBc3Nl
cnRpb247Ci0gICAgICAgIHN0ZDo6dW5pcXVlX3B0cjxQcm9jZXNzQXNzZXJ0aW9uPiBuZXR3b3Jr
QXNzZXJ0aW9uOwotICAgICAgICBIYXNoTWFwPFdlYkNvcmU6OlByb2Nlc3NJZGVudGlmaWVyLCBz
dGQ6OnVuaXF1ZV9wdHI8UHJvY2Vzc0Fzc2VydGlvbj4+IHdlYlByb2Nlc3NBc3NlcnRpb25zOwor
ICAgICAgICBSZWZQdHI8UHJvY2Vzc0Fzc2VydGlvbj4gdWlBc3NlcnRpb247CisgICAgICAgIFJl
ZlB0cjxQcm9jZXNzQXNzZXJ0aW9uPiBuZXR3b3JrQXNzZXJ0aW9uOworICAgICAgICBIYXNoTWFw
PFdlYkNvcmU6OlByb2Nlc3NJZGVudGlmaWVyLCBSZWZQdHI8UHJvY2Vzc0Fzc2VydGlvbj4+IHdl
YlByb2Nlc3NBc3NlcnRpb25zOwogICAgIH07CiAgICAgc3RkOjpvcHRpb25hbDxVcGxvYWRBY3Rp
dml0eT4gbV91cGxvYWRBY3Rpdml0eTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvUHJvY2Vzc0Fzc2VydGlvbi5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Qcm9j
ZXNzQXNzZXJ0aW9uLmNwcAppbmRleCBmYThlMDM3MDExZTM2NDkwYWU3NDc4OTZmMDI4NTc1ZThi
YWRmYWIyLi4zODQzNDI2N2Q2M2FkMzE5MTdlZTk3MTVjZWY4YjYwNTczYjYzMTlhIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Qcm9jZXNzQXNzZXJ0aW9uLmNwcAorKysgYi9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Qcm9jZXNzQXNzZXJ0aW9uLmNwcApAQCAtMzIsOSArMzIs
MTAgQEAKIAogbmFtZXNwYWNlIFdlYktpdCB7CiAKLVByb2Nlc3NBc3NlcnRpb246OlByb2Nlc3NB
c3NlcnRpb24oUHJvY2Vzc0lEIHBpZCwgY29uc3QgU3RyaW5nJiwgUHJvY2Vzc0Fzc2VydGlvblR5
cGUgYXNzZXJ0aW9uVHlwZSkKK1Byb2Nlc3NBc3NlcnRpb246OlByb2Nlc3NBc3NlcnRpb24oUHJv
Y2Vzc0lEIHBpZCwgY29uc3QgU3RyaW5nJiByZWFzb24sIFByb2Nlc3NBc3NlcnRpb25UeXBlIGFz
c2VydGlvblR5cGUpCiAgICAgOiBtX2Fzc2VydGlvblR5cGUoYXNzZXJ0aW9uVHlwZSkKICAgICAs
IG1fcGlkKHBpZCkKKyAgICAsIG1fcmVhc29uKHJlYXNvbikKIHsKIH0KIApAQCAtNDUsNiArNDYs
MTUgQEAgYm9vbCBQcm9jZXNzQXNzZXJ0aW9uOjppc1ZhbGlkKCkgY29uc3QKICAgICByZXR1cm4g
dHJ1ZTsKIH0KIAordm9pZCBQcm9jZXNzQXNzZXJ0aW9uOjphY3F1aXJlQXN5bmMoQ29tcGxldGlv
bkhhbmRsZXI8dm9pZCgpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQoreworICAgIFJ1bkxvb3A6Om1h
aW4oKS5kaXNwYXRjaChXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKSk7Cit9CisKK3ZvaWQgUHJv
Y2Vzc0Fzc2VydGlvbjo6YWNxdWlyZVN5bmMoKQoreworfQorCiBQcm9jZXNzQW5kVUlBc3NlcnRp
b246OlByb2Nlc3NBbmRVSUFzc2VydGlvbihQcm9jZXNzSUQgcGlkLCBjb25zdCBTdHJpbmcmIHJl
YXNvbiwgUHJvY2Vzc0Fzc2VydGlvblR5cGUgYXNzZXJ0aW9uVHlwZSkKICAgICA6IFByb2Nlc3NB
c3NlcnRpb24ocGlkLCByZWFzb24sIGFzc2VydGlvblR5cGUpCiB7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9Qcm9jZXNzQXNzZXJ0aW9uLmggYi9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9Qcm9jZXNzQXNzZXJ0aW9uLmgKaW5kZXggZWI3NWMyYTJlOTU1NGZkMjU5ZWZlZDI3
NTU3MDI2ZWU5Y2EwNDYwMy4uNTE4YzBhNTM4YWE1MWFmYjkyZmI3NmY1ZWY1YzBiNDdjZmM0NWRj
YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvUHJvY2Vzc0Fzc2VydGlvbi5o
CisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1Byb2Nlc3NBc3NlcnRpb24uaApAQCAtMjUs
OCArMjUsMTAgQEAKIAogI3ByYWdtYSBvbmNlCiAKKyNpbmNsdWRlIDx3dGYvQ29tcGxldGlvbkhh
bmRsZXIuaD4KICNpbmNsdWRlIDx3dGYvRnVuY3Rpb24uaD4KICNpbmNsdWRlIDx3dGYvUHJvY2Vz
c0lELmg+CisjaW5jbHVkZSA8d3RmL1RocmVhZFNhZmVSZWZDb3VudGVkLmg+CiAjaW5jbHVkZSA8
d3RmL1dlYWtQdHIuaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KIApAQCAtNTEs
MTAgKzUzLDIxIEBAIGVudW0gY2xhc3MgUHJvY2Vzc0Fzc2VydGlvblR5cGUgewogICAgIE1lZGlh
UGxheWJhY2ssCiB9OwogCi1jbGFzcyBQcm9jZXNzQXNzZXJ0aW9uIDogcHVibGljIENhbk1ha2VX
ZWFrUHRyPFByb2Nlc3NBc3NlcnRpb24+IHsKK2NsYXNzIFByb2Nlc3NBc3NlcnRpb24gOiBwdWJs
aWMgVGhyZWFkU2FmZVJlZkNvdW50ZWQ8UHJvY2Vzc0Fzc2VydGlvbj4sIHB1YmxpYyBDYW5NYWtl
V2Vha1B0cjxQcm9jZXNzQXNzZXJ0aW9uPiB7CiAgICAgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7
CiBwdWJsaWM6Ci0gICAgUHJvY2Vzc0Fzc2VydGlvbihQcm9jZXNzSUQsIGNvbnN0IFN0cmluZyYg
cmVhc29uLCBQcm9jZXNzQXNzZXJ0aW9uVHlwZSk7CisgICAgZW51bSBjbGFzcyBNb2RlIDogYm9v
bCB7IFN5bmMsIEFzeW5jIH07CisgICAgc3RhdGljIFJlZjxQcm9jZXNzQXNzZXJ0aW9uPiBjcmVh
dGUoUHJvY2Vzc0lEIHBpZCwgY29uc3QgU3RyaW5nJiByZWFzb24sIFByb2Nlc3NBc3NlcnRpb25U
eXBlIHR5cGUsIE1vZGUgbW9kZSA9IE1vZGU6OkFzeW5jLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lk
KCk+JiYgYWNxdWlzaXNpb25IYW5kbGVyID0gbnVsbHB0cikKKyAgICB7CisgICAgICAgIGF1dG8g
YXNzZXJ0aW9uID0gYWRvcHRSZWYoKm5ldyBQcm9jZXNzQXNzZXJ0aW9uKHBpZCwgcmVhc29uLCB0
eXBlKSk7CisgICAgICAgIGlmIChtb2RlID09IE1vZGU6OkFzeW5jKQorICAgICAgICAgICAgYXNz
ZXJ0aW9uLT5hY3F1aXJlQXN5bmMoV1RGTW92ZShhY3F1aXNpc2lvbkhhbmRsZXIpKTsKKyAgICAg
ICAgZWxzZSB7CisgICAgICAgICAgICBhc3NlcnRpb24tPmFjcXVpcmVTeW5jKCk7CisgICAgICAg
ICAgICBhY3F1aXNpc2lvbkhhbmRsZXIoKTsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gYXNz
ZXJ0aW9uOworICAgIH0KICAgICB2aXJ0dWFsIH5Qcm9jZXNzQXNzZXJ0aW9uKCk7CiAKICAgICB2
b2lkIHNldEludmFsaWRhdGlvbkhhbmRsZXIoRnVuY3Rpb248dm9pZCgpPiYmIGhhbmRsZXIpIHsg
bV9pbnZhbGlkYXRpb25IYW5kbGVyID0gV1RGTW92ZShoYW5kbGVyKTsgfQpAQCAtNjQsMjQgKzc3
LDQxIEBAIHB1YmxpYzoKIAogICAgIGJvb2wgaXNWYWxpZCgpIGNvbnN0OwogCi0jaWYgUExBVEZP
Uk0oSU9TX0ZBTUlMWSkKIHByb3RlY3RlZDoKKyAgICBQcm9jZXNzQXNzZXJ0aW9uKFByb2Nlc3NJ
RCwgY29uc3QgU3RyaW5nJiByZWFzb24sIFByb2Nlc3NBc3NlcnRpb25UeXBlKTsKKworICAgIHZv
aWQgYWNxdWlyZUFzeW5jKENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJik7CisgICAgdm9pZCBh
Y3F1aXJlU3luYygpOworCisjaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKICAgICB2aXJ0dWFsIHZv
aWQgcHJvY2Vzc0Fzc2VydGlvbldhc0ludmFsaWRhdGVkKCk7CiAjZW5kaWYKIAogcHJpdmF0ZToK
ICAgICBjb25zdCBQcm9jZXNzQXNzZXJ0aW9uVHlwZSBtX2Fzc2VydGlvblR5cGU7CiAgICAgY29u
c3QgUHJvY2Vzc0lEIG1fcGlkOworICAgIGNvbnN0IFN0cmluZyBtX3JlYXNvbjsKICNpZiBQTEFU
Rk9STShJT1NfRkFNSUxZKQogICAgIFJldGFpblB0cjxSQlNBc3NlcnRpb24+IG1fcmJzQXNzZXJ0
aW9uOwogICAgIFJldGFpblB0cjxXS1JCU0Fzc2VydGlvbkRlbGVnYXRlPiBtX2RlbGVnYXRlOwor
ICAgIGJvb2wgbV93YXNJbnZhbGlkYXRlZCB7IGZhbHNlIH07CiAjZW5kaWYKICAgICBGdW5jdGlv
bjx2b2lkKCk+IG1faW52YWxpZGF0aW9uSGFuZGxlcjsKIH07CiAKIGNsYXNzIFByb2Nlc3NBbmRV
SUFzc2VydGlvbiBmaW5hbCA6IHB1YmxpYyBQcm9jZXNzQXNzZXJ0aW9uIHsKIHB1YmxpYzoKLSAg
ICBQcm9jZXNzQW5kVUlBc3NlcnRpb24oUHJvY2Vzc0lELCBjb25zdCBTdHJpbmcmIHJlYXNvbiwg
UHJvY2Vzc0Fzc2VydGlvblR5cGUpOworICAgIHN0YXRpYyBSZWY8UHJvY2Vzc0FuZFVJQXNzZXJ0
aW9uPiBjcmVhdGUoUHJvY2Vzc0lEIHBpZCwgY29uc3QgU3RyaW5nJiByZWFzb24sIFByb2Nlc3NB
c3NlcnRpb25UeXBlIHR5cGUsIE1vZGUgbW9kZSA9IE1vZGU6OkFzeW5jLCBDb21wbGV0aW9uSGFu
ZGxlcjx2b2lkKCk+JiYgYWNxdWlzaXNpb25IYW5kbGVyID0gbnVsbHB0cikKKyAgICB7CisgICAg
ICAgIGF1dG8gYXNzZXJ0aW9uID0gYWRvcHRSZWYoKm5ldyBQcm9jZXNzQW5kVUlBc3NlcnRpb24o
cGlkLCByZWFzb24sIHR5cGUpKTsKKyAgICAgICAgaWYgKG1vZGUgPT0gTW9kZTo6QXN5bmMpCisg
ICAgICAgICAgICBhc3NlcnRpb24tPmFjcXVpcmVBc3luYyhXVEZNb3ZlKGFjcXVpc2lzaW9uSGFu
ZGxlcikpOworICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgIGFzc2VydGlvbi0+YWNxdWlyZVN5
bmMoKTsKKyAgICAgICAgICAgIGFjcXVpc2lzaW9uSGFuZGxlcigpOworICAgICAgICB9CisgICAg
ICAgIHJldHVybiBhc3NlcnRpb247CisgICAgfQogICAgIH5Qcm9jZXNzQW5kVUlBc3NlcnRpb24o
KTsKIAogICAgIHZvaWQgdWlBc3NlcnRpb25XaWxsRXhwaXJlSW1taW5lbnRseSgpOwpAQCAtODks
NiArMTE5LDggQEAgcHVibGljOgogICAgIHZvaWQgc2V0VUlBc3NlcnRpb25FeHBpcmF0aW9uSGFu
ZGxlcihGdW5jdGlvbjx2b2lkKCk+JiYgaGFuZGxlcikgeyBtX3VpQXNzZXJ0aW9uRXhwaXJhdGlv
bkhhbmRsZXIgPSBXVEZNb3ZlKGhhbmRsZXIpOyB9CiAKIHByaXZhdGU6CisgICAgUHJvY2Vzc0Fu
ZFVJQXNzZXJ0aW9uKFByb2Nlc3NJRCwgY29uc3QgU3RyaW5nJiByZWFzb24sIFByb2Nlc3NBc3Nl
cnRpb25UeXBlKTsKKwogI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCiAgICAgdm9pZCBwcm9jZXNz
QXNzZXJ0aW9uV2FzSW52YWxpZGF0ZWQoKSBmaW5hbDsKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvUHJvY2Vzc1Rocm90dGxlci5jcHAgYi9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9Qcm9jZXNzVGhyb3R0bGVyLmNwcAppbmRleCBjMDkxNTlmYThlMDAwYmU0Nzc3
NzZlM2QzNmRiZjViZGQyNjcxMmRmLi42YTMxMTM4YzkxOGU4ZTZmOTNmMzA3M2M4YWNlMTI0YmY4
MjFiNDE2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Qcm9jZXNzVGhyb3R0
bGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Qcm9jZXNzVGhyb3R0bGVyLmNw
cApAQCAtMTI4LDIwICsxMjgsMjEgQEAgdm9pZCBQcm9jZXNzVGhyb3R0bGVyOjpzZXRBc3NlcnRp
b25UeXBlKFByb2Nlc3NBc3NlcnRpb25UeXBlIG5ld1R5cGUpCiAKICAgICBQUk9DRVNTVEhST1RU
TEVSX1JFTEVBU0VfTE9HKCJzZXRBc3NlcnRpb25UeXBlOiBVcGRhdGluZyBwcm9jZXNzIGFzc2Vy
dGlvbiB0eXBlIHRvICV1IChmb3JlZ3JvdW5kQWN0aXZpdGllcz0ldSwgYmFja2dyb3VuZEFjdGl2
aXRpZXM9JXUpIiwgbmV3VHlwZSwgbV9mb3JlZ3JvdW5kQWN0aXZpdGllcy5zaXplKCksIG1fYmFj
a2dyb3VuZEFjdGl2aXRpZXMuc2l6ZSgpKTsKIAotICAgIC8vIEtlZXAgdGhlIHByZXZpb3VzIGFz
c2VydGlvbiBhcm91bmQgdW50aWwgYWZ0ZXIgdGhlIG5ldyBvbmUgaGFzIGJlZW4gY3JlYXRlZCBz
byB0aGF0IHdlIGFsd2F5cyBob2xkCi0gICAgLy8gYSBwcm9jZXNzIGFzc2VydGlvbiBmb3IgdGhl
IHByb2Nlc3MuCisgICAgLy8gS2VlcCB0aGUgcHJldmlvdXMgYXNzZXJ0aW9uIGFjdGl2ZSB1bnRp
bCB0aGUgbmV3IGFzc2VydGlvbiBpcyB0YWtlbiBhc3luY2hyb25vdXNseS4KICAgICBhdXRvIHBy
ZXZpb3VzQXNzZXJ0aW9uID0gc3RkOjpleGNoYW5nZShtX2Fzc2VydGlvbiwgbnVsbHB0cik7CiAg
ICAgaWYgKG1fc2hvdWxkVGFrZVVJQmFja2dyb3VuZEFzc2VydGlvbikgewotICAgICAgICBhdXRv
IGFzc2VydGlvbiA9IG1ha2VVbmlxdWU8UHJvY2Vzc0FuZFVJQXNzZXJ0aW9uPihtX3Byb2Nlc3NJ
ZGVudGlmaWVyLCBhc3NlcnRpb25OYW1lKG5ld1R5cGUpLCBuZXdUeXBlKTsKLSAgICAgICAgYXNz
ZXJ0aW9uLT5zZXRVSUFzc2VydGlvbkV4cGlyYXRpb25IYW5kbGVyKFt0aGlzXSB7Ci0gICAgICAg
ICAgICB1aUFzc2VydGlvbldpbGxFeHBpcmVJbW1pbmVudGx5KCk7CisgICAgICAgIGF1dG8gYXNz
ZXJ0aW9uID0gUHJvY2Vzc0FuZFVJQXNzZXJ0aW9uOjpjcmVhdGUobV9wcm9jZXNzSWRlbnRpZmll
ciwgYXNzZXJ0aW9uTmFtZShuZXdUeXBlKSwgbmV3VHlwZSwgUHJvY2Vzc0Fzc2VydGlvbjo6TW9k
ZTo6QXN5bmMsIFtwcmV2aW91c0Fzc2VydGlvbiA9IFdURk1vdmUocHJldmlvdXNBc3NlcnRpb24p
XSB7IH0pOworICAgICAgICBhc3NlcnRpb24tPnNldFVJQXNzZXJ0aW9uRXhwaXJhdGlvbkhhbmRs
ZXIoW3dlYWtUaGlzID0gbWFrZVdlYWtQdHIoKnRoaXMpXSB7CisgICAgICAgICAgICBpZiAod2Vh
a1RoaXMpCisgICAgICAgICAgICAgICAgd2Vha1RoaXMtPnVpQXNzZXJ0aW9uV2lsbEV4cGlyZUlt
bWluZW50bHkoKTsKICAgICAgICAgfSk7CiAgICAgICAgIG1fYXNzZXJ0aW9uID0gV1RGTW92ZShh
c3NlcnRpb24pOwogICAgIH0gZWxzZQotICAgICAgICBtX2Fzc2VydGlvbiA9IG1ha2VVbmlxdWU8
UHJvY2Vzc0Fzc2VydGlvbj4obV9wcm9jZXNzSWRlbnRpZmllciwgYXNzZXJ0aW9uTmFtZShuZXdU
eXBlKSwgbmV3VHlwZSk7CisgICAgICAgIG1fYXNzZXJ0aW9uID0gUHJvY2Vzc0Fzc2VydGlvbjo6
Y3JlYXRlKG1fcHJvY2Vzc0lkZW50aWZpZXIsIGFzc2VydGlvbk5hbWUobmV3VHlwZSksIG5ld1R5
cGUsIFByb2Nlc3NBc3NlcnRpb246Ok1vZGU6OkFzeW5jLCBbcHJldmlvdXNBc3NlcnRpb24gPSBX
VEZNb3ZlKHByZXZpb3VzQXNzZXJ0aW9uKV0geyB9KTsKIAotICAgIG1fYXNzZXJ0aW9uLT5zZXRJ
bnZhbGlkYXRpb25IYW5kbGVyKFt0aGlzXSB7Ci0gICAgICAgIGFzc2VydGlvbldhc0ludmFsaWRh
dGVkKCk7CisgICAgbV9hc3NlcnRpb24tPnNldEludmFsaWRhdGlvbkhhbmRsZXIoW3dlYWtUaGlz
ID0gbWFrZVdlYWtQdHIoKnRoaXMpXSB7CisgICAgICAgIGlmICh3ZWFrVGhpcykKKyAgICAgICAg
ICAgIHdlYWtUaGlzLT5hc3NlcnRpb25XYXNJbnZhbGlkYXRlZCgpOwogICAgIH0pOwogICAgIG1f
cHJvY2Vzcy5kaWRTZXRBc3NlcnRpb25UeXBlKG5ld1R5cGUpOwogfQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvUHJvY2Vzc1Rocm90dGxlci5oIGIvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvUHJvY2Vzc1Rocm90dGxlci5oCmluZGV4IGJkNjg1ZTdjY2IxN2NmMmQ4M2I1MmQ0
NmQ3MjBmYTZjNTllZmI0MGMuLjY5YTdjNTU1MjUxN2VjNTRhNTY0ZWM0ZDFjYzRkZmEzZGMyOTI4
ZTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1Byb2Nlc3NUaHJvdHRsZXIu
aAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Qcm9jZXNzVGhyb3R0bGVyLmgKQEAgLTE0
OSw3ICsxNDksNyBAQCBwcml2YXRlOgogCiAgICAgUHJvY2Vzc1Rocm90dGxlckNsaWVudCYgbV9w
cm9jZXNzOwogICAgIFByb2Nlc3NJRCBtX3Byb2Nlc3NJZGVudGlmaWVyIHsgMCB9OwotICAgIHN0
ZDo6dW5pcXVlX3B0cjxQcm9jZXNzQXNzZXJ0aW9uPiBtX2Fzc2VydGlvbjsKKyAgICBSZWZQdHI8
UHJvY2Vzc0Fzc2VydGlvbj4gbV9hc3NlcnRpb247CiAgICAgUnVuTG9vcDo6VGltZXI8UHJvY2Vz
c1Rocm90dGxlcj4gbV9wcmVwYXJlVG9TdXNwZW5kVGltZW91dFRpbWVyOwogICAgIEhhc2hTZXQ8
Rm9yZWdyb3VuZEFjdGl2aXR5Kj4gbV9mb3JlZ3JvdW5kQWN0aXZpdGllczsKICAgICBIYXNoU2V0
PEJhY2tncm91bmRBY3Rpdml0eSo+IG1fYmFja2dyb3VuZEFjdGl2aXRpZXM7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUG9vbC5jcHAgYi9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUG9vbC5jcHAKaW5kZXggYmE5ZTdjZTM0MmQ5ZTY2MjFk
ZjMwN2IxMzA2MzZiZjYwZmM1YzVjYy4uN2NiYjgyMWY4NjcxMDYyYjkzMjRiYmU1Y2IxMDEyMmZl
OThkYmVkNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Bv
b2wuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQb29sLmNwcApA
QCAtMjAyOCw5ICsyMDI4LDkgQEAgdm9pZCBXZWJQcm9jZXNzUG9vbDo6dXBkYXRlQXVkaWJsZU1l
ZGlhQXNzZXJ0aW9ucygpCiAKICAgICBXRUJQUk9DRVNTUE9PTF9SRUxFQVNFX0xPRyhQcm9jZXNz
U3VzcGVuc2lvbiwgInVwZGF0ZUF1ZGlibGVNZWRpYUFzc2VydGlvbnM6IFRoZSBudW1iZXIgb2Yg
cHJvY2Vzc2VzIHBsYXlpbmcgYXVkaWJsZSBtZWRpYSBpcyBub3cgZ3JlYXRlciB0aGFuIHplcm8u
IFRha2luZyBVSSBwcm9jZXNzIGFzc2VydGlvbi4iKTsKICAgICBtX2F1ZGlibGVNZWRpYUFjdGl2
aXR5ID0gQXVkaWJsZU1lZGlhQWN0aXZpdHkgewotICAgICAgICBtYWtlVW5pcXVlUmVmPFByb2Nl
c3NBc3NlcnRpb24+KGdldEN1cnJlbnRQcm9jZXNzSUQoKSwgIldlYktpdCBNZWRpYSBQbGF5YmFj
ayJfcywgUHJvY2Vzc0Fzc2VydGlvblR5cGU6Ok1lZGlhUGxheWJhY2spCisgICAgICAgIFByb2Nl
c3NBc3NlcnRpb246OmNyZWF0ZShnZXRDdXJyZW50UHJvY2Vzc0lEKCksICJXZWJLaXQgTWVkaWEg
UGxheWJhY2siX3MsIFByb2Nlc3NBc3NlcnRpb25UeXBlOjpNZWRpYVBsYXliYWNrKQogI2lmIEVO
QUJMRShHUFVfUFJPQ0VTUykKLSAgICAgICAgLCBncHVQcm9jZXNzKCkgPyBtYWtlVW5pcXVlPFBy
b2Nlc3NBc3NlcnRpb24+KGdwdVByb2Nlc3MoKS0+cHJvY2Vzc0lkZW50aWZpZXIoKSwgIldlYktp
dCBNZWRpYSBQbGF5YmFjayJfcywgUHJvY2Vzc0Fzc2VydGlvblR5cGU6Ok1lZGlhUGxheWJhY2sp
IDogbnVsbHB0cgorICAgICAgICAsIGdwdVByb2Nlc3MoKSA/IFJlZlB0cjxQcm9jZXNzQXNzZXJ0
aW9uPiB7IFByb2Nlc3NBc3NlcnRpb246OmNyZWF0ZShncHVQcm9jZXNzKCktPnByb2Nlc3NJZGVu
dGlmaWVyKCksICJXZWJLaXQgTWVkaWEgUGxheWJhY2siX3MsIFByb2Nlc3NBc3NlcnRpb25UeXBl
OjpNZWRpYVBsYXliYWNrKSB9IDogbnVsbHB0cgogI2VuZGlmCiAgICAgfTsKIH0KZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQb29sLmggYi9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUG9vbC5oCmluZGV4IDI5MzYxYTA0ODUxYjRiZTZiMjRm
ZWIzNmMzNDUyNjYxYjg0Y2IyNjIuLjRlZjU0MWQwNzllMTdkMGM2NDQ3NDZhZWQyNDk2MDkyOTQx
N2JiMzYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQb29s
LmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Bvb2wuaApAQCAtNzYz
LDkgKzc2Myw5IEBAIHByaXZhdGU6CiAgICAgV2ViUHJvY2Vzc1dpdGhBdWRpYmxlTWVkaWFDb3Vu
dGVyIG1fd2ViUHJvY2Vzc1dpdGhBdWRpYmxlTWVkaWFDb3VudGVyOwogCiAgICAgc3RydWN0IEF1
ZGlibGVNZWRpYUFjdGl2aXR5IHsKLSAgICAgICAgVW5pcXVlUmVmPFByb2Nlc3NBc3NlcnRpb24+
IHVpUHJvY2Vzc01lZGlhUGxheWJhY2tBc3NlcnRpb247CisgICAgICAgIFJlZjxQcm9jZXNzQXNz
ZXJ0aW9uPiB1aVByb2Nlc3NNZWRpYVBsYXliYWNrQXNzZXJ0aW9uOwogI2lmIEVOQUJMRShHUFVf
UFJPQ0VTUykKLSAgICAgICAgc3RkOjp1bmlxdWVfcHRyPFByb2Nlc3NBc3NlcnRpb24+IGdwdVBy
b2Nlc3NNZWRpYVBsYXliYWNrQXNzZXJ0aW9uOworICAgICAgICBSZWZQdHI8UHJvY2Vzc0Fzc2Vy
dGlvbj4gZ3B1UHJvY2Vzc01lZGlhUGxheWJhY2tBc3NlcnRpb247CiAjZW5kaWYKICAgICB9Owog
ICAgIHN0ZDo6b3B0aW9uYWw8QXVkaWJsZU1lZGlhQWN0aXZpdHk+IG1fYXVkaWJsZU1lZGlhQWN0
aXZpdHk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUHJv
eHkuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5LmNwcAppbmRl
eCA5OGI4MzY5MGVjNTBiY2NkODg2NmNkYjRjN2RjOWQ4M2M3ODI5MmRlLi4yMzc2MjA2ODE5ZTU0
Y2MzYjEyMWE2ODY5YjBmMmE5NzIzZGY5MDFhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L1dlYlByb2Nlc3NQcm94eS5jcHAKQEAgLTE0ODcsNyArMTQ4Nyw3IEBAIHZvaWQgV2ViUHJvY2Vz
c1Byb3h5Ojp1cGRhdGVBdWRpYmxlTWVkaWFBc3NlcnRpb25zKCkKICAgICBpZiAobmV3SGFzQXVk
aWJsZVdlYlBhZ2UpIHsKICAgICAgICAgV0VCUFJPQ0VTU1BST1hZX1JFTEVBU0VfTE9HKFByb2Nl
c3NTdXNwZW5zaW9uLCAidXBkYXRlQXVkaWJsZU1lZGlhQXNzZXJ0aW9uczogVGFraW5nIE1lZGlh
UGxheWJhY2sgYXNzZXJ0aW9uIGZvciBXZWJQcm9jZXNzIik7CiAgICAgICAgIG1fYXVkaWJsZU1l
ZGlhQWN0aXZpdHkgPSBBdWRpYmxlTWVkaWFBY3Rpdml0eSB7Ci0gICAgICAgICAgICBtYWtlVW5p
cXVlUmVmPFByb2Nlc3NBc3NlcnRpb24+KHByb2Nlc3NJZGVudGlmaWVyKCksICJXZWJLaXQgTWVk
aWEgUGxheWJhY2siX3MsIFByb2Nlc3NBc3NlcnRpb25UeXBlOjpNZWRpYVBsYXliYWNrKSwKKyAg
ICAgICAgICAgIFByb2Nlc3NBc3NlcnRpb246OmNyZWF0ZShwcm9jZXNzSWRlbnRpZmllcigpLCAi
V2ViS2l0IE1lZGlhIFBsYXliYWNrIl9zLCBQcm9jZXNzQXNzZXJ0aW9uVHlwZTo6TWVkaWFQbGF5
YmFjayksCiAgICAgICAgICAgICBwcm9jZXNzUG9vbCgpLndlYlByb2Nlc3NXaXRoQXVkaWJsZU1l
ZGlhVG9rZW4oKQogICAgICAgICB9OwogICAgIH0gZWxzZSB7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL1dlYlByb2Nlc3NQcm94eS5oCmluZGV4IGUyMjVmZjQ2N2RjODRiNTc2ZGMyNWQ2NjI1MDI4
YjYwMTljZjVlODkuLmI5NmUzNTJiYmI5OThiNTZkNTkxMTQ3ZGFjNjU4OTI4NTEwODg3NjAgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5oCisrKyBi
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5oCkBAIC02MzYsNyArNjM2
LDcgQEAgcHJpdmF0ZToKICAgICBIYXNoTWFwPFdlYkNvcmU6OlNsZWVwRGlzYWJsZXJJZGVudGlm
aWVyLCBzdGQ6OnVuaXF1ZV9wdHI8V2ViQ29yZTo6U2xlZXBEaXNhYmxlcj4+IG1fc2xlZXBEaXNh
YmxlcnM7CiAKICAgICBzdHJ1Y3QgQXVkaWJsZU1lZGlhQWN0aXZpdHkgewotICAgICAgICBVbmlx
dWVSZWY8UHJvY2Vzc0Fzc2VydGlvbj4gYXNzZXJ0aW9uOworICAgICAgICBSZWY8UHJvY2Vzc0Fz
c2VydGlvbj4gYXNzZXJ0aW9uOwogICAgICAgICBXZWJQcm9jZXNzV2l0aEF1ZGlibGVNZWRpYVRv
a2VuIHRva2VuOwogICAgIH07CiAgICAgc3RkOjpvcHRpb25hbDxBdWRpYmxlTWVkaWFBY3Rpdml0
eT4gbV9hdWRpYmxlTWVkaWFBY3Rpdml0eTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL2lvcy9Qcm9jZXNzQXNzZXJ0aW9uSU9TLm1tIGIvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvaW9zL1Byb2Nlc3NBc3NlcnRpb25JT1MubW0KaW5kZXggYWIyN2VkZWJhMmFlNmU1Y2YyYWI4
YWUwY2QxMzcyODNmZTEyODNlMS4uODRhZTM3ZDcxZTUwZmZhNmU2ODg3ZDE5YzdhZGY0OGI2YTNi
YTdhZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1Byb2Nlc3NBc3Nl
cnRpb25JT1MubW0KKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1Byb2Nlc3NBc3Nl
cnRpb25JT1MubW0KQEAgLTQxLDYgKzQxLDEyIEBACiAKIHVzaW5nIFdlYktpdDo6UHJvY2Vzc0Fu
ZFVJQXNzZXJ0aW9uOwogCitzdGF0aWMgV29ya1F1ZXVlJiBhc3NlcnRpb25zV29ya1F1ZXVlKCkK
K3sKKyAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8UmVmPFdvcmtRdWV1ZT4+IHdvcmtRdWV1ZShX
b3JrUXVldWU6OmNyZWF0ZSgiUHJvY2Vzc0Fzc2VydGlvbiBRdWV1ZSIpKTsKKyAgICByZXR1cm4g
d29ya1F1ZXVlLmdldCgpOworfQorCiAvLyBUaGlzIGdpdmVzIHNvbWUgdGltZSB0byBvdXIgY2hp
bGQgcHJvY2Vzc2VzIHRvIHByb2Nlc3MgdGhlIFByb2Nlc3NXaWxsU3VzcGVuZEltbWluZW50bHkg
SVBDIGJ1dCBtYWtlcyBzdXJlIHdlIHJlbGVhc2UKIC8vIHRoZSBiYWNrZ3JvdW5kIHRhc2sgYmVm
b3JlIHRoZSBVSUtpdCB0aW1lb3V0IChXZSBnZXQga2lsbGVkIGlmIHdlIGRvIG5vdCByZWxlYXNl
IHRoZSBiYWNrZ3JvdW5kIHRhc2sgd2l0aGluIDUgc2Vjb25kcwogLy8gb24gdGhlIGV4cGlyYXRp
b24gaGFuZGxlciBnZXR0aW5nIGNhbGxlZCkuCkBAIC02NCw2ICs3MCw3IEBAIEBlbmQKIEBpbXBs
ZW1lbnRhdGlvbiBXS1Byb2Nlc3NBc3NlcnRpb25CYWNrZ3JvdW5kVGFza01hbmFnZXIKIHsKICAg
ICBSZXRhaW5QdHI8UkJTQXNzZXJ0aW9uPiBfYmFja2dyb3VuZFRhc2s7CisgICAgc3RkOjphdG9t
aWM8Ym9vbD4gX2JhY2tncm91bmRUYXNrV2FzSW52YWxpZGF0ZWQ7CiAgICAgV2Vha0hhc2hTZXQ8
UHJvY2Vzc0FuZFVJQXNzZXJ0aW9uPiBfYXNzZXJ0aW9uc05lZWRpbmdCYWNrZ3JvdW5kVGFzazsK
ICAgICBkaXNwYXRjaF9ibG9ja190IF9wZW5kaW5nVGFza1JlbGVhc2VUYXNrOwogfQpAQCAtMTYw
LDcgKzE2Nyw3IEBAIC0gKEJPT0wpX2hhc0JhY2tncm91bmRUYXNrCiAKIC0gKHZvaWQpX3VwZGF0
ZUJhY2tncm91bmRUYXNrCiB7Ci0gICAgaWYgKCFfYXNzZXJ0aW9uc05lZWRpbmdCYWNrZ3JvdW5k
VGFzay5jb21wdXRlc0VtcHR5KCkgJiYgIVtzZWxmIF9oYXNCYWNrZ3JvdW5kVGFza10pIHsKKyAg
ICBpZiAoIV9hc3NlcnRpb25zTmVlZGluZ0JhY2tncm91bmRUYXNrLmNvbXB1dGVzRW1wdHkoKSAm
JiAoIVtzZWxmIF9oYXNCYWNrZ3JvdW5kVGFza10gfHwgX2JhY2tncm91bmRUYXNrV2FzSW52YWxp
ZGF0ZWQpKSB7CiAgICAgICAgIGlmIChwcm9jZXNzSGFzQWN0aXZlUnVuVGltZUxpbWl0YXRpb24o
KSkgewogICAgICAgICAgICAgUkVMRUFTRV9MT0coUHJvY2Vzc1N1c3BlbnNpb24sICIlcCAtIFdL
UHJvY2Vzc0Fzc2VydGlvbkJhY2tncm91bmRUYXNrTWFuYWdlcjogSWdub3JlZCByZXF1ZXN0IHRv
IHN0YXJ0IGEgbmV3IGJhY2tncm91bmQgdGFzayBiZWNhdXNlIFJ1bm5pbmdCb2FyZCBoYXMgYWxy
ZWFkeSBzdGFydGVkIHRoZSBleHBpcmF0aW9uIHRpbWVyIiwgc2VsZik7CiAgICAgICAgICAgICBy
ZXR1cm47CkBAIC0xNzEsMTEgKzE3OCw5IEBAIC0gKHZvaWQpX3VwZGF0ZUJhY2tncm91bmRUYXNr
CiAgICAgICAgIF9iYWNrZ3JvdW5kVGFzayA9IGFkb3B0TlMoW1tSQlNBc3NlcnRpb24gYWxsb2Nd
IGluaXRXaXRoRXhwbGFuYXRpb246QCJXZWJLaXQgVUlQcm9jZXNzIGJhY2tncm91bmQgdGFzayIg
dGFyZ2V0OnRhcmdldCBhdHRyaWJ1dGVzOkBbZG9tYWluQXR0cmlidXRlXV0pOwogICAgICAgICBb
X2JhY2tncm91bmRUYXNrIGFkZE9ic2VydmVyOnNlbGZdOwogCi0gICAgICAgIE5TRXJyb3IgKmFj
cXVpc2l0aW9uRXJyb3IgPSBuaWw7Ci0gICAgICAgIGlmICghW19iYWNrZ3JvdW5kVGFzayBhY3F1
aXJlV2l0aEVycm9yOiZhY3F1aXNpdGlvbkVycm9yXSkKLSAgICAgICAgICAgIFJFTEVBU0VfTE9H
X0VSUk9SKFByb2Nlc3NTdXNwZW5zaW9uLCAiV0tQcm9jZXNzQXNzZXJ0aW9uQmFja2dyb3VuZFRh
c2tNYW5hZ2VyOiBGYWlsZWQgdG8gYWNxdWlyZSBGaW5pc2hUYXNrSW50ZXJydXB0YWJsZSBhc3Nl
cnRpb24gZm9yIG93biBwcm9jZXNzLCBlcnJvcjogJXtwdWJsaWN9QCIsIGFjcXVpc2l0aW9uRXJy
b3IpOwotICAgICAgICBlbHNlCi0gICAgICAgICAgICBSRUxFQVNFX0xPRyhQcm9jZXNzU3VzcGVu
c2lvbiwgIldLUHJvY2Vzc0Fzc2VydGlvbkJhY2tncm91bmRUYXNrTWFuYWdlcjogU3VjY2Vzc2Z1
bGx5IHRvb2sgYSBGaW5pc2hUYXNrSW50ZXJydXB0YWJsZSBhc3NlcnRpb24gZm9yIG93biBwcm9j
ZXNzIik7CisgICAgICAgIF9iYWNrZ3JvdW5kVGFza1dhc0ludmFsaWRhdGVkID0gZmFsc2U7Cisg
ICAgICAgIFtfYmFja2dyb3VuZFRhc2sgYWNxdWlyZVdpdGhJbnZhbGlkYXRpb25IYW5kbGVyOm5p
bF07CisgICAgICAgIFJFTEVBU0VfTE9HKFByb2Nlc3NTdXNwZW5zaW9uLCAiV0tQcm9jZXNzQXNz
ZXJ0aW9uQmFja2dyb3VuZFRhc2tNYW5hZ2VyOiBUb29rIGEgRmluaXNoVGFza0ludGVycnVwdGFi
bGUgYXNzZXJ0aW9uIGZvciBvd24gcHJvY2VzcyIpOwogICAgIH0gZWxzZSBpZiAoX2Fzc2VydGlv
bnNOZWVkaW5nQmFja2dyb3VuZFRhc2suY29tcHV0ZXNFbXB0eSgpKSB7CiAgICAgICAgIC8vIFJl
bGVhc2UgdGhlIGJhY2tncm91bmQgdGFzayBhc3luY2hyb25vdXNseSBiZWNhdXNlIHJlbGVhc2lu
ZyB0aGUgYmFja2dyb3VuZCB0YXNrIG1heSBkZXN0cm95IHRoZSBQcm9jZXNzVGhyb3R0bGVyIGFu
ZCB3ZSBkb24ndAogICAgICAgICAvLyB3YW50IGl0IHRvIGdldCBkZXN0cm95ZWQgd2hpbGUgaW4g
dGhlIG1pZGRsZSBvZiB1cGRhdGluZyBpdHMgYXNzZXJ0aW9uLgpAQCAtMTk2LDYgKzIwMSw3IEBA
IC0gKHZvaWQpYXNzZXJ0aW9uOihSQlNBc3NlcnRpb24gKilhc3NlcnRpb24gZGlkSW52YWxpZGF0
ZVdpdGhFcnJvcjooTlNFcnJvciAqKWVyCiB7CiAgICAgQVNTRVJUKGFzc2VydGlvbiA9PSBfYmFj
a2dyb3VuZFRhc2suZ2V0KCkpOwogICAgIFJFTEVBU0VfTE9HX0VSUk9SKFByb2Nlc3NTdXNwZW5z
aW9uLCAiV0tQcm9jZXNzQXNzZXJ0aW9uQmFja2dyb3VuZFRhc2tNYW5hZ2VyOiBGaW5pc2hUYXNr
SW50ZXJydXB0YWJsZSBhc3NlcnRpb24gd2FzIGludmFsaWRhdGVkLCBlcnJvcjogJXtwdWJsaWN9
QCIsIGVycm9yKTsKKyAgICBfYmFja2dyb3VuZFRhc2tXYXNJbnZhbGlkYXRlZCA9IHRydWU7CiB9
CiAKIC0gKHZvaWQpX2hhbmRsZUJhY2tncm91bmRUYXNrRXhwaXJhdGlvbgpAQCAtMjk3LDExICsz
MDMsMTMgQEAgc3RhdGljIE5TU3RyaW5nICpydW5uaW5nQm9hcmROYW1lRm9yQXNzZXJ0aW9uVHlw
ZShQcm9jZXNzQXNzZXJ0aW9uVHlwZSBhc3NlcnRpb24KIFByb2Nlc3NBc3NlcnRpb246OlByb2Nl
c3NBc3NlcnRpb24ocGlkX3QgcGlkLCBjb25zdCBTdHJpbmcmIHJlYXNvbiwgUHJvY2Vzc0Fzc2Vy
dGlvblR5cGUgYXNzZXJ0aW9uVHlwZSkKICAgICA6IG1fYXNzZXJ0aW9uVHlwZShhc3NlcnRpb25U
eXBlKQogICAgICwgbV9waWQocGlkKQorICAgICwgbV9yZWFzb24ocmVhc29uKQogewogICAgIE5T
U3RyaW5nICpydW5uaW5nQm9hcmRBc3NlcnRpb25OYW1lID0gcnVubmluZ0JvYXJkTmFtZUZvckFz
c2VydGlvblR5cGUoYXNzZXJ0aW9uVHlwZSk7CiAgICAgQVNTRVJUKHJ1bm5pbmdCb2FyZEFzc2Vy
dGlvbk5hbWUpOwogICAgIGlmICghcGlkKSB7CiAgICAgICAgIFJFTEVBU0VfTE9HX0VSUk9SKFBy
b2Nlc3NTdXNwZW5zaW9uLCAiJXAgLSBQcm9jZXNzQXNzZXJ0aW9uOiBGYWlsZWQgdG8gYWNxdWly
ZSBSQlMgJXtwdWJsaWN9QCBhc3NlcnRpb24gJyV7cHVibGljfXMnIGZvciBwcm9jZXNzIGJlY2F1
c2UgUElEIGlzIGludmFsaWQiLCB0aGlzLCBydW5uaW5nQm9hcmRBc3NlcnRpb25OYW1lLCByZWFz
b24udXRmOCgpLmRhdGEoKSk7CisgICAgICAgIG1fd2FzSW52YWxpZGF0ZWQgPSB0cnVlOwogICAg
ICAgICByZXR1cm47CiAgICAgfQogCkBAIC0zMTIsMjQgKzMyMCwzNiBAQCBQcm9jZXNzQXNzZXJ0
aW9uOjpQcm9jZXNzQXNzZXJ0aW9uKHBpZF90IHBpZCwgY29uc3QgU3RyaW5nJiByZWFzb24sIFBy
b2Nlc3NBc3NlcgogICAgIG1fZGVsZWdhdGUgPSBhZG9wdE5TKFtbV0tSQlNBc3NlcnRpb25EZWxl
Z2F0ZSBhbGxvY10gaW5pdF0pOwogICAgIFttX3Jic0Fzc2VydGlvbiBhZGRPYnNlcnZlcjptX2Rl
bGVnYXRlLmdldCgpXTsKICAgICBtX2RlbGVnYXRlLmdldCgpLmludmFsaWRhdGlvbkNhbGxiYWNr
ID0gXnsKLSAgICAgICAgUkVMRUFTRV9MT0coUHJvY2Vzc1N1c3BlbnNpb24sICIlcCAtIFByb2Nl
c3NBc3NlcnRpb24oKSBSQlMgJXtwdWJsaWN9QCBhc3NlcnRpb24gZm9yIHByb2Nlc3Mgd2l0aCBQ
SUQ9JWQgd2FzIGludmFsaWRhdGVkIiwgdGhpcywgcnVubmluZ0JvYXJkQXNzZXJ0aW9uTmFtZSwg
cGlkKTsKKyAgICAgICAgUkVMRUFTRV9MT0coUHJvY2Vzc1N1c3BlbnNpb24sICIlcCAtIFByb2Nl
c3NBc3NlcnRpb246IFJCUyAle3B1YmxpY31AIGFzc2VydGlvbiBmb3IgcHJvY2VzcyB3aXRoIFBJ
RD0lZCB3YXMgaW52YWxpZGF0ZWQiLCB0aGlzLCBydW5uaW5nQm9hcmRBc3NlcnRpb25OYW1lLCBw
aWQpOwogICAgICAgICBwcm9jZXNzQXNzZXJ0aW9uV2FzSW52YWxpZGF0ZWQoKTsKICAgICB9Owor
fQogCit2b2lkIFByb2Nlc3NBc3NlcnRpb246OmFjcXVpcmVBc3luYyhDb21wbGV0aW9uSGFuZGxl
cjx2b2lkKCk+JiYgY29tcGxldGlvbkhhbmRsZXIpCit7CisgICAgYXNzZXJ0aW9uc1dvcmtRdWV1
ZSgpLmRpc3BhdGNoKFtwcm90ZWN0ZWRUaGlzID0gbWFrZVJlZigqdGhpcyksIGNvbXBsZXRpb25I
YW5kbGVyID0gV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcildKCkgbXV0YWJsZSB7CisgICAgICAg
IHByb3RlY3RlZFRoaXMtPmFjcXVpcmVTeW5jKCk7CisgICAgICAgIGlmIChjb21wbGV0aW9uSGFu
ZGxlcikKKyAgICAgICAgICAgIFJ1bkxvb3A6Om1haW4oKS5kaXNwYXRjaChXVEZNb3ZlKGNvbXBs
ZXRpb25IYW5kbGVyKSk7CisgICAgfSk7Cit9CisKK3ZvaWQgUHJvY2Vzc0Fzc2VydGlvbjo6YWNx
dWlyZVN5bmMoKQorewogICAgIE5TRXJyb3IgKmFjcXVpc2l0aW9uRXJyb3IgPSBuaWw7CiAgICAg
aWYgKCFbbV9yYnNBc3NlcnRpb24gYWNxdWlyZVdpdGhFcnJvcjomYWNxdWlzaXRpb25FcnJvcl0p
IHsKLSAgICAgICAgUkVMRUFTRV9MT0dfRVJST1IoUHJvY2Vzc1N1c3BlbnNpb24sICIlcCAtIFBy
b2Nlc3NBc3NlcnRpb246IEZhaWxlZCB0byBhY3F1aXJlIFJCUyAle3B1YmxpY31AIGFzc2VydGlv
biAnJXtwdWJsaWN9cycgZm9yIHByb2Nlc3Mgd2l0aCBQSUQ9JWQsIGVycm9yOiAle3B1YmxpY31A
IiwgdGhpcywgcnVubmluZ0JvYXJkQXNzZXJ0aW9uTmFtZSwgcmVhc29uLnV0ZjgoKS5kYXRhKCks
IHBpZCwgYWNxdWlzaXRpb25FcnJvcik7CisgICAgICAgIFJFTEVBU0VfTE9HX0VSUk9SKFByb2Nl
c3NTdXNwZW5zaW9uLCAiJXAgLSBQcm9jZXNzQXNzZXJ0aW9uOiBGYWlsZWQgdG8gYWNxdWlyZSBS
QlMgYXNzZXJ0aW9uICcle3B1YmxpY31zJyBmb3IgcHJvY2VzcyB3aXRoIFBJRD0lZCwgZXJyb3I6
ICV7cHVibGljfUAiLCB0aGlzLCBtX3JlYXNvbi51dGY4KCkuZGF0YSgpLCBtX3BpZCwgYWNxdWlz
aXRpb25FcnJvcik7CiAgICAgICAgIFJ1bkxvb3A6Om1haW4oKS5kaXNwYXRjaChbd2Vha1RoaXMg
PSBtYWtlV2Vha1B0cigqdGhpcyldIHsKICAgICAgICAgICAgIGlmICh3ZWFrVGhpcykKICAgICAg
ICAgICAgICAgICB3ZWFrVGhpcy0+cHJvY2Vzc0Fzc2VydGlvbldhc0ludmFsaWRhdGVkKCk7CiAg
ICAgICAgIH0pOwogICAgIH0gZWxzZQotICAgICAgICBSRUxFQVNFX0xPRyhQcm9jZXNzU3VzcGVu
c2lvbiwgIiVwIC0gUHJvY2Vzc0Fzc2VydGlvbjogU3VjY2Vzc2Z1bGx5IHRvb2sgUkJTICV7cHVi
bGljfUAgYXNzZXJ0aW9uICcle3B1YmxpY31zJyBmb3IgcHJvY2VzcyB3aXRoIFBJRD0lZCIsIHRo
aXMsIHJ1bm5pbmdCb2FyZEFzc2VydGlvbk5hbWUsIHJlYXNvbi51dGY4KCkuZGF0YSgpLCBwaWQp
OworICAgICAgICBSRUxFQVNFX0xPRyhQcm9jZXNzU3VzcGVuc2lvbiwgIiVwIC0gUHJvY2Vzc0Fz
c2VydGlvbjogU3VjY2Vzc2Z1bGx5IHRvb2sgUkJTIGFzc2VydGlvbiAnJXtwdWJsaWN9cycgZm9y
IHByb2Nlc3Mgd2l0aCBQSUQ9JWQiLCB0aGlzLCBtX3JlYXNvbi51dGY4KCkuZGF0YSgpLCBtX3Bp
ZCk7CiB9CiAKIFByb2Nlc3NBc3NlcnRpb246On5Qcm9jZXNzQXNzZXJ0aW9uKCkKIHsKLSAgICBS
RUxFQVNFX0xPRyhQcm9jZXNzU3VzcGVuc2lvbiwgIiVwIC0gflByb2Nlc3NBc3NlcnRpb24oKSBS
ZWxlYXNpbmcgcHJvY2VzcyBhc3NlcnRpb24gZm9yIHByb2Nlc3Mgd2l0aCBQSUQ9JWQiLCB0aGlz
LCBtX3BpZCk7CisgICAgUkVMRUFTRV9MT0coUHJvY2Vzc1N1c3BlbnNpb24sICIlcCAtIH5Qcm9j
ZXNzQXNzZXJ0aW9uOiBSZWxlYXNpbmcgcHJvY2VzcyBhc3NlcnRpb24gJyV7cHVibGljfXMnIGZv
ciBwcm9jZXNzIHdpdGggUElEPSVkIiwgdGhpcywgbV9yZWFzb24udXRmOCgpLmRhdGEoKSwgbV9w
aWQpOwogCiAgICAgaWYgKG1fcmJzQXNzZXJ0aW9uKSB7CiAgICAgICAgIG1fZGVsZWdhdGUuZ2V0
KCkuaW52YWxpZGF0aW9uQ2FsbGJhY2sgPSBuaWw7CkBAIC0zNDQsMTMgKzM2NCwxNCBAQCB2b2lk
IFByb2Nlc3NBc3NlcnRpb246OnByb2Nlc3NBc3NlcnRpb25XYXNJbnZhbGlkYXRlZCgpCiAgICAg
QVNTRVJUKFJ1bkxvb3A6OmlzTWFpbigpKTsKICAgICBSRUxFQVNFX0xPRyhQcm9jZXNzU3VzcGVu
c2lvbiwgIiVwIC0gUHJvY2Vzc0Fzc2VydGlvbjo6cHJvY2Vzc0Fzc2VydGlvbldhc0ludmFsaWRh
dGVkKCkgUElEPSVkIiwgdGhpcywgbV9waWQpOwogCisgICAgbV93YXNJbnZhbGlkYXRlZCA9IHRy
dWU7CiAgICAgaWYgKG1faW52YWxpZGF0aW9uSGFuZGxlcikKICAgICAgICAgbV9pbnZhbGlkYXRp
b25IYW5kbGVyKCk7CiB9CiAKIGJvb2wgUHJvY2Vzc0Fzc2VydGlvbjo6aXNWYWxpZCgpIGNvbnN0
CiB7Ci0gICAgcmV0dXJuIG1fcmJzQXNzZXJ0aW9uICYmIG1fcmJzQXNzZXJ0aW9uLmdldCgpLnZh
bGlkOworICAgIHJldHVybiAhbV93YXNJbnZhbGlkYXRlZDsKIH0KIAogdm9pZCBQcm9jZXNzQW5k
VUlBc3NlcnRpb246OnVwZGF0ZVJ1bkluQmFja2dyb3VuZENvdW50KCkK
</data>
<flag name="commit-queue"
          id="454775"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>432719</attachid>
            <date>2021-07-01 13:39:15 -0700</date>
            <delta_ts>2021-07-01 15:56:39 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-225324-20210701133914.patch</filename>
            <type>text/plain</type>
            <size>31346</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc5NDYzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IGI3MTRhOGJhNTRkMmU5Y2Vh
NWM3YjE0MTdkNmY0NDg5OThmNjQyYWIuLjFjMTA3NTg3NDQyMmU5OTIzZDM5MmExMDM5YmI5MzAw
ZDAxN2UzMWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNzAgQEAKKzIwMjEtMDctMDEgIENocmlzIER1
bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KKworICAgICAgICBbaU9TXSBIYXZlIFByb2Nlc3NBc3Nl
cnRpb24gdGFrZSB0aGUgUnVubmluZ0JvYXJkIGFzc2VydGlvbiBhc3luY2hyb25vdXNseSBieSBk
ZWZhdWx0CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0y
MjUzMjQKKyAgICAgICAgPHJkYXI6Ly83Njk3MjI1Mj4KKworICAgICAgICBSZXZpZXdlZCBieSBO
T0JPRFkgKE9PUFMhKS4KKworICAgICAgICBIYXZlIFByb2Nlc3NBc3NlcnRpb24gdGFrZSB0aGUg
UnVubmluZ0JvYXJkIGFzc2VydGlvbiBhc3luY2hyb25vdXNseSAob24gYSBiYWNrZ3JvdW5kIHRo
cmVhZCkgYnkKKyAgICAgICAgZGVmYXVsdCBhcyB3ZSBoYXZlIGV2aWRlbmNlIHRoYXQgZG9pbmcg
c28gb24gdGhlIG1haW4gdGhyZWFkIGlzIGJhZCBmb3IgcGVyZm9ybWFuY2UgYW5kIG1heQorICAg
ICAgICBuZWdhdGl2ZWx5IGltcGFjdCBsYXVuY2ggdGltZS4KKworICAgICAgICBXaGVuIGNvbnN0
cnVjdGluZyBhIFByb2Nlc3NBc3NlcnRpb24sIHRoZSBjYWxsZXIgY2FuIG5vdyBpbmRpY2F0ZSBp
ZiBpdCB3YW50cyB0aGUgYXNzZXJ0aW9uIHRvIGJlCisgICAgICAgIHRha2VuIGFzeW5jaHJvbm91
c2x5IChkZWZhdWx0KSBvciBub3QuIEJ1ZyAyMjc1NTIgaXMgYW4gZXhhbXBsZSBvZiBhIGNhc2Ug
d2hlcmUgd2Ugc3RpbGwgd2FudCB0bworICAgICAgICB0YWtlIHRoZSBhc3NlcnRpb24gc3luY2hy
b25vdXNseSAoYmVjYXVzZSB3ZSdyZSBub3Qgb24gdGhlIG1haW4gdGhyZWFkIGFuZCB3ZSBuZWVk
IHRvIG1ha2Ugc3VyZQorICAgICAgICB3ZSBoYXZlIHRoZSBhc3NlcnRpb24gYmVmb3JlIHByb2Nl
ZWRpbmcpLgorCisgICAgICAgIFRoZSBjYWxsZXIgY2FuIGFsc28gcHJvdmlkZSBhIGNvbXBsZXRp
b24gaGFuZGxlciB0aGF0IHdpbGwgZ2V0IGNhbGxlZCBvbmNlIHRoZSBSdW5uaW5nQm9hcmQgaXMK
KyAgICAgICAgdGFrZW4uIE5vdGUgdGhhdCB0aGUgUnVubmluZ0JvYXJkIGFzeW5jIEFQSSAoW1JC
U0Fzc2VydGlvbiBhY3F1aXJlV2l0aEludmFsaWRhdGlvbkhhbmRsZXJdKSBkb2VzCisgICAgICAg
IG5vdCBwcm92aWRlIGEgd2F5IGZvciB1cyB0byBrbm93IHdoZW4gdGhlIGFzc2VydGlvbiBpcyB0
YWtlbi4gRm9yIHRoaXMgcmVhc29uLCBQcm9jZXNzQXNzZXJ0aW9uCisgICAgICAgIGtlZXBzIHVz
aW5nIHRoZSBSdW5uaW5nQm9hcmQgc3luYyBBUEkgKFtSQlNBc3NlcnRpb24gYWNxdWlyZVdpdGhF
cnJvcjpdKSBidXQgY2FsbHMgaW4gb24gYQorICAgICAgICBiYWNrZ3JvdW5kIHF1ZXVlLgorCisg
ICAgICAgIEZvciB0aGUgVUlQcm9jZXNzJ3MgYmFja2dyb3VuZCB0YXNrIHRob3VnaCwgd2UgZG9u
J3QgbmVlZCB0byBrbm93IHdoZW4gdGhlIGFzc2VydGlvbiBpcyB0YWtlbgorICAgICAgICBzbyB3
ZSBjYW4gdXNlIHRoZSBSdW5uaW5nQm9hcmQgYXN5bmMgQVBJLgorCisgICAgICAgIE5vdGUgdGhh
dCB0aGUgcHJldmlvdXMgaXRlcmF0aW9uIG9mIHRoaXMgcGF0Y2ggaGFkIGEgYnVnIHdoZXJlIHRo
ZSBQcm9jZXNzVGhyb3R0bGVyIHdvdWxkIHJlbGVhc2UKKyAgICAgICAgaXRzIHByZXZpb3VzIGFz
c2VydGlvbiBiZWZvcmUgdGhlIG5ldyBvbmUgaXMgdGFrZW4gKGFzeW5jaHJvbm91c2x5KSB3aGVu
IGNoYW5naW5nIHRoZSBhc3NlcnRpb24KKyAgICAgICAgdHlwZSAoZS5nLiBmb3JlZ3JvdW5kIHRv
IGJhY2tncm91bmQpLiBUaGlzIGlzIGFkZHJlc3NlZCBpbiB0aGlzIHBhdGNoLiBQcm9jZXNzVGhy
b3R0bGVyIG5vdyBwYXNzZXMKKyAgICAgICAgYW4gYWNxdWlzaXRpb24gaGFuZGxlciB3aGVuIGNv
bnN0cnVjdGluZyB0aGUgUHJvY2Vzc0Fzc2VydGlvbiBhbmQgb25seSByZWxlYXNlcyBpdHMgcHJl
dmlvdXMKKyAgICAgICAgYXNzZXJ0aW9uIG9uY2UgdGhlIGFjcXVpc2l0aW9uIGhhbmRsZXIgZm9y
IHRoZSBuZXcgb25lIGlzIHRha2VuLgorCisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvRG93bmxv
YWRzL0Rvd25sb2FkTWFwLmNwcDoKKyAgICAgICAgKFdlYktpdDo6RG93bmxvYWRNYXA6OmFkZCk6
CisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvRG93bmxvYWRzL0Rvd25sb2FkTWFwLmg6CisgICAg
ICAgICogUGxhdGZvcm0vSVBDL2NvY29hL0Nvbm5lY3Rpb25Db2NvYS5tbToKKyAgICAgICAgKElQ
Qzo6Q29ubmVjdGlvblRlcm1pbmF0aW9uV2F0Y2hkb2c6OkNvbm5lY3Rpb25UZXJtaW5hdGlvbldh
dGNoZG9nKToKKyAgICAgICAgKiBVSVByb2Nlc3MvRG93bmxvYWRzL0Rvd25sb2FkUHJveHlNYXAu
Y3BwOgorICAgICAgICAoV2ViS2l0OjpEb3dubG9hZFByb3h5TWFwOjpjcmVhdGVEb3dubG9hZFBy
b3h5KToKKyAgICAgICAgKiBVSVByb2Nlc3MvRG93bmxvYWRzL0Rvd25sb2FkUHJveHlNYXAuaDoK
KyAgICAgICAgKiBVSVByb2Nlc3MvTmV0d29yay9OZXR3b3JrUHJvY2Vzc1Byb3h5LmNwcDoKKyAg
ICAgICAgKFdlYktpdDo6TmV0d29ya1Byb2Nlc3NQcm94eTo6c2V0V2ViUHJvY2Vzc0hhc1VwbG9h
ZHMpOgorICAgICAgICAqIFVJUHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9jZXNzUHJveHkuaDoK
KyAgICAgICAgKiBVSVByb2Nlc3MvUHJvY2Vzc0Fzc2VydGlvbi5jcHA6CisgICAgICAgIChXZWJL
aXQ6OlByb2Nlc3NBc3NlcnRpb246OlByb2Nlc3NBc3NlcnRpb24pOgorICAgICAgICAqIFVJUHJv
Y2Vzcy9Qcm9jZXNzQXNzZXJ0aW9uLmg6CisgICAgICAgIChXZWJLaXQ6OlByb2Nlc3NBc3NlcnRp
b246OmNyZWF0ZSk6CisgICAgICAgICogVUlQcm9jZXNzL1Byb2Nlc3NUaHJvdHRsZXIuY3BwOgor
ICAgICAgICAoV2ViS2l0OjpQcm9jZXNzVGhyb3R0bGVyOjpzZXRBc3NlcnRpb25UeXBlKToKKyAg
ICAgICAgKiBVSVByb2Nlc3MvUHJvY2Vzc1Rocm90dGxlci5oOgorICAgICAgICAqIFVJUHJvY2Vz
cy9XZWJQcm9jZXNzUG9vbC5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3NQb29sOjp1
cGRhdGVBdWRpYmxlTWVkaWFBc3NlcnRpb25zKToKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUHJv
Y2Vzc1Bvb2wuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5LmNwcDoKKyAg
ICAgICAgKFdlYktpdDo6V2ViUHJvY2Vzc1Byb3h5Ojp1cGRhdGVBdWRpYmxlTWVkaWFBc3NlcnRp
b25zKToKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5Lmg6CisgICAgICAgICog
VUlQcm9jZXNzL2lvcy9Qcm9jZXNzQXNzZXJ0aW9uSU9TLm1tOgorICAgICAgICAoYXNzZXJ0aW9u
c1dvcmtRdWV1ZSk6CisgICAgICAgICgtW1dLUHJvY2Vzc0Fzc2VydGlvbkJhY2tncm91bmRUYXNr
TWFuYWdlciBfdXBkYXRlQmFja2dyb3VuZFRhc2tdKToKKyAgICAgICAgKC1bV0tQcm9jZXNzQXNz
ZXJ0aW9uQmFja2dyb3VuZFRhc2tNYW5hZ2VyIGFzc2VydGlvbjpkaWRJbnZhbGlkYXRlV2l0aEVy
cm9yOl0pOgorICAgICAgICAoV2ViS2l0OjpQcm9jZXNzQXNzZXJ0aW9uOjpQcm9jZXNzQXNzZXJ0
aW9uKToKKyAgICAgICAgKFdlYktpdDo6UHJvY2Vzc0Fzc2VydGlvbjo6YWNxdWlyZUFzeW5jKToK
KyAgICAgICAgKFdlYktpdDo6UHJvY2Vzc0Fzc2VydGlvbjo6YWNxdWlyZVN5bmMpOgorICAgICAg
ICAoV2ViS2l0OjpQcm9jZXNzQXNzZXJ0aW9uOjp+UHJvY2Vzc0Fzc2VydGlvbik6CisgICAgICAg
IChXZWJLaXQ6OlByb2Nlc3NBc3NlcnRpb246OnByb2Nlc3NBc3NlcnRpb25XYXNJbnZhbGlkYXRl
ZCk6CisgICAgICAgIChXZWJLaXQ6OlByb2Nlc3NBc3NlcnRpb246OmlzVmFsaWQgY29uc3QpOgor
CiAyMDIxLTA3LTAxICBZb3Vlbm4gRmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KIAogICAgICAg
ICBbQ29jb2FdIE1pZ3JhdGUgV2ViUlRDIFVEUCBzb2NrZXQgaGFuZGxpbmcgdG8gTlcgQVBJCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL0Rvd25sb2Fkcy9Eb3dubG9h
ZE1hcC5jcHAgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL0Rvd25sb2Fkcy9Eb3dubG9h
ZE1hcC5jcHAKaW5kZXggOGQ1MDIwMzc2OGFhZjNjNzk3MTdjZjRmMjk4NzgyMjc4ZWM2NGU0NS4u
NDA0MmRkZjVkOGJmZTMzNDE4OWJmNGRmMzBmZDFhZTUwNjFmMDM3YSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9Eb3dubG9hZHMvRG93bmxvYWRNYXAuY3BwCisrKyBi
L1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvRG93bmxvYWRzL0Rvd25sb2FkTWFwLmNwcApA
QCAtNjEsNyArNjEsNyBAQCBEb3dubG9hZE1hcDo6RG93bmxvYWRNYXBUeXBlOjpBZGRSZXN1bHQg
RG93bmxvYWRNYXA6OmFkZChEb3dubG9hZElEIGRvd25sb2FkSUQsCiAgICAgYXV0byByZXN1bHQg
PSBtX2Rvd25sb2Fkcy5hZGQoZG93bmxvYWRJRCwgV1RGTW92ZShkb3dubG9hZCkpOwogICAgIGlm
IChtX2Rvd25sb2Fkcy5zaXplKCkgPT0gMSkgewogICAgICAgICBBU1NFUlQoIW1fZG93bmxvYWRB
c3NlcnRpb24pOwotICAgICAgICBtX2Rvd25sb2FkQXNzZXJ0aW9uID0gbWFrZVVuaXF1ZTxQcm9j
ZXNzQXNzZXJ0aW9uPihnZXRwaWQoKSwgIldlYktpdCBkb3dubG9hZHMiX3MsIFByb2Nlc3NBc3Nl
cnRpb25UeXBlOjpVbmJvdW5kZWROZXR3b3JraW5nKTsKKyAgICAgICAgbV9kb3dubG9hZEFzc2Vy
dGlvbiA9IFByb2Nlc3NBc3NlcnRpb246OmNyZWF0ZShnZXRwaWQoKSwgIldlYktpdCBkb3dubG9h
ZHMiX3MsIFByb2Nlc3NBc3NlcnRpb25UeXBlOjpVbmJvdW5kZWROZXR3b3JraW5nKTsKICAgICAg
ICAgUkVMRUFTRV9MT0coUHJvY2Vzc1N1c3BlbnNpb24sICJUb29rICdXZWJLaXQgZG93bmxvYWRz
JyBhc3NlcnRpb24gaW4gTmV0d29ya1Byb2Nlc3MiKTsKICAgICB9CiAKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvRG93bmxvYWRzL0Rvd25sb2FkTWFwLmggYi9Tb3Vy
Y2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL0Rvd25sb2Fkcy9Eb3dubG9hZE1hcC5oCmluZGV4IGI1
MjU2N2NhYTM4YTQzNzYxOWNmMGU2NzI2ZWI4YzNmYzkxMTY3MTAuLmE4YmQyOGU2OGNhZDNhZGU0
ODMwNTViMmYyMTdmNTAxYmQ5ZmI5YmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29y
a1Byb2Nlc3MvRG93bmxvYWRzL0Rvd25sb2FkTWFwLmgKKysrIGIvU291cmNlL1dlYktpdC9OZXR3
b3JrUHJvY2Vzcy9Eb3dubG9hZHMvRG93bmxvYWRNYXAuaApAQCAtNTMsNyArNTMsNyBAQCBwdWJs
aWM6CiAKIHByaXZhdGU6CiAgICAgRG93bmxvYWRNYXBUeXBlIG1fZG93bmxvYWRzOwotICAgIHN0
ZDo6dW5pcXVlX3B0cjxQcm9jZXNzQXNzZXJ0aW9uPiBtX2Rvd25sb2FkQXNzZXJ0aW9uOworICAg
IFJlZlB0cjxQcm9jZXNzQXNzZXJ0aW9uPiBtX2Rvd25sb2FkQXNzZXJ0aW9uOwogfTsKIAogI2Vu
ZGlmIC8vICFFTkFCTEUoVEFLRV9VTkJPVU5ERURfTkVUV09SS0lOR19BU1NFUlRJT04pCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L1BsYXRmb3JtL0lQQy9jb2NvYS9Db25uZWN0aW9uQ29jb2Eu
bW0gYi9Tb3VyY2UvV2ViS2l0L1BsYXRmb3JtL0lQQy9jb2NvYS9Db25uZWN0aW9uQ29jb2EubW0K
aW5kZXggMzg5ODIwMDk3OGU0MzU0OTdkMzgwNzQwMWUzNjZhMTkyODc0NzhjMy4uZTc5MjIxOTM0
ZmI0YzUyOTEyNDc5NDlmMTRmMzY5NzFlMTZlYzcxNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9QbGF0Zm9ybS9JUEMvY29jb2EvQ29ubmVjdGlvbkNvY29hLm1tCisrKyBiL1NvdXJjZS9XZWJL
aXQvUGxhdGZvcm0vSVBDL2NvY29hL0Nvbm5lY3Rpb25Db2NvYS5tbQpAQCAtODksNyArODksNyBA
QCBwcml2YXRlOgogICAgICAgICA6IG1feHBjQ29ubmVjdGlvbih4cGNDb25uZWN0aW9uKQogICAg
ICAgICAsIG1fd2F0Y2hkb2dUaW1lcihSdW5Mb29wOjptYWluKCksIHRoaXMsICZDb25uZWN0aW9u
VGVybWluYXRpb25XYXRjaGRvZzo6d2F0Y2hkb2dUaW1lckZpcmVkKQogI2lmIFBMQVRGT1JNKElP
U19GQU1JTFkpCi0gICAgICAgICwgbV9hc3NlcnRpb24obWFrZVVuaXF1ZTxXZWJLaXQ6OlByb2Nl
c3NBbmRVSUFzc2VydGlvbj4oeHBjX2Nvbm5lY3Rpb25fZ2V0X3BpZChtX3hwY0Nvbm5lY3Rpb24u
Z2V0KCkpLCAiQ29ubmVjdGlvblRlcm1pbmF0aW9uV2F0Y2hkb2ciX3MsIFdlYktpdDo6UHJvY2Vz
c0Fzc2VydGlvblR5cGU6OkJhY2tncm91bmQpKQorICAgICAgICAsIG1fYXNzZXJ0aW9uKFdlYktp
dDo6UHJvY2Vzc0FuZFVJQXNzZXJ0aW9uOjpjcmVhdGUoeHBjX2Nvbm5lY3Rpb25fZ2V0X3BpZCht
X3hwY0Nvbm5lY3Rpb24uZ2V0KCkpLCAiQ29ubmVjdGlvblRlcm1pbmF0aW9uV2F0Y2hkb2ciX3Ms
IFdlYktpdDo6UHJvY2Vzc0Fzc2VydGlvblR5cGU6OkJhY2tncm91bmQpKQogI2VuZGlmCiAgICAg
ewogICAgICAgICBtX3dhdGNoZG9nVGltZXIuc3RhcnRPbmVTaG90KGludGVydmFsKTsKQEAgLTEw
NCw3ICsxMDQsNyBAQCBwcml2YXRlOgogICAgIE9TT2JqZWN0UHRyPHhwY19jb25uZWN0aW9uX3Q+
IG1feHBjQ29ubmVjdGlvbjsKICAgICBSdW5Mb29wOjpUaW1lcjxDb25uZWN0aW9uVGVybWluYXRp
b25XYXRjaGRvZz4gbV93YXRjaGRvZ1RpbWVyOwogI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCi0g
ICAgc3RkOjp1bmlxdWVfcHRyPFdlYktpdDo6UHJvY2Vzc0FuZFVJQXNzZXJ0aW9uPiBtX2Fzc2Vy
dGlvbjsKKyAgICBSZWY8V2ViS2l0OjpQcm9jZXNzQW5kVUlBc3NlcnRpb24+IG1fYXNzZXJ0aW9u
OwogI2VuZGlmCiB9OwogICAgIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9QbGF0Zm9ybS9z
cGkvaW9zL1J1bm5pbmdCb2FyZFNlcnZpY2VzU1BJLmggYi9Tb3VyY2UvV2ViS2l0L1BsYXRmb3Jt
L3NwaS9pb3MvUnVubmluZ0JvYXJkU2VydmljZXNTUEkuaAppbmRleCBkNTViNmM5MGMzMWJlNGJi
YzA2M2RlNWU2YmFlMGM4NTdlZGRhNDE5Li40MjUxMzJmZTkwY2ZiZWMzNzZmMzY5MjE1ZjA0MzJj
ZjJiYTk4ODRkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1BsYXRmb3JtL3NwaS9pb3MvUnVu
bmluZ0JvYXJkU2VydmljZXNTUEkuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1BsYXRmb3JtL3NwaS9p
b3MvUnVubmluZ0JvYXJkU2VydmljZXNTUEkuaApAQCAtNTUsMTEgKzU1LDE0IEBAIE5TX0FTU1VN
RV9OT05OVUxMX0JFR0lOCiArIChSQlNUYXJnZXQgKiljdXJyZW50UHJvY2VzczsKIEBlbmQKIAor
QGNsYXNzIFJCU0Fzc2VydGlvbjsKIEBwcm90b2NvbCBSQlNBc3NlcnRpb25PYnNlcnZpbmc7Cit0
eXBlZGVmIHZvaWQgKF5SQlNBc3NlcnRpb25JbnZhbGlkYXRpb25IYW5kbGVyKShSQlNBc3NlcnRp
b24gKmFzc2VydGlvbiwgTlNFcnJvciAqZXJyb3IpOwogCiBAaW50ZXJmYWNlIFJCU0Fzc2VydGlv
biA6IE5TT2JqZWN0CiAtIChpbnN0YW5jZXR5cGUpaW5pdFdpdGhFeHBsYW5hdGlvbjooTlNTdHJp
bmcgKilleHBsYW5hdGlvbiB0YXJnZXQ6KFJCU1RhcmdldCAqKXRhcmdldCBhdHRyaWJ1dGVzOihO
U0FycmF5IDxSQlNBdHRyaWJ1dGUgKj4gKilhdHRyaWJ1dGVzOwogLSAoQk9PTClhY3F1aXJlV2l0
aEVycm9yOihOU0Vycm9yICoqKWVycm9yOworLSAodm9pZClhY3F1aXJlV2l0aEludmFsaWRhdGlv
bkhhbmRsZXI6KG51bGxhYmxlIFJCU0Fzc2VydGlvbkludmFsaWRhdGlvbkhhbmRsZXIpaGFuZGxl
cjsKIC0gKHZvaWQpaW52YWxpZGF0ZTsKIC0gKHZvaWQpYWRkT2JzZXJ2ZXI6KGlkIDxSQlNBc3Nl
cnRpb25PYnNlcnZpbmc+KW9ic2VydmVyOwogLSAodm9pZClyZW1vdmVPYnNlcnZlcjooaWQgPFJC
U0Fzc2VydGlvbk9ic2VydmluZz4pb2JzZXJ2ZXI7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9Eb3dubG9hZHMvRG93bmxvYWRQcm94eU1hcC5jcHAgYi9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9Eb3dubG9hZHMvRG93bmxvYWRQcm94eU1hcC5jcHAKaW5kZXggMDcwMjc0YzQ3
YTgwZTU4NGU2NzRiZDIyOTEzNDY2NDk5MzNlNTdiMi4uYjE0OTlmZjE0NWNiNzU2YzI0NmE0N2Fl
ZmUzOThkNmFiN2M0M2NiNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvRG93
bmxvYWRzL0Rvd25sb2FkUHJveHlNYXAuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L0Rvd25sb2Fkcy9Eb3dubG9hZFByb3h5TWFwLmNwcApAQCAtOTAsMTAgKzkwLDEwIEBAIERvd25s
b2FkUHJveHkmIERvd25sb2FkUHJveHlNYXA6OmNyZWF0ZURvd25sb2FkUHJveHkoV2Vic2l0ZURh
dGFTdG9yZSYgZGF0YVN0b3JlCiAKICAgICBpZiAobV9kb3dubG9hZHMuc2l6ZSgpID09IDEgJiYg
bV9zaG91bGRUYWtlQXNzZXJ0aW9uKSB7CiAgICAgICAgIEFTU0VSVCghbV9kb3dubG9hZFVJQXNz
ZXJ0aW9uKTsKLSAgICAgICAgbV9kb3dubG9hZFVJQXNzZXJ0aW9uID0gbWFrZVVuaXF1ZTxQcm9j
ZXNzQXNzZXJ0aW9uPihnZXRDdXJyZW50UHJvY2Vzc0lEKCksICJXZWJLaXQgZG93bmxvYWRzIl9z
LCBQcm9jZXNzQXNzZXJ0aW9uVHlwZTo6VW5ib3VuZGVkTmV0d29ya2luZyk7CisgICAgICAgIG1f
ZG93bmxvYWRVSUFzc2VydGlvbiA9IFByb2Nlc3NBc3NlcnRpb246OmNyZWF0ZShnZXRDdXJyZW50
UHJvY2Vzc0lEKCksICJXZWJLaXQgZG93bmxvYWRzIl9zLCBQcm9jZXNzQXNzZXJ0aW9uVHlwZTo6
VW5ib3VuZGVkTmV0d29ya2luZyk7CiAKICAgICAgICAgQVNTRVJUKCFtX2Rvd25sb2FkTmV0d29y
a2luZ0Fzc2VydGlvbik7Ci0gICAgICAgIG1fZG93bmxvYWROZXR3b3JraW5nQXNzZXJ0aW9uID0g
bWFrZVVuaXF1ZTxQcm9jZXNzQXNzZXJ0aW9uPihtX3Byb2Nlc3MucHJvY2Vzc0lkZW50aWZpZXIo
KSwgIldlYktpdCBkb3dubG9hZHMiX3MsIFByb2Nlc3NBc3NlcnRpb25UeXBlOjpVbmJvdW5kZWRO
ZXR3b3JraW5nKTsKKyAgICAgICAgbV9kb3dubG9hZE5ldHdvcmtpbmdBc3NlcnRpb24gPSBQcm9j
ZXNzQXNzZXJ0aW9uOjpjcmVhdGUobV9wcm9jZXNzLnByb2Nlc3NJZGVudGlmaWVyKCksICJXZWJL
aXQgZG93bmxvYWRzIl9zLCBQcm9jZXNzQXNzZXJ0aW9uVHlwZTo6VW5ib3VuZGVkTmV0d29ya2lu
Zyk7CiAKICAgICAgICAgUkVMRUFTRV9MT0coUHJvY2Vzc1N1c3BlbnNpb24sICJVSVByb2Nlc3Mg
dG9vayAnV2ViS2l0IGRvd25sb2FkcycgYXNzZXJ0aW9ucyBmb3IgVUlQcm9jZXNzIGFuZCBOZXR3
b3JrUHJvY2VzcyIpOwogICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L0Rvd25sb2Fkcy9Eb3dubG9hZFByb3h5TWFwLmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9E
b3dubG9hZHMvRG93bmxvYWRQcm94eU1hcC5oCmluZGV4IDRmYTAwMWJkN2ZhZTFjZWQwMjRkMmI5
MWYyMDE3MGZmOTk0NTI4YmUuLjgxMmY2NGQ0NzI1NzViMTQyMWE2ZTc1YmQ4Mjg5YzBlZDEwMzk5
OTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0Rvd25sb2Fkcy9Eb3dubG9h
ZFByb3h5TWFwLmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvRG93bmxvYWRzL0Rvd25s
b2FkUHJveHlNYXAuaApAQCAtNzUsOCArNzUsOCBAQCBwcml2YXRlOgogICAgIEhhc2hNYXA8RG93
bmxvYWRJRCwgUmVmUHRyPERvd25sb2FkUHJveHk+PiBtX2Rvd25sb2FkczsKIAogICAgIGJvb2wg
bV9zaG91bGRUYWtlQXNzZXJ0aW9uIHsgZmFsc2UgfTsKLSAgICBzdGQ6OnVuaXF1ZV9wdHI8UHJv
Y2Vzc0Fzc2VydGlvbj4gbV9kb3dubG9hZFVJQXNzZXJ0aW9uOwotICAgIHN0ZDo6dW5pcXVlX3B0
cjxQcm9jZXNzQXNzZXJ0aW9uPiBtX2Rvd25sb2FkTmV0d29ya2luZ0Fzc2VydGlvbjsKKyAgICBS
ZWZQdHI8UHJvY2Vzc0Fzc2VydGlvbj4gbV9kb3dubG9hZFVJQXNzZXJ0aW9uOworICAgIFJlZlB0
cjxQcm9jZXNzQXNzZXJ0aW9uPiBtX2Rvd25sb2FkTmV0d29ya2luZ0Fzc2VydGlvbjsKIAogI2lm
IFBMQVRGT1JNKElPU19GQU1JTFkpCiAgICAgUmV0YWluUHRyPGlkPiBtX2JhY2tncm91bmRPYnNl
cnZlcjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL05ldHdvcmsvTmV0d29y
a1Byb2Nlc3NQcm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9OZXR3b3JrL05ldHdv
cmtQcm9jZXNzUHJveHkuY3BwCmluZGV4IGU2MDZiOTFlMTZjZGU0YTM0YWNiOTViZDAyMWQzNjYx
YzIxYjY5NWQuLjE0YTcyOWRlMTI2Mjk0YWIzMTIxYThkNDVjNzg5OWMwZWZlNjEwM2MgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nlc3NQcm94
eS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvTmV0d29yay9OZXR3b3JrUHJvY2Vz
c1Byb3h5LmNwcApAQCAtMTQ1NywxNSArMTQ1NywxNSBAQCB2b2lkIE5ldHdvcmtQcm9jZXNzUHJv
eHk6OnNldFdlYlByb2Nlc3NIYXNVcGxvYWRzKFdlYkNvcmU6OlByb2Nlc3NJZGVudGlmaWVyIHBy
bwogICAgIGlmICghbV91cGxvYWRBY3Rpdml0eSkgewogICAgICAgICBSRUxFQVNFX0xPRyhQcm9j
ZXNzU3VzcGVuc2lvbiwgIk5ldHdvcmtQcm9jZXNzUHJveHk6OnNldFdlYlByb2Nlc3NIYXNVcGxv
YWRzOiBUaGUgbnVtYmVyIG9mIHVwbG9hZHMgaW4gcHJvZ3Jlc3MgaXMgbm93IGdyZWF0ZXIgdGhh
biAwLiBUYWtpbmcgTmV0d29ya2luZyBhbmQgVUkgcHJvY2VzcyBhc3NlcnRpb25zLiIpOwogICAg
ICAgICBtX3VwbG9hZEFjdGl2aXR5ID0gVXBsb2FkQWN0aXZpdHkgewotICAgICAgICAgICAgbWFr
ZVVuaXF1ZTxQcm9jZXNzQXNzZXJ0aW9uPihnZXRDdXJyZW50UHJvY2Vzc0lEKCksICJXZWJLaXQg
dXBsb2FkcyJfcywgUHJvY2Vzc0Fzc2VydGlvblR5cGU6OlVuYm91bmRlZE5ldHdvcmtpbmcpLAot
ICAgICAgICAgICAgbWFrZVVuaXF1ZTxQcm9jZXNzQXNzZXJ0aW9uPihwcm9jZXNzSWRlbnRpZmll
cigpLCAiV2ViS2l0IHVwbG9hZHMiX3MsIFByb2Nlc3NBc3NlcnRpb25UeXBlOjpVbmJvdW5kZWRO
ZXR3b3JraW5nKSwKLSAgICAgICAgICAgIEhhc2hNYXA8V2ViQ29yZTo6UHJvY2Vzc0lkZW50aWZp
ZXIsIHN0ZDo6dW5pcXVlX3B0cjxQcm9jZXNzQXNzZXJ0aW9uPj4oKQorICAgICAgICAgICAgUHJv
Y2Vzc0Fzc2VydGlvbjo6Y3JlYXRlKGdldEN1cnJlbnRQcm9jZXNzSUQoKSwgIldlYktpdCB1cGxv
YWRzIl9zLCBQcm9jZXNzQXNzZXJ0aW9uVHlwZTo6VW5ib3VuZGVkTmV0d29ya2luZyksCisgICAg
ICAgICAgICBQcm9jZXNzQXNzZXJ0aW9uOjpjcmVhdGUocHJvY2Vzc0lkZW50aWZpZXIoKSwgIldl
YktpdCB1cGxvYWRzIl9zLCBQcm9jZXNzQXNzZXJ0aW9uVHlwZTo6VW5ib3VuZGVkTmV0d29ya2lu
ZyksCisgICAgICAgICAgICBIYXNoTWFwPFdlYkNvcmU6OlByb2Nlc3NJZGVudGlmaWVyLCBSZWZQ
dHI8UHJvY2Vzc0Fzc2VydGlvbj4+KCkKICAgICAgICAgfTsKICAgICB9CiAKICAgICBtX3VwbG9h
ZEFjdGl2aXR5LT53ZWJQcm9jZXNzQXNzZXJ0aW9ucy5lbnN1cmUocHJvY2Vzc0lELCBbJl0gewog
ICAgICAgICBSRUxFQVNFX0xPRyhQcm9jZXNzU3VzcGVuc2lvbiwgIk5ldHdvcmtQcm9jZXNzUHJv
eHk6OnNldFdlYlByb2Nlc3NIYXNVcGxvYWRzOiBUYWtpbmcgdXBsb2FkIGFzc2VydGlvbiBvbiBi
ZWhhbGYgb2YgV2ViUHJvY2VzcyB3aXRoIFBJRCAlZCIsIHByb2Nlc3MtPnByb2Nlc3NJZGVudGlm
aWVyKCkpOwotICAgICAgICByZXR1cm4gbWFrZVVuaXF1ZTxQcm9jZXNzQXNzZXJ0aW9uPihwcm9j
ZXNzLT5wcm9jZXNzSWRlbnRpZmllcigpLCAiV2ViS2l0IHVwbG9hZHMiX3MsIFByb2Nlc3NBc3Nl
cnRpb25UeXBlOjpVbmJvdW5kZWROZXR3b3JraW5nKTsKKyAgICAgICAgcmV0dXJuIFByb2Nlc3NB
c3NlcnRpb246OmNyZWF0ZShwcm9jZXNzLT5wcm9jZXNzSWRlbnRpZmllcigpLCAiV2ViS2l0IHVw
bG9hZHMiX3MsIFByb2Nlc3NBc3NlcnRpb25UeXBlOjpVbmJvdW5kZWROZXR3b3JraW5nKTsKICAg
ICB9KTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvTmV0d29yay9O
ZXR3b3JrUHJvY2Vzc1Byb3h5LmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9OZXR3b3JrL05l
dHdvcmtQcm9jZXNzUHJveHkuaAppbmRleCA4Y2ZlNTNiYjQ5NGY4Y2NjZjRhNzM2NGU4OWU0ZmVh
MDNjYzA1MTAzLi4wY2IzMTY4MWVhODNlNDc0OWQ1OTc2YWQ2NGJhNDJhNjQ3OWRmMDM0IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9jZXNzUHJv
eHkuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9jZXNz
UHJveHkuaApAQCAtMzQ3LDkgKzM0Nyw5IEBAIHByaXZhdGU6CiAjZW5kaWYKIAogICAgIHN0cnVj
dCBVcGxvYWRBY3Rpdml0eSB7Ci0gICAgICAgIHN0ZDo6dW5pcXVlX3B0cjxQcm9jZXNzQXNzZXJ0
aW9uPiB1aUFzc2VydGlvbjsKLSAgICAgICAgc3RkOjp1bmlxdWVfcHRyPFByb2Nlc3NBc3NlcnRp
b24+IG5ldHdvcmtBc3NlcnRpb247Ci0gICAgICAgIEhhc2hNYXA8V2ViQ29yZTo6UHJvY2Vzc0lk
ZW50aWZpZXIsIHN0ZDo6dW5pcXVlX3B0cjxQcm9jZXNzQXNzZXJ0aW9uPj4gd2ViUHJvY2Vzc0Fz
c2VydGlvbnM7CisgICAgICAgIFJlZlB0cjxQcm9jZXNzQXNzZXJ0aW9uPiB1aUFzc2VydGlvbjsK
KyAgICAgICAgUmVmUHRyPFByb2Nlc3NBc3NlcnRpb24+IG5ldHdvcmtBc3NlcnRpb247CisgICAg
ICAgIEhhc2hNYXA8V2ViQ29yZTo6UHJvY2Vzc0lkZW50aWZpZXIsIFJlZlB0cjxQcm9jZXNzQXNz
ZXJ0aW9uPj4gd2ViUHJvY2Vzc0Fzc2VydGlvbnM7CiAgICAgfTsKICAgICBzdGQ6Om9wdGlvbmFs
PFVwbG9hZEFjdGl2aXR5PiBtX3VwbG9hZEFjdGl2aXR5OwogCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9Qcm9jZXNzQXNzZXJ0aW9uLmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL1Byb2Nlc3NBc3NlcnRpb24uY3BwCmluZGV4IGZhOGUwMzcwMTFlMzY0OTBhZTc0Nzg5
NmYwMjg1NzVlOGJhZGZhYjIuLjM4NDM0MjY3ZDYzYWQzMTkxN2VlOTcxNWNlZjhiNjA1NzNiNjMx
OWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1Byb2Nlc3NBc3NlcnRpb24u
Y3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1Byb2Nlc3NBc3NlcnRpb24uY3BwCkBA
IC0zMiw5ICszMiwxMCBAQAogCiBuYW1lc3BhY2UgV2ViS2l0IHsKIAotUHJvY2Vzc0Fzc2VydGlv
bjo6UHJvY2Vzc0Fzc2VydGlvbihQcm9jZXNzSUQgcGlkLCBjb25zdCBTdHJpbmcmLCBQcm9jZXNz
QXNzZXJ0aW9uVHlwZSBhc3NlcnRpb25UeXBlKQorUHJvY2Vzc0Fzc2VydGlvbjo6UHJvY2Vzc0Fz
c2VydGlvbihQcm9jZXNzSUQgcGlkLCBjb25zdCBTdHJpbmcmIHJlYXNvbiwgUHJvY2Vzc0Fzc2Vy
dGlvblR5cGUgYXNzZXJ0aW9uVHlwZSkKICAgICA6IG1fYXNzZXJ0aW9uVHlwZShhc3NlcnRpb25U
eXBlKQogICAgICwgbV9waWQocGlkKQorICAgICwgbV9yZWFzb24ocmVhc29uKQogewogfQogCkBA
IC00NSw2ICs0NiwxNSBAQCBib29sIFByb2Nlc3NBc3NlcnRpb246OmlzVmFsaWQoKSBjb25zdAog
ICAgIHJldHVybiB0cnVlOwogfQogCit2b2lkIFByb2Nlc3NBc3NlcnRpb246OmFjcXVpcmVBc3lu
YyhDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYgY29tcGxldGlvbkhhbmRsZXIpCit7CisgICAg
UnVuTG9vcDo6bWFpbigpLmRpc3BhdGNoKFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpKTsKK30K
Kwordm9pZCBQcm9jZXNzQXNzZXJ0aW9uOjphY3F1aXJlU3luYygpCit7Cit9CisKIFByb2Nlc3NB
bmRVSUFzc2VydGlvbjo6UHJvY2Vzc0FuZFVJQXNzZXJ0aW9uKFByb2Nlc3NJRCBwaWQsIGNvbnN0
IFN0cmluZyYgcmVhc29uLCBQcm9jZXNzQXNzZXJ0aW9uVHlwZSBhc3NlcnRpb25UeXBlKQogICAg
IDogUHJvY2Vzc0Fzc2VydGlvbihwaWQsIHJlYXNvbiwgYXNzZXJ0aW9uVHlwZSkKIHsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1Byb2Nlc3NBc3NlcnRpb24uaCBiL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL1Byb2Nlc3NBc3NlcnRpb24uaAppbmRleCBlYjc1YzJhMmU5NTU0
ZmQyNTllZmVkMjc1NTcwMjZlZTljYTA0NjAzLi41MThjMGE1MzhhYTUxYWZiOTJmYjc2ZjVlZjVj
MGI0N2NmYzQ1ZGNiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Qcm9jZXNz
QXNzZXJ0aW9uLmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvUHJvY2Vzc0Fzc2VydGlv
bi5oCkBAIC0yNSw4ICsyNSwxMCBAQAogCiAjcHJhZ21hIG9uY2UKIAorI2luY2x1ZGUgPHd0Zi9D
b21wbGV0aW9uSGFuZGxlci5oPgogI2luY2x1ZGUgPHd0Zi9GdW5jdGlvbi5oPgogI2luY2x1ZGUg
PHd0Zi9Qcm9jZXNzSUQuaD4KKyNpbmNsdWRlIDx3dGYvVGhyZWFkU2FmZVJlZkNvdW50ZWQuaD4K
ICNpbmNsdWRlIDx3dGYvV2Vha1B0ci5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5o
PgogCkBAIC01MSwxMCArNTMsMjEgQEAgZW51bSBjbGFzcyBQcm9jZXNzQXNzZXJ0aW9uVHlwZSB7
CiAgICAgTWVkaWFQbGF5YmFjaywKIH07CiAKLWNsYXNzIFByb2Nlc3NBc3NlcnRpb24gOiBwdWJs
aWMgQ2FuTWFrZVdlYWtQdHI8UHJvY2Vzc0Fzc2VydGlvbj4geworY2xhc3MgUHJvY2Vzc0Fzc2Vy
dGlvbiA6IHB1YmxpYyBUaHJlYWRTYWZlUmVmQ291bnRlZDxQcm9jZXNzQXNzZXJ0aW9uPiwgcHVi
bGljIENhbk1ha2VXZWFrUHRyPFByb2Nlc3NBc3NlcnRpb24+IHsKICAgICBXVEZfTUFLRV9GQVNU
X0FMTE9DQVRFRDsKIHB1YmxpYzoKLSAgICBQcm9jZXNzQXNzZXJ0aW9uKFByb2Nlc3NJRCwgY29u
c3QgU3RyaW5nJiByZWFzb24sIFByb2Nlc3NBc3NlcnRpb25UeXBlKTsKKyAgICBlbnVtIGNsYXNz
IE1vZGUgOiBib29sIHsgU3luYywgQXN5bmMgfTsKKyAgICBzdGF0aWMgUmVmPFByb2Nlc3NBc3Nl
cnRpb24+IGNyZWF0ZShQcm9jZXNzSUQgcGlkLCBjb25zdCBTdHJpbmcmIHJlYXNvbiwgUHJvY2Vz
c0Fzc2VydGlvblR5cGUgdHlwZSwgTW9kZSBtb2RlID0gTW9kZTo6QXN5bmMsIENvbXBsZXRpb25I
YW5kbGVyPHZvaWQoKT4mJiBhY3F1aXNpc2lvbkhhbmRsZXIgPSBudWxscHRyKQorICAgIHsKKyAg
ICAgICAgYXV0byBhc3NlcnRpb24gPSBhZG9wdFJlZigqbmV3IFByb2Nlc3NBc3NlcnRpb24ocGlk
LCByZWFzb24sIHR5cGUpKTsKKyAgICAgICAgaWYgKG1vZGUgPT0gTW9kZTo6QXN5bmMpCisgICAg
ICAgICAgICBhc3NlcnRpb24tPmFjcXVpcmVBc3luYyhXVEZNb3ZlKGFjcXVpc2lzaW9uSGFuZGxl
cikpOworICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgIGFzc2VydGlvbi0+YWNxdWlyZVN5bmMo
KTsKKyAgICAgICAgICAgIGFjcXVpc2lzaW9uSGFuZGxlcigpOworICAgICAgICB9CisgICAgICAg
IHJldHVybiBhc3NlcnRpb247CisgICAgfQogICAgIHZpcnR1YWwgflByb2Nlc3NBc3NlcnRpb24o
KTsKIAogICAgIHZvaWQgc2V0SW52YWxpZGF0aW9uSGFuZGxlcihGdW5jdGlvbjx2b2lkKCk+JiYg
aGFuZGxlcikgeyBtX2ludmFsaWRhdGlvbkhhbmRsZXIgPSBXVEZNb3ZlKGhhbmRsZXIpOyB9CkBA
IC02NCwyNCArNzcsNDEgQEAgcHVibGljOgogCiAgICAgYm9vbCBpc1ZhbGlkKCkgY29uc3Q7CiAK
LSNpZiBQTEFURk9STShJT1NfRkFNSUxZKQogcHJvdGVjdGVkOgorICAgIFByb2Nlc3NBc3NlcnRp
b24oUHJvY2Vzc0lELCBjb25zdCBTdHJpbmcmIHJlYXNvbiwgUHJvY2Vzc0Fzc2VydGlvblR5cGUp
OworCisgICAgdm9pZCBhY3F1aXJlQXN5bmMoQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmKTsK
KyAgICB2b2lkIGFjcXVpcmVTeW5jKCk7CisKKyNpZiBQTEFURk9STShJT1NfRkFNSUxZKQogICAg
IHZpcnR1YWwgdm9pZCBwcm9jZXNzQXNzZXJ0aW9uV2FzSW52YWxpZGF0ZWQoKTsKICNlbmRpZgog
CiBwcml2YXRlOgogICAgIGNvbnN0IFByb2Nlc3NBc3NlcnRpb25UeXBlIG1fYXNzZXJ0aW9uVHlw
ZTsKICAgICBjb25zdCBQcm9jZXNzSUQgbV9waWQ7CisgICAgY29uc3QgU3RyaW5nIG1fcmVhc29u
OwogI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCiAgICAgUmV0YWluUHRyPFJCU0Fzc2VydGlvbj4g
bV9yYnNBc3NlcnRpb247CiAgICAgUmV0YWluUHRyPFdLUkJTQXNzZXJ0aW9uRGVsZWdhdGU+IG1f
ZGVsZWdhdGU7CisgICAgYm9vbCBtX3dhc0ludmFsaWRhdGVkIHsgZmFsc2UgfTsKICNlbmRpZgog
ICAgIEZ1bmN0aW9uPHZvaWQoKT4gbV9pbnZhbGlkYXRpb25IYW5kbGVyOwogfTsKIAogY2xhc3Mg
UHJvY2Vzc0FuZFVJQXNzZXJ0aW9uIGZpbmFsIDogcHVibGljIFByb2Nlc3NBc3NlcnRpb24gewog
cHVibGljOgotICAgIFByb2Nlc3NBbmRVSUFzc2VydGlvbihQcm9jZXNzSUQsIGNvbnN0IFN0cmlu
ZyYgcmVhc29uLCBQcm9jZXNzQXNzZXJ0aW9uVHlwZSk7CisgICAgc3RhdGljIFJlZjxQcm9jZXNz
QW5kVUlBc3NlcnRpb24+IGNyZWF0ZShQcm9jZXNzSUQgcGlkLCBjb25zdCBTdHJpbmcmIHJlYXNv
biwgUHJvY2Vzc0Fzc2VydGlvblR5cGUgdHlwZSwgTW9kZSBtb2RlID0gTW9kZTo6QXN5bmMsIENv
bXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJiBhY3F1aXNpc2lvbkhhbmRsZXIgPSBudWxscHRyKQor
ICAgIHsKKyAgICAgICAgYXV0byBhc3NlcnRpb24gPSBhZG9wdFJlZigqbmV3IFByb2Nlc3NBbmRV
SUFzc2VydGlvbihwaWQsIHJlYXNvbiwgdHlwZSkpOworICAgICAgICBpZiAobW9kZSA9PSBNb2Rl
OjpBc3luYykKKyAgICAgICAgICAgIGFzc2VydGlvbi0+YWNxdWlyZUFzeW5jKFdURk1vdmUoYWNx
dWlzaXNpb25IYW5kbGVyKSk7CisgICAgICAgIGVsc2UgeworICAgICAgICAgICAgYXNzZXJ0aW9u
LT5hY3F1aXJlU3luYygpOworICAgICAgICAgICAgYWNxdWlzaXNpb25IYW5kbGVyKCk7CisgICAg
ICAgIH0KKyAgICAgICAgcmV0dXJuIGFzc2VydGlvbjsKKyAgICB9CiAgICAgflByb2Nlc3NBbmRV
SUFzc2VydGlvbigpOwogCiAgICAgdm9pZCB1aUFzc2VydGlvbldpbGxFeHBpcmVJbW1pbmVudGx5
KCk7CkBAIC04OSw2ICsxMTksOCBAQCBwdWJsaWM6CiAgICAgdm9pZCBzZXRVSUFzc2VydGlvbkV4
cGlyYXRpb25IYW5kbGVyKEZ1bmN0aW9uPHZvaWQoKT4mJiBoYW5kbGVyKSB7IG1fdWlBc3NlcnRp
b25FeHBpcmF0aW9uSGFuZGxlciA9IFdURk1vdmUoaGFuZGxlcik7IH0KIAogcHJpdmF0ZToKKyAg
ICBQcm9jZXNzQW5kVUlBc3NlcnRpb24oUHJvY2Vzc0lELCBjb25zdCBTdHJpbmcmIHJlYXNvbiwg
UHJvY2Vzc0Fzc2VydGlvblR5cGUpOworCiAjaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKICAgICB2
b2lkIHByb2Nlc3NBc3NlcnRpb25XYXNJbnZhbGlkYXRlZCgpIGZpbmFsOwogI2VuZGlmCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Qcm9jZXNzVGhyb3R0bGVyLmNwcCBiL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL1Byb2Nlc3NUaHJvdHRsZXIuY3BwCmluZGV4IGMwOTE1OWZh
OGUwMDBiZTQ3Nzc3NmUzZDM2ZGJmNWJkZDI2NzEyZGYuLjZhMzExMzhjOTE4ZThlNmY5M2YzMDcz
YzhhY2UxMjRiZjgyMWI0MTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1By
b2Nlc3NUaHJvdHRsZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1Byb2Nlc3NU
aHJvdHRsZXIuY3BwCkBAIC0xMjgsMjAgKzEyOCwyMSBAQCB2b2lkIFByb2Nlc3NUaHJvdHRsZXI6
OnNldEFzc2VydGlvblR5cGUoUHJvY2Vzc0Fzc2VydGlvblR5cGUgbmV3VHlwZSkKIAogICAgIFBS
T0NFU1NUSFJPVFRMRVJfUkVMRUFTRV9MT0coInNldEFzc2VydGlvblR5cGU6IFVwZGF0aW5nIHBy
b2Nlc3MgYXNzZXJ0aW9uIHR5cGUgdG8gJXUgKGZvcmVncm91bmRBY3Rpdml0aWVzPSV1LCBiYWNr
Z3JvdW5kQWN0aXZpdGllcz0ldSkiLCBuZXdUeXBlLCBtX2ZvcmVncm91bmRBY3Rpdml0aWVzLnNp
emUoKSwgbV9iYWNrZ3JvdW5kQWN0aXZpdGllcy5zaXplKCkpOwogCi0gICAgLy8gS2VlcCB0aGUg
cHJldmlvdXMgYXNzZXJ0aW9uIGFyb3VuZCB1bnRpbCBhZnRlciB0aGUgbmV3IG9uZSBoYXMgYmVl
biBjcmVhdGVkIHNvIHRoYXQgd2UgYWx3YXlzIGhvbGQKLSAgICAvLyBhIHByb2Nlc3MgYXNzZXJ0
aW9uIGZvciB0aGUgcHJvY2Vzcy4KKyAgICAvLyBLZWVwIHRoZSBwcmV2aW91cyBhc3NlcnRpb24g
YWN0aXZlIHVudGlsIHRoZSBuZXcgYXNzZXJ0aW9uIGlzIHRha2VuIGFzeW5jaHJvbm91c2x5Lgog
ICAgIGF1dG8gcHJldmlvdXNBc3NlcnRpb24gPSBzdGQ6OmV4Y2hhbmdlKG1fYXNzZXJ0aW9uLCBu
dWxscHRyKTsKICAgICBpZiAobV9zaG91bGRUYWtlVUlCYWNrZ3JvdW5kQXNzZXJ0aW9uKSB7Ci0g
ICAgICAgIGF1dG8gYXNzZXJ0aW9uID0gbWFrZVVuaXF1ZTxQcm9jZXNzQW5kVUlBc3NlcnRpb24+
KG1fcHJvY2Vzc0lkZW50aWZpZXIsIGFzc2VydGlvbk5hbWUobmV3VHlwZSksIG5ld1R5cGUpOwot
ICAgICAgICBhc3NlcnRpb24tPnNldFVJQXNzZXJ0aW9uRXhwaXJhdGlvbkhhbmRsZXIoW3RoaXNd
IHsKLSAgICAgICAgICAgIHVpQXNzZXJ0aW9uV2lsbEV4cGlyZUltbWluZW50bHkoKTsKKyAgICAg
ICAgYXV0byBhc3NlcnRpb24gPSBQcm9jZXNzQW5kVUlBc3NlcnRpb246OmNyZWF0ZShtX3Byb2Nl
c3NJZGVudGlmaWVyLCBhc3NlcnRpb25OYW1lKG5ld1R5cGUpLCBuZXdUeXBlLCBQcm9jZXNzQXNz
ZXJ0aW9uOjpNb2RlOjpBc3luYywgW3ByZXZpb3VzQXNzZXJ0aW9uID0gV1RGTW92ZShwcmV2aW91
c0Fzc2VydGlvbildIHsgfSk7CisgICAgICAgIGFzc2VydGlvbi0+c2V0VUlBc3NlcnRpb25FeHBp
cmF0aW9uSGFuZGxlcihbd2Vha1RoaXMgPSBtYWtlV2Vha1B0cigqdGhpcyldIHsKKyAgICAgICAg
ICAgIGlmICh3ZWFrVGhpcykKKyAgICAgICAgICAgICAgICB3ZWFrVGhpcy0+dWlBc3NlcnRpb25X
aWxsRXhwaXJlSW1taW5lbnRseSgpOwogICAgICAgICB9KTsKICAgICAgICAgbV9hc3NlcnRpb24g
PSBXVEZNb3ZlKGFzc2VydGlvbik7CiAgICAgfSBlbHNlCi0gICAgICAgIG1fYXNzZXJ0aW9uID0g
bWFrZVVuaXF1ZTxQcm9jZXNzQXNzZXJ0aW9uPihtX3Byb2Nlc3NJZGVudGlmaWVyLCBhc3NlcnRp
b25OYW1lKG5ld1R5cGUpLCBuZXdUeXBlKTsKKyAgICAgICAgbV9hc3NlcnRpb24gPSBQcm9jZXNz
QXNzZXJ0aW9uOjpjcmVhdGUobV9wcm9jZXNzSWRlbnRpZmllciwgYXNzZXJ0aW9uTmFtZShuZXdU
eXBlKSwgbmV3VHlwZSwgUHJvY2Vzc0Fzc2VydGlvbjo6TW9kZTo6QXN5bmMsIFtwcmV2aW91c0Fz
c2VydGlvbiA9IFdURk1vdmUocHJldmlvdXNBc3NlcnRpb24pXSB7IH0pOwogCi0gICAgbV9hc3Nl
cnRpb24tPnNldEludmFsaWRhdGlvbkhhbmRsZXIoW3RoaXNdIHsKLSAgICAgICAgYXNzZXJ0aW9u
V2FzSW52YWxpZGF0ZWQoKTsKKyAgICBtX2Fzc2VydGlvbi0+c2V0SW52YWxpZGF0aW9uSGFuZGxl
cihbd2Vha1RoaXMgPSBtYWtlV2Vha1B0cigqdGhpcyldIHsKKyAgICAgICAgaWYgKHdlYWtUaGlz
KQorICAgICAgICAgICAgd2Vha1RoaXMtPmFzc2VydGlvbldhc0ludmFsaWRhdGVkKCk7CiAgICAg
fSk7CiAgICAgbV9wcm9jZXNzLmRpZFNldEFzc2VydGlvblR5cGUobmV3VHlwZSk7CiB9CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Qcm9jZXNzVGhyb3R0bGVyLmggYi9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9Qcm9jZXNzVGhyb3R0bGVyLmgKaW5kZXggYmQ2ODVlN2NjYjE3
Y2YyZDgzYjUyZDQ2ZDcyMGZhNmM1OWVmYjQwYy4uNjlhN2M1NTUyNTE3ZWM1NGE1NjRlYzRkMWNj
NGRmYTNkYzI5MjhlMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvUHJvY2Vz
c1Rocm90dGxlci5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1Byb2Nlc3NUaHJvdHRs
ZXIuaApAQCAtMTQ5LDcgKzE0OSw3IEBAIHByaXZhdGU6CiAKICAgICBQcm9jZXNzVGhyb3R0bGVy
Q2xpZW50JiBtX3Byb2Nlc3M7CiAgICAgUHJvY2Vzc0lEIG1fcHJvY2Vzc0lkZW50aWZpZXIgeyAw
IH07Ci0gICAgc3RkOjp1bmlxdWVfcHRyPFByb2Nlc3NBc3NlcnRpb24+IG1fYXNzZXJ0aW9uOwor
ICAgIFJlZlB0cjxQcm9jZXNzQXNzZXJ0aW9uPiBtX2Fzc2VydGlvbjsKICAgICBSdW5Mb29wOjpU
aW1lcjxQcm9jZXNzVGhyb3R0bGVyPiBtX3ByZXBhcmVUb1N1c3BlbmRUaW1lb3V0VGltZXI7CiAg
ICAgSGFzaFNldDxGb3JlZ3JvdW5kQWN0aXZpdHkqPiBtX2ZvcmVncm91bmRBY3Rpdml0aWVzOwog
ICAgIEhhc2hTZXQ8QmFja2dyb3VuZEFjdGl2aXR5Kj4gbV9iYWNrZ3JvdW5kQWN0aXZpdGllczsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQb29sLmNwcCBi
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQb29sLmNwcAppbmRleCBiYTllN2Nl
MzQyZDllNjYyMWRmMzA3YjEzMDYzNmJmNjBmYzVjNWNjLi43Y2JiODIxZjg2NzEwNjJiOTMyNGJi
ZTVjYjEwMTIyZmU5OGRiZWQ1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9X
ZWJQcm9jZXNzUG9vbC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vz
c1Bvb2wuY3BwCkBAIC0yMDI4LDkgKzIwMjgsOSBAQCB2b2lkIFdlYlByb2Nlc3NQb29sOjp1cGRh
dGVBdWRpYmxlTWVkaWFBc3NlcnRpb25zKCkKIAogICAgIFdFQlBST0NFU1NQT09MX1JFTEVBU0Vf
TE9HKFByb2Nlc3NTdXNwZW5zaW9uLCAidXBkYXRlQXVkaWJsZU1lZGlhQXNzZXJ0aW9uczogVGhl
IG51bWJlciBvZiBwcm9jZXNzZXMgcGxheWluZyBhdWRpYmxlIG1lZGlhIGlzIG5vdyBncmVhdGVy
IHRoYW4gemVyby4gVGFraW5nIFVJIHByb2Nlc3MgYXNzZXJ0aW9uLiIpOwogICAgIG1fYXVkaWJs
ZU1lZGlhQWN0aXZpdHkgPSBBdWRpYmxlTWVkaWFBY3Rpdml0eSB7Ci0gICAgICAgIG1ha2VVbmlx
dWVSZWY8UHJvY2Vzc0Fzc2VydGlvbj4oZ2V0Q3VycmVudFByb2Nlc3NJRCgpLCAiV2ViS2l0IE1l
ZGlhIFBsYXliYWNrIl9zLCBQcm9jZXNzQXNzZXJ0aW9uVHlwZTo6TWVkaWFQbGF5YmFjaykKKyAg
ICAgICAgUHJvY2Vzc0Fzc2VydGlvbjo6Y3JlYXRlKGdldEN1cnJlbnRQcm9jZXNzSUQoKSwgIldl
YktpdCBNZWRpYSBQbGF5YmFjayJfcywgUHJvY2Vzc0Fzc2VydGlvblR5cGU6Ok1lZGlhUGxheWJh
Y2spCiAjaWYgRU5BQkxFKEdQVV9QUk9DRVNTKQotICAgICAgICAsIGdwdVByb2Nlc3MoKSA/IG1h
a2VVbmlxdWU8UHJvY2Vzc0Fzc2VydGlvbj4oZ3B1UHJvY2VzcygpLT5wcm9jZXNzSWRlbnRpZmll
cigpLCAiV2ViS2l0IE1lZGlhIFBsYXliYWNrIl9zLCBQcm9jZXNzQXNzZXJ0aW9uVHlwZTo6TWVk
aWFQbGF5YmFjaykgOiBudWxscHRyCisgICAgICAgICwgZ3B1UHJvY2VzcygpID8gUmVmUHRyPFBy
b2Nlc3NBc3NlcnRpb24+IHsgUHJvY2Vzc0Fzc2VydGlvbjo6Y3JlYXRlKGdwdVByb2Nlc3MoKS0+
cHJvY2Vzc0lkZW50aWZpZXIoKSwgIldlYktpdCBNZWRpYSBQbGF5YmFjayJfcywgUHJvY2Vzc0Fz
c2VydGlvblR5cGU6Ok1lZGlhUGxheWJhY2spIH0gOiBudWxscHRyCiAjZW5kaWYKICAgICB9Owog
fQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Bvb2wuaCBi
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQb29sLmgKaW5kZXggMjkzNjFhMDQ4
NTFiNGJlNmIyNGZlYjM2YzM0NTI2NjFiODRjYjI2Mi4uNGVmNTQxZDA3OWUxN2QwYzY0NDc0NmFl
ZDI0OTYwOTI5NDE3YmIzNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2Vi
UHJvY2Vzc1Bvb2wuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUG9v
bC5oCkBAIC03NjMsOSArNzYzLDkgQEAgcHJpdmF0ZToKICAgICBXZWJQcm9jZXNzV2l0aEF1ZGli
bGVNZWRpYUNvdW50ZXIgbV93ZWJQcm9jZXNzV2l0aEF1ZGlibGVNZWRpYUNvdW50ZXI7CiAKICAg
ICBzdHJ1Y3QgQXVkaWJsZU1lZGlhQWN0aXZpdHkgewotICAgICAgICBVbmlxdWVSZWY8UHJvY2Vz
c0Fzc2VydGlvbj4gdWlQcm9jZXNzTWVkaWFQbGF5YmFja0Fzc2VydGlvbjsKKyAgICAgICAgUmVm
PFByb2Nlc3NBc3NlcnRpb24+IHVpUHJvY2Vzc01lZGlhUGxheWJhY2tBc3NlcnRpb247CiAjaWYg
RU5BQkxFKEdQVV9QUk9DRVNTKQotICAgICAgICBzdGQ6OnVuaXF1ZV9wdHI8UHJvY2Vzc0Fzc2Vy
dGlvbj4gZ3B1UHJvY2Vzc01lZGlhUGxheWJhY2tBc3NlcnRpb247CisgICAgICAgIFJlZlB0cjxQ
cm9jZXNzQXNzZXJ0aW9uPiBncHVQcm9jZXNzTWVkaWFQbGF5YmFja0Fzc2VydGlvbjsKICNlbmRp
ZgogICAgIH07CiAgICAgc3RkOjpvcHRpb25hbDxBdWRpYmxlTWVkaWFBY3Rpdml0eT4gbV9hdWRp
YmxlTWVkaWFBY3Rpdml0eTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dl
YlByb2Nlc3NQcm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUHJv
eHkuY3BwCmluZGV4IDk4YjgzNjkwZWM1MGJjY2Q4ODY2Y2RiNGM3ZGM5ZDgzYzc4MjkyZGUuLjIz
NzYyMDY4MTllNTRjYzNiMTIxYTY4NjliMGYyYTk3MjNkZjkwMWEgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5jcHAKKysrIGIvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5LmNwcApAQCAtMTQ4Nyw3ICsxNDg3LDcgQEAgdm9p
ZCBXZWJQcm9jZXNzUHJveHk6OnVwZGF0ZUF1ZGlibGVNZWRpYUFzc2VydGlvbnMoKQogICAgIGlm
IChuZXdIYXNBdWRpYmxlV2ViUGFnZSkgewogICAgICAgICBXRUJQUk9DRVNTUFJPWFlfUkVMRUFT
RV9MT0coUHJvY2Vzc1N1c3BlbnNpb24sICJ1cGRhdGVBdWRpYmxlTWVkaWFBc3NlcnRpb25zOiBU
YWtpbmcgTWVkaWFQbGF5YmFjayBhc3NlcnRpb24gZm9yIFdlYlByb2Nlc3MiKTsKICAgICAgICAg
bV9hdWRpYmxlTWVkaWFBY3Rpdml0eSA9IEF1ZGlibGVNZWRpYUFjdGl2aXR5IHsKLSAgICAgICAg
ICAgIG1ha2VVbmlxdWVSZWY8UHJvY2Vzc0Fzc2VydGlvbj4ocHJvY2Vzc0lkZW50aWZpZXIoKSwg
IldlYktpdCBNZWRpYSBQbGF5YmFjayJfcywgUHJvY2Vzc0Fzc2VydGlvblR5cGU6Ok1lZGlhUGxh
eWJhY2spLAorICAgICAgICAgICAgUHJvY2Vzc0Fzc2VydGlvbjo6Y3JlYXRlKHByb2Nlc3NJZGVu
dGlmaWVyKCksICJXZWJLaXQgTWVkaWEgUGxheWJhY2siX3MsIFByb2Nlc3NBc3NlcnRpb25UeXBl
OjpNZWRpYVBsYXliYWNrKSwKICAgICAgICAgICAgIHByb2Nlc3NQb29sKCkud2ViUHJvY2Vzc1dp
dGhBdWRpYmxlTWVkaWFUb2tlbigpCiAgICAgICAgIH07CiAgICAgfSBlbHNlIHsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5oIGIvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5LmgKaW5kZXggZTIyNWZmNDY3ZGM4NGI1NzZk
YzI1ZDY2MjUwMjhiNjAxOWNmNWU4OS4uYjk2ZTM1MmJiYjk5OGI1NmQ1OTExNDdkYWM2NTg5Mjg1
MTA4ODc2MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1By
b3h5LmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5LmgKQEAg
LTYzNiw3ICs2MzYsNyBAQCBwcml2YXRlOgogICAgIEhhc2hNYXA8V2ViQ29yZTo6U2xlZXBEaXNh
YmxlcklkZW50aWZpZXIsIHN0ZDo6dW5pcXVlX3B0cjxXZWJDb3JlOjpTbGVlcERpc2FibGVyPj4g
bV9zbGVlcERpc2FibGVyczsKIAogICAgIHN0cnVjdCBBdWRpYmxlTWVkaWFBY3Rpdml0eSB7Ci0g
ICAgICAgIFVuaXF1ZVJlZjxQcm9jZXNzQXNzZXJ0aW9uPiBhc3NlcnRpb247CisgICAgICAgIFJl
ZjxQcm9jZXNzQXNzZXJ0aW9uPiBhc3NlcnRpb247CiAgICAgICAgIFdlYlByb2Nlc3NXaXRoQXVk
aWJsZU1lZGlhVG9rZW4gdG9rZW47CiAgICAgfTsKICAgICBzdGQ6Om9wdGlvbmFsPEF1ZGlibGVN
ZWRpYUFjdGl2aXR5PiBtX2F1ZGlibGVNZWRpYUFjdGl2aXR5OwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvaW9zL1Byb2Nlc3NBc3NlcnRpb25JT1MubW0gYi9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9pb3MvUHJvY2Vzc0Fzc2VydGlvbklPUy5tbQppbmRleCBhYjI3ZWRlYmEy
YWU2ZTVjZjJhYjhhZTBjZDEzNzI4M2ZlMTI4M2UxLi44NGFlMzdkNzFlNTBmZmE2ZTY4ODdkMTlj
N2FkZjQ4YjZhM2JhN2FmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3Mv
UHJvY2Vzc0Fzc2VydGlvbklPUy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3Mv
UHJvY2Vzc0Fzc2VydGlvbklPUy5tbQpAQCAtNDEsNiArNDEsMTIgQEAKIAogdXNpbmcgV2ViS2l0
OjpQcm9jZXNzQW5kVUlBc3NlcnRpb247CiAKK3N0YXRpYyBXb3JrUXVldWUmIGFzc2VydGlvbnNX
b3JrUXVldWUoKQoreworICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxSZWY8V29ya1F1ZXVlPj4g
d29ya1F1ZXVlKFdvcmtRdWV1ZTo6Y3JlYXRlKCJQcm9jZXNzQXNzZXJ0aW9uIFF1ZXVlIikpOwor
ICAgIHJldHVybiB3b3JrUXVldWUuZ2V0KCk7Cit9CisKIC8vIFRoaXMgZ2l2ZXMgc29tZSB0aW1l
IHRvIG91ciBjaGlsZCBwcm9jZXNzZXMgdG8gcHJvY2VzcyB0aGUgUHJvY2Vzc1dpbGxTdXNwZW5k
SW1taW5lbnRseSBJUEMgYnV0IG1ha2VzIHN1cmUgd2UgcmVsZWFzZQogLy8gdGhlIGJhY2tncm91
bmQgdGFzayBiZWZvcmUgdGhlIFVJS2l0IHRpbWVvdXQgKFdlIGdldCBraWxsZWQgaWYgd2UgZG8g
bm90IHJlbGVhc2UgdGhlIGJhY2tncm91bmQgdGFzayB3aXRoaW4gNSBzZWNvbmRzCiAvLyBvbiB0
aGUgZXhwaXJhdGlvbiBoYW5kbGVyIGdldHRpbmcgY2FsbGVkKS4KQEAgLTY0LDYgKzcwLDcgQEAg
QGVuZAogQGltcGxlbWVudGF0aW9uIFdLUHJvY2Vzc0Fzc2VydGlvbkJhY2tncm91bmRUYXNrTWFu
YWdlcgogewogICAgIFJldGFpblB0cjxSQlNBc3NlcnRpb24+IF9iYWNrZ3JvdW5kVGFzazsKKyAg
ICBzdGQ6OmF0b21pYzxib29sPiBfYmFja2dyb3VuZFRhc2tXYXNJbnZhbGlkYXRlZDsKICAgICBX
ZWFrSGFzaFNldDxQcm9jZXNzQW5kVUlBc3NlcnRpb24+IF9hc3NlcnRpb25zTmVlZGluZ0JhY2tn
cm91bmRUYXNrOwogICAgIGRpc3BhdGNoX2Jsb2NrX3QgX3BlbmRpbmdUYXNrUmVsZWFzZVRhc2s7
CiB9CkBAIC0xNjAsNyArMTY3LDcgQEAgLSAoQk9PTClfaGFzQmFja2dyb3VuZFRhc2sKIAogLSAo
dm9pZClfdXBkYXRlQmFja2dyb3VuZFRhc2sKIHsKLSAgICBpZiAoIV9hc3NlcnRpb25zTmVlZGlu
Z0JhY2tncm91bmRUYXNrLmNvbXB1dGVzRW1wdHkoKSAmJiAhW3NlbGYgX2hhc0JhY2tncm91bmRU
YXNrXSkgeworICAgIGlmICghX2Fzc2VydGlvbnNOZWVkaW5nQmFja2dyb3VuZFRhc2suY29tcHV0
ZXNFbXB0eSgpICYmICghW3NlbGYgX2hhc0JhY2tncm91bmRUYXNrXSB8fCBfYmFja2dyb3VuZFRh
c2tXYXNJbnZhbGlkYXRlZCkpIHsKICAgICAgICAgaWYgKHByb2Nlc3NIYXNBY3RpdmVSdW5UaW1l
TGltaXRhdGlvbigpKSB7CiAgICAgICAgICAgICBSRUxFQVNFX0xPRyhQcm9jZXNzU3VzcGVuc2lv
biwgIiVwIC0gV0tQcm9jZXNzQXNzZXJ0aW9uQmFja2dyb3VuZFRhc2tNYW5hZ2VyOiBJZ25vcmVk
IHJlcXVlc3QgdG8gc3RhcnQgYSBuZXcgYmFja2dyb3VuZCB0YXNrIGJlY2F1c2UgUnVubmluZ0Jv
YXJkIGhhcyBhbHJlYWR5IHN0YXJ0ZWQgdGhlIGV4cGlyYXRpb24gdGltZXIiLCBzZWxmKTsKICAg
ICAgICAgICAgIHJldHVybjsKQEAgLTE3MSwxMSArMTc4LDkgQEAgLSAodm9pZClfdXBkYXRlQmFj
a2dyb3VuZFRhc2sKICAgICAgICAgX2JhY2tncm91bmRUYXNrID0gYWRvcHROUyhbW1JCU0Fzc2Vy
dGlvbiBhbGxvY10gaW5pdFdpdGhFeHBsYW5hdGlvbjpAIldlYktpdCBVSVByb2Nlc3MgYmFja2dy
b3VuZCB0YXNrIiB0YXJnZXQ6dGFyZ2V0IGF0dHJpYnV0ZXM6QFtkb21haW5BdHRyaWJ1dGVdXSk7
CiAgICAgICAgIFtfYmFja2dyb3VuZFRhc2sgYWRkT2JzZXJ2ZXI6c2VsZl07CiAKLSAgICAgICAg
TlNFcnJvciAqYWNxdWlzaXRpb25FcnJvciA9IG5pbDsKLSAgICAgICAgaWYgKCFbX2JhY2tncm91
bmRUYXNrIGFjcXVpcmVXaXRoRXJyb3I6JmFjcXVpc2l0aW9uRXJyb3JdKQotICAgICAgICAgICAg
UkVMRUFTRV9MT0dfRVJST1IoUHJvY2Vzc1N1c3BlbnNpb24sICJXS1Byb2Nlc3NBc3NlcnRpb25C
YWNrZ3JvdW5kVGFza01hbmFnZXI6IEZhaWxlZCB0byBhY3F1aXJlIEZpbmlzaFRhc2tJbnRlcnJ1
cHRhYmxlIGFzc2VydGlvbiBmb3Igb3duIHByb2Nlc3MsIGVycm9yOiAle3B1YmxpY31AIiwgYWNx
dWlzaXRpb25FcnJvcik7Ci0gICAgICAgIGVsc2UKLSAgICAgICAgICAgIFJFTEVBU0VfTE9HKFBy
b2Nlc3NTdXNwZW5zaW9uLCAiV0tQcm9jZXNzQXNzZXJ0aW9uQmFja2dyb3VuZFRhc2tNYW5hZ2Vy
OiBTdWNjZXNzZnVsbHkgdG9vayBhIEZpbmlzaFRhc2tJbnRlcnJ1cHRhYmxlIGFzc2VydGlvbiBm
b3Igb3duIHByb2Nlc3MiKTsKKyAgICAgICAgX2JhY2tncm91bmRUYXNrV2FzSW52YWxpZGF0ZWQg
PSBmYWxzZTsKKyAgICAgICAgW19iYWNrZ3JvdW5kVGFzayBhY3F1aXJlV2l0aEludmFsaWRhdGlv
bkhhbmRsZXI6bmlsXTsKKyAgICAgICAgUkVMRUFTRV9MT0coUHJvY2Vzc1N1c3BlbnNpb24sICJX
S1Byb2Nlc3NBc3NlcnRpb25CYWNrZ3JvdW5kVGFza01hbmFnZXI6IFRvb2sgYSBGaW5pc2hUYXNr
SW50ZXJydXB0YWJsZSBhc3NlcnRpb24gZm9yIG93biBwcm9jZXNzIik7CiAgICAgfSBlbHNlIGlm
IChfYXNzZXJ0aW9uc05lZWRpbmdCYWNrZ3JvdW5kVGFzay5jb21wdXRlc0VtcHR5KCkpIHsKICAg
ICAgICAgLy8gUmVsZWFzZSB0aGUgYmFja2dyb3VuZCB0YXNrIGFzeW5jaHJvbm91c2x5IGJlY2F1
c2UgcmVsZWFzaW5nIHRoZSBiYWNrZ3JvdW5kIHRhc2sgbWF5IGRlc3Ryb3kgdGhlIFByb2Nlc3NU
aHJvdHRsZXIgYW5kIHdlIGRvbid0CiAgICAgICAgIC8vIHdhbnQgaXQgdG8gZ2V0IGRlc3Ryb3ll
ZCB3aGlsZSBpbiB0aGUgbWlkZGxlIG9mIHVwZGF0aW5nIGl0cyBhc3NlcnRpb24uCkBAIC0xOTYs
NiArMjAxLDcgQEAgLSAodm9pZClhc3NlcnRpb246KFJCU0Fzc2VydGlvbiAqKWFzc2VydGlvbiBk
aWRJbnZhbGlkYXRlV2l0aEVycm9yOihOU0Vycm9yICopZXIKIHsKICAgICBBU1NFUlQoYXNzZXJ0
aW9uID09IF9iYWNrZ3JvdW5kVGFzay5nZXQoKSk7CiAgICAgUkVMRUFTRV9MT0dfRVJST1IoUHJv
Y2Vzc1N1c3BlbnNpb24sICJXS1Byb2Nlc3NBc3NlcnRpb25CYWNrZ3JvdW5kVGFza01hbmFnZXI6
IEZpbmlzaFRhc2tJbnRlcnJ1cHRhYmxlIGFzc2VydGlvbiB3YXMgaW52YWxpZGF0ZWQsIGVycm9y
OiAle3B1YmxpY31AIiwgZXJyb3IpOworICAgIF9iYWNrZ3JvdW5kVGFza1dhc0ludmFsaWRhdGVk
ID0gdHJ1ZTsKIH0KIAogLSAodm9pZClfaGFuZGxlQmFja2dyb3VuZFRhc2tFeHBpcmF0aW9uCkBA
IC0yOTcsMTEgKzMwMywxMyBAQCBzdGF0aWMgTlNTdHJpbmcgKnJ1bm5pbmdCb2FyZE5hbWVGb3JB
c3NlcnRpb25UeXBlKFByb2Nlc3NBc3NlcnRpb25UeXBlIGFzc2VydGlvbgogUHJvY2Vzc0Fzc2Vy
dGlvbjo6UHJvY2Vzc0Fzc2VydGlvbihwaWRfdCBwaWQsIGNvbnN0IFN0cmluZyYgcmVhc29uLCBQ
cm9jZXNzQXNzZXJ0aW9uVHlwZSBhc3NlcnRpb25UeXBlKQogICAgIDogbV9hc3NlcnRpb25UeXBl
KGFzc2VydGlvblR5cGUpCiAgICAgLCBtX3BpZChwaWQpCisgICAgLCBtX3JlYXNvbihyZWFzb24p
CiB7CiAgICAgTlNTdHJpbmcgKnJ1bm5pbmdCb2FyZEFzc2VydGlvbk5hbWUgPSBydW5uaW5nQm9h
cmROYW1lRm9yQXNzZXJ0aW9uVHlwZShhc3NlcnRpb25UeXBlKTsKICAgICBBU1NFUlQocnVubmlu
Z0JvYXJkQXNzZXJ0aW9uTmFtZSk7CiAgICAgaWYgKCFwaWQpIHsKICAgICAgICAgUkVMRUFTRV9M
T0dfRVJST1IoUHJvY2Vzc1N1c3BlbnNpb24sICIlcCAtIFByb2Nlc3NBc3NlcnRpb246IEZhaWxl
ZCB0byBhY3F1aXJlIFJCUyAle3B1YmxpY31AIGFzc2VydGlvbiAnJXtwdWJsaWN9cycgZm9yIHBy
b2Nlc3MgYmVjYXVzZSBQSUQgaXMgaW52YWxpZCIsIHRoaXMsIHJ1bm5pbmdCb2FyZEFzc2VydGlv
bk5hbWUsIHJlYXNvbi51dGY4KCkuZGF0YSgpKTsKKyAgICAgICAgbV93YXNJbnZhbGlkYXRlZCA9
IHRydWU7CiAgICAgICAgIHJldHVybjsKICAgICB9CiAKQEAgLTMxMiwyNCArMzIwLDM2IEBAIFBy
b2Nlc3NBc3NlcnRpb246OlByb2Nlc3NBc3NlcnRpb24ocGlkX3QgcGlkLCBjb25zdCBTdHJpbmcm
IHJlYXNvbiwgUHJvY2Vzc0Fzc2VyCiAgICAgbV9kZWxlZ2F0ZSA9IGFkb3B0TlMoW1tXS1JCU0Fz
c2VydGlvbkRlbGVnYXRlIGFsbG9jXSBpbml0XSk7CiAgICAgW21fcmJzQXNzZXJ0aW9uIGFkZE9i
c2VydmVyOm1fZGVsZWdhdGUuZ2V0KCldOwogICAgIG1fZGVsZWdhdGUuZ2V0KCkuaW52YWxpZGF0
aW9uQ2FsbGJhY2sgPSBeewotICAgICAgICBSRUxFQVNFX0xPRyhQcm9jZXNzU3VzcGVuc2lvbiwg
IiVwIC0gUHJvY2Vzc0Fzc2VydGlvbigpIFJCUyAle3B1YmxpY31AIGFzc2VydGlvbiBmb3IgcHJv
Y2VzcyB3aXRoIFBJRD0lZCB3YXMgaW52YWxpZGF0ZWQiLCB0aGlzLCBydW5uaW5nQm9hcmRBc3Nl
cnRpb25OYW1lLCBwaWQpOworICAgICAgICBSRUxFQVNFX0xPRyhQcm9jZXNzU3VzcGVuc2lvbiwg
IiVwIC0gUHJvY2Vzc0Fzc2VydGlvbjogUkJTICV7cHVibGljfUAgYXNzZXJ0aW9uIGZvciBwcm9j
ZXNzIHdpdGggUElEPSVkIHdhcyBpbnZhbGlkYXRlZCIsIHRoaXMsIHJ1bm5pbmdCb2FyZEFzc2Vy
dGlvbk5hbWUsIHBpZCk7CiAgICAgICAgIHByb2Nlc3NBc3NlcnRpb25XYXNJbnZhbGlkYXRlZCgp
OwogICAgIH07Cit9CiAKK3ZvaWQgUHJvY2Vzc0Fzc2VydGlvbjo6YWNxdWlyZUFzeW5jKENvbXBs
ZXRpb25IYW5kbGVyPHZvaWQoKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKK3sKKyAgICBhc3NlcnRp
b25zV29ya1F1ZXVlKCkuZGlzcGF0Y2goW3Byb3RlY3RlZFRoaXMgPSBtYWtlUmVmKCp0aGlzKSwg
Y29tcGxldGlvbkhhbmRsZXIgPSBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKV0oKSBtdXRhYmxl
IHsKKyAgICAgICAgcHJvdGVjdGVkVGhpcy0+YWNxdWlyZVN5bmMoKTsKKyAgICAgICAgaWYgKGNv
bXBsZXRpb25IYW5kbGVyKQorICAgICAgICAgICAgUnVuTG9vcDo6bWFpbigpLmRpc3BhdGNoKFdU
Rk1vdmUoY29tcGxldGlvbkhhbmRsZXIpKTsKKyAgICB9KTsKK30KKwordm9pZCBQcm9jZXNzQXNz
ZXJ0aW9uOjphY3F1aXJlU3luYygpCit7CiAgICAgTlNFcnJvciAqYWNxdWlzaXRpb25FcnJvciA9
IG5pbDsKICAgICBpZiAoIVttX3Jic0Fzc2VydGlvbiBhY3F1aXJlV2l0aEVycm9yOiZhY3F1aXNp
dGlvbkVycm9yXSkgewotICAgICAgICBSRUxFQVNFX0xPR19FUlJPUihQcm9jZXNzU3VzcGVuc2lv
biwgIiVwIC0gUHJvY2Vzc0Fzc2VydGlvbjogRmFpbGVkIHRvIGFjcXVpcmUgUkJTICV7cHVibGlj
fUAgYXNzZXJ0aW9uICcle3B1YmxpY31zJyBmb3IgcHJvY2VzcyB3aXRoIFBJRD0lZCwgZXJyb3I6
ICV7cHVibGljfUAiLCB0aGlzLCBydW5uaW5nQm9hcmRBc3NlcnRpb25OYW1lLCByZWFzb24udXRm
OCgpLmRhdGEoKSwgcGlkLCBhY3F1aXNpdGlvbkVycm9yKTsKKyAgICAgICAgUkVMRUFTRV9MT0df
RVJST1IoUHJvY2Vzc1N1c3BlbnNpb24sICIlcCAtIFByb2Nlc3NBc3NlcnRpb246IEZhaWxlZCB0
byBhY3F1aXJlIFJCUyBhc3NlcnRpb24gJyV7cHVibGljfXMnIGZvciBwcm9jZXNzIHdpdGggUElE
PSVkLCBlcnJvcjogJXtwdWJsaWN9QCIsIHRoaXMsIG1fcmVhc29uLnV0ZjgoKS5kYXRhKCksIG1f
cGlkLCBhY3F1aXNpdGlvbkVycm9yKTsKICAgICAgICAgUnVuTG9vcDo6bWFpbigpLmRpc3BhdGNo
KFt3ZWFrVGhpcyA9IG1ha2VXZWFrUHRyKCp0aGlzKV0gewogICAgICAgICAgICAgaWYgKHdlYWtU
aGlzKQogICAgICAgICAgICAgICAgIHdlYWtUaGlzLT5wcm9jZXNzQXNzZXJ0aW9uV2FzSW52YWxp
ZGF0ZWQoKTsKICAgICAgICAgfSk7CiAgICAgfSBlbHNlCi0gICAgICAgIFJFTEVBU0VfTE9HKFBy
b2Nlc3NTdXNwZW5zaW9uLCAiJXAgLSBQcm9jZXNzQXNzZXJ0aW9uOiBTdWNjZXNzZnVsbHkgdG9v
ayBSQlMgJXtwdWJsaWN9QCBhc3NlcnRpb24gJyV7cHVibGljfXMnIGZvciBwcm9jZXNzIHdpdGgg
UElEPSVkIiwgdGhpcywgcnVubmluZ0JvYXJkQXNzZXJ0aW9uTmFtZSwgcmVhc29uLnV0ZjgoKS5k
YXRhKCksIHBpZCk7CisgICAgICAgIFJFTEVBU0VfTE9HKFByb2Nlc3NTdXNwZW5zaW9uLCAiJXAg
LSBQcm9jZXNzQXNzZXJ0aW9uOiBTdWNjZXNzZnVsbHkgdG9vayBSQlMgYXNzZXJ0aW9uICcle3B1
YmxpY31zJyBmb3IgcHJvY2VzcyB3aXRoIFBJRD0lZCIsIHRoaXMsIG1fcmVhc29uLnV0ZjgoKS5k
YXRhKCksIG1fcGlkKTsKIH0KIAogUHJvY2Vzc0Fzc2VydGlvbjo6flByb2Nlc3NBc3NlcnRpb24o
KQogewotICAgIFJFTEVBU0VfTE9HKFByb2Nlc3NTdXNwZW5zaW9uLCAiJXAgLSB+UHJvY2Vzc0Fz
c2VydGlvbigpIFJlbGVhc2luZyBwcm9jZXNzIGFzc2VydGlvbiBmb3IgcHJvY2VzcyB3aXRoIFBJ
RD0lZCIsIHRoaXMsIG1fcGlkKTsKKyAgICBSRUxFQVNFX0xPRyhQcm9jZXNzU3VzcGVuc2lvbiwg
IiVwIC0gflByb2Nlc3NBc3NlcnRpb246IFJlbGVhc2luZyBwcm9jZXNzIGFzc2VydGlvbiAnJXtw
dWJsaWN9cycgZm9yIHByb2Nlc3Mgd2l0aCBQSUQ9JWQiLCB0aGlzLCBtX3JlYXNvbi51dGY4KCku
ZGF0YSgpLCBtX3BpZCk7CiAKICAgICBpZiAobV9yYnNBc3NlcnRpb24pIHsKICAgICAgICAgbV9k
ZWxlZ2F0ZS5nZXQoKS5pbnZhbGlkYXRpb25DYWxsYmFjayA9IG5pbDsKQEAgLTM0NCwxMyArMzY0
LDE0IEBAIHZvaWQgUHJvY2Vzc0Fzc2VydGlvbjo6cHJvY2Vzc0Fzc2VydGlvbldhc0ludmFsaWRh
dGVkKCkKICAgICBBU1NFUlQoUnVuTG9vcDo6aXNNYWluKCkpOwogICAgIFJFTEVBU0VfTE9HKFBy
b2Nlc3NTdXNwZW5zaW9uLCAiJXAgLSBQcm9jZXNzQXNzZXJ0aW9uOjpwcm9jZXNzQXNzZXJ0aW9u
V2FzSW52YWxpZGF0ZWQoKSBQSUQ9JWQiLCB0aGlzLCBtX3BpZCk7CiAKKyAgICBtX3dhc0ludmFs
aWRhdGVkID0gdHJ1ZTsKICAgICBpZiAobV9pbnZhbGlkYXRpb25IYW5kbGVyKQogICAgICAgICBt
X2ludmFsaWRhdGlvbkhhbmRsZXIoKTsKIH0KIAogYm9vbCBQcm9jZXNzQXNzZXJ0aW9uOjppc1Zh
bGlkKCkgY29uc3QKIHsKLSAgICByZXR1cm4gbV9yYnNBc3NlcnRpb24gJiYgbV9yYnNBc3NlcnRp
b24uZ2V0KCkudmFsaWQ7CisgICAgcmV0dXJuICFtX3dhc0ludmFsaWRhdGVkOwogfQogCiB2b2lk
IFByb2Nlc3NBbmRVSUFzc2VydGlvbjo6dXBkYXRlUnVuSW5CYWNrZ3JvdW5kQ291bnQoKQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>432740</attachid>
            <date>2021-07-01 15:56:42 -0700</date>
            <delta_ts>2021-07-02 13:43:11 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-225324-20210701155641.patch</filename>
            <type>text/plain</type>
            <size>31378</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc5NDYzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IGI3MTRhOGJhNTRkMmU5Y2Vh
NWM3YjE0MTdkNmY0NDg5OThmNjQyYWIuLjFjMTA3NTg3NDQyMmU5OTIzZDM5MmExMDM5YmI5MzAw
ZDAxN2UzMWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNzAgQEAKKzIwMjEtMDctMDEgIENocmlzIER1
bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KKworICAgICAgICBbaU9TXSBIYXZlIFByb2Nlc3NBc3Nl
cnRpb24gdGFrZSB0aGUgUnVubmluZ0JvYXJkIGFzc2VydGlvbiBhc3luY2hyb25vdXNseSBieSBk
ZWZhdWx0CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0y
MjUzMjQKKyAgICAgICAgPHJkYXI6Ly83Njk3MjI1Mj4KKworICAgICAgICBSZXZpZXdlZCBieSBO
T0JPRFkgKE9PUFMhKS4KKworICAgICAgICBIYXZlIFByb2Nlc3NBc3NlcnRpb24gdGFrZSB0aGUg
UnVubmluZ0JvYXJkIGFzc2VydGlvbiBhc3luY2hyb25vdXNseSAob24gYSBiYWNrZ3JvdW5kIHRo
cmVhZCkgYnkKKyAgICAgICAgZGVmYXVsdCBhcyB3ZSBoYXZlIGV2aWRlbmNlIHRoYXQgZG9pbmcg
c28gb24gdGhlIG1haW4gdGhyZWFkIGlzIGJhZCBmb3IgcGVyZm9ybWFuY2UgYW5kIG1heQorICAg
ICAgICBuZWdhdGl2ZWx5IGltcGFjdCBsYXVuY2ggdGltZS4KKworICAgICAgICBXaGVuIGNvbnN0
cnVjdGluZyBhIFByb2Nlc3NBc3NlcnRpb24sIHRoZSBjYWxsZXIgY2FuIG5vdyBpbmRpY2F0ZSBp
ZiBpdCB3YW50cyB0aGUgYXNzZXJ0aW9uIHRvIGJlCisgICAgICAgIHRha2VuIGFzeW5jaHJvbm91
c2x5IChkZWZhdWx0KSBvciBub3QuIEJ1ZyAyMjc1NTIgaXMgYW4gZXhhbXBsZSBvZiBhIGNhc2Ug
d2hlcmUgd2Ugc3RpbGwgd2FudCB0bworICAgICAgICB0YWtlIHRoZSBhc3NlcnRpb24gc3luY2hy
b25vdXNseSAoYmVjYXVzZSB3ZSdyZSBub3Qgb24gdGhlIG1haW4gdGhyZWFkIGFuZCB3ZSBuZWVk
IHRvIG1ha2Ugc3VyZQorICAgICAgICB3ZSBoYXZlIHRoZSBhc3NlcnRpb24gYmVmb3JlIHByb2Nl
ZWRpbmcpLgorCisgICAgICAgIFRoZSBjYWxsZXIgY2FuIGFsc28gcHJvdmlkZSBhIGNvbXBsZXRp
b24gaGFuZGxlciB0aGF0IHdpbGwgZ2V0IGNhbGxlZCBvbmNlIHRoZSBSdW5uaW5nQm9hcmQgaXMK
KyAgICAgICAgdGFrZW4uIE5vdGUgdGhhdCB0aGUgUnVubmluZ0JvYXJkIGFzeW5jIEFQSSAoW1JC
U0Fzc2VydGlvbiBhY3F1aXJlV2l0aEludmFsaWRhdGlvbkhhbmRsZXJdKSBkb2VzCisgICAgICAg
IG5vdCBwcm92aWRlIGEgd2F5IGZvciB1cyB0byBrbm93IHdoZW4gdGhlIGFzc2VydGlvbiBpcyB0
YWtlbi4gRm9yIHRoaXMgcmVhc29uLCBQcm9jZXNzQXNzZXJ0aW9uCisgICAgICAgIGtlZXBzIHVz
aW5nIHRoZSBSdW5uaW5nQm9hcmQgc3luYyBBUEkgKFtSQlNBc3NlcnRpb24gYWNxdWlyZVdpdGhF
cnJvcjpdKSBidXQgY2FsbHMgaW4gb24gYQorICAgICAgICBiYWNrZ3JvdW5kIHF1ZXVlLgorCisg
ICAgICAgIEZvciB0aGUgVUlQcm9jZXNzJ3MgYmFja2dyb3VuZCB0YXNrIHRob3VnaCwgd2UgZG9u
J3QgbmVlZCB0byBrbm93IHdoZW4gdGhlIGFzc2VydGlvbiBpcyB0YWtlbgorICAgICAgICBzbyB3
ZSBjYW4gdXNlIHRoZSBSdW5uaW5nQm9hcmQgYXN5bmMgQVBJLgorCisgICAgICAgIE5vdGUgdGhh
dCB0aGUgcHJldmlvdXMgaXRlcmF0aW9uIG9mIHRoaXMgcGF0Y2ggaGFkIGEgYnVnIHdoZXJlIHRo
ZSBQcm9jZXNzVGhyb3R0bGVyIHdvdWxkIHJlbGVhc2UKKyAgICAgICAgaXRzIHByZXZpb3VzIGFz
c2VydGlvbiBiZWZvcmUgdGhlIG5ldyBvbmUgaXMgdGFrZW4gKGFzeW5jaHJvbm91c2x5KSB3aGVu
IGNoYW5naW5nIHRoZSBhc3NlcnRpb24KKyAgICAgICAgdHlwZSAoZS5nLiBmb3JlZ3JvdW5kIHRv
IGJhY2tncm91bmQpLiBUaGlzIGlzIGFkZHJlc3NlZCBpbiB0aGlzIHBhdGNoLiBQcm9jZXNzVGhy
b3R0bGVyIG5vdyBwYXNzZXMKKyAgICAgICAgYW4gYWNxdWlzaXRpb24gaGFuZGxlciB3aGVuIGNv
bnN0cnVjdGluZyB0aGUgUHJvY2Vzc0Fzc2VydGlvbiBhbmQgb25seSByZWxlYXNlcyBpdHMgcHJl
dmlvdXMKKyAgICAgICAgYXNzZXJ0aW9uIG9uY2UgdGhlIGFjcXVpc2l0aW9uIGhhbmRsZXIgZm9y
IHRoZSBuZXcgb25lIGlzIHRha2VuLgorCisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvRG93bmxv
YWRzL0Rvd25sb2FkTWFwLmNwcDoKKyAgICAgICAgKFdlYktpdDo6RG93bmxvYWRNYXA6OmFkZCk6
CisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvRG93bmxvYWRzL0Rvd25sb2FkTWFwLmg6CisgICAg
ICAgICogUGxhdGZvcm0vSVBDL2NvY29hL0Nvbm5lY3Rpb25Db2NvYS5tbToKKyAgICAgICAgKElQ
Qzo6Q29ubmVjdGlvblRlcm1pbmF0aW9uV2F0Y2hkb2c6OkNvbm5lY3Rpb25UZXJtaW5hdGlvbldh
dGNoZG9nKToKKyAgICAgICAgKiBVSVByb2Nlc3MvRG93bmxvYWRzL0Rvd25sb2FkUHJveHlNYXAu
Y3BwOgorICAgICAgICAoV2ViS2l0OjpEb3dubG9hZFByb3h5TWFwOjpjcmVhdGVEb3dubG9hZFBy
b3h5KToKKyAgICAgICAgKiBVSVByb2Nlc3MvRG93bmxvYWRzL0Rvd25sb2FkUHJveHlNYXAuaDoK
KyAgICAgICAgKiBVSVByb2Nlc3MvTmV0d29yay9OZXR3b3JrUHJvY2Vzc1Byb3h5LmNwcDoKKyAg
ICAgICAgKFdlYktpdDo6TmV0d29ya1Byb2Nlc3NQcm94eTo6c2V0V2ViUHJvY2Vzc0hhc1VwbG9h
ZHMpOgorICAgICAgICAqIFVJUHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9jZXNzUHJveHkuaDoK
KyAgICAgICAgKiBVSVByb2Nlc3MvUHJvY2Vzc0Fzc2VydGlvbi5jcHA6CisgICAgICAgIChXZWJL
aXQ6OlByb2Nlc3NBc3NlcnRpb246OlByb2Nlc3NBc3NlcnRpb24pOgorICAgICAgICAqIFVJUHJv
Y2Vzcy9Qcm9jZXNzQXNzZXJ0aW9uLmg6CisgICAgICAgIChXZWJLaXQ6OlByb2Nlc3NBc3NlcnRp
b246OmNyZWF0ZSk6CisgICAgICAgICogVUlQcm9jZXNzL1Byb2Nlc3NUaHJvdHRsZXIuY3BwOgor
ICAgICAgICAoV2ViS2l0OjpQcm9jZXNzVGhyb3R0bGVyOjpzZXRBc3NlcnRpb25UeXBlKToKKyAg
ICAgICAgKiBVSVByb2Nlc3MvUHJvY2Vzc1Rocm90dGxlci5oOgorICAgICAgICAqIFVJUHJvY2Vz
cy9XZWJQcm9jZXNzUG9vbC5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3NQb29sOjp1
cGRhdGVBdWRpYmxlTWVkaWFBc3NlcnRpb25zKToKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUHJv
Y2Vzc1Bvb2wuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5LmNwcDoKKyAg
ICAgICAgKFdlYktpdDo6V2ViUHJvY2Vzc1Byb3h5Ojp1cGRhdGVBdWRpYmxlTWVkaWFBc3NlcnRp
b25zKToKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5Lmg6CisgICAgICAgICog
VUlQcm9jZXNzL2lvcy9Qcm9jZXNzQXNzZXJ0aW9uSU9TLm1tOgorICAgICAgICAoYXNzZXJ0aW9u
c1dvcmtRdWV1ZSk6CisgICAgICAgICgtW1dLUHJvY2Vzc0Fzc2VydGlvbkJhY2tncm91bmRUYXNr
TWFuYWdlciBfdXBkYXRlQmFja2dyb3VuZFRhc2tdKToKKyAgICAgICAgKC1bV0tQcm9jZXNzQXNz
ZXJ0aW9uQmFja2dyb3VuZFRhc2tNYW5hZ2VyIGFzc2VydGlvbjpkaWRJbnZhbGlkYXRlV2l0aEVy
cm9yOl0pOgorICAgICAgICAoV2ViS2l0OjpQcm9jZXNzQXNzZXJ0aW9uOjpQcm9jZXNzQXNzZXJ0
aW9uKToKKyAgICAgICAgKFdlYktpdDo6UHJvY2Vzc0Fzc2VydGlvbjo6YWNxdWlyZUFzeW5jKToK
KyAgICAgICAgKFdlYktpdDo6UHJvY2Vzc0Fzc2VydGlvbjo6YWNxdWlyZVN5bmMpOgorICAgICAg
ICAoV2ViS2l0OjpQcm9jZXNzQXNzZXJ0aW9uOjp+UHJvY2Vzc0Fzc2VydGlvbik6CisgICAgICAg
IChXZWJLaXQ6OlByb2Nlc3NBc3NlcnRpb246OnByb2Nlc3NBc3NlcnRpb25XYXNJbnZhbGlkYXRl
ZCk6CisgICAgICAgIChXZWJLaXQ6OlByb2Nlc3NBc3NlcnRpb246OmlzVmFsaWQgY29uc3QpOgor
CiAyMDIxLTA3LTAxICBZb3Vlbm4gRmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KIAogICAgICAg
ICBbQ29jb2FdIE1pZ3JhdGUgV2ViUlRDIFVEUCBzb2NrZXQgaGFuZGxpbmcgdG8gTlcgQVBJCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL0Rvd25sb2Fkcy9Eb3dubG9h
ZE1hcC5jcHAgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL0Rvd25sb2Fkcy9Eb3dubG9h
ZE1hcC5jcHAKaW5kZXggOGQ1MDIwMzc2OGFhZjNjNzk3MTdjZjRmMjk4NzgyMjc4ZWM2NGU0NS4u
NDA0MmRkZjVkOGJmZTMzNDE4OWJmNGRmMzBmZDFhZTUwNjFmMDM3YSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9Eb3dubG9hZHMvRG93bmxvYWRNYXAuY3BwCisrKyBi
L1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvRG93bmxvYWRzL0Rvd25sb2FkTWFwLmNwcApA
QCAtNjEsNyArNjEsNyBAQCBEb3dubG9hZE1hcDo6RG93bmxvYWRNYXBUeXBlOjpBZGRSZXN1bHQg
RG93bmxvYWRNYXA6OmFkZChEb3dubG9hZElEIGRvd25sb2FkSUQsCiAgICAgYXV0byByZXN1bHQg
PSBtX2Rvd25sb2Fkcy5hZGQoZG93bmxvYWRJRCwgV1RGTW92ZShkb3dubG9hZCkpOwogICAgIGlm
IChtX2Rvd25sb2Fkcy5zaXplKCkgPT0gMSkgewogICAgICAgICBBU1NFUlQoIW1fZG93bmxvYWRB
c3NlcnRpb24pOwotICAgICAgICBtX2Rvd25sb2FkQXNzZXJ0aW9uID0gbWFrZVVuaXF1ZTxQcm9j
ZXNzQXNzZXJ0aW9uPihnZXRwaWQoKSwgIldlYktpdCBkb3dubG9hZHMiX3MsIFByb2Nlc3NBc3Nl
cnRpb25UeXBlOjpVbmJvdW5kZWROZXR3b3JraW5nKTsKKyAgICAgICAgbV9kb3dubG9hZEFzc2Vy
dGlvbiA9IFByb2Nlc3NBc3NlcnRpb246OmNyZWF0ZShnZXRwaWQoKSwgIldlYktpdCBkb3dubG9h
ZHMiX3MsIFByb2Nlc3NBc3NlcnRpb25UeXBlOjpVbmJvdW5kZWROZXR3b3JraW5nKTsKICAgICAg
ICAgUkVMRUFTRV9MT0coUHJvY2Vzc1N1c3BlbnNpb24sICJUb29rICdXZWJLaXQgZG93bmxvYWRz
JyBhc3NlcnRpb24gaW4gTmV0d29ya1Byb2Nlc3MiKTsKICAgICB9CiAKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvRG93bmxvYWRzL0Rvd25sb2FkTWFwLmggYi9Tb3Vy
Y2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL0Rvd25sb2Fkcy9Eb3dubG9hZE1hcC5oCmluZGV4IGI1
MjU2N2NhYTM4YTQzNzYxOWNmMGU2NzI2ZWI4YzNmYzkxMTY3MTAuLmE4YmQyOGU2OGNhZDNhZGU0
ODMwNTViMmYyMTdmNTAxYmQ5ZmI5YmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29y
a1Byb2Nlc3MvRG93bmxvYWRzL0Rvd25sb2FkTWFwLmgKKysrIGIvU291cmNlL1dlYktpdC9OZXR3
b3JrUHJvY2Vzcy9Eb3dubG9hZHMvRG93bmxvYWRNYXAuaApAQCAtNTMsNyArNTMsNyBAQCBwdWJs
aWM6CiAKIHByaXZhdGU6CiAgICAgRG93bmxvYWRNYXBUeXBlIG1fZG93bmxvYWRzOwotICAgIHN0
ZDo6dW5pcXVlX3B0cjxQcm9jZXNzQXNzZXJ0aW9uPiBtX2Rvd25sb2FkQXNzZXJ0aW9uOworICAg
IFJlZlB0cjxQcm9jZXNzQXNzZXJ0aW9uPiBtX2Rvd25sb2FkQXNzZXJ0aW9uOwogfTsKIAogI2Vu
ZGlmIC8vICFFTkFCTEUoVEFLRV9VTkJPVU5ERURfTkVUV09SS0lOR19BU1NFUlRJT04pCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L1BsYXRmb3JtL0lQQy9jb2NvYS9Db25uZWN0aW9uQ29jb2Eu
bW0gYi9Tb3VyY2UvV2ViS2l0L1BsYXRmb3JtL0lQQy9jb2NvYS9Db25uZWN0aW9uQ29jb2EubW0K
aW5kZXggMzg5ODIwMDk3OGU0MzU0OTdkMzgwNzQwMWUzNjZhMTkyODc0NzhjMy4uZTc5MjIxOTM0
ZmI0YzUyOTEyNDc5NDlmMTRmMzY5NzFlMTZlYzcxNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9QbGF0Zm9ybS9JUEMvY29jb2EvQ29ubmVjdGlvbkNvY29hLm1tCisrKyBiL1NvdXJjZS9XZWJL
aXQvUGxhdGZvcm0vSVBDL2NvY29hL0Nvbm5lY3Rpb25Db2NvYS5tbQpAQCAtODksNyArODksNyBA
QCBwcml2YXRlOgogICAgICAgICA6IG1feHBjQ29ubmVjdGlvbih4cGNDb25uZWN0aW9uKQogICAg
ICAgICAsIG1fd2F0Y2hkb2dUaW1lcihSdW5Mb29wOjptYWluKCksIHRoaXMsICZDb25uZWN0aW9u
VGVybWluYXRpb25XYXRjaGRvZzo6d2F0Y2hkb2dUaW1lckZpcmVkKQogI2lmIFBMQVRGT1JNKElP
U19GQU1JTFkpCi0gICAgICAgICwgbV9hc3NlcnRpb24obWFrZVVuaXF1ZTxXZWJLaXQ6OlByb2Nl
c3NBbmRVSUFzc2VydGlvbj4oeHBjX2Nvbm5lY3Rpb25fZ2V0X3BpZChtX3hwY0Nvbm5lY3Rpb24u
Z2V0KCkpLCAiQ29ubmVjdGlvblRlcm1pbmF0aW9uV2F0Y2hkb2ciX3MsIFdlYktpdDo6UHJvY2Vz
c0Fzc2VydGlvblR5cGU6OkJhY2tncm91bmQpKQorICAgICAgICAsIG1fYXNzZXJ0aW9uKFdlYktp
dDo6UHJvY2Vzc0FuZFVJQXNzZXJ0aW9uOjpjcmVhdGUoeHBjX2Nvbm5lY3Rpb25fZ2V0X3BpZCht
X3hwY0Nvbm5lY3Rpb24uZ2V0KCkpLCAiQ29ubmVjdGlvblRlcm1pbmF0aW9uV2F0Y2hkb2ciX3Ms
IFdlYktpdDo6UHJvY2Vzc0Fzc2VydGlvblR5cGU6OkJhY2tncm91bmQpKQogI2VuZGlmCiAgICAg
ewogICAgICAgICBtX3dhdGNoZG9nVGltZXIuc3RhcnRPbmVTaG90KGludGVydmFsKTsKQEAgLTEw
NCw3ICsxMDQsNyBAQCBwcml2YXRlOgogICAgIE9TT2JqZWN0UHRyPHhwY19jb25uZWN0aW9uX3Q+
IG1feHBjQ29ubmVjdGlvbjsKICAgICBSdW5Mb29wOjpUaW1lcjxDb25uZWN0aW9uVGVybWluYXRp
b25XYXRjaGRvZz4gbV93YXRjaGRvZ1RpbWVyOwogI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCi0g
ICAgc3RkOjp1bmlxdWVfcHRyPFdlYktpdDo6UHJvY2Vzc0FuZFVJQXNzZXJ0aW9uPiBtX2Fzc2Vy
dGlvbjsKKyAgICBSZWY8V2ViS2l0OjpQcm9jZXNzQW5kVUlBc3NlcnRpb24+IG1fYXNzZXJ0aW9u
OwogI2VuZGlmCiB9OwogICAgIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9QbGF0Zm9ybS9z
cGkvaW9zL1J1bm5pbmdCb2FyZFNlcnZpY2VzU1BJLmggYi9Tb3VyY2UvV2ViS2l0L1BsYXRmb3Jt
L3NwaS9pb3MvUnVubmluZ0JvYXJkU2VydmljZXNTUEkuaAppbmRleCBkNTViNmM5MGMzMWJlNGJi
YzA2M2RlNWU2YmFlMGM4NTdlZGRhNDE5Li40MjUxMzJmZTkwY2ZiZWMzNzZmMzY5MjE1ZjA0MzJj
ZjJiYTk4ODRkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1BsYXRmb3JtL3NwaS9pb3MvUnVu
bmluZ0JvYXJkU2VydmljZXNTUEkuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1BsYXRmb3JtL3NwaS9p
b3MvUnVubmluZ0JvYXJkU2VydmljZXNTUEkuaApAQCAtNTUsMTEgKzU1LDE0IEBAIE5TX0FTU1VN
RV9OT05OVUxMX0JFR0lOCiArIChSQlNUYXJnZXQgKiljdXJyZW50UHJvY2VzczsKIEBlbmQKIAor
QGNsYXNzIFJCU0Fzc2VydGlvbjsKIEBwcm90b2NvbCBSQlNBc3NlcnRpb25PYnNlcnZpbmc7Cit0
eXBlZGVmIHZvaWQgKF5SQlNBc3NlcnRpb25JbnZhbGlkYXRpb25IYW5kbGVyKShSQlNBc3NlcnRp
b24gKmFzc2VydGlvbiwgTlNFcnJvciAqZXJyb3IpOwogCiBAaW50ZXJmYWNlIFJCU0Fzc2VydGlv
biA6IE5TT2JqZWN0CiAtIChpbnN0YW5jZXR5cGUpaW5pdFdpdGhFeHBsYW5hdGlvbjooTlNTdHJp
bmcgKilleHBsYW5hdGlvbiB0YXJnZXQ6KFJCU1RhcmdldCAqKXRhcmdldCBhdHRyaWJ1dGVzOihO
U0FycmF5IDxSQlNBdHRyaWJ1dGUgKj4gKilhdHRyaWJ1dGVzOwogLSAoQk9PTClhY3F1aXJlV2l0
aEVycm9yOihOU0Vycm9yICoqKWVycm9yOworLSAodm9pZClhY3F1aXJlV2l0aEludmFsaWRhdGlv
bkhhbmRsZXI6KG51bGxhYmxlIFJCU0Fzc2VydGlvbkludmFsaWRhdGlvbkhhbmRsZXIpaGFuZGxl
cjsKIC0gKHZvaWQpaW52YWxpZGF0ZTsKIC0gKHZvaWQpYWRkT2JzZXJ2ZXI6KGlkIDxSQlNBc3Nl
cnRpb25PYnNlcnZpbmc+KW9ic2VydmVyOwogLSAodm9pZClyZW1vdmVPYnNlcnZlcjooaWQgPFJC
U0Fzc2VydGlvbk9ic2VydmluZz4pb2JzZXJ2ZXI7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9Eb3dubG9hZHMvRG93bmxvYWRQcm94eU1hcC5jcHAgYi9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9Eb3dubG9hZHMvRG93bmxvYWRQcm94eU1hcC5jcHAKaW5kZXggMDcwMjc0YzQ3
YTgwZTU4NGU2NzRiZDIyOTEzNDY2NDk5MzNlNTdiMi4uYjE0OTlmZjE0NWNiNzU2YzI0NmE0N2Fl
ZmUzOThkNmFiN2M0M2NiNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvRG93
bmxvYWRzL0Rvd25sb2FkUHJveHlNYXAuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L0Rvd25sb2Fkcy9Eb3dubG9hZFByb3h5TWFwLmNwcApAQCAtOTAsMTAgKzkwLDEwIEBAIERvd25s
b2FkUHJveHkmIERvd25sb2FkUHJveHlNYXA6OmNyZWF0ZURvd25sb2FkUHJveHkoV2Vic2l0ZURh
dGFTdG9yZSYgZGF0YVN0b3JlCiAKICAgICBpZiAobV9kb3dubG9hZHMuc2l6ZSgpID09IDEgJiYg
bV9zaG91bGRUYWtlQXNzZXJ0aW9uKSB7CiAgICAgICAgIEFTU0VSVCghbV9kb3dubG9hZFVJQXNz
ZXJ0aW9uKTsKLSAgICAgICAgbV9kb3dubG9hZFVJQXNzZXJ0aW9uID0gbWFrZVVuaXF1ZTxQcm9j
ZXNzQXNzZXJ0aW9uPihnZXRDdXJyZW50UHJvY2Vzc0lEKCksICJXZWJLaXQgZG93bmxvYWRzIl9z
LCBQcm9jZXNzQXNzZXJ0aW9uVHlwZTo6VW5ib3VuZGVkTmV0d29ya2luZyk7CisgICAgICAgIG1f
ZG93bmxvYWRVSUFzc2VydGlvbiA9IFByb2Nlc3NBc3NlcnRpb246OmNyZWF0ZShnZXRDdXJyZW50
UHJvY2Vzc0lEKCksICJXZWJLaXQgZG93bmxvYWRzIl9zLCBQcm9jZXNzQXNzZXJ0aW9uVHlwZTo6
VW5ib3VuZGVkTmV0d29ya2luZyk7CiAKICAgICAgICAgQVNTRVJUKCFtX2Rvd25sb2FkTmV0d29y
a2luZ0Fzc2VydGlvbik7Ci0gICAgICAgIG1fZG93bmxvYWROZXR3b3JraW5nQXNzZXJ0aW9uID0g
bWFrZVVuaXF1ZTxQcm9jZXNzQXNzZXJ0aW9uPihtX3Byb2Nlc3MucHJvY2Vzc0lkZW50aWZpZXIo
KSwgIldlYktpdCBkb3dubG9hZHMiX3MsIFByb2Nlc3NBc3NlcnRpb25UeXBlOjpVbmJvdW5kZWRO
ZXR3b3JraW5nKTsKKyAgICAgICAgbV9kb3dubG9hZE5ldHdvcmtpbmdBc3NlcnRpb24gPSBQcm9j
ZXNzQXNzZXJ0aW9uOjpjcmVhdGUobV9wcm9jZXNzLnByb2Nlc3NJZGVudGlmaWVyKCksICJXZWJL
aXQgZG93bmxvYWRzIl9zLCBQcm9jZXNzQXNzZXJ0aW9uVHlwZTo6VW5ib3VuZGVkTmV0d29ya2lu
Zyk7CiAKICAgICAgICAgUkVMRUFTRV9MT0coUHJvY2Vzc1N1c3BlbnNpb24sICJVSVByb2Nlc3Mg
dG9vayAnV2ViS2l0IGRvd25sb2FkcycgYXNzZXJ0aW9ucyBmb3IgVUlQcm9jZXNzIGFuZCBOZXR3
b3JrUHJvY2VzcyIpOwogICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L0Rvd25sb2Fkcy9Eb3dubG9hZFByb3h5TWFwLmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9E
b3dubG9hZHMvRG93bmxvYWRQcm94eU1hcC5oCmluZGV4IDRmYTAwMWJkN2ZhZTFjZWQwMjRkMmI5
MWYyMDE3MGZmOTk0NTI4YmUuLjgxMmY2NGQ0NzI1NzViMTQyMWE2ZTc1YmQ4Mjg5YzBlZDEwMzk5
OTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0Rvd25sb2Fkcy9Eb3dubG9h
ZFByb3h5TWFwLmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvRG93bmxvYWRzL0Rvd25s
b2FkUHJveHlNYXAuaApAQCAtNzUsOCArNzUsOCBAQCBwcml2YXRlOgogICAgIEhhc2hNYXA8RG93
bmxvYWRJRCwgUmVmUHRyPERvd25sb2FkUHJveHk+PiBtX2Rvd25sb2FkczsKIAogICAgIGJvb2wg
bV9zaG91bGRUYWtlQXNzZXJ0aW9uIHsgZmFsc2UgfTsKLSAgICBzdGQ6OnVuaXF1ZV9wdHI8UHJv
Y2Vzc0Fzc2VydGlvbj4gbV9kb3dubG9hZFVJQXNzZXJ0aW9uOwotICAgIHN0ZDo6dW5pcXVlX3B0
cjxQcm9jZXNzQXNzZXJ0aW9uPiBtX2Rvd25sb2FkTmV0d29ya2luZ0Fzc2VydGlvbjsKKyAgICBS
ZWZQdHI8UHJvY2Vzc0Fzc2VydGlvbj4gbV9kb3dubG9hZFVJQXNzZXJ0aW9uOworICAgIFJlZlB0
cjxQcm9jZXNzQXNzZXJ0aW9uPiBtX2Rvd25sb2FkTmV0d29ya2luZ0Fzc2VydGlvbjsKIAogI2lm
IFBMQVRGT1JNKElPU19GQU1JTFkpCiAgICAgUmV0YWluUHRyPGlkPiBtX2JhY2tncm91bmRPYnNl
cnZlcjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL05ldHdvcmsvTmV0d29y
a1Byb2Nlc3NQcm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9OZXR3b3JrL05ldHdv
cmtQcm9jZXNzUHJveHkuY3BwCmluZGV4IGU2MDZiOTFlMTZjZGU0YTM0YWNiOTViZDAyMWQzNjYx
YzIxYjY5NWQuLjE0YTcyOWRlMTI2Mjk0YWIzMTIxYThkNDVjNzg5OWMwZWZlNjEwM2MgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nlc3NQcm94
eS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvTmV0d29yay9OZXR3b3JrUHJvY2Vz
c1Byb3h5LmNwcApAQCAtMTQ1NywxNSArMTQ1NywxNSBAQCB2b2lkIE5ldHdvcmtQcm9jZXNzUHJv
eHk6OnNldFdlYlByb2Nlc3NIYXNVcGxvYWRzKFdlYkNvcmU6OlByb2Nlc3NJZGVudGlmaWVyIHBy
bwogICAgIGlmICghbV91cGxvYWRBY3Rpdml0eSkgewogICAgICAgICBSRUxFQVNFX0xPRyhQcm9j
ZXNzU3VzcGVuc2lvbiwgIk5ldHdvcmtQcm9jZXNzUHJveHk6OnNldFdlYlByb2Nlc3NIYXNVcGxv
YWRzOiBUaGUgbnVtYmVyIG9mIHVwbG9hZHMgaW4gcHJvZ3Jlc3MgaXMgbm93IGdyZWF0ZXIgdGhh
biAwLiBUYWtpbmcgTmV0d29ya2luZyBhbmQgVUkgcHJvY2VzcyBhc3NlcnRpb25zLiIpOwogICAg
ICAgICBtX3VwbG9hZEFjdGl2aXR5ID0gVXBsb2FkQWN0aXZpdHkgewotICAgICAgICAgICAgbWFr
ZVVuaXF1ZTxQcm9jZXNzQXNzZXJ0aW9uPihnZXRDdXJyZW50UHJvY2Vzc0lEKCksICJXZWJLaXQg
dXBsb2FkcyJfcywgUHJvY2Vzc0Fzc2VydGlvblR5cGU6OlVuYm91bmRlZE5ldHdvcmtpbmcpLAot
ICAgICAgICAgICAgbWFrZVVuaXF1ZTxQcm9jZXNzQXNzZXJ0aW9uPihwcm9jZXNzSWRlbnRpZmll
cigpLCAiV2ViS2l0IHVwbG9hZHMiX3MsIFByb2Nlc3NBc3NlcnRpb25UeXBlOjpVbmJvdW5kZWRO
ZXR3b3JraW5nKSwKLSAgICAgICAgICAgIEhhc2hNYXA8V2ViQ29yZTo6UHJvY2Vzc0lkZW50aWZp
ZXIsIHN0ZDo6dW5pcXVlX3B0cjxQcm9jZXNzQXNzZXJ0aW9uPj4oKQorICAgICAgICAgICAgUHJv
Y2Vzc0Fzc2VydGlvbjo6Y3JlYXRlKGdldEN1cnJlbnRQcm9jZXNzSUQoKSwgIldlYktpdCB1cGxv
YWRzIl9zLCBQcm9jZXNzQXNzZXJ0aW9uVHlwZTo6VW5ib3VuZGVkTmV0d29ya2luZyksCisgICAg
ICAgICAgICBQcm9jZXNzQXNzZXJ0aW9uOjpjcmVhdGUocHJvY2Vzc0lkZW50aWZpZXIoKSwgIldl
YktpdCB1cGxvYWRzIl9zLCBQcm9jZXNzQXNzZXJ0aW9uVHlwZTo6VW5ib3VuZGVkTmV0d29ya2lu
ZyksCisgICAgICAgICAgICBIYXNoTWFwPFdlYkNvcmU6OlByb2Nlc3NJZGVudGlmaWVyLCBSZWZQ
dHI8UHJvY2Vzc0Fzc2VydGlvbj4+KCkKICAgICAgICAgfTsKICAgICB9CiAKICAgICBtX3VwbG9h
ZEFjdGl2aXR5LT53ZWJQcm9jZXNzQXNzZXJ0aW9ucy5lbnN1cmUocHJvY2Vzc0lELCBbJl0gewog
ICAgICAgICBSRUxFQVNFX0xPRyhQcm9jZXNzU3VzcGVuc2lvbiwgIk5ldHdvcmtQcm9jZXNzUHJv
eHk6OnNldFdlYlByb2Nlc3NIYXNVcGxvYWRzOiBUYWtpbmcgdXBsb2FkIGFzc2VydGlvbiBvbiBi
ZWhhbGYgb2YgV2ViUHJvY2VzcyB3aXRoIFBJRCAlZCIsIHByb2Nlc3MtPnByb2Nlc3NJZGVudGlm
aWVyKCkpOwotICAgICAgICByZXR1cm4gbWFrZVVuaXF1ZTxQcm9jZXNzQXNzZXJ0aW9uPihwcm9j
ZXNzLT5wcm9jZXNzSWRlbnRpZmllcigpLCAiV2ViS2l0IHVwbG9hZHMiX3MsIFByb2Nlc3NBc3Nl
cnRpb25UeXBlOjpVbmJvdW5kZWROZXR3b3JraW5nKTsKKyAgICAgICAgcmV0dXJuIFByb2Nlc3NB
c3NlcnRpb246OmNyZWF0ZShwcm9jZXNzLT5wcm9jZXNzSWRlbnRpZmllcigpLCAiV2ViS2l0IHVw
bG9hZHMiX3MsIFByb2Nlc3NBc3NlcnRpb25UeXBlOjpVbmJvdW5kZWROZXR3b3JraW5nKTsKICAg
ICB9KTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvTmV0d29yay9O
ZXR3b3JrUHJvY2Vzc1Byb3h5LmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9OZXR3b3JrL05l
dHdvcmtQcm9jZXNzUHJveHkuaAppbmRleCA4Y2ZlNTNiYjQ5NGY4Y2NjZjRhNzM2NGU4OWU0ZmVh
MDNjYzA1MTAzLi4wY2IzMTY4MWVhODNlNDc0OWQ1OTc2YWQ2NGJhNDJhNjQ3OWRmMDM0IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9jZXNzUHJv
eHkuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9jZXNz
UHJveHkuaApAQCAtMzQ3LDkgKzM0Nyw5IEBAIHByaXZhdGU6CiAjZW5kaWYKIAogICAgIHN0cnVj
dCBVcGxvYWRBY3Rpdml0eSB7Ci0gICAgICAgIHN0ZDo6dW5pcXVlX3B0cjxQcm9jZXNzQXNzZXJ0
aW9uPiB1aUFzc2VydGlvbjsKLSAgICAgICAgc3RkOjp1bmlxdWVfcHRyPFByb2Nlc3NBc3NlcnRp
b24+IG5ldHdvcmtBc3NlcnRpb247Ci0gICAgICAgIEhhc2hNYXA8V2ViQ29yZTo6UHJvY2Vzc0lk
ZW50aWZpZXIsIHN0ZDo6dW5pcXVlX3B0cjxQcm9jZXNzQXNzZXJ0aW9uPj4gd2ViUHJvY2Vzc0Fz
c2VydGlvbnM7CisgICAgICAgIFJlZlB0cjxQcm9jZXNzQXNzZXJ0aW9uPiB1aUFzc2VydGlvbjsK
KyAgICAgICAgUmVmUHRyPFByb2Nlc3NBc3NlcnRpb24+IG5ldHdvcmtBc3NlcnRpb247CisgICAg
ICAgIEhhc2hNYXA8V2ViQ29yZTo6UHJvY2Vzc0lkZW50aWZpZXIsIFJlZlB0cjxQcm9jZXNzQXNz
ZXJ0aW9uPj4gd2ViUHJvY2Vzc0Fzc2VydGlvbnM7CiAgICAgfTsKICAgICBzdGQ6Om9wdGlvbmFs
PFVwbG9hZEFjdGl2aXR5PiBtX3VwbG9hZEFjdGl2aXR5OwogCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9Qcm9jZXNzQXNzZXJ0aW9uLmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL1Byb2Nlc3NBc3NlcnRpb24uY3BwCmluZGV4IGZhOGUwMzcwMTFlMzY0OTBhZTc0Nzg5
NmYwMjg1NzVlOGJhZGZhYjIuLjg1OWExMTk3ZjFiMmNmOWM2MDE5ZWI0NTE1MGI5OTUyZGViYzU3
ZmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1Byb2Nlc3NBc3NlcnRpb24u
Y3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1Byb2Nlc3NBc3NlcnRpb24uY3BwCkBA
IC0zMiw5ICszMiwxMCBAQAogCiBuYW1lc3BhY2UgV2ViS2l0IHsKIAotUHJvY2Vzc0Fzc2VydGlv
bjo6UHJvY2Vzc0Fzc2VydGlvbihQcm9jZXNzSUQgcGlkLCBjb25zdCBTdHJpbmcmLCBQcm9jZXNz
QXNzZXJ0aW9uVHlwZSBhc3NlcnRpb25UeXBlKQorUHJvY2Vzc0Fzc2VydGlvbjo6UHJvY2Vzc0Fz
c2VydGlvbihQcm9jZXNzSUQgcGlkLCBjb25zdCBTdHJpbmcmIHJlYXNvbiwgUHJvY2Vzc0Fzc2Vy
dGlvblR5cGUgYXNzZXJ0aW9uVHlwZSkKICAgICA6IG1fYXNzZXJ0aW9uVHlwZShhc3NlcnRpb25U
eXBlKQogICAgICwgbV9waWQocGlkKQorICAgICwgbV9yZWFzb24ocmVhc29uKQogewogfQogCkBA
IC00NSw2ICs0NiwxNiBAQCBib29sIFByb2Nlc3NBc3NlcnRpb246OmlzVmFsaWQoKSBjb25zdAog
ICAgIHJldHVybiB0cnVlOwogfQogCit2b2lkIFByb2Nlc3NBc3NlcnRpb246OmFjcXVpcmVBc3lu
YyhDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYgY29tcGxldGlvbkhhbmRsZXIpCit7CisgICAg
aWYgKGNvbXBsZXRpb25IYW5kbGVyKQorICAgICAgICBSdW5Mb29wOjptYWluKCkuZGlzcGF0Y2go
V1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcikpOworfQorCit2b2lkIFByb2Nlc3NBc3NlcnRpb246
OmFjcXVpcmVTeW5jKCkKK3sKK30KKwogUHJvY2Vzc0FuZFVJQXNzZXJ0aW9uOjpQcm9jZXNzQW5k
VUlBc3NlcnRpb24oUHJvY2Vzc0lEIHBpZCwgY29uc3QgU3RyaW5nJiByZWFzb24sIFByb2Nlc3NB
c3NlcnRpb25UeXBlIGFzc2VydGlvblR5cGUpCiAgICAgOiBQcm9jZXNzQXNzZXJ0aW9uKHBpZCwg
cmVhc29uLCBhc3NlcnRpb25UeXBlKQogewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvUHJvY2Vzc0Fzc2VydGlvbi5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvUHJvY2Vz
c0Fzc2VydGlvbi5oCmluZGV4IGViNzVjMmEyZTk1NTRmZDI1OWVmZWQyNzU1NzAyNmVlOWNhMDQ2
MDMuLjUxOGMwYTUzOGFhNTFhZmI5MmZiNzZmNWVmNWMwYjQ3Y2ZjNDVkY2IgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1Byb2Nlc3NBc3NlcnRpb24uaAorKysgYi9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9Qcm9jZXNzQXNzZXJ0aW9uLmgKQEAgLTI1LDggKzI1LDEwIEBACiAK
ICNwcmFnbWEgb25jZQogCisjaW5jbHVkZSA8d3RmL0NvbXBsZXRpb25IYW5kbGVyLmg+CiAjaW5j
bHVkZSA8d3RmL0Z1bmN0aW9uLmg+CiAjaW5jbHVkZSA8d3RmL1Byb2Nlc3NJRC5oPgorI2luY2x1
ZGUgPHd0Zi9UaHJlYWRTYWZlUmVmQ291bnRlZC5oPgogI2luY2x1ZGUgPHd0Zi9XZWFrUHRyLmg+
CiAjaW5jbHVkZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+CiAKQEAgLTUxLDEwICs1MywyMSBAQCBl
bnVtIGNsYXNzIFByb2Nlc3NBc3NlcnRpb25UeXBlIHsKICAgICBNZWRpYVBsYXliYWNrLAogfTsK
IAotY2xhc3MgUHJvY2Vzc0Fzc2VydGlvbiA6IHB1YmxpYyBDYW5NYWtlV2Vha1B0cjxQcm9jZXNz
QXNzZXJ0aW9uPiB7CitjbGFzcyBQcm9jZXNzQXNzZXJ0aW9uIDogcHVibGljIFRocmVhZFNhZmVS
ZWZDb3VudGVkPFByb2Nlc3NBc3NlcnRpb24+LCBwdWJsaWMgQ2FuTWFrZVdlYWtQdHI8UHJvY2Vz
c0Fzc2VydGlvbj4gewogICAgIFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOwogcHVibGljOgotICAg
IFByb2Nlc3NBc3NlcnRpb24oUHJvY2Vzc0lELCBjb25zdCBTdHJpbmcmIHJlYXNvbiwgUHJvY2Vz
c0Fzc2VydGlvblR5cGUpOworICAgIGVudW0gY2xhc3MgTW9kZSA6IGJvb2wgeyBTeW5jLCBBc3lu
YyB9OworICAgIHN0YXRpYyBSZWY8UHJvY2Vzc0Fzc2VydGlvbj4gY3JlYXRlKFByb2Nlc3NJRCBw
aWQsIGNvbnN0IFN0cmluZyYgcmVhc29uLCBQcm9jZXNzQXNzZXJ0aW9uVHlwZSB0eXBlLCBNb2Rl
IG1vZGUgPSBNb2RlOjpBc3luYywgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmIGFjcXVpc2lz
aW9uSGFuZGxlciA9IG51bGxwdHIpCisgICAgeworICAgICAgICBhdXRvIGFzc2VydGlvbiA9IGFk
b3B0UmVmKCpuZXcgUHJvY2Vzc0Fzc2VydGlvbihwaWQsIHJlYXNvbiwgdHlwZSkpOworICAgICAg
ICBpZiAobW9kZSA9PSBNb2RlOjpBc3luYykKKyAgICAgICAgICAgIGFzc2VydGlvbi0+YWNxdWly
ZUFzeW5jKFdURk1vdmUoYWNxdWlzaXNpb25IYW5kbGVyKSk7CisgICAgICAgIGVsc2UgeworICAg
ICAgICAgICAgYXNzZXJ0aW9uLT5hY3F1aXJlU3luYygpOworICAgICAgICAgICAgYWNxdWlzaXNp
b25IYW5kbGVyKCk7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIGFzc2VydGlvbjsKKyAgICB9
CiAgICAgdmlydHVhbCB+UHJvY2Vzc0Fzc2VydGlvbigpOwogCiAgICAgdm9pZCBzZXRJbnZhbGlk
YXRpb25IYW5kbGVyKEZ1bmN0aW9uPHZvaWQoKT4mJiBoYW5kbGVyKSB7IG1faW52YWxpZGF0aW9u
SGFuZGxlciA9IFdURk1vdmUoaGFuZGxlcik7IH0KQEAgLTY0LDI0ICs3Nyw0MSBAQCBwdWJsaWM6
CiAKICAgICBib29sIGlzVmFsaWQoKSBjb25zdDsKIAotI2lmIFBMQVRGT1JNKElPU19GQU1JTFkp
CiBwcm90ZWN0ZWQ6CisgICAgUHJvY2Vzc0Fzc2VydGlvbihQcm9jZXNzSUQsIGNvbnN0IFN0cmlu
ZyYgcmVhc29uLCBQcm9jZXNzQXNzZXJ0aW9uVHlwZSk7CisKKyAgICB2b2lkIGFjcXVpcmVBc3lu
YyhDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYpOworICAgIHZvaWQgYWNxdWlyZVN5bmMoKTsK
KworI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCiAgICAgdmlydHVhbCB2b2lkIHByb2Nlc3NBc3Nl
cnRpb25XYXNJbnZhbGlkYXRlZCgpOwogI2VuZGlmCiAKIHByaXZhdGU6CiAgICAgY29uc3QgUHJv
Y2Vzc0Fzc2VydGlvblR5cGUgbV9hc3NlcnRpb25UeXBlOwogICAgIGNvbnN0IFByb2Nlc3NJRCBt
X3BpZDsKKyAgICBjb25zdCBTdHJpbmcgbV9yZWFzb247CiAjaWYgUExBVEZPUk0oSU9TX0ZBTUlM
WSkKICAgICBSZXRhaW5QdHI8UkJTQXNzZXJ0aW9uPiBtX3Jic0Fzc2VydGlvbjsKICAgICBSZXRh
aW5QdHI8V0tSQlNBc3NlcnRpb25EZWxlZ2F0ZT4gbV9kZWxlZ2F0ZTsKKyAgICBib29sIG1fd2Fz
SW52YWxpZGF0ZWQgeyBmYWxzZSB9OwogI2VuZGlmCiAgICAgRnVuY3Rpb248dm9pZCgpPiBtX2lu
dmFsaWRhdGlvbkhhbmRsZXI7CiB9OwogCiBjbGFzcyBQcm9jZXNzQW5kVUlBc3NlcnRpb24gZmlu
YWwgOiBwdWJsaWMgUHJvY2Vzc0Fzc2VydGlvbiB7CiBwdWJsaWM6Ci0gICAgUHJvY2Vzc0FuZFVJ
QXNzZXJ0aW9uKFByb2Nlc3NJRCwgY29uc3QgU3RyaW5nJiByZWFzb24sIFByb2Nlc3NBc3NlcnRp
b25UeXBlKTsKKyAgICBzdGF0aWMgUmVmPFByb2Nlc3NBbmRVSUFzc2VydGlvbj4gY3JlYXRlKFBy
b2Nlc3NJRCBwaWQsIGNvbnN0IFN0cmluZyYgcmVhc29uLCBQcm9jZXNzQXNzZXJ0aW9uVHlwZSB0
eXBlLCBNb2RlIG1vZGUgPSBNb2RlOjpBc3luYywgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYm
IGFjcXVpc2lzaW9uSGFuZGxlciA9IG51bGxwdHIpCisgICAgeworICAgICAgICBhdXRvIGFzc2Vy
dGlvbiA9IGFkb3B0UmVmKCpuZXcgUHJvY2Vzc0FuZFVJQXNzZXJ0aW9uKHBpZCwgcmVhc29uLCB0
eXBlKSk7CisgICAgICAgIGlmIChtb2RlID09IE1vZGU6OkFzeW5jKQorICAgICAgICAgICAgYXNz
ZXJ0aW9uLT5hY3F1aXJlQXN5bmMoV1RGTW92ZShhY3F1aXNpc2lvbkhhbmRsZXIpKTsKKyAgICAg
ICAgZWxzZSB7CisgICAgICAgICAgICBhc3NlcnRpb24tPmFjcXVpcmVTeW5jKCk7CisgICAgICAg
ICAgICBhY3F1aXNpc2lvbkhhbmRsZXIoKTsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gYXNz
ZXJ0aW9uOworICAgIH0KICAgICB+UHJvY2Vzc0FuZFVJQXNzZXJ0aW9uKCk7CiAKICAgICB2b2lk
IHVpQXNzZXJ0aW9uV2lsbEV4cGlyZUltbWluZW50bHkoKTsKQEAgLTg5LDYgKzExOSw4IEBAIHB1
YmxpYzoKICAgICB2b2lkIHNldFVJQXNzZXJ0aW9uRXhwaXJhdGlvbkhhbmRsZXIoRnVuY3Rpb248
dm9pZCgpPiYmIGhhbmRsZXIpIHsgbV91aUFzc2VydGlvbkV4cGlyYXRpb25IYW5kbGVyID0gV1RG
TW92ZShoYW5kbGVyKTsgfQogCiBwcml2YXRlOgorICAgIFByb2Nlc3NBbmRVSUFzc2VydGlvbihQ
cm9jZXNzSUQsIGNvbnN0IFN0cmluZyYgcmVhc29uLCBQcm9jZXNzQXNzZXJ0aW9uVHlwZSk7CisK
ICNpZiBQTEFURk9STShJT1NfRkFNSUxZKQogICAgIHZvaWQgcHJvY2Vzc0Fzc2VydGlvbldhc0lu
dmFsaWRhdGVkKCkgZmluYWw7CiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL1Byb2Nlc3NUaHJvdHRsZXIuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvUHJv
Y2Vzc1Rocm90dGxlci5jcHAKaW5kZXggYzA5MTU5ZmE4ZTAwMGJlNDc3Nzc2ZTNkMzZkYmY1YmRk
MjY3MTJkZi4uNmEzMTEzOGM5MThlOGU2ZjkzZjMwNzNjOGFjZTEyNGJmODIxYjQxNiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvUHJvY2Vzc1Rocm90dGxlci5jcHAKKysrIGIv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvUHJvY2Vzc1Rocm90dGxlci5jcHAKQEAgLTEyOCwyMCAr
MTI4LDIxIEBAIHZvaWQgUHJvY2Vzc1Rocm90dGxlcjo6c2V0QXNzZXJ0aW9uVHlwZShQcm9jZXNz
QXNzZXJ0aW9uVHlwZSBuZXdUeXBlKQogCiAgICAgUFJPQ0VTU1RIUk9UVExFUl9SRUxFQVNFX0xP
Rygic2V0QXNzZXJ0aW9uVHlwZTogVXBkYXRpbmcgcHJvY2VzcyBhc3NlcnRpb24gdHlwZSB0byAl
dSAoZm9yZWdyb3VuZEFjdGl2aXRpZXM9JXUsIGJhY2tncm91bmRBY3Rpdml0aWVzPSV1KSIsIG5l
d1R5cGUsIG1fZm9yZWdyb3VuZEFjdGl2aXRpZXMuc2l6ZSgpLCBtX2JhY2tncm91bmRBY3Rpdml0
aWVzLnNpemUoKSk7CiAKLSAgICAvLyBLZWVwIHRoZSBwcmV2aW91cyBhc3NlcnRpb24gYXJvdW5k
IHVudGlsIGFmdGVyIHRoZSBuZXcgb25lIGhhcyBiZWVuIGNyZWF0ZWQgc28gdGhhdCB3ZSBhbHdh
eXMgaG9sZAotICAgIC8vIGEgcHJvY2VzcyBhc3NlcnRpb24gZm9yIHRoZSBwcm9jZXNzLgorICAg
IC8vIEtlZXAgdGhlIHByZXZpb3VzIGFzc2VydGlvbiBhY3RpdmUgdW50aWwgdGhlIG5ldyBhc3Nl
cnRpb24gaXMgdGFrZW4gYXN5bmNocm9ub3VzbHkuCiAgICAgYXV0byBwcmV2aW91c0Fzc2VydGlv
biA9IHN0ZDo6ZXhjaGFuZ2UobV9hc3NlcnRpb24sIG51bGxwdHIpOwogICAgIGlmIChtX3Nob3Vs
ZFRha2VVSUJhY2tncm91bmRBc3NlcnRpb24pIHsKLSAgICAgICAgYXV0byBhc3NlcnRpb24gPSBt
YWtlVW5pcXVlPFByb2Nlc3NBbmRVSUFzc2VydGlvbj4obV9wcm9jZXNzSWRlbnRpZmllciwgYXNz
ZXJ0aW9uTmFtZShuZXdUeXBlKSwgbmV3VHlwZSk7Ci0gICAgICAgIGFzc2VydGlvbi0+c2V0VUlB
c3NlcnRpb25FeHBpcmF0aW9uSGFuZGxlcihbdGhpc10gewotICAgICAgICAgICAgdWlBc3NlcnRp
b25XaWxsRXhwaXJlSW1taW5lbnRseSgpOworICAgICAgICBhdXRvIGFzc2VydGlvbiA9IFByb2Nl
c3NBbmRVSUFzc2VydGlvbjo6Y3JlYXRlKG1fcHJvY2Vzc0lkZW50aWZpZXIsIGFzc2VydGlvbk5h
bWUobmV3VHlwZSksIG5ld1R5cGUsIFByb2Nlc3NBc3NlcnRpb246Ok1vZGU6OkFzeW5jLCBbcHJl
dmlvdXNBc3NlcnRpb24gPSBXVEZNb3ZlKHByZXZpb3VzQXNzZXJ0aW9uKV0geyB9KTsKKyAgICAg
ICAgYXNzZXJ0aW9uLT5zZXRVSUFzc2VydGlvbkV4cGlyYXRpb25IYW5kbGVyKFt3ZWFrVGhpcyA9
IG1ha2VXZWFrUHRyKCp0aGlzKV0geworICAgICAgICAgICAgaWYgKHdlYWtUaGlzKQorICAgICAg
ICAgICAgICAgIHdlYWtUaGlzLT51aUFzc2VydGlvbldpbGxFeHBpcmVJbW1pbmVudGx5KCk7CiAg
ICAgICAgIH0pOwogICAgICAgICBtX2Fzc2VydGlvbiA9IFdURk1vdmUoYXNzZXJ0aW9uKTsKICAg
ICB9IGVsc2UKLSAgICAgICAgbV9hc3NlcnRpb24gPSBtYWtlVW5pcXVlPFByb2Nlc3NBc3NlcnRp
b24+KG1fcHJvY2Vzc0lkZW50aWZpZXIsIGFzc2VydGlvbk5hbWUobmV3VHlwZSksIG5ld1R5cGUp
OworICAgICAgICBtX2Fzc2VydGlvbiA9IFByb2Nlc3NBc3NlcnRpb246OmNyZWF0ZShtX3Byb2Nl
c3NJZGVudGlmaWVyLCBhc3NlcnRpb25OYW1lKG5ld1R5cGUpLCBuZXdUeXBlLCBQcm9jZXNzQXNz
ZXJ0aW9uOjpNb2RlOjpBc3luYywgW3ByZXZpb3VzQXNzZXJ0aW9uID0gV1RGTW92ZShwcmV2aW91
c0Fzc2VydGlvbildIHsgfSk7CiAKLSAgICBtX2Fzc2VydGlvbi0+c2V0SW52YWxpZGF0aW9uSGFu
ZGxlcihbdGhpc10gewotICAgICAgICBhc3NlcnRpb25XYXNJbnZhbGlkYXRlZCgpOworICAgIG1f
YXNzZXJ0aW9uLT5zZXRJbnZhbGlkYXRpb25IYW5kbGVyKFt3ZWFrVGhpcyA9IG1ha2VXZWFrUHRy
KCp0aGlzKV0geworICAgICAgICBpZiAod2Vha1RoaXMpCisgICAgICAgICAgICB3ZWFrVGhpcy0+
YXNzZXJ0aW9uV2FzSW52YWxpZGF0ZWQoKTsKICAgICB9KTsKICAgICBtX3Byb2Nlc3MuZGlkU2V0
QXNzZXJ0aW9uVHlwZShuZXdUeXBlKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL1Byb2Nlc3NUaHJvdHRsZXIuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1Byb2Nl
c3NUaHJvdHRsZXIuaAppbmRleCBiZDY4NWU3Y2NiMTdjZjJkODNiNTJkNDZkNzIwZmE2YzU5ZWZi
NDBjLi42OWE3YzU1NTI1MTdlYzU0YTU2NGVjNGQxY2M0ZGZhM2RjMjkyOGUwIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Qcm9jZXNzVGhyb3R0bGVyLmgKKysrIGIvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvUHJvY2Vzc1Rocm90dGxlci5oCkBAIC0xNDksNyArMTQ5LDcgQEAg
cHJpdmF0ZToKIAogICAgIFByb2Nlc3NUaHJvdHRsZXJDbGllbnQmIG1fcHJvY2VzczsKICAgICBQ
cm9jZXNzSUQgbV9wcm9jZXNzSWRlbnRpZmllciB7IDAgfTsKLSAgICBzdGQ6OnVuaXF1ZV9wdHI8
UHJvY2Vzc0Fzc2VydGlvbj4gbV9hc3NlcnRpb247CisgICAgUmVmUHRyPFByb2Nlc3NBc3NlcnRp
b24+IG1fYXNzZXJ0aW9uOwogICAgIFJ1bkxvb3A6OlRpbWVyPFByb2Nlc3NUaHJvdHRsZXI+IG1f
cHJlcGFyZVRvU3VzcGVuZFRpbWVvdXRUaW1lcjsKICAgICBIYXNoU2V0PEZvcmVncm91bmRBY3Rp
dml0eSo+IG1fZm9yZWdyb3VuZEFjdGl2aXRpZXM7CiAgICAgSGFzaFNldDxCYWNrZ3JvdW5kQWN0
aXZpdHkqPiBtX2JhY2tncm91bmRBY3Rpdml0aWVzOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Bvb2wuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
V2ViUHJvY2Vzc1Bvb2wuY3BwCmluZGV4IGJhOWU3Y2UzNDJkOWU2NjIxZGYzMDdiMTMwNjM2YmY2
MGZjNWM1Y2MuLjdjYmI4MjFmODY3MTA2MmI5MzI0YmJlNWNiMTAxMjJmZTk4ZGJlZDUgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQb29sLmNwcAorKysgYi9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUG9vbC5jcHAKQEAgLTIwMjgsOSArMjAy
OCw5IEBAIHZvaWQgV2ViUHJvY2Vzc1Bvb2w6OnVwZGF0ZUF1ZGlibGVNZWRpYUFzc2VydGlvbnMo
KQogCiAgICAgV0VCUFJPQ0VTU1BPT0xfUkVMRUFTRV9MT0coUHJvY2Vzc1N1c3BlbnNpb24sICJ1
cGRhdGVBdWRpYmxlTWVkaWFBc3NlcnRpb25zOiBUaGUgbnVtYmVyIG9mIHByb2Nlc3NlcyBwbGF5
aW5nIGF1ZGlibGUgbWVkaWEgaXMgbm93IGdyZWF0ZXIgdGhhbiB6ZXJvLiBUYWtpbmcgVUkgcHJv
Y2VzcyBhc3NlcnRpb24uIik7CiAgICAgbV9hdWRpYmxlTWVkaWFBY3Rpdml0eSA9IEF1ZGlibGVN
ZWRpYUFjdGl2aXR5IHsKLSAgICAgICAgbWFrZVVuaXF1ZVJlZjxQcm9jZXNzQXNzZXJ0aW9uPihn
ZXRDdXJyZW50UHJvY2Vzc0lEKCksICJXZWJLaXQgTWVkaWEgUGxheWJhY2siX3MsIFByb2Nlc3NB
c3NlcnRpb25UeXBlOjpNZWRpYVBsYXliYWNrKQorICAgICAgICBQcm9jZXNzQXNzZXJ0aW9uOjpj
cmVhdGUoZ2V0Q3VycmVudFByb2Nlc3NJRCgpLCAiV2ViS2l0IE1lZGlhIFBsYXliYWNrIl9zLCBQ
cm9jZXNzQXNzZXJ0aW9uVHlwZTo6TWVkaWFQbGF5YmFjaykKICNpZiBFTkFCTEUoR1BVX1BST0NF
U1MpCi0gICAgICAgICwgZ3B1UHJvY2VzcygpID8gbWFrZVVuaXF1ZTxQcm9jZXNzQXNzZXJ0aW9u
PihncHVQcm9jZXNzKCktPnByb2Nlc3NJZGVudGlmaWVyKCksICJXZWJLaXQgTWVkaWEgUGxheWJh
Y2siX3MsIFByb2Nlc3NBc3NlcnRpb25UeXBlOjpNZWRpYVBsYXliYWNrKSA6IG51bGxwdHIKKyAg
ICAgICAgLCBncHVQcm9jZXNzKCkgPyBSZWZQdHI8UHJvY2Vzc0Fzc2VydGlvbj4geyBQcm9jZXNz
QXNzZXJ0aW9uOjpjcmVhdGUoZ3B1UHJvY2VzcygpLT5wcm9jZXNzSWRlbnRpZmllcigpLCAiV2Vi
S2l0IE1lZGlhIFBsYXliYWNrIl9zLCBQcm9jZXNzQXNzZXJ0aW9uVHlwZTo6TWVkaWFQbGF5YmFj
aykgfSA6IG51bGxwdHIKICNlbmRpZgogICAgIH07CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUG9vbC5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
V2ViUHJvY2Vzc1Bvb2wuaAppbmRleCAyOTM2MWEwNDg1MWI0YmU2YjI0ZmViMzZjMzQ1MjY2MWI4
NGNiMjYyLi40ZWY1NDFkMDc5ZTE3ZDBjNjQ0NzQ2YWVkMjQ5NjA5Mjk0MTdiYjM2IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUG9vbC5oCisrKyBiL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQb29sLmgKQEAgLTc2Myw5ICs3NjMsOSBAQCBw
cml2YXRlOgogICAgIFdlYlByb2Nlc3NXaXRoQXVkaWJsZU1lZGlhQ291bnRlciBtX3dlYlByb2Nl
c3NXaXRoQXVkaWJsZU1lZGlhQ291bnRlcjsKIAogICAgIHN0cnVjdCBBdWRpYmxlTWVkaWFBY3Rp
dml0eSB7Ci0gICAgICAgIFVuaXF1ZVJlZjxQcm9jZXNzQXNzZXJ0aW9uPiB1aVByb2Nlc3NNZWRp
YVBsYXliYWNrQXNzZXJ0aW9uOworICAgICAgICBSZWY8UHJvY2Vzc0Fzc2VydGlvbj4gdWlQcm9j
ZXNzTWVkaWFQbGF5YmFja0Fzc2VydGlvbjsKICNpZiBFTkFCTEUoR1BVX1BST0NFU1MpCi0gICAg
ICAgIHN0ZDo6dW5pcXVlX3B0cjxQcm9jZXNzQXNzZXJ0aW9uPiBncHVQcm9jZXNzTWVkaWFQbGF5
YmFja0Fzc2VydGlvbjsKKyAgICAgICAgUmVmUHRyPFByb2Nlc3NBc3NlcnRpb24+IGdwdVByb2Nl
c3NNZWRpYVBsYXliYWNrQXNzZXJ0aW9uOwogI2VuZGlmCiAgICAgfTsKICAgICBzdGQ6Om9wdGlv
bmFsPEF1ZGlibGVNZWRpYUFjdGl2aXR5PiBtX2F1ZGlibGVNZWRpYUFjdGl2aXR5OwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5LmNwcCBiL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5jcHAKaW5kZXggOThiODM2OTBlYzUw
YmNjZDg4NjZjZGI0YzdkYzlkODNjNzgyOTJkZS4uMjM3NjIwNjgxOWU1NGNjM2IxMjFhNjg2OWIw
ZjJhOTcyM2RmOTAxYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJv
Y2Vzc1Byb3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUHJv
eHkuY3BwCkBAIC0xNDg3LDcgKzE0ODcsNyBAQCB2b2lkIFdlYlByb2Nlc3NQcm94eTo6dXBkYXRl
QXVkaWJsZU1lZGlhQXNzZXJ0aW9ucygpCiAgICAgaWYgKG5ld0hhc0F1ZGlibGVXZWJQYWdlKSB7
CiAgICAgICAgIFdFQlBST0NFU1NQUk9YWV9SRUxFQVNFX0xPRyhQcm9jZXNzU3VzcGVuc2lvbiwg
InVwZGF0ZUF1ZGlibGVNZWRpYUFzc2VydGlvbnM6IFRha2luZyBNZWRpYVBsYXliYWNrIGFzc2Vy
dGlvbiBmb3IgV2ViUHJvY2VzcyIpOwogICAgICAgICBtX2F1ZGlibGVNZWRpYUFjdGl2aXR5ID0g
QXVkaWJsZU1lZGlhQWN0aXZpdHkgewotICAgICAgICAgICAgbWFrZVVuaXF1ZVJlZjxQcm9jZXNz
QXNzZXJ0aW9uPihwcm9jZXNzSWRlbnRpZmllcigpLCAiV2ViS2l0IE1lZGlhIFBsYXliYWNrIl9z
LCBQcm9jZXNzQXNzZXJ0aW9uVHlwZTo6TWVkaWFQbGF5YmFjayksCisgICAgICAgICAgICBQcm9j
ZXNzQXNzZXJ0aW9uOjpjcmVhdGUocHJvY2Vzc0lkZW50aWZpZXIoKSwgIldlYktpdCBNZWRpYSBQ
bGF5YmFjayJfcywgUHJvY2Vzc0Fzc2VydGlvblR5cGU6Ok1lZGlhUGxheWJhY2spLAogICAgICAg
ICAgICAgcHJvY2Vzc1Bvb2woKS53ZWJQcm9jZXNzV2l0aEF1ZGlibGVNZWRpYVRva2VuKCkKICAg
ICAgICAgfTsKICAgICB9IGVsc2UgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvV2ViUHJvY2Vzc1Byb3h5LmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNz
UHJveHkuaAppbmRleCBlMjI1ZmY0NjdkYzg0YjU3NmRjMjVkNjYyNTAyOGI2MDE5Y2Y1ZTg5Li5i
OTZlMzUyYmJiOTk4YjU2ZDU5MTE0N2RhYzY1ODkyODUxMDg4NzYwIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkuaAorKysgYi9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkuaApAQCAtNjM2LDcgKzYzNiw3IEBAIHByaXZhdGU6
CiAgICAgSGFzaE1hcDxXZWJDb3JlOjpTbGVlcERpc2FibGVySWRlbnRpZmllciwgc3RkOjp1bmlx
dWVfcHRyPFdlYkNvcmU6OlNsZWVwRGlzYWJsZXI+PiBtX3NsZWVwRGlzYWJsZXJzOwogCiAgICAg
c3RydWN0IEF1ZGlibGVNZWRpYUFjdGl2aXR5IHsKLSAgICAgICAgVW5pcXVlUmVmPFByb2Nlc3NB
c3NlcnRpb24+IGFzc2VydGlvbjsKKyAgICAgICAgUmVmPFByb2Nlc3NBc3NlcnRpb24+IGFzc2Vy
dGlvbjsKICAgICAgICAgV2ViUHJvY2Vzc1dpdGhBdWRpYmxlTWVkaWFUb2tlbiB0b2tlbjsKICAg
ICB9OwogICAgIHN0ZDo6b3B0aW9uYWw8QXVkaWJsZU1lZGlhQWN0aXZpdHk+IG1fYXVkaWJsZU1l
ZGlhQWN0aXZpdHk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvUHJv
Y2Vzc0Fzc2VydGlvbklPUy5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9Qcm9jZXNz
QXNzZXJ0aW9uSU9TLm1tCmluZGV4IGFiMjdlZGViYTJhZTZlNWNmMmFiOGFlMGNkMTM3MjgzZmUx
MjgzZTEuLjg0YWUzN2Q3MWU1MGZmYTZlNjg4N2QxOWM3YWRmNDhiNmEzYmE3YWYgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9Qcm9jZXNzQXNzZXJ0aW9uSU9TLm1tCisr
KyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9Qcm9jZXNzQXNzZXJ0aW9uSU9TLm1tCkBA
IC00MSw2ICs0MSwxMiBAQAogCiB1c2luZyBXZWJLaXQ6OlByb2Nlc3NBbmRVSUFzc2VydGlvbjsK
IAorc3RhdGljIFdvcmtRdWV1ZSYgYXNzZXJ0aW9uc1dvcmtRdWV1ZSgpCit7CisgICAgc3RhdGlj
IE5ldmVyRGVzdHJveWVkPFJlZjxXb3JrUXVldWU+PiB3b3JrUXVldWUoV29ya1F1ZXVlOjpjcmVh
dGUoIlByb2Nlc3NBc3NlcnRpb24gUXVldWUiKSk7CisgICAgcmV0dXJuIHdvcmtRdWV1ZS5nZXQo
KTsKK30KKwogLy8gVGhpcyBnaXZlcyBzb21lIHRpbWUgdG8gb3VyIGNoaWxkIHByb2Nlc3NlcyB0
byBwcm9jZXNzIHRoZSBQcm9jZXNzV2lsbFN1c3BlbmRJbW1pbmVudGx5IElQQyBidXQgbWFrZXMg
c3VyZSB3ZSByZWxlYXNlCiAvLyB0aGUgYmFja2dyb3VuZCB0YXNrIGJlZm9yZSB0aGUgVUlLaXQg
dGltZW91dCAoV2UgZ2V0IGtpbGxlZCBpZiB3ZSBkbyBub3QgcmVsZWFzZSB0aGUgYmFja2dyb3Vu
ZCB0YXNrIHdpdGhpbiA1IHNlY29uZHMKIC8vIG9uIHRoZSBleHBpcmF0aW9uIGhhbmRsZXIgZ2V0
dGluZyBjYWxsZWQpLgpAQCAtNjQsNiArNzAsNyBAQCBAZW5kCiBAaW1wbGVtZW50YXRpb24gV0tQ
cm9jZXNzQXNzZXJ0aW9uQmFja2dyb3VuZFRhc2tNYW5hZ2VyCiB7CiAgICAgUmV0YWluUHRyPFJC
U0Fzc2VydGlvbj4gX2JhY2tncm91bmRUYXNrOworICAgIHN0ZDo6YXRvbWljPGJvb2w+IF9iYWNr
Z3JvdW5kVGFza1dhc0ludmFsaWRhdGVkOwogICAgIFdlYWtIYXNoU2V0PFByb2Nlc3NBbmRVSUFz
c2VydGlvbj4gX2Fzc2VydGlvbnNOZWVkaW5nQmFja2dyb3VuZFRhc2s7CiAgICAgZGlzcGF0Y2hf
YmxvY2tfdCBfcGVuZGluZ1Rhc2tSZWxlYXNlVGFzazsKIH0KQEAgLTE2MCw3ICsxNjcsNyBAQCAt
IChCT09MKV9oYXNCYWNrZ3JvdW5kVGFzawogCiAtICh2b2lkKV91cGRhdGVCYWNrZ3JvdW5kVGFz
awogewotICAgIGlmICghX2Fzc2VydGlvbnNOZWVkaW5nQmFja2dyb3VuZFRhc2suY29tcHV0ZXNF
bXB0eSgpICYmICFbc2VsZiBfaGFzQmFja2dyb3VuZFRhc2tdKSB7CisgICAgaWYgKCFfYXNzZXJ0
aW9uc05lZWRpbmdCYWNrZ3JvdW5kVGFzay5jb21wdXRlc0VtcHR5KCkgJiYgKCFbc2VsZiBfaGFz
QmFja2dyb3VuZFRhc2tdIHx8IF9iYWNrZ3JvdW5kVGFza1dhc0ludmFsaWRhdGVkKSkgewogICAg
ICAgICBpZiAocHJvY2Vzc0hhc0FjdGl2ZVJ1blRpbWVMaW1pdGF0aW9uKCkpIHsKICAgICAgICAg
ICAgIFJFTEVBU0VfTE9HKFByb2Nlc3NTdXNwZW5zaW9uLCAiJXAgLSBXS1Byb2Nlc3NBc3NlcnRp
b25CYWNrZ3JvdW5kVGFza01hbmFnZXI6IElnbm9yZWQgcmVxdWVzdCB0byBzdGFydCBhIG5ldyBi
YWNrZ3JvdW5kIHRhc2sgYmVjYXVzZSBSdW5uaW5nQm9hcmQgaGFzIGFscmVhZHkgc3RhcnRlZCB0
aGUgZXhwaXJhdGlvbiB0aW1lciIsIHNlbGYpOwogICAgICAgICAgICAgcmV0dXJuOwpAQCAtMTcx
LDExICsxNzgsOSBAQCAtICh2b2lkKV91cGRhdGVCYWNrZ3JvdW5kVGFzawogICAgICAgICBfYmFj
a2dyb3VuZFRhc2sgPSBhZG9wdE5TKFtbUkJTQXNzZXJ0aW9uIGFsbG9jXSBpbml0V2l0aEV4cGxh
bmF0aW9uOkAiV2ViS2l0IFVJUHJvY2VzcyBiYWNrZ3JvdW5kIHRhc2siIHRhcmdldDp0YXJnZXQg
YXR0cmlidXRlczpAW2RvbWFpbkF0dHJpYnV0ZV1dKTsKICAgICAgICAgW19iYWNrZ3JvdW5kVGFz
ayBhZGRPYnNlcnZlcjpzZWxmXTsKIAotICAgICAgICBOU0Vycm9yICphY3F1aXNpdGlvbkVycm9y
ID0gbmlsOwotICAgICAgICBpZiAoIVtfYmFja2dyb3VuZFRhc2sgYWNxdWlyZVdpdGhFcnJvcjom
YWNxdWlzaXRpb25FcnJvcl0pCi0gICAgICAgICAgICBSRUxFQVNFX0xPR19FUlJPUihQcm9jZXNz
U3VzcGVuc2lvbiwgIldLUHJvY2Vzc0Fzc2VydGlvbkJhY2tncm91bmRUYXNrTWFuYWdlcjogRmFp
bGVkIHRvIGFjcXVpcmUgRmluaXNoVGFza0ludGVycnVwdGFibGUgYXNzZXJ0aW9uIGZvciBvd24g
cHJvY2VzcywgZXJyb3I6ICV7cHVibGljfUAiLCBhY3F1aXNpdGlvbkVycm9yKTsKLSAgICAgICAg
ZWxzZQotICAgICAgICAgICAgUkVMRUFTRV9MT0coUHJvY2Vzc1N1c3BlbnNpb24sICJXS1Byb2Nl
c3NBc3NlcnRpb25CYWNrZ3JvdW5kVGFza01hbmFnZXI6IFN1Y2Nlc3NmdWxseSB0b29rIGEgRmlu
aXNoVGFza0ludGVycnVwdGFibGUgYXNzZXJ0aW9uIGZvciBvd24gcHJvY2VzcyIpOworICAgICAg
ICBfYmFja2dyb3VuZFRhc2tXYXNJbnZhbGlkYXRlZCA9IGZhbHNlOworICAgICAgICBbX2JhY2tn
cm91bmRUYXNrIGFjcXVpcmVXaXRoSW52YWxpZGF0aW9uSGFuZGxlcjpuaWxdOworICAgICAgICBS
RUxFQVNFX0xPRyhQcm9jZXNzU3VzcGVuc2lvbiwgIldLUHJvY2Vzc0Fzc2VydGlvbkJhY2tncm91
bmRUYXNrTWFuYWdlcjogVG9vayBhIEZpbmlzaFRhc2tJbnRlcnJ1cHRhYmxlIGFzc2VydGlvbiBm
b3Igb3duIHByb2Nlc3MiKTsKICAgICB9IGVsc2UgaWYgKF9hc3NlcnRpb25zTmVlZGluZ0JhY2tn
cm91bmRUYXNrLmNvbXB1dGVzRW1wdHkoKSkgewogICAgICAgICAvLyBSZWxlYXNlIHRoZSBiYWNr
Z3JvdW5kIHRhc2sgYXN5bmNocm9ub3VzbHkgYmVjYXVzZSByZWxlYXNpbmcgdGhlIGJhY2tncm91
bmQgdGFzayBtYXkgZGVzdHJveSB0aGUgUHJvY2Vzc1Rocm90dGxlciBhbmQgd2UgZG9uJ3QKICAg
ICAgICAgLy8gd2FudCBpdCB0byBnZXQgZGVzdHJveWVkIHdoaWxlIGluIHRoZSBtaWRkbGUgb2Yg
dXBkYXRpbmcgaXRzIGFzc2VydGlvbi4KQEAgLTE5Niw2ICsyMDEsNyBAQCAtICh2b2lkKWFzc2Vy
dGlvbjooUkJTQXNzZXJ0aW9uICopYXNzZXJ0aW9uIGRpZEludmFsaWRhdGVXaXRoRXJyb3I6KE5T
RXJyb3IgKillcgogewogICAgIEFTU0VSVChhc3NlcnRpb24gPT0gX2JhY2tncm91bmRUYXNrLmdl
dCgpKTsKICAgICBSRUxFQVNFX0xPR19FUlJPUihQcm9jZXNzU3VzcGVuc2lvbiwgIldLUHJvY2Vz
c0Fzc2VydGlvbkJhY2tncm91bmRUYXNrTWFuYWdlcjogRmluaXNoVGFza0ludGVycnVwdGFibGUg
YXNzZXJ0aW9uIHdhcyBpbnZhbGlkYXRlZCwgZXJyb3I6ICV7cHVibGljfUAiLCBlcnJvcik7Cisg
ICAgX2JhY2tncm91bmRUYXNrV2FzSW52YWxpZGF0ZWQgPSB0cnVlOwogfQogCiAtICh2b2lkKV9o
YW5kbGVCYWNrZ3JvdW5kVGFza0V4cGlyYXRpb24KQEAgLTI5NywxMSArMzAzLDEzIEBAIHN0YXRp
YyBOU1N0cmluZyAqcnVubmluZ0JvYXJkTmFtZUZvckFzc2VydGlvblR5cGUoUHJvY2Vzc0Fzc2Vy
dGlvblR5cGUgYXNzZXJ0aW9uCiBQcm9jZXNzQXNzZXJ0aW9uOjpQcm9jZXNzQXNzZXJ0aW9uKHBp
ZF90IHBpZCwgY29uc3QgU3RyaW5nJiByZWFzb24sIFByb2Nlc3NBc3NlcnRpb25UeXBlIGFzc2Vy
dGlvblR5cGUpCiAgICAgOiBtX2Fzc2VydGlvblR5cGUoYXNzZXJ0aW9uVHlwZSkKICAgICAsIG1f
cGlkKHBpZCkKKyAgICAsIG1fcmVhc29uKHJlYXNvbikKIHsKICAgICBOU1N0cmluZyAqcnVubmlu
Z0JvYXJkQXNzZXJ0aW9uTmFtZSA9IHJ1bm5pbmdCb2FyZE5hbWVGb3JBc3NlcnRpb25UeXBlKGFz
c2VydGlvblR5cGUpOwogICAgIEFTU0VSVChydW5uaW5nQm9hcmRBc3NlcnRpb25OYW1lKTsKICAg
ICBpZiAoIXBpZCkgewogICAgICAgICBSRUxFQVNFX0xPR19FUlJPUihQcm9jZXNzU3VzcGVuc2lv
biwgIiVwIC0gUHJvY2Vzc0Fzc2VydGlvbjogRmFpbGVkIHRvIGFjcXVpcmUgUkJTICV7cHVibGlj
fUAgYXNzZXJ0aW9uICcle3B1YmxpY31zJyBmb3IgcHJvY2VzcyBiZWNhdXNlIFBJRCBpcyBpbnZh
bGlkIiwgdGhpcywgcnVubmluZ0JvYXJkQXNzZXJ0aW9uTmFtZSwgcmVhc29uLnV0ZjgoKS5kYXRh
KCkpOworICAgICAgICBtX3dhc0ludmFsaWRhdGVkID0gdHJ1ZTsKICAgICAgICAgcmV0dXJuOwog
ICAgIH0KIApAQCAtMzEyLDI0ICszMjAsMzYgQEAgUHJvY2Vzc0Fzc2VydGlvbjo6UHJvY2Vzc0Fz
c2VydGlvbihwaWRfdCBwaWQsIGNvbnN0IFN0cmluZyYgcmVhc29uLCBQcm9jZXNzQXNzZXIKICAg
ICBtX2RlbGVnYXRlID0gYWRvcHROUyhbW1dLUkJTQXNzZXJ0aW9uRGVsZWdhdGUgYWxsb2NdIGlu
aXRdKTsKICAgICBbbV9yYnNBc3NlcnRpb24gYWRkT2JzZXJ2ZXI6bV9kZWxlZ2F0ZS5nZXQoKV07
CiAgICAgbV9kZWxlZ2F0ZS5nZXQoKS5pbnZhbGlkYXRpb25DYWxsYmFjayA9IF57Ci0gICAgICAg
IFJFTEVBU0VfTE9HKFByb2Nlc3NTdXNwZW5zaW9uLCAiJXAgLSBQcm9jZXNzQXNzZXJ0aW9uKCkg
UkJTICV7cHVibGljfUAgYXNzZXJ0aW9uIGZvciBwcm9jZXNzIHdpdGggUElEPSVkIHdhcyBpbnZh
bGlkYXRlZCIsIHRoaXMsIHJ1bm5pbmdCb2FyZEFzc2VydGlvbk5hbWUsIHBpZCk7CisgICAgICAg
IFJFTEVBU0VfTE9HKFByb2Nlc3NTdXNwZW5zaW9uLCAiJXAgLSBQcm9jZXNzQXNzZXJ0aW9uOiBS
QlMgJXtwdWJsaWN9QCBhc3NlcnRpb24gZm9yIHByb2Nlc3Mgd2l0aCBQSUQ9JWQgd2FzIGludmFs
aWRhdGVkIiwgdGhpcywgcnVubmluZ0JvYXJkQXNzZXJ0aW9uTmFtZSwgcGlkKTsKICAgICAgICAg
cHJvY2Vzc0Fzc2VydGlvbldhc0ludmFsaWRhdGVkKCk7CiAgICAgfTsKK30KIAordm9pZCBQcm9j
ZXNzQXNzZXJ0aW9uOjphY3F1aXJlQXN5bmMoQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmIGNv
bXBsZXRpb25IYW5kbGVyKQoreworICAgIGFzc2VydGlvbnNXb3JrUXVldWUoKS5kaXNwYXRjaChb
cHJvdGVjdGVkVGhpcyA9IG1ha2VSZWYoKnRoaXMpLCBjb21wbGV0aW9uSGFuZGxlciA9IFdURk1v
dmUoY29tcGxldGlvbkhhbmRsZXIpXSgpIG11dGFibGUgeworICAgICAgICBwcm90ZWN0ZWRUaGlz
LT5hY3F1aXJlU3luYygpOworICAgICAgICBpZiAoY29tcGxldGlvbkhhbmRsZXIpCisgICAgICAg
ICAgICBSdW5Mb29wOjptYWluKCkuZGlzcGF0Y2goV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcikp
OworICAgIH0pOworfQorCit2b2lkIFByb2Nlc3NBc3NlcnRpb246OmFjcXVpcmVTeW5jKCkKK3sK
ICAgICBOU0Vycm9yICphY3F1aXNpdGlvbkVycm9yID0gbmlsOwogICAgIGlmICghW21fcmJzQXNz
ZXJ0aW9uIGFjcXVpcmVXaXRoRXJyb3I6JmFjcXVpc2l0aW9uRXJyb3JdKSB7Ci0gICAgICAgIFJF
TEVBU0VfTE9HX0VSUk9SKFByb2Nlc3NTdXNwZW5zaW9uLCAiJXAgLSBQcm9jZXNzQXNzZXJ0aW9u
OiBGYWlsZWQgdG8gYWNxdWlyZSBSQlMgJXtwdWJsaWN9QCBhc3NlcnRpb24gJyV7cHVibGljfXMn
IGZvciBwcm9jZXNzIHdpdGggUElEPSVkLCBlcnJvcjogJXtwdWJsaWN9QCIsIHRoaXMsIHJ1bm5p
bmdCb2FyZEFzc2VydGlvbk5hbWUsIHJlYXNvbi51dGY4KCkuZGF0YSgpLCBwaWQsIGFjcXVpc2l0
aW9uRXJyb3IpOworICAgICAgICBSRUxFQVNFX0xPR19FUlJPUihQcm9jZXNzU3VzcGVuc2lvbiwg
IiVwIC0gUHJvY2Vzc0Fzc2VydGlvbjogRmFpbGVkIHRvIGFjcXVpcmUgUkJTIGFzc2VydGlvbiAn
JXtwdWJsaWN9cycgZm9yIHByb2Nlc3Mgd2l0aCBQSUQ9JWQsIGVycm9yOiAle3B1YmxpY31AIiwg
dGhpcywgbV9yZWFzb24udXRmOCgpLmRhdGEoKSwgbV9waWQsIGFjcXVpc2l0aW9uRXJyb3IpOwog
ICAgICAgICBSdW5Mb29wOjptYWluKCkuZGlzcGF0Y2goW3dlYWtUaGlzID0gbWFrZVdlYWtQdHIo
KnRoaXMpXSB7CiAgICAgICAgICAgICBpZiAod2Vha1RoaXMpCiAgICAgICAgICAgICAgICAgd2Vh
a1RoaXMtPnByb2Nlc3NBc3NlcnRpb25XYXNJbnZhbGlkYXRlZCgpOwogICAgICAgICB9KTsKICAg
ICB9IGVsc2UKLSAgICAgICAgUkVMRUFTRV9MT0coUHJvY2Vzc1N1c3BlbnNpb24sICIlcCAtIFBy
b2Nlc3NBc3NlcnRpb246IFN1Y2Nlc3NmdWxseSB0b29rIFJCUyAle3B1YmxpY31AIGFzc2VydGlv
biAnJXtwdWJsaWN9cycgZm9yIHByb2Nlc3Mgd2l0aCBQSUQ9JWQiLCB0aGlzLCBydW5uaW5nQm9h
cmRBc3NlcnRpb25OYW1lLCByZWFzb24udXRmOCgpLmRhdGEoKSwgcGlkKTsKKyAgICAgICAgUkVM
RUFTRV9MT0coUHJvY2Vzc1N1c3BlbnNpb24sICIlcCAtIFByb2Nlc3NBc3NlcnRpb246IFN1Y2Nl
c3NmdWxseSB0b29rIFJCUyBhc3NlcnRpb24gJyV7cHVibGljfXMnIGZvciBwcm9jZXNzIHdpdGgg
UElEPSVkIiwgdGhpcywgbV9yZWFzb24udXRmOCgpLmRhdGEoKSwgbV9waWQpOwogfQogCiBQcm9j
ZXNzQXNzZXJ0aW9uOjp+UHJvY2Vzc0Fzc2VydGlvbigpCiB7Ci0gICAgUkVMRUFTRV9MT0coUHJv
Y2Vzc1N1c3BlbnNpb24sICIlcCAtIH5Qcm9jZXNzQXNzZXJ0aW9uKCkgUmVsZWFzaW5nIHByb2Nl
c3MgYXNzZXJ0aW9uIGZvciBwcm9jZXNzIHdpdGggUElEPSVkIiwgdGhpcywgbV9waWQpOworICAg
IFJFTEVBU0VfTE9HKFByb2Nlc3NTdXNwZW5zaW9uLCAiJXAgLSB+UHJvY2Vzc0Fzc2VydGlvbjog
UmVsZWFzaW5nIHByb2Nlc3MgYXNzZXJ0aW9uICcle3B1YmxpY31zJyBmb3IgcHJvY2VzcyB3aXRo
IFBJRD0lZCIsIHRoaXMsIG1fcmVhc29uLnV0ZjgoKS5kYXRhKCksIG1fcGlkKTsKIAogICAgIGlm
IChtX3Jic0Fzc2VydGlvbikgewogICAgICAgICBtX2RlbGVnYXRlLmdldCgpLmludmFsaWRhdGlv
bkNhbGxiYWNrID0gbmlsOwpAQCAtMzQ0LDEzICszNjQsMTQgQEAgdm9pZCBQcm9jZXNzQXNzZXJ0
aW9uOjpwcm9jZXNzQXNzZXJ0aW9uV2FzSW52YWxpZGF0ZWQoKQogICAgIEFTU0VSVChSdW5Mb29w
Ojppc01haW4oKSk7CiAgICAgUkVMRUFTRV9MT0coUHJvY2Vzc1N1c3BlbnNpb24sICIlcCAtIFBy
b2Nlc3NBc3NlcnRpb246OnByb2Nlc3NBc3NlcnRpb25XYXNJbnZhbGlkYXRlZCgpIFBJRD0lZCIs
IHRoaXMsIG1fcGlkKTsKIAorICAgIG1fd2FzSW52YWxpZGF0ZWQgPSB0cnVlOwogICAgIGlmICht
X2ludmFsaWRhdGlvbkhhbmRsZXIpCiAgICAgICAgIG1faW52YWxpZGF0aW9uSGFuZGxlcigpOwog
fQogCiBib29sIFByb2Nlc3NBc3NlcnRpb246OmlzVmFsaWQoKSBjb25zdAogewotICAgIHJldHVy
biBtX3Jic0Fzc2VydGlvbiAmJiBtX3Jic0Fzc2VydGlvbi5nZXQoKS52YWxpZDsKKyAgICByZXR1
cm4gIW1fd2FzSW52YWxpZGF0ZWQ7CiB9CiAKIHZvaWQgUHJvY2Vzc0FuZFVJQXNzZXJ0aW9uOjp1
cGRhdGVSdW5JbkJhY2tncm91bmRDb3VudCgpCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>432819</attachid>
            <date>2021-07-02 13:43:13 -0700</date>
            <delta_ts>2021-07-02 16:18:10 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-225324-20210702134313.patch</filename>
            <type>text/plain</type>
            <size>32421</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc5NTE0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IGVjZjBkOGJiOTBhNTAxN2Qy
ZmMwZTM0ZDZiMjI0ZmY5YjVhNjk5NDMuLjc3NTRlNjlmMjQ1MTdjNDZmMDk2ZjM5YjZkMzNiNTAx
YzM0YjE0M2QgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNzAgQEAKKzIwMjEtMDctMDEgIENocmlzIER1
bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KKworICAgICAgICBbaU9TXSBIYXZlIFByb2Nlc3NBc3Nl
cnRpb24gdGFrZSB0aGUgUnVubmluZ0JvYXJkIGFzc2VydGlvbiBhc3luY2hyb25vdXNseSBieSBk
ZWZhdWx0CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0y
MjUzMjQKKyAgICAgICAgPHJkYXI6Ly83Njk3MjI1Mj4KKworICAgICAgICBSZXZpZXdlZCBieSBO
T0JPRFkgKE9PUFMhKS4KKworICAgICAgICBIYXZlIFByb2Nlc3NBc3NlcnRpb24gdGFrZSB0aGUg
UnVubmluZ0JvYXJkIGFzc2VydGlvbiBhc3luY2hyb25vdXNseSAob24gYSBiYWNrZ3JvdW5kIHRo
cmVhZCkgYnkKKyAgICAgICAgZGVmYXVsdCBhcyB3ZSBoYXZlIGV2aWRlbmNlIHRoYXQgZG9pbmcg
c28gb24gdGhlIG1haW4gdGhyZWFkIGlzIGJhZCBmb3IgcGVyZm9ybWFuY2UgYW5kIG1heQorICAg
ICAgICBuZWdhdGl2ZWx5IGltcGFjdCBsYXVuY2ggdGltZS4KKworICAgICAgICBXaGVuIGNvbnN0
cnVjdGluZyBhIFByb2Nlc3NBc3NlcnRpb24sIHRoZSBjYWxsZXIgY2FuIG5vdyBpbmRpY2F0ZSBp
ZiBpdCB3YW50cyB0aGUgYXNzZXJ0aW9uIHRvIGJlCisgICAgICAgIHRha2VuIGFzeW5jaHJvbm91
c2x5IChkZWZhdWx0KSBvciBub3QuIEJ1ZyAyMjc1NTIgaXMgYW4gZXhhbXBsZSBvZiBhIGNhc2Ug
d2hlcmUgd2Ugc3RpbGwgd2FudCB0bworICAgICAgICB0YWtlIHRoZSBhc3NlcnRpb24gc3luY2hy
b25vdXNseSAoYmVjYXVzZSB3ZSdyZSBub3Qgb24gdGhlIG1haW4gdGhyZWFkIGFuZCB3ZSBuZWVk
IHRvIG1ha2Ugc3VyZQorICAgICAgICB3ZSBoYXZlIHRoZSBhc3NlcnRpb24gYmVmb3JlIHByb2Nl
ZWRpbmcpLgorCisgICAgICAgIFRoZSBjYWxsZXIgY2FuIGFsc28gcHJvdmlkZSBhIGNvbXBsZXRp
b24gaGFuZGxlciB0aGF0IHdpbGwgZ2V0IGNhbGxlZCBvbmNlIHRoZSBSdW5uaW5nQm9hcmQgaXMK
KyAgICAgICAgdGFrZW4uIE5vdGUgdGhhdCB0aGUgUnVubmluZ0JvYXJkIGFzeW5jIEFQSSAoW1JC
U0Fzc2VydGlvbiBhY3F1aXJlV2l0aEludmFsaWRhdGlvbkhhbmRsZXJdKSBkb2VzCisgICAgICAg
IG5vdCBwcm92aWRlIGEgd2F5IGZvciB1cyB0byBrbm93IHdoZW4gdGhlIGFzc2VydGlvbiBpcyB0
YWtlbi4gRm9yIHRoaXMgcmVhc29uLCBQcm9jZXNzQXNzZXJ0aW9uCisgICAgICAgIGtlZXBzIHVz
aW5nIHRoZSBSdW5uaW5nQm9hcmQgc3luYyBBUEkgKFtSQlNBc3NlcnRpb24gYWNxdWlyZVdpdGhF
cnJvcjpdKSBidXQgY2FsbHMgaW4gb24gYQorICAgICAgICBiYWNrZ3JvdW5kIHF1ZXVlLgorCisg
ICAgICAgIEZvciB0aGUgVUlQcm9jZXNzJ3MgYmFja2dyb3VuZCB0YXNrIHRob3VnaCwgd2UgZG9u
J3QgbmVlZCB0byBrbm93IHdoZW4gdGhlIGFzc2VydGlvbiBpcyB0YWtlbgorICAgICAgICBzbyB3
ZSBjYW4gdXNlIHRoZSBSdW5uaW5nQm9hcmQgYXN5bmMgQVBJLgorCisgICAgICAgIE5vdGUgdGhh
dCB0aGUgcHJldmlvdXMgaXRlcmF0aW9uIG9mIHRoaXMgcGF0Y2ggaGFkIGEgYnVnIHdoZXJlIHRo
ZSBQcm9jZXNzVGhyb3R0bGVyIHdvdWxkIHJlbGVhc2UKKyAgICAgICAgaXRzIHByZXZpb3VzIGFz
c2VydGlvbiBiZWZvcmUgdGhlIG5ldyBvbmUgaXMgdGFrZW4gKGFzeW5jaHJvbm91c2x5KSB3aGVu
IGNoYW5naW5nIHRoZSBhc3NlcnRpb24KKyAgICAgICAgdHlwZSAoZS5nLiBmb3JlZ3JvdW5kIHRv
IGJhY2tncm91bmQpLiBUaGlzIGlzIGFkZHJlc3NlZCBpbiB0aGlzIHBhdGNoLiBQcm9jZXNzVGhy
b3R0bGVyIG5vdyBwYXNzZXMKKyAgICAgICAgYW4gYWNxdWlzaXRpb24gaGFuZGxlciB3aGVuIGNv
bnN0cnVjdGluZyB0aGUgUHJvY2Vzc0Fzc2VydGlvbiBhbmQgb25seSByZWxlYXNlcyBpdHMgcHJl
dmlvdXMKKyAgICAgICAgYXNzZXJ0aW9uIG9uY2UgdGhlIGFjcXVpc2l0aW9uIGhhbmRsZXIgZm9y
IHRoZSBuZXcgb25lIGlzIHRha2VuLgorCisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvRG93bmxv
YWRzL0Rvd25sb2FkTWFwLmNwcDoKKyAgICAgICAgKFdlYktpdDo6RG93bmxvYWRNYXA6OmFkZCk6
CisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvRG93bmxvYWRzL0Rvd25sb2FkTWFwLmg6CisgICAg
ICAgICogUGxhdGZvcm0vSVBDL2NvY29hL0Nvbm5lY3Rpb25Db2NvYS5tbToKKyAgICAgICAgKElQ
Qzo6Q29ubmVjdGlvblRlcm1pbmF0aW9uV2F0Y2hkb2c6OkNvbm5lY3Rpb25UZXJtaW5hdGlvbldh
dGNoZG9nKToKKyAgICAgICAgKiBVSVByb2Nlc3MvRG93bmxvYWRzL0Rvd25sb2FkUHJveHlNYXAu
Y3BwOgorICAgICAgICAoV2ViS2l0OjpEb3dubG9hZFByb3h5TWFwOjpjcmVhdGVEb3dubG9hZFBy
b3h5KToKKyAgICAgICAgKiBVSVByb2Nlc3MvRG93bmxvYWRzL0Rvd25sb2FkUHJveHlNYXAuaDoK
KyAgICAgICAgKiBVSVByb2Nlc3MvTmV0d29yay9OZXR3b3JrUHJvY2Vzc1Byb3h5LmNwcDoKKyAg
ICAgICAgKFdlYktpdDo6TmV0d29ya1Byb2Nlc3NQcm94eTo6c2V0V2ViUHJvY2Vzc0hhc1VwbG9h
ZHMpOgorICAgICAgICAqIFVJUHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9jZXNzUHJveHkuaDoK
KyAgICAgICAgKiBVSVByb2Nlc3MvUHJvY2Vzc0Fzc2VydGlvbi5jcHA6CisgICAgICAgIChXZWJL
aXQ6OlByb2Nlc3NBc3NlcnRpb246OlByb2Nlc3NBc3NlcnRpb24pOgorICAgICAgICAqIFVJUHJv
Y2Vzcy9Qcm9jZXNzQXNzZXJ0aW9uLmg6CisgICAgICAgIChXZWJLaXQ6OlByb2Nlc3NBc3NlcnRp
b246OmNyZWF0ZSk6CisgICAgICAgICogVUlQcm9jZXNzL1Byb2Nlc3NUaHJvdHRsZXIuY3BwOgor
ICAgICAgICAoV2ViS2l0OjpQcm9jZXNzVGhyb3R0bGVyOjpzZXRBc3NlcnRpb25UeXBlKToKKyAg
ICAgICAgKiBVSVByb2Nlc3MvUHJvY2Vzc1Rocm90dGxlci5oOgorICAgICAgICAqIFVJUHJvY2Vz
cy9XZWJQcm9jZXNzUG9vbC5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3NQb29sOjp1
cGRhdGVBdWRpYmxlTWVkaWFBc3NlcnRpb25zKToKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUHJv
Y2Vzc1Bvb2wuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5LmNwcDoKKyAg
ICAgICAgKFdlYktpdDo6V2ViUHJvY2Vzc1Byb3h5Ojp1cGRhdGVBdWRpYmxlTWVkaWFBc3NlcnRp
b25zKToKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5Lmg6CisgICAgICAgICog
VUlQcm9jZXNzL2lvcy9Qcm9jZXNzQXNzZXJ0aW9uSU9TLm1tOgorICAgICAgICAoYXNzZXJ0aW9u
c1dvcmtRdWV1ZSk6CisgICAgICAgICgtW1dLUHJvY2Vzc0Fzc2VydGlvbkJhY2tncm91bmRUYXNr
TWFuYWdlciBfdXBkYXRlQmFja2dyb3VuZFRhc2tdKToKKyAgICAgICAgKC1bV0tQcm9jZXNzQXNz
ZXJ0aW9uQmFja2dyb3VuZFRhc2tNYW5hZ2VyIGFzc2VydGlvbjpkaWRJbnZhbGlkYXRlV2l0aEVy
cm9yOl0pOgorICAgICAgICAoV2ViS2l0OjpQcm9jZXNzQXNzZXJ0aW9uOjpQcm9jZXNzQXNzZXJ0
aW9uKToKKyAgICAgICAgKFdlYktpdDo6UHJvY2Vzc0Fzc2VydGlvbjo6YWNxdWlyZUFzeW5jKToK
KyAgICAgICAgKFdlYktpdDo6UHJvY2Vzc0Fzc2VydGlvbjo6YWNxdWlyZVN5bmMpOgorICAgICAg
ICAoV2ViS2l0OjpQcm9jZXNzQXNzZXJ0aW9uOjp+UHJvY2Vzc0Fzc2VydGlvbik6CisgICAgICAg
IChXZWJLaXQ6OlByb2Nlc3NBc3NlcnRpb246OnByb2Nlc3NBc3NlcnRpb25XYXNJbnZhbGlkYXRl
ZCk6CisgICAgICAgIChXZWJLaXQ6OlByb2Nlc3NBc3NlcnRpb246OmlzVmFsaWQgY29uc3QpOgor
CiAyMDIxLTA3LTAyICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CiAKICAgICAgICAg
VGFrZSBhIHByb2Nlc3MgYXNzZXJ0aW9uIGluIHRoZSBuZXR3b3JrIHByb2Nlc3Mgd2hlbiBob2xk
aW5nIGxvY2tlZCBmaWxlcwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vz
cy9Eb3dubG9hZHMvRG93bmxvYWRNYXAuY3BwIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vz
cy9Eb3dubG9hZHMvRG93bmxvYWRNYXAuY3BwCmluZGV4IDhkNTAyMDM3NjhhYWYzYzc5NzE3Y2Y0
ZjI5ODc4MjI3OGVjNjRlNDUuLjQwNDJkZGY1ZDhiZmUzMzQxODliZjRkZjMwZmQxYWU1MDYxZjAz
N2EgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvRG93bmxvYWRzL0Rv
d25sb2FkTWFwLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL0Rvd25sb2Fk
cy9Eb3dubG9hZE1hcC5jcHAKQEAgLTYxLDcgKzYxLDcgQEAgRG93bmxvYWRNYXA6OkRvd25sb2Fk
TWFwVHlwZTo6QWRkUmVzdWx0IERvd25sb2FkTWFwOjphZGQoRG93bmxvYWRJRCBkb3dubG9hZElE
LAogICAgIGF1dG8gcmVzdWx0ID0gbV9kb3dubG9hZHMuYWRkKGRvd25sb2FkSUQsIFdURk1vdmUo
ZG93bmxvYWQpKTsKICAgICBpZiAobV9kb3dubG9hZHMuc2l6ZSgpID09IDEpIHsKICAgICAgICAg
QVNTRVJUKCFtX2Rvd25sb2FkQXNzZXJ0aW9uKTsKLSAgICAgICAgbV9kb3dubG9hZEFzc2VydGlv
biA9IG1ha2VVbmlxdWU8UHJvY2Vzc0Fzc2VydGlvbj4oZ2V0cGlkKCksICJXZWJLaXQgZG93bmxv
YWRzIl9zLCBQcm9jZXNzQXNzZXJ0aW9uVHlwZTo6VW5ib3VuZGVkTmV0d29ya2luZyk7CisgICAg
ICAgIG1fZG93bmxvYWRBc3NlcnRpb24gPSBQcm9jZXNzQXNzZXJ0aW9uOjpjcmVhdGUoZ2V0cGlk
KCksICJXZWJLaXQgZG93bmxvYWRzIl9zLCBQcm9jZXNzQXNzZXJ0aW9uVHlwZTo6VW5ib3VuZGVk
TmV0d29ya2luZyk7CiAgICAgICAgIFJFTEVBU0VfTE9HKFByb2Nlc3NTdXNwZW5zaW9uLCAiVG9v
ayAnV2ViS2l0IGRvd25sb2FkcycgYXNzZXJ0aW9uIGluIE5ldHdvcmtQcm9jZXNzIik7CiAgICAg
fQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL0Rvd25sb2Fkcy9E
b3dubG9hZE1hcC5oIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9Eb3dubG9hZHMvRG93
bmxvYWRNYXAuaAppbmRleCBiNTI1NjdjYWEzOGE0Mzc2MTljZjBlNjcyNmViOGMzZmM5MTE2NzEw
Li5hOGJkMjhlNjhjYWQzYWRlNDgzMDU1YjJmMjE3ZjUwMWJkOWZiOWJiIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL0Rvd25sb2Fkcy9Eb3dubG9hZE1hcC5oCisrKyBi
L1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvRG93bmxvYWRzL0Rvd25sb2FkTWFwLmgKQEAg
LTUzLDcgKzUzLDcgQEAgcHVibGljOgogCiBwcml2YXRlOgogICAgIERvd25sb2FkTWFwVHlwZSBt
X2Rvd25sb2FkczsKLSAgICBzdGQ6OnVuaXF1ZV9wdHI8UHJvY2Vzc0Fzc2VydGlvbj4gbV9kb3du
bG9hZEFzc2VydGlvbjsKKyAgICBSZWZQdHI8UHJvY2Vzc0Fzc2VydGlvbj4gbV9kb3dubG9hZEFz
c2VydGlvbjsKIH07CiAKICNlbmRpZiAvLyAhRU5BQkxFKFRBS0VfVU5CT1VOREVEX05FVFdPUktJ
TkdfQVNTRVJUSU9OKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9O
ZXR3b3JrUHJvY2Vzcy5oIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJv
Y2Vzcy5oCmluZGV4IGFkZjA5Mzg0NzQwNzRmYzYyYjllMGIxY2MwYWViMjQ5OTVmYmVjMjUuLmJj
NGE5ODEwYzIyMjZmYmE4Yzc5ODY1ZWYyNWYxOTE0ZGJmMDEzNzAgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MuaAorKysgYi9Tb3VyY2UvV2Vi
S2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLmgKQEAgLTU3Nyw3ICs1NzcsNyBAQCBw
cml2YXRlOgogCiAjaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKICAgICBXZWJTUUxpdGVEYXRhYmFz
ZVRyYWNrZXIgbV93ZWJTUUxpdGVEYXRhYmFzZVRyYWNrZXI7Ci0gICAgc3RkOjp1bmlxdWVfcHRy
PFByb2Nlc3NBc3NlcnRpb24+IG1faG9sZGluZ0xvY2tlZEZpbGVBc3NlcnRpb247CisgICAgUmVm
UHRyPFByb2Nlc3NBc3NlcnRpb24+IG1faG9sZGluZ0xvY2tlZEZpbGVBc3NlcnRpb247CiAjZW5k
aWYKIAogICAgIEhhc2hNYXA8UEFMOjpTZXNzaW9uSUQsIFN0cmluZz4gbV9pZGJEYXRhYmFzZVBh
dGhzOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9pb3MvTmV0d29y
a1Byb2Nlc3NJT1MubW0gYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL2lvcy9OZXR3b3Jr
UHJvY2Vzc0lPUy5tbQppbmRleCBiYTZkNGI5NmQzNmRkMmYyMjAyM2U1YzBiMzE1M2RkOTk0Zjdk
MDMyLi4zMjU2NDc1NGQwZjZkYzk0YTRmN2E3YmVhZTBhMTdhMjdhMjQ3ZTllIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL2lvcy9OZXR3b3JrUHJvY2Vzc0lPUy5tbQor
KysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL2lvcy9OZXR3b3JrUHJvY2Vzc0lPUy5t
bQpAQCAtMTA5LDcgKzEwOSw3IEBAIHZvaWQgTmV0d29ya1Byb2Nlc3M6OnNldElzSG9sZGluZ0xv
Y2tlZEZpbGVzKGJvb2wgaXNIb2xkaW5nTG9ja2VkRmlsZXMpCiAKICAgICAvLyBXZSBzeW5jaHJv
bm91c2x5IHRha2UgYSBwcm9jZXNzIGFzc2VydGlvbiB3aGVuIGJlZ2lubmluZyBhIFNRTGl0ZSB0
cmFuc2FjdGlvbiBzbyB0aGF0IHdlIGRvbid0IGdldCBzdXNwZW5kZWQKICAgICAvLyB3aGlsZSBo
b2xkaW5nIGEgbG9ja2VkIGZpbGUuIFdlIHdvdWxkIGdldCBraWxsZWQgaWYgc3VzcGVuZGVkIHdo
aWxlIGhvbGRpbmcgbG9ja2VkIGZpbGVzLgotICAgIG1faG9sZGluZ0xvY2tlZEZpbGVBc3NlcnRp
b24gPSBtYWtlVW5pcXVlPFByb2Nlc3NBc3NlcnRpb24+KGdldEN1cnJlbnRQcm9jZXNzSUQoKSwg
Ik5ldHdvcmsgUHJvY2VzcyBpcyBob2xkaW5nIGxvY2tlZCBmaWxlcyJfcywgUHJvY2Vzc0Fzc2Vy
dGlvblR5cGU6OkZpbmlzaFRhc2tVbmludGVycnVwdGFibGUpOworICAgIG1faG9sZGluZ0xvY2tl
ZEZpbGVBc3NlcnRpb24gPSBQcm9jZXNzQXNzZXJ0aW9uOjpjcmVhdGUoZ2V0Q3VycmVudFByb2Nl
c3NJRCgpLCAiTmV0d29yayBQcm9jZXNzIGlzIGhvbGRpbmcgbG9ja2VkIGZpbGVzIl9zLCBQcm9j
ZXNzQXNzZXJ0aW9uVHlwZTo6RmluaXNoVGFza1VuaW50ZXJydXB0YWJsZSwgUHJvY2Vzc0Fzc2Vy
dGlvbjo6TW9kZTo6U3luYyk7CiB9CiAKIH0gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9QbGF0Zm9ybS9JUEMvY29jb2EvQ29ubmVjdGlvbkNvY29hLm1tIGIv
U291cmNlL1dlYktpdC9QbGF0Zm9ybS9JUEMvY29jb2EvQ29ubmVjdGlvbkNvY29hLm1tCmluZGV4
IDM4OTgyMDA5NzhlNDM1NDk3ZDM4MDc0MDFlMzY2YTE5Mjg3NDc4YzMuLmU3OTIyMTkzNGZiNGM1
MjkxMjQ3OTQ5ZjE0ZjM2OTcxZTE2ZWM3MTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvUGxh
dGZvcm0vSVBDL2NvY29hL0Nvbm5lY3Rpb25Db2NvYS5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1Bs
YXRmb3JtL0lQQy9jb2NvYS9Db25uZWN0aW9uQ29jb2EubW0KQEAgLTg5LDcgKzg5LDcgQEAgcHJp
dmF0ZToKICAgICAgICAgOiBtX3hwY0Nvbm5lY3Rpb24oeHBjQ29ubmVjdGlvbikKICAgICAgICAg
LCBtX3dhdGNoZG9nVGltZXIoUnVuTG9vcDo6bWFpbigpLCB0aGlzLCAmQ29ubmVjdGlvblRlcm1p
bmF0aW9uV2F0Y2hkb2c6OndhdGNoZG9nVGltZXJGaXJlZCkKICNpZiBQTEFURk9STShJT1NfRkFN
SUxZKQotICAgICAgICAsIG1fYXNzZXJ0aW9uKG1ha2VVbmlxdWU8V2ViS2l0OjpQcm9jZXNzQW5k
VUlBc3NlcnRpb24+KHhwY19jb25uZWN0aW9uX2dldF9waWQobV94cGNDb25uZWN0aW9uLmdldCgp
KSwgIkNvbm5lY3Rpb25UZXJtaW5hdGlvbldhdGNoZG9nIl9zLCBXZWJLaXQ6OlByb2Nlc3NBc3Nl
cnRpb25UeXBlOjpCYWNrZ3JvdW5kKSkKKyAgICAgICAgLCBtX2Fzc2VydGlvbihXZWJLaXQ6OlBy
b2Nlc3NBbmRVSUFzc2VydGlvbjo6Y3JlYXRlKHhwY19jb25uZWN0aW9uX2dldF9waWQobV94cGND
b25uZWN0aW9uLmdldCgpKSwgIkNvbm5lY3Rpb25UZXJtaW5hdGlvbldhdGNoZG9nIl9zLCBXZWJL
aXQ6OlByb2Nlc3NBc3NlcnRpb25UeXBlOjpCYWNrZ3JvdW5kKSkKICNlbmRpZgogICAgIHsKICAg
ICAgICAgbV93YXRjaGRvZ1RpbWVyLnN0YXJ0T25lU2hvdChpbnRlcnZhbCk7CkBAIC0xMDQsNyAr
MTA0LDcgQEAgcHJpdmF0ZToKICAgICBPU09iamVjdFB0cjx4cGNfY29ubmVjdGlvbl90PiBtX3hw
Y0Nvbm5lY3Rpb247CiAgICAgUnVuTG9vcDo6VGltZXI8Q29ubmVjdGlvblRlcm1pbmF0aW9uV2F0
Y2hkb2c+IG1fd2F0Y2hkb2dUaW1lcjsKICNpZiBQTEFURk9STShJT1NfRkFNSUxZKQotICAgIHN0
ZDo6dW5pcXVlX3B0cjxXZWJLaXQ6OlByb2Nlc3NBbmRVSUFzc2VydGlvbj4gbV9hc3NlcnRpb247
CisgICAgUmVmPFdlYktpdDo6UHJvY2Vzc0FuZFVJQXNzZXJ0aW9uPiBtX2Fzc2VydGlvbjsKICNl
bmRpZgogfTsKICAgICAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvUGxhdGZvcm0vc3BpL2lv
cy9SdW5uaW5nQm9hcmRTZXJ2aWNlc1NQSS5oIGIvU291cmNlL1dlYktpdC9QbGF0Zm9ybS9zcGkv
aW9zL1J1bm5pbmdCb2FyZFNlcnZpY2VzU1BJLmgKaW5kZXggZDU1YjZjOTBjMzFiZTRiYmMwNjNk
ZTVlNmJhZTBjODU3ZWRkYTQxOS4uNDI1MTMyZmU5MGNmYmVjMzc2ZjM2OTIxNWYwNDMyY2YyYmE5
ODg0ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9QbGF0Zm9ybS9zcGkvaW9zL1J1bm5pbmdC
b2FyZFNlcnZpY2VzU1BJLmgKKysrIGIvU291cmNlL1dlYktpdC9QbGF0Zm9ybS9zcGkvaW9zL1J1
bm5pbmdCb2FyZFNlcnZpY2VzU1BJLmgKQEAgLTU1LDExICs1NSwxNCBAQCBOU19BU1NVTUVfTk9O
TlVMTF9CRUdJTgogKyAoUkJTVGFyZ2V0ICopY3VycmVudFByb2Nlc3M7CiBAZW5kCiAKK0BjbGFz
cyBSQlNBc3NlcnRpb247CiBAcHJvdG9jb2wgUkJTQXNzZXJ0aW9uT2JzZXJ2aW5nOwordHlwZWRl
ZiB2b2lkICheUkJTQXNzZXJ0aW9uSW52YWxpZGF0aW9uSGFuZGxlcikoUkJTQXNzZXJ0aW9uICph
c3NlcnRpb24sIE5TRXJyb3IgKmVycm9yKTsKIAogQGludGVyZmFjZSBSQlNBc3NlcnRpb24gOiBO
U09iamVjdAogLSAoaW5zdGFuY2V0eXBlKWluaXRXaXRoRXhwbGFuYXRpb246KE5TU3RyaW5nICop
ZXhwbGFuYXRpb24gdGFyZ2V0OihSQlNUYXJnZXQgKil0YXJnZXQgYXR0cmlidXRlczooTlNBcnJh
eSA8UkJTQXR0cmlidXRlICo+ICopYXR0cmlidXRlczsKIC0gKEJPT0wpYWNxdWlyZVdpdGhFcnJv
cjooTlNFcnJvciAqKillcnJvcjsKKy0gKHZvaWQpYWNxdWlyZVdpdGhJbnZhbGlkYXRpb25IYW5k
bGVyOihudWxsYWJsZSBSQlNBc3NlcnRpb25JbnZhbGlkYXRpb25IYW5kbGVyKWhhbmRsZXI7CiAt
ICh2b2lkKWludmFsaWRhdGU7CiAtICh2b2lkKWFkZE9ic2VydmVyOihpZCA8UkJTQXNzZXJ0aW9u
T2JzZXJ2aW5nPilvYnNlcnZlcjsKIC0gKHZvaWQpcmVtb3ZlT2JzZXJ2ZXI6KGlkIDxSQlNBc3Nl
cnRpb25PYnNlcnZpbmc+KW9ic2VydmVyOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvRG93bmxvYWRzL0Rvd25sb2FkUHJveHlNYXAuY3BwIGIvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvRG93bmxvYWRzL0Rvd25sb2FkUHJveHlNYXAuY3BwCmluZGV4IDA3MDI3NGM0N2E4MGU1
ODRlNjc0YmQyMjkxMzQ2NjQ5OTMzZTU3YjIuLmIxNDk5ZmYxNDVjYjc1NmMyNDZhNDdhZWZlMzk4
ZDZhYjdjNDNjYjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0Rvd25sb2Fk
cy9Eb3dubG9hZFByb3h5TWFwLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Eb3du
bG9hZHMvRG93bmxvYWRQcm94eU1hcC5jcHAKQEAgLTkwLDEwICs5MCwxMCBAQCBEb3dubG9hZFBy
b3h5JiBEb3dubG9hZFByb3h5TWFwOjpjcmVhdGVEb3dubG9hZFByb3h5KFdlYnNpdGVEYXRhU3Rv
cmUmIGRhdGFTdG9yZQogCiAgICAgaWYgKG1fZG93bmxvYWRzLnNpemUoKSA9PSAxICYmIG1fc2hv
dWxkVGFrZUFzc2VydGlvbikgewogICAgICAgICBBU1NFUlQoIW1fZG93bmxvYWRVSUFzc2VydGlv
bik7Ci0gICAgICAgIG1fZG93bmxvYWRVSUFzc2VydGlvbiA9IG1ha2VVbmlxdWU8UHJvY2Vzc0Fz
c2VydGlvbj4oZ2V0Q3VycmVudFByb2Nlc3NJRCgpLCAiV2ViS2l0IGRvd25sb2FkcyJfcywgUHJv
Y2Vzc0Fzc2VydGlvblR5cGU6OlVuYm91bmRlZE5ldHdvcmtpbmcpOworICAgICAgICBtX2Rvd25s
b2FkVUlBc3NlcnRpb24gPSBQcm9jZXNzQXNzZXJ0aW9uOjpjcmVhdGUoZ2V0Q3VycmVudFByb2Nl
c3NJRCgpLCAiV2ViS2l0IGRvd25sb2FkcyJfcywgUHJvY2Vzc0Fzc2VydGlvblR5cGU6OlVuYm91
bmRlZE5ldHdvcmtpbmcpOwogCiAgICAgICAgIEFTU0VSVCghbV9kb3dubG9hZE5ldHdvcmtpbmdB
c3NlcnRpb24pOwotICAgICAgICBtX2Rvd25sb2FkTmV0d29ya2luZ0Fzc2VydGlvbiA9IG1ha2VV
bmlxdWU8UHJvY2Vzc0Fzc2VydGlvbj4obV9wcm9jZXNzLnByb2Nlc3NJZGVudGlmaWVyKCksICJX
ZWJLaXQgZG93bmxvYWRzIl9zLCBQcm9jZXNzQXNzZXJ0aW9uVHlwZTo6VW5ib3VuZGVkTmV0d29y
a2luZyk7CisgICAgICAgIG1fZG93bmxvYWROZXR3b3JraW5nQXNzZXJ0aW9uID0gUHJvY2Vzc0Fz
c2VydGlvbjo6Y3JlYXRlKG1fcHJvY2Vzcy5wcm9jZXNzSWRlbnRpZmllcigpLCAiV2ViS2l0IGRv
d25sb2FkcyJfcywgUHJvY2Vzc0Fzc2VydGlvblR5cGU6OlVuYm91bmRlZE5ldHdvcmtpbmcpOwog
CiAgICAgICAgIFJFTEVBU0VfTE9HKFByb2Nlc3NTdXNwZW5zaW9uLCAiVUlQcm9jZXNzIHRvb2sg
J1dlYktpdCBkb3dubG9hZHMnIGFzc2VydGlvbnMgZm9yIFVJUHJvY2VzcyBhbmQgTmV0d29ya1By
b2Nlc3MiKTsKICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Eb3du
bG9hZHMvRG93bmxvYWRQcm94eU1hcC5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvRG93bmxv
YWRzL0Rvd25sb2FkUHJveHlNYXAuaAppbmRleCA0ZmEwMDFiZDdmYWUxY2VkMDI0ZDJiOTFmMjAx
NzBmZjk5NDUyOGJlLi44MTJmNjRkNDcyNTc1YjE0MjFhNmU3NWJkODI4OWMwZWQxMDM5OTkzIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Eb3dubG9hZHMvRG93bmxvYWRQcm94
eU1hcC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0Rvd25sb2Fkcy9Eb3dubG9hZFBy
b3h5TWFwLmgKQEAgLTc1LDggKzc1LDggQEAgcHJpdmF0ZToKICAgICBIYXNoTWFwPERvd25sb2Fk
SUQsIFJlZlB0cjxEb3dubG9hZFByb3h5Pj4gbV9kb3dubG9hZHM7CiAKICAgICBib29sIG1fc2hv
dWxkVGFrZUFzc2VydGlvbiB7IGZhbHNlIH07Ci0gICAgc3RkOjp1bmlxdWVfcHRyPFByb2Nlc3NB
c3NlcnRpb24+IG1fZG93bmxvYWRVSUFzc2VydGlvbjsKLSAgICBzdGQ6OnVuaXF1ZV9wdHI8UHJv
Y2Vzc0Fzc2VydGlvbj4gbV9kb3dubG9hZE5ldHdvcmtpbmdBc3NlcnRpb247CisgICAgUmVmUHRy
PFByb2Nlc3NBc3NlcnRpb24+IG1fZG93bmxvYWRVSUFzc2VydGlvbjsKKyAgICBSZWZQdHI8UHJv
Y2Vzc0Fzc2VydGlvbj4gbV9kb3dubG9hZE5ldHdvcmtpbmdBc3NlcnRpb247CiAKICNpZiBQTEFU
Rk9STShJT1NfRkFNSUxZKQogICAgIFJldGFpblB0cjxpZD4gbV9iYWNrZ3JvdW5kT2JzZXJ2ZXI7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9j
ZXNzUHJveHkuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvTmV0d29yay9OZXR3b3JrUHJv
Y2Vzc1Byb3h5LmNwcAppbmRleCBkY2E3ZjViMzIxN2E1NjY0MWQ4ZjEzN2Y3NjQ2Mzc2NTgyNjFm
ZDg3Li4xNzBjYWY4MWQ0NTkzZWQ4ZTYwODNmMGExMjlmMzg0NzUyYzZhOTlkIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9jZXNzUHJveHkuY3Bw
CisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nlc3NQcm94
eS5jcHAKQEAgLTE0NDIsMTUgKzE0NDIsMTUgQEAgdm9pZCBOZXR3b3JrUHJvY2Vzc1Byb3h5Ojpz
ZXRXZWJQcm9jZXNzSGFzVXBsb2FkcyhXZWJDb3JlOjpQcm9jZXNzSWRlbnRpZmllciBwcm8KICAg
ICBpZiAoIW1fdXBsb2FkQWN0aXZpdHkpIHsKICAgICAgICAgUkVMRUFTRV9MT0coUHJvY2Vzc1N1
c3BlbnNpb24sICJOZXR3b3JrUHJvY2Vzc1Byb3h5OjpzZXRXZWJQcm9jZXNzSGFzVXBsb2Fkczog
VGhlIG51bWJlciBvZiB1cGxvYWRzIGluIHByb2dyZXNzIGlzIG5vdyBncmVhdGVyIHRoYW4gMC4g
VGFraW5nIE5ldHdvcmtpbmcgYW5kIFVJIHByb2Nlc3MgYXNzZXJ0aW9ucy4iKTsKICAgICAgICAg
bV91cGxvYWRBY3Rpdml0eSA9IFVwbG9hZEFjdGl2aXR5IHsKLSAgICAgICAgICAgIG1ha2VVbmlx
dWU8UHJvY2Vzc0Fzc2VydGlvbj4oZ2V0Q3VycmVudFByb2Nlc3NJRCgpLCAiV2ViS2l0IHVwbG9h
ZHMiX3MsIFByb2Nlc3NBc3NlcnRpb25UeXBlOjpVbmJvdW5kZWROZXR3b3JraW5nKSwKLSAgICAg
ICAgICAgIG1ha2VVbmlxdWU8UHJvY2Vzc0Fzc2VydGlvbj4ocHJvY2Vzc0lkZW50aWZpZXIoKSwg
IldlYktpdCB1cGxvYWRzIl9zLCBQcm9jZXNzQXNzZXJ0aW9uVHlwZTo6VW5ib3VuZGVkTmV0d29y
a2luZyksCi0gICAgICAgICAgICBIYXNoTWFwPFdlYkNvcmU6OlByb2Nlc3NJZGVudGlmaWVyLCBz
dGQ6OnVuaXF1ZV9wdHI8UHJvY2Vzc0Fzc2VydGlvbj4+KCkKKyAgICAgICAgICAgIFByb2Nlc3NB
c3NlcnRpb246OmNyZWF0ZShnZXRDdXJyZW50UHJvY2Vzc0lEKCksICJXZWJLaXQgdXBsb2FkcyJf
cywgUHJvY2Vzc0Fzc2VydGlvblR5cGU6OlVuYm91bmRlZE5ldHdvcmtpbmcpLAorICAgICAgICAg
ICAgUHJvY2Vzc0Fzc2VydGlvbjo6Y3JlYXRlKHByb2Nlc3NJZGVudGlmaWVyKCksICJXZWJLaXQg
dXBsb2FkcyJfcywgUHJvY2Vzc0Fzc2VydGlvblR5cGU6OlVuYm91bmRlZE5ldHdvcmtpbmcpLAor
ICAgICAgICAgICAgSGFzaE1hcDxXZWJDb3JlOjpQcm9jZXNzSWRlbnRpZmllciwgUmVmUHRyPFBy
b2Nlc3NBc3NlcnRpb24+PigpCiAgICAgICAgIH07CiAgICAgfQogCiAgICAgbV91cGxvYWRBY3Rp
dml0eS0+d2ViUHJvY2Vzc0Fzc2VydGlvbnMuZW5zdXJlKHByb2Nlc3NJRCwgWyZdIHsKICAgICAg
ICAgUkVMRUFTRV9MT0coUHJvY2Vzc1N1c3BlbnNpb24sICJOZXR3b3JrUHJvY2Vzc1Byb3h5Ojpz
ZXRXZWJQcm9jZXNzSGFzVXBsb2FkczogVGFraW5nIHVwbG9hZCBhc3NlcnRpb24gb24gYmVoYWxm
IG9mIFdlYlByb2Nlc3Mgd2l0aCBQSUQgJWQiLCBwcm9jZXNzLT5wcm9jZXNzSWRlbnRpZmllcigp
KTsKLSAgICAgICAgcmV0dXJuIG1ha2VVbmlxdWU8UHJvY2Vzc0Fzc2VydGlvbj4ocHJvY2Vzcy0+
cHJvY2Vzc0lkZW50aWZpZXIoKSwgIldlYktpdCB1cGxvYWRzIl9zLCBQcm9jZXNzQXNzZXJ0aW9u
VHlwZTo6VW5ib3VuZGVkTmV0d29ya2luZyk7CisgICAgICAgIHJldHVybiBQcm9jZXNzQXNzZXJ0
aW9uOjpjcmVhdGUocHJvY2Vzcy0+cHJvY2Vzc0lkZW50aWZpZXIoKSwgIldlYktpdCB1cGxvYWRz
Il9zLCBQcm9jZXNzQXNzZXJ0aW9uVHlwZTo6VW5ib3VuZGVkTmV0d29ya2luZyk7CiAgICAgfSk7
CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL05ldHdvcmsvTmV0d29y
a1Byb2Nlc3NQcm94eS5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvTmV0d29yay9OZXR3b3Jr
UHJvY2Vzc1Byb3h5LmgKaW5kZXggODQ2MjQ1Y2JhYzdjMDY5YWJjMDRmMTBmZTczYjYzNzcyMzAx
OWJjMC4uZDVmMTg2NTkxOWU1Yjg5ZWJmM2Q1NGNjODg2ODY0ODg0YjA2ZjlmMiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvTmV0d29yay9OZXR3b3JrUHJvY2Vzc1Byb3h5LmgK
KysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvTmV0d29yay9OZXR3b3JrUHJvY2Vzc1Byb3h5
LmgKQEAgLTM0NCw5ICszNDQsOSBAQCBwcml2YXRlOgogI2VuZGlmCiAKICAgICBzdHJ1Y3QgVXBs
b2FkQWN0aXZpdHkgewotICAgICAgICBzdGQ6OnVuaXF1ZV9wdHI8UHJvY2Vzc0Fzc2VydGlvbj4g
dWlBc3NlcnRpb247Ci0gICAgICAgIHN0ZDo6dW5pcXVlX3B0cjxQcm9jZXNzQXNzZXJ0aW9uPiBu
ZXR3b3JrQXNzZXJ0aW9uOwotICAgICAgICBIYXNoTWFwPFdlYkNvcmU6OlByb2Nlc3NJZGVudGlm
aWVyLCBzdGQ6OnVuaXF1ZV9wdHI8UHJvY2Vzc0Fzc2VydGlvbj4+IHdlYlByb2Nlc3NBc3NlcnRp
b25zOworICAgICAgICBSZWZQdHI8UHJvY2Vzc0Fzc2VydGlvbj4gdWlBc3NlcnRpb247CisgICAg
ICAgIFJlZlB0cjxQcm9jZXNzQXNzZXJ0aW9uPiBuZXR3b3JrQXNzZXJ0aW9uOworICAgICAgICBI
YXNoTWFwPFdlYkNvcmU6OlByb2Nlc3NJZGVudGlmaWVyLCBSZWZQdHI8UHJvY2Vzc0Fzc2VydGlv
bj4+IHdlYlByb2Nlc3NBc3NlcnRpb25zOwogICAgIH07CiAgICAgc3RkOjpvcHRpb25hbDxVcGxv
YWRBY3Rpdml0eT4gbV91cGxvYWRBY3Rpdml0eTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvUHJvY2Vzc0Fzc2VydGlvbi5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9Qcm9jZXNzQXNzZXJ0aW9uLmNwcAppbmRleCBkYzIyZWU5YTAyNDk4MDJhOTBhZmZlOTlmMDEw
YzIxNzMwNjNlOWQ5Li44NTlhMTE5N2YxYjJjZjljNjAxOWViNDUxNTBiOTk1MmRlYmM1N2ZmIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Qcm9jZXNzQXNzZXJ0aW9uLmNwcAor
KysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Qcm9jZXNzQXNzZXJ0aW9uLmNwcApAQCAtNDYs
NiArNDYsMTYgQEAgYm9vbCBQcm9jZXNzQXNzZXJ0aW9uOjppc1ZhbGlkKCkgY29uc3QKICAgICBy
ZXR1cm4gdHJ1ZTsKIH0KIAordm9pZCBQcm9jZXNzQXNzZXJ0aW9uOjphY3F1aXJlQXN5bmMoQ29t
cGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQoreworICAgIGlmIChj
b21wbGV0aW9uSGFuZGxlcikKKyAgICAgICAgUnVuTG9vcDo6bWFpbigpLmRpc3BhdGNoKFdURk1v
dmUoY29tcGxldGlvbkhhbmRsZXIpKTsKK30KKwordm9pZCBQcm9jZXNzQXNzZXJ0aW9uOjphY3F1
aXJlU3luYygpCit7Cit9CisKIFByb2Nlc3NBbmRVSUFzc2VydGlvbjo6UHJvY2Vzc0FuZFVJQXNz
ZXJ0aW9uKFByb2Nlc3NJRCBwaWQsIGNvbnN0IFN0cmluZyYgcmVhc29uLCBQcm9jZXNzQXNzZXJ0
aW9uVHlwZSBhc3NlcnRpb25UeXBlKQogICAgIDogUHJvY2Vzc0Fzc2VydGlvbihwaWQsIHJlYXNv
biwgYXNzZXJ0aW9uVHlwZSkKIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L1Byb2Nlc3NBc3NlcnRpb24uaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1Byb2Nlc3NBc3Nl
cnRpb24uaAppbmRleCBjM2NhNjQyNjg4YTM2NDI3N2FhODAwYWFjZWQyNDExNTFmOWFhMWZlLi5j
ZjcxODM1ZmFmM2MxYTZiY2QwNTYwZjAzNjczNzAzOWI3ZDFmNDVkIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9Qcm9jZXNzQXNzZXJ0aW9uLmgKKysrIGIvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvUHJvY2Vzc0Fzc2VydGlvbi5oCkBAIC0yNSw4ICsyNSwxMCBAQAogCiAjcHJh
Z21hIG9uY2UKIAorI2luY2x1ZGUgPHd0Zi9Db21wbGV0aW9uSGFuZGxlci5oPgogI2luY2x1ZGUg
PHd0Zi9GdW5jdGlvbi5oPgogI2luY2x1ZGUgPHd0Zi9Qcm9jZXNzSUQuaD4KKyNpbmNsdWRlIDx3
dGYvVGhyZWFkU2FmZVJlZkNvdW50ZWQuaD4KICNpbmNsdWRlIDx3dGYvV2Vha1B0ci5oPgogI2lu
Y2x1ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgogCkBAIC01MiwxMCArNTQsMjEgQEAgZW51bSBj
bGFzcyBQcm9jZXNzQXNzZXJ0aW9uVHlwZSB7CiAgICAgRmluaXNoVGFza1VuaW50ZXJydXB0YWJs
ZSwKIH07CiAKLWNsYXNzIFByb2Nlc3NBc3NlcnRpb24gOiBwdWJsaWMgQ2FuTWFrZVdlYWtQdHI8
UHJvY2Vzc0Fzc2VydGlvbj4geworY2xhc3MgUHJvY2Vzc0Fzc2VydGlvbiA6IHB1YmxpYyBUaHJl
YWRTYWZlUmVmQ291bnRlZDxQcm9jZXNzQXNzZXJ0aW9uPiwgcHVibGljIENhbk1ha2VXZWFrUHRy
PFByb2Nlc3NBc3NlcnRpb24+IHsKICAgICBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsKIHB1Ymxp
YzoKLSAgICBQcm9jZXNzQXNzZXJ0aW9uKFByb2Nlc3NJRCwgY29uc3QgU3RyaW5nJiByZWFzb24s
IFByb2Nlc3NBc3NlcnRpb25UeXBlKTsKKyAgICBlbnVtIGNsYXNzIE1vZGUgOiBib29sIHsgU3lu
YywgQXN5bmMgfTsKKyAgICBzdGF0aWMgUmVmPFByb2Nlc3NBc3NlcnRpb24+IGNyZWF0ZShQcm9j
ZXNzSUQgcGlkLCBjb25zdCBTdHJpbmcmIHJlYXNvbiwgUHJvY2Vzc0Fzc2VydGlvblR5cGUgdHlw
ZSwgTW9kZSBtb2RlID0gTW9kZTo6QXN5bmMsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJiBh
Y3F1aXNpc2lvbkhhbmRsZXIgPSBudWxscHRyKQorICAgIHsKKyAgICAgICAgYXV0byBhc3NlcnRp
b24gPSBhZG9wdFJlZigqbmV3IFByb2Nlc3NBc3NlcnRpb24ocGlkLCByZWFzb24sIHR5cGUpKTsK
KyAgICAgICAgaWYgKG1vZGUgPT0gTW9kZTo6QXN5bmMpCisgICAgICAgICAgICBhc3NlcnRpb24t
PmFjcXVpcmVBc3luYyhXVEZNb3ZlKGFjcXVpc2lzaW9uSGFuZGxlcikpOworICAgICAgICBlbHNl
IHsKKyAgICAgICAgICAgIGFzc2VydGlvbi0+YWNxdWlyZVN5bmMoKTsKKyAgICAgICAgICAgIGFj
cXVpc2lzaW9uSGFuZGxlcigpOworICAgICAgICB9CisgICAgICAgIHJldHVybiBhc3NlcnRpb247
CisgICAgfQogICAgIHZpcnR1YWwgflByb2Nlc3NBc3NlcnRpb24oKTsKIAogICAgIHZvaWQgc2V0
SW52YWxpZGF0aW9uSGFuZGxlcihGdW5jdGlvbjx2b2lkKCk+JiYgaGFuZGxlcikgeyBtX2ludmFs
aWRhdGlvbkhhbmRsZXIgPSBXVEZNb3ZlKGhhbmRsZXIpOyB9CkBAIC02NSw4ICs3OCwxMyBAQCBw
dWJsaWM6CiAKICAgICBib29sIGlzVmFsaWQoKSBjb25zdDsKIAotI2lmIFBMQVRGT1JNKElPU19G
QU1JTFkpCiBwcm90ZWN0ZWQ6CisgICAgUHJvY2Vzc0Fzc2VydGlvbihQcm9jZXNzSUQsIGNvbnN0
IFN0cmluZyYgcmVhc29uLCBQcm9jZXNzQXNzZXJ0aW9uVHlwZSk7CisKKyAgICB2b2lkIGFjcXVp
cmVBc3luYyhDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYpOworICAgIHZvaWQgYWNxdWlyZVN5
bmMoKTsKKworI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCiAgICAgdmlydHVhbCB2b2lkIHByb2Nl
c3NBc3NlcnRpb25XYXNJbnZhbGlkYXRlZCgpOwogI2VuZGlmCiAKQEAgLTc3LDEzICs5NSwyNCBA
QCBwcml2YXRlOgogI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCiAgICAgUmV0YWluUHRyPFJCU0Fz
c2VydGlvbj4gbV9yYnNBc3NlcnRpb247CiAgICAgUmV0YWluUHRyPFdLUkJTQXNzZXJ0aW9uRGVs
ZWdhdGU+IG1fZGVsZWdhdGU7CisgICAgYm9vbCBtX3dhc0ludmFsaWRhdGVkIHsgZmFsc2UgfTsK
ICNlbmRpZgogICAgIEZ1bmN0aW9uPHZvaWQoKT4gbV9pbnZhbGlkYXRpb25IYW5kbGVyOwogfTsK
IAogY2xhc3MgUHJvY2Vzc0FuZFVJQXNzZXJ0aW9uIGZpbmFsIDogcHVibGljIFByb2Nlc3NBc3Nl
cnRpb24gewogcHVibGljOgotICAgIFByb2Nlc3NBbmRVSUFzc2VydGlvbihQcm9jZXNzSUQsIGNv
bnN0IFN0cmluZyYgcmVhc29uLCBQcm9jZXNzQXNzZXJ0aW9uVHlwZSk7CisgICAgc3RhdGljIFJl
ZjxQcm9jZXNzQW5kVUlBc3NlcnRpb24+IGNyZWF0ZShQcm9jZXNzSUQgcGlkLCBjb25zdCBTdHJp
bmcmIHJlYXNvbiwgUHJvY2Vzc0Fzc2VydGlvblR5cGUgdHlwZSwgTW9kZSBtb2RlID0gTW9kZTo6
QXN5bmMsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJiBhY3F1aXNpc2lvbkhhbmRsZXIgPSBu
dWxscHRyKQorICAgIHsKKyAgICAgICAgYXV0byBhc3NlcnRpb24gPSBhZG9wdFJlZigqbmV3IFBy
b2Nlc3NBbmRVSUFzc2VydGlvbihwaWQsIHJlYXNvbiwgdHlwZSkpOworICAgICAgICBpZiAobW9k
ZSA9PSBNb2RlOjpBc3luYykKKyAgICAgICAgICAgIGFzc2VydGlvbi0+YWNxdWlyZUFzeW5jKFdU
Rk1vdmUoYWNxdWlzaXNpb25IYW5kbGVyKSk7CisgICAgICAgIGVsc2UgeworICAgICAgICAgICAg
YXNzZXJ0aW9uLT5hY3F1aXJlU3luYygpOworICAgICAgICAgICAgYWNxdWlzaXNpb25IYW5kbGVy
KCk7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIGFzc2VydGlvbjsKKyAgICB9CiAgICAgflBy
b2Nlc3NBbmRVSUFzc2VydGlvbigpOwogCiAgICAgdm9pZCB1aUFzc2VydGlvbldpbGxFeHBpcmVJ
bW1pbmVudGx5KCk7CkBAIC05MSw2ICsxMjAsOCBAQCBwdWJsaWM6CiAgICAgdm9pZCBzZXRVSUFz
c2VydGlvbkV4cGlyYXRpb25IYW5kbGVyKEZ1bmN0aW9uPHZvaWQoKT4mJiBoYW5kbGVyKSB7IG1f
dWlBc3NlcnRpb25FeHBpcmF0aW9uSGFuZGxlciA9IFdURk1vdmUoaGFuZGxlcik7IH0KIAogcHJp
dmF0ZToKKyAgICBQcm9jZXNzQW5kVUlBc3NlcnRpb24oUHJvY2Vzc0lELCBjb25zdCBTdHJpbmcm
IHJlYXNvbiwgUHJvY2Vzc0Fzc2VydGlvblR5cGUpOworCiAjaWYgUExBVEZPUk0oSU9TX0ZBTUlM
WSkKICAgICB2b2lkIHByb2Nlc3NBc3NlcnRpb25XYXNJbnZhbGlkYXRlZCgpIGZpbmFsOwogI2Vu
ZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Qcm9jZXNzVGhyb3R0bGVy
LmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1Byb2Nlc3NUaHJvdHRsZXIuY3BwCmluZGV4
IGUxMzExYWJhY2UxZmQyZmM4OTIwMzBiNWRhNDZhZGY3MTQwNmFiNTguLjRhZDNlMTQwNDNkMTBh
Y2YxYjE2ZGUzMGU1YjQ1ZTFjOWE5YTljYmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL1Byb2Nlc3NUaHJvdHRsZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L1Byb2Nlc3NUaHJvdHRsZXIuY3BwCkBAIC0xMjksMjAgKzEyOSwyMSBAQCB2b2lkIFByb2Nlc3NU
aHJvdHRsZXI6OnNldEFzc2VydGlvblR5cGUoUHJvY2Vzc0Fzc2VydGlvblR5cGUgbmV3VHlwZSkK
IAogICAgIFBST0NFU1NUSFJPVFRMRVJfUkVMRUFTRV9MT0coInNldEFzc2VydGlvblR5cGU6IFVw
ZGF0aW5nIHByb2Nlc3MgYXNzZXJ0aW9uIHR5cGUgdG8gJXUgKGZvcmVncm91bmRBY3Rpdml0aWVz
PSV1LCBiYWNrZ3JvdW5kQWN0aXZpdGllcz0ldSkiLCBuZXdUeXBlLCBtX2ZvcmVncm91bmRBY3Rp
dml0aWVzLnNpemUoKSwgbV9iYWNrZ3JvdW5kQWN0aXZpdGllcy5zaXplKCkpOwogCi0gICAgLy8g
S2VlcCB0aGUgcHJldmlvdXMgYXNzZXJ0aW9uIGFyb3VuZCB1bnRpbCBhZnRlciB0aGUgbmV3IG9u
ZSBoYXMgYmVlbiBjcmVhdGVkIHNvIHRoYXQgd2UgYWx3YXlzIGhvbGQKLSAgICAvLyBhIHByb2Nl
c3MgYXNzZXJ0aW9uIGZvciB0aGUgcHJvY2Vzcy4KKyAgICAvLyBLZWVwIHRoZSBwcmV2aW91cyBh
c3NlcnRpb24gYWN0aXZlIHVudGlsIHRoZSBuZXcgYXNzZXJ0aW9uIGlzIHRha2VuIGFzeW5jaHJv
bm91c2x5LgogICAgIGF1dG8gcHJldmlvdXNBc3NlcnRpb24gPSBzdGQ6OmV4Y2hhbmdlKG1fYXNz
ZXJ0aW9uLCBudWxscHRyKTsKICAgICBpZiAobV9zaG91bGRUYWtlVUlCYWNrZ3JvdW5kQXNzZXJ0
aW9uKSB7Ci0gICAgICAgIGF1dG8gYXNzZXJ0aW9uID0gbWFrZVVuaXF1ZTxQcm9jZXNzQW5kVUlB
c3NlcnRpb24+KG1fcHJvY2Vzc0lkZW50aWZpZXIsIGFzc2VydGlvbk5hbWUobmV3VHlwZSksIG5l
d1R5cGUpOwotICAgICAgICBhc3NlcnRpb24tPnNldFVJQXNzZXJ0aW9uRXhwaXJhdGlvbkhhbmRs
ZXIoW3RoaXNdIHsKLSAgICAgICAgICAgIHVpQXNzZXJ0aW9uV2lsbEV4cGlyZUltbWluZW50bHko
KTsKKyAgICAgICAgYXV0byBhc3NlcnRpb24gPSBQcm9jZXNzQW5kVUlBc3NlcnRpb246OmNyZWF0
ZShtX3Byb2Nlc3NJZGVudGlmaWVyLCBhc3NlcnRpb25OYW1lKG5ld1R5cGUpLCBuZXdUeXBlLCBQ
cm9jZXNzQXNzZXJ0aW9uOjpNb2RlOjpBc3luYywgW3ByZXZpb3VzQXNzZXJ0aW9uID0gV1RGTW92
ZShwcmV2aW91c0Fzc2VydGlvbildIHsgfSk7CisgICAgICAgIGFzc2VydGlvbi0+c2V0VUlBc3Nl
cnRpb25FeHBpcmF0aW9uSGFuZGxlcihbd2Vha1RoaXMgPSBtYWtlV2Vha1B0cigqdGhpcyldIHsK
KyAgICAgICAgICAgIGlmICh3ZWFrVGhpcykKKyAgICAgICAgICAgICAgICB3ZWFrVGhpcy0+dWlB
c3NlcnRpb25XaWxsRXhwaXJlSW1taW5lbnRseSgpOwogICAgICAgICB9KTsKICAgICAgICAgbV9h
c3NlcnRpb24gPSBXVEZNb3ZlKGFzc2VydGlvbik7CiAgICAgfSBlbHNlCi0gICAgICAgIG1fYXNz
ZXJ0aW9uID0gbWFrZVVuaXF1ZTxQcm9jZXNzQXNzZXJ0aW9uPihtX3Byb2Nlc3NJZGVudGlmaWVy
LCBhc3NlcnRpb25OYW1lKG5ld1R5cGUpLCBuZXdUeXBlKTsKKyAgICAgICAgbV9hc3NlcnRpb24g
PSBQcm9jZXNzQXNzZXJ0aW9uOjpjcmVhdGUobV9wcm9jZXNzSWRlbnRpZmllciwgYXNzZXJ0aW9u
TmFtZShuZXdUeXBlKSwgbmV3VHlwZSwgUHJvY2Vzc0Fzc2VydGlvbjo6TW9kZTo6QXN5bmMsIFtw
cmV2aW91c0Fzc2VydGlvbiA9IFdURk1vdmUocHJldmlvdXNBc3NlcnRpb24pXSB7IH0pOwogCi0g
ICAgbV9hc3NlcnRpb24tPnNldEludmFsaWRhdGlvbkhhbmRsZXIoW3RoaXNdIHsKLSAgICAgICAg
YXNzZXJ0aW9uV2FzSW52YWxpZGF0ZWQoKTsKKyAgICBtX2Fzc2VydGlvbi0+c2V0SW52YWxpZGF0
aW9uSGFuZGxlcihbd2Vha1RoaXMgPSBtYWtlV2Vha1B0cigqdGhpcyldIHsKKyAgICAgICAgaWYg
KHdlYWtUaGlzKQorICAgICAgICAgICAgd2Vha1RoaXMtPmFzc2VydGlvbldhc0ludmFsaWRhdGVk
KCk7CiAgICAgfSk7CiAgICAgbV9wcm9jZXNzLmRpZFNldEFzc2VydGlvblR5cGUobmV3VHlwZSk7
CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Qcm9jZXNzVGhyb3R0bGVy
LmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Qcm9jZXNzVGhyb3R0bGVyLmgKaW5kZXggYmQ2
ODVlN2NjYjE3Y2YyZDgzYjUyZDQ2ZDcyMGZhNmM1OWVmYjQwYy4uNjlhN2M1NTUyNTE3ZWM1NGE1
NjRlYzRkMWNjNGRmYTNkYzI5MjhlMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvUHJvY2Vzc1Rocm90dGxlci5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1Byb2Nl
c3NUaHJvdHRsZXIuaApAQCAtMTQ5LDcgKzE0OSw3IEBAIHByaXZhdGU6CiAKICAgICBQcm9jZXNz
VGhyb3R0bGVyQ2xpZW50JiBtX3Byb2Nlc3M7CiAgICAgUHJvY2Vzc0lEIG1fcHJvY2Vzc0lkZW50
aWZpZXIgeyAwIH07Ci0gICAgc3RkOjp1bmlxdWVfcHRyPFByb2Nlc3NBc3NlcnRpb24+IG1fYXNz
ZXJ0aW9uOworICAgIFJlZlB0cjxQcm9jZXNzQXNzZXJ0aW9uPiBtX2Fzc2VydGlvbjsKICAgICBS
dW5Mb29wOjpUaW1lcjxQcm9jZXNzVGhyb3R0bGVyPiBtX3ByZXBhcmVUb1N1c3BlbmRUaW1lb3V0
VGltZXI7CiAgICAgSGFzaFNldDxGb3JlZ3JvdW5kQWN0aXZpdHkqPiBtX2ZvcmVncm91bmRBY3Rp
dml0aWVzOwogICAgIEhhc2hTZXQ8QmFja2dyb3VuZEFjdGl2aXR5Kj4gbV9iYWNrZ3JvdW5kQWN0
aXZpdGllczsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQ
b29sLmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQb29sLmNwcAppbmRl
eCA5NDI1OWQ1YTNmNzM1ODBiZWJjZGFhYmM3OGJkNDg3ZTgzNTEwYzc3Li5hYzM4ZWQxYjViNWIw
YTAzOGM4NDc1MjYxMTc0YzY1M2E3NDNiYjU2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9XZWJQcm9jZXNzUG9vbC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
V2ViUHJvY2Vzc1Bvb2wuY3BwCkBAIC0yMDI4LDkgKzIwMjgsOSBAQCB2b2lkIFdlYlByb2Nlc3NQ
b29sOjp1cGRhdGVBdWRpYmxlTWVkaWFBc3NlcnRpb25zKCkKIAogICAgIFdFQlBST0NFU1NQT09M
X1JFTEVBU0VfTE9HKFByb2Nlc3NTdXNwZW5zaW9uLCAidXBkYXRlQXVkaWJsZU1lZGlhQXNzZXJ0
aW9uczogVGhlIG51bWJlciBvZiBwcm9jZXNzZXMgcGxheWluZyBhdWRpYmxlIG1lZGlhIGlzIG5v
dyBncmVhdGVyIHRoYW4gemVyby4gVGFraW5nIFVJIHByb2Nlc3MgYXNzZXJ0aW9uLiIpOwogICAg
IG1fYXVkaWJsZU1lZGlhQWN0aXZpdHkgPSBBdWRpYmxlTWVkaWFBY3Rpdml0eSB7Ci0gICAgICAg
IG1ha2VVbmlxdWVSZWY8UHJvY2Vzc0Fzc2VydGlvbj4oZ2V0Q3VycmVudFByb2Nlc3NJRCgpLCAi
V2ViS2l0IE1lZGlhIFBsYXliYWNrIl9zLCBQcm9jZXNzQXNzZXJ0aW9uVHlwZTo6TWVkaWFQbGF5
YmFjaykKKyAgICAgICAgUHJvY2Vzc0Fzc2VydGlvbjo6Y3JlYXRlKGdldEN1cnJlbnRQcm9jZXNz
SUQoKSwgIldlYktpdCBNZWRpYSBQbGF5YmFjayJfcywgUHJvY2Vzc0Fzc2VydGlvblR5cGU6Ok1l
ZGlhUGxheWJhY2spCiAjaWYgRU5BQkxFKEdQVV9QUk9DRVNTKQotICAgICAgICAsIGdwdVByb2Nl
c3MoKSA/IG1ha2VVbmlxdWU8UHJvY2Vzc0Fzc2VydGlvbj4oZ3B1UHJvY2VzcygpLT5wcm9jZXNz
SWRlbnRpZmllcigpLCAiV2ViS2l0IE1lZGlhIFBsYXliYWNrIl9zLCBQcm9jZXNzQXNzZXJ0aW9u
VHlwZTo6TWVkaWFQbGF5YmFjaykgOiBudWxscHRyCisgICAgICAgICwgZ3B1UHJvY2VzcygpID8g
UmVmUHRyPFByb2Nlc3NBc3NlcnRpb24+IHsgUHJvY2Vzc0Fzc2VydGlvbjo6Y3JlYXRlKGdwdVBy
b2Nlc3MoKS0+cHJvY2Vzc0lkZW50aWZpZXIoKSwgIldlYktpdCBNZWRpYSBQbGF5YmFjayJfcywg
UHJvY2Vzc0Fzc2VydGlvblR5cGU6Ok1lZGlhUGxheWJhY2spIH0gOiBudWxscHRyCiAjZW5kaWYK
ICAgICB9OwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vz
c1Bvb2wuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQb29sLmgKaW5kZXgg
MjkzNjFhMDQ4NTFiNGJlNmIyNGZlYjM2YzM0NTI2NjFiODRjYjI2Mi4uNGVmNTQxZDA3OWUxN2Qw
YzY0NDc0NmFlZDI0OTYwOTI5NDE3YmIzNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvV2ViUHJvY2Vzc1Bvb2wuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQ
cm9jZXNzUG9vbC5oCkBAIC03NjMsOSArNzYzLDkgQEAgcHJpdmF0ZToKICAgICBXZWJQcm9jZXNz
V2l0aEF1ZGlibGVNZWRpYUNvdW50ZXIgbV93ZWJQcm9jZXNzV2l0aEF1ZGlibGVNZWRpYUNvdW50
ZXI7CiAKICAgICBzdHJ1Y3QgQXVkaWJsZU1lZGlhQWN0aXZpdHkgewotICAgICAgICBVbmlxdWVS
ZWY8UHJvY2Vzc0Fzc2VydGlvbj4gdWlQcm9jZXNzTWVkaWFQbGF5YmFja0Fzc2VydGlvbjsKKyAg
ICAgICAgUmVmPFByb2Nlc3NBc3NlcnRpb24+IHVpUHJvY2Vzc01lZGlhUGxheWJhY2tBc3NlcnRp
b247CiAjaWYgRU5BQkxFKEdQVV9QUk9DRVNTKQotICAgICAgICBzdGQ6OnVuaXF1ZV9wdHI8UHJv
Y2Vzc0Fzc2VydGlvbj4gZ3B1UHJvY2Vzc01lZGlhUGxheWJhY2tBc3NlcnRpb247CisgICAgICAg
IFJlZlB0cjxQcm9jZXNzQXNzZXJ0aW9uPiBncHVQcm9jZXNzTWVkaWFQbGF5YmFja0Fzc2VydGlv
bjsKICNlbmRpZgogICAgIH07CiAgICAgc3RkOjpvcHRpb25hbDxBdWRpYmxlTWVkaWFBY3Rpdml0
eT4gbV9hdWRpYmxlTWVkaWFBY3Rpdml0eTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL1dlYlByb2Nlc3NQcm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQ
cm9jZXNzUHJveHkuY3BwCmluZGV4IGIxYjQ4ODAwMGY3MGI5MmQwNzViNzg2ZDY2ZTE5OGFlYTU4
MWVlYTUuLjFmNTgzMmNjODM5NDJjOGU2NDc2Mzg4ZjE2NmE1NDA2ZDRlNTZlZjMgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5jcHAKKysrIGIvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5LmNwcApAQCAtMTQ5NCw3ICsxNDk0
LDcgQEAgdm9pZCBXZWJQcm9jZXNzUHJveHk6OnVwZGF0ZUF1ZGlibGVNZWRpYUFzc2VydGlvbnMo
KQogICAgIGlmIChuZXdIYXNBdWRpYmxlV2ViUGFnZSkgewogICAgICAgICBXRUJQUk9DRVNTUFJP
WFlfUkVMRUFTRV9MT0coUHJvY2Vzc1N1c3BlbnNpb24sICJ1cGRhdGVBdWRpYmxlTWVkaWFBc3Nl
cnRpb25zOiBUYWtpbmcgTWVkaWFQbGF5YmFjayBhc3NlcnRpb24gZm9yIFdlYlByb2Nlc3MiKTsK
ICAgICAgICAgbV9hdWRpYmxlTWVkaWFBY3Rpdml0eSA9IEF1ZGlibGVNZWRpYUFjdGl2aXR5IHsK
LSAgICAgICAgICAgIG1ha2VVbmlxdWVSZWY8UHJvY2Vzc0Fzc2VydGlvbj4ocHJvY2Vzc0lkZW50
aWZpZXIoKSwgIldlYktpdCBNZWRpYSBQbGF5YmFjayJfcywgUHJvY2Vzc0Fzc2VydGlvblR5cGU6
Ok1lZGlhUGxheWJhY2spLAorICAgICAgICAgICAgUHJvY2Vzc0Fzc2VydGlvbjo6Y3JlYXRlKHBy
b2Nlc3NJZGVudGlmaWVyKCksICJXZWJLaXQgTWVkaWEgUGxheWJhY2siX3MsIFByb2Nlc3NBc3Nl
cnRpb25UeXBlOjpNZWRpYVBsYXliYWNrKSwKICAgICAgICAgICAgIHByb2Nlc3NQb29sKCkud2Vi
UHJvY2Vzc1dpdGhBdWRpYmxlTWVkaWFUb2tlbigpCiAgICAgICAgIH07CiAgICAgfSBlbHNlIHsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5oIGIv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5LmgKaW5kZXggMzVjY2I4OTI5
OGFlOWI2YzFjMWE3NjJiMzBkMmYwZjgxYmYyNDI5ZC4uZGI0Yjk5M2IzNmYwZTQxMDJkMzhkZmYx
MGY0ZDAwNWE4YzczMmUwOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2Vi
UHJvY2Vzc1Byb3h5LmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1By
b3h5LmgKQEAgLTYzOSw3ICs2MzksNyBAQCBwcml2YXRlOgogICAgIEhhc2hNYXA8V2ViQ29yZTo6
U2xlZXBEaXNhYmxlcklkZW50aWZpZXIsIHN0ZDo6dW5pcXVlX3B0cjxXZWJDb3JlOjpTbGVlcERp
c2FibGVyPj4gbV9zbGVlcERpc2FibGVyczsKIAogICAgIHN0cnVjdCBBdWRpYmxlTWVkaWFBY3Rp
dml0eSB7Ci0gICAgICAgIFVuaXF1ZVJlZjxQcm9jZXNzQXNzZXJ0aW9uPiBhc3NlcnRpb247Cisg
ICAgICAgIFJlZjxQcm9jZXNzQXNzZXJ0aW9uPiBhc3NlcnRpb247CiAgICAgICAgIFdlYlByb2Nl
c3NXaXRoQXVkaWJsZU1lZGlhVG9rZW4gdG9rZW47CiAgICAgfTsKICAgICBzdGQ6Om9wdGlvbmFs
PEF1ZGlibGVNZWRpYUFjdGl2aXR5PiBtX2F1ZGlibGVNZWRpYUFjdGl2aXR5OwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1Byb2Nlc3NBc3NlcnRpb25JT1MubW0gYi9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvUHJvY2Vzc0Fzc2VydGlvbklPUy5tbQppbmRleCA1
NmFlNjJlNDVkNzEzZGNiM2M0MThhZjQxYThkZDhlMTEwMWEzNjgyLi5jMTdlZWMzNmVjZDEzMjI2
YzBkZjBmMjIzZjMyOTBkZjNiNWNmYjU4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9pb3MvUHJvY2Vzc0Fzc2VydGlvbklPUy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9pb3MvUHJvY2Vzc0Fzc2VydGlvbklPUy5tbQpAQCAtNDEsNiArNDEsMTIgQEAKIAogdXNp
bmcgV2ViS2l0OjpQcm9jZXNzQW5kVUlBc3NlcnRpb247CiAKK3N0YXRpYyBXb3JrUXVldWUmIGFz
c2VydGlvbnNXb3JrUXVldWUoKQoreworICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxSZWY8V29y
a1F1ZXVlPj4gd29ya1F1ZXVlKFdvcmtRdWV1ZTo6Y3JlYXRlKCJQcm9jZXNzQXNzZXJ0aW9uIFF1
ZXVlIikpOworICAgIHJldHVybiB3b3JrUXVldWUuZ2V0KCk7Cit9CisKIC8vIFRoaXMgZ2l2ZXMg
c29tZSB0aW1lIHRvIG91ciBjaGlsZCBwcm9jZXNzZXMgdG8gcHJvY2VzcyB0aGUgUHJvY2Vzc1dp
bGxTdXNwZW5kSW1taW5lbnRseSBJUEMgYnV0IG1ha2VzIHN1cmUgd2UgcmVsZWFzZQogLy8gdGhl
IGJhY2tncm91bmQgdGFzayBiZWZvcmUgdGhlIFVJS2l0IHRpbWVvdXQgKFdlIGdldCBraWxsZWQg
aWYgd2UgZG8gbm90IHJlbGVhc2UgdGhlIGJhY2tncm91bmQgdGFzayB3aXRoaW4gNSBzZWNvbmRz
CiAvLyBvbiB0aGUgZXhwaXJhdGlvbiBoYW5kbGVyIGdldHRpbmcgY2FsbGVkKS4KQEAgLTY0LDYg
KzcwLDcgQEAgQGVuZAogQGltcGxlbWVudGF0aW9uIFdLUHJvY2Vzc0Fzc2VydGlvbkJhY2tncm91
bmRUYXNrTWFuYWdlcgogewogICAgIFJldGFpblB0cjxSQlNBc3NlcnRpb24+IF9iYWNrZ3JvdW5k
VGFzazsKKyAgICBzdGQ6OmF0b21pYzxib29sPiBfYmFja2dyb3VuZFRhc2tXYXNJbnZhbGlkYXRl
ZDsKICAgICBXZWFrSGFzaFNldDxQcm9jZXNzQW5kVUlBc3NlcnRpb24+IF9hc3NlcnRpb25zTmVl
ZGluZ0JhY2tncm91bmRUYXNrOwogICAgIGRpc3BhdGNoX2Jsb2NrX3QgX3BlbmRpbmdUYXNrUmVs
ZWFzZVRhc2s7CiB9CkBAIC0xNjAsNyArMTY3LDcgQEAgLSAoQk9PTClfaGFzQmFja2dyb3VuZFRh
c2sKIAogLSAodm9pZClfdXBkYXRlQmFja2dyb3VuZFRhc2sKIHsKLSAgICBpZiAoIV9hc3NlcnRp
b25zTmVlZGluZ0JhY2tncm91bmRUYXNrLmNvbXB1dGVzRW1wdHkoKSAmJiAhW3NlbGYgX2hhc0Jh
Y2tncm91bmRUYXNrXSkgeworICAgIGlmICghX2Fzc2VydGlvbnNOZWVkaW5nQmFja2dyb3VuZFRh
c2suY29tcHV0ZXNFbXB0eSgpICYmICghW3NlbGYgX2hhc0JhY2tncm91bmRUYXNrXSB8fCBfYmFj
a2dyb3VuZFRhc2tXYXNJbnZhbGlkYXRlZCkpIHsKICAgICAgICAgaWYgKHByb2Nlc3NIYXNBY3Rp
dmVSdW5UaW1lTGltaXRhdGlvbigpKSB7CiAgICAgICAgICAgICBSRUxFQVNFX0xPRyhQcm9jZXNz
U3VzcGVuc2lvbiwgIiVwIC0gV0tQcm9jZXNzQXNzZXJ0aW9uQmFja2dyb3VuZFRhc2tNYW5hZ2Vy
OiBJZ25vcmVkIHJlcXVlc3QgdG8gc3RhcnQgYSBuZXcgYmFja2dyb3VuZCB0YXNrIGJlY2F1c2Ug
UnVubmluZ0JvYXJkIGhhcyBhbHJlYWR5IHN0YXJ0ZWQgdGhlIGV4cGlyYXRpb24gdGltZXIiLCBz
ZWxmKTsKICAgICAgICAgICAgIHJldHVybjsKQEAgLTE3MSwxMSArMTc4LDkgQEAgLSAodm9pZClf
dXBkYXRlQmFja2dyb3VuZFRhc2sKICAgICAgICAgX2JhY2tncm91bmRUYXNrID0gYWRvcHROUyhb
W1JCU0Fzc2VydGlvbiBhbGxvY10gaW5pdFdpdGhFeHBsYW5hdGlvbjpAIldlYktpdCBVSVByb2Nl
c3MgYmFja2dyb3VuZCB0YXNrIiB0YXJnZXQ6dGFyZ2V0IGF0dHJpYnV0ZXM6QFtkb21haW5BdHRy
aWJ1dGVdXSk7CiAgICAgICAgIFtfYmFja2dyb3VuZFRhc2sgYWRkT2JzZXJ2ZXI6c2VsZl07CiAK
LSAgICAgICAgTlNFcnJvciAqYWNxdWlzaXRpb25FcnJvciA9IG5pbDsKLSAgICAgICAgaWYgKCFb
X2JhY2tncm91bmRUYXNrIGFjcXVpcmVXaXRoRXJyb3I6JmFjcXVpc2l0aW9uRXJyb3JdKQotICAg
ICAgICAgICAgUkVMRUFTRV9MT0dfRVJST1IoUHJvY2Vzc1N1c3BlbnNpb24sICJXS1Byb2Nlc3NB
c3NlcnRpb25CYWNrZ3JvdW5kVGFza01hbmFnZXI6IEZhaWxlZCB0byBhY3F1aXJlIEZpbmlzaFRh
c2tJbnRlcnJ1cHRhYmxlIGFzc2VydGlvbiBmb3Igb3duIHByb2Nlc3MsIGVycm9yOiAle3B1Ymxp
Y31AIiwgYWNxdWlzaXRpb25FcnJvcik7Ci0gICAgICAgIGVsc2UKLSAgICAgICAgICAgIFJFTEVB
U0VfTE9HKFByb2Nlc3NTdXNwZW5zaW9uLCAiV0tQcm9jZXNzQXNzZXJ0aW9uQmFja2dyb3VuZFRh
c2tNYW5hZ2VyOiBTdWNjZXNzZnVsbHkgdG9vayBhIEZpbmlzaFRhc2tJbnRlcnJ1cHRhYmxlIGFz
c2VydGlvbiBmb3Igb3duIHByb2Nlc3MiKTsKKyAgICAgICAgX2JhY2tncm91bmRUYXNrV2FzSW52
YWxpZGF0ZWQgPSBmYWxzZTsKKyAgICAgICAgW19iYWNrZ3JvdW5kVGFzayBhY3F1aXJlV2l0aElu
dmFsaWRhdGlvbkhhbmRsZXI6bmlsXTsKKyAgICAgICAgUkVMRUFTRV9MT0coUHJvY2Vzc1N1c3Bl
bnNpb24sICJXS1Byb2Nlc3NBc3NlcnRpb25CYWNrZ3JvdW5kVGFza01hbmFnZXI6IFRvb2sgYSBG
aW5pc2hUYXNrSW50ZXJydXB0YWJsZSBhc3NlcnRpb24gZm9yIG93biBwcm9jZXNzIik7CiAgICAg
fSBlbHNlIGlmIChfYXNzZXJ0aW9uc05lZWRpbmdCYWNrZ3JvdW5kVGFzay5jb21wdXRlc0VtcHR5
KCkpIHsKICAgICAgICAgLy8gUmVsZWFzZSB0aGUgYmFja2dyb3VuZCB0YXNrIGFzeW5jaHJvbm91
c2x5IGJlY2F1c2UgcmVsZWFzaW5nIHRoZSBiYWNrZ3JvdW5kIHRhc2sgbWF5IGRlc3Ryb3kgdGhl
IFByb2Nlc3NUaHJvdHRsZXIgYW5kIHdlIGRvbid0CiAgICAgICAgIC8vIHdhbnQgaXQgdG8gZ2V0
IGRlc3Ryb3llZCB3aGlsZSBpbiB0aGUgbWlkZGxlIG9mIHVwZGF0aW5nIGl0cyBhc3NlcnRpb24u
CkBAIC0xOTYsNiArMjAxLDcgQEAgLSAodm9pZClhc3NlcnRpb246KFJCU0Fzc2VydGlvbiAqKWFz
c2VydGlvbiBkaWRJbnZhbGlkYXRlV2l0aEVycm9yOihOU0Vycm9yICopZXIKIHsKICAgICBBU1NF
UlQoYXNzZXJ0aW9uID09IF9iYWNrZ3JvdW5kVGFzay5nZXQoKSk7CiAgICAgUkVMRUFTRV9MT0df
RVJST1IoUHJvY2Vzc1N1c3BlbnNpb24sICJXS1Byb2Nlc3NBc3NlcnRpb25CYWNrZ3JvdW5kVGFz
a01hbmFnZXI6IEZpbmlzaFRhc2tJbnRlcnJ1cHRhYmxlIGFzc2VydGlvbiB3YXMgaW52YWxpZGF0
ZWQsIGVycm9yOiAle3B1YmxpY31AIiwgZXJyb3IpOworICAgIF9iYWNrZ3JvdW5kVGFza1dhc0lu
dmFsaWRhdGVkID0gdHJ1ZTsKIH0KIAogLSAodm9pZClfaGFuZGxlQmFja2dyb3VuZFRhc2tFeHBp
cmF0aW9uCkBAIC0zMTksNiArMzI1LDcgQEAgUHJvY2Vzc0Fzc2VydGlvbjo6UHJvY2Vzc0Fzc2Vy
dGlvbihwaWRfdCBwaWQsIGNvbnN0IFN0cmluZyYgcmVhc29uLCBQcm9jZXNzQXNzZXIKICAgICBB
U1NFUlQocnVubmluZ0JvYXJkQXNzZXJ0aW9uTmFtZSk7CiAgICAgaWYgKCFwaWQpIHsKICAgICAg
ICAgUkVMRUFTRV9MT0dfRVJST1IoUHJvY2Vzc1N1c3BlbnNpb24sICIlcCAtIFByb2Nlc3NBc3Nl
cnRpb246IEZhaWxlZCB0byBhY3F1aXJlIFJCUyAle3B1YmxpY31AIGFzc2VydGlvbiAnJXtwdWJs
aWN9cycgZm9yIHByb2Nlc3MgYmVjYXVzZSBQSUQgaXMgaW52YWxpZCIsIHRoaXMsIHJ1bm5pbmdC
b2FyZEFzc2VydGlvbk5hbWUsIHJlYXNvbi51dGY4KCkuZGF0YSgpKTsKKyAgICAgICAgbV93YXNJ
bnZhbGlkYXRlZCA9IHRydWU7CiAgICAgICAgIHJldHVybjsKICAgICB9CiAKQEAgLTMyOSwyNCAr
MzM2LDM2IEBAIFByb2Nlc3NBc3NlcnRpb246OlByb2Nlc3NBc3NlcnRpb24ocGlkX3QgcGlkLCBj
b25zdCBTdHJpbmcmIHJlYXNvbiwgUHJvY2Vzc0Fzc2VyCiAgICAgbV9kZWxlZ2F0ZSA9IGFkb3B0
TlMoW1tXS1JCU0Fzc2VydGlvbkRlbGVnYXRlIGFsbG9jXSBpbml0XSk7CiAgICAgW21fcmJzQXNz
ZXJ0aW9uIGFkZE9ic2VydmVyOm1fZGVsZWdhdGUuZ2V0KCldOwogICAgIG1fZGVsZWdhdGUuZ2V0
KCkuaW52YWxpZGF0aW9uQ2FsbGJhY2sgPSBeewotICAgICAgICBSRUxFQVNFX0xPRyhQcm9jZXNz
U3VzcGVuc2lvbiwgIiVwIC0gUHJvY2Vzc0Fzc2VydGlvbigpIFJCUyAle3B1YmxpY31AIGFzc2Vy
dGlvbiBmb3IgcHJvY2VzcyB3aXRoIFBJRD0lZCB3YXMgaW52YWxpZGF0ZWQiLCB0aGlzLCBydW5u
aW5nQm9hcmRBc3NlcnRpb25OYW1lLCBwaWQpOworICAgICAgICBSRUxFQVNFX0xPRyhQcm9jZXNz
U3VzcGVuc2lvbiwgIiVwIC0gUHJvY2Vzc0Fzc2VydGlvbjogUkJTICV7cHVibGljfUAgYXNzZXJ0
aW9uIGZvciBwcm9jZXNzIHdpdGggUElEPSVkIHdhcyBpbnZhbGlkYXRlZCIsIHRoaXMsIHJ1bm5p
bmdCb2FyZEFzc2VydGlvbk5hbWUsIHBpZCk7CiAgICAgICAgIHByb2Nlc3NBc3NlcnRpb25XYXNJ
bnZhbGlkYXRlZCgpOwogICAgIH07Cit9CiAKK3ZvaWQgUHJvY2Vzc0Fzc2VydGlvbjo6YWNxdWly
ZUFzeW5jKENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKK3sK
KyAgICBhc3NlcnRpb25zV29ya1F1ZXVlKCkuZGlzcGF0Y2goW3Byb3RlY3RlZFRoaXMgPSBtYWtl
UmVmKCp0aGlzKSwgY29tcGxldGlvbkhhbmRsZXIgPSBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVy
KV0oKSBtdXRhYmxlIHsKKyAgICAgICAgcHJvdGVjdGVkVGhpcy0+YWNxdWlyZVN5bmMoKTsKKyAg
ICAgICAgaWYgKGNvbXBsZXRpb25IYW5kbGVyKQorICAgICAgICAgICAgUnVuTG9vcDo6bWFpbigp
LmRpc3BhdGNoKFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpKTsKKyAgICB9KTsKK30KKwordm9p
ZCBQcm9jZXNzQXNzZXJ0aW9uOjphY3F1aXJlU3luYygpCit7CiAgICAgTlNFcnJvciAqYWNxdWlz
aXRpb25FcnJvciA9IG5pbDsKICAgICBpZiAoIVttX3Jic0Fzc2VydGlvbiBhY3F1aXJlV2l0aEVy
cm9yOiZhY3F1aXNpdGlvbkVycm9yXSkgewotICAgICAgICBSRUxFQVNFX0xPR19FUlJPUihQcm9j
ZXNzU3VzcGVuc2lvbiwgIiVwIC0gUHJvY2Vzc0Fzc2VydGlvbjogRmFpbGVkIHRvIGFjcXVpcmUg
UkJTICV7cHVibGljfUAgYXNzZXJ0aW9uICcle3B1YmxpY31zJyBmb3IgcHJvY2VzcyB3aXRoIFBJ
RD0lZCwgZXJyb3I6ICV7cHVibGljfUAiLCB0aGlzLCBydW5uaW5nQm9hcmRBc3NlcnRpb25OYW1l
LCByZWFzb24udXRmOCgpLmRhdGEoKSwgcGlkLCBhY3F1aXNpdGlvbkVycm9yKTsKKyAgICAgICAg
UkVMRUFTRV9MT0dfRVJST1IoUHJvY2Vzc1N1c3BlbnNpb24sICIlcCAtIFByb2Nlc3NBc3NlcnRp
b246IEZhaWxlZCB0byBhY3F1aXJlIFJCUyBhc3NlcnRpb24gJyV7cHVibGljfXMnIGZvciBwcm9j
ZXNzIHdpdGggUElEPSVkLCBlcnJvcjogJXtwdWJsaWN9QCIsIHRoaXMsIG1fcmVhc29uLnV0Zjgo
KS5kYXRhKCksIG1fcGlkLCBhY3F1aXNpdGlvbkVycm9yKTsKICAgICAgICAgUnVuTG9vcDo6bWFp
bigpLmRpc3BhdGNoKFt3ZWFrVGhpcyA9IG1ha2VXZWFrUHRyKCp0aGlzKV0gewogICAgICAgICAg
ICAgaWYgKHdlYWtUaGlzKQogICAgICAgICAgICAgICAgIHdlYWtUaGlzLT5wcm9jZXNzQXNzZXJ0
aW9uV2FzSW52YWxpZGF0ZWQoKTsKICAgICAgICAgfSk7CiAgICAgfSBlbHNlCi0gICAgICAgIFJF
TEVBU0VfTE9HKFByb2Nlc3NTdXNwZW5zaW9uLCAiJXAgLSBQcm9jZXNzQXNzZXJ0aW9uOiBTdWNj
ZXNzZnVsbHkgdG9vayBSQlMgJXtwdWJsaWN9QCBhc3NlcnRpb24gJyV7cHVibGljfXMnIGZvciBw
cm9jZXNzIHdpdGggUElEPSVkIiwgdGhpcywgcnVubmluZ0JvYXJkQXNzZXJ0aW9uTmFtZSwgcmVh
c29uLnV0ZjgoKS5kYXRhKCksIHBpZCk7CisgICAgICAgIFJFTEVBU0VfTE9HKFByb2Nlc3NTdXNw
ZW5zaW9uLCAiJXAgLSBQcm9jZXNzQXNzZXJ0aW9uOiBTdWNjZXNzZnVsbHkgdG9vayBSQlMgYXNz
ZXJ0aW9uICcle3B1YmxpY31zJyBmb3IgcHJvY2VzcyB3aXRoIFBJRD0lZCIsIHRoaXMsIG1fcmVh
c29uLnV0ZjgoKS5kYXRhKCksIG1fcGlkKTsKIH0KIAogUHJvY2Vzc0Fzc2VydGlvbjo6flByb2Nl
c3NBc3NlcnRpb24oKQogewotICAgIFJFTEVBU0VfTE9HKFByb2Nlc3NTdXNwZW5zaW9uLCAiJXAg
LSB+UHJvY2Vzc0Fzc2VydGlvbigpIFJlbGVhc2luZyBwcm9jZXNzIGFzc2VydGlvbiAnJXtwdWJs
aWN9cycgZm9yIHByb2Nlc3Mgd2l0aCBQSUQ9JWQiLCB0aGlzLCBtX3JlYXNvbi51dGY4KCkuZGF0
YSgpLCBtX3BpZCk7CisgICAgUkVMRUFTRV9MT0coUHJvY2Vzc1N1c3BlbnNpb24sICIlcCAtIH5Q
cm9jZXNzQXNzZXJ0aW9uOiBSZWxlYXNpbmcgcHJvY2VzcyBhc3NlcnRpb24gJyV7cHVibGljfXMn
IGZvciBwcm9jZXNzIHdpdGggUElEPSVkIiwgdGhpcywgbV9yZWFzb24udXRmOCgpLmRhdGEoKSwg
bV9waWQpOwogCiAgICAgaWYgKG1fcmJzQXNzZXJ0aW9uKSB7CiAgICAgICAgIG1fZGVsZWdhdGUu
Z2V0KCkuaW52YWxpZGF0aW9uQ2FsbGJhY2sgPSBuaWw7CkBAIC0zNjEsMTMgKzM4MCwxNCBAQCB2
b2lkIFByb2Nlc3NBc3NlcnRpb246OnByb2Nlc3NBc3NlcnRpb25XYXNJbnZhbGlkYXRlZCgpCiAg
ICAgQVNTRVJUKFJ1bkxvb3A6OmlzTWFpbigpKTsKICAgICBSRUxFQVNFX0xPRyhQcm9jZXNzU3Vz
cGVuc2lvbiwgIiVwIC0gUHJvY2Vzc0Fzc2VydGlvbjo6cHJvY2Vzc0Fzc2VydGlvbldhc0ludmFs
aWRhdGVkKCkgUElEPSVkIiwgdGhpcywgbV9waWQpOwogCisgICAgbV93YXNJbnZhbGlkYXRlZCA9
IHRydWU7CiAgICAgaWYgKG1faW52YWxpZGF0aW9uSGFuZGxlcikKICAgICAgICAgbV9pbnZhbGlk
YXRpb25IYW5kbGVyKCk7CiB9CiAKIGJvb2wgUHJvY2Vzc0Fzc2VydGlvbjo6aXNWYWxpZCgpIGNv
bnN0CiB7Ci0gICAgcmV0dXJuIG1fcmJzQXNzZXJ0aW9uICYmIG1fcmJzQXNzZXJ0aW9uLmdldCgp
LnZhbGlkOworICAgIHJldHVybiAhbV93YXNJbnZhbGlkYXRlZDsKIH0KIAogdm9pZCBQcm9jZXNz
QW5kVUlBc3NlcnRpb246OnVwZGF0ZVJ1bkluQmFja2dyb3VuZENvdW50KCkK
</data>
<flag name="commit-queue"
          id="454892"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>432829</attachid>
            <date>2021-07-02 15:36:13 -0700</date>
            <delta_ts>2021-07-06 12:01:37 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-225324-20210702153612.patch</filename>
            <type>text/plain</type>
            <size>32503</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc5NTE0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IGVjZjBkOGJiOTBhNTAxN2Qy
ZmMwZTM0ZDZiMjI0ZmY5YjVhNjk5NDMuLjc3NTRlNjlmMjQ1MTdjNDZmMDk2ZjM5YjZkMzNiNTAx
YzM0YjE0M2QgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNzAgQEAKKzIwMjEtMDctMDEgIENocmlzIER1
bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KKworICAgICAgICBbaU9TXSBIYXZlIFByb2Nlc3NBc3Nl
cnRpb24gdGFrZSB0aGUgUnVubmluZ0JvYXJkIGFzc2VydGlvbiBhc3luY2hyb25vdXNseSBieSBk
ZWZhdWx0CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0y
MjUzMjQKKyAgICAgICAgPHJkYXI6Ly83Njk3MjI1Mj4KKworICAgICAgICBSZXZpZXdlZCBieSBO
T0JPRFkgKE9PUFMhKS4KKworICAgICAgICBIYXZlIFByb2Nlc3NBc3NlcnRpb24gdGFrZSB0aGUg
UnVubmluZ0JvYXJkIGFzc2VydGlvbiBhc3luY2hyb25vdXNseSAob24gYSBiYWNrZ3JvdW5kIHRo
cmVhZCkgYnkKKyAgICAgICAgZGVmYXVsdCBhcyB3ZSBoYXZlIGV2aWRlbmNlIHRoYXQgZG9pbmcg
c28gb24gdGhlIG1haW4gdGhyZWFkIGlzIGJhZCBmb3IgcGVyZm9ybWFuY2UgYW5kIG1heQorICAg
ICAgICBuZWdhdGl2ZWx5IGltcGFjdCBsYXVuY2ggdGltZS4KKworICAgICAgICBXaGVuIGNvbnN0
cnVjdGluZyBhIFByb2Nlc3NBc3NlcnRpb24sIHRoZSBjYWxsZXIgY2FuIG5vdyBpbmRpY2F0ZSBp
ZiBpdCB3YW50cyB0aGUgYXNzZXJ0aW9uIHRvIGJlCisgICAgICAgIHRha2VuIGFzeW5jaHJvbm91
c2x5IChkZWZhdWx0KSBvciBub3QuIEJ1ZyAyMjc1NTIgaXMgYW4gZXhhbXBsZSBvZiBhIGNhc2Ug
d2hlcmUgd2Ugc3RpbGwgd2FudCB0bworICAgICAgICB0YWtlIHRoZSBhc3NlcnRpb24gc3luY2hy
b25vdXNseSAoYmVjYXVzZSB3ZSdyZSBub3Qgb24gdGhlIG1haW4gdGhyZWFkIGFuZCB3ZSBuZWVk
IHRvIG1ha2Ugc3VyZQorICAgICAgICB3ZSBoYXZlIHRoZSBhc3NlcnRpb24gYmVmb3JlIHByb2Nl
ZWRpbmcpLgorCisgICAgICAgIFRoZSBjYWxsZXIgY2FuIGFsc28gcHJvdmlkZSBhIGNvbXBsZXRp
b24gaGFuZGxlciB0aGF0IHdpbGwgZ2V0IGNhbGxlZCBvbmNlIHRoZSBSdW5uaW5nQm9hcmQgaXMK
KyAgICAgICAgdGFrZW4uIE5vdGUgdGhhdCB0aGUgUnVubmluZ0JvYXJkIGFzeW5jIEFQSSAoW1JC
U0Fzc2VydGlvbiBhY3F1aXJlV2l0aEludmFsaWRhdGlvbkhhbmRsZXJdKSBkb2VzCisgICAgICAg
IG5vdCBwcm92aWRlIGEgd2F5IGZvciB1cyB0byBrbm93IHdoZW4gdGhlIGFzc2VydGlvbiBpcyB0
YWtlbi4gRm9yIHRoaXMgcmVhc29uLCBQcm9jZXNzQXNzZXJ0aW9uCisgICAgICAgIGtlZXBzIHVz
aW5nIHRoZSBSdW5uaW5nQm9hcmQgc3luYyBBUEkgKFtSQlNBc3NlcnRpb24gYWNxdWlyZVdpdGhF
cnJvcjpdKSBidXQgY2FsbHMgaW4gb24gYQorICAgICAgICBiYWNrZ3JvdW5kIHF1ZXVlLgorCisg
ICAgICAgIEZvciB0aGUgVUlQcm9jZXNzJ3MgYmFja2dyb3VuZCB0YXNrIHRob3VnaCwgd2UgZG9u
J3QgbmVlZCB0byBrbm93IHdoZW4gdGhlIGFzc2VydGlvbiBpcyB0YWtlbgorICAgICAgICBzbyB3
ZSBjYW4gdXNlIHRoZSBSdW5uaW5nQm9hcmQgYXN5bmMgQVBJLgorCisgICAgICAgIE5vdGUgdGhh
dCB0aGUgcHJldmlvdXMgaXRlcmF0aW9uIG9mIHRoaXMgcGF0Y2ggaGFkIGEgYnVnIHdoZXJlIHRo
ZSBQcm9jZXNzVGhyb3R0bGVyIHdvdWxkIHJlbGVhc2UKKyAgICAgICAgaXRzIHByZXZpb3VzIGFz
c2VydGlvbiBiZWZvcmUgdGhlIG5ldyBvbmUgaXMgdGFrZW4gKGFzeW5jaHJvbm91c2x5KSB3aGVu
IGNoYW5naW5nIHRoZSBhc3NlcnRpb24KKyAgICAgICAgdHlwZSAoZS5nLiBmb3JlZ3JvdW5kIHRv
IGJhY2tncm91bmQpLiBUaGlzIGlzIGFkZHJlc3NlZCBpbiB0aGlzIHBhdGNoLiBQcm9jZXNzVGhy
b3R0bGVyIG5vdyBwYXNzZXMKKyAgICAgICAgYW4gYWNxdWlzaXRpb24gaGFuZGxlciB3aGVuIGNv
bnN0cnVjdGluZyB0aGUgUHJvY2Vzc0Fzc2VydGlvbiBhbmQgb25seSByZWxlYXNlcyBpdHMgcHJl
dmlvdXMKKyAgICAgICAgYXNzZXJ0aW9uIG9uY2UgdGhlIGFjcXVpc2l0aW9uIGhhbmRsZXIgZm9y
IHRoZSBuZXcgb25lIGlzIHRha2VuLgorCisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvRG93bmxv
YWRzL0Rvd25sb2FkTWFwLmNwcDoKKyAgICAgICAgKFdlYktpdDo6RG93bmxvYWRNYXA6OmFkZCk6
CisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvRG93bmxvYWRzL0Rvd25sb2FkTWFwLmg6CisgICAg
ICAgICogUGxhdGZvcm0vSVBDL2NvY29hL0Nvbm5lY3Rpb25Db2NvYS5tbToKKyAgICAgICAgKElQ
Qzo6Q29ubmVjdGlvblRlcm1pbmF0aW9uV2F0Y2hkb2c6OkNvbm5lY3Rpb25UZXJtaW5hdGlvbldh
dGNoZG9nKToKKyAgICAgICAgKiBVSVByb2Nlc3MvRG93bmxvYWRzL0Rvd25sb2FkUHJveHlNYXAu
Y3BwOgorICAgICAgICAoV2ViS2l0OjpEb3dubG9hZFByb3h5TWFwOjpjcmVhdGVEb3dubG9hZFBy
b3h5KToKKyAgICAgICAgKiBVSVByb2Nlc3MvRG93bmxvYWRzL0Rvd25sb2FkUHJveHlNYXAuaDoK
KyAgICAgICAgKiBVSVByb2Nlc3MvTmV0d29yay9OZXR3b3JrUHJvY2Vzc1Byb3h5LmNwcDoKKyAg
ICAgICAgKFdlYktpdDo6TmV0d29ya1Byb2Nlc3NQcm94eTo6c2V0V2ViUHJvY2Vzc0hhc1VwbG9h
ZHMpOgorICAgICAgICAqIFVJUHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9jZXNzUHJveHkuaDoK
KyAgICAgICAgKiBVSVByb2Nlc3MvUHJvY2Vzc0Fzc2VydGlvbi5jcHA6CisgICAgICAgIChXZWJL
aXQ6OlByb2Nlc3NBc3NlcnRpb246OlByb2Nlc3NBc3NlcnRpb24pOgorICAgICAgICAqIFVJUHJv
Y2Vzcy9Qcm9jZXNzQXNzZXJ0aW9uLmg6CisgICAgICAgIChXZWJLaXQ6OlByb2Nlc3NBc3NlcnRp
b246OmNyZWF0ZSk6CisgICAgICAgICogVUlQcm9jZXNzL1Byb2Nlc3NUaHJvdHRsZXIuY3BwOgor
ICAgICAgICAoV2ViS2l0OjpQcm9jZXNzVGhyb3R0bGVyOjpzZXRBc3NlcnRpb25UeXBlKToKKyAg
ICAgICAgKiBVSVByb2Nlc3MvUHJvY2Vzc1Rocm90dGxlci5oOgorICAgICAgICAqIFVJUHJvY2Vz
cy9XZWJQcm9jZXNzUG9vbC5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3NQb29sOjp1
cGRhdGVBdWRpYmxlTWVkaWFBc3NlcnRpb25zKToKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUHJv
Y2Vzc1Bvb2wuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5LmNwcDoKKyAg
ICAgICAgKFdlYktpdDo6V2ViUHJvY2Vzc1Byb3h5Ojp1cGRhdGVBdWRpYmxlTWVkaWFBc3NlcnRp
b25zKToKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5Lmg6CisgICAgICAgICog
VUlQcm9jZXNzL2lvcy9Qcm9jZXNzQXNzZXJ0aW9uSU9TLm1tOgorICAgICAgICAoYXNzZXJ0aW9u
c1dvcmtRdWV1ZSk6CisgICAgICAgICgtW1dLUHJvY2Vzc0Fzc2VydGlvbkJhY2tncm91bmRUYXNr
TWFuYWdlciBfdXBkYXRlQmFja2dyb3VuZFRhc2tdKToKKyAgICAgICAgKC1bV0tQcm9jZXNzQXNz
ZXJ0aW9uQmFja2dyb3VuZFRhc2tNYW5hZ2VyIGFzc2VydGlvbjpkaWRJbnZhbGlkYXRlV2l0aEVy
cm9yOl0pOgorICAgICAgICAoV2ViS2l0OjpQcm9jZXNzQXNzZXJ0aW9uOjpQcm9jZXNzQXNzZXJ0
aW9uKToKKyAgICAgICAgKFdlYktpdDo6UHJvY2Vzc0Fzc2VydGlvbjo6YWNxdWlyZUFzeW5jKToK
KyAgICAgICAgKFdlYktpdDo6UHJvY2Vzc0Fzc2VydGlvbjo6YWNxdWlyZVN5bmMpOgorICAgICAg
ICAoV2ViS2l0OjpQcm9jZXNzQXNzZXJ0aW9uOjp+UHJvY2Vzc0Fzc2VydGlvbik6CisgICAgICAg
IChXZWJLaXQ6OlByb2Nlc3NBc3NlcnRpb246OnByb2Nlc3NBc3NlcnRpb25XYXNJbnZhbGlkYXRl
ZCk6CisgICAgICAgIChXZWJLaXQ6OlByb2Nlc3NBc3NlcnRpb246OmlzVmFsaWQgY29uc3QpOgor
CiAyMDIxLTA3LTAyICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CiAKICAgICAgICAg
VGFrZSBhIHByb2Nlc3MgYXNzZXJ0aW9uIGluIHRoZSBuZXR3b3JrIHByb2Nlc3Mgd2hlbiBob2xk
aW5nIGxvY2tlZCBmaWxlcwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vz
cy9Eb3dubG9hZHMvRG93bmxvYWRNYXAuY3BwIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vz
cy9Eb3dubG9hZHMvRG93bmxvYWRNYXAuY3BwCmluZGV4IDhkNTAyMDM3NjhhYWYzYzc5NzE3Y2Y0
ZjI5ODc4MjI3OGVjNjRlNDUuLjQwNDJkZGY1ZDhiZmUzMzQxODliZjRkZjMwZmQxYWU1MDYxZjAz
N2EgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvRG93bmxvYWRzL0Rv
d25sb2FkTWFwLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL0Rvd25sb2Fk
cy9Eb3dubG9hZE1hcC5jcHAKQEAgLTYxLDcgKzYxLDcgQEAgRG93bmxvYWRNYXA6OkRvd25sb2Fk
TWFwVHlwZTo6QWRkUmVzdWx0IERvd25sb2FkTWFwOjphZGQoRG93bmxvYWRJRCBkb3dubG9hZElE
LAogICAgIGF1dG8gcmVzdWx0ID0gbV9kb3dubG9hZHMuYWRkKGRvd25sb2FkSUQsIFdURk1vdmUo
ZG93bmxvYWQpKTsKICAgICBpZiAobV9kb3dubG9hZHMuc2l6ZSgpID09IDEpIHsKICAgICAgICAg
QVNTRVJUKCFtX2Rvd25sb2FkQXNzZXJ0aW9uKTsKLSAgICAgICAgbV9kb3dubG9hZEFzc2VydGlv
biA9IG1ha2VVbmlxdWU8UHJvY2Vzc0Fzc2VydGlvbj4oZ2V0cGlkKCksICJXZWJLaXQgZG93bmxv
YWRzIl9zLCBQcm9jZXNzQXNzZXJ0aW9uVHlwZTo6VW5ib3VuZGVkTmV0d29ya2luZyk7CisgICAg
ICAgIG1fZG93bmxvYWRBc3NlcnRpb24gPSBQcm9jZXNzQXNzZXJ0aW9uOjpjcmVhdGUoZ2V0cGlk
KCksICJXZWJLaXQgZG93bmxvYWRzIl9zLCBQcm9jZXNzQXNzZXJ0aW9uVHlwZTo6VW5ib3VuZGVk
TmV0d29ya2luZyk7CiAgICAgICAgIFJFTEVBU0VfTE9HKFByb2Nlc3NTdXNwZW5zaW9uLCAiVG9v
ayAnV2ViS2l0IGRvd25sb2FkcycgYXNzZXJ0aW9uIGluIE5ldHdvcmtQcm9jZXNzIik7CiAgICAg
fQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL0Rvd25sb2Fkcy9E
b3dubG9hZE1hcC5oIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9Eb3dubG9hZHMvRG93
bmxvYWRNYXAuaAppbmRleCBiNTI1NjdjYWEzOGE0Mzc2MTljZjBlNjcyNmViOGMzZmM5MTE2NzEw
Li5hOGJkMjhlNjhjYWQzYWRlNDgzMDU1YjJmMjE3ZjUwMWJkOWZiOWJiIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL0Rvd25sb2Fkcy9Eb3dubG9hZE1hcC5oCisrKyBi
L1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvRG93bmxvYWRzL0Rvd25sb2FkTWFwLmgKQEAg
LTUzLDcgKzUzLDcgQEAgcHVibGljOgogCiBwcml2YXRlOgogICAgIERvd25sb2FkTWFwVHlwZSBt
X2Rvd25sb2FkczsKLSAgICBzdGQ6OnVuaXF1ZV9wdHI8UHJvY2Vzc0Fzc2VydGlvbj4gbV9kb3du
bG9hZEFzc2VydGlvbjsKKyAgICBSZWZQdHI8UHJvY2Vzc0Fzc2VydGlvbj4gbV9kb3dubG9hZEFz
c2VydGlvbjsKIH07CiAKICNlbmRpZiAvLyAhRU5BQkxFKFRBS0VfVU5CT1VOREVEX05FVFdPUktJ
TkdfQVNTRVJUSU9OKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9O
ZXR3b3JrUHJvY2Vzcy5oIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJv
Y2Vzcy5oCmluZGV4IGFkZjA5Mzg0NzQwNzRmYzYyYjllMGIxY2MwYWViMjQ5OTVmYmVjMjUuLmJj
NGE5ODEwYzIyMjZmYmE4Yzc5ODY1ZWYyNWYxOTE0ZGJmMDEzNzAgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MuaAorKysgYi9Tb3VyY2UvV2Vi
S2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLmgKQEAgLTU3Nyw3ICs1NzcsNyBAQCBw
cml2YXRlOgogCiAjaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKICAgICBXZWJTUUxpdGVEYXRhYmFz
ZVRyYWNrZXIgbV93ZWJTUUxpdGVEYXRhYmFzZVRyYWNrZXI7Ci0gICAgc3RkOjp1bmlxdWVfcHRy
PFByb2Nlc3NBc3NlcnRpb24+IG1faG9sZGluZ0xvY2tlZEZpbGVBc3NlcnRpb247CisgICAgUmVm
UHRyPFByb2Nlc3NBc3NlcnRpb24+IG1faG9sZGluZ0xvY2tlZEZpbGVBc3NlcnRpb247CiAjZW5k
aWYKIAogICAgIEhhc2hNYXA8UEFMOjpTZXNzaW9uSUQsIFN0cmluZz4gbV9pZGJEYXRhYmFzZVBh
dGhzOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9pb3MvTmV0d29y
a1Byb2Nlc3NJT1MubW0gYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL2lvcy9OZXR3b3Jr
UHJvY2Vzc0lPUy5tbQppbmRleCBiYTZkNGI5NmQzNmRkMmYyMjAyM2U1YzBiMzE1M2RkOTk0Zjdk
MDMyLi4zMjU2NDc1NGQwZjZkYzk0YTRmN2E3YmVhZTBhMTdhMjdhMjQ3ZTllIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL2lvcy9OZXR3b3JrUHJvY2Vzc0lPUy5tbQor
KysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL2lvcy9OZXR3b3JrUHJvY2Vzc0lPUy5t
bQpAQCAtMTA5LDcgKzEwOSw3IEBAIHZvaWQgTmV0d29ya1Byb2Nlc3M6OnNldElzSG9sZGluZ0xv
Y2tlZEZpbGVzKGJvb2wgaXNIb2xkaW5nTG9ja2VkRmlsZXMpCiAKICAgICAvLyBXZSBzeW5jaHJv
bm91c2x5IHRha2UgYSBwcm9jZXNzIGFzc2VydGlvbiB3aGVuIGJlZ2lubmluZyBhIFNRTGl0ZSB0
cmFuc2FjdGlvbiBzbyB0aGF0IHdlIGRvbid0IGdldCBzdXNwZW5kZWQKICAgICAvLyB3aGlsZSBo
b2xkaW5nIGEgbG9ja2VkIGZpbGUuIFdlIHdvdWxkIGdldCBraWxsZWQgaWYgc3VzcGVuZGVkIHdo
aWxlIGhvbGRpbmcgbG9ja2VkIGZpbGVzLgotICAgIG1faG9sZGluZ0xvY2tlZEZpbGVBc3NlcnRp
b24gPSBtYWtlVW5pcXVlPFByb2Nlc3NBc3NlcnRpb24+KGdldEN1cnJlbnRQcm9jZXNzSUQoKSwg
Ik5ldHdvcmsgUHJvY2VzcyBpcyBob2xkaW5nIGxvY2tlZCBmaWxlcyJfcywgUHJvY2Vzc0Fzc2Vy
dGlvblR5cGU6OkZpbmlzaFRhc2tVbmludGVycnVwdGFibGUpOworICAgIG1faG9sZGluZ0xvY2tl
ZEZpbGVBc3NlcnRpb24gPSBQcm9jZXNzQXNzZXJ0aW9uOjpjcmVhdGUoZ2V0Q3VycmVudFByb2Nl
c3NJRCgpLCAiTmV0d29yayBQcm9jZXNzIGlzIGhvbGRpbmcgbG9ja2VkIGZpbGVzIl9zLCBQcm9j
ZXNzQXNzZXJ0aW9uVHlwZTo6RmluaXNoVGFza1VuaW50ZXJydXB0YWJsZSwgUHJvY2Vzc0Fzc2Vy
dGlvbjo6TW9kZTo6U3luYyk7CiB9CiAKIH0gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9QbGF0Zm9ybS9JUEMvY29jb2EvQ29ubmVjdGlvbkNvY29hLm1tIGIv
U291cmNlL1dlYktpdC9QbGF0Zm9ybS9JUEMvY29jb2EvQ29ubmVjdGlvbkNvY29hLm1tCmluZGV4
IDM4OTgyMDA5NzhlNDM1NDk3ZDM4MDc0MDFlMzY2YTE5Mjg3NDc4YzMuLmU3OTIyMTkzNGZiNGM1
MjkxMjQ3OTQ5ZjE0ZjM2OTcxZTE2ZWM3MTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvUGxh
dGZvcm0vSVBDL2NvY29hL0Nvbm5lY3Rpb25Db2NvYS5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1Bs
YXRmb3JtL0lQQy9jb2NvYS9Db25uZWN0aW9uQ29jb2EubW0KQEAgLTg5LDcgKzg5LDcgQEAgcHJp
dmF0ZToKICAgICAgICAgOiBtX3hwY0Nvbm5lY3Rpb24oeHBjQ29ubmVjdGlvbikKICAgICAgICAg
LCBtX3dhdGNoZG9nVGltZXIoUnVuTG9vcDo6bWFpbigpLCB0aGlzLCAmQ29ubmVjdGlvblRlcm1p
bmF0aW9uV2F0Y2hkb2c6OndhdGNoZG9nVGltZXJGaXJlZCkKICNpZiBQTEFURk9STShJT1NfRkFN
SUxZKQotICAgICAgICAsIG1fYXNzZXJ0aW9uKG1ha2VVbmlxdWU8V2ViS2l0OjpQcm9jZXNzQW5k
VUlBc3NlcnRpb24+KHhwY19jb25uZWN0aW9uX2dldF9waWQobV94cGNDb25uZWN0aW9uLmdldCgp
KSwgIkNvbm5lY3Rpb25UZXJtaW5hdGlvbldhdGNoZG9nIl9zLCBXZWJLaXQ6OlByb2Nlc3NBc3Nl
cnRpb25UeXBlOjpCYWNrZ3JvdW5kKSkKKyAgICAgICAgLCBtX2Fzc2VydGlvbihXZWJLaXQ6OlBy
b2Nlc3NBbmRVSUFzc2VydGlvbjo6Y3JlYXRlKHhwY19jb25uZWN0aW9uX2dldF9waWQobV94cGND
b25uZWN0aW9uLmdldCgpKSwgIkNvbm5lY3Rpb25UZXJtaW5hdGlvbldhdGNoZG9nIl9zLCBXZWJL
aXQ6OlByb2Nlc3NBc3NlcnRpb25UeXBlOjpCYWNrZ3JvdW5kKSkKICNlbmRpZgogICAgIHsKICAg
ICAgICAgbV93YXRjaGRvZ1RpbWVyLnN0YXJ0T25lU2hvdChpbnRlcnZhbCk7CkBAIC0xMDQsNyAr
MTA0LDcgQEAgcHJpdmF0ZToKICAgICBPU09iamVjdFB0cjx4cGNfY29ubmVjdGlvbl90PiBtX3hw
Y0Nvbm5lY3Rpb247CiAgICAgUnVuTG9vcDo6VGltZXI8Q29ubmVjdGlvblRlcm1pbmF0aW9uV2F0
Y2hkb2c+IG1fd2F0Y2hkb2dUaW1lcjsKICNpZiBQTEFURk9STShJT1NfRkFNSUxZKQotICAgIHN0
ZDo6dW5pcXVlX3B0cjxXZWJLaXQ6OlByb2Nlc3NBbmRVSUFzc2VydGlvbj4gbV9hc3NlcnRpb247
CisgICAgUmVmPFdlYktpdDo6UHJvY2Vzc0FuZFVJQXNzZXJ0aW9uPiBtX2Fzc2VydGlvbjsKICNl
bmRpZgogfTsKICAgICAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvUGxhdGZvcm0vc3BpL2lv
cy9SdW5uaW5nQm9hcmRTZXJ2aWNlc1NQSS5oIGIvU291cmNlL1dlYktpdC9QbGF0Zm9ybS9zcGkv
aW9zL1J1bm5pbmdCb2FyZFNlcnZpY2VzU1BJLmgKaW5kZXggZDU1YjZjOTBjMzFiZTRiYmMwNjNk
ZTVlNmJhZTBjODU3ZWRkYTQxOS4uNDI1MTMyZmU5MGNmYmVjMzc2ZjM2OTIxNWYwNDMyY2YyYmE5
ODg0ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9QbGF0Zm9ybS9zcGkvaW9zL1J1bm5pbmdC
b2FyZFNlcnZpY2VzU1BJLmgKKysrIGIvU291cmNlL1dlYktpdC9QbGF0Zm9ybS9zcGkvaW9zL1J1
bm5pbmdCb2FyZFNlcnZpY2VzU1BJLmgKQEAgLTU1LDExICs1NSwxNCBAQCBOU19BU1NVTUVfTk9O
TlVMTF9CRUdJTgogKyAoUkJTVGFyZ2V0ICopY3VycmVudFByb2Nlc3M7CiBAZW5kCiAKK0BjbGFz
cyBSQlNBc3NlcnRpb247CiBAcHJvdG9jb2wgUkJTQXNzZXJ0aW9uT2JzZXJ2aW5nOwordHlwZWRl
ZiB2b2lkICheUkJTQXNzZXJ0aW9uSW52YWxpZGF0aW9uSGFuZGxlcikoUkJTQXNzZXJ0aW9uICph
c3NlcnRpb24sIE5TRXJyb3IgKmVycm9yKTsKIAogQGludGVyZmFjZSBSQlNBc3NlcnRpb24gOiBO
U09iamVjdAogLSAoaW5zdGFuY2V0eXBlKWluaXRXaXRoRXhwbGFuYXRpb246KE5TU3RyaW5nICop
ZXhwbGFuYXRpb24gdGFyZ2V0OihSQlNUYXJnZXQgKil0YXJnZXQgYXR0cmlidXRlczooTlNBcnJh
eSA8UkJTQXR0cmlidXRlICo+ICopYXR0cmlidXRlczsKIC0gKEJPT0wpYWNxdWlyZVdpdGhFcnJv
cjooTlNFcnJvciAqKillcnJvcjsKKy0gKHZvaWQpYWNxdWlyZVdpdGhJbnZhbGlkYXRpb25IYW5k
bGVyOihudWxsYWJsZSBSQlNBc3NlcnRpb25JbnZhbGlkYXRpb25IYW5kbGVyKWhhbmRsZXI7CiAt
ICh2b2lkKWludmFsaWRhdGU7CiAtICh2b2lkKWFkZE9ic2VydmVyOihpZCA8UkJTQXNzZXJ0aW9u
T2JzZXJ2aW5nPilvYnNlcnZlcjsKIC0gKHZvaWQpcmVtb3ZlT2JzZXJ2ZXI6KGlkIDxSQlNBc3Nl
cnRpb25PYnNlcnZpbmc+KW9ic2VydmVyOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvRG93bmxvYWRzL0Rvd25sb2FkUHJveHlNYXAuY3BwIGIvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvRG93bmxvYWRzL0Rvd25sb2FkUHJveHlNYXAuY3BwCmluZGV4IDA3MDI3NGM0N2E4MGU1
ODRlNjc0YmQyMjkxMzQ2NjQ5OTMzZTU3YjIuLmIxNDk5ZmYxNDVjYjc1NmMyNDZhNDdhZWZlMzk4
ZDZhYjdjNDNjYjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0Rvd25sb2Fk
cy9Eb3dubG9hZFByb3h5TWFwLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Eb3du
bG9hZHMvRG93bmxvYWRQcm94eU1hcC5jcHAKQEAgLTkwLDEwICs5MCwxMCBAQCBEb3dubG9hZFBy
b3h5JiBEb3dubG9hZFByb3h5TWFwOjpjcmVhdGVEb3dubG9hZFByb3h5KFdlYnNpdGVEYXRhU3Rv
cmUmIGRhdGFTdG9yZQogCiAgICAgaWYgKG1fZG93bmxvYWRzLnNpemUoKSA9PSAxICYmIG1fc2hv
dWxkVGFrZUFzc2VydGlvbikgewogICAgICAgICBBU1NFUlQoIW1fZG93bmxvYWRVSUFzc2VydGlv
bik7Ci0gICAgICAgIG1fZG93bmxvYWRVSUFzc2VydGlvbiA9IG1ha2VVbmlxdWU8UHJvY2Vzc0Fz
c2VydGlvbj4oZ2V0Q3VycmVudFByb2Nlc3NJRCgpLCAiV2ViS2l0IGRvd25sb2FkcyJfcywgUHJv
Y2Vzc0Fzc2VydGlvblR5cGU6OlVuYm91bmRlZE5ldHdvcmtpbmcpOworICAgICAgICBtX2Rvd25s
b2FkVUlBc3NlcnRpb24gPSBQcm9jZXNzQXNzZXJ0aW9uOjpjcmVhdGUoZ2V0Q3VycmVudFByb2Nl
c3NJRCgpLCAiV2ViS2l0IGRvd25sb2FkcyJfcywgUHJvY2Vzc0Fzc2VydGlvblR5cGU6OlVuYm91
bmRlZE5ldHdvcmtpbmcpOwogCiAgICAgICAgIEFTU0VSVCghbV9kb3dubG9hZE5ldHdvcmtpbmdB
c3NlcnRpb24pOwotICAgICAgICBtX2Rvd25sb2FkTmV0d29ya2luZ0Fzc2VydGlvbiA9IG1ha2VV
bmlxdWU8UHJvY2Vzc0Fzc2VydGlvbj4obV9wcm9jZXNzLnByb2Nlc3NJZGVudGlmaWVyKCksICJX
ZWJLaXQgZG93bmxvYWRzIl9zLCBQcm9jZXNzQXNzZXJ0aW9uVHlwZTo6VW5ib3VuZGVkTmV0d29y
a2luZyk7CisgICAgICAgIG1fZG93bmxvYWROZXR3b3JraW5nQXNzZXJ0aW9uID0gUHJvY2Vzc0Fz
c2VydGlvbjo6Y3JlYXRlKG1fcHJvY2Vzcy5wcm9jZXNzSWRlbnRpZmllcigpLCAiV2ViS2l0IGRv
d25sb2FkcyJfcywgUHJvY2Vzc0Fzc2VydGlvblR5cGU6OlVuYm91bmRlZE5ldHdvcmtpbmcpOwog
CiAgICAgICAgIFJFTEVBU0VfTE9HKFByb2Nlc3NTdXNwZW5zaW9uLCAiVUlQcm9jZXNzIHRvb2sg
J1dlYktpdCBkb3dubG9hZHMnIGFzc2VydGlvbnMgZm9yIFVJUHJvY2VzcyBhbmQgTmV0d29ya1By
b2Nlc3MiKTsKICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Eb3du
bG9hZHMvRG93bmxvYWRQcm94eU1hcC5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvRG93bmxv
YWRzL0Rvd25sb2FkUHJveHlNYXAuaAppbmRleCA0ZmEwMDFiZDdmYWUxY2VkMDI0ZDJiOTFmMjAx
NzBmZjk5NDUyOGJlLi44MTJmNjRkNDcyNTc1YjE0MjFhNmU3NWJkODI4OWMwZWQxMDM5OTkzIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Eb3dubG9hZHMvRG93bmxvYWRQcm94
eU1hcC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0Rvd25sb2Fkcy9Eb3dubG9hZFBy
b3h5TWFwLmgKQEAgLTc1LDggKzc1LDggQEAgcHJpdmF0ZToKICAgICBIYXNoTWFwPERvd25sb2Fk
SUQsIFJlZlB0cjxEb3dubG9hZFByb3h5Pj4gbV9kb3dubG9hZHM7CiAKICAgICBib29sIG1fc2hv
dWxkVGFrZUFzc2VydGlvbiB7IGZhbHNlIH07Ci0gICAgc3RkOjp1bmlxdWVfcHRyPFByb2Nlc3NB
c3NlcnRpb24+IG1fZG93bmxvYWRVSUFzc2VydGlvbjsKLSAgICBzdGQ6OnVuaXF1ZV9wdHI8UHJv
Y2Vzc0Fzc2VydGlvbj4gbV9kb3dubG9hZE5ldHdvcmtpbmdBc3NlcnRpb247CisgICAgUmVmUHRy
PFByb2Nlc3NBc3NlcnRpb24+IG1fZG93bmxvYWRVSUFzc2VydGlvbjsKKyAgICBSZWZQdHI8UHJv
Y2Vzc0Fzc2VydGlvbj4gbV9kb3dubG9hZE5ldHdvcmtpbmdBc3NlcnRpb247CiAKICNpZiBQTEFU
Rk9STShJT1NfRkFNSUxZKQogICAgIFJldGFpblB0cjxpZD4gbV9iYWNrZ3JvdW5kT2JzZXJ2ZXI7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9j
ZXNzUHJveHkuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvTmV0d29yay9OZXR3b3JrUHJv
Y2Vzc1Byb3h5LmNwcAppbmRleCBkY2E3ZjViMzIxN2E1NjY0MWQ4ZjEzN2Y3NjQ2Mzc2NTgyNjFm
ZDg3Li4xNzBjYWY4MWQ0NTkzZWQ4ZTYwODNmMGExMjlmMzg0NzUyYzZhOTlkIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9jZXNzUHJveHkuY3Bw
CisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nlc3NQcm94
eS5jcHAKQEAgLTE0NDIsMTUgKzE0NDIsMTUgQEAgdm9pZCBOZXR3b3JrUHJvY2Vzc1Byb3h5Ojpz
ZXRXZWJQcm9jZXNzSGFzVXBsb2FkcyhXZWJDb3JlOjpQcm9jZXNzSWRlbnRpZmllciBwcm8KICAg
ICBpZiAoIW1fdXBsb2FkQWN0aXZpdHkpIHsKICAgICAgICAgUkVMRUFTRV9MT0coUHJvY2Vzc1N1
c3BlbnNpb24sICJOZXR3b3JrUHJvY2Vzc1Byb3h5OjpzZXRXZWJQcm9jZXNzSGFzVXBsb2Fkczog
VGhlIG51bWJlciBvZiB1cGxvYWRzIGluIHByb2dyZXNzIGlzIG5vdyBncmVhdGVyIHRoYW4gMC4g
VGFraW5nIE5ldHdvcmtpbmcgYW5kIFVJIHByb2Nlc3MgYXNzZXJ0aW9ucy4iKTsKICAgICAgICAg
bV91cGxvYWRBY3Rpdml0eSA9IFVwbG9hZEFjdGl2aXR5IHsKLSAgICAgICAgICAgIG1ha2VVbmlx
dWU8UHJvY2Vzc0Fzc2VydGlvbj4oZ2V0Q3VycmVudFByb2Nlc3NJRCgpLCAiV2ViS2l0IHVwbG9h
ZHMiX3MsIFByb2Nlc3NBc3NlcnRpb25UeXBlOjpVbmJvdW5kZWROZXR3b3JraW5nKSwKLSAgICAg
ICAgICAgIG1ha2VVbmlxdWU8UHJvY2Vzc0Fzc2VydGlvbj4ocHJvY2Vzc0lkZW50aWZpZXIoKSwg
IldlYktpdCB1cGxvYWRzIl9zLCBQcm9jZXNzQXNzZXJ0aW9uVHlwZTo6VW5ib3VuZGVkTmV0d29y
a2luZyksCi0gICAgICAgICAgICBIYXNoTWFwPFdlYkNvcmU6OlByb2Nlc3NJZGVudGlmaWVyLCBz
dGQ6OnVuaXF1ZV9wdHI8UHJvY2Vzc0Fzc2VydGlvbj4+KCkKKyAgICAgICAgICAgIFByb2Nlc3NB
c3NlcnRpb246OmNyZWF0ZShnZXRDdXJyZW50UHJvY2Vzc0lEKCksICJXZWJLaXQgdXBsb2FkcyJf
cywgUHJvY2Vzc0Fzc2VydGlvblR5cGU6OlVuYm91bmRlZE5ldHdvcmtpbmcpLAorICAgICAgICAg
ICAgUHJvY2Vzc0Fzc2VydGlvbjo6Y3JlYXRlKHByb2Nlc3NJZGVudGlmaWVyKCksICJXZWJLaXQg
dXBsb2FkcyJfcywgUHJvY2Vzc0Fzc2VydGlvblR5cGU6OlVuYm91bmRlZE5ldHdvcmtpbmcpLAor
ICAgICAgICAgICAgSGFzaE1hcDxXZWJDb3JlOjpQcm9jZXNzSWRlbnRpZmllciwgUmVmUHRyPFBy
b2Nlc3NBc3NlcnRpb24+PigpCiAgICAgICAgIH07CiAgICAgfQogCiAgICAgbV91cGxvYWRBY3Rp
dml0eS0+d2ViUHJvY2Vzc0Fzc2VydGlvbnMuZW5zdXJlKHByb2Nlc3NJRCwgWyZdIHsKICAgICAg
ICAgUkVMRUFTRV9MT0coUHJvY2Vzc1N1c3BlbnNpb24sICJOZXR3b3JrUHJvY2Vzc1Byb3h5Ojpz
ZXRXZWJQcm9jZXNzSGFzVXBsb2FkczogVGFraW5nIHVwbG9hZCBhc3NlcnRpb24gb24gYmVoYWxm
IG9mIFdlYlByb2Nlc3Mgd2l0aCBQSUQgJWQiLCBwcm9jZXNzLT5wcm9jZXNzSWRlbnRpZmllcigp
KTsKLSAgICAgICAgcmV0dXJuIG1ha2VVbmlxdWU8UHJvY2Vzc0Fzc2VydGlvbj4ocHJvY2Vzcy0+
cHJvY2Vzc0lkZW50aWZpZXIoKSwgIldlYktpdCB1cGxvYWRzIl9zLCBQcm9jZXNzQXNzZXJ0aW9u
VHlwZTo6VW5ib3VuZGVkTmV0d29ya2luZyk7CisgICAgICAgIHJldHVybiBQcm9jZXNzQXNzZXJ0
aW9uOjpjcmVhdGUocHJvY2Vzcy0+cHJvY2Vzc0lkZW50aWZpZXIoKSwgIldlYktpdCB1cGxvYWRz
Il9zLCBQcm9jZXNzQXNzZXJ0aW9uVHlwZTo6VW5ib3VuZGVkTmV0d29ya2luZyk7CiAgICAgfSk7
CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL05ldHdvcmsvTmV0d29y
a1Byb2Nlc3NQcm94eS5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvTmV0d29yay9OZXR3b3Jr
UHJvY2Vzc1Byb3h5LmgKaW5kZXggODQ2MjQ1Y2JhYzdjMDY5YWJjMDRmMTBmZTczYjYzNzcyMzAx
OWJjMC4uZDVmMTg2NTkxOWU1Yjg5ZWJmM2Q1NGNjODg2ODY0ODg0YjA2ZjlmMiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvTmV0d29yay9OZXR3b3JrUHJvY2Vzc1Byb3h5LmgK
KysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvTmV0d29yay9OZXR3b3JrUHJvY2Vzc1Byb3h5
LmgKQEAgLTM0NCw5ICszNDQsOSBAQCBwcml2YXRlOgogI2VuZGlmCiAKICAgICBzdHJ1Y3QgVXBs
b2FkQWN0aXZpdHkgewotICAgICAgICBzdGQ6OnVuaXF1ZV9wdHI8UHJvY2Vzc0Fzc2VydGlvbj4g
dWlBc3NlcnRpb247Ci0gICAgICAgIHN0ZDo6dW5pcXVlX3B0cjxQcm9jZXNzQXNzZXJ0aW9uPiBu
ZXR3b3JrQXNzZXJ0aW9uOwotICAgICAgICBIYXNoTWFwPFdlYkNvcmU6OlByb2Nlc3NJZGVudGlm
aWVyLCBzdGQ6OnVuaXF1ZV9wdHI8UHJvY2Vzc0Fzc2VydGlvbj4+IHdlYlByb2Nlc3NBc3NlcnRp
b25zOworICAgICAgICBSZWZQdHI8UHJvY2Vzc0Fzc2VydGlvbj4gdWlBc3NlcnRpb247CisgICAg
ICAgIFJlZlB0cjxQcm9jZXNzQXNzZXJ0aW9uPiBuZXR3b3JrQXNzZXJ0aW9uOworICAgICAgICBI
YXNoTWFwPFdlYkNvcmU6OlByb2Nlc3NJZGVudGlmaWVyLCBSZWZQdHI8UHJvY2Vzc0Fzc2VydGlv
bj4+IHdlYlByb2Nlc3NBc3NlcnRpb25zOwogICAgIH07CiAgICAgc3RkOjpvcHRpb25hbDxVcGxv
YWRBY3Rpdml0eT4gbV91cGxvYWRBY3Rpdml0eTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvUHJvY2Vzc0Fzc2VydGlvbi5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9Qcm9jZXNzQXNzZXJ0aW9uLmNwcAppbmRleCBkYzIyZWU5YTAyNDk4MDJhOTBhZmZlOTlmMDEw
YzIxNzMwNjNlOWQ5Li44NTlhMTE5N2YxYjJjZjljNjAxOWViNDUxNTBiOTk1MmRlYmM1N2ZmIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Qcm9jZXNzQXNzZXJ0aW9uLmNwcAor
KysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Qcm9jZXNzQXNzZXJ0aW9uLmNwcApAQCAtNDYs
NiArNDYsMTYgQEAgYm9vbCBQcm9jZXNzQXNzZXJ0aW9uOjppc1ZhbGlkKCkgY29uc3QKICAgICBy
ZXR1cm4gdHJ1ZTsKIH0KIAordm9pZCBQcm9jZXNzQXNzZXJ0aW9uOjphY3F1aXJlQXN5bmMoQ29t
cGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQoreworICAgIGlmIChj
b21wbGV0aW9uSGFuZGxlcikKKyAgICAgICAgUnVuTG9vcDo6bWFpbigpLmRpc3BhdGNoKFdURk1v
dmUoY29tcGxldGlvbkhhbmRsZXIpKTsKK30KKwordm9pZCBQcm9jZXNzQXNzZXJ0aW9uOjphY3F1
aXJlU3luYygpCit7Cit9CisKIFByb2Nlc3NBbmRVSUFzc2VydGlvbjo6UHJvY2Vzc0FuZFVJQXNz
ZXJ0aW9uKFByb2Nlc3NJRCBwaWQsIGNvbnN0IFN0cmluZyYgcmVhc29uLCBQcm9jZXNzQXNzZXJ0
aW9uVHlwZSBhc3NlcnRpb25UeXBlKQogICAgIDogUHJvY2Vzc0Fzc2VydGlvbihwaWQsIHJlYXNv
biwgYXNzZXJ0aW9uVHlwZSkKIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L1Byb2Nlc3NBc3NlcnRpb24uaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1Byb2Nlc3NBc3Nl
cnRpb24uaAppbmRleCBjM2NhNjQyNjg4YTM2NDI3N2FhODAwYWFjZWQyNDExNTFmOWFhMWZlLi43
MjEwM2MzMWFiYjA0MmI3ZjhmYzEzOGZjNzEwNzJmNWMxYWVjMTQ2IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9Qcm9jZXNzQXNzZXJ0aW9uLmgKKysrIGIvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvUHJvY2Vzc0Fzc2VydGlvbi5oCkBAIC0yNSw4ICsyNSwxMCBAQAogCiAjcHJh
Z21hIG9uY2UKIAorI2luY2x1ZGUgPHd0Zi9Db21wbGV0aW9uSGFuZGxlci5oPgogI2luY2x1ZGUg
PHd0Zi9GdW5jdGlvbi5oPgogI2luY2x1ZGUgPHd0Zi9Qcm9jZXNzSUQuaD4KKyNpbmNsdWRlIDx3
dGYvVGhyZWFkU2FmZVJlZkNvdW50ZWQuaD4KICNpbmNsdWRlIDx3dGYvV2Vha1B0ci5oPgogI2lu
Y2x1ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgogCkBAIC01MiwxMCArNTQsMjIgQEAgZW51bSBj
bGFzcyBQcm9jZXNzQXNzZXJ0aW9uVHlwZSB7CiAgICAgRmluaXNoVGFza1VuaW50ZXJydXB0YWJs
ZSwKIH07CiAKLWNsYXNzIFByb2Nlc3NBc3NlcnRpb24gOiBwdWJsaWMgQ2FuTWFrZVdlYWtQdHI8
UHJvY2Vzc0Fzc2VydGlvbj4geworY2xhc3MgUHJvY2Vzc0Fzc2VydGlvbiA6IHB1YmxpYyBUaHJl
YWRTYWZlUmVmQ291bnRlZDxQcm9jZXNzQXNzZXJ0aW9uPiwgcHVibGljIENhbk1ha2VXZWFrUHRy
PFByb2Nlc3NBc3NlcnRpb24+IHsKICAgICBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsKIHB1Ymxp
YzoKLSAgICBQcm9jZXNzQXNzZXJ0aW9uKFByb2Nlc3NJRCwgY29uc3QgU3RyaW5nJiByZWFzb24s
IFByb2Nlc3NBc3NlcnRpb25UeXBlKTsKKyAgICBlbnVtIGNsYXNzIE1vZGUgOiBib29sIHsgU3lu
YywgQXN5bmMgfTsKKyAgICBzdGF0aWMgUmVmPFByb2Nlc3NBc3NlcnRpb24+IGNyZWF0ZShQcm9j
ZXNzSUQgcGlkLCBjb25zdCBTdHJpbmcmIHJlYXNvbiwgUHJvY2Vzc0Fzc2VydGlvblR5cGUgdHlw
ZSwgTW9kZSBtb2RlID0gTW9kZTo6QXN5bmMsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJiBh
Y3F1aXNpc2lvbkhhbmRsZXIgPSBudWxscHRyKQorICAgIHsKKyAgICAgICAgYXV0byBhc3NlcnRp
b24gPSBhZG9wdFJlZigqbmV3IFByb2Nlc3NBc3NlcnRpb24ocGlkLCByZWFzb24sIHR5cGUpKTsK
KyAgICAgICAgaWYgKG1vZGUgPT0gTW9kZTo6QXN5bmMpCisgICAgICAgICAgICBhc3NlcnRpb24t
PmFjcXVpcmVBc3luYyhXVEZNb3ZlKGFjcXVpc2lzaW9uSGFuZGxlcikpOworICAgICAgICBlbHNl
IHsKKyAgICAgICAgICAgIGFzc2VydGlvbi0+YWNxdWlyZVN5bmMoKTsKKyAgICAgICAgICAgIGlm
IChhY3F1aXNpc2lvbkhhbmRsZXIpCisgICAgICAgICAgICAgICAgYWNxdWlzaXNpb25IYW5kbGVy
KCk7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIGFzc2VydGlvbjsKKyAgICB9CiAgICAgdmly
dHVhbCB+UHJvY2Vzc0Fzc2VydGlvbigpOwogCiAgICAgdm9pZCBzZXRJbnZhbGlkYXRpb25IYW5k
bGVyKEZ1bmN0aW9uPHZvaWQoKT4mJiBoYW5kbGVyKSB7IG1faW52YWxpZGF0aW9uSGFuZGxlciA9
IFdURk1vdmUoaGFuZGxlcik7IH0KQEAgLTY1LDggKzc5LDEzIEBAIHB1YmxpYzoKIAogICAgIGJv
b2wgaXNWYWxpZCgpIGNvbnN0OwogCi0jaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKIHByb3RlY3Rl
ZDoKKyAgICBQcm9jZXNzQXNzZXJ0aW9uKFByb2Nlc3NJRCwgY29uc3QgU3RyaW5nJiByZWFzb24s
IFByb2Nlc3NBc3NlcnRpb25UeXBlKTsKKworICAgIHZvaWQgYWNxdWlyZUFzeW5jKENvbXBsZXRp
b25IYW5kbGVyPHZvaWQoKT4mJik7CisgICAgdm9pZCBhY3F1aXJlU3luYygpOworCisjaWYgUExB
VEZPUk0oSU9TX0ZBTUlMWSkKICAgICB2aXJ0dWFsIHZvaWQgcHJvY2Vzc0Fzc2VydGlvbldhc0lu
dmFsaWRhdGVkKCk7CiAjZW5kaWYKIApAQCAtNzcsMTMgKzk2LDI1IEBAIHByaXZhdGU6CiAjaWYg
UExBVEZPUk0oSU9TX0ZBTUlMWSkKICAgICBSZXRhaW5QdHI8UkJTQXNzZXJ0aW9uPiBtX3Jic0Fz
c2VydGlvbjsKICAgICBSZXRhaW5QdHI8V0tSQlNBc3NlcnRpb25EZWxlZ2F0ZT4gbV9kZWxlZ2F0
ZTsKKyAgICBib29sIG1fd2FzSW52YWxpZGF0ZWQgeyBmYWxzZSB9OwogI2VuZGlmCiAgICAgRnVu
Y3Rpb248dm9pZCgpPiBtX2ludmFsaWRhdGlvbkhhbmRsZXI7CiB9OwogCiBjbGFzcyBQcm9jZXNz
QW5kVUlBc3NlcnRpb24gZmluYWwgOiBwdWJsaWMgUHJvY2Vzc0Fzc2VydGlvbiB7CiBwdWJsaWM6
Ci0gICAgUHJvY2Vzc0FuZFVJQXNzZXJ0aW9uKFByb2Nlc3NJRCwgY29uc3QgU3RyaW5nJiByZWFz
b24sIFByb2Nlc3NBc3NlcnRpb25UeXBlKTsKKyAgICBzdGF0aWMgUmVmPFByb2Nlc3NBbmRVSUFz
c2VydGlvbj4gY3JlYXRlKFByb2Nlc3NJRCBwaWQsIGNvbnN0IFN0cmluZyYgcmVhc29uLCBQcm9j
ZXNzQXNzZXJ0aW9uVHlwZSB0eXBlLCBNb2RlIG1vZGUgPSBNb2RlOjpBc3luYywgQ29tcGxldGlv
bkhhbmRsZXI8dm9pZCgpPiYmIGFjcXVpc2lzaW9uSGFuZGxlciA9IG51bGxwdHIpCisgICAgewor
ICAgICAgICBhdXRvIGFzc2VydGlvbiA9IGFkb3B0UmVmKCpuZXcgUHJvY2Vzc0FuZFVJQXNzZXJ0
aW9uKHBpZCwgcmVhc29uLCB0eXBlKSk7CisgICAgICAgIGlmIChtb2RlID09IE1vZGU6OkFzeW5j
KQorICAgICAgICAgICAgYXNzZXJ0aW9uLT5hY3F1aXJlQXN5bmMoV1RGTW92ZShhY3F1aXNpc2lv
bkhhbmRsZXIpKTsKKyAgICAgICAgZWxzZSB7CisgICAgICAgICAgICBhc3NlcnRpb24tPmFjcXVp
cmVTeW5jKCk7CisgICAgICAgICAgICBpZiAoYWNxdWlzaXNpb25IYW5kbGVyKQorICAgICAgICAg
ICAgICAgIGFjcXVpc2lzaW9uSGFuZGxlcigpOworICAgICAgICB9CisgICAgICAgIHJldHVybiBh
c3NlcnRpb247CisgICAgfQogICAgIH5Qcm9jZXNzQW5kVUlBc3NlcnRpb24oKTsKIAogICAgIHZv
aWQgdWlBc3NlcnRpb25XaWxsRXhwaXJlSW1taW5lbnRseSgpOwpAQCAtOTEsNiArMTIyLDggQEAg
cHVibGljOgogICAgIHZvaWQgc2V0VUlBc3NlcnRpb25FeHBpcmF0aW9uSGFuZGxlcihGdW5jdGlv
bjx2b2lkKCk+JiYgaGFuZGxlcikgeyBtX3VpQXNzZXJ0aW9uRXhwaXJhdGlvbkhhbmRsZXIgPSBX
VEZNb3ZlKGhhbmRsZXIpOyB9CiAKIHByaXZhdGU6CisgICAgUHJvY2Vzc0FuZFVJQXNzZXJ0aW9u
KFByb2Nlc3NJRCwgY29uc3QgU3RyaW5nJiByZWFzb24sIFByb2Nlc3NBc3NlcnRpb25UeXBlKTsK
KwogI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCiAgICAgdm9pZCBwcm9jZXNzQXNzZXJ0aW9uV2Fz
SW52YWxpZGF0ZWQoKSBmaW5hbDsKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvUHJvY2Vzc1Rocm90dGxlci5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Q
cm9jZXNzVGhyb3R0bGVyLmNwcAppbmRleCBlMTMxMWFiYWNlMWZkMmZjODkyMDMwYjVkYTQ2YWRm
NzE0MDZhYjU4Li40YWQzZTE0MDQzZDEwYWNmMWIxNmRlMzBlNWI0NWUxYzlhOWE5Y2JhIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Qcm9jZXNzVGhyb3R0bGVyLmNwcAorKysg
Yi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Qcm9jZXNzVGhyb3R0bGVyLmNwcApAQCAtMTI5LDIw
ICsxMjksMjEgQEAgdm9pZCBQcm9jZXNzVGhyb3R0bGVyOjpzZXRBc3NlcnRpb25UeXBlKFByb2Nl
c3NBc3NlcnRpb25UeXBlIG5ld1R5cGUpCiAKICAgICBQUk9DRVNTVEhST1RUTEVSX1JFTEVBU0Vf
TE9HKCJzZXRBc3NlcnRpb25UeXBlOiBVcGRhdGluZyBwcm9jZXNzIGFzc2VydGlvbiB0eXBlIHRv
ICV1IChmb3JlZ3JvdW5kQWN0aXZpdGllcz0ldSwgYmFja2dyb3VuZEFjdGl2aXRpZXM9JXUpIiwg
bmV3VHlwZSwgbV9mb3JlZ3JvdW5kQWN0aXZpdGllcy5zaXplKCksIG1fYmFja2dyb3VuZEFjdGl2
aXRpZXMuc2l6ZSgpKTsKIAotICAgIC8vIEtlZXAgdGhlIHByZXZpb3VzIGFzc2VydGlvbiBhcm91
bmQgdW50aWwgYWZ0ZXIgdGhlIG5ldyBvbmUgaGFzIGJlZW4gY3JlYXRlZCBzbyB0aGF0IHdlIGFs
d2F5cyBob2xkCi0gICAgLy8gYSBwcm9jZXNzIGFzc2VydGlvbiBmb3IgdGhlIHByb2Nlc3MuCisg
ICAgLy8gS2VlcCB0aGUgcHJldmlvdXMgYXNzZXJ0aW9uIGFjdGl2ZSB1bnRpbCB0aGUgbmV3IGFz
c2VydGlvbiBpcyB0YWtlbiBhc3luY2hyb25vdXNseS4KICAgICBhdXRvIHByZXZpb3VzQXNzZXJ0
aW9uID0gc3RkOjpleGNoYW5nZShtX2Fzc2VydGlvbiwgbnVsbHB0cik7CiAgICAgaWYgKG1fc2hv
dWxkVGFrZVVJQmFja2dyb3VuZEFzc2VydGlvbikgewotICAgICAgICBhdXRvIGFzc2VydGlvbiA9
IG1ha2VVbmlxdWU8UHJvY2Vzc0FuZFVJQXNzZXJ0aW9uPihtX3Byb2Nlc3NJZGVudGlmaWVyLCBh
c3NlcnRpb25OYW1lKG5ld1R5cGUpLCBuZXdUeXBlKTsKLSAgICAgICAgYXNzZXJ0aW9uLT5zZXRV
SUFzc2VydGlvbkV4cGlyYXRpb25IYW5kbGVyKFt0aGlzXSB7Ci0gICAgICAgICAgICB1aUFzc2Vy
dGlvbldpbGxFeHBpcmVJbW1pbmVudGx5KCk7CisgICAgICAgIGF1dG8gYXNzZXJ0aW9uID0gUHJv
Y2Vzc0FuZFVJQXNzZXJ0aW9uOjpjcmVhdGUobV9wcm9jZXNzSWRlbnRpZmllciwgYXNzZXJ0aW9u
TmFtZShuZXdUeXBlKSwgbmV3VHlwZSwgUHJvY2Vzc0Fzc2VydGlvbjo6TW9kZTo6QXN5bmMsIFtw
cmV2aW91c0Fzc2VydGlvbiA9IFdURk1vdmUocHJldmlvdXNBc3NlcnRpb24pXSB7IH0pOworICAg
ICAgICBhc3NlcnRpb24tPnNldFVJQXNzZXJ0aW9uRXhwaXJhdGlvbkhhbmRsZXIoW3dlYWtUaGlz
ID0gbWFrZVdlYWtQdHIoKnRoaXMpXSB7CisgICAgICAgICAgICBpZiAod2Vha1RoaXMpCisgICAg
ICAgICAgICAgICAgd2Vha1RoaXMtPnVpQXNzZXJ0aW9uV2lsbEV4cGlyZUltbWluZW50bHkoKTsK
ICAgICAgICAgfSk7CiAgICAgICAgIG1fYXNzZXJ0aW9uID0gV1RGTW92ZShhc3NlcnRpb24pOwog
ICAgIH0gZWxzZQotICAgICAgICBtX2Fzc2VydGlvbiA9IG1ha2VVbmlxdWU8UHJvY2Vzc0Fzc2Vy
dGlvbj4obV9wcm9jZXNzSWRlbnRpZmllciwgYXNzZXJ0aW9uTmFtZShuZXdUeXBlKSwgbmV3VHlw
ZSk7CisgICAgICAgIG1fYXNzZXJ0aW9uID0gUHJvY2Vzc0Fzc2VydGlvbjo6Y3JlYXRlKG1fcHJv
Y2Vzc0lkZW50aWZpZXIsIGFzc2VydGlvbk5hbWUobmV3VHlwZSksIG5ld1R5cGUsIFByb2Nlc3NB
c3NlcnRpb246Ok1vZGU6OkFzeW5jLCBbcHJldmlvdXNBc3NlcnRpb24gPSBXVEZNb3ZlKHByZXZp
b3VzQXNzZXJ0aW9uKV0geyB9KTsKIAotICAgIG1fYXNzZXJ0aW9uLT5zZXRJbnZhbGlkYXRpb25I
YW5kbGVyKFt0aGlzXSB7Ci0gICAgICAgIGFzc2VydGlvbldhc0ludmFsaWRhdGVkKCk7CisgICAg
bV9hc3NlcnRpb24tPnNldEludmFsaWRhdGlvbkhhbmRsZXIoW3dlYWtUaGlzID0gbWFrZVdlYWtQ
dHIoKnRoaXMpXSB7CisgICAgICAgIGlmICh3ZWFrVGhpcykKKyAgICAgICAgICAgIHdlYWtUaGlz
LT5hc3NlcnRpb25XYXNJbnZhbGlkYXRlZCgpOwogICAgIH0pOwogICAgIG1fcHJvY2Vzcy5kaWRT
ZXRBc3NlcnRpb25UeXBlKG5ld1R5cGUpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvUHJvY2Vzc1Rocm90dGxlci5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvUHJv
Y2Vzc1Rocm90dGxlci5oCmluZGV4IGJkNjg1ZTdjY2IxN2NmMmQ4M2I1MmQ0NmQ3MjBmYTZjNTll
ZmI0MGMuLjY5YTdjNTU1MjUxN2VjNTRhNTY0ZWM0ZDFjYzRkZmEzZGMyOTI4ZTAgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1Byb2Nlc3NUaHJvdHRsZXIuaAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9Qcm9jZXNzVGhyb3R0bGVyLmgKQEAgLTE0OSw3ICsxNDksNyBA
QCBwcml2YXRlOgogCiAgICAgUHJvY2Vzc1Rocm90dGxlckNsaWVudCYgbV9wcm9jZXNzOwogICAg
IFByb2Nlc3NJRCBtX3Byb2Nlc3NJZGVudGlmaWVyIHsgMCB9OwotICAgIHN0ZDo6dW5pcXVlX3B0
cjxQcm9jZXNzQXNzZXJ0aW9uPiBtX2Fzc2VydGlvbjsKKyAgICBSZWZQdHI8UHJvY2Vzc0Fzc2Vy
dGlvbj4gbV9hc3NlcnRpb247CiAgICAgUnVuTG9vcDo6VGltZXI8UHJvY2Vzc1Rocm90dGxlcj4g
bV9wcmVwYXJlVG9TdXNwZW5kVGltZW91dFRpbWVyOwogICAgIEhhc2hTZXQ8Rm9yZWdyb3VuZEFj
dGl2aXR5Kj4gbV9mb3JlZ3JvdW5kQWN0aXZpdGllczsKICAgICBIYXNoU2V0PEJhY2tncm91bmRB
Y3Rpdml0eSo+IG1fYmFja2dyb3VuZEFjdGl2aXRpZXM7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUG9vbC5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9XZWJQcm9jZXNzUG9vbC5jcHAKaW5kZXggOTQyNTlkNWEzZjczNTgwYmViY2RhYWJjNzhiZDQ4
N2U4MzUxMGM3Ny4uYWMzOGVkMWI1YjViMGEwMzhjODQ3NTI2MTE3NGM2NTNhNzQzYmI1NiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Bvb2wuY3BwCisrKyBi
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQb29sLmNwcApAQCAtMjAyOCw5ICsy
MDI4LDkgQEAgdm9pZCBXZWJQcm9jZXNzUG9vbDo6dXBkYXRlQXVkaWJsZU1lZGlhQXNzZXJ0aW9u
cygpCiAKICAgICBXRUJQUk9DRVNTUE9PTF9SRUxFQVNFX0xPRyhQcm9jZXNzU3VzcGVuc2lvbiwg
InVwZGF0ZUF1ZGlibGVNZWRpYUFzc2VydGlvbnM6IFRoZSBudW1iZXIgb2YgcHJvY2Vzc2VzIHBs
YXlpbmcgYXVkaWJsZSBtZWRpYSBpcyBub3cgZ3JlYXRlciB0aGFuIHplcm8uIFRha2luZyBVSSBw
cm9jZXNzIGFzc2VydGlvbi4iKTsKICAgICBtX2F1ZGlibGVNZWRpYUFjdGl2aXR5ID0gQXVkaWJs
ZU1lZGlhQWN0aXZpdHkgewotICAgICAgICBtYWtlVW5pcXVlUmVmPFByb2Nlc3NBc3NlcnRpb24+
KGdldEN1cnJlbnRQcm9jZXNzSUQoKSwgIldlYktpdCBNZWRpYSBQbGF5YmFjayJfcywgUHJvY2Vz
c0Fzc2VydGlvblR5cGU6Ok1lZGlhUGxheWJhY2spCisgICAgICAgIFByb2Nlc3NBc3NlcnRpb246
OmNyZWF0ZShnZXRDdXJyZW50UHJvY2Vzc0lEKCksICJXZWJLaXQgTWVkaWEgUGxheWJhY2siX3Ms
IFByb2Nlc3NBc3NlcnRpb25UeXBlOjpNZWRpYVBsYXliYWNrKQogI2lmIEVOQUJMRShHUFVfUFJP
Q0VTUykKLSAgICAgICAgLCBncHVQcm9jZXNzKCkgPyBtYWtlVW5pcXVlPFByb2Nlc3NBc3NlcnRp
b24+KGdwdVByb2Nlc3MoKS0+cHJvY2Vzc0lkZW50aWZpZXIoKSwgIldlYktpdCBNZWRpYSBQbGF5
YmFjayJfcywgUHJvY2Vzc0Fzc2VydGlvblR5cGU6Ok1lZGlhUGxheWJhY2spIDogbnVsbHB0cgor
ICAgICAgICAsIGdwdVByb2Nlc3MoKSA/IFJlZlB0cjxQcm9jZXNzQXNzZXJ0aW9uPiB7IFByb2Nl
c3NBc3NlcnRpb246OmNyZWF0ZShncHVQcm9jZXNzKCktPnByb2Nlc3NJZGVudGlmaWVyKCksICJX
ZWJLaXQgTWVkaWEgUGxheWJhY2siX3MsIFByb2Nlc3NBc3NlcnRpb25UeXBlOjpNZWRpYVBsYXli
YWNrKSB9IDogbnVsbHB0cgogI2VuZGlmCiAgICAgfTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQb29sLmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9XZWJQcm9jZXNzUG9vbC5oCmluZGV4IDI5MzYxYTA0ODUxYjRiZTZiMjRmZWIzNmMzNDUyNjYx
Yjg0Y2IyNjIuLjRlZjU0MWQwNzllMTdkMGM2NDQ3NDZhZWQyNDk2MDkyOTQxN2JiMzYgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQb29sLmgKKysrIGIvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Bvb2wuaApAQCAtNzYzLDkgKzc2Myw5IEBA
IHByaXZhdGU6CiAgICAgV2ViUHJvY2Vzc1dpdGhBdWRpYmxlTWVkaWFDb3VudGVyIG1fd2ViUHJv
Y2Vzc1dpdGhBdWRpYmxlTWVkaWFDb3VudGVyOwogCiAgICAgc3RydWN0IEF1ZGlibGVNZWRpYUFj
dGl2aXR5IHsKLSAgICAgICAgVW5pcXVlUmVmPFByb2Nlc3NBc3NlcnRpb24+IHVpUHJvY2Vzc01l
ZGlhUGxheWJhY2tBc3NlcnRpb247CisgICAgICAgIFJlZjxQcm9jZXNzQXNzZXJ0aW9uPiB1aVBy
b2Nlc3NNZWRpYVBsYXliYWNrQXNzZXJ0aW9uOwogI2lmIEVOQUJMRShHUFVfUFJPQ0VTUykKLSAg
ICAgICAgc3RkOjp1bmlxdWVfcHRyPFByb2Nlc3NBc3NlcnRpb24+IGdwdVByb2Nlc3NNZWRpYVBs
YXliYWNrQXNzZXJ0aW9uOworICAgICAgICBSZWZQdHI8UHJvY2Vzc0Fzc2VydGlvbj4gZ3B1UHJv
Y2Vzc01lZGlhUGxheWJhY2tBc3NlcnRpb247CiAjZW5kaWYKICAgICB9OwogICAgIHN0ZDo6b3B0
aW9uYWw8QXVkaWJsZU1lZGlhQWN0aXZpdHk+IG1fYXVkaWJsZU1lZGlhQWN0aXZpdHk7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkuY3BwIGIvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5LmNwcAppbmRleCBiMWI0ODgwMDBm
NzBiOTJkMDc1Yjc4NmQ2NmUxOThhZWE1ODFlZWE1Li4xZjU4MzJjYzgzOTQyYzhlNjQ3NjM4OGYx
NjZhNTQwNmQ0ZTU2ZWYzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQ
cm9jZXNzUHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQ
cm94eS5jcHAKQEAgLTE0OTQsNyArMTQ5NCw3IEBAIHZvaWQgV2ViUHJvY2Vzc1Byb3h5Ojp1cGRh
dGVBdWRpYmxlTWVkaWFBc3NlcnRpb25zKCkKICAgICBpZiAobmV3SGFzQXVkaWJsZVdlYlBhZ2Up
IHsKICAgICAgICAgV0VCUFJPQ0VTU1BST1hZX1JFTEVBU0VfTE9HKFByb2Nlc3NTdXNwZW5zaW9u
LCAidXBkYXRlQXVkaWJsZU1lZGlhQXNzZXJ0aW9uczogVGFraW5nIE1lZGlhUGxheWJhY2sgYXNz
ZXJ0aW9uIGZvciBXZWJQcm9jZXNzIik7CiAgICAgICAgIG1fYXVkaWJsZU1lZGlhQWN0aXZpdHkg
PSBBdWRpYmxlTWVkaWFBY3Rpdml0eSB7Ci0gICAgICAgICAgICBtYWtlVW5pcXVlUmVmPFByb2Nl
c3NBc3NlcnRpb24+KHByb2Nlc3NJZGVudGlmaWVyKCksICJXZWJLaXQgTWVkaWEgUGxheWJhY2si
X3MsIFByb2Nlc3NBc3NlcnRpb25UeXBlOjpNZWRpYVBsYXliYWNrKSwKKyAgICAgICAgICAgIFBy
b2Nlc3NBc3NlcnRpb246OmNyZWF0ZShwcm9jZXNzSWRlbnRpZmllcigpLCAiV2ViS2l0IE1lZGlh
IFBsYXliYWNrIl9zLCBQcm9jZXNzQXNzZXJ0aW9uVHlwZTo6TWVkaWFQbGF5YmFjayksCiAgICAg
ICAgICAgICBwcm9jZXNzUG9vbCgpLndlYlByb2Nlc3NXaXRoQXVkaWJsZU1lZGlhVG9rZW4oKQog
ICAgICAgICB9OwogICAgIH0gZWxzZSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9XZWJQcm9jZXNzUHJveHkuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nl
c3NQcm94eS5oCmluZGV4IDM1Y2NiODkyOThhZTliNmMxYzFhNzYyYjMwZDJmMGY4MWJmMjQyOWQu
LmRiNGI5OTNiMzZmMGU0MTAyZDM4ZGZmMTBmNGQwMDVhOGM3MzJlMDkgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5oCisrKyBiL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5oCkBAIC02MzksNyArNjM5LDcgQEAgcHJpdmF0
ZToKICAgICBIYXNoTWFwPFdlYkNvcmU6OlNsZWVwRGlzYWJsZXJJZGVudGlmaWVyLCBzdGQ6OnVu
aXF1ZV9wdHI8V2ViQ29yZTo6U2xlZXBEaXNhYmxlcj4+IG1fc2xlZXBEaXNhYmxlcnM7CiAKICAg
ICBzdHJ1Y3QgQXVkaWJsZU1lZGlhQWN0aXZpdHkgewotICAgICAgICBVbmlxdWVSZWY8UHJvY2Vz
c0Fzc2VydGlvbj4gYXNzZXJ0aW9uOworICAgICAgICBSZWY8UHJvY2Vzc0Fzc2VydGlvbj4gYXNz
ZXJ0aW9uOwogICAgICAgICBXZWJQcm9jZXNzV2l0aEF1ZGlibGVNZWRpYVRva2VuIHRva2VuOwog
ICAgIH07CiAgICAgc3RkOjpvcHRpb25hbDxBdWRpYmxlTWVkaWFBY3Rpdml0eT4gbV9hdWRpYmxl
TWVkaWFBY3Rpdml0eTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9Q
cm9jZXNzQXNzZXJ0aW9uSU9TLm1tIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1Byb2Nl
c3NBc3NlcnRpb25JT1MubW0KaW5kZXggNTZhZTYyZTQ1ZDcxM2RjYjNjNDE4YWY0MWE4ZGQ4ZTEx
MDFhMzY4Mi4uYzE3ZWVjMzZlY2QxMzIyNmMwZGYwZjIyM2YzMjkwZGYzYjVjZmI1OCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1Byb2Nlc3NBc3NlcnRpb25JT1MubW0K
KysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1Byb2Nlc3NBc3NlcnRpb25JT1MubW0K
QEAgLTQxLDYgKzQxLDEyIEBACiAKIHVzaW5nIFdlYktpdDo6UHJvY2Vzc0FuZFVJQXNzZXJ0aW9u
OwogCitzdGF0aWMgV29ya1F1ZXVlJiBhc3NlcnRpb25zV29ya1F1ZXVlKCkKK3sKKyAgICBzdGF0
aWMgTmV2ZXJEZXN0cm95ZWQ8UmVmPFdvcmtRdWV1ZT4+IHdvcmtRdWV1ZShXb3JrUXVldWU6OmNy
ZWF0ZSgiUHJvY2Vzc0Fzc2VydGlvbiBRdWV1ZSIpKTsKKyAgICByZXR1cm4gd29ya1F1ZXVlLmdl
dCgpOworfQorCiAvLyBUaGlzIGdpdmVzIHNvbWUgdGltZSB0byBvdXIgY2hpbGQgcHJvY2Vzc2Vz
IHRvIHByb2Nlc3MgdGhlIFByb2Nlc3NXaWxsU3VzcGVuZEltbWluZW50bHkgSVBDIGJ1dCBtYWtl
cyBzdXJlIHdlIHJlbGVhc2UKIC8vIHRoZSBiYWNrZ3JvdW5kIHRhc2sgYmVmb3JlIHRoZSBVSUtp
dCB0aW1lb3V0IChXZSBnZXQga2lsbGVkIGlmIHdlIGRvIG5vdCByZWxlYXNlIHRoZSBiYWNrZ3Jv
dW5kIHRhc2sgd2l0aGluIDUgc2Vjb25kcwogLy8gb24gdGhlIGV4cGlyYXRpb24gaGFuZGxlciBn
ZXR0aW5nIGNhbGxlZCkuCkBAIC02NCw2ICs3MCw3IEBAIEBlbmQKIEBpbXBsZW1lbnRhdGlvbiBX
S1Byb2Nlc3NBc3NlcnRpb25CYWNrZ3JvdW5kVGFza01hbmFnZXIKIHsKICAgICBSZXRhaW5QdHI8
UkJTQXNzZXJ0aW9uPiBfYmFja2dyb3VuZFRhc2s7CisgICAgc3RkOjphdG9taWM8Ym9vbD4gX2Jh
Y2tncm91bmRUYXNrV2FzSW52YWxpZGF0ZWQ7CiAgICAgV2Vha0hhc2hTZXQ8UHJvY2Vzc0FuZFVJ
QXNzZXJ0aW9uPiBfYXNzZXJ0aW9uc05lZWRpbmdCYWNrZ3JvdW5kVGFzazsKICAgICBkaXNwYXRj
aF9ibG9ja190IF9wZW5kaW5nVGFza1JlbGVhc2VUYXNrOwogfQpAQCAtMTYwLDcgKzE2Nyw3IEBA
IC0gKEJPT0wpX2hhc0JhY2tncm91bmRUYXNrCiAKIC0gKHZvaWQpX3VwZGF0ZUJhY2tncm91bmRU
YXNrCiB7Ci0gICAgaWYgKCFfYXNzZXJ0aW9uc05lZWRpbmdCYWNrZ3JvdW5kVGFzay5jb21wdXRl
c0VtcHR5KCkgJiYgIVtzZWxmIF9oYXNCYWNrZ3JvdW5kVGFza10pIHsKKyAgICBpZiAoIV9hc3Nl
cnRpb25zTmVlZGluZ0JhY2tncm91bmRUYXNrLmNvbXB1dGVzRW1wdHkoKSAmJiAoIVtzZWxmIF9o
YXNCYWNrZ3JvdW5kVGFza10gfHwgX2JhY2tncm91bmRUYXNrV2FzSW52YWxpZGF0ZWQpKSB7CiAg
ICAgICAgIGlmIChwcm9jZXNzSGFzQWN0aXZlUnVuVGltZUxpbWl0YXRpb24oKSkgewogICAgICAg
ICAgICAgUkVMRUFTRV9MT0coUHJvY2Vzc1N1c3BlbnNpb24sICIlcCAtIFdLUHJvY2Vzc0Fzc2Vy
dGlvbkJhY2tncm91bmRUYXNrTWFuYWdlcjogSWdub3JlZCByZXF1ZXN0IHRvIHN0YXJ0IGEgbmV3
IGJhY2tncm91bmQgdGFzayBiZWNhdXNlIFJ1bm5pbmdCb2FyZCBoYXMgYWxyZWFkeSBzdGFydGVk
IHRoZSBleHBpcmF0aW9uIHRpbWVyIiwgc2VsZik7CiAgICAgICAgICAgICByZXR1cm47CkBAIC0x
NzEsMTEgKzE3OCw5IEBAIC0gKHZvaWQpX3VwZGF0ZUJhY2tncm91bmRUYXNrCiAgICAgICAgIF9i
YWNrZ3JvdW5kVGFzayA9IGFkb3B0TlMoW1tSQlNBc3NlcnRpb24gYWxsb2NdIGluaXRXaXRoRXhw
bGFuYXRpb246QCJXZWJLaXQgVUlQcm9jZXNzIGJhY2tncm91bmQgdGFzayIgdGFyZ2V0OnRhcmdl
dCBhdHRyaWJ1dGVzOkBbZG9tYWluQXR0cmlidXRlXV0pOwogICAgICAgICBbX2JhY2tncm91bmRU
YXNrIGFkZE9ic2VydmVyOnNlbGZdOwogCi0gICAgICAgIE5TRXJyb3IgKmFjcXVpc2l0aW9uRXJy
b3IgPSBuaWw7Ci0gICAgICAgIGlmICghW19iYWNrZ3JvdW5kVGFzayBhY3F1aXJlV2l0aEVycm9y
OiZhY3F1aXNpdGlvbkVycm9yXSkKLSAgICAgICAgICAgIFJFTEVBU0VfTE9HX0VSUk9SKFByb2Nl
c3NTdXNwZW5zaW9uLCAiV0tQcm9jZXNzQXNzZXJ0aW9uQmFja2dyb3VuZFRhc2tNYW5hZ2VyOiBG
YWlsZWQgdG8gYWNxdWlyZSBGaW5pc2hUYXNrSW50ZXJydXB0YWJsZSBhc3NlcnRpb24gZm9yIG93
biBwcm9jZXNzLCBlcnJvcjogJXtwdWJsaWN9QCIsIGFjcXVpc2l0aW9uRXJyb3IpOwotICAgICAg
ICBlbHNlCi0gICAgICAgICAgICBSRUxFQVNFX0xPRyhQcm9jZXNzU3VzcGVuc2lvbiwgIldLUHJv
Y2Vzc0Fzc2VydGlvbkJhY2tncm91bmRUYXNrTWFuYWdlcjogU3VjY2Vzc2Z1bGx5IHRvb2sgYSBG
aW5pc2hUYXNrSW50ZXJydXB0YWJsZSBhc3NlcnRpb24gZm9yIG93biBwcm9jZXNzIik7CisgICAg
ICAgIF9iYWNrZ3JvdW5kVGFza1dhc0ludmFsaWRhdGVkID0gZmFsc2U7CisgICAgICAgIFtfYmFj
a2dyb3VuZFRhc2sgYWNxdWlyZVdpdGhJbnZhbGlkYXRpb25IYW5kbGVyOm5pbF07CisgICAgICAg
IFJFTEVBU0VfTE9HKFByb2Nlc3NTdXNwZW5zaW9uLCAiV0tQcm9jZXNzQXNzZXJ0aW9uQmFja2dy
b3VuZFRhc2tNYW5hZ2VyOiBUb29rIGEgRmluaXNoVGFza0ludGVycnVwdGFibGUgYXNzZXJ0aW9u
IGZvciBvd24gcHJvY2VzcyIpOwogICAgIH0gZWxzZSBpZiAoX2Fzc2VydGlvbnNOZWVkaW5nQmFj
a2dyb3VuZFRhc2suY29tcHV0ZXNFbXB0eSgpKSB7CiAgICAgICAgIC8vIFJlbGVhc2UgdGhlIGJh
Y2tncm91bmQgdGFzayBhc3luY2hyb25vdXNseSBiZWNhdXNlIHJlbGVhc2luZyB0aGUgYmFja2dy
b3VuZCB0YXNrIG1heSBkZXN0cm95IHRoZSBQcm9jZXNzVGhyb3R0bGVyIGFuZCB3ZSBkb24ndAog
ICAgICAgICAvLyB3YW50IGl0IHRvIGdldCBkZXN0cm95ZWQgd2hpbGUgaW4gdGhlIG1pZGRsZSBv
ZiB1cGRhdGluZyBpdHMgYXNzZXJ0aW9uLgpAQCAtMTk2LDYgKzIwMSw3IEBAIC0gKHZvaWQpYXNz
ZXJ0aW9uOihSQlNBc3NlcnRpb24gKilhc3NlcnRpb24gZGlkSW52YWxpZGF0ZVdpdGhFcnJvcjoo
TlNFcnJvciAqKWVyCiB7CiAgICAgQVNTRVJUKGFzc2VydGlvbiA9PSBfYmFja2dyb3VuZFRhc2su
Z2V0KCkpOwogICAgIFJFTEVBU0VfTE9HX0VSUk9SKFByb2Nlc3NTdXNwZW5zaW9uLCAiV0tQcm9j
ZXNzQXNzZXJ0aW9uQmFja2dyb3VuZFRhc2tNYW5hZ2VyOiBGaW5pc2hUYXNrSW50ZXJydXB0YWJs
ZSBhc3NlcnRpb24gd2FzIGludmFsaWRhdGVkLCBlcnJvcjogJXtwdWJsaWN9QCIsIGVycm9yKTsK
KyAgICBfYmFja2dyb3VuZFRhc2tXYXNJbnZhbGlkYXRlZCA9IHRydWU7CiB9CiAKIC0gKHZvaWQp
X2hhbmRsZUJhY2tncm91bmRUYXNrRXhwaXJhdGlvbgpAQCAtMzE5LDYgKzMyNSw3IEBAIFByb2Nl
c3NBc3NlcnRpb246OlByb2Nlc3NBc3NlcnRpb24ocGlkX3QgcGlkLCBjb25zdCBTdHJpbmcmIHJl
YXNvbiwgUHJvY2Vzc0Fzc2VyCiAgICAgQVNTRVJUKHJ1bm5pbmdCb2FyZEFzc2VydGlvbk5hbWUp
OwogICAgIGlmICghcGlkKSB7CiAgICAgICAgIFJFTEVBU0VfTE9HX0VSUk9SKFByb2Nlc3NTdXNw
ZW5zaW9uLCAiJXAgLSBQcm9jZXNzQXNzZXJ0aW9uOiBGYWlsZWQgdG8gYWNxdWlyZSBSQlMgJXtw
dWJsaWN9QCBhc3NlcnRpb24gJyV7cHVibGljfXMnIGZvciBwcm9jZXNzIGJlY2F1c2UgUElEIGlz
IGludmFsaWQiLCB0aGlzLCBydW5uaW5nQm9hcmRBc3NlcnRpb25OYW1lLCByZWFzb24udXRmOCgp
LmRhdGEoKSk7CisgICAgICAgIG1fd2FzSW52YWxpZGF0ZWQgPSB0cnVlOwogICAgICAgICByZXR1
cm47CiAgICAgfQogCkBAIC0zMjksMjQgKzMzNiwzNiBAQCBQcm9jZXNzQXNzZXJ0aW9uOjpQcm9j
ZXNzQXNzZXJ0aW9uKHBpZF90IHBpZCwgY29uc3QgU3RyaW5nJiByZWFzb24sIFByb2Nlc3NBc3Nl
cgogICAgIG1fZGVsZWdhdGUgPSBhZG9wdE5TKFtbV0tSQlNBc3NlcnRpb25EZWxlZ2F0ZSBhbGxv
Y10gaW5pdF0pOwogICAgIFttX3Jic0Fzc2VydGlvbiBhZGRPYnNlcnZlcjptX2RlbGVnYXRlLmdl
dCgpXTsKICAgICBtX2RlbGVnYXRlLmdldCgpLmludmFsaWRhdGlvbkNhbGxiYWNrID0gXnsKLSAg
ICAgICAgUkVMRUFTRV9MT0coUHJvY2Vzc1N1c3BlbnNpb24sICIlcCAtIFByb2Nlc3NBc3NlcnRp
b24oKSBSQlMgJXtwdWJsaWN9QCBhc3NlcnRpb24gZm9yIHByb2Nlc3Mgd2l0aCBQSUQ9JWQgd2Fz
IGludmFsaWRhdGVkIiwgdGhpcywgcnVubmluZ0JvYXJkQXNzZXJ0aW9uTmFtZSwgcGlkKTsKKyAg
ICAgICAgUkVMRUFTRV9MT0coUHJvY2Vzc1N1c3BlbnNpb24sICIlcCAtIFByb2Nlc3NBc3NlcnRp
b246IFJCUyAle3B1YmxpY31AIGFzc2VydGlvbiBmb3IgcHJvY2VzcyB3aXRoIFBJRD0lZCB3YXMg
aW52YWxpZGF0ZWQiLCB0aGlzLCBydW5uaW5nQm9hcmRBc3NlcnRpb25OYW1lLCBwaWQpOwogICAg
ICAgICBwcm9jZXNzQXNzZXJ0aW9uV2FzSW52YWxpZGF0ZWQoKTsKICAgICB9OworfQogCit2b2lk
IFByb2Nlc3NBc3NlcnRpb246OmFjcXVpcmVBc3luYyhDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+
JiYgY29tcGxldGlvbkhhbmRsZXIpCit7CisgICAgYXNzZXJ0aW9uc1dvcmtRdWV1ZSgpLmRpc3Bh
dGNoKFtwcm90ZWN0ZWRUaGlzID0gbWFrZVJlZigqdGhpcyksIGNvbXBsZXRpb25IYW5kbGVyID0g
V1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcildKCkgbXV0YWJsZSB7CisgICAgICAgIHByb3RlY3Rl
ZFRoaXMtPmFjcXVpcmVTeW5jKCk7CisgICAgICAgIGlmIChjb21wbGV0aW9uSGFuZGxlcikKKyAg
ICAgICAgICAgIFJ1bkxvb3A6Om1haW4oKS5kaXNwYXRjaChXVEZNb3ZlKGNvbXBsZXRpb25IYW5k
bGVyKSk7CisgICAgfSk7Cit9CisKK3ZvaWQgUHJvY2Vzc0Fzc2VydGlvbjo6YWNxdWlyZVN5bmMo
KQorewogICAgIE5TRXJyb3IgKmFjcXVpc2l0aW9uRXJyb3IgPSBuaWw7CiAgICAgaWYgKCFbbV9y
YnNBc3NlcnRpb24gYWNxdWlyZVdpdGhFcnJvcjomYWNxdWlzaXRpb25FcnJvcl0pIHsKLSAgICAg
ICAgUkVMRUFTRV9MT0dfRVJST1IoUHJvY2Vzc1N1c3BlbnNpb24sICIlcCAtIFByb2Nlc3NBc3Nl
cnRpb246IEZhaWxlZCB0byBhY3F1aXJlIFJCUyAle3B1YmxpY31AIGFzc2VydGlvbiAnJXtwdWJs
aWN9cycgZm9yIHByb2Nlc3Mgd2l0aCBQSUQ9JWQsIGVycm9yOiAle3B1YmxpY31AIiwgdGhpcywg
cnVubmluZ0JvYXJkQXNzZXJ0aW9uTmFtZSwgcmVhc29uLnV0ZjgoKS5kYXRhKCksIHBpZCwgYWNx
dWlzaXRpb25FcnJvcik7CisgICAgICAgIFJFTEVBU0VfTE9HX0VSUk9SKFByb2Nlc3NTdXNwZW5z
aW9uLCAiJXAgLSBQcm9jZXNzQXNzZXJ0aW9uOiBGYWlsZWQgdG8gYWNxdWlyZSBSQlMgYXNzZXJ0
aW9uICcle3B1YmxpY31zJyBmb3IgcHJvY2VzcyB3aXRoIFBJRD0lZCwgZXJyb3I6ICV7cHVibGlj
fUAiLCB0aGlzLCBtX3JlYXNvbi51dGY4KCkuZGF0YSgpLCBtX3BpZCwgYWNxdWlzaXRpb25FcnJv
cik7CiAgICAgICAgIFJ1bkxvb3A6Om1haW4oKS5kaXNwYXRjaChbd2Vha1RoaXMgPSBtYWtlV2Vh
a1B0cigqdGhpcyldIHsKICAgICAgICAgICAgIGlmICh3ZWFrVGhpcykKICAgICAgICAgICAgICAg
ICB3ZWFrVGhpcy0+cHJvY2Vzc0Fzc2VydGlvbldhc0ludmFsaWRhdGVkKCk7CiAgICAgICAgIH0p
OwogICAgIH0gZWxzZQotICAgICAgICBSRUxFQVNFX0xPRyhQcm9jZXNzU3VzcGVuc2lvbiwgIiVw
IC0gUHJvY2Vzc0Fzc2VydGlvbjogU3VjY2Vzc2Z1bGx5IHRvb2sgUkJTICV7cHVibGljfUAgYXNz
ZXJ0aW9uICcle3B1YmxpY31zJyBmb3IgcHJvY2VzcyB3aXRoIFBJRD0lZCIsIHRoaXMsIHJ1bm5p
bmdCb2FyZEFzc2VydGlvbk5hbWUsIHJlYXNvbi51dGY4KCkuZGF0YSgpLCBwaWQpOworICAgICAg
ICBSRUxFQVNFX0xPRyhQcm9jZXNzU3VzcGVuc2lvbiwgIiVwIC0gUHJvY2Vzc0Fzc2VydGlvbjog
U3VjY2Vzc2Z1bGx5IHRvb2sgUkJTIGFzc2VydGlvbiAnJXtwdWJsaWN9cycgZm9yIHByb2Nlc3Mg
d2l0aCBQSUQ9JWQiLCB0aGlzLCBtX3JlYXNvbi51dGY4KCkuZGF0YSgpLCBtX3BpZCk7CiB9CiAK
IFByb2Nlc3NBc3NlcnRpb246On5Qcm9jZXNzQXNzZXJ0aW9uKCkKIHsKLSAgICBSRUxFQVNFX0xP
RyhQcm9jZXNzU3VzcGVuc2lvbiwgIiVwIC0gflByb2Nlc3NBc3NlcnRpb24oKSBSZWxlYXNpbmcg
cHJvY2VzcyBhc3NlcnRpb24gJyV7cHVibGljfXMnIGZvciBwcm9jZXNzIHdpdGggUElEPSVkIiwg
dGhpcywgbV9yZWFzb24udXRmOCgpLmRhdGEoKSwgbV9waWQpOworICAgIFJFTEVBU0VfTE9HKFBy
b2Nlc3NTdXNwZW5zaW9uLCAiJXAgLSB+UHJvY2Vzc0Fzc2VydGlvbjogUmVsZWFzaW5nIHByb2Nl
c3MgYXNzZXJ0aW9uICcle3B1YmxpY31zJyBmb3IgcHJvY2VzcyB3aXRoIFBJRD0lZCIsIHRoaXMs
IG1fcmVhc29uLnV0ZjgoKS5kYXRhKCksIG1fcGlkKTsKIAogICAgIGlmIChtX3Jic0Fzc2VydGlv
bikgewogICAgICAgICBtX2RlbGVnYXRlLmdldCgpLmludmFsaWRhdGlvbkNhbGxiYWNrID0gbmls
OwpAQCAtMzYxLDEzICszODAsMTQgQEAgdm9pZCBQcm9jZXNzQXNzZXJ0aW9uOjpwcm9jZXNzQXNz
ZXJ0aW9uV2FzSW52YWxpZGF0ZWQoKQogICAgIEFTU0VSVChSdW5Mb29wOjppc01haW4oKSk7CiAg
ICAgUkVMRUFTRV9MT0coUHJvY2Vzc1N1c3BlbnNpb24sICIlcCAtIFByb2Nlc3NBc3NlcnRpb246
OnByb2Nlc3NBc3NlcnRpb25XYXNJbnZhbGlkYXRlZCgpIFBJRD0lZCIsIHRoaXMsIG1fcGlkKTsK
IAorICAgIG1fd2FzSW52YWxpZGF0ZWQgPSB0cnVlOwogICAgIGlmIChtX2ludmFsaWRhdGlvbkhh
bmRsZXIpCiAgICAgICAgIG1faW52YWxpZGF0aW9uSGFuZGxlcigpOwogfQogCiBib29sIFByb2Nl
c3NBc3NlcnRpb246OmlzVmFsaWQoKSBjb25zdAogewotICAgIHJldHVybiBtX3Jic0Fzc2VydGlv
biAmJiBtX3Jic0Fzc2VydGlvbi5nZXQoKS52YWxpZDsKKyAgICByZXR1cm4gIW1fd2FzSW52YWxp
ZGF0ZWQ7CiB9CiAKIHZvaWQgUHJvY2Vzc0FuZFVJQXNzZXJ0aW9uOjp1cGRhdGVSdW5JbkJhY2tn
cm91bmRDb3VudCgpCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>