<?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>240003</bug_id>
          
          <creation_ts>2022-05-03 04:00:06 -0700</creation_ts>
          <short_desc>SWOriginStore is no longer needed</short_desc>
          <delta_ts>2022-05-14 00:19:34 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Service Workers</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>REOPENED</bug_status>
          <resolution></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>
          <dependson>240197</dependson>
          
          <everconfirmed>1</everconfirmed>
          <reporter name="youenn fablet">youennf</reporter>
          <assigned_to name="youenn fablet">youennf</assigned_to>
          <cc>annulen</cc>
    
    <cc>cdumez</cc>
    
    <cc>commit-queue</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>japhet</cc>
    
    <cc>ryuan.choi</cc>
    
    <cc>sergio</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1866084</commentid>
    <comment_count>0</comment_count>
    <who name="youenn fablet">youennf</who>
    <bug_when>2022-05-03 04:00:06 -0700</bug_when>
    <thetext>SWOriginStore is no longer needed</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1866088</commentid>
    <comment_count>1</comment_count>
      <attachid>458732</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2022-05-03 04:46:13 -0700</bug_when>
    <thetext>Created attachment 458732
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1866098</commentid>
    <comment_count>2</comment_count>
      <attachid>458732</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2022-05-03 06:31:17 -0700</bug_when>
    <thetext>Comment on attachment 458732
Patch

WPE is a unified build issue, putting as r?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1866122</commentid>
    <comment_count>3</comment_count>
      <attachid>458732</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2022-05-03 07:54:47 -0700</bug_when>
    <thetext>Comment on attachment 458732
Patch

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

&gt; Source/WebKit/ChangeLog:9
&gt; +        is to optimize the case of a page being loaded by service worker instead of app cache which is a tiny edge case.

I don&apos;t understand. As I remember it, every page load has to check if there is a service worker handling the load or not. My understanding is that we introduced the SWOriginStore to check if there was a service worker registered for a given origin, so we could bypass the service worker check with the network process before proceeding with the load. Seems useful to me, for every load. 

Am I remembering wrong? Is this no longer needed for some reason?

The idea of this store was to optimize page loads for pages NOT handled by service workers, which is a common case. Your change log seems to state the opposite.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1866123</commentid>
    <comment_count>4</comment_count>
    <who name="youenn fablet">youennf</who>
    <bug_when>2022-05-03 07:58:40 -0700</bug_when>
    <thetext>We used to do IPC to get the registration then decide what to do.
We are now sending the load to network process and matching the navigation loads when receiving them in network process. Hence why we no longer care about this optimization.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1866126</commentid>
    <comment_count>5</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2022-05-03 08:08:32 -0700</bug_when>
    <thetext>(In reply to youenn fablet from comment #4)
&gt; We used to do IPC to get the registration then decide what to do.
&gt; We are now sending the load to network process and matching the navigation
&gt; loads when receiving them in network process. Hence why we no longer care
&gt; about this optimization.

Oh, I get it now. Our design has indeed changed a lot since the introduction of this &quot;optimization&quot;.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1866127</commentid>
    <comment_count>6</comment_count>
      <attachid>458732</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2022-05-03 08:10:27 -0700</bug_when>
    <thetext>Comment on attachment 458732
Patch

r=me but please add the missing include (or namespace) to make the WPT bot happy:
/app/webkit/Source/WebKit/WebProcess/Storage/WebSharedWorkerContextManagerConnection.cpp:118:47: error: ‘ScriptExecutionContextIdentifier’ has not been declared</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1866403</commentid>
    <comment_count>7</comment_count>
      <attachid>458782</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2022-05-04 02:30:46 -0700</bug_when>
    <thetext>Created attachment 458782
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1866427</commentid>
    <comment_count>8</comment_count>
      <attachid>458790</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2022-05-04 06:01:19 -0700</bug_when>
    <thetext>Created attachment 458790
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1866767</commentid>
    <comment_count>9</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2022-05-05 00:39:27 -0700</bug_when>
    <thetext>Committed r293824 (250297@main): &lt;https://commits.webkit.org/250297@main&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 458790.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1866768</commentid>
    <comment_count>10</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2022-05-05 00:40:14 -0700</bug_when>
    <thetext>&lt;rdar://problem/92780026&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1867405</commentid>
    <comment_count>11</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2022-05-06 17:43:05 -0700</bug_when>
    <thetext>Re-opened since this is blocked by bug 240197</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1868113</commentid>
    <comment_count>12</comment_count>
      <attachid>459161</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2022-05-11 06:11:49 -0700</bug_when>
    <thetext>Created attachment 459161
Reduced patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1868218</commentid>
    <comment_count>13</comment_count>
      <attachid>459161</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2022-05-11 14:31:04 -0700</bug_when>
    <thetext>Comment on attachment 459161
Reduced patch

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

&gt; Source/WebCore/loader/DocumentLoader.cpp:-582
&gt; -        callback(std::nullopt);

I did a quick speedometer investigation and I think this is the regression right here. We used to early return here on Speedometer quite a bit:
```
CHRIS: DocumentLoader::matchRegistration() early return
1   0x183df25e2 WebCore::DocumentLoader::matchRegistration(WTF::URL const&amp;, WTF::CompletionHandler&lt;void (std::__1::optional&lt;WebCore::ServiceWorkerRegistrationData&gt;&amp;&amp;)&gt;&amp;&amp;)
2   0x182d83a9c WebCore::DocumentLoader::responseReceived(WebCore::CachedResource&amp;, WebCore::ResourceResponse const&amp;, WTF::CompletionHandler&lt;void ()&gt;&amp;&amp;)
3   0x182dc9761 WTF::Detail::CallableWrapper&lt;WebCore::CachedRawResource::didAddClient(WebCore::CachedResourceClient&amp;)::$_0, void, WebCore::ResourceRequest&amp;&amp;&gt;::call(WebCore::ResourceRequest&amp;&amp;)
4   0x182dbed60 WebCore::iterateRedirects(WebCore::CachedResourceHandle&lt;WebCore::CachedRawResource&gt;&amp;&amp;, WebCore::CachedRawResourceClient&amp;, WTF::Vector&lt;std::__1::pair&lt;WebCore::ResourceRequest, WebCore::ResourceResponse&gt;, 0ul, WTF::CrashOnOverflow, 16ul, WTF::FastMalloc&gt;&amp;&amp;, WTF::CompletionHandler&lt;void (WebCore::ResourceRequest&amp;&amp;)&gt;&amp;&amp;)
5   0x182dbe60e WebCore::CachedRawResource::didAddClient(WebCore::CachedResourceClient&amp;)
6   0x182e2e650 WebCore::ThreadTimers::sharedTimerFiredInternal()
7   0x182e35daf WebCore::timerFired(__CFRunLoopTimer*, void*)
8   0x7ff8064bbf59 __CFRUNLOOP_IS_CALLING_OUT_TO_A_TIMER_CALLBACK_FUNCTION__
9   0x7ff8064bba48 __CFRunLoopDoTimer
10  0x7ff8064bb5b8 __CFRunLoopDoTimers
11  0x7ff8064a1cf6 __CFRunLoopRun
12  0x7ff8064a0e5c CFRunLoopRunSpecific
13  0x7ff807301d6a -[NSRunLoop(NSRunLoop) runMode:beforeDate:]
14  0x7ff80738c7b7 -[NSRunLoop(NSRunLoop) run]
15  0x7ff806124816 _xpc_objc_main
16  0x7ff806124239 xpc_main
17  0x17a948341 WebKit::XPCServiceMain(int, char const**)
18  0x11affd51e
```

Now, instead of this very fast check, we end up doing IPC to the network process.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>458732</attachid>
            <date>2022-05-03 04:46:13 -0700</date>
            <delta_ts>2022-05-04 02:30:41 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-240003-20220503134611.patch</filename>
            <type>text/plain</type>
            <size>61037</size>
            <attacher name="youenn fablet">youennf</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjkzNzE3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYjcwNmE5NTg5NjIxNzE5
MjJmNjgwNWRmMDU1NzY5YWQzMzE0ZTUwOS4uYWU2NjhjNzgzMjk1OTU3YTc0ZGI2ZDJiNDE2ZmU1
ZmJlMGFlMjVhNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI0IEBACisyMDIyLTA1LTAzICBZb3Vl
bm4gRmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KKworICAgICAgICBTV09yaWdpblN0b3JlIGlz
IG5vIGxvbmdlciBuZWVkZWQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTI0MDAwMworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgor
CisgICAgICAgIENvdmVyZWQgYnkgZXhpc3RpbmcgdGVzdHMuCisKKyAgICAgICAgKiBIZWFkZXJz
LmNtYWtlOgorICAgICAgICAqIFNvdXJjZXMudHh0OgorICAgICAgICAqIFdlYkNvcmUueGNvZGVw
cm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBsb2FkZXIvRG9jdW1lbnRMb2FkZXIuY3Bw
OgorICAgICAgICAqIHdvcmtlcnMvc2VydmljZS9TV0NsaWVudENvbm5lY3Rpb24uaDoKKyAgICAg
ICAgKiB3b3JrZXJzL3NlcnZpY2UvV29ya2VyU1dDbGllbnRDb25uZWN0aW9uLmNwcDoKKyAgICAg
ICAgKiB3b3JrZXJzL3NlcnZpY2UvV29ya2VyU1dDbGllbnRDb25uZWN0aW9uLmg6CisgICAgICAg
ICogd29ya2Vycy9zZXJ2aWNlL3NlcnZlci9TV09yaWdpblN0b3JlLmNwcDogUmVtb3ZlZC4KKyAg
ICAgICAgKiB3b3JrZXJzL3NlcnZpY2Uvc2VydmVyL1NXT3JpZ2luU3RvcmUuaDogUmVtb3ZlZC4K
KyAgICAgICAgKiB3b3JrZXJzL3NlcnZpY2Uvc2VydmVyL1NXU2VydmVyLmNwcDoKKyAgICAgICAg
KiB3b3JrZXJzL3NlcnZpY2Uvc2VydmVyL1NXU2VydmVyLmg6CisKIDIwMjItMDUtMDMgIFlvdWVu
biBGYWJsZXQgIDx5b3Vlbm5AYXBwbGUuY29tPgogCiAgICAgICAgIEF1ZGlvTWVkaWFTdHJlYW1U
cmFja1JlbmRlcmVyVW5pdDo6dXBkYXRlUmVuZGVyU291cmNlc0lmTmVjZXNzYXJ5IGNhbiBmcmVl
IG1lbW9yeQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2Vi
S2l0L0NoYW5nZUxvZwppbmRleCAxMGYzNzE3YmEwODYwYWY0ZWZlYTEzMjVlODVlOTM3NjM1NDhm
NjE3Li4zNjI1MGQzOWJlYjViY2NmYWI0ZDIyYzk0YjVhYjdiNmUzNDlkN2EyIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwpA
QCAtMSwzICsxLDI2IEBACisyMDIyLTA1LTAzICBZb3Vlbm4gRmFibGV0ICA8eW91ZW5uQGFwcGxl
LmNvbT4KKworICAgICAgICBTV09yaWdpblN0b3JlIGlzIG5vIGxvbmdlciBuZWVkZWQKKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTI0MDAwMworCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIE5vIG9ic2VydmFibGUg
Y2hhbmdlLCB3ZSByZW1vdmUgdGhlIFNXT3JpZ2luIG9wdGltaXphdGlvbiBhcyBpdHMgbWFpbiBy
ZW1haW5pbmcgdXNlCisgICAgICAgIGlzIHRvIG9wdGltaXplIHRoZSBjYXNlIG9mIGEgcGFnZSBi
ZWluZyBsb2FkZWQgYnkgc2VydmljZSB3b3JrZXIgaW5zdGVhZCBvZiBhcHAgY2FjaGUgd2hpY2gg
aXMgYSB0aW55IGVkZ2UgY2FzZS4KKworICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL05ldHdvcmtT
ZXNzaW9uLmNwcDoKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9OZXR3b3JrU2Vzc2lvbi5oOgor
ICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL1NlcnZpY2VXb3JrZXIvV2ViU1dPcmlnaW5TdG9yZS5j
cHA6IFJlbW92ZWQuCisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvU2VydmljZVdvcmtlci9XZWJT
V09yaWdpblN0b3JlLmg6IFJlbW92ZWQuCisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvU2Vydmlj
ZVdvcmtlci9XZWJTV1NlcnZlckNvbm5lY3Rpb24uY3BwOgorICAgICAgICAqIE5ldHdvcmtQcm9j
ZXNzL1NlcnZpY2VXb3JrZXIvV2ViU1dTZXJ2ZXJDb25uZWN0aW9uLmg6CisgICAgICAgICogV2Vi
S2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgICogV2ViUHJvY2Vzcy9TdG9y
YWdlL1dlYlNXQ2xpZW50Q29ubmVjdGlvbi5jcHA6CisgICAgICAgICogV2ViUHJvY2Vzcy9TdG9y
YWdlL1dlYlNXQ2xpZW50Q29ubmVjdGlvbi5oOgorICAgICAgICAqIFdlYlByb2Nlc3MvU3RvcmFn
ZS9XZWJTV0NsaWVudENvbm5lY3Rpb24ubWVzc2FnZXMuaW46CisgICAgICAgICogV2ViUHJvY2Vz
cy9TdG9yYWdlL1dlYlNXT3JpZ2luVGFibGUuY3BwOiBSZW1vdmVkLgorICAgICAgICAqIFdlYlBy
b2Nlc3MvU3RvcmFnZS9XZWJTV09yaWdpblRhYmxlLmg6IFJlbW92ZWQuCisKIDIwMjItMDUtMDIg
IFRpbSBIb3J0b24gIDx0aW1vdGh5X2hvcnRvbkBhcHBsZS5jb20+CiAKICAgICAgICAgUkVHUkVT
U0lPTiAocjI5MjM1MSk6IFByb2Nlc3NlcyBubyBsb25nZXIgZ2V0IHRoZSByaWdodCBqZXRzYW0g
cHJpb3JpdHkgb24gaU9TCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9IZWFkZXJzLmNtYWtl
IGIvU291cmNlL1dlYkNvcmUvSGVhZGVycy5jbWFrZQppbmRleCBkMDYwYWQ5ZjMxYWQyZTYxNDgz
Nzk1MjM3MGJhNTAwMTE5ZDBhYWM0Li44NDdkNGZkZDM0OTZiZGNhYTQxMWI1NGE2ZDMyMGVmNTAz
YWMyMWU0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9IZWFkZXJzLmNtYWtlCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0hlYWRlcnMuY21ha2UKQEAgLTIwNDMsNyArMjA0Myw2IEBAIHNldChXZWJD
b3JlX1BSSVZBVEVfRlJBTUVXT1JLX0hFQURFUlMKICAgICB3b3JrZXJzL3NlcnZpY2UvY29udGV4
dC9TZXJ2aWNlV29ya2VyVGhyZWFkUHJveHkuaAogCiAgICAgd29ya2Vycy9zZXJ2aWNlL3NlcnZl
ci9SZWdpc3RyYXRpb25EYXRhYmFzZS5oCi0gICAgd29ya2Vycy9zZXJ2aWNlL3NlcnZlci9TV09y
aWdpblN0b3JlLmgKICAgICB3b3JrZXJzL3NlcnZpY2Uvc2VydmVyL1NXU2VydmVyLmgKICAgICB3
b3JrZXJzL3NlcnZpY2Uvc2VydmVyL1NXU2VydmVyUmVnaXN0cmF0aW9uLmgKICAgICB3b3JrZXJz
L3NlcnZpY2Uvc2VydmVyL1NXU2VydmVyVG9Db250ZXh0Q29ubmVjdGlvbi5oCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2VzLnR4dCBiL1NvdXJjZS9XZWJDb3JlL1NvdXJjZXMudHh0
CmluZGV4IDI5NjhjMGM4ZWNlNWE4NTExNTZhMDE3MzE1NjIxYjViMTczZDg1ZWUuLjUxMjcyOTk0
OTQ5YjIwNzYzN2Y2NGRlNTg2NjUzYzRjZWZlNDI5YzYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL1NvdXJjZXMudHh0CisrKyBiL1NvdXJjZS9XZWJDb3JlL1NvdXJjZXMudHh0CkBAIC0yODAx
LDcgKzI4MDEsNiBAQCB3b3JrZXJzL3NlcnZpY2UvY29udGV4dC9TZXJ2aWNlV29ya2VyVGhyZWFk
LmNwcAogd29ya2Vycy9zZXJ2aWNlL2NvbnRleHQvU2VydmljZVdvcmtlclRocmVhZFByb3h5LmNw
cAogd29ya2Vycy9zZXJ2aWNlL3NlcnZlci9SZWdpc3RyYXRpb25EYXRhYmFzZS5jcHAKIHdvcmtl
cnMvc2VydmljZS9zZXJ2ZXIvUmVnaXN0cmF0aW9uU3RvcmUuY3BwCi13b3JrZXJzL3NlcnZpY2Uv
c2VydmVyL1NXT3JpZ2luU3RvcmUuY3BwCiB3b3JrZXJzL3NlcnZpY2Uvc2VydmVyL1NXU2NyaXB0
U3RvcmFnZS5jcHAKIHdvcmtlcnMvc2VydmljZS9zZXJ2ZXIvU1dTZXJ2ZXIuY3BwCiB3b3JrZXJz
L3NlcnZpY2Uvc2VydmVyL1NXU2VydmVySm9iUXVldWUuY3BwCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvV2ViQ29y
ZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggOWJhMWI4MjAzNTJjMTRk
OTYwNjYzM2YzMDFmOWQ0NTM3MjhlMmUyNS4uZWY0MDZkZjA5MGZiODhjY2MwNzg1NDcyMzE2YWMx
OTMwMTY1ZWY3ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ov
cHJvamVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3By
b2plY3QucGJ4cHJvagpAQCAtMTExNSw3ICsxMTE1LDYgQEAKIAkJNDE1MDgwMzcxRTNGMDBCMDAw
NTFENzVEIC8qIExpYldlYlJUQ0F1ZGlvTW9kdWxlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0MTUwODAzNTFFM0YwMEFBMDA1MUQ3NUQgLyogTGliV2Vi
UlRDQXVkaW9Nb2R1bGUuaCAqLzsgfTsKIAkJNDE1MEY5RjExMkI2RTBFNzAwMDhDODYwIC8qIFNs
aWRlclRodW1iRWxlbWVudC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gNDE1MEY5RUYxMkI2RTBFNzAwMDhDODYwIC8qIFNsaWRlclRodW1iRWxlbWVudC5o
ICovOyB9OwogCQk0MTUxOUNCODFGRDFGMDJFMDA3RjYyM0MgLyogU2VydmljZVdvcmtlckNsaWVu
dFF1ZXJ5T3B0aW9ucy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gNDEzRkM0Q0QxRkQxREQ4QzAwNTQxQzRCIC8qIFNlcnZpY2VXb3JrZXJDbGllbnRRdWVy
eU9wdGlvbnMuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9
OwotCQk0MTUxRTVCQjFGQkE0QzdBMDBFNDdFMkQgLyogU1dPcmlnaW5TdG9yZS5oIGluIEhlYWRl
cnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDE1MUU1QjcxRkJBNEM3NTAw
RTQ3RTJEIC8qIFNXT3JpZ2luU3RvcmUuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQ
cml2YXRlLCApOyB9OyB9OwogCQk0MTU3NDc0NzFFMzg2OUE0MDBFOTE0RDggLyogTGliV2ViUlRD
TWFjcm9zLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0
MTU3NDc0MzFFMzg2OTlFMDBFOTE0RDggLyogTGliV2ViUlRDTWFjcm9zLmggKi87IHNldHRpbmdz
ID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJNDE1NzQ3NDgxRTM4NjlBNzAw
RTkxNEQ4IC8qIExpYldlYlJUQ1Byb3ZpZGVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSA0MTU3NDc0NDFFMzg2OTlFMDBFOTE0RDggLyogTGliV2ViUlRD
UHJvdmlkZXIuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9
OwogCQk0MTU3RUJGQTFFM0FCNjc5MDBBQzlGRTkgLyogTW9ja0xpYldlYlJUQ1BlZXJDb25uZWN0
aW9uLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQx
NTdFQkY5MUUzQUIwNjgwMEFDOUZFOSAvKiBNb2NrTGliV2ViUlRDUGVlckNvbm5lY3Rpb24uY3Bw
ICovOyB9OwpAQCAtODcwOCw4ICs4NzA3LDYgQEAKIAkJNDE1MDgwMzUxRTNGMDBBQTAwNTFENzVE
IC8qIExpYldlYlJUQ0F1ZGlvTW9kdWxlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFt
ZSA9IExpYldlYlJUQ0F1ZGlvTW9kdWxlLmg7IHBhdGggPSBsaWJ3ZWJydGMvTGliV2ViUlRDQXVk
aW9Nb2R1bGUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDE1MEY5RUYxMkI2RTBF
NzAwMDhDODYwIC8qIFNsaWRlclRodW1iRWxlbWVudC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IHBhdGggPSBTbGlkZXJUaHVtYkVsZW1lbnQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKIAkJNDE1MEY5RjAxMkI2RTBFNzAwMDhDODYwIC8qIFNsaWRlclRodW1iRWxlbWVudC5jcHAg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBTbGlkZXJUaHVtYkVsZW1lbnQu
Y3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQk0MTUxRTVCNzFGQkE0Qzc1MDBFNDdF
MkQgLyogU1dPcmlnaW5TdG9yZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBT
V09yaWdpblN0b3JlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTQxNTFFNUI5MUZC
QTRDNzYwMEU0N0UyRCAvKiBTV09yaWdpblN0b3JlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Y3BwLmNwcDsgcGF0aCA9IFNXT3JpZ2luU3RvcmUuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwogCQk0MTU3NDc0MzFFMzg2OTlFMDBFOTE0RDggLyogTGliV2ViUlRDTWFjcm9zLmggKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IExpYldlYlJUQ01hY3Jvcy5oOyBwYXRoID0g
bGlid2VicnRjL0xpYldlYlJUQ01hY3Jvcy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owog
CQk0MTU3NDc0NDFFMzg2OTlFMDBFOTE0RDggLyogTGliV2ViUlRDUHJvdmlkZXIuaCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gTGliV2ViUlRDUHJvdmlkZXIuaDsgcGF0aCA9IGxp
YndlYnJ0Yy9MaWJXZWJSVENQcm92aWRlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owog
CQk0MTU3RUJGODFFM0FCMDY4MDBBQzlGRTkgLyogTW9ja0xpYldlYlJUQ1BlZXJDb25uZWN0aW9u
LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IE1vY2tMaWJXZWJSVENQZWVyQ29u
bmVjdGlvbi5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMjI0MjYsOCArMjI0MjMs
NiBAQAogCQkJCTUxQjkxNDBDMUZEMjc4MjUwMEVFMjg1OSAvKiBSZWdpc3RyYXRpb25EYXRhYmFz
ZS5oICovLAogCQkJCTUxQjkxNDBFMUZEMjc4MjUwMEVFMjg1OSAvKiBSZWdpc3RyYXRpb25TdG9y
ZS5jcHAgKi8sCiAJCQkJNTFCOTE0MEIxRkQyNzgyNTAwRUUyODU5IC8qIFJlZ2lzdHJhdGlvblN0
b3JlLmggKi8sCi0JCQkJNDE1MUU1QjkxRkJBNEM3NjAwRTQ3RTJEIC8qIFNXT3JpZ2luU3RvcmUu
Y3BwICovLAotCQkJCTQxNTFFNUI3MUZCQTRDNzUwMEU0N0UyRCAvKiBTV09yaWdpblN0b3JlLmgg
Ki8sCiAJCQkJNDYyNzNDQUUyNjBFNTlERjAwNkZBQTkxIC8qIFNXU2NyaXB0U3RvcmFnZS5jcHAg
Ki8sCiAJCQkJNDYyNzNDQUMyNjBFNTlERjAwNkZBQTkxIC8qIFNXU2NyaXB0U3RvcmFnZS5oICov
LAogCQkJCTUxN0E1MkVGMUY0NzUzNTkwMERDREMwQSAvKiBTV1NlcnZlci5jcHAgKi8sCkBAIC0z
NzkxNyw3ICszNzkxMiw2IEBACiAJCQkJNDZFQ0I2MzgxRkQwQTNDODAwODhFNUFEIC8qIFNXQ2xp
ZW50Q29ubmVjdGlvbi5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNDY2NThEQzkxRkEyNEI4NzAwRjdE
RDU0IC8qIFNXQ29udGV4dE1hbmFnZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCUMxMUE5RUNFMjE0
MDNBNUMwMENGQjIwQSAvKiBTd2l0Y2hpbmdHUFVDbGllbnQuaCBpbiBIZWFkZXJzICovLAotCQkJ
CTQxNTFFNUJCMUZCQTRDN0EwMEU0N0UyRCAvKiBTV09yaWdpblN0b3JlLmggaW4gSGVhZGVycyAq
LywKIAkJCQk0NjI3M0NBRjI2MEU1OUVGMDA2RkFBOTEgLyogU1dTY3JpcHRTdG9yYWdlLmggaW4g
SGVhZGVycyAqLywKIAkJCQk1MTdBNTJGMDFGNDc1MzVCMDBEQ0RDMEEgLyogU1dTZXJ2ZXIuaCBp
biBIZWFkZXJzICovLAogCQkJCTgzMTFDMDAzMUZBQTJFOTUwMEUzQzhFNSAvKiBTV1NlcnZlckpv
YlF1ZXVlLmggaW4gSGVhZGVycyAqLywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRl
ci9Eb2N1bWVudExvYWRlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRG9jdW1lbnRMb2Fk
ZXIuY3BwCmluZGV4IDk1Y2VhMjYxZTllYjkyNWQxOTQ3YTlmOTViOWQ1Y2RiNmFmMDkyNGYuLjQ5
ZGMwYzBiZmQ3ZmQ2MTkyNmFmZWY1NjYwY2I2ZTNjNmMzMTg5YzcgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2xvYWRlci9Eb2N1bWVudExvYWRlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
bG9hZGVyL0RvY3VtZW50TG9hZGVyLmNwcApAQCAtNTc4LDEwICs1NzgsNiBAQCB2b2lkIERvY3Vt
ZW50TG9hZGVyOjptYXRjaFJlZ2lzdHJhdGlvbihjb25zdCBVUkwmIHVybCwgU1dDbGllbnRDb25u
ZWN0aW9uOjpSZWdpcwogICAgIH0KIAogICAgIGF1dG8gb3JpZ2luID0gKCFtX2ZyYW1lLT5pc01h
aW5GcmFtZSgpICYmIG1fZnJhbWUtPmRvY3VtZW50KCkpID8gbV9mcmFtZS0+ZG9jdW1lbnQoKS0+
dG9wT3JpZ2luKCkuZGF0YSgpIDogU2VjdXJpdHlPcmlnaW5EYXRhOjpmcm9tVVJMKHVybCk7Ci0g
ICAgaWYgKCFTZXJ2aWNlV29ya2VyUHJvdmlkZXI6OnNpbmdsZXRvbigpLnNlcnZpY2VXb3JrZXJD
b25uZWN0aW9uKCkubWF5SGF2ZVNlcnZpY2VXb3JrZXJSZWdpc3RlcmVkRm9yT3JpZ2luKG9yaWdp
bikpIHsKLSAgICAgICAgY2FsbGJhY2soc3RkOjpudWxsb3B0KTsKLSAgICAgICAgcmV0dXJuOwot
ICAgIH0KIAogICAgIGF1dG8mIGNvbm5lY3Rpb24gPSBTZXJ2aWNlV29ya2VyUHJvdmlkZXI6OnNp
bmdsZXRvbigpLnNlcnZpY2VXb3JrZXJDb25uZWN0aW9uKCk7CiAgICAgY29ubmVjdGlvbi5tYXRj
aFJlZ2lzdHJhdGlvbihXVEZNb3ZlKG9yaWdpbiksIHVybCwgV1RGTW92ZShjYWxsYmFjaykpOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL1NXQ2xpZW50Q29ubmVj
dGlvbi5oIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL1NXQ2xpZW50Q29ubmVjdGlv
bi5oCmluZGV4IDIzZTA2YzYxZjJlN2Y1MjU4ZGIzNGY4N2QwNDA1YWI2ZTM1MjkzN2IuLjkxODkz
YmU4NWNhNzU5OTRmZjRhZWEwMzNkYjhjZDBiOGY4NTVjNWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3dvcmtlcnMvc2VydmljZS9TV0NsaWVudENvbm5lY3Rpb24uaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvU1dDbGllbnRDb25uZWN0aW9uLmgKQEAgLTgzLDcgKzgz
LDYgQEAgcHVibGljOgogICAgIHZpcnR1YWwgdm9pZCBwb3N0TWVzc2FnZVRvU2VydmljZVdvcmtl
cihTZXJ2aWNlV29ya2VySWRlbnRpZmllciBkZXN0aW5hdGlvbiwgTWVzc2FnZVdpdGhNZXNzYWdl
UG9ydHMmJiwgY29uc3QgU2VydmljZVdvcmtlck9yQ2xpZW50SWRlbnRpZmllciYgc291cmNlKSA9
IDA7CiAKICAgICB2aXJ0dWFsIFNXU2VydmVyQ29ubmVjdGlvbklkZW50aWZpZXIgc2VydmVyQ29u
bmVjdGlvbklkZW50aWZpZXIoKSBjb25zdCA9IDA7Ci0gICAgdmlydHVhbCBib29sIG1heUhhdmVT
ZXJ2aWNlV29ya2VyUmVnaXN0ZXJlZEZvck9yaWdpbihjb25zdCBTZWN1cml0eU9yaWdpbkRhdGEm
KSBjb25zdCA9IDA7CiAKICAgICB2aXJ0dWFsIHZvaWQgcmVnaXN0ZXJTZXJ2aWNlV29ya2VyQ2xp
ZW50KGNvbnN0IENsaWVudE9yaWdpbiYsIFNlcnZpY2VXb3JrZXJDbGllbnREYXRhJiYsIGNvbnN0
IHN0ZDo6b3B0aW9uYWw8U2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbklkZW50aWZpZXI+JiwgU3Ry
aW5nJiYgdXNlckFnZW50KSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIHVucmVnaXN0ZXJTZXJ2aWNl
V29ya2VyQ2xpZW50KFNjcmlwdEV4ZWN1dGlvbkNvbnRleHRJZGVudGlmaWVyKSA9IDA7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvV29ya2VyU1dDbGllbnRDb25u
ZWN0aW9uLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9Xb3JrZXJTV0NsaWVu
dENvbm5lY3Rpb24uY3BwCmluZGV4IGYxNDBmOTliNDA4NmJmNmZiY2Y3MmI2YzQ3ZTBkNDFkMWZh
MGQ4NTMuLjFhNTJkY2ZkMjRlZjI2N2JhZDhkYjZkYzQ3ODhhMjIxZjYyOTAwM2MgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9Xb3JrZXJTV0NsaWVudENvbm5lY3Rp
b24uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9Xb3JrZXJTV0NsaWVu
dENvbm5lY3Rpb24uY3BwCkBAIC0xNzgsMTIgKzE3OCw2IEBAIFNXU2VydmVyQ29ubmVjdGlvbklk
ZW50aWZpZXIgV29ya2VyU1dDbGllbnRDb25uZWN0aW9uOjpzZXJ2ZXJDb25uZWN0aW9uSWRlbnRp
ZmllCiAgICAgcmV0dXJuIGlkZW50aWZpZXI7CiB9CiAKLWJvb2wgV29ya2VyU1dDbGllbnRDb25u
ZWN0aW9uOjptYXlIYXZlU2VydmljZVdvcmtlclJlZ2lzdGVyZWRGb3JPcmlnaW4oY29uc3QgU2Vj
dXJpdHlPcmlnaW5EYXRhJikgY29uc3QKLXsKLSAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKLSAg
ICByZXR1cm4gdHJ1ZTsKLX0KLQogdm9pZCBXb3JrZXJTV0NsaWVudENvbm5lY3Rpb246OnJlZ2lz
dGVyU2VydmljZVdvcmtlckNsaWVudChjb25zdCBDbGllbnRPcmlnaW4mIGNsaWVudE9yaWdpbiwg
U2VydmljZVdvcmtlckNsaWVudERhdGEmJiBkYXRhLCBjb25zdCBzdGQ6Om9wdGlvbmFsPFNlcnZp
Y2VXb3JrZXJSZWdpc3RyYXRpb25JZGVudGlmaWVyPiYgaWRlbnRpZmllciwgU3RyaW5nJiYgdXNl
ckFnZW50KQogewogICAgIGNhbGxPbk1haW5UaHJlYWQoW2NsaWVudE9yaWdpbiA9IGNsaWVudE9y
aWdpbi5pc29sYXRlZENvcHkoKSwgZGF0YSA9IGNyb3NzVGhyZWFkQ29weShXVEZNb3ZlKGRhdGEp
KSwgaWRlbnRpZmllciwgdXNlckFnZW50ID0gY3Jvc3NUaHJlYWRDb3B5KFdURk1vdmUodXNlckFn
ZW50KSldKCkgbXV0YWJsZSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3Nl
cnZpY2UvV29ya2VyU1dDbGllbnRDb25uZWN0aW9uLmggYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJz
L3NlcnZpY2UvV29ya2VyU1dDbGllbnRDb25uZWN0aW9uLmgKaW5kZXggMjliZmIzM2VmNGIzZDQw
NjU1MzMwMjFhYzZlMjU0NzY4MDdiMGFiOC4uZjMwN2I2ZmY2Y2Q4Y2VlOTkyZjk0OTY1YjUxYWM4
Yzk0MTAxZTIwZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL1dv
cmtlclNXQ2xpZW50Q29ubmVjdGlvbi5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2Vy
dmljZS9Xb3JrZXJTV0NsaWVudENvbm5lY3Rpb24uaApAQCAtNTMsNyArNTMsNiBAQCBwcml2YXRl
OgogICAgIHZvaWQgZGlkUmVzb2x2ZVJlZ2lzdHJhdGlvblByb21pc2UoY29uc3QgU2VydmljZVdv
cmtlclJlZ2lzdHJhdGlvbktleSYpIGZpbmFsOwogICAgIHZvaWQgcG9zdE1lc3NhZ2VUb1NlcnZp
Y2VXb3JrZXIoU2VydmljZVdvcmtlcklkZW50aWZpZXIgZGVzdGluYXRpb24sIE1lc3NhZ2VXaXRo
TWVzc2FnZVBvcnRzJiYsIGNvbnN0IFNlcnZpY2VXb3JrZXJPckNsaWVudElkZW50aWZpZXImIHNv
dXJjZSkgZmluYWw7CiAgICAgU1dTZXJ2ZXJDb25uZWN0aW9uSWRlbnRpZmllciBzZXJ2ZXJDb25u
ZWN0aW9uSWRlbnRpZmllcigpIGNvbnN0IGZpbmFsOwotICAgIGJvb2wgbWF5SGF2ZVNlcnZpY2VX
b3JrZXJSZWdpc3RlcmVkRm9yT3JpZ2luKGNvbnN0IFNlY3VyaXR5T3JpZ2luRGF0YSYpIGNvbnN0
IGZpbmFsOwogICAgIHZvaWQgZmluaXNoRmV0Y2hpbmdTY3JpcHRJblNlcnZlcihjb25zdCBTZXJ2
aWNlV29ya2VySm9iRGF0YUlkZW50aWZpZXImLCBTZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uS2V5
JiYsIFdvcmtlckZldGNoUmVzdWx0JiYpIGZpbmFsOwogICAgIHZvaWQgc2NoZWR1bGVKb2JJblNl
cnZlcihjb25zdCBTZXJ2aWNlV29ya2VySm9iRGF0YSYpIGZpbmFsOwogICAgIHZvaWQgc2NoZWR1
bGVKb2IoU2VydmljZVdvcmtlck9yQ2xpZW50SWRlbnRpZmllciwgY29uc3QgU2VydmljZVdvcmtl
ckpvYkRhdGEmKSBmaW5hbDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2Vy
dmljZS9zZXJ2ZXIvU1dPcmlnaW5TdG9yZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3Nl
cnZpY2Uvc2VydmVyL1NXT3JpZ2luU3RvcmUuY3BwCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCBmMDFmYjE2MWNlOGM4NDg1ZDU2MjYyZWI2YWM2NzE0MTRkYzAyYzQxLi4wMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJDb3JlL3dvcmtl
cnMvc2VydmljZS9zZXJ2ZXIvU1dPcmlnaW5TdG9yZS5jcHAKKysrIC9kZXYvbnVsbApAQCAtMSw3
MSArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDE3IEFwcGxlIEluYy4gQWxsIHJpZ2h0
cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQg
YmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1p
dHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoK
LSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJv
dmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5
IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRo
ZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdp
dGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZ
IEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCi0gKiBBTkQgQU5ZIEVY
UFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywKLSAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRO
RVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVW
RU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUwotICogQkUgTElBQkxFIEZP
UiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBP
UgotICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywgUFJPQ1VSRU1FTlQgT0YKLSAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1Mg
T0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUwotICogSU5URVJSVVBUSU9OKSBI
T1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4K
LSAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElH
RU5DRSBPUiBPVEhFUldJU0UpCi0gKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0Ug
T0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCi0gKiBUSEUgUE9TU0lCSUxJVFkg
T0YgU1VDSCBEQU1BR0UuCi0gKi8KLQotI2luY2x1ZGUgImNvbmZpZy5oIgotI2luY2x1ZGUgIlNX
T3JpZ2luU3RvcmUuaCIKLQotI2lmIEVOQUJMRShTRVJWSUNFX1dPUktFUikKLQotI2luY2x1ZGUg
IlNlY3VyaXR5T3JpZ2luLmgiCi0KLW5hbWVzcGFjZSBXZWJDb3JlIHsKLQotdm9pZCBTV09yaWdp
blN0b3JlOjphZGQoY29uc3QgU2VjdXJpdHlPcmlnaW5EYXRhJiBvcmlnaW4pCi17Ci0gICAgKytt
X29yaWdpbkNvdW50cy5lbnN1cmUob3JpZ2luLCBbJl0gewotICAgICAgICBhZGRUb1N0b3JlKG9y
aWdpbik7Ci0gICAgICAgIHJldHVybiAwOwotICAgIH0pLml0ZXJhdG9yLT52YWx1ZTsKLX0KLQot
dm9pZCBTV09yaWdpblN0b3JlOjpyZW1vdmUoY29uc3QgU2VjdXJpdHlPcmlnaW5EYXRhJiBvcmln
aW4pCi17Ci0gICAgYXV0byBpdGVyYXRvciA9IG1fb3JpZ2luQ291bnRzLmZpbmQob3JpZ2luKTsK
LSAgICBBU1NFUlQoaXRlcmF0b3IgIT0gbV9vcmlnaW5Db3VudHMuZW5kKCkpOwotICAgIGlmIChp
dGVyYXRvciA9PSBtX29yaWdpbkNvdW50cy5lbmQoKSkKLSAgICAgICAgcmV0dXJuOwotCi0gICAg
aWYgKC0taXRlcmF0b3ItPnZhbHVlKQotICAgICAgICByZXR1cm47Ci0KLSAgICBtX29yaWdpbkNv
dW50cy5yZW1vdmUoaXRlcmF0b3IpOwotICAgIHJlbW92ZUZyb21TdG9yZShvcmlnaW4pOwotfQot
Ci12b2lkIFNXT3JpZ2luU3RvcmU6OmNsZWFyKGNvbnN0IFNlY3VyaXR5T3JpZ2luRGF0YSYgb3Jp
Z2luKQotewotICAgIG1fb3JpZ2luQ291bnRzLnJlbW92ZShvcmlnaW4pOwotICAgIHJlbW92ZUZy
b21TdG9yZShvcmlnaW4pOwotfQotCi12b2lkIFNXT3JpZ2luU3RvcmU6OmNsZWFyQWxsKCkKLXsK
LSAgICBtX29yaWdpbkNvdW50cy5jbGVhcigpOwotICAgIGNsZWFyU3RvcmUoKTsKLX0KLQotfSAv
LyBuYW1lc3BhY2UgV2ViQ29yZQotCi0jZW5kaWYgLy8gRU5BQkxFKFNFUlZJQ0VfV09SS0VSKQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL3NlcnZlci9TV09yaWdp
blN0b3JlLmggYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2Uvc2VydmVyL1NXT3JpZ2lu
U3RvcmUuaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggY2IyOGIzOTQxOTkyOWZjMmRh
ZDRlYjdiZDdkZWNlZTIwOWQ5NGNhMS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMAotLS0gYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2Uvc2VydmVyL1NXT3Jp
Z2luU3RvcmUuaAorKysgL2Rldi9udWxsCkBAIC0xLDU3ICswLDAgQEAKLS8qCi0gKiBDb3B5cmln
aHQgKEMpIDIwMTcgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlz
dHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0
aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZv
bGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0OgotICogMS4gUmVkaXN0cmlidXRpb25zIG9m
IHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4K
LSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUg
YWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVudGF0aW9uIGFu
ZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoK
LSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRS
SUJVVE9SUyBgYEFTIElTJycKLSAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJ
RVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAotICogVEhFIElNUExJRUQgV0FSUkFO
VElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgotICog
UFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJ
VFMgQ09OVFJJQlVUT1JTCi0gKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJ
TkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCi0gKiBDT05TRVFVRU5USUFMIERBTUFH
RVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgotICogU1VC
U1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7
IE9SIEJVU0lORVNTCi0gKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkg
VEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgotICogQ09OVFJBQ1QsIFNUUklDVCBMSUFC
SUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKLSAqIEFS
SVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElG
IEFEVklTRUQgT0YKLSAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLSAqLwotCi0j
cHJhZ21hIG9uY2UKLQotI2lmIEVOQUJMRShTRVJWSUNFX1dPUktFUikKLQotI2luY2x1ZGUgIlNl
Y3VyaXR5T3JpZ2luRGF0YS5oIgotI2luY2x1ZGUgPHd0Zi9IYXNoTWFwLmg+Ci0KLW5hbWVzcGFj
ZSBXZWJDb3JlIHsKLQotY2xhc3MgU1dPcmlnaW5TdG9yZSB7Ci0gICAgV1RGX01BS0VfRkFTVF9B
TExPQ0FURUQ7Ci1wdWJsaWM6Ci0gICAgdmlydHVhbCB+U1dPcmlnaW5TdG9yZSgpID0gZGVmYXVs
dDsKLQotICAgIHZvaWQgYWRkKGNvbnN0IFNlY3VyaXR5T3JpZ2luRGF0YSYpOwotICAgIHZvaWQg
cmVtb3ZlKGNvbnN0IFNlY3VyaXR5T3JpZ2luRGF0YSYpOwotICAgIHZvaWQgY2xlYXIoY29uc3Qg
U2VjdXJpdHlPcmlnaW5EYXRhJik7Ci0gICAgdm9pZCBjbGVhckFsbCgpOwotCi0gICAgdmlydHVh
bCB2b2lkIGltcG9ydENvbXBsZXRlKCkgPSAwOwotCi1wcml2YXRlOgotICAgIHZpcnR1YWwgdm9p
ZCBhZGRUb1N0b3JlKGNvbnN0IFNlY3VyaXR5T3JpZ2luRGF0YSYpID0gMDsKLSAgICB2aXJ0dWFs
IHZvaWQgcmVtb3ZlRnJvbVN0b3JlKGNvbnN0IFNlY3VyaXR5T3JpZ2luRGF0YSYpID0gMDsKLSAg
ICB2aXJ0dWFsIHZvaWQgY2xlYXJTdG9yZSgpID0gMDsKLQotICAgIEhhc2hNYXA8U2VjdXJpdHlP
cmlnaW5EYXRhLCB1aW50NjRfdD4gbV9vcmlnaW5Db3VudHM7Ci19OwotCi19IC8vIG5hbWVzcGFj
ZSBXZWJDb3JlCi0KLSNlbmRpZiAvLyBFTkFCTEUoU0VSVklDRV9XT1JLRVIpCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2Uvc2VydmVyL1NXU2VydmVyLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9zZXJ2ZXIvU1dTZXJ2ZXIuY3BwCmluZGV4IGE2
OGEwNDU0NDg1MjViZDkwOTRhMDAwNWE1MjY2Yjg2N2VhMGI3MTUuLmQyMmQzYmRjMDEzMjU2ODNh
YzY2Yjg4Y2ViZjUxYzYyMzA0Y2U0MzkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3dvcmtl
cnMvc2VydmljZS9zZXJ2ZXIvU1dTZXJ2ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3dvcmtl
cnMvc2VydmljZS9zZXJ2ZXIvU1dTZXJ2ZXIuY3BwCkBAIC0zMyw3ICszMyw2IEBACiAjaW5jbHVk
ZSAiTG9nZ2luZy5oIgogI2luY2x1ZGUgIk5vdGlmaWNhdGlvbkRhdGEuaCIKICNpbmNsdWRlICJS
ZWdpc3RyYXRpb25TdG9yZS5oIgotI2luY2x1ZGUgIlNXT3JpZ2luU3RvcmUuaCIKICNpbmNsdWRl
ICJTV1NlcnZlckpvYlF1ZXVlLmgiCiAjaW5jbHVkZSAiU1dTZXJ2ZXJSZWdpc3RyYXRpb24uaCIK
ICNpbmNsdWRlICJTV1NlcnZlclRvQ29udGV4dENvbm5lY3Rpb24uaCIKQEAgLTE0OSw3ICsxNDgs
NiBAQCB2b2lkIFNXU2VydmVyOjpyZWdpc3RyYXRpb25TdG9yZUltcG9ydENvbXBsZXRlKCkKIHsK
ICAgICBBU1NFUlQoIW1faW1wb3J0Q29tcGxldGVkKTsKICAgICBtX2ltcG9ydENvbXBsZXRlZCA9
IHRydWU7Ci0gICAgbV9vcmlnaW5TdG9yZS0+aW1wb3J0Q29tcGxldGUoKTsKIAogICAgIGF1dG8g
Y2xlYXJDYWxsYmFja3MgPSBXVEZNb3ZlKG1fY2xlYXJDb21wbGV0aW9uQ2FsbGJhY2tzKTsKICAg
ICBmb3IgKGF1dG8mIGNhbGxiYWNrIDogY2xlYXJDYWxsYmFja3MpCkBAIC0yMjQsNyArMjIyLDYg
QEAgdm9pZCBTV1NlcnZlcjo6YWRkUmVnaXN0cmF0aW9uKHN0ZDo6dW5pcXVlX3B0cjxTV1NlcnZl
clJlZ2lzdHJhdGlvbj4mJiByZWdpc3RyYXQKICAgICBpZiAocmVnaXN0cmF0aW9uLT5zZXJ2aWNl
V29ya2VyUGFnZUlkZW50aWZpZXIoKSkKICAgICAgICAgbV9zZXJ2aWNlV29ya2VyUGFnZUlkZW50
aWZpZXJUb1JlZ2lzdHJhdGlvbk1hcC5hZGQoKnJlZ2lzdHJhdGlvbi0+c2VydmljZVdvcmtlclBh
Z2VJZGVudGlmaWVyKCksICpyZWdpc3RyYXRpb24pOwogCi0gICAgbV9vcmlnaW5TdG9yZS0+YWRk
KHJlZ2lzdHJhdGlvbi0+a2V5KCkudG9wT3JpZ2luKCkpOwogICAgIGF1dG8gcmVnaXN0cmF0aW9u
SUQgPSByZWdpc3RyYXRpb24tPmlkZW50aWZpZXIoKTsKICAgICBBU1NFUlQoIW1fc2NvcGVUb1Jl
Z2lzdHJhdGlvbk1hcC5jb250YWlucyhyZWdpc3RyYXRpb24tPmtleSgpKSk7CiAgICAgbV9zY29w
ZVRvUmVnaXN0cmF0aW9uTWFwLnNldChyZWdpc3RyYXRpb24tPmtleSgpLCAqcmVnaXN0cmF0aW9u
KTsKQEAgLTI0Nyw3ICsyNDQsNiBAQCB2b2lkIFNXU2VydmVyOjpyZW1vdmVSZWdpc3RyYXRpb24o
U2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbklkZW50aWZpZXIgcmVnaXN0cmF0aQogICAgICAgICAg
ICAgbV91bmlxdWVSZWdpc3RyYXRpb25Db3VudC0tOwogICAgIH0KIAotICAgIG1fb3JpZ2luU3Rv
cmUtPnJlbW92ZShyZWdpc3RyYXRpb24tPmtleSgpLnRvcE9yaWdpbigpKTsKICAgICBpZiAobV9y
ZWdpc3RyYXRpb25TdG9yZSkKICAgICAgICAgbV9yZWdpc3RyYXRpb25TdG9yZS0+cmVtb3ZlUmVn
aXN0cmF0aW9uKHJlZ2lzdHJhdGlvbi0+a2V5KCkpOwogfQpAQCAtMjg2LDcgKzI4Miw2IEBAIHZv
aWQgU1dTZXJ2ZXI6OmNsZWFyQWxsKENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJiBjb21wbGV0
aW9uSGFuZGxlcikKICAgICB3aGlsZSAoIW1fcmVnaXN0cmF0aW9ucy5pc0VtcHR5KCkpCiAgICAg
ICAgIG1fcmVnaXN0cmF0aW9ucy5iZWdpbigpLT52YWx1ZS0+Y2xlYXIoKTsKICAgICBtX3BlbmRp
bmdDb250ZXh0RGF0YXMuY2xlYXIoKTsKLSAgICBtX29yaWdpblN0b3JlLT5jbGVhckFsbCgpOwog
ICAgIGlmICghbV9yZWdpc3RyYXRpb25TdG9yZSkKICAgICAgICAgcmV0dXJuIGNvbXBsZXRpb25I
YW5kbGVyKCk7CiAKQEAgLTMzOSw3ICszMzQsNyBAQCB2b2lkIFNXU2VydmVyOjpjbGVhcihjb25z
dCBTZWN1cml0eU9yaWdpbkRhdGEmIHNlY3VyaXR5T3JpZ2luLCBDb21wbGV0aW9uSGFuZGxlcgog
ICAgICAgICByZXR1cm47CiAgICAgfQogCi0gICAgLy8gQ2FsbGluZyBTV1NlcnZlclJlZ2lzdHJh
dGlvbjo6Y2xlYXIoKSB0YWtlcyBjYXJlIG9mIHVwZGF0aW5nIG1fcmVnaXN0cmF0aW9ucywgbV9v
cmlnaW5TdG9yZSBhbmQgbV9yZWdpc3RyYXRpb25TdG9yZS4KKyAgICAvLyBDYWxsaW5nIFNXU2Vy
dmVyUmVnaXN0cmF0aW9uOjpjbGVhcigpIHRha2VzIGNhcmUgb2YgdXBkYXRpbmcgbV9yZWdpc3Ry
YXRpb25zIGFuZCBtX3JlZ2lzdHJhdGlvblN0b3JlLgogICAgIGZvciAoYXV0byogcmVnaXN0cmF0
aW9uIDogcmVnaXN0cmF0aW9uc1RvUmVtb3ZlKQogICAgICAgICByZWdpc3RyYXRpb24tPmNsZWFy
KCk7CiAKQEAgLTM2OSw5ICszNjQsOCBAQCB2b2lkIFNXU2VydmVyOjpDb25uZWN0aW9uOjpyZW1v
dmVTZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uSW5TZXJ2ZXIoU2VydmljZVdvcmtlcgogICAgIG1f
c2VydmVyLnJlbW92ZUNsaWVudFNlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb24oKnRoaXMsIGlkZW50
aWZpZXIpOwogfQogCi1TV1NlcnZlcjo6U1dTZXJ2ZXIoVW5pcXVlUmVmPFNXT3JpZ2luU3RvcmU+
JiYgb3JpZ2luU3RvcmUsIGJvb2wgcHJvY2Vzc1Rlcm1pbmF0aW9uRGVsYXlFbmFibGVkLCBTdHJp
bmcmJiByZWdpc3RyYXRpb25EYXRhYmFzZURpcmVjdG9yeSwgUEFMOjpTZXNzaW9uSUQgc2Vzc2lv
bklELCBib29sIHNob3VsZFJ1blNlcnZpY2VXb3JrZXJzT25NYWluVGhyZWFkRm9yVGVzdGluZywg
Ym9vbCBoYXNTZXJ2aWNlV29ya2VyRW50aXRsZW1lbnQsIHN0ZDo6b3B0aW9uYWw8dW5zaWduZWQ+
IG92ZXJyaWRlU2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbkNvdW50VGVzdGluZ1ZhbHVlLCBTb2Z0
VXBkYXRlQ2FsbGJhY2smJiBzb2Z0VXBkYXRlQ2FsbGJhY2ssIENyZWF0ZUNvbnRleHRDb25uZWN0
aW9uQ2FsbGJhY2smJiBjYWxsYmFjaywgQXBwQm91bmREb21haW5zQ2FsbGJhY2smJiBhcHBCb3Vu
ZERvbWFpbnNDYWxsYmFjaykKLSAgICA6IG1fb3JpZ2luU3RvcmUoV1RGTW92ZShvcmlnaW5TdG9y
ZSkpCi0gICAgLCBtX3Nlc3Npb25JRChzZXNzaW9uSUQpCitTV1NlcnZlcjo6U1dTZXJ2ZXIoYm9v
bCBwcm9jZXNzVGVybWluYXRpb25EZWxheUVuYWJsZWQsIFN0cmluZyYmIHJlZ2lzdHJhdGlvbkRh
dGFiYXNlRGlyZWN0b3J5LCBQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIGJvb2wgc2hvdWxkUnVu
U2VydmljZVdvcmtlcnNPbk1haW5UaHJlYWRGb3JUZXN0aW5nLCBib29sIGhhc1NlcnZpY2VXb3Jr
ZXJFbnRpdGxlbWVudCwgc3RkOjpvcHRpb25hbDx1bnNpZ25lZD4gb3ZlcnJpZGVTZXJ2aWNlV29y
a2VyUmVnaXN0cmF0aW9uQ291bnRUZXN0aW5nVmFsdWUsIFNvZnRVcGRhdGVDYWxsYmFjayYmIHNv
ZnRVcGRhdGVDYWxsYmFjaywgQ3JlYXRlQ29udGV4dENvbm5lY3Rpb25DYWxsYmFjayYmIGNhbGxi
YWNrLCBBcHBCb3VuZERvbWFpbnNDYWxsYmFjayYmIGFwcEJvdW5kRG9tYWluc0NhbGxiYWNrKQor
ICAgIDogbV9zZXNzaW9uSUQoc2Vzc2lvbklEKQogICAgICwgbV9pc1Byb2Nlc3NUZXJtaW5hdGlv
bkRlbGF5RW5hYmxlZChwcm9jZXNzVGVybWluYXRpb25EZWxheUVuYWJsZWQpCiAgICAgLCBtX2Ny
ZWF0ZUNvbnRleHRDb25uZWN0aW9uQ2FsbGJhY2soV1RGTW92ZShjYWxsYmFjaykpCiAgICAgLCBt
X3NvZnRVcGRhdGVDYWxsYmFjayhXVEZNb3ZlKHNvZnRVcGRhdGVDYWxsYmFjaykpCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2Uvc2VydmVyL1NXU2VydmVyLmggYi9T
b3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2Uvc2VydmVyL1NXU2VydmVyLmgKaW5kZXggOTY1
MjM1OWVjN2M1Y2U5NzYxY2IzN2Q0N2E4OTk3OGM2ZmUwODBiZS4uZTYxYzFjYzcyMjAwNDNmYTY0
MjdiNmNlNjNjNDhmNjA1MmVmZWVjMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvd29ya2Vy
cy9zZXJ2aWNlL3NlcnZlci9TV1NlcnZlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMv
c2VydmljZS9zZXJ2ZXIvU1dTZXJ2ZXIuaApAQCAtNTUsNyArNTUsNiBAQAogbmFtZXNwYWNlIFdl
YkNvcmUgewogCiBjbGFzcyBSZWdpc3RyYXRpb25TdG9yZTsKLWNsYXNzIFNXT3JpZ2luU3RvcmU7
CiBjbGFzcyBTV1NlcnZlckpvYlF1ZXVlOwogY2xhc3MgU1dTZXJ2ZXJSZWdpc3RyYXRpb247CiBj
bGFzcyBTV1NlcnZlclRvQ29udGV4dENvbm5lY3Rpb247CkBAIC0xMzQsNyArMTMzLDcgQEAgcHVi
bGljOgogICAgIHVzaW5nIFNvZnRVcGRhdGVDYWxsYmFjayA9IEZ1bmN0aW9uPHZvaWQoU2Vydmlj
ZVdvcmtlckpvYkRhdGEmJiBqb2JEYXRhLCBib29sIHNob3VsZFJlZnJlc2hDYWNoZSwgUmVzb3Vy
Y2VSZXF1ZXN0JiYsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoV29ya2VyRmV0Y2hSZXN1bHQmJik+
JiYpPjsKICAgICB1c2luZyBDcmVhdGVDb250ZXh0Q29ubmVjdGlvbkNhbGxiYWNrID0gRnVuY3Rp
b248dm9pZChjb25zdCBXZWJDb3JlOjpSZWdpc3RyYWJsZURvbWFpbiYsIHN0ZDo6b3B0aW9uYWw8
UHJvY2Vzc0lkZW50aWZpZXI+IHJlcXVlc3RpbmdQcm9jZXNzSWRlbnRpZmllciwgc3RkOjpvcHRp
b25hbDxTY3JpcHRFeGVjdXRpb25Db250ZXh0SWRlbnRpZmllcj4sIENvbXBsZXRpb25IYW5kbGVy
PHZvaWQoKT4mJik+OwogICAgIHVzaW5nIEFwcEJvdW5kRG9tYWluc0NhbGxiYWNrID0gRnVuY3Rp
b248dm9pZChDb21wbGV0aW9uSGFuZGxlcjx2b2lkKEhhc2hTZXQ8V2ViQ29yZTo6UmVnaXN0cmFi
bGVEb21haW4+JiYpPiYmKT47Ci0gICAgV0VCQ09SRV9FWFBPUlQgU1dTZXJ2ZXIoVW5pcXVlUmVm
PFNXT3JpZ2luU3RvcmU+JiYsIGJvb2wgcHJvY2Vzc1Rlcm1pbmF0aW9uRGVsYXlFbmFibGVkLCBT
dHJpbmcmJiByZWdpc3RyYXRpb25EYXRhYmFzZURpcmVjdG9yeSwgUEFMOjpTZXNzaW9uSUQsIGJv
b2wgc2hvdWxkUnVuU2VydmljZVdvcmtlcnNPbk1haW5UaHJlYWRGb3JUZXN0aW5nLCBib29sIGhh
c1NlcnZpY2VXb3JrZXJFbnRpdGxlbWVudCwgc3RkOjpvcHRpb25hbDx1bnNpZ25lZD4gb3ZlcnJp
ZGVTZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uQ291bnRUZXN0aW5nVmFsdWUsIFNvZnRVcGRhdGVD
YWxsYmFjayYmLCBDcmVhdGVDb250ZXh0Q29ubmVjdGlvbkNhbGxiYWNrJiYsIEFwcEJvdW5kRG9t
YWluc0NhbGxiYWNrJiYpOworICAgIFdFQkNPUkVfRVhQT1JUIFNXU2VydmVyKGJvb2wgcHJvY2Vz
c1Rlcm1pbmF0aW9uRGVsYXlFbmFibGVkLCBTdHJpbmcmJiByZWdpc3RyYXRpb25EYXRhYmFzZURp
cmVjdG9yeSwgUEFMOjpTZXNzaW9uSUQsIGJvb2wgc2hvdWxkUnVuU2VydmljZVdvcmtlcnNPbk1h
aW5UaHJlYWRGb3JUZXN0aW5nLCBib29sIGhhc1NlcnZpY2VXb3JrZXJFbnRpdGxlbWVudCwgc3Rk
OjpvcHRpb25hbDx1bnNpZ25lZD4gb3ZlcnJpZGVTZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uQ291
bnRUZXN0aW5nVmFsdWUsIFNvZnRVcGRhdGVDYWxsYmFjayYmLCBDcmVhdGVDb250ZXh0Q29ubmVj
dGlvbkNhbGxiYWNrJiYsIEFwcEJvdW5kRG9tYWluc0NhbGxiYWNrJiYpOwogCiAgICAgV0VCQ09S
RV9FWFBPUlQgflNXU2VydmVyKCk7CiAKQEAgLTE3OCw4ICsxNzcsNiBAQCBwdWJsaWM6CiAgICAg
Y29uc3QgSGFzaE1hcDxTV1NlcnZlckNvbm5lY3Rpb25JZGVudGlmaWVyLCBzdGQ6OnVuaXF1ZV9w
dHI8Q29ubmVjdGlvbj4+JiBjb25uZWN0aW9ucygpIGNvbnN0IHsgcmV0dXJuIG1fY29ubmVjdGlv
bnM7IH0KICAgICBXRUJDT1JFX0VYUE9SVCBib29sIGNhbkhhbmRsZVNjaGVtZShTdHJpbmdWaWV3
KSBjb25zdDsKIAotICAgIFNXT3JpZ2luU3RvcmUmIG9yaWdpblN0b3JlKCkgeyByZXR1cm4gbV9v
cmlnaW5TdG9yZTsgfQotCiAgICAgdm9pZCByZWZyZXNoSW1wb3J0ZWRTY3JpcHRzRmluaXNoZWQo
Y29uc3QgU2VydmljZVdvcmtlckpvYkRhdGFJZGVudGlmaWVyJiwgY29uc3QgU2VydmljZVdvcmtl
clJlZ2lzdHJhdGlvbktleSYsIGNvbnN0IFZlY3RvcjxzdGQ6OnBhaXI8VVJMLCBTY3JpcHRCdWZm
ZXI+PiYpOwogICAgIHZvaWQgc2NyaXB0Q29udGV4dEZhaWxlZFRvU3RhcnQoY29uc3Qgc3RkOjpv
cHRpb25hbDxTZXJ2aWNlV29ya2VySm9iRGF0YUlkZW50aWZpZXI+JiwgU1dTZXJ2ZXJXb3JrZXIm
LCBjb25zdCBTdHJpbmcmIG1lc3NhZ2UpOwogICAgIHZvaWQgc2NyaXB0Q29udGV4dFN0YXJ0ZWQo
Y29uc3Qgc3RkOjpvcHRpb25hbDxTZXJ2aWNlV29ya2VySm9iRGF0YUlkZW50aWZpZXI+JiwgU1dT
ZXJ2ZXJXb3JrZXImKTsKQEAgLTIyMSw2ICsyMTgsNyBAQCBwdWJsaWM6CiAKICAgICBib29sIGlz
SW1wb3J0Q29tcGxldGVkKCkgY29uc3QgeyByZXR1cm4gbV9pbXBvcnRDb21wbGV0ZWQ7IH0KICAg
ICBXRUJDT1JFX0VYUE9SVCB2b2lkIHdoZW5JbXBvcnRJc0NvbXBsZXRlZChDb21wbGV0aW9uSGFu
ZGxlcjx2b2lkKCk+JiYpOworICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgd2hlbkltcG9ydElzQ29t
cGxldGVkSWZOZWVkZWQoQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmKTsKIAogICAgIHZvaWQg
c29mdFVwZGF0ZShTV1NlcnZlclJlZ2lzdHJhdGlvbiYpOwogCkBAIC0yODQsNyArMjgyLDYgQEAg
cHJpdmF0ZToKICAgICB2b2lkIGNvbnRleHRDb25uZWN0aW9uQ3JlYXRlZChTV1NlcnZlclRvQ29u
dGV4dENvbm5lY3Rpb24mKTsKIAogICAgIHZvaWQgdXBkYXRlQXBwSW5pdGlhdGVkVmFsdWVGb3JX
b3JrZXJzKGNvbnN0IENsaWVudE9yaWdpbiYsIExhc3ROYXZpZ2F0aW9uV2FzQXBwSW5pdGlhdGVk
KTsKLSAgICB2b2lkIHdoZW5JbXBvcnRJc0NvbXBsZXRlZElmTmVlZGVkKENvbXBsZXRpb25IYW5k
bGVyPHZvaWQoKT4mJik7CiAKICAgICBSZXNvdXJjZVJlcXVlc3QgY3JlYXRlU2NyaXB0UmVxdWVz
dChjb25zdCBVUkwmLCBjb25zdCBTZXJ2aWNlV29ya2VySm9iRGF0YSYsIFNXU2VydmVyUmVnaXN0
cmF0aW9uJik7CiAKQEAgLTMwNyw3ICszMDQsNiBAQCBwcml2YXRlOgogICAgIEhhc2hNYXA8U2Ny
aXB0RXhlY3V0aW9uQ29udGV4dElkZW50aWZpZXIsIFNlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb25J
ZGVudGlmaWVyPiBtX2NsaWVudFRvQ29udHJvbGxpbmdSZWdpc3RyYXRpb247CiAgICAgTWVtb3J5
Q29tcGFjdFJvYmluSG9vZEhhc2hNYXA8U3RyaW5nLCBTY3JpcHRFeGVjdXRpb25Db250ZXh0SWRl
bnRpZmllcj4gbV92aXNpYmxlQ2xpZW50SWRUb0ludGVybmFsQ2xpZW50SWRNYXA7CiAKLSAgICBV
bmlxdWVSZWY8U1dPcmlnaW5TdG9yZT4gbV9vcmlnaW5TdG9yZTsKICAgICBzdGQ6OnVuaXF1ZV9w
dHI8UmVnaXN0cmF0aW9uU3RvcmU+IG1fcmVnaXN0cmF0aW9uU3RvcmU7CiAgICAgSGFzaE1hcDxS
ZWdpc3RyYWJsZURvbWFpbiwgVmVjdG9yPFNlcnZpY2VXb3JrZXJDb250ZXh0RGF0YT4+IG1fcGVu
ZGluZ0NvbnRleHREYXRhczsKICAgICBIYXNoTWFwPFJlZ2lzdHJhYmxlRG9tYWluLCBIYXNoTWFw
PFNlcnZpY2VXb3JrZXJJZGVudGlmaWVyLCBWZWN0b3I8UnVuU2VydmljZVdvcmtlckNhbGxiYWNr
Pj4+IG1fc2VydmljZVdvcmtlclJ1blJlcXVlc3RzOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrU2Vzc2lvbi5jcHAgYi9Tb3VyY2UvV2ViS2l0L05ldHdv
cmtQcm9jZXNzL05ldHdvcmtTZXNzaW9uLmNwcAppbmRleCAyMzE5NGQ1YTEzYWU3ZjM2YTI4ZGZk
YTk1MGI1ZWU2NWI2MjIxNDBhLi44NDIwMDgzNTlhZWM1NTgwODU5MWQ2OTA5MjkzYmJhMzc0MDli
NTI2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtTZXNz
aW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtTZXNzaW9u
LmNwcApAQCAtNDYsNyArNDYsNiBAQAogI2luY2x1ZGUgIldlYlBhZ2VQcm94eS5oIgogI2luY2x1
ZGUgIldlYlBhZ2VQcm94eU1lc3NhZ2VzLmgiCiAjaW5jbHVkZSAiV2ViUHJvY2Vzc1Byb3h5Lmgi
Ci0jaW5jbHVkZSAiV2ViU1dPcmlnaW5TdG9yZS5oIgogI2luY2x1ZGUgIldlYlNoYXJlZFdvcmtl
clNlcnZlci5oIgogI2luY2x1ZGUgIldlYlNvY2tldFRhc2suaCIKICNpbmNsdWRlIDxXZWJDb3Jl
L0Nvb2tpZUphci5oPgpAQCAtNjExLDI1ICs2MTAsNiBAQCBTZXJ2aWNlV29ya2VyRmV0Y2hUYXNr
KiBOZXR3b3JrU2Vzc2lvbjo6bmF2aWdhdGlvblByZWxvYWRlclRhc2tGcm9tRmV0Y2hJZGVudGlm
aQogICAgIHJldHVybiBtX25hdmlnYXRpb25QcmVsb2FkZXJzLmdldChpZGVudGlmaWVyKS5nZXQo
KTsKIH0KIAotV2ViU1dPcmlnaW5TdG9yZSogTmV0d29ya1Nlc3Npb246OnN3T3JpZ2luU3RvcmUo
KSBjb25zdAotewotICAgIHJldHVybiBtX3N3U2VydmVyID8gJnN0YXRpY19jYXN0PFdlYlNXT3Jp
Z2luU3RvcmUmPihtX3N3U2VydmVyLT5vcmlnaW5TdG9yZSgpKSA6IG51bGxwdHI7Ci19Ci0KLXZv
aWQgTmV0d29ya1Nlc3Npb246OnJlZ2lzdGVyU1dTZXJ2ZXJDb25uZWN0aW9uKFdlYlNXU2VydmVy
Q29ubmVjdGlvbiYgY29ubmVjdGlvbikKLXsKLSAgICBhdXRvKiBzdG9yZSA9IHN3T3JpZ2luU3Rv
cmUoKTsKLSAgICBBU1NFUlQoc3RvcmUpOwotICAgIGlmIChzdG9yZSkKLSAgICAgICAgc3RvcmUt
PnJlZ2lzdGVyU1dTZXJ2ZXJDb25uZWN0aW9uKGNvbm5lY3Rpb24pOwotfQotCi12b2lkIE5ldHdv
cmtTZXNzaW9uOjp1bnJlZ2lzdGVyU1dTZXJ2ZXJDb25uZWN0aW9uKFdlYlNXU2VydmVyQ29ubmVj
dGlvbiYgY29ubmVjdGlvbikKLXsKLSAgICBpZiAoYXV0byogc3RvcmUgPSBzd09yaWdpblN0b3Jl
KCkpCi0gICAgICAgIHN0b3JlLT51bnJlZ2lzdGVyU1dTZXJ2ZXJDb25uZWN0aW9uKGNvbm5lY3Rp
b24pOwotfQotCiBTV1NlcnZlciYgTmV0d29ya1Nlc3Npb246OmVuc3VyZVNXU2VydmVyKCkKIHsK
ICAgICBpZiAoIW1fc3dTZXJ2ZXIpIHsKQEAgLTY0OCw3ICs2MjgsNyBAQCBTV1NlcnZlciYgTmV0
d29ya1Nlc3Npb246OmVuc3VyZVNXU2VydmVyKCkKICAgICAgICAgICAgIGNvbXBsZXRpb25IYW5k
bGVyKHsgfSk7CiAgICAgICAgIH07CiAjZW5kaWYKLSAgICAgICAgbV9zd1NlcnZlciA9IG1ha2VV
bmlxdWU8U1dTZXJ2ZXI+KG1ha2VVbmlxdWVSZWY8V2ViU1dPcmlnaW5TdG9yZT4oKSwgaW5mby5w
cm9jZXNzVGVybWluYXRpb25EZWxheUVuYWJsZWQsIFdURk1vdmUocGF0aCksIG1fc2Vzc2lvbklE
LCBzaG91bGRSdW5TZXJ2aWNlV29ya2Vyc09uTWFpblRocmVhZEZvclRlc3RpbmcoKSwgbV9uZXR3
b3JrUHJvY2Vzcy0+cGFyZW50UHJvY2Vzc0hhc1NlcnZpY2VXb3JrZXJFbnRpdGxlbWVudCgpLCBv
dmVycmlkZVNlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb25Db3VudFRlc3RpbmdWYWx1ZSgpLCBbdGhp
c10oYXV0byYmIGpvYkRhdGEsIGJvb2wgc2hvdWxkUmVmcmVzaENhY2hlLCBhdXRvJiYgcmVxdWVz
dCwgYXV0byYmIGNvbXBsZXRpb25IYW5kbGVyKSBtdXRhYmxlIHsKKyAgICAgICAgbV9zd1NlcnZl
ciA9IG1ha2VVbmlxdWU8U1dTZXJ2ZXI+KGluZm8ucHJvY2Vzc1Rlcm1pbmF0aW9uRGVsYXlFbmFi
bGVkLCBXVEZNb3ZlKHBhdGgpLCBtX3Nlc3Npb25JRCwgc2hvdWxkUnVuU2VydmljZVdvcmtlcnNP
bk1haW5UaHJlYWRGb3JUZXN0aW5nKCksIG1fbmV0d29ya1Byb2Nlc3MtPnBhcmVudFByb2Nlc3NI
YXNTZXJ2aWNlV29ya2VyRW50aXRsZW1lbnQoKSwgb3ZlcnJpZGVTZXJ2aWNlV29ya2VyUmVnaXN0
cmF0aW9uQ291bnRUZXN0aW5nVmFsdWUoKSwgW3RoaXNdKGF1dG8mJiBqb2JEYXRhLCBib29sIHNo
b3VsZFJlZnJlc2hDYWNoZSwgYXV0byYmIHJlcXVlc3QsIGF1dG8mJiBjb21wbGV0aW9uSGFuZGxl
cikgbXV0YWJsZSB7CiAgICAgICAgICAgICBTZXJ2aWNlV29ya2VyU29mdFVwZGF0ZUxvYWRlcjo6
c3RhcnQodGhpcywgV1RGTW92ZShqb2JEYXRhKSwgc2hvdWxkUmVmcmVzaENhY2hlLCBXVEZNb3Zl
KHJlcXVlc3QpLCBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKSk7CiAgICAgICAgIH0sIFt0aGlz
XShhdXRvJiByZWdpc3RyYWJsZURvbWFpbiwgc3RkOjpvcHRpb25hbDxQcm9jZXNzSWRlbnRpZmll
cj4gcmVxdWVzdGluZ1Byb2Nlc3NJZGVudGlmaWVyLCBzdGQ6Om9wdGlvbmFsPFNjcmlwdEV4ZWN1
dGlvbkNvbnRleHRJZGVudGlmaWVyPiBzZXJ2aWNlV29ya2VyUGFnZUlkZW50aWZpZXIsIGF1dG8m
JiBjb21wbGV0aW9uSGFuZGxlcikgewogICAgICAgICAgICAgQVNTRVJUKCFyZWdpc3RyYWJsZURv
bWFpbi5pc0VtcHR5KCkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vz
cy9OZXR3b3JrU2Vzc2lvbi5oIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3Jr
U2Vzc2lvbi5oCmluZGV4IDZjYzM1MTQxZGMyMWUxZmExOWI5NDZjZmQ5ZDJmZmRiNjdiZmI0NDIu
LmE2ZmNmMGVkZTkxOTkyZmMyODBmYjg5Zjg2MDQ5MGE3MzFkNjFlYWMgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Nlc3Npb24uaAorKysgYi9Tb3VyY2Uv
V2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtTZXNzaW9uLmgKQEAgLTgxLDcgKzgxLDYgQEAg
Y2xhc3MgV2ViUGFnZU5ldHdvcmtQYXJhbWV0ZXJzOwogY2xhc3MgV2ViUmVzb3VyY2VMb2FkU3Rh
dGlzdGljc1N0b3JlOwogY2xhc3MgV2ViU2hhcmVkV29ya2VyU2VydmVyOwogY2xhc3MgV2ViU29j
a2V0VGFzazsKLWNsYXNzIFdlYlNXT3JpZ2luU3RvcmU7CiBjbGFzcyBXZWJTV1NlcnZlckNvbm5l
Y3Rpb247CiBzdHJ1Y3QgTmV0d29ya1Nlc3Npb25DcmVhdGlvblBhcmFtZXRlcnM7CiBzdHJ1Y3Qg
U2Vzc2lvblNldDsKQEAgLTIwMyw5ICsyMDIsNiBAQCBwdWJsaWM6CiAKICAgICBXZWJDb3JlOjpT
V1NlcnZlciogc3dTZXJ2ZXIoKSB7IHJldHVybiBtX3N3U2VydmVyLmdldCgpOyB9CiAgICAgV2Vi
Q29yZTo6U1dTZXJ2ZXImIGVuc3VyZVNXU2VydmVyKCk7Ci0gICAgV2ViU1dPcmlnaW5TdG9yZSog
c3dPcmlnaW5TdG9yZSgpIGNvbnN0OyAvLyBGSVhNRTogQ2FuIGJlIHByaXZhdGU/Ci0gICAgdm9p
ZCByZWdpc3RlclNXU2VydmVyQ29ubmVjdGlvbihXZWJTV1NlcnZlckNvbm5lY3Rpb24mKTsKLSAg
ICB2b2lkIHVucmVnaXN0ZXJTV1NlcnZlckNvbm5lY3Rpb24oV2ViU1dTZXJ2ZXJDb25uZWN0aW9u
Jik7CiAKICAgICBib29sIGhhc1NlcnZpY2VXb3JrZXJEYXRhYmFzZVBhdGgoKSBjb25zdDsKICNl
bmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9TZXJ2aWNlV29y
a2VyL1dlYlNXT3JpZ2luU3RvcmUuY3BwIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9T
ZXJ2aWNlV29ya2VyL1dlYlNXT3JpZ2luU3RvcmUuY3BwCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMjdkYzFiNzg2OTNjNjdhNGViYjgxMDc4MjVkNWFlYzdlNjAxYThhLi4wMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0
d29ya1Byb2Nlc3MvU2VydmljZVdvcmtlci9XZWJTV09yaWdpblN0b3JlLmNwcAorKysgL2Rldi9u
dWxsCkBAIC0xLDEwNiArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDE3IEFwcGxlIElu
Yy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGlu
IHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlv
biwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwot
ICogYXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJl
dGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlv
bnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyIGluIHRoZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxz
IHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElT
IFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCi0g
KiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywKLSAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklM
SVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJU0NMQUlN
RUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUwotICog
QkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwg
RVhFTVBMQVJZLCBPUgotICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKLSAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VS
VklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUwotICogSU5U
RVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFks
IFdIRVRIRVIgSU4KLSAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNM
VURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCi0gKiBBUklTSU5HIElOIEFOWSBXQVkgT1VU
IE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCi0gKiBUSEUg
UE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0gKi8KLQotI2luY2x1ZGUgImNvbmZpZy5oIgot
Ci0jaWYgRU5BQkxFKFNFUlZJQ0VfV09SS0VSKQotI2luY2x1ZGUgIldlYlNXT3JpZ2luU3RvcmUu
aCIKLQotI2luY2x1ZGUgIldlYlNXQ2xpZW50Q29ubmVjdGlvbk1lc3NhZ2VzLmgiCi0jaW5jbHVk
ZSAiV2ViU1dTZXJ2ZXJDb25uZWN0aW9uLmgiCi0jaW5jbHVkZSA8V2ViQ29yZS9TZWN1cml0eU9y
aWdpbi5oPgotCi1uYW1lc3BhY2UgV2ViS2l0IHsKLQotdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7
Ci0KLVdlYlNXT3JpZ2luU3RvcmU6OldlYlNXT3JpZ2luU3RvcmUoKQotICAgIDogbV9zdG9yZSgq
dGhpcykKLXsKLX0KLQotdm9pZCBXZWJTV09yaWdpblN0b3JlOjphZGRUb1N0b3JlKGNvbnN0IFNl
Y3VyaXR5T3JpZ2luRGF0YSYgb3JpZ2luKQotewotICAgIG1fc3RvcmUuc2NoZWR1bGVBZGRpdGlv
bihjb21wdXRlU2hhcmVkU3RyaW5nSGFzaChvcmlnaW4udG9TdHJpbmcoKSkpOwotICAgIG1fc3Rv
cmUuZmx1c2hQZW5kaW5nQ2hhbmdlcygpOwotfQotCi12b2lkIFdlYlNXT3JpZ2luU3RvcmU6OnJl
bW92ZUZyb21TdG9yZShjb25zdCBTZWN1cml0eU9yaWdpbkRhdGEmIG9yaWdpbikKLXsKLSAgICBt
X3N0b3JlLnNjaGVkdWxlUmVtb3ZhbChjb21wdXRlU2hhcmVkU3RyaW5nSGFzaChvcmlnaW4udG9T
dHJpbmcoKSkpOwotICAgIG1fc3RvcmUuZmx1c2hQZW5kaW5nQ2hhbmdlcygpOwotfQotCi12b2lk
IFdlYlNXT3JpZ2luU3RvcmU6OmNsZWFyU3RvcmUoKQotewotICAgIG1fc3RvcmUuY2xlYXIoKTsK
LX0KLQotdm9pZCBXZWJTV09yaWdpblN0b3JlOjppbXBvcnRDb21wbGV0ZSgpCi17Ci0gICAgbV9p
c0ltcG9ydGVkID0gdHJ1ZTsKLSAgICBmb3IgKGF1dG8mIGNvbm5lY3Rpb24gOiBtX3dlYlNXU2Vy
dmVyQ29ubmVjdGlvbnMpCi0gICAgICAgIGNvbm5lY3Rpb24uc2VuZChNZXNzYWdlczo6V2ViU1dD
bGllbnRDb25uZWN0aW9uOjpTZXRTV09yaWdpblRhYmxlSXNJbXBvcnRlZCgpKTsKLX0KLQotdm9p
ZCBXZWJTV09yaWdpblN0b3JlOjpyZWdpc3RlclNXU2VydmVyQ29ubmVjdGlvbihXZWJTV1NlcnZl
ckNvbm5lY3Rpb24mIGNvbm5lY3Rpb24pCi17Ci0gICAgbV93ZWJTV1NlcnZlckNvbm5lY3Rpb25z
LmFkZChjb25uZWN0aW9uKTsKLQotICAgIGlmICghbV9zdG9yZS5pc0VtcHR5KCkpCi0gICAgICAg
IHNlbmRTdG9yZUhhbmRsZShjb25uZWN0aW9uKTsKLQotICAgIGlmIChtX2lzSW1wb3J0ZWQpCi0g
ICAgICAgIGNvbm5lY3Rpb24uc2VuZChNZXNzYWdlczo6V2ViU1dDbGllbnRDb25uZWN0aW9uOjpT
ZXRTV09yaWdpblRhYmxlSXNJbXBvcnRlZCgpKTsKLX0KLQotdm9pZCBXZWJTV09yaWdpblN0b3Jl
Ojp1bnJlZ2lzdGVyU1dTZXJ2ZXJDb25uZWN0aW9uKFdlYlNXU2VydmVyQ29ubmVjdGlvbiYgY29u
bmVjdGlvbikKLXsKLSAgICBtX3dlYlNXU2VydmVyQ29ubmVjdGlvbnMucmVtb3ZlKGNvbm5lY3Rp
b24pOwotfQotCi12b2lkIFdlYlNXT3JpZ2luU3RvcmU6OnNlbmRTdG9yZUhhbmRsZShXZWJTV1Nl
cnZlckNvbm5lY3Rpb24mIGNvbm5lY3Rpb24pCi17Ci0gICAgU2hhcmVkTWVtb3J5OjpIYW5kbGUg
aGFuZGxlOwotICAgIGlmICghbV9zdG9yZS5jcmVhdGVTaGFyZWRNZW1vcnlIYW5kbGUoaGFuZGxl
KSkKLSAgICAgICAgcmV0dXJuOwotCi0jaWYgKE9TKERBUldJTikgfHwgT1MoV0lORE9XUykpICYm
ICFVU0UoVU5JWF9ET01BSU5fU09DS0VUUykKLSAgICB1aW50NjRfdCBkYXRhU2l6ZSA9IGhhbmRs
ZS5zaXplKCk7Ci0jZWxzZQotICAgIHVpbnQ2NF90IGRhdGFTaXplID0gMDsKLSNlbmRpZgotICAg
IGNvbm5lY3Rpb24uc2VuZChNZXNzYWdlczo6V2ViU1dDbGllbnRDb25uZWN0aW9uOjpTZXRTV09y
aWdpblRhYmxlU2hhcmVkTWVtb3J5KFNoYXJlZE1lbW9yeTo6SVBDSGFuZGxlIHsgV1RGTW92ZSho
YW5kbGUpLCBkYXRhU2l6ZSB9KSk7Ci19Ci0KLXZvaWQgV2ViU1dPcmlnaW5TdG9yZTo6ZGlkSW52
YWxpZGF0ZVNoYXJlZE1lbW9yeSgpCi17Ci0gICAgZm9yIChhdXRvJiBjb25uZWN0aW9uIDogbV93
ZWJTV1NlcnZlckNvbm5lY3Rpb25zKQotICAgICAgICBzZW5kU3RvcmVIYW5kbGUoY29ubmVjdGlv
bik7Ci19Ci0KLX0gLy8gbmFtZXNwYWNlIFdlYktpdAotCi0jZW5kaWYgLy8gRU5BQkxFKFNFUlZJ
Q0VfV09SS0VSKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9TZXJ2
aWNlV29ya2VyL1dlYlNXT3JpZ2luU3RvcmUuaCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nl
c3MvU2VydmljZVdvcmtlci9XZWJTV09yaWdpblN0b3JlLmgKZGVsZXRlZCBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDc1MWE4NTgwNzhmNmNiNWQ0MTk0ZjUwN2E3MjM2ZWQ0OTVkOTgyZjAuLjAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL1dlYktpdC9O
ZXR3b3JrUHJvY2Vzcy9TZXJ2aWNlV29ya2VyL1dlYlNXT3JpZ2luU3RvcmUuaAorKysgL2Rldi9u
dWxsCkBAIC0xLDYzICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTcgQXBwbGUgSW5j
LiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4g
c291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9u
LCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0g
KiBhcmUgbWV0OgotICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0
YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9u
cyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMg
cHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMg
UFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKLSAq
IEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLAotICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJ
VFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgotICogUFVSUE9TRSBBUkUgRElTQ0xBSU1F
RC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCi0gKiBC
RSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBF
WEVNUExBUlksIE9SCi0gKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgotICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJW
SUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCi0gKiBJTlRF
UlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwg
V0hFVEhFUiBJTgotICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xV
RElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKLSAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQg
T0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKLSAqIFRIRSBQ
T1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLSAqLwotCi0jcHJhZ21hIG9uY2UKLQotI2lmIEVO
QUJMRShTRVJWSUNFX1dPUktFUikKLQotI2luY2x1ZGUgIlNoYXJlZFN0cmluZ0hhc2hTdG9yZS5o
IgotI2luY2x1ZGUgPFdlYkNvcmUvU1dPcmlnaW5TdG9yZS5oPgotI2luY2x1ZGUgPHd0Zi9XZWFr
SGFzaFNldC5oPgotCi1uYW1lc3BhY2UgV2ViS2l0IHsKLQotY2xhc3MgV2ViU1dTZXJ2ZXJDb25u
ZWN0aW9uOwotCi1jbGFzcyBXZWJTV09yaWdpblN0b3JlIGZpbmFsIDogcHVibGljIFdlYkNvcmU6
OlNXT3JpZ2luU3RvcmUsIHByaXZhdGUgU2hhcmVkU3RyaW5nSGFzaFN0b3JlOjpDbGllbnQgewot
cHVibGljOgotICAgIFdlYlNXT3JpZ2luU3RvcmUoKTsKLQotICAgIHZvaWQgcmVnaXN0ZXJTV1Nl
cnZlckNvbm5lY3Rpb24oV2ViU1dTZXJ2ZXJDb25uZWN0aW9uJik7Ci0gICAgdm9pZCB1bnJlZ2lz
dGVyU1dTZXJ2ZXJDb25uZWN0aW9uKFdlYlNXU2VydmVyQ29ubmVjdGlvbiYpOwotICAgIHZvaWQg
aW1wb3J0Q29tcGxldGUoKSBmaW5hbDsKLQotcHJpdmF0ZToKLSAgICB2b2lkIHNlbmRTdG9yZUhh
bmRsZShXZWJTV1NlcnZlckNvbm5lY3Rpb24mKTsKLQotICAgIHZvaWQgYWRkVG9TdG9yZShjb25z
dCBXZWJDb3JlOjpTZWN1cml0eU9yaWdpbkRhdGEmKSBmaW5hbDsKLSAgICB2b2lkIHJlbW92ZUZy
b21TdG9yZShjb25zdCBXZWJDb3JlOjpTZWN1cml0eU9yaWdpbkRhdGEmKSBmaW5hbDsKLSAgICB2
b2lkIGNsZWFyU3RvcmUoKSBmaW5hbDsKLQotICAgIC8vIFNoYXJlZFN0cmluZ0hhc2hTdG9yZTo6
Q2xpZW50LgotICAgIHZvaWQgZGlkSW52YWxpZGF0ZVNoYXJlZE1lbW9yeSgpIGZpbmFsOwotCi0g
ICAgU2hhcmVkU3RyaW5nSGFzaFN0b3JlIG1fc3RvcmU7Ci0gICAgYm9vbCBtX2lzSW1wb3J0ZWQg
eyBmYWxzZSB9OwotICAgIFdlYWtIYXNoU2V0PFdlYlNXU2VydmVyQ29ubmVjdGlvbj4gbV93ZWJT
V1NlcnZlckNvbm5lY3Rpb25zOwotfTsKLQotfSAvLyBuYW1lc3BhY2UgV2ViS2l0Ci0KLSNlbmRp
ZiAvLyBFTkFCTEUoU0VSVklDRV9XT1JLRVIpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05l
dHdvcmtQcm9jZXNzL1NlcnZpY2VXb3JrZXIvV2ViU1dTZXJ2ZXJDb25uZWN0aW9uLmNwcCBiL1Nv
dXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvU2VydmljZVdvcmtlci9XZWJTV1NlcnZlckNvbm5l
Y3Rpb24uY3BwCmluZGV4IDQ3ZDQxZjNlNTQ4YmJmOTQ1ZDQ4NDU0OTM4NDU4YmM4MWQ0NzhkZjAu
LjczM2ViZjVkMWJlZmUwNzc2OTVlODM1OTg5MTA2ZDgzZTNiZWJiOTQgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvU2VydmljZVdvcmtlci9XZWJTV1NlcnZlckNvbm5l
Y3Rpb24uY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvU2VydmljZVdvcmtl
ci9XZWJTV1NlcnZlckNvbm5lY3Rpb24uY3BwCkBAIC04MiwxNCArODIsMTAgQEAgV2ViU1dTZXJ2
ZXJDb25uZWN0aW9uOjpXZWJTV1NlcnZlckNvbm5lY3Rpb24oTmV0d29ya1Byb2Nlc3MmIG5ldHdv
cmtQcm9jZXNzLCBTV1MKICAgICAsIG1fY29udGVudENvbm5lY3Rpb24oY29ubmVjdGlvbikKICAg
ICAsIG1fbmV0d29ya1Byb2Nlc3MobmV0d29ya1Byb2Nlc3MpCiB7Ci0gICAgaWYgKGF1dG8qIHNl
c3Npb24gPSB0aGlzLT5zZXNzaW9uKCkpCi0gICAgICAgIHNlc3Npb24tPnJlZ2lzdGVyU1dTZXJ2
ZXJDb25uZWN0aW9uKCp0aGlzKTsKIH0KIAogV2ViU1dTZXJ2ZXJDb25uZWN0aW9uOjp+V2ViU1dT
ZXJ2ZXJDb25uZWN0aW9uKCkKIHsKLSAgICBpZiAoYXV0byogc2Vzc2lvbiA9IHRoaXMtPnNlc3Np
b24oKSkKLSAgICAgICAgc2Vzc2lvbi0+dW5yZWdpc3RlclNXU2VydmVyQ29ubmVjdGlvbigqdGhp
cyk7CiAgICAgZm9yIChjb25zdCBhdXRvJiBrZXlWYWx1ZSA6IG1fY2xpZW50T3JpZ2lucykKICAg
ICAgICAgc2VydmVyKCkudW5yZWdpc3RlclNlcnZpY2VXb3JrZXJDbGllbnQoa2V5VmFsdWUudmFs
dWUsIGtleVZhbHVlLmtleSk7CiAgICAgZm9yIChhdXRvJiBjb21wbGV0aW9uSGFuZGxlciA6IG1f
dW5yZWdpc3RlckpvYnMudmFsdWVzKCkpCkBAIC0zODgsMTggKzM4NCwzMCBAQCB2b2lkIFdlYlNX
U2VydmVyQ29ubmVjdGlvbjo6cG9zdE1lc3NhZ2VUb1NlcnZpY2VXb3JrZXJDbGllbnQoU2NyaXB0
RXhlY3V0aW9uQ29udAogICAgIHNlbmQoTWVzc2FnZXM6OldlYlNXQ2xpZW50Q29ubmVjdGlvbjo6
UG9zdE1lc3NhZ2VUb1NlcnZpY2VXb3JrZXJDbGllbnQgeyBkZXN0aW5hdGlvbkNvbnRleHRJZGVu
dGlmaWVyLCBtZXNzYWdlLCBzb3VyY2VTZXJ2aWNlV29ya2VyLT5kYXRhKCksIHNvdXJjZU9yaWdp
biB9KTsKIH0KIAotdm9pZCBXZWJTV1NlcnZlckNvbm5lY3Rpb246Om1hdGNoUmVnaXN0cmF0aW9u
KGNvbnN0IFNlY3VyaXR5T3JpZ2luRGF0YSYgdG9wT3JpZ2luLCBjb25zdCBVUkwmIGNsaWVudFVS
TCwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChzdGQ6Om9wdGlvbmFsPFNlcnZpY2VXb3JrZXJSZWdp
c3RyYXRpb25EYXRhPiYmKT4mJiBjYWxsYmFjaykKK3ZvaWQgV2ViU1dTZXJ2ZXJDb25uZWN0aW9u
OjptYXRjaFJlZ2lzdHJhdGlvbihTZWN1cml0eU9yaWdpbkRhdGEmJiB0b3BPcmlnaW4sIFVSTCYm
IGNsaWVudFVSTCwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChzdGQ6Om9wdGlvbmFsPFNlcnZpY2VX
b3JrZXJSZWdpc3RyYXRpb25EYXRhPiYmKT4mJiBjYWxsYmFjaykKIHsKLSAgICBpZiAoYXV0byog
cmVnaXN0cmF0aW9uID0gZG9SZWdpc3RyYXRpb25NYXRjaGluZyh0b3BPcmlnaW4sIGNsaWVudFVS
TCkpIHsKLSAgICAgICAgY2FsbGJhY2socmVnaXN0cmF0aW9uLT5kYXRhKCkpOwotICAgICAgICBy
ZXR1cm47Ci0gICAgfQotICAgIGNhbGxiYWNrKHsgfSk7CisgICAgc2VydmVyKCkud2hlbkltcG9y
dElzQ29tcGxldGVkSWZOZWVkZWQoW3dlYWtUaGlzID0gV2Vha1B0ciB7ICp0aGlzIH0sIHRvcE9y
aWdpbiA9IFdURk1vdmUodG9wT3JpZ2luKSwgY2xpZW50VVJMID0gV1RGTW92ZShjbGllbnRVUkwp
LCBjYWxsYmFjayA9IFdURk1vdmUoY2FsbGJhY2spXSgpIG11dGFibGUgeworICAgICAgICBpZiAo
IXdlYWtUaGlzKSB7CisgICAgICAgICAgICBjYWxsYmFjayh7IH0pOworICAgICAgICAgICAgcmV0
dXJuOworICAgICAgICB9CisgICAgICAgIGlmIChhdXRvKiByZWdpc3RyYXRpb24gPSB3ZWFrVGhp
cy0+ZG9SZWdpc3RyYXRpb25NYXRjaGluZyh0b3BPcmlnaW4sIGNsaWVudFVSTCkpIHsKKyAgICAg
ICAgICAgIGNhbGxiYWNrKHJlZ2lzdHJhdGlvbi0+ZGF0YSgpKTsKKyAgICAgICAgICAgIHJldHVy
bjsKKyAgICAgICAgfQorICAgICAgICBjYWxsYmFjayh7IH0pOworICAgIH0pOwogfQogCi12b2lk
IFdlYlNXU2VydmVyQ29ubmVjdGlvbjo6Z2V0UmVnaXN0cmF0aW9ucyhjb25zdCBTZWN1cml0eU9y
aWdpbkRhdGEmIHRvcE9yaWdpbiwgY29uc3QgVVJMJiBjbGllbnRVUkwsIENvbXBsZXRpb25IYW5k
bGVyPHZvaWQoY29uc3QgVmVjdG9yPFNlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb25EYXRhPiYpPiYm
IGNhbGxiYWNrKQordm9pZCBXZWJTV1NlcnZlckNvbm5lY3Rpb246OmdldFJlZ2lzdHJhdGlvbnMo
U2VjdXJpdHlPcmlnaW5EYXRhJiYgdG9wT3JpZ2luLCBVUkwmJiBjbGllbnRVUkwsIENvbXBsZXRp
b25IYW5kbGVyPHZvaWQoY29uc3QgVmVjdG9yPFNlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb25EYXRh
PiYpPiYmIGNhbGxiYWNrKQogewotICAgIGNhbGxiYWNrKHNlcnZlcigpLmdldFJlZ2lzdHJhdGlv
bnModG9wT3JpZ2luLCBjbGllbnRVUkwpKTsKKyAgICBzZXJ2ZXIoKS53aGVuSW1wb3J0SXNDb21w
bGV0ZWRJZk5lZWRlZChbd2Vha1RoaXMgPSBXZWFrUHRyIHsgKnRoaXMgfSwgdG9wT3JpZ2luID0g
V1RGTW92ZSh0b3BPcmlnaW4pLCBjbGllbnRVUkwgPSBXVEZNb3ZlKGNsaWVudFVSTCksIGNhbGxi
YWNrID0gV1RGTW92ZShjYWxsYmFjayldKCkgbXV0YWJsZSB7CisgICAgICAgIGlmICghd2Vha1Ro
aXMpIHsKKyAgICAgICAgICAgIGNhbGxiYWNrKHsgfSk7CisgICAgICAgICAgICByZXR1cm47Cisg
ICAgICAgIH0KKyAgICAgICAgY2FsbGJhY2sod2Vha1RoaXMtPnNlcnZlcigpLmdldFJlZ2lzdHJh
dGlvbnModG9wT3JpZ2luLCBjbGllbnRVUkwpKTsKKyAgICB9KTsKIH0KIAogdm9pZCBXZWJTV1Nl
cnZlckNvbm5lY3Rpb246OnJlZ2lzdGVyU2VydmljZVdvcmtlckNsaWVudChXZWJDb3JlOjpDbGll
bnRPcmlnaW4mJiBjbGllbnRPcmlnaW4sIFNlcnZpY2VXb3JrZXJDbGllbnREYXRhJiYgZGF0YSwg
Y29uc3Qgc3RkOjpvcHRpb25hbDxTZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uSWRlbnRpZmllcj4m
IGNvbnRyb2xsaW5nU2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbklkZW50aWZpZXIsIFN0cmluZyYm
IHVzZXJBZ2VudCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvU2Vy
dmljZVdvcmtlci9XZWJTV1NlcnZlckNvbm5lY3Rpb24uaCBiL1NvdXJjZS9XZWJLaXQvTmV0d29y
a1Byb2Nlc3MvU2VydmljZVdvcmtlci9XZWJTV1NlcnZlckNvbm5lY3Rpb24uaAppbmRleCA5Zjg0
NjZhOTVjOTUwNDA4MWJlYzliNzJlZTBjOGQ3YjlkNmU5ZDFmLi43NzY3YWExMjJjZjZjMjZlNjBj
NWJmMTEwZjliNDk5ODIxZTFlZGFkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQ
cm9jZXNzL1NlcnZpY2VXb3JrZXIvV2ViU1dTZXJ2ZXJDb25uZWN0aW9uLmgKKysrIGIvU291cmNl
L1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9TZXJ2aWNlV29ya2VyL1dlYlNXU2VydmVyQ29ubmVjdGlv
bi5oCkBAIC0xMTIsOCArMTEyLDggQEAgcHJpdmF0ZToKIAogICAgIHZvaWQgc3RhcnRGZXRjaChT
ZXJ2aWNlV29ya2VyRmV0Y2hUYXNrJiwgV2ViQ29yZTo6U1dTZXJ2ZXJXb3JrZXImKTsKIAotICAg
IHZvaWQgbWF0Y2hSZWdpc3RyYXRpb24oY29uc3QgV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW5EYXRh
JiB0b3BPcmlnaW4sIGNvbnN0IFVSTCYgY2xpZW50VVJMLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lk
KHN0ZDo6b3B0aW9uYWw8V2ViQ29yZTo6U2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbkRhdGE+JiYp
PiYmKTsKLSAgICB2b2lkIGdldFJlZ2lzdHJhdGlvbnMoY29uc3QgV2ViQ29yZTo6U2VjdXJpdHlP
cmlnaW5EYXRhJiB0b3BPcmlnaW4sIGNvbnN0IFVSTCYgY2xpZW50VVJMLCBDb21wbGV0aW9uSGFu
ZGxlcjx2b2lkKGNvbnN0IFZlY3RvcjxXZWJDb3JlOjpTZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9u
RGF0YT4mKT4mJik7CisgICAgdm9pZCBtYXRjaFJlZ2lzdHJhdGlvbihXZWJDb3JlOjpTZWN1cml0
eU9yaWdpbkRhdGEmJiwgVVJMJiYsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoc3RkOjpvcHRpb25h
bDxXZWJDb3JlOjpTZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uRGF0YT4mJik+JiYpOworICAgIHZv
aWQgZ2V0UmVnaXN0cmF0aW9ucyhXZWJDb3JlOjpTZWN1cml0eU9yaWdpbkRhdGEmJiwgVVJMJiYs
IENvbXBsZXRpb25IYW5kbGVyPHZvaWQoY29uc3QgVmVjdG9yPFdlYkNvcmU6OlNlcnZpY2VXb3Jr
ZXJSZWdpc3RyYXRpb25EYXRhPiYpPiYmKTsKIAogICAgIHZvaWQgdGVybWluYXRlV29ya2VyRnJv
bUNsaWVudChXZWJDb3JlOjpTZXJ2aWNlV29ya2VySWRlbnRpZmllciwgQ29tcGxldGlvbkhhbmRs
ZXI8dm9pZCgpPiYmKTsKICAgICB2b2lkIHdoZW5TZXJ2aWNlV29ya2VySXNUZXJtaW5hdGVkRm9y
VGVzdGluZyhXZWJDb3JlOjpTZXJ2aWNlV29ya2VySWRlbnRpZmllciwgQ29tcGxldGlvbkhhbmRs
ZXI8dm9pZCgpPiYmKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU291cmNlcy50eHQgYi9T
b3VyY2UvV2ViS2l0L1NvdXJjZXMudHh0CmluZGV4IGVhMGMwNjYzM2E0NjcyNmQ2NmZiNzQxMjE5
NmYzNDEwYTgzOTI0OTMuLjY5OWVkYzg0ZjRmYjBjMzQwZjFhOTJhMGE3OWI3NTlhOWQxMTM0NDYg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU291cmNlcy50eHQKKysrIGIvU291cmNlL1dlYktp
dC9Tb3VyY2VzLnR4dApAQCAtMTM1LDcgKzEzNSw2IEBAIE5ldHdvcmtQcm9jZXNzL1NlcnZpY2VX
b3JrZXIvU2VydmljZVdvcmtlckRvd25sb2FkVGFzay5jcHAKIE5ldHdvcmtQcm9jZXNzL1NlcnZp
Y2VXb3JrZXIvU2VydmljZVdvcmtlckZldGNoVGFzay5jcHAKIE5ldHdvcmtQcm9jZXNzL1NlcnZp
Y2VXb3JrZXIvU2VydmljZVdvcmtlck5hdmlnYXRpb25QcmVsb2FkZXIuY3BwCiBOZXR3b3JrUHJv
Y2Vzcy9TZXJ2aWNlV29ya2VyL1NlcnZpY2VXb3JrZXJTb2Z0VXBkYXRlTG9hZGVyLmNwcAotTmV0
d29ya1Byb2Nlc3MvU2VydmljZVdvcmtlci9XZWJTV09yaWdpblN0b3JlLmNwcCBAbm8tdW5pZnkK
IE5ldHdvcmtQcm9jZXNzL1NlcnZpY2VXb3JrZXIvV2ViU1dTZXJ2ZXJDb25uZWN0aW9uLmNwcCBA
bm8tdW5pZnkKIE5ldHdvcmtQcm9jZXNzL1NlcnZpY2VXb3JrZXIvV2ViU1dTZXJ2ZXJUb0NvbnRl
eHRDb25uZWN0aW9uLmNwcCBAbm8tdW5pZnkKIApAQCAtNzk2LDcgKzc5NSw2IEBAIFdlYlByb2Nl
c3MvU3BlZWNoL1NwZWVjaFJlY29nbml0aW9uUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXIuY3Bw
CiBXZWJQcm9jZXNzL1N0b3JhZ2UvUmVtb3RlV29ya2VyRnJhbWVMb2FkZXJDbGllbnQuY3BwCiBX
ZWJQcm9jZXNzL1N0b3JhZ2UvV2ViU1dDbGllbnRDb25uZWN0aW9uLmNwcAogV2ViUHJvY2Vzcy9T
dG9yYWdlL1dlYlNXQ29udGV4dE1hbmFnZXJDb25uZWN0aW9uLmNwcAotV2ViUHJvY2Vzcy9TdG9y
YWdlL1dlYlNXT3JpZ2luVGFibGUuY3BwCiBXZWJQcm9jZXNzL1N0b3JhZ2UvV2ViU2VydmljZVdv
cmtlckZldGNoVGFza0NsaWVudC5jcHAKIFdlYlByb2Nlc3MvU3RvcmFnZS9XZWJTZXJ2aWNlV29y
a2VyUHJvdmlkZXIuY3BwCiBXZWJQcm9jZXNzL1N0b3JhZ2UvV2ViU2hhcmVkV29ya2VyQ29udGV4
dE1hbmFnZXJDb25uZWN0aW9uLmNwcApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJLaXQu
eGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1NvdXJjZS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJv
ai9wcm9qZWN0LnBieHByb2oKaW5kZXggMWIyYzRhYzNhOWEzMGMzOWIwNzQzYzVhNDk2YTNhZTM2
MWU5ZTY2OS4uMTZhNTYxM2RiMzJlNTA5ODU4YTExOTE5YzEzODVhYjEwNzU3YTlkNSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9XZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysg
Yi9Tb3VyY2UvV2ViS2l0L1dlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC0xNDM2
LDcgKzE0MzYsNiBAQAogCQk4M0EwRUQzNTFGNzQ3Q0NGMDAzMjk5RUIgLyogUHJlY29ubmVjdFRh
c2suaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDgzQTBF
RDMyMUY3NDdDQzYwMDMyOTlFQiAvKiBQcmVjb25uZWN0VGFzay5oICovOyB9OwogCQk4M0Q0NTRE
NzFCRTlEM0M0MDA2QzkzQkQgLyogTmV0d29ya0xvYWRDbGllbnQuaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDgzRDQ1NEQ2MUJFOUQzQzQwMDZDOTNCRCAv
KiBOZXR3b3JrTG9hZENsaWVudC5oICovOyB9OwogCQk4M0VFNTc1QzFEQjdENjExMDBDNzRDNTAg
LyogV2ViVmFsaWRhdGlvbk1lc3NhZ2VDbGllbnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDgzRUU1NzVBMURCN0Q2MDYwMEM3NEM1MCAvKiBXZWJWYWxp
ZGF0aW9uTWVzc2FnZUNsaWVudC5oICovOyB9OwotCQk4M0YxQTA3QTFGOTZFNzc5MDA0NUI5NEUg
LyogV2ViU1dPcmlnaW5UYWJsZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gODNGMUEwNzgxRjk2RTc3MTAwNDVCOTRFIC8qIFdlYlNXT3JpZ2luVGFibGUu
aCAqLzsgfTsKIAkJODNGOTY0NEUxRkEwRjc2RTAwQzQ3NzUwIC8qIFNoYXJlZFN0cmluZ0hhc2hU
YWJsZVJlYWRPbmx5LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSA4M0Y5NjQ0QzFGQTBGNzYzMDBDNDc3NTAgLyogU2hhcmVkU3RyaW5nSGFzaFRhYmxlUmVh
ZE9ubHkuaCAqLzsgfTsKIAkJODQ0Nzc4NTMxNzZGQ0MwODAwQ0RDN0JCIC8qIEluamVjdGVkQnVu
ZGxlSGl0VGVzdFJlc3VsdE1lZGlhVHlwZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gODQ0Nzc4NTExNzZGQ0FDMTAwQ0RDN0JCIC8qIEluamVjdGVkQnVu
ZGxlSGl0VGVzdFJlc3VsdE1lZGlhVHlwZS5oICovOyB9OwogCQk4NjQ0ODkwQjI3QjQ3MDIwMDA3
QTFDNjYgLyogX1dLU3lzdGVtUHJlZmVyZW5jZXMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDg2NDQ4OTBBMjdCNDcwMjAwMDdBMUM2NiAvKiBfV0tTeXN0
ZW1QcmVmZXJlbmNlcy5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7
IH07IH07CkBAIC0xNDcxLDggKzE0NzAsNiBAQAogCQk5MzU0MjQyQzI3MDNCRENCMDA1Q0E3MkMg
LyogV2ViRmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uLmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5MzU0MjQyQTI3MDNCRENCMDA1Q0E3MkMgLyogV2Vi
RmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uLmggKi87IH07CiAJCTkzNTZGMkRDMjE1MkI2QjUw
MEU2RDVERiAvKiBXZWJTV0NsaWVudENvbm5lY3Rpb24uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUxN0E1MzAyMUY0NzkzQjIwMERDREMwQSAvKiBXZWJT
V0NsaWVudENvbm5lY3Rpb24uaCAqLzsgfTsKIAkJOTM1NkYyREQyMTUyQjZGNjAwRTZENURGIC8q
IFdlYlNXU2VydmVyQ29ubmVjdGlvbi5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gOTNCQTA0RTAyMTUxQURGNDAwN0Y0NTVGIC8qIFdlYlNXU2VydmVyQ29u
bmVjdGlvbi5oICovOyB9OwotCQk5MzU2RjJERTIxNTJCNzEwMDBFNkQ1REYgLyogV2ViU1dPcmln
aW5TdG9yZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
OTNCQTA0REUyMTUxQURGNDAwN0Y0NTVGIC8qIFdlYlNXT3JpZ2luU3RvcmUuaCAqLzsgfTsKLQkJ
OTM1NkYyREYyMTUyQjcyMzAwRTZENURGIC8qIFdlYlNXT3JpZ2luU3RvcmUuY3BwIGluIFNvdXJj
ZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTNCQTA0REYyMTUxQURGNDAw
N0Y0NTVGIC8qIFdlYlNXT3JpZ2luU3RvcmUuY3BwICovOyB9OwogCQk5MzU2RjJFMDIxNTJCNzUy
MDBFNkQ1REYgLyogV2ViU1dTZXJ2ZXJUb0NvbnRleHRDb25uZWN0aW9uLmNwcCBpbiBTb3VyY2Vz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkzQkEwNEREMjE1MUFERjMwMDdG
NDU1RiAvKiBXZWJTV1NlcnZlclRvQ29udGV4dENvbm5lY3Rpb24uY3BwICovOyB9OwogCQk5MzU2
RjJFMTIxNTJCNzY2MDBFNkQ1REYgLyogV2ViU1dTZXJ2ZXJDb25uZWN0aW9uLmNwcCBpbiBTb3Vy
Y2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkzQkEwNEUxMjE1MUFERjQw
MDdGNDU1RiAvKiBXZWJTV1NlcnZlckNvbm5lY3Rpb24uY3BwICovOyB9OwogCQk5MzVCNTc5QTI2
RjUxOTMzMDA4QjQ4QUMgLyogRmlsZVN5c3RlbVN0b3JhZ2VIYW5kbGVSZWdpc3RyeS5oIGluIEhl
YWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTM1QjU3OTgyNkY1MTI3
MDAwOEI0OEFDIC8qIEZpbGVTeXN0ZW1TdG9yYWdlSGFuZGxlUmVnaXN0cnkuaCAqLzsgfTsKQEAg
LTU3MDMsOCArNTcwMCw2IEBACiAJCTgzRDQ1NEQ2MUJFOUQzQzQwMDZDOTNCRCAvKiBOZXR3b3Jr
TG9hZENsaWVudC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBOZXR3b3JrTG9h
ZENsaWVudC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk4M0VFNTc1OTFEQjdENjA2
MDBDNzRDNTAgLyogV2ViVmFsaWRhdGlvbk1lc3NhZ2VDbGllbnQuY3BwICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gV2ViVmFsaWRhdGlvbk1lc3NhZ2VDbGllbnQuY3BwOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk4M0VFNTc1QTFEQjdENjA2MDBDNzRDNTAgLyog
V2ViVmFsaWRhdGlvbk1lc3NhZ2VDbGllbnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBw
YXRoID0gV2ViVmFsaWRhdGlvbk1lc3NhZ2VDbGllbnQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKLQkJODNGMUEwNzcxRjk2RTc3MDAwNDVCOTRFIC8qIFdlYlNXT3JpZ2luVGFibGUuY3Bw
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gV2ViU1dPcmlnaW5UYWJsZS5j
cHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTgzRjFBMDc4MUY5NkU3NzEwMDQ1Qjk0
RSAvKiBXZWJTV09yaWdpblRhYmxlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9
IFdlYlNXT3JpZ2luVGFibGUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJODNGOTY0
NEIxRkEwRjc2MjAwQzQ3NzUwIC8qIFNoYXJlZFN0cmluZ0hhc2hUYWJsZVJlYWRPbmx5LmNwcCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFNoYXJlZFN0cmluZ0hhc2hUYWJs
ZVJlYWRPbmx5LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJODNGOTY0NEMxRkEw
Rjc2MzAwQzQ3NzUwIC8qIFNoYXJlZFN0cmluZ0hhc2hUYWJsZVJlYWRPbmx5LmggKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFNoYXJlZFN0cmluZ0hhc2hUYWJsZVJlYWRPbmx5Lmg7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTg0NDc3ODUxMTc2RkNBQzEwMENEQzdCQiAv
KiBJbmplY3RlZEJ1bmRsZUhpdFRlc3RSZXN1bHRNZWRpYVR5cGUuaCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuYy5oOyBwYXRoID0gSW5qZWN0ZWRCdW5kbGVIaXRUZXN0UmVzdWx0TWVkaWFUeXBlLmg7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC01ODIwLDggKzU4MTUsNiBAQAogCQk5M0JB
MDREQjIxNTFBREYzMDA3RjQ1NUYgLyogV2ViU1dTZXJ2ZXJUb0NvbnRleHRDb25uZWN0aW9uLmgg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdlYlNXU2VydmVyVG9Db250ZXh0Q29u
bmVjdGlvbi5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5M0JBMDREQzIxNTFBREYz
MDA3RjQ1NUYgLyogV2ViU1dTZXJ2ZXJUb0NvbnRleHRDb25uZWN0aW9uLm1lc3NhZ2VzLmluICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gdGV4dDsgcGF0aCA9IFdlYlNXU2VydmVyVG9Db250ZXh0Q29ubmVjdGlvbi5tZXNz
YWdlcy5pbjsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOTNCQTA0REQyMTUxQURGMzAw
N0Y0NTVGIC8qIFdlYlNXU2VydmVyVG9Db250ZXh0Q29ubmVjdGlvbi5jcHAgKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBXZWJTV1NlcnZlclRvQ29udGV4dENvbm5lY3Rpb24u
Y3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQk5M0JBMDRERTIxNTFBREY0MDA3RjQ1
NUYgLyogV2ViU1dPcmlnaW5TdG9yZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGgg
PSBXZWJTV09yaWdpblN0b3JlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTkzQkEw
NERGMjE1MUFERjQwMDdGNDU1RiAvKiBXZWJTV09yaWdpblN0b3JlLmNwcCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFdlYlNXT3JpZ2luU3RvcmUuY3BwOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQk5M0JBMDRFMDIxNTFBREY0MDA3RjQ1NUYgLyogV2ViU1dTZXJ2
ZXJDb25uZWN0aW9uLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdlYlNXU2Vy
dmVyQ29ubmVjdGlvbi5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5M0JBMDRFMTIx
NTFBREY0MDA3RjQ1NUYgLyogV2ViU1dTZXJ2ZXJDb25uZWN0aW9uLmNwcCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFdlYlNXU2VydmVyQ29ubmVjdGlvbi5jcHA7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTkzQkRFQjAwMTcxREQ3QUYwMEJGRUUxQiAvKiBXS1Bh
Z2VMb2FkVHlwZXNQcml2YXRlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdL
UGFnZUxvYWRUeXBlc1ByaXZhdGUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTEw
Mjk0LDggKzEwMjg3LDYgQEAKIAkJCQk0NjZCQzAzODFGQTI2NkM5MDAyRkE5QzEgLyogV2ViU1dD
b250ZXh0TWFuYWdlckNvbm5lY3Rpb24uY3BwICovLAogCQkJCTQ2NkJDMDM5MUZBMjY2QzkwMDJG
QTlDMSAvKiBXZWJTV0NvbnRleHRNYW5hZ2VyQ29ubmVjdGlvbi5oICovLAogCQkJCTQ2NkJDMDNB
MUZBMjY2QzkwMDJGQTlDMSAvKiBXZWJTV0NvbnRleHRNYW5hZ2VyQ29ubmVjdGlvbi5tZXNzYWdl
cy5pbiAqLywKLQkJCQk4M0YxQTA3NzFGOTZFNzcwMDA0NUI5NEUgLyogV2ViU1dPcmlnaW5UYWJs
ZS5jcHAgKi8sCi0JCQkJODNGMUEwNzgxRjk2RTc3MTAwNDVCOTRFIC8qIFdlYlNXT3JpZ2luVGFi
bGUuaCAqLywKIAkJCSk7CiAJCQlwYXRoID0gU3RvcmFnZTsKIAkJCXNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7CkBAIC0xMTM1NCw4ICsxMTM0NSw2IEBACiAJCQkJNDFFQjREM0EyNzRDRTA0NTAwQTky
NzJCIC8qIFNlcnZpY2VXb3JrZXJOYXZpZ2F0aW9uUHJlbG9hZGVyLmggKi8sCiAJCQkJNDFENUM2
RDkyMzhFQjIwRTAwQjlCM0NCIC8qIFNlcnZpY2VXb3JrZXJTb2Z0VXBkYXRlTG9hZGVyLmNwcCAq
LywKIAkJCQk0MUQ1QzZEODIzOEVCMjBEMDBCOUIzQ0IgLyogU2VydmljZVdvcmtlclNvZnRVcGRh
dGVMb2FkZXIuaCAqLywKLQkJCQk5M0JBMDRERjIxNTFBREY0MDA3RjQ1NUYgLyogV2ViU1dPcmln
aW5TdG9yZS5jcHAgKi8sCi0JCQkJOTNCQTA0REUyMTUxQURGNDAwN0Y0NTVGIC8qIFdlYlNXT3Jp
Z2luU3RvcmUuaCAqLywKIAkJCQk5M0JBMDRFMTIxNTFBREY0MDA3RjQ1NUYgLyogV2ViU1dTZXJ2
ZXJDb25uZWN0aW9uLmNwcCAqLywKIAkJCQk5M0JBMDRFMDIxNTFBREY0MDA3RjQ1NUYgLyogV2Vi
U1dTZXJ2ZXJDb25uZWN0aW9uLmggKi8sCiAJCQkJOTNCQTA0REEyMTUxQURGMzAwN0Y0NTVGIC8q
IFdlYlNXU2VydmVyQ29ubmVjdGlvbi5tZXNzYWdlcy5pbiAqLywKQEAgLTE1MTI4LDggKzE1MTE3
LDYgQEAKIAkJCQk0NjZCQzAzQzFGQTI2NkRBMDAyRkE5QzEgLyogV2ViU1dDb250ZXh0TWFuYWdl
ckNvbm5lY3Rpb24uaCBpbiBIZWFkZXJzICovLAogCQkJCTQ2MEY0ODkwMUY5OTZGNzEwMENGNEI4
NyAvKiBXZWJTV0NvbnRleHRNYW5hZ2VyQ29ubmVjdGlvbk1lc3NhZ2VzLmggaW4gSGVhZGVycyAq
LywKIAkJCQlDMTFBOUVDQzIxNDAzNUY4MDBDRkIyMEEgLyogV2ViU3dpdGNoaW5nR1BVQ2xpZW50
LmggaW4gSGVhZGVycyAqLywKLQkJCQk5MzU2RjJERTIxNTJCNzEwMDBFNkQ1REYgLyogV2ViU1dP
cmlnaW5TdG9yZS5oIGluIEhlYWRlcnMgKi8sCi0JCQkJODNGMUEwN0ExRjk2RTc3OTAwNDVCOTRF
IC8qIFdlYlNXT3JpZ2luVGFibGUuaCBpbiBIZWFkZXJzICovLAogCQkJCTkzNTZGMkREMjE1MkI2
RjYwMEU2RDVERiAvKiBXZWJTV1NlcnZlckNvbm5lY3Rpb24uaCBpbiBIZWFkZXJzICovLAogCQkJ
CTUxN0E1MkQ5MUY0M0E5REEwMERDREMwQSAvKiBXZWJTV1NlcnZlckNvbm5lY3Rpb25NZXNzYWdl
cy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNTE1MjYyQkMxRkI5NTE1RDAwNzBFNTc5IC8qIFdlYlNX
U2VydmVyVG9Db250ZXh0Q29ubmVjdGlvbk1lc3NhZ2VzLmggaW4gSGVhZGVycyAqLywKQEAgLTE3
Mzc1LDcgKzE3MzYyLDYgQEAKIAkJCQk5M0Q2Qjc4QTI1NENENDNFMDA1OEREM0EgLyogV2ViU3Bl
ZWNoUmVjb2duaXRpb25Db25uZWN0aW9uTWVzc2FnZVJlY2VpdmVyLmNwcCBpbiBTb3VyY2VzICov
LAogCQkJCTUxN0E1MzBGMUY0N0E4NjIwMERDREMwQSAvKiBXZWJTV0NsaWVudENvbm5lY3Rpb25N
ZXNzYWdlUmVjZWl2ZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJNDYwRjQ4OEYxRjk5NkY3MTAw
Q0Y0Qjg3IC8qIFdlYlNXQ29udGV4dE1hbmFnZXJDb25uZWN0aW9uTWVzc2FnZVJlY2VpdmVyLmNw
cCBpbiBTb3VyY2VzICovLAotCQkJCTkzNTZGMkRGMjE1MkI3MjMwMEU2RDVERiAvKiBXZWJTV09y
aWdpblN0b3JlLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTkzNTZGMkUxMjE1MkI3NjYwMEU2RDVE
RiAvKiBXZWJTV1NlcnZlckNvbm5lY3Rpb24uY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJNTE3QTUy
RDgxRjQzQTlEQTAwRENEQzBBIC8qIFdlYlNXU2VydmVyQ29ubmVjdGlvbk1lc3NhZ2VSZWNlaXZl
ci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk5MzU2RjJFMDIxNTJCNzUyMDBFNkQ1REYgLyogV2Vi
U1dTZXJ2ZXJUb0NvbnRleHRDb25uZWN0aW9uLmNwcCBpbiBTb3VyY2VzICovLApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1N0b3JhZ2UvV2ViU1dDbGllbnRDb25uZWN0aW9u
LmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9TdG9yYWdlL1dlYlNXQ2xpZW50Q29ubmVj
dGlvbi5jcHAKaW5kZXggYTUzZDA2OTRiZGM1ZDdiMjFiMDBhNDM5MTA3MTFlN2FjMGVkZDJjZS4u
N2UwZmQxYjAzNWY1NTdkODRjZGI5ZjRkYjc3ZjAyYTI5MzI4NWZmNiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL1N0b3JhZ2UvV2ViU1dDbGllbnRDb25uZWN0aW9uLmNwcAor
KysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvU3RvcmFnZS9XZWJTV0NsaWVudENvbm5lY3Rp
b24uY3BwCkBAIC0zOSw3ICszOSw2IEBACiAjaW5jbHVkZSAiV2ViUGFnZVByb3h5TWVzc2FnZXMu
aCIKICNpbmNsdWRlICJXZWJQcm9jZXNzLmgiCiAjaW5jbHVkZSAiV2ViUHJvY2Vzc1Byb3h5TWVz
c2FnZXMuaCIKLSNpbmNsdWRlICJXZWJTV09yaWdpblRhYmxlLmgiCiAjaW5jbHVkZSAiV2ViU1dT
ZXJ2ZXJDb25uZWN0aW9uTWVzc2FnZXMuaCIKICNpbmNsdWRlIDxXZWJDb3JlL0RvY3VtZW50Lmg+
CiAjaW5jbHVkZSA8V2ViQ29yZS9Eb2N1bWVudExvYWRlci5oPgpAQCAtNjIsNyArNjEsNiBAQCB1
c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKIAogV2ViU1dDbGllbnRDb25uZWN0aW9uOjpXZWJTV0Ns
aWVudENvbm5lY3Rpb24oKQogICAgIDogbV9pZGVudGlmaWVyKFByb2Nlc3M6OmlkZW50aWZpZXIo
KSkKLSAgICAsIG1fc3dPcmlnaW5UYWJsZShtYWtlVW5pcXVlUmVmPFdlYlNXT3JpZ2luVGFibGU+
KCkpCiB7CiB9CiAKQEAgLTc4LDkgKzc2LDcgQEAgSVBDOjpDb25uZWN0aW9uKiBXZWJTV0NsaWVu
dENvbm5lY3Rpb246Om1lc3NhZ2VTZW5kZXJDb25uZWN0aW9uKCkgY29uc3QKIAogdm9pZCBXZWJT
V0NsaWVudENvbm5lY3Rpb246OnNjaGVkdWxlSm9iSW5TZXJ2ZXIoY29uc3QgU2VydmljZVdvcmtl
ckpvYkRhdGEmIGpvYkRhdGEpCiB7Ci0gICAgcnVuT3JEZWxheVRhc2tGb3JJbXBvcnQoW3RoaXMs
IGpvYkRhdGFdIHsKLSAgICAgICAgc2VuZChNZXNzYWdlczo6V2ViU1dTZXJ2ZXJDb25uZWN0aW9u
OjpTY2hlZHVsZUpvYkluU2VydmVyIHsgam9iRGF0YSB9KTsKLSAgICB9KTsKKyAgICBzZW5kKE1l
c3NhZ2VzOjpXZWJTV1NlcnZlckNvbm5lY3Rpb246OlNjaGVkdWxlSm9iSW5TZXJ2ZXIgeyBqb2JE
YXRhIH0pOwogfQogCiB2b2lkIFdlYlNXQ2xpZW50Q29ubmVjdGlvbjo6ZmluaXNoRmV0Y2hpbmdT
Y3JpcHRJblNlcnZlcihjb25zdCBTZXJ2aWNlV29ya2VySm9iRGF0YUlkZW50aWZpZXImIGpvYkRh
dGFJZGVudGlmaWVyLCBTZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uS2V5JiYgcmVnaXN0cmF0aW9u
S2V5LCBXb3JrZXJGZXRjaFJlc3VsdCYmIHJlc3VsdCkKQEAgLTEzMCw0NyArMTI2LDEwIEBAIHZv
aWQgV2ViU1dDbGllbnRDb25uZWN0aW9uOjpkaWRSZXNvbHZlUmVnaXN0cmF0aW9uUHJvbWlzZShj
b25zdCBTZXJ2aWNlV29ya2VyUmVnCiAgICAgc2VuZChNZXNzYWdlczo6V2ViU1dTZXJ2ZXJDb25u
ZWN0aW9uOjpEaWRSZXNvbHZlUmVnaXN0cmF0aW9uUHJvbWlzZSB7IGtleSB9KTsKIH0KIAotYm9v
bCBXZWJTV0NsaWVudENvbm5lY3Rpb246Om1heUhhdmVTZXJ2aWNlV29ya2VyUmVnaXN0ZXJlZEZv
ck9yaWdpbihjb25zdCBTZWN1cml0eU9yaWdpbkRhdGEmIG9yaWdpbikgY29uc3QKLXsKLSAgICBp
ZiAoIW1fc3dPcmlnaW5UYWJsZS0+aXNJbXBvcnRlZCgpKQotICAgICAgICByZXR1cm4gdHJ1ZTsK
LQotICAgIHJldHVybiBtX3N3T3JpZ2luVGFibGUtPmNvbnRhaW5zKG9yaWdpbik7Ci19Ci0KLXZv
aWQgV2ViU1dDbGllbnRDb25uZWN0aW9uOjpzZXRTV09yaWdpblRhYmxlU2hhcmVkTWVtb3J5KGNv
bnN0IFNoYXJlZE1lbW9yeTo6SVBDSGFuZGxlJiBpcGNIYW5kbGUpCi17Ci0gICAgbV9zd09yaWdp
blRhYmxlLT5zZXRTaGFyZWRNZW1vcnkoaXBjSGFuZGxlLmhhbmRsZSk7Ci19Ci0KLXZvaWQgV2Vi
U1dDbGllbnRDb25uZWN0aW9uOjpzZXRTV09yaWdpblRhYmxlSXNJbXBvcnRlZCgpCi17Ci0gICAg
bV9zd09yaWdpblRhYmxlLT5zZXRJc0ltcG9ydGVkKCk7Ci0gICAgd2hpbGUgKCFtX3Rhc2tzUGVu
ZGluZ09yaWdpbkltcG9ydC5pc0VtcHR5KCkpCi0gICAgICAgIG1fdGFza3NQZW5kaW5nT3JpZ2lu
SW1wb3J0LnRha2VGaXJzdCgpKCk7Ci19Ci0KIHZvaWQgV2ViU1dDbGllbnRDb25uZWN0aW9uOjpt
YXRjaFJlZ2lzdHJhdGlvbihTZWN1cml0eU9yaWdpbkRhdGEmJiB0b3BPcmlnaW4sIGNvbnN0IFVS
TCYgY2xpZW50VVJMLCBSZWdpc3RyYXRpb25DYWxsYmFjayYmIGNhbGxiYWNrKQogewogICAgIEFT
U0VSVChpc01haW5SdW5Mb29wKCkpOwotCi0gICAgaWYgKCFtYXlIYXZlU2VydmljZVdvcmtlclJl
Z2lzdGVyZWRGb3JPcmlnaW4odG9wT3JpZ2luKSkgewotICAgICAgICBjYWxsYmFjayhzdGQ6Om51
bGxvcHQpOwotICAgICAgICByZXR1cm47Ci0gICAgfQotCi0gICAgcnVuT3JEZWxheVRhc2tGb3JJ
bXBvcnQoW3RoaXMsIGNhbGxiYWNrID0gV1RGTW92ZShjYWxsYmFjayksIHRvcE9yaWdpbiA9IFdU
Rk1vdmUodG9wT3JpZ2luKSwgY2xpZW50VVJMXSgpIG11dGFibGUgewotICAgICAgICBzZW5kV2l0
aEFzeW5jUmVwbHkoTWVzc2FnZXM6OldlYlNXU2VydmVyQ29ubmVjdGlvbjo6TWF0Y2hSZWdpc3Ry
YXRpb24geyB0b3BPcmlnaW4sIGNsaWVudFVSTCB9LCBXVEZNb3ZlKGNhbGxiYWNrKSk7Ci0gICAg
fSk7Ci19Ci0KLXZvaWQgV2ViU1dDbGllbnRDb25uZWN0aW9uOjpydW5PckRlbGF5VGFza0Zvcklt
cG9ydChGdW5jdGlvbjx2b2lkKCk+JiYgdGFzaykKLXsKLSAgICBpZiAobV9zd09yaWdpblRhYmxl
LT5pc0ltcG9ydGVkKCkpIHsKLSAgICAgICAgdGFzaygpOwotICAgICAgICByZXR1cm47Ci0gICAg
fQotICAgIG1fdGFza3NQZW5kaW5nT3JpZ2luSW1wb3J0LmFwcGVuZChXVEZNb3ZlKHRhc2spKTsK
KyAgICBzZW5kV2l0aEFzeW5jUmVwbHkoTWVzc2FnZXM6OldlYlNXU2VydmVyQ29ubmVjdGlvbjo6
TWF0Y2hSZWdpc3RyYXRpb24geyB0b3BPcmlnaW4sIGNsaWVudFVSTCB9LCBXVEZNb3ZlKGNhbGxi
YWNrKSk7CiB9CiAKIHZvaWQgV2ViU1dDbGllbnRDb25uZWN0aW9uOjp3aGVuUmVnaXN0cmF0aW9u
UmVhZHkoY29uc3QgU2VjdXJpdHlPcmlnaW5EYXRhJiB0b3BPcmlnaW4sIGNvbnN0IFVSTCYgY2xp
ZW50VVJMLCBXaGVuUmVnaXN0cmF0aW9uUmVhZHlDYWxsYmFjayYmIGNhbGxiYWNrKQpAQCAtMTk5
LDE1ICsxNTgsNyBAQCB2b2lkIFdlYlNXQ2xpZW50Q29ubmVjdGlvbjo6c2V0U2VydmljZVdvcmtl
ckNsaWVudElzQ29udHJvbGxlZChTY3JpcHRFeGVjdXRpb25Dbwogdm9pZCBXZWJTV0NsaWVudENv
bm5lY3Rpb246OmdldFJlZ2lzdHJhdGlvbnMoU2VjdXJpdHlPcmlnaW5EYXRhJiYgdG9wT3JpZ2lu
LCBjb25zdCBVUkwmIGNsaWVudFVSTCwgR2V0UmVnaXN0cmF0aW9uc0NhbGxiYWNrJiYgY2FsbGJh
Y2spCiB7CiAgICAgQVNTRVJUKGlzTWFpblJ1bkxvb3AoKSk7Ci0KLSAgICBpZiAoIW1heUhhdmVT
ZXJ2aWNlV29ya2VyUmVnaXN0ZXJlZEZvck9yaWdpbih0b3BPcmlnaW4pKSB7Ci0gICAgICAgIGNh
bGxiYWNrKHsgfSk7Ci0gICAgICAgIHJldHVybjsKLSAgICB9Ci0KLSAgICBydW5PckRlbGF5VGFz
a0ZvckltcG9ydChbdGhpcywgY2FsbGJhY2sgPSBXVEZNb3ZlKGNhbGxiYWNrKSwgdG9wT3JpZ2lu
ID0gV1RGTW92ZSh0b3BPcmlnaW4pLCBjbGllbnRVUkxdKCkgbXV0YWJsZSB7Ci0gICAgICAgIHNl
bmRXaXRoQXN5bmNSZXBseShNZXNzYWdlczo6V2ViU1dTZXJ2ZXJDb25uZWN0aW9uOjpHZXRSZWdp
c3RyYXRpb25zIHsgdG9wT3JpZ2luLCBjbGllbnRVUkwgfSwgV1RGTW92ZShjYWxsYmFjaykpOwot
ICAgIH0pOworICAgIHNlbmRXaXRoQXN5bmNSZXBseShNZXNzYWdlczo6V2ViU1dTZXJ2ZXJDb25u
ZWN0aW9uOjpHZXRSZWdpc3RyYXRpb25zIHsgdG9wT3JpZ2luLCBjbGllbnRVUkwgfSwgV1RGTW92
ZShjYWxsYmFjaykpOwogfQogCiB2b2lkIFdlYlNXQ2xpZW50Q29ubmVjdGlvbjo6Y29ubmVjdGlv
blRvU2VydmVyTG9zdCgpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvU3Rv
cmFnZS9XZWJTV0NsaWVudENvbm5lY3Rpb24uaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9T
dG9yYWdlL1dlYlNXQ2xpZW50Q29ubmVjdGlvbi5oCmluZGV4IGJiOWUwMGE5NmNjNmNmMzRhMTk0
ZTRmOTZkYjExZjg4ZmRiMTU3YTYuLmNiZDM4MzRhZjE5NjdjZDRiZDQ5MzdlYjFkMmM2NWIzYzg3
MTJmMGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9TdG9yYWdlL1dlYlNX
Q2xpZW50Q29ubmVjdGlvbi5oCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9TdG9yYWdl
L1dlYlNXQ2xpZW50Q29ubmVjdGlvbi5oCkBAIC00Miw3ICs0Miw2IEBAIGNsYXNzIFJlc291cmNl
TG9hZGVyOwogCiBuYW1lc3BhY2UgV2ViS2l0IHsKIAotY2xhc3MgV2ViU1dPcmlnaW5UYWJsZTsK
IGNsYXNzIFdlYlNlcnZpY2VXb3JrZXJQcm92aWRlcjsKIAogY2xhc3MgV2ViU1dDbGllbnRDb25u
ZWN0aW9uIGZpbmFsIDogcHVibGljIFdlYkNvcmU6OlNXQ2xpZW50Q29ubmVjdGlvbiwgcHJpdmF0
ZSBJUEM6Ok1lc3NhZ2VTZW5kZXIsIHB1YmxpYyBJUEM6Ok1lc3NhZ2VSZWNlaXZlciB7CkBAIC01
OCw4ICs1Nyw2IEBAIHB1YmxpYzoKICAgICB2b2lkIGRpc2Nvbm5lY3RlZEZyb21XZWJQcm9jZXNz
KCk7CiAgICAgdm9pZCBkaWRSZWNlaXZlTWVzc2FnZShJUEM6OkNvbm5lY3Rpb24mLCBJUEM6OkRl
Y29kZXImKSBmaW5hbDsKIAotICAgIGJvb2wgbWF5SGF2ZVNlcnZpY2VXb3JrZXJSZWdpc3RlcmVk
Rm9yT3JpZ2luKGNvbnN0IFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0YSYpIGNvbnN0IGZpbmFs
OwotCiAgICAgdm9pZCBjb25uZWN0aW9uVG9TZXJ2ZXJMb3N0KCk7CiAKICAgICBib29sIGlzVGhy
b3R0bGVhYmxlKCkgY29uc3QgeyByZXR1cm4gbV9pc1Rocm90dGxlYWJsZTsgfQpAQCAtMTEwLDE2
ICsxMDcsMTAgQEAgcHJpdmF0ZToKICAgICBJUEM6OkNvbm5lY3Rpb24qIG1lc3NhZ2VTZW5kZXJD
b25uZWN0aW9uKCkgY29uc3QgZmluYWw7CiAgICAgdWludDY0X3QgbWVzc2FnZVNlbmRlckRlc3Rp
bmF0aW9uSUQoKSBjb25zdCBmaW5hbCB7IHJldHVybiAwOyB9CiAKLSAgICB2b2lkIHNldFNXT3Jp
Z2luVGFibGVTaGFyZWRNZW1vcnkoY29uc3QgU2hhcmVkTWVtb3J5OjpJUENIYW5kbGUmKTsKLSAg
ICB2b2lkIHNldFNXT3JpZ2luVGFibGVJc0ltcG9ydGVkKCk7Ci0KICAgICB2b2lkIGNsZWFyKCk7
CiAKICAgICBXZWJDb3JlOjpTV1NlcnZlckNvbm5lY3Rpb25JZGVudGlmaWVyIG1faWRlbnRpZmll
cjsKIAotICAgIFVuaXF1ZVJlZjxXZWJTV09yaWdpblRhYmxlPiBtX3N3T3JpZ2luVGFibGU7Ci0K
LSAgICBEZXF1ZTxGdW5jdGlvbjx2b2lkKCk+PiBtX3Rhc2tzUGVuZGluZ09yaWdpbkltcG9ydDsK
ICAgICBib29sIG1faXNUaHJvdHRsZWFibGUgeyB0cnVlIH07CiB9OyAvLyBjbGFzcyBXZWJTV1Nl
cnZlckNvbm5lY3Rpb24KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1N0
b3JhZ2UvV2ViU1dDbGllbnRDb25uZWN0aW9uLm1lc3NhZ2VzLmluIGIvU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL1N0b3JhZ2UvV2ViU1dDbGllbnRDb25uZWN0aW9uLm1lc3NhZ2VzLmluCmluZGV4
IGI0Yzc2OTVkMmFjYTk1NGNiOGYxMTkzYzJiMWQxOWJjMmFlZmFhMmEuLjUwNWIwYWFiYWM3M2Ux
NDlmNWM3ZGQ4N2EzZTYzOTc5MzA0NzRmMzEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9TdG9yYWdlL1dlYlNXQ2xpZW50Q29ubmVjdGlvbi5tZXNzYWdlcy5pbgorKysgYi9T
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvU3RvcmFnZS9XZWJTV0NsaWVudENvbm5lY3Rpb24ubWVz
c2FnZXMuaW4KQEAgLTM1LDggKzM1LDYgQEAgbWVzc2FnZXMgLT4gV2ViU1dDbGllbnRDb25uZWN0
aW9uIHsKICAgICBTZXRSZWdpc3RyYXRpb25VcGRhdGVWaWFDYWNoZShXZWJDb3JlOjpTZXJ2aWNl
V29ya2VyUmVnaXN0cmF0aW9uSWRlbnRpZmllciBpZGVudGlmaWVyLCBlbnVtOnVpbnQ4X3QgV2Vi
Q29yZTo6U2VydmljZVdvcmtlclVwZGF0ZVZpYUNhY2hlIHVwZGF0ZVZpYUNhY2hlKTsKICAgICBO
b3RpZnlDbGllbnRzT2ZDb250cm9sbGVyQ2hhbmdlKEhhc2hTZXQ8V2ViQ29yZTo6U2NyaXB0RXhl
Y3V0aW9uQ29udGV4dElkZW50aWZpZXI+IGNvbnRleHRJZGVudGlmaWVycywgc3RydWN0IFdlYkNv
cmU6OlNlcnZpY2VXb3JrZXJEYXRhIG5ld0NvbnRyb2xsZXIpCiAKLSAgICBTZXRTV09yaWdpblRh
YmxlSXNJbXBvcnRlZCgpCi0gICAgU2V0U1dPcmlnaW5UYWJsZVNoYXJlZE1lbW9yeShXZWJLaXQ6
OlNoYXJlZE1lbW9yeTo6SVBDSGFuZGxlIGhhbmRsZSkKICAgICBQb3N0TWVzc2FnZVRvU2Vydmlj
ZVdvcmtlckNsaWVudChXZWJDb3JlOjpTY3JpcHRFeGVjdXRpb25Db250ZXh0SWRlbnRpZmllciBk
ZXN0aW5hdGlvbkNvbnRleHRJZGVudGlmaWVyLCBzdHJ1Y3QgV2ViQ29yZTo6TWVzc2FnZVdpdGhN
ZXNzYWdlUG9ydHMgbWVzc2FnZSwgc3RydWN0IFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJEYXRhIHNv
dXJjZSwgU3RyaW5nIHNvdXJjZU9yaWdpbikKIAogICAgIFNldFNlcnZpY2VXb3JrZXJDbGllbnRJ
c0NvbnRyb2xsZWQoV2ViQ29yZTo6U2NyaXB0RXhlY3V0aW9uQ29udGV4dElkZW50aWZpZXIgd29y
a2VySWRlbnRpZmllciwgc3RydWN0IFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb25E
YXRhIGRhdGEpIC0+IChib29sIGlzU3VjY2VzcykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9TdG9yYWdlL1dlYlNXT3JpZ2luVGFibGUuY3BwIGIvU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL1N0b3JhZ2UvV2ViU1dPcmlnaW5UYWJsZS5jcHAKZGVsZXRlZCBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDA2ODExODlhNGE1YzQxNjA2NzIwN2RjMjkwYmI5MzljZDFjZTY3ZTIuLjAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL1N0b3JhZ2UvV2ViU1dPcmlnaW5UYWJsZS5jcHAKKysrIC9kZXYvbnVsbApA
QCAtMSw1MiArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDE3IEFwcGxlIEluYy4gQWxs
IHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJj
ZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJl
IHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJl
IG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0
aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4g
YmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
IGluIHRoZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3Zp
ZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJ
REVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCi0gKiBBTkQg
QU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywKLSAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFO
RCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElO
IE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUwotICogQkUgTElB
QkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBM
QVJZLCBPUgotICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKLSAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7
IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUwotICogSU5URVJSVVBU
SU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRI
RVIgSU4KLSAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcg
TkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCi0gKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRI
RSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCi0gKiBUSEUgUE9TU0lC
SUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0gKi8KLQotI2luY2x1ZGUgImNvbmZpZy5oIgotCi0jaWYg
RU5BQkxFKFNFUlZJQ0VfV09SS0VSKQotI2luY2x1ZGUgIldlYlNXT3JpZ2luVGFibGUuaCIKLQot
I2luY2x1ZGUgPFdlYkNvcmUvU2VjdXJpdHlPcmlnaW4uaD4KLQotbmFtZXNwYWNlIFdlYktpdCB7
Ci11c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKLQotYm9vbCBXZWJTV09yaWdpblRhYmxlOjpjb250
YWlucyhjb25zdCBTZWN1cml0eU9yaWdpbkRhdGEmIG9yaWdpbikgY29uc3QKLXsKLSAgICByZXR1
cm4gbV9zZXJ2aWNlV29ya2VyT3JpZ2luVGFibGUuY29udGFpbnMoY29tcHV0ZVNoYXJlZFN0cmlu
Z0hhc2gob3JpZ2luLnRvU3RyaW5nKCkpKTsKLX0KLQotdm9pZCBXZWJTV09yaWdpblRhYmxlOjpz
ZXRTaGFyZWRNZW1vcnkoY29uc3QgU2hhcmVkTWVtb3J5OjpIYW5kbGUmIGhhbmRsZSkKLXsKLSAg
ICBhdXRvIHNoYXJlZE1lbW9yeSA9IFNoYXJlZE1lbW9yeTo6bWFwKGhhbmRsZSwgU2hhcmVkTWVt
b3J5OjpQcm90ZWN0aW9uOjpSZWFkT25seSk7Ci0gICAgaWYgKCFzaGFyZWRNZW1vcnkpCi0gICAg
ICAgIHJldHVybjsKLQotICAgIG1fc2VydmljZVdvcmtlck9yaWdpblRhYmxlLnNldFNoYXJlZE1l
bW9yeShzaGFyZWRNZW1vcnkucmVsZWFzZU5vbk51bGwoKSk7Ci19Ci0KLX0gLy8gbmFtZXNwYWNl
IFdlYktpdAotCi0jZW5kaWYgLy8gRU5BQkxFKFNFUlZJQ0VfV09SS0VSKQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1N0b3JhZ2UvV2ViU1dPcmlnaW5UYWJsZS5oIGIvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL1N0b3JhZ2UvV2ViU1dPcmlnaW5UYWJsZS5oCmRlbGV0ZWQg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCA5MzBlNDYxODE5ZTE4NmY1YTgwZDhmNjcxNmZiMTE4YzRk
YzBlYTg2Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1Nv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9TdG9yYWdlL1dlYlNXT3JpZ2luVGFibGUuaAorKysgL2Rl
di9udWxsCkBAIC0xLDU2ICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTcgQXBwbGUg
SW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2Ug
aW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0
aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25z
Ci0gKiBhcmUgbWV0OgotICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3Qg
cmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0
aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0g
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlh
bHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUg
SVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycK
LSAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLAotICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFC
SUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgotICogUFVSUE9TRSBBUkUgRElTQ0xB
SU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCi0g
KiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFM
LCBFWEVNUExBUlksIE9SCi0gKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgotICogU1VCU1RJVFVURSBHT09EUyBPUiBT
RVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCi0gKiBJ
TlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElU
WSwgV0hFVEhFUiBJTgotICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElO
Q0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKLSAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBP
VVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKLSAqIFRI
RSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLSAqLwotCi0jcHJhZ21hIG9uY2UKLQotI2lm
IEVOQUJMRShTRVJWSUNFX1dPUktFUikKLQotI2luY2x1ZGUgIlNoYXJlZE1lbW9yeS5oIgotI2lu
Y2x1ZGUgIlNoYXJlZFN0cmluZ0hhc2hUYWJsZVJlYWRPbmx5LmgiCi0KLW5hbWVzcGFjZSBXZWJD
b3JlIHsKLXN0cnVjdCBTZWN1cml0eU9yaWdpbkRhdGE7Ci19Ci0KLW5hbWVzcGFjZSBXZWJLaXQg
ewotCi1jbGFzcyBXZWJTV09yaWdpblRhYmxlIHsKLSAgICBXVEZfTUFLRV9GQVNUX0FMTE9DQVRF
RDsKLXB1YmxpYzoKLSAgICBXZWJTV09yaWdpblRhYmxlKCkgPSBkZWZhdWx0OwotCi0gICAgYm9v
bCBpc0ltcG9ydGVkKCkgY29uc3QgeyByZXR1cm4gbV9pc0ltcG9ydGVkOyB9Ci0gICAgdm9pZCBz
ZXRJc0ltcG9ydGVkKCkgeyBtX2lzSW1wb3J0ZWQgPSB0cnVlOyB9Ci0gICAgYm9vbCBjb250YWlu
cyhjb25zdCBXZWJDb3JlOjpTZWN1cml0eU9yaWdpbkRhdGEmKSBjb25zdDsKLSAgICB2b2lkIHNl
dFNoYXJlZE1lbW9yeShjb25zdCBTaGFyZWRNZW1vcnk6OkhhbmRsZSYpOwotCi1wcml2YXRlOgot
ICAgIFNoYXJlZFN0cmluZ0hhc2hUYWJsZVJlYWRPbmx5IG1fc2VydmljZVdvcmtlck9yaWdpblRh
YmxlOwotICAgIGJvb2wgbV9pc0ltcG9ydGVkIHsgZmFsc2UgfTsKLX07Ci0KLX0gLy8gbmFtZXNw
YWNlIFdlYktpdAotCi0jZW5kaWYgLy8gRU5BQkxFKFNFUlZJQ0VfV09SS0VSKQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>458782</attachid>
            <date>2022-05-04 02:30:46 -0700</date>
            <delta_ts>2022-05-04 06:01:11 -0700</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-240003-20220504113044.patch</filename>
            <type>text/plain</type>
            <size>61716</size>
            <attacher name="youenn fablet">youennf</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjkzNzY3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYzYxNmVmNTZhZmIwMDI5
MjI3YjQ3MGE0NThiYjZlN2ZjYjJkMmRkZC4uZTRiNjUzMDg3YjUzOGNkMzJmNzM3MjI2MmMwZGEw
NWNkNTMwNGNiZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI0IEBACisyMDIyLTA1LTA0ICBZb3Vl
bm4gRmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KKworICAgICAgICBTV09yaWdpblN0b3JlIGlz
IG5vIGxvbmdlciBuZWVkZWQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTI0MDAwMworCisgICAgICAgIFJldmlld2VkIGJ5IENocmlzIER1bWV6LgorCisg
ICAgICAgIENvdmVyZWQgYnkgZXhpc3RpbmcgdGVzdHMuCisKKyAgICAgICAgKiBIZWFkZXJzLmNt
YWtlOgorICAgICAgICAqIFNvdXJjZXMudHh0OgorICAgICAgICAqIFdlYkNvcmUueGNvZGVwcm9q
L3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBsb2FkZXIvRG9jdW1lbnRMb2FkZXIuY3BwOgor
ICAgICAgICAqIHdvcmtlcnMvc2VydmljZS9TV0NsaWVudENvbm5lY3Rpb24uaDoKKyAgICAgICAg
KiB3b3JrZXJzL3NlcnZpY2UvV29ya2VyU1dDbGllbnRDb25uZWN0aW9uLmNwcDoKKyAgICAgICAg
KiB3b3JrZXJzL3NlcnZpY2UvV29ya2VyU1dDbGllbnRDb25uZWN0aW9uLmg6CisgICAgICAgICog
d29ya2Vycy9zZXJ2aWNlL3NlcnZlci9TV09yaWdpblN0b3JlLmNwcDogUmVtb3ZlZC4KKyAgICAg
ICAgKiB3b3JrZXJzL3NlcnZpY2Uvc2VydmVyL1NXT3JpZ2luU3RvcmUuaDogUmVtb3ZlZC4KKyAg
ICAgICAgKiB3b3JrZXJzL3NlcnZpY2Uvc2VydmVyL1NXU2VydmVyLmNwcDoKKyAgICAgICAgKiB3
b3JrZXJzL3NlcnZpY2Uvc2VydmVyL1NXU2VydmVyLmg6CisKIDIwMjItMDUtMDQgIE1lZ2FuIEdh
cmRuZXIgIDxtZWdhbl9nYXJkbmVyQGFwcGxlLmNvbT4KIAogICAgICAgICBFbmFibGUgVGV4dENo
ZWNraW5nVHlwZTo6Q29ycmVjdGlvbiBvbiBNYWNDYXRhbHlzdC4KZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKaW5kZXggYjc4NmFh
ZWNiYzAzMmJiMjIzMmE1Nzc2ODdjMWI3MWQ0YWQ5MjI4Ni4uMzA2Njg4ZDQ3MDg0MzQ1YTA4YWQy
Mzc5NjY5YzNlMmI4MTA5YjAyNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cK
KysrIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyNiBAQAorMjAyMi0wNS0w
NCAgWW91ZW5uIEZhYmxldCAgPHlvdWVubkBhcHBsZS5jb20+CisKKyAgICAgICAgU1dPcmlnaW5T
dG9yZSBpcyBubyBsb25nZXIgbmVlZGVkCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD0yNDAwMDMKKworICAgICAgICBSZXZpZXdlZCBieSBDaHJpcyBEdW1l
ei4KKworICAgICAgICBObyBvYnNlcnZhYmxlIGNoYW5nZSwgd2UgcmVtb3ZlIHRoZSBTV09yaWdp
biBvcHRpbWl6YXRpb24gYXMgaXRzIG1haW4gcmVtYWluaW5nIHVzZQorICAgICAgICBpcyB0byBv
cHRpbWl6ZSB0aGUgY2FzZSBvZiBhIHBhZ2UgYmVpbmcgbG9hZGVkIGJ5IHNlcnZpY2Ugd29ya2Vy
IGluc3RlYWQgb2YgYXBwIGNhY2hlIHdoaWNoIGlzIGEgdGlueSBlZGdlIGNhc2UuCisKKyAgICAg
ICAgKiBOZXR3b3JrUHJvY2Vzcy9OZXR3b3JrU2Vzc2lvbi5jcHA6CisgICAgICAgICogTmV0d29y
a1Byb2Nlc3MvTmV0d29ya1Nlc3Npb24uaDoKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9TZXJ2
aWNlV29ya2VyL1dlYlNXT3JpZ2luU3RvcmUuY3BwOiBSZW1vdmVkLgorICAgICAgICAqIE5ldHdv
cmtQcm9jZXNzL1NlcnZpY2VXb3JrZXIvV2ViU1dPcmlnaW5TdG9yZS5oOiBSZW1vdmVkLgorICAg
ICAgICAqIE5ldHdvcmtQcm9jZXNzL1NlcnZpY2VXb3JrZXIvV2ViU1dTZXJ2ZXJDb25uZWN0aW9u
LmNwcDoKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9TZXJ2aWNlV29ya2VyL1dlYlNXU2VydmVy
Q29ubmVjdGlvbi5oOgorICAgICAgICAqIFdlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9q
OgorICAgICAgICAqIFdlYlByb2Nlc3MvU3RvcmFnZS9XZWJTV0NsaWVudENvbm5lY3Rpb24uY3Bw
OgorICAgICAgICAqIFdlYlByb2Nlc3MvU3RvcmFnZS9XZWJTV0NsaWVudENvbm5lY3Rpb24uaDoK
KyAgICAgICAgKiBXZWJQcm9jZXNzL1N0b3JhZ2UvV2ViU1dDbGllbnRDb25uZWN0aW9uLm1lc3Nh
Z2VzLmluOgorICAgICAgICAqIFdlYlByb2Nlc3MvU3RvcmFnZS9XZWJTV09yaWdpblRhYmxlLmNw
cDogUmVtb3ZlZC4KKyAgICAgICAgKiBXZWJQcm9jZXNzL1N0b3JhZ2UvV2ViU1dPcmlnaW5UYWJs
ZS5oOiBSZW1vdmVkLgorCiAyMDIyLTA1LTA0ICBNZWdhbiBHYXJkbmVyICA8bWVnYW5fZ2FyZG5l
ckBhcHBsZS5jb20+CiAKICAgICAgICAgRW5hYmxlIFRleHRDaGVja2luZ1R5cGU6OkNvcnJlY3Rp
b24gb24gTWFjQ2F0YWx5c3QuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9IZWFkZXJzLmNt
YWtlIGIvU291cmNlL1dlYkNvcmUvSGVhZGVycy5jbWFrZQppbmRleCBkMDYwYWQ5ZjMxYWQyZTYx
NDgzNzk1MjM3MGJhNTAwMTE5ZDBhYWM0Li44NDdkNGZkZDM0OTZiZGNhYTQxMWI1NGE2ZDMyMGVm
NTAzYWMyMWU0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9IZWFkZXJzLmNtYWtlCisrKyBi
L1NvdXJjZS9XZWJDb3JlL0hlYWRlcnMuY21ha2UKQEAgLTIwNDMsNyArMjA0Myw2IEBAIHNldChX
ZWJDb3JlX1BSSVZBVEVfRlJBTUVXT1JLX0hFQURFUlMKICAgICB3b3JrZXJzL3NlcnZpY2UvY29u
dGV4dC9TZXJ2aWNlV29ya2VyVGhyZWFkUHJveHkuaAogCiAgICAgd29ya2Vycy9zZXJ2aWNlL3Nl
cnZlci9SZWdpc3RyYXRpb25EYXRhYmFzZS5oCi0gICAgd29ya2Vycy9zZXJ2aWNlL3NlcnZlci9T
V09yaWdpblN0b3JlLmgKICAgICB3b3JrZXJzL3NlcnZpY2Uvc2VydmVyL1NXU2VydmVyLmgKICAg
ICB3b3JrZXJzL3NlcnZpY2Uvc2VydmVyL1NXU2VydmVyUmVnaXN0cmF0aW9uLmgKICAgICB3b3Jr
ZXJzL3NlcnZpY2Uvc2VydmVyL1NXU2VydmVyVG9Db250ZXh0Q29ubmVjdGlvbi5oCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2VzLnR4dCBiL1NvdXJjZS9XZWJDb3JlL1NvdXJjZXMu
dHh0CmluZGV4IDI5NjhjMGM4ZWNlNWE4NTExNTZhMDE3MzE1NjIxYjViMTczZDg1ZWUuLjUxMjcy
OTk0OTQ5YjIwNzYzN2Y2NGRlNTg2NjUzYzRjZWZlNDI5YzYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL1NvdXJjZXMudHh0CisrKyBiL1NvdXJjZS9XZWJDb3JlL1NvdXJjZXMudHh0CkBAIC0y
ODAxLDcgKzI4MDEsNiBAQCB3b3JrZXJzL3NlcnZpY2UvY29udGV4dC9TZXJ2aWNlV29ya2VyVGhy
ZWFkLmNwcAogd29ya2Vycy9zZXJ2aWNlL2NvbnRleHQvU2VydmljZVdvcmtlclRocmVhZFByb3h5
LmNwcAogd29ya2Vycy9zZXJ2aWNlL3NlcnZlci9SZWdpc3RyYXRpb25EYXRhYmFzZS5jcHAKIHdv
cmtlcnMvc2VydmljZS9zZXJ2ZXIvUmVnaXN0cmF0aW9uU3RvcmUuY3BwCi13b3JrZXJzL3NlcnZp
Y2Uvc2VydmVyL1NXT3JpZ2luU3RvcmUuY3BwCiB3b3JrZXJzL3NlcnZpY2Uvc2VydmVyL1NXU2Ny
aXB0U3RvcmFnZS5jcHAKIHdvcmtlcnMvc2VydmljZS9zZXJ2ZXIvU1dTZXJ2ZXIuY3BwCiB3b3Jr
ZXJzL3NlcnZpY2Uvc2VydmVyL1NXU2VydmVySm9iUXVldWUuY3BwCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvV2Vi
Q29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggOWJhMWI4MjAzNTJj
MTRkOTYwNjYzM2YzMDFmOWQ0NTM3MjhlMmUyNS4uZWY0MDZkZjA5MGZiODhjY2MwNzg1NDcyMzE2
YWMxOTMwMTY1ZWY3ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXBy
b2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9q
L3Byb2plY3QucGJ4cHJvagpAQCAtMTExNSw3ICsxMTE1LDYgQEAKIAkJNDE1MDgwMzcxRTNGMDBC
MDAwNTFENzVEIC8qIExpYldlYlJUQ0F1ZGlvTW9kdWxlLmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0MTUwODAzNTFFM0YwMEFBMDA1MUQ3NUQgLyogTGli
V2ViUlRDQXVkaW9Nb2R1bGUuaCAqLzsgfTsKIAkJNDE1MEY5RjExMkI2RTBFNzAwMDhDODYwIC8q
IFNsaWRlclRodW1iRWxlbWVudC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gNDE1MEY5RUYxMkI2RTBFNzAwMDhDODYwIC8qIFNsaWRlclRodW1iRWxlbWVu
dC5oICovOyB9OwogCQk0MTUxOUNCODFGRDFGMDJFMDA3RjYyM0MgLyogU2VydmljZVdvcmtlckNs
aWVudFF1ZXJ5T3B0aW9ucy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gNDEzRkM0Q0QxRkQxREQ4QzAwNTQxQzRCIC8qIFNlcnZpY2VXb3JrZXJDbGllbnRR
dWVyeU9wdGlvbnMuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9
OyB9OwotCQk0MTUxRTVCQjFGQkE0QzdBMDBFNDdFMkQgLyogU1dPcmlnaW5TdG9yZS5oIGluIEhl
YWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDE1MUU1QjcxRkJBNEM3
NTAwRTQ3RTJEIC8qIFNXT3JpZ2luU3RvcmUuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9
IChQcml2YXRlLCApOyB9OyB9OwogCQk0MTU3NDc0NzFFMzg2OUE0MDBFOTE0RDggLyogTGliV2Vi
UlRDTWFjcm9zLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSA0MTU3NDc0MzFFMzg2OTlFMDBFOTE0RDggLyogTGliV2ViUlRDTWFjcm9zLmggKi87IHNldHRp
bmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJNDE1NzQ3NDgxRTM4NjlB
NzAwRTkxNEQ4IC8qIExpYldlYlJUQ1Byb3ZpZGVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0MTU3NDc0NDFFMzg2OTlFMDBFOTE0RDggLyogTGliV2Vi
UlRDUHJvdmlkZXIuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9
OyB9OwogCQk0MTU3RUJGQTFFM0FCNjc5MDBBQzlGRTkgLyogTW9ja0xpYldlYlJUQ1BlZXJDb25u
ZWN0aW9uLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDQxNTdFQkY5MUUzQUIwNjgwMEFDOUZFOSAvKiBNb2NrTGliV2ViUlRDUGVlckNvbm5lY3Rpb24u
Y3BwICovOyB9OwpAQCAtODcwOCw4ICs4NzA3LDYgQEAKIAkJNDE1MDgwMzUxRTNGMDBBQTAwNTFE
NzVEIC8qIExpYldlYlJUQ0F1ZGlvTW9kdWxlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsg
bmFtZSA9IExpYldlYlJUQ0F1ZGlvTW9kdWxlLmg7IHBhdGggPSBsaWJ3ZWJydGMvTGliV2ViUlRD
QXVkaW9Nb2R1bGUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDE1MEY5RUYxMkI2
RTBFNzAwMDhDODYwIC8qIFNsaWRlclRodW1iRWxlbWVudC5oICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jLmg7IHBhdGggPSBTbGlkZXJUaHVtYkVsZW1lbnQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJNDE1MEY5RjAxMkI2RTBFNzAwMDhDODYwIC8qIFNsaWRlclRodW1iRWxlbWVudC5j
cHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBTbGlkZXJUaHVtYkVsZW1l
bnQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQk0MTUxRTVCNzFGQkE0Qzc1MDBF
NDdFMkQgLyogU1dPcmlnaW5TdG9yZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGgg
PSBTV09yaWdpblN0b3JlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTQxNTFFNUI5
MUZCQTRDNzYwMEU0N0UyRCAvKiBTV09yaWdpblN0b3JlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuY3BwLmNwcDsgcGF0aCA9IFNXT3JpZ2luU3RvcmUuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwogCQk0MTU3NDc0MzFFMzg2OTlFMDBFOTE0RDggLyogTGliV2ViUlRDTWFjcm9zLmgg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IExpYldlYlJUQ01hY3Jvcy5oOyBwYXRo
ID0gbGlid2VicnRjL0xpYldlYlJUQ01hY3Jvcy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwogCQk0MTU3NDc0NDFFMzg2OTlFMDBFOTE0RDggLyogTGliV2ViUlRDUHJvdmlkZXIuaCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gTGliV2ViUlRDUHJvdmlkZXIuaDsgcGF0aCA9
IGxpYndlYnJ0Yy9MaWJXZWJSVENQcm92aWRlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwogCQk0MTU3RUJGODFFM0FCMDY4MDBBQzlGRTkgLyogTW9ja0xpYldlYlJUQ1BlZXJDb25uZWN0
aW9uLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IE1vY2tMaWJXZWJSVENQZWVy
Q29ubmVjdGlvbi5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMjI0MjYsOCArMjI0
MjMsNiBAQAogCQkJCTUxQjkxNDBDMUZEMjc4MjUwMEVFMjg1OSAvKiBSZWdpc3RyYXRpb25EYXRh
YmFzZS5oICovLAogCQkJCTUxQjkxNDBFMUZEMjc4MjUwMEVFMjg1OSAvKiBSZWdpc3RyYXRpb25T
dG9yZS5jcHAgKi8sCiAJCQkJNTFCOTE0MEIxRkQyNzgyNTAwRUUyODU5IC8qIFJlZ2lzdHJhdGlv
blN0b3JlLmggKi8sCi0JCQkJNDE1MUU1QjkxRkJBNEM3NjAwRTQ3RTJEIC8qIFNXT3JpZ2luU3Rv
cmUuY3BwICovLAotCQkJCTQxNTFFNUI3MUZCQTRDNzUwMEU0N0UyRCAvKiBTV09yaWdpblN0b3Jl
LmggKi8sCiAJCQkJNDYyNzNDQUUyNjBFNTlERjAwNkZBQTkxIC8qIFNXU2NyaXB0U3RvcmFnZS5j
cHAgKi8sCiAJCQkJNDYyNzNDQUMyNjBFNTlERjAwNkZBQTkxIC8qIFNXU2NyaXB0U3RvcmFnZS5o
ICovLAogCQkJCTUxN0E1MkVGMUY0NzUzNTkwMERDREMwQSAvKiBTV1NlcnZlci5jcHAgKi8sCkBA
IC0zNzkxNyw3ICszNzkxMiw2IEBACiAJCQkJNDZFQ0I2MzgxRkQwQTNDODAwODhFNUFEIC8qIFNX
Q2xpZW50Q29ubmVjdGlvbi5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNDY2NThEQzkxRkEyNEI4NzAw
RjdERDU0IC8qIFNXQ29udGV4dE1hbmFnZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCUMxMUE5RUNF
MjE0MDNBNUMwMENGQjIwQSAvKiBTd2l0Y2hpbmdHUFVDbGllbnQuaCBpbiBIZWFkZXJzICovLAot
CQkJCTQxNTFFNUJCMUZCQTRDN0EwMEU0N0UyRCAvKiBTV09yaWdpblN0b3JlLmggaW4gSGVhZGVy
cyAqLywKIAkJCQk0NjI3M0NBRjI2MEU1OUVGMDA2RkFBOTEgLyogU1dTY3JpcHRTdG9yYWdlLmgg
aW4gSGVhZGVycyAqLywKIAkJCQk1MTdBNTJGMDFGNDc1MzVCMDBEQ0RDMEEgLyogU1dTZXJ2ZXIu
aCBpbiBIZWFkZXJzICovLAogCQkJCTgzMTFDMDAzMUZBQTJFOTUwMEUzQzhFNSAvKiBTV1NlcnZl
ckpvYlF1ZXVlLmggaW4gSGVhZGVycyAqLywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xv
YWRlci9Eb2N1bWVudExvYWRlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRG9jdW1lbnRM
b2FkZXIuY3BwCmluZGV4IDk1Y2VhMjYxZTllYjkyNWQxOTQ3YTlmOTViOWQ1Y2RiNmFmMDkyNGYu
LjQ5ZGMwYzBiZmQ3ZmQ2MTkyNmFmZWY1NjYwY2I2ZTNjNmMzMTg5YzcgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2xvYWRlci9Eb2N1bWVudExvYWRlci5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvbG9hZGVyL0RvY3VtZW50TG9hZGVyLmNwcApAQCAtNTc4LDEwICs1NzgsNiBAQCB2b2lkIERv
Y3VtZW50TG9hZGVyOjptYXRjaFJlZ2lzdHJhdGlvbihjb25zdCBVUkwmIHVybCwgU1dDbGllbnRD
b25uZWN0aW9uOjpSZWdpcwogICAgIH0KIAogICAgIGF1dG8gb3JpZ2luID0gKCFtX2ZyYW1lLT5p
c01haW5GcmFtZSgpICYmIG1fZnJhbWUtPmRvY3VtZW50KCkpID8gbV9mcmFtZS0+ZG9jdW1lbnQo
KS0+dG9wT3JpZ2luKCkuZGF0YSgpIDogU2VjdXJpdHlPcmlnaW5EYXRhOjpmcm9tVVJMKHVybCk7
Ci0gICAgaWYgKCFTZXJ2aWNlV29ya2VyUHJvdmlkZXI6OnNpbmdsZXRvbigpLnNlcnZpY2VXb3Jr
ZXJDb25uZWN0aW9uKCkubWF5SGF2ZVNlcnZpY2VXb3JrZXJSZWdpc3RlcmVkRm9yT3JpZ2luKG9y
aWdpbikpIHsKLSAgICAgICAgY2FsbGJhY2soc3RkOjpudWxsb3B0KTsKLSAgICAgICAgcmV0dXJu
OwotICAgIH0KIAogICAgIGF1dG8mIGNvbm5lY3Rpb24gPSBTZXJ2aWNlV29ya2VyUHJvdmlkZXI6
OnNpbmdsZXRvbigpLnNlcnZpY2VXb3JrZXJDb25uZWN0aW9uKCk7CiAgICAgY29ubmVjdGlvbi5t
YXRjaFJlZ2lzdHJhdGlvbihXVEZNb3ZlKG9yaWdpbiksIHVybCwgV1RGTW92ZShjYWxsYmFjaykp
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL1NXQ2xpZW50Q29u
bmVjdGlvbi5oIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL1NXQ2xpZW50Q29ubmVj
dGlvbi5oCmluZGV4IDIzZTA2YzYxZjJlN2Y1MjU4ZGIzNGY4N2QwNDA1YWI2ZTM1MjkzN2IuLjkx
ODkzYmU4NWNhNzU5OTRmZjRhZWEwMzNkYjhjZDBiOGY4NTVjNWEgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9TV0NsaWVudENvbm5lY3Rpb24uaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvU1dDbGllbnRDb25uZWN0aW9uLmgKQEAgLTgzLDcg
KzgzLDYgQEAgcHVibGljOgogICAgIHZpcnR1YWwgdm9pZCBwb3N0TWVzc2FnZVRvU2VydmljZVdv
cmtlcihTZXJ2aWNlV29ya2VySWRlbnRpZmllciBkZXN0aW5hdGlvbiwgTWVzc2FnZVdpdGhNZXNz
YWdlUG9ydHMmJiwgY29uc3QgU2VydmljZVdvcmtlck9yQ2xpZW50SWRlbnRpZmllciYgc291cmNl
KSA9IDA7CiAKICAgICB2aXJ0dWFsIFNXU2VydmVyQ29ubmVjdGlvbklkZW50aWZpZXIgc2VydmVy
Q29ubmVjdGlvbklkZW50aWZpZXIoKSBjb25zdCA9IDA7Ci0gICAgdmlydHVhbCBib29sIG1heUhh
dmVTZXJ2aWNlV29ya2VyUmVnaXN0ZXJlZEZvck9yaWdpbihjb25zdCBTZWN1cml0eU9yaWdpbkRh
dGEmKSBjb25zdCA9IDA7CiAKICAgICB2aXJ0dWFsIHZvaWQgcmVnaXN0ZXJTZXJ2aWNlV29ya2Vy
Q2xpZW50KGNvbnN0IENsaWVudE9yaWdpbiYsIFNlcnZpY2VXb3JrZXJDbGllbnREYXRhJiYsIGNv
bnN0IHN0ZDo6b3B0aW9uYWw8U2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbklkZW50aWZpZXI+Jiwg
U3RyaW5nJiYgdXNlckFnZW50KSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIHVucmVnaXN0ZXJTZXJ2
aWNlV29ya2VyQ2xpZW50KFNjcmlwdEV4ZWN1dGlvbkNvbnRleHRJZGVudGlmaWVyKSA9IDA7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvV29ya2VyU1dDbGllbnRD
b25uZWN0aW9uLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9Xb3JrZXJTV0Ns
aWVudENvbm5lY3Rpb24uY3BwCmluZGV4IGYxNDBmOTliNDA4NmJmNmZiY2Y3MmI2YzQ3ZTBkNDFk
MWZhMGQ4NTMuLjFhNTJkY2ZkMjRlZjI2N2JhZDhkYjZkYzQ3ODhhMjIxZjYyOTAwM2MgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9Xb3JrZXJTV0NsaWVudENvbm5l
Y3Rpb24uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9Xb3JrZXJTV0Ns
aWVudENvbm5lY3Rpb24uY3BwCkBAIC0xNzgsMTIgKzE3OCw2IEBAIFNXU2VydmVyQ29ubmVjdGlv
bklkZW50aWZpZXIgV29ya2VyU1dDbGllbnRDb25uZWN0aW9uOjpzZXJ2ZXJDb25uZWN0aW9uSWRl
bnRpZmllCiAgICAgcmV0dXJuIGlkZW50aWZpZXI7CiB9CiAKLWJvb2wgV29ya2VyU1dDbGllbnRD
b25uZWN0aW9uOjptYXlIYXZlU2VydmljZVdvcmtlclJlZ2lzdGVyZWRGb3JPcmlnaW4oY29uc3Qg
U2VjdXJpdHlPcmlnaW5EYXRhJikgY29uc3QKLXsKLSAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsK
LSAgICByZXR1cm4gdHJ1ZTsKLX0KLQogdm9pZCBXb3JrZXJTV0NsaWVudENvbm5lY3Rpb246OnJl
Z2lzdGVyU2VydmljZVdvcmtlckNsaWVudChjb25zdCBDbGllbnRPcmlnaW4mIGNsaWVudE9yaWdp
biwgU2VydmljZVdvcmtlckNsaWVudERhdGEmJiBkYXRhLCBjb25zdCBzdGQ6Om9wdGlvbmFsPFNl
cnZpY2VXb3JrZXJSZWdpc3RyYXRpb25JZGVudGlmaWVyPiYgaWRlbnRpZmllciwgU3RyaW5nJiYg
dXNlckFnZW50KQogewogICAgIGNhbGxPbk1haW5UaHJlYWQoW2NsaWVudE9yaWdpbiA9IGNsaWVu
dE9yaWdpbi5pc29sYXRlZENvcHkoKSwgZGF0YSA9IGNyb3NzVGhyZWFkQ29weShXVEZNb3ZlKGRh
dGEpKSwgaWRlbnRpZmllciwgdXNlckFnZW50ID0gY3Jvc3NUaHJlYWRDb3B5KFdURk1vdmUodXNl
ckFnZW50KSldKCkgbXV0YWJsZSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJz
L3NlcnZpY2UvV29ya2VyU1dDbGllbnRDb25uZWN0aW9uLmggYi9Tb3VyY2UvV2ViQ29yZS93b3Jr
ZXJzL3NlcnZpY2UvV29ya2VyU1dDbGllbnRDb25uZWN0aW9uLmgKaW5kZXggMjliZmIzM2VmNGIz
ZDQwNjU1MzMwMjFhYzZlMjU0NzY4MDdiMGFiOC4uZjMwN2I2ZmY2Y2Q4Y2VlOTkyZjk0OTY1YjUx
YWM4Yzk0MTAxZTIwZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNl
L1dvcmtlclNXQ2xpZW50Q29ubmVjdGlvbi5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMv
c2VydmljZS9Xb3JrZXJTV0NsaWVudENvbm5lY3Rpb24uaApAQCAtNTMsNyArNTMsNiBAQCBwcml2
YXRlOgogICAgIHZvaWQgZGlkUmVzb2x2ZVJlZ2lzdHJhdGlvblByb21pc2UoY29uc3QgU2Vydmlj
ZVdvcmtlclJlZ2lzdHJhdGlvbktleSYpIGZpbmFsOwogICAgIHZvaWQgcG9zdE1lc3NhZ2VUb1Nl
cnZpY2VXb3JrZXIoU2VydmljZVdvcmtlcklkZW50aWZpZXIgZGVzdGluYXRpb24sIE1lc3NhZ2VX
aXRoTWVzc2FnZVBvcnRzJiYsIGNvbnN0IFNlcnZpY2VXb3JrZXJPckNsaWVudElkZW50aWZpZXIm
IHNvdXJjZSkgZmluYWw7CiAgICAgU1dTZXJ2ZXJDb25uZWN0aW9uSWRlbnRpZmllciBzZXJ2ZXJD
b25uZWN0aW9uSWRlbnRpZmllcigpIGNvbnN0IGZpbmFsOwotICAgIGJvb2wgbWF5SGF2ZVNlcnZp
Y2VXb3JrZXJSZWdpc3RlcmVkRm9yT3JpZ2luKGNvbnN0IFNlY3VyaXR5T3JpZ2luRGF0YSYpIGNv
bnN0IGZpbmFsOwogICAgIHZvaWQgZmluaXNoRmV0Y2hpbmdTY3JpcHRJblNlcnZlcihjb25zdCBT
ZXJ2aWNlV29ya2VySm9iRGF0YUlkZW50aWZpZXImLCBTZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9u
S2V5JiYsIFdvcmtlckZldGNoUmVzdWx0JiYpIGZpbmFsOwogICAgIHZvaWQgc2NoZWR1bGVKb2JJ
blNlcnZlcihjb25zdCBTZXJ2aWNlV29ya2VySm9iRGF0YSYpIGZpbmFsOwogICAgIHZvaWQgc2No
ZWR1bGVKb2IoU2VydmljZVdvcmtlck9yQ2xpZW50SWRlbnRpZmllciwgY29uc3QgU2VydmljZVdv
cmtlckpvYkRhdGEmKSBmaW5hbDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMv
c2VydmljZS9zZXJ2ZXIvU1dPcmlnaW5TdG9yZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJz
L3NlcnZpY2Uvc2VydmVyL1NXT3JpZ2luU3RvcmUuY3BwCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCBmMDFmYjE2MWNlOGM4NDg1ZDU2MjYyZWI2YWM2NzE0MTRkYzAyYzQxLi4wMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJDb3JlL3dv
cmtlcnMvc2VydmljZS9zZXJ2ZXIvU1dPcmlnaW5TdG9yZS5jcHAKKysrIC9kZXYvbnVsbApAQCAt
MSw3MSArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDE3IEFwcGxlIEluYy4gQWxsIHJp
Z2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBh
bmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBl
cm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1l
dDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUg
YWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmlu
YXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGlu
IHRoZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVk
IHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVE
IEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCi0gKiBBTkQgQU5Z
IEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywKLSAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBG
SVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5P
IEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUwotICogQkUgTElBQkxF
IEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZ
LCBPUgotICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywgUFJPQ1VSRU1FTlQgT0YKLSAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExP
U1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUwotICogSU5URVJSVVBUSU9O
KSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIg
SU4KLSAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVH
TElHRU5DRSBPUiBPVEhFUldJU0UpCi0gKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBV
U0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCi0gKiBUSEUgUE9TU0lCSUxJ
VFkgT0YgU1VDSCBEQU1BR0UuCi0gKi8KLQotI2luY2x1ZGUgImNvbmZpZy5oIgotI2luY2x1ZGUg
IlNXT3JpZ2luU3RvcmUuaCIKLQotI2lmIEVOQUJMRShTRVJWSUNFX1dPUktFUikKLQotI2luY2x1
ZGUgIlNlY3VyaXR5T3JpZ2luLmgiCi0KLW5hbWVzcGFjZSBXZWJDb3JlIHsKLQotdm9pZCBTV09y
aWdpblN0b3JlOjphZGQoY29uc3QgU2VjdXJpdHlPcmlnaW5EYXRhJiBvcmlnaW4pCi17Ci0gICAg
KyttX29yaWdpbkNvdW50cy5lbnN1cmUob3JpZ2luLCBbJl0gewotICAgICAgICBhZGRUb1N0b3Jl
KG9yaWdpbik7Ci0gICAgICAgIHJldHVybiAwOwotICAgIH0pLml0ZXJhdG9yLT52YWx1ZTsKLX0K
LQotdm9pZCBTV09yaWdpblN0b3JlOjpyZW1vdmUoY29uc3QgU2VjdXJpdHlPcmlnaW5EYXRhJiBv
cmlnaW4pCi17Ci0gICAgYXV0byBpdGVyYXRvciA9IG1fb3JpZ2luQ291bnRzLmZpbmQob3JpZ2lu
KTsKLSAgICBBU1NFUlQoaXRlcmF0b3IgIT0gbV9vcmlnaW5Db3VudHMuZW5kKCkpOwotICAgIGlm
IChpdGVyYXRvciA9PSBtX29yaWdpbkNvdW50cy5lbmQoKSkKLSAgICAgICAgcmV0dXJuOwotCi0g
ICAgaWYgKC0taXRlcmF0b3ItPnZhbHVlKQotICAgICAgICByZXR1cm47Ci0KLSAgICBtX29yaWdp
bkNvdW50cy5yZW1vdmUoaXRlcmF0b3IpOwotICAgIHJlbW92ZUZyb21TdG9yZShvcmlnaW4pOwot
fQotCi12b2lkIFNXT3JpZ2luU3RvcmU6OmNsZWFyKGNvbnN0IFNlY3VyaXR5T3JpZ2luRGF0YSYg
b3JpZ2luKQotewotICAgIG1fb3JpZ2luQ291bnRzLnJlbW92ZShvcmlnaW4pOwotICAgIHJlbW92
ZUZyb21TdG9yZShvcmlnaW4pOwotfQotCi12b2lkIFNXT3JpZ2luU3RvcmU6OmNsZWFyQWxsKCkK
LXsKLSAgICBtX29yaWdpbkNvdW50cy5jbGVhcigpOwotICAgIGNsZWFyU3RvcmUoKTsKLX0KLQot
fSAvLyBuYW1lc3BhY2UgV2ViQ29yZQotCi0jZW5kaWYgLy8gRU5BQkxFKFNFUlZJQ0VfV09SS0VS
KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL3NlcnZlci9TV09y
aWdpblN0b3JlLmggYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2Uvc2VydmVyL1NXT3Jp
Z2luU3RvcmUuaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggY2IyOGIzOTQxOTkyOWZj
MmRhZDRlYjdiZDdkZWNlZTIwOWQ5NGNhMS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMAotLS0gYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2Uvc2VydmVyL1NX
T3JpZ2luU3RvcmUuaAorKysgL2Rldi9udWxsCkBAIC0xLDU3ICswLDAgQEAKLS8qCi0gKiBDb3B5
cmlnaHQgKEMpIDIwMTcgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJl
ZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Ig
d2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhl
IGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0OgotICogMS4gUmVkaXN0cmlidXRpb25z
IG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0
aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVudGF0aW9u
IGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgot
ICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENP
TlRSSUJVVE9SUyBgYEFTIElTJycKLSAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJB
TlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAotICogVEhFIElNUExJRUQgV0FS
UkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgot
ICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBP
UiBJVFMgQ09OVFJJQlVUT1JTCi0gKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNU
LCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCi0gKiBDT05TRVFVRU5USUFMIERB
TUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgotICog
U1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJ
VFM7IE9SIEJVU0lORVNTCi0gKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBB
TlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgotICogQ09OVFJBQ1QsIFNUUklDVCBM
SUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKLSAq
IEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVO
IElGIEFEVklTRUQgT0YKLSAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLSAqLwot
Ci0jcHJhZ21hIG9uY2UKLQotI2lmIEVOQUJMRShTRVJWSUNFX1dPUktFUikKLQotI2luY2x1ZGUg
IlNlY3VyaXR5T3JpZ2luRGF0YS5oIgotI2luY2x1ZGUgPHd0Zi9IYXNoTWFwLmg+Ci0KLW5hbWVz
cGFjZSBXZWJDb3JlIHsKLQotY2xhc3MgU1dPcmlnaW5TdG9yZSB7Ci0gICAgV1RGX01BS0VfRkFT
VF9BTExPQ0FURUQ7Ci1wdWJsaWM6Ci0gICAgdmlydHVhbCB+U1dPcmlnaW5TdG9yZSgpID0gZGVm
YXVsdDsKLQotICAgIHZvaWQgYWRkKGNvbnN0IFNlY3VyaXR5T3JpZ2luRGF0YSYpOwotICAgIHZv
aWQgcmVtb3ZlKGNvbnN0IFNlY3VyaXR5T3JpZ2luRGF0YSYpOwotICAgIHZvaWQgY2xlYXIoY29u
c3QgU2VjdXJpdHlPcmlnaW5EYXRhJik7Ci0gICAgdm9pZCBjbGVhckFsbCgpOwotCi0gICAgdmly
dHVhbCB2b2lkIGltcG9ydENvbXBsZXRlKCkgPSAwOwotCi1wcml2YXRlOgotICAgIHZpcnR1YWwg
dm9pZCBhZGRUb1N0b3JlKGNvbnN0IFNlY3VyaXR5T3JpZ2luRGF0YSYpID0gMDsKLSAgICB2aXJ0
dWFsIHZvaWQgcmVtb3ZlRnJvbVN0b3JlKGNvbnN0IFNlY3VyaXR5T3JpZ2luRGF0YSYpID0gMDsK
LSAgICB2aXJ0dWFsIHZvaWQgY2xlYXJTdG9yZSgpID0gMDsKLQotICAgIEhhc2hNYXA8U2VjdXJp
dHlPcmlnaW5EYXRhLCB1aW50NjRfdD4gbV9vcmlnaW5Db3VudHM7Ci19OwotCi19IC8vIG5hbWVz
cGFjZSBXZWJDb3JlCi0KLSNlbmRpZiAvLyBFTkFCTEUoU0VSVklDRV9XT1JLRVIpCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2Uvc2VydmVyL1NXU2VydmVyLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9zZXJ2ZXIvU1dTZXJ2ZXIuY3BwCmluZGV4
IGE2OGEwNDU0NDg1MjViZDkwOTRhMDAwNWE1MjY2Yjg2N2VhMGI3MTUuLmQyMmQzYmRjMDEzMjU2
ODNhYzY2Yjg4Y2ViZjUxYzYyMzA0Y2U0MzkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3dv
cmtlcnMvc2VydmljZS9zZXJ2ZXIvU1dTZXJ2ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3dv
cmtlcnMvc2VydmljZS9zZXJ2ZXIvU1dTZXJ2ZXIuY3BwCkBAIC0zMyw3ICszMyw2IEBACiAjaW5j
bHVkZSAiTG9nZ2luZy5oIgogI2luY2x1ZGUgIk5vdGlmaWNhdGlvbkRhdGEuaCIKICNpbmNsdWRl
ICJSZWdpc3RyYXRpb25TdG9yZS5oIgotI2luY2x1ZGUgIlNXT3JpZ2luU3RvcmUuaCIKICNpbmNs
dWRlICJTV1NlcnZlckpvYlF1ZXVlLmgiCiAjaW5jbHVkZSAiU1dTZXJ2ZXJSZWdpc3RyYXRpb24u
aCIKICNpbmNsdWRlICJTV1NlcnZlclRvQ29udGV4dENvbm5lY3Rpb24uaCIKQEAgLTE0OSw3ICsx
NDgsNiBAQCB2b2lkIFNXU2VydmVyOjpyZWdpc3RyYXRpb25TdG9yZUltcG9ydENvbXBsZXRlKCkK
IHsKICAgICBBU1NFUlQoIW1faW1wb3J0Q29tcGxldGVkKTsKICAgICBtX2ltcG9ydENvbXBsZXRl
ZCA9IHRydWU7Ci0gICAgbV9vcmlnaW5TdG9yZS0+aW1wb3J0Q29tcGxldGUoKTsKIAogICAgIGF1
dG8gY2xlYXJDYWxsYmFja3MgPSBXVEZNb3ZlKG1fY2xlYXJDb21wbGV0aW9uQ2FsbGJhY2tzKTsK
ICAgICBmb3IgKGF1dG8mIGNhbGxiYWNrIDogY2xlYXJDYWxsYmFja3MpCkBAIC0yMjQsNyArMjIy
LDYgQEAgdm9pZCBTV1NlcnZlcjo6YWRkUmVnaXN0cmF0aW9uKHN0ZDo6dW5pcXVlX3B0cjxTV1Nl
cnZlclJlZ2lzdHJhdGlvbj4mJiByZWdpc3RyYXQKICAgICBpZiAocmVnaXN0cmF0aW9uLT5zZXJ2
aWNlV29ya2VyUGFnZUlkZW50aWZpZXIoKSkKICAgICAgICAgbV9zZXJ2aWNlV29ya2VyUGFnZUlk
ZW50aWZpZXJUb1JlZ2lzdHJhdGlvbk1hcC5hZGQoKnJlZ2lzdHJhdGlvbi0+c2VydmljZVdvcmtl
clBhZ2VJZGVudGlmaWVyKCksICpyZWdpc3RyYXRpb24pOwogCi0gICAgbV9vcmlnaW5TdG9yZS0+
YWRkKHJlZ2lzdHJhdGlvbi0+a2V5KCkudG9wT3JpZ2luKCkpOwogICAgIGF1dG8gcmVnaXN0cmF0
aW9uSUQgPSByZWdpc3RyYXRpb24tPmlkZW50aWZpZXIoKTsKICAgICBBU1NFUlQoIW1fc2NvcGVU
b1JlZ2lzdHJhdGlvbk1hcC5jb250YWlucyhyZWdpc3RyYXRpb24tPmtleSgpKSk7CiAgICAgbV9z
Y29wZVRvUmVnaXN0cmF0aW9uTWFwLnNldChyZWdpc3RyYXRpb24tPmtleSgpLCAqcmVnaXN0cmF0
aW9uKTsKQEAgLTI0Nyw3ICsyNDQsNiBAQCB2b2lkIFNXU2VydmVyOjpyZW1vdmVSZWdpc3RyYXRp
b24oU2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbklkZW50aWZpZXIgcmVnaXN0cmF0aQogICAgICAg
ICAgICAgbV91bmlxdWVSZWdpc3RyYXRpb25Db3VudC0tOwogICAgIH0KIAotICAgIG1fb3JpZ2lu
U3RvcmUtPnJlbW92ZShyZWdpc3RyYXRpb24tPmtleSgpLnRvcE9yaWdpbigpKTsKICAgICBpZiAo
bV9yZWdpc3RyYXRpb25TdG9yZSkKICAgICAgICAgbV9yZWdpc3RyYXRpb25TdG9yZS0+cmVtb3Zl
UmVnaXN0cmF0aW9uKHJlZ2lzdHJhdGlvbi0+a2V5KCkpOwogfQpAQCAtMjg2LDcgKzI4Miw2IEBA
IHZvaWQgU1dTZXJ2ZXI6OmNsZWFyQWxsKENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJiBjb21w
bGV0aW9uSGFuZGxlcikKICAgICB3aGlsZSAoIW1fcmVnaXN0cmF0aW9ucy5pc0VtcHR5KCkpCiAg
ICAgICAgIG1fcmVnaXN0cmF0aW9ucy5iZWdpbigpLT52YWx1ZS0+Y2xlYXIoKTsKICAgICBtX3Bl
bmRpbmdDb250ZXh0RGF0YXMuY2xlYXIoKTsKLSAgICBtX29yaWdpblN0b3JlLT5jbGVhckFsbCgp
OwogICAgIGlmICghbV9yZWdpc3RyYXRpb25TdG9yZSkKICAgICAgICAgcmV0dXJuIGNvbXBsZXRp
b25IYW5kbGVyKCk7CiAKQEAgLTMzOSw3ICszMzQsNyBAQCB2b2lkIFNXU2VydmVyOjpjbGVhcihj
b25zdCBTZWN1cml0eU9yaWdpbkRhdGEmIHNlY3VyaXR5T3JpZ2luLCBDb21wbGV0aW9uSGFuZGxl
cgogICAgICAgICByZXR1cm47CiAgICAgfQogCi0gICAgLy8gQ2FsbGluZyBTV1NlcnZlclJlZ2lz
dHJhdGlvbjo6Y2xlYXIoKSB0YWtlcyBjYXJlIG9mIHVwZGF0aW5nIG1fcmVnaXN0cmF0aW9ucywg
bV9vcmlnaW5TdG9yZSBhbmQgbV9yZWdpc3RyYXRpb25TdG9yZS4KKyAgICAvLyBDYWxsaW5nIFNX
U2VydmVyUmVnaXN0cmF0aW9uOjpjbGVhcigpIHRha2VzIGNhcmUgb2YgdXBkYXRpbmcgbV9yZWdp
c3RyYXRpb25zIGFuZCBtX3JlZ2lzdHJhdGlvblN0b3JlLgogICAgIGZvciAoYXV0byogcmVnaXN0
cmF0aW9uIDogcmVnaXN0cmF0aW9uc1RvUmVtb3ZlKQogICAgICAgICByZWdpc3RyYXRpb24tPmNs
ZWFyKCk7CiAKQEAgLTM2OSw5ICszNjQsOCBAQCB2b2lkIFNXU2VydmVyOjpDb25uZWN0aW9uOjpy
ZW1vdmVTZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uSW5TZXJ2ZXIoU2VydmljZVdvcmtlcgogICAg
IG1fc2VydmVyLnJlbW92ZUNsaWVudFNlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb24oKnRoaXMsIGlk
ZW50aWZpZXIpOwogfQogCi1TV1NlcnZlcjo6U1dTZXJ2ZXIoVW5pcXVlUmVmPFNXT3JpZ2luU3Rv
cmU+JiYgb3JpZ2luU3RvcmUsIGJvb2wgcHJvY2Vzc1Rlcm1pbmF0aW9uRGVsYXlFbmFibGVkLCBT
dHJpbmcmJiByZWdpc3RyYXRpb25EYXRhYmFzZURpcmVjdG9yeSwgUEFMOjpTZXNzaW9uSUQgc2Vz
c2lvbklELCBib29sIHNob3VsZFJ1blNlcnZpY2VXb3JrZXJzT25NYWluVGhyZWFkRm9yVGVzdGlu
ZywgYm9vbCBoYXNTZXJ2aWNlV29ya2VyRW50aXRsZW1lbnQsIHN0ZDo6b3B0aW9uYWw8dW5zaWdu
ZWQ+IG92ZXJyaWRlU2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbkNvdW50VGVzdGluZ1ZhbHVlLCBT
b2Z0VXBkYXRlQ2FsbGJhY2smJiBzb2Z0VXBkYXRlQ2FsbGJhY2ssIENyZWF0ZUNvbnRleHRDb25u
ZWN0aW9uQ2FsbGJhY2smJiBjYWxsYmFjaywgQXBwQm91bmREb21haW5zQ2FsbGJhY2smJiBhcHBC
b3VuZERvbWFpbnNDYWxsYmFjaykKLSAgICA6IG1fb3JpZ2luU3RvcmUoV1RGTW92ZShvcmlnaW5T
dG9yZSkpCi0gICAgLCBtX3Nlc3Npb25JRChzZXNzaW9uSUQpCitTV1NlcnZlcjo6U1dTZXJ2ZXIo
Ym9vbCBwcm9jZXNzVGVybWluYXRpb25EZWxheUVuYWJsZWQsIFN0cmluZyYmIHJlZ2lzdHJhdGlv
bkRhdGFiYXNlRGlyZWN0b3J5LCBQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIGJvb2wgc2hvdWxk
UnVuU2VydmljZVdvcmtlcnNPbk1haW5UaHJlYWRGb3JUZXN0aW5nLCBib29sIGhhc1NlcnZpY2VX
b3JrZXJFbnRpdGxlbWVudCwgc3RkOjpvcHRpb25hbDx1bnNpZ25lZD4gb3ZlcnJpZGVTZXJ2aWNl
V29ya2VyUmVnaXN0cmF0aW9uQ291bnRUZXN0aW5nVmFsdWUsIFNvZnRVcGRhdGVDYWxsYmFjayYm
IHNvZnRVcGRhdGVDYWxsYmFjaywgQ3JlYXRlQ29udGV4dENvbm5lY3Rpb25DYWxsYmFjayYmIGNh
bGxiYWNrLCBBcHBCb3VuZERvbWFpbnNDYWxsYmFjayYmIGFwcEJvdW5kRG9tYWluc0NhbGxiYWNr
KQorICAgIDogbV9zZXNzaW9uSUQoc2Vzc2lvbklEKQogICAgICwgbV9pc1Byb2Nlc3NUZXJtaW5h
dGlvbkRlbGF5RW5hYmxlZChwcm9jZXNzVGVybWluYXRpb25EZWxheUVuYWJsZWQpCiAgICAgLCBt
X2NyZWF0ZUNvbnRleHRDb25uZWN0aW9uQ2FsbGJhY2soV1RGTW92ZShjYWxsYmFjaykpCiAgICAg
LCBtX3NvZnRVcGRhdGVDYWxsYmFjayhXVEZNb3ZlKHNvZnRVcGRhdGVDYWxsYmFjaykpCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2Uvc2VydmVyL1NXU2VydmVyLmgg
Yi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2Uvc2VydmVyL1NXU2VydmVyLmgKaW5kZXgg
OTY1MjM1OWVjN2M1Y2U5NzYxY2IzN2Q0N2E4OTk3OGM2ZmUwODBiZS4uZTYxYzFjYzcyMjAwNDNm
YTY0MjdiNmNlNjNjNDhmNjA1MmVmZWVjMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvd29y
a2Vycy9zZXJ2aWNlL3NlcnZlci9TV1NlcnZlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3dvcmtl
cnMvc2VydmljZS9zZXJ2ZXIvU1dTZXJ2ZXIuaApAQCAtNTUsNyArNTUsNiBAQAogbmFtZXNwYWNl
IFdlYkNvcmUgewogCiBjbGFzcyBSZWdpc3RyYXRpb25TdG9yZTsKLWNsYXNzIFNXT3JpZ2luU3Rv
cmU7CiBjbGFzcyBTV1NlcnZlckpvYlF1ZXVlOwogY2xhc3MgU1dTZXJ2ZXJSZWdpc3RyYXRpb247
CiBjbGFzcyBTV1NlcnZlclRvQ29udGV4dENvbm5lY3Rpb247CkBAIC0xMzQsNyArMTMzLDcgQEAg
cHVibGljOgogICAgIHVzaW5nIFNvZnRVcGRhdGVDYWxsYmFjayA9IEZ1bmN0aW9uPHZvaWQoU2Vy
dmljZVdvcmtlckpvYkRhdGEmJiBqb2JEYXRhLCBib29sIHNob3VsZFJlZnJlc2hDYWNoZSwgUmVz
b3VyY2VSZXF1ZXN0JiYsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoV29ya2VyRmV0Y2hSZXN1bHQm
Jik+JiYpPjsKICAgICB1c2luZyBDcmVhdGVDb250ZXh0Q29ubmVjdGlvbkNhbGxiYWNrID0gRnVu
Y3Rpb248dm9pZChjb25zdCBXZWJDb3JlOjpSZWdpc3RyYWJsZURvbWFpbiYsIHN0ZDo6b3B0aW9u
YWw8UHJvY2Vzc0lkZW50aWZpZXI+IHJlcXVlc3RpbmdQcm9jZXNzSWRlbnRpZmllciwgc3RkOjpv
cHRpb25hbDxTY3JpcHRFeGVjdXRpb25Db250ZXh0SWRlbnRpZmllcj4sIENvbXBsZXRpb25IYW5k
bGVyPHZvaWQoKT4mJik+OwogICAgIHVzaW5nIEFwcEJvdW5kRG9tYWluc0NhbGxiYWNrID0gRnVu
Y3Rpb248dm9pZChDb21wbGV0aW9uSGFuZGxlcjx2b2lkKEhhc2hTZXQ8V2ViQ29yZTo6UmVnaXN0
cmFibGVEb21haW4+JiYpPiYmKT47Ci0gICAgV0VCQ09SRV9FWFBPUlQgU1dTZXJ2ZXIoVW5pcXVl
UmVmPFNXT3JpZ2luU3RvcmU+JiYsIGJvb2wgcHJvY2Vzc1Rlcm1pbmF0aW9uRGVsYXlFbmFibGVk
LCBTdHJpbmcmJiByZWdpc3RyYXRpb25EYXRhYmFzZURpcmVjdG9yeSwgUEFMOjpTZXNzaW9uSUQs
IGJvb2wgc2hvdWxkUnVuU2VydmljZVdvcmtlcnNPbk1haW5UaHJlYWRGb3JUZXN0aW5nLCBib29s
IGhhc1NlcnZpY2VXb3JrZXJFbnRpdGxlbWVudCwgc3RkOjpvcHRpb25hbDx1bnNpZ25lZD4gb3Zl
cnJpZGVTZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uQ291bnRUZXN0aW5nVmFsdWUsIFNvZnRVcGRh
dGVDYWxsYmFjayYmLCBDcmVhdGVDb250ZXh0Q29ubmVjdGlvbkNhbGxiYWNrJiYsIEFwcEJvdW5k
RG9tYWluc0NhbGxiYWNrJiYpOworICAgIFdFQkNPUkVfRVhQT1JUIFNXU2VydmVyKGJvb2wgcHJv
Y2Vzc1Rlcm1pbmF0aW9uRGVsYXlFbmFibGVkLCBTdHJpbmcmJiByZWdpc3RyYXRpb25EYXRhYmFz
ZURpcmVjdG9yeSwgUEFMOjpTZXNzaW9uSUQsIGJvb2wgc2hvdWxkUnVuU2VydmljZVdvcmtlcnNP
bk1haW5UaHJlYWRGb3JUZXN0aW5nLCBib29sIGhhc1NlcnZpY2VXb3JrZXJFbnRpdGxlbWVudCwg
c3RkOjpvcHRpb25hbDx1bnNpZ25lZD4gb3ZlcnJpZGVTZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9u
Q291bnRUZXN0aW5nVmFsdWUsIFNvZnRVcGRhdGVDYWxsYmFjayYmLCBDcmVhdGVDb250ZXh0Q29u
bmVjdGlvbkNhbGxiYWNrJiYsIEFwcEJvdW5kRG9tYWluc0NhbGxiYWNrJiYpOwogCiAgICAgV0VC
Q09SRV9FWFBPUlQgflNXU2VydmVyKCk7CiAKQEAgLTE3OCw4ICsxNzcsNiBAQCBwdWJsaWM6CiAg
ICAgY29uc3QgSGFzaE1hcDxTV1NlcnZlckNvbm5lY3Rpb25JZGVudGlmaWVyLCBzdGQ6OnVuaXF1
ZV9wdHI8Q29ubmVjdGlvbj4+JiBjb25uZWN0aW9ucygpIGNvbnN0IHsgcmV0dXJuIG1fY29ubmVj
dGlvbnM7IH0KICAgICBXRUJDT1JFX0VYUE9SVCBib29sIGNhbkhhbmRsZVNjaGVtZShTdHJpbmdW
aWV3KSBjb25zdDsKIAotICAgIFNXT3JpZ2luU3RvcmUmIG9yaWdpblN0b3JlKCkgeyByZXR1cm4g
bV9vcmlnaW5TdG9yZTsgfQotCiAgICAgdm9pZCByZWZyZXNoSW1wb3J0ZWRTY3JpcHRzRmluaXNo
ZWQoY29uc3QgU2VydmljZVdvcmtlckpvYkRhdGFJZGVudGlmaWVyJiwgY29uc3QgU2VydmljZVdv
cmtlclJlZ2lzdHJhdGlvbktleSYsIGNvbnN0IFZlY3RvcjxzdGQ6OnBhaXI8VVJMLCBTY3JpcHRC
dWZmZXI+PiYpOwogICAgIHZvaWQgc2NyaXB0Q29udGV4dEZhaWxlZFRvU3RhcnQoY29uc3Qgc3Rk
OjpvcHRpb25hbDxTZXJ2aWNlV29ya2VySm9iRGF0YUlkZW50aWZpZXI+JiwgU1dTZXJ2ZXJXb3Jr
ZXImLCBjb25zdCBTdHJpbmcmIG1lc3NhZ2UpOwogICAgIHZvaWQgc2NyaXB0Q29udGV4dFN0YXJ0
ZWQoY29uc3Qgc3RkOjpvcHRpb25hbDxTZXJ2aWNlV29ya2VySm9iRGF0YUlkZW50aWZpZXI+Jiwg
U1dTZXJ2ZXJXb3JrZXImKTsKQEAgLTIyMSw2ICsyMTgsNyBAQCBwdWJsaWM6CiAKICAgICBib29s
IGlzSW1wb3J0Q29tcGxldGVkKCkgY29uc3QgeyByZXR1cm4gbV9pbXBvcnRDb21wbGV0ZWQ7IH0K
ICAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHdoZW5JbXBvcnRJc0NvbXBsZXRlZChDb21wbGV0aW9u
SGFuZGxlcjx2b2lkKCk+JiYpOworICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgd2hlbkltcG9ydElz
Q29tcGxldGVkSWZOZWVkZWQoQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmKTsKIAogICAgIHZv
aWQgc29mdFVwZGF0ZShTV1NlcnZlclJlZ2lzdHJhdGlvbiYpOwogCkBAIC0yODQsNyArMjgyLDYg
QEAgcHJpdmF0ZToKICAgICB2b2lkIGNvbnRleHRDb25uZWN0aW9uQ3JlYXRlZChTV1NlcnZlclRv
Q29udGV4dENvbm5lY3Rpb24mKTsKIAogICAgIHZvaWQgdXBkYXRlQXBwSW5pdGlhdGVkVmFsdWVG
b3JXb3JrZXJzKGNvbnN0IENsaWVudE9yaWdpbiYsIExhc3ROYXZpZ2F0aW9uV2FzQXBwSW5pdGlh
dGVkKTsKLSAgICB2b2lkIHdoZW5JbXBvcnRJc0NvbXBsZXRlZElmTmVlZGVkKENvbXBsZXRpb25I
YW5kbGVyPHZvaWQoKT4mJik7CiAKICAgICBSZXNvdXJjZVJlcXVlc3QgY3JlYXRlU2NyaXB0UmVx
dWVzdChjb25zdCBVUkwmLCBjb25zdCBTZXJ2aWNlV29ya2VySm9iRGF0YSYsIFNXU2VydmVyUmVn
aXN0cmF0aW9uJik7CiAKQEAgLTMwNyw3ICszMDQsNiBAQCBwcml2YXRlOgogICAgIEhhc2hNYXA8
U2NyaXB0RXhlY3V0aW9uQ29udGV4dElkZW50aWZpZXIsIFNlcnZpY2VXb3JrZXJSZWdpc3RyYXRp
b25JZGVudGlmaWVyPiBtX2NsaWVudFRvQ29udHJvbGxpbmdSZWdpc3RyYXRpb247CiAgICAgTWVt
b3J5Q29tcGFjdFJvYmluSG9vZEhhc2hNYXA8U3RyaW5nLCBTY3JpcHRFeGVjdXRpb25Db250ZXh0
SWRlbnRpZmllcj4gbV92aXNpYmxlQ2xpZW50SWRUb0ludGVybmFsQ2xpZW50SWRNYXA7CiAKLSAg
ICBVbmlxdWVSZWY8U1dPcmlnaW5TdG9yZT4gbV9vcmlnaW5TdG9yZTsKICAgICBzdGQ6OnVuaXF1
ZV9wdHI8UmVnaXN0cmF0aW9uU3RvcmU+IG1fcmVnaXN0cmF0aW9uU3RvcmU7CiAgICAgSGFzaE1h
cDxSZWdpc3RyYWJsZURvbWFpbiwgVmVjdG9yPFNlcnZpY2VXb3JrZXJDb250ZXh0RGF0YT4+IG1f
cGVuZGluZ0NvbnRleHREYXRhczsKICAgICBIYXNoTWFwPFJlZ2lzdHJhYmxlRG9tYWluLCBIYXNo
TWFwPFNlcnZpY2VXb3JrZXJJZGVudGlmaWVyLCBWZWN0b3I8UnVuU2VydmljZVdvcmtlckNhbGxi
YWNrPj4+IG1fc2VydmljZVdvcmtlclJ1blJlcXVlc3RzOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrU2Vzc2lvbi5jcHAgYi9Tb3VyY2UvV2ViS2l0L05l
dHdvcmtQcm9jZXNzL05ldHdvcmtTZXNzaW9uLmNwcAppbmRleCAyMzE5NGQ1YTEzYWU3ZjM2YTI4
ZGZkYTk1MGI1ZWU2NWI2MjIxNDBhLi44NDIwMDgzNTlhZWM1NTgwODU5MWQ2OTA5MjkzYmJhMzc0
MDliNTI2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtT
ZXNzaW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtTZXNz
aW9uLmNwcApAQCAtNDYsNyArNDYsNiBAQAogI2luY2x1ZGUgIldlYlBhZ2VQcm94eS5oIgogI2lu
Y2x1ZGUgIldlYlBhZ2VQcm94eU1lc3NhZ2VzLmgiCiAjaW5jbHVkZSAiV2ViUHJvY2Vzc1Byb3h5
LmgiCi0jaW5jbHVkZSAiV2ViU1dPcmlnaW5TdG9yZS5oIgogI2luY2x1ZGUgIldlYlNoYXJlZFdv
cmtlclNlcnZlci5oIgogI2luY2x1ZGUgIldlYlNvY2tldFRhc2suaCIKICNpbmNsdWRlIDxXZWJD
b3JlL0Nvb2tpZUphci5oPgpAQCAtNjExLDI1ICs2MTAsNiBAQCBTZXJ2aWNlV29ya2VyRmV0Y2hU
YXNrKiBOZXR3b3JrU2Vzc2lvbjo6bmF2aWdhdGlvblByZWxvYWRlclRhc2tGcm9tRmV0Y2hJZGVu
dGlmaQogICAgIHJldHVybiBtX25hdmlnYXRpb25QcmVsb2FkZXJzLmdldChpZGVudGlmaWVyKS5n
ZXQoKTsKIH0KIAotV2ViU1dPcmlnaW5TdG9yZSogTmV0d29ya1Nlc3Npb246OnN3T3JpZ2luU3Rv
cmUoKSBjb25zdAotewotICAgIHJldHVybiBtX3N3U2VydmVyID8gJnN0YXRpY19jYXN0PFdlYlNX
T3JpZ2luU3RvcmUmPihtX3N3U2VydmVyLT5vcmlnaW5TdG9yZSgpKSA6IG51bGxwdHI7Ci19Ci0K
LXZvaWQgTmV0d29ya1Nlc3Npb246OnJlZ2lzdGVyU1dTZXJ2ZXJDb25uZWN0aW9uKFdlYlNXU2Vy
dmVyQ29ubmVjdGlvbiYgY29ubmVjdGlvbikKLXsKLSAgICBhdXRvKiBzdG9yZSA9IHN3T3JpZ2lu
U3RvcmUoKTsKLSAgICBBU1NFUlQoc3RvcmUpOwotICAgIGlmIChzdG9yZSkKLSAgICAgICAgc3Rv
cmUtPnJlZ2lzdGVyU1dTZXJ2ZXJDb25uZWN0aW9uKGNvbm5lY3Rpb24pOwotfQotCi12b2lkIE5l
dHdvcmtTZXNzaW9uOjp1bnJlZ2lzdGVyU1dTZXJ2ZXJDb25uZWN0aW9uKFdlYlNXU2VydmVyQ29u
bmVjdGlvbiYgY29ubmVjdGlvbikKLXsKLSAgICBpZiAoYXV0byogc3RvcmUgPSBzd09yaWdpblN0
b3JlKCkpCi0gICAgICAgIHN0b3JlLT51bnJlZ2lzdGVyU1dTZXJ2ZXJDb25uZWN0aW9uKGNvbm5l
Y3Rpb24pOwotfQotCiBTV1NlcnZlciYgTmV0d29ya1Nlc3Npb246OmVuc3VyZVNXU2VydmVyKCkK
IHsKICAgICBpZiAoIW1fc3dTZXJ2ZXIpIHsKQEAgLTY0OCw3ICs2MjgsNyBAQCBTV1NlcnZlciYg
TmV0d29ya1Nlc3Npb246OmVuc3VyZVNXU2VydmVyKCkKICAgICAgICAgICAgIGNvbXBsZXRpb25I
YW5kbGVyKHsgfSk7CiAgICAgICAgIH07CiAjZW5kaWYKLSAgICAgICAgbV9zd1NlcnZlciA9IG1h
a2VVbmlxdWU8U1dTZXJ2ZXI+KG1ha2VVbmlxdWVSZWY8V2ViU1dPcmlnaW5TdG9yZT4oKSwgaW5m
by5wcm9jZXNzVGVybWluYXRpb25EZWxheUVuYWJsZWQsIFdURk1vdmUocGF0aCksIG1fc2Vzc2lv
bklELCBzaG91bGRSdW5TZXJ2aWNlV29ya2Vyc09uTWFpblRocmVhZEZvclRlc3RpbmcoKSwgbV9u
ZXR3b3JrUHJvY2Vzcy0+cGFyZW50UHJvY2Vzc0hhc1NlcnZpY2VXb3JrZXJFbnRpdGxlbWVudCgp
LCBvdmVycmlkZVNlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb25Db3VudFRlc3RpbmdWYWx1ZSgpLCBb
dGhpc10oYXV0byYmIGpvYkRhdGEsIGJvb2wgc2hvdWxkUmVmcmVzaENhY2hlLCBhdXRvJiYgcmVx
dWVzdCwgYXV0byYmIGNvbXBsZXRpb25IYW5kbGVyKSBtdXRhYmxlIHsKKyAgICAgICAgbV9zd1Nl
cnZlciA9IG1ha2VVbmlxdWU8U1dTZXJ2ZXI+KGluZm8ucHJvY2Vzc1Rlcm1pbmF0aW9uRGVsYXlF
bmFibGVkLCBXVEZNb3ZlKHBhdGgpLCBtX3Nlc3Npb25JRCwgc2hvdWxkUnVuU2VydmljZVdvcmtl
cnNPbk1haW5UaHJlYWRGb3JUZXN0aW5nKCksIG1fbmV0d29ya1Byb2Nlc3MtPnBhcmVudFByb2Nl
c3NIYXNTZXJ2aWNlV29ya2VyRW50aXRsZW1lbnQoKSwgb3ZlcnJpZGVTZXJ2aWNlV29ya2VyUmVn
aXN0cmF0aW9uQ291bnRUZXN0aW5nVmFsdWUoKSwgW3RoaXNdKGF1dG8mJiBqb2JEYXRhLCBib29s
IHNob3VsZFJlZnJlc2hDYWNoZSwgYXV0byYmIHJlcXVlc3QsIGF1dG8mJiBjb21wbGV0aW9uSGFu
ZGxlcikgbXV0YWJsZSB7CiAgICAgICAgICAgICBTZXJ2aWNlV29ya2VyU29mdFVwZGF0ZUxvYWRl
cjo6c3RhcnQodGhpcywgV1RGTW92ZShqb2JEYXRhKSwgc2hvdWxkUmVmcmVzaENhY2hlLCBXVEZN
b3ZlKHJlcXVlc3QpLCBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKSk7CiAgICAgICAgIH0sIFt0
aGlzXShhdXRvJiByZWdpc3RyYWJsZURvbWFpbiwgc3RkOjpvcHRpb25hbDxQcm9jZXNzSWRlbnRp
Zmllcj4gcmVxdWVzdGluZ1Byb2Nlc3NJZGVudGlmaWVyLCBzdGQ6Om9wdGlvbmFsPFNjcmlwdEV4
ZWN1dGlvbkNvbnRleHRJZGVudGlmaWVyPiBzZXJ2aWNlV29ya2VyUGFnZUlkZW50aWZpZXIsIGF1
dG8mJiBjb21wbGV0aW9uSGFuZGxlcikgewogICAgICAgICAgICAgQVNTRVJUKCFyZWdpc3RyYWJs
ZURvbWFpbi5pc0VtcHR5KCkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJv
Y2Vzcy9OZXR3b3JrU2Vzc2lvbi5oIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3
b3JrU2Vzc2lvbi5oCmluZGV4IDZjYzM1MTQxZGMyMWUxZmExOWI5NDZjZmQ5ZDJmZmRiNjdiZmI0
NDIuLmE2ZmNmMGVkZTkxOTkyZmMyODBmYjg5Zjg2MDQ5MGE3MzFkNjFlYWMgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Nlc3Npb24uaAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtTZXNzaW9uLmgKQEAgLTgxLDcgKzgxLDYg
QEAgY2xhc3MgV2ViUGFnZU5ldHdvcmtQYXJhbWV0ZXJzOwogY2xhc3MgV2ViUmVzb3VyY2VMb2Fk
U3RhdGlzdGljc1N0b3JlOwogY2xhc3MgV2ViU2hhcmVkV29ya2VyU2VydmVyOwogY2xhc3MgV2Vi
U29ja2V0VGFzazsKLWNsYXNzIFdlYlNXT3JpZ2luU3RvcmU7CiBjbGFzcyBXZWJTV1NlcnZlckNv
bm5lY3Rpb247CiBzdHJ1Y3QgTmV0d29ya1Nlc3Npb25DcmVhdGlvblBhcmFtZXRlcnM7CiBzdHJ1
Y3QgU2Vzc2lvblNldDsKQEAgLTIwMyw5ICsyMDIsNiBAQCBwdWJsaWM6CiAKICAgICBXZWJDb3Jl
OjpTV1NlcnZlciogc3dTZXJ2ZXIoKSB7IHJldHVybiBtX3N3U2VydmVyLmdldCgpOyB9CiAgICAg
V2ViQ29yZTo6U1dTZXJ2ZXImIGVuc3VyZVNXU2VydmVyKCk7Ci0gICAgV2ViU1dPcmlnaW5TdG9y
ZSogc3dPcmlnaW5TdG9yZSgpIGNvbnN0OyAvLyBGSVhNRTogQ2FuIGJlIHByaXZhdGU/Ci0gICAg
dm9pZCByZWdpc3RlclNXU2VydmVyQ29ubmVjdGlvbihXZWJTV1NlcnZlckNvbm5lY3Rpb24mKTsK
LSAgICB2b2lkIHVucmVnaXN0ZXJTV1NlcnZlckNvbm5lY3Rpb24oV2ViU1dTZXJ2ZXJDb25uZWN0
aW9uJik7CiAKICAgICBib29sIGhhc1NlcnZpY2VXb3JrZXJEYXRhYmFzZVBhdGgoKSBjb25zdDsK
ICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9TZXJ2aWNl
V29ya2VyL1dlYlNXT3JpZ2luU3RvcmUuY3BwIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vz
cy9TZXJ2aWNlV29ya2VyL1dlYlNXT3JpZ2luU3RvcmUuY3BwCmRlbGV0ZWQgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMjdkYzFiNzg2OTNjNjdhNGViYjgxMDc4MjVkNWFlYzdlNjAxYThhLi4wMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJLaXQv
TmV0d29ya1Byb2Nlc3MvU2VydmljZVdvcmtlci9XZWJTV09yaWdpblN0b3JlLmNwcAorKysgL2Rl
di9udWxsCkBAIC0xLDEwNiArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDE3IEFwcGxl
IEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNl
IGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNh
dGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9u
cwotICogYXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0
IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1
dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAot
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyIGluIHRoZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJp
YWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJF
IElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycn
Ci0gKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywKLSAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRB
QklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJU0NM
QUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUwot
ICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lB
TCwgRVhFTVBMQVJZLCBPUgotICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKLSAqIFNVQlNUSVRVVEUgR09PRFMgT1Ig
U0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUwotICog
SU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJ
VFksIFdIRVRIRVIgSU4KLSAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJ
TkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCi0gKiBBUklTSU5HIElOIEFOWSBXQVkg
T1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCi0gKiBU
SEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0gKi8KLQotI2luY2x1ZGUgImNvbmZpZy5o
IgotCi0jaWYgRU5BQkxFKFNFUlZJQ0VfV09SS0VSKQotI2luY2x1ZGUgIldlYlNXT3JpZ2luU3Rv
cmUuaCIKLQotI2luY2x1ZGUgIldlYlNXQ2xpZW50Q29ubmVjdGlvbk1lc3NhZ2VzLmgiCi0jaW5j
bHVkZSAiV2ViU1dTZXJ2ZXJDb25uZWN0aW9uLmgiCi0jaW5jbHVkZSA8V2ViQ29yZS9TZWN1cml0
eU9yaWdpbi5oPgotCi1uYW1lc3BhY2UgV2ViS2l0IHsKLQotdXNpbmcgbmFtZXNwYWNlIFdlYkNv
cmU7Ci0KLVdlYlNXT3JpZ2luU3RvcmU6OldlYlNXT3JpZ2luU3RvcmUoKQotICAgIDogbV9zdG9y
ZSgqdGhpcykKLXsKLX0KLQotdm9pZCBXZWJTV09yaWdpblN0b3JlOjphZGRUb1N0b3JlKGNvbnN0
IFNlY3VyaXR5T3JpZ2luRGF0YSYgb3JpZ2luKQotewotICAgIG1fc3RvcmUuc2NoZWR1bGVBZGRp
dGlvbihjb21wdXRlU2hhcmVkU3RyaW5nSGFzaChvcmlnaW4udG9TdHJpbmcoKSkpOwotICAgIG1f
c3RvcmUuZmx1c2hQZW5kaW5nQ2hhbmdlcygpOwotfQotCi12b2lkIFdlYlNXT3JpZ2luU3RvcmU6
OnJlbW92ZUZyb21TdG9yZShjb25zdCBTZWN1cml0eU9yaWdpbkRhdGEmIG9yaWdpbikKLXsKLSAg
ICBtX3N0b3JlLnNjaGVkdWxlUmVtb3ZhbChjb21wdXRlU2hhcmVkU3RyaW5nSGFzaChvcmlnaW4u
dG9TdHJpbmcoKSkpOwotICAgIG1fc3RvcmUuZmx1c2hQZW5kaW5nQ2hhbmdlcygpOwotfQotCi12
b2lkIFdlYlNXT3JpZ2luU3RvcmU6OmNsZWFyU3RvcmUoKQotewotICAgIG1fc3RvcmUuY2xlYXIo
KTsKLX0KLQotdm9pZCBXZWJTV09yaWdpblN0b3JlOjppbXBvcnRDb21wbGV0ZSgpCi17Ci0gICAg
bV9pc0ltcG9ydGVkID0gdHJ1ZTsKLSAgICBmb3IgKGF1dG8mIGNvbm5lY3Rpb24gOiBtX3dlYlNX
U2VydmVyQ29ubmVjdGlvbnMpCi0gICAgICAgIGNvbm5lY3Rpb24uc2VuZChNZXNzYWdlczo6V2Vi
U1dDbGllbnRDb25uZWN0aW9uOjpTZXRTV09yaWdpblRhYmxlSXNJbXBvcnRlZCgpKTsKLX0KLQot
dm9pZCBXZWJTV09yaWdpblN0b3JlOjpyZWdpc3RlclNXU2VydmVyQ29ubmVjdGlvbihXZWJTV1Nl
cnZlckNvbm5lY3Rpb24mIGNvbm5lY3Rpb24pCi17Ci0gICAgbV93ZWJTV1NlcnZlckNvbm5lY3Rp
b25zLmFkZChjb25uZWN0aW9uKTsKLQotICAgIGlmICghbV9zdG9yZS5pc0VtcHR5KCkpCi0gICAg
ICAgIHNlbmRTdG9yZUhhbmRsZShjb25uZWN0aW9uKTsKLQotICAgIGlmIChtX2lzSW1wb3J0ZWQp
Ci0gICAgICAgIGNvbm5lY3Rpb24uc2VuZChNZXNzYWdlczo6V2ViU1dDbGllbnRDb25uZWN0aW9u
OjpTZXRTV09yaWdpblRhYmxlSXNJbXBvcnRlZCgpKTsKLX0KLQotdm9pZCBXZWJTV09yaWdpblN0
b3JlOjp1bnJlZ2lzdGVyU1dTZXJ2ZXJDb25uZWN0aW9uKFdlYlNXU2VydmVyQ29ubmVjdGlvbiYg
Y29ubmVjdGlvbikKLXsKLSAgICBtX3dlYlNXU2VydmVyQ29ubmVjdGlvbnMucmVtb3ZlKGNvbm5l
Y3Rpb24pOwotfQotCi12b2lkIFdlYlNXT3JpZ2luU3RvcmU6OnNlbmRTdG9yZUhhbmRsZShXZWJT
V1NlcnZlckNvbm5lY3Rpb24mIGNvbm5lY3Rpb24pCi17Ci0gICAgU2hhcmVkTWVtb3J5OjpIYW5k
bGUgaGFuZGxlOwotICAgIGlmICghbV9zdG9yZS5jcmVhdGVTaGFyZWRNZW1vcnlIYW5kbGUoaGFu
ZGxlKSkKLSAgICAgICAgcmV0dXJuOwotCi0jaWYgKE9TKERBUldJTikgfHwgT1MoV0lORE9XUykp
ICYmICFVU0UoVU5JWF9ET01BSU5fU09DS0VUUykKLSAgICB1aW50NjRfdCBkYXRhU2l6ZSA9IGhh
bmRsZS5zaXplKCk7Ci0jZWxzZQotICAgIHVpbnQ2NF90IGRhdGFTaXplID0gMDsKLSNlbmRpZgot
ICAgIGNvbm5lY3Rpb24uc2VuZChNZXNzYWdlczo6V2ViU1dDbGllbnRDb25uZWN0aW9uOjpTZXRT
V09yaWdpblRhYmxlU2hhcmVkTWVtb3J5KFNoYXJlZE1lbW9yeTo6SVBDSGFuZGxlIHsgV1RGTW92
ZShoYW5kbGUpLCBkYXRhU2l6ZSB9KSk7Ci19Ci0KLXZvaWQgV2ViU1dPcmlnaW5TdG9yZTo6ZGlk
SW52YWxpZGF0ZVNoYXJlZE1lbW9yeSgpCi17Ci0gICAgZm9yIChhdXRvJiBjb25uZWN0aW9uIDog
bV93ZWJTV1NlcnZlckNvbm5lY3Rpb25zKQotICAgICAgICBzZW5kU3RvcmVIYW5kbGUoY29ubmVj
dGlvbik7Ci19Ci0KLX0gLy8gbmFtZXNwYWNlIFdlYktpdAotCi0jZW5kaWYgLy8gRU5BQkxFKFNF
UlZJQ0VfV09SS0VSKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9T
ZXJ2aWNlV29ya2VyL1dlYlNXT3JpZ2luU3RvcmUuaCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1By
b2Nlc3MvU2VydmljZVdvcmtlci9XZWJTV09yaWdpblN0b3JlLmgKZGVsZXRlZCBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDc1MWE4NTgwNzhmNmNiNWQ0MTk0ZjUwN2E3MjM2ZWQ0OTVkOTgyZjAuLjAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL1dlYktp
dC9OZXR3b3JrUHJvY2Vzcy9TZXJ2aWNlV29ya2VyL1dlYlNXT3JpZ2luU3RvcmUuaAorKysgL2Rl
di9udWxsCkBAIC0xLDYzICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTcgQXBwbGUg
SW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2Ug
aW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0
aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25z
Ci0gKiBhcmUgbWV0OgotICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3Qg
cmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0
aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0g
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlh
bHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUg
SVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycK
LSAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLAotICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFC
SUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgotICogUFVSUE9TRSBBUkUgRElTQ0xB
SU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCi0g
KiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFM
LCBFWEVNUExBUlksIE9SCi0gKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgotICogU1VCU1RJVFVURSBHT09EUyBPUiBT
RVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCi0gKiBJ
TlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElU
WSwgV0hFVEhFUiBJTgotICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElO
Q0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKLSAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBP
VVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKLSAqIFRI
RSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLSAqLwotCi0jcHJhZ21hIG9uY2UKLQotI2lm
IEVOQUJMRShTRVJWSUNFX1dPUktFUikKLQotI2luY2x1ZGUgIlNoYXJlZFN0cmluZ0hhc2hTdG9y
ZS5oIgotI2luY2x1ZGUgPFdlYkNvcmUvU1dPcmlnaW5TdG9yZS5oPgotI2luY2x1ZGUgPHd0Zi9X
ZWFrSGFzaFNldC5oPgotCi1uYW1lc3BhY2UgV2ViS2l0IHsKLQotY2xhc3MgV2ViU1dTZXJ2ZXJD
b25uZWN0aW9uOwotCi1jbGFzcyBXZWJTV09yaWdpblN0b3JlIGZpbmFsIDogcHVibGljIFdlYkNv
cmU6OlNXT3JpZ2luU3RvcmUsIHByaXZhdGUgU2hhcmVkU3RyaW5nSGFzaFN0b3JlOjpDbGllbnQg
ewotcHVibGljOgotICAgIFdlYlNXT3JpZ2luU3RvcmUoKTsKLQotICAgIHZvaWQgcmVnaXN0ZXJT
V1NlcnZlckNvbm5lY3Rpb24oV2ViU1dTZXJ2ZXJDb25uZWN0aW9uJik7Ci0gICAgdm9pZCB1bnJl
Z2lzdGVyU1dTZXJ2ZXJDb25uZWN0aW9uKFdlYlNXU2VydmVyQ29ubmVjdGlvbiYpOwotICAgIHZv
aWQgaW1wb3J0Q29tcGxldGUoKSBmaW5hbDsKLQotcHJpdmF0ZToKLSAgICB2b2lkIHNlbmRTdG9y
ZUhhbmRsZShXZWJTV1NlcnZlckNvbm5lY3Rpb24mKTsKLQotICAgIHZvaWQgYWRkVG9TdG9yZShj
b25zdCBXZWJDb3JlOjpTZWN1cml0eU9yaWdpbkRhdGEmKSBmaW5hbDsKLSAgICB2b2lkIHJlbW92
ZUZyb21TdG9yZShjb25zdCBXZWJDb3JlOjpTZWN1cml0eU9yaWdpbkRhdGEmKSBmaW5hbDsKLSAg
ICB2b2lkIGNsZWFyU3RvcmUoKSBmaW5hbDsKLQotICAgIC8vIFNoYXJlZFN0cmluZ0hhc2hTdG9y
ZTo6Q2xpZW50LgotICAgIHZvaWQgZGlkSW52YWxpZGF0ZVNoYXJlZE1lbW9yeSgpIGZpbmFsOwot
Ci0gICAgU2hhcmVkU3RyaW5nSGFzaFN0b3JlIG1fc3RvcmU7Ci0gICAgYm9vbCBtX2lzSW1wb3J0
ZWQgeyBmYWxzZSB9OwotICAgIFdlYWtIYXNoU2V0PFdlYlNXU2VydmVyQ29ubmVjdGlvbj4gbV93
ZWJTV1NlcnZlckNvbm5lY3Rpb25zOwotfTsKLQotfSAvLyBuYW1lc3BhY2UgV2ViS2l0Ci0KLSNl
bmRpZiAvLyBFTkFCTEUoU0VSVklDRV9XT1JLRVIpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L05ldHdvcmtQcm9jZXNzL1NlcnZpY2VXb3JrZXIvV2ViU1dTZXJ2ZXJDb25uZWN0aW9uLmNwcCBi
L1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvU2VydmljZVdvcmtlci9XZWJTV1NlcnZlckNv
bm5lY3Rpb24uY3BwCmluZGV4IDQ3ZDQxZjNlNTQ4YmJmOTQ1ZDQ4NDU0OTM4NDU4YmM4MWQ0Nzhk
ZjAuLjczM2ViZjVkMWJlZmUwNzc2OTVlODM1OTg5MTA2ZDgzZTNiZWJiOTQgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvU2VydmljZVdvcmtlci9XZWJTV1NlcnZlckNv
bm5lY3Rpb24uY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvU2VydmljZVdv
cmtlci9XZWJTV1NlcnZlckNvbm5lY3Rpb24uY3BwCkBAIC04MiwxNCArODIsMTAgQEAgV2ViU1dT
ZXJ2ZXJDb25uZWN0aW9uOjpXZWJTV1NlcnZlckNvbm5lY3Rpb24oTmV0d29ya1Byb2Nlc3MmIG5l
dHdvcmtQcm9jZXNzLCBTV1MKICAgICAsIG1fY29udGVudENvbm5lY3Rpb24oY29ubmVjdGlvbikK
ICAgICAsIG1fbmV0d29ya1Byb2Nlc3MobmV0d29ya1Byb2Nlc3MpCiB7Ci0gICAgaWYgKGF1dG8q
IHNlc3Npb24gPSB0aGlzLT5zZXNzaW9uKCkpCi0gICAgICAgIHNlc3Npb24tPnJlZ2lzdGVyU1dT
ZXJ2ZXJDb25uZWN0aW9uKCp0aGlzKTsKIH0KIAogV2ViU1dTZXJ2ZXJDb25uZWN0aW9uOjp+V2Vi
U1dTZXJ2ZXJDb25uZWN0aW9uKCkKIHsKLSAgICBpZiAoYXV0byogc2Vzc2lvbiA9IHRoaXMtPnNl
c3Npb24oKSkKLSAgICAgICAgc2Vzc2lvbi0+dW5yZWdpc3RlclNXU2VydmVyQ29ubmVjdGlvbigq
dGhpcyk7CiAgICAgZm9yIChjb25zdCBhdXRvJiBrZXlWYWx1ZSA6IG1fY2xpZW50T3JpZ2lucykK
ICAgICAgICAgc2VydmVyKCkudW5yZWdpc3RlclNlcnZpY2VXb3JrZXJDbGllbnQoa2V5VmFsdWUu
dmFsdWUsIGtleVZhbHVlLmtleSk7CiAgICAgZm9yIChhdXRvJiBjb21wbGV0aW9uSGFuZGxlciA6
IG1fdW5yZWdpc3RlckpvYnMudmFsdWVzKCkpCkBAIC0zODgsMTggKzM4NCwzMCBAQCB2b2lkIFdl
YlNXU2VydmVyQ29ubmVjdGlvbjo6cG9zdE1lc3NhZ2VUb1NlcnZpY2VXb3JrZXJDbGllbnQoU2Ny
aXB0RXhlY3V0aW9uQ29udAogICAgIHNlbmQoTWVzc2FnZXM6OldlYlNXQ2xpZW50Q29ubmVjdGlv
bjo6UG9zdE1lc3NhZ2VUb1NlcnZpY2VXb3JrZXJDbGllbnQgeyBkZXN0aW5hdGlvbkNvbnRleHRJ
ZGVudGlmaWVyLCBtZXNzYWdlLCBzb3VyY2VTZXJ2aWNlV29ya2VyLT5kYXRhKCksIHNvdXJjZU9y
aWdpbiB9KTsKIH0KIAotdm9pZCBXZWJTV1NlcnZlckNvbm5lY3Rpb246Om1hdGNoUmVnaXN0cmF0
aW9uKGNvbnN0IFNlY3VyaXR5T3JpZ2luRGF0YSYgdG9wT3JpZ2luLCBjb25zdCBVUkwmIGNsaWVu
dFVSTCwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChzdGQ6Om9wdGlvbmFsPFNlcnZpY2VXb3JrZXJS
ZWdpc3RyYXRpb25EYXRhPiYmKT4mJiBjYWxsYmFjaykKK3ZvaWQgV2ViU1dTZXJ2ZXJDb25uZWN0
aW9uOjptYXRjaFJlZ2lzdHJhdGlvbihTZWN1cml0eU9yaWdpbkRhdGEmJiB0b3BPcmlnaW4sIFVS
TCYmIGNsaWVudFVSTCwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChzdGQ6Om9wdGlvbmFsPFNlcnZp
Y2VXb3JrZXJSZWdpc3RyYXRpb25EYXRhPiYmKT4mJiBjYWxsYmFjaykKIHsKLSAgICBpZiAoYXV0
byogcmVnaXN0cmF0aW9uID0gZG9SZWdpc3RyYXRpb25NYXRjaGluZyh0b3BPcmlnaW4sIGNsaWVu
dFVSTCkpIHsKLSAgICAgICAgY2FsbGJhY2socmVnaXN0cmF0aW9uLT5kYXRhKCkpOwotICAgICAg
ICByZXR1cm47Ci0gICAgfQotICAgIGNhbGxiYWNrKHsgfSk7CisgICAgc2VydmVyKCkud2hlbklt
cG9ydElzQ29tcGxldGVkSWZOZWVkZWQoW3dlYWtUaGlzID0gV2Vha1B0ciB7ICp0aGlzIH0sIHRv
cE9yaWdpbiA9IFdURk1vdmUodG9wT3JpZ2luKSwgY2xpZW50VVJMID0gV1RGTW92ZShjbGllbnRV
UkwpLCBjYWxsYmFjayA9IFdURk1vdmUoY2FsbGJhY2spXSgpIG11dGFibGUgeworICAgICAgICBp
ZiAoIXdlYWtUaGlzKSB7CisgICAgICAgICAgICBjYWxsYmFjayh7IH0pOworICAgICAgICAgICAg
cmV0dXJuOworICAgICAgICB9CisgICAgICAgIGlmIChhdXRvKiByZWdpc3RyYXRpb24gPSB3ZWFr
VGhpcy0+ZG9SZWdpc3RyYXRpb25NYXRjaGluZyh0b3BPcmlnaW4sIGNsaWVudFVSTCkpIHsKKyAg
ICAgICAgICAgIGNhbGxiYWNrKHJlZ2lzdHJhdGlvbi0+ZGF0YSgpKTsKKyAgICAgICAgICAgIHJl
dHVybjsKKyAgICAgICAgfQorICAgICAgICBjYWxsYmFjayh7IH0pOworICAgIH0pOwogfQogCi12
b2lkIFdlYlNXU2VydmVyQ29ubmVjdGlvbjo6Z2V0UmVnaXN0cmF0aW9ucyhjb25zdCBTZWN1cml0
eU9yaWdpbkRhdGEmIHRvcE9yaWdpbiwgY29uc3QgVVJMJiBjbGllbnRVUkwsIENvbXBsZXRpb25I
YW5kbGVyPHZvaWQoY29uc3QgVmVjdG9yPFNlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb25EYXRhPiYp
PiYmIGNhbGxiYWNrKQordm9pZCBXZWJTV1NlcnZlckNvbm5lY3Rpb246OmdldFJlZ2lzdHJhdGlv
bnMoU2VjdXJpdHlPcmlnaW5EYXRhJiYgdG9wT3JpZ2luLCBVUkwmJiBjbGllbnRVUkwsIENvbXBs
ZXRpb25IYW5kbGVyPHZvaWQoY29uc3QgVmVjdG9yPFNlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb25E
YXRhPiYpPiYmIGNhbGxiYWNrKQogewotICAgIGNhbGxiYWNrKHNlcnZlcigpLmdldFJlZ2lzdHJh
dGlvbnModG9wT3JpZ2luLCBjbGllbnRVUkwpKTsKKyAgICBzZXJ2ZXIoKS53aGVuSW1wb3J0SXND
b21wbGV0ZWRJZk5lZWRlZChbd2Vha1RoaXMgPSBXZWFrUHRyIHsgKnRoaXMgfSwgdG9wT3JpZ2lu
ID0gV1RGTW92ZSh0b3BPcmlnaW4pLCBjbGllbnRVUkwgPSBXVEZNb3ZlKGNsaWVudFVSTCksIGNh
bGxiYWNrID0gV1RGTW92ZShjYWxsYmFjayldKCkgbXV0YWJsZSB7CisgICAgICAgIGlmICghd2Vh
a1RoaXMpIHsKKyAgICAgICAgICAgIGNhbGxiYWNrKHsgfSk7CisgICAgICAgICAgICByZXR1cm47
CisgICAgICAgIH0KKyAgICAgICAgY2FsbGJhY2sod2Vha1RoaXMtPnNlcnZlcigpLmdldFJlZ2lz
dHJhdGlvbnModG9wT3JpZ2luLCBjbGllbnRVUkwpKTsKKyAgICB9KTsKIH0KIAogdm9pZCBXZWJT
V1NlcnZlckNvbm5lY3Rpb246OnJlZ2lzdGVyU2VydmljZVdvcmtlckNsaWVudChXZWJDb3JlOjpD
bGllbnRPcmlnaW4mJiBjbGllbnRPcmlnaW4sIFNlcnZpY2VXb3JrZXJDbGllbnREYXRhJiYgZGF0
YSwgY29uc3Qgc3RkOjpvcHRpb25hbDxTZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uSWRlbnRpZmll
cj4mIGNvbnRyb2xsaW5nU2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbklkZW50aWZpZXIsIFN0cmlu
ZyYmIHVzZXJBZ2VudCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mv
U2VydmljZVdvcmtlci9XZWJTV1NlcnZlckNvbm5lY3Rpb24uaCBiL1NvdXJjZS9XZWJLaXQvTmV0
d29ya1Byb2Nlc3MvU2VydmljZVdvcmtlci9XZWJTV1NlcnZlckNvbm5lY3Rpb24uaAppbmRleCA5
Zjg0NjZhOTVjOTUwNDA4MWJlYzliNzJlZTBjOGQ3YjlkNmU5ZDFmLi43NzY3YWExMjJjZjZjMjZl
NjBjNWJmMTEwZjliNDk5ODIxZTFlZGFkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdv
cmtQcm9jZXNzL1NlcnZpY2VXb3JrZXIvV2ViU1dTZXJ2ZXJDb25uZWN0aW9uLmgKKysrIGIvU291
cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9TZXJ2aWNlV29ya2VyL1dlYlNXU2VydmVyQ29ubmVj
dGlvbi5oCkBAIC0xMTIsOCArMTEyLDggQEAgcHJpdmF0ZToKIAogICAgIHZvaWQgc3RhcnRGZXRj
aChTZXJ2aWNlV29ya2VyRmV0Y2hUYXNrJiwgV2ViQ29yZTo6U1dTZXJ2ZXJXb3JrZXImKTsKIAot
ICAgIHZvaWQgbWF0Y2hSZWdpc3RyYXRpb24oY29uc3QgV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW5E
YXRhJiB0b3BPcmlnaW4sIGNvbnN0IFVSTCYgY2xpZW50VVJMLCBDb21wbGV0aW9uSGFuZGxlcjx2
b2lkKHN0ZDo6b3B0aW9uYWw8V2ViQ29yZTo6U2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbkRhdGE+
JiYpPiYmKTsKLSAgICB2b2lkIGdldFJlZ2lzdHJhdGlvbnMoY29uc3QgV2ViQ29yZTo6U2VjdXJp
dHlPcmlnaW5EYXRhJiB0b3BPcmlnaW4sIGNvbnN0IFVSTCYgY2xpZW50VVJMLCBDb21wbGV0aW9u
SGFuZGxlcjx2b2lkKGNvbnN0IFZlY3RvcjxXZWJDb3JlOjpTZXJ2aWNlV29ya2VyUmVnaXN0cmF0
aW9uRGF0YT4mKT4mJik7CisgICAgdm9pZCBtYXRjaFJlZ2lzdHJhdGlvbihXZWJDb3JlOjpTZWN1
cml0eU9yaWdpbkRhdGEmJiwgVVJMJiYsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoc3RkOjpvcHRp
b25hbDxXZWJDb3JlOjpTZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uRGF0YT4mJik+JiYpOworICAg
IHZvaWQgZ2V0UmVnaXN0cmF0aW9ucyhXZWJDb3JlOjpTZWN1cml0eU9yaWdpbkRhdGEmJiwgVVJM
JiYsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoY29uc3QgVmVjdG9yPFdlYkNvcmU6OlNlcnZpY2VX
b3JrZXJSZWdpc3RyYXRpb25EYXRhPiYpPiYmKTsKIAogICAgIHZvaWQgdGVybWluYXRlV29ya2Vy
RnJvbUNsaWVudChXZWJDb3JlOjpTZXJ2aWNlV29ya2VySWRlbnRpZmllciwgQ29tcGxldGlvbkhh
bmRsZXI8dm9pZCgpPiYmKTsKICAgICB2b2lkIHdoZW5TZXJ2aWNlV29ya2VySXNUZXJtaW5hdGVk
Rm9yVGVzdGluZyhXZWJDb3JlOjpTZXJ2aWNlV29ya2VySWRlbnRpZmllciwgQ29tcGxldGlvbkhh
bmRsZXI8dm9pZCgpPiYmKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU291cmNlcy50eHQg
Yi9Tb3VyY2UvV2ViS2l0L1NvdXJjZXMudHh0CmluZGV4IGVhMGMwNjYzM2E0NjcyNmQ2NmZiNzQx
MjE5NmYzNDEwYTgzOTI0OTMuLjY5OWVkYzg0ZjRmYjBjMzQwZjFhOTJhMGE3OWI3NTlhOWQxMTM0
NDYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU291cmNlcy50eHQKKysrIGIvU291cmNlL1dl
YktpdC9Tb3VyY2VzLnR4dApAQCAtMTM1LDcgKzEzNSw2IEBAIE5ldHdvcmtQcm9jZXNzL1NlcnZp
Y2VXb3JrZXIvU2VydmljZVdvcmtlckRvd25sb2FkVGFzay5jcHAKIE5ldHdvcmtQcm9jZXNzL1Nl
cnZpY2VXb3JrZXIvU2VydmljZVdvcmtlckZldGNoVGFzay5jcHAKIE5ldHdvcmtQcm9jZXNzL1Nl
cnZpY2VXb3JrZXIvU2VydmljZVdvcmtlck5hdmlnYXRpb25QcmVsb2FkZXIuY3BwCiBOZXR3b3Jr
UHJvY2Vzcy9TZXJ2aWNlV29ya2VyL1NlcnZpY2VXb3JrZXJTb2Z0VXBkYXRlTG9hZGVyLmNwcAot
TmV0d29ya1Byb2Nlc3MvU2VydmljZVdvcmtlci9XZWJTV09yaWdpblN0b3JlLmNwcCBAbm8tdW5p
ZnkKIE5ldHdvcmtQcm9jZXNzL1NlcnZpY2VXb3JrZXIvV2ViU1dTZXJ2ZXJDb25uZWN0aW9uLmNw
cCBAbm8tdW5pZnkKIE5ldHdvcmtQcm9jZXNzL1NlcnZpY2VXb3JrZXIvV2ViU1dTZXJ2ZXJUb0Nv
bnRleHRDb25uZWN0aW9uLmNwcCBAbm8tdW5pZnkKIApAQCAtNzk2LDcgKzc5NSw2IEBAIFdlYlBy
b2Nlc3MvU3BlZWNoL1NwZWVjaFJlY29nbml0aW9uUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXIu
Y3BwCiBXZWJQcm9jZXNzL1N0b3JhZ2UvUmVtb3RlV29ya2VyRnJhbWVMb2FkZXJDbGllbnQuY3Bw
CiBXZWJQcm9jZXNzL1N0b3JhZ2UvV2ViU1dDbGllbnRDb25uZWN0aW9uLmNwcAogV2ViUHJvY2Vz
cy9TdG9yYWdlL1dlYlNXQ29udGV4dE1hbmFnZXJDb25uZWN0aW9uLmNwcAotV2ViUHJvY2Vzcy9T
dG9yYWdlL1dlYlNXT3JpZ2luVGFibGUuY3BwCiBXZWJQcm9jZXNzL1N0b3JhZ2UvV2ViU2Vydmlj
ZVdvcmtlckZldGNoVGFza0NsaWVudC5jcHAKIFdlYlByb2Nlc3MvU3RvcmFnZS9XZWJTZXJ2aWNl
V29ya2VyUHJvdmlkZXIuY3BwCiBXZWJQcm9jZXNzL1N0b3JhZ2UvV2ViU2hhcmVkV29ya2VyQ29u
dGV4dE1hbmFnZXJDb25uZWN0aW9uLmNwcApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJL
aXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1NvdXJjZS9XZWJLaXQvV2ViS2l0Lnhjb2Rl
cHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggMWIyYzRhYzNhOWEzMGMzOWIwNzQzYzVhNDk2YTNh
ZTM2MWU5ZTY2OS4uMTZhNTYxM2RiMzJlNTA5ODU4YTExOTE5YzEzODVhYjEwNzU3YTlkNSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagor
KysgYi9Tb3VyY2UvV2ViS2l0L1dlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC0x
NDM2LDcgKzE0MzYsNiBAQAogCQk4M0EwRUQzNTFGNzQ3Q0NGMDAzMjk5RUIgLyogUHJlY29ubmVj
dFRhc2suaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDgz
QTBFRDMyMUY3NDdDQzYwMDMyOTlFQiAvKiBQcmVjb25uZWN0VGFzay5oICovOyB9OwogCQk4M0Q0
NTRENzFCRTlEM0M0MDA2QzkzQkQgLyogTmV0d29ya0xvYWRDbGllbnQuaCBpbiBIZWFkZXJzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDgzRDQ1NEQ2MUJFOUQzQzQwMDZDOTNC
RCAvKiBOZXR3b3JrTG9hZENsaWVudC5oICovOyB9OwogCQk4M0VFNTc1QzFEQjdENjExMDBDNzRD
NTAgLyogV2ViVmFsaWRhdGlvbk1lc3NhZ2VDbGllbnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDgzRUU1NzVBMURCN0Q2MDYwMEM3NEM1MCAvKiBXZWJW
YWxpZGF0aW9uTWVzc2FnZUNsaWVudC5oICovOyB9OwotCQk4M0YxQTA3QTFGOTZFNzc5MDA0NUI5
NEUgLyogV2ViU1dPcmlnaW5UYWJsZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gODNGMUEwNzgxRjk2RTc3MTAwNDVCOTRFIC8qIFdlYlNXT3JpZ2luVGFi
bGUuaCAqLzsgfTsKIAkJODNGOTY0NEUxRkEwRjc2RTAwQzQ3NzUwIC8qIFNoYXJlZFN0cmluZ0hh
c2hUYWJsZVJlYWRPbmx5LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSA4M0Y5NjQ0QzFGQTBGNzYzMDBDNDc3NTAgLyogU2hhcmVkU3RyaW5nSGFzaFRhYmxl
UmVhZE9ubHkuaCAqLzsgfTsKIAkJODQ0Nzc4NTMxNzZGQ0MwODAwQ0RDN0JCIC8qIEluamVjdGVk
QnVuZGxlSGl0VGVzdFJlc3VsdE1lZGlhVHlwZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gODQ0Nzc4NTExNzZGQ0FDMTAwQ0RDN0JCIC8qIEluamVjdGVk
QnVuZGxlSGl0VGVzdFJlc3VsdE1lZGlhVHlwZS5oICovOyB9OwogCQk4NjQ0ODkwQjI3QjQ3MDIw
MDA3QTFDNjYgLyogX1dLU3lzdGVtUHJlZmVyZW5jZXMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDg2NDQ4OTBBMjdCNDcwMjAwMDdBMUM2NiAvKiBfV0tT
eXN0ZW1QcmVmZXJlbmNlcy5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUs
ICk7IH07IH07CkBAIC0xNDcxLDggKzE0NzAsNiBAQAogCQk5MzU0MjQyQzI3MDNCRENCMDA1Q0E3
MkMgLyogV2ViRmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uLmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5MzU0MjQyQTI3MDNCRENCMDA1Q0E3MkMgLyog
V2ViRmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uLmggKi87IH07CiAJCTkzNTZGMkRDMjE1MkI2
QjUwMEU2RDVERiAvKiBXZWJTV0NsaWVudENvbm5lY3Rpb24uaCBpbiBIZWFkZXJzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUxN0E1MzAyMUY0NzkzQjIwMERDREMwQSAvKiBX
ZWJTV0NsaWVudENvbm5lY3Rpb24uaCAqLzsgfTsKIAkJOTM1NkYyREQyMTUyQjZGNjAwRTZENURG
IC8qIFdlYlNXU2VydmVyQ29ubmVjdGlvbi5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gOTNCQTA0RTAyMTUxQURGNDAwN0Y0NTVGIC8qIFdlYlNXU2VydmVy
Q29ubmVjdGlvbi5oICovOyB9OwotCQk5MzU2RjJERTIxNTJCNzEwMDBFNkQ1REYgLyogV2ViU1dP
cmlnaW5TdG9yZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gOTNCQTA0REUyMTUxQURGNDAwN0Y0NTVGIC8qIFdlYlNXT3JpZ2luU3RvcmUuaCAqLzsgfTsK
LQkJOTM1NkYyREYyMTUyQjcyMzAwRTZENURGIC8qIFdlYlNXT3JpZ2luU3RvcmUuY3BwIGluIFNv
dXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTNCQTA0REYyMTUxQURG
NDAwN0Y0NTVGIC8qIFdlYlNXT3JpZ2luU3RvcmUuY3BwICovOyB9OwogCQk5MzU2RjJFMDIxNTJC
NzUyMDBFNkQ1REYgLyogV2ViU1dTZXJ2ZXJUb0NvbnRleHRDb25uZWN0aW9uLmNwcCBpbiBTb3Vy
Y2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkzQkEwNEREMjE1MUFERjMw
MDdGNDU1RiAvKiBXZWJTV1NlcnZlclRvQ29udGV4dENvbm5lY3Rpb24uY3BwICovOyB9OwogCQk5
MzU2RjJFMTIxNTJCNzY2MDBFNkQ1REYgLyogV2ViU1dTZXJ2ZXJDb25uZWN0aW9uLmNwcCBpbiBT
b3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkzQkEwNEUxMjE1MUFE
RjQwMDdGNDU1RiAvKiBXZWJTV1NlcnZlckNvbm5lY3Rpb24uY3BwICovOyB9OwogCQk5MzVCNTc5
QTI2RjUxOTMzMDA4QjQ4QUMgLyogRmlsZVN5c3RlbVN0b3JhZ2VIYW5kbGVSZWdpc3RyeS5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTM1QjU3OTgyNkY1
MTI3MDAwOEI0OEFDIC8qIEZpbGVTeXN0ZW1TdG9yYWdlSGFuZGxlUmVnaXN0cnkuaCAqLzsgfTsK
QEAgLTU3MDMsOCArNTcwMCw2IEBACiAJCTgzRDQ1NEQ2MUJFOUQzQzQwMDZDOTNCRCAvKiBOZXR3
b3JrTG9hZENsaWVudC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBOZXR3b3Jr
TG9hZENsaWVudC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk4M0VFNTc1OTFEQjdE
NjA2MDBDNzRDNTAgLyogV2ViVmFsaWRhdGlvbk1lc3NhZ2VDbGllbnQuY3BwICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gV2ViVmFsaWRhdGlvbk1lc3NhZ2VDbGllbnQuY3Bw
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk4M0VFNTc1QTFEQjdENjA2MDBDNzRDNTAg
LyogV2ViVmFsaWRhdGlvbk1lc3NhZ2VDbGllbnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5o
OyBwYXRoID0gV2ViVmFsaWRhdGlvbk1lc3NhZ2VDbGllbnQuaDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKLQkJODNGMUEwNzcxRjk2RTc3MDAwNDVCOTRFIC8qIFdlYlNXT3JpZ2luVGFibGUu
Y3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gV2ViU1dPcmlnaW5UYWJs
ZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTgzRjFBMDc4MUY5NkU3NzEwMDQ1
Qjk0RSAvKiBXZWJTV09yaWdpblRhYmxlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0
aCA9IFdlYlNXT3JpZ2luVGFibGUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJODNG
OTY0NEIxRkEwRjc2MjAwQzQ3NzUwIC8qIFNoYXJlZFN0cmluZ0hhc2hUYWJsZVJlYWRPbmx5LmNw
cCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFNoYXJlZFN0cmluZ0hhc2hU
YWJsZVJlYWRPbmx5LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJODNGOTY0NEMx
RkEwRjc2MzAwQzQ3NzUwIC8qIFNoYXJlZFN0cmluZ0hhc2hUYWJsZVJlYWRPbmx5LmggKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFNoYXJlZFN0cmluZ0hhc2hUYWJsZVJlYWRPbmx5
Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTg0NDc3ODUxMTc2RkNBQzEwMENEQzdC
QiAvKiBJbmplY3RlZEJ1bmRsZUhpdFRlc3RSZXN1bHRNZWRpYVR5cGUuaCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuYy5oOyBwYXRoID0gSW5qZWN0ZWRCdW5kbGVIaXRUZXN0UmVzdWx0TWVkaWFUeXBl
Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC01ODIwLDggKzU4MTUsNiBAQAogCQk5
M0JBMDREQjIxNTFBREYzMDA3RjQ1NUYgLyogV2ViU1dTZXJ2ZXJUb0NvbnRleHRDb25uZWN0aW9u
LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdlYlNXU2VydmVyVG9Db250ZXh0
Q29ubmVjdGlvbi5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5M0JBMDREQzIxNTFB
REYzMDA3RjQ1NUYgLyogV2ViU1dTZXJ2ZXJUb0NvbnRleHRDb25uZWN0aW9uLm1lc3NhZ2VzLmlu
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IFdlYlNXU2VydmVyVG9Db250ZXh0Q29ubmVjdGlvbi5t
ZXNzYWdlcy5pbjsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOTNCQTA0REQyMTUxQURG
MzAwN0Y0NTVGIC8qIFdlYlNXU2VydmVyVG9Db250ZXh0Q29ubmVjdGlvbi5jcHAgKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBXZWJTV1NlcnZlclRvQ29udGV4dENvbm5lY3Rp
b24uY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQk5M0JBMDRERTIxNTFBREY0MDA3
RjQ1NUYgLyogV2ViU1dPcmlnaW5TdG9yZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBh
dGggPSBXZWJTV09yaWdpblN0b3JlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTkz
QkEwNERGMjE1MUFERjQwMDdGNDU1RiAvKiBXZWJTV09yaWdpblN0b3JlLmNwcCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFdlYlNXT3JpZ2luU3RvcmUuY3BwOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwogCQk5M0JBMDRFMDIxNTFBREY0MDA3RjQ1NUYgLyogV2ViU1dT
ZXJ2ZXJDb25uZWN0aW9uLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdlYlNX
U2VydmVyQ29ubmVjdGlvbi5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5M0JBMDRF
MTIxNTFBREY0MDA3RjQ1NUYgLyogV2ViU1dTZXJ2ZXJDb25uZWN0aW9uLmNwcCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFdlYlNXU2VydmVyQ29ubmVjdGlvbi5jcHA7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTkzQkRFQjAwMTcxREQ3QUYwMEJGRUUxQiAvKiBX
S1BhZ2VMb2FkVHlwZXNQcml2YXRlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9
IFdLUGFnZUxvYWRUeXBlc1ByaXZhdGUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAg
LTEwMjk0LDggKzEwMjg3LDYgQEAKIAkJCQk0NjZCQzAzODFGQTI2NkM5MDAyRkE5QzEgLyogV2Vi
U1dDb250ZXh0TWFuYWdlckNvbm5lY3Rpb24uY3BwICovLAogCQkJCTQ2NkJDMDM5MUZBMjY2Qzkw
MDJGQTlDMSAvKiBXZWJTV0NvbnRleHRNYW5hZ2VyQ29ubmVjdGlvbi5oICovLAogCQkJCTQ2NkJD
MDNBMUZBMjY2QzkwMDJGQTlDMSAvKiBXZWJTV0NvbnRleHRNYW5hZ2VyQ29ubmVjdGlvbi5tZXNz
YWdlcy5pbiAqLywKLQkJCQk4M0YxQTA3NzFGOTZFNzcwMDA0NUI5NEUgLyogV2ViU1dPcmlnaW5U
YWJsZS5jcHAgKi8sCi0JCQkJODNGMUEwNzgxRjk2RTc3MTAwNDVCOTRFIC8qIFdlYlNXT3JpZ2lu
VGFibGUuaCAqLywKIAkJCSk7CiAJCQlwYXRoID0gU3RvcmFnZTsKIAkJCXNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7CkBAIC0xMTM1NCw4ICsxMTM0NSw2IEBACiAJCQkJNDFFQjREM0EyNzRDRTA0NTAw
QTkyNzJCIC8qIFNlcnZpY2VXb3JrZXJOYXZpZ2F0aW9uUHJlbG9hZGVyLmggKi8sCiAJCQkJNDFE
NUM2RDkyMzhFQjIwRTAwQjlCM0NCIC8qIFNlcnZpY2VXb3JrZXJTb2Z0VXBkYXRlTG9hZGVyLmNw
cCAqLywKIAkJCQk0MUQ1QzZEODIzOEVCMjBEMDBCOUIzQ0IgLyogU2VydmljZVdvcmtlclNvZnRV
cGRhdGVMb2FkZXIuaCAqLywKLQkJCQk5M0JBMDRERjIxNTFBREY0MDA3RjQ1NUYgLyogV2ViU1dP
cmlnaW5TdG9yZS5jcHAgKi8sCi0JCQkJOTNCQTA0REUyMTUxQURGNDAwN0Y0NTVGIC8qIFdlYlNX
T3JpZ2luU3RvcmUuaCAqLywKIAkJCQk5M0JBMDRFMTIxNTFBREY0MDA3RjQ1NUYgLyogV2ViU1dT
ZXJ2ZXJDb25uZWN0aW9uLmNwcCAqLywKIAkJCQk5M0JBMDRFMDIxNTFBREY0MDA3RjQ1NUYgLyog
V2ViU1dTZXJ2ZXJDb25uZWN0aW9uLmggKi8sCiAJCQkJOTNCQTA0REEyMTUxQURGMzAwN0Y0NTVG
IC8qIFdlYlNXU2VydmVyQ29ubmVjdGlvbi5tZXNzYWdlcy5pbiAqLywKQEAgLTE1MTI4LDggKzE1
MTE3LDYgQEAKIAkJCQk0NjZCQzAzQzFGQTI2NkRBMDAyRkE5QzEgLyogV2ViU1dDb250ZXh0TWFu
YWdlckNvbm5lY3Rpb24uaCBpbiBIZWFkZXJzICovLAogCQkJCTQ2MEY0ODkwMUY5OTZGNzEwMENG
NEI4NyAvKiBXZWJTV0NvbnRleHRNYW5hZ2VyQ29ubmVjdGlvbk1lc3NhZ2VzLmggaW4gSGVhZGVy
cyAqLywKIAkJCQlDMTFBOUVDQzIxNDAzNUY4MDBDRkIyMEEgLyogV2ViU3dpdGNoaW5nR1BVQ2xp
ZW50LmggaW4gSGVhZGVycyAqLywKLQkJCQk5MzU2RjJERTIxNTJCNzEwMDBFNkQ1REYgLyogV2Vi
U1dPcmlnaW5TdG9yZS5oIGluIEhlYWRlcnMgKi8sCi0JCQkJODNGMUEwN0ExRjk2RTc3OTAwNDVC
OTRFIC8qIFdlYlNXT3JpZ2luVGFibGUuaCBpbiBIZWFkZXJzICovLAogCQkJCTkzNTZGMkREMjE1
MkI2RjYwMEU2RDVERiAvKiBXZWJTV1NlcnZlckNvbm5lY3Rpb24uaCBpbiBIZWFkZXJzICovLAog
CQkJCTUxN0E1MkQ5MUY0M0E5REEwMERDREMwQSAvKiBXZWJTV1NlcnZlckNvbm5lY3Rpb25NZXNz
YWdlcy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNTE1MjYyQkMxRkI5NTE1RDAwNzBFNTc5IC8qIFdl
YlNXU2VydmVyVG9Db250ZXh0Q29ubmVjdGlvbk1lc3NhZ2VzLmggaW4gSGVhZGVycyAqLywKQEAg
LTE3Mzc1LDcgKzE3MzYyLDYgQEAKIAkJCQk5M0Q2Qjc4QTI1NENENDNFMDA1OEREM0EgLyogV2Vi
U3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uTWVzc2FnZVJlY2VpdmVyLmNwcCBpbiBTb3VyY2Vz
ICovLAogCQkJCTUxN0E1MzBGMUY0N0E4NjIwMERDREMwQSAvKiBXZWJTV0NsaWVudENvbm5lY3Rp
b25NZXNzYWdlUmVjZWl2ZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJNDYwRjQ4OEYxRjk5NkY3
MTAwQ0Y0Qjg3IC8qIFdlYlNXQ29udGV4dE1hbmFnZXJDb25uZWN0aW9uTWVzc2FnZVJlY2VpdmVy
LmNwcCBpbiBTb3VyY2VzICovLAotCQkJCTkzNTZGMkRGMjE1MkI3MjMwMEU2RDVERiAvKiBXZWJT
V09yaWdpblN0b3JlLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTkzNTZGMkUxMjE1MkI3NjYwMEU2
RDVERiAvKiBXZWJTV1NlcnZlckNvbm5lY3Rpb24uY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJNTE3
QTUyRDgxRjQzQTlEQTAwRENEQzBBIC8qIFdlYlNXU2VydmVyQ29ubmVjdGlvbk1lc3NhZ2VSZWNl
aXZlci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk5MzU2RjJFMDIxNTJCNzUyMDBFNkQ1REYgLyog
V2ViU1dTZXJ2ZXJUb0NvbnRleHRDb25uZWN0aW9uLmNwcCBpbiBTb3VyY2VzICovLApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1N0b3JhZ2UvV2ViU1dDbGllbnRDb25uZWN0
aW9uLmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9TdG9yYWdlL1dlYlNXQ2xpZW50Q29u
bmVjdGlvbi5jcHAKaW5kZXggYTUzZDA2OTRiZGM1ZDdiMjFiMDBhNDM5MTA3MTFlN2FjMGVkZDJj
ZS4uN2UwZmQxYjAzNWY1NTdkODRjZGI5ZjRkYjc3ZjAyYTI5MzI4NWZmNiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1N0b3JhZ2UvV2ViU1dDbGllbnRDb25uZWN0aW9uLmNw
cAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvU3RvcmFnZS9XZWJTV0NsaWVudENvbm5l
Y3Rpb24uY3BwCkBAIC0zOSw3ICszOSw2IEBACiAjaW5jbHVkZSAiV2ViUGFnZVByb3h5TWVzc2Fn
ZXMuaCIKICNpbmNsdWRlICJXZWJQcm9jZXNzLmgiCiAjaW5jbHVkZSAiV2ViUHJvY2Vzc1Byb3h5
TWVzc2FnZXMuaCIKLSNpbmNsdWRlICJXZWJTV09yaWdpblRhYmxlLmgiCiAjaW5jbHVkZSAiV2Vi
U1dTZXJ2ZXJDb25uZWN0aW9uTWVzc2FnZXMuaCIKICNpbmNsdWRlIDxXZWJDb3JlL0RvY3VtZW50
Lmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9Eb2N1bWVudExvYWRlci5oPgpAQCAtNjIsNyArNjEsNiBA
QCB1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKIAogV2ViU1dDbGllbnRDb25uZWN0aW9uOjpXZWJT
V0NsaWVudENvbm5lY3Rpb24oKQogICAgIDogbV9pZGVudGlmaWVyKFByb2Nlc3M6OmlkZW50aWZp
ZXIoKSkKLSAgICAsIG1fc3dPcmlnaW5UYWJsZShtYWtlVW5pcXVlUmVmPFdlYlNXT3JpZ2luVGFi
bGU+KCkpCiB7CiB9CiAKQEAgLTc4LDkgKzc2LDcgQEAgSVBDOjpDb25uZWN0aW9uKiBXZWJTV0Ns
aWVudENvbm5lY3Rpb246Om1lc3NhZ2VTZW5kZXJDb25uZWN0aW9uKCkgY29uc3QKIAogdm9pZCBX
ZWJTV0NsaWVudENvbm5lY3Rpb246OnNjaGVkdWxlSm9iSW5TZXJ2ZXIoY29uc3QgU2VydmljZVdv
cmtlckpvYkRhdGEmIGpvYkRhdGEpCiB7Ci0gICAgcnVuT3JEZWxheVRhc2tGb3JJbXBvcnQoW3Ro
aXMsIGpvYkRhdGFdIHsKLSAgICAgICAgc2VuZChNZXNzYWdlczo6V2ViU1dTZXJ2ZXJDb25uZWN0
aW9uOjpTY2hlZHVsZUpvYkluU2VydmVyIHsgam9iRGF0YSB9KTsKLSAgICB9KTsKKyAgICBzZW5k
KE1lc3NhZ2VzOjpXZWJTV1NlcnZlckNvbm5lY3Rpb246OlNjaGVkdWxlSm9iSW5TZXJ2ZXIgeyBq
b2JEYXRhIH0pOwogfQogCiB2b2lkIFdlYlNXQ2xpZW50Q29ubmVjdGlvbjo6ZmluaXNoRmV0Y2hp
bmdTY3JpcHRJblNlcnZlcihjb25zdCBTZXJ2aWNlV29ya2VySm9iRGF0YUlkZW50aWZpZXImIGpv
YkRhdGFJZGVudGlmaWVyLCBTZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uS2V5JiYgcmVnaXN0cmF0
aW9uS2V5LCBXb3JrZXJGZXRjaFJlc3VsdCYmIHJlc3VsdCkKQEAgLTEzMCw0NyArMTI2LDEwIEBA
IHZvaWQgV2ViU1dDbGllbnRDb25uZWN0aW9uOjpkaWRSZXNvbHZlUmVnaXN0cmF0aW9uUHJvbWlz
ZShjb25zdCBTZXJ2aWNlV29ya2VyUmVnCiAgICAgc2VuZChNZXNzYWdlczo6V2ViU1dTZXJ2ZXJD
b25uZWN0aW9uOjpEaWRSZXNvbHZlUmVnaXN0cmF0aW9uUHJvbWlzZSB7IGtleSB9KTsKIH0KIAot
Ym9vbCBXZWJTV0NsaWVudENvbm5lY3Rpb246Om1heUhhdmVTZXJ2aWNlV29ya2VyUmVnaXN0ZXJl
ZEZvck9yaWdpbihjb25zdCBTZWN1cml0eU9yaWdpbkRhdGEmIG9yaWdpbikgY29uc3QKLXsKLSAg
ICBpZiAoIW1fc3dPcmlnaW5UYWJsZS0+aXNJbXBvcnRlZCgpKQotICAgICAgICByZXR1cm4gdHJ1
ZTsKLQotICAgIHJldHVybiBtX3N3T3JpZ2luVGFibGUtPmNvbnRhaW5zKG9yaWdpbik7Ci19Ci0K
LXZvaWQgV2ViU1dDbGllbnRDb25uZWN0aW9uOjpzZXRTV09yaWdpblRhYmxlU2hhcmVkTWVtb3J5
KGNvbnN0IFNoYXJlZE1lbW9yeTo6SVBDSGFuZGxlJiBpcGNIYW5kbGUpCi17Ci0gICAgbV9zd09y
aWdpblRhYmxlLT5zZXRTaGFyZWRNZW1vcnkoaXBjSGFuZGxlLmhhbmRsZSk7Ci19Ci0KLXZvaWQg
V2ViU1dDbGllbnRDb25uZWN0aW9uOjpzZXRTV09yaWdpblRhYmxlSXNJbXBvcnRlZCgpCi17Ci0g
ICAgbV9zd09yaWdpblRhYmxlLT5zZXRJc0ltcG9ydGVkKCk7Ci0gICAgd2hpbGUgKCFtX3Rhc2tz
UGVuZGluZ09yaWdpbkltcG9ydC5pc0VtcHR5KCkpCi0gICAgICAgIG1fdGFza3NQZW5kaW5nT3Jp
Z2luSW1wb3J0LnRha2VGaXJzdCgpKCk7Ci19Ci0KIHZvaWQgV2ViU1dDbGllbnRDb25uZWN0aW9u
OjptYXRjaFJlZ2lzdHJhdGlvbihTZWN1cml0eU9yaWdpbkRhdGEmJiB0b3BPcmlnaW4sIGNvbnN0
IFVSTCYgY2xpZW50VVJMLCBSZWdpc3RyYXRpb25DYWxsYmFjayYmIGNhbGxiYWNrKQogewogICAg
IEFTU0VSVChpc01haW5SdW5Mb29wKCkpOwotCi0gICAgaWYgKCFtYXlIYXZlU2VydmljZVdvcmtl
clJlZ2lzdGVyZWRGb3JPcmlnaW4odG9wT3JpZ2luKSkgewotICAgICAgICBjYWxsYmFjayhzdGQ6
Om51bGxvcHQpOwotICAgICAgICByZXR1cm47Ci0gICAgfQotCi0gICAgcnVuT3JEZWxheVRhc2tG
b3JJbXBvcnQoW3RoaXMsIGNhbGxiYWNrID0gV1RGTW92ZShjYWxsYmFjayksIHRvcE9yaWdpbiA9
IFdURk1vdmUodG9wT3JpZ2luKSwgY2xpZW50VVJMXSgpIG11dGFibGUgewotICAgICAgICBzZW5k
V2l0aEFzeW5jUmVwbHkoTWVzc2FnZXM6OldlYlNXU2VydmVyQ29ubmVjdGlvbjo6TWF0Y2hSZWdp
c3RyYXRpb24geyB0b3BPcmlnaW4sIGNsaWVudFVSTCB9LCBXVEZNb3ZlKGNhbGxiYWNrKSk7Ci0g
ICAgfSk7Ci19Ci0KLXZvaWQgV2ViU1dDbGllbnRDb25uZWN0aW9uOjpydW5PckRlbGF5VGFza0Zv
ckltcG9ydChGdW5jdGlvbjx2b2lkKCk+JiYgdGFzaykKLXsKLSAgICBpZiAobV9zd09yaWdpblRh
YmxlLT5pc0ltcG9ydGVkKCkpIHsKLSAgICAgICAgdGFzaygpOwotICAgICAgICByZXR1cm47Ci0g
ICAgfQotICAgIG1fdGFza3NQZW5kaW5nT3JpZ2luSW1wb3J0LmFwcGVuZChXVEZNb3ZlKHRhc2sp
KTsKKyAgICBzZW5kV2l0aEFzeW5jUmVwbHkoTWVzc2FnZXM6OldlYlNXU2VydmVyQ29ubmVjdGlv
bjo6TWF0Y2hSZWdpc3RyYXRpb24geyB0b3BPcmlnaW4sIGNsaWVudFVSTCB9LCBXVEZNb3ZlKGNh
bGxiYWNrKSk7CiB9CiAKIHZvaWQgV2ViU1dDbGllbnRDb25uZWN0aW9uOjp3aGVuUmVnaXN0cmF0
aW9uUmVhZHkoY29uc3QgU2VjdXJpdHlPcmlnaW5EYXRhJiB0b3BPcmlnaW4sIGNvbnN0IFVSTCYg
Y2xpZW50VVJMLCBXaGVuUmVnaXN0cmF0aW9uUmVhZHlDYWxsYmFjayYmIGNhbGxiYWNrKQpAQCAt
MTk5LDE1ICsxNTgsNyBAQCB2b2lkIFdlYlNXQ2xpZW50Q29ubmVjdGlvbjo6c2V0U2VydmljZVdv
cmtlckNsaWVudElzQ29udHJvbGxlZChTY3JpcHRFeGVjdXRpb25Dbwogdm9pZCBXZWJTV0NsaWVu
dENvbm5lY3Rpb246OmdldFJlZ2lzdHJhdGlvbnMoU2VjdXJpdHlPcmlnaW5EYXRhJiYgdG9wT3Jp
Z2luLCBjb25zdCBVUkwmIGNsaWVudFVSTCwgR2V0UmVnaXN0cmF0aW9uc0NhbGxiYWNrJiYgY2Fs
bGJhY2spCiB7CiAgICAgQVNTRVJUKGlzTWFpblJ1bkxvb3AoKSk7Ci0KLSAgICBpZiAoIW1heUhh
dmVTZXJ2aWNlV29ya2VyUmVnaXN0ZXJlZEZvck9yaWdpbih0b3BPcmlnaW4pKSB7Ci0gICAgICAg
IGNhbGxiYWNrKHsgfSk7Ci0gICAgICAgIHJldHVybjsKLSAgICB9Ci0KLSAgICBydW5PckRlbGF5
VGFza0ZvckltcG9ydChbdGhpcywgY2FsbGJhY2sgPSBXVEZNb3ZlKGNhbGxiYWNrKSwgdG9wT3Jp
Z2luID0gV1RGTW92ZSh0b3BPcmlnaW4pLCBjbGllbnRVUkxdKCkgbXV0YWJsZSB7Ci0gICAgICAg
IHNlbmRXaXRoQXN5bmNSZXBseShNZXNzYWdlczo6V2ViU1dTZXJ2ZXJDb25uZWN0aW9uOjpHZXRS
ZWdpc3RyYXRpb25zIHsgdG9wT3JpZ2luLCBjbGllbnRVUkwgfSwgV1RGTW92ZShjYWxsYmFjaykp
OwotICAgIH0pOworICAgIHNlbmRXaXRoQXN5bmNSZXBseShNZXNzYWdlczo6V2ViU1dTZXJ2ZXJD
b25uZWN0aW9uOjpHZXRSZWdpc3RyYXRpb25zIHsgdG9wT3JpZ2luLCBjbGllbnRVUkwgfSwgV1RG
TW92ZShjYWxsYmFjaykpOwogfQogCiB2b2lkIFdlYlNXQ2xpZW50Q29ubmVjdGlvbjo6Y29ubmVj
dGlvblRvU2VydmVyTG9zdCgpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
U3RvcmFnZS9XZWJTV0NsaWVudENvbm5lY3Rpb24uaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9TdG9yYWdlL1dlYlNXQ2xpZW50Q29ubmVjdGlvbi5oCmluZGV4IGJiOWUwMGE5NmNjNmNmMzRh
MTk0ZTRmOTZkYjExZjg4ZmRiMTU3YTYuLmNiZDM4MzRhZjE5NjdjZDRiZDQ5MzdlYjFkMmM2NWIz
Yzg3MTJmMGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9TdG9yYWdlL1dl
YlNXQ2xpZW50Q29ubmVjdGlvbi5oCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9TdG9y
YWdlL1dlYlNXQ2xpZW50Q29ubmVjdGlvbi5oCkBAIC00Miw3ICs0Miw2IEBAIGNsYXNzIFJlc291
cmNlTG9hZGVyOwogCiBuYW1lc3BhY2UgV2ViS2l0IHsKIAotY2xhc3MgV2ViU1dPcmlnaW5UYWJs
ZTsKIGNsYXNzIFdlYlNlcnZpY2VXb3JrZXJQcm92aWRlcjsKIAogY2xhc3MgV2ViU1dDbGllbnRD
b25uZWN0aW9uIGZpbmFsIDogcHVibGljIFdlYkNvcmU6OlNXQ2xpZW50Q29ubmVjdGlvbiwgcHJp
dmF0ZSBJUEM6Ok1lc3NhZ2VTZW5kZXIsIHB1YmxpYyBJUEM6Ok1lc3NhZ2VSZWNlaXZlciB7CkBA
IC01OCw4ICs1Nyw2IEBAIHB1YmxpYzoKICAgICB2b2lkIGRpc2Nvbm5lY3RlZEZyb21XZWJQcm9j
ZXNzKCk7CiAgICAgdm9pZCBkaWRSZWNlaXZlTWVzc2FnZShJUEM6OkNvbm5lY3Rpb24mLCBJUEM6
OkRlY29kZXImKSBmaW5hbDsKIAotICAgIGJvb2wgbWF5SGF2ZVNlcnZpY2VXb3JrZXJSZWdpc3Rl
cmVkRm9yT3JpZ2luKGNvbnN0IFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0YSYpIGNvbnN0IGZp
bmFsOwotCiAgICAgdm9pZCBjb25uZWN0aW9uVG9TZXJ2ZXJMb3N0KCk7CiAKICAgICBib29sIGlz
VGhyb3R0bGVhYmxlKCkgY29uc3QgeyByZXR1cm4gbV9pc1Rocm90dGxlYWJsZTsgfQpAQCAtMTEw
LDE2ICsxMDcsMTAgQEAgcHJpdmF0ZToKICAgICBJUEM6OkNvbm5lY3Rpb24qIG1lc3NhZ2VTZW5k
ZXJDb25uZWN0aW9uKCkgY29uc3QgZmluYWw7CiAgICAgdWludDY0X3QgbWVzc2FnZVNlbmRlckRl
c3RpbmF0aW9uSUQoKSBjb25zdCBmaW5hbCB7IHJldHVybiAwOyB9CiAKLSAgICB2b2lkIHNldFNX
T3JpZ2luVGFibGVTaGFyZWRNZW1vcnkoY29uc3QgU2hhcmVkTWVtb3J5OjpJUENIYW5kbGUmKTsK
LSAgICB2b2lkIHNldFNXT3JpZ2luVGFibGVJc0ltcG9ydGVkKCk7Ci0KICAgICB2b2lkIGNsZWFy
KCk7CiAKICAgICBXZWJDb3JlOjpTV1NlcnZlckNvbm5lY3Rpb25JZGVudGlmaWVyIG1faWRlbnRp
ZmllcjsKIAotICAgIFVuaXF1ZVJlZjxXZWJTV09yaWdpblRhYmxlPiBtX3N3T3JpZ2luVGFibGU7
Ci0KLSAgICBEZXF1ZTxGdW5jdGlvbjx2b2lkKCk+PiBtX3Rhc2tzUGVuZGluZ09yaWdpbkltcG9y
dDsKICAgICBib29sIG1faXNUaHJvdHRsZWFibGUgeyB0cnVlIH07CiB9OyAvLyBjbGFzcyBXZWJT
V1NlcnZlckNvbm5lY3Rpb24KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L1N0b3JhZ2UvV2ViU1dDbGllbnRDb25uZWN0aW9uLm1lc3NhZ2VzLmluIGIvU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL1N0b3JhZ2UvV2ViU1dDbGllbnRDb25uZWN0aW9uLm1lc3NhZ2VzLmluCmlu
ZGV4IGI0Yzc2OTVkMmFjYTk1NGNiOGYxMTkzYzJiMWQxOWJjMmFlZmFhMmEuLjUwNWIwYWFiYWM3
M2UxNDlmNWM3ZGQ4N2EzZTYzOTc5MzA0NzRmMzEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9TdG9yYWdlL1dlYlNXQ2xpZW50Q29ubmVjdGlvbi5tZXNzYWdlcy5pbgorKysg
Yi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvU3RvcmFnZS9XZWJTV0NsaWVudENvbm5lY3Rpb24u
bWVzc2FnZXMuaW4KQEAgLTM1LDggKzM1LDYgQEAgbWVzc2FnZXMgLT4gV2ViU1dDbGllbnRDb25u
ZWN0aW9uIHsKICAgICBTZXRSZWdpc3RyYXRpb25VcGRhdGVWaWFDYWNoZShXZWJDb3JlOjpTZXJ2
aWNlV29ya2VyUmVnaXN0cmF0aW9uSWRlbnRpZmllciBpZGVudGlmaWVyLCBlbnVtOnVpbnQ4X3Qg
V2ViQ29yZTo6U2VydmljZVdvcmtlclVwZGF0ZVZpYUNhY2hlIHVwZGF0ZVZpYUNhY2hlKTsKICAg
ICBOb3RpZnlDbGllbnRzT2ZDb250cm9sbGVyQ2hhbmdlKEhhc2hTZXQ8V2ViQ29yZTo6U2NyaXB0
RXhlY3V0aW9uQ29udGV4dElkZW50aWZpZXI+IGNvbnRleHRJZGVudGlmaWVycywgc3RydWN0IFdl
YkNvcmU6OlNlcnZpY2VXb3JrZXJEYXRhIG5ld0NvbnRyb2xsZXIpCiAKLSAgICBTZXRTV09yaWdp
blRhYmxlSXNJbXBvcnRlZCgpCi0gICAgU2V0U1dPcmlnaW5UYWJsZVNoYXJlZE1lbW9yeShXZWJL
aXQ6OlNoYXJlZE1lbW9yeTo6SVBDSGFuZGxlIGhhbmRsZSkKICAgICBQb3N0TWVzc2FnZVRvU2Vy
dmljZVdvcmtlckNsaWVudChXZWJDb3JlOjpTY3JpcHRFeGVjdXRpb25Db250ZXh0SWRlbnRpZmll
ciBkZXN0aW5hdGlvbkNvbnRleHRJZGVudGlmaWVyLCBzdHJ1Y3QgV2ViQ29yZTo6TWVzc2FnZVdp
dGhNZXNzYWdlUG9ydHMgbWVzc2FnZSwgc3RydWN0IFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJEYXRh
IHNvdXJjZSwgU3RyaW5nIHNvdXJjZU9yaWdpbikKIAogICAgIFNldFNlcnZpY2VXb3JrZXJDbGll
bnRJc0NvbnRyb2xsZWQoV2ViQ29yZTo6U2NyaXB0RXhlY3V0aW9uQ29udGV4dElkZW50aWZpZXIg
d29ya2VySWRlbnRpZmllciwgc3RydWN0IFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJSZWdpc3RyYXRp
b25EYXRhIGRhdGEpIC0+IChib29sIGlzU3VjY2VzcykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9TdG9yYWdlL1dlYlNXT3JpZ2luVGFibGUuY3BwIGIvU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL1N0b3JhZ2UvV2ViU1dPcmlnaW5UYWJsZS5jcHAKZGVsZXRlZCBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDA2ODExODlhNGE1YzQxNjA2NzIwN2RjMjkwYmI5MzljZDFjZTY3ZTIu
LjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL1N0b3JhZ2UvV2ViU1dPcmlnaW5UYWJsZS5jcHAKKysrIC9kZXYvbnVs
bApAQCAtMSw1MiArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDE3IEFwcGxlIEluYy4g
QWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNv
dXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwg
YXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICog
YXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFp
biB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMg
aW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyIGluIHRoZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHBy
b3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBS
T1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCi0gKiBB
TkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywKLSAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZ
IEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQu
IElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUwotICogQkUg
TElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhF
TVBMQVJZLCBPUgotICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKLSAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklD
RVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUwotICogSU5URVJS
VVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdI
RVRIRVIgSU4KLSAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJ
TkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCi0gKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9G
IFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCi0gKiBUSEUgUE9T
U0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0gKi8KLQotI2luY2x1ZGUgImNvbmZpZy5oIgotCi0j
aWYgRU5BQkxFKFNFUlZJQ0VfV09SS0VSKQotI2luY2x1ZGUgIldlYlNXT3JpZ2luVGFibGUuaCIK
LQotI2luY2x1ZGUgPFdlYkNvcmUvU2VjdXJpdHlPcmlnaW4uaD4KLQotbmFtZXNwYWNlIFdlYktp
dCB7Ci11c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKLQotYm9vbCBXZWJTV09yaWdpblRhYmxlOjpj
b250YWlucyhjb25zdCBTZWN1cml0eU9yaWdpbkRhdGEmIG9yaWdpbikgY29uc3QKLXsKLSAgICBy
ZXR1cm4gbV9zZXJ2aWNlV29ya2VyT3JpZ2luVGFibGUuY29udGFpbnMoY29tcHV0ZVNoYXJlZFN0
cmluZ0hhc2gob3JpZ2luLnRvU3RyaW5nKCkpKTsKLX0KLQotdm9pZCBXZWJTV09yaWdpblRhYmxl
OjpzZXRTaGFyZWRNZW1vcnkoY29uc3QgU2hhcmVkTWVtb3J5OjpIYW5kbGUmIGhhbmRsZSkKLXsK
LSAgICBhdXRvIHNoYXJlZE1lbW9yeSA9IFNoYXJlZE1lbW9yeTo6bWFwKGhhbmRsZSwgU2hhcmVk
TWVtb3J5OjpQcm90ZWN0aW9uOjpSZWFkT25seSk7Ci0gICAgaWYgKCFzaGFyZWRNZW1vcnkpCi0g
ICAgICAgIHJldHVybjsKLQotICAgIG1fc2VydmljZVdvcmtlck9yaWdpblRhYmxlLnNldFNoYXJl
ZE1lbW9yeShzaGFyZWRNZW1vcnkucmVsZWFzZU5vbk51bGwoKSk7Ci19Ci0KLX0gLy8gbmFtZXNw
YWNlIFdlYktpdAotCi0jZW5kaWYgLy8gRU5BQkxFKFNFUlZJQ0VfV09SS0VSKQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1N0b3JhZ2UvV2ViU1dPcmlnaW5UYWJsZS5oIGIv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1N0b3JhZ2UvV2ViU1dPcmlnaW5UYWJsZS5oCmRlbGV0
ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA5MzBlNDYxODE5ZTE4NmY1YTgwZDhmNjcxNmZiMTE4
YzRkYzBlYTg2Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBh
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9TdG9yYWdlL1dlYlNXT3JpZ2luVGFibGUuaAorKysg
L2Rldi9udWxsCkBAIC0xLDU2ICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTcgQXBw
bGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1
c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZp
Y2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRp
b25zCi0gKiBhcmUgbWV0OgotICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11
c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlzdHJp
YnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0
Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRl
cmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdB
UkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElT
JycKLSAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLAotICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFO
VEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgotICogUFVSUE9TRSBBUkUgRElT
Q0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JT
Ci0gKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVD
SUFMLCBFWEVNUExBUlksIE9SCi0gKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgotICogU1VCU1RJVFVURSBHT09EUyBP
UiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCi0g
KiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJ
TElUWSwgV0hFVEhFUiBJTgotICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQg
KElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKLSAqIEFSSVNJTkcgSU4gQU5ZIFdB
WSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKLSAq
IFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLSAqLwotCi0jcHJhZ21hIG9uY2UKLQot
I2lmIEVOQUJMRShTRVJWSUNFX1dPUktFUikKLQotI2luY2x1ZGUgIlNoYXJlZE1lbW9yeS5oIgot
I2luY2x1ZGUgIlNoYXJlZFN0cmluZ0hhc2hUYWJsZVJlYWRPbmx5LmgiCi0KLW5hbWVzcGFjZSBX
ZWJDb3JlIHsKLXN0cnVjdCBTZWN1cml0eU9yaWdpbkRhdGE7Ci19Ci0KLW5hbWVzcGFjZSBXZWJL
aXQgewotCi1jbGFzcyBXZWJTV09yaWdpblRhYmxlIHsKLSAgICBXVEZfTUFLRV9GQVNUX0FMTE9D
QVRFRDsKLXB1YmxpYzoKLSAgICBXZWJTV09yaWdpblRhYmxlKCkgPSBkZWZhdWx0OwotCi0gICAg
Ym9vbCBpc0ltcG9ydGVkKCkgY29uc3QgeyByZXR1cm4gbV9pc0ltcG9ydGVkOyB9Ci0gICAgdm9p
ZCBzZXRJc0ltcG9ydGVkKCkgeyBtX2lzSW1wb3J0ZWQgPSB0cnVlOyB9Ci0gICAgYm9vbCBjb250
YWlucyhjb25zdCBXZWJDb3JlOjpTZWN1cml0eU9yaWdpbkRhdGEmKSBjb25zdDsKLSAgICB2b2lk
IHNldFNoYXJlZE1lbW9yeShjb25zdCBTaGFyZWRNZW1vcnk6OkhhbmRsZSYpOwotCi1wcml2YXRl
OgotICAgIFNoYXJlZFN0cmluZ0hhc2hUYWJsZVJlYWRPbmx5IG1fc2VydmljZVdvcmtlck9yaWdp
blRhYmxlOwotICAgIGJvb2wgbV9pc0ltcG9ydGVkIHsgZmFsc2UgfTsKLX07Ci0KLX0gLy8gbmFt
ZXNwYWNlIFdlYktpdAotCi0jZW5kaWYgLy8gRU5BQkxFKFNFUlZJQ0VfV09SS0VSKQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1N0b3JhZ2UvV2ViU2hhcmVkV29ya2VyQ29u
dGV4dE1hbmFnZXJDb25uZWN0aW9uLmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9TdG9y
YWdlL1dlYlNoYXJlZFdvcmtlckNvbnRleHRNYW5hZ2VyQ29ubmVjdGlvbi5jcHAKaW5kZXggOWY4
ODM1NGZiMjU4YjljZWEzNTIxZmRhMjgwOWE5NWJkNGE5MGZlMi4uZjczMDY2MWJhOGI4OWE4NDQw
N2Y3MmMzOGVjZjU3MzQwZjU4M2M4MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL1N0b3JhZ2UvV2ViU2hhcmVkV29ya2VyQ29udGV4dE1hbmFnZXJDb25uZWN0aW9uLmNwcAor
KysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvU3RvcmFnZS9XZWJTaGFyZWRXb3JrZXJDb250
ZXh0TWFuYWdlckNvbm5lY3Rpb24uY3BwCkBAIC00Myw2ICs0Myw3IEBACiAjaW5jbHVkZSA8V2Vi
Q29yZS9FbXB0eUNsaWVudHMuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1BhZ2UuaD4KICNpbmNsdWRl
IDxXZWJDb3JlL1BhZ2VDb25maWd1cmF0aW9uLmg+CisjaW5jbHVkZSA8V2ViQ29yZS9TY3JpcHRF
eGVjdXRpb25Db250ZXh0SWRlbnRpZmllci5oPgogI2luY2x1ZGUgPFdlYkNvcmUvU2hhcmVkV29y
a2VyQ29udGV4dE1hbmFnZXIuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1NoYXJlZFdvcmtlclRocmVh
ZFByb3h5Lmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9Vc2VyQWdlbnQuaD4K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>458790</attachid>
            <date>2022-05-04 06:01:19 -0700</date>
            <delta_ts>2022-05-11 06:11:44 -0700</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-240003-20220504150115.patch</filename>
            <type>text/plain</type>
            <size>62489</size>
            <attacher name="youenn fablet">youennf</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjkzNzY3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYzYxNmVmNTZhZmIwMDI5
MjI3YjQ3MGE0NThiYjZlN2ZjYjJkMmRkZC4uZTRiNjUzMDg3YjUzOGNkMzJmNzM3MjI2MmMwZGEw
NWNkNTMwNGNiZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI0IEBACisyMDIyLTA1LTA0ICBZb3Vl
bm4gRmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KKworICAgICAgICBTV09yaWdpblN0b3JlIGlz
IG5vIGxvbmdlciBuZWVkZWQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTI0MDAwMworCisgICAgICAgIFJldmlld2VkIGJ5IENocmlzIER1bWV6LgorCisg
ICAgICAgIENvdmVyZWQgYnkgZXhpc3RpbmcgdGVzdHMuCisKKyAgICAgICAgKiBIZWFkZXJzLmNt
YWtlOgorICAgICAgICAqIFNvdXJjZXMudHh0OgorICAgICAgICAqIFdlYkNvcmUueGNvZGVwcm9q
L3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBsb2FkZXIvRG9jdW1lbnRMb2FkZXIuY3BwOgor
ICAgICAgICAqIHdvcmtlcnMvc2VydmljZS9TV0NsaWVudENvbm5lY3Rpb24uaDoKKyAgICAgICAg
KiB3b3JrZXJzL3NlcnZpY2UvV29ya2VyU1dDbGllbnRDb25uZWN0aW9uLmNwcDoKKyAgICAgICAg
KiB3b3JrZXJzL3NlcnZpY2UvV29ya2VyU1dDbGllbnRDb25uZWN0aW9uLmg6CisgICAgICAgICog
d29ya2Vycy9zZXJ2aWNlL3NlcnZlci9TV09yaWdpblN0b3JlLmNwcDogUmVtb3ZlZC4KKyAgICAg
ICAgKiB3b3JrZXJzL3NlcnZpY2Uvc2VydmVyL1NXT3JpZ2luU3RvcmUuaDogUmVtb3ZlZC4KKyAg
ICAgICAgKiB3b3JrZXJzL3NlcnZpY2Uvc2VydmVyL1NXU2VydmVyLmNwcDoKKyAgICAgICAgKiB3
b3JrZXJzL3NlcnZpY2Uvc2VydmVyL1NXU2VydmVyLmg6CisKIDIwMjItMDUtMDQgIE1lZ2FuIEdh
cmRuZXIgIDxtZWdhbl9nYXJkbmVyQGFwcGxlLmNvbT4KIAogICAgICAgICBFbmFibGUgVGV4dENo
ZWNraW5nVHlwZTo6Q29ycmVjdGlvbiBvbiBNYWNDYXRhbHlzdC4KZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKaW5kZXggYjc4NmFh
ZWNiYzAzMmJiMjIzMmE1Nzc2ODdjMWI3MWQ0YWQ5MjI4Ni4uMzA2Njg4ZDQ3MDg0MzQ1YTA4YWQy
Mzc5NjY5YzNlMmI4MTA5YjAyNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cK
KysrIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyNiBAQAorMjAyMi0wNS0w
NCAgWW91ZW5uIEZhYmxldCAgPHlvdWVubkBhcHBsZS5jb20+CisKKyAgICAgICAgU1dPcmlnaW5T
dG9yZSBpcyBubyBsb25nZXIgbmVlZGVkCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD0yNDAwMDMKKworICAgICAgICBSZXZpZXdlZCBieSBDaHJpcyBEdW1l
ei4KKworICAgICAgICBObyBvYnNlcnZhYmxlIGNoYW5nZSwgd2UgcmVtb3ZlIHRoZSBTV09yaWdp
biBvcHRpbWl6YXRpb24gYXMgaXRzIG1haW4gcmVtYWluaW5nIHVzZQorICAgICAgICBpcyB0byBv
cHRpbWl6ZSB0aGUgY2FzZSBvZiBhIHBhZ2UgYmVpbmcgbG9hZGVkIGJ5IHNlcnZpY2Ugd29ya2Vy
IGluc3RlYWQgb2YgYXBwIGNhY2hlIHdoaWNoIGlzIGEgdGlueSBlZGdlIGNhc2UuCisKKyAgICAg
ICAgKiBOZXR3b3JrUHJvY2Vzcy9OZXR3b3JrU2Vzc2lvbi5jcHA6CisgICAgICAgICogTmV0d29y
a1Byb2Nlc3MvTmV0d29ya1Nlc3Npb24uaDoKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9TZXJ2
aWNlV29ya2VyL1dlYlNXT3JpZ2luU3RvcmUuY3BwOiBSZW1vdmVkLgorICAgICAgICAqIE5ldHdv
cmtQcm9jZXNzL1NlcnZpY2VXb3JrZXIvV2ViU1dPcmlnaW5TdG9yZS5oOiBSZW1vdmVkLgorICAg
ICAgICAqIE5ldHdvcmtQcm9jZXNzL1NlcnZpY2VXb3JrZXIvV2ViU1dTZXJ2ZXJDb25uZWN0aW9u
LmNwcDoKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9TZXJ2aWNlV29ya2VyL1dlYlNXU2VydmVy
Q29ubmVjdGlvbi5oOgorICAgICAgICAqIFdlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9q
OgorICAgICAgICAqIFdlYlByb2Nlc3MvU3RvcmFnZS9XZWJTV0NsaWVudENvbm5lY3Rpb24uY3Bw
OgorICAgICAgICAqIFdlYlByb2Nlc3MvU3RvcmFnZS9XZWJTV0NsaWVudENvbm5lY3Rpb24uaDoK
KyAgICAgICAgKiBXZWJQcm9jZXNzL1N0b3JhZ2UvV2ViU1dDbGllbnRDb25uZWN0aW9uLm1lc3Nh
Z2VzLmluOgorICAgICAgICAqIFdlYlByb2Nlc3MvU3RvcmFnZS9XZWJTV09yaWdpblRhYmxlLmNw
cDogUmVtb3ZlZC4KKyAgICAgICAgKiBXZWJQcm9jZXNzL1N0b3JhZ2UvV2ViU1dPcmlnaW5UYWJs
ZS5oOiBSZW1vdmVkLgorCiAyMDIyLTA1LTA0ICBNZWdhbiBHYXJkbmVyICA8bWVnYW5fZ2FyZG5l
ckBhcHBsZS5jb20+CiAKICAgICAgICAgRW5hYmxlIFRleHRDaGVja2luZ1R5cGU6OkNvcnJlY3Rp
b24gb24gTWFjQ2F0YWx5c3QuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9IZWFkZXJzLmNt
YWtlIGIvU291cmNlL1dlYkNvcmUvSGVhZGVycy5jbWFrZQppbmRleCBkMDYwYWQ5ZjMxYWQyZTYx
NDgzNzk1MjM3MGJhNTAwMTE5ZDBhYWM0Li44NDdkNGZkZDM0OTZiZGNhYTQxMWI1NGE2ZDMyMGVm
NTAzYWMyMWU0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9IZWFkZXJzLmNtYWtlCisrKyBi
L1NvdXJjZS9XZWJDb3JlL0hlYWRlcnMuY21ha2UKQEAgLTIwNDMsNyArMjA0Myw2IEBAIHNldChX
ZWJDb3JlX1BSSVZBVEVfRlJBTUVXT1JLX0hFQURFUlMKICAgICB3b3JrZXJzL3NlcnZpY2UvY29u
dGV4dC9TZXJ2aWNlV29ya2VyVGhyZWFkUHJveHkuaAogCiAgICAgd29ya2Vycy9zZXJ2aWNlL3Nl
cnZlci9SZWdpc3RyYXRpb25EYXRhYmFzZS5oCi0gICAgd29ya2Vycy9zZXJ2aWNlL3NlcnZlci9T
V09yaWdpblN0b3JlLmgKICAgICB3b3JrZXJzL3NlcnZpY2Uvc2VydmVyL1NXU2VydmVyLmgKICAg
ICB3b3JrZXJzL3NlcnZpY2Uvc2VydmVyL1NXU2VydmVyUmVnaXN0cmF0aW9uLmgKICAgICB3b3Jr
ZXJzL3NlcnZpY2Uvc2VydmVyL1NXU2VydmVyVG9Db250ZXh0Q29ubmVjdGlvbi5oCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2VzLnR4dCBiL1NvdXJjZS9XZWJDb3JlL1NvdXJjZXMu
dHh0CmluZGV4IDI5NjhjMGM4ZWNlNWE4NTExNTZhMDE3MzE1NjIxYjViMTczZDg1ZWUuLjUxMjcy
OTk0OTQ5YjIwNzYzN2Y2NGRlNTg2NjUzYzRjZWZlNDI5YzYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL1NvdXJjZXMudHh0CisrKyBiL1NvdXJjZS9XZWJDb3JlL1NvdXJjZXMudHh0CkBAIC0y
ODAxLDcgKzI4MDEsNiBAQCB3b3JrZXJzL3NlcnZpY2UvY29udGV4dC9TZXJ2aWNlV29ya2VyVGhy
ZWFkLmNwcAogd29ya2Vycy9zZXJ2aWNlL2NvbnRleHQvU2VydmljZVdvcmtlclRocmVhZFByb3h5
LmNwcAogd29ya2Vycy9zZXJ2aWNlL3NlcnZlci9SZWdpc3RyYXRpb25EYXRhYmFzZS5jcHAKIHdv
cmtlcnMvc2VydmljZS9zZXJ2ZXIvUmVnaXN0cmF0aW9uU3RvcmUuY3BwCi13b3JrZXJzL3NlcnZp
Y2Uvc2VydmVyL1NXT3JpZ2luU3RvcmUuY3BwCiB3b3JrZXJzL3NlcnZpY2Uvc2VydmVyL1NXU2Ny
aXB0U3RvcmFnZS5jcHAKIHdvcmtlcnMvc2VydmljZS9zZXJ2ZXIvU1dTZXJ2ZXIuY3BwCiB3b3Jr
ZXJzL3NlcnZpY2Uvc2VydmVyL1NXU2VydmVySm9iUXVldWUuY3BwCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvV2Vi
Q29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggOWJhMWI4MjAzNTJj
MTRkOTYwNjYzM2YzMDFmOWQ0NTM3MjhlMmUyNS4uZWY0MDZkZjA5MGZiODhjY2MwNzg1NDcyMzE2
YWMxOTMwMTY1ZWY3ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXBy
b2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9q
L3Byb2plY3QucGJ4cHJvagpAQCAtMTExNSw3ICsxMTE1LDYgQEAKIAkJNDE1MDgwMzcxRTNGMDBC
MDAwNTFENzVEIC8qIExpYldlYlJUQ0F1ZGlvTW9kdWxlLmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0MTUwODAzNTFFM0YwMEFBMDA1MUQ3NUQgLyogTGli
V2ViUlRDQXVkaW9Nb2R1bGUuaCAqLzsgfTsKIAkJNDE1MEY5RjExMkI2RTBFNzAwMDhDODYwIC8q
IFNsaWRlclRodW1iRWxlbWVudC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gNDE1MEY5RUYxMkI2RTBFNzAwMDhDODYwIC8qIFNsaWRlclRodW1iRWxlbWVu
dC5oICovOyB9OwogCQk0MTUxOUNCODFGRDFGMDJFMDA3RjYyM0MgLyogU2VydmljZVdvcmtlckNs
aWVudFF1ZXJ5T3B0aW9ucy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gNDEzRkM0Q0QxRkQxREQ4QzAwNTQxQzRCIC8qIFNlcnZpY2VXb3JrZXJDbGllbnRR
dWVyeU9wdGlvbnMuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9
OyB9OwotCQk0MTUxRTVCQjFGQkE0QzdBMDBFNDdFMkQgLyogU1dPcmlnaW5TdG9yZS5oIGluIEhl
YWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDE1MUU1QjcxRkJBNEM3
NTAwRTQ3RTJEIC8qIFNXT3JpZ2luU3RvcmUuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9
IChQcml2YXRlLCApOyB9OyB9OwogCQk0MTU3NDc0NzFFMzg2OUE0MDBFOTE0RDggLyogTGliV2Vi
UlRDTWFjcm9zLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSA0MTU3NDc0MzFFMzg2OTlFMDBFOTE0RDggLyogTGliV2ViUlRDTWFjcm9zLmggKi87IHNldHRp
bmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJNDE1NzQ3NDgxRTM4NjlB
NzAwRTkxNEQ4IC8qIExpYldlYlJUQ1Byb3ZpZGVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0MTU3NDc0NDFFMzg2OTlFMDBFOTE0RDggLyogTGliV2Vi
UlRDUHJvdmlkZXIuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9
OyB9OwogCQk0MTU3RUJGQTFFM0FCNjc5MDBBQzlGRTkgLyogTW9ja0xpYldlYlJUQ1BlZXJDb25u
ZWN0aW9uLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDQxNTdFQkY5MUUzQUIwNjgwMEFDOUZFOSAvKiBNb2NrTGliV2ViUlRDUGVlckNvbm5lY3Rpb24u
Y3BwICovOyB9OwpAQCAtODcwOCw4ICs4NzA3LDYgQEAKIAkJNDE1MDgwMzUxRTNGMDBBQTAwNTFE
NzVEIC8qIExpYldlYlJUQ0F1ZGlvTW9kdWxlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsg
bmFtZSA9IExpYldlYlJUQ0F1ZGlvTW9kdWxlLmg7IHBhdGggPSBsaWJ3ZWJydGMvTGliV2ViUlRD
QXVkaW9Nb2R1bGUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDE1MEY5RUYxMkI2
RTBFNzAwMDhDODYwIC8qIFNsaWRlclRodW1iRWxlbWVudC5oICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jLmg7IHBhdGggPSBTbGlkZXJUaHVtYkVsZW1lbnQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJNDE1MEY5RjAxMkI2RTBFNzAwMDhDODYwIC8qIFNsaWRlclRodW1iRWxlbWVudC5j
cHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBTbGlkZXJUaHVtYkVsZW1l
bnQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQk0MTUxRTVCNzFGQkE0Qzc1MDBF
NDdFMkQgLyogU1dPcmlnaW5TdG9yZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGgg
PSBTV09yaWdpblN0b3JlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTQxNTFFNUI5
MUZCQTRDNzYwMEU0N0UyRCAvKiBTV09yaWdpblN0b3JlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuY3BwLmNwcDsgcGF0aCA9IFNXT3JpZ2luU3RvcmUuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwogCQk0MTU3NDc0MzFFMzg2OTlFMDBFOTE0RDggLyogTGliV2ViUlRDTWFjcm9zLmgg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IExpYldlYlJUQ01hY3Jvcy5oOyBwYXRo
ID0gbGlid2VicnRjL0xpYldlYlJUQ01hY3Jvcy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwogCQk0MTU3NDc0NDFFMzg2OTlFMDBFOTE0RDggLyogTGliV2ViUlRDUHJvdmlkZXIuaCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gTGliV2ViUlRDUHJvdmlkZXIuaDsgcGF0aCA9
IGxpYndlYnJ0Yy9MaWJXZWJSVENQcm92aWRlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwogCQk0MTU3RUJGODFFM0FCMDY4MDBBQzlGRTkgLyogTW9ja0xpYldlYlJUQ1BlZXJDb25uZWN0
aW9uLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IE1vY2tMaWJXZWJSVENQZWVy
Q29ubmVjdGlvbi5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMjI0MjYsOCArMjI0
MjMsNiBAQAogCQkJCTUxQjkxNDBDMUZEMjc4MjUwMEVFMjg1OSAvKiBSZWdpc3RyYXRpb25EYXRh
YmFzZS5oICovLAogCQkJCTUxQjkxNDBFMUZEMjc4MjUwMEVFMjg1OSAvKiBSZWdpc3RyYXRpb25T
dG9yZS5jcHAgKi8sCiAJCQkJNTFCOTE0MEIxRkQyNzgyNTAwRUUyODU5IC8qIFJlZ2lzdHJhdGlv
blN0b3JlLmggKi8sCi0JCQkJNDE1MUU1QjkxRkJBNEM3NjAwRTQ3RTJEIC8qIFNXT3JpZ2luU3Rv
cmUuY3BwICovLAotCQkJCTQxNTFFNUI3MUZCQTRDNzUwMEU0N0UyRCAvKiBTV09yaWdpblN0b3Jl
LmggKi8sCiAJCQkJNDYyNzNDQUUyNjBFNTlERjAwNkZBQTkxIC8qIFNXU2NyaXB0U3RvcmFnZS5j
cHAgKi8sCiAJCQkJNDYyNzNDQUMyNjBFNTlERjAwNkZBQTkxIC8qIFNXU2NyaXB0U3RvcmFnZS5o
ICovLAogCQkJCTUxN0E1MkVGMUY0NzUzNTkwMERDREMwQSAvKiBTV1NlcnZlci5jcHAgKi8sCkBA
IC0zNzkxNyw3ICszNzkxMiw2IEBACiAJCQkJNDZFQ0I2MzgxRkQwQTNDODAwODhFNUFEIC8qIFNX
Q2xpZW50Q29ubmVjdGlvbi5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNDY2NThEQzkxRkEyNEI4NzAw
RjdERDU0IC8qIFNXQ29udGV4dE1hbmFnZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCUMxMUE5RUNF
MjE0MDNBNUMwMENGQjIwQSAvKiBTd2l0Y2hpbmdHUFVDbGllbnQuaCBpbiBIZWFkZXJzICovLAot
CQkJCTQxNTFFNUJCMUZCQTRDN0EwMEU0N0UyRCAvKiBTV09yaWdpblN0b3JlLmggaW4gSGVhZGVy
cyAqLywKIAkJCQk0NjI3M0NBRjI2MEU1OUVGMDA2RkFBOTEgLyogU1dTY3JpcHRTdG9yYWdlLmgg
aW4gSGVhZGVycyAqLywKIAkJCQk1MTdBNTJGMDFGNDc1MzVCMDBEQ0RDMEEgLyogU1dTZXJ2ZXIu
aCBpbiBIZWFkZXJzICovLAogCQkJCTgzMTFDMDAzMUZBQTJFOTUwMEUzQzhFNSAvKiBTV1NlcnZl
ckpvYlF1ZXVlLmggaW4gSGVhZGVycyAqLywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xv
YWRlci9Eb2N1bWVudExvYWRlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRG9jdW1lbnRM
b2FkZXIuY3BwCmluZGV4IDk1Y2VhMjYxZTllYjkyNWQxOTQ3YTlmOTViOWQ1Y2RiNmFmMDkyNGYu
LjQ5ZGMwYzBiZmQ3ZmQ2MTkyNmFmZWY1NjYwY2I2ZTNjNmMzMTg5YzcgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2xvYWRlci9Eb2N1bWVudExvYWRlci5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvbG9hZGVyL0RvY3VtZW50TG9hZGVyLmNwcApAQCAtNTc4LDEwICs1NzgsNiBAQCB2b2lkIERv
Y3VtZW50TG9hZGVyOjptYXRjaFJlZ2lzdHJhdGlvbihjb25zdCBVUkwmIHVybCwgU1dDbGllbnRD
b25uZWN0aW9uOjpSZWdpcwogICAgIH0KIAogICAgIGF1dG8gb3JpZ2luID0gKCFtX2ZyYW1lLT5p
c01haW5GcmFtZSgpICYmIG1fZnJhbWUtPmRvY3VtZW50KCkpID8gbV9mcmFtZS0+ZG9jdW1lbnQo
KS0+dG9wT3JpZ2luKCkuZGF0YSgpIDogU2VjdXJpdHlPcmlnaW5EYXRhOjpmcm9tVVJMKHVybCk7
Ci0gICAgaWYgKCFTZXJ2aWNlV29ya2VyUHJvdmlkZXI6OnNpbmdsZXRvbigpLnNlcnZpY2VXb3Jr
ZXJDb25uZWN0aW9uKCkubWF5SGF2ZVNlcnZpY2VXb3JrZXJSZWdpc3RlcmVkRm9yT3JpZ2luKG9y
aWdpbikpIHsKLSAgICAgICAgY2FsbGJhY2soc3RkOjpudWxsb3B0KTsKLSAgICAgICAgcmV0dXJu
OwotICAgIH0KIAogICAgIGF1dG8mIGNvbm5lY3Rpb24gPSBTZXJ2aWNlV29ya2VyUHJvdmlkZXI6
OnNpbmdsZXRvbigpLnNlcnZpY2VXb3JrZXJDb25uZWN0aW9uKCk7CiAgICAgY29ubmVjdGlvbi5t
YXRjaFJlZ2lzdHJhdGlvbihXVEZNb3ZlKG9yaWdpbiksIHVybCwgV1RGTW92ZShjYWxsYmFjaykp
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL1NXQ2xpZW50Q29u
bmVjdGlvbi5oIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL1NXQ2xpZW50Q29ubmVj
dGlvbi5oCmluZGV4IDIzZTA2YzYxZjJlN2Y1MjU4ZGIzNGY4N2QwNDA1YWI2ZTM1MjkzN2IuLjkx
ODkzYmU4NWNhNzU5OTRmZjRhZWEwMzNkYjhjZDBiOGY4NTVjNWEgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9TV0NsaWVudENvbm5lY3Rpb24uaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvU1dDbGllbnRDb25uZWN0aW9uLmgKQEAgLTgzLDcg
KzgzLDYgQEAgcHVibGljOgogICAgIHZpcnR1YWwgdm9pZCBwb3N0TWVzc2FnZVRvU2VydmljZVdv
cmtlcihTZXJ2aWNlV29ya2VySWRlbnRpZmllciBkZXN0aW5hdGlvbiwgTWVzc2FnZVdpdGhNZXNz
YWdlUG9ydHMmJiwgY29uc3QgU2VydmljZVdvcmtlck9yQ2xpZW50SWRlbnRpZmllciYgc291cmNl
KSA9IDA7CiAKICAgICB2aXJ0dWFsIFNXU2VydmVyQ29ubmVjdGlvbklkZW50aWZpZXIgc2VydmVy
Q29ubmVjdGlvbklkZW50aWZpZXIoKSBjb25zdCA9IDA7Ci0gICAgdmlydHVhbCBib29sIG1heUhh
dmVTZXJ2aWNlV29ya2VyUmVnaXN0ZXJlZEZvck9yaWdpbihjb25zdCBTZWN1cml0eU9yaWdpbkRh
dGEmKSBjb25zdCA9IDA7CiAKICAgICB2aXJ0dWFsIHZvaWQgcmVnaXN0ZXJTZXJ2aWNlV29ya2Vy
Q2xpZW50KGNvbnN0IENsaWVudE9yaWdpbiYsIFNlcnZpY2VXb3JrZXJDbGllbnREYXRhJiYsIGNv
bnN0IHN0ZDo6b3B0aW9uYWw8U2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbklkZW50aWZpZXI+Jiwg
U3RyaW5nJiYgdXNlckFnZW50KSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIHVucmVnaXN0ZXJTZXJ2
aWNlV29ya2VyQ2xpZW50KFNjcmlwdEV4ZWN1dGlvbkNvbnRleHRJZGVudGlmaWVyKSA9IDA7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvV29ya2VyU1dDbGllbnRD
b25uZWN0aW9uLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9Xb3JrZXJTV0Ns
aWVudENvbm5lY3Rpb24uY3BwCmluZGV4IGYxNDBmOTliNDA4NmJmNmZiY2Y3MmI2YzQ3ZTBkNDFk
MWZhMGQ4NTMuLjFhNTJkY2ZkMjRlZjI2N2JhZDhkYjZkYzQ3ODhhMjIxZjYyOTAwM2MgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9Xb3JrZXJTV0NsaWVudENvbm5l
Y3Rpb24uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9Xb3JrZXJTV0Ns
aWVudENvbm5lY3Rpb24uY3BwCkBAIC0xNzgsMTIgKzE3OCw2IEBAIFNXU2VydmVyQ29ubmVjdGlv
bklkZW50aWZpZXIgV29ya2VyU1dDbGllbnRDb25uZWN0aW9uOjpzZXJ2ZXJDb25uZWN0aW9uSWRl
bnRpZmllCiAgICAgcmV0dXJuIGlkZW50aWZpZXI7CiB9CiAKLWJvb2wgV29ya2VyU1dDbGllbnRD
b25uZWN0aW9uOjptYXlIYXZlU2VydmljZVdvcmtlclJlZ2lzdGVyZWRGb3JPcmlnaW4oY29uc3Qg
U2VjdXJpdHlPcmlnaW5EYXRhJikgY29uc3QKLXsKLSAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsK
LSAgICByZXR1cm4gdHJ1ZTsKLX0KLQogdm9pZCBXb3JrZXJTV0NsaWVudENvbm5lY3Rpb246OnJl
Z2lzdGVyU2VydmljZVdvcmtlckNsaWVudChjb25zdCBDbGllbnRPcmlnaW4mIGNsaWVudE9yaWdp
biwgU2VydmljZVdvcmtlckNsaWVudERhdGEmJiBkYXRhLCBjb25zdCBzdGQ6Om9wdGlvbmFsPFNl
cnZpY2VXb3JrZXJSZWdpc3RyYXRpb25JZGVudGlmaWVyPiYgaWRlbnRpZmllciwgU3RyaW5nJiYg
dXNlckFnZW50KQogewogICAgIGNhbGxPbk1haW5UaHJlYWQoW2NsaWVudE9yaWdpbiA9IGNsaWVu
dE9yaWdpbi5pc29sYXRlZENvcHkoKSwgZGF0YSA9IGNyb3NzVGhyZWFkQ29weShXVEZNb3ZlKGRh
dGEpKSwgaWRlbnRpZmllciwgdXNlckFnZW50ID0gY3Jvc3NUaHJlYWRDb3B5KFdURk1vdmUodXNl
ckFnZW50KSldKCkgbXV0YWJsZSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJz
L3NlcnZpY2UvV29ya2VyU1dDbGllbnRDb25uZWN0aW9uLmggYi9Tb3VyY2UvV2ViQ29yZS93b3Jr
ZXJzL3NlcnZpY2UvV29ya2VyU1dDbGllbnRDb25uZWN0aW9uLmgKaW5kZXggMjliZmIzM2VmNGIz
ZDQwNjU1MzMwMjFhYzZlMjU0NzY4MDdiMGFiOC4uZjMwN2I2ZmY2Y2Q4Y2VlOTkyZjk0OTY1YjUx
YWM4Yzk0MTAxZTIwZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNl
L1dvcmtlclNXQ2xpZW50Q29ubmVjdGlvbi5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMv
c2VydmljZS9Xb3JrZXJTV0NsaWVudENvbm5lY3Rpb24uaApAQCAtNTMsNyArNTMsNiBAQCBwcml2
YXRlOgogICAgIHZvaWQgZGlkUmVzb2x2ZVJlZ2lzdHJhdGlvblByb21pc2UoY29uc3QgU2Vydmlj
ZVdvcmtlclJlZ2lzdHJhdGlvbktleSYpIGZpbmFsOwogICAgIHZvaWQgcG9zdE1lc3NhZ2VUb1Nl
cnZpY2VXb3JrZXIoU2VydmljZVdvcmtlcklkZW50aWZpZXIgZGVzdGluYXRpb24sIE1lc3NhZ2VX
aXRoTWVzc2FnZVBvcnRzJiYsIGNvbnN0IFNlcnZpY2VXb3JrZXJPckNsaWVudElkZW50aWZpZXIm
IHNvdXJjZSkgZmluYWw7CiAgICAgU1dTZXJ2ZXJDb25uZWN0aW9uSWRlbnRpZmllciBzZXJ2ZXJD
b25uZWN0aW9uSWRlbnRpZmllcigpIGNvbnN0IGZpbmFsOwotICAgIGJvb2wgbWF5SGF2ZVNlcnZp
Y2VXb3JrZXJSZWdpc3RlcmVkRm9yT3JpZ2luKGNvbnN0IFNlY3VyaXR5T3JpZ2luRGF0YSYpIGNv
bnN0IGZpbmFsOwogICAgIHZvaWQgZmluaXNoRmV0Y2hpbmdTY3JpcHRJblNlcnZlcihjb25zdCBT
ZXJ2aWNlV29ya2VySm9iRGF0YUlkZW50aWZpZXImLCBTZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9u
S2V5JiYsIFdvcmtlckZldGNoUmVzdWx0JiYpIGZpbmFsOwogICAgIHZvaWQgc2NoZWR1bGVKb2JJ
blNlcnZlcihjb25zdCBTZXJ2aWNlV29ya2VySm9iRGF0YSYpIGZpbmFsOwogICAgIHZvaWQgc2No
ZWR1bGVKb2IoU2VydmljZVdvcmtlck9yQ2xpZW50SWRlbnRpZmllciwgY29uc3QgU2VydmljZVdv
cmtlckpvYkRhdGEmKSBmaW5hbDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMv
c2VydmljZS9zZXJ2ZXIvU1dPcmlnaW5TdG9yZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJz
L3NlcnZpY2Uvc2VydmVyL1NXT3JpZ2luU3RvcmUuY3BwCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCBmMDFmYjE2MWNlOGM4NDg1ZDU2MjYyZWI2YWM2NzE0MTRkYzAyYzQxLi4wMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJDb3JlL3dv
cmtlcnMvc2VydmljZS9zZXJ2ZXIvU1dPcmlnaW5TdG9yZS5jcHAKKysrIC9kZXYvbnVsbApAQCAt
MSw3MSArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDE3IEFwcGxlIEluYy4gQWxsIHJp
Z2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBh
bmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBl
cm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1l
dDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUg
YWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmlu
YXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGlu
IHRoZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVk
IHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVE
IEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCi0gKiBBTkQgQU5Z
IEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywKLSAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBG
SVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5P
IEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUwotICogQkUgTElBQkxF
IEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZ
LCBPUgotICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywgUFJPQ1VSRU1FTlQgT0YKLSAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExP
U1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUwotICogSU5URVJSVVBUSU9O
KSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIg
SU4KLSAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVH
TElHRU5DRSBPUiBPVEhFUldJU0UpCi0gKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBV
U0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCi0gKiBUSEUgUE9TU0lCSUxJ
VFkgT0YgU1VDSCBEQU1BR0UuCi0gKi8KLQotI2luY2x1ZGUgImNvbmZpZy5oIgotI2luY2x1ZGUg
IlNXT3JpZ2luU3RvcmUuaCIKLQotI2lmIEVOQUJMRShTRVJWSUNFX1dPUktFUikKLQotI2luY2x1
ZGUgIlNlY3VyaXR5T3JpZ2luLmgiCi0KLW5hbWVzcGFjZSBXZWJDb3JlIHsKLQotdm9pZCBTV09y
aWdpblN0b3JlOjphZGQoY29uc3QgU2VjdXJpdHlPcmlnaW5EYXRhJiBvcmlnaW4pCi17Ci0gICAg
KyttX29yaWdpbkNvdW50cy5lbnN1cmUob3JpZ2luLCBbJl0gewotICAgICAgICBhZGRUb1N0b3Jl
KG9yaWdpbik7Ci0gICAgICAgIHJldHVybiAwOwotICAgIH0pLml0ZXJhdG9yLT52YWx1ZTsKLX0K
LQotdm9pZCBTV09yaWdpblN0b3JlOjpyZW1vdmUoY29uc3QgU2VjdXJpdHlPcmlnaW5EYXRhJiBv
cmlnaW4pCi17Ci0gICAgYXV0byBpdGVyYXRvciA9IG1fb3JpZ2luQ291bnRzLmZpbmQob3JpZ2lu
KTsKLSAgICBBU1NFUlQoaXRlcmF0b3IgIT0gbV9vcmlnaW5Db3VudHMuZW5kKCkpOwotICAgIGlm
IChpdGVyYXRvciA9PSBtX29yaWdpbkNvdW50cy5lbmQoKSkKLSAgICAgICAgcmV0dXJuOwotCi0g
ICAgaWYgKC0taXRlcmF0b3ItPnZhbHVlKQotICAgICAgICByZXR1cm47Ci0KLSAgICBtX29yaWdp
bkNvdW50cy5yZW1vdmUoaXRlcmF0b3IpOwotICAgIHJlbW92ZUZyb21TdG9yZShvcmlnaW4pOwot
fQotCi12b2lkIFNXT3JpZ2luU3RvcmU6OmNsZWFyKGNvbnN0IFNlY3VyaXR5T3JpZ2luRGF0YSYg
b3JpZ2luKQotewotICAgIG1fb3JpZ2luQ291bnRzLnJlbW92ZShvcmlnaW4pOwotICAgIHJlbW92
ZUZyb21TdG9yZShvcmlnaW4pOwotfQotCi12b2lkIFNXT3JpZ2luU3RvcmU6OmNsZWFyQWxsKCkK
LXsKLSAgICBtX29yaWdpbkNvdW50cy5jbGVhcigpOwotICAgIGNsZWFyU3RvcmUoKTsKLX0KLQot
fSAvLyBuYW1lc3BhY2UgV2ViQ29yZQotCi0jZW5kaWYgLy8gRU5BQkxFKFNFUlZJQ0VfV09SS0VS
KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL3NlcnZlci9TV09y
aWdpblN0b3JlLmggYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2Uvc2VydmVyL1NXT3Jp
Z2luU3RvcmUuaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggY2IyOGIzOTQxOTkyOWZj
MmRhZDRlYjdiZDdkZWNlZTIwOWQ5NGNhMS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMAotLS0gYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2Uvc2VydmVyL1NX
T3JpZ2luU3RvcmUuaAorKysgL2Rldi9udWxsCkBAIC0xLDU3ICswLDAgQEAKLS8qCi0gKiBDb3B5
cmlnaHQgKEMpIDIwMTcgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJl
ZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Ig
d2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhl
IGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0OgotICogMS4gUmVkaXN0cmlidXRpb25z
IG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0
aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVudGF0aW9u
IGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgot
ICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENP
TlRSSUJVVE9SUyBgYEFTIElTJycKLSAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJB
TlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAotICogVEhFIElNUExJRUQgV0FS
UkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgot
ICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBP
UiBJVFMgQ09OVFJJQlVUT1JTCi0gKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNU
LCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCi0gKiBDT05TRVFVRU5USUFMIERB
TUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgotICog
U1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJ
VFM7IE9SIEJVU0lORVNTCi0gKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBB
TlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgotICogQ09OVFJBQ1QsIFNUUklDVCBM
SUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKLSAq
IEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVO
IElGIEFEVklTRUQgT0YKLSAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLSAqLwot
Ci0jcHJhZ21hIG9uY2UKLQotI2lmIEVOQUJMRShTRVJWSUNFX1dPUktFUikKLQotI2luY2x1ZGUg
IlNlY3VyaXR5T3JpZ2luRGF0YS5oIgotI2luY2x1ZGUgPHd0Zi9IYXNoTWFwLmg+Ci0KLW5hbWVz
cGFjZSBXZWJDb3JlIHsKLQotY2xhc3MgU1dPcmlnaW5TdG9yZSB7Ci0gICAgV1RGX01BS0VfRkFT
VF9BTExPQ0FURUQ7Ci1wdWJsaWM6Ci0gICAgdmlydHVhbCB+U1dPcmlnaW5TdG9yZSgpID0gZGVm
YXVsdDsKLQotICAgIHZvaWQgYWRkKGNvbnN0IFNlY3VyaXR5T3JpZ2luRGF0YSYpOwotICAgIHZv
aWQgcmVtb3ZlKGNvbnN0IFNlY3VyaXR5T3JpZ2luRGF0YSYpOwotICAgIHZvaWQgY2xlYXIoY29u
c3QgU2VjdXJpdHlPcmlnaW5EYXRhJik7Ci0gICAgdm9pZCBjbGVhckFsbCgpOwotCi0gICAgdmly
dHVhbCB2b2lkIGltcG9ydENvbXBsZXRlKCkgPSAwOwotCi1wcml2YXRlOgotICAgIHZpcnR1YWwg
dm9pZCBhZGRUb1N0b3JlKGNvbnN0IFNlY3VyaXR5T3JpZ2luRGF0YSYpID0gMDsKLSAgICB2aXJ0
dWFsIHZvaWQgcmVtb3ZlRnJvbVN0b3JlKGNvbnN0IFNlY3VyaXR5T3JpZ2luRGF0YSYpID0gMDsK
LSAgICB2aXJ0dWFsIHZvaWQgY2xlYXJTdG9yZSgpID0gMDsKLQotICAgIEhhc2hNYXA8U2VjdXJp
dHlPcmlnaW5EYXRhLCB1aW50NjRfdD4gbV9vcmlnaW5Db3VudHM7Ci19OwotCi19IC8vIG5hbWVz
cGFjZSBXZWJDb3JlCi0KLSNlbmRpZiAvLyBFTkFCTEUoU0VSVklDRV9XT1JLRVIpCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2Uvc2VydmVyL1NXU2VydmVyLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9zZXJ2ZXIvU1dTZXJ2ZXIuY3BwCmluZGV4
IGE2OGEwNDU0NDg1MjViZDkwOTRhMDAwNWE1MjY2Yjg2N2VhMGI3MTUuLmQyMmQzYmRjMDEzMjU2
ODNhYzY2Yjg4Y2ViZjUxYzYyMzA0Y2U0MzkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3dv
cmtlcnMvc2VydmljZS9zZXJ2ZXIvU1dTZXJ2ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3dv
cmtlcnMvc2VydmljZS9zZXJ2ZXIvU1dTZXJ2ZXIuY3BwCkBAIC0zMyw3ICszMyw2IEBACiAjaW5j
bHVkZSAiTG9nZ2luZy5oIgogI2luY2x1ZGUgIk5vdGlmaWNhdGlvbkRhdGEuaCIKICNpbmNsdWRl
ICJSZWdpc3RyYXRpb25TdG9yZS5oIgotI2luY2x1ZGUgIlNXT3JpZ2luU3RvcmUuaCIKICNpbmNs
dWRlICJTV1NlcnZlckpvYlF1ZXVlLmgiCiAjaW5jbHVkZSAiU1dTZXJ2ZXJSZWdpc3RyYXRpb24u
aCIKICNpbmNsdWRlICJTV1NlcnZlclRvQ29udGV4dENvbm5lY3Rpb24uaCIKQEAgLTE0OSw3ICsx
NDgsNiBAQCB2b2lkIFNXU2VydmVyOjpyZWdpc3RyYXRpb25TdG9yZUltcG9ydENvbXBsZXRlKCkK
IHsKICAgICBBU1NFUlQoIW1faW1wb3J0Q29tcGxldGVkKTsKICAgICBtX2ltcG9ydENvbXBsZXRl
ZCA9IHRydWU7Ci0gICAgbV9vcmlnaW5TdG9yZS0+aW1wb3J0Q29tcGxldGUoKTsKIAogICAgIGF1
dG8gY2xlYXJDYWxsYmFja3MgPSBXVEZNb3ZlKG1fY2xlYXJDb21wbGV0aW9uQ2FsbGJhY2tzKTsK
ICAgICBmb3IgKGF1dG8mIGNhbGxiYWNrIDogY2xlYXJDYWxsYmFja3MpCkBAIC0yMjQsNyArMjIy
LDYgQEAgdm9pZCBTV1NlcnZlcjo6YWRkUmVnaXN0cmF0aW9uKHN0ZDo6dW5pcXVlX3B0cjxTV1Nl
cnZlclJlZ2lzdHJhdGlvbj4mJiByZWdpc3RyYXQKICAgICBpZiAocmVnaXN0cmF0aW9uLT5zZXJ2
aWNlV29ya2VyUGFnZUlkZW50aWZpZXIoKSkKICAgICAgICAgbV9zZXJ2aWNlV29ya2VyUGFnZUlk
ZW50aWZpZXJUb1JlZ2lzdHJhdGlvbk1hcC5hZGQoKnJlZ2lzdHJhdGlvbi0+c2VydmljZVdvcmtl
clBhZ2VJZGVudGlmaWVyKCksICpyZWdpc3RyYXRpb24pOwogCi0gICAgbV9vcmlnaW5TdG9yZS0+
YWRkKHJlZ2lzdHJhdGlvbi0+a2V5KCkudG9wT3JpZ2luKCkpOwogICAgIGF1dG8gcmVnaXN0cmF0
aW9uSUQgPSByZWdpc3RyYXRpb24tPmlkZW50aWZpZXIoKTsKICAgICBBU1NFUlQoIW1fc2NvcGVU
b1JlZ2lzdHJhdGlvbk1hcC5jb250YWlucyhyZWdpc3RyYXRpb24tPmtleSgpKSk7CiAgICAgbV9z
Y29wZVRvUmVnaXN0cmF0aW9uTWFwLnNldChyZWdpc3RyYXRpb24tPmtleSgpLCAqcmVnaXN0cmF0
aW9uKTsKQEAgLTI0Nyw3ICsyNDQsNiBAQCB2b2lkIFNXU2VydmVyOjpyZW1vdmVSZWdpc3RyYXRp
b24oU2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbklkZW50aWZpZXIgcmVnaXN0cmF0aQogICAgICAg
ICAgICAgbV91bmlxdWVSZWdpc3RyYXRpb25Db3VudC0tOwogICAgIH0KIAotICAgIG1fb3JpZ2lu
U3RvcmUtPnJlbW92ZShyZWdpc3RyYXRpb24tPmtleSgpLnRvcE9yaWdpbigpKTsKICAgICBpZiAo
bV9yZWdpc3RyYXRpb25TdG9yZSkKICAgICAgICAgbV9yZWdpc3RyYXRpb25TdG9yZS0+cmVtb3Zl
UmVnaXN0cmF0aW9uKHJlZ2lzdHJhdGlvbi0+a2V5KCkpOwogfQpAQCAtMjg2LDcgKzI4Miw2IEBA
IHZvaWQgU1dTZXJ2ZXI6OmNsZWFyQWxsKENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJiBjb21w
bGV0aW9uSGFuZGxlcikKICAgICB3aGlsZSAoIW1fcmVnaXN0cmF0aW9ucy5pc0VtcHR5KCkpCiAg
ICAgICAgIG1fcmVnaXN0cmF0aW9ucy5iZWdpbigpLT52YWx1ZS0+Y2xlYXIoKTsKICAgICBtX3Bl
bmRpbmdDb250ZXh0RGF0YXMuY2xlYXIoKTsKLSAgICBtX29yaWdpblN0b3JlLT5jbGVhckFsbCgp
OwogICAgIGlmICghbV9yZWdpc3RyYXRpb25TdG9yZSkKICAgICAgICAgcmV0dXJuIGNvbXBsZXRp
b25IYW5kbGVyKCk7CiAKQEAgLTMzOSw3ICszMzQsNyBAQCB2b2lkIFNXU2VydmVyOjpjbGVhcihj
b25zdCBTZWN1cml0eU9yaWdpbkRhdGEmIHNlY3VyaXR5T3JpZ2luLCBDb21wbGV0aW9uSGFuZGxl
cgogICAgICAgICByZXR1cm47CiAgICAgfQogCi0gICAgLy8gQ2FsbGluZyBTV1NlcnZlclJlZ2lz
dHJhdGlvbjo6Y2xlYXIoKSB0YWtlcyBjYXJlIG9mIHVwZGF0aW5nIG1fcmVnaXN0cmF0aW9ucywg
bV9vcmlnaW5TdG9yZSBhbmQgbV9yZWdpc3RyYXRpb25TdG9yZS4KKyAgICAvLyBDYWxsaW5nIFNX
U2VydmVyUmVnaXN0cmF0aW9uOjpjbGVhcigpIHRha2VzIGNhcmUgb2YgdXBkYXRpbmcgbV9yZWdp
c3RyYXRpb25zIGFuZCBtX3JlZ2lzdHJhdGlvblN0b3JlLgogICAgIGZvciAoYXV0byogcmVnaXN0
cmF0aW9uIDogcmVnaXN0cmF0aW9uc1RvUmVtb3ZlKQogICAgICAgICByZWdpc3RyYXRpb24tPmNs
ZWFyKCk7CiAKQEAgLTM2OSw5ICszNjQsOCBAQCB2b2lkIFNXU2VydmVyOjpDb25uZWN0aW9uOjpy
ZW1vdmVTZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uSW5TZXJ2ZXIoU2VydmljZVdvcmtlcgogICAg
IG1fc2VydmVyLnJlbW92ZUNsaWVudFNlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb24oKnRoaXMsIGlk
ZW50aWZpZXIpOwogfQogCi1TV1NlcnZlcjo6U1dTZXJ2ZXIoVW5pcXVlUmVmPFNXT3JpZ2luU3Rv
cmU+JiYgb3JpZ2luU3RvcmUsIGJvb2wgcHJvY2Vzc1Rlcm1pbmF0aW9uRGVsYXlFbmFibGVkLCBT
dHJpbmcmJiByZWdpc3RyYXRpb25EYXRhYmFzZURpcmVjdG9yeSwgUEFMOjpTZXNzaW9uSUQgc2Vz
c2lvbklELCBib29sIHNob3VsZFJ1blNlcnZpY2VXb3JrZXJzT25NYWluVGhyZWFkRm9yVGVzdGlu
ZywgYm9vbCBoYXNTZXJ2aWNlV29ya2VyRW50aXRsZW1lbnQsIHN0ZDo6b3B0aW9uYWw8dW5zaWdu
ZWQ+IG92ZXJyaWRlU2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbkNvdW50VGVzdGluZ1ZhbHVlLCBT
b2Z0VXBkYXRlQ2FsbGJhY2smJiBzb2Z0VXBkYXRlQ2FsbGJhY2ssIENyZWF0ZUNvbnRleHRDb25u
ZWN0aW9uQ2FsbGJhY2smJiBjYWxsYmFjaywgQXBwQm91bmREb21haW5zQ2FsbGJhY2smJiBhcHBC
b3VuZERvbWFpbnNDYWxsYmFjaykKLSAgICA6IG1fb3JpZ2luU3RvcmUoV1RGTW92ZShvcmlnaW5T
dG9yZSkpCi0gICAgLCBtX3Nlc3Npb25JRChzZXNzaW9uSUQpCitTV1NlcnZlcjo6U1dTZXJ2ZXIo
Ym9vbCBwcm9jZXNzVGVybWluYXRpb25EZWxheUVuYWJsZWQsIFN0cmluZyYmIHJlZ2lzdHJhdGlv
bkRhdGFiYXNlRGlyZWN0b3J5LCBQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIGJvb2wgc2hvdWxk
UnVuU2VydmljZVdvcmtlcnNPbk1haW5UaHJlYWRGb3JUZXN0aW5nLCBib29sIGhhc1NlcnZpY2VX
b3JrZXJFbnRpdGxlbWVudCwgc3RkOjpvcHRpb25hbDx1bnNpZ25lZD4gb3ZlcnJpZGVTZXJ2aWNl
V29ya2VyUmVnaXN0cmF0aW9uQ291bnRUZXN0aW5nVmFsdWUsIFNvZnRVcGRhdGVDYWxsYmFjayYm
IHNvZnRVcGRhdGVDYWxsYmFjaywgQ3JlYXRlQ29udGV4dENvbm5lY3Rpb25DYWxsYmFjayYmIGNh
bGxiYWNrLCBBcHBCb3VuZERvbWFpbnNDYWxsYmFjayYmIGFwcEJvdW5kRG9tYWluc0NhbGxiYWNr
KQorICAgIDogbV9zZXNzaW9uSUQoc2Vzc2lvbklEKQogICAgICwgbV9pc1Byb2Nlc3NUZXJtaW5h
dGlvbkRlbGF5RW5hYmxlZChwcm9jZXNzVGVybWluYXRpb25EZWxheUVuYWJsZWQpCiAgICAgLCBt
X2NyZWF0ZUNvbnRleHRDb25uZWN0aW9uQ2FsbGJhY2soV1RGTW92ZShjYWxsYmFjaykpCiAgICAg
LCBtX3NvZnRVcGRhdGVDYWxsYmFjayhXVEZNb3ZlKHNvZnRVcGRhdGVDYWxsYmFjaykpCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2Uvc2VydmVyL1NXU2VydmVyLmgg
Yi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2Uvc2VydmVyL1NXU2VydmVyLmgKaW5kZXgg
OTY1MjM1OWVjN2M1Y2U5NzYxY2IzN2Q0N2E4OTk3OGM2ZmUwODBiZS4uZTYxYzFjYzcyMjAwNDNm
YTY0MjdiNmNlNjNjNDhmNjA1MmVmZWVjMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvd29y
a2Vycy9zZXJ2aWNlL3NlcnZlci9TV1NlcnZlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3dvcmtl
cnMvc2VydmljZS9zZXJ2ZXIvU1dTZXJ2ZXIuaApAQCAtNTUsNyArNTUsNiBAQAogbmFtZXNwYWNl
IFdlYkNvcmUgewogCiBjbGFzcyBSZWdpc3RyYXRpb25TdG9yZTsKLWNsYXNzIFNXT3JpZ2luU3Rv
cmU7CiBjbGFzcyBTV1NlcnZlckpvYlF1ZXVlOwogY2xhc3MgU1dTZXJ2ZXJSZWdpc3RyYXRpb247
CiBjbGFzcyBTV1NlcnZlclRvQ29udGV4dENvbm5lY3Rpb247CkBAIC0xMzQsNyArMTMzLDcgQEAg
cHVibGljOgogICAgIHVzaW5nIFNvZnRVcGRhdGVDYWxsYmFjayA9IEZ1bmN0aW9uPHZvaWQoU2Vy
dmljZVdvcmtlckpvYkRhdGEmJiBqb2JEYXRhLCBib29sIHNob3VsZFJlZnJlc2hDYWNoZSwgUmVz
b3VyY2VSZXF1ZXN0JiYsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoV29ya2VyRmV0Y2hSZXN1bHQm
Jik+JiYpPjsKICAgICB1c2luZyBDcmVhdGVDb250ZXh0Q29ubmVjdGlvbkNhbGxiYWNrID0gRnVu
Y3Rpb248dm9pZChjb25zdCBXZWJDb3JlOjpSZWdpc3RyYWJsZURvbWFpbiYsIHN0ZDo6b3B0aW9u
YWw8UHJvY2Vzc0lkZW50aWZpZXI+IHJlcXVlc3RpbmdQcm9jZXNzSWRlbnRpZmllciwgc3RkOjpv
cHRpb25hbDxTY3JpcHRFeGVjdXRpb25Db250ZXh0SWRlbnRpZmllcj4sIENvbXBsZXRpb25IYW5k
bGVyPHZvaWQoKT4mJik+OwogICAgIHVzaW5nIEFwcEJvdW5kRG9tYWluc0NhbGxiYWNrID0gRnVu
Y3Rpb248dm9pZChDb21wbGV0aW9uSGFuZGxlcjx2b2lkKEhhc2hTZXQ8V2ViQ29yZTo6UmVnaXN0
cmFibGVEb21haW4+JiYpPiYmKT47Ci0gICAgV0VCQ09SRV9FWFBPUlQgU1dTZXJ2ZXIoVW5pcXVl
UmVmPFNXT3JpZ2luU3RvcmU+JiYsIGJvb2wgcHJvY2Vzc1Rlcm1pbmF0aW9uRGVsYXlFbmFibGVk
LCBTdHJpbmcmJiByZWdpc3RyYXRpb25EYXRhYmFzZURpcmVjdG9yeSwgUEFMOjpTZXNzaW9uSUQs
IGJvb2wgc2hvdWxkUnVuU2VydmljZVdvcmtlcnNPbk1haW5UaHJlYWRGb3JUZXN0aW5nLCBib29s
IGhhc1NlcnZpY2VXb3JrZXJFbnRpdGxlbWVudCwgc3RkOjpvcHRpb25hbDx1bnNpZ25lZD4gb3Zl
cnJpZGVTZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uQ291bnRUZXN0aW5nVmFsdWUsIFNvZnRVcGRh
dGVDYWxsYmFjayYmLCBDcmVhdGVDb250ZXh0Q29ubmVjdGlvbkNhbGxiYWNrJiYsIEFwcEJvdW5k
RG9tYWluc0NhbGxiYWNrJiYpOworICAgIFdFQkNPUkVfRVhQT1JUIFNXU2VydmVyKGJvb2wgcHJv
Y2Vzc1Rlcm1pbmF0aW9uRGVsYXlFbmFibGVkLCBTdHJpbmcmJiByZWdpc3RyYXRpb25EYXRhYmFz
ZURpcmVjdG9yeSwgUEFMOjpTZXNzaW9uSUQsIGJvb2wgc2hvdWxkUnVuU2VydmljZVdvcmtlcnNP
bk1haW5UaHJlYWRGb3JUZXN0aW5nLCBib29sIGhhc1NlcnZpY2VXb3JrZXJFbnRpdGxlbWVudCwg
c3RkOjpvcHRpb25hbDx1bnNpZ25lZD4gb3ZlcnJpZGVTZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9u
Q291bnRUZXN0aW5nVmFsdWUsIFNvZnRVcGRhdGVDYWxsYmFjayYmLCBDcmVhdGVDb250ZXh0Q29u
bmVjdGlvbkNhbGxiYWNrJiYsIEFwcEJvdW5kRG9tYWluc0NhbGxiYWNrJiYpOwogCiAgICAgV0VC
Q09SRV9FWFBPUlQgflNXU2VydmVyKCk7CiAKQEAgLTE3OCw4ICsxNzcsNiBAQCBwdWJsaWM6CiAg
ICAgY29uc3QgSGFzaE1hcDxTV1NlcnZlckNvbm5lY3Rpb25JZGVudGlmaWVyLCBzdGQ6OnVuaXF1
ZV9wdHI8Q29ubmVjdGlvbj4+JiBjb25uZWN0aW9ucygpIGNvbnN0IHsgcmV0dXJuIG1fY29ubmVj
dGlvbnM7IH0KICAgICBXRUJDT1JFX0VYUE9SVCBib29sIGNhbkhhbmRsZVNjaGVtZShTdHJpbmdW
aWV3KSBjb25zdDsKIAotICAgIFNXT3JpZ2luU3RvcmUmIG9yaWdpblN0b3JlKCkgeyByZXR1cm4g
bV9vcmlnaW5TdG9yZTsgfQotCiAgICAgdm9pZCByZWZyZXNoSW1wb3J0ZWRTY3JpcHRzRmluaXNo
ZWQoY29uc3QgU2VydmljZVdvcmtlckpvYkRhdGFJZGVudGlmaWVyJiwgY29uc3QgU2VydmljZVdv
cmtlclJlZ2lzdHJhdGlvbktleSYsIGNvbnN0IFZlY3RvcjxzdGQ6OnBhaXI8VVJMLCBTY3JpcHRC
dWZmZXI+PiYpOwogICAgIHZvaWQgc2NyaXB0Q29udGV4dEZhaWxlZFRvU3RhcnQoY29uc3Qgc3Rk
OjpvcHRpb25hbDxTZXJ2aWNlV29ya2VySm9iRGF0YUlkZW50aWZpZXI+JiwgU1dTZXJ2ZXJXb3Jr
ZXImLCBjb25zdCBTdHJpbmcmIG1lc3NhZ2UpOwogICAgIHZvaWQgc2NyaXB0Q29udGV4dFN0YXJ0
ZWQoY29uc3Qgc3RkOjpvcHRpb25hbDxTZXJ2aWNlV29ya2VySm9iRGF0YUlkZW50aWZpZXI+Jiwg
U1dTZXJ2ZXJXb3JrZXImKTsKQEAgLTIyMSw2ICsyMTgsNyBAQCBwdWJsaWM6CiAKICAgICBib29s
IGlzSW1wb3J0Q29tcGxldGVkKCkgY29uc3QgeyByZXR1cm4gbV9pbXBvcnRDb21wbGV0ZWQ7IH0K
ICAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHdoZW5JbXBvcnRJc0NvbXBsZXRlZChDb21wbGV0aW9u
SGFuZGxlcjx2b2lkKCk+JiYpOworICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgd2hlbkltcG9ydElz
Q29tcGxldGVkSWZOZWVkZWQoQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmKTsKIAogICAgIHZv
aWQgc29mdFVwZGF0ZShTV1NlcnZlclJlZ2lzdHJhdGlvbiYpOwogCkBAIC0yODQsNyArMjgyLDYg
QEAgcHJpdmF0ZToKICAgICB2b2lkIGNvbnRleHRDb25uZWN0aW9uQ3JlYXRlZChTV1NlcnZlclRv
Q29udGV4dENvbm5lY3Rpb24mKTsKIAogICAgIHZvaWQgdXBkYXRlQXBwSW5pdGlhdGVkVmFsdWVG
b3JXb3JrZXJzKGNvbnN0IENsaWVudE9yaWdpbiYsIExhc3ROYXZpZ2F0aW9uV2FzQXBwSW5pdGlh
dGVkKTsKLSAgICB2b2lkIHdoZW5JbXBvcnRJc0NvbXBsZXRlZElmTmVlZGVkKENvbXBsZXRpb25I
YW5kbGVyPHZvaWQoKT4mJik7CiAKICAgICBSZXNvdXJjZVJlcXVlc3QgY3JlYXRlU2NyaXB0UmVx
dWVzdChjb25zdCBVUkwmLCBjb25zdCBTZXJ2aWNlV29ya2VySm9iRGF0YSYsIFNXU2VydmVyUmVn
aXN0cmF0aW9uJik7CiAKQEAgLTMwNyw3ICszMDQsNiBAQCBwcml2YXRlOgogICAgIEhhc2hNYXA8
U2NyaXB0RXhlY3V0aW9uQ29udGV4dElkZW50aWZpZXIsIFNlcnZpY2VXb3JrZXJSZWdpc3RyYXRp
b25JZGVudGlmaWVyPiBtX2NsaWVudFRvQ29udHJvbGxpbmdSZWdpc3RyYXRpb247CiAgICAgTWVt
b3J5Q29tcGFjdFJvYmluSG9vZEhhc2hNYXA8U3RyaW5nLCBTY3JpcHRFeGVjdXRpb25Db250ZXh0
SWRlbnRpZmllcj4gbV92aXNpYmxlQ2xpZW50SWRUb0ludGVybmFsQ2xpZW50SWRNYXA7CiAKLSAg
ICBVbmlxdWVSZWY8U1dPcmlnaW5TdG9yZT4gbV9vcmlnaW5TdG9yZTsKICAgICBzdGQ6OnVuaXF1
ZV9wdHI8UmVnaXN0cmF0aW9uU3RvcmU+IG1fcmVnaXN0cmF0aW9uU3RvcmU7CiAgICAgSGFzaE1h
cDxSZWdpc3RyYWJsZURvbWFpbiwgVmVjdG9yPFNlcnZpY2VXb3JrZXJDb250ZXh0RGF0YT4+IG1f
cGVuZGluZ0NvbnRleHREYXRhczsKICAgICBIYXNoTWFwPFJlZ2lzdHJhYmxlRG9tYWluLCBIYXNo
TWFwPFNlcnZpY2VXb3JrZXJJZGVudGlmaWVyLCBWZWN0b3I8UnVuU2VydmljZVdvcmtlckNhbGxi
YWNrPj4+IG1fc2VydmljZVdvcmtlclJ1blJlcXVlc3RzOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrU2Vzc2lvbi5jcHAgYi9Tb3VyY2UvV2ViS2l0L05l
dHdvcmtQcm9jZXNzL05ldHdvcmtTZXNzaW9uLmNwcAppbmRleCAyMzE5NGQ1YTEzYWU3ZjM2YTI4
ZGZkYTk1MGI1ZWU2NWI2MjIxNDBhLi44NDIwMDgzNTlhZWM1NTgwODU5MWQ2OTA5MjkzYmJhMzc0
MDliNTI2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtT
ZXNzaW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtTZXNz
aW9uLmNwcApAQCAtNDYsNyArNDYsNiBAQAogI2luY2x1ZGUgIldlYlBhZ2VQcm94eS5oIgogI2lu
Y2x1ZGUgIldlYlBhZ2VQcm94eU1lc3NhZ2VzLmgiCiAjaW5jbHVkZSAiV2ViUHJvY2Vzc1Byb3h5
LmgiCi0jaW5jbHVkZSAiV2ViU1dPcmlnaW5TdG9yZS5oIgogI2luY2x1ZGUgIldlYlNoYXJlZFdv
cmtlclNlcnZlci5oIgogI2luY2x1ZGUgIldlYlNvY2tldFRhc2suaCIKICNpbmNsdWRlIDxXZWJD
b3JlL0Nvb2tpZUphci5oPgpAQCAtNjExLDI1ICs2MTAsNiBAQCBTZXJ2aWNlV29ya2VyRmV0Y2hU
YXNrKiBOZXR3b3JrU2Vzc2lvbjo6bmF2aWdhdGlvblByZWxvYWRlclRhc2tGcm9tRmV0Y2hJZGVu
dGlmaQogICAgIHJldHVybiBtX25hdmlnYXRpb25QcmVsb2FkZXJzLmdldChpZGVudGlmaWVyKS5n
ZXQoKTsKIH0KIAotV2ViU1dPcmlnaW5TdG9yZSogTmV0d29ya1Nlc3Npb246OnN3T3JpZ2luU3Rv
cmUoKSBjb25zdAotewotICAgIHJldHVybiBtX3N3U2VydmVyID8gJnN0YXRpY19jYXN0PFdlYlNX
T3JpZ2luU3RvcmUmPihtX3N3U2VydmVyLT5vcmlnaW5TdG9yZSgpKSA6IG51bGxwdHI7Ci19Ci0K
LXZvaWQgTmV0d29ya1Nlc3Npb246OnJlZ2lzdGVyU1dTZXJ2ZXJDb25uZWN0aW9uKFdlYlNXU2Vy
dmVyQ29ubmVjdGlvbiYgY29ubmVjdGlvbikKLXsKLSAgICBhdXRvKiBzdG9yZSA9IHN3T3JpZ2lu
U3RvcmUoKTsKLSAgICBBU1NFUlQoc3RvcmUpOwotICAgIGlmIChzdG9yZSkKLSAgICAgICAgc3Rv
cmUtPnJlZ2lzdGVyU1dTZXJ2ZXJDb25uZWN0aW9uKGNvbm5lY3Rpb24pOwotfQotCi12b2lkIE5l
dHdvcmtTZXNzaW9uOjp1bnJlZ2lzdGVyU1dTZXJ2ZXJDb25uZWN0aW9uKFdlYlNXU2VydmVyQ29u
bmVjdGlvbiYgY29ubmVjdGlvbikKLXsKLSAgICBpZiAoYXV0byogc3RvcmUgPSBzd09yaWdpblN0
b3JlKCkpCi0gICAgICAgIHN0b3JlLT51bnJlZ2lzdGVyU1dTZXJ2ZXJDb25uZWN0aW9uKGNvbm5l
Y3Rpb24pOwotfQotCiBTV1NlcnZlciYgTmV0d29ya1Nlc3Npb246OmVuc3VyZVNXU2VydmVyKCkK
IHsKICAgICBpZiAoIW1fc3dTZXJ2ZXIpIHsKQEAgLTY0OCw3ICs2MjgsNyBAQCBTV1NlcnZlciYg
TmV0d29ya1Nlc3Npb246OmVuc3VyZVNXU2VydmVyKCkKICAgICAgICAgICAgIGNvbXBsZXRpb25I
YW5kbGVyKHsgfSk7CiAgICAgICAgIH07CiAjZW5kaWYKLSAgICAgICAgbV9zd1NlcnZlciA9IG1h
a2VVbmlxdWU8U1dTZXJ2ZXI+KG1ha2VVbmlxdWVSZWY8V2ViU1dPcmlnaW5TdG9yZT4oKSwgaW5m
by5wcm9jZXNzVGVybWluYXRpb25EZWxheUVuYWJsZWQsIFdURk1vdmUocGF0aCksIG1fc2Vzc2lv
bklELCBzaG91bGRSdW5TZXJ2aWNlV29ya2Vyc09uTWFpblRocmVhZEZvclRlc3RpbmcoKSwgbV9u
ZXR3b3JrUHJvY2Vzcy0+cGFyZW50UHJvY2Vzc0hhc1NlcnZpY2VXb3JrZXJFbnRpdGxlbWVudCgp
LCBvdmVycmlkZVNlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb25Db3VudFRlc3RpbmdWYWx1ZSgpLCBb
dGhpc10oYXV0byYmIGpvYkRhdGEsIGJvb2wgc2hvdWxkUmVmcmVzaENhY2hlLCBhdXRvJiYgcmVx
dWVzdCwgYXV0byYmIGNvbXBsZXRpb25IYW5kbGVyKSBtdXRhYmxlIHsKKyAgICAgICAgbV9zd1Nl
cnZlciA9IG1ha2VVbmlxdWU8U1dTZXJ2ZXI+KGluZm8ucHJvY2Vzc1Rlcm1pbmF0aW9uRGVsYXlF
bmFibGVkLCBXVEZNb3ZlKHBhdGgpLCBtX3Nlc3Npb25JRCwgc2hvdWxkUnVuU2VydmljZVdvcmtl
cnNPbk1haW5UaHJlYWRGb3JUZXN0aW5nKCksIG1fbmV0d29ya1Byb2Nlc3MtPnBhcmVudFByb2Nl
c3NIYXNTZXJ2aWNlV29ya2VyRW50aXRsZW1lbnQoKSwgb3ZlcnJpZGVTZXJ2aWNlV29ya2VyUmVn
aXN0cmF0aW9uQ291bnRUZXN0aW5nVmFsdWUoKSwgW3RoaXNdKGF1dG8mJiBqb2JEYXRhLCBib29s
IHNob3VsZFJlZnJlc2hDYWNoZSwgYXV0byYmIHJlcXVlc3QsIGF1dG8mJiBjb21wbGV0aW9uSGFu
ZGxlcikgbXV0YWJsZSB7CiAgICAgICAgICAgICBTZXJ2aWNlV29ya2VyU29mdFVwZGF0ZUxvYWRl
cjo6c3RhcnQodGhpcywgV1RGTW92ZShqb2JEYXRhKSwgc2hvdWxkUmVmcmVzaENhY2hlLCBXVEZN
b3ZlKHJlcXVlc3QpLCBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKSk7CiAgICAgICAgIH0sIFt0
aGlzXShhdXRvJiByZWdpc3RyYWJsZURvbWFpbiwgc3RkOjpvcHRpb25hbDxQcm9jZXNzSWRlbnRp
Zmllcj4gcmVxdWVzdGluZ1Byb2Nlc3NJZGVudGlmaWVyLCBzdGQ6Om9wdGlvbmFsPFNjcmlwdEV4
ZWN1dGlvbkNvbnRleHRJZGVudGlmaWVyPiBzZXJ2aWNlV29ya2VyUGFnZUlkZW50aWZpZXIsIGF1
dG8mJiBjb21wbGV0aW9uSGFuZGxlcikgewogICAgICAgICAgICAgQVNTRVJUKCFyZWdpc3RyYWJs
ZURvbWFpbi5pc0VtcHR5KCkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJv
Y2Vzcy9OZXR3b3JrU2Vzc2lvbi5oIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3
b3JrU2Vzc2lvbi5oCmluZGV4IDZjYzM1MTQxZGMyMWUxZmExOWI5NDZjZmQ5ZDJmZmRiNjdiZmI0
NDIuLmE2ZmNmMGVkZTkxOTkyZmMyODBmYjg5Zjg2MDQ5MGE3MzFkNjFlYWMgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Nlc3Npb24uaAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtTZXNzaW9uLmgKQEAgLTgxLDcgKzgxLDYg
QEAgY2xhc3MgV2ViUGFnZU5ldHdvcmtQYXJhbWV0ZXJzOwogY2xhc3MgV2ViUmVzb3VyY2VMb2Fk
U3RhdGlzdGljc1N0b3JlOwogY2xhc3MgV2ViU2hhcmVkV29ya2VyU2VydmVyOwogY2xhc3MgV2Vi
U29ja2V0VGFzazsKLWNsYXNzIFdlYlNXT3JpZ2luU3RvcmU7CiBjbGFzcyBXZWJTV1NlcnZlckNv
bm5lY3Rpb247CiBzdHJ1Y3QgTmV0d29ya1Nlc3Npb25DcmVhdGlvblBhcmFtZXRlcnM7CiBzdHJ1
Y3QgU2Vzc2lvblNldDsKQEAgLTIwMyw5ICsyMDIsNiBAQCBwdWJsaWM6CiAKICAgICBXZWJDb3Jl
OjpTV1NlcnZlciogc3dTZXJ2ZXIoKSB7IHJldHVybiBtX3N3U2VydmVyLmdldCgpOyB9CiAgICAg
V2ViQ29yZTo6U1dTZXJ2ZXImIGVuc3VyZVNXU2VydmVyKCk7Ci0gICAgV2ViU1dPcmlnaW5TdG9y
ZSogc3dPcmlnaW5TdG9yZSgpIGNvbnN0OyAvLyBGSVhNRTogQ2FuIGJlIHByaXZhdGU/Ci0gICAg
dm9pZCByZWdpc3RlclNXU2VydmVyQ29ubmVjdGlvbihXZWJTV1NlcnZlckNvbm5lY3Rpb24mKTsK
LSAgICB2b2lkIHVucmVnaXN0ZXJTV1NlcnZlckNvbm5lY3Rpb24oV2ViU1dTZXJ2ZXJDb25uZWN0
aW9uJik7CiAKICAgICBib29sIGhhc1NlcnZpY2VXb3JrZXJEYXRhYmFzZVBhdGgoKSBjb25zdDsK
ICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9TZXJ2aWNl
V29ya2VyL1dlYlNXT3JpZ2luU3RvcmUuY3BwIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vz
cy9TZXJ2aWNlV29ya2VyL1dlYlNXT3JpZ2luU3RvcmUuY3BwCmRlbGV0ZWQgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMjdkYzFiNzg2OTNjNjdhNGViYjgxMDc4MjVkNWFlYzdlNjAxYThhLi4wMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJLaXQv
TmV0d29ya1Byb2Nlc3MvU2VydmljZVdvcmtlci9XZWJTV09yaWdpblN0b3JlLmNwcAorKysgL2Rl
di9udWxsCkBAIC0xLDEwNiArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDE3IEFwcGxl
IEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNl
IGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNh
dGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9u
cwotICogYXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0
IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1
dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAot
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyIGluIHRoZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJp
YWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJF
IElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycn
Ci0gKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywKLSAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRB
QklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJU0NM
QUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUwot
ICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lB
TCwgRVhFTVBMQVJZLCBPUgotICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKLSAqIFNVQlNUSVRVVEUgR09PRFMgT1Ig
U0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUwotICog
SU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJ
VFksIFdIRVRIRVIgSU4KLSAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJ
TkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCi0gKiBBUklTSU5HIElOIEFOWSBXQVkg
T1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCi0gKiBU
SEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0gKi8KLQotI2luY2x1ZGUgImNvbmZpZy5o
IgotCi0jaWYgRU5BQkxFKFNFUlZJQ0VfV09SS0VSKQotI2luY2x1ZGUgIldlYlNXT3JpZ2luU3Rv
cmUuaCIKLQotI2luY2x1ZGUgIldlYlNXQ2xpZW50Q29ubmVjdGlvbk1lc3NhZ2VzLmgiCi0jaW5j
bHVkZSAiV2ViU1dTZXJ2ZXJDb25uZWN0aW9uLmgiCi0jaW5jbHVkZSA8V2ViQ29yZS9TZWN1cml0
eU9yaWdpbi5oPgotCi1uYW1lc3BhY2UgV2ViS2l0IHsKLQotdXNpbmcgbmFtZXNwYWNlIFdlYkNv
cmU7Ci0KLVdlYlNXT3JpZ2luU3RvcmU6OldlYlNXT3JpZ2luU3RvcmUoKQotICAgIDogbV9zdG9y
ZSgqdGhpcykKLXsKLX0KLQotdm9pZCBXZWJTV09yaWdpblN0b3JlOjphZGRUb1N0b3JlKGNvbnN0
IFNlY3VyaXR5T3JpZ2luRGF0YSYgb3JpZ2luKQotewotICAgIG1fc3RvcmUuc2NoZWR1bGVBZGRp
dGlvbihjb21wdXRlU2hhcmVkU3RyaW5nSGFzaChvcmlnaW4udG9TdHJpbmcoKSkpOwotICAgIG1f
c3RvcmUuZmx1c2hQZW5kaW5nQ2hhbmdlcygpOwotfQotCi12b2lkIFdlYlNXT3JpZ2luU3RvcmU6
OnJlbW92ZUZyb21TdG9yZShjb25zdCBTZWN1cml0eU9yaWdpbkRhdGEmIG9yaWdpbikKLXsKLSAg
ICBtX3N0b3JlLnNjaGVkdWxlUmVtb3ZhbChjb21wdXRlU2hhcmVkU3RyaW5nSGFzaChvcmlnaW4u
dG9TdHJpbmcoKSkpOwotICAgIG1fc3RvcmUuZmx1c2hQZW5kaW5nQ2hhbmdlcygpOwotfQotCi12
b2lkIFdlYlNXT3JpZ2luU3RvcmU6OmNsZWFyU3RvcmUoKQotewotICAgIG1fc3RvcmUuY2xlYXIo
KTsKLX0KLQotdm9pZCBXZWJTV09yaWdpblN0b3JlOjppbXBvcnRDb21wbGV0ZSgpCi17Ci0gICAg
bV9pc0ltcG9ydGVkID0gdHJ1ZTsKLSAgICBmb3IgKGF1dG8mIGNvbm5lY3Rpb24gOiBtX3dlYlNX
U2VydmVyQ29ubmVjdGlvbnMpCi0gICAgICAgIGNvbm5lY3Rpb24uc2VuZChNZXNzYWdlczo6V2Vi
U1dDbGllbnRDb25uZWN0aW9uOjpTZXRTV09yaWdpblRhYmxlSXNJbXBvcnRlZCgpKTsKLX0KLQot
dm9pZCBXZWJTV09yaWdpblN0b3JlOjpyZWdpc3RlclNXU2VydmVyQ29ubmVjdGlvbihXZWJTV1Nl
cnZlckNvbm5lY3Rpb24mIGNvbm5lY3Rpb24pCi17Ci0gICAgbV93ZWJTV1NlcnZlckNvbm5lY3Rp
b25zLmFkZChjb25uZWN0aW9uKTsKLQotICAgIGlmICghbV9zdG9yZS5pc0VtcHR5KCkpCi0gICAg
ICAgIHNlbmRTdG9yZUhhbmRsZShjb25uZWN0aW9uKTsKLQotICAgIGlmIChtX2lzSW1wb3J0ZWQp
Ci0gICAgICAgIGNvbm5lY3Rpb24uc2VuZChNZXNzYWdlczo6V2ViU1dDbGllbnRDb25uZWN0aW9u
OjpTZXRTV09yaWdpblRhYmxlSXNJbXBvcnRlZCgpKTsKLX0KLQotdm9pZCBXZWJTV09yaWdpblN0
b3JlOjp1bnJlZ2lzdGVyU1dTZXJ2ZXJDb25uZWN0aW9uKFdlYlNXU2VydmVyQ29ubmVjdGlvbiYg
Y29ubmVjdGlvbikKLXsKLSAgICBtX3dlYlNXU2VydmVyQ29ubmVjdGlvbnMucmVtb3ZlKGNvbm5l
Y3Rpb24pOwotfQotCi12b2lkIFdlYlNXT3JpZ2luU3RvcmU6OnNlbmRTdG9yZUhhbmRsZShXZWJT
V1NlcnZlckNvbm5lY3Rpb24mIGNvbm5lY3Rpb24pCi17Ci0gICAgU2hhcmVkTWVtb3J5OjpIYW5k
bGUgaGFuZGxlOwotICAgIGlmICghbV9zdG9yZS5jcmVhdGVTaGFyZWRNZW1vcnlIYW5kbGUoaGFu
ZGxlKSkKLSAgICAgICAgcmV0dXJuOwotCi0jaWYgKE9TKERBUldJTikgfHwgT1MoV0lORE9XUykp
ICYmICFVU0UoVU5JWF9ET01BSU5fU09DS0VUUykKLSAgICB1aW50NjRfdCBkYXRhU2l6ZSA9IGhh
bmRsZS5zaXplKCk7Ci0jZWxzZQotICAgIHVpbnQ2NF90IGRhdGFTaXplID0gMDsKLSNlbmRpZgot
ICAgIGNvbm5lY3Rpb24uc2VuZChNZXNzYWdlczo6V2ViU1dDbGllbnRDb25uZWN0aW9uOjpTZXRT
V09yaWdpblRhYmxlU2hhcmVkTWVtb3J5KFNoYXJlZE1lbW9yeTo6SVBDSGFuZGxlIHsgV1RGTW92
ZShoYW5kbGUpLCBkYXRhU2l6ZSB9KSk7Ci19Ci0KLXZvaWQgV2ViU1dPcmlnaW5TdG9yZTo6ZGlk
SW52YWxpZGF0ZVNoYXJlZE1lbW9yeSgpCi17Ci0gICAgZm9yIChhdXRvJiBjb25uZWN0aW9uIDog
bV93ZWJTV1NlcnZlckNvbm5lY3Rpb25zKQotICAgICAgICBzZW5kU3RvcmVIYW5kbGUoY29ubmVj
dGlvbik7Ci19Ci0KLX0gLy8gbmFtZXNwYWNlIFdlYktpdAotCi0jZW5kaWYgLy8gRU5BQkxFKFNF
UlZJQ0VfV09SS0VSKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9T
ZXJ2aWNlV29ya2VyL1dlYlNXT3JpZ2luU3RvcmUuaCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1By
b2Nlc3MvU2VydmljZVdvcmtlci9XZWJTV09yaWdpblN0b3JlLmgKZGVsZXRlZCBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDc1MWE4NTgwNzhmNmNiNWQ0MTk0ZjUwN2E3MjM2ZWQ0OTVkOTgyZjAuLjAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL1dlYktp
dC9OZXR3b3JrUHJvY2Vzcy9TZXJ2aWNlV29ya2VyL1dlYlNXT3JpZ2luU3RvcmUuaAorKysgL2Rl
di9udWxsCkBAIC0xLDYzICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTcgQXBwbGUg
SW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2Ug
aW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0
aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25z
Ci0gKiBhcmUgbWV0OgotICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3Qg
cmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0
aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0g
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlh
bHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUg
SVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycK
LSAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLAotICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFC
SUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgotICogUFVSUE9TRSBBUkUgRElTQ0xB
SU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCi0g
KiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFM
LCBFWEVNUExBUlksIE9SCi0gKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgotICogU1VCU1RJVFVURSBHT09EUyBPUiBT
RVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCi0gKiBJ
TlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElU
WSwgV0hFVEhFUiBJTgotICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElO
Q0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKLSAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBP
VVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKLSAqIFRI
RSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLSAqLwotCi0jcHJhZ21hIG9uY2UKLQotI2lm
IEVOQUJMRShTRVJWSUNFX1dPUktFUikKLQotI2luY2x1ZGUgIlNoYXJlZFN0cmluZ0hhc2hTdG9y
ZS5oIgotI2luY2x1ZGUgPFdlYkNvcmUvU1dPcmlnaW5TdG9yZS5oPgotI2luY2x1ZGUgPHd0Zi9X
ZWFrSGFzaFNldC5oPgotCi1uYW1lc3BhY2UgV2ViS2l0IHsKLQotY2xhc3MgV2ViU1dTZXJ2ZXJD
b25uZWN0aW9uOwotCi1jbGFzcyBXZWJTV09yaWdpblN0b3JlIGZpbmFsIDogcHVibGljIFdlYkNv
cmU6OlNXT3JpZ2luU3RvcmUsIHByaXZhdGUgU2hhcmVkU3RyaW5nSGFzaFN0b3JlOjpDbGllbnQg
ewotcHVibGljOgotICAgIFdlYlNXT3JpZ2luU3RvcmUoKTsKLQotICAgIHZvaWQgcmVnaXN0ZXJT
V1NlcnZlckNvbm5lY3Rpb24oV2ViU1dTZXJ2ZXJDb25uZWN0aW9uJik7Ci0gICAgdm9pZCB1bnJl
Z2lzdGVyU1dTZXJ2ZXJDb25uZWN0aW9uKFdlYlNXU2VydmVyQ29ubmVjdGlvbiYpOwotICAgIHZv
aWQgaW1wb3J0Q29tcGxldGUoKSBmaW5hbDsKLQotcHJpdmF0ZToKLSAgICB2b2lkIHNlbmRTdG9y
ZUhhbmRsZShXZWJTV1NlcnZlckNvbm5lY3Rpb24mKTsKLQotICAgIHZvaWQgYWRkVG9TdG9yZShj
b25zdCBXZWJDb3JlOjpTZWN1cml0eU9yaWdpbkRhdGEmKSBmaW5hbDsKLSAgICB2b2lkIHJlbW92
ZUZyb21TdG9yZShjb25zdCBXZWJDb3JlOjpTZWN1cml0eU9yaWdpbkRhdGEmKSBmaW5hbDsKLSAg
ICB2b2lkIGNsZWFyU3RvcmUoKSBmaW5hbDsKLQotICAgIC8vIFNoYXJlZFN0cmluZ0hhc2hTdG9y
ZTo6Q2xpZW50LgotICAgIHZvaWQgZGlkSW52YWxpZGF0ZVNoYXJlZE1lbW9yeSgpIGZpbmFsOwot
Ci0gICAgU2hhcmVkU3RyaW5nSGFzaFN0b3JlIG1fc3RvcmU7Ci0gICAgYm9vbCBtX2lzSW1wb3J0
ZWQgeyBmYWxzZSB9OwotICAgIFdlYWtIYXNoU2V0PFdlYlNXU2VydmVyQ29ubmVjdGlvbj4gbV93
ZWJTV1NlcnZlckNvbm5lY3Rpb25zOwotfTsKLQotfSAvLyBuYW1lc3BhY2UgV2ViS2l0Ci0KLSNl
bmRpZiAvLyBFTkFCTEUoU0VSVklDRV9XT1JLRVIpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L05ldHdvcmtQcm9jZXNzL1NlcnZpY2VXb3JrZXIvV2ViU1dTZXJ2ZXJDb25uZWN0aW9uLmNwcCBi
L1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvU2VydmljZVdvcmtlci9XZWJTV1NlcnZlckNv
bm5lY3Rpb24uY3BwCmluZGV4IDQ3ZDQxZjNlNTQ4YmJmOTQ1ZDQ4NDU0OTM4NDU4YmM4MWQ0Nzhk
ZjAuLjczM2ViZjVkMWJlZmUwNzc2OTVlODM1OTg5MTA2ZDgzZTNiZWJiOTQgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvU2VydmljZVdvcmtlci9XZWJTV1NlcnZlckNv
bm5lY3Rpb24uY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvU2VydmljZVdv
cmtlci9XZWJTV1NlcnZlckNvbm5lY3Rpb24uY3BwCkBAIC04MiwxNCArODIsMTAgQEAgV2ViU1dT
ZXJ2ZXJDb25uZWN0aW9uOjpXZWJTV1NlcnZlckNvbm5lY3Rpb24oTmV0d29ya1Byb2Nlc3MmIG5l
dHdvcmtQcm9jZXNzLCBTV1MKICAgICAsIG1fY29udGVudENvbm5lY3Rpb24oY29ubmVjdGlvbikK
ICAgICAsIG1fbmV0d29ya1Byb2Nlc3MobmV0d29ya1Byb2Nlc3MpCiB7Ci0gICAgaWYgKGF1dG8q
IHNlc3Npb24gPSB0aGlzLT5zZXNzaW9uKCkpCi0gICAgICAgIHNlc3Npb24tPnJlZ2lzdGVyU1dT
ZXJ2ZXJDb25uZWN0aW9uKCp0aGlzKTsKIH0KIAogV2ViU1dTZXJ2ZXJDb25uZWN0aW9uOjp+V2Vi
U1dTZXJ2ZXJDb25uZWN0aW9uKCkKIHsKLSAgICBpZiAoYXV0byogc2Vzc2lvbiA9IHRoaXMtPnNl
c3Npb24oKSkKLSAgICAgICAgc2Vzc2lvbi0+dW5yZWdpc3RlclNXU2VydmVyQ29ubmVjdGlvbigq
dGhpcyk7CiAgICAgZm9yIChjb25zdCBhdXRvJiBrZXlWYWx1ZSA6IG1fY2xpZW50T3JpZ2lucykK
ICAgICAgICAgc2VydmVyKCkudW5yZWdpc3RlclNlcnZpY2VXb3JrZXJDbGllbnQoa2V5VmFsdWUu
dmFsdWUsIGtleVZhbHVlLmtleSk7CiAgICAgZm9yIChhdXRvJiBjb21wbGV0aW9uSGFuZGxlciA6
IG1fdW5yZWdpc3RlckpvYnMudmFsdWVzKCkpCkBAIC0zODgsMTggKzM4NCwzMCBAQCB2b2lkIFdl
YlNXU2VydmVyQ29ubmVjdGlvbjo6cG9zdE1lc3NhZ2VUb1NlcnZpY2VXb3JrZXJDbGllbnQoU2Ny
aXB0RXhlY3V0aW9uQ29udAogICAgIHNlbmQoTWVzc2FnZXM6OldlYlNXQ2xpZW50Q29ubmVjdGlv
bjo6UG9zdE1lc3NhZ2VUb1NlcnZpY2VXb3JrZXJDbGllbnQgeyBkZXN0aW5hdGlvbkNvbnRleHRJ
ZGVudGlmaWVyLCBtZXNzYWdlLCBzb3VyY2VTZXJ2aWNlV29ya2VyLT5kYXRhKCksIHNvdXJjZU9y
aWdpbiB9KTsKIH0KIAotdm9pZCBXZWJTV1NlcnZlckNvbm5lY3Rpb246Om1hdGNoUmVnaXN0cmF0
aW9uKGNvbnN0IFNlY3VyaXR5T3JpZ2luRGF0YSYgdG9wT3JpZ2luLCBjb25zdCBVUkwmIGNsaWVu
dFVSTCwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChzdGQ6Om9wdGlvbmFsPFNlcnZpY2VXb3JrZXJS
ZWdpc3RyYXRpb25EYXRhPiYmKT4mJiBjYWxsYmFjaykKK3ZvaWQgV2ViU1dTZXJ2ZXJDb25uZWN0
aW9uOjptYXRjaFJlZ2lzdHJhdGlvbihTZWN1cml0eU9yaWdpbkRhdGEmJiB0b3BPcmlnaW4sIFVS
TCYmIGNsaWVudFVSTCwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChzdGQ6Om9wdGlvbmFsPFNlcnZp
Y2VXb3JrZXJSZWdpc3RyYXRpb25EYXRhPiYmKT4mJiBjYWxsYmFjaykKIHsKLSAgICBpZiAoYXV0
byogcmVnaXN0cmF0aW9uID0gZG9SZWdpc3RyYXRpb25NYXRjaGluZyh0b3BPcmlnaW4sIGNsaWVu
dFVSTCkpIHsKLSAgICAgICAgY2FsbGJhY2socmVnaXN0cmF0aW9uLT5kYXRhKCkpOwotICAgICAg
ICByZXR1cm47Ci0gICAgfQotICAgIGNhbGxiYWNrKHsgfSk7CisgICAgc2VydmVyKCkud2hlbklt
cG9ydElzQ29tcGxldGVkSWZOZWVkZWQoW3dlYWtUaGlzID0gV2Vha1B0ciB7ICp0aGlzIH0sIHRv
cE9yaWdpbiA9IFdURk1vdmUodG9wT3JpZ2luKSwgY2xpZW50VVJMID0gV1RGTW92ZShjbGllbnRV
UkwpLCBjYWxsYmFjayA9IFdURk1vdmUoY2FsbGJhY2spXSgpIG11dGFibGUgeworICAgICAgICBp
ZiAoIXdlYWtUaGlzKSB7CisgICAgICAgICAgICBjYWxsYmFjayh7IH0pOworICAgICAgICAgICAg
cmV0dXJuOworICAgICAgICB9CisgICAgICAgIGlmIChhdXRvKiByZWdpc3RyYXRpb24gPSB3ZWFr
VGhpcy0+ZG9SZWdpc3RyYXRpb25NYXRjaGluZyh0b3BPcmlnaW4sIGNsaWVudFVSTCkpIHsKKyAg
ICAgICAgICAgIGNhbGxiYWNrKHJlZ2lzdHJhdGlvbi0+ZGF0YSgpKTsKKyAgICAgICAgICAgIHJl
dHVybjsKKyAgICAgICAgfQorICAgICAgICBjYWxsYmFjayh7IH0pOworICAgIH0pOwogfQogCi12
b2lkIFdlYlNXU2VydmVyQ29ubmVjdGlvbjo6Z2V0UmVnaXN0cmF0aW9ucyhjb25zdCBTZWN1cml0
eU9yaWdpbkRhdGEmIHRvcE9yaWdpbiwgY29uc3QgVVJMJiBjbGllbnRVUkwsIENvbXBsZXRpb25I
YW5kbGVyPHZvaWQoY29uc3QgVmVjdG9yPFNlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb25EYXRhPiYp
PiYmIGNhbGxiYWNrKQordm9pZCBXZWJTV1NlcnZlckNvbm5lY3Rpb246OmdldFJlZ2lzdHJhdGlv
bnMoU2VjdXJpdHlPcmlnaW5EYXRhJiYgdG9wT3JpZ2luLCBVUkwmJiBjbGllbnRVUkwsIENvbXBs
ZXRpb25IYW5kbGVyPHZvaWQoY29uc3QgVmVjdG9yPFNlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb25E
YXRhPiYpPiYmIGNhbGxiYWNrKQogewotICAgIGNhbGxiYWNrKHNlcnZlcigpLmdldFJlZ2lzdHJh
dGlvbnModG9wT3JpZ2luLCBjbGllbnRVUkwpKTsKKyAgICBzZXJ2ZXIoKS53aGVuSW1wb3J0SXND
b21wbGV0ZWRJZk5lZWRlZChbd2Vha1RoaXMgPSBXZWFrUHRyIHsgKnRoaXMgfSwgdG9wT3JpZ2lu
ID0gV1RGTW92ZSh0b3BPcmlnaW4pLCBjbGllbnRVUkwgPSBXVEZNb3ZlKGNsaWVudFVSTCksIGNh
bGxiYWNrID0gV1RGTW92ZShjYWxsYmFjayldKCkgbXV0YWJsZSB7CisgICAgICAgIGlmICghd2Vh
a1RoaXMpIHsKKyAgICAgICAgICAgIGNhbGxiYWNrKHsgfSk7CisgICAgICAgICAgICByZXR1cm47
CisgICAgICAgIH0KKyAgICAgICAgY2FsbGJhY2sod2Vha1RoaXMtPnNlcnZlcigpLmdldFJlZ2lz
dHJhdGlvbnModG9wT3JpZ2luLCBjbGllbnRVUkwpKTsKKyAgICB9KTsKIH0KIAogdm9pZCBXZWJT
V1NlcnZlckNvbm5lY3Rpb246OnJlZ2lzdGVyU2VydmljZVdvcmtlckNsaWVudChXZWJDb3JlOjpD
bGllbnRPcmlnaW4mJiBjbGllbnRPcmlnaW4sIFNlcnZpY2VXb3JrZXJDbGllbnREYXRhJiYgZGF0
YSwgY29uc3Qgc3RkOjpvcHRpb25hbDxTZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uSWRlbnRpZmll
cj4mIGNvbnRyb2xsaW5nU2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbklkZW50aWZpZXIsIFN0cmlu
ZyYmIHVzZXJBZ2VudCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mv
U2VydmljZVdvcmtlci9XZWJTV1NlcnZlckNvbm5lY3Rpb24uaCBiL1NvdXJjZS9XZWJLaXQvTmV0
d29ya1Byb2Nlc3MvU2VydmljZVdvcmtlci9XZWJTV1NlcnZlckNvbm5lY3Rpb24uaAppbmRleCA5
Zjg0NjZhOTVjOTUwNDA4MWJlYzliNzJlZTBjOGQ3YjlkNmU5ZDFmLi43NzY3YWExMjJjZjZjMjZl
NjBjNWJmMTEwZjliNDk5ODIxZTFlZGFkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdv
cmtQcm9jZXNzL1NlcnZpY2VXb3JrZXIvV2ViU1dTZXJ2ZXJDb25uZWN0aW9uLmgKKysrIGIvU291
cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9TZXJ2aWNlV29ya2VyL1dlYlNXU2VydmVyQ29ubmVj
dGlvbi5oCkBAIC0xMTIsOCArMTEyLDggQEAgcHJpdmF0ZToKIAogICAgIHZvaWQgc3RhcnRGZXRj
aChTZXJ2aWNlV29ya2VyRmV0Y2hUYXNrJiwgV2ViQ29yZTo6U1dTZXJ2ZXJXb3JrZXImKTsKIAot
ICAgIHZvaWQgbWF0Y2hSZWdpc3RyYXRpb24oY29uc3QgV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW5E
YXRhJiB0b3BPcmlnaW4sIGNvbnN0IFVSTCYgY2xpZW50VVJMLCBDb21wbGV0aW9uSGFuZGxlcjx2
b2lkKHN0ZDo6b3B0aW9uYWw8V2ViQ29yZTo6U2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbkRhdGE+
JiYpPiYmKTsKLSAgICB2b2lkIGdldFJlZ2lzdHJhdGlvbnMoY29uc3QgV2ViQ29yZTo6U2VjdXJp
dHlPcmlnaW5EYXRhJiB0b3BPcmlnaW4sIGNvbnN0IFVSTCYgY2xpZW50VVJMLCBDb21wbGV0aW9u
SGFuZGxlcjx2b2lkKGNvbnN0IFZlY3RvcjxXZWJDb3JlOjpTZXJ2aWNlV29ya2VyUmVnaXN0cmF0
aW9uRGF0YT4mKT4mJik7CisgICAgdm9pZCBtYXRjaFJlZ2lzdHJhdGlvbihXZWJDb3JlOjpTZWN1
cml0eU9yaWdpbkRhdGEmJiwgVVJMJiYsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoc3RkOjpvcHRp
b25hbDxXZWJDb3JlOjpTZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uRGF0YT4mJik+JiYpOworICAg
IHZvaWQgZ2V0UmVnaXN0cmF0aW9ucyhXZWJDb3JlOjpTZWN1cml0eU9yaWdpbkRhdGEmJiwgVVJM
JiYsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoY29uc3QgVmVjdG9yPFdlYkNvcmU6OlNlcnZpY2VX
b3JrZXJSZWdpc3RyYXRpb25EYXRhPiYpPiYmKTsKIAogICAgIHZvaWQgdGVybWluYXRlV29ya2Vy
RnJvbUNsaWVudChXZWJDb3JlOjpTZXJ2aWNlV29ya2VySWRlbnRpZmllciwgQ29tcGxldGlvbkhh
bmRsZXI8dm9pZCgpPiYmKTsKICAgICB2b2lkIHdoZW5TZXJ2aWNlV29ya2VySXNUZXJtaW5hdGVk
Rm9yVGVzdGluZyhXZWJDb3JlOjpTZXJ2aWNlV29ya2VySWRlbnRpZmllciwgQ29tcGxldGlvbkhh
bmRsZXI8dm9pZCgpPiYmKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU291cmNlcy50eHQg
Yi9Tb3VyY2UvV2ViS2l0L1NvdXJjZXMudHh0CmluZGV4IGVhMGMwNjYzM2E0NjcyNmQ2NmZiNzQx
MjE5NmYzNDEwYTgzOTI0OTMuLjY5OWVkYzg0ZjRmYjBjMzQwZjFhOTJhMGE3OWI3NTlhOWQxMTM0
NDYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU291cmNlcy50eHQKKysrIGIvU291cmNlL1dl
YktpdC9Tb3VyY2VzLnR4dApAQCAtMTM1LDcgKzEzNSw2IEBAIE5ldHdvcmtQcm9jZXNzL1NlcnZp
Y2VXb3JrZXIvU2VydmljZVdvcmtlckRvd25sb2FkVGFzay5jcHAKIE5ldHdvcmtQcm9jZXNzL1Nl
cnZpY2VXb3JrZXIvU2VydmljZVdvcmtlckZldGNoVGFzay5jcHAKIE5ldHdvcmtQcm9jZXNzL1Nl
cnZpY2VXb3JrZXIvU2VydmljZVdvcmtlck5hdmlnYXRpb25QcmVsb2FkZXIuY3BwCiBOZXR3b3Jr
UHJvY2Vzcy9TZXJ2aWNlV29ya2VyL1NlcnZpY2VXb3JrZXJTb2Z0VXBkYXRlTG9hZGVyLmNwcAot
TmV0d29ya1Byb2Nlc3MvU2VydmljZVdvcmtlci9XZWJTV09yaWdpblN0b3JlLmNwcCBAbm8tdW5p
ZnkKIE5ldHdvcmtQcm9jZXNzL1NlcnZpY2VXb3JrZXIvV2ViU1dTZXJ2ZXJDb25uZWN0aW9uLmNw
cCBAbm8tdW5pZnkKIE5ldHdvcmtQcm9jZXNzL1NlcnZpY2VXb3JrZXIvV2ViU1dTZXJ2ZXJUb0Nv
bnRleHRDb25uZWN0aW9uLmNwcCBAbm8tdW5pZnkKIApAQCAtNzk2LDcgKzc5NSw2IEBAIFdlYlBy
b2Nlc3MvU3BlZWNoL1NwZWVjaFJlY29nbml0aW9uUmVhbHRpbWVNZWRpYVNvdXJjZU1hbmFnZXIu
Y3BwCiBXZWJQcm9jZXNzL1N0b3JhZ2UvUmVtb3RlV29ya2VyRnJhbWVMb2FkZXJDbGllbnQuY3Bw
CiBXZWJQcm9jZXNzL1N0b3JhZ2UvV2ViU1dDbGllbnRDb25uZWN0aW9uLmNwcAogV2ViUHJvY2Vz
cy9TdG9yYWdlL1dlYlNXQ29udGV4dE1hbmFnZXJDb25uZWN0aW9uLmNwcAotV2ViUHJvY2Vzcy9T
dG9yYWdlL1dlYlNXT3JpZ2luVGFibGUuY3BwCiBXZWJQcm9jZXNzL1N0b3JhZ2UvV2ViU2Vydmlj
ZVdvcmtlckZldGNoVGFza0NsaWVudC5jcHAKIFdlYlByb2Nlc3MvU3RvcmFnZS9XZWJTZXJ2aWNl
V29ya2VyUHJvdmlkZXIuY3BwCiBXZWJQcm9jZXNzL1N0b3JhZ2UvV2ViU2hhcmVkV29ya2VyQ29u
dGV4dE1hbmFnZXJDb25uZWN0aW9uLmNwcApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJL
aXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1NvdXJjZS9XZWJLaXQvV2ViS2l0Lnhjb2Rl
cHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggMWIyYzRhYzNhOWEzMGMzOWIwNzQzYzVhNDk2YTNh
ZTM2MWU5ZTY2OS4uMTZhNTYxM2RiMzJlNTA5ODU4YTExOTE5YzEzODVhYjEwNzU3YTlkNSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagor
KysgYi9Tb3VyY2UvV2ViS2l0L1dlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC0x
NDM2LDcgKzE0MzYsNiBAQAogCQk4M0EwRUQzNTFGNzQ3Q0NGMDAzMjk5RUIgLyogUHJlY29ubmVj
dFRhc2suaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDgz
QTBFRDMyMUY3NDdDQzYwMDMyOTlFQiAvKiBQcmVjb25uZWN0VGFzay5oICovOyB9OwogCQk4M0Q0
NTRENzFCRTlEM0M0MDA2QzkzQkQgLyogTmV0d29ya0xvYWRDbGllbnQuaCBpbiBIZWFkZXJzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDgzRDQ1NEQ2MUJFOUQzQzQwMDZDOTNC
RCAvKiBOZXR3b3JrTG9hZENsaWVudC5oICovOyB9OwogCQk4M0VFNTc1QzFEQjdENjExMDBDNzRD
NTAgLyogV2ViVmFsaWRhdGlvbk1lc3NhZ2VDbGllbnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDgzRUU1NzVBMURCN0Q2MDYwMEM3NEM1MCAvKiBXZWJW
YWxpZGF0aW9uTWVzc2FnZUNsaWVudC5oICovOyB9OwotCQk4M0YxQTA3QTFGOTZFNzc5MDA0NUI5
NEUgLyogV2ViU1dPcmlnaW5UYWJsZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gODNGMUEwNzgxRjk2RTc3MTAwNDVCOTRFIC8qIFdlYlNXT3JpZ2luVGFi
bGUuaCAqLzsgfTsKIAkJODNGOTY0NEUxRkEwRjc2RTAwQzQ3NzUwIC8qIFNoYXJlZFN0cmluZ0hh
c2hUYWJsZVJlYWRPbmx5LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSA4M0Y5NjQ0QzFGQTBGNzYzMDBDNDc3NTAgLyogU2hhcmVkU3RyaW5nSGFzaFRhYmxl
UmVhZE9ubHkuaCAqLzsgfTsKIAkJODQ0Nzc4NTMxNzZGQ0MwODAwQ0RDN0JCIC8qIEluamVjdGVk
QnVuZGxlSGl0VGVzdFJlc3VsdE1lZGlhVHlwZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gODQ0Nzc4NTExNzZGQ0FDMTAwQ0RDN0JCIC8qIEluamVjdGVk
QnVuZGxlSGl0VGVzdFJlc3VsdE1lZGlhVHlwZS5oICovOyB9OwogCQk4NjQ0ODkwQjI3QjQ3MDIw
MDA3QTFDNjYgLyogX1dLU3lzdGVtUHJlZmVyZW5jZXMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDg2NDQ4OTBBMjdCNDcwMjAwMDdBMUM2NiAvKiBfV0tT
eXN0ZW1QcmVmZXJlbmNlcy5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUs
ICk7IH07IH07CkBAIC0xNDcxLDggKzE0NzAsNiBAQAogCQk5MzU0MjQyQzI3MDNCRENCMDA1Q0E3
MkMgLyogV2ViRmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uLmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5MzU0MjQyQTI3MDNCRENCMDA1Q0E3MkMgLyog
V2ViRmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uLmggKi87IH07CiAJCTkzNTZGMkRDMjE1MkI2
QjUwMEU2RDVERiAvKiBXZWJTV0NsaWVudENvbm5lY3Rpb24uaCBpbiBIZWFkZXJzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUxN0E1MzAyMUY0NzkzQjIwMERDREMwQSAvKiBX
ZWJTV0NsaWVudENvbm5lY3Rpb24uaCAqLzsgfTsKIAkJOTM1NkYyREQyMTUyQjZGNjAwRTZENURG
IC8qIFdlYlNXU2VydmVyQ29ubmVjdGlvbi5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gOTNCQTA0RTAyMTUxQURGNDAwN0Y0NTVGIC8qIFdlYlNXU2VydmVy
Q29ubmVjdGlvbi5oICovOyB9OwotCQk5MzU2RjJERTIxNTJCNzEwMDBFNkQ1REYgLyogV2ViU1dP
cmlnaW5TdG9yZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gOTNCQTA0REUyMTUxQURGNDAwN0Y0NTVGIC8qIFdlYlNXT3JpZ2luU3RvcmUuaCAqLzsgfTsK
LQkJOTM1NkYyREYyMTUyQjcyMzAwRTZENURGIC8qIFdlYlNXT3JpZ2luU3RvcmUuY3BwIGluIFNv
dXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTNCQTA0REYyMTUxQURG
NDAwN0Y0NTVGIC8qIFdlYlNXT3JpZ2luU3RvcmUuY3BwICovOyB9OwogCQk5MzU2RjJFMDIxNTJC
NzUyMDBFNkQ1REYgLyogV2ViU1dTZXJ2ZXJUb0NvbnRleHRDb25uZWN0aW9uLmNwcCBpbiBTb3Vy
Y2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkzQkEwNEREMjE1MUFERjMw
MDdGNDU1RiAvKiBXZWJTV1NlcnZlclRvQ29udGV4dENvbm5lY3Rpb24uY3BwICovOyB9OwogCQk5
MzU2RjJFMTIxNTJCNzY2MDBFNkQ1REYgLyogV2ViU1dTZXJ2ZXJDb25uZWN0aW9uLmNwcCBpbiBT
b3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkzQkEwNEUxMjE1MUFE
RjQwMDdGNDU1RiAvKiBXZWJTV1NlcnZlckNvbm5lY3Rpb24uY3BwICovOyB9OwogCQk5MzVCNTc5
QTI2RjUxOTMzMDA4QjQ4QUMgLyogRmlsZVN5c3RlbVN0b3JhZ2VIYW5kbGVSZWdpc3RyeS5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTM1QjU3OTgyNkY1
MTI3MDAwOEI0OEFDIC8qIEZpbGVTeXN0ZW1TdG9yYWdlSGFuZGxlUmVnaXN0cnkuaCAqLzsgfTsK
QEAgLTU3MDMsOCArNTcwMCw2IEBACiAJCTgzRDQ1NEQ2MUJFOUQzQzQwMDZDOTNCRCAvKiBOZXR3
b3JrTG9hZENsaWVudC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBOZXR3b3Jr
TG9hZENsaWVudC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk4M0VFNTc1OTFEQjdE
NjA2MDBDNzRDNTAgLyogV2ViVmFsaWRhdGlvbk1lc3NhZ2VDbGllbnQuY3BwICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gV2ViVmFsaWRhdGlvbk1lc3NhZ2VDbGllbnQuY3Bw
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk4M0VFNTc1QTFEQjdENjA2MDBDNzRDNTAg
LyogV2ViVmFsaWRhdGlvbk1lc3NhZ2VDbGllbnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5o
OyBwYXRoID0gV2ViVmFsaWRhdGlvbk1lc3NhZ2VDbGllbnQuaDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKLQkJODNGMUEwNzcxRjk2RTc3MDAwNDVCOTRFIC8qIFdlYlNXT3JpZ2luVGFibGUu
Y3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gV2ViU1dPcmlnaW5UYWJs
ZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTgzRjFBMDc4MUY5NkU3NzEwMDQ1
Qjk0RSAvKiBXZWJTV09yaWdpblRhYmxlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0
aCA9IFdlYlNXT3JpZ2luVGFibGUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJODNG
OTY0NEIxRkEwRjc2MjAwQzQ3NzUwIC8qIFNoYXJlZFN0cmluZ0hhc2hUYWJsZVJlYWRPbmx5LmNw
cCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFNoYXJlZFN0cmluZ0hhc2hU
YWJsZVJlYWRPbmx5LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJODNGOTY0NEMx
RkEwRjc2MzAwQzQ3NzUwIC8qIFNoYXJlZFN0cmluZ0hhc2hUYWJsZVJlYWRPbmx5LmggKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFNoYXJlZFN0cmluZ0hhc2hUYWJsZVJlYWRPbmx5
Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTg0NDc3ODUxMTc2RkNBQzEwMENEQzdC
QiAvKiBJbmplY3RlZEJ1bmRsZUhpdFRlc3RSZXN1bHRNZWRpYVR5cGUuaCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuYy5oOyBwYXRoID0gSW5qZWN0ZWRCdW5kbGVIaXRUZXN0UmVzdWx0TWVkaWFUeXBl
Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC01ODIwLDggKzU4MTUsNiBAQAogCQk5
M0JBMDREQjIxNTFBREYzMDA3RjQ1NUYgLyogV2ViU1dTZXJ2ZXJUb0NvbnRleHRDb25uZWN0aW9u
LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdlYlNXU2VydmVyVG9Db250ZXh0
Q29ubmVjdGlvbi5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5M0JBMDREQzIxNTFB
REYzMDA3RjQ1NUYgLyogV2ViU1dTZXJ2ZXJUb0NvbnRleHRDb25uZWN0aW9uLm1lc3NhZ2VzLmlu
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IFdlYlNXU2VydmVyVG9Db250ZXh0Q29ubmVjdGlvbi5t
ZXNzYWdlcy5pbjsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOTNCQTA0REQyMTUxQURG
MzAwN0Y0NTVGIC8qIFdlYlNXU2VydmVyVG9Db250ZXh0Q29ubmVjdGlvbi5jcHAgKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBXZWJTV1NlcnZlclRvQ29udGV4dENvbm5lY3Rp
b24uY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQk5M0JBMDRERTIxNTFBREY0MDA3
RjQ1NUYgLyogV2ViU1dPcmlnaW5TdG9yZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBh
dGggPSBXZWJTV09yaWdpblN0b3JlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTkz
QkEwNERGMjE1MUFERjQwMDdGNDU1RiAvKiBXZWJTV09yaWdpblN0b3JlLmNwcCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFdlYlNXT3JpZ2luU3RvcmUuY3BwOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwogCQk5M0JBMDRFMDIxNTFBREY0MDA3RjQ1NUYgLyogV2ViU1dT
ZXJ2ZXJDb25uZWN0aW9uLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdlYlNX
U2VydmVyQ29ubmVjdGlvbi5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5M0JBMDRF
MTIxNTFBREY0MDA3RjQ1NUYgLyogV2ViU1dTZXJ2ZXJDb25uZWN0aW9uLmNwcCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFdlYlNXU2VydmVyQ29ubmVjdGlvbi5jcHA7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTkzQkRFQjAwMTcxREQ3QUYwMEJGRUUxQiAvKiBX
S1BhZ2VMb2FkVHlwZXNQcml2YXRlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9
IFdLUGFnZUxvYWRUeXBlc1ByaXZhdGUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAg
LTEwMjk0LDggKzEwMjg3LDYgQEAKIAkJCQk0NjZCQzAzODFGQTI2NkM5MDAyRkE5QzEgLyogV2Vi
U1dDb250ZXh0TWFuYWdlckNvbm5lY3Rpb24uY3BwICovLAogCQkJCTQ2NkJDMDM5MUZBMjY2Qzkw
MDJGQTlDMSAvKiBXZWJTV0NvbnRleHRNYW5hZ2VyQ29ubmVjdGlvbi5oICovLAogCQkJCTQ2NkJD
MDNBMUZBMjY2QzkwMDJGQTlDMSAvKiBXZWJTV0NvbnRleHRNYW5hZ2VyQ29ubmVjdGlvbi5tZXNz
YWdlcy5pbiAqLywKLQkJCQk4M0YxQTA3NzFGOTZFNzcwMDA0NUI5NEUgLyogV2ViU1dPcmlnaW5U
YWJsZS5jcHAgKi8sCi0JCQkJODNGMUEwNzgxRjk2RTc3MTAwNDVCOTRFIC8qIFdlYlNXT3JpZ2lu
VGFibGUuaCAqLywKIAkJCSk7CiAJCQlwYXRoID0gU3RvcmFnZTsKIAkJCXNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7CkBAIC0xMTM1NCw4ICsxMTM0NSw2IEBACiAJCQkJNDFFQjREM0EyNzRDRTA0NTAw
QTkyNzJCIC8qIFNlcnZpY2VXb3JrZXJOYXZpZ2F0aW9uUHJlbG9hZGVyLmggKi8sCiAJCQkJNDFE
NUM2RDkyMzhFQjIwRTAwQjlCM0NCIC8qIFNlcnZpY2VXb3JrZXJTb2Z0VXBkYXRlTG9hZGVyLmNw
cCAqLywKIAkJCQk0MUQ1QzZEODIzOEVCMjBEMDBCOUIzQ0IgLyogU2VydmljZVdvcmtlclNvZnRV
cGRhdGVMb2FkZXIuaCAqLywKLQkJCQk5M0JBMDRERjIxNTFBREY0MDA3RjQ1NUYgLyogV2ViU1dP
cmlnaW5TdG9yZS5jcHAgKi8sCi0JCQkJOTNCQTA0REUyMTUxQURGNDAwN0Y0NTVGIC8qIFdlYlNX
T3JpZ2luU3RvcmUuaCAqLywKIAkJCQk5M0JBMDRFMTIxNTFBREY0MDA3RjQ1NUYgLyogV2ViU1dT
ZXJ2ZXJDb25uZWN0aW9uLmNwcCAqLywKIAkJCQk5M0JBMDRFMDIxNTFBREY0MDA3RjQ1NUYgLyog
V2ViU1dTZXJ2ZXJDb25uZWN0aW9uLmggKi8sCiAJCQkJOTNCQTA0REEyMTUxQURGMzAwN0Y0NTVG
IC8qIFdlYlNXU2VydmVyQ29ubmVjdGlvbi5tZXNzYWdlcy5pbiAqLywKQEAgLTE1MTI4LDggKzE1
MTE3LDYgQEAKIAkJCQk0NjZCQzAzQzFGQTI2NkRBMDAyRkE5QzEgLyogV2ViU1dDb250ZXh0TWFu
YWdlckNvbm5lY3Rpb24uaCBpbiBIZWFkZXJzICovLAogCQkJCTQ2MEY0ODkwMUY5OTZGNzEwMENG
NEI4NyAvKiBXZWJTV0NvbnRleHRNYW5hZ2VyQ29ubmVjdGlvbk1lc3NhZ2VzLmggaW4gSGVhZGVy
cyAqLywKIAkJCQlDMTFBOUVDQzIxNDAzNUY4MDBDRkIyMEEgLyogV2ViU3dpdGNoaW5nR1BVQ2xp
ZW50LmggaW4gSGVhZGVycyAqLywKLQkJCQk5MzU2RjJERTIxNTJCNzEwMDBFNkQ1REYgLyogV2Vi
U1dPcmlnaW5TdG9yZS5oIGluIEhlYWRlcnMgKi8sCi0JCQkJODNGMUEwN0ExRjk2RTc3OTAwNDVC
OTRFIC8qIFdlYlNXT3JpZ2luVGFibGUuaCBpbiBIZWFkZXJzICovLAogCQkJCTkzNTZGMkREMjE1
MkI2RjYwMEU2RDVERiAvKiBXZWJTV1NlcnZlckNvbm5lY3Rpb24uaCBpbiBIZWFkZXJzICovLAog
CQkJCTUxN0E1MkQ5MUY0M0E5REEwMERDREMwQSAvKiBXZWJTV1NlcnZlckNvbm5lY3Rpb25NZXNz
YWdlcy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNTE1MjYyQkMxRkI5NTE1RDAwNzBFNTc5IC8qIFdl
YlNXU2VydmVyVG9Db250ZXh0Q29ubmVjdGlvbk1lc3NhZ2VzLmggaW4gSGVhZGVycyAqLywKQEAg
LTE3Mzc1LDcgKzE3MzYyLDYgQEAKIAkJCQk5M0Q2Qjc4QTI1NENENDNFMDA1OEREM0EgLyogV2Vi
U3BlZWNoUmVjb2duaXRpb25Db25uZWN0aW9uTWVzc2FnZVJlY2VpdmVyLmNwcCBpbiBTb3VyY2Vz
ICovLAogCQkJCTUxN0E1MzBGMUY0N0E4NjIwMERDREMwQSAvKiBXZWJTV0NsaWVudENvbm5lY3Rp
b25NZXNzYWdlUmVjZWl2ZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJNDYwRjQ4OEYxRjk5NkY3
MTAwQ0Y0Qjg3IC8qIFdlYlNXQ29udGV4dE1hbmFnZXJDb25uZWN0aW9uTWVzc2FnZVJlY2VpdmVy
LmNwcCBpbiBTb3VyY2VzICovLAotCQkJCTkzNTZGMkRGMjE1MkI3MjMwMEU2RDVERiAvKiBXZWJT
V09yaWdpblN0b3JlLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTkzNTZGMkUxMjE1MkI3NjYwMEU2
RDVERiAvKiBXZWJTV1NlcnZlckNvbm5lY3Rpb24uY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJNTE3
QTUyRDgxRjQzQTlEQTAwRENEQzBBIC8qIFdlYlNXU2VydmVyQ29ubmVjdGlvbk1lc3NhZ2VSZWNl
aXZlci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk5MzU2RjJFMDIxNTJCNzUyMDBFNkQ1REYgLyog
V2ViU1dTZXJ2ZXJUb0NvbnRleHRDb25uZWN0aW9uLmNwcCBpbiBTb3VyY2VzICovLApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1N0b3JhZ2UvV2ViU1dDbGllbnRDb25uZWN0
aW9uLmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9TdG9yYWdlL1dlYlNXQ2xpZW50Q29u
bmVjdGlvbi5jcHAKaW5kZXggYTUzZDA2OTRiZGM1ZDdiMjFiMDBhNDM5MTA3MTFlN2FjMGVkZDJj
ZS4uN2UwZmQxYjAzNWY1NTdkODRjZGI5ZjRkYjc3ZjAyYTI5MzI4NWZmNiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1N0b3JhZ2UvV2ViU1dDbGllbnRDb25uZWN0aW9uLmNw
cAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvU3RvcmFnZS9XZWJTV0NsaWVudENvbm5l
Y3Rpb24uY3BwCkBAIC0zOSw3ICszOSw2IEBACiAjaW5jbHVkZSAiV2ViUGFnZVByb3h5TWVzc2Fn
ZXMuaCIKICNpbmNsdWRlICJXZWJQcm9jZXNzLmgiCiAjaW5jbHVkZSAiV2ViUHJvY2Vzc1Byb3h5
TWVzc2FnZXMuaCIKLSNpbmNsdWRlICJXZWJTV09yaWdpblRhYmxlLmgiCiAjaW5jbHVkZSAiV2Vi
U1dTZXJ2ZXJDb25uZWN0aW9uTWVzc2FnZXMuaCIKICNpbmNsdWRlIDxXZWJDb3JlL0RvY3VtZW50
Lmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9Eb2N1bWVudExvYWRlci5oPgpAQCAtNjIsNyArNjEsNiBA
QCB1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKIAogV2ViU1dDbGllbnRDb25uZWN0aW9uOjpXZWJT
V0NsaWVudENvbm5lY3Rpb24oKQogICAgIDogbV9pZGVudGlmaWVyKFByb2Nlc3M6OmlkZW50aWZp
ZXIoKSkKLSAgICAsIG1fc3dPcmlnaW5UYWJsZShtYWtlVW5pcXVlUmVmPFdlYlNXT3JpZ2luVGFi
bGU+KCkpCiB7CiB9CiAKQEAgLTc4LDkgKzc2LDcgQEAgSVBDOjpDb25uZWN0aW9uKiBXZWJTV0Ns
aWVudENvbm5lY3Rpb246Om1lc3NhZ2VTZW5kZXJDb25uZWN0aW9uKCkgY29uc3QKIAogdm9pZCBX
ZWJTV0NsaWVudENvbm5lY3Rpb246OnNjaGVkdWxlSm9iSW5TZXJ2ZXIoY29uc3QgU2VydmljZVdv
cmtlckpvYkRhdGEmIGpvYkRhdGEpCiB7Ci0gICAgcnVuT3JEZWxheVRhc2tGb3JJbXBvcnQoW3Ro
aXMsIGpvYkRhdGFdIHsKLSAgICAgICAgc2VuZChNZXNzYWdlczo6V2ViU1dTZXJ2ZXJDb25uZWN0
aW9uOjpTY2hlZHVsZUpvYkluU2VydmVyIHsgam9iRGF0YSB9KTsKLSAgICB9KTsKKyAgICBzZW5k
KE1lc3NhZ2VzOjpXZWJTV1NlcnZlckNvbm5lY3Rpb246OlNjaGVkdWxlSm9iSW5TZXJ2ZXIgeyBq
b2JEYXRhIH0pOwogfQogCiB2b2lkIFdlYlNXQ2xpZW50Q29ubmVjdGlvbjo6ZmluaXNoRmV0Y2hp
bmdTY3JpcHRJblNlcnZlcihjb25zdCBTZXJ2aWNlV29ya2VySm9iRGF0YUlkZW50aWZpZXImIGpv
YkRhdGFJZGVudGlmaWVyLCBTZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uS2V5JiYgcmVnaXN0cmF0
aW9uS2V5LCBXb3JrZXJGZXRjaFJlc3VsdCYmIHJlc3VsdCkKQEAgLTEzMCw0NyArMTI2LDEwIEBA
IHZvaWQgV2ViU1dDbGllbnRDb25uZWN0aW9uOjpkaWRSZXNvbHZlUmVnaXN0cmF0aW9uUHJvbWlz
ZShjb25zdCBTZXJ2aWNlV29ya2VyUmVnCiAgICAgc2VuZChNZXNzYWdlczo6V2ViU1dTZXJ2ZXJD
b25uZWN0aW9uOjpEaWRSZXNvbHZlUmVnaXN0cmF0aW9uUHJvbWlzZSB7IGtleSB9KTsKIH0KIAot
Ym9vbCBXZWJTV0NsaWVudENvbm5lY3Rpb246Om1heUhhdmVTZXJ2aWNlV29ya2VyUmVnaXN0ZXJl
ZEZvck9yaWdpbihjb25zdCBTZWN1cml0eU9yaWdpbkRhdGEmIG9yaWdpbikgY29uc3QKLXsKLSAg
ICBpZiAoIW1fc3dPcmlnaW5UYWJsZS0+aXNJbXBvcnRlZCgpKQotICAgICAgICByZXR1cm4gdHJ1
ZTsKLQotICAgIHJldHVybiBtX3N3T3JpZ2luVGFibGUtPmNvbnRhaW5zKG9yaWdpbik7Ci19Ci0K
LXZvaWQgV2ViU1dDbGllbnRDb25uZWN0aW9uOjpzZXRTV09yaWdpblRhYmxlU2hhcmVkTWVtb3J5
KGNvbnN0IFNoYXJlZE1lbW9yeTo6SVBDSGFuZGxlJiBpcGNIYW5kbGUpCi17Ci0gICAgbV9zd09y
aWdpblRhYmxlLT5zZXRTaGFyZWRNZW1vcnkoaXBjSGFuZGxlLmhhbmRsZSk7Ci19Ci0KLXZvaWQg
V2ViU1dDbGllbnRDb25uZWN0aW9uOjpzZXRTV09yaWdpblRhYmxlSXNJbXBvcnRlZCgpCi17Ci0g
ICAgbV9zd09yaWdpblRhYmxlLT5zZXRJc0ltcG9ydGVkKCk7Ci0gICAgd2hpbGUgKCFtX3Rhc2tz
UGVuZGluZ09yaWdpbkltcG9ydC5pc0VtcHR5KCkpCi0gICAgICAgIG1fdGFza3NQZW5kaW5nT3Jp
Z2luSW1wb3J0LnRha2VGaXJzdCgpKCk7Ci19Ci0KIHZvaWQgV2ViU1dDbGllbnRDb25uZWN0aW9u
OjptYXRjaFJlZ2lzdHJhdGlvbihTZWN1cml0eU9yaWdpbkRhdGEmJiB0b3BPcmlnaW4sIGNvbnN0
IFVSTCYgY2xpZW50VVJMLCBSZWdpc3RyYXRpb25DYWxsYmFjayYmIGNhbGxiYWNrKQogewogICAg
IEFTU0VSVChpc01haW5SdW5Mb29wKCkpOwotCi0gICAgaWYgKCFtYXlIYXZlU2VydmljZVdvcmtl
clJlZ2lzdGVyZWRGb3JPcmlnaW4odG9wT3JpZ2luKSkgewotICAgICAgICBjYWxsYmFjayhzdGQ6
Om51bGxvcHQpOwotICAgICAgICByZXR1cm47Ci0gICAgfQotCi0gICAgcnVuT3JEZWxheVRhc2tG
b3JJbXBvcnQoW3RoaXMsIGNhbGxiYWNrID0gV1RGTW92ZShjYWxsYmFjayksIHRvcE9yaWdpbiA9
IFdURk1vdmUodG9wT3JpZ2luKSwgY2xpZW50VVJMXSgpIG11dGFibGUgewotICAgICAgICBzZW5k
V2l0aEFzeW5jUmVwbHkoTWVzc2FnZXM6OldlYlNXU2VydmVyQ29ubmVjdGlvbjo6TWF0Y2hSZWdp
c3RyYXRpb24geyB0b3BPcmlnaW4sIGNsaWVudFVSTCB9LCBXVEZNb3ZlKGNhbGxiYWNrKSk7Ci0g
ICAgfSk7Ci19Ci0KLXZvaWQgV2ViU1dDbGllbnRDb25uZWN0aW9uOjpydW5PckRlbGF5VGFza0Zv
ckltcG9ydChGdW5jdGlvbjx2b2lkKCk+JiYgdGFzaykKLXsKLSAgICBpZiAobV9zd09yaWdpblRh
YmxlLT5pc0ltcG9ydGVkKCkpIHsKLSAgICAgICAgdGFzaygpOwotICAgICAgICByZXR1cm47Ci0g
ICAgfQotICAgIG1fdGFza3NQZW5kaW5nT3JpZ2luSW1wb3J0LmFwcGVuZChXVEZNb3ZlKHRhc2sp
KTsKKyAgICBzZW5kV2l0aEFzeW5jUmVwbHkoTWVzc2FnZXM6OldlYlNXU2VydmVyQ29ubmVjdGlv
bjo6TWF0Y2hSZWdpc3RyYXRpb24geyB0b3BPcmlnaW4sIGNsaWVudFVSTCB9LCBXVEZNb3ZlKGNh
bGxiYWNrKSk7CiB9CiAKIHZvaWQgV2ViU1dDbGllbnRDb25uZWN0aW9uOjp3aGVuUmVnaXN0cmF0
aW9uUmVhZHkoY29uc3QgU2VjdXJpdHlPcmlnaW5EYXRhJiB0b3BPcmlnaW4sIGNvbnN0IFVSTCYg
Y2xpZW50VVJMLCBXaGVuUmVnaXN0cmF0aW9uUmVhZHlDYWxsYmFjayYmIGNhbGxiYWNrKQpAQCAt
MTk5LDE1ICsxNTgsNyBAQCB2b2lkIFdlYlNXQ2xpZW50Q29ubmVjdGlvbjo6c2V0U2VydmljZVdv
cmtlckNsaWVudElzQ29udHJvbGxlZChTY3JpcHRFeGVjdXRpb25Dbwogdm9pZCBXZWJTV0NsaWVu
dENvbm5lY3Rpb246OmdldFJlZ2lzdHJhdGlvbnMoU2VjdXJpdHlPcmlnaW5EYXRhJiYgdG9wT3Jp
Z2luLCBjb25zdCBVUkwmIGNsaWVudFVSTCwgR2V0UmVnaXN0cmF0aW9uc0NhbGxiYWNrJiYgY2Fs
bGJhY2spCiB7CiAgICAgQVNTRVJUKGlzTWFpblJ1bkxvb3AoKSk7Ci0KLSAgICBpZiAoIW1heUhh
dmVTZXJ2aWNlV29ya2VyUmVnaXN0ZXJlZEZvck9yaWdpbih0b3BPcmlnaW4pKSB7Ci0gICAgICAg
IGNhbGxiYWNrKHsgfSk7Ci0gICAgICAgIHJldHVybjsKLSAgICB9Ci0KLSAgICBydW5PckRlbGF5
VGFza0ZvckltcG9ydChbdGhpcywgY2FsbGJhY2sgPSBXVEZNb3ZlKGNhbGxiYWNrKSwgdG9wT3Jp
Z2luID0gV1RGTW92ZSh0b3BPcmlnaW4pLCBjbGllbnRVUkxdKCkgbXV0YWJsZSB7Ci0gICAgICAg
IHNlbmRXaXRoQXN5bmNSZXBseShNZXNzYWdlczo6V2ViU1dTZXJ2ZXJDb25uZWN0aW9uOjpHZXRS
ZWdpc3RyYXRpb25zIHsgdG9wT3JpZ2luLCBjbGllbnRVUkwgfSwgV1RGTW92ZShjYWxsYmFjaykp
OwotICAgIH0pOworICAgIHNlbmRXaXRoQXN5bmNSZXBseShNZXNzYWdlczo6V2ViU1dTZXJ2ZXJD
b25uZWN0aW9uOjpHZXRSZWdpc3RyYXRpb25zIHsgdG9wT3JpZ2luLCBjbGllbnRVUkwgfSwgV1RG
TW92ZShjYWxsYmFjaykpOwogfQogCiB2b2lkIFdlYlNXQ2xpZW50Q29ubmVjdGlvbjo6Y29ubmVj
dGlvblRvU2VydmVyTG9zdCgpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
U3RvcmFnZS9XZWJTV0NsaWVudENvbm5lY3Rpb24uaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9TdG9yYWdlL1dlYlNXQ2xpZW50Q29ubmVjdGlvbi5oCmluZGV4IGJiOWUwMGE5NmNjNmNmMzRh
MTk0ZTRmOTZkYjExZjg4ZmRiMTU3YTYuLmNiZDM4MzRhZjE5NjdjZDRiZDQ5MzdlYjFkMmM2NWIz
Yzg3MTJmMGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9TdG9yYWdlL1dl
YlNXQ2xpZW50Q29ubmVjdGlvbi5oCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9TdG9y
YWdlL1dlYlNXQ2xpZW50Q29ubmVjdGlvbi5oCkBAIC00Miw3ICs0Miw2IEBAIGNsYXNzIFJlc291
cmNlTG9hZGVyOwogCiBuYW1lc3BhY2UgV2ViS2l0IHsKIAotY2xhc3MgV2ViU1dPcmlnaW5UYWJs
ZTsKIGNsYXNzIFdlYlNlcnZpY2VXb3JrZXJQcm92aWRlcjsKIAogY2xhc3MgV2ViU1dDbGllbnRD
b25uZWN0aW9uIGZpbmFsIDogcHVibGljIFdlYkNvcmU6OlNXQ2xpZW50Q29ubmVjdGlvbiwgcHJp
dmF0ZSBJUEM6Ok1lc3NhZ2VTZW5kZXIsIHB1YmxpYyBJUEM6Ok1lc3NhZ2VSZWNlaXZlciB7CkBA
IC01OCw4ICs1Nyw2IEBAIHB1YmxpYzoKICAgICB2b2lkIGRpc2Nvbm5lY3RlZEZyb21XZWJQcm9j
ZXNzKCk7CiAgICAgdm9pZCBkaWRSZWNlaXZlTWVzc2FnZShJUEM6OkNvbm5lY3Rpb24mLCBJUEM6
OkRlY29kZXImKSBmaW5hbDsKIAotICAgIGJvb2wgbWF5SGF2ZVNlcnZpY2VXb3JrZXJSZWdpc3Rl
cmVkRm9yT3JpZ2luKGNvbnN0IFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0YSYpIGNvbnN0IGZp
bmFsOwotCiAgICAgdm9pZCBjb25uZWN0aW9uVG9TZXJ2ZXJMb3N0KCk7CiAKICAgICBib29sIGlz
VGhyb3R0bGVhYmxlKCkgY29uc3QgeyByZXR1cm4gbV9pc1Rocm90dGxlYWJsZTsgfQpAQCAtMTEw
LDE2ICsxMDcsMTAgQEAgcHJpdmF0ZToKICAgICBJUEM6OkNvbm5lY3Rpb24qIG1lc3NhZ2VTZW5k
ZXJDb25uZWN0aW9uKCkgY29uc3QgZmluYWw7CiAgICAgdWludDY0X3QgbWVzc2FnZVNlbmRlckRl
c3RpbmF0aW9uSUQoKSBjb25zdCBmaW5hbCB7IHJldHVybiAwOyB9CiAKLSAgICB2b2lkIHNldFNX
T3JpZ2luVGFibGVTaGFyZWRNZW1vcnkoY29uc3QgU2hhcmVkTWVtb3J5OjpJUENIYW5kbGUmKTsK
LSAgICB2b2lkIHNldFNXT3JpZ2luVGFibGVJc0ltcG9ydGVkKCk7Ci0KICAgICB2b2lkIGNsZWFy
KCk7CiAKICAgICBXZWJDb3JlOjpTV1NlcnZlckNvbm5lY3Rpb25JZGVudGlmaWVyIG1faWRlbnRp
ZmllcjsKIAotICAgIFVuaXF1ZVJlZjxXZWJTV09yaWdpblRhYmxlPiBtX3N3T3JpZ2luVGFibGU7
Ci0KLSAgICBEZXF1ZTxGdW5jdGlvbjx2b2lkKCk+PiBtX3Rhc2tzUGVuZGluZ09yaWdpbkltcG9y
dDsKICAgICBib29sIG1faXNUaHJvdHRsZWFibGUgeyB0cnVlIH07CiB9OyAvLyBjbGFzcyBXZWJT
V1NlcnZlckNvbm5lY3Rpb24KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L1N0b3JhZ2UvV2ViU1dDbGllbnRDb25uZWN0aW9uLm1lc3NhZ2VzLmluIGIvU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL1N0b3JhZ2UvV2ViU1dDbGllbnRDb25uZWN0aW9uLm1lc3NhZ2VzLmluCmlu
ZGV4IGI0Yzc2OTVkMmFjYTk1NGNiOGYxMTkzYzJiMWQxOWJjMmFlZmFhMmEuLjUwNWIwYWFiYWM3
M2UxNDlmNWM3ZGQ4N2EzZTYzOTc5MzA0NzRmMzEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9TdG9yYWdlL1dlYlNXQ2xpZW50Q29ubmVjdGlvbi5tZXNzYWdlcy5pbgorKysg
Yi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvU3RvcmFnZS9XZWJTV0NsaWVudENvbm5lY3Rpb24u
bWVzc2FnZXMuaW4KQEAgLTM1LDggKzM1LDYgQEAgbWVzc2FnZXMgLT4gV2ViU1dDbGllbnRDb25u
ZWN0aW9uIHsKICAgICBTZXRSZWdpc3RyYXRpb25VcGRhdGVWaWFDYWNoZShXZWJDb3JlOjpTZXJ2
aWNlV29ya2VyUmVnaXN0cmF0aW9uSWRlbnRpZmllciBpZGVudGlmaWVyLCBlbnVtOnVpbnQ4X3Qg
V2ViQ29yZTo6U2VydmljZVdvcmtlclVwZGF0ZVZpYUNhY2hlIHVwZGF0ZVZpYUNhY2hlKTsKICAg
ICBOb3RpZnlDbGllbnRzT2ZDb250cm9sbGVyQ2hhbmdlKEhhc2hTZXQ8V2ViQ29yZTo6U2NyaXB0
RXhlY3V0aW9uQ29udGV4dElkZW50aWZpZXI+IGNvbnRleHRJZGVudGlmaWVycywgc3RydWN0IFdl
YkNvcmU6OlNlcnZpY2VXb3JrZXJEYXRhIG5ld0NvbnRyb2xsZXIpCiAKLSAgICBTZXRTV09yaWdp
blRhYmxlSXNJbXBvcnRlZCgpCi0gICAgU2V0U1dPcmlnaW5UYWJsZVNoYXJlZE1lbW9yeShXZWJL
aXQ6OlNoYXJlZE1lbW9yeTo6SVBDSGFuZGxlIGhhbmRsZSkKICAgICBQb3N0TWVzc2FnZVRvU2Vy
dmljZVdvcmtlckNsaWVudChXZWJDb3JlOjpTY3JpcHRFeGVjdXRpb25Db250ZXh0SWRlbnRpZmll
ciBkZXN0aW5hdGlvbkNvbnRleHRJZGVudGlmaWVyLCBzdHJ1Y3QgV2ViQ29yZTo6TWVzc2FnZVdp
dGhNZXNzYWdlUG9ydHMgbWVzc2FnZSwgc3RydWN0IFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJEYXRh
IHNvdXJjZSwgU3RyaW5nIHNvdXJjZU9yaWdpbikKIAogICAgIFNldFNlcnZpY2VXb3JrZXJDbGll
bnRJc0NvbnRyb2xsZWQoV2ViQ29yZTo6U2NyaXB0RXhlY3V0aW9uQ29udGV4dElkZW50aWZpZXIg
d29ya2VySWRlbnRpZmllciwgc3RydWN0IFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJSZWdpc3RyYXRp
b25EYXRhIGRhdGEpIC0+IChib29sIGlzU3VjY2VzcykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9TdG9yYWdlL1dlYlNXT3JpZ2luVGFibGUuY3BwIGIvU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL1N0b3JhZ2UvV2ViU1dPcmlnaW5UYWJsZS5jcHAKZGVsZXRlZCBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDA2ODExODlhNGE1YzQxNjA2NzIwN2RjMjkwYmI5MzljZDFjZTY3ZTIu
LjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL1N0b3JhZ2UvV2ViU1dPcmlnaW5UYWJsZS5jcHAKKysrIC9kZXYvbnVs
bApAQCAtMSw1MiArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDE3IEFwcGxlIEluYy4g
QWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNv
dXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwg
YXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICog
YXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFp
biB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMg
aW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyIGluIHRoZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHBy
b3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBS
T1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCi0gKiBB
TkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywKLSAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZ
IEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQu
IElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUwotICogQkUg
TElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhF
TVBMQVJZLCBPUgotICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKLSAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklD
RVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUwotICogSU5URVJS
VVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdI
RVRIRVIgSU4KLSAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJ
TkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCi0gKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9G
IFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCi0gKiBUSEUgUE9T
U0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0gKi8KLQotI2luY2x1ZGUgImNvbmZpZy5oIgotCi0j
aWYgRU5BQkxFKFNFUlZJQ0VfV09SS0VSKQotI2luY2x1ZGUgIldlYlNXT3JpZ2luVGFibGUuaCIK
LQotI2luY2x1ZGUgPFdlYkNvcmUvU2VjdXJpdHlPcmlnaW4uaD4KLQotbmFtZXNwYWNlIFdlYktp
dCB7Ci11c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKLQotYm9vbCBXZWJTV09yaWdpblRhYmxlOjpj
b250YWlucyhjb25zdCBTZWN1cml0eU9yaWdpbkRhdGEmIG9yaWdpbikgY29uc3QKLXsKLSAgICBy
ZXR1cm4gbV9zZXJ2aWNlV29ya2VyT3JpZ2luVGFibGUuY29udGFpbnMoY29tcHV0ZVNoYXJlZFN0
cmluZ0hhc2gob3JpZ2luLnRvU3RyaW5nKCkpKTsKLX0KLQotdm9pZCBXZWJTV09yaWdpblRhYmxl
OjpzZXRTaGFyZWRNZW1vcnkoY29uc3QgU2hhcmVkTWVtb3J5OjpIYW5kbGUmIGhhbmRsZSkKLXsK
LSAgICBhdXRvIHNoYXJlZE1lbW9yeSA9IFNoYXJlZE1lbW9yeTo6bWFwKGhhbmRsZSwgU2hhcmVk
TWVtb3J5OjpQcm90ZWN0aW9uOjpSZWFkT25seSk7Ci0gICAgaWYgKCFzaGFyZWRNZW1vcnkpCi0g
ICAgICAgIHJldHVybjsKLQotICAgIG1fc2VydmljZVdvcmtlck9yaWdpblRhYmxlLnNldFNoYXJl
ZE1lbW9yeShzaGFyZWRNZW1vcnkucmVsZWFzZU5vbk51bGwoKSk7Ci19Ci0KLX0gLy8gbmFtZXNw
YWNlIFdlYktpdAotCi0jZW5kaWYgLy8gRU5BQkxFKFNFUlZJQ0VfV09SS0VSKQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1N0b3JhZ2UvV2ViU1dPcmlnaW5UYWJsZS5oIGIv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1N0b3JhZ2UvV2ViU1dPcmlnaW5UYWJsZS5oCmRlbGV0
ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA5MzBlNDYxODE5ZTE4NmY1YTgwZDhmNjcxNmZiMTE4
YzRkYzBlYTg2Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBh
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9TdG9yYWdlL1dlYlNXT3JpZ2luVGFibGUuaAorKysg
L2Rldi9udWxsCkBAIC0xLDU2ICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTcgQXBw
bGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1
c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZp
Y2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRp
b25zCi0gKiBhcmUgbWV0OgotICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11
c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlzdHJp
YnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0
Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRl
cmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdB
UkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElT
JycKLSAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLAotICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFO
VEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgotICogUFVSUE9TRSBBUkUgRElT
Q0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JT
Ci0gKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVD
SUFMLCBFWEVNUExBUlksIE9SCi0gKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgotICogU1VCU1RJVFVURSBHT09EUyBP
UiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCi0g
KiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJ
TElUWSwgV0hFVEhFUiBJTgotICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQg
KElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKLSAqIEFSSVNJTkcgSU4gQU5ZIFdB
WSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKLSAq
IFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLSAqLwotCi0jcHJhZ21hIG9uY2UKLQot
I2lmIEVOQUJMRShTRVJWSUNFX1dPUktFUikKLQotI2luY2x1ZGUgIlNoYXJlZE1lbW9yeS5oIgot
I2luY2x1ZGUgIlNoYXJlZFN0cmluZ0hhc2hUYWJsZVJlYWRPbmx5LmgiCi0KLW5hbWVzcGFjZSBX
ZWJDb3JlIHsKLXN0cnVjdCBTZWN1cml0eU9yaWdpbkRhdGE7Ci19Ci0KLW5hbWVzcGFjZSBXZWJL
aXQgewotCi1jbGFzcyBXZWJTV09yaWdpblRhYmxlIHsKLSAgICBXVEZfTUFLRV9GQVNUX0FMTE9D
QVRFRDsKLXB1YmxpYzoKLSAgICBXZWJTV09yaWdpblRhYmxlKCkgPSBkZWZhdWx0OwotCi0gICAg
Ym9vbCBpc0ltcG9ydGVkKCkgY29uc3QgeyByZXR1cm4gbV9pc0ltcG9ydGVkOyB9Ci0gICAgdm9p
ZCBzZXRJc0ltcG9ydGVkKCkgeyBtX2lzSW1wb3J0ZWQgPSB0cnVlOyB9Ci0gICAgYm9vbCBjb250
YWlucyhjb25zdCBXZWJDb3JlOjpTZWN1cml0eU9yaWdpbkRhdGEmKSBjb25zdDsKLSAgICB2b2lk
IHNldFNoYXJlZE1lbW9yeShjb25zdCBTaGFyZWRNZW1vcnk6OkhhbmRsZSYpOwotCi1wcml2YXRl
OgotICAgIFNoYXJlZFN0cmluZ0hhc2hUYWJsZVJlYWRPbmx5IG1fc2VydmljZVdvcmtlck9yaWdp
blRhYmxlOwotICAgIGJvb2wgbV9pc0ltcG9ydGVkIHsgZmFsc2UgfTsKLX07Ci0KLX0gLy8gbmFt
ZXNwYWNlIFdlYktpdAotCi0jZW5kaWYgLy8gRU5BQkxFKFNFUlZJQ0VfV09SS0VSKQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1N0b3JhZ2UvV2ViU2hhcmVkV29ya2VyQ29u
dGV4dE1hbmFnZXJDb25uZWN0aW9uLmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9TdG9y
YWdlL1dlYlNoYXJlZFdvcmtlckNvbnRleHRNYW5hZ2VyQ29ubmVjdGlvbi5jcHAKaW5kZXggOWY4
ODM1NGZiMjU4YjljZWEzNTIxZmRhMjgwOWE5NWJkNGE5MGZlMi4uNWU1YmJiZWZhYjNlMDY1NzI5
OTllMGE5MTYwYWM2ZGQxNjdkNzdkZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL1N0b3JhZ2UvV2ViU2hhcmVkV29ya2VyQ29udGV4dE1hbmFnZXJDb25uZWN0aW9uLmNwcAor
KysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvU3RvcmFnZS9XZWJTaGFyZWRXb3JrZXJDb250
ZXh0TWFuYWdlckNvbm5lY3Rpb24uY3BwCkBAIC00Myw2ICs0Myw3IEBACiAjaW5jbHVkZSA8V2Vi
Q29yZS9FbXB0eUNsaWVudHMuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1BhZ2UuaD4KICNpbmNsdWRl
IDxXZWJDb3JlL1BhZ2VDb25maWd1cmF0aW9uLmg+CisjaW5jbHVkZSA8V2ViQ29yZS9TY3JpcHRF
eGVjdXRpb25Db250ZXh0SWRlbnRpZmllci5oPgogI2luY2x1ZGUgPFdlYkNvcmUvU2hhcmVkV29y
a2VyQ29udGV4dE1hbmFnZXIuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1NoYXJlZFdvcmtlclRocmVh
ZFByb3h5Lmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9Vc2VyQWdlbnQuaD4KQEAgLTExNSw3ICsxMTYs
NyBAQCB2b2lkIFdlYlNoYXJlZFdvcmtlckNvbnRleHRNYW5hZ2VyQ29ubmVjdGlvbjo6bGF1bmNo
U2hhcmVkV29ya2VyKFdlYkNvcmU6OkNsaWVudAogICAgICAgICBpbml0aWFsaXphdGlvbkRhdGEu
dXNlckFnZW50ID0gbV91c2VyQWdlbnQ7CiAKICAgICBpZiAoIWluaXRpYWxpemF0aW9uRGF0YS5j
bGllbnRJZGVudGlmaWVyKQotICAgICAgICBpbml0aWFsaXphdGlvbkRhdGEuY2xpZW50SWRlbnRp
ZmllciA9IFNjcmlwdEV4ZWN1dGlvbkNvbnRleHRJZGVudGlmaWVyOjpnZW5lcmF0ZSgpOworICAg
ICAgICBpbml0aWFsaXphdGlvbkRhdGEuY2xpZW50SWRlbnRpZmllciA9IFdlYkNvcmU6OlNjcmlw
dEV4ZWN1dGlvbkNvbnRleHRJZGVudGlmaWVyOjpnZW5lcmF0ZSgpOwogCiAgICAgcGFnZS0+c2V0
dXBGb3JSZW1vdGVXb3JrZXIod29ya2VyRmV0Y2hSZXN1bHQubGFzdFJlcXVlc3RVUkwsIG9yaWdp
bi50b3BPcmlnaW4sIHdvcmtlckZldGNoUmVzdWx0LnJlZmVycmVyUG9saWN5KTsKICAgICBhdXRv
IHNoYXJlZFdvcmtlclRocmVhZFByb3h5ID0gV2ViQ29yZTo6U2hhcmVkV29ya2VyVGhyZWFkUHJv
eHk6OmNyZWF0ZShXVEZNb3ZlKHBhZ2UpLCBzaGFyZWRXb3JrZXJJZGVudGlmaWVyLCBvcmlnaW4s
IFdURk1vdmUod29ya2VyRmV0Y2hSZXN1bHQpLCBXVEZNb3ZlKHdvcmtlck9wdGlvbnMpLCBXVEZN
b3ZlKGluaXRpYWxpemF0aW9uRGF0YSksIFdlYlByb2Nlc3M6OnNpbmdsZXRvbigpLmNhY2hlU3Rv
cmFnZVByb3ZpZGVyKCkpOwo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>459161</attachid>
            <date>2022-05-11 06:11:49 -0700</date>
            <delta_ts>2022-05-14 00:19:34 -0700</delta_ts>
            <desc>Reduced patch</desc>
            <filename>bug-240003-20220511151147.patch</filename>
            <type>text/plain</type>
            <size>30755</size>
            <attacher name="youenn fablet">youennf</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjk0MDUwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggOTA0YzA3Mzg5ZDY2MjBk
NTA2Y2MzZWRmZDU1N2YyZjQ3N2YyZWU1ZC4uYmYyYTkwOGQ5NjlmNzI0ZDRlOTdjODJlNGY5ODhi
ZGIwYTQ1ZjUzYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIwIEBACisyMDIyLTA1LTExICBZb3Vl
bm4gRmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KKworICAgICAgICBTV09yaWdpblN0b3JlIGlz
IG5vIGxvbmdlciBuZWVkZWQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTI0MDAwMworCisgICAgICAgIFJldmlld2VkIGJ5IENocmlzIER1bWV6LgorCisg
ICAgICAgIFJlbW92YWwgb2YgdGhlIGZpbGVzIHdpbGwgaGFwcGVuIGluIGEgZm9sbG93LXVwIGFm
dGVyIHBlcmYgcmVncmVzc2lvbiB2YWxpZGF0aW9uLgorICAgICAgICBDb3ZlcmVkIGJ5IGV4aXN0
aW5nIHRlc3RzLgorCisgICAgICAgICogbG9hZGVyL0RvY3VtZW50TG9hZGVyLmNwcDoKKyAgICAg
ICAgKiB3b3JrZXJzL3NlcnZpY2UvU1dDbGllbnRDb25uZWN0aW9uLmg6CisgICAgICAgICogd29y
a2Vycy9zZXJ2aWNlL1dvcmtlclNXQ2xpZW50Q29ubmVjdGlvbi5jcHA6CisgICAgICAgICogd29y
a2Vycy9zZXJ2aWNlL1dvcmtlclNXQ2xpZW50Q29ubmVjdGlvbi5oOgorICAgICAgICAqIHdvcmtl
cnMvc2VydmljZS9zZXJ2ZXIvU1dTZXJ2ZXIuY3BwOgorICAgICAgICAqIHdvcmtlcnMvc2Vydmlj
ZS9zZXJ2ZXIvU1dTZXJ2ZXIuaDoKKwogMjAyMi0wNS0xMSAgWW91ZW5uIEZhYmxldCAgPHlvdWVu
bkBhcHBsZS5jb20+CiAKICAgICAgICAgQWRkIGEgd2Vic2hhcmUgcXVpcmsgZm9yIHlvdXR1YmUK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9DaGFu
Z2VMb2cKaW5kZXggYjk3ZDJkMzkyMDEzMGZmYjIzZmFhOWVjMDNhZTg0MzliOWM4MjQ4ZS4uYjFh
MzgxMTg1MzdkODc1Y2FmZjAxMWUxZDg5ZWI4NTEyODRjNWY5MSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKQEAgLTEsMyAr
MSwyMiBAQAorMjAyMi0wNS0xMSAgWW91ZW5uIEZhYmxldCAgPHlvdWVubkBhcHBsZS5jb20+CisK
KyAgICAgICAgU1dPcmlnaW5TdG9yZSBpcyBubyBsb25nZXIgbmVlZGVkCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yNDAwMDMKKworICAgICAgICBSZXZp
ZXdlZCBieSBDaHJpcyBEdW1lei4KKworICAgICAgICBObyBvYnNlcnZhYmxlIGNoYW5nZSwgd2Ug
cmVtb3ZlIHRoZSBTV09yaWdpbiBvcHRpbWl6YXRpb24gYXMgaXRzIG1haW4gcmVtYWluaW5nIHVz
ZQorICAgICAgICBpcyB0byBvcHRpbWl6ZSB0aGUgY2FzZSBvZiBhIHBhZ2UgYmVpbmcgbG9hZGVk
IGJ5IHNlcnZpY2Ugd29ya2VyIGluc3RlYWQgb2YgYXBwIGNhY2hlIHdoaWNoIGlzIGEgdGlueSBl
ZGdlIGNhc2UuCisgICAgICAgIFJlbW92YWwgb2YgdGhlIGZpbGVzIHdpbGwgaGFwcGVuIGluIGEg
Zm9sbG93LXVwIGFmdGVyIHBlcmYgcmVncmVzc2lvbiB2YWxpZGF0aW9uLgorCisgICAgICAgICog
TmV0d29ya1Byb2Nlc3MvTmV0d29ya1Nlc3Npb24uY3BwOgorICAgICAgICAqIE5ldHdvcmtQcm9j
ZXNzL05ldHdvcmtTZXNzaW9uLmg6CisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvU2VydmljZVdv
cmtlci9XZWJTV1NlcnZlckNvbm5lY3Rpb24uY3BwOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNz
L1NlcnZpY2VXb3JrZXIvV2ViU1dTZXJ2ZXJDb25uZWN0aW9uLmg6CisgICAgICAgICogV2ViUHJv
Y2Vzcy9TdG9yYWdlL1dlYlNXQ2xpZW50Q29ubmVjdGlvbi5jcHA6CisgICAgICAgICogV2ViUHJv
Y2Vzcy9TdG9yYWdlL1dlYlNXQ2xpZW50Q29ubmVjdGlvbi5oOgorICAgICAgICAqIFdlYlByb2Nl
c3MvU3RvcmFnZS9XZWJTV0NsaWVudENvbm5lY3Rpb24ubWVzc2FnZXMuaW46CisKIDIwMjItMDUt
MTEgIFlvdWVubiBGYWJsZXQgIDx5b3Vlbm5AYXBwbGUuY29tPgogCiAgICAgICAgIEludHJvZHVj
ZSBhIGNhbnZhcy1kcmF3SW1hZ2Ugc3BlY2lmaWMgbWV0aG9kIHRvIGdldCBhIE5hdGl2ZUltYWdl
IGZyb20gYSB2aWRlbyBlbGVtZW50CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIv
RG9jdW1lbnRMb2FkZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0RvY3VtZW50TG9hZGVy
LmNwcAppbmRleCBjZTQ1MzQxNTg4NGIzNDAwMTg1YzhmOWViYjQwMGIwMWU3MzI1NDQ3Li43MTcz
NDY3NTVmNjUxODY1ODMxMTYxODk0NWM0NjUwMTMxZmIzMmQ2IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9sb2FkZXIvRG9jdW1lbnRMb2FkZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xv
YWRlci9Eb2N1bWVudExvYWRlci5jcHAKQEAgLTU3OCwxMCArNTc4LDYgQEAgdm9pZCBEb2N1bWVu
dExvYWRlcjo6bWF0Y2hSZWdpc3RyYXRpb24oY29uc3QgVVJMJiB1cmwsIFNXQ2xpZW50Q29ubmVj
dGlvbjo6UmVnaXMKICAgICB9CiAKICAgICBhdXRvIG9yaWdpbiA9ICghbV9mcmFtZS0+aXNNYWlu
RnJhbWUoKSAmJiBtX2ZyYW1lLT5kb2N1bWVudCgpKSA/IG1fZnJhbWUtPmRvY3VtZW50KCktPnRv
cE9yaWdpbigpLmRhdGEoKSA6IFNlY3VyaXR5T3JpZ2luRGF0YTo6ZnJvbVVSTCh1cmwpOwotICAg
IGlmICghU2VydmljZVdvcmtlclByb3ZpZGVyOjpzaW5nbGV0b24oKS5zZXJ2aWNlV29ya2VyQ29u
bmVjdGlvbigpLm1heUhhdmVTZXJ2aWNlV29ya2VyUmVnaXN0ZXJlZEZvck9yaWdpbihvcmlnaW4p
KSB7Ci0gICAgICAgIGNhbGxiYWNrKHN0ZDo6bnVsbG9wdCk7Ci0gICAgICAgIHJldHVybjsKLSAg
ICB9CiAKICAgICBhdXRvJiBjb25uZWN0aW9uID0gU2VydmljZVdvcmtlclByb3ZpZGVyOjpzaW5n
bGV0b24oKS5zZXJ2aWNlV29ya2VyQ29ubmVjdGlvbigpOwogICAgIGNvbm5lY3Rpb24ubWF0Y2hS
ZWdpc3RyYXRpb24oV1RGTW92ZShvcmlnaW4pLCB1cmwsIFdURk1vdmUoY2FsbGJhY2spKTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9TV0NsaWVudENvbm5lY3Rp
b24uaCBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9TV0NsaWVudENvbm5lY3Rpb24u
aAppbmRleCAyM2UwNmM2MWYyZTdmNTI1OGRiMzRmODdkMDQwNWFiNmUzNTI5MzdiLi45MTg5M2Jl
ODVjYTc1OTk0ZmY0YWVhMDMzZGI4Y2QwYjhmODU1YzVhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS93b3JrZXJzL3NlcnZpY2UvU1dDbGllbnRDb25uZWN0aW9uLmgKKysrIGIvU291cmNlL1dl
YkNvcmUvd29ya2Vycy9zZXJ2aWNlL1NXQ2xpZW50Q29ubmVjdGlvbi5oCkBAIC04Myw3ICs4Myw2
IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQgcG9zdE1lc3NhZ2VUb1NlcnZpY2VXb3JrZXIo
U2VydmljZVdvcmtlcklkZW50aWZpZXIgZGVzdGluYXRpb24sIE1lc3NhZ2VXaXRoTWVzc2FnZVBv
cnRzJiYsIGNvbnN0IFNlcnZpY2VXb3JrZXJPckNsaWVudElkZW50aWZpZXImIHNvdXJjZSkgPSAw
OwogCiAgICAgdmlydHVhbCBTV1NlcnZlckNvbm5lY3Rpb25JZGVudGlmaWVyIHNlcnZlckNvbm5l
Y3Rpb25JZGVudGlmaWVyKCkgY29uc3QgPSAwOwotICAgIHZpcnR1YWwgYm9vbCBtYXlIYXZlU2Vy
dmljZVdvcmtlclJlZ2lzdGVyZWRGb3JPcmlnaW4oY29uc3QgU2VjdXJpdHlPcmlnaW5EYXRhJikg
Y29uc3QgPSAwOwogCiAgICAgdmlydHVhbCB2b2lkIHJlZ2lzdGVyU2VydmljZVdvcmtlckNsaWVu
dChjb25zdCBDbGllbnRPcmlnaW4mLCBTZXJ2aWNlV29ya2VyQ2xpZW50RGF0YSYmLCBjb25zdCBz
dGQ6Om9wdGlvbmFsPFNlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb25JZGVudGlmaWVyPiYsIFN0cmlu
ZyYmIHVzZXJBZ2VudCkgPSAwOwogICAgIHZpcnR1YWwgdm9pZCB1bnJlZ2lzdGVyU2VydmljZVdv
cmtlckNsaWVudChTY3JpcHRFeGVjdXRpb25Db250ZXh0SWRlbnRpZmllcikgPSAwOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL1dvcmtlclNXQ2xpZW50Q29ubmVj
dGlvbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvV29ya2VyU1dDbGllbnRD
b25uZWN0aW9uLmNwcAppbmRleCBmMTQwZjk5YjQwODZiZjZmYmNmNzJiNmM0N2UwZDQxZDFmYTBk
ODUzLi4xYTUyZGNmZDI0ZWYyNjdiYWQ4ZGI2ZGM0Nzg4YTIyMWY2MjkwMDNjIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvV29ya2VyU1dDbGllbnRDb25uZWN0aW9u
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvV29ya2VyU1dDbGllbnRD
b25uZWN0aW9uLmNwcApAQCAtMTc4LDEyICsxNzgsNiBAQCBTV1NlcnZlckNvbm5lY3Rpb25JZGVu
dGlmaWVyIFdvcmtlclNXQ2xpZW50Q29ubmVjdGlvbjo6c2VydmVyQ29ubmVjdGlvbklkZW50aWZp
ZQogICAgIHJldHVybiBpZGVudGlmaWVyOwogfQogCi1ib29sIFdvcmtlclNXQ2xpZW50Q29ubmVj
dGlvbjo6bWF5SGF2ZVNlcnZpY2VXb3JrZXJSZWdpc3RlcmVkRm9yT3JpZ2luKGNvbnN0IFNlY3Vy
aXR5T3JpZ2luRGF0YSYpIGNvbnN0Ci17Ci0gICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7Ci0gICAg
cmV0dXJuIHRydWU7Ci19Ci0KIHZvaWQgV29ya2VyU1dDbGllbnRDb25uZWN0aW9uOjpyZWdpc3Rl
clNlcnZpY2VXb3JrZXJDbGllbnQoY29uc3QgQ2xpZW50T3JpZ2luJiBjbGllbnRPcmlnaW4sIFNl
cnZpY2VXb3JrZXJDbGllbnREYXRhJiYgZGF0YSwgY29uc3Qgc3RkOjpvcHRpb25hbDxTZXJ2aWNl
V29ya2VyUmVnaXN0cmF0aW9uSWRlbnRpZmllcj4mIGlkZW50aWZpZXIsIFN0cmluZyYmIHVzZXJB
Z2VudCkKIHsKICAgICBjYWxsT25NYWluVGhyZWFkKFtjbGllbnRPcmlnaW4gPSBjbGllbnRPcmln
aW4uaXNvbGF0ZWRDb3B5KCksIGRhdGEgPSBjcm9zc1RocmVhZENvcHkoV1RGTW92ZShkYXRhKSks
IGlkZW50aWZpZXIsIHVzZXJBZ2VudCA9IGNyb3NzVGhyZWFkQ29weShXVEZNb3ZlKHVzZXJBZ2Vu
dCkpXSgpIG11dGFibGUgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2
aWNlL1dvcmtlclNXQ2xpZW50Q29ubmVjdGlvbi5oIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9z
ZXJ2aWNlL1dvcmtlclNXQ2xpZW50Q29ubmVjdGlvbi5oCmluZGV4IDI5YmZiMzNlZjRiM2Q0MDY1
NTMzMDIxYWM2ZTI1NDc2ODA3YjBhYjguLmYzMDdiNmZmNmNkOGNlZTk5MmY5NDk2NWI1MWFjOGM5
NDEwMWUyMGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9Xb3Jr
ZXJTV0NsaWVudENvbm5lY3Rpb24uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZp
Y2UvV29ya2VyU1dDbGllbnRDb25uZWN0aW9uLmgKQEAgLTUzLDcgKzUzLDYgQEAgcHJpdmF0ZToK
ICAgICB2b2lkIGRpZFJlc29sdmVSZWdpc3RyYXRpb25Qcm9taXNlKGNvbnN0IFNlcnZpY2VXb3Jr
ZXJSZWdpc3RyYXRpb25LZXkmKSBmaW5hbDsKICAgICB2b2lkIHBvc3RNZXNzYWdlVG9TZXJ2aWNl
V29ya2VyKFNlcnZpY2VXb3JrZXJJZGVudGlmaWVyIGRlc3RpbmF0aW9uLCBNZXNzYWdlV2l0aE1l
c3NhZ2VQb3J0cyYmLCBjb25zdCBTZXJ2aWNlV29ya2VyT3JDbGllbnRJZGVudGlmaWVyJiBzb3Vy
Y2UpIGZpbmFsOwogICAgIFNXU2VydmVyQ29ubmVjdGlvbklkZW50aWZpZXIgc2VydmVyQ29ubmVj
dGlvbklkZW50aWZpZXIoKSBjb25zdCBmaW5hbDsKLSAgICBib29sIG1heUhhdmVTZXJ2aWNlV29y
a2VyUmVnaXN0ZXJlZEZvck9yaWdpbihjb25zdCBTZWN1cml0eU9yaWdpbkRhdGEmKSBjb25zdCBm
aW5hbDsKICAgICB2b2lkIGZpbmlzaEZldGNoaW5nU2NyaXB0SW5TZXJ2ZXIoY29uc3QgU2Vydmlj
ZVdvcmtlckpvYkRhdGFJZGVudGlmaWVyJiwgU2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbktleSYm
LCBXb3JrZXJGZXRjaFJlc3VsdCYmKSBmaW5hbDsKICAgICB2b2lkIHNjaGVkdWxlSm9iSW5TZXJ2
ZXIoY29uc3QgU2VydmljZVdvcmtlckpvYkRhdGEmKSBmaW5hbDsKICAgICB2b2lkIHNjaGVkdWxl
Sm9iKFNlcnZpY2VXb3JrZXJPckNsaWVudElkZW50aWZpZXIsIGNvbnN0IFNlcnZpY2VXb3JrZXJK
b2JEYXRhJikgZmluYWw7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZp
Y2Uvc2VydmVyL1NXU2VydmVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9z
ZXJ2ZXIvU1dTZXJ2ZXIuY3BwCmluZGV4IGE2OGEwNDU0NDg1MjViZDkwOTRhMDAwNWE1MjY2Yjg2
N2VhMGI3MTUuLmQyMmQzYmRjMDEzMjU2ODNhYzY2Yjg4Y2ViZjUxYzYyMzA0Y2U0MzkgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9zZXJ2ZXIvU1dTZXJ2ZXIuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9zZXJ2ZXIvU1dTZXJ2ZXIuY3Bw
CkBAIC0zMyw3ICszMyw2IEBACiAjaW5jbHVkZSAiTG9nZ2luZy5oIgogI2luY2x1ZGUgIk5vdGlm
aWNhdGlvbkRhdGEuaCIKICNpbmNsdWRlICJSZWdpc3RyYXRpb25TdG9yZS5oIgotI2luY2x1ZGUg
IlNXT3JpZ2luU3RvcmUuaCIKICNpbmNsdWRlICJTV1NlcnZlckpvYlF1ZXVlLmgiCiAjaW5jbHVk
ZSAiU1dTZXJ2ZXJSZWdpc3RyYXRpb24uaCIKICNpbmNsdWRlICJTV1NlcnZlclRvQ29udGV4dENv
bm5lY3Rpb24uaCIKQEAgLTE0OSw3ICsxNDgsNiBAQCB2b2lkIFNXU2VydmVyOjpyZWdpc3RyYXRp
b25TdG9yZUltcG9ydENvbXBsZXRlKCkKIHsKICAgICBBU1NFUlQoIW1faW1wb3J0Q29tcGxldGVk
KTsKICAgICBtX2ltcG9ydENvbXBsZXRlZCA9IHRydWU7Ci0gICAgbV9vcmlnaW5TdG9yZS0+aW1w
b3J0Q29tcGxldGUoKTsKIAogICAgIGF1dG8gY2xlYXJDYWxsYmFja3MgPSBXVEZNb3ZlKG1fY2xl
YXJDb21wbGV0aW9uQ2FsbGJhY2tzKTsKICAgICBmb3IgKGF1dG8mIGNhbGxiYWNrIDogY2xlYXJD
YWxsYmFja3MpCkBAIC0yMjQsNyArMjIyLDYgQEAgdm9pZCBTV1NlcnZlcjo6YWRkUmVnaXN0cmF0
aW9uKHN0ZDo6dW5pcXVlX3B0cjxTV1NlcnZlclJlZ2lzdHJhdGlvbj4mJiByZWdpc3RyYXQKICAg
ICBpZiAocmVnaXN0cmF0aW9uLT5zZXJ2aWNlV29ya2VyUGFnZUlkZW50aWZpZXIoKSkKICAgICAg
ICAgbV9zZXJ2aWNlV29ya2VyUGFnZUlkZW50aWZpZXJUb1JlZ2lzdHJhdGlvbk1hcC5hZGQoKnJl
Z2lzdHJhdGlvbi0+c2VydmljZVdvcmtlclBhZ2VJZGVudGlmaWVyKCksICpyZWdpc3RyYXRpb24p
OwogCi0gICAgbV9vcmlnaW5TdG9yZS0+YWRkKHJlZ2lzdHJhdGlvbi0+a2V5KCkudG9wT3JpZ2lu
KCkpOwogICAgIGF1dG8gcmVnaXN0cmF0aW9uSUQgPSByZWdpc3RyYXRpb24tPmlkZW50aWZpZXIo
KTsKICAgICBBU1NFUlQoIW1fc2NvcGVUb1JlZ2lzdHJhdGlvbk1hcC5jb250YWlucyhyZWdpc3Ry
YXRpb24tPmtleSgpKSk7CiAgICAgbV9zY29wZVRvUmVnaXN0cmF0aW9uTWFwLnNldChyZWdpc3Ry
YXRpb24tPmtleSgpLCAqcmVnaXN0cmF0aW9uKTsKQEAgLTI0Nyw3ICsyNDQsNiBAQCB2b2lkIFNX
U2VydmVyOjpyZW1vdmVSZWdpc3RyYXRpb24oU2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbklkZW50
aWZpZXIgcmVnaXN0cmF0aQogICAgICAgICAgICAgbV91bmlxdWVSZWdpc3RyYXRpb25Db3VudC0t
OwogICAgIH0KIAotICAgIG1fb3JpZ2luU3RvcmUtPnJlbW92ZShyZWdpc3RyYXRpb24tPmtleSgp
LnRvcE9yaWdpbigpKTsKICAgICBpZiAobV9yZWdpc3RyYXRpb25TdG9yZSkKICAgICAgICAgbV9y
ZWdpc3RyYXRpb25TdG9yZS0+cmVtb3ZlUmVnaXN0cmF0aW9uKHJlZ2lzdHJhdGlvbi0+a2V5KCkp
OwogfQpAQCAtMjg2LDcgKzI4Miw2IEBAIHZvaWQgU1dTZXJ2ZXI6OmNsZWFyQWxsKENvbXBsZXRp
b25IYW5kbGVyPHZvaWQoKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKICAgICB3aGlsZSAoIW1fcmVn
aXN0cmF0aW9ucy5pc0VtcHR5KCkpCiAgICAgICAgIG1fcmVnaXN0cmF0aW9ucy5iZWdpbigpLT52
YWx1ZS0+Y2xlYXIoKTsKICAgICBtX3BlbmRpbmdDb250ZXh0RGF0YXMuY2xlYXIoKTsKLSAgICBt
X29yaWdpblN0b3JlLT5jbGVhckFsbCgpOwogICAgIGlmICghbV9yZWdpc3RyYXRpb25TdG9yZSkK
ICAgICAgICAgcmV0dXJuIGNvbXBsZXRpb25IYW5kbGVyKCk7CiAKQEAgLTMzOSw3ICszMzQsNyBA
QCB2b2lkIFNXU2VydmVyOjpjbGVhcihjb25zdCBTZWN1cml0eU9yaWdpbkRhdGEmIHNlY3VyaXR5
T3JpZ2luLCBDb21wbGV0aW9uSGFuZGxlcgogICAgICAgICByZXR1cm47CiAgICAgfQogCi0gICAg
Ly8gQ2FsbGluZyBTV1NlcnZlclJlZ2lzdHJhdGlvbjo6Y2xlYXIoKSB0YWtlcyBjYXJlIG9mIHVw
ZGF0aW5nIG1fcmVnaXN0cmF0aW9ucywgbV9vcmlnaW5TdG9yZSBhbmQgbV9yZWdpc3RyYXRpb25T
dG9yZS4KKyAgICAvLyBDYWxsaW5nIFNXU2VydmVyUmVnaXN0cmF0aW9uOjpjbGVhcigpIHRha2Vz
IGNhcmUgb2YgdXBkYXRpbmcgbV9yZWdpc3RyYXRpb25zIGFuZCBtX3JlZ2lzdHJhdGlvblN0b3Jl
LgogICAgIGZvciAoYXV0byogcmVnaXN0cmF0aW9uIDogcmVnaXN0cmF0aW9uc1RvUmVtb3ZlKQog
ICAgICAgICByZWdpc3RyYXRpb24tPmNsZWFyKCk7CiAKQEAgLTM2OSw5ICszNjQsOCBAQCB2b2lk
IFNXU2VydmVyOjpDb25uZWN0aW9uOjpyZW1vdmVTZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uSW5T
ZXJ2ZXIoU2VydmljZVdvcmtlcgogICAgIG1fc2VydmVyLnJlbW92ZUNsaWVudFNlcnZpY2VXb3Jr
ZXJSZWdpc3RyYXRpb24oKnRoaXMsIGlkZW50aWZpZXIpOwogfQogCi1TV1NlcnZlcjo6U1dTZXJ2
ZXIoVW5pcXVlUmVmPFNXT3JpZ2luU3RvcmU+JiYgb3JpZ2luU3RvcmUsIGJvb2wgcHJvY2Vzc1Rl
cm1pbmF0aW9uRGVsYXlFbmFibGVkLCBTdHJpbmcmJiByZWdpc3RyYXRpb25EYXRhYmFzZURpcmVj
dG9yeSwgUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBib29sIHNob3VsZFJ1blNlcnZpY2VXb3Jr
ZXJzT25NYWluVGhyZWFkRm9yVGVzdGluZywgYm9vbCBoYXNTZXJ2aWNlV29ya2VyRW50aXRsZW1l
bnQsIHN0ZDo6b3B0aW9uYWw8dW5zaWduZWQ+IG92ZXJyaWRlU2VydmljZVdvcmtlclJlZ2lzdHJh
dGlvbkNvdW50VGVzdGluZ1ZhbHVlLCBTb2Z0VXBkYXRlQ2FsbGJhY2smJiBzb2Z0VXBkYXRlQ2Fs
bGJhY2ssIENyZWF0ZUNvbnRleHRDb25uZWN0aW9uQ2FsbGJhY2smJiBjYWxsYmFjaywgQXBwQm91
bmREb21haW5zQ2FsbGJhY2smJiBhcHBCb3VuZERvbWFpbnNDYWxsYmFjaykKLSAgICA6IG1fb3Jp
Z2luU3RvcmUoV1RGTW92ZShvcmlnaW5TdG9yZSkpCi0gICAgLCBtX3Nlc3Npb25JRChzZXNzaW9u
SUQpCitTV1NlcnZlcjo6U1dTZXJ2ZXIoYm9vbCBwcm9jZXNzVGVybWluYXRpb25EZWxheUVuYWJs
ZWQsIFN0cmluZyYmIHJlZ2lzdHJhdGlvbkRhdGFiYXNlRGlyZWN0b3J5LCBQQUw6OlNlc3Npb25J
RCBzZXNzaW9uSUQsIGJvb2wgc2hvdWxkUnVuU2VydmljZVdvcmtlcnNPbk1haW5UaHJlYWRGb3JU
ZXN0aW5nLCBib29sIGhhc1NlcnZpY2VXb3JrZXJFbnRpdGxlbWVudCwgc3RkOjpvcHRpb25hbDx1
bnNpZ25lZD4gb3ZlcnJpZGVTZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uQ291bnRUZXN0aW5nVmFs
dWUsIFNvZnRVcGRhdGVDYWxsYmFjayYmIHNvZnRVcGRhdGVDYWxsYmFjaywgQ3JlYXRlQ29udGV4
dENvbm5lY3Rpb25DYWxsYmFjayYmIGNhbGxiYWNrLCBBcHBCb3VuZERvbWFpbnNDYWxsYmFjayYm
IGFwcEJvdW5kRG9tYWluc0NhbGxiYWNrKQorICAgIDogbV9zZXNzaW9uSUQoc2Vzc2lvbklEKQog
ICAgICwgbV9pc1Byb2Nlc3NUZXJtaW5hdGlvbkRlbGF5RW5hYmxlZChwcm9jZXNzVGVybWluYXRp
b25EZWxheUVuYWJsZWQpCiAgICAgLCBtX2NyZWF0ZUNvbnRleHRDb25uZWN0aW9uQ2FsbGJhY2so
V1RGTW92ZShjYWxsYmFjaykpCiAgICAgLCBtX3NvZnRVcGRhdGVDYWxsYmFjayhXVEZNb3ZlKHNv
ZnRVcGRhdGVDYWxsYmFjaykpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3Nl
cnZpY2Uvc2VydmVyL1NXU2VydmVyLmggYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2Uv
c2VydmVyL1NXU2VydmVyLmgKaW5kZXggOTY1MjM1OWVjN2M1Y2U5NzYxY2IzN2Q0N2E4OTk3OGM2
ZmUwODBiZS4uZTYxYzFjYzcyMjAwNDNmYTY0MjdiNmNlNjNjNDhmNjA1MmVmZWVjMSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL3NlcnZlci9TV1NlcnZlci5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9zZXJ2ZXIvU1dTZXJ2ZXIuaApAQCAt
NTUsNyArNTUsNiBAQAogbmFtZXNwYWNlIFdlYkNvcmUgewogCiBjbGFzcyBSZWdpc3RyYXRpb25T
dG9yZTsKLWNsYXNzIFNXT3JpZ2luU3RvcmU7CiBjbGFzcyBTV1NlcnZlckpvYlF1ZXVlOwogY2xh
c3MgU1dTZXJ2ZXJSZWdpc3RyYXRpb247CiBjbGFzcyBTV1NlcnZlclRvQ29udGV4dENvbm5lY3Rp
b247CkBAIC0xMzQsNyArMTMzLDcgQEAgcHVibGljOgogICAgIHVzaW5nIFNvZnRVcGRhdGVDYWxs
YmFjayA9IEZ1bmN0aW9uPHZvaWQoU2VydmljZVdvcmtlckpvYkRhdGEmJiBqb2JEYXRhLCBib29s
IHNob3VsZFJlZnJlc2hDYWNoZSwgUmVzb3VyY2VSZXF1ZXN0JiYsIENvbXBsZXRpb25IYW5kbGVy
PHZvaWQoV29ya2VyRmV0Y2hSZXN1bHQmJik+JiYpPjsKICAgICB1c2luZyBDcmVhdGVDb250ZXh0
Q29ubmVjdGlvbkNhbGxiYWNrID0gRnVuY3Rpb248dm9pZChjb25zdCBXZWJDb3JlOjpSZWdpc3Ry
YWJsZURvbWFpbiYsIHN0ZDo6b3B0aW9uYWw8UHJvY2Vzc0lkZW50aWZpZXI+IHJlcXVlc3RpbmdQ
cm9jZXNzSWRlbnRpZmllciwgc3RkOjpvcHRpb25hbDxTY3JpcHRFeGVjdXRpb25Db250ZXh0SWRl
bnRpZmllcj4sIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJik+OwogICAgIHVzaW5nIEFwcEJv
dW5kRG9tYWluc0NhbGxiYWNrID0gRnVuY3Rpb248dm9pZChDb21wbGV0aW9uSGFuZGxlcjx2b2lk
KEhhc2hTZXQ8V2ViQ29yZTo6UmVnaXN0cmFibGVEb21haW4+JiYpPiYmKT47Ci0gICAgV0VCQ09S
RV9FWFBPUlQgU1dTZXJ2ZXIoVW5pcXVlUmVmPFNXT3JpZ2luU3RvcmU+JiYsIGJvb2wgcHJvY2Vz
c1Rlcm1pbmF0aW9uRGVsYXlFbmFibGVkLCBTdHJpbmcmJiByZWdpc3RyYXRpb25EYXRhYmFzZURp
cmVjdG9yeSwgUEFMOjpTZXNzaW9uSUQsIGJvb2wgc2hvdWxkUnVuU2VydmljZVdvcmtlcnNPbk1h
aW5UaHJlYWRGb3JUZXN0aW5nLCBib29sIGhhc1NlcnZpY2VXb3JrZXJFbnRpdGxlbWVudCwgc3Rk
OjpvcHRpb25hbDx1bnNpZ25lZD4gb3ZlcnJpZGVTZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uQ291
bnRUZXN0aW5nVmFsdWUsIFNvZnRVcGRhdGVDYWxsYmFjayYmLCBDcmVhdGVDb250ZXh0Q29ubmVj
dGlvbkNhbGxiYWNrJiYsIEFwcEJvdW5kRG9tYWluc0NhbGxiYWNrJiYpOworICAgIFdFQkNPUkVf
RVhQT1JUIFNXU2VydmVyKGJvb2wgcHJvY2Vzc1Rlcm1pbmF0aW9uRGVsYXlFbmFibGVkLCBTdHJp
bmcmJiByZWdpc3RyYXRpb25EYXRhYmFzZURpcmVjdG9yeSwgUEFMOjpTZXNzaW9uSUQsIGJvb2wg
c2hvdWxkUnVuU2VydmljZVdvcmtlcnNPbk1haW5UaHJlYWRGb3JUZXN0aW5nLCBib29sIGhhc1Nl
cnZpY2VXb3JrZXJFbnRpdGxlbWVudCwgc3RkOjpvcHRpb25hbDx1bnNpZ25lZD4gb3ZlcnJpZGVT
ZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uQ291bnRUZXN0aW5nVmFsdWUsIFNvZnRVcGRhdGVDYWxs
YmFjayYmLCBDcmVhdGVDb250ZXh0Q29ubmVjdGlvbkNhbGxiYWNrJiYsIEFwcEJvdW5kRG9tYWlu
c0NhbGxiYWNrJiYpOwogCiAgICAgV0VCQ09SRV9FWFBPUlQgflNXU2VydmVyKCk7CiAKQEAgLTE3
OCw4ICsxNzcsNiBAQCBwdWJsaWM6CiAgICAgY29uc3QgSGFzaE1hcDxTV1NlcnZlckNvbm5lY3Rp
b25JZGVudGlmaWVyLCBzdGQ6OnVuaXF1ZV9wdHI8Q29ubmVjdGlvbj4+JiBjb25uZWN0aW9ucygp
IGNvbnN0IHsgcmV0dXJuIG1fY29ubmVjdGlvbnM7IH0KICAgICBXRUJDT1JFX0VYUE9SVCBib29s
IGNhbkhhbmRsZVNjaGVtZShTdHJpbmdWaWV3KSBjb25zdDsKIAotICAgIFNXT3JpZ2luU3RvcmUm
IG9yaWdpblN0b3JlKCkgeyByZXR1cm4gbV9vcmlnaW5TdG9yZTsgfQotCiAgICAgdm9pZCByZWZy
ZXNoSW1wb3J0ZWRTY3JpcHRzRmluaXNoZWQoY29uc3QgU2VydmljZVdvcmtlckpvYkRhdGFJZGVu
dGlmaWVyJiwgY29uc3QgU2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbktleSYsIGNvbnN0IFZlY3Rv
cjxzdGQ6OnBhaXI8VVJMLCBTY3JpcHRCdWZmZXI+PiYpOwogICAgIHZvaWQgc2NyaXB0Q29udGV4
dEZhaWxlZFRvU3RhcnQoY29uc3Qgc3RkOjpvcHRpb25hbDxTZXJ2aWNlV29ya2VySm9iRGF0YUlk
ZW50aWZpZXI+JiwgU1dTZXJ2ZXJXb3JrZXImLCBjb25zdCBTdHJpbmcmIG1lc3NhZ2UpOwogICAg
IHZvaWQgc2NyaXB0Q29udGV4dFN0YXJ0ZWQoY29uc3Qgc3RkOjpvcHRpb25hbDxTZXJ2aWNlV29y
a2VySm9iRGF0YUlkZW50aWZpZXI+JiwgU1dTZXJ2ZXJXb3JrZXImKTsKQEAgLTIyMSw2ICsyMTgs
NyBAQCBwdWJsaWM6CiAKICAgICBib29sIGlzSW1wb3J0Q29tcGxldGVkKCkgY29uc3QgeyByZXR1
cm4gbV9pbXBvcnRDb21wbGV0ZWQ7IH0KICAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHdoZW5JbXBv
cnRJc0NvbXBsZXRlZChDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYpOworICAgIFdFQkNPUkVf
RVhQT1JUIHZvaWQgd2hlbkltcG9ydElzQ29tcGxldGVkSWZOZWVkZWQoQ29tcGxldGlvbkhhbmRs
ZXI8dm9pZCgpPiYmKTsKIAogICAgIHZvaWQgc29mdFVwZGF0ZShTV1NlcnZlclJlZ2lzdHJhdGlv
biYpOwogCkBAIC0yODQsNyArMjgyLDYgQEAgcHJpdmF0ZToKICAgICB2b2lkIGNvbnRleHRDb25u
ZWN0aW9uQ3JlYXRlZChTV1NlcnZlclRvQ29udGV4dENvbm5lY3Rpb24mKTsKIAogICAgIHZvaWQg
dXBkYXRlQXBwSW5pdGlhdGVkVmFsdWVGb3JXb3JrZXJzKGNvbnN0IENsaWVudE9yaWdpbiYsIExh
c3ROYXZpZ2F0aW9uV2FzQXBwSW5pdGlhdGVkKTsKLSAgICB2b2lkIHdoZW5JbXBvcnRJc0NvbXBs
ZXRlZElmTmVlZGVkKENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJik7CiAKICAgICBSZXNvdXJj
ZVJlcXVlc3QgY3JlYXRlU2NyaXB0UmVxdWVzdChjb25zdCBVUkwmLCBjb25zdCBTZXJ2aWNlV29y
a2VySm9iRGF0YSYsIFNXU2VydmVyUmVnaXN0cmF0aW9uJik7CiAKQEAgLTMwNyw3ICszMDQsNiBA
QCBwcml2YXRlOgogICAgIEhhc2hNYXA8U2NyaXB0RXhlY3V0aW9uQ29udGV4dElkZW50aWZpZXIs
IFNlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb25JZGVudGlmaWVyPiBtX2NsaWVudFRvQ29udHJvbGxp
bmdSZWdpc3RyYXRpb247CiAgICAgTWVtb3J5Q29tcGFjdFJvYmluSG9vZEhhc2hNYXA8U3RyaW5n
LCBTY3JpcHRFeGVjdXRpb25Db250ZXh0SWRlbnRpZmllcj4gbV92aXNpYmxlQ2xpZW50SWRUb0lu
dGVybmFsQ2xpZW50SWRNYXA7CiAKLSAgICBVbmlxdWVSZWY8U1dPcmlnaW5TdG9yZT4gbV9vcmln
aW5TdG9yZTsKICAgICBzdGQ6OnVuaXF1ZV9wdHI8UmVnaXN0cmF0aW9uU3RvcmU+IG1fcmVnaXN0
cmF0aW9uU3RvcmU7CiAgICAgSGFzaE1hcDxSZWdpc3RyYWJsZURvbWFpbiwgVmVjdG9yPFNlcnZp
Y2VXb3JrZXJDb250ZXh0RGF0YT4+IG1fcGVuZGluZ0NvbnRleHREYXRhczsKICAgICBIYXNoTWFw
PFJlZ2lzdHJhYmxlRG9tYWluLCBIYXNoTWFwPFNlcnZpY2VXb3JrZXJJZGVudGlmaWVyLCBWZWN0
b3I8UnVuU2VydmljZVdvcmtlckNhbGxiYWNrPj4+IG1fc2VydmljZVdvcmtlclJ1blJlcXVlc3Rz
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrU2Vzc2lv
bi5jcHAgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtTZXNzaW9uLmNwcApp
bmRleCAyMzE5NGQ1YTEzYWU3ZjM2YTI4ZGZkYTk1MGI1ZWU2NWI2MjIxNDBhLi44NDIwMDgzNTlh
ZWM1NTgwODU5MWQ2OTA5MjkzYmJhMzc0MDliNTI2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L05ldHdvcmtQcm9jZXNzL05ldHdvcmtTZXNzaW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L05l
dHdvcmtQcm9jZXNzL05ldHdvcmtTZXNzaW9uLmNwcApAQCAtNDYsNyArNDYsNiBAQAogI2luY2x1
ZGUgIldlYlBhZ2VQcm94eS5oIgogI2luY2x1ZGUgIldlYlBhZ2VQcm94eU1lc3NhZ2VzLmgiCiAj
aW5jbHVkZSAiV2ViUHJvY2Vzc1Byb3h5LmgiCi0jaW5jbHVkZSAiV2ViU1dPcmlnaW5TdG9yZS5o
IgogI2luY2x1ZGUgIldlYlNoYXJlZFdvcmtlclNlcnZlci5oIgogI2luY2x1ZGUgIldlYlNvY2tl
dFRhc2suaCIKICNpbmNsdWRlIDxXZWJDb3JlL0Nvb2tpZUphci5oPgpAQCAtNjExLDI1ICs2MTAs
NiBAQCBTZXJ2aWNlV29ya2VyRmV0Y2hUYXNrKiBOZXR3b3JrU2Vzc2lvbjo6bmF2aWdhdGlvblBy
ZWxvYWRlclRhc2tGcm9tRmV0Y2hJZGVudGlmaQogICAgIHJldHVybiBtX25hdmlnYXRpb25QcmVs
b2FkZXJzLmdldChpZGVudGlmaWVyKS5nZXQoKTsKIH0KIAotV2ViU1dPcmlnaW5TdG9yZSogTmV0
d29ya1Nlc3Npb246OnN3T3JpZ2luU3RvcmUoKSBjb25zdAotewotICAgIHJldHVybiBtX3N3U2Vy
dmVyID8gJnN0YXRpY19jYXN0PFdlYlNXT3JpZ2luU3RvcmUmPihtX3N3U2VydmVyLT5vcmlnaW5T
dG9yZSgpKSA6IG51bGxwdHI7Ci19Ci0KLXZvaWQgTmV0d29ya1Nlc3Npb246OnJlZ2lzdGVyU1dT
ZXJ2ZXJDb25uZWN0aW9uKFdlYlNXU2VydmVyQ29ubmVjdGlvbiYgY29ubmVjdGlvbikKLXsKLSAg
ICBhdXRvKiBzdG9yZSA9IHN3T3JpZ2luU3RvcmUoKTsKLSAgICBBU1NFUlQoc3RvcmUpOwotICAg
IGlmIChzdG9yZSkKLSAgICAgICAgc3RvcmUtPnJlZ2lzdGVyU1dTZXJ2ZXJDb25uZWN0aW9uKGNv
bm5lY3Rpb24pOwotfQotCi12b2lkIE5ldHdvcmtTZXNzaW9uOjp1bnJlZ2lzdGVyU1dTZXJ2ZXJD
b25uZWN0aW9uKFdlYlNXU2VydmVyQ29ubmVjdGlvbiYgY29ubmVjdGlvbikKLXsKLSAgICBpZiAo
YXV0byogc3RvcmUgPSBzd09yaWdpblN0b3JlKCkpCi0gICAgICAgIHN0b3JlLT51bnJlZ2lzdGVy
U1dTZXJ2ZXJDb25uZWN0aW9uKGNvbm5lY3Rpb24pOwotfQotCiBTV1NlcnZlciYgTmV0d29ya1Nl
c3Npb246OmVuc3VyZVNXU2VydmVyKCkKIHsKICAgICBpZiAoIW1fc3dTZXJ2ZXIpIHsKQEAgLTY0
OCw3ICs2MjgsNyBAQCBTV1NlcnZlciYgTmV0d29ya1Nlc3Npb246OmVuc3VyZVNXU2VydmVyKCkK
ICAgICAgICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKHsgfSk7CiAgICAgICAgIH07CiAjZW5kaWYK
LSAgICAgICAgbV9zd1NlcnZlciA9IG1ha2VVbmlxdWU8U1dTZXJ2ZXI+KG1ha2VVbmlxdWVSZWY8
V2ViU1dPcmlnaW5TdG9yZT4oKSwgaW5mby5wcm9jZXNzVGVybWluYXRpb25EZWxheUVuYWJsZWQs
IFdURk1vdmUocGF0aCksIG1fc2Vzc2lvbklELCBzaG91bGRSdW5TZXJ2aWNlV29ya2Vyc09uTWFp
blRocmVhZEZvclRlc3RpbmcoKSwgbV9uZXR3b3JrUHJvY2Vzcy0+cGFyZW50UHJvY2Vzc0hhc1Nl
cnZpY2VXb3JrZXJFbnRpdGxlbWVudCgpLCBvdmVycmlkZVNlcnZpY2VXb3JrZXJSZWdpc3RyYXRp
b25Db3VudFRlc3RpbmdWYWx1ZSgpLCBbdGhpc10oYXV0byYmIGpvYkRhdGEsIGJvb2wgc2hvdWxk
UmVmcmVzaENhY2hlLCBhdXRvJiYgcmVxdWVzdCwgYXV0byYmIGNvbXBsZXRpb25IYW5kbGVyKSBt
dXRhYmxlIHsKKyAgICAgICAgbV9zd1NlcnZlciA9IG1ha2VVbmlxdWU8U1dTZXJ2ZXI+KGluZm8u
cHJvY2Vzc1Rlcm1pbmF0aW9uRGVsYXlFbmFibGVkLCBXVEZNb3ZlKHBhdGgpLCBtX3Nlc3Npb25J
RCwgc2hvdWxkUnVuU2VydmljZVdvcmtlcnNPbk1haW5UaHJlYWRGb3JUZXN0aW5nKCksIG1fbmV0
d29ya1Byb2Nlc3MtPnBhcmVudFByb2Nlc3NIYXNTZXJ2aWNlV29ya2VyRW50aXRsZW1lbnQoKSwg
b3ZlcnJpZGVTZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uQ291bnRUZXN0aW5nVmFsdWUoKSwgW3Ro
aXNdKGF1dG8mJiBqb2JEYXRhLCBib29sIHNob3VsZFJlZnJlc2hDYWNoZSwgYXV0byYmIHJlcXVl
c3QsIGF1dG8mJiBjb21wbGV0aW9uSGFuZGxlcikgbXV0YWJsZSB7CiAgICAgICAgICAgICBTZXJ2
aWNlV29ya2VyU29mdFVwZGF0ZUxvYWRlcjo6c3RhcnQodGhpcywgV1RGTW92ZShqb2JEYXRhKSwg
c2hvdWxkUmVmcmVzaENhY2hlLCBXVEZNb3ZlKHJlcXVlc3QpLCBXVEZNb3ZlKGNvbXBsZXRpb25I
YW5kbGVyKSk7CiAgICAgICAgIH0sIFt0aGlzXShhdXRvJiByZWdpc3RyYWJsZURvbWFpbiwgc3Rk
OjpvcHRpb25hbDxQcm9jZXNzSWRlbnRpZmllcj4gcmVxdWVzdGluZ1Byb2Nlc3NJZGVudGlmaWVy
LCBzdGQ6Om9wdGlvbmFsPFNjcmlwdEV4ZWN1dGlvbkNvbnRleHRJZGVudGlmaWVyPiBzZXJ2aWNl
V29ya2VyUGFnZUlkZW50aWZpZXIsIGF1dG8mJiBjb21wbGV0aW9uSGFuZGxlcikgewogICAgICAg
ICAgICAgQVNTRVJUKCFyZWdpc3RyYWJsZURvbWFpbi5pc0VtcHR5KCkpOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrU2Vzc2lvbi5oIGIvU291cmNlL1dl
YktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrU2Vzc2lvbi5oCmluZGV4IDZjYzM1MTQxZGMyMWUx
ZmExOWI5NDZjZmQ5ZDJmZmRiNjdiZmI0NDIuLmE2ZmNmMGVkZTkxOTkyZmMyODBmYjg5Zjg2MDQ5
MGE3MzFkNjFlYWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0
d29ya1Nlc3Npb24uaAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtT
ZXNzaW9uLmgKQEAgLTgxLDcgKzgxLDYgQEAgY2xhc3MgV2ViUGFnZU5ldHdvcmtQYXJhbWV0ZXJz
OwogY2xhc3MgV2ViUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3JlOwogY2xhc3MgV2ViU2hhcmVk
V29ya2VyU2VydmVyOwogY2xhc3MgV2ViU29ja2V0VGFzazsKLWNsYXNzIFdlYlNXT3JpZ2luU3Rv
cmU7CiBjbGFzcyBXZWJTV1NlcnZlckNvbm5lY3Rpb247CiBzdHJ1Y3QgTmV0d29ya1Nlc3Npb25D
cmVhdGlvblBhcmFtZXRlcnM7CiBzdHJ1Y3QgU2Vzc2lvblNldDsKQEAgLTIwMyw5ICsyMDIsNiBA
QCBwdWJsaWM6CiAKICAgICBXZWJDb3JlOjpTV1NlcnZlciogc3dTZXJ2ZXIoKSB7IHJldHVybiBt
X3N3U2VydmVyLmdldCgpOyB9CiAgICAgV2ViQ29yZTo6U1dTZXJ2ZXImIGVuc3VyZVNXU2VydmVy
KCk7Ci0gICAgV2ViU1dPcmlnaW5TdG9yZSogc3dPcmlnaW5TdG9yZSgpIGNvbnN0OyAvLyBGSVhN
RTogQ2FuIGJlIHByaXZhdGU/Ci0gICAgdm9pZCByZWdpc3RlclNXU2VydmVyQ29ubmVjdGlvbihX
ZWJTV1NlcnZlckNvbm5lY3Rpb24mKTsKLSAgICB2b2lkIHVucmVnaXN0ZXJTV1NlcnZlckNvbm5l
Y3Rpb24oV2ViU1dTZXJ2ZXJDb25uZWN0aW9uJik7CiAKICAgICBib29sIGhhc1NlcnZpY2VXb3Jr
ZXJEYXRhYmFzZVBhdGgoKSBjb25zdDsKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9OZXR3b3JrUHJvY2Vzcy9TZXJ2aWNlV29ya2VyL1dlYlNXT3JpZ2luU3RvcmUuY3BwIGIvU291
cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9TZXJ2aWNlV29ya2VyL1dlYlNXT3JpZ2luU3RvcmUu
Y3BwCmluZGV4IDAyN2RjMWI3ODY5M2M2N2E0ZWJiODEwNzgyNWQ1YWVjN2U2MDFhOGEuLjgzY2Q3
NGY3MGRlMjZjMTAwZGRlMDQyZGFhZGJkZjM2NDQzN2ViOGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvTmV0d29ya1Byb2Nlc3MvU2VydmljZVdvcmtlci9XZWJTV09yaWdpblN0b3JlLmNwcAor
KysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL1NlcnZpY2VXb3JrZXIvV2ViU1dPcmln
aW5TdG9yZS5jcHAKQEAgLTYxLDggKzYxLDYgQEAgdm9pZCBXZWJTV09yaWdpblN0b3JlOjpjbGVh
clN0b3JlKCkKIHZvaWQgV2ViU1dPcmlnaW5TdG9yZTo6aW1wb3J0Q29tcGxldGUoKQogewogICAg
IG1faXNJbXBvcnRlZCA9IHRydWU7Ci0gICAgZm9yIChhdXRvJiBjb25uZWN0aW9uIDogbV93ZWJT
V1NlcnZlckNvbm5lY3Rpb25zKQotICAgICAgICBjb25uZWN0aW9uLnNlbmQoTWVzc2FnZXM6Oldl
YlNXQ2xpZW50Q29ubmVjdGlvbjo6U2V0U1dPcmlnaW5UYWJsZUlzSW1wb3J0ZWQoKSk7CiB9CiAK
IHZvaWQgV2ViU1dPcmlnaW5TdG9yZTo6cmVnaXN0ZXJTV1NlcnZlckNvbm5lY3Rpb24oV2ViU1dT
ZXJ2ZXJDb25uZWN0aW9uJiBjb25uZWN0aW9uKQpAQCAtNzEsOSArNjksNiBAQCB2b2lkIFdlYlNX
T3JpZ2luU3RvcmU6OnJlZ2lzdGVyU1dTZXJ2ZXJDb25uZWN0aW9uKFdlYlNXU2VydmVyQ29ubmVj
dGlvbiYgY29ubmVjdAogCiAgICAgaWYgKCFtX3N0b3JlLmlzRW1wdHkoKSkKICAgICAgICAgc2Vu
ZFN0b3JlSGFuZGxlKGNvbm5lY3Rpb24pOwotCi0gICAgaWYgKG1faXNJbXBvcnRlZCkKLSAgICAg
ICAgY29ubmVjdGlvbi5zZW5kKE1lc3NhZ2VzOjpXZWJTV0NsaWVudENvbm5lY3Rpb246OlNldFNX
T3JpZ2luVGFibGVJc0ltcG9ydGVkKCkpOwogfQogCiB2b2lkIFdlYlNXT3JpZ2luU3RvcmU6OnVu
cmVnaXN0ZXJTV1NlcnZlckNvbm5lY3Rpb24oV2ViU1dTZXJ2ZXJDb25uZWN0aW9uJiBjb25uZWN0
aW9uKQpAQCAtODMsMTYgKzc4LDYgQEAgdm9pZCBXZWJTV09yaWdpblN0b3JlOjp1bnJlZ2lzdGVy
U1dTZXJ2ZXJDb25uZWN0aW9uKFdlYlNXU2VydmVyQ29ubmVjdGlvbiYgY29ubmUKIAogdm9pZCBX
ZWJTV09yaWdpblN0b3JlOjpzZW5kU3RvcmVIYW5kbGUoV2ViU1dTZXJ2ZXJDb25uZWN0aW9uJiBj
b25uZWN0aW9uKQogewotICAgIFNoYXJlZE1lbW9yeTo6SGFuZGxlIGhhbmRsZTsKLSAgICBpZiAo
IW1fc3RvcmUuY3JlYXRlU2hhcmVkTWVtb3J5SGFuZGxlKGhhbmRsZSkpCi0gICAgICAgIHJldHVy
bjsKLQotI2lmIChPUyhEQVJXSU4pIHx8IE9TKFdJTkRPV1MpKSAmJiAhVVNFKFVOSVhfRE9NQUlO
X1NPQ0tFVFMpCi0gICAgdWludDY0X3QgZGF0YVNpemUgPSBoYW5kbGUuc2l6ZSgpOwotI2Vsc2UK
LSAgICB1aW50NjRfdCBkYXRhU2l6ZSA9IDA7Ci0jZW5kaWYKLSAgICBjb25uZWN0aW9uLnNlbmQo
TWVzc2FnZXM6OldlYlNXQ2xpZW50Q29ubmVjdGlvbjo6U2V0U1dPcmlnaW5UYWJsZVNoYXJlZE1l
bW9yeShTaGFyZWRNZW1vcnk6OklQQ0hhbmRsZSB7IFdURk1vdmUoaGFuZGxlKSwgZGF0YVNpemUg
fSkpOwogfQogCiB2b2lkIFdlYlNXT3JpZ2luU3RvcmU6OmRpZEludmFsaWRhdGVTaGFyZWRNZW1v
cnkoKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9TZXJ2aWNlV29y
a2VyL1dlYlNXU2VydmVyQ29ubmVjdGlvbi5jcHAgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9j
ZXNzL1NlcnZpY2VXb3JrZXIvV2ViU1dTZXJ2ZXJDb25uZWN0aW9uLmNwcAppbmRleCA0N2Q0MWYz
ZTU0OGJiZjk0NWQ0ODQ1NDkzODQ1OGJjODFkNDc4ZGYwLi43MzNlYmY1ZDFiZWZlMDc3Njk1ZTgz
NTk4OTEwNmQ4M2UzYmViYjk0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9j
ZXNzL1NlcnZpY2VXb3JrZXIvV2ViU1dTZXJ2ZXJDb25uZWN0aW9uLmNwcAorKysgYi9Tb3VyY2Uv
V2ViS2l0L05ldHdvcmtQcm9jZXNzL1NlcnZpY2VXb3JrZXIvV2ViU1dTZXJ2ZXJDb25uZWN0aW9u
LmNwcApAQCAtODIsMTQgKzgyLDEwIEBAIFdlYlNXU2VydmVyQ29ubmVjdGlvbjo6V2ViU1dTZXJ2
ZXJDb25uZWN0aW9uKE5ldHdvcmtQcm9jZXNzJiBuZXR3b3JrUHJvY2VzcywgU1dTCiAgICAgLCBt
X2NvbnRlbnRDb25uZWN0aW9uKGNvbm5lY3Rpb24pCiAgICAgLCBtX25ldHdvcmtQcm9jZXNzKG5l
dHdvcmtQcm9jZXNzKQogewotICAgIGlmIChhdXRvKiBzZXNzaW9uID0gdGhpcy0+c2Vzc2lvbigp
KQotICAgICAgICBzZXNzaW9uLT5yZWdpc3RlclNXU2VydmVyQ29ubmVjdGlvbigqdGhpcyk7CiB9
CiAKIFdlYlNXU2VydmVyQ29ubmVjdGlvbjo6fldlYlNXU2VydmVyQ29ubmVjdGlvbigpCiB7Ci0g
ICAgaWYgKGF1dG8qIHNlc3Npb24gPSB0aGlzLT5zZXNzaW9uKCkpCi0gICAgICAgIHNlc3Npb24t
PnVucmVnaXN0ZXJTV1NlcnZlckNvbm5lY3Rpb24oKnRoaXMpOwogICAgIGZvciAoY29uc3QgYXV0
byYga2V5VmFsdWUgOiBtX2NsaWVudE9yaWdpbnMpCiAgICAgICAgIHNlcnZlcigpLnVucmVnaXN0
ZXJTZXJ2aWNlV29ya2VyQ2xpZW50KGtleVZhbHVlLnZhbHVlLCBrZXlWYWx1ZS5rZXkpOwogICAg
IGZvciAoYXV0byYgY29tcGxldGlvbkhhbmRsZXIgOiBtX3VucmVnaXN0ZXJKb2JzLnZhbHVlcygp
KQpAQCAtMzg4LDE4ICszODQsMzAgQEAgdm9pZCBXZWJTV1NlcnZlckNvbm5lY3Rpb246OnBvc3RN
ZXNzYWdlVG9TZXJ2aWNlV29ya2VyQ2xpZW50KFNjcmlwdEV4ZWN1dGlvbkNvbnQKICAgICBzZW5k
KE1lc3NhZ2VzOjpXZWJTV0NsaWVudENvbm5lY3Rpb246OlBvc3RNZXNzYWdlVG9TZXJ2aWNlV29y
a2VyQ2xpZW50IHsgZGVzdGluYXRpb25Db250ZXh0SWRlbnRpZmllciwgbWVzc2FnZSwgc291cmNl
U2VydmljZVdvcmtlci0+ZGF0YSgpLCBzb3VyY2VPcmlnaW4gfSk7CiB9CiAKLXZvaWQgV2ViU1dT
ZXJ2ZXJDb25uZWN0aW9uOjptYXRjaFJlZ2lzdHJhdGlvbihjb25zdCBTZWN1cml0eU9yaWdpbkRh
dGEmIHRvcE9yaWdpbiwgY29uc3QgVVJMJiBjbGllbnRVUkwsIENvbXBsZXRpb25IYW5kbGVyPHZv
aWQoc3RkOjpvcHRpb25hbDxTZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uRGF0YT4mJik+JiYgY2Fs
bGJhY2spCit2b2lkIFdlYlNXU2VydmVyQ29ubmVjdGlvbjo6bWF0Y2hSZWdpc3RyYXRpb24oU2Vj
dXJpdHlPcmlnaW5EYXRhJiYgdG9wT3JpZ2luLCBVUkwmJiBjbGllbnRVUkwsIENvbXBsZXRpb25I
YW5kbGVyPHZvaWQoc3RkOjpvcHRpb25hbDxTZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uRGF0YT4m
Jik+JiYgY2FsbGJhY2spCiB7Ci0gICAgaWYgKGF1dG8qIHJlZ2lzdHJhdGlvbiA9IGRvUmVnaXN0
cmF0aW9uTWF0Y2hpbmcodG9wT3JpZ2luLCBjbGllbnRVUkwpKSB7Ci0gICAgICAgIGNhbGxiYWNr
KHJlZ2lzdHJhdGlvbi0+ZGF0YSgpKTsKLSAgICAgICAgcmV0dXJuOwotICAgIH0KLSAgICBjYWxs
YmFjayh7IH0pOworICAgIHNlcnZlcigpLndoZW5JbXBvcnRJc0NvbXBsZXRlZElmTmVlZGVkKFt3
ZWFrVGhpcyA9IFdlYWtQdHIgeyAqdGhpcyB9LCB0b3BPcmlnaW4gPSBXVEZNb3ZlKHRvcE9yaWdp
biksIGNsaWVudFVSTCA9IFdURk1vdmUoY2xpZW50VVJMKSwgY2FsbGJhY2sgPSBXVEZNb3ZlKGNh
bGxiYWNrKV0oKSBtdXRhYmxlIHsKKyAgICAgICAgaWYgKCF3ZWFrVGhpcykgeworICAgICAgICAg
ICAgY2FsbGJhY2soeyB9KTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorICAgICAg
ICBpZiAoYXV0byogcmVnaXN0cmF0aW9uID0gd2Vha1RoaXMtPmRvUmVnaXN0cmF0aW9uTWF0Y2hp
bmcodG9wT3JpZ2luLCBjbGllbnRVUkwpKSB7CisgICAgICAgICAgICBjYWxsYmFjayhyZWdpc3Ry
YXRpb24tPmRhdGEoKSk7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKyAgICAgICAg
Y2FsbGJhY2soeyB9KTsKKyAgICB9KTsKIH0KIAotdm9pZCBXZWJTV1NlcnZlckNvbm5lY3Rpb246
OmdldFJlZ2lzdHJhdGlvbnMoY29uc3QgU2VjdXJpdHlPcmlnaW5EYXRhJiB0b3BPcmlnaW4sIGNv
bnN0IFVSTCYgY2xpZW50VVJMLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGNvbnN0IFZlY3RvcjxT
ZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uRGF0YT4mKT4mJiBjYWxsYmFjaykKK3ZvaWQgV2ViU1dT
ZXJ2ZXJDb25uZWN0aW9uOjpnZXRSZWdpc3RyYXRpb25zKFNlY3VyaXR5T3JpZ2luRGF0YSYmIHRv
cE9yaWdpbiwgVVJMJiYgY2xpZW50VVJMLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGNvbnN0IFZl
Y3RvcjxTZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uRGF0YT4mKT4mJiBjYWxsYmFjaykKIHsKLSAg
ICBjYWxsYmFjayhzZXJ2ZXIoKS5nZXRSZWdpc3RyYXRpb25zKHRvcE9yaWdpbiwgY2xpZW50VVJM
KSk7CisgICAgc2VydmVyKCkud2hlbkltcG9ydElzQ29tcGxldGVkSWZOZWVkZWQoW3dlYWtUaGlz
ID0gV2Vha1B0ciB7ICp0aGlzIH0sIHRvcE9yaWdpbiA9IFdURk1vdmUodG9wT3JpZ2luKSwgY2xp
ZW50VVJMID0gV1RGTW92ZShjbGllbnRVUkwpLCBjYWxsYmFjayA9IFdURk1vdmUoY2FsbGJhY2sp
XSgpIG11dGFibGUgeworICAgICAgICBpZiAoIXdlYWtUaGlzKSB7CisgICAgICAgICAgICBjYWxs
YmFjayh7IH0pOworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisgICAgICAgIGNhbGxi
YWNrKHdlYWtUaGlzLT5zZXJ2ZXIoKS5nZXRSZWdpc3RyYXRpb25zKHRvcE9yaWdpbiwgY2xpZW50
VVJMKSk7CisgICAgfSk7CiB9CiAKIHZvaWQgV2ViU1dTZXJ2ZXJDb25uZWN0aW9uOjpyZWdpc3Rl
clNlcnZpY2VXb3JrZXJDbGllbnQoV2ViQ29yZTo6Q2xpZW50T3JpZ2luJiYgY2xpZW50T3JpZ2lu
LCBTZXJ2aWNlV29ya2VyQ2xpZW50RGF0YSYmIGRhdGEsIGNvbnN0IHN0ZDo6b3B0aW9uYWw8U2Vy
dmljZVdvcmtlclJlZ2lzdHJhdGlvbklkZW50aWZpZXI+JiBjb250cm9sbGluZ1NlcnZpY2VXb3Jr
ZXJSZWdpc3RyYXRpb25JZGVudGlmaWVyLCBTdHJpbmcmJiB1c2VyQWdlbnQpCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL1NlcnZpY2VXb3JrZXIvV2ViU1dTZXJ2ZXJD
b25uZWN0aW9uLmggYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL1NlcnZpY2VXb3JrZXIv
V2ViU1dTZXJ2ZXJDb25uZWN0aW9uLmgKaW5kZXggOWY4NDY2YTk1Yzk1MDQwODFiZWM5YjcyZWUw
YzhkN2I5ZDZlOWQxZi4uNzc2N2FhMTIyY2Y2YzI2ZTYwYzViZjExMGY5YjQ5OTgyMWUxZWRhZCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9TZXJ2aWNlV29ya2VyL1dl
YlNXU2VydmVyQ29ubmVjdGlvbi5oCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mv
U2VydmljZVdvcmtlci9XZWJTV1NlcnZlckNvbm5lY3Rpb24uaApAQCAtMTEyLDggKzExMiw4IEBA
IHByaXZhdGU6CiAKICAgICB2b2lkIHN0YXJ0RmV0Y2goU2VydmljZVdvcmtlckZldGNoVGFzayYs
IFdlYkNvcmU6OlNXU2VydmVyV29ya2VyJik7CiAKLSAgICB2b2lkIG1hdGNoUmVnaXN0cmF0aW9u
KGNvbnN0IFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0YSYgdG9wT3JpZ2luLCBjb25zdCBVUkwm
IGNsaWVudFVSTCwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChzdGQ6Om9wdGlvbmFsPFdlYkNvcmU6
OlNlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb25EYXRhPiYmKT4mJik7Ci0gICAgdm9pZCBnZXRSZWdp
c3RyYXRpb25zKGNvbnN0IFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0YSYgdG9wT3JpZ2luLCBj
b25zdCBVUkwmIGNsaWVudFVSTCwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChjb25zdCBWZWN0b3I8
V2ViQ29yZTo6U2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbkRhdGE+Jik+JiYpOworICAgIHZvaWQg
bWF0Y2hSZWdpc3RyYXRpb24oV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW5EYXRhJiYsIFVSTCYmLCBD
b21wbGV0aW9uSGFuZGxlcjx2b2lkKHN0ZDo6b3B0aW9uYWw8V2ViQ29yZTo6U2VydmljZVdvcmtl
clJlZ2lzdHJhdGlvbkRhdGE+JiYpPiYmKTsKKyAgICB2b2lkIGdldFJlZ2lzdHJhdGlvbnMoV2Vi
Q29yZTo6U2VjdXJpdHlPcmlnaW5EYXRhJiYsIFVSTCYmLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lk
KGNvbnN0IFZlY3RvcjxXZWJDb3JlOjpTZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uRGF0YT4mKT4m
Jik7CiAKICAgICB2b2lkIHRlcm1pbmF0ZVdvcmtlckZyb21DbGllbnQoV2ViQ29yZTo6U2Vydmlj
ZVdvcmtlcklkZW50aWZpZXIsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJik7CiAgICAgdm9p
ZCB3aGVuU2VydmljZVdvcmtlcklzVGVybWluYXRlZEZvclRlc3RpbmcoV2ViQ29yZTo6U2Vydmlj
ZVdvcmtlcklkZW50aWZpZXIsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJik7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvU3RvcmFnZS9XZWJTV0NsaWVudENvbm5lY3Rp
b24uY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1N0b3JhZ2UvV2ViU1dDbGllbnRDb25u
ZWN0aW9uLmNwcAppbmRleCBhNTNkMDY5NGJkYzVkN2IyMWIwMGE0MzkxMDcxMWU3YWMwZWRkMmNl
Li43ZTBmZDFiMDM1ZjU1N2Q4NGNkYjlmNGRiNzdmMDJhMjkzMjg1ZmY2IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvU3RvcmFnZS9XZWJTV0NsaWVudENvbm5lY3Rpb24uY3Bw
CisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9TdG9yYWdlL1dlYlNXQ2xpZW50Q29ubmVj
dGlvbi5jcHAKQEAgLTM5LDcgKzM5LDYgQEAKICNpbmNsdWRlICJXZWJQYWdlUHJveHlNZXNzYWdl
cy5oIgogI2luY2x1ZGUgIldlYlByb2Nlc3MuaCIKICNpbmNsdWRlICJXZWJQcm9jZXNzUHJveHlN
ZXNzYWdlcy5oIgotI2luY2x1ZGUgIldlYlNXT3JpZ2luVGFibGUuaCIKICNpbmNsdWRlICJXZWJT
V1NlcnZlckNvbm5lY3Rpb25NZXNzYWdlcy5oIgogI2luY2x1ZGUgPFdlYkNvcmUvRG9jdW1lbnQu
aD4KICNpbmNsdWRlIDxXZWJDb3JlL0RvY3VtZW50TG9hZGVyLmg+CkBAIC02Miw3ICs2MSw2IEBA
IHVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwogCiBXZWJTV0NsaWVudENvbm5lY3Rpb246OldlYlNX
Q2xpZW50Q29ubmVjdGlvbigpCiAgICAgOiBtX2lkZW50aWZpZXIoUHJvY2Vzczo6aWRlbnRpZmll
cigpKQotICAgICwgbV9zd09yaWdpblRhYmxlKG1ha2VVbmlxdWVSZWY8V2ViU1dPcmlnaW5UYWJs
ZT4oKSkKIHsKIH0KIApAQCAtNzgsOSArNzYsNyBAQCBJUEM6OkNvbm5lY3Rpb24qIFdlYlNXQ2xp
ZW50Q29ubmVjdGlvbjo6bWVzc2FnZVNlbmRlckNvbm5lY3Rpb24oKSBjb25zdAogCiB2b2lkIFdl
YlNXQ2xpZW50Q29ubmVjdGlvbjo6c2NoZWR1bGVKb2JJblNlcnZlcihjb25zdCBTZXJ2aWNlV29y
a2VySm9iRGF0YSYgam9iRGF0YSkKIHsKLSAgICBydW5PckRlbGF5VGFza0ZvckltcG9ydChbdGhp
cywgam9iRGF0YV0gewotICAgICAgICBzZW5kKE1lc3NhZ2VzOjpXZWJTV1NlcnZlckNvbm5lY3Rp
b246OlNjaGVkdWxlSm9iSW5TZXJ2ZXIgeyBqb2JEYXRhIH0pOwotICAgIH0pOworICAgIHNlbmQo
TWVzc2FnZXM6OldlYlNXU2VydmVyQ29ubmVjdGlvbjo6U2NoZWR1bGVKb2JJblNlcnZlciB7IGpv
YkRhdGEgfSk7CiB9CiAKIHZvaWQgV2ViU1dDbGllbnRDb25uZWN0aW9uOjpmaW5pc2hGZXRjaGlu
Z1NjcmlwdEluU2VydmVyKGNvbnN0IFNlcnZpY2VXb3JrZXJKb2JEYXRhSWRlbnRpZmllciYgam9i
RGF0YUlkZW50aWZpZXIsIFNlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb25LZXkmJiByZWdpc3RyYXRp
b25LZXksIFdvcmtlckZldGNoUmVzdWx0JiYgcmVzdWx0KQpAQCAtMTMwLDQ3ICsxMjYsMTAgQEAg
dm9pZCBXZWJTV0NsaWVudENvbm5lY3Rpb246OmRpZFJlc29sdmVSZWdpc3RyYXRpb25Qcm9taXNl
KGNvbnN0IFNlcnZpY2VXb3JrZXJSZWcKICAgICBzZW5kKE1lc3NhZ2VzOjpXZWJTV1NlcnZlckNv
bm5lY3Rpb246OkRpZFJlc29sdmVSZWdpc3RyYXRpb25Qcm9taXNlIHsga2V5IH0pOwogfQogCi1i
b29sIFdlYlNXQ2xpZW50Q29ubmVjdGlvbjo6bWF5SGF2ZVNlcnZpY2VXb3JrZXJSZWdpc3RlcmVk
Rm9yT3JpZ2luKGNvbnN0IFNlY3VyaXR5T3JpZ2luRGF0YSYgb3JpZ2luKSBjb25zdAotewotICAg
IGlmICghbV9zd09yaWdpblRhYmxlLT5pc0ltcG9ydGVkKCkpCi0gICAgICAgIHJldHVybiB0cnVl
OwotCi0gICAgcmV0dXJuIG1fc3dPcmlnaW5UYWJsZS0+Y29udGFpbnMob3JpZ2luKTsKLX0KLQot
dm9pZCBXZWJTV0NsaWVudENvbm5lY3Rpb246OnNldFNXT3JpZ2luVGFibGVTaGFyZWRNZW1vcnko
Y29uc3QgU2hhcmVkTWVtb3J5OjpJUENIYW5kbGUmIGlwY0hhbmRsZSkKLXsKLSAgICBtX3N3T3Jp
Z2luVGFibGUtPnNldFNoYXJlZE1lbW9yeShpcGNIYW5kbGUuaGFuZGxlKTsKLX0KLQotdm9pZCBX
ZWJTV0NsaWVudENvbm5lY3Rpb246OnNldFNXT3JpZ2luVGFibGVJc0ltcG9ydGVkKCkKLXsKLSAg
ICBtX3N3T3JpZ2luVGFibGUtPnNldElzSW1wb3J0ZWQoKTsKLSAgICB3aGlsZSAoIW1fdGFza3NQ
ZW5kaW5nT3JpZ2luSW1wb3J0LmlzRW1wdHkoKSkKLSAgICAgICAgbV90YXNrc1BlbmRpbmdPcmln
aW5JbXBvcnQudGFrZUZpcnN0KCkoKTsKLX0KLQogdm9pZCBXZWJTV0NsaWVudENvbm5lY3Rpb246
Om1hdGNoUmVnaXN0cmF0aW9uKFNlY3VyaXR5T3JpZ2luRGF0YSYmIHRvcE9yaWdpbiwgY29uc3Qg
VVJMJiBjbGllbnRVUkwsIFJlZ2lzdHJhdGlvbkNhbGxiYWNrJiYgY2FsbGJhY2spCiB7CiAgICAg
QVNTRVJUKGlzTWFpblJ1bkxvb3AoKSk7Ci0KLSAgICBpZiAoIW1heUhhdmVTZXJ2aWNlV29ya2Vy
UmVnaXN0ZXJlZEZvck9yaWdpbih0b3BPcmlnaW4pKSB7Ci0gICAgICAgIGNhbGxiYWNrKHN0ZDo6
bnVsbG9wdCk7Ci0gICAgICAgIHJldHVybjsKLSAgICB9Ci0KLSAgICBydW5PckRlbGF5VGFza0Zv
ckltcG9ydChbdGhpcywgY2FsbGJhY2sgPSBXVEZNb3ZlKGNhbGxiYWNrKSwgdG9wT3JpZ2luID0g
V1RGTW92ZSh0b3BPcmlnaW4pLCBjbGllbnRVUkxdKCkgbXV0YWJsZSB7Ci0gICAgICAgIHNlbmRX
aXRoQXN5bmNSZXBseShNZXNzYWdlczo6V2ViU1dTZXJ2ZXJDb25uZWN0aW9uOjpNYXRjaFJlZ2lz
dHJhdGlvbiB7IHRvcE9yaWdpbiwgY2xpZW50VVJMIH0sIFdURk1vdmUoY2FsbGJhY2spKTsKLSAg
ICB9KTsKLX0KLQotdm9pZCBXZWJTV0NsaWVudENvbm5lY3Rpb246OnJ1bk9yRGVsYXlUYXNrRm9y
SW1wb3J0KEZ1bmN0aW9uPHZvaWQoKT4mJiB0YXNrKQotewotICAgIGlmIChtX3N3T3JpZ2luVGFi
bGUtPmlzSW1wb3J0ZWQoKSkgewotICAgICAgICB0YXNrKCk7Ci0gICAgICAgIHJldHVybjsKLSAg
ICB9Ci0gICAgbV90YXNrc1BlbmRpbmdPcmlnaW5JbXBvcnQuYXBwZW5kKFdURk1vdmUodGFzaykp
OworICAgIHNlbmRXaXRoQXN5bmNSZXBseShNZXNzYWdlczo6V2ViU1dTZXJ2ZXJDb25uZWN0aW9u
OjpNYXRjaFJlZ2lzdHJhdGlvbiB7IHRvcE9yaWdpbiwgY2xpZW50VVJMIH0sIFdURk1vdmUoY2Fs
bGJhY2spKTsKIH0KIAogdm9pZCBXZWJTV0NsaWVudENvbm5lY3Rpb246OndoZW5SZWdpc3RyYXRp
b25SZWFkeShjb25zdCBTZWN1cml0eU9yaWdpbkRhdGEmIHRvcE9yaWdpbiwgY29uc3QgVVJMJiBj
bGllbnRVUkwsIFdoZW5SZWdpc3RyYXRpb25SZWFkeUNhbGxiYWNrJiYgY2FsbGJhY2spCkBAIC0x
OTksMTUgKzE1OCw3IEBAIHZvaWQgV2ViU1dDbGllbnRDb25uZWN0aW9uOjpzZXRTZXJ2aWNlV29y
a2VyQ2xpZW50SXNDb250cm9sbGVkKFNjcmlwdEV4ZWN1dGlvbkNvCiB2b2lkIFdlYlNXQ2xpZW50
Q29ubmVjdGlvbjo6Z2V0UmVnaXN0cmF0aW9ucyhTZWN1cml0eU9yaWdpbkRhdGEmJiB0b3BPcmln
aW4sIGNvbnN0IFVSTCYgY2xpZW50VVJMLCBHZXRSZWdpc3RyYXRpb25zQ2FsbGJhY2smJiBjYWxs
YmFjaykKIHsKICAgICBBU1NFUlQoaXNNYWluUnVuTG9vcCgpKTsKLQotICAgIGlmICghbWF5SGF2
ZVNlcnZpY2VXb3JrZXJSZWdpc3RlcmVkRm9yT3JpZ2luKHRvcE9yaWdpbikpIHsKLSAgICAgICAg
Y2FsbGJhY2soeyB9KTsKLSAgICAgICAgcmV0dXJuOwotICAgIH0KLQotICAgIHJ1bk9yRGVsYXlU
YXNrRm9ySW1wb3J0KFt0aGlzLCBjYWxsYmFjayA9IFdURk1vdmUoY2FsbGJhY2spLCB0b3BPcmln
aW4gPSBXVEZNb3ZlKHRvcE9yaWdpbiksIGNsaWVudFVSTF0oKSBtdXRhYmxlIHsKLSAgICAgICAg
c2VuZFdpdGhBc3luY1JlcGx5KE1lc3NhZ2VzOjpXZWJTV1NlcnZlckNvbm5lY3Rpb246OkdldFJl
Z2lzdHJhdGlvbnMgeyB0b3BPcmlnaW4sIGNsaWVudFVSTCB9LCBXVEZNb3ZlKGNhbGxiYWNrKSk7
Ci0gICAgfSk7CisgICAgc2VuZFdpdGhBc3luY1JlcGx5KE1lc3NhZ2VzOjpXZWJTV1NlcnZlckNv
bm5lY3Rpb246OkdldFJlZ2lzdHJhdGlvbnMgeyB0b3BPcmlnaW4sIGNsaWVudFVSTCB9LCBXVEZN
b3ZlKGNhbGxiYWNrKSk7CiB9CiAKIHZvaWQgV2ViU1dDbGllbnRDb25uZWN0aW9uOjpjb25uZWN0
aW9uVG9TZXJ2ZXJMb3N0KCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9T
dG9yYWdlL1dlYlNXQ2xpZW50Q29ubmVjdGlvbi5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L1N0b3JhZ2UvV2ViU1dDbGllbnRDb25uZWN0aW9uLmgKaW5kZXggYmI5ZTAwYTk2Y2M2Y2YzNGEx
OTRlNGY5NmRiMTFmODhmZGIxNTdhNi4uY2JkMzgzNGFmMTk2N2NkNGJkNDkzN2ViMWQyYzY1YjNj
ODcxMmYwYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1N0b3JhZ2UvV2Vi
U1dDbGllbnRDb25uZWN0aW9uLmgKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1N0b3Jh
Z2UvV2ViU1dDbGllbnRDb25uZWN0aW9uLmgKQEAgLTQyLDcgKzQyLDYgQEAgY2xhc3MgUmVzb3Vy
Y2VMb2FkZXI7CiAKIG5hbWVzcGFjZSBXZWJLaXQgewogCi1jbGFzcyBXZWJTV09yaWdpblRhYmxl
OwogY2xhc3MgV2ViU2VydmljZVdvcmtlclByb3ZpZGVyOwogCiBjbGFzcyBXZWJTV0NsaWVudENv
bm5lY3Rpb24gZmluYWwgOiBwdWJsaWMgV2ViQ29yZTo6U1dDbGllbnRDb25uZWN0aW9uLCBwcml2
YXRlIElQQzo6TWVzc2FnZVNlbmRlciwgcHVibGljIElQQzo6TWVzc2FnZVJlY2VpdmVyIHsKQEAg
LTU4LDggKzU3LDYgQEAgcHVibGljOgogICAgIHZvaWQgZGlzY29ubmVjdGVkRnJvbVdlYlByb2Nl
c3MoKTsKICAgICB2b2lkIGRpZFJlY2VpdmVNZXNzYWdlKElQQzo6Q29ubmVjdGlvbiYsIElQQzo6
RGVjb2RlciYpIGZpbmFsOwogCi0gICAgYm9vbCBtYXlIYXZlU2VydmljZVdvcmtlclJlZ2lzdGVy
ZWRGb3JPcmlnaW4oY29uc3QgV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW5EYXRhJikgY29uc3QgZmlu
YWw7Ci0KICAgICB2b2lkIGNvbm5lY3Rpb25Ub1NlcnZlckxvc3QoKTsKIAogICAgIGJvb2wgaXNU
aHJvdHRsZWFibGUoKSBjb25zdCB7IHJldHVybiBtX2lzVGhyb3R0bGVhYmxlOyB9CkBAIC0xMTAs
MTYgKzEwNywxMCBAQCBwcml2YXRlOgogICAgIElQQzo6Q29ubmVjdGlvbiogbWVzc2FnZVNlbmRl
ckNvbm5lY3Rpb24oKSBjb25zdCBmaW5hbDsKICAgICB1aW50NjRfdCBtZXNzYWdlU2VuZGVyRGVz
dGluYXRpb25JRCgpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIDA7IH0KIAotICAgIHZvaWQgc2V0U1dP
cmlnaW5UYWJsZVNoYXJlZE1lbW9yeShjb25zdCBTaGFyZWRNZW1vcnk6OklQQ0hhbmRsZSYpOwot
ICAgIHZvaWQgc2V0U1dPcmlnaW5UYWJsZUlzSW1wb3J0ZWQoKTsKLQogICAgIHZvaWQgY2xlYXIo
KTsKIAogICAgIFdlYkNvcmU6OlNXU2VydmVyQ29ubmVjdGlvbklkZW50aWZpZXIgbV9pZGVudGlm
aWVyOwogCi0gICAgVW5pcXVlUmVmPFdlYlNXT3JpZ2luVGFibGU+IG1fc3dPcmlnaW5UYWJsZTsK
LQotICAgIERlcXVlPEZ1bmN0aW9uPHZvaWQoKT4+IG1fdGFza3NQZW5kaW5nT3JpZ2luSW1wb3J0
OwogICAgIGJvb2wgbV9pc1Rocm90dGxlYWJsZSB7IHRydWUgfTsKIH07IC8vIGNsYXNzIFdlYlNX
U2VydmVyQ29ubmVjdGlvbgogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
U3RvcmFnZS9XZWJTV0NsaWVudENvbm5lY3Rpb24ubWVzc2FnZXMuaW4gYi9Tb3VyY2UvV2ViS2l0
L1dlYlByb2Nlc3MvU3RvcmFnZS9XZWJTV0NsaWVudENvbm5lY3Rpb24ubWVzc2FnZXMuaW4KaW5k
ZXggYjRjNzY5NWQyYWNhOTU0Y2I4ZjExOTNjMmIxZDE5YmMyYWVmYWEyYS4uNTA1YjBhYWJhYzcz
ZTE0OWY1YzdkZDg3YTNlNjM5NzkzMDQ3NGYzMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL1N0b3JhZ2UvV2ViU1dDbGllbnRDb25uZWN0aW9uLm1lc3NhZ2VzLmluCisrKyBi
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9TdG9yYWdlL1dlYlNXQ2xpZW50Q29ubmVjdGlvbi5t
ZXNzYWdlcy5pbgpAQCAtMzUsOCArMzUsNiBAQCBtZXNzYWdlcyAtPiBXZWJTV0NsaWVudENvbm5l
Y3Rpb24gewogICAgIFNldFJlZ2lzdHJhdGlvblVwZGF0ZVZpYUNhY2hlKFdlYkNvcmU6OlNlcnZp
Y2VXb3JrZXJSZWdpc3RyYXRpb25JZGVudGlmaWVyIGlkZW50aWZpZXIsIGVudW06dWludDhfdCBX
ZWJDb3JlOjpTZXJ2aWNlV29ya2VyVXBkYXRlVmlhQ2FjaGUgdXBkYXRlVmlhQ2FjaGUpOwogICAg
IE5vdGlmeUNsaWVudHNPZkNvbnRyb2xsZXJDaGFuZ2UoSGFzaFNldDxXZWJDb3JlOjpTY3JpcHRF
eGVjdXRpb25Db250ZXh0SWRlbnRpZmllcj4gY29udGV4dElkZW50aWZpZXJzLCBzdHJ1Y3QgV2Vi
Q29yZTo6U2VydmljZVdvcmtlckRhdGEgbmV3Q29udHJvbGxlcikKIAotICAgIFNldFNXT3JpZ2lu
VGFibGVJc0ltcG9ydGVkKCkKLSAgICBTZXRTV09yaWdpblRhYmxlU2hhcmVkTWVtb3J5KFdlYktp
dDo6U2hhcmVkTWVtb3J5OjpJUENIYW5kbGUgaGFuZGxlKQogICAgIFBvc3RNZXNzYWdlVG9TZXJ2
aWNlV29ya2VyQ2xpZW50KFdlYkNvcmU6OlNjcmlwdEV4ZWN1dGlvbkNvbnRleHRJZGVudGlmaWVy
IGRlc3RpbmF0aW9uQ29udGV4dElkZW50aWZpZXIsIHN0cnVjdCBXZWJDb3JlOjpNZXNzYWdlV2l0
aE1lc3NhZ2VQb3J0cyBtZXNzYWdlLCBzdHJ1Y3QgV2ViQ29yZTo6U2VydmljZVdvcmtlckRhdGEg
c291cmNlLCBTdHJpbmcgc291cmNlT3JpZ2luKQogCiAgICAgU2V0U2VydmljZVdvcmtlckNsaWVu
dElzQ29udHJvbGxlZChXZWJDb3JlOjpTY3JpcHRFeGVjdXRpb25Db250ZXh0SWRlbnRpZmllciB3
b3JrZXJJZGVudGlmaWVyLCBzdHJ1Y3QgV2ViQ29yZTo6U2VydmljZVdvcmtlclJlZ2lzdHJhdGlv
bkRhdGEgZGF0YSkgLT4gKGJvb2wgaXNTdWNjZXNzKQo=
</data>
<flag name="commit-queue"
          id="488421"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
      

    </bug>

</bugzilla>