<?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>176179</bug_id>
          
          <creation_ts>2017-08-31 13:04:29 -0700</creation_ts>
          <short_desc>Add (entirely incorrect) fetching of ServiceWorker scripts</short_desc>
          <delta_ts>2017-10-06 09:20:40 -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>WebCore Misc.</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          <see_also>https://bugs.webkit.org/show_bug.cgi?id=174541</see_also>
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Brady Eidson">beidson</reporter>
          <assigned_to name="Brady Eidson">beidson</assigned_to>
          <cc>achristensen</cc>
    
    <cc>aestes</cc>
    
    <cc>buildbot</cc>
    
    <cc>commit-queue</cc>
    
    <cc>dbates</cc>
    
    <cc>jrburke</cc>
    
    <cc>mkwst</cc>
    
    <cc>ryanhaddad</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>youennf</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1344092</commentid>
    <comment_count>0</comment_count>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2017-08-31 13:04:29 -0700</bug_when>
    <thetext>Add (entirely incorrect) fetching of ServiceWorker scripts

After the basic infrastructure is in place, we&apos;ll make it proper in a followup.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1344135</commentid>
    <comment_count>1</comment_count>
      <attachid>319522</attachid>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2017-08-31 14:26:46 -0700</bug_when>
    <thetext>Created attachment 319522
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1344140</commentid>
    <comment_count>2</comment_count>
      <attachid>319522</attachid>
    <who name="Andy Estes">aestes</who>
    <bug_when>2017-08-31 14:41:01 -0700</bug_when>
    <thetext>Comment on attachment 319522
Patch

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

&gt; Source/WebCore/workers/service/ServiceWorkerContainer.cpp:192
&gt; +        LOG_ERROR(&quot;ServiceWorkerContainer::jobResolvedWithRegistration called but the containers ScriptExecutionContext is gone&quot;);

containers =&gt; container&apos;s

&gt; Source/WebCore/workers/service/ServiceWorkerContainer.cpp:193
&gt; +        m_swConnection-&gt;failedFetchingScript(job, { errorDomainWebKitInternal, 0, job.data().scriptURL, ASCIILiteral(&quot;Attempt to fetch service worker script with no script execution context&quot;) });

This error says &quot;script execution context&quot;, but the one above says &quot;ScriptExecutionContext&quot;. I&apos;d be consistent.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1344165</commentid>
    <comment_count>3</comment_count>
      <attachid>319533</attachid>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2017-08-31 15:39:06 -0700</bug_when>
    <thetext>Created attachment 319533
Patch fo landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1344213</commentid>
    <comment_count>4</comment_count>
      <attachid>319533</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2017-08-31 17:12:56 -0700</bug_when>
    <thetext>Comment on attachment 319533
Patch fo landing

Clearing flags on attachment: 319533

Committed r221461: &lt;http://trac.webkit.org/changeset/221461&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1344301</commentid>
    <comment_count>5</comment_count>
      <attachid>319533</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2017-08-31 21:10:39 -0700</bug_when>
    <thetext>Comment on attachment 319533
Patch fo landing

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

&gt; Source/WebCore/workers/service/ServiceWorkerJob.cpp:85
&gt; +    m_fetchLoader = std::make_unique&lt;FetchLoader&gt;(*this, nullptr);

FetchLoader should not be used for the purpose of loading scripts.
It should be kept internal to fetch API and not to other kind of fetch except for raw resources.

WorkerScriptLoader is the closest to classic script loading and CachedModuleScriptLoader/CachedScriptFetcher the closest to module loading.

I am unclear how is used this data.
If the goal is to send it back to the storage process, it seems unnecessary to load the data on the worker thread.
We can probably grab in the worker thread the parameters necessary for the load, and then continue the networking in the main thread, like done by WorkerThreadableLoader.

&gt; Source/WebCore/workers/service/ServiceWorkerJob.h:84
&gt; +    std::optional&lt;Ref&lt;SharedBuffer&gt;&gt; m_scriptData;

Why optional and not RefPtr&lt;SharedBuffer&gt;?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1344306</commentid>
    <comment_count>6</comment_count>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2017-08-31 22:00:02 -0700</bug_when>
    <thetext>(In reply to youenn fablet from comment #5)
&gt; Comment on attachment 319533 [details]
&gt; Patch fo landing
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=319533&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/workers/service/ServiceWorkerJob.cpp:85
&gt; &gt; +    m_fetchLoader = std::make_unique&lt;FetchLoader&gt;(*this, nullptr);
&gt; 
&gt; FetchLoader should not be used for the purpose of loading scripts.
&gt; It should be kept internal to fetch API and not to other kind of fetch
&gt; except for raw resources.

The ServiceWorker spec says &quot;perform a fetch&quot; the same way the Fetch API does.

AFAIK, FetchLoader is our implementation of this.

&gt; WorkerScriptLoader is the closest to classic script loading and
&gt; CachedModuleScriptLoader/CachedScriptFetcher the closest to module loading.

AFAIK these are WebCore internal loading concepts and do not implement the semantics of &quot;Fetch&quot;

Is it not true that &quot;Fetch&quot; has special semantics over &quot;load a resource the old fashioned way&quot;?

&gt; I am unclear how is used this data.
&gt; If the goal is to send it back to the storage process, it seems unnecessary
&gt; to load the data on the worker thread.

It is sent back to the storage process, but it is not loaded any given worker thread.

&gt; We can probably grab in the worker thread the parameters necessary for the
&gt; load, and then continue the networking in the main thread, like done by
&gt; WorkerThreadableLoader.

Nothing in this patch performs a load on a worker thread - It&apos;s all in the main thread.

(Though it definitely is set up for future loading from a ServiceWorker, in addition to a main thread Document context)

&gt; &gt; Source/WebCore/workers/service/ServiceWorkerJob.h:84
&gt; &gt; +    std::optional&lt;Ref&lt;SharedBuffer&gt;&gt; m_scriptData;
&gt; 
&gt; Why optional and not RefPtr&lt;SharedBuffer&gt;?

Yah, leftover artifact from a period of development of this patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1344307</commentid>
    <comment_count>7</comment_count>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2017-08-31 22:04:13 -0700</bug_when>
    <thetext>&gt; WorkerScriptLoader is the closest to classic script loading and
&gt; CachedModuleScriptLoader/CachedScriptFetcher the closest to module loading.

CachedFoo* are insufficient as this code *will* need to be executable from a worker thread in the future.

But, anyways, tl;dr - If &quot;perform the fetch&quot; doesn&apos;t have special semantics that rely on FetchLoader, I&apos;ll gladly use something else.

I was under the impression &quot;perform the fetch&quot; has specific meanings that point me towards FetchLoader, but if not that&apos;s fine.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1344402</commentid>
    <comment_count>8</comment_count>
    <who name="youenn fablet">youennf</who>
    <bug_when>2017-09-01 08:40:22 -0700</bug_when>
    <thetext>Fetch algorithm is taking into account the nature of the load,. This impacts for instance the request destination.

FetchLoader is only for raw resources, which is good for things like fetch API/XHR event source... but is not good for images, fonts or scripts.

Looking at the spec, SW is fetching a classic worker script or a module worker script tree, depending on the worker type.
That should ultimately end up in calling CachedResourceLoader::requestScript.

Or we could punt on future WorkerScriptLoader refactoring so that WorkerScriptLoader would be responsible to implement these classic/module worker script fetching.
Currently, it is not doing this correctly but this could probably be improved.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1344403</commentid>
    <comment_count>9</comment_count>
    <who name="youenn fablet">youennf</who>
    <bug_when>2017-09-01 08:41:08 -0700</bug_when>
    <thetext>See for instance https://fetch.spec.whatwg.org/#concept-request-destination</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1344404</commentid>
    <comment_count>10</comment_count>
    <who name="youenn fablet">youennf</who>
    <bug_when>2017-09-01 08:44:25 -0700</bug_when>
    <thetext>Looking at ScriptModuleLoader::fetch, CachedModuleScriptLoader is responsible to implement https://html.spec.whatwg.org/multipage/webappapis.html#fetch-a-single-module-script.

Given the current API of these loaders and SW implementation, it does not seem to align well though.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1344454</commentid>
    <comment_count>11</comment_count>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2017-09-01 10:46:32 -0700</bug_when>
    <thetext>Yup, going with WorkerScriptLoader I think.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1346082</commentid>
    <comment_count>12</comment_count>
    <who name="Ryan Haddad">ryanhaddad</who>
    <bug_when>2017-09-06 13:40:07 -0700</bug_when>
    <thetext>Reverted r221461 for reason:

The LayoutTest added with this change crashes under GuardMalloc.

Committed r221699: &lt;http://trac.webkit.org/changeset/221699&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1346083</commentid>
    <comment_count>13</comment_count>
    <who name="Ryan Haddad">ryanhaddad</who>
    <bug_when>2017-09-06 13:41:23 -0700</bug_when>
    <thetext>(In reply to Ryan Haddad from comment #12)
&gt; Reverted r221461 for reason:
&gt; 
&gt; The LayoutTest added with this change crashes under GuardMalloc.
&gt; 
&gt; Committed r221699: &lt;http://trac.webkit.org/changeset/221699&gt;
&lt;rdar://problem/34209643&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1357104</commentid>
    <comment_count>14</comment_count>
      <attachid>322863</attachid>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2017-10-05 11:10:05 -0700</bug_when>
    <thetext>Created attachment 322863
New patch

Try again, new loader like Youenn suggested.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1357180</commentid>
    <comment_count>15</comment_count>
      <attachid>322885</attachid>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2017-10-05 12:56:23 -0700</bug_when>
    <thetext>Created attachment 322885
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1357186</commentid>
    <comment_count>16</comment_count>
      <attachid>322886</attachid>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2017-10-05 13:01:21 -0700</bug_when>
    <thetext>Created attachment 322886
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1357239</commentid>
    <comment_count>17</comment_count>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2017-10-05 14:09:58 -0700</bug_when>
    <thetext>(In reply to Ryan Haddad from comment #12)
&gt; Reverted r221461 for reason:
&gt; 
&gt; The LayoutTest added with this change crashes under GuardMalloc.
&gt; 
&gt; Committed r221699: &lt;http://trac.webkit.org/changeset/221699&gt;

The new patch running through EWS does not crash under GM based on my `run-webkit-tests -g` command.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1357603</commentid>
    <comment_count>18</comment_count>
      <attachid>322886</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2017-10-06 09:20:08 -0700</bug_when>
    <thetext>Comment on attachment 322886
Patch

Clearing flags on attachment: 322886

Committed r222980: &lt;http://trac.webkit.org/changeset/222980&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1357604</commentid>
    <comment_count>19</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2017-10-06 09:20:10 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1357605</commentid>
    <comment_count>20</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2017-10-06 09:20:40 -0700</bug_when>
    <thetext>&lt;rdar://problem/34856978&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>319522</attachid>
            <date>2017-08-31 14:26:46 -0700</date>
            <delta_ts>2017-10-05 11:10:05 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>patch</filename>
            <type>text/plain</type>
            <size>43218</size>
            <attacher name="Brady Eidson">beidson</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCBiNjgzNGYxNmQ2Ny4uMWVhYmI4OGQyOTYgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3Rz
L0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNCBAQAor
MjAxNy0wOC0zMSAgQnJhZHkgRWlkc29uICA8YmVpZHNvbkBhcHBsZS5jb20+CisKKyAgICAgICAg
QWRkIChlbnRpcmVseSBpbmNvcnJlY3QpIGZldGNoaW5nIG9mIFNlcnZpY2VXb3JrZXIgc2NyaXB0
cy4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE3NjE3
OQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogaHR0
cC90ZXN0cy93b3JrZXJzL3NlcnZpY2UvYmFzaWMtcmVnaXN0ZXItZXhwZWN0ZWQudHh0OgorICAg
ICAgICAqIGh0dHAvdGVzdHMvd29ya2Vycy9zZXJ2aWNlL3Jlc291cmNlcy9iYXNpYy1yZWdpc3Rl
ci5qczoKKyAgICAgICAgKiBodHRwL3Rlc3RzL3dvcmtlcnMvc2VydmljZS9yZXNvdXJjZXMvcmVn
aXN0cmF0aW9uLXRhc2stcXVldWUtc2NoZWR1bGluZy0xLmpzOgorCiAyMDE3LTA4LTMwICBQZXIg
QXJuZSBWb2xsYW4gIDxwdm9sbGFuQGFwcGxlLmNvbT4KIAogICAgICAgICBUaGUgdGVzdCBpbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2RvbS90cmF2ZXJzYWwvTm9kZUZpbHRlci1jb25z
dGFudHMuaHRtbCBpcyBzbG93IG9uIFdpbmRvd3MuCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9o
dHRwL3Rlc3RzL3dvcmtlcnMvc2VydmljZS9iYXNpYy1yZWdpc3Rlci1leHBlY3RlZC50eHQgYi9M
YXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dvcmtlcnMvc2VydmljZS9iYXNpYy1yZWdpc3Rlci1leHBl
Y3RlZC50eHQKaW5kZXggYzAxOGU0NWU1ZDEuLjBhZWRmNzBmMjdmIDEwMDY0NAotLS0gYS9MYXlv
dXRUZXN0cy9odHRwL3Rlc3RzL3dvcmtlcnMvc2VydmljZS9iYXNpYy1yZWdpc3Rlci1leHBlY3Rl
ZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93b3JrZXJzL3NlcnZpY2UvYmFzaWMt
cmVnaXN0ZXItZXhwZWN0ZWQudHh0CkBAIC0xLDIgKzEsMyBAQAotQ09OU09MRSBNRVNTQUdFOiBs
aW5lIDExOiBSZWdpc3RyYXRpb24gZmFpbGVkIHdpdGggZXJyb3I6IFVua25vd25FcnJvcjogc2Vy
dmljZVdvcmtlciBqb2Igc2NoZWR1bGluZyBpcyBub3QgeWV0IGltcGxlbWVudGVkCitDT05TT0xF
IE1FU1NBR0U6IGxpbmUgMTA6IFJlZ2lzdHJhdGlvbiBmYWlsZWQgd2l0aCBlcnJvcjogVW5rbm93
bkVycm9yOiBTY3JpcHQgVVJMIGh0dHA6Ly8xMjcuMC4wLjE6ODAwMC93b3JrZXJzL3NlcnZpY2Uv
cmVzb3VyY2VzL2VtcHR5LXdvcmtlci5qcyBmZXRjaGVkIHdpdGggNDEgYnl0ZXMsIGJ1dCB3ZSdy
ZSBub3QgdXNpbmcgdGhlIHJlc3VsdCB5ZXQKK0NPTlNPTEUgTUVTU0FHRTogbGluZSAyMTogUmVn
aXN0cmF0aW9uIGZhaWxlZCB3aXRoIGVycm9yOiBVbmtub3duRXJyb3I6IFNjcmlwdCBVUkwgaHR0
cDovLzEyNy4wLjAuMTo4MDAwL3dvcmtlcnMvc2VydmljZS9yZXNvdXJjZXMvZW1wdHktd29ya2Vy
LWRvZXNudC1leGlzdC5qcyBmZXRjaCByZXN1bHRlZCBpbiBlcnJvcjogU2VydmljZVdvcmtlciBz
Y3JpcHQgbmV0d29yayBmZXRjaCBmYWlsZWQgd2l0aCBIVFRQIHN0YXR1cyBjb2RlIDQwNAogCmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dvcmtlcnMvc2VydmljZS9yZXNvdXJj
ZXMvYmFzaWMtcmVnaXN0ZXIuanMgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dvcmtlcnMvc2Vy
dmljZS9yZXNvdXJjZXMvYmFzaWMtcmVnaXN0ZXIuanMKaW5kZXggZTc1MTZmZTU1MTcuLjNhMWU2
M2IwYTY0IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dvcmtlcnMvc2Vydmlj
ZS9yZXNvdXJjZXMvYmFzaWMtcmVnaXN0ZXIuanMKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0
cy93b3JrZXJzL3NlcnZpY2UvcmVzb3VyY2VzL2Jhc2ljLXJlZ2lzdGVyLmpzCkBAIC02LDYgKzYs
MTYgQEAgZnVuY3Rpb24gZG9uZSgpCiBuYXZpZ2F0b3Iuc2VydmljZVdvcmtlci5yZWdpc3Rlcigi
cmVzb3VyY2VzL2VtcHR5LXdvcmtlci5qcyIsIHsgfSkKIC50aGVuKGZ1bmN0aW9uKHIpIHsKIAlj
b25zb2xlLmxvZygiUmVnaXN0ZXJlZCEiKTsKK30sIGZ1bmN0aW9uKGUpIHsKKwljb25zb2xlLmxv
ZygiUmVnaXN0cmF0aW9uIGZhaWxlZCB3aXRoIGVycm9yOiAiICsgZSk7Cit9KQorLmNhdGNoKGZ1
bmN0aW9uKGUpIHsKKwljb25zb2xlLmxvZygiRXhjZXB0aW9uIHJlZ2lzdGVyaW5nOiAiICsgZSk7
Cit9KTsKKworbmF2aWdhdG9yLnNlcnZpY2VXb3JrZXIucmVnaXN0ZXIoInJlc291cmNlcy9lbXB0
eS13b3JrZXItZG9lc250LWV4aXN0LmpzIiwgeyB9KQorLnRoZW4oZnVuY3Rpb24ocikgeworCWNv
bnNvbGUubG9nKCJSZWdpc3RlcmVkISIpOwogCWRvbmUoKTsKIH0sIGZ1bmN0aW9uKGUpIHsKIAlj
b25zb2xlLmxvZygiUmVnaXN0cmF0aW9uIGZhaWxlZCB3aXRoIGVycm9yOiAiICsgZSk7CmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dvcmtlcnMvc2VydmljZS9yZXNvdXJjZXMv
cmVnaXN0cmF0aW9uLXRhc2stcXVldWUtc2NoZWR1bGluZy0xLmpzIGIvTGF5b3V0VGVzdHMvaHR0
cC90ZXN0cy93b3JrZXJzL3NlcnZpY2UvcmVzb3VyY2VzL3JlZ2lzdHJhdGlvbi10YXNrLXF1ZXVl
LXNjaGVkdWxpbmctMS5qcwppbmRleCAxMjdhM2RiMzU0NS4uOGUzZTAyZDg5Y2YgMTAwNjQ0Ci0t
LSBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvd29ya2Vycy9zZXJ2aWNlL3Jlc291cmNlcy9yZWdp
c3RyYXRpb24tdGFzay1xdWV1ZS1zY2hlZHVsaW5nLTEuanMKKysrIGIvTGF5b3V0VGVzdHMvaHR0
cC90ZXN0cy93b3JrZXJzL3NlcnZpY2UvcmVzb3VyY2VzL3JlZ2lzdHJhdGlvbi10YXNrLXF1ZXVl
LXNjaGVkdWxpbmctMS5qcwpAQCAtNDgsOCArNDgsOCBAQCBmb3IgKHZhciBpID0gMDsgaSA8IDEw
MDA7ICsraSkgewogCQljb25zb2xlLmxvZygiT3JpZ2luYWwgd2luZG93IHJlc29sdmVkIHN1Y2Nl
c3NmdWxseSAodW5leHBlY3RlZCkiKQogCQlkb25lKCk7CiAJfSwgZnVuY3Rpb24oZSkgewotCQlp
ZiAoZSsiIiAhPSAiVW5rbm93bkVycm9yOiBzZXJ2aWNlV29ya2VyIGpvYiBzY2hlZHVsaW5nIGlz
IG5vdCB5ZXQgaW1wbGVtZW50ZWQiKSB7Ci0JCQlhbGVydCgiVW5leHBlY3RlZCBlcnJvciByZWNl
aXZlZCBmcm9tIHNlcnZlciIpOworCQlpZiAoZSsiIiAhPSAiVW5rbm93bkVycm9yOiBTY3JpcHQg
VVJMIGh0dHA6Ly8xMjcuMC4wLjE6ODAwMC93b3JrZXJzL3NlcnZpY2UvcmVzb3VyY2VzL2VtcHR5
LXdvcmtlci5qcyBmZXRjaGVkIHdpdGggNDEgYnl0ZXMsIGJ1dCB3ZSdyZSBub3QgdXNpbmcgdGhl
IHJlc3VsdCB5ZXQiKSB7CisJCQlhbGVydCgiVW5leHBlY3RlZCBlcnJvciByZWNlaXZlZCBmcm9t
IHNlcnZlcjogIiArIGUpOwogCQkJZmluaXNoU1dUZXN0KCk7CiAJCX0KIAkJCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5k
ZXggMWZmMjU2ZTJjOGUuLmY3NjQ0YzU4ZGNmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNjMgQEAK
KzIwMTctMDgtMzEgIEJyYWR5IEVpZHNvbiAgPGJlaWRzb25AYXBwbGUuY29tPgorCisgICAgICAg
IEFkZCAoZW50aXJlbHkgaW5jb3JyZWN0KSBmZXRjaGluZyBvZiBTZXJ2aWNlV29ya2VyIHNjcmlw
dHMuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNzYx
NzkKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBObyBu
ZXcgdGVzdHMgKENvdmVyZWQgYnkgY2hhbmdlcyB0byBleGlzdGluZyB0ZXN0cykuCisKKyAgICAg
ICAgV2hlbiB0aGUgU3RvcmFnZSBwcm9jZXNzIGlzIHJ1bm5pbmcgdGhlICJVcGRhdGUiIGFsZ29y
aXRobSBhbmQgYSBTZXJ2aWNlV29ya2VyIHNjcmlwdCBmaWxlIG5lZWRzIHRvIGJlIGZldGNoZWQs
IHRoaXMgcGF0Y2g6CisgICAgICAgICAgLSBNZXNzYWdlcyBiYWNrIHRvIHRoZSBXZWJDb250ZW50
IHByb2Nlc3MgdGhhdCBzdGFydGVkIHRoZSByZWdpc3Rlci91cGRhdGUgam9iCisgICAgICAgICAg
LSBFeGVjdXRlcyBhIEZldGNoTG9hZCBpbiB0aGF0IHNjcmlwdCBjb250ZXh0IGZvciB0aGUgc2Ny
aXB0CisgICAgICAgICAgLSBTZW5kcyB0aGUgcmVzdWx0cyBiYWNrIHRvIHRoZSBTdG9yYWdlIHBy
b2Nlc3MKKworICAgICAgICBXZSBkb24ndCBkbyBhbnl0aGluZyB3aXRoIHRoZSByZXN1bHRzIHll
dC4KKworICAgICAgICBTb29uLgorCisgICAgICAgICogV2ViQ29yZS54Y29kZXByb2ovcHJvamVj
dC5wYnhwcm9qOgorCisgICAgICAgICogd29ya2Vycy9zZXJ2aWNlL1NlcnZpY2VXb3JrZXJDb250
YWluZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U2VydmljZVdvcmtlckNvbnRhaW5lcjo6c3Rh
cnRTY3JpcHRGZXRjaEZvckpvYik6CisgICAgICAgIChXZWJDb3JlOjpTZXJ2aWNlV29ya2VyQ29u
dGFpbmVyOjpqb2JGaW5pc2hlZExvYWRpbmdTY3JpcHQpOgorICAgICAgICAoV2ViQ29yZTo6U2Vy
dmljZVdvcmtlckNvbnRhaW5lcjo6am9iRmFpbGVkTG9hZGluZ1NjcmlwdCk6CisgICAgICAgICog
d29ya2Vycy9zZXJ2aWNlL1NlcnZpY2VXb3JrZXJDb250YWluZXIuaDoKKworICAgICAgICAqIHdv
cmtlcnMvc2VydmljZS9TZXJ2aWNlV29ya2VyRmV0Y2hSZXN1bHQuaDogQ29waWVkIGZyb20gU291
cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL3NlcnZlci9TV0NsaWVudENvbm5lY3Rpb24uaC4K
KyAgICAgICAgKFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJGZXRjaFJlc3VsdDo6ZW5jb2RlIGNvbnN0
KToKKyAgICAgICAgKFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJGZXRjaFJlc3VsdDo6ZGVjb2RlKToK
KworICAgICAgICAqIHdvcmtlcnMvc2VydmljZS9TZXJ2aWNlV29ya2VySm9iLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJKb2I6OnN0YXJ0U2NyaXB0RmV0Y2gpOgorICAgICAg
ICAoV2ViQ29yZTo6U2VydmljZVdvcmtlckpvYjo6ZmV0Y2hTY3JpcHRXaXRoQ29udGV4dCk6Cisg
ICAgICAgIChXZWJDb3JlOjpTZXJ2aWNlV29ya2VySm9iOjpkaWRSZWNlaXZlUmVzcG9uc2UpOgor
ICAgICAgICAoV2ViQ29yZTo6U2VydmljZVdvcmtlckpvYjo6ZGlkUmVjZWl2ZURhdGEpOgorICAg
ICAgICAoV2ViQ29yZTo6U2VydmljZVdvcmtlckpvYjo6ZGlkU3VjY2VlZCk6CisgICAgICAgIChX
ZWJDb3JlOjpTZXJ2aWNlV29ya2VySm9iOjpkaWRGYWlsKToKKyAgICAgICAgKiB3b3JrZXJzL3Nl
cnZpY2UvU2VydmljZVdvcmtlckpvYi5oOgorCisgICAgICAgICogd29ya2Vycy9zZXJ2aWNlL1Nl
cnZpY2VXb3JrZXJKb2JDbGllbnQuaDoKKworICAgICAgICAqIHdvcmtlcnMvc2VydmljZS9zZXJ2
ZXIvU1dDbGllbnRDb25uZWN0aW9uLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNXQ2xpZW50Q29u
bmVjdGlvbjo6ZmluaXNoZWRGZXRjaGluZ1NjcmlwdCk6CisgICAgICAgIChXZWJDb3JlOjpTV0Ns
aWVudENvbm5lY3Rpb246OmZhaWxlZEZldGNoaW5nU2NyaXB0KToKKyAgICAgICAgKFdlYkNvcmU6
OlNXQ2xpZW50Q29ubmVjdGlvbjo6c3RhcnRTY3JpcHRGZXRjaEZvclNlcnZlcik6CisgICAgICAg
ICogd29ya2Vycy9zZXJ2aWNlL3NlcnZlci9TV0NsaWVudENvbm5lY3Rpb24uaDoKKworICAgICAg
ICAqIHdvcmtlcnMvc2VydmljZS9zZXJ2ZXIvU1dTZXJ2ZXIuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6U1dTZXJ2ZXI6OkNvbm5lY3Rpb246OmZpbmlzaEZldGNoaW5nU2NyaXB0SW5TZXJ2ZXIpOgor
ICAgICAgICAoV2ViQ29yZTo6U1dTZXJ2ZXI6OnN0YXJ0U2NyaXB0RmV0Y2gpOgorICAgICAgICAo
V2ViQ29yZTo6U1dTZXJ2ZXI6OnNjcmlwdEZldGNoRmluaXNoZWQpOgorICAgICAgICAqIHdvcmtl
cnMvc2VydmljZS9zZXJ2ZXIvU1dTZXJ2ZXIuaDoKKworICAgICAgICAqIHdvcmtlcnMvc2Vydmlj
ZS9zZXJ2ZXIvU1dTZXJ2ZXJSZWdpc3RyYXRpb24uY3BwOgorICAgICAgICAoV2ViQ29yZTo6U1dT
ZXJ2ZXJSZWdpc3RyYXRpb246OnNjcmlwdEZldGNoRmluaXNoZWQpOgorICAgICAgICAoV2ViQ29y
ZTo6U1dTZXJ2ZXJSZWdpc3RyYXRpb246OnJ1blVwZGF0ZUpvYik6CisgICAgICAgIChXZWJDb3Jl
OjpTV1NlcnZlclJlZ2lzdHJhdGlvbjo6c3RhcnRTY3JpcHRGZXRjaEZyb21NYWluVGhyZWFkKToK
KyAgICAgICAgKFdlYkNvcmU6OlNXU2VydmVyUmVnaXN0cmF0aW9uOjpzdGFydFNjcmlwdEZldGNo
Rm9yQ3VycmVudEpvYik6CisgICAgICAgICogd29ya2Vycy9zZXJ2aWNlL3NlcnZlci9TV1NlcnZl
clJlZ2lzdHJhdGlvbi5oOgorCiAyMDE3LTA4LTI5ICBXZW5zb24gSHNpZWggIDx3ZW5zb25faHNp
ZWhAYXBwbGUuY29tPgogCiAgICAgICAgIFJFR1JFU1NJT04ocjIxMDI4NykgT24gZHJvcCwgZXZl
bnQuZGF0YVRyYW5zZmVyLmdldERhdGEoInRleHQiKSByZXR1cm5zIGFuIGVtcHR5IHN0cmluZyB3
aGVuIGRyYWdnaW5nIGFuIGltYWdlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3Jl
Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2Rl
cHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggZjE0YjlkZmI0ODIuLjY2ZWNlMGQxZDk0IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oK
KysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBA
IC0yMzA1LDYgKzIzMDUsMTAgQEAKIAkJNTE3QTUzNDYxRjUwQzE3RjAwRENEQzBBIC8qIFNXU2Vy
dmVyV29ya2VyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSA1MTdBNTM0MjFGNTBDMTYxMDBEQ0RDMEEgLyogU1dTZXJ2ZXJXb3JrZXIuaCAqLzsgc2V0dGlu
Z3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk1MTdBNTM0RTFGNTRBOEJB
MDBEQ0RDMEEgLyogU2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbkRhdGEuY3BwIGluIFNvdXJjZXMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTE3QTUzNEIxRjU0OUQ0QTAwRENE
QzBBIC8qIFNlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb25EYXRhLmNwcCAqLzsgfTsKIAkJNTE3QTUz
NEYxRjU0QThCQTAwRENEQzBBIC8qIFNlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb25EYXRhLmggaW4g
SGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1MTdBNTM0QzFGNTQ5
RDRBMDBEQ0RDMEEgLyogU2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbkRhdGEuaCAqLzsgc2V0dGlu
Z3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OworCQk1MTdBNTM1ODFGNTg4OUU4
MDBEQ0RDMEEgLyogRmV0Y2hMb2FkZXJDbGllbnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQxNDdFMkI2MUM4OTkxMjYwMEE3RTcxNSAvKiBGZXRjaExv
YWRlckNsaWVudC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07
IH07CisJCTUxN0E1MzVBMUY1ODg5RUYwMERDREMwQSAvKiBGZXRjaExvYWRlci5oIGluIEhlYWRl
cnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDE0N0UyQjUxQzg5OTEyNjAw
QTdFNzE1IC8qIEZldGNoTG9hZGVyLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJp
dmF0ZSwgKTsgfTsgfTsKKwkJNTE3QTUzNUIxRjU4OEE0QzAwRENEQzBBIC8qIEZldGNoQm9keUNv
bnN1bWVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0
MUNGOEJFNTFENDYyMjIwMDA3MDdEQzkgLyogRmV0Y2hCb2R5Q29uc3VtZXIuaCAqLzsgc2V0dGlu
Z3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OworCQk1MTdBNTM1RDFGNTg5OUZF
MDBEQ0RDMEEgLyogU2VydmljZVdvcmtlckZldGNoUmVzdWx0LmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1MTdBNTM1QzFGNTg5OUYyMDBEQ0RDMEEgLyog
U2VydmljZVdvcmtlckZldGNoUmVzdWx0LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAo
UHJpdmF0ZSwgKTsgfTsgfTsKIAkJNTE3QTYzQzMxQjc0MzE4NzAwRTdEQ0RDIC8qIEtleWVkRGVj
b2RlckNGLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDUxN0E2M0JGMUI3NDMxN0UwMEU3RENEQyAvKiBLZXllZERlY29kZXJDRi5jcHAgKi87IH07CiAJ
CTUxN0E2M0M0MUI3NDMxOEIwMEU3RENEQyAvKiBLZXllZEVuY29kZXJDRi5jcHAgaW4gU291cmNl
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1MTdBNjNDMTFCNzQzMTdFMDBF
N0RDREMgLyogS2V5ZWRFbmNvZGVyQ0YuY3BwICovOyB9OwogCQk1MTdBNjNDNTFCNzQzMThGMDBF
N0RDREMgLyogS2V5ZWREZWNvZGVyQ0YuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDUxN0E2M0MwMUI3NDMxN0UwMEU3RENEQyAvKiBLZXllZERlY29kZXJD
Ri5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CkBAIC0x
MDEzMCw2ICsxMDEzNCw3IEBACiAJCTUxN0E1MzQzMUY1MEMxNjEwMERDREMwQSAvKiBTV1NlcnZl
cldvcmtlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBTV1NlcnZl
cldvcmtlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTUxN0E1MzRCMUY1NDlE
NEEwMERDREMwQSAvKiBTZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uRGF0YS5jcHAgKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBTZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uRGF0
YS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTUxN0E1MzRDMUY1NDlENEEwMERD
REMwQSAvKiBTZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uRGF0YS5oICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jLmg7IHBhdGggPSBTZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uRGF0YS5oOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OworCQk1MTdBNTM1QzFGNTg5OUYyMDBEQ0RDMEEgLyogU2Vydmlj
ZVdvcmtlckZldGNoUmVzdWx0LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFNl
cnZpY2VXb3JrZXJGZXRjaFJlc3VsdC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1
MTdBNjNCRjFCNzQzMTdFMDBFN0RDREMgLyogS2V5ZWREZWNvZGVyQ0YuY3BwICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gS2V5ZWREZWNvZGVyQ0YuY3BwOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQk1MTdBNjNDMDFCNzQzMTdFMDBFN0RDREMgLyogS2V5ZWREZWNv
ZGVyQ0YuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gS2V5ZWREZWNvZGVyQ0Yu
aDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTE3QTYzQzExQjc0MzE3RTAwRTdEQ0RD
IC8qIEtleWVkRW5jb2RlckNGLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0
aCA9IEtleWVkRW5jb2RlckNGLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTE4
ODU5LDYgKzE4ODY0LDcgQEAKIAkJCQk1MUYxNzU1ODFGM0VCQzBDMDBDNzQ5NTAgLyogU2Vydmlj
ZVdvcmtlckNvbnRhaW5lci5jcHAgKi8sCiAJCQkJNTFGMTc1NTcxRjNFQkMwQzAwQzc0OTUwIC8q
IFNlcnZpY2VXb3JrZXJDb250YWluZXIuaCAqLywKIAkJCQk1MUYxNzU1NjFGM0VCQzBDMDBDNzQ5
NTAgLyogU2VydmljZVdvcmtlckNvbnRhaW5lci5pZGwgKi8sCisJCQkJNTE3QTUzNUMxRjU4OTlG
MjAwRENEQzBBIC8qIFNlcnZpY2VXb3JrZXJGZXRjaFJlc3VsdC5oICovLAogCQkJCTUxRjE3NTU1
MUYzRUJDMEMwMEM3NDk1MCAvKiBTZXJ2aWNlV29ya2VyR2xvYmFsU2NvcGUuY3BwICovLAogCQkJ
CTUxRjE3NTU0MUYzRUJDMEMwMEM3NDk1MCAvKiBTZXJ2aWNlV29ya2VyR2xvYmFsU2NvcGUuaCAq
LywKIAkJCQk1MUYxNzU1MzFGM0VCQzBDMDBDNzQ5NTAgLyogU2VydmljZVdvcmtlckdsb2JhbFNj
b3BlLmlkbCAqLywKQEAgLTI2ODE2LDYgKzI2ODIyLDcgQEAKIAkJCQkxQThBNjQ1NjFEMTlGQ0ZD
MDBEMEUwMEYgLyogQXBwbGVQYXlQYXltZW50TWV0aG9kU2VsZWN0ZWRFdmVudC5oIGluIEhlYWRl
cnMgKi8sCiAJCQkJN0M2NTIyRjUxRTAwQTUxNzAwNjc3RjIyIC8qIEFwcGxlUGF5UGF5bWVudFBh
c3MuaCBpbiBIZWFkZXJzICovLAogCQkJCTdDNjU3OUUwMUUwMDc5RjkwMEUzQTI3QSAvKiBBcHBs
ZVBheVBheW1lbnRSZXF1ZXN0LmggaW4gSGVhZGVycyAqLywKKwkJCQk1MTdBNTM1QTFGNTg4OUVG
MDBEQ0RDMEEgLyogRmV0Y2hMb2FkZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCTFBOEE2NDU5MUQx
OUZDRkMwMEQwRTAwRiAvKiBBcHBsZVBheVNlc3Npb24uaCBpbiBIZWFkZXJzICovLAogCQkJCTFB
NThFODY1MUQxOUQ0RUIwMEMwRUE3MyAvKiBBcHBsZVBheVNlc3Npb25QYXltZW50UmVxdWVzdC5o
IGluIEhlYWRlcnMgKi8sCiAJCQkJMUE4QTY0NUMxRDE5RkNGQzAwRDBFMDBGIC8qIEFwcGxlUGF5
U2hpcHBpbmdDb250YWN0U2VsZWN0ZWRFdmVudC5oIGluIEhlYWRlcnMgKi8sCkBAIC0yNzc4NCw2
ICsyNzc5MSw3IEBACiAJCQkJOTNGMTk4RTUwODI0NUU1OTAwMUU5QUJDIC8qIEhUTUxEb2N1bWVu
dC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJOTc3QjM4NjcxMjI4ODNFOTAwQjgxRkY4IC8qIEhUTUxE
b2N1bWVudFBhcnNlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJOTNGMTk4RTYwODI0NUU1OTAwMUU5
QUJDIC8qIEhUTUxFbGVtZW50LmggaW4gSGVhZGVycyAqLywKKwkJCQk1MTdBNTM1ODFGNTg4OUU4
MDBEQ0RDMEEgLyogRmV0Y2hMb2FkZXJDbGllbnQuaCBpbiBIZWFkZXJzICovLAogCQkJCUExN0M4
MTIzMEYyQTVDRjcwMDVEQUFFQiAvKiBIVE1MRWxlbWVudEZhY3RvcnkuaCBpbiBIZWFkZXJzICov
LAogCQkJCTk3N0IzNzI0MTIyODcyMTcwMEI4MUZGOCAvKiBIVE1MRWxlbWVudFN0YWNrLmggaW4g
SGVhZGVycyAqLywKIAkJCQlCNTYyREI2MDE3RDNDRDYzMDAxMEFGOTYgLyogSFRNTEVsZW1lbnRU
eXBlSGVscGVycy5oIGluIEhlYWRlcnMgKi8sCkBAIC0yODkzNSw2ICsyODk0Myw3IEBACiAJCQkJ
RkE2NTRBNkMxMTA4QUJFRDAwMjYyNkYxIC8qIE1hdGhNTFVuZGVyT3ZlckVsZW1lbnQuaCBpbiBI
ZWFkZXJzICovLAogCQkJCTM3QzczOEVGMUVEQkQ3MUIwMDNGMkIwQiAvKiBNYXRoTUxVbmtub3du
RWxlbWVudC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNDM5MDQ2RUExMkRBMjVFODEyQUY4MEFDIC8q
IE1hdGhPcGVyYXRvci5oIGluIEhlYWRlcnMgKi8sCisJCQkJNTE3QTUzNUIxRjU4OEE0QzAwRENE
QzBBIC8qIEZldGNoQm9keUNvbnN1bWVyLmggaW4gSGVhZGVycyAqLywKIAkJCQk0OUQ1REMyQzBG
NDIzQTczMDA4RjIwRkQgLyogTWF0cml4M0RUcmFuc2Zvcm1PcGVyYXRpb24uaCBpbiBIZWFkZXJz
ICovLAogCQkJCTQ5RTkxMUM3MEVGODZENDcwMDlEMENBRiAvKiBNYXRyaXhUcmFuc2Zvcm1PcGVy
YXRpb24uaCBpbiBIZWFkZXJzICovLAogCQkJCTVDQkM4REFEMUFBQTMwMjIwMEUxQzgwMyAvKiBN
ZWRpYUFjY2Vzc2liaWxpdHlTb2Z0TGluay5oIGluIEhlYWRlcnMgKi8sCkBAIC0yOTA5Nyw2ICsy
OTEwNiw3IEBACiAJCQkJNjU2RDM3NDMwQURCQTVERTAwQTQ1NTREIC8qIE5ldHNjYXBlUGx1Z0lu
U3RyZWFtTG9hZGVyLmggaW4gSGVhZGVycyAqLywKIAkJCQlBMTlEOTM0QjFBQTExQjFFMDBCNDZD
MjQgLyogTmV0d29ya0V4dGVuc2lvbkNvbnRlbnRGaWx0ZXIuaCBpbiBIZWFkZXJzICovLAogCQkJ
CTYyOEQyMTRDMTIxMzFFRDEwMDU1RENGQyAvKiBOZXR3b3JraW5nQ29udGV4dC5oIGluIEhlYWRl
cnMgKi8sCisJCQkJNTE3QTUzNUQxRjU4OTlGRTAwRENEQzBBIC8qIFNlcnZpY2VXb3JrZXJGZXRj
aFJlc3VsdC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJOEE4MUJGODUxMURDRkQ5MDAwREEyQjk4IC8q
IE5ldHdvcmtMb2FkTWV0cmljcy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNTlDMjdGMDcxMzhEMjhD
RjAwNzlCN0UyIC8qIE5ldHdvcmtSZXNvdXJjZXNEYXRhLmggaW4gSGVhZGVycyAqLywKIAkJCQkx
QTdGQTYxOTBEREEzQjNBMDAyOEY4QTUgLyogTmV0d29ya1N0YXRlTm90aWZpZXIuaCBpbiBIZWFk
ZXJzICovLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL1NlcnZp
Y2VXb3JrZXJDb250YWluZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL1Nl
cnZpY2VXb3JrZXJDb250YWluZXIuY3BwCmluZGV4IDc5YTk3NjBjYjk1Li5hZjRhYTRkODFmYSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL1NlcnZpY2VXb3JrZXJD
b250YWluZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9TZXJ2aWNl
V29ya2VyQ29udGFpbmVyLmNwcApAQCAtMzIsNyArMzIsOSBAQAogI2luY2x1ZGUgIklETFR5cGVz
LmgiCiAjaW5jbHVkZSAiSlNET01Qcm9taXNlRGVmZXJyZWQuaCIKICNpbmNsdWRlICJKU1NlcnZp
Y2VXb3JrZXJSZWdpc3RyYXRpb24uaCIKKyNpbmNsdWRlICJMb2dnaW5nLmgiCiAjaW5jbHVkZSAi
TmF2aWdhdG9yQmFzZS5oIgorI2luY2x1ZGUgIlJlc291cmNlRXJyb3IuaCIKICNpbmNsdWRlICJT
Y29wZUd1YXJkLmgiCiAjaW5jbHVkZSAiU2NyaXB0RXhlY3V0aW9uQ29udGV4dC5oIgogI2luY2x1
ZGUgIlNlY3VyaXR5T3JpZ2luLmgiCkBAIC0xODEsNiArMTgzLDM1IEBAIHZvaWQgU2VydmljZVdv
cmtlckNvbnRhaW5lcjo6am9iUmVzb2x2ZWRXaXRoUmVnaXN0cmF0aW9uKFNlcnZpY2VXb3JrZXJK
b2ImIGpvYiwKICAgICBqb2IucHJvbWlzZSgpLnJlc29sdmU8SURMSW50ZXJmYWNlPFNlcnZpY2VX
b3JrZXJSZWdpc3RyYXRpb24+PihyZWdpc3RyYXRpb24uZ2V0KCkpOwogfQogCit2b2lkIFNlcnZp
Y2VXb3JrZXJDb250YWluZXI6OnN0YXJ0U2NyaXB0RmV0Y2hGb3JKb2IoU2VydmljZVdvcmtlckpv
YiYgam9iKQoreworICAgIExPRyhTZXJ2aWNlV29ya2VyLCAiU2V2aWNlV29ya2VyQ29udGFpbmVy
ICVwIHN0YXJ0aW5nIHNjcmlwdCBmZXRjaCBmb3Igam9iICUiIFBSSXU2NCwgdGhpcywgam9iLmRh
dGEoKS5pZGVudGlmaWVyKCkpOworCisgICAgYXV0byogY29udGV4dCA9IHNjcmlwdEV4ZWN1dGlv
bkNvbnRleHQoKTsKKyAgICBpZiAoIWNvbnRleHQpIHsKKyAgICAgICAgTE9HX0VSUk9SKCJTZXJ2
aWNlV29ya2VyQ29udGFpbmVyOjpqb2JSZXNvbHZlZFdpdGhSZWdpc3RyYXRpb24gY2FsbGVkIGJ1
dCB0aGUgY29udGFpbmVycyBTY3JpcHRFeGVjdXRpb25Db250ZXh0IGlzIGdvbmUiKTsKKyAgICAg
ICAgbV9zd0Nvbm5lY3Rpb24tPmZhaWxlZEZldGNoaW5nU2NyaXB0KGpvYiwgeyBlcnJvckRvbWFp
bldlYktpdEludGVybmFsLCAwLCBqb2IuZGF0YSgpLnNjcmlwdFVSTCwgQVNDSUlMaXRlcmFsKCJB
dHRlbXB0IHRvIGZldGNoIHNlcnZpY2Ugd29ya2VyIHNjcmlwdCB3aXRoIG5vIHNjcmlwdCBleGVj
dXRpb24gY29udGV4dCIpIH0pOworICAgICAgICBqb2JEaWRGaW5pc2goam9iKTsKKyAgICAgICAg
cmV0dXJuOworICAgIH0KKworICAgIGpvYi5mZXRjaFNjcmlwdFdpdGhDb250ZXh0KCpjb250ZXh0
KTsKK30KKwordm9pZCBTZXJ2aWNlV29ya2VyQ29udGFpbmVyOjpqb2JGaW5pc2hlZExvYWRpbmdT
Y3JpcHQoU2VydmljZVdvcmtlckpvYiYgam9iLCBSZWY8U2hhcmVkQnVmZmVyPiYmIGRhdGEpCit7
CisgICAgTE9HKFNlcnZpY2VXb3JrZXIsICJTZXZpY2VXb3JrZXJDb250YWluZXIgJXAgZmluaXNo
ZWQgZmV0Y2hpbmcgc2NyaXB0IGZvciBqb2IgJSIgUFJJdTY0LCB0aGlzLCBqb2IuZGF0YSgpLmlk
ZW50aWZpZXIoKSk7CisKKyAgICBtX3N3Q29ubmVjdGlvbi0+ZmluaXNoZWRGZXRjaGluZ1Njcmlw
dChqb2IsIGRhdGEuZ2V0KCkpOworfQorCit2b2lkIFNlcnZpY2VXb3JrZXJDb250YWluZXI6Ompv
YkZhaWxlZExvYWRpbmdTY3JpcHQoU2VydmljZVdvcmtlckpvYiYgam9iLCBjb25zdCBSZXNvdXJj
ZUVycm9yJiBlcnJvcikKK3sKKyAgICBMT0coU2VydmljZVdvcmtlciwgIlNldmljZVdvcmtlckNv
bnRhaW5lciAlcCBmYWlsZWQgZmV0Y2hpbmcgc2NyaXB0IGZvciBqb2IgJSIgUFJJdTY0LCB0aGlz
LCBqb2IuZGF0YSgpLmlkZW50aWZpZXIoKSk7CisKKyAgICBtX3N3Q29ubmVjdGlvbi0+ZmFpbGVk
RmV0Y2hpbmdTY3JpcHQoam9iLCBlcnJvcik7Cit9CisKIHZvaWQgU2VydmljZVdvcmtlckNvbnRh
aW5lcjo6am9iRGlkRmluaXNoKFNlcnZpY2VXb3JrZXJKb2ImIGpvYikKIHsKICAgICBhdXRvIHRh
a2VuID0gbV9qb2JNYXAudGFrZShqb2IuZGF0YSgpLmlkZW50aWZpZXIoKSk7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvU2VydmljZVdvcmtlckNvbnRhaW5lci5o
IGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL1NlcnZpY2VXb3JrZXJDb250YWluZXIu
aAppbmRleCBlY2RmZDE0NDc3NS4uZTY0NmI0Y2JmOWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3dvcmtlcnMvc2VydmljZS9TZXJ2aWNlV29ya2VyQ29udGFpbmVyLmgKKysrIGIvU291cmNl
L1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL1NlcnZpY2VXb3JrZXJDb250YWluZXIuaApAQCAtNzMs
NiArNzMsMTAgQEAgcHJpdmF0ZToKIAogICAgIHZvaWQgam9iRmFpbGVkV2l0aEV4Y2VwdGlvbihT
ZXJ2aWNlV29ya2VySm9iJiwgY29uc3QgRXhjZXB0aW9uJikgZmluYWw7CiAgICAgdm9pZCBqb2JS
ZXNvbHZlZFdpdGhSZWdpc3RyYXRpb24oU2VydmljZVdvcmtlckpvYiYsIGNvbnN0IFNlcnZpY2VX
b3JrZXJSZWdpc3RyYXRpb25EYXRhJikgZmluYWw7CisgICAgdm9pZCBzdGFydFNjcmlwdEZldGNo
Rm9ySm9iKFNlcnZpY2VXb3JrZXJKb2ImKSBmaW5hbDsKKyAgICB2b2lkIGpvYkZpbmlzaGVkTG9h
ZGluZ1NjcmlwdChTZXJ2aWNlV29ya2VySm9iJiwgUmVmPFNoYXJlZEJ1ZmZlcj4mJikgZmluYWw7
CisgICAgdm9pZCBqb2JGYWlsZWRMb2FkaW5nU2NyaXB0KFNlcnZpY2VXb3JrZXJKb2ImLCBjb25z
dCBSZXNvdXJjZUVycm9yJikgZmluYWw7CisKICAgICB2b2lkIGpvYkRpZEZpbmlzaChTZXJ2aWNl
V29ya2VySm9iJik7CiAKICAgICB1aW50NjRfdCBjb25uZWN0aW9uSWRlbnRpZmllcigpIGZpbmFs
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL1NlcnZpY2VXb3Jr
ZXJGZXRjaFJlc3VsdC5oIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL1NlcnZpY2VX
b3JrZXJGZXRjaFJlc3VsdC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
Li4yYTkzYTQ3ZjA0NAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMv
c2VydmljZS9TZXJ2aWNlV29ya2VyRmV0Y2hSZXN1bHQuaApAQCAtMCwwICsxLDcyIEBACisvKgor
ICogQ29weXJpZ2h0IChDKSAyMDE3IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAq
CisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3
aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0
aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJp
YnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Cisg
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXBy
b2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1l
bnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1
dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5E
IElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElF
RCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBM
SUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJ
Q1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExF
IElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJ
TkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVO
VElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQg
T0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBP
UiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBB
TkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBT
VFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJ
U0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FS
RSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0Uu
CisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNpZiBFTkFCTEUoU0VSVklDRV9XT1JLRVIpCisKKyNp
bmNsdWRlICJSZXNvdXJjZUVycm9yLmgiCisjaW5jbHVkZSAiU2VydmljZVdvcmtlclJlZ2lzdHJh
dGlvbktleS5oIgorI2luY2x1ZGUgPHd0Zi9WZWN0b3IuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUg
eworCitzdHJ1Y3QgU2VydmljZVdvcmtlckZldGNoUmVzdWx0IHsKKyAgICB1aW50NjRfdCBqb2JJ
ZGVudGlmaWVyOworICAgIHVpbnQ2NF90IGNvbm5lY3Rpb25JZGVudGlmaWVyOworICAgIFNlcnZp
Y2VXb3JrZXJSZWdpc3RyYXRpb25LZXkgcmVnaXN0cmF0aW9uS2V5OworICAgIFZlY3Rvcjx1aW50
OF90PiBzY3JpcHREYXRhOworICAgIFJlc291cmNlRXJyb3Igc2NyaXB0RXJyb3I7CisKKyAgICB0
ZW1wbGF0ZTxjbGFzcyBFbmNvZGVyPiB2b2lkIGVuY29kZShFbmNvZGVyJikgY29uc3Q7CisgICAg
dGVtcGxhdGU8Y2xhc3MgRGVjb2Rlcj4gc3RhdGljIGJvb2wgZGVjb2RlKERlY29kZXImLCBTZXJ2
aWNlV29ya2VyRmV0Y2hSZXN1bHQmKTsKK307CisKK3RlbXBsYXRlPGNsYXNzIEVuY29kZXI+Cit2
b2lkIFNlcnZpY2VXb3JrZXJGZXRjaFJlc3VsdDo6ZW5jb2RlKEVuY29kZXImIGVuY29kZXIpIGNv
bnN0Cit7CisgICAgZW5jb2RlciA8PCBqb2JJZGVudGlmaWVyIDw8IGNvbm5lY3Rpb25JZGVudGlm
aWVyIDw8IHJlZ2lzdHJhdGlvbktleSA8PCBzY3JpcHREYXRhIDw8IHNjcmlwdEVycm9yOworfQor
Cit0ZW1wbGF0ZTxjbGFzcyBEZWNvZGVyPgorYm9vbCBTZXJ2aWNlV29ya2VyRmV0Y2hSZXN1bHQ6
OmRlY29kZShEZWNvZGVyJiBkZWNvZGVyLCBTZXJ2aWNlV29ya2VyRmV0Y2hSZXN1bHQmIHJlc3Vs
dCkKK3sKKyAgICBpZiAoIWRlY29kZXIuZGVjb2RlKHJlc3VsdC5qb2JJZGVudGlmaWVyKSkKKyAg
ICAgICAgcmV0dXJuIGZhbHNlOworICAgIGlmICghZGVjb2Rlci5kZWNvZGUocmVzdWx0LmNvbm5l
Y3Rpb25JZGVudGlmaWVyKSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIGlmICghZGVjb2Rl
ci5kZWNvZGUocmVzdWx0LnJlZ2lzdHJhdGlvbktleSkpCisgICAgICAgIHJldHVybiBmYWxzZTsK
KyAgICBpZiAoIWRlY29kZXIuZGVjb2RlKHJlc3VsdC5zY3JpcHREYXRhKSkKKyAgICAgICAgcmV0
dXJuIGZhbHNlOworICAgIGlmICghZGVjb2Rlci5kZWNvZGUocmVzdWx0LnNjcmlwdEVycm9yKSkK
KyAgICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgcmV0dXJuIHRydWU7Cit9CisKK30gLy8gbmFt
ZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmIC8vIEVOQUJMRShTRVJWSUNFX1dPUktFUikKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9TZXJ2aWNlV29ya2VySm9iLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9TZXJ2aWNlV29ya2VySm9iLmNwcApp
bmRleCA0OWZiMDhlYjdkMy4uNTQ2M2UxNDkzOWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3dvcmtlcnMvc2VydmljZS9TZXJ2aWNlV29ya2VySm9iLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS93b3JrZXJzL3NlcnZpY2UvU2VydmljZVdvcmtlckpvYi5jcHAKQEAgLTI4LDcgKzI4LDEyIEBA
CiAKICNpZiBFTkFCTEUoU0VSVklDRV9XT1JLRVIpCiAKKyNpbmNsdWRlICJGZXRjaEhlYWRlcnMu
aCIKKyNpbmNsdWRlICJGZXRjaExvYWRlci5oIgorI2luY2x1ZGUgIkZldGNoUmVxdWVzdC5oIgog
I2luY2x1ZGUgIkpTRE9NUHJvbWlzZURlZmVycmVkLmgiCisjaW5jbHVkZSAiUmVzb3VyY2VFcnJv
ci5oIgorI2luY2x1ZGUgIlJlc291cmNlUmVzcG9uc2UuaCIKICNpbmNsdWRlICJTZXJ2aWNlV29y
a2VySm9iRGF0YS5oIgogI2luY2x1ZGUgIlNlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb24uaCIKIApA
QCAtNjQsNiArNjksODAgQEAgdm9pZCBTZXJ2aWNlV29ya2VySm9iOjpyZXNvbHZlZFdpdGhSZWdp
c3RyYXRpb24oY29uc3QgU2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbkQKICAgICBtX2NsaWVudC0+
am9iUmVzb2x2ZWRXaXRoUmVnaXN0cmF0aW9uKCp0aGlzLCBkYXRhKTsKIH0KIAordm9pZCBTZXJ2
aWNlV29ya2VySm9iOjpzdGFydFNjcmlwdEZldGNoKCkKK3sKKyAgICBBU1NFUlQoY3VycmVudFRo
cmVhZCgpID09IG1fY3JlYXRpb25UaHJlYWQpOworICAgIEFTU0VSVCghbV9jb21wbGV0ZWQpOwor
CisgICAgbV9jbGllbnQtPnN0YXJ0U2NyaXB0RmV0Y2hGb3JKb2IoKnRoaXMpOworfQorCit2b2lk
IFNlcnZpY2VXb3JrZXJKb2I6OmZldGNoU2NyaXB0V2l0aENvbnRleHQoU2NyaXB0RXhlY3V0aW9u
Q29udGV4dCYgY29udGV4dCkKK3sKKyAgICBBU1NFUlQoY3VycmVudFRocmVhZCgpID09IG1fY3Jl
YXRpb25UaHJlYWQpOworICAgIEFTU0VSVCghbV9jb21wbGV0ZWQpOworCisgICAgbV9mZXRjaExv
YWRlciA9IHN0ZDo6bWFrZV91bmlxdWU8RmV0Y2hMb2FkZXI+KCp0aGlzLCBudWxscHRyKTsKKwor
ICAgIC8vIEZJWE1FOiBUaGlzIEZldGNoIHJlcXVlc3QgaXMgc2V0IHVwIGluY29ycmVjdGx5IGFu
ZCB3aXRob3V0IHByb3BlciBjYXJlLgorICAgIC8vIFRoZSBTZXJ2aWNlV29ya2VycyBzcGVjIHNw
ZWNpZmljcyBtYW55IGRldGFpbHMgdG8gYXBwbHkgaGVyZS4KKworICAgIGF1dG8gZmV0Y2hIZWFk
ZXJzID0gRmV0Y2hIZWFkZXJzOjpjcmVhdGUoKTsKKyAgICBhdXRvIGludGVybmFsUmVxdWVzdCA9
IEZldGNoUmVxdWVzdDo6SW50ZXJuYWxSZXF1ZXN0IHsgeyBtX2pvYkRhdGEuc2NyaXB0VVJMIH0s
IHsgfSwgbV9qb2JEYXRhLmNsaWVudENyZWF0aW9uVVJMLnN0cmluZygpIH07CisgICAgYXV0byBm
ZXRjaFJlcXVlc3QgPSBGZXRjaFJlcXVlc3Q6OmNyZWF0ZShjb250ZXh0LCBzdGQ6Om51bGxvcHQs
IFdURk1vdmUoZmV0Y2hIZWFkZXJzKSwgV1RGTW92ZShpbnRlcm5hbFJlcXVlc3QpKTsKKworICAg
IG1fZmV0Y2hMb2FkZXItPnN0YXJ0KGNvbnRleHQsIGZldGNoUmVxdWVzdCk7Cit9CisKK3ZvaWQg
U2VydmljZVdvcmtlckpvYjo6ZGlkUmVjZWl2ZVJlc3BvbnNlKGNvbnN0IFJlc291cmNlUmVzcG9u
c2UmIHJlc3BvbnNlKQoreworICAgIEFTU0VSVChjdXJyZW50VGhyZWFkKCkgPT0gbV9jcmVhdGlv
blRocmVhZCk7CisgICAgQVNTRVJUKCFtX2NvbXBsZXRlZCk7CisgICAgQVNTRVJUKG1fZmV0Y2hM
b2FkZXIpOworICAgIEFTU0VSVCghbV9zY3JpcHREYXRhKTsKKworICAgIG1fbGFzdFJlc3BvbnNl
ID0gcmVzcG9uc2U7CisKKyAgICBpZiAocmVzcG9uc2UuaHR0cFN0YXR1c0NvZGUoKSA8IDIwMCB8
fCByZXNwb25zZS5odHRwU3RhdHVzQ29kZSgpID4gMzk5KSB7CisgICAgICAgIGF1dG8gbWVzc2Fn
ZSA9IG1ha2VTdHJpbmcoQVNDSUlMaXRlcmFsKCJTZXJ2aWNlV29ya2VyIHNjcmlwdCBuZXR3b3Jr
IGZldGNoIGZhaWxlZCB3aXRoIEhUVFAgc3RhdHVzIGNvZGUgIiksIFN0cmluZzo6bnVtYmVyKHJl
c3BvbnNlLmh0dHBTdGF0dXNDb2RlKCkpKTsKKyAgICAgICAgZGlkRmFpbCh7IGVycm9yRG9tYWlu
V2ViS2l0SW50ZXJuYWwsIDAsIG1fbGFzdFJlc3BvbnNlLnVybCgpLCBtZXNzYWdlIH0pOworICAg
IH0KK30KKwordm9pZCBTZXJ2aWNlV29ya2VySm9iOjpkaWRSZWNlaXZlRGF0YShjb25zdCBjaGFy
KiBkYXRhLCBzaXplX3Qgc2l6ZSkKK3sKKyAgICBBU1NFUlQoY3VycmVudFRocmVhZCgpID09IG1f
Y3JlYXRpb25UaHJlYWQpOworICAgIEFTU0VSVCghbV9jb21wbGV0ZWQpOworICAgIEFTU0VSVCht
X2ZldGNoTG9hZGVyKTsKKworICAgIGlmICghbV9zY3JpcHREYXRhKQorICAgICAgICBtX3Njcmlw
dERhdGEgPSBTaGFyZWRCdWZmZXI6OmNyZWF0ZSgpOworCisgICAgbV9zY3JpcHREYXRhLT5nZXQo
KS5hcHBlbmQoZGF0YSwgc2l6ZSk7Cit9CisKK3ZvaWQgU2VydmljZVdvcmtlckpvYjo6ZGlkU3Vj
Y2VlZCgpCit7CisgICAgQVNTRVJUKGN1cnJlbnRUaHJlYWQoKSA9PSBtX2NyZWF0aW9uVGhyZWFk
KTsKKyAgICBBU1NFUlQoIW1fY29tcGxldGVkKTsKKyAgICBBU1NFUlQobV9mZXRjaExvYWRlcik7
CisKKyAgICBpZiAoIW1fc2NyaXB0RGF0YSkKKyAgICAgICAgbV9zY3JpcHREYXRhID0gU2hhcmVk
QnVmZmVyOjpjcmVhdGUoKTsKKyAgICBtX2NsaWVudC0+am9iRmluaXNoZWRMb2FkaW5nU2NyaXB0
KCp0aGlzLCBXVEZNb3ZlKCptX3NjcmlwdERhdGEpKTsKKyAgICBtX2ZldGNoTG9hZGVyID0gbnVs
bHB0cjsKK30KKwordm9pZCBTZXJ2aWNlV29ya2VySm9iOjpkaWRGYWlsKGNvbnN0IFJlc291cmNl
RXJyb3ImIGVycm9yKQoreworICAgIEFTU0VSVChjdXJyZW50VGhyZWFkKCkgPT0gbV9jcmVhdGlv
blRocmVhZCk7CisgICAgQVNTRVJUKCFtX2NvbXBsZXRlZCk7CisgICAgQVNTRVJUKG1fZmV0Y2hM
b2FkZXIpOworCisgICAgbV9jbGllbnQtPmpvYkZhaWxlZExvYWRpbmdTY3JpcHQoKnRoaXMsIGVy
cm9yKTsKKyAgICBtX2ZldGNoTG9hZGVyID0gbnVsbHB0cjsKK30KKwogfSAvLyBuYW1lc3BhY2Ug
V2ViQ29yZQogCiAjZW5kaWYgLy8gRU5BQkxFKFNFUlZJQ0VfV09SS0VSKQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL1NlcnZpY2VXb3JrZXJKb2IuaCBiL1NvdXJj
ZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9TZXJ2aWNlV29ya2VySm9iLmgKaW5kZXggZDk3YWMx
YTQzMzUuLjcxZjY3Nzk4ZTM1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3Nl
cnZpY2UvU2VydmljZVdvcmtlckpvYi5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2Vy
dmljZS9TZXJ2aWNlV29ya2VySm9iLmgKQEAgLTI3LDYgKzI3LDkgQEAKIAogI2lmIEVOQUJMRShT
RVJWSUNFX1dPUktFUikKIAorI2luY2x1ZGUgIkZldGNoTG9hZGVyLmgiCisjaW5jbHVkZSAiRmV0
Y2hMb2FkZXJDbGllbnQuaCIKKyNpbmNsdWRlICJSZXNvdXJjZVJlc3BvbnNlLmgiCiAjaW5jbHVk
ZSAiU2VydmljZVdvcmtlckpvYkNsaWVudC5oIgogI2luY2x1ZGUgIlNlcnZpY2VXb3JrZXJKb2JE
YXRhLmgiCiAjaW5jbHVkZSA8d3RmL1JlZlB0ci5oPgpAQCAtMzgsMTAgKzQxLDExIEBAIG5hbWVz
cGFjZSBXZWJDb3JlIHsKIAogY2xhc3MgRGVmZXJyZWRQcm9taXNlOwogY2xhc3MgRXhjZXB0aW9u
OworY2xhc3MgU2NyaXB0RXhlY3V0aW9uQ29udGV4dDsKIGVudW0gY2xhc3MgU2VydmljZVdvcmtl
ckpvYlR5cGU7CiBzdHJ1Y3QgU2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbkRhdGE7CiAKLWNsYXNz
IFNlcnZpY2VXb3JrZXJKb2IgOiBwdWJsaWMgVGhyZWFkU2FmZVJlZkNvdW50ZWQ8U2VydmljZVdv
cmtlckpvYj4geworY2xhc3MgU2VydmljZVdvcmtlckpvYiA6IHB1YmxpYyBUaHJlYWRTYWZlUmVm
Q291bnRlZDxTZXJ2aWNlV29ya2VySm9iPiwgcHVibGljIEZldGNoTG9hZGVyQ2xpZW50IHsKIHB1
YmxpYzoKICAgICBzdGF0aWMgUmVmPFNlcnZpY2VXb3JrZXJKb2I+IGNyZWF0ZShTZXJ2aWNlV29y
a2VySm9iQ2xpZW50JiBjbGllbnQsIFJlZjxEZWZlcnJlZFByb21pc2U+JiYgcHJvbWlzZSwgU2Vy
dmljZVdvcmtlckpvYkRhdGEmJiBqb2JEYXRhKQogICAgIHsKQEAgLTUyLDEzICs1NiwyMiBAQCBw
dWJsaWM6CiAKICAgICB2b2lkIGZhaWxlZFdpdGhFeGNlcHRpb24oY29uc3QgRXhjZXB0aW9uJik7
CiAgICAgdm9pZCByZXNvbHZlZFdpdGhSZWdpc3RyYXRpb24oY29uc3QgU2VydmljZVdvcmtlclJl
Z2lzdHJhdGlvbkRhdGEmKTsKKyAgICB2b2lkIHN0YXJ0U2NyaXB0RmV0Y2goKTsKIAogICAgIFNl
cnZpY2VXb3JrZXJKb2JEYXRhIGRhdGEoKSBjb25zdCB7IHJldHVybiBtX2pvYkRhdGE7IH0KICAg
ICBEZWZlcnJlZFByb21pc2UmIHByb21pc2UoKSB7IHJldHVybiBtX3Byb21pc2UuZ2V0KCk7IH0K
IAorICAgIHZvaWQgZmV0Y2hTY3JpcHRXaXRoQ29udGV4dChTY3JpcHRFeGVjdXRpb25Db250ZXh0
Jik7CisKIHByaXZhdGU6CiAgICAgU2VydmljZVdvcmtlckpvYihTZXJ2aWNlV29ya2VySm9iQ2xp
ZW50JiwgUmVmPERlZmVycmVkUHJvbWlzZT4mJiwgU2VydmljZVdvcmtlckpvYkRhdGEmJik7CiAK
KyAgICAvLyBGZXRjaExvYWRlckNsaWVudAorICAgIHZvaWQgZGlkUmVjZWl2ZVJlc3BvbnNlKGNv
bnN0IFJlc291cmNlUmVzcG9uc2UmKSBmaW5hbDsKKyAgICB2b2lkIGRpZFJlY2VpdmVEYXRhKGNv
bnN0IGNoYXIqLCBzaXplX3QpIGZpbmFsOworICAgIHZvaWQgZGlkU3VjY2VlZCgpIGZpbmFsOwor
ICAgIHZvaWQgZGlkRmFpbChjb25zdCBSZXNvdXJjZUVycm9yJikgZmluYWw7CisKICAgICBSZWY8
U2VydmljZVdvcmtlckpvYkNsaWVudD4gbV9jbGllbnQ7CiAgICAgU2VydmljZVdvcmtlckpvYkRh
dGEgbV9qb2JEYXRhOwogICAgIFJlZjxEZWZlcnJlZFByb21pc2U+IG1fcHJvbWlzZTsKQEAgLTY2
LDYgKzc5LDkgQEAgcHJpdmF0ZToKICAgICBib29sIG1fY29tcGxldGVkIHsgZmFsc2UgfTsKIAog
ICAgIFJlZjxSdW5Mb29wPiBtX3J1bkxvb3AgeyBSdW5Mb29wOjpjdXJyZW50KCkgfTsKKyAgICBz
dGQ6OnVuaXF1ZV9wdHI8RmV0Y2hMb2FkZXI+IG1fZmV0Y2hMb2FkZXI7CisgICAgUmVzb3VyY2VS
ZXNwb25zZSBtX2xhc3RSZXNwb25zZTsKKyAgICBzdGQ6Om9wdGlvbmFsPFJlZjxTaGFyZWRCdWZm
ZXI+PiBtX3NjcmlwdERhdGE7CiAKICNpZiAhQVNTRVJUX0RJU0FCTEVECiAgICAgVGhyZWFkSWRl
bnRpZmllciBtX2NyZWF0aW9uVGhyZWFkIHsgY3VycmVudFRocmVhZCgpIH07CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvU2VydmljZVdvcmtlckpvYkNsaWVudC5o
IGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL1NlcnZpY2VXb3JrZXJKb2JDbGllbnQu
aAppbmRleCA2MjgwZjBjYWFkNy4uOGU1YjQ0ZTc2NTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3dvcmtlcnMvc2VydmljZS9TZXJ2aWNlV29ya2VySm9iQ2xpZW50LmgKKysrIGIvU291cmNl
L1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL1NlcnZpY2VXb3JrZXJKb2JDbGllbnQuaApAQCAtMzAs
NyArMzAsOSBAQAogbmFtZXNwYWNlIFdlYkNvcmUgewogCiBjbGFzcyBFeGNlcHRpb247CitjbGFz
cyBSZXNvdXJjZUVycm9yOwogY2xhc3MgU2VydmljZVdvcmtlckpvYjsKK2NsYXNzIFNoYXJlZEJ1
ZmZlcjsKIHN0cnVjdCBTZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uRGF0YTsKIAogY2xhc3MgU2Vy
dmljZVdvcmtlckpvYkNsaWVudCB7CkBAIC0zOSw2ICs0MSw5IEBAIHB1YmxpYzoKIAogICAgIHZp
cnR1YWwgdm9pZCBqb2JGYWlsZWRXaXRoRXhjZXB0aW9uKFNlcnZpY2VXb3JrZXJKb2ImLCBjb25z
dCBFeGNlcHRpb24mKSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIGpvYlJlc29sdmVkV2l0aFJlZ2lz
dHJhdGlvbihTZXJ2aWNlV29ya2VySm9iJiwgY29uc3QgU2VydmljZVdvcmtlclJlZ2lzdHJhdGlv
bkRhdGEmKSA9IDA7CisgICAgdmlydHVhbCB2b2lkIHN0YXJ0U2NyaXB0RmV0Y2hGb3JKb2IoU2Vy
dmljZVdvcmtlckpvYiYpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgam9iRmluaXNoZWRMb2FkaW5n
U2NyaXB0KFNlcnZpY2VXb3JrZXJKb2ImLCBSZWY8U2hhcmVkQnVmZmVyPiYmKSA9IDA7CisgICAg
dmlydHVhbCB2b2lkIGpvYkZhaWxlZExvYWRpbmdTY3JpcHQoU2VydmljZVdvcmtlckpvYiYsIGNv
bnN0IFJlc291cmNlRXJyb3ImKSA9IDA7CiAKICAgICB2aXJ0dWFsIHVpbnQ2NF90IGNvbm5lY3Rp
b25JZGVudGlmaWVyKCkgPSAwOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJz
L3NlcnZpY2Uvc2VydmVyL1NXQ2xpZW50Q29ubmVjdGlvbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS93
b3JrZXJzL3NlcnZpY2Uvc2VydmVyL1NXQ2xpZW50Q29ubmVjdGlvbi5jcHAKaW5kZXggNDcwMmJi
YjcyODEuLjhkOTQ0NzdkOTkyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3Nl
cnZpY2Uvc2VydmVyL1NXQ2xpZW50Q29ubmVjdGlvbi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
d29ya2Vycy9zZXJ2aWNlL3NlcnZlci9TV0NsaWVudENvbm5lY3Rpb24uY3BwCkBAIC0yOSw2ICsy
OSw3IEBACiAjaWYgRU5BQkxFKFNFUlZJQ0VfV09SS0VSKQogCiAjaW5jbHVkZSAiRXhjZXB0aW9u
RGF0YS5oIgorI2luY2x1ZGUgIlNlcnZpY2VXb3JrZXJGZXRjaFJlc3VsdC5oIgogI2luY2x1ZGUg
IlNlcnZpY2VXb3JrZXJKb2JEYXRhLmgiCiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKQEAgLTQ5LDYg
KzUwLDIyIEBAIHZvaWQgU1dDbGllbnRDb25uZWN0aW9uOjpzY2hlZHVsZUpvYihTZXJ2aWNlV29y
a2VySm9iJiBqb2IpCiAgICAgc2NoZWR1bGVKb2JJblNlcnZlcihqb2IuZGF0YSgpKTsKIH0KIAor
dm9pZCBTV0NsaWVudENvbm5lY3Rpb246OmZpbmlzaGVkRmV0Y2hpbmdTY3JpcHQoU2VydmljZVdv
cmtlckpvYiYgam9iLCBTaGFyZWRCdWZmZXImIGRhdGEpCit7CisgICAgQVNTRVJUKG1fc2NoZWR1
bGVkSm9icy5nZXQoam9iLmRhdGEoKS5pZGVudGlmaWVyKCkpID09ICZqb2IpOworCisgICAgVmVj
dG9yPHVpbnQ4X3Q+IHZlY3RvcjsKKyAgICB2ZWN0b3IuYXBwZW5kKHJlaW50ZXJwcmV0X2Nhc3Q8
Y29uc3QgdWludDhfdCAqPihkYXRhLmRhdGEoKSksIGRhdGEuc2l6ZSgpKTsKKyAgICBmaW5pc2hG
ZXRjaGluZ1NjcmlwdEluU2VydmVyKHsgam9iLmRhdGEoKS5pZGVudGlmaWVyKCksIGpvYi5kYXRh
KCkuY29ubmVjdGlvbklkZW50aWZpZXIoKSwgam9iLmRhdGEoKS5yZWdpc3RyYXRpb25LZXkoKSwg
dmVjdG9yLCB7IH0gfSk7Cit9CisKK3ZvaWQgU1dDbGllbnRDb25uZWN0aW9uOjpmYWlsZWRGZXRj
aGluZ1NjcmlwdChTZXJ2aWNlV29ya2VySm9iJiBqb2IsIGNvbnN0IFJlc291cmNlRXJyb3ImIGVy
cm9yKQoreworICAgIEFTU0VSVChtX3NjaGVkdWxlZEpvYnMuZ2V0KGpvYi5kYXRhKCkuaWRlbnRp
ZmllcigpKSA9PSAmam9iKTsKKworICAgIGZpbmlzaEZldGNoaW5nU2NyaXB0SW5TZXJ2ZXIoeyBq
b2IuZGF0YSgpLmlkZW50aWZpZXIoKSwgam9iLmRhdGEoKS5jb25uZWN0aW9uSWRlbnRpZmllcigp
LCBqb2IuZGF0YSgpLnJlZ2lzdHJhdGlvbktleSgpLCB7IH0sIGVycm9yIH0pOworfQorCiB2b2lk
IFNXQ2xpZW50Q29ubmVjdGlvbjo6am9iUmVqZWN0ZWRJblNlcnZlcih1aW50NjRfdCBqb2JJZGVu
dGlmaWVyLCBjb25zdCBFeGNlcHRpb25EYXRhJiBleGNlcHRpb25EYXRhKQogewogICAgIGF1dG8g
am9iID0gbV9zY2hlZHVsZWRKb2JzLnRha2Uoam9iSWRlbnRpZmllcik7CkBAIC03MSw2ICs4OCwy
MiBAQCB2b2lkIFNXQ2xpZW50Q29ubmVjdGlvbjo6am9iUmVzb2x2ZWRJblNlcnZlcih1aW50NjRf
dCBqb2JJZGVudGlmaWVyLCBjb25zdCBTZXJ2aQogICAgIGpvYi0+cmVzb2x2ZWRXaXRoUmVnaXN0
cmF0aW9uKHJlZ2lzdHJhdGlvbkRhdGEpOwogfQogCit2b2lkIFNXQ2xpZW50Q29ubmVjdGlvbjo6
c3RhcnRTY3JpcHRGZXRjaEZvclNlcnZlcih1aW50NjRfdCBqb2JJZGVudGlmaWVyKQoreworICAg
IGF1dG8gam9iID0gbV9zY2hlZHVsZWRKb2JzLmdldChqb2JJZGVudGlmaWVyKTsKKyAgICBpZiAo
IWpvYikgeworICAgICAgICBMT0dfRVJST1IoIkpvYiAlIiBQUkl1NjQgIiBpbnN0cnVjdGVkIHRv
IHN0YXJ0IGZldGNoIGZyb20gc2VydmVyLCBidXQgam9iIHdhcyBub3QgZm91bmQiLCBqb2JJZGVu
dGlmaWVyKTsKKworICAgICAgICAvLyBGSVhNRTogU2hvdWxkIG1lc3NhZ2UgYmFjayB0byB0aGUg
c2VydmVyIGhlcmUgdG8gc2lnbmFsIGZhaWx1cmUgdG8gZmV0Y2gsCisgICAgICAgIC8vIGJ1dCB3
ZSBjdXJyZW50bHkgbmVlZCB0aGUgcmVnaXN0cmF0aW9uIGtleSB0byBkbyBzbywgYW5kIGRvbid0
IGhhdmUgaXQgaGVyZS4KKyAgICAgICAgLy8gSW4gdGhlIGZ1dHVyZSB3ZSdsbCByZWZhY3RvciB0
byBoYXZlIGEgZ2xvYmFsLCBjcm9zcy1wcm9jZXNzIGpvYiBpZGVudGlmaWVyIHRoYXQgY2FuIGJl
IHVzZWQgdG8gb3ZlcmNvbWUgdGhpcy4KKworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAg
am9iLT5zdGFydFNjcmlwdEZldGNoKCk7Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKIAog
I2VuZGlmIC8vIEVOQUJMRShTRVJWSUNFX1dPUktFUikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3dvcmtlcnMvc2VydmljZS9zZXJ2ZXIvU1dDbGllbnRDb25uZWN0aW9uLmggYi9Tb3VyY2Uv
V2ViQ29yZS93b3JrZXJzL3NlcnZpY2Uvc2VydmVyL1NXQ2xpZW50Q29ubmVjdGlvbi5oCmluZGV4
IGI5MWUwNDI4ODJkLi4zYjg1NGViNGNjNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvd29y
a2Vycy9zZXJ2aWNlL3NlcnZlci9TV0NsaWVudENvbm5lY3Rpb24uaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS93b3JrZXJzL3NlcnZpY2Uvc2VydmVyL1NXQ2xpZW50Q29ubmVjdGlvbi5oCkBAIC0zMyw3
ICszMywxMCBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKK2NsYXNzIFJlc291cmNlRXJyb3I7
CitjbGFzcyBTaGFyZWRCdWZmZXI7CiBzdHJ1Y3QgRXhjZXB0aW9uRGF0YTsKK3N0cnVjdCBTZXJ2
aWNlV29ya2VyRmV0Y2hSZXN1bHQ7CiBzdHJ1Y3QgU2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbkRh
dGE7CiAKIGNsYXNzIFNXQ2xpZW50Q29ubmVjdGlvbiA6IHB1YmxpYyBUaHJlYWRTYWZlUmVmQ291
bnRlZDxTV0NsaWVudENvbm5lY3Rpb24+IHsKQEAgLTQyLDE1ICs0NSwxOSBAQCBwdWJsaWM6CiAg
ICAgV0VCQ09SRV9FWFBPUlQgdmlydHVhbCB+U1dDbGllbnRDb25uZWN0aW9uKCk7CiAKICAgICB2
b2lkIHNjaGVkdWxlSm9iKFNlcnZpY2VXb3JrZXJKb2ImKTsKKyAgICB2b2lkIGZpbmlzaGVkRmV0
Y2hpbmdTY3JpcHQoU2VydmljZVdvcmtlckpvYiYsIFNoYXJlZEJ1ZmZlciYpOworICAgIHZvaWQg
ZmFpbGVkRmV0Y2hpbmdTY3JpcHQoU2VydmljZVdvcmtlckpvYiYsIGNvbnN0IFJlc291cmNlRXJy
b3ImKTsKIAogICAgIHZpcnR1YWwgdWludDY0X3QgaWRlbnRpZmllcigpIGNvbnN0ID0gMDsKIAog
cHJvdGVjdGVkOgogICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgam9iUmVqZWN0ZWRJblNlcnZlcih1
aW50NjRfdCBqb2JJZGVudGlmaWVyLCBjb25zdCBFeGNlcHRpb25EYXRhJik7CiAgICAgV0VCQ09S
RV9FWFBPUlQgdm9pZCBqb2JSZXNvbHZlZEluU2VydmVyKHVpbnQ2NF90IGpvYklkZW50aWZpZXIs
IGNvbnN0IFNlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb25EYXRhJik7CisgICAgV0VCQ09SRV9FWFBP
UlQgdm9pZCBzdGFydFNjcmlwdEZldGNoRm9yU2VydmVyKHVpbnQ2NF90IGpvYklkZW50aWZpZXIp
OwogCiBwcml2YXRlOgogICAgIHZpcnR1YWwgdm9pZCBzY2hlZHVsZUpvYkluU2VydmVyKGNvbnN0
IFNlcnZpY2VXb3JrZXJKb2JEYXRhJikgPSAwOworICAgIHZpcnR1YWwgdm9pZCBmaW5pc2hGZXRj
aGluZ1NjcmlwdEluU2VydmVyKGNvbnN0IFNlcnZpY2VXb3JrZXJGZXRjaFJlc3VsdCYpID0gMDsK
IAogICAgIEhhc2hNYXA8dWludDY0X3QsIFJlZlB0cjxTZXJ2aWNlV29ya2VySm9iPj4gbV9zY2hl
ZHVsZWRKb2JzOwogfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2Vydmlj
ZS9zZXJ2ZXIvU1dTZXJ2ZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL3Nl
cnZlci9TV1NlcnZlci5jcHAKaW5kZXggNDAxOTM0MGI4YmQuLjZmODFhYjI2OTExIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2Uvc2VydmVyL1NXU2VydmVyLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2Uvc2VydmVyL1NXU2VydmVyLmNwcApA
QCAtMzIsNiArMzIsNyBAQAogI2luY2x1ZGUgIkV4Y2VwdGlvbkRhdGEuaCIKICNpbmNsdWRlICJM
b2dnaW5nLmgiCiAjaW5jbHVkZSAiU1dTZXJ2ZXJSZWdpc3RyYXRpb24uaCIKKyNpbmNsdWRlICJT
ZXJ2aWNlV29ya2VyRmV0Y2hSZXN1bHQuaCIKICNpbmNsdWRlICJTZXJ2aWNlV29ya2VySm9iRGF0
YS5oIgogI2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgogCkBAIC03Miw2ICs3MywxMSBA
QCB2b2lkIFNXU2VydmVyOjpDb25uZWN0aW9uOjpzY2hlZHVsZUpvYkluU2VydmVyKGNvbnN0IFNl
cnZpY2VXb3JrZXJKb2JEYXRhJiBqb2JEYQogICAgIG1fc2VydmVyLnNjaGVkdWxlSm9iKGpvYkRh
dGEpOwogfQogCit2b2lkIFNXU2VydmVyOjpDb25uZWN0aW9uOjpmaW5pc2hGZXRjaGluZ1Njcmlw
dEluU2VydmVyKGNvbnN0IFNlcnZpY2VXb3JrZXJGZXRjaFJlc3VsdCYgcmVzdWx0KQoreworICAg
IG1fc2VydmVyLnNjcmlwdEZldGNoRmluaXNoZWQocmVzdWx0KTsKK30KKwogU1dTZXJ2ZXI6OlNX
U2VydmVyKCkKIHsKICAgICBtX3Rhc2tUaHJlYWQgPSBUaHJlYWQ6OmNyZWF0ZShBU0NJSUxpdGVy
YWwoIlNlcnZpY2VXb3JrZXIgVGFzayBUaHJlYWQiKSwgW3RoaXNdIHsKQEAgLTExMiw2ICsxMTgs
MjkgQEAgdm9pZCBTV1NlcnZlcjo6cmVzb2x2ZUpvYihjb25zdCBTZXJ2aWNlV29ya2VySm9iRGF0
YSYgam9iRGF0YSwgY29uc3QgU2VydmljZVdvcmsKICAgICBjb25uZWN0aW9uLT5yZXNvbHZlSm9i
SW5DbGllbnQoam9iRGF0YS5pZGVudGlmaWVyKCksIHJlZ2lzdHJhdGlvbkRhdGEpOwogfQogCit2
b2lkIFNXU2VydmVyOjpzdGFydFNjcmlwdEZldGNoKGNvbnN0IFNlcnZpY2VXb3JrZXJKb2JEYXRh
JiBqb2JEYXRhKQoreworICAgIExPRyhTZXJ2aWNlV29ya2VyLCAiU2VydmVyIGlzc3Vpbmcgc3Rh
cnRTY3JpcHRGZXRjaCBmb3IgY3VycmVudCBqb2IgJSIgUFJJdTY0ICItJSIgUFJJdTY0ICIgaW4g
Y2xpZW50Iiwgam9iRGF0YS5jb25uZWN0aW9uSWRlbnRpZmllcigpLCBqb2JEYXRhLmlkZW50aWZp
ZXIoKSk7CisgICAgYXV0byogY29ubmVjdGlvbiA9IG1fY29ubmVjdGlvbnMuZ2V0KGpvYkRhdGEu
Y29ubmVjdGlvbklkZW50aWZpZXIoKSk7CisgICAgaWYgKCFjb25uZWN0aW9uKQorICAgICAgICBy
ZXR1cm47CisKKyAgICBjb25uZWN0aW9uLT5zdGFydFNjcmlwdEZldGNoSW5DbGllbnQoam9iRGF0
YS5pZGVudGlmaWVyKCkpOworfQorCit2b2lkIFNXU2VydmVyOjpzY3JpcHRGZXRjaEZpbmlzaGVk
KGNvbnN0IFNlcnZpY2VXb3JrZXJGZXRjaFJlc3VsdCYgcmVzdWx0KQoreworICAgIExPRyhTZXJ2
aWNlV29ya2VyLCAiU2VydmVyIGhhbmRsaW5nIHNjcmlwdEZldGNoRmluaXNoZWQgZm9yIGN1cnJl
bnQgam9iICUiIFBSSXU2NCAiLSUiIFBSSXU2NCAiIGluIGNsaWVudCIsIHJlc3VsdC5jb25uZWN0
aW9uSWRlbnRpZmllciwgcmVzdWx0LmpvYklkZW50aWZpZXIpOworCisgICAgQVNTRVJUKG1fY29u
bmVjdGlvbnMuY29udGFpbnMocmVzdWx0LmNvbm5lY3Rpb25JZGVudGlmaWVyKSk7CisKKyAgICBh
dXRvIHJlZ2lzdHJhdGlvbiA9IG1fcmVnaXN0cmF0aW9ucy5nZXQocmVzdWx0LnJlZ2lzdHJhdGlv
bktleSk7CisgICAgaWYgKCFyZWdpc3RyYXRpb24pCisgICAgICAgIHJldHVybjsKKworICAgIHJl
Z2lzdHJhdGlvbi0+c2NyaXB0RmV0Y2hGaW5pc2hlZChyZXN1bHQpOworfQorCiB2b2lkIFNXU2Vy
dmVyOjp0YXNrVGhyZWFkRW50cnlQb2ludCgpCiB7CiAgICAgQVNTRVJUKCFpc01haW5UaHJlYWQo
KSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2Uvc2VydmVyL1NX
U2VydmVyLmggYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2Uvc2VydmVyL1NXU2VydmVy
LmgKaW5kZXggOWJkNDBmNzQ2NjYuLmExZmM1ZDMzOTg5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS93b3JrZXJzL3NlcnZpY2Uvc2VydmVyL1NXU2VydmVyLmgKKysrIGIvU291cmNlL1dlYkNv
cmUvd29ya2Vycy9zZXJ2aWNlL3NlcnZlci9TV1NlcnZlci5oCkBAIC00Myw2ICs0Myw3IEBAIG5h
bWVzcGFjZSBXZWJDb3JlIHsKIAogY2xhc3MgU1dTZXJ2ZXJSZWdpc3RyYXRpb247CiBzdHJ1Y3Qg
RXhjZXB0aW9uRGF0YTsKK3N0cnVjdCBTZXJ2aWNlV29ya2VyRmV0Y2hSZXN1bHQ7CiBzdHJ1Y3Qg
U2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbkRhdGE7CiAKIGNsYXNzIFNXU2VydmVyIHsKQEAgLTU3
LDEwICs1OCwxMiBAQCBwdWJsaWM6CiAgICAgICAgIFNXU2VydmVyJiBzZXJ2ZXIoKSB7IHJldHVy
biBtX3NlcnZlcjsgfQogCiAgICAgICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgc2NoZWR1bGVKb2JJ
blNlcnZlcihjb25zdCBTZXJ2aWNlV29ya2VySm9iRGF0YSYpOworICAgICAgICBXRUJDT1JFX0VY
UE9SVCB2b2lkIGZpbmlzaEZldGNoaW5nU2NyaXB0SW5TZXJ2ZXIoY29uc3QgU2VydmljZVdvcmtl
ckZldGNoUmVzdWx0Jik7CiAKICAgICBwcml2YXRlOgogICAgICAgICB2aXJ0dWFsIHZvaWQgcmVq
ZWN0Sm9iSW5DbGllbnQodWludDY0X3Qgam9iSWRlbnRpZmllciwgY29uc3QgRXhjZXB0aW9uRGF0
YSYpID0gMDsKICAgICAgICAgdmlydHVhbCB2b2lkIHJlc29sdmVKb2JJbkNsaWVudCh1aW50NjRf
dCBqb2JJZGVudGlmaWVyLCBjb25zdCBTZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uRGF0YSYpID0g
MDsKKyAgICAgICAgdmlydHVhbCB2b2lkIHN0YXJ0U2NyaXB0RmV0Y2hJbkNsaWVudCh1aW50NjRf
dCBqb2JJZGVudGlmaWVyKSA9IDA7CiAKICAgICAgICAgU1dTZXJ2ZXImIG1fc2VydmVyOwogICAg
IH07CkBAIC03MSw2ICs3NCw4IEBAIHB1YmxpYzoKICAgICB2b2lkIHNjaGVkdWxlSm9iKGNvbnN0
IFNlcnZpY2VXb3JrZXJKb2JEYXRhJik7CiAgICAgdm9pZCByZWplY3RKb2IoY29uc3QgU2Vydmlj
ZVdvcmtlckpvYkRhdGEmLCBjb25zdCBFeGNlcHRpb25EYXRhJik7CiAgICAgdm9pZCByZXNvbHZl
Sm9iKGNvbnN0IFNlcnZpY2VXb3JrZXJKb2JEYXRhJiwgY29uc3QgU2VydmljZVdvcmtlclJlZ2lz
dHJhdGlvbkRhdGEmKTsKKyAgICB2b2lkIHN0YXJ0U2NyaXB0RmV0Y2goY29uc3QgU2VydmljZVdv
cmtlckpvYkRhdGEmKTsKKwogICAgIHZvaWQgcG9zdFRhc2soQ3Jvc3NUaHJlYWRUYXNrJiYpOwog
ICAgIHZvaWQgcG9zdFRhc2tSZXBseShDcm9zc1RocmVhZFRhc2smJik7CiAKQEAgLTgxLDYgKzg2
LDggQEAgcHJpdmF0ZToKICAgICB2b2lkIHRhc2tUaHJlYWRFbnRyeVBvaW50KCk7CiAgICAgdm9p
ZCBoYW5kbGVUYXNrUmVwbGllc09uTWFpblRocmVhZCgpOwogCisgICAgdm9pZCBzY3JpcHRGZXRj
aEZpbmlzaGVkKGNvbnN0IFNlcnZpY2VXb3JrZXJGZXRjaFJlc3VsdCYpOworCiAgICAgSGFzaE1h
cDx1aW50NjRfdCwgQ29ubmVjdGlvbio+IG1fY29ubmVjdGlvbnM7CiAgICAgSGFzaE1hcDxTZXJ2
aWNlV29ya2VyUmVnaXN0cmF0aW9uS2V5LCBzdGQ6OnVuaXF1ZV9wdHI8U1dTZXJ2ZXJSZWdpc3Ry
YXRpb24+PiBtX3JlZ2lzdHJhdGlvbnM7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3dv
cmtlcnMvc2VydmljZS9zZXJ2ZXIvU1dTZXJ2ZXJSZWdpc3RyYXRpb24uY3BwIGIvU291cmNlL1dl
YkNvcmUvd29ya2Vycy9zZXJ2aWNlL3NlcnZlci9TV1NlcnZlclJlZ2lzdHJhdGlvbi5jcHAKaW5k
ZXggMTA1MmI5YmFkY2QuLjc0MzJhZmE2ZWM4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS93
b3JrZXJzL3NlcnZpY2Uvc2VydmVyL1NXU2VydmVyUmVnaXN0cmF0aW9uLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2Uvc2VydmVyL1NXU2VydmVyUmVnaXN0cmF0aW9uLmNw
cApAQCAtMzIsNiArMzIsNyBAQAogI2luY2x1ZGUgIlNXU2VydmVyLmgiCiAjaW5jbHVkZSAiU1dT
ZXJ2ZXJXb3JrZXIuaCIKICNpbmNsdWRlICJTZWN1cml0eU9yaWdpbi5oIgorI2luY2x1ZGUgIlNl
cnZpY2VXb3JrZXJGZXRjaFJlc3VsdC5oIgogI2luY2x1ZGUgIlNlcnZpY2VXb3JrZXJSZWdpc3Ry
YXRpb25EYXRhLmgiCiAjaW5jbHVkZSAiV29ya2VyVHlwZS5oIgogCkBAIC02Myw2ICs2NCwyMiBA
QCB2b2lkIFNXU2VydmVyUmVnaXN0cmF0aW9uOjplbnF1ZXVlSm9iKGNvbnN0IFNlcnZpY2VXb3Jr
ZXJKb2JEYXRhJiBqb2JEYXRhKQogICAgICAgICBtX2pvYlRpbWVyLnN0YXJ0T25lU2hvdCgwX3Mp
OwogfQogCit2b2lkIFNXU2VydmVyUmVnaXN0cmF0aW9uOjpzY3JpcHRGZXRjaEZpbmlzaGVkKGNv
bnN0IFNlcnZpY2VXb3JrZXJGZXRjaFJlc3VsdCYgcmVzdWx0KQoreworICAgIEFTU0VSVChtX2N1
cnJlbnRKb2IgJiYgbV9jdXJyZW50Sm9iLT5pZGVudGlmaWVyKCkgPT0gcmVzdWx0LmpvYklkZW50
aWZpZXIpOworCisgICAgLy8gRklYTUU6IFdlIGZldGNoZWQgdGhlIHNjcmlwdCBjb250ZW50cyBi
dXQgZG9uJ3QgZG8gYW55dGhpbmcgd2l0aCB0aGVtIHlldC4KKyAgICAvLyBUaGVzZSBlcnJvcnMg
YXJlIGZvciB0ZXN0aW5nIHRoZSBjdXJyZW50IHN0YXRlIG9mIHRoZSBmZWF0dXJlLgorCisgICAg
U3RyaW5nIG1lc3NhZ2U7CisgICAgaWYgKHJlc3VsdC5zY3JpcHRFcnJvci5pc051bGwoKSkKKyAg
ICAgICAgbWVzc2FnZSA9IG1ha2VTdHJpbmcoIlNjcmlwdCBVUkwgIiwgbV9jdXJyZW50Sm9iLT5z
Y3JpcHRVUkwuc3RyaW5nKCksICIgZmV0Y2hlZCB3aXRoICIsIFN0cmluZzo6bnVtYmVyKHJlc3Vs
dC5zY3JpcHREYXRhLnNpemUoKSksICIgYnl0ZXMsIGJ1dCB3ZSdyZSBub3QgdXNpbmcgdGhlIHJl
c3VsdCB5ZXQiKTsKKyAgICBlbHNlCisgICAgICAgIG1lc3NhZ2UgPSBtYWtlU3RyaW5nKCJTY3Jp
cHQgVVJMICIsIG1fY3VycmVudEpvYi0+c2NyaXB0VVJMLnN0cmluZygpLCAiIGZldGNoIHJlc3Vs
dGVkIGluIGVycm9yOiAiLCByZXN1bHQuc2NyaXB0RXJyb3IubG9jYWxpemVkRGVzY3JpcHRpb24o
KSk7CisKKyAgICByZWplY3RDdXJyZW50Sm9iKEV4Y2VwdGlvbkRhdGEgeyBVbmtub3duRXJyb3Is
IG1lc3NhZ2UgfSk7Cit9CisKIHZvaWQgU1dTZXJ2ZXJSZWdpc3RyYXRpb246OnN0YXJ0TmV4dEpv
YigpCiB7CiAgICAgQVNTRVJUKGlzTWFpblRocmVhZCgpKTsKQEAgLTE0OSw5ICsxNjYsNyBAQCB2
b2lkIFNXU2VydmVyUmVnaXN0cmF0aW9uOjpydW5VcGRhdGVKb2IoY29uc3QgU2VydmljZVdvcmtl
ckpvYkRhdGEmIGpvYikKICAgICBpZiAobmV3ZXN0V29ya2VyICYmICFlcXVhbElnbm9yaW5nRnJh
Z21lbnRJZGVudGlmaWVyKGpvYi5zY3JpcHRVUkwsIG5ld2VzdFdvcmtlci0+c2NyaXB0VVJMKCkp
KQogICAgICAgICByZXR1cm4gcmVqZWN0V2l0aEV4Y2VwdGlvbk9uTWFpblRocmVhZChFeGNlcHRp
b25EYXRhIHsgVHlwZUVycm9yLCBBU0NJSUxpdGVyYWwoIkNhbm5vdCB1cGRhdGUgYSBzZXJ2aWNl
IHdvcmtlciB3aXRoIGEgcmVxdWVzdGVkIHNjcmlwdCBVUkwgd2hvc2UgbmV3ZXN0IHdvcmtlciBo
YXMgYSBkaWZmZXJlbnQgc2NyaXB0IFVSTCIpIH0pOwogCi0gICAgLy8gRklYTUU6IEF0IHRoaXMg
cG9pbnQgd2UgYXJlIHJlYWR5IHRvIGFjdHVhbGx5IGZldGNoIHRoZSBzY3JpcHQgZm9yIHRoZSB3
b3JrZXIgaW4gdGhlIHJlZ2lzdGVyaW5nIGNvbnRleHQuCi0gICAgLy8gRm9yIG5vdyB3ZSdyZSBz
dGlsbCBoYXJkIGNvZGluZyB0aGUgc2FtZSByZWplY3Rpb24gd2UgaGF2ZSBzbyBmYXIuCi0gICAg
cmVqZWN0V2l0aEV4Y2VwdGlvbk9uTWFpblRocmVhZChFeGNlcHRpb25EYXRhIHsgVW5rbm93bkVy
cm9yLCBBU0NJSUxpdGVyYWwoInNlcnZpY2VXb3JrZXIgam9iIHNjaGVkdWxpbmcgaXMgbm90IHll
dCBpbXBsZW1lbnRlZCIpIH0pOworICAgIHN0YXJ0U2NyaXB0RmV0Y2hGcm9tTWFpblRocmVhZCgp
OwogfQogCiB2b2lkIFNXU2VydmVyUmVnaXN0cmF0aW9uOjpyZWplY3RXaXRoRXhjZXB0aW9uT25N
YWluVGhyZWFkKGNvbnN0IEV4Y2VwdGlvbkRhdGEmIGV4Y2VwdGlvbikKQEAgLTE2Niw2ICsxODEs
MTIgQEAgdm9pZCBTV1NlcnZlclJlZ2lzdHJhdGlvbjo6cmVzb2x2ZVdpdGhSZWdpc3RyYXRpb25P
bk1haW5UaHJlYWQoKQogICAgIG1fc2VydmVyLnBvc3RUYXNrUmVwbHkoY3JlYXRlQ3Jvc3NUaHJl
YWRUYXNrKCp0aGlzLCAmU1dTZXJ2ZXJSZWdpc3RyYXRpb246OnJlc29sdmVDdXJyZW50Sm9iLCBk
YXRhKCkpKTsKIH0KIAordm9pZCBTV1NlcnZlclJlZ2lzdHJhdGlvbjo6c3RhcnRTY3JpcHRGZXRj
aEZyb21NYWluVGhyZWFkKCkKK3sKKyAgICBBU1NFUlQoIWlzTWFpblRocmVhZCgpKTsKKyAgICBt
X3NlcnZlci5wb3N0VGFza1JlcGx5KGNyZWF0ZUNyb3NzVGhyZWFkVGFzaygqdGhpcywgJlNXU2Vy
dmVyUmVnaXN0cmF0aW9uOjpzdGFydFNjcmlwdEZldGNoRm9yQ3VycmVudEpvYikpOworfQorCiB2
b2lkIFNXU2VydmVyUmVnaXN0cmF0aW9uOjpyZWplY3RDdXJyZW50Sm9iKGNvbnN0IEV4Y2VwdGlv
bkRhdGEmIGV4Y2VwdGlvbkRhdGEpCiB7CiAgICAgQVNTRVJUKGlzTWFpblRocmVhZCgpKTsKQEAg
LTE4Niw2ICsyMDcsMTQgQEAgdm9pZCBTV1NlcnZlclJlZ2lzdHJhdGlvbjo6cmVzb2x2ZUN1cnJl
bnRKb2IoY29uc3QgU2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbkRhdGEKICAgICBmaW5pc2hDdXJy
ZW50Sm9iKCk7CiB9CiAKK3ZvaWQgU1dTZXJ2ZXJSZWdpc3RyYXRpb246OnN0YXJ0U2NyaXB0RmV0
Y2hGb3JDdXJyZW50Sm9iKCkKK3sKKyAgICBBU1NFUlQoaXNNYWluVGhyZWFkKCkpOworICAgIEFT
U0VSVChtX2N1cnJlbnRKb2IpOworCisgICAgbV9zZXJ2ZXIuc3RhcnRTY3JpcHRGZXRjaCgqbV9j
dXJyZW50Sm9iKTsKK30KKwogdm9pZCBTV1NlcnZlclJlZ2lzdHJhdGlvbjo6ZmluaXNoQ3VycmVu
dEpvYigpCiB7CiAgICAgQVNTRVJUKG1fY3VycmVudEpvYik7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS93b3JrZXJzL3NlcnZpY2Uvc2VydmVyL1NXU2VydmVyUmVnaXN0cmF0aW9uLmggYi9T
b3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2Uvc2VydmVyL1NXU2VydmVyUmVnaXN0cmF0aW9u
LmgKaW5kZXggOWI2ZWFiZjJmYTMuLmY3Njg1NDYzZGU3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS93b3JrZXJzL3NlcnZpY2Uvc2VydmVyL1NXU2VydmVyUmVnaXN0cmF0aW9uLmgKKysrIGIv
U291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL3NlcnZlci9TV1NlcnZlclJlZ2lzdHJhdGlv
bi5oCkBAIC0zOCw2ICszOCw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIGNsYXNzIFNXU2VydmVy
OwogY2xhc3MgU1dTZXJ2ZXJXb3JrZXI7CiBzdHJ1Y3QgRXhjZXB0aW9uRGF0YTsKK3N0cnVjdCBT
ZXJ2aWNlV29ya2VyRmV0Y2hSZXN1bHQ7CiAKIGNsYXNzIFNXU2VydmVyUmVnaXN0cmF0aW9uIDog
cHVibGljIFRocmVhZFNhZmVJZGVudGlmaWVkPFNXU2VydmVyUmVnaXN0cmF0aW9uPiB7CiBwdWJs
aWM6CkBAIC00Niw2ICs0Nyw3IEBAIHB1YmxpYzoKICAgICB+U1dTZXJ2ZXJSZWdpc3RyYXRpb24o
KTsKIAogICAgIHZvaWQgZW5xdWV1ZUpvYihjb25zdCBTZXJ2aWNlV29ya2VySm9iRGF0YSYpOwor
ICAgIHZvaWQgc2NyaXB0RmV0Y2hGaW5pc2hlZChjb25zdCBTZXJ2aWNlV29ya2VyRmV0Y2hSZXN1
bHQmKTsKIAogICAgIFNlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb25EYXRhIGRhdGEoKSBjb25zdDsK
IApAQCAtNTQsNiArNTYsNyBAQCBwcml2YXRlOgogICAgIHZvaWQgc3RhcnROZXh0Sm9iKCk7CiAg
ICAgdm9pZCByZWplY3RDdXJyZW50Sm9iKGNvbnN0IEV4Y2VwdGlvbkRhdGEmKTsKICAgICB2b2lk
IHJlc29sdmVDdXJyZW50Sm9iKGNvbnN0IFNlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb25EYXRhJik7
CisgICAgdm9pZCBzdGFydFNjcmlwdEZldGNoRm9yQ3VycmVudEpvYigpOwogICAgIHZvaWQgZmlu
aXNoQ3VycmVudEpvYigpOwogCiAgICAgdm9pZCBydW5SZWdpc3RlckpvYihjb25zdCBTZXJ2aWNl
V29ya2VySm9iRGF0YSYpOwpAQCAtNjEsNiArNjQsNyBAQCBwcml2YXRlOgogCiAgICAgdm9pZCBy
ZWplY3RXaXRoRXhjZXB0aW9uT25NYWluVGhyZWFkKGNvbnN0IEV4Y2VwdGlvbkRhdGEmKTsKICAg
ICB2b2lkIHJlc29sdmVXaXRoUmVnaXN0cmF0aW9uT25NYWluVGhyZWFkKCk7CisgICAgdm9pZCBz
dGFydFNjcmlwdEZldGNoRnJvbU1haW5UaHJlYWQoKTsKICAgICBib29sIGlzRW1wdHkoKTsKICAg
ICBTV1NlcnZlcldvcmtlciogZ2V0TmV3ZXN0V29ya2VyKCk7CiAKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKaW5kZXggNDNhNDIz
NjdlOWUuLjZmOGQ1OGM5MWY5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwor
KysgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwpAQCAtMSwzICsxLDIwIEBACisyMDE3LTA4LTMx
ICBCcmFkeSBFaWRzb24gIDxiZWlkc29uQGFwcGxlLmNvbT4KKworICAgICAgICBBZGQgKGVudGly
ZWx5IGluY29ycmVjdCkgZmV0Y2hpbmcgb2YgU2VydmljZVdvcmtlciBzY3JpcHRzLgorICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTc2MTc5CisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBTdG9yYWdlUHJvY2Vz
cy9TZXJ2aWNlV29ya2VyL1dlYlNXU2VydmVyQ29ubmVjdGlvbi5jcHA6CisgICAgICAgIChXZWJL
aXQ6OldlYlNXU2VydmVyQ29ubmVjdGlvbjo6c3RhcnRTY3JpcHRGZXRjaEluQ2xpZW50KToKKyAg
ICAgICAgKiBTdG9yYWdlUHJvY2Vzcy9TZXJ2aWNlV29ya2VyL1dlYlNXU2VydmVyQ29ubmVjdGlv
bi5oOgorICAgICAgICAqIFN0b3JhZ2VQcm9jZXNzL1NlcnZpY2VXb3JrZXIvV2ViU1dTZXJ2ZXJD
b25uZWN0aW9uLm1lc3NhZ2VzLmluOgorCisgICAgICAgICogV2ViUHJvY2Vzcy9TdG9yYWdlL1dl
YlNXQ2xpZW50Q29ubmVjdGlvbi5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlNXQ2xpZW50Q29u
bmVjdGlvbjo6ZmluaXNoRmV0Y2hpbmdTY3JpcHRJblNlcnZlcik6CisgICAgICAgICogV2ViUHJv
Y2Vzcy9TdG9yYWdlL1dlYlNXQ2xpZW50Q29ubmVjdGlvbi5oOgorICAgICAgICAqIFdlYlByb2Nl
c3MvU3RvcmFnZS9XZWJTV0NsaWVudENvbm5lY3Rpb24ubWVzc2FnZXMuaW46CisKIDIwMTctMDgt
MzAgIENhcmxvcyBBbGJlcnRvIExvcGV6IFBlcmV6ICA8Y2xvcGV6QGlnYWxpYS5jb20+CiAKICAg
ICAgICAgW1dQRV0gRW5hYmxlIE1FTU9SWV9TQU1QTEVSCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L1N0b3JhZ2VQcm9jZXNzL1NlcnZpY2VXb3JrZXIvV2ViU1dTZXJ2ZXJDb25uZWN0aW9uLmNw
cCBiL1NvdXJjZS9XZWJLaXQvU3RvcmFnZVByb2Nlc3MvU2VydmljZVdvcmtlci9XZWJTV1NlcnZl
ckNvbm5lY3Rpb24uY3BwCmluZGV4IGRhMjE1ZjFiN2YyLi5kOGU2YzI0NWY0ZSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9TdG9yYWdlUHJvY2Vzcy9TZXJ2aWNlV29ya2VyL1dlYlNXU2VydmVy
Q29ubmVjdGlvbi5jcHAKKysrIGIvU291cmNlL1dlYktpdC9TdG9yYWdlUHJvY2Vzcy9TZXJ2aWNl
V29ya2VyL1dlYlNXU2VydmVyQ29ubmVjdGlvbi5jcHAKQEAgLTI4LDYgKzI4LDcgQEAKIAogI2lm
IEVOQUJMRShTRVJWSUNFX1dPUktFUikKIAorI2luY2x1ZGUgIkRhdGFSZWZlcmVuY2UuaCIKICNp
bmNsdWRlICJMb2dnaW5nLmgiCiAjaW5jbHVkZSAiU3RvcmFnZVRvV2ViUHJvY2Vzc0Nvbm5lY3Rp
b25NZXNzYWdlcy5oIgogI2luY2x1ZGUgIldlYlByb2Nlc3MuaCIKQEAgLTcwLDYgKzcxLDExIEBA
IHZvaWQgV2ViU1dTZXJ2ZXJDb25uZWN0aW9uOjpyZXNvbHZlSm9iSW5DbGllbnQodWludDY0X3Qg
am9iSWRlbnRpZmllciwgY29uc3QgU2VyCiAgICAgc2VuZChNZXNzYWdlczo6V2ViU1dDbGllbnRD
b25uZWN0aW9uOjpKb2JSZXNvbHZlZEluU2VydmVyKGpvYklkZW50aWZpZXIsIHJlZ2lzdHJhdGlv
bkRhdGEpKTsKIH0KIAordm9pZCBXZWJTV1NlcnZlckNvbm5lY3Rpb246OnN0YXJ0U2NyaXB0RmV0
Y2hJbkNsaWVudCh1aW50NjRfdCBqb2JJZGVudGlmaWVyKQoreworICAgIHNlbmQoTWVzc2FnZXM6
OldlYlNXQ2xpZW50Q29ubmVjdGlvbjo6U3RhcnRTY3JpcHRGZXRjaEZvclNlcnZlcihqb2JJZGVu
dGlmaWVyKSk7Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdlYktpdAogCiAjZW5kaWYgLy8gRU5BQkxF
KFNFUlZJQ0VfV09SS0VSKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TdG9yYWdlUHJvY2Vz
cy9TZXJ2aWNlV29ya2VyL1dlYlNXU2VydmVyQ29ubmVjdGlvbi5oIGIvU291cmNlL1dlYktpdC9T
dG9yYWdlUHJvY2Vzcy9TZXJ2aWNlV29ya2VyL1dlYlNXU2VydmVyQ29ubmVjdGlvbi5oCmluZGV4
IGM4NzkyNTE0ZWQ3Li5iM2NlNzZjOTVlOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9TdG9y
YWdlUHJvY2Vzcy9TZXJ2aWNlV29ya2VyL1dlYlNXU2VydmVyQ29ubmVjdGlvbi5oCisrKyBiL1Nv
dXJjZS9XZWJLaXQvU3RvcmFnZVByb2Nlc3MvU2VydmljZVdvcmtlci9XZWJTV1NlcnZlckNvbm5l
Y3Rpb24uaApAQCAtNTEsNiArNTEsNyBAQCBwcml2YXRlOgogICAgIC8vIEltcGxlbWVudCBTV1Nl
cnZlcjo6Q29ubmVjdGlvbgogICAgIHZvaWQgcmVqZWN0Sm9iSW5DbGllbnQodWludDY0X3Qgam9i
SWRlbnRpZmllciwgY29uc3QgV2ViQ29yZTo6RXhjZXB0aW9uRGF0YSYpIGZpbmFsOwogICAgIHZv
aWQgcmVzb2x2ZUpvYkluQ2xpZW50KHVpbnQ2NF90IGpvYklkZW50aWZpZXIsIGNvbnN0IFdlYkNv
cmU6OlNlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb25EYXRhJikgZmluYWw7CisgICAgdm9pZCBzdGFy
dFNjcmlwdEZldGNoSW5DbGllbnQodWludDY0X3Qgam9iSWRlbnRpZmllcikgZmluYWw7CiAKICAg
ICBJUEM6OkNvbm5lY3Rpb24qIG1lc3NhZ2VTZW5kZXJDb25uZWN0aW9uKCkgZmluYWwgeyByZXR1
cm4gbV9jb25uZWN0aW9uLnB0cigpOyB9CiAgICAgdWludDY0X3QgbWVzc2FnZVNlbmRlckRlc3Rp
bmF0aW9uSUQoKSBmaW5hbCB7IHJldHVybiBpZGVudGlmaWVyKCk7IH0KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvU3RvcmFnZVByb2Nlc3MvU2VydmljZVdvcmtlci9XZWJTV1NlcnZlckNvbm5l
Y3Rpb24ubWVzc2FnZXMuaW4gYi9Tb3VyY2UvV2ViS2l0L1N0b3JhZ2VQcm9jZXNzL1NlcnZpY2VX
b3JrZXIvV2ViU1dTZXJ2ZXJDb25uZWN0aW9uLm1lc3NhZ2VzLmluCmluZGV4IDA1NzFjNGQ2MmRj
Li5lNGNmYjk2MDVhNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9TdG9yYWdlUHJvY2Vzcy9T
ZXJ2aWNlV29ya2VyL1dlYlNXU2VydmVyQ29ubmVjdGlvbi5tZXNzYWdlcy5pbgorKysgYi9Tb3Vy
Y2UvV2ViS2l0L1N0b3JhZ2VQcm9jZXNzL1NlcnZpY2VXb3JrZXIvV2ViU1dTZXJ2ZXJDb25uZWN0
aW9uLm1lc3NhZ2VzLmluCkBAIC0yNSw2ICsyNSw3IEBACiBtZXNzYWdlcyAtPiBXZWJTV1NlcnZl
ckNvbm5lY3Rpb24gewogICAgICMgV2hlbiBwb3NzaWJsZSwgdGhlc2UgbWVzc2FnZXMgY2FuIGJl
IGltcGxlbWVudGVkIGRpcmVjdGx5IGJ5IFdlYkNvcmU6OlNXQ2xpZW50Q29ubmVjdGlvbgogICAg
IFNjaGVkdWxlSm9iSW5TZXJ2ZXIoc3RydWN0IFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJKb2JEYXRh
IGpvYkRhdGEpCisgICAgRmluaXNoRmV0Y2hpbmdTY3JpcHRJblNlcnZlcihzdHJ1Y3QgV2ViQ29y
ZTo6U2VydmljZVdvcmtlckZldGNoUmVzdWx0IHJlc3VsdCkKIH0KIAogI2VuZGlmIC8vIEVOQUJM
RShTRVJWSUNFX1dPUktFUikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9T
dG9yYWdlL1dlYlNXQ2xpZW50Q29ubmVjdGlvbi5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvU3RvcmFnZS9XZWJTV0NsaWVudENvbm5lY3Rpb24uY3BwCmluZGV4IDE4MjY0OWE2NjJjLi5i
YjNkYjZiNTM4MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1N0b3JhZ2Uv
V2ViU1dDbGllbnRDb25uZWN0aW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
U3RvcmFnZS9XZWJTV0NsaWVudENvbm5lY3Rpb24uY3BwCkBAIC0zMCw3ICszMCw5IEBACiAKICNp
bmNsdWRlICJMb2dnaW5nLmgiCiAjaW5jbHVkZSAiU3RvcmFnZVRvV2ViUHJvY2Vzc0Nvbm5lY3Rp
b25NZXNzYWdlcy5oIgorI2luY2x1ZGUgIldlYkNvcmVBcmd1bWVudENvZGVycy5oIgogI2luY2x1
ZGUgIldlYlNXU2VydmVyQ29ubmVjdGlvbk1lc3NhZ2VzLmgiCisjaW5jbHVkZSA8V2ViQ29yZS9T
ZXJ2aWNlV29ya2VyRmV0Y2hSZXN1bHQuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1NlcnZpY2VXb3Jr
ZXJKb2JEYXRhLmg+CiAKIHVzaW5nIG5hbWVzcGFjZSBQQUw7CkBAIC01Niw2ICs1OCwxMSBAQCB2
b2lkIFdlYlNXQ2xpZW50Q29ubmVjdGlvbjo6c2NoZWR1bGVKb2JJblNlcnZlcihjb25zdCBTZXJ2
aWNlV29ya2VySm9iRGF0YSYgam9iRAogICAgIHNlbmQoTWVzc2FnZXM6OldlYlNXU2VydmVyQ29u
bmVjdGlvbjo6U2NoZWR1bGVKb2JJblNlcnZlcihqb2JEYXRhKSk7CiB9CiAKK3ZvaWQgV2ViU1dD
bGllbnRDb25uZWN0aW9uOjpmaW5pc2hGZXRjaGluZ1NjcmlwdEluU2VydmVyKGNvbnN0IFNlcnZp
Y2VXb3JrZXJGZXRjaFJlc3VsdCYgcmVzdWx0KQoreworICAgIHNlbmQoTWVzc2FnZXM6OldlYlNX
U2VydmVyQ29ubmVjdGlvbjo6RmluaXNoRmV0Y2hpbmdTY3JpcHRJblNlcnZlcihyZXN1bHQpKTsK
K30KKwogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CiAKICNlbmRpZiAvLyBFTkFCTEUoU0VSVklDRV9X
T1JLRVIpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvU3RvcmFnZS9XZWJT
V0NsaWVudENvbm5lY3Rpb24uaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9TdG9yYWdlL1dl
YlNXQ2xpZW50Q29ubmVjdGlvbi5oCmluZGV4IDUxZGU0YmJiNjYzLi40NGFmNzc5MTlkNyAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1N0b3JhZ2UvV2ViU1dDbGllbnRDb25u
ZWN0aW9uLmgKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1N0b3JhZ2UvV2ViU1dDbGll
bnRDb25uZWN0aW9uLmgKQEAgLTQ4LDYgKzQ4LDcgQEAgcHVibGljOgogICAgIHVpbnQ2NF90IGlk
ZW50aWZpZXIoKSBjb25zdCBmaW5hbCB7IHJldHVybiBtX2lkZW50aWZpZXI7IH0KIAogICAgIHZv
aWQgc2NoZWR1bGVKb2JJblNlcnZlcihjb25zdCBXZWJDb3JlOjpTZXJ2aWNlV29ya2VySm9iRGF0
YSYpIGZpbmFsOworICAgIHZvaWQgZmluaXNoRmV0Y2hpbmdTY3JpcHRJblNlcnZlcihjb25zdCBX
ZWJDb3JlOjpTZXJ2aWNlV29ya2VyRmV0Y2hSZXN1bHQmKSBmaW5hbDsKIAogICAgIHZvaWQgZGlz
Y29ubmVjdGVkRnJvbVdlYlByb2Nlc3MoKTsKICAgICB2b2lkIGRpZFJlY2VpdmVNZXNzYWdlKElQ
Qzo6Q29ubmVjdGlvbiYsIElQQzo6RGVjb2RlciYpIGZpbmFsOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL1N0b3JhZ2UvV2ViU1dDbGllbnRDb25uZWN0aW9uLm1lc3NhZ2Vz
LmluIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1N0b3JhZ2UvV2ViU1dDbGllbnRDb25uZWN0
aW9uLm1lc3NhZ2VzLmluCmluZGV4IGFkZWY5OWFlZjA5Li40MGY3NzMwYzg2NiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1N0b3JhZ2UvV2ViU1dDbGllbnRDb25uZWN0aW9u
Lm1lc3NhZ2VzLmluCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9TdG9yYWdlL1dlYlNX
Q2xpZW50Q29ubmVjdGlvbi5tZXNzYWdlcy5pbgpAQCAtMjYsNiArMjYsNyBAQCBtZXNzYWdlcyAt
PiBXZWJTV0NsaWVudENvbm5lY3Rpb24gewogICAgICMgV2hlbiBwb3NzaWJsZSwgdGhlc2UgbWVz
c2FnZXMgY2FuIGJlIGltcGxlbWVudGVkIGRpcmVjdGx5IGJ5IFdlYkNvcmU6OlNXU2VydmVyOjpD
b25uZWN0aW9uCiAgICAgSm9iUmVqZWN0ZWRJblNlcnZlcih1aW50NjRfdCBpZGVudGlmaWVyLCBz
dHJ1Y3QgV2ViQ29yZTo6RXhjZXB0aW9uRGF0YSBleGNlcHRpb24pCiAgICAgSm9iUmVzb2x2ZWRJ
blNlcnZlcih1aW50NjRfdCBpZGVudGlmaWVyLCBzdHJ1Y3QgV2ViQ29yZTo6U2VydmljZVdvcmtl
clJlZ2lzdHJhdGlvbkRhdGEgcmVnaXN0cmF0aW9uKQorICAgIFN0YXJ0U2NyaXB0RmV0Y2hGb3JT
ZXJ2ZXIodWludDY0X3Qgam9iSWRlbnRpZmllcikKIH0KIAogI2VuZGlmIC8vIEVOQUJMRShTRVJW
SUNFX1dPUktFUikK
</data>
<flag name="review"
          id="339791"
          type_id="1"
          status="+"
          setter="aestes"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>319533</attachid>
            <date>2017-08-31 15:39:06 -0700</date>
            <delta_ts>2017-10-05 11:10:05 -0700</delta_ts>
            <desc>Patch fo landing</desc>
            <filename>patch</filename>
            <type>text/plain</type>
            <size>43217</size>
            <attacher name="Brady Eidson">beidson</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCA3MGNiN2VkM2VkZS4uYjQzMTgyMWI2YzEgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3Rz
L0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNCBAQAor
MjAxNy0wOC0zMSAgQnJhZHkgRWlkc29uICA8YmVpZHNvbkBhcHBsZS5jb20+CisKKyAgICAgICAg
QWRkIChlbnRpcmVseSBpbmNvcnJlY3QpIGZldGNoaW5nIG9mIFNlcnZpY2VXb3JrZXIgc2NyaXB0
cy4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE3NjE3
OQorCisgICAgICAgIFJldmlld2VkIGJ5IEFuZHkgRXN0ZXMuCisKKyAgICAgICAgKiBodHRwL3Rl
c3RzL3dvcmtlcnMvc2VydmljZS9iYXNpYy1yZWdpc3Rlci1leHBlY3RlZC50eHQ6CisgICAgICAg
ICogaHR0cC90ZXN0cy93b3JrZXJzL3NlcnZpY2UvcmVzb3VyY2VzL2Jhc2ljLXJlZ2lzdGVyLmpz
OgorICAgICAgICAqIGh0dHAvdGVzdHMvd29ya2Vycy9zZXJ2aWNlL3Jlc291cmNlcy9yZWdpc3Ry
YXRpb24tdGFzay1xdWV1ZS1zY2hlZHVsaW5nLTEuanM6CisKIDIwMTctMDgtMzEgIFlvdWVubiBG
YWJsZXQgIDx5b3Vlbm5AYXBwbGUuY29tPgogCiAgICAgICAgIEFkZCBzdXBwb3J0IGZvciBSZXF1
ZXN0IGJvZHkgc3RyZWFtIGNsb25pbmcKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVz
dHMvd29ya2Vycy9zZXJ2aWNlL2Jhc2ljLXJlZ2lzdGVyLWV4cGVjdGVkLnR4dCBiL0xheW91dFRl
c3RzL2h0dHAvdGVzdHMvd29ya2Vycy9zZXJ2aWNlL2Jhc2ljLXJlZ2lzdGVyLWV4cGVjdGVkLnR4
dAppbmRleCBjMDE4ZTQ1ZTVkMS4uMGFlZGY3MGYyN2YgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3Rz
L2h0dHAvdGVzdHMvd29ya2Vycy9zZXJ2aWNlL2Jhc2ljLXJlZ2lzdGVyLWV4cGVjdGVkLnR4dAor
KysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dvcmtlcnMvc2VydmljZS9iYXNpYy1yZWdpc3Rl
ci1leHBlY3RlZC50eHQKQEAgLTEsMiArMSwzIEBACi1DT05TT0xFIE1FU1NBR0U6IGxpbmUgMTE6
IFJlZ2lzdHJhdGlvbiBmYWlsZWQgd2l0aCBlcnJvcjogVW5rbm93bkVycm9yOiBzZXJ2aWNlV29y
a2VyIGpvYiBzY2hlZHVsaW5nIGlzIG5vdCB5ZXQgaW1wbGVtZW50ZWQKK0NPTlNPTEUgTUVTU0FH
RTogbGluZSAxMDogUmVnaXN0cmF0aW9uIGZhaWxlZCB3aXRoIGVycm9yOiBVbmtub3duRXJyb3I6
IFNjcmlwdCBVUkwgaHR0cDovLzEyNy4wLjAuMTo4MDAwL3dvcmtlcnMvc2VydmljZS9yZXNvdXJj
ZXMvZW1wdHktd29ya2VyLmpzIGZldGNoZWQgd2l0aCA0MSBieXRlcywgYnV0IHdlJ3JlIG5vdCB1
c2luZyB0aGUgcmVzdWx0IHlldAorQ09OU09MRSBNRVNTQUdFOiBsaW5lIDIxOiBSZWdpc3RyYXRp
b24gZmFpbGVkIHdpdGggZXJyb3I6IFVua25vd25FcnJvcjogU2NyaXB0IFVSTCBodHRwOi8vMTI3
LjAuMC4xOjgwMDAvd29ya2Vycy9zZXJ2aWNlL3Jlc291cmNlcy9lbXB0eS13b3JrZXItZG9lc250
LWV4aXN0LmpzIGZldGNoIHJlc3VsdGVkIGluIGVycm9yOiBTZXJ2aWNlV29ya2VyIHNjcmlwdCBu
ZXR3b3JrIGZldGNoIGZhaWxlZCB3aXRoIEhUVFAgc3RhdHVzIGNvZGUgNDA0CiAKZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvd29ya2Vycy9zZXJ2aWNlL3Jlc291cmNlcy9iYXNp
Yy1yZWdpc3Rlci5qcyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvd29ya2Vycy9zZXJ2aWNlL3Jl
c291cmNlcy9iYXNpYy1yZWdpc3Rlci5qcwppbmRleCBlNzUxNmZlNTUxNy4uM2ExZTYzYjBhNjQg
MTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvd29ya2Vycy9zZXJ2aWNlL3Jlc291
cmNlcy9iYXNpYy1yZWdpc3Rlci5qcworKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dvcmtl
cnMvc2VydmljZS9yZXNvdXJjZXMvYmFzaWMtcmVnaXN0ZXIuanMKQEAgLTYsNiArNiwxNiBAQCBm
dW5jdGlvbiBkb25lKCkKIG5hdmlnYXRvci5zZXJ2aWNlV29ya2VyLnJlZ2lzdGVyKCJyZXNvdXJj
ZXMvZW1wdHktd29ya2VyLmpzIiwgeyB9KQogLnRoZW4oZnVuY3Rpb24ocikgewogCWNvbnNvbGUu
bG9nKCJSZWdpc3RlcmVkISIpOworfSwgZnVuY3Rpb24oZSkgeworCWNvbnNvbGUubG9nKCJSZWdp
c3RyYXRpb24gZmFpbGVkIHdpdGggZXJyb3I6ICIgKyBlKTsKK30pCisuY2F0Y2goZnVuY3Rpb24o
ZSkgeworCWNvbnNvbGUubG9nKCJFeGNlcHRpb24gcmVnaXN0ZXJpbmc6ICIgKyBlKTsKK30pOwor
CituYXZpZ2F0b3Iuc2VydmljZVdvcmtlci5yZWdpc3RlcigicmVzb3VyY2VzL2VtcHR5LXdvcmtl
ci1kb2VzbnQtZXhpc3QuanMiLCB7IH0pCisudGhlbihmdW5jdGlvbihyKSB7CisJY29uc29sZS5s
b2coIlJlZ2lzdGVyZWQhIik7CiAJZG9uZSgpOwogfSwgZnVuY3Rpb24oZSkgewogCWNvbnNvbGUu
bG9nKCJSZWdpc3RyYXRpb24gZmFpbGVkIHdpdGggZXJyb3I6ICIgKyBlKTsKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2h0dHAvdGVzdHMvd29ya2Vycy9zZXJ2aWNlL3Jlc291cmNlcy9yZWdpc3Ry
YXRpb24tdGFzay1xdWV1ZS1zY2hlZHVsaW5nLTEuanMgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3Rz
L3dvcmtlcnMvc2VydmljZS9yZXNvdXJjZXMvcmVnaXN0cmF0aW9uLXRhc2stcXVldWUtc2NoZWR1
bGluZy0xLmpzCmluZGV4IDEyN2EzZGIzNTQ1Li44ZTNlMDJkODljZiAxMDA2NDQKLS0tIGEvTGF5
b3V0VGVzdHMvaHR0cC90ZXN0cy93b3JrZXJzL3NlcnZpY2UvcmVzb3VyY2VzL3JlZ2lzdHJhdGlv
bi10YXNrLXF1ZXVlLXNjaGVkdWxpbmctMS5qcworKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3Rz
L3dvcmtlcnMvc2VydmljZS9yZXNvdXJjZXMvcmVnaXN0cmF0aW9uLXRhc2stcXVldWUtc2NoZWR1
bGluZy0xLmpzCkBAIC00OCw4ICs0OCw4IEBAIGZvciAodmFyIGkgPSAwOyBpIDwgMTAwMDsgKytp
KSB7CiAJCWNvbnNvbGUubG9nKCJPcmlnaW5hbCB3aW5kb3cgcmVzb2x2ZWQgc3VjY2Vzc2Z1bGx5
ICh1bmV4cGVjdGVkKSIpCiAJCWRvbmUoKTsKIAl9LCBmdW5jdGlvbihlKSB7Ci0JCWlmIChlKyIi
ICE9ICJVbmtub3duRXJyb3I6IHNlcnZpY2VXb3JrZXIgam9iIHNjaGVkdWxpbmcgaXMgbm90IHll
dCBpbXBsZW1lbnRlZCIpIHsKLQkJCWFsZXJ0KCJVbmV4cGVjdGVkIGVycm9yIHJlY2VpdmVkIGZy
b20gc2VydmVyIik7CisJCWlmIChlKyIiICE9ICJVbmtub3duRXJyb3I6IFNjcmlwdCBVUkwgaHR0
cDovLzEyNy4wLjAuMTo4MDAwL3dvcmtlcnMvc2VydmljZS9yZXNvdXJjZXMvZW1wdHktd29ya2Vy
LmpzIGZldGNoZWQgd2l0aCA0MSBieXRlcywgYnV0IHdlJ3JlIG5vdCB1c2luZyB0aGUgcmVzdWx0
IHlldCIpIHsKKwkJCWFsZXJ0KCJVbmV4cGVjdGVkIGVycm9yIHJlY2VpdmVkIGZyb20gc2VydmVy
OiAiICsgZSk7CiAJCQlmaW5pc2hTV1Rlc3QoKTsKIAkJfQogCQkKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCBlYmQw
NzNiNGFmYS4uZGVjYWRkYTNhZTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxv
ZworKysgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSw2MyBAQAorMjAxNy0w
OC0zMSAgQnJhZHkgRWlkc29uICA8YmVpZHNvbkBhcHBsZS5jb20+CisKKyAgICAgICAgQWRkIChl
bnRpcmVseSBpbmNvcnJlY3QpIGZldGNoaW5nIG9mIFNlcnZpY2VXb3JrZXIgc2NyaXB0cy4KKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE3NjE3OQorCisg
ICAgICAgIFJldmlld2VkIGJ5IEFuZHkgRXN0ZXMuCisKKyAgICAgICAgTm8gbmV3IHRlc3RzIChD
b3ZlcmVkIGJ5IGNoYW5nZXMgdG8gZXhpc3RpbmcgdGVzdHMpLgorCisgICAgICAgIFdoZW4gdGhl
IFN0b3JhZ2UgcHJvY2VzcyBpcyBydW5uaW5nIHRoZSAiVXBkYXRlIiBhbGdvcml0aG0gYW5kIGEg
U2VydmljZVdvcmtlciBzY3JpcHQgZmlsZSBuZWVkcyB0byBiZSBmZXRjaGVkLCB0aGlzIHBhdGNo
OgorICAgICAgICAgIC0gTWVzc2FnZXMgYmFjayB0byB0aGUgV2ViQ29udGVudCBwcm9jZXNzIHRo
YXQgc3RhcnRlZCB0aGUgcmVnaXN0ZXIvdXBkYXRlIGpvYgorICAgICAgICAgIC0gRXhlY3V0ZXMg
YSBGZXRjaExvYWQgaW4gdGhhdCBzY3JpcHQgY29udGV4dCBmb3IgdGhlIHNjcmlwdAorICAgICAg
ICAgIC0gU2VuZHMgdGhlIHJlc3VsdHMgYmFjayB0byB0aGUgU3RvcmFnZSBwcm9jZXNzCisKKyAg
ICAgICAgV2UgZG9uJ3QgZG8gYW55dGhpbmcgd2l0aCB0aGUgcmVzdWx0cyB5ZXQuCisKKyAgICAg
ICAgU29vbi4KKworICAgICAgICAqIFdlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoK
KworICAgICAgICAqIHdvcmtlcnMvc2VydmljZS9TZXJ2aWNlV29ya2VyQ29udGFpbmVyLmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJDb250YWluZXI6OnN0YXJ0U2NyaXB0RmV0
Y2hGb3JKb2IpOgorICAgICAgICAoV2ViQ29yZTo6U2VydmljZVdvcmtlckNvbnRhaW5lcjo6am9i
RmluaXNoZWRMb2FkaW5nU2NyaXB0KToKKyAgICAgICAgKFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJD
b250YWluZXI6OmpvYkZhaWxlZExvYWRpbmdTY3JpcHQpOgorICAgICAgICAqIHdvcmtlcnMvc2Vy
dmljZS9TZXJ2aWNlV29ya2VyQ29udGFpbmVyLmg6CisKKyAgICAgICAgKiB3b3JrZXJzL3NlcnZp
Y2UvU2VydmljZVdvcmtlckZldGNoUmVzdWx0Lmg6IENvcGllZCBmcm9tIFNvdXJjZS9XZWJDb3Jl
L3dvcmtlcnMvc2VydmljZS9zZXJ2ZXIvU1dDbGllbnRDb25uZWN0aW9uLmguCisgICAgICAgIChX
ZWJDb3JlOjpTZXJ2aWNlV29ya2VyRmV0Y2hSZXN1bHQ6OmVuY29kZSBjb25zdCk6CisgICAgICAg
IChXZWJDb3JlOjpTZXJ2aWNlV29ya2VyRmV0Y2hSZXN1bHQ6OmRlY29kZSk6CisKKyAgICAgICAg
KiB3b3JrZXJzL3NlcnZpY2UvU2VydmljZVdvcmtlckpvYi5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpTZXJ2aWNlV29ya2VySm9iOjpzdGFydFNjcmlwdEZldGNoKToKKyAgICAgICAgKFdlYkNvcmU6
OlNlcnZpY2VXb3JrZXJKb2I6OmZldGNoU2NyaXB0V2l0aENvbnRleHQpOgorICAgICAgICAoV2Vi
Q29yZTo6U2VydmljZVdvcmtlckpvYjo6ZGlkUmVjZWl2ZVJlc3BvbnNlKToKKyAgICAgICAgKFdl
YkNvcmU6OlNlcnZpY2VXb3JrZXJKb2I6OmRpZFJlY2VpdmVEYXRhKToKKyAgICAgICAgKFdlYkNv
cmU6OlNlcnZpY2VXb3JrZXJKb2I6OmRpZFN1Y2NlZWQpOgorICAgICAgICAoV2ViQ29yZTo6U2Vy
dmljZVdvcmtlckpvYjo6ZGlkRmFpbCk6CisgICAgICAgICogd29ya2Vycy9zZXJ2aWNlL1NlcnZp
Y2VXb3JrZXJKb2IuaDoKKworICAgICAgICAqIHdvcmtlcnMvc2VydmljZS9TZXJ2aWNlV29ya2Vy
Sm9iQ2xpZW50Lmg6CisKKyAgICAgICAgKiB3b3JrZXJzL3NlcnZpY2Uvc2VydmVyL1NXQ2xpZW50
Q29ubmVjdGlvbi5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTV0NsaWVudENvbm5lY3Rpb246OmZp
bmlzaGVkRmV0Y2hpbmdTY3JpcHQpOgorICAgICAgICAoV2ViQ29yZTo6U1dDbGllbnRDb25uZWN0
aW9uOjpmYWlsZWRGZXRjaGluZ1NjcmlwdCk6CisgICAgICAgIChXZWJDb3JlOjpTV0NsaWVudENv
bm5lY3Rpb246OnN0YXJ0U2NyaXB0RmV0Y2hGb3JTZXJ2ZXIpOgorICAgICAgICAqIHdvcmtlcnMv
c2VydmljZS9zZXJ2ZXIvU1dDbGllbnRDb25uZWN0aW9uLmg6CisKKyAgICAgICAgKiB3b3JrZXJz
L3NlcnZpY2Uvc2VydmVyL1NXU2VydmVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNXU2VydmVy
OjpDb25uZWN0aW9uOjpmaW5pc2hGZXRjaGluZ1NjcmlwdEluU2VydmVyKToKKyAgICAgICAgKFdl
YkNvcmU6OlNXU2VydmVyOjpzdGFydFNjcmlwdEZldGNoKToKKyAgICAgICAgKFdlYkNvcmU6OlNX
U2VydmVyOjpzY3JpcHRGZXRjaEZpbmlzaGVkKToKKyAgICAgICAgKiB3b3JrZXJzL3NlcnZpY2Uv
c2VydmVyL1NXU2VydmVyLmg6CisKKyAgICAgICAgKiB3b3JrZXJzL3NlcnZpY2Uvc2VydmVyL1NX
U2VydmVyUmVnaXN0cmF0aW9uLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNXU2VydmVyUmVnaXN0
cmF0aW9uOjpzY3JpcHRGZXRjaEZpbmlzaGVkKToKKyAgICAgICAgKFdlYkNvcmU6OlNXU2VydmVy
UmVnaXN0cmF0aW9uOjpydW5VcGRhdGVKb2IpOgorICAgICAgICAoV2ViQ29yZTo6U1dTZXJ2ZXJS
ZWdpc3RyYXRpb246OnN0YXJ0U2NyaXB0RmV0Y2hGcm9tTWFpblRocmVhZCk6CisgICAgICAgIChX
ZWJDb3JlOjpTV1NlcnZlclJlZ2lzdHJhdGlvbjo6c3RhcnRTY3JpcHRGZXRjaEZvckN1cnJlbnRK
b2IpOgorICAgICAgICAqIHdvcmtlcnMvc2VydmljZS9zZXJ2ZXIvU1dTZXJ2ZXJSZWdpc3RyYXRp
b24uaDoKKwogMjAxNy0wOC0zMSAgRGF2aWQgUXVlc2FkYSAgPGRhdmlkX3F1ZXNhZGFAYXBwbGUu
Y29tPgogCiAgICAgICAgIFdLTmF2aWdhdGlvbkRlbGVnYXRlUHJpdmF0ZSBjbGllbnQgcmVkaXJl
Y3QgU1BJIG5lZWRzIHRvIGJlIGFibGUgdG8gZGV0ZWN0IHJlZGlyZWN0cyBzY2hlZHVsZWQgYmVm
b3JlIHRoZSBkb2N1bWVudCBmaW5pc2hlcyBsb2FkaW5nCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvV2ViQ29yZS9X
ZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggNzY2MzM4YjQ3MTguLjNjYzJh
MzA1NTMyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9q
ZWN0LnBieHByb2oKKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVj
dC5wYnhwcm9qCkBAIC0yMzA1LDYgKzIzMDUsMTAgQEAKIAkJNTE3QTUzNDYxRjUwQzE3RjAwRENE
QzBBIC8qIFNXU2VydmVyV29ya2VyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSA1MTdBNTM0MjFGNTBDMTYxMDBEQ0RDMEEgLyogU1dTZXJ2ZXJXb3JrZXIu
aCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk1MTdB
NTM0RTFGNTRBOEJBMDBEQ0RDMEEgLyogU2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbkRhdGEuY3Bw
IGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTE3QTUzNEIx
RjU0OUQ0QTAwRENEQzBBIC8qIFNlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb25EYXRhLmNwcCAqLzsg
fTsKIAkJNTE3QTUzNEYxRjU0QThCQTAwRENEQzBBIC8qIFNlcnZpY2VXb3JrZXJSZWdpc3RyYXRp
b25EYXRhLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1
MTdBNTM0QzFGNTQ5RDRBMDBEQ0RDMEEgLyogU2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbkRhdGEu
aCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OworCQk1MTdB
NTM1ODFGNTg4OUU4MDBEQ0RDMEEgLyogRmV0Y2hMb2FkZXJDbGllbnQuaCBpbiBIZWFkZXJzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQxNDdFMkI2MUM4OTkxMjYwMEE3RTcx
NSAvKiBGZXRjaExvYWRlckNsaWVudC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFBy
aXZhdGUsICk7IH07IH07CisJCTUxN0E1MzVBMUY1ODg5RUYwMERDREMwQSAvKiBGZXRjaExvYWRl
ci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDE0N0Uy
QjUxQzg5OTEyNjAwQTdFNzE1IC8qIEZldGNoTG9hZGVyLmggKi87IHNldHRpbmdzID0ge0FUVFJJ
QlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKKwkJNTE3QTUzNUIxRjU4OEE0QzAwRENEQzBBIC8q
IEZldGNoQm9keUNvbnN1bWVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSA0MUNGOEJFNTFENDYyMjIwMDA3MDdEQzkgLyogRmV0Y2hCb2R5Q29uc3VtZXIu
aCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OworCQk1MTdB
NTM1RDFGNTg5OUZFMDBEQ0RDMEEgLyogU2VydmljZVdvcmtlckZldGNoUmVzdWx0LmggaW4gSGVh
ZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1MTdBNTM1QzFGNTg5OUYy
MDBEQ0RDMEEgLyogU2VydmljZVdvcmtlckZldGNoUmVzdWx0LmggKi87IHNldHRpbmdzID0ge0FU
VFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJNTE3QTYzQzMxQjc0MzE4NzAwRTdEQ0RD
IC8qIEtleWVkRGVjb2RlckNGLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDUxN0E2M0JGMUI3NDMxN0UwMEU3RENEQyAvKiBLZXllZERlY29kZXJDRi5j
cHAgKi87IH07CiAJCTUxN0E2M0M0MUI3NDMxOEIwMEU3RENEQyAvKiBLZXllZEVuY29kZXJDRi5j
cHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1MTdBNjND
MTFCNzQzMTdFMDBFN0RDREMgLyogS2V5ZWRFbmNvZGVyQ0YuY3BwICovOyB9OwogCQk1MTdBNjND
NTFCNzQzMThGMDBFN0RDREMgLyogS2V5ZWREZWNvZGVyQ0YuaCBpbiBIZWFkZXJzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUxN0E2M0MwMUI3NDMxN0UwMEU3RENEQyAvKiBL
ZXllZERlY29kZXJDRi5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7
IH07IH07CkBAIC0xMDEzMSw2ICsxMDEzNSw3IEBACiAJCTUxN0E1MzQzMUY1MEMxNjEwMERDREMw
QSAvKiBTV1NlcnZlcldvcmtlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBh
dGggPSBTV1NlcnZlcldvcmtlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTUx
N0E1MzRCMUY1NDlENEEwMERDREMwQSAvKiBTZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uRGF0YS5j
cHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBTZXJ2aWNlV29ya2VyUmVn
aXN0cmF0aW9uRGF0YS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTUxN0E1MzRD
MUY1NDlENEEwMERDREMwQSAvKiBTZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uRGF0YS5oICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBTZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uRGF0
YS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk1MTdBNTM1QzFGNTg5OUYyMDBEQ0RD
MEEgLyogU2VydmljZVdvcmtlckZldGNoUmVzdWx0LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMu
aDsgcGF0aCA9IFNlcnZpY2VXb3JrZXJGZXRjaFJlc3VsdC5oOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwogCQk1MTdBNjNCRjFCNzQzMTdFMDBFN0RDREMgLyogS2V5ZWREZWNvZGVyQ0YuY3Bw
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gS2V5ZWREZWNvZGVyQ0YuY3Bw
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1MTdBNjNDMDFCNzQzMTdFMDBFN0RDREMg
LyogS2V5ZWREZWNvZGVyQ0YuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gS2V5
ZWREZWNvZGVyQ0YuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTE3QTYzQzExQjc0
MzE3RTAwRTdEQ0RDIC8qIEtleWVkRW5jb2RlckNGLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Y3BwLmNwcDsgcGF0aCA9IEtleWVkRW5jb2RlckNGLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKQEAgLTE4ODYyLDYgKzE4ODY3LDcgQEAKIAkJCQk1MUYxNzU1ODFGM0VCQzBDMDBDNzQ5
NTAgLyogU2VydmljZVdvcmtlckNvbnRhaW5lci5jcHAgKi8sCiAJCQkJNTFGMTc1NTcxRjNFQkMw
QzAwQzc0OTUwIC8qIFNlcnZpY2VXb3JrZXJDb250YWluZXIuaCAqLywKIAkJCQk1MUYxNzU1NjFG
M0VCQzBDMDBDNzQ5NTAgLyogU2VydmljZVdvcmtlckNvbnRhaW5lci5pZGwgKi8sCisJCQkJNTE3
QTUzNUMxRjU4OTlGMjAwRENEQzBBIC8qIFNlcnZpY2VXb3JrZXJGZXRjaFJlc3VsdC5oICovLAog
CQkJCTUxRjE3NTU1MUYzRUJDMEMwMEM3NDk1MCAvKiBTZXJ2aWNlV29ya2VyR2xvYmFsU2NvcGUu
Y3BwICovLAogCQkJCTUxRjE3NTU0MUYzRUJDMEMwMEM3NDk1MCAvKiBTZXJ2aWNlV29ya2VyR2xv
YmFsU2NvcGUuaCAqLywKIAkJCQk1MUYxNzU1MzFGM0VCQzBDMDBDNzQ5NTAgLyogU2VydmljZVdv
cmtlckdsb2JhbFNjb3BlLmlkbCAqLywKQEAgLTI2ODIxLDYgKzI2ODI3LDcgQEAKIAkJCQkxQThB
NjQ1NjFEMTlGQ0ZDMDBEMEUwMEYgLyogQXBwbGVQYXlQYXltZW50TWV0aG9kU2VsZWN0ZWRFdmVu
dC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJN0M2NTIyRjUxRTAwQTUxNzAwNjc3RjIyIC8qIEFwcGxl
UGF5UGF5bWVudFBhc3MuaCBpbiBIZWFkZXJzICovLAogCQkJCTdDNjU3OUUwMUUwMDc5RjkwMEUz
QTI3QSAvKiBBcHBsZVBheVBheW1lbnRSZXF1ZXN0LmggaW4gSGVhZGVycyAqLywKKwkJCQk1MTdB
NTM1QTFGNTg4OUVGMDBEQ0RDMEEgLyogRmV0Y2hMb2FkZXIuaCBpbiBIZWFkZXJzICovLAogCQkJ
CTFBOEE2NDU5MUQxOUZDRkMwMEQwRTAwRiAvKiBBcHBsZVBheVNlc3Npb24uaCBpbiBIZWFkZXJz
ICovLAogCQkJCTFBNThFODY1MUQxOUQ0RUIwMEMwRUE3MyAvKiBBcHBsZVBheVNlc3Npb25QYXlt
ZW50UmVxdWVzdC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMUE4QTY0NUMxRDE5RkNGQzAwRDBFMDBG
IC8qIEFwcGxlUGF5U2hpcHBpbmdDb250YWN0U2VsZWN0ZWRFdmVudC5oIGluIEhlYWRlcnMgKi8s
CkBAIC0yNzc4OSw2ICsyNzc5Niw3IEBACiAJCQkJOTNGMTk4RTUwODI0NUU1OTAwMUU5QUJDIC8q
IEhUTUxEb2N1bWVudC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJOTc3QjM4NjcxMjI4ODNFOTAwQjgx
RkY4IC8qIEhUTUxEb2N1bWVudFBhcnNlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJOTNGMTk4RTYw
ODI0NUU1OTAwMUU5QUJDIC8qIEhUTUxFbGVtZW50LmggaW4gSGVhZGVycyAqLywKKwkJCQk1MTdB
NTM1ODFGNTg4OUU4MDBEQ0RDMEEgLyogRmV0Y2hMb2FkZXJDbGllbnQuaCBpbiBIZWFkZXJzICov
LAogCQkJCUExN0M4MTIzMEYyQTVDRjcwMDVEQUFFQiAvKiBIVE1MRWxlbWVudEZhY3RvcnkuaCBp
biBIZWFkZXJzICovLAogCQkJCTk3N0IzNzI0MTIyODcyMTcwMEI4MUZGOCAvKiBIVE1MRWxlbWVu
dFN0YWNrLmggaW4gSGVhZGVycyAqLywKIAkJCQlCNTYyREI2MDE3RDNDRDYzMDAxMEFGOTYgLyog
SFRNTEVsZW1lbnRUeXBlSGVscGVycy5oIGluIEhlYWRlcnMgKi8sCkBAIC0yODk0MCw2ICsyODk0
OCw3IEBACiAJCQkJRkE2NTRBNkMxMTA4QUJFRDAwMjYyNkYxIC8qIE1hdGhNTFVuZGVyT3ZlckVs
ZW1lbnQuaCBpbiBIZWFkZXJzICovLAogCQkJCTM3QzczOEVGMUVEQkQ3MUIwMDNGMkIwQiAvKiBN
YXRoTUxVbmtub3duRWxlbWVudC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNDM5MDQ2RUExMkRBMjVF
ODEyQUY4MEFDIC8qIE1hdGhPcGVyYXRvci5oIGluIEhlYWRlcnMgKi8sCisJCQkJNTE3QTUzNUIx
RjU4OEE0QzAwRENEQzBBIC8qIEZldGNoQm9keUNvbnN1bWVyLmggaW4gSGVhZGVycyAqLywKIAkJ
CQk0OUQ1REMyQzBGNDIzQTczMDA4RjIwRkQgLyogTWF0cml4M0RUcmFuc2Zvcm1PcGVyYXRpb24u
aCBpbiBIZWFkZXJzICovLAogCQkJCTQ5RTkxMUM3MEVGODZENDcwMDlEMENBRiAvKiBNYXRyaXhU
cmFuc2Zvcm1PcGVyYXRpb24uaCBpbiBIZWFkZXJzICovLAogCQkJCTVDQkM4REFEMUFBQTMwMjIw
MEUxQzgwMyAvKiBNZWRpYUFjY2Vzc2liaWxpdHlTb2Z0TGluay5oIGluIEhlYWRlcnMgKi8sCkBA
IC0yOTEwMiw2ICsyOTExMSw3IEBACiAJCQkJNjU2RDM3NDMwQURCQTVERTAwQTQ1NTREIC8qIE5l
dHNjYXBlUGx1Z0luU3RyZWFtTG9hZGVyLmggaW4gSGVhZGVycyAqLywKIAkJCQlBMTlEOTM0QjFB
QTExQjFFMDBCNDZDMjQgLyogTmV0d29ya0V4dGVuc2lvbkNvbnRlbnRGaWx0ZXIuaCBpbiBIZWFk
ZXJzICovLAogCQkJCTYyOEQyMTRDMTIxMzFFRDEwMDU1RENGQyAvKiBOZXR3b3JraW5nQ29udGV4
dC5oIGluIEhlYWRlcnMgKi8sCisJCQkJNTE3QTUzNUQxRjU4OTlGRTAwRENEQzBBIC8qIFNlcnZp
Y2VXb3JrZXJGZXRjaFJlc3VsdC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJOEE4MUJGODUxMURDRkQ5
MDAwREEyQjk4IC8qIE5ldHdvcmtMb2FkTWV0cmljcy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNTlD
MjdGMDcxMzhEMjhDRjAwNzlCN0UyIC8qIE5ldHdvcmtSZXNvdXJjZXNEYXRhLmggaW4gSGVhZGVy
cyAqLywKIAkJCQkxQTdGQTYxOTBEREEzQjNBMDAyOEY4QTUgLyogTmV0d29ya1N0YXRlTm90aWZp
ZXIuaCBpbiBIZWFkZXJzICovLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9z
ZXJ2aWNlL1NlcnZpY2VXb3JrZXJDb250YWluZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvd29ya2Vy
cy9zZXJ2aWNlL1NlcnZpY2VXb3JrZXJDb250YWluZXIuY3BwCmluZGV4IDc5YTk3NjBjYjk1Li42
Y2JhNTQ5YjZjNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL1Nl
cnZpY2VXb3JrZXJDb250YWluZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2Vy
dmljZS9TZXJ2aWNlV29ya2VyQ29udGFpbmVyLmNwcApAQCAtMzIsNyArMzIsOSBAQAogI2luY2x1
ZGUgIklETFR5cGVzLmgiCiAjaW5jbHVkZSAiSlNET01Qcm9taXNlRGVmZXJyZWQuaCIKICNpbmNs
dWRlICJKU1NlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb24uaCIKKyNpbmNsdWRlICJMb2dnaW5nLmgi
CiAjaW5jbHVkZSAiTmF2aWdhdG9yQmFzZS5oIgorI2luY2x1ZGUgIlJlc291cmNlRXJyb3IuaCIK
ICNpbmNsdWRlICJTY29wZUd1YXJkLmgiCiAjaW5jbHVkZSAiU2NyaXB0RXhlY3V0aW9uQ29udGV4
dC5oIgogI2luY2x1ZGUgIlNlY3VyaXR5T3JpZ2luLmgiCkBAIC0xODEsNiArMTgzLDM1IEBAIHZv
aWQgU2VydmljZVdvcmtlckNvbnRhaW5lcjo6am9iUmVzb2x2ZWRXaXRoUmVnaXN0cmF0aW9uKFNl
cnZpY2VXb3JrZXJKb2ImIGpvYiwKICAgICBqb2IucHJvbWlzZSgpLnJlc29sdmU8SURMSW50ZXJm
YWNlPFNlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb24+PihyZWdpc3RyYXRpb24uZ2V0KCkpOwogfQog
Cit2b2lkIFNlcnZpY2VXb3JrZXJDb250YWluZXI6OnN0YXJ0U2NyaXB0RmV0Y2hGb3JKb2IoU2Vy
dmljZVdvcmtlckpvYiYgam9iKQoreworICAgIExPRyhTZXJ2aWNlV29ya2VyLCAiU2V2aWNlV29y
a2VyQ29udGFpbmVyICVwIHN0YXJ0aW5nIHNjcmlwdCBmZXRjaCBmb3Igam9iICUiIFBSSXU2NCwg
dGhpcywgam9iLmRhdGEoKS5pZGVudGlmaWVyKCkpOworCisgICAgYXV0byogY29udGV4dCA9IHNj
cmlwdEV4ZWN1dGlvbkNvbnRleHQoKTsKKyAgICBpZiAoIWNvbnRleHQpIHsKKyAgICAgICAgTE9H
X0VSUk9SKCJTZXJ2aWNlV29ya2VyQ29udGFpbmVyOjpqb2JSZXNvbHZlZFdpdGhSZWdpc3RyYXRp
b24gY2FsbGVkIGJ1dCB0aGUgY29udGFpbmVyJ3MgU2NyaXB0RXhlY3V0aW9uQ29udGV4dCBpcyBn
b25lIik7CisgICAgICAgIG1fc3dDb25uZWN0aW9uLT5mYWlsZWRGZXRjaGluZ1NjcmlwdChqb2Is
IHsgZXJyb3JEb21haW5XZWJLaXRJbnRlcm5hbCwgMCwgam9iLmRhdGEoKS5zY3JpcHRVUkwsIEFT
Q0lJTGl0ZXJhbCgiQXR0ZW1wdCB0byBmZXRjaCBzZXJ2aWNlIHdvcmtlciBzY3JpcHQgd2l0aCBu
byBTY3JpcHRFeGVjdXRpb25Db250ZXh0IikgfSk7CisgICAgICAgIGpvYkRpZEZpbmlzaChqb2Ip
OworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgam9iLmZldGNoU2NyaXB0V2l0aENvbnRl
eHQoKmNvbnRleHQpOworfQorCit2b2lkIFNlcnZpY2VXb3JrZXJDb250YWluZXI6OmpvYkZpbmlz
aGVkTG9hZGluZ1NjcmlwdChTZXJ2aWNlV29ya2VySm9iJiBqb2IsIFJlZjxTaGFyZWRCdWZmZXI+
JiYgZGF0YSkKK3sKKyAgICBMT0coU2VydmljZVdvcmtlciwgIlNldmljZVdvcmtlckNvbnRhaW5l
ciAlcCBmaW5pc2hlZCBmZXRjaGluZyBzY3JpcHQgZm9yIGpvYiAlIiBQUkl1NjQsIHRoaXMsIGpv
Yi5kYXRhKCkuaWRlbnRpZmllcigpKTsKKworICAgIG1fc3dDb25uZWN0aW9uLT5maW5pc2hlZEZl
dGNoaW5nU2NyaXB0KGpvYiwgZGF0YS5nZXQoKSk7Cit9CisKK3ZvaWQgU2VydmljZVdvcmtlckNv
bnRhaW5lcjo6am9iRmFpbGVkTG9hZGluZ1NjcmlwdChTZXJ2aWNlV29ya2VySm9iJiBqb2IsIGNv
bnN0IFJlc291cmNlRXJyb3ImIGVycm9yKQoreworICAgIExPRyhTZXJ2aWNlV29ya2VyLCAiU2V2
aWNlV29ya2VyQ29udGFpbmVyICVwIGZhaWxlZCBmZXRjaGluZyBzY3JpcHQgZm9yIGpvYiAlIiBQ
Ukl1NjQsIHRoaXMsIGpvYi5kYXRhKCkuaWRlbnRpZmllcigpKTsKKworICAgIG1fc3dDb25uZWN0
aW9uLT5mYWlsZWRGZXRjaGluZ1NjcmlwdChqb2IsIGVycm9yKTsKK30KKwogdm9pZCBTZXJ2aWNl
V29ya2VyQ29udGFpbmVyOjpqb2JEaWRGaW5pc2goU2VydmljZVdvcmtlckpvYiYgam9iKQogewog
ICAgIGF1dG8gdGFrZW4gPSBtX2pvYk1hcC50YWtlKGpvYi5kYXRhKCkuaWRlbnRpZmllcigpKTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9TZXJ2aWNlV29ya2Vy
Q29udGFpbmVyLmggYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvU2VydmljZVdvcmtl
ckNvbnRhaW5lci5oCmluZGV4IGVjZGZkMTQ0Nzc1Li5lNjQ2YjRjYmY5YyAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL1NlcnZpY2VXb3JrZXJDb250YWluZXIuaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvU2VydmljZVdvcmtlckNvbnRhaW5l
ci5oCkBAIC03Myw2ICs3MywxMCBAQCBwcml2YXRlOgogCiAgICAgdm9pZCBqb2JGYWlsZWRXaXRo
RXhjZXB0aW9uKFNlcnZpY2VXb3JrZXJKb2ImLCBjb25zdCBFeGNlcHRpb24mKSBmaW5hbDsKICAg
ICB2b2lkIGpvYlJlc29sdmVkV2l0aFJlZ2lzdHJhdGlvbihTZXJ2aWNlV29ya2VySm9iJiwgY29u
c3QgU2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbkRhdGEmKSBmaW5hbDsKKyAgICB2b2lkIHN0YXJ0
U2NyaXB0RmV0Y2hGb3JKb2IoU2VydmljZVdvcmtlckpvYiYpIGZpbmFsOworICAgIHZvaWQgam9i
RmluaXNoZWRMb2FkaW5nU2NyaXB0KFNlcnZpY2VXb3JrZXJKb2ImLCBSZWY8U2hhcmVkQnVmZmVy
PiYmKSBmaW5hbDsKKyAgICB2b2lkIGpvYkZhaWxlZExvYWRpbmdTY3JpcHQoU2VydmljZVdvcmtl
ckpvYiYsIGNvbnN0IFJlc291cmNlRXJyb3ImKSBmaW5hbDsKKwogICAgIHZvaWQgam9iRGlkRmlu
aXNoKFNlcnZpY2VXb3JrZXJKb2ImKTsKIAogICAgIHVpbnQ2NF90IGNvbm5lY3Rpb25JZGVudGlm
aWVyKCkgZmluYWw7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2Uv
U2VydmljZVdvcmtlckZldGNoUmVzdWx0LmggYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZp
Y2UvU2VydmljZVdvcmtlckZldGNoUmVzdWx0LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAuLjJhOTNhNDdmMDQ0Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNv
cmUvd29ya2Vycy9zZXJ2aWNlL1NlcnZpY2VXb3JrZXJGZXRjaFJlc3VsdC5oCkBAIC0wLDAgKzEs
NzIgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTcgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJl
c2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5h
cnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVk
IHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICog
MS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBj
b3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9y
bSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisg
KiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0
aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQ
TEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVT
UyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAor
ICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1Mg
Rk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQg
U0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFO
WSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisg
KiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQ
Uk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBV
U0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VW
RVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICog
Q09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNF
IE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBU
SElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBT
VUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworI2lmIEVOQUJMRShTRVJWSUNFX1dP
UktFUikKKworI2luY2x1ZGUgIlJlc291cmNlRXJyb3IuaCIKKyNpbmNsdWRlICJTZXJ2aWNlV29y
a2VyUmVnaXN0cmF0aW9uS2V5LmgiCisjaW5jbHVkZSA8d3RmL1ZlY3Rvci5oPgorCituYW1lc3Bh
Y2UgV2ViQ29yZSB7CisKK3N0cnVjdCBTZXJ2aWNlV29ya2VyRmV0Y2hSZXN1bHQgeworICAgIHVp
bnQ2NF90IGpvYklkZW50aWZpZXI7CisgICAgdWludDY0X3QgY29ubmVjdGlvbklkZW50aWZpZXI7
CisgICAgU2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbktleSByZWdpc3RyYXRpb25LZXk7CisgICAg
VmVjdG9yPHVpbnQ4X3Q+IHNjcmlwdERhdGE7CisgICAgUmVzb3VyY2VFcnJvciBzY3JpcHRFcnJv
cjsKKworICAgIHRlbXBsYXRlPGNsYXNzIEVuY29kZXI+IHZvaWQgZW5jb2RlKEVuY29kZXImKSBj
b25zdDsKKyAgICB0ZW1wbGF0ZTxjbGFzcyBEZWNvZGVyPiBzdGF0aWMgYm9vbCBkZWNvZGUoRGVj
b2RlciYsIFNlcnZpY2VXb3JrZXJGZXRjaFJlc3VsdCYpOworfTsKKwordGVtcGxhdGU8Y2xhc3Mg
RW5jb2Rlcj4KK3ZvaWQgU2VydmljZVdvcmtlckZldGNoUmVzdWx0OjplbmNvZGUoRW5jb2RlciYg
ZW5jb2RlcikgY29uc3QKK3sKKyAgICBlbmNvZGVyIDw8IGpvYklkZW50aWZpZXIgPDwgY29ubmVj
dGlvbklkZW50aWZpZXIgPDwgcmVnaXN0cmF0aW9uS2V5IDw8IHNjcmlwdERhdGEgPDwgc2NyaXB0
RXJyb3I7Cit9CisKK3RlbXBsYXRlPGNsYXNzIERlY29kZXI+Citib29sIFNlcnZpY2VXb3JrZXJG
ZXRjaFJlc3VsdDo6ZGVjb2RlKERlY29kZXImIGRlY29kZXIsIFNlcnZpY2VXb3JrZXJGZXRjaFJl
c3VsdCYgcmVzdWx0KQoreworICAgIGlmICghZGVjb2Rlci5kZWNvZGUocmVzdWx0LmpvYklkZW50
aWZpZXIpKQorICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgaWYgKCFkZWNvZGVyLmRlY29kZShy
ZXN1bHQuY29ubmVjdGlvbklkZW50aWZpZXIpKQorICAgICAgICByZXR1cm4gZmFsc2U7CisgICAg
aWYgKCFkZWNvZGVyLmRlY29kZShyZXN1bHQucmVnaXN0cmF0aW9uS2V5KSkKKyAgICAgICAgcmV0
dXJuIGZhbHNlOworICAgIGlmICghZGVjb2Rlci5kZWNvZGUocmVzdWx0LnNjcmlwdERhdGEpKQor
ICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgaWYgKCFkZWNvZGVyLmRlY29kZShyZXN1bHQuc2Ny
aXB0RXJyb3IpKQorICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICByZXR1cm4gdHJ1ZTsKK30K
KworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYgLy8gRU5BQkxFKFNFUlZJQ0VfV09S
S0VSKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL1NlcnZpY2VX
b3JrZXJKb2IuY3BwIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL1NlcnZpY2VXb3Jr
ZXJKb2IuY3BwCmluZGV4IDQ5ZmIwOGViN2QzLi5iNDFlYWEwMjQ0OCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL1NlcnZpY2VXb3JrZXJKb2IuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9TZXJ2aWNlV29ya2VySm9iLmNwcApAQCAtMjgs
NyArMjgsMTIgQEAKIAogI2lmIEVOQUJMRShTRVJWSUNFX1dPUktFUikKIAorI2luY2x1ZGUgIkZl
dGNoSGVhZGVycy5oIgorI2luY2x1ZGUgIkZldGNoTG9hZGVyLmgiCisjaW5jbHVkZSAiRmV0Y2hS
ZXF1ZXN0LmgiCiAjaW5jbHVkZSAiSlNET01Qcm9taXNlRGVmZXJyZWQuaCIKKyNpbmNsdWRlICJS
ZXNvdXJjZUVycm9yLmgiCisjaW5jbHVkZSAiUmVzb3VyY2VSZXNwb25zZS5oIgogI2luY2x1ZGUg
IlNlcnZpY2VXb3JrZXJKb2JEYXRhLmgiCiAjaW5jbHVkZSAiU2VydmljZVdvcmtlclJlZ2lzdHJh
dGlvbi5oIgogCkBAIC02NCw2ICs2OSw4MCBAQCB2b2lkIFNlcnZpY2VXb3JrZXJKb2I6OnJlc29s
dmVkV2l0aFJlZ2lzdHJhdGlvbihjb25zdCBTZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uRAogICAg
IG1fY2xpZW50LT5qb2JSZXNvbHZlZFdpdGhSZWdpc3RyYXRpb24oKnRoaXMsIGRhdGEpOwogfQog
Cit2b2lkIFNlcnZpY2VXb3JrZXJKb2I6OnN0YXJ0U2NyaXB0RmV0Y2goKQoreworICAgIEFTU0VS
VChjdXJyZW50VGhyZWFkKCkgPT0gbV9jcmVhdGlvblRocmVhZCk7CisgICAgQVNTRVJUKCFtX2Nv
bXBsZXRlZCk7CisKKyAgICBtX2NsaWVudC0+c3RhcnRTY3JpcHRGZXRjaEZvckpvYigqdGhpcyk7
Cit9CisKK3ZvaWQgU2VydmljZVdvcmtlckpvYjo6ZmV0Y2hTY3JpcHRXaXRoQ29udGV4dChTY3Jp
cHRFeGVjdXRpb25Db250ZXh0JiBjb250ZXh0KQoreworICAgIEFTU0VSVChjdXJyZW50VGhyZWFk
KCkgPT0gbV9jcmVhdGlvblRocmVhZCk7CisgICAgQVNTRVJUKCFtX2NvbXBsZXRlZCk7CisKKyAg
ICBtX2ZldGNoTG9hZGVyID0gc3RkOjptYWtlX3VuaXF1ZTxGZXRjaExvYWRlcj4oKnRoaXMsIG51
bGxwdHIpOworCisgICAgLy8gRklYTUU6IFRoaXMgRmV0Y2ggcmVxdWVzdCBpcyBzZXQgdXAgaW5j
b3JyZWN0bHkgYW5kIHdpdGhvdXQgcHJvcGVyIGNhcmUuCisgICAgLy8gVGhlIFNlcnZpY2VXb3Jr
ZXJzIHNwZWMgc3BlY2lmaWNzIG1hbnkgZGV0YWlscyB0byBhcHBseSBoZXJlLgorCisgICAgYXV0
byBmZXRjaEhlYWRlcnMgPSBGZXRjaEhlYWRlcnM6OmNyZWF0ZSgpOworICAgIGF1dG8gcmVmZXJy
ZXIgPSBtX2pvYkRhdGEuY2xpZW50Q3JlYXRpb25VUkwuc3RyaW5nKCk7CisgICAgYXV0byBmZXRj
aFJlcXVlc3QgPSBGZXRjaFJlcXVlc3Q6OmNyZWF0ZShjb250ZXh0LCBzdGQ6Om51bGxvcHQsIFdU
Rk1vdmUoZmV0Y2hIZWFkZXJzKSwgeyBtX2pvYkRhdGEuc2NyaXB0VVJMIH0sIHsgfSwgV1RGTW92
ZShyZWZlcnJlcikpOworCisgICAgbV9mZXRjaExvYWRlci0+c3RhcnQoY29udGV4dCwgZmV0Y2hS
ZXF1ZXN0KTsKK30KKwordm9pZCBTZXJ2aWNlV29ya2VySm9iOjpkaWRSZWNlaXZlUmVzcG9uc2Uo
Y29uc3QgUmVzb3VyY2VSZXNwb25zZSYgcmVzcG9uc2UpCit7CisgICAgQVNTRVJUKGN1cnJlbnRU
aHJlYWQoKSA9PSBtX2NyZWF0aW9uVGhyZWFkKTsKKyAgICBBU1NFUlQoIW1fY29tcGxldGVkKTsK
KyAgICBBU1NFUlQobV9mZXRjaExvYWRlcik7CisgICAgQVNTRVJUKCFtX3NjcmlwdERhdGEpOwor
CisgICAgbV9sYXN0UmVzcG9uc2UgPSByZXNwb25zZTsKKworICAgIGlmIChyZXNwb25zZS5odHRw
U3RhdHVzQ29kZSgpIDwgMjAwIHx8IHJlc3BvbnNlLmh0dHBTdGF0dXNDb2RlKCkgPiAzOTkpIHsK
KyAgICAgICAgYXV0byBtZXNzYWdlID0gbWFrZVN0cmluZyhBU0NJSUxpdGVyYWwoIlNlcnZpY2VX
b3JrZXIgc2NyaXB0IG5ldHdvcmsgZmV0Y2ggZmFpbGVkIHdpdGggSFRUUCBzdGF0dXMgY29kZSAi
KSwgU3RyaW5nOjpudW1iZXIocmVzcG9uc2UuaHR0cFN0YXR1c0NvZGUoKSkpOworICAgICAgICBk
aWRGYWlsKHsgZXJyb3JEb21haW5XZWJLaXRJbnRlcm5hbCwgMCwgbV9sYXN0UmVzcG9uc2UudXJs
KCksIG1lc3NhZ2UgfSk7CisgICAgfQorfQorCit2b2lkIFNlcnZpY2VXb3JrZXJKb2I6OmRpZFJl
Y2VpdmVEYXRhKGNvbnN0IGNoYXIqIGRhdGEsIHNpemVfdCBzaXplKQoreworICAgIEFTU0VSVChj
dXJyZW50VGhyZWFkKCkgPT0gbV9jcmVhdGlvblRocmVhZCk7CisgICAgQVNTRVJUKCFtX2NvbXBs
ZXRlZCk7CisgICAgQVNTRVJUKG1fZmV0Y2hMb2FkZXIpOworCisgICAgaWYgKCFtX3NjcmlwdERh
dGEpCisgICAgICAgIG1fc2NyaXB0RGF0YSA9IFNoYXJlZEJ1ZmZlcjo6Y3JlYXRlKCk7CisKKyAg
ICBtX3NjcmlwdERhdGEtPmdldCgpLmFwcGVuZChkYXRhLCBzaXplKTsKK30KKwordm9pZCBTZXJ2
aWNlV29ya2VySm9iOjpkaWRTdWNjZWVkKCkKK3sKKyAgICBBU1NFUlQoY3VycmVudFRocmVhZCgp
ID09IG1fY3JlYXRpb25UaHJlYWQpOworICAgIEFTU0VSVCghbV9jb21wbGV0ZWQpOworICAgIEFT
U0VSVChtX2ZldGNoTG9hZGVyKTsKKworICAgIGlmICghbV9zY3JpcHREYXRhKQorICAgICAgICBt
X3NjcmlwdERhdGEgPSBTaGFyZWRCdWZmZXI6OmNyZWF0ZSgpOworICAgIG1fY2xpZW50LT5qb2JG
aW5pc2hlZExvYWRpbmdTY3JpcHQoKnRoaXMsIFdURk1vdmUoKm1fc2NyaXB0RGF0YSkpOworICAg
IG1fZmV0Y2hMb2FkZXIgPSBudWxscHRyOworfQorCit2b2lkIFNlcnZpY2VXb3JrZXJKb2I6OmRp
ZEZhaWwoY29uc3QgUmVzb3VyY2VFcnJvciYgZXJyb3IpCit7CisgICAgQVNTRVJUKGN1cnJlbnRU
aHJlYWQoKSA9PSBtX2NyZWF0aW9uVGhyZWFkKTsKKyAgICBBU1NFUlQoIW1fY29tcGxldGVkKTsK
KyAgICBBU1NFUlQobV9mZXRjaExvYWRlcik7CisKKyAgICBtX2NsaWVudC0+am9iRmFpbGVkTG9h
ZGluZ1NjcmlwdCgqdGhpcywgZXJyb3IpOworICAgIG1fZmV0Y2hMb2FkZXIgPSBudWxscHRyOwor
fQorCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAKICNlbmRpZiAvLyBFTkFCTEUoU0VSVklDRV9X
T1JLRVIpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvU2Vydmlj
ZVdvcmtlckpvYi5oIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL1NlcnZpY2VXb3Jr
ZXJKb2IuaAppbmRleCBkOTdhYzFhNDMzNS4uNzFmNjc3OThlMzUgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9TZXJ2aWNlV29ya2VySm9iLmgKKysrIGIvU291cmNl
L1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL1NlcnZpY2VXb3JrZXJKb2IuaApAQCAtMjcsNiArMjcs
OSBAQAogCiAjaWYgRU5BQkxFKFNFUlZJQ0VfV09SS0VSKQogCisjaW5jbHVkZSAiRmV0Y2hMb2Fk
ZXIuaCIKKyNpbmNsdWRlICJGZXRjaExvYWRlckNsaWVudC5oIgorI2luY2x1ZGUgIlJlc291cmNl
UmVzcG9uc2UuaCIKICNpbmNsdWRlICJTZXJ2aWNlV29ya2VySm9iQ2xpZW50LmgiCiAjaW5jbHVk
ZSAiU2VydmljZVdvcmtlckpvYkRhdGEuaCIKICNpbmNsdWRlIDx3dGYvUmVmUHRyLmg+CkBAIC0z
OCwxMCArNDEsMTEgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiBjbGFzcyBEZWZlcnJlZFByb21p
c2U7CiBjbGFzcyBFeGNlcHRpb247CitjbGFzcyBTY3JpcHRFeGVjdXRpb25Db250ZXh0OwogZW51
bSBjbGFzcyBTZXJ2aWNlV29ya2VySm9iVHlwZTsKIHN0cnVjdCBTZXJ2aWNlV29ya2VyUmVnaXN0
cmF0aW9uRGF0YTsKIAotY2xhc3MgU2VydmljZVdvcmtlckpvYiA6IHB1YmxpYyBUaHJlYWRTYWZl
UmVmQ291bnRlZDxTZXJ2aWNlV29ya2VySm9iPiB7CitjbGFzcyBTZXJ2aWNlV29ya2VySm9iIDog
cHVibGljIFRocmVhZFNhZmVSZWZDb3VudGVkPFNlcnZpY2VXb3JrZXJKb2I+LCBwdWJsaWMgRmV0
Y2hMb2FkZXJDbGllbnQgewogcHVibGljOgogICAgIHN0YXRpYyBSZWY8U2VydmljZVdvcmtlckpv
Yj4gY3JlYXRlKFNlcnZpY2VXb3JrZXJKb2JDbGllbnQmIGNsaWVudCwgUmVmPERlZmVycmVkUHJv
bWlzZT4mJiBwcm9taXNlLCBTZXJ2aWNlV29ya2VySm9iRGF0YSYmIGpvYkRhdGEpCiAgICAgewpA
QCAtNTIsMTMgKzU2LDIyIEBAIHB1YmxpYzoKIAogICAgIHZvaWQgZmFpbGVkV2l0aEV4Y2VwdGlv
bihjb25zdCBFeGNlcHRpb24mKTsKICAgICB2b2lkIHJlc29sdmVkV2l0aFJlZ2lzdHJhdGlvbihj
b25zdCBTZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uRGF0YSYpOworICAgIHZvaWQgc3RhcnRTY3Jp
cHRGZXRjaCgpOwogCiAgICAgU2VydmljZVdvcmtlckpvYkRhdGEgZGF0YSgpIGNvbnN0IHsgcmV0
dXJuIG1fam9iRGF0YTsgfQogICAgIERlZmVycmVkUHJvbWlzZSYgcHJvbWlzZSgpIHsgcmV0dXJu
IG1fcHJvbWlzZS5nZXQoKTsgfQogCisgICAgdm9pZCBmZXRjaFNjcmlwdFdpdGhDb250ZXh0KFNj
cmlwdEV4ZWN1dGlvbkNvbnRleHQmKTsKKwogcHJpdmF0ZToKICAgICBTZXJ2aWNlV29ya2VySm9i
KFNlcnZpY2VXb3JrZXJKb2JDbGllbnQmLCBSZWY8RGVmZXJyZWRQcm9taXNlPiYmLCBTZXJ2aWNl
V29ya2VySm9iRGF0YSYmKTsKIAorICAgIC8vIEZldGNoTG9hZGVyQ2xpZW50CisgICAgdm9pZCBk
aWRSZWNlaXZlUmVzcG9uc2UoY29uc3QgUmVzb3VyY2VSZXNwb25zZSYpIGZpbmFsOworICAgIHZv
aWQgZGlkUmVjZWl2ZURhdGEoY29uc3QgY2hhciosIHNpemVfdCkgZmluYWw7CisgICAgdm9pZCBk
aWRTdWNjZWVkKCkgZmluYWw7CisgICAgdm9pZCBkaWRGYWlsKGNvbnN0IFJlc291cmNlRXJyb3Im
KSBmaW5hbDsKKwogICAgIFJlZjxTZXJ2aWNlV29ya2VySm9iQ2xpZW50PiBtX2NsaWVudDsKICAg
ICBTZXJ2aWNlV29ya2VySm9iRGF0YSBtX2pvYkRhdGE7CiAgICAgUmVmPERlZmVycmVkUHJvbWlz
ZT4gbV9wcm9taXNlOwpAQCAtNjYsNiArNzksOSBAQCBwcml2YXRlOgogICAgIGJvb2wgbV9jb21w
bGV0ZWQgeyBmYWxzZSB9OwogCiAgICAgUmVmPFJ1bkxvb3A+IG1fcnVuTG9vcCB7IFJ1bkxvb3A6
OmN1cnJlbnQoKSB9OworICAgIHN0ZDo6dW5pcXVlX3B0cjxGZXRjaExvYWRlcj4gbV9mZXRjaExv
YWRlcjsKKyAgICBSZXNvdXJjZVJlc3BvbnNlIG1fbGFzdFJlc3BvbnNlOworICAgIHN0ZDo6b3B0
aW9uYWw8UmVmPFNoYXJlZEJ1ZmZlcj4+IG1fc2NyaXB0RGF0YTsKIAogI2lmICFBU1NFUlRfRElT
QUJMRUQKICAgICBUaHJlYWRJZGVudGlmaWVyIG1fY3JlYXRpb25UaHJlYWQgeyBjdXJyZW50VGhy
ZWFkKCkgfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9TZXJ2
aWNlV29ya2VySm9iQ2xpZW50LmggYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvU2Vy
dmljZVdvcmtlckpvYkNsaWVudC5oCmluZGV4IDYyODBmMGNhYWQ3Li44ZTViNDRlNzY1MCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL1NlcnZpY2VXb3JrZXJKb2JD
bGllbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvU2VydmljZVdvcmtl
ckpvYkNsaWVudC5oCkBAIC0zMCw3ICszMCw5IEBACiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNs
YXNzIEV4Y2VwdGlvbjsKK2NsYXNzIFJlc291cmNlRXJyb3I7CiBjbGFzcyBTZXJ2aWNlV29ya2Vy
Sm9iOworY2xhc3MgU2hhcmVkQnVmZmVyOwogc3RydWN0IFNlcnZpY2VXb3JrZXJSZWdpc3RyYXRp
b25EYXRhOwogCiBjbGFzcyBTZXJ2aWNlV29ya2VySm9iQ2xpZW50IHsKQEAgLTM5LDYgKzQxLDkg
QEAgcHVibGljOgogCiAgICAgdmlydHVhbCB2b2lkIGpvYkZhaWxlZFdpdGhFeGNlcHRpb24oU2Vy
dmljZVdvcmtlckpvYiYsIGNvbnN0IEV4Y2VwdGlvbiYpID0gMDsKICAgICB2aXJ0dWFsIHZvaWQg
am9iUmVzb2x2ZWRXaXRoUmVnaXN0cmF0aW9uKFNlcnZpY2VXb3JrZXJKb2ImLCBjb25zdCBTZXJ2
aWNlV29ya2VyUmVnaXN0cmF0aW9uRGF0YSYpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgc3RhcnRT
Y3JpcHRGZXRjaEZvckpvYihTZXJ2aWNlV29ya2VySm9iJikgPSAwOworICAgIHZpcnR1YWwgdm9p
ZCBqb2JGaW5pc2hlZExvYWRpbmdTY3JpcHQoU2VydmljZVdvcmtlckpvYiYsIFJlZjxTaGFyZWRC
dWZmZXI+JiYpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgam9iRmFpbGVkTG9hZGluZ1NjcmlwdChT
ZXJ2aWNlV29ya2VySm9iJiwgY29uc3QgUmVzb3VyY2VFcnJvciYpID0gMDsKIAogICAgIHZpcnR1
YWwgdWludDY0X3QgY29ubmVjdGlvbklkZW50aWZpZXIoKSA9IDA7CiAKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9zZXJ2ZXIvU1dDbGllbnRDb25uZWN0aW9uLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9zZXJ2ZXIvU1dDbGllbnRDb25uZWN0
aW9uLmNwcAppbmRleCA0NzAyYmJiNzI4MS4uOGQ5NDQ3N2Q5OTIgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9zZXJ2ZXIvU1dDbGllbnRDb25uZWN0aW9uLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2Uvc2VydmVyL1NXQ2xpZW50Q29ubmVj
dGlvbi5jcHAKQEAgLTI5LDYgKzI5LDcgQEAKICNpZiBFTkFCTEUoU0VSVklDRV9XT1JLRVIpCiAK
ICNpbmNsdWRlICJFeGNlcHRpb25EYXRhLmgiCisjaW5jbHVkZSAiU2VydmljZVdvcmtlckZldGNo
UmVzdWx0LmgiCiAjaW5jbHVkZSAiU2VydmljZVdvcmtlckpvYkRhdGEuaCIKIAogbmFtZXNwYWNl
IFdlYkNvcmUgewpAQCAtNDksNiArNTAsMjIgQEAgdm9pZCBTV0NsaWVudENvbm5lY3Rpb246OnNj
aGVkdWxlSm9iKFNlcnZpY2VXb3JrZXJKb2ImIGpvYikKICAgICBzY2hlZHVsZUpvYkluU2VydmVy
KGpvYi5kYXRhKCkpOwogfQogCit2b2lkIFNXQ2xpZW50Q29ubmVjdGlvbjo6ZmluaXNoZWRGZXRj
aGluZ1NjcmlwdChTZXJ2aWNlV29ya2VySm9iJiBqb2IsIFNoYXJlZEJ1ZmZlciYgZGF0YSkKK3sK
KyAgICBBU1NFUlQobV9zY2hlZHVsZWRKb2JzLmdldChqb2IuZGF0YSgpLmlkZW50aWZpZXIoKSkg
PT0gJmpvYik7CisKKyAgICBWZWN0b3I8dWludDhfdD4gdmVjdG9yOworICAgIHZlY3Rvci5hcHBl
bmQocmVpbnRlcnByZXRfY2FzdDxjb25zdCB1aW50OF90ICo+KGRhdGEuZGF0YSgpKSwgZGF0YS5z
aXplKCkpOworICAgIGZpbmlzaEZldGNoaW5nU2NyaXB0SW5TZXJ2ZXIoeyBqb2IuZGF0YSgpLmlk
ZW50aWZpZXIoKSwgam9iLmRhdGEoKS5jb25uZWN0aW9uSWRlbnRpZmllcigpLCBqb2IuZGF0YSgp
LnJlZ2lzdHJhdGlvbktleSgpLCB2ZWN0b3IsIHsgfSB9KTsKK30KKwordm9pZCBTV0NsaWVudENv
bm5lY3Rpb246OmZhaWxlZEZldGNoaW5nU2NyaXB0KFNlcnZpY2VXb3JrZXJKb2ImIGpvYiwgY29u
c3QgUmVzb3VyY2VFcnJvciYgZXJyb3IpCit7CisgICAgQVNTRVJUKG1fc2NoZWR1bGVkSm9icy5n
ZXQoam9iLmRhdGEoKS5pZGVudGlmaWVyKCkpID09ICZqb2IpOworCisgICAgZmluaXNoRmV0Y2hp
bmdTY3JpcHRJblNlcnZlcih7IGpvYi5kYXRhKCkuaWRlbnRpZmllcigpLCBqb2IuZGF0YSgpLmNv
bm5lY3Rpb25JZGVudGlmaWVyKCksIGpvYi5kYXRhKCkucmVnaXN0cmF0aW9uS2V5KCksIHsgfSwg
ZXJyb3IgfSk7Cit9CisKIHZvaWQgU1dDbGllbnRDb25uZWN0aW9uOjpqb2JSZWplY3RlZEluU2Vy
dmVyKHVpbnQ2NF90IGpvYklkZW50aWZpZXIsIGNvbnN0IEV4Y2VwdGlvbkRhdGEmIGV4Y2VwdGlv
bkRhdGEpCiB7CiAgICAgYXV0byBqb2IgPSBtX3NjaGVkdWxlZEpvYnMudGFrZShqb2JJZGVudGlm
aWVyKTsKQEAgLTcxLDYgKzg4LDIyIEBAIHZvaWQgU1dDbGllbnRDb25uZWN0aW9uOjpqb2JSZXNv
bHZlZEluU2VydmVyKHVpbnQ2NF90IGpvYklkZW50aWZpZXIsIGNvbnN0IFNlcnZpCiAgICAgam9i
LT5yZXNvbHZlZFdpdGhSZWdpc3RyYXRpb24ocmVnaXN0cmF0aW9uRGF0YSk7CiB9CiAKK3ZvaWQg
U1dDbGllbnRDb25uZWN0aW9uOjpzdGFydFNjcmlwdEZldGNoRm9yU2VydmVyKHVpbnQ2NF90IGpv
YklkZW50aWZpZXIpCit7CisgICAgYXV0byBqb2IgPSBtX3NjaGVkdWxlZEpvYnMuZ2V0KGpvYklk
ZW50aWZpZXIpOworICAgIGlmICgham9iKSB7CisgICAgICAgIExPR19FUlJPUigiSm9iICUiIFBS
SXU2NCAiIGluc3RydWN0ZWQgdG8gc3RhcnQgZmV0Y2ggZnJvbSBzZXJ2ZXIsIGJ1dCBqb2Igd2Fz
IG5vdCBmb3VuZCIsIGpvYklkZW50aWZpZXIpOworCisgICAgICAgIC8vIEZJWE1FOiBTaG91bGQg
bWVzc2FnZSBiYWNrIHRvIHRoZSBzZXJ2ZXIgaGVyZSB0byBzaWduYWwgZmFpbHVyZSB0byBmZXRj
aCwKKyAgICAgICAgLy8gYnV0IHdlIGN1cnJlbnRseSBuZWVkIHRoZSByZWdpc3RyYXRpb24ga2V5
IHRvIGRvIHNvLCBhbmQgZG9uJ3QgaGF2ZSBpdCBoZXJlLgorICAgICAgICAvLyBJbiB0aGUgZnV0
dXJlIHdlJ2xsIHJlZmFjdG9yIHRvIGhhdmUgYSBnbG9iYWwsIGNyb3NzLXByb2Nlc3Mgam9iIGlk
ZW50aWZpZXIgdGhhdCBjYW4gYmUgdXNlZCB0byBvdmVyY29tZSB0aGlzLgorCisgICAgICAgIHJl
dHVybjsKKyAgICB9CisKKyAgICBqb2ItPnN0YXJ0U2NyaXB0RmV0Y2goKTsKK30KKwogfSAvLyBu
YW1lc3BhY2UgV2ViQ29yZQogCiAjZW5kaWYgLy8gRU5BQkxFKFNFUlZJQ0VfV09SS0VSKQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL3NlcnZlci9TV0NsaWVudENv
bm5lY3Rpb24uaCBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9zZXJ2ZXIvU1dDbGll
bnRDb25uZWN0aW9uLmgKaW5kZXggYjkxZTA0Mjg4MmQuLjNiODU0ZWI0Y2M3IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2Uvc2VydmVyL1NXQ2xpZW50Q29ubmVjdGlv
bi5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9zZXJ2ZXIvU1dDbGllbnRD
b25uZWN0aW9uLmgKQEAgLTMzLDcgKzMzLDEwIEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAor
Y2xhc3MgUmVzb3VyY2VFcnJvcjsKK2NsYXNzIFNoYXJlZEJ1ZmZlcjsKIHN0cnVjdCBFeGNlcHRp
b25EYXRhOworc3RydWN0IFNlcnZpY2VXb3JrZXJGZXRjaFJlc3VsdDsKIHN0cnVjdCBTZXJ2aWNl
V29ya2VyUmVnaXN0cmF0aW9uRGF0YTsKIAogY2xhc3MgU1dDbGllbnRDb25uZWN0aW9uIDogcHVi
bGljIFRocmVhZFNhZmVSZWZDb3VudGVkPFNXQ2xpZW50Q29ubmVjdGlvbj4gewpAQCAtNDIsMTUg
KzQ1LDE5IEBAIHB1YmxpYzoKICAgICBXRUJDT1JFX0VYUE9SVCB2aXJ0dWFsIH5TV0NsaWVudENv
bm5lY3Rpb24oKTsKIAogICAgIHZvaWQgc2NoZWR1bGVKb2IoU2VydmljZVdvcmtlckpvYiYpOwor
ICAgIHZvaWQgZmluaXNoZWRGZXRjaGluZ1NjcmlwdChTZXJ2aWNlV29ya2VySm9iJiwgU2hhcmVk
QnVmZmVyJik7CisgICAgdm9pZCBmYWlsZWRGZXRjaGluZ1NjcmlwdChTZXJ2aWNlV29ya2VySm9i
JiwgY29uc3QgUmVzb3VyY2VFcnJvciYpOwogCiAgICAgdmlydHVhbCB1aW50NjRfdCBpZGVudGlm
aWVyKCkgY29uc3QgPSAwOwogCiBwcm90ZWN0ZWQ6CiAgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBq
b2JSZWplY3RlZEluU2VydmVyKHVpbnQ2NF90IGpvYklkZW50aWZpZXIsIGNvbnN0IEV4Y2VwdGlv
bkRhdGEmKTsKICAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIGpvYlJlc29sdmVkSW5TZXJ2ZXIodWlu
dDY0X3Qgam9iSWRlbnRpZmllciwgY29uc3QgU2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbkRhdGEm
KTsKKyAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHN0YXJ0U2NyaXB0RmV0Y2hGb3JTZXJ2ZXIodWlu
dDY0X3Qgam9iSWRlbnRpZmllcik7CiAKIHByaXZhdGU6CiAgICAgdmlydHVhbCB2b2lkIHNjaGVk
dWxlSm9iSW5TZXJ2ZXIoY29uc3QgU2VydmljZVdvcmtlckpvYkRhdGEmKSA9IDA7CisgICAgdmly
dHVhbCB2b2lkIGZpbmlzaEZldGNoaW5nU2NyaXB0SW5TZXJ2ZXIoY29uc3QgU2VydmljZVdvcmtl
ckZldGNoUmVzdWx0JikgPSAwOwogCiAgICAgSGFzaE1hcDx1aW50NjRfdCwgUmVmUHRyPFNlcnZp
Y2VXb3JrZXJKb2I+PiBtX3NjaGVkdWxlZEpvYnM7CiB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvd29ya2Vycy9zZXJ2aWNlL3NlcnZlci9TV1NlcnZlci5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS93b3JrZXJzL3NlcnZpY2Uvc2VydmVyL1NXU2VydmVyLmNwcAppbmRleCA0MDE5MzQwYjhiZC4u
NmY4MWFiMjY5MTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9z
ZXJ2ZXIvU1dTZXJ2ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9z
ZXJ2ZXIvU1dTZXJ2ZXIuY3BwCkBAIC0zMiw2ICszMiw3IEBACiAjaW5jbHVkZSAiRXhjZXB0aW9u
RGF0YS5oIgogI2luY2x1ZGUgIkxvZ2dpbmcuaCIKICNpbmNsdWRlICJTV1NlcnZlclJlZ2lzdHJh
dGlvbi5oIgorI2luY2x1ZGUgIlNlcnZpY2VXb3JrZXJGZXRjaFJlc3VsdC5oIgogI2luY2x1ZGUg
IlNlcnZpY2VXb3JrZXJKb2JEYXRhLmgiCiAjaW5jbHVkZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+
CiAKQEAgLTcyLDYgKzczLDExIEBAIHZvaWQgU1dTZXJ2ZXI6OkNvbm5lY3Rpb246OnNjaGVkdWxl
Sm9iSW5TZXJ2ZXIoY29uc3QgU2VydmljZVdvcmtlckpvYkRhdGEmIGpvYkRhCiAgICAgbV9zZXJ2
ZXIuc2NoZWR1bGVKb2Ioam9iRGF0YSk7CiB9CiAKK3ZvaWQgU1dTZXJ2ZXI6OkNvbm5lY3Rpb246
OmZpbmlzaEZldGNoaW5nU2NyaXB0SW5TZXJ2ZXIoY29uc3QgU2VydmljZVdvcmtlckZldGNoUmVz
dWx0JiByZXN1bHQpCit7CisgICAgbV9zZXJ2ZXIuc2NyaXB0RmV0Y2hGaW5pc2hlZChyZXN1bHQp
OworfQorCiBTV1NlcnZlcjo6U1dTZXJ2ZXIoKQogewogICAgIG1fdGFza1RocmVhZCA9IFRocmVh
ZDo6Y3JlYXRlKEFTQ0lJTGl0ZXJhbCgiU2VydmljZVdvcmtlciBUYXNrIFRocmVhZCIpLCBbdGhp
c10gewpAQCAtMTEyLDYgKzExOCwyOSBAQCB2b2lkIFNXU2VydmVyOjpyZXNvbHZlSm9iKGNvbnN0
IFNlcnZpY2VXb3JrZXJKb2JEYXRhJiBqb2JEYXRhLCBjb25zdCBTZXJ2aWNlV29yawogICAgIGNv
bm5lY3Rpb24tPnJlc29sdmVKb2JJbkNsaWVudChqb2JEYXRhLmlkZW50aWZpZXIoKSwgcmVnaXN0
cmF0aW9uRGF0YSk7CiB9CiAKK3ZvaWQgU1dTZXJ2ZXI6OnN0YXJ0U2NyaXB0RmV0Y2goY29uc3Qg
U2VydmljZVdvcmtlckpvYkRhdGEmIGpvYkRhdGEpCit7CisgICAgTE9HKFNlcnZpY2VXb3JrZXIs
ICJTZXJ2ZXIgaXNzdWluZyBzdGFydFNjcmlwdEZldGNoIGZvciBjdXJyZW50IGpvYiAlIiBQUkl1
NjQgIi0lIiBQUkl1NjQgIiBpbiBjbGllbnQiLCBqb2JEYXRhLmNvbm5lY3Rpb25JZGVudGlmaWVy
KCksIGpvYkRhdGEuaWRlbnRpZmllcigpKTsKKyAgICBhdXRvKiBjb25uZWN0aW9uID0gbV9jb25u
ZWN0aW9ucy5nZXQoam9iRGF0YS5jb25uZWN0aW9uSWRlbnRpZmllcigpKTsKKyAgICBpZiAoIWNv
bm5lY3Rpb24pCisgICAgICAgIHJldHVybjsKKworICAgIGNvbm5lY3Rpb24tPnN0YXJ0U2NyaXB0
RmV0Y2hJbkNsaWVudChqb2JEYXRhLmlkZW50aWZpZXIoKSk7Cit9CisKK3ZvaWQgU1dTZXJ2ZXI6
OnNjcmlwdEZldGNoRmluaXNoZWQoY29uc3QgU2VydmljZVdvcmtlckZldGNoUmVzdWx0JiByZXN1
bHQpCit7CisgICAgTE9HKFNlcnZpY2VXb3JrZXIsICJTZXJ2ZXIgaGFuZGxpbmcgc2NyaXB0RmV0
Y2hGaW5pc2hlZCBmb3IgY3VycmVudCBqb2IgJSIgUFJJdTY0ICItJSIgUFJJdTY0ICIgaW4gY2xp
ZW50IiwgcmVzdWx0LmNvbm5lY3Rpb25JZGVudGlmaWVyLCByZXN1bHQuam9iSWRlbnRpZmllcik7
CisKKyAgICBBU1NFUlQobV9jb25uZWN0aW9ucy5jb250YWlucyhyZXN1bHQuY29ubmVjdGlvbklk
ZW50aWZpZXIpKTsKKworICAgIGF1dG8gcmVnaXN0cmF0aW9uID0gbV9yZWdpc3RyYXRpb25zLmdl
dChyZXN1bHQucmVnaXN0cmF0aW9uS2V5KTsKKyAgICBpZiAoIXJlZ2lzdHJhdGlvbikKKyAgICAg
ICAgcmV0dXJuOworCisgICAgcmVnaXN0cmF0aW9uLT5zY3JpcHRGZXRjaEZpbmlzaGVkKHJlc3Vs
dCk7Cit9CisKIHZvaWQgU1dTZXJ2ZXI6OnRhc2tUaHJlYWRFbnRyeVBvaW50KCkKIHsKICAgICBB
U1NFUlQoIWlzTWFpblRocmVhZCgpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3dvcmtl
cnMvc2VydmljZS9zZXJ2ZXIvU1dTZXJ2ZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2Vy
dmljZS9zZXJ2ZXIvU1dTZXJ2ZXIuaAppbmRleCA5YmQ0MGY3NDY2Ni4uYTFmYzVkMzM5ODkgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9zZXJ2ZXIvU1dTZXJ2ZXIu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2Uvc2VydmVyL1NXU2VydmVyLmgK
QEAgLTQzLDYgKzQzLDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiBjbGFzcyBTV1NlcnZlclJl
Z2lzdHJhdGlvbjsKIHN0cnVjdCBFeGNlcHRpb25EYXRhOworc3RydWN0IFNlcnZpY2VXb3JrZXJG
ZXRjaFJlc3VsdDsKIHN0cnVjdCBTZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uRGF0YTsKIAogY2xh
c3MgU1dTZXJ2ZXIgewpAQCAtNTcsMTAgKzU4LDEyIEBAIHB1YmxpYzoKICAgICAgICAgU1dTZXJ2
ZXImIHNlcnZlcigpIHsgcmV0dXJuIG1fc2VydmVyOyB9CiAKICAgICAgICAgV0VCQ09SRV9FWFBP
UlQgdm9pZCBzY2hlZHVsZUpvYkluU2VydmVyKGNvbnN0IFNlcnZpY2VXb3JrZXJKb2JEYXRhJik7
CisgICAgICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgZmluaXNoRmV0Y2hpbmdTY3JpcHRJblNlcnZl
cihjb25zdCBTZXJ2aWNlV29ya2VyRmV0Y2hSZXN1bHQmKTsKIAogICAgIHByaXZhdGU6CiAgICAg
ICAgIHZpcnR1YWwgdm9pZCByZWplY3RKb2JJbkNsaWVudCh1aW50NjRfdCBqb2JJZGVudGlmaWVy
LCBjb25zdCBFeGNlcHRpb25EYXRhJikgPSAwOwogICAgICAgICB2aXJ0dWFsIHZvaWQgcmVzb2x2
ZUpvYkluQ2xpZW50KHVpbnQ2NF90IGpvYklkZW50aWZpZXIsIGNvbnN0IFNlcnZpY2VXb3JrZXJS
ZWdpc3RyYXRpb25EYXRhJikgPSAwOworICAgICAgICB2aXJ0dWFsIHZvaWQgc3RhcnRTY3JpcHRG
ZXRjaEluQ2xpZW50KHVpbnQ2NF90IGpvYklkZW50aWZpZXIpID0gMDsKIAogICAgICAgICBTV1Nl
cnZlciYgbV9zZXJ2ZXI7CiAgICAgfTsKQEAgLTcxLDYgKzc0LDggQEAgcHVibGljOgogICAgIHZv
aWQgc2NoZWR1bGVKb2IoY29uc3QgU2VydmljZVdvcmtlckpvYkRhdGEmKTsKICAgICB2b2lkIHJl
amVjdEpvYihjb25zdCBTZXJ2aWNlV29ya2VySm9iRGF0YSYsIGNvbnN0IEV4Y2VwdGlvbkRhdGEm
KTsKICAgICB2b2lkIHJlc29sdmVKb2IoY29uc3QgU2VydmljZVdvcmtlckpvYkRhdGEmLCBjb25z
dCBTZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uRGF0YSYpOworICAgIHZvaWQgc3RhcnRTY3JpcHRG
ZXRjaChjb25zdCBTZXJ2aWNlV29ya2VySm9iRGF0YSYpOworCiAgICAgdm9pZCBwb3N0VGFzayhD
cm9zc1RocmVhZFRhc2smJik7CiAgICAgdm9pZCBwb3N0VGFza1JlcGx5KENyb3NzVGhyZWFkVGFz
ayYmKTsKIApAQCAtODEsNiArODYsOCBAQCBwcml2YXRlOgogICAgIHZvaWQgdGFza1RocmVhZEVu
dHJ5UG9pbnQoKTsKICAgICB2b2lkIGhhbmRsZVRhc2tSZXBsaWVzT25NYWluVGhyZWFkKCk7CiAK
KyAgICB2b2lkIHNjcmlwdEZldGNoRmluaXNoZWQoY29uc3QgU2VydmljZVdvcmtlckZldGNoUmVz
dWx0Jik7CisKICAgICBIYXNoTWFwPHVpbnQ2NF90LCBDb25uZWN0aW9uKj4gbV9jb25uZWN0aW9u
czsKICAgICBIYXNoTWFwPFNlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb25LZXksIHN0ZDo6dW5pcXVl
X3B0cjxTV1NlcnZlclJlZ2lzdHJhdGlvbj4+IG1fcmVnaXN0cmF0aW9uczsKIApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL3NlcnZlci9TV1NlcnZlclJlZ2lzdHJh
dGlvbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2Uvc2VydmVyL1NXU2VydmVy
UmVnaXN0cmF0aW9uLmNwcAppbmRleCAxMDUyYjliYWRjZC4uNzQzMmFmYTZlYzggMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9zZXJ2ZXIvU1dTZXJ2ZXJSZWdpc3Ry
YXRpb24uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9zZXJ2ZXIvU1dT
ZXJ2ZXJSZWdpc3RyYXRpb24uY3BwCkBAIC0zMiw2ICszMiw3IEBACiAjaW5jbHVkZSAiU1dTZXJ2
ZXIuaCIKICNpbmNsdWRlICJTV1NlcnZlcldvcmtlci5oIgogI2luY2x1ZGUgIlNlY3VyaXR5T3Jp
Z2luLmgiCisjaW5jbHVkZSAiU2VydmljZVdvcmtlckZldGNoUmVzdWx0LmgiCiAjaW5jbHVkZSAi
U2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbkRhdGEuaCIKICNpbmNsdWRlICJXb3JrZXJUeXBlLmgi
CiAKQEAgLTYzLDYgKzY0LDIyIEBAIHZvaWQgU1dTZXJ2ZXJSZWdpc3RyYXRpb246OmVucXVldWVK
b2IoY29uc3QgU2VydmljZVdvcmtlckpvYkRhdGEmIGpvYkRhdGEpCiAgICAgICAgIG1fam9iVGlt
ZXIuc3RhcnRPbmVTaG90KDBfcyk7CiB9CiAKK3ZvaWQgU1dTZXJ2ZXJSZWdpc3RyYXRpb246OnNj
cmlwdEZldGNoRmluaXNoZWQoY29uc3QgU2VydmljZVdvcmtlckZldGNoUmVzdWx0JiByZXN1bHQp
Cit7CisgICAgQVNTRVJUKG1fY3VycmVudEpvYiAmJiBtX2N1cnJlbnRKb2ItPmlkZW50aWZpZXIo
KSA9PSByZXN1bHQuam9iSWRlbnRpZmllcik7CisKKyAgICAvLyBGSVhNRTogV2UgZmV0Y2hlZCB0
aGUgc2NyaXB0IGNvbnRlbnRzIGJ1dCBkb24ndCBkbyBhbnl0aGluZyB3aXRoIHRoZW0geWV0Lgor
ICAgIC8vIFRoZXNlIGVycm9ycyBhcmUgZm9yIHRlc3RpbmcgdGhlIGN1cnJlbnQgc3RhdGUgb2Yg
dGhlIGZlYXR1cmUuCisKKyAgICBTdHJpbmcgbWVzc2FnZTsKKyAgICBpZiAocmVzdWx0LnNjcmlw
dEVycm9yLmlzTnVsbCgpKQorICAgICAgICBtZXNzYWdlID0gbWFrZVN0cmluZygiU2NyaXB0IFVS
TCAiLCBtX2N1cnJlbnRKb2ItPnNjcmlwdFVSTC5zdHJpbmcoKSwgIiBmZXRjaGVkIHdpdGggIiwg
U3RyaW5nOjpudW1iZXIocmVzdWx0LnNjcmlwdERhdGEuc2l6ZSgpKSwgIiBieXRlcywgYnV0IHdl
J3JlIG5vdCB1c2luZyB0aGUgcmVzdWx0IHlldCIpOworICAgIGVsc2UKKyAgICAgICAgbWVzc2Fn
ZSA9IG1ha2VTdHJpbmcoIlNjcmlwdCBVUkwgIiwgbV9jdXJyZW50Sm9iLT5zY3JpcHRVUkwuc3Ry
aW5nKCksICIgZmV0Y2ggcmVzdWx0ZWQgaW4gZXJyb3I6ICIsIHJlc3VsdC5zY3JpcHRFcnJvci5s
b2NhbGl6ZWREZXNjcmlwdGlvbigpKTsKKworICAgIHJlamVjdEN1cnJlbnRKb2IoRXhjZXB0aW9u
RGF0YSB7IFVua25vd25FcnJvciwgbWVzc2FnZSB9KTsKK30KKwogdm9pZCBTV1NlcnZlclJlZ2lz
dHJhdGlvbjo6c3RhcnROZXh0Sm9iKCkKIHsKICAgICBBU1NFUlQoaXNNYWluVGhyZWFkKCkpOwpA
QCAtMTQ5LDkgKzE2Niw3IEBAIHZvaWQgU1dTZXJ2ZXJSZWdpc3RyYXRpb246OnJ1blVwZGF0ZUpv
Yihjb25zdCBTZXJ2aWNlV29ya2VySm9iRGF0YSYgam9iKQogICAgIGlmIChuZXdlc3RXb3JrZXIg
JiYgIWVxdWFsSWdub3JpbmdGcmFnbWVudElkZW50aWZpZXIoam9iLnNjcmlwdFVSTCwgbmV3ZXN0
V29ya2VyLT5zY3JpcHRVUkwoKSkpCiAgICAgICAgIHJldHVybiByZWplY3RXaXRoRXhjZXB0aW9u
T25NYWluVGhyZWFkKEV4Y2VwdGlvbkRhdGEgeyBUeXBlRXJyb3IsIEFTQ0lJTGl0ZXJhbCgiQ2Fu
bm90IHVwZGF0ZSBhIHNlcnZpY2Ugd29ya2VyIHdpdGggYSByZXF1ZXN0ZWQgc2NyaXB0IFVSTCB3
aG9zZSBuZXdlc3Qgd29ya2VyIGhhcyBhIGRpZmZlcmVudCBzY3JpcHQgVVJMIikgfSk7CiAKLSAg
ICAvLyBGSVhNRTogQXQgdGhpcyBwb2ludCB3ZSBhcmUgcmVhZHkgdG8gYWN0dWFsbHkgZmV0Y2gg
dGhlIHNjcmlwdCBmb3IgdGhlIHdvcmtlciBpbiB0aGUgcmVnaXN0ZXJpbmcgY29udGV4dC4KLSAg
ICAvLyBGb3Igbm93IHdlJ3JlIHN0aWxsIGhhcmQgY29kaW5nIHRoZSBzYW1lIHJlamVjdGlvbiB3
ZSBoYXZlIHNvIGZhci4KLSAgICByZWplY3RXaXRoRXhjZXB0aW9uT25NYWluVGhyZWFkKEV4Y2Vw
dGlvbkRhdGEgeyBVbmtub3duRXJyb3IsIEFTQ0lJTGl0ZXJhbCgic2VydmljZVdvcmtlciBqb2Ig
c2NoZWR1bGluZyBpcyBub3QgeWV0IGltcGxlbWVudGVkIikgfSk7CisgICAgc3RhcnRTY3JpcHRG
ZXRjaEZyb21NYWluVGhyZWFkKCk7CiB9CiAKIHZvaWQgU1dTZXJ2ZXJSZWdpc3RyYXRpb246OnJl
amVjdFdpdGhFeGNlcHRpb25Pbk1haW5UaHJlYWQoY29uc3QgRXhjZXB0aW9uRGF0YSYgZXhjZXB0
aW9uKQpAQCAtMTY2LDYgKzE4MSwxMiBAQCB2b2lkIFNXU2VydmVyUmVnaXN0cmF0aW9uOjpyZXNv
bHZlV2l0aFJlZ2lzdHJhdGlvbk9uTWFpblRocmVhZCgpCiAgICAgbV9zZXJ2ZXIucG9zdFRhc2tS
ZXBseShjcmVhdGVDcm9zc1RocmVhZFRhc2soKnRoaXMsICZTV1NlcnZlclJlZ2lzdHJhdGlvbjo6
cmVzb2x2ZUN1cnJlbnRKb2IsIGRhdGEoKSkpOwogfQogCit2b2lkIFNXU2VydmVyUmVnaXN0cmF0
aW9uOjpzdGFydFNjcmlwdEZldGNoRnJvbU1haW5UaHJlYWQoKQoreworICAgIEFTU0VSVCghaXNN
YWluVGhyZWFkKCkpOworICAgIG1fc2VydmVyLnBvc3RUYXNrUmVwbHkoY3JlYXRlQ3Jvc3NUaHJl
YWRUYXNrKCp0aGlzLCAmU1dTZXJ2ZXJSZWdpc3RyYXRpb246OnN0YXJ0U2NyaXB0RmV0Y2hGb3JD
dXJyZW50Sm9iKSk7Cit9CisKIHZvaWQgU1dTZXJ2ZXJSZWdpc3RyYXRpb246OnJlamVjdEN1cnJl
bnRKb2IoY29uc3QgRXhjZXB0aW9uRGF0YSYgZXhjZXB0aW9uRGF0YSkKIHsKICAgICBBU1NFUlQo
aXNNYWluVGhyZWFkKCkpOwpAQCAtMTg2LDYgKzIwNywxNCBAQCB2b2lkIFNXU2VydmVyUmVnaXN0
cmF0aW9uOjpyZXNvbHZlQ3VycmVudEpvYihjb25zdCBTZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9u
RGF0YQogICAgIGZpbmlzaEN1cnJlbnRKb2IoKTsKIH0KIAordm9pZCBTV1NlcnZlclJlZ2lzdHJh
dGlvbjo6c3RhcnRTY3JpcHRGZXRjaEZvckN1cnJlbnRKb2IoKQoreworICAgIEFTU0VSVChpc01h
aW5UaHJlYWQoKSk7CisgICAgQVNTRVJUKG1fY3VycmVudEpvYik7CisKKyAgICBtX3NlcnZlci5z
dGFydFNjcmlwdEZldGNoKCptX2N1cnJlbnRKb2IpOworfQorCiB2b2lkIFNXU2VydmVyUmVnaXN0
cmF0aW9uOjpmaW5pc2hDdXJyZW50Sm9iKCkKIHsKICAgICBBU1NFUlQobV9jdXJyZW50Sm9iKTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9zZXJ2ZXIvU1dTZXJ2
ZXJSZWdpc3RyYXRpb24uaCBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9zZXJ2ZXIv
U1dTZXJ2ZXJSZWdpc3RyYXRpb24uaAppbmRleCA5YjZlYWJmMmZhMy4uZjc2ODU0NjNkZTcgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9zZXJ2ZXIvU1dTZXJ2ZXJS
ZWdpc3RyYXRpb24uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2Uvc2VydmVy
L1NXU2VydmVyUmVnaXN0cmF0aW9uLmgKQEAgLTM4LDYgKzM4LDcgQEAgbmFtZXNwYWNlIFdlYkNv
cmUgewogY2xhc3MgU1dTZXJ2ZXI7CiBjbGFzcyBTV1NlcnZlcldvcmtlcjsKIHN0cnVjdCBFeGNl
cHRpb25EYXRhOworc3RydWN0IFNlcnZpY2VXb3JrZXJGZXRjaFJlc3VsdDsKIAogY2xhc3MgU1dT
ZXJ2ZXJSZWdpc3RyYXRpb24gOiBwdWJsaWMgVGhyZWFkU2FmZUlkZW50aWZpZWQ8U1dTZXJ2ZXJS
ZWdpc3RyYXRpb24+IHsKIHB1YmxpYzoKQEAgLTQ2LDYgKzQ3LDcgQEAgcHVibGljOgogICAgIH5T
V1NlcnZlclJlZ2lzdHJhdGlvbigpOwogCiAgICAgdm9pZCBlbnF1ZXVlSm9iKGNvbnN0IFNlcnZp
Y2VXb3JrZXJKb2JEYXRhJik7CisgICAgdm9pZCBzY3JpcHRGZXRjaEZpbmlzaGVkKGNvbnN0IFNl
cnZpY2VXb3JrZXJGZXRjaFJlc3VsdCYpOwogCiAgICAgU2VydmljZVdvcmtlclJlZ2lzdHJhdGlv
bkRhdGEgZGF0YSgpIGNvbnN0OwogCkBAIC01NCw2ICs1Niw3IEBAIHByaXZhdGU6CiAgICAgdm9p
ZCBzdGFydE5leHRKb2IoKTsKICAgICB2b2lkIHJlamVjdEN1cnJlbnRKb2IoY29uc3QgRXhjZXB0
aW9uRGF0YSYpOwogICAgIHZvaWQgcmVzb2x2ZUN1cnJlbnRKb2IoY29uc3QgU2VydmljZVdvcmtl
clJlZ2lzdHJhdGlvbkRhdGEmKTsKKyAgICB2b2lkIHN0YXJ0U2NyaXB0RmV0Y2hGb3JDdXJyZW50
Sm9iKCk7CiAgICAgdm9pZCBmaW5pc2hDdXJyZW50Sm9iKCk7CiAKICAgICB2b2lkIHJ1blJlZ2lz
dGVySm9iKGNvbnN0IFNlcnZpY2VXb3JrZXJKb2JEYXRhJik7CkBAIC02MSw2ICs2NCw3IEBAIHBy
aXZhdGU6CiAKICAgICB2b2lkIHJlamVjdFdpdGhFeGNlcHRpb25Pbk1haW5UaHJlYWQoY29uc3Qg
RXhjZXB0aW9uRGF0YSYpOwogICAgIHZvaWQgcmVzb2x2ZVdpdGhSZWdpc3RyYXRpb25Pbk1haW5U
aHJlYWQoKTsKKyAgICB2b2lkIHN0YXJ0U2NyaXB0RmV0Y2hGcm9tTWFpblRocmVhZCgpOwogICAg
IGJvb2wgaXNFbXB0eSgpOwogICAgIFNXU2VydmVyV29ya2VyKiBnZXROZXdlc3RXb3JrZXIoKTsK
IApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZwppbmRleCBkMGU2M2Q4YTUzMi4uOGM1M2IyMzliY2QgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMg
KzEsMjAgQEAKKzIwMTctMDgtMzEgIEJyYWR5IEVpZHNvbiAgPGJlaWRzb25AYXBwbGUuY29tPgor
CisgICAgICAgIEFkZCAoZW50aXJlbHkgaW5jb3JyZWN0KSBmZXRjaGluZyBvZiBTZXJ2aWNlV29y
a2VyIHNjcmlwdHMuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD0xNzYxNzkKKworICAgICAgICBSZXZpZXdlZCBieSBBbmR5IEVzdGVzLgorCisgICAgICAg
ICogU3RvcmFnZVByb2Nlc3MvU2VydmljZVdvcmtlci9XZWJTV1NlcnZlckNvbm5lY3Rpb24uY3Bw
OgorICAgICAgICAoV2ViS2l0OjpXZWJTV1NlcnZlckNvbm5lY3Rpb246OnN0YXJ0U2NyaXB0RmV0
Y2hJbkNsaWVudCk6CisgICAgICAgICogU3RvcmFnZVByb2Nlc3MvU2VydmljZVdvcmtlci9XZWJT
V1NlcnZlckNvbm5lY3Rpb24uaDoKKyAgICAgICAgKiBTdG9yYWdlUHJvY2Vzcy9TZXJ2aWNlV29y
a2VyL1dlYlNXU2VydmVyQ29ubmVjdGlvbi5tZXNzYWdlcy5pbjoKKworICAgICAgICAqIFdlYlBy
b2Nlc3MvU3RvcmFnZS9XZWJTV0NsaWVudENvbm5lY3Rpb24uY3BwOgorICAgICAgICAoV2ViS2l0
OjpXZWJTV0NsaWVudENvbm5lY3Rpb246OmZpbmlzaEZldGNoaW5nU2NyaXB0SW5TZXJ2ZXIpOgor
ICAgICAgICAqIFdlYlByb2Nlc3MvU3RvcmFnZS9XZWJTV0NsaWVudENvbm5lY3Rpb24uaDoKKyAg
ICAgICAgKiBXZWJQcm9jZXNzL1N0b3JhZ2UvV2ViU1dDbGllbnRDb25uZWN0aW9uLm1lc3NhZ2Vz
LmluOgorCiAyMDE3LTA4LTMxICBEYXZpZCBRdWVzYWRhICA8ZGF2aWRfcXVlc2FkYUBhcHBsZS5j
b20+CiAKICAgICAgICAgV0tOYXZpZ2F0aW9uRGVsZWdhdGVQcml2YXRlIGNsaWVudCByZWRpcmVj
dCBTUEkgbmVlZHMgdG8gYmUgYWJsZSB0byBkZXRlY3QgcmVkaXJlY3RzIHNjaGVkdWxlZCBiZWZv
cmUgdGhlIGRvY3VtZW50IGZpbmlzaGVzIGxvYWRpbmcKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvU3RvcmFnZVByb2Nlc3MvU2VydmljZVdvcmtlci9XZWJTV1NlcnZlckNvbm5lY3Rpb24uY3Bw
IGIvU291cmNlL1dlYktpdC9TdG9yYWdlUHJvY2Vzcy9TZXJ2aWNlV29ya2VyL1dlYlNXU2VydmVy
Q29ubmVjdGlvbi5jcHAKaW5kZXggZGEyMTVmMWI3ZjIuLmQ4ZTZjMjQ1ZjRlIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L1N0b3JhZ2VQcm9jZXNzL1NlcnZpY2VXb3JrZXIvV2ViU1dTZXJ2ZXJD
b25uZWN0aW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1N0b3JhZ2VQcm9jZXNzL1NlcnZpY2VX
b3JrZXIvV2ViU1dTZXJ2ZXJDb25uZWN0aW9uLmNwcApAQCAtMjgsNiArMjgsNyBAQAogCiAjaWYg
RU5BQkxFKFNFUlZJQ0VfV09SS0VSKQogCisjaW5jbHVkZSAiRGF0YVJlZmVyZW5jZS5oIgogI2lu
Y2x1ZGUgIkxvZ2dpbmcuaCIKICNpbmNsdWRlICJTdG9yYWdlVG9XZWJQcm9jZXNzQ29ubmVjdGlv
bk1lc3NhZ2VzLmgiCiAjaW5jbHVkZSAiV2ViUHJvY2Vzcy5oIgpAQCAtNzAsNiArNzEsMTEgQEAg
dm9pZCBXZWJTV1NlcnZlckNvbm5lY3Rpb246OnJlc29sdmVKb2JJbkNsaWVudCh1aW50NjRfdCBq
b2JJZGVudGlmaWVyLCBjb25zdCBTZXIKICAgICBzZW5kKE1lc3NhZ2VzOjpXZWJTV0NsaWVudENv
bm5lY3Rpb246OkpvYlJlc29sdmVkSW5TZXJ2ZXIoam9iSWRlbnRpZmllciwgcmVnaXN0cmF0aW9u
RGF0YSkpOwogfQogCit2b2lkIFdlYlNXU2VydmVyQ29ubmVjdGlvbjo6c3RhcnRTY3JpcHRGZXRj
aEluQ2xpZW50KHVpbnQ2NF90IGpvYklkZW50aWZpZXIpCit7CisgICAgc2VuZChNZXNzYWdlczo6
V2ViU1dDbGllbnRDb25uZWN0aW9uOjpTdGFydFNjcmlwdEZldGNoRm9yU2VydmVyKGpvYklkZW50
aWZpZXIpKTsKK30KKwogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CiAKICNlbmRpZiAvLyBFTkFCTEUo
U0VSVklDRV9XT1JLRVIpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1N0b3JhZ2VQcm9jZXNz
L1NlcnZpY2VXb3JrZXIvV2ViU1dTZXJ2ZXJDb25uZWN0aW9uLmggYi9Tb3VyY2UvV2ViS2l0L1N0
b3JhZ2VQcm9jZXNzL1NlcnZpY2VXb3JrZXIvV2ViU1dTZXJ2ZXJDb25uZWN0aW9uLmgKaW5kZXgg
Yzg3OTI1MTRlZDcuLmIzY2U3NmM5NWU5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1N0b3Jh
Z2VQcm9jZXNzL1NlcnZpY2VXb3JrZXIvV2ViU1dTZXJ2ZXJDb25uZWN0aW9uLmgKKysrIGIvU291
cmNlL1dlYktpdC9TdG9yYWdlUHJvY2Vzcy9TZXJ2aWNlV29ya2VyL1dlYlNXU2VydmVyQ29ubmVj
dGlvbi5oCkBAIC01MSw2ICs1MSw3IEBAIHByaXZhdGU6CiAgICAgLy8gSW1wbGVtZW50IFNXU2Vy
dmVyOjpDb25uZWN0aW9uCiAgICAgdm9pZCByZWplY3RKb2JJbkNsaWVudCh1aW50NjRfdCBqb2JJ
ZGVudGlmaWVyLCBjb25zdCBXZWJDb3JlOjpFeGNlcHRpb25EYXRhJikgZmluYWw7CiAgICAgdm9p
ZCByZXNvbHZlSm9iSW5DbGllbnQodWludDY0X3Qgam9iSWRlbnRpZmllciwgY29uc3QgV2ViQ29y
ZTo6U2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbkRhdGEmKSBmaW5hbDsKKyAgICB2b2lkIHN0YXJ0
U2NyaXB0RmV0Y2hJbkNsaWVudCh1aW50NjRfdCBqb2JJZGVudGlmaWVyKSBmaW5hbDsKIAogICAg
IElQQzo6Q29ubmVjdGlvbiogbWVzc2FnZVNlbmRlckNvbm5lY3Rpb24oKSBmaW5hbCB7IHJldHVy
biBtX2Nvbm5lY3Rpb24ucHRyKCk7IH0KICAgICB1aW50NjRfdCBtZXNzYWdlU2VuZGVyRGVzdGlu
YXRpb25JRCgpIGZpbmFsIHsgcmV0dXJuIGlkZW50aWZpZXIoKTsgfQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9TdG9yYWdlUHJvY2Vzcy9TZXJ2aWNlV29ya2VyL1dlYlNXU2VydmVyQ29ubmVj
dGlvbi5tZXNzYWdlcy5pbiBiL1NvdXJjZS9XZWJLaXQvU3RvcmFnZVByb2Nlc3MvU2VydmljZVdv
cmtlci9XZWJTV1NlcnZlckNvbm5lY3Rpb24ubWVzc2FnZXMuaW4KaW5kZXggMDU3MWM0ZDYyZGMu
LmU0Y2ZiOTYwNWE2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1N0b3JhZ2VQcm9jZXNzL1Nl
cnZpY2VXb3JrZXIvV2ViU1dTZXJ2ZXJDb25uZWN0aW9uLm1lc3NhZ2VzLmluCisrKyBiL1NvdXJj
ZS9XZWJLaXQvU3RvcmFnZVByb2Nlc3MvU2VydmljZVdvcmtlci9XZWJTV1NlcnZlckNvbm5lY3Rp
b24ubWVzc2FnZXMuaW4KQEAgLTI1LDYgKzI1LDcgQEAKIG1lc3NhZ2VzIC0+IFdlYlNXU2VydmVy
Q29ubmVjdGlvbiB7CiAgICAgIyBXaGVuIHBvc3NpYmxlLCB0aGVzZSBtZXNzYWdlcyBjYW4gYmUg
aW1wbGVtZW50ZWQgZGlyZWN0bHkgYnkgV2ViQ29yZTo6U1dDbGllbnRDb25uZWN0aW9uCiAgICAg
U2NoZWR1bGVKb2JJblNlcnZlcihzdHJ1Y3QgV2ViQ29yZTo6U2VydmljZVdvcmtlckpvYkRhdGEg
am9iRGF0YSkKKyAgICBGaW5pc2hGZXRjaGluZ1NjcmlwdEluU2VydmVyKHN0cnVjdCBXZWJDb3Jl
OjpTZXJ2aWNlV29ya2VyRmV0Y2hSZXN1bHQgcmVzdWx0KQogfQogCiAjZW5kaWYgLy8gRU5BQkxF
KFNFUlZJQ0VfV09SS0VSKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1N0
b3JhZ2UvV2ViU1dDbGllbnRDb25uZWN0aW9uLmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9TdG9yYWdlL1dlYlNXQ2xpZW50Q29ubmVjdGlvbi5jcHAKaW5kZXggMTgyNjQ5YTY2MmMuLmJi
M2RiNmI1MzgwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvU3RvcmFnZS9X
ZWJTV0NsaWVudENvbm5lY3Rpb24uY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9T
dG9yYWdlL1dlYlNXQ2xpZW50Q29ubmVjdGlvbi5jcHAKQEAgLTMwLDcgKzMwLDkgQEAKIAogI2lu
Y2x1ZGUgIkxvZ2dpbmcuaCIKICNpbmNsdWRlICJTdG9yYWdlVG9XZWJQcm9jZXNzQ29ubmVjdGlv
bk1lc3NhZ2VzLmgiCisjaW5jbHVkZSAiV2ViQ29yZUFyZ3VtZW50Q29kZXJzLmgiCiAjaW5jbHVk
ZSAiV2ViU1dTZXJ2ZXJDb25uZWN0aW9uTWVzc2FnZXMuaCIKKyNpbmNsdWRlIDxXZWJDb3JlL1Nl
cnZpY2VXb3JrZXJGZXRjaFJlc3VsdC5oPgogI2luY2x1ZGUgPFdlYkNvcmUvU2VydmljZVdvcmtl
ckpvYkRhdGEuaD4KIAogdXNpbmcgbmFtZXNwYWNlIFBBTDsKQEAgLTU2LDYgKzU4LDExIEBAIHZv
aWQgV2ViU1dDbGllbnRDb25uZWN0aW9uOjpzY2hlZHVsZUpvYkluU2VydmVyKGNvbnN0IFNlcnZp
Y2VXb3JrZXJKb2JEYXRhJiBqb2JECiAgICAgc2VuZChNZXNzYWdlczo6V2ViU1dTZXJ2ZXJDb25u
ZWN0aW9uOjpTY2hlZHVsZUpvYkluU2VydmVyKGpvYkRhdGEpKTsKIH0KIAordm9pZCBXZWJTV0Ns
aWVudENvbm5lY3Rpb246OmZpbmlzaEZldGNoaW5nU2NyaXB0SW5TZXJ2ZXIoY29uc3QgU2Vydmlj
ZVdvcmtlckZldGNoUmVzdWx0JiByZXN1bHQpCit7CisgICAgc2VuZChNZXNzYWdlczo6V2ViU1dT
ZXJ2ZXJDb25uZWN0aW9uOjpGaW5pc2hGZXRjaGluZ1NjcmlwdEluU2VydmVyKHJlc3VsdCkpOwor
fQorCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKIAogI2VuZGlmIC8vIEVOQUJMRShTRVJWSUNFX1dP
UktFUikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9TdG9yYWdlL1dlYlNX
Q2xpZW50Q29ubmVjdGlvbi5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1N0b3JhZ2UvV2Vi
U1dDbGllbnRDb25uZWN0aW9uLmgKaW5kZXggNTFkZTRiYmI2NjMuLjQ0YWY3NzkxOWQ3IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvU3RvcmFnZS9XZWJTV0NsaWVudENvbm5l
Y3Rpb24uaAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvU3RvcmFnZS9XZWJTV0NsaWVu
dENvbm5lY3Rpb24uaApAQCAtNDgsNiArNDgsNyBAQCBwdWJsaWM6CiAgICAgdWludDY0X3QgaWRl
bnRpZmllcigpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIG1faWRlbnRpZmllcjsgfQogCiAgICAgdm9p
ZCBzY2hlZHVsZUpvYkluU2VydmVyKGNvbnN0IFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJKb2JEYXRh
JikgZmluYWw7CisgICAgdm9pZCBmaW5pc2hGZXRjaGluZ1NjcmlwdEluU2VydmVyKGNvbnN0IFdl
YkNvcmU6OlNlcnZpY2VXb3JrZXJGZXRjaFJlc3VsdCYpIGZpbmFsOwogCiAgICAgdm9pZCBkaXNj
b25uZWN0ZWRGcm9tV2ViUHJvY2VzcygpOwogICAgIHZvaWQgZGlkUmVjZWl2ZU1lc3NhZ2UoSVBD
OjpDb25uZWN0aW9uJiwgSVBDOjpEZWNvZGVyJikgZmluYWw7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvU3RvcmFnZS9XZWJTV0NsaWVudENvbm5lY3Rpb24ubWVzc2FnZXMu
aW4gYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvU3RvcmFnZS9XZWJTV0NsaWVudENvbm5lY3Rp
b24ubWVzc2FnZXMuaW4KaW5kZXggYWRlZjk5YWVmMDkuLjQwZjc3MzBjODY2IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvU3RvcmFnZS9XZWJTV0NsaWVudENvbm5lY3Rpb24u
bWVzc2FnZXMuaW4KKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1N0b3JhZ2UvV2ViU1dD
bGllbnRDb25uZWN0aW9uLm1lc3NhZ2VzLmluCkBAIC0yNiw2ICsyNiw3IEBAIG1lc3NhZ2VzIC0+
IFdlYlNXQ2xpZW50Q29ubmVjdGlvbiB7CiAgICAgIyBXaGVuIHBvc3NpYmxlLCB0aGVzZSBtZXNz
YWdlcyBjYW4gYmUgaW1wbGVtZW50ZWQgZGlyZWN0bHkgYnkgV2ViQ29yZTo6U1dTZXJ2ZXI6OkNv
bm5lY3Rpb24KICAgICBKb2JSZWplY3RlZEluU2VydmVyKHVpbnQ2NF90IGlkZW50aWZpZXIsIHN0
cnVjdCBXZWJDb3JlOjpFeGNlcHRpb25EYXRhIGV4Y2VwdGlvbikKICAgICBKb2JSZXNvbHZlZElu
U2VydmVyKHVpbnQ2NF90IGlkZW50aWZpZXIsIHN0cnVjdCBXZWJDb3JlOjpTZXJ2aWNlV29ya2Vy
UmVnaXN0cmF0aW9uRGF0YSByZWdpc3RyYXRpb24pCisgICAgU3RhcnRTY3JpcHRGZXRjaEZvclNl
cnZlcih1aW50NjRfdCBqb2JJZGVudGlmaWVyKQogfQogCiAjZW5kaWYgLy8gRU5BQkxFKFNFUlZJ
Q0VfV09SS0VSKQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>322863</attachid>
            <date>2017-10-05 11:10:05 -0700</date>
            <delta_ts>2017-10-05 12:56:23 -0700</delta_ts>
            <desc>New patch</desc>
            <filename>pat</filename>
            <type>text/plain</type>
            <size>54835</size>
            <attacher name="Brady Eidson">beidson</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCA0ZjQ4ZTM0NWQ3NS4uNDhlYmI3MjNjZWUgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3Rz
L0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNiBAQAor
MjAxNy0xMC0wNSAgQnJhZHkgRWlkc29uICA8YmVpZHNvbkBhcHBsZS5jb20+CisKKyAgICAgICAg
QWRkIChlbnRpcmVseSBpbmNvcnJlY3QpIGZldGNoaW5nIG9mIFNlcnZpY2VXb3JrZXIgc2NyaXB0
cy4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE3NjE3
OQorCisgICAgICAgIFJldmlld2VkIGJ5IEFuZHkgRXN0ZXMuCisKKyAgICAgICAgKiBodHRwL3Rl
c3RzL3dvcmtlcnMvc2VydmljZS9iYXNpYy1yZWdpc3Rlci1leGNlcHRpb25zLWV4cGVjdGVkLnR4
dDoKKyAgICAgICAgKiBodHRwL3Rlc3RzL3dvcmtlcnMvc2VydmljZS9iYXNpYy1yZWdpc3Rlci1l
eHBlY3RlZC50eHQ6CisgICAgICAgICogaHR0cC90ZXN0cy93b3JrZXJzL3NlcnZpY2UvcmVzb3Vy
Y2VzL2Jhc2ljLXJlZ2lzdGVyLWV4Y2VwdGlvbnMuanM6CisgICAgICAgICogaHR0cC90ZXN0cy93
b3JrZXJzL3NlcnZpY2UvcmVzb3VyY2VzL2Jhc2ljLXJlZ2lzdGVyLmpzOgorICAgICAgICAqIGh0
dHAvdGVzdHMvd29ya2Vycy9zZXJ2aWNlL3Jlc291cmNlcy9yZWdpc3RyYXRpb24tdGFzay1xdWV1
ZS1zY2hlZHVsaW5nLTEuanM6CisKIDIwMTctMDktMTkgIFphbGFuIEJ1anRhcyAgPHphbGFuQGFw
cGxlLmNvbT4KIAogICAgICAgICBEbyBub3QgbXV0YXRlIFJlbmRlclRleHQgY29udGVudCBkdXJp
bmcgbGF5b3V0LgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93b3JrZXJzL3Nl
cnZpY2UvYmFzaWMtcmVnaXN0ZXItZXhjZXB0aW9ucy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0
cy9odHRwL3Rlc3RzL3dvcmtlcnMvc2VydmljZS9iYXNpYy1yZWdpc3Rlci1leGNlcHRpb25zLWV4
cGVjdGVkLnR4dAppbmRleCBkZjI5ZDI1MjI3My4uMzRmNjQ5NmRlNzEgMTAwNjQ0Ci0tLSBhL0xh
eW91dFRlc3RzL2h0dHAvdGVzdHMvd29ya2Vycy9zZXJ2aWNlL2Jhc2ljLXJlZ2lzdGVyLWV4Y2Vw
dGlvbnMtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvd29ya2Vycy9z
ZXJ2aWNlL2Jhc2ljLXJlZ2lzdGVyLWV4Y2VwdGlvbnMtZXhwZWN0ZWQudHh0CkBAIC0xLDkgKzEs
MTAgQEAKLUNPTlNPTEUgTUVTU0FHRTogbGluZSAxMDogUmVnaXN0cmF0aW9uIGZhaWxlZCB3aXRo
IGVycm9yOiBUeXBlRXJyb3I6IHNlcnZpY2VXb3JrZXIucmVnaXN0ZXIoKSBjYW5ub3QgYmUgY2Fs
bGVkIHdpdGggYW4gZW1wdHkgc2NyaXB0IFVSTAotQ09OU09MRSBNRVNTQUdFOiBsaW5lIDIwOiBS
ZWdpc3RyYXRpb24gZmFpbGVkIHdpdGggZXJyb3I6IFR5cGVFcnJvcjogc2VydmljZVdvcmtlci5y
ZWdpc3RlcigpIG11c3QgYmUgY2FsbGVkIHdpdGggYSB2YWxpZCByZWxhdGl2ZSBzY3JpcHQgVVJM
Ci1DT05TT0xFIE1FU1NBR0U6IGxpbmUgMzA6IFJlZ2lzdHJhdGlvbiBmYWlsZWQgd2l0aCBlcnJv
cjogVHlwZUVycm9yOiBzZXJ2aWNlV29ya2VyLnJlZ2lzdGVyKCkgbXVzdCBiZSBjYWxsZWQgd2l0
aCBhIHNjcmlwdCBVUkwgd2hvc2UgcHJvdG9jb2wgaXMgZWl0aGVyIEhUVFAgb3IgSFRUUFMKLUNP
TlNPTEUgTUVTU0FHRTogbGluZSA0MDogUmVnaXN0cmF0aW9uIGZhaWxlZCB3aXRoIGVycm9yOiBU
eXBlRXJyb3I6IHNlcnZpY2VXb3JrZXIucmVnaXN0ZXIoKSBtdXN0IGJlIGNhbGxlZCB3aXRoIGEg
c2NyaXB0IFVSTCB3aG9zZSBwYXRoIGRvZXMgbm90IGNvbnRhaW4gJyUyZicgb3IgJyU1YycKLUNP
TlNPTEUgTUVTU0FHRTogbGluZSA1MDogUmVnaXN0cmF0aW9uIGZhaWxlZCB3aXRoIGVycm9yOiBU
eXBlRXJyb3I6IFNjb3BlIFVSTCBwcm92aWRlZCB0byBzZXJ2aWNlV29ya2VyLnJlZ2lzdGVyKCkg
bXVzdCBiZSBlaXRoZXIgSFRUUCBvciBIVFRQUwotQ09OU09MRSBNRVNTQUdFOiBsaW5lIDYwOiBS
ZWdpc3RyYXRpb24gZmFpbGVkIHdpdGggZXJyb3I6IFR5cGVFcnJvcjogU2NvcGUgVVJMIHByb3Zp
ZGVkIHRvIHNlcnZpY2VXb3JrZXIucmVnaXN0ZXIoKSBjYW5ub3QgaGF2ZSBhIHBhdGggdGhhdCBj
b250YWlucyAnJTJmJyBvciAnJTVjJwotQ09OU09MRSBNRVNTQUdFOiBsaW5lIDcwOiBSZWdpc3Ry
YXRpb24gZmFpbGVkIHdpdGggZXJyb3I6IFNlY3VyaXR5RXJyb3I6IFNjcmlwdCBvcmlnaW4gZG9l
cyBub3QgbWF0Y2ggdGhlIHJlZ2lzdGVyaW5nIGNsaWVudCdzIG9yaWdpbgotQ09OU09MRSBNRVNT
QUdFOiBsaW5lIDgxOiBSZWdpc3RyYXRpb24gZmFpbGVkIHdpdGggZXJyb3I6IFNlY3VyaXR5RXJy
b3I6IFNjb3BlIG9yaWdpbiBkb2VzIG5vdCBtYXRjaCB0aGUgcmVnaXN0ZXJpbmcgY2xpZW50J3Mg
b3JpZ2luCitDT05TT0xFIE1FU1NBR0U6IGxpbmUgMjA6IFJlZ2lzdHJhdGlvbiBmYWlsZWQgd2l0
aCBlcnJvcjogVHlwZUVycm9yOiBzZXJ2aWNlV29ya2VyLnJlZ2lzdGVyKCkgY2Fubm90IGJlIGNh
bGxlZCB3aXRoIGFuIGVtcHR5IHNjcmlwdCBVUkwKK0NPTlNPTEUgTUVTU0FHRTogbGluZSAzMDog
UmVnaXN0cmF0aW9uIGZhaWxlZCB3aXRoIGVycm9yOiBUeXBlRXJyb3I6IHNlcnZpY2VXb3JrZXIu
cmVnaXN0ZXIoKSBtdXN0IGJlIGNhbGxlZCB3aXRoIGEgdmFsaWQgcmVsYXRpdmUgc2NyaXB0IFVS
TAorQ09OU09MRSBNRVNTQUdFOiBsaW5lIDQwOiBSZWdpc3RyYXRpb24gZmFpbGVkIHdpdGggZXJy
b3I6IFR5cGVFcnJvcjogc2VydmljZVdvcmtlci5yZWdpc3RlcigpIG11c3QgYmUgY2FsbGVkIHdp
dGggYSBzY3JpcHQgVVJMIHdob3NlIHByb3RvY29sIGlzIGVpdGhlciBIVFRQIG9yIEhUVFBTCitD
T05TT0xFIE1FU1NBR0U6IGxpbmUgNTA6IFJlZ2lzdHJhdGlvbiBmYWlsZWQgd2l0aCBlcnJvcjog
VHlwZUVycm9yOiBzZXJ2aWNlV29ya2VyLnJlZ2lzdGVyKCkgbXVzdCBiZSBjYWxsZWQgd2l0aCBh
IHNjcmlwdCBVUkwgd2hvc2UgcGF0aCBkb2VzIG5vdCBjb250YWluICclMmYnIG9yICclNWMnCitD
T05TT0xFIE1FU1NBR0U6IGxpbmUgNjA6IFJlZ2lzdHJhdGlvbiBmYWlsZWQgd2l0aCBlcnJvcjog
VHlwZUVycm9yOiBTY29wZSBVUkwgcHJvdmlkZWQgdG8gc2VydmljZVdvcmtlci5yZWdpc3Rlcigp
IG11c3QgYmUgZWl0aGVyIEhUVFAgb3IgSFRUUFMKK0NPTlNPTEUgTUVTU0FHRTogbGluZSA3MDog
UmVnaXN0cmF0aW9uIGZhaWxlZCB3aXRoIGVycm9yOiBUeXBlRXJyb3I6IFNjb3BlIFVSTCBwcm92
aWRlZCB0byBzZXJ2aWNlV29ya2VyLnJlZ2lzdGVyKCkgY2Fubm90IGhhdmUgYSBwYXRoIHRoYXQg
Y29udGFpbnMgJyUyZicgb3IgJyU1YycKK0NPTlNPTEUgTUVTU0FHRTogbGluZSAxMDogUmVnaXN0
cmF0aW9uIGZhaWxlZCB3aXRoIGVycm9yOiBVbmtub3duRXJyb3I6IFNjcmlwdCBVUkwgaHR0cDov
LzEyNy4wLjAuMTo4MDAwL3dvcmtlcnMvc2VydmljZS9pbWFnZS1taW1lLXR5cGUucGhwIGZldGNo
ZWQgd2l0aCAwIGNoYXJhY3RlcnMsIGJ1dCB3ZSdyZSBub3QgdXNpbmcgdGhlIHJlc3VsdCB5ZXQK
K0NPTlNPTEUgTUVTU0FHRTogbGluZSA4MDogUmVnaXN0cmF0aW9uIGZhaWxlZCB3aXRoIGVycm9y
OiBTZWN1cml0eUVycm9yOiBTY3JpcHQgb3JpZ2luIGRvZXMgbm90IG1hdGNoIHRoZSByZWdpc3Rl
cmluZyBjbGllbnQncyBvcmlnaW4KK0NPTlNPTEUgTUVTU0FHRTogbGluZSA5MTogUmVnaXN0cmF0
aW9uIGZhaWxlZCB3aXRoIGVycm9yOiBTZWN1cml0eUVycm9yOiBTY29wZSBvcmlnaW4gZG9lcyBu
b3QgbWF0Y2ggdGhlIHJlZ2lzdGVyaW5nIGNsaWVudCdzIG9yaWdpbgogCmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dvcmtlcnMvc2VydmljZS9iYXNpYy1yZWdpc3Rlci1leHBl
Y3RlZC50eHQgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dvcmtlcnMvc2VydmljZS9iYXNpYy1y
ZWdpc3Rlci1leHBlY3RlZC50eHQKaW5kZXggYzAxOGU0NWU1ZDEuLjQ5NDA3Nzg0YWJmIDEwMDY0
NAotLS0gYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dvcmtlcnMvc2VydmljZS9iYXNpYy1yZWdp
c3Rlci1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93b3JrZXJzL3Nl
cnZpY2UvYmFzaWMtcmVnaXN0ZXItZXhwZWN0ZWQudHh0CkBAIC0xLDIgKzEsMyBAQAotQ09OU09M
RSBNRVNTQUdFOiBsaW5lIDExOiBSZWdpc3RyYXRpb24gZmFpbGVkIHdpdGggZXJyb3I6IFVua25v
d25FcnJvcjogc2VydmljZVdvcmtlciBqb2Igc2NoZWR1bGluZyBpcyBub3QgeWV0IGltcGxlbWVu
dGVkCitDT05TT0xFIE1FU1NBR0U6IGxpbmUgMTA6IFJlZ2lzdHJhdGlvbiBmYWlsZWQgd2l0aCBl
cnJvcjogVW5rbm93bkVycm9yOiBTY3JpcHQgVVJMIGh0dHA6Ly8xMjcuMC4wLjE6ODAwMC93b3Jr
ZXJzL3NlcnZpY2UvcmVzb3VyY2VzL2VtcHR5LXdvcmtlci5qcyBmZXRjaGVkIHdpdGggNDEgY2hh
cmFjdGVycywgYnV0IHdlJ3JlIG5vdCB1c2luZyB0aGUgcmVzdWx0IHlldAorQ09OU09MRSBNRVNT
QUdFOiBsaW5lIDIxOiBSZWdpc3RyYXRpb24gZmFpbGVkIHdpdGggZXJyb3I6IFVua25vd25FcnJv
cjogU2NyaXB0IFVSTCBodHRwOi8vMTI3LjAuMC4xOjgwMDAvd29ya2Vycy9zZXJ2aWNlL3Jlc291
cmNlcy9lbXB0eS13b3JrZXItZG9lc250LWV4aXN0LmpzIGZldGNoZWQgd2l0aCAwIGNoYXJhY3Rl
cnMsIGJ1dCB3ZSdyZSBub3QgdXNpbmcgdGhlIHJlc3VsdCB5ZXQKIApkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvaHR0cC90ZXN0cy93b3JrZXJzL3NlcnZpY2UvcmVzb3VyY2VzL2Jhc2ljLXJlZ2lz
dGVyLWV4Y2VwdGlvbnMuanMgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dvcmtlcnMvc2Vydmlj
ZS9yZXNvdXJjZXMvYmFzaWMtcmVnaXN0ZXItZXhjZXB0aW9ucy5qcwppbmRleCA4YTAzMDZmYjdh
OS4uNzhkMWQ4YWY1MjIgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvd29ya2Vy
cy9zZXJ2aWNlL3Jlc291cmNlcy9iYXNpYy1yZWdpc3Rlci1leGNlcHRpb25zLmpzCisrKyBiL0xh
eW91dFRlc3RzL2h0dHAvdGVzdHMvd29ya2Vycy9zZXJ2aWNlL3Jlc291cmNlcy9iYXNpYy1yZWdp
c3Rlci1leGNlcHRpb25zLmpzCkBAIC0zLDYgKzMsMTYgQEAgZnVuY3Rpb24gZG9uZSgpCiAgICAg
ZmluaXNoU1dUZXN0KCk7CiB9CiAKK25hdmlnYXRvci5zZXJ2aWNlV29ya2VyLnJlZ2lzdGVyKCJp
bWFnZS1taW1lLXR5cGUucGhwIiwgeyB9KQorLnRoZW4oZnVuY3Rpb24ocikgeworCWNvbnNvbGUu
bG9nKCJSZWdpc3RlcmVkISAodW5leHBlY3RlZGx5KSIpOworfSwgZnVuY3Rpb24oZSkgeworCWNv
bnNvbGUubG9nKCJSZWdpc3RyYXRpb24gZmFpbGVkIHdpdGggZXJyb3I6ICIgKyBlKTsKK30pCisu
Y2F0Y2goZnVuY3Rpb24oZSkgeworCWNvbnNvbGUubG9nKCJFeGNlcHRpb24gcmVnaXN0ZXJpbmc6
ICIgKyBlKTsKK30pOworCiBuYXZpZ2F0b3Iuc2VydmljZVdvcmtlci5yZWdpc3RlcigiIiwgeyB9
KQogLnRoZW4oZnVuY3Rpb24ocikgewogCWNvbnNvbGUubG9nKCJSZWdpc3RlcmVkISAodW5leHBl
Y3RlZGx5KSIpOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93b3JrZXJzL3Nl
cnZpY2UvcmVzb3VyY2VzL2Jhc2ljLXJlZ2lzdGVyLmpzIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0
cy93b3JrZXJzL3NlcnZpY2UvcmVzb3VyY2VzL2Jhc2ljLXJlZ2lzdGVyLmpzCmluZGV4IGU3NTE2
ZmU1NTE3Li4zYTFlNjNiMGE2NCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93
b3JrZXJzL3NlcnZpY2UvcmVzb3VyY2VzL2Jhc2ljLXJlZ2lzdGVyLmpzCisrKyBiL0xheW91dFRl
c3RzL2h0dHAvdGVzdHMvd29ya2Vycy9zZXJ2aWNlL3Jlc291cmNlcy9iYXNpYy1yZWdpc3Rlci5q
cwpAQCAtNiw2ICs2LDE2IEBAIGZ1bmN0aW9uIGRvbmUoKQogbmF2aWdhdG9yLnNlcnZpY2VXb3Jr
ZXIucmVnaXN0ZXIoInJlc291cmNlcy9lbXB0eS13b3JrZXIuanMiLCB7IH0pCiAudGhlbihmdW5j
dGlvbihyKSB7CiAJY29uc29sZS5sb2coIlJlZ2lzdGVyZWQhIik7Cit9LCBmdW5jdGlvbihlKSB7
CisJY29uc29sZS5sb2coIlJlZ2lzdHJhdGlvbiBmYWlsZWQgd2l0aCBlcnJvcjogIiArIGUpOwor
fSkKKy5jYXRjaChmdW5jdGlvbihlKSB7CisJY29uc29sZS5sb2coIkV4Y2VwdGlvbiByZWdpc3Rl
cmluZzogIiArIGUpOworfSk7CisKK25hdmlnYXRvci5zZXJ2aWNlV29ya2VyLnJlZ2lzdGVyKCJy
ZXNvdXJjZXMvZW1wdHktd29ya2VyLWRvZXNudC1leGlzdC5qcyIsIHsgfSkKKy50aGVuKGZ1bmN0
aW9uKHIpIHsKKwljb25zb2xlLmxvZygiUmVnaXN0ZXJlZCEiKTsKIAlkb25lKCk7CiB9LCBmdW5j
dGlvbihlKSB7CiAJY29uc29sZS5sb2coIlJlZ2lzdHJhdGlvbiBmYWlsZWQgd2l0aCBlcnJvcjog
IiArIGUpOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93b3JrZXJzL3NlcnZp
Y2UvcmVzb3VyY2VzL3JlZ2lzdHJhdGlvbi10YXNrLXF1ZXVlLXNjaGVkdWxpbmctMS5qcyBiL0xh
eW91dFRlc3RzL2h0dHAvdGVzdHMvd29ya2Vycy9zZXJ2aWNlL3Jlc291cmNlcy9yZWdpc3RyYXRp
b24tdGFzay1xdWV1ZS1zY2hlZHVsaW5nLTEuanMKaW5kZXggMTI3YTNkYjM1NDUuLjAwZmVjOTNi
NGJjIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dvcmtlcnMvc2VydmljZS9y
ZXNvdXJjZXMvcmVnaXN0cmF0aW9uLXRhc2stcXVldWUtc2NoZWR1bGluZy0xLmpzCisrKyBiL0xh
eW91dFRlc3RzL2h0dHAvdGVzdHMvd29ya2Vycy9zZXJ2aWNlL3Jlc291cmNlcy9yZWdpc3RyYXRp
b24tdGFzay1xdWV1ZS1zY2hlZHVsaW5nLTEuanMKQEAgLTQ4LDggKzQ4LDggQEAgZm9yICh2YXIg
aSA9IDA7IGkgPCAxMDAwOyArK2kpIHsKIAkJY29uc29sZS5sb2coIk9yaWdpbmFsIHdpbmRvdyBy
ZXNvbHZlZCBzdWNjZXNzZnVsbHkgKHVuZXhwZWN0ZWQpIikKIAkJZG9uZSgpOwogCX0sIGZ1bmN0
aW9uKGUpIHsKLQkJaWYgKGUrIiIgIT0gIlVua25vd25FcnJvcjogc2VydmljZVdvcmtlciBqb2Ig
c2NoZWR1bGluZyBpcyBub3QgeWV0IGltcGxlbWVudGVkIikgewotCQkJYWxlcnQoIlVuZXhwZWN0
ZWQgZXJyb3IgcmVjZWl2ZWQgZnJvbSBzZXJ2ZXIiKTsKKwkJaWYgKGUrIiIgIT0gIlVua25vd25F
cnJvcjogU2NyaXB0IFVSTCBodHRwOi8vMTI3LjAuMC4xOjgwMDAvd29ya2Vycy9zZXJ2aWNlL3Jl
c291cmNlcy9lbXB0eS13b3JrZXIuanMgZmV0Y2hlZCB3aXRoIDQxIGNoYXJhY3RlcnMsIGJ1dCB3
ZSdyZSBub3QgdXNpbmcgdGhlIHJlc3VsdCB5ZXQiKSB7CisJCQlhbGVydCgiVW5leHBlY3RlZCBl
cnJvciByZWNlaXZlZCBmcm9tIHNlcnZlcjogIiArIGUpOwogCQkJZmluaXNoU1dUZXN0KCk7CiAJ
CX0KIAkJCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cKaW5kZXggODNiOTJmZDdiNWIuLjZiNjdhYjkwZjQ2IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9n
CkBAIC0xLDMgKzEsNzAgQEAKKzIwMTctMTAtMDUgIEJyYWR5IEVpZHNvbiAgPGJlaWRzb25AYXBw
bGUuY29tPgorCisgICAgICAgIEFkZCAoZW50aXJlbHkgaW5jb3JyZWN0KSBmZXRjaGluZyBvZiBT
ZXJ2aWNlV29ya2VyIHNjcmlwdHMuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0xNzYxNzkKKworICAgICAgICBSZXZpZXdlZCBieSBBbmR5IEVzdGVzLgor
CisgICAgICAgIE5vIG5ldyB0ZXN0cyAoQ292ZXJlZCBieSBjaGFuZ2VzIHRvIGV4aXN0aW5nIHRl
c3RzKS4KKworICAgICAgICBXaGVuIHRoZSBTdG9yYWdlIHByb2Nlc3MgaXMgcnVubmluZyB0aGUg
IlVwZGF0ZSIgYWxnb3JpdGhtIGFuZCBhIFNlcnZpY2VXb3JrZXIgc2NyaXB0IGZpbGUgbmVlZHMg
dG8gYmUgZmV0Y2hlZCwgdGhpcyBwYXRjaDoKKyAgICAgICAgICAtIE1lc3NhZ2VzIGJhY2sgdG8g
dGhlIFdlYkNvbnRlbnQgcHJvY2VzcyB0aGF0IHN0YXJ0ZWQgdGhlIHJlZ2lzdGVyL3VwZGF0ZSBq
b2IKKyAgICAgICAgICAtIEV4ZWN1dGVzIGEgRmV0Y2hMb2FkIGluIHRoYXQgc2NyaXB0IGNvbnRl
eHQgZm9yIHRoZSBzY3JpcHQKKyAgICAgICAgICAtIFNlbmRzIHRoZSByZXN1bHRzIGJhY2sgdG8g
dGhlIFN0b3JhZ2UgcHJvY2VzcworCisgICAgICAgIFdlIGRvbid0IGRvIGFueXRoaW5nIHdpdGgg
dGhlIHJlc3VsdHMgeWV0LgorCisgICAgICAgIFNvb24uCisKKyAgICAgICAgKiBXZWJDb3JlLnhj
b2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisKKyAgICAgICAgKiB3b3JrZXJzL1dvcmtlclNjcmlw
dExvYWRlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpXb3JrZXJTY3JpcHRMb2FkZXI6OmRpZEZh
aWwpOgorICAgICAgICAqIHdvcmtlcnMvV29ya2VyU2NyaXB0TG9hZGVyLmg6CisgICAgICAgIChX
ZWJDb3JlOjpXb3JrZXJTY3JpcHRMb2FkZXI6OmVycm9yIGNvbnN0KToKKworICAgICAgICAqIHdv
cmtlcnMvV29ya2VyU2NyaXB0TG9hZGVyQ2xpZW50Lmg6CisgICAgICAgIChXZWJDb3JlOjpXb3Jr
ZXJTY3JpcHRMb2FkZXJDbGllbnQ6On5Xb3JrZXJTY3JpcHRMb2FkZXJDbGllbnQpOgorICAgICAg
ICAoV2ViQ29yZTo6V29ya2VyU2NyaXB0TG9hZGVyQ2xpZW50OjpkaWRSZWNlaXZlUmVzcG9uc2Up
OiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6V29ya2VyU2NyaXB0TG9hZGVyQ2xpZW50Ojpu
b3RpZnlGaW5pc2hlZCk6IERlbGV0ZWQuCisKKyAgICAgICAgKiB3b3JrZXJzL3NlcnZpY2UvU2Vy
dmljZVdvcmtlckNvbnRhaW5lci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTZXJ2aWNlV29ya2Vy
Q29udGFpbmVyOjpzdGFydFNjcmlwdEZldGNoRm9ySm9iKToKKyAgICAgICAgKFdlYkNvcmU6OlNl
cnZpY2VXb3JrZXJDb250YWluZXI6OmpvYkZpbmlzaGVkTG9hZGluZ1NjcmlwdCk6CisgICAgICAg
IChXZWJDb3JlOjpTZXJ2aWNlV29ya2VyQ29udGFpbmVyOjpqb2JGYWlsZWRMb2FkaW5nU2NyaXB0
KToKKyAgICAgICAgKiB3b3JrZXJzL3NlcnZpY2UvU2VydmljZVdvcmtlckNvbnRhaW5lci5oOgor
CisgICAgICAgICogd29ya2Vycy9zZXJ2aWNlL1NlcnZpY2VXb3JrZXJGZXRjaFJlc3VsdC5oOiBD
b3BpZWQgZnJvbSBTb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2Uvc2VydmVyL1NXQ2xpZW50
Q29ubmVjdGlvbi5oLgorICAgICAgICAoV2ViQ29yZTo6U2VydmljZVdvcmtlckZldGNoUmVzdWx0
OjplbmNvZGUgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6U2VydmljZVdvcmtlckZldGNoUmVz
dWx0OjpkZWNvZGUpOgorCisgICAgICAgICogd29ya2Vycy9zZXJ2aWNlL1NlcnZpY2VXb3JrZXJK
b2IuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U2VydmljZVdvcmtlckpvYjo6c3RhcnRTY3JpcHRG
ZXRjaCk6CisgICAgICAgIChXZWJDb3JlOjpTZXJ2aWNlV29ya2VySm9iOjpmZXRjaFNjcmlwdFdp
dGhDb250ZXh0KToKKyAgICAgICAgKFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJKb2I6OmRpZFJlY2Vp
dmVSZXNwb25zZSk6CisgICAgICAgIChXZWJDb3JlOjpTZXJ2aWNlV29ya2VySm9iOjpub3RpZnlG
aW5pc2hlZCk6CisgICAgICAgICogd29ya2Vycy9zZXJ2aWNlL1NlcnZpY2VXb3JrZXJKb2IuaDoK
KyAgICAgICAgKiB3b3JrZXJzL3NlcnZpY2UvU2VydmljZVdvcmtlckpvYkNsaWVudC5oOgorCisg
ICAgICAgICogd29ya2Vycy9zZXJ2aWNlL3NlcnZlci9TV0NsaWVudENvbm5lY3Rpb24uY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6U1dDbGllbnRDb25uZWN0aW9uOjpmaW5pc2hlZEZldGNoaW5nU2Ny
aXB0KToKKyAgICAgICAgKFdlYkNvcmU6OlNXQ2xpZW50Q29ubmVjdGlvbjo6ZmFpbGVkRmV0Y2hp
bmdTY3JpcHQpOgorICAgICAgICAoV2ViQ29yZTo6U1dDbGllbnRDb25uZWN0aW9uOjpzdGFydFNj
cmlwdEZldGNoRm9yU2VydmVyKToKKyAgICAgICAgKiB3b3JrZXJzL3NlcnZpY2Uvc2VydmVyL1NX
Q2xpZW50Q29ubmVjdGlvbi5oOgorCisgICAgICAgICogd29ya2Vycy9zZXJ2aWNlL3NlcnZlci9T
V1NlcnZlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTV1NlcnZlcjo6Q29ubmVjdGlvbjo6Zmlu
aXNoRmV0Y2hpbmdTY3JpcHRJblNlcnZlcik6CisgICAgICAgIChXZWJDb3JlOjpTV1NlcnZlcjo6
c3RhcnRTY3JpcHRGZXRjaCk6CisgICAgICAgIChXZWJDb3JlOjpTV1NlcnZlcjo6c2NyaXB0RmV0
Y2hGaW5pc2hlZCk6CisgICAgICAgICogd29ya2Vycy9zZXJ2aWNlL3NlcnZlci9TV1NlcnZlci5o
OgorCisgICAgICAgICogd29ya2Vycy9zZXJ2aWNlL3NlcnZlci9TV1NlcnZlclJlZ2lzdHJhdGlv
bi5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTV1NlcnZlclJlZ2lzdHJhdGlvbjo6c2NyaXB0RmV0
Y2hGaW5pc2hlZCk6CisgICAgICAgIChXZWJDb3JlOjpTV1NlcnZlclJlZ2lzdHJhdGlvbjo6cnVu
VXBkYXRlSm9iKToKKyAgICAgICAgKFdlYkNvcmU6OlNXU2VydmVyUmVnaXN0cmF0aW9uOjpzdGFy
dFNjcmlwdEZldGNoRnJvbU1haW5UaHJlYWQpOgorICAgICAgICAoV2ViQ29yZTo6U1dTZXJ2ZXJS
ZWdpc3RyYXRpb246OnN0YXJ0U2NyaXB0RmV0Y2hGb3JDdXJyZW50Sm9iKToKKyAgICAgICAgKiB3
b3JrZXJzL3NlcnZpY2Uvc2VydmVyL1NXU2VydmVyUmVnaXN0cmF0aW9uLmg6CisKIDIwMTctMDkt
MTkgIFphbGFuIEJ1anRhcyAgPHphbGFuQGFwcGxlLmNvbT4KIAogICAgICAgICBBdHRlbXB0IHRv
IGZpeCBMaW51eCBidWlsZC4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNv
ZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9q
L3Byb2plY3QucGJ4cHJvagppbmRleCBjN2I3OGJkM2E0OS4uODJmOTJkZjdlOWEgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTEz
MjEsNyArMTMyMSw3IEBACiAJCTJFOTRGNDNCMTE5MjA3REEwMEI3Rjc1RCAvKiBKU0ZpbGVSZWFk
ZXIuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMkU5
NEY0MzkxMTkyMDdEQTAwQjdGNzVEIC8qIEpTRmlsZVJlYWRlci5jcHAgKi87IH07CiAJCTJFOTRG
NDNDMTE5MjA3REEwMEI3Rjc1RCAvKiBKU0ZpbGVSZWFkZXIuaCBpbiBIZWFkZXJzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDJFOTRGNDNBMTE5MjA3REEwMEI3Rjc1RCAvKiBK
U0ZpbGVSZWFkZXIuaCAqLzsgfTsKIAkJMkU5QjVEOEYxQjY2QTk0RTAwOEM2QTI0IC8qIFdoZWVs
RXZlbnREZWx0YUZpbHRlck1hYy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gMkU5QjVEOEUxQjY2QTk0RTAwOEM2QTI0IC8qIFdoZWVsRXZlbnREZWx0YUZp
bHRlck1hYy5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07
Ci0JCTJFQTc2ODA0MEZFNzEyNjQwMEFCOUM4QSAvKiBXb3JrZXJTY3JpcHRMb2FkZXJDbGllbnQu
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDJFQTc2ODAz
MEZFNzEyNjQwMEFCOUM4QSAvKiBXb3JrZXJTY3JpcHRMb2FkZXJDbGllbnQuaCAqLzsgfTsKKwkJ
MkVBNzY4MDQwRkU3MTI2NDAwQUI5QzhBIC8qIFdvcmtlclNjcmlwdExvYWRlckNsaWVudC5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMkVBNzY4MDMwRkU3
MTI2NDAwQUI5QzhBIC8qIFdvcmtlclNjcmlwdExvYWRlckNsaWVudC5oICovOyBzZXR0aW5ncyA9
IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTJFQjRCQ0QyMTIxRjAzRTMwMEVD
NDg4NSAvKiBCbG9iUmVzb3VyY2VIYW5kbGUuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gMkVCNEJDRDAxMjFGMDNFMzAwRUM0ODg1IC8qIEJsb2JSZXNv
dXJjZUhhbmRsZS5jcHAgKi87IH07CiAJCTJFQjRCQ0QzMTIxRjAzRTMwMEVDNDg4NSAvKiBCbG9i
UmVzb3VyY2VIYW5kbGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDJFQjRCQ0QxMTIxRjAzRTMwMEVDNDg4NSAvKiBCbG9iUmVzb3VyY2VIYW5kbGUuaCAq
LzsgfTsKIAkJMkVCNzY3NTYxREExOUI5OTAwM0UyM0I1IC8qIElucHV0RXZlbnQuY3BwIGluIFNv
dXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMkVCNzY3NTUxREExOUI5
OTAwM0UyM0I1IC8qIElucHV0RXZlbnQuY3BwICovOyB9OwpAQCAtMjMzOCw2ICsyMzM4LDEwIEBA
CiAJCTUxN0E1MzQ2MUY1MEMxN0YwMERDREMwQSAvKiBTV1NlcnZlcldvcmtlci5oIGluIEhlYWRl
cnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTE3QTUzNDIxRjUwQzE2MTAw
RENEQzBBIC8qIFNXU2VydmVyV29ya2VyLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAo
UHJpdmF0ZSwgKTsgfTsgfTsKIAkJNTE3QTUzNEUxRjU0QThCQTAwRENEQzBBIC8qIFNlcnZpY2VX
b3JrZXJSZWdpc3RyYXRpb25EYXRhLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDUxN0E1MzRCMUY1NDlENEEwMERDREMwQSAvKiBTZXJ2aWNlV29ya2Vy
UmVnaXN0cmF0aW9uRGF0YS5jcHAgKi87IH07CiAJCTUxN0E1MzRGMUY1NEE4QkEwMERDREMwQSAv
KiBTZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uRGF0YS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTE3QTUzNEMxRjU0OUQ0QTAwRENEQzBBIC8qIFNlcnZp
Y2VXb3JrZXJSZWdpc3RyYXRpb25EYXRhLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAo
UHJpdmF0ZSwgKTsgfTsgfTsKKwkJNTE3QTUzNTgxRjU4ODlFODAwRENEQzBBIC8qIEZldGNoTG9h
ZGVyQ2xpZW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSA0MTQ3RTJCNjFDODk5MTI2MDBBN0U3MTUgLyogRmV0Y2hMb2FkZXJDbGllbnQuaCAqLzsgc2V0
dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OworCQk1MTdBNTM1QTFGNTg4
OUVGMDBEQ0RDMEEgLyogRmV0Y2hMb2FkZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDQxNDdFMkI1MUM4OTkxMjYwMEE3RTcxNSAvKiBGZXRjaExvYWRl
ci5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CisJCTUx
N0E1MzVCMUY1ODhBNEMwMERDREMwQSAvKiBGZXRjaEJvZHlDb25zdW1lci5oIGluIEhlYWRlcnMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDFDRjhCRTUxRDQ2MjIyMDAwNzA3
REM5IC8qIEZldGNoQm9keUNvbnN1bWVyLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAo
UHJpdmF0ZSwgKTsgfTsgfTsKKwkJNTE3QTUzNUQxRjU4OTlGRTAwRENEQzBBIC8qIFNlcnZpY2VX
b3JrZXJGZXRjaFJlc3VsdC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gNTE3QTUzNUMxRjU4OTlGMjAwRENEQzBBIC8qIFNlcnZpY2VXb3JrZXJGZXRjaFJl
c3VsdC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJ
CTUxN0E2M0MzMUI3NDMxODcwMEU3RENEQyAvKiBLZXllZERlY29kZXJDRi5jcHAgaW4gU291cmNl
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1MTdBNjNCRjFCNzQzMTdFMDBF
N0RDREMgLyogS2V5ZWREZWNvZGVyQ0YuY3BwICovOyB9OwogCQk1MTdBNjNDNDFCNzQzMThCMDBF
N0RDREMgLyogS2V5ZWRFbmNvZGVyQ0YuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gNTE3QTYzQzExQjc0MzE3RTAwRTdEQ0RDIC8qIEtleWVkRW5jb2Rl
ckNGLmNwcCAqLzsgfTsKIAkJNTE3QTYzQzUxQjc0MzE4RjAwRTdEQ0RDIC8qIEtleWVkRGVjb2Rl
ckNGLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1MTdB
NjNDMDFCNzQzMTdFMDBFN0RDREMgLyogS2V5ZWREZWNvZGVyQ0YuaCAqLzsgc2V0dGluZ3MgPSB7
QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwpAQCAtNDcwMSw3ICs0NzA1LDcgQEAKIAkJ
QTdEMjBGNjIxMDdGNDA2OTAwQTgwMzkyIC8qIEpTV2ViR0xBY3RpdmVJbmZvLmNwcCBpbiBTb3Vy
Y2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE3RDIwRjYwMTA3RjQwNjkw
MEE4MDM5MiAvKiBKU1dlYkdMQWN0aXZlSW5mby5jcHAgKi87IH07CiAJCUE3RDIwRjYzMTA3RjQw
NjkwMEE4MDM5MiAvKiBKU1dlYkdMQWN0aXZlSW5mby5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTdEMjBGNjExMDdGNDA2OTAwQTgwMzkyIC8qIEpTV2Vi
R0xBY3RpdmVJbmZvLmggKi87IH07CiAJCUE3RDIwRjZEMTA3RjQzOEIwMEE4MDM5MiAvKiBXZWJH
TEFjdGl2ZUluZm8uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IEE3RDIwRjZCMTA3RjQzOEIwMEE4MDM5MiAvKiBXZWJHTEFjdGl2ZUluZm8uaCAqLzsgfTsK
LQkJQTdENkIzNDkwRjYxMTA0NTAwQjc5RkQxIC8qIFdvcmtlclNjcmlwdExvYWRlci5oIGluIEhl
YWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTdENkIzNDcwRjYxMTA0
NTAwQjc5RkQxIC8qIFdvcmtlclNjcmlwdExvYWRlci5oICovOyB9OworCQlBN0Q2QjM0OTBGNjEx
MDQ1MDBCNzlGRDEgLyogV29ya2VyU2NyaXB0TG9hZGVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBN0Q2QjM0NzBGNjExMDQ1MDBCNzlGRDEgLyogV29y
a2VyU2NyaXB0TG9hZGVyLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwg
KTsgfTsgfTsKIAkJQTdENkIzNEEwRjYxMTA0NTAwQjc5RkQxIC8qIFdvcmtlclNjcmlwdExvYWRl
ci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBN0Q2
QjM0ODBGNjExMDQ1MDBCNzlGRDEgLyogV29ya2VyU2NyaXB0TG9hZGVyLmNwcCAqLzsgfTsKIAkJ
QTdEQkY4REQxMjc2OTE5QzAwNkI2MDA4IC8qIFRleHRDaGVja2luZ0hlbHBlci5jcHAgaW4gU291
cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBN0RCRjhEQjEyNzY5MTlD
MDA2QjYwMDggLyogVGV4dENoZWNraW5nSGVscGVyLmNwcCAqLzsgfTsKIAkJQTdEQkY4REUxMjc2
OTE5QzAwNkI2MDA4IC8qIFRleHRDaGVja2luZ0hlbHBlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTdEQkY4REMxMjc2OTE5QzAwNkI2MDA4IC8qIFRl
eHRDaGVja2luZ0hlbHBlci5oICovOyB9OwpAQCAtMTAyNTUsNiArMTAyNTksNyBAQAogCQk1MTdB
NTM0MzFGNTBDMTYxMDBEQ0RDMEEgLyogU1dTZXJ2ZXJXb3JrZXIuY3BwICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gU1dTZXJ2ZXJXb3JrZXIuY3BwOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwogCQk1MTdBNTM0QjFGNTQ5RDRBMDBEQ0RDMEEgLyogU2VydmljZVdvcmtl
clJlZ2lzdHJhdGlvbkRhdGEuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRo
ID0gU2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbkRhdGEuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwogCQk1MTdBNTM0QzFGNTQ5RDRBMDBEQ0RDMEEgLyogU2VydmljZVdvcmtlclJlZ2lz
dHJhdGlvbkRhdGEuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gU2VydmljZVdv
cmtlclJlZ2lzdHJhdGlvbkRhdGEuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNTE3
QTUzNUMxRjU4OTlGMjAwRENEQzBBIC8qIFNlcnZpY2VXb3JrZXJGZXRjaFJlc3VsdC5oICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBTZXJ2aWNlV29ya2VyRmV0Y2hSZXN1bHQuaDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTE3QTYzQkYxQjc0MzE3RTAwRTdEQ0RDIC8q
IEtleWVkRGVjb2RlckNGLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9
IEtleWVkRGVjb2RlckNGLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTE3QTYz
QzAxQjc0MzE3RTAwRTdEQ0RDIC8qIEtleWVkRGVjb2RlckNGLmggKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmMuaDsgcGF0aCA9IEtleWVkRGVjb2RlckNGLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CiAJCTUxN0E2M0MxMUI3NDMxN0UwMEU3RENEQyAvKiBLZXllZEVuY29kZXJDRi5jcHAgKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBLZXllZEVuY29kZXJDRi5jcHA7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0xOTE1Miw2ICsxOTE1Nyw3IEBACiAJCQkJNTFG
MTc1NTgxRjNFQkMwQzAwQzc0OTUwIC8qIFNlcnZpY2VXb3JrZXJDb250YWluZXIuY3BwICovLAog
CQkJCTUxRjE3NTU3MUYzRUJDMEMwMEM3NDk1MCAvKiBTZXJ2aWNlV29ya2VyQ29udGFpbmVyLmgg
Ki8sCiAJCQkJNTFGMTc1NTYxRjNFQkMwQzAwQzc0OTUwIC8qIFNlcnZpY2VXb3JrZXJDb250YWlu
ZXIuaWRsICovLAorCQkJCTUxN0E1MzVDMUY1ODk5RjIwMERDREMwQSAvKiBTZXJ2aWNlV29ya2Vy
RmV0Y2hSZXN1bHQuaCAqLywKIAkJCQk1MUYxNzU1NTFGM0VCQzBDMDBDNzQ5NTAgLyogU2Vydmlj
ZVdvcmtlckdsb2JhbFNjb3BlLmNwcCAqLywKIAkJCQk1MUYxNzU1NDFGM0VCQzBDMDBDNzQ5NTAg
LyogU2VydmljZVdvcmtlckdsb2JhbFNjb3BlLmggKi8sCiAJCQkJNTFGMTc1NTMxRjNFQkMwQzAw
Qzc0OTUwIC8qIFNlcnZpY2VXb3JrZXJHbG9iYWxTY29wZS5pZGwgKi8sCkBAIC0yNzEzMyw2ICsy
NzEzOSw3IEBACiAJCQkJMUE4QTY0NTYxRDE5RkNGQzAwRDBFMDBGIC8qIEFwcGxlUGF5UGF5bWVu
dE1ldGhvZFNlbGVjdGVkRXZlbnQuaCBpbiBIZWFkZXJzICovLAogCQkJCTdDNjUyMkY1MUUwMEE1
MTcwMDY3N0YyMiAvKiBBcHBsZVBheVBheW1lbnRQYXNzLmggaW4gSGVhZGVycyAqLywKIAkJCQk3
QzY1NzlFMDFFMDA3OUY5MDBFM0EyN0EgLyogQXBwbGVQYXlQYXltZW50UmVxdWVzdC5oIGluIEhl
YWRlcnMgKi8sCisJCQkJNTE3QTUzNUExRjU4ODlFRjAwRENEQzBBIC8qIEZldGNoTG9hZGVyLmgg
aW4gSGVhZGVycyAqLywKIAkJCQkxQThBNjQ1OTFEMTlGQ0ZDMDBEMEUwMEYgLyogQXBwbGVQYXlT
ZXNzaW9uLmggaW4gSGVhZGVycyAqLywKIAkJCQkxQTU4RTg2NTFEMTlENEVCMDBDMEVBNzMgLyog
QXBwbGVQYXlTZXNzaW9uUGF5bWVudFJlcXVlc3QuaCBpbiBIZWFkZXJzICovLAogCQkJCTFBOEE2
NDVDMUQxOUZDRkMwMEQwRTAwRiAvKiBBcHBsZVBheVNoaXBwaW5nQ29udGFjdFNlbGVjdGVkRXZl
bnQuaCBpbiBIZWFkZXJzICovLApAQCAtMjgxMDQsNiArMjgxMTEsNyBAQAogCQkJCTkzRjE5OEU1
MDgyNDVFNTkwMDFFOUFCQyAvKiBIVE1MRG9jdW1lbnQuaCBpbiBIZWFkZXJzICovLAogCQkJCTk3
N0IzODY3MTIyODgzRTkwMEI4MUZGOCAvKiBIVE1MRG9jdW1lbnRQYXJzZXIuaCBpbiBIZWFkZXJz
ICovLAogCQkJCTkzRjE5OEU2MDgyNDVFNTkwMDFFOUFCQyAvKiBIVE1MRWxlbWVudC5oIGluIEhl
YWRlcnMgKi8sCisJCQkJNTE3QTUzNTgxRjU4ODlFODAwRENEQzBBIC8qIEZldGNoTG9hZGVyQ2xp
ZW50LmggaW4gSGVhZGVycyAqLywKIAkJCQlBMTdDODEyMzBGMkE1Q0Y3MDA1REFBRUIgLyogSFRN
TEVsZW1lbnRGYWN0b3J5LmggaW4gSGVhZGVycyAqLywKIAkJCQk5NzdCMzcyNDEyMjg3MjE3MDBC
ODFGRjggLyogSFRNTEVsZW1lbnRTdGFjay5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQjU2MkRCNjAx
N0QzQ0Q2MzAwMTBBRjk2IC8qIEhUTUxFbGVtZW50VHlwZUhlbHBlcnMuaCBpbiBIZWFkZXJzICov
LApAQCAtMjkyNzYsNiArMjkyODQsNyBAQAogCQkJCUZBNjU0QTZDMTEwOEFCRUQwMDI2MjZGMSAv
KiBNYXRoTUxVbmRlck92ZXJFbGVtZW50LmggaW4gSGVhZGVycyAqLywKIAkJCQkzN0M3MzhFRjFF
REJENzFCMDAzRjJCMEIgLyogTWF0aE1MVW5rbm93bkVsZW1lbnQuaCBpbiBIZWFkZXJzICovLAog
CQkJCTQzOTA0NkVBMTJEQTI1RTgxMkFGODBBQyAvKiBNYXRoT3BlcmF0b3IuaCBpbiBIZWFkZXJz
ICovLAorCQkJCTUxN0E1MzVCMUY1ODhBNEMwMERDREMwQSAvKiBGZXRjaEJvZHlDb25zdW1lci5o
IGluIEhlYWRlcnMgKi8sCiAJCQkJNDlENURDMkMwRjQyM0E3MzAwOEYyMEZEIC8qIE1hdHJpeDNE
VHJhbnNmb3JtT3BlcmF0aW9uLmggaW4gSGVhZGVycyAqLywKIAkJCQk0OUU5MTFDNzBFRjg2RDQ3
MDA5RDBDQUYgLyogTWF0cml4VHJhbnNmb3JtT3BlcmF0aW9uLmggaW4gSGVhZGVycyAqLywKIAkJ
CQk1Q0JDOERBRDFBQUEzMDIyMDBFMUM4MDMgLyogTWVkaWFBY2Nlc3NpYmlsaXR5U29mdExpbmsu
aCBpbiBIZWFkZXJzICovLApAQCAtMjk0MzgsNiArMjk0NDcsNyBAQAogCQkJCTY1NkQzNzQzMEFE
QkE1REUwMEE0NTU0RCAvKiBOZXRzY2FwZVBsdWdJblN0cmVhbUxvYWRlci5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkJQTE5RDkzNEIxQUExMUIxRTAwQjQ2QzI0IC8qIE5ldHdvcmtFeHRlbnNpb25Db250
ZW50RmlsdGVyLmggaW4gSGVhZGVycyAqLywKIAkJCQk2MjhEMjE0QzEyMTMxRUQxMDA1NURDRkMg
LyogTmV0d29ya2luZ0NvbnRleHQuaCBpbiBIZWFkZXJzICovLAorCQkJCTUxN0E1MzVEMUY1ODk5
RkUwMERDREMwQSAvKiBTZXJ2aWNlV29ya2VyRmV0Y2hSZXN1bHQuaCBpbiBIZWFkZXJzICovLAog
CQkJCThBODFCRjg1MTFEQ0ZEOTAwMERBMkI5OCAvKiBOZXR3b3JrTG9hZE1ldHJpY3MuaCBpbiBI
ZWFkZXJzICovLAogCQkJCTU5QzI3RjA3MTM4RDI4Q0YwMDc5QjdFMiAvKiBOZXR3b3JrUmVzb3Vy
Y2VzRGF0YS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMUE3RkE2MTkwRERBM0IzQTAwMjhGOEE1IC8q
IE5ldHdvcmtTdGF0ZU5vdGlmaWVyLmggaW4gSGVhZGVycyAqLywKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyU2NyaXB0TG9hZGVyLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L3dvcmtlcnMvV29ya2VyU2NyaXB0TG9hZGVyLmNwcAppbmRleCAzNWJjYjE2MTlhZS4uOTcyMGE5
N2MwMjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyU2NyaXB0TG9h
ZGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlclNjcmlwdExvYWRlci5j
cHAKQEAgLTE2NCw4ICsxNjQsOSBAQCB2b2lkIFdvcmtlclNjcmlwdExvYWRlcjo6ZGlkRmluaXNo
TG9hZGluZyh1bnNpZ25lZCBsb25nIGlkZW50aWZpZXIpCiAgICAgbm90aWZ5RmluaXNoZWQoKTsK
IH0KIAotdm9pZCBXb3JrZXJTY3JpcHRMb2FkZXI6OmRpZEZhaWwoY29uc3QgUmVzb3VyY2VFcnJv
ciYpCit2b2lkIFdvcmtlclNjcmlwdExvYWRlcjo6ZGlkRmFpbChjb25zdCBSZXNvdXJjZUVycm9y
JiBlcnJvcikKIHsKKyAgICBtX2Vycm9yID0gZXJyb3I7CiAgICAgbm90aWZ5RXJyb3IoKTsKIH0K
IApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJTY3JpcHRMb2FkZXIu
aCBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyU2NyaXB0TG9hZGVyLmgKaW5kZXggYzgw
Nzk4YWM2YzkuLmE4NmM1NzRhMWIwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJz
L1dvcmtlclNjcmlwdExvYWRlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2Vy
U2NyaXB0TG9hZGVyLmgKQEAgLTI2LDEwICsyNiwxMSBAQAogCiAjcHJhZ21hIG9uY2UKIAotI2lu
Y2x1ZGUgIlVSTC5oIgorI2luY2x1ZGUgIlJlc291cmNlRXJyb3IuaCIKICNpbmNsdWRlICJSZXNv
dXJjZVJlcXVlc3QuaCIKICNpbmNsdWRlICJUaHJlYWRhYmxlTG9hZGVyLmgiCiAjaW5jbHVkZSAi
VGhyZWFkYWJsZUxvYWRlckNsaWVudC5oIgorI2luY2x1ZGUgIlVSTC5oIgogI2luY2x1ZGUgPG1l
bW9yeT4KICNpbmNsdWRlIDx3dGYvRmFzdE1hbGxvYy5oPgogI2luY2x1ZGUgPHd0Zi9SZWZDb3Vu
dGVkLmg+CkBAIC0zOCw1NCArMzksNTYgQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi0gICAg
Y2xhc3MgUmVzb3VyY2VSZXNwb25zZTsKLSAgICBjbGFzcyBTY3JpcHRFeGVjdXRpb25Db250ZXh0
OwotICAgIGNsYXNzIFRleHRSZXNvdXJjZURlY29kZXI7Ci0gICAgY2xhc3MgV29ya2VyU2NyaXB0
TG9hZGVyQ2xpZW50OworY2xhc3MgUmVzb3VyY2VSZXNwb25zZTsKK2NsYXNzIFNjcmlwdEV4ZWN1
dGlvbkNvbnRleHQ7CitjbGFzcyBUZXh0UmVzb3VyY2VEZWNvZGVyOworY2xhc3MgV29ya2VyU2Ny
aXB0TG9hZGVyQ2xpZW50OwogCi0gICAgY2xhc3MgV29ya2VyU2NyaXB0TG9hZGVyIDogcHVibGlj
IFJlZkNvdW50ZWQ8V29ya2VyU2NyaXB0TG9hZGVyPiwgcHVibGljIFRocmVhZGFibGVMb2FkZXJD
bGllbnQgewotICAgICAgICBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsKLSAgICBwdWJsaWM6Ci0g
ICAgICAgIHN0YXRpYyBSZWY8V29ya2VyU2NyaXB0TG9hZGVyPiBjcmVhdGUoKQotICAgICAgICB7
Ci0gICAgICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBXb3JrZXJTY3JpcHRMb2FkZXIpOwot
ICAgICAgICB9CitjbGFzcyBXb3JrZXJTY3JpcHRMb2FkZXIgOiBwdWJsaWMgUmVmQ291bnRlZDxX
b3JrZXJTY3JpcHRMb2FkZXI+LCBwdWJsaWMgVGhyZWFkYWJsZUxvYWRlckNsaWVudCB7CisgICAg
V1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7CitwdWJsaWM6CisgICAgc3RhdGljIFJlZjxXb3JrZXJT
Y3JpcHRMb2FkZXI+IGNyZWF0ZSgpCisgICAgeworICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5l
dyBXb3JrZXJTY3JpcHRMb2FkZXIpOworICAgIH0KIAotICAgICAgICB2b2lkIGxvYWRTeW5jaHJv
bm91c2x5KFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqLCBjb25zdCBVUkwmLCBGZXRjaE9wdGlvbnM6
Ok1vZGUsIENvbnRlbnRTZWN1cml0eVBvbGljeUVuZm9yY2VtZW50LCBjb25zdCBTdHJpbmcmIGlu
aXRpYXRvcklkZW50aWZpZXIpOwotICAgICAgICB2b2lkIGxvYWRBc3luY2hyb25vdXNseShTY3Jp
cHRFeGVjdXRpb25Db250ZXh0KiwgY29uc3QgVVJMJiwgRmV0Y2hPcHRpb25zOjpNb2RlLCBDb250
ZW50U2VjdXJpdHlQb2xpY3lFbmZvcmNlbWVudCwgY29uc3QgU3RyaW5nJiBpbml0aWF0b3JJZGVu
dGlmaWVyLCBXb3JrZXJTY3JpcHRMb2FkZXJDbGllbnQqKTsKKyAgICB2b2lkIGxvYWRTeW5jaHJv
bm91c2x5KFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqLCBjb25zdCBVUkwmLCBGZXRjaE9wdGlvbnM6
Ok1vZGUsIENvbnRlbnRTZWN1cml0eVBvbGljeUVuZm9yY2VtZW50LCBjb25zdCBTdHJpbmcmIGlu
aXRpYXRvcklkZW50aWZpZXIpOworICAgIHZvaWQgbG9hZEFzeW5jaHJvbm91c2x5KFNjcmlwdEV4
ZWN1dGlvbkNvbnRleHQqLCBjb25zdCBVUkwmLCBGZXRjaE9wdGlvbnM6Ok1vZGUsIENvbnRlbnRT
ZWN1cml0eVBvbGljeUVuZm9yY2VtZW50LCBjb25zdCBTdHJpbmcmIGluaXRpYXRvcklkZW50aWZp
ZXIsIFdvcmtlclNjcmlwdExvYWRlckNsaWVudCopOwogCi0gICAgICAgIHZvaWQgbm90aWZ5RXJy
b3IoKTsKKyAgICB2b2lkIG5vdGlmeUVycm9yKCk7CiAKLSAgICAgICAgU3RyaW5nIHNjcmlwdCgp
OwotICAgICAgICBjb25zdCBVUkwmIHVybCgpIGNvbnN0IHsgcmV0dXJuIG1fdXJsOyB9Ci0gICAg
ICAgIGNvbnN0IFVSTCYgcmVzcG9uc2VVUkwoKSBjb25zdDsKLSAgICAgICAgYm9vbCBmYWlsZWQo
KSBjb25zdCB7IHJldHVybiBtX2ZhaWxlZDsgfQotICAgICAgICB1bnNpZ25lZCBsb25nIGlkZW50
aWZpZXIoKSBjb25zdCB7IHJldHVybiBtX2lkZW50aWZpZXI7IH0KKyAgICBTdHJpbmcgc2NyaXB0
KCk7CisgICAgY29uc3QgVVJMJiB1cmwoKSBjb25zdCB7IHJldHVybiBtX3VybDsgfQorICAgIGNv
bnN0IFVSTCYgcmVzcG9uc2VVUkwoKSBjb25zdDsKKyAgICBib29sIGZhaWxlZCgpIGNvbnN0IHsg
cmV0dXJuIG1fZmFpbGVkOyB9CisgICAgdW5zaWduZWQgbG9uZyBpZGVudGlmaWVyKCkgY29uc3Qg
eyByZXR1cm4gbV9pZGVudGlmaWVyOyB9CisgICAgY29uc3QgUmVzb3VyY2VFcnJvciYgZXJyb3Io
KSBjb25zdCB7IHJldHVybiBtX2Vycm9yOyB9CiAKLSAgICAgICAgdm9pZCBkaWRSZWNlaXZlUmVz
cG9uc2UodW5zaWduZWQgbG9uZyBpZGVudGlmaWVyLCBjb25zdCBSZXNvdXJjZVJlc3BvbnNlJikg
b3ZlcnJpZGU7Ci0gICAgICAgIHZvaWQgZGlkUmVjZWl2ZURhdGEoY29uc3QgY2hhciogZGF0YSwg
aW50IGRhdGFMZW5ndGgpIG92ZXJyaWRlOwotICAgICAgICB2b2lkIGRpZEZpbmlzaExvYWRpbmco
dW5zaWduZWQgbG9uZyBpZGVudGlmaWVyKSBvdmVycmlkZTsKLSAgICAgICAgdm9pZCBkaWRGYWls
KGNvbnN0IFJlc291cmNlRXJyb3ImKSBvdmVycmlkZTsKKyAgICB2b2lkIGRpZFJlY2VpdmVSZXNw
b25zZSh1bnNpZ25lZCBsb25nIGlkZW50aWZpZXIsIGNvbnN0IFJlc291cmNlUmVzcG9uc2UmKSBv
dmVycmlkZTsKKyAgICB2b2lkIGRpZFJlY2VpdmVEYXRhKGNvbnN0IGNoYXIqIGRhdGEsIGludCBk
YXRhTGVuZ3RoKSBvdmVycmlkZTsKKyAgICB2b2lkIGRpZEZpbmlzaExvYWRpbmcodW5zaWduZWQg
bG9uZyBpZGVudGlmaWVyKSBvdmVycmlkZTsKKyAgICB2b2lkIGRpZEZhaWwoY29uc3QgUmVzb3Vy
Y2VFcnJvciYpIG92ZXJyaWRlOwogCi0gICAgcHJpdmF0ZToKLSAgICAgICAgZnJpZW5kIGNsYXNz
IFdURjo6UmVmQ291bnRlZDxXb3JrZXJTY3JpcHRMb2FkZXI+OworcHJpdmF0ZToKKyAgICBmcmll
bmQgY2xhc3MgV1RGOjpSZWZDb3VudGVkPFdvcmtlclNjcmlwdExvYWRlcj47CiAKLSAgICAgICAg
V29ya2VyU2NyaXB0TG9hZGVyKCk7Ci0gICAgICAgIH5Xb3JrZXJTY3JpcHRMb2FkZXIoKTsKKyAg
ICBXb3JrZXJTY3JpcHRMb2FkZXIoKTsKKyAgICB+V29ya2VyU2NyaXB0TG9hZGVyKCk7CiAKLSAg
ICAgICAgc3RkOjp1bmlxdWVfcHRyPFJlc291cmNlUmVxdWVzdD4gY3JlYXRlUmVzb3VyY2VSZXF1
ZXN0KGNvbnN0IFN0cmluZyYgaW5pdGlhdG9ySWRlbnRpZmllcik7Ci0gICAgICAgIHZvaWQgbm90
aWZ5RmluaXNoZWQoKTsKKyAgICBzdGQ6OnVuaXF1ZV9wdHI8UmVzb3VyY2VSZXF1ZXN0PiBjcmVh
dGVSZXNvdXJjZVJlcXVlc3QoY29uc3QgU3RyaW5nJiBpbml0aWF0b3JJZGVudGlmaWVyKTsKKyAg
ICB2b2lkIG5vdGlmeUZpbmlzaGVkKCk7CiAKLSAgICAgICAgV29ya2VyU2NyaXB0TG9hZGVyQ2xp
ZW50KiBtX2NsaWVudCB7IG51bGxwdHIgfTsKLSAgICAgICAgUmVmUHRyPFRocmVhZGFibGVMb2Fk
ZXI+IG1fdGhyZWFkYWJsZUxvYWRlcjsKLSAgICAgICAgU3RyaW5nIG1fcmVzcG9uc2VFbmNvZGlu
ZzsgICAgICAgIAotICAgICAgICBSZWZQdHI8VGV4dFJlc291cmNlRGVjb2Rlcj4gbV9kZWNvZGVy
OwotICAgICAgICBTdHJpbmdCdWlsZGVyIG1fc2NyaXB0OwotICAgICAgICBVUkwgbV91cmw7Ci0g
ICAgICAgIFVSTCBtX3Jlc3BvbnNlVVJMOwotICAgICAgICB1bnNpZ25lZCBsb25nIG1faWRlbnRp
ZmllciB7IDAgfTsKLSAgICAgICAgYm9vbCBtX2ZhaWxlZCB7IGZhbHNlIH07Ci0gICAgICAgIGJv
b2wgbV9maW5pc2hpbmcgeyBmYWxzZSB9OwotICAgIH07CisgICAgV29ya2VyU2NyaXB0TG9hZGVy
Q2xpZW50KiBtX2NsaWVudCB7IG51bGxwdHIgfTsKKyAgICBSZWZQdHI8VGhyZWFkYWJsZUxvYWRl
cj4gbV90aHJlYWRhYmxlTG9hZGVyOworICAgIFN0cmluZyBtX3Jlc3BvbnNlRW5jb2Rpbmc7Cisg
ICAgUmVmUHRyPFRleHRSZXNvdXJjZURlY29kZXI+IG1fZGVjb2RlcjsKKyAgICBTdHJpbmdCdWls
ZGVyIG1fc2NyaXB0OworICAgIFVSTCBtX3VybDsKKyAgICBVUkwgbV9yZXNwb25zZVVSTDsKKyAg
ICB1bnNpZ25lZCBsb25nIG1faWRlbnRpZmllciB7IDAgfTsKKyAgICBib29sIG1fZmFpbGVkIHsg
ZmFsc2UgfTsKKyAgICBib29sIG1fZmluaXNoaW5nIHsgZmFsc2UgfTsKKyAgICBSZXNvdXJjZUVy
cm9yIG1fZXJyb3I7Cit9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlclNjcmlwdExvYWRlckNsaWVudC5oIGIvU291cmNl
L1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJTY3JpcHRMb2FkZXJDbGllbnQuaAppbmRleCAxMGQwNmM3
NjIyNi4uZDYwZTE5YzhhODcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29y
a2VyU2NyaXB0TG9hZGVyQ2xpZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3Jr
ZXJTY3JpcHRMb2FkZXJDbGllbnQuaApAQCAtMjgsMTggKzI4LDE1IEBACiAKIG5hbWVzcGFjZSBX
ZWJDb3JlIHsKIAotICAgIGNsYXNzIFJlc291cmNlUmVzcG9uc2U7CitjbGFzcyBSZXNvdXJjZVJl
c3BvbnNlOwogCi0gICAgY2xhc3MgV29ya2VyU2NyaXB0TG9hZGVyQ2xpZW50IHsKLSAgICBwdWJs
aWM6Ci0gICAgICAgIHZpcnR1YWwgdm9pZCBkaWRSZWNlaXZlUmVzcG9uc2UodW5zaWduZWQgbG9u
ZyAvKmlkZW50aWZpZXIqLywgY29uc3QgUmVzb3VyY2VSZXNwb25zZSYpIHsgfQorY2xhc3MgV29y
a2VyU2NyaXB0TG9hZGVyQ2xpZW50IHsKK3B1YmxpYzoKKyAgICB2aXJ0dWFsIHZvaWQgZGlkUmVj
ZWl2ZVJlc3BvbnNlKHVuc2lnbmVkIGxvbmcgaWRlbnRpZmllciwgY29uc3QgUmVzb3VyY2VSZXNw
b25zZSYpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgbm90aWZ5RmluaXNoZWQoKSA9IDA7CiAKLSAg
ICAgICAgLy8gRklYTUU6IG5vdGlmeUZpbmlzaGVkKCkgaXMgbm90IGN1cnJlbnRseSBndWFyYW50
ZWVkIHRvIGJlIGludm9rZWQgaWYgdXNlZCBmcm9tIHdvcmtlciBjb250ZXh0IGFuZCB0aGUgd29y
a2VyIHNodXRzIGRvd24gaW4gdGhlIG1pZGRsZSBvZiBhbiBvcGVyYXRpb24uCi0gICAgICAgIC8v
IFRoaXMgd2lsbCBjYXVzZSBsZWFrcyB3aGVuIHdlIHN1cHBvcnQgbmVzdGVkIHdvcmtlcnMuCi0g
ICAgICAgIHZpcnR1YWwgdm9pZCBub3RpZnlGaW5pc2hlZCgpIHsgfQotCi0gICAgcHJvdGVjdGVk
OgotICAgICAgICB2aXJ0dWFsIH5Xb3JrZXJTY3JpcHRMb2FkZXJDbGllbnQoKSB7IH0KLSAgICB9
OworcHJvdGVjdGVkOgorICAgIHZpcnR1YWwgfldvcmtlclNjcmlwdExvYWRlckNsaWVudCgpIHsg
fQorfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvd29ya2Vycy9zZXJ2aWNlL1NlcnZpY2VXb3JrZXJDb250YWluZXIuY3BwIGIvU291cmNlL1dl
YkNvcmUvd29ya2Vycy9zZXJ2aWNlL1NlcnZpY2VXb3JrZXJDb250YWluZXIuY3BwCmluZGV4IDVj
MWVjZGYxNGQ5Li5kMzBkYzU3YTZkOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvd29ya2Vy
cy9zZXJ2aWNlL1NlcnZpY2VXb3JrZXJDb250YWluZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3dvcmtlcnMvc2VydmljZS9TZXJ2aWNlV29ya2VyQ29udGFpbmVyLmNwcApAQCAtMzIsNyArMzIs
OSBAQAogI2luY2x1ZGUgIklETFR5cGVzLmgiCiAjaW5jbHVkZSAiSlNET01Qcm9taXNlRGVmZXJy
ZWQuaCIKICNpbmNsdWRlICJKU1NlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb24uaCIKKyNpbmNsdWRl
ICJMb2dnaW5nLmgiCiAjaW5jbHVkZSAiTmF2aWdhdG9yQmFzZS5oIgorI2luY2x1ZGUgIlJlc291
cmNlRXJyb3IuaCIKICNpbmNsdWRlICJTY29wZUd1YXJkLmgiCiAjaW5jbHVkZSAiU2NyaXB0RXhl
Y3V0aW9uQ29udGV4dC5oIgogI2luY2x1ZGUgIlNlY3VyaXR5T3JpZ2luLmgiCkBAIC0xODEsNiAr
MTgzLDM1IEBAIHZvaWQgU2VydmljZVdvcmtlckNvbnRhaW5lcjo6am9iUmVzb2x2ZWRXaXRoUmVn
aXN0cmF0aW9uKFNlcnZpY2VXb3JrZXJKb2ImIGpvYiwKICAgICBqb2IucHJvbWlzZSgpLnJlc29s
dmU8SURMSW50ZXJmYWNlPFNlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb24+PihyZWdpc3RyYXRpb24u
Z2V0KCkpOwogfQogCit2b2lkIFNlcnZpY2VXb3JrZXJDb250YWluZXI6OnN0YXJ0U2NyaXB0RmV0
Y2hGb3JKb2IoU2VydmljZVdvcmtlckpvYiYgam9iKQoreworICAgIExPRyhTZXJ2aWNlV29ya2Vy
LCAiU2V2aWNlV29ya2VyQ29udGFpbmVyICVwIHN0YXJ0aW5nIHNjcmlwdCBmZXRjaCBmb3Igam9i
ICUiIFBSSXU2NCwgdGhpcywgam9iLmRhdGEoKS5pZGVudGlmaWVyKCkpOworCisgICAgYXV0byog
Y29udGV4dCA9IHNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKTsKKyAgICBpZiAoIWNvbnRleHQpIHsK
KyAgICAgICAgTE9HX0VSUk9SKCJTZXJ2aWNlV29ya2VyQ29udGFpbmVyOjpqb2JSZXNvbHZlZFdp
dGhSZWdpc3RyYXRpb24gY2FsbGVkIGJ1dCB0aGUgY29udGFpbmVyJ3MgU2NyaXB0RXhlY3V0aW9u
Q29udGV4dCBpcyBnb25lIik7CisgICAgICAgIG1fc3dDb25uZWN0aW9uLT5mYWlsZWRGZXRjaGlu
Z1NjcmlwdChqb2IsIHsgZXJyb3JEb21haW5XZWJLaXRJbnRlcm5hbCwgMCwgam9iLmRhdGEoKS5z
Y3JpcHRVUkwsIEFTQ0lJTGl0ZXJhbCgiQXR0ZW1wdCB0byBmZXRjaCBzZXJ2aWNlIHdvcmtlciBz
Y3JpcHQgd2l0aCBubyBTY3JpcHRFeGVjdXRpb25Db250ZXh0IikgfSk7CisgICAgICAgIGpvYkRp
ZEZpbmlzaChqb2IpOworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgam9iLmZldGNoU2Ny
aXB0V2l0aENvbnRleHQoKmNvbnRleHQpOworfQorCit2b2lkIFNlcnZpY2VXb3JrZXJDb250YWlu
ZXI6OmpvYkZpbmlzaGVkTG9hZGluZ1NjcmlwdChTZXJ2aWNlV29ya2VySm9iJiBqb2IsIGNvbnN0
IFN0cmluZyYgc2NyaXB0KQoreworICAgIExPRyhTZXJ2aWNlV29ya2VyLCAiU2V2aWNlV29ya2Vy
Q29udGFpbmVyICVwIGZpbmlzaGVkIGZldGNoaW5nIHNjcmlwdCBmb3Igam9iICUiIFBSSXU2NCwg
dGhpcywgam9iLmRhdGEoKS5pZGVudGlmaWVyKCkpOworCisgICAgbV9zd0Nvbm5lY3Rpb24tPmZp
bmlzaGVkRmV0Y2hpbmdTY3JpcHQoam9iLCBzY3JpcHQpOworfQorCit2b2lkIFNlcnZpY2VXb3Jr
ZXJDb250YWluZXI6OmpvYkZhaWxlZExvYWRpbmdTY3JpcHQoU2VydmljZVdvcmtlckpvYiYgam9i
LCBjb25zdCBSZXNvdXJjZUVycm9yJiBlcnJvcikKK3sKKyAgICBMT0coU2VydmljZVdvcmtlciwg
IlNldmljZVdvcmtlckNvbnRhaW5lciAlcCBmYWlsZWQgZmV0Y2hpbmcgc2NyaXB0IGZvciBqb2Ig
JSIgUFJJdTY0LCB0aGlzLCBqb2IuZGF0YSgpLmlkZW50aWZpZXIoKSk7CisKKyAgICBtX3N3Q29u
bmVjdGlvbi0+ZmFpbGVkRmV0Y2hpbmdTY3JpcHQoam9iLCBlcnJvcik7Cit9CisKIHZvaWQgU2Vy
dmljZVdvcmtlckNvbnRhaW5lcjo6am9iRGlkRmluaXNoKFNlcnZpY2VXb3JrZXJKb2ImIGpvYikK
IHsKICAgICBhdXRvIHRha2VuID0gbV9qb2JNYXAudGFrZShqb2IuZGF0YSgpLmlkZW50aWZpZXIo
KSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvU2VydmljZVdv
cmtlckNvbnRhaW5lci5oIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL1NlcnZpY2VX
b3JrZXJDb250YWluZXIuaAppbmRleCBlY2RmZDE0NDc3NS4uZmY0Yzc4ZDUxYjUgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9TZXJ2aWNlV29ya2VyQ29udGFpbmVy
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL1NlcnZpY2VXb3JrZXJDb250
YWluZXIuaApAQCAtNzMsNiArNzMsMTAgQEAgcHJpdmF0ZToKIAogICAgIHZvaWQgam9iRmFpbGVk
V2l0aEV4Y2VwdGlvbihTZXJ2aWNlV29ya2VySm9iJiwgY29uc3QgRXhjZXB0aW9uJikgZmluYWw7
CiAgICAgdm9pZCBqb2JSZXNvbHZlZFdpdGhSZWdpc3RyYXRpb24oU2VydmljZVdvcmtlckpvYiYs
IGNvbnN0IFNlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb25EYXRhJikgZmluYWw7CisgICAgdm9pZCBz
dGFydFNjcmlwdEZldGNoRm9ySm9iKFNlcnZpY2VXb3JrZXJKb2ImKSBmaW5hbDsKKyAgICB2b2lk
IGpvYkZpbmlzaGVkTG9hZGluZ1NjcmlwdChTZXJ2aWNlV29ya2VySm9iJiwgY29uc3QgU3RyaW5n
JikgZmluYWw7CisgICAgdm9pZCBqb2JGYWlsZWRMb2FkaW5nU2NyaXB0KFNlcnZpY2VXb3JrZXJK
b2ImLCBjb25zdCBSZXNvdXJjZUVycm9yJikgZmluYWw7CisKICAgICB2b2lkIGpvYkRpZEZpbmlz
aChTZXJ2aWNlV29ya2VySm9iJik7CiAKICAgICB1aW50NjRfdCBjb25uZWN0aW9uSWRlbnRpZmll
cigpIGZpbmFsOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL1Nl
cnZpY2VXb3JrZXJGZXRjaFJlc3VsdC5oIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNl
L1NlcnZpY2VXb3JrZXJGZXRjaFJlc3VsdC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwLi5iYTVjZjk2ZDA2YwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3dvcmtlcnMvc2VydmljZS9TZXJ2aWNlV29ya2VyRmV0Y2hSZXN1bHQuaApAQCAtMCwwICsxLDcx
IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE3IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNl
cnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5
IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBw
cm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEu
IFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29w
eXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0g
bXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICog
ICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhl
IGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExF
IElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1Mg
T1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAq
IFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZP
UiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNI
QUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkg
RElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICog
Q09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJP
Q1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNF
LCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVS
IENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENP
TlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBP
UiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJ
UyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VD
SCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNpZiBFTkFCTEUoU0VSVklDRV9XT1JL
RVIpCisKKyNpbmNsdWRlICJSZXNvdXJjZUVycm9yLmgiCisjaW5jbHVkZSAiU2VydmljZVdvcmtl
clJlZ2lzdHJhdGlvbktleS5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK3N0cnVjdCBTZXJ2
aWNlV29ya2VyRmV0Y2hSZXN1bHQgeworICAgIHVpbnQ2NF90IGpvYklkZW50aWZpZXI7CisgICAg
dWludDY0X3QgY29ubmVjdGlvbklkZW50aWZpZXI7CisgICAgU2VydmljZVdvcmtlclJlZ2lzdHJh
dGlvbktleSByZWdpc3RyYXRpb25LZXk7CisgICAgU3RyaW5nIHNjcmlwdDsKKyAgICBSZXNvdXJj
ZUVycm9yIHNjcmlwdEVycm9yOworCisgICAgdGVtcGxhdGU8Y2xhc3MgRW5jb2Rlcj4gdm9pZCBl
bmNvZGUoRW5jb2RlciYpIGNvbnN0OworICAgIHRlbXBsYXRlPGNsYXNzIERlY29kZXI+IHN0YXRp
YyBib29sIGRlY29kZShEZWNvZGVyJiwgU2VydmljZVdvcmtlckZldGNoUmVzdWx0Jik7Cit9Owor
Cit0ZW1wbGF0ZTxjbGFzcyBFbmNvZGVyPgordm9pZCBTZXJ2aWNlV29ya2VyRmV0Y2hSZXN1bHQ6
OmVuY29kZShFbmNvZGVyJiBlbmNvZGVyKSBjb25zdAoreworICAgIGVuY29kZXIgPDwgam9iSWRl
bnRpZmllciA8PCBjb25uZWN0aW9uSWRlbnRpZmllciA8PCByZWdpc3RyYXRpb25LZXkgPDwgc2Ny
aXB0IDw8IHNjcmlwdEVycm9yOworfQorCit0ZW1wbGF0ZTxjbGFzcyBEZWNvZGVyPgorYm9vbCBT
ZXJ2aWNlV29ya2VyRmV0Y2hSZXN1bHQ6OmRlY29kZShEZWNvZGVyJiBkZWNvZGVyLCBTZXJ2aWNl
V29ya2VyRmV0Y2hSZXN1bHQmIHJlc3VsdCkKK3sKKyAgICBpZiAoIWRlY29kZXIuZGVjb2RlKHJl
c3VsdC5qb2JJZGVudGlmaWVyKSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIGlmICghZGVj
b2Rlci5kZWNvZGUocmVzdWx0LmNvbm5lY3Rpb25JZGVudGlmaWVyKSkKKyAgICAgICAgcmV0dXJu
IGZhbHNlOworICAgIGlmICghZGVjb2Rlci5kZWNvZGUocmVzdWx0LnJlZ2lzdHJhdGlvbktleSkp
CisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICBpZiAoIWRlY29kZXIuZGVjb2RlKHJlc3VsdC5z
Y3JpcHQpKQorICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgaWYgKCFkZWNvZGVyLmRlY29kZShy
ZXN1bHQuc2NyaXB0RXJyb3IpKQorICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICByZXR1cm4g
dHJ1ZTsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYgLy8gRU5BQkxFKFNF
UlZJQ0VfV09SS0VSKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNl
L1NlcnZpY2VXb3JrZXJKb2IuY3BwIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL1Nl
cnZpY2VXb3JrZXJKb2IuY3BwCmluZGV4IDQ5ZmIwOGViN2QzLi4yMzFlMDQxMjE3ZiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL1NlcnZpY2VXb3JrZXJKb2IuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9TZXJ2aWNlV29ya2VySm9iLmNw
cApAQCAtMjksNiArMjksOCBAQAogI2lmIEVOQUJMRShTRVJWSUNFX1dPUktFUikKIAogI2luY2x1
ZGUgIkpTRE9NUHJvbWlzZURlZmVycmVkLmgiCisjaW5jbHVkZSAiUmVzb3VyY2VFcnJvci5oIgor
I2luY2x1ZGUgIlJlc291cmNlUmVzcG9uc2UuaCIKICNpbmNsdWRlICJTZXJ2aWNlV29ya2VySm9i
RGF0YS5oIgogI2luY2x1ZGUgIlNlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb24uaCIKIApAQCAtNjQs
NiArNjYsNDYgQEAgdm9pZCBTZXJ2aWNlV29ya2VySm9iOjpyZXNvbHZlZFdpdGhSZWdpc3RyYXRp
b24oY29uc3QgU2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbkQKICAgICBtX2NsaWVudC0+am9iUmVz
b2x2ZWRXaXRoUmVnaXN0cmF0aW9uKCp0aGlzLCBkYXRhKTsKIH0KIAordm9pZCBTZXJ2aWNlV29y
a2VySm9iOjpzdGFydFNjcmlwdEZldGNoKCkKK3sKKyAgICBBU1NFUlQoY3VycmVudFRocmVhZCgp
ID09IG1fY3JlYXRpb25UaHJlYWQpOworICAgIEFTU0VSVCghbV9jb21wbGV0ZWQpOworCisgICAg
bV9jbGllbnQtPnN0YXJ0U2NyaXB0RmV0Y2hGb3JKb2IoKnRoaXMpOworfQorCit2b2lkIFNlcnZp
Y2VXb3JrZXJKb2I6OmZldGNoU2NyaXB0V2l0aENvbnRleHQoU2NyaXB0RXhlY3V0aW9uQ29udGV4
dCYgY29udGV4dCkKK3sKKyAgICBBU1NFUlQoY3VycmVudFRocmVhZCgpID09IG1fY3JlYXRpb25U
aHJlYWQpOworICAgIEFTU0VSVCghbV9jb21wbGV0ZWQpOworCisgICAgLy8gRklYTUU6IFdvcmtl
clNjcmlwdExvYWRlciBpcyB0aGUgd3JvbmcgbG9hZGVyIGNsYXNzIHRvIHVzZSBoZXJlLCBidXQg
dGhlcmUncyBub3RoaW5nIGVsc2UgYmV0dGVyIHJpZ2h0IG5vdy4KKyAgICBtX3NjcmlwdExvYWRl
ciA9IFdvcmtlclNjcmlwdExvYWRlcjo6Y3JlYXRlKCk7CisgICAgbV9zY3JpcHRMb2FkZXItPmxv
YWRBc3luY2hyb25vdXNseSgmY29udGV4dCwgbV9qb2JEYXRhLnNjcmlwdFVSTCwgRmV0Y2hPcHRp
b25zOjpNb2RlOjpTYW1lT3JpZ2luLCBDb250ZW50U2VjdXJpdHlQb2xpY3lFbmZvcmNlbWVudDo6
RG9Ob3RFbmZvcmNlLCAic2VydmljZVdvcmtlclNjcmlwdExvYWQ6IiwgdGhpcyk7Cit9CisKK3Zv
aWQgU2VydmljZVdvcmtlckpvYjo6ZGlkUmVjZWl2ZVJlc3BvbnNlKHVuc2lnbmVkIGxvbmcsIGNv
bnN0IFJlc291cmNlUmVzcG9uc2UmIHJlc3BvbnNlKQoreworICAgIEFTU0VSVChjdXJyZW50VGhy
ZWFkKCkgPT0gbV9jcmVhdGlvblRocmVhZCk7CisgICAgQVNTRVJUKCFtX2NvbXBsZXRlZCk7Cisg
ICAgQVNTRVJUKG1fc2NyaXB0TG9hZGVyKTsKKworICAgIG1fbGFzdFJlc3BvbnNlID0gcmVzcG9u
c2U7Cit9CisKK3ZvaWQgU2VydmljZVdvcmtlckpvYjo6bm90aWZ5RmluaXNoZWQoKQoreworICAg
IEFTU0VSVChjdXJyZW50VGhyZWFkKCkgPT0gbV9jcmVhdGlvblRocmVhZCk7CisgICAgQVNTRVJU
KG1fc2NyaXB0TG9hZGVyKTsKKyAgICAKKyAgICBpZiAoIW1fc2NyaXB0TG9hZGVyLT5mYWlsZWQo
KSkKKyAgICAgICAgbV9jbGllbnQtPmpvYkZpbmlzaGVkTG9hZGluZ1NjcmlwdCgqdGhpcywgbV9z
Y3JpcHRMb2FkZXItPnNjcmlwdCgpKTsKKyAgICBlbHNlCisgICAgICAgIG1fY2xpZW50LT5qb2JG
YWlsZWRMb2FkaW5nU2NyaXB0KCp0aGlzLCBtX3NjcmlwdExvYWRlci0+ZXJyb3IoKSk7CisKKyAg
ICBtX3NjcmlwdExvYWRlciA9IG51bGxwdHI7Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUK
IAogI2VuZGlmIC8vIEVOQUJMRShTRVJWSUNFX1dPUktFUikKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3dvcmtlcnMvc2VydmljZS9TZXJ2aWNlV29ya2VySm9iLmggYi9Tb3VyY2UvV2ViQ29y
ZS93b3JrZXJzL3NlcnZpY2UvU2VydmljZVdvcmtlckpvYi5oCmluZGV4IGQ5N2FjMWE0MzM1Li43
N2QyMTgzNWU4NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL1Nl
cnZpY2VXb3JrZXJKb2IuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvU2Vy
dmljZVdvcmtlckpvYi5oCkBAIC0yNyw4ICsyNywxMSBAQAogCiAjaWYgRU5BQkxFKFNFUlZJQ0Vf
V09SS0VSKQogCisjaW5jbHVkZSAiUmVzb3VyY2VSZXNwb25zZS5oIgogI2luY2x1ZGUgIlNlcnZp
Y2VXb3JrZXJKb2JDbGllbnQuaCIKICNpbmNsdWRlICJTZXJ2aWNlV29ya2VySm9iRGF0YS5oIgor
I2luY2x1ZGUgIldvcmtlclNjcmlwdExvYWRlci5oIgorI2luY2x1ZGUgIldvcmtlclNjcmlwdExv
YWRlckNsaWVudC5oIgogI2luY2x1ZGUgPHd0Zi9SZWZQdHIuaD4KICNpbmNsdWRlIDx3dGYvUnVu
TG9vcC5oPgogI2luY2x1ZGUgPHd0Zi9UaHJlYWRTYWZlUmVmQ291bnRlZC5oPgpAQCAtMzgsMTAg
KzQxLDExIEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY2xhc3MgRGVmZXJyZWRQcm9taXNlOwog
Y2xhc3MgRXhjZXB0aW9uOworY2xhc3MgU2NyaXB0RXhlY3V0aW9uQ29udGV4dDsKIGVudW0gY2xh
c3MgU2VydmljZVdvcmtlckpvYlR5cGU7CiBzdHJ1Y3QgU2VydmljZVdvcmtlclJlZ2lzdHJhdGlv
bkRhdGE7CiAKLWNsYXNzIFNlcnZpY2VXb3JrZXJKb2IgOiBwdWJsaWMgVGhyZWFkU2FmZVJlZkNv
dW50ZWQ8U2VydmljZVdvcmtlckpvYj4geworY2xhc3MgU2VydmljZVdvcmtlckpvYiA6IHB1Ymxp
YyBUaHJlYWRTYWZlUmVmQ291bnRlZDxTZXJ2aWNlV29ya2VySm9iPiwgcHVibGljIFdvcmtlclNj
cmlwdExvYWRlckNsaWVudCB7CiBwdWJsaWM6CiAgICAgc3RhdGljIFJlZjxTZXJ2aWNlV29ya2Vy
Sm9iPiBjcmVhdGUoU2VydmljZVdvcmtlckpvYkNsaWVudCYgY2xpZW50LCBSZWY8RGVmZXJyZWRQ
cm9taXNlPiYmIHByb21pc2UsIFNlcnZpY2VXb3JrZXJKb2JEYXRhJiYgam9iRGF0YSkKICAgICB7
CkBAIC01MiwxMyArNTYsMjAgQEAgcHVibGljOgogCiAgICAgdm9pZCBmYWlsZWRXaXRoRXhjZXB0
aW9uKGNvbnN0IEV4Y2VwdGlvbiYpOwogICAgIHZvaWQgcmVzb2x2ZWRXaXRoUmVnaXN0cmF0aW9u
KGNvbnN0IFNlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb25EYXRhJik7CisgICAgdm9pZCBzdGFydFNj
cmlwdEZldGNoKCk7CiAKICAgICBTZXJ2aWNlV29ya2VySm9iRGF0YSBkYXRhKCkgY29uc3QgeyBy
ZXR1cm4gbV9qb2JEYXRhOyB9CiAgICAgRGVmZXJyZWRQcm9taXNlJiBwcm9taXNlKCkgeyByZXR1
cm4gbV9wcm9taXNlLmdldCgpOyB9CiAKKyAgICB2b2lkIGZldGNoU2NyaXB0V2l0aENvbnRleHQo
U2NyaXB0RXhlY3V0aW9uQ29udGV4dCYpOworCiBwcml2YXRlOgogICAgIFNlcnZpY2VXb3JrZXJK
b2IoU2VydmljZVdvcmtlckpvYkNsaWVudCYsIFJlZjxEZWZlcnJlZFByb21pc2U+JiYsIFNlcnZp
Y2VXb3JrZXJKb2JEYXRhJiYpOwogCisgICAgLy8gV29ya2VyU2NyaXB0TG9hZGVyQ2xpZW50Cisg
ICAgdm9pZCBkaWRSZWNlaXZlUmVzcG9uc2UodW5zaWduZWQgbG9uZyBpZGVudGlmaWVyLCBjb25z
dCBSZXNvdXJjZVJlc3BvbnNlJikgZmluYWw7CisgICAgdm9pZCBub3RpZnlGaW5pc2hlZCgpIGZp
bmFsOworCiAgICAgUmVmPFNlcnZpY2VXb3JrZXJKb2JDbGllbnQ+IG1fY2xpZW50OwogICAgIFNl
cnZpY2VXb3JrZXJKb2JEYXRhIG1fam9iRGF0YTsKICAgICBSZWY8RGVmZXJyZWRQcm9taXNlPiBt
X3Byb21pc2U7CkBAIC02Niw2ICs3Nyw4IEBAIHByaXZhdGU6CiAgICAgYm9vbCBtX2NvbXBsZXRl
ZCB7IGZhbHNlIH07CiAKICAgICBSZWY8UnVuTG9vcD4gbV9ydW5Mb29wIHsgUnVuTG9vcDo6Y3Vy
cmVudCgpIH07CisgICAgUmVmUHRyPFdvcmtlclNjcmlwdExvYWRlcj4gbV9zY3JpcHRMb2FkZXI7
CisgICAgUmVzb3VyY2VSZXNwb25zZSBtX2xhc3RSZXNwb25zZTsKIAogI2lmICFBU1NFUlRfRElT
QUJMRUQKICAgICBUaHJlYWRJZGVudGlmaWVyIG1fY3JlYXRpb25UaHJlYWQgeyBjdXJyZW50VGhy
ZWFkKCkgfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9TZXJ2
aWNlV29ya2VySm9iQ2xpZW50LmggYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvU2Vy
dmljZVdvcmtlckpvYkNsaWVudC5oCmluZGV4IDYyODBmMGNhYWQ3Li5mOWNmMjI2YThmZSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL1NlcnZpY2VXb3JrZXJKb2JD
bGllbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvU2VydmljZVdvcmtl
ckpvYkNsaWVudC5oCkBAIC0zMCw3ICszMCw5IEBACiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNs
YXNzIEV4Y2VwdGlvbjsKK2NsYXNzIFJlc291cmNlRXJyb3I7CiBjbGFzcyBTZXJ2aWNlV29ya2Vy
Sm9iOworY2xhc3MgU2hhcmVkQnVmZmVyOwogc3RydWN0IFNlcnZpY2VXb3JrZXJSZWdpc3RyYXRp
b25EYXRhOwogCiBjbGFzcyBTZXJ2aWNlV29ya2VySm9iQ2xpZW50IHsKQEAgLTM5LDYgKzQxLDkg
QEAgcHVibGljOgogCiAgICAgdmlydHVhbCB2b2lkIGpvYkZhaWxlZFdpdGhFeGNlcHRpb24oU2Vy
dmljZVdvcmtlckpvYiYsIGNvbnN0IEV4Y2VwdGlvbiYpID0gMDsKICAgICB2aXJ0dWFsIHZvaWQg
am9iUmVzb2x2ZWRXaXRoUmVnaXN0cmF0aW9uKFNlcnZpY2VXb3JrZXJKb2ImLCBjb25zdCBTZXJ2
aWNlV29ya2VyUmVnaXN0cmF0aW9uRGF0YSYpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgc3RhcnRT
Y3JpcHRGZXRjaEZvckpvYihTZXJ2aWNlV29ya2VySm9iJikgPSAwOworICAgIHZpcnR1YWwgdm9p
ZCBqb2JGaW5pc2hlZExvYWRpbmdTY3JpcHQoU2VydmljZVdvcmtlckpvYiYsIGNvbnN0IFN0cmlu
ZyYpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgam9iRmFpbGVkTG9hZGluZ1NjcmlwdChTZXJ2aWNl
V29ya2VySm9iJiwgY29uc3QgUmVzb3VyY2VFcnJvciYpID0gMDsKIAogICAgIHZpcnR1YWwgdWlu
dDY0X3QgY29ubmVjdGlvbklkZW50aWZpZXIoKSA9IDA7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3dvcmtlcnMvc2VydmljZS9zZXJ2ZXIvU1dDbGllbnRDb25uZWN0aW9uLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9zZXJ2ZXIvU1dDbGllbnRDb25uZWN0aW9uLmNw
cAppbmRleCA0NzAyYmJiNzI4MS4uMGJjNDkwMmFhZTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3dvcmtlcnMvc2VydmljZS9zZXJ2ZXIvU1dDbGllbnRDb25uZWN0aW9uLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2Uvc2VydmVyL1NXQ2xpZW50Q29ubmVjdGlvbi5j
cHAKQEAgLTI5LDYgKzI5LDcgQEAKICNpZiBFTkFCTEUoU0VSVklDRV9XT1JLRVIpCiAKICNpbmNs
dWRlICJFeGNlcHRpb25EYXRhLmgiCisjaW5jbHVkZSAiU2VydmljZVdvcmtlckZldGNoUmVzdWx0
LmgiCiAjaW5jbHVkZSAiU2VydmljZVdvcmtlckpvYkRhdGEuaCIKIAogbmFtZXNwYWNlIFdlYkNv
cmUgewpAQCAtNDksNiArNTAsMjAgQEAgdm9pZCBTV0NsaWVudENvbm5lY3Rpb246OnNjaGVkdWxl
Sm9iKFNlcnZpY2VXb3JrZXJKb2ImIGpvYikKICAgICBzY2hlZHVsZUpvYkluU2VydmVyKGpvYi5k
YXRhKCkpOwogfQogCit2b2lkIFNXQ2xpZW50Q29ubmVjdGlvbjo6ZmluaXNoZWRGZXRjaGluZ1Nj
cmlwdChTZXJ2aWNlV29ya2VySm9iJiBqb2IsIGNvbnN0IFN0cmluZyYgc2NyaXB0KQoreworICAg
IEFTU0VSVChtX3NjaGVkdWxlZEpvYnMuZ2V0KGpvYi5kYXRhKCkuaWRlbnRpZmllcigpKSA9PSAm
am9iKTsKKworICAgIGZpbmlzaEZldGNoaW5nU2NyaXB0SW5TZXJ2ZXIoeyBqb2IuZGF0YSgpLmlk
ZW50aWZpZXIoKSwgam9iLmRhdGEoKS5jb25uZWN0aW9uSWRlbnRpZmllcigpLCBqb2IuZGF0YSgp
LnJlZ2lzdHJhdGlvbktleSgpLCBzY3JpcHQsIHsgfSB9KTsKK30KKwordm9pZCBTV0NsaWVudENv
bm5lY3Rpb246OmZhaWxlZEZldGNoaW5nU2NyaXB0KFNlcnZpY2VXb3JrZXJKb2ImIGpvYiwgY29u
c3QgUmVzb3VyY2VFcnJvciYgZXJyb3IpCit7CisgICAgQVNTRVJUKG1fc2NoZWR1bGVkSm9icy5n
ZXQoam9iLmRhdGEoKS5pZGVudGlmaWVyKCkpID09ICZqb2IpOworCisgICAgZmluaXNoRmV0Y2hp
bmdTY3JpcHRJblNlcnZlcih7IGpvYi5kYXRhKCkuaWRlbnRpZmllcigpLCBqb2IuZGF0YSgpLmNv
bm5lY3Rpb25JZGVudGlmaWVyKCksIGpvYi5kYXRhKCkucmVnaXN0cmF0aW9uS2V5KCksIHsgfSwg
ZXJyb3IgfSk7Cit9CisKIHZvaWQgU1dDbGllbnRDb25uZWN0aW9uOjpqb2JSZWplY3RlZEluU2Vy
dmVyKHVpbnQ2NF90IGpvYklkZW50aWZpZXIsIGNvbnN0IEV4Y2VwdGlvbkRhdGEmIGV4Y2VwdGlv
bkRhdGEpCiB7CiAgICAgYXV0byBqb2IgPSBtX3NjaGVkdWxlZEpvYnMudGFrZShqb2JJZGVudGlm
aWVyKTsKQEAgLTcxLDYgKzg2LDIyIEBAIHZvaWQgU1dDbGllbnRDb25uZWN0aW9uOjpqb2JSZXNv
bHZlZEluU2VydmVyKHVpbnQ2NF90IGpvYklkZW50aWZpZXIsIGNvbnN0IFNlcnZpCiAgICAgam9i
LT5yZXNvbHZlZFdpdGhSZWdpc3RyYXRpb24ocmVnaXN0cmF0aW9uRGF0YSk7CiB9CiAKK3ZvaWQg
U1dDbGllbnRDb25uZWN0aW9uOjpzdGFydFNjcmlwdEZldGNoRm9yU2VydmVyKHVpbnQ2NF90IGpv
YklkZW50aWZpZXIpCit7CisgICAgYXV0byBqb2IgPSBtX3NjaGVkdWxlZEpvYnMuZ2V0KGpvYklk
ZW50aWZpZXIpOworICAgIGlmICgham9iKSB7CisgICAgICAgIExPR19FUlJPUigiSm9iICUiIFBS
SXU2NCAiIGluc3RydWN0ZWQgdG8gc3RhcnQgZmV0Y2ggZnJvbSBzZXJ2ZXIsIGJ1dCBqb2Igd2Fz
IG5vdCBmb3VuZCIsIGpvYklkZW50aWZpZXIpOworCisgICAgICAgIC8vIEZJWE1FOiBTaG91bGQg
bWVzc2FnZSBiYWNrIHRvIHRoZSBzZXJ2ZXIgaGVyZSB0byBzaWduYWwgZmFpbHVyZSB0byBmZXRj
aCwKKyAgICAgICAgLy8gYnV0IHdlIGN1cnJlbnRseSBuZWVkIHRoZSByZWdpc3RyYXRpb24ga2V5
IHRvIGRvIHNvLCBhbmQgZG9uJ3QgaGF2ZSBpdCBoZXJlLgorICAgICAgICAvLyBJbiB0aGUgZnV0
dXJlIHdlJ2xsIHJlZmFjdG9yIHRvIGhhdmUgYSBnbG9iYWwsIGNyb3NzLXByb2Nlc3Mgam9iIGlk
ZW50aWZpZXIgdGhhdCBjYW4gYmUgdXNlZCB0byBvdmVyY29tZSB0aGlzLgorCisgICAgICAgIHJl
dHVybjsKKyAgICB9CisKKyAgICBqb2ItPnN0YXJ0U2NyaXB0RmV0Y2goKTsKK30KKwogfSAvLyBu
YW1lc3BhY2UgV2ViQ29yZQogCiAjZW5kaWYgLy8gRU5BQkxFKFNFUlZJQ0VfV09SS0VSKQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL3NlcnZlci9TV0NsaWVudENv
bm5lY3Rpb24uaCBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9zZXJ2ZXIvU1dDbGll
bnRDb25uZWN0aW9uLmgKaW5kZXggYjkxZTA0Mjg4MmQuLjBiYjg1ZGQxNTQ0IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2Uvc2VydmVyL1NXQ2xpZW50Q29ubmVjdGlv
bi5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9zZXJ2ZXIvU1dDbGllbnRD
b25uZWN0aW9uLmgKQEAgLTMzLDcgKzMzLDEwIEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAor
Y2xhc3MgUmVzb3VyY2VFcnJvcjsKK2NsYXNzIFNoYXJlZEJ1ZmZlcjsKIHN0cnVjdCBFeGNlcHRp
b25EYXRhOworc3RydWN0IFNlcnZpY2VXb3JrZXJGZXRjaFJlc3VsdDsKIHN0cnVjdCBTZXJ2aWNl
V29ya2VyUmVnaXN0cmF0aW9uRGF0YTsKIAogY2xhc3MgU1dDbGllbnRDb25uZWN0aW9uIDogcHVi
bGljIFRocmVhZFNhZmVSZWZDb3VudGVkPFNXQ2xpZW50Q29ubmVjdGlvbj4gewpAQCAtNDIsMTUg
KzQ1LDE5IEBAIHB1YmxpYzoKICAgICBXRUJDT1JFX0VYUE9SVCB2aXJ0dWFsIH5TV0NsaWVudENv
bm5lY3Rpb24oKTsKIAogICAgIHZvaWQgc2NoZWR1bGVKb2IoU2VydmljZVdvcmtlckpvYiYpOwor
ICAgIHZvaWQgZmluaXNoZWRGZXRjaGluZ1NjcmlwdChTZXJ2aWNlV29ya2VySm9iJiwgY29uc3Qg
U3RyaW5nJik7CisgICAgdm9pZCBmYWlsZWRGZXRjaGluZ1NjcmlwdChTZXJ2aWNlV29ya2VySm9i
JiwgY29uc3QgUmVzb3VyY2VFcnJvciYpOwogCiAgICAgdmlydHVhbCB1aW50NjRfdCBpZGVudGlm
aWVyKCkgY29uc3QgPSAwOwogCiBwcm90ZWN0ZWQ6CiAgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBq
b2JSZWplY3RlZEluU2VydmVyKHVpbnQ2NF90IGpvYklkZW50aWZpZXIsIGNvbnN0IEV4Y2VwdGlv
bkRhdGEmKTsKICAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIGpvYlJlc29sdmVkSW5TZXJ2ZXIodWlu
dDY0X3Qgam9iSWRlbnRpZmllciwgY29uc3QgU2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbkRhdGEm
KTsKKyAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHN0YXJ0U2NyaXB0RmV0Y2hGb3JTZXJ2ZXIodWlu
dDY0X3Qgam9iSWRlbnRpZmllcik7CiAKIHByaXZhdGU6CiAgICAgdmlydHVhbCB2b2lkIHNjaGVk
dWxlSm9iSW5TZXJ2ZXIoY29uc3QgU2VydmljZVdvcmtlckpvYkRhdGEmKSA9IDA7CisgICAgdmly
dHVhbCB2b2lkIGZpbmlzaEZldGNoaW5nU2NyaXB0SW5TZXJ2ZXIoY29uc3QgU2VydmljZVdvcmtl
ckZldGNoUmVzdWx0JikgPSAwOwogCiAgICAgSGFzaE1hcDx1aW50NjRfdCwgUmVmUHRyPFNlcnZp
Y2VXb3JrZXJKb2I+PiBtX3NjaGVkdWxlZEpvYnM7CiB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvd29ya2Vycy9zZXJ2aWNlL3NlcnZlci9TV1NlcnZlci5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS93b3JrZXJzL3NlcnZpY2Uvc2VydmVyL1NXU2VydmVyLmNwcAppbmRleCA0MDE5MzQwYjhiZC4u
NmY4MWFiMjY5MTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9z
ZXJ2ZXIvU1dTZXJ2ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9z
ZXJ2ZXIvU1dTZXJ2ZXIuY3BwCkBAIC0zMiw2ICszMiw3IEBACiAjaW5jbHVkZSAiRXhjZXB0aW9u
RGF0YS5oIgogI2luY2x1ZGUgIkxvZ2dpbmcuaCIKICNpbmNsdWRlICJTV1NlcnZlclJlZ2lzdHJh
dGlvbi5oIgorI2luY2x1ZGUgIlNlcnZpY2VXb3JrZXJGZXRjaFJlc3VsdC5oIgogI2luY2x1ZGUg
IlNlcnZpY2VXb3JrZXJKb2JEYXRhLmgiCiAjaW5jbHVkZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+
CiAKQEAgLTcyLDYgKzczLDExIEBAIHZvaWQgU1dTZXJ2ZXI6OkNvbm5lY3Rpb246OnNjaGVkdWxl
Sm9iSW5TZXJ2ZXIoY29uc3QgU2VydmljZVdvcmtlckpvYkRhdGEmIGpvYkRhCiAgICAgbV9zZXJ2
ZXIuc2NoZWR1bGVKb2Ioam9iRGF0YSk7CiB9CiAKK3ZvaWQgU1dTZXJ2ZXI6OkNvbm5lY3Rpb246
OmZpbmlzaEZldGNoaW5nU2NyaXB0SW5TZXJ2ZXIoY29uc3QgU2VydmljZVdvcmtlckZldGNoUmVz
dWx0JiByZXN1bHQpCit7CisgICAgbV9zZXJ2ZXIuc2NyaXB0RmV0Y2hGaW5pc2hlZChyZXN1bHQp
OworfQorCiBTV1NlcnZlcjo6U1dTZXJ2ZXIoKQogewogICAgIG1fdGFza1RocmVhZCA9IFRocmVh
ZDo6Y3JlYXRlKEFTQ0lJTGl0ZXJhbCgiU2VydmljZVdvcmtlciBUYXNrIFRocmVhZCIpLCBbdGhp
c10gewpAQCAtMTEyLDYgKzExOCwyOSBAQCB2b2lkIFNXU2VydmVyOjpyZXNvbHZlSm9iKGNvbnN0
IFNlcnZpY2VXb3JrZXJKb2JEYXRhJiBqb2JEYXRhLCBjb25zdCBTZXJ2aWNlV29yawogICAgIGNv
bm5lY3Rpb24tPnJlc29sdmVKb2JJbkNsaWVudChqb2JEYXRhLmlkZW50aWZpZXIoKSwgcmVnaXN0
cmF0aW9uRGF0YSk7CiB9CiAKK3ZvaWQgU1dTZXJ2ZXI6OnN0YXJ0U2NyaXB0RmV0Y2goY29uc3Qg
U2VydmljZVdvcmtlckpvYkRhdGEmIGpvYkRhdGEpCit7CisgICAgTE9HKFNlcnZpY2VXb3JrZXIs
ICJTZXJ2ZXIgaXNzdWluZyBzdGFydFNjcmlwdEZldGNoIGZvciBjdXJyZW50IGpvYiAlIiBQUkl1
NjQgIi0lIiBQUkl1NjQgIiBpbiBjbGllbnQiLCBqb2JEYXRhLmNvbm5lY3Rpb25JZGVudGlmaWVy
KCksIGpvYkRhdGEuaWRlbnRpZmllcigpKTsKKyAgICBhdXRvKiBjb25uZWN0aW9uID0gbV9jb25u
ZWN0aW9ucy5nZXQoam9iRGF0YS5jb25uZWN0aW9uSWRlbnRpZmllcigpKTsKKyAgICBpZiAoIWNv
bm5lY3Rpb24pCisgICAgICAgIHJldHVybjsKKworICAgIGNvbm5lY3Rpb24tPnN0YXJ0U2NyaXB0
RmV0Y2hJbkNsaWVudChqb2JEYXRhLmlkZW50aWZpZXIoKSk7Cit9CisKK3ZvaWQgU1dTZXJ2ZXI6
OnNjcmlwdEZldGNoRmluaXNoZWQoY29uc3QgU2VydmljZVdvcmtlckZldGNoUmVzdWx0JiByZXN1
bHQpCit7CisgICAgTE9HKFNlcnZpY2VXb3JrZXIsICJTZXJ2ZXIgaGFuZGxpbmcgc2NyaXB0RmV0
Y2hGaW5pc2hlZCBmb3IgY3VycmVudCBqb2IgJSIgUFJJdTY0ICItJSIgUFJJdTY0ICIgaW4gY2xp
ZW50IiwgcmVzdWx0LmNvbm5lY3Rpb25JZGVudGlmaWVyLCByZXN1bHQuam9iSWRlbnRpZmllcik7
CisKKyAgICBBU1NFUlQobV9jb25uZWN0aW9ucy5jb250YWlucyhyZXN1bHQuY29ubmVjdGlvbklk
ZW50aWZpZXIpKTsKKworICAgIGF1dG8gcmVnaXN0cmF0aW9uID0gbV9yZWdpc3RyYXRpb25zLmdl
dChyZXN1bHQucmVnaXN0cmF0aW9uS2V5KTsKKyAgICBpZiAoIXJlZ2lzdHJhdGlvbikKKyAgICAg
ICAgcmV0dXJuOworCisgICAgcmVnaXN0cmF0aW9uLT5zY3JpcHRGZXRjaEZpbmlzaGVkKHJlc3Vs
dCk7Cit9CisKIHZvaWQgU1dTZXJ2ZXI6OnRhc2tUaHJlYWRFbnRyeVBvaW50KCkKIHsKICAgICBB
U1NFUlQoIWlzTWFpblRocmVhZCgpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3dvcmtl
cnMvc2VydmljZS9zZXJ2ZXIvU1dTZXJ2ZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2Vy
dmljZS9zZXJ2ZXIvU1dTZXJ2ZXIuaAppbmRleCA5YmQ0MGY3NDY2Ni4uYTFmYzVkMzM5ODkgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9zZXJ2ZXIvU1dTZXJ2ZXIu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2Uvc2VydmVyL1NXU2VydmVyLmgK
QEAgLTQzLDYgKzQzLDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiBjbGFzcyBTV1NlcnZlclJl
Z2lzdHJhdGlvbjsKIHN0cnVjdCBFeGNlcHRpb25EYXRhOworc3RydWN0IFNlcnZpY2VXb3JrZXJG
ZXRjaFJlc3VsdDsKIHN0cnVjdCBTZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uRGF0YTsKIAogY2xh
c3MgU1dTZXJ2ZXIgewpAQCAtNTcsMTAgKzU4LDEyIEBAIHB1YmxpYzoKICAgICAgICAgU1dTZXJ2
ZXImIHNlcnZlcigpIHsgcmV0dXJuIG1fc2VydmVyOyB9CiAKICAgICAgICAgV0VCQ09SRV9FWFBP
UlQgdm9pZCBzY2hlZHVsZUpvYkluU2VydmVyKGNvbnN0IFNlcnZpY2VXb3JrZXJKb2JEYXRhJik7
CisgICAgICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgZmluaXNoRmV0Y2hpbmdTY3JpcHRJblNlcnZl
cihjb25zdCBTZXJ2aWNlV29ya2VyRmV0Y2hSZXN1bHQmKTsKIAogICAgIHByaXZhdGU6CiAgICAg
ICAgIHZpcnR1YWwgdm9pZCByZWplY3RKb2JJbkNsaWVudCh1aW50NjRfdCBqb2JJZGVudGlmaWVy
LCBjb25zdCBFeGNlcHRpb25EYXRhJikgPSAwOwogICAgICAgICB2aXJ0dWFsIHZvaWQgcmVzb2x2
ZUpvYkluQ2xpZW50KHVpbnQ2NF90IGpvYklkZW50aWZpZXIsIGNvbnN0IFNlcnZpY2VXb3JrZXJS
ZWdpc3RyYXRpb25EYXRhJikgPSAwOworICAgICAgICB2aXJ0dWFsIHZvaWQgc3RhcnRTY3JpcHRG
ZXRjaEluQ2xpZW50KHVpbnQ2NF90IGpvYklkZW50aWZpZXIpID0gMDsKIAogICAgICAgICBTV1Nl
cnZlciYgbV9zZXJ2ZXI7CiAgICAgfTsKQEAgLTcxLDYgKzc0LDggQEAgcHVibGljOgogICAgIHZv
aWQgc2NoZWR1bGVKb2IoY29uc3QgU2VydmljZVdvcmtlckpvYkRhdGEmKTsKICAgICB2b2lkIHJl
amVjdEpvYihjb25zdCBTZXJ2aWNlV29ya2VySm9iRGF0YSYsIGNvbnN0IEV4Y2VwdGlvbkRhdGEm
KTsKICAgICB2b2lkIHJlc29sdmVKb2IoY29uc3QgU2VydmljZVdvcmtlckpvYkRhdGEmLCBjb25z
dCBTZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uRGF0YSYpOworICAgIHZvaWQgc3RhcnRTY3JpcHRG
ZXRjaChjb25zdCBTZXJ2aWNlV29ya2VySm9iRGF0YSYpOworCiAgICAgdm9pZCBwb3N0VGFzayhD
cm9zc1RocmVhZFRhc2smJik7CiAgICAgdm9pZCBwb3N0VGFza1JlcGx5KENyb3NzVGhyZWFkVGFz
ayYmKTsKIApAQCAtODEsNiArODYsOCBAQCBwcml2YXRlOgogICAgIHZvaWQgdGFza1RocmVhZEVu
dHJ5UG9pbnQoKTsKICAgICB2b2lkIGhhbmRsZVRhc2tSZXBsaWVzT25NYWluVGhyZWFkKCk7CiAK
KyAgICB2b2lkIHNjcmlwdEZldGNoRmluaXNoZWQoY29uc3QgU2VydmljZVdvcmtlckZldGNoUmVz
dWx0Jik7CisKICAgICBIYXNoTWFwPHVpbnQ2NF90LCBDb25uZWN0aW9uKj4gbV9jb25uZWN0aW9u
czsKICAgICBIYXNoTWFwPFNlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb25LZXksIHN0ZDo6dW5pcXVl
X3B0cjxTV1NlcnZlclJlZ2lzdHJhdGlvbj4+IG1fcmVnaXN0cmF0aW9uczsKIApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL3NlcnZlci9TV1NlcnZlclJlZ2lzdHJh
dGlvbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2Uvc2VydmVyL1NXU2VydmVy
UmVnaXN0cmF0aW9uLmNwcAppbmRleCAxMDUyYjliYWRjZC4uZDUxMWRkZGRmZDUgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9zZXJ2ZXIvU1dTZXJ2ZXJSZWdpc3Ry
YXRpb24uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9zZXJ2ZXIvU1dT
ZXJ2ZXJSZWdpc3RyYXRpb24uY3BwCkBAIC0zMiw2ICszMiw3IEBACiAjaW5jbHVkZSAiU1dTZXJ2
ZXIuaCIKICNpbmNsdWRlICJTV1NlcnZlcldvcmtlci5oIgogI2luY2x1ZGUgIlNlY3VyaXR5T3Jp
Z2luLmgiCisjaW5jbHVkZSAiU2VydmljZVdvcmtlckZldGNoUmVzdWx0LmgiCiAjaW5jbHVkZSAi
U2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbkRhdGEuaCIKICNpbmNsdWRlICJXb3JrZXJUeXBlLmgi
CiAKQEAgLTYzLDYgKzY0LDIyIEBAIHZvaWQgU1dTZXJ2ZXJSZWdpc3RyYXRpb246OmVucXVldWVK
b2IoY29uc3QgU2VydmljZVdvcmtlckpvYkRhdGEmIGpvYkRhdGEpCiAgICAgICAgIG1fam9iVGlt
ZXIuc3RhcnRPbmVTaG90KDBfcyk7CiB9CiAKK3ZvaWQgU1dTZXJ2ZXJSZWdpc3RyYXRpb246OnNj
cmlwdEZldGNoRmluaXNoZWQoY29uc3QgU2VydmljZVdvcmtlckZldGNoUmVzdWx0JiByZXN1bHQp
Cit7CisgICAgQVNTRVJUKG1fY3VycmVudEpvYiAmJiBtX2N1cnJlbnRKb2ItPmlkZW50aWZpZXIo
KSA9PSByZXN1bHQuam9iSWRlbnRpZmllcik7CisKKyAgICAvLyBGSVhNRTogV2UgZmV0Y2hlZCB0
aGUgc2NyaXB0IGNvbnRlbnRzIGJ1dCBkb24ndCBkbyBhbnl0aGluZyB3aXRoIHRoZW0geWV0Lgor
ICAgIC8vIFRoZXNlIGVycm9ycyBhcmUgZm9yIHRlc3RpbmcgdGhlIGN1cnJlbnQgc3RhdGUgb2Yg
dGhlIGZlYXR1cmUuCisKKyAgICBTdHJpbmcgbWVzc2FnZTsKKyAgICBpZiAocmVzdWx0LnNjcmlw
dEVycm9yLmlzTnVsbCgpKQorICAgICAgICBtZXNzYWdlID0gbWFrZVN0cmluZygiU2NyaXB0IFVS
TCAiLCBtX2N1cnJlbnRKb2ItPnNjcmlwdFVSTC5zdHJpbmcoKSwgIiBmZXRjaGVkIHdpdGggIiwg
U3RyaW5nOjpudW1iZXIocmVzdWx0LnNjcmlwdC5sZW5ndGgoKSksICIgY2hhcmFjdGVycywgYnV0
IHdlJ3JlIG5vdCB1c2luZyB0aGUgcmVzdWx0IHlldCIpOworICAgIGVsc2UKKyAgICAgICAgbWVz
c2FnZSA9IG1ha2VTdHJpbmcoIlNjcmlwdCBVUkwgIiwgbV9jdXJyZW50Sm9iLT5zY3JpcHRVUkwu
c3RyaW5nKCksICIgZmV0Y2ggcmVzdWx0ZWQgaW4gZXJyb3I6ICIsIHJlc3VsdC5zY3JpcHRFcnJv
ci5sb2NhbGl6ZWREZXNjcmlwdGlvbigpKTsKKworICAgIHJlamVjdEN1cnJlbnRKb2IoRXhjZXB0
aW9uRGF0YSB7IFVua25vd25FcnJvciwgbWVzc2FnZSB9KTsKK30KKwogdm9pZCBTV1NlcnZlclJl
Z2lzdHJhdGlvbjo6c3RhcnROZXh0Sm9iKCkKIHsKICAgICBBU1NFUlQoaXNNYWluVGhyZWFkKCkp
OwpAQCAtMTQ5LDkgKzE2Niw3IEBAIHZvaWQgU1dTZXJ2ZXJSZWdpc3RyYXRpb246OnJ1blVwZGF0
ZUpvYihjb25zdCBTZXJ2aWNlV29ya2VySm9iRGF0YSYgam9iKQogICAgIGlmIChuZXdlc3RXb3Jr
ZXIgJiYgIWVxdWFsSWdub3JpbmdGcmFnbWVudElkZW50aWZpZXIoam9iLnNjcmlwdFVSTCwgbmV3
ZXN0V29ya2VyLT5zY3JpcHRVUkwoKSkpCiAgICAgICAgIHJldHVybiByZWplY3RXaXRoRXhjZXB0
aW9uT25NYWluVGhyZWFkKEV4Y2VwdGlvbkRhdGEgeyBUeXBlRXJyb3IsIEFTQ0lJTGl0ZXJhbCgi
Q2Fubm90IHVwZGF0ZSBhIHNlcnZpY2Ugd29ya2VyIHdpdGggYSByZXF1ZXN0ZWQgc2NyaXB0IFVS
TCB3aG9zZSBuZXdlc3Qgd29ya2VyIGhhcyBhIGRpZmZlcmVudCBzY3JpcHQgVVJMIikgfSk7CiAK
LSAgICAvLyBGSVhNRTogQXQgdGhpcyBwb2ludCB3ZSBhcmUgcmVhZHkgdG8gYWN0dWFsbHkgZmV0
Y2ggdGhlIHNjcmlwdCBmb3IgdGhlIHdvcmtlciBpbiB0aGUgcmVnaXN0ZXJpbmcgY29udGV4dC4K
LSAgICAvLyBGb3Igbm93IHdlJ3JlIHN0aWxsIGhhcmQgY29kaW5nIHRoZSBzYW1lIHJlamVjdGlv
biB3ZSBoYXZlIHNvIGZhci4KLSAgICByZWplY3RXaXRoRXhjZXB0aW9uT25NYWluVGhyZWFkKEV4
Y2VwdGlvbkRhdGEgeyBVbmtub3duRXJyb3IsIEFTQ0lJTGl0ZXJhbCgic2VydmljZVdvcmtlciBq
b2Igc2NoZWR1bGluZyBpcyBub3QgeWV0IGltcGxlbWVudGVkIikgfSk7CisgICAgc3RhcnRTY3Jp
cHRGZXRjaEZyb21NYWluVGhyZWFkKCk7CiB9CiAKIHZvaWQgU1dTZXJ2ZXJSZWdpc3RyYXRpb246
OnJlamVjdFdpdGhFeGNlcHRpb25Pbk1haW5UaHJlYWQoY29uc3QgRXhjZXB0aW9uRGF0YSYgZXhj
ZXB0aW9uKQpAQCAtMTY2LDYgKzE4MSwxMiBAQCB2b2lkIFNXU2VydmVyUmVnaXN0cmF0aW9uOjpy
ZXNvbHZlV2l0aFJlZ2lzdHJhdGlvbk9uTWFpblRocmVhZCgpCiAgICAgbV9zZXJ2ZXIucG9zdFRh
c2tSZXBseShjcmVhdGVDcm9zc1RocmVhZFRhc2soKnRoaXMsICZTV1NlcnZlclJlZ2lzdHJhdGlv
bjo6cmVzb2x2ZUN1cnJlbnRKb2IsIGRhdGEoKSkpOwogfQogCit2b2lkIFNXU2VydmVyUmVnaXN0
cmF0aW9uOjpzdGFydFNjcmlwdEZldGNoRnJvbU1haW5UaHJlYWQoKQoreworICAgIEFTU0VSVCgh
aXNNYWluVGhyZWFkKCkpOworICAgIG1fc2VydmVyLnBvc3RUYXNrUmVwbHkoY3JlYXRlQ3Jvc3NU
aHJlYWRUYXNrKCp0aGlzLCAmU1dTZXJ2ZXJSZWdpc3RyYXRpb246OnN0YXJ0U2NyaXB0RmV0Y2hG
b3JDdXJyZW50Sm9iKSk7Cit9CisKIHZvaWQgU1dTZXJ2ZXJSZWdpc3RyYXRpb246OnJlamVjdEN1
cnJlbnRKb2IoY29uc3QgRXhjZXB0aW9uRGF0YSYgZXhjZXB0aW9uRGF0YSkKIHsKICAgICBBU1NF
UlQoaXNNYWluVGhyZWFkKCkpOwpAQCAtMTg2LDYgKzIwNywxNCBAQCB2b2lkIFNXU2VydmVyUmVn
aXN0cmF0aW9uOjpyZXNvbHZlQ3VycmVudEpvYihjb25zdCBTZXJ2aWNlV29ya2VyUmVnaXN0cmF0
aW9uRGF0YQogICAgIGZpbmlzaEN1cnJlbnRKb2IoKTsKIH0KIAordm9pZCBTV1NlcnZlclJlZ2lz
dHJhdGlvbjo6c3RhcnRTY3JpcHRGZXRjaEZvckN1cnJlbnRKb2IoKQoreworICAgIEFTU0VSVChp
c01haW5UaHJlYWQoKSk7CisgICAgQVNTRVJUKG1fY3VycmVudEpvYik7CisKKyAgICBtX3NlcnZl
ci5zdGFydFNjcmlwdEZldGNoKCptX2N1cnJlbnRKb2IpOworfQorCiB2b2lkIFNXU2VydmVyUmVn
aXN0cmF0aW9uOjpmaW5pc2hDdXJyZW50Sm9iKCkKIHsKICAgICBBU1NFUlQobV9jdXJyZW50Sm9i
KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9zZXJ2ZXIvU1dT
ZXJ2ZXJSZWdpc3RyYXRpb24uaCBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9zZXJ2
ZXIvU1dTZXJ2ZXJSZWdpc3RyYXRpb24uaAppbmRleCA5YjZlYWJmMmZhMy4uZjc2ODU0NjNkZTcg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9zZXJ2ZXIvU1dTZXJ2
ZXJSZWdpc3RyYXRpb24uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2Uvc2Vy
dmVyL1NXU2VydmVyUmVnaXN0cmF0aW9uLmgKQEAgLTM4LDYgKzM4LDcgQEAgbmFtZXNwYWNlIFdl
YkNvcmUgewogY2xhc3MgU1dTZXJ2ZXI7CiBjbGFzcyBTV1NlcnZlcldvcmtlcjsKIHN0cnVjdCBF
eGNlcHRpb25EYXRhOworc3RydWN0IFNlcnZpY2VXb3JrZXJGZXRjaFJlc3VsdDsKIAogY2xhc3Mg
U1dTZXJ2ZXJSZWdpc3RyYXRpb24gOiBwdWJsaWMgVGhyZWFkU2FmZUlkZW50aWZpZWQ8U1dTZXJ2
ZXJSZWdpc3RyYXRpb24+IHsKIHB1YmxpYzoKQEAgLTQ2LDYgKzQ3LDcgQEAgcHVibGljOgogICAg
IH5TV1NlcnZlclJlZ2lzdHJhdGlvbigpOwogCiAgICAgdm9pZCBlbnF1ZXVlSm9iKGNvbnN0IFNl
cnZpY2VXb3JrZXJKb2JEYXRhJik7CisgICAgdm9pZCBzY3JpcHRGZXRjaEZpbmlzaGVkKGNvbnN0
IFNlcnZpY2VXb3JrZXJGZXRjaFJlc3VsdCYpOwogCiAgICAgU2VydmljZVdvcmtlclJlZ2lzdHJh
dGlvbkRhdGEgZGF0YSgpIGNvbnN0OwogCkBAIC01NCw2ICs1Niw3IEBAIHByaXZhdGU6CiAgICAg
dm9pZCBzdGFydE5leHRKb2IoKTsKICAgICB2b2lkIHJlamVjdEN1cnJlbnRKb2IoY29uc3QgRXhj
ZXB0aW9uRGF0YSYpOwogICAgIHZvaWQgcmVzb2x2ZUN1cnJlbnRKb2IoY29uc3QgU2VydmljZVdv
cmtlclJlZ2lzdHJhdGlvbkRhdGEmKTsKKyAgICB2b2lkIHN0YXJ0U2NyaXB0RmV0Y2hGb3JDdXJy
ZW50Sm9iKCk7CiAgICAgdm9pZCBmaW5pc2hDdXJyZW50Sm9iKCk7CiAKICAgICB2b2lkIHJ1blJl
Z2lzdGVySm9iKGNvbnN0IFNlcnZpY2VXb3JrZXJKb2JEYXRhJik7CkBAIC02MSw2ICs2NCw3IEBA
IHByaXZhdGU6CiAKICAgICB2b2lkIHJlamVjdFdpdGhFeGNlcHRpb25Pbk1haW5UaHJlYWQoY29u
c3QgRXhjZXB0aW9uRGF0YSYpOwogICAgIHZvaWQgcmVzb2x2ZVdpdGhSZWdpc3RyYXRpb25Pbk1h
aW5UaHJlYWQoKTsKKyAgICB2b2lkIHN0YXJ0U2NyaXB0RmV0Y2hGcm9tTWFpblRocmVhZCgpOwog
ICAgIGJvb2wgaXNFbXB0eSgpOwogICAgIFNXU2VydmVyV29ya2VyKiBnZXROZXdlc3RXb3JrZXIo
KTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0
L0NoYW5nZUxvZwppbmRleCA0YzA3ZDQ0YmRiNC4uZGJlMGM3Y2I4ZGQgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0x
LDMgKzEsMjAgQEAKKzIwMTctMTAtMDUgIEJyYWR5IEVpZHNvbiAgPGJlaWRzb25AYXBwbGUuY29t
PgorCisgICAgICAgIEFkZCAoZW50aXJlbHkgaW5jb3JyZWN0KSBmZXRjaGluZyBvZiBTZXJ2aWNl
V29ya2VyIHNjcmlwdHMuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD0xNzYxNzkKKworICAgICAgICBSZXZpZXdlZCBieSBBbmR5IEVzdGVzLgorCisgICAg
ICAgICogU3RvcmFnZVByb2Nlc3MvU2VydmljZVdvcmtlci9XZWJTV1NlcnZlckNvbm5lY3Rpb24u
Y3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJTV1NlcnZlckNvbm5lY3Rpb246OnN0YXJ0U2NyaXB0
RmV0Y2hJbkNsaWVudCk6CisgICAgICAgICogU3RvcmFnZVByb2Nlc3MvU2VydmljZVdvcmtlci9X
ZWJTV1NlcnZlckNvbm5lY3Rpb24uaDoKKyAgICAgICAgKiBTdG9yYWdlUHJvY2Vzcy9TZXJ2aWNl
V29ya2VyL1dlYlNXU2VydmVyQ29ubmVjdGlvbi5tZXNzYWdlcy5pbjoKKworICAgICAgICAqIFdl
YlByb2Nlc3MvU3RvcmFnZS9XZWJTV0NsaWVudENvbm5lY3Rpb24uY3BwOgorICAgICAgICAoV2Vi
S2l0OjpXZWJTV0NsaWVudENvbm5lY3Rpb246OmZpbmlzaEZldGNoaW5nU2NyaXB0SW5TZXJ2ZXIp
OgorICAgICAgICAqIFdlYlByb2Nlc3MvU3RvcmFnZS9XZWJTV0NsaWVudENvbm5lY3Rpb24uaDoK
KyAgICAgICAgKiBXZWJQcm9jZXNzL1N0b3JhZ2UvV2ViU1dDbGllbnRDb25uZWN0aW9uLm1lc3Nh
Z2VzLmluOgorCiAyMDE3LTA5LTE5ICBBbGV4IENocmlzdGVuc2VuICA8YWNocmlzdGVuc2VuQHdl
YmtpdC5vcmc+CiAKICAgICAgICAgRXhwb3NlIFdLUGFnZVJlZiBhcyBhIHByaXZhdGUgcHJvcGVy
dHkgb24gV0tXZWJWaWV3IG9uIE1hYwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TdG9yYWdl
UHJvY2Vzcy9TZXJ2aWNlV29ya2VyL1dlYlNXU2VydmVyQ29ubmVjdGlvbi5jcHAgYi9Tb3VyY2Uv
V2ViS2l0L1N0b3JhZ2VQcm9jZXNzL1NlcnZpY2VXb3JrZXIvV2ViU1dTZXJ2ZXJDb25uZWN0aW9u
LmNwcAppbmRleCBkYTIxNWYxYjdmMi4uZDhlNmMyNDVmNGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvU3RvcmFnZVByb2Nlc3MvU2VydmljZVdvcmtlci9XZWJTV1NlcnZlckNvbm5lY3Rpb24u
Y3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvU3RvcmFnZVByb2Nlc3MvU2VydmljZVdvcmtlci9XZWJT
V1NlcnZlckNvbm5lY3Rpb24uY3BwCkBAIC0yOCw2ICsyOCw3IEBACiAKICNpZiBFTkFCTEUoU0VS
VklDRV9XT1JLRVIpCiAKKyNpbmNsdWRlICJEYXRhUmVmZXJlbmNlLmgiCiAjaW5jbHVkZSAiTG9n
Z2luZy5oIgogI2luY2x1ZGUgIlN0b3JhZ2VUb1dlYlByb2Nlc3NDb25uZWN0aW9uTWVzc2FnZXMu
aCIKICNpbmNsdWRlICJXZWJQcm9jZXNzLmgiCkBAIC03MCw2ICs3MSwxMSBAQCB2b2lkIFdlYlNX
U2VydmVyQ29ubmVjdGlvbjo6cmVzb2x2ZUpvYkluQ2xpZW50KHVpbnQ2NF90IGpvYklkZW50aWZp
ZXIsIGNvbnN0IFNlcgogICAgIHNlbmQoTWVzc2FnZXM6OldlYlNXQ2xpZW50Q29ubmVjdGlvbjo6
Sm9iUmVzb2x2ZWRJblNlcnZlcihqb2JJZGVudGlmaWVyLCByZWdpc3RyYXRpb25EYXRhKSk7CiB9
CiAKK3ZvaWQgV2ViU1dTZXJ2ZXJDb25uZWN0aW9uOjpzdGFydFNjcmlwdEZldGNoSW5DbGllbnQo
dWludDY0X3Qgam9iSWRlbnRpZmllcikKK3sKKyAgICBzZW5kKE1lc3NhZ2VzOjpXZWJTV0NsaWVu
dENvbm5lY3Rpb246OlN0YXJ0U2NyaXB0RmV0Y2hGb3JTZXJ2ZXIoam9iSWRlbnRpZmllcikpOwor
fQorCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKIAogI2VuZGlmIC8vIEVOQUJMRShTRVJWSUNFX1dP
UktFUikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU3RvcmFnZVByb2Nlc3MvU2VydmljZVdv
cmtlci9XZWJTV1NlcnZlckNvbm5lY3Rpb24uaCBiL1NvdXJjZS9XZWJLaXQvU3RvcmFnZVByb2Nl
c3MvU2VydmljZVdvcmtlci9XZWJTV1NlcnZlckNvbm5lY3Rpb24uaAppbmRleCBjODc5MjUxNGVk
Ny4uYjNjZTc2Yzk1ZTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU3RvcmFnZVByb2Nlc3Mv
U2VydmljZVdvcmtlci9XZWJTV1NlcnZlckNvbm5lY3Rpb24uaAorKysgYi9Tb3VyY2UvV2ViS2l0
L1N0b3JhZ2VQcm9jZXNzL1NlcnZpY2VXb3JrZXIvV2ViU1dTZXJ2ZXJDb25uZWN0aW9uLmgKQEAg
LTUxLDYgKzUxLDcgQEAgcHJpdmF0ZToKICAgICAvLyBJbXBsZW1lbnQgU1dTZXJ2ZXI6OkNvbm5l
Y3Rpb24KICAgICB2b2lkIHJlamVjdEpvYkluQ2xpZW50KHVpbnQ2NF90IGpvYklkZW50aWZpZXIs
IGNvbnN0IFdlYkNvcmU6OkV4Y2VwdGlvbkRhdGEmKSBmaW5hbDsKICAgICB2b2lkIHJlc29sdmVK
b2JJbkNsaWVudCh1aW50NjRfdCBqb2JJZGVudGlmaWVyLCBjb25zdCBXZWJDb3JlOjpTZXJ2aWNl
V29ya2VyUmVnaXN0cmF0aW9uRGF0YSYpIGZpbmFsOworICAgIHZvaWQgc3RhcnRTY3JpcHRGZXRj
aEluQ2xpZW50KHVpbnQ2NF90IGpvYklkZW50aWZpZXIpIGZpbmFsOwogCiAgICAgSVBDOjpDb25u
ZWN0aW9uKiBtZXNzYWdlU2VuZGVyQ29ubmVjdGlvbigpIGZpbmFsIHsgcmV0dXJuIG1fY29ubmVj
dGlvbi5wdHIoKTsgfQogICAgIHVpbnQ2NF90IG1lc3NhZ2VTZW5kZXJEZXN0aW5hdGlvbklEKCkg
ZmluYWwgeyByZXR1cm4gaWRlbnRpZmllcigpOyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L1N0b3JhZ2VQcm9jZXNzL1NlcnZpY2VXb3JrZXIvV2ViU1dTZXJ2ZXJDb25uZWN0aW9uLm1lc3Nh
Z2VzLmluIGIvU291cmNlL1dlYktpdC9TdG9yYWdlUHJvY2Vzcy9TZXJ2aWNlV29ya2VyL1dlYlNX
U2VydmVyQ29ubmVjdGlvbi5tZXNzYWdlcy5pbgppbmRleCAwNTcxYzRkNjJkYy4uZTRjZmI5NjA1
YTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU3RvcmFnZVByb2Nlc3MvU2VydmljZVdvcmtl
ci9XZWJTV1NlcnZlckNvbm5lY3Rpb24ubWVzc2FnZXMuaW4KKysrIGIvU291cmNlL1dlYktpdC9T
dG9yYWdlUHJvY2Vzcy9TZXJ2aWNlV29ya2VyL1dlYlNXU2VydmVyQ29ubmVjdGlvbi5tZXNzYWdl
cy5pbgpAQCAtMjUsNiArMjUsNyBAQAogbWVzc2FnZXMgLT4gV2ViU1dTZXJ2ZXJDb25uZWN0aW9u
IHsKICAgICAjIFdoZW4gcG9zc2libGUsIHRoZXNlIG1lc3NhZ2VzIGNhbiBiZSBpbXBsZW1lbnRl
ZCBkaXJlY3RseSBieSBXZWJDb3JlOjpTV0NsaWVudENvbm5lY3Rpb24KICAgICBTY2hlZHVsZUpv
YkluU2VydmVyKHN0cnVjdCBXZWJDb3JlOjpTZXJ2aWNlV29ya2VySm9iRGF0YSBqb2JEYXRhKQor
ICAgIEZpbmlzaEZldGNoaW5nU2NyaXB0SW5TZXJ2ZXIoc3RydWN0IFdlYkNvcmU6OlNlcnZpY2VX
b3JrZXJGZXRjaFJlc3VsdCByZXN1bHQpCiB9CiAKICNlbmRpZiAvLyBFTkFCTEUoU0VSVklDRV9X
T1JLRVIpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvU3RvcmFnZS9XZWJT
V0NsaWVudENvbm5lY3Rpb24uY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1N0b3JhZ2Uv
V2ViU1dDbGllbnRDb25uZWN0aW9uLmNwcAppbmRleCAxODI2NDlhNjYyYy4uYmIzZGI2YjUzODAg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9TdG9yYWdlL1dlYlNXQ2xpZW50
Q29ubmVjdGlvbi5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1N0b3JhZ2UvV2Vi
U1dDbGllbnRDb25uZWN0aW9uLmNwcApAQCAtMzAsNyArMzAsOSBAQAogCiAjaW5jbHVkZSAiTG9n
Z2luZy5oIgogI2luY2x1ZGUgIlN0b3JhZ2VUb1dlYlByb2Nlc3NDb25uZWN0aW9uTWVzc2FnZXMu
aCIKKyNpbmNsdWRlICJXZWJDb3JlQXJndW1lbnRDb2RlcnMuaCIKICNpbmNsdWRlICJXZWJTV1Nl
cnZlckNvbm5lY3Rpb25NZXNzYWdlcy5oIgorI2luY2x1ZGUgPFdlYkNvcmUvU2VydmljZVdvcmtl
ckZldGNoUmVzdWx0Lmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9TZXJ2aWNlV29ya2VySm9iRGF0YS5o
PgogCiB1c2luZyBuYW1lc3BhY2UgUEFMOwpAQCAtNTYsNiArNTgsMTEgQEAgdm9pZCBXZWJTV0Ns
aWVudENvbm5lY3Rpb246OnNjaGVkdWxlSm9iSW5TZXJ2ZXIoY29uc3QgU2VydmljZVdvcmtlckpv
YkRhdGEmIGpvYkQKICAgICBzZW5kKE1lc3NhZ2VzOjpXZWJTV1NlcnZlckNvbm5lY3Rpb246OlNj
aGVkdWxlSm9iSW5TZXJ2ZXIoam9iRGF0YSkpOwogfQogCit2b2lkIFdlYlNXQ2xpZW50Q29ubmVj
dGlvbjo6ZmluaXNoRmV0Y2hpbmdTY3JpcHRJblNlcnZlcihjb25zdCBTZXJ2aWNlV29ya2VyRmV0
Y2hSZXN1bHQmIHJlc3VsdCkKK3sKKyAgICBzZW5kKE1lc3NhZ2VzOjpXZWJTV1NlcnZlckNvbm5l
Y3Rpb246OkZpbmlzaEZldGNoaW5nU2NyaXB0SW5TZXJ2ZXIocmVzdWx0KSk7Cit9CisKIH0gLy8g
bmFtZXNwYWNlIFdlYktpdAogCiAjZW5kaWYgLy8gRU5BQkxFKFNFUlZJQ0VfV09SS0VSKQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1N0b3JhZ2UvV2ViU1dDbGllbnRDb25u
ZWN0aW9uLmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvU3RvcmFnZS9XZWJTV0NsaWVudENv
bm5lY3Rpb24uaAppbmRleCA1MWRlNGJiYjY2My4uNDRhZjc3OTE5ZDcgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9TdG9yYWdlL1dlYlNXQ2xpZW50Q29ubmVjdGlvbi5oCisr
KyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9TdG9yYWdlL1dlYlNXQ2xpZW50Q29ubmVjdGlv
bi5oCkBAIC00OCw2ICs0OCw3IEBAIHB1YmxpYzoKICAgICB1aW50NjRfdCBpZGVudGlmaWVyKCkg
Y29uc3QgZmluYWwgeyByZXR1cm4gbV9pZGVudGlmaWVyOyB9CiAKICAgICB2b2lkIHNjaGVkdWxl
Sm9iSW5TZXJ2ZXIoY29uc3QgV2ViQ29yZTo6U2VydmljZVdvcmtlckpvYkRhdGEmKSBmaW5hbDsK
KyAgICB2b2lkIGZpbmlzaEZldGNoaW5nU2NyaXB0SW5TZXJ2ZXIoY29uc3QgV2ViQ29yZTo6U2Vy
dmljZVdvcmtlckZldGNoUmVzdWx0JikgZmluYWw7CiAKICAgICB2b2lkIGRpc2Nvbm5lY3RlZEZy
b21XZWJQcm9jZXNzKCk7CiAgICAgdm9pZCBkaWRSZWNlaXZlTWVzc2FnZShJUEM6OkNvbm5lY3Rp
b24mLCBJUEM6OkRlY29kZXImKSBmaW5hbDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9TdG9yYWdlL1dlYlNXQ2xpZW50Q29ubmVjdGlvbi5tZXNzYWdlcy5pbiBiL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9TdG9yYWdlL1dlYlNXQ2xpZW50Q29ubmVjdGlvbi5tZXNzYWdl
cy5pbgppbmRleCBhZGVmOTlhZWYwOS4uNDBmNzczMGM4NjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9TdG9yYWdlL1dlYlNXQ2xpZW50Q29ubmVjdGlvbi5tZXNzYWdlcy5p
bgorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvU3RvcmFnZS9XZWJTV0NsaWVudENvbm5l
Y3Rpb24ubWVzc2FnZXMuaW4KQEAgLTI2LDYgKzI2LDcgQEAgbWVzc2FnZXMgLT4gV2ViU1dDbGll
bnRDb25uZWN0aW9uIHsKICAgICAjIFdoZW4gcG9zc2libGUsIHRoZXNlIG1lc3NhZ2VzIGNhbiBi
ZSBpbXBsZW1lbnRlZCBkaXJlY3RseSBieSBXZWJDb3JlOjpTV1NlcnZlcjo6Q29ubmVjdGlvbgog
ICAgIEpvYlJlamVjdGVkSW5TZXJ2ZXIodWludDY0X3QgaWRlbnRpZmllciwgc3RydWN0IFdlYkNv
cmU6OkV4Y2VwdGlvbkRhdGEgZXhjZXB0aW9uKQogICAgIEpvYlJlc29sdmVkSW5TZXJ2ZXIodWlu
dDY0X3QgaWRlbnRpZmllciwgc3RydWN0IFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJSZWdpc3RyYXRp
b25EYXRhIHJlZ2lzdHJhdGlvbikKKyAgICBTdGFydFNjcmlwdEZldGNoRm9yU2VydmVyKHVpbnQ2
NF90IGpvYklkZW50aWZpZXIpCiB9CiAKICNlbmRpZiAvLyBFTkFCTEUoU0VSVklDRV9XT1JLRVIp
Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>322885</attachid>
            <date>2017-10-05 12:56:23 -0700</date>
            <delta_ts>2017-10-05 13:01:21 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>patch</filename>
            <type>text/plain</type>
            <size>55020</size>
            <attacher name="Brady Eidson">beidson</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCA5YWJmZTE3NzJkNS4uNmNiNzEzNTE2NWEgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3Rz
L0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNiBAQAor
MjAxNy0xMC0wNSAgQnJhZHkgRWlkc29uICA8YmVpZHNvbkBhcHBsZS5jb20+CisKKyAgICAgICAg
QWRkIChlbnRpcmVseSBpbmNvcnJlY3QpIGZldGNoaW5nIG9mIFNlcnZpY2VXb3JrZXIgc2NyaXB0
cy4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE3NjE3
OQorCisgICAgICAgIFJldmlld2VkIGJ5IEFuZHkgRXN0ZXMuCisKKyAgICAgICAgKiBodHRwL3Rl
c3RzL3dvcmtlcnMvc2VydmljZS9iYXNpYy1yZWdpc3Rlci1leGNlcHRpb25zLWV4cGVjdGVkLnR4
dDoKKyAgICAgICAgKiBodHRwL3Rlc3RzL3dvcmtlcnMvc2VydmljZS9iYXNpYy1yZWdpc3Rlci1l
eHBlY3RlZC50eHQ6CisgICAgICAgICogaHR0cC90ZXN0cy93b3JrZXJzL3NlcnZpY2UvcmVzb3Vy
Y2VzL2Jhc2ljLXJlZ2lzdGVyLWV4Y2VwdGlvbnMuanM6CisgICAgICAgICogaHR0cC90ZXN0cy93
b3JrZXJzL3NlcnZpY2UvcmVzb3VyY2VzL2Jhc2ljLXJlZ2lzdGVyLmpzOgorICAgICAgICAqIGh0
dHAvdGVzdHMvd29ya2Vycy9zZXJ2aWNlL3Jlc291cmNlcy9yZWdpc3RyYXRpb24tdGFzay1xdWV1
ZS1zY2hlZHVsaW5nLTEuanM6CisKIDIwMTctMTAtMDUgIE1pZ3VlbCBHb21leiAgPG1hZ29tZXpA
aWdhbGlhLmNvbT4KIAogICAgICAgICBVbnJldmlld2VkIEdUSysgZ2FyZGVuaW5nLiBVcGRhdGUg
ZXhwZWN0YXRpb25zIGFuZCByZWJhc2VsaW5lIHRlc3RzIGZhaWxpbmcgYXQgcjIyMjkwNS4KZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvd29ya2Vycy9zZXJ2aWNlL2Jhc2ljLXJl
Z2lzdGVyLWV4Y2VwdGlvbnMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93
b3JrZXJzL3NlcnZpY2UvYmFzaWMtcmVnaXN0ZXItZXhjZXB0aW9ucy1leHBlY3RlZC50eHQKaW5k
ZXggZGYyOWQyNTIyNzMuLjM0ZjY0OTZkZTcxIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9odHRw
L3Rlc3RzL3dvcmtlcnMvc2VydmljZS9iYXNpYy1yZWdpc3Rlci1leGNlcHRpb25zLWV4cGVjdGVk
LnR4dAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dvcmtlcnMvc2VydmljZS9iYXNpYy1y
ZWdpc3Rlci1leGNlcHRpb25zLWV4cGVjdGVkLnR4dApAQCAtMSw5ICsxLDEwIEBACi1DT05TT0xF
IE1FU1NBR0U6IGxpbmUgMTA6IFJlZ2lzdHJhdGlvbiBmYWlsZWQgd2l0aCBlcnJvcjogVHlwZUVy
cm9yOiBzZXJ2aWNlV29ya2VyLnJlZ2lzdGVyKCkgY2Fubm90IGJlIGNhbGxlZCB3aXRoIGFuIGVt
cHR5IHNjcmlwdCBVUkwKLUNPTlNPTEUgTUVTU0FHRTogbGluZSAyMDogUmVnaXN0cmF0aW9uIGZh
aWxlZCB3aXRoIGVycm9yOiBUeXBlRXJyb3I6IHNlcnZpY2VXb3JrZXIucmVnaXN0ZXIoKSBtdXN0
IGJlIGNhbGxlZCB3aXRoIGEgdmFsaWQgcmVsYXRpdmUgc2NyaXB0IFVSTAotQ09OU09MRSBNRVNT
QUdFOiBsaW5lIDMwOiBSZWdpc3RyYXRpb24gZmFpbGVkIHdpdGggZXJyb3I6IFR5cGVFcnJvcjog
c2VydmljZVdvcmtlci5yZWdpc3RlcigpIG11c3QgYmUgY2FsbGVkIHdpdGggYSBzY3JpcHQgVVJM
IHdob3NlIHByb3RvY29sIGlzIGVpdGhlciBIVFRQIG9yIEhUVFBTCi1DT05TT0xFIE1FU1NBR0U6
IGxpbmUgNDA6IFJlZ2lzdHJhdGlvbiBmYWlsZWQgd2l0aCBlcnJvcjogVHlwZUVycm9yOiBzZXJ2
aWNlV29ya2VyLnJlZ2lzdGVyKCkgbXVzdCBiZSBjYWxsZWQgd2l0aCBhIHNjcmlwdCBVUkwgd2hv
c2UgcGF0aCBkb2VzIG5vdCBjb250YWluICclMmYnIG9yICclNWMnCi1DT05TT0xFIE1FU1NBR0U6
IGxpbmUgNTA6IFJlZ2lzdHJhdGlvbiBmYWlsZWQgd2l0aCBlcnJvcjogVHlwZUVycm9yOiBTY29w
ZSBVUkwgcHJvdmlkZWQgdG8gc2VydmljZVdvcmtlci5yZWdpc3RlcigpIG11c3QgYmUgZWl0aGVy
IEhUVFAgb3IgSFRUUFMKLUNPTlNPTEUgTUVTU0FHRTogbGluZSA2MDogUmVnaXN0cmF0aW9uIGZh
aWxlZCB3aXRoIGVycm9yOiBUeXBlRXJyb3I6IFNjb3BlIFVSTCBwcm92aWRlZCB0byBzZXJ2aWNl
V29ya2VyLnJlZ2lzdGVyKCkgY2Fubm90IGhhdmUgYSBwYXRoIHRoYXQgY29udGFpbnMgJyUyZicg
b3IgJyU1YycKLUNPTlNPTEUgTUVTU0FHRTogbGluZSA3MDogUmVnaXN0cmF0aW9uIGZhaWxlZCB3
aXRoIGVycm9yOiBTZWN1cml0eUVycm9yOiBTY3JpcHQgb3JpZ2luIGRvZXMgbm90IG1hdGNoIHRo
ZSByZWdpc3RlcmluZyBjbGllbnQncyBvcmlnaW4KLUNPTlNPTEUgTUVTU0FHRTogbGluZSA4MTog
UmVnaXN0cmF0aW9uIGZhaWxlZCB3aXRoIGVycm9yOiBTZWN1cml0eUVycm9yOiBTY29wZSBvcmln
aW4gZG9lcyBub3QgbWF0Y2ggdGhlIHJlZ2lzdGVyaW5nIGNsaWVudCdzIG9yaWdpbgorQ09OU09M
RSBNRVNTQUdFOiBsaW5lIDIwOiBSZWdpc3RyYXRpb24gZmFpbGVkIHdpdGggZXJyb3I6IFR5cGVF
cnJvcjogc2VydmljZVdvcmtlci5yZWdpc3RlcigpIGNhbm5vdCBiZSBjYWxsZWQgd2l0aCBhbiBl
bXB0eSBzY3JpcHQgVVJMCitDT05TT0xFIE1FU1NBR0U6IGxpbmUgMzA6IFJlZ2lzdHJhdGlvbiBm
YWlsZWQgd2l0aCBlcnJvcjogVHlwZUVycm9yOiBzZXJ2aWNlV29ya2VyLnJlZ2lzdGVyKCkgbXVz
dCBiZSBjYWxsZWQgd2l0aCBhIHZhbGlkIHJlbGF0aXZlIHNjcmlwdCBVUkwKK0NPTlNPTEUgTUVT
U0FHRTogbGluZSA0MDogUmVnaXN0cmF0aW9uIGZhaWxlZCB3aXRoIGVycm9yOiBUeXBlRXJyb3I6
IHNlcnZpY2VXb3JrZXIucmVnaXN0ZXIoKSBtdXN0IGJlIGNhbGxlZCB3aXRoIGEgc2NyaXB0IFVS
TCB3aG9zZSBwcm90b2NvbCBpcyBlaXRoZXIgSFRUUCBvciBIVFRQUworQ09OU09MRSBNRVNTQUdF
OiBsaW5lIDUwOiBSZWdpc3RyYXRpb24gZmFpbGVkIHdpdGggZXJyb3I6IFR5cGVFcnJvcjogc2Vy
dmljZVdvcmtlci5yZWdpc3RlcigpIG11c3QgYmUgY2FsbGVkIHdpdGggYSBzY3JpcHQgVVJMIHdo
b3NlIHBhdGggZG9lcyBub3QgY29udGFpbiAnJTJmJyBvciAnJTVjJworQ09OU09MRSBNRVNTQUdF
OiBsaW5lIDYwOiBSZWdpc3RyYXRpb24gZmFpbGVkIHdpdGggZXJyb3I6IFR5cGVFcnJvcjogU2Nv
cGUgVVJMIHByb3ZpZGVkIHRvIHNlcnZpY2VXb3JrZXIucmVnaXN0ZXIoKSBtdXN0IGJlIGVpdGhl
ciBIVFRQIG9yIEhUVFBTCitDT05TT0xFIE1FU1NBR0U6IGxpbmUgNzA6IFJlZ2lzdHJhdGlvbiBm
YWlsZWQgd2l0aCBlcnJvcjogVHlwZUVycm9yOiBTY29wZSBVUkwgcHJvdmlkZWQgdG8gc2Vydmlj
ZVdvcmtlci5yZWdpc3RlcigpIGNhbm5vdCBoYXZlIGEgcGF0aCB0aGF0IGNvbnRhaW5zICclMmYn
IG9yICclNWMnCitDT05TT0xFIE1FU1NBR0U6IGxpbmUgMTA6IFJlZ2lzdHJhdGlvbiBmYWlsZWQg
d2l0aCBlcnJvcjogVW5rbm93bkVycm9yOiBTY3JpcHQgVVJMIGh0dHA6Ly8xMjcuMC4wLjE6ODAw
MC93b3JrZXJzL3NlcnZpY2UvaW1hZ2UtbWltZS10eXBlLnBocCBmZXRjaGVkIHdpdGggMCBjaGFy
YWN0ZXJzLCBidXQgd2UncmUgbm90IHVzaW5nIHRoZSByZXN1bHQgeWV0CitDT05TT0xFIE1FU1NB
R0U6IGxpbmUgODA6IFJlZ2lzdHJhdGlvbiBmYWlsZWQgd2l0aCBlcnJvcjogU2VjdXJpdHlFcnJv
cjogU2NyaXB0IG9yaWdpbiBkb2VzIG5vdCBtYXRjaCB0aGUgcmVnaXN0ZXJpbmcgY2xpZW50J3Mg
b3JpZ2luCitDT05TT0xFIE1FU1NBR0U6IGxpbmUgOTE6IFJlZ2lzdHJhdGlvbiBmYWlsZWQgd2l0
aCBlcnJvcjogU2VjdXJpdHlFcnJvcjogU2NvcGUgb3JpZ2luIGRvZXMgbm90IG1hdGNoIHRoZSBy
ZWdpc3RlcmluZyBjbGllbnQncyBvcmlnaW4KIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0
cC90ZXN0cy93b3JrZXJzL3NlcnZpY2UvYmFzaWMtcmVnaXN0ZXItZXhwZWN0ZWQudHh0IGIvTGF5
b3V0VGVzdHMvaHR0cC90ZXN0cy93b3JrZXJzL3NlcnZpY2UvYmFzaWMtcmVnaXN0ZXItZXhwZWN0
ZWQudHh0CmluZGV4IGMwMThlNDVlNWQxLi40OTQwNzc4NGFiZiAxMDA2NDQKLS0tIGEvTGF5b3V0
VGVzdHMvaHR0cC90ZXN0cy93b3JrZXJzL3NlcnZpY2UvYmFzaWMtcmVnaXN0ZXItZXhwZWN0ZWQu
dHh0CisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvd29ya2Vycy9zZXJ2aWNlL2Jhc2ljLXJl
Z2lzdGVyLWV4cGVjdGVkLnR4dApAQCAtMSwyICsxLDMgQEAKLUNPTlNPTEUgTUVTU0FHRTogbGlu
ZSAxMTogUmVnaXN0cmF0aW9uIGZhaWxlZCB3aXRoIGVycm9yOiBVbmtub3duRXJyb3I6IHNlcnZp
Y2VXb3JrZXIgam9iIHNjaGVkdWxpbmcgaXMgbm90IHlldCBpbXBsZW1lbnRlZAorQ09OU09MRSBN
RVNTQUdFOiBsaW5lIDEwOiBSZWdpc3RyYXRpb24gZmFpbGVkIHdpdGggZXJyb3I6IFVua25vd25F
cnJvcjogU2NyaXB0IFVSTCBodHRwOi8vMTI3LjAuMC4xOjgwMDAvd29ya2Vycy9zZXJ2aWNlL3Jl
c291cmNlcy9lbXB0eS13b3JrZXIuanMgZmV0Y2hlZCB3aXRoIDQxIGNoYXJhY3RlcnMsIGJ1dCB3
ZSdyZSBub3QgdXNpbmcgdGhlIHJlc3VsdCB5ZXQKK0NPTlNPTEUgTUVTU0FHRTogbGluZSAyMTog
UmVnaXN0cmF0aW9uIGZhaWxlZCB3aXRoIGVycm9yOiBVbmtub3duRXJyb3I6IFNjcmlwdCBVUkwg
aHR0cDovLzEyNy4wLjAuMTo4MDAwL3dvcmtlcnMvc2VydmljZS9yZXNvdXJjZXMvZW1wdHktd29y
a2VyLWRvZXNudC1leGlzdC5qcyBmZXRjaGVkIHdpdGggMCBjaGFyYWN0ZXJzLCBidXQgd2UncmUg
bm90IHVzaW5nIHRoZSByZXN1bHQgeWV0CiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAv
dGVzdHMvd29ya2Vycy9zZXJ2aWNlL3Jlc291cmNlcy9iYXNpYy1yZWdpc3Rlci1leGNlcHRpb25z
LmpzIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93b3JrZXJzL3NlcnZpY2UvcmVzb3VyY2VzL2Jh
c2ljLXJlZ2lzdGVyLWV4Y2VwdGlvbnMuanMKaW5kZXggOGEwMzA2ZmI3YTkuLjc4ZDFkOGFmNTIy
IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dvcmtlcnMvc2VydmljZS9yZXNv
dXJjZXMvYmFzaWMtcmVnaXN0ZXItZXhjZXB0aW9ucy5qcworKysgYi9MYXlvdXRUZXN0cy9odHRw
L3Rlc3RzL3dvcmtlcnMvc2VydmljZS9yZXNvdXJjZXMvYmFzaWMtcmVnaXN0ZXItZXhjZXB0aW9u
cy5qcwpAQCAtMyw2ICszLDE2IEBAIGZ1bmN0aW9uIGRvbmUoKQogICAgIGZpbmlzaFNXVGVzdCgp
OwogfQogCituYXZpZ2F0b3Iuc2VydmljZVdvcmtlci5yZWdpc3RlcigiaW1hZ2UtbWltZS10eXBl
LnBocCIsIHsgfSkKKy50aGVuKGZ1bmN0aW9uKHIpIHsKKwljb25zb2xlLmxvZygiUmVnaXN0ZXJl
ZCEgKHVuZXhwZWN0ZWRseSkiKTsKK30sIGZ1bmN0aW9uKGUpIHsKKwljb25zb2xlLmxvZygiUmVn
aXN0cmF0aW9uIGZhaWxlZCB3aXRoIGVycm9yOiAiICsgZSk7Cit9KQorLmNhdGNoKGZ1bmN0aW9u
KGUpIHsKKwljb25zb2xlLmxvZygiRXhjZXB0aW9uIHJlZ2lzdGVyaW5nOiAiICsgZSk7Cit9KTsK
KwogbmF2aWdhdG9yLnNlcnZpY2VXb3JrZXIucmVnaXN0ZXIoIiIsIHsgfSkKIC50aGVuKGZ1bmN0
aW9uKHIpIHsKIAljb25zb2xlLmxvZygiUmVnaXN0ZXJlZCEgKHVuZXhwZWN0ZWRseSkiKTsKZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvd29ya2Vycy9zZXJ2aWNlL3Jlc291cmNl
cy9iYXNpYy1yZWdpc3Rlci5qcyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvd29ya2Vycy9zZXJ2
aWNlL3Jlc291cmNlcy9iYXNpYy1yZWdpc3Rlci5qcwppbmRleCBlNzUxNmZlNTUxNy4uM2ExZTYz
YjBhNjQgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvd29ya2Vycy9zZXJ2aWNl
L3Jlc291cmNlcy9iYXNpYy1yZWdpc3Rlci5qcworKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3Rz
L3dvcmtlcnMvc2VydmljZS9yZXNvdXJjZXMvYmFzaWMtcmVnaXN0ZXIuanMKQEAgLTYsNiArNiwx
NiBAQCBmdW5jdGlvbiBkb25lKCkKIG5hdmlnYXRvci5zZXJ2aWNlV29ya2VyLnJlZ2lzdGVyKCJy
ZXNvdXJjZXMvZW1wdHktd29ya2VyLmpzIiwgeyB9KQogLnRoZW4oZnVuY3Rpb24ocikgewogCWNv
bnNvbGUubG9nKCJSZWdpc3RlcmVkISIpOworfSwgZnVuY3Rpb24oZSkgeworCWNvbnNvbGUubG9n
KCJSZWdpc3RyYXRpb24gZmFpbGVkIHdpdGggZXJyb3I6ICIgKyBlKTsKK30pCisuY2F0Y2goZnVu
Y3Rpb24oZSkgeworCWNvbnNvbGUubG9nKCJFeGNlcHRpb24gcmVnaXN0ZXJpbmc6ICIgKyBlKTsK
K30pOworCituYXZpZ2F0b3Iuc2VydmljZVdvcmtlci5yZWdpc3RlcigicmVzb3VyY2VzL2VtcHR5
LXdvcmtlci1kb2VzbnQtZXhpc3QuanMiLCB7IH0pCisudGhlbihmdW5jdGlvbihyKSB7CisJY29u
c29sZS5sb2coIlJlZ2lzdGVyZWQhIik7CiAJZG9uZSgpOwogfSwgZnVuY3Rpb24oZSkgewogCWNv
bnNvbGUubG9nKCJSZWdpc3RyYXRpb24gZmFpbGVkIHdpdGggZXJyb3I6ICIgKyBlKTsKZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvd29ya2Vycy9zZXJ2aWNlL3Jlc291cmNlcy9y
ZWdpc3RyYXRpb24tdGFzay1xdWV1ZS1zY2hlZHVsaW5nLTEuanMgYi9MYXlvdXRUZXN0cy9odHRw
L3Rlc3RzL3dvcmtlcnMvc2VydmljZS9yZXNvdXJjZXMvcmVnaXN0cmF0aW9uLXRhc2stcXVldWUt
c2NoZWR1bGluZy0xLmpzCmluZGV4IDEyN2EzZGIzNTQ1Li4wMGZlYzkzYjRiYyAxMDA2NDQKLS0t
IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93b3JrZXJzL3NlcnZpY2UvcmVzb3VyY2VzL3JlZ2lz
dHJhdGlvbi10YXNrLXF1ZXVlLXNjaGVkdWxpbmctMS5qcworKysgYi9MYXlvdXRUZXN0cy9odHRw
L3Rlc3RzL3dvcmtlcnMvc2VydmljZS9yZXNvdXJjZXMvcmVnaXN0cmF0aW9uLXRhc2stcXVldWUt
c2NoZWR1bGluZy0xLmpzCkBAIC00OCw4ICs0OCw4IEBAIGZvciAodmFyIGkgPSAwOyBpIDwgMTAw
MDsgKytpKSB7CiAJCWNvbnNvbGUubG9nKCJPcmlnaW5hbCB3aW5kb3cgcmVzb2x2ZWQgc3VjY2Vz
c2Z1bGx5ICh1bmV4cGVjdGVkKSIpCiAJCWRvbmUoKTsKIAl9LCBmdW5jdGlvbihlKSB7Ci0JCWlm
IChlKyIiICE9ICJVbmtub3duRXJyb3I6IHNlcnZpY2VXb3JrZXIgam9iIHNjaGVkdWxpbmcgaXMg
bm90IHlldCBpbXBsZW1lbnRlZCIpIHsKLQkJCWFsZXJ0KCJVbmV4cGVjdGVkIGVycm9yIHJlY2Vp
dmVkIGZyb20gc2VydmVyIik7CisJCWlmIChlKyIiICE9ICJVbmtub3duRXJyb3I6IFNjcmlwdCBV
UkwgaHR0cDovLzEyNy4wLjAuMTo4MDAwL3dvcmtlcnMvc2VydmljZS9yZXNvdXJjZXMvZW1wdHkt
d29ya2VyLmpzIGZldGNoZWQgd2l0aCA0MSBjaGFyYWN0ZXJzLCBidXQgd2UncmUgbm90IHVzaW5n
IHRoZSByZXN1bHQgeWV0IikgeworCQkJYWxlcnQoIlVuZXhwZWN0ZWQgZXJyb3IgcmVjZWl2ZWQg
ZnJvbSBzZXJ2ZXI6ICIgKyBlKTsKIAkJCWZpbmlzaFNXVGVzdCgpOwogCQl9CiAJCQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9n
CmluZGV4IGMxODllMDlmZTc0Li5lZDc1NmVlNzcyZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDcw
IEBACisyMDE3LTEwLTA1ICBCcmFkeSBFaWRzb24gIDxiZWlkc29uQGFwcGxlLmNvbT4KKworICAg
ICAgICBBZGQgKGVudGlyZWx5IGluY29ycmVjdCkgZmV0Y2hpbmcgb2YgU2VydmljZVdvcmtlciBz
Y3JpcHRzLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
MTc2MTc5CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgQW5keSBFc3Rlcy4KKworICAgICAgICBObyBu
ZXcgdGVzdHMgKENvdmVyZWQgYnkgY2hhbmdlcyB0byBleGlzdGluZyB0ZXN0cykuCisKKyAgICAg
ICAgV2hlbiB0aGUgU3RvcmFnZSBwcm9jZXNzIGlzIHJ1bm5pbmcgdGhlICJVcGRhdGUiIGFsZ29y
aXRobSBhbmQgYSBTZXJ2aWNlV29ya2VyIHNjcmlwdCBmaWxlIG5lZWRzIHRvIGJlIGZldGNoZWQs
IHRoaXMgcGF0Y2g6CisgICAgICAgICAgLSBNZXNzYWdlcyBiYWNrIHRvIHRoZSBXZWJDb250ZW50
IHByb2Nlc3MgdGhhdCBzdGFydGVkIHRoZSByZWdpc3Rlci91cGRhdGUgam9iCisgICAgICAgICAg
LSBFeGVjdXRlcyBhIEZldGNoTG9hZCBpbiB0aGF0IHNjcmlwdCBjb250ZXh0IGZvciB0aGUgc2Ny
aXB0CisgICAgICAgICAgLSBTZW5kcyB0aGUgcmVzdWx0cyBiYWNrIHRvIHRoZSBTdG9yYWdlIHBy
b2Nlc3MKKworICAgICAgICBXZSBkb24ndCBkbyBhbnl0aGluZyB3aXRoIHRoZSByZXN1bHRzIHll
dC4KKworICAgICAgICBTb29uLgorCisgICAgICAgICogV2ViQ29yZS54Y29kZXByb2ovcHJvamVj
dC5wYnhwcm9qOgorCisgICAgICAgICogd29ya2Vycy9Xb3JrZXJTY3JpcHRMb2FkZXIuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6V29ya2VyU2NyaXB0TG9hZGVyOjpkaWRGYWlsKToKKyAgICAgICAg
KiB3b3JrZXJzL1dvcmtlclNjcmlwdExvYWRlci5oOgorICAgICAgICAoV2ViQ29yZTo6V29ya2Vy
U2NyaXB0TG9hZGVyOjplcnJvciBjb25zdCk6CisKKyAgICAgICAgKiB3b3JrZXJzL1dvcmtlclNj
cmlwdExvYWRlckNsaWVudC5oOgorICAgICAgICAoV2ViQ29yZTo6V29ya2VyU2NyaXB0TG9hZGVy
Q2xpZW50Ojp+V29ya2VyU2NyaXB0TG9hZGVyQ2xpZW50KToKKyAgICAgICAgKFdlYkNvcmU6Oldv
cmtlclNjcmlwdExvYWRlckNsaWVudDo6ZGlkUmVjZWl2ZVJlc3BvbnNlKTogRGVsZXRlZC4KKyAg
ICAgICAgKFdlYkNvcmU6OldvcmtlclNjcmlwdExvYWRlckNsaWVudDo6bm90aWZ5RmluaXNoZWQp
OiBEZWxldGVkLgorCisgICAgICAgICogd29ya2Vycy9zZXJ2aWNlL1NlcnZpY2VXb3JrZXJDb250
YWluZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U2VydmljZVdvcmtlckNvbnRhaW5lcjo6c3Rh
cnRTY3JpcHRGZXRjaEZvckpvYik6CisgICAgICAgIChXZWJDb3JlOjpTZXJ2aWNlV29ya2VyQ29u
dGFpbmVyOjpqb2JGaW5pc2hlZExvYWRpbmdTY3JpcHQpOgorICAgICAgICAoV2ViQ29yZTo6U2Vy
dmljZVdvcmtlckNvbnRhaW5lcjo6am9iRmFpbGVkTG9hZGluZ1NjcmlwdCk6CisgICAgICAgICog
d29ya2Vycy9zZXJ2aWNlL1NlcnZpY2VXb3JrZXJDb250YWluZXIuaDoKKworICAgICAgICAqIHdv
cmtlcnMvc2VydmljZS9TZXJ2aWNlV29ya2VyRmV0Y2hSZXN1bHQuaDogQ29waWVkIGZyb20gU291
cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL3NlcnZlci9TV0NsaWVudENvbm5lY3Rpb24uaC4K
KyAgICAgICAgKFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJGZXRjaFJlc3VsdDo6ZW5jb2RlIGNvbnN0
KToKKyAgICAgICAgKFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJGZXRjaFJlc3VsdDo6ZGVjb2RlKToK
KworICAgICAgICAqIHdvcmtlcnMvc2VydmljZS9TZXJ2aWNlV29ya2VySm9iLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJKb2I6OnN0YXJ0U2NyaXB0RmV0Y2gpOgorICAgICAg
ICAoV2ViQ29yZTo6U2VydmljZVdvcmtlckpvYjo6ZmV0Y2hTY3JpcHRXaXRoQ29udGV4dCk6Cisg
ICAgICAgIChXZWJDb3JlOjpTZXJ2aWNlV29ya2VySm9iOjpkaWRSZWNlaXZlUmVzcG9uc2UpOgor
ICAgICAgICAoV2ViQ29yZTo6U2VydmljZVdvcmtlckpvYjo6bm90aWZ5RmluaXNoZWQpOgorICAg
ICAgICAqIHdvcmtlcnMvc2VydmljZS9TZXJ2aWNlV29ya2VySm9iLmg6CisgICAgICAgICogd29y
a2Vycy9zZXJ2aWNlL1NlcnZpY2VXb3JrZXJKb2JDbGllbnQuaDoKKworICAgICAgICAqIHdvcmtl
cnMvc2VydmljZS9zZXJ2ZXIvU1dDbGllbnRDb25uZWN0aW9uLmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OlNXQ2xpZW50Q29ubmVjdGlvbjo6ZmluaXNoZWRGZXRjaGluZ1NjcmlwdCk6CisgICAgICAg
IChXZWJDb3JlOjpTV0NsaWVudENvbm5lY3Rpb246OmZhaWxlZEZldGNoaW5nU2NyaXB0KToKKyAg
ICAgICAgKFdlYkNvcmU6OlNXQ2xpZW50Q29ubmVjdGlvbjo6c3RhcnRTY3JpcHRGZXRjaEZvclNl
cnZlcik6CisgICAgICAgICogd29ya2Vycy9zZXJ2aWNlL3NlcnZlci9TV0NsaWVudENvbm5lY3Rp
b24uaDoKKworICAgICAgICAqIHdvcmtlcnMvc2VydmljZS9zZXJ2ZXIvU1dTZXJ2ZXIuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6U1dTZXJ2ZXI6OkNvbm5lY3Rpb246OmZpbmlzaEZldGNoaW5nU2Ny
aXB0SW5TZXJ2ZXIpOgorICAgICAgICAoV2ViQ29yZTo6U1dTZXJ2ZXI6OnN0YXJ0U2NyaXB0RmV0
Y2gpOgorICAgICAgICAoV2ViQ29yZTo6U1dTZXJ2ZXI6OnNjcmlwdEZldGNoRmluaXNoZWQpOgor
ICAgICAgICAqIHdvcmtlcnMvc2VydmljZS9zZXJ2ZXIvU1dTZXJ2ZXIuaDoKKworICAgICAgICAq
IHdvcmtlcnMvc2VydmljZS9zZXJ2ZXIvU1dTZXJ2ZXJSZWdpc3RyYXRpb24uY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6U1dTZXJ2ZXJSZWdpc3RyYXRpb246OnNjcmlwdEZldGNoRmluaXNoZWQpOgor
ICAgICAgICAoV2ViQ29yZTo6U1dTZXJ2ZXJSZWdpc3RyYXRpb246OnJ1blVwZGF0ZUpvYik6Cisg
ICAgICAgIChXZWJDb3JlOjpTV1NlcnZlclJlZ2lzdHJhdGlvbjo6c3RhcnRTY3JpcHRGZXRjaEZy
b21NYWluVGhyZWFkKToKKyAgICAgICAgKFdlYkNvcmU6OlNXU2VydmVyUmVnaXN0cmF0aW9uOjpz
dGFydFNjcmlwdEZldGNoRm9yQ3VycmVudEpvYik6CisgICAgICAgICogd29ya2Vycy9zZXJ2aWNl
L3NlcnZlci9TV1NlcnZlclJlZ2lzdHJhdGlvbi5oOgorCiAyMDE3LTEwLTA1ICBBbnR0aSBLb2l2
aXN0byAgPGFudHRpQGFwcGxlLmNvbT4KIAogICAgICAgICBNb3ZlIG1vcmUgbXVsdGljb2x1bW4g
cmVuZGVyIHRyZWUgbXV0YXRpb24gY29kZSB0byBSZW5kZXJUcmVlVXBkYXRlcjo6TXVsdGlDb2x1
bW4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3Qu
cGJ4cHJvaiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJv
agppbmRleCA4NTZlMGRhZDQ1NC4uNDI2ZDgzYmM3NzEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTEzMjAsNyArMTMyMCw3IEBA
CiAJCTJFOTRGNDNCMTE5MjA3REEwMEI3Rjc1RCAvKiBKU0ZpbGVSZWFkZXIuY3BwIGluIFNvdXJj
ZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMkU5NEY0MzkxMTkyMDdEQTAw
QjdGNzVEIC8qIEpTRmlsZVJlYWRlci5jcHAgKi87IH07CiAJCTJFOTRGNDNDMTE5MjA3REEwMEI3
Rjc1RCAvKiBKU0ZpbGVSZWFkZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDJFOTRGNDNBMTE5MjA3REEwMEI3Rjc1RCAvKiBKU0ZpbGVSZWFkZXIuaCAq
LzsgfTsKIAkJMkU5QjVEOEYxQjY2QTk0RTAwOEM2QTI0IC8qIFdoZWVsRXZlbnREZWx0YUZpbHRl
ck1hYy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMkU5
QjVEOEUxQjY2QTk0RTAwOEM2QTI0IC8qIFdoZWVsRXZlbnREZWx0YUZpbHRlck1hYy5oICovOyBz
ZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07Ci0JCTJFQTc2ODA0MEZF
NzEyNjQwMEFCOUM4QSAvKiBXb3JrZXJTY3JpcHRMb2FkZXJDbGllbnQuaCBpbiBIZWFkZXJzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDJFQTc2ODAzMEZFNzEyNjQwMEFCOUM4
QSAvKiBXb3JrZXJTY3JpcHRMb2FkZXJDbGllbnQuaCAqLzsgfTsKKwkJMkVBNzY4MDQwRkU3MTI2
NDAwQUI5QzhBIC8qIFdvcmtlclNjcmlwdExvYWRlckNsaWVudC5oIGluIEhlYWRlcnMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMkVBNzY4MDMwRkU3MTI2NDAwQUI5QzhBIC8q
IFdvcmtlclNjcmlwdExvYWRlckNsaWVudC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0g
KFByaXZhdGUsICk7IH07IH07CiAJCTJFQjRCQ0QyMTIxRjAzRTMwMEVDNDg4NSAvKiBCbG9iUmVz
b3VyY2VIYW5kbGUuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gMkVCNEJDRDAxMjFGMDNFMzAwRUM0ODg1IC8qIEJsb2JSZXNvdXJjZUhhbmRsZS5jcHAg
Ki87IH07CiAJCTJFQjRCQ0QzMTIxRjAzRTMwMEVDNDg4NSAvKiBCbG9iUmVzb3VyY2VIYW5kbGUu
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDJFQjRCQ0Qx
MTIxRjAzRTMwMEVDNDg4NSAvKiBCbG9iUmVzb3VyY2VIYW5kbGUuaCAqLzsgfTsKIAkJMkVCNzY3
NTYxREExOUI5OTAwM0UyM0I1IC8qIElucHV0RXZlbnQuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMkVCNzY3NTUxREExOUI5OTAwM0UyM0I1IC8qIElu
cHV0RXZlbnQuY3BwICovOyB9OwpAQCAtMjM0Myw2ICsyMzQzLDEwIEBACiAJCTUxN0E1MzQ2MUY1
MEMxN0YwMERDREMwQSAvKiBTV1NlcnZlcldvcmtlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTE3QTUzNDIxRjUwQzE2MTAwRENEQzBBIC8qIFNXU2Vy
dmVyV29ya2VyLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsg
fTsKIAkJNTE3QTUzNEUxRjU0QThCQTAwRENEQzBBIC8qIFNlcnZpY2VXb3JrZXJSZWdpc3RyYXRp
b25EYXRhLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDUxN0E1MzRCMUY1NDlENEEwMERDREMwQSAvKiBTZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uRGF0
YS5jcHAgKi87IH07CiAJCTUxN0E1MzRGMUY1NEE4QkEwMERDREMwQSAvKiBTZXJ2aWNlV29ya2Vy
UmVnaXN0cmF0aW9uRGF0YS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gNTE3QTUzNEMxRjU0OUQ0QTAwRENEQzBBIC8qIFNlcnZpY2VXb3JrZXJSZWdpc3Ry
YXRpb25EYXRhLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsg
fTsKKwkJNTE3QTUzNTgxRjU4ODlFODAwRENEQzBBIC8qIEZldGNoTG9hZGVyQ2xpZW50LmggaW4g
SGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0MTQ3RTJCNjFDODk5
MTI2MDBBN0U3MTUgLyogRmV0Y2hMb2FkZXJDbGllbnQuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklC
VVRFUyA9IChQcml2YXRlLCApOyB9OyB9OworCQk1MTdBNTM1QTFGNTg4OUVGMDBEQ0RDMEEgLyog
RmV0Y2hMb2FkZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDQxNDdFMkI1MUM4OTkxMjYwMEE3RTcxNSAvKiBGZXRjaExvYWRlci5oICovOyBzZXR0aW5n
cyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CisJCTUxN0E1MzVCMUY1ODhBNEMw
MERDREMwQSAvKiBGZXRjaEJvZHlDb25zdW1lci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gNDFDRjhCRTUxRDQ2MjIyMDAwNzA3REM5IC8qIEZldGNoQm9k
eUNvbnN1bWVyLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsg
fTsKKwkJNTE3QTUzNUQxRjU4OTlGRTAwRENEQzBBIC8qIFNlcnZpY2VXb3JrZXJGZXRjaFJlc3Vs
dC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTE3QTUz
NUMxRjU4OTlGMjAwRENEQzBBIC8qIFNlcnZpY2VXb3JrZXJGZXRjaFJlc3VsdC5oICovOyBzZXR0
aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTUxN0E2M0MzMUI3NDMx
ODcwMEU3RENEQyAvKiBLZXllZERlY29kZXJDRi5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1MTdBNjNCRjFCNzQzMTdFMDBFN0RDREMgLyogS2V5ZWRE
ZWNvZGVyQ0YuY3BwICovOyB9OwogCQk1MTdBNjNDNDFCNzQzMThCMDBFN0RDREMgLyogS2V5ZWRF
bmNvZGVyQ0YuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gNTE3QTYzQzExQjc0MzE3RTAwRTdEQ0RDIC8qIEtleWVkRW5jb2RlckNGLmNwcCAqLzsgfTsK
IAkJNTE3QTYzQzUxQjc0MzE4RjAwRTdEQ0RDIC8qIEtleWVkRGVjb2RlckNGLmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1MTdBNjNDMDFCNzQzMTdFMDBF
N0RDREMgLyogS2V5ZWREZWNvZGVyQ0YuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQ
cml2YXRlLCApOyB9OyB9OwpAQCAtNDY4Myw3ICs0Njg3LDcgQEAKIAkJQTdEMjBGNjIxMDdGNDA2
OTAwQTgwMzkyIC8qIEpTV2ViR0xBY3RpdmVJbmZvLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE3RDIwRjYwMTA3RjQwNjkwMEE4MDM5MiAvKiBKU1dl
YkdMQWN0aXZlSW5mby5jcHAgKi87IH07CiAJCUE3RDIwRjYzMTA3RjQwNjkwMEE4MDM5MiAvKiBK
U1dlYkdMQWN0aXZlSW5mby5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gQTdEMjBGNjExMDdGNDA2OTAwQTgwMzkyIC8qIEpTV2ViR0xBY3RpdmVJbmZvLmgg
Ki87IH07CiAJCUE3RDIwRjZEMTA3RjQzOEIwMEE4MDM5MiAvKiBXZWJHTEFjdGl2ZUluZm8uaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE3RDIwRjZCMTA3
RjQzOEIwMEE4MDM5MiAvKiBXZWJHTEFjdGl2ZUluZm8uaCAqLzsgfTsKLQkJQTdENkIzNDkwRjYx
MTA0NTAwQjc5RkQxIC8qIFdvcmtlclNjcmlwdExvYWRlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTdENkIzNDcwRjYxMTA0NTAwQjc5RkQxIC8qIFdv
cmtlclNjcmlwdExvYWRlci5oICovOyB9OworCQlBN0Q2QjM0OTBGNjExMDQ1MDBCNzlGRDEgLyog
V29ya2VyU2NyaXB0TG9hZGVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSBBN0Q2QjM0NzBGNjExMDQ1MDBCNzlGRDEgLyogV29ya2VyU2NyaXB0TG9hZGVy
LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJQTdE
NkIzNEEwRjYxMTA0NTAwQjc5RkQxIC8qIFdvcmtlclNjcmlwdExvYWRlci5jcHAgaW4gU291cmNl
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBN0Q2QjM0ODBGNjExMDQ1MDBC
NzlGRDEgLyogV29ya2VyU2NyaXB0TG9hZGVyLmNwcCAqLzsgfTsKIAkJQTdEQkY4REQxMjc2OTE5
QzAwNkI2MDA4IC8qIFRleHRDaGVja2luZ0hlbHBlci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBN0RCRjhEQjEyNzY5MTlDMDA2QjYwMDggLyogVGV4
dENoZWNraW5nSGVscGVyLmNwcCAqLzsgfTsKIAkJQTdEQkY4REUxMjc2OTE5QzAwNkI2MDA4IC8q
IFRleHRDaGVja2luZ0hlbHBlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gQTdEQkY4REMxMjc2OTE5QzAwNkI2MDA4IC8qIFRleHRDaGVja2luZ0hlbHBl
ci5oICovOyB9OwpAQCAtMTAyMzgsNiArMTAyNDIsNyBAQAogCQk1MTdBNTM0MzFGNTBDMTYxMDBE
Q0RDMEEgLyogU1dTZXJ2ZXJXb3JrZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3Bw
OyBwYXRoID0gU1dTZXJ2ZXJXb3JrZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owog
CQk1MTdBNTM0QjFGNTQ5RDRBMDBEQ0RDMEEgLyogU2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbkRh
dGEuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gU2VydmljZVdvcmtl
clJlZ2lzdHJhdGlvbkRhdGEuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1MTdB
NTM0QzFGNTQ5RDRBMDBEQ0RDMEEgLyogU2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbkRhdGEuaCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gU2VydmljZVdvcmtlclJlZ2lzdHJhdGlv
bkRhdGEuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNTE3QTUzNUMxRjU4OTlGMjAw
RENEQzBBIC8qIFNlcnZpY2VXb3JrZXJGZXRjaFJlc3VsdC5oICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jLmg7IHBhdGggPSBTZXJ2aWNlV29ya2VyRmV0Y2hSZXN1bHQuaDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKIAkJNTE3QTYzQkYxQjc0MzE3RTAwRTdEQ0RDIC8qIEtleWVkRGVjb2RlckNG
LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEtleWVkRGVjb2RlckNG
LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTE3QTYzQzAxQjc0MzE3RTAwRTdE
Q0RDIC8qIEtleWVkRGVjb2RlckNGLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9
IEtleWVkRGVjb2RlckNGLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTUxN0E2M0Mx
MUI3NDMxN0UwMEU3RENEQyAvKiBLZXllZEVuY29kZXJDRi5jcHAgKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmNwcC5jcHA7IHBhdGggPSBLZXllZEVuY29kZXJDRi5jcHA7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CkBAIC0xOTA5OCw2ICsxOTEwMyw3IEBACiAJCQkJNTFGMTc1NTgxRjNFQkMwQzAw
Qzc0OTUwIC8qIFNlcnZpY2VXb3JrZXJDb250YWluZXIuY3BwICovLAogCQkJCTUxRjE3NTU3MUYz
RUJDMEMwMEM3NDk1MCAvKiBTZXJ2aWNlV29ya2VyQ29udGFpbmVyLmggKi8sCiAJCQkJNTFGMTc1
NTYxRjNFQkMwQzAwQzc0OTUwIC8qIFNlcnZpY2VXb3JrZXJDb250YWluZXIuaWRsICovLAorCQkJ
CTUxN0E1MzVDMUY1ODk5RjIwMERDREMwQSAvKiBTZXJ2aWNlV29ya2VyRmV0Y2hSZXN1bHQuaCAq
LywKIAkJCQk1MUYxNzU1NTFGM0VCQzBDMDBDNzQ5NTAgLyogU2VydmljZVdvcmtlckdsb2JhbFNj
b3BlLmNwcCAqLywKIAkJCQk1MUYxNzU1NDFGM0VCQzBDMDBDNzQ5NTAgLyogU2VydmljZVdvcmtl
ckdsb2JhbFNjb3BlLmggKi8sCiAJCQkJNTFGMTc1NTMxRjNFQkMwQzAwQzc0OTUwIC8qIFNlcnZp
Y2VXb3JrZXJHbG9iYWxTY29wZS5pZGwgKi8sCkBAIC0yNzA1NSw2ICsyNzA2MSw3IEBACiAJCQkJ
MUE4QTY0NTYxRDE5RkNGQzAwRDBFMDBGIC8qIEFwcGxlUGF5UGF5bWVudE1ldGhvZFNlbGVjdGVk
RXZlbnQuaCBpbiBIZWFkZXJzICovLAogCQkJCTdDNjUyMkY1MUUwMEE1MTcwMDY3N0YyMiAvKiBB
cHBsZVBheVBheW1lbnRQYXNzLmggaW4gSGVhZGVycyAqLywKIAkJCQk3QzY1NzlFMDFFMDA3OUY5
MDBFM0EyN0EgLyogQXBwbGVQYXlQYXltZW50UmVxdWVzdC5oIGluIEhlYWRlcnMgKi8sCisJCQkJ
NTE3QTUzNUExRjU4ODlFRjAwRENEQzBBIC8qIEZldGNoTG9hZGVyLmggaW4gSGVhZGVycyAqLywK
IAkJCQkxQThBNjQ1OTFEMTlGQ0ZDMDBEMEUwMEYgLyogQXBwbGVQYXlTZXNzaW9uLmggaW4gSGVh
ZGVycyAqLywKIAkJCQkxQTU4RTg2NTFEMTlENEVCMDBDMEVBNzMgLyogQXBwbGVQYXlTZXNzaW9u
UGF5bWVudFJlcXVlc3QuaCBpbiBIZWFkZXJzICovLAogCQkJCTFBOEE2NDVDMUQxOUZDRkMwMEQw
RTAwRiAvKiBBcHBsZVBheVNoaXBwaW5nQ29udGFjdFNlbGVjdGVkRXZlbnQuaCBpbiBIZWFkZXJz
ICovLApAQCAtMjgwMjUsNiArMjgwMzIsNyBAQAogCQkJCTkzRjE5OEU1MDgyNDVFNTkwMDFFOUFC
QyAvKiBIVE1MRG9jdW1lbnQuaCBpbiBIZWFkZXJzICovLAogCQkJCTk3N0IzODY3MTIyODgzRTkw
MEI4MUZGOCAvKiBIVE1MRG9jdW1lbnRQYXJzZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCTkzRjE5
OEU2MDgyNDVFNTkwMDFFOUFCQyAvKiBIVE1MRWxlbWVudC5oIGluIEhlYWRlcnMgKi8sCisJCQkJ
NTE3QTUzNTgxRjU4ODlFODAwRENEQzBBIC8qIEZldGNoTG9hZGVyQ2xpZW50LmggaW4gSGVhZGVy
cyAqLywKIAkJCQlBMTdDODEyMzBGMkE1Q0Y3MDA1REFBRUIgLyogSFRNTEVsZW1lbnRGYWN0b3J5
LmggaW4gSGVhZGVycyAqLywKIAkJCQk5NzdCMzcyNDEyMjg3MjE3MDBCODFGRjggLyogSFRNTEVs
ZW1lbnRTdGFjay5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQjU2MkRCNjAxN0QzQ0Q2MzAwMTBBRjk2
IC8qIEhUTUxFbGVtZW50VHlwZUhlbHBlcnMuaCBpbiBIZWFkZXJzICovLApAQCAtMjkxOTcsNiAr
MjkyMDUsNyBAQAogCQkJCUZBNjU0QTZDMTEwOEFCRUQwMDI2MjZGMSAvKiBNYXRoTUxVbmRlck92
ZXJFbGVtZW50LmggaW4gSGVhZGVycyAqLywKIAkJCQkzN0M3MzhFRjFFREJENzFCMDAzRjJCMEIg
LyogTWF0aE1MVW5rbm93bkVsZW1lbnQuaCBpbiBIZWFkZXJzICovLAogCQkJCTQzOTA0NkVBMTJE
QTI1RTgxMkFGODBBQyAvKiBNYXRoT3BlcmF0b3IuaCBpbiBIZWFkZXJzICovLAorCQkJCTUxN0E1
MzVCMUY1ODhBNEMwMERDREMwQSAvKiBGZXRjaEJvZHlDb25zdW1lci5oIGluIEhlYWRlcnMgKi8s
CiAJCQkJNDlENURDMkMwRjQyM0E3MzAwOEYyMEZEIC8qIE1hdHJpeDNEVHJhbnNmb3JtT3BlcmF0
aW9uLmggaW4gSGVhZGVycyAqLywKIAkJCQk0OUU5MTFDNzBFRjg2RDQ3MDA5RDBDQUYgLyogTWF0
cml4VHJhbnNmb3JtT3BlcmF0aW9uLmggaW4gSGVhZGVycyAqLywKIAkJCQk1Q0JDOERBRDFBQUEz
MDIyMDBFMUM4MDMgLyogTWVkaWFBY2Nlc3NpYmlsaXR5U29mdExpbmsuaCBpbiBIZWFkZXJzICov
LApAQCAtMjkzNTIsNiArMjkzNjEsNyBAQAogCQkJCTY1NkQzNzQzMEFEQkE1REUwMEE0NTU0RCAv
KiBOZXRzY2FwZVBsdWdJblN0cmVhbUxvYWRlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQTE5RDkz
NEIxQUExMUIxRTAwQjQ2QzI0IC8qIE5ldHdvcmtFeHRlbnNpb25Db250ZW50RmlsdGVyLmggaW4g
SGVhZGVycyAqLywKIAkJCQk2MjhEMjE0QzEyMTMxRUQxMDA1NURDRkMgLyogTmV0d29ya2luZ0Nv
bnRleHQuaCBpbiBIZWFkZXJzICovLAorCQkJCTUxN0E1MzVEMUY1ODk5RkUwMERDREMwQSAvKiBT
ZXJ2aWNlV29ya2VyRmV0Y2hSZXN1bHQuaCBpbiBIZWFkZXJzICovLAogCQkJCThBODFCRjg1MTFE
Q0ZEOTAwMERBMkI5OCAvKiBOZXR3b3JrTG9hZE1ldHJpY3MuaCBpbiBIZWFkZXJzICovLAogCQkJ
CTU5QzI3RjA3MTM4RDI4Q0YwMDc5QjdFMiAvKiBOZXR3b3JrUmVzb3VyY2VzRGF0YS5oIGluIEhl
YWRlcnMgKi8sCiAJCQkJMUE3RkE2MTkwRERBM0IzQTAwMjhGOEE1IC8qIE5ldHdvcmtTdGF0ZU5v
dGlmaWVyLmggaW4gSGVhZGVycyAqLywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3dvcmtl
cnMvV29ya2VyU2NyaXB0TG9hZGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2Vy
U2NyaXB0TG9hZGVyLmNwcAppbmRleCAzNWJjYjE2MTlhZS4uOTcyMGE5N2MwMjAgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyU2NyaXB0TG9hZGVyLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlclNjcmlwdExvYWRlci5jcHAKQEAgLTE2NCw4ICsx
NjQsOSBAQCB2b2lkIFdvcmtlclNjcmlwdExvYWRlcjo6ZGlkRmluaXNoTG9hZGluZyh1bnNpZ25l
ZCBsb25nIGlkZW50aWZpZXIpCiAgICAgbm90aWZ5RmluaXNoZWQoKTsKIH0KIAotdm9pZCBXb3Jr
ZXJTY3JpcHRMb2FkZXI6OmRpZEZhaWwoY29uc3QgUmVzb3VyY2VFcnJvciYpCit2b2lkIFdvcmtl
clNjcmlwdExvYWRlcjo6ZGlkRmFpbChjb25zdCBSZXNvdXJjZUVycm9yJiBlcnJvcikKIHsKKyAg
ICBtX2Vycm9yID0gZXJyb3I7CiAgICAgbm90aWZ5RXJyb3IoKTsKIH0KIApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJTY3JpcHRMb2FkZXIuaCBiL1NvdXJjZS9XZWJD
b3JlL3dvcmtlcnMvV29ya2VyU2NyaXB0TG9hZGVyLmgKaW5kZXggYzgwNzk4YWM2YzkuLmE4NmM1
NzRhMWIwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlclNjcmlwdExv
YWRlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyU2NyaXB0TG9hZGVyLmgK
QEAgLTI2LDEwICsyNiwxMSBAQAogCiAjcHJhZ21hIG9uY2UKIAotI2luY2x1ZGUgIlVSTC5oIgor
I2luY2x1ZGUgIlJlc291cmNlRXJyb3IuaCIKICNpbmNsdWRlICJSZXNvdXJjZVJlcXVlc3QuaCIK
ICNpbmNsdWRlICJUaHJlYWRhYmxlTG9hZGVyLmgiCiAjaW5jbHVkZSAiVGhyZWFkYWJsZUxvYWRl
ckNsaWVudC5oIgorI2luY2x1ZGUgIlVSTC5oIgogI2luY2x1ZGUgPG1lbW9yeT4KICNpbmNsdWRl
IDx3dGYvRmFzdE1hbGxvYy5oPgogI2luY2x1ZGUgPHd0Zi9SZWZDb3VudGVkLmg+CkBAIC0zOCw1
NCArMzksNTYgQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi0gICAgY2xhc3MgUmVzb3VyY2VS
ZXNwb25zZTsKLSAgICBjbGFzcyBTY3JpcHRFeGVjdXRpb25Db250ZXh0OwotICAgIGNsYXNzIFRl
eHRSZXNvdXJjZURlY29kZXI7Ci0gICAgY2xhc3MgV29ya2VyU2NyaXB0TG9hZGVyQ2xpZW50Owor
Y2xhc3MgUmVzb3VyY2VSZXNwb25zZTsKK2NsYXNzIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQ7Citj
bGFzcyBUZXh0UmVzb3VyY2VEZWNvZGVyOworY2xhc3MgV29ya2VyU2NyaXB0TG9hZGVyQ2xpZW50
OwogCi0gICAgY2xhc3MgV29ya2VyU2NyaXB0TG9hZGVyIDogcHVibGljIFJlZkNvdW50ZWQ8V29y
a2VyU2NyaXB0TG9hZGVyPiwgcHVibGljIFRocmVhZGFibGVMb2FkZXJDbGllbnQgewotICAgICAg
ICBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsKLSAgICBwdWJsaWM6Ci0gICAgICAgIHN0YXRpYyBS
ZWY8V29ya2VyU2NyaXB0TG9hZGVyPiBjcmVhdGUoKQotICAgICAgICB7Ci0gICAgICAgICAgICBy
ZXR1cm4gYWRvcHRSZWYoKm5ldyBXb3JrZXJTY3JpcHRMb2FkZXIpOwotICAgICAgICB9CitjbGFz
cyBXb3JrZXJTY3JpcHRMb2FkZXIgOiBwdWJsaWMgUmVmQ291bnRlZDxXb3JrZXJTY3JpcHRMb2Fk
ZXI+LCBwdWJsaWMgVGhyZWFkYWJsZUxvYWRlckNsaWVudCB7CisgICAgV1RGX01BS0VfRkFTVF9B
TExPQ0FURUQ7CitwdWJsaWM6CisgICAgc3RhdGljIFJlZjxXb3JrZXJTY3JpcHRMb2FkZXI+IGNy
ZWF0ZSgpCisgICAgeworICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBXb3JrZXJTY3JpcHRM
b2FkZXIpOworICAgIH0KIAotICAgICAgICB2b2lkIGxvYWRTeW5jaHJvbm91c2x5KFNjcmlwdEV4
ZWN1dGlvbkNvbnRleHQqLCBjb25zdCBVUkwmLCBGZXRjaE9wdGlvbnM6Ok1vZGUsIENvbnRlbnRT
ZWN1cml0eVBvbGljeUVuZm9yY2VtZW50LCBjb25zdCBTdHJpbmcmIGluaXRpYXRvcklkZW50aWZp
ZXIpOwotICAgICAgICB2b2lkIGxvYWRBc3luY2hyb25vdXNseShTY3JpcHRFeGVjdXRpb25Db250
ZXh0KiwgY29uc3QgVVJMJiwgRmV0Y2hPcHRpb25zOjpNb2RlLCBDb250ZW50U2VjdXJpdHlQb2xp
Y3lFbmZvcmNlbWVudCwgY29uc3QgU3RyaW5nJiBpbml0aWF0b3JJZGVudGlmaWVyLCBXb3JrZXJT
Y3JpcHRMb2FkZXJDbGllbnQqKTsKKyAgICB2b2lkIGxvYWRTeW5jaHJvbm91c2x5KFNjcmlwdEV4
ZWN1dGlvbkNvbnRleHQqLCBjb25zdCBVUkwmLCBGZXRjaE9wdGlvbnM6Ok1vZGUsIENvbnRlbnRT
ZWN1cml0eVBvbGljeUVuZm9yY2VtZW50LCBjb25zdCBTdHJpbmcmIGluaXRpYXRvcklkZW50aWZp
ZXIpOworICAgIHZvaWQgbG9hZEFzeW5jaHJvbm91c2x5KFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQq
LCBjb25zdCBVUkwmLCBGZXRjaE9wdGlvbnM6Ok1vZGUsIENvbnRlbnRTZWN1cml0eVBvbGljeUVu
Zm9yY2VtZW50LCBjb25zdCBTdHJpbmcmIGluaXRpYXRvcklkZW50aWZpZXIsIFdvcmtlclNjcmlw
dExvYWRlckNsaWVudCopOwogCi0gICAgICAgIHZvaWQgbm90aWZ5RXJyb3IoKTsKKyAgICB2b2lk
IG5vdGlmeUVycm9yKCk7CiAKLSAgICAgICAgU3RyaW5nIHNjcmlwdCgpOwotICAgICAgICBjb25z
dCBVUkwmIHVybCgpIGNvbnN0IHsgcmV0dXJuIG1fdXJsOyB9Ci0gICAgICAgIGNvbnN0IFVSTCYg
cmVzcG9uc2VVUkwoKSBjb25zdDsKLSAgICAgICAgYm9vbCBmYWlsZWQoKSBjb25zdCB7IHJldHVy
biBtX2ZhaWxlZDsgfQotICAgICAgICB1bnNpZ25lZCBsb25nIGlkZW50aWZpZXIoKSBjb25zdCB7
IHJldHVybiBtX2lkZW50aWZpZXI7IH0KKyAgICBTdHJpbmcgc2NyaXB0KCk7CisgICAgY29uc3Qg
VVJMJiB1cmwoKSBjb25zdCB7IHJldHVybiBtX3VybDsgfQorICAgIGNvbnN0IFVSTCYgcmVzcG9u
c2VVUkwoKSBjb25zdDsKKyAgICBib29sIGZhaWxlZCgpIGNvbnN0IHsgcmV0dXJuIG1fZmFpbGVk
OyB9CisgICAgdW5zaWduZWQgbG9uZyBpZGVudGlmaWVyKCkgY29uc3QgeyByZXR1cm4gbV9pZGVu
dGlmaWVyOyB9CisgICAgY29uc3QgUmVzb3VyY2VFcnJvciYgZXJyb3IoKSBjb25zdCB7IHJldHVy
biBtX2Vycm9yOyB9CiAKLSAgICAgICAgdm9pZCBkaWRSZWNlaXZlUmVzcG9uc2UodW5zaWduZWQg
bG9uZyBpZGVudGlmaWVyLCBjb25zdCBSZXNvdXJjZVJlc3BvbnNlJikgb3ZlcnJpZGU7Ci0gICAg
ICAgIHZvaWQgZGlkUmVjZWl2ZURhdGEoY29uc3QgY2hhciogZGF0YSwgaW50IGRhdGFMZW5ndGgp
IG92ZXJyaWRlOwotICAgICAgICB2b2lkIGRpZEZpbmlzaExvYWRpbmcodW5zaWduZWQgbG9uZyBp
ZGVudGlmaWVyKSBvdmVycmlkZTsKLSAgICAgICAgdm9pZCBkaWRGYWlsKGNvbnN0IFJlc291cmNl
RXJyb3ImKSBvdmVycmlkZTsKKyAgICB2b2lkIGRpZFJlY2VpdmVSZXNwb25zZSh1bnNpZ25lZCBs
b25nIGlkZW50aWZpZXIsIGNvbnN0IFJlc291cmNlUmVzcG9uc2UmKSBvdmVycmlkZTsKKyAgICB2
b2lkIGRpZFJlY2VpdmVEYXRhKGNvbnN0IGNoYXIqIGRhdGEsIGludCBkYXRhTGVuZ3RoKSBvdmVy
cmlkZTsKKyAgICB2b2lkIGRpZEZpbmlzaExvYWRpbmcodW5zaWduZWQgbG9uZyBpZGVudGlmaWVy
KSBvdmVycmlkZTsKKyAgICB2b2lkIGRpZEZhaWwoY29uc3QgUmVzb3VyY2VFcnJvciYpIG92ZXJy
aWRlOwogCi0gICAgcHJpdmF0ZToKLSAgICAgICAgZnJpZW5kIGNsYXNzIFdURjo6UmVmQ291bnRl
ZDxXb3JrZXJTY3JpcHRMb2FkZXI+OworcHJpdmF0ZToKKyAgICBmcmllbmQgY2xhc3MgV1RGOjpS
ZWZDb3VudGVkPFdvcmtlclNjcmlwdExvYWRlcj47CiAKLSAgICAgICAgV29ya2VyU2NyaXB0TG9h
ZGVyKCk7Ci0gICAgICAgIH5Xb3JrZXJTY3JpcHRMb2FkZXIoKTsKKyAgICBXb3JrZXJTY3JpcHRM
b2FkZXIoKTsKKyAgICB+V29ya2VyU2NyaXB0TG9hZGVyKCk7CiAKLSAgICAgICAgc3RkOjp1bmlx
dWVfcHRyPFJlc291cmNlUmVxdWVzdD4gY3JlYXRlUmVzb3VyY2VSZXF1ZXN0KGNvbnN0IFN0cmlu
ZyYgaW5pdGlhdG9ySWRlbnRpZmllcik7Ci0gICAgICAgIHZvaWQgbm90aWZ5RmluaXNoZWQoKTsK
KyAgICBzdGQ6OnVuaXF1ZV9wdHI8UmVzb3VyY2VSZXF1ZXN0PiBjcmVhdGVSZXNvdXJjZVJlcXVl
c3QoY29uc3QgU3RyaW5nJiBpbml0aWF0b3JJZGVudGlmaWVyKTsKKyAgICB2b2lkIG5vdGlmeUZp
bmlzaGVkKCk7CiAKLSAgICAgICAgV29ya2VyU2NyaXB0TG9hZGVyQ2xpZW50KiBtX2NsaWVudCB7
IG51bGxwdHIgfTsKLSAgICAgICAgUmVmUHRyPFRocmVhZGFibGVMb2FkZXI+IG1fdGhyZWFkYWJs
ZUxvYWRlcjsKLSAgICAgICAgU3RyaW5nIG1fcmVzcG9uc2VFbmNvZGluZzsgICAgICAgIAotICAg
ICAgICBSZWZQdHI8VGV4dFJlc291cmNlRGVjb2Rlcj4gbV9kZWNvZGVyOwotICAgICAgICBTdHJp
bmdCdWlsZGVyIG1fc2NyaXB0OwotICAgICAgICBVUkwgbV91cmw7Ci0gICAgICAgIFVSTCBtX3Jl
c3BvbnNlVVJMOwotICAgICAgICB1bnNpZ25lZCBsb25nIG1faWRlbnRpZmllciB7IDAgfTsKLSAg
ICAgICAgYm9vbCBtX2ZhaWxlZCB7IGZhbHNlIH07Ci0gICAgICAgIGJvb2wgbV9maW5pc2hpbmcg
eyBmYWxzZSB9OwotICAgIH07CisgICAgV29ya2VyU2NyaXB0TG9hZGVyQ2xpZW50KiBtX2NsaWVu
dCB7IG51bGxwdHIgfTsKKyAgICBSZWZQdHI8VGhyZWFkYWJsZUxvYWRlcj4gbV90aHJlYWRhYmxl
TG9hZGVyOworICAgIFN0cmluZyBtX3Jlc3BvbnNlRW5jb2Rpbmc7CisgICAgUmVmUHRyPFRleHRS
ZXNvdXJjZURlY29kZXI+IG1fZGVjb2RlcjsKKyAgICBTdHJpbmdCdWlsZGVyIG1fc2NyaXB0Owor
ICAgIFVSTCBtX3VybDsKKyAgICBVUkwgbV9yZXNwb25zZVVSTDsKKyAgICB1bnNpZ25lZCBsb25n
IG1faWRlbnRpZmllciB7IDAgfTsKKyAgICBib29sIG1fZmFpbGVkIHsgZmFsc2UgfTsKKyAgICBi
b29sIG1fZmluaXNoaW5nIHsgZmFsc2UgfTsKKyAgICBSZXNvdXJjZUVycm9yIG1fZXJyb3I7Cit9
OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS93
b3JrZXJzL1dvcmtlclNjcmlwdExvYWRlckNsaWVudC5oIGIvU291cmNlL1dlYkNvcmUvd29ya2Vy
cy9Xb3JrZXJTY3JpcHRMb2FkZXJDbGllbnQuaAppbmRleCAxMGQwNmM3NjIyNi4uZDYwZTE5Yzhh
ODcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyU2NyaXB0TG9hZGVy
Q2xpZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJTY3JpcHRMb2FkZXJD
bGllbnQuaApAQCAtMjgsMTggKzI4LDE1IEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotICAg
IGNsYXNzIFJlc291cmNlUmVzcG9uc2U7CitjbGFzcyBSZXNvdXJjZVJlc3BvbnNlOwogCi0gICAg
Y2xhc3MgV29ya2VyU2NyaXB0TG9hZGVyQ2xpZW50IHsKLSAgICBwdWJsaWM6Ci0gICAgICAgIHZp
cnR1YWwgdm9pZCBkaWRSZWNlaXZlUmVzcG9uc2UodW5zaWduZWQgbG9uZyAvKmlkZW50aWZpZXIq
LywgY29uc3QgUmVzb3VyY2VSZXNwb25zZSYpIHsgfQorY2xhc3MgV29ya2VyU2NyaXB0TG9hZGVy
Q2xpZW50IHsKK3B1YmxpYzoKKyAgICB2aXJ0dWFsIHZvaWQgZGlkUmVjZWl2ZVJlc3BvbnNlKHVu
c2lnbmVkIGxvbmcgaWRlbnRpZmllciwgY29uc3QgUmVzb3VyY2VSZXNwb25zZSYpID0gMDsKKyAg
ICB2aXJ0dWFsIHZvaWQgbm90aWZ5RmluaXNoZWQoKSA9IDA7CiAKLSAgICAgICAgLy8gRklYTUU6
IG5vdGlmeUZpbmlzaGVkKCkgaXMgbm90IGN1cnJlbnRseSBndWFyYW50ZWVkIHRvIGJlIGludm9r
ZWQgaWYgdXNlZCBmcm9tIHdvcmtlciBjb250ZXh0IGFuZCB0aGUgd29ya2VyIHNodXRzIGRvd24g
aW4gdGhlIG1pZGRsZSBvZiBhbiBvcGVyYXRpb24uCi0gICAgICAgIC8vIFRoaXMgd2lsbCBjYXVz
ZSBsZWFrcyB3aGVuIHdlIHN1cHBvcnQgbmVzdGVkIHdvcmtlcnMuCi0gICAgICAgIHZpcnR1YWwg
dm9pZCBub3RpZnlGaW5pc2hlZCgpIHsgfQotCi0gICAgcHJvdGVjdGVkOgotICAgICAgICB2aXJ0
dWFsIH5Xb3JrZXJTY3JpcHRMb2FkZXJDbGllbnQoKSB7IH0KLSAgICB9OworcHJvdGVjdGVkOgor
ICAgIHZpcnR1YWwgfldvcmtlclNjcmlwdExvYWRlckNsaWVudCgpIHsgfQorfTsKIAogfSAvLyBu
YW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2
aWNlL1NlcnZpY2VXb3JrZXJDb250YWluZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9z
ZXJ2aWNlL1NlcnZpY2VXb3JrZXJDb250YWluZXIuY3BwCmluZGV4IDVjMWVjZGYxNGQ5Li5kMzBk
YzU3YTZkOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL1NlcnZp
Y2VXb3JrZXJDb250YWluZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2Vydmlj
ZS9TZXJ2aWNlV29ya2VyQ29udGFpbmVyLmNwcApAQCAtMzIsNyArMzIsOSBAQAogI2luY2x1ZGUg
IklETFR5cGVzLmgiCiAjaW5jbHVkZSAiSlNET01Qcm9taXNlRGVmZXJyZWQuaCIKICNpbmNsdWRl
ICJKU1NlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb24uaCIKKyNpbmNsdWRlICJMb2dnaW5nLmgiCiAj
aW5jbHVkZSAiTmF2aWdhdG9yQmFzZS5oIgorI2luY2x1ZGUgIlJlc291cmNlRXJyb3IuaCIKICNp
bmNsdWRlICJTY29wZUd1YXJkLmgiCiAjaW5jbHVkZSAiU2NyaXB0RXhlY3V0aW9uQ29udGV4dC5o
IgogI2luY2x1ZGUgIlNlY3VyaXR5T3JpZ2luLmgiCkBAIC0xODEsNiArMTgzLDM1IEBAIHZvaWQg
U2VydmljZVdvcmtlckNvbnRhaW5lcjo6am9iUmVzb2x2ZWRXaXRoUmVnaXN0cmF0aW9uKFNlcnZp
Y2VXb3JrZXJKb2ImIGpvYiwKICAgICBqb2IucHJvbWlzZSgpLnJlc29sdmU8SURMSW50ZXJmYWNl
PFNlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb24+PihyZWdpc3RyYXRpb24uZ2V0KCkpOwogfQogCit2
b2lkIFNlcnZpY2VXb3JrZXJDb250YWluZXI6OnN0YXJ0U2NyaXB0RmV0Y2hGb3JKb2IoU2Vydmlj
ZVdvcmtlckpvYiYgam9iKQoreworICAgIExPRyhTZXJ2aWNlV29ya2VyLCAiU2V2aWNlV29ya2Vy
Q29udGFpbmVyICVwIHN0YXJ0aW5nIHNjcmlwdCBmZXRjaCBmb3Igam9iICUiIFBSSXU2NCwgdGhp
cywgam9iLmRhdGEoKS5pZGVudGlmaWVyKCkpOworCisgICAgYXV0byogY29udGV4dCA9IHNjcmlw
dEV4ZWN1dGlvbkNvbnRleHQoKTsKKyAgICBpZiAoIWNvbnRleHQpIHsKKyAgICAgICAgTE9HX0VS
Uk9SKCJTZXJ2aWNlV29ya2VyQ29udGFpbmVyOjpqb2JSZXNvbHZlZFdpdGhSZWdpc3RyYXRpb24g
Y2FsbGVkIGJ1dCB0aGUgY29udGFpbmVyJ3MgU2NyaXB0RXhlY3V0aW9uQ29udGV4dCBpcyBnb25l
Iik7CisgICAgICAgIG1fc3dDb25uZWN0aW9uLT5mYWlsZWRGZXRjaGluZ1NjcmlwdChqb2IsIHsg
ZXJyb3JEb21haW5XZWJLaXRJbnRlcm5hbCwgMCwgam9iLmRhdGEoKS5zY3JpcHRVUkwsIEFTQ0lJ
TGl0ZXJhbCgiQXR0ZW1wdCB0byBmZXRjaCBzZXJ2aWNlIHdvcmtlciBzY3JpcHQgd2l0aCBubyBT
Y3JpcHRFeGVjdXRpb25Db250ZXh0IikgfSk7CisgICAgICAgIGpvYkRpZEZpbmlzaChqb2IpOwor
ICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgam9iLmZldGNoU2NyaXB0V2l0aENvbnRleHQo
KmNvbnRleHQpOworfQorCit2b2lkIFNlcnZpY2VXb3JrZXJDb250YWluZXI6OmpvYkZpbmlzaGVk
TG9hZGluZ1NjcmlwdChTZXJ2aWNlV29ya2VySm9iJiBqb2IsIGNvbnN0IFN0cmluZyYgc2NyaXB0
KQoreworICAgIExPRyhTZXJ2aWNlV29ya2VyLCAiU2V2aWNlV29ya2VyQ29udGFpbmVyICVwIGZp
bmlzaGVkIGZldGNoaW5nIHNjcmlwdCBmb3Igam9iICUiIFBSSXU2NCwgdGhpcywgam9iLmRhdGEo
KS5pZGVudGlmaWVyKCkpOworCisgICAgbV9zd0Nvbm5lY3Rpb24tPmZpbmlzaGVkRmV0Y2hpbmdT
Y3JpcHQoam9iLCBzY3JpcHQpOworfQorCit2b2lkIFNlcnZpY2VXb3JrZXJDb250YWluZXI6Ompv
YkZhaWxlZExvYWRpbmdTY3JpcHQoU2VydmljZVdvcmtlckpvYiYgam9iLCBjb25zdCBSZXNvdXJj
ZUVycm9yJiBlcnJvcikKK3sKKyAgICBMT0coU2VydmljZVdvcmtlciwgIlNldmljZVdvcmtlckNv
bnRhaW5lciAlcCBmYWlsZWQgZmV0Y2hpbmcgc2NyaXB0IGZvciBqb2IgJSIgUFJJdTY0LCB0aGlz
LCBqb2IuZGF0YSgpLmlkZW50aWZpZXIoKSk7CisKKyAgICBtX3N3Q29ubmVjdGlvbi0+ZmFpbGVk
RmV0Y2hpbmdTY3JpcHQoam9iLCBlcnJvcik7Cit9CisKIHZvaWQgU2VydmljZVdvcmtlckNvbnRh
aW5lcjo6am9iRGlkRmluaXNoKFNlcnZpY2VXb3JrZXJKb2ImIGpvYikKIHsKICAgICBhdXRvIHRh
a2VuID0gbV9qb2JNYXAudGFrZShqb2IuZGF0YSgpLmlkZW50aWZpZXIoKSk7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvU2VydmljZVdvcmtlckNvbnRhaW5lci5o
IGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL1NlcnZpY2VXb3JrZXJDb250YWluZXIu
aAppbmRleCBlY2RmZDE0NDc3NS4uZmY0Yzc4ZDUxYjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3dvcmtlcnMvc2VydmljZS9TZXJ2aWNlV29ya2VyQ29udGFpbmVyLmgKKysrIGIvU291cmNl
L1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL1NlcnZpY2VXb3JrZXJDb250YWluZXIuaApAQCAtNzMs
NiArNzMsMTAgQEAgcHJpdmF0ZToKIAogICAgIHZvaWQgam9iRmFpbGVkV2l0aEV4Y2VwdGlvbihT
ZXJ2aWNlV29ya2VySm9iJiwgY29uc3QgRXhjZXB0aW9uJikgZmluYWw7CiAgICAgdm9pZCBqb2JS
ZXNvbHZlZFdpdGhSZWdpc3RyYXRpb24oU2VydmljZVdvcmtlckpvYiYsIGNvbnN0IFNlcnZpY2VX
b3JrZXJSZWdpc3RyYXRpb25EYXRhJikgZmluYWw7CisgICAgdm9pZCBzdGFydFNjcmlwdEZldGNo
Rm9ySm9iKFNlcnZpY2VXb3JrZXJKb2ImKSBmaW5hbDsKKyAgICB2b2lkIGpvYkZpbmlzaGVkTG9h
ZGluZ1NjcmlwdChTZXJ2aWNlV29ya2VySm9iJiwgY29uc3QgU3RyaW5nJikgZmluYWw7CisgICAg
dm9pZCBqb2JGYWlsZWRMb2FkaW5nU2NyaXB0KFNlcnZpY2VXb3JrZXJKb2ImLCBjb25zdCBSZXNv
dXJjZUVycm9yJikgZmluYWw7CisKICAgICB2b2lkIGpvYkRpZEZpbmlzaChTZXJ2aWNlV29ya2Vy
Sm9iJik7CiAKICAgICB1aW50NjRfdCBjb25uZWN0aW9uSWRlbnRpZmllcigpIGZpbmFsOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL1NlcnZpY2VXb3JrZXJGZXRj
aFJlc3VsdC5oIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL1NlcnZpY2VXb3JrZXJG
ZXRjaFJlc3VsdC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi5lZjdl
NzJkYzMxMwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2Vydmlj
ZS9TZXJ2aWNlV29ya2VyRmV0Y2hSZXN1bHQuaApAQCAtMCwwICsxLDc1IEBACisvKgorICogQ29w
eXJpZ2h0IChDKSAyMDE3IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBS
ZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9y
IHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRo
ZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9u
cyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2Ug
dGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlv
biBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4K
KyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBD
T05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJS
QU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdB
UlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIK
KyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4g
T1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVD
VCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBE
QU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAq
IFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9G
SVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04g
QU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1Qg
TElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisg
KiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZF
TiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8K
KworI3ByYWdtYSBvbmNlCisKKyNpZiBFTkFCTEUoU0VSVklDRV9XT1JLRVIpCisKKyNpbmNsdWRl
ICJSZXNvdXJjZUVycm9yLmgiCisjaW5jbHVkZSAiU2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbktl
eS5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK3N0cnVjdCBTZXJ2aWNlV29ya2VyRmV0Y2hS
ZXN1bHQgeworICAgIHVpbnQ2NF90IGpvYklkZW50aWZpZXI7CisgICAgdWludDY0X3QgY29ubmVj
dGlvbklkZW50aWZpZXI7CisgICAgU2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbktleSByZWdpc3Ry
YXRpb25LZXk7CisgICAgU3RyaW5nIHNjcmlwdDsKKyAgICBSZXNvdXJjZUVycm9yIHNjcmlwdEVy
cm9yOworCisgICAgdGVtcGxhdGU8Y2xhc3MgRW5jb2Rlcj4gdm9pZCBlbmNvZGUoRW5jb2RlciYp
IGNvbnN0OworICAgIHRlbXBsYXRlPGNsYXNzIERlY29kZXI+IHN0YXRpYyBib29sIGRlY29kZShE
ZWNvZGVyJiwgU2VydmljZVdvcmtlckZldGNoUmVzdWx0Jik7Cit9OworCit0ZW1wbGF0ZTxjbGFz
cyBFbmNvZGVyPgordm9pZCBTZXJ2aWNlV29ya2VyRmV0Y2hSZXN1bHQ6OmVuY29kZShFbmNvZGVy
JiBlbmNvZGVyKSBjb25zdAoreworICAgIGVuY29kZXIgPDwgam9iSWRlbnRpZmllciA8PCBjb25u
ZWN0aW9uSWRlbnRpZmllciA8PCByZWdpc3RyYXRpb25LZXkgPDwgc2NyaXB0IDw8IHNjcmlwdEVy
cm9yOworfQorCit0ZW1wbGF0ZTxjbGFzcyBEZWNvZGVyPgorYm9vbCBTZXJ2aWNlV29ya2VyRmV0
Y2hSZXN1bHQ6OmRlY29kZShEZWNvZGVyJiBkZWNvZGVyLCBTZXJ2aWNlV29ya2VyRmV0Y2hSZXN1
bHQmIHJlc3VsdCkKK3sKKyAgICBpZiAoIWRlY29kZXIuZGVjb2RlKHJlc3VsdC5qb2JJZGVudGlm
aWVyKSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIGlmICghZGVjb2Rlci5kZWNvZGUocmVz
dWx0LmNvbm5lY3Rpb25JZGVudGlmaWVyKSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIAor
ICAgIGF1dG8gcmVnaXN0cmF0aW9uS2V5ID0gU2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbktleTo6
ZGVjb2RlKGRlY29kZXIpOworICAgIGlmICghcmVnaXN0cmF0aW9uS2V5KQorICAgICAgICByZXR1
cm4gZmFsc2U7CisgICAgc3RkOjpzd2FwKCpyZWdpc3RyYXRpb25LZXksIHJlc3VsdC5yZWdpc3Ry
YXRpb25LZXkpOworCisgICAgaWYgKCFkZWNvZGVyLmRlY29kZShyZXN1bHQuc2NyaXB0KSkKKyAg
ICAgICAgcmV0dXJuIGZhbHNlOworICAgIGlmICghZGVjb2Rlci5kZWNvZGUocmVzdWx0LnNjcmlw
dEVycm9yKSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgcmV0dXJuIHRydWU7Cit9CisK
K30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmIC8vIEVOQUJMRShTRVJWSUNFX1dPUktF
UikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9TZXJ2aWNlV29y
a2VySm9iLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9TZXJ2aWNlV29ya2Vy
Sm9iLmNwcAppbmRleCA0OWZiMDhlYjdkMy4uMjMxZTA0MTIxN2YgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9TZXJ2aWNlV29ya2VySm9iLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvU2VydmljZVdvcmtlckpvYi5jcHAKQEAgLTI5LDYg
KzI5LDggQEAKICNpZiBFTkFCTEUoU0VSVklDRV9XT1JLRVIpCiAKICNpbmNsdWRlICJKU0RPTVBy
b21pc2VEZWZlcnJlZC5oIgorI2luY2x1ZGUgIlJlc291cmNlRXJyb3IuaCIKKyNpbmNsdWRlICJS
ZXNvdXJjZVJlc3BvbnNlLmgiCiAjaW5jbHVkZSAiU2VydmljZVdvcmtlckpvYkRhdGEuaCIKICNp
bmNsdWRlICJTZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uLmgiCiAKQEAgLTY0LDYgKzY2LDQ2IEBA
IHZvaWQgU2VydmljZVdvcmtlckpvYjo6cmVzb2x2ZWRXaXRoUmVnaXN0cmF0aW9uKGNvbnN0IFNl
cnZpY2VXb3JrZXJSZWdpc3RyYXRpb25ECiAgICAgbV9jbGllbnQtPmpvYlJlc29sdmVkV2l0aFJl
Z2lzdHJhdGlvbigqdGhpcywgZGF0YSk7CiB9CiAKK3ZvaWQgU2VydmljZVdvcmtlckpvYjo6c3Rh
cnRTY3JpcHRGZXRjaCgpCit7CisgICAgQVNTRVJUKGN1cnJlbnRUaHJlYWQoKSA9PSBtX2NyZWF0
aW9uVGhyZWFkKTsKKyAgICBBU1NFUlQoIW1fY29tcGxldGVkKTsKKworICAgIG1fY2xpZW50LT5z
dGFydFNjcmlwdEZldGNoRm9ySm9iKCp0aGlzKTsKK30KKwordm9pZCBTZXJ2aWNlV29ya2VySm9i
OjpmZXRjaFNjcmlwdFdpdGhDb250ZXh0KFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmIGNvbnRleHQp
Cit7CisgICAgQVNTRVJUKGN1cnJlbnRUaHJlYWQoKSA9PSBtX2NyZWF0aW9uVGhyZWFkKTsKKyAg
ICBBU1NFUlQoIW1fY29tcGxldGVkKTsKKworICAgIC8vIEZJWE1FOiBXb3JrZXJTY3JpcHRMb2Fk
ZXIgaXMgdGhlIHdyb25nIGxvYWRlciBjbGFzcyB0byB1c2UgaGVyZSwgYnV0IHRoZXJlJ3Mgbm90
aGluZyBlbHNlIGJldHRlciByaWdodCBub3cuCisgICAgbV9zY3JpcHRMb2FkZXIgPSBXb3JrZXJT
Y3JpcHRMb2FkZXI6OmNyZWF0ZSgpOworICAgIG1fc2NyaXB0TG9hZGVyLT5sb2FkQXN5bmNocm9u
b3VzbHkoJmNvbnRleHQsIG1fam9iRGF0YS5zY3JpcHRVUkwsIEZldGNoT3B0aW9uczo6TW9kZTo6
U2FtZU9yaWdpbiwgQ29udGVudFNlY3VyaXR5UG9saWN5RW5mb3JjZW1lbnQ6OkRvTm90RW5mb3Jj
ZSwgInNlcnZpY2VXb3JrZXJTY3JpcHRMb2FkOiIsIHRoaXMpOworfQorCit2b2lkIFNlcnZpY2VX
b3JrZXJKb2I6OmRpZFJlY2VpdmVSZXNwb25zZSh1bnNpZ25lZCBsb25nLCBjb25zdCBSZXNvdXJj
ZVJlc3BvbnNlJiByZXNwb25zZSkKK3sKKyAgICBBU1NFUlQoY3VycmVudFRocmVhZCgpID09IG1f
Y3JlYXRpb25UaHJlYWQpOworICAgIEFTU0VSVCghbV9jb21wbGV0ZWQpOworICAgIEFTU0VSVCht
X3NjcmlwdExvYWRlcik7CisKKyAgICBtX2xhc3RSZXNwb25zZSA9IHJlc3BvbnNlOworfQorCit2
b2lkIFNlcnZpY2VXb3JrZXJKb2I6Om5vdGlmeUZpbmlzaGVkKCkKK3sKKyAgICBBU1NFUlQoY3Vy
cmVudFRocmVhZCgpID09IG1fY3JlYXRpb25UaHJlYWQpOworICAgIEFTU0VSVChtX3NjcmlwdExv
YWRlcik7CisgICAgCisgICAgaWYgKCFtX3NjcmlwdExvYWRlci0+ZmFpbGVkKCkpCisgICAgICAg
IG1fY2xpZW50LT5qb2JGaW5pc2hlZExvYWRpbmdTY3JpcHQoKnRoaXMsIG1fc2NyaXB0TG9hZGVy
LT5zY3JpcHQoKSk7CisgICAgZWxzZQorICAgICAgICBtX2NsaWVudC0+am9iRmFpbGVkTG9hZGlu
Z1NjcmlwdCgqdGhpcywgbV9zY3JpcHRMb2FkZXItPmVycm9yKCkpOworCisgICAgbV9zY3JpcHRM
b2FkZXIgPSBudWxscHRyOworfQorCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAKICNlbmRpZiAv
LyBFTkFCTEUoU0VSVklDRV9XT1JLRVIpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS93b3Jr
ZXJzL3NlcnZpY2UvU2VydmljZVdvcmtlckpvYi5oIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9z
ZXJ2aWNlL1NlcnZpY2VXb3JrZXJKb2IuaAppbmRleCBkOTdhYzFhNDMzNS4uNzdkMjE4MzVlODcg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9TZXJ2aWNlV29ya2Vy
Sm9iLmgKKysrIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL1NlcnZpY2VXb3JrZXJK
b2IuaApAQCAtMjcsOCArMjcsMTEgQEAKIAogI2lmIEVOQUJMRShTRVJWSUNFX1dPUktFUikKIAor
I2luY2x1ZGUgIlJlc291cmNlUmVzcG9uc2UuaCIKICNpbmNsdWRlICJTZXJ2aWNlV29ya2VySm9i
Q2xpZW50LmgiCiAjaW5jbHVkZSAiU2VydmljZVdvcmtlckpvYkRhdGEuaCIKKyNpbmNsdWRlICJX
b3JrZXJTY3JpcHRMb2FkZXIuaCIKKyNpbmNsdWRlICJXb3JrZXJTY3JpcHRMb2FkZXJDbGllbnQu
aCIKICNpbmNsdWRlIDx3dGYvUmVmUHRyLmg+CiAjaW5jbHVkZSA8d3RmL1J1bkxvb3AuaD4KICNp
bmNsdWRlIDx3dGYvVGhyZWFkU2FmZVJlZkNvdW50ZWQuaD4KQEAgLTM4LDEwICs0MSwxMSBAQCBu
YW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNzIERlZmVycmVkUHJvbWlzZTsKIGNsYXNzIEV4Y2Vw
dGlvbjsKK2NsYXNzIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQ7CiBlbnVtIGNsYXNzIFNlcnZpY2VX
b3JrZXJKb2JUeXBlOwogc3RydWN0IFNlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb25EYXRhOwogCi1j
bGFzcyBTZXJ2aWNlV29ya2VySm9iIDogcHVibGljIFRocmVhZFNhZmVSZWZDb3VudGVkPFNlcnZp
Y2VXb3JrZXJKb2I+IHsKK2NsYXNzIFNlcnZpY2VXb3JrZXJKb2IgOiBwdWJsaWMgVGhyZWFkU2Fm
ZVJlZkNvdW50ZWQ8U2VydmljZVdvcmtlckpvYj4sIHB1YmxpYyBXb3JrZXJTY3JpcHRMb2FkZXJD
bGllbnQgewogcHVibGljOgogICAgIHN0YXRpYyBSZWY8U2VydmljZVdvcmtlckpvYj4gY3JlYXRl
KFNlcnZpY2VXb3JrZXJKb2JDbGllbnQmIGNsaWVudCwgUmVmPERlZmVycmVkUHJvbWlzZT4mJiBw
cm9taXNlLCBTZXJ2aWNlV29ya2VySm9iRGF0YSYmIGpvYkRhdGEpCiAgICAgewpAQCAtNTIsMTMg
KzU2LDIwIEBAIHB1YmxpYzoKIAogICAgIHZvaWQgZmFpbGVkV2l0aEV4Y2VwdGlvbihjb25zdCBF
eGNlcHRpb24mKTsKICAgICB2b2lkIHJlc29sdmVkV2l0aFJlZ2lzdHJhdGlvbihjb25zdCBTZXJ2
aWNlV29ya2VyUmVnaXN0cmF0aW9uRGF0YSYpOworICAgIHZvaWQgc3RhcnRTY3JpcHRGZXRjaCgp
OwogCiAgICAgU2VydmljZVdvcmtlckpvYkRhdGEgZGF0YSgpIGNvbnN0IHsgcmV0dXJuIG1fam9i
RGF0YTsgfQogICAgIERlZmVycmVkUHJvbWlzZSYgcHJvbWlzZSgpIHsgcmV0dXJuIG1fcHJvbWlz
ZS5nZXQoKTsgfQogCisgICAgdm9pZCBmZXRjaFNjcmlwdFdpdGhDb250ZXh0KFNjcmlwdEV4ZWN1
dGlvbkNvbnRleHQmKTsKKwogcHJpdmF0ZToKICAgICBTZXJ2aWNlV29ya2VySm9iKFNlcnZpY2VX
b3JrZXJKb2JDbGllbnQmLCBSZWY8RGVmZXJyZWRQcm9taXNlPiYmLCBTZXJ2aWNlV29ya2VySm9i
RGF0YSYmKTsKIAorICAgIC8vIFdvcmtlclNjcmlwdExvYWRlckNsaWVudAorICAgIHZvaWQgZGlk
UmVjZWl2ZVJlc3BvbnNlKHVuc2lnbmVkIGxvbmcgaWRlbnRpZmllciwgY29uc3QgUmVzb3VyY2VS
ZXNwb25zZSYpIGZpbmFsOworICAgIHZvaWQgbm90aWZ5RmluaXNoZWQoKSBmaW5hbDsKKwogICAg
IFJlZjxTZXJ2aWNlV29ya2VySm9iQ2xpZW50PiBtX2NsaWVudDsKICAgICBTZXJ2aWNlV29ya2Vy
Sm9iRGF0YSBtX2pvYkRhdGE7CiAgICAgUmVmPERlZmVycmVkUHJvbWlzZT4gbV9wcm9taXNlOwpA
QCAtNjYsNiArNzcsOCBAQCBwcml2YXRlOgogICAgIGJvb2wgbV9jb21wbGV0ZWQgeyBmYWxzZSB9
OwogCiAgICAgUmVmPFJ1bkxvb3A+IG1fcnVuTG9vcCB7IFJ1bkxvb3A6OmN1cnJlbnQoKSB9Owor
ICAgIFJlZlB0cjxXb3JrZXJTY3JpcHRMb2FkZXI+IG1fc2NyaXB0TG9hZGVyOworICAgIFJlc291
cmNlUmVzcG9uc2UgbV9sYXN0UmVzcG9uc2U7CiAKICNpZiAhQVNTRVJUX0RJU0FCTEVECiAgICAg
VGhyZWFkSWRlbnRpZmllciBtX2NyZWF0aW9uVGhyZWFkIHsgY3VycmVudFRocmVhZCgpIH07CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvU2VydmljZVdvcmtlckpv
YkNsaWVudC5oIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL1NlcnZpY2VXb3JrZXJK
b2JDbGllbnQuaAppbmRleCA2MjgwZjBjYWFkNy4uZjljZjIyNmE4ZmUgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9TZXJ2aWNlV29ya2VySm9iQ2xpZW50LmgKKysr
IGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL1NlcnZpY2VXb3JrZXJKb2JDbGllbnQu
aApAQCAtMzAsNyArMzAsOSBAQAogbmFtZXNwYWNlIFdlYkNvcmUgewogCiBjbGFzcyBFeGNlcHRp
b247CitjbGFzcyBSZXNvdXJjZUVycm9yOwogY2xhc3MgU2VydmljZVdvcmtlckpvYjsKK2NsYXNz
IFNoYXJlZEJ1ZmZlcjsKIHN0cnVjdCBTZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uRGF0YTsKIAog
Y2xhc3MgU2VydmljZVdvcmtlckpvYkNsaWVudCB7CkBAIC0zOSw2ICs0MSw5IEBAIHB1YmxpYzoK
IAogICAgIHZpcnR1YWwgdm9pZCBqb2JGYWlsZWRXaXRoRXhjZXB0aW9uKFNlcnZpY2VXb3JrZXJK
b2ImLCBjb25zdCBFeGNlcHRpb24mKSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIGpvYlJlc29sdmVk
V2l0aFJlZ2lzdHJhdGlvbihTZXJ2aWNlV29ya2VySm9iJiwgY29uc3QgU2VydmljZVdvcmtlclJl
Z2lzdHJhdGlvbkRhdGEmKSA9IDA7CisgICAgdmlydHVhbCB2b2lkIHN0YXJ0U2NyaXB0RmV0Y2hG
b3JKb2IoU2VydmljZVdvcmtlckpvYiYpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgam9iRmluaXNo
ZWRMb2FkaW5nU2NyaXB0KFNlcnZpY2VXb3JrZXJKb2ImLCBjb25zdCBTdHJpbmcmKSA9IDA7Cisg
ICAgdmlydHVhbCB2b2lkIGpvYkZhaWxlZExvYWRpbmdTY3JpcHQoU2VydmljZVdvcmtlckpvYiYs
IGNvbnN0IFJlc291cmNlRXJyb3ImKSA9IDA7CiAKICAgICB2aXJ0dWFsIHVpbnQ2NF90IGNvbm5l
Y3Rpb25JZGVudGlmaWVyKCkgPSAwOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS93b3Jr
ZXJzL3NlcnZpY2Uvc2VydmVyL1NXQ2xpZW50Q29ubmVjdGlvbi5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS93b3JrZXJzL3NlcnZpY2Uvc2VydmVyL1NXQ2xpZW50Q29ubmVjdGlvbi5jcHAKaW5kZXggNDcw
MmJiYjcyODEuLjBiYzQ5MDJhYWU5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJz
L3NlcnZpY2Uvc2VydmVyL1NXQ2xpZW50Q29ubmVjdGlvbi5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvd29ya2Vycy9zZXJ2aWNlL3NlcnZlci9TV0NsaWVudENvbm5lY3Rpb24uY3BwCkBAIC0yOSw2
ICsyOSw3IEBACiAjaWYgRU5BQkxFKFNFUlZJQ0VfV09SS0VSKQogCiAjaW5jbHVkZSAiRXhjZXB0
aW9uRGF0YS5oIgorI2luY2x1ZGUgIlNlcnZpY2VXb3JrZXJGZXRjaFJlc3VsdC5oIgogI2luY2x1
ZGUgIlNlcnZpY2VXb3JrZXJKb2JEYXRhLmgiCiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKQEAgLTQ5
LDYgKzUwLDIwIEBAIHZvaWQgU1dDbGllbnRDb25uZWN0aW9uOjpzY2hlZHVsZUpvYihTZXJ2aWNl
V29ya2VySm9iJiBqb2IpCiAgICAgc2NoZWR1bGVKb2JJblNlcnZlcihqb2IuZGF0YSgpKTsKIH0K
IAordm9pZCBTV0NsaWVudENvbm5lY3Rpb246OmZpbmlzaGVkRmV0Y2hpbmdTY3JpcHQoU2Vydmlj
ZVdvcmtlckpvYiYgam9iLCBjb25zdCBTdHJpbmcmIHNjcmlwdCkKK3sKKyAgICBBU1NFUlQobV9z
Y2hlZHVsZWRKb2JzLmdldChqb2IuZGF0YSgpLmlkZW50aWZpZXIoKSkgPT0gJmpvYik7CisKKyAg
ICBmaW5pc2hGZXRjaGluZ1NjcmlwdEluU2VydmVyKHsgam9iLmRhdGEoKS5pZGVudGlmaWVyKCks
IGpvYi5kYXRhKCkuY29ubmVjdGlvbklkZW50aWZpZXIoKSwgam9iLmRhdGEoKS5yZWdpc3RyYXRp
b25LZXkoKSwgc2NyaXB0LCB7IH0gfSk7Cit9CisKK3ZvaWQgU1dDbGllbnRDb25uZWN0aW9uOjpm
YWlsZWRGZXRjaGluZ1NjcmlwdChTZXJ2aWNlV29ya2VySm9iJiBqb2IsIGNvbnN0IFJlc291cmNl
RXJyb3ImIGVycm9yKQoreworICAgIEFTU0VSVChtX3NjaGVkdWxlZEpvYnMuZ2V0KGpvYi5kYXRh
KCkuaWRlbnRpZmllcigpKSA9PSAmam9iKTsKKworICAgIGZpbmlzaEZldGNoaW5nU2NyaXB0SW5T
ZXJ2ZXIoeyBqb2IuZGF0YSgpLmlkZW50aWZpZXIoKSwgam9iLmRhdGEoKS5jb25uZWN0aW9uSWRl
bnRpZmllcigpLCBqb2IuZGF0YSgpLnJlZ2lzdHJhdGlvbktleSgpLCB7IH0sIGVycm9yIH0pOwor
fQorCiB2b2lkIFNXQ2xpZW50Q29ubmVjdGlvbjo6am9iUmVqZWN0ZWRJblNlcnZlcih1aW50NjRf
dCBqb2JJZGVudGlmaWVyLCBjb25zdCBFeGNlcHRpb25EYXRhJiBleGNlcHRpb25EYXRhKQogewog
ICAgIGF1dG8gam9iID0gbV9zY2hlZHVsZWRKb2JzLnRha2Uoam9iSWRlbnRpZmllcik7CkBAIC03
MSw2ICs4NiwyMiBAQCB2b2lkIFNXQ2xpZW50Q29ubmVjdGlvbjo6am9iUmVzb2x2ZWRJblNlcnZl
cih1aW50NjRfdCBqb2JJZGVudGlmaWVyLCBjb25zdCBTZXJ2aQogICAgIGpvYi0+cmVzb2x2ZWRX
aXRoUmVnaXN0cmF0aW9uKHJlZ2lzdHJhdGlvbkRhdGEpOwogfQogCit2b2lkIFNXQ2xpZW50Q29u
bmVjdGlvbjo6c3RhcnRTY3JpcHRGZXRjaEZvclNlcnZlcih1aW50NjRfdCBqb2JJZGVudGlmaWVy
KQoreworICAgIGF1dG8gam9iID0gbV9zY2hlZHVsZWRKb2JzLmdldChqb2JJZGVudGlmaWVyKTsK
KyAgICBpZiAoIWpvYikgeworICAgICAgICBMT0dfRVJST1IoIkpvYiAlIiBQUkl1NjQgIiBpbnN0
cnVjdGVkIHRvIHN0YXJ0IGZldGNoIGZyb20gc2VydmVyLCBidXQgam9iIHdhcyBub3QgZm91bmQi
LCBqb2JJZGVudGlmaWVyKTsKKworICAgICAgICAvLyBGSVhNRTogU2hvdWxkIG1lc3NhZ2UgYmFj
ayB0byB0aGUgc2VydmVyIGhlcmUgdG8gc2lnbmFsIGZhaWx1cmUgdG8gZmV0Y2gsCisgICAgICAg
IC8vIGJ1dCB3ZSBjdXJyZW50bHkgbmVlZCB0aGUgcmVnaXN0cmF0aW9uIGtleSB0byBkbyBzbywg
YW5kIGRvbid0IGhhdmUgaXQgaGVyZS4KKyAgICAgICAgLy8gSW4gdGhlIGZ1dHVyZSB3ZSdsbCBy
ZWZhY3RvciB0byBoYXZlIGEgZ2xvYmFsLCBjcm9zcy1wcm9jZXNzIGpvYiBpZGVudGlmaWVyIHRo
YXQgY2FuIGJlIHVzZWQgdG8gb3ZlcmNvbWUgdGhpcy4KKworICAgICAgICByZXR1cm47CisgICAg
fQorCisgICAgam9iLT5zdGFydFNjcmlwdEZldGNoKCk7Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdl
YkNvcmUKIAogI2VuZGlmIC8vIEVOQUJMRShTRVJWSUNFX1dPUktFUikKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9zZXJ2ZXIvU1dDbGllbnRDb25uZWN0aW9uLmgg
Yi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2Uvc2VydmVyL1NXQ2xpZW50Q29ubmVjdGlv
bi5oCmluZGV4IGI5MWUwNDI4ODJkLi4wYmI4NWRkMTU0NCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvd29ya2Vycy9zZXJ2aWNlL3NlcnZlci9TV0NsaWVudENvbm5lY3Rpb24uaAorKysgYi9T
b3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2Uvc2VydmVyL1NXQ2xpZW50Q29ubmVjdGlvbi5o
CkBAIC0zMyw3ICszMywxMCBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKK2NsYXNzIFJlc291
cmNlRXJyb3I7CitjbGFzcyBTaGFyZWRCdWZmZXI7CiBzdHJ1Y3QgRXhjZXB0aW9uRGF0YTsKK3N0
cnVjdCBTZXJ2aWNlV29ya2VyRmV0Y2hSZXN1bHQ7CiBzdHJ1Y3QgU2VydmljZVdvcmtlclJlZ2lz
dHJhdGlvbkRhdGE7CiAKIGNsYXNzIFNXQ2xpZW50Q29ubmVjdGlvbiA6IHB1YmxpYyBUaHJlYWRT
YWZlUmVmQ291bnRlZDxTV0NsaWVudENvbm5lY3Rpb24+IHsKQEAgLTQyLDE1ICs0NSwxOSBAQCBw
dWJsaWM6CiAgICAgV0VCQ09SRV9FWFBPUlQgdmlydHVhbCB+U1dDbGllbnRDb25uZWN0aW9uKCk7
CiAKICAgICB2b2lkIHNjaGVkdWxlSm9iKFNlcnZpY2VXb3JrZXJKb2ImKTsKKyAgICB2b2lkIGZp
bmlzaGVkRmV0Y2hpbmdTY3JpcHQoU2VydmljZVdvcmtlckpvYiYsIGNvbnN0IFN0cmluZyYpOwor
ICAgIHZvaWQgZmFpbGVkRmV0Y2hpbmdTY3JpcHQoU2VydmljZVdvcmtlckpvYiYsIGNvbnN0IFJl
c291cmNlRXJyb3ImKTsKIAogICAgIHZpcnR1YWwgdWludDY0X3QgaWRlbnRpZmllcigpIGNvbnN0
ID0gMDsKIAogcHJvdGVjdGVkOgogICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgam9iUmVqZWN0ZWRJ
blNlcnZlcih1aW50NjRfdCBqb2JJZGVudGlmaWVyLCBjb25zdCBFeGNlcHRpb25EYXRhJik7CiAg
ICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBqb2JSZXNvbHZlZEluU2VydmVyKHVpbnQ2NF90IGpvYklk
ZW50aWZpZXIsIGNvbnN0IFNlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb25EYXRhJik7CisgICAgV0VC
Q09SRV9FWFBPUlQgdm9pZCBzdGFydFNjcmlwdEZldGNoRm9yU2VydmVyKHVpbnQ2NF90IGpvYklk
ZW50aWZpZXIpOwogCiBwcml2YXRlOgogICAgIHZpcnR1YWwgdm9pZCBzY2hlZHVsZUpvYkluU2Vy
dmVyKGNvbnN0IFNlcnZpY2VXb3JrZXJKb2JEYXRhJikgPSAwOworICAgIHZpcnR1YWwgdm9pZCBm
aW5pc2hGZXRjaGluZ1NjcmlwdEluU2VydmVyKGNvbnN0IFNlcnZpY2VXb3JrZXJGZXRjaFJlc3Vs
dCYpID0gMDsKIAogICAgIEhhc2hNYXA8dWludDY0X3QsIFJlZlB0cjxTZXJ2aWNlV29ya2VySm9i
Pj4gbV9zY2hlZHVsZWRKb2JzOwogfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3dvcmtl
cnMvc2VydmljZS9zZXJ2ZXIvU1dTZXJ2ZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9z
ZXJ2aWNlL3NlcnZlci9TV1NlcnZlci5jcHAKaW5kZXggNDAxOTM0MGI4YmQuLjZmODFhYjI2OTEx
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2Uvc2VydmVyL1NXU2Vy
dmVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2Uvc2VydmVyL1NXU2Vy
dmVyLmNwcApAQCAtMzIsNiArMzIsNyBAQAogI2luY2x1ZGUgIkV4Y2VwdGlvbkRhdGEuaCIKICNp
bmNsdWRlICJMb2dnaW5nLmgiCiAjaW5jbHVkZSAiU1dTZXJ2ZXJSZWdpc3RyYXRpb24uaCIKKyNp
bmNsdWRlICJTZXJ2aWNlV29ya2VyRmV0Y2hSZXN1bHQuaCIKICNpbmNsdWRlICJTZXJ2aWNlV29y
a2VySm9iRGF0YS5oIgogI2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgogCkBAIC03Miw2
ICs3MywxMSBAQCB2b2lkIFNXU2VydmVyOjpDb25uZWN0aW9uOjpzY2hlZHVsZUpvYkluU2VydmVy
KGNvbnN0IFNlcnZpY2VXb3JrZXJKb2JEYXRhJiBqb2JEYQogICAgIG1fc2VydmVyLnNjaGVkdWxl
Sm9iKGpvYkRhdGEpOwogfQogCit2b2lkIFNXU2VydmVyOjpDb25uZWN0aW9uOjpmaW5pc2hGZXRj
aGluZ1NjcmlwdEluU2VydmVyKGNvbnN0IFNlcnZpY2VXb3JrZXJGZXRjaFJlc3VsdCYgcmVzdWx0
KQoreworICAgIG1fc2VydmVyLnNjcmlwdEZldGNoRmluaXNoZWQocmVzdWx0KTsKK30KKwogU1dT
ZXJ2ZXI6OlNXU2VydmVyKCkKIHsKICAgICBtX3Rhc2tUaHJlYWQgPSBUaHJlYWQ6OmNyZWF0ZShB
U0NJSUxpdGVyYWwoIlNlcnZpY2VXb3JrZXIgVGFzayBUaHJlYWQiKSwgW3RoaXNdIHsKQEAgLTEx
Miw2ICsxMTgsMjkgQEAgdm9pZCBTV1NlcnZlcjo6cmVzb2x2ZUpvYihjb25zdCBTZXJ2aWNlV29y
a2VySm9iRGF0YSYgam9iRGF0YSwgY29uc3QgU2VydmljZVdvcmsKICAgICBjb25uZWN0aW9uLT5y
ZXNvbHZlSm9iSW5DbGllbnQoam9iRGF0YS5pZGVudGlmaWVyKCksIHJlZ2lzdHJhdGlvbkRhdGEp
OwogfQogCit2b2lkIFNXU2VydmVyOjpzdGFydFNjcmlwdEZldGNoKGNvbnN0IFNlcnZpY2VXb3Jr
ZXJKb2JEYXRhJiBqb2JEYXRhKQoreworICAgIExPRyhTZXJ2aWNlV29ya2VyLCAiU2VydmVyIGlz
c3Vpbmcgc3RhcnRTY3JpcHRGZXRjaCBmb3IgY3VycmVudCBqb2IgJSIgUFJJdTY0ICItJSIgUFJJ
dTY0ICIgaW4gY2xpZW50Iiwgam9iRGF0YS5jb25uZWN0aW9uSWRlbnRpZmllcigpLCBqb2JEYXRh
LmlkZW50aWZpZXIoKSk7CisgICAgYXV0byogY29ubmVjdGlvbiA9IG1fY29ubmVjdGlvbnMuZ2V0
KGpvYkRhdGEuY29ubmVjdGlvbklkZW50aWZpZXIoKSk7CisgICAgaWYgKCFjb25uZWN0aW9uKQor
ICAgICAgICByZXR1cm47CisKKyAgICBjb25uZWN0aW9uLT5zdGFydFNjcmlwdEZldGNoSW5DbGll
bnQoam9iRGF0YS5pZGVudGlmaWVyKCkpOworfQorCit2b2lkIFNXU2VydmVyOjpzY3JpcHRGZXRj
aEZpbmlzaGVkKGNvbnN0IFNlcnZpY2VXb3JrZXJGZXRjaFJlc3VsdCYgcmVzdWx0KQoreworICAg
IExPRyhTZXJ2aWNlV29ya2VyLCAiU2VydmVyIGhhbmRsaW5nIHNjcmlwdEZldGNoRmluaXNoZWQg
Zm9yIGN1cnJlbnQgam9iICUiIFBSSXU2NCAiLSUiIFBSSXU2NCAiIGluIGNsaWVudCIsIHJlc3Vs
dC5jb25uZWN0aW9uSWRlbnRpZmllciwgcmVzdWx0LmpvYklkZW50aWZpZXIpOworCisgICAgQVNT
RVJUKG1fY29ubmVjdGlvbnMuY29udGFpbnMocmVzdWx0LmNvbm5lY3Rpb25JZGVudGlmaWVyKSk7
CisKKyAgICBhdXRvIHJlZ2lzdHJhdGlvbiA9IG1fcmVnaXN0cmF0aW9ucy5nZXQocmVzdWx0LnJl
Z2lzdHJhdGlvbktleSk7CisgICAgaWYgKCFyZWdpc3RyYXRpb24pCisgICAgICAgIHJldHVybjsK
KworICAgIHJlZ2lzdHJhdGlvbi0+c2NyaXB0RmV0Y2hGaW5pc2hlZChyZXN1bHQpOworfQorCiB2
b2lkIFNXU2VydmVyOjp0YXNrVGhyZWFkRW50cnlQb2ludCgpCiB7CiAgICAgQVNTRVJUKCFpc01h
aW5UaHJlYWQoKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2Uv
c2VydmVyL1NXU2VydmVyLmggYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2Uvc2VydmVy
L1NXU2VydmVyLmgKaW5kZXggOWJkNDBmNzQ2NjYuLmExZmM1ZDMzOTg5IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2Uvc2VydmVyL1NXU2VydmVyLmgKKysrIGIvU291
cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL3NlcnZlci9TV1NlcnZlci5oCkBAIC00Myw2ICs0
Myw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY2xhc3MgU1dTZXJ2ZXJSZWdpc3RyYXRpb247
CiBzdHJ1Y3QgRXhjZXB0aW9uRGF0YTsKK3N0cnVjdCBTZXJ2aWNlV29ya2VyRmV0Y2hSZXN1bHQ7
CiBzdHJ1Y3QgU2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbkRhdGE7CiAKIGNsYXNzIFNXU2VydmVy
IHsKQEAgLTU3LDEwICs1OCwxMiBAQCBwdWJsaWM6CiAgICAgICAgIFNXU2VydmVyJiBzZXJ2ZXIo
KSB7IHJldHVybiBtX3NlcnZlcjsgfQogCiAgICAgICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgc2No
ZWR1bGVKb2JJblNlcnZlcihjb25zdCBTZXJ2aWNlV29ya2VySm9iRGF0YSYpOworICAgICAgICBX
RUJDT1JFX0VYUE9SVCB2b2lkIGZpbmlzaEZldGNoaW5nU2NyaXB0SW5TZXJ2ZXIoY29uc3QgU2Vy
dmljZVdvcmtlckZldGNoUmVzdWx0Jik7CiAKICAgICBwcml2YXRlOgogICAgICAgICB2aXJ0dWFs
IHZvaWQgcmVqZWN0Sm9iSW5DbGllbnQodWludDY0X3Qgam9iSWRlbnRpZmllciwgY29uc3QgRXhj
ZXB0aW9uRGF0YSYpID0gMDsKICAgICAgICAgdmlydHVhbCB2b2lkIHJlc29sdmVKb2JJbkNsaWVu
dCh1aW50NjRfdCBqb2JJZGVudGlmaWVyLCBjb25zdCBTZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9u
RGF0YSYpID0gMDsKKyAgICAgICAgdmlydHVhbCB2b2lkIHN0YXJ0U2NyaXB0RmV0Y2hJbkNsaWVu
dCh1aW50NjRfdCBqb2JJZGVudGlmaWVyKSA9IDA7CiAKICAgICAgICAgU1dTZXJ2ZXImIG1fc2Vy
dmVyOwogICAgIH07CkBAIC03MSw2ICs3NCw4IEBAIHB1YmxpYzoKICAgICB2b2lkIHNjaGVkdWxl
Sm9iKGNvbnN0IFNlcnZpY2VXb3JrZXJKb2JEYXRhJik7CiAgICAgdm9pZCByZWplY3RKb2IoY29u
c3QgU2VydmljZVdvcmtlckpvYkRhdGEmLCBjb25zdCBFeGNlcHRpb25EYXRhJik7CiAgICAgdm9p
ZCByZXNvbHZlSm9iKGNvbnN0IFNlcnZpY2VXb3JrZXJKb2JEYXRhJiwgY29uc3QgU2VydmljZVdv
cmtlclJlZ2lzdHJhdGlvbkRhdGEmKTsKKyAgICB2b2lkIHN0YXJ0U2NyaXB0RmV0Y2goY29uc3Qg
U2VydmljZVdvcmtlckpvYkRhdGEmKTsKKwogICAgIHZvaWQgcG9zdFRhc2soQ3Jvc3NUaHJlYWRU
YXNrJiYpOwogICAgIHZvaWQgcG9zdFRhc2tSZXBseShDcm9zc1RocmVhZFRhc2smJik7CiAKQEAg
LTgxLDYgKzg2LDggQEAgcHJpdmF0ZToKICAgICB2b2lkIHRhc2tUaHJlYWRFbnRyeVBvaW50KCk7
CiAgICAgdm9pZCBoYW5kbGVUYXNrUmVwbGllc09uTWFpblRocmVhZCgpOwogCisgICAgdm9pZCBz
Y3JpcHRGZXRjaEZpbmlzaGVkKGNvbnN0IFNlcnZpY2VXb3JrZXJGZXRjaFJlc3VsdCYpOworCiAg
ICAgSGFzaE1hcDx1aW50NjRfdCwgQ29ubmVjdGlvbio+IG1fY29ubmVjdGlvbnM7CiAgICAgSGFz
aE1hcDxTZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uS2V5LCBzdGQ6OnVuaXF1ZV9wdHI8U1dTZXJ2
ZXJSZWdpc3RyYXRpb24+PiBtX3JlZ2lzdHJhdGlvbnM7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3dvcmtlcnMvc2VydmljZS9zZXJ2ZXIvU1dTZXJ2ZXJSZWdpc3RyYXRpb24uY3BwIGIv
U291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL3NlcnZlci9TV1NlcnZlclJlZ2lzdHJhdGlv
bi5jcHAKaW5kZXggMTA1MmI5YmFkY2QuLmQ1MTFkZGRkZmQ1IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS93b3JrZXJzL3NlcnZpY2Uvc2VydmVyL1NXU2VydmVyUmVnaXN0cmF0aW9uLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2Uvc2VydmVyL1NXU2VydmVyUmVnaXN0
cmF0aW9uLmNwcApAQCAtMzIsNiArMzIsNyBAQAogI2luY2x1ZGUgIlNXU2VydmVyLmgiCiAjaW5j
bHVkZSAiU1dTZXJ2ZXJXb3JrZXIuaCIKICNpbmNsdWRlICJTZWN1cml0eU9yaWdpbi5oIgorI2lu
Y2x1ZGUgIlNlcnZpY2VXb3JrZXJGZXRjaFJlc3VsdC5oIgogI2luY2x1ZGUgIlNlcnZpY2VXb3Jr
ZXJSZWdpc3RyYXRpb25EYXRhLmgiCiAjaW5jbHVkZSAiV29ya2VyVHlwZS5oIgogCkBAIC02Myw2
ICs2NCwyMiBAQCB2b2lkIFNXU2VydmVyUmVnaXN0cmF0aW9uOjplbnF1ZXVlSm9iKGNvbnN0IFNl
cnZpY2VXb3JrZXJKb2JEYXRhJiBqb2JEYXRhKQogICAgICAgICBtX2pvYlRpbWVyLnN0YXJ0T25l
U2hvdCgwX3MpOwogfQogCit2b2lkIFNXU2VydmVyUmVnaXN0cmF0aW9uOjpzY3JpcHRGZXRjaEZp
bmlzaGVkKGNvbnN0IFNlcnZpY2VXb3JrZXJGZXRjaFJlc3VsdCYgcmVzdWx0KQoreworICAgIEFT
U0VSVChtX2N1cnJlbnRKb2IgJiYgbV9jdXJyZW50Sm9iLT5pZGVudGlmaWVyKCkgPT0gcmVzdWx0
LmpvYklkZW50aWZpZXIpOworCisgICAgLy8gRklYTUU6IFdlIGZldGNoZWQgdGhlIHNjcmlwdCBj
b250ZW50cyBidXQgZG9uJ3QgZG8gYW55dGhpbmcgd2l0aCB0aGVtIHlldC4KKyAgICAvLyBUaGVz
ZSBlcnJvcnMgYXJlIGZvciB0ZXN0aW5nIHRoZSBjdXJyZW50IHN0YXRlIG9mIHRoZSBmZWF0dXJl
LgorCisgICAgU3RyaW5nIG1lc3NhZ2U7CisgICAgaWYgKHJlc3VsdC5zY3JpcHRFcnJvci5pc051
bGwoKSkKKyAgICAgICAgbWVzc2FnZSA9IG1ha2VTdHJpbmcoIlNjcmlwdCBVUkwgIiwgbV9jdXJy
ZW50Sm9iLT5zY3JpcHRVUkwuc3RyaW5nKCksICIgZmV0Y2hlZCB3aXRoICIsIFN0cmluZzo6bnVt
YmVyKHJlc3VsdC5zY3JpcHQubGVuZ3RoKCkpLCAiIGNoYXJhY3RlcnMsIGJ1dCB3ZSdyZSBub3Qg
dXNpbmcgdGhlIHJlc3VsdCB5ZXQiKTsKKyAgICBlbHNlCisgICAgICAgIG1lc3NhZ2UgPSBtYWtl
U3RyaW5nKCJTY3JpcHQgVVJMICIsIG1fY3VycmVudEpvYi0+c2NyaXB0VVJMLnN0cmluZygpLCAi
IGZldGNoIHJlc3VsdGVkIGluIGVycm9yOiAiLCByZXN1bHQuc2NyaXB0RXJyb3IubG9jYWxpemVk
RGVzY3JpcHRpb24oKSk7CisKKyAgICByZWplY3RDdXJyZW50Sm9iKEV4Y2VwdGlvbkRhdGEgeyBV
bmtub3duRXJyb3IsIG1lc3NhZ2UgfSk7Cit9CisKIHZvaWQgU1dTZXJ2ZXJSZWdpc3RyYXRpb246
OnN0YXJ0TmV4dEpvYigpCiB7CiAgICAgQVNTRVJUKGlzTWFpblRocmVhZCgpKTsKQEAgLTE0OSw5
ICsxNjYsNyBAQCB2b2lkIFNXU2VydmVyUmVnaXN0cmF0aW9uOjpydW5VcGRhdGVKb2IoY29uc3Qg
U2VydmljZVdvcmtlckpvYkRhdGEmIGpvYikKICAgICBpZiAobmV3ZXN0V29ya2VyICYmICFlcXVh
bElnbm9yaW5nRnJhZ21lbnRJZGVudGlmaWVyKGpvYi5zY3JpcHRVUkwsIG5ld2VzdFdvcmtlci0+
c2NyaXB0VVJMKCkpKQogICAgICAgICByZXR1cm4gcmVqZWN0V2l0aEV4Y2VwdGlvbk9uTWFpblRo
cmVhZChFeGNlcHRpb25EYXRhIHsgVHlwZUVycm9yLCBBU0NJSUxpdGVyYWwoIkNhbm5vdCB1cGRh
dGUgYSBzZXJ2aWNlIHdvcmtlciB3aXRoIGEgcmVxdWVzdGVkIHNjcmlwdCBVUkwgd2hvc2UgbmV3
ZXN0IHdvcmtlciBoYXMgYSBkaWZmZXJlbnQgc2NyaXB0IFVSTCIpIH0pOwogCi0gICAgLy8gRklY
TUU6IEF0IHRoaXMgcG9pbnQgd2UgYXJlIHJlYWR5IHRvIGFjdHVhbGx5IGZldGNoIHRoZSBzY3Jp
cHQgZm9yIHRoZSB3b3JrZXIgaW4gdGhlIHJlZ2lzdGVyaW5nIGNvbnRleHQuCi0gICAgLy8gRm9y
IG5vdyB3ZSdyZSBzdGlsbCBoYXJkIGNvZGluZyB0aGUgc2FtZSByZWplY3Rpb24gd2UgaGF2ZSBz
byBmYXIuCi0gICAgcmVqZWN0V2l0aEV4Y2VwdGlvbk9uTWFpblRocmVhZChFeGNlcHRpb25EYXRh
IHsgVW5rbm93bkVycm9yLCBBU0NJSUxpdGVyYWwoInNlcnZpY2VXb3JrZXIgam9iIHNjaGVkdWxp
bmcgaXMgbm90IHlldCBpbXBsZW1lbnRlZCIpIH0pOworICAgIHN0YXJ0U2NyaXB0RmV0Y2hGcm9t
TWFpblRocmVhZCgpOwogfQogCiB2b2lkIFNXU2VydmVyUmVnaXN0cmF0aW9uOjpyZWplY3RXaXRo
RXhjZXB0aW9uT25NYWluVGhyZWFkKGNvbnN0IEV4Y2VwdGlvbkRhdGEmIGV4Y2VwdGlvbikKQEAg
LTE2Niw2ICsxODEsMTIgQEAgdm9pZCBTV1NlcnZlclJlZ2lzdHJhdGlvbjo6cmVzb2x2ZVdpdGhS
ZWdpc3RyYXRpb25Pbk1haW5UaHJlYWQoKQogICAgIG1fc2VydmVyLnBvc3RUYXNrUmVwbHkoY3Jl
YXRlQ3Jvc3NUaHJlYWRUYXNrKCp0aGlzLCAmU1dTZXJ2ZXJSZWdpc3RyYXRpb246OnJlc29sdmVD
dXJyZW50Sm9iLCBkYXRhKCkpKTsKIH0KIAordm9pZCBTV1NlcnZlclJlZ2lzdHJhdGlvbjo6c3Rh
cnRTY3JpcHRGZXRjaEZyb21NYWluVGhyZWFkKCkKK3sKKyAgICBBU1NFUlQoIWlzTWFpblRocmVh
ZCgpKTsKKyAgICBtX3NlcnZlci5wb3N0VGFza1JlcGx5KGNyZWF0ZUNyb3NzVGhyZWFkVGFzaygq
dGhpcywgJlNXU2VydmVyUmVnaXN0cmF0aW9uOjpzdGFydFNjcmlwdEZldGNoRm9yQ3VycmVudEpv
YikpOworfQorCiB2b2lkIFNXU2VydmVyUmVnaXN0cmF0aW9uOjpyZWplY3RDdXJyZW50Sm9iKGNv
bnN0IEV4Y2VwdGlvbkRhdGEmIGV4Y2VwdGlvbkRhdGEpCiB7CiAgICAgQVNTRVJUKGlzTWFpblRo
cmVhZCgpKTsKQEAgLTE4Niw2ICsyMDcsMTQgQEAgdm9pZCBTV1NlcnZlclJlZ2lzdHJhdGlvbjo6
cmVzb2x2ZUN1cnJlbnRKb2IoY29uc3QgU2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbkRhdGEKICAg
ICBmaW5pc2hDdXJyZW50Sm9iKCk7CiB9CiAKK3ZvaWQgU1dTZXJ2ZXJSZWdpc3RyYXRpb246OnN0
YXJ0U2NyaXB0RmV0Y2hGb3JDdXJyZW50Sm9iKCkKK3sKKyAgICBBU1NFUlQoaXNNYWluVGhyZWFk
KCkpOworICAgIEFTU0VSVChtX2N1cnJlbnRKb2IpOworCisgICAgbV9zZXJ2ZXIuc3RhcnRTY3Jp
cHRGZXRjaCgqbV9jdXJyZW50Sm9iKTsKK30KKwogdm9pZCBTV1NlcnZlclJlZ2lzdHJhdGlvbjo6
ZmluaXNoQ3VycmVudEpvYigpCiB7CiAgICAgQVNTRVJUKG1fY3VycmVudEpvYik7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2Uvc2VydmVyL1NXU2VydmVyUmVnaXN0
cmF0aW9uLmggYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2Uvc2VydmVyL1NXU2VydmVy
UmVnaXN0cmF0aW9uLmgKaW5kZXggOWI2ZWFiZjJmYTMuLmY3Njg1NDYzZGU3IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2Uvc2VydmVyL1NXU2VydmVyUmVnaXN0cmF0
aW9uLmgKKysrIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL3NlcnZlci9TV1NlcnZl
clJlZ2lzdHJhdGlvbi5oCkBAIC0zOCw2ICszOCw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIGNs
YXNzIFNXU2VydmVyOwogY2xhc3MgU1dTZXJ2ZXJXb3JrZXI7CiBzdHJ1Y3QgRXhjZXB0aW9uRGF0
YTsKK3N0cnVjdCBTZXJ2aWNlV29ya2VyRmV0Y2hSZXN1bHQ7CiAKIGNsYXNzIFNXU2VydmVyUmVn
aXN0cmF0aW9uIDogcHVibGljIFRocmVhZFNhZmVJZGVudGlmaWVkPFNXU2VydmVyUmVnaXN0cmF0
aW9uPiB7CiBwdWJsaWM6CkBAIC00Niw2ICs0Nyw3IEBAIHB1YmxpYzoKICAgICB+U1dTZXJ2ZXJS
ZWdpc3RyYXRpb24oKTsKIAogICAgIHZvaWQgZW5xdWV1ZUpvYihjb25zdCBTZXJ2aWNlV29ya2Vy
Sm9iRGF0YSYpOworICAgIHZvaWQgc2NyaXB0RmV0Y2hGaW5pc2hlZChjb25zdCBTZXJ2aWNlV29y
a2VyRmV0Y2hSZXN1bHQmKTsKIAogICAgIFNlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb25EYXRhIGRh
dGEoKSBjb25zdDsKIApAQCAtNTQsNiArNTYsNyBAQCBwcml2YXRlOgogICAgIHZvaWQgc3RhcnRO
ZXh0Sm9iKCk7CiAgICAgdm9pZCByZWplY3RDdXJyZW50Sm9iKGNvbnN0IEV4Y2VwdGlvbkRhdGEm
KTsKICAgICB2b2lkIHJlc29sdmVDdXJyZW50Sm9iKGNvbnN0IFNlcnZpY2VXb3JrZXJSZWdpc3Ry
YXRpb25EYXRhJik7CisgICAgdm9pZCBzdGFydFNjcmlwdEZldGNoRm9yQ3VycmVudEpvYigpOwog
ICAgIHZvaWQgZmluaXNoQ3VycmVudEpvYigpOwogCiAgICAgdm9pZCBydW5SZWdpc3RlckpvYihj
b25zdCBTZXJ2aWNlV29ya2VySm9iRGF0YSYpOwpAQCAtNjEsNiArNjQsNyBAQCBwcml2YXRlOgog
CiAgICAgdm9pZCByZWplY3RXaXRoRXhjZXB0aW9uT25NYWluVGhyZWFkKGNvbnN0IEV4Y2VwdGlv
bkRhdGEmKTsKICAgICB2b2lkIHJlc29sdmVXaXRoUmVnaXN0cmF0aW9uT25NYWluVGhyZWFkKCk7
CisgICAgdm9pZCBzdGFydFNjcmlwdEZldGNoRnJvbU1haW5UaHJlYWQoKTsKICAgICBib29sIGlz
RW1wdHkoKTsKICAgICBTV1NlcnZlcldvcmtlciogZ2V0TmV3ZXN0V29ya2VyKCk7CiAKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cK
aW5kZXggZjA4NzljNTFiYTEuLjllOTg2NTgwZDZiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwpAQCAtMSwzICsxLDIwIEBA
CisyMDE3LTEwLTA1ICBCcmFkeSBFaWRzb24gIDxiZWlkc29uQGFwcGxlLmNvbT4KKworICAgICAg
ICBBZGQgKGVudGlyZWx5IGluY29ycmVjdCkgZmV0Y2hpbmcgb2YgU2VydmljZVdvcmtlciBzY3Jp
cHRzLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTc2
MTc5CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgQW5keSBFc3Rlcy4KKworICAgICAgICAqIFN0b3Jh
Z2VQcm9jZXNzL1NlcnZpY2VXb3JrZXIvV2ViU1dTZXJ2ZXJDb25uZWN0aW9uLmNwcDoKKyAgICAg
ICAgKFdlYktpdDo6V2ViU1dTZXJ2ZXJDb25uZWN0aW9uOjpzdGFydFNjcmlwdEZldGNoSW5DbGll
bnQpOgorICAgICAgICAqIFN0b3JhZ2VQcm9jZXNzL1NlcnZpY2VXb3JrZXIvV2ViU1dTZXJ2ZXJD
b25uZWN0aW9uLmg6CisgICAgICAgICogU3RvcmFnZVByb2Nlc3MvU2VydmljZVdvcmtlci9XZWJT
V1NlcnZlckNvbm5lY3Rpb24ubWVzc2FnZXMuaW46CisKKyAgICAgICAgKiBXZWJQcm9jZXNzL1N0
b3JhZ2UvV2ViU1dDbGllbnRDb25uZWN0aW9uLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViU1dD
bGllbnRDb25uZWN0aW9uOjpmaW5pc2hGZXRjaGluZ1NjcmlwdEluU2VydmVyKToKKyAgICAgICAg
KiBXZWJQcm9jZXNzL1N0b3JhZ2UvV2ViU1dDbGllbnRDb25uZWN0aW9uLmg6CisgICAgICAgICog
V2ViUHJvY2Vzcy9TdG9yYWdlL1dlYlNXQ2xpZW50Q29ubmVjdGlvbi5tZXNzYWdlcy5pbjoKKwog
MjAxNy0xMC0wNSAgWW91ZW5uIEZhYmxldCAgPHlvdWVubkBhcHBsZS5jb20+CiAKICAgICAgICAg
TWFrZSBMaWJXZWJSVENQcm92aWRlciBwb3J0IGFnbm9zdGljCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L1N0b3JhZ2VQcm9jZXNzL1NlcnZpY2VXb3JrZXIvV2ViU1dTZXJ2ZXJDb25uZWN0aW9u
LmNwcCBiL1NvdXJjZS9XZWJLaXQvU3RvcmFnZVByb2Nlc3MvU2VydmljZVdvcmtlci9XZWJTV1Nl
cnZlckNvbm5lY3Rpb24uY3BwCmluZGV4IGRhMjE1ZjFiN2YyLi5kOGU2YzI0NWY0ZSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9TdG9yYWdlUHJvY2Vzcy9TZXJ2aWNlV29ya2VyL1dlYlNXU2Vy
dmVyQ29ubmVjdGlvbi5jcHAKKysrIGIvU291cmNlL1dlYktpdC9TdG9yYWdlUHJvY2Vzcy9TZXJ2
aWNlV29ya2VyL1dlYlNXU2VydmVyQ29ubmVjdGlvbi5jcHAKQEAgLTI4LDYgKzI4LDcgQEAKIAog
I2lmIEVOQUJMRShTRVJWSUNFX1dPUktFUikKIAorI2luY2x1ZGUgIkRhdGFSZWZlcmVuY2UuaCIK
ICNpbmNsdWRlICJMb2dnaW5nLmgiCiAjaW5jbHVkZSAiU3RvcmFnZVRvV2ViUHJvY2Vzc0Nvbm5l
Y3Rpb25NZXNzYWdlcy5oIgogI2luY2x1ZGUgIldlYlByb2Nlc3MuaCIKQEAgLTcwLDYgKzcxLDEx
IEBAIHZvaWQgV2ViU1dTZXJ2ZXJDb25uZWN0aW9uOjpyZXNvbHZlSm9iSW5DbGllbnQodWludDY0
X3Qgam9iSWRlbnRpZmllciwgY29uc3QgU2VyCiAgICAgc2VuZChNZXNzYWdlczo6V2ViU1dDbGll
bnRDb25uZWN0aW9uOjpKb2JSZXNvbHZlZEluU2VydmVyKGpvYklkZW50aWZpZXIsIHJlZ2lzdHJh
dGlvbkRhdGEpKTsKIH0KIAordm9pZCBXZWJTV1NlcnZlckNvbm5lY3Rpb246OnN0YXJ0U2NyaXB0
RmV0Y2hJbkNsaWVudCh1aW50NjRfdCBqb2JJZGVudGlmaWVyKQoreworICAgIHNlbmQoTWVzc2Fn
ZXM6OldlYlNXQ2xpZW50Q29ubmVjdGlvbjo6U3RhcnRTY3JpcHRGZXRjaEZvclNlcnZlcihqb2JJ
ZGVudGlmaWVyKSk7Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdlYktpdAogCiAjZW5kaWYgLy8gRU5B
QkxFKFNFUlZJQ0VfV09SS0VSKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TdG9yYWdlUHJv
Y2Vzcy9TZXJ2aWNlV29ya2VyL1dlYlNXU2VydmVyQ29ubmVjdGlvbi5oIGIvU291cmNlL1dlYktp
dC9TdG9yYWdlUHJvY2Vzcy9TZXJ2aWNlV29ya2VyL1dlYlNXU2VydmVyQ29ubmVjdGlvbi5oCmlu
ZGV4IGM4NzkyNTE0ZWQ3Li5iM2NlNzZjOTVlOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9T
dG9yYWdlUHJvY2Vzcy9TZXJ2aWNlV29ya2VyL1dlYlNXU2VydmVyQ29ubmVjdGlvbi5oCisrKyBi
L1NvdXJjZS9XZWJLaXQvU3RvcmFnZVByb2Nlc3MvU2VydmljZVdvcmtlci9XZWJTV1NlcnZlckNv
bm5lY3Rpb24uaApAQCAtNTEsNiArNTEsNyBAQCBwcml2YXRlOgogICAgIC8vIEltcGxlbWVudCBT
V1NlcnZlcjo6Q29ubmVjdGlvbgogICAgIHZvaWQgcmVqZWN0Sm9iSW5DbGllbnQodWludDY0X3Qg
am9iSWRlbnRpZmllciwgY29uc3QgV2ViQ29yZTo6RXhjZXB0aW9uRGF0YSYpIGZpbmFsOwogICAg
IHZvaWQgcmVzb2x2ZUpvYkluQ2xpZW50KHVpbnQ2NF90IGpvYklkZW50aWZpZXIsIGNvbnN0IFdl
YkNvcmU6OlNlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb25EYXRhJikgZmluYWw7CisgICAgdm9pZCBz
dGFydFNjcmlwdEZldGNoSW5DbGllbnQodWludDY0X3Qgam9iSWRlbnRpZmllcikgZmluYWw7CiAK
ICAgICBJUEM6OkNvbm5lY3Rpb24qIG1lc3NhZ2VTZW5kZXJDb25uZWN0aW9uKCkgZmluYWwgeyBy
ZXR1cm4gbV9jb25uZWN0aW9uLnB0cigpOyB9CiAgICAgdWludDY0X3QgbWVzc2FnZVNlbmRlckRl
c3RpbmF0aW9uSUQoKSBmaW5hbCB7IHJldHVybiBpZGVudGlmaWVyKCk7IH0KZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvU3RvcmFnZVByb2Nlc3MvU2VydmljZVdvcmtlci9XZWJTV1NlcnZlckNv
bm5lY3Rpb24ubWVzc2FnZXMuaW4gYi9Tb3VyY2UvV2ViS2l0L1N0b3JhZ2VQcm9jZXNzL1NlcnZp
Y2VXb3JrZXIvV2ViU1dTZXJ2ZXJDb25uZWN0aW9uLm1lc3NhZ2VzLmluCmluZGV4IDA1NzFjNGQ2
MmRjLi5lNGNmYjk2MDVhNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9TdG9yYWdlUHJvY2Vz
cy9TZXJ2aWNlV29ya2VyL1dlYlNXU2VydmVyQ29ubmVjdGlvbi5tZXNzYWdlcy5pbgorKysgYi9T
b3VyY2UvV2ViS2l0L1N0b3JhZ2VQcm9jZXNzL1NlcnZpY2VXb3JrZXIvV2ViU1dTZXJ2ZXJDb25u
ZWN0aW9uLm1lc3NhZ2VzLmluCkBAIC0yNSw2ICsyNSw3IEBACiBtZXNzYWdlcyAtPiBXZWJTV1Nl
cnZlckNvbm5lY3Rpb24gewogICAgICMgV2hlbiBwb3NzaWJsZSwgdGhlc2UgbWVzc2FnZXMgY2Fu
IGJlIGltcGxlbWVudGVkIGRpcmVjdGx5IGJ5IFdlYkNvcmU6OlNXQ2xpZW50Q29ubmVjdGlvbgog
ICAgIFNjaGVkdWxlSm9iSW5TZXJ2ZXIoc3RydWN0IFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJKb2JE
YXRhIGpvYkRhdGEpCisgICAgRmluaXNoRmV0Y2hpbmdTY3JpcHRJblNlcnZlcihzdHJ1Y3QgV2Vi
Q29yZTo6U2VydmljZVdvcmtlckZldGNoUmVzdWx0IHJlc3VsdCkKIH0KIAogI2VuZGlmIC8vIEVO
QUJMRShTRVJWSUNFX1dPUktFUikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9TdG9yYWdlL1dlYlNXQ2xpZW50Q29ubmVjdGlvbi5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvU3RvcmFnZS9XZWJTV0NsaWVudENvbm5lY3Rpb24uY3BwCmluZGV4IDE4MjY0OWE2NjJj
Li5iYjNkYjZiNTM4MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1N0b3Jh
Z2UvV2ViU1dDbGllbnRDb25uZWN0aW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvU3RvcmFnZS9XZWJTV0NsaWVudENvbm5lY3Rpb24uY3BwCkBAIC0zMCw3ICszMCw5IEBACiAK
ICNpbmNsdWRlICJMb2dnaW5nLmgiCiAjaW5jbHVkZSAiU3RvcmFnZVRvV2ViUHJvY2Vzc0Nvbm5l
Y3Rpb25NZXNzYWdlcy5oIgorI2luY2x1ZGUgIldlYkNvcmVBcmd1bWVudENvZGVycy5oIgogI2lu
Y2x1ZGUgIldlYlNXU2VydmVyQ29ubmVjdGlvbk1lc3NhZ2VzLmgiCisjaW5jbHVkZSA8V2ViQ29y
ZS9TZXJ2aWNlV29ya2VyRmV0Y2hSZXN1bHQuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1NlcnZpY2VX
b3JrZXJKb2JEYXRhLmg+CiAKIHVzaW5nIG5hbWVzcGFjZSBQQUw7CkBAIC01Niw2ICs1OCwxMSBA
QCB2b2lkIFdlYlNXQ2xpZW50Q29ubmVjdGlvbjo6c2NoZWR1bGVKb2JJblNlcnZlcihjb25zdCBT
ZXJ2aWNlV29ya2VySm9iRGF0YSYgam9iRAogICAgIHNlbmQoTWVzc2FnZXM6OldlYlNXU2VydmVy
Q29ubmVjdGlvbjo6U2NoZWR1bGVKb2JJblNlcnZlcihqb2JEYXRhKSk7CiB9CiAKK3ZvaWQgV2Vi
U1dDbGllbnRDb25uZWN0aW9uOjpmaW5pc2hGZXRjaGluZ1NjcmlwdEluU2VydmVyKGNvbnN0IFNl
cnZpY2VXb3JrZXJGZXRjaFJlc3VsdCYgcmVzdWx0KQoreworICAgIHNlbmQoTWVzc2FnZXM6Oldl
YlNXU2VydmVyQ29ubmVjdGlvbjo6RmluaXNoRmV0Y2hpbmdTY3JpcHRJblNlcnZlcihyZXN1bHQp
KTsKK30KKwogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CiAKICNlbmRpZiAvLyBFTkFCTEUoU0VSVklD
RV9XT1JLRVIpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvU3RvcmFnZS9X
ZWJTV0NsaWVudENvbm5lY3Rpb24uaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9TdG9yYWdl
L1dlYlNXQ2xpZW50Q29ubmVjdGlvbi5oCmluZGV4IDUxZGU0YmJiNjYzLi40NGFmNzc5MTlkNyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1N0b3JhZ2UvV2ViU1dDbGllbnRD
b25uZWN0aW9uLmgKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1N0b3JhZ2UvV2ViU1dD
bGllbnRDb25uZWN0aW9uLmgKQEAgLTQ4LDYgKzQ4LDcgQEAgcHVibGljOgogICAgIHVpbnQ2NF90
IGlkZW50aWZpZXIoKSBjb25zdCBmaW5hbCB7IHJldHVybiBtX2lkZW50aWZpZXI7IH0KIAogICAg
IHZvaWQgc2NoZWR1bGVKb2JJblNlcnZlcihjb25zdCBXZWJDb3JlOjpTZXJ2aWNlV29ya2VySm9i
RGF0YSYpIGZpbmFsOworICAgIHZvaWQgZmluaXNoRmV0Y2hpbmdTY3JpcHRJblNlcnZlcihjb25z
dCBXZWJDb3JlOjpTZXJ2aWNlV29ya2VyRmV0Y2hSZXN1bHQmKSBmaW5hbDsKIAogICAgIHZvaWQg
ZGlzY29ubmVjdGVkRnJvbVdlYlByb2Nlc3MoKTsKICAgICB2b2lkIGRpZFJlY2VpdmVNZXNzYWdl
KElQQzo6Q29ubmVjdGlvbiYsIElQQzo6RGVjb2RlciYpIGZpbmFsOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL1N0b3JhZ2UvV2ViU1dDbGllbnRDb25uZWN0aW9uLm1lc3Nh
Z2VzLmluIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1N0b3JhZ2UvV2ViU1dDbGllbnRDb25u
ZWN0aW9uLm1lc3NhZ2VzLmluCmluZGV4IGFkZWY5OWFlZjA5Li40MGY3NzMwYzg2NiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1N0b3JhZ2UvV2ViU1dDbGllbnRDb25uZWN0
aW9uLm1lc3NhZ2VzLmluCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9TdG9yYWdlL1dl
YlNXQ2xpZW50Q29ubmVjdGlvbi5tZXNzYWdlcy5pbgpAQCAtMjYsNiArMjYsNyBAQCBtZXNzYWdl
cyAtPiBXZWJTV0NsaWVudENvbm5lY3Rpb24gewogICAgICMgV2hlbiBwb3NzaWJsZSwgdGhlc2Ug
bWVzc2FnZXMgY2FuIGJlIGltcGxlbWVudGVkIGRpcmVjdGx5IGJ5IFdlYkNvcmU6OlNXU2VydmVy
OjpDb25uZWN0aW9uCiAgICAgSm9iUmVqZWN0ZWRJblNlcnZlcih1aW50NjRfdCBpZGVudGlmaWVy
LCBzdHJ1Y3QgV2ViQ29yZTo6RXhjZXB0aW9uRGF0YSBleGNlcHRpb24pCiAgICAgSm9iUmVzb2x2
ZWRJblNlcnZlcih1aW50NjRfdCBpZGVudGlmaWVyLCBzdHJ1Y3QgV2ViQ29yZTo6U2VydmljZVdv
cmtlclJlZ2lzdHJhdGlvbkRhdGEgcmVnaXN0cmF0aW9uKQorICAgIFN0YXJ0U2NyaXB0RmV0Y2hG
b3JTZXJ2ZXIodWludDY0X3Qgam9iSWRlbnRpZmllcikKIH0KIAogI2VuZGlmIC8vIEVOQUJMRShT
RVJWSUNFX1dPUktFUikK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>322886</attachid>
            <date>2017-10-05 13:01:21 -0700</date>
            <delta_ts>2017-10-06 09:20:08 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>patch</filename>
            <type>text/plain</type>
            <size>54462</size>
            <attacher name="Brady Eidson">beidson</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCBjNmRmODRmYTkyMi4uMzkyMjdjMjZmY2MgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3Rz
L0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNiBAQAor
MjAxNy0xMC0wNSAgQnJhZHkgRWlkc29uICA8YmVpZHNvbkBhcHBsZS5jb20+CisKKyAgICAgICAg
QWRkIChlbnRpcmVseSBpbmNvcnJlY3QpIGZldGNoaW5nIG9mIFNlcnZpY2VXb3JrZXIgc2NyaXB0
cy4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE3NjE3
OQorCisgICAgICAgIFJldmlld2VkIGJ5IEFuZHkgRXN0ZXMuCisKKyAgICAgICAgKiBodHRwL3Rl
c3RzL3dvcmtlcnMvc2VydmljZS9iYXNpYy1yZWdpc3Rlci1leGNlcHRpb25zLWV4cGVjdGVkLnR4
dDoKKyAgICAgICAgKiBodHRwL3Rlc3RzL3dvcmtlcnMvc2VydmljZS9iYXNpYy1yZWdpc3Rlci1l
eHBlY3RlZC50eHQ6CisgICAgICAgICogaHR0cC90ZXN0cy93b3JrZXJzL3NlcnZpY2UvcmVzb3Vy
Y2VzL2Jhc2ljLXJlZ2lzdGVyLWV4Y2VwdGlvbnMuanM6CisgICAgICAgICogaHR0cC90ZXN0cy93
b3JrZXJzL3NlcnZpY2UvcmVzb3VyY2VzL2Jhc2ljLXJlZ2lzdGVyLmpzOgorICAgICAgICAqIGh0
dHAvdGVzdHMvd29ya2Vycy9zZXJ2aWNlL3Jlc291cmNlcy9yZWdpc3RyYXRpb24tdGFzay1xdWV1
ZS1zY2hlZHVsaW5nLTEuanM6CisKIDIwMTctMTAtMDUgIE15bGVzIEMuIE1heGZpZWxkICA8bW1h
eGZpZWxkQGFwcGxlLmNvbT4KIAogICAgICAgICBJbXBsZW1lbnQgZm9udC1kaXNwbGF5IGxvYWRp
bmcgYmVoYXZpb3JzCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dvcmtlcnMv
c2VydmljZS9iYXNpYy1yZWdpc3Rlci1leGNlcHRpb25zLWV4cGVjdGVkLnR4dCBiL0xheW91dFRl
c3RzL2h0dHAvdGVzdHMvd29ya2Vycy9zZXJ2aWNlL2Jhc2ljLXJlZ2lzdGVyLWV4Y2VwdGlvbnMt
ZXhwZWN0ZWQudHh0CmluZGV4IGRmMjlkMjUyMjczLi4zNGY2NDk2ZGU3MSAxMDA2NDQKLS0tIGEv
TGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93b3JrZXJzL3NlcnZpY2UvYmFzaWMtcmVnaXN0ZXItZXhj
ZXB0aW9ucy1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93b3JrZXJz
L3NlcnZpY2UvYmFzaWMtcmVnaXN0ZXItZXhjZXB0aW9ucy1leHBlY3RlZC50eHQKQEAgLTEsOSAr
MSwxMCBAQAotQ09OU09MRSBNRVNTQUdFOiBsaW5lIDEwOiBSZWdpc3RyYXRpb24gZmFpbGVkIHdp
dGggZXJyb3I6IFR5cGVFcnJvcjogc2VydmljZVdvcmtlci5yZWdpc3RlcigpIGNhbm5vdCBiZSBj
YWxsZWQgd2l0aCBhbiBlbXB0eSBzY3JpcHQgVVJMCi1DT05TT0xFIE1FU1NBR0U6IGxpbmUgMjA6
IFJlZ2lzdHJhdGlvbiBmYWlsZWQgd2l0aCBlcnJvcjogVHlwZUVycm9yOiBzZXJ2aWNlV29ya2Vy
LnJlZ2lzdGVyKCkgbXVzdCBiZSBjYWxsZWQgd2l0aCBhIHZhbGlkIHJlbGF0aXZlIHNjcmlwdCBV
UkwKLUNPTlNPTEUgTUVTU0FHRTogbGluZSAzMDogUmVnaXN0cmF0aW9uIGZhaWxlZCB3aXRoIGVy
cm9yOiBUeXBlRXJyb3I6IHNlcnZpY2VXb3JrZXIucmVnaXN0ZXIoKSBtdXN0IGJlIGNhbGxlZCB3
aXRoIGEgc2NyaXB0IFVSTCB3aG9zZSBwcm90b2NvbCBpcyBlaXRoZXIgSFRUUCBvciBIVFRQUwot
Q09OU09MRSBNRVNTQUdFOiBsaW5lIDQwOiBSZWdpc3RyYXRpb24gZmFpbGVkIHdpdGggZXJyb3I6
IFR5cGVFcnJvcjogc2VydmljZVdvcmtlci5yZWdpc3RlcigpIG11c3QgYmUgY2FsbGVkIHdpdGgg
YSBzY3JpcHQgVVJMIHdob3NlIHBhdGggZG9lcyBub3QgY29udGFpbiAnJTJmJyBvciAnJTVjJwot
Q09OU09MRSBNRVNTQUdFOiBsaW5lIDUwOiBSZWdpc3RyYXRpb24gZmFpbGVkIHdpdGggZXJyb3I6
IFR5cGVFcnJvcjogU2NvcGUgVVJMIHByb3ZpZGVkIHRvIHNlcnZpY2VXb3JrZXIucmVnaXN0ZXIo
KSBtdXN0IGJlIGVpdGhlciBIVFRQIG9yIEhUVFBTCi1DT05TT0xFIE1FU1NBR0U6IGxpbmUgNjA6
IFJlZ2lzdHJhdGlvbiBmYWlsZWQgd2l0aCBlcnJvcjogVHlwZUVycm9yOiBTY29wZSBVUkwgcHJv
dmlkZWQgdG8gc2VydmljZVdvcmtlci5yZWdpc3RlcigpIGNhbm5vdCBoYXZlIGEgcGF0aCB0aGF0
IGNvbnRhaW5zICclMmYnIG9yICclNWMnCi1DT05TT0xFIE1FU1NBR0U6IGxpbmUgNzA6IFJlZ2lz
dHJhdGlvbiBmYWlsZWQgd2l0aCBlcnJvcjogU2VjdXJpdHlFcnJvcjogU2NyaXB0IG9yaWdpbiBk
b2VzIG5vdCBtYXRjaCB0aGUgcmVnaXN0ZXJpbmcgY2xpZW50J3Mgb3JpZ2luCi1DT05TT0xFIE1F
U1NBR0U6IGxpbmUgODE6IFJlZ2lzdHJhdGlvbiBmYWlsZWQgd2l0aCBlcnJvcjogU2VjdXJpdHlF
cnJvcjogU2NvcGUgb3JpZ2luIGRvZXMgbm90IG1hdGNoIHRoZSByZWdpc3RlcmluZyBjbGllbnQn
cyBvcmlnaW4KK0NPTlNPTEUgTUVTU0FHRTogbGluZSAyMDogUmVnaXN0cmF0aW9uIGZhaWxlZCB3
aXRoIGVycm9yOiBUeXBlRXJyb3I6IHNlcnZpY2VXb3JrZXIucmVnaXN0ZXIoKSBjYW5ub3QgYmUg
Y2FsbGVkIHdpdGggYW4gZW1wdHkgc2NyaXB0IFVSTAorQ09OU09MRSBNRVNTQUdFOiBsaW5lIDMw
OiBSZWdpc3RyYXRpb24gZmFpbGVkIHdpdGggZXJyb3I6IFR5cGVFcnJvcjogc2VydmljZVdvcmtl
ci5yZWdpc3RlcigpIG11c3QgYmUgY2FsbGVkIHdpdGggYSB2YWxpZCByZWxhdGl2ZSBzY3JpcHQg
VVJMCitDT05TT0xFIE1FU1NBR0U6IGxpbmUgNDA6IFJlZ2lzdHJhdGlvbiBmYWlsZWQgd2l0aCBl
cnJvcjogVHlwZUVycm9yOiBzZXJ2aWNlV29ya2VyLnJlZ2lzdGVyKCkgbXVzdCBiZSBjYWxsZWQg
d2l0aCBhIHNjcmlwdCBVUkwgd2hvc2UgcHJvdG9jb2wgaXMgZWl0aGVyIEhUVFAgb3IgSFRUUFMK
K0NPTlNPTEUgTUVTU0FHRTogbGluZSA1MDogUmVnaXN0cmF0aW9uIGZhaWxlZCB3aXRoIGVycm9y
OiBUeXBlRXJyb3I6IHNlcnZpY2VXb3JrZXIucmVnaXN0ZXIoKSBtdXN0IGJlIGNhbGxlZCB3aXRo
IGEgc2NyaXB0IFVSTCB3aG9zZSBwYXRoIGRvZXMgbm90IGNvbnRhaW4gJyUyZicgb3IgJyU1YycK
K0NPTlNPTEUgTUVTU0FHRTogbGluZSA2MDogUmVnaXN0cmF0aW9uIGZhaWxlZCB3aXRoIGVycm9y
OiBUeXBlRXJyb3I6IFNjb3BlIFVSTCBwcm92aWRlZCB0byBzZXJ2aWNlV29ya2VyLnJlZ2lzdGVy
KCkgbXVzdCBiZSBlaXRoZXIgSFRUUCBvciBIVFRQUworQ09OU09MRSBNRVNTQUdFOiBsaW5lIDcw
OiBSZWdpc3RyYXRpb24gZmFpbGVkIHdpdGggZXJyb3I6IFR5cGVFcnJvcjogU2NvcGUgVVJMIHBy
b3ZpZGVkIHRvIHNlcnZpY2VXb3JrZXIucmVnaXN0ZXIoKSBjYW5ub3QgaGF2ZSBhIHBhdGggdGhh
dCBjb250YWlucyAnJTJmJyBvciAnJTVjJworQ09OU09MRSBNRVNTQUdFOiBsaW5lIDEwOiBSZWdp
c3RyYXRpb24gZmFpbGVkIHdpdGggZXJyb3I6IFVua25vd25FcnJvcjogU2NyaXB0IFVSTCBodHRw
Oi8vMTI3LjAuMC4xOjgwMDAvd29ya2Vycy9zZXJ2aWNlL2ltYWdlLW1pbWUtdHlwZS5waHAgZmV0
Y2hlZCB3aXRoIDAgY2hhcmFjdGVycywgYnV0IHdlJ3JlIG5vdCB1c2luZyB0aGUgcmVzdWx0IHll
dAorQ09OU09MRSBNRVNTQUdFOiBsaW5lIDgwOiBSZWdpc3RyYXRpb24gZmFpbGVkIHdpdGggZXJy
b3I6IFNlY3VyaXR5RXJyb3I6IFNjcmlwdCBvcmlnaW4gZG9lcyBub3QgbWF0Y2ggdGhlIHJlZ2lz
dGVyaW5nIGNsaWVudCdzIG9yaWdpbgorQ09OU09MRSBNRVNTQUdFOiBsaW5lIDkxOiBSZWdpc3Ry
YXRpb24gZmFpbGVkIHdpdGggZXJyb3I6IFNlY3VyaXR5RXJyb3I6IFNjb3BlIG9yaWdpbiBkb2Vz
IG5vdCBtYXRjaCB0aGUgcmVnaXN0ZXJpbmcgY2xpZW50J3Mgb3JpZ2luCiAKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2h0dHAvdGVzdHMvd29ya2Vycy9zZXJ2aWNlL2Jhc2ljLXJlZ2lzdGVyLWV4
cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvd29ya2Vycy9zZXJ2aWNlL2Jhc2lj
LXJlZ2lzdGVyLWV4cGVjdGVkLnR4dAppbmRleCBjMDE4ZTQ1ZTVkMS4uNDk0MDc3ODRhYmYgMTAw
NjQ0Ci0tLSBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvd29ya2Vycy9zZXJ2aWNlL2Jhc2ljLXJl
Z2lzdGVyLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dvcmtlcnMv
c2VydmljZS9iYXNpYy1yZWdpc3Rlci1leHBlY3RlZC50eHQKQEAgLTEsMiArMSwzIEBACi1DT05T
T0xFIE1FU1NBR0U6IGxpbmUgMTE6IFJlZ2lzdHJhdGlvbiBmYWlsZWQgd2l0aCBlcnJvcjogVW5r
bm93bkVycm9yOiBzZXJ2aWNlV29ya2VyIGpvYiBzY2hlZHVsaW5nIGlzIG5vdCB5ZXQgaW1wbGVt
ZW50ZWQKK0NPTlNPTEUgTUVTU0FHRTogbGluZSAxMDogUmVnaXN0cmF0aW9uIGZhaWxlZCB3aXRo
IGVycm9yOiBVbmtub3duRXJyb3I6IFNjcmlwdCBVUkwgaHR0cDovLzEyNy4wLjAuMTo4MDAwL3dv
cmtlcnMvc2VydmljZS9yZXNvdXJjZXMvZW1wdHktd29ya2VyLmpzIGZldGNoZWQgd2l0aCA0MSBj
aGFyYWN0ZXJzLCBidXQgd2UncmUgbm90IHVzaW5nIHRoZSByZXN1bHQgeWV0CitDT05TT0xFIE1F
U1NBR0U6IGxpbmUgMjE6IFJlZ2lzdHJhdGlvbiBmYWlsZWQgd2l0aCBlcnJvcjogVW5rbm93bkVy
cm9yOiBTY3JpcHQgVVJMIGh0dHA6Ly8xMjcuMC4wLjE6ODAwMC93b3JrZXJzL3NlcnZpY2UvcmVz
b3VyY2VzL2VtcHR5LXdvcmtlci1kb2VzbnQtZXhpc3QuanMgZmV0Y2hlZCB3aXRoIDAgY2hhcmFj
dGVycywgYnV0IHdlJ3JlIG5vdCB1c2luZyB0aGUgcmVzdWx0IHlldAogCmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dvcmtlcnMvc2VydmljZS9yZXNvdXJjZXMvYmFzaWMtcmVn
aXN0ZXItZXhjZXB0aW9ucy5qcyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvd29ya2Vycy9zZXJ2
aWNlL3Jlc291cmNlcy9iYXNpYy1yZWdpc3Rlci1leGNlcHRpb25zLmpzCmluZGV4IDhhMDMwNmZi
N2E5Li43OGQxZDhhZjUyMiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93b3Jr
ZXJzL3NlcnZpY2UvcmVzb3VyY2VzL2Jhc2ljLXJlZ2lzdGVyLWV4Y2VwdGlvbnMuanMKKysrIGIv
TGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93b3JrZXJzL3NlcnZpY2UvcmVzb3VyY2VzL2Jhc2ljLXJl
Z2lzdGVyLWV4Y2VwdGlvbnMuanMKQEAgLTMsNiArMywxNiBAQCBmdW5jdGlvbiBkb25lKCkKICAg
ICBmaW5pc2hTV1Rlc3QoKTsKIH0KIAorbmF2aWdhdG9yLnNlcnZpY2VXb3JrZXIucmVnaXN0ZXIo
ImltYWdlLW1pbWUtdHlwZS5waHAiLCB7IH0pCisudGhlbihmdW5jdGlvbihyKSB7CisJY29uc29s
ZS5sb2coIlJlZ2lzdGVyZWQhICh1bmV4cGVjdGVkbHkpIik7Cit9LCBmdW5jdGlvbihlKSB7CisJ
Y29uc29sZS5sb2coIlJlZ2lzdHJhdGlvbiBmYWlsZWQgd2l0aCBlcnJvcjogIiArIGUpOworfSkK
Ky5jYXRjaChmdW5jdGlvbihlKSB7CisJY29uc29sZS5sb2coIkV4Y2VwdGlvbiByZWdpc3Rlcmlu
ZzogIiArIGUpOworfSk7CisKIG5hdmlnYXRvci5zZXJ2aWNlV29ya2VyLnJlZ2lzdGVyKCIiLCB7
IH0pCiAudGhlbihmdW5jdGlvbihyKSB7CiAJY29uc29sZS5sb2coIlJlZ2lzdGVyZWQhICh1bmV4
cGVjdGVkbHkpIik7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dvcmtlcnMv
c2VydmljZS9yZXNvdXJjZXMvYmFzaWMtcmVnaXN0ZXIuanMgYi9MYXlvdXRUZXN0cy9odHRwL3Rl
c3RzL3dvcmtlcnMvc2VydmljZS9yZXNvdXJjZXMvYmFzaWMtcmVnaXN0ZXIuanMKaW5kZXggZTc1
MTZmZTU1MTcuLjNhMWU2M2IwYTY0IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3Rz
L3dvcmtlcnMvc2VydmljZS9yZXNvdXJjZXMvYmFzaWMtcmVnaXN0ZXIuanMKKysrIGIvTGF5b3V0
VGVzdHMvaHR0cC90ZXN0cy93b3JrZXJzL3NlcnZpY2UvcmVzb3VyY2VzL2Jhc2ljLXJlZ2lzdGVy
LmpzCkBAIC02LDYgKzYsMTYgQEAgZnVuY3Rpb24gZG9uZSgpCiBuYXZpZ2F0b3Iuc2VydmljZVdv
cmtlci5yZWdpc3RlcigicmVzb3VyY2VzL2VtcHR5LXdvcmtlci5qcyIsIHsgfSkKIC50aGVuKGZ1
bmN0aW9uKHIpIHsKIAljb25zb2xlLmxvZygiUmVnaXN0ZXJlZCEiKTsKK30sIGZ1bmN0aW9uKGUp
IHsKKwljb25zb2xlLmxvZygiUmVnaXN0cmF0aW9uIGZhaWxlZCB3aXRoIGVycm9yOiAiICsgZSk7
Cit9KQorLmNhdGNoKGZ1bmN0aW9uKGUpIHsKKwljb25zb2xlLmxvZygiRXhjZXB0aW9uIHJlZ2lz
dGVyaW5nOiAiICsgZSk7Cit9KTsKKworbmF2aWdhdG9yLnNlcnZpY2VXb3JrZXIucmVnaXN0ZXIo
InJlc291cmNlcy9lbXB0eS13b3JrZXItZG9lc250LWV4aXN0LmpzIiwgeyB9KQorLnRoZW4oZnVu
Y3Rpb24ocikgeworCWNvbnNvbGUubG9nKCJSZWdpc3RlcmVkISIpOwogCWRvbmUoKTsKIH0sIGZ1
bmN0aW9uKGUpIHsKIAljb25zb2xlLmxvZygiUmVnaXN0cmF0aW9uIGZhaWxlZCB3aXRoIGVycm9y
OiAiICsgZSk7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dvcmtlcnMvc2Vy
dmljZS9yZXNvdXJjZXMvcmVnaXN0cmF0aW9uLXRhc2stcXVldWUtc2NoZWR1bGluZy0xLmpzIGIv
TGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93b3JrZXJzL3NlcnZpY2UvcmVzb3VyY2VzL3JlZ2lzdHJh
dGlvbi10YXNrLXF1ZXVlLXNjaGVkdWxpbmctMS5qcwppbmRleCAxMjdhM2RiMzU0NS4uMDBmZWM5
M2I0YmMgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvd29ya2Vycy9zZXJ2aWNl
L3Jlc291cmNlcy9yZWdpc3RyYXRpb24tdGFzay1xdWV1ZS1zY2hlZHVsaW5nLTEuanMKKysrIGIv
TGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93b3JrZXJzL3NlcnZpY2UvcmVzb3VyY2VzL3JlZ2lzdHJh
dGlvbi10YXNrLXF1ZXVlLXNjaGVkdWxpbmctMS5qcwpAQCAtNDgsOCArNDgsOCBAQCBmb3IgKHZh
ciBpID0gMDsgaSA8IDEwMDA7ICsraSkgewogCQljb25zb2xlLmxvZygiT3JpZ2luYWwgd2luZG93
IHJlc29sdmVkIHN1Y2Nlc3NmdWxseSAodW5leHBlY3RlZCkiKQogCQlkb25lKCk7CiAJfSwgZnVu
Y3Rpb24oZSkgewotCQlpZiAoZSsiIiAhPSAiVW5rbm93bkVycm9yOiBzZXJ2aWNlV29ya2VyIGpv
YiBzY2hlZHVsaW5nIGlzIG5vdCB5ZXQgaW1wbGVtZW50ZWQiKSB7Ci0JCQlhbGVydCgiVW5leHBl
Y3RlZCBlcnJvciByZWNlaXZlZCBmcm9tIHNlcnZlciIpOworCQlpZiAoZSsiIiAhPSAiVW5rbm93
bkVycm9yOiBTY3JpcHQgVVJMIGh0dHA6Ly8xMjcuMC4wLjE6ODAwMC93b3JrZXJzL3NlcnZpY2Uv
cmVzb3VyY2VzL2VtcHR5LXdvcmtlci5qcyBmZXRjaGVkIHdpdGggNDEgY2hhcmFjdGVycywgYnV0
IHdlJ3JlIG5vdCB1c2luZyB0aGUgcmVzdWx0IHlldCIpIHsKKwkJCWFsZXJ0KCJVbmV4cGVjdGVk
IGVycm9yIHJlY2VpdmVkIGZyb20gc2VydmVyOiAiICsgZSk7CiAJCQlmaW5pc2hTV1Rlc3QoKTsK
IAkJfQogCQkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9X
ZWJDb3JlL0NoYW5nZUxvZwppbmRleCBmMjgxOTEwZjMzMS4uMjkwOTZkYTFmMDIgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VM
b2cKQEAgLTEsMyArMSw3MCBAQAorMjAxNy0xMC0wNSAgQnJhZHkgRWlkc29uICA8YmVpZHNvbkBh
cHBsZS5jb20+CisKKyAgICAgICAgQWRkIChlbnRpcmVseSBpbmNvcnJlY3QpIGZldGNoaW5nIG9m
IFNlcnZpY2VXb3JrZXIgc2NyaXB0cy4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTE3NjE3OQorCisgICAgICAgIFJldmlld2VkIGJ5IEFuZHkgRXN0ZXMu
CisKKyAgICAgICAgTm8gbmV3IHRlc3RzIChDb3ZlcmVkIGJ5IGNoYW5nZXMgdG8gZXhpc3Rpbmcg
dGVzdHMpLgorCisgICAgICAgIFdoZW4gdGhlIFN0b3JhZ2UgcHJvY2VzcyBpcyBydW5uaW5nIHRo
ZSAiVXBkYXRlIiBhbGdvcml0aG0gYW5kIGEgU2VydmljZVdvcmtlciBzY3JpcHQgZmlsZSBuZWVk
cyB0byBiZSBmZXRjaGVkLCB0aGlzIHBhdGNoOgorICAgICAgICAgIC0gTWVzc2FnZXMgYmFjayB0
byB0aGUgV2ViQ29udGVudCBwcm9jZXNzIHRoYXQgc3RhcnRlZCB0aGUgcmVnaXN0ZXIvdXBkYXRl
IGpvYgorICAgICAgICAgIC0gRXhlY3V0ZXMgYSBGZXRjaExvYWQgaW4gdGhhdCBzY3JpcHQgY29u
dGV4dCBmb3IgdGhlIHNjcmlwdAorICAgICAgICAgIC0gU2VuZHMgdGhlIHJlc3VsdHMgYmFjayB0
byB0aGUgU3RvcmFnZSBwcm9jZXNzCisKKyAgICAgICAgV2UgZG9uJ3QgZG8gYW55dGhpbmcgd2l0
aCB0aGUgcmVzdWx0cyB5ZXQuCisKKyAgICAgICAgU29vbi4KKworICAgICAgICAqIFdlYkNvcmUu
eGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKworICAgICAgICAqIHdvcmtlcnMvV29ya2VyU2Ny
aXB0TG9hZGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OldvcmtlclNjcmlwdExvYWRlcjo6ZGlk
RmFpbCk6CisgICAgICAgICogd29ya2Vycy9Xb3JrZXJTY3JpcHRMb2FkZXIuaDoKKyAgICAgICAg
KFdlYkNvcmU6OldvcmtlclNjcmlwdExvYWRlcjo6ZXJyb3IgY29uc3QpOgorCisgICAgICAgICog
d29ya2Vycy9Xb3JrZXJTY3JpcHRMb2FkZXJDbGllbnQuaDoKKyAgICAgICAgKFdlYkNvcmU6Oldv
cmtlclNjcmlwdExvYWRlckNsaWVudDo6fldvcmtlclNjcmlwdExvYWRlckNsaWVudCk6CisgICAg
ICAgIChXZWJDb3JlOjpXb3JrZXJTY3JpcHRMb2FkZXJDbGllbnQ6OmRpZFJlY2VpdmVSZXNwb25z
ZSk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpXb3JrZXJTY3JpcHRMb2FkZXJDbGllbnQ6
Om5vdGlmeUZpbmlzaGVkKTogRGVsZXRlZC4KKworICAgICAgICAqIHdvcmtlcnMvc2VydmljZS9T
ZXJ2aWNlV29ya2VyQ29udGFpbmVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNlcnZpY2VXb3Jr
ZXJDb250YWluZXI6OnN0YXJ0U2NyaXB0RmV0Y2hGb3JKb2IpOgorICAgICAgICAoV2ViQ29yZTo6
U2VydmljZVdvcmtlckNvbnRhaW5lcjo6am9iRmluaXNoZWRMb2FkaW5nU2NyaXB0KToKKyAgICAg
ICAgKFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJDb250YWluZXI6OmpvYkZhaWxlZExvYWRpbmdTY3Jp
cHQpOgorICAgICAgICAqIHdvcmtlcnMvc2VydmljZS9TZXJ2aWNlV29ya2VyQ29udGFpbmVyLmg6
CisKKyAgICAgICAgKiB3b3JrZXJzL3NlcnZpY2UvU2VydmljZVdvcmtlckZldGNoUmVzdWx0Lmg6
IENvcGllZCBmcm9tIFNvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9zZXJ2ZXIvU1dDbGll
bnRDb25uZWN0aW9uLmguCisgICAgICAgIChXZWJDb3JlOjpTZXJ2aWNlV29ya2VyRmV0Y2hSZXN1
bHQ6OmVuY29kZSBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpTZXJ2aWNlV29ya2VyRmV0Y2hS
ZXN1bHQ6OmRlY29kZSk6CisKKyAgICAgICAgKiB3b3JrZXJzL3NlcnZpY2UvU2VydmljZVdvcmtl
ckpvYi5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTZXJ2aWNlV29ya2VySm9iOjpzdGFydFNjcmlw
dEZldGNoKToKKyAgICAgICAgKFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJKb2I6OmZldGNoU2NyaXB0
V2l0aENvbnRleHQpOgorICAgICAgICAoV2ViQ29yZTo6U2VydmljZVdvcmtlckpvYjo6ZGlkUmVj
ZWl2ZVJlc3BvbnNlKToKKyAgICAgICAgKFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJKb2I6Om5vdGlm
eUZpbmlzaGVkKToKKyAgICAgICAgKiB3b3JrZXJzL3NlcnZpY2UvU2VydmljZVdvcmtlckpvYi5o
OgorICAgICAgICAqIHdvcmtlcnMvc2VydmljZS9TZXJ2aWNlV29ya2VySm9iQ2xpZW50Lmg6CisK
KyAgICAgICAgKiB3b3JrZXJzL3NlcnZpY2Uvc2VydmVyL1NXQ2xpZW50Q29ubmVjdGlvbi5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpTV0NsaWVudENvbm5lY3Rpb246OmZpbmlzaGVkRmV0Y2hpbmdT
Y3JpcHQpOgorICAgICAgICAoV2ViQ29yZTo6U1dDbGllbnRDb25uZWN0aW9uOjpmYWlsZWRGZXRj
aGluZ1NjcmlwdCk6CisgICAgICAgIChXZWJDb3JlOjpTV0NsaWVudENvbm5lY3Rpb246OnN0YXJ0
U2NyaXB0RmV0Y2hGb3JTZXJ2ZXIpOgorICAgICAgICAqIHdvcmtlcnMvc2VydmljZS9zZXJ2ZXIv
U1dDbGllbnRDb25uZWN0aW9uLmg6CisKKyAgICAgICAgKiB3b3JrZXJzL3NlcnZpY2Uvc2VydmVy
L1NXU2VydmVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNXU2VydmVyOjpDb25uZWN0aW9uOjpm
aW5pc2hGZXRjaGluZ1NjcmlwdEluU2VydmVyKToKKyAgICAgICAgKFdlYkNvcmU6OlNXU2VydmVy
OjpzdGFydFNjcmlwdEZldGNoKToKKyAgICAgICAgKFdlYkNvcmU6OlNXU2VydmVyOjpzY3JpcHRG
ZXRjaEZpbmlzaGVkKToKKyAgICAgICAgKiB3b3JrZXJzL3NlcnZpY2Uvc2VydmVyL1NXU2VydmVy
Lmg6CisKKyAgICAgICAgKiB3b3JrZXJzL3NlcnZpY2Uvc2VydmVyL1NXU2VydmVyUmVnaXN0cmF0
aW9uLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNXU2VydmVyUmVnaXN0cmF0aW9uOjpzY3JpcHRG
ZXRjaEZpbmlzaGVkKToKKyAgICAgICAgKFdlYkNvcmU6OlNXU2VydmVyUmVnaXN0cmF0aW9uOjpy
dW5VcGRhdGVKb2IpOgorICAgICAgICAoV2ViQ29yZTo6U1dTZXJ2ZXJSZWdpc3RyYXRpb246OnN0
YXJ0U2NyaXB0RmV0Y2hGcm9tTWFpblRocmVhZCk6CisgICAgICAgIChXZWJDb3JlOjpTV1NlcnZl
clJlZ2lzdHJhdGlvbjo6c3RhcnRTY3JpcHRGZXRjaEZvckN1cnJlbnRKb2IpOgorICAgICAgICAq
IHdvcmtlcnMvc2VydmljZS9zZXJ2ZXIvU1dTZXJ2ZXJSZWdpc3RyYXRpb24uaDoKKwogMjAxNy0x
MC0wNSAgRGF2aWQgS2lsemVyICA8ZGRraWx6ZXJAYXBwbGUuY29tPgogCiAgICAgICAgIEJ1ZyAx
Nzc4OTM6IERpc2FibGUgLVdjYXN0LXF1YWwgZm9yIG5ldyBjbGFuZyBjb21waWxlciBpbiBBcHBs
ZSBwb3J0cwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJv
amVjdC5wYnhwcm9qIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5w
Ynhwcm9qCmluZGV4IDFkY2E5YjMwMjU1Li5kOWEwMDg0NDAxOSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtMTMyMCw3ICsxMzIw
LDcgQEAKIAkJMkU5NEY0M0IxMTkyMDdEQTAwQjdGNzVEIC8qIEpTRmlsZVJlYWRlci5jcHAgaW4g
U291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAyRTk0RjQzOTExOTIw
N0RBMDBCN0Y3NUQgLyogSlNGaWxlUmVhZGVyLmNwcCAqLzsgfTsKIAkJMkU5NEY0M0MxMTkyMDdE
QTAwQjdGNzVEIC8qIEpTRmlsZVJlYWRlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gMkU5NEY0M0ExMTkyMDdEQTAwQjdGNzVEIC8qIEpTRmlsZVJlYWRl
ci5oICovOyB9OwogCQkyRTlCNUQ4RjFCNjZBOTRFMDA4QzZBMjQgLyogV2hlZWxFdmVudERlbHRh
RmlsdGVyTWFjLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSAyRTlCNUQ4RTFCNjZBOTRFMDA4QzZBMjQgLyogV2hlZWxFdmVudERlbHRhRmlsdGVyTWFjLmgg
Ki87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKLQkJMkVBNzY4
MDQwRkU3MTI2NDAwQUI5QzhBIC8qIFdvcmtlclNjcmlwdExvYWRlckNsaWVudC5oIGluIEhlYWRl
cnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMkVBNzY4MDMwRkU3MTI2NDAw
QUI5QzhBIC8qIFdvcmtlclNjcmlwdExvYWRlckNsaWVudC5oICovOyB9OworCQkyRUE3NjgwNDBG
RTcxMjY0MDBBQjlDOEEgLyogV29ya2VyU2NyaXB0TG9hZGVyQ2xpZW50LmggaW4gSGVhZGVycyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAyRUE3NjgwMzBGRTcxMjY0MDBBQjlD
OEEgLyogV29ya2VyU2NyaXB0TG9hZGVyQ2xpZW50LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVU
RVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJMkVCNEJDRDIxMjFGMDNFMzAwRUM0ODg1IC8qIEJs
b2JSZXNvdXJjZUhhbmRsZS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSAyRUI0QkNEMDEyMUYwM0UzMDBFQzQ4ODUgLyogQmxvYlJlc291cmNlSGFuZGxl
LmNwcCAqLzsgfTsKIAkJMkVCNEJDRDMxMjFGMDNFMzAwRUM0ODg1IC8qIEJsb2JSZXNvdXJjZUhh
bmRsZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMkVC
NEJDRDExMjFGMDNFMzAwRUM0ODg1IC8qIEJsb2JSZXNvdXJjZUhhbmRsZS5oICovOyB9OwogCQky
RUI3Njc1NjFEQTE5Qjk5MDAzRTIzQjUgLyogSW5wdXRFdmVudC5jcHAgaW4gU291cmNlcyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAyRUI3Njc1NTFEQTE5Qjk5MDAzRTIzQjUg
LyogSW5wdXRFdmVudC5jcHAgKi87IH07CkBAIC0yMzQzLDYgKzIzNDMsMTAgQEAKIAkJNTE3QTUz
NDYxRjUwQzE3RjAwRENEQzBBIC8qIFNXU2VydmVyV29ya2VyLmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1MTdBNTM0MjFGNTBDMTYxMDBEQ0RDMEEgLyog
U1dTZXJ2ZXJXb3JrZXIuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCAp
OyB9OyB9OwogCQk1MTdBNTM0RTFGNTRBOEJBMDBEQ0RDMEEgLyogU2VydmljZVdvcmtlclJlZ2lz
dHJhdGlvbkRhdGEuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gNTE3QTUzNEIxRjU0OUQ0QTAwRENEQzBBIC8qIFNlcnZpY2VXb3JrZXJSZWdpc3RyYXRp
b25EYXRhLmNwcCAqLzsgfTsKIAkJNTE3QTUzNEYxRjU0QThCQTAwRENEQzBBIC8qIFNlcnZpY2VX
b3JrZXJSZWdpc3RyYXRpb25EYXRhLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSA1MTdBNTM0QzFGNTQ5RDRBMDBEQ0RDMEEgLyogU2VydmljZVdvcmtlclJl
Z2lzdHJhdGlvbkRhdGEuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCAp
OyB9OyB9OworCQk1MTdBNTM1ODFGNTg4OUU4MDBEQ0RDMEEgLyogRmV0Y2hMb2FkZXJDbGllbnQu
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQxNDdFMkI2
MUM4OTkxMjYwMEE3RTcxNSAvKiBGZXRjaExvYWRlckNsaWVudC5oICovOyBzZXR0aW5ncyA9IHtB
VFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CisJCTUxN0E1MzVBMUY1ODg5RUYwMERDREMw
QSAvKiBGZXRjaExvYWRlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gNDE0N0UyQjUxQzg5OTEyNjAwQTdFNzE1IC8qIEZldGNoTG9hZGVyLmggKi87IHNl
dHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKKwkJNTE3QTUzNUIxRjU4
OEE0QzAwRENEQzBBIC8qIEZldGNoQm9keUNvbnN1bWVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0MUNGOEJFNTFENDYyMjIwMDA3MDdEQzkgLyogRmV0
Y2hCb2R5Q29uc3VtZXIuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCAp
OyB9OyB9OworCQk1MTdBNTM1RDFGNTg5OUZFMDBEQ0RDMEEgLyogU2VydmljZVdvcmtlckZldGNo
UmVzdWx0LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1
MTdBNTM1QzFGNTg5OUYyMDBEQ0RDMEEgLyogU2VydmljZVdvcmtlckZldGNoUmVzdWx0LmggKi87
IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJNTE3QTYzQzMx
Qjc0MzE4NzAwRTdEQ0RDIC8qIEtleWVkRGVjb2RlckNGLmNwcCBpbiBTb3VyY2VzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUxN0E2M0JGMUI3NDMxN0UwMEU3RENEQyAvKiBL
ZXllZERlY29kZXJDRi5jcHAgKi87IH07CiAJCTUxN0E2M0M0MUI3NDMxOEIwMEU3RENEQyAvKiBL
ZXllZEVuY29kZXJDRi5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSA1MTdBNjNDMTFCNzQzMTdFMDBFN0RDREMgLyogS2V5ZWRFbmNvZGVyQ0YuY3BwICov
OyB9OwogCQk1MTdBNjNDNTFCNzQzMThGMDBFN0RDREMgLyogS2V5ZWREZWNvZGVyQ0YuaCBpbiBI
ZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUxN0E2M0MwMUI3NDMx
N0UwMEU3RENEQyAvKiBLZXllZERlY29kZXJDRi5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVT
ID0gKFByaXZhdGUsICk7IH07IH07CkBAIC00NzAyLDcgKzQ3MDYsNyBAQAogCQlBN0QyMEY2MjEw
N0Y0MDY5MDBBODAzOTIgLyogSlNXZWJHTEFjdGl2ZUluZm8uY3BwIGluIFNvdXJjZXMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTdEMjBGNjAxMDdGNDA2OTAwQTgwMzkyIC8q
IEpTV2ViR0xBY3RpdmVJbmZvLmNwcCAqLzsgfTsKIAkJQTdEMjBGNjMxMDdGNDA2OTAwQTgwMzky
IC8qIEpTV2ViR0xBY3RpdmVJbmZvLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSBBN0QyMEY2MTEwN0Y0MDY5MDBBODAzOTIgLyogSlNXZWJHTEFjdGl2ZUlu
Zm8uaCAqLzsgfTsKIAkJQTdEMjBGNkQxMDdGNDM4QjAwQTgwMzkyIC8qIFdlYkdMQWN0aXZlSW5m
by5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTdEMjBG
NkIxMDdGNDM4QjAwQTgwMzkyIC8qIFdlYkdMQWN0aXZlSW5mby5oICovOyB9OwotCQlBN0Q2QjM0
OTBGNjExMDQ1MDBCNzlGRDEgLyogV29ya2VyU2NyaXB0TG9hZGVyLmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBN0Q2QjM0NzBGNjExMDQ1MDBCNzlGRDEg
LyogV29ya2VyU2NyaXB0TG9hZGVyLmggKi87IH07CisJCUE3RDZCMzQ5MEY2MTEwNDUwMEI3OUZE
MSAvKiBXb3JrZXJTY3JpcHRMb2FkZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IEE3RDZCMzQ3MEY2MTEwNDUwMEI3OUZEMSAvKiBXb3JrZXJTY3JpcHRM
b2FkZXIuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9Owog
CQlBN0Q2QjM0QTBGNjExMDQ1MDBCNzlGRDEgLyogV29ya2VyU2NyaXB0TG9hZGVyLmNwcCBpbiBT
b3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE3RDZCMzQ4MEY2MTEw
NDUwMEI3OUZEMSAvKiBXb3JrZXJTY3JpcHRMb2FkZXIuY3BwICovOyB9OwogCQlBN0RCRjhERDEy
NzY5MTlDMDA2QjYwMDggLyogVGV4dENoZWNraW5nSGVscGVyLmNwcCBpbiBTb3VyY2VzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE3REJGOERCMTI3NjkxOUMwMDZCNjAwOCAv
KiBUZXh0Q2hlY2tpbmdIZWxwZXIuY3BwICovOyB9OwogCQlBN0RCRjhERTEyNzY5MTlDMDA2QjYw
MDggLyogVGV4dENoZWNraW5nSGVscGVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSBBN0RCRjhEQzEyNzY5MTlDMDA2QjYwMDggLyogVGV4dENoZWNraW5n
SGVscGVyLmggKi87IH07CkBAIC0xMDI1Nyw2ICsxMDI2MSw3IEBACiAJCTUxN0E1MzQzMUY1MEMx
NjEwMERDREMwQSAvKiBTV1NlcnZlcldvcmtlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNw
cC5jcHA7IHBhdGggPSBTV1NlcnZlcldvcmtlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CiAJCTUxN0E1MzRCMUY1NDlENEEwMERDREMwQSAvKiBTZXJ2aWNlV29ya2VyUmVnaXN0cmF0
aW9uRGF0YS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBTZXJ2aWNl
V29ya2VyUmVnaXN0cmF0aW9uRGF0YS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJ
CTUxN0E1MzRDMUY1NDlENEEwMERDREMwQSAvKiBTZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uRGF0
YS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBTZXJ2aWNlV29ya2VyUmVnaXN0
cmF0aW9uRGF0YS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk1MTdBNTM1QzFGNTg5
OUYyMDBEQ0RDMEEgLyogU2VydmljZVdvcmtlckZldGNoUmVzdWx0LmggKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmMuaDsgcGF0aCA9IFNlcnZpY2VXb3JrZXJGZXRjaFJlc3VsdC5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQk1MTdBNjNCRjFCNzQzMTdFMDBFN0RDREMgLyogS2V5ZWREZWNv
ZGVyQ0YuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gS2V5ZWREZWNv
ZGVyQ0YuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1MTdBNjNDMDFCNzQzMTdF
MDBFN0RDREMgLyogS2V5ZWREZWNvZGVyQ0YuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBw
YXRoID0gS2V5ZWREZWNvZGVyQ0YuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTE3
QTYzQzExQjc0MzE3RTAwRTdEQ0RDIC8qIEtleWVkRW5jb2RlckNGLmNwcCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEtleWVkRW5jb2RlckNGLmNwcDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKQEAgLTE5MTU4LDYgKzE5MTYzLDcgQEAKIAkJCQk1MUYxNzU1ODFGM0VC
QzBDMDBDNzQ5NTAgLyogU2VydmljZVdvcmtlckNvbnRhaW5lci5jcHAgKi8sCiAJCQkJNTFGMTc1
NTcxRjNFQkMwQzAwQzc0OTUwIC8qIFNlcnZpY2VXb3JrZXJDb250YWluZXIuaCAqLywKIAkJCQk1
MUYxNzU1NjFGM0VCQzBDMDBDNzQ5NTAgLyogU2VydmljZVdvcmtlckNvbnRhaW5lci5pZGwgKi8s
CisJCQkJNTE3QTUzNUMxRjU4OTlGMjAwRENEQzBBIC8qIFNlcnZpY2VXb3JrZXJGZXRjaFJlc3Vs
dC5oICovLAogCQkJCTUxRjE3NTU1MUYzRUJDMEMwMEM3NDk1MCAvKiBTZXJ2aWNlV29ya2VyR2xv
YmFsU2NvcGUuY3BwICovLAogCQkJCTUxRjE3NTU0MUYzRUJDMEMwMEM3NDk1MCAvKiBTZXJ2aWNl
V29ya2VyR2xvYmFsU2NvcGUuaCAqLywKIAkJCQk1MUYxNzU1MzFGM0VCQzBDMDBDNzQ5NTAgLyog
U2VydmljZVdvcmtlckdsb2JhbFNjb3BlLmlkbCAqLywKQEAgLTI4MTAzLDYgKzI4MTA5LDcgQEAK
IAkJCQk5M0YxOThFNTA4MjQ1RTU5MDAxRTlBQkMgLyogSFRNTERvY3VtZW50LmggaW4gSGVhZGVy
cyAqLywKIAkJCQk5NzdCMzg2NzEyMjg4M0U5MDBCODFGRjggLyogSFRNTERvY3VtZW50UGFyc2Vy
LmggaW4gSGVhZGVycyAqLywKIAkJCQk5M0YxOThFNjA4MjQ1RTU5MDAxRTlBQkMgLyogSFRNTEVs
ZW1lbnQuaCBpbiBIZWFkZXJzICovLAorCQkJCTUxN0E1MzU4MUY1ODg5RTgwMERDREMwQSAvKiBG
ZXRjaExvYWRlckNsaWVudC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQTE3QzgxMjMwRjJBNUNGNzAw
NURBQUVCIC8qIEhUTUxFbGVtZW50RmFjdG9yeS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJOTc3QjM3
MjQxMjI4NzIxNzAwQjgxRkY4IC8qIEhUTUxFbGVtZW50U3RhY2suaCBpbiBIZWFkZXJzICovLAog
CQkJCUI1NjJEQjYwMTdEM0NENjMwMDEwQUY5NiAvKiBIVE1MRWxlbWVudFR5cGVIZWxwZXJzLmgg
aW4gSGVhZGVycyAqLywKQEAgLTI5Mjc5LDYgKzI5Mjg2LDcgQEAKIAkJCQlGQTY1NEE2QzExMDhB
QkVEMDAyNjI2RjEgLyogTWF0aE1MVW5kZXJPdmVyRWxlbWVudC5oIGluIEhlYWRlcnMgKi8sCiAJ
CQkJMzdDNzM4RUYxRURCRDcxQjAwM0YyQjBCIC8qIE1hdGhNTFVua25vd25FbGVtZW50LmggaW4g
SGVhZGVycyAqLywKIAkJCQk0MzkwNDZFQTEyREEyNUU4MTJBRjgwQUMgLyogTWF0aE9wZXJhdG9y
LmggaW4gSGVhZGVycyAqLywKKwkJCQk1MTdBNTM1QjFGNTg4QTRDMDBEQ0RDMEEgLyogRmV0Y2hC
b2R5Q29uc3VtZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCTQ5RDVEQzJDMEY0MjNBNzMwMDhGMjBG
RCAvKiBNYXRyaXgzRFRyYW5zZm9ybU9wZXJhdGlvbi5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNDlF
OTExQzcwRUY4NkQ0NzAwOUQwQ0FGIC8qIE1hdHJpeFRyYW5zZm9ybU9wZXJhdGlvbi5oIGluIEhl
YWRlcnMgKi8sCiAJCQkJNUNCQzhEQUQxQUFBMzAyMjAwRTFDODAzIC8qIE1lZGlhQWNjZXNzaWJp
bGl0eVNvZnRMaW5rLmggaW4gSGVhZGVycyAqLywKQEAgLTI5NDM0LDYgKzI5NDQyLDcgQEAKIAkJ
CQk2NTZEMzc0MzBBREJBNURFMDBBNDU1NEQgLyogTmV0c2NhcGVQbHVnSW5TdHJlYW1Mb2FkZXIu
aCBpbiBIZWFkZXJzICovLAogCQkJCUExOUQ5MzRCMUFBMTFCMUUwMEI0NkMyNCAvKiBOZXR3b3Jr
RXh0ZW5zaW9uQ29udGVudEZpbHRlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNjI4RDIxNEMxMjEz
MUVEMTAwNTVEQ0ZDIC8qIE5ldHdvcmtpbmdDb250ZXh0LmggaW4gSGVhZGVycyAqLywKKwkJCQk1
MTdBNTM1RDFGNTg5OUZFMDBEQ0RDMEEgLyogU2VydmljZVdvcmtlckZldGNoUmVzdWx0LmggaW4g
SGVhZGVycyAqLywKIAkJCQk4QTgxQkY4NTExRENGRDkwMDBEQTJCOTggLyogTmV0d29ya0xvYWRN
ZXRyaWNzLmggaW4gSGVhZGVycyAqLywKIAkJCQk1OUMyN0YwNzEzOEQyOENGMDA3OUI3RTIgLyog
TmV0d29ya1Jlc291cmNlc0RhdGEuaCBpbiBIZWFkZXJzICovLAogCQkJCTFBN0ZBNjE5MEREQTNC
M0EwMDI4RjhBNSAvKiBOZXR3b3JrU3RhdGVOb3RpZmllci5oIGluIEhlYWRlcnMgKi8sCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlclNjcmlwdExvYWRlci5jcHAgYi9T
b3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlclNjcmlwdExvYWRlci5jcHAKaW5kZXggMzViY2Ix
NjE5YWUuLjk3MjBhOTdjMDIwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dv
cmtlclNjcmlwdExvYWRlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJT
Y3JpcHRMb2FkZXIuY3BwCkBAIC0xNjQsOCArMTY0LDkgQEAgdm9pZCBXb3JrZXJTY3JpcHRMb2Fk
ZXI6OmRpZEZpbmlzaExvYWRpbmcodW5zaWduZWQgbG9uZyBpZGVudGlmaWVyKQogICAgIG5vdGlm
eUZpbmlzaGVkKCk7CiB9CiAKLXZvaWQgV29ya2VyU2NyaXB0TG9hZGVyOjpkaWRGYWlsKGNvbnN0
IFJlc291cmNlRXJyb3ImKQordm9pZCBXb3JrZXJTY3JpcHRMb2FkZXI6OmRpZEZhaWwoY29uc3Qg
UmVzb3VyY2VFcnJvciYgZXJyb3IpCiB7CisgICAgbV9lcnJvciA9IGVycm9yOwogICAgIG5vdGlm
eUVycm9yKCk7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2Vy
U2NyaXB0TG9hZGVyLmggYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlclNjcmlwdExvYWRl
ci5oCmluZGV4IGM4MDc5OGFjNmM5Li5hODZjNTc0YTFiMCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvd29ya2Vycy9Xb3JrZXJTY3JpcHRMb2FkZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS93
b3JrZXJzL1dvcmtlclNjcmlwdExvYWRlci5oCkBAIC0yNiwxMCArMjYsMTEgQEAKIAogI3ByYWdt
YSBvbmNlCiAKLSNpbmNsdWRlICJVUkwuaCIKKyNpbmNsdWRlICJSZXNvdXJjZUVycm9yLmgiCiAj
aW5jbHVkZSAiUmVzb3VyY2VSZXF1ZXN0LmgiCiAjaW5jbHVkZSAiVGhyZWFkYWJsZUxvYWRlci5o
IgogI2luY2x1ZGUgIlRocmVhZGFibGVMb2FkZXJDbGllbnQuaCIKKyNpbmNsdWRlICJVUkwuaCIK
ICNpbmNsdWRlIDxtZW1vcnk+CiAjaW5jbHVkZSA8d3RmL0Zhc3RNYWxsb2MuaD4KICNpbmNsdWRl
IDx3dGYvUmVmQ291bnRlZC5oPgpAQCAtMzgsNTQgKzM5LDU2IEBACiAKIG5hbWVzcGFjZSBXZWJD
b3JlIHsKIAotICAgIGNsYXNzIFJlc291cmNlUmVzcG9uc2U7Ci0gICAgY2xhc3MgU2NyaXB0RXhl
Y3V0aW9uQ29udGV4dDsKLSAgICBjbGFzcyBUZXh0UmVzb3VyY2VEZWNvZGVyOwotICAgIGNsYXNz
IFdvcmtlclNjcmlwdExvYWRlckNsaWVudDsKK2NsYXNzIFJlc291cmNlUmVzcG9uc2U7CitjbGFz
cyBTY3JpcHRFeGVjdXRpb25Db250ZXh0OworY2xhc3MgVGV4dFJlc291cmNlRGVjb2RlcjsKK2Ns
YXNzIFdvcmtlclNjcmlwdExvYWRlckNsaWVudDsKIAotICAgIGNsYXNzIFdvcmtlclNjcmlwdExv
YWRlciA6IHB1YmxpYyBSZWZDb3VudGVkPFdvcmtlclNjcmlwdExvYWRlcj4sIHB1YmxpYyBUaHJl
YWRhYmxlTG9hZGVyQ2xpZW50IHsKLSAgICAgICAgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7Ci0g
ICAgcHVibGljOgotICAgICAgICBzdGF0aWMgUmVmPFdvcmtlclNjcmlwdExvYWRlcj4gY3JlYXRl
KCkKLSAgICAgICAgewotICAgICAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgV29ya2VyU2Ny
aXB0TG9hZGVyKTsKLSAgICAgICAgfQorY2xhc3MgV29ya2VyU2NyaXB0TG9hZGVyIDogcHVibGlj
IFJlZkNvdW50ZWQ8V29ya2VyU2NyaXB0TG9hZGVyPiwgcHVibGljIFRocmVhZGFibGVMb2FkZXJD
bGllbnQgeworICAgIFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOworcHVibGljOgorICAgIHN0YXRp
YyBSZWY8V29ya2VyU2NyaXB0TG9hZGVyPiBjcmVhdGUoKQorICAgIHsKKyAgICAgICAgcmV0dXJu
IGFkb3B0UmVmKCpuZXcgV29ya2VyU2NyaXB0TG9hZGVyKTsKKyAgICB9CiAKLSAgICAgICAgdm9p
ZCBsb2FkU3luY2hyb25vdXNseShTY3JpcHRFeGVjdXRpb25Db250ZXh0KiwgY29uc3QgVVJMJiwg
RmV0Y2hPcHRpb25zOjpNb2RlLCBDb250ZW50U2VjdXJpdHlQb2xpY3lFbmZvcmNlbWVudCwgY29u
c3QgU3RyaW5nJiBpbml0aWF0b3JJZGVudGlmaWVyKTsKLSAgICAgICAgdm9pZCBsb2FkQXN5bmNo
cm9ub3VzbHkoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCosIGNvbnN0IFVSTCYsIEZldGNoT3B0aW9u
czo6TW9kZSwgQ29udGVudFNlY3VyaXR5UG9saWN5RW5mb3JjZW1lbnQsIGNvbnN0IFN0cmluZyYg
aW5pdGlhdG9ySWRlbnRpZmllciwgV29ya2VyU2NyaXB0TG9hZGVyQ2xpZW50Kik7CisgICAgdm9p
ZCBsb2FkU3luY2hyb25vdXNseShTY3JpcHRFeGVjdXRpb25Db250ZXh0KiwgY29uc3QgVVJMJiwg
RmV0Y2hPcHRpb25zOjpNb2RlLCBDb250ZW50U2VjdXJpdHlQb2xpY3lFbmZvcmNlbWVudCwgY29u
c3QgU3RyaW5nJiBpbml0aWF0b3JJZGVudGlmaWVyKTsKKyAgICB2b2lkIGxvYWRBc3luY2hyb25v
dXNseShTY3JpcHRFeGVjdXRpb25Db250ZXh0KiwgY29uc3QgVVJMJiwgRmV0Y2hPcHRpb25zOjpN
b2RlLCBDb250ZW50U2VjdXJpdHlQb2xpY3lFbmZvcmNlbWVudCwgY29uc3QgU3RyaW5nJiBpbml0
aWF0b3JJZGVudGlmaWVyLCBXb3JrZXJTY3JpcHRMb2FkZXJDbGllbnQqKTsKIAotICAgICAgICB2
b2lkIG5vdGlmeUVycm9yKCk7CisgICAgdm9pZCBub3RpZnlFcnJvcigpOwogCi0gICAgICAgIFN0
cmluZyBzY3JpcHQoKTsKLSAgICAgICAgY29uc3QgVVJMJiB1cmwoKSBjb25zdCB7IHJldHVybiBt
X3VybDsgfQotICAgICAgICBjb25zdCBVUkwmIHJlc3BvbnNlVVJMKCkgY29uc3Q7Ci0gICAgICAg
IGJvb2wgZmFpbGVkKCkgY29uc3QgeyByZXR1cm4gbV9mYWlsZWQ7IH0KLSAgICAgICAgdW5zaWdu
ZWQgbG9uZyBpZGVudGlmaWVyKCkgY29uc3QgeyByZXR1cm4gbV9pZGVudGlmaWVyOyB9CisgICAg
U3RyaW5nIHNjcmlwdCgpOworICAgIGNvbnN0IFVSTCYgdXJsKCkgY29uc3QgeyByZXR1cm4gbV91
cmw7IH0KKyAgICBjb25zdCBVUkwmIHJlc3BvbnNlVVJMKCkgY29uc3Q7CisgICAgYm9vbCBmYWls
ZWQoKSBjb25zdCB7IHJldHVybiBtX2ZhaWxlZDsgfQorICAgIHVuc2lnbmVkIGxvbmcgaWRlbnRp
ZmllcigpIGNvbnN0IHsgcmV0dXJuIG1faWRlbnRpZmllcjsgfQorICAgIGNvbnN0IFJlc291cmNl
RXJyb3ImIGVycm9yKCkgY29uc3QgeyByZXR1cm4gbV9lcnJvcjsgfQogCi0gICAgICAgIHZvaWQg
ZGlkUmVjZWl2ZVJlc3BvbnNlKHVuc2lnbmVkIGxvbmcgaWRlbnRpZmllciwgY29uc3QgUmVzb3Vy
Y2VSZXNwb25zZSYpIG92ZXJyaWRlOwotICAgICAgICB2b2lkIGRpZFJlY2VpdmVEYXRhKGNvbnN0
IGNoYXIqIGRhdGEsIGludCBkYXRhTGVuZ3RoKSBvdmVycmlkZTsKLSAgICAgICAgdm9pZCBkaWRG
aW5pc2hMb2FkaW5nKHVuc2lnbmVkIGxvbmcgaWRlbnRpZmllcikgb3ZlcnJpZGU7Ci0gICAgICAg
IHZvaWQgZGlkRmFpbChjb25zdCBSZXNvdXJjZUVycm9yJikgb3ZlcnJpZGU7CisgICAgdm9pZCBk
aWRSZWNlaXZlUmVzcG9uc2UodW5zaWduZWQgbG9uZyBpZGVudGlmaWVyLCBjb25zdCBSZXNvdXJj
ZVJlc3BvbnNlJikgb3ZlcnJpZGU7CisgICAgdm9pZCBkaWRSZWNlaXZlRGF0YShjb25zdCBjaGFy
KiBkYXRhLCBpbnQgZGF0YUxlbmd0aCkgb3ZlcnJpZGU7CisgICAgdm9pZCBkaWRGaW5pc2hMb2Fk
aW5nKHVuc2lnbmVkIGxvbmcgaWRlbnRpZmllcikgb3ZlcnJpZGU7CisgICAgdm9pZCBkaWRGYWls
KGNvbnN0IFJlc291cmNlRXJyb3ImKSBvdmVycmlkZTsKIAotICAgIHByaXZhdGU6Ci0gICAgICAg
IGZyaWVuZCBjbGFzcyBXVEY6OlJlZkNvdW50ZWQ8V29ya2VyU2NyaXB0TG9hZGVyPjsKK3ByaXZh
dGU6CisgICAgZnJpZW5kIGNsYXNzIFdURjo6UmVmQ291bnRlZDxXb3JrZXJTY3JpcHRMb2FkZXI+
OwogCi0gICAgICAgIFdvcmtlclNjcmlwdExvYWRlcigpOwotICAgICAgICB+V29ya2VyU2NyaXB0
TG9hZGVyKCk7CisgICAgV29ya2VyU2NyaXB0TG9hZGVyKCk7CisgICAgfldvcmtlclNjcmlwdExv
YWRlcigpOwogCi0gICAgICAgIHN0ZDo6dW5pcXVlX3B0cjxSZXNvdXJjZVJlcXVlc3Q+IGNyZWF0
ZVJlc291cmNlUmVxdWVzdChjb25zdCBTdHJpbmcmIGluaXRpYXRvcklkZW50aWZpZXIpOwotICAg
ICAgICB2b2lkIG5vdGlmeUZpbmlzaGVkKCk7CisgICAgc3RkOjp1bmlxdWVfcHRyPFJlc291cmNl
UmVxdWVzdD4gY3JlYXRlUmVzb3VyY2VSZXF1ZXN0KGNvbnN0IFN0cmluZyYgaW5pdGlhdG9ySWRl
bnRpZmllcik7CisgICAgdm9pZCBub3RpZnlGaW5pc2hlZCgpOwogCi0gICAgICAgIFdvcmtlclNj
cmlwdExvYWRlckNsaWVudCogbV9jbGllbnQgeyBudWxscHRyIH07Ci0gICAgICAgIFJlZlB0cjxU
aHJlYWRhYmxlTG9hZGVyPiBtX3RocmVhZGFibGVMb2FkZXI7Ci0gICAgICAgIFN0cmluZyBtX3Jl
c3BvbnNlRW5jb2Rpbmc7ICAgICAgICAKLSAgICAgICAgUmVmUHRyPFRleHRSZXNvdXJjZURlY29k
ZXI+IG1fZGVjb2RlcjsKLSAgICAgICAgU3RyaW5nQnVpbGRlciBtX3NjcmlwdDsKLSAgICAgICAg
VVJMIG1fdXJsOwotICAgICAgICBVUkwgbV9yZXNwb25zZVVSTDsKLSAgICAgICAgdW5zaWduZWQg
bG9uZyBtX2lkZW50aWZpZXIgeyAwIH07Ci0gICAgICAgIGJvb2wgbV9mYWlsZWQgeyBmYWxzZSB9
OwotICAgICAgICBib29sIG1fZmluaXNoaW5nIHsgZmFsc2UgfTsKLSAgICB9OworICAgIFdvcmtl
clNjcmlwdExvYWRlckNsaWVudCogbV9jbGllbnQgeyBudWxscHRyIH07CisgICAgUmVmUHRyPFRo
cmVhZGFibGVMb2FkZXI+IG1fdGhyZWFkYWJsZUxvYWRlcjsKKyAgICBTdHJpbmcgbV9yZXNwb25z
ZUVuY29kaW5nOworICAgIFJlZlB0cjxUZXh0UmVzb3VyY2VEZWNvZGVyPiBtX2RlY29kZXI7Cisg
ICAgU3RyaW5nQnVpbGRlciBtX3NjcmlwdDsKKyAgICBVUkwgbV91cmw7CisgICAgVVJMIG1fcmVz
cG9uc2VVUkw7CisgICAgdW5zaWduZWQgbG9uZyBtX2lkZW50aWZpZXIgeyAwIH07CisgICAgYm9v
bCBtX2ZhaWxlZCB7IGZhbHNlIH07CisgICAgYm9vbCBtX2ZpbmlzaGluZyB7IGZhbHNlIH07Cisg
ICAgUmVzb3VyY2VFcnJvciBtX2Vycm9yOworfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJTY3JpcHRMb2FkZXJDbGll
bnQuaCBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyU2NyaXB0TG9hZGVyQ2xpZW50LmgK
aW5kZXggMTBkMDZjNzYyMjYuLmQ2MGUxOWM4YTg3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS93b3JrZXJzL1dvcmtlclNjcmlwdExvYWRlckNsaWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3dvcmtlcnMvV29ya2VyU2NyaXB0TG9hZGVyQ2xpZW50LmgKQEAgLTI4LDE4ICsyOCwxNSBAQAog
CiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLSAgICBjbGFzcyBSZXNvdXJjZVJlc3BvbnNlOworY2xh
c3MgUmVzb3VyY2VSZXNwb25zZTsKIAotICAgIGNsYXNzIFdvcmtlclNjcmlwdExvYWRlckNsaWVu
dCB7Ci0gICAgcHVibGljOgotICAgICAgICB2aXJ0dWFsIHZvaWQgZGlkUmVjZWl2ZVJlc3BvbnNl
KHVuc2lnbmVkIGxvbmcgLyppZGVudGlmaWVyKi8sIGNvbnN0IFJlc291cmNlUmVzcG9uc2UmKSB7
IH0KK2NsYXNzIFdvcmtlclNjcmlwdExvYWRlckNsaWVudCB7CitwdWJsaWM6CisgICAgdmlydHVh
bCB2b2lkIGRpZFJlY2VpdmVSZXNwb25zZSh1bnNpZ25lZCBsb25nIGlkZW50aWZpZXIsIGNvbnN0
IFJlc291cmNlUmVzcG9uc2UmKSA9IDA7CisgICAgdmlydHVhbCB2b2lkIG5vdGlmeUZpbmlzaGVk
KCkgPSAwOwogCi0gICAgICAgIC8vIEZJWE1FOiBub3RpZnlGaW5pc2hlZCgpIGlzIG5vdCBjdXJy
ZW50bHkgZ3VhcmFudGVlZCB0byBiZSBpbnZva2VkIGlmIHVzZWQgZnJvbSB3b3JrZXIgY29udGV4
dCBhbmQgdGhlIHdvcmtlciBzaHV0cyBkb3duIGluIHRoZSBtaWRkbGUgb2YgYW4gb3BlcmF0aW9u
LgotICAgICAgICAvLyBUaGlzIHdpbGwgY2F1c2UgbGVha3Mgd2hlbiB3ZSBzdXBwb3J0IG5lc3Rl
ZCB3b3JrZXJzLgotICAgICAgICB2aXJ0dWFsIHZvaWQgbm90aWZ5RmluaXNoZWQoKSB7IH0KLQot
ICAgIHByb3RlY3RlZDoKLSAgICAgICAgdmlydHVhbCB+V29ya2VyU2NyaXB0TG9hZGVyQ2xpZW50
KCkgeyB9Ci0gICAgfTsKK3Byb3RlY3RlZDoKKyAgICB2aXJ0dWFsIH5Xb3JrZXJTY3JpcHRMb2Fk
ZXJDbGllbnQoKSB7IH0KK307CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9TZXJ2aWNlV29ya2VyQ29udGFpbmVyLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9TZXJ2aWNlV29ya2VyQ29udGFpbmVy
LmNwcAppbmRleCA1YzFlY2RmMTRkOS4uZDMwZGM1N2E2ZDggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3dvcmtlcnMvc2VydmljZS9TZXJ2aWNlV29ya2VyQ29udGFpbmVyLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvU2VydmljZVdvcmtlckNvbnRhaW5lci5jcHAK
QEAgLTMyLDcgKzMyLDkgQEAKICNpbmNsdWRlICJJRExUeXBlcy5oIgogI2luY2x1ZGUgIkpTRE9N
UHJvbWlzZURlZmVycmVkLmgiCiAjaW5jbHVkZSAiSlNTZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9u
LmgiCisjaW5jbHVkZSAiTG9nZ2luZy5oIgogI2luY2x1ZGUgIk5hdmlnYXRvckJhc2UuaCIKKyNp
bmNsdWRlICJSZXNvdXJjZUVycm9yLmgiCiAjaW5jbHVkZSAiU2NvcGVHdWFyZC5oIgogI2luY2x1
ZGUgIlNjcmlwdEV4ZWN1dGlvbkNvbnRleHQuaCIKICNpbmNsdWRlICJTZWN1cml0eU9yaWdpbi5o
IgpAQCAtMTgxLDYgKzE4MywzNSBAQCB2b2lkIFNlcnZpY2VXb3JrZXJDb250YWluZXI6OmpvYlJl
c29sdmVkV2l0aFJlZ2lzdHJhdGlvbihTZXJ2aWNlV29ya2VySm9iJiBqb2IsCiAgICAgam9iLnBy
b21pc2UoKS5yZXNvbHZlPElETEludGVyZmFjZTxTZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uPj4o
cmVnaXN0cmF0aW9uLmdldCgpKTsKIH0KIAordm9pZCBTZXJ2aWNlV29ya2VyQ29udGFpbmVyOjpz
dGFydFNjcmlwdEZldGNoRm9ySm9iKFNlcnZpY2VXb3JrZXJKb2ImIGpvYikKK3sKKyAgICBMT0co
U2VydmljZVdvcmtlciwgIlNldmljZVdvcmtlckNvbnRhaW5lciAlcCBzdGFydGluZyBzY3JpcHQg
ZmV0Y2ggZm9yIGpvYiAlIiBQUkl1NjQsIHRoaXMsIGpvYi5kYXRhKCkuaWRlbnRpZmllcigpKTsK
KworICAgIGF1dG8qIGNvbnRleHQgPSBzY3JpcHRFeGVjdXRpb25Db250ZXh0KCk7CisgICAgaWYg
KCFjb250ZXh0KSB7CisgICAgICAgIExPR19FUlJPUigiU2VydmljZVdvcmtlckNvbnRhaW5lcjo6
am9iUmVzb2x2ZWRXaXRoUmVnaXN0cmF0aW9uIGNhbGxlZCBidXQgdGhlIGNvbnRhaW5lcidzIFNj
cmlwdEV4ZWN1dGlvbkNvbnRleHQgaXMgZ29uZSIpOworICAgICAgICBtX3N3Q29ubmVjdGlvbi0+
ZmFpbGVkRmV0Y2hpbmdTY3JpcHQoam9iLCB7IGVycm9yRG9tYWluV2ViS2l0SW50ZXJuYWwsIDAs
IGpvYi5kYXRhKCkuc2NyaXB0VVJMLCBBU0NJSUxpdGVyYWwoIkF0dGVtcHQgdG8gZmV0Y2ggc2Vy
dmljZSB3b3JrZXIgc2NyaXB0IHdpdGggbm8gU2NyaXB0RXhlY3V0aW9uQ29udGV4dCIpIH0pOwor
ICAgICAgICBqb2JEaWRGaW5pc2goam9iKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAg
IGpvYi5mZXRjaFNjcmlwdFdpdGhDb250ZXh0KCpjb250ZXh0KTsKK30KKwordm9pZCBTZXJ2aWNl
V29ya2VyQ29udGFpbmVyOjpqb2JGaW5pc2hlZExvYWRpbmdTY3JpcHQoU2VydmljZVdvcmtlckpv
YiYgam9iLCBjb25zdCBTdHJpbmcmIHNjcmlwdCkKK3sKKyAgICBMT0coU2VydmljZVdvcmtlciwg
IlNldmljZVdvcmtlckNvbnRhaW5lciAlcCBmaW5pc2hlZCBmZXRjaGluZyBzY3JpcHQgZm9yIGpv
YiAlIiBQUkl1NjQsIHRoaXMsIGpvYi5kYXRhKCkuaWRlbnRpZmllcigpKTsKKworICAgIG1fc3dD
b25uZWN0aW9uLT5maW5pc2hlZEZldGNoaW5nU2NyaXB0KGpvYiwgc2NyaXB0KTsKK30KKwordm9p
ZCBTZXJ2aWNlV29ya2VyQ29udGFpbmVyOjpqb2JGYWlsZWRMb2FkaW5nU2NyaXB0KFNlcnZpY2VX
b3JrZXJKb2ImIGpvYiwgY29uc3QgUmVzb3VyY2VFcnJvciYgZXJyb3IpCit7CisgICAgTE9HKFNl
cnZpY2VXb3JrZXIsICJTZXZpY2VXb3JrZXJDb250YWluZXIgJXAgZmFpbGVkIGZldGNoaW5nIHNj
cmlwdCBmb3Igam9iICUiIFBSSXU2NCwgdGhpcywgam9iLmRhdGEoKS5pZGVudGlmaWVyKCkpOwor
CisgICAgbV9zd0Nvbm5lY3Rpb24tPmZhaWxlZEZldGNoaW5nU2NyaXB0KGpvYiwgZXJyb3IpOwor
fQorCiB2b2lkIFNlcnZpY2VXb3JrZXJDb250YWluZXI6OmpvYkRpZEZpbmlzaChTZXJ2aWNlV29y
a2VySm9iJiBqb2IpCiB7CiAgICAgYXV0byB0YWtlbiA9IG1fam9iTWFwLnRha2Uoam9iLmRhdGEo
KS5pZGVudGlmaWVyKCkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2
aWNlL1NlcnZpY2VXb3JrZXJDb250YWluZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2Vy
dmljZS9TZXJ2aWNlV29ya2VyQ29udGFpbmVyLmgKaW5kZXggZWNkZmQxNDQ3NzUuLmZmNGM3OGQ1
MWI1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvU2VydmljZVdv
cmtlckNvbnRhaW5lci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9TZXJ2
aWNlV29ya2VyQ29udGFpbmVyLmgKQEAgLTczLDYgKzczLDEwIEBAIHByaXZhdGU6CiAKICAgICB2
b2lkIGpvYkZhaWxlZFdpdGhFeGNlcHRpb24oU2VydmljZVdvcmtlckpvYiYsIGNvbnN0IEV4Y2Vw
dGlvbiYpIGZpbmFsOwogICAgIHZvaWQgam9iUmVzb2x2ZWRXaXRoUmVnaXN0cmF0aW9uKFNlcnZp
Y2VXb3JrZXJKb2ImLCBjb25zdCBTZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uRGF0YSYpIGZpbmFs
OworICAgIHZvaWQgc3RhcnRTY3JpcHRGZXRjaEZvckpvYihTZXJ2aWNlV29ya2VySm9iJikgZmlu
YWw7CisgICAgdm9pZCBqb2JGaW5pc2hlZExvYWRpbmdTY3JpcHQoU2VydmljZVdvcmtlckpvYiYs
IGNvbnN0IFN0cmluZyYpIGZpbmFsOworICAgIHZvaWQgam9iRmFpbGVkTG9hZGluZ1NjcmlwdChT
ZXJ2aWNlV29ya2VySm9iJiwgY29uc3QgUmVzb3VyY2VFcnJvciYpIGZpbmFsOworCiAgICAgdm9p
ZCBqb2JEaWRGaW5pc2goU2VydmljZVdvcmtlckpvYiYpOwogCiAgICAgdWludDY0X3QgY29ubmVj
dGlvbklkZW50aWZpZXIoKSBmaW5hbDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3dvcmtl
cnMvc2VydmljZS9TZXJ2aWNlV29ya2VyRmV0Y2hSZXN1bHQuaCBiL1NvdXJjZS9XZWJDb3JlL3dv
cmtlcnMvc2VydmljZS9TZXJ2aWNlV29ya2VyRmV0Y2hSZXN1bHQuaApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMC4uZWY3ZTcyZGMzMTMKLS0tIC9kZXYvbnVsbAorKysgYi9T
b3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvU2VydmljZVdvcmtlckZldGNoUmVzdWx0LmgK
QEAgLTAsMCArMSw3NSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNyBBcHBsZSBJbmMuIEFs
bCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3Vy
Y2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFy
ZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFy
ZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4g
dGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGlu
IGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92
aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9W
SURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5E
IEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBB
TkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJ
TiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJ
QUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1Q
TEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VT
OyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQ
VElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVU
SEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5H
IE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBU
SEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJ
QklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisjaWYgRU5BQkxF
KFNFUlZJQ0VfV09SS0VSKQorCisjaW5jbHVkZSAiUmVzb3VyY2VFcnJvci5oIgorI2luY2x1ZGUg
IlNlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb25LZXkuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgewor
CitzdHJ1Y3QgU2VydmljZVdvcmtlckZldGNoUmVzdWx0IHsKKyAgICB1aW50NjRfdCBqb2JJZGVu
dGlmaWVyOworICAgIHVpbnQ2NF90IGNvbm5lY3Rpb25JZGVudGlmaWVyOworICAgIFNlcnZpY2VX
b3JrZXJSZWdpc3RyYXRpb25LZXkgcmVnaXN0cmF0aW9uS2V5OworICAgIFN0cmluZyBzY3JpcHQ7
CisgICAgUmVzb3VyY2VFcnJvciBzY3JpcHRFcnJvcjsKKworICAgIHRlbXBsYXRlPGNsYXNzIEVu
Y29kZXI+IHZvaWQgZW5jb2RlKEVuY29kZXImKSBjb25zdDsKKyAgICB0ZW1wbGF0ZTxjbGFzcyBE
ZWNvZGVyPiBzdGF0aWMgYm9vbCBkZWNvZGUoRGVjb2RlciYsIFNlcnZpY2VXb3JrZXJGZXRjaFJl
c3VsdCYpOworfTsKKwordGVtcGxhdGU8Y2xhc3MgRW5jb2Rlcj4KK3ZvaWQgU2VydmljZVdvcmtl
ckZldGNoUmVzdWx0OjplbmNvZGUoRW5jb2RlciYgZW5jb2RlcikgY29uc3QKK3sKKyAgICBlbmNv
ZGVyIDw8IGpvYklkZW50aWZpZXIgPDwgY29ubmVjdGlvbklkZW50aWZpZXIgPDwgcmVnaXN0cmF0
aW9uS2V5IDw8IHNjcmlwdCA8PCBzY3JpcHRFcnJvcjsKK30KKwordGVtcGxhdGU8Y2xhc3MgRGVj
b2Rlcj4KK2Jvb2wgU2VydmljZVdvcmtlckZldGNoUmVzdWx0OjpkZWNvZGUoRGVjb2RlciYgZGVj
b2RlciwgU2VydmljZVdvcmtlckZldGNoUmVzdWx0JiByZXN1bHQpCit7CisgICAgaWYgKCFkZWNv
ZGVyLmRlY29kZShyZXN1bHQuam9iSWRlbnRpZmllcikpCisgICAgICAgIHJldHVybiBmYWxzZTsK
KyAgICBpZiAoIWRlY29kZXIuZGVjb2RlKHJlc3VsdC5jb25uZWN0aW9uSWRlbnRpZmllcikpCisg
ICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAKKyAgICBhdXRvIHJlZ2lzdHJhdGlvbktleSA9IFNl
cnZpY2VXb3JrZXJSZWdpc3RyYXRpb25LZXk6OmRlY29kZShkZWNvZGVyKTsKKyAgICBpZiAoIXJl
Z2lzdHJhdGlvbktleSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIHN0ZDo6c3dhcCgqcmVn
aXN0cmF0aW9uS2V5LCByZXN1bHQucmVnaXN0cmF0aW9uS2V5KTsKKworICAgIGlmICghZGVjb2Rl
ci5kZWNvZGUocmVzdWx0LnNjcmlwdCkpCisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICBpZiAo
IWRlY29kZXIuZGVjb2RlKHJlc3VsdC5zY3JpcHRFcnJvcikpCisgICAgICAgIHJldHVybiBmYWxz
ZTsKKworICAgIHJldHVybiB0cnVlOworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNl
bmRpZiAvLyBFTkFCTEUoU0VSVklDRV9XT1JLRVIpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS93b3JrZXJzL3NlcnZpY2UvU2VydmljZVdvcmtlckpvYi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS93
b3JrZXJzL3NlcnZpY2UvU2VydmljZVdvcmtlckpvYi5jcHAKaW5kZXggNDlmYjA4ZWI3ZDMuLjIz
MWUwNDEyMTdmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvU2Vy
dmljZVdvcmtlckpvYi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL1Nl
cnZpY2VXb3JrZXJKb2IuY3BwCkBAIC0yOSw2ICsyOSw4IEBACiAjaWYgRU5BQkxFKFNFUlZJQ0Vf
V09SS0VSKQogCiAjaW5jbHVkZSAiSlNET01Qcm9taXNlRGVmZXJyZWQuaCIKKyNpbmNsdWRlICJS
ZXNvdXJjZUVycm9yLmgiCisjaW5jbHVkZSAiUmVzb3VyY2VSZXNwb25zZS5oIgogI2luY2x1ZGUg
IlNlcnZpY2VXb3JrZXJKb2JEYXRhLmgiCiAjaW5jbHVkZSAiU2VydmljZVdvcmtlclJlZ2lzdHJh
dGlvbi5oIgogCkBAIC02NCw2ICs2Niw0NiBAQCB2b2lkIFNlcnZpY2VXb3JrZXJKb2I6OnJlc29s
dmVkV2l0aFJlZ2lzdHJhdGlvbihjb25zdCBTZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uRAogICAg
IG1fY2xpZW50LT5qb2JSZXNvbHZlZFdpdGhSZWdpc3RyYXRpb24oKnRoaXMsIGRhdGEpOwogfQog
Cit2b2lkIFNlcnZpY2VXb3JrZXJKb2I6OnN0YXJ0U2NyaXB0RmV0Y2goKQoreworICAgIEFTU0VS
VChjdXJyZW50VGhyZWFkKCkgPT0gbV9jcmVhdGlvblRocmVhZCk7CisgICAgQVNTRVJUKCFtX2Nv
bXBsZXRlZCk7CisKKyAgICBtX2NsaWVudC0+c3RhcnRTY3JpcHRGZXRjaEZvckpvYigqdGhpcyk7
Cit9CisKK3ZvaWQgU2VydmljZVdvcmtlckpvYjo6ZmV0Y2hTY3JpcHRXaXRoQ29udGV4dChTY3Jp
cHRFeGVjdXRpb25Db250ZXh0JiBjb250ZXh0KQoreworICAgIEFTU0VSVChjdXJyZW50VGhyZWFk
KCkgPT0gbV9jcmVhdGlvblRocmVhZCk7CisgICAgQVNTRVJUKCFtX2NvbXBsZXRlZCk7CisKKyAg
ICAvLyBGSVhNRTogV29ya2VyU2NyaXB0TG9hZGVyIGlzIHRoZSB3cm9uZyBsb2FkZXIgY2xhc3Mg
dG8gdXNlIGhlcmUsIGJ1dCB0aGVyZSdzIG5vdGhpbmcgZWxzZSBiZXR0ZXIgcmlnaHQgbm93Lgor
ICAgIG1fc2NyaXB0TG9hZGVyID0gV29ya2VyU2NyaXB0TG9hZGVyOjpjcmVhdGUoKTsKKyAgICBt
X3NjcmlwdExvYWRlci0+bG9hZEFzeW5jaHJvbm91c2x5KCZjb250ZXh0LCBtX2pvYkRhdGEuc2Ny
aXB0VVJMLCBGZXRjaE9wdGlvbnM6Ok1vZGU6OlNhbWVPcmlnaW4sIENvbnRlbnRTZWN1cml0eVBv
bGljeUVuZm9yY2VtZW50OjpEb05vdEVuZm9yY2UsICJzZXJ2aWNlV29ya2VyU2NyaXB0TG9hZDoi
LCB0aGlzKTsKK30KKwordm9pZCBTZXJ2aWNlV29ya2VySm9iOjpkaWRSZWNlaXZlUmVzcG9uc2Uo
dW5zaWduZWQgbG9uZywgY29uc3QgUmVzb3VyY2VSZXNwb25zZSYgcmVzcG9uc2UpCit7CisgICAg
QVNTRVJUKGN1cnJlbnRUaHJlYWQoKSA9PSBtX2NyZWF0aW9uVGhyZWFkKTsKKyAgICBBU1NFUlQo
IW1fY29tcGxldGVkKTsKKyAgICBBU1NFUlQobV9zY3JpcHRMb2FkZXIpOworCisgICAgbV9sYXN0
UmVzcG9uc2UgPSByZXNwb25zZTsKK30KKwordm9pZCBTZXJ2aWNlV29ya2VySm9iOjpub3RpZnlG
aW5pc2hlZCgpCit7CisgICAgQVNTRVJUKGN1cnJlbnRUaHJlYWQoKSA9PSBtX2NyZWF0aW9uVGhy
ZWFkKTsKKyAgICBBU1NFUlQobV9zY3JpcHRMb2FkZXIpOworICAgIAorICAgIGlmICghbV9zY3Jp
cHRMb2FkZXItPmZhaWxlZCgpKQorICAgICAgICBtX2NsaWVudC0+am9iRmluaXNoZWRMb2FkaW5n
U2NyaXB0KCp0aGlzLCBtX3NjcmlwdExvYWRlci0+c2NyaXB0KCkpOworICAgIGVsc2UKKyAgICAg
ICAgbV9jbGllbnQtPmpvYkZhaWxlZExvYWRpbmdTY3JpcHQoKnRoaXMsIG1fc2NyaXB0TG9hZGVy
LT5lcnJvcigpKTsKKworICAgIG1fc2NyaXB0TG9hZGVyID0gbnVsbHB0cjsKK30KKwogfSAvLyBu
YW1lc3BhY2UgV2ViQ29yZQogCiAjZW5kaWYgLy8gRU5BQkxFKFNFUlZJQ0VfV09SS0VSKQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL1NlcnZpY2VXb3JrZXJKb2Iu
aCBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9TZXJ2aWNlV29ya2VySm9iLmgKaW5k
ZXggZDk3YWMxYTQzMzUuLjc3ZDIxODM1ZTg3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS93
b3JrZXJzL3NlcnZpY2UvU2VydmljZVdvcmtlckpvYi5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3dv
cmtlcnMvc2VydmljZS9TZXJ2aWNlV29ya2VySm9iLmgKQEAgLTI3LDggKzI3LDExIEBACiAKICNp
ZiBFTkFCTEUoU0VSVklDRV9XT1JLRVIpCiAKKyNpbmNsdWRlICJSZXNvdXJjZVJlc3BvbnNlLmgi
CiAjaW5jbHVkZSAiU2VydmljZVdvcmtlckpvYkNsaWVudC5oIgogI2luY2x1ZGUgIlNlcnZpY2VX
b3JrZXJKb2JEYXRhLmgiCisjaW5jbHVkZSAiV29ya2VyU2NyaXB0TG9hZGVyLmgiCisjaW5jbHVk
ZSAiV29ya2VyU2NyaXB0TG9hZGVyQ2xpZW50LmgiCiAjaW5jbHVkZSA8d3RmL1JlZlB0ci5oPgog
I2luY2x1ZGUgPHd0Zi9SdW5Mb29wLmg+CiAjaW5jbHVkZSA8d3RmL1RocmVhZFNhZmVSZWZDb3Vu
dGVkLmg+CkBAIC0zOCwxMCArNDEsMTEgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiBjbGFzcyBE
ZWZlcnJlZFByb21pc2U7CiBjbGFzcyBFeGNlcHRpb247CitjbGFzcyBTY3JpcHRFeGVjdXRpb25D
b250ZXh0OwogZW51bSBjbGFzcyBTZXJ2aWNlV29ya2VySm9iVHlwZTsKIHN0cnVjdCBTZXJ2aWNl
V29ya2VyUmVnaXN0cmF0aW9uRGF0YTsKIAotY2xhc3MgU2VydmljZVdvcmtlckpvYiA6IHB1Ymxp
YyBUaHJlYWRTYWZlUmVmQ291bnRlZDxTZXJ2aWNlV29ya2VySm9iPiB7CitjbGFzcyBTZXJ2aWNl
V29ya2VySm9iIDogcHVibGljIFRocmVhZFNhZmVSZWZDb3VudGVkPFNlcnZpY2VXb3JrZXJKb2I+
LCBwdWJsaWMgV29ya2VyU2NyaXB0TG9hZGVyQ2xpZW50IHsKIHB1YmxpYzoKICAgICBzdGF0aWMg
UmVmPFNlcnZpY2VXb3JrZXJKb2I+IGNyZWF0ZShTZXJ2aWNlV29ya2VySm9iQ2xpZW50JiBjbGll
bnQsIFJlZjxEZWZlcnJlZFByb21pc2U+JiYgcHJvbWlzZSwgU2VydmljZVdvcmtlckpvYkRhdGEm
JiBqb2JEYXRhKQogICAgIHsKQEAgLTUyLDEzICs1NiwyMCBAQCBwdWJsaWM6CiAKICAgICB2b2lk
IGZhaWxlZFdpdGhFeGNlcHRpb24oY29uc3QgRXhjZXB0aW9uJik7CiAgICAgdm9pZCByZXNvbHZl
ZFdpdGhSZWdpc3RyYXRpb24oY29uc3QgU2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbkRhdGEmKTsK
KyAgICB2b2lkIHN0YXJ0U2NyaXB0RmV0Y2goKTsKIAogICAgIFNlcnZpY2VXb3JrZXJKb2JEYXRh
IGRhdGEoKSBjb25zdCB7IHJldHVybiBtX2pvYkRhdGE7IH0KICAgICBEZWZlcnJlZFByb21pc2Um
IHByb21pc2UoKSB7IHJldHVybiBtX3Byb21pc2UuZ2V0KCk7IH0KIAorICAgIHZvaWQgZmV0Y2hT
Y3JpcHRXaXRoQ29udGV4dChTY3JpcHRFeGVjdXRpb25Db250ZXh0Jik7CisKIHByaXZhdGU6CiAg
ICAgU2VydmljZVdvcmtlckpvYihTZXJ2aWNlV29ya2VySm9iQ2xpZW50JiwgUmVmPERlZmVycmVk
UHJvbWlzZT4mJiwgU2VydmljZVdvcmtlckpvYkRhdGEmJik7CiAKKyAgICAvLyBXb3JrZXJTY3Jp
cHRMb2FkZXJDbGllbnQKKyAgICB2b2lkIGRpZFJlY2VpdmVSZXNwb25zZSh1bnNpZ25lZCBsb25n
IGlkZW50aWZpZXIsIGNvbnN0IFJlc291cmNlUmVzcG9uc2UmKSBmaW5hbDsKKyAgICB2b2lkIG5v
dGlmeUZpbmlzaGVkKCkgZmluYWw7CisKICAgICBSZWY8U2VydmljZVdvcmtlckpvYkNsaWVudD4g
bV9jbGllbnQ7CiAgICAgU2VydmljZVdvcmtlckpvYkRhdGEgbV9qb2JEYXRhOwogICAgIFJlZjxE
ZWZlcnJlZFByb21pc2U+IG1fcHJvbWlzZTsKQEAgLTY2LDYgKzc3LDggQEAgcHJpdmF0ZToKICAg
ICBib29sIG1fY29tcGxldGVkIHsgZmFsc2UgfTsKIAogICAgIFJlZjxSdW5Mb29wPiBtX3J1bkxv
b3AgeyBSdW5Mb29wOjpjdXJyZW50KCkgfTsKKyAgICBSZWZQdHI8V29ya2VyU2NyaXB0TG9hZGVy
PiBtX3NjcmlwdExvYWRlcjsKKyAgICBSZXNvdXJjZVJlc3BvbnNlIG1fbGFzdFJlc3BvbnNlOwog
CiAjaWYgIUFTU0VSVF9ESVNBQkxFRAogICAgIFRocmVhZElkZW50aWZpZXIgbV9jcmVhdGlvblRo
cmVhZCB7IGN1cnJlbnRUaHJlYWQoKSB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvd29y
a2Vycy9zZXJ2aWNlL1NlcnZpY2VXb3JrZXJKb2JDbGllbnQuaCBiL1NvdXJjZS9XZWJDb3JlL3dv
cmtlcnMvc2VydmljZS9TZXJ2aWNlV29ya2VySm9iQ2xpZW50LmgKaW5kZXggNjI4MGYwY2FhZDcu
LmY5Y2YyMjZhOGZlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2Uv
U2VydmljZVdvcmtlckpvYkNsaWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2Vy
dmljZS9TZXJ2aWNlV29ya2VySm9iQ2xpZW50LmgKQEAgLTMwLDcgKzMwLDkgQEAKIG5hbWVzcGFj
ZSBXZWJDb3JlIHsKIAogY2xhc3MgRXhjZXB0aW9uOworY2xhc3MgUmVzb3VyY2VFcnJvcjsKIGNs
YXNzIFNlcnZpY2VXb3JrZXJKb2I7CitjbGFzcyBTaGFyZWRCdWZmZXI7CiBzdHJ1Y3QgU2Vydmlj
ZVdvcmtlclJlZ2lzdHJhdGlvbkRhdGE7CiAKIGNsYXNzIFNlcnZpY2VXb3JrZXJKb2JDbGllbnQg
ewpAQCAtMzksNiArNDEsOSBAQCBwdWJsaWM6CiAKICAgICB2aXJ0dWFsIHZvaWQgam9iRmFpbGVk
V2l0aEV4Y2VwdGlvbihTZXJ2aWNlV29ya2VySm9iJiwgY29uc3QgRXhjZXB0aW9uJikgPSAwOwog
ICAgIHZpcnR1YWwgdm9pZCBqb2JSZXNvbHZlZFdpdGhSZWdpc3RyYXRpb24oU2VydmljZVdvcmtl
ckpvYiYsIGNvbnN0IFNlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb25EYXRhJikgPSAwOworICAgIHZp
cnR1YWwgdm9pZCBzdGFydFNjcmlwdEZldGNoRm9ySm9iKFNlcnZpY2VXb3JrZXJKb2ImKSA9IDA7
CisgICAgdmlydHVhbCB2b2lkIGpvYkZpbmlzaGVkTG9hZGluZ1NjcmlwdChTZXJ2aWNlV29ya2Vy
Sm9iJiwgY29uc3QgU3RyaW5nJikgPSAwOworICAgIHZpcnR1YWwgdm9pZCBqb2JGYWlsZWRMb2Fk
aW5nU2NyaXB0KFNlcnZpY2VXb3JrZXJKb2ImLCBjb25zdCBSZXNvdXJjZUVycm9yJikgPSAwOwog
CiAgICAgdmlydHVhbCB1aW50NjRfdCBjb25uZWN0aW9uSWRlbnRpZmllcigpID0gMDsKIApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL3NlcnZlci9TV0NsaWVudENv
bm5lY3Rpb24uY3BwIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL3NlcnZlci9TV0Ns
aWVudENvbm5lY3Rpb24uY3BwCmluZGV4IDQ3MDJiYmI3MjgxLi4wYmM0OTAyYWFlOSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL3NlcnZlci9TV0NsaWVudENvbm5l
Y3Rpb24uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9zZXJ2ZXIvU1dD
bGllbnRDb25uZWN0aW9uLmNwcApAQCAtMjksNiArMjksNyBAQAogI2lmIEVOQUJMRShTRVJWSUNF
X1dPUktFUikKIAogI2luY2x1ZGUgIkV4Y2VwdGlvbkRhdGEuaCIKKyNpbmNsdWRlICJTZXJ2aWNl
V29ya2VyRmV0Y2hSZXN1bHQuaCIKICNpbmNsdWRlICJTZXJ2aWNlV29ya2VySm9iRGF0YS5oIgog
CiBuYW1lc3BhY2UgV2ViQ29yZSB7CkBAIC00OSw2ICs1MCwyMCBAQCB2b2lkIFNXQ2xpZW50Q29u
bmVjdGlvbjo6c2NoZWR1bGVKb2IoU2VydmljZVdvcmtlckpvYiYgam9iKQogICAgIHNjaGVkdWxl
Sm9iSW5TZXJ2ZXIoam9iLmRhdGEoKSk7CiB9CiAKK3ZvaWQgU1dDbGllbnRDb25uZWN0aW9uOjpm
aW5pc2hlZEZldGNoaW5nU2NyaXB0KFNlcnZpY2VXb3JrZXJKb2ImIGpvYiwgY29uc3QgU3RyaW5n
JiBzY3JpcHQpCit7CisgICAgQVNTRVJUKG1fc2NoZWR1bGVkSm9icy5nZXQoam9iLmRhdGEoKS5p
ZGVudGlmaWVyKCkpID09ICZqb2IpOworCisgICAgZmluaXNoRmV0Y2hpbmdTY3JpcHRJblNlcnZl
cih7IGpvYi5kYXRhKCkuaWRlbnRpZmllcigpLCBqb2IuZGF0YSgpLmNvbm5lY3Rpb25JZGVudGlm
aWVyKCksIGpvYi5kYXRhKCkucmVnaXN0cmF0aW9uS2V5KCksIHNjcmlwdCwgeyB9IH0pOworfQor
Cit2b2lkIFNXQ2xpZW50Q29ubmVjdGlvbjo6ZmFpbGVkRmV0Y2hpbmdTY3JpcHQoU2VydmljZVdv
cmtlckpvYiYgam9iLCBjb25zdCBSZXNvdXJjZUVycm9yJiBlcnJvcikKK3sKKyAgICBBU1NFUlQo
bV9zY2hlZHVsZWRKb2JzLmdldChqb2IuZGF0YSgpLmlkZW50aWZpZXIoKSkgPT0gJmpvYik7CisK
KyAgICBmaW5pc2hGZXRjaGluZ1NjcmlwdEluU2VydmVyKHsgam9iLmRhdGEoKS5pZGVudGlmaWVy
KCksIGpvYi5kYXRhKCkuY29ubmVjdGlvbklkZW50aWZpZXIoKSwgam9iLmRhdGEoKS5yZWdpc3Ry
YXRpb25LZXkoKSwgeyB9LCBlcnJvciB9KTsKK30KKwogdm9pZCBTV0NsaWVudENvbm5lY3Rpb246
OmpvYlJlamVjdGVkSW5TZXJ2ZXIodWludDY0X3Qgam9iSWRlbnRpZmllciwgY29uc3QgRXhjZXB0
aW9uRGF0YSYgZXhjZXB0aW9uRGF0YSkKIHsKICAgICBhdXRvIGpvYiA9IG1fc2NoZWR1bGVkSm9i
cy50YWtlKGpvYklkZW50aWZpZXIpOwpAQCAtNzEsNiArODYsMjIgQEAgdm9pZCBTV0NsaWVudENv
bm5lY3Rpb246OmpvYlJlc29sdmVkSW5TZXJ2ZXIodWludDY0X3Qgam9iSWRlbnRpZmllciwgY29u
c3QgU2VydmkKICAgICBqb2ItPnJlc29sdmVkV2l0aFJlZ2lzdHJhdGlvbihyZWdpc3RyYXRpb25E
YXRhKTsKIH0KIAordm9pZCBTV0NsaWVudENvbm5lY3Rpb246OnN0YXJ0U2NyaXB0RmV0Y2hGb3JT
ZXJ2ZXIodWludDY0X3Qgam9iSWRlbnRpZmllcikKK3sKKyAgICBhdXRvIGpvYiA9IG1fc2NoZWR1
bGVkSm9icy5nZXQoam9iSWRlbnRpZmllcik7CisgICAgaWYgKCFqb2IpIHsKKyAgICAgICAgTE9H
X0VSUk9SKCJKb2IgJSIgUFJJdTY0ICIgaW5zdHJ1Y3RlZCB0byBzdGFydCBmZXRjaCBmcm9tIHNl
cnZlciwgYnV0IGpvYiB3YXMgbm90IGZvdW5kIiwgam9iSWRlbnRpZmllcik7CisKKyAgICAgICAg
Ly8gRklYTUU6IFNob3VsZCBtZXNzYWdlIGJhY2sgdG8gdGhlIHNlcnZlciBoZXJlIHRvIHNpZ25h
bCBmYWlsdXJlIHRvIGZldGNoLAorICAgICAgICAvLyBidXQgd2UgY3VycmVudGx5IG5lZWQgdGhl
IHJlZ2lzdHJhdGlvbiBrZXkgdG8gZG8gc28sIGFuZCBkb24ndCBoYXZlIGl0IGhlcmUuCisgICAg
ICAgIC8vIEluIHRoZSBmdXR1cmUgd2UnbGwgcmVmYWN0b3IgdG8gaGF2ZSBhIGdsb2JhbCwgY3Jv
c3MtcHJvY2VzcyBqb2IgaWRlbnRpZmllciB0aGF0IGNhbiBiZSB1c2VkIHRvIG92ZXJjb21lIHRo
aXMuCisKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIGpvYi0+c3RhcnRTY3JpcHRGZXRj
aCgpOworfQorCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAKICNlbmRpZiAvLyBFTkFCTEUoU0VS
VklDRV9XT1JLRVIpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2Uv
c2VydmVyL1NXQ2xpZW50Q29ubmVjdGlvbi5oIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2
aWNlL3NlcnZlci9TV0NsaWVudENvbm5lY3Rpb24uaAppbmRleCBiOTFlMDQyODgyZC4uMGJiODVk
ZDE1NDQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9zZXJ2ZXIv
U1dDbGllbnRDb25uZWN0aW9uLmgKKysrIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNl
L3NlcnZlci9TV0NsaWVudENvbm5lY3Rpb24uaApAQCAtMzMsNyArMzMsMTAgQEAKIAogbmFtZXNw
YWNlIFdlYkNvcmUgewogCitjbGFzcyBSZXNvdXJjZUVycm9yOworY2xhc3MgU2hhcmVkQnVmZmVy
Owogc3RydWN0IEV4Y2VwdGlvbkRhdGE7CitzdHJ1Y3QgU2VydmljZVdvcmtlckZldGNoUmVzdWx0
Owogc3RydWN0IFNlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb25EYXRhOwogCiBjbGFzcyBTV0NsaWVu
dENvbm5lY3Rpb24gOiBwdWJsaWMgVGhyZWFkU2FmZVJlZkNvdW50ZWQ8U1dDbGllbnRDb25uZWN0
aW9uPiB7CkBAIC00MiwxNSArNDUsMTkgQEAgcHVibGljOgogICAgIFdFQkNPUkVfRVhQT1JUIHZp
cnR1YWwgflNXQ2xpZW50Q29ubmVjdGlvbigpOwogCiAgICAgdm9pZCBzY2hlZHVsZUpvYihTZXJ2
aWNlV29ya2VySm9iJik7CisgICAgdm9pZCBmaW5pc2hlZEZldGNoaW5nU2NyaXB0KFNlcnZpY2VX
b3JrZXJKb2ImLCBjb25zdCBTdHJpbmcmKTsKKyAgICB2b2lkIGZhaWxlZEZldGNoaW5nU2NyaXB0
KFNlcnZpY2VXb3JrZXJKb2ImLCBjb25zdCBSZXNvdXJjZUVycm9yJik7CiAKICAgICB2aXJ0dWFs
IHVpbnQ2NF90IGlkZW50aWZpZXIoKSBjb25zdCA9IDA7CiAKIHByb3RlY3RlZDoKICAgICBXRUJD
T1JFX0VYUE9SVCB2b2lkIGpvYlJlamVjdGVkSW5TZXJ2ZXIodWludDY0X3Qgam9iSWRlbnRpZmll
ciwgY29uc3QgRXhjZXB0aW9uRGF0YSYpOwogICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgam9iUmVz
b2x2ZWRJblNlcnZlcih1aW50NjRfdCBqb2JJZGVudGlmaWVyLCBjb25zdCBTZXJ2aWNlV29ya2Vy
UmVnaXN0cmF0aW9uRGF0YSYpOworICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgc3RhcnRTY3JpcHRG
ZXRjaEZvclNlcnZlcih1aW50NjRfdCBqb2JJZGVudGlmaWVyKTsKIAogcHJpdmF0ZToKICAgICB2
aXJ0dWFsIHZvaWQgc2NoZWR1bGVKb2JJblNlcnZlcihjb25zdCBTZXJ2aWNlV29ya2VySm9iRGF0
YSYpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgZmluaXNoRmV0Y2hpbmdTY3JpcHRJblNlcnZlcihj
b25zdCBTZXJ2aWNlV29ya2VyRmV0Y2hSZXN1bHQmKSA9IDA7CiAKICAgICBIYXNoTWFwPHVpbnQ2
NF90LCBSZWZQdHI8U2VydmljZVdvcmtlckpvYj4+IG1fc2NoZWR1bGVkSm9iczsKIH07CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2Uvc2VydmVyL1NXU2VydmVyLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9zZXJ2ZXIvU1dTZXJ2ZXIuY3BwCmlu
ZGV4IDQwMTkzNDBiOGJkLi42ZjgxYWIyNjkxMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
d29ya2Vycy9zZXJ2aWNlL3NlcnZlci9TV1NlcnZlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
d29ya2Vycy9zZXJ2aWNlL3NlcnZlci9TV1NlcnZlci5jcHAKQEAgLTMyLDYgKzMyLDcgQEAKICNp
bmNsdWRlICJFeGNlcHRpb25EYXRhLmgiCiAjaW5jbHVkZSAiTG9nZ2luZy5oIgogI2luY2x1ZGUg
IlNXU2VydmVyUmVnaXN0cmF0aW9uLmgiCisjaW5jbHVkZSAiU2VydmljZVdvcmtlckZldGNoUmVz
dWx0LmgiCiAjaW5jbHVkZSAiU2VydmljZVdvcmtlckpvYkRhdGEuaCIKICNpbmNsdWRlIDx3dGYv
dGV4dC9XVEZTdHJpbmcuaD4KIApAQCAtNzIsNiArNzMsMTEgQEAgdm9pZCBTV1NlcnZlcjo6Q29u
bmVjdGlvbjo6c2NoZWR1bGVKb2JJblNlcnZlcihjb25zdCBTZXJ2aWNlV29ya2VySm9iRGF0YSYg
am9iRGEKICAgICBtX3NlcnZlci5zY2hlZHVsZUpvYihqb2JEYXRhKTsKIH0KIAordm9pZCBTV1Nl
cnZlcjo6Q29ubmVjdGlvbjo6ZmluaXNoRmV0Y2hpbmdTY3JpcHRJblNlcnZlcihjb25zdCBTZXJ2
aWNlV29ya2VyRmV0Y2hSZXN1bHQmIHJlc3VsdCkKK3sKKyAgICBtX3NlcnZlci5zY3JpcHRGZXRj
aEZpbmlzaGVkKHJlc3VsdCk7Cit9CisKIFNXU2VydmVyOjpTV1NlcnZlcigpCiB7CiAgICAgbV90
YXNrVGhyZWFkID0gVGhyZWFkOjpjcmVhdGUoQVNDSUlMaXRlcmFsKCJTZXJ2aWNlV29ya2VyIFRh
c2sgVGhyZWFkIiksIFt0aGlzXSB7CkBAIC0xMTIsNiArMTE4LDI5IEBAIHZvaWQgU1dTZXJ2ZXI6
OnJlc29sdmVKb2IoY29uc3QgU2VydmljZVdvcmtlckpvYkRhdGEmIGpvYkRhdGEsIGNvbnN0IFNl
cnZpY2VXb3JrCiAgICAgY29ubmVjdGlvbi0+cmVzb2x2ZUpvYkluQ2xpZW50KGpvYkRhdGEuaWRl
bnRpZmllcigpLCByZWdpc3RyYXRpb25EYXRhKTsKIH0KIAordm9pZCBTV1NlcnZlcjo6c3RhcnRT
Y3JpcHRGZXRjaChjb25zdCBTZXJ2aWNlV29ya2VySm9iRGF0YSYgam9iRGF0YSkKK3sKKyAgICBM
T0coU2VydmljZVdvcmtlciwgIlNlcnZlciBpc3N1aW5nIHN0YXJ0U2NyaXB0RmV0Y2ggZm9yIGN1
cnJlbnQgam9iICUiIFBSSXU2NCAiLSUiIFBSSXU2NCAiIGluIGNsaWVudCIsIGpvYkRhdGEuY29u
bmVjdGlvbklkZW50aWZpZXIoKSwgam9iRGF0YS5pZGVudGlmaWVyKCkpOworICAgIGF1dG8qIGNv
bm5lY3Rpb24gPSBtX2Nvbm5lY3Rpb25zLmdldChqb2JEYXRhLmNvbm5lY3Rpb25JZGVudGlmaWVy
KCkpOworICAgIGlmICghY29ubmVjdGlvbikKKyAgICAgICAgcmV0dXJuOworCisgICAgY29ubmVj
dGlvbi0+c3RhcnRTY3JpcHRGZXRjaEluQ2xpZW50KGpvYkRhdGEuaWRlbnRpZmllcigpKTsKK30K
Kwordm9pZCBTV1NlcnZlcjo6c2NyaXB0RmV0Y2hGaW5pc2hlZChjb25zdCBTZXJ2aWNlV29ya2Vy
RmV0Y2hSZXN1bHQmIHJlc3VsdCkKK3sKKyAgICBMT0coU2VydmljZVdvcmtlciwgIlNlcnZlciBo
YW5kbGluZyBzY3JpcHRGZXRjaEZpbmlzaGVkIGZvciBjdXJyZW50IGpvYiAlIiBQUkl1NjQgIi0l
IiBQUkl1NjQgIiBpbiBjbGllbnQiLCByZXN1bHQuY29ubmVjdGlvbklkZW50aWZpZXIsIHJlc3Vs
dC5qb2JJZGVudGlmaWVyKTsKKworICAgIEFTU0VSVChtX2Nvbm5lY3Rpb25zLmNvbnRhaW5zKHJl
c3VsdC5jb25uZWN0aW9uSWRlbnRpZmllcikpOworCisgICAgYXV0byByZWdpc3RyYXRpb24gPSBt
X3JlZ2lzdHJhdGlvbnMuZ2V0KHJlc3VsdC5yZWdpc3RyYXRpb25LZXkpOworICAgIGlmICghcmVn
aXN0cmF0aW9uKQorICAgICAgICByZXR1cm47CisKKyAgICByZWdpc3RyYXRpb24tPnNjcmlwdEZl
dGNoRmluaXNoZWQocmVzdWx0KTsKK30KKwogdm9pZCBTV1NlcnZlcjo6dGFza1RocmVhZEVudHJ5
UG9pbnQoKQogewogICAgIEFTU0VSVCghaXNNYWluVGhyZWFkKCkpOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL3NlcnZlci9TV1NlcnZlci5oIGIvU291cmNlL1dl
YkNvcmUvd29ya2Vycy9zZXJ2aWNlL3NlcnZlci9TV1NlcnZlci5oCmluZGV4IDliZDQwZjc0NjY2
Li5hMWZjNWQzMzk4OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNl
L3NlcnZlci9TV1NlcnZlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9z
ZXJ2ZXIvU1dTZXJ2ZXIuaApAQCAtNDMsNiArNDMsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAK
IGNsYXNzIFNXU2VydmVyUmVnaXN0cmF0aW9uOwogc3RydWN0IEV4Y2VwdGlvbkRhdGE7CitzdHJ1
Y3QgU2VydmljZVdvcmtlckZldGNoUmVzdWx0Owogc3RydWN0IFNlcnZpY2VXb3JrZXJSZWdpc3Ry
YXRpb25EYXRhOwogCiBjbGFzcyBTV1NlcnZlciB7CkBAIC01NywxMCArNTgsMTIgQEAgcHVibGlj
OgogICAgICAgICBTV1NlcnZlciYgc2VydmVyKCkgeyByZXR1cm4gbV9zZXJ2ZXI7IH0KIAogICAg
ICAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHNjaGVkdWxlSm9iSW5TZXJ2ZXIoY29uc3QgU2Vydmlj
ZVdvcmtlckpvYkRhdGEmKTsKKyAgICAgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBmaW5pc2hGZXRj
aGluZ1NjcmlwdEluU2VydmVyKGNvbnN0IFNlcnZpY2VXb3JrZXJGZXRjaFJlc3VsdCYpOwogCiAg
ICAgcHJpdmF0ZToKICAgICAgICAgdmlydHVhbCB2b2lkIHJlamVjdEpvYkluQ2xpZW50KHVpbnQ2
NF90IGpvYklkZW50aWZpZXIsIGNvbnN0IEV4Y2VwdGlvbkRhdGEmKSA9IDA7CiAgICAgICAgIHZp
cnR1YWwgdm9pZCByZXNvbHZlSm9iSW5DbGllbnQodWludDY0X3Qgam9iSWRlbnRpZmllciwgY29u
c3QgU2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbkRhdGEmKSA9IDA7CisgICAgICAgIHZpcnR1YWwg
dm9pZCBzdGFydFNjcmlwdEZldGNoSW5DbGllbnQodWludDY0X3Qgam9iSWRlbnRpZmllcikgPSAw
OwogCiAgICAgICAgIFNXU2VydmVyJiBtX3NlcnZlcjsKICAgICB9OwpAQCAtNzEsNiArNzQsOCBA
QCBwdWJsaWM6CiAgICAgdm9pZCBzY2hlZHVsZUpvYihjb25zdCBTZXJ2aWNlV29ya2VySm9iRGF0
YSYpOwogICAgIHZvaWQgcmVqZWN0Sm9iKGNvbnN0IFNlcnZpY2VXb3JrZXJKb2JEYXRhJiwgY29u
c3QgRXhjZXB0aW9uRGF0YSYpOwogICAgIHZvaWQgcmVzb2x2ZUpvYihjb25zdCBTZXJ2aWNlV29y
a2VySm9iRGF0YSYsIGNvbnN0IFNlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb25EYXRhJik7CisgICAg
dm9pZCBzdGFydFNjcmlwdEZldGNoKGNvbnN0IFNlcnZpY2VXb3JrZXJKb2JEYXRhJik7CisKICAg
ICB2b2lkIHBvc3RUYXNrKENyb3NzVGhyZWFkVGFzayYmKTsKICAgICB2b2lkIHBvc3RUYXNrUmVw
bHkoQ3Jvc3NUaHJlYWRUYXNrJiYpOwogCkBAIC04MSw2ICs4Niw4IEBAIHByaXZhdGU6CiAgICAg
dm9pZCB0YXNrVGhyZWFkRW50cnlQb2ludCgpOwogICAgIHZvaWQgaGFuZGxlVGFza1JlcGxpZXNP
bk1haW5UaHJlYWQoKTsKIAorICAgIHZvaWQgc2NyaXB0RmV0Y2hGaW5pc2hlZChjb25zdCBTZXJ2
aWNlV29ya2VyRmV0Y2hSZXN1bHQmKTsKKwogICAgIEhhc2hNYXA8dWludDY0X3QsIENvbm5lY3Rp
b24qPiBtX2Nvbm5lY3Rpb25zOwogICAgIEhhc2hNYXA8U2VydmljZVdvcmtlclJlZ2lzdHJhdGlv
bktleSwgc3RkOjp1bmlxdWVfcHRyPFNXU2VydmVyUmVnaXN0cmF0aW9uPj4gbV9yZWdpc3RyYXRp
b25zOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2Uvc2VydmVy
L1NXU2VydmVyUmVnaXN0cmF0aW9uLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2Vydmlj
ZS9zZXJ2ZXIvU1dTZXJ2ZXJSZWdpc3RyYXRpb24uY3BwCmluZGV4IDEwNTJiOWJhZGNkLi5kNTEx
ZGRkZGZkNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL3NlcnZl
ci9TV1NlcnZlclJlZ2lzdHJhdGlvbi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9z
ZXJ2aWNlL3NlcnZlci9TV1NlcnZlclJlZ2lzdHJhdGlvbi5jcHAKQEAgLTMyLDYgKzMyLDcgQEAK
ICNpbmNsdWRlICJTV1NlcnZlci5oIgogI2luY2x1ZGUgIlNXU2VydmVyV29ya2VyLmgiCiAjaW5j
bHVkZSAiU2VjdXJpdHlPcmlnaW4uaCIKKyNpbmNsdWRlICJTZXJ2aWNlV29ya2VyRmV0Y2hSZXN1
bHQuaCIKICNpbmNsdWRlICJTZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uRGF0YS5oIgogI2luY2x1
ZGUgIldvcmtlclR5cGUuaCIKIApAQCAtNjMsNiArNjQsMjIgQEAgdm9pZCBTV1NlcnZlclJlZ2lz
dHJhdGlvbjo6ZW5xdWV1ZUpvYihjb25zdCBTZXJ2aWNlV29ya2VySm9iRGF0YSYgam9iRGF0YSkK
ICAgICAgICAgbV9qb2JUaW1lci5zdGFydE9uZVNob3QoMF9zKTsKIH0KIAordm9pZCBTV1NlcnZl
clJlZ2lzdHJhdGlvbjo6c2NyaXB0RmV0Y2hGaW5pc2hlZChjb25zdCBTZXJ2aWNlV29ya2VyRmV0
Y2hSZXN1bHQmIHJlc3VsdCkKK3sKKyAgICBBU1NFUlQobV9jdXJyZW50Sm9iICYmIG1fY3VycmVu
dEpvYi0+aWRlbnRpZmllcigpID09IHJlc3VsdC5qb2JJZGVudGlmaWVyKTsKKworICAgIC8vIEZJ
WE1FOiBXZSBmZXRjaGVkIHRoZSBzY3JpcHQgY29udGVudHMgYnV0IGRvbid0IGRvIGFueXRoaW5n
IHdpdGggdGhlbSB5ZXQuCisgICAgLy8gVGhlc2UgZXJyb3JzIGFyZSBmb3IgdGVzdGluZyB0aGUg
Y3VycmVudCBzdGF0ZSBvZiB0aGUgZmVhdHVyZS4KKworICAgIFN0cmluZyBtZXNzYWdlOworICAg
IGlmIChyZXN1bHQuc2NyaXB0RXJyb3IuaXNOdWxsKCkpCisgICAgICAgIG1lc3NhZ2UgPSBtYWtl
U3RyaW5nKCJTY3JpcHQgVVJMICIsIG1fY3VycmVudEpvYi0+c2NyaXB0VVJMLnN0cmluZygpLCAi
IGZldGNoZWQgd2l0aCAiLCBTdHJpbmc6Om51bWJlcihyZXN1bHQuc2NyaXB0Lmxlbmd0aCgpKSwg
IiBjaGFyYWN0ZXJzLCBidXQgd2UncmUgbm90IHVzaW5nIHRoZSByZXN1bHQgeWV0Iik7CisgICAg
ZWxzZQorICAgICAgICBtZXNzYWdlID0gbWFrZVN0cmluZygiU2NyaXB0IFVSTCAiLCBtX2N1cnJl
bnRKb2ItPnNjcmlwdFVSTC5zdHJpbmcoKSwgIiBmZXRjaCByZXN1bHRlZCBpbiBlcnJvcjogIiwg
cmVzdWx0LnNjcmlwdEVycm9yLmxvY2FsaXplZERlc2NyaXB0aW9uKCkpOworCisgICAgcmVqZWN0
Q3VycmVudEpvYihFeGNlcHRpb25EYXRhIHsgVW5rbm93bkVycm9yLCBtZXNzYWdlIH0pOworfQor
CiB2b2lkIFNXU2VydmVyUmVnaXN0cmF0aW9uOjpzdGFydE5leHRKb2IoKQogewogICAgIEFTU0VS
VChpc01haW5UaHJlYWQoKSk7CkBAIC0xNDksOSArMTY2LDcgQEAgdm9pZCBTV1NlcnZlclJlZ2lz
dHJhdGlvbjo6cnVuVXBkYXRlSm9iKGNvbnN0IFNlcnZpY2VXb3JrZXJKb2JEYXRhJiBqb2IpCiAg
ICAgaWYgKG5ld2VzdFdvcmtlciAmJiAhZXF1YWxJZ25vcmluZ0ZyYWdtZW50SWRlbnRpZmllcihq
b2Iuc2NyaXB0VVJMLCBuZXdlc3RXb3JrZXItPnNjcmlwdFVSTCgpKSkKICAgICAgICAgcmV0dXJu
IHJlamVjdFdpdGhFeGNlcHRpb25Pbk1haW5UaHJlYWQoRXhjZXB0aW9uRGF0YSB7IFR5cGVFcnJv
ciwgQVNDSUlMaXRlcmFsKCJDYW5ub3QgdXBkYXRlIGEgc2VydmljZSB3b3JrZXIgd2l0aCBhIHJl
cXVlc3RlZCBzY3JpcHQgVVJMIHdob3NlIG5ld2VzdCB3b3JrZXIgaGFzIGEgZGlmZmVyZW50IHNj
cmlwdCBVUkwiKSB9KTsKIAotICAgIC8vIEZJWE1FOiBBdCB0aGlzIHBvaW50IHdlIGFyZSByZWFk
eSB0byBhY3R1YWxseSBmZXRjaCB0aGUgc2NyaXB0IGZvciB0aGUgd29ya2VyIGluIHRoZSByZWdp
c3RlcmluZyBjb250ZXh0LgotICAgIC8vIEZvciBub3cgd2UncmUgc3RpbGwgaGFyZCBjb2Rpbmcg
dGhlIHNhbWUgcmVqZWN0aW9uIHdlIGhhdmUgc28gZmFyLgotICAgIHJlamVjdFdpdGhFeGNlcHRp
b25Pbk1haW5UaHJlYWQoRXhjZXB0aW9uRGF0YSB7IFVua25vd25FcnJvciwgQVNDSUlMaXRlcmFs
KCJzZXJ2aWNlV29ya2VyIGpvYiBzY2hlZHVsaW5nIGlzIG5vdCB5ZXQgaW1wbGVtZW50ZWQiKSB9
KTsKKyAgICBzdGFydFNjcmlwdEZldGNoRnJvbU1haW5UaHJlYWQoKTsKIH0KIAogdm9pZCBTV1Nl
cnZlclJlZ2lzdHJhdGlvbjo6cmVqZWN0V2l0aEV4Y2VwdGlvbk9uTWFpblRocmVhZChjb25zdCBF
eGNlcHRpb25EYXRhJiBleGNlcHRpb24pCkBAIC0xNjYsNiArMTgxLDEyIEBAIHZvaWQgU1dTZXJ2
ZXJSZWdpc3RyYXRpb246OnJlc29sdmVXaXRoUmVnaXN0cmF0aW9uT25NYWluVGhyZWFkKCkKICAg
ICBtX3NlcnZlci5wb3N0VGFza1JlcGx5KGNyZWF0ZUNyb3NzVGhyZWFkVGFzaygqdGhpcywgJlNX
U2VydmVyUmVnaXN0cmF0aW9uOjpyZXNvbHZlQ3VycmVudEpvYiwgZGF0YSgpKSk7CiB9CiAKK3Zv
aWQgU1dTZXJ2ZXJSZWdpc3RyYXRpb246OnN0YXJ0U2NyaXB0RmV0Y2hGcm9tTWFpblRocmVhZCgp
Cit7CisgICAgQVNTRVJUKCFpc01haW5UaHJlYWQoKSk7CisgICAgbV9zZXJ2ZXIucG9zdFRhc2tS
ZXBseShjcmVhdGVDcm9zc1RocmVhZFRhc2soKnRoaXMsICZTV1NlcnZlclJlZ2lzdHJhdGlvbjo6
c3RhcnRTY3JpcHRGZXRjaEZvckN1cnJlbnRKb2IpKTsKK30KKwogdm9pZCBTV1NlcnZlclJlZ2lz
dHJhdGlvbjo6cmVqZWN0Q3VycmVudEpvYihjb25zdCBFeGNlcHRpb25EYXRhJiBleGNlcHRpb25E
YXRhKQogewogICAgIEFTU0VSVChpc01haW5UaHJlYWQoKSk7CkBAIC0xODYsNiArMjA3LDE0IEBA
IHZvaWQgU1dTZXJ2ZXJSZWdpc3RyYXRpb246OnJlc29sdmVDdXJyZW50Sm9iKGNvbnN0IFNlcnZp
Y2VXb3JrZXJSZWdpc3RyYXRpb25EYXRhCiAgICAgZmluaXNoQ3VycmVudEpvYigpOwogfQogCit2
b2lkIFNXU2VydmVyUmVnaXN0cmF0aW9uOjpzdGFydFNjcmlwdEZldGNoRm9yQ3VycmVudEpvYigp
Cit7CisgICAgQVNTRVJUKGlzTWFpblRocmVhZCgpKTsKKyAgICBBU1NFUlQobV9jdXJyZW50Sm9i
KTsKKworICAgIG1fc2VydmVyLnN0YXJ0U2NyaXB0RmV0Y2goKm1fY3VycmVudEpvYik7Cit9CisK
IHZvaWQgU1dTZXJ2ZXJSZWdpc3RyYXRpb246OmZpbmlzaEN1cnJlbnRKb2IoKQogewogICAgIEFT
U0VSVChtX2N1cnJlbnRKb2IpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9z
ZXJ2aWNlL3NlcnZlci9TV1NlcnZlclJlZ2lzdHJhdGlvbi5oIGIvU291cmNlL1dlYkNvcmUvd29y
a2Vycy9zZXJ2aWNlL3NlcnZlci9TV1NlcnZlclJlZ2lzdHJhdGlvbi5oCmluZGV4IDliNmVhYmYy
ZmEzLi5mNzY4NTQ2M2RlNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2
aWNlL3NlcnZlci9TV1NlcnZlclJlZ2lzdHJhdGlvbi5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3dv
cmtlcnMvc2VydmljZS9zZXJ2ZXIvU1dTZXJ2ZXJSZWdpc3RyYXRpb24uaApAQCAtMzgsNiArMzgs
NyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiBjbGFzcyBTV1NlcnZlcjsKIGNsYXNzIFNXU2VydmVy
V29ya2VyOwogc3RydWN0IEV4Y2VwdGlvbkRhdGE7CitzdHJ1Y3QgU2VydmljZVdvcmtlckZldGNo
UmVzdWx0OwogCiBjbGFzcyBTV1NlcnZlclJlZ2lzdHJhdGlvbiA6IHB1YmxpYyBUaHJlYWRTYWZl
SWRlbnRpZmllZDxTV1NlcnZlclJlZ2lzdHJhdGlvbj4gewogcHVibGljOgpAQCAtNDYsNiArNDcs
NyBAQCBwdWJsaWM6CiAgICAgflNXU2VydmVyUmVnaXN0cmF0aW9uKCk7CiAKICAgICB2b2lkIGVu
cXVldWVKb2IoY29uc3QgU2VydmljZVdvcmtlckpvYkRhdGEmKTsKKyAgICB2b2lkIHNjcmlwdEZl
dGNoRmluaXNoZWQoY29uc3QgU2VydmljZVdvcmtlckZldGNoUmVzdWx0Jik7CiAKICAgICBTZXJ2
aWNlV29ya2VyUmVnaXN0cmF0aW9uRGF0YSBkYXRhKCkgY29uc3Q7CiAKQEAgLTU0LDYgKzU2LDcg
QEAgcHJpdmF0ZToKICAgICB2b2lkIHN0YXJ0TmV4dEpvYigpOwogICAgIHZvaWQgcmVqZWN0Q3Vy
cmVudEpvYihjb25zdCBFeGNlcHRpb25EYXRhJik7CiAgICAgdm9pZCByZXNvbHZlQ3VycmVudEpv
Yihjb25zdCBTZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uRGF0YSYpOworICAgIHZvaWQgc3RhcnRT
Y3JpcHRGZXRjaEZvckN1cnJlbnRKb2IoKTsKICAgICB2b2lkIGZpbmlzaEN1cnJlbnRKb2IoKTsK
IAogICAgIHZvaWQgcnVuUmVnaXN0ZXJKb2IoY29uc3QgU2VydmljZVdvcmtlckpvYkRhdGEmKTsK
QEAgLTYxLDYgKzY0LDcgQEAgcHJpdmF0ZToKIAogICAgIHZvaWQgcmVqZWN0V2l0aEV4Y2VwdGlv
bk9uTWFpblRocmVhZChjb25zdCBFeGNlcHRpb25EYXRhJik7CiAgICAgdm9pZCByZXNvbHZlV2l0
aFJlZ2lzdHJhdGlvbk9uTWFpblRocmVhZCgpOworICAgIHZvaWQgc3RhcnRTY3JpcHRGZXRjaEZy
b21NYWluVGhyZWFkKCk7CiAgICAgYm9vbCBpc0VtcHR5KCk7CiAgICAgU1dTZXJ2ZXJXb3JrZXIq
IGdldE5ld2VzdFdvcmtlcigpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxv
ZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDQyNDE3OGYwYWQzLi43NmFlNWE4YTFh
MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktp
dC9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyMCBAQAorMjAxNy0xMC0wNSAgQnJhZHkgRWlkc29uICA8
YmVpZHNvbkBhcHBsZS5jb20+CisKKyAgICAgICAgQWRkIChlbnRpcmVseSBpbmNvcnJlY3QpIGZl
dGNoaW5nIG9mIFNlcnZpY2VXb3JrZXIgc2NyaXB0cy4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE3NjE3OQorCisgICAgICAgIFJldmlld2VkIGJ5IEFu
ZHkgRXN0ZXMuCisKKyAgICAgICAgKiBTdG9yYWdlUHJvY2Vzcy9TZXJ2aWNlV29ya2VyL1dlYlNX
U2VydmVyQ29ubmVjdGlvbi5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlNXU2VydmVyQ29ubmVj
dGlvbjo6c3RhcnRTY3JpcHRGZXRjaEluQ2xpZW50KToKKyAgICAgICAgKiBTdG9yYWdlUHJvY2Vz
cy9TZXJ2aWNlV29ya2VyL1dlYlNXU2VydmVyQ29ubmVjdGlvbi5oOgorICAgICAgICAqIFN0b3Jh
Z2VQcm9jZXNzL1NlcnZpY2VXb3JrZXIvV2ViU1dTZXJ2ZXJDb25uZWN0aW9uLm1lc3NhZ2VzLmlu
OgorCisgICAgICAgICogV2ViUHJvY2Vzcy9TdG9yYWdlL1dlYlNXQ2xpZW50Q29ubmVjdGlvbi5j
cHA6CisgICAgICAgIChXZWJLaXQ6OldlYlNXQ2xpZW50Q29ubmVjdGlvbjo6ZmluaXNoRmV0Y2hp
bmdTY3JpcHRJblNlcnZlcik6CisgICAgICAgICogV2ViUHJvY2Vzcy9TdG9yYWdlL1dlYlNXQ2xp
ZW50Q29ubmVjdGlvbi5oOgorICAgICAgICAqIFdlYlByb2Nlc3MvU3RvcmFnZS9XZWJTV0NsaWVu
dENvbm5lY3Rpb24ubWVzc2FnZXMuaW46CisKIDIwMTctMTAtMDUgIFRpbSBIb3J0b24gIDx0aW1v
dGh5X2hvcnRvbkBhcHBsZS5jb20+CiAKICAgICAgICAgTWFrZSBwcm9ncmVzcyB0b3dhcmQgcHJv
cGVybHktZm9ybWVkIFhQQyBzZXJ2aWNlcyBpbiB0aGUgTWFjIENNYWtlIGJ1aWxkCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L1N0b3JhZ2VQcm9jZXNzL1NlcnZpY2VXb3JrZXIvV2ViU1dTZXJ2
ZXJDb25uZWN0aW9uLmNwcCBiL1NvdXJjZS9XZWJLaXQvU3RvcmFnZVByb2Nlc3MvU2VydmljZVdv
cmtlci9XZWJTV1NlcnZlckNvbm5lY3Rpb24uY3BwCmluZGV4IGRhMjE1ZjFiN2YyLi5kOGU2YzI0
NWY0ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9TdG9yYWdlUHJvY2Vzcy9TZXJ2aWNlV29y
a2VyL1dlYlNXU2VydmVyQ29ubmVjdGlvbi5jcHAKKysrIGIvU291cmNlL1dlYktpdC9TdG9yYWdl
UHJvY2Vzcy9TZXJ2aWNlV29ya2VyL1dlYlNXU2VydmVyQ29ubmVjdGlvbi5jcHAKQEAgLTI4LDYg
KzI4LDcgQEAKIAogI2lmIEVOQUJMRShTRVJWSUNFX1dPUktFUikKIAorI2luY2x1ZGUgIkRhdGFS
ZWZlcmVuY2UuaCIKICNpbmNsdWRlICJMb2dnaW5nLmgiCiAjaW5jbHVkZSAiU3RvcmFnZVRvV2Vi
UHJvY2Vzc0Nvbm5lY3Rpb25NZXNzYWdlcy5oIgogI2luY2x1ZGUgIldlYlByb2Nlc3MuaCIKQEAg
LTcwLDYgKzcxLDExIEBAIHZvaWQgV2ViU1dTZXJ2ZXJDb25uZWN0aW9uOjpyZXNvbHZlSm9iSW5D
bGllbnQodWludDY0X3Qgam9iSWRlbnRpZmllciwgY29uc3QgU2VyCiAgICAgc2VuZChNZXNzYWdl
czo6V2ViU1dDbGllbnRDb25uZWN0aW9uOjpKb2JSZXNvbHZlZEluU2VydmVyKGpvYklkZW50aWZp
ZXIsIHJlZ2lzdHJhdGlvbkRhdGEpKTsKIH0KIAordm9pZCBXZWJTV1NlcnZlckNvbm5lY3Rpb246
OnN0YXJ0U2NyaXB0RmV0Y2hJbkNsaWVudCh1aW50NjRfdCBqb2JJZGVudGlmaWVyKQoreworICAg
IHNlbmQoTWVzc2FnZXM6OldlYlNXQ2xpZW50Q29ubmVjdGlvbjo6U3RhcnRTY3JpcHRGZXRjaEZv
clNlcnZlcihqb2JJZGVudGlmaWVyKSk7Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdlYktpdAogCiAj
ZW5kaWYgLy8gRU5BQkxFKFNFUlZJQ0VfV09SS0VSKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9TdG9yYWdlUHJvY2Vzcy9TZXJ2aWNlV29ya2VyL1dlYlNXU2VydmVyQ29ubmVjdGlvbi5oIGIv
U291cmNlL1dlYktpdC9TdG9yYWdlUHJvY2Vzcy9TZXJ2aWNlV29ya2VyL1dlYlNXU2VydmVyQ29u
bmVjdGlvbi5oCmluZGV4IGM4NzkyNTE0ZWQ3Li5iM2NlNzZjOTVlOSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9TdG9yYWdlUHJvY2Vzcy9TZXJ2aWNlV29ya2VyL1dlYlNXU2VydmVyQ29ubmVj
dGlvbi5oCisrKyBiL1NvdXJjZS9XZWJLaXQvU3RvcmFnZVByb2Nlc3MvU2VydmljZVdvcmtlci9X
ZWJTV1NlcnZlckNvbm5lY3Rpb24uaApAQCAtNTEsNiArNTEsNyBAQCBwcml2YXRlOgogICAgIC8v
IEltcGxlbWVudCBTV1NlcnZlcjo6Q29ubmVjdGlvbgogICAgIHZvaWQgcmVqZWN0Sm9iSW5DbGll
bnQodWludDY0X3Qgam9iSWRlbnRpZmllciwgY29uc3QgV2ViQ29yZTo6RXhjZXB0aW9uRGF0YSYp
IGZpbmFsOwogICAgIHZvaWQgcmVzb2x2ZUpvYkluQ2xpZW50KHVpbnQ2NF90IGpvYklkZW50aWZp
ZXIsIGNvbnN0IFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb25EYXRhJikgZmluYWw7
CisgICAgdm9pZCBzdGFydFNjcmlwdEZldGNoSW5DbGllbnQodWludDY0X3Qgam9iSWRlbnRpZmll
cikgZmluYWw7CiAKICAgICBJUEM6OkNvbm5lY3Rpb24qIG1lc3NhZ2VTZW5kZXJDb25uZWN0aW9u
KCkgZmluYWwgeyByZXR1cm4gbV9jb25uZWN0aW9uLnB0cigpOyB9CiAgICAgdWludDY0X3QgbWVz
c2FnZVNlbmRlckRlc3RpbmF0aW9uSUQoKSBmaW5hbCB7IHJldHVybiBpZGVudGlmaWVyKCk7IH0K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU3RvcmFnZVByb2Nlc3MvU2VydmljZVdvcmtlci9X
ZWJTV1NlcnZlckNvbm5lY3Rpb24ubWVzc2FnZXMuaW4gYi9Tb3VyY2UvV2ViS2l0L1N0b3JhZ2VQ
cm9jZXNzL1NlcnZpY2VXb3JrZXIvV2ViU1dTZXJ2ZXJDb25uZWN0aW9uLm1lc3NhZ2VzLmluCmlu
ZGV4IDA1NzFjNGQ2MmRjLi5lNGNmYjk2MDVhNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9T
dG9yYWdlUHJvY2Vzcy9TZXJ2aWNlV29ya2VyL1dlYlNXU2VydmVyQ29ubmVjdGlvbi5tZXNzYWdl
cy5pbgorKysgYi9Tb3VyY2UvV2ViS2l0L1N0b3JhZ2VQcm9jZXNzL1NlcnZpY2VXb3JrZXIvV2Vi
U1dTZXJ2ZXJDb25uZWN0aW9uLm1lc3NhZ2VzLmluCkBAIC0yNSw2ICsyNSw3IEBACiBtZXNzYWdl
cyAtPiBXZWJTV1NlcnZlckNvbm5lY3Rpb24gewogICAgICMgV2hlbiBwb3NzaWJsZSwgdGhlc2Ug
bWVzc2FnZXMgY2FuIGJlIGltcGxlbWVudGVkIGRpcmVjdGx5IGJ5IFdlYkNvcmU6OlNXQ2xpZW50
Q29ubmVjdGlvbgogICAgIFNjaGVkdWxlSm9iSW5TZXJ2ZXIoc3RydWN0IFdlYkNvcmU6OlNlcnZp
Y2VXb3JrZXJKb2JEYXRhIGpvYkRhdGEpCisgICAgRmluaXNoRmV0Y2hpbmdTY3JpcHRJblNlcnZl
cihzdHJ1Y3QgV2ViQ29yZTo6U2VydmljZVdvcmtlckZldGNoUmVzdWx0IHJlc3VsdCkKIH0KIAog
I2VuZGlmIC8vIEVOQUJMRShTRVJWSUNFX1dPUktFUikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9TdG9yYWdlL1dlYlNXQ2xpZW50Q29ubmVjdGlvbi5jcHAgYi9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvU3RvcmFnZS9XZWJTV0NsaWVudENvbm5lY3Rpb24uY3BwCmluZGV4
IDE4MjY0OWE2NjJjLi5iYjNkYjZiNTM4MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL1N0b3JhZ2UvV2ViU1dDbGllbnRDb25uZWN0aW9uLmNwcAorKysgYi9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvU3RvcmFnZS9XZWJTV0NsaWVudENvbm5lY3Rpb24uY3BwCkBAIC0zMCw3
ICszMCw5IEBACiAKICNpbmNsdWRlICJMb2dnaW5nLmgiCiAjaW5jbHVkZSAiU3RvcmFnZVRvV2Vi
UHJvY2Vzc0Nvbm5lY3Rpb25NZXNzYWdlcy5oIgorI2luY2x1ZGUgIldlYkNvcmVBcmd1bWVudENv
ZGVycy5oIgogI2luY2x1ZGUgIldlYlNXU2VydmVyQ29ubmVjdGlvbk1lc3NhZ2VzLmgiCisjaW5j
bHVkZSA8V2ViQ29yZS9TZXJ2aWNlV29ya2VyRmV0Y2hSZXN1bHQuaD4KICNpbmNsdWRlIDxXZWJD
b3JlL1NlcnZpY2VXb3JrZXJKb2JEYXRhLmg+CiAKIHVzaW5nIG5hbWVzcGFjZSBQQUw7CkBAIC01
Niw2ICs1OCwxMSBAQCB2b2lkIFdlYlNXQ2xpZW50Q29ubmVjdGlvbjo6c2NoZWR1bGVKb2JJblNl
cnZlcihjb25zdCBTZXJ2aWNlV29ya2VySm9iRGF0YSYgam9iRAogICAgIHNlbmQoTWVzc2FnZXM6
OldlYlNXU2VydmVyQ29ubmVjdGlvbjo6U2NoZWR1bGVKb2JJblNlcnZlcihqb2JEYXRhKSk7CiB9
CiAKK3ZvaWQgV2ViU1dDbGllbnRDb25uZWN0aW9uOjpmaW5pc2hGZXRjaGluZ1NjcmlwdEluU2Vy
dmVyKGNvbnN0IFNlcnZpY2VXb3JrZXJGZXRjaFJlc3VsdCYgcmVzdWx0KQoreworICAgIHNlbmQo
TWVzc2FnZXM6OldlYlNXU2VydmVyQ29ubmVjdGlvbjo6RmluaXNoRmV0Y2hpbmdTY3JpcHRJblNl
cnZlcihyZXN1bHQpKTsKK30KKwogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CiAKICNlbmRpZiAvLyBF
TkFCTEUoU0VSVklDRV9XT1JLRVIpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvU3RvcmFnZS9XZWJTV0NsaWVudENvbm5lY3Rpb24uaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9TdG9yYWdlL1dlYlNXQ2xpZW50Q29ubmVjdGlvbi5oCmluZGV4IDUxZGU0YmJiNjYzLi40
NGFmNzc5MTlkNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1N0b3JhZ2Uv
V2ViU1dDbGllbnRDb25uZWN0aW9uLmgKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1N0
b3JhZ2UvV2ViU1dDbGllbnRDb25uZWN0aW9uLmgKQEAgLTQ4LDYgKzQ4LDcgQEAgcHVibGljOgog
ICAgIHVpbnQ2NF90IGlkZW50aWZpZXIoKSBjb25zdCBmaW5hbCB7IHJldHVybiBtX2lkZW50aWZp
ZXI7IH0KIAogICAgIHZvaWQgc2NoZWR1bGVKb2JJblNlcnZlcihjb25zdCBXZWJDb3JlOjpTZXJ2
aWNlV29ya2VySm9iRGF0YSYpIGZpbmFsOworICAgIHZvaWQgZmluaXNoRmV0Y2hpbmdTY3JpcHRJ
blNlcnZlcihjb25zdCBXZWJDb3JlOjpTZXJ2aWNlV29ya2VyRmV0Y2hSZXN1bHQmKSBmaW5hbDsK
IAogICAgIHZvaWQgZGlzY29ubmVjdGVkRnJvbVdlYlByb2Nlc3MoKTsKICAgICB2b2lkIGRpZFJl
Y2VpdmVNZXNzYWdlKElQQzo6Q29ubmVjdGlvbiYsIElQQzo6RGVjb2RlciYpIGZpbmFsOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1N0b3JhZ2UvV2ViU1dDbGllbnRDb25u
ZWN0aW9uLm1lc3NhZ2VzLmluIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1N0b3JhZ2UvV2Vi
U1dDbGllbnRDb25uZWN0aW9uLm1lc3NhZ2VzLmluCmluZGV4IGFkZWY5OWFlZjA5Li40MGY3NzMw
Yzg2NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1N0b3JhZ2UvV2ViU1dD
bGllbnRDb25uZWN0aW9uLm1lc3NhZ2VzLmluCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9TdG9yYWdlL1dlYlNXQ2xpZW50Q29ubmVjdGlvbi5tZXNzYWdlcy5pbgpAQCAtMjYsNiArMjYs
NyBAQCBtZXNzYWdlcyAtPiBXZWJTV0NsaWVudENvbm5lY3Rpb24gewogICAgICMgV2hlbiBwb3Nz
aWJsZSwgdGhlc2UgbWVzc2FnZXMgY2FuIGJlIGltcGxlbWVudGVkIGRpcmVjdGx5IGJ5IFdlYkNv
cmU6OlNXU2VydmVyOjpDb25uZWN0aW9uCiAgICAgSm9iUmVqZWN0ZWRJblNlcnZlcih1aW50NjRf
dCBpZGVudGlmaWVyLCBzdHJ1Y3QgV2ViQ29yZTo6RXhjZXB0aW9uRGF0YSBleGNlcHRpb24pCiAg
ICAgSm9iUmVzb2x2ZWRJblNlcnZlcih1aW50NjRfdCBpZGVudGlmaWVyLCBzdHJ1Y3QgV2ViQ29y
ZTo6U2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbkRhdGEgcmVnaXN0cmF0aW9uKQorICAgIFN0YXJ0
U2NyaXB0RmV0Y2hGb3JTZXJ2ZXIodWludDY0X3Qgam9iSWRlbnRpZmllcikKIH0KIAogI2VuZGlm
IC8vIEVOQUJMRShTRVJWSUNFX1dPUktFUikK
</data>

          </attachment>
      

    </bug>

</bugzilla>