<?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>235856</bug_id>
          
          <creation_ts>2022-01-28 22:59:15 -0800</creation_ts>
          <short_desc>Import APSConnection-related SPI</short_desc>
          <delta_ts>2022-02-10 16:46:08 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>235857</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Ben Nham">nham</reporter>
          <assigned_to name="Ben Nham">nham</assigned_to>
          <cc>achristensen</cc>
    
    <cc>beidson</cc>
    
    <cc>benjamin</cc>
    
    <cc>cdumez</cc>
    
    <cc>cmarcelo</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>jbedard</cc>
    
    <cc>jenner</cc>
    
    <cc>nham</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>youennf</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1835257</commentid>
    <comment_count>0</comment_count>
    <who name="Ben Nham">nham</who>
    <bug_when>2022-01-28 22:59:15 -0800</bug_when>
    <thetext>Import APSConnection-related SPI</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1835258</commentid>
    <comment_count>1</comment_count>
      <attachid>450318</attachid>
    <who name="Ben Nham">nham</who>
    <bug_when>2022-01-28 23:01:37 -0800</bug_when>
    <thetext>Created attachment 450318
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1835269</commentid>
    <comment_count>2</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2022-01-28 23:51:21 -0800</bug_when>
    <thetext>&lt;rdar://problem/88219151&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1835309</commentid>
    <comment_count>3</comment_count>
      <attachid>450332</attachid>
    <who name="Ben Nham">nham</who>
    <bug_when>2022-01-29 13:08:47 -0800</bug_when>
    <thetext>Created attachment 450332
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1835332</commentid>
    <comment_count>4</comment_count>
      <attachid>450342</attachid>
    <who name="Ben Nham">nham</who>
    <bug_when>2022-01-29 15:22:32 -0800</bug_when>
    <thetext>Created attachment 450342
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1835358</commentid>
    <comment_count>5</comment_count>
      <attachid>450349</attachid>
    <who name="Ben Nham">nham</who>
    <bug_when>2022-01-29 21:40:10 -0800</bug_when>
    <thetext>Created attachment 450349
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1835367</commentid>
    <comment_count>6</comment_count>
      <attachid>450355</attachid>
    <who name="Ben Nham">nham</who>
    <bug_when>2022-01-29 22:58:13 -0800</bug_when>
    <thetext>Created attachment 450355
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1835427</commentid>
    <comment_count>7</comment_count>
      <attachid>450378</attachid>
    <who name="Ben Nham">nham</who>
    <bug_when>2022-01-30 21:51:56 -0800</bug_when>
    <thetext>Created attachment 450378
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1835446</commentid>
    <comment_count>8</comment_count>
      <attachid>450378</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2022-01-31 00:27:09 -0800</bug_when>
    <thetext>Comment on attachment 450378
Patch

r=me provided that the questions for |this| get either answered or fixed before landing.

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

&gt; Source/WebKit/WebKit.xcodeproj/project.pbxproj:10067
&gt; +				EBA8D3B027A5E33F00CB7900 /* FakePushServiceConnection.mm */,

We use Mock usually instead of Fake, can we rename it?

&gt; Source/WebKit/webpushd/ApplePushServiceConnection.h:37
&gt; +class ApplePushServiceConnection : public PushServiceConnection {

final?

&gt; Source/WebKit/webpushd/ApplePushServiceConnection.h:41
&gt; +    virtual ~ApplePushServiceConnection();

virtual probably not needed.

&gt; Source/WebKit/webpushd/ApplePushServiceConnection.h:56
&gt; +    void setTopicLists(TopicLists&amp;&amp;) final;

Do we need to expose all these methods or can we make the private?

&gt; Source/WebKit/webpushd/ApplePushServiceConnection.mm:79
&gt; +{

Since we are dealing with threads, we could add a isMainRunLoop assertion.

&gt; Source/WebKit/webpushd/ApplePushServiceConnection.mm:86
&gt; +        handler(token.tokenURL, error);

It seems the dispatch to main queue makes it possible that |this| would not be valid here.
I would either use a weak ptr or take a ref.

&gt; Source/WebKit/webpushd/ApplePushServiceConnection.mm:100
&gt; +            handler(success, error);

Ditto.

&gt; Source/WebKit/webpushd/ApplePushServiceConnection.mm:145
&gt; +void ApplePushServiceConnection::setTopicLists(TopicLists&amp;&amp; topicLists)

Do we need a &amp;&amp;?
It seems a const&amp; is good enough.

&gt; Source/WebKit/webpushd/FakePushServiceConnection.h:34
&gt; +class FakePushServiceConnection : public PushServiceConnection {

Mock and final?

&gt; Source/WebKit/webpushd/FakePushServiceConnection.h:38
&gt; +    virtual ~FakePushServiceConnection();

virtual probably not needed.

&gt; Source/WebKit/webpushd/FakePushServiceConnection.h:53
&gt; +    void setTopicLists(TopicLists&amp;&amp;) final;

Can we make them private?

&gt; Source/WebKit/webpushd/PushServiceConnection.h:30
&gt; +#include &lt;wtf/Function.h&gt;

Function unneeded?

&gt; Source/WebKit/webpushd/PushServiceConnection.h:31
&gt; +#include &lt;wtf/RetainPtr.h&gt;

Retain unneeded?

&gt; Source/WebKit/webpushd/PushServiceConnection.h:33
&gt; +#include &lt;wtf/WorkQueue.h&gt;

WorkQueue in source file?

&gt; Source/WebKit/webpushd/PushServiceConnection.mm:40
&gt; +    WorkQueue::main().dispatch([this]() mutable {

How are we use |this| is valid?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1835546</commentid>
    <comment_count>9</comment_count>
    <who name="Ben Nham">nham</who>
    <bug_when>2022-01-31 08:58:32 -0800</bug_when>
    <thetext>(In reply to youenn fablet from comment #8)
&gt; Comment on attachment 450378 [details]
&gt; &gt; Source/WebKit/webpushd/ApplePushServiceConnection.h:56
&gt; &gt; +    void setTopicLists(TopicLists&amp;&amp;) final;
&gt; 
&gt; Do we need to expose all these methods or can we make the private?

Right now I am only calling the big setTopicLists setter, since APS recommends calling that over the more granular setters if you need to initialize all state at once (e.g. at launch time). But in a future patch I will likely call the more granular setters also. So I decided to expose them all here.

&gt; &gt; Source/WebKit/webpushd/ApplePushServiceConnection.mm:86
&gt; &gt; +        handler(token.tokenURL, error);
&gt; 
&gt; It seems the dispatch to main queue makes it possible that |this| would not
&gt; be valid here.
&gt; I would either use a weak ptr or take a ref.

Right, this applies to both this patch and PushService in 235857. To be technically correct in all scenarios, this object would have to be ref-counted, and the lambdas would have to protectThis or do something similar.

However I omitted that in both this class and in PushService (https://bugs.webkit.org/show_bug.cgi?id=235857) because these classes are held onto by a NeverDestroyed&lt;WebPushDaemon&gt; singleton instance.

Maybe that&apos;s a bad idea and I should just write the class so that it could be used outside of the context of WebPushDaemon, though I&apos;m not sure what other use case there would be. That&apos;s also why I put this class in the WebPushD namespace rather than the WebKit namespace.

What do you think?

&gt; &gt; Source/WebKit/webpushd/ApplePushServiceConnection.mm:145
&gt; &gt; +void ApplePushServiceConnection::setTopicLists(TopicLists&amp;&amp; topicLists)
&gt; 
&gt; Do we need a &amp;&amp;?
&gt; It seems a const&amp; is good enough.

I made it &amp;&amp; since VectorCocoa wants &amp;&amp; and it does actually seem to move the elements out of the array.

Actually, now that I&apos;ve said that, I should probably change the other topic setters to use &amp;&amp; instead of const &amp;.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1835548</commentid>
    <comment_count>10</comment_count>
    <who name="youenn fablet">youennf</who>
    <bug_when>2022-01-31 09:07:20 -0800</bug_when>
    <thetext>&gt; &gt; &gt; Source/WebKit/webpushd/ApplePushServiceConnection.mm:145
&gt; &gt; &gt; +void ApplePushServiceConnection::setTopicLists(TopicLists&amp;&amp; topicLists)
&gt; &gt; 
&gt; &gt; Do we need a &amp;&amp;?
&gt; &gt; It seems a const&amp; is good enough.
&gt; 
&gt; I made it &amp;&amp; since VectorCocoa wants &amp;&amp; and it does actually seem to move
&gt; the elements out of the array.
&gt; 
&gt; Actually, now that I&apos;ve said that, I should probably change the other topic
&gt; setters to use &amp;&amp; instead of const &amp;.

If it is a &amp;&amp;, we should use some WTFMove within the setter to make use of &amp;&amp;.
I do not see any such use hence why const&amp; might be sufficient.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1835632</commentid>
    <comment_count>11</comment_count>
      <attachid>450430</attachid>
    <who name="Ben Nham">nham</who>
    <bug_when>2022-01-31 12:21:39 -0800</bug_when>
    <thetext>Created attachment 450430
patch feedback</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1835651</commentid>
    <comment_count>12</comment_count>
      <attachid>450434</attachid>
    <who name="Ben Nham">nham</who>
    <bug_when>2022-01-31 12:57:57 -0800</bug_when>
    <thetext>Created attachment 450434
patch feedback</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1836078</commentid>
    <comment_count>13</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2022-02-01 11:17:18 -0800</bug_when>
    <thetext>Committed r288902 (246646@main): &lt;https://commits.webkit.org/246646@main&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 450434.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1837083</commentid>
    <comment_count>14</comment_count>
    <who name="Robert Jenner">jenner</who>
    <bug_when>2022-02-03 13:30:32 -0800</bug_when>
    <thetext>Reverted r288902 for reason:

Broke compile-webkit for iOS-15-Simulator

Committed r289073 (?): &lt;https://commits.webkit.org/r289073&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1837126</commentid>
    <comment_count>15</comment_count>
      <attachid>450825</attachid>
    <who name="Ben Nham">nham</who>
    <bug_when>2022-02-03 14:55:07 -0800</bug_when>
    <thetext>Created attachment 450825
update tbd</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1837242</commentid>
    <comment_count>16</comment_count>
      <attachid>450861</attachid>
    <who name="Ben Nham">nham</who>
    <bug_when>2022-02-03 20:57:44 -0800</bug_when>
    <thetext>Created attachment 450861
patch for relanding</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1837426</commentid>
    <comment_count>17</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2022-02-04 08:08:02 -0800</bug_when>
    <thetext>Committed r289114 (246811@main): &lt;https://commits.webkit.org/246811@main&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 450861.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>450318</attachid>
            <date>2022-01-28 23:01:37 -0800</date>
            <delta_ts>2022-01-29 13:08:45 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-235856-20220128230136.patch</filename>
            <type>text/plain</type>
            <size>47621</size>
            <attacher name="Ben Nham">nham</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg4NDU0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IDRlZWVkOGYxMWQ3MTk3NjJmZTg3OTM2
YzNkOTFhYTQyZmUyMDIxMWYuLjU0ZjdlODhlN2NkMTU1ZTFkZmE1ZjQxYjIwMzJkY2I1MTVjZGY3
YWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMTQgQEAKKzIwMjItMDEtMjggIEJlbiBOaGFtICA8bmhhbUBhcHBs
ZS5jb20+CisKKyAgICAgICAgSW1wb3J0IEFQU0Nvbm5lY3Rpb24tcmVsYXRlZCBTUEkKKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIzNTg1NgorCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkZCBhIEhBVkUgbWFj
cm8gdG8gZ3VhcmQgc29tZSBvZiB0aGUgbmV3ZXIgU1BJIGluIEFQU0Nvbm5lY3Rpb24uCisKKyAg
ICAgICAgKiB3dGYvUGxhdGZvcm1IYXZlLmg6CisKIDIwMjItMDEtMjEgIFl1c3VrZSBTdXp1a2kg
IDx5c3V6dWtpQGFwcGxlLmNvbT4KIAogICAgICAgICBbSlNDXSBSZWxheCBEYXRlLnBhcnNlIHJl
cXVpcmVtZW50CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZyBiL1NvdXJjZS9X
ZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDllMDIwYWJlYzk1OGI2MjM4NGNjZDY4OTYyZDlkMjFhODYz
M2Q2OTMuLjRjZGIwZTlkOTZmNjJmYmY0NGRkMjY2YzY4MDgxMjdiZTY2MDQyN2IgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9n
CkBAIC0xLDMgKzEsNTQgQEAKKzIwMjItMDEtMjggIEJlbiBOaGFtICA8bmhhbUBhcHBsZS5jb20+
CisKKyAgICAgICAgSW1wb3J0IEFQU0Nvbm5lY3Rpb24tcmVsYXRlZCBTUEkKKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIzNTg1NgorCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRoaXMgaW1wb3J0cyB0aGUgU1BJ
IGRlY2xhcmF0aW9ucyBuZWNlc3NhcnkgdG8gYnVpbGQgYWdhaW5zdCBBcHBsZVB1c2hTZXJ2aWNl
IGluIFdlYktpdC4gSXQKKyAgICAgICAgYWxzbyBpbmNsdWRlcyBhIFB1c2hTZXJ2aWNlQ29ubmVj
dGlvbiBpbnRlcmZhY2UgdGhhdCBjYW4gc2l0IGluIGZyb250IG9mIEFQU0Nvbm5lY3Rpb24sIGFu
ZAorICAgICAgICBhIGZha2UgaW50ZXJmYWNlIHRoYXQgd2lsbCBiZSBmbGVzaGVkIG91dCBmb3Ig
dGVzdGluZyBwdXJwb3Nlcy4KKworICAgICAgICAqIENvbmZpZ3VyYXRpb25zL1dlYktpdC54Y2Nv
bmZpZzoKKyAgICAgICAgKiBQbGF0Zm9ybS9zcGkvQ29jb2EvQXBwbGVQdXNoU2VydmljZVNQSS5o
OiBBZGRlZC4KKyAgICAgICAgKiBXZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAg
ICAgICAgKiB3ZWJwdXNoZC9BcHBsZVB1c2hTZXJ2aWNlQ29ubmVjdGlvbi5oOiBBZGRlZC4KKyAg
ICAgICAgKiB3ZWJwdXNoZC9BcHBsZVB1c2hTZXJ2aWNlQ29ubmVjdGlvbi5tbTogQWRkZWQuCisg
ICAgICAgICgtW19XS0FQU0Nvbm5lY3Rpb25EZWxlZ2F0ZSBpbml0V2l0aENvbm5lY3Rpb246XSk6
CisgICAgICAgICgtW19XS0FQU0Nvbm5lY3Rpb25EZWxlZ2F0ZSBjb25uZWN0aW9uOmRpZFJlY2Vp
dmVQdWJsaWNUb2tlbjpdKToKKyAgICAgICAgKC1bX1dLQVBTQ29ubmVjdGlvbkRlbGVnYXRlIGNv
bm5lY3Rpb246ZGlkUmVjZWl2ZUluY29taW5nTWVzc2FnZTpdKToKKyAgICAgICAgKFdlYlB1c2hE
OjpBcHBsZVB1c2hTZXJ2aWNlQ29ubmVjdGlvbjo6QXBwbGVQdXNoU2VydmljZUNvbm5lY3Rpb24p
OgorICAgICAgICAoV2ViUHVzaEQ6Om1ha2VUb2tlbkluZm8pOgorICAgICAgICAoV2ViUHVzaEQ6
OkFwcGxlUHVzaFNlcnZpY2VDb25uZWN0aW9uOjpzdWJzY3JpYmUpOgorICAgICAgICAoV2ViUHVz
aEQ6OkFwcGxlUHVzaFNlcnZpY2VDb25uZWN0aW9uOjp1bnN1YnNjcmliZSk6CisgICAgICAgIChX
ZWJQdXNoRDo6QXBwbGVQdXNoU2VydmljZUNvbm5lY3Rpb246OmVuYWJsZWRUb3BpY3MpOgorICAg
ICAgICAoV2ViUHVzaEQ6OkFwcGxlUHVzaFNlcnZpY2VDb25uZWN0aW9uOjppZ25vcmVkVG9waWNz
KToKKyAgICAgICAgKFdlYlB1c2hEOjpBcHBsZVB1c2hTZXJ2aWNlQ29ubmVjdGlvbjo6b3Bwb3J0
dW5pc3RpY1RvcGljcyk6CisgICAgICAgIChXZWJQdXNoRDo6QXBwbGVQdXNoU2VydmljZUNvbm5l
Y3Rpb246Om5vbldha2luZ1RvcGljcyk6CisgICAgICAgIChXZWJQdXNoRDo6QXBwbGVQdXNoU2Vy
dmljZUNvbm5lY3Rpb246OnNldEVuYWJsZWRUb3BpY3MpOgorICAgICAgICAoV2ViUHVzaEQ6OkFw
cGxlUHVzaFNlcnZpY2VDb25uZWN0aW9uOjpzZXRJZ25vcmVkVG9waWNzKToKKyAgICAgICAgKFdl
YlB1c2hEOjpBcHBsZVB1c2hTZXJ2aWNlQ29ubmVjdGlvbjo6c2V0T3Bwb3J0dW5pc3RpY1RvcGlj
cyk6CisgICAgICAgIChXZWJQdXNoRDo6QXBwbGVQdXNoU2VydmljZUNvbm5lY3Rpb246OnNldE5v
bldha2luZ1RvcGljcyk6CisgICAgICAgIChXZWJQdXNoRDo6QXBwbGVQdXNoU2VydmljZUNvbm5l
Y3Rpb246OnNldFRvcGljTGlzdHMpOgorICAgICAgICAqIHdlYnB1c2hkL0Zha2VQdXNoU2Vydmlj
ZUNvbm5lY3Rpb24uaDogQWRkZWQuCisgICAgICAgICogd2VicHVzaGQvRmFrZVB1c2hTZXJ2aWNl
Q29ubmVjdGlvbi5tbTogQWRkZWQuCisgICAgICAgIChXZWJQdXNoRDo6RmFrZVB1c2hTZXJ2aWNl
Q29ubmVjdGlvbjo6RmFrZVB1c2hTZXJ2aWNlQ29ubmVjdGlvbik6CisgICAgICAgIChXZWJQdXNo
RDo6RmFrZVB1c2hTZXJ2aWNlQ29ubmVjdGlvbjo6c3Vic2NyaWJlKToKKyAgICAgICAgKFdlYlB1
c2hEOjpGYWtlUHVzaFNlcnZpY2VDb25uZWN0aW9uOjp1bnN1YnNjcmliZSk6CisgICAgICAgIChX
ZWJQdXNoRDo6RmFrZVB1c2hTZXJ2aWNlQ29ubmVjdGlvbjo6ZW5hYmxlZFRvcGljcyk6CisgICAg
ICAgIChXZWJQdXNoRDo6RmFrZVB1c2hTZXJ2aWNlQ29ubmVjdGlvbjo6aWdub3JlZFRvcGljcyk6
CisgICAgICAgIChXZWJQdXNoRDo6RmFrZVB1c2hTZXJ2aWNlQ29ubmVjdGlvbjo6b3Bwb3J0dW5p
c3RpY1RvcGljcyk6CisgICAgICAgIChXZWJQdXNoRDo6RmFrZVB1c2hTZXJ2aWNlQ29ubmVjdGlv
bjo6bm9uV2FraW5nVG9waWNzKToKKyAgICAgICAgKFdlYlB1c2hEOjpGYWtlUHVzaFNlcnZpY2VD
b25uZWN0aW9uOjpzZXRFbmFibGVkVG9waWNzKToKKyAgICAgICAgKFdlYlB1c2hEOjpGYWtlUHVz
aFNlcnZpY2VDb25uZWN0aW9uOjpzZXRJZ25vcmVkVG9waWNzKToKKyAgICAgICAgKFdlYlB1c2hE
OjpGYWtlUHVzaFNlcnZpY2VDb25uZWN0aW9uOjpzZXRPcHBvcnR1bmlzdGljVG9waWNzKToKKyAg
ICAgICAgKFdlYlB1c2hEOjpGYWtlUHVzaFNlcnZpY2VDb25uZWN0aW9uOjpzZXROb25XYWtpbmdU
b3BpY3MpOgorICAgICAgICAoV2ViUHVzaEQ6OkZha2VQdXNoU2VydmljZUNvbm5lY3Rpb246OnNl
dFRvcGljTGlzdHMpOgorICAgICAgICAqIHdlYnB1c2hkL1B1c2hTZXJ2aWNlQ29ubmVjdGlvbi5o
OiBBZGRlZC4KKyAgICAgICAgKiB3ZWJwdXNoZC9QdXNoU2VydmljZUNvbm5lY3Rpb24ubW06IEFk
ZGVkLgorICAgICAgICAoV2ViUHVzaEQ6OlB1c2hTZXJ2aWNlQ29ubmVjdGlvbjo6c3RhcnRMaXN0
ZW5pbmdGb3JQdXNoTWVzc2FnZXMpOgorICAgICAgICAoV2ViUHVzaEQ6OlB1c2hTZXJ2aWNlQ29u
bmVjdGlvbjo6ZGlkUmVjZWl2ZVB1c2hNZXNzYWdlKToKKwogMjAyMi0wMS0yOCAgQmVuIE5oYW0g
IDxuaGFtQGFwcGxlLmNvbT4KIAogICAgICAgICBGb3J3YXJkIG1lc3NhZ2VzIGZyb20gTmV0d29y
a1Byb2Nlc3MgdG8gd2VicHVzaGQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL1BsYXRmb3Jt
SGF2ZS5oIGIvU291cmNlL1dURi93dGYvUGxhdGZvcm1IYXZlLmgKaW5kZXggYzYxNWQyNjg4ODc1
YTFkOTI5YzQ0ZDAyNjA2ZDc5M2E2YzdmZDk2Yy4uMzA1ZDQ2MjA5OTAyNzc4YmFlZThjNGIxYTE2
NTg2YzYyMTZmYjg1OSAxMDA2NDQKLS0tIGEvU291cmNlL1dURi93dGYvUGxhdGZvcm1IYXZlLmgK
KysrIGIvU291cmNlL1dURi93dGYvUGxhdGZvcm1IYXZlLmgKQEAgLTExNTksMyArMTE1OSw4IEBA
CiAgICAgfHwgKFBMQVRGT1JNKFdBVENIT1MpICYmIF9fV0FUQ0hfT1NfVkVSU0lPTl9NQVhfQUxM
T1dFRCA+PSA4MDUwMCkKICNkZWZpbmUgSEFWRV9DRk5FVFdPUktfRElTQUJMRV9DQUNIRV9TUEkg
MQogI2VuZGlmCisKKyNpZiAoKFBMQVRGT1JNKE1BQykgJiYgX19NQUNfT1NfWF9WRVJTSU9OX01J
Tl9SRVFVSVJFRCA+PSAxMzAwMDApIFwKKyAgICB8fCAoUExBVEZPUk0oSU9TKSAmJiBfX0lQSE9O
RV9PU19WRVJTSU9OX01JTl9SRVFVSVJFRCA+PSAxNjAwMDApKQorI2RlZmluZSBIQVZFX0FQUExF
X1BVU0hfU0VSVklDRV9VUkxfVE9LRU5fU1VQUE9SVCAxCisjZW5kaWYKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvQ29uZmlndXJhdGlvbnMvV2ViS2l0LnhjY29uZmlnIGIvU291cmNlL1dlYktp
dC9Db25maWd1cmF0aW9ucy9XZWJLaXQueGNjb25maWcKaW5kZXggYThhMDA1MGZkMmJjYTIyOTlh
YzU4MDNhZThiZjNiNGRlMDNjMTkxMS4uYjUxMmM3Zjc4NDQyY2M5MjUzMzExODE3YzhkMjZiMzQz
ZWJiODlhMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9Db25maWd1cmF0aW9ucy9XZWJLaXQu
eGNjb25maWcKKysrIGIvU291cmNlL1dlYktpdC9Db25maWd1cmF0aW9ucy9XZWJLaXQueGNjb25m
aWcKQEAgLTE1NSw3ICsxNTUsNyBAQCBXS19MSUJORVRXT1JLRVhURU5TSU9OX0xERkxBR1NfbWFj
Y2F0YWx5c3QgPSAtbG5ldHdvcmtleHRlbnNpb247CiBXS19MSUJORVRXT1JLRVhURU5TSU9OX0xE
RkxBR1NfbWFjb3N4ID0gLXdlYWtfbGlicmFyeSAvdXNyL2xpYi9saWJuZXR3b3JrZXh0ZW5zaW9u
LmR5bGliOwogV0tfTElCTkVUV09SS0VYVEVOU0lPTl9MREZMQUdTX3R2b3MgPSA7CiAKLUZSQU1F
V09SS19BTkRfTElCUkFSWV9MREZMQUdTID0gLWxvYmpjIC1mcmFtZXdvcmsgQ0ZOZXR3b3JrIC1m
cmFtZXdvcmsgQ29yZUF1ZGlvIC1mcmFtZXdvcmsgQ29yZUZvdW5kYXRpb24gLWZyYW1ld29yayBD
b3JlR3JhcGhpY3MgLWZyYW1ld29yayBDb3JlVGV4dCAtZnJhbWV3b3JrIEZvdW5kYXRpb24gLWZy
YW1ld29yayBJbWFnZUlPIC1mcmFtZXdvcmsgSU9LaXQgLWZyYW1ld29yayBJT1N1cmZhY2UgLWZy
YW1ld29yayBXZWJLaXRMZWdhY3kgLWxuZXR3b3JrIC1mcmFtZXdvcmsgTWV0YWwgJChXS19BQ0NF
U1NJQklMSVRZX0xERkxBR1MpICQoV0tfQVBQS0lUX0xERkxBR1MpICQoV0tfQkFDS0JPQVJEX1NF
UlZJQ0VTX0xERkxBR1MpICQoV0tfUlVOTklOR0JPQVJEX1NFUlZJQ0VTX0xERkxBR1MpICQoV0tf
QVVUSEtJVF9MREZMQUdTKSAkKFdLX0NBUkJPTl9MREZMQUdTKSAkKFdLX0NPTlRBQ1RTX0xERkxB
R1MpICQoV0tfQ09SRV9QUkVESUNUSU9OX0xERkxBR1MpICQoV0tfQ09SRV9TRVJWSUNFU19MREZM
QUdTKSAkKFdLX0dSQVBISUNTX1NFUlZJQ0VTX0xERkxBR1MpICQoV0tfTElCTkVUV09SS0VYVEVO
U0lPTl9MREZMQUdTKSAkKFdLX0xJQlNBTkRCT1hfTERGTEFHUykgJChXS19MSUJXRUJSVENfTERG
TEFHUykgJChXS19NT0JJTEVfQ09SRV9TRVJWSUNFU19MREZMQUdTKSAkKFdLX01PQklMRV9HRVNU
QUxUX0xERkxBR1MpICQoV0tfUERGS0lUX0xERkxBR1MpICQoV0tfUFJPVE9UWVBFX1RPT0xTX0xE
RkxBR1MpICQoV0tfU0FGRV9CUk9XU0lOR19MREZMQUdTKSAkKFdLX1NFQ1VSSVRZX0lOVEVSRkFD
RV9MREZMQUdTKSAkKFdLX1VJS0lUX0xERkxBR1MpICQoV0tfVU5JRk9STV9UWVBFX0lERU5USUZJ
RVJTX0xERkxBR1MpICQoV0tfVVJMX0ZPUk1BVFRJTkdfTERGTEFHUykgJChXS19XRUJJTlNQRUNU
T1JVSV9MREZMQUdTKSAkKFdLX0NPT1JESU5BVE9SX0xERkxBR1MpOworRlJBTUVXT1JLX0FORF9M
SUJSQVJZX0xERkxBR1MgPSAtbG9iamMgLWZyYW1ld29yayBBcHBsZVB1c2hTZXJ2aWNlIC1mcmFt
ZXdvcmsgQ0ZOZXR3b3JrIC1mcmFtZXdvcmsgQ29yZUF1ZGlvIC1mcmFtZXdvcmsgQ29yZUZvdW5k
YXRpb24gLWZyYW1ld29yayBDb3JlR3JhcGhpY3MgLWZyYW1ld29yayBDb3JlVGV4dCAtZnJhbWV3
b3JrIEZvdW5kYXRpb24gLWZyYW1ld29yayBJbWFnZUlPIC1mcmFtZXdvcmsgSU9LaXQgLWZyYW1l
d29yayBJT1N1cmZhY2UgLWZyYW1ld29yayBXZWJLaXRMZWdhY3kgLWxuZXR3b3JrIC1mcmFtZXdv
cmsgTWV0YWwgJChXS19BQ0NFU1NJQklMSVRZX0xERkxBR1MpICQoV0tfQVBQS0lUX0xERkxBR1Mp
ICQoV0tfQkFDS0JPQVJEX1NFUlZJQ0VTX0xERkxBR1MpICQoV0tfUlVOTklOR0JPQVJEX1NFUlZJ
Q0VTX0xERkxBR1MpICQoV0tfQVVUSEtJVF9MREZMQUdTKSAkKFdLX0NBUkJPTl9MREZMQUdTKSAk
KFdLX0NPTlRBQ1RTX0xERkxBR1MpICQoV0tfQ09SRV9QUkVESUNUSU9OX0xERkxBR1MpICQoV0tf
Q09SRV9TRVJWSUNFU19MREZMQUdTKSAkKFdLX0dSQVBISUNTX1NFUlZJQ0VTX0xERkxBR1MpICQo
V0tfTElCTkVUV09SS0VYVEVOU0lPTl9MREZMQUdTKSAkKFdLX0xJQlNBTkRCT1hfTERGTEFHUykg
JChXS19MSUJXRUJSVENfTERGTEFHUykgJChXS19NT0JJTEVfQ09SRV9TRVJWSUNFU19MREZMQUdT
KSAkKFdLX01PQklMRV9HRVNUQUxUX0xERkxBR1MpICQoV0tfUERGS0lUX0xERkxBR1MpICQoV0tf
UFJPVE9UWVBFX1RPT0xTX0xERkxBR1MpICQoV0tfU0FGRV9CUk9XU0lOR19MREZMQUdTKSAkKFdL
X1NFQ1VSSVRZX0lOVEVSRkFDRV9MREZMQUdTKSAkKFdLX1VJS0lUX0xERkxBR1MpICQoV0tfVU5J
Rk9STV9UWVBFX0lERU5USUZJRVJTX0xERkxBR1MpICQoV0tfVVJMX0ZPUk1BVFRJTkdfTERGTEFH
UykgJChXS19XRUJJTlNQRUNUT1JVSV9MREZMQUdTKSAkKFdLX0NPT1JESU5BVE9SX0xERkxBR1Mp
OwogCiAvLyBQcmV2ZW50IEMrKyBzdGFuZGFyZCBsaWJyYXJ5IGJhc2ljX3N0cmluZ3N0cmVhbSwg
b3BlcmF0b3IgbmV3LCBkZWxldGUgYW5kIHRoZWlyIHJlbGF0ZWQgZXhjZXB0aW9uIHR5cGVzIGZy
b20gYmVpbmcgZXhwb3J0ZWQgYXMgd2VhayBzeW1ib2xzLgogVU5FWFBPUlRFRF9TWU1CT0xfTERG
TEFHUyA9IC1XbCwtdW5leHBvcnRlZF9zeW1ib2wgLVdsLF9fWlRJU3Q5YmFkX2FsbG9jIC1XbCwt
dW5leHBvcnRlZF9zeW1ib2wgLVdsLF9fWlRJU3Q5ZXhjZXB0aW9uIC1XbCwtdW5leHBvcnRlZF9z
eW1ib2wgLVdsLF9fWlRTU3Q5YmFkX2FsbG9jIC1XbCwtdW5leHBvcnRlZF9zeW1ib2wgLVdsLF9f
WlRTU3Q5ZXhjZXB0aW9uIC1XbCwtdW5leHBvcnRlZF9zeW1ib2wgLVdsLF9fWmRsUHZTXyAtV2ws
LXVuZXhwb3J0ZWRfc3ltYm9sIC1XbCxfX1pud21QdiAtV2wsLXVuZXhwb3J0ZWRfc3ltYm9sIC1X
bCxfX1pud20gLVdsLC11bmV4cG9ydGVkX3N5bWJvbCAtV2wsX19aVFZOU3QzX18xMTdiYWRfZnVu
Y3Rpb25fY2FsbEUgLVdsLC11bmV4cG9ydGVkX3N5bWJvbCAtV2wsX19aVENOU3QzX18xMThiYXNp
Y19zdHJpbmdzdHJlYW1JY05TXzExY2hhcl90cmFpdHNJY0VFTlNfOWFsbG9jYXRvckljRUVFRTBf
TlNfMTNiYXNpY19pc3RyZWFtSWNTMl9FRSAtV2wsLXVuZXhwb3J0ZWRfc3ltYm9sIC1XbCxfX1pU
Q05TdDNfXzExOGJhc2ljX3N0cmluZ3N0cmVhbUljTlNfMTFjaGFyX3RyYWl0c0ljRUVOU185YWxs
b2NhdG9ySWNFRUVFMF9OU18xNGJhc2ljX2lvc3RyZWFtSWNTMl9FRSAtV2wsLXVuZXhwb3J0ZWRf
c3ltYm9sIC1XbCxfX1pUQ05TdDNfXzExOGJhc2ljX3N0cmluZ3N0cmVhbUljTlNfMTFjaGFyX3Ry
YWl0c0ljRUVOU185YWxsb2NhdG9ySWNFRUVFMTZfTlNfMTNiYXNpY19vc3RyZWFtSWNTMl9FRSAt
V2wsLXVuZXhwb3J0ZWRfc3ltYm9sIC1XbCxfX1pUVE5TdDNfXzExOGJhc2ljX3N0cmluZ3N0cmVh
bUljTlNfMTFjaGFyX3RyYWl0c0ljRUVOU185YWxsb2NhdG9ySWNFRUVFIC1XbCwtdW5leHBvcnRl
ZF9zeW1ib2wgLVdsLF9fWlRWTlN0M19fMTE1YmFzaWNfc3RyaW5nYnVmSWNOU18xMWNoYXJfdHJh
aXRzSWNFRU5TXzlhbGxvY2F0b3JJY0VFRUUgLVdsLC11bmV4cG9ydGVkX3N5bWJvbCAtV2wsX19a
VFZOU3QzX18xMThiYXNpY19zdHJpbmdzdHJlYW1JY05TXzExY2hhcl90cmFpdHNJY0VFTlNfOWFs
bG9jYXRvckljRUVFRSAtV2wsLXVuZXhwb3J0ZWRfc3ltYm9sIC1XbCxfX1pUQ05TdDNfXzExOGJh
c2ljX3N0cmluZ3N0cmVhbUljTlNfMTFjaGFyX3RyYWl0c0ljRUVOU185YWxsb2NhdG9ySWNFRUVF
OF9OU18xM2Jhc2ljX29zdHJlYW1JY1MyX0VFOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9Q
bGF0Zm9ybS9zcGkvQ29jb2EvQXBwbGVQdXNoU2VydmljZVNQSS5oIGIvU291cmNlL1dlYktpdC9Q
bGF0Zm9ybS9zcGkvQ29jb2EvQXBwbGVQdXNoU2VydmljZVNQSS5oCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjU1ZjZh
ZDZmNjM2OTNlZTEwYjFhYWNkNDMxZDllNDcxY2VhZDg2MjMKLS0tIC9kZXYvbnVsbAorKysgYi9T
b3VyY2UvV2ViS2l0L1BsYXRmb3JtL3NwaS9Db2NvYS9BcHBsZVB1c2hTZXJ2aWNlU1BJLmgKQEAg
LTAsMCArMSwxMDIgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjIgQXBwbGUgSW5jLiBBbGwg
cmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNl
IGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUg
cGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUg
bWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBi
aW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIg
aW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlk
ZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklE
RUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBB
TlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5E
IEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4g
Tk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFC
TEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExB
UlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsg
TE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJ
T04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhF
UiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBO
RUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhF
IFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJ
TElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaWYgVVNFKEFQUExFX0lOVEVSTkFMX1NESykK
KworI2ltcG9ydCA8QXBwbGVQdXNoU2VydmljZS9BcHBsZVB1c2hTZXJ2aWNlLmg+CisKKyNlbHNl
IC8vIGlmICFVU0UoQVBQTEVfSU5URVJOQUxfU0RLKQorCisjaW1wb3J0IDxGb3VuZGF0aW9uL0Zv
dW5kYXRpb24uaD4KKworTlNfQVNTVU1FX05PTk5VTExfQkVHSU4KKworV1RGX0VYVEVSTl9DX0JF
R0lOCitleHRlcm4gTlNTdHJpbmcgKmNvbnN0IEFQU0Vudmlyb25tZW50UHJvZHVjdGlvbjsKKwor
dHlwZWRlZiBOU19FTlVNKE5TSW50ZWdlciwgQVBTVVJMVG9rZW5FcnJvckNvZGUpIHsKKyAgICBB
UFNVUkxUb2tlbkVycm9yQ29kZUludmFsaWRBcmd1bWVudHMgPSAxMDAsCisgICAgQVBTVVJMVG9r
ZW5FcnJvckNvZGVYUENFcnJvciA9IDEwMSwKKyAgICBBUFNVUkxUb2tlbkVycm9yQ29kZVRvcGlj
U2FsdGluZ0ZhaWxlZCA9IDEwMiwKKyAgICBBUFNVUkxUb2tlbkVycm9yQ29kZVRvcGljQWxyZWFk
eUluRmlsdGVyID0gMTAzLAorfTsKK1dURl9FWFRFUk5fQ19FTkQKKworQGNsYXNzIEFQU0Nvbm5l
Y3Rpb247CitAcHJvdG9jb2wgQVBTQ29ubmVjdGlvbkRlbGVnYXRlOworCitAaW50ZXJmYWNlIEFQ
U01lc3NhZ2UgOiBOU09iamVjdDxOU0NvZGluZz4KK0Bwcm9wZXJ0eSAobm9uYXRvbWljLCByZXRh
aW4pIE5TU3RyaW5nICp0b3BpYzsKK0Bwcm9wZXJ0eSAobm9uYXRvbWljLCByZXRhaW4pIE5TRGlj
dGlvbmFyeSAqdXNlckluZm87CitAcHJvcGVydHkgKG5vbmF0b21pYywgYXNzaWduKSBOU1VJbnRl
Z2VyIGlkZW50aWZpZXI7CitAZW5kCisKK0BpbnRlcmZhY2UgQVBTSW5jb21pbmdNZXNzYWdlIDog
QVBTTWVzc2FnZQorQGVuZAorCisjaWYgSEFWRShBUFBMRV9QVVNIX1NFUlZJQ0VfVVJMX1RPS0VO
X1NVUFBPUlQpCisKK0BpbnRlcmZhY2UgQVBTVVJMVG9rZW4gOiBOU09iamVjdDxOU1NlY3VyZUNv
ZGluZywgTlNDb3B5aW5nPgorQHByb3BlcnR5IChub25hdG9taWMsIHN0cm9uZykgTlNTdHJpbmcg
KnRva2VuVVJMOworQGVuZAorCitAaW50ZXJmYWNlIEFQU1VSTFRva2VuSW5mbyA6IE5TT2JqZWN0
PE5TU2VjdXJlQ29kaW5nLCBOU0NvcHlpbmc+CistIChpbnN0YW5jZXR5cGUpaW5pdFdpdGhUb3Bp
YzooTlNTdHJpbmcgKil0b3BpYyB2YXBpZFB1YmxpY0tleToobnVsbGFibGUgTlNEYXRhICopdmFw
aWRQdWJsaWNLZXk7CitAZW5kCisKK3R5cGVkZWYgdm9pZCheQVBTQ29ubmVjdGlvblJlcXVlc3RV
UkxUb2tlbkNvbXBsZXRpb24pKEFQU1VSTFRva2VuICogX19udWxsYWJsZSB0b2tlbiwgTlNFcnJv
ciAqIF9fbnVsbGFibGUgZXJyb3IpOwordHlwZWRlZiB2b2lkKF5BUFNDb25uZWN0aW9uSW52YWxp
ZGF0ZVVSTFRva2VuQ29tcGxldGlvbikoQk9PTCBzdWNjZXNzLCBOU0Vycm9yICogX19udWxsYWJs
ZSBlcnJvcik7CisKKyNlbmRpZiAvLyBIQVZFKEFQUExFX1BVU0hfU0VSVklDRV9VUkxfVE9LRU5f
U1VQUE9SVCkKKworQGludGVyZmFjZSBBUFNDb25uZWN0aW9uIDogTlNPYmplY3QKKworLSAoaW5z
dGFuY2V0eXBlKWluaXRXaXRoRW52aXJvbm1lbnROYW1lOihOU1N0cmluZyAqKWVudmlyb25tZW50
TmFtZSBuYW1lZERlbGVnYXRlUG9ydDoobnVsbGFibGUgTlNTdHJpbmcgKiluYW1lZERlbGVnYXRl
UG9ydCBxdWV1ZTooZGlzcGF0Y2hfcXVldWVfdClxdWV1ZTsKKworI2lmIEhBVkUoQVBQTEVfUFVT
SF9TRVJWSUNFX1VSTF9UT0tFTl9TVVBQT1JUKQorLSAodm9pZClyZXF1ZXN0VVJMVG9rZW5Gb3JJ
bmZvOihBUFNVUkxUb2tlbkluZm8gKilpbmZvIGNvbXBsZXRpb246KEFQU0Nvbm5lY3Rpb25SZXF1
ZXN0VVJMVG9rZW5Db21wbGV0aW9uKWNvbXBsZXRpb247CistICh2b2lkKWludmFsaWRhdGVVUkxU
b2tlbkZvckluZm86KEFQU1VSTFRva2VuSW5mbyAqKWluZm8gY29tcGxldGlvbjooQVBTQ29ubmVj
dGlvbkludmFsaWRhdGVVUkxUb2tlbkNvbXBsZXRpb24pY29tcGxldGlvbjsKKyNlbmRpZiAvLyBI
QVZFKEFQUExFX1BVU0hfU0VSVklDRV9VUkxfVE9LRU5fU1VQUE9SVCkKKworQHByb3BlcnR5IChu
b25hdG9taWMsIHJlYWR3cml0ZSwgYXNzaWduLCBudWxsYWJsZSkgaWQ8QVBTQ29ubmVjdGlvbkRl
bGVnYXRlPiBkZWxlZ2F0ZTsKKworQHByb3BlcnR5IChub25hdG9taWMsIHJlYWR3cml0ZSwgc3Ry
b25nLCBzZXR0ZXI9X3NldEVuYWJsZWRUb3BpY3M6LCBudWxsYWJsZSkgTlNBcnJheTxOU1N0cmlu
ZyAqPiAqZW5hYmxlZFRvcGljczsKK0Bwcm9wZXJ0eSAobm9uYXRvbWljLCByZWFkd3JpdGUsIHN0
cm9uZywgc2V0dGVyPV9zZXRJZ25vcmVkVG9waWNzOiwgbnVsbGFibGUpIE5TQXJyYXk8TlNTdHJp
bmcgKj4gKmlnbm9yZWRUb3BpY3M7CitAcHJvcGVydHkgKG5vbmF0b21pYywgcmVhZHdyaXRlLCBz
dHJvbmcsIHNldHRlcj1fc2V0T3Bwb3J0dW5pc3RpY1RvcGljczosIG51bGxhYmxlKSBOU0FycmF5
PE5TU3RyaW5nICo+ICpvcHBvcnR1bmlzdGljVG9waWNzOworQHByb3BlcnR5IChub25hdG9taWMs
IHJlYWR3cml0ZSwgc3Ryb25nLCBzZXR0ZXI9X3NldE5vbldha2luZ1RvcGljczosIG51bGxhYmxl
KSBOU0FycmF5PE5TU3RyaW5nICo+ICpub25XYWtpbmdUb3BpY3M7CisKKy0gKHZvaWQpc2V0RW5h
YmxlZFRvcGljczooTlNBcnJheTxOU1N0cmluZyAqPiAqKWVuYWJsZWRUb3BpY3MgaWdub3JlZFRv
cGljczooTlNBcnJheTxOU1N0cmluZyAqPiAqKWlnbm9yZWRUb3BpY3Mgb3Bwb3J0dW5pc3RpY1Rv
cGljczooTlNBcnJheTxOU1N0cmluZyAqPiAqKW9wcG9ydHVuaXN0aWNUb3BpY3Mgbm9uV2FraW5n
VG9waWNzOihOU0FycmF5PE5TU3RyaW5nICo+ICopbm9uV2FraW5nVG9waWNzOworCitAZW5kCisK
K0Bwcm90b2NvbCBBUFNDb25uZWN0aW9uRGVsZWdhdGU8TlNPYmplY3Q+CistICh2b2lkKWNvbm5l
Y3Rpb246KEFQU0Nvbm5lY3Rpb24gKiljb25uZWN0aW9uIGRpZFJlY2VpdmVQdWJsaWNUb2tlbjoo
TlNEYXRhICopcHVibGljVG9rZW47CitAb3B0aW9uYWwKKy0gKHZvaWQpY29ubmVjdGlvbjooQVBT
Q29ubmVjdGlvbiAqKWNvbm5lY3Rpb24gZGlkUmVjZWl2ZUluY29taW5nTWVzc2FnZTooQVBTSW5j
b21pbmdNZXNzYWdlICopbWVzc2FnZTsKK0BlbmQKKworTlNfQVNTVU1FX05PTk5VTExfRU5ECisK
KyNlbmRpZiAvLyAhVVNFKEFQUExFX0lOVEVSTkFMX1NESykKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvV2ViS2l0L1dl
YktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IDgwNmRjNzBmNTM2ODNhNzI5NTdm
N2Y0NzRjMjQ4ZmNiZDdhNjA5MzIuLjdkYTI1NTNkYWI1OTYwNzcxMjU4Y2QwYTI1NTUzZjZlZDA3
ODQ0NmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0
LnBieHByb2oKKysrIGIvU291cmNlL1dlYktpdC9XZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4
cHJvagpAQCAtMTk4OCw2ICsxOTg4LDEzIEBACiAJCUU1QkVGNjgyMjEzMEM0ODAwMEYzMTExMSAv
KiBXZWJEYXRhTGlzdFN1Z2dlc3Rpb25zRHJvcGRvd25JT1MuaCBpbiBIZWFkZXJzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEU1QkVGNjgwMjEzMEM0N0YwMEYzMTExMSAvKiBX
ZWJEYXRhTGlzdFN1Z2dlc3Rpb25zRHJvcGRvd25JT1MuaCAqLzsgfTsKIAkJRTVDQjA3REMyMEUx
Njc4RjAwMjJDMTgzIC8qIFdLRm9ybUNvbG9yQ29udHJvbC5oIGluIEhlYWRlcnMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTVDQjA3REEyMEUxNjc4RjAwMjJDMTgzIC8qIFdL
Rm9ybUNvbG9yQ29udHJvbC5oICovOyB9OwogCQlFNURFRkE2ODI2RjhGNDI2MDBBQjY4REIgLyog
UGhvdG9zVUlTUEkuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IEU1REVGQTY3MjZGOEY0MjYwMEFCNjhEQiAvKiBQaG90b3NVSVNQSS5oICovOyB9OworCQlF
Qjk2NDhDNjI3QTNCRDI0MDA2QUI2NzAgLyogQXBwbGVQdXNoU2VydmljZUNvbm5lY3Rpb24ubW0g
aW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFQjk2NDhDMDI3
QTNCRDIyMDA2QUI2NzAgLyogQXBwbGVQdXNoU2VydmljZUNvbm5lY3Rpb24ubW0gKi87IH07CisJ
CUVCOTY0OEM3MjdBM0JEMjQwMDZBQjY3MCAvKiBGYWtlUHVzaFNlcnZpY2VDb25uZWN0aW9uLmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFQjk2NDhDMTI3
QTNCRDIzMDA2QUI2NzAgLyogRmFrZVB1c2hTZXJ2aWNlQ29ubmVjdGlvbi5oICovOyB9OworCQlF
Qjk2NDhDODI3QTNCRDI0MDA2QUI2NzAgLyogQXBwbGVQdXNoU2VydmljZUNvbm5lY3Rpb24uaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEVCOTY0OEMyMjdB
M0JEMjMwMDZBQjY3MCAvKiBBcHBsZVB1c2hTZXJ2aWNlQ29ubmVjdGlvbi5oICovOyB9OworCQlF
Qjk2NDhDOTI3QTNCRDI0MDA2QUI2NzAgLyogRmFrZVB1c2hTZXJ2aWNlQ29ubmVjdGlvbi5tbSBp
biBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEVCOTY0OEMzMjdB
M0JEMjMwMDZBQjY3MCAvKiBGYWtlUHVzaFNlcnZpY2VDb25uZWN0aW9uLm1tICovOyB9OworCQlF
Qjk2NDhDQTI3QTNCRDI0MDA2QUI2NzAgLyogUHVzaFNlcnZpY2VDb25uZWN0aW9uLmggaW4gSGVh
ZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFQjk2NDhDNDI3QTNCRDIz
MDA2QUI2NzAgLyogUHVzaFNlcnZpY2VDb25uZWN0aW9uLmggKi87IH07CisJCUVCOTY0OENCMjdB
M0JEMjQwMDZBQjY3MCAvKiBQdXNoU2VydmljZUNvbm5lY3Rpb24ubW0gaW4gU291cmNlcyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFQjk2NDhDNTI3QTNCRDI0MDA2QUI2NzAg
LyogUHVzaFNlcnZpY2VDb25uZWN0aW9uLm1tICovOyB9OworCQlFQjk2NDhDRDI3QTNCRDRGMDA2
QUI2NzAgLyogQXBwbGVQdXNoU2VydmljZVNQSS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gRUI5NjQ4Q0MyN0EzQkQ0RjAwNkFCNjcwIC8qIEFwcGxlUHVz
aFNlcnZpY2VTUEkuaCAqLzsgfTsKIAkJRUQ4MkE3RjIxMjhDNkZBRjAwNDQ3N0IzIC8qIFdLQnVu
ZGxlUGFnZU92ZXJsYXkuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDFBMjJGMEZGMTI4OUZDRDkwMDg1RTc0RiAvKiBXS0J1bmRsZVBhZ2VPdmVybGF5Lmgg
Ki87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJRjQwOUJB
MTgxRTZFNjRCQzAwOURBMjhFIC8qIFdLRHJhZ0Rlc3RpbmF0aW9uQWN0aW9uLmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGNDA5QkExNzFFNkU2NEIzMDA5
REEyOEUgLyogV0tEcmFnRGVzdGluYXRpb25BY3Rpb24uaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklC
VVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQlGNDI5OTUwNzI3MEUyMzREMDAzMjI5OEIgLyog
U3RyZWFtTWVzc2FnZVJlY2VpdmVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSBGNDI5OTUwNjI3MEUyMzRDMDAzMjI5OEIgLyogU3RyZWFtTWVzc2FnZVJl
Y2VpdmVyLmggKi87IH07CkBAIC02NDE2LDYgKzY0MjMsMTMgQEAKIAkJRTVERUZBNjcyNkY4RjQy
NjAwQUI2OERCIC8qIFBob3Rvc1VJU1BJLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFBob3Rvc1VJU1BJLmg7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUVCMEQzMTJEMjc1QUUxMzMwMDg2M0Q4RiAv
KiBjb20uYXBwbGUud2Via2l0LndlYnB1c2hkLm1hYy5wbGlzdCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQucGxp
c3QueG1sOyBwYXRoID0gY29tLmFwcGxlLndlYmtpdC53ZWJwdXNoZC5tYWMucGxpc3Q7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUVCMEQzMTJFMjc1QUUxMzMwMDg2M0Q4RiAvKiBjb20u
YXBwbGUud2Via2l0LndlYnB1c2hkLmlvcy5wbGlzdCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQucGxpc3QueG1s
OyBwYXRoID0gY29tLmFwcGxlLndlYmtpdC53ZWJwdXNoZC5pb3MucGxpc3Q7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CisJCUVCOTY0OEMwMjdBM0JEMjIwMDZBQjY3MCAvKiBBcHBsZVB1c2hT
ZXJ2aWNlQ29ubmVjdGlvbi5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0
aCA9IEFwcGxlUHVzaFNlcnZpY2VDb25uZWN0aW9uLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OworCQlFQjk2NDhDMTI3QTNCRDIzMDA2QUI2NzAgLyogRmFrZVB1c2hTZXJ2aWNlQ29ubmVj
dGlvbi5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBGYWtlUHVzaFNlcnZpY2VD
b25uZWN0aW9uLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUVCOTY0OEMyMjdBM0JE
MjMwMDZBQjY3MCAvKiBBcHBsZVB1c2hTZXJ2aWNlQ29ubmVjdGlvbi5oICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jLmg7IHBhdGggPSBBcHBsZVB1c2hTZXJ2aWNlQ29ubmVjdGlvbi5oOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OworCQlFQjk2NDhDMzI3QTNCRDIzMDA2QUI2NzAgLyogRmFrZVB1
c2hTZXJ2aWNlQ29ubmVjdGlvbi5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsg
cGF0aCA9IEZha2VQdXNoU2VydmljZUNvbm5lY3Rpb24ubW07IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CisJCUVCOTY0OEM0MjdBM0JEMjMwMDZBQjY3MCAvKiBQdXNoU2VydmljZUNvbm5lY3Rp
b24uaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUHVzaFNlcnZpY2VDb25uZWN0
aW9uLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUVCOTY0OEM1MjdBM0JEMjQwMDZB
QjY3MCAvKiBQdXNoU2VydmljZUNvbm5lY3Rpb24ubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNw
cC5vYmpjcHA7IHBhdGggPSBQdXNoU2VydmljZUNvbm5lY3Rpb24ubW07IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CisJCUVCOTY0OENDMjdBM0JENEYwMDZBQjY3MCAvKiBBcHBsZVB1c2hTZXJ2
aWNlU1BJLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEFwcGxlUHVzaFNlcnZp
Y2VTUEkuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRUNBNjgwRDMxRTY5MDRCNTAw
NzMxRDIwIC8qIEV4dHJhUHJpdmF0ZVN5bWJvbHNGb3JUQVBJLmggKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmMuaDsgcGF0aCA9IEV4dHJhUHJpdmF0ZVN5bWJvbHNGb3JUQVBJLmg7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCUVDQkZDMURCMUU2QTRENjYwMDAzMDBDNyAvKiBFeHRyYVB1Ymxp
Y1N5bWJvbHNGb3JUQVBJLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEV4dHJhUHVibGljU3ltYm9sc0ZvclRB
UEkuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRjAzNjk3ODcxNUY0QkYwNTAwQzNB
ODBFIC8qIFdlYkNvbG9yUGlja2VyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsg
cGF0aCA9IFdlYkNvbG9yUGlja2VyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAg
LTcxMDcsOCArNzEyMSw2IEBACiAJCQkJMTE4NTAyNjAyNjczQjBEQTAwQTY0MjVFIC8qIFhSICov
LAogCQkJCUUzQkNFODc3MjY3MjUyMTIwMDExRDhEQiAvKiBBY2Nlc3NpYmlsaXR5UHJlZmVyZW5j
ZXMuY3BwICovLAogCQkJCUUzQkNFODc4MjY3MjUyMTIwMDExRDhEQiAvKiBBY2Nlc3NpYmlsaXR5
UHJlZmVyZW5jZXMuaCAqLywKLQkJCQk3QjUwRTk3RjI3NzFGNkNFMDAzREFBQzQgLyogSVBDVGVz
dGVyLmNwcCAqLywKLQkJCQk3QjUwRTk4MDI3NzFGNkNGMDAzREFBQzQgLyogSVBDVGVzdGVyLmgg
Ki8sCiAJCQkJQTdENzkyRDUxNzY3Q0I2RTAwODgxQ0JFIC8qIEFjdGl2aXR5QXNzZXJ0aW9uLmNw
cCAqLywKIAkJCQlBN0Q3OTJENDE3NjdDQjA5MDA4ODFDQkUgLyogQWN0aXZpdHlBc3NlcnRpb24u
aCAqLywKIAkJCQlCQzMyOUQ5QTE2QUNDRTk5MDAzMTZERTIgLyogQVBJV2ViQXJjaGl2ZS5oICov
LApAQCAtNzE1OCw2ICs3MTcwLDggQEAKIAkJCQlCQ0NGNkIyMzEyQzkzRTdBMDA4RjlDMzUgLyog
SW1hZ2VPcHRpb25zLmggKi8sCiAJCQkJOTk5QjdFRDgyNTUwRTRBODAwRjQ1MEE0IC8qIEluc3Bl
Y3RvckV4dGVuc2lvblR5cGVzLmNwcCAqLywKIAkJCQk5OUJFM0IxNjI1NDMzQjk0MDBDNjU1MUMg
LyogSW5zcGVjdG9yRXh0ZW5zaW9uVHlwZXMuaCAqLywKKwkJCQk3QjUwRTk3RjI3NzFGNkNFMDAz
REFBQzQgLyogSVBDVGVzdGVyLmNwcCAqLywKKwkJCQk3QjUwRTk4MDI3NzFGNkNGMDAzREFBQzQg
LyogSVBDVGVzdGVyLmggKi8sCiAJCQkJMUE5MkRDMTIxMkY4QkFCOTAwMTdBRjY1IC8qIExheWVy
VHJlZUNvbnRleHQuY3BwICovLAogCQkJCTFBOTJEQzEwMTJGOEJBNDYwMDE3QUY2NSAvKiBMYXll
clRyZWVDb250ZXh0LmggKi8sCiAJCQkJMkQxMDg3NUUxRDJDNTczRTAwQjg1RjgyIC8qIExvYWRQ
YXJhbWV0ZXJzLmNwcCAqLywKQEAgLTg2MDMsNiArODYxNyw3IEBACiAJCQkJNTcyRUJCREMyNTM5
MjE4MTAwMDU1MkIzIC8qIEFwcEF0dGVzdFNQSS5oICovLAogCQkJCTk1NjUwODM3MjZEODdBMkIw
MEUxNUNCNyAvKiBBcHBsZU1lZGlhU2VydmljZXNTUEkuaCAqLywKIAkJCQk5NTY1MDgzODI2RDg3
QTJCMDBFMTVDQjcgLyogQXBwbGVNZWRpYVNlcnZpY2VzVUlTUEkuaCAqLywKKwkJCQlFQjk2NDhD
QzI3QTNCRDRGMDA2QUI2NzAgLyogQXBwbGVQdXNoU2VydmljZVNQSS5oICovLAogCQkJCTU3RkFC
QjBFMjU4MTdDRjAwMDU5REM5NSAvKiBBdXRoZW50aWNhdGlvblNlcnZpY2VzQ29yZVNQSS5oICov
LAogCQkJCTFBNTcwNTEwMUJFNDEwRTUwMDg3NEFGMSAvKiBCbG9ja1NQSS5oICovLAogCQkJCUU1
MDYyMDkxMjU0MjEwMjAwMEM0MzA5MSAvKiBDb250YWN0c1VJU1BJLmggKi8sCkBAIC0xMDAxMSw4
ICsxMDAyNiwxMiBAQAogCQkJCTUxN0I1RjYzMjc1QThENUMwMDJEQzIyRCAvKiB3ZWJwdXNodG9v
bCAqLywKIAkJCQk1MTYwRTk1NDI3NEI4ODcxMDA1NjczODggLyogQXBwQnVuZGxlUmVxdWVzdC5o
ICovLAogCQkJCTUxNjBFOTUzMjc0Qjg4NzEwMDU2NzM4OCAvKiBBcHBCdW5kbGVSZXF1ZXN0Lm1t
ICovLAorCQkJCUVCOTY0OEMyMjdBM0JEMjMwMDZBQjY3MCAvKiBBcHBsZVB1c2hTZXJ2aWNlQ29u
bmVjdGlvbi5oICovLAorCQkJCUVCOTY0OEMwMjdBM0JEMjIwMDZBQjY3MCAvKiBBcHBsZVB1c2hT
ZXJ2aWNlQ29ubmVjdGlvbi5tbSAqLywKIAkJCQlFQjBEMzEyRTI3NUFFMTMzMDA4NjNEOEYgLyog
Y29tLmFwcGxlLndlYmtpdC53ZWJwdXNoZC5pb3MucGxpc3QgKi8sCiAJCQkJRUIwRDMxMkQyNzVB
RTEzMzAwODYzRDhGIC8qIGNvbS5hcHBsZS53ZWJraXQud2VicHVzaGQubWFjLnBsaXN0ICovLAor
CQkJCUVCOTY0OEMxMjdBM0JEMjMwMDZBQjY3MCAvKiBGYWtlUHVzaFNlcnZpY2VDb25uZWN0aW9u
LmggKi8sCisJCQkJRUI5NjQ4QzMyN0EzQkQyMzAwNkFCNjcwIC8qIEZha2VQdXNoU2VydmljZUNv
bm5lY3Rpb24ubW0gKi8sCiAJCQkJNTFGN0JCNzUyNzQ0OThCQjAwQzQ1QTcyIC8qIE1vY2tBcHBC
dW5kbGVGb3JUZXN0aW5nLmggKi8sCiAJCQkJNTFGN0JCNzQyNzQ0OThCQTAwQzQ1QTcyIC8qIE1v
Y2tBcHBCdW5kbGVGb3JUZXN0aW5nLm1tICovLAogCQkJCTUxNjBFOTVDMjc0QzJBMDMwMDU2NzM4
OCAvKiBNb2NrQXBwQnVuZGxlUmVnaXN0cnkuaCAqLywKQEAgLTEwMDIxLDYgKzEwMDQwLDggQEAK
IAkJCQk1MTYwRTk1ODI3NEMwRDg4MDA1NjczODggLyogUHVzaEFwcEJ1bmRsZS5tbSAqLywKIAkJ
CQk1MUY3QkI3OTI3NDRDNTA3MDBDNDVBNzIgLyogUHVzaENsaWVudENvbm5lY3Rpb24uaCAqLywK
IAkJCQk1MUY3QkI3QTI3NDRDNTA3MDBDNDVBNzIgLyogUHVzaENsaWVudENvbm5lY3Rpb24ubW0g
Ki8sCisJCQkJRUI5NjQ4QzQyN0EzQkQyMzAwNkFCNjcwIC8qIFB1c2hTZXJ2aWNlQ29ubmVjdGlv
bi5oICovLAorCQkJCUVCOTY0OEM1MjdBM0JEMjQwMDZBQjY3MCAvKiBQdXNoU2VydmljZUNvbm5l
Y3Rpb24ubW0gKi8sCiAJCQkJNTE3QjVGNzcyNzVFOTc5NTAwMkRDMjJEIC8qIHdlYnB1c2hkLmNw
cCAqLywKIAkJCQk1MTJDRDY5RDI3MjMzOTNBMDBGN0Y4RUMgLyogV2ViUHVzaERhZW1vbi5oICov
LAogCQkJCTUxMkNENjlFMjcyMzM5M0EwMEY3RjhFQyAvKiBXZWJQdXNoRGFlbW9uLm1tICovLApA
QCAtMTI1OTgsNiArMTI2MTksNyBAQAogCQkJaXNhID0gUEJYSGVhZGVyc0J1aWxkUGhhc2U7CiAJ
CQlidWlsZEFjdGlvbk1hc2sgPSAyMTQ3NDgzNjQ3OwogCQkJZmlsZXMgPSAoCisJCQkJN0JEREEz
MTkyNzQ3QzA0MDAwMzg2NTlFIC8qIChudWxsKSBpbiBIZWFkZXJzICovLAogCQkJCTM3QTVFMDE0
MThCQkY5M0YwMDBBMDgxRSAvKiBfV0tBY3RpdmF0ZWRFbGVtZW50SW5mby5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkJMzc5QTg3MzYxOEJCRkE0MzAwNTg4QUYyIC8qIF9XS0FjdGl2YXRlZEVsZW1lbnRJ
bmZvSW50ZXJuYWwuaCBpbiBIZWFkZXJzICovLAogCQkJCTQ0OTMxNkEzMjVEQzdEQzQwMEFBNjZE
RSAvKiBfV0tBcHBIaWdobGlnaHQuaCBpbiBIZWFkZXJzICovLApAQCAtMTI4MjUsNiArMTI4NDcs
OCBAQAogCQkJCUY0OEQyQTg1MjE1ODNBN0UwMEM2NzUyQiAvKiBBcHBLaXRTUEkuaCBpbiBIZWFk
ZXJzICovLAogCQkJCTk1NjUwODM5MjZEODdBMkIwMEUxNUNCNyAvKiBBcHBsZU1lZGlhU2Vydmlj
ZXNTUEkuaCBpbiBIZWFkZXJzICovLAogCQkJCTk1NjUwODNBMjZEODdBMkIwMEUxNUNCNyAvKiBB
cHBsZU1lZGlhU2VydmljZXNVSVNQSS5oIGluIEhlYWRlcnMgKi8sCisJCQkJRUI5NjQ4QzgyN0Ez
QkQyNDAwNkFCNjcwIC8qIEFwcGxlUHVzaFNlcnZpY2VDb25uZWN0aW9uLmggaW4gSGVhZGVycyAq
LywKKwkJCQlFQjk2NDhDRDI3QTNCRDRGMDA2QUI2NzAgLyogQXBwbGVQdXNoU2VydmljZVNQSS5o
IGluIEhlYWRlcnMgKi8sCiAJCQkJRjRFQzk0RTMyMzU2Q0M1NzAwMEJCNjE0IC8qIEFwcGxpY2F0
aW9uU2VydmljZXNTUEkuaCBpbiBIZWFkZXJzICovLAogCQkJCTFBRDRDMTkzMUIzOUYzMzIwMEFC
QzI4RSAvKiBBcHBsaWNhdGlvblN0YXRlVHJhY2tlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNDkz
MTAyQkQyNjgzRjNEMDAwMkJCODg1IC8qIEFwcFByaXZhY3lSZXBvcnQuaCBpbiBIZWFkZXJzICov
LApAQCAtMTI5MTgsNiArMTI5NDIsNyBAQAogCQkJCTUxQjE1QTg1MTM4NDNBMzkwMDMyMUFEOCAv
KiBFbnZpcm9ubWVudFV0aWxpdGllcy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMUFBNTc1RkIxNDk2
QjUyNjAwQTRFRTA2IC8qIEV2ZW50RGlzcGF0Y2hlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNTcy
RUJCRDcyNTM3RUJBRTAwMDU1MkIzIC8qIEV4dHJhUHJpdmF0ZVN5bWJvbHNGb3JUQVBJLmggaW4g
SGVhZGVycyAqLywKKwkJCQlFQjk2NDhDNzI3QTNCRDI0MDA2QUI2NzAgLyogRmFrZVB1c2hTZXJ2
aWNlQ29ubmVjdGlvbi5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNTdCODI2NDgyMzA1MEM1MTAwQjcy
RUIwIC8qIEZpZG9TZXJ2aWNlLmggaW4gSGVhZGVycyAqLywKIAkJCQk5MzFBMUJFMjI2Rjg3MDA5
MDA4MUE3RTUgLyogRmlsZVN5c3RlbVN0b3JhZ2VFcnJvci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJ
OTMxMkJBRDYyNkYzM0MyOTAwRkRERjVGIC8qIEZpbGVTeXN0ZW1TdG9yYWdlSGFuZGxlLmggaW4g
SGVhZGVycyAqLywKQEAgLTEyOTgwLDcgKzEzMDA1LDYgQEAKIAkJCQlDNUJDRTVERjFDNTA3NjZB
MDBDREUzRkEgLyogSW50ZXJhY3Rpb25JbmZvcm1hdGlvbkF0UG9zaXRpb24uaCBpbiBIZWFkZXJz
ICovLAogCQkJCTJENEQyQzgxMURGNjBCRjMwMDJFQjEwQyAvKiBJbnRlcmFjdGlvbkluZm9ybWF0
aW9uUmVxdWVzdC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQTMxRjYwQTQyNUNDN0RCOTAwQUYxNEY0
IC8qIElQQ1NlbWFwaG9yZS5oIGluIEhlYWRlcnMgKi8sCi0JCQkJN0JEREEzMTkyNzQ3QzA0MDAw
Mzg2NTlFIC8qIChudWxsKSBpbiBIZWFkZXJzICovLAogCQkJCTlCNDc5MDhGMjUzMTUxQ0MwMEVD
MTFBQiAvKiBKU0lQQ0JpbmRpbmcuaCBpbiBIZWFkZXJzICovLAogCQkJCUMxNjYzRTVCMjRBRUFB
MkYwMEM2QTNCMiAvKiBMYXVuY2hTZXJ2aWNlc0RhdGFiYXNlWFBDQ29uc3RhbnRzLmggaW4gSGVh
ZGVycyAqLywKIAkJCQlCQ0UwOTM3ODE0RkIxMjhDMDAxMTM4RDkgLyogTGF5ZXJIb3N0aW5nQ29u
dGV4dC5oIGluIEhlYWRlcnMgKi8sCkBAIC0xMzE2Myw2ICsxMzE4Nyw3IEBACiAJCQkJNTE3QjVG
ODEyNzVFOTdCNjAwMkRDMjJEIC8qIFB1c2hBcHBCdW5kbGUuaCBpbiBIZWFkZXJzICovLAogCQkJ
CTUxN0I1RjdEMjc1RTk3QjYwMDJEQzIyRCAvKiBQdXNoQ2xpZW50Q29ubmVjdGlvbi5oIGluIEhl
YWRlcnMgKi8sCiAJCQkJNTE3QjVGOTUyNzVFQkE2MzAwMkRDMjJEIC8qIFB1c2hNZXNzYWdlRm9y
VGVzdGluZy5oIGluIEhlYWRlcnMgKi8sCisJCQkJRUI5NjQ4Q0EyN0EzQkQyNDAwNkFCNjcwIC8q
IFB1c2hTZXJ2aWNlQ29ubmVjdGlvbi5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQTFFNjg4NzAxRjZF
MkJBQjAwNzAwNkE2IC8qIFF1YXJhbnRpbmVTUEkuaCBpbiBIZWFkZXJzICovLAogCQkJCTFBMEMy
MjdFMjQ1MTEzMEEwMEVENjE0RCAvKiBRdWlja0xvb2tUaHVtYm5haWxpbmdTb2Z0TGluay5oIGlu
IEhlYWRlcnMgKi8sCiAJCQkJMUFFRTU3MjUyNDA5RjE0MjAwMjAwNUQ2IC8qIFF1aWNrTG9va1Ro
dW1ibmFpbExvYWRlci5oIGluIEhlYWRlcnMgKi8sCkBAIC0xNTQ0MCw2ICsxNTQ2NSw3IEBACiAJ
CQkJOTlFNzE4OUEyMUY3OUQ5RTAwNTVFOTc1IC8qIF9XS1RvdWNoRXZlbnRHZW5lcmF0b3IubW0g
aW4gU291cmNlcyAqLywKIAkJCQk1NzJFQkJEQTI1MzhGNkI0MDAwNTUyQjMgLyogQXBwQXR0ZXN0
SW50ZXJuYWxTb2Z0TGluay5tbSBpbiBTb3VyY2VzICovLAogCQkJCTUxN0I1RjdFMjc1RTk3QjYw
MDJEQzIyRCAvKiBBcHBCdW5kbGVSZXF1ZXN0Lm1tIGluIFNvdXJjZXMgKi8sCisJCQkJRUI5NjQ4
QzYyN0EzQkQyNDAwNkFCNjcwIC8qIEFwcGxlUHVzaFNlcnZpY2VDb25uZWN0aW9uLm1tIGluIFNv
dXJjZXMgKi8sCiAJCQkJMkRFQjFEMkUyMTI3NDczNjAwOTMzOTA2IC8qIEFyZ3VtZW50Q29kZXJz
Q0YuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQ0Q0NTcwRDQyNDQxMUQwRjAwQTNEQ0VCIC8qIEF1
ZGlvU2Vzc2lvblJvdXRpbmdBcmJpdHJhdG9yLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUNENDU3
MEQzMjQ0MTEzQjUwMEEzRENFQiAvKiBBdWRpb1Nlc3Npb25Sb3V0aW5nQXJiaXRyYXRvclByb3h5
TWVzc2FnZVJlY2VpdmVyLmNwcCBpbiBTb3VyY2VzICovLApAQCAtMTU0NTcsNiArMTU0ODMsNyBA
QAogCQkJCTFBNjQyMzA4MTJERDA5RUIwMENBQUUyQyAvKiBEcmF3aW5nQXJlYVByb3h5TWVzc2Fn
ZVJlY2VpdmVyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUNEQ0RDOTlFMjQ4RkU4REEwMEE2OTUy
MiAvKiBFbmRvd21lbnRTdGF0ZVRyYWNrZXIubW0gaW4gU291cmNlcyAqLywKIAkJCQkxQUE1NzYw
MjE0OTZCOTc5MDBBNEVFMDYgLyogRXZlbnREaXNwYXRjaGVyTWVzc2FnZVJlY2VpdmVyLmNwcCBp
biBTb3VyY2VzICovLAorCQkJCUVCOTY0OEM5MjdBM0JEMjQwMDZBQjY3MCAvKiBGYWtlUHVzaFNl
cnZpY2VDb25uZWN0aW9uLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJQ0RBOTNEQjEyMkY4QkNGNDAw
NDkwQTY5IC8qIEZ1bGxzY3JlZW5Ub3VjaFNlY2hldXJpc3RpY1BhcmFtZXRlcnMuY3BwIGluIFNv
dXJjZXMgKi8sCiAJCQkJQzFBMTUyRDcyNEU1QTI5QTAwOTc4QzhCIC8qIEhhbmRsZVhQQ0VuZHBv
aW50TWVzc2FnZXMubW0gaW4gU291cmNlcyAqLywKIAkJCQkyNzQ5RjY0NDIxNDY1NjFCMDA4Mzgw
QkYgLyogSW5qZWN0ZWRCdW5kbGVOb2RlSGFuZGxlLmNwcCBpbiBTb3VyY2VzICovLApAQCAtMTU0
OTgsNiArMTU1MjUsNyBAQAogCQkJCTJENTRDMzFCMjEyRjREQTYwMDQ5QzE3NCAvKiBQcm9jZXNz
TGF1bmNoZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJNTE3QjVGODIyNzVFOTdCNjAwMkRDMjJE
IC8qIFB1c2hBcHBCdW5kbGUubW0gaW4gU291cmNlcyAqLywKIAkJCQk1MTdCNUY3QjI3NUU5N0E5
MDAyREMyMkQgLyogUHVzaENsaWVudENvbm5lY3Rpb24ubW0gaW4gU291cmNlcyAqLywKKwkJCQlF
Qjk2NDhDQjI3QTNCRDI0MDA2QUI2NzAgLyogUHVzaFNlcnZpY2VDb25uZWN0aW9uLm1tIGluIFNv
dXJjZXMgKi8sCiAJCQkJMUEwQzIyN0YyNDUxMTMwQTAwRUQ2MTREIC8qIFF1aWNrTG9va1RodW1i
bmFpbGluZ1NvZnRMaW5rLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJMUEwQzIyNUUyNDM1NzVDRDAw
RUQ2MTREIC8qIFF1aWNrTG9va1RodW1ibmFpbExvYWRlci5tbSBpbiBTb3VyY2VzICovLAogCQkJ
CTlCMTIyOUNFMjNGRjI1RjIwMDhDQTc1MSAvKiBSZW1vdGVBdWRpb0Rlc3RpbmF0aW9uTWFuYWdl
ci5jcHAgaW4gU291cmNlcyAqLywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvd2VicHVzaGQv
QXBwbGVQdXNoU2VydmljZUNvbm5lY3Rpb24uaCBiL1NvdXJjZS9XZWJLaXQvd2VicHVzaGQvQXBw
bGVQdXNoU2VydmljZUNvbm5lY3Rpb24uaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5jNTUzMzEzNTllYWFkZDM3ODA0
Mjc4MWRlOTdmZDgwY2YzMjE0ZWMyCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC93
ZWJwdXNoZC9BcHBsZVB1c2hTZXJ2aWNlQ29ubmVjdGlvbi5oCkBAIC0wLDAgKzEsNjQgQEAKKy8q
CisgKiBDb3B5cmlnaHQgKEMpIDIwMjIgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgor
ICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMs
IHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVk
IHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0
cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJl
cHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1
bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJp
YnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBB
TkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBM
SUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElN
UExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFS
VElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQ
TEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1Qs
IElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFV
RU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVO
VCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEs
IE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VE
IEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1Qs
IFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVS
V0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRX
QVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFH
RS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworI2luY2x1ZGUgIkFwcGxlUHVzaFNlcnZpY2VTUEku
aCIKKyNpbmNsdWRlICJQdXNoU2VydmljZUNvbm5lY3Rpb24uaCIKKyNpbmNsdWRlIDx3dGYvSGFz
aE1hcC5oPgorI2luY2x1ZGUgPHd0Zi9SZXRhaW5QdHIuaD4KKworbmFtZXNwYWNlIFdlYlB1c2hE
IHsKKworY2xhc3MgQXBwbGVQdXNoU2VydmljZUNvbm5lY3Rpb24gOiBwdWJsaWMgUHVzaFNlcnZp
Y2VDb25uZWN0aW9uIHsKKyAgICBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsKK3B1YmxpYzoKKyAg
ICBBcHBsZVB1c2hTZXJ2aWNlQ29ubmVjdGlvbihjb25zdCBTdHJpbmcmIGluY29taW5nUHVzaFNl
cnZpY2VOYW1lKTsKKyAgICB2aXJ0dWFsIH5BcHBsZVB1c2hTZXJ2aWNlQ29ubmVjdGlvbigpOwor
CisgICAgdm9pZCBzdWJzY3JpYmUoY29uc3QgU3RyaW5nJiB0b3BpYywgY29uc3QgVmVjdG9yPHVp
bnQ4X3Q+JiB2YXBpZFB1YmxpY0tleSwgU3Vic2NyaWJlSGFuZGxlciYmKSBmaW5hbDsKKyAgICB2
b2lkIHVuc3Vic2NyaWJlKGNvbnN0IFN0cmluZyYgdG9waWMsIGNvbnN0IFZlY3Rvcjx1aW50OF90
PiYgdmFwaWRQdWJsaWNLZXksIFVuc3Vic2NyaWJlSGFuZGxlciYmKSBmaW5hbDsKKworICAgIFZl
Y3RvcjxTdHJpbmc+IGVuYWJsZWRUb3BpY3MoKSBmaW5hbDsKKyAgICBWZWN0b3I8U3RyaW5nPiBp
Z25vcmVkVG9waWNzKCkgZmluYWw7CisgICAgVmVjdG9yPFN0cmluZz4gb3Bwb3J0dW5pc3RpY1Rv
cGljcygpIGZpbmFsOworICAgIFZlY3RvcjxTdHJpbmc+IG5vbldha2luZ1RvcGljcygpIGZpbmFs
OworCisgICAgdm9pZCBzZXRFbmFibGVkVG9waWNzKGNvbnN0IFZlY3RvcjxTdHJpbmc+JikgZmlu
YWw7CisgICAgdm9pZCBzZXRJZ25vcmVkVG9waWNzKGNvbnN0IFZlY3RvcjxTdHJpbmc+JikgZmlu
YWw7CisgICAgdm9pZCBzZXRPcHBvcnR1bmlzdGljVG9waWNzKGNvbnN0IFZlY3RvcjxTdHJpbmc+
JikgZmluYWw7CisgICAgdm9pZCBzZXROb25XYWtpbmdUb3BpY3MoY29uc3QgVmVjdG9yPFN0cmlu
Zz4mKSBmaW5hbDsKKworICAgIHZvaWQgc2V0VG9waWNMaXN0cyhUb3BpY0xpc3RzJiYpIGZpbmFs
OworCitwcml2YXRlOgorICAgIFJldGFpblB0cjxBUFNDb25uZWN0aW9uPiBtX2Nvbm5lY3Rpb247
CisgICAgUmV0YWluUHRyPGlkPEFQU0Nvbm5lY3Rpb25EZWxlZ2F0ZT4+IG1fZGVsZWdhdGU7Cisg
ICAgdW5zaWduZWQgbV9oYW5kbGVySWRlbnRpZmllciB7IDAgfTsKKyAgICBIYXNoTWFwPHVuc2ln
bmVkLCBTdWJzY3JpYmVIYW5kbGVyPiBtX3N1YnNjcmliZUhhbmRsZXJzOworICAgIEhhc2hNYXA8
dW5zaWduZWQsIFVuc3Vic2NyaWJlSGFuZGxlcj4gbV91bnN1YnNjcmliZUhhbmRsZXJzOworfTsK
KworfSAvLyBuYW1lc3BhY2UgV2ViUHVzaEQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvd2Vi
cHVzaGQvQXBwbGVQdXNoU2VydmljZUNvbm5lY3Rpb24ubW0gYi9Tb3VyY2UvV2ViS2l0L3dlYnB1
c2hkL0FwcGxlUHVzaFNlcnZpY2VDb25uZWN0aW9uLm1tCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjM3MDRmZThkYWVm
NzMzNDE4NmY4NjJmYTFjMWQxYzBjMzJiYmMwZTkKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2Uv
V2ViS2l0L3dlYnB1c2hkL0FwcGxlUHVzaFNlcnZpY2VDb25uZWN0aW9uLm1tCkBAIC0wLDAgKzEs
MTY0IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIyIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmlu
YXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRl
ZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAq
IDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUg
Y29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZv
cm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQor
ICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGgg
dGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQ
UExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJF
U1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywK
KyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNT
IEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5U
IFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBB
TlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgor
ICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywg
UFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0Yg
VVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dF
VkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAq
IENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5D
RSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0Yg
VEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0Yg
U1VDSCBEQU1BR0UuCisgKi8KKworI2ltcG9ydCAiY29uZmlnLmgiCisjaW1wb3J0ICJBcHBsZVB1
c2hTZXJ2aWNlQ29ubmVjdGlvbi5oIgorCisjaW1wb3J0IDx3dGYvY29jb2EvVmVjdG9yQ29jb2Eu
aD4KKworQGludGVyZmFjZSBfV0tBUFNDb25uZWN0aW9uRGVsZWdhdGUgOiBOU09iamVjdDxBUFND
b25uZWN0aW9uRGVsZWdhdGU+IHsKKyAgICBXZWJQdXNoRDo6QXBwbGVQdXNoU2VydmljZUNvbm5l
Y3Rpb24gKl9jb25uZWN0aW9uOworfQorQGVuZAorCitAaW1wbGVtZW50YXRpb24gX1dLQVBTQ29u
bmVjdGlvbkRlbGVnYXRlCisKKy0gKGluc3RhbmNldHlwZSlpbml0V2l0aENvbm5lY3Rpb246KFdl
YlB1c2hEOjpBcHBsZVB1c2hTZXJ2aWNlQ29ubmVjdGlvbiAqKWNvbm5lY3Rpb24KK3sKKyAgICBp
ZiAoKHNlbGYgPSBbc3VwZXIgaW5pdF0pKQorICAgICAgICBfY29ubmVjdGlvbiA9IGNvbm5lY3Rp
b247CisgICAgcmV0dXJuIHNlbGY7Cit9CisKKy0gKHZvaWQpY29ubmVjdGlvbjooQVBTQ29ubmVj
dGlvbiAqKWNvbm5lY3Rpb24gZGlkUmVjZWl2ZVB1YmxpY1Rva2VuOihOU0RhdGEgKilwdWJsaWNU
b2tlbgoreworICAgIFVOVVNFRF9QQVJBTShjb25uZWN0aW9uKTsKKyAgICBVTlVTRURfUEFSQU0o
cHVibGljVG9rZW4pOworfQorCistICh2b2lkKWNvbm5lY3Rpb246KEFQU0Nvbm5lY3Rpb24gKilj
b25uZWN0aW9uIGRpZFJlY2VpdmVJbmNvbWluZ01lc3NhZ2U6KEFQU0luY29taW5nTWVzc2FnZSAq
KW1lc3NhZ2UKK3sKKyAgICBVTlVTRURfUEFSQU0oY29ubmVjdGlvbik7CisgICAgX2Nvbm5lY3Rp
b24tPmRpZFJlY2VpdmVQdXNoTWVzc2FnZShtZXNzYWdlLnRvcGljLCBtZXNzYWdlLnVzZXJJbmZv
KTsKK30KKworQGVuZAorCituYW1lc3BhY2UgV2ViUHVzaEQgeworCitBcHBsZVB1c2hTZXJ2aWNl
Q29ubmVjdGlvbjo6QXBwbGVQdXNoU2VydmljZUNvbm5lY3Rpb24oY29uc3QgU3RyaW5nJiBpbmNv
bWluZ1B1c2hTZXJ2aWNlTmFtZSkKK3sKKyAgICBtX2Nvbm5lY3Rpb24gPSBhZG9wdE5TKFtbQVBT
Q29ubmVjdGlvbiBhbGxvY10gaW5pdFdpdGhFbnZpcm9ubWVudE5hbWU6QVBTRW52aXJvbm1lbnRQ
cm9kdWN0aW9uIG5hbWVkRGVsZWdhdGVQb3J0OmluY29taW5nUHVzaFNlcnZpY2VOYW1lIHF1ZXVl
OmRpc3BhdGNoX2dldF9tYWluX3F1ZXVlKCldKTsKKyAgICBtX2RlbGVnYXRlID0gYWRvcHROUyhb
W19XS0FQU0Nvbm5lY3Rpb25EZWxlZ2F0ZSBhbGxvY10gaW5pdFdpdGhDb25uZWN0aW9uOnRoaXNd
KTsKKyAgICBbbV9jb25uZWN0aW9uIHNldERlbGVnYXRlOm1fZGVsZWdhdGUuZ2V0KCldOworfQor
CitBcHBsZVB1c2hTZXJ2aWNlQ29ubmVjdGlvbjo6fkFwcGxlUHVzaFNlcnZpY2VDb25uZWN0aW9u
KCkgPSBkZWZhdWx0OworCisjaWYgSEFWRShBUFBMRV9QVVNIX1NFUlZJQ0VfVVJMX1RPS0VOX1NV
UFBPUlQpCisKK3N0YXRpYyBSZXRhaW5QdHI8QVBTVVJMVG9rZW5JbmZvPiBtYWtlVG9rZW5JbmZv
KGNvbnN0IFN0cmluZyYgdG9waWMsIGNvbnN0IFZlY3Rvcjx1aW50OF90PiYgdmFwaWRQdWJsaWNL
ZXkpCit7CisgICAgYXV0byBzZXJ2ZXJQdWJsaWNLZXkgPSBhZG9wdE5TKFtbTlNEYXRhIGFsbG9j
XSBpbml0V2l0aEJ5dGVzOnZhcGlkUHVibGljS2V5LmRhdGEoKSBsZW5ndGg6dmFwaWRQdWJsaWNL
ZXkuc2l6ZSgpXSk7CisgICAgcmV0dXJuIGFkb3B0TlMoW1tBUFNVUkxUb2tlbkluZm8gYWxsb2Nd
IGluaXRXaXRoVG9waWM6dG9waWMgdmFwaWRQdWJsaWNLZXk6c2VydmVyUHVibGljS2V5LmdldCgp
XSk7Cit9CisKK3ZvaWQgQXBwbGVQdXNoU2VydmljZUNvbm5lY3Rpb246OnN1YnNjcmliZShjb25z
dCBTdHJpbmcmIHRvcGljLCBjb25zdCBWZWN0b3I8dWludDhfdD4mIHZhcGlkUHVibGljS2V5LCBT
dWJzY3JpYmVIYW5kbGVyJiYgc3Vic2NyaWJlSGFuZGxlcikKK3sKKyAgICAvLyBTdGFzaCB0aGUg
Y29tcGxldGlvbiBoYW5kbGVyIGF3YXkgYW5kIGxvb2sgaXQgdXAgYnkgaWQgc28gdGhhdCB3ZSBj
YW4gZW5zdXJlIGl0IGdldHMgZGVzdHJ1Y3RlZCBvbiB0aGUgbWFpbiB0aHJlYWQuIElmIHdlIG1v
dmUgdGhlIGhhbmRsZXIgYW5kIGNhcHR1cmUgaXQgaW4gdGhlIE9iai1DIGJsb2NrLCBpdCBtaWdo
dCBnZXQgZGVzdHJ1Y3RlZCBvbiBhIHNlY29uZGFyeSB0aHJlYWQgc2luY2UgdGhpcyBjb21wbGV0
aW9uIGJsb2NrIG1vdmVzIGJldHdlZW4gZGlmZmVyZW50IGRpc3BhdGNoIHF1ZXVlcyBpbiB0aGUg
QVBTIGltcGxlbWVudGF0aW9uLgorICAgIGF1dG8gaWRlbnRpZmllciA9ICsrbV9oYW5kbGVySWRl
bnRpZmllcjsKKyAgICBtX3N1YnNjcmliZUhhbmRsZXJzLmFkZChpZGVudGlmaWVyLCBXVEZNb3Zl
KHN1YnNjcmliZUhhbmRsZXIpKTsKKworICAgIFttX2Nvbm5lY3Rpb24gcmVxdWVzdFVSTFRva2Vu
Rm9ySW5mbzptYWtlVG9rZW5JbmZvKHRvcGljLCB2YXBpZFB1YmxpY0tleSkuZ2V0KCkgY29tcGxl
dGlvbjpeKEFQU1VSTFRva2VuICp0b2tlbiwgTlNFcnJvciAqZXJyb3IpIHsKKyAgICAgICAgYXV0
byBoYW5kbGVyID0gbV9zdWJzY3JpYmVIYW5kbGVycy50YWtlKGlkZW50aWZpZXIpOworICAgICAg
ICBoYW5kbGVyKHRva2VuLnRva2VuVVJMLCBlcnJvcik7CisgICAgfV07Cit9CisKK3ZvaWQgQXBw
bGVQdXNoU2VydmljZUNvbm5lY3Rpb246OnVuc3Vic2NyaWJlKGNvbnN0IFN0cmluZyYgdG9waWMs
IGNvbnN0IFZlY3Rvcjx1aW50OF90PiYgdmFwaWRQdWJsaWNLZXksIFVuc3Vic2NyaWJlSGFuZGxl
ciYmIHVuc3Vic2NyaWJlSGFuZGxlcikKK3sKKyAgICAvLyBTZWUgc3Vic2NyaWJlIGZvciB3aHkg
d2Ugc3Rhc2ggdGhlIGhhbmRsZXIgaW50byBhIG1hcC4KKyAgICBhdXRvIGlkZW50aWZpZXIgPSAr
K21faGFuZGxlcklkZW50aWZpZXI7CisgICAgbV91bnN1YnNjcmliZUhhbmRsZXJzLmFkZChpZGVu
dGlmaWVyLCBXVEZNb3ZlKHVuc3Vic2NyaWJlSGFuZGxlcikpOworCisgICAgW21fY29ubmVjdGlv
biBpbnZhbGlkYXRlVVJMVG9rZW5Gb3JJbmZvOm1ha2VUb2tlbkluZm8odG9waWMsIHZhcGlkUHVi
bGljS2V5KS5nZXQoKSBjb21wbGV0aW9uOl4oQk9PTCBzdWNjZXNzLCBOU0Vycm9yICplcnJvcikg
eworICAgICAgICAvLyBGSVhNRTogcmVtb3ZlIHRoaXMgb25jZSBBUFMgc3RvcHMgY2FsbGluZyBi
YWNrIG9uIHRoZSB3cm9uZyBxdWV1ZSAocmRhcjovLzg4MTAwMjc1KS4KKyAgICAgICAgZGlzcGF0
Y2hfYXN5bmMoZGlzcGF0Y2hfZ2V0X21haW5fcXVldWUoKSwgXnsKKyAgICAgICAgICAgIGF1dG8g
aGFuZGxlciA9IG1fdW5zdWJzY3JpYmVIYW5kbGVycy50YWtlKGlkZW50aWZpZXIpOworICAgICAg
ICAgICAgaGFuZGxlcihzdWNjZXNzLCBlcnJvcik7CisgICAgICAgIH0pOworICAgIH1dOworfQor
CisjZWxzZQorCit2b2lkIEFwcGxlUHVzaFNlcnZpY2VDb25uZWN0aW9uOjpzdWJzY3JpYmUoY29u
c3QgU3RyaW5nJiwgY29uc3QgVmVjdG9yPHVpbnQ4X3Q+JiwgU3Vic2NyaWJlSGFuZGxlciYmIGhh
bmRsZXIpCit7CisgICAgaGFuZGxlcih7IH0sIFtOU0Vycm9yIGVycm9yV2l0aERvbWFpbjpOU0Nv
Y29hRXJyb3JEb21haW4gY29kZTpOU0ZlYXR1cmVVbnN1cHBvcnRlZEVycm9yIHVzZXJJbmZvOm5p
bF0pOworfQorCit2b2lkIEFwcGxlUHVzaFNlcnZpY2VDb25uZWN0aW9uOjp1bnN1YnNjcmliZShj
b25zdCBTdHJpbmcmLCBjb25zdCBWZWN0b3I8dWludDhfdD4mLCBVbnN1YnNjcmliZUhhbmRsZXIm
JiBoYW5kbGVyKQoreworICAgIGhhbmRsZXIoeyB9LCBbTlNFcnJvciBlcnJvcldpdGhEb21haW46
TlNDb2NvYUVycm9yRG9tYWluIGNvZGU6TlNGZWF0dXJlVW5zdXBwb3J0ZWRFcnJvciB1c2VySW5m
bzpuaWxdKTsKK30KKworI2VuZGlmIC8vIEhBVkUoQVBQTEVfUFVTSF9TRVJWSUNFX1VSTF9UT0tF
Tl9TVVBQT1JUKQorCitWZWN0b3I8U3RyaW5nPiBBcHBsZVB1c2hTZXJ2aWNlQ29ubmVjdGlvbjo6
ZW5hYmxlZFRvcGljcygpCit7CisgICAgcmV0dXJuIG1ha2VWZWN0b3I8U3RyaW5nPihbbV9jb25u
ZWN0aW9uIGVuYWJsZWRUb3BpY3NdKTsKK30KKworVmVjdG9yPFN0cmluZz4gQXBwbGVQdXNoU2Vy
dmljZUNvbm5lY3Rpb246Omlnbm9yZWRUb3BpY3MoKQoreworICAgIHJldHVybiBtYWtlVmVjdG9y
PFN0cmluZz4oW21fY29ubmVjdGlvbiBpZ25vcmVkVG9waWNzXSk7Cit9CisKK1ZlY3RvcjxTdHJp
bmc+IEFwcGxlUHVzaFNlcnZpY2VDb25uZWN0aW9uOjpvcHBvcnR1bmlzdGljVG9waWNzKCkKK3sK
KyAgICByZXR1cm4gbWFrZVZlY3RvcjxTdHJpbmc+KFttX2Nvbm5lY3Rpb24gb3Bwb3J0dW5pc3Rp
Y1RvcGljc10pOworfQorCitWZWN0b3I8U3RyaW5nPiBBcHBsZVB1c2hTZXJ2aWNlQ29ubmVjdGlv
bjo6bm9uV2FraW5nVG9waWNzKCkKK3sKKyAgICByZXR1cm4gbWFrZVZlY3RvcjxTdHJpbmc+KFtt
X2Nvbm5lY3Rpb24gbm9uV2FraW5nVG9waWNzXSk7Cit9CisKK3ZvaWQgQXBwbGVQdXNoU2Vydmlj
ZUNvbm5lY3Rpb246OnNldEVuYWJsZWRUb3BpY3MoY29uc3QgVmVjdG9yPFN0cmluZz4mIHRvcGlj
cykKK3sKKyAgICBbbV9jb25uZWN0aW9uIF9zZXRFbmFibGVkVG9waWNzOmNyZWF0ZU5TQXJyYXko
dG9waWNzKS5nZXQoKV07Cit9CisKK3ZvaWQgQXBwbGVQdXNoU2VydmljZUNvbm5lY3Rpb246OnNl
dElnbm9yZWRUb3BpY3MoY29uc3QgVmVjdG9yPFN0cmluZz4mIHRvcGljcykKK3sKKyAgICBbbV9j
b25uZWN0aW9uIF9zZXRJZ25vcmVkVG9waWNzOmNyZWF0ZU5TQXJyYXkodG9waWNzKS5nZXQoKV07
Cit9CisKK3ZvaWQgQXBwbGVQdXNoU2VydmljZUNvbm5lY3Rpb246OnNldE9wcG9ydHVuaXN0aWNU
b3BpY3MoY29uc3QgVmVjdG9yPFN0cmluZz4mIHRvcGljcykKK3sKKyAgICBbbV9jb25uZWN0aW9u
IF9zZXRPcHBvcnR1bmlzdGljVG9waWNzOmNyZWF0ZU5TQXJyYXkodG9waWNzKS5nZXQoKV07Cit9
CisKK3ZvaWQgQXBwbGVQdXNoU2VydmljZUNvbm5lY3Rpb246OnNldE5vbldha2luZ1RvcGljcyhj
b25zdCBWZWN0b3I8U3RyaW5nPiYgdG9waWNzKQoreworICAgIFttX2Nvbm5lY3Rpb24gX3NldE5v
bldha2luZ1RvcGljczpjcmVhdGVOU0FycmF5KHRvcGljcykuZ2V0KCldOworfQorCit2b2lkIEFw
cGxlUHVzaFNlcnZpY2VDb25uZWN0aW9uOjpzZXRUb3BpY0xpc3RzKFRvcGljTGlzdHMmJiB0b3Bp
Y0xpc3RzKQoreworICAgIFttX2Nvbm5lY3Rpb24gc2V0RW5hYmxlZFRvcGljczpjcmVhdGVOU0Fy
cmF5KHRvcGljTGlzdHMuZW5hYmxlZFRvcGljcykuZ2V0KCkgaWdub3JlZFRvcGljczpjcmVhdGVO
U0FycmF5KHRvcGljTGlzdHMuaWdub3JlZFRvcGljcykuZ2V0KCkgb3Bwb3J0dW5pc3RpY1RvcGlj
czpjcmVhdGVOU0FycmF5KHRvcGljTGlzdHMub3Bwb3J0dW5pc3RpY1RvcGljcykuZ2V0KCkgbm9u
V2FraW5nVG9waWNzOmNyZWF0ZU5TQXJyYXkodG9waWNMaXN0cy5ub25XYWtpbmdUb3BpY3MpLmdl
dCgpXTsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViUHVzaEQKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvd2VicHVzaGQvRmFrZVB1c2hTZXJ2aWNlQ29ubmVjdGlvbi5oIGIvU291cmNlL1dlYktp
dC93ZWJwdXNoZC9GYWtlUHVzaFNlcnZpY2VDb25uZWN0aW9uLmgKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMzhlODU1
YmI0NDE0ZGViMjIxYmU3YWMwYzQ3YmE1OGIxZGMzZGQxNAotLS0gL2Rldi9udWxsCisrKyBiL1Nv
dXJjZS9XZWJLaXQvd2VicHVzaGQvRmFrZVB1c2hTZXJ2aWNlQ29ubmVjdGlvbi5oCkBAIC0wLDAg
KzEsNTYgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjIgQXBwbGUgSW5jLiBBbGwgcmlnaHRz
IHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBi
aW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0
dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0Ogor
ICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkg
Zm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhl
CisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0
aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkg
QVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQ
UkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5F
U1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZF
TlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9S
IEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9S
CisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBP
RiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhP
V0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgor
ICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdF
TkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBP
RiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBP
RiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworI2luY2x1ZGUgIlB1c2hTZXJ2
aWNlQ29ubmVjdGlvbi5oIgorI2luY2x1ZGUgPHd0Zi9IYXNoTWFwLmg+CisjaW5jbHVkZSA8d3Rm
L1JldGFpblB0ci5oPgorCituYW1lc3BhY2UgV2ViUHVzaEQgeworCitjbGFzcyBGYWtlUHVzaFNl
cnZpY2VDb25uZWN0aW9uIDogcHVibGljIFB1c2hTZXJ2aWNlQ29ubmVjdGlvbiB7CisgICAgV1RG
X01BS0VfRkFTVF9BTExPQ0FURUQ7CitwdWJsaWM6CisgICAgRmFrZVB1c2hTZXJ2aWNlQ29ubmVj
dGlvbigpOworICAgIHZpcnR1YWwgfkZha2VQdXNoU2VydmljZUNvbm5lY3Rpb24oKTsKKworICAg
IHZvaWQgc3Vic2NyaWJlKGNvbnN0IFN0cmluZyYgdG9waWMsIGNvbnN0IFZlY3Rvcjx1aW50OF90
PiYgdmFwaWRQdWJsaWNLZXksIFN1YnNjcmliZUhhbmRsZXImJikgZmluYWw7CisgICAgdm9pZCB1
bnN1YnNjcmliZShjb25zdCBTdHJpbmcmIHRvcGljLCBjb25zdCBWZWN0b3I8dWludDhfdD4mIHZh
cGlkUHVibGljS2V5LCBVbnN1YnNjcmliZUhhbmRsZXImJikgZmluYWw7CisKKyAgICBWZWN0b3I8
U3RyaW5nPiBlbmFibGVkVG9waWNzKCkgZmluYWw7CisgICAgVmVjdG9yPFN0cmluZz4gaWdub3Jl
ZFRvcGljcygpIGZpbmFsOworICAgIFZlY3RvcjxTdHJpbmc+IG9wcG9ydHVuaXN0aWNUb3BpY3Mo
KSBmaW5hbDsKKyAgICBWZWN0b3I8U3RyaW5nPiBub25XYWtpbmdUb3BpY3MoKSBmaW5hbDsKKwor
ICAgIHZvaWQgc2V0RW5hYmxlZFRvcGljcyhjb25zdCBWZWN0b3I8U3RyaW5nPiYpIGZpbmFsOwor
ICAgIHZvaWQgc2V0SWdub3JlZFRvcGljcyhjb25zdCBWZWN0b3I8U3RyaW5nPiYpIGZpbmFsOwor
ICAgIHZvaWQgc2V0T3Bwb3J0dW5pc3RpY1RvcGljcyhjb25zdCBWZWN0b3I8U3RyaW5nPiYpIGZp
bmFsOworICAgIHZvaWQgc2V0Tm9uV2FraW5nVG9waWNzKGNvbnN0IFZlY3RvcjxTdHJpbmc+Jikg
ZmluYWw7CisKKyAgICB2b2lkIHNldFRvcGljTGlzdHMoVG9waWNMaXN0cyYmKSBmaW5hbDsKK307
CisKK30gLy8gbmFtZXNwYWNlIFdlYlB1c2hECmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L3dl
YnB1c2hkL0Zha2VQdXNoU2VydmljZUNvbm5lY3Rpb24ubW0gYi9Tb3VyY2UvV2ViS2l0L3dlYnB1
c2hkL0Zha2VQdXNoU2VydmljZUNvbm5lY3Rpb24ubW0KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uY2EzMTM3NmVjZGEz
YzY1NTI2MjQ5NWQ2NGVlZTA4ODYyOGQyNWNiMgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9X
ZWJLaXQvd2VicHVzaGQvRmFrZVB1c2hTZXJ2aWNlQ29ubmVjdGlvbi5tbQpAQCAtMCwwICsxLDg3
IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIyIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNl
cnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5
IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBw
cm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEu
IFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29w
eXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0g
bXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICog
ICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhl
IGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExF
IElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1Mg
T1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAq
IFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZP
UiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNI
QUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkg
RElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICog
Q09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJP
Q1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNF
LCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVS
IENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENP
TlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBP
UiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJ
UyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VD
SCBEQU1BR0UuCisgKi8KKworI2ltcG9ydCAiY29uZmlnLmgiCisjaW1wb3J0ICJGYWtlUHVzaFNl
cnZpY2VDb25uZWN0aW9uLmgiCisKK25hbWVzcGFjZSBXZWJQdXNoRCB7CisKK0Zha2VQdXNoU2Vy
dmljZUNvbm5lY3Rpb246OkZha2VQdXNoU2VydmljZUNvbm5lY3Rpb24oKQoreworfQorCitGYWtl
UHVzaFNlcnZpY2VDb25uZWN0aW9uOjp+RmFrZVB1c2hTZXJ2aWNlQ29ubmVjdGlvbigpID0gZGVm
YXVsdDsKKwordm9pZCBGYWtlUHVzaFNlcnZpY2VDb25uZWN0aW9uOjpzdWJzY3JpYmUoY29uc3Qg
U3RyaW5nJiwgY29uc3QgVmVjdG9yPHVpbnQ4X3Q+JiwgU3Vic2NyaWJlSGFuZGxlciYmIGhhbmRs
ZXIpCit7CisgICAgaGFuZGxlcih7IH0sIFtOU0Vycm9yIGVycm9yV2l0aERvbWFpbjpOU0NvY29h
RXJyb3JEb21haW4gY29kZTpOU0ZlYXR1cmVVbnN1cHBvcnRlZEVycm9yIHVzZXJJbmZvOm5pbF0p
OworfQorCit2b2lkIEZha2VQdXNoU2VydmljZUNvbm5lY3Rpb246OnVuc3Vic2NyaWJlKGNvbnN0
IFN0cmluZyYsIGNvbnN0IFZlY3Rvcjx1aW50OF90PiYsIFVuc3Vic2NyaWJlSGFuZGxlciYmIGhh
bmRsZXIpCit7CisgICAgaGFuZGxlcih7IH0sIFtOU0Vycm9yIGVycm9yV2l0aERvbWFpbjpOU0Nv
Y29hRXJyb3JEb21haW4gY29kZTpOU0ZlYXR1cmVVbnN1cHBvcnRlZEVycm9yIHVzZXJJbmZvOm5p
bF0pOworfQorCitWZWN0b3I8U3RyaW5nPiBGYWtlUHVzaFNlcnZpY2VDb25uZWN0aW9uOjplbmFi
bGVkVG9waWNzKCkKK3sKKyAgICByZXR1cm4geyB9OworfQorCitWZWN0b3I8U3RyaW5nPiBGYWtl
UHVzaFNlcnZpY2VDb25uZWN0aW9uOjppZ25vcmVkVG9waWNzKCkKK3sKKyAgICByZXR1cm4geyB9
OworfQorCitWZWN0b3I8U3RyaW5nPiBGYWtlUHVzaFNlcnZpY2VDb25uZWN0aW9uOjpvcHBvcnR1
bmlzdGljVG9waWNzKCkKK3sKKyAgICByZXR1cm4geyB9OworfQorCitWZWN0b3I8U3RyaW5nPiBG
YWtlUHVzaFNlcnZpY2VDb25uZWN0aW9uOjpub25XYWtpbmdUb3BpY3MoKQoreworICAgIHJldHVy
biB7IH07Cit9CisKK3ZvaWQgRmFrZVB1c2hTZXJ2aWNlQ29ubmVjdGlvbjo6c2V0RW5hYmxlZFRv
cGljcyhjb25zdCBWZWN0b3I8U3RyaW5nPiYgdG9waWNzKQoreworfQorCit2b2lkIEZha2VQdXNo
U2VydmljZUNvbm5lY3Rpb246OnNldElnbm9yZWRUb3BpY3MoY29uc3QgVmVjdG9yPFN0cmluZz4m
IHRvcGljcykKK3sKK30KKwordm9pZCBGYWtlUHVzaFNlcnZpY2VDb25uZWN0aW9uOjpzZXRPcHBv
cnR1bmlzdGljVG9waWNzKGNvbnN0IFZlY3RvcjxTdHJpbmc+JiB0b3BpY3MpCit7Cit9CisKK3Zv
aWQgRmFrZVB1c2hTZXJ2aWNlQ29ubmVjdGlvbjo6c2V0Tm9uV2FraW5nVG9waWNzKGNvbnN0IFZl
Y3RvcjxTdHJpbmc+JiB0b3BpY3MpCit7Cit9CisKK3ZvaWQgRmFrZVB1c2hTZXJ2aWNlQ29ubmVj
dGlvbjo6c2V0VG9waWNMaXN0cyhUb3BpY0xpc3RzJiYgdG9waWNMaXN0cykKK3sKK30KKworfSAv
LyBuYW1lc3BhY2UgV2ViUHVzaEQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvd2VicHVzaGQv
UHVzaFNlcnZpY2VDb25uZWN0aW9uLmggYi9Tb3VyY2UvV2ViS2l0L3dlYnB1c2hkL1B1c2hTZXJ2
aWNlQ29ubmVjdGlvbi5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjNjYzVlODk1N2QxMTE2OGJjNzFiMzFmZWFjMWUw
NzY2NDc3NTJkMjgKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L3dlYnB1c2hkL1B1
c2hTZXJ2aWNlQ29ubmVjdGlvbi5oCkBAIC0wLDAgKzEsODEgQEAKKy8qCisgKiBDb3B5cmlnaHQg
KEMpIDIwMjIgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJp
YnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91
dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxv
d2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNv
dXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAq
IDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJv
dmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9v
ciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAq
IFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJV
VE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMs
IElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElF
UyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVS
UE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMg
Q09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJ
REVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMg
KElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJ
VFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9S
IEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhF
T1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJ
VFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJ
TkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFE
VklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJh
Z21hIG9uY2UKKworI2luY2x1ZGUgPHd0Zi9Db21wbGV0aW9uSGFuZGxlci5oPgorI2luY2x1ZGUg
PHd0Zi9EZXF1ZS5oPgorI2luY2x1ZGUgPHd0Zi9GdW5jdGlvbi5oPgorI2luY2x1ZGUgPHd0Zi9S
ZXRhaW5QdHIuaD4KKyNpbmNsdWRlIDx3dGYvVmVjdG9yLmg+CisjaW5jbHVkZSA8d3RmL1dvcmtR
dWV1ZS5oPgorI2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgorCitPQkpDX0NMQVNTIE5T
RXJyb3I7CitPQkpDX0NMQVNTIE5TU3RyaW5nOworT0JKQ19DTEFTUyBOU0RpY3Rpb25hcnk7CisK
K25hbWVzcGFjZSBXZWJQdXNoRCB7CisKK2NsYXNzIFB1c2hTZXJ2aWNlQ29ubmVjdGlvbiB7Citw
dWJsaWM6CisgICAgdXNpbmcgSW5jb21pbmdQdXNoTWVzc2FnZUhhbmRsZXIgPSBGdW5jdGlvbjx2
b2lkKE5TU3RyaW5nICosIE5TRGljdGlvbmFyeSAqKT47CisKKyAgICBQdXNoU2VydmljZUNvbm5l
Y3Rpb24oKSA9IGRlZmF1bHQ7CisgICAgdmlydHVhbCB+UHVzaFNlcnZpY2VDb25uZWN0aW9uKCkg
PSBkZWZhdWx0OworCisgICAgdXNpbmcgU3Vic2NyaWJlSGFuZGxlciA9IENvbXBsZXRpb25IYW5k
bGVyPHZvaWQoTlNTdHJpbmcgKiwgTlNFcnJvciAqKT47CisgICAgdmlydHVhbCB2b2lkIHN1YnNj
cmliZShjb25zdCBTdHJpbmcmIHRvcGljLCBjb25zdCBWZWN0b3I8dWludDhfdD4mIHZhcGlkUHVi
bGljS2V5LCBTdWJzY3JpYmVIYW5kbGVyJiYpID0gMDsKKworICAgIHVzaW5nIFVuc3Vic2NyaWJl
SGFuZGxlciA9IENvbXBsZXRpb25IYW5kbGVyPHZvaWQoYm9vbCwgTlNFcnJvciAqKT47CisgICAg
dmlydHVhbCB2b2lkIHVuc3Vic2NyaWJlKGNvbnN0IFN0cmluZyYgdG9waWMsIGNvbnN0IFZlY3Rv
cjx1aW50OF90PiYgdmFwaWRQdWJsaWNLZXksIFVuc3Vic2NyaWJlSGFuZGxlciYmKSA9IDA7CisK
KyAgICB2aXJ0dWFsIFZlY3RvcjxTdHJpbmc+IGVuYWJsZWRUb3BpY3MoKSA9IDA7CisgICAgdmly
dHVhbCBWZWN0b3I8U3RyaW5nPiBpZ25vcmVkVG9waWNzKCkgPSAwOworICAgIHZpcnR1YWwgVmVj
dG9yPFN0cmluZz4gb3Bwb3J0dW5pc3RpY1RvcGljcygpID0gMDsKKyAgICB2aXJ0dWFsIFZlY3Rv
cjxTdHJpbmc+IG5vbldha2luZ1RvcGljcygpID0gMDsKKworICAgIHZpcnR1YWwgdm9pZCBzZXRF
bmFibGVkVG9waWNzKGNvbnN0IFZlY3RvcjxTdHJpbmc+JikgPSAwOworICAgIHZpcnR1YWwgdm9p
ZCBzZXRJZ25vcmVkVG9waWNzKGNvbnN0IFZlY3RvcjxTdHJpbmc+JikgPSAwOworICAgIHZpcnR1
YWwgdm9pZCBzZXRPcHBvcnR1bmlzdGljVG9waWNzKGNvbnN0IFZlY3RvcjxTdHJpbmc+JikgPSAw
OworICAgIHZpcnR1YWwgdm9pZCBzZXROb25XYWtpbmdUb3BpY3MoY29uc3QgVmVjdG9yPFN0cmlu
Zz4mKSA9IDA7CisKKyAgICBzdHJ1Y3QgVG9waWNMaXN0cyB7CisgICAgICAgIFZlY3RvcjxTdHJp
bmc+IGVuYWJsZWRUb3BpY3M7CisgICAgICAgIFZlY3RvcjxTdHJpbmc+IGlnbm9yZWRUb3BpY3M7
CisgICAgICAgIFZlY3RvcjxTdHJpbmc+IG9wcG9ydHVuaXN0aWNUb3BpY3M7CisgICAgICAgIFZl
Y3RvcjxTdHJpbmc+IG5vbldha2luZ1RvcGljczsKKyAgICB9OworICAgIHZpcnR1YWwgdm9pZCBz
ZXRUb3BpY0xpc3RzKFRvcGljTGlzdHMmJikgPSAwOworCisgICAgdm9pZCBzdGFydExpc3Rlbmlu
Z0ZvclB1c2hNZXNzYWdlcyhJbmNvbWluZ1B1c2hNZXNzYWdlSGFuZGxlciYmKTsKKyAgICB2b2lk
IGRpZFJlY2VpdmVQdXNoTWVzc2FnZShOU1N0cmluZyAqdG9waWMsIE5TRGljdGlvbmFyeSAqdXNl
ckluZm8pOworCitwcml2YXRlOgorICAgIEluY29taW5nUHVzaE1lc3NhZ2VIYW5kbGVyIG1faW5j
b21pbmdQdXNoTWVzc2FnZUhhbmRsZXI7CisgICAgRGVxdWU8c3RkOjpwYWlyPFJldGFpblB0cjxO
U1N0cmluZz4sIFJldGFpblB0cjxOU0RpY3Rpb25hcnk+Pj4gbV9wZW5kaW5nUHVzaGVzOworfTsK
KworfSAvLyBuYW1lc3BhY2UgV2ViUHVzaEQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvd2Vi
cHVzaGQvUHVzaFNlcnZpY2VDb25uZWN0aW9uLm1tIGIvU291cmNlL1dlYktpdC93ZWJwdXNoZC9Q
dXNoU2VydmljZUNvbm5lY3Rpb24ubW0KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNTM0MzMyNWViNWVhMjAzZThkZjZm
ZjgzMDNjYjliMGZmYzgxMzIxYgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvd2Vi
cHVzaGQvUHVzaFNlcnZpY2VDb25uZWN0aW9uLm1tCkBAIC0wLDAgKzEsNjAgQEAKKy8qCisgKiBD
b3B5cmlnaHQgKEMpIDIwMjIgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAq
IFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGgg
b3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQg
dGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRp
b25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVj
ZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0
aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9u
LgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRT
IENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdB
UlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQg
V0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxB
UgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5D
LiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElS
RUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFM
IERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgor
ICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBS
T0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBP
TiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklD
VCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkK
KyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBF
VkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAq
LworCisjaW1wb3J0ICJjb25maWcuaCIKKyNpbXBvcnQgIlB1c2hTZXJ2aWNlQ29ubmVjdGlvbi5o
IgorCisjaW1wb3J0IDx3dGYvV29ya1F1ZXVlLmg+CisKK25hbWVzcGFjZSBXZWJQdXNoRCB7CisK
K3ZvaWQgUHVzaFNlcnZpY2VDb25uZWN0aW9uOjpzdGFydExpc3RlbmluZ0ZvclB1c2hNZXNzYWdl
cyhJbmNvbWluZ1B1c2hNZXNzYWdlSGFuZGxlciYmIGhhbmRsZXIpCit7CisgICAgbV9pbmNvbWlu
Z1B1c2hNZXNzYWdlSGFuZGxlciA9IFdURk1vdmUoaGFuZGxlcik7CisKKyAgICBpZiAoIW1fcGVu
ZGluZ1B1c2hlcy5zaXplKCkpCisgICAgICAgIHJldHVybjsKKworICAgIFdvcmtRdWV1ZTo6bWFp
bigpLmRpc3BhdGNoKFt0aGlzXSgpIG11dGFibGUgeworICAgICAgICB3aGlsZSAobV9wZW5kaW5n
UHVzaGVzLnNpemUoKSkgeworICAgICAgICAgICAgQGF1dG9yZWxlYXNlcG9vbCB7CisgICAgICAg
ICAgICAgICAgYXV0byBtZXNzYWdlID0gbV9wZW5kaW5nUHVzaGVzLnRha2VGaXJzdCgpOworICAg
ICAgICAgICAgICAgIG1faW5jb21pbmdQdXNoTWVzc2FnZUhhbmRsZXIobWVzc2FnZS5maXJzdC5n
ZXQoKSwgbWVzc2FnZS5zZWNvbmQuZ2V0KCkpOworICAgICAgICAgICAgfQorICAgICAgICB9Cisg
ICAgfSk7Cit9CisKK3ZvaWQgUHVzaFNlcnZpY2VDb25uZWN0aW9uOjpkaWRSZWNlaXZlUHVzaE1l
c3NhZ2UoTlNTdHJpbmcgKnRvcGljLCBOU0RpY3Rpb25hcnkgKnVzZXJJbmZvKQoreworICAgIGlm
ICghbV9pbmNvbWluZ1B1c2hNZXNzYWdlSGFuZGxlcikgeworICAgICAgICBtX3BlbmRpbmdQdXNo
ZXMuYXBwZW5kKHsgdG9waWMsIHVzZXJJbmZvIH0pOworICAgICAgICByZXR1cm47CisgICAgfQor
CisgICAgbV9pbmNvbWluZ1B1c2hNZXNzYWdlSGFuZGxlcih0b3BpYywgdXNlckluZm8pOworfQor
Cit9IC8vIG5hbWVzcGFjZSBXZWJQdXNoRAo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>450332</attachid>
            <date>2022-01-29 13:08:47 -0800</date>
            <delta_ts>2022-01-29 15:22:30 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-235856-20220129130846.patch</filename>
            <type>text/plain</type>
            <size>45848</size>
            <attacher name="Ben Nham">nham</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg4NzkyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IDNlNGJhZTUyZDUzYjdjMTEwZWNkYjQ4
OTE2MWYxMzhjZDU2YmJmYzguLmFiNjVlZjdjNDg0ZGM4OWI3YjUyY2ZkZjYxMWRlZTIxMTZkMWNj
MDkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMTQgQEAKKzIwMjItMDEtMjggIEJlbiBOaGFtICA8bmhhbUBhcHBs
ZS5jb20+CisKKyAgICAgICAgSW1wb3J0IEFQU0Nvbm5lY3Rpb24tcmVsYXRlZCBTUEkKKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIzNTg1NgorCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkZCBhIEhBVkUgbWFj
cm8gdG8gZ3VhcmQgc29tZSBvZiB0aGUgbmV3ZXIgU1BJIGluIEFQU0Nvbm5lY3Rpb24uCisKKyAg
ICAgICAgKiB3dGYvUGxhdGZvcm1IYXZlLmg6CisKIDIwMjItMDEtMjggIENocmlzIER1bWV6ICA8
Y2R1bWV6QGFwcGxlLmNvbT4KIAogICAgICAgICBBU1NFUlRJT04gRkFJTEVEOiBtX3Byb2Nlc3ND
YWxsYmFjayBpbiBXZWJDb3JlOjpBdWRpb1dvcmtsZXRQcm9jZXNzb3I6OnByb2Nlc3MKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cK
aW5kZXggZDE4YmQ3NGJlZTcwMDg2NDliZjU2YWU5NTc0MWZiMWU0OTM0YjdkYi4uNTgyYTQxMWQz
ZjQwNjNhNWYzOTBjZGY4YTJiM2JlYzYxNTM2ZTYzOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKQEAgLTEsMyArMSw1NCBA
QAorMjAyMi0wMS0yOCAgQmVuIE5oYW0gIDxuaGFtQGFwcGxlLmNvbT4KKworICAgICAgICBJbXBv
cnQgQVBTQ29ubmVjdGlvbi1yZWxhdGVkIFNQSQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjM1ODU2CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZ
IChPT1BTISkuCisKKyAgICAgICAgVGhpcyBpbXBvcnRzIHRoZSBTUEkgZGVjbGFyYXRpb25zIG5l
Y2Vzc2FyeSB0byBidWlsZCBhZ2FpbnN0IEFwcGxlUHVzaFNlcnZpY2UgaW4gV2ViS2l0LiBJdAor
ICAgICAgICBhbHNvIGluY2x1ZGVzIGEgUHVzaFNlcnZpY2VDb25uZWN0aW9uIGludGVyZmFjZSB0
aGF0IGNhbiBzaXQgaW4gZnJvbnQgb2YgQVBTQ29ubmVjdGlvbiwgYW5kCisgICAgICAgIGEgZmFr
ZSBpbnRlcmZhY2UgdGhhdCB3aWxsIGJlIGZsZXNoZWQgb3V0IGZvciB0ZXN0aW5nIHB1cnBvc2Vz
LgorCisgICAgICAgICogQ29uZmlndXJhdGlvbnMvV2ViS2l0LnhjY29uZmlnOgorICAgICAgICAq
IFBsYXRmb3JtL3NwaS9Db2NvYS9BcHBsZVB1c2hTZXJ2aWNlU1BJLmg6IEFkZGVkLgorICAgICAg
ICAqIFdlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAqIHdlYnB1c2hk
L0FwcGxlUHVzaFNlcnZpY2VDb25uZWN0aW9uLmg6IEFkZGVkLgorICAgICAgICAqIHdlYnB1c2hk
L0FwcGxlUHVzaFNlcnZpY2VDb25uZWN0aW9uLm1tOiBBZGRlZC4KKyAgICAgICAgKC1bX1dLQVBT
Q29ubmVjdGlvbkRlbGVnYXRlIGluaXRXaXRoQ29ubmVjdGlvbjpdKToKKyAgICAgICAgKC1bX1dL
QVBTQ29ubmVjdGlvbkRlbGVnYXRlIGNvbm5lY3Rpb246ZGlkUmVjZWl2ZVB1YmxpY1Rva2VuOl0p
OgorICAgICAgICAoLVtfV0tBUFNDb25uZWN0aW9uRGVsZWdhdGUgY29ubmVjdGlvbjpkaWRSZWNl
aXZlSW5jb21pbmdNZXNzYWdlOl0pOgorICAgICAgICAoV2ViUHVzaEQ6OkFwcGxlUHVzaFNlcnZp
Y2VDb25uZWN0aW9uOjpBcHBsZVB1c2hTZXJ2aWNlQ29ubmVjdGlvbik6CisgICAgICAgIChXZWJQ
dXNoRDo6bWFrZVRva2VuSW5mbyk6CisgICAgICAgIChXZWJQdXNoRDo6QXBwbGVQdXNoU2Vydmlj
ZUNvbm5lY3Rpb246OnN1YnNjcmliZSk6CisgICAgICAgIChXZWJQdXNoRDo6QXBwbGVQdXNoU2Vy
dmljZUNvbm5lY3Rpb246OnVuc3Vic2NyaWJlKToKKyAgICAgICAgKFdlYlB1c2hEOjpBcHBsZVB1
c2hTZXJ2aWNlQ29ubmVjdGlvbjo6ZW5hYmxlZFRvcGljcyk6CisgICAgICAgIChXZWJQdXNoRDo6
QXBwbGVQdXNoU2VydmljZUNvbm5lY3Rpb246Omlnbm9yZWRUb3BpY3MpOgorICAgICAgICAoV2Vi
UHVzaEQ6OkFwcGxlUHVzaFNlcnZpY2VDb25uZWN0aW9uOjpvcHBvcnR1bmlzdGljVG9waWNzKToK
KyAgICAgICAgKFdlYlB1c2hEOjpBcHBsZVB1c2hTZXJ2aWNlQ29ubmVjdGlvbjo6bm9uV2FraW5n
VG9waWNzKToKKyAgICAgICAgKFdlYlB1c2hEOjpBcHBsZVB1c2hTZXJ2aWNlQ29ubmVjdGlvbjo6
c2V0RW5hYmxlZFRvcGljcyk6CisgICAgICAgIChXZWJQdXNoRDo6QXBwbGVQdXNoU2VydmljZUNv
bm5lY3Rpb246OnNldElnbm9yZWRUb3BpY3MpOgorICAgICAgICAoV2ViUHVzaEQ6OkFwcGxlUHVz
aFNlcnZpY2VDb25uZWN0aW9uOjpzZXRPcHBvcnR1bmlzdGljVG9waWNzKToKKyAgICAgICAgKFdl
YlB1c2hEOjpBcHBsZVB1c2hTZXJ2aWNlQ29ubmVjdGlvbjo6c2V0Tm9uV2FraW5nVG9waWNzKToK
KyAgICAgICAgKFdlYlB1c2hEOjpBcHBsZVB1c2hTZXJ2aWNlQ29ubmVjdGlvbjo6c2V0VG9waWNM
aXN0cyk6CisgICAgICAgICogd2VicHVzaGQvRmFrZVB1c2hTZXJ2aWNlQ29ubmVjdGlvbi5oOiBB
ZGRlZC4KKyAgICAgICAgKiB3ZWJwdXNoZC9GYWtlUHVzaFNlcnZpY2VDb25uZWN0aW9uLm1tOiBB
ZGRlZC4KKyAgICAgICAgKFdlYlB1c2hEOjpGYWtlUHVzaFNlcnZpY2VDb25uZWN0aW9uOjpGYWtl
UHVzaFNlcnZpY2VDb25uZWN0aW9uKToKKyAgICAgICAgKFdlYlB1c2hEOjpGYWtlUHVzaFNlcnZp
Y2VDb25uZWN0aW9uOjpzdWJzY3JpYmUpOgorICAgICAgICAoV2ViUHVzaEQ6OkZha2VQdXNoU2Vy
dmljZUNvbm5lY3Rpb246OnVuc3Vic2NyaWJlKToKKyAgICAgICAgKFdlYlB1c2hEOjpGYWtlUHVz
aFNlcnZpY2VDb25uZWN0aW9uOjplbmFibGVkVG9waWNzKToKKyAgICAgICAgKFdlYlB1c2hEOjpG
YWtlUHVzaFNlcnZpY2VDb25uZWN0aW9uOjppZ25vcmVkVG9waWNzKToKKyAgICAgICAgKFdlYlB1
c2hEOjpGYWtlUHVzaFNlcnZpY2VDb25uZWN0aW9uOjpvcHBvcnR1bmlzdGljVG9waWNzKToKKyAg
ICAgICAgKFdlYlB1c2hEOjpGYWtlUHVzaFNlcnZpY2VDb25uZWN0aW9uOjpub25XYWtpbmdUb3Bp
Y3MpOgorICAgICAgICAoV2ViUHVzaEQ6OkZha2VQdXNoU2VydmljZUNvbm5lY3Rpb246OnNldEVu
YWJsZWRUb3BpY3MpOgorICAgICAgICAoV2ViUHVzaEQ6OkZha2VQdXNoU2VydmljZUNvbm5lY3Rp
b246OnNldElnbm9yZWRUb3BpY3MpOgorICAgICAgICAoV2ViUHVzaEQ6OkZha2VQdXNoU2Vydmlj
ZUNvbm5lY3Rpb246OnNldE9wcG9ydHVuaXN0aWNUb3BpY3MpOgorICAgICAgICAoV2ViUHVzaEQ6
OkZha2VQdXNoU2VydmljZUNvbm5lY3Rpb246OnNldE5vbldha2luZ1RvcGljcyk6CisgICAgICAg
IChXZWJQdXNoRDo6RmFrZVB1c2hTZXJ2aWNlQ29ubmVjdGlvbjo6c2V0VG9waWNMaXN0cyk6Cisg
ICAgICAgICogd2VicHVzaGQvUHVzaFNlcnZpY2VDb25uZWN0aW9uLmg6IEFkZGVkLgorICAgICAg
ICAqIHdlYnB1c2hkL1B1c2hTZXJ2aWNlQ29ubmVjdGlvbi5tbTogQWRkZWQuCisgICAgICAgIChX
ZWJQdXNoRDo6UHVzaFNlcnZpY2VDb25uZWN0aW9uOjpzdGFydExpc3RlbmluZ0ZvclB1c2hNZXNz
YWdlcyk6CisgICAgICAgIChXZWJQdXNoRDo6UHVzaFNlcnZpY2VDb25uZWN0aW9uOjpkaWRSZWNl
aXZlUHVzaE1lc3NhZ2UpOgorCiAyMDIyLTAxLTI4ICBGdWppaSBIaXJvbm9yaSAgPEhpcm9ub3Jp
LkZ1amlpQHNvbnkuY29tPgogCiAgICAgICAgIFtXaW5DYWlyb10gV2ViS2l0VGVzdFJ1bm5lciBz
aG91bGQgc3VwcG9ydCBwaXhlbCBkdW1wIGZvciBhY2NlbGVyYXRlZCBjb21wb3NpdGluZyBtb2Rl
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi9QbGF0Zm9ybUhhdmUuaCBiL1NvdXJjZS9XVEYv
d3RmL1BsYXRmb3JtSGF2ZS5oCmluZGV4IGEwNDc5OGUzYjQwYWY0ZGRjMmIwOTA4ZTM2OTU1NWQ1
NDA2NjhkMzMuLjhiYTY5ZTZhYjVkNjMzNzgxNzBkMTNjMjYzMzM4ZWFjNWNlMGE2NWYgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XVEYvd3RmL1BsYXRmb3JtSGF2ZS5oCisrKyBiL1NvdXJjZS9XVEYvd3Rm
L1BsYXRmb3JtSGF2ZS5oCkBAIC0xMTYzLDMgKzExNjMsOCBAQAogICAgIHx8IChQTEFURk9STShX
QVRDSE9TKSAmJiBfX1dBVENIX09TX1ZFUlNJT05fTUFYX0FMTE9XRUQgPj0gODA1MDApCiAjZGVm
aW5lIEhBVkVfQ0ZORVRXT1JLX0RJU0FCTEVfQ0FDSEVfU1BJIDEKICNlbmRpZgorCisjaWYgKChQ
TEFURk9STShNQUMpICYmIF9fTUFDX09TX1hfVkVSU0lPTl9NSU5fUkVRVUlSRUQgPj0gMTMwMDAw
KSBcCisgICAgfHwgKFBMQVRGT1JNKElPUykgJiYgX19JUEhPTkVfT1NfVkVSU0lPTl9NSU5fUkVR
VUlSRUQgPj0gMTYwMDAwKSkKKyNkZWZpbmUgSEFWRV9BUFBMRV9QVVNIX1NFUlZJQ0VfVVJMX1RP
S0VOX1NVUFBPUlQgMQorI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0NvbmZpZ3Vy
YXRpb25zL1dlYktpdC54Y2NvbmZpZyBiL1NvdXJjZS9XZWJLaXQvQ29uZmlndXJhdGlvbnMvV2Vi
S2l0LnhjY29uZmlnCmluZGV4IGQ0NDkzMWIzODI4M2YzY2MxMWUxM2E1MTBiMzg3ZDIxNjNhOTEw
MTAuLjhkM2Q5NmQ1NTFiZjY3Zjk4NDU0YzExYTdjZTQ3ZjFkZDFlZjE4OGMgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvQ29uZmlndXJhdGlvbnMvV2ViS2l0LnhjY29uZmlnCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ29uZmlndXJhdGlvbnMvV2ViS2l0LnhjY29uZmlnCkBAIC0xNTUsNyArMTU1LDcg
QEAgV0tfTElCTkVUV09SS0VYVEVOU0lPTl9MREZMQUdTX21hY2NhdGFseXN0ID0gLWxuZXR3b3Jr
ZXh0ZW5zaW9uOwogV0tfTElCTkVUV09SS0VYVEVOU0lPTl9MREZMQUdTX21hY29zeCA9IC13ZWFr
X2xpYnJhcnkgL3Vzci9saWIvbGlibmV0d29ya2V4dGVuc2lvbi5keWxpYjsKIFdLX0xJQk5FVFdP
UktFWFRFTlNJT05fTERGTEFHU190dm9zID0gOwogCi1GUkFNRVdPUktfQU5EX0xJQlJBUllfTERG
TEFHUyA9IC1sb2JqYyAtZnJhbWV3b3JrIENGTmV0d29yayAtZnJhbWV3b3JrIENvcmVBdWRpbyAt
ZnJhbWV3b3JrIENvcmVGb3VuZGF0aW9uIC1mcmFtZXdvcmsgQ29yZUdyYXBoaWNzIC1mcmFtZXdv
cmsgQ29yZVRleHQgLWZyYW1ld29yayBGb3VuZGF0aW9uIC1mcmFtZXdvcmsgSW1hZ2VJTyAtZnJh
bWV3b3JrIElPS2l0IC1mcmFtZXdvcmsgSU9TdXJmYWNlIC1mcmFtZXdvcmsgV2ViS2l0TGVnYWN5
IC1sbmV0d29yayAtZnJhbWV3b3JrIE1ldGFsICQoV0tfQUNDRVNTSUJJTElUWV9MREZMQUdTKSAk
KFdLX0FQUEtJVF9MREZMQUdTKSAkKFdLX0JBQ0tCT0FSRF9TRVJWSUNFU19MREZMQUdTKSAkKFdL
X1JVTk5JTkdCT0FSRF9TRVJWSUNFU19MREZMQUdTKSAkKFdLX0FVVEhLSVRfTERGTEFHUykgJChX
S19DQVJCT05fTERGTEFHUykgJChXS19DT05UQUNUU19MREZMQUdTKSAkKFdLX0NPUkVfUFJFRElD
VElPTl9MREZMQUdTKSAkKFdLX0NPUkVfU0VSVklDRVNfTERGTEFHUykgJChXS19HUkFQSElDU19T
RVJWSUNFU19MREZMQUdTKSAkKFdLX0xJQk5FVFdPUktFWFRFTlNJT05fTERGTEFHUykgJChXS19M
SUJTQU5EQk9YX0xERkxBR1MpICQoV0tfTElCV0VCUlRDX0xERkxBR1MpICQoV0tfTU9CSUxFX0NP
UkVfU0VSVklDRVNfTERGTEFHUykgJChXS19NT0JJTEVfR0VTVEFMVF9MREZMQUdTKSAkKFdLX1BE
RktJVF9MREZMQUdTKSAkKFdLX1BST1RPVFlQRV9UT09MU19MREZMQUdTKSAkKFdLX1NBRkVfQlJP
V1NJTkdfTERGTEFHUykgJChXS19TRUNVUklUWV9JTlRFUkZBQ0VfTERGTEFHUykgJChXS19VSUtJ
VF9MREZMQUdTKSAkKFdLX1VOSUZPUk1fVFlQRV9JREVOVElGSUVSU19MREZMQUdTKSAkKFdLX1VS
TF9GT1JNQVRUSU5HX0xERkxBR1MpICQoV0tfV0VCSU5TUEVDVE9SVUlfTERGTEFHUykgJChXS19D
T09SRElOQVRPUl9MREZMQUdTKTsKK0ZSQU1FV09SS19BTkRfTElCUkFSWV9MREZMQUdTID0gLWxv
YmpjIC1mcmFtZXdvcmsgQXBwbGVQdXNoU2VydmljZSAtZnJhbWV3b3JrIENGTmV0d29yayAtZnJh
bWV3b3JrIENvcmVBdWRpbyAtZnJhbWV3b3JrIENvcmVGb3VuZGF0aW9uIC1mcmFtZXdvcmsgQ29y
ZUdyYXBoaWNzIC1mcmFtZXdvcmsgQ29yZVRleHQgLWZyYW1ld29yayBGb3VuZGF0aW9uIC1mcmFt
ZXdvcmsgSW1hZ2VJTyAtZnJhbWV3b3JrIElPS2l0IC1mcmFtZXdvcmsgSU9TdXJmYWNlIC1mcmFt
ZXdvcmsgV2ViS2l0TGVnYWN5IC1sbmV0d29yayAtZnJhbWV3b3JrIE1ldGFsICQoV0tfQUNDRVNT
SUJJTElUWV9MREZMQUdTKSAkKFdLX0FQUEtJVF9MREZMQUdTKSAkKFdLX0JBQ0tCT0FSRF9TRVJW
SUNFU19MREZMQUdTKSAkKFdLX1JVTk5JTkdCT0FSRF9TRVJWSUNFU19MREZMQUdTKSAkKFdLX0FV
VEhLSVRfTERGTEFHUykgJChXS19DQVJCT05fTERGTEFHUykgJChXS19DT05UQUNUU19MREZMQUdT
KSAkKFdLX0NPUkVfUFJFRElDVElPTl9MREZMQUdTKSAkKFdLX0NPUkVfU0VSVklDRVNfTERGTEFH
UykgJChXS19HUkFQSElDU19TRVJWSUNFU19MREZMQUdTKSAkKFdLX0xJQk5FVFdPUktFWFRFTlNJ
T05fTERGTEFHUykgJChXS19MSUJTQU5EQk9YX0xERkxBR1MpICQoV0tfTElCV0VCUlRDX0xERkxB
R1MpICQoV0tfTU9CSUxFX0NPUkVfU0VSVklDRVNfTERGTEFHUykgJChXS19NT0JJTEVfR0VTVEFM
VF9MREZMQUdTKSAkKFdLX1BERktJVF9MREZMQUdTKSAkKFdLX1BST1RPVFlQRV9UT09MU19MREZM
QUdTKSAkKFdLX1NBRkVfQlJPV1NJTkdfTERGTEFHUykgJChXS19TRUNVUklUWV9JTlRFUkZBQ0Vf
TERGTEFHUykgJChXS19VSUtJVF9MREZMQUdTKSAkKFdLX1VOSUZPUk1fVFlQRV9JREVOVElGSUVS
U19MREZMQUdTKSAkKFdLX1VSTF9GT1JNQVRUSU5HX0xERkxBR1MpICQoV0tfV0VCSU5TUEVDVE9S
VUlfTERGTEFHUykgJChXS19DT09SRElOQVRPUl9MREZMQUdTKTsKIAogLy8gUHJldmVudCBDKysg
c3RhbmRhcmQgbGlicmFyeSBiYXNpY19zdHJpbmdzdHJlYW0sIG9wZXJhdG9yIG5ldywgZGVsZXRl
IGFuZCB0aGVpciByZWxhdGVkIGV4Y2VwdGlvbiB0eXBlcyBmcm9tIGJlaW5nIGV4cG9ydGVkIGFz
IHdlYWsgc3ltYm9scy4KIFVORVhQT1JURURfU1lNQk9MX0xERkxBR1MgPSAtV2wsLXVuZXhwb3J0
ZWRfc3ltYm9sIC1XbCxfX1pUSVN0OWJhZF9hbGxvYyAtV2wsLXVuZXhwb3J0ZWRfc3ltYm9sIC1X
bCxfX1pUSVN0OWV4Y2VwdGlvbiAtV2wsLXVuZXhwb3J0ZWRfc3ltYm9sIC1XbCxfX1pUU1N0OWJh
ZF9hbGxvYyAtV2wsLXVuZXhwb3J0ZWRfc3ltYm9sIC1XbCxfX1pUU1N0OWV4Y2VwdGlvbiAtV2ws
LXVuZXhwb3J0ZWRfc3ltYm9sIC1XbCxfX1pkbFB2U18gLVdsLC11bmV4cG9ydGVkX3N5bWJvbCAt
V2wsX19abndtUHYgLVdsLC11bmV4cG9ydGVkX3N5bWJvbCAtV2wsX19abndtIC1XbCwtdW5leHBv
cnRlZF9zeW1ib2wgLVdsLF9fWlRWTlN0M19fMTE3YmFkX2Z1bmN0aW9uX2NhbGxFIC1XbCwtdW5l
eHBvcnRlZF9zeW1ib2wgLVdsLF9fWlRDTlN0M19fMTE4YmFzaWNfc3RyaW5nc3RyZWFtSWNOU18x
MWNoYXJfdHJhaXRzSWNFRU5TXzlhbGxvY2F0b3JJY0VFRUUwX05TXzEzYmFzaWNfaXN0cmVhbUlj
UzJfRUUgLVdsLC11bmV4cG9ydGVkX3N5bWJvbCAtV2wsX19aVENOU3QzX18xMThiYXNpY19zdHJp
bmdzdHJlYW1JY05TXzExY2hhcl90cmFpdHNJY0VFTlNfOWFsbG9jYXRvckljRUVFRTBfTlNfMTRi
YXNpY19pb3N0cmVhbUljUzJfRUUgLVdsLC11bmV4cG9ydGVkX3N5bWJvbCAtV2wsX19aVENOU3Qz
X18xMThiYXNpY19zdHJpbmdzdHJlYW1JY05TXzExY2hhcl90cmFpdHNJY0VFTlNfOWFsbG9jYXRv
ckljRUVFRTE2X05TXzEzYmFzaWNfb3N0cmVhbUljUzJfRUUgLVdsLC11bmV4cG9ydGVkX3N5bWJv
bCAtV2wsX19aVFROU3QzX18xMThiYXNpY19zdHJpbmdzdHJlYW1JY05TXzExY2hhcl90cmFpdHNJ
Y0VFTlNfOWFsbG9jYXRvckljRUVFRSAtV2wsLXVuZXhwb3J0ZWRfc3ltYm9sIC1XbCxfX1pUVk5T
dDNfXzExNWJhc2ljX3N0cmluZ2J1ZkljTlNfMTFjaGFyX3RyYWl0c0ljRUVOU185YWxsb2NhdG9y
SWNFRUVFIC1XbCwtdW5leHBvcnRlZF9zeW1ib2wgLVdsLF9fWlRWTlN0M19fMTE4YmFzaWNfc3Ry
aW5nc3RyZWFtSWNOU18xMWNoYXJfdHJhaXRzSWNFRU5TXzlhbGxvY2F0b3JJY0VFRUUgLVdsLC11
bmV4cG9ydGVkX3N5bWJvbCAtV2wsX19aVENOU3QzX18xMThiYXNpY19zdHJpbmdzdHJlYW1JY05T
XzExY2hhcl90cmFpdHNJY0VFTlNfOWFsbG9jYXRvckljRUVFRThfTlNfMTNiYXNpY19vc3RyZWFt
SWNTMl9FRTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvUGxhdGZvcm0vc3BpL0NvY29hL0Fw
cGxlUHVzaFNlcnZpY2VTUEkuaCBiL1NvdXJjZS9XZWJLaXQvUGxhdGZvcm0vc3BpL0NvY29hL0Fw
cGxlUHVzaFNlcnZpY2VTUEkuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi41NWY2YWQ2ZjYzNjkzZWUxMGIxYWFjZDQz
MWQ5ZTQ3MWNlYWQ4NjIzCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9QbGF0Zm9y
bS9zcGkvQ29jb2EvQXBwbGVQdXNoU2VydmljZVNQSS5oCkBAIC0wLDAgKzEsMTAyIEBACisvKgor
ICogQ29weXJpZ2h0IChDKSAyMDIyIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAq
CisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3
aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0
aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJp
YnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Cisg
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXBy
b2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1l
bnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1
dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5E
IElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElF
RCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBM
SUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJ
Q1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExF
IElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJ
TkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVO
VElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQg
T0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBP
UiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBB
TkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBT
VFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJ
U0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FS
RSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0Uu
CisgKi8KKworI2lmIFVTRShBUFBMRV9JTlRFUk5BTF9TREspCisKKyNpbXBvcnQgPEFwcGxlUHVz
aFNlcnZpY2UvQXBwbGVQdXNoU2VydmljZS5oPgorCisjZWxzZSAvLyBpZiAhVVNFKEFQUExFX0lO
VEVSTkFMX1NESykKKworI2ltcG9ydCA8Rm91bmRhdGlvbi9Gb3VuZGF0aW9uLmg+CisKK05TX0FT
U1VNRV9OT05OVUxMX0JFR0lOCisKK1dURl9FWFRFUk5fQ19CRUdJTgorZXh0ZXJuIE5TU3RyaW5n
ICpjb25zdCBBUFNFbnZpcm9ubWVudFByb2R1Y3Rpb247CisKK3R5cGVkZWYgTlNfRU5VTShOU0lu
dGVnZXIsIEFQU1VSTFRva2VuRXJyb3JDb2RlKSB7CisgICAgQVBTVVJMVG9rZW5FcnJvckNvZGVJ
bnZhbGlkQXJndW1lbnRzID0gMTAwLAorICAgIEFQU1VSTFRva2VuRXJyb3JDb2RlWFBDRXJyb3Ig
PSAxMDEsCisgICAgQVBTVVJMVG9rZW5FcnJvckNvZGVUb3BpY1NhbHRpbmdGYWlsZWQgPSAxMDIs
CisgICAgQVBTVVJMVG9rZW5FcnJvckNvZGVUb3BpY0FscmVhZHlJbkZpbHRlciA9IDEwMywKK307
CitXVEZfRVhURVJOX0NfRU5ECisKK0BjbGFzcyBBUFNDb25uZWN0aW9uOworQHByb3RvY29sIEFQ
U0Nvbm5lY3Rpb25EZWxlZ2F0ZTsKKworQGludGVyZmFjZSBBUFNNZXNzYWdlIDogTlNPYmplY3Q8
TlNDb2Rpbmc+CitAcHJvcGVydHkgKG5vbmF0b21pYywgcmV0YWluKSBOU1N0cmluZyAqdG9waWM7
CitAcHJvcGVydHkgKG5vbmF0b21pYywgcmV0YWluKSBOU0RpY3Rpb25hcnkgKnVzZXJJbmZvOwor
QHByb3BlcnR5IChub25hdG9taWMsIGFzc2lnbikgTlNVSW50ZWdlciBpZGVudGlmaWVyOworQGVu
ZAorCitAaW50ZXJmYWNlIEFQU0luY29taW5nTWVzc2FnZSA6IEFQU01lc3NhZ2UKK0BlbmQKKwor
I2lmIEhBVkUoQVBQTEVfUFVTSF9TRVJWSUNFX1VSTF9UT0tFTl9TVVBQT1JUKQorCitAaW50ZXJm
YWNlIEFQU1VSTFRva2VuIDogTlNPYmplY3Q8TlNTZWN1cmVDb2RpbmcsIE5TQ29weWluZz4KK0Bw
cm9wZXJ0eSAobm9uYXRvbWljLCBzdHJvbmcpIE5TU3RyaW5nICp0b2tlblVSTDsKK0BlbmQKKwor
QGludGVyZmFjZSBBUFNVUkxUb2tlbkluZm8gOiBOU09iamVjdDxOU1NlY3VyZUNvZGluZywgTlND
b3B5aW5nPgorLSAoaW5zdGFuY2V0eXBlKWluaXRXaXRoVG9waWM6KE5TU3RyaW5nICopdG9waWMg
dmFwaWRQdWJsaWNLZXk6KG51bGxhYmxlIE5TRGF0YSAqKXZhcGlkUHVibGljS2V5OworQGVuZAor
Cit0eXBlZGVmIHZvaWQoXkFQU0Nvbm5lY3Rpb25SZXF1ZXN0VVJMVG9rZW5Db21wbGV0aW9uKShB
UFNVUkxUb2tlbiAqIF9fbnVsbGFibGUgdG9rZW4sIE5TRXJyb3IgKiBfX251bGxhYmxlIGVycm9y
KTsKK3R5cGVkZWYgdm9pZCheQVBTQ29ubmVjdGlvbkludmFsaWRhdGVVUkxUb2tlbkNvbXBsZXRp
b24pKEJPT0wgc3VjY2VzcywgTlNFcnJvciAqIF9fbnVsbGFibGUgZXJyb3IpOworCisjZW5kaWYg
Ly8gSEFWRShBUFBMRV9QVVNIX1NFUlZJQ0VfVVJMX1RPS0VOX1NVUFBPUlQpCisKK0BpbnRlcmZh
Y2UgQVBTQ29ubmVjdGlvbiA6IE5TT2JqZWN0CisKKy0gKGluc3RhbmNldHlwZSlpbml0V2l0aEVu
dmlyb25tZW50TmFtZTooTlNTdHJpbmcgKillbnZpcm9ubWVudE5hbWUgbmFtZWREZWxlZ2F0ZVBv
cnQ6KG51bGxhYmxlIE5TU3RyaW5nICopbmFtZWREZWxlZ2F0ZVBvcnQgcXVldWU6KGRpc3BhdGNo
X3F1ZXVlX3QpcXVldWU7CisKKyNpZiBIQVZFKEFQUExFX1BVU0hfU0VSVklDRV9VUkxfVE9LRU5f
U1VQUE9SVCkKKy0gKHZvaWQpcmVxdWVzdFVSTFRva2VuRm9ySW5mbzooQVBTVVJMVG9rZW5JbmZv
ICopaW5mbyBjb21wbGV0aW9uOihBUFNDb25uZWN0aW9uUmVxdWVzdFVSTFRva2VuQ29tcGxldGlv
biljb21wbGV0aW9uOworLSAodm9pZClpbnZhbGlkYXRlVVJMVG9rZW5Gb3JJbmZvOihBUFNVUkxU
b2tlbkluZm8gKilpbmZvIGNvbXBsZXRpb246KEFQU0Nvbm5lY3Rpb25JbnZhbGlkYXRlVVJMVG9r
ZW5Db21wbGV0aW9uKWNvbXBsZXRpb247CisjZW5kaWYgLy8gSEFWRShBUFBMRV9QVVNIX1NFUlZJ
Q0VfVVJMX1RPS0VOX1NVUFBPUlQpCisKK0Bwcm9wZXJ0eSAobm9uYXRvbWljLCByZWFkd3JpdGUs
IGFzc2lnbiwgbnVsbGFibGUpIGlkPEFQU0Nvbm5lY3Rpb25EZWxlZ2F0ZT4gZGVsZWdhdGU7CisK
K0Bwcm9wZXJ0eSAobm9uYXRvbWljLCByZWFkd3JpdGUsIHN0cm9uZywgc2V0dGVyPV9zZXRFbmFi
bGVkVG9waWNzOiwgbnVsbGFibGUpIE5TQXJyYXk8TlNTdHJpbmcgKj4gKmVuYWJsZWRUb3BpY3M7
CitAcHJvcGVydHkgKG5vbmF0b21pYywgcmVhZHdyaXRlLCBzdHJvbmcsIHNldHRlcj1fc2V0SWdu
b3JlZFRvcGljczosIG51bGxhYmxlKSBOU0FycmF5PE5TU3RyaW5nICo+ICppZ25vcmVkVG9waWNz
OworQHByb3BlcnR5IChub25hdG9taWMsIHJlYWR3cml0ZSwgc3Ryb25nLCBzZXR0ZXI9X3NldE9w
cG9ydHVuaXN0aWNUb3BpY3M6LCBudWxsYWJsZSkgTlNBcnJheTxOU1N0cmluZyAqPiAqb3Bwb3J0
dW5pc3RpY1RvcGljczsKK0Bwcm9wZXJ0eSAobm9uYXRvbWljLCByZWFkd3JpdGUsIHN0cm9uZywg
c2V0dGVyPV9zZXROb25XYWtpbmdUb3BpY3M6LCBudWxsYWJsZSkgTlNBcnJheTxOU1N0cmluZyAq
PiAqbm9uV2FraW5nVG9waWNzOworCistICh2b2lkKXNldEVuYWJsZWRUb3BpY3M6KE5TQXJyYXk8
TlNTdHJpbmcgKj4gKillbmFibGVkVG9waWNzIGlnbm9yZWRUb3BpY3M6KE5TQXJyYXk8TlNTdHJp
bmcgKj4gKilpZ25vcmVkVG9waWNzIG9wcG9ydHVuaXN0aWNUb3BpY3M6KE5TQXJyYXk8TlNTdHJp
bmcgKj4gKilvcHBvcnR1bmlzdGljVG9waWNzIG5vbldha2luZ1RvcGljczooTlNBcnJheTxOU1N0
cmluZyAqPiAqKW5vbldha2luZ1RvcGljczsKKworQGVuZAorCitAcHJvdG9jb2wgQVBTQ29ubmVj
dGlvbkRlbGVnYXRlPE5TT2JqZWN0PgorLSAodm9pZCljb25uZWN0aW9uOihBUFNDb25uZWN0aW9u
ICopY29ubmVjdGlvbiBkaWRSZWNlaXZlUHVibGljVG9rZW46KE5TRGF0YSAqKXB1YmxpY1Rva2Vu
OworQG9wdGlvbmFsCistICh2b2lkKWNvbm5lY3Rpb246KEFQU0Nvbm5lY3Rpb24gKiljb25uZWN0
aW9uIGRpZFJlY2VpdmVJbmNvbWluZ01lc3NhZ2U6KEFQU0luY29taW5nTWVzc2FnZSAqKW1lc3Nh
Z2U7CitAZW5kCisKK05TX0FTU1VNRV9OT05OVUxMX0VORAorCisjZW5kaWYgLy8gIVVTRShBUFBM
RV9JTlRFUk5BTF9TREspCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYktpdC54Y29kZXBy
b2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNlL1dlYktpdC9XZWJLaXQueGNvZGVwcm9qL3Byb2pl
Y3QucGJ4cHJvagppbmRleCA3NzkxMThiZDJmM2UwMzJjYTg3YzA3NGQyZTZiMGRiZTU0OWI2N2Vi
Li44ZWU2NTQ5NDdjNDA5NzQwMjE0MTAyZGMzMzMzZGI1ZGE2NmIxYzBmIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L1dlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1NvdXJj
ZS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTE5OTUsNiArMTk5
NSwxMyBAQAogCQlFNUNCQTc2NzI3QTMxOEUxMDBERjc4NTggLyogVW5pZmllZFNvdXJjZTExOS5j
cHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFNUNCQTc2
MDI3QTMxODc5MDBERjc4NTggLyogVW5pZmllZFNvdXJjZTExOS5jcHAgKi87IH07CiAJCUU1Q0JB
NzY4MjdBMzE4RTEwMERGNzg1OCAvKiBVbmlmaWVkU291cmNlMTE3LmNwcCBpbiBTb3VyY2VzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEU1Q0JBNzYyMjdBMzE4NzkwMERGNzg1
OCAvKiBVbmlmaWVkU291cmNlMTE3LmNwcCAqLzsgfTsKIAkJRTVERUZBNjgyNkY4RjQyNjAwQUI2
OERCIC8qIFBob3Rvc1VJU1BJLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSBFNURFRkE2NzI2RjhGNDI2MDBBQjY4REIgLyogUGhvdG9zVUlTUEkuaCAqLzsg
fTsKKwkJRUJBOEQzQUIyN0E1RTMxMzAwQ0I3OTAwIC8qIEFwcGxlUHVzaFNlcnZpY2VTUEkuaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEVCQThEM0FBMjdB
NUUzMTMwMENCNzkwMCAvKiBBcHBsZVB1c2hTZXJ2aWNlU1BJLmggKi87IH07CisJCUVCQThEM0Iy
MjdBNUUzM0YwMENCNzkwMCAvKiBBcHBsZVB1c2hTZXJ2aWNlQ29ubmVjdGlvbi5tbSBpbiBTb3Vy
Y2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEVCQThEM0FDMjdBNUUzM0Uw
MENCNzkwMCAvKiBBcHBsZVB1c2hTZXJ2aWNlQ29ubmVjdGlvbi5tbSAqLzsgfTsKKwkJRUJBOEQz
QjMyN0E1RTMzRjAwQ0I3OTAwIC8qIEZha2VQdXNoU2VydmljZUNvbm5lY3Rpb24uaCBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEVCQThEM0FEMjdBNUUzM0Uw
MENCNzkwMCAvKiBGYWtlUHVzaFNlcnZpY2VDb25uZWN0aW9uLmggKi87IH07CisJCUVCQThEM0I0
MjdBNUUzM0YwMENCNzkwMCAvKiBBcHBsZVB1c2hTZXJ2aWNlQ29ubmVjdGlvbi5oIGluIEhlYWRl
cnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRUJBOEQzQUUyN0E1RTMzRjAw
Q0I3OTAwIC8qIEFwcGxlUHVzaFNlcnZpY2VDb25uZWN0aW9uLmggKi87IH07CisJCUVCQThEM0I1
MjdBNUUzM0YwMENCNzkwMCAvKiBQdXNoU2VydmljZUNvbm5lY3Rpb24uaCBpbiBIZWFkZXJzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEVCQThEM0FGMjdBNUUzM0YwMENCNzkw
MCAvKiBQdXNoU2VydmljZUNvbm5lY3Rpb24uaCAqLzsgfTsKKwkJRUJBOEQzQjYyN0E1RTMzRjAw
Q0I3OTAwIC8qIEZha2VQdXNoU2VydmljZUNvbm5lY3Rpb24ubW0gaW4gU291cmNlcyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFQkE4RDNCMDI3QTVFMzNGMDBDQjc5MDAgLyog
RmFrZVB1c2hTZXJ2aWNlQ29ubmVjdGlvbi5tbSAqLzsgfTsKKwkJRUJBOEQzQjcyN0E1RTMzRjAw
Q0I3OTAwIC8qIFB1c2hTZXJ2aWNlQ29ubmVjdGlvbi5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEVCQThEM0IxMjdBNUUzM0YwMENCNzkwMCAvKiBQdXNo
U2VydmljZUNvbm5lY3Rpb24ubW0gKi87IH07CiAJCUVEODJBN0YyMTI4QzZGQUYwMDQ0NzdCMyAv
KiBXS0J1bmRsZVBhZ2VPdmVybGF5LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSAxQTIyRjBGRjEyODlGQ0Q5MDA4NUU3NEYgLyogV0tCdW5kbGVQYWdlT3Zl
cmxheS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJ
CUY0MDlCQTE4MUU2RTY0QkMwMDlEQTI4RSAvKiBXS0RyYWdEZXN0aW5hdGlvbkFjdGlvbi5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRjQwOUJBMTcxRTZF
NjRCMzAwOURBMjhFIC8qIFdLRHJhZ0Rlc3RpbmF0aW9uQWN0aW9uLmggKi87IHNldHRpbmdzID0g
e0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJRjQyOTk1MDcyNzBFMjM0RDAwMzIy
OThCIC8qIFN0cmVhbU1lc3NhZ2VSZWNlaXZlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gRjQyOTk1MDYyNzBFMjM0QzAwMzIyOThCIC8qIFN0cmVhbU1l
c3NhZ2VSZWNlaXZlci5oICovOyB9OwpAQCAtNjQzOSw2ICs2NDQ2LDEzIEBACiAJCUU1REVGQTY3
MjZGOEY0MjYwMEFCNjhEQiAvKiBQaG90b3NVSVNQSS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBQaG90b3NV
SVNQSS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlFQjBEMzEyRDI3NUFFMTMzMDA4
NjNEOEYgLyogY29tLmFwcGxlLndlYmtpdC53ZWJwdXNoZC5tYWMucGxpc3QgKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0
ZXh0LnBsaXN0LnhtbDsgcGF0aCA9IGNvbS5hcHBsZS53ZWJraXQud2VicHVzaGQubWFjLnBsaXN0
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlFQjBEMzEyRTI3NUFFMTMzMDA4NjNEOEYg
LyogY29tLmFwcGxlLndlYmtpdC53ZWJwdXNoZC5pb3MucGxpc3QgKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0LnBs
aXN0LnhtbDsgcGF0aCA9IGNvbS5hcHBsZS53ZWJraXQud2VicHVzaGQuaW9zLnBsaXN0OyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OworCQlFQkE4RDNBQTI3QTVFMzEzMDBDQjc5MDAgLyogQXBw
bGVQdXNoU2VydmljZVNQSS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBBcHBs
ZVB1c2hTZXJ2aWNlU1BJLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUVCQThEM0FD
MjdBNUUzM0UwMENCNzkwMCAvKiBBcHBsZVB1c2hTZXJ2aWNlQ29ubmVjdGlvbi5tbSAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IEFwcGxlUHVzaFNlcnZpY2VDb25uZWN0
aW9uLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlFQkE4RDNBRDI3QTVFMzNFMDBD
Qjc5MDAgLyogRmFrZVB1c2hTZXJ2aWNlQ29ubmVjdGlvbi5oICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jLmg7IHBhdGggPSBGYWtlUHVzaFNlcnZpY2VDb25uZWN0aW9uLmg7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CisJCUVCQThEM0FFMjdBNUUzM0YwMENCNzkwMCAvKiBBcHBsZVB1c2hTZXJ2
aWNlQ29ubmVjdGlvbi5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBBcHBsZVB1
c2hTZXJ2aWNlQ29ubmVjdGlvbi5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlFQkE4
RDNBRjI3QTVFMzNGMDBDQjc5MDAgLyogUHVzaFNlcnZpY2VDb25uZWN0aW9uLmggKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFB1c2hTZXJ2aWNlQ29ubmVjdGlvbi5oOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OworCQlFQkE4RDNCMDI3QTVFMzNGMDBDQjc5MDAgLyogRmFrZVB1
c2hTZXJ2aWNlQ29ubmVjdGlvbi5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsg
cGF0aCA9IEZha2VQdXNoU2VydmljZUNvbm5lY3Rpb24ubW07IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CisJCUVCQThEM0IxMjdBNUUzM0YwMENCNzkwMCAvKiBQdXNoU2VydmljZUNvbm5lY3Rp
b24ubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBQdXNoU2Vydmlj
ZUNvbm5lY3Rpb24ubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUVDQTY4MEQzMUU2
OTA0QjUwMDczMUQyMCAvKiBFeHRyYVByaXZhdGVTeW1ib2xzRm9yVEFQSS5oICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jLmg7IHBhdGggPSBFeHRyYVByaXZhdGVTeW1ib2xzRm9yVEFQSS5oOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlFQ0JGQzFEQjFFNkE0RDY2MDAwMzAwQzcgLyogRXh0
cmFQdWJsaWNTeW1ib2xzRm9yVEFQSS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBFeHRyYVB1YmxpY1N5bWJv
bHNGb3JUQVBJLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUYwMzY5Nzg3MTVGNEJG
MDUwMEMzQTgwRSAvKiBXZWJDb2xvclBpY2tlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNw
cC5jcHA7IHBhdGggPSBXZWJDb2xvclBpY2tlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CkBAIC04NjM0LDYgKzg2NDgsNyBAQAogCQkJCTU3MkVCQkRDMjUzOTIxODEwMDA1NTJCMyAv
KiBBcHBBdHRlc3RTUEkuaCAqLywKIAkJCQk5NTY1MDgzNzI2RDg3QTJCMDBFMTVDQjcgLyogQXBw
bGVNZWRpYVNlcnZpY2VzU1BJLmggKi8sCiAJCQkJOTU2NTA4MzgyNkQ4N0EyQjAwRTE1Q0I3IC8q
IEFwcGxlTWVkaWFTZXJ2aWNlc1VJU1BJLmggKi8sCisJCQkJRUJBOEQzQUEyN0E1RTMxMzAwQ0I3
OTAwIC8qIEFwcGxlUHVzaFNlcnZpY2VTUEkuaCAqLywKIAkJCQk1N0ZBQkIwRTI1ODE3Q0YwMDA1
OURDOTUgLyogQXV0aGVudGljYXRpb25TZXJ2aWNlc0NvcmVTUEkuaCAqLywKIAkJCQkxQTU3MDUx
MDFCRTQxMEU1MDA4NzRBRjEgLyogQmxvY2tTUEkuaCAqLywKIAkJCQlFNTA2MjA5MTI1NDIxMDIw
MDBDNDMwOTEgLyogQ29udGFjdHNVSVNQSS5oICovLApAQCAtMTAwNDQsOCArMTAwNTksMTIgQEAK
IAkJCQk1MTdCNUY2MzI3NUE4RDVDMDAyREMyMkQgLyogd2VicHVzaHRvb2wgKi8sCiAJCQkJNTE2
MEU5NTQyNzRCODg3MTAwNTY3Mzg4IC8qIEFwcEJ1bmRsZVJlcXVlc3QuaCAqLywKIAkJCQk1MTYw
RTk1MzI3NEI4ODcxMDA1NjczODggLyogQXBwQnVuZGxlUmVxdWVzdC5tbSAqLywKKwkJCQlFQkE4
RDNBRTI3QTVFMzNGMDBDQjc5MDAgLyogQXBwbGVQdXNoU2VydmljZUNvbm5lY3Rpb24uaCAqLywK
KwkJCQlFQkE4RDNBQzI3QTVFMzNFMDBDQjc5MDAgLyogQXBwbGVQdXNoU2VydmljZUNvbm5lY3Rp
b24ubW0gKi8sCiAJCQkJRUIwRDMxMkUyNzVBRTEzMzAwODYzRDhGIC8qIGNvbS5hcHBsZS53ZWJr
aXQud2VicHVzaGQuaW9zLnBsaXN0ICovLAogCQkJCUVCMEQzMTJEMjc1QUUxMzMwMDg2M0Q4RiAv
KiBjb20uYXBwbGUud2Via2l0LndlYnB1c2hkLm1hYy5wbGlzdCAqLywKKwkJCQlFQkE4RDNBRDI3
QTVFMzNFMDBDQjc5MDAgLyogRmFrZVB1c2hTZXJ2aWNlQ29ubmVjdGlvbi5oICovLAorCQkJCUVC
QThEM0IwMjdBNUUzM0YwMENCNzkwMCAvKiBGYWtlUHVzaFNlcnZpY2VDb25uZWN0aW9uLm1tICov
LAogCQkJCTUxRjdCQjc1Mjc0NDk4QkIwMEM0NUE3MiAvKiBNb2NrQXBwQnVuZGxlRm9yVGVzdGlu
Zy5oICovLAogCQkJCTUxRjdCQjc0Mjc0NDk4QkEwMEM0NUE3MiAvKiBNb2NrQXBwQnVuZGxlRm9y
VGVzdGluZy5tbSAqLywKIAkJCQk1MTYwRTk1QzI3NEMyQTAzMDA1NjczODggLyogTW9ja0FwcEJ1
bmRsZVJlZ2lzdHJ5LmggKi8sCkBAIC0xMDA1NCw2ICsxMDA3Myw4IEBACiAJCQkJNTE2MEU5NTgy
NzRDMEQ4ODAwNTY3Mzg4IC8qIFB1c2hBcHBCdW5kbGUubW0gKi8sCiAJCQkJNTFGN0JCNzkyNzQ0
QzUwNzAwQzQ1QTcyIC8qIFB1c2hDbGllbnRDb25uZWN0aW9uLmggKi8sCiAJCQkJNTFGN0JCN0Ey
NzQ0QzUwNzAwQzQ1QTcyIC8qIFB1c2hDbGllbnRDb25uZWN0aW9uLm1tICovLAorCQkJCUVCQThE
M0FGMjdBNUUzM0YwMENCNzkwMCAvKiBQdXNoU2VydmljZUNvbm5lY3Rpb24uaCAqLywKKwkJCQlF
QkE4RDNCMTI3QTVFMzNGMDBDQjc5MDAgLyogUHVzaFNlcnZpY2VDb25uZWN0aW9uLm1tICovLAog
CQkJCTUxN0I1Rjc3Mjc1RTk3OTUwMDJEQzIyRCAvKiB3ZWJwdXNoZC5jcHAgKi8sCiAJCQkJNTEy
Q0Q2OUQyNzIzMzkzQTAwRjdGOEVDIC8qIFdlYlB1c2hEYWVtb24uaCAqLywKIAkJCQk1MTJDRDY5
RTI3MjMzOTNBMDBGN0Y4RUMgLyogV2ViUHVzaERhZW1vbi5tbSAqLywKQEAgLTEyODY1LDYgKzEy
ODg2LDggQEAKIAkJCQlGNDhEMkE4NTIxNTgzQTdFMDBDNjc1MkIgLyogQXBwS2l0U1BJLmggaW4g
SGVhZGVycyAqLywKIAkJCQk5NTY1MDgzOTI2RDg3QTJCMDBFMTVDQjcgLyogQXBwbGVNZWRpYVNl
cnZpY2VzU1BJLmggaW4gSGVhZGVycyAqLywKIAkJCQk5NTY1MDgzQTI2RDg3QTJCMDBFMTVDQjcg
LyogQXBwbGVNZWRpYVNlcnZpY2VzVUlTUEkuaCBpbiBIZWFkZXJzICovLAorCQkJCUVCQThEM0I0
MjdBNUUzM0YwMENCNzkwMCAvKiBBcHBsZVB1c2hTZXJ2aWNlQ29ubmVjdGlvbi5oIGluIEhlYWRl
cnMgKi8sCisJCQkJRUJBOEQzQUIyN0E1RTMxMzAwQ0I3OTAwIC8qIEFwcGxlUHVzaFNlcnZpY2VT
UEkuaCBpbiBIZWFkZXJzICovLAogCQkJCUY0RUM5NEUzMjM1NkNDNTcwMDBCQjYxNCAvKiBBcHBs
aWNhdGlvblNlcnZpY2VzU1BJLmggaW4gSGVhZGVycyAqLywKIAkJCQkxQUQ0QzE5MzFCMzlGMzMy
MDBBQkMyOEUgLyogQXBwbGljYXRpb25TdGF0ZVRyYWNrZXIuaCBpbiBIZWFkZXJzICovLAogCQkJ
CTQ5MzEwMkJEMjY4M0YzRDAwMDJCQjg4NSAvKiBBcHBQcml2YWN5UmVwb3J0LmggaW4gSGVhZGVy
cyAqLywKQEAgLTEyOTU4LDYgKzEyOTgxLDcgQEAKIAkJCQk1MUIxNUE4NTEzODQzQTM5MDAzMjFB
RDggLyogRW52aXJvbm1lbnRVdGlsaXRpZXMuaCBpbiBIZWFkZXJzICovLAogCQkJCTFBQTU3NUZC
MTQ5NkI1MjYwMEE0RUUwNiAvKiBFdmVudERpc3BhdGNoZXIuaCBpbiBIZWFkZXJzICovLAogCQkJ
CTU3MkVCQkQ3MjUzN0VCQUUwMDA1NTJCMyAvKiBFeHRyYVByaXZhdGVTeW1ib2xzRm9yVEFQSS5o
IGluIEhlYWRlcnMgKi8sCisJCQkJRUJBOEQzQjMyN0E1RTMzRjAwQ0I3OTAwIC8qIEZha2VQdXNo
U2VydmljZUNvbm5lY3Rpb24uaCBpbiBIZWFkZXJzICovLAogCQkJCTU3QjgyNjQ4MjMwNTBDNTEw
MEI3MkVCMCAvKiBGaWRvU2VydmljZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJOTMxQTFCRTIyNkY4
NzAwOTAwODFBN0U1IC8qIEZpbGVTeXN0ZW1TdG9yYWdlRXJyb3IuaCBpbiBIZWFkZXJzICovLAog
CQkJCTkzMTJCQUQ2MjZGMzNDMjkwMEZEREY1RiAvKiBGaWxlU3lzdGVtU3RvcmFnZUhhbmRsZS5o
IGluIEhlYWRlcnMgKi8sCkBAIC0xMzIwMiw2ICsxMzIyNiw3IEBACiAJCQkJNTE3QjVGODEyNzVF
OTdCNjAwMkRDMjJEIC8qIFB1c2hBcHBCdW5kbGUuaCBpbiBIZWFkZXJzICovLAogCQkJCTUxN0I1
RjdEMjc1RTk3QjYwMDJEQzIyRCAvKiBQdXNoQ2xpZW50Q29ubmVjdGlvbi5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkJNTE3QjVGOTUyNzVFQkE2MzAwMkRDMjJEIC8qIFB1c2hNZXNzYWdlRm9yVGVzdGlu
Zy5oIGluIEhlYWRlcnMgKi8sCisJCQkJRUJBOEQzQjUyN0E1RTMzRjAwQ0I3OTAwIC8qIFB1c2hT
ZXJ2aWNlQ29ubmVjdGlvbi5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQTFFNjg4NzAxRjZFMkJBQjAw
NzAwNkE2IC8qIFF1YXJhbnRpbmVTUEkuaCBpbiBIZWFkZXJzICovLAogCQkJCTFBMEMyMjdFMjQ1
MTEzMEEwMEVENjE0RCAvKiBRdWlja0xvb2tUaHVtYm5haWxpbmdTb2Z0TGluay5oIGluIEhlYWRl
cnMgKi8sCiAJCQkJMUFFRTU3MjUyNDA5RjE0MjAwMjAwNUQ2IC8qIFF1aWNrTG9va1RodW1ibmFp
bExvYWRlci5oIGluIEhlYWRlcnMgKi8sCkBAIC0xNTM5NSw2ICsxNTQyMCw3IEBACiAJCQkJOTlF
NzE4OUEyMUY3OUQ5RTAwNTVFOTc1IC8qIF9XS1RvdWNoRXZlbnRHZW5lcmF0b3IubW0gaW4gU291
cmNlcyAqLywKIAkJCQk1NzJFQkJEQTI1MzhGNkI0MDAwNTUyQjMgLyogQXBwQXR0ZXN0SW50ZXJu
YWxTb2Z0TGluay5tbSBpbiBTb3VyY2VzICovLAogCQkJCTUxN0I1RjdFMjc1RTk3QjYwMDJEQzIy
RCAvKiBBcHBCdW5kbGVSZXF1ZXN0Lm1tIGluIFNvdXJjZXMgKi8sCisJCQkJRUJBOEQzQjIyN0E1
RTMzRjAwQ0I3OTAwIC8qIEFwcGxlUHVzaFNlcnZpY2VDb25uZWN0aW9uLm1tIGluIFNvdXJjZXMg
Ki8sCiAJCQkJMkRFQjFEMkUyMTI3NDczNjAwOTMzOTA2IC8qIEFyZ3VtZW50Q29kZXJzQ0YuY3Bw
IGluIFNvdXJjZXMgKi8sCiAJCQkJQ0Q0NTcwRDQyNDQxMUQwRjAwQTNEQ0VCIC8qIEF1ZGlvU2Vz
c2lvblJvdXRpbmdBcmJpdHJhdG9yLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUNENDU3MEQzMjQ0
MTEzQjUwMEEzRENFQiAvKiBBdWRpb1Nlc3Npb25Sb3V0aW5nQXJiaXRyYXRvclByb3h5TWVzc2Fn
ZVJlY2VpdmVyLmNwcCBpbiBTb3VyY2VzICovLApAQCAtMTU0MTIsNiArMTU0MzgsNyBAQAogCQkJ
CTFBNjQyMzA4MTJERDA5RUIwMENBQUUyQyAvKiBEcmF3aW5nQXJlYVByb3h5TWVzc2FnZVJlY2Vp
dmVyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUNEQ0RDOTlFMjQ4RkU4REEwMEE2OTUyMiAvKiBF
bmRvd21lbnRTdGF0ZVRyYWNrZXIubW0gaW4gU291cmNlcyAqLywKIAkJCQkxQUE1NzYwMjE0OTZC
OTc5MDBBNEVFMDYgLyogRXZlbnREaXNwYXRjaGVyTWVzc2FnZVJlY2VpdmVyLmNwcCBpbiBTb3Vy
Y2VzICovLAorCQkJCUVCQThEM0I2MjdBNUUzM0YwMENCNzkwMCAvKiBGYWtlUHVzaFNlcnZpY2VD
b25uZWN0aW9uLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJQ0RBOTNEQjEyMkY4QkNGNDAwNDkwQTY5
IC8qIEZ1bGxzY3JlZW5Ub3VjaFNlY2hldXJpc3RpY1BhcmFtZXRlcnMuY3BwIGluIFNvdXJjZXMg
Ki8sCiAJCQkJQzFBMTUyRDcyNEU1QTI5QTAwOTc4QzhCIC8qIEhhbmRsZVhQQ0VuZHBvaW50TWVz
c2FnZXMubW0gaW4gU291cmNlcyAqLywKIAkJCQkyNzQ5RjY0NDIxNDY1NjFCMDA4MzgwQkYgLyog
SW5qZWN0ZWRCdW5kbGVOb2RlSGFuZGxlLmNwcCBpbiBTb3VyY2VzICovLApAQCAtMTU0NTMsNiAr
MTU0ODAsNyBAQAogCQkJCTJENTRDMzFCMjEyRjREQTYwMDQ5QzE3NCAvKiBQcm9jZXNzTGF1bmNo
ZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJNTE3QjVGODIyNzVFOTdCNjAwMkRDMjJEIC8qIFB1
c2hBcHBCdW5kbGUubW0gaW4gU291cmNlcyAqLywKIAkJCQk1MTdCNUY3QjI3NUU5N0E5MDAyREMy
MkQgLyogUHVzaENsaWVudENvbm5lY3Rpb24ubW0gaW4gU291cmNlcyAqLywKKwkJCQlFQkE4RDNC
NzI3QTVFMzNGMDBDQjc5MDAgLyogUHVzaFNlcnZpY2VDb25uZWN0aW9uLm1tIGluIFNvdXJjZXMg
Ki8sCiAJCQkJMUEwQzIyN0YyNDUxMTMwQTAwRUQ2MTREIC8qIFF1aWNrTG9va1RodW1ibmFpbGlu
Z1NvZnRMaW5rLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJMUEwQzIyNUUyNDM1NzVDRDAwRUQ2MTRE
IC8qIFF1aWNrTG9va1RodW1ibmFpbExvYWRlci5tbSBpbiBTb3VyY2VzICovLAogCQkJCTlCMTIy
OUNFMjNGRjI1RjIwMDhDQTc1MSAvKiBSZW1vdGVBdWRpb0Rlc3RpbmF0aW9uTWFuYWdlci5jcHAg
aW4gU291cmNlcyAqLywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvd2VicHVzaGQvQXBwbGVQ
dXNoU2VydmljZUNvbm5lY3Rpb24uaCBiL1NvdXJjZS9XZWJLaXQvd2VicHVzaGQvQXBwbGVQdXNo
U2VydmljZUNvbm5lY3Rpb24uaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5jNTUzMzEzNTllYWFkZDM3ODA0Mjc4MWRl
OTdmZDgwY2YzMjE0ZWMyCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC93ZWJwdXNo
ZC9BcHBsZVB1c2hTZXJ2aWNlQ29ubmVjdGlvbi5oCkBAIC0wLDAgKzEsNjQgQEAKKy8qCisgKiBD
b3B5cmlnaHQgKEMpIDIwMjIgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAq
IFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGgg
b3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQg
dGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRp
b25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVj
ZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0
aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9u
LgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRT
IENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdB
UlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQg
V0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxB
UgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5D
LiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElS
RUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFM
IERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgor
ICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBS
T0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBP
TiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklD
VCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkK
KyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBF
VkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAq
LworCisjcHJhZ21hIG9uY2UKKworI2luY2x1ZGUgIkFwcGxlUHVzaFNlcnZpY2VTUEkuaCIKKyNp
bmNsdWRlICJQdXNoU2VydmljZUNvbm5lY3Rpb24uaCIKKyNpbmNsdWRlIDx3dGYvSGFzaE1hcC5o
PgorI2luY2x1ZGUgPHd0Zi9SZXRhaW5QdHIuaD4KKworbmFtZXNwYWNlIFdlYlB1c2hEIHsKKwor
Y2xhc3MgQXBwbGVQdXNoU2VydmljZUNvbm5lY3Rpb24gOiBwdWJsaWMgUHVzaFNlcnZpY2VDb25u
ZWN0aW9uIHsKKyAgICBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsKK3B1YmxpYzoKKyAgICBBcHBs
ZVB1c2hTZXJ2aWNlQ29ubmVjdGlvbihjb25zdCBTdHJpbmcmIGluY29taW5nUHVzaFNlcnZpY2VO
YW1lKTsKKyAgICB2aXJ0dWFsIH5BcHBsZVB1c2hTZXJ2aWNlQ29ubmVjdGlvbigpOworCisgICAg
dm9pZCBzdWJzY3JpYmUoY29uc3QgU3RyaW5nJiB0b3BpYywgY29uc3QgVmVjdG9yPHVpbnQ4X3Q+
JiB2YXBpZFB1YmxpY0tleSwgU3Vic2NyaWJlSGFuZGxlciYmKSBmaW5hbDsKKyAgICB2b2lkIHVu
c3Vic2NyaWJlKGNvbnN0IFN0cmluZyYgdG9waWMsIGNvbnN0IFZlY3Rvcjx1aW50OF90PiYgdmFw
aWRQdWJsaWNLZXksIFVuc3Vic2NyaWJlSGFuZGxlciYmKSBmaW5hbDsKKworICAgIFZlY3RvcjxT
dHJpbmc+IGVuYWJsZWRUb3BpY3MoKSBmaW5hbDsKKyAgICBWZWN0b3I8U3RyaW5nPiBpZ25vcmVk
VG9waWNzKCkgZmluYWw7CisgICAgVmVjdG9yPFN0cmluZz4gb3Bwb3J0dW5pc3RpY1RvcGljcygp
IGZpbmFsOworICAgIFZlY3RvcjxTdHJpbmc+IG5vbldha2luZ1RvcGljcygpIGZpbmFsOworCisg
ICAgdm9pZCBzZXRFbmFibGVkVG9waWNzKGNvbnN0IFZlY3RvcjxTdHJpbmc+JikgZmluYWw7Cisg
ICAgdm9pZCBzZXRJZ25vcmVkVG9waWNzKGNvbnN0IFZlY3RvcjxTdHJpbmc+JikgZmluYWw7Cisg
ICAgdm9pZCBzZXRPcHBvcnR1bmlzdGljVG9waWNzKGNvbnN0IFZlY3RvcjxTdHJpbmc+JikgZmlu
YWw7CisgICAgdm9pZCBzZXROb25XYWtpbmdUb3BpY3MoY29uc3QgVmVjdG9yPFN0cmluZz4mKSBm
aW5hbDsKKworICAgIHZvaWQgc2V0VG9waWNMaXN0cyhUb3BpY0xpc3RzJiYpIGZpbmFsOworCitw
cml2YXRlOgorICAgIFJldGFpblB0cjxBUFNDb25uZWN0aW9uPiBtX2Nvbm5lY3Rpb247CisgICAg
UmV0YWluUHRyPGlkPEFQU0Nvbm5lY3Rpb25EZWxlZ2F0ZT4+IG1fZGVsZWdhdGU7CisgICAgdW5z
aWduZWQgbV9oYW5kbGVySWRlbnRpZmllciB7IDAgfTsKKyAgICBIYXNoTWFwPHVuc2lnbmVkLCBT
dWJzY3JpYmVIYW5kbGVyPiBtX3N1YnNjcmliZUhhbmRsZXJzOworICAgIEhhc2hNYXA8dW5zaWdu
ZWQsIFVuc3Vic2NyaWJlSGFuZGxlcj4gbV91bnN1YnNjcmliZUhhbmRsZXJzOworfTsKKworfSAv
LyBuYW1lc3BhY2UgV2ViUHVzaEQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvd2VicHVzaGQv
QXBwbGVQdXNoU2VydmljZUNvbm5lY3Rpb24ubW0gYi9Tb3VyY2UvV2ViS2l0L3dlYnB1c2hkL0Fw
cGxlUHVzaFNlcnZpY2VDb25uZWN0aW9uLm1tCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjM3MDRmZThkYWVmNzMzNDE4
NmY4NjJmYTFjMWQxYzBjMzJiYmMwZTkKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0
L3dlYnB1c2hkL0FwcGxlUHVzaFNlcnZpY2VDb25uZWN0aW9uLm1tCkBAIC0wLDAgKzEsMTY0IEBA
CisvKgorICogQ29weXJpZ2h0IChDKSAyMDIyIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZl
ZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZv
cm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92
aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJl
ZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJp
Z2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVz
dCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAg
ZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRp
c3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElO
Qy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1Ig
SU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRI
RSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBB
IFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxM
IEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElS
RUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09O
U0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VS
RU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBE
QVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENB
VVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRS
QUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBP
VEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBT
T0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBE
QU1BR0UuCisgKi8KKworI2ltcG9ydCAiY29uZmlnLmgiCisjaW1wb3J0ICJBcHBsZVB1c2hTZXJ2
aWNlQ29ubmVjdGlvbi5oIgorCisjaW1wb3J0IDx3dGYvY29jb2EvVmVjdG9yQ29jb2EuaD4KKwor
QGludGVyZmFjZSBfV0tBUFNDb25uZWN0aW9uRGVsZWdhdGUgOiBOU09iamVjdDxBUFNDb25uZWN0
aW9uRGVsZWdhdGU+IHsKKyAgICBXZWJQdXNoRDo6QXBwbGVQdXNoU2VydmljZUNvbm5lY3Rpb24g
Kl9jb25uZWN0aW9uOworfQorQGVuZAorCitAaW1wbGVtZW50YXRpb24gX1dLQVBTQ29ubmVjdGlv
bkRlbGVnYXRlCisKKy0gKGluc3RhbmNldHlwZSlpbml0V2l0aENvbm5lY3Rpb246KFdlYlB1c2hE
OjpBcHBsZVB1c2hTZXJ2aWNlQ29ubmVjdGlvbiAqKWNvbm5lY3Rpb24KK3sKKyAgICBpZiAoKHNl
bGYgPSBbc3VwZXIgaW5pdF0pKQorICAgICAgICBfY29ubmVjdGlvbiA9IGNvbm5lY3Rpb247Cisg
ICAgcmV0dXJuIHNlbGY7Cit9CisKKy0gKHZvaWQpY29ubmVjdGlvbjooQVBTQ29ubmVjdGlvbiAq
KWNvbm5lY3Rpb24gZGlkUmVjZWl2ZVB1YmxpY1Rva2VuOihOU0RhdGEgKilwdWJsaWNUb2tlbgor
eworICAgIFVOVVNFRF9QQVJBTShjb25uZWN0aW9uKTsKKyAgICBVTlVTRURfUEFSQU0ocHVibGlj
VG9rZW4pOworfQorCistICh2b2lkKWNvbm5lY3Rpb246KEFQU0Nvbm5lY3Rpb24gKiljb25uZWN0
aW9uIGRpZFJlY2VpdmVJbmNvbWluZ01lc3NhZ2U6KEFQU0luY29taW5nTWVzc2FnZSAqKW1lc3Nh
Z2UKK3sKKyAgICBVTlVTRURfUEFSQU0oY29ubmVjdGlvbik7CisgICAgX2Nvbm5lY3Rpb24tPmRp
ZFJlY2VpdmVQdXNoTWVzc2FnZShtZXNzYWdlLnRvcGljLCBtZXNzYWdlLnVzZXJJbmZvKTsKK30K
KworQGVuZAorCituYW1lc3BhY2UgV2ViUHVzaEQgeworCitBcHBsZVB1c2hTZXJ2aWNlQ29ubmVj
dGlvbjo6QXBwbGVQdXNoU2VydmljZUNvbm5lY3Rpb24oY29uc3QgU3RyaW5nJiBpbmNvbWluZ1B1
c2hTZXJ2aWNlTmFtZSkKK3sKKyAgICBtX2Nvbm5lY3Rpb24gPSBhZG9wdE5TKFtbQVBTQ29ubmVj
dGlvbiBhbGxvY10gaW5pdFdpdGhFbnZpcm9ubWVudE5hbWU6QVBTRW52aXJvbm1lbnRQcm9kdWN0
aW9uIG5hbWVkRGVsZWdhdGVQb3J0OmluY29taW5nUHVzaFNlcnZpY2VOYW1lIHF1ZXVlOmRpc3Bh
dGNoX2dldF9tYWluX3F1ZXVlKCldKTsKKyAgICBtX2RlbGVnYXRlID0gYWRvcHROUyhbW19XS0FQ
U0Nvbm5lY3Rpb25EZWxlZ2F0ZSBhbGxvY10gaW5pdFdpdGhDb25uZWN0aW9uOnRoaXNdKTsKKyAg
ICBbbV9jb25uZWN0aW9uIHNldERlbGVnYXRlOm1fZGVsZWdhdGUuZ2V0KCldOworfQorCitBcHBs
ZVB1c2hTZXJ2aWNlQ29ubmVjdGlvbjo6fkFwcGxlUHVzaFNlcnZpY2VDb25uZWN0aW9uKCkgPSBk
ZWZhdWx0OworCisjaWYgSEFWRShBUFBMRV9QVVNIX1NFUlZJQ0VfVVJMX1RPS0VOX1NVUFBPUlQp
CisKK3N0YXRpYyBSZXRhaW5QdHI8QVBTVVJMVG9rZW5JbmZvPiBtYWtlVG9rZW5JbmZvKGNvbnN0
IFN0cmluZyYgdG9waWMsIGNvbnN0IFZlY3Rvcjx1aW50OF90PiYgdmFwaWRQdWJsaWNLZXkpCit7
CisgICAgYXV0byBzZXJ2ZXJQdWJsaWNLZXkgPSBhZG9wdE5TKFtbTlNEYXRhIGFsbG9jXSBpbml0
V2l0aEJ5dGVzOnZhcGlkUHVibGljS2V5LmRhdGEoKSBsZW5ndGg6dmFwaWRQdWJsaWNLZXkuc2l6
ZSgpXSk7CisgICAgcmV0dXJuIGFkb3B0TlMoW1tBUFNVUkxUb2tlbkluZm8gYWxsb2NdIGluaXRX
aXRoVG9waWM6dG9waWMgdmFwaWRQdWJsaWNLZXk6c2VydmVyUHVibGljS2V5LmdldCgpXSk7Cit9
CisKK3ZvaWQgQXBwbGVQdXNoU2VydmljZUNvbm5lY3Rpb246OnN1YnNjcmliZShjb25zdCBTdHJp
bmcmIHRvcGljLCBjb25zdCBWZWN0b3I8dWludDhfdD4mIHZhcGlkUHVibGljS2V5LCBTdWJzY3Jp
YmVIYW5kbGVyJiYgc3Vic2NyaWJlSGFuZGxlcikKK3sKKyAgICAvLyBTdGFzaCB0aGUgY29tcGxl
dGlvbiBoYW5kbGVyIGF3YXkgYW5kIGxvb2sgaXQgdXAgYnkgaWQgc28gdGhhdCB3ZSBjYW4gZW5z
dXJlIGl0IGdldHMgZGVzdHJ1Y3RlZCBvbiB0aGUgbWFpbiB0aHJlYWQuIElmIHdlIG1vdmUgdGhl
IGhhbmRsZXIgYW5kIGNhcHR1cmUgaXQgaW4gdGhlIE9iai1DIGJsb2NrLCBpdCBtaWdodCBnZXQg
ZGVzdHJ1Y3RlZCBvbiBhIHNlY29uZGFyeSB0aHJlYWQgc2luY2UgdGhpcyBjb21wbGV0aW9uIGJs
b2NrIG1vdmVzIGJldHdlZW4gZGlmZmVyZW50IGRpc3BhdGNoIHF1ZXVlcyBpbiB0aGUgQVBTIGlt
cGxlbWVudGF0aW9uLgorICAgIGF1dG8gaWRlbnRpZmllciA9ICsrbV9oYW5kbGVySWRlbnRpZmll
cjsKKyAgICBtX3N1YnNjcmliZUhhbmRsZXJzLmFkZChpZGVudGlmaWVyLCBXVEZNb3ZlKHN1YnNj
cmliZUhhbmRsZXIpKTsKKworICAgIFttX2Nvbm5lY3Rpb24gcmVxdWVzdFVSTFRva2VuRm9ySW5m
bzptYWtlVG9rZW5JbmZvKHRvcGljLCB2YXBpZFB1YmxpY0tleSkuZ2V0KCkgY29tcGxldGlvbjpe
KEFQU1VSTFRva2VuICp0b2tlbiwgTlNFcnJvciAqZXJyb3IpIHsKKyAgICAgICAgYXV0byBoYW5k
bGVyID0gbV9zdWJzY3JpYmVIYW5kbGVycy50YWtlKGlkZW50aWZpZXIpOworICAgICAgICBoYW5k
bGVyKHRva2VuLnRva2VuVVJMLCBlcnJvcik7CisgICAgfV07Cit9CisKK3ZvaWQgQXBwbGVQdXNo
U2VydmljZUNvbm5lY3Rpb246OnVuc3Vic2NyaWJlKGNvbnN0IFN0cmluZyYgdG9waWMsIGNvbnN0
IFZlY3Rvcjx1aW50OF90PiYgdmFwaWRQdWJsaWNLZXksIFVuc3Vic2NyaWJlSGFuZGxlciYmIHVu
c3Vic2NyaWJlSGFuZGxlcikKK3sKKyAgICAvLyBTZWUgc3Vic2NyaWJlIGZvciB3aHkgd2Ugc3Rh
c2ggdGhlIGhhbmRsZXIgaW50byBhIG1hcC4KKyAgICBhdXRvIGlkZW50aWZpZXIgPSArK21faGFu
ZGxlcklkZW50aWZpZXI7CisgICAgbV91bnN1YnNjcmliZUhhbmRsZXJzLmFkZChpZGVudGlmaWVy
LCBXVEZNb3ZlKHVuc3Vic2NyaWJlSGFuZGxlcikpOworCisgICAgW21fY29ubmVjdGlvbiBpbnZh
bGlkYXRlVVJMVG9rZW5Gb3JJbmZvOm1ha2VUb2tlbkluZm8odG9waWMsIHZhcGlkUHVibGljS2V5
KS5nZXQoKSBjb21wbGV0aW9uOl4oQk9PTCBzdWNjZXNzLCBOU0Vycm9yICplcnJvcikgeworICAg
ICAgICAvLyBGSVhNRTogcmVtb3ZlIHRoaXMgb25jZSBBUFMgc3RvcHMgY2FsbGluZyBiYWNrIG9u
IHRoZSB3cm9uZyBxdWV1ZSAocmRhcjovLzg4MTAwMjc1KS4KKyAgICAgICAgZGlzcGF0Y2hfYXN5
bmMoZGlzcGF0Y2hfZ2V0X21haW5fcXVldWUoKSwgXnsKKyAgICAgICAgICAgIGF1dG8gaGFuZGxl
ciA9IG1fdW5zdWJzY3JpYmVIYW5kbGVycy50YWtlKGlkZW50aWZpZXIpOworICAgICAgICAgICAg
aGFuZGxlcihzdWNjZXNzLCBlcnJvcik7CisgICAgICAgIH0pOworICAgIH1dOworfQorCisjZWxz
ZQorCit2b2lkIEFwcGxlUHVzaFNlcnZpY2VDb25uZWN0aW9uOjpzdWJzY3JpYmUoY29uc3QgU3Ry
aW5nJiwgY29uc3QgVmVjdG9yPHVpbnQ4X3Q+JiwgU3Vic2NyaWJlSGFuZGxlciYmIGhhbmRsZXIp
Cit7CisgICAgaGFuZGxlcih7IH0sIFtOU0Vycm9yIGVycm9yV2l0aERvbWFpbjpOU0NvY29hRXJy
b3JEb21haW4gY29kZTpOU0ZlYXR1cmVVbnN1cHBvcnRlZEVycm9yIHVzZXJJbmZvOm5pbF0pOwor
fQorCit2b2lkIEFwcGxlUHVzaFNlcnZpY2VDb25uZWN0aW9uOjp1bnN1YnNjcmliZShjb25zdCBT
dHJpbmcmLCBjb25zdCBWZWN0b3I8dWludDhfdD4mLCBVbnN1YnNjcmliZUhhbmRsZXImJiBoYW5k
bGVyKQoreworICAgIGhhbmRsZXIoeyB9LCBbTlNFcnJvciBlcnJvcldpdGhEb21haW46TlNDb2Nv
YUVycm9yRG9tYWluIGNvZGU6TlNGZWF0dXJlVW5zdXBwb3J0ZWRFcnJvciB1c2VySW5mbzpuaWxd
KTsKK30KKworI2VuZGlmIC8vIEhBVkUoQVBQTEVfUFVTSF9TRVJWSUNFX1VSTF9UT0tFTl9TVVBQ
T1JUKQorCitWZWN0b3I8U3RyaW5nPiBBcHBsZVB1c2hTZXJ2aWNlQ29ubmVjdGlvbjo6ZW5hYmxl
ZFRvcGljcygpCit7CisgICAgcmV0dXJuIG1ha2VWZWN0b3I8U3RyaW5nPihbbV9jb25uZWN0aW9u
IGVuYWJsZWRUb3BpY3NdKTsKK30KKworVmVjdG9yPFN0cmluZz4gQXBwbGVQdXNoU2VydmljZUNv
bm5lY3Rpb246Omlnbm9yZWRUb3BpY3MoKQoreworICAgIHJldHVybiBtYWtlVmVjdG9yPFN0cmlu
Zz4oW21fY29ubmVjdGlvbiBpZ25vcmVkVG9waWNzXSk7Cit9CisKK1ZlY3RvcjxTdHJpbmc+IEFw
cGxlUHVzaFNlcnZpY2VDb25uZWN0aW9uOjpvcHBvcnR1bmlzdGljVG9waWNzKCkKK3sKKyAgICBy
ZXR1cm4gbWFrZVZlY3RvcjxTdHJpbmc+KFttX2Nvbm5lY3Rpb24gb3Bwb3J0dW5pc3RpY1RvcGlj
c10pOworfQorCitWZWN0b3I8U3RyaW5nPiBBcHBsZVB1c2hTZXJ2aWNlQ29ubmVjdGlvbjo6bm9u
V2FraW5nVG9waWNzKCkKK3sKKyAgICByZXR1cm4gbWFrZVZlY3RvcjxTdHJpbmc+KFttX2Nvbm5l
Y3Rpb24gbm9uV2FraW5nVG9waWNzXSk7Cit9CisKK3ZvaWQgQXBwbGVQdXNoU2VydmljZUNvbm5l
Y3Rpb246OnNldEVuYWJsZWRUb3BpY3MoY29uc3QgVmVjdG9yPFN0cmluZz4mIHRvcGljcykKK3sK
KyAgICBbbV9jb25uZWN0aW9uIF9zZXRFbmFibGVkVG9waWNzOmNyZWF0ZU5TQXJyYXkodG9waWNz
KS5nZXQoKV07Cit9CisKK3ZvaWQgQXBwbGVQdXNoU2VydmljZUNvbm5lY3Rpb246OnNldElnbm9y
ZWRUb3BpY3MoY29uc3QgVmVjdG9yPFN0cmluZz4mIHRvcGljcykKK3sKKyAgICBbbV9jb25uZWN0
aW9uIF9zZXRJZ25vcmVkVG9waWNzOmNyZWF0ZU5TQXJyYXkodG9waWNzKS5nZXQoKV07Cit9CisK
K3ZvaWQgQXBwbGVQdXNoU2VydmljZUNvbm5lY3Rpb246OnNldE9wcG9ydHVuaXN0aWNUb3BpY3Mo
Y29uc3QgVmVjdG9yPFN0cmluZz4mIHRvcGljcykKK3sKKyAgICBbbV9jb25uZWN0aW9uIF9zZXRP
cHBvcnR1bmlzdGljVG9waWNzOmNyZWF0ZU5TQXJyYXkodG9waWNzKS5nZXQoKV07Cit9CisKK3Zv
aWQgQXBwbGVQdXNoU2VydmljZUNvbm5lY3Rpb246OnNldE5vbldha2luZ1RvcGljcyhjb25zdCBW
ZWN0b3I8U3RyaW5nPiYgdG9waWNzKQoreworICAgIFttX2Nvbm5lY3Rpb24gX3NldE5vbldha2lu
Z1RvcGljczpjcmVhdGVOU0FycmF5KHRvcGljcykuZ2V0KCldOworfQorCit2b2lkIEFwcGxlUHVz
aFNlcnZpY2VDb25uZWN0aW9uOjpzZXRUb3BpY0xpc3RzKFRvcGljTGlzdHMmJiB0b3BpY0xpc3Rz
KQoreworICAgIFttX2Nvbm5lY3Rpb24gc2V0RW5hYmxlZFRvcGljczpjcmVhdGVOU0FycmF5KHRv
cGljTGlzdHMuZW5hYmxlZFRvcGljcykuZ2V0KCkgaWdub3JlZFRvcGljczpjcmVhdGVOU0FycmF5
KHRvcGljTGlzdHMuaWdub3JlZFRvcGljcykuZ2V0KCkgb3Bwb3J0dW5pc3RpY1RvcGljczpjcmVh
dGVOU0FycmF5KHRvcGljTGlzdHMub3Bwb3J0dW5pc3RpY1RvcGljcykuZ2V0KCkgbm9uV2FraW5n
VG9waWNzOmNyZWF0ZU5TQXJyYXkodG9waWNMaXN0cy5ub25XYWtpbmdUb3BpY3MpLmdldCgpXTsK
K30KKworfSAvLyBuYW1lc3BhY2UgV2ViUHVzaEQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
d2VicHVzaGQvRmFrZVB1c2hTZXJ2aWNlQ29ubmVjdGlvbi5oIGIvU291cmNlL1dlYktpdC93ZWJw
dXNoZC9GYWtlUHVzaFNlcnZpY2VDb25uZWN0aW9uLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMzhlODU1YmI0NDE0
ZGViMjIxYmU3YWMwYzQ3YmE1OGIxZGMzZGQxNAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9X
ZWJLaXQvd2VicHVzaGQvRmFrZVB1c2hTZXJ2aWNlQ29ubmVjdGlvbi5oCkBAIC0wLDAgKzEsNTYg
QEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjIgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2Vy
dmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkg
Zm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHBy
b3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4g
UmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBt
dXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAg
ICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUg
ZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUg
SU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBP
UiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICog
VEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9S
IEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hB
TEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBE
SVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBD
T05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9D
VVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0Us
IERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIg
Q0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09O
VFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9S
IE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElT
IFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNI
IERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworI2luY2x1ZGUgIlB1c2hTZXJ2aWNlQ29u
bmVjdGlvbi5oIgorI2luY2x1ZGUgPHd0Zi9IYXNoTWFwLmg+CisjaW5jbHVkZSA8d3RmL1JldGFp
blB0ci5oPgorCituYW1lc3BhY2UgV2ViUHVzaEQgeworCitjbGFzcyBGYWtlUHVzaFNlcnZpY2VD
b25uZWN0aW9uIDogcHVibGljIFB1c2hTZXJ2aWNlQ29ubmVjdGlvbiB7CisgICAgV1RGX01BS0Vf
RkFTVF9BTExPQ0FURUQ7CitwdWJsaWM6CisgICAgRmFrZVB1c2hTZXJ2aWNlQ29ubmVjdGlvbigp
OworICAgIHZpcnR1YWwgfkZha2VQdXNoU2VydmljZUNvbm5lY3Rpb24oKTsKKworICAgIHZvaWQg
c3Vic2NyaWJlKGNvbnN0IFN0cmluZyYgdG9waWMsIGNvbnN0IFZlY3Rvcjx1aW50OF90PiYgdmFw
aWRQdWJsaWNLZXksIFN1YnNjcmliZUhhbmRsZXImJikgZmluYWw7CisgICAgdm9pZCB1bnN1YnNj
cmliZShjb25zdCBTdHJpbmcmIHRvcGljLCBjb25zdCBWZWN0b3I8dWludDhfdD4mIHZhcGlkUHVi
bGljS2V5LCBVbnN1YnNjcmliZUhhbmRsZXImJikgZmluYWw7CisKKyAgICBWZWN0b3I8U3RyaW5n
PiBlbmFibGVkVG9waWNzKCkgZmluYWw7CisgICAgVmVjdG9yPFN0cmluZz4gaWdub3JlZFRvcGlj
cygpIGZpbmFsOworICAgIFZlY3RvcjxTdHJpbmc+IG9wcG9ydHVuaXN0aWNUb3BpY3MoKSBmaW5h
bDsKKyAgICBWZWN0b3I8U3RyaW5nPiBub25XYWtpbmdUb3BpY3MoKSBmaW5hbDsKKworICAgIHZv
aWQgc2V0RW5hYmxlZFRvcGljcyhjb25zdCBWZWN0b3I8U3RyaW5nPiYpIGZpbmFsOworICAgIHZv
aWQgc2V0SWdub3JlZFRvcGljcyhjb25zdCBWZWN0b3I8U3RyaW5nPiYpIGZpbmFsOworICAgIHZv
aWQgc2V0T3Bwb3J0dW5pc3RpY1RvcGljcyhjb25zdCBWZWN0b3I8U3RyaW5nPiYpIGZpbmFsOwor
ICAgIHZvaWQgc2V0Tm9uV2FraW5nVG9waWNzKGNvbnN0IFZlY3RvcjxTdHJpbmc+JikgZmluYWw7
CisKKyAgICB2b2lkIHNldFRvcGljTGlzdHMoVG9waWNMaXN0cyYmKSBmaW5hbDsKK307CisKK30g
Ly8gbmFtZXNwYWNlIFdlYlB1c2hECmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L3dlYnB1c2hk
L0Zha2VQdXNoU2VydmljZUNvbm5lY3Rpb24ubW0gYi9Tb3VyY2UvV2ViS2l0L3dlYnB1c2hkL0Zh
a2VQdXNoU2VydmljZUNvbm5lY3Rpb24ubW0KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uY2EzMTM3NmVjZGEzYzY1NTI2
MjQ5NWQ2NGVlZTA4ODYyOGQyNWNiMgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQv
d2VicHVzaGQvRmFrZVB1c2hTZXJ2aWNlQ29ubmVjdGlvbi5tbQpAQCAtMCwwICsxLDg3IEBACisv
KgorICogQ29weXJpZ2h0IChDKSAyMDIyIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4K
KyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1z
LCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRl
ZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlz
dHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0
CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCBy
ZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9j
dW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3Ry
aWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4g
QU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1Q
TElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJ
TVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBB
UlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQ
UExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNU
LCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VR
VUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1F
TlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRB
LCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNF
RCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNU
LCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhF
UldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZU
V0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1B
R0UuCisgKi8KKworI2ltcG9ydCAiY29uZmlnLmgiCisjaW1wb3J0ICJGYWtlUHVzaFNlcnZpY2VD
b25uZWN0aW9uLmgiCisKK25hbWVzcGFjZSBXZWJQdXNoRCB7CisKK0Zha2VQdXNoU2VydmljZUNv
bm5lY3Rpb246OkZha2VQdXNoU2VydmljZUNvbm5lY3Rpb24oKQoreworfQorCitGYWtlUHVzaFNl
cnZpY2VDb25uZWN0aW9uOjp+RmFrZVB1c2hTZXJ2aWNlQ29ubmVjdGlvbigpID0gZGVmYXVsdDsK
Kwordm9pZCBGYWtlUHVzaFNlcnZpY2VDb25uZWN0aW9uOjpzdWJzY3JpYmUoY29uc3QgU3RyaW5n
JiwgY29uc3QgVmVjdG9yPHVpbnQ4X3Q+JiwgU3Vic2NyaWJlSGFuZGxlciYmIGhhbmRsZXIpCit7
CisgICAgaGFuZGxlcih7IH0sIFtOU0Vycm9yIGVycm9yV2l0aERvbWFpbjpOU0NvY29hRXJyb3JE
b21haW4gY29kZTpOU0ZlYXR1cmVVbnN1cHBvcnRlZEVycm9yIHVzZXJJbmZvOm5pbF0pOworfQor
Cit2b2lkIEZha2VQdXNoU2VydmljZUNvbm5lY3Rpb246OnVuc3Vic2NyaWJlKGNvbnN0IFN0cmlu
ZyYsIGNvbnN0IFZlY3Rvcjx1aW50OF90PiYsIFVuc3Vic2NyaWJlSGFuZGxlciYmIGhhbmRsZXIp
Cit7CisgICAgaGFuZGxlcih7IH0sIFtOU0Vycm9yIGVycm9yV2l0aERvbWFpbjpOU0NvY29hRXJy
b3JEb21haW4gY29kZTpOU0ZlYXR1cmVVbnN1cHBvcnRlZEVycm9yIHVzZXJJbmZvOm5pbF0pOwor
fQorCitWZWN0b3I8U3RyaW5nPiBGYWtlUHVzaFNlcnZpY2VDb25uZWN0aW9uOjplbmFibGVkVG9w
aWNzKCkKK3sKKyAgICByZXR1cm4geyB9OworfQorCitWZWN0b3I8U3RyaW5nPiBGYWtlUHVzaFNl
cnZpY2VDb25uZWN0aW9uOjppZ25vcmVkVG9waWNzKCkKK3sKKyAgICByZXR1cm4geyB9OworfQor
CitWZWN0b3I8U3RyaW5nPiBGYWtlUHVzaFNlcnZpY2VDb25uZWN0aW9uOjpvcHBvcnR1bmlzdGlj
VG9waWNzKCkKK3sKKyAgICByZXR1cm4geyB9OworfQorCitWZWN0b3I8U3RyaW5nPiBGYWtlUHVz
aFNlcnZpY2VDb25uZWN0aW9uOjpub25XYWtpbmdUb3BpY3MoKQoreworICAgIHJldHVybiB7IH07
Cit9CisKK3ZvaWQgRmFrZVB1c2hTZXJ2aWNlQ29ubmVjdGlvbjo6c2V0RW5hYmxlZFRvcGljcyhj
b25zdCBWZWN0b3I8U3RyaW5nPiYgdG9waWNzKQoreworfQorCit2b2lkIEZha2VQdXNoU2Vydmlj
ZUNvbm5lY3Rpb246OnNldElnbm9yZWRUb3BpY3MoY29uc3QgVmVjdG9yPFN0cmluZz4mIHRvcGlj
cykKK3sKK30KKwordm9pZCBGYWtlUHVzaFNlcnZpY2VDb25uZWN0aW9uOjpzZXRPcHBvcnR1bmlz
dGljVG9waWNzKGNvbnN0IFZlY3RvcjxTdHJpbmc+JiB0b3BpY3MpCit7Cit9CisKK3ZvaWQgRmFr
ZVB1c2hTZXJ2aWNlQ29ubmVjdGlvbjo6c2V0Tm9uV2FraW5nVG9waWNzKGNvbnN0IFZlY3RvcjxT
dHJpbmc+JiB0b3BpY3MpCit7Cit9CisKK3ZvaWQgRmFrZVB1c2hTZXJ2aWNlQ29ubmVjdGlvbjo6
c2V0VG9waWNMaXN0cyhUb3BpY0xpc3RzJiYgdG9waWNMaXN0cykKK3sKK30KKworfSAvLyBuYW1l
c3BhY2UgV2ViUHVzaEQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvd2VicHVzaGQvUHVzaFNl
cnZpY2VDb25uZWN0aW9uLmggYi9Tb3VyY2UvV2ViS2l0L3dlYnB1c2hkL1B1c2hTZXJ2aWNlQ29u
bmVjdGlvbi5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAuLjNjYzVlODk1N2QxMTE2OGJjNzFiMzFmZWFjMWUwNzY2NDc3
NTJkMjgKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L3dlYnB1c2hkL1B1c2hTZXJ2
aWNlQ29ubmVjdGlvbi5oCkBAIC0wLDAgKzEsODEgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIw
MjIgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9u
IGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICog
bW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBj
b25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBj
b2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJl
ZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29w
eXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhl
ciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMg
U09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBg
YEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBN
RVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBB
UkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJ
QlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFM
LCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBH
T09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lO
RVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9G
IExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9S
IFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4g
QU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQg
T0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9u
Y2UKKworI2luY2x1ZGUgPHd0Zi9Db21wbGV0aW9uSGFuZGxlci5oPgorI2luY2x1ZGUgPHd0Zi9E
ZXF1ZS5oPgorI2luY2x1ZGUgPHd0Zi9GdW5jdGlvbi5oPgorI2luY2x1ZGUgPHd0Zi9SZXRhaW5Q
dHIuaD4KKyNpbmNsdWRlIDx3dGYvVmVjdG9yLmg+CisjaW5jbHVkZSA8d3RmL1dvcmtRdWV1ZS5o
PgorI2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgorCitPQkpDX0NMQVNTIE5TRXJyb3I7
CitPQkpDX0NMQVNTIE5TU3RyaW5nOworT0JKQ19DTEFTUyBOU0RpY3Rpb25hcnk7CisKK25hbWVz
cGFjZSBXZWJQdXNoRCB7CisKK2NsYXNzIFB1c2hTZXJ2aWNlQ29ubmVjdGlvbiB7CitwdWJsaWM6
CisgICAgdXNpbmcgSW5jb21pbmdQdXNoTWVzc2FnZUhhbmRsZXIgPSBGdW5jdGlvbjx2b2lkKE5T
U3RyaW5nICosIE5TRGljdGlvbmFyeSAqKT47CisKKyAgICBQdXNoU2VydmljZUNvbm5lY3Rpb24o
KSA9IGRlZmF1bHQ7CisgICAgdmlydHVhbCB+UHVzaFNlcnZpY2VDb25uZWN0aW9uKCkgPSBkZWZh
dWx0OworCisgICAgdXNpbmcgU3Vic2NyaWJlSGFuZGxlciA9IENvbXBsZXRpb25IYW5kbGVyPHZv
aWQoTlNTdHJpbmcgKiwgTlNFcnJvciAqKT47CisgICAgdmlydHVhbCB2b2lkIHN1YnNjcmliZShj
b25zdCBTdHJpbmcmIHRvcGljLCBjb25zdCBWZWN0b3I8dWludDhfdD4mIHZhcGlkUHVibGljS2V5
LCBTdWJzY3JpYmVIYW5kbGVyJiYpID0gMDsKKworICAgIHVzaW5nIFVuc3Vic2NyaWJlSGFuZGxl
ciA9IENvbXBsZXRpb25IYW5kbGVyPHZvaWQoYm9vbCwgTlNFcnJvciAqKT47CisgICAgdmlydHVh
bCB2b2lkIHVuc3Vic2NyaWJlKGNvbnN0IFN0cmluZyYgdG9waWMsIGNvbnN0IFZlY3Rvcjx1aW50
OF90PiYgdmFwaWRQdWJsaWNLZXksIFVuc3Vic2NyaWJlSGFuZGxlciYmKSA9IDA7CisKKyAgICB2
aXJ0dWFsIFZlY3RvcjxTdHJpbmc+IGVuYWJsZWRUb3BpY3MoKSA9IDA7CisgICAgdmlydHVhbCBW
ZWN0b3I8U3RyaW5nPiBpZ25vcmVkVG9waWNzKCkgPSAwOworICAgIHZpcnR1YWwgVmVjdG9yPFN0
cmluZz4gb3Bwb3J0dW5pc3RpY1RvcGljcygpID0gMDsKKyAgICB2aXJ0dWFsIFZlY3RvcjxTdHJp
bmc+IG5vbldha2luZ1RvcGljcygpID0gMDsKKworICAgIHZpcnR1YWwgdm9pZCBzZXRFbmFibGVk
VG9waWNzKGNvbnN0IFZlY3RvcjxTdHJpbmc+JikgPSAwOworICAgIHZpcnR1YWwgdm9pZCBzZXRJ
Z25vcmVkVG9waWNzKGNvbnN0IFZlY3RvcjxTdHJpbmc+JikgPSAwOworICAgIHZpcnR1YWwgdm9p
ZCBzZXRPcHBvcnR1bmlzdGljVG9waWNzKGNvbnN0IFZlY3RvcjxTdHJpbmc+JikgPSAwOworICAg
IHZpcnR1YWwgdm9pZCBzZXROb25XYWtpbmdUb3BpY3MoY29uc3QgVmVjdG9yPFN0cmluZz4mKSA9
IDA7CisKKyAgICBzdHJ1Y3QgVG9waWNMaXN0cyB7CisgICAgICAgIFZlY3RvcjxTdHJpbmc+IGVu
YWJsZWRUb3BpY3M7CisgICAgICAgIFZlY3RvcjxTdHJpbmc+IGlnbm9yZWRUb3BpY3M7CisgICAg
ICAgIFZlY3RvcjxTdHJpbmc+IG9wcG9ydHVuaXN0aWNUb3BpY3M7CisgICAgICAgIFZlY3RvcjxT
dHJpbmc+IG5vbldha2luZ1RvcGljczsKKyAgICB9OworICAgIHZpcnR1YWwgdm9pZCBzZXRUb3Bp
Y0xpc3RzKFRvcGljTGlzdHMmJikgPSAwOworCisgICAgdm9pZCBzdGFydExpc3RlbmluZ0ZvclB1
c2hNZXNzYWdlcyhJbmNvbWluZ1B1c2hNZXNzYWdlSGFuZGxlciYmKTsKKyAgICB2b2lkIGRpZFJl
Y2VpdmVQdXNoTWVzc2FnZShOU1N0cmluZyAqdG9waWMsIE5TRGljdGlvbmFyeSAqdXNlckluZm8p
OworCitwcml2YXRlOgorICAgIEluY29taW5nUHVzaE1lc3NhZ2VIYW5kbGVyIG1faW5jb21pbmdQ
dXNoTWVzc2FnZUhhbmRsZXI7CisgICAgRGVxdWU8c3RkOjpwYWlyPFJldGFpblB0cjxOU1N0cmlu
Zz4sIFJldGFpblB0cjxOU0RpY3Rpb25hcnk+Pj4gbV9wZW5kaW5nUHVzaGVzOworfTsKKworfSAv
LyBuYW1lc3BhY2UgV2ViUHVzaEQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvd2VicHVzaGQv
UHVzaFNlcnZpY2VDb25uZWN0aW9uLm1tIGIvU291cmNlL1dlYktpdC93ZWJwdXNoZC9QdXNoU2Vy
dmljZUNvbm5lY3Rpb24ubW0KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNTM0MzMyNWViNWVhMjAzZThkZjZmZjgzMDNj
YjliMGZmYzgxMzIxYgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvd2VicHVzaGQv
UHVzaFNlcnZpY2VDb25uZWN0aW9uLm1tCkBAIC0wLDAgKzEsNjAgQEAKKy8qCisgKiBDb3B5cmln
aHQgKEMpIDIwMjIgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlz
dHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0
aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZv
bGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9m
IHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4K
KyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUg
YWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFu
ZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoK
KyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRS
SUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJ
RVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFO
VElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICog
UFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJ
VFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJ
TkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFH
RVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VC
U1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7
IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkg
VEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFC
SUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFS
SVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElG
IEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisj
aW1wb3J0ICJjb25maWcuaCIKKyNpbXBvcnQgIlB1c2hTZXJ2aWNlQ29ubmVjdGlvbi5oIgorCisj
aW1wb3J0IDx3dGYvV29ya1F1ZXVlLmg+CisKK25hbWVzcGFjZSBXZWJQdXNoRCB7CisKK3ZvaWQg
UHVzaFNlcnZpY2VDb25uZWN0aW9uOjpzdGFydExpc3RlbmluZ0ZvclB1c2hNZXNzYWdlcyhJbmNv
bWluZ1B1c2hNZXNzYWdlSGFuZGxlciYmIGhhbmRsZXIpCit7CisgICAgbV9pbmNvbWluZ1B1c2hN
ZXNzYWdlSGFuZGxlciA9IFdURk1vdmUoaGFuZGxlcik7CisKKyAgICBpZiAoIW1fcGVuZGluZ1B1
c2hlcy5zaXplKCkpCisgICAgICAgIHJldHVybjsKKworICAgIFdvcmtRdWV1ZTo6bWFpbigpLmRp
c3BhdGNoKFt0aGlzXSgpIG11dGFibGUgeworICAgICAgICB3aGlsZSAobV9wZW5kaW5nUHVzaGVz
LnNpemUoKSkgeworICAgICAgICAgICAgQGF1dG9yZWxlYXNlcG9vbCB7CisgICAgICAgICAgICAg
ICAgYXV0byBtZXNzYWdlID0gbV9wZW5kaW5nUHVzaGVzLnRha2VGaXJzdCgpOworICAgICAgICAg
ICAgICAgIG1faW5jb21pbmdQdXNoTWVzc2FnZUhhbmRsZXIobWVzc2FnZS5maXJzdC5nZXQoKSwg
bWVzc2FnZS5zZWNvbmQuZ2V0KCkpOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgfSk7
Cit9CisKK3ZvaWQgUHVzaFNlcnZpY2VDb25uZWN0aW9uOjpkaWRSZWNlaXZlUHVzaE1lc3NhZ2Uo
TlNTdHJpbmcgKnRvcGljLCBOU0RpY3Rpb25hcnkgKnVzZXJJbmZvKQoreworICAgIGlmICghbV9p
bmNvbWluZ1B1c2hNZXNzYWdlSGFuZGxlcikgeworICAgICAgICBtX3BlbmRpbmdQdXNoZXMuYXBw
ZW5kKHsgdG9waWMsIHVzZXJJbmZvIH0pOworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAg
bV9pbmNvbWluZ1B1c2hNZXNzYWdlSGFuZGxlcih0b3BpYywgdXNlckluZm8pOworfQorCit9IC8v
IG5hbWVzcGFjZSBXZWJQdXNoRAo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>450342</attachid>
            <date>2022-01-29 15:22:32 -0800</date>
            <delta_ts>2022-01-29 21:40:07 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-235856-20220129152232.patch</filename>
            <type>text/plain</type>
            <size>45487</size>
            <attacher name="Ben Nham">nham</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg4NzkyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IDNlNGJhZTUyZDUzYjdjMTEwZWNkYjQ4
OTE2MWYxMzhjZDU2YmJmYzguLmFiNjVlZjdjNDg0ZGM4OWI3YjUyY2ZkZjYxMWRlZTIxMTZkMWNj
MDkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMTQgQEAKKzIwMjItMDEtMjggIEJlbiBOaGFtICA8bmhhbUBhcHBs
ZS5jb20+CisKKyAgICAgICAgSW1wb3J0IEFQU0Nvbm5lY3Rpb24tcmVsYXRlZCBTUEkKKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIzNTg1NgorCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkZCBhIEhBVkUgbWFj
cm8gdG8gZ3VhcmQgc29tZSBvZiB0aGUgbmV3ZXIgU1BJIGluIEFQU0Nvbm5lY3Rpb24uCisKKyAg
ICAgICAgKiB3dGYvUGxhdGZvcm1IYXZlLmg6CisKIDIwMjItMDEtMjggIENocmlzIER1bWV6ICA8
Y2R1bWV6QGFwcGxlLmNvbT4KIAogICAgICAgICBBU1NFUlRJT04gRkFJTEVEOiBtX3Byb2Nlc3ND
YWxsYmFjayBpbiBXZWJDb3JlOjpBdWRpb1dvcmtsZXRQcm9jZXNzb3I6OnByb2Nlc3MKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cK
aW5kZXggZDE4YmQ3NGJlZTcwMDg2NDliZjU2YWU5NTc0MWZiMWU0OTM0YjdkYi4uNTgyYTQxMWQz
ZjQwNjNhNWYzOTBjZGY4YTJiM2JlYzYxNTM2ZTYzOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKQEAgLTEsMyArMSw1NCBA
QAorMjAyMi0wMS0yOCAgQmVuIE5oYW0gIDxuaGFtQGFwcGxlLmNvbT4KKworICAgICAgICBJbXBv
cnQgQVBTQ29ubmVjdGlvbi1yZWxhdGVkIFNQSQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjM1ODU2CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZ
IChPT1BTISkuCisKKyAgICAgICAgVGhpcyBpbXBvcnRzIHRoZSBTUEkgZGVjbGFyYXRpb25zIG5l
Y2Vzc2FyeSB0byBidWlsZCBhZ2FpbnN0IEFwcGxlUHVzaFNlcnZpY2UgaW4gV2ViS2l0LiBJdAor
ICAgICAgICBhbHNvIGluY2x1ZGVzIGEgUHVzaFNlcnZpY2VDb25uZWN0aW9uIGludGVyZmFjZSB0
aGF0IGNhbiBzaXQgaW4gZnJvbnQgb2YgQVBTQ29ubmVjdGlvbiwgYW5kCisgICAgICAgIGEgZmFr
ZSBpbnRlcmZhY2UgdGhhdCB3aWxsIGJlIGZsZXNoZWQgb3V0IGZvciB0ZXN0aW5nIHB1cnBvc2Vz
LgorCisgICAgICAgICogQ29uZmlndXJhdGlvbnMvV2ViS2l0LnhjY29uZmlnOgorICAgICAgICAq
IFBsYXRmb3JtL3NwaS9Db2NvYS9BcHBsZVB1c2hTZXJ2aWNlU1BJLmg6IEFkZGVkLgorICAgICAg
ICAqIFdlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAqIHdlYnB1c2hk
L0FwcGxlUHVzaFNlcnZpY2VDb25uZWN0aW9uLmg6IEFkZGVkLgorICAgICAgICAqIHdlYnB1c2hk
L0FwcGxlUHVzaFNlcnZpY2VDb25uZWN0aW9uLm1tOiBBZGRlZC4KKyAgICAgICAgKC1bX1dLQVBT
Q29ubmVjdGlvbkRlbGVnYXRlIGluaXRXaXRoQ29ubmVjdGlvbjpdKToKKyAgICAgICAgKC1bX1dL
QVBTQ29ubmVjdGlvbkRlbGVnYXRlIGNvbm5lY3Rpb246ZGlkUmVjZWl2ZVB1YmxpY1Rva2VuOl0p
OgorICAgICAgICAoLVtfV0tBUFNDb25uZWN0aW9uRGVsZWdhdGUgY29ubmVjdGlvbjpkaWRSZWNl
aXZlSW5jb21pbmdNZXNzYWdlOl0pOgorICAgICAgICAoV2ViUHVzaEQ6OkFwcGxlUHVzaFNlcnZp
Y2VDb25uZWN0aW9uOjpBcHBsZVB1c2hTZXJ2aWNlQ29ubmVjdGlvbik6CisgICAgICAgIChXZWJQ
dXNoRDo6bWFrZVRva2VuSW5mbyk6CisgICAgICAgIChXZWJQdXNoRDo6QXBwbGVQdXNoU2Vydmlj
ZUNvbm5lY3Rpb246OnN1YnNjcmliZSk6CisgICAgICAgIChXZWJQdXNoRDo6QXBwbGVQdXNoU2Vy
dmljZUNvbm5lY3Rpb246OnVuc3Vic2NyaWJlKToKKyAgICAgICAgKFdlYlB1c2hEOjpBcHBsZVB1
c2hTZXJ2aWNlQ29ubmVjdGlvbjo6ZW5hYmxlZFRvcGljcyk6CisgICAgICAgIChXZWJQdXNoRDo6
QXBwbGVQdXNoU2VydmljZUNvbm5lY3Rpb246Omlnbm9yZWRUb3BpY3MpOgorICAgICAgICAoV2Vi
UHVzaEQ6OkFwcGxlUHVzaFNlcnZpY2VDb25uZWN0aW9uOjpvcHBvcnR1bmlzdGljVG9waWNzKToK
KyAgICAgICAgKFdlYlB1c2hEOjpBcHBsZVB1c2hTZXJ2aWNlQ29ubmVjdGlvbjo6bm9uV2FraW5n
VG9waWNzKToKKyAgICAgICAgKFdlYlB1c2hEOjpBcHBsZVB1c2hTZXJ2aWNlQ29ubmVjdGlvbjo6
c2V0RW5hYmxlZFRvcGljcyk6CisgICAgICAgIChXZWJQdXNoRDo6QXBwbGVQdXNoU2VydmljZUNv
bm5lY3Rpb246OnNldElnbm9yZWRUb3BpY3MpOgorICAgICAgICAoV2ViUHVzaEQ6OkFwcGxlUHVz
aFNlcnZpY2VDb25uZWN0aW9uOjpzZXRPcHBvcnR1bmlzdGljVG9waWNzKToKKyAgICAgICAgKFdl
YlB1c2hEOjpBcHBsZVB1c2hTZXJ2aWNlQ29ubmVjdGlvbjo6c2V0Tm9uV2FraW5nVG9waWNzKToK
KyAgICAgICAgKFdlYlB1c2hEOjpBcHBsZVB1c2hTZXJ2aWNlQ29ubmVjdGlvbjo6c2V0VG9waWNM
aXN0cyk6CisgICAgICAgICogd2VicHVzaGQvRmFrZVB1c2hTZXJ2aWNlQ29ubmVjdGlvbi5oOiBB
ZGRlZC4KKyAgICAgICAgKiB3ZWJwdXNoZC9GYWtlUHVzaFNlcnZpY2VDb25uZWN0aW9uLm1tOiBB
ZGRlZC4KKyAgICAgICAgKFdlYlB1c2hEOjpGYWtlUHVzaFNlcnZpY2VDb25uZWN0aW9uOjpGYWtl
UHVzaFNlcnZpY2VDb25uZWN0aW9uKToKKyAgICAgICAgKFdlYlB1c2hEOjpGYWtlUHVzaFNlcnZp
Y2VDb25uZWN0aW9uOjpzdWJzY3JpYmUpOgorICAgICAgICAoV2ViUHVzaEQ6OkZha2VQdXNoU2Vy
dmljZUNvbm5lY3Rpb246OnVuc3Vic2NyaWJlKToKKyAgICAgICAgKFdlYlB1c2hEOjpGYWtlUHVz
aFNlcnZpY2VDb25uZWN0aW9uOjplbmFibGVkVG9waWNzKToKKyAgICAgICAgKFdlYlB1c2hEOjpG
YWtlUHVzaFNlcnZpY2VDb25uZWN0aW9uOjppZ25vcmVkVG9waWNzKToKKyAgICAgICAgKFdlYlB1
c2hEOjpGYWtlUHVzaFNlcnZpY2VDb25uZWN0aW9uOjpvcHBvcnR1bmlzdGljVG9waWNzKToKKyAg
ICAgICAgKFdlYlB1c2hEOjpGYWtlUHVzaFNlcnZpY2VDb25uZWN0aW9uOjpub25XYWtpbmdUb3Bp
Y3MpOgorICAgICAgICAoV2ViUHVzaEQ6OkZha2VQdXNoU2VydmljZUNvbm5lY3Rpb246OnNldEVu
YWJsZWRUb3BpY3MpOgorICAgICAgICAoV2ViUHVzaEQ6OkZha2VQdXNoU2VydmljZUNvbm5lY3Rp
b246OnNldElnbm9yZWRUb3BpY3MpOgorICAgICAgICAoV2ViUHVzaEQ6OkZha2VQdXNoU2Vydmlj
ZUNvbm5lY3Rpb246OnNldE9wcG9ydHVuaXN0aWNUb3BpY3MpOgorICAgICAgICAoV2ViUHVzaEQ6
OkZha2VQdXNoU2VydmljZUNvbm5lY3Rpb246OnNldE5vbldha2luZ1RvcGljcyk6CisgICAgICAg
IChXZWJQdXNoRDo6RmFrZVB1c2hTZXJ2aWNlQ29ubmVjdGlvbjo6c2V0VG9waWNMaXN0cyk6Cisg
ICAgICAgICogd2VicHVzaGQvUHVzaFNlcnZpY2VDb25uZWN0aW9uLmg6IEFkZGVkLgorICAgICAg
ICAqIHdlYnB1c2hkL1B1c2hTZXJ2aWNlQ29ubmVjdGlvbi5tbTogQWRkZWQuCisgICAgICAgIChX
ZWJQdXNoRDo6UHVzaFNlcnZpY2VDb25uZWN0aW9uOjpzdGFydExpc3RlbmluZ0ZvclB1c2hNZXNz
YWdlcyk6CisgICAgICAgIChXZWJQdXNoRDo6UHVzaFNlcnZpY2VDb25uZWN0aW9uOjpkaWRSZWNl
aXZlUHVzaE1lc3NhZ2UpOgorCiAyMDIyLTAxLTI4ICBGdWppaSBIaXJvbm9yaSAgPEhpcm9ub3Jp
LkZ1amlpQHNvbnkuY29tPgogCiAgICAgICAgIFtXaW5DYWlyb10gV2ViS2l0VGVzdFJ1bm5lciBz
aG91bGQgc3VwcG9ydCBwaXhlbCBkdW1wIGZvciBhY2NlbGVyYXRlZCBjb21wb3NpdGluZyBtb2Rl
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi9QbGF0Zm9ybUhhdmUuaCBiL1NvdXJjZS9XVEYv
d3RmL1BsYXRmb3JtSGF2ZS5oCmluZGV4IGEwNDc5OGUzYjQwYWY0ZGRjMmIwOTA4ZTM2OTU1NWQ1
NDA2NjhkMzMuLjhiYTY5ZTZhYjVkNjMzNzgxNzBkMTNjMjYzMzM4ZWFjNWNlMGE2NWYgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XVEYvd3RmL1BsYXRmb3JtSGF2ZS5oCisrKyBiL1NvdXJjZS9XVEYvd3Rm
L1BsYXRmb3JtSGF2ZS5oCkBAIC0xMTYzLDMgKzExNjMsOCBAQAogICAgIHx8IChQTEFURk9STShX
QVRDSE9TKSAmJiBfX1dBVENIX09TX1ZFUlNJT05fTUFYX0FMTE9XRUQgPj0gODA1MDApCiAjZGVm
aW5lIEhBVkVfQ0ZORVRXT1JLX0RJU0FCTEVfQ0FDSEVfU1BJIDEKICNlbmRpZgorCisjaWYgKChQ
TEFURk9STShNQUMpICYmIF9fTUFDX09TX1hfVkVSU0lPTl9NSU5fUkVRVUlSRUQgPj0gMTMwMDAw
KSBcCisgICAgfHwgKFBMQVRGT1JNKElPUykgJiYgX19JUEhPTkVfT1NfVkVSU0lPTl9NSU5fUkVR
VUlSRUQgPj0gMTYwMDAwKSkKKyNkZWZpbmUgSEFWRV9BUFBMRV9QVVNIX1NFUlZJQ0VfVVJMX1RP
S0VOX1NVUFBPUlQgMQorI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0NvbmZpZ3Vy
YXRpb25zL1dlYktpdC54Y2NvbmZpZyBiL1NvdXJjZS9XZWJLaXQvQ29uZmlndXJhdGlvbnMvV2Vi
S2l0LnhjY29uZmlnCmluZGV4IGQ0NDkzMWIzODI4M2YzY2MxMWUxM2E1MTBiMzg3ZDIxNjNhOTEw
MTAuLjhkM2Q5NmQ1NTFiZjY3Zjk4NDU0YzExYTdjZTQ3ZjFkZDFlZjE4OGMgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvQ29uZmlndXJhdGlvbnMvV2ViS2l0LnhjY29uZmlnCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ29uZmlndXJhdGlvbnMvV2ViS2l0LnhjY29uZmlnCkBAIC0xNTUsNyArMTU1LDcg
QEAgV0tfTElCTkVUV09SS0VYVEVOU0lPTl9MREZMQUdTX21hY2NhdGFseXN0ID0gLWxuZXR3b3Jr
ZXh0ZW5zaW9uOwogV0tfTElCTkVUV09SS0VYVEVOU0lPTl9MREZMQUdTX21hY29zeCA9IC13ZWFr
X2xpYnJhcnkgL3Vzci9saWIvbGlibmV0d29ya2V4dGVuc2lvbi5keWxpYjsKIFdLX0xJQk5FVFdP
UktFWFRFTlNJT05fTERGTEFHU190dm9zID0gOwogCi1GUkFNRVdPUktfQU5EX0xJQlJBUllfTERG
TEFHUyA9IC1sb2JqYyAtZnJhbWV3b3JrIENGTmV0d29yayAtZnJhbWV3b3JrIENvcmVBdWRpbyAt
ZnJhbWV3b3JrIENvcmVGb3VuZGF0aW9uIC1mcmFtZXdvcmsgQ29yZUdyYXBoaWNzIC1mcmFtZXdv
cmsgQ29yZVRleHQgLWZyYW1ld29yayBGb3VuZGF0aW9uIC1mcmFtZXdvcmsgSW1hZ2VJTyAtZnJh
bWV3b3JrIElPS2l0IC1mcmFtZXdvcmsgSU9TdXJmYWNlIC1mcmFtZXdvcmsgV2ViS2l0TGVnYWN5
IC1sbmV0d29yayAtZnJhbWV3b3JrIE1ldGFsICQoV0tfQUNDRVNTSUJJTElUWV9MREZMQUdTKSAk
KFdLX0FQUEtJVF9MREZMQUdTKSAkKFdLX0JBQ0tCT0FSRF9TRVJWSUNFU19MREZMQUdTKSAkKFdL
X1JVTk5JTkdCT0FSRF9TRVJWSUNFU19MREZMQUdTKSAkKFdLX0FVVEhLSVRfTERGTEFHUykgJChX
S19DQVJCT05fTERGTEFHUykgJChXS19DT05UQUNUU19MREZMQUdTKSAkKFdLX0NPUkVfUFJFRElD
VElPTl9MREZMQUdTKSAkKFdLX0NPUkVfU0VSVklDRVNfTERGTEFHUykgJChXS19HUkFQSElDU19T
RVJWSUNFU19MREZMQUdTKSAkKFdLX0xJQk5FVFdPUktFWFRFTlNJT05fTERGTEFHUykgJChXS19M
SUJTQU5EQk9YX0xERkxBR1MpICQoV0tfTElCV0VCUlRDX0xERkxBR1MpICQoV0tfTU9CSUxFX0NP
UkVfU0VSVklDRVNfTERGTEFHUykgJChXS19NT0JJTEVfR0VTVEFMVF9MREZMQUdTKSAkKFdLX1BE
RktJVF9MREZMQUdTKSAkKFdLX1BST1RPVFlQRV9UT09MU19MREZMQUdTKSAkKFdLX1NBRkVfQlJP
V1NJTkdfTERGTEFHUykgJChXS19TRUNVUklUWV9JTlRFUkZBQ0VfTERGTEFHUykgJChXS19VSUtJ
VF9MREZMQUdTKSAkKFdLX1VOSUZPUk1fVFlQRV9JREVOVElGSUVSU19MREZMQUdTKSAkKFdLX1VS
TF9GT1JNQVRUSU5HX0xERkxBR1MpICQoV0tfV0VCSU5TUEVDVE9SVUlfTERGTEFHUykgJChXS19D
T09SRElOQVRPUl9MREZMQUdTKTsKK0ZSQU1FV09SS19BTkRfTElCUkFSWV9MREZMQUdTID0gLWxv
YmpjIC1mcmFtZXdvcmsgQXBwbGVQdXNoU2VydmljZSAtZnJhbWV3b3JrIENGTmV0d29yayAtZnJh
bWV3b3JrIENvcmVBdWRpbyAtZnJhbWV3b3JrIENvcmVGb3VuZGF0aW9uIC1mcmFtZXdvcmsgQ29y
ZUdyYXBoaWNzIC1mcmFtZXdvcmsgQ29yZVRleHQgLWZyYW1ld29yayBGb3VuZGF0aW9uIC1mcmFt
ZXdvcmsgSW1hZ2VJTyAtZnJhbWV3b3JrIElPS2l0IC1mcmFtZXdvcmsgSU9TdXJmYWNlIC1mcmFt
ZXdvcmsgV2ViS2l0TGVnYWN5IC1sbmV0d29yayAtZnJhbWV3b3JrIE1ldGFsICQoV0tfQUNDRVNT
SUJJTElUWV9MREZMQUdTKSAkKFdLX0FQUEtJVF9MREZMQUdTKSAkKFdLX0JBQ0tCT0FSRF9TRVJW
SUNFU19MREZMQUdTKSAkKFdLX1JVTk5JTkdCT0FSRF9TRVJWSUNFU19MREZMQUdTKSAkKFdLX0FV
VEhLSVRfTERGTEFHUykgJChXS19DQVJCT05fTERGTEFHUykgJChXS19DT05UQUNUU19MREZMQUdT
KSAkKFdLX0NPUkVfUFJFRElDVElPTl9MREZMQUdTKSAkKFdLX0NPUkVfU0VSVklDRVNfTERGTEFH
UykgJChXS19HUkFQSElDU19TRVJWSUNFU19MREZMQUdTKSAkKFdLX0xJQk5FVFdPUktFWFRFTlNJ
T05fTERGTEFHUykgJChXS19MSUJTQU5EQk9YX0xERkxBR1MpICQoV0tfTElCV0VCUlRDX0xERkxB
R1MpICQoV0tfTU9CSUxFX0NPUkVfU0VSVklDRVNfTERGTEFHUykgJChXS19NT0JJTEVfR0VTVEFM
VF9MREZMQUdTKSAkKFdLX1BERktJVF9MREZMQUdTKSAkKFdLX1BST1RPVFlQRV9UT09MU19MREZM
QUdTKSAkKFdLX1NBRkVfQlJPV1NJTkdfTERGTEFHUykgJChXS19TRUNVUklUWV9JTlRFUkZBQ0Vf
TERGTEFHUykgJChXS19VSUtJVF9MREZMQUdTKSAkKFdLX1VOSUZPUk1fVFlQRV9JREVOVElGSUVS
U19MREZMQUdTKSAkKFdLX1VSTF9GT1JNQVRUSU5HX0xERkxBR1MpICQoV0tfV0VCSU5TUEVDVE9S
VUlfTERGTEFHUykgJChXS19DT09SRElOQVRPUl9MREZMQUdTKTsKIAogLy8gUHJldmVudCBDKysg
c3RhbmRhcmQgbGlicmFyeSBiYXNpY19zdHJpbmdzdHJlYW0sIG9wZXJhdG9yIG5ldywgZGVsZXRl
IGFuZCB0aGVpciByZWxhdGVkIGV4Y2VwdGlvbiB0eXBlcyBmcm9tIGJlaW5nIGV4cG9ydGVkIGFz
IHdlYWsgc3ltYm9scy4KIFVORVhQT1JURURfU1lNQk9MX0xERkxBR1MgPSAtV2wsLXVuZXhwb3J0
ZWRfc3ltYm9sIC1XbCxfX1pUSVN0OWJhZF9hbGxvYyAtV2wsLXVuZXhwb3J0ZWRfc3ltYm9sIC1X
bCxfX1pUSVN0OWV4Y2VwdGlvbiAtV2wsLXVuZXhwb3J0ZWRfc3ltYm9sIC1XbCxfX1pUU1N0OWJh
ZF9hbGxvYyAtV2wsLXVuZXhwb3J0ZWRfc3ltYm9sIC1XbCxfX1pUU1N0OWV4Y2VwdGlvbiAtV2ws
LXVuZXhwb3J0ZWRfc3ltYm9sIC1XbCxfX1pkbFB2U18gLVdsLC11bmV4cG9ydGVkX3N5bWJvbCAt
V2wsX19abndtUHYgLVdsLC11bmV4cG9ydGVkX3N5bWJvbCAtV2wsX19abndtIC1XbCwtdW5leHBv
cnRlZF9zeW1ib2wgLVdsLF9fWlRWTlN0M19fMTE3YmFkX2Z1bmN0aW9uX2NhbGxFIC1XbCwtdW5l
eHBvcnRlZF9zeW1ib2wgLVdsLF9fWlRDTlN0M19fMTE4YmFzaWNfc3RyaW5nc3RyZWFtSWNOU18x
MWNoYXJfdHJhaXRzSWNFRU5TXzlhbGxvY2F0b3JJY0VFRUUwX05TXzEzYmFzaWNfaXN0cmVhbUlj
UzJfRUUgLVdsLC11bmV4cG9ydGVkX3N5bWJvbCAtV2wsX19aVENOU3QzX18xMThiYXNpY19zdHJp
bmdzdHJlYW1JY05TXzExY2hhcl90cmFpdHNJY0VFTlNfOWFsbG9jYXRvckljRUVFRTBfTlNfMTRi
YXNpY19pb3N0cmVhbUljUzJfRUUgLVdsLC11bmV4cG9ydGVkX3N5bWJvbCAtV2wsX19aVENOU3Qz
X18xMThiYXNpY19zdHJpbmdzdHJlYW1JY05TXzExY2hhcl90cmFpdHNJY0VFTlNfOWFsbG9jYXRv
ckljRUVFRTE2X05TXzEzYmFzaWNfb3N0cmVhbUljUzJfRUUgLVdsLC11bmV4cG9ydGVkX3N5bWJv
bCAtV2wsX19aVFROU3QzX18xMThiYXNpY19zdHJpbmdzdHJlYW1JY05TXzExY2hhcl90cmFpdHNJ
Y0VFTlNfOWFsbG9jYXRvckljRUVFRSAtV2wsLXVuZXhwb3J0ZWRfc3ltYm9sIC1XbCxfX1pUVk5T
dDNfXzExNWJhc2ljX3N0cmluZ2J1ZkljTlNfMTFjaGFyX3RyYWl0c0ljRUVOU185YWxsb2NhdG9y
SWNFRUVFIC1XbCwtdW5leHBvcnRlZF9zeW1ib2wgLVdsLF9fWlRWTlN0M19fMTE4YmFzaWNfc3Ry
aW5nc3RyZWFtSWNOU18xMWNoYXJfdHJhaXRzSWNFRU5TXzlhbGxvY2F0b3JJY0VFRUUgLVdsLC11
bmV4cG9ydGVkX3N5bWJvbCAtV2wsX19aVENOU3QzX18xMThiYXNpY19zdHJpbmdzdHJlYW1JY05T
XzExY2hhcl90cmFpdHNJY0VFTlNfOWFsbG9jYXRvckljRUVFRThfTlNfMTNiYXNpY19vc3RyZWFt
SWNTMl9FRTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvUGxhdGZvcm0vc3BpL0NvY29hL0Fw
cGxlUHVzaFNlcnZpY2VTUEkuaCBiL1NvdXJjZS9XZWJLaXQvUGxhdGZvcm0vc3BpL0NvY29hL0Fw
cGxlUHVzaFNlcnZpY2VTUEkuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi41NWY2YWQ2ZjYzNjkzZWUxMGIxYWFjZDQz
MWQ5ZTQ3MWNlYWQ4NjIzCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9QbGF0Zm9y
bS9zcGkvQ29jb2EvQXBwbGVQdXNoU2VydmljZVNQSS5oCkBAIC0wLDAgKzEsMTAyIEBACisvKgor
ICogQ29weXJpZ2h0IChDKSAyMDIyIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAq
CisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3
aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0
aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJp
YnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Cisg
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXBy
b2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1l
bnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1
dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5E
IElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElF
RCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBM
SUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJ
Q1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExF
IElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJ
TkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVO
VElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQg
T0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBP
UiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBB
TkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBT
VFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJ
U0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FS
RSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0Uu
CisgKi8KKworI2lmIFVTRShBUFBMRV9JTlRFUk5BTF9TREspCisKKyNpbXBvcnQgPEFwcGxlUHVz
aFNlcnZpY2UvQXBwbGVQdXNoU2VydmljZS5oPgorCisjZWxzZSAvLyBpZiAhVVNFKEFQUExFX0lO
VEVSTkFMX1NESykKKworI2ltcG9ydCA8Rm91bmRhdGlvbi9Gb3VuZGF0aW9uLmg+CisKK05TX0FT
U1VNRV9OT05OVUxMX0JFR0lOCisKK1dURl9FWFRFUk5fQ19CRUdJTgorZXh0ZXJuIE5TU3RyaW5n
ICpjb25zdCBBUFNFbnZpcm9ubWVudFByb2R1Y3Rpb247CisKK3R5cGVkZWYgTlNfRU5VTShOU0lu
dGVnZXIsIEFQU1VSTFRva2VuRXJyb3JDb2RlKSB7CisgICAgQVBTVVJMVG9rZW5FcnJvckNvZGVJ
bnZhbGlkQXJndW1lbnRzID0gMTAwLAorICAgIEFQU1VSTFRva2VuRXJyb3JDb2RlWFBDRXJyb3Ig
PSAxMDEsCisgICAgQVBTVVJMVG9rZW5FcnJvckNvZGVUb3BpY1NhbHRpbmdGYWlsZWQgPSAxMDIs
CisgICAgQVBTVVJMVG9rZW5FcnJvckNvZGVUb3BpY0FscmVhZHlJbkZpbHRlciA9IDEwMywKK307
CitXVEZfRVhURVJOX0NfRU5ECisKK0BjbGFzcyBBUFNDb25uZWN0aW9uOworQHByb3RvY29sIEFQ
U0Nvbm5lY3Rpb25EZWxlZ2F0ZTsKKworQGludGVyZmFjZSBBUFNNZXNzYWdlIDogTlNPYmplY3Q8
TlNDb2Rpbmc+CitAcHJvcGVydHkgKG5vbmF0b21pYywgcmV0YWluKSBOU1N0cmluZyAqdG9waWM7
CitAcHJvcGVydHkgKG5vbmF0b21pYywgcmV0YWluKSBOU0RpY3Rpb25hcnkgKnVzZXJJbmZvOwor
QHByb3BlcnR5IChub25hdG9taWMsIGFzc2lnbikgTlNVSW50ZWdlciBpZGVudGlmaWVyOworQGVu
ZAorCitAaW50ZXJmYWNlIEFQU0luY29taW5nTWVzc2FnZSA6IEFQU01lc3NhZ2UKK0BlbmQKKwor
I2lmIEhBVkUoQVBQTEVfUFVTSF9TRVJWSUNFX1VSTF9UT0tFTl9TVVBQT1JUKQorCitAaW50ZXJm
YWNlIEFQU1VSTFRva2VuIDogTlNPYmplY3Q8TlNTZWN1cmVDb2RpbmcsIE5TQ29weWluZz4KK0Bw
cm9wZXJ0eSAobm9uYXRvbWljLCBzdHJvbmcpIE5TU3RyaW5nICp0b2tlblVSTDsKK0BlbmQKKwor
QGludGVyZmFjZSBBUFNVUkxUb2tlbkluZm8gOiBOU09iamVjdDxOU1NlY3VyZUNvZGluZywgTlND
b3B5aW5nPgorLSAoaW5zdGFuY2V0eXBlKWluaXRXaXRoVG9waWM6KE5TU3RyaW5nICopdG9waWMg
dmFwaWRQdWJsaWNLZXk6KG51bGxhYmxlIE5TRGF0YSAqKXZhcGlkUHVibGljS2V5OworQGVuZAor
Cit0eXBlZGVmIHZvaWQoXkFQU0Nvbm5lY3Rpb25SZXF1ZXN0VVJMVG9rZW5Db21wbGV0aW9uKShB
UFNVUkxUb2tlbiAqIF9fbnVsbGFibGUgdG9rZW4sIE5TRXJyb3IgKiBfX251bGxhYmxlIGVycm9y
KTsKK3R5cGVkZWYgdm9pZCheQVBTQ29ubmVjdGlvbkludmFsaWRhdGVVUkxUb2tlbkNvbXBsZXRp
b24pKEJPT0wgc3VjY2VzcywgTlNFcnJvciAqIF9fbnVsbGFibGUgZXJyb3IpOworCisjZW5kaWYg
Ly8gSEFWRShBUFBMRV9QVVNIX1NFUlZJQ0VfVVJMX1RPS0VOX1NVUFBPUlQpCisKK0BpbnRlcmZh
Y2UgQVBTQ29ubmVjdGlvbiA6IE5TT2JqZWN0CisKKy0gKGluc3RhbmNldHlwZSlpbml0V2l0aEVu
dmlyb25tZW50TmFtZTooTlNTdHJpbmcgKillbnZpcm9ubWVudE5hbWUgbmFtZWREZWxlZ2F0ZVBv
cnQ6KG51bGxhYmxlIE5TU3RyaW5nICopbmFtZWREZWxlZ2F0ZVBvcnQgcXVldWU6KGRpc3BhdGNo
X3F1ZXVlX3QpcXVldWU7CisKKyNpZiBIQVZFKEFQUExFX1BVU0hfU0VSVklDRV9VUkxfVE9LRU5f
U1VQUE9SVCkKKy0gKHZvaWQpcmVxdWVzdFVSTFRva2VuRm9ySW5mbzooQVBTVVJMVG9rZW5JbmZv
ICopaW5mbyBjb21wbGV0aW9uOihBUFNDb25uZWN0aW9uUmVxdWVzdFVSTFRva2VuQ29tcGxldGlv
biljb21wbGV0aW9uOworLSAodm9pZClpbnZhbGlkYXRlVVJMVG9rZW5Gb3JJbmZvOihBUFNVUkxU
b2tlbkluZm8gKilpbmZvIGNvbXBsZXRpb246KEFQU0Nvbm5lY3Rpb25JbnZhbGlkYXRlVVJMVG9r
ZW5Db21wbGV0aW9uKWNvbXBsZXRpb247CisjZW5kaWYgLy8gSEFWRShBUFBMRV9QVVNIX1NFUlZJ
Q0VfVVJMX1RPS0VOX1NVUFBPUlQpCisKK0Bwcm9wZXJ0eSAobm9uYXRvbWljLCByZWFkd3JpdGUs
IGFzc2lnbiwgbnVsbGFibGUpIGlkPEFQU0Nvbm5lY3Rpb25EZWxlZ2F0ZT4gZGVsZWdhdGU7CisK
K0Bwcm9wZXJ0eSAobm9uYXRvbWljLCByZWFkd3JpdGUsIHN0cm9uZywgc2V0dGVyPV9zZXRFbmFi
bGVkVG9waWNzOiwgbnVsbGFibGUpIE5TQXJyYXk8TlNTdHJpbmcgKj4gKmVuYWJsZWRUb3BpY3M7
CitAcHJvcGVydHkgKG5vbmF0b21pYywgcmVhZHdyaXRlLCBzdHJvbmcsIHNldHRlcj1fc2V0SWdu
b3JlZFRvcGljczosIG51bGxhYmxlKSBOU0FycmF5PE5TU3RyaW5nICo+ICppZ25vcmVkVG9waWNz
OworQHByb3BlcnR5IChub25hdG9taWMsIHJlYWR3cml0ZSwgc3Ryb25nLCBzZXR0ZXI9X3NldE9w
cG9ydHVuaXN0aWNUb3BpY3M6LCBudWxsYWJsZSkgTlNBcnJheTxOU1N0cmluZyAqPiAqb3Bwb3J0
dW5pc3RpY1RvcGljczsKK0Bwcm9wZXJ0eSAobm9uYXRvbWljLCByZWFkd3JpdGUsIHN0cm9uZywg
c2V0dGVyPV9zZXROb25XYWtpbmdUb3BpY3M6LCBudWxsYWJsZSkgTlNBcnJheTxOU1N0cmluZyAq
PiAqbm9uV2FraW5nVG9waWNzOworCistICh2b2lkKXNldEVuYWJsZWRUb3BpY3M6KE5TQXJyYXk8
TlNTdHJpbmcgKj4gKillbmFibGVkVG9waWNzIGlnbm9yZWRUb3BpY3M6KE5TQXJyYXk8TlNTdHJp
bmcgKj4gKilpZ25vcmVkVG9waWNzIG9wcG9ydHVuaXN0aWNUb3BpY3M6KE5TQXJyYXk8TlNTdHJp
bmcgKj4gKilvcHBvcnR1bmlzdGljVG9waWNzIG5vbldha2luZ1RvcGljczooTlNBcnJheTxOU1N0
cmluZyAqPiAqKW5vbldha2luZ1RvcGljczsKKworQGVuZAorCitAcHJvdG9jb2wgQVBTQ29ubmVj
dGlvbkRlbGVnYXRlPE5TT2JqZWN0PgorLSAodm9pZCljb25uZWN0aW9uOihBUFNDb25uZWN0aW9u
ICopY29ubmVjdGlvbiBkaWRSZWNlaXZlUHVibGljVG9rZW46KE5TRGF0YSAqKXB1YmxpY1Rva2Vu
OworQG9wdGlvbmFsCistICh2b2lkKWNvbm5lY3Rpb246KEFQU0Nvbm5lY3Rpb24gKiljb25uZWN0
aW9uIGRpZFJlY2VpdmVJbmNvbWluZ01lc3NhZ2U6KEFQU0luY29taW5nTWVzc2FnZSAqKW1lc3Nh
Z2U7CitAZW5kCisKK05TX0FTU1VNRV9OT05OVUxMX0VORAorCisjZW5kaWYgLy8gIVVTRShBUFBM
RV9JTlRFUk5BTF9TREspCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYktpdC54Y29kZXBy
b2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNlL1dlYktpdC9XZWJLaXQueGNvZGVwcm9qL3Byb2pl
Y3QucGJ4cHJvagppbmRleCA3NzkxMThiZDJmM2UwMzJjYTg3YzA3NGQyZTZiMGRiZTU0OWI2N2Vi
Li44ZWU2NTQ5NDdjNDA5NzQwMjE0MTAyZGMzMzMzZGI1ZGE2NmIxYzBmIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L1dlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1NvdXJj
ZS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTE5OTUsNiArMTk5
NSwxMyBAQAogCQlFNUNCQTc2NzI3QTMxOEUxMDBERjc4NTggLyogVW5pZmllZFNvdXJjZTExOS5j
cHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFNUNCQTc2
MDI3QTMxODc5MDBERjc4NTggLyogVW5pZmllZFNvdXJjZTExOS5jcHAgKi87IH07CiAJCUU1Q0JB
NzY4MjdBMzE4RTEwMERGNzg1OCAvKiBVbmlmaWVkU291cmNlMTE3LmNwcCBpbiBTb3VyY2VzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEU1Q0JBNzYyMjdBMzE4NzkwMERGNzg1
OCAvKiBVbmlmaWVkU291cmNlMTE3LmNwcCAqLzsgfTsKIAkJRTVERUZBNjgyNkY4RjQyNjAwQUI2
OERCIC8qIFBob3Rvc1VJU1BJLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSBFNURFRkE2NzI2RjhGNDI2MDBBQjY4REIgLyogUGhvdG9zVUlTUEkuaCAqLzsg
fTsKKwkJRUJBOEQzQUIyN0E1RTMxMzAwQ0I3OTAwIC8qIEFwcGxlUHVzaFNlcnZpY2VTUEkuaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEVCQThEM0FBMjdB
NUUzMTMwMENCNzkwMCAvKiBBcHBsZVB1c2hTZXJ2aWNlU1BJLmggKi87IH07CisJCUVCQThEM0Iy
MjdBNUUzM0YwMENCNzkwMCAvKiBBcHBsZVB1c2hTZXJ2aWNlQ29ubmVjdGlvbi5tbSBpbiBTb3Vy
Y2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEVCQThEM0FDMjdBNUUzM0Uw
MENCNzkwMCAvKiBBcHBsZVB1c2hTZXJ2aWNlQ29ubmVjdGlvbi5tbSAqLzsgfTsKKwkJRUJBOEQz
QjMyN0E1RTMzRjAwQ0I3OTAwIC8qIEZha2VQdXNoU2VydmljZUNvbm5lY3Rpb24uaCBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEVCQThEM0FEMjdBNUUzM0Uw
MENCNzkwMCAvKiBGYWtlUHVzaFNlcnZpY2VDb25uZWN0aW9uLmggKi87IH07CisJCUVCQThEM0I0
MjdBNUUzM0YwMENCNzkwMCAvKiBBcHBsZVB1c2hTZXJ2aWNlQ29ubmVjdGlvbi5oIGluIEhlYWRl
cnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRUJBOEQzQUUyN0E1RTMzRjAw
Q0I3OTAwIC8qIEFwcGxlUHVzaFNlcnZpY2VDb25uZWN0aW9uLmggKi87IH07CisJCUVCQThEM0I1
MjdBNUUzM0YwMENCNzkwMCAvKiBQdXNoU2VydmljZUNvbm5lY3Rpb24uaCBpbiBIZWFkZXJzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEVCQThEM0FGMjdBNUUzM0YwMENCNzkw
MCAvKiBQdXNoU2VydmljZUNvbm5lY3Rpb24uaCAqLzsgfTsKKwkJRUJBOEQzQjYyN0E1RTMzRjAw
Q0I3OTAwIC8qIEZha2VQdXNoU2VydmljZUNvbm5lY3Rpb24ubW0gaW4gU291cmNlcyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFQkE4RDNCMDI3QTVFMzNGMDBDQjc5MDAgLyog
RmFrZVB1c2hTZXJ2aWNlQ29ubmVjdGlvbi5tbSAqLzsgfTsKKwkJRUJBOEQzQjcyN0E1RTMzRjAw
Q0I3OTAwIC8qIFB1c2hTZXJ2aWNlQ29ubmVjdGlvbi5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEVCQThEM0IxMjdBNUUzM0YwMENCNzkwMCAvKiBQdXNo
U2VydmljZUNvbm5lY3Rpb24ubW0gKi87IH07CiAJCUVEODJBN0YyMTI4QzZGQUYwMDQ0NzdCMyAv
KiBXS0J1bmRsZVBhZ2VPdmVybGF5LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSAxQTIyRjBGRjEyODlGQ0Q5MDA4NUU3NEYgLyogV0tCdW5kbGVQYWdlT3Zl
cmxheS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJ
CUY0MDlCQTE4MUU2RTY0QkMwMDlEQTI4RSAvKiBXS0RyYWdEZXN0aW5hdGlvbkFjdGlvbi5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRjQwOUJBMTcxRTZF
NjRCMzAwOURBMjhFIC8qIFdLRHJhZ0Rlc3RpbmF0aW9uQWN0aW9uLmggKi87IHNldHRpbmdzID0g
e0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJRjQyOTk1MDcyNzBFMjM0RDAwMzIy
OThCIC8qIFN0cmVhbU1lc3NhZ2VSZWNlaXZlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gRjQyOTk1MDYyNzBFMjM0QzAwMzIyOThCIC8qIFN0cmVhbU1l
c3NhZ2VSZWNlaXZlci5oICovOyB9OwpAQCAtNjQzOSw2ICs2NDQ2LDEzIEBACiAJCUU1REVGQTY3
MjZGOEY0MjYwMEFCNjhEQiAvKiBQaG90b3NVSVNQSS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBQaG90b3NV
SVNQSS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlFQjBEMzEyRDI3NUFFMTMzMDA4
NjNEOEYgLyogY29tLmFwcGxlLndlYmtpdC53ZWJwdXNoZC5tYWMucGxpc3QgKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0
ZXh0LnBsaXN0LnhtbDsgcGF0aCA9IGNvbS5hcHBsZS53ZWJraXQud2VicHVzaGQubWFjLnBsaXN0
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlFQjBEMzEyRTI3NUFFMTMzMDA4NjNEOEYg
LyogY29tLmFwcGxlLndlYmtpdC53ZWJwdXNoZC5pb3MucGxpc3QgKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0LnBs
aXN0LnhtbDsgcGF0aCA9IGNvbS5hcHBsZS53ZWJraXQud2VicHVzaGQuaW9zLnBsaXN0OyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OworCQlFQkE4RDNBQTI3QTVFMzEzMDBDQjc5MDAgLyogQXBw
bGVQdXNoU2VydmljZVNQSS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBBcHBs
ZVB1c2hTZXJ2aWNlU1BJLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUVCQThEM0FD
MjdBNUUzM0UwMENCNzkwMCAvKiBBcHBsZVB1c2hTZXJ2aWNlQ29ubmVjdGlvbi5tbSAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IEFwcGxlUHVzaFNlcnZpY2VDb25uZWN0
aW9uLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlFQkE4RDNBRDI3QTVFMzNFMDBD
Qjc5MDAgLyogRmFrZVB1c2hTZXJ2aWNlQ29ubmVjdGlvbi5oICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jLmg7IHBhdGggPSBGYWtlUHVzaFNlcnZpY2VDb25uZWN0aW9uLmg7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CisJCUVCQThEM0FFMjdBNUUzM0YwMENCNzkwMCAvKiBBcHBsZVB1c2hTZXJ2
aWNlQ29ubmVjdGlvbi5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBBcHBsZVB1
c2hTZXJ2aWNlQ29ubmVjdGlvbi5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlFQkE4
RDNBRjI3QTVFMzNGMDBDQjc5MDAgLyogUHVzaFNlcnZpY2VDb25uZWN0aW9uLmggKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFB1c2hTZXJ2aWNlQ29ubmVjdGlvbi5oOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OworCQlFQkE4RDNCMDI3QTVFMzNGMDBDQjc5MDAgLyogRmFrZVB1
c2hTZXJ2aWNlQ29ubmVjdGlvbi5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsg
cGF0aCA9IEZha2VQdXNoU2VydmljZUNvbm5lY3Rpb24ubW07IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CisJCUVCQThEM0IxMjdBNUUzM0YwMENCNzkwMCAvKiBQdXNoU2VydmljZUNvbm5lY3Rp
b24ubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBQdXNoU2Vydmlj
ZUNvbm5lY3Rpb24ubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUVDQTY4MEQzMUU2
OTA0QjUwMDczMUQyMCAvKiBFeHRyYVByaXZhdGVTeW1ib2xzRm9yVEFQSS5oICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jLmg7IHBhdGggPSBFeHRyYVByaXZhdGVTeW1ib2xzRm9yVEFQSS5oOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlFQ0JGQzFEQjFFNkE0RDY2MDAwMzAwQzcgLyogRXh0
cmFQdWJsaWNTeW1ib2xzRm9yVEFQSS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBFeHRyYVB1YmxpY1N5bWJv
bHNGb3JUQVBJLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUYwMzY5Nzg3MTVGNEJG
MDUwMEMzQTgwRSAvKiBXZWJDb2xvclBpY2tlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNw
cC5jcHA7IHBhdGggPSBXZWJDb2xvclBpY2tlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CkBAIC04NjM0LDYgKzg2NDgsNyBAQAogCQkJCTU3MkVCQkRDMjUzOTIxODEwMDA1NTJCMyAv
KiBBcHBBdHRlc3RTUEkuaCAqLywKIAkJCQk5NTY1MDgzNzI2RDg3QTJCMDBFMTVDQjcgLyogQXBw
bGVNZWRpYVNlcnZpY2VzU1BJLmggKi8sCiAJCQkJOTU2NTA4MzgyNkQ4N0EyQjAwRTE1Q0I3IC8q
IEFwcGxlTWVkaWFTZXJ2aWNlc1VJU1BJLmggKi8sCisJCQkJRUJBOEQzQUEyN0E1RTMxMzAwQ0I3
OTAwIC8qIEFwcGxlUHVzaFNlcnZpY2VTUEkuaCAqLywKIAkJCQk1N0ZBQkIwRTI1ODE3Q0YwMDA1
OURDOTUgLyogQXV0aGVudGljYXRpb25TZXJ2aWNlc0NvcmVTUEkuaCAqLywKIAkJCQkxQTU3MDUx
MDFCRTQxMEU1MDA4NzRBRjEgLyogQmxvY2tTUEkuaCAqLywKIAkJCQlFNTA2MjA5MTI1NDIxMDIw
MDBDNDMwOTEgLyogQ29udGFjdHNVSVNQSS5oICovLApAQCAtMTAwNDQsOCArMTAwNTksMTIgQEAK
IAkJCQk1MTdCNUY2MzI3NUE4RDVDMDAyREMyMkQgLyogd2VicHVzaHRvb2wgKi8sCiAJCQkJNTE2
MEU5NTQyNzRCODg3MTAwNTY3Mzg4IC8qIEFwcEJ1bmRsZVJlcXVlc3QuaCAqLywKIAkJCQk1MTYw
RTk1MzI3NEI4ODcxMDA1NjczODggLyogQXBwQnVuZGxlUmVxdWVzdC5tbSAqLywKKwkJCQlFQkE4
RDNBRTI3QTVFMzNGMDBDQjc5MDAgLyogQXBwbGVQdXNoU2VydmljZUNvbm5lY3Rpb24uaCAqLywK
KwkJCQlFQkE4RDNBQzI3QTVFMzNFMDBDQjc5MDAgLyogQXBwbGVQdXNoU2VydmljZUNvbm5lY3Rp
b24ubW0gKi8sCiAJCQkJRUIwRDMxMkUyNzVBRTEzMzAwODYzRDhGIC8qIGNvbS5hcHBsZS53ZWJr
aXQud2VicHVzaGQuaW9zLnBsaXN0ICovLAogCQkJCUVCMEQzMTJEMjc1QUUxMzMwMDg2M0Q4RiAv
KiBjb20uYXBwbGUud2Via2l0LndlYnB1c2hkLm1hYy5wbGlzdCAqLywKKwkJCQlFQkE4RDNBRDI3
QTVFMzNFMDBDQjc5MDAgLyogRmFrZVB1c2hTZXJ2aWNlQ29ubmVjdGlvbi5oICovLAorCQkJCUVC
QThEM0IwMjdBNUUzM0YwMENCNzkwMCAvKiBGYWtlUHVzaFNlcnZpY2VDb25uZWN0aW9uLm1tICov
LAogCQkJCTUxRjdCQjc1Mjc0NDk4QkIwMEM0NUE3MiAvKiBNb2NrQXBwQnVuZGxlRm9yVGVzdGlu
Zy5oICovLAogCQkJCTUxRjdCQjc0Mjc0NDk4QkEwMEM0NUE3MiAvKiBNb2NrQXBwQnVuZGxlRm9y
VGVzdGluZy5tbSAqLywKIAkJCQk1MTYwRTk1QzI3NEMyQTAzMDA1NjczODggLyogTW9ja0FwcEJ1
bmRsZVJlZ2lzdHJ5LmggKi8sCkBAIC0xMDA1NCw2ICsxMDA3Myw4IEBACiAJCQkJNTE2MEU5NTgy
NzRDMEQ4ODAwNTY3Mzg4IC8qIFB1c2hBcHBCdW5kbGUubW0gKi8sCiAJCQkJNTFGN0JCNzkyNzQ0
QzUwNzAwQzQ1QTcyIC8qIFB1c2hDbGllbnRDb25uZWN0aW9uLmggKi8sCiAJCQkJNTFGN0JCN0Ey
NzQ0QzUwNzAwQzQ1QTcyIC8qIFB1c2hDbGllbnRDb25uZWN0aW9uLm1tICovLAorCQkJCUVCQThE
M0FGMjdBNUUzM0YwMENCNzkwMCAvKiBQdXNoU2VydmljZUNvbm5lY3Rpb24uaCAqLywKKwkJCQlF
QkE4RDNCMTI3QTVFMzNGMDBDQjc5MDAgLyogUHVzaFNlcnZpY2VDb25uZWN0aW9uLm1tICovLAog
CQkJCTUxN0I1Rjc3Mjc1RTk3OTUwMDJEQzIyRCAvKiB3ZWJwdXNoZC5jcHAgKi8sCiAJCQkJNTEy
Q0Q2OUQyNzIzMzkzQTAwRjdGOEVDIC8qIFdlYlB1c2hEYWVtb24uaCAqLywKIAkJCQk1MTJDRDY5
RTI3MjMzOTNBMDBGN0Y4RUMgLyogV2ViUHVzaERhZW1vbi5tbSAqLywKQEAgLTEyODY1LDYgKzEy
ODg2LDggQEAKIAkJCQlGNDhEMkE4NTIxNTgzQTdFMDBDNjc1MkIgLyogQXBwS2l0U1BJLmggaW4g
SGVhZGVycyAqLywKIAkJCQk5NTY1MDgzOTI2RDg3QTJCMDBFMTVDQjcgLyogQXBwbGVNZWRpYVNl
cnZpY2VzU1BJLmggaW4gSGVhZGVycyAqLywKIAkJCQk5NTY1MDgzQTI2RDg3QTJCMDBFMTVDQjcg
LyogQXBwbGVNZWRpYVNlcnZpY2VzVUlTUEkuaCBpbiBIZWFkZXJzICovLAorCQkJCUVCQThEM0I0
MjdBNUUzM0YwMENCNzkwMCAvKiBBcHBsZVB1c2hTZXJ2aWNlQ29ubmVjdGlvbi5oIGluIEhlYWRl
cnMgKi8sCisJCQkJRUJBOEQzQUIyN0E1RTMxMzAwQ0I3OTAwIC8qIEFwcGxlUHVzaFNlcnZpY2VT
UEkuaCBpbiBIZWFkZXJzICovLAogCQkJCUY0RUM5NEUzMjM1NkNDNTcwMDBCQjYxNCAvKiBBcHBs
aWNhdGlvblNlcnZpY2VzU1BJLmggaW4gSGVhZGVycyAqLywKIAkJCQkxQUQ0QzE5MzFCMzlGMzMy
MDBBQkMyOEUgLyogQXBwbGljYXRpb25TdGF0ZVRyYWNrZXIuaCBpbiBIZWFkZXJzICovLAogCQkJ
CTQ5MzEwMkJEMjY4M0YzRDAwMDJCQjg4NSAvKiBBcHBQcml2YWN5UmVwb3J0LmggaW4gSGVhZGVy
cyAqLywKQEAgLTEyOTU4LDYgKzEyOTgxLDcgQEAKIAkJCQk1MUIxNUE4NTEzODQzQTM5MDAzMjFB
RDggLyogRW52aXJvbm1lbnRVdGlsaXRpZXMuaCBpbiBIZWFkZXJzICovLAogCQkJCTFBQTU3NUZC
MTQ5NkI1MjYwMEE0RUUwNiAvKiBFdmVudERpc3BhdGNoZXIuaCBpbiBIZWFkZXJzICovLAogCQkJ
CTU3MkVCQkQ3MjUzN0VCQUUwMDA1NTJCMyAvKiBFeHRyYVByaXZhdGVTeW1ib2xzRm9yVEFQSS5o
IGluIEhlYWRlcnMgKi8sCisJCQkJRUJBOEQzQjMyN0E1RTMzRjAwQ0I3OTAwIC8qIEZha2VQdXNo
U2VydmljZUNvbm5lY3Rpb24uaCBpbiBIZWFkZXJzICovLAogCQkJCTU3QjgyNjQ4MjMwNTBDNTEw
MEI3MkVCMCAvKiBGaWRvU2VydmljZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJOTMxQTFCRTIyNkY4
NzAwOTAwODFBN0U1IC8qIEZpbGVTeXN0ZW1TdG9yYWdlRXJyb3IuaCBpbiBIZWFkZXJzICovLAog
CQkJCTkzMTJCQUQ2MjZGMzNDMjkwMEZEREY1RiAvKiBGaWxlU3lzdGVtU3RvcmFnZUhhbmRsZS5o
IGluIEhlYWRlcnMgKi8sCkBAIC0xMzIwMiw2ICsxMzIyNiw3IEBACiAJCQkJNTE3QjVGODEyNzVF
OTdCNjAwMkRDMjJEIC8qIFB1c2hBcHBCdW5kbGUuaCBpbiBIZWFkZXJzICovLAogCQkJCTUxN0I1
RjdEMjc1RTk3QjYwMDJEQzIyRCAvKiBQdXNoQ2xpZW50Q29ubmVjdGlvbi5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkJNTE3QjVGOTUyNzVFQkE2MzAwMkRDMjJEIC8qIFB1c2hNZXNzYWdlRm9yVGVzdGlu
Zy5oIGluIEhlYWRlcnMgKi8sCisJCQkJRUJBOEQzQjUyN0E1RTMzRjAwQ0I3OTAwIC8qIFB1c2hT
ZXJ2aWNlQ29ubmVjdGlvbi5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQTFFNjg4NzAxRjZFMkJBQjAw
NzAwNkE2IC8qIFF1YXJhbnRpbmVTUEkuaCBpbiBIZWFkZXJzICovLAogCQkJCTFBMEMyMjdFMjQ1
MTEzMEEwMEVENjE0RCAvKiBRdWlja0xvb2tUaHVtYm5haWxpbmdTb2Z0TGluay5oIGluIEhlYWRl
cnMgKi8sCiAJCQkJMUFFRTU3MjUyNDA5RjE0MjAwMjAwNUQ2IC8qIFF1aWNrTG9va1RodW1ibmFp
bExvYWRlci5oIGluIEhlYWRlcnMgKi8sCkBAIC0xNTM5NSw2ICsxNTQyMCw3IEBACiAJCQkJOTlF
NzE4OUEyMUY3OUQ5RTAwNTVFOTc1IC8qIF9XS1RvdWNoRXZlbnRHZW5lcmF0b3IubW0gaW4gU291
cmNlcyAqLywKIAkJCQk1NzJFQkJEQTI1MzhGNkI0MDAwNTUyQjMgLyogQXBwQXR0ZXN0SW50ZXJu
YWxTb2Z0TGluay5tbSBpbiBTb3VyY2VzICovLAogCQkJCTUxN0I1RjdFMjc1RTk3QjYwMDJEQzIy
RCAvKiBBcHBCdW5kbGVSZXF1ZXN0Lm1tIGluIFNvdXJjZXMgKi8sCisJCQkJRUJBOEQzQjIyN0E1
RTMzRjAwQ0I3OTAwIC8qIEFwcGxlUHVzaFNlcnZpY2VDb25uZWN0aW9uLm1tIGluIFNvdXJjZXMg
Ki8sCiAJCQkJMkRFQjFEMkUyMTI3NDczNjAwOTMzOTA2IC8qIEFyZ3VtZW50Q29kZXJzQ0YuY3Bw
IGluIFNvdXJjZXMgKi8sCiAJCQkJQ0Q0NTcwRDQyNDQxMUQwRjAwQTNEQ0VCIC8qIEF1ZGlvU2Vz
c2lvblJvdXRpbmdBcmJpdHJhdG9yLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUNENDU3MEQzMjQ0
MTEzQjUwMEEzRENFQiAvKiBBdWRpb1Nlc3Npb25Sb3V0aW5nQXJiaXRyYXRvclByb3h5TWVzc2Fn
ZVJlY2VpdmVyLmNwcCBpbiBTb3VyY2VzICovLApAQCAtMTU0MTIsNiArMTU0MzgsNyBAQAogCQkJ
CTFBNjQyMzA4MTJERDA5RUIwMENBQUUyQyAvKiBEcmF3aW5nQXJlYVByb3h5TWVzc2FnZVJlY2Vp
dmVyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUNEQ0RDOTlFMjQ4RkU4REEwMEE2OTUyMiAvKiBF
bmRvd21lbnRTdGF0ZVRyYWNrZXIubW0gaW4gU291cmNlcyAqLywKIAkJCQkxQUE1NzYwMjE0OTZC
OTc5MDBBNEVFMDYgLyogRXZlbnREaXNwYXRjaGVyTWVzc2FnZVJlY2VpdmVyLmNwcCBpbiBTb3Vy
Y2VzICovLAorCQkJCUVCQThEM0I2MjdBNUUzM0YwMENCNzkwMCAvKiBGYWtlUHVzaFNlcnZpY2VD
b25uZWN0aW9uLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJQ0RBOTNEQjEyMkY4QkNGNDAwNDkwQTY5
IC8qIEZ1bGxzY3JlZW5Ub3VjaFNlY2hldXJpc3RpY1BhcmFtZXRlcnMuY3BwIGluIFNvdXJjZXMg
Ki8sCiAJCQkJQzFBMTUyRDcyNEU1QTI5QTAwOTc4QzhCIC8qIEhhbmRsZVhQQ0VuZHBvaW50TWVz
c2FnZXMubW0gaW4gU291cmNlcyAqLywKIAkJCQkyNzQ5RjY0NDIxNDY1NjFCMDA4MzgwQkYgLyog
SW5qZWN0ZWRCdW5kbGVOb2RlSGFuZGxlLmNwcCBpbiBTb3VyY2VzICovLApAQCAtMTU0NTMsNiAr
MTU0ODAsNyBAQAogCQkJCTJENTRDMzFCMjEyRjREQTYwMDQ5QzE3NCAvKiBQcm9jZXNzTGF1bmNo
ZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJNTE3QjVGODIyNzVFOTdCNjAwMkRDMjJEIC8qIFB1
c2hBcHBCdW5kbGUubW0gaW4gU291cmNlcyAqLywKIAkJCQk1MTdCNUY3QjI3NUU5N0E5MDAyREMy
MkQgLyogUHVzaENsaWVudENvbm5lY3Rpb24ubW0gaW4gU291cmNlcyAqLywKKwkJCQlFQkE4RDNC
NzI3QTVFMzNGMDBDQjc5MDAgLyogUHVzaFNlcnZpY2VDb25uZWN0aW9uLm1tIGluIFNvdXJjZXMg
Ki8sCiAJCQkJMUEwQzIyN0YyNDUxMTMwQTAwRUQ2MTREIC8qIFF1aWNrTG9va1RodW1ibmFpbGlu
Z1NvZnRMaW5rLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJMUEwQzIyNUUyNDM1NzVDRDAwRUQ2MTRE
IC8qIFF1aWNrTG9va1RodW1ibmFpbExvYWRlci5tbSBpbiBTb3VyY2VzICovLAogCQkJCTlCMTIy
OUNFMjNGRjI1RjIwMDhDQTc1MSAvKiBSZW1vdGVBdWRpb0Rlc3RpbmF0aW9uTWFuYWdlci5jcHAg
aW4gU291cmNlcyAqLywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvd2VicHVzaGQvQXBwbGVQ
dXNoU2VydmljZUNvbm5lY3Rpb24uaCBiL1NvdXJjZS9XZWJLaXQvd2VicHVzaGQvQXBwbGVQdXNo
U2VydmljZUNvbm5lY3Rpb24uaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi43YjA0YTQ1NmMzYzg5YjVkMTI1MmEwYWY4
MGVkOTc2NjA5NTE1MTE3Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC93ZWJwdXNo
ZC9BcHBsZVB1c2hTZXJ2aWNlQ29ubmVjdGlvbi5oCkBAIC0wLDAgKzEsNjkgQEAKKy8qCisgKiBD
b3B5cmlnaHQgKEMpIDIwMjIgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAq
IFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGgg
b3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQg
dGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRp
b25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVj
ZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0
aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9u
LgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRT
IENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdB
UlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQg
V0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxB
UgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5D
LiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElS
RUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFM
IERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgor
ICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBS
T0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBP
TiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklD
VCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkK
KyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBF
VkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAq
LworCisjcHJhZ21hIG9uY2UKKworI2lmIEhBVkUoQVBQTEVfUFVTSF9TRVJWSUNFX1VSTF9UT0tF
Tl9TVVBQT1JUKQorCisjaW5jbHVkZSAiQXBwbGVQdXNoU2VydmljZVNQSS5oIgorI2luY2x1ZGUg
IlB1c2hTZXJ2aWNlQ29ubmVjdGlvbi5oIgorI2luY2x1ZGUgPHd0Zi9IYXNoTWFwLmg+CisjaW5j
bHVkZSA8d3RmL1JldGFpblB0ci5oPgorCituYW1lc3BhY2UgV2ViUHVzaEQgeworCitjbGFzcyBB
cHBsZVB1c2hTZXJ2aWNlQ29ubmVjdGlvbiA6IHB1YmxpYyBQdXNoU2VydmljZUNvbm5lY3Rpb24g
eworICAgIFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOworcHVibGljOgorICAgIEFwcGxlUHVzaFNl
cnZpY2VDb25uZWN0aW9uKGNvbnN0IFN0cmluZyYgaW5jb21pbmdQdXNoU2VydmljZU5hbWUpOwor
ICAgIHZpcnR1YWwgfkFwcGxlUHVzaFNlcnZpY2VDb25uZWN0aW9uKCk7CisKKyAgICB2b2lkIHN1
YnNjcmliZShjb25zdCBTdHJpbmcmIHRvcGljLCBjb25zdCBWZWN0b3I8dWludDhfdD4mIHZhcGlk
UHVibGljS2V5LCBTdWJzY3JpYmVIYW5kbGVyJiYpIGZpbmFsOworICAgIHZvaWQgdW5zdWJzY3Jp
YmUoY29uc3QgU3RyaW5nJiB0b3BpYywgY29uc3QgVmVjdG9yPHVpbnQ4X3Q+JiB2YXBpZFB1Ymxp
Y0tleSwgVW5zdWJzY3JpYmVIYW5kbGVyJiYpIGZpbmFsOworCisgICAgVmVjdG9yPFN0cmluZz4g
ZW5hYmxlZFRvcGljcygpIGZpbmFsOworICAgIFZlY3RvcjxTdHJpbmc+IGlnbm9yZWRUb3BpY3Mo
KSBmaW5hbDsKKyAgICBWZWN0b3I8U3RyaW5nPiBvcHBvcnR1bmlzdGljVG9waWNzKCkgZmluYWw7
CisgICAgVmVjdG9yPFN0cmluZz4gbm9uV2FraW5nVG9waWNzKCkgZmluYWw7CisKKyAgICB2b2lk
IHNldEVuYWJsZWRUb3BpY3MoY29uc3QgVmVjdG9yPFN0cmluZz4mKSBmaW5hbDsKKyAgICB2b2lk
IHNldElnbm9yZWRUb3BpY3MoY29uc3QgVmVjdG9yPFN0cmluZz4mKSBmaW5hbDsKKyAgICB2b2lk
IHNldE9wcG9ydHVuaXN0aWNUb3BpY3MoY29uc3QgVmVjdG9yPFN0cmluZz4mKSBmaW5hbDsKKyAg
ICB2b2lkIHNldE5vbldha2luZ1RvcGljcyhjb25zdCBWZWN0b3I8U3RyaW5nPiYpIGZpbmFsOwor
CisgICAgdm9pZCBzZXRUb3BpY0xpc3RzKFRvcGljTGlzdHMmJikgZmluYWw7CisKK3ByaXZhdGU6
CisgICAgUmV0YWluUHRyPEFQU0Nvbm5lY3Rpb24+IG1fY29ubmVjdGlvbjsKKyAgICBSZXRhaW5Q
dHI8aWQ8QVBTQ29ubmVjdGlvbkRlbGVnYXRlPj4gbV9kZWxlZ2F0ZTsKKyAgICB1bnNpZ25lZCBt
X2hhbmRsZXJJZGVudGlmaWVyIHsgMCB9OworICAgIEhhc2hNYXA8dW5zaWduZWQsIFN1YnNjcmli
ZUhhbmRsZXI+IG1fc3Vic2NyaWJlSGFuZGxlcnM7CisgICAgSGFzaE1hcDx1bnNpZ25lZCwgVW5z
dWJzY3JpYmVIYW5kbGVyPiBtX3Vuc3Vic2NyaWJlSGFuZGxlcnM7Cit9OworCit9IC8vIG5hbWVz
cGFjZSBXZWJQdXNoRAorCisjZW5kaWYgLy8gSEFWRShBUFBMRV9QVVNIX1NFUlZJQ0VfVVJMX1RP
S0VOX1NVUFBPUlQpCisKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvd2VicHVzaGQvQXBwbGVQ
dXNoU2VydmljZUNvbm5lY3Rpb24ubW0gYi9Tb3VyY2UvV2ViS2l0L3dlYnB1c2hkL0FwcGxlUHVz
aFNlcnZpY2VDb25uZWN0aW9uLm1tCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmZlMjAzMWU0ODZjNmFhODJlNDY5MDc0
ZGQ1YTM2NjE0ZTFhNmM0ZTYKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L3dlYnB1
c2hkL0FwcGxlUHVzaFNlcnZpY2VDb25uZWN0aW9uLm1tCkBAIC0wLDAgKzEsMTUyIEBACisvKgor
ICogQ29weXJpZ2h0IChDKSAyMDIyIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAq
CisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3
aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0
aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJp
YnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Cisg
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXBy
b2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1l
bnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1
dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5E
IElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElF
RCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBM
SUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJ
Q1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExF
IElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJ
TkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVO
VElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQg
T0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBP
UiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBB
TkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBT
VFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJ
U0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FS
RSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0Uu
CisgKi8KKworI2ltcG9ydCAiY29uZmlnLmgiCisjaW1wb3J0ICJBcHBsZVB1c2hTZXJ2aWNlQ29u
bmVjdGlvbi5oIgorCisjaWYgSEFWRShBUFBMRV9QVVNIX1NFUlZJQ0VfVVJMX1RPS0VOX1NVUFBP
UlQpCisKKyNpbXBvcnQgPHd0Zi9jb2NvYS9WZWN0b3JDb2NvYS5oPgorCitAaW50ZXJmYWNlIF9X
S0FQU0Nvbm5lY3Rpb25EZWxlZ2F0ZSA6IE5TT2JqZWN0PEFQU0Nvbm5lY3Rpb25EZWxlZ2F0ZT4g
eworICAgIFdlYlB1c2hEOjpBcHBsZVB1c2hTZXJ2aWNlQ29ubmVjdGlvbiAqX2Nvbm5lY3Rpb247
Cit9CitAZW5kCisKK0BpbXBsZW1lbnRhdGlvbiBfV0tBUFNDb25uZWN0aW9uRGVsZWdhdGUKKwor
LSAoaW5zdGFuY2V0eXBlKWluaXRXaXRoQ29ubmVjdGlvbjooV2ViUHVzaEQ6OkFwcGxlUHVzaFNl
cnZpY2VDb25uZWN0aW9uICopY29ubmVjdGlvbgoreworICAgIGlmICgoc2VsZiA9IFtzdXBlciBp
bml0XSkpCisgICAgICAgIF9jb25uZWN0aW9uID0gY29ubmVjdGlvbjsKKyAgICByZXR1cm4gc2Vs
ZjsKK30KKworLSAodm9pZCljb25uZWN0aW9uOihBUFNDb25uZWN0aW9uICopY29ubmVjdGlvbiBk
aWRSZWNlaXZlUHVibGljVG9rZW46KE5TRGF0YSAqKXB1YmxpY1Rva2VuCit7CisgICAgVU5VU0VE
X1BBUkFNKGNvbm5lY3Rpb24pOworICAgIFVOVVNFRF9QQVJBTShwdWJsaWNUb2tlbik7Cit9CisK
Ky0gKHZvaWQpY29ubmVjdGlvbjooQVBTQ29ubmVjdGlvbiAqKWNvbm5lY3Rpb24gZGlkUmVjZWl2
ZUluY29taW5nTWVzc2FnZTooQVBTSW5jb21pbmdNZXNzYWdlICopbWVzc2FnZQoreworICAgIFVO
VVNFRF9QQVJBTShjb25uZWN0aW9uKTsKKyAgICBfY29ubmVjdGlvbi0+ZGlkUmVjZWl2ZVB1c2hN
ZXNzYWdlKG1lc3NhZ2UudG9waWMsIG1lc3NhZ2UudXNlckluZm8pOworfQorCitAZW5kCisKK25h
bWVzcGFjZSBXZWJQdXNoRCB7CisKK0FwcGxlUHVzaFNlcnZpY2VDb25uZWN0aW9uOjpBcHBsZVB1
c2hTZXJ2aWNlQ29ubmVjdGlvbihjb25zdCBTdHJpbmcmIGluY29taW5nUHVzaFNlcnZpY2VOYW1l
KQoreworICAgIG1fY29ubmVjdGlvbiA9IGFkb3B0TlMoW1tBUFNDb25uZWN0aW9uIGFsbG9jXSBp
bml0V2l0aEVudmlyb25tZW50TmFtZTpBUFNFbnZpcm9ubWVudFByb2R1Y3Rpb24gbmFtZWREZWxl
Z2F0ZVBvcnQ6aW5jb21pbmdQdXNoU2VydmljZU5hbWUgcXVldWU6ZGlzcGF0Y2hfZ2V0X21haW5f
cXVldWUoKV0pOworICAgIG1fZGVsZWdhdGUgPSBhZG9wdE5TKFtbX1dLQVBTQ29ubmVjdGlvbkRl
bGVnYXRlIGFsbG9jXSBpbml0V2l0aENvbm5lY3Rpb246dGhpc10pOworICAgIFttX2Nvbm5lY3Rp
b24gc2V0RGVsZWdhdGU6bV9kZWxlZ2F0ZS5nZXQoKV07Cit9CisKK0FwcGxlUHVzaFNlcnZpY2VD
b25uZWN0aW9uOjp+QXBwbGVQdXNoU2VydmljZUNvbm5lY3Rpb24oKSA9IGRlZmF1bHQ7CisKK3N0
YXRpYyBSZXRhaW5QdHI8QVBTVVJMVG9rZW5JbmZvPiBtYWtlVG9rZW5JbmZvKGNvbnN0IFN0cmlu
ZyYgdG9waWMsIGNvbnN0IFZlY3Rvcjx1aW50OF90PiYgdmFwaWRQdWJsaWNLZXkpCit7CisgICAg
YXV0byBzZXJ2ZXJQdWJsaWNLZXkgPSBhZG9wdE5TKFtbTlNEYXRhIGFsbG9jXSBpbml0V2l0aEJ5
dGVzOnZhcGlkUHVibGljS2V5LmRhdGEoKSBsZW5ndGg6dmFwaWRQdWJsaWNLZXkuc2l6ZSgpXSk7
CisgICAgcmV0dXJuIGFkb3B0TlMoW1tBUFNVUkxUb2tlbkluZm8gYWxsb2NdIGluaXRXaXRoVG9w
aWM6dG9waWMgdmFwaWRQdWJsaWNLZXk6c2VydmVyUHVibGljS2V5LmdldCgpXSk7Cit9CisKK3Zv
aWQgQXBwbGVQdXNoU2VydmljZUNvbm5lY3Rpb246OnN1YnNjcmliZShjb25zdCBTdHJpbmcmIHRv
cGljLCBjb25zdCBWZWN0b3I8dWludDhfdD4mIHZhcGlkUHVibGljS2V5LCBTdWJzY3JpYmVIYW5k
bGVyJiYgc3Vic2NyaWJlSGFuZGxlcikKK3sKKyAgICAvLyBTdGFzaCB0aGUgY29tcGxldGlvbiBo
YW5kbGVyIGF3YXkgYW5kIGxvb2sgaXQgdXAgYnkgaWQgc28gdGhhdCB3ZSBjYW4gZW5zdXJlIGl0
IGdldHMgZGVzdHJ1Y3RlZCBvbiB0aGUgbWFpbiB0aHJlYWQuIElmIHdlIG1vdmUgdGhlIGhhbmRs
ZXIgYW5kIGNhcHR1cmUgaXQgaW4gdGhlIE9iai1DIGJsb2NrLCBpdCBtaWdodCBnZXQgZGVzdHJ1
Y3RlZCBvbiBhIHNlY29uZGFyeSB0aHJlYWQgc2luY2UgdGhpcyBjb21wbGV0aW9uIGJsb2NrIG1v
dmVzIGJldHdlZW4gZGlmZmVyZW50IGRpc3BhdGNoIHF1ZXVlcyBpbiB0aGUgQVBTIGltcGxlbWVu
dGF0aW9uLgorICAgIGF1dG8gaWRlbnRpZmllciA9ICsrbV9oYW5kbGVySWRlbnRpZmllcjsKKyAg
ICBtX3N1YnNjcmliZUhhbmRsZXJzLmFkZChpZGVudGlmaWVyLCBXVEZNb3ZlKHN1YnNjcmliZUhh
bmRsZXIpKTsKKworICAgIFttX2Nvbm5lY3Rpb24gcmVxdWVzdFVSTFRva2VuRm9ySW5mbzptYWtl
VG9rZW5JbmZvKHRvcGljLCB2YXBpZFB1YmxpY0tleSkuZ2V0KCkgY29tcGxldGlvbjpeKEFQU1VS
TFRva2VuICp0b2tlbiwgTlNFcnJvciAqZXJyb3IpIHsKKyAgICAgICAgYXV0byBoYW5kbGVyID0g
bV9zdWJzY3JpYmVIYW5kbGVycy50YWtlKGlkZW50aWZpZXIpOworICAgICAgICBoYW5kbGVyKHRv
a2VuLnRva2VuVVJMLCBlcnJvcik7CisgICAgfV07Cit9CisKK3ZvaWQgQXBwbGVQdXNoU2Vydmlj
ZUNvbm5lY3Rpb246OnVuc3Vic2NyaWJlKGNvbnN0IFN0cmluZyYgdG9waWMsIGNvbnN0IFZlY3Rv
cjx1aW50OF90PiYgdmFwaWRQdWJsaWNLZXksIFVuc3Vic2NyaWJlSGFuZGxlciYmIHVuc3Vic2Ny
aWJlSGFuZGxlcikKK3sKKyAgICAvLyBTZWUgc3Vic2NyaWJlIGZvciB3aHkgd2Ugc3Rhc2ggdGhl
IGhhbmRsZXIgaW50byBhIG1hcC4KKyAgICBhdXRvIGlkZW50aWZpZXIgPSArK21faGFuZGxlcklk
ZW50aWZpZXI7CisgICAgbV91bnN1YnNjcmliZUhhbmRsZXJzLmFkZChpZGVudGlmaWVyLCBXVEZN
b3ZlKHVuc3Vic2NyaWJlSGFuZGxlcikpOworCisgICAgW21fY29ubmVjdGlvbiBpbnZhbGlkYXRl
VVJMVG9rZW5Gb3JJbmZvOm1ha2VUb2tlbkluZm8odG9waWMsIHZhcGlkUHVibGljS2V5KS5nZXQo
KSBjb21wbGV0aW9uOl4oQk9PTCBzdWNjZXNzLCBOU0Vycm9yICplcnJvcikgeworICAgICAgICAv
LyBGSVhNRTogcmVtb3ZlIHRoaXMgb25jZSBBUFMgc3RvcHMgY2FsbGluZyBiYWNrIG9uIHRoZSB3
cm9uZyBxdWV1ZSAocmRhcjovLzg4MTAwMjc1KS4KKyAgICAgICAgZGlzcGF0Y2hfYXN5bmMoZGlz
cGF0Y2hfZ2V0X21haW5fcXVldWUoKSwgXnsKKyAgICAgICAgICAgIGF1dG8gaGFuZGxlciA9IG1f
dW5zdWJzY3JpYmVIYW5kbGVycy50YWtlKGlkZW50aWZpZXIpOworICAgICAgICAgICAgaGFuZGxl
cihzdWNjZXNzLCBlcnJvcik7CisgICAgICAgIH0pOworICAgIH1dOworfQorCitWZWN0b3I8U3Ry
aW5nPiBBcHBsZVB1c2hTZXJ2aWNlQ29ubmVjdGlvbjo6ZW5hYmxlZFRvcGljcygpCit7CisgICAg
cmV0dXJuIG1ha2VWZWN0b3I8U3RyaW5nPihbbV9jb25uZWN0aW9uIGVuYWJsZWRUb3BpY3NdKTsK
K30KKworVmVjdG9yPFN0cmluZz4gQXBwbGVQdXNoU2VydmljZUNvbm5lY3Rpb246Omlnbm9yZWRU
b3BpY3MoKQoreworICAgIHJldHVybiBtYWtlVmVjdG9yPFN0cmluZz4oW21fY29ubmVjdGlvbiBp
Z25vcmVkVG9waWNzXSk7Cit9CisKK1ZlY3RvcjxTdHJpbmc+IEFwcGxlUHVzaFNlcnZpY2VDb25u
ZWN0aW9uOjpvcHBvcnR1bmlzdGljVG9waWNzKCkKK3sKKyAgICByZXR1cm4gbWFrZVZlY3RvcjxT
dHJpbmc+KFttX2Nvbm5lY3Rpb24gb3Bwb3J0dW5pc3RpY1RvcGljc10pOworfQorCitWZWN0b3I8
U3RyaW5nPiBBcHBsZVB1c2hTZXJ2aWNlQ29ubmVjdGlvbjo6bm9uV2FraW5nVG9waWNzKCkKK3sK
KyAgICByZXR1cm4gbWFrZVZlY3RvcjxTdHJpbmc+KFttX2Nvbm5lY3Rpb24gbm9uV2FraW5nVG9w
aWNzXSk7Cit9CisKK3ZvaWQgQXBwbGVQdXNoU2VydmljZUNvbm5lY3Rpb246OnNldEVuYWJsZWRU
b3BpY3MoY29uc3QgVmVjdG9yPFN0cmluZz4mIHRvcGljcykKK3sKKyAgICBbbV9jb25uZWN0aW9u
IF9zZXRFbmFibGVkVG9waWNzOmNyZWF0ZU5TQXJyYXkodG9waWNzKS5nZXQoKV07Cit9CisKK3Zv
aWQgQXBwbGVQdXNoU2VydmljZUNvbm5lY3Rpb246OnNldElnbm9yZWRUb3BpY3MoY29uc3QgVmVj
dG9yPFN0cmluZz4mIHRvcGljcykKK3sKKyAgICBbbV9jb25uZWN0aW9uIF9zZXRJZ25vcmVkVG9w
aWNzOmNyZWF0ZU5TQXJyYXkodG9waWNzKS5nZXQoKV07Cit9CisKK3ZvaWQgQXBwbGVQdXNoU2Vy
dmljZUNvbm5lY3Rpb246OnNldE9wcG9ydHVuaXN0aWNUb3BpY3MoY29uc3QgVmVjdG9yPFN0cmlu
Zz4mIHRvcGljcykKK3sKKyAgICBbbV9jb25uZWN0aW9uIF9zZXRPcHBvcnR1bmlzdGljVG9waWNz
OmNyZWF0ZU5TQXJyYXkodG9waWNzKS5nZXQoKV07Cit9CisKK3ZvaWQgQXBwbGVQdXNoU2Vydmlj
ZUNvbm5lY3Rpb246OnNldE5vbldha2luZ1RvcGljcyhjb25zdCBWZWN0b3I8U3RyaW5nPiYgdG9w
aWNzKQoreworICAgIFttX2Nvbm5lY3Rpb24gX3NldE5vbldha2luZ1RvcGljczpjcmVhdGVOU0Fy
cmF5KHRvcGljcykuZ2V0KCldOworfQorCit2b2lkIEFwcGxlUHVzaFNlcnZpY2VDb25uZWN0aW9u
OjpzZXRUb3BpY0xpc3RzKFRvcGljTGlzdHMmJiB0b3BpY0xpc3RzKQoreworICAgIFttX2Nvbm5l
Y3Rpb24gc2V0RW5hYmxlZFRvcGljczpjcmVhdGVOU0FycmF5KHRvcGljTGlzdHMuZW5hYmxlZFRv
cGljcykuZ2V0KCkgaWdub3JlZFRvcGljczpjcmVhdGVOU0FycmF5KHRvcGljTGlzdHMuaWdub3Jl
ZFRvcGljcykuZ2V0KCkgb3Bwb3J0dW5pc3RpY1RvcGljczpjcmVhdGVOU0FycmF5KHRvcGljTGlz
dHMub3Bwb3J0dW5pc3RpY1RvcGljcykuZ2V0KCkgbm9uV2FraW5nVG9waWNzOmNyZWF0ZU5TQXJy
YXkodG9waWNMaXN0cy5ub25XYWtpbmdUb3BpY3MpLmdldCgpXTsKK30KKworfSAvLyBuYW1lc3Bh
Y2UgV2ViUHVzaEQKKworI2VuZGlmIC8vIEhBVkUoQVBQTEVfUFVTSF9TRVJWSUNFX1VSTF9UT0tF
Tl9TVVBQT1JUKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC93ZWJwdXNoZC9GYWtlUHVzaFNl
cnZpY2VDb25uZWN0aW9uLmggYi9Tb3VyY2UvV2ViS2l0L3dlYnB1c2hkL0Zha2VQdXNoU2Vydmlj
ZUNvbm5lY3Rpb24uaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4zOGU4NTViYjQ0MTRkZWIyMjFiZTdhYzBjNDdiYTU4
YjFkYzNkZDE0Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC93ZWJwdXNoZC9GYWtl
UHVzaFNlcnZpY2VDb25uZWN0aW9uLmgKQEAgLTAsMCArMSw1NiBAQAorLyoKKyAqIENvcHlyaWdo
dCAoQykgMjAyMiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0
cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRo
b3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9s
bG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Yg
c291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgor
ICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5k
L29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgor
ICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJ
QlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElF
UywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5U
SUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQ
VVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElU
UyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElO
Q0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdF
UyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJT
VElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsg
T1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBU
SEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJ
TElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJ
U0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYg
QURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNw
cmFnbWEgb25jZQorCisjaW5jbHVkZSAiUHVzaFNlcnZpY2VDb25uZWN0aW9uLmgiCisjaW5jbHVk
ZSA8d3RmL0hhc2hNYXAuaD4KKyNpbmNsdWRlIDx3dGYvUmV0YWluUHRyLmg+CisKK25hbWVzcGFj
ZSBXZWJQdXNoRCB7CisKK2NsYXNzIEZha2VQdXNoU2VydmljZUNvbm5lY3Rpb24gOiBwdWJsaWMg
UHVzaFNlcnZpY2VDb25uZWN0aW9uIHsKKyAgICBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsKK3B1
YmxpYzoKKyAgICBGYWtlUHVzaFNlcnZpY2VDb25uZWN0aW9uKCk7CisgICAgdmlydHVhbCB+RmFr
ZVB1c2hTZXJ2aWNlQ29ubmVjdGlvbigpOworCisgICAgdm9pZCBzdWJzY3JpYmUoY29uc3QgU3Ry
aW5nJiB0b3BpYywgY29uc3QgVmVjdG9yPHVpbnQ4X3Q+JiB2YXBpZFB1YmxpY0tleSwgU3Vic2Ny
aWJlSGFuZGxlciYmKSBmaW5hbDsKKyAgICB2b2lkIHVuc3Vic2NyaWJlKGNvbnN0IFN0cmluZyYg
dG9waWMsIGNvbnN0IFZlY3Rvcjx1aW50OF90PiYgdmFwaWRQdWJsaWNLZXksIFVuc3Vic2NyaWJl
SGFuZGxlciYmKSBmaW5hbDsKKworICAgIFZlY3RvcjxTdHJpbmc+IGVuYWJsZWRUb3BpY3MoKSBm
aW5hbDsKKyAgICBWZWN0b3I8U3RyaW5nPiBpZ25vcmVkVG9waWNzKCkgZmluYWw7CisgICAgVmVj
dG9yPFN0cmluZz4gb3Bwb3J0dW5pc3RpY1RvcGljcygpIGZpbmFsOworICAgIFZlY3RvcjxTdHJp
bmc+IG5vbldha2luZ1RvcGljcygpIGZpbmFsOworCisgICAgdm9pZCBzZXRFbmFibGVkVG9waWNz
KGNvbnN0IFZlY3RvcjxTdHJpbmc+JikgZmluYWw7CisgICAgdm9pZCBzZXRJZ25vcmVkVG9waWNz
KGNvbnN0IFZlY3RvcjxTdHJpbmc+JikgZmluYWw7CisgICAgdm9pZCBzZXRPcHBvcnR1bmlzdGlj
VG9waWNzKGNvbnN0IFZlY3RvcjxTdHJpbmc+JikgZmluYWw7CisgICAgdm9pZCBzZXROb25XYWtp
bmdUb3BpY3MoY29uc3QgVmVjdG9yPFN0cmluZz4mKSBmaW5hbDsKKworICAgIHZvaWQgc2V0VG9w
aWNMaXN0cyhUb3BpY0xpc3RzJiYpIGZpbmFsOworfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViUHVz
aEQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvd2VicHVzaGQvRmFrZVB1c2hTZXJ2aWNlQ29u
bmVjdGlvbi5tbSBiL1NvdXJjZS9XZWJLaXQvd2VicHVzaGQvRmFrZVB1c2hTZXJ2aWNlQ29ubmVj
dGlvbi5tbQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi5jYTMxMzc2ZWNkYTNjNjU1MjYyNDk1ZDY0ZWVlMDg4NjI4ZDI1
Y2IyCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC93ZWJwdXNoZC9GYWtlUHVzaFNl
cnZpY2VDb25uZWN0aW9uLm1tCkBAIC0wLDAgKzEsODcgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMp
IDIwMjIgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0
aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAor
ICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2lu
ZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJj
ZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIu
IFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUg
Y29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBv
dGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRI
SVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9S
UyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBP
RiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9T
RSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09O
VFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVO
VEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVU
RSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJV
U0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZ
IE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFks
IE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcg
SU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklT
RUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW1wb3J0
ICJjb25maWcuaCIKKyNpbXBvcnQgIkZha2VQdXNoU2VydmljZUNvbm5lY3Rpb24uaCIKKworbmFt
ZXNwYWNlIFdlYlB1c2hEIHsKKworRmFrZVB1c2hTZXJ2aWNlQ29ubmVjdGlvbjo6RmFrZVB1c2hT
ZXJ2aWNlQ29ubmVjdGlvbigpCit7Cit9CisKK0Zha2VQdXNoU2VydmljZUNvbm5lY3Rpb246On5G
YWtlUHVzaFNlcnZpY2VDb25uZWN0aW9uKCkgPSBkZWZhdWx0OworCit2b2lkIEZha2VQdXNoU2Vy
dmljZUNvbm5lY3Rpb246OnN1YnNjcmliZShjb25zdCBTdHJpbmcmLCBjb25zdCBWZWN0b3I8dWlu
dDhfdD4mLCBTdWJzY3JpYmVIYW5kbGVyJiYgaGFuZGxlcikKK3sKKyAgICBoYW5kbGVyKHsgfSwg
W05TRXJyb3IgZXJyb3JXaXRoRG9tYWluOk5TQ29jb2FFcnJvckRvbWFpbiBjb2RlOk5TRmVhdHVy
ZVVuc3VwcG9ydGVkRXJyb3IgdXNlckluZm86bmlsXSk7Cit9CisKK3ZvaWQgRmFrZVB1c2hTZXJ2
aWNlQ29ubmVjdGlvbjo6dW5zdWJzY3JpYmUoY29uc3QgU3RyaW5nJiwgY29uc3QgVmVjdG9yPHVp
bnQ4X3Q+JiwgVW5zdWJzY3JpYmVIYW5kbGVyJiYgaGFuZGxlcikKK3sKKyAgICBoYW5kbGVyKHsg
fSwgW05TRXJyb3IgZXJyb3JXaXRoRG9tYWluOk5TQ29jb2FFcnJvckRvbWFpbiBjb2RlOk5TRmVh
dHVyZVVuc3VwcG9ydGVkRXJyb3IgdXNlckluZm86bmlsXSk7Cit9CisKK1ZlY3RvcjxTdHJpbmc+
IEZha2VQdXNoU2VydmljZUNvbm5lY3Rpb246OmVuYWJsZWRUb3BpY3MoKQoreworICAgIHJldHVy
biB7IH07Cit9CisKK1ZlY3RvcjxTdHJpbmc+IEZha2VQdXNoU2VydmljZUNvbm5lY3Rpb246Omln
bm9yZWRUb3BpY3MoKQoreworICAgIHJldHVybiB7IH07Cit9CisKK1ZlY3RvcjxTdHJpbmc+IEZh
a2VQdXNoU2VydmljZUNvbm5lY3Rpb246Om9wcG9ydHVuaXN0aWNUb3BpY3MoKQoreworICAgIHJl
dHVybiB7IH07Cit9CisKK1ZlY3RvcjxTdHJpbmc+IEZha2VQdXNoU2VydmljZUNvbm5lY3Rpb246
Om5vbldha2luZ1RvcGljcygpCit7CisgICAgcmV0dXJuIHsgfTsKK30KKwordm9pZCBGYWtlUHVz
aFNlcnZpY2VDb25uZWN0aW9uOjpzZXRFbmFibGVkVG9waWNzKGNvbnN0IFZlY3RvcjxTdHJpbmc+
JiB0b3BpY3MpCit7Cit9CisKK3ZvaWQgRmFrZVB1c2hTZXJ2aWNlQ29ubmVjdGlvbjo6c2V0SWdu
b3JlZFRvcGljcyhjb25zdCBWZWN0b3I8U3RyaW5nPiYgdG9waWNzKQoreworfQorCit2b2lkIEZh
a2VQdXNoU2VydmljZUNvbm5lY3Rpb246OnNldE9wcG9ydHVuaXN0aWNUb3BpY3MoY29uc3QgVmVj
dG9yPFN0cmluZz4mIHRvcGljcykKK3sKK30KKwordm9pZCBGYWtlUHVzaFNlcnZpY2VDb25uZWN0
aW9uOjpzZXROb25XYWtpbmdUb3BpY3MoY29uc3QgVmVjdG9yPFN0cmluZz4mIHRvcGljcykKK3sK
K30KKwordm9pZCBGYWtlUHVzaFNlcnZpY2VDb25uZWN0aW9uOjpzZXRUb3BpY0xpc3RzKFRvcGlj
TGlzdHMmJiB0b3BpY0xpc3RzKQoreworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJQdXNoRApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC93ZWJwdXNoZC9QdXNoU2VydmljZUNvbm5lY3Rpb24uaCBi
L1NvdXJjZS9XZWJLaXQvd2VicHVzaGQvUHVzaFNlcnZpY2VDb25uZWN0aW9uLmgKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uM2NjNWU4OTU3ZDExMTY4YmM3MWIzMWZlYWMxZTA3NjY0Nzc1MmQyOAotLS0gL2Rldi9udWxs
CisrKyBiL1NvdXJjZS9XZWJLaXQvd2VicHVzaGQvUHVzaFNlcnZpY2VDb25uZWN0aW9uLmgKQEAg
LTAsMCArMSw4MSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMiBBcHBsZSBJbmMuIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2Ug
YW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBw
ZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBt
ZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhl
IGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJp
bmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBp
biB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRl
ZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURF
RCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFO
WSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQg
RklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBO
TyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJM
RSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFS
WSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBM
T1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElP
TikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVS
IElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5F
R0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUg
VVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklM
SVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisjaW5jbHVkZSA8d3Rm
L0NvbXBsZXRpb25IYW5kbGVyLmg+CisjaW5jbHVkZSA8d3RmL0RlcXVlLmg+CisjaW5jbHVkZSA8
d3RmL0Z1bmN0aW9uLmg+CisjaW5jbHVkZSA8d3RmL1JldGFpblB0ci5oPgorI2luY2x1ZGUgPHd0
Zi9WZWN0b3IuaD4KKyNpbmNsdWRlIDx3dGYvV29ya1F1ZXVlLmg+CisjaW5jbHVkZSA8d3RmL3Rl
eHQvV1RGU3RyaW5nLmg+CisKK09CSkNfQ0xBU1MgTlNFcnJvcjsKK09CSkNfQ0xBU1MgTlNTdHJp
bmc7CitPQkpDX0NMQVNTIE5TRGljdGlvbmFyeTsKKworbmFtZXNwYWNlIFdlYlB1c2hEIHsKKwor
Y2xhc3MgUHVzaFNlcnZpY2VDb25uZWN0aW9uIHsKK3B1YmxpYzoKKyAgICB1c2luZyBJbmNvbWlu
Z1B1c2hNZXNzYWdlSGFuZGxlciA9IEZ1bmN0aW9uPHZvaWQoTlNTdHJpbmcgKiwgTlNEaWN0aW9u
YXJ5ICopPjsKKworICAgIFB1c2hTZXJ2aWNlQ29ubmVjdGlvbigpID0gZGVmYXVsdDsKKyAgICB2
aXJ0dWFsIH5QdXNoU2VydmljZUNvbm5lY3Rpb24oKSA9IGRlZmF1bHQ7CisKKyAgICB1c2luZyBT
dWJzY3JpYmVIYW5kbGVyID0gQ29tcGxldGlvbkhhbmRsZXI8dm9pZChOU1N0cmluZyAqLCBOU0Vy
cm9yICopPjsKKyAgICB2aXJ0dWFsIHZvaWQgc3Vic2NyaWJlKGNvbnN0IFN0cmluZyYgdG9waWMs
IGNvbnN0IFZlY3Rvcjx1aW50OF90PiYgdmFwaWRQdWJsaWNLZXksIFN1YnNjcmliZUhhbmRsZXIm
JikgPSAwOworCisgICAgdXNpbmcgVW5zdWJzY3JpYmVIYW5kbGVyID0gQ29tcGxldGlvbkhhbmRs
ZXI8dm9pZChib29sLCBOU0Vycm9yICopPjsKKyAgICB2aXJ0dWFsIHZvaWQgdW5zdWJzY3JpYmUo
Y29uc3QgU3RyaW5nJiB0b3BpYywgY29uc3QgVmVjdG9yPHVpbnQ4X3Q+JiB2YXBpZFB1YmxpY0tl
eSwgVW5zdWJzY3JpYmVIYW5kbGVyJiYpID0gMDsKKworICAgIHZpcnR1YWwgVmVjdG9yPFN0cmlu
Zz4gZW5hYmxlZFRvcGljcygpID0gMDsKKyAgICB2aXJ0dWFsIFZlY3RvcjxTdHJpbmc+IGlnbm9y
ZWRUb3BpY3MoKSA9IDA7CisgICAgdmlydHVhbCBWZWN0b3I8U3RyaW5nPiBvcHBvcnR1bmlzdGlj
VG9waWNzKCkgPSAwOworICAgIHZpcnR1YWwgVmVjdG9yPFN0cmluZz4gbm9uV2FraW5nVG9waWNz
KCkgPSAwOworCisgICAgdmlydHVhbCB2b2lkIHNldEVuYWJsZWRUb3BpY3MoY29uc3QgVmVjdG9y
PFN0cmluZz4mKSA9IDA7CisgICAgdmlydHVhbCB2b2lkIHNldElnbm9yZWRUb3BpY3MoY29uc3Qg
VmVjdG9yPFN0cmluZz4mKSA9IDA7CisgICAgdmlydHVhbCB2b2lkIHNldE9wcG9ydHVuaXN0aWNU
b3BpY3MoY29uc3QgVmVjdG9yPFN0cmluZz4mKSA9IDA7CisgICAgdmlydHVhbCB2b2lkIHNldE5v
bldha2luZ1RvcGljcyhjb25zdCBWZWN0b3I8U3RyaW5nPiYpID0gMDsKKworICAgIHN0cnVjdCBU
b3BpY0xpc3RzIHsKKyAgICAgICAgVmVjdG9yPFN0cmluZz4gZW5hYmxlZFRvcGljczsKKyAgICAg
ICAgVmVjdG9yPFN0cmluZz4gaWdub3JlZFRvcGljczsKKyAgICAgICAgVmVjdG9yPFN0cmluZz4g
b3Bwb3J0dW5pc3RpY1RvcGljczsKKyAgICAgICAgVmVjdG9yPFN0cmluZz4gbm9uV2FraW5nVG9w
aWNzOworICAgIH07CisgICAgdmlydHVhbCB2b2lkIHNldFRvcGljTGlzdHMoVG9waWNMaXN0cyYm
KSA9IDA7CisKKyAgICB2b2lkIHN0YXJ0TGlzdGVuaW5nRm9yUHVzaE1lc3NhZ2VzKEluY29taW5n
UHVzaE1lc3NhZ2VIYW5kbGVyJiYpOworICAgIHZvaWQgZGlkUmVjZWl2ZVB1c2hNZXNzYWdlKE5T
U3RyaW5nICp0b3BpYywgTlNEaWN0aW9uYXJ5ICp1c2VySW5mbyk7CisKK3ByaXZhdGU6CisgICAg
SW5jb21pbmdQdXNoTWVzc2FnZUhhbmRsZXIgbV9pbmNvbWluZ1B1c2hNZXNzYWdlSGFuZGxlcjsK
KyAgICBEZXF1ZTxzdGQ6OnBhaXI8UmV0YWluUHRyPE5TU3RyaW5nPiwgUmV0YWluUHRyPE5TRGlj
dGlvbmFyeT4+PiBtX3BlbmRpbmdQdXNoZXM7Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJQdXNo
RApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC93ZWJwdXNoZC9QdXNoU2VydmljZUNvbm5lY3Rp
b24ubW0gYi9Tb3VyY2UvV2ViS2l0L3dlYnB1c2hkL1B1c2hTZXJ2aWNlQ29ubmVjdGlvbi5tbQpu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwLi41MzQzMzI1ZWI1ZWEyMDNlOGRmNmZmODMwM2NiOWIwZmZjODEzMjFiCi0tLSAv
ZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC93ZWJwdXNoZC9QdXNoU2VydmljZUNvbm5lY3Rp
b24ubW0KQEAgLTAsMCArMSw2MCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMiBBcHBsZSBJ
bmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBp
biBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRp
b24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMK
KyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCBy
ZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRp
b25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAq
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFs
cyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJ
UyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJwor
ICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJ
TElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJ
TUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAq
IEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUws
IEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNF
UlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElO
VEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZ
LCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5D
TFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9V
VCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhF
IFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbXBvcnQgImNvbmZpZy5oIgor
I2ltcG9ydCAiUHVzaFNlcnZpY2VDb25uZWN0aW9uLmgiCisKKyNpbXBvcnQgPHd0Zi9Xb3JrUXVl
dWUuaD4KKworbmFtZXNwYWNlIFdlYlB1c2hEIHsKKwordm9pZCBQdXNoU2VydmljZUNvbm5lY3Rp
b246OnN0YXJ0TGlzdGVuaW5nRm9yUHVzaE1lc3NhZ2VzKEluY29taW5nUHVzaE1lc3NhZ2VIYW5k
bGVyJiYgaGFuZGxlcikKK3sKKyAgICBtX2luY29taW5nUHVzaE1lc3NhZ2VIYW5kbGVyID0gV1RG
TW92ZShoYW5kbGVyKTsKKworICAgIGlmICghbV9wZW5kaW5nUHVzaGVzLnNpemUoKSkKKyAgICAg
ICAgcmV0dXJuOworCisgICAgV29ya1F1ZXVlOjptYWluKCkuZGlzcGF0Y2goW3RoaXNdKCkgbXV0
YWJsZSB7CisgICAgICAgIHdoaWxlIChtX3BlbmRpbmdQdXNoZXMuc2l6ZSgpKSB7CisgICAgICAg
ICAgICBAYXV0b3JlbGVhc2Vwb29sIHsKKyAgICAgICAgICAgICAgICBhdXRvIG1lc3NhZ2UgPSBt
X3BlbmRpbmdQdXNoZXMudGFrZUZpcnN0KCk7CisgICAgICAgICAgICAgICAgbV9pbmNvbWluZ1B1
c2hNZXNzYWdlSGFuZGxlcihtZXNzYWdlLmZpcnN0LmdldCgpLCBtZXNzYWdlLnNlY29uZC5nZXQo
KSk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICB9KTsKK30KKwordm9pZCBQdXNoU2Vy
dmljZUNvbm5lY3Rpb246OmRpZFJlY2VpdmVQdXNoTWVzc2FnZShOU1N0cmluZyAqdG9waWMsIE5T
RGljdGlvbmFyeSAqdXNlckluZm8pCit7CisgICAgaWYgKCFtX2luY29taW5nUHVzaE1lc3NhZ2VI
YW5kbGVyKSB7CisgICAgICAgIG1fcGVuZGluZ1B1c2hlcy5hcHBlbmQoeyB0b3BpYywgdXNlcklu
Zm8gfSk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICBtX2luY29taW5nUHVzaE1lc3Nh
Z2VIYW5kbGVyKHRvcGljLCB1c2VySW5mbyk7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYlB1c2hE
Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>450349</attachid>
            <date>2022-01-29 21:40:10 -0800</date>
            <delta_ts>2022-01-29 22:58:10 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-235856-20220129214009.patch</filename>
            <type>text/plain</type>
            <size>53769</size>
            <attacher name="Ben Nham">nham</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg4NzkyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IDNlNGJhZTUyZDUzYjdjMTEwZWNkYjQ4
OTE2MWYxMzhjZDU2YmJmYzguLmFiNjVlZjdjNDg0ZGM4OWI3YjUyY2ZkZjYxMWRlZTIxMTZkMWNj
MDkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMTQgQEAKKzIwMjItMDEtMjggIEJlbiBOaGFtICA8bmhhbUBhcHBs
ZS5jb20+CisKKyAgICAgICAgSW1wb3J0IEFQU0Nvbm5lY3Rpb24tcmVsYXRlZCBTUEkKKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIzNTg1NgorCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkZCBhIEhBVkUgbWFj
cm8gdG8gZ3VhcmQgc29tZSBvZiB0aGUgbmV3ZXIgU1BJIGluIEFQU0Nvbm5lY3Rpb24uCisKKyAg
ICAgICAgKiB3dGYvUGxhdGZvcm1IYXZlLmg6CisKIDIwMjItMDEtMjggIENocmlzIER1bWV6ICA8
Y2R1bWV6QGFwcGxlLmNvbT4KIAogICAgICAgICBBU1NFUlRJT04gRkFJTEVEOiBtX3Byb2Nlc3ND
YWxsYmFjayBpbiBXZWJDb3JlOjpBdWRpb1dvcmtsZXRQcm9jZXNzb3I6OnByb2Nlc3MKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cK
aW5kZXggZDE4YmQ3NGJlZTcwMDg2NDliZjU2YWU5NTc0MWZiMWU0OTM0YjdkYi4uNTgyYTQxMWQz
ZjQwNjNhNWYzOTBjZGY4YTJiM2JlYzYxNTM2ZTYzOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKQEAgLTEsMyArMSw1NCBA
QAorMjAyMi0wMS0yOCAgQmVuIE5oYW0gIDxuaGFtQGFwcGxlLmNvbT4KKworICAgICAgICBJbXBv
cnQgQVBTQ29ubmVjdGlvbi1yZWxhdGVkIFNQSQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjM1ODU2CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZ
IChPT1BTISkuCisKKyAgICAgICAgVGhpcyBpbXBvcnRzIHRoZSBTUEkgZGVjbGFyYXRpb25zIG5l
Y2Vzc2FyeSB0byBidWlsZCBhZ2FpbnN0IEFwcGxlUHVzaFNlcnZpY2UgaW4gV2ViS2l0LiBJdAor
ICAgICAgICBhbHNvIGluY2x1ZGVzIGEgUHVzaFNlcnZpY2VDb25uZWN0aW9uIGludGVyZmFjZSB0
aGF0IGNhbiBzaXQgaW4gZnJvbnQgb2YgQVBTQ29ubmVjdGlvbiwgYW5kCisgICAgICAgIGEgZmFr
ZSBpbnRlcmZhY2UgdGhhdCB3aWxsIGJlIGZsZXNoZWQgb3V0IGZvciB0ZXN0aW5nIHB1cnBvc2Vz
LgorCisgICAgICAgICogQ29uZmlndXJhdGlvbnMvV2ViS2l0LnhjY29uZmlnOgorICAgICAgICAq
IFBsYXRmb3JtL3NwaS9Db2NvYS9BcHBsZVB1c2hTZXJ2aWNlU1BJLmg6IEFkZGVkLgorICAgICAg
ICAqIFdlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAqIHdlYnB1c2hk
L0FwcGxlUHVzaFNlcnZpY2VDb25uZWN0aW9uLmg6IEFkZGVkLgorICAgICAgICAqIHdlYnB1c2hk
L0FwcGxlUHVzaFNlcnZpY2VDb25uZWN0aW9uLm1tOiBBZGRlZC4KKyAgICAgICAgKC1bX1dLQVBT
Q29ubmVjdGlvbkRlbGVnYXRlIGluaXRXaXRoQ29ubmVjdGlvbjpdKToKKyAgICAgICAgKC1bX1dL
QVBTQ29ubmVjdGlvbkRlbGVnYXRlIGNvbm5lY3Rpb246ZGlkUmVjZWl2ZVB1YmxpY1Rva2VuOl0p
OgorICAgICAgICAoLVtfV0tBUFNDb25uZWN0aW9uRGVsZWdhdGUgY29ubmVjdGlvbjpkaWRSZWNl
aXZlSW5jb21pbmdNZXNzYWdlOl0pOgorICAgICAgICAoV2ViUHVzaEQ6OkFwcGxlUHVzaFNlcnZp
Y2VDb25uZWN0aW9uOjpBcHBsZVB1c2hTZXJ2aWNlQ29ubmVjdGlvbik6CisgICAgICAgIChXZWJQ
dXNoRDo6bWFrZVRva2VuSW5mbyk6CisgICAgICAgIChXZWJQdXNoRDo6QXBwbGVQdXNoU2Vydmlj
ZUNvbm5lY3Rpb246OnN1YnNjcmliZSk6CisgICAgICAgIChXZWJQdXNoRDo6QXBwbGVQdXNoU2Vy
dmljZUNvbm5lY3Rpb246OnVuc3Vic2NyaWJlKToKKyAgICAgICAgKFdlYlB1c2hEOjpBcHBsZVB1
c2hTZXJ2aWNlQ29ubmVjdGlvbjo6ZW5hYmxlZFRvcGljcyk6CisgICAgICAgIChXZWJQdXNoRDo6
QXBwbGVQdXNoU2VydmljZUNvbm5lY3Rpb246Omlnbm9yZWRUb3BpY3MpOgorICAgICAgICAoV2Vi
UHVzaEQ6OkFwcGxlUHVzaFNlcnZpY2VDb25uZWN0aW9uOjpvcHBvcnR1bmlzdGljVG9waWNzKToK
KyAgICAgICAgKFdlYlB1c2hEOjpBcHBsZVB1c2hTZXJ2aWNlQ29ubmVjdGlvbjo6bm9uV2FraW5n
VG9waWNzKToKKyAgICAgICAgKFdlYlB1c2hEOjpBcHBsZVB1c2hTZXJ2aWNlQ29ubmVjdGlvbjo6
c2V0RW5hYmxlZFRvcGljcyk6CisgICAgICAgIChXZWJQdXNoRDo6QXBwbGVQdXNoU2VydmljZUNv
bm5lY3Rpb246OnNldElnbm9yZWRUb3BpY3MpOgorICAgICAgICAoV2ViUHVzaEQ6OkFwcGxlUHVz
aFNlcnZpY2VDb25uZWN0aW9uOjpzZXRPcHBvcnR1bmlzdGljVG9waWNzKToKKyAgICAgICAgKFdl
YlB1c2hEOjpBcHBsZVB1c2hTZXJ2aWNlQ29ubmVjdGlvbjo6c2V0Tm9uV2FraW5nVG9waWNzKToK
KyAgICAgICAgKFdlYlB1c2hEOjpBcHBsZVB1c2hTZXJ2aWNlQ29ubmVjdGlvbjo6c2V0VG9waWNM
aXN0cyk6CisgICAgICAgICogd2VicHVzaGQvRmFrZVB1c2hTZXJ2aWNlQ29ubmVjdGlvbi5oOiBB
ZGRlZC4KKyAgICAgICAgKiB3ZWJwdXNoZC9GYWtlUHVzaFNlcnZpY2VDb25uZWN0aW9uLm1tOiBB
ZGRlZC4KKyAgICAgICAgKFdlYlB1c2hEOjpGYWtlUHVzaFNlcnZpY2VDb25uZWN0aW9uOjpGYWtl
UHVzaFNlcnZpY2VDb25uZWN0aW9uKToKKyAgICAgICAgKFdlYlB1c2hEOjpGYWtlUHVzaFNlcnZp
Y2VDb25uZWN0aW9uOjpzdWJzY3JpYmUpOgorICAgICAgICAoV2ViUHVzaEQ6OkZha2VQdXNoU2Vy
dmljZUNvbm5lY3Rpb246OnVuc3Vic2NyaWJlKToKKyAgICAgICAgKFdlYlB1c2hEOjpGYWtlUHVz
aFNlcnZpY2VDb25uZWN0aW9uOjplbmFibGVkVG9waWNzKToKKyAgICAgICAgKFdlYlB1c2hEOjpG
YWtlUHVzaFNlcnZpY2VDb25uZWN0aW9uOjppZ25vcmVkVG9waWNzKToKKyAgICAgICAgKFdlYlB1
c2hEOjpGYWtlUHVzaFNlcnZpY2VDb25uZWN0aW9uOjpvcHBvcnR1bmlzdGljVG9waWNzKToKKyAg
ICAgICAgKFdlYlB1c2hEOjpGYWtlUHVzaFNlcnZpY2VDb25uZWN0aW9uOjpub25XYWtpbmdUb3Bp
Y3MpOgorICAgICAgICAoV2ViUHVzaEQ6OkZha2VQdXNoU2VydmljZUNvbm5lY3Rpb246OnNldEVu
YWJsZWRUb3BpY3MpOgorICAgICAgICAoV2ViUHVzaEQ6OkZha2VQdXNoU2VydmljZUNvbm5lY3Rp
b246OnNldElnbm9yZWRUb3BpY3MpOgorICAgICAgICAoV2ViUHVzaEQ6OkZha2VQdXNoU2Vydmlj
ZUNvbm5lY3Rpb246OnNldE9wcG9ydHVuaXN0aWNUb3BpY3MpOgorICAgICAgICAoV2ViUHVzaEQ6
OkZha2VQdXNoU2VydmljZUNvbm5lY3Rpb246OnNldE5vbldha2luZ1RvcGljcyk6CisgICAgICAg
IChXZWJQdXNoRDo6RmFrZVB1c2hTZXJ2aWNlQ29ubmVjdGlvbjo6c2V0VG9waWNMaXN0cyk6Cisg
ICAgICAgICogd2VicHVzaGQvUHVzaFNlcnZpY2VDb25uZWN0aW9uLmg6IEFkZGVkLgorICAgICAg
ICAqIHdlYnB1c2hkL1B1c2hTZXJ2aWNlQ29ubmVjdGlvbi5tbTogQWRkZWQuCisgICAgICAgIChX
ZWJQdXNoRDo6UHVzaFNlcnZpY2VDb25uZWN0aW9uOjpzdGFydExpc3RlbmluZ0ZvclB1c2hNZXNz
YWdlcyk6CisgICAgICAgIChXZWJQdXNoRDo6UHVzaFNlcnZpY2VDb25uZWN0aW9uOjpkaWRSZWNl
aXZlUHVzaE1lc3NhZ2UpOgorCiAyMDIyLTAxLTI4ICBGdWppaSBIaXJvbm9yaSAgPEhpcm9ub3Jp
LkZ1amlpQHNvbnkuY29tPgogCiAgICAgICAgIFtXaW5DYWlyb10gV2ViS2l0VGVzdFJ1bm5lciBz
aG91bGQgc3VwcG9ydCBwaXhlbCBkdW1wIGZvciBhY2NlbGVyYXRlZCBjb21wb3NpdGluZyBtb2Rl
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi9QbGF0Zm9ybUhhdmUuaCBiL1NvdXJjZS9XVEYv
d3RmL1BsYXRmb3JtSGF2ZS5oCmluZGV4IGEwNDc5OGUzYjQwYWY0ZGRjMmIwOTA4ZTM2OTU1NWQ1
NDA2NjhkMzMuLjhiYTY5ZTZhYjVkNjMzNzgxNzBkMTNjMjYzMzM4ZWFjNWNlMGE2NWYgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XVEYvd3RmL1BsYXRmb3JtSGF2ZS5oCisrKyBiL1NvdXJjZS9XVEYvd3Rm
L1BsYXRmb3JtSGF2ZS5oCkBAIC0xMTYzLDMgKzExNjMsOCBAQAogICAgIHx8IChQTEFURk9STShX
QVRDSE9TKSAmJiBfX1dBVENIX09TX1ZFUlNJT05fTUFYX0FMTE9XRUQgPj0gODA1MDApCiAjZGVm
aW5lIEhBVkVfQ0ZORVRXT1JLX0RJU0FCTEVfQ0FDSEVfU1BJIDEKICNlbmRpZgorCisjaWYgKChQ
TEFURk9STShNQUMpICYmIF9fTUFDX09TX1hfVkVSU0lPTl9NSU5fUkVRVUlSRUQgPj0gMTMwMDAw
KSBcCisgICAgfHwgKFBMQVRGT1JNKElPUykgJiYgX19JUEhPTkVfT1NfVkVSU0lPTl9NSU5fUkVR
VUlSRUQgPj0gMTYwMDAwKSkKKyNkZWZpbmUgSEFWRV9BUFBMRV9QVVNIX1NFUlZJQ0VfVVJMX1RP
S0VOX1NVUFBPUlQgMQorI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0NvbmZpZ3Vy
YXRpb25zL1dlYktpdC54Y2NvbmZpZyBiL1NvdXJjZS9XZWJLaXQvQ29uZmlndXJhdGlvbnMvV2Vi
S2l0LnhjY29uZmlnCmluZGV4IGQ0NDkzMWIzODI4M2YzY2MxMWUxM2E1MTBiMzg3ZDIxNjNhOTEw
MTAuLmJiNTNlYWEwMzM4MjBhYzVkZTY4NGFjNGVkMGIyOGIzMGMyZGIyYTYgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvQ29uZmlndXJhdGlvbnMvV2ViS2l0LnhjY29uZmlnCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ29uZmlndXJhdGlvbnMvV2ViS2l0LnhjY29uZmlnCkBAIC01NCw2ICs1NCwxMSBA
QCBXS19BQ0NFU1NJQklMSVRZX0xERkxBR1NfQ09DT0FfVE9VQ0hfWUVTID0gLWxBY2Nlc3NpYmls
aXR5OwogV0tfQUNDRVNTSUJJTElUWV9MREZMQUdTX0NPQ09BX1RPVUNIX05PID0gJChXS19BQ0NF
U1NJQklMSVRZX0xERkxBR1MkKFdLX01BQ09TXzEwMTQpKTsKIFdLX0FDQ0VTU0lCSUxJVFlfTERG
TEFHU19NQUNPU19TSU5DRV8xMDE0ID0gLXdlYWtfbGlicmFyeSAvdXNyL2xpYi9saWJBY2Nlc3Np
YmlsaXR5LmR5bGliOwogCitXS19BUFBMRV9QVVNIX1NFUlZJQ0VfTERGTEFHUyA9ICQoV0tfQVBQ
TEVfUFVTSF9TRVJWSUNFX0xERkxBR1NfJChXS19QTEFURk9STV9OQU1FKSk7CitXS19BUFBMRV9Q
VVNIX1NFUlZJQ0VfTERGTEFHU19pcGhvbmVvcyA9IC1mcmFtZXdvcmsgQXBwbGVQdXNoU2Vydmlj
ZTsKK1dLX0FQUExFX1BVU0hfU0VSVklDRV9MREZMQUdTX2lwaG9uZXNpbXVsYXRvciA9IC1mcmFt
ZXdvcmsgQXBwbGVQdXNoU2VydmljZTsKK1dLX0FQUExFX1BVU0hfU0VSVklDRV9MREZMQUdTX21h
Y29zeCA9IC1mcmFtZXdvcmsgQXBwbGVQdXNoU2VydmljZTsKKwogV0tfQVBQS0lUX0xERkxBR1Mg
PSAkKFdLX0FQUEtJVF9MREZMQUdTXyQoV0tfUExBVEZPUk1fTkFNRSkpOwogV0tfQVBQS0lUX0xE
RkxBR1NfbWFjb3N4ID0gLWZyYW1ld29yayBBcHBLaXQ7CiBXS19BUFBLSVRfTERGTEFHU19tYWNj
YXRhbHlzdCA9IC1mcmFtZXdvcmsgQXBwS2l0OwpAQCAtMTU1LDcgKzE2MCw3IEBAIFdLX0xJQk5F
VFdPUktFWFRFTlNJT05fTERGTEFHU19tYWNjYXRhbHlzdCA9IC1sbmV0d29ya2V4dGVuc2lvbjsK
IFdLX0xJQk5FVFdPUktFWFRFTlNJT05fTERGTEFHU19tYWNvc3ggPSAtd2Vha19saWJyYXJ5IC91
c3IvbGliL2xpYm5ldHdvcmtleHRlbnNpb24uZHlsaWI7CiBXS19MSUJORVRXT1JLRVhURU5TSU9O
X0xERkxBR1NfdHZvcyA9IDsKIAotRlJBTUVXT1JLX0FORF9MSUJSQVJZX0xERkxBR1MgPSAtbG9i
amMgLWZyYW1ld29yayBDRk5ldHdvcmsgLWZyYW1ld29yayBDb3JlQXVkaW8gLWZyYW1ld29yayBD
b3JlRm91bmRhdGlvbiAtZnJhbWV3b3JrIENvcmVHcmFwaGljcyAtZnJhbWV3b3JrIENvcmVUZXh0
IC1mcmFtZXdvcmsgRm91bmRhdGlvbiAtZnJhbWV3b3JrIEltYWdlSU8gLWZyYW1ld29yayBJT0tp
dCAtZnJhbWV3b3JrIElPU3VyZmFjZSAtZnJhbWV3b3JrIFdlYktpdExlZ2FjeSAtbG5ldHdvcmsg
LWZyYW1ld29yayBNZXRhbCAkKFdLX0FDQ0VTU0lCSUxJVFlfTERGTEFHUykgJChXS19BUFBLSVRf
TERGTEFHUykgJChXS19CQUNLQk9BUkRfU0VSVklDRVNfTERGTEFHUykgJChXS19SVU5OSU5HQk9B
UkRfU0VSVklDRVNfTERGTEFHUykgJChXS19BVVRIS0lUX0xERkxBR1MpICQoV0tfQ0FSQk9OX0xE
RkxBR1MpICQoV0tfQ09OVEFDVFNfTERGTEFHUykgJChXS19DT1JFX1BSRURJQ1RJT05fTERGTEFH
UykgJChXS19DT1JFX1NFUlZJQ0VTX0xERkxBR1MpICQoV0tfR1JBUEhJQ1NfU0VSVklDRVNfTERG
TEFHUykgJChXS19MSUJORVRXT1JLRVhURU5TSU9OX0xERkxBR1MpICQoV0tfTElCU0FOREJPWF9M
REZMQUdTKSAkKFdLX0xJQldFQlJUQ19MREZMQUdTKSAkKFdLX01PQklMRV9DT1JFX1NFUlZJQ0VT
X0xERkxBR1MpICQoV0tfTU9CSUxFX0dFU1RBTFRfTERGTEFHUykgJChXS19QREZLSVRfTERGTEFH
UykgJChXS19QUk9UT1RZUEVfVE9PTFNfTERGTEFHUykgJChXS19TQUZFX0JST1dTSU5HX0xERkxB
R1MpICQoV0tfU0VDVVJJVFlfSU5URVJGQUNFX0xERkxBR1MpICQoV0tfVUlLSVRfTERGTEFHUykg
JChXS19VTklGT1JNX1RZUEVfSURFTlRJRklFUlNfTERGTEFHUykgJChXS19VUkxfRk9STUFUVElO
R19MREZMQUdTKSAkKFdLX1dFQklOU1BFQ1RPUlVJX0xERkxBR1MpICQoV0tfQ09PUkRJTkFUT1Jf
TERGTEFHUyk7CitGUkFNRVdPUktfQU5EX0xJQlJBUllfTERGTEFHUyA9IC1sb2JqYyAtZnJhbWV3
b3JrIENGTmV0d29yayAtZnJhbWV3b3JrIENvcmVBdWRpbyAtZnJhbWV3b3JrIENvcmVGb3VuZGF0
aW9uIC1mcmFtZXdvcmsgQ29yZUdyYXBoaWNzIC1mcmFtZXdvcmsgQ29yZVRleHQgLWZyYW1ld29y
ayBGb3VuZGF0aW9uIC1mcmFtZXdvcmsgSW1hZ2VJTyAtZnJhbWV3b3JrIElPS2l0IC1mcmFtZXdv
cmsgSU9TdXJmYWNlIC1mcmFtZXdvcmsgV2ViS2l0TGVnYWN5IC1sbmV0d29yayAtZnJhbWV3b3Jr
IE1ldGFsICQoV0tfQUNDRVNTSUJJTElUWV9MREZMQUdTKSAkKFdLX0FQUEtJVF9MREZMQUdTKSAk
KFdLX0FQUExFX1BVU0hfU0VSVklDRV9MREZMQUdTKSAkKFdLX0JBQ0tCT0FSRF9TRVJWSUNFU19M
REZMQUdTKSAkKFdLX1JVTk5JTkdCT0FSRF9TRVJWSUNFU19MREZMQUdTKSAkKFdLX0FVVEhLSVRf
TERGTEFHUykgJChXS19DQVJCT05fTERGTEFHUykgJChXS19DT05UQUNUU19MREZMQUdTKSAkKFdL
X0NPUkVfUFJFRElDVElPTl9MREZMQUdTKSAkKFdLX0NPUkVfU0VSVklDRVNfTERGTEFHUykgJChX
S19HUkFQSElDU19TRVJWSUNFU19MREZMQUdTKSAkKFdLX0xJQk5FVFdPUktFWFRFTlNJT05fTERG
TEFHUykgJChXS19MSUJTQU5EQk9YX0xERkxBR1MpICQoV0tfTElCV0VCUlRDX0xERkxBR1MpICQo
V0tfTU9CSUxFX0NPUkVfU0VSVklDRVNfTERGTEFHUykgJChXS19NT0JJTEVfR0VTVEFMVF9MREZM
QUdTKSAkKFdLX1BERktJVF9MREZMQUdTKSAkKFdLX1BST1RPVFlQRV9UT09MU19MREZMQUdTKSAk
KFdLX1NBRkVfQlJPV1NJTkdfTERGTEFHUykgJChXS19TRUNVUklUWV9JTlRFUkZBQ0VfTERGTEFH
UykgJChXS19VSUtJVF9MREZMQUdTKSAkKFdLX1VOSUZPUk1fVFlQRV9JREVOVElGSUVSU19MREZM
QUdTKSAkKFdLX1VSTF9GT1JNQVRUSU5HX0xERkxBR1MpICQoV0tfV0VCSU5TUEVDVE9SVUlfTERG
TEFHUykgJChXS19DT09SRElOQVRPUl9MREZMQUdTKTsKIAogLy8gUHJldmVudCBDKysgc3RhbmRh
cmQgbGlicmFyeSBiYXNpY19zdHJpbmdzdHJlYW0sIG9wZXJhdG9yIG5ldywgZGVsZXRlIGFuZCB0
aGVpciByZWxhdGVkIGV4Y2VwdGlvbiB0eXBlcyBmcm9tIGJlaW5nIGV4cG9ydGVkIGFzIHdlYWsg
c3ltYm9scy4KIFVORVhQT1JURURfU1lNQk9MX0xERkxBR1MgPSAtV2wsLXVuZXhwb3J0ZWRfc3lt
Ym9sIC1XbCxfX1pUSVN0OWJhZF9hbGxvYyAtV2wsLXVuZXhwb3J0ZWRfc3ltYm9sIC1XbCxfX1pU
SVN0OWV4Y2VwdGlvbiAtV2wsLXVuZXhwb3J0ZWRfc3ltYm9sIC1XbCxfX1pUU1N0OWJhZF9hbGxv
YyAtV2wsLXVuZXhwb3J0ZWRfc3ltYm9sIC1XbCxfX1pUU1N0OWV4Y2VwdGlvbiAtV2wsLXVuZXhw
b3J0ZWRfc3ltYm9sIC1XbCxfX1pkbFB2U18gLVdsLC11bmV4cG9ydGVkX3N5bWJvbCAtV2wsX19a
bndtUHYgLVdsLC11bmV4cG9ydGVkX3N5bWJvbCAtV2wsX19abndtIC1XbCwtdW5leHBvcnRlZF9z
eW1ib2wgLVdsLF9fWlRWTlN0M19fMTE3YmFkX2Z1bmN0aW9uX2NhbGxFIC1XbCwtdW5leHBvcnRl
ZF9zeW1ib2wgLVdsLF9fWlRDTlN0M19fMTE4YmFzaWNfc3RyaW5nc3RyZWFtSWNOU18xMWNoYXJf
dHJhaXRzSWNFRU5TXzlhbGxvY2F0b3JJY0VFRUUwX05TXzEzYmFzaWNfaXN0cmVhbUljUzJfRUUg
LVdsLC11bmV4cG9ydGVkX3N5bWJvbCAtV2wsX19aVENOU3QzX18xMThiYXNpY19zdHJpbmdzdHJl
YW1JY05TXzExY2hhcl90cmFpdHNJY0VFTlNfOWFsbG9jYXRvckljRUVFRTBfTlNfMTRiYXNpY19p
b3N0cmVhbUljUzJfRUUgLVdsLC11bmV4cG9ydGVkX3N5bWJvbCAtV2wsX19aVENOU3QzX18xMThi
YXNpY19zdHJpbmdzdHJlYW1JY05TXzExY2hhcl90cmFpdHNJY0VFTlNfOWFsbG9jYXRvckljRUVF
RTE2X05TXzEzYmFzaWNfb3N0cmVhbUljUzJfRUUgLVdsLC11bmV4cG9ydGVkX3N5bWJvbCAtV2ws
X19aVFROU3QzX18xMThiYXNpY19zdHJpbmdzdHJlYW1JY05TXzExY2hhcl90cmFpdHNJY0VFTlNf
OWFsbG9jYXRvckljRUVFRSAtV2wsLXVuZXhwb3J0ZWRfc3ltYm9sIC1XbCxfX1pUVk5TdDNfXzEx
NWJhc2ljX3N0cmluZ2J1ZkljTlNfMTFjaGFyX3RyYWl0c0ljRUVOU185YWxsb2NhdG9ySWNFRUVF
IC1XbCwtdW5leHBvcnRlZF9zeW1ib2wgLVdsLF9fWlRWTlN0M19fMTE4YmFzaWNfc3RyaW5nc3Ry
ZWFtSWNOU18xMWNoYXJfdHJhaXRzSWNFRU5TXzlhbGxvY2F0b3JJY0VFRUUgLVdsLC11bmV4cG9y
dGVkX3N5bWJvbCAtV2wsX19aVENOU3QzX18xMThiYXNpY19zdHJpbmdzdHJlYW1JY05TXzExY2hh
cl90cmFpdHNJY0VFTlNfOWFsbG9jYXRvckljRUVFRThfTlNfMTNiYXNpY19vc3RyZWFtSWNTMl9F
RTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvUGxhdGZvcm0vc3BpL0NvY29hL0FwcGxlUHVz
aFNlcnZpY2VTUEkuaCBiL1NvdXJjZS9XZWJLaXQvUGxhdGZvcm0vc3BpL0NvY29hL0FwcGxlUHVz
aFNlcnZpY2VTUEkuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi41NWY2YWQ2ZjYzNjkzZWUxMGIxYWFjZDQzMWQ5ZTQ3
MWNlYWQ4NjIzCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9QbGF0Zm9ybS9zcGkv
Q29jb2EvQXBwbGVQdXNoU2VydmljZVNQSS5oCkBAIC0wLDAgKzEsMTAyIEBACisvKgorICogQ29w
eXJpZ2h0IChDKSAyMDIyIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBS
ZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9y
IHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRo
ZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9u
cyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2Ug
dGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlv
biBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4K
KyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBD
T05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJS
QU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdB
UlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIK
KyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4g
T1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVD
VCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBE
QU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAq
IFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9G
SVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04g
QU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1Qg
TElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisg
KiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZF
TiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8K
KworI2lmIFVTRShBUFBMRV9JTlRFUk5BTF9TREspCisKKyNpbXBvcnQgPEFwcGxlUHVzaFNlcnZp
Y2UvQXBwbGVQdXNoU2VydmljZS5oPgorCisjZWxzZSAvLyBpZiAhVVNFKEFQUExFX0lOVEVSTkFM
X1NESykKKworI2ltcG9ydCA8Rm91bmRhdGlvbi9Gb3VuZGF0aW9uLmg+CisKK05TX0FTU1VNRV9O
T05OVUxMX0JFR0lOCisKK1dURl9FWFRFUk5fQ19CRUdJTgorZXh0ZXJuIE5TU3RyaW5nICpjb25z
dCBBUFNFbnZpcm9ubWVudFByb2R1Y3Rpb247CisKK3R5cGVkZWYgTlNfRU5VTShOU0ludGVnZXIs
IEFQU1VSTFRva2VuRXJyb3JDb2RlKSB7CisgICAgQVBTVVJMVG9rZW5FcnJvckNvZGVJbnZhbGlk
QXJndW1lbnRzID0gMTAwLAorICAgIEFQU1VSTFRva2VuRXJyb3JDb2RlWFBDRXJyb3IgPSAxMDEs
CisgICAgQVBTVVJMVG9rZW5FcnJvckNvZGVUb3BpY1NhbHRpbmdGYWlsZWQgPSAxMDIsCisgICAg
QVBTVVJMVG9rZW5FcnJvckNvZGVUb3BpY0FscmVhZHlJbkZpbHRlciA9IDEwMywKK307CitXVEZf
RVhURVJOX0NfRU5ECisKK0BjbGFzcyBBUFNDb25uZWN0aW9uOworQHByb3RvY29sIEFQU0Nvbm5l
Y3Rpb25EZWxlZ2F0ZTsKKworQGludGVyZmFjZSBBUFNNZXNzYWdlIDogTlNPYmplY3Q8TlNDb2Rp
bmc+CitAcHJvcGVydHkgKG5vbmF0b21pYywgcmV0YWluKSBOU1N0cmluZyAqdG9waWM7CitAcHJv
cGVydHkgKG5vbmF0b21pYywgcmV0YWluKSBOU0RpY3Rpb25hcnkgKnVzZXJJbmZvOworQHByb3Bl
cnR5IChub25hdG9taWMsIGFzc2lnbikgTlNVSW50ZWdlciBpZGVudGlmaWVyOworQGVuZAorCitA
aW50ZXJmYWNlIEFQU0luY29taW5nTWVzc2FnZSA6IEFQU01lc3NhZ2UKK0BlbmQKKworI2lmIEhB
VkUoQVBQTEVfUFVTSF9TRVJWSUNFX1VSTF9UT0tFTl9TVVBQT1JUKQorCitAaW50ZXJmYWNlIEFQ
U1VSTFRva2VuIDogTlNPYmplY3Q8TlNTZWN1cmVDb2RpbmcsIE5TQ29weWluZz4KK0Bwcm9wZXJ0
eSAobm9uYXRvbWljLCBzdHJvbmcpIE5TU3RyaW5nICp0b2tlblVSTDsKK0BlbmQKKworQGludGVy
ZmFjZSBBUFNVUkxUb2tlbkluZm8gOiBOU09iamVjdDxOU1NlY3VyZUNvZGluZywgTlNDb3B5aW5n
PgorLSAoaW5zdGFuY2V0eXBlKWluaXRXaXRoVG9waWM6KE5TU3RyaW5nICopdG9waWMgdmFwaWRQ
dWJsaWNLZXk6KG51bGxhYmxlIE5TRGF0YSAqKXZhcGlkUHVibGljS2V5OworQGVuZAorCit0eXBl
ZGVmIHZvaWQoXkFQU0Nvbm5lY3Rpb25SZXF1ZXN0VVJMVG9rZW5Db21wbGV0aW9uKShBUFNVUkxU
b2tlbiAqIF9fbnVsbGFibGUgdG9rZW4sIE5TRXJyb3IgKiBfX251bGxhYmxlIGVycm9yKTsKK3R5
cGVkZWYgdm9pZCheQVBTQ29ubmVjdGlvbkludmFsaWRhdGVVUkxUb2tlbkNvbXBsZXRpb24pKEJP
T0wgc3VjY2VzcywgTlNFcnJvciAqIF9fbnVsbGFibGUgZXJyb3IpOworCisjZW5kaWYgLy8gSEFW
RShBUFBMRV9QVVNIX1NFUlZJQ0VfVVJMX1RPS0VOX1NVUFBPUlQpCisKK0BpbnRlcmZhY2UgQVBT
Q29ubmVjdGlvbiA6IE5TT2JqZWN0CisKKy0gKGluc3RhbmNldHlwZSlpbml0V2l0aEVudmlyb25t
ZW50TmFtZTooTlNTdHJpbmcgKillbnZpcm9ubWVudE5hbWUgbmFtZWREZWxlZ2F0ZVBvcnQ6KG51
bGxhYmxlIE5TU3RyaW5nICopbmFtZWREZWxlZ2F0ZVBvcnQgcXVldWU6KGRpc3BhdGNoX3F1ZXVl
X3QpcXVldWU7CisKKyNpZiBIQVZFKEFQUExFX1BVU0hfU0VSVklDRV9VUkxfVE9LRU5fU1VQUE9S
VCkKKy0gKHZvaWQpcmVxdWVzdFVSTFRva2VuRm9ySW5mbzooQVBTVVJMVG9rZW5JbmZvICopaW5m
byBjb21wbGV0aW9uOihBUFNDb25uZWN0aW9uUmVxdWVzdFVSTFRva2VuQ29tcGxldGlvbiljb21w
bGV0aW9uOworLSAodm9pZClpbnZhbGlkYXRlVVJMVG9rZW5Gb3JJbmZvOihBUFNVUkxUb2tlbklu
Zm8gKilpbmZvIGNvbXBsZXRpb246KEFQU0Nvbm5lY3Rpb25JbnZhbGlkYXRlVVJMVG9rZW5Db21w
bGV0aW9uKWNvbXBsZXRpb247CisjZW5kaWYgLy8gSEFWRShBUFBMRV9QVVNIX1NFUlZJQ0VfVVJM
X1RPS0VOX1NVUFBPUlQpCisKK0Bwcm9wZXJ0eSAobm9uYXRvbWljLCByZWFkd3JpdGUsIGFzc2ln
biwgbnVsbGFibGUpIGlkPEFQU0Nvbm5lY3Rpb25EZWxlZ2F0ZT4gZGVsZWdhdGU7CisKK0Bwcm9w
ZXJ0eSAobm9uYXRvbWljLCByZWFkd3JpdGUsIHN0cm9uZywgc2V0dGVyPV9zZXRFbmFibGVkVG9w
aWNzOiwgbnVsbGFibGUpIE5TQXJyYXk8TlNTdHJpbmcgKj4gKmVuYWJsZWRUb3BpY3M7CitAcHJv
cGVydHkgKG5vbmF0b21pYywgcmVhZHdyaXRlLCBzdHJvbmcsIHNldHRlcj1fc2V0SWdub3JlZFRv
cGljczosIG51bGxhYmxlKSBOU0FycmF5PE5TU3RyaW5nICo+ICppZ25vcmVkVG9waWNzOworQHBy
b3BlcnR5IChub25hdG9taWMsIHJlYWR3cml0ZSwgc3Ryb25nLCBzZXR0ZXI9X3NldE9wcG9ydHVu
aXN0aWNUb3BpY3M6LCBudWxsYWJsZSkgTlNBcnJheTxOU1N0cmluZyAqPiAqb3Bwb3J0dW5pc3Rp
Y1RvcGljczsKK0Bwcm9wZXJ0eSAobm9uYXRvbWljLCByZWFkd3JpdGUsIHN0cm9uZywgc2V0dGVy
PV9zZXROb25XYWtpbmdUb3BpY3M6LCBudWxsYWJsZSkgTlNBcnJheTxOU1N0cmluZyAqPiAqbm9u
V2FraW5nVG9waWNzOworCistICh2b2lkKXNldEVuYWJsZWRUb3BpY3M6KE5TQXJyYXk8TlNTdHJp
bmcgKj4gKillbmFibGVkVG9waWNzIGlnbm9yZWRUb3BpY3M6KE5TQXJyYXk8TlNTdHJpbmcgKj4g
KilpZ25vcmVkVG9waWNzIG9wcG9ydHVuaXN0aWNUb3BpY3M6KE5TQXJyYXk8TlNTdHJpbmcgKj4g
KilvcHBvcnR1bmlzdGljVG9waWNzIG5vbldha2luZ1RvcGljczooTlNBcnJheTxOU1N0cmluZyAq
PiAqKW5vbldha2luZ1RvcGljczsKKworQGVuZAorCitAcHJvdG9jb2wgQVBTQ29ubmVjdGlvbkRl
bGVnYXRlPE5TT2JqZWN0PgorLSAodm9pZCljb25uZWN0aW9uOihBUFNDb25uZWN0aW9uICopY29u
bmVjdGlvbiBkaWRSZWNlaXZlUHVibGljVG9rZW46KE5TRGF0YSAqKXB1YmxpY1Rva2VuOworQG9w
dGlvbmFsCistICh2b2lkKWNvbm5lY3Rpb246KEFQU0Nvbm5lY3Rpb24gKiljb25uZWN0aW9uIGRp
ZFJlY2VpdmVJbmNvbWluZ01lc3NhZ2U6KEFQU0luY29taW5nTWVzc2FnZSAqKW1lc3NhZ2U7CitA
ZW5kCisKK05TX0FTU1VNRV9OT05OVUxMX0VORAorCisjZW5kaWYgLy8gIVVTRShBUFBMRV9JTlRF
Uk5BTF9TREspCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYktpdC54Y29kZXByb2ovcHJv
amVjdC5wYnhwcm9qIGIvU291cmNlL1dlYktpdC9XZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4
cHJvagppbmRleCA3NzkxMThiZDJmM2UwMzJjYTg3YzA3NGQyZTZiMGRiZTU0OWI2N2ViLi44ZWU2
NTQ5NDdjNDA5NzQwMjE0MTAyZGMzMzMzZGI1ZGE2NmIxYzBmIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L1dlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9XZWJL
aXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTE5OTUsNiArMTk5NSwxMyBA
QAogCQlFNUNCQTc2NzI3QTMxOEUxMDBERjc4NTggLyogVW5pZmllZFNvdXJjZTExOS5jcHAgaW4g
U291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFNUNCQTc2MDI3QTMx
ODc5MDBERjc4NTggLyogVW5pZmllZFNvdXJjZTExOS5jcHAgKi87IH07CiAJCUU1Q0JBNzY4MjdB
MzE4RTEwMERGNzg1OCAvKiBVbmlmaWVkU291cmNlMTE3LmNwcCBpbiBTb3VyY2VzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEU1Q0JBNzYyMjdBMzE4NzkwMERGNzg1OCAvKiBV
bmlmaWVkU291cmNlMTE3LmNwcCAqLzsgfTsKIAkJRTVERUZBNjgyNkY4RjQyNjAwQUI2OERCIC8q
IFBob3Rvc1VJU1BJLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSBFNURFRkE2NzI2RjhGNDI2MDBBQjY4REIgLyogUGhvdG9zVUlTUEkuaCAqLzsgfTsKKwkJ
RUJBOEQzQUIyN0E1RTMxMzAwQ0I3OTAwIC8qIEFwcGxlUHVzaFNlcnZpY2VTUEkuaCBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEVCQThEM0FBMjdBNUUzMTMw
MENCNzkwMCAvKiBBcHBsZVB1c2hTZXJ2aWNlU1BJLmggKi87IH07CisJCUVCQThEM0IyMjdBNUUz
M0YwMENCNzkwMCAvKiBBcHBsZVB1c2hTZXJ2aWNlQ29ubmVjdGlvbi5tbSBpbiBTb3VyY2VzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEVCQThEM0FDMjdBNUUzM0UwMENCNzkw
MCAvKiBBcHBsZVB1c2hTZXJ2aWNlQ29ubmVjdGlvbi5tbSAqLzsgfTsKKwkJRUJBOEQzQjMyN0E1
RTMzRjAwQ0I3OTAwIC8qIEZha2VQdXNoU2VydmljZUNvbm5lY3Rpb24uaCBpbiBIZWFkZXJzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEVCQThEM0FEMjdBNUUzM0UwMENCNzkw
MCAvKiBGYWtlUHVzaFNlcnZpY2VDb25uZWN0aW9uLmggKi87IH07CisJCUVCQThEM0I0MjdBNUUz
M0YwMENCNzkwMCAvKiBBcHBsZVB1c2hTZXJ2aWNlQ29ubmVjdGlvbi5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRUJBOEQzQUUyN0E1RTMzRjAwQ0I3OTAw
IC8qIEFwcGxlUHVzaFNlcnZpY2VDb25uZWN0aW9uLmggKi87IH07CisJCUVCQThEM0I1MjdBNUUz
M0YwMENCNzkwMCAvKiBQdXNoU2VydmljZUNvbm5lY3Rpb24uaCBpbiBIZWFkZXJzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEVCQThEM0FGMjdBNUUzM0YwMENCNzkwMCAvKiBQ
dXNoU2VydmljZUNvbm5lY3Rpb24uaCAqLzsgfTsKKwkJRUJBOEQzQjYyN0E1RTMzRjAwQ0I3OTAw
IC8qIEZha2VQdXNoU2VydmljZUNvbm5lY3Rpb24ubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFQkE4RDNCMDI3QTVFMzNGMDBDQjc5MDAgLyogRmFrZVB1
c2hTZXJ2aWNlQ29ubmVjdGlvbi5tbSAqLzsgfTsKKwkJRUJBOEQzQjcyN0E1RTMzRjAwQ0I3OTAw
IC8qIFB1c2hTZXJ2aWNlQ29ubmVjdGlvbi5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IEVCQThEM0IxMjdBNUUzM0YwMENCNzkwMCAvKiBQdXNoU2Vydmlj
ZUNvbm5lY3Rpb24ubW0gKi87IH07CiAJCUVEODJBN0YyMTI4QzZGQUYwMDQ0NzdCMyAvKiBXS0J1
bmRsZVBhZ2VPdmVybGF5LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSAxQTIyRjBGRjEyODlGQ0Q5MDA4NUU3NEYgLyogV0tCdW5kbGVQYWdlT3ZlcmxheS5o
ICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCUY0MDlC
QTE4MUU2RTY0QkMwMDlEQTI4RSAvKiBXS0RyYWdEZXN0aW5hdGlvbkFjdGlvbi5oIGluIEhlYWRl
cnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRjQwOUJBMTcxRTZFNjRCMzAw
OURBMjhFIC8qIFdLRHJhZ0Rlc3RpbmF0aW9uQWN0aW9uLmggKi87IHNldHRpbmdzID0ge0FUVFJJ
QlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJRjQyOTk1MDcyNzBFMjM0RDAwMzIyOThCIC8q
IFN0cmVhbU1lc3NhZ2VSZWNlaXZlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gRjQyOTk1MDYyNzBFMjM0QzAwMzIyOThCIC8qIFN0cmVhbU1lc3NhZ2VS
ZWNlaXZlci5oICovOyB9OwpAQCAtNjQzOSw2ICs2NDQ2LDEzIEBACiAJCUU1REVGQTY3MjZGOEY0
MjYwMEFCNjhEQiAvKiBQaG90b3NVSVNQSS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBQaG90b3NVSVNQSS5o
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlFQjBEMzEyRDI3NUFFMTMzMDA4NjNEOEYg
LyogY29tLmFwcGxlLndlYmtpdC53ZWJwdXNoZC5tYWMucGxpc3QgKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0LnBs
aXN0LnhtbDsgcGF0aCA9IGNvbS5hcHBsZS53ZWJraXQud2VicHVzaGQubWFjLnBsaXN0OyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlFQjBEMzEyRTI3NUFFMTMzMDA4NjNEOEYgLyogY29t
LmFwcGxlLndlYmtpdC53ZWJwdXNoZC5pb3MucGxpc3QgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0LnBsaXN0Lnht
bDsgcGF0aCA9IGNvbS5hcHBsZS53ZWJraXQud2VicHVzaGQuaW9zLnBsaXN0OyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OworCQlFQkE4RDNBQTI3QTVFMzEzMDBDQjc5MDAgLyogQXBwbGVQdXNo
U2VydmljZVNQSS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBBcHBsZVB1c2hT
ZXJ2aWNlU1BJLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUVCQThEM0FDMjdBNUUz
M0UwMENCNzkwMCAvKiBBcHBsZVB1c2hTZXJ2aWNlQ29ubmVjdGlvbi5tbSAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IEFwcGxlUHVzaFNlcnZpY2VDb25uZWN0aW9uLm1t
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlFQkE4RDNBRDI3QTVFMzNFMDBDQjc5MDAg
LyogRmFrZVB1c2hTZXJ2aWNlQ29ubmVjdGlvbi5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7
IHBhdGggPSBGYWtlUHVzaFNlcnZpY2VDb25uZWN0aW9uLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CisJCUVCQThEM0FFMjdBNUUzM0YwMENCNzkwMCAvKiBBcHBsZVB1c2hTZXJ2aWNlQ29u
bmVjdGlvbi5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBBcHBsZVB1c2hTZXJ2
aWNlQ29ubmVjdGlvbi5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlFQkE4RDNBRjI3
QTVFMzNGMDBDQjc5MDAgLyogUHVzaFNlcnZpY2VDb25uZWN0aW9uLmggKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmMuaDsgcGF0aCA9IFB1c2hTZXJ2aWNlQ29ubmVjdGlvbi5oOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OworCQlFQkE4RDNCMDI3QTVFMzNGMDBDQjc5MDAgLyogRmFrZVB1c2hTZXJ2
aWNlQ29ubmVjdGlvbi5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9
IEZha2VQdXNoU2VydmljZUNvbm5lY3Rpb24ubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CisJCUVCQThEM0IxMjdBNUUzM0YwMENCNzkwMCAvKiBQdXNoU2VydmljZUNvbm5lY3Rpb24ubW0g
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBQdXNoU2VydmljZUNvbm5l
Y3Rpb24ubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUVDQTY4MEQzMUU2OTA0QjUw
MDczMUQyMCAvKiBFeHRyYVByaXZhdGVTeW1ib2xzRm9yVEFQSS5oICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jLmg7IHBhdGggPSBFeHRyYVByaXZhdGVTeW1ib2xzRm9yVEFQSS5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQlFQ0JGQzFEQjFFNkE0RDY2MDAwMzAwQzcgLyogRXh0cmFQdWJs
aWNTeW1ib2xzRm9yVEFQSS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBFeHRyYVB1YmxpY1N5bWJvbHNGb3JU
QVBJLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUYwMzY5Nzg3MTVGNEJGMDUwMEMz
QTgwRSAvKiBXZWJDb2xvclBpY2tlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7
IHBhdGggPSBXZWJDb2xvclBpY2tlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBA
IC04NjM0LDYgKzg2NDgsNyBAQAogCQkJCTU3MkVCQkRDMjUzOTIxODEwMDA1NTJCMyAvKiBBcHBB
dHRlc3RTUEkuaCAqLywKIAkJCQk5NTY1MDgzNzI2RDg3QTJCMDBFMTVDQjcgLyogQXBwbGVNZWRp
YVNlcnZpY2VzU1BJLmggKi8sCiAJCQkJOTU2NTA4MzgyNkQ4N0EyQjAwRTE1Q0I3IC8qIEFwcGxl
TWVkaWFTZXJ2aWNlc1VJU1BJLmggKi8sCisJCQkJRUJBOEQzQUEyN0E1RTMxMzAwQ0I3OTAwIC8q
IEFwcGxlUHVzaFNlcnZpY2VTUEkuaCAqLywKIAkJCQk1N0ZBQkIwRTI1ODE3Q0YwMDA1OURDOTUg
LyogQXV0aGVudGljYXRpb25TZXJ2aWNlc0NvcmVTUEkuaCAqLywKIAkJCQkxQTU3MDUxMDFCRTQx
MEU1MDA4NzRBRjEgLyogQmxvY2tTUEkuaCAqLywKIAkJCQlFNTA2MjA5MTI1NDIxMDIwMDBDNDMw
OTEgLyogQ29udGFjdHNVSVNQSS5oICovLApAQCAtMTAwNDQsOCArMTAwNTksMTIgQEAKIAkJCQk1
MTdCNUY2MzI3NUE4RDVDMDAyREMyMkQgLyogd2VicHVzaHRvb2wgKi8sCiAJCQkJNTE2MEU5NTQy
NzRCODg3MTAwNTY3Mzg4IC8qIEFwcEJ1bmRsZVJlcXVlc3QuaCAqLywKIAkJCQk1MTYwRTk1MzI3
NEI4ODcxMDA1NjczODggLyogQXBwQnVuZGxlUmVxdWVzdC5tbSAqLywKKwkJCQlFQkE4RDNBRTI3
QTVFMzNGMDBDQjc5MDAgLyogQXBwbGVQdXNoU2VydmljZUNvbm5lY3Rpb24uaCAqLywKKwkJCQlF
QkE4RDNBQzI3QTVFMzNFMDBDQjc5MDAgLyogQXBwbGVQdXNoU2VydmljZUNvbm5lY3Rpb24ubW0g
Ki8sCiAJCQkJRUIwRDMxMkUyNzVBRTEzMzAwODYzRDhGIC8qIGNvbS5hcHBsZS53ZWJraXQud2Vi
cHVzaGQuaW9zLnBsaXN0ICovLAogCQkJCUVCMEQzMTJEMjc1QUUxMzMwMDg2M0Q4RiAvKiBjb20u
YXBwbGUud2Via2l0LndlYnB1c2hkLm1hYy5wbGlzdCAqLywKKwkJCQlFQkE4RDNBRDI3QTVFMzNF
MDBDQjc5MDAgLyogRmFrZVB1c2hTZXJ2aWNlQ29ubmVjdGlvbi5oICovLAorCQkJCUVCQThEM0Iw
MjdBNUUzM0YwMENCNzkwMCAvKiBGYWtlUHVzaFNlcnZpY2VDb25uZWN0aW9uLm1tICovLAogCQkJ
CTUxRjdCQjc1Mjc0NDk4QkIwMEM0NUE3MiAvKiBNb2NrQXBwQnVuZGxlRm9yVGVzdGluZy5oICov
LAogCQkJCTUxRjdCQjc0Mjc0NDk4QkEwMEM0NUE3MiAvKiBNb2NrQXBwQnVuZGxlRm9yVGVzdGlu
Zy5tbSAqLywKIAkJCQk1MTYwRTk1QzI3NEMyQTAzMDA1NjczODggLyogTW9ja0FwcEJ1bmRsZVJl
Z2lzdHJ5LmggKi8sCkBAIC0xMDA1NCw2ICsxMDA3Myw4IEBACiAJCQkJNTE2MEU5NTgyNzRDMEQ4
ODAwNTY3Mzg4IC8qIFB1c2hBcHBCdW5kbGUubW0gKi8sCiAJCQkJNTFGN0JCNzkyNzQ0QzUwNzAw
QzQ1QTcyIC8qIFB1c2hDbGllbnRDb25uZWN0aW9uLmggKi8sCiAJCQkJNTFGN0JCN0EyNzQ0QzUw
NzAwQzQ1QTcyIC8qIFB1c2hDbGllbnRDb25uZWN0aW9uLm1tICovLAorCQkJCUVCQThEM0FGMjdB
NUUzM0YwMENCNzkwMCAvKiBQdXNoU2VydmljZUNvbm5lY3Rpb24uaCAqLywKKwkJCQlFQkE4RDNC
MTI3QTVFMzNGMDBDQjc5MDAgLyogUHVzaFNlcnZpY2VDb25uZWN0aW9uLm1tICovLAogCQkJCTUx
N0I1Rjc3Mjc1RTk3OTUwMDJEQzIyRCAvKiB3ZWJwdXNoZC5jcHAgKi8sCiAJCQkJNTEyQ0Q2OUQy
NzIzMzkzQTAwRjdGOEVDIC8qIFdlYlB1c2hEYWVtb24uaCAqLywKIAkJCQk1MTJDRDY5RTI3MjMz
OTNBMDBGN0Y4RUMgLyogV2ViUHVzaERhZW1vbi5tbSAqLywKQEAgLTEyODY1LDYgKzEyODg2LDgg
QEAKIAkJCQlGNDhEMkE4NTIxNTgzQTdFMDBDNjc1MkIgLyogQXBwS2l0U1BJLmggaW4gSGVhZGVy
cyAqLywKIAkJCQk5NTY1MDgzOTI2RDg3QTJCMDBFMTVDQjcgLyogQXBwbGVNZWRpYVNlcnZpY2Vz
U1BJLmggaW4gSGVhZGVycyAqLywKIAkJCQk5NTY1MDgzQTI2RDg3QTJCMDBFMTVDQjcgLyogQXBw
bGVNZWRpYVNlcnZpY2VzVUlTUEkuaCBpbiBIZWFkZXJzICovLAorCQkJCUVCQThEM0I0MjdBNUUz
M0YwMENCNzkwMCAvKiBBcHBsZVB1c2hTZXJ2aWNlQ29ubmVjdGlvbi5oIGluIEhlYWRlcnMgKi8s
CisJCQkJRUJBOEQzQUIyN0E1RTMxMzAwQ0I3OTAwIC8qIEFwcGxlUHVzaFNlcnZpY2VTUEkuaCBp
biBIZWFkZXJzICovLAogCQkJCUY0RUM5NEUzMjM1NkNDNTcwMDBCQjYxNCAvKiBBcHBsaWNhdGlv
blNlcnZpY2VzU1BJLmggaW4gSGVhZGVycyAqLywKIAkJCQkxQUQ0QzE5MzFCMzlGMzMyMDBBQkMy
OEUgLyogQXBwbGljYXRpb25TdGF0ZVRyYWNrZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCTQ5MzEw
MkJEMjY4M0YzRDAwMDJCQjg4NSAvKiBBcHBQcml2YWN5UmVwb3J0LmggaW4gSGVhZGVycyAqLywK
QEAgLTEyOTU4LDYgKzEyOTgxLDcgQEAKIAkJCQk1MUIxNUE4NTEzODQzQTM5MDAzMjFBRDggLyog
RW52aXJvbm1lbnRVdGlsaXRpZXMuaCBpbiBIZWFkZXJzICovLAogCQkJCTFBQTU3NUZCMTQ5NkI1
MjYwMEE0RUUwNiAvKiBFdmVudERpc3BhdGNoZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCTU3MkVC
QkQ3MjUzN0VCQUUwMDA1NTJCMyAvKiBFeHRyYVByaXZhdGVTeW1ib2xzRm9yVEFQSS5oIGluIEhl
YWRlcnMgKi8sCisJCQkJRUJBOEQzQjMyN0E1RTMzRjAwQ0I3OTAwIC8qIEZha2VQdXNoU2Vydmlj
ZUNvbm5lY3Rpb24uaCBpbiBIZWFkZXJzICovLAogCQkJCTU3QjgyNjQ4MjMwNTBDNTEwMEI3MkVC
MCAvKiBGaWRvU2VydmljZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJOTMxQTFCRTIyNkY4NzAwOTAw
ODFBN0U1IC8qIEZpbGVTeXN0ZW1TdG9yYWdlRXJyb3IuaCBpbiBIZWFkZXJzICovLAogCQkJCTkz
MTJCQUQ2MjZGMzNDMjkwMEZEREY1RiAvKiBGaWxlU3lzdGVtU3RvcmFnZUhhbmRsZS5oIGluIEhl
YWRlcnMgKi8sCkBAIC0xMzIwMiw2ICsxMzIyNiw3IEBACiAJCQkJNTE3QjVGODEyNzVFOTdCNjAw
MkRDMjJEIC8qIFB1c2hBcHBCdW5kbGUuaCBpbiBIZWFkZXJzICovLAogCQkJCTUxN0I1RjdEMjc1
RTk3QjYwMDJEQzIyRCAvKiBQdXNoQ2xpZW50Q29ubmVjdGlvbi5oIGluIEhlYWRlcnMgKi8sCiAJ
CQkJNTE3QjVGOTUyNzVFQkE2MzAwMkRDMjJEIC8qIFB1c2hNZXNzYWdlRm9yVGVzdGluZy5oIGlu
IEhlYWRlcnMgKi8sCisJCQkJRUJBOEQzQjUyN0E1RTMzRjAwQ0I3OTAwIC8qIFB1c2hTZXJ2aWNl
Q29ubmVjdGlvbi5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQTFFNjg4NzAxRjZFMkJBQjAwNzAwNkE2
IC8qIFF1YXJhbnRpbmVTUEkuaCBpbiBIZWFkZXJzICovLAogCQkJCTFBMEMyMjdFMjQ1MTEzMEEw
MEVENjE0RCAvKiBRdWlja0xvb2tUaHVtYm5haWxpbmdTb2Z0TGluay5oIGluIEhlYWRlcnMgKi8s
CiAJCQkJMUFFRTU3MjUyNDA5RjE0MjAwMjAwNUQ2IC8qIFF1aWNrTG9va1RodW1ibmFpbExvYWRl
ci5oIGluIEhlYWRlcnMgKi8sCkBAIC0xNTM5NSw2ICsxNTQyMCw3IEBACiAJCQkJOTlFNzE4OUEy
MUY3OUQ5RTAwNTVFOTc1IC8qIF9XS1RvdWNoRXZlbnRHZW5lcmF0b3IubW0gaW4gU291cmNlcyAq
LywKIAkJCQk1NzJFQkJEQTI1MzhGNkI0MDAwNTUyQjMgLyogQXBwQXR0ZXN0SW50ZXJuYWxTb2Z0
TGluay5tbSBpbiBTb3VyY2VzICovLAogCQkJCTUxN0I1RjdFMjc1RTk3QjYwMDJEQzIyRCAvKiBB
cHBCdW5kbGVSZXF1ZXN0Lm1tIGluIFNvdXJjZXMgKi8sCisJCQkJRUJBOEQzQjIyN0E1RTMzRjAw
Q0I3OTAwIC8qIEFwcGxlUHVzaFNlcnZpY2VDb25uZWN0aW9uLm1tIGluIFNvdXJjZXMgKi8sCiAJ
CQkJMkRFQjFEMkUyMTI3NDczNjAwOTMzOTA2IC8qIEFyZ3VtZW50Q29kZXJzQ0YuY3BwIGluIFNv
dXJjZXMgKi8sCiAJCQkJQ0Q0NTcwRDQyNDQxMUQwRjAwQTNEQ0VCIC8qIEF1ZGlvU2Vzc2lvblJv
dXRpbmdBcmJpdHJhdG9yLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUNENDU3MEQzMjQ0MTEzQjUw
MEEzRENFQiAvKiBBdWRpb1Nlc3Npb25Sb3V0aW5nQXJiaXRyYXRvclByb3h5TWVzc2FnZVJlY2Vp
dmVyLmNwcCBpbiBTb3VyY2VzICovLApAQCAtMTU0MTIsNiArMTU0MzgsNyBAQAogCQkJCTFBNjQy
MzA4MTJERDA5RUIwMENBQUUyQyAvKiBEcmF3aW5nQXJlYVByb3h5TWVzc2FnZVJlY2VpdmVyLmNw
cCBpbiBTb3VyY2VzICovLAogCQkJCUNEQ0RDOTlFMjQ4RkU4REEwMEE2OTUyMiAvKiBFbmRvd21l
bnRTdGF0ZVRyYWNrZXIubW0gaW4gU291cmNlcyAqLywKIAkJCQkxQUE1NzYwMjE0OTZCOTc5MDBB
NEVFMDYgLyogRXZlbnREaXNwYXRjaGVyTWVzc2FnZVJlY2VpdmVyLmNwcCBpbiBTb3VyY2VzICov
LAorCQkJCUVCQThEM0I2MjdBNUUzM0YwMENCNzkwMCAvKiBGYWtlUHVzaFNlcnZpY2VDb25uZWN0
aW9uLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJQ0RBOTNEQjEyMkY4QkNGNDAwNDkwQTY5IC8qIEZ1
bGxzY3JlZW5Ub3VjaFNlY2hldXJpc3RpY1BhcmFtZXRlcnMuY3BwIGluIFNvdXJjZXMgKi8sCiAJ
CQkJQzFBMTUyRDcyNEU1QTI5QTAwOTc4QzhCIC8qIEhhbmRsZVhQQ0VuZHBvaW50TWVzc2FnZXMu
bW0gaW4gU291cmNlcyAqLywKIAkJCQkyNzQ5RjY0NDIxNDY1NjFCMDA4MzgwQkYgLyogSW5qZWN0
ZWRCdW5kbGVOb2RlSGFuZGxlLmNwcCBpbiBTb3VyY2VzICovLApAQCAtMTU0NTMsNiArMTU0ODAs
NyBAQAogCQkJCTJENTRDMzFCMjEyRjREQTYwMDQ5QzE3NCAvKiBQcm9jZXNzTGF1bmNoZXIuY3Bw
IGluIFNvdXJjZXMgKi8sCiAJCQkJNTE3QjVGODIyNzVFOTdCNjAwMkRDMjJEIC8qIFB1c2hBcHBC
dW5kbGUubW0gaW4gU291cmNlcyAqLywKIAkJCQk1MTdCNUY3QjI3NUU5N0E5MDAyREMyMkQgLyog
UHVzaENsaWVudENvbm5lY3Rpb24ubW0gaW4gU291cmNlcyAqLywKKwkJCQlFQkE4RDNCNzI3QTVF
MzNGMDBDQjc5MDAgLyogUHVzaFNlcnZpY2VDb25uZWN0aW9uLm1tIGluIFNvdXJjZXMgKi8sCiAJ
CQkJMUEwQzIyN0YyNDUxMTMwQTAwRUQ2MTREIC8qIFF1aWNrTG9va1RodW1ibmFpbGluZ1NvZnRM
aW5rLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJMUEwQzIyNUUyNDM1NzVDRDAwRUQ2MTREIC8qIFF1
aWNrTG9va1RodW1ibmFpbExvYWRlci5tbSBpbiBTb3VyY2VzICovLAogCQkJCTlCMTIyOUNFMjNG
RjI1RjIwMDhDQTc1MSAvKiBSZW1vdGVBdWRpb0Rlc3RpbmF0aW9uTWFuYWdlci5jcHAgaW4gU291
cmNlcyAqLywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvd2VicHVzaGQvQXBwbGVQdXNoU2Vy
dmljZUNvbm5lY3Rpb24uaCBiL1NvdXJjZS9XZWJLaXQvd2VicHVzaGQvQXBwbGVQdXNoU2Vydmlj
ZUNvbm5lY3Rpb24uaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi43YjA0YTQ1NmMzYzg5YjVkMTI1MmEwYWY4MGVkOTc2
NjA5NTE1MTE3Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC93ZWJwdXNoZC9BcHBs
ZVB1c2hTZXJ2aWNlQ29ubmVjdGlvbi5oCkBAIC0wLDAgKzEsNjkgQEAKKy8qCisgKiBDb3B5cmln
aHQgKEMpIDIwMjIgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlz
dHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0
aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZv
bGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9m
IHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4K
KyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUg
YWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFu
ZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoK
KyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRS
SUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJ
RVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFO
VElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICog
UFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJ
VFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJ
TkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFH
RVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VC
U1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7
IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkg
VEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFC
SUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFS
SVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElG
IEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisj
cHJhZ21hIG9uY2UKKworI2lmIEhBVkUoQVBQTEVfUFVTSF9TRVJWSUNFX1VSTF9UT0tFTl9TVVBQ
T1JUKQorCisjaW5jbHVkZSAiQXBwbGVQdXNoU2VydmljZVNQSS5oIgorI2luY2x1ZGUgIlB1c2hT
ZXJ2aWNlQ29ubmVjdGlvbi5oIgorI2luY2x1ZGUgPHd0Zi9IYXNoTWFwLmg+CisjaW5jbHVkZSA8
d3RmL1JldGFpblB0ci5oPgorCituYW1lc3BhY2UgV2ViUHVzaEQgeworCitjbGFzcyBBcHBsZVB1
c2hTZXJ2aWNlQ29ubmVjdGlvbiA6IHB1YmxpYyBQdXNoU2VydmljZUNvbm5lY3Rpb24geworICAg
IFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOworcHVibGljOgorICAgIEFwcGxlUHVzaFNlcnZpY2VD
b25uZWN0aW9uKGNvbnN0IFN0cmluZyYgaW5jb21pbmdQdXNoU2VydmljZU5hbWUpOworICAgIHZp
cnR1YWwgfkFwcGxlUHVzaFNlcnZpY2VDb25uZWN0aW9uKCk7CisKKyAgICB2b2lkIHN1YnNjcmli
ZShjb25zdCBTdHJpbmcmIHRvcGljLCBjb25zdCBWZWN0b3I8dWludDhfdD4mIHZhcGlkUHVibGlj
S2V5LCBTdWJzY3JpYmVIYW5kbGVyJiYpIGZpbmFsOworICAgIHZvaWQgdW5zdWJzY3JpYmUoY29u
c3QgU3RyaW5nJiB0b3BpYywgY29uc3QgVmVjdG9yPHVpbnQ4X3Q+JiB2YXBpZFB1YmxpY0tleSwg
VW5zdWJzY3JpYmVIYW5kbGVyJiYpIGZpbmFsOworCisgICAgVmVjdG9yPFN0cmluZz4gZW5hYmxl
ZFRvcGljcygpIGZpbmFsOworICAgIFZlY3RvcjxTdHJpbmc+IGlnbm9yZWRUb3BpY3MoKSBmaW5h
bDsKKyAgICBWZWN0b3I8U3RyaW5nPiBvcHBvcnR1bmlzdGljVG9waWNzKCkgZmluYWw7CisgICAg
VmVjdG9yPFN0cmluZz4gbm9uV2FraW5nVG9waWNzKCkgZmluYWw7CisKKyAgICB2b2lkIHNldEVu
YWJsZWRUb3BpY3MoY29uc3QgVmVjdG9yPFN0cmluZz4mKSBmaW5hbDsKKyAgICB2b2lkIHNldEln
bm9yZWRUb3BpY3MoY29uc3QgVmVjdG9yPFN0cmluZz4mKSBmaW5hbDsKKyAgICB2b2lkIHNldE9w
cG9ydHVuaXN0aWNUb3BpY3MoY29uc3QgVmVjdG9yPFN0cmluZz4mKSBmaW5hbDsKKyAgICB2b2lk
IHNldE5vbldha2luZ1RvcGljcyhjb25zdCBWZWN0b3I8U3RyaW5nPiYpIGZpbmFsOworCisgICAg
dm9pZCBzZXRUb3BpY0xpc3RzKFRvcGljTGlzdHMmJikgZmluYWw7CisKK3ByaXZhdGU6CisgICAg
UmV0YWluUHRyPEFQU0Nvbm5lY3Rpb24+IG1fY29ubmVjdGlvbjsKKyAgICBSZXRhaW5QdHI8aWQ8
QVBTQ29ubmVjdGlvbkRlbGVnYXRlPj4gbV9kZWxlZ2F0ZTsKKyAgICB1bnNpZ25lZCBtX2hhbmRs
ZXJJZGVudGlmaWVyIHsgMCB9OworICAgIEhhc2hNYXA8dW5zaWduZWQsIFN1YnNjcmliZUhhbmRs
ZXI+IG1fc3Vic2NyaWJlSGFuZGxlcnM7CisgICAgSGFzaE1hcDx1bnNpZ25lZCwgVW5zdWJzY3Jp
YmVIYW5kbGVyPiBtX3Vuc3Vic2NyaWJlSGFuZGxlcnM7Cit9OworCit9IC8vIG5hbWVzcGFjZSBX
ZWJQdXNoRAorCisjZW5kaWYgLy8gSEFWRShBUFBMRV9QVVNIX1NFUlZJQ0VfVVJMX1RPS0VOX1NV
UFBPUlQpCisKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvd2VicHVzaGQvQXBwbGVQdXNoU2Vy
dmljZUNvbm5lY3Rpb24ubW0gYi9Tb3VyY2UvV2ViS2l0L3dlYnB1c2hkL0FwcGxlUHVzaFNlcnZp
Y2VDb25uZWN0aW9uLm1tCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmZlMjAzMWU0ODZjNmFhODJlNDY5MDc0ZGQ1YTM2
NjE0ZTFhNmM0ZTYKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L3dlYnB1c2hkL0Fw
cGxlUHVzaFNlcnZpY2VDb25uZWN0aW9uLm1tCkBAIC0wLDAgKzEsMTUyIEBACisvKgorICogQ29w
eXJpZ2h0IChDKSAyMDIyIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBS
ZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9y
IHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRo
ZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9u
cyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2Ug
dGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlv
biBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4K
KyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBD
T05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJS
QU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdB
UlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIK
KyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4g
T1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVD
VCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBE
QU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAq
IFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9G
SVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04g
QU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1Qg
TElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisg
KiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZF
TiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8K
KworI2ltcG9ydCAiY29uZmlnLmgiCisjaW1wb3J0ICJBcHBsZVB1c2hTZXJ2aWNlQ29ubmVjdGlv
bi5oIgorCisjaWYgSEFWRShBUFBMRV9QVVNIX1NFUlZJQ0VfVVJMX1RPS0VOX1NVUFBPUlQpCisK
KyNpbXBvcnQgPHd0Zi9jb2NvYS9WZWN0b3JDb2NvYS5oPgorCitAaW50ZXJmYWNlIF9XS0FQU0Nv
bm5lY3Rpb25EZWxlZ2F0ZSA6IE5TT2JqZWN0PEFQU0Nvbm5lY3Rpb25EZWxlZ2F0ZT4geworICAg
IFdlYlB1c2hEOjpBcHBsZVB1c2hTZXJ2aWNlQ29ubmVjdGlvbiAqX2Nvbm5lY3Rpb247Cit9CitA
ZW5kCisKK0BpbXBsZW1lbnRhdGlvbiBfV0tBUFNDb25uZWN0aW9uRGVsZWdhdGUKKworLSAoaW5z
dGFuY2V0eXBlKWluaXRXaXRoQ29ubmVjdGlvbjooV2ViUHVzaEQ6OkFwcGxlUHVzaFNlcnZpY2VD
b25uZWN0aW9uICopY29ubmVjdGlvbgoreworICAgIGlmICgoc2VsZiA9IFtzdXBlciBpbml0XSkp
CisgICAgICAgIF9jb25uZWN0aW9uID0gY29ubmVjdGlvbjsKKyAgICByZXR1cm4gc2VsZjsKK30K
KworLSAodm9pZCljb25uZWN0aW9uOihBUFNDb25uZWN0aW9uICopY29ubmVjdGlvbiBkaWRSZWNl
aXZlUHVibGljVG9rZW46KE5TRGF0YSAqKXB1YmxpY1Rva2VuCit7CisgICAgVU5VU0VEX1BBUkFN
KGNvbm5lY3Rpb24pOworICAgIFVOVVNFRF9QQVJBTShwdWJsaWNUb2tlbik7Cit9CisKKy0gKHZv
aWQpY29ubmVjdGlvbjooQVBTQ29ubmVjdGlvbiAqKWNvbm5lY3Rpb24gZGlkUmVjZWl2ZUluY29t
aW5nTWVzc2FnZTooQVBTSW5jb21pbmdNZXNzYWdlICopbWVzc2FnZQoreworICAgIFVOVVNFRF9Q
QVJBTShjb25uZWN0aW9uKTsKKyAgICBfY29ubmVjdGlvbi0+ZGlkUmVjZWl2ZVB1c2hNZXNzYWdl
KG1lc3NhZ2UudG9waWMsIG1lc3NhZ2UudXNlckluZm8pOworfQorCitAZW5kCisKK25hbWVzcGFj
ZSBXZWJQdXNoRCB7CisKK0FwcGxlUHVzaFNlcnZpY2VDb25uZWN0aW9uOjpBcHBsZVB1c2hTZXJ2
aWNlQ29ubmVjdGlvbihjb25zdCBTdHJpbmcmIGluY29taW5nUHVzaFNlcnZpY2VOYW1lKQorewor
ICAgIG1fY29ubmVjdGlvbiA9IGFkb3B0TlMoW1tBUFNDb25uZWN0aW9uIGFsbG9jXSBpbml0V2l0
aEVudmlyb25tZW50TmFtZTpBUFNFbnZpcm9ubWVudFByb2R1Y3Rpb24gbmFtZWREZWxlZ2F0ZVBv
cnQ6aW5jb21pbmdQdXNoU2VydmljZU5hbWUgcXVldWU6ZGlzcGF0Y2hfZ2V0X21haW5fcXVldWUo
KV0pOworICAgIG1fZGVsZWdhdGUgPSBhZG9wdE5TKFtbX1dLQVBTQ29ubmVjdGlvbkRlbGVnYXRl
IGFsbG9jXSBpbml0V2l0aENvbm5lY3Rpb246dGhpc10pOworICAgIFttX2Nvbm5lY3Rpb24gc2V0
RGVsZWdhdGU6bV9kZWxlZ2F0ZS5nZXQoKV07Cit9CisKK0FwcGxlUHVzaFNlcnZpY2VDb25uZWN0
aW9uOjp+QXBwbGVQdXNoU2VydmljZUNvbm5lY3Rpb24oKSA9IGRlZmF1bHQ7CisKK3N0YXRpYyBS
ZXRhaW5QdHI8QVBTVVJMVG9rZW5JbmZvPiBtYWtlVG9rZW5JbmZvKGNvbnN0IFN0cmluZyYgdG9w
aWMsIGNvbnN0IFZlY3Rvcjx1aW50OF90PiYgdmFwaWRQdWJsaWNLZXkpCit7CisgICAgYXV0byBz
ZXJ2ZXJQdWJsaWNLZXkgPSBhZG9wdE5TKFtbTlNEYXRhIGFsbG9jXSBpbml0V2l0aEJ5dGVzOnZh
cGlkUHVibGljS2V5LmRhdGEoKSBsZW5ndGg6dmFwaWRQdWJsaWNLZXkuc2l6ZSgpXSk7CisgICAg
cmV0dXJuIGFkb3B0TlMoW1tBUFNVUkxUb2tlbkluZm8gYWxsb2NdIGluaXRXaXRoVG9waWM6dG9w
aWMgdmFwaWRQdWJsaWNLZXk6c2VydmVyUHVibGljS2V5LmdldCgpXSk7Cit9CisKK3ZvaWQgQXBw
bGVQdXNoU2VydmljZUNvbm5lY3Rpb246OnN1YnNjcmliZShjb25zdCBTdHJpbmcmIHRvcGljLCBj
b25zdCBWZWN0b3I8dWludDhfdD4mIHZhcGlkUHVibGljS2V5LCBTdWJzY3JpYmVIYW5kbGVyJiYg
c3Vic2NyaWJlSGFuZGxlcikKK3sKKyAgICAvLyBTdGFzaCB0aGUgY29tcGxldGlvbiBoYW5kbGVy
IGF3YXkgYW5kIGxvb2sgaXQgdXAgYnkgaWQgc28gdGhhdCB3ZSBjYW4gZW5zdXJlIGl0IGdldHMg
ZGVzdHJ1Y3RlZCBvbiB0aGUgbWFpbiB0aHJlYWQuIElmIHdlIG1vdmUgdGhlIGhhbmRsZXIgYW5k
IGNhcHR1cmUgaXQgaW4gdGhlIE9iai1DIGJsb2NrLCBpdCBtaWdodCBnZXQgZGVzdHJ1Y3RlZCBv
biBhIHNlY29uZGFyeSB0aHJlYWQgc2luY2UgdGhpcyBjb21wbGV0aW9uIGJsb2NrIG1vdmVzIGJl
dHdlZW4gZGlmZmVyZW50IGRpc3BhdGNoIHF1ZXVlcyBpbiB0aGUgQVBTIGltcGxlbWVudGF0aW9u
LgorICAgIGF1dG8gaWRlbnRpZmllciA9ICsrbV9oYW5kbGVySWRlbnRpZmllcjsKKyAgICBtX3N1
YnNjcmliZUhhbmRsZXJzLmFkZChpZGVudGlmaWVyLCBXVEZNb3ZlKHN1YnNjcmliZUhhbmRsZXIp
KTsKKworICAgIFttX2Nvbm5lY3Rpb24gcmVxdWVzdFVSTFRva2VuRm9ySW5mbzptYWtlVG9rZW5J
bmZvKHRvcGljLCB2YXBpZFB1YmxpY0tleSkuZ2V0KCkgY29tcGxldGlvbjpeKEFQU1VSTFRva2Vu
ICp0b2tlbiwgTlNFcnJvciAqZXJyb3IpIHsKKyAgICAgICAgYXV0byBoYW5kbGVyID0gbV9zdWJz
Y3JpYmVIYW5kbGVycy50YWtlKGlkZW50aWZpZXIpOworICAgICAgICBoYW5kbGVyKHRva2VuLnRv
a2VuVVJMLCBlcnJvcik7CisgICAgfV07Cit9CisKK3ZvaWQgQXBwbGVQdXNoU2VydmljZUNvbm5l
Y3Rpb246OnVuc3Vic2NyaWJlKGNvbnN0IFN0cmluZyYgdG9waWMsIGNvbnN0IFZlY3Rvcjx1aW50
OF90PiYgdmFwaWRQdWJsaWNLZXksIFVuc3Vic2NyaWJlSGFuZGxlciYmIHVuc3Vic2NyaWJlSGFu
ZGxlcikKK3sKKyAgICAvLyBTZWUgc3Vic2NyaWJlIGZvciB3aHkgd2Ugc3Rhc2ggdGhlIGhhbmRs
ZXIgaW50byBhIG1hcC4KKyAgICBhdXRvIGlkZW50aWZpZXIgPSArK21faGFuZGxlcklkZW50aWZp
ZXI7CisgICAgbV91bnN1YnNjcmliZUhhbmRsZXJzLmFkZChpZGVudGlmaWVyLCBXVEZNb3ZlKHVu
c3Vic2NyaWJlSGFuZGxlcikpOworCisgICAgW21fY29ubmVjdGlvbiBpbnZhbGlkYXRlVVJMVG9r
ZW5Gb3JJbmZvOm1ha2VUb2tlbkluZm8odG9waWMsIHZhcGlkUHVibGljS2V5KS5nZXQoKSBjb21w
bGV0aW9uOl4oQk9PTCBzdWNjZXNzLCBOU0Vycm9yICplcnJvcikgeworICAgICAgICAvLyBGSVhN
RTogcmVtb3ZlIHRoaXMgb25jZSBBUFMgc3RvcHMgY2FsbGluZyBiYWNrIG9uIHRoZSB3cm9uZyBx
dWV1ZSAocmRhcjovLzg4MTAwMjc1KS4KKyAgICAgICAgZGlzcGF0Y2hfYXN5bmMoZGlzcGF0Y2hf
Z2V0X21haW5fcXVldWUoKSwgXnsKKyAgICAgICAgICAgIGF1dG8gaGFuZGxlciA9IG1fdW5zdWJz
Y3JpYmVIYW5kbGVycy50YWtlKGlkZW50aWZpZXIpOworICAgICAgICAgICAgaGFuZGxlcihzdWNj
ZXNzLCBlcnJvcik7CisgICAgICAgIH0pOworICAgIH1dOworfQorCitWZWN0b3I8U3RyaW5nPiBB
cHBsZVB1c2hTZXJ2aWNlQ29ubmVjdGlvbjo6ZW5hYmxlZFRvcGljcygpCit7CisgICAgcmV0dXJu
IG1ha2VWZWN0b3I8U3RyaW5nPihbbV9jb25uZWN0aW9uIGVuYWJsZWRUb3BpY3NdKTsKK30KKwor
VmVjdG9yPFN0cmluZz4gQXBwbGVQdXNoU2VydmljZUNvbm5lY3Rpb246Omlnbm9yZWRUb3BpY3Mo
KQoreworICAgIHJldHVybiBtYWtlVmVjdG9yPFN0cmluZz4oW21fY29ubmVjdGlvbiBpZ25vcmVk
VG9waWNzXSk7Cit9CisKK1ZlY3RvcjxTdHJpbmc+IEFwcGxlUHVzaFNlcnZpY2VDb25uZWN0aW9u
OjpvcHBvcnR1bmlzdGljVG9waWNzKCkKK3sKKyAgICByZXR1cm4gbWFrZVZlY3RvcjxTdHJpbmc+
KFttX2Nvbm5lY3Rpb24gb3Bwb3J0dW5pc3RpY1RvcGljc10pOworfQorCitWZWN0b3I8U3RyaW5n
PiBBcHBsZVB1c2hTZXJ2aWNlQ29ubmVjdGlvbjo6bm9uV2FraW5nVG9waWNzKCkKK3sKKyAgICBy
ZXR1cm4gbWFrZVZlY3RvcjxTdHJpbmc+KFttX2Nvbm5lY3Rpb24gbm9uV2FraW5nVG9waWNzXSk7
Cit9CisKK3ZvaWQgQXBwbGVQdXNoU2VydmljZUNvbm5lY3Rpb246OnNldEVuYWJsZWRUb3BpY3Mo
Y29uc3QgVmVjdG9yPFN0cmluZz4mIHRvcGljcykKK3sKKyAgICBbbV9jb25uZWN0aW9uIF9zZXRF
bmFibGVkVG9waWNzOmNyZWF0ZU5TQXJyYXkodG9waWNzKS5nZXQoKV07Cit9CisKK3ZvaWQgQXBw
bGVQdXNoU2VydmljZUNvbm5lY3Rpb246OnNldElnbm9yZWRUb3BpY3MoY29uc3QgVmVjdG9yPFN0
cmluZz4mIHRvcGljcykKK3sKKyAgICBbbV9jb25uZWN0aW9uIF9zZXRJZ25vcmVkVG9waWNzOmNy
ZWF0ZU5TQXJyYXkodG9waWNzKS5nZXQoKV07Cit9CisKK3ZvaWQgQXBwbGVQdXNoU2VydmljZUNv
bm5lY3Rpb246OnNldE9wcG9ydHVuaXN0aWNUb3BpY3MoY29uc3QgVmVjdG9yPFN0cmluZz4mIHRv
cGljcykKK3sKKyAgICBbbV9jb25uZWN0aW9uIF9zZXRPcHBvcnR1bmlzdGljVG9waWNzOmNyZWF0
ZU5TQXJyYXkodG9waWNzKS5nZXQoKV07Cit9CisKK3ZvaWQgQXBwbGVQdXNoU2VydmljZUNvbm5l
Y3Rpb246OnNldE5vbldha2luZ1RvcGljcyhjb25zdCBWZWN0b3I8U3RyaW5nPiYgdG9waWNzKQor
eworICAgIFttX2Nvbm5lY3Rpb24gX3NldE5vbldha2luZ1RvcGljczpjcmVhdGVOU0FycmF5KHRv
cGljcykuZ2V0KCldOworfQorCit2b2lkIEFwcGxlUHVzaFNlcnZpY2VDb25uZWN0aW9uOjpzZXRU
b3BpY0xpc3RzKFRvcGljTGlzdHMmJiB0b3BpY0xpc3RzKQoreworICAgIFttX2Nvbm5lY3Rpb24g
c2V0RW5hYmxlZFRvcGljczpjcmVhdGVOU0FycmF5KHRvcGljTGlzdHMuZW5hYmxlZFRvcGljcyku
Z2V0KCkgaWdub3JlZFRvcGljczpjcmVhdGVOU0FycmF5KHRvcGljTGlzdHMuaWdub3JlZFRvcGlj
cykuZ2V0KCkgb3Bwb3J0dW5pc3RpY1RvcGljczpjcmVhdGVOU0FycmF5KHRvcGljTGlzdHMub3Bw
b3J0dW5pc3RpY1RvcGljcykuZ2V0KCkgbm9uV2FraW5nVG9waWNzOmNyZWF0ZU5TQXJyYXkodG9w
aWNMaXN0cy5ub25XYWtpbmdUb3BpY3MpLmdldCgpXTsKK30KKworfSAvLyBuYW1lc3BhY2UgV2Vi
UHVzaEQKKworI2VuZGlmIC8vIEhBVkUoQVBQTEVfUFVTSF9TRVJWSUNFX1VSTF9UT0tFTl9TVVBQ
T1JUKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC93ZWJwdXNoZC9GYWtlUHVzaFNlcnZpY2VD
b25uZWN0aW9uLmggYi9Tb3VyY2UvV2ViS2l0L3dlYnB1c2hkL0Zha2VQdXNoU2VydmljZUNvbm5l
Y3Rpb24uaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi4zOGU4NTViYjQ0MTRkZWIyMjFiZTdhYzBjNDdiYTU4YjFkYzNk
ZDE0Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC93ZWJwdXNoZC9GYWtlUHVzaFNl
cnZpY2VDb25uZWN0aW9uLmgKQEAgLTAsMCArMSw1NiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykg
MjAyMiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRp
b24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Cisg
KiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5n
IGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNl
IGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4g
UmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBj
b3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90
aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJ
UyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JT
IGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9G
IE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NF
IEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05U
UklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5U
QUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRF
IEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVT
SU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkg
T0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwg
T1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJ
TiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNF
RCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEg
b25jZQorCisjaW5jbHVkZSAiUHVzaFNlcnZpY2VDb25uZWN0aW9uLmgiCisjaW5jbHVkZSA8d3Rm
L0hhc2hNYXAuaD4KKyNpbmNsdWRlIDx3dGYvUmV0YWluUHRyLmg+CisKK25hbWVzcGFjZSBXZWJQ
dXNoRCB7CisKK2NsYXNzIEZha2VQdXNoU2VydmljZUNvbm5lY3Rpb24gOiBwdWJsaWMgUHVzaFNl
cnZpY2VDb25uZWN0aW9uIHsKKyAgICBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsKK3B1YmxpYzoK
KyAgICBGYWtlUHVzaFNlcnZpY2VDb25uZWN0aW9uKCk7CisgICAgdmlydHVhbCB+RmFrZVB1c2hT
ZXJ2aWNlQ29ubmVjdGlvbigpOworCisgICAgdm9pZCBzdWJzY3JpYmUoY29uc3QgU3RyaW5nJiB0
b3BpYywgY29uc3QgVmVjdG9yPHVpbnQ4X3Q+JiB2YXBpZFB1YmxpY0tleSwgU3Vic2NyaWJlSGFu
ZGxlciYmKSBmaW5hbDsKKyAgICB2b2lkIHVuc3Vic2NyaWJlKGNvbnN0IFN0cmluZyYgdG9waWMs
IGNvbnN0IFZlY3Rvcjx1aW50OF90PiYgdmFwaWRQdWJsaWNLZXksIFVuc3Vic2NyaWJlSGFuZGxl
ciYmKSBmaW5hbDsKKworICAgIFZlY3RvcjxTdHJpbmc+IGVuYWJsZWRUb3BpY3MoKSBmaW5hbDsK
KyAgICBWZWN0b3I8U3RyaW5nPiBpZ25vcmVkVG9waWNzKCkgZmluYWw7CisgICAgVmVjdG9yPFN0
cmluZz4gb3Bwb3J0dW5pc3RpY1RvcGljcygpIGZpbmFsOworICAgIFZlY3RvcjxTdHJpbmc+IG5v
bldha2luZ1RvcGljcygpIGZpbmFsOworCisgICAgdm9pZCBzZXRFbmFibGVkVG9waWNzKGNvbnN0
IFZlY3RvcjxTdHJpbmc+JikgZmluYWw7CisgICAgdm9pZCBzZXRJZ25vcmVkVG9waWNzKGNvbnN0
IFZlY3RvcjxTdHJpbmc+JikgZmluYWw7CisgICAgdm9pZCBzZXRPcHBvcnR1bmlzdGljVG9waWNz
KGNvbnN0IFZlY3RvcjxTdHJpbmc+JikgZmluYWw7CisgICAgdm9pZCBzZXROb25XYWtpbmdUb3Bp
Y3MoY29uc3QgVmVjdG9yPFN0cmluZz4mKSBmaW5hbDsKKworICAgIHZvaWQgc2V0VG9waWNMaXN0
cyhUb3BpY0xpc3RzJiYpIGZpbmFsOworfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViUHVzaEQKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvd2VicHVzaGQvRmFrZVB1c2hTZXJ2aWNlQ29ubmVjdGlv
bi5tbSBiL1NvdXJjZS9XZWJLaXQvd2VicHVzaGQvRmFrZVB1c2hTZXJ2aWNlQ29ubmVjdGlvbi5t
bQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi5jYTMxMzc2ZWNkYTNjNjU1MjYyNDk1ZDY0ZWVlMDg4NjI4ZDI1Y2IyCi0t
LSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC93ZWJwdXNoZC9GYWtlUHVzaFNlcnZpY2VD
b25uZWN0aW9uLm1tCkBAIC0wLDAgKzEsODcgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjIg
QXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFu
ZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9k
aWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25k
aXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2Rl
IG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlz
dHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJp
Z2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBt
YXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09G
VFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFT
IElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJD
SEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUg
RElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVU
T1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBT
UEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09E
UyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNT
CisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJ
QUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRP
UlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5Z
IFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YK
KyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW1wb3J0ICJjb25m
aWcuaCIKKyNpbXBvcnQgIkZha2VQdXNoU2VydmljZUNvbm5lY3Rpb24uaCIKKworbmFtZXNwYWNl
IFdlYlB1c2hEIHsKKworRmFrZVB1c2hTZXJ2aWNlQ29ubmVjdGlvbjo6RmFrZVB1c2hTZXJ2aWNl
Q29ubmVjdGlvbigpCit7Cit9CisKK0Zha2VQdXNoU2VydmljZUNvbm5lY3Rpb246On5GYWtlUHVz
aFNlcnZpY2VDb25uZWN0aW9uKCkgPSBkZWZhdWx0OworCit2b2lkIEZha2VQdXNoU2VydmljZUNv
bm5lY3Rpb246OnN1YnNjcmliZShjb25zdCBTdHJpbmcmLCBjb25zdCBWZWN0b3I8dWludDhfdD4m
LCBTdWJzY3JpYmVIYW5kbGVyJiYgaGFuZGxlcikKK3sKKyAgICBoYW5kbGVyKHsgfSwgW05TRXJy
b3IgZXJyb3JXaXRoRG9tYWluOk5TQ29jb2FFcnJvckRvbWFpbiBjb2RlOk5TRmVhdHVyZVVuc3Vw
cG9ydGVkRXJyb3IgdXNlckluZm86bmlsXSk7Cit9CisKK3ZvaWQgRmFrZVB1c2hTZXJ2aWNlQ29u
bmVjdGlvbjo6dW5zdWJzY3JpYmUoY29uc3QgU3RyaW5nJiwgY29uc3QgVmVjdG9yPHVpbnQ4X3Q+
JiwgVW5zdWJzY3JpYmVIYW5kbGVyJiYgaGFuZGxlcikKK3sKKyAgICBoYW5kbGVyKHsgfSwgW05T
RXJyb3IgZXJyb3JXaXRoRG9tYWluOk5TQ29jb2FFcnJvckRvbWFpbiBjb2RlOk5TRmVhdHVyZVVu
c3VwcG9ydGVkRXJyb3IgdXNlckluZm86bmlsXSk7Cit9CisKK1ZlY3RvcjxTdHJpbmc+IEZha2VQ
dXNoU2VydmljZUNvbm5lY3Rpb246OmVuYWJsZWRUb3BpY3MoKQoreworICAgIHJldHVybiB7IH07
Cit9CisKK1ZlY3RvcjxTdHJpbmc+IEZha2VQdXNoU2VydmljZUNvbm5lY3Rpb246Omlnbm9yZWRU
b3BpY3MoKQoreworICAgIHJldHVybiB7IH07Cit9CisKK1ZlY3RvcjxTdHJpbmc+IEZha2VQdXNo
U2VydmljZUNvbm5lY3Rpb246Om9wcG9ydHVuaXN0aWNUb3BpY3MoKQoreworICAgIHJldHVybiB7
IH07Cit9CisKK1ZlY3RvcjxTdHJpbmc+IEZha2VQdXNoU2VydmljZUNvbm5lY3Rpb246Om5vbldh
a2luZ1RvcGljcygpCit7CisgICAgcmV0dXJuIHsgfTsKK30KKwordm9pZCBGYWtlUHVzaFNlcnZp
Y2VDb25uZWN0aW9uOjpzZXRFbmFibGVkVG9waWNzKGNvbnN0IFZlY3RvcjxTdHJpbmc+JiB0b3Bp
Y3MpCit7Cit9CisKK3ZvaWQgRmFrZVB1c2hTZXJ2aWNlQ29ubmVjdGlvbjo6c2V0SWdub3JlZFRv
cGljcyhjb25zdCBWZWN0b3I8U3RyaW5nPiYgdG9waWNzKQoreworfQorCit2b2lkIEZha2VQdXNo
U2VydmljZUNvbm5lY3Rpb246OnNldE9wcG9ydHVuaXN0aWNUb3BpY3MoY29uc3QgVmVjdG9yPFN0
cmluZz4mIHRvcGljcykKK3sKK30KKwordm9pZCBGYWtlUHVzaFNlcnZpY2VDb25uZWN0aW9uOjpz
ZXROb25XYWtpbmdUb3BpY3MoY29uc3QgVmVjdG9yPFN0cmluZz4mIHRvcGljcykKK3sKK30KKwor
dm9pZCBGYWtlUHVzaFNlcnZpY2VDb25uZWN0aW9uOjpzZXRUb3BpY0xpc3RzKFRvcGljTGlzdHMm
JiB0b3BpY0xpc3RzKQoreworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJQdXNoRApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC93ZWJwdXNoZC9QdXNoU2VydmljZUNvbm5lY3Rpb24uaCBiL1NvdXJj
ZS9XZWJLaXQvd2VicHVzaGQvUHVzaFNlcnZpY2VDb25uZWN0aW9uLmgKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uM2Nj
NWU4OTU3ZDExMTY4YmM3MWIzMWZlYWMxZTA3NjY0Nzc1MmQyOAotLS0gL2Rldi9udWxsCisrKyBi
L1NvdXJjZS9XZWJLaXQvd2VicHVzaGQvUHVzaFNlcnZpY2VDb25uZWN0aW9uLmgKQEAgLTAsMCAr
MSw4MSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMiBBcHBsZSBJbmMuIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJp
bmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0
ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6Cisg
KiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3Zl
IGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBm
b3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUK
KyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRo
IHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBB
UFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBS
RVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
CisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVT
UyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVO
VCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1Ig
QU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IK
KyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
IFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9G
IFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9X
RVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisg
KiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VO
Q0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9G
IFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9G
IFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisjaW5jbHVkZSA8d3RmL0NvbXBs
ZXRpb25IYW5kbGVyLmg+CisjaW5jbHVkZSA8d3RmL0RlcXVlLmg+CisjaW5jbHVkZSA8d3RmL0Z1
bmN0aW9uLmg+CisjaW5jbHVkZSA8d3RmL1JldGFpblB0ci5oPgorI2luY2x1ZGUgPHd0Zi9WZWN0
b3IuaD4KKyNpbmNsdWRlIDx3dGYvV29ya1F1ZXVlLmg+CisjaW5jbHVkZSA8d3RmL3RleHQvV1RG
U3RyaW5nLmg+CisKK09CSkNfQ0xBU1MgTlNFcnJvcjsKK09CSkNfQ0xBU1MgTlNTdHJpbmc7CitP
QkpDX0NMQVNTIE5TRGljdGlvbmFyeTsKKworbmFtZXNwYWNlIFdlYlB1c2hEIHsKKworY2xhc3Mg
UHVzaFNlcnZpY2VDb25uZWN0aW9uIHsKK3B1YmxpYzoKKyAgICB1c2luZyBJbmNvbWluZ1B1c2hN
ZXNzYWdlSGFuZGxlciA9IEZ1bmN0aW9uPHZvaWQoTlNTdHJpbmcgKiwgTlNEaWN0aW9uYXJ5ICop
PjsKKworICAgIFB1c2hTZXJ2aWNlQ29ubmVjdGlvbigpID0gZGVmYXVsdDsKKyAgICB2aXJ0dWFs
IH5QdXNoU2VydmljZUNvbm5lY3Rpb24oKSA9IGRlZmF1bHQ7CisKKyAgICB1c2luZyBTdWJzY3Jp
YmVIYW5kbGVyID0gQ29tcGxldGlvbkhhbmRsZXI8dm9pZChOU1N0cmluZyAqLCBOU0Vycm9yICop
PjsKKyAgICB2aXJ0dWFsIHZvaWQgc3Vic2NyaWJlKGNvbnN0IFN0cmluZyYgdG9waWMsIGNvbnN0
IFZlY3Rvcjx1aW50OF90PiYgdmFwaWRQdWJsaWNLZXksIFN1YnNjcmliZUhhbmRsZXImJikgPSAw
OworCisgICAgdXNpbmcgVW5zdWJzY3JpYmVIYW5kbGVyID0gQ29tcGxldGlvbkhhbmRsZXI8dm9p
ZChib29sLCBOU0Vycm9yICopPjsKKyAgICB2aXJ0dWFsIHZvaWQgdW5zdWJzY3JpYmUoY29uc3Qg
U3RyaW5nJiB0b3BpYywgY29uc3QgVmVjdG9yPHVpbnQ4X3Q+JiB2YXBpZFB1YmxpY0tleSwgVW5z
dWJzY3JpYmVIYW5kbGVyJiYpID0gMDsKKworICAgIHZpcnR1YWwgVmVjdG9yPFN0cmluZz4gZW5h
YmxlZFRvcGljcygpID0gMDsKKyAgICB2aXJ0dWFsIFZlY3RvcjxTdHJpbmc+IGlnbm9yZWRUb3Bp
Y3MoKSA9IDA7CisgICAgdmlydHVhbCBWZWN0b3I8U3RyaW5nPiBvcHBvcnR1bmlzdGljVG9waWNz
KCkgPSAwOworICAgIHZpcnR1YWwgVmVjdG9yPFN0cmluZz4gbm9uV2FraW5nVG9waWNzKCkgPSAw
OworCisgICAgdmlydHVhbCB2b2lkIHNldEVuYWJsZWRUb3BpY3MoY29uc3QgVmVjdG9yPFN0cmlu
Zz4mKSA9IDA7CisgICAgdmlydHVhbCB2b2lkIHNldElnbm9yZWRUb3BpY3MoY29uc3QgVmVjdG9y
PFN0cmluZz4mKSA9IDA7CisgICAgdmlydHVhbCB2b2lkIHNldE9wcG9ydHVuaXN0aWNUb3BpY3Mo
Y29uc3QgVmVjdG9yPFN0cmluZz4mKSA9IDA7CisgICAgdmlydHVhbCB2b2lkIHNldE5vbldha2lu
Z1RvcGljcyhjb25zdCBWZWN0b3I8U3RyaW5nPiYpID0gMDsKKworICAgIHN0cnVjdCBUb3BpY0xp
c3RzIHsKKyAgICAgICAgVmVjdG9yPFN0cmluZz4gZW5hYmxlZFRvcGljczsKKyAgICAgICAgVmVj
dG9yPFN0cmluZz4gaWdub3JlZFRvcGljczsKKyAgICAgICAgVmVjdG9yPFN0cmluZz4gb3Bwb3J0
dW5pc3RpY1RvcGljczsKKyAgICAgICAgVmVjdG9yPFN0cmluZz4gbm9uV2FraW5nVG9waWNzOwor
ICAgIH07CisgICAgdmlydHVhbCB2b2lkIHNldFRvcGljTGlzdHMoVG9waWNMaXN0cyYmKSA9IDA7
CisKKyAgICB2b2lkIHN0YXJ0TGlzdGVuaW5nRm9yUHVzaE1lc3NhZ2VzKEluY29taW5nUHVzaE1l
c3NhZ2VIYW5kbGVyJiYpOworICAgIHZvaWQgZGlkUmVjZWl2ZVB1c2hNZXNzYWdlKE5TU3RyaW5n
ICp0b3BpYywgTlNEaWN0aW9uYXJ5ICp1c2VySW5mbyk7CisKK3ByaXZhdGU6CisgICAgSW5jb21p
bmdQdXNoTWVzc2FnZUhhbmRsZXIgbV9pbmNvbWluZ1B1c2hNZXNzYWdlSGFuZGxlcjsKKyAgICBE
ZXF1ZTxzdGQ6OnBhaXI8UmV0YWluUHRyPE5TU3RyaW5nPiwgUmV0YWluUHRyPE5TRGljdGlvbmFy
eT4+PiBtX3BlbmRpbmdQdXNoZXM7Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJQdXNoRApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC93ZWJwdXNoZC9QdXNoU2VydmljZUNvbm5lY3Rpb24ubW0g
Yi9Tb3VyY2UvV2ViS2l0L3dlYnB1c2hkL1B1c2hTZXJ2aWNlQ29ubmVjdGlvbi5tbQpuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwLi41MzQzMzI1ZWI1ZWEyMDNlOGRmNmZmODMwM2NiOWIwZmZjODEzMjFiCi0tLSAvZGV2L251
bGwKKysrIGIvU291cmNlL1dlYktpdC93ZWJwdXNoZC9QdXNoU2VydmljZUNvbm5lY3Rpb24ubW0K
QEAgLTAsMCArMSw2MCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMiBBcHBsZSBJbmMuIEFs
bCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3Vy
Y2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFy
ZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFy
ZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4g
dGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGlu
IGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92
aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9W
SURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5E
IEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBB
TkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJ
TiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJ
QUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1Q
TEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VT
OyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQ
VElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVU
SEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5H
IE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBU
SEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJ
QklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbXBvcnQgImNvbmZpZy5oIgorI2ltcG9y
dCAiUHVzaFNlcnZpY2VDb25uZWN0aW9uLmgiCisKKyNpbXBvcnQgPHd0Zi9Xb3JrUXVldWUuaD4K
KworbmFtZXNwYWNlIFdlYlB1c2hEIHsKKwordm9pZCBQdXNoU2VydmljZUNvbm5lY3Rpb246OnN0
YXJ0TGlzdGVuaW5nRm9yUHVzaE1lc3NhZ2VzKEluY29taW5nUHVzaE1lc3NhZ2VIYW5kbGVyJiYg
aGFuZGxlcikKK3sKKyAgICBtX2luY29taW5nUHVzaE1lc3NhZ2VIYW5kbGVyID0gV1RGTW92ZSho
YW5kbGVyKTsKKworICAgIGlmICghbV9wZW5kaW5nUHVzaGVzLnNpemUoKSkKKyAgICAgICAgcmV0
dXJuOworCisgICAgV29ya1F1ZXVlOjptYWluKCkuZGlzcGF0Y2goW3RoaXNdKCkgbXV0YWJsZSB7
CisgICAgICAgIHdoaWxlIChtX3BlbmRpbmdQdXNoZXMuc2l6ZSgpKSB7CisgICAgICAgICAgICBA
YXV0b3JlbGVhc2Vwb29sIHsKKyAgICAgICAgICAgICAgICBhdXRvIG1lc3NhZ2UgPSBtX3BlbmRp
bmdQdXNoZXMudGFrZUZpcnN0KCk7CisgICAgICAgICAgICAgICAgbV9pbmNvbWluZ1B1c2hNZXNz
YWdlSGFuZGxlcihtZXNzYWdlLmZpcnN0LmdldCgpLCBtZXNzYWdlLnNlY29uZC5nZXQoKSk7Cisg
ICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICB9KTsKK30KKwordm9pZCBQdXNoU2VydmljZUNv
bm5lY3Rpb246OmRpZFJlY2VpdmVQdXNoTWVzc2FnZShOU1N0cmluZyAqdG9waWMsIE5TRGljdGlv
bmFyeSAqdXNlckluZm8pCit7CisgICAgaWYgKCFtX2luY29taW5nUHVzaE1lc3NhZ2VIYW5kbGVy
KSB7CisgICAgICAgIG1fcGVuZGluZ1B1c2hlcy5hcHBlbmQoeyB0b3BpYywgdXNlckluZm8gfSk7
CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICBtX2luY29taW5nUHVzaE1lc3NhZ2VIYW5k
bGVyKHRvcGljLCB1c2VySW5mbyk7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYlB1c2hECmRpZmYg
LS1naXQgYS9XZWJLaXRMaWJyYXJpZXMvQ2hhbmdlTG9nIGIvV2ViS2l0TGlicmFyaWVzL0NoYW5n
ZUxvZwppbmRleCAxNGYxZDJlZGFkZTlhNGQwODc1YTU4MTI1ZThmOWU4YzgwMzZmNGE4Li4xYTRj
NmU3MmYwMmIxNTAyODczZjJkM2JjNGZkYWMyYWY1N2I0MDI1IDEwMDY0NAotLS0gYS9XZWJLaXRM
aWJyYXJpZXMvQ2hhbmdlTG9nCisrKyBiL1dlYktpdExpYnJhcmllcy9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwxNCBAQAorMjAyMi0wMS0yOSAgQmVuIE5oYW0gIDxuaGFtQGFwcGxlLmNvbT4KKworICAg
ICAgICBJbXBvcnQgQVBTQ29ubmVjdGlvbi1yZWxhdGVkIFNQSQorICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjM1ODU2CisKKyAgICAgICAgUmV2aWV3ZWQg
YnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkIGFuIEFwcGxlUHVzaFNlcnZpY2Ugc3R1
YiBzbyB3ZSBjYW4gYnVpbGQgYWdhaW5zdCBpdCB3aXRoIHRoZSBwdWJsaWMgaU9TIFNESy4KKwor
ICAgICAgICAqIFdlYktpdFByaXZhdGVGcmFtZXdvcmtTdHVicy9pT1MvMTUvQXBwbGVQdXNoU2Vy
dmljZS5mcmFtZXdvcmsvQXBwbGVQdXNoU2VydmljZS50YmQ6IEFkZGVkLgorCiAyMDIyLTAxLTAx
ICBKZWZmIE1pbGxlciAgPGplZmZtQGFwcGxlLmNvbT4KIAogICAgICAgICBVcGRhdGUgdXNlci12
aXNpYmxlIGNvcHlyaWdodCBzdHJpbmdzIHRvIGluY2x1ZGUgMjAyMgpkaWZmIC0tZ2l0IGEvV2Vi
S2l0TGlicmFyaWVzL1dlYktpdFByaXZhdGVGcmFtZXdvcmtTdHVicy9pT1MvMTUvQXBwbGVQdXNo
U2VydmljZS5mcmFtZXdvcmsvQXBwbGVQdXNoU2VydmljZS50YmQgYi9XZWJLaXRMaWJyYXJpZXMv
V2ViS2l0UHJpdmF0ZUZyYW1ld29ya1N0dWJzL2lPUy8xNS9BcHBsZVB1c2hTZXJ2aWNlLmZyYW1l
d29yay9BcHBsZVB1c2hTZXJ2aWNlLnRiZApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi41Mjg3ZmZlMmJmOWI0OThlMmI0
ZmVlNDQ3NDVkZDJkYjEzYmYyNGIzCi0tLSAvZGV2L251bGwKKysrIGIvV2ViS2l0TGlicmFyaWVz
L1dlYktpdFByaXZhdGVGcmFtZXdvcmtTdHVicy9pT1MvMTUvQXBwbGVQdXNoU2VydmljZS5mcmFt
ZXdvcmsvQXBwbGVQdXNoU2VydmljZS50YmQKQEAgLTAsMCArMSw3NiBAQAorLS0tICF0YXBpLXRi
ZAordGJkLXZlcnNpb246ICAgICA0Cit0YXJnZXRzOiAgICAgICAgIFsgYXJtdjctaW9zLCBhcm12
N3MtaW9zLCBhcm02NC1pb3MsIGFybTY0ZS1pb3MgXQordXVpZHM6CisgIC0gdGFyZ2V0OiAgICAg
ICAgICBhcm12Ny1pb3MKKyAgICB2YWx1ZTogICAgICAgICAgIEZBMzE2OTQ5LTk2NjAtM0REQi05
Q0M0LTRBMzA1QjdCMjdFOQorICAtIHRhcmdldDogICAgICAgICAgYXJtdjdzLWlvcworICAgIHZh
bHVlOiAgICAgICAgICAgNTE3REZBQzgtRUZGRi0zRDExLTlEOTEtODAxRjE2NUMzNTg5CisgIC0g
dGFyZ2V0OiAgICAgICAgICBhcm02NC1pb3MKKyAgICB2YWx1ZTogICAgICAgICAgIDk0MDMzRjA4
LUZDNTQtMzRGQS05M0MwLTc1M0EwODk3MDI3QgorICAtIHRhcmdldDogICAgICAgICAgYXJtNjRl
LWlvcworICAgIHZhbHVlOiAgICAgICAgICAgRUNCNzQ2MDMtODhDRC0zNjdELUI2MjMtREYxMEE3
OEQxQzAxCitpbnN0YWxsLW5hbWU6ICAgICcvU3lzdGVtL0xpYnJhcnkvUHJpdmF0ZUZyYW1ld29y
a3MvQXBwbGVQdXNoU2VydmljZS5mcmFtZXdvcmsvQXBwbGVQdXNoU2VydmljZScKK2V4cG9ydHM6
CisgIC0gdGFyZ2V0czogICAgICAgICBbIGFybXY3LWlvcywgYXJtdjdzLWlvcyBdCisgICAgc3lt
Ym9sczogICAgICAgICBbIF9BUFNBc3NlcnQsIF9BUFNDb25uZWN0aW9uSW50ZXJydXB0ZWRIYW5k
bGVyQmxvY2ssIF9BUFNDb25uZWN0aW9uSW52YWxpZGF0aW9uSGFuZGxlckJsb2NrLCAKKyAgICAg
ICAgICAgICAgICAgICAgICAgX0FQU0NvcHlWYWx1ZUZvcktleSwgX0FQU0NyZWF0ZU1JR1NlcnZl
clNvdXJjZSwgX0FQU0NyZWF0ZU1JR1NlcnZlclNvdXJjZVdpdGhDb250ZXh0LCAKKyAgICAgICAg
ICAgICAgICAgICAgICAgX0FQU0dldEJvb2xlYW5WYWx1ZUZvcktleSwgX0FQU0dldENvbnRleHRG
b3JDYWxsb3V0Q3VycmVudE1JR1NlcnZlclNvdXJjZSwgCisgICAgICAgICAgICAgICAgICAgICAg
IF9BUFNHZXRNYWNoUG9ydEZvck1JR1NlcnZlclNvdXJjZSwgX0FQU0luY29taW5nTWVzc2FnZUZy
b21TdG9yYWdlS2V5LCAKKyAgICAgICAgICAgICAgICAgICAgICAgX0FQU0luY29taW5nTWVzc2Fn
ZUxhc3RNZXNzYWdlRnJvbVN0b3JhZ2VLZXksIF9BUFNJbmNvbWluZ01lc3NhZ2VUaW1lc3RhbXBL
ZXksIAorICAgICAgICAgICAgICAgICAgICAgICBfQVBTSW5jb21pbmdNZXNzYWdlVG9rZW5LZXks
IF9BUFNNZXNzYWdlQ29ycmVsYXRpb25JZGVudGlmaWVyS2V5LCAKKyAgICAgICAgICAgICAgICAg
ICAgICAgX0FQU01lc3NhZ2VHVUlES2V5LCBfQVBTTWVzc2FnZUlkZW50aWZpZXJLZXksIF9BUFNN
ZXNzYWdlVG9waWNLZXksIAorICAgICAgICAgICAgICAgICAgICAgICBfQVBTTWVzc2FnZVVzZXJJ
bmZvS2V5LCBfQVBTT3V0Z29pbmdNZXNzYWdlQ2FuY2VsbGVkS2V5LCBfQVBTT3V0Z29pbmdNZXNz
YWdlQ3JpdGljYWxLZXksIAorICAgICAgICAgICAgICAgICAgICAgICBfQVBTT3V0Z29pbmdNZXNz
YWdlSURLZXksIF9BUFNPdXRnb2luZ01lc3NhZ2VQYXlsb2FkRm9ybWF0S2V5LCAKKyAgICAgICAg
ICAgICAgICAgICAgICAgX0FQU091dGdvaW5nTWVzc2FnZVBheWxvYWRMZW5ndGhLZXksIF9BUFNP
dXRnb2luZ01lc3NhZ2VQcmlvcml0eUtleSwgCisgICAgICAgICAgICAgICAgICAgICAgIF9BUFNP
dXRnb2luZ01lc3NhZ2VTZW5kRGF0ZUtleSwgX0FQU091dGdvaW5nTWVzc2FnZVNlbmRJbnRlcmZh
Y2VLZXksIAorICAgICAgICAgICAgICAgICAgICAgICBfQVBTT3V0Z29pbmdNZXNzYWdlU2VuZGVy
VG9rZW5OYW1lS2V5LCBfQVBTT3V0Z29pbmdNZXNzYWdlU2VudEtleSwgCisgICAgICAgICAgICAg
ICAgICAgICAgIF9BUFNPdXRnb2luZ01lc3NhZ2VUaW1lZE91dEtleSwgX0FQU091dGdvaW5nTWVz
c2FnZVRpbWVvdXRLZXksIAorICAgICAgICAgICAgICAgICAgICAgICBfQVBTT3V0Z29pbmdNZXNz
YWdlVGltZXN0YW1wS2V5LCBfQVBTUHJlZkJ1bmRsZUlkZW50aWZpZXIsIAorICAgICAgICAgICAg
ICAgICAgICAgICBfQVBTU2V0VmFsdWVGb3JLZXksIF9BUFNTeW5jaHJvbml6ZSwgX0FQU1hQQ0xv
ZywgX0FQU1hQQ1NldExvZ0Jsb2NrLCAKKyAgICAgICAgICAgICAgICAgICAgICAgX0Nvbm5lY3Rp
b25EZWxpdmVyX3NlcnZlciwgX0Nvbm5lY3Rpb25EZWxpdmVyX3NlcnZlcl9yb3V0aW5lLCAKKyAg
ICAgICAgICAgICAgICAgICAgICAgX19BUFNDb25uZWN0aW9uRGVsaXZlcl9zdWJzeXN0ZW0sIF9f
QVBTSldTdHJpbmdUb0NoYXJQdHIsIAorICAgICAgICAgICAgICAgICAgICAgICBfX0FQU1BpbmdD
bGllbnQsIF9hcHNfY29ubmVjdGlvbl9ldmVudF9oYW5kbGVyIF0KKyAgICBvYmpjLWNsYXNzZXM6
ICAgIFsgQVBTRmlsZUxvZ2dpbmcsIEFQU011bHRpVXNlckZTLCBBUFNNdWx0aVVzZXJNb2RlLCBf
QVBTTG9nRmlsZUNvbXByZXNzb3IgXQorICAgIG9iamMtaXZhcnM6ICAgICAgWyBfQVBTTG9nRmls
ZUNvbXByZXNzb3IuX2FyY2hpdmVycyBdCisgIC0gdGFyZ2V0czogICAgICAgICBbIGFybTY0LWlv
cywgYXJtNjRlLWlvcywgYXJtdjctaW9zLCBhcm12N3MtaW9zIF0KKyAgICBzeW1ib2xzOiAgICAg
ICAgIFsgX0FQU0FsZXJ0LCBfQVBTQnVuZGxlSWRlbnRpZmllciwgX0FQU0NhY2hlZElQS2V5LCBf
QVBTQ2Fycmllck5hbWVLZXksIAorICAgICAgICAgICAgICAgICAgICAgICBfQVBTQ2xpZW50SWRl
bnRpdHlVcGRhdGVkTm90aWZpY2F0aW9uLCBfQVBTQ29ubmVjdGlvbkluaXRpYXRlRW50aXRsZW1l
bnQsIAorICAgICAgICAgICAgICAgICAgICAgICBfQVBTQ29ubmVjdGlvbk92ZXJyaWRlTmFtZWRE
ZWxlZ2F0ZVBvcnQsIF9BUFNDb25uZWN0aW9uU3lzdGVtUHJvY2Vzc0VudGl0bGVtZW50LCAKKyAg
ICAgICAgICAgICAgICAgICAgICAgX0FQU0NyZWF0ZURpY3Rpb25hcnlGcm9tWFBDT2JqZWN0LCBf
QVBTQ3JlYXRlWFBDT2JqZWN0RnJvbURpY3Rpb25hcnksIAorICAgICAgICAgICAgICAgICAgICAg
ICBfQVBTQ3JpdGljYWxXYWtlRW50aXRsZW1lbnQsIF9BUFNEYXJrV2FrZUVudGl0bGVtZW50LCBf
QVBTRGF0YUZvclByb3BlcnR5TGlzdCwgCisgICAgICAgICAgICAgICAgICAgICAgIF9BUFNEZWNv
ZGVEaWN0aW9uYXJ5LCBfQVBTRGVmYXVsdFRva2VuTmFtZSwgX0FQU0RlZmF1bHRVc2VySUQsIAor
ICAgICAgICAgICAgICAgICAgICAgICBfQVBTRGVtb0hvc3RzS2V5LCBfQVBTRW5jb2RlRGljdGlv
bmFyeSwgX0FQU0Vudmlyb25tZW50RGVtbywgCisgICAgICAgICAgICAgICAgICAgICAgIF9BUFNF
bnZpcm9ubWVudERldmVsb3BtZW50LCBfQVBTRW52aXJvbm1lbnRQcm9kdWN0aW9uLCBfQVBTRW52
aXJvbm1lbnRRQTIsIAorICAgICAgICAgICAgICAgICAgICAgICBfQVBTRXJyb3IsIF9BUFNFcnJv
ckRvbWFpbiwgX0FQU0ZvcmNlS2VlcEFsaXZlVjFLZXksIF9BUFNHZXRFbmFibGVDcml0aWNhbFJl
bGlhYmlsaXR5LCAKKyAgICAgICAgICAgICAgICAgICAgICAgX0FQU0dldEVuYWJsZVN0YXR1c05v
dGlmaWNhdGlvbnMsIF9BUFNHZXRFbmFibGVkVG9waWNzRnJvbVhQQ0RpY3Rpb25hcnksIAorICAg
ICAgICAgICAgICAgICAgICAgICBfQVBTR2V0SWdub3JlZFRvcGljc0Zyb21YUENEaWN0aW9uYXJ5
LCBfQVBTR2V0Tm9uV2FraW5nVG9waWNzRnJvbVhQQ0RpY3Rpb25hcnksIAorICAgICAgICAgICAg
ICAgICAgICAgICBfQVBTR2V0T3Bwb3J0dW5pc3RpY1RvcGljc0Zyb21YUENEaWN0aW9uYXJ5LCBf
QVBTR2V0VXNlc0FwcExhdW5jaFN0YXRzLCAKKyAgICAgICAgICAgICAgICAgICAgICAgX0FQU0dl
dFhQQ0FycmF5RnJvbURpY3Rpb25hcnksIF9BUFNHZXRYUENCb29sRnJvbURpY3Rpb25hcnksIAor
ICAgICAgICAgICAgICAgICAgICAgICBfQVBTR2V0WFBDQ29ubmVjdGlvbkNvbnRleHQsIF9BUFNH
ZXRYUENEYXRhRnJvbURpY3Rpb25hcnksIAorICAgICAgICAgICAgICAgICAgICAgICBfQVBTR2V0
WFBDRGljdGlvbmFyeUZyb21EaWN0aW9uYXJ5LCBfQVBTR2V0WFBDRG91YmxlRnJvbURpY3Rpb25h
cnksIAorICAgICAgICAgICAgICAgICAgICAgICBfQVBTR2V0WFBDSW50RnJvbURpY3Rpb25hcnks
IF9BUFNHZXRYUENOU1VJbnRlZ2VyRnJvbURpY3Rpb25hcnksIAorICAgICAgICAgICAgICAgICAg
ICAgICBfQVBTR2V0WFBDU3RyaW5nRnJvbURpY3Rpb25hcnksIF9BUFNIZXhTdHJpbmdGcm9tTlNE
YXRhLCBfQVBTSW5jb21pbmdNZXNzYWdlUHJpb3JpdHlTdHJpbmcsIAorICAgICAgICAgICAgICAg
ICAgICAgICBfQVBTSW5zZXJ0Qm9vbHNUb1hQQ0RpY3Rpb25hcnksIF9BUFNJbnNlcnREYXRhc1Rv
WFBDRGljdGlvbmFyeSwgCisgICAgICAgICAgICAgICAgICAgICAgIF9BUFNJbnNlcnREb3VibGVz
VG9YUENEaWN0aW9uYXJ5LCBfQVBTSW5zZXJ0RW5hYmxlZFRvcGljc1RvWFBDRGljdGlvbmFyeSwg
CisgICAgICAgICAgICAgICAgICAgICAgIF9BUFNJbnNlcnRJZ25vcmVkVG9waWNzVG9YUENEaWN0
aW9uYXJ5LCBfQVBTSW5zZXJ0SW50c1RvWFBDRGljdGlvbmFyeSwgCisgICAgICAgICAgICAgICAg
ICAgICAgIF9BUFNJbnNlcnROU0FycmF5c1RvWFBDRGljdGlvbmFyeSwgX0FQU0luc2VydE5TRGlj
dGlvbmFyaWVzVG9YUENEaWN0aW9uYXJ5LCAKKyAgICAgICAgICAgICAgICAgICAgICAgX0FQU0lu
c2VydE5TU3RyaW5nc1RvWFBDRGljdGlvbmFyeSwgX0FQU0luc2VydE5TVUludGVnZXJzVG9YUENE
aWN0aW9uYXJ5LCAKKyAgICAgICAgICAgICAgICAgICAgICAgX0FQU0luc2VydE5vbldha2luZ1Rv
cGljc1RvWFBDRGljdGlvbmFyeSwgX0FQU0luc2VydE9wcG9ydHVuaXN0aWNUb3BpY3NUb1hQQ0Rp
Y3Rpb25hcnksIAorICAgICAgICAgICAgICAgICAgICAgICBfQVBTSXNTVCwgX0FQU0xhdW5jaGRK
b2JMYWJlbCwgX0FQU05TRGF0YUZyb21IZXhTdHJpbmcsIF9BUFNQZXJBcHBUb2tlbkFwcElkc0tl
eSwgCisgICAgICAgICAgICAgICAgICAgICAgIF9BUFNQZXJzaXN0ZW50VG9waWNzS2V5LCBfQVBT
UG93ZXJMb2csIF9BUFNQcmV0dHlQcmludENvbGxlY3Rpb24sIAorICAgICAgICAgICAgICAgICAg
ICAgICBfQVBTUHJvcGVydHlMaXN0RnJvbU5TRGF0YSwgX0FQU1B1YlN1YkVycm9yLCBfQVBTUHVi
U3ViRXJyb3JEb21haW4sIAorICAgICAgICAgICAgICAgICAgICAgICBfQVBTUHVzaFdha2VFbnRp
dGxlbWVudCwgX0FQU1NhZmVBcnJheU9mU3RyaW5ncywgX0FQU1NldFhQQ0Nvbm5lY3Rpb25Db250
ZXh0LCAKKyAgICAgICAgICAgICAgICAgICAgICAgX0FQU1N5c3RlbVVzZXJzS2V5LCBfQVBTVHJ1
c3RBbGxIb3N0cywgX0FQU1VuZGVybHlpbmdFcnJvciwgCisgICAgICAgICAgICAgICAgICAgICAg
IF9BUFNVc2VzQXBwTGF1bmNoU3RhdHNLZXksIF9BUFNYUENDb25maWd1cmVDb25uZWN0aW9uLCBf
QVBTWFBDQ29ubmVjdGlvblNldEV2ZW50SGFuZGxlcnMsIAorICAgICAgICAgICAgICAgICAgICAg
ICBfQVBTWFBDQ3JlYXRlQ29ubmVjdGlvbkZvclNlcnZpY2UsIF9BUFNYUENDcmVhdGVDb25uZWN0
aW9uRm9yU2VydmljZVdpdGhRdWV1ZSwgCisgICAgICAgICAgICAgICAgICAgICAgIF9BUFNYUEND
cmVhdGVTZXJ2ZXJDb25uZWN0aW9uLCBfQVBTWFBDTWVzc2FnZVR5cGVLZXksIF9rQVBTVGFza0Ns
aWVudFNlcnZpY2VOYW1lIF0KKyAgICBvYmpjLWNsYXNzZXM6ICAgIFsgQVBTQWNjZXNzQ2hlY2ss
IEFQU0NoYW5uZWxTdWJzY3JpcHRpb25GYWlsdXJlLCBBUFNDb25uZWN0aW9uLCAKKyAgICAgICAg
ICAgICAgICAgICAgICAgQVBTRE5TUmVxdWVzdCwgQVBTRE5TUmVzcG9uc2UsIEFQU0luY29taW5n
TWVzc2FnZSwgQVBTTG9nLCAKKyAgICAgICAgICAgICAgICAgICAgICAgQVBTTWVzc2FnZSwgQVBT
T3V0Z29pbmdNZXNzYWdlLCBBUFNUYXNrQ2xpZW50IF0KKyAgICBvYmpjLWl2YXJzOiAgICAgIFsg
QVBTRE5TUmVxdWVzdC5fZW52aXJvbm1lbnQsIEFQU0ROU1JlcXVlc3QuX2ZsYWdzLCBBUFNETlNS
ZXF1ZXN0Ll9ob3N0bmFtZSwgCisgICAgICAgICAgICAgICAgICAgICAgIEFQU0ROU1JlcXVlc3Qu
X3JlcXVlc3RTdGFydFRpbWUsIEFQU0ROU1JlcXVlc3QuX3Jlc3BvbnNlQmxvY2ssIAorICAgICAg
ICAgICAgICAgICAgICAgICBBUFNETlNSZXF1ZXN0Ll90aW1lb3V0LCBBUFNETlNSZXNwb25zZS5f
aG9zdG5hbWUsIEFQU0ROU1Jlc3BvbnNlLl9pcHY0QWRkcmVzcywgCisgICAgICAgICAgICAgICAg
ICAgICAgIEFQU0ROU1Jlc3BvbnNlLl9pcHY2QWRkcmVzcywgQVBTVGFza0NsaWVudC5fY2xpZW50
UXVldWUsIEFQU1Rhc2tDbGllbnQuX2Nvbm5lY3Rpb24sIAorICAgICAgICAgICAgICAgICAgICAg
ICBBUFNUYXNrQ2xpZW50Ll9lbnZpcm9ubWVudCwgQVBTVGFza0NsaWVudC5fb3V0c3RhbmRpbmdE
TlNSZXF1ZXN0cyBdCisuLi4K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>450355</attachid>
            <date>2022-01-29 22:58:13 -0800</date>
            <delta_ts>2022-02-10 16:46:08 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-235856-20220129225812.patch</filename>
            <type>text/plain</type>
            <size>59382</size>
            <attacher name="Ben Nham">nham</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg4NzkyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IDNlNGJhZTUyZDUzYjdjMTEwZWNkYjQ4
OTE2MWYxMzhjZDU2YmJmYzguLmFiNjVlZjdjNDg0ZGM4OWI3YjUyY2ZkZjYxMWRlZTIxMTZkMWNj
MDkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMTQgQEAKKzIwMjItMDEtMjggIEJlbiBOaGFtICA8bmhhbUBhcHBs
ZS5jb20+CisKKyAgICAgICAgSW1wb3J0IEFQU0Nvbm5lY3Rpb24tcmVsYXRlZCBTUEkKKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIzNTg1NgorCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkZCBhIEhBVkUgbWFj
cm8gdG8gZ3VhcmQgc29tZSBvZiB0aGUgbmV3ZXIgU1BJIGluIEFQU0Nvbm5lY3Rpb24uCisKKyAg
ICAgICAgKiB3dGYvUGxhdGZvcm1IYXZlLmg6CisKIDIwMjItMDEtMjggIENocmlzIER1bWV6ICA8
Y2R1bWV6QGFwcGxlLmNvbT4KIAogICAgICAgICBBU1NFUlRJT04gRkFJTEVEOiBtX3Byb2Nlc3ND
YWxsYmFjayBpbiBXZWJDb3JlOjpBdWRpb1dvcmtsZXRQcm9jZXNzb3I6OnByb2Nlc3MKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cK
aW5kZXggZDE4YmQ3NGJlZTcwMDg2NDliZjU2YWU5NTc0MWZiMWU0OTM0YjdkYi4uNTgyYTQxMWQz
ZjQwNjNhNWYzOTBjZGY4YTJiM2JlYzYxNTM2ZTYzOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKQEAgLTEsMyArMSw1NCBA
QAorMjAyMi0wMS0yOCAgQmVuIE5oYW0gIDxuaGFtQGFwcGxlLmNvbT4KKworICAgICAgICBJbXBv
cnQgQVBTQ29ubmVjdGlvbi1yZWxhdGVkIFNQSQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjM1ODU2CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZ
IChPT1BTISkuCisKKyAgICAgICAgVGhpcyBpbXBvcnRzIHRoZSBTUEkgZGVjbGFyYXRpb25zIG5l
Y2Vzc2FyeSB0byBidWlsZCBhZ2FpbnN0IEFwcGxlUHVzaFNlcnZpY2UgaW4gV2ViS2l0LiBJdAor
ICAgICAgICBhbHNvIGluY2x1ZGVzIGEgUHVzaFNlcnZpY2VDb25uZWN0aW9uIGludGVyZmFjZSB0
aGF0IGNhbiBzaXQgaW4gZnJvbnQgb2YgQVBTQ29ubmVjdGlvbiwgYW5kCisgICAgICAgIGEgZmFr
ZSBpbnRlcmZhY2UgdGhhdCB3aWxsIGJlIGZsZXNoZWQgb3V0IGZvciB0ZXN0aW5nIHB1cnBvc2Vz
LgorCisgICAgICAgICogQ29uZmlndXJhdGlvbnMvV2ViS2l0LnhjY29uZmlnOgorICAgICAgICAq
IFBsYXRmb3JtL3NwaS9Db2NvYS9BcHBsZVB1c2hTZXJ2aWNlU1BJLmg6IEFkZGVkLgorICAgICAg
ICAqIFdlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAqIHdlYnB1c2hk
L0FwcGxlUHVzaFNlcnZpY2VDb25uZWN0aW9uLmg6IEFkZGVkLgorICAgICAgICAqIHdlYnB1c2hk
L0FwcGxlUHVzaFNlcnZpY2VDb25uZWN0aW9uLm1tOiBBZGRlZC4KKyAgICAgICAgKC1bX1dLQVBT
Q29ubmVjdGlvbkRlbGVnYXRlIGluaXRXaXRoQ29ubmVjdGlvbjpdKToKKyAgICAgICAgKC1bX1dL
QVBTQ29ubmVjdGlvbkRlbGVnYXRlIGNvbm5lY3Rpb246ZGlkUmVjZWl2ZVB1YmxpY1Rva2VuOl0p
OgorICAgICAgICAoLVtfV0tBUFNDb25uZWN0aW9uRGVsZWdhdGUgY29ubmVjdGlvbjpkaWRSZWNl
aXZlSW5jb21pbmdNZXNzYWdlOl0pOgorICAgICAgICAoV2ViUHVzaEQ6OkFwcGxlUHVzaFNlcnZp
Y2VDb25uZWN0aW9uOjpBcHBsZVB1c2hTZXJ2aWNlQ29ubmVjdGlvbik6CisgICAgICAgIChXZWJQ
dXNoRDo6bWFrZVRva2VuSW5mbyk6CisgICAgICAgIChXZWJQdXNoRDo6QXBwbGVQdXNoU2Vydmlj
ZUNvbm5lY3Rpb246OnN1YnNjcmliZSk6CisgICAgICAgIChXZWJQdXNoRDo6QXBwbGVQdXNoU2Vy
dmljZUNvbm5lY3Rpb246OnVuc3Vic2NyaWJlKToKKyAgICAgICAgKFdlYlB1c2hEOjpBcHBsZVB1
c2hTZXJ2aWNlQ29ubmVjdGlvbjo6ZW5hYmxlZFRvcGljcyk6CisgICAgICAgIChXZWJQdXNoRDo6
QXBwbGVQdXNoU2VydmljZUNvbm5lY3Rpb246Omlnbm9yZWRUb3BpY3MpOgorICAgICAgICAoV2Vi
UHVzaEQ6OkFwcGxlUHVzaFNlcnZpY2VDb25uZWN0aW9uOjpvcHBvcnR1bmlzdGljVG9waWNzKToK
KyAgICAgICAgKFdlYlB1c2hEOjpBcHBsZVB1c2hTZXJ2aWNlQ29ubmVjdGlvbjo6bm9uV2FraW5n
VG9waWNzKToKKyAgICAgICAgKFdlYlB1c2hEOjpBcHBsZVB1c2hTZXJ2aWNlQ29ubmVjdGlvbjo6
c2V0RW5hYmxlZFRvcGljcyk6CisgICAgICAgIChXZWJQdXNoRDo6QXBwbGVQdXNoU2VydmljZUNv
bm5lY3Rpb246OnNldElnbm9yZWRUb3BpY3MpOgorICAgICAgICAoV2ViUHVzaEQ6OkFwcGxlUHVz
aFNlcnZpY2VDb25uZWN0aW9uOjpzZXRPcHBvcnR1bmlzdGljVG9waWNzKToKKyAgICAgICAgKFdl
YlB1c2hEOjpBcHBsZVB1c2hTZXJ2aWNlQ29ubmVjdGlvbjo6c2V0Tm9uV2FraW5nVG9waWNzKToK
KyAgICAgICAgKFdlYlB1c2hEOjpBcHBsZVB1c2hTZXJ2aWNlQ29ubmVjdGlvbjo6c2V0VG9waWNM
aXN0cyk6CisgICAgICAgICogd2VicHVzaGQvRmFrZVB1c2hTZXJ2aWNlQ29ubmVjdGlvbi5oOiBB
ZGRlZC4KKyAgICAgICAgKiB3ZWJwdXNoZC9GYWtlUHVzaFNlcnZpY2VDb25uZWN0aW9uLm1tOiBB
ZGRlZC4KKyAgICAgICAgKFdlYlB1c2hEOjpGYWtlUHVzaFNlcnZpY2VDb25uZWN0aW9uOjpGYWtl
UHVzaFNlcnZpY2VDb25uZWN0aW9uKToKKyAgICAgICAgKFdlYlB1c2hEOjpGYWtlUHVzaFNlcnZp
Y2VDb25uZWN0aW9uOjpzdWJzY3JpYmUpOgorICAgICAgICAoV2ViUHVzaEQ6OkZha2VQdXNoU2Vy
dmljZUNvbm5lY3Rpb246OnVuc3Vic2NyaWJlKToKKyAgICAgICAgKFdlYlB1c2hEOjpGYWtlUHVz
aFNlcnZpY2VDb25uZWN0aW9uOjplbmFibGVkVG9waWNzKToKKyAgICAgICAgKFdlYlB1c2hEOjpG
YWtlUHVzaFNlcnZpY2VDb25uZWN0aW9uOjppZ25vcmVkVG9waWNzKToKKyAgICAgICAgKFdlYlB1
c2hEOjpGYWtlUHVzaFNlcnZpY2VDb25uZWN0aW9uOjpvcHBvcnR1bmlzdGljVG9waWNzKToKKyAg
ICAgICAgKFdlYlB1c2hEOjpGYWtlUHVzaFNlcnZpY2VDb25uZWN0aW9uOjpub25XYWtpbmdUb3Bp
Y3MpOgorICAgICAgICAoV2ViUHVzaEQ6OkZha2VQdXNoU2VydmljZUNvbm5lY3Rpb246OnNldEVu
YWJsZWRUb3BpY3MpOgorICAgICAgICAoV2ViUHVzaEQ6OkZha2VQdXNoU2VydmljZUNvbm5lY3Rp
b246OnNldElnbm9yZWRUb3BpY3MpOgorICAgICAgICAoV2ViUHVzaEQ6OkZha2VQdXNoU2Vydmlj
ZUNvbm5lY3Rpb246OnNldE9wcG9ydHVuaXN0aWNUb3BpY3MpOgorICAgICAgICAoV2ViUHVzaEQ6
OkZha2VQdXNoU2VydmljZUNvbm5lY3Rpb246OnNldE5vbldha2luZ1RvcGljcyk6CisgICAgICAg
IChXZWJQdXNoRDo6RmFrZVB1c2hTZXJ2aWNlQ29ubmVjdGlvbjo6c2V0VG9waWNMaXN0cyk6Cisg
ICAgICAgICogd2VicHVzaGQvUHVzaFNlcnZpY2VDb25uZWN0aW9uLmg6IEFkZGVkLgorICAgICAg
ICAqIHdlYnB1c2hkL1B1c2hTZXJ2aWNlQ29ubmVjdGlvbi5tbTogQWRkZWQuCisgICAgICAgIChX
ZWJQdXNoRDo6UHVzaFNlcnZpY2VDb25uZWN0aW9uOjpzdGFydExpc3RlbmluZ0ZvclB1c2hNZXNz
YWdlcyk6CisgICAgICAgIChXZWJQdXNoRDo6UHVzaFNlcnZpY2VDb25uZWN0aW9uOjpkaWRSZWNl
aXZlUHVzaE1lc3NhZ2UpOgorCiAyMDIyLTAxLTI4ICBGdWppaSBIaXJvbm9yaSAgPEhpcm9ub3Jp
LkZ1amlpQHNvbnkuY29tPgogCiAgICAgICAgIFtXaW5DYWlyb10gV2ViS2l0VGVzdFJ1bm5lciBz
aG91bGQgc3VwcG9ydCBwaXhlbCBkdW1wIGZvciBhY2NlbGVyYXRlZCBjb21wb3NpdGluZyBtb2Rl
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi9QbGF0Zm9ybUhhdmUuaCBiL1NvdXJjZS9XVEYv
d3RmL1BsYXRmb3JtSGF2ZS5oCmluZGV4IGEwNDc5OGUzYjQwYWY0ZGRjMmIwOTA4ZTM2OTU1NWQ1
NDA2NjhkMzMuLjhiYTY5ZTZhYjVkNjMzNzgxNzBkMTNjMjYzMzM4ZWFjNWNlMGE2NWYgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XVEYvd3RmL1BsYXRmb3JtSGF2ZS5oCisrKyBiL1NvdXJjZS9XVEYvd3Rm
L1BsYXRmb3JtSGF2ZS5oCkBAIC0xMTYzLDMgKzExNjMsOCBAQAogICAgIHx8IChQTEFURk9STShX
QVRDSE9TKSAmJiBfX1dBVENIX09TX1ZFUlNJT05fTUFYX0FMTE9XRUQgPj0gODA1MDApCiAjZGVm
aW5lIEhBVkVfQ0ZORVRXT1JLX0RJU0FCTEVfQ0FDSEVfU1BJIDEKICNlbmRpZgorCisjaWYgKChQ
TEFURk9STShNQUMpICYmIF9fTUFDX09TX1hfVkVSU0lPTl9NSU5fUkVRVUlSRUQgPj0gMTMwMDAw
KSBcCisgICAgfHwgKFBMQVRGT1JNKElPUykgJiYgX19JUEhPTkVfT1NfVkVSU0lPTl9NSU5fUkVR
VUlSRUQgPj0gMTYwMDAwKSkKKyNkZWZpbmUgSEFWRV9BUFBMRV9QVVNIX1NFUlZJQ0VfVVJMX1RP
S0VOX1NVUFBPUlQgMQorI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0NvbmZpZ3Vy
YXRpb25zL1dlYktpdC54Y2NvbmZpZyBiL1NvdXJjZS9XZWJLaXQvQ29uZmlndXJhdGlvbnMvV2Vi
S2l0LnhjY29uZmlnCmluZGV4IGQ0NDkzMWIzODI4M2YzY2MxMWUxM2E1MTBiMzg3ZDIxNjNhOTEw
MTAuLjRkNzU4ZGUyOTM3YjMzYmE1ZjMxYmFkZGQzMDdlZGZiODNmNzA4NTkgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvQ29uZmlndXJhdGlvbnMvV2ViS2l0LnhjY29uZmlnCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ29uZmlndXJhdGlvbnMvV2ViS2l0LnhjY29uZmlnCkBAIC01NCw2ICs1NCwxMyBA
QCBXS19BQ0NFU1NJQklMSVRZX0xERkxBR1NfQ09DT0FfVE9VQ0hfWUVTID0gLWxBY2Nlc3NpYmls
aXR5OwogV0tfQUNDRVNTSUJJTElUWV9MREZMQUdTX0NPQ09BX1RPVUNIX05PID0gJChXS19BQ0NF
U1NJQklMSVRZX0xERkxBR1MkKFdLX01BQ09TXzEwMTQpKTsKIFdLX0FDQ0VTU0lCSUxJVFlfTERG
TEFHU19NQUNPU19TSU5DRV8xMDE0ID0gLXdlYWtfbGlicmFyeSAvdXNyL2xpYi9saWJBY2Nlc3Np
YmlsaXR5LmR5bGliOwogCitXS19BUFBMRV9QVVNIX1NFUlZJQ0VfTERGTEFHUyA9ICQoV0tfQVBQ
TEVfUFVTSF9TRVJWSUNFX0xERkxBR1NfJChXS19QTEFURk9STV9OQU1FKSk7CitXS19BUFBMRV9Q
VVNIX1NFUlZJQ0VfTERGTEFHU19pcGhvbmVvcyA9ICQoV0tfQVBQTEVfUFVTSF9TRVJWSUNFX0xE
RkxBR1MkKFdLX0lPU18xNSkpOworV0tfQVBQTEVfUFVTSF9TRVJWSUNFX0xERkxBR1NfaXBob25l
c2ltdWxhdG9yID0gJChXS19BUFBMRV9QVVNIX1NFUlZJQ0VfTERGTEFHUyQoV0tfSU9TXzE1KSk7
CitXS19BUFBMRV9QVVNIX1NFUlZJQ0VfTERGTEFHU19JT1NfU0lOQ0VfMTUgPSAtZnJhbWV3b3Jr
IEFwcGxlUHVzaFNlcnZpY2U7CitXS19BUFBMRV9QVVNIX1NFUlZJQ0VfTERGTEFHU19tYWNvc3gg
PSAkKFdLX0FQUExFX1BVU0hfU0VSVklDRV9MREZMQUdTJChXS19NQUNPU18xMjAwKSk7CitXS19B
UFBMRV9QVVNIX1NFUlZJQ0VfTERGTEFHU19NQUNPU19TSU5DRV8xMjAwID0gLWZyYW1ld29yayBB
cHBsZVB1c2hTZXJ2aWNlOworCiBXS19BUFBLSVRfTERGTEFHUyA9ICQoV0tfQVBQS0lUX0xERkxB
R1NfJChXS19QTEFURk9STV9OQU1FKSk7CiBXS19BUFBLSVRfTERGTEFHU19tYWNvc3ggPSAtZnJh
bWV3b3JrIEFwcEtpdDsKIFdLX0FQUEtJVF9MREZMQUdTX21hY2NhdGFseXN0ID0gLWZyYW1ld29y
ayBBcHBLaXQ7CkBAIC0xNTUsNyArMTYyLDcgQEAgV0tfTElCTkVUV09SS0VYVEVOU0lPTl9MREZM
QUdTX21hY2NhdGFseXN0ID0gLWxuZXR3b3JrZXh0ZW5zaW9uOwogV0tfTElCTkVUV09SS0VYVEVO
U0lPTl9MREZMQUdTX21hY29zeCA9IC13ZWFrX2xpYnJhcnkgL3Vzci9saWIvbGlibmV0d29ya2V4
dGVuc2lvbi5keWxpYjsKIFdLX0xJQk5FVFdPUktFWFRFTlNJT05fTERGTEFHU190dm9zID0gOwog
Ci1GUkFNRVdPUktfQU5EX0xJQlJBUllfTERGTEFHUyA9IC1sb2JqYyAtZnJhbWV3b3JrIENGTmV0
d29yayAtZnJhbWV3b3JrIENvcmVBdWRpbyAtZnJhbWV3b3JrIENvcmVGb3VuZGF0aW9uIC1mcmFt
ZXdvcmsgQ29yZUdyYXBoaWNzIC1mcmFtZXdvcmsgQ29yZVRleHQgLWZyYW1ld29yayBGb3VuZGF0
aW9uIC1mcmFtZXdvcmsgSW1hZ2VJTyAtZnJhbWV3b3JrIElPS2l0IC1mcmFtZXdvcmsgSU9TdXJm
YWNlIC1mcmFtZXdvcmsgV2ViS2l0TGVnYWN5IC1sbmV0d29yayAtZnJhbWV3b3JrIE1ldGFsICQo
V0tfQUNDRVNTSUJJTElUWV9MREZMQUdTKSAkKFdLX0FQUEtJVF9MREZMQUdTKSAkKFdLX0JBQ0tC
T0FSRF9TRVJWSUNFU19MREZMQUdTKSAkKFdLX1JVTk5JTkdCT0FSRF9TRVJWSUNFU19MREZMQUdT
KSAkKFdLX0FVVEhLSVRfTERGTEFHUykgJChXS19DQVJCT05fTERGTEFHUykgJChXS19DT05UQUNU
U19MREZMQUdTKSAkKFdLX0NPUkVfUFJFRElDVElPTl9MREZMQUdTKSAkKFdLX0NPUkVfU0VSVklD
RVNfTERGTEFHUykgJChXS19HUkFQSElDU19TRVJWSUNFU19MREZMQUdTKSAkKFdLX0xJQk5FVFdP
UktFWFRFTlNJT05fTERGTEFHUykgJChXS19MSUJTQU5EQk9YX0xERkxBR1MpICQoV0tfTElCV0VC
UlRDX0xERkxBR1MpICQoV0tfTU9CSUxFX0NPUkVfU0VSVklDRVNfTERGTEFHUykgJChXS19NT0JJ
TEVfR0VTVEFMVF9MREZMQUdTKSAkKFdLX1BERktJVF9MREZMQUdTKSAkKFdLX1BST1RPVFlQRV9U
T09MU19MREZMQUdTKSAkKFdLX1NBRkVfQlJPV1NJTkdfTERGTEFHUykgJChXS19TRUNVUklUWV9J
TlRFUkZBQ0VfTERGTEFHUykgJChXS19VSUtJVF9MREZMQUdTKSAkKFdLX1VOSUZPUk1fVFlQRV9J
REVOVElGSUVSU19MREZMQUdTKSAkKFdLX1VSTF9GT1JNQVRUSU5HX0xERkxBR1MpICQoV0tfV0VC
SU5TUEVDVE9SVUlfTERGTEFHUykgJChXS19DT09SRElOQVRPUl9MREZMQUdTKTsKK0ZSQU1FV09S
S19BTkRfTElCUkFSWV9MREZMQUdTID0gLWxvYmpjIC1mcmFtZXdvcmsgQ0ZOZXR3b3JrIC1mcmFt
ZXdvcmsgQ29yZUF1ZGlvIC1mcmFtZXdvcmsgQ29yZUZvdW5kYXRpb24gLWZyYW1ld29yayBDb3Jl
R3JhcGhpY3MgLWZyYW1ld29yayBDb3JlVGV4dCAtZnJhbWV3b3JrIEZvdW5kYXRpb24gLWZyYW1l
d29yayBJbWFnZUlPIC1mcmFtZXdvcmsgSU9LaXQgLWZyYW1ld29yayBJT1N1cmZhY2UgLWZyYW1l
d29yayBXZWJLaXRMZWdhY3kgLWxuZXR3b3JrIC1mcmFtZXdvcmsgTWV0YWwgJChXS19BQ0NFU1NJ
QklMSVRZX0xERkxBR1MpICQoV0tfQVBQS0lUX0xERkxBR1MpICQoV0tfQVBQTEVfUFVTSF9TRVJW
SUNFX0xERkxBR1MpICQoV0tfQkFDS0JPQVJEX1NFUlZJQ0VTX0xERkxBR1MpICQoV0tfUlVOTklO
R0JPQVJEX1NFUlZJQ0VTX0xERkxBR1MpICQoV0tfQVVUSEtJVF9MREZMQUdTKSAkKFdLX0NBUkJP
Tl9MREZMQUdTKSAkKFdLX0NPTlRBQ1RTX0xERkxBR1MpICQoV0tfQ09SRV9QUkVESUNUSU9OX0xE
RkxBR1MpICQoV0tfQ09SRV9TRVJWSUNFU19MREZMQUdTKSAkKFdLX0dSQVBISUNTX1NFUlZJQ0VT
X0xERkxBR1MpICQoV0tfTElCTkVUV09SS0VYVEVOU0lPTl9MREZMQUdTKSAkKFdLX0xJQlNBTkRC
T1hfTERGTEFHUykgJChXS19MSUJXRUJSVENfTERGTEFHUykgJChXS19NT0JJTEVfQ09SRV9TRVJW
SUNFU19MREZMQUdTKSAkKFdLX01PQklMRV9HRVNUQUxUX0xERkxBR1MpICQoV0tfUERGS0lUX0xE
RkxBR1MpICQoV0tfUFJPVE9UWVBFX1RPT0xTX0xERkxBR1MpICQoV0tfU0FGRV9CUk9XU0lOR19M
REZMQUdTKSAkKFdLX1NFQ1VSSVRZX0lOVEVSRkFDRV9MREZMQUdTKSAkKFdLX1VJS0lUX0xERkxB
R1MpICQoV0tfVU5JRk9STV9UWVBFX0lERU5USUZJRVJTX0xERkxBR1MpICQoV0tfVVJMX0ZPUk1B
VFRJTkdfTERGTEFHUykgJChXS19XRUJJTlNQRUNUT1JVSV9MREZMQUdTKSAkKFdLX0NPT1JESU5B
VE9SX0xERkxBR1MpOwogCiAvLyBQcmV2ZW50IEMrKyBzdGFuZGFyZCBsaWJyYXJ5IGJhc2ljX3N0
cmluZ3N0cmVhbSwgb3BlcmF0b3IgbmV3LCBkZWxldGUgYW5kIHRoZWlyIHJlbGF0ZWQgZXhjZXB0
aW9uIHR5cGVzIGZyb20gYmVpbmcgZXhwb3J0ZWQgYXMgd2VhayBzeW1ib2xzLgogVU5FWFBPUlRF
RF9TWU1CT0xfTERGTEFHUyA9IC1XbCwtdW5leHBvcnRlZF9zeW1ib2wgLVdsLF9fWlRJU3Q5YmFk
X2FsbG9jIC1XbCwtdW5leHBvcnRlZF9zeW1ib2wgLVdsLF9fWlRJU3Q5ZXhjZXB0aW9uIC1XbCwt
dW5leHBvcnRlZF9zeW1ib2wgLVdsLF9fWlRTU3Q5YmFkX2FsbG9jIC1XbCwtdW5leHBvcnRlZF9z
eW1ib2wgLVdsLF9fWlRTU3Q5ZXhjZXB0aW9uIC1XbCwtdW5leHBvcnRlZF9zeW1ib2wgLVdsLF9f
WmRsUHZTXyAtV2wsLXVuZXhwb3J0ZWRfc3ltYm9sIC1XbCxfX1pud21QdiAtV2wsLXVuZXhwb3J0
ZWRfc3ltYm9sIC1XbCxfX1pud20gLVdsLC11bmV4cG9ydGVkX3N5bWJvbCAtV2wsX19aVFZOU3Qz
X18xMTdiYWRfZnVuY3Rpb25fY2FsbEUgLVdsLC11bmV4cG9ydGVkX3N5bWJvbCAtV2wsX19aVENO
U3QzX18xMThiYXNpY19zdHJpbmdzdHJlYW1JY05TXzExY2hhcl90cmFpdHNJY0VFTlNfOWFsbG9j
YXRvckljRUVFRTBfTlNfMTNiYXNpY19pc3RyZWFtSWNTMl9FRSAtV2wsLXVuZXhwb3J0ZWRfc3lt
Ym9sIC1XbCxfX1pUQ05TdDNfXzExOGJhc2ljX3N0cmluZ3N0cmVhbUljTlNfMTFjaGFyX3RyYWl0
c0ljRUVOU185YWxsb2NhdG9ySWNFRUVFMF9OU18xNGJhc2ljX2lvc3RyZWFtSWNTMl9FRSAtV2ws
LXVuZXhwb3J0ZWRfc3ltYm9sIC1XbCxfX1pUQ05TdDNfXzExOGJhc2ljX3N0cmluZ3N0cmVhbUlj
TlNfMTFjaGFyX3RyYWl0c0ljRUVOU185YWxsb2NhdG9ySWNFRUVFMTZfTlNfMTNiYXNpY19vc3Ry
ZWFtSWNTMl9FRSAtV2wsLXVuZXhwb3J0ZWRfc3ltYm9sIC1XbCxfX1pUVE5TdDNfXzExOGJhc2lj
X3N0cmluZ3N0cmVhbUljTlNfMTFjaGFyX3RyYWl0c0ljRUVOU185YWxsb2NhdG9ySWNFRUVFIC1X
bCwtdW5leHBvcnRlZF9zeW1ib2wgLVdsLF9fWlRWTlN0M19fMTE1YmFzaWNfc3RyaW5nYnVmSWNO
U18xMWNoYXJfdHJhaXRzSWNFRU5TXzlhbGxvY2F0b3JJY0VFRUUgLVdsLC11bmV4cG9ydGVkX3N5
bWJvbCAtV2wsX19aVFZOU3QzX18xMThiYXNpY19zdHJpbmdzdHJlYW1JY05TXzExY2hhcl90cmFp
dHNJY0VFTlNfOWFsbG9jYXRvckljRUVFRSAtV2wsLXVuZXhwb3J0ZWRfc3ltYm9sIC1XbCxfX1pU
Q05TdDNfXzExOGJhc2ljX3N0cmluZ3N0cmVhbUljTlNfMTFjaGFyX3RyYWl0c0ljRUVOU185YWxs
b2NhdG9ySWNFRUVFOF9OU18xM2Jhc2ljX29zdHJlYW1JY1MyX0VFOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9QbGF0Zm9ybS9zcGkvQ29jb2EvQXBwbGVQdXNoU2VydmljZVNQSS5oIGIvU291
cmNlL1dlYktpdC9QbGF0Zm9ybS9zcGkvQ29jb2EvQXBwbGVQdXNoU2VydmljZVNQSS5oCm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAuLjU1ZjZhZDZmNjM2OTNlZTEwYjFhYWNkNDMxZDllNDcxY2VhZDg2MjMKLS0tIC9kZXYv
bnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L1BsYXRmb3JtL3NwaS9Db2NvYS9BcHBsZVB1c2hTZXJ2
aWNlU1BJLmgKQEAgLTAsMCArMSwxMDIgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjIgQXBw
bGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1
c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZp
Y2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRp
b25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11
c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJp
YnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0
CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRl
cmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdB
UkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElT
JycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFO
VEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElT
Q0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JT
CisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVD
SUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBP
UiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisg
KiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJ
TElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQg
KElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdB
WSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAq
IFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaWYgVVNFKEFQUExFX0lO
VEVSTkFMX1NESykKKworI2ltcG9ydCA8QXBwbGVQdXNoU2VydmljZS9BcHBsZVB1c2hTZXJ2aWNl
Lmg+CisKKyNlbHNlIC8vIGlmICFVU0UoQVBQTEVfSU5URVJOQUxfU0RLKQorCisjaW1wb3J0IDxG
b3VuZGF0aW9uL0ZvdW5kYXRpb24uaD4KKworTlNfQVNTVU1FX05PTk5VTExfQkVHSU4KKworV1RG
X0VYVEVSTl9DX0JFR0lOCitleHRlcm4gTlNTdHJpbmcgKmNvbnN0IEFQU0Vudmlyb25tZW50UHJv
ZHVjdGlvbjsKKwordHlwZWRlZiBOU19FTlVNKE5TSW50ZWdlciwgQVBTVVJMVG9rZW5FcnJvckNv
ZGUpIHsKKyAgICBBUFNVUkxUb2tlbkVycm9yQ29kZUludmFsaWRBcmd1bWVudHMgPSAxMDAsCisg
ICAgQVBTVVJMVG9rZW5FcnJvckNvZGVYUENFcnJvciA9IDEwMSwKKyAgICBBUFNVUkxUb2tlbkVy
cm9yQ29kZVRvcGljU2FsdGluZ0ZhaWxlZCA9IDEwMiwKKyAgICBBUFNVUkxUb2tlbkVycm9yQ29k
ZVRvcGljQWxyZWFkeUluRmlsdGVyID0gMTAzLAorfTsKK1dURl9FWFRFUk5fQ19FTkQKKworQGNs
YXNzIEFQU0Nvbm5lY3Rpb247CitAcHJvdG9jb2wgQVBTQ29ubmVjdGlvbkRlbGVnYXRlOworCitA
aW50ZXJmYWNlIEFQU01lc3NhZ2UgOiBOU09iamVjdDxOU0NvZGluZz4KK0Bwcm9wZXJ0eSAobm9u
YXRvbWljLCByZXRhaW4pIE5TU3RyaW5nICp0b3BpYzsKK0Bwcm9wZXJ0eSAobm9uYXRvbWljLCBy
ZXRhaW4pIE5TRGljdGlvbmFyeSAqdXNlckluZm87CitAcHJvcGVydHkgKG5vbmF0b21pYywgYXNz
aWduKSBOU1VJbnRlZ2VyIGlkZW50aWZpZXI7CitAZW5kCisKK0BpbnRlcmZhY2UgQVBTSW5jb21p
bmdNZXNzYWdlIDogQVBTTWVzc2FnZQorQGVuZAorCisjaWYgSEFWRShBUFBMRV9QVVNIX1NFUlZJ
Q0VfVVJMX1RPS0VOX1NVUFBPUlQpCisKK0BpbnRlcmZhY2UgQVBTVVJMVG9rZW4gOiBOU09iamVj
dDxOU1NlY3VyZUNvZGluZywgTlNDb3B5aW5nPgorQHByb3BlcnR5IChub25hdG9taWMsIHN0cm9u
ZykgTlNTdHJpbmcgKnRva2VuVVJMOworQGVuZAorCitAaW50ZXJmYWNlIEFQU1VSTFRva2VuSW5m
byA6IE5TT2JqZWN0PE5TU2VjdXJlQ29kaW5nLCBOU0NvcHlpbmc+CistIChpbnN0YW5jZXR5cGUp
aW5pdFdpdGhUb3BpYzooTlNTdHJpbmcgKil0b3BpYyB2YXBpZFB1YmxpY0tleToobnVsbGFibGUg
TlNEYXRhICopdmFwaWRQdWJsaWNLZXk7CitAZW5kCisKK3R5cGVkZWYgdm9pZCheQVBTQ29ubmVj
dGlvblJlcXVlc3RVUkxUb2tlbkNvbXBsZXRpb24pKEFQU1VSTFRva2VuICogX19udWxsYWJsZSB0
b2tlbiwgTlNFcnJvciAqIF9fbnVsbGFibGUgZXJyb3IpOwordHlwZWRlZiB2b2lkKF5BUFNDb25u
ZWN0aW9uSW52YWxpZGF0ZVVSTFRva2VuQ29tcGxldGlvbikoQk9PTCBzdWNjZXNzLCBOU0Vycm9y
ICogX19udWxsYWJsZSBlcnJvcik7CisKKyNlbmRpZiAvLyBIQVZFKEFQUExFX1BVU0hfU0VSVklD
RV9VUkxfVE9LRU5fU1VQUE9SVCkKKworQGludGVyZmFjZSBBUFNDb25uZWN0aW9uIDogTlNPYmpl
Y3QKKworLSAoaW5zdGFuY2V0eXBlKWluaXRXaXRoRW52aXJvbm1lbnROYW1lOihOU1N0cmluZyAq
KWVudmlyb25tZW50TmFtZSBuYW1lZERlbGVnYXRlUG9ydDoobnVsbGFibGUgTlNTdHJpbmcgKilu
YW1lZERlbGVnYXRlUG9ydCBxdWV1ZTooZGlzcGF0Y2hfcXVldWVfdClxdWV1ZTsKKworI2lmIEhB
VkUoQVBQTEVfUFVTSF9TRVJWSUNFX1VSTF9UT0tFTl9TVVBQT1JUKQorLSAodm9pZClyZXF1ZXN0
VVJMVG9rZW5Gb3JJbmZvOihBUFNVUkxUb2tlbkluZm8gKilpbmZvIGNvbXBsZXRpb246KEFQU0Nv
bm5lY3Rpb25SZXF1ZXN0VVJMVG9rZW5Db21wbGV0aW9uKWNvbXBsZXRpb247CistICh2b2lkKWlu
dmFsaWRhdGVVUkxUb2tlbkZvckluZm86KEFQU1VSTFRva2VuSW5mbyAqKWluZm8gY29tcGxldGlv
bjooQVBTQ29ubmVjdGlvbkludmFsaWRhdGVVUkxUb2tlbkNvbXBsZXRpb24pY29tcGxldGlvbjsK
KyNlbmRpZiAvLyBIQVZFKEFQUExFX1BVU0hfU0VSVklDRV9VUkxfVE9LRU5fU1VQUE9SVCkKKwor
QHByb3BlcnR5IChub25hdG9taWMsIHJlYWR3cml0ZSwgYXNzaWduLCBudWxsYWJsZSkgaWQ8QVBT
Q29ubmVjdGlvbkRlbGVnYXRlPiBkZWxlZ2F0ZTsKKworQHByb3BlcnR5IChub25hdG9taWMsIHJl
YWR3cml0ZSwgc3Ryb25nLCBzZXR0ZXI9X3NldEVuYWJsZWRUb3BpY3M6LCBudWxsYWJsZSkgTlNB
cnJheTxOU1N0cmluZyAqPiAqZW5hYmxlZFRvcGljczsKK0Bwcm9wZXJ0eSAobm9uYXRvbWljLCBy
ZWFkd3JpdGUsIHN0cm9uZywgc2V0dGVyPV9zZXRJZ25vcmVkVG9waWNzOiwgbnVsbGFibGUpIE5T
QXJyYXk8TlNTdHJpbmcgKj4gKmlnbm9yZWRUb3BpY3M7CitAcHJvcGVydHkgKG5vbmF0b21pYywg
cmVhZHdyaXRlLCBzdHJvbmcsIHNldHRlcj1fc2V0T3Bwb3J0dW5pc3RpY1RvcGljczosIG51bGxh
YmxlKSBOU0FycmF5PE5TU3RyaW5nICo+ICpvcHBvcnR1bmlzdGljVG9waWNzOworQHByb3BlcnR5
IChub25hdG9taWMsIHJlYWR3cml0ZSwgc3Ryb25nLCBzZXR0ZXI9X3NldE5vbldha2luZ1RvcGlj
czosIG51bGxhYmxlKSBOU0FycmF5PE5TU3RyaW5nICo+ICpub25XYWtpbmdUb3BpY3M7CisKKy0g
KHZvaWQpc2V0RW5hYmxlZFRvcGljczooTlNBcnJheTxOU1N0cmluZyAqPiAqKWVuYWJsZWRUb3Bp
Y3MgaWdub3JlZFRvcGljczooTlNBcnJheTxOU1N0cmluZyAqPiAqKWlnbm9yZWRUb3BpY3Mgb3Bw
b3J0dW5pc3RpY1RvcGljczooTlNBcnJheTxOU1N0cmluZyAqPiAqKW9wcG9ydHVuaXN0aWNUb3Bp
Y3Mgbm9uV2FraW5nVG9waWNzOihOU0FycmF5PE5TU3RyaW5nICo+ICopbm9uV2FraW5nVG9waWNz
OworCitAZW5kCisKK0Bwcm90b2NvbCBBUFNDb25uZWN0aW9uRGVsZWdhdGU8TlNPYmplY3Q+Cist
ICh2b2lkKWNvbm5lY3Rpb246KEFQU0Nvbm5lY3Rpb24gKiljb25uZWN0aW9uIGRpZFJlY2VpdmVQ
dWJsaWNUb2tlbjooTlNEYXRhICopcHVibGljVG9rZW47CitAb3B0aW9uYWwKKy0gKHZvaWQpY29u
bmVjdGlvbjooQVBTQ29ubmVjdGlvbiAqKWNvbm5lY3Rpb24gZGlkUmVjZWl2ZUluY29taW5nTWVz
c2FnZTooQVBTSW5jb21pbmdNZXNzYWdlICopbWVzc2FnZTsKK0BlbmQKKworTlNfQVNTVU1FX05P
Tk5VTExfRU5ECisKKyNlbmRpZiAvLyAhVVNFKEFQUExFX0lOVEVSTkFMX1NESykKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3Vy
Y2UvV2ViS2l0L1dlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IDc3OTExOGJk
MmYzZTAzMmNhODdjMDc0ZDJlNmIwZGJlNTQ5YjY3ZWIuLjhlZTY1NDk0N2M0MDk3NDAyMTQxMDJk
YzMzMzNkYjVkYTY2YjFjMGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViS2l0Lnhjb2Rl
cHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291cmNlL1dlYktpdC9XZWJLaXQueGNvZGVwcm9q
L3Byb2plY3QucGJ4cHJvagpAQCAtMTk5NSw2ICsxOTk1LDEzIEBACiAJCUU1Q0JBNzY3MjdBMzE4
RTEwMERGNzg1OCAvKiBVbmlmaWVkU291cmNlMTE5LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEU1Q0JBNzYwMjdBMzE4NzkwMERGNzg1OCAvKiBVbmlm
aWVkU291cmNlMTE5LmNwcCAqLzsgfTsKIAkJRTVDQkE3NjgyN0EzMThFMTAwREY3ODU4IC8qIFVu
aWZpZWRTb3VyY2UxMTcuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gRTVDQkE3NjIyN0EzMTg3OTAwREY3ODU4IC8qIFVuaWZpZWRTb3VyY2UxMTcuY3Bw
ICovOyB9OwogCQlFNURFRkE2ODI2RjhGNDI2MDBBQjY4REIgLyogUGhvdG9zVUlTUEkuaCBpbiBI
ZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEU1REVGQTY3MjZGOEY0
MjYwMEFCNjhEQiAvKiBQaG90b3NVSVNQSS5oICovOyB9OworCQlFQkE4RDNBQjI3QTVFMzEzMDBD
Qjc5MDAgLyogQXBwbGVQdXNoU2VydmljZVNQSS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gRUJBOEQzQUEyN0E1RTMxMzAwQ0I3OTAwIC8qIEFwcGxlUHVz
aFNlcnZpY2VTUEkuaCAqLzsgfTsKKwkJRUJBOEQzQjIyN0E1RTMzRjAwQ0I3OTAwIC8qIEFwcGxl
UHVzaFNlcnZpY2VDb25uZWN0aW9uLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gRUJBOEQzQUMyN0E1RTMzRTAwQ0I3OTAwIC8qIEFwcGxlUHVzaFNlcnZp
Y2VDb25uZWN0aW9uLm1tICovOyB9OworCQlFQkE4RDNCMzI3QTVFMzNGMDBDQjc5MDAgLyogRmFr
ZVB1c2hTZXJ2aWNlQ29ubmVjdGlvbi5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gRUJBOEQzQUQyN0E1RTMzRTAwQ0I3OTAwIC8qIEZha2VQdXNoU2Vydmlj
ZUNvbm5lY3Rpb24uaCAqLzsgfTsKKwkJRUJBOEQzQjQyN0E1RTMzRjAwQ0I3OTAwIC8qIEFwcGxl
UHVzaFNlcnZpY2VDb25uZWN0aW9uLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSBFQkE4RDNBRTI3QTVFMzNGMDBDQjc5MDAgLyogQXBwbGVQdXNoU2Vydmlj
ZUNvbm5lY3Rpb24uaCAqLzsgfTsKKwkJRUJBOEQzQjUyN0E1RTMzRjAwQ0I3OTAwIC8qIFB1c2hT
ZXJ2aWNlQ29ubmVjdGlvbi5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gRUJBOEQzQUYyN0E1RTMzRjAwQ0I3OTAwIC8qIFB1c2hTZXJ2aWNlQ29ubmVjdGlv
bi5oICovOyB9OworCQlFQkE4RDNCNjI3QTVFMzNGMDBDQjc5MDAgLyogRmFrZVB1c2hTZXJ2aWNl
Q29ubmVjdGlvbi5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IEVCQThEM0IwMjdBNUUzM0YwMENCNzkwMCAvKiBGYWtlUHVzaFNlcnZpY2VDb25uZWN0aW9u
Lm1tICovOyB9OworCQlFQkE4RDNCNzI3QTVFMzNGMDBDQjc5MDAgLyogUHVzaFNlcnZpY2VDb25u
ZWN0aW9uLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
RUJBOEQzQjEyN0E1RTMzRjAwQ0I3OTAwIC8qIFB1c2hTZXJ2aWNlQ29ubmVjdGlvbi5tbSAqLzsg
fTsKIAkJRUQ4MkE3RjIxMjhDNkZBRjAwNDQ3N0IzIC8qIFdLQnVuZGxlUGFnZU92ZXJsYXkuaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDFBMjJGMEZGMTI4
OUZDRDkwMDg1RTc0RiAvKiBXS0J1bmRsZVBhZ2VPdmVybGF5LmggKi87IHNldHRpbmdzID0ge0FU
VFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJRjQwOUJBMTgxRTZFNjRCQzAwOURBMjhF
IC8qIFdLRHJhZ0Rlc3RpbmF0aW9uQWN0aW9uLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSBGNDA5QkExNzFFNkU2NEIzMDA5REEyOEUgLyogV0tEcmFnRGVz
dGluYXRpb25BY3Rpb24uaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCAp
OyB9OyB9OwogCQlGNDI5OTUwNzI3MEUyMzREMDAzMjI5OEIgLyogU3RyZWFtTWVzc2FnZVJlY2Vp
dmVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGNDI5
OTUwNjI3MEUyMzRDMDAzMjI5OEIgLyogU3RyZWFtTWVzc2FnZVJlY2VpdmVyLmggKi87IH07CkBA
IC02NDM5LDYgKzY0NDYsMTMgQEAKIAkJRTVERUZBNjcyNkY4RjQyNjAwQUI2OERCIC8qIFBob3Rv
c1VJU1BJLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFBob3Rvc1VJU1BJLmg7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CiAJCUVCMEQzMTJEMjc1QUUxMzMwMDg2M0Q4RiAvKiBjb20uYXBwbGUud2Via2l0
LndlYnB1c2hkLm1hYy5wbGlzdCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQucGxpc3QueG1sOyBwYXRoID0gY29t
LmFwcGxlLndlYmtpdC53ZWJwdXNoZC5tYWMucGxpc3Q7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CiAJCUVCMEQzMTJFMjc1QUUxMzMwMDg2M0Q4RiAvKiBjb20uYXBwbGUud2Via2l0LndlYnB1
c2hkLmlvcy5wbGlzdCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQucGxpc3QueG1sOyBwYXRoID0gY29tLmFwcGxl
LndlYmtpdC53ZWJwdXNoZC5pb3MucGxpc3Q7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJ
CUVCQThEM0FBMjdBNUUzMTMwMENCNzkwMCAvKiBBcHBsZVB1c2hTZXJ2aWNlU1BJLmggKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEFwcGxlUHVzaFNlcnZpY2VTUEkuaDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRUJBOEQzQUMyN0E1RTMzRTAwQ0I3OTAwIC8qIEFwcGxl
UHVzaFNlcnZpY2VDb25uZWN0aW9uLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3Bw
OyBwYXRoID0gQXBwbGVQdXNoU2VydmljZUNvbm5lY3Rpb24ubW07IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CisJCUVCQThEM0FEMjdBNUUzM0UwMENCNzkwMCAvKiBGYWtlUHVzaFNlcnZpY2VD
b25uZWN0aW9uLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEZha2VQdXNoU2Vy
dmljZUNvbm5lY3Rpb24uaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRUJBOEQzQUUy
N0E1RTMzRjAwQ0I3OTAwIC8qIEFwcGxlUHVzaFNlcnZpY2VDb25uZWN0aW9uLmggKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEFwcGxlUHVzaFNlcnZpY2VDb25uZWN0aW9uLmg7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUVCQThEM0FGMjdBNUUzM0YwMENCNzkwMCAvKiBQ
dXNoU2VydmljZUNvbm5lY3Rpb24uaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0g
UHVzaFNlcnZpY2VDb25uZWN0aW9uLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUVC
QThEM0IwMjdBNUUzM0YwMENCNzkwMCAvKiBGYWtlUHVzaFNlcnZpY2VDb25uZWN0aW9uLm1tICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gRmFrZVB1c2hTZXJ2aWNlQ29u
bmVjdGlvbi5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRUJBOEQzQjEyN0E1RTMz
RjAwQ0I3OTAwIC8qIFB1c2hTZXJ2aWNlQ29ubmVjdGlvbi5tbSAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuY3BwLm9iamNwcDsgcGF0aCA9IFB1c2hTZXJ2aWNlQ29ubmVjdGlvbi5tbTsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRUNBNjgwRDMxRTY5MDRCNTAwNzMxRDIwIC8qIEV4dHJhUHJp
dmF0ZVN5bWJvbHNGb3JUQVBJLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEV4
dHJhUHJpdmF0ZVN5bWJvbHNGb3JUQVBJLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJ
CUVDQkZDMURCMUU2QTRENjYwMDAzMDBDNyAvKiBFeHRyYVB1YmxpY1N5bWJvbHNGb3JUQVBJLmgg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmMuaDsgcGF0aCA9IEV4dHJhUHVibGljU3ltYm9sc0ZvclRBUEkuaDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKIAkJRjAzNjk3ODcxNUY0QkYwNTAwQzNBODBFIC8qIFdlYkNvbG9yUGlj
a2VyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFdlYkNvbG9yUGlj
a2VyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTg2MzQsNiArODY0OCw3IEBA
CiAJCQkJNTcyRUJCREMyNTM5MjE4MTAwMDU1MkIzIC8qIEFwcEF0dGVzdFNQSS5oICovLAogCQkJ
CTk1NjUwODM3MjZEODdBMkIwMEUxNUNCNyAvKiBBcHBsZU1lZGlhU2VydmljZXNTUEkuaCAqLywK
IAkJCQk5NTY1MDgzODI2RDg3QTJCMDBFMTVDQjcgLyogQXBwbGVNZWRpYVNlcnZpY2VzVUlTUEku
aCAqLywKKwkJCQlFQkE4RDNBQTI3QTVFMzEzMDBDQjc5MDAgLyogQXBwbGVQdXNoU2VydmljZVNQ
SS5oICovLAogCQkJCTU3RkFCQjBFMjU4MTdDRjAwMDU5REM5NSAvKiBBdXRoZW50aWNhdGlvblNl
cnZpY2VzQ29yZVNQSS5oICovLAogCQkJCTFBNTcwNTEwMUJFNDEwRTUwMDg3NEFGMSAvKiBCbG9j
a1NQSS5oICovLAogCQkJCUU1MDYyMDkxMjU0MjEwMjAwMEM0MzA5MSAvKiBDb250YWN0c1VJU1BJ
LmggKi8sCkBAIC0xMDA0NCw4ICsxMDA1OSwxMiBAQAogCQkJCTUxN0I1RjYzMjc1QThENUMwMDJE
QzIyRCAvKiB3ZWJwdXNodG9vbCAqLywKIAkJCQk1MTYwRTk1NDI3NEI4ODcxMDA1NjczODggLyog
QXBwQnVuZGxlUmVxdWVzdC5oICovLAogCQkJCTUxNjBFOTUzMjc0Qjg4NzEwMDU2NzM4OCAvKiBB
cHBCdW5kbGVSZXF1ZXN0Lm1tICovLAorCQkJCUVCQThEM0FFMjdBNUUzM0YwMENCNzkwMCAvKiBB
cHBsZVB1c2hTZXJ2aWNlQ29ubmVjdGlvbi5oICovLAorCQkJCUVCQThEM0FDMjdBNUUzM0UwMENC
NzkwMCAvKiBBcHBsZVB1c2hTZXJ2aWNlQ29ubmVjdGlvbi5tbSAqLywKIAkJCQlFQjBEMzEyRTI3
NUFFMTMzMDA4NjNEOEYgLyogY29tLmFwcGxlLndlYmtpdC53ZWJwdXNoZC5pb3MucGxpc3QgKi8s
CiAJCQkJRUIwRDMxMkQyNzVBRTEzMzAwODYzRDhGIC8qIGNvbS5hcHBsZS53ZWJraXQud2VicHVz
aGQubWFjLnBsaXN0ICovLAorCQkJCUVCQThEM0FEMjdBNUUzM0UwMENCNzkwMCAvKiBGYWtlUHVz
aFNlcnZpY2VDb25uZWN0aW9uLmggKi8sCisJCQkJRUJBOEQzQjAyN0E1RTMzRjAwQ0I3OTAwIC8q
IEZha2VQdXNoU2VydmljZUNvbm5lY3Rpb24ubW0gKi8sCiAJCQkJNTFGN0JCNzUyNzQ0OThCQjAw
QzQ1QTcyIC8qIE1vY2tBcHBCdW5kbGVGb3JUZXN0aW5nLmggKi8sCiAJCQkJNTFGN0JCNzQyNzQ0
OThCQTAwQzQ1QTcyIC8qIE1vY2tBcHBCdW5kbGVGb3JUZXN0aW5nLm1tICovLAogCQkJCTUxNjBF
OTVDMjc0QzJBMDMwMDU2NzM4OCAvKiBNb2NrQXBwQnVuZGxlUmVnaXN0cnkuaCAqLywKQEAgLTEw
MDU0LDYgKzEwMDczLDggQEAKIAkJCQk1MTYwRTk1ODI3NEMwRDg4MDA1NjczODggLyogUHVzaEFw
cEJ1bmRsZS5tbSAqLywKIAkJCQk1MUY3QkI3OTI3NDRDNTA3MDBDNDVBNzIgLyogUHVzaENsaWVu
dENvbm5lY3Rpb24uaCAqLywKIAkJCQk1MUY3QkI3QTI3NDRDNTA3MDBDNDVBNzIgLyogUHVzaENs
aWVudENvbm5lY3Rpb24ubW0gKi8sCisJCQkJRUJBOEQzQUYyN0E1RTMzRjAwQ0I3OTAwIC8qIFB1
c2hTZXJ2aWNlQ29ubmVjdGlvbi5oICovLAorCQkJCUVCQThEM0IxMjdBNUUzM0YwMENCNzkwMCAv
KiBQdXNoU2VydmljZUNvbm5lY3Rpb24ubW0gKi8sCiAJCQkJNTE3QjVGNzcyNzVFOTc5NTAwMkRD
MjJEIC8qIHdlYnB1c2hkLmNwcCAqLywKIAkJCQk1MTJDRDY5RDI3MjMzOTNBMDBGN0Y4RUMgLyog
V2ViUHVzaERhZW1vbi5oICovLAogCQkJCTUxMkNENjlFMjcyMzM5M0EwMEY3RjhFQyAvKiBXZWJQ
dXNoRGFlbW9uLm1tICovLApAQCAtMTI4NjUsNiArMTI4ODYsOCBAQAogCQkJCUY0OEQyQTg1MjE1
ODNBN0UwMEM2NzUyQiAvKiBBcHBLaXRTUEkuaCBpbiBIZWFkZXJzICovLAogCQkJCTk1NjUwODM5
MjZEODdBMkIwMEUxNUNCNyAvKiBBcHBsZU1lZGlhU2VydmljZXNTUEkuaCBpbiBIZWFkZXJzICov
LAogCQkJCTk1NjUwODNBMjZEODdBMkIwMEUxNUNCNyAvKiBBcHBsZU1lZGlhU2VydmljZXNVSVNQ
SS5oIGluIEhlYWRlcnMgKi8sCisJCQkJRUJBOEQzQjQyN0E1RTMzRjAwQ0I3OTAwIC8qIEFwcGxl
UHVzaFNlcnZpY2VDb25uZWN0aW9uLmggaW4gSGVhZGVycyAqLywKKwkJCQlFQkE4RDNBQjI3QTVF
MzEzMDBDQjc5MDAgLyogQXBwbGVQdXNoU2VydmljZVNQSS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJ
RjRFQzk0RTMyMzU2Q0M1NzAwMEJCNjE0IC8qIEFwcGxpY2F0aW9uU2VydmljZXNTUEkuaCBpbiBI
ZWFkZXJzICovLAogCQkJCTFBRDRDMTkzMUIzOUYzMzIwMEFCQzI4RSAvKiBBcHBsaWNhdGlvblN0
YXRlVHJhY2tlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNDkzMTAyQkQyNjgzRjNEMDAwMkJCODg1
IC8qIEFwcFByaXZhY3lSZXBvcnQuaCBpbiBIZWFkZXJzICovLApAQCAtMTI5NTgsNiArMTI5ODEs
NyBAQAogCQkJCTUxQjE1QTg1MTM4NDNBMzkwMDMyMUFEOCAvKiBFbnZpcm9ubWVudFV0aWxpdGll
cy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMUFBNTc1RkIxNDk2QjUyNjAwQTRFRTA2IC8qIEV2ZW50
RGlzcGF0Y2hlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNTcyRUJCRDcyNTM3RUJBRTAwMDU1MkIz
IC8qIEV4dHJhUHJpdmF0ZVN5bWJvbHNGb3JUQVBJLmggaW4gSGVhZGVycyAqLywKKwkJCQlFQkE4
RDNCMzI3QTVFMzNGMDBDQjc5MDAgLyogRmFrZVB1c2hTZXJ2aWNlQ29ubmVjdGlvbi5oIGluIEhl
YWRlcnMgKi8sCiAJCQkJNTdCODI2NDgyMzA1MEM1MTAwQjcyRUIwIC8qIEZpZG9TZXJ2aWNlLmgg
aW4gSGVhZGVycyAqLywKIAkJCQk5MzFBMUJFMjI2Rjg3MDA5MDA4MUE3RTUgLyogRmlsZVN5c3Rl
bVN0b3JhZ2VFcnJvci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJOTMxMkJBRDYyNkYzM0MyOTAwRkRE
RjVGIC8qIEZpbGVTeXN0ZW1TdG9yYWdlSGFuZGxlLmggaW4gSGVhZGVycyAqLywKQEAgLTEzMjAy
LDYgKzEzMjI2LDcgQEAKIAkJCQk1MTdCNUY4MTI3NUU5N0I2MDAyREMyMkQgLyogUHVzaEFwcEJ1
bmRsZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNTE3QjVGN0QyNzVFOTdCNjAwMkRDMjJEIC8qIFB1
c2hDbGllbnRDb25uZWN0aW9uLmggaW4gSGVhZGVycyAqLywKIAkJCQk1MTdCNUY5NTI3NUVCQTYz
MDAyREMyMkQgLyogUHVzaE1lc3NhZ2VGb3JUZXN0aW5nLmggaW4gSGVhZGVycyAqLywKKwkJCQlF
QkE4RDNCNTI3QTVFMzNGMDBDQjc5MDAgLyogUHVzaFNlcnZpY2VDb25uZWN0aW9uLmggaW4gSGVh
ZGVycyAqLywKIAkJCQlBMUU2ODg3MDFGNkUyQkFCMDA3MDA2QTYgLyogUXVhcmFudGluZVNQSS5o
IGluIEhlYWRlcnMgKi8sCiAJCQkJMUEwQzIyN0UyNDUxMTMwQTAwRUQ2MTREIC8qIFF1aWNrTG9v
a1RodW1ibmFpbGluZ1NvZnRMaW5rLmggaW4gSGVhZGVycyAqLywKIAkJCQkxQUVFNTcyNTI0MDlG
MTQyMDAyMDA1RDYgLyogUXVpY2tMb29rVGh1bWJuYWlsTG9hZGVyLmggaW4gSGVhZGVycyAqLywK
QEAgLTE1Mzk1LDYgKzE1NDIwLDcgQEAKIAkJCQk5OUU3MTg5QTIxRjc5RDlFMDA1NUU5NzUgLyog
X1dLVG91Y2hFdmVudEdlbmVyYXRvci5tbSBpbiBTb3VyY2VzICovLAogCQkJCTU3MkVCQkRBMjUz
OEY2QjQwMDA1NTJCMyAvKiBBcHBBdHRlc3RJbnRlcm5hbFNvZnRMaW5rLm1tIGluIFNvdXJjZXMg
Ki8sCiAJCQkJNTE3QjVGN0UyNzVFOTdCNjAwMkRDMjJEIC8qIEFwcEJ1bmRsZVJlcXVlc3QubW0g
aW4gU291cmNlcyAqLywKKwkJCQlFQkE4RDNCMjI3QTVFMzNGMDBDQjc5MDAgLyogQXBwbGVQdXNo
U2VydmljZUNvbm5lY3Rpb24ubW0gaW4gU291cmNlcyAqLywKIAkJCQkyREVCMUQyRTIxMjc0NzM2
MDA5MzM5MDYgLyogQXJndW1lbnRDb2RlcnNDRi5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlDRDQ1
NzBENDI0NDExRDBGMDBBM0RDRUIgLyogQXVkaW9TZXNzaW9uUm91dGluZ0FyYml0cmF0b3IuY3Bw
IGluIFNvdXJjZXMgKi8sCiAJCQkJQ0Q0NTcwRDMyNDQxMTNCNTAwQTNEQ0VCIC8qIEF1ZGlvU2Vz
c2lvblJvdXRpbmdBcmJpdHJhdG9yUHJveHlNZXNzYWdlUmVjZWl2ZXIuY3BwIGluIFNvdXJjZXMg
Ki8sCkBAIC0xNTQxMiw2ICsxNTQzOCw3IEBACiAJCQkJMUE2NDIzMDgxMkREMDlFQjAwQ0FBRTJD
IC8qIERyYXdpbmdBcmVhUHJveHlNZXNzYWdlUmVjZWl2ZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJ
CQkJQ0RDREM5OUUyNDhGRThEQTAwQTY5NTIyIC8qIEVuZG93bWVudFN0YXRlVHJhY2tlci5tbSBp
biBTb3VyY2VzICovLAogCQkJCTFBQTU3NjAyMTQ5NkI5NzkwMEE0RUUwNiAvKiBFdmVudERpc3Bh
dGNoZXJNZXNzYWdlUmVjZWl2ZXIuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJRUJBOEQzQjYyN0E1
RTMzRjAwQ0I3OTAwIC8qIEZha2VQdXNoU2VydmljZUNvbm5lY3Rpb24ubW0gaW4gU291cmNlcyAq
LywKIAkJCQlDREE5M0RCMTIyRjhCQ0Y0MDA0OTBBNjkgLyogRnVsbHNjcmVlblRvdWNoU2VjaGV1
cmlzdGljUGFyYW1ldGVycy5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlDMUExNTJENzI0RTVBMjlB
MDA5NzhDOEIgLyogSGFuZGxlWFBDRW5kcG9pbnRNZXNzYWdlcy5tbSBpbiBTb3VyY2VzICovLAog
CQkJCTI3NDlGNjQ0MjE0NjU2MUIwMDgzODBCRiAvKiBJbmplY3RlZEJ1bmRsZU5vZGVIYW5kbGUu
Y3BwIGluIFNvdXJjZXMgKi8sCkBAIC0xNTQ1Myw2ICsxNTQ4MCw3IEBACiAJCQkJMkQ1NEMzMUIy
MTJGNERBNjAwNDlDMTc0IC8qIFByb2Nlc3NMYXVuY2hlci5jcHAgaW4gU291cmNlcyAqLywKIAkJ
CQk1MTdCNUY4MjI3NUU5N0I2MDAyREMyMkQgLyogUHVzaEFwcEJ1bmRsZS5tbSBpbiBTb3VyY2Vz
ICovLAogCQkJCTUxN0I1RjdCMjc1RTk3QTkwMDJEQzIyRCAvKiBQdXNoQ2xpZW50Q29ubmVjdGlv
bi5tbSBpbiBTb3VyY2VzICovLAorCQkJCUVCQThEM0I3MjdBNUUzM0YwMENCNzkwMCAvKiBQdXNo
U2VydmljZUNvbm5lY3Rpb24ubW0gaW4gU291cmNlcyAqLywKIAkJCQkxQTBDMjI3RjI0NTExMzBB
MDBFRDYxNEQgLyogUXVpY2tMb29rVGh1bWJuYWlsaW5nU29mdExpbmsubW0gaW4gU291cmNlcyAq
LywKIAkJCQkxQTBDMjI1RTI0MzU3NUNEMDBFRDYxNEQgLyogUXVpY2tMb29rVGh1bWJuYWlsTG9h
ZGVyLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJOUIxMjI5Q0UyM0ZGMjVGMjAwOENBNzUxIC8qIFJl
bW90ZUF1ZGlvRGVzdGluYXRpb25NYW5hZ2VyLmNwcCBpbiBTb3VyY2VzICovLApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC93ZWJwdXNoZC9BcHBsZVB1c2hTZXJ2aWNlQ29ubmVjdGlvbi5oIGIv
U291cmNlL1dlYktpdC93ZWJwdXNoZC9BcHBsZVB1c2hTZXJ2aWNlQ29ubmVjdGlvbi5oCm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAuLjdiMDRhNDU2YzNjODliNWQxMjUyYTBhZjgwZWQ5NzY2MDk1MTUxMTcKLS0tIC9kZXYv
bnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L3dlYnB1c2hkL0FwcGxlUHVzaFNlcnZpY2VDb25uZWN0
aW9uLmgKQEAgLTAsMCArMSw2OSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMiBBcHBsZSBJ
bmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBp
biBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRp
b24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMK
KyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCBy
ZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRp
b25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAq
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFs
cyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJ
UyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJwor
ICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJ
TElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJ
TUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAq
IEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUws
IEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNF
UlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElO
VEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZ
LCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5D
TFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9V
VCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhF
IFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisjaWYg
SEFWRShBUFBMRV9QVVNIX1NFUlZJQ0VfVVJMX1RPS0VOX1NVUFBPUlQpCisKKyNpbmNsdWRlICJB
cHBsZVB1c2hTZXJ2aWNlU1BJLmgiCisjaW5jbHVkZSAiUHVzaFNlcnZpY2VDb25uZWN0aW9uLmgi
CisjaW5jbHVkZSA8d3RmL0hhc2hNYXAuaD4KKyNpbmNsdWRlIDx3dGYvUmV0YWluUHRyLmg+CisK
K25hbWVzcGFjZSBXZWJQdXNoRCB7CisKK2NsYXNzIEFwcGxlUHVzaFNlcnZpY2VDb25uZWN0aW9u
IDogcHVibGljIFB1c2hTZXJ2aWNlQ29ubmVjdGlvbiB7CisgICAgV1RGX01BS0VfRkFTVF9BTExP
Q0FURUQ7CitwdWJsaWM6CisgICAgQXBwbGVQdXNoU2VydmljZUNvbm5lY3Rpb24oY29uc3QgU3Ry
aW5nJiBpbmNvbWluZ1B1c2hTZXJ2aWNlTmFtZSk7CisgICAgdmlydHVhbCB+QXBwbGVQdXNoU2Vy
dmljZUNvbm5lY3Rpb24oKTsKKworICAgIHZvaWQgc3Vic2NyaWJlKGNvbnN0IFN0cmluZyYgdG9w
aWMsIGNvbnN0IFZlY3Rvcjx1aW50OF90PiYgdmFwaWRQdWJsaWNLZXksIFN1YnNjcmliZUhhbmRs
ZXImJikgZmluYWw7CisgICAgdm9pZCB1bnN1YnNjcmliZShjb25zdCBTdHJpbmcmIHRvcGljLCBj
b25zdCBWZWN0b3I8dWludDhfdD4mIHZhcGlkUHVibGljS2V5LCBVbnN1YnNjcmliZUhhbmRsZXIm
JikgZmluYWw7CisKKyAgICBWZWN0b3I8U3RyaW5nPiBlbmFibGVkVG9waWNzKCkgZmluYWw7Cisg
ICAgVmVjdG9yPFN0cmluZz4gaWdub3JlZFRvcGljcygpIGZpbmFsOworICAgIFZlY3RvcjxTdHJp
bmc+IG9wcG9ydHVuaXN0aWNUb3BpY3MoKSBmaW5hbDsKKyAgICBWZWN0b3I8U3RyaW5nPiBub25X
YWtpbmdUb3BpY3MoKSBmaW5hbDsKKworICAgIHZvaWQgc2V0RW5hYmxlZFRvcGljcyhjb25zdCBW
ZWN0b3I8U3RyaW5nPiYpIGZpbmFsOworICAgIHZvaWQgc2V0SWdub3JlZFRvcGljcyhjb25zdCBW
ZWN0b3I8U3RyaW5nPiYpIGZpbmFsOworICAgIHZvaWQgc2V0T3Bwb3J0dW5pc3RpY1RvcGljcyhj
b25zdCBWZWN0b3I8U3RyaW5nPiYpIGZpbmFsOworICAgIHZvaWQgc2V0Tm9uV2FraW5nVG9waWNz
KGNvbnN0IFZlY3RvcjxTdHJpbmc+JikgZmluYWw7CisKKyAgICB2b2lkIHNldFRvcGljTGlzdHMo
VG9waWNMaXN0cyYmKSBmaW5hbDsKKworcHJpdmF0ZToKKyAgICBSZXRhaW5QdHI8QVBTQ29ubmVj
dGlvbj4gbV9jb25uZWN0aW9uOworICAgIFJldGFpblB0cjxpZDxBUFNDb25uZWN0aW9uRGVsZWdh
dGU+PiBtX2RlbGVnYXRlOworICAgIHVuc2lnbmVkIG1faGFuZGxlcklkZW50aWZpZXIgeyAwIH07
CisgICAgSGFzaE1hcDx1bnNpZ25lZCwgU3Vic2NyaWJlSGFuZGxlcj4gbV9zdWJzY3JpYmVIYW5k
bGVyczsKKyAgICBIYXNoTWFwPHVuc2lnbmVkLCBVbnN1YnNjcmliZUhhbmRsZXI+IG1fdW5zdWJz
Y3JpYmVIYW5kbGVyczsKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYlB1c2hECisKKyNlbmRpZiAv
LyBIQVZFKEFQUExFX1BVU0hfU0VSVklDRV9VUkxfVE9LRU5fU1VQUE9SVCkKKwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC93ZWJwdXNoZC9BcHBsZVB1c2hTZXJ2aWNlQ29ubmVjdGlvbi5tbSBi
L1NvdXJjZS9XZWJLaXQvd2VicHVzaGQvQXBwbGVQdXNoU2VydmljZUNvbm5lY3Rpb24ubW0KbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uZmUyMDMxZTQ4NmM2YWE4MmU0NjkwNzRkZDVhMzY2MTRlMWE2YzRlNgotLS0gL2Rl
di9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvd2VicHVzaGQvQXBwbGVQdXNoU2VydmljZUNvbm5l
Y3Rpb24ubW0KQEAgLTAsMCArMSwxNTIgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjIgQXBw
bGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1
c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZp
Y2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRp
b25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11
c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJp
YnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0
CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRl
cmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdB
UkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElT
JycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFO
VEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElT
Q0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JT
CisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVD
SUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBP
UiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisg
KiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJ
TElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQg
KElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdB
WSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAq
IFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW1wb3J0ICJjb25maWcu
aCIKKyNpbXBvcnQgIkFwcGxlUHVzaFNlcnZpY2VDb25uZWN0aW9uLmgiCisKKyNpZiBIQVZFKEFQ
UExFX1BVU0hfU0VSVklDRV9VUkxfVE9LRU5fU1VQUE9SVCkKKworI2ltcG9ydCA8d3RmL2NvY29h
L1ZlY3RvckNvY29hLmg+CisKK0BpbnRlcmZhY2UgX1dLQVBTQ29ubmVjdGlvbkRlbGVnYXRlIDog
TlNPYmplY3Q8QVBTQ29ubmVjdGlvbkRlbGVnYXRlPiB7CisgICAgV2ViUHVzaEQ6OkFwcGxlUHVz
aFNlcnZpY2VDb25uZWN0aW9uICpfY29ubmVjdGlvbjsKK30KK0BlbmQKKworQGltcGxlbWVudGF0
aW9uIF9XS0FQU0Nvbm5lY3Rpb25EZWxlZ2F0ZQorCistIChpbnN0YW5jZXR5cGUpaW5pdFdpdGhD
b25uZWN0aW9uOihXZWJQdXNoRDo6QXBwbGVQdXNoU2VydmljZUNvbm5lY3Rpb24gKiljb25uZWN0
aW9uCit7CisgICAgaWYgKChzZWxmID0gW3N1cGVyIGluaXRdKSkKKyAgICAgICAgX2Nvbm5lY3Rp
b24gPSBjb25uZWN0aW9uOworICAgIHJldHVybiBzZWxmOworfQorCistICh2b2lkKWNvbm5lY3Rp
b246KEFQU0Nvbm5lY3Rpb24gKiljb25uZWN0aW9uIGRpZFJlY2VpdmVQdWJsaWNUb2tlbjooTlNE
YXRhICopcHVibGljVG9rZW4KK3sKKyAgICBVTlVTRURfUEFSQU0oY29ubmVjdGlvbik7CisgICAg
VU5VU0VEX1BBUkFNKHB1YmxpY1Rva2VuKTsKK30KKworLSAodm9pZCljb25uZWN0aW9uOihBUFND
b25uZWN0aW9uICopY29ubmVjdGlvbiBkaWRSZWNlaXZlSW5jb21pbmdNZXNzYWdlOihBUFNJbmNv
bWluZ01lc3NhZ2UgKiltZXNzYWdlCit7CisgICAgVU5VU0VEX1BBUkFNKGNvbm5lY3Rpb24pOwor
ICAgIF9jb25uZWN0aW9uLT5kaWRSZWNlaXZlUHVzaE1lc3NhZ2UobWVzc2FnZS50b3BpYywgbWVz
c2FnZS51c2VySW5mbyk7Cit9CisKK0BlbmQKKworbmFtZXNwYWNlIFdlYlB1c2hEIHsKKworQXBw
bGVQdXNoU2VydmljZUNvbm5lY3Rpb246OkFwcGxlUHVzaFNlcnZpY2VDb25uZWN0aW9uKGNvbnN0
IFN0cmluZyYgaW5jb21pbmdQdXNoU2VydmljZU5hbWUpCit7CisgICAgbV9jb25uZWN0aW9uID0g
YWRvcHROUyhbW0FQU0Nvbm5lY3Rpb24gYWxsb2NdIGluaXRXaXRoRW52aXJvbm1lbnROYW1lOkFQ
U0Vudmlyb25tZW50UHJvZHVjdGlvbiBuYW1lZERlbGVnYXRlUG9ydDppbmNvbWluZ1B1c2hTZXJ2
aWNlTmFtZSBxdWV1ZTpkaXNwYXRjaF9nZXRfbWFpbl9xdWV1ZSgpXSk7CisgICAgbV9kZWxlZ2F0
ZSA9IGFkb3B0TlMoW1tfV0tBUFNDb25uZWN0aW9uRGVsZWdhdGUgYWxsb2NdIGluaXRXaXRoQ29u
bmVjdGlvbjp0aGlzXSk7CisgICAgW21fY29ubmVjdGlvbiBzZXREZWxlZ2F0ZTptX2RlbGVnYXRl
LmdldCgpXTsKK30KKworQXBwbGVQdXNoU2VydmljZUNvbm5lY3Rpb246On5BcHBsZVB1c2hTZXJ2
aWNlQ29ubmVjdGlvbigpID0gZGVmYXVsdDsKKworc3RhdGljIFJldGFpblB0cjxBUFNVUkxUb2tl
bkluZm8+IG1ha2VUb2tlbkluZm8oY29uc3QgU3RyaW5nJiB0b3BpYywgY29uc3QgVmVjdG9yPHVp
bnQ4X3Q+JiB2YXBpZFB1YmxpY0tleSkKK3sKKyAgICBhdXRvIHNlcnZlclB1YmxpY0tleSA9IGFk
b3B0TlMoW1tOU0RhdGEgYWxsb2NdIGluaXRXaXRoQnl0ZXM6dmFwaWRQdWJsaWNLZXkuZGF0YSgp
IGxlbmd0aDp2YXBpZFB1YmxpY0tleS5zaXplKCldKTsKKyAgICByZXR1cm4gYWRvcHROUyhbW0FQ
U1VSTFRva2VuSW5mbyBhbGxvY10gaW5pdFdpdGhUb3BpYzp0b3BpYyB2YXBpZFB1YmxpY0tleTpz
ZXJ2ZXJQdWJsaWNLZXkuZ2V0KCldKTsKK30KKwordm9pZCBBcHBsZVB1c2hTZXJ2aWNlQ29ubmVj
dGlvbjo6c3Vic2NyaWJlKGNvbnN0IFN0cmluZyYgdG9waWMsIGNvbnN0IFZlY3Rvcjx1aW50OF90
PiYgdmFwaWRQdWJsaWNLZXksIFN1YnNjcmliZUhhbmRsZXImJiBzdWJzY3JpYmVIYW5kbGVyKQor
eworICAgIC8vIFN0YXNoIHRoZSBjb21wbGV0aW9uIGhhbmRsZXIgYXdheSBhbmQgbG9vayBpdCB1
cCBieSBpZCBzbyB0aGF0IHdlIGNhbiBlbnN1cmUgaXQgZ2V0cyBkZXN0cnVjdGVkIG9uIHRoZSBt
YWluIHRocmVhZC4gSWYgd2UgbW92ZSB0aGUgaGFuZGxlciBhbmQgY2FwdHVyZSBpdCBpbiB0aGUg
T2JqLUMgYmxvY2ssIGl0IG1pZ2h0IGdldCBkZXN0cnVjdGVkIG9uIGEgc2Vjb25kYXJ5IHRocmVh
ZCBzaW5jZSB0aGlzIGNvbXBsZXRpb24gYmxvY2sgbW92ZXMgYmV0d2VlbiBkaWZmZXJlbnQgZGlz
cGF0Y2ggcXVldWVzIGluIHRoZSBBUFMgaW1wbGVtZW50YXRpb24uCisgICAgYXV0byBpZGVudGlm
aWVyID0gKyttX2hhbmRsZXJJZGVudGlmaWVyOworICAgIG1fc3Vic2NyaWJlSGFuZGxlcnMuYWRk
KGlkZW50aWZpZXIsIFdURk1vdmUoc3Vic2NyaWJlSGFuZGxlcikpOworCisgICAgW21fY29ubmVj
dGlvbiByZXF1ZXN0VVJMVG9rZW5Gb3JJbmZvOm1ha2VUb2tlbkluZm8odG9waWMsIHZhcGlkUHVi
bGljS2V5KS5nZXQoKSBjb21wbGV0aW9uOl4oQVBTVVJMVG9rZW4gKnRva2VuLCBOU0Vycm9yICpl
cnJvcikgeworICAgICAgICBhdXRvIGhhbmRsZXIgPSBtX3N1YnNjcmliZUhhbmRsZXJzLnRha2Uo
aWRlbnRpZmllcik7CisgICAgICAgIGhhbmRsZXIodG9rZW4udG9rZW5VUkwsIGVycm9yKTsKKyAg
ICB9XTsKK30KKwordm9pZCBBcHBsZVB1c2hTZXJ2aWNlQ29ubmVjdGlvbjo6dW5zdWJzY3JpYmUo
Y29uc3QgU3RyaW5nJiB0b3BpYywgY29uc3QgVmVjdG9yPHVpbnQ4X3Q+JiB2YXBpZFB1YmxpY0tl
eSwgVW5zdWJzY3JpYmVIYW5kbGVyJiYgdW5zdWJzY3JpYmVIYW5kbGVyKQoreworICAgIC8vIFNl
ZSBzdWJzY3JpYmUgZm9yIHdoeSB3ZSBzdGFzaCB0aGUgaGFuZGxlciBpbnRvIGEgbWFwLgorICAg
IGF1dG8gaWRlbnRpZmllciA9ICsrbV9oYW5kbGVySWRlbnRpZmllcjsKKyAgICBtX3Vuc3Vic2Ny
aWJlSGFuZGxlcnMuYWRkKGlkZW50aWZpZXIsIFdURk1vdmUodW5zdWJzY3JpYmVIYW5kbGVyKSk7
CisKKyAgICBbbV9jb25uZWN0aW9uIGludmFsaWRhdGVVUkxUb2tlbkZvckluZm86bWFrZVRva2Vu
SW5mbyh0b3BpYywgdmFwaWRQdWJsaWNLZXkpLmdldCgpIGNvbXBsZXRpb246XihCT09MIHN1Y2Nl
c3MsIE5TRXJyb3IgKmVycm9yKSB7CisgICAgICAgIC8vIEZJWE1FOiByZW1vdmUgdGhpcyBvbmNl
IEFQUyBzdG9wcyBjYWxsaW5nIGJhY2sgb24gdGhlIHdyb25nIHF1ZXVlIChyZGFyOi8vODgxMDAy
NzUpLgorICAgICAgICBkaXNwYXRjaF9hc3luYyhkaXNwYXRjaF9nZXRfbWFpbl9xdWV1ZSgpLCBe
eworICAgICAgICAgICAgYXV0byBoYW5kbGVyID0gbV91bnN1YnNjcmliZUhhbmRsZXJzLnRha2Uo
aWRlbnRpZmllcik7CisgICAgICAgICAgICBoYW5kbGVyKHN1Y2Nlc3MsIGVycm9yKTsKKyAgICAg
ICAgfSk7CisgICAgfV07Cit9CisKK1ZlY3RvcjxTdHJpbmc+IEFwcGxlUHVzaFNlcnZpY2VDb25u
ZWN0aW9uOjplbmFibGVkVG9waWNzKCkKK3sKKyAgICByZXR1cm4gbWFrZVZlY3RvcjxTdHJpbmc+
KFttX2Nvbm5lY3Rpb24gZW5hYmxlZFRvcGljc10pOworfQorCitWZWN0b3I8U3RyaW5nPiBBcHBs
ZVB1c2hTZXJ2aWNlQ29ubmVjdGlvbjo6aWdub3JlZFRvcGljcygpCit7CisgICAgcmV0dXJuIG1h
a2VWZWN0b3I8U3RyaW5nPihbbV9jb25uZWN0aW9uIGlnbm9yZWRUb3BpY3NdKTsKK30KKworVmVj
dG9yPFN0cmluZz4gQXBwbGVQdXNoU2VydmljZUNvbm5lY3Rpb246Om9wcG9ydHVuaXN0aWNUb3Bp
Y3MoKQoreworICAgIHJldHVybiBtYWtlVmVjdG9yPFN0cmluZz4oW21fY29ubmVjdGlvbiBvcHBv
cnR1bmlzdGljVG9waWNzXSk7Cit9CisKK1ZlY3RvcjxTdHJpbmc+IEFwcGxlUHVzaFNlcnZpY2VD
b25uZWN0aW9uOjpub25XYWtpbmdUb3BpY3MoKQoreworICAgIHJldHVybiBtYWtlVmVjdG9yPFN0
cmluZz4oW21fY29ubmVjdGlvbiBub25XYWtpbmdUb3BpY3NdKTsKK30KKwordm9pZCBBcHBsZVB1
c2hTZXJ2aWNlQ29ubmVjdGlvbjo6c2V0RW5hYmxlZFRvcGljcyhjb25zdCBWZWN0b3I8U3RyaW5n
PiYgdG9waWNzKQoreworICAgIFttX2Nvbm5lY3Rpb24gX3NldEVuYWJsZWRUb3BpY3M6Y3JlYXRl
TlNBcnJheSh0b3BpY3MpLmdldCgpXTsKK30KKwordm9pZCBBcHBsZVB1c2hTZXJ2aWNlQ29ubmVj
dGlvbjo6c2V0SWdub3JlZFRvcGljcyhjb25zdCBWZWN0b3I8U3RyaW5nPiYgdG9waWNzKQorewor
ICAgIFttX2Nvbm5lY3Rpb24gX3NldElnbm9yZWRUb3BpY3M6Y3JlYXRlTlNBcnJheSh0b3BpY3Mp
LmdldCgpXTsKK30KKwordm9pZCBBcHBsZVB1c2hTZXJ2aWNlQ29ubmVjdGlvbjo6c2V0T3Bwb3J0
dW5pc3RpY1RvcGljcyhjb25zdCBWZWN0b3I8U3RyaW5nPiYgdG9waWNzKQoreworICAgIFttX2Nv
bm5lY3Rpb24gX3NldE9wcG9ydHVuaXN0aWNUb3BpY3M6Y3JlYXRlTlNBcnJheSh0b3BpY3MpLmdl
dCgpXTsKK30KKwordm9pZCBBcHBsZVB1c2hTZXJ2aWNlQ29ubmVjdGlvbjo6c2V0Tm9uV2FraW5n
VG9waWNzKGNvbnN0IFZlY3RvcjxTdHJpbmc+JiB0b3BpY3MpCit7CisgICAgW21fY29ubmVjdGlv
biBfc2V0Tm9uV2FraW5nVG9waWNzOmNyZWF0ZU5TQXJyYXkodG9waWNzKS5nZXQoKV07Cit9CisK
K3ZvaWQgQXBwbGVQdXNoU2VydmljZUNvbm5lY3Rpb246OnNldFRvcGljTGlzdHMoVG9waWNMaXN0
cyYmIHRvcGljTGlzdHMpCit7CisgICAgW21fY29ubmVjdGlvbiBzZXRFbmFibGVkVG9waWNzOmNy
ZWF0ZU5TQXJyYXkodG9waWNMaXN0cy5lbmFibGVkVG9waWNzKS5nZXQoKSBpZ25vcmVkVG9waWNz
OmNyZWF0ZU5TQXJyYXkodG9waWNMaXN0cy5pZ25vcmVkVG9waWNzKS5nZXQoKSBvcHBvcnR1bmlz
dGljVG9waWNzOmNyZWF0ZU5TQXJyYXkodG9waWNMaXN0cy5vcHBvcnR1bmlzdGljVG9waWNzKS5n
ZXQoKSBub25XYWtpbmdUb3BpY3M6Y3JlYXRlTlNBcnJheSh0b3BpY0xpc3RzLm5vbldha2luZ1Rv
cGljcykuZ2V0KCldOworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJQdXNoRAorCisjZW5kaWYgLy8g
SEFWRShBUFBMRV9QVVNIX1NFUlZJQ0VfVVJMX1RPS0VOX1NVUFBPUlQpCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L3dlYnB1c2hkL0Zha2VQdXNoU2VydmljZUNvbm5lY3Rpb24uaCBiL1NvdXJj
ZS9XZWJLaXQvd2VicHVzaGQvRmFrZVB1c2hTZXJ2aWNlQ29ubmVjdGlvbi5oCm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
LjM4ZTg1NWJiNDQxNGRlYjIyMWJlN2FjMGM0N2JhNThiMWRjM2RkMTQKLS0tIC9kZXYvbnVsbAor
KysgYi9Tb3VyY2UvV2ViS2l0L3dlYnB1c2hkL0Zha2VQdXNoU2VydmljZUNvbm5lY3Rpb24uaApA
QCAtMCwwICsxLDU2IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIyIEFwcGxlIEluYy4gQWxs
IHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJj
ZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJl
IHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJl
IG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0
aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4g
YmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
IGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3Zp
ZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJ
REVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQg
QU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFO
RCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElO
IE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElB
QkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBM
QVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7
IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBU
SU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRI
RVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcg
TkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRI
RSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lC
SUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNpbmNsdWRlICJQ
dXNoU2VydmljZUNvbm5lY3Rpb24uaCIKKyNpbmNsdWRlIDx3dGYvSGFzaE1hcC5oPgorI2luY2x1
ZGUgPHd0Zi9SZXRhaW5QdHIuaD4KKworbmFtZXNwYWNlIFdlYlB1c2hEIHsKKworY2xhc3MgRmFr
ZVB1c2hTZXJ2aWNlQ29ubmVjdGlvbiA6IHB1YmxpYyBQdXNoU2VydmljZUNvbm5lY3Rpb24gewor
ICAgIFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOworcHVibGljOgorICAgIEZha2VQdXNoU2Vydmlj
ZUNvbm5lY3Rpb24oKTsKKyAgICB2aXJ0dWFsIH5GYWtlUHVzaFNlcnZpY2VDb25uZWN0aW9uKCk7
CisKKyAgICB2b2lkIHN1YnNjcmliZShjb25zdCBTdHJpbmcmIHRvcGljLCBjb25zdCBWZWN0b3I8
dWludDhfdD4mIHZhcGlkUHVibGljS2V5LCBTdWJzY3JpYmVIYW5kbGVyJiYpIGZpbmFsOworICAg
IHZvaWQgdW5zdWJzY3JpYmUoY29uc3QgU3RyaW5nJiB0b3BpYywgY29uc3QgVmVjdG9yPHVpbnQ4
X3Q+JiB2YXBpZFB1YmxpY0tleSwgVW5zdWJzY3JpYmVIYW5kbGVyJiYpIGZpbmFsOworCisgICAg
VmVjdG9yPFN0cmluZz4gZW5hYmxlZFRvcGljcygpIGZpbmFsOworICAgIFZlY3RvcjxTdHJpbmc+
IGlnbm9yZWRUb3BpY3MoKSBmaW5hbDsKKyAgICBWZWN0b3I8U3RyaW5nPiBvcHBvcnR1bmlzdGlj
VG9waWNzKCkgZmluYWw7CisgICAgVmVjdG9yPFN0cmluZz4gbm9uV2FraW5nVG9waWNzKCkgZmlu
YWw7CisKKyAgICB2b2lkIHNldEVuYWJsZWRUb3BpY3MoY29uc3QgVmVjdG9yPFN0cmluZz4mKSBm
aW5hbDsKKyAgICB2b2lkIHNldElnbm9yZWRUb3BpY3MoY29uc3QgVmVjdG9yPFN0cmluZz4mKSBm
aW5hbDsKKyAgICB2b2lkIHNldE9wcG9ydHVuaXN0aWNUb3BpY3MoY29uc3QgVmVjdG9yPFN0cmlu
Zz4mKSBmaW5hbDsKKyAgICB2b2lkIHNldE5vbldha2luZ1RvcGljcyhjb25zdCBWZWN0b3I8U3Ry
aW5nPiYpIGZpbmFsOworCisgICAgdm9pZCBzZXRUb3BpY0xpc3RzKFRvcGljTGlzdHMmJikgZmlu
YWw7Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJQdXNoRApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC93ZWJwdXNoZC9GYWtlUHVzaFNlcnZpY2VDb25uZWN0aW9uLm1tIGIvU291cmNlL1dlYktp
dC93ZWJwdXNoZC9GYWtlUHVzaFNlcnZpY2VDb25uZWN0aW9uLm1tCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmNhMzEz
NzZlY2RhM2M2NTUyNjI0OTVkNjRlZWUwODg2MjhkMjVjYjIKLS0tIC9kZXYvbnVsbAorKysgYi9T
b3VyY2UvV2ViS2l0L3dlYnB1c2hkL0Zha2VQdXNoU2VydmljZUNvbm5lY3Rpb24ubW0KQEAgLTAs
MCArMSw4NyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMiBBcHBsZSBJbmMuIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5k
IGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJt
aXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6
CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFi
b3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFy
eSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0
aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3
aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBC
WSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBF
WFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklU
TkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBF
VkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBG
T1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwg
T1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NT
IE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikg
SE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElO
CisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJ
R0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNF
IE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZ
IE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbXBvcnQgImNvbmZpZy5oIgorI2ltcG9ydCAiRmFr
ZVB1c2hTZXJ2aWNlQ29ubmVjdGlvbi5oIgorCituYW1lc3BhY2UgV2ViUHVzaEQgeworCitGYWtl
UHVzaFNlcnZpY2VDb25uZWN0aW9uOjpGYWtlUHVzaFNlcnZpY2VDb25uZWN0aW9uKCkKK3sKK30K
KworRmFrZVB1c2hTZXJ2aWNlQ29ubmVjdGlvbjo6fkZha2VQdXNoU2VydmljZUNvbm5lY3Rpb24o
KSA9IGRlZmF1bHQ7CisKK3ZvaWQgRmFrZVB1c2hTZXJ2aWNlQ29ubmVjdGlvbjo6c3Vic2NyaWJl
KGNvbnN0IFN0cmluZyYsIGNvbnN0IFZlY3Rvcjx1aW50OF90PiYsIFN1YnNjcmliZUhhbmRsZXIm
JiBoYW5kbGVyKQoreworICAgIGhhbmRsZXIoeyB9LCBbTlNFcnJvciBlcnJvcldpdGhEb21haW46
TlNDb2NvYUVycm9yRG9tYWluIGNvZGU6TlNGZWF0dXJlVW5zdXBwb3J0ZWRFcnJvciB1c2VySW5m
bzpuaWxdKTsKK30KKwordm9pZCBGYWtlUHVzaFNlcnZpY2VDb25uZWN0aW9uOjp1bnN1YnNjcmli
ZShjb25zdCBTdHJpbmcmLCBjb25zdCBWZWN0b3I8dWludDhfdD4mLCBVbnN1YnNjcmliZUhhbmRs
ZXImJiBoYW5kbGVyKQoreworICAgIGhhbmRsZXIoeyB9LCBbTlNFcnJvciBlcnJvcldpdGhEb21h
aW46TlNDb2NvYUVycm9yRG9tYWluIGNvZGU6TlNGZWF0dXJlVW5zdXBwb3J0ZWRFcnJvciB1c2Vy
SW5mbzpuaWxdKTsKK30KKworVmVjdG9yPFN0cmluZz4gRmFrZVB1c2hTZXJ2aWNlQ29ubmVjdGlv
bjo6ZW5hYmxlZFRvcGljcygpCit7CisgICAgcmV0dXJuIHsgfTsKK30KKworVmVjdG9yPFN0cmlu
Zz4gRmFrZVB1c2hTZXJ2aWNlQ29ubmVjdGlvbjo6aWdub3JlZFRvcGljcygpCit7CisgICAgcmV0
dXJuIHsgfTsKK30KKworVmVjdG9yPFN0cmluZz4gRmFrZVB1c2hTZXJ2aWNlQ29ubmVjdGlvbjo6
b3Bwb3J0dW5pc3RpY1RvcGljcygpCit7CisgICAgcmV0dXJuIHsgfTsKK30KKworVmVjdG9yPFN0
cmluZz4gRmFrZVB1c2hTZXJ2aWNlQ29ubmVjdGlvbjo6bm9uV2FraW5nVG9waWNzKCkKK3sKKyAg
ICByZXR1cm4geyB9OworfQorCit2b2lkIEZha2VQdXNoU2VydmljZUNvbm5lY3Rpb246OnNldEVu
YWJsZWRUb3BpY3MoY29uc3QgVmVjdG9yPFN0cmluZz4mIHRvcGljcykKK3sKK30KKwordm9pZCBG
YWtlUHVzaFNlcnZpY2VDb25uZWN0aW9uOjpzZXRJZ25vcmVkVG9waWNzKGNvbnN0IFZlY3RvcjxT
dHJpbmc+JiB0b3BpY3MpCit7Cit9CisKK3ZvaWQgRmFrZVB1c2hTZXJ2aWNlQ29ubmVjdGlvbjo6
c2V0T3Bwb3J0dW5pc3RpY1RvcGljcyhjb25zdCBWZWN0b3I8U3RyaW5nPiYgdG9waWNzKQorewor
fQorCit2b2lkIEZha2VQdXNoU2VydmljZUNvbm5lY3Rpb246OnNldE5vbldha2luZ1RvcGljcyhj
b25zdCBWZWN0b3I8U3RyaW5nPiYgdG9waWNzKQoreworfQorCit2b2lkIEZha2VQdXNoU2Vydmlj
ZUNvbm5lY3Rpb246OnNldFRvcGljTGlzdHMoVG9waWNMaXN0cyYmIHRvcGljTGlzdHMpCit7Cit9
CisKK30gLy8gbmFtZXNwYWNlIFdlYlB1c2hECmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L3dl
YnB1c2hkL1B1c2hTZXJ2aWNlQ29ubmVjdGlvbi5oIGIvU291cmNlL1dlYktpdC93ZWJwdXNoZC9Q
dXNoU2VydmljZUNvbm5lY3Rpb24uaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4zY2M1ZTg5NTdkMTExNjhiYzcxYjMx
ZmVhYzFlMDc2NjQ3NzUyZDI4Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC93ZWJw
dXNoZC9QdXNoU2VydmljZUNvbm5lY3Rpb24uaApAQCAtMCwwICsxLDgxIEBACisvKgorICogQ29w
eXJpZ2h0IChDKSAyMDIyIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBS
ZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9y
IHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRo
ZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9u
cyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2Ug
dGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlv
biBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4K
KyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBD
T05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJS
QU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdB
UlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIK
KyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4g
T1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVD
VCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBE
QU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAq
IFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9G
SVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04g
QU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1Qg
TElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisg
KiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZF
TiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8K
KworI3ByYWdtYSBvbmNlCisKKyNpbmNsdWRlIDx3dGYvQ29tcGxldGlvbkhhbmRsZXIuaD4KKyNp
bmNsdWRlIDx3dGYvRGVxdWUuaD4KKyNpbmNsdWRlIDx3dGYvRnVuY3Rpb24uaD4KKyNpbmNsdWRl
IDx3dGYvUmV0YWluUHRyLmg+CisjaW5jbHVkZSA8d3RmL1ZlY3Rvci5oPgorI2luY2x1ZGUgPHd0
Zi9Xb3JrUXVldWUuaD4KKyNpbmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KKworT0JKQ19D
TEFTUyBOU0Vycm9yOworT0JKQ19DTEFTUyBOU1N0cmluZzsKK09CSkNfQ0xBU1MgTlNEaWN0aW9u
YXJ5OworCituYW1lc3BhY2UgV2ViUHVzaEQgeworCitjbGFzcyBQdXNoU2VydmljZUNvbm5lY3Rp
b24geworcHVibGljOgorICAgIHVzaW5nIEluY29taW5nUHVzaE1lc3NhZ2VIYW5kbGVyID0gRnVu
Y3Rpb248dm9pZChOU1N0cmluZyAqLCBOU0RpY3Rpb25hcnkgKik+OworCisgICAgUHVzaFNlcnZp
Y2VDb25uZWN0aW9uKCkgPSBkZWZhdWx0OworICAgIHZpcnR1YWwgflB1c2hTZXJ2aWNlQ29ubmVj
dGlvbigpID0gZGVmYXVsdDsKKworICAgIHVzaW5nIFN1YnNjcmliZUhhbmRsZXIgPSBDb21wbGV0
aW9uSGFuZGxlcjx2b2lkKE5TU3RyaW5nICosIE5TRXJyb3IgKik+OworICAgIHZpcnR1YWwgdm9p
ZCBzdWJzY3JpYmUoY29uc3QgU3RyaW5nJiB0b3BpYywgY29uc3QgVmVjdG9yPHVpbnQ4X3Q+JiB2
YXBpZFB1YmxpY0tleSwgU3Vic2NyaWJlSGFuZGxlciYmKSA9IDA7CisKKyAgICB1c2luZyBVbnN1
YnNjcmliZUhhbmRsZXIgPSBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGJvb2wsIE5TRXJyb3IgKik+
OworICAgIHZpcnR1YWwgdm9pZCB1bnN1YnNjcmliZShjb25zdCBTdHJpbmcmIHRvcGljLCBjb25z
dCBWZWN0b3I8dWludDhfdD4mIHZhcGlkUHVibGljS2V5LCBVbnN1YnNjcmliZUhhbmRsZXImJikg
PSAwOworCisgICAgdmlydHVhbCBWZWN0b3I8U3RyaW5nPiBlbmFibGVkVG9waWNzKCkgPSAwOwor
ICAgIHZpcnR1YWwgVmVjdG9yPFN0cmluZz4gaWdub3JlZFRvcGljcygpID0gMDsKKyAgICB2aXJ0
dWFsIFZlY3RvcjxTdHJpbmc+IG9wcG9ydHVuaXN0aWNUb3BpY3MoKSA9IDA7CisgICAgdmlydHVh
bCBWZWN0b3I8U3RyaW5nPiBub25XYWtpbmdUb3BpY3MoKSA9IDA7CisKKyAgICB2aXJ0dWFsIHZv
aWQgc2V0RW5hYmxlZFRvcGljcyhjb25zdCBWZWN0b3I8U3RyaW5nPiYpID0gMDsKKyAgICB2aXJ0
dWFsIHZvaWQgc2V0SWdub3JlZFRvcGljcyhjb25zdCBWZWN0b3I8U3RyaW5nPiYpID0gMDsKKyAg
ICB2aXJ0dWFsIHZvaWQgc2V0T3Bwb3J0dW5pc3RpY1RvcGljcyhjb25zdCBWZWN0b3I8U3RyaW5n
PiYpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgc2V0Tm9uV2FraW5nVG9waWNzKGNvbnN0IFZlY3Rv
cjxTdHJpbmc+JikgPSAwOworCisgICAgc3RydWN0IFRvcGljTGlzdHMgeworICAgICAgICBWZWN0
b3I8U3RyaW5nPiBlbmFibGVkVG9waWNzOworICAgICAgICBWZWN0b3I8U3RyaW5nPiBpZ25vcmVk
VG9waWNzOworICAgICAgICBWZWN0b3I8U3RyaW5nPiBvcHBvcnR1bmlzdGljVG9waWNzOworICAg
ICAgICBWZWN0b3I8U3RyaW5nPiBub25XYWtpbmdUb3BpY3M7CisgICAgfTsKKyAgICB2aXJ0dWFs
IHZvaWQgc2V0VG9waWNMaXN0cyhUb3BpY0xpc3RzJiYpID0gMDsKKworICAgIHZvaWQgc3RhcnRM
aXN0ZW5pbmdGb3JQdXNoTWVzc2FnZXMoSW5jb21pbmdQdXNoTWVzc2FnZUhhbmRsZXImJik7Cisg
ICAgdm9pZCBkaWRSZWNlaXZlUHVzaE1lc3NhZ2UoTlNTdHJpbmcgKnRvcGljLCBOU0RpY3Rpb25h
cnkgKnVzZXJJbmZvKTsKKworcHJpdmF0ZToKKyAgICBJbmNvbWluZ1B1c2hNZXNzYWdlSGFuZGxl
ciBtX2luY29taW5nUHVzaE1lc3NhZ2VIYW5kbGVyOworICAgIERlcXVlPHN0ZDo6cGFpcjxSZXRh
aW5QdHI8TlNTdHJpbmc+LCBSZXRhaW5QdHI8TlNEaWN0aW9uYXJ5Pj4+IG1fcGVuZGluZ1B1c2hl
czsKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYlB1c2hECmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L3dlYnB1c2hkL1B1c2hTZXJ2aWNlQ29ubmVjdGlvbi5tbSBiL1NvdXJjZS9XZWJLaXQvd2Vi
cHVzaGQvUHVzaFNlcnZpY2VDb25uZWN0aW9uLm1tCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjUzNDMzMjVlYjVlYTIw
M2U4ZGY2ZmY4MzAzY2I5YjBmZmM4MTMyMWIKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2Vi
S2l0L3dlYnB1c2hkL1B1c2hTZXJ2aWNlQ29ubmVjdGlvbi5tbQpAQCAtMCwwICsxLDYwIEBACisv
KgorICogQ29weXJpZ2h0IChDKSAyMDIyIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4K
KyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1z
LCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRl
ZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlz
dHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0
CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCBy
ZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9j
dW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3Ry
aWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4g
QU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1Q
TElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJ
TVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBB
UlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQ
UExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNU
LCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VR
VUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1F
TlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRB
LCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNF
RCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNU
LCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhF
UldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZU
V0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1B
R0UuCisgKi8KKworI2ltcG9ydCAiY29uZmlnLmgiCisjaW1wb3J0ICJQdXNoU2VydmljZUNvbm5l
Y3Rpb24uaCIKKworI2ltcG9ydCA8d3RmL1dvcmtRdWV1ZS5oPgorCituYW1lc3BhY2UgV2ViUHVz
aEQgeworCit2b2lkIFB1c2hTZXJ2aWNlQ29ubmVjdGlvbjo6c3RhcnRMaXN0ZW5pbmdGb3JQdXNo
TWVzc2FnZXMoSW5jb21pbmdQdXNoTWVzc2FnZUhhbmRsZXImJiBoYW5kbGVyKQoreworICAgIG1f
aW5jb21pbmdQdXNoTWVzc2FnZUhhbmRsZXIgPSBXVEZNb3ZlKGhhbmRsZXIpOworCisgICAgaWYg
KCFtX3BlbmRpbmdQdXNoZXMuc2l6ZSgpKQorICAgICAgICByZXR1cm47CisKKyAgICBXb3JrUXVl
dWU6Om1haW4oKS5kaXNwYXRjaChbdGhpc10oKSBtdXRhYmxlIHsKKyAgICAgICAgd2hpbGUgKG1f
cGVuZGluZ1B1c2hlcy5zaXplKCkpIHsKKyAgICAgICAgICAgIEBhdXRvcmVsZWFzZXBvb2wgewor
ICAgICAgICAgICAgICAgIGF1dG8gbWVzc2FnZSA9IG1fcGVuZGluZ1B1c2hlcy50YWtlRmlyc3Qo
KTsKKyAgICAgICAgICAgICAgICBtX2luY29taW5nUHVzaE1lc3NhZ2VIYW5kbGVyKG1lc3NhZ2Uu
Zmlyc3QuZ2V0KCksIG1lc3NhZ2Uuc2Vjb25kLmdldCgpKTsKKyAgICAgICAgICAgIH0KKyAgICAg
ICAgfQorICAgIH0pOworfQorCit2b2lkIFB1c2hTZXJ2aWNlQ29ubmVjdGlvbjo6ZGlkUmVjZWl2
ZVB1c2hNZXNzYWdlKE5TU3RyaW5nICp0b3BpYywgTlNEaWN0aW9uYXJ5ICp1c2VySW5mbykKK3sK
KyAgICBpZiAoIW1faW5jb21pbmdQdXNoTWVzc2FnZUhhbmRsZXIpIHsKKyAgICAgICAgbV9wZW5k
aW5nUHVzaGVzLmFwcGVuZCh7IHRvcGljLCB1c2VySW5mbyB9KTsKKyAgICAgICAgcmV0dXJuOwor
ICAgIH0KKworICAgIG1faW5jb21pbmdQdXNoTWVzc2FnZUhhbmRsZXIodG9waWMsIHVzZXJJbmZv
KTsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViUHVzaEQKZGlmZiAtLWdpdCBhL1dlYktpdExpYnJh
cmllcy9DaGFuZ2VMb2cgYi9XZWJLaXRMaWJyYXJpZXMvQ2hhbmdlTG9nCmluZGV4IDE0ZjFkMmVk
YWRlOWE0ZDA4NzVhNTgxMjVlOGY5ZThjODAzNmY0YTguLmM3Y2Y2ZGE2NzhhYmM4ZTAzODFhMWRh
YmQ0YzRmZDFmMjVhN2M5ZGUgMTAwNjQ0Ci0tLSBhL1dlYktpdExpYnJhcmllcy9DaGFuZ2VMb2cK
KysrIGIvV2ViS2l0TGlicmFyaWVzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE1IEBACisyMDIyLTAx
LTI5ICBCZW4gTmhhbSAgPG5oYW1AYXBwbGUuY29tPgorCisgICAgICAgIEltcG9ydCBBUFNDb25u
ZWN0aW9uLXJlbGF0ZWQgU1BJCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD0yMzU4NTYKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4K
KworICAgICAgICBBZGQgQXBwbGVQdXNoU2VydmljZSBzdHVicyBzbyB3ZSBjYW4gYnVpbGQgYWdh
aW5zdCBpdCB3aXRoIHRoZSBwdWJsaWMgU0RLcy4KKworICAgICAgICAqIFdlYktpdFByaXZhdGVG
cmFtZXdvcmtTdHVicy9NYWMvMTIwMDAwL0FwcGxlUHVzaFNlcnZpY2UuZnJhbWV3b3JrL0FwcGxl
UHVzaFNlcnZpY2UudGJkOiBBZGRlZC4KKyAgICAgICAgKiBXZWJLaXRQcml2YXRlRnJhbWV3b3Jr
U3R1YnMvaU9TLzE1L0FwcGxlUHVzaFNlcnZpY2UuZnJhbWV3b3JrL0FwcGxlUHVzaFNlcnZpY2Uu
dGJkOiBBZGRlZC4KKwogMjAyMi0wMS0wMSAgSmVmZiBNaWxsZXIgIDxqZWZmbUBhcHBsZS5jb20+
CiAKICAgICAgICAgVXBkYXRlIHVzZXItdmlzaWJsZSBjb3B5cmlnaHQgc3RyaW5ncyB0byBpbmNs
dWRlIDIwMjIKZGlmZiAtLWdpdCBhL1dlYktpdExpYnJhcmllcy9XZWJLaXRQcml2YXRlRnJhbWV3
b3JrU3R1YnMvTWFjLzEyMDAwMC9BcHBsZVB1c2hTZXJ2aWNlLmZyYW1ld29yay9BcHBsZVB1c2hT
ZXJ2aWNlLnRiZCBiL1dlYktpdExpYnJhcmllcy9XZWJLaXRQcml2YXRlRnJhbWV3b3JrU3R1YnMv
TWFjLzEyMDAwMC9BcHBsZVB1c2hTZXJ2aWNlLmZyYW1ld29yay9BcHBsZVB1c2hTZXJ2aWNlLnRi
ZApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi41ZjE2ZmExMzkzNmRiYjA1NmQwMzg0MDk2MjAyNDUxOGY4MzU0MzE5Ci0t
LSAvZGV2L251bGwKKysrIGIvV2ViS2l0TGlicmFyaWVzL1dlYktpdFByaXZhdGVGcmFtZXdvcmtT
dHVicy9NYWMvMTIwMDAwL0FwcGxlUHVzaFNlcnZpY2UuZnJhbWV3b3JrL0FwcGxlUHVzaFNlcnZp
Y2UudGJkCkBAIC0wLDAgKzEsNjEgQEAKKy0tLSAhdGFwaS10YmQKK3RiZC12ZXJzaW9uOiAgICAg
NAordGFyZ2V0czogICAgICAgICBbIHg4Nl82NC1tYWNvcywgeDg2XzY0LW1hY2NhdGFseXN0LCBh
cm02NC1tYWNvcywgYXJtNjQtbWFjY2F0YWx5c3QsIAorICAgICAgICAgICAgICAgICAgIGFybTY0
ZS1tYWNvcywgYXJtNjRlLW1hY2NhdGFseXN0IF0KK3V1aWRzOgorICAtIHRhcmdldDogICAgICAg
ICAgeDg2XzY0LW1hY29zCisgICAgdmFsdWU6ICAgICAgICAgICA1NTc5NTdENi0xQUJDLTM3NzQt
QjYyOC00OUEzOEZGNjIxRUMKKyAgLSB0YXJnZXQ6ICAgICAgICAgIHg4Nl82NC1tYWNjYXRhbHlz
dAorICAgIHZhbHVlOiAgICAgICAgICAgNTU3OTU3RDYtMUFCQy0zNzc0LUI2MjgtNDlBMzhGRjYy
MUVDCisgIC0gdGFyZ2V0OiAgICAgICAgICBhcm02NC1tYWNvcworICAgIHZhbHVlOiAgICAgICAg
ICAgMDAwMDAwMDAtMDAwMC0wMDAwLTAwMDAtMDAwMDAwMDAwMDAwCisgIC0gdGFyZ2V0OiAgICAg
ICAgICBhcm02NC1tYWNjYXRhbHlzdAorICAgIHZhbHVlOiAgICAgICAgICAgMDAwMDAwMDAtMDAw
MC0wMDAwLTAwMDAtMDAwMDAwMDAwMDAwCisgIC0gdGFyZ2V0OiAgICAgICAgICBhcm02NGUtbWFj
b3MKKyAgICB2YWx1ZTogICAgICAgICAgIDVGRTMzREI2LTIzODgtMzY2OS04MENDLUZCODJFMEFB
RDQ1QgorICAtIHRhcmdldDogICAgICAgICAgYXJtNjRlLW1hY2NhdGFseXN0CisgICAgdmFsdWU6
ICAgICAgICAgICA1RkUzM0RCNi0yMzg4LTM2NjktODBDQy1GQjgyRTBBQUQ0NUIKK2luc3RhbGwt
bmFtZTogICAgJy9TeXN0ZW0vTGlicmFyeS9Qcml2YXRlRnJhbWV3b3Jrcy9BcHBsZVB1c2hTZXJ2
aWNlLmZyYW1ld29yay9WZXJzaW9ucy9BL0FwcGxlUHVzaFNlcnZpY2UnCitleHBvcnRzOgorICAt
IHRhcmdldHM6ICAgICAgICAgWyB4ODZfNjQtbWFjb3MsIGFybTY0ZS1tYWNvcywgeDg2XzY0LW1h
Y2NhdGFseXN0LCBhcm02NGUtbWFjY2F0YWx5c3QsIAorICAgICAgICAgICAgICAgICAgICAgICBh
cm02NC1tYWNvcywgYXJtNjQtbWFjY2F0YWx5c3QgXQorICAgIHN5bWJvbHM6ICAgICAgICAgWyBf
QVBTQWxlcnQsIF9BUFNCdW5kbGVJZGVudGlmaWVyLCBfQVBTQ2FjaGVkSVBLZXksIF9BUFNDYXJy
aWVyTmFtZUtleSwgCisgICAgICAgICAgICAgICAgICAgICAgIF9BUFNDbGllbnRJZGVudGl0eVVw
ZGF0ZWROb3RpZmljYXRpb24sIF9BUFNDb25uZWN0aW9uSW5pdGlhdGVFbnRpdGxlbWVudCwgCisg
ICAgICAgICAgICAgICAgICAgICAgIF9BUFNDb25uZWN0aW9uT3ZlcnJpZGVOYW1lZERlbGVnYXRl
UG9ydCwgX0FQU0Nvbm5lY3Rpb25TeXN0ZW1Qcm9jZXNzRW50aXRsZW1lbnQsIAorICAgICAgICAg
ICAgICAgICAgICAgICBfQVBTQ3JlYXRlRGljdGlvbmFyeUZyb21YUENPYmplY3QsIF9BUFNDcmVh
dGVYUENPYmplY3RGcm9tRGljdGlvbmFyeSwgCisgICAgICAgICAgICAgICAgICAgICAgIF9BUFND
cml0aWNhbFdha2VFbnRpdGxlbWVudCwgX0FQU0RhcmtXYWtlRW50aXRsZW1lbnQsIF9BUFNEYXRh
Rm9yUHJvcGVydHlMaXN0LCAKKyAgICAgICAgICAgICAgICAgICAgICAgX0FQU0RlY29kZURpY3Rp
b25hcnksIF9BUFNEZWZhdWx0VG9rZW5OYW1lLCBfQVBTRGVmYXVsdFVzZXJJRCwgCisgICAgICAg
ICAgICAgICAgICAgICAgIF9BUFNEZW1vSG9zdHNLZXksIF9BUFNFbmNvZGVEaWN0aW9uYXJ5LCBf
QVBTRW52aXJvbm1lbnREZW1vLCAKKyAgICAgICAgICAgICAgICAgICAgICAgX0FQU0Vudmlyb25t
ZW50RGV2ZWxvcG1lbnQsIF9BUFNFbnZpcm9ubWVudFByb2R1Y3Rpb24sIF9BUFNFbnZpcm9ubWVu
dFFBMiwgCisgICAgICAgICAgICAgICAgICAgICAgIF9BUFNFcnJvciwgX0FQU0Vycm9yRG9tYWlu
LCBfQVBTRm9yY2VLZWVwQWxpdmVWMUtleSwgX0FQU0dldEVuYWJsZUNyaXRpY2FsUmVsaWFiaWxp
dHksIAorICAgICAgICAgICAgICAgICAgICAgICBfQVBTR2V0RW5hYmxlU3RhdHVzTm90aWZpY2F0
aW9ucywgX0FQU0dldEVuYWJsZWRUb3BpY3NGcm9tWFBDRGljdGlvbmFyeSwgCisgICAgICAgICAg
ICAgICAgICAgICAgIF9BUFNHZXRJZ25vcmVkVG9waWNzRnJvbVhQQ0RpY3Rpb25hcnksIF9BUFNH
ZXROb25XYWtpbmdUb3BpY3NGcm9tWFBDRGljdGlvbmFyeSwgCisgICAgICAgICAgICAgICAgICAg
ICAgIF9BUFNHZXRPcHBvcnR1bmlzdGljVG9waWNzRnJvbVhQQ0RpY3Rpb25hcnksIF9BUFNHZXRV
c2VzQXBwTGF1bmNoU3RhdHMsIAorICAgICAgICAgICAgICAgICAgICAgICBfQVBTR2V0WFBDQXJy
YXlGcm9tRGljdGlvbmFyeSwgX0FQU0dldFhQQ0Jvb2xGcm9tRGljdGlvbmFyeSwgCisgICAgICAg
ICAgICAgICAgICAgICAgIF9BUFNHZXRYUENDb25uZWN0aW9uQ29udGV4dCwgX0FQU0dldFhQQ0Rh
dGFGcm9tRGljdGlvbmFyeSwgCisgICAgICAgICAgICAgICAgICAgICAgIF9BUFNHZXRYUENEaWN0
aW9uYXJ5RnJvbURpY3Rpb25hcnksIF9BUFNHZXRYUENEb3VibGVGcm9tRGljdGlvbmFyeSwgCisg
ICAgICAgICAgICAgICAgICAgICAgIF9BUFNHZXRYUENJbnRGcm9tRGljdGlvbmFyeSwgX0FQU0dl
dFhQQ05TVUludGVnZXJGcm9tRGljdGlvbmFyeSwgCisgICAgICAgICAgICAgICAgICAgICAgIF9B
UFNHZXRYUENTdHJpbmdGcm9tRGljdGlvbmFyeSwgX0FQU0hleFN0cmluZ0Zyb21OU0RhdGEsIF9B
UFNJbmNvbWluZ01lc3NhZ2VQcmlvcml0eVN0cmluZywgCisgICAgICAgICAgICAgICAgICAgICAg
IF9BUFNJbnNlcnRCb29sc1RvWFBDRGljdGlvbmFyeSwgX0FQU0luc2VydERhdGFzVG9YUENEaWN0
aW9uYXJ5LCAKKyAgICAgICAgICAgICAgICAgICAgICAgX0FQU0luc2VydERvdWJsZXNUb1hQQ0Rp
Y3Rpb25hcnksIF9BUFNJbnNlcnRFbmFibGVkVG9waWNzVG9YUENEaWN0aW9uYXJ5LCAKKyAgICAg
ICAgICAgICAgICAgICAgICAgX0FQU0luc2VydElnbm9yZWRUb3BpY3NUb1hQQ0RpY3Rpb25hcnks
IF9BUFNJbnNlcnRJbnRzVG9YUENEaWN0aW9uYXJ5LCAKKyAgICAgICAgICAgICAgICAgICAgICAg
X0FQU0luc2VydE5TQXJyYXlzVG9YUENEaWN0aW9uYXJ5LCBfQVBTSW5zZXJ0TlNEaWN0aW9uYXJp
ZXNUb1hQQ0RpY3Rpb25hcnksIAorICAgICAgICAgICAgICAgICAgICAgICBfQVBTSW5zZXJ0TlNT
dHJpbmdzVG9YUENEaWN0aW9uYXJ5LCBfQVBTSW5zZXJ0TlNVSW50ZWdlcnNUb1hQQ0RpY3Rpb25h
cnksIAorICAgICAgICAgICAgICAgICAgICAgICBfQVBTSW5zZXJ0Tm9uV2FraW5nVG9waWNzVG9Y
UENEaWN0aW9uYXJ5LCBfQVBTSW5zZXJ0T3Bwb3J0dW5pc3RpY1RvcGljc1RvWFBDRGljdGlvbmFy
eSwgCisgICAgICAgICAgICAgICAgICAgICAgIF9BUFNJc1NULCBfQVBTTGF1bmNoZEpvYkxhYmVs
LCBfQVBTTlNEYXRhRnJvbUhleFN0cmluZywgX0FQU1BlckFwcFRva2VuQXBwSWRzS2V5LCAKKyAg
ICAgICAgICAgICAgICAgICAgICAgX0FQU1BlcnNpc3RlbnRUb3BpY3NLZXksIF9BUFNQb3dlckxv
ZywgX0FQU1ByZXR0eVByaW50Q29sbGVjdGlvbiwgCisgICAgICAgICAgICAgICAgICAgICAgIF9B
UFNQcm9wZXJ0eUxpc3RGcm9tTlNEYXRhLCBfQVBTUHViU3ViRXJyb3IsIF9BUFNQdWJTdWJFcnJv
ckRvbWFpbiwgCisgICAgICAgICAgICAgICAgICAgICAgIF9BUFNQdXNoV2FrZUVudGl0bGVtZW50
LCBfQVBTU2FmZUFycmF5T2ZTdHJpbmdzLCBfQVBTU2V0WFBDQ29ubmVjdGlvbkNvbnRleHQsIAor
ICAgICAgICAgICAgICAgICAgICAgICBfQVBTU3lzdGVtVXNlcnNLZXksIF9BUFNUcnVzdEFsbEhv
c3RzLCBfQVBTVW5kZXJseWluZ0Vycm9yLCAKKyAgICAgICAgICAgICAgICAgICAgICAgX0FQU1Vz
ZXNBcHBMYXVuY2hTdGF0c0tleSwgX0FQU1hQQ0NvbmZpZ3VyZUNvbm5lY3Rpb24sIF9BUFNYUEND
b25uZWN0aW9uU2V0RXZlbnRIYW5kbGVycywgCisgICAgICAgICAgICAgICAgICAgICAgIF9BUFNY
UENDcmVhdGVDb25uZWN0aW9uRm9yU2VydmljZSwgX0FQU1hQQ0NyZWF0ZUNvbm5lY3Rpb25Gb3JT
ZXJ2aWNlV2l0aFF1ZXVlLCAKKyAgICAgICAgICAgICAgICAgICAgICAgX0FQU1hQQ0NyZWF0ZVNl
cnZlckNvbm5lY3Rpb24sIF9BUFNYUENNZXNzYWdlVHlwZUtleSwgX2tBUFNUYXNrQ2xpZW50U2Vy
dmljZU5hbWUgXQorICAgIG9iamMtY2xhc3NlczogICAgWyBBUFNBY2Nlc3NDaGVjaywgQVBTQ2hh
bm5lbFN1YnNjcmlwdGlvbkZhaWx1cmUsIEFQU0Nvbm5lY3Rpb24sIAorICAgICAgICAgICAgICAg
ICAgICAgICBBUFNETlNSZXF1ZXN0LCBBUFNETlNSZXNwb25zZSwgQVBTSW5jb21pbmdNZXNzYWdl
LCBBUFNMb2csIAorICAgICAgICAgICAgICAgICAgICAgICBBUFNNZXNzYWdlLCBBUFNPdXRnb2lu
Z01lc3NhZ2UsIEFQU1Rhc2tDbGllbnQgXQorICAgIG9iamMtaXZhcnM6ICAgICAgWyBBUFNETlNS
ZXF1ZXN0Ll9lbnZpcm9ubWVudCwgQVBTRE5TUmVxdWVzdC5fZmxhZ3MsIEFQU0ROU1JlcXVlc3Qu
X2hvc3RuYW1lLCAKKyAgICAgICAgICAgICAgICAgICAgICAgQVBTRE5TUmVxdWVzdC5fcmVxdWVz
dFN0YXJ0VGltZSwgQVBTRE5TUmVxdWVzdC5fcmVzcG9uc2VCbG9jaywgCisgICAgICAgICAgICAg
ICAgICAgICAgIEFQU0ROU1JlcXVlc3QuX3RpbWVvdXQsIEFQU0ROU1Jlc3BvbnNlLl9ob3N0bmFt
ZSwgQVBTRE5TUmVzcG9uc2UuX2lwdjRBZGRyZXNzLCAKKyAgICAgICAgICAgICAgICAgICAgICAg
QVBTRE5TUmVzcG9uc2UuX2lwdjZBZGRyZXNzLCBBUFNUYXNrQ2xpZW50Ll9jbGllbnRRdWV1ZSwg
QVBTVGFza0NsaWVudC5fY29ubmVjdGlvbiwgCisgICAgICAgICAgICAgICAgICAgICAgIEFQU1Rh
c2tDbGllbnQuX2Vudmlyb25tZW50LCBBUFNUYXNrQ2xpZW50Ll9vdXRzdGFuZGluZ0ROU1JlcXVl
c3RzIF0KKy4uLgpkaWZmIC0tZ2l0IGEvV2ViS2l0TGlicmFyaWVzL1dlYktpdFByaXZhdGVGcmFt
ZXdvcmtTdHVicy9pT1MvMTUvQXBwbGVQdXNoU2VydmljZS5mcmFtZXdvcmsvQXBwbGVQdXNoU2Vy
dmljZS50YmQgYi9XZWJLaXRMaWJyYXJpZXMvV2ViS2l0UHJpdmF0ZUZyYW1ld29ya1N0dWJzL2lP
Uy8xNS9BcHBsZVB1c2hTZXJ2aWNlLmZyYW1ld29yay9BcHBsZVB1c2hTZXJ2aWNlLnRiZApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi41Mjg3ZmZlMmJmOWI0OThlMmI0ZmVlNDQ3NDVkZDJkYjEzYmYyNGIzCi0tLSAvZGV2
L251bGwKKysrIGIvV2ViS2l0TGlicmFyaWVzL1dlYktpdFByaXZhdGVGcmFtZXdvcmtTdHVicy9p
T1MvMTUvQXBwbGVQdXNoU2VydmljZS5mcmFtZXdvcmsvQXBwbGVQdXNoU2VydmljZS50YmQKQEAg
LTAsMCArMSw3NiBAQAorLS0tICF0YXBpLXRiZAordGJkLXZlcnNpb246ICAgICA0Cit0YXJnZXRz
OiAgICAgICAgIFsgYXJtdjctaW9zLCBhcm12N3MtaW9zLCBhcm02NC1pb3MsIGFybTY0ZS1pb3Mg
XQordXVpZHM6CisgIC0gdGFyZ2V0OiAgICAgICAgICBhcm12Ny1pb3MKKyAgICB2YWx1ZTogICAg
ICAgICAgIEZBMzE2OTQ5LTk2NjAtM0REQi05Q0M0LTRBMzA1QjdCMjdFOQorICAtIHRhcmdldDog
ICAgICAgICAgYXJtdjdzLWlvcworICAgIHZhbHVlOiAgICAgICAgICAgNTE3REZBQzgtRUZGRi0z
RDExLTlEOTEtODAxRjE2NUMzNTg5CisgIC0gdGFyZ2V0OiAgICAgICAgICBhcm02NC1pb3MKKyAg
ICB2YWx1ZTogICAgICAgICAgIDk0MDMzRjA4LUZDNTQtMzRGQS05M0MwLTc1M0EwODk3MDI3Qgor
ICAtIHRhcmdldDogICAgICAgICAgYXJtNjRlLWlvcworICAgIHZhbHVlOiAgICAgICAgICAgRUNC
NzQ2MDMtODhDRC0zNjdELUI2MjMtREYxMEE3OEQxQzAxCitpbnN0YWxsLW5hbWU6ICAgICcvU3lz
dGVtL0xpYnJhcnkvUHJpdmF0ZUZyYW1ld29ya3MvQXBwbGVQdXNoU2VydmljZS5mcmFtZXdvcmsv
QXBwbGVQdXNoU2VydmljZScKK2V4cG9ydHM6CisgIC0gdGFyZ2V0czogICAgICAgICBbIGFybXY3
LWlvcywgYXJtdjdzLWlvcyBdCisgICAgc3ltYm9sczogICAgICAgICBbIF9BUFNBc3NlcnQsIF9B
UFNDb25uZWN0aW9uSW50ZXJydXB0ZWRIYW5kbGVyQmxvY2ssIF9BUFNDb25uZWN0aW9uSW52YWxp
ZGF0aW9uSGFuZGxlckJsb2NrLCAKKyAgICAgICAgICAgICAgICAgICAgICAgX0FQU0NvcHlWYWx1
ZUZvcktleSwgX0FQU0NyZWF0ZU1JR1NlcnZlclNvdXJjZSwgX0FQU0NyZWF0ZU1JR1NlcnZlclNv
dXJjZVdpdGhDb250ZXh0LCAKKyAgICAgICAgICAgICAgICAgICAgICAgX0FQU0dldEJvb2xlYW5W
YWx1ZUZvcktleSwgX0FQU0dldENvbnRleHRGb3JDYWxsb3V0Q3VycmVudE1JR1NlcnZlclNvdXJj
ZSwgCisgICAgICAgICAgICAgICAgICAgICAgIF9BUFNHZXRNYWNoUG9ydEZvck1JR1NlcnZlclNv
dXJjZSwgX0FQU0luY29taW5nTWVzc2FnZUZyb21TdG9yYWdlS2V5LCAKKyAgICAgICAgICAgICAg
ICAgICAgICAgX0FQU0luY29taW5nTWVzc2FnZUxhc3RNZXNzYWdlRnJvbVN0b3JhZ2VLZXksIF9B
UFNJbmNvbWluZ01lc3NhZ2VUaW1lc3RhbXBLZXksIAorICAgICAgICAgICAgICAgICAgICAgICBf
QVBTSW5jb21pbmdNZXNzYWdlVG9rZW5LZXksIF9BUFNNZXNzYWdlQ29ycmVsYXRpb25JZGVudGlm
aWVyS2V5LCAKKyAgICAgICAgICAgICAgICAgICAgICAgX0FQU01lc3NhZ2VHVUlES2V5LCBfQVBT
TWVzc2FnZUlkZW50aWZpZXJLZXksIF9BUFNNZXNzYWdlVG9waWNLZXksIAorICAgICAgICAgICAg
ICAgICAgICAgICBfQVBTTWVzc2FnZVVzZXJJbmZvS2V5LCBfQVBTT3V0Z29pbmdNZXNzYWdlQ2Fu
Y2VsbGVkS2V5LCBfQVBTT3V0Z29pbmdNZXNzYWdlQ3JpdGljYWxLZXksIAorICAgICAgICAgICAg
ICAgICAgICAgICBfQVBTT3V0Z29pbmdNZXNzYWdlSURLZXksIF9BUFNPdXRnb2luZ01lc3NhZ2VQ
YXlsb2FkRm9ybWF0S2V5LCAKKyAgICAgICAgICAgICAgICAgICAgICAgX0FQU091dGdvaW5nTWVz
c2FnZVBheWxvYWRMZW5ndGhLZXksIF9BUFNPdXRnb2luZ01lc3NhZ2VQcmlvcml0eUtleSwgCisg
ICAgICAgICAgICAgICAgICAgICAgIF9BUFNPdXRnb2luZ01lc3NhZ2VTZW5kRGF0ZUtleSwgX0FQ
U091dGdvaW5nTWVzc2FnZVNlbmRJbnRlcmZhY2VLZXksIAorICAgICAgICAgICAgICAgICAgICAg
ICBfQVBTT3V0Z29pbmdNZXNzYWdlU2VuZGVyVG9rZW5OYW1lS2V5LCBfQVBTT3V0Z29pbmdNZXNz
YWdlU2VudEtleSwgCisgICAgICAgICAgICAgICAgICAgICAgIF9BUFNPdXRnb2luZ01lc3NhZ2VU
aW1lZE91dEtleSwgX0FQU091dGdvaW5nTWVzc2FnZVRpbWVvdXRLZXksIAorICAgICAgICAgICAg
ICAgICAgICAgICBfQVBTT3V0Z29pbmdNZXNzYWdlVGltZXN0YW1wS2V5LCBfQVBTUHJlZkJ1bmRs
ZUlkZW50aWZpZXIsIAorICAgICAgICAgICAgICAgICAgICAgICBfQVBTU2V0VmFsdWVGb3JLZXks
IF9BUFNTeW5jaHJvbml6ZSwgX0FQU1hQQ0xvZywgX0FQU1hQQ1NldExvZ0Jsb2NrLCAKKyAgICAg
ICAgICAgICAgICAgICAgICAgX0Nvbm5lY3Rpb25EZWxpdmVyX3NlcnZlciwgX0Nvbm5lY3Rpb25E
ZWxpdmVyX3NlcnZlcl9yb3V0aW5lLCAKKyAgICAgICAgICAgICAgICAgICAgICAgX19BUFNDb25u
ZWN0aW9uRGVsaXZlcl9zdWJzeXN0ZW0sIF9fQVBTSldTdHJpbmdUb0NoYXJQdHIsIAorICAgICAg
ICAgICAgICAgICAgICAgICBfX0FQU1BpbmdDbGllbnQsIF9hcHNfY29ubmVjdGlvbl9ldmVudF9o
YW5kbGVyIF0KKyAgICBvYmpjLWNsYXNzZXM6ICAgIFsgQVBTRmlsZUxvZ2dpbmcsIEFQU011bHRp
VXNlckZTLCBBUFNNdWx0aVVzZXJNb2RlLCBfQVBTTG9nRmlsZUNvbXByZXNzb3IgXQorICAgIG9i
amMtaXZhcnM6ICAgICAgWyBfQVBTTG9nRmlsZUNvbXByZXNzb3IuX2FyY2hpdmVycyBdCisgIC0g
dGFyZ2V0czogICAgICAgICBbIGFybTY0LWlvcywgYXJtNjRlLWlvcywgYXJtdjctaW9zLCBhcm12
N3MtaW9zIF0KKyAgICBzeW1ib2xzOiAgICAgICAgIFsgX0FQU0FsZXJ0LCBfQVBTQnVuZGxlSWRl
bnRpZmllciwgX0FQU0NhY2hlZElQS2V5LCBfQVBTQ2Fycmllck5hbWVLZXksIAorICAgICAgICAg
ICAgICAgICAgICAgICBfQVBTQ2xpZW50SWRlbnRpdHlVcGRhdGVkTm90aWZpY2F0aW9uLCBfQVBT
Q29ubmVjdGlvbkluaXRpYXRlRW50aXRsZW1lbnQsIAorICAgICAgICAgICAgICAgICAgICAgICBf
QVBTQ29ubmVjdGlvbk92ZXJyaWRlTmFtZWREZWxlZ2F0ZVBvcnQsIF9BUFNDb25uZWN0aW9uU3lz
dGVtUHJvY2Vzc0VudGl0bGVtZW50LCAKKyAgICAgICAgICAgICAgICAgICAgICAgX0FQU0NyZWF0
ZURpY3Rpb25hcnlGcm9tWFBDT2JqZWN0LCBfQVBTQ3JlYXRlWFBDT2JqZWN0RnJvbURpY3Rpb25h
cnksIAorICAgICAgICAgICAgICAgICAgICAgICBfQVBTQ3JpdGljYWxXYWtlRW50aXRsZW1lbnQs
IF9BUFNEYXJrV2FrZUVudGl0bGVtZW50LCBfQVBTRGF0YUZvclByb3BlcnR5TGlzdCwgCisgICAg
ICAgICAgICAgICAgICAgICAgIF9BUFNEZWNvZGVEaWN0aW9uYXJ5LCBfQVBTRGVmYXVsdFRva2Vu
TmFtZSwgX0FQU0RlZmF1bHRVc2VySUQsIAorICAgICAgICAgICAgICAgICAgICAgICBfQVBTRGVt
b0hvc3RzS2V5LCBfQVBTRW5jb2RlRGljdGlvbmFyeSwgX0FQU0Vudmlyb25tZW50RGVtbywgCisg
ICAgICAgICAgICAgICAgICAgICAgIF9BUFNFbnZpcm9ubWVudERldmVsb3BtZW50LCBfQVBTRW52
aXJvbm1lbnRQcm9kdWN0aW9uLCBfQVBTRW52aXJvbm1lbnRRQTIsIAorICAgICAgICAgICAgICAg
ICAgICAgICBfQVBTRXJyb3IsIF9BUFNFcnJvckRvbWFpbiwgX0FQU0ZvcmNlS2VlcEFsaXZlVjFL
ZXksIF9BUFNHZXRFbmFibGVDcml0aWNhbFJlbGlhYmlsaXR5LCAKKyAgICAgICAgICAgICAgICAg
ICAgICAgX0FQU0dldEVuYWJsZVN0YXR1c05vdGlmaWNhdGlvbnMsIF9BUFNHZXRFbmFibGVkVG9w
aWNzRnJvbVhQQ0RpY3Rpb25hcnksIAorICAgICAgICAgICAgICAgICAgICAgICBfQVBTR2V0SWdu
b3JlZFRvcGljc0Zyb21YUENEaWN0aW9uYXJ5LCBfQVBTR2V0Tm9uV2FraW5nVG9waWNzRnJvbVhQ
Q0RpY3Rpb25hcnksIAorICAgICAgICAgICAgICAgICAgICAgICBfQVBTR2V0T3Bwb3J0dW5pc3Rp
Y1RvcGljc0Zyb21YUENEaWN0aW9uYXJ5LCBfQVBTR2V0VXNlc0FwcExhdW5jaFN0YXRzLCAKKyAg
ICAgICAgICAgICAgICAgICAgICAgX0FQU0dldFhQQ0FycmF5RnJvbURpY3Rpb25hcnksIF9BUFNH
ZXRYUENCb29sRnJvbURpY3Rpb25hcnksIAorICAgICAgICAgICAgICAgICAgICAgICBfQVBTR2V0
WFBDQ29ubmVjdGlvbkNvbnRleHQsIF9BUFNHZXRYUENEYXRhRnJvbURpY3Rpb25hcnksIAorICAg
ICAgICAgICAgICAgICAgICAgICBfQVBTR2V0WFBDRGljdGlvbmFyeUZyb21EaWN0aW9uYXJ5LCBf
QVBTR2V0WFBDRG91YmxlRnJvbURpY3Rpb25hcnksIAorICAgICAgICAgICAgICAgICAgICAgICBf
QVBTR2V0WFBDSW50RnJvbURpY3Rpb25hcnksIF9BUFNHZXRYUENOU1VJbnRlZ2VyRnJvbURpY3Rp
b25hcnksIAorICAgICAgICAgICAgICAgICAgICAgICBfQVBTR2V0WFBDU3RyaW5nRnJvbURpY3Rp
b25hcnksIF9BUFNIZXhTdHJpbmdGcm9tTlNEYXRhLCBfQVBTSW5jb21pbmdNZXNzYWdlUHJpb3Jp
dHlTdHJpbmcsIAorICAgICAgICAgICAgICAgICAgICAgICBfQVBTSW5zZXJ0Qm9vbHNUb1hQQ0Rp
Y3Rpb25hcnksIF9BUFNJbnNlcnREYXRhc1RvWFBDRGljdGlvbmFyeSwgCisgICAgICAgICAgICAg
ICAgICAgICAgIF9BUFNJbnNlcnREb3VibGVzVG9YUENEaWN0aW9uYXJ5LCBfQVBTSW5zZXJ0RW5h
YmxlZFRvcGljc1RvWFBDRGljdGlvbmFyeSwgCisgICAgICAgICAgICAgICAgICAgICAgIF9BUFNJ
bnNlcnRJZ25vcmVkVG9waWNzVG9YUENEaWN0aW9uYXJ5LCBfQVBTSW5zZXJ0SW50c1RvWFBDRGlj
dGlvbmFyeSwgCisgICAgICAgICAgICAgICAgICAgICAgIF9BUFNJbnNlcnROU0FycmF5c1RvWFBD
RGljdGlvbmFyeSwgX0FQU0luc2VydE5TRGljdGlvbmFyaWVzVG9YUENEaWN0aW9uYXJ5LCAKKyAg
ICAgICAgICAgICAgICAgICAgICAgX0FQU0luc2VydE5TU3RyaW5nc1RvWFBDRGljdGlvbmFyeSwg
X0FQU0luc2VydE5TVUludGVnZXJzVG9YUENEaWN0aW9uYXJ5LCAKKyAgICAgICAgICAgICAgICAg
ICAgICAgX0FQU0luc2VydE5vbldha2luZ1RvcGljc1RvWFBDRGljdGlvbmFyeSwgX0FQU0luc2Vy
dE9wcG9ydHVuaXN0aWNUb3BpY3NUb1hQQ0RpY3Rpb25hcnksIAorICAgICAgICAgICAgICAgICAg
ICAgICBfQVBTSXNTVCwgX0FQU0xhdW5jaGRKb2JMYWJlbCwgX0FQU05TRGF0YUZyb21IZXhTdHJp
bmcsIF9BUFNQZXJBcHBUb2tlbkFwcElkc0tleSwgCisgICAgICAgICAgICAgICAgICAgICAgIF9B
UFNQZXJzaXN0ZW50VG9waWNzS2V5LCBfQVBTUG93ZXJMb2csIF9BUFNQcmV0dHlQcmludENvbGxl
Y3Rpb24sIAorICAgICAgICAgICAgICAgICAgICAgICBfQVBTUHJvcGVydHlMaXN0RnJvbU5TRGF0
YSwgX0FQU1B1YlN1YkVycm9yLCBfQVBTUHViU3ViRXJyb3JEb21haW4sIAorICAgICAgICAgICAg
ICAgICAgICAgICBfQVBTUHVzaFdha2VFbnRpdGxlbWVudCwgX0FQU1NhZmVBcnJheU9mU3RyaW5n
cywgX0FQU1NldFhQQ0Nvbm5lY3Rpb25Db250ZXh0LCAKKyAgICAgICAgICAgICAgICAgICAgICAg
X0FQU1N5c3RlbVVzZXJzS2V5LCBfQVBTVHJ1c3RBbGxIb3N0cywgX0FQU1VuZGVybHlpbmdFcnJv
ciwgCisgICAgICAgICAgICAgICAgICAgICAgIF9BUFNVc2VzQXBwTGF1bmNoU3RhdHNLZXksIF9B
UFNYUENDb25maWd1cmVDb25uZWN0aW9uLCBfQVBTWFBDQ29ubmVjdGlvblNldEV2ZW50SGFuZGxl
cnMsIAorICAgICAgICAgICAgICAgICAgICAgICBfQVBTWFBDQ3JlYXRlQ29ubmVjdGlvbkZvclNl
cnZpY2UsIF9BUFNYUENDcmVhdGVDb25uZWN0aW9uRm9yU2VydmljZVdpdGhRdWV1ZSwgCisgICAg
ICAgICAgICAgICAgICAgICAgIF9BUFNYUENDcmVhdGVTZXJ2ZXJDb25uZWN0aW9uLCBfQVBTWFBD
TWVzc2FnZVR5cGVLZXksIF9rQVBTVGFza0NsaWVudFNlcnZpY2VOYW1lIF0KKyAgICBvYmpjLWNs
YXNzZXM6ICAgIFsgQVBTQWNjZXNzQ2hlY2ssIEFQU0NoYW5uZWxTdWJzY3JpcHRpb25GYWlsdXJl
LCBBUFNDb25uZWN0aW9uLCAKKyAgICAgICAgICAgICAgICAgICAgICAgQVBTRE5TUmVxdWVzdCwg
QVBTRE5TUmVzcG9uc2UsIEFQU0luY29taW5nTWVzc2FnZSwgQVBTTG9nLCAKKyAgICAgICAgICAg
ICAgICAgICAgICAgQVBTTWVzc2FnZSwgQVBTT3V0Z29pbmdNZXNzYWdlLCBBUFNUYXNrQ2xpZW50
IF0KKyAgICBvYmpjLWl2YXJzOiAgICAgIFsgQVBTRE5TUmVxdWVzdC5fZW52aXJvbm1lbnQsIEFQ
U0ROU1JlcXVlc3QuX2ZsYWdzLCBBUFNETlNSZXF1ZXN0Ll9ob3N0bmFtZSwgCisgICAgICAgICAg
ICAgICAgICAgICAgIEFQU0ROU1JlcXVlc3QuX3JlcXVlc3RTdGFydFRpbWUsIEFQU0ROU1JlcXVl
c3QuX3Jlc3BvbnNlQmxvY2ssIAorICAgICAgICAgICAgICAgICAgICAgICBBUFNETlNSZXF1ZXN0
Ll90aW1lb3V0LCBBUFNETlNSZXNwb25zZS5faG9zdG5hbWUsIEFQU0ROU1Jlc3BvbnNlLl9pcHY0
QWRkcmVzcywgCisgICAgICAgICAgICAgICAgICAgICAgIEFQU0ROU1Jlc3BvbnNlLl9pcHY2QWRk
cmVzcywgQVBTVGFza0NsaWVudC5fY2xpZW50UXVldWUsIEFQU1Rhc2tDbGllbnQuX2Nvbm5lY3Rp
b24sIAorICAgICAgICAgICAgICAgICAgICAgICBBUFNUYXNrQ2xpZW50Ll9lbnZpcm9ubWVudCwg
QVBTVGFza0NsaWVudC5fb3V0c3RhbmRpbmdETlNSZXF1ZXN0cyBdCisuLi4K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>450378</attachid>
            <date>2022-01-30 21:51:56 -0800</date>
            <delta_ts>2022-01-31 12:21:36 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-235856-20220130215155.patch</filename>
            <type>text/plain</type>
            <size>53903</size>
            <attacher name="Ben Nham">nham</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg4ODA1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IDFiZjNjNDYwZmJkNTk3MjkyMmMxZTRk
YjM1MDM4ZTgxY2ZkM2I0YWUuLmU5ZTNmZGIxMzQ1Zjc0Mzg4ZWJmYTkwMTYwOGFmNmQ0MDUyYTFm
NDYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMTQgQEAKKzIwMjItMDEtMzAgIEJlbiBOaGFtICA8bmhhbUBhcHBs
ZS5jb20+CisKKyAgICAgICAgSW1wb3J0IEFQU0Nvbm5lY3Rpb24tcmVsYXRlZCBTUEkKKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIzNTg1NgorCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkZCBhIEhBVkUgbWFj
cm8gdG8gZ3VhcmQgc29tZSBvZiB0aGUgbmV3ZXIgU1BJIGluIEFQU0Nvbm5lY3Rpb24uCisKKyAg
ICAgICAgKiB3dGYvUGxhdGZvcm1IYXZlLmg6CisKIDIwMjItMDEtMzAgIERpZWdvIFBpbm8gR2Fy
Y2lhICA8ZHBpbm9AaWdhbGlhLmNvbT4KIAogICAgICAgICBbV2luQ2Fpcm9dICdmaWxlU3lzdGVt
UmVwcmVzZW50YXRpb24nIGlkZW50aWZpZXIgbm90IGZvdW5kIGluIFVSTC5jcHAKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKaW5k
ZXggNjRhNjgwNzY3ZTFlZDZmZmMyZWJjNjc1NTgyYTA2MTdiZjk3ZTQ2Yi4uNTI5NDRiY2NlNTIw
MTFjZmJjZWU4ZjA3OGFhMTdmZGJhOGNiMTUxMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9D
aGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKQEAgLTEsMyArMSw1NCBAQAor
MjAyMi0wMS0zMCAgQmVuIE5oYW0gIDxuaGFtQGFwcGxlLmNvbT4KKworICAgICAgICBJbXBvcnQg
QVBTQ29ubmVjdGlvbi1yZWxhdGVkIFNQSQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9MjM1ODU2CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChP
T1BTISkuCisKKyAgICAgICAgVGhpcyBpbXBvcnRzIHRoZSBTUEkgZGVjbGFyYXRpb25zIG5lY2Vz
c2FyeSB0byBidWlsZCBhZ2FpbnN0IEFwcGxlUHVzaFNlcnZpY2UgaW4gV2ViS2l0LiBJdAorICAg
ICAgICBhbHNvIGluY2x1ZGVzIGEgUHVzaFNlcnZpY2VDb25uZWN0aW9uIGludGVyZmFjZSB0aGF0
IGNhbiBzaXQgaW4gZnJvbnQgb2YgQVBTQ29ubmVjdGlvbiwgYW5kCisgICAgICAgIGEgZmFrZSBp
bnRlcmZhY2UgdGhhdCB3aWxsIGJlIGZsZXNoZWQgb3V0IGZvciB0ZXN0aW5nIHB1cnBvc2VzLgor
CisgICAgICAgICogQ29uZmlndXJhdGlvbnMvV2ViS2l0LnhjY29uZmlnOgorICAgICAgICAqIFBs
YXRmb3JtL3NwaS9Db2NvYS9BcHBsZVB1c2hTZXJ2aWNlU1BJLmg6IEFkZGVkLgorICAgICAgICAq
IFdlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAqIHdlYnB1c2hkL0Fw
cGxlUHVzaFNlcnZpY2VDb25uZWN0aW9uLmg6IEFkZGVkLgorICAgICAgICAqIHdlYnB1c2hkL0Fw
cGxlUHVzaFNlcnZpY2VDb25uZWN0aW9uLm1tOiBBZGRlZC4KKyAgICAgICAgKC1bX1dLQVBTQ29u
bmVjdGlvbkRlbGVnYXRlIGluaXRXaXRoQ29ubmVjdGlvbjpdKToKKyAgICAgICAgKC1bX1dLQVBT
Q29ubmVjdGlvbkRlbGVnYXRlIGNvbm5lY3Rpb246ZGlkUmVjZWl2ZVB1YmxpY1Rva2VuOl0pOgor
ICAgICAgICAoLVtfV0tBUFNDb25uZWN0aW9uRGVsZWdhdGUgY29ubmVjdGlvbjpkaWRSZWNlaXZl
SW5jb21pbmdNZXNzYWdlOl0pOgorICAgICAgICAoV2ViUHVzaEQ6OkFwcGxlUHVzaFNlcnZpY2VD
b25uZWN0aW9uOjpBcHBsZVB1c2hTZXJ2aWNlQ29ubmVjdGlvbik6CisgICAgICAgIChXZWJQdXNo
RDo6bWFrZVRva2VuSW5mbyk6CisgICAgICAgIChXZWJQdXNoRDo6QXBwbGVQdXNoU2VydmljZUNv
bm5lY3Rpb246OnN1YnNjcmliZSk6CisgICAgICAgIChXZWJQdXNoRDo6QXBwbGVQdXNoU2Vydmlj
ZUNvbm5lY3Rpb246OnVuc3Vic2NyaWJlKToKKyAgICAgICAgKFdlYlB1c2hEOjpBcHBsZVB1c2hT
ZXJ2aWNlQ29ubmVjdGlvbjo6ZW5hYmxlZFRvcGljcyk6CisgICAgICAgIChXZWJQdXNoRDo6QXBw
bGVQdXNoU2VydmljZUNvbm5lY3Rpb246Omlnbm9yZWRUb3BpY3MpOgorICAgICAgICAoV2ViUHVz
aEQ6OkFwcGxlUHVzaFNlcnZpY2VDb25uZWN0aW9uOjpvcHBvcnR1bmlzdGljVG9waWNzKToKKyAg
ICAgICAgKFdlYlB1c2hEOjpBcHBsZVB1c2hTZXJ2aWNlQ29ubmVjdGlvbjo6bm9uV2FraW5nVG9w
aWNzKToKKyAgICAgICAgKFdlYlB1c2hEOjpBcHBsZVB1c2hTZXJ2aWNlQ29ubmVjdGlvbjo6c2V0
RW5hYmxlZFRvcGljcyk6CisgICAgICAgIChXZWJQdXNoRDo6QXBwbGVQdXNoU2VydmljZUNvbm5l
Y3Rpb246OnNldElnbm9yZWRUb3BpY3MpOgorICAgICAgICAoV2ViUHVzaEQ6OkFwcGxlUHVzaFNl
cnZpY2VDb25uZWN0aW9uOjpzZXRPcHBvcnR1bmlzdGljVG9waWNzKToKKyAgICAgICAgKFdlYlB1
c2hEOjpBcHBsZVB1c2hTZXJ2aWNlQ29ubmVjdGlvbjo6c2V0Tm9uV2FraW5nVG9waWNzKToKKyAg
ICAgICAgKFdlYlB1c2hEOjpBcHBsZVB1c2hTZXJ2aWNlQ29ubmVjdGlvbjo6c2V0VG9waWNMaXN0
cyk6CisgICAgICAgICogd2VicHVzaGQvRmFrZVB1c2hTZXJ2aWNlQ29ubmVjdGlvbi5oOiBBZGRl
ZC4KKyAgICAgICAgKiB3ZWJwdXNoZC9GYWtlUHVzaFNlcnZpY2VDb25uZWN0aW9uLm1tOiBBZGRl
ZC4KKyAgICAgICAgKFdlYlB1c2hEOjpGYWtlUHVzaFNlcnZpY2VDb25uZWN0aW9uOjpGYWtlUHVz
aFNlcnZpY2VDb25uZWN0aW9uKToKKyAgICAgICAgKFdlYlB1c2hEOjpGYWtlUHVzaFNlcnZpY2VD
b25uZWN0aW9uOjpzdWJzY3JpYmUpOgorICAgICAgICAoV2ViUHVzaEQ6OkZha2VQdXNoU2Vydmlj
ZUNvbm5lY3Rpb246OnVuc3Vic2NyaWJlKToKKyAgICAgICAgKFdlYlB1c2hEOjpGYWtlUHVzaFNl
cnZpY2VDb25uZWN0aW9uOjplbmFibGVkVG9waWNzKToKKyAgICAgICAgKFdlYlB1c2hEOjpGYWtl
UHVzaFNlcnZpY2VDb25uZWN0aW9uOjppZ25vcmVkVG9waWNzKToKKyAgICAgICAgKFdlYlB1c2hE
OjpGYWtlUHVzaFNlcnZpY2VDb25uZWN0aW9uOjpvcHBvcnR1bmlzdGljVG9waWNzKToKKyAgICAg
ICAgKFdlYlB1c2hEOjpGYWtlUHVzaFNlcnZpY2VDb25uZWN0aW9uOjpub25XYWtpbmdUb3BpY3Mp
OgorICAgICAgICAoV2ViUHVzaEQ6OkZha2VQdXNoU2VydmljZUNvbm5lY3Rpb246OnNldEVuYWJs
ZWRUb3BpY3MpOgorICAgICAgICAoV2ViUHVzaEQ6OkZha2VQdXNoU2VydmljZUNvbm5lY3Rpb246
OnNldElnbm9yZWRUb3BpY3MpOgorICAgICAgICAoV2ViUHVzaEQ6OkZha2VQdXNoU2VydmljZUNv
bm5lY3Rpb246OnNldE9wcG9ydHVuaXN0aWNUb3BpY3MpOgorICAgICAgICAoV2ViUHVzaEQ6OkZh
a2VQdXNoU2VydmljZUNvbm5lY3Rpb246OnNldE5vbldha2luZ1RvcGljcyk6CisgICAgICAgIChX
ZWJQdXNoRDo6RmFrZVB1c2hTZXJ2aWNlQ29ubmVjdGlvbjo6c2V0VG9waWNMaXN0cyk6CisgICAg
ICAgICogd2VicHVzaGQvUHVzaFNlcnZpY2VDb25uZWN0aW9uLmg6IEFkZGVkLgorICAgICAgICAq
IHdlYnB1c2hkL1B1c2hTZXJ2aWNlQ29ubmVjdGlvbi5tbTogQWRkZWQuCisgICAgICAgIChXZWJQ
dXNoRDo6UHVzaFNlcnZpY2VDb25uZWN0aW9uOjpzdGFydExpc3RlbmluZ0ZvclB1c2hNZXNzYWdl
cyk6CisgICAgICAgIChXZWJQdXNoRDo6UHVzaFNlcnZpY2VDb25uZWN0aW9uOjpkaWRSZWNlaXZl
UHVzaE1lc3NhZ2UpOgorCiAyMDIyLTAxLTMwICBSeW9zdWtlIE5pd2EgIDxybml3YUB3ZWJraXQu
b3JnPgogCiAgICAgICAgIERlbGV0ZSBjb2RlIGZvciBrZXlnZW4gZWxlbWVudApkaWZmIC0tZ2l0
IGEvU291cmNlL1dURi93dGYvUGxhdGZvcm1IYXZlLmggYi9Tb3VyY2UvV1RGL3d0Zi9QbGF0Zm9y
bUhhdmUuaAppbmRleCBhMDQ3OThlM2I0MGFmNGRkYzJiMDkwOGUzNjk1NTVkNTQwNjY4ZDMzLi44
YmE2OWU2YWI1ZDYzMzc4MTcwZDEzYzI2MzMzOGVhYzVjZTBhNjVmIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV1RGL3d0Zi9QbGF0Zm9ybUhhdmUuaAorKysgYi9Tb3VyY2UvV1RGL3d0Zi9QbGF0Zm9ybUhh
dmUuaApAQCAtMTE2MywzICsxMTYzLDggQEAKICAgICB8fCAoUExBVEZPUk0oV0FUQ0hPUykgJiYg
X19XQVRDSF9PU19WRVJTSU9OX01BWF9BTExPV0VEID49IDgwNTAwKQogI2RlZmluZSBIQVZFX0NG
TkVUV09SS19ESVNBQkxFX0NBQ0hFX1NQSSAxCiAjZW5kaWYKKworI2lmICgoUExBVEZPUk0oTUFD
KSAmJiBfX01BQ19PU19YX1ZFUlNJT05fTUlOX1JFUVVJUkVEID49IDEzMDAwMCkgXAorICAgIHx8
IChQTEFURk9STShJT1MpICYmIF9fSVBIT05FX09TX1ZFUlNJT05fTUlOX1JFUVVJUkVEID49IDE2
MDAwMCkpCisjZGVmaW5lIEhBVkVfQVBQTEVfUFVTSF9TRVJWSUNFX1VSTF9UT0tFTl9TVVBQT1JU
IDEKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9Db25maWd1cmF0aW9ucy9XZWJL
aXQueGNjb25maWcgYi9Tb3VyY2UvV2ViS2l0L0NvbmZpZ3VyYXRpb25zL1dlYktpdC54Y2NvbmZp
ZwppbmRleCBkNDQ5MzFiMzgyODNmM2NjMTFlMTNhNTEwYjM4N2QyMTYzYTkxMDEwLi40ZDc1OGRl
MjkzN2IzM2JhNWYzMWJhZGRkMzA3ZWRmYjgzZjcwODU5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L0NvbmZpZ3VyYXRpb25zL1dlYktpdC54Y2NvbmZpZworKysgYi9Tb3VyY2UvV2ViS2l0L0Nv
bmZpZ3VyYXRpb25zL1dlYktpdC54Y2NvbmZpZwpAQCAtNTQsNiArNTQsMTMgQEAgV0tfQUNDRVNT
SUJJTElUWV9MREZMQUdTX0NPQ09BX1RPVUNIX1lFUyA9IC1sQWNjZXNzaWJpbGl0eTsKIFdLX0FD
Q0VTU0lCSUxJVFlfTERGTEFHU19DT0NPQV9UT1VDSF9OTyA9ICQoV0tfQUNDRVNTSUJJTElUWV9M
REZMQUdTJChXS19NQUNPU18xMDE0KSk7CiBXS19BQ0NFU1NJQklMSVRZX0xERkxBR1NfTUFDT1Nf
U0lOQ0VfMTAxNCA9IC13ZWFrX2xpYnJhcnkgL3Vzci9saWIvbGliQWNjZXNzaWJpbGl0eS5keWxp
YjsKIAorV0tfQVBQTEVfUFVTSF9TRVJWSUNFX0xERkxBR1MgPSAkKFdLX0FQUExFX1BVU0hfU0VS
VklDRV9MREZMQUdTXyQoV0tfUExBVEZPUk1fTkFNRSkpOworV0tfQVBQTEVfUFVTSF9TRVJWSUNF
X0xERkxBR1NfaXBob25lb3MgPSAkKFdLX0FQUExFX1BVU0hfU0VSVklDRV9MREZMQUdTJChXS19J
T1NfMTUpKTsKK1dLX0FQUExFX1BVU0hfU0VSVklDRV9MREZMQUdTX2lwaG9uZXNpbXVsYXRvciA9
ICQoV0tfQVBQTEVfUFVTSF9TRVJWSUNFX0xERkxBR1MkKFdLX0lPU18xNSkpOworV0tfQVBQTEVf
UFVTSF9TRVJWSUNFX0xERkxBR1NfSU9TX1NJTkNFXzE1ID0gLWZyYW1ld29yayBBcHBsZVB1c2hT
ZXJ2aWNlOworV0tfQVBQTEVfUFVTSF9TRVJWSUNFX0xERkxBR1NfbWFjb3N4ID0gJChXS19BUFBM
RV9QVVNIX1NFUlZJQ0VfTERGTEFHUyQoV0tfTUFDT1NfMTIwMCkpOworV0tfQVBQTEVfUFVTSF9T
RVJWSUNFX0xERkxBR1NfTUFDT1NfU0lOQ0VfMTIwMCA9IC1mcmFtZXdvcmsgQXBwbGVQdXNoU2Vy
dmljZTsKKwogV0tfQVBQS0lUX0xERkxBR1MgPSAkKFdLX0FQUEtJVF9MREZMQUdTXyQoV0tfUExB
VEZPUk1fTkFNRSkpOwogV0tfQVBQS0lUX0xERkxBR1NfbWFjb3N4ID0gLWZyYW1ld29yayBBcHBL
aXQ7CiBXS19BUFBLSVRfTERGTEFHU19tYWNjYXRhbHlzdCA9IC1mcmFtZXdvcmsgQXBwS2l0OwpA
QCAtMTU1LDcgKzE2Miw3IEBAIFdLX0xJQk5FVFdPUktFWFRFTlNJT05fTERGTEFHU19tYWNjYXRh
bHlzdCA9IC1sbmV0d29ya2V4dGVuc2lvbjsKIFdLX0xJQk5FVFdPUktFWFRFTlNJT05fTERGTEFH
U19tYWNvc3ggPSAtd2Vha19saWJyYXJ5IC91c3IvbGliL2xpYm5ldHdvcmtleHRlbnNpb24uZHls
aWI7CiBXS19MSUJORVRXT1JLRVhURU5TSU9OX0xERkxBR1NfdHZvcyA9IDsKIAotRlJBTUVXT1JL
X0FORF9MSUJSQVJZX0xERkxBR1MgPSAtbG9iamMgLWZyYW1ld29yayBDRk5ldHdvcmsgLWZyYW1l
d29yayBDb3JlQXVkaW8gLWZyYW1ld29yayBDb3JlRm91bmRhdGlvbiAtZnJhbWV3b3JrIENvcmVH
cmFwaGljcyAtZnJhbWV3b3JrIENvcmVUZXh0IC1mcmFtZXdvcmsgRm91bmRhdGlvbiAtZnJhbWV3
b3JrIEltYWdlSU8gLWZyYW1ld29yayBJT0tpdCAtZnJhbWV3b3JrIElPU3VyZmFjZSAtZnJhbWV3
b3JrIFdlYktpdExlZ2FjeSAtbG5ldHdvcmsgLWZyYW1ld29yayBNZXRhbCAkKFdLX0FDQ0VTU0lC
SUxJVFlfTERGTEFHUykgJChXS19BUFBLSVRfTERGTEFHUykgJChXS19CQUNLQk9BUkRfU0VSVklD
RVNfTERGTEFHUykgJChXS19SVU5OSU5HQk9BUkRfU0VSVklDRVNfTERGTEFHUykgJChXS19BVVRI
S0lUX0xERkxBR1MpICQoV0tfQ0FSQk9OX0xERkxBR1MpICQoV0tfQ09OVEFDVFNfTERGTEFHUykg
JChXS19DT1JFX1BSRURJQ1RJT05fTERGTEFHUykgJChXS19DT1JFX1NFUlZJQ0VTX0xERkxBR1Mp
ICQoV0tfR1JBUEhJQ1NfU0VSVklDRVNfTERGTEFHUykgJChXS19MSUJORVRXT1JLRVhURU5TSU9O
X0xERkxBR1MpICQoV0tfTElCU0FOREJPWF9MREZMQUdTKSAkKFdLX0xJQldFQlJUQ19MREZMQUdT
KSAkKFdLX01PQklMRV9DT1JFX1NFUlZJQ0VTX0xERkxBR1MpICQoV0tfTU9CSUxFX0dFU1RBTFRf
TERGTEFHUykgJChXS19QREZLSVRfTERGTEFHUykgJChXS19QUk9UT1RZUEVfVE9PTFNfTERGTEFH
UykgJChXS19TQUZFX0JST1dTSU5HX0xERkxBR1MpICQoV0tfU0VDVVJJVFlfSU5URVJGQUNFX0xE
RkxBR1MpICQoV0tfVUlLSVRfTERGTEFHUykgJChXS19VTklGT1JNX1RZUEVfSURFTlRJRklFUlNf
TERGTEFHUykgJChXS19VUkxfRk9STUFUVElOR19MREZMQUdTKSAkKFdLX1dFQklOU1BFQ1RPUlVJ
X0xERkxBR1MpICQoV0tfQ09PUkRJTkFUT1JfTERGTEFHUyk7CitGUkFNRVdPUktfQU5EX0xJQlJB
UllfTERGTEFHUyA9IC1sb2JqYyAtZnJhbWV3b3JrIENGTmV0d29yayAtZnJhbWV3b3JrIENvcmVB
dWRpbyAtZnJhbWV3b3JrIENvcmVGb3VuZGF0aW9uIC1mcmFtZXdvcmsgQ29yZUdyYXBoaWNzIC1m
cmFtZXdvcmsgQ29yZVRleHQgLWZyYW1ld29yayBGb3VuZGF0aW9uIC1mcmFtZXdvcmsgSW1hZ2VJ
TyAtZnJhbWV3b3JrIElPS2l0IC1mcmFtZXdvcmsgSU9TdXJmYWNlIC1mcmFtZXdvcmsgV2ViS2l0
TGVnYWN5IC1sbmV0d29yayAtZnJhbWV3b3JrIE1ldGFsICQoV0tfQUNDRVNTSUJJTElUWV9MREZM
QUdTKSAkKFdLX0FQUEtJVF9MREZMQUdTKSAkKFdLX0FQUExFX1BVU0hfU0VSVklDRV9MREZMQUdT
KSAkKFdLX0JBQ0tCT0FSRF9TRVJWSUNFU19MREZMQUdTKSAkKFdLX1JVTk5JTkdCT0FSRF9TRVJW
SUNFU19MREZMQUdTKSAkKFdLX0FVVEhLSVRfTERGTEFHUykgJChXS19DQVJCT05fTERGTEFHUykg
JChXS19DT05UQUNUU19MREZMQUdTKSAkKFdLX0NPUkVfUFJFRElDVElPTl9MREZMQUdTKSAkKFdL
X0NPUkVfU0VSVklDRVNfTERGTEFHUykgJChXS19HUkFQSElDU19TRVJWSUNFU19MREZMQUdTKSAk
KFdLX0xJQk5FVFdPUktFWFRFTlNJT05fTERGTEFHUykgJChXS19MSUJTQU5EQk9YX0xERkxBR1Mp
ICQoV0tfTElCV0VCUlRDX0xERkxBR1MpICQoV0tfTU9CSUxFX0NPUkVfU0VSVklDRVNfTERGTEFH
UykgJChXS19NT0JJTEVfR0VTVEFMVF9MREZMQUdTKSAkKFdLX1BERktJVF9MREZMQUdTKSAkKFdL
X1BST1RPVFlQRV9UT09MU19MREZMQUdTKSAkKFdLX1NBRkVfQlJPV1NJTkdfTERGTEFHUykgJChX
S19TRUNVUklUWV9JTlRFUkZBQ0VfTERGTEFHUykgJChXS19VSUtJVF9MREZMQUdTKSAkKFdLX1VO
SUZPUk1fVFlQRV9JREVOVElGSUVSU19MREZMQUdTKSAkKFdLX1VSTF9GT1JNQVRUSU5HX0xERkxB
R1MpICQoV0tfV0VCSU5TUEVDVE9SVUlfTERGTEFHUykgJChXS19DT09SRElOQVRPUl9MREZMQUdT
KTsKIAogLy8gUHJldmVudCBDKysgc3RhbmRhcmQgbGlicmFyeSBiYXNpY19zdHJpbmdzdHJlYW0s
IG9wZXJhdG9yIG5ldywgZGVsZXRlIGFuZCB0aGVpciByZWxhdGVkIGV4Y2VwdGlvbiB0eXBlcyBm
cm9tIGJlaW5nIGV4cG9ydGVkIGFzIHdlYWsgc3ltYm9scy4KIFVORVhQT1JURURfU1lNQk9MX0xE
RkxBR1MgPSAtV2wsLXVuZXhwb3J0ZWRfc3ltYm9sIC1XbCxfX1pUSVN0OWJhZF9hbGxvYyAtV2ws
LXVuZXhwb3J0ZWRfc3ltYm9sIC1XbCxfX1pUSVN0OWV4Y2VwdGlvbiAtV2wsLXVuZXhwb3J0ZWRf
c3ltYm9sIC1XbCxfX1pUU1N0OWJhZF9hbGxvYyAtV2wsLXVuZXhwb3J0ZWRfc3ltYm9sIC1XbCxf
X1pUU1N0OWV4Y2VwdGlvbiAtV2wsLXVuZXhwb3J0ZWRfc3ltYm9sIC1XbCxfX1pkbFB2U18gLVds
LC11bmV4cG9ydGVkX3N5bWJvbCAtV2wsX19abndtUHYgLVdsLC11bmV4cG9ydGVkX3N5bWJvbCAt
V2wsX19abndtIC1XbCwtdW5leHBvcnRlZF9zeW1ib2wgLVdsLF9fWlRWTlN0M19fMTE3YmFkX2Z1
bmN0aW9uX2NhbGxFIC1XbCwtdW5leHBvcnRlZF9zeW1ib2wgLVdsLF9fWlRDTlN0M19fMTE4YmFz
aWNfc3RyaW5nc3RyZWFtSWNOU18xMWNoYXJfdHJhaXRzSWNFRU5TXzlhbGxvY2F0b3JJY0VFRUUw
X05TXzEzYmFzaWNfaXN0cmVhbUljUzJfRUUgLVdsLC11bmV4cG9ydGVkX3N5bWJvbCAtV2wsX19a
VENOU3QzX18xMThiYXNpY19zdHJpbmdzdHJlYW1JY05TXzExY2hhcl90cmFpdHNJY0VFTlNfOWFs
bG9jYXRvckljRUVFRTBfTlNfMTRiYXNpY19pb3N0cmVhbUljUzJfRUUgLVdsLC11bmV4cG9ydGVk
X3N5bWJvbCAtV2wsX19aVENOU3QzX18xMThiYXNpY19zdHJpbmdzdHJlYW1JY05TXzExY2hhcl90
cmFpdHNJY0VFTlNfOWFsbG9jYXRvckljRUVFRTE2X05TXzEzYmFzaWNfb3N0cmVhbUljUzJfRUUg
LVdsLC11bmV4cG9ydGVkX3N5bWJvbCAtV2wsX19aVFROU3QzX18xMThiYXNpY19zdHJpbmdzdHJl
YW1JY05TXzExY2hhcl90cmFpdHNJY0VFTlNfOWFsbG9jYXRvckljRUVFRSAtV2wsLXVuZXhwb3J0
ZWRfc3ltYm9sIC1XbCxfX1pUVk5TdDNfXzExNWJhc2ljX3N0cmluZ2J1ZkljTlNfMTFjaGFyX3Ry
YWl0c0ljRUVOU185YWxsb2NhdG9ySWNFRUVFIC1XbCwtdW5leHBvcnRlZF9zeW1ib2wgLVdsLF9f
WlRWTlN0M19fMTE4YmFzaWNfc3RyaW5nc3RyZWFtSWNOU18xMWNoYXJfdHJhaXRzSWNFRU5TXzlh
bGxvY2F0b3JJY0VFRUUgLVdsLC11bmV4cG9ydGVkX3N5bWJvbCAtV2wsX19aVENOU3QzX18xMThi
YXNpY19zdHJpbmdzdHJlYW1JY05TXzExY2hhcl90cmFpdHNJY0VFTlNfOWFsbG9jYXRvckljRUVF
RThfTlNfMTNiYXNpY19vc3RyZWFtSWNTMl9FRTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
UGxhdGZvcm0vc3BpL0NvY29hL0FwcGxlUHVzaFNlcnZpY2VTUEkuaCBiL1NvdXJjZS9XZWJLaXQv
UGxhdGZvcm0vc3BpL0NvY29hL0FwcGxlUHVzaFNlcnZpY2VTUEkuaApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi41NWY2
YWQ2ZjYzNjkzZWUxMGIxYWFjZDQzMWQ5ZTQ3MWNlYWQ4NjIzCi0tLSAvZGV2L251bGwKKysrIGIv
U291cmNlL1dlYktpdC9QbGF0Zm9ybS9zcGkvQ29jb2EvQXBwbGVQdXNoU2VydmljZVNQSS5oCkBA
IC0wLDAgKzEsMTAyIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIyIEFwcGxlIEluYy4gQWxs
IHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJj
ZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJl
IHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJl
IG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0
aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4g
YmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
IGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3Zp
ZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJ
REVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQg
QU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFO
RCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElO
IE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElB
QkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBM
QVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7
IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBU
SU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRI
RVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcg
TkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRI
RSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lC
SUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lmIFVTRShBUFBMRV9JTlRFUk5BTF9TREsp
CisKKyNpbXBvcnQgPEFwcGxlUHVzaFNlcnZpY2UvQXBwbGVQdXNoU2VydmljZS5oPgorCisjZWxz
ZSAvLyBpZiAhVVNFKEFQUExFX0lOVEVSTkFMX1NESykKKworI2ltcG9ydCA8Rm91bmRhdGlvbi9G
b3VuZGF0aW9uLmg+CisKK05TX0FTU1VNRV9OT05OVUxMX0JFR0lOCisKK1dURl9FWFRFUk5fQ19C
RUdJTgorZXh0ZXJuIE5TU3RyaW5nICpjb25zdCBBUFNFbnZpcm9ubWVudFByb2R1Y3Rpb247CisK
K3R5cGVkZWYgTlNfRU5VTShOU0ludGVnZXIsIEFQU1VSTFRva2VuRXJyb3JDb2RlKSB7CisgICAg
QVBTVVJMVG9rZW5FcnJvckNvZGVJbnZhbGlkQXJndW1lbnRzID0gMTAwLAorICAgIEFQU1VSTFRv
a2VuRXJyb3JDb2RlWFBDRXJyb3IgPSAxMDEsCisgICAgQVBTVVJMVG9rZW5FcnJvckNvZGVUb3Bp
Y1NhbHRpbmdGYWlsZWQgPSAxMDIsCisgICAgQVBTVVJMVG9rZW5FcnJvckNvZGVUb3BpY0FscmVh
ZHlJbkZpbHRlciA9IDEwMywKK307CitXVEZfRVhURVJOX0NfRU5ECisKK0BjbGFzcyBBUFNDb25u
ZWN0aW9uOworQHByb3RvY29sIEFQU0Nvbm5lY3Rpb25EZWxlZ2F0ZTsKKworQGludGVyZmFjZSBB
UFNNZXNzYWdlIDogTlNPYmplY3Q8TlNDb2Rpbmc+CitAcHJvcGVydHkgKG5vbmF0b21pYywgcmV0
YWluKSBOU1N0cmluZyAqdG9waWM7CitAcHJvcGVydHkgKG5vbmF0b21pYywgcmV0YWluKSBOU0Rp
Y3Rpb25hcnkgKnVzZXJJbmZvOworQHByb3BlcnR5IChub25hdG9taWMsIGFzc2lnbikgTlNVSW50
ZWdlciBpZGVudGlmaWVyOworQGVuZAorCitAaW50ZXJmYWNlIEFQU0luY29taW5nTWVzc2FnZSA6
IEFQU01lc3NhZ2UKK0BlbmQKKworI2lmIEhBVkUoQVBQTEVfUFVTSF9TRVJWSUNFX1VSTF9UT0tF
Tl9TVVBQT1JUKQorCitAaW50ZXJmYWNlIEFQU1VSTFRva2VuIDogTlNPYmplY3Q8TlNTZWN1cmVD
b2RpbmcsIE5TQ29weWluZz4KK0Bwcm9wZXJ0eSAobm9uYXRvbWljLCBzdHJvbmcpIE5TU3RyaW5n
ICp0b2tlblVSTDsKK0BlbmQKKworQGludGVyZmFjZSBBUFNVUkxUb2tlbkluZm8gOiBOU09iamVj
dDxOU1NlY3VyZUNvZGluZywgTlNDb3B5aW5nPgorLSAoaW5zdGFuY2V0eXBlKWluaXRXaXRoVG9w
aWM6KE5TU3RyaW5nICopdG9waWMgdmFwaWRQdWJsaWNLZXk6KG51bGxhYmxlIE5TRGF0YSAqKXZh
cGlkUHVibGljS2V5OworQGVuZAorCit0eXBlZGVmIHZvaWQoXkFQU0Nvbm5lY3Rpb25SZXF1ZXN0
VVJMVG9rZW5Db21wbGV0aW9uKShBUFNVUkxUb2tlbiAqIF9fbnVsbGFibGUgdG9rZW4sIE5TRXJy
b3IgKiBfX251bGxhYmxlIGVycm9yKTsKK3R5cGVkZWYgdm9pZCheQVBTQ29ubmVjdGlvbkludmFs
aWRhdGVVUkxUb2tlbkNvbXBsZXRpb24pKEJPT0wgc3VjY2VzcywgTlNFcnJvciAqIF9fbnVsbGFi
bGUgZXJyb3IpOworCisjZW5kaWYgLy8gSEFWRShBUFBMRV9QVVNIX1NFUlZJQ0VfVVJMX1RPS0VO
X1NVUFBPUlQpCisKK0BpbnRlcmZhY2UgQVBTQ29ubmVjdGlvbiA6IE5TT2JqZWN0CisKKy0gKGlu
c3RhbmNldHlwZSlpbml0V2l0aEVudmlyb25tZW50TmFtZTooTlNTdHJpbmcgKillbnZpcm9ubWVu
dE5hbWUgbmFtZWREZWxlZ2F0ZVBvcnQ6KG51bGxhYmxlIE5TU3RyaW5nICopbmFtZWREZWxlZ2F0
ZVBvcnQgcXVldWU6KGRpc3BhdGNoX3F1ZXVlX3QpcXVldWU7CisKKyNpZiBIQVZFKEFQUExFX1BV
U0hfU0VSVklDRV9VUkxfVE9LRU5fU1VQUE9SVCkKKy0gKHZvaWQpcmVxdWVzdFVSTFRva2VuRm9y
SW5mbzooQVBTVVJMVG9rZW5JbmZvICopaW5mbyBjb21wbGV0aW9uOihBUFNDb25uZWN0aW9uUmVx
dWVzdFVSTFRva2VuQ29tcGxldGlvbiljb21wbGV0aW9uOworLSAodm9pZClpbnZhbGlkYXRlVVJM
VG9rZW5Gb3JJbmZvOihBUFNVUkxUb2tlbkluZm8gKilpbmZvIGNvbXBsZXRpb246KEFQU0Nvbm5l
Y3Rpb25JbnZhbGlkYXRlVVJMVG9rZW5Db21wbGV0aW9uKWNvbXBsZXRpb247CisjZW5kaWYgLy8g
SEFWRShBUFBMRV9QVVNIX1NFUlZJQ0VfVVJMX1RPS0VOX1NVUFBPUlQpCisKK0Bwcm9wZXJ0eSAo
bm9uYXRvbWljLCByZWFkd3JpdGUsIGFzc2lnbiwgbnVsbGFibGUpIGlkPEFQU0Nvbm5lY3Rpb25E
ZWxlZ2F0ZT4gZGVsZWdhdGU7CisKK0Bwcm9wZXJ0eSAobm9uYXRvbWljLCByZWFkd3JpdGUsIHN0
cm9uZywgc2V0dGVyPV9zZXRFbmFibGVkVG9waWNzOiwgbnVsbGFibGUpIE5TQXJyYXk8TlNTdHJp
bmcgKj4gKmVuYWJsZWRUb3BpY3M7CitAcHJvcGVydHkgKG5vbmF0b21pYywgcmVhZHdyaXRlLCBz
dHJvbmcsIHNldHRlcj1fc2V0SWdub3JlZFRvcGljczosIG51bGxhYmxlKSBOU0FycmF5PE5TU3Ry
aW5nICo+ICppZ25vcmVkVG9waWNzOworQHByb3BlcnR5IChub25hdG9taWMsIHJlYWR3cml0ZSwg
c3Ryb25nLCBzZXR0ZXI9X3NldE9wcG9ydHVuaXN0aWNUb3BpY3M6LCBudWxsYWJsZSkgTlNBcnJh
eTxOU1N0cmluZyAqPiAqb3Bwb3J0dW5pc3RpY1RvcGljczsKK0Bwcm9wZXJ0eSAobm9uYXRvbWlj
LCByZWFkd3JpdGUsIHN0cm9uZywgc2V0dGVyPV9zZXROb25XYWtpbmdUb3BpY3M6LCBudWxsYWJs
ZSkgTlNBcnJheTxOU1N0cmluZyAqPiAqbm9uV2FraW5nVG9waWNzOworCistICh2b2lkKXNldEVu
YWJsZWRUb3BpY3M6KE5TQXJyYXk8TlNTdHJpbmcgKj4gKillbmFibGVkVG9waWNzIGlnbm9yZWRU
b3BpY3M6KE5TQXJyYXk8TlNTdHJpbmcgKj4gKilpZ25vcmVkVG9waWNzIG9wcG9ydHVuaXN0aWNU
b3BpY3M6KE5TQXJyYXk8TlNTdHJpbmcgKj4gKilvcHBvcnR1bmlzdGljVG9waWNzIG5vbldha2lu
Z1RvcGljczooTlNBcnJheTxOU1N0cmluZyAqPiAqKW5vbldha2luZ1RvcGljczsKKworQGVuZAor
CitAcHJvdG9jb2wgQVBTQ29ubmVjdGlvbkRlbGVnYXRlPE5TT2JqZWN0PgorLSAodm9pZCljb25u
ZWN0aW9uOihBUFNDb25uZWN0aW9uICopY29ubmVjdGlvbiBkaWRSZWNlaXZlUHVibGljVG9rZW46
KE5TRGF0YSAqKXB1YmxpY1Rva2VuOworQG9wdGlvbmFsCistICh2b2lkKWNvbm5lY3Rpb246KEFQ
U0Nvbm5lY3Rpb24gKiljb25uZWN0aW9uIGRpZFJlY2VpdmVJbmNvbWluZ01lc3NhZ2U6KEFQU0lu
Y29taW5nTWVzc2FnZSAqKW1lc3NhZ2U7CitAZW5kCisKK05TX0FTU1VNRV9OT05OVUxMX0VORAor
CisjZW5kaWYgLy8gIVVTRShBUFBMRV9JTlRFUk5BTF9TREspCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L1dlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNlL1dlYktpdC9X
ZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCA3NzkxMThiZDJmM2UwMzJjYTg3
YzA3NGQyZTZiMGRiZTU0OWI2N2ViLi44ZWU2NTQ5NDdjNDA5NzQwMjE0MTAyZGMzMzMzZGI1ZGE2
NmIxYzBmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYktpdC54Y29kZXByb2ovcHJvamVj
dC5wYnhwcm9qCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBi
eHByb2oKQEAgLTE5OTUsNiArMTk5NSwxMyBAQAogCQlFNUNCQTc2NzI3QTMxOEUxMDBERjc4NTgg
LyogVW5pZmllZFNvdXJjZTExOS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSBFNUNCQTc2MDI3QTMxODc5MDBERjc4NTggLyogVW5pZmllZFNvdXJjZTEx
OS5jcHAgKi87IH07CiAJCUU1Q0JBNzY4MjdBMzE4RTEwMERGNzg1OCAvKiBVbmlmaWVkU291cmNl
MTE3LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEU1
Q0JBNzYyMjdBMzE4NzkwMERGNzg1OCAvKiBVbmlmaWVkU291cmNlMTE3LmNwcCAqLzsgfTsKIAkJ
RTVERUZBNjgyNkY4RjQyNjAwQUI2OERCIC8qIFBob3Rvc1VJU1BJLmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFNURFRkE2NzI2RjhGNDI2MDBBQjY4REIg
LyogUGhvdG9zVUlTUEkuaCAqLzsgfTsKKwkJRUJBOEQzQUIyN0E1RTMxMzAwQ0I3OTAwIC8qIEFw
cGxlUHVzaFNlcnZpY2VTUEkuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IEVCQThEM0FBMjdBNUUzMTMwMENCNzkwMCAvKiBBcHBsZVB1c2hTZXJ2aWNlU1BJ
LmggKi87IH07CisJCUVCQThEM0IyMjdBNUUzM0YwMENCNzkwMCAvKiBBcHBsZVB1c2hTZXJ2aWNl
Q29ubmVjdGlvbi5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IEVCQThEM0FDMjdBNUUzM0UwMENCNzkwMCAvKiBBcHBsZVB1c2hTZXJ2aWNlQ29ubmVjdGlv
bi5tbSAqLzsgfTsKKwkJRUJBOEQzQjMyN0E1RTMzRjAwQ0I3OTAwIC8qIEZha2VQdXNoU2Vydmlj
ZUNvbm5lY3Rpb24uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IEVCQThEM0FEMjdBNUUzM0UwMENCNzkwMCAvKiBGYWtlUHVzaFNlcnZpY2VDb25uZWN0aW9u
LmggKi87IH07CisJCUVCQThEM0I0MjdBNUUzM0YwMENCNzkwMCAvKiBBcHBsZVB1c2hTZXJ2aWNl
Q29ubmVjdGlvbi5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gRUJBOEQzQUUyN0E1RTMzRjAwQ0I3OTAwIC8qIEFwcGxlUHVzaFNlcnZpY2VDb25uZWN0aW9u
LmggKi87IH07CisJCUVCQThEM0I1MjdBNUUzM0YwMENCNzkwMCAvKiBQdXNoU2VydmljZUNvbm5l
Y3Rpb24uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEVC
QThEM0FGMjdBNUUzM0YwMENCNzkwMCAvKiBQdXNoU2VydmljZUNvbm5lY3Rpb24uaCAqLzsgfTsK
KwkJRUJBOEQzQjYyN0E1RTMzRjAwQ0I3OTAwIC8qIEZha2VQdXNoU2VydmljZUNvbm5lY3Rpb24u
bW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFQkE4RDNC
MDI3QTVFMzNGMDBDQjc5MDAgLyogRmFrZVB1c2hTZXJ2aWNlQ29ubmVjdGlvbi5tbSAqLzsgfTsK
KwkJRUJBOEQzQjcyN0E1RTMzRjAwQ0I3OTAwIC8qIFB1c2hTZXJ2aWNlQ29ubmVjdGlvbi5tbSBp
biBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEVCQThEM0IxMjdB
NUUzM0YwMENCNzkwMCAvKiBQdXNoU2VydmljZUNvbm5lY3Rpb24ubW0gKi87IH07CiAJCUVEODJB
N0YyMTI4QzZGQUYwMDQ0NzdCMyAvKiBXS0J1bmRsZVBhZ2VPdmVybGF5LmggaW4gSGVhZGVycyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxQTIyRjBGRjEyODlGQ0Q5MDA4NUU3
NEYgLyogV0tCdW5kbGVQYWdlT3ZlcmxheS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0g
KFByaXZhdGUsICk7IH07IH07CiAJCUY0MDlCQTE4MUU2RTY0QkMwMDlEQTI4RSAvKiBXS0RyYWdE
ZXN0aW5hdGlvbkFjdGlvbi5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gRjQwOUJBMTcxRTZFNjRCMzAwOURBMjhFIC8qIFdLRHJhZ0Rlc3RpbmF0aW9uQWN0
aW9uLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJ
RjQyOTk1MDcyNzBFMjM0RDAwMzIyOThCIC8qIFN0cmVhbU1lc3NhZ2VSZWNlaXZlci5oIGluIEhl
YWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRjQyOTk1MDYyNzBFMjM0
QzAwMzIyOThCIC8qIFN0cmVhbU1lc3NhZ2VSZWNlaXZlci5oICovOyB9OwpAQCAtNjQzOSw2ICs2
NDQ2LDEzIEBACiAJCUU1REVGQTY3MjZGOEY0MjYwMEFCNjhEQiAvKiBQaG90b3NVSVNQSS5oICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jLmg7IHBhdGggPSBQaG90b3NVSVNQSS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owog
CQlFQjBEMzEyRDI3NUFFMTMzMDA4NjNEOEYgLyogY29tLmFwcGxlLndlYmtpdC53ZWJwdXNoZC5t
YWMucGxpc3QgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0LnBsaXN0LnhtbDsgcGF0aCA9IGNvbS5hcHBsZS53ZWJr
aXQud2VicHVzaGQubWFjLnBsaXN0OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlFQjBE
MzEyRTI3NUFFMTMzMDA4NjNEOEYgLyogY29tLmFwcGxlLndlYmtpdC53ZWJwdXNoZC5pb3MucGxp
c3QgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSB0ZXh0LnBsaXN0LnhtbDsgcGF0aCA9IGNvbS5hcHBsZS53ZWJraXQud2Vi
cHVzaGQuaW9zLnBsaXN0OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlFQkE4RDNBQTI3
QTVFMzEzMDBDQjc5MDAgLyogQXBwbGVQdXNoU2VydmljZVNQSS5oICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jLmg7IHBhdGggPSBBcHBsZVB1c2hTZXJ2aWNlU1BJLmg7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CisJCUVCQThEM0FDMjdBNUUzM0UwMENCNzkwMCAvKiBBcHBsZVB1c2hTZXJ2aWNl
Q29ubmVjdGlvbi5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IEFw
cGxlUHVzaFNlcnZpY2VDb25uZWN0aW9uLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owor
CQlFQkE4RDNBRDI3QTVFMzNFMDBDQjc5MDAgLyogRmFrZVB1c2hTZXJ2aWNlQ29ubmVjdGlvbi5o
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBGYWtlUHVzaFNlcnZpY2VDb25uZWN0
aW9uLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUVCQThEM0FFMjdBNUUzM0YwMENC
NzkwMCAvKiBBcHBsZVB1c2hTZXJ2aWNlQ29ubmVjdGlvbi5oICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jLmg7IHBhdGggPSBBcHBsZVB1c2hTZXJ2aWNlQ29ubmVjdGlvbi5oOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OworCQlFQkE4RDNBRjI3QTVFMzNGMDBDQjc5MDAgLyogUHVzaFNlcnZpY2VD
b25uZWN0aW9uLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFB1c2hTZXJ2aWNl
Q29ubmVjdGlvbi5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlFQkE4RDNCMDI3QTVF
MzNGMDBDQjc5MDAgLyogRmFrZVB1c2hTZXJ2aWNlQ29ubmVjdGlvbi5tbSAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IEZha2VQdXNoU2VydmljZUNvbm5lY3Rpb24ubW07
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUVCQThEM0IxMjdBNUUzM0YwMENCNzkwMCAv
KiBQdXNoU2VydmljZUNvbm5lY3Rpb24ubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpj
cHA7IHBhdGggPSBQdXNoU2VydmljZUNvbm5lY3Rpb24ubW07IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CiAJCUVDQTY4MEQzMUU2OTA0QjUwMDczMUQyMCAvKiBFeHRyYVByaXZhdGVTeW1ib2xz
Rm9yVEFQSS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBFeHRyYVByaXZhdGVT
eW1ib2xzRm9yVEFQSS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlFQ0JGQzFEQjFF
NkE0RDY2MDAwMzAwQzcgLyogRXh0cmFQdWJsaWNTeW1ib2xzRm9yVEFQSS5oICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBh
dGggPSBFeHRyYVB1YmxpY1N5bWJvbHNGb3JUQVBJLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CiAJCUYwMzY5Nzg3MTVGNEJGMDUwMEMzQTgwRSAvKiBXZWJDb2xvclBpY2tlci5jcHAgKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBXZWJDb2xvclBpY2tlci5jcHA7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC04NjM0LDYgKzg2NDgsNyBAQAogCQkJCTU3MkVC
QkRDMjUzOTIxODEwMDA1NTJCMyAvKiBBcHBBdHRlc3RTUEkuaCAqLywKIAkJCQk5NTY1MDgzNzI2
RDg3QTJCMDBFMTVDQjcgLyogQXBwbGVNZWRpYVNlcnZpY2VzU1BJLmggKi8sCiAJCQkJOTU2NTA4
MzgyNkQ4N0EyQjAwRTE1Q0I3IC8qIEFwcGxlTWVkaWFTZXJ2aWNlc1VJU1BJLmggKi8sCisJCQkJ
RUJBOEQzQUEyN0E1RTMxMzAwQ0I3OTAwIC8qIEFwcGxlUHVzaFNlcnZpY2VTUEkuaCAqLywKIAkJ
CQk1N0ZBQkIwRTI1ODE3Q0YwMDA1OURDOTUgLyogQXV0aGVudGljYXRpb25TZXJ2aWNlc0NvcmVT
UEkuaCAqLywKIAkJCQkxQTU3MDUxMDFCRTQxMEU1MDA4NzRBRjEgLyogQmxvY2tTUEkuaCAqLywK
IAkJCQlFNTA2MjA5MTI1NDIxMDIwMDBDNDMwOTEgLyogQ29udGFjdHNVSVNQSS5oICovLApAQCAt
MTAwNDQsOCArMTAwNTksMTIgQEAKIAkJCQk1MTdCNUY2MzI3NUE4RDVDMDAyREMyMkQgLyogd2Vi
cHVzaHRvb2wgKi8sCiAJCQkJNTE2MEU5NTQyNzRCODg3MTAwNTY3Mzg4IC8qIEFwcEJ1bmRsZVJl
cXVlc3QuaCAqLywKIAkJCQk1MTYwRTk1MzI3NEI4ODcxMDA1NjczODggLyogQXBwQnVuZGxlUmVx
dWVzdC5tbSAqLywKKwkJCQlFQkE4RDNBRTI3QTVFMzNGMDBDQjc5MDAgLyogQXBwbGVQdXNoU2Vy
dmljZUNvbm5lY3Rpb24uaCAqLywKKwkJCQlFQkE4RDNBQzI3QTVFMzNFMDBDQjc5MDAgLyogQXBw
bGVQdXNoU2VydmljZUNvbm5lY3Rpb24ubW0gKi8sCiAJCQkJRUIwRDMxMkUyNzVBRTEzMzAwODYz
RDhGIC8qIGNvbS5hcHBsZS53ZWJraXQud2VicHVzaGQuaW9zLnBsaXN0ICovLAogCQkJCUVCMEQz
MTJEMjc1QUUxMzMwMDg2M0Q4RiAvKiBjb20uYXBwbGUud2Via2l0LndlYnB1c2hkLm1hYy5wbGlz
dCAqLywKKwkJCQlFQkE4RDNBRDI3QTVFMzNFMDBDQjc5MDAgLyogRmFrZVB1c2hTZXJ2aWNlQ29u
bmVjdGlvbi5oICovLAorCQkJCUVCQThEM0IwMjdBNUUzM0YwMENCNzkwMCAvKiBGYWtlUHVzaFNl
cnZpY2VDb25uZWN0aW9uLm1tICovLAogCQkJCTUxRjdCQjc1Mjc0NDk4QkIwMEM0NUE3MiAvKiBN
b2NrQXBwQnVuZGxlRm9yVGVzdGluZy5oICovLAogCQkJCTUxRjdCQjc0Mjc0NDk4QkEwMEM0NUE3
MiAvKiBNb2NrQXBwQnVuZGxlRm9yVGVzdGluZy5tbSAqLywKIAkJCQk1MTYwRTk1QzI3NEMyQTAz
MDA1NjczODggLyogTW9ja0FwcEJ1bmRsZVJlZ2lzdHJ5LmggKi8sCkBAIC0xMDA1NCw2ICsxMDA3
Myw4IEBACiAJCQkJNTE2MEU5NTgyNzRDMEQ4ODAwNTY3Mzg4IC8qIFB1c2hBcHBCdW5kbGUubW0g
Ki8sCiAJCQkJNTFGN0JCNzkyNzQ0QzUwNzAwQzQ1QTcyIC8qIFB1c2hDbGllbnRDb25uZWN0aW9u
LmggKi8sCiAJCQkJNTFGN0JCN0EyNzQ0QzUwNzAwQzQ1QTcyIC8qIFB1c2hDbGllbnRDb25uZWN0
aW9uLm1tICovLAorCQkJCUVCQThEM0FGMjdBNUUzM0YwMENCNzkwMCAvKiBQdXNoU2VydmljZUNv
bm5lY3Rpb24uaCAqLywKKwkJCQlFQkE4RDNCMTI3QTVFMzNGMDBDQjc5MDAgLyogUHVzaFNlcnZp
Y2VDb25uZWN0aW9uLm1tICovLAogCQkJCTUxN0I1Rjc3Mjc1RTk3OTUwMDJEQzIyRCAvKiB3ZWJw
dXNoZC5jcHAgKi8sCiAJCQkJNTEyQ0Q2OUQyNzIzMzkzQTAwRjdGOEVDIC8qIFdlYlB1c2hEYWVt
b24uaCAqLywKIAkJCQk1MTJDRDY5RTI3MjMzOTNBMDBGN0Y4RUMgLyogV2ViUHVzaERhZW1vbi5t
bSAqLywKQEAgLTEyODY1LDYgKzEyODg2LDggQEAKIAkJCQlGNDhEMkE4NTIxNTgzQTdFMDBDNjc1
MkIgLyogQXBwS2l0U1BJLmggaW4gSGVhZGVycyAqLywKIAkJCQk5NTY1MDgzOTI2RDg3QTJCMDBF
MTVDQjcgLyogQXBwbGVNZWRpYVNlcnZpY2VzU1BJLmggaW4gSGVhZGVycyAqLywKIAkJCQk5NTY1
MDgzQTI2RDg3QTJCMDBFMTVDQjcgLyogQXBwbGVNZWRpYVNlcnZpY2VzVUlTUEkuaCBpbiBIZWFk
ZXJzICovLAorCQkJCUVCQThEM0I0MjdBNUUzM0YwMENCNzkwMCAvKiBBcHBsZVB1c2hTZXJ2aWNl
Q29ubmVjdGlvbi5oIGluIEhlYWRlcnMgKi8sCisJCQkJRUJBOEQzQUIyN0E1RTMxMzAwQ0I3OTAw
IC8qIEFwcGxlUHVzaFNlcnZpY2VTUEkuaCBpbiBIZWFkZXJzICovLAogCQkJCUY0RUM5NEUzMjM1
NkNDNTcwMDBCQjYxNCAvKiBBcHBsaWNhdGlvblNlcnZpY2VzU1BJLmggaW4gSGVhZGVycyAqLywK
IAkJCQkxQUQ0QzE5MzFCMzlGMzMyMDBBQkMyOEUgLyogQXBwbGljYXRpb25TdGF0ZVRyYWNrZXIu
aCBpbiBIZWFkZXJzICovLAogCQkJCTQ5MzEwMkJEMjY4M0YzRDAwMDJCQjg4NSAvKiBBcHBQcml2
YWN5UmVwb3J0LmggaW4gSGVhZGVycyAqLywKQEAgLTEyOTU4LDYgKzEyOTgxLDcgQEAKIAkJCQk1
MUIxNUE4NTEzODQzQTM5MDAzMjFBRDggLyogRW52aXJvbm1lbnRVdGlsaXRpZXMuaCBpbiBIZWFk
ZXJzICovLAogCQkJCTFBQTU3NUZCMTQ5NkI1MjYwMEE0RUUwNiAvKiBFdmVudERpc3BhdGNoZXIu
aCBpbiBIZWFkZXJzICovLAogCQkJCTU3MkVCQkQ3MjUzN0VCQUUwMDA1NTJCMyAvKiBFeHRyYVBy
aXZhdGVTeW1ib2xzRm9yVEFQSS5oIGluIEhlYWRlcnMgKi8sCisJCQkJRUJBOEQzQjMyN0E1RTMz
RjAwQ0I3OTAwIC8qIEZha2VQdXNoU2VydmljZUNvbm5lY3Rpb24uaCBpbiBIZWFkZXJzICovLAog
CQkJCTU3QjgyNjQ4MjMwNTBDNTEwMEI3MkVCMCAvKiBGaWRvU2VydmljZS5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkJOTMxQTFCRTIyNkY4NzAwOTAwODFBN0U1IC8qIEZpbGVTeXN0ZW1TdG9yYWdlRXJy
b3IuaCBpbiBIZWFkZXJzICovLAogCQkJCTkzMTJCQUQ2MjZGMzNDMjkwMEZEREY1RiAvKiBGaWxl
U3lzdGVtU3RvcmFnZUhhbmRsZS5oIGluIEhlYWRlcnMgKi8sCkBAIC0xMzIwMiw2ICsxMzIyNiw3
IEBACiAJCQkJNTE3QjVGODEyNzVFOTdCNjAwMkRDMjJEIC8qIFB1c2hBcHBCdW5kbGUuaCBpbiBI
ZWFkZXJzICovLAogCQkJCTUxN0I1RjdEMjc1RTk3QjYwMDJEQzIyRCAvKiBQdXNoQ2xpZW50Q29u
bmVjdGlvbi5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNTE3QjVGOTUyNzVFQkE2MzAwMkRDMjJEIC8q
IFB1c2hNZXNzYWdlRm9yVGVzdGluZy5oIGluIEhlYWRlcnMgKi8sCisJCQkJRUJBOEQzQjUyN0E1
RTMzRjAwQ0I3OTAwIC8qIFB1c2hTZXJ2aWNlQ29ubmVjdGlvbi5oIGluIEhlYWRlcnMgKi8sCiAJ
CQkJQTFFNjg4NzAxRjZFMkJBQjAwNzAwNkE2IC8qIFF1YXJhbnRpbmVTUEkuaCBpbiBIZWFkZXJz
ICovLAogCQkJCTFBMEMyMjdFMjQ1MTEzMEEwMEVENjE0RCAvKiBRdWlja0xvb2tUaHVtYm5haWxp
bmdTb2Z0TGluay5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMUFFRTU3MjUyNDA5RjE0MjAwMjAwNUQ2
IC8qIFF1aWNrTG9va1RodW1ibmFpbExvYWRlci5oIGluIEhlYWRlcnMgKi8sCkBAIC0xNTM5NSw2
ICsxNTQyMCw3IEBACiAJCQkJOTlFNzE4OUEyMUY3OUQ5RTAwNTVFOTc1IC8qIF9XS1RvdWNoRXZl
bnRHZW5lcmF0b3IubW0gaW4gU291cmNlcyAqLywKIAkJCQk1NzJFQkJEQTI1MzhGNkI0MDAwNTUy
QjMgLyogQXBwQXR0ZXN0SW50ZXJuYWxTb2Z0TGluay5tbSBpbiBTb3VyY2VzICovLAogCQkJCTUx
N0I1RjdFMjc1RTk3QjYwMDJEQzIyRCAvKiBBcHBCdW5kbGVSZXF1ZXN0Lm1tIGluIFNvdXJjZXMg
Ki8sCisJCQkJRUJBOEQzQjIyN0E1RTMzRjAwQ0I3OTAwIC8qIEFwcGxlUHVzaFNlcnZpY2VDb25u
ZWN0aW9uLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJMkRFQjFEMkUyMTI3NDczNjAwOTMzOTA2IC8q
IEFyZ3VtZW50Q29kZXJzQ0YuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQ0Q0NTcwRDQyNDQxMUQw
RjAwQTNEQ0VCIC8qIEF1ZGlvU2Vzc2lvblJvdXRpbmdBcmJpdHJhdG9yLmNwcCBpbiBTb3VyY2Vz
ICovLAogCQkJCUNENDU3MEQzMjQ0MTEzQjUwMEEzRENFQiAvKiBBdWRpb1Nlc3Npb25Sb3V0aW5n
QXJiaXRyYXRvclByb3h5TWVzc2FnZVJlY2VpdmVyLmNwcCBpbiBTb3VyY2VzICovLApAQCAtMTU0
MTIsNiArMTU0MzgsNyBAQAogCQkJCTFBNjQyMzA4MTJERDA5RUIwMENBQUUyQyAvKiBEcmF3aW5n
QXJlYVByb3h5TWVzc2FnZVJlY2VpdmVyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUNEQ0RDOTlF
MjQ4RkU4REEwMEE2OTUyMiAvKiBFbmRvd21lbnRTdGF0ZVRyYWNrZXIubW0gaW4gU291cmNlcyAq
LywKIAkJCQkxQUE1NzYwMjE0OTZCOTc5MDBBNEVFMDYgLyogRXZlbnREaXNwYXRjaGVyTWVzc2Fn
ZVJlY2VpdmVyLmNwcCBpbiBTb3VyY2VzICovLAorCQkJCUVCQThEM0I2MjdBNUUzM0YwMENCNzkw
MCAvKiBGYWtlUHVzaFNlcnZpY2VDb25uZWN0aW9uLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJQ0RB
OTNEQjEyMkY4QkNGNDAwNDkwQTY5IC8qIEZ1bGxzY3JlZW5Ub3VjaFNlY2hldXJpc3RpY1BhcmFt
ZXRlcnMuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQzFBMTUyRDcyNEU1QTI5QTAwOTc4QzhCIC8q
IEhhbmRsZVhQQ0VuZHBvaW50TWVzc2FnZXMubW0gaW4gU291cmNlcyAqLywKIAkJCQkyNzQ5RjY0
NDIxNDY1NjFCMDA4MzgwQkYgLyogSW5qZWN0ZWRCdW5kbGVOb2RlSGFuZGxlLmNwcCBpbiBTb3Vy
Y2VzICovLApAQCAtMTU0NTMsNiArMTU0ODAsNyBAQAogCQkJCTJENTRDMzFCMjEyRjREQTYwMDQ5
QzE3NCAvKiBQcm9jZXNzTGF1bmNoZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJNTE3QjVGODIy
NzVFOTdCNjAwMkRDMjJEIC8qIFB1c2hBcHBCdW5kbGUubW0gaW4gU291cmNlcyAqLywKIAkJCQk1
MTdCNUY3QjI3NUU5N0E5MDAyREMyMkQgLyogUHVzaENsaWVudENvbm5lY3Rpb24ubW0gaW4gU291
cmNlcyAqLywKKwkJCQlFQkE4RDNCNzI3QTVFMzNGMDBDQjc5MDAgLyogUHVzaFNlcnZpY2VDb25u
ZWN0aW9uLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJMUEwQzIyN0YyNDUxMTMwQTAwRUQ2MTREIC8q
IFF1aWNrTG9va1RodW1ibmFpbGluZ1NvZnRMaW5rLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJMUEw
QzIyNUUyNDM1NzVDRDAwRUQ2MTREIC8qIFF1aWNrTG9va1RodW1ibmFpbExvYWRlci5tbSBpbiBT
b3VyY2VzICovLAogCQkJCTlCMTIyOUNFMjNGRjI1RjIwMDhDQTc1MSAvKiBSZW1vdGVBdWRpb0Rl
c3RpbmF0aW9uTWFuYWdlci5jcHAgaW4gU291cmNlcyAqLywKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvd2VicHVzaGQvQXBwbGVQdXNoU2VydmljZUNvbm5lY3Rpb24uaCBiL1NvdXJjZS9XZWJL
aXQvd2VicHVzaGQvQXBwbGVQdXNoU2VydmljZUNvbm5lY3Rpb24uaApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi43YjA0
YTQ1NmMzYzg5YjVkMTI1MmEwYWY4MGVkOTc2NjA5NTE1MTE3Ci0tLSAvZGV2L251bGwKKysrIGIv
U291cmNlL1dlYktpdC93ZWJwdXNoZC9BcHBsZVB1c2hTZXJ2aWNlQ29ubmVjdGlvbi5oCkBAIC0w
LDAgKzEsNjkgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjIgQXBwbGUgSW5jLiBBbGwgcmln
aHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFu
ZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVy
bWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0
OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5h
cnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4g
dGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQg
d2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQg
QlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkg
RVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJ
VE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8g
RVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUg
Rk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlks
IE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9T
UyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04p
IEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJ
TgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdM
SUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVT
RSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElU
WSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworI2lmIEhBVkUoQVBQTEVf
UFVTSF9TRVJWSUNFX1VSTF9UT0tFTl9TVVBQT1JUKQorCisjaW5jbHVkZSAiQXBwbGVQdXNoU2Vy
dmljZVNQSS5oIgorI2luY2x1ZGUgIlB1c2hTZXJ2aWNlQ29ubmVjdGlvbi5oIgorI2luY2x1ZGUg
PHd0Zi9IYXNoTWFwLmg+CisjaW5jbHVkZSA8d3RmL1JldGFpblB0ci5oPgorCituYW1lc3BhY2Ug
V2ViUHVzaEQgeworCitjbGFzcyBBcHBsZVB1c2hTZXJ2aWNlQ29ubmVjdGlvbiA6IHB1YmxpYyBQ
dXNoU2VydmljZUNvbm5lY3Rpb24geworICAgIFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOworcHVi
bGljOgorICAgIEFwcGxlUHVzaFNlcnZpY2VDb25uZWN0aW9uKGNvbnN0IFN0cmluZyYgaW5jb21p
bmdQdXNoU2VydmljZU5hbWUpOworICAgIHZpcnR1YWwgfkFwcGxlUHVzaFNlcnZpY2VDb25uZWN0
aW9uKCk7CisKKyAgICB2b2lkIHN1YnNjcmliZShjb25zdCBTdHJpbmcmIHRvcGljLCBjb25zdCBW
ZWN0b3I8dWludDhfdD4mIHZhcGlkUHVibGljS2V5LCBTdWJzY3JpYmVIYW5kbGVyJiYpIGZpbmFs
OworICAgIHZvaWQgdW5zdWJzY3JpYmUoY29uc3QgU3RyaW5nJiB0b3BpYywgY29uc3QgVmVjdG9y
PHVpbnQ4X3Q+JiB2YXBpZFB1YmxpY0tleSwgVW5zdWJzY3JpYmVIYW5kbGVyJiYpIGZpbmFsOwor
CisgICAgVmVjdG9yPFN0cmluZz4gZW5hYmxlZFRvcGljcygpIGZpbmFsOworICAgIFZlY3RvcjxT
dHJpbmc+IGlnbm9yZWRUb3BpY3MoKSBmaW5hbDsKKyAgICBWZWN0b3I8U3RyaW5nPiBvcHBvcnR1
bmlzdGljVG9waWNzKCkgZmluYWw7CisgICAgVmVjdG9yPFN0cmluZz4gbm9uV2FraW5nVG9waWNz
KCkgZmluYWw7CisKKyAgICB2b2lkIHNldEVuYWJsZWRUb3BpY3MoY29uc3QgVmVjdG9yPFN0cmlu
Zz4mKSBmaW5hbDsKKyAgICB2b2lkIHNldElnbm9yZWRUb3BpY3MoY29uc3QgVmVjdG9yPFN0cmlu
Zz4mKSBmaW5hbDsKKyAgICB2b2lkIHNldE9wcG9ydHVuaXN0aWNUb3BpY3MoY29uc3QgVmVjdG9y
PFN0cmluZz4mKSBmaW5hbDsKKyAgICB2b2lkIHNldE5vbldha2luZ1RvcGljcyhjb25zdCBWZWN0
b3I8U3RyaW5nPiYpIGZpbmFsOworCisgICAgdm9pZCBzZXRUb3BpY0xpc3RzKFRvcGljTGlzdHMm
JikgZmluYWw7CisKK3ByaXZhdGU6CisgICAgUmV0YWluUHRyPEFQU0Nvbm5lY3Rpb24+IG1fY29u
bmVjdGlvbjsKKyAgICBSZXRhaW5QdHI8aWQ8QVBTQ29ubmVjdGlvbkRlbGVnYXRlPj4gbV9kZWxl
Z2F0ZTsKKyAgICB1bnNpZ25lZCBtX2hhbmRsZXJJZGVudGlmaWVyIHsgMCB9OworICAgIEhhc2hN
YXA8dW5zaWduZWQsIFN1YnNjcmliZUhhbmRsZXI+IG1fc3Vic2NyaWJlSGFuZGxlcnM7CisgICAg
SGFzaE1hcDx1bnNpZ25lZCwgVW5zdWJzY3JpYmVIYW5kbGVyPiBtX3Vuc3Vic2NyaWJlSGFuZGxl
cnM7Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJQdXNoRAorCisjZW5kaWYgLy8gSEFWRShBUFBM
RV9QVVNIX1NFUlZJQ0VfVVJMX1RPS0VOX1NVUFBPUlQpCisKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvd2VicHVzaGQvQXBwbGVQdXNoU2VydmljZUNvbm5lY3Rpb24ubW0gYi9Tb3VyY2UvV2Vi
S2l0L3dlYnB1c2hkL0FwcGxlUHVzaFNlcnZpY2VDb25uZWN0aW9uLm1tCm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmZl
MjAzMWU0ODZjNmFhODJlNDY5MDc0ZGQ1YTM2NjE0ZTFhNmM0ZTYKLS0tIC9kZXYvbnVsbAorKysg
Yi9Tb3VyY2UvV2ViS2l0L3dlYnB1c2hkL0FwcGxlUHVzaFNlcnZpY2VDb25uZWN0aW9uLm1tCkBA
IC0wLDAgKzEsMTUyIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIyIEFwcGxlIEluYy4gQWxs
IHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJj
ZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJl
IHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJl
IG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0
aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4g
YmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
IGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3Zp
ZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJ
REVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQg
QU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFO
RCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElO
IE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElB
QkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBM
QVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7
IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBU
SU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRI
RVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcg
TkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRI
RSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lC
SUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2ltcG9ydCAiY29uZmlnLmgiCisjaW1wb3J0
ICJBcHBsZVB1c2hTZXJ2aWNlQ29ubmVjdGlvbi5oIgorCisjaWYgSEFWRShBUFBMRV9QVVNIX1NF
UlZJQ0VfVVJMX1RPS0VOX1NVUFBPUlQpCisKKyNpbXBvcnQgPHd0Zi9jb2NvYS9WZWN0b3JDb2Nv
YS5oPgorCitAaW50ZXJmYWNlIF9XS0FQU0Nvbm5lY3Rpb25EZWxlZ2F0ZSA6IE5TT2JqZWN0PEFQ
U0Nvbm5lY3Rpb25EZWxlZ2F0ZT4geworICAgIFdlYlB1c2hEOjpBcHBsZVB1c2hTZXJ2aWNlQ29u
bmVjdGlvbiAqX2Nvbm5lY3Rpb247Cit9CitAZW5kCisKK0BpbXBsZW1lbnRhdGlvbiBfV0tBUFND
b25uZWN0aW9uRGVsZWdhdGUKKworLSAoaW5zdGFuY2V0eXBlKWluaXRXaXRoQ29ubmVjdGlvbjoo
V2ViUHVzaEQ6OkFwcGxlUHVzaFNlcnZpY2VDb25uZWN0aW9uICopY29ubmVjdGlvbgoreworICAg
IGlmICgoc2VsZiA9IFtzdXBlciBpbml0XSkpCisgICAgICAgIF9jb25uZWN0aW9uID0gY29ubmVj
dGlvbjsKKyAgICByZXR1cm4gc2VsZjsKK30KKworLSAodm9pZCljb25uZWN0aW9uOihBUFNDb25u
ZWN0aW9uICopY29ubmVjdGlvbiBkaWRSZWNlaXZlUHVibGljVG9rZW46KE5TRGF0YSAqKXB1Ymxp
Y1Rva2VuCit7CisgICAgVU5VU0VEX1BBUkFNKGNvbm5lY3Rpb24pOworICAgIFVOVVNFRF9QQVJB
TShwdWJsaWNUb2tlbik7Cit9CisKKy0gKHZvaWQpY29ubmVjdGlvbjooQVBTQ29ubmVjdGlvbiAq
KWNvbm5lY3Rpb24gZGlkUmVjZWl2ZUluY29taW5nTWVzc2FnZTooQVBTSW5jb21pbmdNZXNzYWdl
ICopbWVzc2FnZQoreworICAgIFVOVVNFRF9QQVJBTShjb25uZWN0aW9uKTsKKyAgICBfY29ubmVj
dGlvbi0+ZGlkUmVjZWl2ZVB1c2hNZXNzYWdlKG1lc3NhZ2UudG9waWMsIG1lc3NhZ2UudXNlcklu
Zm8pOworfQorCitAZW5kCisKK25hbWVzcGFjZSBXZWJQdXNoRCB7CisKK0FwcGxlUHVzaFNlcnZp
Y2VDb25uZWN0aW9uOjpBcHBsZVB1c2hTZXJ2aWNlQ29ubmVjdGlvbihjb25zdCBTdHJpbmcmIGlu
Y29taW5nUHVzaFNlcnZpY2VOYW1lKQoreworICAgIG1fY29ubmVjdGlvbiA9IGFkb3B0TlMoW1tB
UFNDb25uZWN0aW9uIGFsbG9jXSBpbml0V2l0aEVudmlyb25tZW50TmFtZTpBUFNFbnZpcm9ubWVu
dFByb2R1Y3Rpb24gbmFtZWREZWxlZ2F0ZVBvcnQ6aW5jb21pbmdQdXNoU2VydmljZU5hbWUgcXVl
dWU6ZGlzcGF0Y2hfZ2V0X21haW5fcXVldWUoKV0pOworICAgIG1fZGVsZWdhdGUgPSBhZG9wdE5T
KFtbX1dLQVBTQ29ubmVjdGlvbkRlbGVnYXRlIGFsbG9jXSBpbml0V2l0aENvbm5lY3Rpb246dGhp
c10pOworICAgIFttX2Nvbm5lY3Rpb24gc2V0RGVsZWdhdGU6bV9kZWxlZ2F0ZS5nZXQoKV07Cit9
CisKK0FwcGxlUHVzaFNlcnZpY2VDb25uZWN0aW9uOjp+QXBwbGVQdXNoU2VydmljZUNvbm5lY3Rp
b24oKSA9IGRlZmF1bHQ7CisKK3N0YXRpYyBSZXRhaW5QdHI8QVBTVVJMVG9rZW5JbmZvPiBtYWtl
VG9rZW5JbmZvKGNvbnN0IFN0cmluZyYgdG9waWMsIGNvbnN0IFZlY3Rvcjx1aW50OF90PiYgdmFw
aWRQdWJsaWNLZXkpCit7CisgICAgYXV0byBzZXJ2ZXJQdWJsaWNLZXkgPSBhZG9wdE5TKFtbTlNE
YXRhIGFsbG9jXSBpbml0V2l0aEJ5dGVzOnZhcGlkUHVibGljS2V5LmRhdGEoKSBsZW5ndGg6dmFw
aWRQdWJsaWNLZXkuc2l6ZSgpXSk7CisgICAgcmV0dXJuIGFkb3B0TlMoW1tBUFNVUkxUb2tlbklu
Zm8gYWxsb2NdIGluaXRXaXRoVG9waWM6dG9waWMgdmFwaWRQdWJsaWNLZXk6c2VydmVyUHVibGlj
S2V5LmdldCgpXSk7Cit9CisKK3ZvaWQgQXBwbGVQdXNoU2VydmljZUNvbm5lY3Rpb246OnN1YnNj
cmliZShjb25zdCBTdHJpbmcmIHRvcGljLCBjb25zdCBWZWN0b3I8dWludDhfdD4mIHZhcGlkUHVi
bGljS2V5LCBTdWJzY3JpYmVIYW5kbGVyJiYgc3Vic2NyaWJlSGFuZGxlcikKK3sKKyAgICAvLyBT
dGFzaCB0aGUgY29tcGxldGlvbiBoYW5kbGVyIGF3YXkgYW5kIGxvb2sgaXQgdXAgYnkgaWQgc28g
dGhhdCB3ZSBjYW4gZW5zdXJlIGl0IGdldHMgZGVzdHJ1Y3RlZCBvbiB0aGUgbWFpbiB0aHJlYWQu
IElmIHdlIG1vdmUgdGhlIGhhbmRsZXIgYW5kIGNhcHR1cmUgaXQgaW4gdGhlIE9iai1DIGJsb2Nr
LCBpdCBtaWdodCBnZXQgZGVzdHJ1Y3RlZCBvbiBhIHNlY29uZGFyeSB0aHJlYWQgc2luY2UgdGhp
cyBjb21wbGV0aW9uIGJsb2NrIG1vdmVzIGJldHdlZW4gZGlmZmVyZW50IGRpc3BhdGNoIHF1ZXVl
cyBpbiB0aGUgQVBTIGltcGxlbWVudGF0aW9uLgorICAgIGF1dG8gaWRlbnRpZmllciA9ICsrbV9o
YW5kbGVySWRlbnRpZmllcjsKKyAgICBtX3N1YnNjcmliZUhhbmRsZXJzLmFkZChpZGVudGlmaWVy
LCBXVEZNb3ZlKHN1YnNjcmliZUhhbmRsZXIpKTsKKworICAgIFttX2Nvbm5lY3Rpb24gcmVxdWVz
dFVSTFRva2VuRm9ySW5mbzptYWtlVG9rZW5JbmZvKHRvcGljLCB2YXBpZFB1YmxpY0tleSkuZ2V0
KCkgY29tcGxldGlvbjpeKEFQU1VSTFRva2VuICp0b2tlbiwgTlNFcnJvciAqZXJyb3IpIHsKKyAg
ICAgICAgYXV0byBoYW5kbGVyID0gbV9zdWJzY3JpYmVIYW5kbGVycy50YWtlKGlkZW50aWZpZXIp
OworICAgICAgICBoYW5kbGVyKHRva2VuLnRva2VuVVJMLCBlcnJvcik7CisgICAgfV07Cit9CisK
K3ZvaWQgQXBwbGVQdXNoU2VydmljZUNvbm5lY3Rpb246OnVuc3Vic2NyaWJlKGNvbnN0IFN0cmlu
ZyYgdG9waWMsIGNvbnN0IFZlY3Rvcjx1aW50OF90PiYgdmFwaWRQdWJsaWNLZXksIFVuc3Vic2Ny
aWJlSGFuZGxlciYmIHVuc3Vic2NyaWJlSGFuZGxlcikKK3sKKyAgICAvLyBTZWUgc3Vic2NyaWJl
IGZvciB3aHkgd2Ugc3Rhc2ggdGhlIGhhbmRsZXIgaW50byBhIG1hcC4KKyAgICBhdXRvIGlkZW50
aWZpZXIgPSArK21faGFuZGxlcklkZW50aWZpZXI7CisgICAgbV91bnN1YnNjcmliZUhhbmRsZXJz
LmFkZChpZGVudGlmaWVyLCBXVEZNb3ZlKHVuc3Vic2NyaWJlSGFuZGxlcikpOworCisgICAgW21f
Y29ubmVjdGlvbiBpbnZhbGlkYXRlVVJMVG9rZW5Gb3JJbmZvOm1ha2VUb2tlbkluZm8odG9waWMs
IHZhcGlkUHVibGljS2V5KS5nZXQoKSBjb21wbGV0aW9uOl4oQk9PTCBzdWNjZXNzLCBOU0Vycm9y
ICplcnJvcikgeworICAgICAgICAvLyBGSVhNRTogcmVtb3ZlIHRoaXMgb25jZSBBUFMgc3RvcHMg
Y2FsbGluZyBiYWNrIG9uIHRoZSB3cm9uZyBxdWV1ZSAocmRhcjovLzg4MTAwMjc1KS4KKyAgICAg
ICAgZGlzcGF0Y2hfYXN5bmMoZGlzcGF0Y2hfZ2V0X21haW5fcXVldWUoKSwgXnsKKyAgICAgICAg
ICAgIGF1dG8gaGFuZGxlciA9IG1fdW5zdWJzY3JpYmVIYW5kbGVycy50YWtlKGlkZW50aWZpZXIp
OworICAgICAgICAgICAgaGFuZGxlcihzdWNjZXNzLCBlcnJvcik7CisgICAgICAgIH0pOworICAg
IH1dOworfQorCitWZWN0b3I8U3RyaW5nPiBBcHBsZVB1c2hTZXJ2aWNlQ29ubmVjdGlvbjo6ZW5h
YmxlZFRvcGljcygpCit7CisgICAgcmV0dXJuIG1ha2VWZWN0b3I8U3RyaW5nPihbbV9jb25uZWN0
aW9uIGVuYWJsZWRUb3BpY3NdKTsKK30KKworVmVjdG9yPFN0cmluZz4gQXBwbGVQdXNoU2Vydmlj
ZUNvbm5lY3Rpb246Omlnbm9yZWRUb3BpY3MoKQoreworICAgIHJldHVybiBtYWtlVmVjdG9yPFN0
cmluZz4oW21fY29ubmVjdGlvbiBpZ25vcmVkVG9waWNzXSk7Cit9CisKK1ZlY3RvcjxTdHJpbmc+
IEFwcGxlUHVzaFNlcnZpY2VDb25uZWN0aW9uOjpvcHBvcnR1bmlzdGljVG9waWNzKCkKK3sKKyAg
ICByZXR1cm4gbWFrZVZlY3RvcjxTdHJpbmc+KFttX2Nvbm5lY3Rpb24gb3Bwb3J0dW5pc3RpY1Rv
cGljc10pOworfQorCitWZWN0b3I8U3RyaW5nPiBBcHBsZVB1c2hTZXJ2aWNlQ29ubmVjdGlvbjo6
bm9uV2FraW5nVG9waWNzKCkKK3sKKyAgICByZXR1cm4gbWFrZVZlY3RvcjxTdHJpbmc+KFttX2Nv
bm5lY3Rpb24gbm9uV2FraW5nVG9waWNzXSk7Cit9CisKK3ZvaWQgQXBwbGVQdXNoU2VydmljZUNv
bm5lY3Rpb246OnNldEVuYWJsZWRUb3BpY3MoY29uc3QgVmVjdG9yPFN0cmluZz4mIHRvcGljcykK
K3sKKyAgICBbbV9jb25uZWN0aW9uIF9zZXRFbmFibGVkVG9waWNzOmNyZWF0ZU5TQXJyYXkodG9w
aWNzKS5nZXQoKV07Cit9CisKK3ZvaWQgQXBwbGVQdXNoU2VydmljZUNvbm5lY3Rpb246OnNldEln
bm9yZWRUb3BpY3MoY29uc3QgVmVjdG9yPFN0cmluZz4mIHRvcGljcykKK3sKKyAgICBbbV9jb25u
ZWN0aW9uIF9zZXRJZ25vcmVkVG9waWNzOmNyZWF0ZU5TQXJyYXkodG9waWNzKS5nZXQoKV07Cit9
CisKK3ZvaWQgQXBwbGVQdXNoU2VydmljZUNvbm5lY3Rpb246OnNldE9wcG9ydHVuaXN0aWNUb3Bp
Y3MoY29uc3QgVmVjdG9yPFN0cmluZz4mIHRvcGljcykKK3sKKyAgICBbbV9jb25uZWN0aW9uIF9z
ZXRPcHBvcnR1bmlzdGljVG9waWNzOmNyZWF0ZU5TQXJyYXkodG9waWNzKS5nZXQoKV07Cit9CisK
K3ZvaWQgQXBwbGVQdXNoU2VydmljZUNvbm5lY3Rpb246OnNldE5vbldha2luZ1RvcGljcyhjb25z
dCBWZWN0b3I8U3RyaW5nPiYgdG9waWNzKQoreworICAgIFttX2Nvbm5lY3Rpb24gX3NldE5vbldh
a2luZ1RvcGljczpjcmVhdGVOU0FycmF5KHRvcGljcykuZ2V0KCldOworfQorCit2b2lkIEFwcGxl
UHVzaFNlcnZpY2VDb25uZWN0aW9uOjpzZXRUb3BpY0xpc3RzKFRvcGljTGlzdHMmJiB0b3BpY0xp
c3RzKQoreworICAgIFttX2Nvbm5lY3Rpb24gc2V0RW5hYmxlZFRvcGljczpjcmVhdGVOU0FycmF5
KHRvcGljTGlzdHMuZW5hYmxlZFRvcGljcykuZ2V0KCkgaWdub3JlZFRvcGljczpjcmVhdGVOU0Fy
cmF5KHRvcGljTGlzdHMuaWdub3JlZFRvcGljcykuZ2V0KCkgb3Bwb3J0dW5pc3RpY1RvcGljczpj
cmVhdGVOU0FycmF5KHRvcGljTGlzdHMub3Bwb3J0dW5pc3RpY1RvcGljcykuZ2V0KCkgbm9uV2Fr
aW5nVG9waWNzOmNyZWF0ZU5TQXJyYXkodG9waWNMaXN0cy5ub25XYWtpbmdUb3BpY3MpLmdldCgp
XTsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViUHVzaEQKKworI2VuZGlmIC8vIEhBVkUoQVBQTEVf
UFVTSF9TRVJWSUNFX1VSTF9UT0tFTl9TVVBQT1JUKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC93ZWJwdXNoZC9GYWtlUHVzaFNlcnZpY2VDb25uZWN0aW9uLmggYi9Tb3VyY2UvV2ViS2l0L3dl
YnB1c2hkL0Zha2VQdXNoU2VydmljZUNvbm5lY3Rpb24uaApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4zOGU4NTViYjQ0
MTRkZWIyMjFiZTdhYzBjNDdiYTU4YjFkYzNkZDE0Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNl
L1dlYktpdC93ZWJwdXNoZC9GYWtlUHVzaFNlcnZpY2VDb25uZWN0aW9uLmgKQEAgLTAsMCArMSw1
NiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFy
eSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQg
cHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAx
LiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNv
cHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3Jt
IG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAq
ICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRo
ZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBM
RSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNT
IE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisg
KiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBG
T1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBT
SEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5Z
IERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAq
IENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBS
T0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVT
RSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZF
UiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBD
T05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0Ug
T1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRI
SVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNV
Q0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisjaW5jbHVkZSAiUHVzaFNlcnZpY2VD
b25uZWN0aW9uLmgiCisjaW5jbHVkZSA8d3RmL0hhc2hNYXAuaD4KKyNpbmNsdWRlIDx3dGYvUmV0
YWluUHRyLmg+CisKK25hbWVzcGFjZSBXZWJQdXNoRCB7CisKK2NsYXNzIEZha2VQdXNoU2Vydmlj
ZUNvbm5lY3Rpb24gOiBwdWJsaWMgUHVzaFNlcnZpY2VDb25uZWN0aW9uIHsKKyAgICBXVEZfTUFL
RV9GQVNUX0FMTE9DQVRFRDsKK3B1YmxpYzoKKyAgICBGYWtlUHVzaFNlcnZpY2VDb25uZWN0aW9u
KCk7CisgICAgdmlydHVhbCB+RmFrZVB1c2hTZXJ2aWNlQ29ubmVjdGlvbigpOworCisgICAgdm9p
ZCBzdWJzY3JpYmUoY29uc3QgU3RyaW5nJiB0b3BpYywgY29uc3QgVmVjdG9yPHVpbnQ4X3Q+JiB2
YXBpZFB1YmxpY0tleSwgU3Vic2NyaWJlSGFuZGxlciYmKSBmaW5hbDsKKyAgICB2b2lkIHVuc3Vi
c2NyaWJlKGNvbnN0IFN0cmluZyYgdG9waWMsIGNvbnN0IFZlY3Rvcjx1aW50OF90PiYgdmFwaWRQ
dWJsaWNLZXksIFVuc3Vic2NyaWJlSGFuZGxlciYmKSBmaW5hbDsKKworICAgIFZlY3RvcjxTdHJp
bmc+IGVuYWJsZWRUb3BpY3MoKSBmaW5hbDsKKyAgICBWZWN0b3I8U3RyaW5nPiBpZ25vcmVkVG9w
aWNzKCkgZmluYWw7CisgICAgVmVjdG9yPFN0cmluZz4gb3Bwb3J0dW5pc3RpY1RvcGljcygpIGZp
bmFsOworICAgIFZlY3RvcjxTdHJpbmc+IG5vbldha2luZ1RvcGljcygpIGZpbmFsOworCisgICAg
dm9pZCBzZXRFbmFibGVkVG9waWNzKGNvbnN0IFZlY3RvcjxTdHJpbmc+JikgZmluYWw7CisgICAg
dm9pZCBzZXRJZ25vcmVkVG9waWNzKGNvbnN0IFZlY3RvcjxTdHJpbmc+JikgZmluYWw7CisgICAg
dm9pZCBzZXRPcHBvcnR1bmlzdGljVG9waWNzKGNvbnN0IFZlY3RvcjxTdHJpbmc+JikgZmluYWw7
CisgICAgdm9pZCBzZXROb25XYWtpbmdUb3BpY3MoY29uc3QgVmVjdG9yPFN0cmluZz4mKSBmaW5h
bDsKKworICAgIHZvaWQgc2V0VG9waWNMaXN0cyhUb3BpY0xpc3RzJiYpIGZpbmFsOworfTsKKwor
fSAvLyBuYW1lc3BhY2UgV2ViUHVzaEQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvd2VicHVz
aGQvRmFrZVB1c2hTZXJ2aWNlQ29ubmVjdGlvbi5tbSBiL1NvdXJjZS9XZWJLaXQvd2VicHVzaGQv
RmFrZVB1c2hTZXJ2aWNlQ29ubmVjdGlvbi5tbQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5jYTMxMzc2ZWNkYTNjNjU1
MjYyNDk1ZDY0ZWVlMDg4NjI4ZDI1Y2IyCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktp
dC93ZWJwdXNoZC9GYWtlUHVzaFNlcnZpY2VDb25uZWN0aW9uLm1tCkBAIC0wLDAgKzEsODcgQEAK
Ky8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjIgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVk
LgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9y
bXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3Zp
ZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVk
aXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0
IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBk
b2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlz
dHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5D
LiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJ
TVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhF
IElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEg
UEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwg
QVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJF
Q1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05T
RVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJF
TUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERB
VEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FV
U0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJB
Q1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9U
SEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNP
RlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERB
TUFHRS4KKyAqLworCisjaW1wb3J0ICJjb25maWcuaCIKKyNpbXBvcnQgIkZha2VQdXNoU2Vydmlj
ZUNvbm5lY3Rpb24uaCIKKworbmFtZXNwYWNlIFdlYlB1c2hEIHsKKworRmFrZVB1c2hTZXJ2aWNl
Q29ubmVjdGlvbjo6RmFrZVB1c2hTZXJ2aWNlQ29ubmVjdGlvbigpCit7Cit9CisKK0Zha2VQdXNo
U2VydmljZUNvbm5lY3Rpb246On5GYWtlUHVzaFNlcnZpY2VDb25uZWN0aW9uKCkgPSBkZWZhdWx0
OworCit2b2lkIEZha2VQdXNoU2VydmljZUNvbm5lY3Rpb246OnN1YnNjcmliZShjb25zdCBTdHJp
bmcmLCBjb25zdCBWZWN0b3I8dWludDhfdD4mLCBTdWJzY3JpYmVIYW5kbGVyJiYgaGFuZGxlcikK
K3sKKyAgICBoYW5kbGVyKHsgfSwgW05TRXJyb3IgZXJyb3JXaXRoRG9tYWluOk5TQ29jb2FFcnJv
ckRvbWFpbiBjb2RlOk5TRmVhdHVyZVVuc3VwcG9ydGVkRXJyb3IgdXNlckluZm86bmlsXSk7Cit9
CisKK3ZvaWQgRmFrZVB1c2hTZXJ2aWNlQ29ubmVjdGlvbjo6dW5zdWJzY3JpYmUoY29uc3QgU3Ry
aW5nJiwgY29uc3QgVmVjdG9yPHVpbnQ4X3Q+JiwgVW5zdWJzY3JpYmVIYW5kbGVyJiYgaGFuZGxl
cikKK3sKKyAgICBoYW5kbGVyKHsgfSwgW05TRXJyb3IgZXJyb3JXaXRoRG9tYWluOk5TQ29jb2FF
cnJvckRvbWFpbiBjb2RlOk5TRmVhdHVyZVVuc3VwcG9ydGVkRXJyb3IgdXNlckluZm86bmlsXSk7
Cit9CisKK1ZlY3RvcjxTdHJpbmc+IEZha2VQdXNoU2VydmljZUNvbm5lY3Rpb246OmVuYWJsZWRU
b3BpY3MoKQoreworICAgIHJldHVybiB7IH07Cit9CisKK1ZlY3RvcjxTdHJpbmc+IEZha2VQdXNo
U2VydmljZUNvbm5lY3Rpb246Omlnbm9yZWRUb3BpY3MoKQoreworICAgIHJldHVybiB7IH07Cit9
CisKK1ZlY3RvcjxTdHJpbmc+IEZha2VQdXNoU2VydmljZUNvbm5lY3Rpb246Om9wcG9ydHVuaXN0
aWNUb3BpY3MoKQoreworICAgIHJldHVybiB7IH07Cit9CisKK1ZlY3RvcjxTdHJpbmc+IEZha2VQ
dXNoU2VydmljZUNvbm5lY3Rpb246Om5vbldha2luZ1RvcGljcygpCit7CisgICAgcmV0dXJuIHsg
fTsKK30KKwordm9pZCBGYWtlUHVzaFNlcnZpY2VDb25uZWN0aW9uOjpzZXRFbmFibGVkVG9waWNz
KGNvbnN0IFZlY3RvcjxTdHJpbmc+JiB0b3BpY3MpCit7Cit9CisKK3ZvaWQgRmFrZVB1c2hTZXJ2
aWNlQ29ubmVjdGlvbjo6c2V0SWdub3JlZFRvcGljcyhjb25zdCBWZWN0b3I8U3RyaW5nPiYgdG9w
aWNzKQoreworfQorCit2b2lkIEZha2VQdXNoU2VydmljZUNvbm5lY3Rpb246OnNldE9wcG9ydHVu
aXN0aWNUb3BpY3MoY29uc3QgVmVjdG9yPFN0cmluZz4mIHRvcGljcykKK3sKK30KKwordm9pZCBG
YWtlUHVzaFNlcnZpY2VDb25uZWN0aW9uOjpzZXROb25XYWtpbmdUb3BpY3MoY29uc3QgVmVjdG9y
PFN0cmluZz4mIHRvcGljcykKK3sKK30KKwordm9pZCBGYWtlUHVzaFNlcnZpY2VDb25uZWN0aW9u
OjpzZXRUb3BpY0xpc3RzKFRvcGljTGlzdHMmJiB0b3BpY0xpc3RzKQoreworfQorCit9IC8vIG5h
bWVzcGFjZSBXZWJQdXNoRApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC93ZWJwdXNoZC9QdXNo
U2VydmljZUNvbm5lY3Rpb24uaCBiL1NvdXJjZS9XZWJLaXQvd2VicHVzaGQvUHVzaFNlcnZpY2VD
b25uZWN0aW9uLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uM2NjNWU4OTU3ZDExMTY4YmM3MWIzMWZlYWMxZTA3NjY0
Nzc1MmQyOAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvd2VicHVzaGQvUHVzaFNl
cnZpY2VDb25uZWN0aW9uLmgKQEAgLTAsMCArMSw4MSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykg
MjAyMiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRp
b24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Cisg
KiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5n
IGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNl
IGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4g
UmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBj
b3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90
aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJ
UyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JT
IGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9G
IE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NF
IEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05U
UklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5U
QUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRF
IEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVT
SU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkg
T0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwg
T1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJ
TiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNF
RCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEg
b25jZQorCisjaW5jbHVkZSA8d3RmL0NvbXBsZXRpb25IYW5kbGVyLmg+CisjaW5jbHVkZSA8d3Rm
L0RlcXVlLmg+CisjaW5jbHVkZSA8d3RmL0Z1bmN0aW9uLmg+CisjaW5jbHVkZSA8d3RmL1JldGFp
blB0ci5oPgorI2luY2x1ZGUgPHd0Zi9WZWN0b3IuaD4KKyNpbmNsdWRlIDx3dGYvV29ya1F1ZXVl
Lmg+CisjaW5jbHVkZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+CisKK09CSkNfQ0xBU1MgTlNFcnJv
cjsKK09CSkNfQ0xBU1MgTlNTdHJpbmc7CitPQkpDX0NMQVNTIE5TRGljdGlvbmFyeTsKKworbmFt
ZXNwYWNlIFdlYlB1c2hEIHsKKworY2xhc3MgUHVzaFNlcnZpY2VDb25uZWN0aW9uIHsKK3B1Ymxp
YzoKKyAgICB1c2luZyBJbmNvbWluZ1B1c2hNZXNzYWdlSGFuZGxlciA9IEZ1bmN0aW9uPHZvaWQo
TlNTdHJpbmcgKiwgTlNEaWN0aW9uYXJ5ICopPjsKKworICAgIFB1c2hTZXJ2aWNlQ29ubmVjdGlv
bigpID0gZGVmYXVsdDsKKyAgICB2aXJ0dWFsIH5QdXNoU2VydmljZUNvbm5lY3Rpb24oKSA9IGRl
ZmF1bHQ7CisKKyAgICB1c2luZyBTdWJzY3JpYmVIYW5kbGVyID0gQ29tcGxldGlvbkhhbmRsZXI8
dm9pZChOU1N0cmluZyAqLCBOU0Vycm9yICopPjsKKyAgICB2aXJ0dWFsIHZvaWQgc3Vic2NyaWJl
KGNvbnN0IFN0cmluZyYgdG9waWMsIGNvbnN0IFZlY3Rvcjx1aW50OF90PiYgdmFwaWRQdWJsaWNL
ZXksIFN1YnNjcmliZUhhbmRsZXImJikgPSAwOworCisgICAgdXNpbmcgVW5zdWJzY3JpYmVIYW5k
bGVyID0gQ29tcGxldGlvbkhhbmRsZXI8dm9pZChib29sLCBOU0Vycm9yICopPjsKKyAgICB2aXJ0
dWFsIHZvaWQgdW5zdWJzY3JpYmUoY29uc3QgU3RyaW5nJiB0b3BpYywgY29uc3QgVmVjdG9yPHVp
bnQ4X3Q+JiB2YXBpZFB1YmxpY0tleSwgVW5zdWJzY3JpYmVIYW5kbGVyJiYpID0gMDsKKworICAg
IHZpcnR1YWwgVmVjdG9yPFN0cmluZz4gZW5hYmxlZFRvcGljcygpID0gMDsKKyAgICB2aXJ0dWFs
IFZlY3RvcjxTdHJpbmc+IGlnbm9yZWRUb3BpY3MoKSA9IDA7CisgICAgdmlydHVhbCBWZWN0b3I8
U3RyaW5nPiBvcHBvcnR1bmlzdGljVG9waWNzKCkgPSAwOworICAgIHZpcnR1YWwgVmVjdG9yPFN0
cmluZz4gbm9uV2FraW5nVG9waWNzKCkgPSAwOworCisgICAgdmlydHVhbCB2b2lkIHNldEVuYWJs
ZWRUb3BpY3MoY29uc3QgVmVjdG9yPFN0cmluZz4mKSA9IDA7CisgICAgdmlydHVhbCB2b2lkIHNl
dElnbm9yZWRUb3BpY3MoY29uc3QgVmVjdG9yPFN0cmluZz4mKSA9IDA7CisgICAgdmlydHVhbCB2
b2lkIHNldE9wcG9ydHVuaXN0aWNUb3BpY3MoY29uc3QgVmVjdG9yPFN0cmluZz4mKSA9IDA7Cisg
ICAgdmlydHVhbCB2b2lkIHNldE5vbldha2luZ1RvcGljcyhjb25zdCBWZWN0b3I8U3RyaW5nPiYp
ID0gMDsKKworICAgIHN0cnVjdCBUb3BpY0xpc3RzIHsKKyAgICAgICAgVmVjdG9yPFN0cmluZz4g
ZW5hYmxlZFRvcGljczsKKyAgICAgICAgVmVjdG9yPFN0cmluZz4gaWdub3JlZFRvcGljczsKKyAg
ICAgICAgVmVjdG9yPFN0cmluZz4gb3Bwb3J0dW5pc3RpY1RvcGljczsKKyAgICAgICAgVmVjdG9y
PFN0cmluZz4gbm9uV2FraW5nVG9waWNzOworICAgIH07CisgICAgdmlydHVhbCB2b2lkIHNldFRv
cGljTGlzdHMoVG9waWNMaXN0cyYmKSA9IDA7CisKKyAgICB2b2lkIHN0YXJ0TGlzdGVuaW5nRm9y
UHVzaE1lc3NhZ2VzKEluY29taW5nUHVzaE1lc3NhZ2VIYW5kbGVyJiYpOworICAgIHZvaWQgZGlk
UmVjZWl2ZVB1c2hNZXNzYWdlKE5TU3RyaW5nICp0b3BpYywgTlNEaWN0aW9uYXJ5ICp1c2VySW5m
byk7CisKK3ByaXZhdGU6CisgICAgSW5jb21pbmdQdXNoTWVzc2FnZUhhbmRsZXIgbV9pbmNvbWlu
Z1B1c2hNZXNzYWdlSGFuZGxlcjsKKyAgICBEZXF1ZTxzdGQ6OnBhaXI8UmV0YWluUHRyPE5TU3Ry
aW5nPiwgUmV0YWluUHRyPE5TRGljdGlvbmFyeT4+PiBtX3BlbmRpbmdQdXNoZXM7Cit9OworCit9
IC8vIG5hbWVzcGFjZSBXZWJQdXNoRApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC93ZWJwdXNo
ZC9QdXNoU2VydmljZUNvbm5lY3Rpb24ubW0gYi9Tb3VyY2UvV2ViS2l0L3dlYnB1c2hkL1B1c2hT
ZXJ2aWNlQ29ubmVjdGlvbi5tbQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi41MzQzMzI1ZWI1ZWEyMDNlOGRmNmZmODMw
M2NiOWIwZmZjODEzMjFiCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC93ZWJwdXNo
ZC9QdXNoU2VydmljZUNvbm5lY3Rpb24ubW0KQEAgLTAsMCArMSw2MCBAQAorLyoKKyAqIENvcHly
aWdodCAoQykgMjAyMiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVk
aXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3
aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUg
Zm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMg
b2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
LgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24g
YW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisg
KgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09O
VFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFO
VElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJS
QU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisg
KiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9S
IElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1Qs
IElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFN
QUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBT
VUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklU
UzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFO
WSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJ
QUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICog
QVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4g
SUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisK
KyNpbXBvcnQgImNvbmZpZy5oIgorI2ltcG9ydCAiUHVzaFNlcnZpY2VDb25uZWN0aW9uLmgiCisK
KyNpbXBvcnQgPHd0Zi9Xb3JrUXVldWUuaD4KKworbmFtZXNwYWNlIFdlYlB1c2hEIHsKKwordm9p
ZCBQdXNoU2VydmljZUNvbm5lY3Rpb246OnN0YXJ0TGlzdGVuaW5nRm9yUHVzaE1lc3NhZ2VzKElu
Y29taW5nUHVzaE1lc3NhZ2VIYW5kbGVyJiYgaGFuZGxlcikKK3sKKyAgICBtX2luY29taW5nUHVz
aE1lc3NhZ2VIYW5kbGVyID0gV1RGTW92ZShoYW5kbGVyKTsKKworICAgIGlmICghbV9wZW5kaW5n
UHVzaGVzLnNpemUoKSkKKyAgICAgICAgcmV0dXJuOworCisgICAgV29ya1F1ZXVlOjptYWluKCku
ZGlzcGF0Y2goW3RoaXNdKCkgbXV0YWJsZSB7CisgICAgICAgIHdoaWxlIChtX3BlbmRpbmdQdXNo
ZXMuc2l6ZSgpKSB7CisgICAgICAgICAgICBAYXV0b3JlbGVhc2Vwb29sIHsKKyAgICAgICAgICAg
ICAgICBhdXRvIG1lc3NhZ2UgPSBtX3BlbmRpbmdQdXNoZXMudGFrZUZpcnN0KCk7CisgICAgICAg
ICAgICAgICAgbV9pbmNvbWluZ1B1c2hNZXNzYWdlSGFuZGxlcihtZXNzYWdlLmZpcnN0LmdldCgp
LCBtZXNzYWdlLnNlY29uZC5nZXQoKSk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICB9
KTsKK30KKwordm9pZCBQdXNoU2VydmljZUNvbm5lY3Rpb246OmRpZFJlY2VpdmVQdXNoTWVzc2Fn
ZShOU1N0cmluZyAqdG9waWMsIE5TRGljdGlvbmFyeSAqdXNlckluZm8pCit7CisgICAgaWYgKCFt
X2luY29taW5nUHVzaE1lc3NhZ2VIYW5kbGVyKSB7CisgICAgICAgIG1fcGVuZGluZ1B1c2hlcy5h
cHBlbmQoeyB0b3BpYywgdXNlckluZm8gfSk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAg
ICBtX2luY29taW5nUHVzaE1lc3NhZ2VIYW5kbGVyKHRvcGljLCB1c2VySW5mbyk7Cit9CisKK30g
Ly8gbmFtZXNwYWNlIFdlYlB1c2hECmRpZmYgLS1naXQgYS9XZWJLaXRMaWJyYXJpZXMvQ2hhbmdl
TG9nIGIvV2ViS2l0TGlicmFyaWVzL0NoYW5nZUxvZwppbmRleCAxNGYxZDJlZGFkZTlhNGQwODc1
YTU4MTI1ZThmOWU4YzgwMzZmNGE4Li45ZTk5MGFjOWE5Mzc3YjAzMzYzNWIzMmJkZjcyMThhMzYz
NzlhNTZhIDEwMDY0NAotLS0gYS9XZWJLaXRMaWJyYXJpZXMvQ2hhbmdlTG9nCisrKyBiL1dlYktp
dExpYnJhcmllcy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNCBAQAorMjAyMi0wMS0zMCAgQmVuIE5o
YW0gIDxuaGFtQGFwcGxlLmNvbT4KKworICAgICAgICBJbXBvcnQgQVBTQ29ubmVjdGlvbi1yZWxh
dGVkIFNQSQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
MjM1ODU2CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAg
QWRkIGFuIEFwcGxlUHVzaFNlcnZpY2Ugc3R1YiBzbyB3ZSBjYW4gYnVpbGQgYWdhaW5zdCBpdCB3
aXRoIHB1YmxpYyBTREtzLgorCisgICAgICAgICogV2ViS2l0UHJpdmF0ZUZyYW1ld29ya1N0dWJz
L2lPUy8xNS9BcHBsZVB1c2hTZXJ2aWNlLmZyYW1ld29yay9BcHBsZVB1c2hTZXJ2aWNlLnRiZDog
QWRkZWQuCisKIDIwMjItMDEtMDEgIEplZmYgTWlsbGVyICA8amVmZm1AYXBwbGUuY29tPgogCiAg
ICAgICAgIFVwZGF0ZSB1c2VyLXZpc2libGUgY29weXJpZ2h0IHN0cmluZ3MgdG8gaW5jbHVkZSAy
MDIyCmRpZmYgLS1naXQgYS9XZWJLaXRMaWJyYXJpZXMvV2ViS2l0UHJpdmF0ZUZyYW1ld29ya1N0
dWJzL2lPUy8xNS9BcHBsZVB1c2hTZXJ2aWNlLmZyYW1ld29yay9BcHBsZVB1c2hTZXJ2aWNlLnRi
ZCBiL1dlYktpdExpYnJhcmllcy9XZWJLaXRQcml2YXRlRnJhbWV3b3JrU3R1YnMvaU9TLzE1L0Fw
cGxlUHVzaFNlcnZpY2UuZnJhbWV3b3JrL0FwcGxlUHVzaFNlcnZpY2UudGJkCm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
LjUyODdmZmUyYmY5YjQ5OGUyYjRmZWU0NDc0NWRkMmRiMTNiZjI0YjMKLS0tIC9kZXYvbnVsbAor
KysgYi9XZWJLaXRMaWJyYXJpZXMvV2ViS2l0UHJpdmF0ZUZyYW1ld29ya1N0dWJzL2lPUy8xNS9B
cHBsZVB1c2hTZXJ2aWNlLmZyYW1ld29yay9BcHBsZVB1c2hTZXJ2aWNlLnRiZApAQCAtMCwwICsx
LDc2IEBACistLS0gIXRhcGktdGJkCit0YmQtdmVyc2lvbjogICAgIDQKK3RhcmdldHM6ICAgICAg
ICAgWyBhcm12Ny1pb3MsIGFybXY3cy1pb3MsIGFybTY0LWlvcywgYXJtNjRlLWlvcyBdCit1dWlk
czoKKyAgLSB0YXJnZXQ6ICAgICAgICAgIGFybXY3LWlvcworICAgIHZhbHVlOiAgICAgICAgICAg
RkEzMTY5NDktOTY2MC0zRERCLTlDQzQtNEEzMDVCN0IyN0U5CisgIC0gdGFyZ2V0OiAgICAgICAg
ICBhcm12N3MtaW9zCisgICAgdmFsdWU6ICAgICAgICAgICA1MTdERkFDOC1FRkZGLTNEMTEtOUQ5
MS04MDFGMTY1QzM1ODkKKyAgLSB0YXJnZXQ6ICAgICAgICAgIGFybTY0LWlvcworICAgIHZhbHVl
OiAgICAgICAgICAgOTQwMzNGMDgtRkM1NC0zNEZBLTkzQzAtNzUzQTA4OTcwMjdCCisgIC0gdGFy
Z2V0OiAgICAgICAgICBhcm02NGUtaW9zCisgICAgdmFsdWU6ICAgICAgICAgICBFQ0I3NDYwMy04
OENELTM2N0QtQjYyMy1ERjEwQTc4RDFDMDEKK2luc3RhbGwtbmFtZTogICAgJy9TeXN0ZW0vTGli
cmFyeS9Qcml2YXRlRnJhbWV3b3Jrcy9BcHBsZVB1c2hTZXJ2aWNlLmZyYW1ld29yay9BcHBsZVB1
c2hTZXJ2aWNlJworZXhwb3J0czoKKyAgLSB0YXJnZXRzOiAgICAgICAgIFsgYXJtdjctaW9zLCBh
cm12N3MtaW9zIF0KKyAgICBzeW1ib2xzOiAgICAgICAgIFsgX0FQU0Fzc2VydCwgX0FQU0Nvbm5l
Y3Rpb25JbnRlcnJ1cHRlZEhhbmRsZXJCbG9jaywgX0FQU0Nvbm5lY3Rpb25JbnZhbGlkYXRpb25I
YW5kbGVyQmxvY2ssIAorICAgICAgICAgICAgICAgICAgICAgICBfQVBTQ29weVZhbHVlRm9yS2V5
LCBfQVBTQ3JlYXRlTUlHU2VydmVyU291cmNlLCBfQVBTQ3JlYXRlTUlHU2VydmVyU291cmNlV2l0
aENvbnRleHQsIAorICAgICAgICAgICAgICAgICAgICAgICBfQVBTR2V0Qm9vbGVhblZhbHVlRm9y
S2V5LCBfQVBTR2V0Q29udGV4dEZvckNhbGxvdXRDdXJyZW50TUlHU2VydmVyU291cmNlLCAKKyAg
ICAgICAgICAgICAgICAgICAgICAgX0FQU0dldE1hY2hQb3J0Rm9yTUlHU2VydmVyU291cmNlLCBf
QVBTSW5jb21pbmdNZXNzYWdlRnJvbVN0b3JhZ2VLZXksIAorICAgICAgICAgICAgICAgICAgICAg
ICBfQVBTSW5jb21pbmdNZXNzYWdlTGFzdE1lc3NhZ2VGcm9tU3RvcmFnZUtleSwgX0FQU0luY29t
aW5nTWVzc2FnZVRpbWVzdGFtcEtleSwgCisgICAgICAgICAgICAgICAgICAgICAgIF9BUFNJbmNv
bWluZ01lc3NhZ2VUb2tlbktleSwgX0FQU01lc3NhZ2VDb3JyZWxhdGlvbklkZW50aWZpZXJLZXks
IAorICAgICAgICAgICAgICAgICAgICAgICBfQVBTTWVzc2FnZUdVSURLZXksIF9BUFNNZXNzYWdl
SWRlbnRpZmllcktleSwgX0FQU01lc3NhZ2VUb3BpY0tleSwgCisgICAgICAgICAgICAgICAgICAg
ICAgIF9BUFNNZXNzYWdlVXNlckluZm9LZXksIF9BUFNPdXRnb2luZ01lc3NhZ2VDYW5jZWxsZWRL
ZXksIF9BUFNPdXRnb2luZ01lc3NhZ2VDcml0aWNhbEtleSwgCisgICAgICAgICAgICAgICAgICAg
ICAgIF9BUFNPdXRnb2luZ01lc3NhZ2VJREtleSwgX0FQU091dGdvaW5nTWVzc2FnZVBheWxvYWRG
b3JtYXRLZXksIAorICAgICAgICAgICAgICAgICAgICAgICBfQVBTT3V0Z29pbmdNZXNzYWdlUGF5
bG9hZExlbmd0aEtleSwgX0FQU091dGdvaW5nTWVzc2FnZVByaW9yaXR5S2V5LCAKKyAgICAgICAg
ICAgICAgICAgICAgICAgX0FQU091dGdvaW5nTWVzc2FnZVNlbmREYXRlS2V5LCBfQVBTT3V0Z29p
bmdNZXNzYWdlU2VuZEludGVyZmFjZUtleSwgCisgICAgICAgICAgICAgICAgICAgICAgIF9BUFNP
dXRnb2luZ01lc3NhZ2VTZW5kZXJUb2tlbk5hbWVLZXksIF9BUFNPdXRnb2luZ01lc3NhZ2VTZW50
S2V5LCAKKyAgICAgICAgICAgICAgICAgICAgICAgX0FQU091dGdvaW5nTWVzc2FnZVRpbWVkT3V0
S2V5LCBfQVBTT3V0Z29pbmdNZXNzYWdlVGltZW91dEtleSwgCisgICAgICAgICAgICAgICAgICAg
ICAgIF9BUFNPdXRnb2luZ01lc3NhZ2VUaW1lc3RhbXBLZXksIF9BUFNQcmVmQnVuZGxlSWRlbnRp
ZmllciwgCisgICAgICAgICAgICAgICAgICAgICAgIF9BUFNTZXRWYWx1ZUZvcktleSwgX0FQU1N5
bmNocm9uaXplLCBfQVBTWFBDTG9nLCBfQVBTWFBDU2V0TG9nQmxvY2ssIAorICAgICAgICAgICAg
ICAgICAgICAgICBfQ29ubmVjdGlvbkRlbGl2ZXJfc2VydmVyLCBfQ29ubmVjdGlvbkRlbGl2ZXJf
c2VydmVyX3JvdXRpbmUsIAorICAgICAgICAgICAgICAgICAgICAgICBfX0FQU0Nvbm5lY3Rpb25E
ZWxpdmVyX3N1YnN5c3RlbSwgX19BUFNKV1N0cmluZ1RvQ2hhclB0ciwgCisgICAgICAgICAgICAg
ICAgICAgICAgIF9fQVBTUGluZ0NsaWVudCwgX2Fwc19jb25uZWN0aW9uX2V2ZW50X2hhbmRsZXIg
XQorICAgIG9iamMtY2xhc3NlczogICAgWyBBUFNGaWxlTG9nZ2luZywgQVBTTXVsdGlVc2VyRlMs
IEFQU011bHRpVXNlck1vZGUsIF9BUFNMb2dGaWxlQ29tcHJlc3NvciBdCisgICAgb2JqYy1pdmFy
czogICAgICBbIF9BUFNMb2dGaWxlQ29tcHJlc3Nvci5fYXJjaGl2ZXJzIF0KKyAgLSB0YXJnZXRz
OiAgICAgICAgIFsgYXJtNjQtaW9zLCBhcm02NGUtaW9zLCBhcm12Ny1pb3MsIGFybXY3cy1pb3Mg
XQorICAgIHN5bWJvbHM6ICAgICAgICAgWyBfQVBTQWxlcnQsIF9BUFNCdW5kbGVJZGVudGlmaWVy
LCBfQVBTQ2FjaGVkSVBLZXksIF9BUFNDYXJyaWVyTmFtZUtleSwgCisgICAgICAgICAgICAgICAg
ICAgICAgIF9BUFNDbGllbnRJZGVudGl0eVVwZGF0ZWROb3RpZmljYXRpb24sIF9BUFNDb25uZWN0
aW9uSW5pdGlhdGVFbnRpdGxlbWVudCwgCisgICAgICAgICAgICAgICAgICAgICAgIF9BUFNDb25u
ZWN0aW9uT3ZlcnJpZGVOYW1lZERlbGVnYXRlUG9ydCwgX0FQU0Nvbm5lY3Rpb25TeXN0ZW1Qcm9j
ZXNzRW50aXRsZW1lbnQsIAorICAgICAgICAgICAgICAgICAgICAgICBfQVBTQ3JlYXRlRGljdGlv
bmFyeUZyb21YUENPYmplY3QsIF9BUFNDcmVhdGVYUENPYmplY3RGcm9tRGljdGlvbmFyeSwgCisg
ICAgICAgICAgICAgICAgICAgICAgIF9BUFNDcml0aWNhbFdha2VFbnRpdGxlbWVudCwgX0FQU0Rh
cmtXYWtlRW50aXRsZW1lbnQsIF9BUFNEYXRhRm9yUHJvcGVydHlMaXN0LCAKKyAgICAgICAgICAg
ICAgICAgICAgICAgX0FQU0RlY29kZURpY3Rpb25hcnksIF9BUFNEZWZhdWx0VG9rZW5OYW1lLCBf
QVBTRGVmYXVsdFVzZXJJRCwgCisgICAgICAgICAgICAgICAgICAgICAgIF9BUFNEZW1vSG9zdHNL
ZXksIF9BUFNFbmNvZGVEaWN0aW9uYXJ5LCBfQVBTRW52aXJvbm1lbnREZW1vLCAKKyAgICAgICAg
ICAgICAgICAgICAgICAgX0FQU0Vudmlyb25tZW50RGV2ZWxvcG1lbnQsIF9BUFNFbnZpcm9ubWVu
dFByb2R1Y3Rpb24sIF9BUFNFbnZpcm9ubWVudFFBMiwgCisgICAgICAgICAgICAgICAgICAgICAg
IF9BUFNFcnJvciwgX0FQU0Vycm9yRG9tYWluLCBfQVBTRm9yY2VLZWVwQWxpdmVWMUtleSwgX0FQ
U0dldEVuYWJsZUNyaXRpY2FsUmVsaWFiaWxpdHksIAorICAgICAgICAgICAgICAgICAgICAgICBf
QVBTR2V0RW5hYmxlU3RhdHVzTm90aWZpY2F0aW9ucywgX0FQU0dldEVuYWJsZWRUb3BpY3NGcm9t
WFBDRGljdGlvbmFyeSwgCisgICAgICAgICAgICAgICAgICAgICAgIF9BUFNHZXRJZ25vcmVkVG9w
aWNzRnJvbVhQQ0RpY3Rpb25hcnksIF9BUFNHZXROb25XYWtpbmdUb3BpY3NGcm9tWFBDRGljdGlv
bmFyeSwgCisgICAgICAgICAgICAgICAgICAgICAgIF9BUFNHZXRPcHBvcnR1bmlzdGljVG9waWNz
RnJvbVhQQ0RpY3Rpb25hcnksIF9BUFNHZXRVc2VzQXBwTGF1bmNoU3RhdHMsIAorICAgICAgICAg
ICAgICAgICAgICAgICBfQVBTR2V0WFBDQXJyYXlGcm9tRGljdGlvbmFyeSwgX0FQU0dldFhQQ0Jv
b2xGcm9tRGljdGlvbmFyeSwgCisgICAgICAgICAgICAgICAgICAgICAgIF9BUFNHZXRYUENDb25u
ZWN0aW9uQ29udGV4dCwgX0FQU0dldFhQQ0RhdGFGcm9tRGljdGlvbmFyeSwgCisgICAgICAgICAg
ICAgICAgICAgICAgIF9BUFNHZXRYUENEaWN0aW9uYXJ5RnJvbURpY3Rpb25hcnksIF9BUFNHZXRY
UENEb3VibGVGcm9tRGljdGlvbmFyeSwgCisgICAgICAgICAgICAgICAgICAgICAgIF9BUFNHZXRY
UENJbnRGcm9tRGljdGlvbmFyeSwgX0FQU0dldFhQQ05TVUludGVnZXJGcm9tRGljdGlvbmFyeSwg
CisgICAgICAgICAgICAgICAgICAgICAgIF9BUFNHZXRYUENTdHJpbmdGcm9tRGljdGlvbmFyeSwg
X0FQU0hleFN0cmluZ0Zyb21OU0RhdGEsIF9BUFNJbmNvbWluZ01lc3NhZ2VQcmlvcml0eVN0cmlu
ZywgCisgICAgICAgICAgICAgICAgICAgICAgIF9BUFNJbnNlcnRCb29sc1RvWFBDRGljdGlvbmFy
eSwgX0FQU0luc2VydERhdGFzVG9YUENEaWN0aW9uYXJ5LCAKKyAgICAgICAgICAgICAgICAgICAg
ICAgX0FQU0luc2VydERvdWJsZXNUb1hQQ0RpY3Rpb25hcnksIF9BUFNJbnNlcnRFbmFibGVkVG9w
aWNzVG9YUENEaWN0aW9uYXJ5LCAKKyAgICAgICAgICAgICAgICAgICAgICAgX0FQU0luc2VydEln
bm9yZWRUb3BpY3NUb1hQQ0RpY3Rpb25hcnksIF9BUFNJbnNlcnRJbnRzVG9YUENEaWN0aW9uYXJ5
LCAKKyAgICAgICAgICAgICAgICAgICAgICAgX0FQU0luc2VydE5TQXJyYXlzVG9YUENEaWN0aW9u
YXJ5LCBfQVBTSW5zZXJ0TlNEaWN0aW9uYXJpZXNUb1hQQ0RpY3Rpb25hcnksIAorICAgICAgICAg
ICAgICAgICAgICAgICBfQVBTSW5zZXJ0TlNTdHJpbmdzVG9YUENEaWN0aW9uYXJ5LCBfQVBTSW5z
ZXJ0TlNVSW50ZWdlcnNUb1hQQ0RpY3Rpb25hcnksIAorICAgICAgICAgICAgICAgICAgICAgICBf
QVBTSW5zZXJ0Tm9uV2FraW5nVG9waWNzVG9YUENEaWN0aW9uYXJ5LCBfQVBTSW5zZXJ0T3Bwb3J0
dW5pc3RpY1RvcGljc1RvWFBDRGljdGlvbmFyeSwgCisgICAgICAgICAgICAgICAgICAgICAgIF9B
UFNJc1NULCBfQVBTTGF1bmNoZEpvYkxhYmVsLCBfQVBTTlNEYXRhRnJvbUhleFN0cmluZywgX0FQ
U1BlckFwcFRva2VuQXBwSWRzS2V5LCAKKyAgICAgICAgICAgICAgICAgICAgICAgX0FQU1BlcnNp
c3RlbnRUb3BpY3NLZXksIF9BUFNQb3dlckxvZywgX0FQU1ByZXR0eVByaW50Q29sbGVjdGlvbiwg
CisgICAgICAgICAgICAgICAgICAgICAgIF9BUFNQcm9wZXJ0eUxpc3RGcm9tTlNEYXRhLCBfQVBT
UHViU3ViRXJyb3IsIF9BUFNQdWJTdWJFcnJvckRvbWFpbiwgCisgICAgICAgICAgICAgICAgICAg
ICAgIF9BUFNQdXNoV2FrZUVudGl0bGVtZW50LCBfQVBTU2FmZUFycmF5T2ZTdHJpbmdzLCBfQVBT
U2V0WFBDQ29ubmVjdGlvbkNvbnRleHQsIAorICAgICAgICAgICAgICAgICAgICAgICBfQVBTU3lz
dGVtVXNlcnNLZXksIF9BUFNUcnVzdEFsbEhvc3RzLCBfQVBTVW5kZXJseWluZ0Vycm9yLCAKKyAg
ICAgICAgICAgICAgICAgICAgICAgX0FQU1VzZXNBcHBMYXVuY2hTdGF0c0tleSwgX0FQU1hQQ0Nv
bmZpZ3VyZUNvbm5lY3Rpb24sIF9BUFNYUENDb25uZWN0aW9uU2V0RXZlbnRIYW5kbGVycywgCisg
ICAgICAgICAgICAgICAgICAgICAgIF9BUFNYUENDcmVhdGVDb25uZWN0aW9uRm9yU2VydmljZSwg
X0FQU1hQQ0NyZWF0ZUNvbm5lY3Rpb25Gb3JTZXJ2aWNlV2l0aFF1ZXVlLCAKKyAgICAgICAgICAg
ICAgICAgICAgICAgX0FQU1hQQ0NyZWF0ZVNlcnZlckNvbm5lY3Rpb24sIF9BUFNYUENNZXNzYWdl
VHlwZUtleSwgX2tBUFNUYXNrQ2xpZW50U2VydmljZU5hbWUgXQorICAgIG9iamMtY2xhc3Nlczog
ICAgWyBBUFNBY2Nlc3NDaGVjaywgQVBTQ2hhbm5lbFN1YnNjcmlwdGlvbkZhaWx1cmUsIEFQU0Nv
bm5lY3Rpb24sIAorICAgICAgICAgICAgICAgICAgICAgICBBUFNETlNSZXF1ZXN0LCBBUFNETlNS
ZXNwb25zZSwgQVBTSW5jb21pbmdNZXNzYWdlLCBBUFNMb2csIAorICAgICAgICAgICAgICAgICAg
ICAgICBBUFNNZXNzYWdlLCBBUFNPdXRnb2luZ01lc3NhZ2UsIEFQU1Rhc2tDbGllbnQgXQorICAg
IG9iamMtaXZhcnM6ICAgICAgWyBBUFNETlNSZXF1ZXN0Ll9lbnZpcm9ubWVudCwgQVBTRE5TUmVx
dWVzdC5fZmxhZ3MsIEFQU0ROU1JlcXVlc3QuX2hvc3RuYW1lLCAKKyAgICAgICAgICAgICAgICAg
ICAgICAgQVBTRE5TUmVxdWVzdC5fcmVxdWVzdFN0YXJ0VGltZSwgQVBTRE5TUmVxdWVzdC5fcmVz
cG9uc2VCbG9jaywgCisgICAgICAgICAgICAgICAgICAgICAgIEFQU0ROU1JlcXVlc3QuX3RpbWVv
dXQsIEFQU0ROU1Jlc3BvbnNlLl9ob3N0bmFtZSwgQVBTRE5TUmVzcG9uc2UuX2lwdjRBZGRyZXNz
LCAKKyAgICAgICAgICAgICAgICAgICAgICAgQVBTRE5TUmVzcG9uc2UuX2lwdjZBZGRyZXNzLCBB
UFNUYXNrQ2xpZW50Ll9jbGllbnRRdWV1ZSwgQVBTVGFza0NsaWVudC5fY29ubmVjdGlvbiwgCisg
ICAgICAgICAgICAgICAgICAgICAgIEFQU1Rhc2tDbGllbnQuX2Vudmlyb25tZW50LCBBUFNUYXNr
Q2xpZW50Ll9vdXRzdGFuZGluZ0ROU1JlcXVlc3RzIF0KKy4uLgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>450430</attachid>
            <date>2022-01-31 12:21:39 -0800</date>
            <delta_ts>2022-01-31 12:57:54 -0800</delta_ts>
            <desc>patch feedback</desc>
            <filename>bug-235856-20220131122138.patch</filename>
            <type>text/plain</type>
            <size>54339</size>
            <attacher name="Ben Nham">nham</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg4ODA2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IDFiZjNjNDYwZmJkNTk3MjkyMmMxZTRk
YjM1MDM4ZTgxY2ZkM2I0YWUuLmY0YjkwNDYwYjM3NWZlZjAyODg3ZTQxNzgxZmUwZWNiMDgzNjZh
ZDYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMTQgQEAKKzIwMjItMDEtMzAgIEJlbiBOaGFtICA8bmhhbUBhcHBs
ZS5jb20+CisKKyAgICAgICAgSW1wb3J0IEFQU0Nvbm5lY3Rpb24tcmVsYXRlZCBTUEkKKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIzNTg1NgorCisgICAg
ICAgIFJldmlld2VkIFlvdWVubiBGYWJsZXQuCisKKyAgICAgICAgQWRkIGEgSEFWRSBtYWNybyB0
byBndWFyZCBzb21lIG9mIHRoZSBuZXdlciBTUEkgaW4gQVBTQ29ubmVjdGlvbi4KKworICAgICAg
ICAqIHd0Zi9QbGF0Zm9ybUhhdmUuaDoKKwogMjAyMi0wMS0zMCAgRGllZ28gUGlubyBHYXJjaWEg
IDxkcGlub0BpZ2FsaWEuY29tPgogCiAgICAgICAgIFtXaW5DYWlyb10gJ2ZpbGVTeXN0ZW1SZXBy
ZXNlbnRhdGlvbicgaWRlbnRpZmllciBub3QgZm91bmQgaW4gVVJMLmNwcApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwppbmRleCA2
NGE2ODA3NjdlMWVkNmZmYzJlYmM2NzU1ODJhMDYxN2JmOTdlNDZiLi5hNTQ4ZGU5NWMxYzk2ODc1
ZDJiMDM2MDVkZDgwNTkxODlmNWViMmY2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0NoYW5n
ZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwpAQCAtMSwzICsxLDU0IEBACisyMDIy
LTAxLTMwICBCZW4gTmhhbSAgPG5oYW1AYXBwbGUuY29tPgorCisgICAgICAgIEltcG9ydCBBUFND
b25uZWN0aW9uLXJlbGF0ZWQgU1BJCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0yMzU4NTYKKworICAgICAgICBSZXZpZXdlZCBZb3Vlbm4gRmFibGV0Lgor
CisgICAgICAgIFRoaXMgaW1wb3J0cyB0aGUgU1BJIGRlY2xhcmF0aW9ucyBuZWNlc3NhcnkgdG8g
YnVpbGQgYWdhaW5zdCBBcHBsZVB1c2hTZXJ2aWNlIGluIFdlYktpdC4gSXQKKyAgICAgICAgYWxz
byBpbmNsdWRlcyBhIFB1c2hTZXJ2aWNlQ29ubmVjdGlvbiBpbnRlcmZhY2UgdGhhdCBjYW4gc2l0
IGluIGZyb250IG9mIEFQU0Nvbm5lY3Rpb24sIGFuZAorICAgICAgICBhIGZha2UgaW50ZXJmYWNl
IHRoYXQgd2lsbCBiZSBmbGVzaGVkIG91dCBmb3IgdGVzdGluZyBwdXJwb3Nlcy4KKworICAgICAg
ICAqIENvbmZpZ3VyYXRpb25zL1dlYktpdC54Y2NvbmZpZzoKKyAgICAgICAgKiBQbGF0Zm9ybS9z
cGkvQ29jb2EvQXBwbGVQdXNoU2VydmljZVNQSS5oOiBBZGRlZC4KKyAgICAgICAgKiBXZWJLaXQu
eGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgKiB3ZWJwdXNoZC9BcHBsZVB1c2hT
ZXJ2aWNlQ29ubmVjdGlvbi5oOiBBZGRlZC4KKyAgICAgICAgKiB3ZWJwdXNoZC9BcHBsZVB1c2hT
ZXJ2aWNlQ29ubmVjdGlvbi5tbTogQWRkZWQuCisgICAgICAgICgtW19XS0FQU0Nvbm5lY3Rpb25E
ZWxlZ2F0ZSBpbml0V2l0aENvbm5lY3Rpb246XSk6CisgICAgICAgICgtW19XS0FQU0Nvbm5lY3Rp
b25EZWxlZ2F0ZSBjb25uZWN0aW9uOmRpZFJlY2VpdmVQdWJsaWNUb2tlbjpdKToKKyAgICAgICAg
KC1bX1dLQVBTQ29ubmVjdGlvbkRlbGVnYXRlIGNvbm5lY3Rpb246ZGlkUmVjZWl2ZUluY29taW5n
TWVzc2FnZTpdKToKKyAgICAgICAgKFdlYlB1c2hEOjpBcHBsZVB1c2hTZXJ2aWNlQ29ubmVjdGlv
bjo6QXBwbGVQdXNoU2VydmljZUNvbm5lY3Rpb24pOgorICAgICAgICAoV2ViUHVzaEQ6Om1ha2VU
b2tlbkluZm8pOgorICAgICAgICAoV2ViUHVzaEQ6OkFwcGxlUHVzaFNlcnZpY2VDb25uZWN0aW9u
OjpzdWJzY3JpYmUpOgorICAgICAgICAoV2ViUHVzaEQ6OkFwcGxlUHVzaFNlcnZpY2VDb25uZWN0
aW9uOjp1bnN1YnNjcmliZSk6CisgICAgICAgIChXZWJQdXNoRDo6QXBwbGVQdXNoU2VydmljZUNv
bm5lY3Rpb246OmVuYWJsZWRUb3BpY3MpOgorICAgICAgICAoV2ViUHVzaEQ6OkFwcGxlUHVzaFNl
cnZpY2VDb25uZWN0aW9uOjppZ25vcmVkVG9waWNzKToKKyAgICAgICAgKFdlYlB1c2hEOjpBcHBs
ZVB1c2hTZXJ2aWNlQ29ubmVjdGlvbjo6b3Bwb3J0dW5pc3RpY1RvcGljcyk6CisgICAgICAgIChX
ZWJQdXNoRDo6QXBwbGVQdXNoU2VydmljZUNvbm5lY3Rpb246Om5vbldha2luZ1RvcGljcyk6Cisg
ICAgICAgIChXZWJQdXNoRDo6QXBwbGVQdXNoU2VydmljZUNvbm5lY3Rpb246OnNldEVuYWJsZWRU
b3BpY3MpOgorICAgICAgICAoV2ViUHVzaEQ6OkFwcGxlUHVzaFNlcnZpY2VDb25uZWN0aW9uOjpz
ZXRJZ25vcmVkVG9waWNzKToKKyAgICAgICAgKFdlYlB1c2hEOjpBcHBsZVB1c2hTZXJ2aWNlQ29u
bmVjdGlvbjo6c2V0T3Bwb3J0dW5pc3RpY1RvcGljcyk6CisgICAgICAgIChXZWJQdXNoRDo6QXBw
bGVQdXNoU2VydmljZUNvbm5lY3Rpb246OnNldE5vbldha2luZ1RvcGljcyk6CisgICAgICAgIChX
ZWJQdXNoRDo6QXBwbGVQdXNoU2VydmljZUNvbm5lY3Rpb246OnNldFRvcGljTGlzdHMpOgorICAg
ICAgICAqIHdlYnB1c2hkL0Zha2VQdXNoU2VydmljZUNvbm5lY3Rpb24uaDogQWRkZWQuCisgICAg
ICAgICogd2VicHVzaGQvRmFrZVB1c2hTZXJ2aWNlQ29ubmVjdGlvbi5tbTogQWRkZWQuCisgICAg
ICAgIChXZWJQdXNoRDo6RmFrZVB1c2hTZXJ2aWNlQ29ubmVjdGlvbjo6RmFrZVB1c2hTZXJ2aWNl
Q29ubmVjdGlvbik6CisgICAgICAgIChXZWJQdXNoRDo6RmFrZVB1c2hTZXJ2aWNlQ29ubmVjdGlv
bjo6c3Vic2NyaWJlKToKKyAgICAgICAgKFdlYlB1c2hEOjpGYWtlUHVzaFNlcnZpY2VDb25uZWN0
aW9uOjp1bnN1YnNjcmliZSk6CisgICAgICAgIChXZWJQdXNoRDo6RmFrZVB1c2hTZXJ2aWNlQ29u
bmVjdGlvbjo6ZW5hYmxlZFRvcGljcyk6CisgICAgICAgIChXZWJQdXNoRDo6RmFrZVB1c2hTZXJ2
aWNlQ29ubmVjdGlvbjo6aWdub3JlZFRvcGljcyk6CisgICAgICAgIChXZWJQdXNoRDo6RmFrZVB1
c2hTZXJ2aWNlQ29ubmVjdGlvbjo6b3Bwb3J0dW5pc3RpY1RvcGljcyk6CisgICAgICAgIChXZWJQ
dXNoRDo6RmFrZVB1c2hTZXJ2aWNlQ29ubmVjdGlvbjo6bm9uV2FraW5nVG9waWNzKToKKyAgICAg
ICAgKFdlYlB1c2hEOjpGYWtlUHVzaFNlcnZpY2VDb25uZWN0aW9uOjpzZXRFbmFibGVkVG9waWNz
KToKKyAgICAgICAgKFdlYlB1c2hEOjpGYWtlUHVzaFNlcnZpY2VDb25uZWN0aW9uOjpzZXRJZ25v
cmVkVG9waWNzKToKKyAgICAgICAgKFdlYlB1c2hEOjpGYWtlUHVzaFNlcnZpY2VDb25uZWN0aW9u
OjpzZXRPcHBvcnR1bmlzdGljVG9waWNzKToKKyAgICAgICAgKFdlYlB1c2hEOjpGYWtlUHVzaFNl
cnZpY2VDb25uZWN0aW9uOjpzZXROb25XYWtpbmdUb3BpY3MpOgorICAgICAgICAoV2ViUHVzaEQ6
OkZha2VQdXNoU2VydmljZUNvbm5lY3Rpb246OnNldFRvcGljTGlzdHMpOgorICAgICAgICAqIHdl
YnB1c2hkL1B1c2hTZXJ2aWNlQ29ubmVjdGlvbi5oOiBBZGRlZC4KKyAgICAgICAgKiB3ZWJwdXNo
ZC9QdXNoU2VydmljZUNvbm5lY3Rpb24ubW06IEFkZGVkLgorICAgICAgICAoV2ViUHVzaEQ6OlB1
c2hTZXJ2aWNlQ29ubmVjdGlvbjo6c3RhcnRMaXN0ZW5pbmdGb3JQdXNoTWVzc2FnZXMpOgorICAg
ICAgICAoV2ViUHVzaEQ6OlB1c2hTZXJ2aWNlQ29ubmVjdGlvbjo6ZGlkUmVjZWl2ZVB1c2hNZXNz
YWdlKToKKwogMjAyMi0wMS0zMCAgUnlvc3VrZSBOaXdhICA8cm5pd2FAd2Via2l0Lm9yZz4KIAog
ICAgICAgICBEZWxldGUgY29kZSBmb3Iga2V5Z2VuIGVsZW1lbnQKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XVEYvd3RmL1BsYXRmb3JtSGF2ZS5oIGIvU291cmNlL1dURi93dGYvUGxhdGZvcm1IYXZlLmgK
aW5kZXggYTA0Nzk4ZTNiNDBhZjRkZGMyYjA5MDhlMzY5NTU1ZDU0MDY2OGQzMy4uOGJhNjllNmFi
NWQ2MzM3ODE3MGQxM2MyNjMzMzhlYWM1Y2UwYTY1ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dURi93
dGYvUGxhdGZvcm1IYXZlLmgKKysrIGIvU291cmNlL1dURi93dGYvUGxhdGZvcm1IYXZlLmgKQEAg
LTExNjMsMyArMTE2Myw4IEBACiAgICAgfHwgKFBMQVRGT1JNKFdBVENIT1MpICYmIF9fV0FUQ0hf
T1NfVkVSU0lPTl9NQVhfQUxMT1dFRCA+PSA4MDUwMCkKICNkZWZpbmUgSEFWRV9DRk5FVFdPUktf
RElTQUJMRV9DQUNIRV9TUEkgMQogI2VuZGlmCisKKyNpZiAoKFBMQVRGT1JNKE1BQykgJiYgX19N
QUNfT1NfWF9WRVJTSU9OX01JTl9SRVFVSVJFRCA+PSAxMzAwMDApIFwKKyAgICB8fCAoUExBVEZP
Uk0oSU9TKSAmJiBfX0lQSE9ORV9PU19WRVJTSU9OX01JTl9SRVFVSVJFRCA+PSAxNjAwMDApKQor
I2RlZmluZSBIQVZFX0FQUExFX1BVU0hfU0VSVklDRV9VUkxfVE9LRU5fU1VQUE9SVCAxCisjZW5k
aWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvQ29uZmlndXJhdGlvbnMvV2ViS2l0LnhjY29u
ZmlnIGIvU291cmNlL1dlYktpdC9Db25maWd1cmF0aW9ucy9XZWJLaXQueGNjb25maWcKaW5kZXgg
ZDQ0OTMxYjM4MjgzZjNjYzExZTEzYTUxMGIzODdkMjE2M2E5MTAxMC4uNGQ3NThkZTI5MzdiMzNi
YTVmMzFiYWRkZDMwN2VkZmI4M2Y3MDg1OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9Db25m
aWd1cmF0aW9ucy9XZWJLaXQueGNjb25maWcKKysrIGIvU291cmNlL1dlYktpdC9Db25maWd1cmF0
aW9ucy9XZWJLaXQueGNjb25maWcKQEAgLTU0LDYgKzU0LDEzIEBAIFdLX0FDQ0VTU0lCSUxJVFlf
TERGTEFHU19DT0NPQV9UT1VDSF9ZRVMgPSAtbEFjY2Vzc2liaWxpdHk7CiBXS19BQ0NFU1NJQklM
SVRZX0xERkxBR1NfQ09DT0FfVE9VQ0hfTk8gPSAkKFdLX0FDQ0VTU0lCSUxJVFlfTERGTEFHUyQo
V0tfTUFDT1NfMTAxNCkpOwogV0tfQUNDRVNTSUJJTElUWV9MREZMQUdTX01BQ09TX1NJTkNFXzEw
MTQgPSAtd2Vha19saWJyYXJ5IC91c3IvbGliL2xpYkFjY2Vzc2liaWxpdHkuZHlsaWI7CiAKK1dL
X0FQUExFX1BVU0hfU0VSVklDRV9MREZMQUdTID0gJChXS19BUFBMRV9QVVNIX1NFUlZJQ0VfTERG
TEFHU18kKFdLX1BMQVRGT1JNX05BTUUpKTsKK1dLX0FQUExFX1BVU0hfU0VSVklDRV9MREZMQUdT
X2lwaG9uZW9zID0gJChXS19BUFBMRV9QVVNIX1NFUlZJQ0VfTERGTEFHUyQoV0tfSU9TXzE1KSk7
CitXS19BUFBMRV9QVVNIX1NFUlZJQ0VfTERGTEFHU19pcGhvbmVzaW11bGF0b3IgPSAkKFdLX0FQ
UExFX1BVU0hfU0VSVklDRV9MREZMQUdTJChXS19JT1NfMTUpKTsKK1dLX0FQUExFX1BVU0hfU0VS
VklDRV9MREZMQUdTX0lPU19TSU5DRV8xNSA9IC1mcmFtZXdvcmsgQXBwbGVQdXNoU2VydmljZTsK
K1dLX0FQUExFX1BVU0hfU0VSVklDRV9MREZMQUdTX21hY29zeCA9ICQoV0tfQVBQTEVfUFVTSF9T
RVJWSUNFX0xERkxBR1MkKFdLX01BQ09TXzEyMDApKTsKK1dLX0FQUExFX1BVU0hfU0VSVklDRV9M
REZMQUdTX01BQ09TX1NJTkNFXzEyMDAgPSAtZnJhbWV3b3JrIEFwcGxlUHVzaFNlcnZpY2U7CisK
IFdLX0FQUEtJVF9MREZMQUdTID0gJChXS19BUFBLSVRfTERGTEFHU18kKFdLX1BMQVRGT1JNX05B
TUUpKTsKIFdLX0FQUEtJVF9MREZMQUdTX21hY29zeCA9IC1mcmFtZXdvcmsgQXBwS2l0OwogV0tf
QVBQS0lUX0xERkxBR1NfbWFjY2F0YWx5c3QgPSAtZnJhbWV3b3JrIEFwcEtpdDsKQEAgLTE1NSw3
ICsxNjIsNyBAQCBXS19MSUJORVRXT1JLRVhURU5TSU9OX0xERkxBR1NfbWFjY2F0YWx5c3QgPSAt
bG5ldHdvcmtleHRlbnNpb247CiBXS19MSUJORVRXT1JLRVhURU5TSU9OX0xERkxBR1NfbWFjb3N4
ID0gLXdlYWtfbGlicmFyeSAvdXNyL2xpYi9saWJuZXR3b3JrZXh0ZW5zaW9uLmR5bGliOwogV0tf
TElCTkVUV09SS0VYVEVOU0lPTl9MREZMQUdTX3R2b3MgPSA7CiAKLUZSQU1FV09SS19BTkRfTElC
UkFSWV9MREZMQUdTID0gLWxvYmpjIC1mcmFtZXdvcmsgQ0ZOZXR3b3JrIC1mcmFtZXdvcmsgQ29y
ZUF1ZGlvIC1mcmFtZXdvcmsgQ29yZUZvdW5kYXRpb24gLWZyYW1ld29yayBDb3JlR3JhcGhpY3Mg
LWZyYW1ld29yayBDb3JlVGV4dCAtZnJhbWV3b3JrIEZvdW5kYXRpb24gLWZyYW1ld29yayBJbWFn
ZUlPIC1mcmFtZXdvcmsgSU9LaXQgLWZyYW1ld29yayBJT1N1cmZhY2UgLWZyYW1ld29yayBXZWJL
aXRMZWdhY3kgLWxuZXR3b3JrIC1mcmFtZXdvcmsgTWV0YWwgJChXS19BQ0NFU1NJQklMSVRZX0xE
RkxBR1MpICQoV0tfQVBQS0lUX0xERkxBR1MpICQoV0tfQkFDS0JPQVJEX1NFUlZJQ0VTX0xERkxB
R1MpICQoV0tfUlVOTklOR0JPQVJEX1NFUlZJQ0VTX0xERkxBR1MpICQoV0tfQVVUSEtJVF9MREZM
QUdTKSAkKFdLX0NBUkJPTl9MREZMQUdTKSAkKFdLX0NPTlRBQ1RTX0xERkxBR1MpICQoV0tfQ09S
RV9QUkVESUNUSU9OX0xERkxBR1MpICQoV0tfQ09SRV9TRVJWSUNFU19MREZMQUdTKSAkKFdLX0dS
QVBISUNTX1NFUlZJQ0VTX0xERkxBR1MpICQoV0tfTElCTkVUV09SS0VYVEVOU0lPTl9MREZMQUdT
KSAkKFdLX0xJQlNBTkRCT1hfTERGTEFHUykgJChXS19MSUJXRUJSVENfTERGTEFHUykgJChXS19N
T0JJTEVfQ09SRV9TRVJWSUNFU19MREZMQUdTKSAkKFdLX01PQklMRV9HRVNUQUxUX0xERkxBR1Mp
ICQoV0tfUERGS0lUX0xERkxBR1MpICQoV0tfUFJPVE9UWVBFX1RPT0xTX0xERkxBR1MpICQoV0tf
U0FGRV9CUk9XU0lOR19MREZMQUdTKSAkKFdLX1NFQ1VSSVRZX0lOVEVSRkFDRV9MREZMQUdTKSAk
KFdLX1VJS0lUX0xERkxBR1MpICQoV0tfVU5JRk9STV9UWVBFX0lERU5USUZJRVJTX0xERkxBR1Mp
ICQoV0tfVVJMX0ZPUk1BVFRJTkdfTERGTEFHUykgJChXS19XRUJJTlNQRUNUT1JVSV9MREZMQUdT
KSAkKFdLX0NPT1JESU5BVE9SX0xERkxBR1MpOworRlJBTUVXT1JLX0FORF9MSUJSQVJZX0xERkxB
R1MgPSAtbG9iamMgLWZyYW1ld29yayBDRk5ldHdvcmsgLWZyYW1ld29yayBDb3JlQXVkaW8gLWZy
YW1ld29yayBDb3JlRm91bmRhdGlvbiAtZnJhbWV3b3JrIENvcmVHcmFwaGljcyAtZnJhbWV3b3Jr
IENvcmVUZXh0IC1mcmFtZXdvcmsgRm91bmRhdGlvbiAtZnJhbWV3b3JrIEltYWdlSU8gLWZyYW1l
d29yayBJT0tpdCAtZnJhbWV3b3JrIElPU3VyZmFjZSAtZnJhbWV3b3JrIFdlYktpdExlZ2FjeSAt
bG5ldHdvcmsgLWZyYW1ld29yayBNZXRhbCAkKFdLX0FDQ0VTU0lCSUxJVFlfTERGTEFHUykgJChX
S19BUFBLSVRfTERGTEFHUykgJChXS19BUFBMRV9QVVNIX1NFUlZJQ0VfTERGTEFHUykgJChXS19C
QUNLQk9BUkRfU0VSVklDRVNfTERGTEFHUykgJChXS19SVU5OSU5HQk9BUkRfU0VSVklDRVNfTERG
TEFHUykgJChXS19BVVRIS0lUX0xERkxBR1MpICQoV0tfQ0FSQk9OX0xERkxBR1MpICQoV0tfQ09O
VEFDVFNfTERGTEFHUykgJChXS19DT1JFX1BSRURJQ1RJT05fTERGTEFHUykgJChXS19DT1JFX1NF
UlZJQ0VTX0xERkxBR1MpICQoV0tfR1JBUEhJQ1NfU0VSVklDRVNfTERGTEFHUykgJChXS19MSUJO
RVRXT1JLRVhURU5TSU9OX0xERkxBR1MpICQoV0tfTElCU0FOREJPWF9MREZMQUdTKSAkKFdLX0xJ
QldFQlJUQ19MREZMQUdTKSAkKFdLX01PQklMRV9DT1JFX1NFUlZJQ0VTX0xERkxBR1MpICQoV0tf
TU9CSUxFX0dFU1RBTFRfTERGTEFHUykgJChXS19QREZLSVRfTERGTEFHUykgJChXS19QUk9UT1RZ
UEVfVE9PTFNfTERGTEFHUykgJChXS19TQUZFX0JST1dTSU5HX0xERkxBR1MpICQoV0tfU0VDVVJJ
VFlfSU5URVJGQUNFX0xERkxBR1MpICQoV0tfVUlLSVRfTERGTEFHUykgJChXS19VTklGT1JNX1RZ
UEVfSURFTlRJRklFUlNfTERGTEFHUykgJChXS19VUkxfRk9STUFUVElOR19MREZMQUdTKSAkKFdL
X1dFQklOU1BFQ1RPUlVJX0xERkxBR1MpICQoV0tfQ09PUkRJTkFUT1JfTERGTEFHUyk7CiAKIC8v
IFByZXZlbnQgQysrIHN0YW5kYXJkIGxpYnJhcnkgYmFzaWNfc3RyaW5nc3RyZWFtLCBvcGVyYXRv
ciBuZXcsIGRlbGV0ZSBhbmQgdGhlaXIgcmVsYXRlZCBleGNlcHRpb24gdHlwZXMgZnJvbSBiZWlu
ZyBleHBvcnRlZCBhcyB3ZWFrIHN5bWJvbHMuCiBVTkVYUE9SVEVEX1NZTUJPTF9MREZMQUdTID0g
LVdsLC11bmV4cG9ydGVkX3N5bWJvbCAtV2wsX19aVElTdDliYWRfYWxsb2MgLVdsLC11bmV4cG9y
dGVkX3N5bWJvbCAtV2wsX19aVElTdDlleGNlcHRpb24gLVdsLC11bmV4cG9ydGVkX3N5bWJvbCAt
V2wsX19aVFNTdDliYWRfYWxsb2MgLVdsLC11bmV4cG9ydGVkX3N5bWJvbCAtV2wsX19aVFNTdDll
eGNlcHRpb24gLVdsLC11bmV4cG9ydGVkX3N5bWJvbCAtV2wsX19aZGxQdlNfIC1XbCwtdW5leHBv
cnRlZF9zeW1ib2wgLVdsLF9fWm53bVB2IC1XbCwtdW5leHBvcnRlZF9zeW1ib2wgLVdsLF9fWm53
bSAtV2wsLXVuZXhwb3J0ZWRfc3ltYm9sIC1XbCxfX1pUVk5TdDNfXzExN2JhZF9mdW5jdGlvbl9j
YWxsRSAtV2wsLXVuZXhwb3J0ZWRfc3ltYm9sIC1XbCxfX1pUQ05TdDNfXzExOGJhc2ljX3N0cmlu
Z3N0cmVhbUljTlNfMTFjaGFyX3RyYWl0c0ljRUVOU185YWxsb2NhdG9ySWNFRUVFMF9OU18xM2Jh
c2ljX2lzdHJlYW1JY1MyX0VFIC1XbCwtdW5leHBvcnRlZF9zeW1ib2wgLVdsLF9fWlRDTlN0M19f
MTE4YmFzaWNfc3RyaW5nc3RyZWFtSWNOU18xMWNoYXJfdHJhaXRzSWNFRU5TXzlhbGxvY2F0b3JJ
Y0VFRUUwX05TXzE0YmFzaWNfaW9zdHJlYW1JY1MyX0VFIC1XbCwtdW5leHBvcnRlZF9zeW1ib2wg
LVdsLF9fWlRDTlN0M19fMTE4YmFzaWNfc3RyaW5nc3RyZWFtSWNOU18xMWNoYXJfdHJhaXRzSWNF
RU5TXzlhbGxvY2F0b3JJY0VFRUUxNl9OU18xM2Jhc2ljX29zdHJlYW1JY1MyX0VFIC1XbCwtdW5l
eHBvcnRlZF9zeW1ib2wgLVdsLF9fWlRUTlN0M19fMTE4YmFzaWNfc3RyaW5nc3RyZWFtSWNOU18x
MWNoYXJfdHJhaXRzSWNFRU5TXzlhbGxvY2F0b3JJY0VFRUUgLVdsLC11bmV4cG9ydGVkX3N5bWJv
bCAtV2wsX19aVFZOU3QzX18xMTViYXNpY19zdHJpbmdidWZJY05TXzExY2hhcl90cmFpdHNJY0VF
TlNfOWFsbG9jYXRvckljRUVFRSAtV2wsLXVuZXhwb3J0ZWRfc3ltYm9sIC1XbCxfX1pUVk5TdDNf
XzExOGJhc2ljX3N0cmluZ3N0cmVhbUljTlNfMTFjaGFyX3RyYWl0c0ljRUVOU185YWxsb2NhdG9y
SWNFRUVFIC1XbCwtdW5leHBvcnRlZF9zeW1ib2wgLVdsLF9fWlRDTlN0M19fMTE4YmFzaWNfc3Ry
aW5nc3RyZWFtSWNOU18xMWNoYXJfdHJhaXRzSWNFRU5TXzlhbGxvY2F0b3JJY0VFRUU4X05TXzEz
YmFzaWNfb3N0cmVhbUljUzJfRUU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1BsYXRmb3Jt
L3NwaS9Db2NvYS9BcHBsZVB1c2hTZXJ2aWNlU1BJLmggYi9Tb3VyY2UvV2ViS2l0L1BsYXRmb3Jt
L3NwaS9Db2NvYS9BcHBsZVB1c2hTZXJ2aWNlU1BJLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNTVmNmFkNmY2MzY5
M2VlMTBiMWFhY2Q0MzFkOWU0NzFjZWFkODYyMwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9X
ZWJLaXQvUGxhdGZvcm0vc3BpL0NvY29hL0FwcGxlUHVzaFNlcnZpY2VTUEkuaApAQCAtMCwwICsx
LDEwMiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMiBBcHBsZSBJbmMuIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJp
bmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0
ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6Cisg
KiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3Zl
IGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBm
b3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUK
KyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRo
IHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBB
UFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBS
RVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
CisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVT
UyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVO
VCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1Ig
QU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IK
KyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
IFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9G
IFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9X
RVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisg
KiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VO
Q0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9G
IFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9G
IFNVQ0ggREFNQUdFLgorICovCisKKyNpZiBVU0UoQVBQTEVfSU5URVJOQUxfU0RLKQorCisjaW1w
b3J0IDxBcHBsZVB1c2hTZXJ2aWNlL0FwcGxlUHVzaFNlcnZpY2UuaD4KKworI2Vsc2UgLy8gaWYg
IVVTRShBUFBMRV9JTlRFUk5BTF9TREspCisKKyNpbXBvcnQgPEZvdW5kYXRpb24vRm91bmRhdGlv
bi5oPgorCitOU19BU1NVTUVfTk9OTlVMTF9CRUdJTgorCitXVEZfRVhURVJOX0NfQkVHSU4KK2V4
dGVybiBOU1N0cmluZyAqY29uc3QgQVBTRW52aXJvbm1lbnRQcm9kdWN0aW9uOworCit0eXBlZGVm
IE5TX0VOVU0oTlNJbnRlZ2VyLCBBUFNVUkxUb2tlbkVycm9yQ29kZSkgeworICAgIEFQU1VSTFRv
a2VuRXJyb3JDb2RlSW52YWxpZEFyZ3VtZW50cyA9IDEwMCwKKyAgICBBUFNVUkxUb2tlbkVycm9y
Q29kZVhQQ0Vycm9yID0gMTAxLAorICAgIEFQU1VSTFRva2VuRXJyb3JDb2RlVG9waWNTYWx0aW5n
RmFpbGVkID0gMTAyLAorICAgIEFQU1VSTFRva2VuRXJyb3JDb2RlVG9waWNBbHJlYWR5SW5GaWx0
ZXIgPSAxMDMsCit9OworV1RGX0VYVEVSTl9DX0VORAorCitAY2xhc3MgQVBTQ29ubmVjdGlvbjsK
K0Bwcm90b2NvbCBBUFNDb25uZWN0aW9uRGVsZWdhdGU7CisKK0BpbnRlcmZhY2UgQVBTTWVzc2Fn
ZSA6IE5TT2JqZWN0PE5TQ29kaW5nPgorQHByb3BlcnR5IChub25hdG9taWMsIHJldGFpbikgTlNT
dHJpbmcgKnRvcGljOworQHByb3BlcnR5IChub25hdG9taWMsIHJldGFpbikgTlNEaWN0aW9uYXJ5
ICp1c2VySW5mbzsKK0Bwcm9wZXJ0eSAobm9uYXRvbWljLCBhc3NpZ24pIE5TVUludGVnZXIgaWRl
bnRpZmllcjsKK0BlbmQKKworQGludGVyZmFjZSBBUFNJbmNvbWluZ01lc3NhZ2UgOiBBUFNNZXNz
YWdlCitAZW5kCisKKyNpZiBIQVZFKEFQUExFX1BVU0hfU0VSVklDRV9VUkxfVE9LRU5fU1VQUE9S
VCkKKworQGludGVyZmFjZSBBUFNVUkxUb2tlbiA6IE5TT2JqZWN0PE5TU2VjdXJlQ29kaW5nLCBO
U0NvcHlpbmc+CitAcHJvcGVydHkgKG5vbmF0b21pYywgc3Ryb25nKSBOU1N0cmluZyAqdG9rZW5V
Ukw7CitAZW5kCisKK0BpbnRlcmZhY2UgQVBTVVJMVG9rZW5JbmZvIDogTlNPYmplY3Q8TlNTZWN1
cmVDb2RpbmcsIE5TQ29weWluZz4KKy0gKGluc3RhbmNldHlwZSlpbml0V2l0aFRvcGljOihOU1N0
cmluZyAqKXRvcGljIHZhcGlkUHVibGljS2V5OihudWxsYWJsZSBOU0RhdGEgKil2YXBpZFB1Ymxp
Y0tleTsKK0BlbmQKKwordHlwZWRlZiB2b2lkKF5BUFNDb25uZWN0aW9uUmVxdWVzdFVSTFRva2Vu
Q29tcGxldGlvbikoQVBTVVJMVG9rZW4gKiBfX251bGxhYmxlIHRva2VuLCBOU0Vycm9yICogX19u
dWxsYWJsZSBlcnJvcik7Cit0eXBlZGVmIHZvaWQoXkFQU0Nvbm5lY3Rpb25JbnZhbGlkYXRlVVJM
VG9rZW5Db21wbGV0aW9uKShCT09MIHN1Y2Nlc3MsIE5TRXJyb3IgKiBfX251bGxhYmxlIGVycm9y
KTsKKworI2VuZGlmIC8vIEhBVkUoQVBQTEVfUFVTSF9TRVJWSUNFX1VSTF9UT0tFTl9TVVBQT1JU
KQorCitAaW50ZXJmYWNlIEFQU0Nvbm5lY3Rpb24gOiBOU09iamVjdAorCistIChpbnN0YW5jZXR5
cGUpaW5pdFdpdGhFbnZpcm9ubWVudE5hbWU6KE5TU3RyaW5nICopZW52aXJvbm1lbnROYW1lIG5h
bWVkRGVsZWdhdGVQb3J0OihudWxsYWJsZSBOU1N0cmluZyAqKW5hbWVkRGVsZWdhdGVQb3J0IHF1
ZXVlOihkaXNwYXRjaF9xdWV1ZV90KXF1ZXVlOworCisjaWYgSEFWRShBUFBMRV9QVVNIX1NFUlZJ
Q0VfVVJMX1RPS0VOX1NVUFBPUlQpCistICh2b2lkKXJlcXVlc3RVUkxUb2tlbkZvckluZm86KEFQ
U1VSTFRva2VuSW5mbyAqKWluZm8gY29tcGxldGlvbjooQVBTQ29ubmVjdGlvblJlcXVlc3RVUkxU
b2tlbkNvbXBsZXRpb24pY29tcGxldGlvbjsKKy0gKHZvaWQpaW52YWxpZGF0ZVVSTFRva2VuRm9y
SW5mbzooQVBTVVJMVG9rZW5JbmZvICopaW5mbyBjb21wbGV0aW9uOihBUFNDb25uZWN0aW9uSW52
YWxpZGF0ZVVSTFRva2VuQ29tcGxldGlvbiljb21wbGV0aW9uOworI2VuZGlmIC8vIEhBVkUoQVBQ
TEVfUFVTSF9TRVJWSUNFX1VSTF9UT0tFTl9TVVBQT1JUKQorCitAcHJvcGVydHkgKG5vbmF0b21p
YywgcmVhZHdyaXRlLCBhc3NpZ24sIG51bGxhYmxlKSBpZDxBUFNDb25uZWN0aW9uRGVsZWdhdGU+
IGRlbGVnYXRlOworCitAcHJvcGVydHkgKG5vbmF0b21pYywgcmVhZHdyaXRlLCBzdHJvbmcsIHNl
dHRlcj1fc2V0RW5hYmxlZFRvcGljczosIG51bGxhYmxlKSBOU0FycmF5PE5TU3RyaW5nICo+ICpl
bmFibGVkVG9waWNzOworQHByb3BlcnR5IChub25hdG9taWMsIHJlYWR3cml0ZSwgc3Ryb25nLCBz
ZXR0ZXI9X3NldElnbm9yZWRUb3BpY3M6LCBudWxsYWJsZSkgTlNBcnJheTxOU1N0cmluZyAqPiAq
aWdub3JlZFRvcGljczsKK0Bwcm9wZXJ0eSAobm9uYXRvbWljLCByZWFkd3JpdGUsIHN0cm9uZywg
c2V0dGVyPV9zZXRPcHBvcnR1bmlzdGljVG9waWNzOiwgbnVsbGFibGUpIE5TQXJyYXk8TlNTdHJp
bmcgKj4gKm9wcG9ydHVuaXN0aWNUb3BpY3M7CitAcHJvcGVydHkgKG5vbmF0b21pYywgcmVhZHdy
aXRlLCBzdHJvbmcsIHNldHRlcj1fc2V0Tm9uV2FraW5nVG9waWNzOiwgbnVsbGFibGUpIE5TQXJy
YXk8TlNTdHJpbmcgKj4gKm5vbldha2luZ1RvcGljczsKKworLSAodm9pZClzZXRFbmFibGVkVG9w
aWNzOihOU0FycmF5PE5TU3RyaW5nICo+ICopZW5hYmxlZFRvcGljcyBpZ25vcmVkVG9waWNzOihO
U0FycmF5PE5TU3RyaW5nICo+ICopaWdub3JlZFRvcGljcyBvcHBvcnR1bmlzdGljVG9waWNzOihO
U0FycmF5PE5TU3RyaW5nICo+ICopb3Bwb3J0dW5pc3RpY1RvcGljcyBub25XYWtpbmdUb3BpY3M6
KE5TQXJyYXk8TlNTdHJpbmcgKj4gKilub25XYWtpbmdUb3BpY3M7CisKK0BlbmQKKworQHByb3Rv
Y29sIEFQU0Nvbm5lY3Rpb25EZWxlZ2F0ZTxOU09iamVjdD4KKy0gKHZvaWQpY29ubmVjdGlvbjoo
QVBTQ29ubmVjdGlvbiAqKWNvbm5lY3Rpb24gZGlkUmVjZWl2ZVB1YmxpY1Rva2VuOihOU0RhdGEg
KilwdWJsaWNUb2tlbjsKK0BvcHRpb25hbAorLSAodm9pZCljb25uZWN0aW9uOihBUFNDb25uZWN0
aW9uICopY29ubmVjdGlvbiBkaWRSZWNlaXZlSW5jb21pbmdNZXNzYWdlOihBUFNJbmNvbWluZ01l
c3NhZ2UgKiltZXNzYWdlOworQGVuZAorCitOU19BU1NVTUVfTk9OTlVMTF9FTkQKKworI2VuZGlm
IC8vICFVU0UoQVBQTEVfSU5URVJOQUxfU0RLKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9X
ZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1NvdXJjZS9XZWJLaXQvV2ViS2l0Lnhj
b2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggNzc5MTE4YmQyZjNlMDMyY2E4N2MwNzRkMmU2
YjBkYmU1NDliNjdlYi4uYmI5YmUyYzBmZjE1ODczNDY5MWJhYzEyYTk2ZGY0OGI4NjdjNWIxMiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJv
agorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBA
IC0xOTk1LDYgKzE5OTUsMTMgQEAKIAkJRTVDQkE3NjcyN0EzMThFMTAwREY3ODU4IC8qIFVuaWZp
ZWRTb3VyY2UxMTkuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gRTVDQkE3NjAyN0EzMTg3OTAwREY3ODU4IC8qIFVuaWZpZWRTb3VyY2UxMTkuY3BwICov
OyB9OwogCQlFNUNCQTc2ODI3QTMxOEUxMDBERjc4NTggLyogVW5pZmllZFNvdXJjZTExNy5jcHAg
aW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFNUNCQTc2MjI3
QTMxODc5MDBERjc4NTggLyogVW5pZmllZFNvdXJjZTExNy5jcHAgKi87IH07CiAJCUU1REVGQTY4
MjZGOEY0MjYwMEFCNjhEQiAvKiBQaG90b3NVSVNQSS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTVERUZBNjcyNkY4RjQyNjAwQUI2OERCIC8qIFBob3Rv
c1VJU1BJLmggKi87IH07CisJCUVCQThEM0FCMjdBNUUzMTMwMENCNzkwMCAvKiBBcHBsZVB1c2hT
ZXJ2aWNlU1BJLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSBFQkE4RDNBQTI3QTVFMzEzMDBDQjc5MDAgLyogQXBwbGVQdXNoU2VydmljZVNQSS5oICovOyB9
OworCQlFQkE4RDNCMjI3QTVFMzNGMDBDQjc5MDAgLyogQXBwbGVQdXNoU2VydmljZUNvbm5lY3Rp
b24ubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFQkE4
RDNBQzI3QTVFMzNFMDBDQjc5MDAgLyogQXBwbGVQdXNoU2VydmljZUNvbm5lY3Rpb24ubW0gKi87
IH07CisJCUVCQThEM0IzMjdBNUUzM0YwMENCNzkwMCAvKiBNb2NrUHVzaFNlcnZpY2VDb25uZWN0
aW9uLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFQkE4
RDNBRDI3QTVFMzNFMDBDQjc5MDAgLyogTW9ja1B1c2hTZXJ2aWNlQ29ubmVjdGlvbi5oICovOyB9
OworCQlFQkE4RDNCNDI3QTVFMzNGMDBDQjc5MDAgLyogQXBwbGVQdXNoU2VydmljZUNvbm5lY3Rp
b24uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEVCQThE
M0FFMjdBNUUzM0YwMENCNzkwMCAvKiBBcHBsZVB1c2hTZXJ2aWNlQ29ubmVjdGlvbi5oICovOyB9
OworCQlFQkE4RDNCNTI3QTVFMzNGMDBDQjc5MDAgLyogUHVzaFNlcnZpY2VDb25uZWN0aW9uLmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFQkE4RDNBRjI3
QTVFMzNGMDBDQjc5MDAgLyogUHVzaFNlcnZpY2VDb25uZWN0aW9uLmggKi87IH07CisJCUVCQThE
M0I2MjdBNUUzM0YwMENCNzkwMCAvKiBNb2NrUHVzaFNlcnZpY2VDb25uZWN0aW9uLm1tIGluIFNv
dXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRUJBOEQzQjAyN0E1RTMz
RjAwQ0I3OTAwIC8qIE1vY2tQdXNoU2VydmljZUNvbm5lY3Rpb24ubW0gKi87IH07CisJCUVCQThE
M0I3MjdBNUUzM0YwMENCNzkwMCAvKiBQdXNoU2VydmljZUNvbm5lY3Rpb24ubW0gaW4gU291cmNl
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFQkE4RDNCMTI3QTVFMzNGMDBD
Qjc5MDAgLyogUHVzaFNlcnZpY2VDb25uZWN0aW9uLm1tICovOyB9OwogCQlFRDgyQTdGMjEyOEM2
RkFGMDA0NDc3QjMgLyogV0tCdW5kbGVQYWdlT3ZlcmxheS5oIGluIEhlYWRlcnMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMUEyMkYwRkYxMjg5RkNEOTAwODVFNzRGIC8qIFdL
QnVuZGxlUGFnZU92ZXJsYXkuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRl
LCApOyB9OyB9OwogCQlGNDA5QkExODFFNkU2NEJDMDA5REEyOEUgLyogV0tEcmFnRGVzdGluYXRp
b25BY3Rpb24uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IEY0MDlCQTE3MUU2RTY0QjMwMDlEQTI4RSAvKiBXS0RyYWdEZXN0aW5hdGlvbkFjdGlvbi5oICov
OyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCUY0Mjk5NTA3
MjcwRTIzNEQwMDMyMjk4QiAvKiBTdHJlYW1NZXNzYWdlUmVjZWl2ZXIuaCBpbiBIZWFkZXJzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY0Mjk5NTA2MjcwRTIzNEMwMDMyMjk4
QiAvKiBTdHJlYW1NZXNzYWdlUmVjZWl2ZXIuaCAqLzsgfTsKQEAgLTY0MzksNiArNjQ0NiwxMyBA
QAogCQlFNURFRkE2NzI2RjhGNDI2MDBBQjY4REIgLyogUGhvdG9zVUlTUEkuaCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBw
YXRoID0gUGhvdG9zVUlTUEkuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRUIwRDMx
MkQyNzVBRTEzMzAwODYzRDhGIC8qIGNvbS5hcHBsZS53ZWJraXQud2VicHVzaGQubWFjLnBsaXN0
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gdGV4dC5wbGlzdC54bWw7IHBhdGggPSBjb20uYXBwbGUud2Via2l0LndlYnB1
c2hkLm1hYy5wbGlzdDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRUIwRDMxMkUyNzVB
RTEzMzAwODYzRDhGIC8qIGNvbS5hcHBsZS53ZWJraXQud2VicHVzaGQuaW9zLnBsaXN0ICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gdGV4dC5wbGlzdC54bWw7IHBhdGggPSBjb20uYXBwbGUud2Via2l0LndlYnB1c2hkLmlv
cy5wbGlzdDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRUJBOEQzQUEyN0E1RTMxMzAw
Q0I3OTAwIC8qIEFwcGxlUHVzaFNlcnZpY2VTUEkuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5o
OyBwYXRoID0gQXBwbGVQdXNoU2VydmljZVNQSS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OworCQlFQkE4RDNBQzI3QTVFMzNFMDBDQjc5MDAgLyogQXBwbGVQdXNoU2VydmljZUNvbm5lY3Rp
b24ubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBBcHBsZVB1c2hT
ZXJ2aWNlQ29ubmVjdGlvbi5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRUJBOEQz
QUQyN0E1RTMzRTAwQ0I3OTAwIC8qIE1vY2tQdXNoU2VydmljZUNvbm5lY3Rpb24uaCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gTW9ja1B1c2hTZXJ2aWNlQ29ubmVjdGlvbi5oOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlFQkE4RDNBRTI3QTVFMzNGMDBDQjc5MDAgLyog
QXBwbGVQdXNoU2VydmljZUNvbm5lY3Rpb24uaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBw
YXRoID0gQXBwbGVQdXNoU2VydmljZUNvbm5lY3Rpb24uaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKKwkJRUJBOEQzQUYyN0E1RTMzRjAwQ0I3OTAwIC8qIFB1c2hTZXJ2aWNlQ29ubmVjdGlv
bi5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBQdXNoU2VydmljZUNvbm5lY3Rp
b24uaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRUJBOEQzQjAyN0E1RTMzRjAwQ0I3
OTAwIC8qIE1vY2tQdXNoU2VydmljZUNvbm5lY3Rpb24ubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmNwcC5vYmpjcHA7IHBhdGggPSBNb2NrUHVzaFNlcnZpY2VDb25uZWN0aW9uLm1tOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OworCQlFQkE4RDNCMTI3QTVFMzNGMDBDQjc5MDAgLyogUHVzaFNl
cnZpY2VDb25uZWN0aW9uLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRo
ID0gUHVzaFNlcnZpY2VDb25uZWN0aW9uLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owog
CQlFQ0E2ODBEMzFFNjkwNEI1MDA3MzFEMjAgLyogRXh0cmFQcml2YXRlU3ltYm9sc0ZvclRBUEku
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gRXh0cmFQcml2YXRlU3ltYm9sc0Zv
clRBUEkuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRUNCRkMxREIxRTZBNEQ2NjAw
MDMwMEM3IC8qIEV4dHJhUHVibGljU3ltYm9sc0ZvclRBUEkuaCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gRXh0
cmFQdWJsaWNTeW1ib2xzRm9yVEFQSS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlG
MDM2OTc4NzE1RjRCRjA1MDBDM0E4MEUgLyogV2ViQ29sb3JQaWNrZXIuY3BwICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gV2ViQ29sb3JQaWNrZXIuY3BwOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwpAQCAtODYzNCw2ICs4NjQ4LDcgQEAKIAkJCQk1NzJFQkJEQzI1Mzky
MTgxMDAwNTUyQjMgLyogQXBwQXR0ZXN0U1BJLmggKi8sCiAJCQkJOTU2NTA4MzcyNkQ4N0EyQjAw
RTE1Q0I3IC8qIEFwcGxlTWVkaWFTZXJ2aWNlc1NQSS5oICovLAogCQkJCTk1NjUwODM4MjZEODdB
MkIwMEUxNUNCNyAvKiBBcHBsZU1lZGlhU2VydmljZXNVSVNQSS5oICovLAorCQkJCUVCQThEM0FB
MjdBNUUzMTMwMENCNzkwMCAvKiBBcHBsZVB1c2hTZXJ2aWNlU1BJLmggKi8sCiAJCQkJNTdGQUJC
MEUyNTgxN0NGMDAwNTlEQzk1IC8qIEF1dGhlbnRpY2F0aW9uU2VydmljZXNDb3JlU1BJLmggKi8s
CiAJCQkJMUE1NzA1MTAxQkU0MTBFNTAwODc0QUYxIC8qIEJsb2NrU1BJLmggKi8sCiAJCQkJRTUw
NjIwOTEyNTQyMTAyMDAwQzQzMDkxIC8qIENvbnRhY3RzVUlTUEkuaCAqLywKQEAgLTEwMDQ0LDE2
ICsxMDA1OSwyMiBAQAogCQkJCTUxN0I1RjYzMjc1QThENUMwMDJEQzIyRCAvKiB3ZWJwdXNodG9v
bCAqLywKIAkJCQk1MTYwRTk1NDI3NEI4ODcxMDA1NjczODggLyogQXBwQnVuZGxlUmVxdWVzdC5o
ICovLAogCQkJCTUxNjBFOTUzMjc0Qjg4NzEwMDU2NzM4OCAvKiBBcHBCdW5kbGVSZXF1ZXN0Lm1t
ICovLAorCQkJCUVCQThEM0FFMjdBNUUzM0YwMENCNzkwMCAvKiBBcHBsZVB1c2hTZXJ2aWNlQ29u
bmVjdGlvbi5oICovLAorCQkJCUVCQThEM0FDMjdBNUUzM0UwMENCNzkwMCAvKiBBcHBsZVB1c2hT
ZXJ2aWNlQ29ubmVjdGlvbi5tbSAqLywKIAkJCQlFQjBEMzEyRTI3NUFFMTMzMDA4NjNEOEYgLyog
Y29tLmFwcGxlLndlYmtpdC53ZWJwdXNoZC5pb3MucGxpc3QgKi8sCiAJCQkJRUIwRDMxMkQyNzVB
RTEzMzAwODYzRDhGIC8qIGNvbS5hcHBsZS53ZWJraXQud2VicHVzaGQubWFjLnBsaXN0ICovLAog
CQkJCTUxRjdCQjc1Mjc0NDk4QkIwMEM0NUE3MiAvKiBNb2NrQXBwQnVuZGxlRm9yVGVzdGluZy5o
ICovLAogCQkJCTUxRjdCQjc0Mjc0NDk4QkEwMEM0NUE3MiAvKiBNb2NrQXBwQnVuZGxlRm9yVGVz
dGluZy5tbSAqLywKIAkJCQk1MTYwRTk1QzI3NEMyQTAzMDA1NjczODggLyogTW9ja0FwcEJ1bmRs
ZVJlZ2lzdHJ5LmggKi8sCiAJCQkJNTE2MEU5NUYyNzRDMkEzRjAwNTY3Mzg4IC8qIE1vY2tBcHBC
dW5kbGVSZWdpc3RyeS5tbSAqLywKKwkJCQlFQkE4RDNBRDI3QTVFMzNFMDBDQjc5MDAgLyogTW9j
a1B1c2hTZXJ2aWNlQ29ubmVjdGlvbi5oICovLAorCQkJCUVCQThEM0IwMjdBNUUzM0YwMENCNzkw
MCAvKiBNb2NrUHVzaFNlcnZpY2VDb25uZWN0aW9uLm1tICovLAogCQkJCTUxNjBFOTU3Mjc0QzBE
ODgwMDU2NzM4OCAvKiBQdXNoQXBwQnVuZGxlLmggKi8sCiAJCQkJNTE2MEU5NTgyNzRDMEQ4ODAw
NTY3Mzg4IC8qIFB1c2hBcHBCdW5kbGUubW0gKi8sCiAJCQkJNTFGN0JCNzkyNzQ0QzUwNzAwQzQ1
QTcyIC8qIFB1c2hDbGllbnRDb25uZWN0aW9uLmggKi8sCiAJCQkJNTFGN0JCN0EyNzQ0QzUwNzAw
QzQ1QTcyIC8qIFB1c2hDbGllbnRDb25uZWN0aW9uLm1tICovLAorCQkJCUVCQThEM0FGMjdBNUUz
M0YwMENCNzkwMCAvKiBQdXNoU2VydmljZUNvbm5lY3Rpb24uaCAqLywKKwkJCQlFQkE4RDNCMTI3
QTVFMzNGMDBDQjc5MDAgLyogUHVzaFNlcnZpY2VDb25uZWN0aW9uLm1tICovLAogCQkJCTUxN0I1
Rjc3Mjc1RTk3OTUwMDJEQzIyRCAvKiB3ZWJwdXNoZC5jcHAgKi8sCiAJCQkJNTEyQ0Q2OUQyNzIz
MzkzQTAwRjdGOEVDIC8qIFdlYlB1c2hEYWVtb24uaCAqLywKIAkJCQk1MTJDRDY5RTI3MjMzOTNB
MDBGN0Y4RUMgLyogV2ViUHVzaERhZW1vbi5tbSAqLywKQEAgLTEyODY1LDYgKzEyODg2LDggQEAK
IAkJCQlGNDhEMkE4NTIxNTgzQTdFMDBDNjc1MkIgLyogQXBwS2l0U1BJLmggaW4gSGVhZGVycyAq
LywKIAkJCQk5NTY1MDgzOTI2RDg3QTJCMDBFMTVDQjcgLyogQXBwbGVNZWRpYVNlcnZpY2VzU1BJ
LmggaW4gSGVhZGVycyAqLywKIAkJCQk5NTY1MDgzQTI2RDg3QTJCMDBFMTVDQjcgLyogQXBwbGVN
ZWRpYVNlcnZpY2VzVUlTUEkuaCBpbiBIZWFkZXJzICovLAorCQkJCUVCQThEM0I0MjdBNUUzM0Yw
MENCNzkwMCAvKiBBcHBsZVB1c2hTZXJ2aWNlQ29ubmVjdGlvbi5oIGluIEhlYWRlcnMgKi8sCisJ
CQkJRUJBOEQzQUIyN0E1RTMxMzAwQ0I3OTAwIC8qIEFwcGxlUHVzaFNlcnZpY2VTUEkuaCBpbiBI
ZWFkZXJzICovLAogCQkJCUY0RUM5NEUzMjM1NkNDNTcwMDBCQjYxNCAvKiBBcHBsaWNhdGlvblNl
cnZpY2VzU1BJLmggaW4gSGVhZGVycyAqLywKIAkJCQkxQUQ0QzE5MzFCMzlGMzMyMDBBQkMyOEUg
LyogQXBwbGljYXRpb25TdGF0ZVRyYWNrZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCTQ5MzEwMkJE
MjY4M0YzRDAwMDJCQjg4NSAvKiBBcHBQcml2YWN5UmVwb3J0LmggaW4gSGVhZGVycyAqLywKQEAg
LTEzMDgyLDYgKzEzMTA1LDcgQEAKIAkJCQk1N0RDRURDNzIxNEYxODMwMDAxNkI4NDcgLyogTW9j
a0xvY2FsQ29ubmVjdGlvbi5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNTdEQ0VEQzMyMTRGMTE0QzAw
MTZCODQ3IC8qIE1vY2tMb2NhbFNlcnZpY2UuaCBpbiBIZWFkZXJzICovLAogCQkJCTU3QjgyNjRD
MjMwNjAzQzEwMEI3MkVCMCAvKiBNb2NrTmZjU2VydmljZS5oIGluIEhlYWRlcnMgKi8sCisJCQkJ
RUJBOEQzQjMyN0E1RTMzRjAwQ0I3OTAwIC8qIE1vY2tQdXNoU2VydmljZUNvbm5lY3Rpb24uaCBp
biBIZWFkZXJzICovLAogCQkJCTcxMzdCQTgwMjVGMTU0MjAwMDkxNEVFMyAvKiBNb2RlbEVsZW1l
bnRDb250cm9sbGVyLmggaW4gSGVhZGVycyAqLywKIAkJCQlDMEUzQUE3QzEyMDlFODNDMDBBNDlE
MDEgLyogTW9kdWxlLmggaW4gSGVhZGVycyAqLywKIAkJCQkyRDUwMzY2QjFCQ0RFMTc5MDBFMjBC
QjMgLyogTmF0aXZlV2ViR2VzdHVyZUV2ZW50LmggaW4gSGVhZGVycyAqLywKQEAgLTEzMjAyLDYg
KzEzMjI2LDcgQEAKIAkJCQk1MTdCNUY4MTI3NUU5N0I2MDAyREMyMkQgLyogUHVzaEFwcEJ1bmRs
ZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNTE3QjVGN0QyNzVFOTdCNjAwMkRDMjJEIC8qIFB1c2hD
bGllbnRDb25uZWN0aW9uLmggaW4gSGVhZGVycyAqLywKIAkJCQk1MTdCNUY5NTI3NUVCQTYzMDAy
REMyMkQgLyogUHVzaE1lc3NhZ2VGb3JUZXN0aW5nLmggaW4gSGVhZGVycyAqLywKKwkJCQlFQkE4
RDNCNTI3QTVFMzNGMDBDQjc5MDAgLyogUHVzaFNlcnZpY2VDb25uZWN0aW9uLmggaW4gSGVhZGVy
cyAqLywKIAkJCQlBMUU2ODg3MDFGNkUyQkFCMDA3MDA2QTYgLyogUXVhcmFudGluZVNQSS5oIGlu
IEhlYWRlcnMgKi8sCiAJCQkJMUEwQzIyN0UyNDUxMTMwQTAwRUQ2MTREIC8qIFF1aWNrTG9va1Ro
dW1ibmFpbGluZ1NvZnRMaW5rLmggaW4gSGVhZGVycyAqLywKIAkJCQkxQUVFNTcyNTI0MDlGMTQy
MDAyMDA1RDYgLyogUXVpY2tMb29rVGh1bWJuYWlsTG9hZGVyLmggaW4gSGVhZGVycyAqLywKQEAg
LTE1Mzk1LDYgKzE1NDIwLDcgQEAKIAkJCQk5OUU3MTg5QTIxRjc5RDlFMDA1NUU5NzUgLyogX1dL
VG91Y2hFdmVudEdlbmVyYXRvci5tbSBpbiBTb3VyY2VzICovLAogCQkJCTU3MkVCQkRBMjUzOEY2
QjQwMDA1NTJCMyAvKiBBcHBBdHRlc3RJbnRlcm5hbFNvZnRMaW5rLm1tIGluIFNvdXJjZXMgKi8s
CiAJCQkJNTE3QjVGN0UyNzVFOTdCNjAwMkRDMjJEIC8qIEFwcEJ1bmRsZVJlcXVlc3QubW0gaW4g
U291cmNlcyAqLywKKwkJCQlFQkE4RDNCMjI3QTVFMzNGMDBDQjc5MDAgLyogQXBwbGVQdXNoU2Vy
dmljZUNvbm5lY3Rpb24ubW0gaW4gU291cmNlcyAqLywKIAkJCQkyREVCMUQyRTIxMjc0NzM2MDA5
MzM5MDYgLyogQXJndW1lbnRDb2RlcnNDRi5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlDRDQ1NzBE
NDI0NDExRDBGMDBBM0RDRUIgLyogQXVkaW9TZXNzaW9uUm91dGluZ0FyYml0cmF0b3IuY3BwIGlu
IFNvdXJjZXMgKi8sCiAJCQkJQ0Q0NTcwRDMyNDQxMTNCNTAwQTNEQ0VCIC8qIEF1ZGlvU2Vzc2lv
blJvdXRpbmdBcmJpdHJhdG9yUHJveHlNZXNzYWdlUmVjZWl2ZXIuY3BwIGluIFNvdXJjZXMgKi8s
CkBAIC0xNTQyOCw2ICsxNTQ1NCw3IEBACiAJCQkJOUI0NzkwOTEyNTMxNTYzMjAwRUMxMUFCIC8q
IE1lc3NhZ2VBcmd1bWVudERlc2NyaXB0aW9ucy5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk1MTdC
NUY4NDI3NUU5N0I2MDAyREMyMkQgLyogTW9ja0FwcEJ1bmRsZUZvclRlc3RpbmcubW0gaW4gU291
cmNlcyAqLywKIAkJCQk1MTdCNUY4NjI3NUU5N0I2MDAyREMyMkQgLyogTW9ja0FwcEJ1bmRsZVJl
Z2lzdHJ5Lm1tIGluIFNvdXJjZXMgKi8sCisJCQkJRUJBOEQzQjYyN0E1RTMzRjAwQ0I3OTAwIC8q
IE1vY2tQdXNoU2VydmljZUNvbm5lY3Rpb24ubW0gaW4gU291cmNlcyAqLywKIAkJCQk1N0I4MjY0
NTIzMDRGMTQwMDBCNzJFQjAgLyogTmVhckZpZWxkU29mdExpbmsubW0gaW4gU291cmNlcyAqLywK
IAkJCQlDMUMxQjMwRjI1NDBGNTBEMDBEOTEwMEIgLyogTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlBy
b2Nlc3NNYWMubW0gaW4gU291cmNlcyAqLywKIAkJCQk1MUREOUYyODE2MzY3REEyMDAxNTc4RTkg
LyogTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3NNZXNzYWdlUmVjZWl2ZXIuY3BwIGluIFNv
dXJjZXMgKi8sCkBAIC0xNTQ1Myw2ICsxNTQ4MCw3IEBACiAJCQkJMkQ1NEMzMUIyMTJGNERBNjAw
NDlDMTc0IC8qIFByb2Nlc3NMYXVuY2hlci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk1MTdCNUY4
MjI3NUU5N0I2MDAyREMyMkQgLyogUHVzaEFwcEJ1bmRsZS5tbSBpbiBTb3VyY2VzICovLAogCQkJ
CTUxN0I1RjdCMjc1RTk3QTkwMDJEQzIyRCAvKiBQdXNoQ2xpZW50Q29ubmVjdGlvbi5tbSBpbiBT
b3VyY2VzICovLAorCQkJCUVCQThEM0I3MjdBNUUzM0YwMENCNzkwMCAvKiBQdXNoU2VydmljZUNv
bm5lY3Rpb24ubW0gaW4gU291cmNlcyAqLywKIAkJCQkxQTBDMjI3RjI0NTExMzBBMDBFRDYxNEQg
LyogUXVpY2tMb29rVGh1bWJuYWlsaW5nU29mdExpbmsubW0gaW4gU291cmNlcyAqLywKIAkJCQkx
QTBDMjI1RTI0MzU3NUNEMDBFRDYxNEQgLyogUXVpY2tMb29rVGh1bWJuYWlsTG9hZGVyLm1tIGlu
IFNvdXJjZXMgKi8sCiAJCQkJOUIxMjI5Q0UyM0ZGMjVGMjAwOENBNzUxIC8qIFJlbW90ZUF1ZGlv
RGVzdGluYXRpb25NYW5hZ2VyLmNwcCBpbiBTb3VyY2VzICovLApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC93ZWJwdXNoZC9BcHBsZVB1c2hTZXJ2aWNlQ29ubmVjdGlvbi5oIGIvU291cmNlL1dl
YktpdC93ZWJwdXNoZC9BcHBsZVB1c2hTZXJ2aWNlQ29ubmVjdGlvbi5oCm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjg3
NDdlNzVkNjE4NTUwMGZmNWE4MGRlYzZkM2FjYTU1ODM1MDM3MWEKLS0tIC9kZXYvbnVsbAorKysg
Yi9Tb3VyY2UvV2ViS2l0L3dlYnB1c2hkL0FwcGxlUHVzaFNlcnZpY2VDb25uZWN0aW9uLmgKQEAg
LTAsMCArMSw2NyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMiBBcHBsZSBJbmMuIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2Ug
YW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBw
ZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBt
ZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhl
IGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJp
bmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBp
biB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRl
ZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURF
RCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFO
WSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQg
RklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBO
TyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJM
RSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFS
WSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBM
T1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElP
TikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVS
IElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5F
R0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUg
VVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklM
SVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisjaWYgSEFWRShBUFBM
RV9QVVNIX1NFUlZJQ0VfVVJMX1RPS0VOX1NVUFBPUlQpCisKKyNpbmNsdWRlICJBcHBsZVB1c2hT
ZXJ2aWNlU1BJLmgiCisjaW5jbHVkZSAiUHVzaFNlcnZpY2VDb25uZWN0aW9uLmgiCisjaW5jbHVk
ZSA8d3RmL0hhc2hNYXAuaD4KKworbmFtZXNwYWNlIFdlYlB1c2hEIHsKKworY2xhc3MgQXBwbGVQ
dXNoU2VydmljZUNvbm5lY3Rpb24gZmluYWwgOiBwdWJsaWMgUHVzaFNlcnZpY2VDb25uZWN0aW9u
IHsKK3B1YmxpYzoKKyAgICBBcHBsZVB1c2hTZXJ2aWNlQ29ubmVjdGlvbihjb25zdCBTdHJpbmcm
IGluY29taW5nUHVzaFNlcnZpY2VOYW1lKTsKKyAgICB+QXBwbGVQdXNoU2VydmljZUNvbm5lY3Rp
b24oKTsKKworICAgIHZvaWQgc3Vic2NyaWJlKGNvbnN0IFN0cmluZyYgdG9waWMsIGNvbnN0IFZl
Y3Rvcjx1aW50OF90PiYgdmFwaWRQdWJsaWNLZXksIFN1YnNjcmliZUhhbmRsZXImJikgZmluYWw7
CisgICAgdm9pZCB1bnN1YnNjcmliZShjb25zdCBTdHJpbmcmIHRvcGljLCBjb25zdCBWZWN0b3I8
dWludDhfdD4mIHZhcGlkUHVibGljS2V5LCBVbnN1YnNjcmliZUhhbmRsZXImJikgZmluYWw7CisK
KyAgICBWZWN0b3I8U3RyaW5nPiBlbmFibGVkVG9waWNzKCkgb3ZlcnJpZGU7CisgICAgVmVjdG9y
PFN0cmluZz4gaWdub3JlZFRvcGljcygpIG92ZXJyaWRlOworICAgIFZlY3RvcjxTdHJpbmc+IG9w
cG9ydHVuaXN0aWNUb3BpY3MoKSBvdmVycmlkZTsKKyAgICBWZWN0b3I8U3RyaW5nPiBub25XYWtp
bmdUb3BpY3MoKSBvdmVycmlkZTsKKworICAgIHZvaWQgc2V0RW5hYmxlZFRvcGljcyhWZWN0b3I8
U3RyaW5nPiYmKSBvdmVycmlkZTsKKyAgICB2b2lkIHNldElnbm9yZWRUb3BpY3MoVmVjdG9yPFN0
cmluZz4mJikgb3ZlcnJpZGU7CisgICAgdm9pZCBzZXRPcHBvcnR1bmlzdGljVG9waWNzKFZlY3Rv
cjxTdHJpbmc+JiYpIG92ZXJyaWRlOworICAgIHZvaWQgc2V0Tm9uV2FraW5nVG9waWNzKFZlY3Rv
cjxTdHJpbmc+JiYpIG92ZXJyaWRlOworCisgICAgdm9pZCBzZXRUb3BpY0xpc3RzKFRvcGljTGlz
dHMmJikgb3ZlcnJpZGU7CisKK3ByaXZhdGU6CisgICAgUmV0YWluUHRyPEFQU0Nvbm5lY3Rpb24+
IG1fY29ubmVjdGlvbjsKKyAgICBSZXRhaW5QdHI8aWQ8QVBTQ29ubmVjdGlvbkRlbGVnYXRlPj4g
bV9kZWxlZ2F0ZTsKKyAgICB1bnNpZ25lZCBtX2hhbmRsZXJJZGVudGlmaWVyIHsgMCB9OworICAg
IEhhc2hNYXA8dW5zaWduZWQsIFN1YnNjcmliZUhhbmRsZXI+IG1fc3Vic2NyaWJlSGFuZGxlcnM7
CisgICAgSGFzaE1hcDx1bnNpZ25lZCwgVW5zdWJzY3JpYmVIYW5kbGVyPiBtX3Vuc3Vic2NyaWJl
SGFuZGxlcnM7Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJQdXNoRAorCisjZW5kaWYgLy8gSEFW
RShBUFBMRV9QVVNIX1NFUlZJQ0VfVVJMX1RPS0VOX1NVUFBPUlQpCisKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvd2VicHVzaGQvQXBwbGVQdXNoU2VydmljZUNvbm5lY3Rpb24ubW0gYi9Tb3Vy
Y2UvV2ViS2l0L3dlYnB1c2hkL0FwcGxlUHVzaFNlcnZpY2VDb25uZWN0aW9uLm1tCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLmVmZjdlYWU1Y2ZmYTg3Nzc4YjY2NjJhYjZiMTU0ZTBkNGE0ZjA3ZDgKLS0tIC9kZXYvbnVs
bAorKysgYi9Tb3VyY2UvV2ViS2l0L3dlYnB1c2hkL0FwcGxlUHVzaFNlcnZpY2VDb25uZWN0aW9u
Lm1tCkBAIC0wLDAgKzEsMTcwIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIyIEFwcGxlIElu
Yy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGlu
IHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlv
biwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwor
ICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJl
dGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlv
bnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxz
IHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElT
IFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisg
KiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklM
SVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlN
RUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICog
QkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwg
RVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VS
VklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5U
RVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFks
IFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNM
VURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VU
IE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUg
UE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2ltcG9ydCAiY29uZmlnLmgiCisj
aW1wb3J0ICJBcHBsZVB1c2hTZXJ2aWNlQ29ubmVjdGlvbi5oIgorCisjaWYgSEFWRShBUFBMRV9Q
VVNIX1NFUlZJQ0VfVVJMX1RPS0VOX1NVUFBPUlQpCisKKyNpbXBvcnQgPHd0Zi9CbG9ja1B0ci5o
PgorI2ltcG9ydCA8d3RmL2NvY29hL1ZlY3RvckNvY29hLmg+CisKK0BpbnRlcmZhY2UgX1dLQVBT
Q29ubmVjdGlvbkRlbGVnYXRlIDogTlNPYmplY3Q8QVBTQ29ubmVjdGlvbkRlbGVnYXRlPiB7Cisg
ICAgV2Vha1B0cjxXZWJQdXNoRDo6QXBwbGVQdXNoU2VydmljZUNvbm5lY3Rpb24+IF9jb25uZWN0
aW9uOworfQorQGVuZAorCitAaW1wbGVtZW50YXRpb24gX1dLQVBTQ29ubmVjdGlvbkRlbGVnYXRl
CisKKy0gKGluc3RhbmNldHlwZSlpbml0V2l0aENvbm5lY3Rpb246KFdlYlB1c2hEOjpBcHBsZVB1
c2hTZXJ2aWNlQ29ubmVjdGlvbiAqKWNvbm5lY3Rpb24KK3sKKyAgICBpZiAoKHNlbGYgPSBbc3Vw
ZXIgaW5pdF0pKQorICAgICAgICBfY29ubmVjdGlvbiA9IGNvbm5lY3Rpb247CisgICAgcmV0dXJu
IHNlbGY7Cit9CisKKy0gKHZvaWQpY29ubmVjdGlvbjooQVBTQ29ubmVjdGlvbiAqKWNvbm5lY3Rp
b24gZGlkUmVjZWl2ZVB1YmxpY1Rva2VuOihOU0RhdGEgKilwdWJsaWNUb2tlbgoreworICAgIFVO
VVNFRF9QQVJBTShjb25uZWN0aW9uKTsKKyAgICBVTlVTRURfUEFSQU0ocHVibGljVG9rZW4pOwor
fQorCistICh2b2lkKWNvbm5lY3Rpb246KEFQU0Nvbm5lY3Rpb24gKiljb25uZWN0aW9uIGRpZFJl
Y2VpdmVJbmNvbWluZ01lc3NhZ2U6KEFQU0luY29taW5nTWVzc2FnZSAqKW1lc3NhZ2UKK3sKKyAg
ICBVTlVTRURfUEFSQU0oY29ubmVjdGlvbik7CisKKyAgICBBU1NFUlQoaXNNYWluUnVuTG9vcCgp
KTsKKworICAgIGlmIChfY29ubmVjdGlvbikKKyAgICAgICAgX2Nvbm5lY3Rpb24tPmRpZFJlY2Vp
dmVQdXNoTWVzc2FnZShtZXNzYWdlLnRvcGljLCBtZXNzYWdlLnVzZXJJbmZvKTsKK30KKworQGVu
ZAorCituYW1lc3BhY2UgV2ViUHVzaEQgeworCitBcHBsZVB1c2hTZXJ2aWNlQ29ubmVjdGlvbjo6
QXBwbGVQdXNoU2VydmljZUNvbm5lY3Rpb24oY29uc3QgU3RyaW5nJiBpbmNvbWluZ1B1c2hTZXJ2
aWNlTmFtZSkKK3sKKyAgICBtX2Nvbm5lY3Rpb24gPSBhZG9wdE5TKFtbQVBTQ29ubmVjdGlvbiBh
bGxvY10gaW5pdFdpdGhFbnZpcm9ubWVudE5hbWU6QVBTRW52aXJvbm1lbnRQcm9kdWN0aW9uIG5h
bWVkRGVsZWdhdGVQb3J0OmluY29taW5nUHVzaFNlcnZpY2VOYW1lIHF1ZXVlOmRpc3BhdGNoX2dl
dF9tYWluX3F1ZXVlKCldKTsKKyAgICBtX2RlbGVnYXRlID0gYWRvcHROUyhbW19XS0FQU0Nvbm5l
Y3Rpb25EZWxlZ2F0ZSBhbGxvY10gaW5pdFdpdGhDb25uZWN0aW9uOnRoaXNdKTsKKyAgICBbbV9j
b25uZWN0aW9uIHNldERlbGVnYXRlOm1fZGVsZWdhdGUuZ2V0KCldOworfQorCitBcHBsZVB1c2hT
ZXJ2aWNlQ29ubmVjdGlvbjo6fkFwcGxlUHVzaFNlcnZpY2VDb25uZWN0aW9uKCkKK3sKKyAgICBb
bV9jb25uZWN0aW9uIHNldERlbGVnYXRlOm5pbF07Cit9CisKK3N0YXRpYyBSZXRhaW5QdHI8QVBT
VVJMVG9rZW5JbmZvPiBtYWtlVG9rZW5JbmZvKGNvbnN0IFN0cmluZyYgdG9waWMsIGNvbnN0IFZl
Y3Rvcjx1aW50OF90PiYgdmFwaWRQdWJsaWNLZXkpCit7CisgICAgYXV0byBzZXJ2ZXJQdWJsaWNL
ZXkgPSBhZG9wdE5TKFtbTlNEYXRhIGFsbG9jXSBpbml0V2l0aEJ5dGVzOnZhcGlkUHVibGljS2V5
LmRhdGEoKSBsZW5ndGg6dmFwaWRQdWJsaWNLZXkuc2l6ZSgpXSk7CisgICAgcmV0dXJuIGFkb3B0
TlMoW1tBUFNVUkxUb2tlbkluZm8gYWxsb2NdIGluaXRXaXRoVG9waWM6dG9waWMgdmFwaWRQdWJs
aWNLZXk6c2VydmVyUHVibGljS2V5LmdldCgpXSk7Cit9CisKK3ZvaWQgQXBwbGVQdXNoU2Vydmlj
ZUNvbm5lY3Rpb246OnN1YnNjcmliZShjb25zdCBTdHJpbmcmIHRvcGljLCBjb25zdCBWZWN0b3I8
dWludDhfdD4mIHZhcGlkUHVibGljS2V5LCBTdWJzY3JpYmVIYW5kbGVyJiYgc3Vic2NyaWJlSGFu
ZGxlcikKK3sKKyAgICBBU1NFUlQoaXNNYWluUnVuTG9vcCgpKTsKKworICAgIC8vIFN0YXNoIHRo
ZSBjb21wbGV0aW9uIGhhbmRsZXIgYXdheSBhbmQgbG9vayBpdCB1cCBieSBpZCBzbyB0aGF0IHdl
IGNhbiBlbnN1cmUgaXQgZ2V0cyBkZXN0cnVjdGVkIG9uIHRoZSBtYWluIHRocmVhZC4gSWYgd2Ug
bW92ZSB0aGUgaGFuZGxlciBhbmQgY2FwdHVyZSBpdCBpbiB0aGUgT2JqLUMgYmxvY2ssIGl0IG1p
Z2h0IGdldCBkZXN0cnVjdGVkIG9uIGEgc2Vjb25kYXJ5IHRocmVhZCBzaW5jZSB0aGlzIGNvbXBs
ZXRpb24gYmxvY2sgbW92ZXMgYmV0d2VlbiBkaWZmZXJlbnQgZGlzcGF0Y2ggcXVldWVzIGluIHRo
ZSBBUFMgaW1wbGVtZW50YXRpb24uCisgICAgYXV0byBpZGVudGlmaWVyID0gKyttX2hhbmRsZXJJ
ZGVudGlmaWVyOworICAgIG1fc3Vic2NyaWJlSGFuZGxlcnMuYWRkKGlkZW50aWZpZXIsIFdURk1v
dmUoc3Vic2NyaWJlSGFuZGxlcikpOworCisgICAgW21fY29ubmVjdGlvbiByZXF1ZXN0VVJMVG9r
ZW5Gb3JJbmZvOm1ha2VUb2tlbkluZm8odG9waWMsIHZhcGlkUHVibGljS2V5KS5nZXQoKSBjb21w
bGV0aW9uOm1ha2VCbG9ja1B0cihbdGhpcywgd2Vha1RoaXMgPSBXZWFrUHRyIHsgKnRoaXMgfSwg
aWRlbnRpZmllcl0gKEFQU1VSTFRva2VuICp0b2tlbiwgTlNFcnJvciAqZXJyb3IpIHsKKyAgICAg
ICAgaWYgKCF3ZWFrVGhpcykKKyAgICAgICAgICAgIHJldHVybjsKKworICAgICAgICBhdXRvIGhh
bmRsZXIgPSBtX3N1YnNjcmliZUhhbmRsZXJzLnRha2UoaWRlbnRpZmllcik7CisgICAgICAgIGhh
bmRsZXIodG9rZW4udG9rZW5VUkwsIGVycm9yKTsKKyAgICB9KS5nZXQoKV07Cit9CisKK3ZvaWQg
QXBwbGVQdXNoU2VydmljZUNvbm5lY3Rpb246OnVuc3Vic2NyaWJlKGNvbnN0IFN0cmluZyYgdG9w
aWMsIGNvbnN0IFZlY3Rvcjx1aW50OF90PiYgdmFwaWRQdWJsaWNLZXksIFVuc3Vic2NyaWJlSGFu
ZGxlciYmIHVuc3Vic2NyaWJlSGFuZGxlcikKK3sKKyAgICBBU1NFUlQoaXNNYWluUnVuTG9vcCgp
KTsKKworICAgIC8vIFNlZSBzdWJzY3JpYmUgZm9yIHdoeSB3ZSBzdGFzaCB0aGUgaGFuZGxlciBp
bnRvIGEgbWFwLgorICAgIGF1dG8gaWRlbnRpZmllciA9ICsrbV9oYW5kbGVySWRlbnRpZmllcjsK
KyAgICBtX3Vuc3Vic2NyaWJlSGFuZGxlcnMuYWRkKGlkZW50aWZpZXIsIFdURk1vdmUodW5zdWJz
Y3JpYmVIYW5kbGVyKSk7CisKKyAgICBbbV9jb25uZWN0aW9uIGludmFsaWRhdGVVUkxUb2tlbkZv
ckluZm86bWFrZVRva2VuSW5mbyh0b3BpYywgdmFwaWRQdWJsaWNLZXkpLmdldCgpIGNvbXBsZXRp
b246bWFrZUJsb2NrUHRyKFt0aGlzLCB3ZWFrVGhpcyA9IFdlYWtQdHIgeyAqdGhpcyB9LCBpZGVu
dGlmaWVyXSAoQk9PTCBzdWNjZXNzLCBOU0Vycm9yICplcnJvcikgeworICAgICAgICBpZiAoIXdl
YWtUaGlzKQorICAgICAgICAgICAgcmV0dXJuOworCisgICAgICAgIC8vIEZJWE1FOiByZW1vdmUg
dGhpcyBvbmNlIEFQUyBzdG9wcyBjYWxsaW5nIGJhY2sgb24gdGhlIHdyb25nIHF1ZXVlIChyZGFy
Oi8vODgxMDAyNzUpLgorICAgICAgICBkaXNwYXRjaF9hc3luYyhkaXNwYXRjaF9nZXRfbWFpbl9x
dWV1ZSgpLCBeeworICAgICAgICAgICAgYXV0byBoYW5kbGVyID0gbV91bnN1YnNjcmliZUhhbmRs
ZXJzLnRha2UoaWRlbnRpZmllcik7CisgICAgICAgICAgICBoYW5kbGVyKHN1Y2Nlc3MsIGVycm9y
KTsKKyAgICAgICAgfSk7CisgICAgfSkuZ2V0KCldOworfQorCitWZWN0b3I8U3RyaW5nPiBBcHBs
ZVB1c2hTZXJ2aWNlQ29ubmVjdGlvbjo6ZW5hYmxlZFRvcGljcygpCit7CisgICAgcmV0dXJuIG1h
a2VWZWN0b3I8U3RyaW5nPihbbV9jb25uZWN0aW9uIGVuYWJsZWRUb3BpY3NdKTsKK30KKworVmVj
dG9yPFN0cmluZz4gQXBwbGVQdXNoU2VydmljZUNvbm5lY3Rpb246Omlnbm9yZWRUb3BpY3MoKQor
eworICAgIHJldHVybiBtYWtlVmVjdG9yPFN0cmluZz4oW21fY29ubmVjdGlvbiBpZ25vcmVkVG9w
aWNzXSk7Cit9CisKK1ZlY3RvcjxTdHJpbmc+IEFwcGxlUHVzaFNlcnZpY2VDb25uZWN0aW9uOjpv
cHBvcnR1bmlzdGljVG9waWNzKCkKK3sKKyAgICByZXR1cm4gbWFrZVZlY3RvcjxTdHJpbmc+KFtt
X2Nvbm5lY3Rpb24gb3Bwb3J0dW5pc3RpY1RvcGljc10pOworfQorCitWZWN0b3I8U3RyaW5nPiBB
cHBsZVB1c2hTZXJ2aWNlQ29ubmVjdGlvbjo6bm9uV2FraW5nVG9waWNzKCkKK3sKKyAgICByZXR1
cm4gbWFrZVZlY3RvcjxTdHJpbmc+KFttX2Nvbm5lY3Rpb24gbm9uV2FraW5nVG9waWNzXSk7Cit9
CisKK3ZvaWQgQXBwbGVQdXNoU2VydmljZUNvbm5lY3Rpb246OnNldEVuYWJsZWRUb3BpY3MoVmVj
dG9yPFN0cmluZz4mJiB0b3BpY3MpCit7CisgICAgW21fY29ubmVjdGlvbiBfc2V0RW5hYmxlZFRv
cGljczpjcmVhdGVOU0FycmF5KFdURk1vdmUodG9waWNzKSkuZ2V0KCldOworfQorCit2b2lkIEFw
cGxlUHVzaFNlcnZpY2VDb25uZWN0aW9uOjpzZXRJZ25vcmVkVG9waWNzKFZlY3RvcjxTdHJpbmc+
JiYgdG9waWNzKQoreworICAgIFttX2Nvbm5lY3Rpb24gX3NldElnbm9yZWRUb3BpY3M6Y3JlYXRl
TlNBcnJheShXVEZNb3ZlKHRvcGljcykpLmdldCgpXTsKK30KKwordm9pZCBBcHBsZVB1c2hTZXJ2
aWNlQ29ubmVjdGlvbjo6c2V0T3Bwb3J0dW5pc3RpY1RvcGljcyhWZWN0b3I8U3RyaW5nPiYmIHRv
cGljcykKK3sKKyAgICBbbV9jb25uZWN0aW9uIF9zZXRPcHBvcnR1bmlzdGljVG9waWNzOmNyZWF0
ZU5TQXJyYXkoV1RGTW92ZSh0b3BpY3MpKS5nZXQoKV07Cit9CisKK3ZvaWQgQXBwbGVQdXNoU2Vy
dmljZUNvbm5lY3Rpb246OnNldE5vbldha2luZ1RvcGljcyhWZWN0b3I8U3RyaW5nPiYmIHRvcGlj
cykKK3sKKyAgICBbbV9jb25uZWN0aW9uIF9zZXROb25XYWtpbmdUb3BpY3M6Y3JlYXRlTlNBcnJh
eShXVEZNb3ZlKHRvcGljcykpLmdldCgpXTsKK30KKwordm9pZCBBcHBsZVB1c2hTZXJ2aWNlQ29u
bmVjdGlvbjo6c2V0VG9waWNMaXN0cyhUb3BpY0xpc3RzJiYgdG9waWNMaXN0cykKK3sKKyAgICBb
bV9jb25uZWN0aW9uIHNldEVuYWJsZWRUb3BpY3M6Y3JlYXRlTlNBcnJheShXVEZNb3ZlKHRvcGlj
TGlzdHMuZW5hYmxlZFRvcGljcykpLmdldCgpIGlnbm9yZWRUb3BpY3M6Y3JlYXRlTlNBcnJheShX
VEZNb3ZlKHRvcGljTGlzdHMuaWdub3JlZFRvcGljcykpLmdldCgpIG9wcG9ydHVuaXN0aWNUb3Bp
Y3M6Y3JlYXRlTlNBcnJheShXVEZNb3ZlKHRvcGljTGlzdHMub3Bwb3J0dW5pc3RpY1RvcGljcykp
LmdldCgpIG5vbldha2luZ1RvcGljczpjcmVhdGVOU0FycmF5KFdURk1vdmUodG9waWNMaXN0cy5u
b25XYWtpbmdUb3BpY3MpKS5nZXQoKV07Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYlB1c2hECisK
KyNlbmRpZiAvLyBIQVZFKEFQUExFX1BVU0hfU0VSVklDRV9VUkxfVE9LRU5fU1VQUE9SVCkKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvd2VicHVzaGQvTW9ja1B1c2hTZXJ2aWNlQ29ubmVjdGlv
bi5oIGIvU291cmNlL1dlYktpdC93ZWJwdXNoZC9Nb2NrUHVzaFNlcnZpY2VDb25uZWN0aW9uLmgK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uNzc2OWJiNmJkZDU4MjhlN2IxNjRjMTY3Yzg0NjBjZmRiZDdjMDQwMAotLS0g
L2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvd2VicHVzaGQvTW9ja1B1c2hTZXJ2aWNlQ29u
bmVjdGlvbi5oCkBAIC0wLDAgKzEsNTMgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjIgQXBw
bGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1
c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZp
Y2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRp
b25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11
c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJp
YnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0
CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRl
cmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdB
UkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElT
JycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFO
VEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElT
Q0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JT
CisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVD
SUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBP
UiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisg
KiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJ
TElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQg
KElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdB
WSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAq
IFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKwor
I2luY2x1ZGUgIlB1c2hTZXJ2aWNlQ29ubmVjdGlvbi5oIgorCituYW1lc3BhY2UgV2ViUHVzaEQg
eworCitjbGFzcyBNb2NrUHVzaFNlcnZpY2VDb25uZWN0aW9uIGZpbmFsIDogcHVibGljIFB1c2hT
ZXJ2aWNlQ29ubmVjdGlvbiB7CitwdWJsaWM6CisgICAgTW9ja1B1c2hTZXJ2aWNlQ29ubmVjdGlv
bigpOworICAgIH5Nb2NrUHVzaFNlcnZpY2VDb25uZWN0aW9uKCk7CisKKyAgICB2b2lkIHN1YnNj
cmliZShjb25zdCBTdHJpbmcmIHRvcGljLCBjb25zdCBWZWN0b3I8dWludDhfdD4mIHZhcGlkUHVi
bGljS2V5LCBTdWJzY3JpYmVIYW5kbGVyJiYpIG92ZXJyaWRlOworICAgIHZvaWQgdW5zdWJzY3Jp
YmUoY29uc3QgU3RyaW5nJiB0b3BpYywgY29uc3QgVmVjdG9yPHVpbnQ4X3Q+JiB2YXBpZFB1Ymxp
Y0tleSwgVW5zdWJzY3JpYmVIYW5kbGVyJiYpIG92ZXJyaWRlOworCisgICAgVmVjdG9yPFN0cmlu
Zz4gZW5hYmxlZFRvcGljcygpIG92ZXJyaWRlOworICAgIFZlY3RvcjxTdHJpbmc+IGlnbm9yZWRU
b3BpY3MoKSBvdmVycmlkZTsKKyAgICBWZWN0b3I8U3RyaW5nPiBvcHBvcnR1bmlzdGljVG9waWNz
KCkgb3ZlcnJpZGU7CisgICAgVmVjdG9yPFN0cmluZz4gbm9uV2FraW5nVG9waWNzKCkgb3ZlcnJp
ZGU7CisKKyAgICB2b2lkIHNldEVuYWJsZWRUb3BpY3MoVmVjdG9yPFN0cmluZz4mJikgb3ZlcnJp
ZGU7CisgICAgdm9pZCBzZXRJZ25vcmVkVG9waWNzKFZlY3RvcjxTdHJpbmc+JiYpIG92ZXJyaWRl
OworICAgIHZvaWQgc2V0T3Bwb3J0dW5pc3RpY1RvcGljcyhWZWN0b3I8U3RyaW5nPiYmKSBvdmVy
cmlkZTsKKyAgICB2b2lkIHNldE5vbldha2luZ1RvcGljcyhWZWN0b3I8U3RyaW5nPiYmKSBvdmVy
cmlkZTsKKworICAgIHZvaWQgc2V0VG9waWNMaXN0cyhUb3BpY0xpc3RzJiYpIG92ZXJyaWRlOwor
fTsKKworfSAvLyBuYW1lc3BhY2UgV2ViUHVzaEQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
d2VicHVzaGQvTW9ja1B1c2hTZXJ2aWNlQ29ubmVjdGlvbi5tbSBiL1NvdXJjZS9XZWJLaXQvd2Vi
cHVzaGQvTW9ja1B1c2hTZXJ2aWNlQ29ubmVjdGlvbi5tbQpuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5kYmVmYTc0YWVj
ZDlhOWVhMGU0MTk4MzM4NjhlMzA4ZDNkNzZmNjAzCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNl
L1dlYktpdC93ZWJwdXNoZC9Nb2NrUHVzaFNlcnZpY2VDb25uZWN0aW9uLm1tCkBAIC0wLDAgKzEs
ODcgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjIgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJl
c2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5h
cnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVk
IHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICog
MS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBj
b3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9y
bSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisg
KiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0
aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQ
TEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVT
UyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAor
ICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1Mg
Rk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQg
U0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFO
WSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisg
KiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQ
Uk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBV
U0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VW
RVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICog
Q09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNF
IE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBU
SElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBT
VUNIIERBTUFHRS4KKyAqLworCisjaW1wb3J0ICJjb25maWcuaCIKKyNpbXBvcnQgIk1vY2tQdXNo
U2VydmljZUNvbm5lY3Rpb24uaCIKKworbmFtZXNwYWNlIFdlYlB1c2hEIHsKKworTW9ja1B1c2hT
ZXJ2aWNlQ29ubmVjdGlvbjo6TW9ja1B1c2hTZXJ2aWNlQ29ubmVjdGlvbigpCit7Cit9CisKK01v
Y2tQdXNoU2VydmljZUNvbm5lY3Rpb246On5Nb2NrUHVzaFNlcnZpY2VDb25uZWN0aW9uKCkgPSBk
ZWZhdWx0OworCit2b2lkIE1vY2tQdXNoU2VydmljZUNvbm5lY3Rpb246OnN1YnNjcmliZShjb25z
dCBTdHJpbmcmLCBjb25zdCBWZWN0b3I8dWludDhfdD4mLCBTdWJzY3JpYmVIYW5kbGVyJiYgaGFu
ZGxlcikKK3sKKyAgICBoYW5kbGVyKHsgfSwgW05TRXJyb3IgZXJyb3JXaXRoRG9tYWluOk5TQ29j
b2FFcnJvckRvbWFpbiBjb2RlOk5TRmVhdHVyZVVuc3VwcG9ydGVkRXJyb3IgdXNlckluZm86bmls
XSk7Cit9CisKK3ZvaWQgTW9ja1B1c2hTZXJ2aWNlQ29ubmVjdGlvbjo6dW5zdWJzY3JpYmUoY29u
c3QgU3RyaW5nJiwgY29uc3QgVmVjdG9yPHVpbnQ4X3Q+JiwgVW5zdWJzY3JpYmVIYW5kbGVyJiYg
aGFuZGxlcikKK3sKKyAgICBoYW5kbGVyKHsgfSwgW05TRXJyb3IgZXJyb3JXaXRoRG9tYWluOk5T
Q29jb2FFcnJvckRvbWFpbiBjb2RlOk5TRmVhdHVyZVVuc3VwcG9ydGVkRXJyb3IgdXNlckluZm86
bmlsXSk7Cit9CisKK1ZlY3RvcjxTdHJpbmc+IE1vY2tQdXNoU2VydmljZUNvbm5lY3Rpb246OmVu
YWJsZWRUb3BpY3MoKQoreworICAgIHJldHVybiB7IH07Cit9CisKK1ZlY3RvcjxTdHJpbmc+IE1v
Y2tQdXNoU2VydmljZUNvbm5lY3Rpb246Omlnbm9yZWRUb3BpY3MoKQoreworICAgIHJldHVybiB7
IH07Cit9CisKK1ZlY3RvcjxTdHJpbmc+IE1vY2tQdXNoU2VydmljZUNvbm5lY3Rpb246Om9wcG9y
dHVuaXN0aWNUb3BpY3MoKQoreworICAgIHJldHVybiB7IH07Cit9CisKK1ZlY3RvcjxTdHJpbmc+
IE1vY2tQdXNoU2VydmljZUNvbm5lY3Rpb246Om5vbldha2luZ1RvcGljcygpCit7CisgICAgcmV0
dXJuIHsgfTsKK30KKwordm9pZCBNb2NrUHVzaFNlcnZpY2VDb25uZWN0aW9uOjpzZXRFbmFibGVk
VG9waWNzKFZlY3RvcjxTdHJpbmc+JiYgdG9waWNzKQoreworfQorCit2b2lkIE1vY2tQdXNoU2Vy
dmljZUNvbm5lY3Rpb246OnNldElnbm9yZWRUb3BpY3MoVmVjdG9yPFN0cmluZz4mJiB0b3BpY3Mp
Cit7Cit9CisKK3ZvaWQgTW9ja1B1c2hTZXJ2aWNlQ29ubmVjdGlvbjo6c2V0T3Bwb3J0dW5pc3Rp
Y1RvcGljcyhWZWN0b3I8U3RyaW5nPiYmIHRvcGljcykKK3sKK30KKwordm9pZCBNb2NrUHVzaFNl
cnZpY2VDb25uZWN0aW9uOjpzZXROb25XYWtpbmdUb3BpY3MoVmVjdG9yPFN0cmluZz4mJiB0b3Bp
Y3MpCit7Cit9CisKK3ZvaWQgTW9ja1B1c2hTZXJ2aWNlQ29ubmVjdGlvbjo6c2V0VG9waWNMaXN0
cyhUb3BpY0xpc3RzJiYgdG9waWNMaXN0cykKK3sKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViUHVz
aEQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvd2VicHVzaGQvUHVzaFNlcnZpY2VDb25uZWN0
aW9uLmggYi9Tb3VyY2UvV2ViS2l0L3dlYnB1c2hkL1B1c2hTZXJ2aWNlQ29ubmVjdGlvbi5oCm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAuLjJjMTQxNDRjNjFiYjNlZmFlNGVkMzI4ZTE1MjBkM2VjZjA4MzE3ZWYKLS0tIC9k
ZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L3dlYnB1c2hkL1B1c2hTZXJ2aWNlQ29ubmVjdGlv
bi5oCkBAIC0wLDAgKzEsODIgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjIgQXBwbGUgSW5j
LiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4g
c291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9u
LCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisg
KiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0
YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9u
cyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMg
cHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMg
UFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAq
IEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJ
VFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1F
RC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBC
RSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBF
WEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJW
SUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRF
UlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwg
V0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xV
RElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQg
T0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQ
T1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworI2luY2x1
ZGUgPHd0Zi9Db21wbGV0aW9uSGFuZGxlci5oPgorI2luY2x1ZGUgPHd0Zi9EZXF1ZS5oPgorI2lu
Y2x1ZGUgPHd0Zi9GdW5jdGlvbi5oPgorI2luY2x1ZGUgPHd0Zi9SZXRhaW5QdHIuaD4KKyNpbmNs
dWRlIDx3dGYvVmVjdG9yLmg+CisjaW5jbHVkZSA8d3RmL1dlYWtQdHIuaD4KKyNpbmNsdWRlIDx3
dGYvdGV4dC9XVEZTdHJpbmcuaD4KKworT0JKQ19DTEFTUyBOU0Vycm9yOworT0JKQ19DTEFTUyBO
U1N0cmluZzsKK09CSkNfQ0xBU1MgTlNEaWN0aW9uYXJ5OworCituYW1lc3BhY2UgV2ViUHVzaEQg
eworCitjbGFzcyBQdXNoU2VydmljZUNvbm5lY3Rpb24gOiBwdWJsaWMgQ2FuTWFrZVdlYWtQdHI8
UHVzaFNlcnZpY2VDb25uZWN0aW9uPiB7CisgICAgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7Citw
dWJsaWM6CisgICAgdXNpbmcgSW5jb21pbmdQdXNoTWVzc2FnZUhhbmRsZXIgPSBGdW5jdGlvbjx2
b2lkKE5TU3RyaW5nICosIE5TRGljdGlvbmFyeSAqKT47CisKKyAgICBQdXNoU2VydmljZUNvbm5l
Y3Rpb24oKSA9IGRlZmF1bHQ7CisgICAgdmlydHVhbCB+UHVzaFNlcnZpY2VDb25uZWN0aW9uKCkg
PSBkZWZhdWx0OworCisgICAgdXNpbmcgU3Vic2NyaWJlSGFuZGxlciA9IENvbXBsZXRpb25IYW5k
bGVyPHZvaWQoTlNTdHJpbmcgKiwgTlNFcnJvciAqKT47CisgICAgdmlydHVhbCB2b2lkIHN1YnNj
cmliZShjb25zdCBTdHJpbmcmIHRvcGljLCBjb25zdCBWZWN0b3I8dWludDhfdD4mIHZhcGlkUHVi
bGljS2V5LCBTdWJzY3JpYmVIYW5kbGVyJiYpID0gMDsKKworICAgIHVzaW5nIFVuc3Vic2NyaWJl
SGFuZGxlciA9IENvbXBsZXRpb25IYW5kbGVyPHZvaWQoYm9vbCwgTlNFcnJvciAqKT47CisgICAg
dmlydHVhbCB2b2lkIHVuc3Vic2NyaWJlKGNvbnN0IFN0cmluZyYgdG9waWMsIGNvbnN0IFZlY3Rv
cjx1aW50OF90PiYgdmFwaWRQdWJsaWNLZXksIFVuc3Vic2NyaWJlSGFuZGxlciYmKSA9IDA7CisK
KyAgICB2aXJ0dWFsIFZlY3RvcjxTdHJpbmc+IGVuYWJsZWRUb3BpY3MoKSA9IDA7CisgICAgdmly
dHVhbCBWZWN0b3I8U3RyaW5nPiBpZ25vcmVkVG9waWNzKCkgPSAwOworICAgIHZpcnR1YWwgVmVj
dG9yPFN0cmluZz4gb3Bwb3J0dW5pc3RpY1RvcGljcygpID0gMDsKKyAgICB2aXJ0dWFsIFZlY3Rv
cjxTdHJpbmc+IG5vbldha2luZ1RvcGljcygpID0gMDsKKworICAgIHZpcnR1YWwgdm9pZCBzZXRF
bmFibGVkVG9waWNzKFZlY3RvcjxTdHJpbmc+JiYpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgc2V0
SWdub3JlZFRvcGljcyhWZWN0b3I8U3RyaW5nPiYmKSA9IDA7CisgICAgdmlydHVhbCB2b2lkIHNl
dE9wcG9ydHVuaXN0aWNUb3BpY3MoVmVjdG9yPFN0cmluZz4mJikgPSAwOworICAgIHZpcnR1YWwg
dm9pZCBzZXROb25XYWtpbmdUb3BpY3MoVmVjdG9yPFN0cmluZz4mJikgPSAwOworCisgICAgc3Ry
dWN0IFRvcGljTGlzdHMgeworICAgICAgICBWZWN0b3I8U3RyaW5nPiBlbmFibGVkVG9waWNzOwor
ICAgICAgICBWZWN0b3I8U3RyaW5nPiBpZ25vcmVkVG9waWNzOworICAgICAgICBWZWN0b3I8U3Ry
aW5nPiBvcHBvcnR1bmlzdGljVG9waWNzOworICAgICAgICBWZWN0b3I8U3RyaW5nPiBub25XYWtp
bmdUb3BpY3M7CisgICAgfTsKKyAgICB2aXJ0dWFsIHZvaWQgc2V0VG9waWNMaXN0cyhUb3BpY0xp
c3RzJiYpID0gMDsKKworICAgIHZvaWQgc3RhcnRMaXN0ZW5pbmdGb3JQdXNoTWVzc2FnZXMoSW5j
b21pbmdQdXNoTWVzc2FnZUhhbmRsZXImJik7CisgICAgdm9pZCBkaWRSZWNlaXZlUHVzaE1lc3Nh
Z2UoTlNTdHJpbmcgKnRvcGljLCBOU0RpY3Rpb25hcnkgKnVzZXJJbmZvKTsKKworcHJpdmF0ZToK
KyAgICBJbmNvbWluZ1B1c2hNZXNzYWdlSGFuZGxlciBtX2luY29taW5nUHVzaE1lc3NhZ2VIYW5k
bGVyOworICAgIERlcXVlPHN0ZDo6cGFpcjxSZXRhaW5QdHI8TlNTdHJpbmc+LCBSZXRhaW5QdHI8
TlNEaWN0aW9uYXJ5Pj4+IG1fcGVuZGluZ1B1c2hlczsKK307CisKK30gLy8gbmFtZXNwYWNlIFdl
YlB1c2hECmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L3dlYnB1c2hkL1B1c2hTZXJ2aWNlQ29u
bmVjdGlvbi5tbSBiL1NvdXJjZS9XZWJLaXQvd2VicHVzaGQvUHVzaFNlcnZpY2VDb25uZWN0aW9u
Lm1tCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLjUzNDMzMjVlYjVlYTIwM2U4ZGY2ZmY4MzAzY2I5YjBmZmM4MTMyMWIK
LS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L3dlYnB1c2hkL1B1c2hTZXJ2aWNlQ29u
bmVjdGlvbi5tbQpAQCAtMCwwICsxLDYwIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIyIEFw
cGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQg
dXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlm
aWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0
aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBt
dXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3Ry
aWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdo
dAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0
ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRX
QVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJ
UycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hB
TlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJ
U0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9S
UworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BF
Q0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMg
T1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUwor
ICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFC
SUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JU
IChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBX
QVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisg
KiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2ltcG9ydCAiY29uZmln
LmgiCisjaW1wb3J0ICJQdXNoU2VydmljZUNvbm5lY3Rpb24uaCIKKworI2ltcG9ydCA8d3RmL1dv
cmtRdWV1ZS5oPgorCituYW1lc3BhY2UgV2ViUHVzaEQgeworCit2b2lkIFB1c2hTZXJ2aWNlQ29u
bmVjdGlvbjo6c3RhcnRMaXN0ZW5pbmdGb3JQdXNoTWVzc2FnZXMoSW5jb21pbmdQdXNoTWVzc2Fn
ZUhhbmRsZXImJiBoYW5kbGVyKQoreworICAgIG1faW5jb21pbmdQdXNoTWVzc2FnZUhhbmRsZXIg
PSBXVEZNb3ZlKGhhbmRsZXIpOworCisgICAgaWYgKCFtX3BlbmRpbmdQdXNoZXMuc2l6ZSgpKQor
ICAgICAgICByZXR1cm47CisKKyAgICBXb3JrUXVldWU6Om1haW4oKS5kaXNwYXRjaChbdGhpc10o
KSBtdXRhYmxlIHsKKyAgICAgICAgd2hpbGUgKG1fcGVuZGluZ1B1c2hlcy5zaXplKCkpIHsKKyAg
ICAgICAgICAgIEBhdXRvcmVsZWFzZXBvb2wgeworICAgICAgICAgICAgICAgIGF1dG8gbWVzc2Fn
ZSA9IG1fcGVuZGluZ1B1c2hlcy50YWtlRmlyc3QoKTsKKyAgICAgICAgICAgICAgICBtX2luY29t
aW5nUHVzaE1lc3NhZ2VIYW5kbGVyKG1lc3NhZ2UuZmlyc3QuZ2V0KCksIG1lc3NhZ2Uuc2Vjb25k
LmdldCgpKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0pOworfQorCit2b2lkIFB1
c2hTZXJ2aWNlQ29ubmVjdGlvbjo6ZGlkUmVjZWl2ZVB1c2hNZXNzYWdlKE5TU3RyaW5nICp0b3Bp
YywgTlNEaWN0aW9uYXJ5ICp1c2VySW5mbykKK3sKKyAgICBpZiAoIW1faW5jb21pbmdQdXNoTWVz
c2FnZUhhbmRsZXIpIHsKKyAgICAgICAgbV9wZW5kaW5nUHVzaGVzLmFwcGVuZCh7IHRvcGljLCB1
c2VySW5mbyB9KTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIG1faW5jb21pbmdQdXNo
TWVzc2FnZUhhbmRsZXIodG9waWMsIHVzZXJJbmZvKTsKK30KKworfSAvLyBuYW1lc3BhY2UgV2Vi
UHVzaEQKZGlmZiAtLWdpdCBhL1dlYktpdExpYnJhcmllcy9DaGFuZ2VMb2cgYi9XZWJLaXRMaWJy
YXJpZXMvQ2hhbmdlTG9nCmluZGV4IDE0ZjFkMmVkYWRlOWE0ZDA4NzVhNTgxMjVlOGY5ZThjODAz
NmY0YTguLjNjMzYyMjI3ZDMxZjAxNDI5ZGRjODQzYmMyOTdmMjEzMzZkY2IzZjggMTAwNjQ0Ci0t
LSBhL1dlYktpdExpYnJhcmllcy9DaGFuZ2VMb2cKKysrIGIvV2ViS2l0TGlicmFyaWVzL0NoYW5n
ZUxvZwpAQCAtMSwzICsxLDE0IEBACisyMDIyLTAxLTMwICBCZW4gTmhhbSAgPG5oYW1AYXBwbGUu
Y29tPgorCisgICAgICAgIEltcG9ydCBBUFNDb25uZWN0aW9uLXJlbGF0ZWQgU1BJCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzU4NTYKKworICAgICAg
ICBSZXZpZXdlZCBZb3Vlbm4gRmFibGV0LgorCisgICAgICAgIEFkZCBhbiBBcHBsZVB1c2hTZXJ2
aWNlIHN0dWIgc28gd2UgY2FuIGJ1aWxkIGFnYWluc3QgaXQgd2l0aCBwdWJsaWMgU0RLcy4KKwor
ICAgICAgICAqIFdlYktpdFByaXZhdGVGcmFtZXdvcmtTdHVicy9pT1MvMTUvQXBwbGVQdXNoU2Vy
dmljZS5mcmFtZXdvcmsvQXBwbGVQdXNoU2VydmljZS50YmQ6IEFkZGVkLgorCiAyMDIyLTAxLTAx
ICBKZWZmIE1pbGxlciAgPGplZmZtQGFwcGxlLmNvbT4KIAogICAgICAgICBVcGRhdGUgdXNlci12
aXNpYmxlIGNvcHlyaWdodCBzdHJpbmdzIHRvIGluY2x1ZGUgMjAyMgpkaWZmIC0tZ2l0IGEvV2Vi
S2l0TGlicmFyaWVzL1dlYktpdFByaXZhdGVGcmFtZXdvcmtTdHVicy9pT1MvMTUvQXBwbGVQdXNo
U2VydmljZS5mcmFtZXdvcmsvQXBwbGVQdXNoU2VydmljZS50YmQgYi9XZWJLaXRMaWJyYXJpZXMv
V2ViS2l0UHJpdmF0ZUZyYW1ld29ya1N0dWJzL2lPUy8xNS9BcHBsZVB1c2hTZXJ2aWNlLmZyYW1l
d29yay9BcHBsZVB1c2hTZXJ2aWNlLnRiZApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi41Mjg3ZmZlMmJmOWI0OThlMmI0
ZmVlNDQ3NDVkZDJkYjEzYmYyNGIzCi0tLSAvZGV2L251bGwKKysrIGIvV2ViS2l0TGlicmFyaWVz
L1dlYktpdFByaXZhdGVGcmFtZXdvcmtTdHVicy9pT1MvMTUvQXBwbGVQdXNoU2VydmljZS5mcmFt
ZXdvcmsvQXBwbGVQdXNoU2VydmljZS50YmQKQEAgLTAsMCArMSw3NiBAQAorLS0tICF0YXBpLXRi
ZAordGJkLXZlcnNpb246ICAgICA0Cit0YXJnZXRzOiAgICAgICAgIFsgYXJtdjctaW9zLCBhcm12
N3MtaW9zLCBhcm02NC1pb3MsIGFybTY0ZS1pb3MgXQordXVpZHM6CisgIC0gdGFyZ2V0OiAgICAg
ICAgICBhcm12Ny1pb3MKKyAgICB2YWx1ZTogICAgICAgICAgIEZBMzE2OTQ5LTk2NjAtM0REQi05
Q0M0LTRBMzA1QjdCMjdFOQorICAtIHRhcmdldDogICAgICAgICAgYXJtdjdzLWlvcworICAgIHZh
bHVlOiAgICAgICAgICAgNTE3REZBQzgtRUZGRi0zRDExLTlEOTEtODAxRjE2NUMzNTg5CisgIC0g
dGFyZ2V0OiAgICAgICAgICBhcm02NC1pb3MKKyAgICB2YWx1ZTogICAgICAgICAgIDk0MDMzRjA4
LUZDNTQtMzRGQS05M0MwLTc1M0EwODk3MDI3QgorICAtIHRhcmdldDogICAgICAgICAgYXJtNjRl
LWlvcworICAgIHZhbHVlOiAgICAgICAgICAgRUNCNzQ2MDMtODhDRC0zNjdELUI2MjMtREYxMEE3
OEQxQzAxCitpbnN0YWxsLW5hbWU6ICAgICcvU3lzdGVtL0xpYnJhcnkvUHJpdmF0ZUZyYW1ld29y
a3MvQXBwbGVQdXNoU2VydmljZS5mcmFtZXdvcmsvQXBwbGVQdXNoU2VydmljZScKK2V4cG9ydHM6
CisgIC0gdGFyZ2V0czogICAgICAgICBbIGFybXY3LWlvcywgYXJtdjdzLWlvcyBdCisgICAgc3lt
Ym9sczogICAgICAgICBbIF9BUFNBc3NlcnQsIF9BUFNDb25uZWN0aW9uSW50ZXJydXB0ZWRIYW5k
bGVyQmxvY2ssIF9BUFNDb25uZWN0aW9uSW52YWxpZGF0aW9uSGFuZGxlckJsb2NrLCAKKyAgICAg
ICAgICAgICAgICAgICAgICAgX0FQU0NvcHlWYWx1ZUZvcktleSwgX0FQU0NyZWF0ZU1JR1NlcnZl
clNvdXJjZSwgX0FQU0NyZWF0ZU1JR1NlcnZlclNvdXJjZVdpdGhDb250ZXh0LCAKKyAgICAgICAg
ICAgICAgICAgICAgICAgX0FQU0dldEJvb2xlYW5WYWx1ZUZvcktleSwgX0FQU0dldENvbnRleHRG
b3JDYWxsb3V0Q3VycmVudE1JR1NlcnZlclNvdXJjZSwgCisgICAgICAgICAgICAgICAgICAgICAg
IF9BUFNHZXRNYWNoUG9ydEZvck1JR1NlcnZlclNvdXJjZSwgX0FQU0luY29taW5nTWVzc2FnZUZy
b21TdG9yYWdlS2V5LCAKKyAgICAgICAgICAgICAgICAgICAgICAgX0FQU0luY29taW5nTWVzc2Fn
ZUxhc3RNZXNzYWdlRnJvbVN0b3JhZ2VLZXksIF9BUFNJbmNvbWluZ01lc3NhZ2VUaW1lc3RhbXBL
ZXksIAorICAgICAgICAgICAgICAgICAgICAgICBfQVBTSW5jb21pbmdNZXNzYWdlVG9rZW5LZXks
IF9BUFNNZXNzYWdlQ29ycmVsYXRpb25JZGVudGlmaWVyS2V5LCAKKyAgICAgICAgICAgICAgICAg
ICAgICAgX0FQU01lc3NhZ2VHVUlES2V5LCBfQVBTTWVzc2FnZUlkZW50aWZpZXJLZXksIF9BUFNN
ZXNzYWdlVG9waWNLZXksIAorICAgICAgICAgICAgICAgICAgICAgICBfQVBTTWVzc2FnZVVzZXJJ
bmZvS2V5LCBfQVBTT3V0Z29pbmdNZXNzYWdlQ2FuY2VsbGVkS2V5LCBfQVBTT3V0Z29pbmdNZXNz
YWdlQ3JpdGljYWxLZXksIAorICAgICAgICAgICAgICAgICAgICAgICBfQVBTT3V0Z29pbmdNZXNz
YWdlSURLZXksIF9BUFNPdXRnb2luZ01lc3NhZ2VQYXlsb2FkRm9ybWF0S2V5LCAKKyAgICAgICAg
ICAgICAgICAgICAgICAgX0FQU091dGdvaW5nTWVzc2FnZVBheWxvYWRMZW5ndGhLZXksIF9BUFNP
dXRnb2luZ01lc3NhZ2VQcmlvcml0eUtleSwgCisgICAgICAgICAgICAgICAgICAgICAgIF9BUFNP
dXRnb2luZ01lc3NhZ2VTZW5kRGF0ZUtleSwgX0FQU091dGdvaW5nTWVzc2FnZVNlbmRJbnRlcmZh
Y2VLZXksIAorICAgICAgICAgICAgICAgICAgICAgICBfQVBTT3V0Z29pbmdNZXNzYWdlU2VuZGVy
VG9rZW5OYW1lS2V5LCBfQVBTT3V0Z29pbmdNZXNzYWdlU2VudEtleSwgCisgICAgICAgICAgICAg
ICAgICAgICAgIF9BUFNPdXRnb2luZ01lc3NhZ2VUaW1lZE91dEtleSwgX0FQU091dGdvaW5nTWVz
c2FnZVRpbWVvdXRLZXksIAorICAgICAgICAgICAgICAgICAgICAgICBfQVBTT3V0Z29pbmdNZXNz
YWdlVGltZXN0YW1wS2V5LCBfQVBTUHJlZkJ1bmRsZUlkZW50aWZpZXIsIAorICAgICAgICAgICAg
ICAgICAgICAgICBfQVBTU2V0VmFsdWVGb3JLZXksIF9BUFNTeW5jaHJvbml6ZSwgX0FQU1hQQ0xv
ZywgX0FQU1hQQ1NldExvZ0Jsb2NrLCAKKyAgICAgICAgICAgICAgICAgICAgICAgX0Nvbm5lY3Rp
b25EZWxpdmVyX3NlcnZlciwgX0Nvbm5lY3Rpb25EZWxpdmVyX3NlcnZlcl9yb3V0aW5lLCAKKyAg
ICAgICAgICAgICAgICAgICAgICAgX19BUFNDb25uZWN0aW9uRGVsaXZlcl9zdWJzeXN0ZW0sIF9f
QVBTSldTdHJpbmdUb0NoYXJQdHIsIAorICAgICAgICAgICAgICAgICAgICAgICBfX0FQU1BpbmdD
bGllbnQsIF9hcHNfY29ubmVjdGlvbl9ldmVudF9oYW5kbGVyIF0KKyAgICBvYmpjLWNsYXNzZXM6
ICAgIFsgQVBTRmlsZUxvZ2dpbmcsIEFQU011bHRpVXNlckZTLCBBUFNNdWx0aVVzZXJNb2RlLCBf
QVBTTG9nRmlsZUNvbXByZXNzb3IgXQorICAgIG9iamMtaXZhcnM6ICAgICAgWyBfQVBTTG9nRmls
ZUNvbXByZXNzb3IuX2FyY2hpdmVycyBdCisgIC0gdGFyZ2V0czogICAgICAgICBbIGFybTY0LWlv
cywgYXJtNjRlLWlvcywgYXJtdjctaW9zLCBhcm12N3MtaW9zIF0KKyAgICBzeW1ib2xzOiAgICAg
ICAgIFsgX0FQU0FsZXJ0LCBfQVBTQnVuZGxlSWRlbnRpZmllciwgX0FQU0NhY2hlZElQS2V5LCBf
QVBTQ2Fycmllck5hbWVLZXksIAorICAgICAgICAgICAgICAgICAgICAgICBfQVBTQ2xpZW50SWRl
bnRpdHlVcGRhdGVkTm90aWZpY2F0aW9uLCBfQVBTQ29ubmVjdGlvbkluaXRpYXRlRW50aXRsZW1l
bnQsIAorICAgICAgICAgICAgICAgICAgICAgICBfQVBTQ29ubmVjdGlvbk92ZXJyaWRlTmFtZWRE
ZWxlZ2F0ZVBvcnQsIF9BUFNDb25uZWN0aW9uU3lzdGVtUHJvY2Vzc0VudGl0bGVtZW50LCAKKyAg
ICAgICAgICAgICAgICAgICAgICAgX0FQU0NyZWF0ZURpY3Rpb25hcnlGcm9tWFBDT2JqZWN0LCBf
QVBTQ3JlYXRlWFBDT2JqZWN0RnJvbURpY3Rpb25hcnksIAorICAgICAgICAgICAgICAgICAgICAg
ICBfQVBTQ3JpdGljYWxXYWtlRW50aXRsZW1lbnQsIF9BUFNEYXJrV2FrZUVudGl0bGVtZW50LCBf
QVBTRGF0YUZvclByb3BlcnR5TGlzdCwgCisgICAgICAgICAgICAgICAgICAgICAgIF9BUFNEZWNv
ZGVEaWN0aW9uYXJ5LCBfQVBTRGVmYXVsdFRva2VuTmFtZSwgX0FQU0RlZmF1bHRVc2VySUQsIAor
ICAgICAgICAgICAgICAgICAgICAgICBfQVBTRGVtb0hvc3RzS2V5LCBfQVBTRW5jb2RlRGljdGlv
bmFyeSwgX0FQU0Vudmlyb25tZW50RGVtbywgCisgICAgICAgICAgICAgICAgICAgICAgIF9BUFNF
bnZpcm9ubWVudERldmVsb3BtZW50LCBfQVBTRW52aXJvbm1lbnRQcm9kdWN0aW9uLCBfQVBTRW52
aXJvbm1lbnRRQTIsIAorICAgICAgICAgICAgICAgICAgICAgICBfQVBTRXJyb3IsIF9BUFNFcnJv
ckRvbWFpbiwgX0FQU0ZvcmNlS2VlcEFsaXZlVjFLZXksIF9BUFNHZXRFbmFibGVDcml0aWNhbFJl
bGlhYmlsaXR5LCAKKyAgICAgICAgICAgICAgICAgICAgICAgX0FQU0dldEVuYWJsZVN0YXR1c05v
dGlmaWNhdGlvbnMsIF9BUFNHZXRFbmFibGVkVG9waWNzRnJvbVhQQ0RpY3Rpb25hcnksIAorICAg
ICAgICAgICAgICAgICAgICAgICBfQVBTR2V0SWdub3JlZFRvcGljc0Zyb21YUENEaWN0aW9uYXJ5
LCBfQVBTR2V0Tm9uV2FraW5nVG9waWNzRnJvbVhQQ0RpY3Rpb25hcnksIAorICAgICAgICAgICAg
ICAgICAgICAgICBfQVBTR2V0T3Bwb3J0dW5pc3RpY1RvcGljc0Zyb21YUENEaWN0aW9uYXJ5LCBf
QVBTR2V0VXNlc0FwcExhdW5jaFN0YXRzLCAKKyAgICAgICAgICAgICAgICAgICAgICAgX0FQU0dl
dFhQQ0FycmF5RnJvbURpY3Rpb25hcnksIF9BUFNHZXRYUENCb29sRnJvbURpY3Rpb25hcnksIAor
ICAgICAgICAgICAgICAgICAgICAgICBfQVBTR2V0WFBDQ29ubmVjdGlvbkNvbnRleHQsIF9BUFNH
ZXRYUENEYXRhRnJvbURpY3Rpb25hcnksIAorICAgICAgICAgICAgICAgICAgICAgICBfQVBTR2V0
WFBDRGljdGlvbmFyeUZyb21EaWN0aW9uYXJ5LCBfQVBTR2V0WFBDRG91YmxlRnJvbURpY3Rpb25h
cnksIAorICAgICAgICAgICAgICAgICAgICAgICBfQVBTR2V0WFBDSW50RnJvbURpY3Rpb25hcnks
IF9BUFNHZXRYUENOU1VJbnRlZ2VyRnJvbURpY3Rpb25hcnksIAorICAgICAgICAgICAgICAgICAg
ICAgICBfQVBTR2V0WFBDU3RyaW5nRnJvbURpY3Rpb25hcnksIF9BUFNIZXhTdHJpbmdGcm9tTlNE
YXRhLCBfQVBTSW5jb21pbmdNZXNzYWdlUHJpb3JpdHlTdHJpbmcsIAorICAgICAgICAgICAgICAg
ICAgICAgICBfQVBTSW5zZXJ0Qm9vbHNUb1hQQ0RpY3Rpb25hcnksIF9BUFNJbnNlcnREYXRhc1Rv
WFBDRGljdGlvbmFyeSwgCisgICAgICAgICAgICAgICAgICAgICAgIF9BUFNJbnNlcnREb3VibGVz
VG9YUENEaWN0aW9uYXJ5LCBfQVBTSW5zZXJ0RW5hYmxlZFRvcGljc1RvWFBDRGljdGlvbmFyeSwg
CisgICAgICAgICAgICAgICAgICAgICAgIF9BUFNJbnNlcnRJZ25vcmVkVG9waWNzVG9YUENEaWN0
aW9uYXJ5LCBfQVBTSW5zZXJ0SW50c1RvWFBDRGljdGlvbmFyeSwgCisgICAgICAgICAgICAgICAg
ICAgICAgIF9BUFNJbnNlcnROU0FycmF5c1RvWFBDRGljdGlvbmFyeSwgX0FQU0luc2VydE5TRGlj
dGlvbmFyaWVzVG9YUENEaWN0aW9uYXJ5LCAKKyAgICAgICAgICAgICAgICAgICAgICAgX0FQU0lu
c2VydE5TU3RyaW5nc1RvWFBDRGljdGlvbmFyeSwgX0FQU0luc2VydE5TVUludGVnZXJzVG9YUENE
aWN0aW9uYXJ5LCAKKyAgICAgICAgICAgICAgICAgICAgICAgX0FQU0luc2VydE5vbldha2luZ1Rv
cGljc1RvWFBDRGljdGlvbmFyeSwgX0FQU0luc2VydE9wcG9ydHVuaXN0aWNUb3BpY3NUb1hQQ0Rp
Y3Rpb25hcnksIAorICAgICAgICAgICAgICAgICAgICAgICBfQVBTSXNTVCwgX0FQU0xhdW5jaGRK
b2JMYWJlbCwgX0FQU05TRGF0YUZyb21IZXhTdHJpbmcsIF9BUFNQZXJBcHBUb2tlbkFwcElkc0tl
eSwgCisgICAgICAgICAgICAgICAgICAgICAgIF9BUFNQZXJzaXN0ZW50VG9waWNzS2V5LCBfQVBT
UG93ZXJMb2csIF9BUFNQcmV0dHlQcmludENvbGxlY3Rpb24sIAorICAgICAgICAgICAgICAgICAg
ICAgICBfQVBTUHJvcGVydHlMaXN0RnJvbU5TRGF0YSwgX0FQU1B1YlN1YkVycm9yLCBfQVBTUHVi
U3ViRXJyb3JEb21haW4sIAorICAgICAgICAgICAgICAgICAgICAgICBfQVBTUHVzaFdha2VFbnRp
dGxlbWVudCwgX0FQU1NhZmVBcnJheU9mU3RyaW5ncywgX0FQU1NldFhQQ0Nvbm5lY3Rpb25Db250
ZXh0LCAKKyAgICAgICAgICAgICAgICAgICAgICAgX0FQU1N5c3RlbVVzZXJzS2V5LCBfQVBTVHJ1
c3RBbGxIb3N0cywgX0FQU1VuZGVybHlpbmdFcnJvciwgCisgICAgICAgICAgICAgICAgICAgICAg
IF9BUFNVc2VzQXBwTGF1bmNoU3RhdHNLZXksIF9BUFNYUENDb25maWd1cmVDb25uZWN0aW9uLCBf
QVBTWFBDQ29ubmVjdGlvblNldEV2ZW50SGFuZGxlcnMsIAorICAgICAgICAgICAgICAgICAgICAg
ICBfQVBTWFBDQ3JlYXRlQ29ubmVjdGlvbkZvclNlcnZpY2UsIF9BUFNYUENDcmVhdGVDb25uZWN0
aW9uRm9yU2VydmljZVdpdGhRdWV1ZSwgCisgICAgICAgICAgICAgICAgICAgICAgIF9BUFNYUEND
cmVhdGVTZXJ2ZXJDb25uZWN0aW9uLCBfQVBTWFBDTWVzc2FnZVR5cGVLZXksIF9rQVBTVGFza0Ns
aWVudFNlcnZpY2VOYW1lIF0KKyAgICBvYmpjLWNsYXNzZXM6ICAgIFsgQVBTQWNjZXNzQ2hlY2ss
IEFQU0NoYW5uZWxTdWJzY3JpcHRpb25GYWlsdXJlLCBBUFNDb25uZWN0aW9uLCAKKyAgICAgICAg
ICAgICAgICAgICAgICAgQVBTRE5TUmVxdWVzdCwgQVBTRE5TUmVzcG9uc2UsIEFQU0luY29taW5n
TWVzc2FnZSwgQVBTTG9nLCAKKyAgICAgICAgICAgICAgICAgICAgICAgQVBTTWVzc2FnZSwgQVBT
T3V0Z29pbmdNZXNzYWdlLCBBUFNUYXNrQ2xpZW50IF0KKyAgICBvYmpjLWl2YXJzOiAgICAgIFsg
QVBTRE5TUmVxdWVzdC5fZW52aXJvbm1lbnQsIEFQU0ROU1JlcXVlc3QuX2ZsYWdzLCBBUFNETlNS
ZXF1ZXN0Ll9ob3N0bmFtZSwgCisgICAgICAgICAgICAgICAgICAgICAgIEFQU0ROU1JlcXVlc3Qu
X3JlcXVlc3RTdGFydFRpbWUsIEFQU0ROU1JlcXVlc3QuX3Jlc3BvbnNlQmxvY2ssIAorICAgICAg
ICAgICAgICAgICAgICAgICBBUFNETlNSZXF1ZXN0Ll90aW1lb3V0LCBBUFNETlNSZXNwb25zZS5f
aG9zdG5hbWUsIEFQU0ROU1Jlc3BvbnNlLl9pcHY0QWRkcmVzcywgCisgICAgICAgICAgICAgICAg
ICAgICAgIEFQU0ROU1Jlc3BvbnNlLl9pcHY2QWRkcmVzcywgQVBTVGFza0NsaWVudC5fY2xpZW50
UXVldWUsIEFQU1Rhc2tDbGllbnQuX2Nvbm5lY3Rpb24sIAorICAgICAgICAgICAgICAgICAgICAg
ICBBUFNUYXNrQ2xpZW50Ll9lbnZpcm9ubWVudCwgQVBTVGFza0NsaWVudC5fb3V0c3RhbmRpbmdE
TlNSZXF1ZXN0cyBdCisuLi4K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>450434</attachid>
            <date>2022-01-31 12:57:57 -0800</date>
            <delta_ts>2022-02-03 14:55:04 -0800</delta_ts>
            <desc>patch feedback</desc>
            <filename>bug-235856-20220131125756.patch</filename>
            <type>text/plain</type>
            <size>54339</size>
            <attacher name="Ben Nham">nham</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg4ODA2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IDFiZjNjNDYwZmJkNTk3MjkyMmMxZTRk
YjM1MDM4ZTgxY2ZkM2I0YWUuLmY0YjkwNDYwYjM3NWZlZjAyODg3ZTQxNzgxZmUwZWNiMDgzNjZh
ZDYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMTQgQEAKKzIwMjItMDEtMzAgIEJlbiBOaGFtICA8bmhhbUBhcHBs
ZS5jb20+CisKKyAgICAgICAgSW1wb3J0IEFQU0Nvbm5lY3Rpb24tcmVsYXRlZCBTUEkKKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIzNTg1NgorCisgICAg
ICAgIFJldmlld2VkIFlvdWVubiBGYWJsZXQuCisKKyAgICAgICAgQWRkIGEgSEFWRSBtYWNybyB0
byBndWFyZCBzb21lIG9mIHRoZSBuZXdlciBTUEkgaW4gQVBTQ29ubmVjdGlvbi4KKworICAgICAg
ICAqIHd0Zi9QbGF0Zm9ybUhhdmUuaDoKKwogMjAyMi0wMS0zMCAgRGllZ28gUGlubyBHYXJjaWEg
IDxkcGlub0BpZ2FsaWEuY29tPgogCiAgICAgICAgIFtXaW5DYWlyb10gJ2ZpbGVTeXN0ZW1SZXBy
ZXNlbnRhdGlvbicgaWRlbnRpZmllciBub3QgZm91bmQgaW4gVVJMLmNwcApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwppbmRleCA2
NGE2ODA3NjdlMWVkNmZmYzJlYmM2NzU1ODJhMDYxN2JmOTdlNDZiLi4zNjlmZjRiMmQ3ZDgzM2Fk
ZjFhZDcwM2E0ZTA2MjliZWFlMjg4ZDZkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0NoYW5n
ZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwpAQCAtMSwzICsxLDU0IEBACisyMDIy
LTAxLTMwICBCZW4gTmhhbSAgPG5oYW1AYXBwbGUuY29tPgorCisgICAgICAgIEltcG9ydCBBUFND
b25uZWN0aW9uLXJlbGF0ZWQgU1BJCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0yMzU4NTYKKworICAgICAgICBSZXZpZXdlZCBZb3Vlbm4gRmFibGV0Lgor
CisgICAgICAgIFRoaXMgaW1wb3J0cyB0aGUgU1BJIGRlY2xhcmF0aW9ucyBuZWNlc3NhcnkgdG8g
YnVpbGQgYWdhaW5zdCBBcHBsZVB1c2hTZXJ2aWNlIGluIFdlYktpdC4gSXQKKyAgICAgICAgYWxz
byBpbmNsdWRlcyBhIFB1c2hTZXJ2aWNlQ29ubmVjdGlvbiBpbnRlcmZhY2UgdGhhdCBjYW4gc2l0
IGluIGZyb250IG9mIEFQU0Nvbm5lY3Rpb24sIGFuZAorICAgICAgICBhIGZha2UgaW50ZXJmYWNl
IHRoYXQgd2lsbCBiZSBmbGVzaGVkIG91dCBmb3IgdGVzdGluZyBwdXJwb3Nlcy4KKworICAgICAg
ICAqIENvbmZpZ3VyYXRpb25zL1dlYktpdC54Y2NvbmZpZzoKKyAgICAgICAgKiBQbGF0Zm9ybS9z
cGkvQ29jb2EvQXBwbGVQdXNoU2VydmljZVNQSS5oOiBBZGRlZC4KKyAgICAgICAgKiBXZWJLaXQu
eGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgKiB3ZWJwdXNoZC9BcHBsZVB1c2hT
ZXJ2aWNlQ29ubmVjdGlvbi5oOiBBZGRlZC4KKyAgICAgICAgKiB3ZWJwdXNoZC9BcHBsZVB1c2hT
ZXJ2aWNlQ29ubmVjdGlvbi5tbTogQWRkZWQuCisgICAgICAgICgtW19XS0FQU0Nvbm5lY3Rpb25E
ZWxlZ2F0ZSBpbml0V2l0aENvbm5lY3Rpb246XSk6CisgICAgICAgICgtW19XS0FQU0Nvbm5lY3Rp
b25EZWxlZ2F0ZSBjb25uZWN0aW9uOmRpZFJlY2VpdmVQdWJsaWNUb2tlbjpdKToKKyAgICAgICAg
KC1bX1dLQVBTQ29ubmVjdGlvbkRlbGVnYXRlIGNvbm5lY3Rpb246ZGlkUmVjZWl2ZUluY29taW5n
TWVzc2FnZTpdKToKKyAgICAgICAgKFdlYlB1c2hEOjpBcHBsZVB1c2hTZXJ2aWNlQ29ubmVjdGlv
bjo6QXBwbGVQdXNoU2VydmljZUNvbm5lY3Rpb24pOgorICAgICAgICAoV2ViUHVzaEQ6Om1ha2VU
b2tlbkluZm8pOgorICAgICAgICAoV2ViUHVzaEQ6OkFwcGxlUHVzaFNlcnZpY2VDb25uZWN0aW9u
OjpzdWJzY3JpYmUpOgorICAgICAgICAoV2ViUHVzaEQ6OkFwcGxlUHVzaFNlcnZpY2VDb25uZWN0
aW9uOjp1bnN1YnNjcmliZSk6CisgICAgICAgIChXZWJQdXNoRDo6QXBwbGVQdXNoU2VydmljZUNv
bm5lY3Rpb246OmVuYWJsZWRUb3BpY3MpOgorICAgICAgICAoV2ViUHVzaEQ6OkFwcGxlUHVzaFNl
cnZpY2VDb25uZWN0aW9uOjppZ25vcmVkVG9waWNzKToKKyAgICAgICAgKFdlYlB1c2hEOjpBcHBs
ZVB1c2hTZXJ2aWNlQ29ubmVjdGlvbjo6b3Bwb3J0dW5pc3RpY1RvcGljcyk6CisgICAgICAgIChX
ZWJQdXNoRDo6QXBwbGVQdXNoU2VydmljZUNvbm5lY3Rpb246Om5vbldha2luZ1RvcGljcyk6Cisg
ICAgICAgIChXZWJQdXNoRDo6QXBwbGVQdXNoU2VydmljZUNvbm5lY3Rpb246OnNldEVuYWJsZWRU
b3BpY3MpOgorICAgICAgICAoV2ViUHVzaEQ6OkFwcGxlUHVzaFNlcnZpY2VDb25uZWN0aW9uOjpz
ZXRJZ25vcmVkVG9waWNzKToKKyAgICAgICAgKFdlYlB1c2hEOjpBcHBsZVB1c2hTZXJ2aWNlQ29u
bmVjdGlvbjo6c2V0T3Bwb3J0dW5pc3RpY1RvcGljcyk6CisgICAgICAgIChXZWJQdXNoRDo6QXBw
bGVQdXNoU2VydmljZUNvbm5lY3Rpb246OnNldE5vbldha2luZ1RvcGljcyk6CisgICAgICAgIChX
ZWJQdXNoRDo6QXBwbGVQdXNoU2VydmljZUNvbm5lY3Rpb246OnNldFRvcGljTGlzdHMpOgorICAg
ICAgICAqIHdlYnB1c2hkL01vY2tQdXNoU2VydmljZUNvbm5lY3Rpb24uaDogQWRkZWQuCisgICAg
ICAgICogd2VicHVzaGQvTW9ja1B1c2hTZXJ2aWNlQ29ubmVjdGlvbi5tbTogQWRkZWQuCisgICAg
ICAgIChXZWJQdXNoRDo6TW9ja1B1c2hTZXJ2aWNlQ29ubmVjdGlvbjo6TW9ja1B1c2hTZXJ2aWNl
Q29ubmVjdGlvbik6CisgICAgICAgIChXZWJQdXNoRDo6TW9ja1B1c2hTZXJ2aWNlQ29ubmVjdGlv
bjo6c3Vic2NyaWJlKToKKyAgICAgICAgKFdlYlB1c2hEOjpNb2NrUHVzaFNlcnZpY2VDb25uZWN0
aW9uOjp1bnN1YnNjcmliZSk6CisgICAgICAgIChXZWJQdXNoRDo6TW9ja1B1c2hTZXJ2aWNlQ29u
bmVjdGlvbjo6ZW5hYmxlZFRvcGljcyk6CisgICAgICAgIChXZWJQdXNoRDo6TW9ja1B1c2hTZXJ2
aWNlQ29ubmVjdGlvbjo6aWdub3JlZFRvcGljcyk6CisgICAgICAgIChXZWJQdXNoRDo6TW9ja1B1
c2hTZXJ2aWNlQ29ubmVjdGlvbjo6b3Bwb3J0dW5pc3RpY1RvcGljcyk6CisgICAgICAgIChXZWJQ
dXNoRDo6TW9ja1B1c2hTZXJ2aWNlQ29ubmVjdGlvbjo6bm9uV2FraW5nVG9waWNzKToKKyAgICAg
ICAgKFdlYlB1c2hEOjpNb2NrUHVzaFNlcnZpY2VDb25uZWN0aW9uOjpzZXRFbmFibGVkVG9waWNz
KToKKyAgICAgICAgKFdlYlB1c2hEOjpNb2NrUHVzaFNlcnZpY2VDb25uZWN0aW9uOjpzZXRJZ25v
cmVkVG9waWNzKToKKyAgICAgICAgKFdlYlB1c2hEOjpNb2NrUHVzaFNlcnZpY2VDb25uZWN0aW9u
OjpzZXRPcHBvcnR1bmlzdGljVG9waWNzKToKKyAgICAgICAgKFdlYlB1c2hEOjpNb2NrUHVzaFNl
cnZpY2VDb25uZWN0aW9uOjpzZXROb25XYWtpbmdUb3BpY3MpOgorICAgICAgICAoV2ViUHVzaEQ6
Ok1vY2tQdXNoU2VydmljZUNvbm5lY3Rpb246OnNldFRvcGljTGlzdHMpOgorICAgICAgICAqIHdl
YnB1c2hkL1B1c2hTZXJ2aWNlQ29ubmVjdGlvbi5oOiBBZGRlZC4KKyAgICAgICAgKiB3ZWJwdXNo
ZC9QdXNoU2VydmljZUNvbm5lY3Rpb24ubW06IEFkZGVkLgorICAgICAgICAoV2ViUHVzaEQ6OlB1
c2hTZXJ2aWNlQ29ubmVjdGlvbjo6c3RhcnRMaXN0ZW5pbmdGb3JQdXNoTWVzc2FnZXMpOgorICAg
ICAgICAoV2ViUHVzaEQ6OlB1c2hTZXJ2aWNlQ29ubmVjdGlvbjo6ZGlkUmVjZWl2ZVB1c2hNZXNz
YWdlKToKKwogMjAyMi0wMS0zMCAgUnlvc3VrZSBOaXdhICA8cm5pd2FAd2Via2l0Lm9yZz4KIAog
ICAgICAgICBEZWxldGUgY29kZSBmb3Iga2V5Z2VuIGVsZW1lbnQKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XVEYvd3RmL1BsYXRmb3JtSGF2ZS5oIGIvU291cmNlL1dURi93dGYvUGxhdGZvcm1IYXZlLmgK
aW5kZXggYTA0Nzk4ZTNiNDBhZjRkZGMyYjA5MDhlMzY5NTU1ZDU0MDY2OGQzMy4uOGJhNjllNmFi
NWQ2MzM3ODE3MGQxM2MyNjMzMzhlYWM1Y2UwYTY1ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dURi93
dGYvUGxhdGZvcm1IYXZlLmgKKysrIGIvU291cmNlL1dURi93dGYvUGxhdGZvcm1IYXZlLmgKQEAg
LTExNjMsMyArMTE2Myw4IEBACiAgICAgfHwgKFBMQVRGT1JNKFdBVENIT1MpICYmIF9fV0FUQ0hf
T1NfVkVSU0lPTl9NQVhfQUxMT1dFRCA+PSA4MDUwMCkKICNkZWZpbmUgSEFWRV9DRk5FVFdPUktf
RElTQUJMRV9DQUNIRV9TUEkgMQogI2VuZGlmCisKKyNpZiAoKFBMQVRGT1JNKE1BQykgJiYgX19N
QUNfT1NfWF9WRVJTSU9OX01JTl9SRVFVSVJFRCA+PSAxMzAwMDApIFwKKyAgICB8fCAoUExBVEZP
Uk0oSU9TKSAmJiBfX0lQSE9ORV9PU19WRVJTSU9OX01JTl9SRVFVSVJFRCA+PSAxNjAwMDApKQor
I2RlZmluZSBIQVZFX0FQUExFX1BVU0hfU0VSVklDRV9VUkxfVE9LRU5fU1VQUE9SVCAxCisjZW5k
aWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvQ29uZmlndXJhdGlvbnMvV2ViS2l0LnhjY29u
ZmlnIGIvU291cmNlL1dlYktpdC9Db25maWd1cmF0aW9ucy9XZWJLaXQueGNjb25maWcKaW5kZXgg
ZDQ0OTMxYjM4MjgzZjNjYzExZTEzYTUxMGIzODdkMjE2M2E5MTAxMC4uNGQ3NThkZTI5MzdiMzNi
YTVmMzFiYWRkZDMwN2VkZmI4M2Y3MDg1OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9Db25m
aWd1cmF0aW9ucy9XZWJLaXQueGNjb25maWcKKysrIGIvU291cmNlL1dlYktpdC9Db25maWd1cmF0
aW9ucy9XZWJLaXQueGNjb25maWcKQEAgLTU0LDYgKzU0LDEzIEBAIFdLX0FDQ0VTU0lCSUxJVFlf
TERGTEFHU19DT0NPQV9UT1VDSF9ZRVMgPSAtbEFjY2Vzc2liaWxpdHk7CiBXS19BQ0NFU1NJQklM
SVRZX0xERkxBR1NfQ09DT0FfVE9VQ0hfTk8gPSAkKFdLX0FDQ0VTU0lCSUxJVFlfTERGTEFHUyQo
V0tfTUFDT1NfMTAxNCkpOwogV0tfQUNDRVNTSUJJTElUWV9MREZMQUdTX01BQ09TX1NJTkNFXzEw
MTQgPSAtd2Vha19saWJyYXJ5IC91c3IvbGliL2xpYkFjY2Vzc2liaWxpdHkuZHlsaWI7CiAKK1dL
X0FQUExFX1BVU0hfU0VSVklDRV9MREZMQUdTID0gJChXS19BUFBMRV9QVVNIX1NFUlZJQ0VfTERG
TEFHU18kKFdLX1BMQVRGT1JNX05BTUUpKTsKK1dLX0FQUExFX1BVU0hfU0VSVklDRV9MREZMQUdT
X2lwaG9uZW9zID0gJChXS19BUFBMRV9QVVNIX1NFUlZJQ0VfTERGTEFHUyQoV0tfSU9TXzE1KSk7
CitXS19BUFBMRV9QVVNIX1NFUlZJQ0VfTERGTEFHU19pcGhvbmVzaW11bGF0b3IgPSAkKFdLX0FQ
UExFX1BVU0hfU0VSVklDRV9MREZMQUdTJChXS19JT1NfMTUpKTsKK1dLX0FQUExFX1BVU0hfU0VS
VklDRV9MREZMQUdTX0lPU19TSU5DRV8xNSA9IC1mcmFtZXdvcmsgQXBwbGVQdXNoU2VydmljZTsK
K1dLX0FQUExFX1BVU0hfU0VSVklDRV9MREZMQUdTX21hY29zeCA9ICQoV0tfQVBQTEVfUFVTSF9T
RVJWSUNFX0xERkxBR1MkKFdLX01BQ09TXzEyMDApKTsKK1dLX0FQUExFX1BVU0hfU0VSVklDRV9M
REZMQUdTX01BQ09TX1NJTkNFXzEyMDAgPSAtZnJhbWV3b3JrIEFwcGxlUHVzaFNlcnZpY2U7CisK
IFdLX0FQUEtJVF9MREZMQUdTID0gJChXS19BUFBLSVRfTERGTEFHU18kKFdLX1BMQVRGT1JNX05B
TUUpKTsKIFdLX0FQUEtJVF9MREZMQUdTX21hY29zeCA9IC1mcmFtZXdvcmsgQXBwS2l0OwogV0tf
QVBQS0lUX0xERkxBR1NfbWFjY2F0YWx5c3QgPSAtZnJhbWV3b3JrIEFwcEtpdDsKQEAgLTE1NSw3
ICsxNjIsNyBAQCBXS19MSUJORVRXT1JLRVhURU5TSU9OX0xERkxBR1NfbWFjY2F0YWx5c3QgPSAt
bG5ldHdvcmtleHRlbnNpb247CiBXS19MSUJORVRXT1JLRVhURU5TSU9OX0xERkxBR1NfbWFjb3N4
ID0gLXdlYWtfbGlicmFyeSAvdXNyL2xpYi9saWJuZXR3b3JrZXh0ZW5zaW9uLmR5bGliOwogV0tf
TElCTkVUV09SS0VYVEVOU0lPTl9MREZMQUdTX3R2b3MgPSA7CiAKLUZSQU1FV09SS19BTkRfTElC
UkFSWV9MREZMQUdTID0gLWxvYmpjIC1mcmFtZXdvcmsgQ0ZOZXR3b3JrIC1mcmFtZXdvcmsgQ29y
ZUF1ZGlvIC1mcmFtZXdvcmsgQ29yZUZvdW5kYXRpb24gLWZyYW1ld29yayBDb3JlR3JhcGhpY3Mg
LWZyYW1ld29yayBDb3JlVGV4dCAtZnJhbWV3b3JrIEZvdW5kYXRpb24gLWZyYW1ld29yayBJbWFn
ZUlPIC1mcmFtZXdvcmsgSU9LaXQgLWZyYW1ld29yayBJT1N1cmZhY2UgLWZyYW1ld29yayBXZWJL
aXRMZWdhY3kgLWxuZXR3b3JrIC1mcmFtZXdvcmsgTWV0YWwgJChXS19BQ0NFU1NJQklMSVRZX0xE
RkxBR1MpICQoV0tfQVBQS0lUX0xERkxBR1MpICQoV0tfQkFDS0JPQVJEX1NFUlZJQ0VTX0xERkxB
R1MpICQoV0tfUlVOTklOR0JPQVJEX1NFUlZJQ0VTX0xERkxBR1MpICQoV0tfQVVUSEtJVF9MREZM
QUdTKSAkKFdLX0NBUkJPTl9MREZMQUdTKSAkKFdLX0NPTlRBQ1RTX0xERkxBR1MpICQoV0tfQ09S
RV9QUkVESUNUSU9OX0xERkxBR1MpICQoV0tfQ09SRV9TRVJWSUNFU19MREZMQUdTKSAkKFdLX0dS
QVBISUNTX1NFUlZJQ0VTX0xERkxBR1MpICQoV0tfTElCTkVUV09SS0VYVEVOU0lPTl9MREZMQUdT
KSAkKFdLX0xJQlNBTkRCT1hfTERGTEFHUykgJChXS19MSUJXRUJSVENfTERGTEFHUykgJChXS19N
T0JJTEVfQ09SRV9TRVJWSUNFU19MREZMQUdTKSAkKFdLX01PQklMRV9HRVNUQUxUX0xERkxBR1Mp
ICQoV0tfUERGS0lUX0xERkxBR1MpICQoV0tfUFJPVE9UWVBFX1RPT0xTX0xERkxBR1MpICQoV0tf
U0FGRV9CUk9XU0lOR19MREZMQUdTKSAkKFdLX1NFQ1VSSVRZX0lOVEVSRkFDRV9MREZMQUdTKSAk
KFdLX1VJS0lUX0xERkxBR1MpICQoV0tfVU5JRk9STV9UWVBFX0lERU5USUZJRVJTX0xERkxBR1Mp
ICQoV0tfVVJMX0ZPUk1BVFRJTkdfTERGTEFHUykgJChXS19XRUJJTlNQRUNUT1JVSV9MREZMQUdT
KSAkKFdLX0NPT1JESU5BVE9SX0xERkxBR1MpOworRlJBTUVXT1JLX0FORF9MSUJSQVJZX0xERkxB
R1MgPSAtbG9iamMgLWZyYW1ld29yayBDRk5ldHdvcmsgLWZyYW1ld29yayBDb3JlQXVkaW8gLWZy
YW1ld29yayBDb3JlRm91bmRhdGlvbiAtZnJhbWV3b3JrIENvcmVHcmFwaGljcyAtZnJhbWV3b3Jr
IENvcmVUZXh0IC1mcmFtZXdvcmsgRm91bmRhdGlvbiAtZnJhbWV3b3JrIEltYWdlSU8gLWZyYW1l
d29yayBJT0tpdCAtZnJhbWV3b3JrIElPU3VyZmFjZSAtZnJhbWV3b3JrIFdlYktpdExlZ2FjeSAt
bG5ldHdvcmsgLWZyYW1ld29yayBNZXRhbCAkKFdLX0FDQ0VTU0lCSUxJVFlfTERGTEFHUykgJChX
S19BUFBLSVRfTERGTEFHUykgJChXS19BUFBMRV9QVVNIX1NFUlZJQ0VfTERGTEFHUykgJChXS19C
QUNLQk9BUkRfU0VSVklDRVNfTERGTEFHUykgJChXS19SVU5OSU5HQk9BUkRfU0VSVklDRVNfTERG
TEFHUykgJChXS19BVVRIS0lUX0xERkxBR1MpICQoV0tfQ0FSQk9OX0xERkxBR1MpICQoV0tfQ09O
VEFDVFNfTERGTEFHUykgJChXS19DT1JFX1BSRURJQ1RJT05fTERGTEFHUykgJChXS19DT1JFX1NF
UlZJQ0VTX0xERkxBR1MpICQoV0tfR1JBUEhJQ1NfU0VSVklDRVNfTERGTEFHUykgJChXS19MSUJO
RVRXT1JLRVhURU5TSU9OX0xERkxBR1MpICQoV0tfTElCU0FOREJPWF9MREZMQUdTKSAkKFdLX0xJ
QldFQlJUQ19MREZMQUdTKSAkKFdLX01PQklMRV9DT1JFX1NFUlZJQ0VTX0xERkxBR1MpICQoV0tf
TU9CSUxFX0dFU1RBTFRfTERGTEFHUykgJChXS19QREZLSVRfTERGTEFHUykgJChXS19QUk9UT1RZ
UEVfVE9PTFNfTERGTEFHUykgJChXS19TQUZFX0JST1dTSU5HX0xERkxBR1MpICQoV0tfU0VDVVJJ
VFlfSU5URVJGQUNFX0xERkxBR1MpICQoV0tfVUlLSVRfTERGTEFHUykgJChXS19VTklGT1JNX1RZ
UEVfSURFTlRJRklFUlNfTERGTEFHUykgJChXS19VUkxfRk9STUFUVElOR19MREZMQUdTKSAkKFdL
X1dFQklOU1BFQ1RPUlVJX0xERkxBR1MpICQoV0tfQ09PUkRJTkFUT1JfTERGTEFHUyk7CiAKIC8v
IFByZXZlbnQgQysrIHN0YW5kYXJkIGxpYnJhcnkgYmFzaWNfc3RyaW5nc3RyZWFtLCBvcGVyYXRv
ciBuZXcsIGRlbGV0ZSBhbmQgdGhlaXIgcmVsYXRlZCBleGNlcHRpb24gdHlwZXMgZnJvbSBiZWlu
ZyBleHBvcnRlZCBhcyB3ZWFrIHN5bWJvbHMuCiBVTkVYUE9SVEVEX1NZTUJPTF9MREZMQUdTID0g
LVdsLC11bmV4cG9ydGVkX3N5bWJvbCAtV2wsX19aVElTdDliYWRfYWxsb2MgLVdsLC11bmV4cG9y
dGVkX3N5bWJvbCAtV2wsX19aVElTdDlleGNlcHRpb24gLVdsLC11bmV4cG9ydGVkX3N5bWJvbCAt
V2wsX19aVFNTdDliYWRfYWxsb2MgLVdsLC11bmV4cG9ydGVkX3N5bWJvbCAtV2wsX19aVFNTdDll
eGNlcHRpb24gLVdsLC11bmV4cG9ydGVkX3N5bWJvbCAtV2wsX19aZGxQdlNfIC1XbCwtdW5leHBv
cnRlZF9zeW1ib2wgLVdsLF9fWm53bVB2IC1XbCwtdW5leHBvcnRlZF9zeW1ib2wgLVdsLF9fWm53
bSAtV2wsLXVuZXhwb3J0ZWRfc3ltYm9sIC1XbCxfX1pUVk5TdDNfXzExN2JhZF9mdW5jdGlvbl9j
YWxsRSAtV2wsLXVuZXhwb3J0ZWRfc3ltYm9sIC1XbCxfX1pUQ05TdDNfXzExOGJhc2ljX3N0cmlu
Z3N0cmVhbUljTlNfMTFjaGFyX3RyYWl0c0ljRUVOU185YWxsb2NhdG9ySWNFRUVFMF9OU18xM2Jh
c2ljX2lzdHJlYW1JY1MyX0VFIC1XbCwtdW5leHBvcnRlZF9zeW1ib2wgLVdsLF9fWlRDTlN0M19f
MTE4YmFzaWNfc3RyaW5nc3RyZWFtSWNOU18xMWNoYXJfdHJhaXRzSWNFRU5TXzlhbGxvY2F0b3JJ
Y0VFRUUwX05TXzE0YmFzaWNfaW9zdHJlYW1JY1MyX0VFIC1XbCwtdW5leHBvcnRlZF9zeW1ib2wg
LVdsLF9fWlRDTlN0M19fMTE4YmFzaWNfc3RyaW5nc3RyZWFtSWNOU18xMWNoYXJfdHJhaXRzSWNF
RU5TXzlhbGxvY2F0b3JJY0VFRUUxNl9OU18xM2Jhc2ljX29zdHJlYW1JY1MyX0VFIC1XbCwtdW5l
eHBvcnRlZF9zeW1ib2wgLVdsLF9fWlRUTlN0M19fMTE4YmFzaWNfc3RyaW5nc3RyZWFtSWNOU18x
MWNoYXJfdHJhaXRzSWNFRU5TXzlhbGxvY2F0b3JJY0VFRUUgLVdsLC11bmV4cG9ydGVkX3N5bWJv
bCAtV2wsX19aVFZOU3QzX18xMTViYXNpY19zdHJpbmdidWZJY05TXzExY2hhcl90cmFpdHNJY0VF
TlNfOWFsbG9jYXRvckljRUVFRSAtV2wsLXVuZXhwb3J0ZWRfc3ltYm9sIC1XbCxfX1pUVk5TdDNf
XzExOGJhc2ljX3N0cmluZ3N0cmVhbUljTlNfMTFjaGFyX3RyYWl0c0ljRUVOU185YWxsb2NhdG9y
SWNFRUVFIC1XbCwtdW5leHBvcnRlZF9zeW1ib2wgLVdsLF9fWlRDTlN0M19fMTE4YmFzaWNfc3Ry
aW5nc3RyZWFtSWNOU18xMWNoYXJfdHJhaXRzSWNFRU5TXzlhbGxvY2F0b3JJY0VFRUU4X05TXzEz
YmFzaWNfb3N0cmVhbUljUzJfRUU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1BsYXRmb3Jt
L3NwaS9Db2NvYS9BcHBsZVB1c2hTZXJ2aWNlU1BJLmggYi9Tb3VyY2UvV2ViS2l0L1BsYXRmb3Jt
L3NwaS9Db2NvYS9BcHBsZVB1c2hTZXJ2aWNlU1BJLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNTVmNmFkNmY2MzY5
M2VlMTBiMWFhY2Q0MzFkOWU0NzFjZWFkODYyMwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9X
ZWJLaXQvUGxhdGZvcm0vc3BpL0NvY29hL0FwcGxlUHVzaFNlcnZpY2VTUEkuaApAQCAtMCwwICsx
LDEwMiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMiBBcHBsZSBJbmMuIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJp
bmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0
ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6Cisg
KiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3Zl
IGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBm
b3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUK
KyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRo
IHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBB
UFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBS
RVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
CisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVT
UyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVO
VCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1Ig
QU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IK
KyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
IFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9G
IFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9X
RVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisg
KiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VO
Q0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9G
IFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9G
IFNVQ0ggREFNQUdFLgorICovCisKKyNpZiBVU0UoQVBQTEVfSU5URVJOQUxfU0RLKQorCisjaW1w
b3J0IDxBcHBsZVB1c2hTZXJ2aWNlL0FwcGxlUHVzaFNlcnZpY2UuaD4KKworI2Vsc2UgLy8gaWYg
IVVTRShBUFBMRV9JTlRFUk5BTF9TREspCisKKyNpbXBvcnQgPEZvdW5kYXRpb24vRm91bmRhdGlv
bi5oPgorCitOU19BU1NVTUVfTk9OTlVMTF9CRUdJTgorCitXVEZfRVhURVJOX0NfQkVHSU4KK2V4
dGVybiBOU1N0cmluZyAqY29uc3QgQVBTRW52aXJvbm1lbnRQcm9kdWN0aW9uOworCit0eXBlZGVm
IE5TX0VOVU0oTlNJbnRlZ2VyLCBBUFNVUkxUb2tlbkVycm9yQ29kZSkgeworICAgIEFQU1VSTFRv
a2VuRXJyb3JDb2RlSW52YWxpZEFyZ3VtZW50cyA9IDEwMCwKKyAgICBBUFNVUkxUb2tlbkVycm9y
Q29kZVhQQ0Vycm9yID0gMTAxLAorICAgIEFQU1VSTFRva2VuRXJyb3JDb2RlVG9waWNTYWx0aW5n
RmFpbGVkID0gMTAyLAorICAgIEFQU1VSTFRva2VuRXJyb3JDb2RlVG9waWNBbHJlYWR5SW5GaWx0
ZXIgPSAxMDMsCit9OworV1RGX0VYVEVSTl9DX0VORAorCitAY2xhc3MgQVBTQ29ubmVjdGlvbjsK
K0Bwcm90b2NvbCBBUFNDb25uZWN0aW9uRGVsZWdhdGU7CisKK0BpbnRlcmZhY2UgQVBTTWVzc2Fn
ZSA6IE5TT2JqZWN0PE5TQ29kaW5nPgorQHByb3BlcnR5IChub25hdG9taWMsIHJldGFpbikgTlNT
dHJpbmcgKnRvcGljOworQHByb3BlcnR5IChub25hdG9taWMsIHJldGFpbikgTlNEaWN0aW9uYXJ5
ICp1c2VySW5mbzsKK0Bwcm9wZXJ0eSAobm9uYXRvbWljLCBhc3NpZ24pIE5TVUludGVnZXIgaWRl
bnRpZmllcjsKK0BlbmQKKworQGludGVyZmFjZSBBUFNJbmNvbWluZ01lc3NhZ2UgOiBBUFNNZXNz
YWdlCitAZW5kCisKKyNpZiBIQVZFKEFQUExFX1BVU0hfU0VSVklDRV9VUkxfVE9LRU5fU1VQUE9S
VCkKKworQGludGVyZmFjZSBBUFNVUkxUb2tlbiA6IE5TT2JqZWN0PE5TU2VjdXJlQ29kaW5nLCBO
U0NvcHlpbmc+CitAcHJvcGVydHkgKG5vbmF0b21pYywgc3Ryb25nKSBOU1N0cmluZyAqdG9rZW5V
Ukw7CitAZW5kCisKK0BpbnRlcmZhY2UgQVBTVVJMVG9rZW5JbmZvIDogTlNPYmplY3Q8TlNTZWN1
cmVDb2RpbmcsIE5TQ29weWluZz4KKy0gKGluc3RhbmNldHlwZSlpbml0V2l0aFRvcGljOihOU1N0
cmluZyAqKXRvcGljIHZhcGlkUHVibGljS2V5OihudWxsYWJsZSBOU0RhdGEgKil2YXBpZFB1Ymxp
Y0tleTsKK0BlbmQKKwordHlwZWRlZiB2b2lkKF5BUFNDb25uZWN0aW9uUmVxdWVzdFVSTFRva2Vu
Q29tcGxldGlvbikoQVBTVVJMVG9rZW4gKiBfX251bGxhYmxlIHRva2VuLCBOU0Vycm9yICogX19u
dWxsYWJsZSBlcnJvcik7Cit0eXBlZGVmIHZvaWQoXkFQU0Nvbm5lY3Rpb25JbnZhbGlkYXRlVVJM
VG9rZW5Db21wbGV0aW9uKShCT09MIHN1Y2Nlc3MsIE5TRXJyb3IgKiBfX251bGxhYmxlIGVycm9y
KTsKKworI2VuZGlmIC8vIEhBVkUoQVBQTEVfUFVTSF9TRVJWSUNFX1VSTF9UT0tFTl9TVVBQT1JU
KQorCitAaW50ZXJmYWNlIEFQU0Nvbm5lY3Rpb24gOiBOU09iamVjdAorCistIChpbnN0YW5jZXR5
cGUpaW5pdFdpdGhFbnZpcm9ubWVudE5hbWU6KE5TU3RyaW5nICopZW52aXJvbm1lbnROYW1lIG5h
bWVkRGVsZWdhdGVQb3J0OihudWxsYWJsZSBOU1N0cmluZyAqKW5hbWVkRGVsZWdhdGVQb3J0IHF1
ZXVlOihkaXNwYXRjaF9xdWV1ZV90KXF1ZXVlOworCisjaWYgSEFWRShBUFBMRV9QVVNIX1NFUlZJ
Q0VfVVJMX1RPS0VOX1NVUFBPUlQpCistICh2b2lkKXJlcXVlc3RVUkxUb2tlbkZvckluZm86KEFQ
U1VSTFRva2VuSW5mbyAqKWluZm8gY29tcGxldGlvbjooQVBTQ29ubmVjdGlvblJlcXVlc3RVUkxU
b2tlbkNvbXBsZXRpb24pY29tcGxldGlvbjsKKy0gKHZvaWQpaW52YWxpZGF0ZVVSTFRva2VuRm9y
SW5mbzooQVBTVVJMVG9rZW5JbmZvICopaW5mbyBjb21wbGV0aW9uOihBUFNDb25uZWN0aW9uSW52
YWxpZGF0ZVVSTFRva2VuQ29tcGxldGlvbiljb21wbGV0aW9uOworI2VuZGlmIC8vIEhBVkUoQVBQ
TEVfUFVTSF9TRVJWSUNFX1VSTF9UT0tFTl9TVVBQT1JUKQorCitAcHJvcGVydHkgKG5vbmF0b21p
YywgcmVhZHdyaXRlLCBhc3NpZ24sIG51bGxhYmxlKSBpZDxBUFNDb25uZWN0aW9uRGVsZWdhdGU+
IGRlbGVnYXRlOworCitAcHJvcGVydHkgKG5vbmF0b21pYywgcmVhZHdyaXRlLCBzdHJvbmcsIHNl
dHRlcj1fc2V0RW5hYmxlZFRvcGljczosIG51bGxhYmxlKSBOU0FycmF5PE5TU3RyaW5nICo+ICpl
bmFibGVkVG9waWNzOworQHByb3BlcnR5IChub25hdG9taWMsIHJlYWR3cml0ZSwgc3Ryb25nLCBz
ZXR0ZXI9X3NldElnbm9yZWRUb3BpY3M6LCBudWxsYWJsZSkgTlNBcnJheTxOU1N0cmluZyAqPiAq
aWdub3JlZFRvcGljczsKK0Bwcm9wZXJ0eSAobm9uYXRvbWljLCByZWFkd3JpdGUsIHN0cm9uZywg
c2V0dGVyPV9zZXRPcHBvcnR1bmlzdGljVG9waWNzOiwgbnVsbGFibGUpIE5TQXJyYXk8TlNTdHJp
bmcgKj4gKm9wcG9ydHVuaXN0aWNUb3BpY3M7CitAcHJvcGVydHkgKG5vbmF0b21pYywgcmVhZHdy
aXRlLCBzdHJvbmcsIHNldHRlcj1fc2V0Tm9uV2FraW5nVG9waWNzOiwgbnVsbGFibGUpIE5TQXJy
YXk8TlNTdHJpbmcgKj4gKm5vbldha2luZ1RvcGljczsKKworLSAodm9pZClzZXRFbmFibGVkVG9w
aWNzOihOU0FycmF5PE5TU3RyaW5nICo+ICopZW5hYmxlZFRvcGljcyBpZ25vcmVkVG9waWNzOihO
U0FycmF5PE5TU3RyaW5nICo+ICopaWdub3JlZFRvcGljcyBvcHBvcnR1bmlzdGljVG9waWNzOihO
U0FycmF5PE5TU3RyaW5nICo+ICopb3Bwb3J0dW5pc3RpY1RvcGljcyBub25XYWtpbmdUb3BpY3M6
KE5TQXJyYXk8TlNTdHJpbmcgKj4gKilub25XYWtpbmdUb3BpY3M7CisKK0BlbmQKKworQHByb3Rv
Y29sIEFQU0Nvbm5lY3Rpb25EZWxlZ2F0ZTxOU09iamVjdD4KKy0gKHZvaWQpY29ubmVjdGlvbjoo
QVBTQ29ubmVjdGlvbiAqKWNvbm5lY3Rpb24gZGlkUmVjZWl2ZVB1YmxpY1Rva2VuOihOU0RhdGEg
KilwdWJsaWNUb2tlbjsKK0BvcHRpb25hbAorLSAodm9pZCljb25uZWN0aW9uOihBUFNDb25uZWN0
aW9uICopY29ubmVjdGlvbiBkaWRSZWNlaXZlSW5jb21pbmdNZXNzYWdlOihBUFNJbmNvbWluZ01l
c3NhZ2UgKiltZXNzYWdlOworQGVuZAorCitOU19BU1NVTUVfTk9OTlVMTF9FTkQKKworI2VuZGlm
IC8vICFVU0UoQVBQTEVfSU5URVJOQUxfU0RLKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9X
ZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1NvdXJjZS9XZWJLaXQvV2ViS2l0Lnhj
b2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggNzc5MTE4YmQyZjNlMDMyY2E4N2MwNzRkMmU2
YjBkYmU1NDliNjdlYi4uYmI5YmUyYzBmZjE1ODczNDY5MWJhYzEyYTk2ZGY0OGI4NjdjNWIxMiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJv
agorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBA
IC0xOTk1LDYgKzE5OTUsMTMgQEAKIAkJRTVDQkE3NjcyN0EzMThFMTAwREY3ODU4IC8qIFVuaWZp
ZWRTb3VyY2UxMTkuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gRTVDQkE3NjAyN0EzMTg3OTAwREY3ODU4IC8qIFVuaWZpZWRTb3VyY2UxMTkuY3BwICov
OyB9OwogCQlFNUNCQTc2ODI3QTMxOEUxMDBERjc4NTggLyogVW5pZmllZFNvdXJjZTExNy5jcHAg
aW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFNUNCQTc2MjI3
QTMxODc5MDBERjc4NTggLyogVW5pZmllZFNvdXJjZTExNy5jcHAgKi87IH07CiAJCUU1REVGQTY4
MjZGOEY0MjYwMEFCNjhEQiAvKiBQaG90b3NVSVNQSS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTVERUZBNjcyNkY4RjQyNjAwQUI2OERCIC8qIFBob3Rv
c1VJU1BJLmggKi87IH07CisJCUVCQThEM0FCMjdBNUUzMTMwMENCNzkwMCAvKiBBcHBsZVB1c2hT
ZXJ2aWNlU1BJLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSBFQkE4RDNBQTI3QTVFMzEzMDBDQjc5MDAgLyogQXBwbGVQdXNoU2VydmljZVNQSS5oICovOyB9
OworCQlFQkE4RDNCMjI3QTVFMzNGMDBDQjc5MDAgLyogQXBwbGVQdXNoU2VydmljZUNvbm5lY3Rp
b24ubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFQkE4
RDNBQzI3QTVFMzNFMDBDQjc5MDAgLyogQXBwbGVQdXNoU2VydmljZUNvbm5lY3Rpb24ubW0gKi87
IH07CisJCUVCQThEM0IzMjdBNUUzM0YwMENCNzkwMCAvKiBNb2NrUHVzaFNlcnZpY2VDb25uZWN0
aW9uLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFQkE4
RDNBRDI3QTVFMzNFMDBDQjc5MDAgLyogTW9ja1B1c2hTZXJ2aWNlQ29ubmVjdGlvbi5oICovOyB9
OworCQlFQkE4RDNCNDI3QTVFMzNGMDBDQjc5MDAgLyogQXBwbGVQdXNoU2VydmljZUNvbm5lY3Rp
b24uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEVCQThE
M0FFMjdBNUUzM0YwMENCNzkwMCAvKiBBcHBsZVB1c2hTZXJ2aWNlQ29ubmVjdGlvbi5oICovOyB9
OworCQlFQkE4RDNCNTI3QTVFMzNGMDBDQjc5MDAgLyogUHVzaFNlcnZpY2VDb25uZWN0aW9uLmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFQkE4RDNBRjI3
QTVFMzNGMDBDQjc5MDAgLyogUHVzaFNlcnZpY2VDb25uZWN0aW9uLmggKi87IH07CisJCUVCQThE
M0I2MjdBNUUzM0YwMENCNzkwMCAvKiBNb2NrUHVzaFNlcnZpY2VDb25uZWN0aW9uLm1tIGluIFNv
dXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRUJBOEQzQjAyN0E1RTMz
RjAwQ0I3OTAwIC8qIE1vY2tQdXNoU2VydmljZUNvbm5lY3Rpb24ubW0gKi87IH07CisJCUVCQThE
M0I3MjdBNUUzM0YwMENCNzkwMCAvKiBQdXNoU2VydmljZUNvbm5lY3Rpb24ubW0gaW4gU291cmNl
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFQkE4RDNCMTI3QTVFMzNGMDBD
Qjc5MDAgLyogUHVzaFNlcnZpY2VDb25uZWN0aW9uLm1tICovOyB9OwogCQlFRDgyQTdGMjEyOEM2
RkFGMDA0NDc3QjMgLyogV0tCdW5kbGVQYWdlT3ZlcmxheS5oIGluIEhlYWRlcnMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMUEyMkYwRkYxMjg5RkNEOTAwODVFNzRGIC8qIFdL
QnVuZGxlUGFnZU92ZXJsYXkuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRl
LCApOyB9OyB9OwogCQlGNDA5QkExODFFNkU2NEJDMDA5REEyOEUgLyogV0tEcmFnRGVzdGluYXRp
b25BY3Rpb24uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IEY0MDlCQTE3MUU2RTY0QjMwMDlEQTI4RSAvKiBXS0RyYWdEZXN0aW5hdGlvbkFjdGlvbi5oICov
OyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCUY0Mjk5NTA3
MjcwRTIzNEQwMDMyMjk4QiAvKiBTdHJlYW1NZXNzYWdlUmVjZWl2ZXIuaCBpbiBIZWFkZXJzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY0Mjk5NTA2MjcwRTIzNEMwMDMyMjk4
QiAvKiBTdHJlYW1NZXNzYWdlUmVjZWl2ZXIuaCAqLzsgfTsKQEAgLTY0MzksNiArNjQ0NiwxMyBA
QAogCQlFNURFRkE2NzI2RjhGNDI2MDBBQjY4REIgLyogUGhvdG9zVUlTUEkuaCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBw
YXRoID0gUGhvdG9zVUlTUEkuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRUIwRDMx
MkQyNzVBRTEzMzAwODYzRDhGIC8qIGNvbS5hcHBsZS53ZWJraXQud2VicHVzaGQubWFjLnBsaXN0
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gdGV4dC5wbGlzdC54bWw7IHBhdGggPSBjb20uYXBwbGUud2Via2l0LndlYnB1
c2hkLm1hYy5wbGlzdDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRUIwRDMxMkUyNzVB
RTEzMzAwODYzRDhGIC8qIGNvbS5hcHBsZS53ZWJraXQud2VicHVzaGQuaW9zLnBsaXN0ICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gdGV4dC5wbGlzdC54bWw7IHBhdGggPSBjb20uYXBwbGUud2Via2l0LndlYnB1c2hkLmlv
cy5wbGlzdDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRUJBOEQzQUEyN0E1RTMxMzAw
Q0I3OTAwIC8qIEFwcGxlUHVzaFNlcnZpY2VTUEkuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5o
OyBwYXRoID0gQXBwbGVQdXNoU2VydmljZVNQSS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OworCQlFQkE4RDNBQzI3QTVFMzNFMDBDQjc5MDAgLyogQXBwbGVQdXNoU2VydmljZUNvbm5lY3Rp
b24ubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBBcHBsZVB1c2hT
ZXJ2aWNlQ29ubmVjdGlvbi5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRUJBOEQz
QUQyN0E1RTMzRTAwQ0I3OTAwIC8qIE1vY2tQdXNoU2VydmljZUNvbm5lY3Rpb24uaCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gTW9ja1B1c2hTZXJ2aWNlQ29ubmVjdGlvbi5oOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlFQkE4RDNBRTI3QTVFMzNGMDBDQjc5MDAgLyog
QXBwbGVQdXNoU2VydmljZUNvbm5lY3Rpb24uaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBw
YXRoID0gQXBwbGVQdXNoU2VydmljZUNvbm5lY3Rpb24uaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKKwkJRUJBOEQzQUYyN0E1RTMzRjAwQ0I3OTAwIC8qIFB1c2hTZXJ2aWNlQ29ubmVjdGlv
bi5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBQdXNoU2VydmljZUNvbm5lY3Rp
b24uaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRUJBOEQzQjAyN0E1RTMzRjAwQ0I3
OTAwIC8qIE1vY2tQdXNoU2VydmljZUNvbm5lY3Rpb24ubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmNwcC5vYmpjcHA7IHBhdGggPSBNb2NrUHVzaFNlcnZpY2VDb25uZWN0aW9uLm1tOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OworCQlFQkE4RDNCMTI3QTVFMzNGMDBDQjc5MDAgLyogUHVzaFNl
cnZpY2VDb25uZWN0aW9uLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRo
ID0gUHVzaFNlcnZpY2VDb25uZWN0aW9uLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owog
CQlFQ0E2ODBEMzFFNjkwNEI1MDA3MzFEMjAgLyogRXh0cmFQcml2YXRlU3ltYm9sc0ZvclRBUEku
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gRXh0cmFQcml2YXRlU3ltYm9sc0Zv
clRBUEkuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRUNCRkMxREIxRTZBNEQ2NjAw
MDMwMEM3IC8qIEV4dHJhUHVibGljU3ltYm9sc0ZvclRBUEkuaCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gRXh0
cmFQdWJsaWNTeW1ib2xzRm9yVEFQSS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlG
MDM2OTc4NzE1RjRCRjA1MDBDM0E4MEUgLyogV2ViQ29sb3JQaWNrZXIuY3BwICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gV2ViQ29sb3JQaWNrZXIuY3BwOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwpAQCAtODYzNCw2ICs4NjQ4LDcgQEAKIAkJCQk1NzJFQkJEQzI1Mzky
MTgxMDAwNTUyQjMgLyogQXBwQXR0ZXN0U1BJLmggKi8sCiAJCQkJOTU2NTA4MzcyNkQ4N0EyQjAw
RTE1Q0I3IC8qIEFwcGxlTWVkaWFTZXJ2aWNlc1NQSS5oICovLAogCQkJCTk1NjUwODM4MjZEODdB
MkIwMEUxNUNCNyAvKiBBcHBsZU1lZGlhU2VydmljZXNVSVNQSS5oICovLAorCQkJCUVCQThEM0FB
MjdBNUUzMTMwMENCNzkwMCAvKiBBcHBsZVB1c2hTZXJ2aWNlU1BJLmggKi8sCiAJCQkJNTdGQUJC
MEUyNTgxN0NGMDAwNTlEQzk1IC8qIEF1dGhlbnRpY2F0aW9uU2VydmljZXNDb3JlU1BJLmggKi8s
CiAJCQkJMUE1NzA1MTAxQkU0MTBFNTAwODc0QUYxIC8qIEJsb2NrU1BJLmggKi8sCiAJCQkJRTUw
NjIwOTEyNTQyMTAyMDAwQzQzMDkxIC8qIENvbnRhY3RzVUlTUEkuaCAqLywKQEAgLTEwMDQ0LDE2
ICsxMDA1OSwyMiBAQAogCQkJCTUxN0I1RjYzMjc1QThENUMwMDJEQzIyRCAvKiB3ZWJwdXNodG9v
bCAqLywKIAkJCQk1MTYwRTk1NDI3NEI4ODcxMDA1NjczODggLyogQXBwQnVuZGxlUmVxdWVzdC5o
ICovLAogCQkJCTUxNjBFOTUzMjc0Qjg4NzEwMDU2NzM4OCAvKiBBcHBCdW5kbGVSZXF1ZXN0Lm1t
ICovLAorCQkJCUVCQThEM0FFMjdBNUUzM0YwMENCNzkwMCAvKiBBcHBsZVB1c2hTZXJ2aWNlQ29u
bmVjdGlvbi5oICovLAorCQkJCUVCQThEM0FDMjdBNUUzM0UwMENCNzkwMCAvKiBBcHBsZVB1c2hT
ZXJ2aWNlQ29ubmVjdGlvbi5tbSAqLywKIAkJCQlFQjBEMzEyRTI3NUFFMTMzMDA4NjNEOEYgLyog
Y29tLmFwcGxlLndlYmtpdC53ZWJwdXNoZC5pb3MucGxpc3QgKi8sCiAJCQkJRUIwRDMxMkQyNzVB
RTEzMzAwODYzRDhGIC8qIGNvbS5hcHBsZS53ZWJraXQud2VicHVzaGQubWFjLnBsaXN0ICovLAog
CQkJCTUxRjdCQjc1Mjc0NDk4QkIwMEM0NUE3MiAvKiBNb2NrQXBwQnVuZGxlRm9yVGVzdGluZy5o
ICovLAogCQkJCTUxRjdCQjc0Mjc0NDk4QkEwMEM0NUE3MiAvKiBNb2NrQXBwQnVuZGxlRm9yVGVz
dGluZy5tbSAqLywKIAkJCQk1MTYwRTk1QzI3NEMyQTAzMDA1NjczODggLyogTW9ja0FwcEJ1bmRs
ZVJlZ2lzdHJ5LmggKi8sCiAJCQkJNTE2MEU5NUYyNzRDMkEzRjAwNTY3Mzg4IC8qIE1vY2tBcHBC
dW5kbGVSZWdpc3RyeS5tbSAqLywKKwkJCQlFQkE4RDNBRDI3QTVFMzNFMDBDQjc5MDAgLyogTW9j
a1B1c2hTZXJ2aWNlQ29ubmVjdGlvbi5oICovLAorCQkJCUVCQThEM0IwMjdBNUUzM0YwMENCNzkw
MCAvKiBNb2NrUHVzaFNlcnZpY2VDb25uZWN0aW9uLm1tICovLAogCQkJCTUxNjBFOTU3Mjc0QzBE
ODgwMDU2NzM4OCAvKiBQdXNoQXBwQnVuZGxlLmggKi8sCiAJCQkJNTE2MEU5NTgyNzRDMEQ4ODAw
NTY3Mzg4IC8qIFB1c2hBcHBCdW5kbGUubW0gKi8sCiAJCQkJNTFGN0JCNzkyNzQ0QzUwNzAwQzQ1
QTcyIC8qIFB1c2hDbGllbnRDb25uZWN0aW9uLmggKi8sCiAJCQkJNTFGN0JCN0EyNzQ0QzUwNzAw
QzQ1QTcyIC8qIFB1c2hDbGllbnRDb25uZWN0aW9uLm1tICovLAorCQkJCUVCQThEM0FGMjdBNUUz
M0YwMENCNzkwMCAvKiBQdXNoU2VydmljZUNvbm5lY3Rpb24uaCAqLywKKwkJCQlFQkE4RDNCMTI3
QTVFMzNGMDBDQjc5MDAgLyogUHVzaFNlcnZpY2VDb25uZWN0aW9uLm1tICovLAogCQkJCTUxN0I1
Rjc3Mjc1RTk3OTUwMDJEQzIyRCAvKiB3ZWJwdXNoZC5jcHAgKi8sCiAJCQkJNTEyQ0Q2OUQyNzIz
MzkzQTAwRjdGOEVDIC8qIFdlYlB1c2hEYWVtb24uaCAqLywKIAkJCQk1MTJDRDY5RTI3MjMzOTNB
MDBGN0Y4RUMgLyogV2ViUHVzaERhZW1vbi5tbSAqLywKQEAgLTEyODY1LDYgKzEyODg2LDggQEAK
IAkJCQlGNDhEMkE4NTIxNTgzQTdFMDBDNjc1MkIgLyogQXBwS2l0U1BJLmggaW4gSGVhZGVycyAq
LywKIAkJCQk5NTY1MDgzOTI2RDg3QTJCMDBFMTVDQjcgLyogQXBwbGVNZWRpYVNlcnZpY2VzU1BJ
LmggaW4gSGVhZGVycyAqLywKIAkJCQk5NTY1MDgzQTI2RDg3QTJCMDBFMTVDQjcgLyogQXBwbGVN
ZWRpYVNlcnZpY2VzVUlTUEkuaCBpbiBIZWFkZXJzICovLAorCQkJCUVCQThEM0I0MjdBNUUzM0Yw
MENCNzkwMCAvKiBBcHBsZVB1c2hTZXJ2aWNlQ29ubmVjdGlvbi5oIGluIEhlYWRlcnMgKi8sCisJ
CQkJRUJBOEQzQUIyN0E1RTMxMzAwQ0I3OTAwIC8qIEFwcGxlUHVzaFNlcnZpY2VTUEkuaCBpbiBI
ZWFkZXJzICovLAogCQkJCUY0RUM5NEUzMjM1NkNDNTcwMDBCQjYxNCAvKiBBcHBsaWNhdGlvblNl
cnZpY2VzU1BJLmggaW4gSGVhZGVycyAqLywKIAkJCQkxQUQ0QzE5MzFCMzlGMzMyMDBBQkMyOEUg
LyogQXBwbGljYXRpb25TdGF0ZVRyYWNrZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCTQ5MzEwMkJE
MjY4M0YzRDAwMDJCQjg4NSAvKiBBcHBQcml2YWN5UmVwb3J0LmggaW4gSGVhZGVycyAqLywKQEAg
LTEzMDgyLDYgKzEzMTA1LDcgQEAKIAkJCQk1N0RDRURDNzIxNEYxODMwMDAxNkI4NDcgLyogTW9j
a0xvY2FsQ29ubmVjdGlvbi5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNTdEQ0VEQzMyMTRGMTE0QzAw
MTZCODQ3IC8qIE1vY2tMb2NhbFNlcnZpY2UuaCBpbiBIZWFkZXJzICovLAogCQkJCTU3QjgyNjRD
MjMwNjAzQzEwMEI3MkVCMCAvKiBNb2NrTmZjU2VydmljZS5oIGluIEhlYWRlcnMgKi8sCisJCQkJ
RUJBOEQzQjMyN0E1RTMzRjAwQ0I3OTAwIC8qIE1vY2tQdXNoU2VydmljZUNvbm5lY3Rpb24uaCBp
biBIZWFkZXJzICovLAogCQkJCTcxMzdCQTgwMjVGMTU0MjAwMDkxNEVFMyAvKiBNb2RlbEVsZW1l
bnRDb250cm9sbGVyLmggaW4gSGVhZGVycyAqLywKIAkJCQlDMEUzQUE3QzEyMDlFODNDMDBBNDlE
MDEgLyogTW9kdWxlLmggaW4gSGVhZGVycyAqLywKIAkJCQkyRDUwMzY2QjFCQ0RFMTc5MDBFMjBC
QjMgLyogTmF0aXZlV2ViR2VzdHVyZUV2ZW50LmggaW4gSGVhZGVycyAqLywKQEAgLTEzMjAyLDYg
KzEzMjI2LDcgQEAKIAkJCQk1MTdCNUY4MTI3NUU5N0I2MDAyREMyMkQgLyogUHVzaEFwcEJ1bmRs
ZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNTE3QjVGN0QyNzVFOTdCNjAwMkRDMjJEIC8qIFB1c2hD
bGllbnRDb25uZWN0aW9uLmggaW4gSGVhZGVycyAqLywKIAkJCQk1MTdCNUY5NTI3NUVCQTYzMDAy
REMyMkQgLyogUHVzaE1lc3NhZ2VGb3JUZXN0aW5nLmggaW4gSGVhZGVycyAqLywKKwkJCQlFQkE4
RDNCNTI3QTVFMzNGMDBDQjc5MDAgLyogUHVzaFNlcnZpY2VDb25uZWN0aW9uLmggaW4gSGVhZGVy
cyAqLywKIAkJCQlBMUU2ODg3MDFGNkUyQkFCMDA3MDA2QTYgLyogUXVhcmFudGluZVNQSS5oIGlu
IEhlYWRlcnMgKi8sCiAJCQkJMUEwQzIyN0UyNDUxMTMwQTAwRUQ2MTREIC8qIFF1aWNrTG9va1Ro
dW1ibmFpbGluZ1NvZnRMaW5rLmggaW4gSGVhZGVycyAqLywKIAkJCQkxQUVFNTcyNTI0MDlGMTQy
MDAyMDA1RDYgLyogUXVpY2tMb29rVGh1bWJuYWlsTG9hZGVyLmggaW4gSGVhZGVycyAqLywKQEAg
LTE1Mzk1LDYgKzE1NDIwLDcgQEAKIAkJCQk5OUU3MTg5QTIxRjc5RDlFMDA1NUU5NzUgLyogX1dL
VG91Y2hFdmVudEdlbmVyYXRvci5tbSBpbiBTb3VyY2VzICovLAogCQkJCTU3MkVCQkRBMjUzOEY2
QjQwMDA1NTJCMyAvKiBBcHBBdHRlc3RJbnRlcm5hbFNvZnRMaW5rLm1tIGluIFNvdXJjZXMgKi8s
CiAJCQkJNTE3QjVGN0UyNzVFOTdCNjAwMkRDMjJEIC8qIEFwcEJ1bmRsZVJlcXVlc3QubW0gaW4g
U291cmNlcyAqLywKKwkJCQlFQkE4RDNCMjI3QTVFMzNGMDBDQjc5MDAgLyogQXBwbGVQdXNoU2Vy
dmljZUNvbm5lY3Rpb24ubW0gaW4gU291cmNlcyAqLywKIAkJCQkyREVCMUQyRTIxMjc0NzM2MDA5
MzM5MDYgLyogQXJndW1lbnRDb2RlcnNDRi5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlDRDQ1NzBE
NDI0NDExRDBGMDBBM0RDRUIgLyogQXVkaW9TZXNzaW9uUm91dGluZ0FyYml0cmF0b3IuY3BwIGlu
IFNvdXJjZXMgKi8sCiAJCQkJQ0Q0NTcwRDMyNDQxMTNCNTAwQTNEQ0VCIC8qIEF1ZGlvU2Vzc2lv
blJvdXRpbmdBcmJpdHJhdG9yUHJveHlNZXNzYWdlUmVjZWl2ZXIuY3BwIGluIFNvdXJjZXMgKi8s
CkBAIC0xNTQyOCw2ICsxNTQ1NCw3IEBACiAJCQkJOUI0NzkwOTEyNTMxNTYzMjAwRUMxMUFCIC8q
IE1lc3NhZ2VBcmd1bWVudERlc2NyaXB0aW9ucy5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk1MTdC
NUY4NDI3NUU5N0I2MDAyREMyMkQgLyogTW9ja0FwcEJ1bmRsZUZvclRlc3RpbmcubW0gaW4gU291
cmNlcyAqLywKIAkJCQk1MTdCNUY4NjI3NUU5N0I2MDAyREMyMkQgLyogTW9ja0FwcEJ1bmRsZVJl
Z2lzdHJ5Lm1tIGluIFNvdXJjZXMgKi8sCisJCQkJRUJBOEQzQjYyN0E1RTMzRjAwQ0I3OTAwIC8q
IE1vY2tQdXNoU2VydmljZUNvbm5lY3Rpb24ubW0gaW4gU291cmNlcyAqLywKIAkJCQk1N0I4MjY0
NTIzMDRGMTQwMDBCNzJFQjAgLyogTmVhckZpZWxkU29mdExpbmsubW0gaW4gU291cmNlcyAqLywK
IAkJCQlDMUMxQjMwRjI1NDBGNTBEMDBEOTEwMEIgLyogTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlBy
b2Nlc3NNYWMubW0gaW4gU291cmNlcyAqLywKIAkJCQk1MUREOUYyODE2MzY3REEyMDAxNTc4RTkg
LyogTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3NNZXNzYWdlUmVjZWl2ZXIuY3BwIGluIFNv
dXJjZXMgKi8sCkBAIC0xNTQ1Myw2ICsxNTQ4MCw3IEBACiAJCQkJMkQ1NEMzMUIyMTJGNERBNjAw
NDlDMTc0IC8qIFByb2Nlc3NMYXVuY2hlci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk1MTdCNUY4
MjI3NUU5N0I2MDAyREMyMkQgLyogUHVzaEFwcEJ1bmRsZS5tbSBpbiBTb3VyY2VzICovLAogCQkJ
CTUxN0I1RjdCMjc1RTk3QTkwMDJEQzIyRCAvKiBQdXNoQ2xpZW50Q29ubmVjdGlvbi5tbSBpbiBT
b3VyY2VzICovLAorCQkJCUVCQThEM0I3MjdBNUUzM0YwMENCNzkwMCAvKiBQdXNoU2VydmljZUNv
bm5lY3Rpb24ubW0gaW4gU291cmNlcyAqLywKIAkJCQkxQTBDMjI3RjI0NTExMzBBMDBFRDYxNEQg
LyogUXVpY2tMb29rVGh1bWJuYWlsaW5nU29mdExpbmsubW0gaW4gU291cmNlcyAqLywKIAkJCQkx
QTBDMjI1RTI0MzU3NUNEMDBFRDYxNEQgLyogUXVpY2tMb29rVGh1bWJuYWlsTG9hZGVyLm1tIGlu
IFNvdXJjZXMgKi8sCiAJCQkJOUIxMjI5Q0UyM0ZGMjVGMjAwOENBNzUxIC8qIFJlbW90ZUF1ZGlv
RGVzdGluYXRpb25NYW5hZ2VyLmNwcCBpbiBTb3VyY2VzICovLApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC93ZWJwdXNoZC9BcHBsZVB1c2hTZXJ2aWNlQ29ubmVjdGlvbi5oIGIvU291cmNlL1dl
YktpdC93ZWJwdXNoZC9BcHBsZVB1c2hTZXJ2aWNlQ29ubmVjdGlvbi5oCm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjg3
NDdlNzVkNjE4NTUwMGZmNWE4MGRlYzZkM2FjYTU1ODM1MDM3MWEKLS0tIC9kZXYvbnVsbAorKysg
Yi9Tb3VyY2UvV2ViS2l0L3dlYnB1c2hkL0FwcGxlUHVzaFNlcnZpY2VDb25uZWN0aW9uLmgKQEAg
LTAsMCArMSw2NyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMiBBcHBsZSBJbmMuIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2Ug
YW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBw
ZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBt
ZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhl
IGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJp
bmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBp
biB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRl
ZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURF
RCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFO
WSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQg
RklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBO
TyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJM
RSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFS
WSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBM
T1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElP
TikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVS
IElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5F
R0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUg
VVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklM
SVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisjaWYgSEFWRShBUFBM
RV9QVVNIX1NFUlZJQ0VfVVJMX1RPS0VOX1NVUFBPUlQpCisKKyNpbmNsdWRlICJBcHBsZVB1c2hT
ZXJ2aWNlU1BJLmgiCisjaW5jbHVkZSAiUHVzaFNlcnZpY2VDb25uZWN0aW9uLmgiCisjaW5jbHVk
ZSA8d3RmL0hhc2hNYXAuaD4KKworbmFtZXNwYWNlIFdlYlB1c2hEIHsKKworY2xhc3MgQXBwbGVQ
dXNoU2VydmljZUNvbm5lY3Rpb24gZmluYWwgOiBwdWJsaWMgUHVzaFNlcnZpY2VDb25uZWN0aW9u
IHsKK3B1YmxpYzoKKyAgICBBcHBsZVB1c2hTZXJ2aWNlQ29ubmVjdGlvbihjb25zdCBTdHJpbmcm
IGluY29taW5nUHVzaFNlcnZpY2VOYW1lKTsKKyAgICB+QXBwbGVQdXNoU2VydmljZUNvbm5lY3Rp
b24oKTsKKworICAgIHZvaWQgc3Vic2NyaWJlKGNvbnN0IFN0cmluZyYgdG9waWMsIGNvbnN0IFZl
Y3Rvcjx1aW50OF90PiYgdmFwaWRQdWJsaWNLZXksIFN1YnNjcmliZUhhbmRsZXImJikgZmluYWw7
CisgICAgdm9pZCB1bnN1YnNjcmliZShjb25zdCBTdHJpbmcmIHRvcGljLCBjb25zdCBWZWN0b3I8
dWludDhfdD4mIHZhcGlkUHVibGljS2V5LCBVbnN1YnNjcmliZUhhbmRsZXImJikgZmluYWw7CisK
KyAgICBWZWN0b3I8U3RyaW5nPiBlbmFibGVkVG9waWNzKCkgb3ZlcnJpZGU7CisgICAgVmVjdG9y
PFN0cmluZz4gaWdub3JlZFRvcGljcygpIG92ZXJyaWRlOworICAgIFZlY3RvcjxTdHJpbmc+IG9w
cG9ydHVuaXN0aWNUb3BpY3MoKSBvdmVycmlkZTsKKyAgICBWZWN0b3I8U3RyaW5nPiBub25XYWtp
bmdUb3BpY3MoKSBvdmVycmlkZTsKKworICAgIHZvaWQgc2V0RW5hYmxlZFRvcGljcyhWZWN0b3I8
U3RyaW5nPiYmKSBvdmVycmlkZTsKKyAgICB2b2lkIHNldElnbm9yZWRUb3BpY3MoVmVjdG9yPFN0
cmluZz4mJikgb3ZlcnJpZGU7CisgICAgdm9pZCBzZXRPcHBvcnR1bmlzdGljVG9waWNzKFZlY3Rv
cjxTdHJpbmc+JiYpIG92ZXJyaWRlOworICAgIHZvaWQgc2V0Tm9uV2FraW5nVG9waWNzKFZlY3Rv
cjxTdHJpbmc+JiYpIG92ZXJyaWRlOworCisgICAgdm9pZCBzZXRUb3BpY0xpc3RzKFRvcGljTGlz
dHMmJikgb3ZlcnJpZGU7CisKK3ByaXZhdGU6CisgICAgUmV0YWluUHRyPEFQU0Nvbm5lY3Rpb24+
IG1fY29ubmVjdGlvbjsKKyAgICBSZXRhaW5QdHI8aWQ8QVBTQ29ubmVjdGlvbkRlbGVnYXRlPj4g
bV9kZWxlZ2F0ZTsKKyAgICB1bnNpZ25lZCBtX2hhbmRsZXJJZGVudGlmaWVyIHsgMCB9OworICAg
IEhhc2hNYXA8dW5zaWduZWQsIFN1YnNjcmliZUhhbmRsZXI+IG1fc3Vic2NyaWJlSGFuZGxlcnM7
CisgICAgSGFzaE1hcDx1bnNpZ25lZCwgVW5zdWJzY3JpYmVIYW5kbGVyPiBtX3Vuc3Vic2NyaWJl
SGFuZGxlcnM7Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJQdXNoRAorCisjZW5kaWYgLy8gSEFW
RShBUFBMRV9QVVNIX1NFUlZJQ0VfVVJMX1RPS0VOX1NVUFBPUlQpCisKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvd2VicHVzaGQvQXBwbGVQdXNoU2VydmljZUNvbm5lY3Rpb24ubW0gYi9Tb3Vy
Y2UvV2ViS2l0L3dlYnB1c2hkL0FwcGxlUHVzaFNlcnZpY2VDb25uZWN0aW9uLm1tCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLmVmZjdlYWU1Y2ZmYTg3Nzc4YjY2NjJhYjZiMTU0ZTBkNGE0ZjA3ZDgKLS0tIC9kZXYvbnVs
bAorKysgYi9Tb3VyY2UvV2ViS2l0L3dlYnB1c2hkL0FwcGxlUHVzaFNlcnZpY2VDb25uZWN0aW9u
Lm1tCkBAIC0wLDAgKzEsMTcwIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIyIEFwcGxlIElu
Yy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGlu
IHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlv
biwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwor
ICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJl
dGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlv
bnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxz
IHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElT
IFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisg
KiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklM
SVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlN
RUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICog
QkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwg
RVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VS
VklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5U
RVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFks
IFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNM
VURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VU
IE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUg
UE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2ltcG9ydCAiY29uZmlnLmgiCisj
aW1wb3J0ICJBcHBsZVB1c2hTZXJ2aWNlQ29ubmVjdGlvbi5oIgorCisjaWYgSEFWRShBUFBMRV9Q
VVNIX1NFUlZJQ0VfVVJMX1RPS0VOX1NVUFBPUlQpCisKKyNpbXBvcnQgPHd0Zi9CbG9ja1B0ci5o
PgorI2ltcG9ydCA8d3RmL2NvY29hL1ZlY3RvckNvY29hLmg+CisKK0BpbnRlcmZhY2UgX1dLQVBT
Q29ubmVjdGlvbkRlbGVnYXRlIDogTlNPYmplY3Q8QVBTQ29ubmVjdGlvbkRlbGVnYXRlPiB7Cisg
ICAgV2Vha1B0cjxXZWJQdXNoRDo6QXBwbGVQdXNoU2VydmljZUNvbm5lY3Rpb24+IF9jb25uZWN0
aW9uOworfQorQGVuZAorCitAaW1wbGVtZW50YXRpb24gX1dLQVBTQ29ubmVjdGlvbkRlbGVnYXRl
CisKKy0gKGluc3RhbmNldHlwZSlpbml0V2l0aENvbm5lY3Rpb246KFdlYlB1c2hEOjpBcHBsZVB1
c2hTZXJ2aWNlQ29ubmVjdGlvbiAqKWNvbm5lY3Rpb24KK3sKKyAgICBpZiAoKHNlbGYgPSBbc3Vw
ZXIgaW5pdF0pKQorICAgICAgICBfY29ubmVjdGlvbiA9IGNvbm5lY3Rpb247CisgICAgcmV0dXJu
IHNlbGY7Cit9CisKKy0gKHZvaWQpY29ubmVjdGlvbjooQVBTQ29ubmVjdGlvbiAqKWNvbm5lY3Rp
b24gZGlkUmVjZWl2ZVB1YmxpY1Rva2VuOihOU0RhdGEgKilwdWJsaWNUb2tlbgoreworICAgIFVO
VVNFRF9QQVJBTShjb25uZWN0aW9uKTsKKyAgICBVTlVTRURfUEFSQU0ocHVibGljVG9rZW4pOwor
fQorCistICh2b2lkKWNvbm5lY3Rpb246KEFQU0Nvbm5lY3Rpb24gKiljb25uZWN0aW9uIGRpZFJl
Y2VpdmVJbmNvbWluZ01lc3NhZ2U6KEFQU0luY29taW5nTWVzc2FnZSAqKW1lc3NhZ2UKK3sKKyAg
ICBVTlVTRURfUEFSQU0oY29ubmVjdGlvbik7CisKKyAgICBBU1NFUlQoaXNNYWluUnVuTG9vcCgp
KTsKKworICAgIGlmIChfY29ubmVjdGlvbikKKyAgICAgICAgX2Nvbm5lY3Rpb24tPmRpZFJlY2Vp
dmVQdXNoTWVzc2FnZShtZXNzYWdlLnRvcGljLCBtZXNzYWdlLnVzZXJJbmZvKTsKK30KKworQGVu
ZAorCituYW1lc3BhY2UgV2ViUHVzaEQgeworCitBcHBsZVB1c2hTZXJ2aWNlQ29ubmVjdGlvbjo6
QXBwbGVQdXNoU2VydmljZUNvbm5lY3Rpb24oY29uc3QgU3RyaW5nJiBpbmNvbWluZ1B1c2hTZXJ2
aWNlTmFtZSkKK3sKKyAgICBtX2Nvbm5lY3Rpb24gPSBhZG9wdE5TKFtbQVBTQ29ubmVjdGlvbiBh
bGxvY10gaW5pdFdpdGhFbnZpcm9ubWVudE5hbWU6QVBTRW52aXJvbm1lbnRQcm9kdWN0aW9uIG5h
bWVkRGVsZWdhdGVQb3J0OmluY29taW5nUHVzaFNlcnZpY2VOYW1lIHF1ZXVlOmRpc3BhdGNoX2dl
dF9tYWluX3F1ZXVlKCldKTsKKyAgICBtX2RlbGVnYXRlID0gYWRvcHROUyhbW19XS0FQU0Nvbm5l
Y3Rpb25EZWxlZ2F0ZSBhbGxvY10gaW5pdFdpdGhDb25uZWN0aW9uOnRoaXNdKTsKKyAgICBbbV9j
b25uZWN0aW9uIHNldERlbGVnYXRlOm1fZGVsZWdhdGUuZ2V0KCldOworfQorCitBcHBsZVB1c2hT
ZXJ2aWNlQ29ubmVjdGlvbjo6fkFwcGxlUHVzaFNlcnZpY2VDb25uZWN0aW9uKCkKK3sKKyAgICBb
bV9jb25uZWN0aW9uIHNldERlbGVnYXRlOm5pbF07Cit9CisKK3N0YXRpYyBSZXRhaW5QdHI8QVBT
VVJMVG9rZW5JbmZvPiBtYWtlVG9rZW5JbmZvKGNvbnN0IFN0cmluZyYgdG9waWMsIGNvbnN0IFZl
Y3Rvcjx1aW50OF90PiYgdmFwaWRQdWJsaWNLZXkpCit7CisgICAgYXV0byBzZXJ2ZXJQdWJsaWNL
ZXkgPSBhZG9wdE5TKFtbTlNEYXRhIGFsbG9jXSBpbml0V2l0aEJ5dGVzOnZhcGlkUHVibGljS2V5
LmRhdGEoKSBsZW5ndGg6dmFwaWRQdWJsaWNLZXkuc2l6ZSgpXSk7CisgICAgcmV0dXJuIGFkb3B0
TlMoW1tBUFNVUkxUb2tlbkluZm8gYWxsb2NdIGluaXRXaXRoVG9waWM6dG9waWMgdmFwaWRQdWJs
aWNLZXk6c2VydmVyUHVibGljS2V5LmdldCgpXSk7Cit9CisKK3ZvaWQgQXBwbGVQdXNoU2Vydmlj
ZUNvbm5lY3Rpb246OnN1YnNjcmliZShjb25zdCBTdHJpbmcmIHRvcGljLCBjb25zdCBWZWN0b3I8
dWludDhfdD4mIHZhcGlkUHVibGljS2V5LCBTdWJzY3JpYmVIYW5kbGVyJiYgc3Vic2NyaWJlSGFu
ZGxlcikKK3sKKyAgICBBU1NFUlQoaXNNYWluUnVuTG9vcCgpKTsKKworICAgIC8vIFN0YXNoIHRo
ZSBjb21wbGV0aW9uIGhhbmRsZXIgYXdheSBhbmQgbG9vayBpdCB1cCBieSBpZCBzbyB0aGF0IHdl
IGNhbiBlbnN1cmUgaXQgZ2V0cyBkZXN0cnVjdGVkIG9uIHRoZSBtYWluIHRocmVhZC4gSWYgd2Ug
bW92ZSB0aGUgaGFuZGxlciBhbmQgY2FwdHVyZSBpdCBpbiB0aGUgT2JqLUMgYmxvY2ssIGl0IG1p
Z2h0IGdldCBkZXN0cnVjdGVkIG9uIGEgc2Vjb25kYXJ5IHRocmVhZCBzaW5jZSB0aGlzIGNvbXBs
ZXRpb24gYmxvY2sgbW92ZXMgYmV0d2VlbiBkaWZmZXJlbnQgZGlzcGF0Y2ggcXVldWVzIGluIHRo
ZSBBUFMgaW1wbGVtZW50YXRpb24uCisgICAgYXV0byBpZGVudGlmaWVyID0gKyttX2hhbmRsZXJJ
ZGVudGlmaWVyOworICAgIG1fc3Vic2NyaWJlSGFuZGxlcnMuYWRkKGlkZW50aWZpZXIsIFdURk1v
dmUoc3Vic2NyaWJlSGFuZGxlcikpOworCisgICAgW21fY29ubmVjdGlvbiByZXF1ZXN0VVJMVG9r
ZW5Gb3JJbmZvOm1ha2VUb2tlbkluZm8odG9waWMsIHZhcGlkUHVibGljS2V5KS5nZXQoKSBjb21w
bGV0aW9uOm1ha2VCbG9ja1B0cihbdGhpcywgd2Vha1RoaXMgPSBXZWFrUHRyIHsgKnRoaXMgfSwg
aWRlbnRpZmllcl0gKEFQU1VSTFRva2VuICp0b2tlbiwgTlNFcnJvciAqZXJyb3IpIHsKKyAgICAg
ICAgaWYgKCF3ZWFrVGhpcykKKyAgICAgICAgICAgIHJldHVybjsKKworICAgICAgICBhdXRvIGhh
bmRsZXIgPSBtX3N1YnNjcmliZUhhbmRsZXJzLnRha2UoaWRlbnRpZmllcik7CisgICAgICAgIGhh
bmRsZXIodG9rZW4udG9rZW5VUkwsIGVycm9yKTsKKyAgICB9KS5nZXQoKV07Cit9CisKK3ZvaWQg
QXBwbGVQdXNoU2VydmljZUNvbm5lY3Rpb246OnVuc3Vic2NyaWJlKGNvbnN0IFN0cmluZyYgdG9w
aWMsIGNvbnN0IFZlY3Rvcjx1aW50OF90PiYgdmFwaWRQdWJsaWNLZXksIFVuc3Vic2NyaWJlSGFu
ZGxlciYmIHVuc3Vic2NyaWJlSGFuZGxlcikKK3sKKyAgICBBU1NFUlQoaXNNYWluUnVuTG9vcCgp
KTsKKworICAgIC8vIFNlZSBzdWJzY3JpYmUgZm9yIHdoeSB3ZSBzdGFzaCB0aGUgaGFuZGxlciBp
bnRvIGEgbWFwLgorICAgIGF1dG8gaWRlbnRpZmllciA9ICsrbV9oYW5kbGVySWRlbnRpZmllcjsK
KyAgICBtX3Vuc3Vic2NyaWJlSGFuZGxlcnMuYWRkKGlkZW50aWZpZXIsIFdURk1vdmUodW5zdWJz
Y3JpYmVIYW5kbGVyKSk7CisKKyAgICBbbV9jb25uZWN0aW9uIGludmFsaWRhdGVVUkxUb2tlbkZv
ckluZm86bWFrZVRva2VuSW5mbyh0b3BpYywgdmFwaWRQdWJsaWNLZXkpLmdldCgpIGNvbXBsZXRp
b246bWFrZUJsb2NrUHRyKFt0aGlzLCB3ZWFrVGhpcyA9IFdlYWtQdHIgeyAqdGhpcyB9LCBpZGVu
dGlmaWVyXSAoQk9PTCBzdWNjZXNzLCBOU0Vycm9yICplcnJvcikgeworICAgICAgICBpZiAoIXdl
YWtUaGlzKQorICAgICAgICAgICAgcmV0dXJuOworCisgICAgICAgIC8vIEZJWE1FOiByZW1vdmUg
dGhpcyBvbmNlIEFQUyBzdG9wcyBjYWxsaW5nIGJhY2sgb24gdGhlIHdyb25nIHF1ZXVlIChyZGFy
Oi8vODgxMDAyNzUpLgorICAgICAgICBkaXNwYXRjaF9hc3luYyhkaXNwYXRjaF9nZXRfbWFpbl9x
dWV1ZSgpLCBeeworICAgICAgICAgICAgYXV0byBoYW5kbGVyID0gbV91bnN1YnNjcmliZUhhbmRs
ZXJzLnRha2UoaWRlbnRpZmllcik7CisgICAgICAgICAgICBoYW5kbGVyKHN1Y2Nlc3MsIGVycm9y
KTsKKyAgICAgICAgfSk7CisgICAgfSkuZ2V0KCldOworfQorCitWZWN0b3I8U3RyaW5nPiBBcHBs
ZVB1c2hTZXJ2aWNlQ29ubmVjdGlvbjo6ZW5hYmxlZFRvcGljcygpCit7CisgICAgcmV0dXJuIG1h
a2VWZWN0b3I8U3RyaW5nPihbbV9jb25uZWN0aW9uIGVuYWJsZWRUb3BpY3NdKTsKK30KKworVmVj
dG9yPFN0cmluZz4gQXBwbGVQdXNoU2VydmljZUNvbm5lY3Rpb246Omlnbm9yZWRUb3BpY3MoKQor
eworICAgIHJldHVybiBtYWtlVmVjdG9yPFN0cmluZz4oW21fY29ubmVjdGlvbiBpZ25vcmVkVG9w
aWNzXSk7Cit9CisKK1ZlY3RvcjxTdHJpbmc+IEFwcGxlUHVzaFNlcnZpY2VDb25uZWN0aW9uOjpv
cHBvcnR1bmlzdGljVG9waWNzKCkKK3sKKyAgICByZXR1cm4gbWFrZVZlY3RvcjxTdHJpbmc+KFtt
X2Nvbm5lY3Rpb24gb3Bwb3J0dW5pc3RpY1RvcGljc10pOworfQorCitWZWN0b3I8U3RyaW5nPiBB
cHBsZVB1c2hTZXJ2aWNlQ29ubmVjdGlvbjo6bm9uV2FraW5nVG9waWNzKCkKK3sKKyAgICByZXR1
cm4gbWFrZVZlY3RvcjxTdHJpbmc+KFttX2Nvbm5lY3Rpb24gbm9uV2FraW5nVG9waWNzXSk7Cit9
CisKK3ZvaWQgQXBwbGVQdXNoU2VydmljZUNvbm5lY3Rpb246OnNldEVuYWJsZWRUb3BpY3MoVmVj
dG9yPFN0cmluZz4mJiB0b3BpY3MpCit7CisgICAgW21fY29ubmVjdGlvbiBfc2V0RW5hYmxlZFRv
cGljczpjcmVhdGVOU0FycmF5KFdURk1vdmUodG9waWNzKSkuZ2V0KCldOworfQorCit2b2lkIEFw
cGxlUHVzaFNlcnZpY2VDb25uZWN0aW9uOjpzZXRJZ25vcmVkVG9waWNzKFZlY3RvcjxTdHJpbmc+
JiYgdG9waWNzKQoreworICAgIFttX2Nvbm5lY3Rpb24gX3NldElnbm9yZWRUb3BpY3M6Y3JlYXRl
TlNBcnJheShXVEZNb3ZlKHRvcGljcykpLmdldCgpXTsKK30KKwordm9pZCBBcHBsZVB1c2hTZXJ2
aWNlQ29ubmVjdGlvbjo6c2V0T3Bwb3J0dW5pc3RpY1RvcGljcyhWZWN0b3I8U3RyaW5nPiYmIHRv
cGljcykKK3sKKyAgICBbbV9jb25uZWN0aW9uIF9zZXRPcHBvcnR1bmlzdGljVG9waWNzOmNyZWF0
ZU5TQXJyYXkoV1RGTW92ZSh0b3BpY3MpKS5nZXQoKV07Cit9CisKK3ZvaWQgQXBwbGVQdXNoU2Vy
dmljZUNvbm5lY3Rpb246OnNldE5vbldha2luZ1RvcGljcyhWZWN0b3I8U3RyaW5nPiYmIHRvcGlj
cykKK3sKKyAgICBbbV9jb25uZWN0aW9uIF9zZXROb25XYWtpbmdUb3BpY3M6Y3JlYXRlTlNBcnJh
eShXVEZNb3ZlKHRvcGljcykpLmdldCgpXTsKK30KKwordm9pZCBBcHBsZVB1c2hTZXJ2aWNlQ29u
bmVjdGlvbjo6c2V0VG9waWNMaXN0cyhUb3BpY0xpc3RzJiYgdG9waWNMaXN0cykKK3sKKyAgICBb
bV9jb25uZWN0aW9uIHNldEVuYWJsZWRUb3BpY3M6Y3JlYXRlTlNBcnJheShXVEZNb3ZlKHRvcGlj
TGlzdHMuZW5hYmxlZFRvcGljcykpLmdldCgpIGlnbm9yZWRUb3BpY3M6Y3JlYXRlTlNBcnJheShX
VEZNb3ZlKHRvcGljTGlzdHMuaWdub3JlZFRvcGljcykpLmdldCgpIG9wcG9ydHVuaXN0aWNUb3Bp
Y3M6Y3JlYXRlTlNBcnJheShXVEZNb3ZlKHRvcGljTGlzdHMub3Bwb3J0dW5pc3RpY1RvcGljcykp
LmdldCgpIG5vbldha2luZ1RvcGljczpjcmVhdGVOU0FycmF5KFdURk1vdmUodG9waWNMaXN0cy5u
b25XYWtpbmdUb3BpY3MpKS5nZXQoKV07Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYlB1c2hECisK
KyNlbmRpZiAvLyBIQVZFKEFQUExFX1BVU0hfU0VSVklDRV9VUkxfVE9LRU5fU1VQUE9SVCkKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvd2VicHVzaGQvTW9ja1B1c2hTZXJ2aWNlQ29ubmVjdGlv
bi5oIGIvU291cmNlL1dlYktpdC93ZWJwdXNoZC9Nb2NrUHVzaFNlcnZpY2VDb25uZWN0aW9uLmgK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uNzc2OWJiNmJkZDU4MjhlN2IxNjRjMTY3Yzg0NjBjZmRiZDdjMDQwMAotLS0g
L2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvd2VicHVzaGQvTW9ja1B1c2hTZXJ2aWNlQ29u
bmVjdGlvbi5oCkBAIC0wLDAgKzEsNTMgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjIgQXBw
bGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1
c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZp
Y2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRp
b25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11
c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJp
YnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0
CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRl
cmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdB
UkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElT
JycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFO
VEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElT
Q0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JT
CisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVD
SUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBP
UiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisg
KiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJ
TElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQg
KElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdB
WSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAq
IFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKwor
I2luY2x1ZGUgIlB1c2hTZXJ2aWNlQ29ubmVjdGlvbi5oIgorCituYW1lc3BhY2UgV2ViUHVzaEQg
eworCitjbGFzcyBNb2NrUHVzaFNlcnZpY2VDb25uZWN0aW9uIGZpbmFsIDogcHVibGljIFB1c2hT
ZXJ2aWNlQ29ubmVjdGlvbiB7CitwdWJsaWM6CisgICAgTW9ja1B1c2hTZXJ2aWNlQ29ubmVjdGlv
bigpOworICAgIH5Nb2NrUHVzaFNlcnZpY2VDb25uZWN0aW9uKCk7CisKKyAgICB2b2lkIHN1YnNj
cmliZShjb25zdCBTdHJpbmcmIHRvcGljLCBjb25zdCBWZWN0b3I8dWludDhfdD4mIHZhcGlkUHVi
bGljS2V5LCBTdWJzY3JpYmVIYW5kbGVyJiYpIG92ZXJyaWRlOworICAgIHZvaWQgdW5zdWJzY3Jp
YmUoY29uc3QgU3RyaW5nJiB0b3BpYywgY29uc3QgVmVjdG9yPHVpbnQ4X3Q+JiB2YXBpZFB1Ymxp
Y0tleSwgVW5zdWJzY3JpYmVIYW5kbGVyJiYpIG92ZXJyaWRlOworCisgICAgVmVjdG9yPFN0cmlu
Zz4gZW5hYmxlZFRvcGljcygpIG92ZXJyaWRlOworICAgIFZlY3RvcjxTdHJpbmc+IGlnbm9yZWRU
b3BpY3MoKSBvdmVycmlkZTsKKyAgICBWZWN0b3I8U3RyaW5nPiBvcHBvcnR1bmlzdGljVG9waWNz
KCkgb3ZlcnJpZGU7CisgICAgVmVjdG9yPFN0cmluZz4gbm9uV2FraW5nVG9waWNzKCkgb3ZlcnJp
ZGU7CisKKyAgICB2b2lkIHNldEVuYWJsZWRUb3BpY3MoVmVjdG9yPFN0cmluZz4mJikgb3ZlcnJp
ZGU7CisgICAgdm9pZCBzZXRJZ25vcmVkVG9waWNzKFZlY3RvcjxTdHJpbmc+JiYpIG92ZXJyaWRl
OworICAgIHZvaWQgc2V0T3Bwb3J0dW5pc3RpY1RvcGljcyhWZWN0b3I8U3RyaW5nPiYmKSBvdmVy
cmlkZTsKKyAgICB2b2lkIHNldE5vbldha2luZ1RvcGljcyhWZWN0b3I8U3RyaW5nPiYmKSBvdmVy
cmlkZTsKKworICAgIHZvaWQgc2V0VG9waWNMaXN0cyhUb3BpY0xpc3RzJiYpIG92ZXJyaWRlOwor
fTsKKworfSAvLyBuYW1lc3BhY2UgV2ViUHVzaEQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
d2VicHVzaGQvTW9ja1B1c2hTZXJ2aWNlQ29ubmVjdGlvbi5tbSBiL1NvdXJjZS9XZWJLaXQvd2Vi
cHVzaGQvTW9ja1B1c2hTZXJ2aWNlQ29ubmVjdGlvbi5tbQpuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5kYmVmYTc0YWVj
ZDlhOWVhMGU0MTk4MzM4NjhlMzA4ZDNkNzZmNjAzCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNl
L1dlYktpdC93ZWJwdXNoZC9Nb2NrUHVzaFNlcnZpY2VDb25uZWN0aW9uLm1tCkBAIC0wLDAgKzEs
ODcgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjIgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJl
c2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5h
cnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVk
IHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICog
MS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBj
b3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9y
bSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisg
KiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0
aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQ
TEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVT
UyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAor
ICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1Mg
Rk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQg
U0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFO
WSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisg
KiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQ
Uk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBV
U0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VW
RVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICog
Q09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNF
IE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBU
SElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBT
VUNIIERBTUFHRS4KKyAqLworCisjaW1wb3J0ICJjb25maWcuaCIKKyNpbXBvcnQgIk1vY2tQdXNo
U2VydmljZUNvbm5lY3Rpb24uaCIKKworbmFtZXNwYWNlIFdlYlB1c2hEIHsKKworTW9ja1B1c2hT
ZXJ2aWNlQ29ubmVjdGlvbjo6TW9ja1B1c2hTZXJ2aWNlQ29ubmVjdGlvbigpCit7Cit9CisKK01v
Y2tQdXNoU2VydmljZUNvbm5lY3Rpb246On5Nb2NrUHVzaFNlcnZpY2VDb25uZWN0aW9uKCkgPSBk
ZWZhdWx0OworCit2b2lkIE1vY2tQdXNoU2VydmljZUNvbm5lY3Rpb246OnN1YnNjcmliZShjb25z
dCBTdHJpbmcmLCBjb25zdCBWZWN0b3I8dWludDhfdD4mLCBTdWJzY3JpYmVIYW5kbGVyJiYgaGFu
ZGxlcikKK3sKKyAgICBoYW5kbGVyKHsgfSwgW05TRXJyb3IgZXJyb3JXaXRoRG9tYWluOk5TQ29j
b2FFcnJvckRvbWFpbiBjb2RlOk5TRmVhdHVyZVVuc3VwcG9ydGVkRXJyb3IgdXNlckluZm86bmls
XSk7Cit9CisKK3ZvaWQgTW9ja1B1c2hTZXJ2aWNlQ29ubmVjdGlvbjo6dW5zdWJzY3JpYmUoY29u
c3QgU3RyaW5nJiwgY29uc3QgVmVjdG9yPHVpbnQ4X3Q+JiwgVW5zdWJzY3JpYmVIYW5kbGVyJiYg
aGFuZGxlcikKK3sKKyAgICBoYW5kbGVyKHsgfSwgW05TRXJyb3IgZXJyb3JXaXRoRG9tYWluOk5T
Q29jb2FFcnJvckRvbWFpbiBjb2RlOk5TRmVhdHVyZVVuc3VwcG9ydGVkRXJyb3IgdXNlckluZm86
bmlsXSk7Cit9CisKK1ZlY3RvcjxTdHJpbmc+IE1vY2tQdXNoU2VydmljZUNvbm5lY3Rpb246OmVu
YWJsZWRUb3BpY3MoKQoreworICAgIHJldHVybiB7IH07Cit9CisKK1ZlY3RvcjxTdHJpbmc+IE1v
Y2tQdXNoU2VydmljZUNvbm5lY3Rpb246Omlnbm9yZWRUb3BpY3MoKQoreworICAgIHJldHVybiB7
IH07Cit9CisKK1ZlY3RvcjxTdHJpbmc+IE1vY2tQdXNoU2VydmljZUNvbm5lY3Rpb246Om9wcG9y
dHVuaXN0aWNUb3BpY3MoKQoreworICAgIHJldHVybiB7IH07Cit9CisKK1ZlY3RvcjxTdHJpbmc+
IE1vY2tQdXNoU2VydmljZUNvbm5lY3Rpb246Om5vbldha2luZ1RvcGljcygpCit7CisgICAgcmV0
dXJuIHsgfTsKK30KKwordm9pZCBNb2NrUHVzaFNlcnZpY2VDb25uZWN0aW9uOjpzZXRFbmFibGVk
VG9waWNzKFZlY3RvcjxTdHJpbmc+JiYgdG9waWNzKQoreworfQorCit2b2lkIE1vY2tQdXNoU2Vy
dmljZUNvbm5lY3Rpb246OnNldElnbm9yZWRUb3BpY3MoVmVjdG9yPFN0cmluZz4mJiB0b3BpY3Mp
Cit7Cit9CisKK3ZvaWQgTW9ja1B1c2hTZXJ2aWNlQ29ubmVjdGlvbjo6c2V0T3Bwb3J0dW5pc3Rp
Y1RvcGljcyhWZWN0b3I8U3RyaW5nPiYmIHRvcGljcykKK3sKK30KKwordm9pZCBNb2NrUHVzaFNl
cnZpY2VDb25uZWN0aW9uOjpzZXROb25XYWtpbmdUb3BpY3MoVmVjdG9yPFN0cmluZz4mJiB0b3Bp
Y3MpCit7Cit9CisKK3ZvaWQgTW9ja1B1c2hTZXJ2aWNlQ29ubmVjdGlvbjo6c2V0VG9waWNMaXN0
cyhUb3BpY0xpc3RzJiYgdG9waWNMaXN0cykKK3sKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViUHVz
aEQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvd2VicHVzaGQvUHVzaFNlcnZpY2VDb25uZWN0
aW9uLmggYi9Tb3VyY2UvV2ViS2l0L3dlYnB1c2hkL1B1c2hTZXJ2aWNlQ29ubmVjdGlvbi5oCm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAuLjJjMTQxNDRjNjFiYjNlZmFlNGVkMzI4ZTE1MjBkM2VjZjA4MzE3ZWYKLS0tIC9k
ZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L3dlYnB1c2hkL1B1c2hTZXJ2aWNlQ29ubmVjdGlv
bi5oCkBAIC0wLDAgKzEsODIgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjIgQXBwbGUgSW5j
LiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4g
c291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9u
LCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisg
KiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0
YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9u
cyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMg
cHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMg
UFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAq
IEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJ
VFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1F
RC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBC
RSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBF
WEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJW
SUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRF
UlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwg
V0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xV
RElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQg
T0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQ
T1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworI2luY2x1
ZGUgPHd0Zi9Db21wbGV0aW9uSGFuZGxlci5oPgorI2luY2x1ZGUgPHd0Zi9EZXF1ZS5oPgorI2lu
Y2x1ZGUgPHd0Zi9GdW5jdGlvbi5oPgorI2luY2x1ZGUgPHd0Zi9SZXRhaW5QdHIuaD4KKyNpbmNs
dWRlIDx3dGYvVmVjdG9yLmg+CisjaW5jbHVkZSA8d3RmL1dlYWtQdHIuaD4KKyNpbmNsdWRlIDx3
dGYvdGV4dC9XVEZTdHJpbmcuaD4KKworT0JKQ19DTEFTUyBOU0Vycm9yOworT0JKQ19DTEFTUyBO
U1N0cmluZzsKK09CSkNfQ0xBU1MgTlNEaWN0aW9uYXJ5OworCituYW1lc3BhY2UgV2ViUHVzaEQg
eworCitjbGFzcyBQdXNoU2VydmljZUNvbm5lY3Rpb24gOiBwdWJsaWMgQ2FuTWFrZVdlYWtQdHI8
UHVzaFNlcnZpY2VDb25uZWN0aW9uPiB7CisgICAgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7Citw
dWJsaWM6CisgICAgdXNpbmcgSW5jb21pbmdQdXNoTWVzc2FnZUhhbmRsZXIgPSBGdW5jdGlvbjx2
b2lkKE5TU3RyaW5nICosIE5TRGljdGlvbmFyeSAqKT47CisKKyAgICBQdXNoU2VydmljZUNvbm5l
Y3Rpb24oKSA9IGRlZmF1bHQ7CisgICAgdmlydHVhbCB+UHVzaFNlcnZpY2VDb25uZWN0aW9uKCkg
PSBkZWZhdWx0OworCisgICAgdXNpbmcgU3Vic2NyaWJlSGFuZGxlciA9IENvbXBsZXRpb25IYW5k
bGVyPHZvaWQoTlNTdHJpbmcgKiwgTlNFcnJvciAqKT47CisgICAgdmlydHVhbCB2b2lkIHN1YnNj
cmliZShjb25zdCBTdHJpbmcmIHRvcGljLCBjb25zdCBWZWN0b3I8dWludDhfdD4mIHZhcGlkUHVi
bGljS2V5LCBTdWJzY3JpYmVIYW5kbGVyJiYpID0gMDsKKworICAgIHVzaW5nIFVuc3Vic2NyaWJl
SGFuZGxlciA9IENvbXBsZXRpb25IYW5kbGVyPHZvaWQoYm9vbCwgTlNFcnJvciAqKT47CisgICAg
dmlydHVhbCB2b2lkIHVuc3Vic2NyaWJlKGNvbnN0IFN0cmluZyYgdG9waWMsIGNvbnN0IFZlY3Rv
cjx1aW50OF90PiYgdmFwaWRQdWJsaWNLZXksIFVuc3Vic2NyaWJlSGFuZGxlciYmKSA9IDA7CisK
KyAgICB2aXJ0dWFsIFZlY3RvcjxTdHJpbmc+IGVuYWJsZWRUb3BpY3MoKSA9IDA7CisgICAgdmly
dHVhbCBWZWN0b3I8U3RyaW5nPiBpZ25vcmVkVG9waWNzKCkgPSAwOworICAgIHZpcnR1YWwgVmVj
dG9yPFN0cmluZz4gb3Bwb3J0dW5pc3RpY1RvcGljcygpID0gMDsKKyAgICB2aXJ0dWFsIFZlY3Rv
cjxTdHJpbmc+IG5vbldha2luZ1RvcGljcygpID0gMDsKKworICAgIHZpcnR1YWwgdm9pZCBzZXRF
bmFibGVkVG9waWNzKFZlY3RvcjxTdHJpbmc+JiYpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgc2V0
SWdub3JlZFRvcGljcyhWZWN0b3I8U3RyaW5nPiYmKSA9IDA7CisgICAgdmlydHVhbCB2b2lkIHNl
dE9wcG9ydHVuaXN0aWNUb3BpY3MoVmVjdG9yPFN0cmluZz4mJikgPSAwOworICAgIHZpcnR1YWwg
dm9pZCBzZXROb25XYWtpbmdUb3BpY3MoVmVjdG9yPFN0cmluZz4mJikgPSAwOworCisgICAgc3Ry
dWN0IFRvcGljTGlzdHMgeworICAgICAgICBWZWN0b3I8U3RyaW5nPiBlbmFibGVkVG9waWNzOwor
ICAgICAgICBWZWN0b3I8U3RyaW5nPiBpZ25vcmVkVG9waWNzOworICAgICAgICBWZWN0b3I8U3Ry
aW5nPiBvcHBvcnR1bmlzdGljVG9waWNzOworICAgICAgICBWZWN0b3I8U3RyaW5nPiBub25XYWtp
bmdUb3BpY3M7CisgICAgfTsKKyAgICB2aXJ0dWFsIHZvaWQgc2V0VG9waWNMaXN0cyhUb3BpY0xp
c3RzJiYpID0gMDsKKworICAgIHZvaWQgc3RhcnRMaXN0ZW5pbmdGb3JQdXNoTWVzc2FnZXMoSW5j
b21pbmdQdXNoTWVzc2FnZUhhbmRsZXImJik7CisgICAgdm9pZCBkaWRSZWNlaXZlUHVzaE1lc3Nh
Z2UoTlNTdHJpbmcgKnRvcGljLCBOU0RpY3Rpb25hcnkgKnVzZXJJbmZvKTsKKworcHJpdmF0ZToK
KyAgICBJbmNvbWluZ1B1c2hNZXNzYWdlSGFuZGxlciBtX2luY29taW5nUHVzaE1lc3NhZ2VIYW5k
bGVyOworICAgIERlcXVlPHN0ZDo6cGFpcjxSZXRhaW5QdHI8TlNTdHJpbmc+LCBSZXRhaW5QdHI8
TlNEaWN0aW9uYXJ5Pj4+IG1fcGVuZGluZ1B1c2hlczsKK307CisKK30gLy8gbmFtZXNwYWNlIFdl
YlB1c2hECmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L3dlYnB1c2hkL1B1c2hTZXJ2aWNlQ29u
bmVjdGlvbi5tbSBiL1NvdXJjZS9XZWJLaXQvd2VicHVzaGQvUHVzaFNlcnZpY2VDb25uZWN0aW9u
Lm1tCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLjUzNDMzMjVlYjVlYTIwM2U4ZGY2ZmY4MzAzY2I5YjBmZmM4MTMyMWIK
LS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L3dlYnB1c2hkL1B1c2hTZXJ2aWNlQ29u
bmVjdGlvbi5tbQpAQCAtMCwwICsxLDYwIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIyIEFw
cGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQg
dXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlm
aWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0
aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBt
dXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3Ry
aWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdo
dAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0
ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRX
QVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJ
UycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hB
TlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJ
U0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9S
UworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BF
Q0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMg
T1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUwor
ICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFC
SUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JU
IChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBX
QVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisg
KiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2ltcG9ydCAiY29uZmln
LmgiCisjaW1wb3J0ICJQdXNoU2VydmljZUNvbm5lY3Rpb24uaCIKKworI2ltcG9ydCA8d3RmL1dv
cmtRdWV1ZS5oPgorCituYW1lc3BhY2UgV2ViUHVzaEQgeworCit2b2lkIFB1c2hTZXJ2aWNlQ29u
bmVjdGlvbjo6c3RhcnRMaXN0ZW5pbmdGb3JQdXNoTWVzc2FnZXMoSW5jb21pbmdQdXNoTWVzc2Fn
ZUhhbmRsZXImJiBoYW5kbGVyKQoreworICAgIG1faW5jb21pbmdQdXNoTWVzc2FnZUhhbmRsZXIg
PSBXVEZNb3ZlKGhhbmRsZXIpOworCisgICAgaWYgKCFtX3BlbmRpbmdQdXNoZXMuc2l6ZSgpKQor
ICAgICAgICByZXR1cm47CisKKyAgICBXb3JrUXVldWU6Om1haW4oKS5kaXNwYXRjaChbdGhpc10o
KSBtdXRhYmxlIHsKKyAgICAgICAgd2hpbGUgKG1fcGVuZGluZ1B1c2hlcy5zaXplKCkpIHsKKyAg
ICAgICAgICAgIEBhdXRvcmVsZWFzZXBvb2wgeworICAgICAgICAgICAgICAgIGF1dG8gbWVzc2Fn
ZSA9IG1fcGVuZGluZ1B1c2hlcy50YWtlRmlyc3QoKTsKKyAgICAgICAgICAgICAgICBtX2luY29t
aW5nUHVzaE1lc3NhZ2VIYW5kbGVyKG1lc3NhZ2UuZmlyc3QuZ2V0KCksIG1lc3NhZ2Uuc2Vjb25k
LmdldCgpKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0pOworfQorCit2b2lkIFB1
c2hTZXJ2aWNlQ29ubmVjdGlvbjo6ZGlkUmVjZWl2ZVB1c2hNZXNzYWdlKE5TU3RyaW5nICp0b3Bp
YywgTlNEaWN0aW9uYXJ5ICp1c2VySW5mbykKK3sKKyAgICBpZiAoIW1faW5jb21pbmdQdXNoTWVz
c2FnZUhhbmRsZXIpIHsKKyAgICAgICAgbV9wZW5kaW5nUHVzaGVzLmFwcGVuZCh7IHRvcGljLCB1
c2VySW5mbyB9KTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIG1faW5jb21pbmdQdXNo
TWVzc2FnZUhhbmRsZXIodG9waWMsIHVzZXJJbmZvKTsKK30KKworfSAvLyBuYW1lc3BhY2UgV2Vi
UHVzaEQKZGlmZiAtLWdpdCBhL1dlYktpdExpYnJhcmllcy9DaGFuZ2VMb2cgYi9XZWJLaXRMaWJy
YXJpZXMvQ2hhbmdlTG9nCmluZGV4IDE0ZjFkMmVkYWRlOWE0ZDA4NzVhNTgxMjVlOGY5ZThjODAz
NmY0YTguLjNjMzYyMjI3ZDMxZjAxNDI5ZGRjODQzYmMyOTdmMjEzMzZkY2IzZjggMTAwNjQ0Ci0t
LSBhL1dlYktpdExpYnJhcmllcy9DaGFuZ2VMb2cKKysrIGIvV2ViS2l0TGlicmFyaWVzL0NoYW5n
ZUxvZwpAQCAtMSwzICsxLDE0IEBACisyMDIyLTAxLTMwICBCZW4gTmhhbSAgPG5oYW1AYXBwbGUu
Y29tPgorCisgICAgICAgIEltcG9ydCBBUFNDb25uZWN0aW9uLXJlbGF0ZWQgU1BJCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzU4NTYKKworICAgICAg
ICBSZXZpZXdlZCBZb3Vlbm4gRmFibGV0LgorCisgICAgICAgIEFkZCBhbiBBcHBsZVB1c2hTZXJ2
aWNlIHN0dWIgc28gd2UgY2FuIGJ1aWxkIGFnYWluc3QgaXQgd2l0aCBwdWJsaWMgU0RLcy4KKwor
ICAgICAgICAqIFdlYktpdFByaXZhdGVGcmFtZXdvcmtTdHVicy9pT1MvMTUvQXBwbGVQdXNoU2Vy
dmljZS5mcmFtZXdvcmsvQXBwbGVQdXNoU2VydmljZS50YmQ6IEFkZGVkLgorCiAyMDIyLTAxLTAx
ICBKZWZmIE1pbGxlciAgPGplZmZtQGFwcGxlLmNvbT4KIAogICAgICAgICBVcGRhdGUgdXNlci12
aXNpYmxlIGNvcHlyaWdodCBzdHJpbmdzIHRvIGluY2x1ZGUgMjAyMgpkaWZmIC0tZ2l0IGEvV2Vi
S2l0TGlicmFyaWVzL1dlYktpdFByaXZhdGVGcmFtZXdvcmtTdHVicy9pT1MvMTUvQXBwbGVQdXNo
U2VydmljZS5mcmFtZXdvcmsvQXBwbGVQdXNoU2VydmljZS50YmQgYi9XZWJLaXRMaWJyYXJpZXMv
V2ViS2l0UHJpdmF0ZUZyYW1ld29ya1N0dWJzL2lPUy8xNS9BcHBsZVB1c2hTZXJ2aWNlLmZyYW1l
d29yay9BcHBsZVB1c2hTZXJ2aWNlLnRiZApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi41Mjg3ZmZlMmJmOWI0OThlMmI0
ZmVlNDQ3NDVkZDJkYjEzYmYyNGIzCi0tLSAvZGV2L251bGwKKysrIGIvV2ViS2l0TGlicmFyaWVz
L1dlYktpdFByaXZhdGVGcmFtZXdvcmtTdHVicy9pT1MvMTUvQXBwbGVQdXNoU2VydmljZS5mcmFt
ZXdvcmsvQXBwbGVQdXNoU2VydmljZS50YmQKQEAgLTAsMCArMSw3NiBAQAorLS0tICF0YXBpLXRi
ZAordGJkLXZlcnNpb246ICAgICA0Cit0YXJnZXRzOiAgICAgICAgIFsgYXJtdjctaW9zLCBhcm12
N3MtaW9zLCBhcm02NC1pb3MsIGFybTY0ZS1pb3MgXQordXVpZHM6CisgIC0gdGFyZ2V0OiAgICAg
ICAgICBhcm12Ny1pb3MKKyAgICB2YWx1ZTogICAgICAgICAgIEZBMzE2OTQ5LTk2NjAtM0REQi05
Q0M0LTRBMzA1QjdCMjdFOQorICAtIHRhcmdldDogICAgICAgICAgYXJtdjdzLWlvcworICAgIHZh
bHVlOiAgICAgICAgICAgNTE3REZBQzgtRUZGRi0zRDExLTlEOTEtODAxRjE2NUMzNTg5CisgIC0g
dGFyZ2V0OiAgICAgICAgICBhcm02NC1pb3MKKyAgICB2YWx1ZTogICAgICAgICAgIDk0MDMzRjA4
LUZDNTQtMzRGQS05M0MwLTc1M0EwODk3MDI3QgorICAtIHRhcmdldDogICAgICAgICAgYXJtNjRl
LWlvcworICAgIHZhbHVlOiAgICAgICAgICAgRUNCNzQ2MDMtODhDRC0zNjdELUI2MjMtREYxMEE3
OEQxQzAxCitpbnN0YWxsLW5hbWU6ICAgICcvU3lzdGVtL0xpYnJhcnkvUHJpdmF0ZUZyYW1ld29y
a3MvQXBwbGVQdXNoU2VydmljZS5mcmFtZXdvcmsvQXBwbGVQdXNoU2VydmljZScKK2V4cG9ydHM6
CisgIC0gdGFyZ2V0czogICAgICAgICBbIGFybXY3LWlvcywgYXJtdjdzLWlvcyBdCisgICAgc3lt
Ym9sczogICAgICAgICBbIF9BUFNBc3NlcnQsIF9BUFNDb25uZWN0aW9uSW50ZXJydXB0ZWRIYW5k
bGVyQmxvY2ssIF9BUFNDb25uZWN0aW9uSW52YWxpZGF0aW9uSGFuZGxlckJsb2NrLCAKKyAgICAg
ICAgICAgICAgICAgICAgICAgX0FQU0NvcHlWYWx1ZUZvcktleSwgX0FQU0NyZWF0ZU1JR1NlcnZl
clNvdXJjZSwgX0FQU0NyZWF0ZU1JR1NlcnZlclNvdXJjZVdpdGhDb250ZXh0LCAKKyAgICAgICAg
ICAgICAgICAgICAgICAgX0FQU0dldEJvb2xlYW5WYWx1ZUZvcktleSwgX0FQU0dldENvbnRleHRG
b3JDYWxsb3V0Q3VycmVudE1JR1NlcnZlclNvdXJjZSwgCisgICAgICAgICAgICAgICAgICAgICAg
IF9BUFNHZXRNYWNoUG9ydEZvck1JR1NlcnZlclNvdXJjZSwgX0FQU0luY29taW5nTWVzc2FnZUZy
b21TdG9yYWdlS2V5LCAKKyAgICAgICAgICAgICAgICAgICAgICAgX0FQU0luY29taW5nTWVzc2Fn
ZUxhc3RNZXNzYWdlRnJvbVN0b3JhZ2VLZXksIF9BUFNJbmNvbWluZ01lc3NhZ2VUaW1lc3RhbXBL
ZXksIAorICAgICAgICAgICAgICAgICAgICAgICBfQVBTSW5jb21pbmdNZXNzYWdlVG9rZW5LZXks
IF9BUFNNZXNzYWdlQ29ycmVsYXRpb25JZGVudGlmaWVyS2V5LCAKKyAgICAgICAgICAgICAgICAg
ICAgICAgX0FQU01lc3NhZ2VHVUlES2V5LCBfQVBTTWVzc2FnZUlkZW50aWZpZXJLZXksIF9BUFNN
ZXNzYWdlVG9waWNLZXksIAorICAgICAgICAgICAgICAgICAgICAgICBfQVBTTWVzc2FnZVVzZXJJ
bmZvS2V5LCBfQVBTT3V0Z29pbmdNZXNzYWdlQ2FuY2VsbGVkS2V5LCBfQVBTT3V0Z29pbmdNZXNz
YWdlQ3JpdGljYWxLZXksIAorICAgICAgICAgICAgICAgICAgICAgICBfQVBTT3V0Z29pbmdNZXNz
YWdlSURLZXksIF9BUFNPdXRnb2luZ01lc3NhZ2VQYXlsb2FkRm9ybWF0S2V5LCAKKyAgICAgICAg
ICAgICAgICAgICAgICAgX0FQU091dGdvaW5nTWVzc2FnZVBheWxvYWRMZW5ndGhLZXksIF9BUFNP
dXRnb2luZ01lc3NhZ2VQcmlvcml0eUtleSwgCisgICAgICAgICAgICAgICAgICAgICAgIF9BUFNP
dXRnb2luZ01lc3NhZ2VTZW5kRGF0ZUtleSwgX0FQU091dGdvaW5nTWVzc2FnZVNlbmRJbnRlcmZh
Y2VLZXksIAorICAgICAgICAgICAgICAgICAgICAgICBfQVBTT3V0Z29pbmdNZXNzYWdlU2VuZGVy
VG9rZW5OYW1lS2V5LCBfQVBTT3V0Z29pbmdNZXNzYWdlU2VudEtleSwgCisgICAgICAgICAgICAg
ICAgICAgICAgIF9BUFNPdXRnb2luZ01lc3NhZ2VUaW1lZE91dEtleSwgX0FQU091dGdvaW5nTWVz
c2FnZVRpbWVvdXRLZXksIAorICAgICAgICAgICAgICAgICAgICAgICBfQVBTT3V0Z29pbmdNZXNz
YWdlVGltZXN0YW1wS2V5LCBfQVBTUHJlZkJ1bmRsZUlkZW50aWZpZXIsIAorICAgICAgICAgICAg
ICAgICAgICAgICBfQVBTU2V0VmFsdWVGb3JLZXksIF9BUFNTeW5jaHJvbml6ZSwgX0FQU1hQQ0xv
ZywgX0FQU1hQQ1NldExvZ0Jsb2NrLCAKKyAgICAgICAgICAgICAgICAgICAgICAgX0Nvbm5lY3Rp
b25EZWxpdmVyX3NlcnZlciwgX0Nvbm5lY3Rpb25EZWxpdmVyX3NlcnZlcl9yb3V0aW5lLCAKKyAg
ICAgICAgICAgICAgICAgICAgICAgX19BUFNDb25uZWN0aW9uRGVsaXZlcl9zdWJzeXN0ZW0sIF9f
QVBTSldTdHJpbmdUb0NoYXJQdHIsIAorICAgICAgICAgICAgICAgICAgICAgICBfX0FQU1BpbmdD
bGllbnQsIF9hcHNfY29ubmVjdGlvbl9ldmVudF9oYW5kbGVyIF0KKyAgICBvYmpjLWNsYXNzZXM6
ICAgIFsgQVBTRmlsZUxvZ2dpbmcsIEFQU011bHRpVXNlckZTLCBBUFNNdWx0aVVzZXJNb2RlLCBf
QVBTTG9nRmlsZUNvbXByZXNzb3IgXQorICAgIG9iamMtaXZhcnM6ICAgICAgWyBfQVBTTG9nRmls
ZUNvbXByZXNzb3IuX2FyY2hpdmVycyBdCisgIC0gdGFyZ2V0czogICAgICAgICBbIGFybTY0LWlv
cywgYXJtNjRlLWlvcywgYXJtdjctaW9zLCBhcm12N3MtaW9zIF0KKyAgICBzeW1ib2xzOiAgICAg
ICAgIFsgX0FQU0FsZXJ0LCBfQVBTQnVuZGxlSWRlbnRpZmllciwgX0FQU0NhY2hlZElQS2V5LCBf
QVBTQ2Fycmllck5hbWVLZXksIAorICAgICAgICAgICAgICAgICAgICAgICBfQVBTQ2xpZW50SWRl
bnRpdHlVcGRhdGVkTm90aWZpY2F0aW9uLCBfQVBTQ29ubmVjdGlvbkluaXRpYXRlRW50aXRsZW1l
bnQsIAorICAgICAgICAgICAgICAgICAgICAgICBfQVBTQ29ubmVjdGlvbk92ZXJyaWRlTmFtZWRE
ZWxlZ2F0ZVBvcnQsIF9BUFNDb25uZWN0aW9uU3lzdGVtUHJvY2Vzc0VudGl0bGVtZW50LCAKKyAg
ICAgICAgICAgICAgICAgICAgICAgX0FQU0NyZWF0ZURpY3Rpb25hcnlGcm9tWFBDT2JqZWN0LCBf
QVBTQ3JlYXRlWFBDT2JqZWN0RnJvbURpY3Rpb25hcnksIAorICAgICAgICAgICAgICAgICAgICAg
ICBfQVBTQ3JpdGljYWxXYWtlRW50aXRsZW1lbnQsIF9BUFNEYXJrV2FrZUVudGl0bGVtZW50LCBf
QVBTRGF0YUZvclByb3BlcnR5TGlzdCwgCisgICAgICAgICAgICAgICAgICAgICAgIF9BUFNEZWNv
ZGVEaWN0aW9uYXJ5LCBfQVBTRGVmYXVsdFRva2VuTmFtZSwgX0FQU0RlZmF1bHRVc2VySUQsIAor
ICAgICAgICAgICAgICAgICAgICAgICBfQVBTRGVtb0hvc3RzS2V5LCBfQVBTRW5jb2RlRGljdGlv
bmFyeSwgX0FQU0Vudmlyb25tZW50RGVtbywgCisgICAgICAgICAgICAgICAgICAgICAgIF9BUFNF
bnZpcm9ubWVudERldmVsb3BtZW50LCBfQVBTRW52aXJvbm1lbnRQcm9kdWN0aW9uLCBfQVBTRW52
aXJvbm1lbnRRQTIsIAorICAgICAgICAgICAgICAgICAgICAgICBfQVBTRXJyb3IsIF9BUFNFcnJv
ckRvbWFpbiwgX0FQU0ZvcmNlS2VlcEFsaXZlVjFLZXksIF9BUFNHZXRFbmFibGVDcml0aWNhbFJl
bGlhYmlsaXR5LCAKKyAgICAgICAgICAgICAgICAgICAgICAgX0FQU0dldEVuYWJsZVN0YXR1c05v
dGlmaWNhdGlvbnMsIF9BUFNHZXRFbmFibGVkVG9waWNzRnJvbVhQQ0RpY3Rpb25hcnksIAorICAg
ICAgICAgICAgICAgICAgICAgICBfQVBTR2V0SWdub3JlZFRvcGljc0Zyb21YUENEaWN0aW9uYXJ5
LCBfQVBTR2V0Tm9uV2FraW5nVG9waWNzRnJvbVhQQ0RpY3Rpb25hcnksIAorICAgICAgICAgICAg
ICAgICAgICAgICBfQVBTR2V0T3Bwb3J0dW5pc3RpY1RvcGljc0Zyb21YUENEaWN0aW9uYXJ5LCBf
QVBTR2V0VXNlc0FwcExhdW5jaFN0YXRzLCAKKyAgICAgICAgICAgICAgICAgICAgICAgX0FQU0dl
dFhQQ0FycmF5RnJvbURpY3Rpb25hcnksIF9BUFNHZXRYUENCb29sRnJvbURpY3Rpb25hcnksIAor
ICAgICAgICAgICAgICAgICAgICAgICBfQVBTR2V0WFBDQ29ubmVjdGlvbkNvbnRleHQsIF9BUFNH
ZXRYUENEYXRhRnJvbURpY3Rpb25hcnksIAorICAgICAgICAgICAgICAgICAgICAgICBfQVBTR2V0
WFBDRGljdGlvbmFyeUZyb21EaWN0aW9uYXJ5LCBfQVBTR2V0WFBDRG91YmxlRnJvbURpY3Rpb25h
cnksIAorICAgICAgICAgICAgICAgICAgICAgICBfQVBTR2V0WFBDSW50RnJvbURpY3Rpb25hcnks
IF9BUFNHZXRYUENOU1VJbnRlZ2VyRnJvbURpY3Rpb25hcnksIAorICAgICAgICAgICAgICAgICAg
ICAgICBfQVBTR2V0WFBDU3RyaW5nRnJvbURpY3Rpb25hcnksIF9BUFNIZXhTdHJpbmdGcm9tTlNE
YXRhLCBfQVBTSW5jb21pbmdNZXNzYWdlUHJpb3JpdHlTdHJpbmcsIAorICAgICAgICAgICAgICAg
ICAgICAgICBfQVBTSW5zZXJ0Qm9vbHNUb1hQQ0RpY3Rpb25hcnksIF9BUFNJbnNlcnREYXRhc1Rv
WFBDRGljdGlvbmFyeSwgCisgICAgICAgICAgICAgICAgICAgICAgIF9BUFNJbnNlcnREb3VibGVz
VG9YUENEaWN0aW9uYXJ5LCBfQVBTSW5zZXJ0RW5hYmxlZFRvcGljc1RvWFBDRGljdGlvbmFyeSwg
CisgICAgICAgICAgICAgICAgICAgICAgIF9BUFNJbnNlcnRJZ25vcmVkVG9waWNzVG9YUENEaWN0
aW9uYXJ5LCBfQVBTSW5zZXJ0SW50c1RvWFBDRGljdGlvbmFyeSwgCisgICAgICAgICAgICAgICAg
ICAgICAgIF9BUFNJbnNlcnROU0FycmF5c1RvWFBDRGljdGlvbmFyeSwgX0FQU0luc2VydE5TRGlj
dGlvbmFyaWVzVG9YUENEaWN0aW9uYXJ5LCAKKyAgICAgICAgICAgICAgICAgICAgICAgX0FQU0lu
c2VydE5TU3RyaW5nc1RvWFBDRGljdGlvbmFyeSwgX0FQU0luc2VydE5TVUludGVnZXJzVG9YUENE
aWN0aW9uYXJ5LCAKKyAgICAgICAgICAgICAgICAgICAgICAgX0FQU0luc2VydE5vbldha2luZ1Rv
cGljc1RvWFBDRGljdGlvbmFyeSwgX0FQU0luc2VydE9wcG9ydHVuaXN0aWNUb3BpY3NUb1hQQ0Rp
Y3Rpb25hcnksIAorICAgICAgICAgICAgICAgICAgICAgICBfQVBTSXNTVCwgX0FQU0xhdW5jaGRK
b2JMYWJlbCwgX0FQU05TRGF0YUZyb21IZXhTdHJpbmcsIF9BUFNQZXJBcHBUb2tlbkFwcElkc0tl
eSwgCisgICAgICAgICAgICAgICAgICAgICAgIF9BUFNQZXJzaXN0ZW50VG9waWNzS2V5LCBfQVBT
UG93ZXJMb2csIF9BUFNQcmV0dHlQcmludENvbGxlY3Rpb24sIAorICAgICAgICAgICAgICAgICAg
ICAgICBfQVBTUHJvcGVydHlMaXN0RnJvbU5TRGF0YSwgX0FQU1B1YlN1YkVycm9yLCBfQVBTUHVi
U3ViRXJyb3JEb21haW4sIAorICAgICAgICAgICAgICAgICAgICAgICBfQVBTUHVzaFdha2VFbnRp
dGxlbWVudCwgX0FQU1NhZmVBcnJheU9mU3RyaW5ncywgX0FQU1NldFhQQ0Nvbm5lY3Rpb25Db250
ZXh0LCAKKyAgICAgICAgICAgICAgICAgICAgICAgX0FQU1N5c3RlbVVzZXJzS2V5LCBfQVBTVHJ1
c3RBbGxIb3N0cywgX0FQU1VuZGVybHlpbmdFcnJvciwgCisgICAgICAgICAgICAgICAgICAgICAg
IF9BUFNVc2VzQXBwTGF1bmNoU3RhdHNLZXksIF9BUFNYUENDb25maWd1cmVDb25uZWN0aW9uLCBf
QVBTWFBDQ29ubmVjdGlvblNldEV2ZW50SGFuZGxlcnMsIAorICAgICAgICAgICAgICAgICAgICAg
ICBfQVBTWFBDQ3JlYXRlQ29ubmVjdGlvbkZvclNlcnZpY2UsIF9BUFNYUENDcmVhdGVDb25uZWN0
aW9uRm9yU2VydmljZVdpdGhRdWV1ZSwgCisgICAgICAgICAgICAgICAgICAgICAgIF9BUFNYUEND
cmVhdGVTZXJ2ZXJDb25uZWN0aW9uLCBfQVBTWFBDTWVzc2FnZVR5cGVLZXksIF9rQVBTVGFza0Ns
aWVudFNlcnZpY2VOYW1lIF0KKyAgICBvYmpjLWNsYXNzZXM6ICAgIFsgQVBTQWNjZXNzQ2hlY2ss
IEFQU0NoYW5uZWxTdWJzY3JpcHRpb25GYWlsdXJlLCBBUFNDb25uZWN0aW9uLCAKKyAgICAgICAg
ICAgICAgICAgICAgICAgQVBTRE5TUmVxdWVzdCwgQVBTRE5TUmVzcG9uc2UsIEFQU0luY29taW5n
TWVzc2FnZSwgQVBTTG9nLCAKKyAgICAgICAgICAgICAgICAgICAgICAgQVBTTWVzc2FnZSwgQVBT
T3V0Z29pbmdNZXNzYWdlLCBBUFNUYXNrQ2xpZW50IF0KKyAgICBvYmpjLWl2YXJzOiAgICAgIFsg
QVBTRE5TUmVxdWVzdC5fZW52aXJvbm1lbnQsIEFQU0ROU1JlcXVlc3QuX2ZsYWdzLCBBUFNETlNS
ZXF1ZXN0Ll9ob3N0bmFtZSwgCisgICAgICAgICAgICAgICAgICAgICAgIEFQU0ROU1JlcXVlc3Qu
X3JlcXVlc3RTdGFydFRpbWUsIEFQU0ROU1JlcXVlc3QuX3Jlc3BvbnNlQmxvY2ssIAorICAgICAg
ICAgICAgICAgICAgICAgICBBUFNETlNSZXF1ZXN0Ll90aW1lb3V0LCBBUFNETlNSZXNwb25zZS5f
aG9zdG5hbWUsIEFQU0ROU1Jlc3BvbnNlLl9pcHY0QWRkcmVzcywgCisgICAgICAgICAgICAgICAg
ICAgICAgIEFQU0ROU1Jlc3BvbnNlLl9pcHY2QWRkcmVzcywgQVBTVGFza0NsaWVudC5fY2xpZW50
UXVldWUsIEFQU1Rhc2tDbGllbnQuX2Nvbm5lY3Rpb24sIAorICAgICAgICAgICAgICAgICAgICAg
ICBBUFNUYXNrQ2xpZW50Ll9lbnZpcm9ubWVudCwgQVBTVGFza0NsaWVudC5fb3V0c3RhbmRpbmdE
TlNSZXF1ZXN0cyBdCisuLi4K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>450825</attachid>
            <date>2022-02-03 14:55:07 -0800</date>
            <delta_ts>2022-02-03 20:57:41 -0800</delta_ts>
            <desc>update tbd</desc>
            <filename>bug-235856-20220203145507.patch</filename>
            <type>text/plain</type>
            <size>48342</size>
            <attacher name="Ben Nham">nham</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg4ODA2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IDFiZjNjNDYwZmJkNTk3MjkyMmMxZTRk
YjM1MDM4ZTgxY2ZkM2I0YWUuLmY0YjkwNDYwYjM3NWZlZjAyODg3ZTQxNzgxZmUwZWNiMDgzNjZh
ZDYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMTQgQEAKKzIwMjItMDEtMzAgIEJlbiBOaGFtICA8bmhhbUBhcHBs
ZS5jb20+CisKKyAgICAgICAgSW1wb3J0IEFQU0Nvbm5lY3Rpb24tcmVsYXRlZCBTUEkKKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIzNTg1NgorCisgICAg
ICAgIFJldmlld2VkIFlvdWVubiBGYWJsZXQuCisKKyAgICAgICAgQWRkIGEgSEFWRSBtYWNybyB0
byBndWFyZCBzb21lIG9mIHRoZSBuZXdlciBTUEkgaW4gQVBTQ29ubmVjdGlvbi4KKworICAgICAg
ICAqIHd0Zi9QbGF0Zm9ybUhhdmUuaDoKKwogMjAyMi0wMS0zMCAgRGllZ28gUGlubyBHYXJjaWEg
IDxkcGlub0BpZ2FsaWEuY29tPgogCiAgICAgICAgIFtXaW5DYWlyb10gJ2ZpbGVTeXN0ZW1SZXBy
ZXNlbnRhdGlvbicgaWRlbnRpZmllciBub3QgZm91bmQgaW4gVVJMLmNwcApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwppbmRleCA2
NGE2ODA3NjdlMWVkNmZmYzJlYmM2NzU1ODJhMDYxN2JmOTdlNDZiLi4zNjlmZjRiMmQ3ZDgzM2Fk
ZjFhZDcwM2E0ZTA2MjliZWFlMjg4ZDZkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0NoYW5n
ZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwpAQCAtMSwzICsxLDU0IEBACisyMDIy
LTAxLTMwICBCZW4gTmhhbSAgPG5oYW1AYXBwbGUuY29tPgorCisgICAgICAgIEltcG9ydCBBUFND
b25uZWN0aW9uLXJlbGF0ZWQgU1BJCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0yMzU4NTYKKworICAgICAgICBSZXZpZXdlZCBZb3Vlbm4gRmFibGV0Lgor
CisgICAgICAgIFRoaXMgaW1wb3J0cyB0aGUgU1BJIGRlY2xhcmF0aW9ucyBuZWNlc3NhcnkgdG8g
YnVpbGQgYWdhaW5zdCBBcHBsZVB1c2hTZXJ2aWNlIGluIFdlYktpdC4gSXQKKyAgICAgICAgYWxz
byBpbmNsdWRlcyBhIFB1c2hTZXJ2aWNlQ29ubmVjdGlvbiBpbnRlcmZhY2UgdGhhdCBjYW4gc2l0
IGluIGZyb250IG9mIEFQU0Nvbm5lY3Rpb24sIGFuZAorICAgICAgICBhIGZha2UgaW50ZXJmYWNl
IHRoYXQgd2lsbCBiZSBmbGVzaGVkIG91dCBmb3IgdGVzdGluZyBwdXJwb3Nlcy4KKworICAgICAg
ICAqIENvbmZpZ3VyYXRpb25zL1dlYktpdC54Y2NvbmZpZzoKKyAgICAgICAgKiBQbGF0Zm9ybS9z
cGkvQ29jb2EvQXBwbGVQdXNoU2VydmljZVNQSS5oOiBBZGRlZC4KKyAgICAgICAgKiBXZWJLaXQu
eGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgKiB3ZWJwdXNoZC9BcHBsZVB1c2hT
ZXJ2aWNlQ29ubmVjdGlvbi5oOiBBZGRlZC4KKyAgICAgICAgKiB3ZWJwdXNoZC9BcHBsZVB1c2hT
ZXJ2aWNlQ29ubmVjdGlvbi5tbTogQWRkZWQuCisgICAgICAgICgtW19XS0FQU0Nvbm5lY3Rpb25E
ZWxlZ2F0ZSBpbml0V2l0aENvbm5lY3Rpb246XSk6CisgICAgICAgICgtW19XS0FQU0Nvbm5lY3Rp
b25EZWxlZ2F0ZSBjb25uZWN0aW9uOmRpZFJlY2VpdmVQdWJsaWNUb2tlbjpdKToKKyAgICAgICAg
KC1bX1dLQVBTQ29ubmVjdGlvbkRlbGVnYXRlIGNvbm5lY3Rpb246ZGlkUmVjZWl2ZUluY29taW5n
TWVzc2FnZTpdKToKKyAgICAgICAgKFdlYlB1c2hEOjpBcHBsZVB1c2hTZXJ2aWNlQ29ubmVjdGlv
bjo6QXBwbGVQdXNoU2VydmljZUNvbm5lY3Rpb24pOgorICAgICAgICAoV2ViUHVzaEQ6Om1ha2VU
b2tlbkluZm8pOgorICAgICAgICAoV2ViUHVzaEQ6OkFwcGxlUHVzaFNlcnZpY2VDb25uZWN0aW9u
OjpzdWJzY3JpYmUpOgorICAgICAgICAoV2ViUHVzaEQ6OkFwcGxlUHVzaFNlcnZpY2VDb25uZWN0
aW9uOjp1bnN1YnNjcmliZSk6CisgICAgICAgIChXZWJQdXNoRDo6QXBwbGVQdXNoU2VydmljZUNv
bm5lY3Rpb246OmVuYWJsZWRUb3BpY3MpOgorICAgICAgICAoV2ViUHVzaEQ6OkFwcGxlUHVzaFNl
cnZpY2VDb25uZWN0aW9uOjppZ25vcmVkVG9waWNzKToKKyAgICAgICAgKFdlYlB1c2hEOjpBcHBs
ZVB1c2hTZXJ2aWNlQ29ubmVjdGlvbjo6b3Bwb3J0dW5pc3RpY1RvcGljcyk6CisgICAgICAgIChX
ZWJQdXNoRDo6QXBwbGVQdXNoU2VydmljZUNvbm5lY3Rpb246Om5vbldha2luZ1RvcGljcyk6Cisg
ICAgICAgIChXZWJQdXNoRDo6QXBwbGVQdXNoU2VydmljZUNvbm5lY3Rpb246OnNldEVuYWJsZWRU
b3BpY3MpOgorICAgICAgICAoV2ViUHVzaEQ6OkFwcGxlUHVzaFNlcnZpY2VDb25uZWN0aW9uOjpz
ZXRJZ25vcmVkVG9waWNzKToKKyAgICAgICAgKFdlYlB1c2hEOjpBcHBsZVB1c2hTZXJ2aWNlQ29u
bmVjdGlvbjo6c2V0T3Bwb3J0dW5pc3RpY1RvcGljcyk6CisgICAgICAgIChXZWJQdXNoRDo6QXBw
bGVQdXNoU2VydmljZUNvbm5lY3Rpb246OnNldE5vbldha2luZ1RvcGljcyk6CisgICAgICAgIChX
ZWJQdXNoRDo6QXBwbGVQdXNoU2VydmljZUNvbm5lY3Rpb246OnNldFRvcGljTGlzdHMpOgorICAg
ICAgICAqIHdlYnB1c2hkL01vY2tQdXNoU2VydmljZUNvbm5lY3Rpb24uaDogQWRkZWQuCisgICAg
ICAgICogd2VicHVzaGQvTW9ja1B1c2hTZXJ2aWNlQ29ubmVjdGlvbi5tbTogQWRkZWQuCisgICAg
ICAgIChXZWJQdXNoRDo6TW9ja1B1c2hTZXJ2aWNlQ29ubmVjdGlvbjo6TW9ja1B1c2hTZXJ2aWNl
Q29ubmVjdGlvbik6CisgICAgICAgIChXZWJQdXNoRDo6TW9ja1B1c2hTZXJ2aWNlQ29ubmVjdGlv
bjo6c3Vic2NyaWJlKToKKyAgICAgICAgKFdlYlB1c2hEOjpNb2NrUHVzaFNlcnZpY2VDb25uZWN0
aW9uOjp1bnN1YnNjcmliZSk6CisgICAgICAgIChXZWJQdXNoRDo6TW9ja1B1c2hTZXJ2aWNlQ29u
bmVjdGlvbjo6ZW5hYmxlZFRvcGljcyk6CisgICAgICAgIChXZWJQdXNoRDo6TW9ja1B1c2hTZXJ2
aWNlQ29ubmVjdGlvbjo6aWdub3JlZFRvcGljcyk6CisgICAgICAgIChXZWJQdXNoRDo6TW9ja1B1
c2hTZXJ2aWNlQ29ubmVjdGlvbjo6b3Bwb3J0dW5pc3RpY1RvcGljcyk6CisgICAgICAgIChXZWJQ
dXNoRDo6TW9ja1B1c2hTZXJ2aWNlQ29ubmVjdGlvbjo6bm9uV2FraW5nVG9waWNzKToKKyAgICAg
ICAgKFdlYlB1c2hEOjpNb2NrUHVzaFNlcnZpY2VDb25uZWN0aW9uOjpzZXRFbmFibGVkVG9waWNz
KToKKyAgICAgICAgKFdlYlB1c2hEOjpNb2NrUHVzaFNlcnZpY2VDb25uZWN0aW9uOjpzZXRJZ25v
cmVkVG9waWNzKToKKyAgICAgICAgKFdlYlB1c2hEOjpNb2NrUHVzaFNlcnZpY2VDb25uZWN0aW9u
OjpzZXRPcHBvcnR1bmlzdGljVG9waWNzKToKKyAgICAgICAgKFdlYlB1c2hEOjpNb2NrUHVzaFNl
cnZpY2VDb25uZWN0aW9uOjpzZXROb25XYWtpbmdUb3BpY3MpOgorICAgICAgICAoV2ViUHVzaEQ6
Ok1vY2tQdXNoU2VydmljZUNvbm5lY3Rpb246OnNldFRvcGljTGlzdHMpOgorICAgICAgICAqIHdl
YnB1c2hkL1B1c2hTZXJ2aWNlQ29ubmVjdGlvbi5oOiBBZGRlZC4KKyAgICAgICAgKiB3ZWJwdXNo
ZC9QdXNoU2VydmljZUNvbm5lY3Rpb24ubW06IEFkZGVkLgorICAgICAgICAoV2ViUHVzaEQ6OlB1
c2hTZXJ2aWNlQ29ubmVjdGlvbjo6c3RhcnRMaXN0ZW5pbmdGb3JQdXNoTWVzc2FnZXMpOgorICAg
ICAgICAoV2ViUHVzaEQ6OlB1c2hTZXJ2aWNlQ29ubmVjdGlvbjo6ZGlkUmVjZWl2ZVB1c2hNZXNz
YWdlKToKKwogMjAyMi0wMS0zMCAgUnlvc3VrZSBOaXdhICA8cm5pd2FAd2Via2l0Lm9yZz4KIAog
ICAgICAgICBEZWxldGUgY29kZSBmb3Iga2V5Z2VuIGVsZW1lbnQKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XVEYvd3RmL1BsYXRmb3JtSGF2ZS5oIGIvU291cmNlL1dURi93dGYvUGxhdGZvcm1IYXZlLmgK
aW5kZXggYTA0Nzk4ZTNiNDBhZjRkZGMyYjA5MDhlMzY5NTU1ZDU0MDY2OGQzMy4uOGJhNjllNmFi
NWQ2MzM3ODE3MGQxM2MyNjMzMzhlYWM1Y2UwYTY1ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dURi93
dGYvUGxhdGZvcm1IYXZlLmgKKysrIGIvU291cmNlL1dURi93dGYvUGxhdGZvcm1IYXZlLmgKQEAg
LTExNjMsMyArMTE2Myw4IEBACiAgICAgfHwgKFBMQVRGT1JNKFdBVENIT1MpICYmIF9fV0FUQ0hf
T1NfVkVSU0lPTl9NQVhfQUxMT1dFRCA+PSA4MDUwMCkKICNkZWZpbmUgSEFWRV9DRk5FVFdPUktf
RElTQUJMRV9DQUNIRV9TUEkgMQogI2VuZGlmCisKKyNpZiAoKFBMQVRGT1JNKE1BQykgJiYgX19N
QUNfT1NfWF9WRVJTSU9OX01JTl9SRVFVSVJFRCA+PSAxMzAwMDApIFwKKyAgICB8fCAoUExBVEZP
Uk0oSU9TKSAmJiBfX0lQSE9ORV9PU19WRVJTSU9OX01JTl9SRVFVSVJFRCA+PSAxNjAwMDApKQor
I2RlZmluZSBIQVZFX0FQUExFX1BVU0hfU0VSVklDRV9VUkxfVE9LRU5fU1VQUE9SVCAxCisjZW5k
aWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvQ29uZmlndXJhdGlvbnMvV2ViS2l0LnhjY29u
ZmlnIGIvU291cmNlL1dlYktpdC9Db25maWd1cmF0aW9ucy9XZWJLaXQueGNjb25maWcKaW5kZXgg
ZDQ0OTMxYjM4MjgzZjNjYzExZTEzYTUxMGIzODdkMjE2M2E5MTAxMC4uNGQ3NThkZTI5MzdiMzNi
YTVmMzFiYWRkZDMwN2VkZmI4M2Y3MDg1OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9Db25m
aWd1cmF0aW9ucy9XZWJLaXQueGNjb25maWcKKysrIGIvU291cmNlL1dlYktpdC9Db25maWd1cmF0
aW9ucy9XZWJLaXQueGNjb25maWcKQEAgLTU0LDYgKzU0LDEzIEBAIFdLX0FDQ0VTU0lCSUxJVFlf
TERGTEFHU19DT0NPQV9UT1VDSF9ZRVMgPSAtbEFjY2Vzc2liaWxpdHk7CiBXS19BQ0NFU1NJQklM
SVRZX0xERkxBR1NfQ09DT0FfVE9VQ0hfTk8gPSAkKFdLX0FDQ0VTU0lCSUxJVFlfTERGTEFHUyQo
V0tfTUFDT1NfMTAxNCkpOwogV0tfQUNDRVNTSUJJTElUWV9MREZMQUdTX01BQ09TX1NJTkNFXzEw
MTQgPSAtd2Vha19saWJyYXJ5IC91c3IvbGliL2xpYkFjY2Vzc2liaWxpdHkuZHlsaWI7CiAKK1dL
X0FQUExFX1BVU0hfU0VSVklDRV9MREZMQUdTID0gJChXS19BUFBMRV9QVVNIX1NFUlZJQ0VfTERG
TEFHU18kKFdLX1BMQVRGT1JNX05BTUUpKTsKK1dLX0FQUExFX1BVU0hfU0VSVklDRV9MREZMQUdT
X2lwaG9uZW9zID0gJChXS19BUFBMRV9QVVNIX1NFUlZJQ0VfTERGTEFHUyQoV0tfSU9TXzE1KSk7
CitXS19BUFBMRV9QVVNIX1NFUlZJQ0VfTERGTEFHU19pcGhvbmVzaW11bGF0b3IgPSAkKFdLX0FQ
UExFX1BVU0hfU0VSVklDRV9MREZMQUdTJChXS19JT1NfMTUpKTsKK1dLX0FQUExFX1BVU0hfU0VS
VklDRV9MREZMQUdTX0lPU19TSU5DRV8xNSA9IC1mcmFtZXdvcmsgQXBwbGVQdXNoU2VydmljZTsK
K1dLX0FQUExFX1BVU0hfU0VSVklDRV9MREZMQUdTX21hY29zeCA9ICQoV0tfQVBQTEVfUFVTSF9T
RVJWSUNFX0xERkxBR1MkKFdLX01BQ09TXzEyMDApKTsKK1dLX0FQUExFX1BVU0hfU0VSVklDRV9M
REZMQUdTX01BQ09TX1NJTkNFXzEyMDAgPSAtZnJhbWV3b3JrIEFwcGxlUHVzaFNlcnZpY2U7CisK
IFdLX0FQUEtJVF9MREZMQUdTID0gJChXS19BUFBLSVRfTERGTEFHU18kKFdLX1BMQVRGT1JNX05B
TUUpKTsKIFdLX0FQUEtJVF9MREZMQUdTX21hY29zeCA9IC1mcmFtZXdvcmsgQXBwS2l0OwogV0tf
QVBQS0lUX0xERkxBR1NfbWFjY2F0YWx5c3QgPSAtZnJhbWV3b3JrIEFwcEtpdDsKQEAgLTE1NSw3
ICsxNjIsNyBAQCBXS19MSUJORVRXT1JLRVhURU5TSU9OX0xERkxBR1NfbWFjY2F0YWx5c3QgPSAt
bG5ldHdvcmtleHRlbnNpb247CiBXS19MSUJORVRXT1JLRVhURU5TSU9OX0xERkxBR1NfbWFjb3N4
ID0gLXdlYWtfbGlicmFyeSAvdXNyL2xpYi9saWJuZXR3b3JrZXh0ZW5zaW9uLmR5bGliOwogV0tf
TElCTkVUV09SS0VYVEVOU0lPTl9MREZMQUdTX3R2b3MgPSA7CiAKLUZSQU1FV09SS19BTkRfTElC
UkFSWV9MREZMQUdTID0gLWxvYmpjIC1mcmFtZXdvcmsgQ0ZOZXR3b3JrIC1mcmFtZXdvcmsgQ29y
ZUF1ZGlvIC1mcmFtZXdvcmsgQ29yZUZvdW5kYXRpb24gLWZyYW1ld29yayBDb3JlR3JhcGhpY3Mg
LWZyYW1ld29yayBDb3JlVGV4dCAtZnJhbWV3b3JrIEZvdW5kYXRpb24gLWZyYW1ld29yayBJbWFn
ZUlPIC1mcmFtZXdvcmsgSU9LaXQgLWZyYW1ld29yayBJT1N1cmZhY2UgLWZyYW1ld29yayBXZWJL
aXRMZWdhY3kgLWxuZXR3b3JrIC1mcmFtZXdvcmsgTWV0YWwgJChXS19BQ0NFU1NJQklMSVRZX0xE
RkxBR1MpICQoV0tfQVBQS0lUX0xERkxBR1MpICQoV0tfQkFDS0JPQVJEX1NFUlZJQ0VTX0xERkxB
R1MpICQoV0tfUlVOTklOR0JPQVJEX1NFUlZJQ0VTX0xERkxBR1MpICQoV0tfQVVUSEtJVF9MREZM
QUdTKSAkKFdLX0NBUkJPTl9MREZMQUdTKSAkKFdLX0NPTlRBQ1RTX0xERkxBR1MpICQoV0tfQ09S
RV9QUkVESUNUSU9OX0xERkxBR1MpICQoV0tfQ09SRV9TRVJWSUNFU19MREZMQUdTKSAkKFdLX0dS
QVBISUNTX1NFUlZJQ0VTX0xERkxBR1MpICQoV0tfTElCTkVUV09SS0VYVEVOU0lPTl9MREZMQUdT
KSAkKFdLX0xJQlNBTkRCT1hfTERGTEFHUykgJChXS19MSUJXRUJSVENfTERGTEFHUykgJChXS19N
T0JJTEVfQ09SRV9TRVJWSUNFU19MREZMQUdTKSAkKFdLX01PQklMRV9HRVNUQUxUX0xERkxBR1Mp
ICQoV0tfUERGS0lUX0xERkxBR1MpICQoV0tfUFJPVE9UWVBFX1RPT0xTX0xERkxBR1MpICQoV0tf
U0FGRV9CUk9XU0lOR19MREZMQUdTKSAkKFdLX1NFQ1VSSVRZX0lOVEVSRkFDRV9MREZMQUdTKSAk
KFdLX1VJS0lUX0xERkxBR1MpICQoV0tfVU5JRk9STV9UWVBFX0lERU5USUZJRVJTX0xERkxBR1Mp
ICQoV0tfVVJMX0ZPUk1BVFRJTkdfTERGTEFHUykgJChXS19XRUJJTlNQRUNUT1JVSV9MREZMQUdT
KSAkKFdLX0NPT1JESU5BVE9SX0xERkxBR1MpOworRlJBTUVXT1JLX0FORF9MSUJSQVJZX0xERkxB
R1MgPSAtbG9iamMgLWZyYW1ld29yayBDRk5ldHdvcmsgLWZyYW1ld29yayBDb3JlQXVkaW8gLWZy
YW1ld29yayBDb3JlRm91bmRhdGlvbiAtZnJhbWV3b3JrIENvcmVHcmFwaGljcyAtZnJhbWV3b3Jr
IENvcmVUZXh0IC1mcmFtZXdvcmsgRm91bmRhdGlvbiAtZnJhbWV3b3JrIEltYWdlSU8gLWZyYW1l
d29yayBJT0tpdCAtZnJhbWV3b3JrIElPU3VyZmFjZSAtZnJhbWV3b3JrIFdlYktpdExlZ2FjeSAt
bG5ldHdvcmsgLWZyYW1ld29yayBNZXRhbCAkKFdLX0FDQ0VTU0lCSUxJVFlfTERGTEFHUykgJChX
S19BUFBLSVRfTERGTEFHUykgJChXS19BUFBMRV9QVVNIX1NFUlZJQ0VfTERGTEFHUykgJChXS19C
QUNLQk9BUkRfU0VSVklDRVNfTERGTEFHUykgJChXS19SVU5OSU5HQk9BUkRfU0VSVklDRVNfTERG
TEFHUykgJChXS19BVVRIS0lUX0xERkxBR1MpICQoV0tfQ0FSQk9OX0xERkxBR1MpICQoV0tfQ09O
VEFDVFNfTERGTEFHUykgJChXS19DT1JFX1BSRURJQ1RJT05fTERGTEFHUykgJChXS19DT1JFX1NF
UlZJQ0VTX0xERkxBR1MpICQoV0tfR1JBUEhJQ1NfU0VSVklDRVNfTERGTEFHUykgJChXS19MSUJO
RVRXT1JLRVhURU5TSU9OX0xERkxBR1MpICQoV0tfTElCU0FOREJPWF9MREZMQUdTKSAkKFdLX0xJ
QldFQlJUQ19MREZMQUdTKSAkKFdLX01PQklMRV9DT1JFX1NFUlZJQ0VTX0xERkxBR1MpICQoV0tf
TU9CSUxFX0dFU1RBTFRfTERGTEFHUykgJChXS19QREZLSVRfTERGTEFHUykgJChXS19QUk9UT1RZ
UEVfVE9PTFNfTERGTEFHUykgJChXS19TQUZFX0JST1dTSU5HX0xERkxBR1MpICQoV0tfU0VDVVJJ
VFlfSU5URVJGQUNFX0xERkxBR1MpICQoV0tfVUlLSVRfTERGTEFHUykgJChXS19VTklGT1JNX1RZ
UEVfSURFTlRJRklFUlNfTERGTEFHUykgJChXS19VUkxfRk9STUFUVElOR19MREZMQUdTKSAkKFdL
X1dFQklOU1BFQ1RPUlVJX0xERkxBR1MpICQoV0tfQ09PUkRJTkFUT1JfTERGTEFHUyk7CiAKIC8v
IFByZXZlbnQgQysrIHN0YW5kYXJkIGxpYnJhcnkgYmFzaWNfc3RyaW5nc3RyZWFtLCBvcGVyYXRv
ciBuZXcsIGRlbGV0ZSBhbmQgdGhlaXIgcmVsYXRlZCBleGNlcHRpb24gdHlwZXMgZnJvbSBiZWlu
ZyBleHBvcnRlZCBhcyB3ZWFrIHN5bWJvbHMuCiBVTkVYUE9SVEVEX1NZTUJPTF9MREZMQUdTID0g
LVdsLC11bmV4cG9ydGVkX3N5bWJvbCAtV2wsX19aVElTdDliYWRfYWxsb2MgLVdsLC11bmV4cG9y
dGVkX3N5bWJvbCAtV2wsX19aVElTdDlleGNlcHRpb24gLVdsLC11bmV4cG9ydGVkX3N5bWJvbCAt
V2wsX19aVFNTdDliYWRfYWxsb2MgLVdsLC11bmV4cG9ydGVkX3N5bWJvbCAtV2wsX19aVFNTdDll
eGNlcHRpb24gLVdsLC11bmV4cG9ydGVkX3N5bWJvbCAtV2wsX19aZGxQdlNfIC1XbCwtdW5leHBv
cnRlZF9zeW1ib2wgLVdsLF9fWm53bVB2IC1XbCwtdW5leHBvcnRlZF9zeW1ib2wgLVdsLF9fWm53
bSAtV2wsLXVuZXhwb3J0ZWRfc3ltYm9sIC1XbCxfX1pUVk5TdDNfXzExN2JhZF9mdW5jdGlvbl9j
YWxsRSAtV2wsLXVuZXhwb3J0ZWRfc3ltYm9sIC1XbCxfX1pUQ05TdDNfXzExOGJhc2ljX3N0cmlu
Z3N0cmVhbUljTlNfMTFjaGFyX3RyYWl0c0ljRUVOU185YWxsb2NhdG9ySWNFRUVFMF9OU18xM2Jh
c2ljX2lzdHJlYW1JY1MyX0VFIC1XbCwtdW5leHBvcnRlZF9zeW1ib2wgLVdsLF9fWlRDTlN0M19f
MTE4YmFzaWNfc3RyaW5nc3RyZWFtSWNOU18xMWNoYXJfdHJhaXRzSWNFRU5TXzlhbGxvY2F0b3JJ
Y0VFRUUwX05TXzE0YmFzaWNfaW9zdHJlYW1JY1MyX0VFIC1XbCwtdW5leHBvcnRlZF9zeW1ib2wg
LVdsLF9fWlRDTlN0M19fMTE4YmFzaWNfc3RyaW5nc3RyZWFtSWNOU18xMWNoYXJfdHJhaXRzSWNF
RU5TXzlhbGxvY2F0b3JJY0VFRUUxNl9OU18xM2Jhc2ljX29zdHJlYW1JY1MyX0VFIC1XbCwtdW5l
eHBvcnRlZF9zeW1ib2wgLVdsLF9fWlRUTlN0M19fMTE4YmFzaWNfc3RyaW5nc3RyZWFtSWNOU18x
MWNoYXJfdHJhaXRzSWNFRU5TXzlhbGxvY2F0b3JJY0VFRUUgLVdsLC11bmV4cG9ydGVkX3N5bWJv
bCAtV2wsX19aVFZOU3QzX18xMTViYXNpY19zdHJpbmdidWZJY05TXzExY2hhcl90cmFpdHNJY0VF
TlNfOWFsbG9jYXRvckljRUVFRSAtV2wsLXVuZXhwb3J0ZWRfc3ltYm9sIC1XbCxfX1pUVk5TdDNf
XzExOGJhc2ljX3N0cmluZ3N0cmVhbUljTlNfMTFjaGFyX3RyYWl0c0ljRUVOU185YWxsb2NhdG9y
SWNFRUVFIC1XbCwtdW5leHBvcnRlZF9zeW1ib2wgLVdsLF9fWlRDTlN0M19fMTE4YmFzaWNfc3Ry
aW5nc3RyZWFtSWNOU18xMWNoYXJfdHJhaXRzSWNFRU5TXzlhbGxvY2F0b3JJY0VFRUU4X05TXzEz
YmFzaWNfb3N0cmVhbUljUzJfRUU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1BsYXRmb3Jt
L3NwaS9Db2NvYS9BcHBsZVB1c2hTZXJ2aWNlU1BJLmggYi9Tb3VyY2UvV2ViS2l0L1BsYXRmb3Jt
L3NwaS9Db2NvYS9BcHBsZVB1c2hTZXJ2aWNlU1BJLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNTVmNmFkNmY2MzY5
M2VlMTBiMWFhY2Q0MzFkOWU0NzFjZWFkODYyMwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9X
ZWJLaXQvUGxhdGZvcm0vc3BpL0NvY29hL0FwcGxlUHVzaFNlcnZpY2VTUEkuaApAQCAtMCwwICsx
LDEwMiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMiBBcHBsZSBJbmMuIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJp
bmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0
ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6Cisg
KiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3Zl
IGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBm
b3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUK
KyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRo
IHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBB
UFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBS
RVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
CisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVT
UyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVO
VCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1Ig
QU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IK
KyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
IFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9G
IFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9X
RVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisg
KiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VO
Q0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9G
IFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9G
IFNVQ0ggREFNQUdFLgorICovCisKKyNpZiBVU0UoQVBQTEVfSU5URVJOQUxfU0RLKQorCisjaW1w
b3J0IDxBcHBsZVB1c2hTZXJ2aWNlL0FwcGxlUHVzaFNlcnZpY2UuaD4KKworI2Vsc2UgLy8gaWYg
IVVTRShBUFBMRV9JTlRFUk5BTF9TREspCisKKyNpbXBvcnQgPEZvdW5kYXRpb24vRm91bmRhdGlv
bi5oPgorCitOU19BU1NVTUVfTk9OTlVMTF9CRUdJTgorCitXVEZfRVhURVJOX0NfQkVHSU4KK2V4
dGVybiBOU1N0cmluZyAqY29uc3QgQVBTRW52aXJvbm1lbnRQcm9kdWN0aW9uOworCit0eXBlZGVm
IE5TX0VOVU0oTlNJbnRlZ2VyLCBBUFNVUkxUb2tlbkVycm9yQ29kZSkgeworICAgIEFQU1VSTFRv
a2VuRXJyb3JDb2RlSW52YWxpZEFyZ3VtZW50cyA9IDEwMCwKKyAgICBBUFNVUkxUb2tlbkVycm9y
Q29kZVhQQ0Vycm9yID0gMTAxLAorICAgIEFQU1VSTFRva2VuRXJyb3JDb2RlVG9waWNTYWx0aW5n
RmFpbGVkID0gMTAyLAorICAgIEFQU1VSTFRva2VuRXJyb3JDb2RlVG9waWNBbHJlYWR5SW5GaWx0
ZXIgPSAxMDMsCit9OworV1RGX0VYVEVSTl9DX0VORAorCitAY2xhc3MgQVBTQ29ubmVjdGlvbjsK
K0Bwcm90b2NvbCBBUFNDb25uZWN0aW9uRGVsZWdhdGU7CisKK0BpbnRlcmZhY2UgQVBTTWVzc2Fn
ZSA6IE5TT2JqZWN0PE5TQ29kaW5nPgorQHByb3BlcnR5IChub25hdG9taWMsIHJldGFpbikgTlNT
dHJpbmcgKnRvcGljOworQHByb3BlcnR5IChub25hdG9taWMsIHJldGFpbikgTlNEaWN0aW9uYXJ5
ICp1c2VySW5mbzsKK0Bwcm9wZXJ0eSAobm9uYXRvbWljLCBhc3NpZ24pIE5TVUludGVnZXIgaWRl
bnRpZmllcjsKK0BlbmQKKworQGludGVyZmFjZSBBUFNJbmNvbWluZ01lc3NhZ2UgOiBBUFNNZXNz
YWdlCitAZW5kCisKKyNpZiBIQVZFKEFQUExFX1BVU0hfU0VSVklDRV9VUkxfVE9LRU5fU1VQUE9S
VCkKKworQGludGVyZmFjZSBBUFNVUkxUb2tlbiA6IE5TT2JqZWN0PE5TU2VjdXJlQ29kaW5nLCBO
U0NvcHlpbmc+CitAcHJvcGVydHkgKG5vbmF0b21pYywgc3Ryb25nKSBOU1N0cmluZyAqdG9rZW5V
Ukw7CitAZW5kCisKK0BpbnRlcmZhY2UgQVBTVVJMVG9rZW5JbmZvIDogTlNPYmplY3Q8TlNTZWN1
cmVDb2RpbmcsIE5TQ29weWluZz4KKy0gKGluc3RhbmNldHlwZSlpbml0V2l0aFRvcGljOihOU1N0
cmluZyAqKXRvcGljIHZhcGlkUHVibGljS2V5OihudWxsYWJsZSBOU0RhdGEgKil2YXBpZFB1Ymxp
Y0tleTsKK0BlbmQKKwordHlwZWRlZiB2b2lkKF5BUFNDb25uZWN0aW9uUmVxdWVzdFVSTFRva2Vu
Q29tcGxldGlvbikoQVBTVVJMVG9rZW4gKiBfX251bGxhYmxlIHRva2VuLCBOU0Vycm9yICogX19u
dWxsYWJsZSBlcnJvcik7Cit0eXBlZGVmIHZvaWQoXkFQU0Nvbm5lY3Rpb25JbnZhbGlkYXRlVVJM
VG9rZW5Db21wbGV0aW9uKShCT09MIHN1Y2Nlc3MsIE5TRXJyb3IgKiBfX251bGxhYmxlIGVycm9y
KTsKKworI2VuZGlmIC8vIEhBVkUoQVBQTEVfUFVTSF9TRVJWSUNFX1VSTF9UT0tFTl9TVVBQT1JU
KQorCitAaW50ZXJmYWNlIEFQU0Nvbm5lY3Rpb24gOiBOU09iamVjdAorCistIChpbnN0YW5jZXR5
cGUpaW5pdFdpdGhFbnZpcm9ubWVudE5hbWU6KE5TU3RyaW5nICopZW52aXJvbm1lbnROYW1lIG5h
bWVkRGVsZWdhdGVQb3J0OihudWxsYWJsZSBOU1N0cmluZyAqKW5hbWVkRGVsZWdhdGVQb3J0IHF1
ZXVlOihkaXNwYXRjaF9xdWV1ZV90KXF1ZXVlOworCisjaWYgSEFWRShBUFBMRV9QVVNIX1NFUlZJ
Q0VfVVJMX1RPS0VOX1NVUFBPUlQpCistICh2b2lkKXJlcXVlc3RVUkxUb2tlbkZvckluZm86KEFQ
U1VSTFRva2VuSW5mbyAqKWluZm8gY29tcGxldGlvbjooQVBTQ29ubmVjdGlvblJlcXVlc3RVUkxU
b2tlbkNvbXBsZXRpb24pY29tcGxldGlvbjsKKy0gKHZvaWQpaW52YWxpZGF0ZVVSTFRva2VuRm9y
SW5mbzooQVBTVVJMVG9rZW5JbmZvICopaW5mbyBjb21wbGV0aW9uOihBUFNDb25uZWN0aW9uSW52
YWxpZGF0ZVVSTFRva2VuQ29tcGxldGlvbiljb21wbGV0aW9uOworI2VuZGlmIC8vIEhBVkUoQVBQ
TEVfUFVTSF9TRVJWSUNFX1VSTF9UT0tFTl9TVVBQT1JUKQorCitAcHJvcGVydHkgKG5vbmF0b21p
YywgcmVhZHdyaXRlLCBhc3NpZ24sIG51bGxhYmxlKSBpZDxBUFNDb25uZWN0aW9uRGVsZWdhdGU+
IGRlbGVnYXRlOworCitAcHJvcGVydHkgKG5vbmF0b21pYywgcmVhZHdyaXRlLCBzdHJvbmcsIHNl
dHRlcj1fc2V0RW5hYmxlZFRvcGljczosIG51bGxhYmxlKSBOU0FycmF5PE5TU3RyaW5nICo+ICpl
bmFibGVkVG9waWNzOworQHByb3BlcnR5IChub25hdG9taWMsIHJlYWR3cml0ZSwgc3Ryb25nLCBz
ZXR0ZXI9X3NldElnbm9yZWRUb3BpY3M6LCBudWxsYWJsZSkgTlNBcnJheTxOU1N0cmluZyAqPiAq
aWdub3JlZFRvcGljczsKK0Bwcm9wZXJ0eSAobm9uYXRvbWljLCByZWFkd3JpdGUsIHN0cm9uZywg
c2V0dGVyPV9zZXRPcHBvcnR1bmlzdGljVG9waWNzOiwgbnVsbGFibGUpIE5TQXJyYXk8TlNTdHJp
bmcgKj4gKm9wcG9ydHVuaXN0aWNUb3BpY3M7CitAcHJvcGVydHkgKG5vbmF0b21pYywgcmVhZHdy
aXRlLCBzdHJvbmcsIHNldHRlcj1fc2V0Tm9uV2FraW5nVG9waWNzOiwgbnVsbGFibGUpIE5TQXJy
YXk8TlNTdHJpbmcgKj4gKm5vbldha2luZ1RvcGljczsKKworLSAodm9pZClzZXRFbmFibGVkVG9w
aWNzOihOU0FycmF5PE5TU3RyaW5nICo+ICopZW5hYmxlZFRvcGljcyBpZ25vcmVkVG9waWNzOihO
U0FycmF5PE5TU3RyaW5nICo+ICopaWdub3JlZFRvcGljcyBvcHBvcnR1bmlzdGljVG9waWNzOihO
U0FycmF5PE5TU3RyaW5nICo+ICopb3Bwb3J0dW5pc3RpY1RvcGljcyBub25XYWtpbmdUb3BpY3M6
KE5TQXJyYXk8TlNTdHJpbmcgKj4gKilub25XYWtpbmdUb3BpY3M7CisKK0BlbmQKKworQHByb3Rv
Y29sIEFQU0Nvbm5lY3Rpb25EZWxlZ2F0ZTxOU09iamVjdD4KKy0gKHZvaWQpY29ubmVjdGlvbjoo
QVBTQ29ubmVjdGlvbiAqKWNvbm5lY3Rpb24gZGlkUmVjZWl2ZVB1YmxpY1Rva2VuOihOU0RhdGEg
KilwdWJsaWNUb2tlbjsKK0BvcHRpb25hbAorLSAodm9pZCljb25uZWN0aW9uOihBUFNDb25uZWN0
aW9uICopY29ubmVjdGlvbiBkaWRSZWNlaXZlSW5jb21pbmdNZXNzYWdlOihBUFNJbmNvbWluZ01l
c3NhZ2UgKiltZXNzYWdlOworQGVuZAorCitOU19BU1NVTUVfTk9OTlVMTF9FTkQKKworI2VuZGlm
IC8vICFVU0UoQVBQTEVfSU5URVJOQUxfU0RLKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9X
ZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1NvdXJjZS9XZWJLaXQvV2ViS2l0Lnhj
b2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggNzc5MTE4YmQyZjNlMDMyY2E4N2MwNzRkMmU2
YjBkYmU1NDliNjdlYi4uYmI5YmUyYzBmZjE1ODczNDY5MWJhYzEyYTk2ZGY0OGI4NjdjNWIxMiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJv
agorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBA
IC0xOTk1LDYgKzE5OTUsMTMgQEAKIAkJRTVDQkE3NjcyN0EzMThFMTAwREY3ODU4IC8qIFVuaWZp
ZWRTb3VyY2UxMTkuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gRTVDQkE3NjAyN0EzMTg3OTAwREY3ODU4IC8qIFVuaWZpZWRTb3VyY2UxMTkuY3BwICov
OyB9OwogCQlFNUNCQTc2ODI3QTMxOEUxMDBERjc4NTggLyogVW5pZmllZFNvdXJjZTExNy5jcHAg
aW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFNUNCQTc2MjI3
QTMxODc5MDBERjc4NTggLyogVW5pZmllZFNvdXJjZTExNy5jcHAgKi87IH07CiAJCUU1REVGQTY4
MjZGOEY0MjYwMEFCNjhEQiAvKiBQaG90b3NVSVNQSS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTVERUZBNjcyNkY4RjQyNjAwQUI2OERCIC8qIFBob3Rv
c1VJU1BJLmggKi87IH07CisJCUVCQThEM0FCMjdBNUUzMTMwMENCNzkwMCAvKiBBcHBsZVB1c2hT
ZXJ2aWNlU1BJLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSBFQkE4RDNBQTI3QTVFMzEzMDBDQjc5MDAgLyogQXBwbGVQdXNoU2VydmljZVNQSS5oICovOyB9
OworCQlFQkE4RDNCMjI3QTVFMzNGMDBDQjc5MDAgLyogQXBwbGVQdXNoU2VydmljZUNvbm5lY3Rp
b24ubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFQkE4
RDNBQzI3QTVFMzNFMDBDQjc5MDAgLyogQXBwbGVQdXNoU2VydmljZUNvbm5lY3Rpb24ubW0gKi87
IH07CisJCUVCQThEM0IzMjdBNUUzM0YwMENCNzkwMCAvKiBNb2NrUHVzaFNlcnZpY2VDb25uZWN0
aW9uLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFQkE4
RDNBRDI3QTVFMzNFMDBDQjc5MDAgLyogTW9ja1B1c2hTZXJ2aWNlQ29ubmVjdGlvbi5oICovOyB9
OworCQlFQkE4RDNCNDI3QTVFMzNGMDBDQjc5MDAgLyogQXBwbGVQdXNoU2VydmljZUNvbm5lY3Rp
b24uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEVCQThE
M0FFMjdBNUUzM0YwMENCNzkwMCAvKiBBcHBsZVB1c2hTZXJ2aWNlQ29ubmVjdGlvbi5oICovOyB9
OworCQlFQkE4RDNCNTI3QTVFMzNGMDBDQjc5MDAgLyogUHVzaFNlcnZpY2VDb25uZWN0aW9uLmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFQkE4RDNBRjI3
QTVFMzNGMDBDQjc5MDAgLyogUHVzaFNlcnZpY2VDb25uZWN0aW9uLmggKi87IH07CisJCUVCQThE
M0I2MjdBNUUzM0YwMENCNzkwMCAvKiBNb2NrUHVzaFNlcnZpY2VDb25uZWN0aW9uLm1tIGluIFNv
dXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRUJBOEQzQjAyN0E1RTMz
RjAwQ0I3OTAwIC8qIE1vY2tQdXNoU2VydmljZUNvbm5lY3Rpb24ubW0gKi87IH07CisJCUVCQThE
M0I3MjdBNUUzM0YwMENCNzkwMCAvKiBQdXNoU2VydmljZUNvbm5lY3Rpb24ubW0gaW4gU291cmNl
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFQkE4RDNCMTI3QTVFMzNGMDBD
Qjc5MDAgLyogUHVzaFNlcnZpY2VDb25uZWN0aW9uLm1tICovOyB9OwogCQlFRDgyQTdGMjEyOEM2
RkFGMDA0NDc3QjMgLyogV0tCdW5kbGVQYWdlT3ZlcmxheS5oIGluIEhlYWRlcnMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMUEyMkYwRkYxMjg5RkNEOTAwODVFNzRGIC8qIFdL
QnVuZGxlUGFnZU92ZXJsYXkuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRl
LCApOyB9OyB9OwogCQlGNDA5QkExODFFNkU2NEJDMDA5REEyOEUgLyogV0tEcmFnRGVzdGluYXRp
b25BY3Rpb24uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IEY0MDlCQTE3MUU2RTY0QjMwMDlEQTI4RSAvKiBXS0RyYWdEZXN0aW5hdGlvbkFjdGlvbi5oICov
OyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCUY0Mjk5NTA3
MjcwRTIzNEQwMDMyMjk4QiAvKiBTdHJlYW1NZXNzYWdlUmVjZWl2ZXIuaCBpbiBIZWFkZXJzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY0Mjk5NTA2MjcwRTIzNEMwMDMyMjk4
QiAvKiBTdHJlYW1NZXNzYWdlUmVjZWl2ZXIuaCAqLzsgfTsKQEAgLTY0MzksNiArNjQ0NiwxMyBA
QAogCQlFNURFRkE2NzI2RjhGNDI2MDBBQjY4REIgLyogUGhvdG9zVUlTUEkuaCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBw
YXRoID0gUGhvdG9zVUlTUEkuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRUIwRDMx
MkQyNzVBRTEzMzAwODYzRDhGIC8qIGNvbS5hcHBsZS53ZWJraXQud2VicHVzaGQubWFjLnBsaXN0
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gdGV4dC5wbGlzdC54bWw7IHBhdGggPSBjb20uYXBwbGUud2Via2l0LndlYnB1
c2hkLm1hYy5wbGlzdDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRUIwRDMxMkUyNzVB
RTEzMzAwODYzRDhGIC8qIGNvbS5hcHBsZS53ZWJraXQud2VicHVzaGQuaW9zLnBsaXN0ICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gdGV4dC5wbGlzdC54bWw7IHBhdGggPSBjb20uYXBwbGUud2Via2l0LndlYnB1c2hkLmlv
cy5wbGlzdDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRUJBOEQzQUEyN0E1RTMxMzAw
Q0I3OTAwIC8qIEFwcGxlUHVzaFNlcnZpY2VTUEkuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5o
OyBwYXRoID0gQXBwbGVQdXNoU2VydmljZVNQSS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OworCQlFQkE4RDNBQzI3QTVFMzNFMDBDQjc5MDAgLyogQXBwbGVQdXNoU2VydmljZUNvbm5lY3Rp
b24ubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBBcHBsZVB1c2hT
ZXJ2aWNlQ29ubmVjdGlvbi5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRUJBOEQz
QUQyN0E1RTMzRTAwQ0I3OTAwIC8qIE1vY2tQdXNoU2VydmljZUNvbm5lY3Rpb24uaCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gTW9ja1B1c2hTZXJ2aWNlQ29ubmVjdGlvbi5oOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlFQkE4RDNBRTI3QTVFMzNGMDBDQjc5MDAgLyog
QXBwbGVQdXNoU2VydmljZUNvbm5lY3Rpb24uaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBw
YXRoID0gQXBwbGVQdXNoU2VydmljZUNvbm5lY3Rpb24uaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKKwkJRUJBOEQzQUYyN0E1RTMzRjAwQ0I3OTAwIC8qIFB1c2hTZXJ2aWNlQ29ubmVjdGlv
bi5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBQdXNoU2VydmljZUNvbm5lY3Rp
b24uaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRUJBOEQzQjAyN0E1RTMzRjAwQ0I3
OTAwIC8qIE1vY2tQdXNoU2VydmljZUNvbm5lY3Rpb24ubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmNwcC5vYmpjcHA7IHBhdGggPSBNb2NrUHVzaFNlcnZpY2VDb25uZWN0aW9uLm1tOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OworCQlFQkE4RDNCMTI3QTVFMzNGMDBDQjc5MDAgLyogUHVzaFNl
cnZpY2VDb25uZWN0aW9uLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRo
ID0gUHVzaFNlcnZpY2VDb25uZWN0aW9uLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owog
CQlFQ0E2ODBEMzFFNjkwNEI1MDA3MzFEMjAgLyogRXh0cmFQcml2YXRlU3ltYm9sc0ZvclRBUEku
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gRXh0cmFQcml2YXRlU3ltYm9sc0Zv
clRBUEkuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRUNCRkMxREIxRTZBNEQ2NjAw
MDMwMEM3IC8qIEV4dHJhUHVibGljU3ltYm9sc0ZvclRBUEkuaCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gRXh0
cmFQdWJsaWNTeW1ib2xzRm9yVEFQSS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlG
MDM2OTc4NzE1RjRCRjA1MDBDM0E4MEUgLyogV2ViQ29sb3JQaWNrZXIuY3BwICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gV2ViQ29sb3JQaWNrZXIuY3BwOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwpAQCAtODYzNCw2ICs4NjQ4LDcgQEAKIAkJCQk1NzJFQkJEQzI1Mzky
MTgxMDAwNTUyQjMgLyogQXBwQXR0ZXN0U1BJLmggKi8sCiAJCQkJOTU2NTA4MzcyNkQ4N0EyQjAw
RTE1Q0I3IC8qIEFwcGxlTWVkaWFTZXJ2aWNlc1NQSS5oICovLAogCQkJCTk1NjUwODM4MjZEODdB
MkIwMEUxNUNCNyAvKiBBcHBsZU1lZGlhU2VydmljZXNVSVNQSS5oICovLAorCQkJCUVCQThEM0FB
MjdBNUUzMTMwMENCNzkwMCAvKiBBcHBsZVB1c2hTZXJ2aWNlU1BJLmggKi8sCiAJCQkJNTdGQUJC
MEUyNTgxN0NGMDAwNTlEQzk1IC8qIEF1dGhlbnRpY2F0aW9uU2VydmljZXNDb3JlU1BJLmggKi8s
CiAJCQkJMUE1NzA1MTAxQkU0MTBFNTAwODc0QUYxIC8qIEJsb2NrU1BJLmggKi8sCiAJCQkJRTUw
NjIwOTEyNTQyMTAyMDAwQzQzMDkxIC8qIENvbnRhY3RzVUlTUEkuaCAqLywKQEAgLTEwMDQ0LDE2
ICsxMDA1OSwyMiBAQAogCQkJCTUxN0I1RjYzMjc1QThENUMwMDJEQzIyRCAvKiB3ZWJwdXNodG9v
bCAqLywKIAkJCQk1MTYwRTk1NDI3NEI4ODcxMDA1NjczODggLyogQXBwQnVuZGxlUmVxdWVzdC5o
ICovLAogCQkJCTUxNjBFOTUzMjc0Qjg4NzEwMDU2NzM4OCAvKiBBcHBCdW5kbGVSZXF1ZXN0Lm1t
ICovLAorCQkJCUVCQThEM0FFMjdBNUUzM0YwMENCNzkwMCAvKiBBcHBsZVB1c2hTZXJ2aWNlQ29u
bmVjdGlvbi5oICovLAorCQkJCUVCQThEM0FDMjdBNUUzM0UwMENCNzkwMCAvKiBBcHBsZVB1c2hT
ZXJ2aWNlQ29ubmVjdGlvbi5tbSAqLywKIAkJCQlFQjBEMzEyRTI3NUFFMTMzMDA4NjNEOEYgLyog
Y29tLmFwcGxlLndlYmtpdC53ZWJwdXNoZC5pb3MucGxpc3QgKi8sCiAJCQkJRUIwRDMxMkQyNzVB
RTEzMzAwODYzRDhGIC8qIGNvbS5hcHBsZS53ZWJraXQud2VicHVzaGQubWFjLnBsaXN0ICovLAog
CQkJCTUxRjdCQjc1Mjc0NDk4QkIwMEM0NUE3MiAvKiBNb2NrQXBwQnVuZGxlRm9yVGVzdGluZy5o
ICovLAogCQkJCTUxRjdCQjc0Mjc0NDk4QkEwMEM0NUE3MiAvKiBNb2NrQXBwQnVuZGxlRm9yVGVz
dGluZy5tbSAqLywKIAkJCQk1MTYwRTk1QzI3NEMyQTAzMDA1NjczODggLyogTW9ja0FwcEJ1bmRs
ZVJlZ2lzdHJ5LmggKi8sCiAJCQkJNTE2MEU5NUYyNzRDMkEzRjAwNTY3Mzg4IC8qIE1vY2tBcHBC
dW5kbGVSZWdpc3RyeS5tbSAqLywKKwkJCQlFQkE4RDNBRDI3QTVFMzNFMDBDQjc5MDAgLyogTW9j
a1B1c2hTZXJ2aWNlQ29ubmVjdGlvbi5oICovLAorCQkJCUVCQThEM0IwMjdBNUUzM0YwMENCNzkw
MCAvKiBNb2NrUHVzaFNlcnZpY2VDb25uZWN0aW9uLm1tICovLAogCQkJCTUxNjBFOTU3Mjc0QzBE
ODgwMDU2NzM4OCAvKiBQdXNoQXBwQnVuZGxlLmggKi8sCiAJCQkJNTE2MEU5NTgyNzRDMEQ4ODAw
NTY3Mzg4IC8qIFB1c2hBcHBCdW5kbGUubW0gKi8sCiAJCQkJNTFGN0JCNzkyNzQ0QzUwNzAwQzQ1
QTcyIC8qIFB1c2hDbGllbnRDb25uZWN0aW9uLmggKi8sCiAJCQkJNTFGN0JCN0EyNzQ0QzUwNzAw
QzQ1QTcyIC8qIFB1c2hDbGllbnRDb25uZWN0aW9uLm1tICovLAorCQkJCUVCQThEM0FGMjdBNUUz
M0YwMENCNzkwMCAvKiBQdXNoU2VydmljZUNvbm5lY3Rpb24uaCAqLywKKwkJCQlFQkE4RDNCMTI3
QTVFMzNGMDBDQjc5MDAgLyogUHVzaFNlcnZpY2VDb25uZWN0aW9uLm1tICovLAogCQkJCTUxN0I1
Rjc3Mjc1RTk3OTUwMDJEQzIyRCAvKiB3ZWJwdXNoZC5jcHAgKi8sCiAJCQkJNTEyQ0Q2OUQyNzIz
MzkzQTAwRjdGOEVDIC8qIFdlYlB1c2hEYWVtb24uaCAqLywKIAkJCQk1MTJDRDY5RTI3MjMzOTNB
MDBGN0Y4RUMgLyogV2ViUHVzaERhZW1vbi5tbSAqLywKQEAgLTEyODY1LDYgKzEyODg2LDggQEAK
IAkJCQlGNDhEMkE4NTIxNTgzQTdFMDBDNjc1MkIgLyogQXBwS2l0U1BJLmggaW4gSGVhZGVycyAq
LywKIAkJCQk5NTY1MDgzOTI2RDg3QTJCMDBFMTVDQjcgLyogQXBwbGVNZWRpYVNlcnZpY2VzU1BJ
LmggaW4gSGVhZGVycyAqLywKIAkJCQk5NTY1MDgzQTI2RDg3QTJCMDBFMTVDQjcgLyogQXBwbGVN
ZWRpYVNlcnZpY2VzVUlTUEkuaCBpbiBIZWFkZXJzICovLAorCQkJCUVCQThEM0I0MjdBNUUzM0Yw
MENCNzkwMCAvKiBBcHBsZVB1c2hTZXJ2aWNlQ29ubmVjdGlvbi5oIGluIEhlYWRlcnMgKi8sCisJ
CQkJRUJBOEQzQUIyN0E1RTMxMzAwQ0I3OTAwIC8qIEFwcGxlUHVzaFNlcnZpY2VTUEkuaCBpbiBI
ZWFkZXJzICovLAogCQkJCUY0RUM5NEUzMjM1NkNDNTcwMDBCQjYxNCAvKiBBcHBsaWNhdGlvblNl
cnZpY2VzU1BJLmggaW4gSGVhZGVycyAqLywKIAkJCQkxQUQ0QzE5MzFCMzlGMzMyMDBBQkMyOEUg
LyogQXBwbGljYXRpb25TdGF0ZVRyYWNrZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCTQ5MzEwMkJE
MjY4M0YzRDAwMDJCQjg4NSAvKiBBcHBQcml2YWN5UmVwb3J0LmggaW4gSGVhZGVycyAqLywKQEAg
LTEzMDgyLDYgKzEzMTA1LDcgQEAKIAkJCQk1N0RDRURDNzIxNEYxODMwMDAxNkI4NDcgLyogTW9j
a0xvY2FsQ29ubmVjdGlvbi5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNTdEQ0VEQzMyMTRGMTE0QzAw
MTZCODQ3IC8qIE1vY2tMb2NhbFNlcnZpY2UuaCBpbiBIZWFkZXJzICovLAogCQkJCTU3QjgyNjRD
MjMwNjAzQzEwMEI3MkVCMCAvKiBNb2NrTmZjU2VydmljZS5oIGluIEhlYWRlcnMgKi8sCisJCQkJ
RUJBOEQzQjMyN0E1RTMzRjAwQ0I3OTAwIC8qIE1vY2tQdXNoU2VydmljZUNvbm5lY3Rpb24uaCBp
biBIZWFkZXJzICovLAogCQkJCTcxMzdCQTgwMjVGMTU0MjAwMDkxNEVFMyAvKiBNb2RlbEVsZW1l
bnRDb250cm9sbGVyLmggaW4gSGVhZGVycyAqLywKIAkJCQlDMEUzQUE3QzEyMDlFODNDMDBBNDlE
MDEgLyogTW9kdWxlLmggaW4gSGVhZGVycyAqLywKIAkJCQkyRDUwMzY2QjFCQ0RFMTc5MDBFMjBC
QjMgLyogTmF0aXZlV2ViR2VzdHVyZUV2ZW50LmggaW4gSGVhZGVycyAqLywKQEAgLTEzMjAyLDYg
KzEzMjI2LDcgQEAKIAkJCQk1MTdCNUY4MTI3NUU5N0I2MDAyREMyMkQgLyogUHVzaEFwcEJ1bmRs
ZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNTE3QjVGN0QyNzVFOTdCNjAwMkRDMjJEIC8qIFB1c2hD
bGllbnRDb25uZWN0aW9uLmggaW4gSGVhZGVycyAqLywKIAkJCQk1MTdCNUY5NTI3NUVCQTYzMDAy
REMyMkQgLyogUHVzaE1lc3NhZ2VGb3JUZXN0aW5nLmggaW4gSGVhZGVycyAqLywKKwkJCQlFQkE4
RDNCNTI3QTVFMzNGMDBDQjc5MDAgLyogUHVzaFNlcnZpY2VDb25uZWN0aW9uLmggaW4gSGVhZGVy
cyAqLywKIAkJCQlBMUU2ODg3MDFGNkUyQkFCMDA3MDA2QTYgLyogUXVhcmFudGluZVNQSS5oIGlu
IEhlYWRlcnMgKi8sCiAJCQkJMUEwQzIyN0UyNDUxMTMwQTAwRUQ2MTREIC8qIFF1aWNrTG9va1Ro
dW1ibmFpbGluZ1NvZnRMaW5rLmggaW4gSGVhZGVycyAqLywKIAkJCQkxQUVFNTcyNTI0MDlGMTQy
MDAyMDA1RDYgLyogUXVpY2tMb29rVGh1bWJuYWlsTG9hZGVyLmggaW4gSGVhZGVycyAqLywKQEAg
LTE1Mzk1LDYgKzE1NDIwLDcgQEAKIAkJCQk5OUU3MTg5QTIxRjc5RDlFMDA1NUU5NzUgLyogX1dL
VG91Y2hFdmVudEdlbmVyYXRvci5tbSBpbiBTb3VyY2VzICovLAogCQkJCTU3MkVCQkRBMjUzOEY2
QjQwMDA1NTJCMyAvKiBBcHBBdHRlc3RJbnRlcm5hbFNvZnRMaW5rLm1tIGluIFNvdXJjZXMgKi8s
CiAJCQkJNTE3QjVGN0UyNzVFOTdCNjAwMkRDMjJEIC8qIEFwcEJ1bmRsZVJlcXVlc3QubW0gaW4g
U291cmNlcyAqLywKKwkJCQlFQkE4RDNCMjI3QTVFMzNGMDBDQjc5MDAgLyogQXBwbGVQdXNoU2Vy
dmljZUNvbm5lY3Rpb24ubW0gaW4gU291cmNlcyAqLywKIAkJCQkyREVCMUQyRTIxMjc0NzM2MDA5
MzM5MDYgLyogQXJndW1lbnRDb2RlcnNDRi5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlDRDQ1NzBE
NDI0NDExRDBGMDBBM0RDRUIgLyogQXVkaW9TZXNzaW9uUm91dGluZ0FyYml0cmF0b3IuY3BwIGlu
IFNvdXJjZXMgKi8sCiAJCQkJQ0Q0NTcwRDMyNDQxMTNCNTAwQTNEQ0VCIC8qIEF1ZGlvU2Vzc2lv
blJvdXRpbmdBcmJpdHJhdG9yUHJveHlNZXNzYWdlUmVjZWl2ZXIuY3BwIGluIFNvdXJjZXMgKi8s
CkBAIC0xNTQyOCw2ICsxNTQ1NCw3IEBACiAJCQkJOUI0NzkwOTEyNTMxNTYzMjAwRUMxMUFCIC8q
IE1lc3NhZ2VBcmd1bWVudERlc2NyaXB0aW9ucy5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk1MTdC
NUY4NDI3NUU5N0I2MDAyREMyMkQgLyogTW9ja0FwcEJ1bmRsZUZvclRlc3RpbmcubW0gaW4gU291
cmNlcyAqLywKIAkJCQk1MTdCNUY4NjI3NUU5N0I2MDAyREMyMkQgLyogTW9ja0FwcEJ1bmRsZVJl
Z2lzdHJ5Lm1tIGluIFNvdXJjZXMgKi8sCisJCQkJRUJBOEQzQjYyN0E1RTMzRjAwQ0I3OTAwIC8q
IE1vY2tQdXNoU2VydmljZUNvbm5lY3Rpb24ubW0gaW4gU291cmNlcyAqLywKIAkJCQk1N0I4MjY0
NTIzMDRGMTQwMDBCNzJFQjAgLyogTmVhckZpZWxkU29mdExpbmsubW0gaW4gU291cmNlcyAqLywK
IAkJCQlDMUMxQjMwRjI1NDBGNTBEMDBEOTEwMEIgLyogTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlBy
b2Nlc3NNYWMubW0gaW4gU291cmNlcyAqLywKIAkJCQk1MUREOUYyODE2MzY3REEyMDAxNTc4RTkg
LyogTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3NNZXNzYWdlUmVjZWl2ZXIuY3BwIGluIFNv
dXJjZXMgKi8sCkBAIC0xNTQ1Myw2ICsxNTQ4MCw3IEBACiAJCQkJMkQ1NEMzMUIyMTJGNERBNjAw
NDlDMTc0IC8qIFByb2Nlc3NMYXVuY2hlci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk1MTdCNUY4
MjI3NUU5N0I2MDAyREMyMkQgLyogUHVzaEFwcEJ1bmRsZS5tbSBpbiBTb3VyY2VzICovLAogCQkJ
CTUxN0I1RjdCMjc1RTk3QTkwMDJEQzIyRCAvKiBQdXNoQ2xpZW50Q29ubmVjdGlvbi5tbSBpbiBT
b3VyY2VzICovLAorCQkJCUVCQThEM0I3MjdBNUUzM0YwMENCNzkwMCAvKiBQdXNoU2VydmljZUNv
bm5lY3Rpb24ubW0gaW4gU291cmNlcyAqLywKIAkJCQkxQTBDMjI3RjI0NTExMzBBMDBFRDYxNEQg
LyogUXVpY2tMb29rVGh1bWJuYWlsaW5nU29mdExpbmsubW0gaW4gU291cmNlcyAqLywKIAkJCQkx
QTBDMjI1RTI0MzU3NUNEMDBFRDYxNEQgLyogUXVpY2tMb29rVGh1bWJuYWlsTG9hZGVyLm1tIGlu
IFNvdXJjZXMgKi8sCiAJCQkJOUIxMjI5Q0UyM0ZGMjVGMjAwOENBNzUxIC8qIFJlbW90ZUF1ZGlv
RGVzdGluYXRpb25NYW5hZ2VyLmNwcCBpbiBTb3VyY2VzICovLApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC93ZWJwdXNoZC9BcHBsZVB1c2hTZXJ2aWNlQ29ubmVjdGlvbi5oIGIvU291cmNlL1dl
YktpdC93ZWJwdXNoZC9BcHBsZVB1c2hTZXJ2aWNlQ29ubmVjdGlvbi5oCm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjg3
NDdlNzVkNjE4NTUwMGZmNWE4MGRlYzZkM2FjYTU1ODM1MDM3MWEKLS0tIC9kZXYvbnVsbAorKysg
Yi9Tb3VyY2UvV2ViS2l0L3dlYnB1c2hkL0FwcGxlUHVzaFNlcnZpY2VDb25uZWN0aW9uLmgKQEAg
LTAsMCArMSw2NyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMiBBcHBsZSBJbmMuIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2Ug
YW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBw
ZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBt
ZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhl
IGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJp
bmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBp
biB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRl
ZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURF
RCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFO
WSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQg
RklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBO
TyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJM
RSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFS
WSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBM
T1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElP
TikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVS
IElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5F
R0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUg
VVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklM
SVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisjaWYgSEFWRShBUFBM
RV9QVVNIX1NFUlZJQ0VfVVJMX1RPS0VOX1NVUFBPUlQpCisKKyNpbmNsdWRlICJBcHBsZVB1c2hT
ZXJ2aWNlU1BJLmgiCisjaW5jbHVkZSAiUHVzaFNlcnZpY2VDb25uZWN0aW9uLmgiCisjaW5jbHVk
ZSA8d3RmL0hhc2hNYXAuaD4KKworbmFtZXNwYWNlIFdlYlB1c2hEIHsKKworY2xhc3MgQXBwbGVQ
dXNoU2VydmljZUNvbm5lY3Rpb24gZmluYWwgOiBwdWJsaWMgUHVzaFNlcnZpY2VDb25uZWN0aW9u
IHsKK3B1YmxpYzoKKyAgICBBcHBsZVB1c2hTZXJ2aWNlQ29ubmVjdGlvbihjb25zdCBTdHJpbmcm
IGluY29taW5nUHVzaFNlcnZpY2VOYW1lKTsKKyAgICB+QXBwbGVQdXNoU2VydmljZUNvbm5lY3Rp
b24oKTsKKworICAgIHZvaWQgc3Vic2NyaWJlKGNvbnN0IFN0cmluZyYgdG9waWMsIGNvbnN0IFZl
Y3Rvcjx1aW50OF90PiYgdmFwaWRQdWJsaWNLZXksIFN1YnNjcmliZUhhbmRsZXImJikgZmluYWw7
CisgICAgdm9pZCB1bnN1YnNjcmliZShjb25zdCBTdHJpbmcmIHRvcGljLCBjb25zdCBWZWN0b3I8
dWludDhfdD4mIHZhcGlkUHVibGljS2V5LCBVbnN1YnNjcmliZUhhbmRsZXImJikgZmluYWw7CisK
KyAgICBWZWN0b3I8U3RyaW5nPiBlbmFibGVkVG9waWNzKCkgb3ZlcnJpZGU7CisgICAgVmVjdG9y
PFN0cmluZz4gaWdub3JlZFRvcGljcygpIG92ZXJyaWRlOworICAgIFZlY3RvcjxTdHJpbmc+IG9w
cG9ydHVuaXN0aWNUb3BpY3MoKSBvdmVycmlkZTsKKyAgICBWZWN0b3I8U3RyaW5nPiBub25XYWtp
bmdUb3BpY3MoKSBvdmVycmlkZTsKKworICAgIHZvaWQgc2V0RW5hYmxlZFRvcGljcyhWZWN0b3I8
U3RyaW5nPiYmKSBvdmVycmlkZTsKKyAgICB2b2lkIHNldElnbm9yZWRUb3BpY3MoVmVjdG9yPFN0
cmluZz4mJikgb3ZlcnJpZGU7CisgICAgdm9pZCBzZXRPcHBvcnR1bmlzdGljVG9waWNzKFZlY3Rv
cjxTdHJpbmc+JiYpIG92ZXJyaWRlOworICAgIHZvaWQgc2V0Tm9uV2FraW5nVG9waWNzKFZlY3Rv
cjxTdHJpbmc+JiYpIG92ZXJyaWRlOworCisgICAgdm9pZCBzZXRUb3BpY0xpc3RzKFRvcGljTGlz
dHMmJikgb3ZlcnJpZGU7CisKK3ByaXZhdGU6CisgICAgUmV0YWluUHRyPEFQU0Nvbm5lY3Rpb24+
IG1fY29ubmVjdGlvbjsKKyAgICBSZXRhaW5QdHI8aWQ8QVBTQ29ubmVjdGlvbkRlbGVnYXRlPj4g
bV9kZWxlZ2F0ZTsKKyAgICB1bnNpZ25lZCBtX2hhbmRsZXJJZGVudGlmaWVyIHsgMCB9OworICAg
IEhhc2hNYXA8dW5zaWduZWQsIFN1YnNjcmliZUhhbmRsZXI+IG1fc3Vic2NyaWJlSGFuZGxlcnM7
CisgICAgSGFzaE1hcDx1bnNpZ25lZCwgVW5zdWJzY3JpYmVIYW5kbGVyPiBtX3Vuc3Vic2NyaWJl
SGFuZGxlcnM7Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJQdXNoRAorCisjZW5kaWYgLy8gSEFW
RShBUFBMRV9QVVNIX1NFUlZJQ0VfVVJMX1RPS0VOX1NVUFBPUlQpCisKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvd2VicHVzaGQvQXBwbGVQdXNoU2VydmljZUNvbm5lY3Rpb24ubW0gYi9Tb3Vy
Y2UvV2ViS2l0L3dlYnB1c2hkL0FwcGxlUHVzaFNlcnZpY2VDb25uZWN0aW9uLm1tCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLmVmZjdlYWU1Y2ZmYTg3Nzc4YjY2NjJhYjZiMTU0ZTBkNGE0ZjA3ZDgKLS0tIC9kZXYvbnVs
bAorKysgYi9Tb3VyY2UvV2ViS2l0L3dlYnB1c2hkL0FwcGxlUHVzaFNlcnZpY2VDb25uZWN0aW9u
Lm1tCkBAIC0wLDAgKzEsMTcwIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIyIEFwcGxlIElu
Yy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGlu
IHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlv
biwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwor
ICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJl
dGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlv
bnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxz
IHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElT
IFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisg
KiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklM
SVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlN
RUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICog
QkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwg
RVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VS
VklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5U
RVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFks
IFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNM
VURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VU
IE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUg
UE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2ltcG9ydCAiY29uZmlnLmgiCisj
aW1wb3J0ICJBcHBsZVB1c2hTZXJ2aWNlQ29ubmVjdGlvbi5oIgorCisjaWYgSEFWRShBUFBMRV9Q
VVNIX1NFUlZJQ0VfVVJMX1RPS0VOX1NVUFBPUlQpCisKKyNpbXBvcnQgPHd0Zi9CbG9ja1B0ci5o
PgorI2ltcG9ydCA8d3RmL2NvY29hL1ZlY3RvckNvY29hLmg+CisKK0BpbnRlcmZhY2UgX1dLQVBT
Q29ubmVjdGlvbkRlbGVnYXRlIDogTlNPYmplY3Q8QVBTQ29ubmVjdGlvbkRlbGVnYXRlPiB7Cisg
ICAgV2Vha1B0cjxXZWJQdXNoRDo6QXBwbGVQdXNoU2VydmljZUNvbm5lY3Rpb24+IF9jb25uZWN0
aW9uOworfQorQGVuZAorCitAaW1wbGVtZW50YXRpb24gX1dLQVBTQ29ubmVjdGlvbkRlbGVnYXRl
CisKKy0gKGluc3RhbmNldHlwZSlpbml0V2l0aENvbm5lY3Rpb246KFdlYlB1c2hEOjpBcHBsZVB1
c2hTZXJ2aWNlQ29ubmVjdGlvbiAqKWNvbm5lY3Rpb24KK3sKKyAgICBpZiAoKHNlbGYgPSBbc3Vw
ZXIgaW5pdF0pKQorICAgICAgICBfY29ubmVjdGlvbiA9IGNvbm5lY3Rpb247CisgICAgcmV0dXJu
IHNlbGY7Cit9CisKKy0gKHZvaWQpY29ubmVjdGlvbjooQVBTQ29ubmVjdGlvbiAqKWNvbm5lY3Rp
b24gZGlkUmVjZWl2ZVB1YmxpY1Rva2VuOihOU0RhdGEgKilwdWJsaWNUb2tlbgoreworICAgIFVO
VVNFRF9QQVJBTShjb25uZWN0aW9uKTsKKyAgICBVTlVTRURfUEFSQU0ocHVibGljVG9rZW4pOwor
fQorCistICh2b2lkKWNvbm5lY3Rpb246KEFQU0Nvbm5lY3Rpb24gKiljb25uZWN0aW9uIGRpZFJl
Y2VpdmVJbmNvbWluZ01lc3NhZ2U6KEFQU0luY29taW5nTWVzc2FnZSAqKW1lc3NhZ2UKK3sKKyAg
ICBVTlVTRURfUEFSQU0oY29ubmVjdGlvbik7CisKKyAgICBBU1NFUlQoaXNNYWluUnVuTG9vcCgp
KTsKKworICAgIGlmIChfY29ubmVjdGlvbikKKyAgICAgICAgX2Nvbm5lY3Rpb24tPmRpZFJlY2Vp
dmVQdXNoTWVzc2FnZShtZXNzYWdlLnRvcGljLCBtZXNzYWdlLnVzZXJJbmZvKTsKK30KKworQGVu
ZAorCituYW1lc3BhY2UgV2ViUHVzaEQgeworCitBcHBsZVB1c2hTZXJ2aWNlQ29ubmVjdGlvbjo6
QXBwbGVQdXNoU2VydmljZUNvbm5lY3Rpb24oY29uc3QgU3RyaW5nJiBpbmNvbWluZ1B1c2hTZXJ2
aWNlTmFtZSkKK3sKKyAgICBtX2Nvbm5lY3Rpb24gPSBhZG9wdE5TKFtbQVBTQ29ubmVjdGlvbiBh
bGxvY10gaW5pdFdpdGhFbnZpcm9ubWVudE5hbWU6QVBTRW52aXJvbm1lbnRQcm9kdWN0aW9uIG5h
bWVkRGVsZWdhdGVQb3J0OmluY29taW5nUHVzaFNlcnZpY2VOYW1lIHF1ZXVlOmRpc3BhdGNoX2dl
dF9tYWluX3F1ZXVlKCldKTsKKyAgICBtX2RlbGVnYXRlID0gYWRvcHROUyhbW19XS0FQU0Nvbm5l
Y3Rpb25EZWxlZ2F0ZSBhbGxvY10gaW5pdFdpdGhDb25uZWN0aW9uOnRoaXNdKTsKKyAgICBbbV9j
b25uZWN0aW9uIHNldERlbGVnYXRlOm1fZGVsZWdhdGUuZ2V0KCldOworfQorCitBcHBsZVB1c2hT
ZXJ2aWNlQ29ubmVjdGlvbjo6fkFwcGxlUHVzaFNlcnZpY2VDb25uZWN0aW9uKCkKK3sKKyAgICBb
bV9jb25uZWN0aW9uIHNldERlbGVnYXRlOm5pbF07Cit9CisKK3N0YXRpYyBSZXRhaW5QdHI8QVBT
VVJMVG9rZW5JbmZvPiBtYWtlVG9rZW5JbmZvKGNvbnN0IFN0cmluZyYgdG9waWMsIGNvbnN0IFZl
Y3Rvcjx1aW50OF90PiYgdmFwaWRQdWJsaWNLZXkpCit7CisgICAgYXV0byBzZXJ2ZXJQdWJsaWNL
ZXkgPSBhZG9wdE5TKFtbTlNEYXRhIGFsbG9jXSBpbml0V2l0aEJ5dGVzOnZhcGlkUHVibGljS2V5
LmRhdGEoKSBsZW5ndGg6dmFwaWRQdWJsaWNLZXkuc2l6ZSgpXSk7CisgICAgcmV0dXJuIGFkb3B0
TlMoW1tBUFNVUkxUb2tlbkluZm8gYWxsb2NdIGluaXRXaXRoVG9waWM6dG9waWMgdmFwaWRQdWJs
aWNLZXk6c2VydmVyUHVibGljS2V5LmdldCgpXSk7Cit9CisKK3ZvaWQgQXBwbGVQdXNoU2Vydmlj
ZUNvbm5lY3Rpb246OnN1YnNjcmliZShjb25zdCBTdHJpbmcmIHRvcGljLCBjb25zdCBWZWN0b3I8
dWludDhfdD4mIHZhcGlkUHVibGljS2V5LCBTdWJzY3JpYmVIYW5kbGVyJiYgc3Vic2NyaWJlSGFu
ZGxlcikKK3sKKyAgICBBU1NFUlQoaXNNYWluUnVuTG9vcCgpKTsKKworICAgIC8vIFN0YXNoIHRo
ZSBjb21wbGV0aW9uIGhhbmRsZXIgYXdheSBhbmQgbG9vayBpdCB1cCBieSBpZCBzbyB0aGF0IHdl
IGNhbiBlbnN1cmUgaXQgZ2V0cyBkZXN0cnVjdGVkIG9uIHRoZSBtYWluIHRocmVhZC4gSWYgd2Ug
bW92ZSB0aGUgaGFuZGxlciBhbmQgY2FwdHVyZSBpdCBpbiB0aGUgT2JqLUMgYmxvY2ssIGl0IG1p
Z2h0IGdldCBkZXN0cnVjdGVkIG9uIGEgc2Vjb25kYXJ5IHRocmVhZCBzaW5jZSB0aGlzIGNvbXBs
ZXRpb24gYmxvY2sgbW92ZXMgYmV0d2VlbiBkaWZmZXJlbnQgZGlzcGF0Y2ggcXVldWVzIGluIHRo
ZSBBUFMgaW1wbGVtZW50YXRpb24uCisgICAgYXV0byBpZGVudGlmaWVyID0gKyttX2hhbmRsZXJJ
ZGVudGlmaWVyOworICAgIG1fc3Vic2NyaWJlSGFuZGxlcnMuYWRkKGlkZW50aWZpZXIsIFdURk1v
dmUoc3Vic2NyaWJlSGFuZGxlcikpOworCisgICAgW21fY29ubmVjdGlvbiByZXF1ZXN0VVJMVG9r
ZW5Gb3JJbmZvOm1ha2VUb2tlbkluZm8odG9waWMsIHZhcGlkUHVibGljS2V5KS5nZXQoKSBjb21w
bGV0aW9uOm1ha2VCbG9ja1B0cihbdGhpcywgd2Vha1RoaXMgPSBXZWFrUHRyIHsgKnRoaXMgfSwg
aWRlbnRpZmllcl0gKEFQU1VSTFRva2VuICp0b2tlbiwgTlNFcnJvciAqZXJyb3IpIHsKKyAgICAg
ICAgaWYgKCF3ZWFrVGhpcykKKyAgICAgICAgICAgIHJldHVybjsKKworICAgICAgICBhdXRvIGhh
bmRsZXIgPSBtX3N1YnNjcmliZUhhbmRsZXJzLnRha2UoaWRlbnRpZmllcik7CisgICAgICAgIGhh
bmRsZXIodG9rZW4udG9rZW5VUkwsIGVycm9yKTsKKyAgICB9KS5nZXQoKV07Cit9CisKK3ZvaWQg
QXBwbGVQdXNoU2VydmljZUNvbm5lY3Rpb246OnVuc3Vic2NyaWJlKGNvbnN0IFN0cmluZyYgdG9w
aWMsIGNvbnN0IFZlY3Rvcjx1aW50OF90PiYgdmFwaWRQdWJsaWNLZXksIFVuc3Vic2NyaWJlSGFu
ZGxlciYmIHVuc3Vic2NyaWJlSGFuZGxlcikKK3sKKyAgICBBU1NFUlQoaXNNYWluUnVuTG9vcCgp
KTsKKworICAgIC8vIFNlZSBzdWJzY3JpYmUgZm9yIHdoeSB3ZSBzdGFzaCB0aGUgaGFuZGxlciBp
bnRvIGEgbWFwLgorICAgIGF1dG8gaWRlbnRpZmllciA9ICsrbV9oYW5kbGVySWRlbnRpZmllcjsK
KyAgICBtX3Vuc3Vic2NyaWJlSGFuZGxlcnMuYWRkKGlkZW50aWZpZXIsIFdURk1vdmUodW5zdWJz
Y3JpYmVIYW5kbGVyKSk7CisKKyAgICBbbV9jb25uZWN0aW9uIGludmFsaWRhdGVVUkxUb2tlbkZv
ckluZm86bWFrZVRva2VuSW5mbyh0b3BpYywgdmFwaWRQdWJsaWNLZXkpLmdldCgpIGNvbXBsZXRp
b246bWFrZUJsb2NrUHRyKFt0aGlzLCB3ZWFrVGhpcyA9IFdlYWtQdHIgeyAqdGhpcyB9LCBpZGVu
dGlmaWVyXSAoQk9PTCBzdWNjZXNzLCBOU0Vycm9yICplcnJvcikgeworICAgICAgICBpZiAoIXdl
YWtUaGlzKQorICAgICAgICAgICAgcmV0dXJuOworCisgICAgICAgIC8vIEZJWE1FOiByZW1vdmUg
dGhpcyBvbmNlIEFQUyBzdG9wcyBjYWxsaW5nIGJhY2sgb24gdGhlIHdyb25nIHF1ZXVlIChyZGFy
Oi8vODgxMDAyNzUpLgorICAgICAgICBkaXNwYXRjaF9hc3luYyhkaXNwYXRjaF9nZXRfbWFpbl9x
dWV1ZSgpLCBeeworICAgICAgICAgICAgYXV0byBoYW5kbGVyID0gbV91bnN1YnNjcmliZUhhbmRs
ZXJzLnRha2UoaWRlbnRpZmllcik7CisgICAgICAgICAgICBoYW5kbGVyKHN1Y2Nlc3MsIGVycm9y
KTsKKyAgICAgICAgfSk7CisgICAgfSkuZ2V0KCldOworfQorCitWZWN0b3I8U3RyaW5nPiBBcHBs
ZVB1c2hTZXJ2aWNlQ29ubmVjdGlvbjo6ZW5hYmxlZFRvcGljcygpCit7CisgICAgcmV0dXJuIG1h
a2VWZWN0b3I8U3RyaW5nPihbbV9jb25uZWN0aW9uIGVuYWJsZWRUb3BpY3NdKTsKK30KKworVmVj
dG9yPFN0cmluZz4gQXBwbGVQdXNoU2VydmljZUNvbm5lY3Rpb246Omlnbm9yZWRUb3BpY3MoKQor
eworICAgIHJldHVybiBtYWtlVmVjdG9yPFN0cmluZz4oW21fY29ubmVjdGlvbiBpZ25vcmVkVG9w
aWNzXSk7Cit9CisKK1ZlY3RvcjxTdHJpbmc+IEFwcGxlUHVzaFNlcnZpY2VDb25uZWN0aW9uOjpv
cHBvcnR1bmlzdGljVG9waWNzKCkKK3sKKyAgICByZXR1cm4gbWFrZVZlY3RvcjxTdHJpbmc+KFtt
X2Nvbm5lY3Rpb24gb3Bwb3J0dW5pc3RpY1RvcGljc10pOworfQorCitWZWN0b3I8U3RyaW5nPiBB
cHBsZVB1c2hTZXJ2aWNlQ29ubmVjdGlvbjo6bm9uV2FraW5nVG9waWNzKCkKK3sKKyAgICByZXR1
cm4gbWFrZVZlY3RvcjxTdHJpbmc+KFttX2Nvbm5lY3Rpb24gbm9uV2FraW5nVG9waWNzXSk7Cit9
CisKK3ZvaWQgQXBwbGVQdXNoU2VydmljZUNvbm5lY3Rpb246OnNldEVuYWJsZWRUb3BpY3MoVmVj
dG9yPFN0cmluZz4mJiB0b3BpY3MpCit7CisgICAgW21fY29ubmVjdGlvbiBfc2V0RW5hYmxlZFRv
cGljczpjcmVhdGVOU0FycmF5KFdURk1vdmUodG9waWNzKSkuZ2V0KCldOworfQorCit2b2lkIEFw
cGxlUHVzaFNlcnZpY2VDb25uZWN0aW9uOjpzZXRJZ25vcmVkVG9waWNzKFZlY3RvcjxTdHJpbmc+
JiYgdG9waWNzKQoreworICAgIFttX2Nvbm5lY3Rpb24gX3NldElnbm9yZWRUb3BpY3M6Y3JlYXRl
TlNBcnJheShXVEZNb3ZlKHRvcGljcykpLmdldCgpXTsKK30KKwordm9pZCBBcHBsZVB1c2hTZXJ2
aWNlQ29ubmVjdGlvbjo6c2V0T3Bwb3J0dW5pc3RpY1RvcGljcyhWZWN0b3I8U3RyaW5nPiYmIHRv
cGljcykKK3sKKyAgICBbbV9jb25uZWN0aW9uIF9zZXRPcHBvcnR1bmlzdGljVG9waWNzOmNyZWF0
ZU5TQXJyYXkoV1RGTW92ZSh0b3BpY3MpKS5nZXQoKV07Cit9CisKK3ZvaWQgQXBwbGVQdXNoU2Vy
dmljZUNvbm5lY3Rpb246OnNldE5vbldha2luZ1RvcGljcyhWZWN0b3I8U3RyaW5nPiYmIHRvcGlj
cykKK3sKKyAgICBbbV9jb25uZWN0aW9uIF9zZXROb25XYWtpbmdUb3BpY3M6Y3JlYXRlTlNBcnJh
eShXVEZNb3ZlKHRvcGljcykpLmdldCgpXTsKK30KKwordm9pZCBBcHBsZVB1c2hTZXJ2aWNlQ29u
bmVjdGlvbjo6c2V0VG9waWNMaXN0cyhUb3BpY0xpc3RzJiYgdG9waWNMaXN0cykKK3sKKyAgICBb
bV9jb25uZWN0aW9uIHNldEVuYWJsZWRUb3BpY3M6Y3JlYXRlTlNBcnJheShXVEZNb3ZlKHRvcGlj
TGlzdHMuZW5hYmxlZFRvcGljcykpLmdldCgpIGlnbm9yZWRUb3BpY3M6Y3JlYXRlTlNBcnJheShX
VEZNb3ZlKHRvcGljTGlzdHMuaWdub3JlZFRvcGljcykpLmdldCgpIG9wcG9ydHVuaXN0aWNUb3Bp
Y3M6Y3JlYXRlTlNBcnJheShXVEZNb3ZlKHRvcGljTGlzdHMub3Bwb3J0dW5pc3RpY1RvcGljcykp
LmdldCgpIG5vbldha2luZ1RvcGljczpjcmVhdGVOU0FycmF5KFdURk1vdmUodG9waWNMaXN0cy5u
b25XYWtpbmdUb3BpY3MpKS5nZXQoKV07Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYlB1c2hECisK
KyNlbmRpZiAvLyBIQVZFKEFQUExFX1BVU0hfU0VSVklDRV9VUkxfVE9LRU5fU1VQUE9SVCkKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvd2VicHVzaGQvTW9ja1B1c2hTZXJ2aWNlQ29ubmVjdGlv
bi5oIGIvU291cmNlL1dlYktpdC93ZWJwdXNoZC9Nb2NrUHVzaFNlcnZpY2VDb25uZWN0aW9uLmgK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uNzc2OWJiNmJkZDU4MjhlN2IxNjRjMTY3Yzg0NjBjZmRiZDdjMDQwMAotLS0g
L2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvd2VicHVzaGQvTW9ja1B1c2hTZXJ2aWNlQ29u
bmVjdGlvbi5oCkBAIC0wLDAgKzEsNTMgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjIgQXBw
bGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1
c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZp
Y2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRp
b25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11
c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJp
YnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0
CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRl
cmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdB
UkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElT
JycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFO
VEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElT
Q0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JT
CisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVD
SUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBP
UiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisg
KiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJ
TElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQg
KElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdB
WSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAq
IFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKwor
I2luY2x1ZGUgIlB1c2hTZXJ2aWNlQ29ubmVjdGlvbi5oIgorCituYW1lc3BhY2UgV2ViUHVzaEQg
eworCitjbGFzcyBNb2NrUHVzaFNlcnZpY2VDb25uZWN0aW9uIGZpbmFsIDogcHVibGljIFB1c2hT
ZXJ2aWNlQ29ubmVjdGlvbiB7CitwdWJsaWM6CisgICAgTW9ja1B1c2hTZXJ2aWNlQ29ubmVjdGlv
bigpOworICAgIH5Nb2NrUHVzaFNlcnZpY2VDb25uZWN0aW9uKCk7CisKKyAgICB2b2lkIHN1YnNj
cmliZShjb25zdCBTdHJpbmcmIHRvcGljLCBjb25zdCBWZWN0b3I8dWludDhfdD4mIHZhcGlkUHVi
bGljS2V5LCBTdWJzY3JpYmVIYW5kbGVyJiYpIG92ZXJyaWRlOworICAgIHZvaWQgdW5zdWJzY3Jp
YmUoY29uc3QgU3RyaW5nJiB0b3BpYywgY29uc3QgVmVjdG9yPHVpbnQ4X3Q+JiB2YXBpZFB1Ymxp
Y0tleSwgVW5zdWJzY3JpYmVIYW5kbGVyJiYpIG92ZXJyaWRlOworCisgICAgVmVjdG9yPFN0cmlu
Zz4gZW5hYmxlZFRvcGljcygpIG92ZXJyaWRlOworICAgIFZlY3RvcjxTdHJpbmc+IGlnbm9yZWRU
b3BpY3MoKSBvdmVycmlkZTsKKyAgICBWZWN0b3I8U3RyaW5nPiBvcHBvcnR1bmlzdGljVG9waWNz
KCkgb3ZlcnJpZGU7CisgICAgVmVjdG9yPFN0cmluZz4gbm9uV2FraW5nVG9waWNzKCkgb3ZlcnJp
ZGU7CisKKyAgICB2b2lkIHNldEVuYWJsZWRUb3BpY3MoVmVjdG9yPFN0cmluZz4mJikgb3ZlcnJp
ZGU7CisgICAgdm9pZCBzZXRJZ25vcmVkVG9waWNzKFZlY3RvcjxTdHJpbmc+JiYpIG92ZXJyaWRl
OworICAgIHZvaWQgc2V0T3Bwb3J0dW5pc3RpY1RvcGljcyhWZWN0b3I8U3RyaW5nPiYmKSBvdmVy
cmlkZTsKKyAgICB2b2lkIHNldE5vbldha2luZ1RvcGljcyhWZWN0b3I8U3RyaW5nPiYmKSBvdmVy
cmlkZTsKKworICAgIHZvaWQgc2V0VG9waWNMaXN0cyhUb3BpY0xpc3RzJiYpIG92ZXJyaWRlOwor
fTsKKworfSAvLyBuYW1lc3BhY2UgV2ViUHVzaEQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
d2VicHVzaGQvTW9ja1B1c2hTZXJ2aWNlQ29ubmVjdGlvbi5tbSBiL1NvdXJjZS9XZWJLaXQvd2Vi
cHVzaGQvTW9ja1B1c2hTZXJ2aWNlQ29ubmVjdGlvbi5tbQpuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5kYmVmYTc0YWVj
ZDlhOWVhMGU0MTk4MzM4NjhlMzA4ZDNkNzZmNjAzCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNl
L1dlYktpdC93ZWJwdXNoZC9Nb2NrUHVzaFNlcnZpY2VDb25uZWN0aW9uLm1tCkBAIC0wLDAgKzEs
ODcgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjIgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJl
c2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5h
cnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVk
IHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICog
MS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBj
b3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9y
bSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisg
KiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0
aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQ
TEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVT
UyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAor
ICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1Mg
Rk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQg
U0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFO
WSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisg
KiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQ
Uk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBV
U0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VW
RVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICog
Q09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNF
IE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBU
SElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBT
VUNIIERBTUFHRS4KKyAqLworCisjaW1wb3J0ICJjb25maWcuaCIKKyNpbXBvcnQgIk1vY2tQdXNo
U2VydmljZUNvbm5lY3Rpb24uaCIKKworbmFtZXNwYWNlIFdlYlB1c2hEIHsKKworTW9ja1B1c2hT
ZXJ2aWNlQ29ubmVjdGlvbjo6TW9ja1B1c2hTZXJ2aWNlQ29ubmVjdGlvbigpCit7Cit9CisKK01v
Y2tQdXNoU2VydmljZUNvbm5lY3Rpb246On5Nb2NrUHVzaFNlcnZpY2VDb25uZWN0aW9uKCkgPSBk
ZWZhdWx0OworCit2b2lkIE1vY2tQdXNoU2VydmljZUNvbm5lY3Rpb246OnN1YnNjcmliZShjb25z
dCBTdHJpbmcmLCBjb25zdCBWZWN0b3I8dWludDhfdD4mLCBTdWJzY3JpYmVIYW5kbGVyJiYgaGFu
ZGxlcikKK3sKKyAgICBoYW5kbGVyKHsgfSwgW05TRXJyb3IgZXJyb3JXaXRoRG9tYWluOk5TQ29j
b2FFcnJvckRvbWFpbiBjb2RlOk5TRmVhdHVyZVVuc3VwcG9ydGVkRXJyb3IgdXNlckluZm86bmls
XSk7Cit9CisKK3ZvaWQgTW9ja1B1c2hTZXJ2aWNlQ29ubmVjdGlvbjo6dW5zdWJzY3JpYmUoY29u
c3QgU3RyaW5nJiwgY29uc3QgVmVjdG9yPHVpbnQ4X3Q+JiwgVW5zdWJzY3JpYmVIYW5kbGVyJiYg
aGFuZGxlcikKK3sKKyAgICBoYW5kbGVyKHsgfSwgW05TRXJyb3IgZXJyb3JXaXRoRG9tYWluOk5T
Q29jb2FFcnJvckRvbWFpbiBjb2RlOk5TRmVhdHVyZVVuc3VwcG9ydGVkRXJyb3IgdXNlckluZm86
bmlsXSk7Cit9CisKK1ZlY3RvcjxTdHJpbmc+IE1vY2tQdXNoU2VydmljZUNvbm5lY3Rpb246OmVu
YWJsZWRUb3BpY3MoKQoreworICAgIHJldHVybiB7IH07Cit9CisKK1ZlY3RvcjxTdHJpbmc+IE1v
Y2tQdXNoU2VydmljZUNvbm5lY3Rpb246Omlnbm9yZWRUb3BpY3MoKQoreworICAgIHJldHVybiB7
IH07Cit9CisKK1ZlY3RvcjxTdHJpbmc+IE1vY2tQdXNoU2VydmljZUNvbm5lY3Rpb246Om9wcG9y
dHVuaXN0aWNUb3BpY3MoKQoreworICAgIHJldHVybiB7IH07Cit9CisKK1ZlY3RvcjxTdHJpbmc+
IE1vY2tQdXNoU2VydmljZUNvbm5lY3Rpb246Om5vbldha2luZ1RvcGljcygpCit7CisgICAgcmV0
dXJuIHsgfTsKK30KKwordm9pZCBNb2NrUHVzaFNlcnZpY2VDb25uZWN0aW9uOjpzZXRFbmFibGVk
VG9waWNzKFZlY3RvcjxTdHJpbmc+JiYgdG9waWNzKQoreworfQorCit2b2lkIE1vY2tQdXNoU2Vy
dmljZUNvbm5lY3Rpb246OnNldElnbm9yZWRUb3BpY3MoVmVjdG9yPFN0cmluZz4mJiB0b3BpY3Mp
Cit7Cit9CisKK3ZvaWQgTW9ja1B1c2hTZXJ2aWNlQ29ubmVjdGlvbjo6c2V0T3Bwb3J0dW5pc3Rp
Y1RvcGljcyhWZWN0b3I8U3RyaW5nPiYmIHRvcGljcykKK3sKK30KKwordm9pZCBNb2NrUHVzaFNl
cnZpY2VDb25uZWN0aW9uOjpzZXROb25XYWtpbmdUb3BpY3MoVmVjdG9yPFN0cmluZz4mJiB0b3Bp
Y3MpCit7Cit9CisKK3ZvaWQgTW9ja1B1c2hTZXJ2aWNlQ29ubmVjdGlvbjo6c2V0VG9waWNMaXN0
cyhUb3BpY0xpc3RzJiYgdG9waWNMaXN0cykKK3sKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViUHVz
aEQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvd2VicHVzaGQvUHVzaFNlcnZpY2VDb25uZWN0
aW9uLmggYi9Tb3VyY2UvV2ViS2l0L3dlYnB1c2hkL1B1c2hTZXJ2aWNlQ29ubmVjdGlvbi5oCm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAuLjJjMTQxNDRjNjFiYjNlZmFlNGVkMzI4ZTE1MjBkM2VjZjA4MzE3ZWYKLS0tIC9k
ZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L3dlYnB1c2hkL1B1c2hTZXJ2aWNlQ29ubmVjdGlv
bi5oCkBAIC0wLDAgKzEsODIgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjIgQXBwbGUgSW5j
LiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4g
c291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9u
LCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisg
KiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0
YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9u
cyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMg
cHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMg
UFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAq
IEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJ
VFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1F
RC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBC
RSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBF
WEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJW
SUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRF
UlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwg
V0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xV
RElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQg
T0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQ
T1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworI2luY2x1
ZGUgPHd0Zi9Db21wbGV0aW9uSGFuZGxlci5oPgorI2luY2x1ZGUgPHd0Zi9EZXF1ZS5oPgorI2lu
Y2x1ZGUgPHd0Zi9GdW5jdGlvbi5oPgorI2luY2x1ZGUgPHd0Zi9SZXRhaW5QdHIuaD4KKyNpbmNs
dWRlIDx3dGYvVmVjdG9yLmg+CisjaW5jbHVkZSA8d3RmL1dlYWtQdHIuaD4KKyNpbmNsdWRlIDx3
dGYvdGV4dC9XVEZTdHJpbmcuaD4KKworT0JKQ19DTEFTUyBOU0Vycm9yOworT0JKQ19DTEFTUyBO
U1N0cmluZzsKK09CSkNfQ0xBU1MgTlNEaWN0aW9uYXJ5OworCituYW1lc3BhY2UgV2ViUHVzaEQg
eworCitjbGFzcyBQdXNoU2VydmljZUNvbm5lY3Rpb24gOiBwdWJsaWMgQ2FuTWFrZVdlYWtQdHI8
UHVzaFNlcnZpY2VDb25uZWN0aW9uPiB7CisgICAgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7Citw
dWJsaWM6CisgICAgdXNpbmcgSW5jb21pbmdQdXNoTWVzc2FnZUhhbmRsZXIgPSBGdW5jdGlvbjx2
b2lkKE5TU3RyaW5nICosIE5TRGljdGlvbmFyeSAqKT47CisKKyAgICBQdXNoU2VydmljZUNvbm5l
Y3Rpb24oKSA9IGRlZmF1bHQ7CisgICAgdmlydHVhbCB+UHVzaFNlcnZpY2VDb25uZWN0aW9uKCkg
PSBkZWZhdWx0OworCisgICAgdXNpbmcgU3Vic2NyaWJlSGFuZGxlciA9IENvbXBsZXRpb25IYW5k
bGVyPHZvaWQoTlNTdHJpbmcgKiwgTlNFcnJvciAqKT47CisgICAgdmlydHVhbCB2b2lkIHN1YnNj
cmliZShjb25zdCBTdHJpbmcmIHRvcGljLCBjb25zdCBWZWN0b3I8dWludDhfdD4mIHZhcGlkUHVi
bGljS2V5LCBTdWJzY3JpYmVIYW5kbGVyJiYpID0gMDsKKworICAgIHVzaW5nIFVuc3Vic2NyaWJl
SGFuZGxlciA9IENvbXBsZXRpb25IYW5kbGVyPHZvaWQoYm9vbCwgTlNFcnJvciAqKT47CisgICAg
dmlydHVhbCB2b2lkIHVuc3Vic2NyaWJlKGNvbnN0IFN0cmluZyYgdG9waWMsIGNvbnN0IFZlY3Rv
cjx1aW50OF90PiYgdmFwaWRQdWJsaWNLZXksIFVuc3Vic2NyaWJlSGFuZGxlciYmKSA9IDA7CisK
KyAgICB2aXJ0dWFsIFZlY3RvcjxTdHJpbmc+IGVuYWJsZWRUb3BpY3MoKSA9IDA7CisgICAgdmly
dHVhbCBWZWN0b3I8U3RyaW5nPiBpZ25vcmVkVG9waWNzKCkgPSAwOworICAgIHZpcnR1YWwgVmVj
dG9yPFN0cmluZz4gb3Bwb3J0dW5pc3RpY1RvcGljcygpID0gMDsKKyAgICB2aXJ0dWFsIFZlY3Rv
cjxTdHJpbmc+IG5vbldha2luZ1RvcGljcygpID0gMDsKKworICAgIHZpcnR1YWwgdm9pZCBzZXRF
bmFibGVkVG9waWNzKFZlY3RvcjxTdHJpbmc+JiYpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgc2V0
SWdub3JlZFRvcGljcyhWZWN0b3I8U3RyaW5nPiYmKSA9IDA7CisgICAgdmlydHVhbCB2b2lkIHNl
dE9wcG9ydHVuaXN0aWNUb3BpY3MoVmVjdG9yPFN0cmluZz4mJikgPSAwOworICAgIHZpcnR1YWwg
dm9pZCBzZXROb25XYWtpbmdUb3BpY3MoVmVjdG9yPFN0cmluZz4mJikgPSAwOworCisgICAgc3Ry
dWN0IFRvcGljTGlzdHMgeworICAgICAgICBWZWN0b3I8U3RyaW5nPiBlbmFibGVkVG9waWNzOwor
ICAgICAgICBWZWN0b3I8U3RyaW5nPiBpZ25vcmVkVG9waWNzOworICAgICAgICBWZWN0b3I8U3Ry
aW5nPiBvcHBvcnR1bmlzdGljVG9waWNzOworICAgICAgICBWZWN0b3I8U3RyaW5nPiBub25XYWtp
bmdUb3BpY3M7CisgICAgfTsKKyAgICB2aXJ0dWFsIHZvaWQgc2V0VG9waWNMaXN0cyhUb3BpY0xp
c3RzJiYpID0gMDsKKworICAgIHZvaWQgc3RhcnRMaXN0ZW5pbmdGb3JQdXNoTWVzc2FnZXMoSW5j
b21pbmdQdXNoTWVzc2FnZUhhbmRsZXImJik7CisgICAgdm9pZCBkaWRSZWNlaXZlUHVzaE1lc3Nh
Z2UoTlNTdHJpbmcgKnRvcGljLCBOU0RpY3Rpb25hcnkgKnVzZXJJbmZvKTsKKworcHJpdmF0ZToK
KyAgICBJbmNvbWluZ1B1c2hNZXNzYWdlSGFuZGxlciBtX2luY29taW5nUHVzaE1lc3NhZ2VIYW5k
bGVyOworICAgIERlcXVlPHN0ZDo6cGFpcjxSZXRhaW5QdHI8TlNTdHJpbmc+LCBSZXRhaW5QdHI8
TlNEaWN0aW9uYXJ5Pj4+IG1fcGVuZGluZ1B1c2hlczsKK307CisKK30gLy8gbmFtZXNwYWNlIFdl
YlB1c2hECmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L3dlYnB1c2hkL1B1c2hTZXJ2aWNlQ29u
bmVjdGlvbi5tbSBiL1NvdXJjZS9XZWJLaXQvd2VicHVzaGQvUHVzaFNlcnZpY2VDb25uZWN0aW9u
Lm1tCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLjUzNDMzMjVlYjVlYTIwM2U4ZGY2ZmY4MzAzY2I5YjBmZmM4MTMyMWIK
LS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L3dlYnB1c2hkL1B1c2hTZXJ2aWNlQ29u
bmVjdGlvbi5tbQpAQCAtMCwwICsxLDYwIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIyIEFw
cGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQg
dXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlm
aWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0
aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBt
dXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3Ry
aWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdo
dAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0
ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRX
QVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJ
UycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hB
TlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJ
U0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9S
UworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BF
Q0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMg
T1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUwor
ICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFC
SUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JU
IChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBX
QVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisg
KiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2ltcG9ydCAiY29uZmln
LmgiCisjaW1wb3J0ICJQdXNoU2VydmljZUNvbm5lY3Rpb24uaCIKKworI2ltcG9ydCA8d3RmL1dv
cmtRdWV1ZS5oPgorCituYW1lc3BhY2UgV2ViUHVzaEQgeworCit2b2lkIFB1c2hTZXJ2aWNlQ29u
bmVjdGlvbjo6c3RhcnRMaXN0ZW5pbmdGb3JQdXNoTWVzc2FnZXMoSW5jb21pbmdQdXNoTWVzc2Fn
ZUhhbmRsZXImJiBoYW5kbGVyKQoreworICAgIG1faW5jb21pbmdQdXNoTWVzc2FnZUhhbmRsZXIg
PSBXVEZNb3ZlKGhhbmRsZXIpOworCisgICAgaWYgKCFtX3BlbmRpbmdQdXNoZXMuc2l6ZSgpKQor
ICAgICAgICByZXR1cm47CisKKyAgICBXb3JrUXVldWU6Om1haW4oKS5kaXNwYXRjaChbdGhpc10o
KSBtdXRhYmxlIHsKKyAgICAgICAgd2hpbGUgKG1fcGVuZGluZ1B1c2hlcy5zaXplKCkpIHsKKyAg
ICAgICAgICAgIEBhdXRvcmVsZWFzZXBvb2wgeworICAgICAgICAgICAgICAgIGF1dG8gbWVzc2Fn
ZSA9IG1fcGVuZGluZ1B1c2hlcy50YWtlRmlyc3QoKTsKKyAgICAgICAgICAgICAgICBtX2luY29t
aW5nUHVzaE1lc3NhZ2VIYW5kbGVyKG1lc3NhZ2UuZmlyc3QuZ2V0KCksIG1lc3NhZ2Uuc2Vjb25k
LmdldCgpKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0pOworfQorCit2b2lkIFB1
c2hTZXJ2aWNlQ29ubmVjdGlvbjo6ZGlkUmVjZWl2ZVB1c2hNZXNzYWdlKE5TU3RyaW5nICp0b3Bp
YywgTlNEaWN0aW9uYXJ5ICp1c2VySW5mbykKK3sKKyAgICBpZiAoIW1faW5jb21pbmdQdXNoTWVz
c2FnZUhhbmRsZXIpIHsKKyAgICAgICAgbV9wZW5kaW5nUHVzaGVzLmFwcGVuZCh7IHRvcGljLCB1
c2VySW5mbyB9KTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIG1faW5jb21pbmdQdXNo
TWVzc2FnZUhhbmRsZXIodG9waWMsIHVzZXJJbmZvKTsKK30KKworfSAvLyBuYW1lc3BhY2UgV2Vi
UHVzaEQKZGlmZiAtLWdpdCBhL1dlYktpdExpYnJhcmllcy9DaGFuZ2VMb2cgYi9XZWJLaXRMaWJy
YXJpZXMvQ2hhbmdlTG9nCmluZGV4IDE0ZjFkMmVkYWRlOWE0ZDA4NzVhNTgxMjVlOGY5ZThjODAz
NmY0YTguLjNjMzYyMjI3ZDMxZjAxNDI5ZGRjODQzYmMyOTdmMjEzMzZkY2IzZjggMTAwNjQ0Ci0t
LSBhL1dlYktpdExpYnJhcmllcy9DaGFuZ2VMb2cKKysrIGIvV2ViS2l0TGlicmFyaWVzL0NoYW5n
ZUxvZwpAQCAtMSwzICsxLDE0IEBACisyMDIyLTAxLTMwICBCZW4gTmhhbSAgPG5oYW1AYXBwbGUu
Y29tPgorCisgICAgICAgIEltcG9ydCBBUFNDb25uZWN0aW9uLXJlbGF0ZWQgU1BJCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzU4NTYKKworICAgICAg
ICBSZXZpZXdlZCBZb3Vlbm4gRmFibGV0LgorCisgICAgICAgIEFkZCBhbiBBcHBsZVB1c2hTZXJ2
aWNlIHN0dWIgc28gd2UgY2FuIGJ1aWxkIGFnYWluc3QgaXQgd2l0aCBwdWJsaWMgU0RLcy4KKwor
ICAgICAgICAqIFdlYktpdFByaXZhdGVGcmFtZXdvcmtTdHVicy9pT1MvMTUvQXBwbGVQdXNoU2Vy
dmljZS5mcmFtZXdvcmsvQXBwbGVQdXNoU2VydmljZS50YmQ6IEFkZGVkLgorCiAyMDIyLTAxLTAx
ICBKZWZmIE1pbGxlciAgPGplZmZtQGFwcGxlLmNvbT4KIAogICAgICAgICBVcGRhdGUgdXNlci12
aXNpYmxlIGNvcHlyaWdodCBzdHJpbmdzIHRvIGluY2x1ZGUgMjAyMgpkaWZmIC0tZ2l0IGEvV2Vi
S2l0TGlicmFyaWVzL1dlYktpdFByaXZhdGVGcmFtZXdvcmtTdHVicy9pT1MvMTUvQXBwbGVQdXNo
U2VydmljZS5mcmFtZXdvcmsvQXBwbGVQdXNoU2VydmljZS50YmQgYi9XZWJLaXRMaWJyYXJpZXMv
V2ViS2l0UHJpdmF0ZUZyYW1ld29ya1N0dWJzL2lPUy8xNS9BcHBsZVB1c2hTZXJ2aWNlLmZyYW1l
d29yay9BcHBsZVB1c2hTZXJ2aWNlLnRiZApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5mZjI5N2VjODYxY2Q0OGE5NDQy
OTJjMTgwZGZkMzBiMDcxYTU5ODhiCi0tLSAvZGV2L251bGwKKysrIGIvV2ViS2l0TGlicmFyaWVz
L1dlYktpdFByaXZhdGVGcmFtZXdvcmtTdHVicy9pT1MvMTUvQXBwbGVQdXNoU2VydmljZS5mcmFt
ZXdvcmsvQXBwbGVQdXNoU2VydmljZS50YmQKQEAgLTAsMCArMSw5IEBACistLS0gIXRhcGktdGJk
LXYzCithcmNoczogICAgICAgICAgIFsgeDg2XzY0LCBhcm02NCwgYXJtNjRlIF0KK2luc3RhbGwt
bmFtZTogICAgJy9TeXN0ZW0vTGlicmFyeS9Qcml2YXRlRnJhbWV3b3Jrcy9BcHBsZVB1c2hTZXJ2
aWNlLmZyYW1ld29yay9BcHBsZVB1c2hTZXJ2aWNlJworcGxhdGZvcm06IGlvcworZXhwb3J0czoK
KyAgLSBhcmNoczogICAgICAgICAgIFsgeDg2XzY0LCBhcm02NCwgYXJtNjRlIF0KKyAgICBzeW1i
b2xzOiAgICAgICAgIFsgX0FQU0Vudmlyb25tZW50UHJvZHVjdGlvbiBdCisgICAgb2JqYy1jbGFz
c2VzOiAgICBbIEFQU0Nvbm5lY3Rpb24sIEFQU0luY29taW5nTWVzc2FnZSwgQVBTTWVzc2FnZSBd
CisuLi4K
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>450861</attachid>
            <date>2022-02-03 20:57:44 -0800</date>
            <delta_ts>2022-02-04 08:08:05 -0800</delta_ts>
            <desc>patch for relanding</desc>
            <filename>bug-235856-20220203205743.patch</filename>
            <type>text/plain</type>
            <size>40776</size>
            <attacher name="Ben Nham">nham</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg4ODA2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDY0YTY4MDc2N2UxZWQ2ZmZj
MmViYzY3NTU4MmEwNjE3YmY5N2U0NmIuLmU2OGNhNTdmMTkzMWQxMWIyNmQ3M2EzNGVkYTVhZTZj
ZjM4MzJkNzUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNTMgQEAKKzIwMjItMDEtMzAgIEJlbiBOaGFt
ICA8bmhhbUBhcHBsZS5jb20+CisKKyAgICAgICAgSW1wb3J0IEFQU0Nvbm5lY3Rpb24tcmVsYXRl
ZCBTUEkKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIz
NTg1NgorCisgICAgICAgIFJldmlld2VkIFlvdWVubiBGYWJsZXQuCisKKyAgICAgICAgVGhpcyBp
bXBvcnRzIHRoZSBTUEkgZGVjbGFyYXRpb25zIG5lY2Vzc2FyeSB0byBidWlsZCBhZ2FpbnN0IEFw
cGxlUHVzaFNlcnZpY2UgaW4gV2ViS2l0LiBJdAorICAgICAgICBhbHNvIGluY2x1ZGVzIGEgUHVz
aFNlcnZpY2VDb25uZWN0aW9uIGludGVyZmFjZSB0aGF0IGNhbiBzaXQgaW4gZnJvbnQgb2YgQVBT
Q29ubmVjdGlvbiwgYW5kCisgICAgICAgIGEgZmFrZSBpbnRlcmZhY2UgdGhhdCB3aWxsIGJlIGZs
ZXNoZWQgb3V0IGZvciB0ZXN0aW5nIHB1cnBvc2VzLgorCisgICAgICAgICogUGxhdGZvcm0vc3Bp
L0NvY29hL0FwcGxlUHVzaFNlcnZpY2VTUEkuaDogQWRkZWQuCisgICAgICAgICogV2ViS2l0Lnhj
b2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgICogd2VicHVzaGQvQXBwbGVQdXNoU2Vy
dmljZUNvbm5lY3Rpb24uaDogQWRkZWQuCisgICAgICAgICogd2VicHVzaGQvQXBwbGVQdXNoU2Vy
dmljZUNvbm5lY3Rpb24ubW06IEFkZGVkLgorICAgICAgICAoLVtfV0tBUFNDb25uZWN0aW9uRGVs
ZWdhdGUgaW5pdFdpdGhDb25uZWN0aW9uOl0pOgorICAgICAgICAoLVtfV0tBUFNDb25uZWN0aW9u
RGVsZWdhdGUgY29ubmVjdGlvbjpkaWRSZWNlaXZlUHVibGljVG9rZW46XSk6CisgICAgICAgICgt
W19XS0FQU0Nvbm5lY3Rpb25EZWxlZ2F0ZSBjb25uZWN0aW9uOmRpZFJlY2VpdmVJbmNvbWluZ01l
c3NhZ2U6XSk6CisgICAgICAgIChXZWJQdXNoRDo6QXBwbGVQdXNoU2VydmljZUNvbm5lY3Rpb246
OkFwcGxlUHVzaFNlcnZpY2VDb25uZWN0aW9uKToKKyAgICAgICAgKFdlYlB1c2hEOjptYWtlVG9r
ZW5JbmZvKToKKyAgICAgICAgKFdlYlB1c2hEOjpBcHBsZVB1c2hTZXJ2aWNlQ29ubmVjdGlvbjo6
c3Vic2NyaWJlKToKKyAgICAgICAgKFdlYlB1c2hEOjpBcHBsZVB1c2hTZXJ2aWNlQ29ubmVjdGlv
bjo6dW5zdWJzY3JpYmUpOgorICAgICAgICAoV2ViUHVzaEQ6OkFwcGxlUHVzaFNlcnZpY2VDb25u
ZWN0aW9uOjplbmFibGVkVG9waWNzKToKKyAgICAgICAgKFdlYlB1c2hEOjpBcHBsZVB1c2hTZXJ2
aWNlQ29ubmVjdGlvbjo6aWdub3JlZFRvcGljcyk6CisgICAgICAgIChXZWJQdXNoRDo6QXBwbGVQ
dXNoU2VydmljZUNvbm5lY3Rpb246Om9wcG9ydHVuaXN0aWNUb3BpY3MpOgorICAgICAgICAoV2Vi
UHVzaEQ6OkFwcGxlUHVzaFNlcnZpY2VDb25uZWN0aW9uOjpub25XYWtpbmdUb3BpY3MpOgorICAg
ICAgICAoV2ViUHVzaEQ6OkFwcGxlUHVzaFNlcnZpY2VDb25uZWN0aW9uOjpzZXRFbmFibGVkVG9w
aWNzKToKKyAgICAgICAgKFdlYlB1c2hEOjpBcHBsZVB1c2hTZXJ2aWNlQ29ubmVjdGlvbjo6c2V0
SWdub3JlZFRvcGljcyk6CisgICAgICAgIChXZWJQdXNoRDo6QXBwbGVQdXNoU2VydmljZUNvbm5l
Y3Rpb246OnNldE9wcG9ydHVuaXN0aWNUb3BpY3MpOgorICAgICAgICAoV2ViUHVzaEQ6OkFwcGxl
UHVzaFNlcnZpY2VDb25uZWN0aW9uOjpzZXROb25XYWtpbmdUb3BpY3MpOgorICAgICAgICAoV2Vi
UHVzaEQ6OkFwcGxlUHVzaFNlcnZpY2VDb25uZWN0aW9uOjpzZXRUb3BpY0xpc3RzKToKKyAgICAg
ICAgKiB3ZWJwdXNoZC9Nb2NrUHVzaFNlcnZpY2VDb25uZWN0aW9uLmg6IEFkZGVkLgorICAgICAg
ICAqIHdlYnB1c2hkL01vY2tQdXNoU2VydmljZUNvbm5lY3Rpb24ubW06IEFkZGVkLgorICAgICAg
ICAoV2ViUHVzaEQ6Ok1vY2tQdXNoU2VydmljZUNvbm5lY3Rpb246Ok1vY2tQdXNoU2VydmljZUNv
bm5lY3Rpb24pOgorICAgICAgICAoV2ViUHVzaEQ6Ok1vY2tQdXNoU2VydmljZUNvbm5lY3Rpb246
OnN1YnNjcmliZSk6CisgICAgICAgIChXZWJQdXNoRDo6TW9ja1B1c2hTZXJ2aWNlQ29ubmVjdGlv
bjo6dW5zdWJzY3JpYmUpOgorICAgICAgICAoV2ViUHVzaEQ6Ok1vY2tQdXNoU2VydmljZUNvbm5l
Y3Rpb246OmVuYWJsZWRUb3BpY3MpOgorICAgICAgICAoV2ViUHVzaEQ6Ok1vY2tQdXNoU2Vydmlj
ZUNvbm5lY3Rpb246Omlnbm9yZWRUb3BpY3MpOgorICAgICAgICAoV2ViUHVzaEQ6Ok1vY2tQdXNo
U2VydmljZUNvbm5lY3Rpb246Om9wcG9ydHVuaXN0aWNUb3BpY3MpOgorICAgICAgICAoV2ViUHVz
aEQ6Ok1vY2tQdXNoU2VydmljZUNvbm5lY3Rpb246Om5vbldha2luZ1RvcGljcyk6CisgICAgICAg
IChXZWJQdXNoRDo6TW9ja1B1c2hTZXJ2aWNlQ29ubmVjdGlvbjo6c2V0RW5hYmxlZFRvcGljcyk6
CisgICAgICAgIChXZWJQdXNoRDo6TW9ja1B1c2hTZXJ2aWNlQ29ubmVjdGlvbjo6c2V0SWdub3Jl
ZFRvcGljcyk6CisgICAgICAgIChXZWJQdXNoRDo6TW9ja1B1c2hTZXJ2aWNlQ29ubmVjdGlvbjo6
c2V0T3Bwb3J0dW5pc3RpY1RvcGljcyk6CisgICAgICAgIChXZWJQdXNoRDo6TW9ja1B1c2hTZXJ2
aWNlQ29ubmVjdGlvbjo6c2V0Tm9uV2FraW5nVG9waWNzKToKKyAgICAgICAgKFdlYlB1c2hEOjpN
b2NrUHVzaFNlcnZpY2VDb25uZWN0aW9uOjpzZXRUb3BpY0xpc3RzKToKKyAgICAgICAgKiB3ZWJw
dXNoZC9QdXNoU2VydmljZUNvbm5lY3Rpb24uaDogQWRkZWQuCisgICAgICAgICogd2VicHVzaGQv
UHVzaFNlcnZpY2VDb25uZWN0aW9uLm1tOiBBZGRlZC4KKyAgICAgICAgKFdlYlB1c2hEOjpQdXNo
U2VydmljZUNvbm5lY3Rpb246OnN0YXJ0TGlzdGVuaW5nRm9yUHVzaE1lc3NhZ2VzKToKKyAgICAg
ICAgKFdlYlB1c2hEOjpQdXNoU2VydmljZUNvbm5lY3Rpb246OmRpZFJlY2VpdmVQdXNoTWVzc2Fn
ZSk6CisKIDIwMjItMDEtMzAgIFJ5b3N1a2UgTml3YSAgPHJuaXdhQHdlYmtpdC5vcmc+CiAKICAg
ICAgICAgRGVsZXRlIGNvZGUgZm9yIGtleWdlbiBlbGVtZW50CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L1BsYXRmb3JtL3NwaS9Db2NvYS9BcHBsZVB1c2hTZXJ2aWNlU1BJLmggYi9Tb3VyY2Uv
V2ViS2l0L1BsYXRmb3JtL3NwaS9Db2NvYS9BcHBsZVB1c2hTZXJ2aWNlU1BJLmgKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uNTVmNmFkNmY2MzY5M2VlMTBiMWFhY2Q0MzFkOWU0NzFjZWFkODYyMwotLS0gL2Rldi9udWxs
CisrKyBiL1NvdXJjZS9XZWJLaXQvUGxhdGZvcm0vc3BpL0NvY29hL0FwcGxlUHVzaFNlcnZpY2VT
UEkuaApAQCAtMCwwICsxLDEwMiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMiBBcHBsZSBJ
bmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBp
biBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRp
b24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMK
KyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCBy
ZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRp
b25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAq
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFs
cyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJ
UyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJwor
ICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJ
TElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJ
TUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAq
IEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUws
IEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNF
UlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElO
VEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZ
LCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5D
TFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9V
VCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhF
IFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpZiBVU0UoQVBQTEVfSU5URVJO
QUxfU0RLKQorCisjaW1wb3J0IDxBcHBsZVB1c2hTZXJ2aWNlL0FwcGxlUHVzaFNlcnZpY2UuaD4K
KworI2Vsc2UgLy8gaWYgIVVTRShBUFBMRV9JTlRFUk5BTF9TREspCisKKyNpbXBvcnQgPEZvdW5k
YXRpb24vRm91bmRhdGlvbi5oPgorCitOU19BU1NVTUVfTk9OTlVMTF9CRUdJTgorCitXVEZfRVhU
RVJOX0NfQkVHSU4KK2V4dGVybiBOU1N0cmluZyAqY29uc3QgQVBTRW52aXJvbm1lbnRQcm9kdWN0
aW9uOworCit0eXBlZGVmIE5TX0VOVU0oTlNJbnRlZ2VyLCBBUFNVUkxUb2tlbkVycm9yQ29kZSkg
eworICAgIEFQU1VSTFRva2VuRXJyb3JDb2RlSW52YWxpZEFyZ3VtZW50cyA9IDEwMCwKKyAgICBB
UFNVUkxUb2tlbkVycm9yQ29kZVhQQ0Vycm9yID0gMTAxLAorICAgIEFQU1VSTFRva2VuRXJyb3JD
b2RlVG9waWNTYWx0aW5nRmFpbGVkID0gMTAyLAorICAgIEFQU1VSTFRva2VuRXJyb3JDb2RlVG9w
aWNBbHJlYWR5SW5GaWx0ZXIgPSAxMDMsCit9OworV1RGX0VYVEVSTl9DX0VORAorCitAY2xhc3Mg
QVBTQ29ubmVjdGlvbjsKK0Bwcm90b2NvbCBBUFNDb25uZWN0aW9uRGVsZWdhdGU7CisKK0BpbnRl
cmZhY2UgQVBTTWVzc2FnZSA6IE5TT2JqZWN0PE5TQ29kaW5nPgorQHByb3BlcnR5IChub25hdG9t
aWMsIHJldGFpbikgTlNTdHJpbmcgKnRvcGljOworQHByb3BlcnR5IChub25hdG9taWMsIHJldGFp
bikgTlNEaWN0aW9uYXJ5ICp1c2VySW5mbzsKK0Bwcm9wZXJ0eSAobm9uYXRvbWljLCBhc3NpZ24p
IE5TVUludGVnZXIgaWRlbnRpZmllcjsKK0BlbmQKKworQGludGVyZmFjZSBBUFNJbmNvbWluZ01l
c3NhZ2UgOiBBUFNNZXNzYWdlCitAZW5kCisKKyNpZiBIQVZFKEFQUExFX1BVU0hfU0VSVklDRV9V
UkxfVE9LRU5fU1VQUE9SVCkKKworQGludGVyZmFjZSBBUFNVUkxUb2tlbiA6IE5TT2JqZWN0PE5T
U2VjdXJlQ29kaW5nLCBOU0NvcHlpbmc+CitAcHJvcGVydHkgKG5vbmF0b21pYywgc3Ryb25nKSBO
U1N0cmluZyAqdG9rZW5VUkw7CitAZW5kCisKK0BpbnRlcmZhY2UgQVBTVVJMVG9rZW5JbmZvIDog
TlNPYmplY3Q8TlNTZWN1cmVDb2RpbmcsIE5TQ29weWluZz4KKy0gKGluc3RhbmNldHlwZSlpbml0
V2l0aFRvcGljOihOU1N0cmluZyAqKXRvcGljIHZhcGlkUHVibGljS2V5OihudWxsYWJsZSBOU0Rh
dGEgKil2YXBpZFB1YmxpY0tleTsKK0BlbmQKKwordHlwZWRlZiB2b2lkKF5BUFNDb25uZWN0aW9u
UmVxdWVzdFVSTFRva2VuQ29tcGxldGlvbikoQVBTVVJMVG9rZW4gKiBfX251bGxhYmxlIHRva2Vu
LCBOU0Vycm9yICogX19udWxsYWJsZSBlcnJvcik7Cit0eXBlZGVmIHZvaWQoXkFQU0Nvbm5lY3Rp
b25JbnZhbGlkYXRlVVJMVG9rZW5Db21wbGV0aW9uKShCT09MIHN1Y2Nlc3MsIE5TRXJyb3IgKiBf
X251bGxhYmxlIGVycm9yKTsKKworI2VuZGlmIC8vIEhBVkUoQVBQTEVfUFVTSF9TRVJWSUNFX1VS
TF9UT0tFTl9TVVBQT1JUKQorCitAaW50ZXJmYWNlIEFQU0Nvbm5lY3Rpb24gOiBOU09iamVjdAor
CistIChpbnN0YW5jZXR5cGUpaW5pdFdpdGhFbnZpcm9ubWVudE5hbWU6KE5TU3RyaW5nICopZW52
aXJvbm1lbnROYW1lIG5hbWVkRGVsZWdhdGVQb3J0OihudWxsYWJsZSBOU1N0cmluZyAqKW5hbWVk
RGVsZWdhdGVQb3J0IHF1ZXVlOihkaXNwYXRjaF9xdWV1ZV90KXF1ZXVlOworCisjaWYgSEFWRShB
UFBMRV9QVVNIX1NFUlZJQ0VfVVJMX1RPS0VOX1NVUFBPUlQpCistICh2b2lkKXJlcXVlc3RVUkxU
b2tlbkZvckluZm86KEFQU1VSTFRva2VuSW5mbyAqKWluZm8gY29tcGxldGlvbjooQVBTQ29ubmVj
dGlvblJlcXVlc3RVUkxUb2tlbkNvbXBsZXRpb24pY29tcGxldGlvbjsKKy0gKHZvaWQpaW52YWxp
ZGF0ZVVSTFRva2VuRm9ySW5mbzooQVBTVVJMVG9rZW5JbmZvICopaW5mbyBjb21wbGV0aW9uOihB
UFNDb25uZWN0aW9uSW52YWxpZGF0ZVVSTFRva2VuQ29tcGxldGlvbiljb21wbGV0aW9uOworI2Vu
ZGlmIC8vIEhBVkUoQVBQTEVfUFVTSF9TRVJWSUNFX1VSTF9UT0tFTl9TVVBQT1JUKQorCitAcHJv
cGVydHkgKG5vbmF0b21pYywgcmVhZHdyaXRlLCBhc3NpZ24sIG51bGxhYmxlKSBpZDxBUFNDb25u
ZWN0aW9uRGVsZWdhdGU+IGRlbGVnYXRlOworCitAcHJvcGVydHkgKG5vbmF0b21pYywgcmVhZHdy
aXRlLCBzdHJvbmcsIHNldHRlcj1fc2V0RW5hYmxlZFRvcGljczosIG51bGxhYmxlKSBOU0FycmF5
PE5TU3RyaW5nICo+ICplbmFibGVkVG9waWNzOworQHByb3BlcnR5IChub25hdG9taWMsIHJlYWR3
cml0ZSwgc3Ryb25nLCBzZXR0ZXI9X3NldElnbm9yZWRUb3BpY3M6LCBudWxsYWJsZSkgTlNBcnJh
eTxOU1N0cmluZyAqPiAqaWdub3JlZFRvcGljczsKK0Bwcm9wZXJ0eSAobm9uYXRvbWljLCByZWFk
d3JpdGUsIHN0cm9uZywgc2V0dGVyPV9zZXRPcHBvcnR1bmlzdGljVG9waWNzOiwgbnVsbGFibGUp
IE5TQXJyYXk8TlNTdHJpbmcgKj4gKm9wcG9ydHVuaXN0aWNUb3BpY3M7CitAcHJvcGVydHkgKG5v
bmF0b21pYywgcmVhZHdyaXRlLCBzdHJvbmcsIHNldHRlcj1fc2V0Tm9uV2FraW5nVG9waWNzOiwg
bnVsbGFibGUpIE5TQXJyYXk8TlNTdHJpbmcgKj4gKm5vbldha2luZ1RvcGljczsKKworLSAodm9p
ZClzZXRFbmFibGVkVG9waWNzOihOU0FycmF5PE5TU3RyaW5nICo+ICopZW5hYmxlZFRvcGljcyBp
Z25vcmVkVG9waWNzOihOU0FycmF5PE5TU3RyaW5nICo+ICopaWdub3JlZFRvcGljcyBvcHBvcnR1
bmlzdGljVG9waWNzOihOU0FycmF5PE5TU3RyaW5nICo+ICopb3Bwb3J0dW5pc3RpY1RvcGljcyBu
b25XYWtpbmdUb3BpY3M6KE5TQXJyYXk8TlNTdHJpbmcgKj4gKilub25XYWtpbmdUb3BpY3M7CisK
K0BlbmQKKworQHByb3RvY29sIEFQU0Nvbm5lY3Rpb25EZWxlZ2F0ZTxOU09iamVjdD4KKy0gKHZv
aWQpY29ubmVjdGlvbjooQVBTQ29ubmVjdGlvbiAqKWNvbm5lY3Rpb24gZGlkUmVjZWl2ZVB1Ymxp
Y1Rva2VuOihOU0RhdGEgKilwdWJsaWNUb2tlbjsKK0BvcHRpb25hbAorLSAodm9pZCljb25uZWN0
aW9uOihBUFNDb25uZWN0aW9uICopY29ubmVjdGlvbiBkaWRSZWNlaXZlSW5jb21pbmdNZXNzYWdl
OihBUFNJbmNvbWluZ01lc3NhZ2UgKiltZXNzYWdlOworQGVuZAorCitOU19BU1NVTUVfTk9OTlVM
TF9FTkQKKworI2VuZGlmIC8vICFVU0UoQVBQTEVfSU5URVJOQUxfU0RLKQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9XZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1NvdXJjZS9X
ZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggNzc5MTE4YmQyZjNl
MDMyY2E4N2MwNzRkMmU2YjBkYmU1NDliNjdlYi4uYmI5YmUyYzBmZjE1ODczNDY5MWJhYzEyYTk2
ZGY0OGI4NjdjNWIxMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJLaXQueGNvZGVwcm9q
L3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYktpdC54Y29kZXByb2ovcHJv
amVjdC5wYnhwcm9qCkBAIC0xOTk1LDYgKzE5OTUsMTMgQEAKIAkJRTVDQkE3NjcyN0EzMThFMTAw
REY3ODU4IC8qIFVuaWZpZWRTb3VyY2UxMTkuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gRTVDQkE3NjAyN0EzMTg3OTAwREY3ODU4IC8qIFVuaWZpZWRT
b3VyY2UxMTkuY3BwICovOyB9OwogCQlFNUNCQTc2ODI3QTMxOEUxMDBERjc4NTggLyogVW5pZmll
ZFNvdXJjZTExNy5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSBFNUNCQTc2MjI3QTMxODc5MDBERjc4NTggLyogVW5pZmllZFNvdXJjZTExNy5jcHAgKi87
IH07CiAJCUU1REVGQTY4MjZGOEY0MjYwMEFCNjhEQiAvKiBQaG90b3NVSVNQSS5oIGluIEhlYWRl
cnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTVERUZBNjcyNkY4RjQyNjAw
QUI2OERCIC8qIFBob3Rvc1VJU1BJLmggKi87IH07CisJCUVCQThEM0FCMjdBNUUzMTMwMENCNzkw
MCAvKiBBcHBsZVB1c2hTZXJ2aWNlU1BJLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSBFQkE4RDNBQTI3QTVFMzEzMDBDQjc5MDAgLyogQXBwbGVQdXNoU2Vy
dmljZVNQSS5oICovOyB9OworCQlFQkE4RDNCMjI3QTVFMzNGMDBDQjc5MDAgLyogQXBwbGVQdXNo
U2VydmljZUNvbm5lY3Rpb24ubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSBFQkE4RDNBQzI3QTVFMzNFMDBDQjc5MDAgLyogQXBwbGVQdXNoU2VydmljZUNv
bm5lY3Rpb24ubW0gKi87IH07CisJCUVCQThEM0IzMjdBNUUzM0YwMENCNzkwMCAvKiBNb2NrUHVz
aFNlcnZpY2VDb25uZWN0aW9uLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSBFQkE4RDNBRDI3QTVFMzNFMDBDQjc5MDAgLyogTW9ja1B1c2hTZXJ2aWNlQ29u
bmVjdGlvbi5oICovOyB9OworCQlFQkE4RDNCNDI3QTVFMzNGMDBDQjc5MDAgLyogQXBwbGVQdXNo
U2VydmljZUNvbm5lY3Rpb24uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IEVCQThEM0FFMjdBNUUzM0YwMENCNzkwMCAvKiBBcHBsZVB1c2hTZXJ2aWNlQ29u
bmVjdGlvbi5oICovOyB9OworCQlFQkE4RDNCNTI3QTVFMzNGMDBDQjc5MDAgLyogUHVzaFNlcnZp
Y2VDb25uZWN0aW9uLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSBFQkE4RDNBRjI3QTVFMzNGMDBDQjc5MDAgLyogUHVzaFNlcnZpY2VDb25uZWN0aW9uLmgg
Ki87IH07CisJCUVCQThEM0I2MjdBNUUzM0YwMENCNzkwMCAvKiBNb2NrUHVzaFNlcnZpY2VDb25u
ZWN0aW9uLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
RUJBOEQzQjAyN0E1RTMzRjAwQ0I3OTAwIC8qIE1vY2tQdXNoU2VydmljZUNvbm5lY3Rpb24ubW0g
Ki87IH07CisJCUVCQThEM0I3MjdBNUUzM0YwMENCNzkwMCAvKiBQdXNoU2VydmljZUNvbm5lY3Rp
b24ubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFQkE4
RDNCMTI3QTVFMzNGMDBDQjc5MDAgLyogUHVzaFNlcnZpY2VDb25uZWN0aW9uLm1tICovOyB9Owog
CQlFRDgyQTdGMjEyOEM2RkFGMDA0NDc3QjMgLyogV0tCdW5kbGVQYWdlT3ZlcmxheS5oIGluIEhl
YWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMUEyMkYwRkYxMjg5RkNE
OTAwODVFNzRGIC8qIFdLQnVuZGxlUGFnZU92ZXJsYXkuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklC
VVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQlGNDA5QkExODFFNkU2NEJDMDA5REEyOEUgLyog
V0tEcmFnRGVzdGluYXRpb25BY3Rpb24uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IEY0MDlCQTE3MUU2RTY0QjMwMDlEQTI4RSAvKiBXS0RyYWdEZXN0aW5h
dGlvbkFjdGlvbi5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07
IH07CiAJCUY0Mjk5NTA3MjcwRTIzNEQwMDMyMjk4QiAvKiBTdHJlYW1NZXNzYWdlUmVjZWl2ZXIu
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY0Mjk5NTA2
MjcwRTIzNEMwMDMyMjk4QiAvKiBTdHJlYW1NZXNzYWdlUmVjZWl2ZXIuaCAqLzsgfTsKQEAgLTY0
MzksNiArNjQ0NiwxMyBAQAogCQlFNURFRkE2NzI2RjhGNDI2MDBBQjY4REIgLyogUGhvdG9zVUlT
UEkuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuYy5oOyBwYXRoID0gUGhvdG9zVUlTUEkuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJRUIwRDMxMkQyNzVBRTEzMzAwODYzRDhGIC8qIGNvbS5hcHBsZS53ZWJraXQud2Vi
cHVzaGQubWFjLnBsaXN0ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dC5wbGlzdC54bWw7IHBhdGggPSBjb20uYXBw
bGUud2Via2l0LndlYnB1c2hkLm1hYy5wbGlzdDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
IAkJRUIwRDMxMkUyNzVBRTEzMzAwODYzRDhGIC8qIGNvbS5hcHBsZS53ZWJraXQud2VicHVzaGQu
aW9zLnBsaXN0ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dC5wbGlzdC54bWw7IHBhdGggPSBjb20uYXBwbGUud2Vi
a2l0LndlYnB1c2hkLmlvcy5wbGlzdDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRUJB
OEQzQUEyN0E1RTMxMzAwQ0I3OTAwIC8qIEFwcGxlUHVzaFNlcnZpY2VTUEkuaCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQXBwbGVQdXNoU2VydmljZVNQSS5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OworCQlFQkE4RDNBQzI3QTVFMzNFMDBDQjc5MDAgLyogQXBwbGVQdXNo
U2VydmljZUNvbm5lY3Rpb24ubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBh
dGggPSBBcHBsZVB1c2hTZXJ2aWNlQ29ubmVjdGlvbi5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKKwkJRUJBOEQzQUQyN0E1RTMzRTAwQ0I3OTAwIC8qIE1vY2tQdXNoU2VydmljZUNvbm5l
Y3Rpb24uaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gTW9ja1B1c2hTZXJ2aWNl
Q29ubmVjdGlvbi5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlFQkE4RDNBRTI3QTVF
MzNGMDBDQjc5MDAgLyogQXBwbGVQdXNoU2VydmljZUNvbm5lY3Rpb24uaCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuYy5oOyBwYXRoID0gQXBwbGVQdXNoU2VydmljZUNvbm5lY3Rpb24uaDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRUJBOEQzQUYyN0E1RTMzRjAwQ0I3OTAwIC8qIFB1c2hT
ZXJ2aWNlQ29ubmVjdGlvbi5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBQdXNo
U2VydmljZUNvbm5lY3Rpb24uaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRUJBOEQz
QjAyN0E1RTMzRjAwQ0I3OTAwIC8qIE1vY2tQdXNoU2VydmljZUNvbm5lY3Rpb24ubW0gKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBNb2NrUHVzaFNlcnZpY2VDb25uZWN0
aW9uLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlFQkE4RDNCMTI3QTVFMzNGMDBD
Qjc5MDAgLyogUHVzaFNlcnZpY2VDb25uZWN0aW9uLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
cHAub2JqY3BwOyBwYXRoID0gUHVzaFNlcnZpY2VDb25uZWN0aW9uLm1tOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwogCQlFQ0E2ODBEMzFFNjkwNEI1MDA3MzFEMjAgLyogRXh0cmFQcml2YXRl
U3ltYm9sc0ZvclRBUEkuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gRXh0cmFQ
cml2YXRlU3ltYm9sc0ZvclRBUEkuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRUNC
RkMxREIxRTZBNEQ2NjAwMDMwMEM3IC8qIEV4dHJhUHVibGljU3ltYm9sc0ZvclRBUEkuaCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Yy5oOyBwYXRoID0gRXh0cmFQdWJsaWNTeW1ib2xzRm9yVEFQSS5oOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwogCQlGMDM2OTc4NzE1RjRCRjA1MDBDM0E4MEUgLyogV2ViQ29sb3JQaWNrZXIu
Y3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gV2ViQ29sb3JQaWNrZXIu
Y3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtODYzNCw2ICs4NjQ4LDcgQEAKIAkJ
CQk1NzJFQkJEQzI1MzkyMTgxMDAwNTUyQjMgLyogQXBwQXR0ZXN0U1BJLmggKi8sCiAJCQkJOTU2
NTA4MzcyNkQ4N0EyQjAwRTE1Q0I3IC8qIEFwcGxlTWVkaWFTZXJ2aWNlc1NQSS5oICovLAogCQkJ
CTk1NjUwODM4MjZEODdBMkIwMEUxNUNCNyAvKiBBcHBsZU1lZGlhU2VydmljZXNVSVNQSS5oICov
LAorCQkJCUVCQThEM0FBMjdBNUUzMTMwMENCNzkwMCAvKiBBcHBsZVB1c2hTZXJ2aWNlU1BJLmgg
Ki8sCiAJCQkJNTdGQUJCMEUyNTgxN0NGMDAwNTlEQzk1IC8qIEF1dGhlbnRpY2F0aW9uU2Vydmlj
ZXNDb3JlU1BJLmggKi8sCiAJCQkJMUE1NzA1MTAxQkU0MTBFNTAwODc0QUYxIC8qIEJsb2NrU1BJ
LmggKi8sCiAJCQkJRTUwNjIwOTEyNTQyMTAyMDAwQzQzMDkxIC8qIENvbnRhY3RzVUlTUEkuaCAq
LywKQEAgLTEwMDQ0LDE2ICsxMDA1OSwyMiBAQAogCQkJCTUxN0I1RjYzMjc1QThENUMwMDJEQzIy
RCAvKiB3ZWJwdXNodG9vbCAqLywKIAkJCQk1MTYwRTk1NDI3NEI4ODcxMDA1NjczODggLyogQXBw
QnVuZGxlUmVxdWVzdC5oICovLAogCQkJCTUxNjBFOTUzMjc0Qjg4NzEwMDU2NzM4OCAvKiBBcHBC
dW5kbGVSZXF1ZXN0Lm1tICovLAorCQkJCUVCQThEM0FFMjdBNUUzM0YwMENCNzkwMCAvKiBBcHBs
ZVB1c2hTZXJ2aWNlQ29ubmVjdGlvbi5oICovLAorCQkJCUVCQThEM0FDMjdBNUUzM0UwMENCNzkw
MCAvKiBBcHBsZVB1c2hTZXJ2aWNlQ29ubmVjdGlvbi5tbSAqLywKIAkJCQlFQjBEMzEyRTI3NUFF
MTMzMDA4NjNEOEYgLyogY29tLmFwcGxlLndlYmtpdC53ZWJwdXNoZC5pb3MucGxpc3QgKi8sCiAJ
CQkJRUIwRDMxMkQyNzVBRTEzMzAwODYzRDhGIC8qIGNvbS5hcHBsZS53ZWJraXQud2VicHVzaGQu
bWFjLnBsaXN0ICovLAogCQkJCTUxRjdCQjc1Mjc0NDk4QkIwMEM0NUE3MiAvKiBNb2NrQXBwQnVu
ZGxlRm9yVGVzdGluZy5oICovLAogCQkJCTUxRjdCQjc0Mjc0NDk4QkEwMEM0NUE3MiAvKiBNb2Nr
QXBwQnVuZGxlRm9yVGVzdGluZy5tbSAqLywKIAkJCQk1MTYwRTk1QzI3NEMyQTAzMDA1NjczODgg
LyogTW9ja0FwcEJ1bmRsZVJlZ2lzdHJ5LmggKi8sCiAJCQkJNTE2MEU5NUYyNzRDMkEzRjAwNTY3
Mzg4IC8qIE1vY2tBcHBCdW5kbGVSZWdpc3RyeS5tbSAqLywKKwkJCQlFQkE4RDNBRDI3QTVFMzNF
MDBDQjc5MDAgLyogTW9ja1B1c2hTZXJ2aWNlQ29ubmVjdGlvbi5oICovLAorCQkJCUVCQThEM0Iw
MjdBNUUzM0YwMENCNzkwMCAvKiBNb2NrUHVzaFNlcnZpY2VDb25uZWN0aW9uLm1tICovLAogCQkJ
CTUxNjBFOTU3Mjc0QzBEODgwMDU2NzM4OCAvKiBQdXNoQXBwQnVuZGxlLmggKi8sCiAJCQkJNTE2
MEU5NTgyNzRDMEQ4ODAwNTY3Mzg4IC8qIFB1c2hBcHBCdW5kbGUubW0gKi8sCiAJCQkJNTFGN0JC
NzkyNzQ0QzUwNzAwQzQ1QTcyIC8qIFB1c2hDbGllbnRDb25uZWN0aW9uLmggKi8sCiAJCQkJNTFG
N0JCN0EyNzQ0QzUwNzAwQzQ1QTcyIC8qIFB1c2hDbGllbnRDb25uZWN0aW9uLm1tICovLAorCQkJ
CUVCQThEM0FGMjdBNUUzM0YwMENCNzkwMCAvKiBQdXNoU2VydmljZUNvbm5lY3Rpb24uaCAqLywK
KwkJCQlFQkE4RDNCMTI3QTVFMzNGMDBDQjc5MDAgLyogUHVzaFNlcnZpY2VDb25uZWN0aW9uLm1t
ICovLAogCQkJCTUxN0I1Rjc3Mjc1RTk3OTUwMDJEQzIyRCAvKiB3ZWJwdXNoZC5jcHAgKi8sCiAJ
CQkJNTEyQ0Q2OUQyNzIzMzkzQTAwRjdGOEVDIC8qIFdlYlB1c2hEYWVtb24uaCAqLywKIAkJCQk1
MTJDRDY5RTI3MjMzOTNBMDBGN0Y4RUMgLyogV2ViUHVzaERhZW1vbi5tbSAqLywKQEAgLTEyODY1
LDYgKzEyODg2LDggQEAKIAkJCQlGNDhEMkE4NTIxNTgzQTdFMDBDNjc1MkIgLyogQXBwS2l0U1BJ
LmggaW4gSGVhZGVycyAqLywKIAkJCQk5NTY1MDgzOTI2RDg3QTJCMDBFMTVDQjcgLyogQXBwbGVN
ZWRpYVNlcnZpY2VzU1BJLmggaW4gSGVhZGVycyAqLywKIAkJCQk5NTY1MDgzQTI2RDg3QTJCMDBF
MTVDQjcgLyogQXBwbGVNZWRpYVNlcnZpY2VzVUlTUEkuaCBpbiBIZWFkZXJzICovLAorCQkJCUVC
QThEM0I0MjdBNUUzM0YwMENCNzkwMCAvKiBBcHBsZVB1c2hTZXJ2aWNlQ29ubmVjdGlvbi5oIGlu
IEhlYWRlcnMgKi8sCisJCQkJRUJBOEQzQUIyN0E1RTMxMzAwQ0I3OTAwIC8qIEFwcGxlUHVzaFNl
cnZpY2VTUEkuaCBpbiBIZWFkZXJzICovLAogCQkJCUY0RUM5NEUzMjM1NkNDNTcwMDBCQjYxNCAv
KiBBcHBsaWNhdGlvblNlcnZpY2VzU1BJLmggaW4gSGVhZGVycyAqLywKIAkJCQkxQUQ0QzE5MzFC
MzlGMzMyMDBBQkMyOEUgLyogQXBwbGljYXRpb25TdGF0ZVRyYWNrZXIuaCBpbiBIZWFkZXJzICov
LAogCQkJCTQ5MzEwMkJEMjY4M0YzRDAwMDJCQjg4NSAvKiBBcHBQcml2YWN5UmVwb3J0LmggaW4g
SGVhZGVycyAqLywKQEAgLTEzMDgyLDYgKzEzMTA1LDcgQEAKIAkJCQk1N0RDRURDNzIxNEYxODMw
MDAxNkI4NDcgLyogTW9ja0xvY2FsQ29ubmVjdGlvbi5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNTdE
Q0VEQzMyMTRGMTE0QzAwMTZCODQ3IC8qIE1vY2tMb2NhbFNlcnZpY2UuaCBpbiBIZWFkZXJzICov
LAogCQkJCTU3QjgyNjRDMjMwNjAzQzEwMEI3MkVCMCAvKiBNb2NrTmZjU2VydmljZS5oIGluIEhl
YWRlcnMgKi8sCisJCQkJRUJBOEQzQjMyN0E1RTMzRjAwQ0I3OTAwIC8qIE1vY2tQdXNoU2Vydmlj
ZUNvbm5lY3Rpb24uaCBpbiBIZWFkZXJzICovLAogCQkJCTcxMzdCQTgwMjVGMTU0MjAwMDkxNEVF
MyAvKiBNb2RlbEVsZW1lbnRDb250cm9sbGVyLmggaW4gSGVhZGVycyAqLywKIAkJCQlDMEUzQUE3
QzEyMDlFODNDMDBBNDlEMDEgLyogTW9kdWxlLmggaW4gSGVhZGVycyAqLywKIAkJCQkyRDUwMzY2
QjFCQ0RFMTc5MDBFMjBCQjMgLyogTmF0aXZlV2ViR2VzdHVyZUV2ZW50LmggaW4gSGVhZGVycyAq
LywKQEAgLTEzMjAyLDYgKzEzMjI2LDcgQEAKIAkJCQk1MTdCNUY4MTI3NUU5N0I2MDAyREMyMkQg
LyogUHVzaEFwcEJ1bmRsZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNTE3QjVGN0QyNzVFOTdCNjAw
MkRDMjJEIC8qIFB1c2hDbGllbnRDb25uZWN0aW9uLmggaW4gSGVhZGVycyAqLywKIAkJCQk1MTdC
NUY5NTI3NUVCQTYzMDAyREMyMkQgLyogUHVzaE1lc3NhZ2VGb3JUZXN0aW5nLmggaW4gSGVhZGVy
cyAqLywKKwkJCQlFQkE4RDNCNTI3QTVFMzNGMDBDQjc5MDAgLyogUHVzaFNlcnZpY2VDb25uZWN0
aW9uLmggaW4gSGVhZGVycyAqLywKIAkJCQlBMUU2ODg3MDFGNkUyQkFCMDA3MDA2QTYgLyogUXVh
cmFudGluZVNQSS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMUEwQzIyN0UyNDUxMTMwQTAwRUQ2MTRE
IC8qIFF1aWNrTG9va1RodW1ibmFpbGluZ1NvZnRMaW5rLmggaW4gSGVhZGVycyAqLywKIAkJCQkx
QUVFNTcyNTI0MDlGMTQyMDAyMDA1RDYgLyogUXVpY2tMb29rVGh1bWJuYWlsTG9hZGVyLmggaW4g
SGVhZGVycyAqLywKQEAgLTE1Mzk1LDYgKzE1NDIwLDcgQEAKIAkJCQk5OUU3MTg5QTIxRjc5RDlF
MDA1NUU5NzUgLyogX1dLVG91Y2hFdmVudEdlbmVyYXRvci5tbSBpbiBTb3VyY2VzICovLAogCQkJ
CTU3MkVCQkRBMjUzOEY2QjQwMDA1NTJCMyAvKiBBcHBBdHRlc3RJbnRlcm5hbFNvZnRMaW5rLm1t
IGluIFNvdXJjZXMgKi8sCiAJCQkJNTE3QjVGN0UyNzVFOTdCNjAwMkRDMjJEIC8qIEFwcEJ1bmRs
ZVJlcXVlc3QubW0gaW4gU291cmNlcyAqLywKKwkJCQlFQkE4RDNCMjI3QTVFMzNGMDBDQjc5MDAg
LyogQXBwbGVQdXNoU2VydmljZUNvbm5lY3Rpb24ubW0gaW4gU291cmNlcyAqLywKIAkJCQkyREVC
MUQyRTIxMjc0NzM2MDA5MzM5MDYgLyogQXJndW1lbnRDb2RlcnNDRi5jcHAgaW4gU291cmNlcyAq
LywKIAkJCQlDRDQ1NzBENDI0NDExRDBGMDBBM0RDRUIgLyogQXVkaW9TZXNzaW9uUm91dGluZ0Fy
Yml0cmF0b3IuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQ0Q0NTcwRDMyNDQxMTNCNTAwQTNEQ0VC
IC8qIEF1ZGlvU2Vzc2lvblJvdXRpbmdBcmJpdHJhdG9yUHJveHlNZXNzYWdlUmVjZWl2ZXIuY3Bw
IGluIFNvdXJjZXMgKi8sCkBAIC0xNTQyOCw2ICsxNTQ1NCw3IEBACiAJCQkJOUI0NzkwOTEyNTMx
NTYzMjAwRUMxMUFCIC8qIE1lc3NhZ2VBcmd1bWVudERlc2NyaXB0aW9ucy5jcHAgaW4gU291cmNl
cyAqLywKIAkJCQk1MTdCNUY4NDI3NUU5N0I2MDAyREMyMkQgLyogTW9ja0FwcEJ1bmRsZUZvclRl
c3RpbmcubW0gaW4gU291cmNlcyAqLywKIAkJCQk1MTdCNUY4NjI3NUU5N0I2MDAyREMyMkQgLyog
TW9ja0FwcEJ1bmRsZVJlZ2lzdHJ5Lm1tIGluIFNvdXJjZXMgKi8sCisJCQkJRUJBOEQzQjYyN0E1
RTMzRjAwQ0I3OTAwIC8qIE1vY2tQdXNoU2VydmljZUNvbm5lY3Rpb24ubW0gaW4gU291cmNlcyAq
LywKIAkJCQk1N0I4MjY0NTIzMDRGMTQwMDBCNzJFQjAgLyogTmVhckZpZWxkU29mdExpbmsubW0g
aW4gU291cmNlcyAqLywKIAkJCQlDMUMxQjMwRjI1NDBGNTBEMDBEOTEwMEIgLyogTmV0d29ya0Nv
bm5lY3Rpb25Ub1dlYlByb2Nlc3NNYWMubW0gaW4gU291cmNlcyAqLywKIAkJCQk1MUREOUYyODE2
MzY3REEyMDAxNTc4RTkgLyogTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3NNZXNzYWdlUmVj
ZWl2ZXIuY3BwIGluIFNvdXJjZXMgKi8sCkBAIC0xNTQ1Myw2ICsxNTQ4MCw3IEBACiAJCQkJMkQ1
NEMzMUIyMTJGNERBNjAwNDlDMTc0IC8qIFByb2Nlc3NMYXVuY2hlci5jcHAgaW4gU291cmNlcyAq
LywKIAkJCQk1MTdCNUY4MjI3NUU5N0I2MDAyREMyMkQgLyogUHVzaEFwcEJ1bmRsZS5tbSBpbiBT
b3VyY2VzICovLAogCQkJCTUxN0I1RjdCMjc1RTk3QTkwMDJEQzIyRCAvKiBQdXNoQ2xpZW50Q29u
bmVjdGlvbi5tbSBpbiBTb3VyY2VzICovLAorCQkJCUVCQThEM0I3MjdBNUUzM0YwMENCNzkwMCAv
KiBQdXNoU2VydmljZUNvbm5lY3Rpb24ubW0gaW4gU291cmNlcyAqLywKIAkJCQkxQTBDMjI3RjI0
NTExMzBBMDBFRDYxNEQgLyogUXVpY2tMb29rVGh1bWJuYWlsaW5nU29mdExpbmsubW0gaW4gU291
cmNlcyAqLywKIAkJCQkxQTBDMjI1RTI0MzU3NUNEMDBFRDYxNEQgLyogUXVpY2tMb29rVGh1bWJu
YWlsTG9hZGVyLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJOUIxMjI5Q0UyM0ZGMjVGMjAwOENBNzUx
IC8qIFJlbW90ZUF1ZGlvRGVzdGluYXRpb25NYW5hZ2VyLmNwcCBpbiBTb3VyY2VzICovLApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC93ZWJwdXNoZC9BcHBsZVB1c2hTZXJ2aWNlQ29ubmVjdGlv
bi5oIGIvU291cmNlL1dlYktpdC93ZWJwdXNoZC9BcHBsZVB1c2hTZXJ2aWNlQ29ubmVjdGlvbi5o
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAuLjg3NDdlNzVkNjE4NTUwMGZmNWE4MGRlYzZkM2FjYTU1ODM1MDM3MWEKLS0t
IC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L3dlYnB1c2hkL0FwcGxlUHVzaFNlcnZpY2VD
b25uZWN0aW9uLmgKQEAgLTAsMCArMSw2NyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMiBB
cHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5k
IHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2Rp
ZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRp
dGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUg
bXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0
cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1h
dGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZU
V0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMg
SVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNI
QU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBE
SVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRP
UlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQ
RUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RT
IE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MK
KyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElB
QklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9S
VCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkg
V0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgor
ICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQor
CisjaWYgSEFWRShBUFBMRV9QVVNIX1NFUlZJQ0VfVVJMX1RPS0VOX1NVUFBPUlQpCisKKyNpbmNs
dWRlICJBcHBsZVB1c2hTZXJ2aWNlU1BJLmgiCisjaW5jbHVkZSAiUHVzaFNlcnZpY2VDb25uZWN0
aW9uLmgiCisjaW5jbHVkZSA8d3RmL0hhc2hNYXAuaD4KKworbmFtZXNwYWNlIFdlYlB1c2hEIHsK
KworY2xhc3MgQXBwbGVQdXNoU2VydmljZUNvbm5lY3Rpb24gZmluYWwgOiBwdWJsaWMgUHVzaFNl
cnZpY2VDb25uZWN0aW9uIHsKK3B1YmxpYzoKKyAgICBBcHBsZVB1c2hTZXJ2aWNlQ29ubmVjdGlv
bihjb25zdCBTdHJpbmcmIGluY29taW5nUHVzaFNlcnZpY2VOYW1lKTsKKyAgICB+QXBwbGVQdXNo
U2VydmljZUNvbm5lY3Rpb24oKTsKKworICAgIHZvaWQgc3Vic2NyaWJlKGNvbnN0IFN0cmluZyYg
dG9waWMsIGNvbnN0IFZlY3Rvcjx1aW50OF90PiYgdmFwaWRQdWJsaWNLZXksIFN1YnNjcmliZUhh
bmRsZXImJikgZmluYWw7CisgICAgdm9pZCB1bnN1YnNjcmliZShjb25zdCBTdHJpbmcmIHRvcGlj
LCBjb25zdCBWZWN0b3I8dWludDhfdD4mIHZhcGlkUHVibGljS2V5LCBVbnN1YnNjcmliZUhhbmRs
ZXImJikgZmluYWw7CisKKyAgICBWZWN0b3I8U3RyaW5nPiBlbmFibGVkVG9waWNzKCkgb3ZlcnJp
ZGU7CisgICAgVmVjdG9yPFN0cmluZz4gaWdub3JlZFRvcGljcygpIG92ZXJyaWRlOworICAgIFZl
Y3RvcjxTdHJpbmc+IG9wcG9ydHVuaXN0aWNUb3BpY3MoKSBvdmVycmlkZTsKKyAgICBWZWN0b3I8
U3RyaW5nPiBub25XYWtpbmdUb3BpY3MoKSBvdmVycmlkZTsKKworICAgIHZvaWQgc2V0RW5hYmxl
ZFRvcGljcyhWZWN0b3I8U3RyaW5nPiYmKSBvdmVycmlkZTsKKyAgICB2b2lkIHNldElnbm9yZWRU
b3BpY3MoVmVjdG9yPFN0cmluZz4mJikgb3ZlcnJpZGU7CisgICAgdm9pZCBzZXRPcHBvcnR1bmlz
dGljVG9waWNzKFZlY3RvcjxTdHJpbmc+JiYpIG92ZXJyaWRlOworICAgIHZvaWQgc2V0Tm9uV2Fr
aW5nVG9waWNzKFZlY3RvcjxTdHJpbmc+JiYpIG92ZXJyaWRlOworCisgICAgdm9pZCBzZXRUb3Bp
Y0xpc3RzKFRvcGljTGlzdHMmJikgb3ZlcnJpZGU7CisKK3ByaXZhdGU6CisgICAgUmV0YWluUHRy
PEFQU0Nvbm5lY3Rpb24+IG1fY29ubmVjdGlvbjsKKyAgICBSZXRhaW5QdHI8aWQ8QVBTQ29ubmVj
dGlvbkRlbGVnYXRlPj4gbV9kZWxlZ2F0ZTsKKyAgICB1bnNpZ25lZCBtX2hhbmRsZXJJZGVudGlm
aWVyIHsgMCB9OworICAgIEhhc2hNYXA8dW5zaWduZWQsIFN1YnNjcmliZUhhbmRsZXI+IG1fc3Vi
c2NyaWJlSGFuZGxlcnM7CisgICAgSGFzaE1hcDx1bnNpZ25lZCwgVW5zdWJzY3JpYmVIYW5kbGVy
PiBtX3Vuc3Vic2NyaWJlSGFuZGxlcnM7Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJQdXNoRAor
CisjZW5kaWYgLy8gSEFWRShBUFBMRV9QVVNIX1NFUlZJQ0VfVVJMX1RPS0VOX1NVUFBPUlQpCisK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvd2VicHVzaGQvQXBwbGVQdXNoU2VydmljZUNvbm5l
Y3Rpb24ubW0gYi9Tb3VyY2UvV2ViS2l0L3dlYnB1c2hkL0FwcGxlUHVzaFNlcnZpY2VDb25uZWN0
aW9uLm1tCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLmVmZjdlYWU1Y2ZmYTg3Nzc4YjY2NjJhYjZiMTU0ZTBkNGE0ZjA3
ZDgKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L3dlYnB1c2hkL0FwcGxlUHVzaFNl
cnZpY2VDb25uZWN0aW9uLm1tCkBAIC0wLDAgKzEsMTcwIEBACisvKgorICogQ29weXJpZ2h0IChD
KSAyMDIyIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1
dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQK
KyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dp
bmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3Vy
Y2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAy
LiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3Zl
IGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Ig
b3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBU
SElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRP
UlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMg
T0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBP
U0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENP
TlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURF
TlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRV
VEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBC
VVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9S
WSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZ
LCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5H
IElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJ
U0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2ltcG9y
dCAiY29uZmlnLmgiCisjaW1wb3J0ICJBcHBsZVB1c2hTZXJ2aWNlQ29ubmVjdGlvbi5oIgorCisj
aWYgSEFWRShBUFBMRV9QVVNIX1NFUlZJQ0VfVVJMX1RPS0VOX1NVUFBPUlQpCisKKyNpbXBvcnQg
PHd0Zi9CbG9ja1B0ci5oPgorI2ltcG9ydCA8d3RmL2NvY29hL1ZlY3RvckNvY29hLmg+CisKK0Bp
bnRlcmZhY2UgX1dLQVBTQ29ubmVjdGlvbkRlbGVnYXRlIDogTlNPYmplY3Q8QVBTQ29ubmVjdGlv
bkRlbGVnYXRlPiB7CisgICAgV2Vha1B0cjxXZWJQdXNoRDo6QXBwbGVQdXNoU2VydmljZUNvbm5l
Y3Rpb24+IF9jb25uZWN0aW9uOworfQorQGVuZAorCitAaW1wbGVtZW50YXRpb24gX1dLQVBTQ29u
bmVjdGlvbkRlbGVnYXRlCisKKy0gKGluc3RhbmNldHlwZSlpbml0V2l0aENvbm5lY3Rpb246KFdl
YlB1c2hEOjpBcHBsZVB1c2hTZXJ2aWNlQ29ubmVjdGlvbiAqKWNvbm5lY3Rpb24KK3sKKyAgICBp
ZiAoKHNlbGYgPSBbc3VwZXIgaW5pdF0pKQorICAgICAgICBfY29ubmVjdGlvbiA9IGNvbm5lY3Rp
b247CisgICAgcmV0dXJuIHNlbGY7Cit9CisKKy0gKHZvaWQpY29ubmVjdGlvbjooQVBTQ29ubmVj
dGlvbiAqKWNvbm5lY3Rpb24gZGlkUmVjZWl2ZVB1YmxpY1Rva2VuOihOU0RhdGEgKilwdWJsaWNU
b2tlbgoreworICAgIFVOVVNFRF9QQVJBTShjb25uZWN0aW9uKTsKKyAgICBVTlVTRURfUEFSQU0o
cHVibGljVG9rZW4pOworfQorCistICh2b2lkKWNvbm5lY3Rpb246KEFQU0Nvbm5lY3Rpb24gKilj
b25uZWN0aW9uIGRpZFJlY2VpdmVJbmNvbWluZ01lc3NhZ2U6KEFQU0luY29taW5nTWVzc2FnZSAq
KW1lc3NhZ2UKK3sKKyAgICBVTlVTRURfUEFSQU0oY29ubmVjdGlvbik7CisKKyAgICBBU1NFUlQo
aXNNYWluUnVuTG9vcCgpKTsKKworICAgIGlmIChfY29ubmVjdGlvbikKKyAgICAgICAgX2Nvbm5l
Y3Rpb24tPmRpZFJlY2VpdmVQdXNoTWVzc2FnZShtZXNzYWdlLnRvcGljLCBtZXNzYWdlLnVzZXJJ
bmZvKTsKK30KKworQGVuZAorCituYW1lc3BhY2UgV2ViUHVzaEQgeworCitBcHBsZVB1c2hTZXJ2
aWNlQ29ubmVjdGlvbjo6QXBwbGVQdXNoU2VydmljZUNvbm5lY3Rpb24oY29uc3QgU3RyaW5nJiBp
bmNvbWluZ1B1c2hTZXJ2aWNlTmFtZSkKK3sKKyAgICBtX2Nvbm5lY3Rpb24gPSBhZG9wdE5TKFtb
QVBTQ29ubmVjdGlvbiBhbGxvY10gaW5pdFdpdGhFbnZpcm9ubWVudE5hbWU6QVBTRW52aXJvbm1l
bnRQcm9kdWN0aW9uIG5hbWVkRGVsZWdhdGVQb3J0OmluY29taW5nUHVzaFNlcnZpY2VOYW1lIHF1
ZXVlOmRpc3BhdGNoX2dldF9tYWluX3F1ZXVlKCldKTsKKyAgICBtX2RlbGVnYXRlID0gYWRvcHRO
UyhbW19XS0FQU0Nvbm5lY3Rpb25EZWxlZ2F0ZSBhbGxvY10gaW5pdFdpdGhDb25uZWN0aW9uOnRo
aXNdKTsKKyAgICBbbV9jb25uZWN0aW9uIHNldERlbGVnYXRlOm1fZGVsZWdhdGUuZ2V0KCldOwor
fQorCitBcHBsZVB1c2hTZXJ2aWNlQ29ubmVjdGlvbjo6fkFwcGxlUHVzaFNlcnZpY2VDb25uZWN0
aW9uKCkKK3sKKyAgICBbbV9jb25uZWN0aW9uIHNldERlbGVnYXRlOm5pbF07Cit9CisKK3N0YXRp
YyBSZXRhaW5QdHI8QVBTVVJMVG9rZW5JbmZvPiBtYWtlVG9rZW5JbmZvKGNvbnN0IFN0cmluZyYg
dG9waWMsIGNvbnN0IFZlY3Rvcjx1aW50OF90PiYgdmFwaWRQdWJsaWNLZXkpCit7CisgICAgYXV0
byBzZXJ2ZXJQdWJsaWNLZXkgPSBhZG9wdE5TKFtbTlNEYXRhIGFsbG9jXSBpbml0V2l0aEJ5dGVz
OnZhcGlkUHVibGljS2V5LmRhdGEoKSBsZW5ndGg6dmFwaWRQdWJsaWNLZXkuc2l6ZSgpXSk7Cisg
ICAgcmV0dXJuIGFkb3B0TlMoW1tBUFNVUkxUb2tlbkluZm8gYWxsb2NdIGluaXRXaXRoVG9waWM6
dG9waWMgdmFwaWRQdWJsaWNLZXk6c2VydmVyUHVibGljS2V5LmdldCgpXSk7Cit9CisKK3ZvaWQg
QXBwbGVQdXNoU2VydmljZUNvbm5lY3Rpb246OnN1YnNjcmliZShjb25zdCBTdHJpbmcmIHRvcGlj
LCBjb25zdCBWZWN0b3I8dWludDhfdD4mIHZhcGlkUHVibGljS2V5LCBTdWJzY3JpYmVIYW5kbGVy
JiYgc3Vic2NyaWJlSGFuZGxlcikKK3sKKyAgICBBU1NFUlQoaXNNYWluUnVuTG9vcCgpKTsKKwor
ICAgIC8vIFN0YXNoIHRoZSBjb21wbGV0aW9uIGhhbmRsZXIgYXdheSBhbmQgbG9vayBpdCB1cCBi
eSBpZCBzbyB0aGF0IHdlIGNhbiBlbnN1cmUgaXQgZ2V0cyBkZXN0cnVjdGVkIG9uIHRoZSBtYWlu
IHRocmVhZC4gSWYgd2UgbW92ZSB0aGUgaGFuZGxlciBhbmQgY2FwdHVyZSBpdCBpbiB0aGUgT2Jq
LUMgYmxvY2ssIGl0IG1pZ2h0IGdldCBkZXN0cnVjdGVkIG9uIGEgc2Vjb25kYXJ5IHRocmVhZCBz
aW5jZSB0aGlzIGNvbXBsZXRpb24gYmxvY2sgbW92ZXMgYmV0d2VlbiBkaWZmZXJlbnQgZGlzcGF0
Y2ggcXVldWVzIGluIHRoZSBBUFMgaW1wbGVtZW50YXRpb24uCisgICAgYXV0byBpZGVudGlmaWVy
ID0gKyttX2hhbmRsZXJJZGVudGlmaWVyOworICAgIG1fc3Vic2NyaWJlSGFuZGxlcnMuYWRkKGlk
ZW50aWZpZXIsIFdURk1vdmUoc3Vic2NyaWJlSGFuZGxlcikpOworCisgICAgW21fY29ubmVjdGlv
biByZXF1ZXN0VVJMVG9rZW5Gb3JJbmZvOm1ha2VUb2tlbkluZm8odG9waWMsIHZhcGlkUHVibGlj
S2V5KS5nZXQoKSBjb21wbGV0aW9uOm1ha2VCbG9ja1B0cihbdGhpcywgd2Vha1RoaXMgPSBXZWFr
UHRyIHsgKnRoaXMgfSwgaWRlbnRpZmllcl0gKEFQU1VSTFRva2VuICp0b2tlbiwgTlNFcnJvciAq
ZXJyb3IpIHsKKyAgICAgICAgaWYgKCF3ZWFrVGhpcykKKyAgICAgICAgICAgIHJldHVybjsKKwor
ICAgICAgICBhdXRvIGhhbmRsZXIgPSBtX3N1YnNjcmliZUhhbmRsZXJzLnRha2UoaWRlbnRpZmll
cik7CisgICAgICAgIGhhbmRsZXIodG9rZW4udG9rZW5VUkwsIGVycm9yKTsKKyAgICB9KS5nZXQo
KV07Cit9CisKK3ZvaWQgQXBwbGVQdXNoU2VydmljZUNvbm5lY3Rpb246OnVuc3Vic2NyaWJlKGNv
bnN0IFN0cmluZyYgdG9waWMsIGNvbnN0IFZlY3Rvcjx1aW50OF90PiYgdmFwaWRQdWJsaWNLZXks
IFVuc3Vic2NyaWJlSGFuZGxlciYmIHVuc3Vic2NyaWJlSGFuZGxlcikKK3sKKyAgICBBU1NFUlQo
aXNNYWluUnVuTG9vcCgpKTsKKworICAgIC8vIFNlZSBzdWJzY3JpYmUgZm9yIHdoeSB3ZSBzdGFz
aCB0aGUgaGFuZGxlciBpbnRvIGEgbWFwLgorICAgIGF1dG8gaWRlbnRpZmllciA9ICsrbV9oYW5k
bGVySWRlbnRpZmllcjsKKyAgICBtX3Vuc3Vic2NyaWJlSGFuZGxlcnMuYWRkKGlkZW50aWZpZXIs
IFdURk1vdmUodW5zdWJzY3JpYmVIYW5kbGVyKSk7CisKKyAgICBbbV9jb25uZWN0aW9uIGludmFs
aWRhdGVVUkxUb2tlbkZvckluZm86bWFrZVRva2VuSW5mbyh0b3BpYywgdmFwaWRQdWJsaWNLZXkp
LmdldCgpIGNvbXBsZXRpb246bWFrZUJsb2NrUHRyKFt0aGlzLCB3ZWFrVGhpcyA9IFdlYWtQdHIg
eyAqdGhpcyB9LCBpZGVudGlmaWVyXSAoQk9PTCBzdWNjZXNzLCBOU0Vycm9yICplcnJvcikgewor
ICAgICAgICBpZiAoIXdlYWtUaGlzKQorICAgICAgICAgICAgcmV0dXJuOworCisgICAgICAgIC8v
IEZJWE1FOiByZW1vdmUgdGhpcyBvbmNlIEFQUyBzdG9wcyBjYWxsaW5nIGJhY2sgb24gdGhlIHdy
b25nIHF1ZXVlIChyZGFyOi8vODgxMDAyNzUpLgorICAgICAgICBkaXNwYXRjaF9hc3luYyhkaXNw
YXRjaF9nZXRfbWFpbl9xdWV1ZSgpLCBeeworICAgICAgICAgICAgYXV0byBoYW5kbGVyID0gbV91
bnN1YnNjcmliZUhhbmRsZXJzLnRha2UoaWRlbnRpZmllcik7CisgICAgICAgICAgICBoYW5kbGVy
KHN1Y2Nlc3MsIGVycm9yKTsKKyAgICAgICAgfSk7CisgICAgfSkuZ2V0KCldOworfQorCitWZWN0
b3I8U3RyaW5nPiBBcHBsZVB1c2hTZXJ2aWNlQ29ubmVjdGlvbjo6ZW5hYmxlZFRvcGljcygpCit7
CisgICAgcmV0dXJuIG1ha2VWZWN0b3I8U3RyaW5nPihbbV9jb25uZWN0aW9uIGVuYWJsZWRUb3Bp
Y3NdKTsKK30KKworVmVjdG9yPFN0cmluZz4gQXBwbGVQdXNoU2VydmljZUNvbm5lY3Rpb246Omln
bm9yZWRUb3BpY3MoKQoreworICAgIHJldHVybiBtYWtlVmVjdG9yPFN0cmluZz4oW21fY29ubmVj
dGlvbiBpZ25vcmVkVG9waWNzXSk7Cit9CisKK1ZlY3RvcjxTdHJpbmc+IEFwcGxlUHVzaFNlcnZp
Y2VDb25uZWN0aW9uOjpvcHBvcnR1bmlzdGljVG9waWNzKCkKK3sKKyAgICByZXR1cm4gbWFrZVZl
Y3RvcjxTdHJpbmc+KFttX2Nvbm5lY3Rpb24gb3Bwb3J0dW5pc3RpY1RvcGljc10pOworfQorCitW
ZWN0b3I8U3RyaW5nPiBBcHBsZVB1c2hTZXJ2aWNlQ29ubmVjdGlvbjo6bm9uV2FraW5nVG9waWNz
KCkKK3sKKyAgICByZXR1cm4gbWFrZVZlY3RvcjxTdHJpbmc+KFttX2Nvbm5lY3Rpb24gbm9uV2Fr
aW5nVG9waWNzXSk7Cit9CisKK3ZvaWQgQXBwbGVQdXNoU2VydmljZUNvbm5lY3Rpb246OnNldEVu
YWJsZWRUb3BpY3MoVmVjdG9yPFN0cmluZz4mJiB0b3BpY3MpCit7CisgICAgW21fY29ubmVjdGlv
biBfc2V0RW5hYmxlZFRvcGljczpjcmVhdGVOU0FycmF5KFdURk1vdmUodG9waWNzKSkuZ2V0KCld
OworfQorCit2b2lkIEFwcGxlUHVzaFNlcnZpY2VDb25uZWN0aW9uOjpzZXRJZ25vcmVkVG9waWNz
KFZlY3RvcjxTdHJpbmc+JiYgdG9waWNzKQoreworICAgIFttX2Nvbm5lY3Rpb24gX3NldElnbm9y
ZWRUb3BpY3M6Y3JlYXRlTlNBcnJheShXVEZNb3ZlKHRvcGljcykpLmdldCgpXTsKK30KKwordm9p
ZCBBcHBsZVB1c2hTZXJ2aWNlQ29ubmVjdGlvbjo6c2V0T3Bwb3J0dW5pc3RpY1RvcGljcyhWZWN0
b3I8U3RyaW5nPiYmIHRvcGljcykKK3sKKyAgICBbbV9jb25uZWN0aW9uIF9zZXRPcHBvcnR1bmlz
dGljVG9waWNzOmNyZWF0ZU5TQXJyYXkoV1RGTW92ZSh0b3BpY3MpKS5nZXQoKV07Cit9CisKK3Zv
aWQgQXBwbGVQdXNoU2VydmljZUNvbm5lY3Rpb246OnNldE5vbldha2luZ1RvcGljcyhWZWN0b3I8
U3RyaW5nPiYmIHRvcGljcykKK3sKKyAgICBbbV9jb25uZWN0aW9uIF9zZXROb25XYWtpbmdUb3Bp
Y3M6Y3JlYXRlTlNBcnJheShXVEZNb3ZlKHRvcGljcykpLmdldCgpXTsKK30KKwordm9pZCBBcHBs
ZVB1c2hTZXJ2aWNlQ29ubmVjdGlvbjo6c2V0VG9waWNMaXN0cyhUb3BpY0xpc3RzJiYgdG9waWNM
aXN0cykKK3sKKyAgICBbbV9jb25uZWN0aW9uIHNldEVuYWJsZWRUb3BpY3M6Y3JlYXRlTlNBcnJh
eShXVEZNb3ZlKHRvcGljTGlzdHMuZW5hYmxlZFRvcGljcykpLmdldCgpIGlnbm9yZWRUb3BpY3M6
Y3JlYXRlTlNBcnJheShXVEZNb3ZlKHRvcGljTGlzdHMuaWdub3JlZFRvcGljcykpLmdldCgpIG9w
cG9ydHVuaXN0aWNUb3BpY3M6Y3JlYXRlTlNBcnJheShXVEZNb3ZlKHRvcGljTGlzdHMub3Bwb3J0
dW5pc3RpY1RvcGljcykpLmdldCgpIG5vbldha2luZ1RvcGljczpjcmVhdGVOU0FycmF5KFdURk1v
dmUodG9waWNMaXN0cy5ub25XYWtpbmdUb3BpY3MpKS5nZXQoKV07Cit9CisKK30gLy8gbmFtZXNw
YWNlIFdlYlB1c2hECisKKyNlbmRpZiAvLyBIQVZFKEFQUExFX1BVU0hfU0VSVklDRV9VUkxfVE9L
RU5fU1VQUE9SVCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvd2VicHVzaGQvTW9ja1B1c2hT
ZXJ2aWNlQ29ubmVjdGlvbi5oIGIvU291cmNlL1dlYktpdC93ZWJwdXNoZC9Nb2NrUHVzaFNlcnZp
Y2VDb25uZWN0aW9uLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNzc2OWJiNmJkZDU4MjhlN2IxNjRjMTY3Yzg0NjBj
ZmRiZDdjMDQwMAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvd2VicHVzaGQvTW9j
a1B1c2hTZXJ2aWNlQ29ubmVjdGlvbi5oCkBAIC0wLDAgKzEsNTMgQEAKKy8qCisgKiBDb3B5cmln
aHQgKEMpIDIwMjIgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlz
dHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0
aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZv
bGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9m
IHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4K
KyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUg
YWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFu
ZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoK
KyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRS
SUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJ
RVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFO
VElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICog
UFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJ
VFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJ
TkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFH
RVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VC
U1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7
IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkg
VEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFC
SUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFS
SVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElG
IEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisj
cHJhZ21hIG9uY2UKKworI2luY2x1ZGUgIlB1c2hTZXJ2aWNlQ29ubmVjdGlvbi5oIgorCituYW1l
c3BhY2UgV2ViUHVzaEQgeworCitjbGFzcyBNb2NrUHVzaFNlcnZpY2VDb25uZWN0aW9uIGZpbmFs
IDogcHVibGljIFB1c2hTZXJ2aWNlQ29ubmVjdGlvbiB7CitwdWJsaWM6CisgICAgTW9ja1B1c2hT
ZXJ2aWNlQ29ubmVjdGlvbigpOworICAgIH5Nb2NrUHVzaFNlcnZpY2VDb25uZWN0aW9uKCk7CisK
KyAgICB2b2lkIHN1YnNjcmliZShjb25zdCBTdHJpbmcmIHRvcGljLCBjb25zdCBWZWN0b3I8dWlu
dDhfdD4mIHZhcGlkUHVibGljS2V5LCBTdWJzY3JpYmVIYW5kbGVyJiYpIG92ZXJyaWRlOworICAg
IHZvaWQgdW5zdWJzY3JpYmUoY29uc3QgU3RyaW5nJiB0b3BpYywgY29uc3QgVmVjdG9yPHVpbnQ4
X3Q+JiB2YXBpZFB1YmxpY0tleSwgVW5zdWJzY3JpYmVIYW5kbGVyJiYpIG92ZXJyaWRlOworCisg
ICAgVmVjdG9yPFN0cmluZz4gZW5hYmxlZFRvcGljcygpIG92ZXJyaWRlOworICAgIFZlY3RvcjxT
dHJpbmc+IGlnbm9yZWRUb3BpY3MoKSBvdmVycmlkZTsKKyAgICBWZWN0b3I8U3RyaW5nPiBvcHBv
cnR1bmlzdGljVG9waWNzKCkgb3ZlcnJpZGU7CisgICAgVmVjdG9yPFN0cmluZz4gbm9uV2FraW5n
VG9waWNzKCkgb3ZlcnJpZGU7CisKKyAgICB2b2lkIHNldEVuYWJsZWRUb3BpY3MoVmVjdG9yPFN0
cmluZz4mJikgb3ZlcnJpZGU7CisgICAgdm9pZCBzZXRJZ25vcmVkVG9waWNzKFZlY3RvcjxTdHJp
bmc+JiYpIG92ZXJyaWRlOworICAgIHZvaWQgc2V0T3Bwb3J0dW5pc3RpY1RvcGljcyhWZWN0b3I8
U3RyaW5nPiYmKSBvdmVycmlkZTsKKyAgICB2b2lkIHNldE5vbldha2luZ1RvcGljcyhWZWN0b3I8
U3RyaW5nPiYmKSBvdmVycmlkZTsKKworICAgIHZvaWQgc2V0VG9waWNMaXN0cyhUb3BpY0xpc3Rz
JiYpIG92ZXJyaWRlOworfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViUHVzaEQKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvd2VicHVzaGQvTW9ja1B1c2hTZXJ2aWNlQ29ubmVjdGlvbi5tbSBiL1Nv
dXJjZS9XZWJLaXQvd2VicHVzaGQvTW9ja1B1c2hTZXJ2aWNlQ29ubmVjdGlvbi5tbQpuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwLi5kYmVmYTc0YWVjZDlhOWVhMGU0MTk4MzM4NjhlMzA4ZDNkNzZmNjAzCi0tLSAvZGV2L251
bGwKKysrIGIvU291cmNlL1dlYktpdC93ZWJwdXNoZC9Nb2NrUHVzaFNlcnZpY2VDb25uZWN0aW9u
Lm1tCkBAIC0wLDAgKzEsODcgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjIgQXBwbGUgSW5j
LiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4g
c291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9u
LCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisg
KiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0
YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9u
cyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMg
cHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMg
UFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAq
IEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJ
VFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1F
RC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBC
RSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBF
WEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJW
SUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRF
UlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwg
V0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xV
RElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQg
T0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQ
T1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW1wb3J0ICJjb25maWcuaCIKKyNp
bXBvcnQgIk1vY2tQdXNoU2VydmljZUNvbm5lY3Rpb24uaCIKKworbmFtZXNwYWNlIFdlYlB1c2hE
IHsKKworTW9ja1B1c2hTZXJ2aWNlQ29ubmVjdGlvbjo6TW9ja1B1c2hTZXJ2aWNlQ29ubmVjdGlv
bigpCit7Cit9CisKK01vY2tQdXNoU2VydmljZUNvbm5lY3Rpb246On5Nb2NrUHVzaFNlcnZpY2VD
b25uZWN0aW9uKCkgPSBkZWZhdWx0OworCit2b2lkIE1vY2tQdXNoU2VydmljZUNvbm5lY3Rpb246
OnN1YnNjcmliZShjb25zdCBTdHJpbmcmLCBjb25zdCBWZWN0b3I8dWludDhfdD4mLCBTdWJzY3Jp
YmVIYW5kbGVyJiYgaGFuZGxlcikKK3sKKyAgICBoYW5kbGVyKHsgfSwgW05TRXJyb3IgZXJyb3JX
aXRoRG9tYWluOk5TQ29jb2FFcnJvckRvbWFpbiBjb2RlOk5TRmVhdHVyZVVuc3VwcG9ydGVkRXJy
b3IgdXNlckluZm86bmlsXSk7Cit9CisKK3ZvaWQgTW9ja1B1c2hTZXJ2aWNlQ29ubmVjdGlvbjo6
dW5zdWJzY3JpYmUoY29uc3QgU3RyaW5nJiwgY29uc3QgVmVjdG9yPHVpbnQ4X3Q+JiwgVW5zdWJz
Y3JpYmVIYW5kbGVyJiYgaGFuZGxlcikKK3sKKyAgICBoYW5kbGVyKHsgfSwgW05TRXJyb3IgZXJy
b3JXaXRoRG9tYWluOk5TQ29jb2FFcnJvckRvbWFpbiBjb2RlOk5TRmVhdHVyZVVuc3VwcG9ydGVk
RXJyb3IgdXNlckluZm86bmlsXSk7Cit9CisKK1ZlY3RvcjxTdHJpbmc+IE1vY2tQdXNoU2Vydmlj
ZUNvbm5lY3Rpb246OmVuYWJsZWRUb3BpY3MoKQoreworICAgIHJldHVybiB7IH07Cit9CisKK1Zl
Y3RvcjxTdHJpbmc+IE1vY2tQdXNoU2VydmljZUNvbm5lY3Rpb246Omlnbm9yZWRUb3BpY3MoKQor
eworICAgIHJldHVybiB7IH07Cit9CisKK1ZlY3RvcjxTdHJpbmc+IE1vY2tQdXNoU2VydmljZUNv
bm5lY3Rpb246Om9wcG9ydHVuaXN0aWNUb3BpY3MoKQoreworICAgIHJldHVybiB7IH07Cit9CisK
K1ZlY3RvcjxTdHJpbmc+IE1vY2tQdXNoU2VydmljZUNvbm5lY3Rpb246Om5vbldha2luZ1RvcGlj
cygpCit7CisgICAgcmV0dXJuIHsgfTsKK30KKwordm9pZCBNb2NrUHVzaFNlcnZpY2VDb25uZWN0
aW9uOjpzZXRFbmFibGVkVG9waWNzKFZlY3RvcjxTdHJpbmc+JiYgdG9waWNzKQoreworfQorCit2
b2lkIE1vY2tQdXNoU2VydmljZUNvbm5lY3Rpb246OnNldElnbm9yZWRUb3BpY3MoVmVjdG9yPFN0
cmluZz4mJiB0b3BpY3MpCit7Cit9CisKK3ZvaWQgTW9ja1B1c2hTZXJ2aWNlQ29ubmVjdGlvbjo6
c2V0T3Bwb3J0dW5pc3RpY1RvcGljcyhWZWN0b3I8U3RyaW5nPiYmIHRvcGljcykKK3sKK30KKwor
dm9pZCBNb2NrUHVzaFNlcnZpY2VDb25uZWN0aW9uOjpzZXROb25XYWtpbmdUb3BpY3MoVmVjdG9y
PFN0cmluZz4mJiB0b3BpY3MpCit7Cit9CisKK3ZvaWQgTW9ja1B1c2hTZXJ2aWNlQ29ubmVjdGlv
bjo6c2V0VG9waWNMaXN0cyhUb3BpY0xpc3RzJiYgdG9waWNMaXN0cykKK3sKK30KKworfSAvLyBu
YW1lc3BhY2UgV2ViUHVzaEQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvd2VicHVzaGQvUHVz
aFNlcnZpY2VDb25uZWN0aW9uLmggYi9Tb3VyY2UvV2ViS2l0L3dlYnB1c2hkL1B1c2hTZXJ2aWNl
Q29ubmVjdGlvbi5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjJjMTQxNDRjNjFiYjNlZmFlNGVkMzI4ZTE1MjBkM2Vj
ZjA4MzE3ZWYKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L3dlYnB1c2hkL1B1c2hT
ZXJ2aWNlQ29ubmVjdGlvbi5oCkBAIC0wLDAgKzEsODIgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMp
IDIwMjIgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0
aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAor
ICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2lu
ZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJj
ZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIu
IFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUg
Y29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBv
dGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRI
SVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9S
UyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBP
RiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9T
RSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09O
VFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVO
VEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVU
RSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJV
U0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZ
IE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFks
IE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcg
SU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklT
RUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21h
IG9uY2UKKworI2luY2x1ZGUgPHd0Zi9Db21wbGV0aW9uSGFuZGxlci5oPgorI2luY2x1ZGUgPHd0
Zi9EZXF1ZS5oPgorI2luY2x1ZGUgPHd0Zi9GdW5jdGlvbi5oPgorI2luY2x1ZGUgPHd0Zi9SZXRh
aW5QdHIuaD4KKyNpbmNsdWRlIDx3dGYvVmVjdG9yLmg+CisjaW5jbHVkZSA8d3RmL1dlYWtQdHIu
aD4KKyNpbmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KKworT0JKQ19DTEFTUyBOU0Vycm9y
OworT0JKQ19DTEFTUyBOU1N0cmluZzsKK09CSkNfQ0xBU1MgTlNEaWN0aW9uYXJ5OworCituYW1l
c3BhY2UgV2ViUHVzaEQgeworCitjbGFzcyBQdXNoU2VydmljZUNvbm5lY3Rpb24gOiBwdWJsaWMg
Q2FuTWFrZVdlYWtQdHI8UHVzaFNlcnZpY2VDb25uZWN0aW9uPiB7CisgICAgV1RGX01BS0VfRkFT
VF9BTExPQ0FURUQ7CitwdWJsaWM6CisgICAgdXNpbmcgSW5jb21pbmdQdXNoTWVzc2FnZUhhbmRs
ZXIgPSBGdW5jdGlvbjx2b2lkKE5TU3RyaW5nICosIE5TRGljdGlvbmFyeSAqKT47CisKKyAgICBQ
dXNoU2VydmljZUNvbm5lY3Rpb24oKSA9IGRlZmF1bHQ7CisgICAgdmlydHVhbCB+UHVzaFNlcnZp
Y2VDb25uZWN0aW9uKCkgPSBkZWZhdWx0OworCisgICAgdXNpbmcgU3Vic2NyaWJlSGFuZGxlciA9
IENvbXBsZXRpb25IYW5kbGVyPHZvaWQoTlNTdHJpbmcgKiwgTlNFcnJvciAqKT47CisgICAgdmly
dHVhbCB2b2lkIHN1YnNjcmliZShjb25zdCBTdHJpbmcmIHRvcGljLCBjb25zdCBWZWN0b3I8dWlu
dDhfdD4mIHZhcGlkUHVibGljS2V5LCBTdWJzY3JpYmVIYW5kbGVyJiYpID0gMDsKKworICAgIHVz
aW5nIFVuc3Vic2NyaWJlSGFuZGxlciA9IENvbXBsZXRpb25IYW5kbGVyPHZvaWQoYm9vbCwgTlNF
cnJvciAqKT47CisgICAgdmlydHVhbCB2b2lkIHVuc3Vic2NyaWJlKGNvbnN0IFN0cmluZyYgdG9w
aWMsIGNvbnN0IFZlY3Rvcjx1aW50OF90PiYgdmFwaWRQdWJsaWNLZXksIFVuc3Vic2NyaWJlSGFu
ZGxlciYmKSA9IDA7CisKKyAgICB2aXJ0dWFsIFZlY3RvcjxTdHJpbmc+IGVuYWJsZWRUb3BpY3Mo
KSA9IDA7CisgICAgdmlydHVhbCBWZWN0b3I8U3RyaW5nPiBpZ25vcmVkVG9waWNzKCkgPSAwOwor
ICAgIHZpcnR1YWwgVmVjdG9yPFN0cmluZz4gb3Bwb3J0dW5pc3RpY1RvcGljcygpID0gMDsKKyAg
ICB2aXJ0dWFsIFZlY3RvcjxTdHJpbmc+IG5vbldha2luZ1RvcGljcygpID0gMDsKKworICAgIHZp
cnR1YWwgdm9pZCBzZXRFbmFibGVkVG9waWNzKFZlY3RvcjxTdHJpbmc+JiYpID0gMDsKKyAgICB2
aXJ0dWFsIHZvaWQgc2V0SWdub3JlZFRvcGljcyhWZWN0b3I8U3RyaW5nPiYmKSA9IDA7CisgICAg
dmlydHVhbCB2b2lkIHNldE9wcG9ydHVuaXN0aWNUb3BpY3MoVmVjdG9yPFN0cmluZz4mJikgPSAw
OworICAgIHZpcnR1YWwgdm9pZCBzZXROb25XYWtpbmdUb3BpY3MoVmVjdG9yPFN0cmluZz4mJikg
PSAwOworCisgICAgc3RydWN0IFRvcGljTGlzdHMgeworICAgICAgICBWZWN0b3I8U3RyaW5nPiBl
bmFibGVkVG9waWNzOworICAgICAgICBWZWN0b3I8U3RyaW5nPiBpZ25vcmVkVG9waWNzOworICAg
ICAgICBWZWN0b3I8U3RyaW5nPiBvcHBvcnR1bmlzdGljVG9waWNzOworICAgICAgICBWZWN0b3I8
U3RyaW5nPiBub25XYWtpbmdUb3BpY3M7CisgICAgfTsKKyAgICB2aXJ0dWFsIHZvaWQgc2V0VG9w
aWNMaXN0cyhUb3BpY0xpc3RzJiYpID0gMDsKKworICAgIHZvaWQgc3RhcnRMaXN0ZW5pbmdGb3JQ
dXNoTWVzc2FnZXMoSW5jb21pbmdQdXNoTWVzc2FnZUhhbmRsZXImJik7CisgICAgdm9pZCBkaWRS
ZWNlaXZlUHVzaE1lc3NhZ2UoTlNTdHJpbmcgKnRvcGljLCBOU0RpY3Rpb25hcnkgKnVzZXJJbmZv
KTsKKworcHJpdmF0ZToKKyAgICBJbmNvbWluZ1B1c2hNZXNzYWdlSGFuZGxlciBtX2luY29taW5n
UHVzaE1lc3NhZ2VIYW5kbGVyOworICAgIERlcXVlPHN0ZDo6cGFpcjxSZXRhaW5QdHI8TlNTdHJp
bmc+LCBSZXRhaW5QdHI8TlNEaWN0aW9uYXJ5Pj4+IG1fcGVuZGluZ1B1c2hlczsKK307CisKK30g
Ly8gbmFtZXNwYWNlIFdlYlB1c2hECmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L3dlYnB1c2hk
L1B1c2hTZXJ2aWNlQ29ubmVjdGlvbi5tbSBiL1NvdXJjZS9XZWJLaXQvd2VicHVzaGQvUHVzaFNl
cnZpY2VDb25uZWN0aW9uLm1tCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjUzNDMzMjVlYjVlYTIwM2U4ZGY2ZmY4MzAz
Y2I5YjBmZmM4MTMyMWIKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L3dlYnB1c2hk
L1B1c2hTZXJ2aWNlQ29ubmVjdGlvbi5tbQpAQCAtMCwwICsxLDYwIEBACisvKgorICogQ29weXJp
Z2h0IChDKSAyMDIyIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRp
c3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdp
dGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBm
b2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBv
ZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIu
CisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhl
IGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBh
bmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAq
CisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05U
UklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5U
SUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJB
TlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAq
IFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1Ig
SVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwg
SU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1B
R0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNV
QlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRT
OyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5Z
IFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElB
QklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBB
UklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJ
RiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKwor
I2ltcG9ydCAiY29uZmlnLmgiCisjaW1wb3J0ICJQdXNoU2VydmljZUNvbm5lY3Rpb24uaCIKKwor
I2ltcG9ydCA8d3RmL1dvcmtRdWV1ZS5oPgorCituYW1lc3BhY2UgV2ViUHVzaEQgeworCit2b2lk
IFB1c2hTZXJ2aWNlQ29ubmVjdGlvbjo6c3RhcnRMaXN0ZW5pbmdGb3JQdXNoTWVzc2FnZXMoSW5j
b21pbmdQdXNoTWVzc2FnZUhhbmRsZXImJiBoYW5kbGVyKQoreworICAgIG1faW5jb21pbmdQdXNo
TWVzc2FnZUhhbmRsZXIgPSBXVEZNb3ZlKGhhbmRsZXIpOworCisgICAgaWYgKCFtX3BlbmRpbmdQ
dXNoZXMuc2l6ZSgpKQorICAgICAgICByZXR1cm47CisKKyAgICBXb3JrUXVldWU6Om1haW4oKS5k
aXNwYXRjaChbdGhpc10oKSBtdXRhYmxlIHsKKyAgICAgICAgd2hpbGUgKG1fcGVuZGluZ1B1c2hl
cy5zaXplKCkpIHsKKyAgICAgICAgICAgIEBhdXRvcmVsZWFzZXBvb2wgeworICAgICAgICAgICAg
ICAgIGF1dG8gbWVzc2FnZSA9IG1fcGVuZGluZ1B1c2hlcy50YWtlRmlyc3QoKTsKKyAgICAgICAg
ICAgICAgICBtX2luY29taW5nUHVzaE1lc3NhZ2VIYW5kbGVyKG1lc3NhZ2UuZmlyc3QuZ2V0KCks
IG1lc3NhZ2Uuc2Vjb25kLmdldCgpKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0p
OworfQorCit2b2lkIFB1c2hTZXJ2aWNlQ29ubmVjdGlvbjo6ZGlkUmVjZWl2ZVB1c2hNZXNzYWdl
KE5TU3RyaW5nICp0b3BpYywgTlNEaWN0aW9uYXJ5ICp1c2VySW5mbykKK3sKKyAgICBpZiAoIW1f
aW5jb21pbmdQdXNoTWVzc2FnZUhhbmRsZXIpIHsKKyAgICAgICAgbV9wZW5kaW5nUHVzaGVzLmFw
cGVuZCh7IHRvcGljLCB1c2VySW5mbyB9KTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAg
IG1faW5jb21pbmdQdXNoTWVzc2FnZUhhbmRsZXIodG9waWMsIHVzZXJJbmZvKTsKK30KKworfSAv
LyBuYW1lc3BhY2UgV2ViUHVzaEQK
</data>

          </attachment>
      

    </bug>

</bugzilla>