<?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>180669</bug_id>
          
          <creation_ts>2017-12-11 13:49:33 -0800</creation_ts>
          <short_desc>Merge ServiceWorkerClientIdentifier into ServiceWorkerClientData</short_desc>
          <delta_ts>2017-12-11 16:59:23 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>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=180683</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="Chris Dumez">cdumez</reporter>
          <assigned_to name="Chris Dumez">cdumez</assigned_to>
          <cc>beidson</cc>
    
    <cc>commit-queue</cc>
    
    <cc>dbates</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>kangil.han</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>youennf</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1380379</commentid>
    <comment_count>0</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2017-12-11 13:49:33 -0800</bug_when>
    <thetext>Merge ServiceWorkerClientIdentifier into ServiceWorkerCientData, for consistency with ServiceWorkerIdentifier / ServiceWorkerData, and start simplifying the postMessage() code.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1380384</commentid>
    <comment_count>1</comment_count>
      <attachid>329030</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2017-12-11 13:58:57 -0800</bug_when>
    <thetext>Created attachment 329030
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1380385</commentid>
    <comment_count>2</comment_count>
      <attachid>329031</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2017-12-11 14:00:25 -0800</bug_when>
    <thetext>Created attachment 329031
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1380407</commentid>
    <comment_count>3</comment_count>
      <attachid>329031</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2017-12-11 14:56:22 -0800</bug_when>
    <thetext>Comment on attachment 329031
Patch

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

&gt; Source/WebCore/dom/Document.cpp:7630
&gt; +        m_serviceWorkerConnection-&gt;unregisterServiceWorkerClient({ m_serviceWorkerConnection-&gt;serverConnectionIdentifier(), identifier() });

I wonder whether we should not have made SWClientConnection only take DocumentIdentifier and do the translation to ServiceWorkerClientIdentifier on its own.
Maybe this is too late for that. If not we could stick with passing a DocumentIdentifier to unregisterServieWorkerClient.

&gt; Source/WebCore/workers/service/ServiceWorkerClientData.cpp:65
&gt; +    RELEASE_ASSERT(isDocument); // We do not support dedicated workers as clients yet.

Isn&apos;t the downcast&lt;Document&gt; doing this release assert already?

&gt; Source/WebCore/workers/service/context/ServiceWorkerThread.cpp:121
&gt; +            auto sourceClient = ServiceWorkerClient::getOrCreate(serviceWorkerGlobalScope, WTFMove(WTF::get&lt;ServiceWorkerClientData&gt;(sourceData)));

Maybe use RefPtr&lt;ServiceWorkerClient&gt; here instead of auto so that there is not the need for it below for source =...?

&gt; Source/WebKit/StorageProcess/ServiceWorker/WebSWServerConnection.h:93
&gt; +    void unregisterServiceWorkerClient(const WebCore::ServiceWorkerClientIdentifier&amp;);

Sometimes we are using const ServiceWorkerClientIdentifier&amp;, sometimes ServiceWorkerClientIdentifier directly.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1380412</commentid>
    <comment_count>4</comment_count>
      <attachid>329031</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2017-12-11 15:02:20 -0800</bug_when>
    <thetext>Comment on attachment 329031
Patch

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

&gt;&gt; Source/WebCore/workers/service/ServiceWorkerClientData.cpp:65
&gt;&gt; +    RELEASE_ASSERT(isDocument); // We do not support dedicated workers as clients yet.
&gt; 
&gt; Isn&apos;t the downcast&lt;Document&gt; doing this release assert already?

Nah, only a ASSERT_WITH_SECURITY_IMPLICATION() (i.e. debug only)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1380417</commentid>
    <comment_count>5</comment_count>
      <attachid>329042</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2017-12-11 15:08:45 -0800</bug_when>
    <thetext>Created attachment 329042
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1380426</commentid>
    <comment_count>6</comment_count>
      <attachid>329042</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2017-12-11 15:24:57 -0800</bug_when>
    <thetext>Comment on attachment 329042
Patch

Clearing flags on attachment: 329042

Committed r225760: &lt;https://trac.webkit.org/changeset/225760&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1380427</commentid>
    <comment_count>7</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2017-12-11 15:24:58 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1380428</commentid>
    <comment_count>8</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2017-12-11 15:25:25 -0800</bug_when>
    <thetext>&lt;rdar://problem/35980151&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>329030</attachid>
            <date>2017-12-11 13:58:57 -0800</date>
            <delta_ts>2017-12-11 14:00:24 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-180669-20171211135857.patch</filename>
            <type>text/plain</type>
            <size>71029</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjI1NzQyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYjA3OTdkOGViN2Y4ZDIz
ZWFkMzFiODU4ZGI0MzcxZTBhMjg1N2M4Mi4uYzhjYjQwYmUyYjJlZDllY2NjZGNkMDI3M2NlZmUw
ZjY0OTc3NzAzNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDU0IEBACisyMDE3LTEyLTExICBDaHJp
cyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgTWVyZ2UgU2VydmljZVdvcmtl
ckNsaWVudElkZW50aWZpZXIgaW50byBTZXJ2aWNlV29ya2VyQ2llbnREYXRhCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xODA2NjkKKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBNZXJnZSBTZXJ2aWNlV29ya2Vy
Q2xpZW50SWRlbnRpZmllciBpbnRvIFNlcnZpY2VXb3JrZXJDaWVudERhdGEsIGZvciBjb25zaXN0
ZW5jeSB3aXRoCisgICAgICAgIFNlcnZpY2VXb3JrZXJJZGVudGlmaWVyIC8gU2VydmljZVdvcmtl
ckRhdGEsIGFuZCBzdGFydCBzaW1wbGlmeWluZyB0aGUgcG9zdE1lc3NhZ2UoKSBjb2RlLgorCisg
ICAgICAgICogV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAqIGRv
bS9Eb2N1bWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVudDo6c2V0U2VydmljZVdv
cmtlckNvbm5lY3Rpb24pOgorICAgICAgICAqIHdvcmtlcnMvc2VydmljZS9TV0NsaWVudENvbm5l
Y3Rpb24uaDoKKyAgICAgICAgKiB3b3JrZXJzL3NlcnZpY2UvU2VydmljZVdvcmtlci5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpTZXJ2aWNlV29ya2VyOjpwb3N0TWVzc2FnZSk6CisgICAgICAgICog
d29ya2Vycy9zZXJ2aWNlL1NlcnZpY2VXb3JrZXJDbGllbnQuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6U2VydmljZVdvcmtlckNsaWVudDo6Z2V0T3JDcmVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6
U2VydmljZVdvcmtlckNsaWVudDo6U2VydmljZVdvcmtlckNsaWVudCk6CisgICAgICAgICogd29y
a2Vycy9zZXJ2aWNlL1NlcnZpY2VXb3JrZXJDbGllbnQuaDoKKyAgICAgICAgKFdlYkNvcmU6OlNl
cnZpY2VXb3JrZXJDbGllbnQ6OmlkZW50aWZpZXIgY29uc3QpOgorICAgICAgICAqIHdvcmtlcnMv
c2VydmljZS9TZXJ2aWNlV29ya2VyQ2xpZW50RGF0YS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpT
ZXJ2aWNlV29ya2VyQ2xpZW50RGF0YTo6aXNvbGF0ZWRDb3B5IGNvbnN0KToKKyAgICAgICAgKFdl
YkNvcmU6OlNlcnZpY2VXb3JrZXJDbGllbnREYXRhOjpmcm9tKToKKyAgICAgICAgKiB3b3JrZXJz
L3NlcnZpY2UvU2VydmljZVdvcmtlckNsaWVudERhdGEuaDoKKyAgICAgICAgKFdlYkNvcmU6OlNl
cnZpY2VXb3JrZXJDbGllbnREYXRhOjplbmNvZGUgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6
U2VydmljZVdvcmtlckNsaWVudERhdGE6OmRlY29kZSk6CisgICAgICAgICogd29ya2Vycy9zZXJ2
aWNlL1NlcnZpY2VXb3JrZXJDbGllbnRJbmZvcm1hdGlvbi5oOiBSZW1vdmVkLgorICAgICAgICAq
IHdvcmtlcnMvc2VydmljZS9TZXJ2aWNlV29ya2VyQ2xpZW50cy5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpkaWRGaW5pc2hHZXRSZXF1ZXN0KToKKyAgICAgICAgKFdlYkNvcmU6OlNlcnZpY2VXb3Jr
ZXJDbGllbnRzOjpnZXQpOgorICAgICAgICAoV2ViQ29yZTo6bWF0Y2hBbGxDb21wbGV0ZWQpOgor
ICAgICAgICAqIHdvcmtlcnMvc2VydmljZS9TZXJ2aWNlV29ya2VyVHlwZXMuaDoKKyAgICAgICAg
KiB3b3JrZXJzL3NlcnZpY2UvU2VydmljZVdvcmtlcldpbmRvd0NsaWVudC5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpTZXJ2aWNlV29ya2VyV2luZG93Q2xpZW50OjpTZXJ2aWNlV29ya2VyV2luZG93
Q2xpZW50KToKKyAgICAgICAgKiB3b3JrZXJzL3NlcnZpY2UvU2VydmljZVdvcmtlcldpbmRvd0Ns
aWVudC5oOgorICAgICAgICAqIHdvcmtlcnMvc2VydmljZS9jb250ZXh0L1NXQ29udGV4dE1hbmFn
ZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U1dDb250ZXh0TWFuYWdlcjo6cG9zdE1lc3NhZ2VU
b1NlcnZpY2VXb3JrZXIpOgorICAgICAgICAqIHdvcmtlcnMvc2VydmljZS9jb250ZXh0L1NXQ29u
dGV4dE1hbmFnZXIuaDoKKyAgICAgICAgKiB3b3JrZXJzL3NlcnZpY2UvY29udGV4dC9TZXJ2aWNl
V29ya2VyVGhyZWFkLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJUaHJlYWQ6
OnBvc3RNZXNzYWdlVG9TZXJ2aWNlV29ya2VyKToKKyAgICAgICAgKiB3b3JrZXJzL3NlcnZpY2Uv
Y29udGV4dC9TZXJ2aWNlV29ya2VyVGhyZWFkLmg6CisgICAgICAgICogd29ya2Vycy9zZXJ2aWNl
L3NlcnZlci9TV1NlcnZlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTV1NlcnZlcjo6ZmluZENs
aWVudEJ5SWRlbnRpZmllcik6CisgICAgICAgIChXZWJDb3JlOjpTV1NlcnZlcjo6bWF0Y2hBbGwp
OgorICAgICAgICAoV2ViQ29yZTo6U1dTZXJ2ZXI6OmNsYWltKToKKyAgICAgICAgKFdlYkNvcmU6
OlNXU2VydmVyOjpyZWdpc3RlclNlcnZpY2VXb3JrZXJDbGllbnQpOgorICAgICAgICAqIHdvcmtl
cnMvc2VydmljZS9zZXJ2ZXIvU1dTZXJ2ZXIuaDoKKyAgICAgICAgKiB3b3JrZXJzL3NlcnZpY2Uv
c2VydmVyL1NXU2VydmVyVG9Db250ZXh0Q29ubmVjdGlvbi5oOgorICAgICAgICAqIHdvcmtlcnMv
c2VydmljZS9zZXJ2ZXIvU1dTZXJ2ZXJXb3JrZXIuaDoKKwogMjAxNy0xMi0xMSAgTWFudWVsIFJl
Z28gQ2FzYXNub3ZhcyAgPHJlZ29AaWdhbGlhLmNvbT4KIAogICAgICAgICBSRUdSRVNTSU9OKHIy
MjE5MzEpOiBSb3cgc3RyZXRjaCBkb2Vzbid0IHdvcmsgZm9yIGdyaWQgY29udGFpbmVyIHdpdGgg
bWluLWhlaWdodApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cgYi9Tb3VyY2Uv
V2ViS2l0L0NoYW5nZUxvZwppbmRleCAwZDlkOWIxYzkxZjQ4MDcxNjY1NjA2MzlhZWE3YzcyODMw
MDUxNTc1Li43M2ZhYmU2ODFlOTAzZWFmNDhhMjA1OGJhM2YzMzJlNTMwMTJjMzE1IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxv
ZwpAQCAtMSwzICsxLDQxIEBACisyMDE3LTEyLTExICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBs
ZS5jb20+CisKKyAgICAgICAgTWVyZ2UgU2VydmljZVdvcmtlckNsaWVudElkZW50aWZpZXIgaW50
byBTZXJ2aWNlV29ya2VyQ2llbnREYXRhCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD0xODA2NjkKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9P
UFMhKS4KKworICAgICAgICBNZXJnZSBTZXJ2aWNlV29ya2VyQ2xpZW50SWRlbnRpZmllciBpbnRv
IFNlcnZpY2VXb3JrZXJDaWVudERhdGEsIGZvciBjb25zaXN0ZW5jeSB3aXRoCisgICAgICAgIFNl
cnZpY2VXb3JrZXJJZGVudGlmaWVyIC8gU2VydmljZVdvcmtlckRhdGEsIGFuZCBzdGFydCBzaW1w
bGlmeWluZyB0aGUgcG9zdE1lc3NhZ2UoKSBjb2RlLgorCisgICAgICAgICogU2NyaXB0cy93ZWJr
aXQvbWVzc2FnZXMucHk6CisgICAgICAgIChmb3J3YXJkX2RlY2xhcmF0aW9uc19hbmRfaGVhZGVy
cyk6CisgICAgICAgIChoZWFkZXJzX2Zvcl90eXBlKToKKyAgICAgICAgKiBTaGFyZWQvV2ViQ29y
ZUFyZ3VtZW50Q29kZXJzLmNwcDoKKyAgICAgICAgKElQQzo6QXJndW1lbnRDb2RlcjxTZXJ2aWNl
V29ya2VyT3JDbGllbnREYXRhPjo6ZW5jb2RlKToKKyAgICAgICAgKElQQzo6QXJndW1lbnRDb2Rl
cjxTZXJ2aWNlV29ya2VyT3JDbGllbnREYXRhPjo6ZGVjb2RlKToKKyAgICAgICAgKiBTaGFyZWQv
V2ViQ29yZUFyZ3VtZW50Q29kZXJzLmg6CisgICAgICAgICogU3RvcmFnZVByb2Nlc3MvU2Vydmlj
ZVdvcmtlci9XZWJTV1NlcnZlckNvbm5lY3Rpb24uY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJT
V1NlcnZlckNvbm5lY3Rpb246On5XZWJTV1NlcnZlckNvbm5lY3Rpb24pOgorICAgICAgICAoV2Vi
S2l0OjpXZWJTV1NlcnZlckNvbm5lY3Rpb246OnBvc3RNZXNzYWdlVG9TZXJ2aWNlV29ya2VyRnJv
bUNsaWVudCk6CisgICAgICAgIChXZWJLaXQ6OldlYlNXU2VydmVyQ29ubmVjdGlvbjo6cG9zdE1l
c3NhZ2VUb1NlcnZpY2VXb3JrZXJGcm9tU2VydmljZVdvcmtlcik6CisgICAgICAgIChXZWJLaXQ6
OldlYlNXU2VydmVyQ29ubmVjdGlvbjo6cmVnaXN0ZXJTZXJ2aWNlV29ya2VyQ2xpZW50KToKKyAg
ICAgICAgKFdlYktpdDo6V2ViU1dTZXJ2ZXJDb25uZWN0aW9uOjp1bnJlZ2lzdGVyU2VydmljZVdv
cmtlckNsaWVudCk6CisgICAgICAgICogU3RvcmFnZVByb2Nlc3MvU2VydmljZVdvcmtlci9XZWJT
V1NlcnZlckNvbm5lY3Rpb24uaDoKKyAgICAgICAgKiBTdG9yYWdlUHJvY2Vzcy9TZXJ2aWNlV29y
a2VyL1dlYlNXU2VydmVyQ29ubmVjdGlvbi5tZXNzYWdlcy5pbjoKKyAgICAgICAgKiBTdG9yYWdl
UHJvY2Vzcy9TZXJ2aWNlV29ya2VyL1dlYlNXU2VydmVyVG9Db250ZXh0Q29ubmVjdGlvbi5jcHA6
CisgICAgICAgIChXZWJLaXQ6OldlYlNXU2VydmVyVG9Db250ZXh0Q29ubmVjdGlvbjo6bWF0Y2hB
bGxDb21wbGV0ZWQpOgorICAgICAgICAqIFN0b3JhZ2VQcm9jZXNzL1NlcnZpY2VXb3JrZXIvV2Vi
U1dTZXJ2ZXJUb0NvbnRleHRDb25uZWN0aW9uLmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9TdG9y
YWdlL1dlYlNXQ2xpZW50Q29ubmVjdGlvbi5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlNXQ2xp
ZW50Q29ubmVjdGlvbjo6cmVnaXN0ZXJTZXJ2aWNlV29ya2VyQ2xpZW50KToKKyAgICAgICAgKFdl
YktpdDo6V2ViU1dDbGllbnRDb25uZWN0aW9uOjp1bnJlZ2lzdGVyU2VydmljZVdvcmtlckNsaWVu
dCk6CisgICAgICAgICogV2ViUHJvY2Vzcy9TdG9yYWdlL1dlYlNXQ2xpZW50Q29ubmVjdGlvbi5o
OgorICAgICAgICAqIFdlYlByb2Nlc3MvU3RvcmFnZS9XZWJTV0NvbnRleHRNYW5hZ2VyQ29ubmVj
dGlvbi5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlNXQ29udGV4dE1hbmFnZXJDb25uZWN0aW9u
Ojpwb3N0TWVzc2FnZVRvU2VydmljZVdvcmtlcik6CisgICAgICAgIChXZWJLaXQ6OldlYlNXQ29u
dGV4dE1hbmFnZXJDb25uZWN0aW9uOjptYXRjaEFsbENvbXBsZXRlZCk6CisgICAgICAgICogV2Vi
UHJvY2Vzcy9TdG9yYWdlL1dlYlNXQ29udGV4dE1hbmFnZXJDb25uZWN0aW9uLmg6CisgICAgICAg
ICogV2ViUHJvY2Vzcy9TdG9yYWdlL1dlYlNXQ29udGV4dE1hbmFnZXJDb25uZWN0aW9uLm1lc3Nh
Z2VzLmluOgorCiAyMDE3LTEyLTEwICBTdGVwaGFuIFN6YWJvICA8c3RlcGhhbi5zemFib0Bzb255
LmNvbT4KIAogICAgICAgICBBUElDbGllbnQuaCB1c2VzIHRoaW5ncyBmcm9tIDx0dXBsZT4gd2l0
aG91dCBpbmNsdWRpbmcgaXQgZXhwbGljaXRseQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
V2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNlL1dlYkNvcmUvV2ViQ29y
ZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IGQwN2MzYzhiMTg1NzBhMDUzNGE1N2Y3
ZmM4YzhiZDY4MDEzZmNlMTIuLmQ2YWViNjZmOTFjYWQ3MjcwODIzOTliMjc2MWI5MTlmNGNiNmRi
NDMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3Qu
cGJ4cHJvagorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBi
eHByb2oKQEAgLTEwMzcsNyArMTAzNyw2IEBACiAJCTQxQjJBNjI2MUVGMUJGNkQwMDJCOUQ3QSAv
KiBXZWJBdWRpb1NvdXJjZVByb3ZpZGVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSA0MUIyQTYyNTFFRjFCRjYwMDAyQjlEN0EgLyogV2ViQXVkaW9Tb3Vy
Y2VQcm92aWRlci5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07
IH07CiAJCTQxQkY3MDBDMEZFODZGNDkwMDVFOERFQyAvKiBNZXNzYWdlUG9ydENoYW5uZWwuaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQxQkY3MDBBMEZF
ODZGNDkwMDVFOERFQyAvKiBNZXNzYWdlUG9ydENoYW5uZWwuaCAqLzsgc2V0dGluZ3MgPSB7QVRU
UklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk0MUJGNzAxMDBGRTg2RjYxMDA1RThERUMg
LyogUGxhdGZvcm1NZXNzYWdlUG9ydENoYW5uZWwuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQxQkY3MDBFMEZFODZGNjEwMDVFOERFQyAvKiBQbGF0Zm9y
bU1lc3NhZ2VQb3J0Q2hhbm5lbC5oICovOyB9OwotCQk0MUM2OEFGNTFGRDIyNzkwMDBBQUEzQjMg
LyogU2VydmljZVdvcmtlckNsaWVudEluZm9ybWF0aW9uLmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0MUM2OEFGMzFGRDIxRThFMDBBQUEzQjMgLyogU2Vy
dmljZVdvcmtlckNsaWVudEluZm9ybWF0aW9uLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMg
PSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJNDFDNzYwQjEwRURFMDNEMzAwQzE2NTVGIC8qIFNjcmlw
dFN0YXRlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0
MUM3NjBCMDBFREUwM0QzMDBDMTY1NUYgLyogU2NyaXB0U3RhdGUuaCAqLzsgc2V0dGluZ3MgPSB7
QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk0MUNBRDcxRTFFQTA5MEExMDAxNzgx
NjQgLyogVmlkZW9Ub29sQm94RW5jb2RlckZhY3RvcnkuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDFDQUQ3MUMxRUEwOTA1NzAwMTc4MTY0IC8qIFZp
ZGVvVG9vbEJveEVuY29kZXJGYWN0b3J5LmNwcCAqLzsgfTsKIAkJNDFEMDE1Q0EwRjRCNUM3MTAw
NEE2NjJGIC8qIENvbnRlbnRUeXBlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSA0MUQwMTVDODBGNEI1QzcxMDA0QTY2MkYgLyogQ29udGVudFR5cGUuaCAq
Lzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwpAQCAtNzA0Nyw3
ICs3MDQ2LDYgQEAKIAkJNDFCRjcwMEEwRkU4NkY0OTAwNUU4REVDIC8qIE1lc3NhZ2VQb3J0Q2hh
bm5lbC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBNZXNzYWdlUG9ydENoYW5u
ZWwuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDFCRjcwMEQwRkU4NkY2MTAwNUU4
REVDIC8qIFBsYXRmb3JtTWVzc2FnZVBvcnRDaGFubmVsLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuY3BwLmNwcDsgbmFtZSA9IFBsYXRmb3JtTWVzc2FnZVBvcnRDaGFubmVsLmNwcDsgcGF0aCA9
IGRlZmF1bHQvUGxhdGZvcm1NZXNzYWdlUG9ydENoYW5uZWwuY3BwOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwogCQk0MUJGNzAwRTBGRTg2RjYxMDA1RThERUMgLyogUGxhdGZvcm1NZXNzYWdl
UG9ydENoYW5uZWwuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gUGxhdGZvcm1N
ZXNzYWdlUG9ydENoYW5uZWwuaDsgcGF0aCA9IGRlZmF1bHQvUGxhdGZvcm1NZXNzYWdlUG9ydENo
YW5uZWwuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJNDFDNjhBRjMxRkQyMUU4RTAw
QUFBM0IzIC8qIFNlcnZpY2VXb3JrZXJDbGllbnRJbmZvcm1hdGlvbi5oICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jLmg7IHBhdGggPSBTZXJ2aWNlV29ya2VyQ2xpZW50SW5mb3JtYXRpb24uaDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDFDNzYwQjAwRURFMDNEMzAwQzE2NTVGIC8qIFNj
cmlwdFN0YXRlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFNjcmlwdFN0YXRl
Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQxQzdFMTA1MUU2QTU0MzYwMDI3QjRE
RSAvKiBDYW52YXNDYXB0dXJlTWVkaWFTdHJlYW1UcmFjay5jcHAgKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmNwcC5jcHA7IHBhdGggPSBDYW52YXNDYXB0dXJlTWVkaWFTdHJlYW1UcmFjay5jcHA7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQxQzdFMTA2MUU2QTU0MzYwMDI3QjRERSAvKiBD
YW52YXNDYXB0dXJlTWVkaWFTdHJlYW1UcmFjay5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7
IHBhdGggPSBDYW52YXNDYXB0dXJlTWVkaWFTdHJlYW1UcmFjay5oOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwpAQCAtMTczMTgsNyArMTczMTYsNiBAQAogCQkJCTgzNzkzNjNDMUZCQkIwQTQw
MEM4MDIzQyAvKiBTZXJ2aWNlV29ya2VyQ2xpZW50RGF0YS5jcHAgKi8sCiAJCQkJODM3OTM2M0Ux
RkJCQjBBNTAwQzgwMjNDIC8qIFNlcnZpY2VXb3JrZXJDbGllbnREYXRhLmggKi8sCiAJCQkJODM3
RDQ2MjUxRkEyQThDNTAwNTRFMUZBIC8qIFNlcnZpY2VXb3JrZXJDbGllbnRJZGVudGlmaWVyLmgg
Ki8sCi0JCQkJNDFDNjhBRjMxRkQyMUU4RTAwQUFBM0IzIC8qIFNlcnZpY2VXb3JrZXJDbGllbnRJ
bmZvcm1hdGlvbi5oICovLAogCQkJCTQxM0ZDNENEMUZEMUREOEMwMDU0MUM0QiAvKiBTZXJ2aWNl
V29ya2VyQ2xpZW50UXVlcnlPcHRpb25zLmggKi8sCiAJCQkJNDZFRjE0MjExRjk3QjdCQTAwQzJB
NTI0IC8qIFNlcnZpY2VXb3JrZXJDbGllbnRzLmNwcCAqLywKIAkJCQk0NkVGMTQyMjFGOTdCN0JB
MDBDMkE1MjQgLyogU2VydmljZVdvcmtlckNsaWVudHMuaCAqLywKQEAgLTI5MDM3LDcgKzI5MDM0
LDYgQEAKIAkJCQk0NkVGMTQyRDFGOTdCN0Q4MDBDMkE1MjQgLyogU2VydmljZVdvcmtlckNsaWVu
dC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJODM3OTM2M0YxRkJCQjBCNDAwQzgwMjNDIC8qIFNlcnZp
Y2VXb3JrZXJDbGllbnREYXRhLmggaW4gSGVhZGVycyAqLywKIAkJCQk4MzdENDYyNzFGQTJBOENF
MDA1NEUxRkEgLyogU2VydmljZVdvcmtlckNsaWVudElkZW50aWZpZXIuaCBpbiBIZWFkZXJzICov
LAotCQkJCTQxQzY4QUY1MUZEMjI3OTAwMEFBQTNCMyAvKiBTZXJ2aWNlV29ya2VyQ2xpZW50SW5m
b3JtYXRpb24uaCBpbiBIZWFkZXJzICovLAogCQkJCTQxNTE5Q0I4MUZEMUYwMkUwMDdGNjIzQyAv
KiBTZXJ2aWNlV29ya2VyQ2xpZW50UXVlcnlPcHRpb25zLmggaW4gSGVhZGVycyAqLywKIAkJCQk0
NkVGMTQyQzFGOTdCN0Q4MDBDMkE1MjQgLyogU2VydmljZVdvcmtlckNsaWVudHMuaCBpbiBIZWFk
ZXJzICovLAogCQkJCTgzNjlGREZDMUZBMTAyRTMwMEMxRkYxRiAvKiBTZXJ2aWNlV29ya2VyQ2xp
ZW50VHlwZS5oIGluIEhlYWRlcnMgKi8sCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20v
RG9jdW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcAppbmRleCA1Zjlj
NDVmYjAyMDMxNzJjOTUxOTdiOGYyZDQxY2VkNDZiYmYxYjZiLi40M2QzN2IyMDQwNTFkMGZjZmI5
ZDhkM2ZiMjBlOTM5MGNkMTFkZmEyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vRG9j
dW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAKQEAgLTc2Mjcs
NyArNzYyNyw3IEBAIHZvaWQgRG9jdW1lbnQ6OmRpZExvZ01lc3NhZ2UoY29uc3QgV1RGTG9nQ2hh
bm5lbCYgY2hhbm5lbCwgV1RGTG9nTGV2ZWwgbGV2ZWwsIGNvCiB2b2lkIERvY3VtZW50OjpzZXRT
ZXJ2aWNlV29ya2VyQ29ubmVjdGlvbihTV0NsaWVudENvbm5lY3Rpb24qIHNlcnZpY2VXb3JrZXJD
b25uZWN0aW9uKQogewogICAgIGlmIChtX3NlcnZpY2VXb3JrZXJDb25uZWN0aW9uKQotICAgICAg
ICBtX3NlcnZpY2VXb3JrZXJDb25uZWN0aW9uLT51bnJlZ2lzdGVyU2VydmljZVdvcmtlckNsaWVu
dChpZGVudGlmaWVyKCkpOworICAgICAgICBtX3NlcnZpY2VXb3JrZXJDb25uZWN0aW9uLT51bnJl
Z2lzdGVyU2VydmljZVdvcmtlckNsaWVudCh7IG1fc2VydmljZVdvcmtlckNvbm5lY3Rpb24tPnNl
cnZlckNvbm5lY3Rpb25JZGVudGlmaWVyKCksIGlkZW50aWZpZXIoKSB9KTsKIAogICAgIG1fc2Vy
dmljZVdvcmtlckNvbm5lY3Rpb24gPSBzZXJ2aWNlV29ya2VyQ29ubmVjdGlvbjsKIApAQCAtNzYz
NSw3ICs3NjM1LDcgQEAgdm9pZCBEb2N1bWVudDo6c2V0U2VydmljZVdvcmtlckNvbm5lY3Rpb24o
U1dDbGllbnRDb25uZWN0aW9uKiBzZXJ2aWNlV29ya2VyQ29ubmUKICAgICAgICAgcmV0dXJuOwog
CiAgICAgYXV0byBjb250cm9sbGluZ1NlcnZpY2VXb3JrZXJJZGVudGlmaWVyID0gYWN0aXZlU2Vy
dmljZVdvcmtlcigpID8gc3RkOjptYWtlX29wdGlvbmFsPFNlcnZpY2VXb3JrZXJJZGVudGlmaWVy
PihhY3RpdmVTZXJ2aWNlV29ya2VyKCktPmlkZW50aWZpZXIoKSkgOiBzdGQ6Om51bGxvcHQ7Ci0g
ICAgbV9zZXJ2aWNlV29ya2VyQ29ubmVjdGlvbi0+cmVnaXN0ZXJTZXJ2aWNlV29ya2VyQ2xpZW50
KHRvcE9yaWdpbigpLCBpZGVudGlmaWVyKCksIFNlcnZpY2VXb3JrZXJDbGllbnREYXRhOjpmcm9t
KCp0aGlzKSwgY29udHJvbGxpbmdTZXJ2aWNlV29ya2VySWRlbnRpZmllcik7CisgICAgbV9zZXJ2
aWNlV29ya2VyQ29ubmVjdGlvbi0+cmVnaXN0ZXJTZXJ2aWNlV29ya2VyQ2xpZW50KHRvcE9yaWdp
bigpLCBTZXJ2aWNlV29ya2VyQ2xpZW50RGF0YTo6ZnJvbSgqdGhpcywgKnNlcnZpY2VXb3JrZXJD
b25uZWN0aW9uKSwgY29udHJvbGxpbmdTZXJ2aWNlV29ya2VySWRlbnRpZmllcik7CiB9CiAjZW5k
aWYKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL1NXQ2xpZW50
Q29ubmVjdGlvbi5oIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL1NXQ2xpZW50Q29u
bmVjdGlvbi5oCmluZGV4IDQ3MTQyMDU5YTE1YmMwMDZhZWQ4MWQwYmJmM2VlNGM0ZmYwZjE5NDUu
LmNiOTFlYzkyNTRhNTAxMjYwY2YzNmZmNjYyYmY1ZGJlZWI0MzkyYTAgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9TV0NsaWVudENvbm5lY3Rpb24uaAorKysgYi9T
b3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvU1dDbGllbnRDb25uZWN0aW9uLmgKQEAgLTgx
LDggKzgxLDggQEAgcHVibGljOgogICAgIHZpcnR1YWwgYm9vbCBtYXlIYXZlU2VydmljZVdvcmtl
clJlZ2lzdGVyZWRGb3JPcmlnaW4oY29uc3QgU2VjdXJpdHlPcmlnaW4mKSBjb25zdCA9IDA7CiAg
ICAgdmlydHVhbCB2b2lkIHN5bmNUZXJtaW5hdGVXb3JrZXIoU2VydmljZVdvcmtlcklkZW50aWZp
ZXIpID0gMDsKIAotICAgIHZpcnR1YWwgdm9pZCByZWdpc3RlclNlcnZpY2VXb3JrZXJDbGllbnQo
Y29uc3QgU2VjdXJpdHlPcmlnaW4mIHRvcE9yaWdpbiwgRG9jdW1lbnRJZGVudGlmaWVyLCBjb25z
dCBTZXJ2aWNlV29ya2VyQ2xpZW50RGF0YSYsIGNvbnN0IHN0ZDo6b3B0aW9uYWw8U2VydmljZVdv
cmtlcklkZW50aWZpZXI+JikgPSAwOwotICAgIHZpcnR1YWwgdm9pZCB1bnJlZ2lzdGVyU2Vydmlj
ZVdvcmtlckNsaWVudChEb2N1bWVudElkZW50aWZpZXIpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQg
cmVnaXN0ZXJTZXJ2aWNlV29ya2VyQ2xpZW50KGNvbnN0IFNlY3VyaXR5T3JpZ2luJiB0b3BPcmln
aW4sIGNvbnN0IFNlcnZpY2VXb3JrZXJDbGllbnREYXRhJiwgY29uc3Qgc3RkOjpvcHRpb25hbDxT
ZXJ2aWNlV29ya2VySWRlbnRpZmllcj4mKSA9IDA7CisgICAgdmlydHVhbCB2b2lkIHVucmVnaXN0
ZXJTZXJ2aWNlV29ya2VyQ2xpZW50KGNvbnN0IFNlcnZpY2VXb3JrZXJDbGllbnRJZGVudGlmaWVy
JikgPSAwOwogCiBwcm90ZWN0ZWQ6CiAgICAgV0VCQ09SRV9FWFBPUlQgU1dDbGllbnRDb25uZWN0
aW9uKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvU2Vydmlj
ZVdvcmtlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvU2VydmljZVdvcmtl
ci5jcHAKaW5kZXggNGI0ZGUyZTA4NGY5MDc2ZDBmMWMyMzZhMWQ5NTRhYzE2NGU4OWM4Yi4uZTQ3
NzYyMGVjMjQ3NzQ5MWM3NzIxYjlmYmQ5NmU1MTc2NzAzNTBiMiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL1NlcnZpY2VXb3JrZXIuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3dvcmtlcnMvc2VydmljZS9TZXJ2aWNlV29ya2VyLmNwcApAQCAtMTIzLDggKzEyMyw5
IEBAIEV4Y2VwdGlvbk9yPHZvaWQ+IFNlcnZpY2VXb3JrZXI6OnBvc3RNZXNzYWdlKFNjcmlwdEV4
ZWN1dGlvbkNvbnRleHQmIGNvbnRleHQsIEpTCiAgICAgICAgIHJldHVybiB7IH07CiAgICAgfQog
Ci0gICAgYXV0byBzb3VyY2VDbGllbnREYXRhID0gU2VydmljZVdvcmtlckNsaWVudERhdGE6OmZy
b20oY29udGV4dCk7CiAgICAgYXV0byYgY29ubmVjdGlvbiA9IFNlcnZpY2VXb3JrZXJQcm92aWRl
cjo6c2luZ2xldG9uKCkuc2VydmljZVdvcmtlckNvbm5lY3Rpb25Gb3JTZXNzaW9uKGNvbnRleHQu
c2Vzc2lvbklEKCkpOworICAgIC8vIEZJWE1FOiBXZSBzaG91bGQgYmUgYWJsZSB0byBzZW5kIG9u
bHkgdGhlIGNsaWVudCBpZGVudGlmaWVyIGFuZCBsb29rIHVwIHRoZSBjbGllbnREYXRhIG9uIHNl
cnZlciBzaWRlLgorICAgIGF1dG8gc291cmNlQ2xpZW50RGF0YSA9IFNlcnZpY2VXb3JrZXJDbGll
bnREYXRhOjpmcm9tKGNvbnRleHQsIGNvbm5lY3Rpb24pOwogICAgIFNlcnZpY2VXb3JrZXJDbGll
bnRJZGVudGlmaWVyIHNvdXJjZUNsaWVudElkZW50aWZpZXIgeyBjb25uZWN0aW9uLnNlcnZlckNv
bm5lY3Rpb25JZGVudGlmaWVyKCksIGRvd25jYXN0PERvY3VtZW50Pihjb250ZXh0KS5pZGVudGlm
aWVyKCkgfTsKICAgICBjb25uZWN0aW9uLnBvc3RNZXNzYWdlVG9TZXJ2aWNlV29ya2VyKGlkZW50
aWZpZXIoKSwgbWVzc2FnZS5yZWxlYXNlUmV0dXJuVmFsdWUoKSwgV1RGTW92ZShzb3VyY2VDbGll
bnRJZGVudGlmaWVyKSwgV1RGTW92ZShzb3VyY2VDbGllbnREYXRhKSk7CiAKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9TZXJ2aWNlV29ya2VyQ2xpZW50LmNwcCBi
L1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9TZXJ2aWNlV29ya2VyQ2xpZW50LmNwcApp
bmRleCBhZTkzYjVkMzlkZTNmNjBhMTYyYTRmNWY1NWE4Yzg1ODRlYTc1MmU5Li44NzRhMzNjYTBj
ZWY2NDFhZGI5MDk5NWYyNzBiNTgxYjFjYTRkYmU4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS93b3JrZXJzL3NlcnZpY2UvU2VydmljZVdvcmtlckNsaWVudC5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvd29ya2Vycy9zZXJ2aWNlL1NlcnZpY2VXb3JrZXJDbGllbnQuY3BwCkBAIC0zOCwyMCAr
MzgsMTkgQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1SZWY8U2VydmljZVdvcmtlckNsaWVu
dD4gU2VydmljZVdvcmtlckNsaWVudDo6Z2V0T3JDcmVhdGUoU2VydmljZVdvcmtlckdsb2JhbFNj
b3BlJiBjb250ZXh0LCBTZXJ2aWNlV29ya2VyQ2xpZW50SWRlbnRpZmllciBpZGVudGlmaWVyLCBT
ZXJ2aWNlV29ya2VyQ2xpZW50RGF0YSYmIGRhdGEpCitSZWY8U2VydmljZVdvcmtlckNsaWVudD4g
U2VydmljZVdvcmtlckNsaWVudDo6Z2V0T3JDcmVhdGUoU2VydmljZVdvcmtlckdsb2JhbFNjb3Bl
JiBjb250ZXh0LCBTZXJ2aWNlV29ya2VyQ2xpZW50RGF0YSYmIGRhdGEpCiB7Ci0gICAgaWYgKGF1
dG8qIGNsaWVudCA9IGNvbnRleHQuc2VydmljZVdvcmtlckNsaWVudChpZGVudGlmaWVyKSkKKyAg
ICBpZiAoYXV0byogY2xpZW50ID0gY29udGV4dC5zZXJ2aWNlV29ya2VyQ2xpZW50KGRhdGEuaWRl
bnRpZmllcikpCiAgICAgICAgIHJldHVybiAqY2xpZW50OwogCiAgICAgaWYgKGRhdGEudHlwZSA9
PSBTZXJ2aWNlV29ya2VyQ2xpZW50VHlwZTo6V2luZG93KQotICAgICAgICByZXR1cm4gU2Vydmlj
ZVdvcmtlcldpbmRvd0NsaWVudDo6Y3JlYXRlKGNvbnRleHQsIGlkZW50aWZpZXIsIFdURk1vdmUo
ZGF0YSkpOworICAgICAgICByZXR1cm4gU2VydmljZVdvcmtlcldpbmRvd0NsaWVudDo6Y3JlYXRl
KGNvbnRleHQsIFdURk1vdmUoZGF0YSkpOwogCi0gICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgU2Vy
dmljZVdvcmtlckNsaWVudCB7IGNvbnRleHQsIGlkZW50aWZpZXIsIFdURk1vdmUoZGF0YSkgfSk7
CisgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgU2VydmljZVdvcmtlckNsaWVudCB7IGNvbnRleHQs
IFdURk1vdmUoZGF0YSkgfSk7CiB9CiAKLVNlcnZpY2VXb3JrZXJDbGllbnQ6OlNlcnZpY2VXb3Jr
ZXJDbGllbnQoU2VydmljZVdvcmtlckdsb2JhbFNjb3BlJiBjb250ZXh0LCBTZXJ2aWNlV29ya2Vy
Q2xpZW50SWRlbnRpZmllciBpZGVudGlmaWVyLCBTZXJ2aWNlV29ya2VyQ2xpZW50RGF0YSYmIGRh
dGEpCitTZXJ2aWNlV29ya2VyQ2xpZW50OjpTZXJ2aWNlV29ya2VyQ2xpZW50KFNlcnZpY2VXb3Jr
ZXJHbG9iYWxTY29wZSYgY29udGV4dCwgU2VydmljZVdvcmtlckNsaWVudERhdGEmJiBkYXRhKQog
ICAgIDogQ29udGV4dERlc3RydWN0aW9uT2JzZXJ2ZXIoJmNvbnRleHQpCi0gICAgLCBtX2lkZW50
aWZpZXIoaWRlbnRpZmllcikKICAgICAsIG1fZGF0YShXVEZNb3ZlKGRhdGEpKQogewogICAgIGNv
bnRleHQuYWRkU2VydmljZVdvcmtlckNsaWVudCgqdGhpcyk7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvU2VydmljZVdvcmtlckNsaWVudC5oIGIvU291cmNlL1dl
YkNvcmUvd29ya2Vycy9zZXJ2aWNlL1NlcnZpY2VXb3JrZXJDbGllbnQuaAppbmRleCA0NmE0Mzhj
OTgyY2E4ZTZiOGQ4MTRjNjgyNTE0ZTVlZTMyODVjOWEzLi44N2VmN2EzYzUzNmU3YWVhODk0N2Rk
MjIxODBhZDMwOGY1OWM0ZWM5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3Nl
cnZpY2UvU2VydmljZVdvcmtlckNsaWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMv
c2VydmljZS9TZXJ2aWNlV29ya2VyQ2xpZW50LmgKQEAgLTQ4LDcgKzQ4LDcgQEAgcHVibGljOgog
ICAgIHVzaW5nIFR5cGUgPSBTZXJ2aWNlV29ya2VyQ2xpZW50VHlwZTsKICAgICB1c2luZyBGcmFt
ZVR5cGUgPSBTZXJ2aWNlV29ya2VyQ2xpZW50RnJhbWVUeXBlOwogCi0gICAgc3RhdGljIFJlZjxT
ZXJ2aWNlV29ya2VyQ2xpZW50PiBnZXRPckNyZWF0ZShTZXJ2aWNlV29ya2VyR2xvYmFsU2NvcGUm
LCBTZXJ2aWNlV29ya2VyQ2xpZW50SWRlbnRpZmllciwgU2VydmljZVdvcmtlckNsaWVudERhdGEm
Jik7CisgICAgc3RhdGljIFJlZjxTZXJ2aWNlV29ya2VyQ2xpZW50PiBnZXRPckNyZWF0ZShTZXJ2
aWNlV29ya2VyR2xvYmFsU2NvcGUmLCBTZXJ2aWNlV29ya2VyQ2xpZW50RGF0YSYmKTsKIAogICAg
IH5TZXJ2aWNlV29ya2VyQ2xpZW50KCk7CiAKQEAgLTU3LDE0ICs1NywxMyBAQCBwdWJsaWM6CiAg
ICAgVHlwZSB0eXBlKCkgY29uc3Q7CiAgICAgU3RyaW5nIGlkKCkgY29uc3Q7CiAKLSAgICBJZGVu
dGlmaWVyIGlkZW50aWZpZXIoKSBjb25zdCB7IHJldHVybiBtX2lkZW50aWZpZXI7IH0KKyAgICBJ
ZGVudGlmaWVyIGlkZW50aWZpZXIoKSBjb25zdCB7IHJldHVybiBtX2RhdGEuaWRlbnRpZmllcjsg
fQogCiAgICAgRXhjZXB0aW9uT3I8dm9pZD4gcG9zdE1lc3NhZ2UoU2NyaXB0RXhlY3V0aW9uQ29u
dGV4dCYsIEpTQzo6SlNWYWx1ZSBtZXNzYWdlLCBWZWN0b3I8SlNDOjpTdHJvbmc8SlNDOjpKU09i
amVjdD4+JiYgdHJhbnNmZXIpOwogCiBwcm90ZWN0ZWQ6Ci0gICAgU2VydmljZVdvcmtlckNsaWVu
dChTZXJ2aWNlV29ya2VyR2xvYmFsU2NvcGUmLCBTZXJ2aWNlV29ya2VyQ2xpZW50SWRlbnRpZmll
ciwgU2VydmljZVdvcmtlckNsaWVudERhdGEmJik7CisgICAgU2VydmljZVdvcmtlckNsaWVudChT
ZXJ2aWNlV29ya2VyR2xvYmFsU2NvcGUmLCBTZXJ2aWNlV29ya2VyQ2xpZW50RGF0YSYmKTsKIAot
ICAgIFNlcnZpY2VXb3JrZXJDbGllbnRJZGVudGlmaWVyIG1faWRlbnRpZmllcjsKICAgICBTZXJ2
aWNlV29ya2VyQ2xpZW50RGF0YSBtX2RhdGE7CiB9OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS93b3JrZXJzL3NlcnZpY2UvU2VydmljZVdvcmtlckNsaWVudERhdGEuY3BwIGIvU291cmNl
L1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL1NlcnZpY2VXb3JrZXJDbGllbnREYXRhLmNwcAppbmRl
eCBiMmU3ZDMzMjE3MWU2YWQxZTRmMDUzZDc0YTIyZDg0MzhhOWRmM2M1Li41YzQ0MDJiNzIwYzMw
YjFmNmQ4MWY1ZTMzMTUwMzQ5MjMyNWU0MzkyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS93
b3JrZXJzL3NlcnZpY2UvU2VydmljZVdvcmtlckNsaWVudERhdGEuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3dvcmtlcnMvc2VydmljZS9TZXJ2aWNlV29ya2VyQ2xpZW50RGF0YS5jcHAKQEAgLTU2
LDE0ICs1NiwxNiBAQCBzdGF0aWMgU2VydmljZVdvcmtlckNsaWVudEZyYW1lVHlwZSB0b1NlcnZp
Y2VXb3JrZXJDbGllbnRGcmFtZVR5cGUoU2NyaXB0RXhlY3V0aQogCiBTZXJ2aWNlV29ya2VyQ2xp
ZW50RGF0YSBTZXJ2aWNlV29ya2VyQ2xpZW50RGF0YTo6aXNvbGF0ZWRDb3B5KCkgY29uc3QKIHsK
LSAgICByZXR1cm4geyB0eXBlLCBmcmFtZVR5cGUsIHVybC5pc29sYXRlZENvcHkoKSB9OworICAg
IHJldHVybiB7IGlkZW50aWZpZXIsIHR5cGUsIGZyYW1lVHlwZSwgdXJsLmlzb2xhdGVkQ29weSgp
IH07CiB9CiAKLVNlcnZpY2VXb3JrZXJDbGllbnREYXRhIFNlcnZpY2VXb3JrZXJDbGllbnREYXRh
Ojpmcm9tKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmIGNvbnRleHQpCitTZXJ2aWNlV29ya2VyQ2xp
ZW50RGF0YSBTZXJ2aWNlV29ya2VyQ2xpZW50RGF0YTo6ZnJvbShTY3JpcHRFeGVjdXRpb25Db250
ZXh0JiBjb250ZXh0LCBTV0NsaWVudENvbm5lY3Rpb24mIGNvbm5lY3Rpb24pCiB7CiAgICAgYm9v
bCBpc0RvY3VtZW50ID0gaXM8RG9jdW1lbnQ+KGNvbnRleHQpOworICAgIFJFTEVBU0VfQVNTRVJU
KGlzRG9jdW1lbnQpOyAvLyBXZSBkbyBub3Qgc3VwcG9ydCBkZWRpY2F0ZWQgd29ya2VycyBhcyBj
bGllbnRzIHlldC4KIAogICAgIHJldHVybiB7CisgICAgICAgIHsgY29ubmVjdGlvbi5zZXJ2ZXJD
b25uZWN0aW9uSWRlbnRpZmllcigpLCBkb3duY2FzdDxEb2N1bWVudD4oY29udGV4dCkuaWRlbnRp
ZmllcigpIH0sCiAgICAgICAgIGlzRG9jdW1lbnQgPyBTZXJ2aWNlV29ya2VyQ2xpZW50VHlwZTo6
V2luZG93IDogU2VydmljZVdvcmtlckNsaWVudFR5cGU6OldvcmtlciwKICAgICAgICAgdG9TZXJ2
aWNlV29ya2VyQ2xpZW50RnJhbWVUeXBlKGNvbnRleHQpLAogICAgICAgICBjb250ZXh0LnVybCgp
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvU2VydmljZVdvcmtl
ckNsaWVudERhdGEuaCBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9TZXJ2aWNlV29y
a2VyQ2xpZW50RGF0YS5oCmluZGV4IDRmMWFiOGJhNDVlNGE5OGZmNTVhNDUyYzY1NGVkZWI3ZTU3
OGFmZTEuLjE0M2Q3ZDllMDQ1ZDU0ZTExYThjNmVkOWFjMTRlMzdiMTU2YTA1MjkgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9TZXJ2aWNlV29ya2VyQ2xpZW50RGF0
YS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9TZXJ2aWNlV29ya2VyQ2xp
ZW50RGF0YS5oCkBAIC0zNCwxNiArMzQsMTggQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCitj
bGFzcyBTV0NsaWVudENvbm5lY3Rpb247CiBjbGFzcyBTY3JpcHRFeGVjdXRpb25Db250ZXh0Owog
CiBzdHJ1Y3QgU2VydmljZVdvcmtlckNsaWVudERhdGEgeworICAgIFNlcnZpY2VXb3JrZXJDbGll
bnRJZGVudGlmaWVyIGlkZW50aWZpZXI7CiAgICAgU2VydmljZVdvcmtlckNsaWVudFR5cGUgdHlw
ZTsKICAgICBTZXJ2aWNlV29ya2VyQ2xpZW50RnJhbWVUeXBlIGZyYW1lVHlwZTsKICAgICBVUkwg
dXJsOwogCiAgICAgU2VydmljZVdvcmtlckNsaWVudERhdGEgaXNvbGF0ZWRDb3B5KCkgY29uc3Q7
CiAKLSAgICBzdGF0aWMgU2VydmljZVdvcmtlckNsaWVudERhdGEgZnJvbShTY3JpcHRFeGVjdXRp
b25Db250ZXh0Jik7CisgICAgc3RhdGljIFNlcnZpY2VXb3JrZXJDbGllbnREYXRhIGZyb20oU2Ny
aXB0RXhlY3V0aW9uQ29udGV4dCYsIFNXQ2xpZW50Q29ubmVjdGlvbiYpOwogCiAgICAgdGVtcGxh
dGU8Y2xhc3MgRW5jb2Rlcj4gdm9pZCBlbmNvZGUoRW5jb2RlciYpIGNvbnN0OwogICAgIHRlbXBs
YXRlPGNsYXNzIERlY29kZXI+IHN0YXRpYyBzdGQ6Om9wdGlvbmFsPFNlcnZpY2VXb3JrZXJDbGll
bnREYXRhPiBkZWNvZGUoRGVjb2RlciYpOwpAQCAtNTIsMTIgKzU0LDE3IEBAIHN0cnVjdCBTZXJ2
aWNlV29ya2VyQ2xpZW50RGF0YSB7CiB0ZW1wbGF0ZTxjbGFzcyBFbmNvZGVyPgogdm9pZCBTZXJ2
aWNlV29ya2VyQ2xpZW50RGF0YTo6ZW5jb2RlKEVuY29kZXImIGVuY29kZXIpIGNvbnN0CiB7Ci0g
ICAgZW5jb2RlciA8PCB0eXBlIDw8IGZyYW1lVHlwZSA8PCB1cmw7CisgICAgZW5jb2RlciA8PCBp
ZGVudGlmaWVyIDw8IHR5cGUgPDwgZnJhbWVUeXBlIDw8IHVybDsKIH0KIAogdGVtcGxhdGU8Y2xh
c3MgRGVjb2Rlcj4KIHN0ZDo6b3B0aW9uYWw8U2VydmljZVdvcmtlckNsaWVudERhdGE+IFNlcnZp
Y2VXb3JrZXJDbGllbnREYXRhOjpkZWNvZGUoRGVjb2RlciYgZGVjb2RlcikKIHsKKyAgICBzdGQ6
Om9wdGlvbmFsPFNlcnZpY2VXb3JrZXJDbGllbnRJZGVudGlmaWVyPiBpZGVudGlmaWVyOworICAg
IGRlY29kZXIgPj4gaWRlbnRpZmllcjsKKyAgICBpZiAoIWlkZW50aWZpZXIpCisgICAgICAgIHJl
dHVybiBzdGQ6Om51bGxvcHQ7CisKICAgICBzdGQ6Om9wdGlvbmFsPFNlcnZpY2VXb3JrZXJDbGll
bnRUeXBlPiB0eXBlOwogICAgIGRlY29kZXIgPj4gdHlwZTsKICAgICBpZiAoIXR5cGUpCkBAIC03
Myw5ICs4MCwxMSBAQCBzdGQ6Om9wdGlvbmFsPFNlcnZpY2VXb3JrZXJDbGllbnREYXRhPiBTZXJ2
aWNlV29ya2VyQ2xpZW50RGF0YTo6ZGVjb2RlKERlY29kZXImCiAgICAgaWYgKCF1cmwpCiAgICAg
ICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CiAKLSAgICByZXR1cm4geyB7IFdURk1vdmUoKnR5cGUp
LCBXVEZNb3ZlKCpmcmFtZVR5cGUpLCBXVEZNb3ZlKCp1cmwpIH0gfTsKKyAgICByZXR1cm4geyB7
IFdURk1vdmUoKmlkZW50aWZpZXIpLCBXVEZNb3ZlKCp0eXBlKSwgV1RGTW92ZSgqZnJhbWVUeXBl
KSwgV1RGTW92ZSgqdXJsKSB9IH07CiB9CiAKK3VzaW5nIFNlcnZpY2VXb3JrZXJDbGllbnRzTWF0
Y2hBbGxDYWxsYmFjayA9IFdURjo6Q29tcGxldGlvbkhhbmRsZXI8dm9pZChWZWN0b3I8U2Vydmlj
ZVdvcmtlckNsaWVudERhdGE+JiYpPjsKKwogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQogCiAjZW5k
aWYgLy8gRU5BQkxFKFNFUlZJQ0VfV09SS0VSKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
d29ya2Vycy9zZXJ2aWNlL1NlcnZpY2VXb3JrZXJDbGllbnRJbmZvcm1hdGlvbi5oIGIvU291cmNl
L1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL1NlcnZpY2VXb3JrZXJDbGllbnRJbmZvcm1hdGlvbi5o
CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBjOWY3ZjY0OTA1ZTA0M2M4NDk0YmE0MTc3
YzFjZmVmZGUxMTlhZWI0Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9TZXJ2aWNlV29ya2VyQ2xpZW50
SW5mb3JtYXRpb24uaAorKysgL2Rldi9udWxsCkBAIC0xLDc0ICswLDAgQEAKLS8qCi0gKiBDb3B5
cmlnaHQgKEMpIDIwMTcgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJl
ZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Ig
d2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhl
IGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0OgotICogMS4gUmVkaXN0cmlidXRpb25z
IG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0
aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVudGF0aW9u
IGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgot
ICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENP
TlRSSUJVVE9SUyBgYEFTIElTJycKLSAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJB
TlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAotICogVEhFIElNUExJRUQgV0FS
UkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgot
ICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBP
UiBJVFMgQ09OVFJJQlVUT1JTCi0gKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNU
LCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCi0gKiBDT05TRVFVRU5USUFMIERB
TUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgotICog
U1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJ
VFM7IE9SIEJVU0lORVNTCi0gKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBB
TlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgotICogQ09OVFJBQ1QsIFNUUklDVCBM
SUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKLSAq
IEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVO
IElGIEFEVklTRUQgT0YKLSAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLSAqLwot
Ci0jcHJhZ21hIG9uY2UKLQotI2lmIEVOQUJMRShTRVJWSUNFX1dPUktFUikKLQotI2luY2x1ZGUg
IlNlcnZpY2VXb3JrZXJDbGllbnREYXRhLmgiCi0jaW5jbHVkZSAiU2VydmljZVdvcmtlckNsaWVu
dElkZW50aWZpZXIuaCIKLSNpbmNsdWRlIDx3dGYvVmVjdG9yLmg+Ci0KLW5hbWVzcGFjZSBXZWJD
b3JlIHsKLQotY2xhc3MgU2NyaXB0RXhlY3V0aW9uQ29udGV4dDsKLQotc3RydWN0IFNlcnZpY2VX
b3JrZXJDbGllbnRJbmZvcm1hdGlvbiB7Ci0gICAgU2VydmljZVdvcmtlckNsaWVudElkZW50aWZp
ZXIgaWRlbnRpZmllcjsKLSAgICBTZXJ2aWNlV29ya2VyQ2xpZW50RGF0YSBkYXRhOwotCi0gICAg
U2VydmljZVdvcmtlckNsaWVudEluZm9ybWF0aW9uIGlzb2xhdGVkQ29weSgpIGNvbnN0IHsgcmV0
dXJuIHsgaWRlbnRpZmllciwgZGF0YS5pc29sYXRlZENvcHkoKSB9OyB9Ci0KLSAgICB0ZW1wbGF0
ZTxjbGFzcyBFbmNvZGVyPiB2b2lkIGVuY29kZShFbmNvZGVyJikgY29uc3Q7Ci0gICAgdGVtcGxh
dGU8Y2xhc3MgRGVjb2Rlcj4gc3RhdGljIHN0ZDo6b3B0aW9uYWw8U2VydmljZVdvcmtlckNsaWVu
dEluZm9ybWF0aW9uPiBkZWNvZGUoRGVjb2RlciYpOwotfTsKLQotdXNpbmcgU2VydmljZVdvcmtl
ckNsaWVudHNNYXRjaEFsbENhbGxiYWNrID0gV1RGOjpDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFZl
Y3RvcjxTZXJ2aWNlV29ya2VyQ2xpZW50SW5mb3JtYXRpb24+JiYpPjsKLQotdGVtcGxhdGU8Y2xh
c3MgRW5jb2Rlcj4KLXZvaWQgU2VydmljZVdvcmtlckNsaWVudEluZm9ybWF0aW9uOjplbmNvZGUo
RW5jb2RlciYgZW5jb2RlcikgY29uc3QKLXsKLSAgICBlbmNvZGVyIDw8IGlkZW50aWZpZXIgPDwg
ZGF0YTsKLX0KLQotdGVtcGxhdGU8Y2xhc3MgRGVjb2Rlcj4KLXN0ZDo6b3B0aW9uYWw8U2Vydmlj
ZVdvcmtlckNsaWVudEluZm9ybWF0aW9uPiBTZXJ2aWNlV29ya2VyQ2xpZW50SW5mb3JtYXRpb246
OmRlY29kZShEZWNvZGVyJiBkZWNvZGVyKQotewotICAgIHN0ZDo6b3B0aW9uYWw8U2VydmljZVdv
cmtlckNsaWVudElkZW50aWZpZXI+IGlkZW50aWZpZXI7Ci0gICAgZGVjb2RlciA+PiBpZGVudGlm
aWVyOwotICAgIGlmICghaWRlbnRpZmllcikKLSAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsK
LQotICAgIHN0ZDo6b3B0aW9uYWw8U2VydmljZVdvcmtlckNsaWVudERhdGE+IGRhdGE7Ci0gICAg
ZGVjb2RlciA+PiBkYXRhOwotICAgIGlmICghZGF0YSkKLSAgICAgICAgcmV0dXJuIHN0ZDo6bnVs
bG9wdDsKLQotICAgIHJldHVybiB7IHsgV1RGTW92ZSgqaWRlbnRpZmllciksIFdURk1vdmUoKmRh
dGEpIH0gfTsKLX0KLQotfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQotCi0jZW5kaWYgLy8gRU5BQkxF
KFNFUlZJQ0VfV09SS0VSKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2
aWNlL1NlcnZpY2VXb3JrZXJDbGllbnRzLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2Vy
dmljZS9TZXJ2aWNlV29ya2VyQ2xpZW50cy5jcHAKaW5kZXggNjE2ODdmOTc1ODFiYWRkOTc3MDNl
ZmNiOTBjNjNhNmViY2QzMTdkNS4uNjgyNDdhMjg4MTc4ZTQwYWYwMzQ3MGZkYzFhNzY3MjZkZWU5
ZmFkMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL1NlcnZpY2VX
b3JrZXJDbGllbnRzLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvU2Vy
dmljZVdvcmtlckNsaWVudHMuY3BwCkBAIC0zNCw3ICszNCw3IEBACiAKIG5hbWVzcGFjZSBXZWJD
b3JlIHsKIAotc3RhdGljIGlubGluZSB2b2lkIGRpZEZpbmlzaEdldFJlcXVlc3QoU2VydmljZVdv
cmtlckdsb2JhbFNjb3BlJiBzY29wZSwgRGVmZXJyZWRQcm9taXNlJiBwcm9taXNlLCBTZXJ2aWNl
V29ya2VyQ2xpZW50SWRlbnRpZmllciBpZGVudGlmaWVyLCBFeGNlcHRpb25PcjxzdGQ6Om9wdGlv
bmFsPFNlcnZpY2VXb3JrZXJDbGllbnREYXRhPj4mJiBjbGllbnREYXRhKQorc3RhdGljIGlubGlu
ZSB2b2lkIGRpZEZpbmlzaEdldFJlcXVlc3QoU2VydmljZVdvcmtlckdsb2JhbFNjb3BlJiBzY29w
ZSwgRGVmZXJyZWRQcm9taXNlJiBwcm9taXNlLCBFeGNlcHRpb25PcjxzdGQ6Om9wdGlvbmFsPFNl
cnZpY2VXb3JrZXJDbGllbnREYXRhPj4mJiBjbGllbnREYXRhKQogewogICAgIGlmIChjbGllbnRE
YXRhLmhhc0V4Y2VwdGlvbigpKSB7CiAgICAgICAgIHByb21pc2UucmVqZWN0KGNsaWVudERhdGEu
cmVsZWFzZUV4Y2VwdGlvbigpKTsKQEAgLTQ2LDcgKzQ2LDcgQEAgc3RhdGljIGlubGluZSB2b2lk
IGRpZEZpbmlzaEdldFJlcXVlc3QoU2VydmljZVdvcmtlckdsb2JhbFNjb3BlJiBzY29wZSwgRGVm
ZXJyZWQKICAgICAgICAgcmV0dXJuOwogICAgIH0KIAotICAgIHByb21pc2UucmVzb2x2ZTxJRExJ
bnRlcmZhY2U8U2VydmljZVdvcmtlckNsaWVudD4+KFNlcnZpY2VXb3JrZXJDbGllbnQ6OmdldE9y
Q3JlYXRlKHNjb3BlLCBpZGVudGlmaWVyLCBXVEZNb3ZlKGRhdGEudmFsdWUoKSkpKTsKKyAgICBw
cm9taXNlLnJlc29sdmU8SURMSW50ZXJmYWNlPFNlcnZpY2VXb3JrZXJDbGllbnQ+PihTZXJ2aWNl
V29ya2VyQ2xpZW50OjpnZXRPckNyZWF0ZShzY29wZSwgV1RGTW92ZShkYXRhLnZhbHVlKCkpKSk7
CiB9CiAKIHZvaWQgU2VydmljZVdvcmtlckNsaWVudHM6OmdldChTY3JpcHRFeGVjdXRpb25Db250
ZXh0JiBjb250ZXh0LCBjb25zdCBTdHJpbmcmIGlkLCBSZWY8RGVmZXJyZWRQcm9taXNlPiYmIHBy
b21pc2UpCkBAIC02NSwyMCArNjUsMjAgQEAgdm9pZCBTZXJ2aWNlV29ya2VyQ2xpZW50czo6Z2V0
KFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmIGNvbnRleHQsIGNvbnN0IFN0cmluZyYgaWQKIAogICAg
IGNhbGxPbk1haW5UaHJlYWQoW3Byb21pc2VQb2ludGVyLCBzZXJ2aWNlV29ya2VySWRlbnRpZmll
ciwgY2xpZW50SWRlbnRpZmllcl0gKCkgewogICAgICAgICBhdXRvIGNvbm5lY3Rpb24gPSBTV0Nv
bnRleHRNYW5hZ2VyOjpzaW5nbGV0b24oKS5jb25uZWN0aW9uKCk7Ci0gICAgICAgIGNvbm5lY3Rp
b24tPmZpbmRDbGllbnRCeUlkZW50aWZpZXIoc2VydmljZVdvcmtlcklkZW50aWZpZXIsIGNsaWVu
dElkZW50aWZpZXIsIFtwcm9taXNlUG9pbnRlciwgc2VydmljZVdvcmtlcklkZW50aWZpZXIsIGNs
aWVudElkZW50aWZpZXJdIChhdXRvJiYgY2xpZW50RGF0YSkgewotICAgICAgICAgICAgU1dDb250
ZXh0TWFuYWdlcjo6c2luZ2xldG9uKCkucG9zdFRhc2tUb1NlcnZpY2VXb3JrZXIoc2VydmljZVdv
cmtlcklkZW50aWZpZXIsIFtwcm9taXNlUG9pbnRlciwgY2xpZW50SWRlbnRpZmllciwgZGF0YSA9
IGNyb3NzVGhyZWFkQ29weShjbGllbnREYXRhKV0gKGF1dG8mIGNvbnRleHQpIG11dGFibGUgewor
ICAgICAgICBjb25uZWN0aW9uLT5maW5kQ2xpZW50QnlJZGVudGlmaWVyKHNlcnZpY2VXb3JrZXJJ
ZGVudGlmaWVyLCBjbGllbnRJZGVudGlmaWVyLCBbcHJvbWlzZVBvaW50ZXIsIHNlcnZpY2VXb3Jr
ZXJJZGVudGlmaWVyXSAoYXV0byYmIGNsaWVudERhdGEpIHsKKyAgICAgICAgICAgIFNXQ29udGV4
dE1hbmFnZXI6OnNpbmdsZXRvbigpLnBvc3RUYXNrVG9TZXJ2aWNlV29ya2VyKHNlcnZpY2VXb3Jr
ZXJJZGVudGlmaWVyLCBbcHJvbWlzZVBvaW50ZXIsIGRhdGEgPSBjcm9zc1RocmVhZENvcHkoY2xp
ZW50RGF0YSldIChhdXRvJiBjb250ZXh0KSBtdXRhYmxlIHsKICAgICAgICAgICAgICAgICBpZiAo
YXV0byBwcm9taXNlID0gY29udGV4dC5jbGllbnRzKCkubV9wZW5kaW5nUHJvbWlzZXMudGFrZShw
cm9taXNlUG9pbnRlcikpCi0gICAgICAgICAgICAgICAgICAgIGRpZEZpbmlzaEdldFJlcXVlc3Qo
Y29udGV4dCwgKnByb21pc2UsIGNsaWVudElkZW50aWZpZXIsIFdURk1vdmUoZGF0YSkpOworICAg
ICAgICAgICAgICAgICAgICBkaWRGaW5pc2hHZXRSZXF1ZXN0KGNvbnRleHQsICpwcm9taXNlLCBX
VEZNb3ZlKGRhdGEpKTsKICAgICAgICAgICAgIH0pOwogICAgICAgICB9KTsKICAgICB9KTsKIH0K
IAogCi1zdGF0aWMgaW5saW5lIHZvaWQgbWF0Y2hBbGxDb21wbGV0ZWQoU2VydmljZVdvcmtlckds
b2JhbFNjb3BlJiBzY29wZSwgRGVmZXJyZWRQcm9taXNlJiBwcm9taXNlLCBWZWN0b3I8U2Vydmlj
ZVdvcmtlckNsaWVudEluZm9ybWF0aW9uPiYmIGNsaWVudHNEYXRhKQorc3RhdGljIGlubGluZSB2
b2lkIG1hdGNoQWxsQ29tcGxldGVkKFNlcnZpY2VXb3JrZXJHbG9iYWxTY29wZSYgc2NvcGUsIERl
ZmVycmVkUHJvbWlzZSYgcHJvbWlzZSwgVmVjdG9yPFNlcnZpY2VXb3JrZXJDbGllbnREYXRhPiYm
IGNsaWVudHNEYXRhKQogewotICAgIGF1dG8gY2xpZW50cyA9IFdURjo6bWFwKGNsaWVudHNEYXRh
LCBbJl0gKGF1dG8mJiBjbGllbnQpIHsKLSAgICAgICAgcmV0dXJuIFNlcnZpY2VXb3JrZXJDbGll
bnQ6OmdldE9yQ3JlYXRlKHNjb3BlLCBjbGllbnQuaWRlbnRpZmllciwgV1RGTW92ZShjbGllbnQu
ZGF0YSkpOworICAgIGF1dG8gY2xpZW50cyA9IFdURjo6bWFwKGNsaWVudHNEYXRhLCBbJl0gKGF1
dG8mJiBjbGllbnREYXRhKSB7CisgICAgICAgIHJldHVybiBTZXJ2aWNlV29ya2VyQ2xpZW50Ojpn
ZXRPckNyZWF0ZShzY29wZSwgV1RGTW92ZShjbGllbnREYXRhKSk7CiAgICAgfSk7CiAgICAgcHJv
bWlzZS5yZXNvbHZlPElETFNlcXVlbmNlPElETEludGVyZmFjZTxTZXJ2aWNlV29ya2VyQ2xpZW50
Pj4+KFdURk1vdmUoY2xpZW50cykpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvd29y
a2Vycy9zZXJ2aWNlL1NlcnZpY2VXb3JrZXJUeXBlcy5oIGIvU291cmNlL1dlYkNvcmUvd29ya2Vy
cy9zZXJ2aWNlL1NlcnZpY2VXb3JrZXJUeXBlcy5oCmluZGV4IDhkMTUyZDM2Nzk0YTRiNDRkZjM1
NDg2MWU0ZjIzNDFlOTY1ZGRhMTUuLmI5Y2FiNzM1MzFjYWZhZWFkMjRiZWU5NGE1YjQ5OTkxZjQ0
NTI2ZGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9TZXJ2aWNl
V29ya2VyVHlwZXMuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvU2Vydmlj
ZVdvcmtlclR5cGVzLmgKQEAgLTM1LDYgKzM1LDkgQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewog
CitzdHJ1Y3QgU2VydmljZVdvcmtlckRhdGE7CitzdHJ1Y3QgU2VydmljZVdvcmtlckNsaWVudERh
dGE7CisKIGVudW0gY2xhc3MgU2VydmljZVdvcmtlclJlZ2lzdHJhdGlvblN0YXRlIHsKICAgICBJ
bnN0YWxsaW5nID0gMCwKICAgICBXYWl0aW5nID0gMSwKQEAgLTcyLDYgKzc1LDggQEAgdXNpbmcg
U1dTZXJ2ZXJDb25uZWN0aW9uSWRlbnRpZmllciA9IE9iamVjdElkZW50aWZpZXI8U1dTZXJ2ZXJD
b25uZWN0aW9uSWRlbnRpZmkKIAogdXNpbmcgRG9jdW1lbnRPcldvcmtlcklkZW50aWZpZXIgPSBW
YXJpYW50PERvY3VtZW50SWRlbnRpZmllciwgU2VydmljZVdvcmtlcklkZW50aWZpZXI+OwogCit1
c2luZyBTZXJ2aWNlV29ya2VyT3JDbGllbnREYXRhID0gVmFyaWFudDxTZXJ2aWNlV29ya2VyRGF0
YSwgU2VydmljZVdvcmtlckNsaWVudERhdGE+OworCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAK
IG5hbWVzcGFjZSBXVEYgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2
aWNlL1NlcnZpY2VXb3JrZXJXaW5kb3dDbGllbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvd29ya2Vy
cy9zZXJ2aWNlL1NlcnZpY2VXb3JrZXJXaW5kb3dDbGllbnQuY3BwCmluZGV4IDIwNWJhNTNiNDcy
ZTdkZTk1MTZlNmM5NTg2MTkxMWVmYmUyY2RmNTkuLjgyZmJiMWYyZWVlM2NjZjc4OWI3ZmFjZDhh
M2NlMGU2MzFjOTkyMTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2Vydmlj
ZS9TZXJ2aWNlV29ya2VyV2luZG93Q2xpZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS93b3Jr
ZXJzL3NlcnZpY2UvU2VydmljZVdvcmtlcldpbmRvd0NsaWVudC5jcHAKQEAgLTMyLDggKzMyLDgg
QEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1TZXJ2aWNlV29ya2VyV2luZG93Q2xpZW50OjpT
ZXJ2aWNlV29ya2VyV2luZG93Q2xpZW50KFNlcnZpY2VXb3JrZXJHbG9iYWxTY29wZSYgY29udGV4
dCwgU2VydmljZVdvcmtlckNsaWVudElkZW50aWZpZXIgaWRlbnRpZmllciwgU2VydmljZVdvcmtl
ckNsaWVudERhdGEmJiBkYXRhKQotICAgIDogU2VydmljZVdvcmtlckNsaWVudChjb250ZXh0LCBp
ZGVudGlmaWVyLCBXVEZNb3ZlKGRhdGEpKQorU2VydmljZVdvcmtlcldpbmRvd0NsaWVudDo6U2Vy
dmljZVdvcmtlcldpbmRvd0NsaWVudChTZXJ2aWNlV29ya2VyR2xvYmFsU2NvcGUmIGNvbnRleHQs
IFNlcnZpY2VXb3JrZXJDbGllbnREYXRhJiYgZGF0YSkKKyAgICA6IFNlcnZpY2VXb3JrZXJDbGll
bnQoY29udGV4dCwgV1RGTW92ZShkYXRhKSkKIHsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvd29ya2Vycy9zZXJ2aWNlL1NlcnZpY2VXb3JrZXJXaW5kb3dDbGllbnQuaCBiL1NvdXJj
ZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9TZXJ2aWNlV29ya2VyV2luZG93Q2xpZW50LmgKaW5k
ZXggMWMxZTc1OTlmOGZmOGZlMTE2OTEyZjE2ZDlmNGEyNTg3NTc2OGVmMy4uZjQzYzJjNmQwNzA0
ZWIxYzA3NDdjODUzNmMzYTg4ZjkyODc0NWIxZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
d29ya2Vycy9zZXJ2aWNlL1NlcnZpY2VXb3JrZXJXaW5kb3dDbGllbnQuaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvU2VydmljZVdvcmtlcldpbmRvd0NsaWVudC5oCkBAIC0z
Nyw5ICszNyw5IEBAIGNsYXNzIFNlcnZpY2VXb3JrZXJHbG9iYWxTY29wZTsKIAogY2xhc3MgU2Vy
dmljZVdvcmtlcldpbmRvd0NsaWVudCBmaW5hbCA6IHB1YmxpYyBTZXJ2aWNlV29ya2VyQ2xpZW50
IHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgUmVmPFNlcnZpY2VXb3JrZXJXaW5kb3dDbGllbnQ+IGNy
ZWF0ZShTZXJ2aWNlV29ya2VyR2xvYmFsU2NvcGUmIGNvbnRleHQsIFNlcnZpY2VXb3JrZXJDbGll
bnRJZGVudGlmaWVyIGlkZW50aWZpZXIsIFNlcnZpY2VXb3JrZXJDbGllbnREYXRhJiYgZGF0YSkK
KyAgICBzdGF0aWMgUmVmPFNlcnZpY2VXb3JrZXJXaW5kb3dDbGllbnQ+IGNyZWF0ZShTZXJ2aWNl
V29ya2VyR2xvYmFsU2NvcGUmIGNvbnRleHQsIFNlcnZpY2VXb3JrZXJDbGllbnREYXRhJiYgZGF0
YSkKICAgICB7Ci0gICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFNlcnZpY2VXb3JrZXJXaW5k
b3dDbGllbnQoY29udGV4dCwgaWRlbnRpZmllciwgV1RGTW92ZShkYXRhKSkpOworICAgICAgICBy
ZXR1cm4gYWRvcHRSZWYoKm5ldyBTZXJ2aWNlV29ya2VyV2luZG93Q2xpZW50KGNvbnRleHQsIFdU
Rk1vdmUoZGF0YSkpKTsKICAgICB9CiAKICAgICBWaXNpYmlsaXR5U3RhdGUgdmlzaWJpbGl0eVN0
YXRlKCkgY29uc3Q7CkBAIC00OSw3ICs0OSw3IEBAIHB1YmxpYzoKICAgICB2b2lkIG5hdmlnYXRl
KGNvbnN0IFN0cmluZyYgdXJsLCBSZWY8RGVmZXJyZWRQcm9taXNlPiYmKTsKIAogcHJpdmF0ZToK
LSAgICBTZXJ2aWNlV29ya2VyV2luZG93Q2xpZW50KFNlcnZpY2VXb3JrZXJHbG9iYWxTY29wZSYs
IFNlcnZpY2VXb3JrZXJDbGllbnRJZGVudGlmaWVyLCBTZXJ2aWNlV29ya2VyQ2xpZW50RGF0YSYm
KTsKKyAgICBTZXJ2aWNlV29ya2VyV2luZG93Q2xpZW50KFNlcnZpY2VXb3JrZXJHbG9iYWxTY29w
ZSYsIFNlcnZpY2VXb3JrZXJDbGllbnREYXRhJiYpOwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2Vi
Q29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL2NvbnRleHQv
U1dDb250ZXh0TWFuYWdlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvY29u
dGV4dC9TV0NvbnRleHRNYW5hZ2VyLmNwcAppbmRleCAzYTU5OWRhYzg4ZWQxNWY4Nzc4ZGI2ZTQ3
MWFhZWJkOTI5MzkyNTI4Li41YjcwNTk1NGIyM2NmN2U4MTE4ZjA3NjI1MGM4YjI4YTcxZjM1ZmJm
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvY29udGV4dC9TV0Nv
bnRleHRNYW5hZ2VyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvY29u
dGV4dC9TV0NvbnRleHRNYW5hZ2VyLmNwcApAQCAtNjcsMTcgKzY3LDcgQEAgU2VydmljZVdvcmtl
clRocmVhZFByb3h5KiBTV0NvbnRleHRNYW5hZ2VyOjpzZXJ2aWNlV29ya2VyVGhyZWFkUHJveHko
U2VydmljZVdvcmsKICAgICByZXR1cm4gbV93b3JrZXJNYXAuZ2V0KGlkZW50aWZpZXIpOwogfQog
Ci12b2lkIFNXQ29udGV4dE1hbmFnZXI6OnBvc3RNZXNzYWdlVG9TZXJ2aWNlV29ya2VyKFNlcnZp
Y2VXb3JrZXJJZGVudGlmaWVyIGRlc3RpbmF0aW9uLCBSZWY8U2VyaWFsaXplZFNjcmlwdFZhbHVl
PiYmIG1lc3NhZ2UsIFNlcnZpY2VXb3JrZXJDbGllbnRJZGVudGlmaWVyIHNvdXJjZUlkZW50aWZp
ZXIsIFNlcnZpY2VXb3JrZXJDbGllbnREYXRhJiYgc291cmNlRGF0YSkKLXsKLSAgICBhdXRvKiBz
ZXJ2aWNlV29ya2VyID0gbV93b3JrZXJNYXAuZ2V0KGRlc3RpbmF0aW9uKTsKLSAgICBBU1NFUlQo
c2VydmljZVdvcmtlcik7Ci0gICAgQVNTRVJUKCFzZXJ2aWNlV29ya2VyLT5pc1Rlcm1pbmF0aW5n
T3JUZXJtaW5hdGVkKCkpOwotCi0gICAgLy8gRklYTUU6IFdlIHNob3VsZCBwYXNzIHZhbGlkIE1l
c3NhZ2VQb3J0Q2hhbm5lbHMuCi0gICAgc2VydmljZVdvcmtlci0+dGhyZWFkKCkucG9zdE1lc3Nh
Z2VUb1NlcnZpY2VXb3JrZXIoV1RGTW92ZShtZXNzYWdlKSwgbnVsbHB0ciwgc291cmNlSWRlbnRp
ZmllciwgV1RGTW92ZShzb3VyY2VEYXRhKSk7Ci19Ci0KLXZvaWQgU1dDb250ZXh0TWFuYWdlcjo6
cG9zdE1lc3NhZ2VUb1NlcnZpY2VXb3JrZXIoU2VydmljZVdvcmtlcklkZW50aWZpZXIgZGVzdGlu
YXRpb24sIFJlZjxTZXJpYWxpemVkU2NyaXB0VmFsdWU+JiYgbWVzc2FnZSwgU2VydmljZVdvcmtl
ckRhdGEmJiBzb3VyY2VEYXRhKQordm9pZCBTV0NvbnRleHRNYW5hZ2VyOjpwb3N0TWVzc2FnZVRv
U2VydmljZVdvcmtlcihTZXJ2aWNlV29ya2VySWRlbnRpZmllciBkZXN0aW5hdGlvbiwgUmVmPFNl
cmlhbGl6ZWRTY3JpcHRWYWx1ZT4mJiBtZXNzYWdlLCBTZXJ2aWNlV29ya2VyT3JDbGllbnREYXRh
JiYgc291cmNlRGF0YSkKIHsKICAgICBhdXRvKiBzZXJ2aWNlV29ya2VyID0gbV93b3JrZXJNYXAu
Z2V0KGRlc3RpbmF0aW9uKTsKICAgICBBU1NFUlQoc2VydmljZVdvcmtlcik7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvY29udGV4dC9TV0NvbnRleHRNYW5hZ2Vy
LmggYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvY29udGV4dC9TV0NvbnRleHRNYW5h
Z2VyLmgKaW5kZXggZjRlMDIyMTljYWY1ZDhhMzNhY2NkYzc3NTAyYzE1ZWIwYmI2MTRkZC4uYjI1
MjkwOTYzZTUyYmRmM2NiMDg0NGE2N2NhYmRmYmMzYWM2MmExNyAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL2NvbnRleHQvU1dDb250ZXh0TWFuYWdlci5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9jb250ZXh0L1NXQ29udGV4dE1hbmFnZXIu
aApAQCAtMjgsNyArMjgsNyBAQAogI2lmIEVOQUJMRShTRVJWSUNFX1dPUktFUikKIAogI2luY2x1
ZGUgIkV4Y2VwdGlvbk9yLmgiCi0jaW5jbHVkZSAiU2VydmljZVdvcmtlckNsaWVudEluZm9ybWF0
aW9uLmgiCisjaW5jbHVkZSAiU2VydmljZVdvcmtlckNsaWVudERhdGEuaCIKICNpbmNsdWRlICJT
ZXJ2aWNlV29ya2VyQ2xpZW50UXVlcnlPcHRpb25zLmgiCiAjaW5jbHVkZSAiU2VydmljZVdvcmtl
cklkZW50aWZpZXIuaCIKICNpbmNsdWRlICJTZXJ2aWNlV29ya2VyVGhyZWFkUHJveHkuaCIKQEAg
LTY3LDggKzY3LDcgQEAgcHVibGljOgogCiAgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCByZWdpc3Rl
clNlcnZpY2VXb3JrZXJUaHJlYWRGb3JJbnN0YWxsKFJlZjxTZXJ2aWNlV29ya2VyVGhyZWFkUHJv
eHk+JiYpOwogICAgIFdFQkNPUkVfRVhQT1JUIFNlcnZpY2VXb3JrZXJUaHJlYWRQcm94eSogc2Vy
dmljZVdvcmtlclRocmVhZFByb3h5KFNlcnZpY2VXb3JrZXJJZGVudGlmaWVyKSBjb25zdDsKLSAg
ICBXRUJDT1JFX0VYUE9SVCB2b2lkIHBvc3RNZXNzYWdlVG9TZXJ2aWNlV29ya2VyKFNlcnZpY2VX
b3JrZXJJZGVudGlmaWVyIGRlc3RpbmF0aW9uLCBSZWY8U2VyaWFsaXplZFNjcmlwdFZhbHVlPiYm
IG1lc3NhZ2UsIFNlcnZpY2VXb3JrZXJDbGllbnRJZGVudGlmaWVyIHNvdXJjZUlkZW50aWZpZXIs
IFNlcnZpY2VXb3JrZXJDbGllbnREYXRhJiYgc291cmNlRGF0YSk7Ci0gICAgV0VCQ09SRV9FWFBP
UlQgdm9pZCBwb3N0TWVzc2FnZVRvU2VydmljZVdvcmtlcihTZXJ2aWNlV29ya2VySWRlbnRpZmll
ciBkZXN0aW5hdGlvbiwgUmVmPFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZT4mJiBtZXNzYWdlLCBTZXJ2
aWNlV29ya2VyRGF0YSYmIHNvdXJjZURhdGEpOworICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgcG9z
dE1lc3NhZ2VUb1NlcnZpY2VXb3JrZXIoU2VydmljZVdvcmtlcklkZW50aWZpZXIgZGVzdGluYXRp
b24sIFJlZjxTZXJpYWxpemVkU2NyaXB0VmFsdWU+JiYgbWVzc2FnZSwgU2VydmljZVdvcmtlck9y
Q2xpZW50RGF0YSYmIHNvdXJjZURhdGEpOwogICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgZmlyZUlu
c3RhbGxFdmVudChTZXJ2aWNlV29ya2VySWRlbnRpZmllcik7CiAgICAgV0VCQ09SRV9FWFBPUlQg
dm9pZCBmaXJlQWN0aXZhdGVFdmVudChTZXJ2aWNlV29ya2VySWRlbnRpZmllcik7CiAgICAgV0VC
Q09SRV9FWFBPUlQgdm9pZCB0ZXJtaW5hdGVXb3JrZXIoU2VydmljZVdvcmtlcklkZW50aWZpZXIs
IEZ1bmN0aW9uPHZvaWQoKT4mJik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJz
L3NlcnZpY2UvY29udGV4dC9TZXJ2aWNlV29ya2VyVGhyZWFkLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L3dvcmtlcnMvc2VydmljZS9jb250ZXh0L1NlcnZpY2VXb3JrZXJUaHJlYWQuY3BwCmluZGV4IDY3
Yzk4MDYxZDcxODMzMDYzNmM5OTI5NWFkZThhMWI2Yzk5MzA5ZDcuLmZiY2ZjN2EwZDFiZjIyY2I3
ODI4ODVlMTUxMzk2ODk2YzBhZjQ3M2QgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3dvcmtl
cnMvc2VydmljZS9jb250ZXh0L1NlcnZpY2VXb3JrZXJUaHJlYWQuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3dvcmtlcnMvc2VydmljZS9jb250ZXh0L1NlcnZpY2VXb3JrZXJUaHJlYWQuY3BwCkBA
IC0xMTEsMjMgKzExMSwyMiBAQCBzdGF0aWMgdm9pZCBmaXJlTWVzc2FnZUV2ZW50KFNlcnZpY2VX
b3JrZXJHbG9iYWxTY29wZSYgc2NvcGUsIFJlZjxTZXJpYWxpemVkU2NyaQogICAgIHNjb3BlLnVw
ZGF0ZUV4dGVuZGVkRXZlbnRzU2V0KG1lc3NhZ2VFdmVudC5wdHIoKSk7CiB9CiAKLXZvaWQgU2Vy
dmljZVdvcmtlclRocmVhZDo6cG9zdE1lc3NhZ2VUb1NlcnZpY2VXb3JrZXIoUmVmPFNlcmlhbGl6
ZWRTY3JpcHRWYWx1ZT4mJiBtZXNzYWdlLCBzdGQ6OnVuaXF1ZV9wdHI8TWVzc2FnZVBvcnRDaGFu
bmVsQXJyYXk+JiYgY2hhbm5lbHMsIFNlcnZpY2VXb3JrZXJDbGllbnRJZGVudGlmaWVyIHNvdXJj
ZUlkZW50aWZpZXIsIFNlcnZpY2VXb3JrZXJDbGllbnREYXRhJiYgc291cmNlRGF0YSkKK3ZvaWQg
U2VydmljZVdvcmtlclRocmVhZDo6cG9zdE1lc3NhZ2VUb1NlcnZpY2VXb3JrZXIoUmVmPFNlcmlh
bGl6ZWRTY3JpcHRWYWx1ZT4mJiBtZXNzYWdlLCBzdGQ6OnVuaXF1ZV9wdHI8TWVzc2FnZVBvcnRD
aGFubmVsQXJyYXk+JiYgY2hhbm5lbHMsIFNlcnZpY2VXb3JrZXJPckNsaWVudERhdGEmJiBzb3Vy
Y2VEYXRhKQogewotICAgIHJ1bkxvb3AoKS5wb3N0VGFzayhbY2hhbm5lbHMgPSBXVEZNb3ZlKGNo
YW5uZWxzKSwgbWVzc2FnZSA9IFdURk1vdmUobWVzc2FnZSksIHNvdXJjZUlkZW50aWZpZXIsIHNv
dXJjZURhdGEgPSBzb3VyY2VEYXRhLmlzb2xhdGVkQ29weSgpXSAoYXV0byYgY29udGV4dCkgbXV0
YWJsZSB7CisgICAgcnVuTG9vcCgpLnBvc3RUYXNrKFtjaGFubmVscyA9IFdURk1vdmUoY2hhbm5l
bHMpLCBtZXNzYWdlID0gV1RGTW92ZShtZXNzYWdlKSwgc291cmNlRGF0YSA9IFdURk1vdmUoc291
cmNlRGF0YSldIChhdXRvJiBjb250ZXh0KSBtdXRhYmxlIHsKICAgICAgICAgYXV0byYgc2Vydmlj
ZVdvcmtlckdsb2JhbFNjb3BlID0gZG93bmNhc3Q8U2VydmljZVdvcmtlckdsb2JhbFNjb3BlPihj
b250ZXh0KTsKLSAgICAgICAgUmVmUHRyPFNlcnZpY2VXb3JrZXJDbGllbnQ+IHNvdXJjZSA9IFNl
cnZpY2VXb3JrZXJDbGllbnQ6OmdldE9yQ3JlYXRlKHNlcnZpY2VXb3JrZXJHbG9iYWxTY29wZSwg
c291cmNlSWRlbnRpZmllciwgV1RGTW92ZShzb3VyY2VEYXRhKSk7Ci0gICAgICAgIGF1dG8gc291
cmNlT3JpZ2luID0gU2VjdXJpdHlPcmlnaW46OmNyZWF0ZShzb3VyY2UtPnVybCgpKTsKLSAgICAg
ICAgZmlyZU1lc3NhZ2VFdmVudChzZXJ2aWNlV29ya2VyR2xvYmFsU2NvcGUsIFdURk1vdmUobWVz
c2FnZSksIFdURk1vdmUoY2hhbm5lbHMpLCBFeHRlbmRhYmxlTWVzc2FnZUV2ZW50U291cmNlIHsg
c291cmNlIH0sIFdURk1vdmUoc291cmNlT3JpZ2luKSk7Ci0gICAgfSk7Ci19Ci0KLXZvaWQgU2Vy
dmljZVdvcmtlclRocmVhZDo6cG9zdE1lc3NhZ2VUb1NlcnZpY2VXb3JrZXIoUmVmPFNlcmlhbGl6
ZWRTY3JpcHRWYWx1ZT4mJiBtZXNzYWdlLCBzdGQ6OnVuaXF1ZV9wdHI8TWVzc2FnZVBvcnRDaGFu
bmVsQXJyYXk+JiYgY2hhbm5lbHMsIFNlcnZpY2VXb3JrZXJEYXRhJiYgc291cmNlRGF0YSkKLXsK
LSAgICBydW5Mb29wKCkucG9zdFRhc2soW2NoYW5uZWxzID0gV1RGTW92ZShjaGFubmVscyksIG1l
c3NhZ2UgPSBXVEZNb3ZlKG1lc3NhZ2UpLCBzb3VyY2VEYXRhID0gc291cmNlRGF0YS5pc29sYXRl
ZENvcHkoKV0gKGF1dG8mIGNvbnRleHQpIG11dGFibGUgewotICAgICAgICBhdXRvJiBzZXJ2aWNl
V29ya2VyR2xvYmFsU2NvcGUgPSBkb3duY2FzdDxTZXJ2aWNlV29ya2VyR2xvYmFsU2NvcGU+KGNv
bnRleHQpOwotICAgICAgICBSZWZQdHI8U2VydmljZVdvcmtlcj4gc291cmNlID0gU2VydmljZVdv
cmtlcjo6Z2V0T3JDcmVhdGUoc2VydmljZVdvcmtlckdsb2JhbFNjb3BlLCBXVEZNb3ZlKHNvdXJj
ZURhdGEpKTsKLSAgICAgICAgYXV0byBzb3VyY2VPcmlnaW4gPSBTZWN1cml0eU9yaWdpbjo6Y3Jl
YXRlKHNvdXJjZS0+c2NyaXB0VVJMKCkpOwotICAgICAgICBmaXJlTWVzc2FnZUV2ZW50KGRvd25j
YXN0PFNlcnZpY2VXb3JrZXJHbG9iYWxTY29wZT4oY29udGV4dCksIFdURk1vdmUobWVzc2FnZSks
IFdURk1vdmUoY2hhbm5lbHMpLCBFeHRlbmRhYmxlTWVzc2FnZUV2ZW50U291cmNlIHsgc291cmNl
IH0sIFdURk1vdmUoc291cmNlT3JpZ2luKSk7CisgICAgICAgIFJlZlB0cjxTZWN1cml0eU9yaWdp
bj4gc291cmNlT3JpZ2luOworICAgICAgICBFeHRlbmRhYmxlTWVzc2FnZUV2ZW50U291cmNlIHNv
dXJjZTsKKyAgICAgICAgaWYgKFdURjo6aG9sZHNfYWx0ZXJuYXRpdmU8U2VydmljZVdvcmtlckNs
aWVudERhdGE+KHNvdXJjZURhdGEpKSB7CisgICAgICAgICAgICBhdXRvIHNvdXJjZUNsaWVudCA9
IFNlcnZpY2VXb3JrZXJDbGllbnQ6OmdldE9yQ3JlYXRlKHNlcnZpY2VXb3JrZXJHbG9iYWxTY29w
ZSwgV1RGTW92ZShXVEY6OmdldDxTZXJ2aWNlV29ya2VyQ2xpZW50RGF0YT4oc291cmNlRGF0YSkp
KTsKKyAgICAgICAgICAgIHNvdXJjZU9yaWdpbiA9IFNlY3VyaXR5T3JpZ2luOjpjcmVhdGUoc291
cmNlQ2xpZW50LT51cmwoKSk7CisgICAgICAgICAgICBzb3VyY2UgPSBSZWZQdHI8U2VydmljZVdv
cmtlckNsaWVudD4geyBXVEZNb3ZlKHNvdXJjZUNsaWVudCkgfTsKKyAgICAgICAgfSBlbHNlIHsK
KyAgICAgICAgICAgIGF1dG8gc291cmNlV29ya2VyID0gU2VydmljZVdvcmtlcjo6Z2V0T3JDcmVh
dGUoc2VydmljZVdvcmtlckdsb2JhbFNjb3BlLCBXVEZNb3ZlKFdURjo6Z2V0PFNlcnZpY2VXb3Jr
ZXJEYXRhPihzb3VyY2VEYXRhKSkpOworICAgICAgICAgICAgc291cmNlT3JpZ2luID0gU2VjdXJp
dHlPcmlnaW46OmNyZWF0ZShzb3VyY2VXb3JrZXItPnNjcmlwdFVSTCgpKTsKKyAgICAgICAgICAg
IHNvdXJjZSA9IFJlZlB0cjxTZXJ2aWNlV29ya2VyPiB7IFdURk1vdmUoc291cmNlV29ya2VyKSB9
OworICAgICAgICB9CisgICAgICAgIGZpcmVNZXNzYWdlRXZlbnQoc2VydmljZVdvcmtlckdsb2Jh
bFNjb3BlLCBXVEZNb3ZlKG1lc3NhZ2UpLCBXVEZNb3ZlKGNoYW5uZWxzKSwgRXh0ZW5kYWJsZU1l
c3NhZ2VFdmVudFNvdXJjZSB7IHNvdXJjZSB9LCBzb3VyY2VPcmlnaW4ucmVsZWFzZU5vbk51bGwo
KSk7CiAgICAgfSk7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2Vy
dmljZS9jb250ZXh0L1NlcnZpY2VXb3JrZXJUaHJlYWQuaCBiL1NvdXJjZS9XZWJDb3JlL3dvcmtl
cnMvc2VydmljZS9jb250ZXh0L1NlcnZpY2VXb3JrZXJUaHJlYWQuaAppbmRleCAxZGRiZGNkMGVj
MjRjOGYxZmU1YzUxZjg0MWYxNTc2NmYxOGI2Y2JkLi5lNDVjZmJiYWU1MWY4ZDBkMzgxM2FhZTZi
YWUzZTY5NGY1YTRmZmU5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZp
Y2UvY29udGV4dC9TZXJ2aWNlV29ya2VyVGhyZWFkLmgKKysrIGIvU291cmNlL1dlYkNvcmUvd29y
a2Vycy9zZXJ2aWNlL2NvbnRleHQvU2VydmljZVdvcmtlclRocmVhZC5oCkBAIC01OCw4ICs1OCw3
IEBAIHB1YmxpYzoKIAogICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgcG9zdEZldGNoVGFzayhSZWY8
U2VydmljZVdvcmtlckZldGNoOjpDbGllbnQ+JiYsIFJlc291cmNlUmVxdWVzdCYmLCBGZXRjaE9w
dGlvbnMmJik7CiAgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBwb3N0RmV0Y2hUYXNrKFJlZjxTZXJ2
aWNlV29ya2VyRmV0Y2g6OkNsaWVudD4mJiwgc3RkOjpvcHRpb25hbDxTZXJ2aWNlV29ya2VyQ2xp
ZW50SWRlbnRpZmllcj4mJiwgUmVzb3VyY2VSZXF1ZXN0JiYsIEZldGNoT3B0aW9ucyYmKTsKLSAg
ICBXRUJDT1JFX0VYUE9SVCB2b2lkIHBvc3RNZXNzYWdlVG9TZXJ2aWNlV29ya2VyKFJlZjxTZXJp
YWxpemVkU2NyaXB0VmFsdWU+JiYsIHN0ZDo6dW5pcXVlX3B0cjxNZXNzYWdlUG9ydENoYW5uZWxB
cnJheT4mJiwgU2VydmljZVdvcmtlckNsaWVudElkZW50aWZpZXIgc291cmNlSWRlbnRpZmllciwg
U2VydmljZVdvcmtlckNsaWVudERhdGEmJiBzb3VyY2VEYXRhKTsKLSAgICBXRUJDT1JFX0VYUE9S
VCB2b2lkIHBvc3RNZXNzYWdlVG9TZXJ2aWNlV29ya2VyKFJlZjxTZXJpYWxpemVkU2NyaXB0VmFs
dWU+JiYsIHN0ZDo6dW5pcXVlX3B0cjxNZXNzYWdlUG9ydENoYW5uZWxBcnJheT4mJiwgU2Vydmlj
ZVdvcmtlckRhdGEmJiBzb3VyY2VEYXRhKTsKKyAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHBvc3RN
ZXNzYWdlVG9TZXJ2aWNlV29ya2VyKFJlZjxTZXJpYWxpemVkU2NyaXB0VmFsdWU+JiYsIHN0ZDo6
dW5pcXVlX3B0cjxNZXNzYWdlUG9ydENoYW5uZWxBcnJheT4mJiwgU2VydmljZVdvcmtlck9yQ2xp
ZW50RGF0YSYmIHNvdXJjZURhdGEpOwogCiAgICAgdm9pZCBmaXJlSW5zdGFsbEV2ZW50KCk7CiAg
ICAgdm9pZCBmaXJlQWN0aXZhdGVFdmVudCgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
d29ya2Vycy9zZXJ2aWNlL3NlcnZlci9TV1NlcnZlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS93b3Jr
ZXJzL3NlcnZpY2Uvc2VydmVyL1NXU2VydmVyLmNwcAppbmRleCBhMzMyNTE4YTAzMDMwYzJjZmNm
YmIzZTBkODBiZmE2ODliMzQ0MjE2Li40MmM0NzExM2E3MTUwMzg3ODM5OTc3ZTY3NTAzNzU0ODli
YmIwNWEzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2Uvc2VydmVy
L1NXU2VydmVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2Uvc2VydmVy
L1NXU2VydmVyLmNwcApAQCAtMzQ2LDcgKzM0Niw3IEBAIHN0ZDo6b3B0aW9uYWw8U2VydmljZVdv
cmtlckNsaWVudERhdGE+IFNXU2VydmVyOjpmaW5kQ2xpZW50QnlJZGVudGlmaWVyKGNvbnN0IENs
CiAgICAgICAgIHJldHVybiBjbGllbnRJZGVudGlmaWVyID09IGNsaWVudC5pZGVudGlmaWVyOwog
ICAgIH0pOwogCi0gICAgcmV0dXJuIChwb3NpdGlvbiAhPSBub3RGb3VuZCkgPyBzdGQ6Om1ha2Vf
b3B0aW9uYWwoY2xpZW50c1twb3NpdGlvbl0uZGF0YSkgOiBzdGQ6Om51bGxvcHQ7CisgICAgcmV0
dXJuIChwb3NpdGlvbiAhPSBub3RGb3VuZCkgPyBzdGQ6Om1ha2Vfb3B0aW9uYWwoY2xpZW50c1tw
b3NpdGlvbl0pIDogc3RkOjpudWxsb3B0OwogfQogCiAvLyBodHRwczovL3czYy5naXRodWIuaW8v
U2VydmljZVdvcmtlci8jY2xpZW50cy1nZXRhbGwKQEAgLTM1OCwxMyArMzU4LDEzIEBAIHZvaWQg
U1dTZXJ2ZXI6Om1hdGNoQWxsKFNXU2VydmVyV29ya2VyJiB3b3JrZXIsIGNvbnN0IFNlcnZpY2VX
b3JrZXJDbGllbnRRdWVyeU9wCiAgICAgYXV0byBjbGllbnRzID0gbV9jbGllbnRzLmZpbmQod29y
a2VyLm9yaWdpbigpKS0+dmFsdWUuY2xpZW50czsKIAogICAgIGlmICghb3B0aW9ucy5pbmNsdWRl
VW5jb250cm9sbGVkKSB7Ci0gICAgICAgIGNsaWVudHMucmVtb3ZlQWxsTWF0Y2hpbmcoWyZdIChj
b25zdCBhdXRvJiBjbGllbnQpIHsKLSAgICAgICAgICAgIHJldHVybiB3b3JrZXIuaWRlbnRpZmll
cigpICE9IG1fY2xpZW50VG9Db250cm9sbGluZ1dvcmtlci5nZXQoY2xpZW50LmlkZW50aWZpZXIp
OworICAgICAgICBjbGllbnRzLnJlbW92ZUFsbE1hdGNoaW5nKFsmXSAoY29uc3QgYXV0byYgY2xp
ZW50RGF0YSkgeworICAgICAgICAgICAgcmV0dXJuIHdvcmtlci5pZGVudGlmaWVyKCkgIT0gbV9j
bGllbnRUb0NvbnRyb2xsaW5nV29ya2VyLmdldChjbGllbnREYXRhLmlkZW50aWZpZXIpOwogICAg
ICAgICB9KTsKICAgICB9CiAgICAgaWYgKG9wdGlvbnMudHlwZSAhPSBTZXJ2aWNlV29ya2VyQ2xp
ZW50VHlwZTo6QWxsKSB7Ci0gICAgICAgIGNsaWVudHMucmVtb3ZlQWxsTWF0Y2hpbmcoWyZdIChj
b25zdCBhdXRvJiBjbGllbnQpIHsKLSAgICAgICAgICAgIHJldHVybiBvcHRpb25zLnR5cGUgIT0g
Y2xpZW50LmRhdGEudHlwZTsKKyAgICAgICAgY2xpZW50cy5yZW1vdmVBbGxNYXRjaGluZyhbJl0g
KGNvbnN0IGF1dG8mIGNsaWVudERhdGEpIHsKKyAgICAgICAgICAgIHJldHVybiBvcHRpb25zLnR5
cGUgIT0gY2xpZW50RGF0YS50eXBlOwogICAgICAgICB9KTsKICAgICB9CiAgICAgY2FsbGJhY2so
V1RGTW92ZShjbGllbnRzKSk7CkBAIC0zNzgsMjAgKzM3OCwyMCBAQCB2b2lkIFNXU2VydmVyOjpj
bGFpbShTV1NlcnZlcldvcmtlciYgd29ya2VyKQogICAgICAgICByZXR1cm47CiAKICAgICBhdXRv
JiBjbGllbnRzID0gaXRlcmF0b3ItPnZhbHVlLmNsaWVudHM7Ci0gICAgZm9yIChhdXRvJiBjbGll
bnQgOiBjbGllbnRzKSB7Ci0gICAgICAgIGF1dG8qIHJlZ2lzdHJhdGlvbiA9IGRvUmVnaXN0cmF0
aW9uTWF0Y2hpbmcob3JpZ2luLnRvcE9yaWdpbiwgY2xpZW50LmRhdGEudXJsKTsKKyAgICBmb3Ig
KGF1dG8mIGNsaWVudERhdGEgOiBjbGllbnRzKSB7CisgICAgICAgIGF1dG8qIHJlZ2lzdHJhdGlv
biA9IGRvUmVnaXN0cmF0aW9uTWF0Y2hpbmcob3JpZ2luLnRvcE9yaWdpbiwgY2xpZW50RGF0YS51
cmwpOwogICAgICAgICBpZiAoIShyZWdpc3RyYXRpb24gJiYgcmVnaXN0cmF0aW9uLT5rZXkoKSA9
PSB3b3JrZXIucmVnaXN0cmF0aW9uS2V5KCkpKQogICAgICAgICAgICAgY29udGludWU7CiAKLSAg
ICAgICAgYXV0byByZXN1bHQgPSBtX2NsaWVudFRvQ29udHJvbGxpbmdXb3JrZXIuYWRkKGNsaWVu
dC5pZGVudGlmaWVyLCB3b3JrZXIuaWRlbnRpZmllcigpKTsKKyAgICAgICAgYXV0byByZXN1bHQg
PSBtX2NsaWVudFRvQ29udHJvbGxpbmdXb3JrZXIuYWRkKGNsaWVudERhdGEuaWRlbnRpZmllciwg
d29ya2VyLmlkZW50aWZpZXIoKSk7CiAgICAgICAgIGlmICghcmVzdWx0LmlzTmV3RW50cnkpIHsK
ICAgICAgICAgICAgIGlmIChyZXN1bHQuaXRlcmF0b3ItPnZhbHVlID09IHdvcmtlci5pZGVudGlm
aWVyKCkpCiAgICAgICAgICAgICAgICAgY29udGludWU7CiAgICAgICAgICAgICBpZiAoYXV0byog
Y29udHJvbGxpbmdSZWdpc3RyYXRpb24gPSByZWdpc3RyYXRpb25Gcm9tU2VydmljZVdvcmtlcklk
ZW50aWZpZXIocmVzdWx0Lml0ZXJhdG9yLT52YWx1ZSkpCi0gICAgICAgICAgICAgICAgY29udHJv
bGxpbmdSZWdpc3RyYXRpb24tPnJlbW92ZUNsaWVudFVzaW5nUmVnaXN0cmF0aW9uKGNsaWVudC5p
ZGVudGlmaWVyKTsKKyAgICAgICAgICAgICAgICBjb250cm9sbGluZ1JlZ2lzdHJhdGlvbi0+cmVt
b3ZlQ2xpZW50VXNpbmdSZWdpc3RyYXRpb24oY2xpZW50RGF0YS5pZGVudGlmaWVyKTsKICAgICAg
ICAgICAgIHJlc3VsdC5pdGVyYXRvci0+dmFsdWUgPSB3b3JrZXIuaWRlbnRpZmllcigpOwogICAg
ICAgICB9Ci0gICAgICAgIHJlZ2lzdHJhdGlvbi0+Y29udHJvbENsaWVudChjbGllbnQuaWRlbnRp
Zmllcik7CisgICAgICAgIHJlZ2lzdHJhdGlvbi0+Y29udHJvbENsaWVudChjbGllbnREYXRhLmlk
ZW50aWZpZXIpOwogICAgIH0KIH0KIApAQCAtNjg3LDE1ICs2ODcsMTUgQEAgU1dTZXJ2ZXJSZWdp
c3RyYXRpb24qIFNXU2VydmVyOjpyZWdpc3RyYXRpb25Gcm9tU2VydmljZVdvcmtlcklkZW50aWZp
ZXIoU2VydmljZVcKICAgICByZXR1cm4gbV9yZWdpc3RyYXRpb25zLmdldChpdGVyYXRvci0+dmFs
dWUtPnJlZ2lzdHJhdGlvbktleSgpKTsKIH0KIAotdm9pZCBTV1NlcnZlcjo6cmVnaXN0ZXJTZXJ2
aWNlV29ya2VyQ2xpZW50KENsaWVudE9yaWdpbiYmIGNsaWVudE9yaWdpbiwgU2VydmljZVdvcmtl
ckNsaWVudElkZW50aWZpZXIgY2xpZW50SWRlbnRpZmllciwgU2VydmljZVdvcmtlckNsaWVudERh
dGEmJiBkYXRhLCBjb25zdCBzdGQ6Om9wdGlvbmFsPFNlcnZpY2VXb3JrZXJJZGVudGlmaWVyPiYg
Y29udHJvbGxpbmdTZXJ2aWNlV29ya2VySWRlbnRpZmllcikKK3ZvaWQgU1dTZXJ2ZXI6OnJlZ2lz
dGVyU2VydmljZVdvcmtlckNsaWVudChDbGllbnRPcmlnaW4mJiBjbGllbnRPcmlnaW4sIFNlcnZp
Y2VXb3JrZXJDbGllbnREYXRhJiYgZGF0YSwgY29uc3Qgc3RkOjpvcHRpb25hbDxTZXJ2aWNlV29y
a2VySWRlbnRpZmllcj4mIGNvbnRyb2xsaW5nU2VydmljZVdvcmtlcklkZW50aWZpZXIpCiB7CiAg
ICAgYXV0byYgY2xpZW50c0RhdGEgPSBtX2NsaWVudHMuZW5zdXJlKFdURk1vdmUoY2xpZW50T3Jp
Z2luKSwgW10gewogICAgICAgICByZXR1cm4gQ2xpZW50cyB7IH07CiAgICAgfSkuaXRlcmF0b3It
PnZhbHVlOwogCi0gICAgY2xpZW50c0RhdGEuY2xpZW50cy5hcHBlbmQoU2VydmljZVdvcmtlckNs
aWVudEluZm9ybWF0aW9uIHsgY2xpZW50SWRlbnRpZmllciwgV1RGTW92ZShkYXRhKSB9KTsKLSAg
ICBpZiAoY2xpZW50c0RhdGEudGVybWluYXRlU2VydmljZVdvcmtlcnNUaW1lcikKLSAgICAgICAg
Y2xpZW50c0RhdGEudGVybWluYXRlU2VydmljZVdvcmtlcnNUaW1lciA9IG51bGxwdHI7CisgICAg
YXV0byBjbGllbnRJZGVudGlmaWVyID0gZGF0YS5pZGVudGlmaWVyOworICAgIGNsaWVudHNEYXRh
LmNsaWVudHMuYXBwZW5kKFdURk1vdmUoZGF0YSkpOworICAgIGNsaWVudHNEYXRhLnRlcm1pbmF0
ZVNlcnZpY2VXb3JrZXJzVGltZXIgPSBudWxscHRyOwogCiAgICAgaWYgKCFjb250cm9sbGluZ1Nl
cnZpY2VXb3JrZXJJZGVudGlmaWVyKQogICAgICAgICByZXR1cm47CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2Uvc2VydmVyL1NXU2VydmVyLmggYi9Tb3VyY2UvV2Vi
Q29yZS93b3JrZXJzL3NlcnZpY2Uvc2VydmVyL1NXU2VydmVyLmgKaW5kZXggOWEwZGJlZGJhMDlj
ZGI5YWY1YjRkZjNiODU3MDBmYmM3ZGJjY2Y3OC4uMWIyZjdkYzgwMzViNDE1ZTZiZjZhOTJjOTM5
YzBjMjJjZmYxOWNmZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNl
L3NlcnZlci9TV1NlcnZlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9z
ZXJ2ZXIvU1dTZXJ2ZXIuaApAQCAtMTU5LDcgKzE1OSw3IEBAIHB1YmxpYzoKICAgICAKICAgICBX
RUJDT1JFX0VYUE9SVCBzdGF0aWMgSGFzaFNldDxTV1NlcnZlcio+JiBhbGxTZXJ2ZXJzKCk7CiAK
LSAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHJlZ2lzdGVyU2VydmljZVdvcmtlckNsaWVudChDbGll
bnRPcmlnaW4mJiwgU2VydmljZVdvcmtlckNsaWVudElkZW50aWZpZXIsIFNlcnZpY2VXb3JrZXJD
bGllbnREYXRhJiYsIGNvbnN0IHN0ZDo6b3B0aW9uYWw8U2VydmljZVdvcmtlcklkZW50aWZpZXI+
JiBjb250cm9sbGluZ1NlcnZpY2VXb3JrZXJJZGVudGlmaWVyKTsKKyAgICBXRUJDT1JFX0VYUE9S
VCB2b2lkIHJlZ2lzdGVyU2VydmljZVdvcmtlckNsaWVudChDbGllbnRPcmlnaW4mJiwgU2Vydmlj
ZVdvcmtlckNsaWVudERhdGEmJiwgY29uc3Qgc3RkOjpvcHRpb25hbDxTZXJ2aWNlV29ya2VySWRl
bnRpZmllcj4mIGNvbnRyb2xsaW5nU2VydmljZVdvcmtlcklkZW50aWZpZXIpOwogICAgIFdFQkNP
UkVfRVhQT1JUIHZvaWQgdW5yZWdpc3RlclNlcnZpY2VXb3JrZXJDbGllbnQoY29uc3QgQ2xpZW50
T3JpZ2luJiwgU2VydmljZVdvcmtlckNsaWVudElkZW50aWZpZXIpOwogCiAgICAgdXNpbmcgUnVu
U2VydmljZVdvcmtlckNhbGxiYWNrID0gV1RGOjpGdW5jdGlvbjx2b2lkKGJvb2wsIFNXU2VydmVy
VG9Db250ZXh0Q29ubmVjdGlvbiYpPjsKQEAgLTIwNyw3ICsyMDcsNyBAQCBwcml2YXRlOgogICAg
IEhhc2hNYXA8U2VydmljZVdvcmtlcklkZW50aWZpZXIsIFJlZjxTV1NlcnZlcldvcmtlcj4+IG1f
cnVubmluZ09yVGVybWluYXRpbmdXb3JrZXJzOwogCiAgICAgc3RydWN0IENsaWVudHMgewotICAg
ICAgICBWZWN0b3I8U2VydmljZVdvcmtlckNsaWVudEluZm9ybWF0aW9uPiBjbGllbnRzOworICAg
ICAgICBWZWN0b3I8U2VydmljZVdvcmtlckNsaWVudERhdGE+IGNsaWVudHM7CiAgICAgICAgIHN0
ZDo6dW5pcXVlX3B0cjxUaW1lcj4gdGVybWluYXRlU2VydmljZVdvcmtlcnNUaW1lcjsKICAgICB9
OwogICAgIEhhc2hNYXA8Q2xpZW50T3JpZ2luLCBDbGllbnRzPiBtX2NsaWVudHM7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2Uvc2VydmVyL1NXU2VydmVyVG9Db250
ZXh0Q29ubmVjdGlvbi5oIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL3NlcnZlci9T
V1NlcnZlclRvQ29udGV4dENvbm5lY3Rpb24uaAppbmRleCBiN2U2MjcxZTgxMjcxNzkzZTUyZjBm
MmEwOGU4ZDAzZTY3ZWE3MWU4Li4xMzVlMmMwNjBjNzdmODM1NWU2MjhjM2M1ZWM1NTk5MTM4YmFl
NjI5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2Uvc2VydmVyL1NX
U2VydmVyVG9Db250ZXh0Q29ubmVjdGlvbi5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMv
c2VydmljZS9zZXJ2ZXIvU1dTZXJ2ZXJUb0NvbnRleHRDb25uZWN0aW9uLmgKQEAgLTQxLDcgKzQx
LDYgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogY2xhc3MgU1dTZXJ2ZXI7CiBzdHJ1Y3QgU2Vydmlj
ZVdvcmtlckNsaWVudERhdGE7CiBzdHJ1Y3QgU2VydmljZVdvcmtlckNsaWVudElkZW50aWZpZXI7
Ci1zdHJ1Y3QgU2VydmljZVdvcmtlckNsaWVudEluZm9ybWF0aW9uOwogc3RydWN0IFNlcnZpY2VX
b3JrZXJDb250ZXh0RGF0YTsKIHN0cnVjdCBTZXJ2aWNlV29ya2VySm9iRGF0YUlkZW50aWZpZXI7
CiAKQEAgLTU4LDcgKzU3LDcgQEAgcHVibGljOgogICAgIHZpcnR1YWwgdm9pZCB0ZXJtaW5hdGVX
b3JrZXIoU2VydmljZVdvcmtlcklkZW50aWZpZXIpID0gMDsKICAgICB2aXJ0dWFsIHZvaWQgc3lu
Y1Rlcm1pbmF0ZVdvcmtlcihTZXJ2aWNlV29ya2VySWRlbnRpZmllcikgPSAwOwogICAgIHZpcnR1
YWwgdm9pZCBmaW5kQ2xpZW50QnlJZGVudGlmaWVyQ29tcGxldGVkKHVpbnQ2NF90IHJlcXVlc3RJ
ZGVudGlmaWVyLCBjb25zdCBzdGQ6Om9wdGlvbmFsPFNlcnZpY2VXb3JrZXJDbGllbnREYXRhPiYs
IGJvb2wgaGFzU2VjdXJpdHlFcnJvcikgPSAwOwotICAgIHZpcnR1YWwgdm9pZCBtYXRjaEFsbENv
bXBsZXRlZCh1aW50NjRfdCByZXF1ZXN0SWRlbnRpZmllciwgY29uc3QgVmVjdG9yPFNlcnZpY2VX
b3JrZXJDbGllbnRJbmZvcm1hdGlvbj4mKSA9IDA7CisgICAgdmlydHVhbCB2b2lkIG1hdGNoQWxs
Q29tcGxldGVkKHVpbnQ2NF90IHJlcXVlc3RJZGVudGlmaWVyLCBjb25zdCBWZWN0b3I8U2Vydmlj
ZVdvcmtlckNsaWVudERhdGE+JikgPSAwOwogICAgIHZpcnR1YWwgdm9pZCBjbGFpbUNvbXBsZXRl
ZCh1aW50NjRfdCByZXF1ZXN0SWRlbnRpZmllcikgPSAwOwogICAgIHZpcnR1YWwgdm9pZCBkaWRG
aW5pc2hTa2lwV2FpdGluZyh1aW50NjRfdCBjYWxsYmFja0lEKSA9IDA7CiAKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9zZXJ2ZXIvU1dTZXJ2ZXJXb3JrZXIuaCBi
L1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9zZXJ2ZXIvU1dTZXJ2ZXJXb3JrZXIuaApp
bmRleCBmYjhkZjg0MDUxOTQwMzQyNGQ3Y2I3YTZmYThjZjEwODJjYTgwZGVmLi4xMjdhNWQ3MDUw
ZWI0ZjE5MjQwYzgwMmQxYTgyNDYzNzE1MmIxYzg4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS93b3JrZXJzL3NlcnZpY2Uvc2VydmVyL1NXU2VydmVyV29ya2VyLmgKKysrIGIvU291cmNlL1dl
YkNvcmUvd29ya2Vycy9zZXJ2aWNlL3NlcnZlci9TV1NlcnZlcldvcmtlci5oCkBAIC0yNyw3ICsy
Nyw3IEBACiAKICNpZiBFTkFCTEUoU0VSVklDRV9XT1JLRVIpCiAKLSNpbmNsdWRlICJTZXJ2aWNl
V29ya2VyQ2xpZW50SW5mb3JtYXRpb24uaCIKKyNpbmNsdWRlICJTZXJ2aWNlV29ya2VyQ2xpZW50
RGF0YS5oIgogI2luY2x1ZGUgIlNlcnZpY2VXb3JrZXJEYXRhLmgiCiAjaW5jbHVkZSAiU2Vydmlj
ZVdvcmtlcklkZW50aWZpZXIuaCIKICNpbmNsdWRlICJTZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9u
S2V5LmgiCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NjcmlwdHMvd2Via2l0L21lc3NhZ2Vz
LnB5IGIvU291cmNlL1dlYktpdC9TY3JpcHRzL3dlYmtpdC9tZXNzYWdlcy5weQppbmRleCA0Y2Vk
MzYyODEzZjJiMTJmYjcyNzM4OWUxOTdkNjY4OTBlOTVjNTE4Li41YTczODEwMGI5Nzc0YTlkMjI0
Y2YyYjJlOTllY2Q2NjQ4N2FhNjkzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NjcmlwdHMv
d2Via2l0L21lc3NhZ2VzLnB5CisrKyBiL1NvdXJjZS9XZWJLaXQvU2NyaXB0cy93ZWJraXQvbWVz
c2FnZXMucHkKQEAgLTE4Niw2ICsxODYsNyBAQCBkZWYgZm9yd2FyZF9kZWNsYXJhdGlvbnNfYW5k
X2hlYWRlcnMocmVjZWl2ZXIpOgogICAgIG5vX2ZvcndhcmRfZGVjbGFyYXRpb25fdHlwZXMgPSBm
cm96ZW5zZXQoWwogICAgICAgICAnV2ViQ29yZTo6RG9jdW1lbnRJZGVudGlmaWVyJywKICAgICAg
ICAgJ1dlYkNvcmU6OlNlcnZpY2VXb3JrZXJJZGVudGlmaWVyJywKKyAgICAgICAgJ1dlYkNvcmU6
OlNlcnZpY2VXb3JrZXJPckNsaWVudERhdGEnLAogICAgICAgICAnV2ViQ29yZTo6U2VydmljZVdv
cmtlclJlZ2lzdHJhdGlvbklkZW50aWZpZXInLAogICAgICAgICAnV2ViQ29yZTo6U1dTZXJ2ZXJD
b25uZWN0aW9uSWRlbnRpZmllcicsCiAgICAgXSkKQEAgLTM4Miw2ICszODMsNyBAQCBkZWYgaGVh
ZGVyc19mb3JfdHlwZSh0eXBlKToKICAgICAgICAgJ1dlYkNvcmU6OlBvbGljeUFjdGlvbic6IFsn
PFdlYkNvcmUvRnJhbWVMb2FkZXJUeXBlcy5oPiddLAogICAgICAgICAnV2ViQ29yZTo6UmVjZW50
U2VhcmNoJzogWyc8V2ViQ29yZS9TZWFyY2hQb3B1cE1lbnUuaD4nXSwKICAgICAgICAgJ1dlYkNv
cmU6OlNXU2VydmVyQ29ubmVjdGlvbklkZW50aWZpZXInOiBbJzxXZWJDb3JlL1NlcnZpY2VXb3Jr
ZXJUeXBlcy5oPiddLAorICAgICAgICAnV2ViQ29yZTo6U2VydmljZVdvcmtlck9yQ2xpZW50RGF0
YSc6IFsnPFdlYkNvcmUvU2VydmljZVdvcmtlclR5cGVzLmg+JywgJzxXZWJDb3JlL1NlcnZpY2VX
b3JrZXJDbGllbnREYXRhLmg+JywgJzxXZWJDb3JlL1NlcnZpY2VXb3JrZXJEYXRhLmg+J10sCiAg
ICAgICAgICdXZWJDb3JlOjpTZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uSWRlbnRpZmllcic6IFsn
PFdlYkNvcmUvU2VydmljZVdvcmtlclR5cGVzLmg+J10sCiAgICAgICAgICdXZWJDb3JlOjpTZXJ2
aWNlV29ya2VyUmVnaXN0cmF0aW9uU3RhdGUnOiBbJzxXZWJDb3JlL1NlcnZpY2VXb3JrZXJUeXBl
cy5oPiddLAogICAgICAgICAnV2ViQ29yZTo6U2VydmljZVdvcmtlclN0YXRlJzogWyc8V2ViQ29y
ZS9TZXJ2aWNlV29ya2VyVHlwZXMuaD4nXSwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hh
cmVkL1dlYkNvcmVBcmd1bWVudENvZGVycy5jcHAgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJD
b3JlQXJndW1lbnRDb2RlcnMuY3BwCmluZGV4IDAwYTgyNGEzODY5YzgwOGQ1OWIyYmJiNTllOTU5
ZGM4NTYwOWJmYzIuLjA4MzBjOWFmNzg2YzU3N2IyZGRiYWM2Y2ZiNTUxYTdhMGFhM2JhZTEgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkNvcmVBcmd1bWVudENvZGVycy5jcHAK
KysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViQ29yZUFyZ3VtZW50Q29kZXJzLmNwcApAQCAt
NjUsNiArNjUsOCBAQAogI2luY2x1ZGUgPFdlYkNvcmUvU2Nyb2xsaW5nQ29uc3RyYWludHMuaD4K
ICNpbmNsdWRlIDxXZWJDb3JlL1Njcm9sbGluZ0Nvb3JkaW5hdG9yLmg+CiAjaW5jbHVkZSA8V2Vi
Q29yZS9TZWFyY2hQb3B1cE1lbnUuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL1NlcnZpY2VXb3JrZXJD
bGllbnREYXRhLmg+CisjaW5jbHVkZSA8V2ViQ29yZS9TZXJ2aWNlV29ya2VyRGF0YS5oPgogI2lu
Y2x1ZGUgPFdlYkNvcmUvVGV4dENoZWNrZXJDbGllbnQuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1Rl
eHRJbmRpY2F0b3IuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1RpbWluZ0Z1bmN0aW9uLmg+CkBAIC0y
Njg0LDYgKzI2ODYsNDEgQEAgYm9vbCBBcmd1bWVudENvZGVyPElEQktleVBhdGg+OjpkZWNvZGUo
RGVjb2RlciYgZGVjb2RlciwgSURCS2V5UGF0aCYga2V5UGF0aCkKIH0KICNlbmRpZgogCisjaWYg
RU5BQkxFKFNFUlZJQ0VfV09SS0VSKQordm9pZCBBcmd1bWVudENvZGVyPFNlcnZpY2VXb3JrZXJP
ckNsaWVudERhdGE+OjplbmNvZGUoRW5jb2RlciYgZW5jb2RlciwgY29uc3QgU2VydmljZVdvcmtl
ck9yQ2xpZW50RGF0YSYgZGF0YSkKK3sKKyAgICBib29sIGlzU2VydmljZVdvcmtlckRhdGEgPSBX
VEY6OmhvbGRzX2FsdGVybmF0aXZlPFNlcnZpY2VXb3JrZXJEYXRhPihkYXRhKTsKKyAgICBlbmNv
ZGVyIDw8IGlzU2VydmljZVdvcmtlckRhdGE7CisgICAgaWYgKGlzU2VydmljZVdvcmtlckRhdGEp
CisgICAgICAgIGVuY29kZXIgPDwgV1RGOjpnZXQ8U2VydmljZVdvcmtlckRhdGE+KGRhdGEpOwor
ICAgIGVsc2UKKyAgICAgICAgZW5jb2RlciA8PCBXVEY6OmdldDxTZXJ2aWNlV29ya2VyQ2xpZW50
RGF0YT4oZGF0YSk7Cit9CisKK2Jvb2wgQXJndW1lbnRDb2RlcjxTZXJ2aWNlV29ya2VyT3JDbGll
bnREYXRhPjo6ZGVjb2RlKERlY29kZXImIGRlY29kZXIsIFNlcnZpY2VXb3JrZXJPckNsaWVudERh
dGEmIGRhdGEpCit7CisgICAgYm9vbCBpc1NlcnZpY2VXb3JrZXJEYXRhOworICAgIGlmICghZGVj
b2Rlci5kZWNvZGUoaXNTZXJ2aWNlV29ya2VyRGF0YSkpCisgICAgICAgIHJldHVybiBmYWxzZTsK
KyAgICBpZiAoaXNTZXJ2aWNlV29ya2VyRGF0YSkgeworICAgICAgICBzdGQ6Om9wdGlvbmFsPFNl
cnZpY2VXb3JrZXJEYXRhPiB3b3JrZXJEYXRhOworICAgICAgICBkZWNvZGVyID4+IHdvcmtlckRh
dGE7CisgICAgICAgIGlmICghd29ya2VyRGF0YSkKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsK
KworICAgICAgICBkYXRhID0gV1RGTW92ZSgqd29ya2VyRGF0YSk7CisgICAgfSBlbHNlIHsKKyAg
ICAgICAgc3RkOjpvcHRpb25hbDxTZXJ2aWNlV29ya2VyQ2xpZW50RGF0YT4gY2xpZW50RGF0YTsK
KyAgICAgICAgZGVjb2RlciA+PiBjbGllbnREYXRhOworICAgICAgICBpZiAoIWNsaWVudERhdGEp
CisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICAgICAgZGF0YSA9IFdURk1vdmUoKmNs
aWVudERhdGEpOworICAgIH0KKyAgICByZXR1cm4gdHJ1ZTsKK30KKyNlbmRpZgorCiAjaWYgRU5B
QkxFKENTU19TQ1JPTExfU05BUCkKIAogdm9pZCBBcmd1bWVudENvZGVyPFNjcm9sbE9mZnNldFJh
bmdlPGZsb2F0Pj46OmVuY29kZShFbmNvZGVyJiBlbmNvZGVyLCBjb25zdCBTY3JvbGxPZmZzZXRS
YW5nZTxmbG9hdD4mIHJhbmdlKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvV2Vi
Q29yZUFyZ3VtZW50Q29kZXJzLmggYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJDb3JlQXJndW1l
bnRDb2RlcnMuaAppbmRleCBhMWU3YTM5NzJiMjdmMDUxZTZmMTk4NDVkZmFhMTQ0NDdkODU3N2Uy
Li45MTBhNGVjZDZhYTJkMGVjODQ2ZWNkMzBlY2MyYjNhMWFiYmYyN2RiIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJDb3JlQXJndW1lbnRDb2RlcnMuaAorKysgYi9Tb3VyY2Uv
V2ViS2l0L1NoYXJlZC9XZWJDb3JlQXJndW1lbnRDb2RlcnMuaApAQCAtMzksNiArMzksNyBAQAog
I2luY2x1ZGUgPFdlYkNvcmUvUGF5bWVudEhlYWRlcnMuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1Jl
YWx0aW1lTWVkaWFTb3VyY2UuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1Njcm9sbFNuYXBPZmZzZXRz
SW5mby5oPgorI2luY2x1ZGUgPFdlYkNvcmUvU2VydmljZVdvcmtlclR5cGVzLmg+CiAjaW5jbHVk
ZSA8V2ViQ29yZS9TdG9yZWRDcmVkZW50aWFsc1BvbGljeS5oPgogI2luY2x1ZGUgPFdlYkNvcmUv
V29ya2VyVHlwZS5oPgogCkBAIC02NjcsNiArNjY4LDE1IEBAIHRlbXBsYXRlPD4gc3RydWN0IEFy
Z3VtZW50Q29kZXI8V2ViQ29yZTo6SURCS2V5UGF0aD4gewogCiAjZW5kaWYKIAorI2lmIEVOQUJM
RShTRVJWSUNFX1dPUktFUikKKwordGVtcGxhdGU8PiBzdHJ1Y3QgQXJndW1lbnRDb2RlcjxXZWJD
b3JlOjpTZXJ2aWNlV29ya2VyT3JDbGllbnREYXRhPiB7CisgICAgc3RhdGljIHZvaWQgZW5jb2Rl
KEVuY29kZXImLCBjb25zdCBXZWJDb3JlOjpTZXJ2aWNlV29ya2VyT3JDbGllbnREYXRhJik7Cisg
ICAgc3RhdGljIGJvb2wgZGVjb2RlKERlY29kZXImLCBXZWJDb3JlOjpTZXJ2aWNlV29ya2VyT3JD
bGllbnREYXRhJik7Cit9OworCisjZW5kaWYKKwogI2lmIEVOQUJMRShDU1NfU0NST0xMX1NOQVAp
CiAKIHRlbXBsYXRlPD4gc3RydWN0IEFyZ3VtZW50Q29kZXI8V2ViQ29yZTo6U2Nyb2xsT2Zmc2V0
UmFuZ2U8ZmxvYXQ+PiB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1N0b3JhZ2VQcm9jZXNz
L1NlcnZpY2VXb3JrZXIvV2ViU1dTZXJ2ZXJDb25uZWN0aW9uLmNwcCBiL1NvdXJjZS9XZWJLaXQv
U3RvcmFnZVByb2Nlc3MvU2VydmljZVdvcmtlci9XZWJTV1NlcnZlckNvbm5lY3Rpb24uY3BwCmlu
ZGV4IDc0ODExZjQ3OWVmZGIwODFmYmE4ZjI5ZmYwZGY5NGNiYjNjMjNjMDYuLjM2YzlkYmIwZGNi
MTJhMzAwYmY0NDhmZDI4NDZiMmEyOGI5MmY4NjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
U3RvcmFnZVByb2Nlc3MvU2VydmljZVdvcmtlci9XZWJTV1NlcnZlckNvbm5lY3Rpb24uY3BwCisr
KyBiL1NvdXJjZS9XZWJLaXQvU3RvcmFnZVByb2Nlc3MvU2VydmljZVdvcmtlci9XZWJTV1NlcnZl
ckNvbm5lY3Rpb24uY3BwCkBAIC02OCw3ICs2OCw3IEBAIFdlYlNXU2VydmVyQ29ubmVjdGlvbjo6
fldlYlNXU2VydmVyQ29ubmVjdGlvbigpCiB7CiAgICAgU3RvcmFnZVByb2Nlc3M6OnNpbmdsZXRv
bigpLnVucmVnaXN0ZXJTV1NlcnZlckNvbm5lY3Rpb24oKnRoaXMpOwogICAgIGZvciAoYXV0byBr
ZXlWYWx1ZSA6IG1fY2xpZW50T3JpZ2lucykKLSAgICAgICAgc2VydmVyKCkudW5yZWdpc3RlclNl
cnZpY2VXb3JrZXJDbGllbnQoa2V5VmFsdWUudmFsdWUsIFNlcnZpY2VXb3JrZXJDbGllbnRJZGVu
dGlmaWVyIHsgaWRlbnRpZmllcigpLCBrZXlWYWx1ZS5rZXkgfSk7CisgICAgICAgIHNlcnZlcigp
LnVucmVnaXN0ZXJTZXJ2aWNlV29ya2VyQ2xpZW50KGtleVZhbHVlLnZhbHVlLCBrZXlWYWx1ZS5r
ZXkpOwogfQogCiB2b2lkIFdlYlNXU2VydmVyQ29ubmVjdGlvbjo6ZGlzY29ubmVjdGVkRnJvbVdl
YlByb2Nlc3MoKQpAQCAtMTI3LDEyICsxMjcsMTMgQEAgdm9pZCBXZWJTV1NlcnZlckNvbm5lY3Rp
b246OnN0YXJ0RmV0Y2godWludDY0X3QgZmV0Y2hJZGVudGlmaWVyLCBTZXJ2aWNlV29ya2VySWQK
ICAgICB9KTsKIH0KIAotdm9pZCBXZWJTV1NlcnZlckNvbm5lY3Rpb246OnBvc3RNZXNzYWdlVG9T
ZXJ2aWNlV29ya2VyRnJvbUNsaWVudChTZXJ2aWNlV29ya2VySWRlbnRpZmllciBkZXN0aW5hdGlv
bklkZW50aWZpZXIsIElQQzo6RGF0YVJlZmVyZW5jZSYmIG1lc3NhZ2UsIFNlcnZpY2VXb3JrZXJD
bGllbnRJZGVudGlmaWVyIHNvdXJjZUlkZW50aWZpZXIsIFNlcnZpY2VXb3JrZXJDbGllbnREYXRh
JiYgc291cmNlRGF0YSkKKy8vIEZJWE1FOiBXZSBzaG91bGQgYmUgYWJsZSB0byBvbmx5IHBhc3Mg
aW4gdGhlIFNlcnZpY2VXb3JrZXJDbGllbnRJZGVudGlmaWVyIGhlcmUgYW5kIGxvb2sgdXAgdGhl
IGNsaWVudERhdGEgZnJvbSB0aGUgU1dTZXJ2ZXIuCit2b2lkIFdlYlNXU2VydmVyQ29ubmVjdGlv
bjo6cG9zdE1lc3NhZ2VUb1NlcnZpY2VXb3JrZXJGcm9tQ2xpZW50KFNlcnZpY2VXb3JrZXJJZGVu
dGlmaWVyIGRlc3RpbmF0aW9uSWRlbnRpZmllciwgSVBDOjpEYXRhUmVmZXJlbmNlJiYgbWVzc2Fn
ZSwgU2VydmljZVdvcmtlckNsaWVudElkZW50aWZpZXIsIFNlcnZpY2VXb3JrZXJDbGllbnREYXRh
JiYgc291cmNlRGF0YSkKIHsKICAgICAvLyBJdCdzIHBvc3NpYmxlIHRoaXMgc3BlY2lmaWMgd29y
a2VyIGNhbm5vdCBiZSByZS1ydW4gKGUuZy4gaXRzIHJlZ2lzdHJhdGlvbiBoYXMgYmVlbiByZW1v
dmVkKQotICAgIHNlcnZlcigpLnJ1blNlcnZpY2VXb3JrZXJJZk5lY2Vzc2FyeShkZXN0aW5hdGlv
bklkZW50aWZpZXIsIFtkZXN0aW5hdGlvbklkZW50aWZpZXIsIG1lc3NhZ2UgPSBXVEZNb3ZlKG1l
c3NhZ2UpLCBzb3VyY2VJZGVudGlmaWVyLCBzb3VyY2VEYXRhID0gV1RGTW92ZShzb3VyY2VEYXRh
KV0oYm9vbCBzdWNjZXNzLCBhdXRvJiBjb250ZXh0Q29ubmVjdGlvbikgbXV0YWJsZSB7CisgICAg
c2VydmVyKCkucnVuU2VydmljZVdvcmtlcklmTmVjZXNzYXJ5KGRlc3RpbmF0aW9uSWRlbnRpZmll
ciwgW2Rlc3RpbmF0aW9uSWRlbnRpZmllciwgbWVzc2FnZSA9IFdURk1vdmUobWVzc2FnZSksIHNv
dXJjZURhdGEgPSBXVEZNb3ZlKHNvdXJjZURhdGEpXShib29sIHN1Y2Nlc3MsIGF1dG8mIGNvbnRl
eHRDb25uZWN0aW9uKSBtdXRhYmxlIHsKICAgICAgICAgaWYgKHN1Y2Nlc3MpCi0gICAgICAgICAg
ICBzZW5kVG9Db250ZXh0UHJvY2Vzcyhjb250ZXh0Q29ubmVjdGlvbiwgTWVzc2FnZXM6OldlYlNX
Q29udGV4dE1hbmFnZXJDb25uZWN0aW9uOjpQb3N0TWVzc2FnZVRvU2VydmljZVdvcmtlckZyb21D
bGllbnQgeyBkZXN0aW5hdGlvbklkZW50aWZpZXIsIG1lc3NhZ2UsIHNvdXJjZUlkZW50aWZpZXIs
IFdURk1vdmUoc291cmNlRGF0YSkgfSk7CisgICAgICAgICAgICBzZW5kVG9Db250ZXh0UHJvY2Vz
cyhjb250ZXh0Q29ubmVjdGlvbiwgTWVzc2FnZXM6OldlYlNXQ29udGV4dE1hbmFnZXJDb25uZWN0
aW9uOjpQb3N0TWVzc2FnZVRvU2VydmljZVdvcmtlciB7IGRlc3RpbmF0aW9uSWRlbnRpZmllciwg
bWVzc2FnZSwgV1RGTW92ZShzb3VyY2VEYXRhKSB9KTsKICAgICB9KTsKIH0KIApAQCAtMTQ3LDcg
KzE0OCw3IEBAIHZvaWQgV2ViU1dTZXJ2ZXJDb25uZWN0aW9uOjpwb3N0TWVzc2FnZVRvU2Vydmlj
ZVdvcmtlckZyb21TZXJ2aWNlV29ya2VyKFNlcnZpY2VXCiAgICAgICAgIGlmICghc3VjY2VzcykK
ICAgICAgICAgICAgIHJldHVybjsKIAotICAgICAgICBzZW5kVG9Db250ZXh0UHJvY2Vzcyhjb250
ZXh0Q29ubmVjdGlvbiwgTWVzc2FnZXM6OldlYlNXQ29udGV4dE1hbmFnZXJDb25uZWN0aW9uOjpQ
b3N0TWVzc2FnZVRvU2VydmljZVdvcmtlckZyb21TZXJ2aWNlV29ya2VyIHsgZGVzdGluYXRpb25J
ZGVudGlmaWVyLCBtZXNzYWdlLCBXVEZNb3ZlKHNvdXJjZURhdGEpIH0pOworICAgICAgICBzZW5k
VG9Db250ZXh0UHJvY2Vzcyhjb250ZXh0Q29ubmVjdGlvbiwgTWVzc2FnZXM6OldlYlNXQ29udGV4
dE1hbmFnZXJDb25uZWN0aW9uOjpQb3N0TWVzc2FnZVRvU2VydmljZVdvcmtlciB7IGRlc3RpbmF0
aW9uSWRlbnRpZmllciwgbWVzc2FnZSwgV1RGTW92ZShzb3VyY2VEYXRhKSB9KTsKICAgICB9KTsK
IH0KIApAQCAtMjEwLDIwICsyMTEsMjAgQEAgdm9pZCBXZWJTV1NlcnZlckNvbm5lY3Rpb246Omdl
dFJlZ2lzdHJhdGlvbnModWludDY0X3QgcmVnaXN0cmF0aW9uTWF0Y2hSZXF1ZXN0SWQKICAgICBz
ZW5kKE1lc3NhZ2VzOjpXZWJTV0NsaWVudENvbm5lY3Rpb246OkRpZEdldFJlZ2lzdHJhdGlvbnMg
eyByZWdpc3RyYXRpb25NYXRjaFJlcXVlc3RJZGVudGlmaWVyLCByZWdpc3RyYXRpb25zIH0pOwog
fQogCi12b2lkIFdlYlNXU2VydmVyQ29ubmVjdGlvbjo6cmVnaXN0ZXJTZXJ2aWNlV29ya2VyQ2xp
ZW50KFNlY3VyaXR5T3JpZ2luRGF0YSYmIHRvcE9yaWdpbiwgRG9jdW1lbnRJZGVudGlmaWVyIGNv
bnRleHRJZGVudGlmaWVyLCBTZXJ2aWNlV29ya2VyQ2xpZW50RGF0YSYmIGRhdGEsIGNvbnN0IHN0
ZDo6b3B0aW9uYWw8U2VydmljZVdvcmtlcklkZW50aWZpZXI+JiBjb250cm9sbGluZ1NlcnZpY2VX
b3JrZXJJZGVudGlmaWVyKQordm9pZCBXZWJTV1NlcnZlckNvbm5lY3Rpb246OnJlZ2lzdGVyU2Vy
dmljZVdvcmtlckNsaWVudChTZWN1cml0eU9yaWdpbkRhdGEmJiB0b3BPcmlnaW4sIFNlcnZpY2VX
b3JrZXJDbGllbnREYXRhJiYgZGF0YSwgY29uc3Qgc3RkOjpvcHRpb25hbDxTZXJ2aWNlV29ya2Vy
SWRlbnRpZmllcj4mIGNvbnRyb2xsaW5nU2VydmljZVdvcmtlcklkZW50aWZpZXIpCiB7CiAgICAg
YXV0byBjbGllbnRPcmlnaW4gPSBDbGllbnRPcmlnaW4geyBXVEZNb3ZlKHRvcE9yaWdpbiksIFNl
Y3VyaXR5T3JpZ2luRGF0YTo6ZnJvbVNlY3VyaXR5T3JpZ2luKFNlY3VyaXR5T3JpZ2luOjpjcmVh
dGUoZGF0YS51cmwpKSB9OwotICAgIG1fY2xpZW50T3JpZ2lucy5hZGQoY29udGV4dElkZW50aWZp
ZXIsIGNsaWVudE9yaWdpbik7Ci0gICAgc2VydmVyKCkucmVnaXN0ZXJTZXJ2aWNlV29ya2VyQ2xp
ZW50KFdURk1vdmUoY2xpZW50T3JpZ2luKSwgU2VydmljZVdvcmtlckNsaWVudElkZW50aWZpZXIg
eyB0aGlzLT5pZGVudGlmaWVyKCksIGNvbnRleHRJZGVudGlmaWVyIH0gLCBXVEZNb3ZlKGRhdGEp
LCBjb250cm9sbGluZ1NlcnZpY2VXb3JrZXJJZGVudGlmaWVyKTsKKyAgICBtX2NsaWVudE9yaWdp
bnMuYWRkKGRhdGEuaWRlbnRpZmllciwgY2xpZW50T3JpZ2luKTsKKyAgICBzZXJ2ZXIoKS5yZWdp
c3RlclNlcnZpY2VXb3JrZXJDbGllbnQoV1RGTW92ZShjbGllbnRPcmlnaW4pLCBXVEZNb3ZlKGRh
dGEpLCBjb250cm9sbGluZ1NlcnZpY2VXb3JrZXJJZGVudGlmaWVyKTsKIH0KIAotdm9pZCBXZWJT
V1NlcnZlckNvbm5lY3Rpb246OnVucmVnaXN0ZXJTZXJ2aWNlV29ya2VyQ2xpZW50KERvY3VtZW50
SWRlbnRpZmllciBjb250ZXh0SWRlbnRpZmllcikKK3ZvaWQgV2ViU1dTZXJ2ZXJDb25uZWN0aW9u
Ojp1bnJlZ2lzdGVyU2VydmljZVdvcmtlckNsaWVudChjb25zdCBTZXJ2aWNlV29ya2VyQ2xpZW50
SWRlbnRpZmllciYgY2xpZW50SWRlbnRpZmllcikKIHsKLSAgICBhdXRvIGl0ZXJhdG9yID0gbV9j
bGllbnRPcmlnaW5zLmZpbmQoY29udGV4dElkZW50aWZpZXIpOworICAgIGF1dG8gaXRlcmF0b3Ig
PSBtX2NsaWVudE9yaWdpbnMuZmluZChjbGllbnRJZGVudGlmaWVyKTsKICAgICBpZiAoaXRlcmF0
b3IgPT0gbV9jbGllbnRPcmlnaW5zLmVuZCgpKQogICAgICAgICByZXR1cm47CiAKLSAgICBzZXJ2
ZXIoKS51bnJlZ2lzdGVyU2VydmljZVdvcmtlckNsaWVudChpdGVyYXRvci0+dmFsdWUsIFNlcnZp
Y2VXb3JrZXJDbGllbnRJZGVudGlmaWVyIHsgdGhpcy0+aWRlbnRpZmllcigpLCBjb250ZXh0SWRl
bnRpZmllciB9KTsKKyAgICBzZXJ2ZXIoKS51bnJlZ2lzdGVyU2VydmljZVdvcmtlckNsaWVudChp
dGVyYXRvci0+dmFsdWUsIGNsaWVudElkZW50aWZpZXIpOwogICAgIG1fY2xpZW50T3JpZ2lucy5y
ZW1vdmUoaXRlcmF0b3IpOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1N0b3JhZ2VQ
cm9jZXNzL1NlcnZpY2VXb3JrZXIvV2ViU1dTZXJ2ZXJDb25uZWN0aW9uLmggYi9Tb3VyY2UvV2Vi
S2l0L1N0b3JhZ2VQcm9jZXNzL1NlcnZpY2VXb3JrZXIvV2ViU1dTZXJ2ZXJDb25uZWN0aW9uLmgK
aW5kZXggZGVmZDNkZDhkZGJkZDdjYjNhYjNiYTBhZjk5MTAxNTI4MWU5Y2NhZC4uYTRlNDk5NzFl
YjgyYjdlZTllZTIyZjkyNWY4MzNlY2EzNDY5ZjdmMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9TdG9yYWdlUHJvY2Vzcy9TZXJ2aWNlV29ya2VyL1dlYlNXU2VydmVyQ29ubmVjdGlvbi5oCisr
KyBiL1NvdXJjZS9XZWJLaXQvU3RvcmFnZVByb2Nlc3MvU2VydmljZVdvcmtlci9XZWJTV1NlcnZl
ckNvbm5lY3Rpb24uaApAQCAtODksOCArODksOCBAQCBwcml2YXRlOgogICAgIHZvaWQgbWF0Y2hS
ZWdpc3RyYXRpb24odWludDY0X3QgcmVnaXN0cmF0aW9uTWF0Y2hSZXF1ZXN0SWRlbnRpZmllciwg
Y29uc3QgV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW5EYXRhJiB0b3BPcmlnaW4sIGNvbnN0IFdlYkNv
cmU6OlVSTCYgY2xpZW50VVJMKTsKICAgICB2b2lkIGdldFJlZ2lzdHJhdGlvbnModWludDY0X3Qg
cmVnaXN0cmF0aW9uTWF0Y2hSZXF1ZXN0SWRlbnRpZmllciwgY29uc3QgV2ViQ29yZTo6U2VjdXJp
dHlPcmlnaW5EYXRhJiB0b3BPcmlnaW4sIGNvbnN0IFdlYkNvcmU6OlVSTCYgY2xpZW50VVJMKTsK
IAotICAgIHZvaWQgcmVnaXN0ZXJTZXJ2aWNlV29ya2VyQ2xpZW50KFdlYkNvcmU6OlNlY3VyaXR5
T3JpZ2luRGF0YSYmIHRvcE9yaWdpbiwgV2ViQ29yZTo6RG9jdW1lbnRJZGVudGlmaWVyLCBXZWJD
b3JlOjpTZXJ2aWNlV29ya2VyQ2xpZW50RGF0YSYmLCBjb25zdCBzdGQ6Om9wdGlvbmFsPFdlYkNv
cmU6OlNlcnZpY2VXb3JrZXJJZGVudGlmaWVyPiYpOwotICAgIHZvaWQgdW5yZWdpc3RlclNlcnZp
Y2VXb3JrZXJDbGllbnQoV2ViQ29yZTo6RG9jdW1lbnRJZGVudGlmaWVyKTsKKyAgICB2b2lkIHJl
Z2lzdGVyU2VydmljZVdvcmtlckNsaWVudChXZWJDb3JlOjpTZWN1cml0eU9yaWdpbkRhdGEmJiB0
b3BPcmlnaW4sIFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJDbGllbnREYXRhJiYsIGNvbnN0IHN0ZDo6
b3B0aW9uYWw8V2ViQ29yZTo6U2VydmljZVdvcmtlcklkZW50aWZpZXI+Jik7CisgICAgdm9pZCB1
bnJlZ2lzdGVyU2VydmljZVdvcmtlckNsaWVudChjb25zdCBXZWJDb3JlOjpTZXJ2aWNlV29ya2Vy
Q2xpZW50SWRlbnRpZmllciYpOwogCiAgICAgSVBDOjpDb25uZWN0aW9uKiBtZXNzYWdlU2VuZGVy
Q29ubmVjdGlvbigpIGZpbmFsIHsgcmV0dXJuIG1fY29udGVudENvbm5lY3Rpb24ucHRyKCk7IH0K
ICAgICB1aW50NjRfdCBtZXNzYWdlU2VuZGVyRGVzdGluYXRpb25JRCgpIGZpbmFsIHsgcmV0dXJu
IGlkZW50aWZpZXIoKS50b1VJbnQ2NCgpOyB9CkBAIC0xMDAsNyArMTAwLDcgQEAgcHJpdmF0ZToK
IAogICAgIFBBTDo6U2Vzc2lvbklEIG1fc2Vzc2lvbklEOwogICAgIFJlZjxJUEM6OkNvbm5lY3Rp
b24+IG1fY29udGVudENvbm5lY3Rpb247Ci0gICAgSGFzaE1hcDxXZWJDb3JlOjpEb2N1bWVudElk
ZW50aWZpZXIsIFdlYkNvcmU6OkNsaWVudE9yaWdpbj4gbV9jbGllbnRPcmlnaW5zOworICAgIEhh
c2hNYXA8V2ViQ29yZTo6U2VydmljZVdvcmtlckNsaWVudElkZW50aWZpZXIsIFdlYkNvcmU6OkNs
aWVudE9yaWdpbj4gbV9jbGllbnRPcmlnaW5zOwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViS2l0
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1N0b3JhZ2VQcm9jZXNzL1NlcnZpY2VXb3JrZXIv
V2ViU1dTZXJ2ZXJDb25uZWN0aW9uLm1lc3NhZ2VzLmluIGIvU291cmNlL1dlYktpdC9TdG9yYWdl
UHJvY2Vzcy9TZXJ2aWNlV29ya2VyL1dlYlNXU2VydmVyQ29ubmVjdGlvbi5tZXNzYWdlcy5pbgpp
bmRleCA1NWQwMTliOTZmMjNlMjk3Nzk0YmQ5YjE2ODM1ZTUzN2JlZTUyOTViLi5iNDAyNGFiN2U3
YjE5MjlkODQ2MWYwYmQyMWYzYmFkZGZlNWE1NDRiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L1N0b3JhZ2VQcm9jZXNzL1NlcnZpY2VXb3JrZXIvV2ViU1dTZXJ2ZXJDb25uZWN0aW9uLm1lc3Nh
Z2VzLmluCisrKyBiL1NvdXJjZS9XZWJLaXQvU3RvcmFnZVByb2Nlc3MvU2VydmljZVdvcmtlci9X
ZWJTV1NlcnZlckNvbm5lY3Rpb24ubWVzc2FnZXMuaW4KQEAgLTMwLDYgKzMwLDggQEAgbWVzc2Fn
ZXMgLT4gV2ViU1dTZXJ2ZXJDb25uZWN0aW9uIHsKICAgICBSZW1vdmVTZXJ2aWNlV29ya2VyUmVn
aXN0cmF0aW9uSW5TZXJ2ZXIoV2ViQ29yZTo6U2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbklkZW50
aWZpZXIgaWRlbnRpZmllcikKIAogICAgIFN0YXJ0RmV0Y2godWludDY0X3QgaWRlbnRpZmllciwg
V2ViQ29yZTo6U2VydmljZVdvcmtlcklkZW50aWZpZXIgc2VydmljZVdvcmtlcklkZW50aWZpZXIs
IFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCByZXF1ZXN0LCBzdHJ1Y3QgV2ViQ29yZTo6RmV0Y2hP
cHRpb25zIG9wdGlvbnMsIElQQzo6Rm9ybURhdGFSZWZlcmVuY2UgcmVxdWVzdEJvZHkpCisKKyAg
ICAjIEZJWE1FOiBXZSBzaG91bGQgYmUgYWJsZSB0byBtZXJnZSB0aGUgMiBmb2xsb3dpbmcgbWVz
c2FnZXMgYW5kIHVzZSBhIERvY3VtZW50T3JXb3JrZXJJZGVudGlmaWVyIGFzIHNvdXJjZSBpZGVu
dGlmaWVyLgogICAgIFBvc3RNZXNzYWdlVG9TZXJ2aWNlV29ya2VyRnJvbUNsaWVudChXZWJDb3Jl
OjpTZXJ2aWNlV29ya2VySWRlbnRpZmllciBkZXN0aW5hdGlvblNlcnZpY2VXb3JrZXJJZGVudGlm
aWVyLCBJUEM6OkRhdGFSZWZlcmVuY2UgbWVzc2FnZSwgc3RydWN0IFdlYkNvcmU6OlNlcnZpY2VX
b3JrZXJDbGllbnRJZGVudGlmaWVyIHNvdXJjZUlkZW50aWZpZXIsIHN0cnVjdCBXZWJDb3JlOjpT
ZXJ2aWNlV29ya2VyQ2xpZW50RGF0YSBzb3VyY2VEYXRhKQogICAgIFBvc3RNZXNzYWdlVG9TZXJ2
aWNlV29ya2VyRnJvbVNlcnZpY2VXb3JrZXIoV2ViQ29yZTo6U2VydmljZVdvcmtlcklkZW50aWZp
ZXIgZGVzdGluYXRpb25TZXJ2aWNlV29ya2VySWRlbnRpZmllciwgSVBDOjpEYXRhUmVmZXJlbmNl
IG1lc3NhZ2UsIHN0cnVjdCBXZWJDb3JlOjpTZXJ2aWNlV29ya2VySWRlbnRpZmllciBzb3VyY2VJ
ZGVudGlmaWVyKQogCkBAIC0zOCw4ICs0MCw4IEBAIG1lc3NhZ2VzIC0+IFdlYlNXU2VydmVyQ29u
bmVjdGlvbiB7CiAgICAgTWF0Y2hSZWdpc3RyYXRpb24odWludDY0X3Qgc2VydmljZVJlZ2lzdHJh
dGlvbk1hdGNoUmVxdWVzdElkZW50aWZpZXIsIHN0cnVjdCBXZWJDb3JlOjpTZWN1cml0eU9yaWdp
bkRhdGEgdG9wT3JpZ2luLCBXZWJDb3JlOjpVUkwgY2xpZW50VVJMKQogICAgIFdoZW5SZWdpc3Ry
YXRpb25SZWFkeSh1aW50NjRfdCBzZXJ2aWNlUmVnaXN0cmF0aW9uTWF0Y2hSZXF1ZXN0SWRlbnRp
Zmllciwgc3RydWN0IFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0YSB0b3BPcmlnaW4sIFdlYkNv
cmU6OlVSTCBjbGllbnRVUkwpCiAgICAgR2V0UmVnaXN0cmF0aW9ucyh1aW50NjRfdCBzZXJ2aWNl
UmVnaXN0cmF0aW9uTWF0Y2hSZXF1ZXN0SWRlbnRpZmllciwgc3RydWN0IFdlYkNvcmU6OlNlY3Vy
aXR5T3JpZ2luRGF0YSB0b3BPcmlnaW4sIFdlYkNvcmU6OlVSTCBjbGllbnRVUkwpCi0gICAgUmVn
aXN0ZXJTZXJ2aWNlV29ya2VyQ2xpZW50KHN0cnVjdCBXZWJDb3JlOjpTZWN1cml0eU9yaWdpbkRh
dGEgdG9wT3JpZ2luLCBXZWJDb3JlOjpEb2N1bWVudElkZW50aWZpZXIgaWRlbnRpZmllciwgc3Ry
dWN0IFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJDbGllbnREYXRhIGRhdGEsIHN0ZDo6b3B0aW9uYWw8
V2ViQ29yZTo6U2VydmljZVdvcmtlcklkZW50aWZpZXI+IGNvbnRyb2xsaW5nU2VydmljZVdvcmtl
cklkZW50aWZpZXIpCi0gICAgVW5yZWdpc3RlclNlcnZpY2VXb3JrZXJDbGllbnQoV2ViQ29yZTo6
RG9jdW1lbnRJZGVudGlmaWVyIGlkZW50aWZpZXIpCisgICAgUmVnaXN0ZXJTZXJ2aWNlV29ya2Vy
Q2xpZW50KHN0cnVjdCBXZWJDb3JlOjpTZWN1cml0eU9yaWdpbkRhdGEgdG9wT3JpZ2luLCBzdHJ1
Y3QgV2ViQ29yZTo6U2VydmljZVdvcmtlckNsaWVudERhdGEgZGF0YSwgc3RkOjpvcHRpb25hbDxX
ZWJDb3JlOjpTZXJ2aWNlV29ya2VySWRlbnRpZmllcj4gY29udHJvbGxpbmdTZXJ2aWNlV29ya2Vy
SWRlbnRpZmllcikKKyAgICBVbnJlZ2lzdGVyU2VydmljZVdvcmtlckNsaWVudChzdHJ1Y3QgV2Vi
Q29yZTo6U2VydmljZVdvcmtlckNsaWVudElkZW50aWZpZXIgaWRlbnRpZmllcikKIAogICAgIFN5
bmNUZXJtaW5hdGVXb3JrZXIoV2ViQ29yZTo6U2VydmljZVdvcmtlcklkZW50aWZpZXIgd29ya2Vy
SWRlbnRpZmllcikgLT4gKCkKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU3RvcmFnZVBy
b2Nlc3MvU2VydmljZVdvcmtlci9XZWJTV1NlcnZlclRvQ29udGV4dENvbm5lY3Rpb24uY3BwIGIv
U291cmNlL1dlYktpdC9TdG9yYWdlUHJvY2Vzcy9TZXJ2aWNlV29ya2VyL1dlYlNXU2VydmVyVG9D
b250ZXh0Q29ubmVjdGlvbi5jcHAKaW5kZXggNTgyYjEyNTI1YjdhYzM4NDQyZmUxNGFlODFmY2Q4
ZDVkNDI1YTFiZi4uZjc4NTkzODFhM2JlOTY0MDRiOTQ1YTNhZTFjYzNlMjZhNGNlZmZjYyAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9TdG9yYWdlUHJvY2Vzcy9TZXJ2aWNlV29ya2VyL1dlYlNX
U2VydmVyVG9Db250ZXh0Q29ubmVjdGlvbi5jcHAKKysrIGIvU291cmNlL1dlYktpdC9TdG9yYWdl
UHJvY2Vzcy9TZXJ2aWNlV29ya2VyL1dlYlNXU2VydmVyVG9Db250ZXh0Q29ubmVjdGlvbi5jcHAK
QEAgLTg2LDcgKzg2LDcgQEAgdm9pZCBXZWJTV1NlcnZlclRvQ29udGV4dENvbm5lY3Rpb246OmZp
bmRDbGllbnRCeUlkZW50aWZpZXJDb21wbGV0ZWQodWludDY0X3QgcmUKICAgICBzZW5kKE1lc3Nh
Z2VzOjpXZWJTV0NvbnRleHRNYW5hZ2VyQ29ubmVjdGlvbjo6RmluZENsaWVudEJ5SWRlbnRpZmll
ckNvbXBsZXRlZCB7IHJlcXVlc3RJZGVudGlmaWVyLCBkYXRhLCBoYXNTZWN1cml0eUVycm9yIH0p
OwogfQogCi12b2lkIFdlYlNXU2VydmVyVG9Db250ZXh0Q29ubmVjdGlvbjo6bWF0Y2hBbGxDb21w
bGV0ZWQodWludDY0X3QgcmVxdWVzdElkZW50aWZpZXIsIGNvbnN0IFZlY3RvcjxTZXJ2aWNlV29y
a2VyQ2xpZW50SW5mb3JtYXRpb24+JiBjbGllbnRzRGF0YSkKK3ZvaWQgV2ViU1dTZXJ2ZXJUb0Nv
bnRleHRDb25uZWN0aW9uOjptYXRjaEFsbENvbXBsZXRlZCh1aW50NjRfdCByZXF1ZXN0SWRlbnRp
ZmllciwgY29uc3QgVmVjdG9yPFNlcnZpY2VXb3JrZXJDbGllbnREYXRhPiYgY2xpZW50c0RhdGEp
CiB7CiAgICAgc2VuZChNZXNzYWdlczo6V2ViU1dDb250ZXh0TWFuYWdlckNvbm5lY3Rpb246Ok1h
dGNoQWxsQ29tcGxldGVkIHsgcmVxdWVzdElkZW50aWZpZXIsIGNsaWVudHNEYXRhIH0pOwogfQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TdG9yYWdlUHJvY2Vzcy9TZXJ2aWNlV29ya2VyL1dl
YlNXU2VydmVyVG9Db250ZXh0Q29ubmVjdGlvbi5oIGIvU291cmNlL1dlYktpdC9TdG9yYWdlUHJv
Y2Vzcy9TZXJ2aWNlV29ya2VyL1dlYlNXU2VydmVyVG9Db250ZXh0Q29ubmVjdGlvbi5oCmluZGV4
IDRkNzJkZjZkODBjZTJmODk3YzAxY2ZmYWMzN2IyNjFhMTk2MTAxYTAuLjZhNTkxNTkxYjY5OTUw
Nzg4MjQzYjI1MDJhMDZjM2I4ODU4MjJmODUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU3Rv
cmFnZVByb2Nlc3MvU2VydmljZVdvcmtlci9XZWJTV1NlcnZlclRvQ29udGV4dENvbm5lY3Rpb24u
aAorKysgYi9Tb3VyY2UvV2ViS2l0L1N0b3JhZ2VQcm9jZXNzL1NlcnZpY2VXb3JrZXIvV2ViU1dT
ZXJ2ZXJUb0NvbnRleHRDb25uZWN0aW9uLmgKQEAgLTYxLDcgKzYxLDcgQEAgcHJpdmF0ZToKICAg
ICB2b2lkIHRlcm1pbmF0ZVdvcmtlcihXZWJDb3JlOjpTZXJ2aWNlV29ya2VySWRlbnRpZmllcikg
ZmluYWw7CiAgICAgdm9pZCBzeW5jVGVybWluYXRlV29ya2VyKFdlYkNvcmU6OlNlcnZpY2VXb3Jr
ZXJJZGVudGlmaWVyKSBmaW5hbDsKICAgICB2b2lkIGZpbmRDbGllbnRCeUlkZW50aWZpZXJDb21w
bGV0ZWQodWludDY0X3QgcmVxdWVzdElkZW50aWZpZXIsIGNvbnN0IHN0ZDo6b3B0aW9uYWw8V2Vi
Q29yZTo6U2VydmljZVdvcmtlckNsaWVudERhdGE+JiwgYm9vbCBoYXNTZWN1cml0eUVycm9yKSBm
aW5hbDsKLSAgICB2b2lkIG1hdGNoQWxsQ29tcGxldGVkKHVpbnQ2NF90IHJlcXVlc3RJZGVudGlm
aWVyLCBjb25zdCBWZWN0b3I8V2ViQ29yZTo6U2VydmljZVdvcmtlckNsaWVudEluZm9ybWF0aW9u
PiYpIGZpbmFsOworICAgIHZvaWQgbWF0Y2hBbGxDb21wbGV0ZWQodWludDY0X3QgcmVxdWVzdElk
ZW50aWZpZXIsIGNvbnN0IFZlY3RvcjxXZWJDb3JlOjpTZXJ2aWNlV29ya2VyQ2xpZW50RGF0YT4m
KSBmaW5hbDsKICAgICB2b2lkIGNsYWltQ29tcGxldGVkKHVpbnQ2NF90IHJlcXVlc3RJZGVudGlm
aWVyKSBmaW5hbDsKICAgICB2b2lkIGRpZEZpbmlzaFNraXBXYWl0aW5nKHVpbnQ2NF90IGNhbGxi
YWNrSUQpIGZpbmFsOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvU3Rv
cmFnZS9XZWJTV0NsaWVudENvbm5lY3Rpb24uY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L1N0b3JhZ2UvV2ViU1dDbGllbnRDb25uZWN0aW9uLmNwcAppbmRleCA0YTI0MzFkZjY1OTVjMTRl
Y2NmMzdhODZhMTZiZmVhODM3MGM5N2Y2Li4wZGFmNjQ0NmM4Yzk1ZWEzN2Y1MWUwYjI4YWZiMmEz
MjZiMWIyNGFjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvU3RvcmFnZS9X
ZWJTV0NsaWVudENvbm5lY3Rpb24uY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9T
dG9yYWdlL1dlYlNXQ2xpZW50Q29ubmVjdGlvbi5jcHAKQEAgLTkyLDE0ICs5MiwxNCBAQCB2b2lk
IFdlYlNXQ2xpZW50Q29ubmVjdGlvbjo6cG9zdE1lc3NhZ2VUb1NlcnZpY2VXb3JrZXIoU2Vydmlj
ZVdvcmtlcklkZW50aWZpZXIgZAogICAgIHNlbmQoTWVzc2FnZXM6OldlYlNXU2VydmVyQ29ubmVj
dGlvbjo6UG9zdE1lc3NhZ2VUb1NlcnZpY2VXb3JrZXJGcm9tU2VydmljZVdvcmtlcihkZXN0aW5h
dGlvbklkZW50aWZpZXIsIElQQzo6RGF0YVJlZmVyZW5jZSB7IHNjcmlwdFZhbHVlLT5kYXRhKCkg
fSwgc291cmNlV29ya2VySWRlbnRpZmllcikpOwogfQogCi12b2lkIFdlYlNXQ2xpZW50Q29ubmVj
dGlvbjo6cmVnaXN0ZXJTZXJ2aWNlV29ya2VyQ2xpZW50KGNvbnN0IFNlY3VyaXR5T3JpZ2luJiB0
b3BPcmlnaW4sIFdlYkNvcmU6OkRvY3VtZW50SWRlbnRpZmllciBjb250ZXh0SWRlbnRpZmllciwg
Y29uc3QgV2ViQ29yZTo6U2VydmljZVdvcmtlckNsaWVudERhdGEmIGRhdGEsIGNvbnN0IHN0ZDo6
b3B0aW9uYWw8V2ViQ29yZTo6U2VydmljZVdvcmtlcklkZW50aWZpZXI+JiBjb250cm9sbGluZ1Nl
cnZpY2VXb3JrZXJJZGVudGlmaWVyKQordm9pZCBXZWJTV0NsaWVudENvbm5lY3Rpb246OnJlZ2lz
dGVyU2VydmljZVdvcmtlckNsaWVudChjb25zdCBTZWN1cml0eU9yaWdpbiYgdG9wT3JpZ2luLCBj
b25zdCBXZWJDb3JlOjpTZXJ2aWNlV29ya2VyQ2xpZW50RGF0YSYgZGF0YSwgY29uc3Qgc3RkOjpv
cHRpb25hbDxXZWJDb3JlOjpTZXJ2aWNlV29ya2VySWRlbnRpZmllcj4mIGNvbnRyb2xsaW5nU2Vy
dmljZVdvcmtlcklkZW50aWZpZXIpCiB7Ci0gICAgc2VuZChNZXNzYWdlczo6V2ViU1dTZXJ2ZXJD
b25uZWN0aW9uOjpSZWdpc3RlclNlcnZpY2VXb3JrZXJDbGllbnQgeyBTZWN1cml0eU9yaWdpbkRh
dGE6OmZyb21TZWN1cml0eU9yaWdpbih0b3BPcmlnaW4pLCBjb250ZXh0SWRlbnRpZmllciwgZGF0
YSwgY29udHJvbGxpbmdTZXJ2aWNlV29ya2VySWRlbnRpZmllciB9KTsKKyAgICBzZW5kKE1lc3Nh
Z2VzOjpXZWJTV1NlcnZlckNvbm5lY3Rpb246OlJlZ2lzdGVyU2VydmljZVdvcmtlckNsaWVudCB7
IFNlY3VyaXR5T3JpZ2luRGF0YTo6ZnJvbVNlY3VyaXR5T3JpZ2luKHRvcE9yaWdpbiksIGRhdGEs
IGNvbnRyb2xsaW5nU2VydmljZVdvcmtlcklkZW50aWZpZXIgfSk7CiB9CiAKLXZvaWQgV2ViU1dD
bGllbnRDb25uZWN0aW9uOjp1bnJlZ2lzdGVyU2VydmljZVdvcmtlckNsaWVudChXZWJDb3JlOjpE
b2N1bWVudElkZW50aWZpZXIgY29udGV4dElkZW50aWZpZXIpCit2b2lkIFdlYlNXQ2xpZW50Q29u
bmVjdGlvbjo6dW5yZWdpc3RlclNlcnZpY2VXb3JrZXJDbGllbnQoY29uc3QgV2ViQ29yZTo6U2Vy
dmljZVdvcmtlckNsaWVudElkZW50aWZpZXImIGNsaWVudElkZW50aWZpZXIpCiB7Ci0gICAgc2Vu
ZChNZXNzYWdlczo6V2ViU1dTZXJ2ZXJDb25uZWN0aW9uOjpVbnJlZ2lzdGVyU2VydmljZVdvcmtl
ckNsaWVudCB7IGNvbnRleHRJZGVudGlmaWVyIH0pOworICAgIHNlbmQoTWVzc2FnZXM6OldlYlNX
U2VydmVyQ29ubmVjdGlvbjo6VW5yZWdpc3RlclNlcnZpY2VXb3JrZXJDbGllbnQgeyBjbGllbnRJ
ZGVudGlmaWVyIH0pOwogfQogCiB2b2lkIFdlYlNXQ2xpZW50Q29ubmVjdGlvbjo6ZGlkUmVzb2x2
ZVJlZ2lzdHJhdGlvblByb21pc2UoY29uc3QgU2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbktleSYg
a2V5KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1N0b3JhZ2UvV2ViU1dD
bGllbnRDb25uZWN0aW9uLmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvU3RvcmFnZS9XZWJT
V0NsaWVudENvbm5lY3Rpb24uaAppbmRleCA4ZmY5NGRlYWZmMjY4ZDExYTA1MTI2NWExYWQ5MGE4
YmMwNGM5MmU0Li44ZTg4MzQyZTQwNTVmMWY3OWFlOWFjMmFiZDkxOTkwZGU5YjI2OTU3IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvU3RvcmFnZS9XZWJTV0NsaWVudENvbm5l
Y3Rpb24uaAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvU3RvcmFnZS9XZWJTV0NsaWVu
dENvbm5lY3Rpb24uaApAQCAtNzUsOCArNzUsOCBAQCBwcml2YXRlOgogICAgIHZvaWQgZmluaXNo
RmV0Y2hpbmdTY3JpcHRJblNlcnZlcihjb25zdCBXZWJDb3JlOjpTZXJ2aWNlV29ya2VyRmV0Y2hS
ZXN1bHQmKSBmaW5hbDsKICAgICB2b2lkIHBvc3RNZXNzYWdlVG9TZXJ2aWNlV29ya2VyKFdlYkNv
cmU6OlNlcnZpY2VXb3JrZXJJZGVudGlmaWVyIGRlc3RpbmF0aW9uSWRlbnRpZmllciwgUmVmPFdl
YkNvcmU6OlNlcmlhbGl6ZWRTY3JpcHRWYWx1ZT4mJiwgV2ViQ29yZTo6U2VydmljZVdvcmtlckNs
aWVudElkZW50aWZpZXIgc291cmNlSWRlbnRpZmllciwgV2ViQ29yZTo6U2VydmljZVdvcmtlckNs
aWVudERhdGEmJiBzb3VyY2UpIGZpbmFsOwogICAgIHZvaWQgcG9zdE1lc3NhZ2VUb1NlcnZpY2VX
b3JrZXIoV2ViQ29yZTo6U2VydmljZVdvcmtlcklkZW50aWZpZXIgZGVzdGluYXRpb25JZGVudGlm
aWVyLCBSZWY8V2ViQ29yZTo6U2VyaWFsaXplZFNjcmlwdFZhbHVlPiYmLCBXZWJDb3JlOjpTZXJ2
aWNlV29ya2VySWRlbnRpZmllciBzb3VyY2VXb3JrZXJJZGVudGlmaWVyKSBmaW5hbDsKLSAgICB2
b2lkIHJlZ2lzdGVyU2VydmljZVdvcmtlckNsaWVudChjb25zdCBXZWJDb3JlOjpTZWN1cml0eU9y
aWdpbiYgdG9wT3JpZ2luLCBXZWJDb3JlOjpEb2N1bWVudElkZW50aWZpZXIsIGNvbnN0IFdlYkNv
cmU6OlNlcnZpY2VXb3JrZXJDbGllbnREYXRhJiwgY29uc3Qgc3RkOjpvcHRpb25hbDxXZWJDb3Jl
OjpTZXJ2aWNlV29ya2VySWRlbnRpZmllcj4mKSBmaW5hbDsKLSAgICB2b2lkIHVucmVnaXN0ZXJT
ZXJ2aWNlV29ya2VyQ2xpZW50KFdlYkNvcmU6OkRvY3VtZW50SWRlbnRpZmllcikgZmluYWw7Cisg
ICAgdm9pZCByZWdpc3RlclNlcnZpY2VXb3JrZXJDbGllbnQoY29uc3QgV2ViQ29yZTo6U2VjdXJp
dHlPcmlnaW4mIHRvcE9yaWdpbiwgY29uc3QgV2ViQ29yZTo6U2VydmljZVdvcmtlckNsaWVudERh
dGEmLCBjb25zdCBzdGQ6Om9wdGlvbmFsPFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJJZGVudGlmaWVy
PiYpIGZpbmFsOworICAgIHZvaWQgdW5yZWdpc3RlclNlcnZpY2VXb3JrZXJDbGllbnQoY29uc3Qg
V2ViQ29yZTo6U2VydmljZVdvcmtlckNsaWVudElkZW50aWZpZXImKSBmaW5hbDsKIAogICAgIHZv
aWQgbWF0Y2hSZWdpc3RyYXRpb24oY29uc3QgV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW4mIHRvcE9y
aWdpbiwgY29uc3QgV2ViQ29yZTo6VVJMJiBjbGllbnRVUkwsIFJlZ2lzdHJhdGlvbkNhbGxiYWNr
JiYpIGZpbmFsOwogICAgIHZvaWQgZGlkTWF0Y2hSZWdpc3RyYXRpb24odWludDY0X3QgbWF0Y2hS
ZXF1ZXN0SWRlbnRpZmllciwgc3RkOjpvcHRpb25hbDxXZWJDb3JlOjpTZXJ2aWNlV29ya2VyUmVn
aXN0cmF0aW9uRGF0YT4mJik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
U3RvcmFnZS9XZWJTV0NvbnRleHRNYW5hZ2VyQ29ubmVjdGlvbi5jcHAgYi9Tb3VyY2UvV2ViS2l0
L1dlYlByb2Nlc3MvU3RvcmFnZS9XZWJTV0NvbnRleHRNYW5hZ2VyQ29ubmVjdGlvbi5jcHAKaW5k
ZXggMmU3M2VhOGZjZTVlMjYxYzYyM2FkYTljMTNmMmU4Y2U2YzFhOTUzYi4uYTM1YzRlMzUxYjRj
OGI5YzJiMzI5NjlhZjg0NjQ0ZTk5NjNhMDFhZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL1N0b3JhZ2UvV2ViU1dDb250ZXh0TWFuYWdlckNvbm5lY3Rpb24uY3BwCisrKyBi
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9TdG9yYWdlL1dlYlNXQ29udGV4dE1hbmFnZXJDb25u
ZWN0aW9uLmNwcApAQCAtMTcyLDEyICsxNzIsNyBAQCB2b2lkIFdlYlNXQ29udGV4dE1hbmFnZXJD
b25uZWN0aW9uOjpzdGFydEZldGNoKFNXU2VydmVyQ29ubmVjdGlvbklkZW50aWZpZXIgc2Vydgog
ICAgIHNlcnZpY2VXb3JrZXJUaHJlYWRQcm94eS0+dGhyZWFkKCkucG9zdEZldGNoVGFzayhXVEZN
b3ZlKGNsaWVudCksIFdURk1vdmUoY2xpZW50SWQpLCBXVEZNb3ZlKHJlcXVlc3QpLCBXVEZNb3Zl
KG9wdGlvbnMpKTsKIH0KIAotdm9pZCBXZWJTV0NvbnRleHRNYW5hZ2VyQ29ubmVjdGlvbjo6cG9z
dE1lc3NhZ2VUb1NlcnZpY2VXb3JrZXJGcm9tQ2xpZW50KFNlcnZpY2VXb3JrZXJJZGVudGlmaWVy
IGRlc3RpbmF0aW9uSWRlbnRpZmllciwgY29uc3QgSVBDOjpEYXRhUmVmZXJlbmNlJiBtZXNzYWdl
LCBTZXJ2aWNlV29ya2VyQ2xpZW50SWRlbnRpZmllciBzb3VyY2VJZGVudGlmaWVyLCBTZXJ2aWNl
V29ya2VyQ2xpZW50RGF0YSYmIHNvdXJjZURhdGEpCi17Ci0gICAgU1dDb250ZXh0TWFuYWdlcjo6
c2luZ2xldG9uKCkucG9zdE1lc3NhZ2VUb1NlcnZpY2VXb3JrZXIoZGVzdGluYXRpb25JZGVudGlm
aWVyLCBTZXJpYWxpemVkU2NyaXB0VmFsdWU6OmFkb3B0KG1lc3NhZ2UudmVjdG9yKCkpLCBzb3Vy
Y2VJZGVudGlmaWVyLCBXVEZNb3ZlKHNvdXJjZURhdGEpKTsKLX0KLQotdm9pZCBXZWJTV0NvbnRl
eHRNYW5hZ2VyQ29ubmVjdGlvbjo6cG9zdE1lc3NhZ2VUb1NlcnZpY2VXb3JrZXJGcm9tU2Vydmlj
ZVdvcmtlcihTZXJ2aWNlV29ya2VySWRlbnRpZmllciBkZXN0aW5hdGlvbklkZW50aWZpZXIsIGNv
bnN0IElQQzo6RGF0YVJlZmVyZW5jZSYgbWVzc2FnZSwgU2VydmljZVdvcmtlckRhdGEmJiBzb3Vy
Y2VEYXRhKQordm9pZCBXZWJTV0NvbnRleHRNYW5hZ2VyQ29ubmVjdGlvbjo6cG9zdE1lc3NhZ2VU
b1NlcnZpY2VXb3JrZXIoU2VydmljZVdvcmtlcklkZW50aWZpZXIgZGVzdGluYXRpb25JZGVudGlm
aWVyLCBjb25zdCBJUEM6OkRhdGFSZWZlcmVuY2UmIG1lc3NhZ2UsIFNlcnZpY2VXb3JrZXJPckNs
aWVudERhdGEmJiBzb3VyY2VEYXRhKQogewogICAgIFNXQ29udGV4dE1hbmFnZXI6OnNpbmdsZXRv
bigpLnBvc3RNZXNzYWdlVG9TZXJ2aWNlV29ya2VyKGRlc3RpbmF0aW9uSWRlbnRpZmllciwgU2Vy
aWFsaXplZFNjcmlwdFZhbHVlOjphZG9wdChtZXNzYWdlLnZlY3RvcigpKSwgV1RGTW92ZShzb3Vy
Y2VEYXRhKSk7CiB9CkBAIC0yNjEsNyArMjU2LDcgQEAgdm9pZCBXZWJTV0NvbnRleHRNYW5hZ2Vy
Q29ubmVjdGlvbjo6bWF0Y2hBbGwoV2ViQ29yZTo6U2VydmljZVdvcmtlcklkZW50aWZpZXIgc2UK
ICAgICBtX2Nvbm5lY3Rpb25Ub1N0b3JhZ2VQcm9jZXNzLT5zZW5kKE1lc3NhZ2VzOjpXZWJTV1Nl
cnZlclRvQ29udGV4dENvbm5lY3Rpb246Ok1hdGNoQWxsIHsgcmVxdWVzdElkZW50aWZpZXIsIHNl
cnZpY2VXb3JrZXJJZGVudGlmaWVyLCBvcHRpb25zIH0sIDApOwogfQogCi12b2lkIFdlYlNXQ29u
dGV4dE1hbmFnZXJDb25uZWN0aW9uOjptYXRjaEFsbENvbXBsZXRlZCh1aW50NjRfdCByZXF1ZXN0
SWRlbnRpZmllciwgVmVjdG9yPFNlcnZpY2VXb3JrZXJDbGllbnRJbmZvcm1hdGlvbj4mJiBjbGll
bnRzRGF0YSkKK3ZvaWQgV2ViU1dDb250ZXh0TWFuYWdlckNvbm5lY3Rpb246Om1hdGNoQWxsQ29t
cGxldGVkKHVpbnQ2NF90IHJlcXVlc3RJZGVudGlmaWVyLCBWZWN0b3I8U2VydmljZVdvcmtlckNs
aWVudERhdGE+JiYgY2xpZW50c0RhdGEpCiB7CiAgICAgaWYgKGF1dG8gY2FsbGJhY2sgPSBtX21h
dGNoQWxsUmVxdWVzdHMudGFrZShyZXF1ZXN0SWRlbnRpZmllcikpCiAgICAgICAgIGNhbGxiYWNr
KFdURk1vdmUoY2xpZW50c0RhdGEpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9TdG9yYWdlL1dlYlNXQ29udGV4dE1hbmFnZXJDb25uZWN0aW9uLmggYi9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvU3RvcmFnZS9XZWJTV0NvbnRleHRNYW5hZ2VyQ29ubmVjdGlvbi5oCmlu
ZGV4IDFiODg4OWE5NjM1YWNhMzdmODAzNDQzZWQ1ZmQ3ZTdhOTVhMWRhZjcuLjk4MGRhZDRhMTI5
MjdhZTI1YTIyZWVkNGJjNDYwOWVhNWQ0ZmZmNmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9TdG9yYWdlL1dlYlNXQ29udGV4dE1hbmFnZXJDb25uZWN0aW9uLmgKKysrIGIv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1N0b3JhZ2UvV2ViU1dDb250ZXh0TWFuYWdlckNvbm5l
Y3Rpb24uaApAQCAtMzEsNyArMzEsNyBAQAogI2luY2x1ZGUgIk1lc3NhZ2VSZWNlaXZlci5oIgog
I2luY2x1ZGUgIldlYlNXQ29udGV4dE1hbmFnZXJDb25uZWN0aW9uTWVzc2FnZXMuaCIKICNpbmNs
dWRlIDxXZWJDb3JlL1NXQ29udGV4dE1hbmFnZXIuaD4KLSNpbmNsdWRlIDxXZWJDb3JlL1NlcnZp
Y2VXb3JrZXJDbGllbnRJbmZvcm1hdGlvbi5oPgorI2luY2x1ZGUgPFdlYkNvcmUvU2VydmljZVdv
cmtlckNsaWVudERhdGEuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1NlcnZpY2VXb3JrZXJUeXBlcy5o
PgogCiBuYW1lc3BhY2UgSVBDIHsKQEAgLTc3LDE0ICs3NywxMyBAQCBwcml2YXRlOgogICAgIHZv
aWQgc2VydmljZVdvcmtlclN0YXJ0ZWRXaXRoTWVzc2FnZShzdGQ6Om9wdGlvbmFsPFdlYkNvcmU6
OlNlcnZpY2VXb3JrZXJKb2JEYXRhSWRlbnRpZmllcj4sIFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJJ
ZGVudGlmaWVyLCBjb25zdCBTdHJpbmcmIGV4Y2VwdGlvbk1lc3NhZ2UpIGZpbmFsOwogICAgIHZv
aWQgaW5zdGFsbFNlcnZpY2VXb3JrZXIoY29uc3QgV2ViQ29yZTo6U2VydmljZVdvcmtlckNvbnRl
eHREYXRhJiwgUEFMOjpTZXNzaW9uSUQpOwogICAgIHZvaWQgc3RhcnRGZXRjaChXZWJDb3JlOjpT
V1NlcnZlckNvbm5lY3Rpb25JZGVudGlmaWVyLCB1aW50NjRfdCBmZXRjaElkZW50aWZpZXIsIFdl
YkNvcmU6OlNlcnZpY2VXb3JrZXJJZGVudGlmaWVyLCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3Qm
JiwgV2ViQ29yZTo6RmV0Y2hPcHRpb25zJiYsIElQQzo6Rm9ybURhdGFSZWZlcmVuY2UmJik7Ci0g
ICAgdm9pZCBwb3N0TWVzc2FnZVRvU2VydmljZVdvcmtlckZyb21DbGllbnQoV2ViQ29yZTo6U2Vy
dmljZVdvcmtlcklkZW50aWZpZXIgZGVzdGluYXRpb25JZGVudGlmaWVyLCBjb25zdCBJUEM6OkRh
dGFSZWZlcmVuY2UmIG1lc3NhZ2UsIFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJDbGllbnRJZGVudGlm
aWVyIHNvdXJjZUlkZW50aWZpZXIsIFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJDbGllbnREYXRhJiYg
c291cmNlRGF0YSk7Ci0gICAgdm9pZCBwb3N0TWVzc2FnZVRvU2VydmljZVdvcmtlckZyb21TZXJ2
aWNlV29ya2VyKFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJJZGVudGlmaWVyIGRlc3RpbmF0aW9uLCBj
b25zdCBJUEM6OkRhdGFSZWZlcmVuY2UmIG1lc3NhZ2UsIFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJE
YXRhJiYgc291cmNlRGF0YSk7CisgICAgdm9pZCBwb3N0TWVzc2FnZVRvU2VydmljZVdvcmtlcihX
ZWJDb3JlOjpTZXJ2aWNlV29ya2VySWRlbnRpZmllciBkZXN0aW5hdGlvbklkZW50aWZpZXIsIGNv
bnN0IElQQzo6RGF0YVJlZmVyZW5jZSYgbWVzc2FnZSwgV2ViQ29yZTo6U2VydmljZVdvcmtlck9y
Q2xpZW50RGF0YSYmIHNvdXJjZURhdGEpOwogICAgIHZvaWQgZmlyZUluc3RhbGxFdmVudChXZWJD
b3JlOjpTZXJ2aWNlV29ya2VySWRlbnRpZmllcik7CiAgICAgdm9pZCBmaXJlQWN0aXZhdGVFdmVu
dChXZWJDb3JlOjpTZXJ2aWNlV29ya2VySWRlbnRpZmllcik7CiAgICAgdm9pZCB0ZXJtaW5hdGVX
b3JrZXIoV2ViQ29yZTo6U2VydmljZVdvcmtlcklkZW50aWZpZXIpOwogICAgIHZvaWQgc3luY1Rl
cm1pbmF0ZVdvcmtlcihXZWJDb3JlOjpTZXJ2aWNlV29ya2VySWRlbnRpZmllciwgUmVmPE1lc3Nh
Z2VzOjpXZWJTV0NvbnRleHRNYW5hZ2VyQ29ubmVjdGlvbjo6U3luY1Rlcm1pbmF0ZVdvcmtlcjo6
RGVsYXllZFJlcGx5PiYmKTsKICAgICB2b2lkIGZpbmRDbGllbnRCeUlkZW50aWZpZXJDb21wbGV0
ZWQodWludDY0X3QgcmVxdWVzdElkZW50aWZpZXIsIHN0ZDo6b3B0aW9uYWw8V2ViQ29yZTo6U2Vy
dmljZVdvcmtlckNsaWVudERhdGE+JiYsIGJvb2wgaGFzU2VjdXJpdHlFcnJvcik7Ci0gICAgdm9p
ZCBtYXRjaEFsbENvbXBsZXRlZCh1aW50NjRfdCBtYXRjaEFsbFJlcXVlc3RJZGVudGlmaWVyLCBW
ZWN0b3I8V2ViQ29yZTo6U2VydmljZVdvcmtlckNsaWVudEluZm9ybWF0aW9uPiYmKTsKKyAgICB2
b2lkIG1hdGNoQWxsQ29tcGxldGVkKHVpbnQ2NF90IG1hdGNoQWxsUmVxdWVzdElkZW50aWZpZXIs
IFZlY3RvcjxXZWJDb3JlOjpTZXJ2aWNlV29ya2VyQ2xpZW50RGF0YT4mJik7CiAgICAgdm9pZCBj
bGFpbUNvbXBsZXRlZCh1aW50NjRfdCBjbGFpbVJlcXVlc3RJZGVudGlmaWVyKTsKICAgICB2b2lk
IGRpZEZpbmlzaFNraXBXYWl0aW5nKHVpbnQ2NF90IGNhbGxiYWNrSUQpOwogICAgIHZvaWQgc2V0
VXNlckFnZW50KFN0cmluZyYmIHVzZXJBZ2VudCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L1dlYlByb2Nlc3MvU3RvcmFnZS9XZWJTV0NvbnRleHRNYW5hZ2VyQ29ubmVjdGlvbi5tZXNzYWdl
cy5pbiBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9TdG9yYWdlL1dlYlNXQ29udGV4dE1hbmFn
ZXJDb25uZWN0aW9uLm1lc3NhZ2VzLmluCmluZGV4IGM1NzE1Y2E0ZmY3ZWRlZTgyMDUyZWJhZTEz
OWExZmZjMTY5ZDk4NTMuLmMxMjY2Yjk4OTdiNDIyNjY1NzkzMGQ2ZGMzNzljMDliM2EyN2M5MTIg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9TdG9yYWdlL1dlYlNXQ29udGV4
dE1hbmFnZXJDb25uZWN0aW9uLm1lc3NhZ2VzLmluCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9TdG9yYWdlL1dlYlNXQ29udGV4dE1hbmFnZXJDb25uZWN0aW9uLm1lc3NhZ2VzLmluCkBA
IC0yNSwxNCArMjUsMTMgQEAKIG1lc3NhZ2VzIC0+IFdlYlNXQ29udGV4dE1hbmFnZXJDb25uZWN0
aW9uIHsKICAgICBJbnN0YWxsU2VydmljZVdvcmtlcihzdHJ1Y3QgV2ViQ29yZTo6U2VydmljZVdv
cmtlckNvbnRleHREYXRhIGNvbnRleHREYXRhLCBQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQpCiAg
ICAgU3RhcnRGZXRjaChXZWJDb3JlOjpTV1NlcnZlckNvbm5lY3Rpb25JZGVudGlmaWVyIHNlcnZl
ckNvbm5lY3Rpb25JZGVudGlmaWVyLCB1aW50NjRfdCBmZXRjaElkZW50aWZpZXIsIFdlYkNvcmU6
OlNlcnZpY2VXb3JrZXJJZGVudGlmaWVyIHNlcnZpY2VXb3JrZXJJZGVudGlmaWVyLCBXZWJDb3Jl
OjpSZXNvdXJjZVJlcXVlc3QgcmVxdWVzdCwgc3RydWN0IFdlYkNvcmU6OkZldGNoT3B0aW9ucyBv
cHRpb25zLCBJUEM6OkZvcm1EYXRhUmVmZXJlbmNlIHJlcXVlc3RCb2R5KQotICAgIFBvc3RNZXNz
YWdlVG9TZXJ2aWNlV29ya2VyRnJvbUNsaWVudChXZWJDb3JlOjpTZXJ2aWNlV29ya2VySWRlbnRp
ZmllciBkZXN0aW5hdGlvbklkZW50aWZpZXIsIElQQzo6RGF0YVJlZmVyZW5jZSBtZXNzYWdlLCBz
dHJ1Y3QgV2ViQ29yZTo6U2VydmljZVdvcmtlckNsaWVudElkZW50aWZpZXIgc291cmNlSWRlbnRp
Zmllciwgc3RydWN0IFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJDbGllbnREYXRhIHNvdXJjZURhdGEp
Ci0gICAgUG9zdE1lc3NhZ2VUb1NlcnZpY2VXb3JrZXJGcm9tU2VydmljZVdvcmtlcihXZWJDb3Jl
OjpTZXJ2aWNlV29ya2VySWRlbnRpZmllciBkZXN0aW5hdGlvbklkZW50aWZpZXIsIElQQzo6RGF0
YVJlZmVyZW5jZSBtZXNzYWdlLCBzdHJ1Y3QgV2ViQ29yZTo6U2VydmljZVdvcmtlckRhdGEgc291
cmNlRGF0YSkKKyAgICBQb3N0TWVzc2FnZVRvU2VydmljZVdvcmtlcihXZWJDb3JlOjpTZXJ2aWNl
V29ya2VySWRlbnRpZmllciBkZXN0aW5hdGlvbklkZW50aWZpZXIsIElQQzo6RGF0YVJlZmVyZW5j
ZSBtZXNzYWdlLCBXZWJDb3JlOjpTZXJ2aWNlV29ya2VyT3JDbGllbnREYXRhIHNvdXJjZURhdGEp
CiAgICAgRmlyZUluc3RhbGxFdmVudChXZWJDb3JlOjpTZXJ2aWNlV29ya2VySWRlbnRpZmllciBp
ZGVudGlmaWVyKQogICAgIEZpcmVBY3RpdmF0ZUV2ZW50KFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJJ
ZGVudGlmaWVyIGlkZW50aWZpZXIpCiAgICAgVGVybWluYXRlV29ya2VyKFdlYkNvcmU6OlNlcnZp
Y2VXb3JrZXJJZGVudGlmaWVyIGlkZW50aWZpZXIpCiAgICAgU3luY1Rlcm1pbmF0ZVdvcmtlcihX
ZWJDb3JlOjpTZXJ2aWNlV29ya2VySWRlbnRpZmllciBpZGVudGlmaWVyKSAtPiAoKSBEZWxheWVk
CiAgICAgRmluZENsaWVudEJ5SWRlbnRpZmllckNvbXBsZXRlZCh1aW50NjRfdCBjbGllbnRJZFJl
cXVlc3RJZGVudGlmaWVyLCBzdGQ6Om9wdGlvbmFsPFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJDbGll
bnREYXRhPiBkYXRhLCBib29sIGhhc1NlY3VyaXR5RXJyb3IpCi0gICAgTWF0Y2hBbGxDb21wbGV0
ZWQodWludDY0X3QgbWF0Y2hBbGxSZXF1ZXN0SWRlbnRpZmllciwgVmVjdG9yPFdlYkNvcmU6OlNl
cnZpY2VXb3JrZXJDbGllbnRJbmZvcm1hdGlvbj4gY2xpZW50c0RhdGEpCisgICAgTWF0Y2hBbGxD
b21wbGV0ZWQodWludDY0X3QgbWF0Y2hBbGxSZXF1ZXN0SWRlbnRpZmllciwgVmVjdG9yPFdlYkNv
cmU6OlNlcnZpY2VXb3JrZXJDbGllbnREYXRhPiBjbGllbnRzRGF0YSkKICAgICBDbGFpbUNvbXBs
ZXRlZCh1aW50NjRfdCBjbGFpbVJlcXVlc3RJZGVudGlmaWVyKQogICAgIERpZEZpbmlzaFNraXBX
YWl0aW5nKHVpbnQ2NF90IGNhbGxiYWNrSUQpCiAgICAgU2V0VXNlckFnZW50KFN0cmluZyB1c2Vy
QWdlbnQpCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>329031</attachid>
            <date>2017-12-11 14:00:25 -0800</date>
            <delta_ts>2017-12-11 15:08:43 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-180669-20171211140024.patch</filename>
            <type>text/plain</type>
            <size>71033</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjI1NzQyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYjA3OTdkOGViN2Y4ZDIz
ZWFkMzFiODU4ZGI0MzcxZTBhMjg1N2M4Mi4uMmRhYWU3MTdkOTFmYzA4ZWVkNTY5NzFkNjkyZjFj
YjE3ZjY4OWM0NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDU0IEBACisyMDE3LTEyLTExICBDaHJp
cyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgTWVyZ2UgU2VydmljZVdvcmtl
ckNsaWVudElkZW50aWZpZXIgaW50byBTZXJ2aWNlV29ya2VyQ2xpZW50RGF0YQorICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTgwNjY5CisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgTWVyZ2UgU2VydmljZVdvcmtl
ckNsaWVudElkZW50aWZpZXIgaW50byBTZXJ2aWNlV29ya2VyQ2xpZW50RGF0YSwgZm9yIGNvbnNp
c3RlbmN5IHdpdGgKKyAgICAgICAgU2VydmljZVdvcmtlcklkZW50aWZpZXIgLyBTZXJ2aWNlV29y
a2VyRGF0YSwgYW5kIHN0YXJ0IHNpbXBsaWZ5aW5nIHRoZSBwb3N0TWVzc2FnZSgpIGNvZGUuCisK
KyAgICAgICAgKiBXZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgICog
ZG9tL0RvY3VtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkRvY3VtZW50OjpzZXRTZXJ2aWNl
V29ya2VyQ29ubmVjdGlvbik6CisgICAgICAgICogd29ya2Vycy9zZXJ2aWNlL1NXQ2xpZW50Q29u
bmVjdGlvbi5oOgorICAgICAgICAqIHdvcmtlcnMvc2VydmljZS9TZXJ2aWNlV29ya2VyLmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OlNlcnZpY2VXb3JrZXI6OnBvc3RNZXNzYWdlKToKKyAgICAgICAg
KiB3b3JrZXJzL3NlcnZpY2UvU2VydmljZVdvcmtlckNsaWVudC5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpTZXJ2aWNlV29ya2VyQ2xpZW50OjpnZXRPckNyZWF0ZSk6CisgICAgICAgIChXZWJDb3Jl
OjpTZXJ2aWNlV29ya2VyQ2xpZW50OjpTZXJ2aWNlV29ya2VyQ2xpZW50KToKKyAgICAgICAgKiB3
b3JrZXJzL3NlcnZpY2UvU2VydmljZVdvcmtlckNsaWVudC5oOgorICAgICAgICAoV2ViQ29yZTo6
U2VydmljZVdvcmtlckNsaWVudDo6aWRlbnRpZmllciBjb25zdCk6CisgICAgICAgICogd29ya2Vy
cy9zZXJ2aWNlL1NlcnZpY2VXb3JrZXJDbGllbnREYXRhLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OlNlcnZpY2VXb3JrZXJDbGllbnREYXRhOjppc29sYXRlZENvcHkgY29uc3QpOgorICAgICAgICAo
V2ViQ29yZTo6U2VydmljZVdvcmtlckNsaWVudERhdGE6OmZyb20pOgorICAgICAgICAqIHdvcmtl
cnMvc2VydmljZS9TZXJ2aWNlV29ya2VyQ2xpZW50RGF0YS5oOgorICAgICAgICAoV2ViQ29yZTo6
U2VydmljZVdvcmtlckNsaWVudERhdGE6OmVuY29kZSBjb25zdCk6CisgICAgICAgIChXZWJDb3Jl
OjpTZXJ2aWNlV29ya2VyQ2xpZW50RGF0YTo6ZGVjb2RlKToKKyAgICAgICAgKiB3b3JrZXJzL3Nl
cnZpY2UvU2VydmljZVdvcmtlckNsaWVudEluZm9ybWF0aW9uLmg6IFJlbW92ZWQuCisgICAgICAg
ICogd29ya2Vycy9zZXJ2aWNlL1NlcnZpY2VXb3JrZXJDbGllbnRzLmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OmRpZEZpbmlzaEdldFJlcXVlc3QpOgorICAgICAgICAoV2ViQ29yZTo6U2VydmljZVdv
cmtlckNsaWVudHM6OmdldCk6CisgICAgICAgIChXZWJDb3JlOjptYXRjaEFsbENvbXBsZXRlZCk6
CisgICAgICAgICogd29ya2Vycy9zZXJ2aWNlL1NlcnZpY2VXb3JrZXJUeXBlcy5oOgorICAgICAg
ICAqIHdvcmtlcnMvc2VydmljZS9TZXJ2aWNlV29ya2VyV2luZG93Q2xpZW50LmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJXaW5kb3dDbGllbnQ6OlNlcnZpY2VXb3JrZXJXaW5k
b3dDbGllbnQpOgorICAgICAgICAqIHdvcmtlcnMvc2VydmljZS9TZXJ2aWNlV29ya2VyV2luZG93
Q2xpZW50Lmg6CisgICAgICAgICogd29ya2Vycy9zZXJ2aWNlL2NvbnRleHQvU1dDb250ZXh0TWFu
YWdlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTV0NvbnRleHRNYW5hZ2VyOjpwb3N0TWVzc2Fn
ZVRvU2VydmljZVdvcmtlcik6CisgICAgICAgICogd29ya2Vycy9zZXJ2aWNlL2NvbnRleHQvU1dD
b250ZXh0TWFuYWdlci5oOgorICAgICAgICAqIHdvcmtlcnMvc2VydmljZS9jb250ZXh0L1NlcnZp
Y2VXb3JrZXJUaHJlYWQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U2VydmljZVdvcmtlclRocmVh
ZDo6cG9zdE1lc3NhZ2VUb1NlcnZpY2VXb3JrZXIpOgorICAgICAgICAqIHdvcmtlcnMvc2Vydmlj
ZS9jb250ZXh0L1NlcnZpY2VXb3JrZXJUaHJlYWQuaDoKKyAgICAgICAgKiB3b3JrZXJzL3NlcnZp
Y2Uvc2VydmVyL1NXU2VydmVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNXU2VydmVyOjpmaW5k
Q2xpZW50QnlJZGVudGlmaWVyKToKKyAgICAgICAgKFdlYkNvcmU6OlNXU2VydmVyOjptYXRjaEFs
bCk6CisgICAgICAgIChXZWJDb3JlOjpTV1NlcnZlcjo6Y2xhaW0pOgorICAgICAgICAoV2ViQ29y
ZTo6U1dTZXJ2ZXI6OnJlZ2lzdGVyU2VydmljZVdvcmtlckNsaWVudCk6CisgICAgICAgICogd29y
a2Vycy9zZXJ2aWNlL3NlcnZlci9TV1NlcnZlci5oOgorICAgICAgICAqIHdvcmtlcnMvc2Vydmlj
ZS9zZXJ2ZXIvU1dTZXJ2ZXJUb0NvbnRleHRDb25uZWN0aW9uLmg6CisgICAgICAgICogd29ya2Vy
cy9zZXJ2aWNlL3NlcnZlci9TV1NlcnZlcldvcmtlci5oOgorCiAyMDE3LTEyLTExICBNYW51ZWwg
UmVnbyBDYXNhc25vdmFzICA8cmVnb0BpZ2FsaWEuY29tPgogCiAgICAgICAgIFJFR1JFU1NJT04o
cjIyMTkzMSk6IFJvdyBzdHJldGNoIGRvZXNuJ3Qgd29yayBmb3IgZ3JpZCBjb250YWluZXIgd2l0
aCBtaW4taGVpZ2h0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDBkOWQ5YjFjOTFmNDgwNzE2NjU2MDYzOWFlYTdjNzI4
MzAwNTE1NzUuLmRlODA0NTFiNGE2MjA5OGZjY2QwMDNlM2Q5NWNhMmJjYTJhOGU2NTIgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdl
TG9nCkBAIC0xLDMgKzEsNDEgQEAKKzIwMTctMTItMTEgIENocmlzIER1bWV6ICA8Y2R1bWV6QGFw
cGxlLmNvbT4KKworICAgICAgICBNZXJnZSBTZXJ2aWNlV29ya2VyQ2xpZW50SWRlbnRpZmllciBp
bnRvIFNlcnZpY2VXb3JrZXJDbGllbnREYXRhCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0xODA2NjkKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICBNZXJnZSBTZXJ2aWNlV29ya2VyQ2xpZW50SWRlbnRpZmllciBp
bnRvIFNlcnZpY2VXb3JrZXJDbGllbnREYXRhLCBmb3IgY29uc2lzdGVuY3kgd2l0aAorICAgICAg
ICBTZXJ2aWNlV29ya2VySWRlbnRpZmllciAvIFNlcnZpY2VXb3JrZXJEYXRhLCBhbmQgc3RhcnQg
c2ltcGxpZnlpbmcgdGhlIHBvc3RNZXNzYWdlKCkgY29kZS4KKworICAgICAgICAqIFNjcmlwdHMv
d2Via2l0L21lc3NhZ2VzLnB5OgorICAgICAgICAoZm9yd2FyZF9kZWNsYXJhdGlvbnNfYW5kX2hl
YWRlcnMpOgorICAgICAgICAoaGVhZGVyc19mb3JfdHlwZSk6CisgICAgICAgICogU2hhcmVkL1dl
YkNvcmVBcmd1bWVudENvZGVycy5jcHA6CisgICAgICAgIChJUEM6OkFyZ3VtZW50Q29kZXI8U2Vy
dmljZVdvcmtlck9yQ2xpZW50RGF0YT46OmVuY29kZSk6CisgICAgICAgIChJUEM6OkFyZ3VtZW50
Q29kZXI8U2VydmljZVdvcmtlck9yQ2xpZW50RGF0YT46OmRlY29kZSk6CisgICAgICAgICogU2hh
cmVkL1dlYkNvcmVBcmd1bWVudENvZGVycy5oOgorICAgICAgICAqIFN0b3JhZ2VQcm9jZXNzL1Nl
cnZpY2VXb3JrZXIvV2ViU1dTZXJ2ZXJDb25uZWN0aW9uLmNwcDoKKyAgICAgICAgKFdlYktpdDo6
V2ViU1dTZXJ2ZXJDb25uZWN0aW9uOjp+V2ViU1dTZXJ2ZXJDb25uZWN0aW9uKToKKyAgICAgICAg
KFdlYktpdDo6V2ViU1dTZXJ2ZXJDb25uZWN0aW9uOjpwb3N0TWVzc2FnZVRvU2VydmljZVdvcmtl
ckZyb21DbGllbnQpOgorICAgICAgICAoV2ViS2l0OjpXZWJTV1NlcnZlckNvbm5lY3Rpb246OnBv
c3RNZXNzYWdlVG9TZXJ2aWNlV29ya2VyRnJvbVNlcnZpY2VXb3JrZXIpOgorICAgICAgICAoV2Vi
S2l0OjpXZWJTV1NlcnZlckNvbm5lY3Rpb246OnJlZ2lzdGVyU2VydmljZVdvcmtlckNsaWVudCk6
CisgICAgICAgIChXZWJLaXQ6OldlYlNXU2VydmVyQ29ubmVjdGlvbjo6dW5yZWdpc3RlclNlcnZp
Y2VXb3JrZXJDbGllbnQpOgorICAgICAgICAqIFN0b3JhZ2VQcm9jZXNzL1NlcnZpY2VXb3JrZXIv
V2ViU1dTZXJ2ZXJDb25uZWN0aW9uLmg6CisgICAgICAgICogU3RvcmFnZVByb2Nlc3MvU2Vydmlj
ZVdvcmtlci9XZWJTV1NlcnZlckNvbm5lY3Rpb24ubWVzc2FnZXMuaW46CisgICAgICAgICogU3Rv
cmFnZVByb2Nlc3MvU2VydmljZVdvcmtlci9XZWJTV1NlcnZlclRvQ29udGV4dENvbm5lY3Rpb24u
Y3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJTV1NlcnZlclRvQ29udGV4dENvbm5lY3Rpb246Om1h
dGNoQWxsQ29tcGxldGVkKToKKyAgICAgICAgKiBTdG9yYWdlUHJvY2Vzcy9TZXJ2aWNlV29ya2Vy
L1dlYlNXU2VydmVyVG9Db250ZXh0Q29ubmVjdGlvbi5oOgorICAgICAgICAqIFdlYlByb2Nlc3Mv
U3RvcmFnZS9XZWJTV0NsaWVudENvbm5lY3Rpb24uY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJT
V0NsaWVudENvbm5lY3Rpb246OnJlZ2lzdGVyU2VydmljZVdvcmtlckNsaWVudCk6CisgICAgICAg
IChXZWJLaXQ6OldlYlNXQ2xpZW50Q29ubmVjdGlvbjo6dW5yZWdpc3RlclNlcnZpY2VXb3JrZXJD
bGllbnQpOgorICAgICAgICAqIFdlYlByb2Nlc3MvU3RvcmFnZS9XZWJTV0NsaWVudENvbm5lY3Rp
b24uaDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL1N0b3JhZ2UvV2ViU1dDb250ZXh0TWFuYWdlckNv
bm5lY3Rpb24uY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJTV0NvbnRleHRNYW5hZ2VyQ29ubmVj
dGlvbjo6cG9zdE1lc3NhZ2VUb1NlcnZpY2VXb3JrZXIpOgorICAgICAgICAoV2ViS2l0OjpXZWJT
V0NvbnRleHRNYW5hZ2VyQ29ubmVjdGlvbjo6bWF0Y2hBbGxDb21wbGV0ZWQpOgorICAgICAgICAq
IFdlYlByb2Nlc3MvU3RvcmFnZS9XZWJTV0NvbnRleHRNYW5hZ2VyQ29ubmVjdGlvbi5oOgorICAg
ICAgICAqIFdlYlByb2Nlc3MvU3RvcmFnZS9XZWJTV0NvbnRleHRNYW5hZ2VyQ29ubmVjdGlvbi5t
ZXNzYWdlcy5pbjoKKwogMjAxNy0xMi0xMCAgU3RlcGhhbiBTemFibyAgPHN0ZXBoYW4uc3phYm9A
c29ueS5jb20+CiAKICAgICAgICAgQVBJQ2xpZW50LmggdXNlcyB0aGluZ3MgZnJvbSA8dHVwbGU+
IHdpdGhvdXQgaW5jbHVkaW5nIGl0IGV4cGxpY2l0bHkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1NvdXJjZS9XZWJDb3JlL1dl
YkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCBkMDdjM2M4YjE4NTcwYTA1MzRh
NTdmN2ZjOGM4YmQ2ODAxM2ZjZTEyLi5kNmFlYjY2ZjkxY2FkNzI3MDgyMzk5YjI3NjFiOTE5ZjRj
YjZkYjQzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9q
ZWN0LnBieHByb2oKKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVj
dC5wYnhwcm9qCkBAIC0xMDM3LDcgKzEwMzcsNiBAQAogCQk0MUIyQTYyNjFFRjFCRjZEMDAyQjlE
N0EgLyogV2ViQXVkaW9Tb3VyY2VQcm92aWRlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gNDFCMkE2MjUxRUYxQkY2MDAwMkI5RDdBIC8qIFdlYkF1ZGlv
U291cmNlUHJvdmlkZXIuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCAp
OyB9OyB9OwogCQk0MUJGNzAwQzBGRTg2RjQ5MDA1RThERUMgLyogTWVzc2FnZVBvcnRDaGFubmVs
LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0MUJGNzAw
QTBGRTg2RjQ5MDA1RThERUMgLyogTWVzc2FnZVBvcnRDaGFubmVsLmggKi87IHNldHRpbmdzID0g
e0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJNDFCRjcwMTAwRkU4NkY2MTAwNUU4
REVDIC8qIFBsYXRmb3JtTWVzc2FnZVBvcnRDaGFubmVsLmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0MUJGNzAwRTBGRTg2RjYxMDA1RThERUMgLyogUGxh
dGZvcm1NZXNzYWdlUG9ydENoYW5uZWwuaCAqLzsgfTsKLQkJNDFDNjhBRjUxRkQyMjc5MDAwQUFB
M0IzIC8qIFNlcnZpY2VXb3JrZXJDbGllbnRJbmZvcm1hdGlvbi5oIGluIEhlYWRlcnMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDFDNjhBRjMxRkQyMUU4RTAwQUFBM0IzIC8q
IFNlcnZpY2VXb3JrZXJDbGllbnRJbmZvcm1hdGlvbi5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJV
VEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTQxQzc2MEIxMEVERTAzRDMwMEMxNjU1RiAvKiBT
Y3JpcHRTdGF0ZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gNDFDNzYwQjAwRURFMDNEMzAwQzE2NTVGIC8qIFNjcmlwdFN0YXRlLmggKi87IHNldHRpbmdz
ID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJNDFDQUQ3MUUxRUEwOTBBMTAw
MTc4MTY0IC8qIFZpZGVvVG9vbEJveEVuY29kZXJGYWN0b3J5LmNwcCBpbiBTb3VyY2VzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQxQ0FENzFDMUVBMDkwNTcwMDE3ODE2NCAv
KiBWaWRlb1Rvb2xCb3hFbmNvZGVyRmFjdG9yeS5jcHAgKi87IH07CiAJCTQxRDAxNUNBMEY0QjVD
NzEwMDRBNjYyRiAvKiBDb250ZW50VHlwZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gNDFEMDE1QzgwRjRCNUM3MTAwNEE2NjJGIC8qIENvbnRlbnRUeXBl
LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKQEAgLTcw
NDcsNyArNzA0Niw2IEBACiAJCTQxQkY3MDBBMEZFODZGNDkwMDVFOERFQyAvKiBNZXNzYWdlUG9y
dENoYW5uZWwuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gTWVzc2FnZVBvcnRD
aGFubmVsLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQxQkY3MDBEMEZFODZGNjEw
MDVFOERFQyAvKiBQbGF0Zm9ybU1lc3NhZ2VQb3J0Q2hhbm5lbC5jcHAgKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmNwcC5jcHA7IG5hbWUgPSBQbGF0Zm9ybU1lc3NhZ2VQb3J0Q2hhbm5lbC5jcHA7IHBh
dGggPSBkZWZhdWx0L1BsYXRmb3JtTWVzc2FnZVBvcnRDaGFubmVsLmNwcDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKIAkJNDFCRjcwMEUwRkU4NkY2MTAwNUU4REVDIC8qIFBsYXRmb3JtTWVz
c2FnZVBvcnRDaGFubmVsLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IFBsYXRm
b3JtTWVzc2FnZVBvcnRDaGFubmVsLmg7IHBhdGggPSBkZWZhdWx0L1BsYXRmb3JtTWVzc2FnZVBv
cnRDaGFubmVsLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTQxQzY4QUYzMUZEMjFF
OEUwMEFBQTNCMyAvKiBTZXJ2aWNlV29ya2VyQ2xpZW50SW5mb3JtYXRpb24uaCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gU2VydmljZVdvcmtlckNsaWVudEluZm9ybWF0aW9uLmg7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQxQzc2MEIwMEVERTAzRDMwMEMxNjU1RiAv
KiBTY3JpcHRTdGF0ZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBTY3JpcHRT
dGF0ZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0MUM3RTEwNTFFNkE1NDM2MDAy
N0I0REUgLyogQ2FudmFzQ2FwdHVyZU1lZGlhU3RyZWFtVHJhY2suY3BwICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gQ2FudmFzQ2FwdHVyZU1lZGlhU3RyZWFtVHJhY2suY3Bw
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0MUM3RTEwNjFFNkE1NDM2MDAyN0I0REUg
LyogQ2FudmFzQ2FwdHVyZU1lZGlhU3RyZWFtVHJhY2suaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Yy5oOyBwYXRoID0gQ2FudmFzQ2FwdHVyZU1lZGlhU3RyZWFtVHJhY2suaDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKQEAgLTE3MzE4LDcgKzE3MzE2LDYgQEAKIAkJCQk4Mzc5MzYzQzFGQkJC
MEE0MDBDODAyM0MgLyogU2VydmljZVdvcmtlckNsaWVudERhdGEuY3BwICovLAogCQkJCTgzNzkz
NjNFMUZCQkIwQTUwMEM4MDIzQyAvKiBTZXJ2aWNlV29ya2VyQ2xpZW50RGF0YS5oICovLAogCQkJ
CTgzN0Q0NjI1MUZBMkE4QzUwMDU0RTFGQSAvKiBTZXJ2aWNlV29ya2VyQ2xpZW50SWRlbnRpZmll
ci5oICovLAotCQkJCTQxQzY4QUYzMUZEMjFFOEUwMEFBQTNCMyAvKiBTZXJ2aWNlV29ya2VyQ2xp
ZW50SW5mb3JtYXRpb24uaCAqLywKIAkJCQk0MTNGQzRDRDFGRDFERDhDMDA1NDFDNEIgLyogU2Vy
dmljZVdvcmtlckNsaWVudFF1ZXJ5T3B0aW9ucy5oICovLAogCQkJCTQ2RUYxNDIxMUY5N0I3QkEw
MEMyQTUyNCAvKiBTZXJ2aWNlV29ya2VyQ2xpZW50cy5jcHAgKi8sCiAJCQkJNDZFRjE0MjIxRjk3
QjdCQTAwQzJBNTI0IC8qIFNlcnZpY2VXb3JrZXJDbGllbnRzLmggKi8sCkBAIC0yOTAzNyw3ICsy
OTAzNCw2IEBACiAJCQkJNDZFRjE0MkQxRjk3QjdEODAwQzJBNTI0IC8qIFNlcnZpY2VXb3JrZXJD
bGllbnQuaCBpbiBIZWFkZXJzICovLAogCQkJCTgzNzkzNjNGMUZCQkIwQjQwMEM4MDIzQyAvKiBT
ZXJ2aWNlV29ya2VyQ2xpZW50RGF0YS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJODM3RDQ2MjcxRkEy
QThDRTAwNTRFMUZBIC8qIFNlcnZpY2VXb3JrZXJDbGllbnRJZGVudGlmaWVyLmggaW4gSGVhZGVy
cyAqLywKLQkJCQk0MUM2OEFGNTFGRDIyNzkwMDBBQUEzQjMgLyogU2VydmljZVdvcmtlckNsaWVu
dEluZm9ybWF0aW9uLmggaW4gSGVhZGVycyAqLywKIAkJCQk0MTUxOUNCODFGRDFGMDJFMDA3RjYy
M0MgLyogU2VydmljZVdvcmtlckNsaWVudFF1ZXJ5T3B0aW9ucy5oIGluIEhlYWRlcnMgKi8sCiAJ
CQkJNDZFRjE0MkMxRjk3QjdEODAwQzJBNTI0IC8qIFNlcnZpY2VXb3JrZXJDbGllbnRzLmggaW4g
SGVhZGVycyAqLywKIAkJCQk4MzY5RkRGQzFGQTEwMkUzMDBDMUZGMUYgLyogU2VydmljZVdvcmtl
ckNsaWVudFR5cGUuaCBpbiBIZWFkZXJzICovLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
ZG9tL0RvY3VtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAKaW5kZXgg
NWY5YzQ1ZmIwMjAzMTcyYzk1MTk3YjhmMmQ0MWNlZDQ2YmJmMWI2Yi4uNDNkMzdiMjA0MDUxZDBm
Y2ZiOWQ4ZDNmYjIwZTkzOTBjZDExZGZhMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9t
L0RvY3VtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwCkBAIC03
NjI3LDcgKzc2MjcsNyBAQCB2b2lkIERvY3VtZW50OjpkaWRMb2dNZXNzYWdlKGNvbnN0IFdURkxv
Z0NoYW5uZWwmIGNoYW5uZWwsIFdURkxvZ0xldmVsIGxldmVsLCBjbwogdm9pZCBEb2N1bWVudDo6
c2V0U2VydmljZVdvcmtlckNvbm5lY3Rpb24oU1dDbGllbnRDb25uZWN0aW9uKiBzZXJ2aWNlV29y
a2VyQ29ubmVjdGlvbikKIHsKICAgICBpZiAobV9zZXJ2aWNlV29ya2VyQ29ubmVjdGlvbikKLSAg
ICAgICAgbV9zZXJ2aWNlV29ya2VyQ29ubmVjdGlvbi0+dW5yZWdpc3RlclNlcnZpY2VXb3JrZXJD
bGllbnQoaWRlbnRpZmllcigpKTsKKyAgICAgICAgbV9zZXJ2aWNlV29ya2VyQ29ubmVjdGlvbi0+
dW5yZWdpc3RlclNlcnZpY2VXb3JrZXJDbGllbnQoeyBtX3NlcnZpY2VXb3JrZXJDb25uZWN0aW9u
LT5zZXJ2ZXJDb25uZWN0aW9uSWRlbnRpZmllcigpLCBpZGVudGlmaWVyKCkgfSk7CiAKICAgICBt
X3NlcnZpY2VXb3JrZXJDb25uZWN0aW9uID0gc2VydmljZVdvcmtlckNvbm5lY3Rpb247CiAKQEAg
LTc2MzUsNyArNzYzNSw3IEBAIHZvaWQgRG9jdW1lbnQ6OnNldFNlcnZpY2VXb3JrZXJDb25uZWN0
aW9uKFNXQ2xpZW50Q29ubmVjdGlvbiogc2VydmljZVdvcmtlckNvbm5lCiAgICAgICAgIHJldHVy
bjsKIAogICAgIGF1dG8gY29udHJvbGxpbmdTZXJ2aWNlV29ya2VySWRlbnRpZmllciA9IGFjdGl2
ZVNlcnZpY2VXb3JrZXIoKSA/IHN0ZDo6bWFrZV9vcHRpb25hbDxTZXJ2aWNlV29ya2VySWRlbnRp
Zmllcj4oYWN0aXZlU2VydmljZVdvcmtlcigpLT5pZGVudGlmaWVyKCkpIDogc3RkOjpudWxsb3B0
OwotICAgIG1fc2VydmljZVdvcmtlckNvbm5lY3Rpb24tPnJlZ2lzdGVyU2VydmljZVdvcmtlckNs
aWVudCh0b3BPcmlnaW4oKSwgaWRlbnRpZmllcigpLCBTZXJ2aWNlV29ya2VyQ2xpZW50RGF0YTo6
ZnJvbSgqdGhpcyksIGNvbnRyb2xsaW5nU2VydmljZVdvcmtlcklkZW50aWZpZXIpOworICAgIG1f
c2VydmljZVdvcmtlckNvbm5lY3Rpb24tPnJlZ2lzdGVyU2VydmljZVdvcmtlckNsaWVudCh0b3BP
cmlnaW4oKSwgU2VydmljZVdvcmtlckNsaWVudERhdGE6OmZyb20oKnRoaXMsICpzZXJ2aWNlV29y
a2VyQ29ubmVjdGlvbiksIGNvbnRyb2xsaW5nU2VydmljZVdvcmtlcklkZW50aWZpZXIpOwogfQog
I2VuZGlmCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9TV0Ns
aWVudENvbm5lY3Rpb24uaCBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9TV0NsaWVu
dENvbm5lY3Rpb24uaAppbmRleCA0NzE0MjA1OWExNWJjMDA2YWVkODFkMGJiZjNlZTRjNGZmMGYx
OTQ1Li5jYjkxZWM5MjU0YTUwMTI2MGNmMzZmZjY2MmJmNWRiZWViNDM5MmEwIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvU1dDbGllbnRDb25uZWN0aW9uLmgKKysr
IGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL1NXQ2xpZW50Q29ubmVjdGlvbi5oCkBA
IC04MSw4ICs4MSw4IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIGJvb2wgbWF5SGF2ZVNlcnZpY2VX
b3JrZXJSZWdpc3RlcmVkRm9yT3JpZ2luKGNvbnN0IFNlY3VyaXR5T3JpZ2luJikgY29uc3QgPSAw
OwogICAgIHZpcnR1YWwgdm9pZCBzeW5jVGVybWluYXRlV29ya2VyKFNlcnZpY2VXb3JrZXJJZGVu
dGlmaWVyKSA9IDA7CiAKLSAgICB2aXJ0dWFsIHZvaWQgcmVnaXN0ZXJTZXJ2aWNlV29ya2VyQ2xp
ZW50KGNvbnN0IFNlY3VyaXR5T3JpZ2luJiB0b3BPcmlnaW4sIERvY3VtZW50SWRlbnRpZmllciwg
Y29uc3QgU2VydmljZVdvcmtlckNsaWVudERhdGEmLCBjb25zdCBzdGQ6Om9wdGlvbmFsPFNlcnZp
Y2VXb3JrZXJJZGVudGlmaWVyPiYpID0gMDsKLSAgICB2aXJ0dWFsIHZvaWQgdW5yZWdpc3RlclNl
cnZpY2VXb3JrZXJDbGllbnQoRG9jdW1lbnRJZGVudGlmaWVyKSA9IDA7CisgICAgdmlydHVhbCB2
b2lkIHJlZ2lzdGVyU2VydmljZVdvcmtlckNsaWVudChjb25zdCBTZWN1cml0eU9yaWdpbiYgdG9w
T3JpZ2luLCBjb25zdCBTZXJ2aWNlV29ya2VyQ2xpZW50RGF0YSYsIGNvbnN0IHN0ZDo6b3B0aW9u
YWw8U2VydmljZVdvcmtlcklkZW50aWZpZXI+JikgPSAwOworICAgIHZpcnR1YWwgdm9pZCB1bnJl
Z2lzdGVyU2VydmljZVdvcmtlckNsaWVudChjb25zdCBTZXJ2aWNlV29ya2VyQ2xpZW50SWRlbnRp
ZmllciYpID0gMDsKIAogcHJvdGVjdGVkOgogICAgIFdFQkNPUkVfRVhQT1JUIFNXQ2xpZW50Q29u
bmVjdGlvbigpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL1Nl
cnZpY2VXb3JrZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL1NlcnZpY2VX
b3JrZXIuY3BwCmluZGV4IDRiNGRlMmUwODRmOTA3NmQwZjFjMjM2YTFkOTU0YWMxNjRlODljOGIu
LmU0Nzc2MjBlYzI0Nzc0OTFjNzcyMWI5ZmJkOTZlNTE3NjcwMzUwYjIgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9TZXJ2aWNlV29ya2VyLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvU2VydmljZVdvcmtlci5jcHAKQEAgLTEyMyw4ICsx
MjMsOSBAQCBFeGNlcHRpb25Pcjx2b2lkPiBTZXJ2aWNlV29ya2VyOjpwb3N0TWVzc2FnZShTY3Jp
cHRFeGVjdXRpb25Db250ZXh0JiBjb250ZXh0LCBKUwogICAgICAgICByZXR1cm4geyB9OwogICAg
IH0KIAotICAgIGF1dG8gc291cmNlQ2xpZW50RGF0YSA9IFNlcnZpY2VXb3JrZXJDbGllbnREYXRh
Ojpmcm9tKGNvbnRleHQpOwogICAgIGF1dG8mIGNvbm5lY3Rpb24gPSBTZXJ2aWNlV29ya2VyUHJv
dmlkZXI6OnNpbmdsZXRvbigpLnNlcnZpY2VXb3JrZXJDb25uZWN0aW9uRm9yU2Vzc2lvbihjb250
ZXh0LnNlc3Npb25JRCgpKTsKKyAgICAvLyBGSVhNRTogV2Ugc2hvdWxkIGJlIGFibGUgdG8gc2Vu
ZCBvbmx5IHRoZSBjbGllbnQgaWRlbnRpZmllciBhbmQgbG9vayB1cCB0aGUgY2xpZW50RGF0YSBv
biBzZXJ2ZXIgc2lkZS4KKyAgICBhdXRvIHNvdXJjZUNsaWVudERhdGEgPSBTZXJ2aWNlV29ya2Vy
Q2xpZW50RGF0YTo6ZnJvbShjb250ZXh0LCBjb25uZWN0aW9uKTsKICAgICBTZXJ2aWNlV29ya2Vy
Q2xpZW50SWRlbnRpZmllciBzb3VyY2VDbGllbnRJZGVudGlmaWVyIHsgY29ubmVjdGlvbi5zZXJ2
ZXJDb25uZWN0aW9uSWRlbnRpZmllcigpLCBkb3duY2FzdDxEb2N1bWVudD4oY29udGV4dCkuaWRl
bnRpZmllcigpIH07CiAgICAgY29ubmVjdGlvbi5wb3N0TWVzc2FnZVRvU2VydmljZVdvcmtlcihp
ZGVudGlmaWVyKCksIG1lc3NhZ2UucmVsZWFzZVJldHVyblZhbHVlKCksIFdURk1vdmUoc291cmNl
Q2xpZW50SWRlbnRpZmllciksIFdURk1vdmUoc291cmNlQ2xpZW50RGF0YSkpOwogCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvU2VydmljZVdvcmtlckNsaWVudC5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvU2VydmljZVdvcmtlckNsaWVudC5j
cHAKaW5kZXggYWU5M2I1ZDM5ZGUzZjYwYTE2MmE0ZjVmNTVhOGM4NTg0ZWE3NTJlOS4uODc0YTMz
Y2EwY2VmNjQxYWRiOTA5OTVmMjcwYjU4MWIxY2E0ZGJlOCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvd29ya2Vycy9zZXJ2aWNlL1NlcnZpY2VXb3JrZXJDbGllbnQuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9TZXJ2aWNlV29ya2VyQ2xpZW50LmNwcApAQCAtMzgs
MjAgKzM4LDE5IEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotUmVmPFNlcnZpY2VXb3JrZXJD
bGllbnQ+IFNlcnZpY2VXb3JrZXJDbGllbnQ6OmdldE9yQ3JlYXRlKFNlcnZpY2VXb3JrZXJHbG9i
YWxTY29wZSYgY29udGV4dCwgU2VydmljZVdvcmtlckNsaWVudElkZW50aWZpZXIgaWRlbnRpZmll
ciwgU2VydmljZVdvcmtlckNsaWVudERhdGEmJiBkYXRhKQorUmVmPFNlcnZpY2VXb3JrZXJDbGll
bnQ+IFNlcnZpY2VXb3JrZXJDbGllbnQ6OmdldE9yQ3JlYXRlKFNlcnZpY2VXb3JrZXJHbG9iYWxT
Y29wZSYgY29udGV4dCwgU2VydmljZVdvcmtlckNsaWVudERhdGEmJiBkYXRhKQogewotICAgIGlm
IChhdXRvKiBjbGllbnQgPSBjb250ZXh0LnNlcnZpY2VXb3JrZXJDbGllbnQoaWRlbnRpZmllcikp
CisgICAgaWYgKGF1dG8qIGNsaWVudCA9IGNvbnRleHQuc2VydmljZVdvcmtlckNsaWVudChkYXRh
LmlkZW50aWZpZXIpKQogICAgICAgICByZXR1cm4gKmNsaWVudDsKIAogICAgIGlmIChkYXRhLnR5
cGUgPT0gU2VydmljZVdvcmtlckNsaWVudFR5cGU6OldpbmRvdykKLSAgICAgICAgcmV0dXJuIFNl
cnZpY2VXb3JrZXJXaW5kb3dDbGllbnQ6OmNyZWF0ZShjb250ZXh0LCBpZGVudGlmaWVyLCBXVEZN
b3ZlKGRhdGEpKTsKKyAgICAgICAgcmV0dXJuIFNlcnZpY2VXb3JrZXJXaW5kb3dDbGllbnQ6OmNy
ZWF0ZShjb250ZXh0LCBXVEZNb3ZlKGRhdGEpKTsKIAotICAgIHJldHVybiBhZG9wdFJlZigqbmV3
IFNlcnZpY2VXb3JrZXJDbGllbnQgeyBjb250ZXh0LCBpZGVudGlmaWVyLCBXVEZNb3ZlKGRhdGEp
IH0pOworICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFNlcnZpY2VXb3JrZXJDbGllbnQgeyBjb250
ZXh0LCBXVEZNb3ZlKGRhdGEpIH0pOwogfQogCi1TZXJ2aWNlV29ya2VyQ2xpZW50OjpTZXJ2aWNl
V29ya2VyQ2xpZW50KFNlcnZpY2VXb3JrZXJHbG9iYWxTY29wZSYgY29udGV4dCwgU2VydmljZVdv
cmtlckNsaWVudElkZW50aWZpZXIgaWRlbnRpZmllciwgU2VydmljZVdvcmtlckNsaWVudERhdGEm
JiBkYXRhKQorU2VydmljZVdvcmtlckNsaWVudDo6U2VydmljZVdvcmtlckNsaWVudChTZXJ2aWNl
V29ya2VyR2xvYmFsU2NvcGUmIGNvbnRleHQsIFNlcnZpY2VXb3JrZXJDbGllbnREYXRhJiYgZGF0
YSkKICAgICA6IENvbnRleHREZXN0cnVjdGlvbk9ic2VydmVyKCZjb250ZXh0KQotICAgICwgbV9p
ZGVudGlmaWVyKGlkZW50aWZpZXIpCiAgICAgLCBtX2RhdGEoV1RGTW92ZShkYXRhKSkKIHsKICAg
ICBjb250ZXh0LmFkZFNlcnZpY2VXb3JrZXJDbGllbnQoKnRoaXMpOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL1NlcnZpY2VXb3JrZXJDbGllbnQuaCBiL1NvdXJj
ZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9TZXJ2aWNlV29ya2VyQ2xpZW50LmgKaW5kZXggNDZh
NDM4Yzk4MmNhOGU2YjhkODE0YzY4MjUxNGU1ZWUzMjg1YzlhMy4uODdlZjdhM2M1MzZlN2FlYTg5
NDdkZDIyMTgwYWQzMDhmNTljNGVjOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvd29ya2Vy
cy9zZXJ2aWNlL1NlcnZpY2VXb3JrZXJDbGllbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS93b3Jr
ZXJzL3NlcnZpY2UvU2VydmljZVdvcmtlckNsaWVudC5oCkBAIC00OCw3ICs0OCw3IEBAIHB1Ymxp
YzoKICAgICB1c2luZyBUeXBlID0gU2VydmljZVdvcmtlckNsaWVudFR5cGU7CiAgICAgdXNpbmcg
RnJhbWVUeXBlID0gU2VydmljZVdvcmtlckNsaWVudEZyYW1lVHlwZTsKIAotICAgIHN0YXRpYyBS
ZWY8U2VydmljZVdvcmtlckNsaWVudD4gZ2V0T3JDcmVhdGUoU2VydmljZVdvcmtlckdsb2JhbFNj
b3BlJiwgU2VydmljZVdvcmtlckNsaWVudElkZW50aWZpZXIsIFNlcnZpY2VXb3JrZXJDbGllbnRE
YXRhJiYpOworICAgIHN0YXRpYyBSZWY8U2VydmljZVdvcmtlckNsaWVudD4gZ2V0T3JDcmVhdGUo
U2VydmljZVdvcmtlckdsb2JhbFNjb3BlJiwgU2VydmljZVdvcmtlckNsaWVudERhdGEmJik7CiAK
ICAgICB+U2VydmljZVdvcmtlckNsaWVudCgpOwogCkBAIC01NywxNCArNTcsMTMgQEAgcHVibGlj
OgogICAgIFR5cGUgdHlwZSgpIGNvbnN0OwogICAgIFN0cmluZyBpZCgpIGNvbnN0OwogCi0gICAg
SWRlbnRpZmllciBpZGVudGlmaWVyKCkgY29uc3QgeyByZXR1cm4gbV9pZGVudGlmaWVyOyB9Cisg
ICAgSWRlbnRpZmllciBpZGVudGlmaWVyKCkgY29uc3QgeyByZXR1cm4gbV9kYXRhLmlkZW50aWZp
ZXI7IH0KIAogICAgIEV4Y2VwdGlvbk9yPHZvaWQ+IHBvc3RNZXNzYWdlKFNjcmlwdEV4ZWN1dGlv
bkNvbnRleHQmLCBKU0M6OkpTVmFsdWUgbWVzc2FnZSwgVmVjdG9yPEpTQzo6U3Ryb25nPEpTQzo6
SlNPYmplY3Q+PiYmIHRyYW5zZmVyKTsKIAogcHJvdGVjdGVkOgotICAgIFNlcnZpY2VXb3JrZXJD
bGllbnQoU2VydmljZVdvcmtlckdsb2JhbFNjb3BlJiwgU2VydmljZVdvcmtlckNsaWVudElkZW50
aWZpZXIsIFNlcnZpY2VXb3JrZXJDbGllbnREYXRhJiYpOworICAgIFNlcnZpY2VXb3JrZXJDbGll
bnQoU2VydmljZVdvcmtlckdsb2JhbFNjb3BlJiwgU2VydmljZVdvcmtlckNsaWVudERhdGEmJik7
CiAKLSAgICBTZXJ2aWNlV29ya2VyQ2xpZW50SWRlbnRpZmllciBtX2lkZW50aWZpZXI7CiAgICAg
U2VydmljZVdvcmtlckNsaWVudERhdGEgbV9kYXRhOwogfTsKIApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL1NlcnZpY2VXb3JrZXJDbGllbnREYXRhLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9TZXJ2aWNlV29ya2VyQ2xpZW50RGF0YS5jcHAK
aW5kZXggYjJlN2QzMzIxNzFlNmFkMWU0ZjA1M2Q3NGEyMmQ4NDM4YTlkZjNjNS4uNWM0NDAyYjcy
MGMzMGIxZjZkODFmNWUzMzE1MDM0OTIzMjVlNDM5MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvd29ya2Vycy9zZXJ2aWNlL1NlcnZpY2VXb3JrZXJDbGllbnREYXRhLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvU2VydmljZVdvcmtlckNsaWVudERhdGEuY3BwCkBA
IC01NiwxNCArNTYsMTYgQEAgc3RhdGljIFNlcnZpY2VXb3JrZXJDbGllbnRGcmFtZVR5cGUgdG9T
ZXJ2aWNlV29ya2VyQ2xpZW50RnJhbWVUeXBlKFNjcmlwdEV4ZWN1dGkKIAogU2VydmljZVdvcmtl
ckNsaWVudERhdGEgU2VydmljZVdvcmtlckNsaWVudERhdGE6Omlzb2xhdGVkQ29weSgpIGNvbnN0
CiB7Ci0gICAgcmV0dXJuIHsgdHlwZSwgZnJhbWVUeXBlLCB1cmwuaXNvbGF0ZWRDb3B5KCkgfTsK
KyAgICByZXR1cm4geyBpZGVudGlmaWVyLCB0eXBlLCBmcmFtZVR5cGUsIHVybC5pc29sYXRlZENv
cHkoKSB9OwogfQogCi1TZXJ2aWNlV29ya2VyQ2xpZW50RGF0YSBTZXJ2aWNlV29ya2VyQ2xpZW50
RGF0YTo6ZnJvbShTY3JpcHRFeGVjdXRpb25Db250ZXh0JiBjb250ZXh0KQorU2VydmljZVdvcmtl
ckNsaWVudERhdGEgU2VydmljZVdvcmtlckNsaWVudERhdGE6OmZyb20oU2NyaXB0RXhlY3V0aW9u
Q29udGV4dCYgY29udGV4dCwgU1dDbGllbnRDb25uZWN0aW9uJiBjb25uZWN0aW9uKQogewogICAg
IGJvb2wgaXNEb2N1bWVudCA9IGlzPERvY3VtZW50Pihjb250ZXh0KTsKKyAgICBSRUxFQVNFX0FT
U0VSVChpc0RvY3VtZW50KTsgLy8gV2UgZG8gbm90IHN1cHBvcnQgZGVkaWNhdGVkIHdvcmtlcnMg
YXMgY2xpZW50cyB5ZXQuCiAKICAgICByZXR1cm4geworICAgICAgICB7IGNvbm5lY3Rpb24uc2Vy
dmVyQ29ubmVjdGlvbklkZW50aWZpZXIoKSwgZG93bmNhc3Q8RG9jdW1lbnQ+KGNvbnRleHQpLmlk
ZW50aWZpZXIoKSB9LAogICAgICAgICBpc0RvY3VtZW50ID8gU2VydmljZVdvcmtlckNsaWVudFR5
cGU6OldpbmRvdyA6IFNlcnZpY2VXb3JrZXJDbGllbnRUeXBlOjpXb3JrZXIsCiAgICAgICAgIHRv
U2VydmljZVdvcmtlckNsaWVudEZyYW1lVHlwZShjb250ZXh0KSwKICAgICAgICAgY29udGV4dC51
cmwoKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL1NlcnZpY2VX
b3JrZXJDbGllbnREYXRhLmggYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvU2Vydmlj
ZVdvcmtlckNsaWVudERhdGEuaAppbmRleCA0ZjFhYjhiYTQ1ZTRhOThmZjU1YTQ1MmM2NTRlZGVi
N2U1NzhhZmUxLi4xNDNkN2Q5ZTA0NWQ1NGUxMWE4YzZlZDlhYzE0ZTM3YjE1NmEwNTI5IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvU2VydmljZVdvcmtlckNsaWVu
dERhdGEuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvU2VydmljZVdvcmtl
ckNsaWVudERhdGEuaApAQCAtMzQsMTYgKzM0LDE4IEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsK
IAorY2xhc3MgU1dDbGllbnRDb25uZWN0aW9uOwogY2xhc3MgU2NyaXB0RXhlY3V0aW9uQ29udGV4
dDsKIAogc3RydWN0IFNlcnZpY2VXb3JrZXJDbGllbnREYXRhIHsKKyAgICBTZXJ2aWNlV29ya2Vy
Q2xpZW50SWRlbnRpZmllciBpZGVudGlmaWVyOwogICAgIFNlcnZpY2VXb3JrZXJDbGllbnRUeXBl
IHR5cGU7CiAgICAgU2VydmljZVdvcmtlckNsaWVudEZyYW1lVHlwZSBmcmFtZVR5cGU7CiAgICAg
VVJMIHVybDsKIAogICAgIFNlcnZpY2VXb3JrZXJDbGllbnREYXRhIGlzb2xhdGVkQ29weSgpIGNv
bnN0OwogCi0gICAgc3RhdGljIFNlcnZpY2VXb3JrZXJDbGllbnREYXRhIGZyb20oU2NyaXB0RXhl
Y3V0aW9uQ29udGV4dCYpOworICAgIHN0YXRpYyBTZXJ2aWNlV29ya2VyQ2xpZW50RGF0YSBmcm9t
KFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmLCBTV0NsaWVudENvbm5lY3Rpb24mKTsKIAogICAgIHRl
bXBsYXRlPGNsYXNzIEVuY29kZXI+IHZvaWQgZW5jb2RlKEVuY29kZXImKSBjb25zdDsKICAgICB0
ZW1wbGF0ZTxjbGFzcyBEZWNvZGVyPiBzdGF0aWMgc3RkOjpvcHRpb25hbDxTZXJ2aWNlV29ya2Vy
Q2xpZW50RGF0YT4gZGVjb2RlKERlY29kZXImKTsKQEAgLTUyLDEyICs1NCwxNyBAQCBzdHJ1Y3Qg
U2VydmljZVdvcmtlckNsaWVudERhdGEgewogdGVtcGxhdGU8Y2xhc3MgRW5jb2Rlcj4KIHZvaWQg
U2VydmljZVdvcmtlckNsaWVudERhdGE6OmVuY29kZShFbmNvZGVyJiBlbmNvZGVyKSBjb25zdAog
ewotICAgIGVuY29kZXIgPDwgdHlwZSA8PCBmcmFtZVR5cGUgPDwgdXJsOworICAgIGVuY29kZXIg
PDwgaWRlbnRpZmllciA8PCB0eXBlIDw8IGZyYW1lVHlwZSA8PCB1cmw7CiB9CiAKIHRlbXBsYXRl
PGNsYXNzIERlY29kZXI+CiBzdGQ6Om9wdGlvbmFsPFNlcnZpY2VXb3JrZXJDbGllbnREYXRhPiBT
ZXJ2aWNlV29ya2VyQ2xpZW50RGF0YTo6ZGVjb2RlKERlY29kZXImIGRlY29kZXIpCiB7CisgICAg
c3RkOjpvcHRpb25hbDxTZXJ2aWNlV29ya2VyQ2xpZW50SWRlbnRpZmllcj4gaWRlbnRpZmllcjsK
KyAgICBkZWNvZGVyID4+IGlkZW50aWZpZXI7CisgICAgaWYgKCFpZGVudGlmaWVyKQorICAgICAg
ICByZXR1cm4gc3RkOjpudWxsb3B0OworCiAgICAgc3RkOjpvcHRpb25hbDxTZXJ2aWNlV29ya2Vy
Q2xpZW50VHlwZT4gdHlwZTsKICAgICBkZWNvZGVyID4+IHR5cGU7CiAgICAgaWYgKCF0eXBlKQpA
QCAtNzMsOSArODAsMTEgQEAgc3RkOjpvcHRpb25hbDxTZXJ2aWNlV29ya2VyQ2xpZW50RGF0YT4g
U2VydmljZVdvcmtlckNsaWVudERhdGE6OmRlY29kZShEZWNvZGVyJgogICAgIGlmICghdXJsKQog
ICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OwogCi0gICAgcmV0dXJuIHsgeyBXVEZNb3ZlKCp0
eXBlKSwgV1RGTW92ZSgqZnJhbWVUeXBlKSwgV1RGTW92ZSgqdXJsKSB9IH07CisgICAgcmV0dXJu
IHsgeyBXVEZNb3ZlKCppZGVudGlmaWVyKSwgV1RGTW92ZSgqdHlwZSksIFdURk1vdmUoKmZyYW1l
VHlwZSksIFdURk1vdmUoKnVybCkgfSB9OwogfQogCit1c2luZyBTZXJ2aWNlV29ya2VyQ2xpZW50
c01hdGNoQWxsQ2FsbGJhY2sgPSBXVEY6OkNvbXBsZXRpb25IYW5kbGVyPHZvaWQoVmVjdG9yPFNl
cnZpY2VXb3JrZXJDbGllbnREYXRhPiYmKT47CisKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKIAog
I2VuZGlmIC8vIEVOQUJMRShTRVJWSUNFX1dPUktFUikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3dvcmtlcnMvc2VydmljZS9TZXJ2aWNlV29ya2VyQ2xpZW50SW5mb3JtYXRpb24uaCBiL1Nv
dXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9TZXJ2aWNlV29ya2VyQ2xpZW50SW5mb3JtYXRp
b24uaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYzlmN2Y2NDkwNWUwNDNjODQ5NGJh
NDE3N2MxY2ZlZmRlMTE5YWViNC4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMAotLS0gYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvU2VydmljZVdvcmtlckNs
aWVudEluZm9ybWF0aW9uLmgKKysrIC9kZXYvbnVsbApAQCAtMSw3NCArMCwwIEBACi0vKgotICog
Q29weXJpZ2h0IChDKSAyMDE3IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0g
KiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRo
IG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0
IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0
aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1
Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAgZG9jdW1lbnRh
dGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlv
bi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElU
UyBDT05UUklCVVRPUlMgYGBBUyBJUycnCi0gKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBX
QVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKLSAqIFRIRSBJTVBMSUVE
IFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VM
QVIKLSAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElO
Qy4gT1IgSVRTIENPTlRSSUJVVE9SUwotICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJ
UkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgotICogQ09OU0VRVUVOVElB
TCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YK
LSAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQ
Uk9GSVRTOyBPUiBCVVNJTkVTUwotICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQg
T04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KLSAqIENPTlRSQUNULCBTVFJJ
Q1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0Up
Ci0gKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwg
RVZFTiBJRiBBRFZJU0VEIE9GCi0gKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0g
Ki8KLQotI3ByYWdtYSBvbmNlCi0KLSNpZiBFTkFCTEUoU0VSVklDRV9XT1JLRVIpCi0KLSNpbmNs
dWRlICJTZXJ2aWNlV29ya2VyQ2xpZW50RGF0YS5oIgotI2luY2x1ZGUgIlNlcnZpY2VXb3JrZXJD
bGllbnRJZGVudGlmaWVyLmgiCi0jaW5jbHVkZSA8d3RmL1ZlY3Rvci5oPgotCi1uYW1lc3BhY2Ug
V2ViQ29yZSB7Ci0KLWNsYXNzIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQ7Ci0KLXN0cnVjdCBTZXJ2
aWNlV29ya2VyQ2xpZW50SW5mb3JtYXRpb24gewotICAgIFNlcnZpY2VXb3JrZXJDbGllbnRJZGVu
dGlmaWVyIGlkZW50aWZpZXI7Ci0gICAgU2VydmljZVdvcmtlckNsaWVudERhdGEgZGF0YTsKLQot
ICAgIFNlcnZpY2VXb3JrZXJDbGllbnRJbmZvcm1hdGlvbiBpc29sYXRlZENvcHkoKSBjb25zdCB7
IHJldHVybiB7IGlkZW50aWZpZXIsIGRhdGEuaXNvbGF0ZWRDb3B5KCkgfTsgfQotCi0gICAgdGVt
cGxhdGU8Y2xhc3MgRW5jb2Rlcj4gdm9pZCBlbmNvZGUoRW5jb2RlciYpIGNvbnN0OwotICAgIHRl
bXBsYXRlPGNsYXNzIERlY29kZXI+IHN0YXRpYyBzdGQ6Om9wdGlvbmFsPFNlcnZpY2VXb3JrZXJD
bGllbnRJbmZvcm1hdGlvbj4gZGVjb2RlKERlY29kZXImKTsKLX07Ci0KLXVzaW5nIFNlcnZpY2VX
b3JrZXJDbGllbnRzTWF0Y2hBbGxDYWxsYmFjayA9IFdURjo6Q29tcGxldGlvbkhhbmRsZXI8dm9p
ZChWZWN0b3I8U2VydmljZVdvcmtlckNsaWVudEluZm9ybWF0aW9uPiYmKT47Ci0KLXRlbXBsYXRl
PGNsYXNzIEVuY29kZXI+Ci12b2lkIFNlcnZpY2VXb3JrZXJDbGllbnRJbmZvcm1hdGlvbjo6ZW5j
b2RlKEVuY29kZXImIGVuY29kZXIpIGNvbnN0Ci17Ci0gICAgZW5jb2RlciA8PCBpZGVudGlmaWVy
IDw8IGRhdGE7Ci19Ci0KLXRlbXBsYXRlPGNsYXNzIERlY29kZXI+Ci1zdGQ6Om9wdGlvbmFsPFNl
cnZpY2VXb3JrZXJDbGllbnRJbmZvcm1hdGlvbj4gU2VydmljZVdvcmtlckNsaWVudEluZm9ybWF0
aW9uOjpkZWNvZGUoRGVjb2RlciYgZGVjb2RlcikKLXsKLSAgICBzdGQ6Om9wdGlvbmFsPFNlcnZp
Y2VXb3JrZXJDbGllbnRJZGVudGlmaWVyPiBpZGVudGlmaWVyOwotICAgIGRlY29kZXIgPj4gaWRl
bnRpZmllcjsKLSAgICBpZiAoIWlkZW50aWZpZXIpCi0gICAgICAgIHJldHVybiBzdGQ6Om51bGxv
cHQ7Ci0KLSAgICBzdGQ6Om9wdGlvbmFsPFNlcnZpY2VXb3JrZXJDbGllbnREYXRhPiBkYXRhOwot
ICAgIGRlY29kZXIgPj4gZGF0YTsKLSAgICBpZiAoIWRhdGEpCi0gICAgICAgIHJldHVybiBzdGQ6
Om51bGxvcHQ7Ci0KLSAgICByZXR1cm4geyB7IFdURk1vdmUoKmlkZW50aWZpZXIpLCBXVEZNb3Zl
KCpkYXRhKSB9IH07Ci19Ci0KLX0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKLQotI2VuZGlmIC8vIEVO
QUJMRShTRVJWSUNFX1dPUktFUikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMv
c2VydmljZS9TZXJ2aWNlV29ya2VyQ2xpZW50cy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJz
L3NlcnZpY2UvU2VydmljZVdvcmtlckNsaWVudHMuY3BwCmluZGV4IDYxNjg3Zjk3NTgxYmFkZDk3
NzAzZWZjYjkwYzYzYTZlYmNkMzE3ZDUuLjY4MjQ3YTI4ODE3OGU0MGFmMDM0NzBmZGMxYTc2NzI2
ZGVlOWZhZDMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9TZXJ2
aWNlV29ya2VyQ2xpZW50cy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNl
L1NlcnZpY2VXb3JrZXJDbGllbnRzLmNwcApAQCAtMzQsNyArMzQsNyBAQAogCiBuYW1lc3BhY2Ug
V2ViQ29yZSB7CiAKLXN0YXRpYyBpbmxpbmUgdm9pZCBkaWRGaW5pc2hHZXRSZXF1ZXN0KFNlcnZp
Y2VXb3JrZXJHbG9iYWxTY29wZSYgc2NvcGUsIERlZmVycmVkUHJvbWlzZSYgcHJvbWlzZSwgU2Vy
dmljZVdvcmtlckNsaWVudElkZW50aWZpZXIgaWRlbnRpZmllciwgRXhjZXB0aW9uT3I8c3RkOjpv
cHRpb25hbDxTZXJ2aWNlV29ya2VyQ2xpZW50RGF0YT4+JiYgY2xpZW50RGF0YSkKK3N0YXRpYyBp
bmxpbmUgdm9pZCBkaWRGaW5pc2hHZXRSZXF1ZXN0KFNlcnZpY2VXb3JrZXJHbG9iYWxTY29wZSYg
c2NvcGUsIERlZmVycmVkUHJvbWlzZSYgcHJvbWlzZSwgRXhjZXB0aW9uT3I8c3RkOjpvcHRpb25h
bDxTZXJ2aWNlV29ya2VyQ2xpZW50RGF0YT4+JiYgY2xpZW50RGF0YSkKIHsKICAgICBpZiAoY2xp
ZW50RGF0YS5oYXNFeGNlcHRpb24oKSkgewogICAgICAgICBwcm9taXNlLnJlamVjdChjbGllbnRE
YXRhLnJlbGVhc2VFeGNlcHRpb24oKSk7CkBAIC00Niw3ICs0Niw3IEBAIHN0YXRpYyBpbmxpbmUg
dm9pZCBkaWRGaW5pc2hHZXRSZXF1ZXN0KFNlcnZpY2VXb3JrZXJHbG9iYWxTY29wZSYgc2NvcGUs
IERlZmVycmVkCiAgICAgICAgIHJldHVybjsKICAgICB9CiAKLSAgICBwcm9taXNlLnJlc29sdmU8
SURMSW50ZXJmYWNlPFNlcnZpY2VXb3JrZXJDbGllbnQ+PihTZXJ2aWNlV29ya2VyQ2xpZW50Ojpn
ZXRPckNyZWF0ZShzY29wZSwgaWRlbnRpZmllciwgV1RGTW92ZShkYXRhLnZhbHVlKCkpKSk7Cisg
ICAgcHJvbWlzZS5yZXNvbHZlPElETEludGVyZmFjZTxTZXJ2aWNlV29ya2VyQ2xpZW50Pj4oU2Vy
dmljZVdvcmtlckNsaWVudDo6Z2V0T3JDcmVhdGUoc2NvcGUsIFdURk1vdmUoZGF0YS52YWx1ZSgp
KSkpOwogfQogCiB2b2lkIFNlcnZpY2VXb3JrZXJDbGllbnRzOjpnZXQoU2NyaXB0RXhlY3V0aW9u
Q29udGV4dCYgY29udGV4dCwgY29uc3QgU3RyaW5nJiBpZCwgUmVmPERlZmVycmVkUHJvbWlzZT4m
JiBwcm9taXNlKQpAQCAtNjUsMjAgKzY1LDIwIEBAIHZvaWQgU2VydmljZVdvcmtlckNsaWVudHM6
OmdldChTY3JpcHRFeGVjdXRpb25Db250ZXh0JiBjb250ZXh0LCBjb25zdCBTdHJpbmcmIGlkCiAK
ICAgICBjYWxsT25NYWluVGhyZWFkKFtwcm9taXNlUG9pbnRlciwgc2VydmljZVdvcmtlcklkZW50
aWZpZXIsIGNsaWVudElkZW50aWZpZXJdICgpIHsKICAgICAgICAgYXV0byBjb25uZWN0aW9uID0g
U1dDb250ZXh0TWFuYWdlcjo6c2luZ2xldG9uKCkuY29ubmVjdGlvbigpOwotICAgICAgICBjb25u
ZWN0aW9uLT5maW5kQ2xpZW50QnlJZGVudGlmaWVyKHNlcnZpY2VXb3JrZXJJZGVudGlmaWVyLCBj
bGllbnRJZGVudGlmaWVyLCBbcHJvbWlzZVBvaW50ZXIsIHNlcnZpY2VXb3JrZXJJZGVudGlmaWVy
LCBjbGllbnRJZGVudGlmaWVyXSAoYXV0byYmIGNsaWVudERhdGEpIHsKLSAgICAgICAgICAgIFNX
Q29udGV4dE1hbmFnZXI6OnNpbmdsZXRvbigpLnBvc3RUYXNrVG9TZXJ2aWNlV29ya2VyKHNlcnZp
Y2VXb3JrZXJJZGVudGlmaWVyLCBbcHJvbWlzZVBvaW50ZXIsIGNsaWVudElkZW50aWZpZXIsIGRh
dGEgPSBjcm9zc1RocmVhZENvcHkoY2xpZW50RGF0YSldIChhdXRvJiBjb250ZXh0KSBtdXRhYmxl
IHsKKyAgICAgICAgY29ubmVjdGlvbi0+ZmluZENsaWVudEJ5SWRlbnRpZmllcihzZXJ2aWNlV29y
a2VySWRlbnRpZmllciwgY2xpZW50SWRlbnRpZmllciwgW3Byb21pc2VQb2ludGVyLCBzZXJ2aWNl
V29ya2VySWRlbnRpZmllcl0gKGF1dG8mJiBjbGllbnREYXRhKSB7CisgICAgICAgICAgICBTV0Nv
bnRleHRNYW5hZ2VyOjpzaW5nbGV0b24oKS5wb3N0VGFza1RvU2VydmljZVdvcmtlcihzZXJ2aWNl
V29ya2VySWRlbnRpZmllciwgW3Byb21pc2VQb2ludGVyLCBkYXRhID0gY3Jvc3NUaHJlYWRDb3B5
KGNsaWVudERhdGEpXSAoYXV0byYgY29udGV4dCkgbXV0YWJsZSB7CiAgICAgICAgICAgICAgICAg
aWYgKGF1dG8gcHJvbWlzZSA9IGNvbnRleHQuY2xpZW50cygpLm1fcGVuZGluZ1Byb21pc2VzLnRh
a2UocHJvbWlzZVBvaW50ZXIpKQotICAgICAgICAgICAgICAgICAgICBkaWRGaW5pc2hHZXRSZXF1
ZXN0KGNvbnRleHQsICpwcm9taXNlLCBjbGllbnRJZGVudGlmaWVyLCBXVEZNb3ZlKGRhdGEpKTsK
KyAgICAgICAgICAgICAgICAgICAgZGlkRmluaXNoR2V0UmVxdWVzdChjb250ZXh0LCAqcHJvbWlz
ZSwgV1RGTW92ZShkYXRhKSk7CiAgICAgICAgICAgICB9KTsKICAgICAgICAgfSk7CiAgICAgfSk7
CiB9CiAKIAotc3RhdGljIGlubGluZSB2b2lkIG1hdGNoQWxsQ29tcGxldGVkKFNlcnZpY2VXb3Jr
ZXJHbG9iYWxTY29wZSYgc2NvcGUsIERlZmVycmVkUHJvbWlzZSYgcHJvbWlzZSwgVmVjdG9yPFNl
cnZpY2VXb3JrZXJDbGllbnRJbmZvcm1hdGlvbj4mJiBjbGllbnRzRGF0YSkKK3N0YXRpYyBpbmxp
bmUgdm9pZCBtYXRjaEFsbENvbXBsZXRlZChTZXJ2aWNlV29ya2VyR2xvYmFsU2NvcGUmIHNjb3Bl
LCBEZWZlcnJlZFByb21pc2UmIHByb21pc2UsIFZlY3RvcjxTZXJ2aWNlV29ya2VyQ2xpZW50RGF0
YT4mJiBjbGllbnRzRGF0YSkKIHsKLSAgICBhdXRvIGNsaWVudHMgPSBXVEY6Om1hcChjbGllbnRz
RGF0YSwgWyZdIChhdXRvJiYgY2xpZW50KSB7Ci0gICAgICAgIHJldHVybiBTZXJ2aWNlV29ya2Vy
Q2xpZW50OjpnZXRPckNyZWF0ZShzY29wZSwgY2xpZW50LmlkZW50aWZpZXIsIFdURk1vdmUoY2xp
ZW50LmRhdGEpKTsKKyAgICBhdXRvIGNsaWVudHMgPSBXVEY6Om1hcChjbGllbnRzRGF0YSwgWyZd
IChhdXRvJiYgY2xpZW50RGF0YSkgeworICAgICAgICByZXR1cm4gU2VydmljZVdvcmtlckNsaWVu
dDo6Z2V0T3JDcmVhdGUoc2NvcGUsIFdURk1vdmUoY2xpZW50RGF0YSkpOwogICAgIH0pOwogICAg
IHByb21pc2UucmVzb2x2ZTxJRExTZXF1ZW5jZTxJRExJbnRlcmZhY2U8U2VydmljZVdvcmtlckNs
aWVudD4+PihXVEZNb3ZlKGNsaWVudHMpKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3dvcmtlcnMvc2VydmljZS9TZXJ2aWNlV29ya2VyVHlwZXMuaCBiL1NvdXJjZS9XZWJDb3JlL3dv
cmtlcnMvc2VydmljZS9TZXJ2aWNlV29ya2VyVHlwZXMuaAppbmRleCA4ZDE1MmQzNjc5NGE0YjQ0
ZGYzNTQ4NjFlNGYyMzQxZTk2NWRkYTE1Li5iOWNhYjczNTMxY2FmYWVhZDI0YmVlOTRhNWI0OTk5
MWY0NDUyNmRkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvU2Vy
dmljZVdvcmtlclR5cGVzLmgKKysrIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL1Nl
cnZpY2VXb3JrZXJUeXBlcy5oCkBAIC0zNSw2ICszNSw5IEBACiAKIG5hbWVzcGFjZSBXZWJDb3Jl
IHsKIAorc3RydWN0IFNlcnZpY2VXb3JrZXJEYXRhOworc3RydWN0IFNlcnZpY2VXb3JrZXJDbGll
bnREYXRhOworCiBlbnVtIGNsYXNzIFNlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb25TdGF0ZSB7CiAg
ICAgSW5zdGFsbGluZyA9IDAsCiAgICAgV2FpdGluZyA9IDEsCkBAIC03Miw2ICs3NSw4IEBAIHVz
aW5nIFNXU2VydmVyQ29ubmVjdGlvbklkZW50aWZpZXIgPSBPYmplY3RJZGVudGlmaWVyPFNXU2Vy
dmVyQ29ubmVjdGlvbklkZW50aWZpCiAKIHVzaW5nIERvY3VtZW50T3JXb3JrZXJJZGVudGlmaWVy
ID0gVmFyaWFudDxEb2N1bWVudElkZW50aWZpZXIsIFNlcnZpY2VXb3JrZXJJZGVudGlmaWVyPjsK
IAordXNpbmcgU2VydmljZVdvcmtlck9yQ2xpZW50RGF0YSA9IFZhcmlhbnQ8U2VydmljZVdvcmtl
ckRhdGEsIFNlcnZpY2VXb3JrZXJDbGllbnREYXRhPjsKKwogfSAvLyBuYW1lc3BhY2UgV2ViQ29y
ZQogCiBuYW1lc3BhY2UgV1RGIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMv
c2VydmljZS9TZXJ2aWNlV29ya2VyV2luZG93Q2xpZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3dv
cmtlcnMvc2VydmljZS9TZXJ2aWNlV29ya2VyV2luZG93Q2xpZW50LmNwcAppbmRleCAyMDViYTUz
YjQ3MmU3ZGU5NTE2ZTZjOTU4NjE5MTFlZmJlMmNkZjU5Li44MmZiYjFmMmVlZTNjY2Y3ODliN2Zh
Y2Q4YTNjZTBlNjMxYzk5MjEwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3Nl
cnZpY2UvU2VydmljZVdvcmtlcldpbmRvd0NsaWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
d29ya2Vycy9zZXJ2aWNlL1NlcnZpY2VXb3JrZXJXaW5kb3dDbGllbnQuY3BwCkBAIC0zMiw4ICsz
Miw4IEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotU2VydmljZVdvcmtlcldpbmRvd0NsaWVu
dDo6U2VydmljZVdvcmtlcldpbmRvd0NsaWVudChTZXJ2aWNlV29ya2VyR2xvYmFsU2NvcGUmIGNv
bnRleHQsIFNlcnZpY2VXb3JrZXJDbGllbnRJZGVudGlmaWVyIGlkZW50aWZpZXIsIFNlcnZpY2VX
b3JrZXJDbGllbnREYXRhJiYgZGF0YSkKLSAgICA6IFNlcnZpY2VXb3JrZXJDbGllbnQoY29udGV4
dCwgaWRlbnRpZmllciwgV1RGTW92ZShkYXRhKSkKK1NlcnZpY2VXb3JrZXJXaW5kb3dDbGllbnQ6
OlNlcnZpY2VXb3JrZXJXaW5kb3dDbGllbnQoU2VydmljZVdvcmtlckdsb2JhbFNjb3BlJiBjb250
ZXh0LCBTZXJ2aWNlV29ya2VyQ2xpZW50RGF0YSYmIGRhdGEpCisgICAgOiBTZXJ2aWNlV29ya2Vy
Q2xpZW50KGNvbnRleHQsIFdURk1vdmUoZGF0YSkpCiB7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9TZXJ2aWNlV29ya2VyV2luZG93Q2xpZW50LmggYi9T
b3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvU2VydmljZVdvcmtlcldpbmRvd0NsaWVudC5o
CmluZGV4IDFjMWU3NTk5ZjhmZjhmZTExNjkxMmYxNmQ5ZjRhMjU4NzU3NjhlZjMuLmY0M2MyYzZk
MDcwNGViMWMwNzQ3Yzg1MzZjM2E4OGY5Mjg3NDViMWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3dvcmtlcnMvc2VydmljZS9TZXJ2aWNlV29ya2VyV2luZG93Q2xpZW50LmgKKysrIGIvU291
cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL1NlcnZpY2VXb3JrZXJXaW5kb3dDbGllbnQuaApA
QCAtMzcsOSArMzcsOSBAQCBjbGFzcyBTZXJ2aWNlV29ya2VyR2xvYmFsU2NvcGU7CiAKIGNsYXNz
IFNlcnZpY2VXb3JrZXJXaW5kb3dDbGllbnQgZmluYWwgOiBwdWJsaWMgU2VydmljZVdvcmtlckNs
aWVudCB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIFJlZjxTZXJ2aWNlV29ya2VyV2luZG93Q2xpZW50
PiBjcmVhdGUoU2VydmljZVdvcmtlckdsb2JhbFNjb3BlJiBjb250ZXh0LCBTZXJ2aWNlV29ya2Vy
Q2xpZW50SWRlbnRpZmllciBpZGVudGlmaWVyLCBTZXJ2aWNlV29ya2VyQ2xpZW50RGF0YSYmIGRh
dGEpCisgICAgc3RhdGljIFJlZjxTZXJ2aWNlV29ya2VyV2luZG93Q2xpZW50PiBjcmVhdGUoU2Vy
dmljZVdvcmtlckdsb2JhbFNjb3BlJiBjb250ZXh0LCBTZXJ2aWNlV29ya2VyQ2xpZW50RGF0YSYm
IGRhdGEpCiAgICAgewotICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBTZXJ2aWNlV29ya2Vy
V2luZG93Q2xpZW50KGNvbnRleHQsIGlkZW50aWZpZXIsIFdURk1vdmUoZGF0YSkpKTsKKyAgICAg
ICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgU2VydmljZVdvcmtlcldpbmRvd0NsaWVudChjb250ZXh0
LCBXVEZNb3ZlKGRhdGEpKSk7CiAgICAgfQogCiAgICAgVmlzaWJpbGl0eVN0YXRlIHZpc2liaWxp
dHlTdGF0ZSgpIGNvbnN0OwpAQCAtNDksNyArNDksNyBAQCBwdWJsaWM6CiAgICAgdm9pZCBuYXZp
Z2F0ZShjb25zdCBTdHJpbmcmIHVybCwgUmVmPERlZmVycmVkUHJvbWlzZT4mJik7CiAKIHByaXZh
dGU6Ci0gICAgU2VydmljZVdvcmtlcldpbmRvd0NsaWVudChTZXJ2aWNlV29ya2VyR2xvYmFsU2Nv
cGUmLCBTZXJ2aWNlV29ya2VyQ2xpZW50SWRlbnRpZmllciwgU2VydmljZVdvcmtlckNsaWVudERh
dGEmJik7CisgICAgU2VydmljZVdvcmtlcldpbmRvd0NsaWVudChTZXJ2aWNlV29ya2VyR2xvYmFs
U2NvcGUmLCBTZXJ2aWNlV29ya2VyQ2xpZW50RGF0YSYmKTsKIH07CiAKIH0gLy8gbmFtZXNwYWNl
IFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9jb250
ZXh0L1NXQ29udGV4dE1hbmFnZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNl
L2NvbnRleHQvU1dDb250ZXh0TWFuYWdlci5jcHAKaW5kZXggM2E1OTlkYWM4OGVkMTVmODc3OGRi
NmU0NzFhYWViZDkyOTM5MjUyOC4uNWI3MDU5NTRiMjNjZjdlODExOGYwNzYyNTBjOGIyOGE3MWYz
NWZiZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL2NvbnRleHQv
U1dDb250ZXh0TWFuYWdlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNl
L2NvbnRleHQvU1dDb250ZXh0TWFuYWdlci5jcHAKQEAgLTY3LDE3ICs2Nyw3IEBAIFNlcnZpY2VX
b3JrZXJUaHJlYWRQcm94eSogU1dDb250ZXh0TWFuYWdlcjo6c2VydmljZVdvcmtlclRocmVhZFBy
b3h5KFNlcnZpY2VXb3JrCiAgICAgcmV0dXJuIG1fd29ya2VyTWFwLmdldChpZGVudGlmaWVyKTsK
IH0KIAotdm9pZCBTV0NvbnRleHRNYW5hZ2VyOjpwb3N0TWVzc2FnZVRvU2VydmljZVdvcmtlcihT
ZXJ2aWNlV29ya2VySWRlbnRpZmllciBkZXN0aW5hdGlvbiwgUmVmPFNlcmlhbGl6ZWRTY3JpcHRW
YWx1ZT4mJiBtZXNzYWdlLCBTZXJ2aWNlV29ya2VyQ2xpZW50SWRlbnRpZmllciBzb3VyY2VJZGVu
dGlmaWVyLCBTZXJ2aWNlV29ya2VyQ2xpZW50RGF0YSYmIHNvdXJjZURhdGEpCi17Ci0gICAgYXV0
byogc2VydmljZVdvcmtlciA9IG1fd29ya2VyTWFwLmdldChkZXN0aW5hdGlvbik7Ci0gICAgQVNT
RVJUKHNlcnZpY2VXb3JrZXIpOwotICAgIEFTU0VSVCghc2VydmljZVdvcmtlci0+aXNUZXJtaW5h
dGluZ09yVGVybWluYXRlZCgpKTsKLQotICAgIC8vIEZJWE1FOiBXZSBzaG91bGQgcGFzcyB2YWxp
ZCBNZXNzYWdlUG9ydENoYW5uZWxzLgotICAgIHNlcnZpY2VXb3JrZXItPnRocmVhZCgpLnBvc3RN
ZXNzYWdlVG9TZXJ2aWNlV29ya2VyKFdURk1vdmUobWVzc2FnZSksIG51bGxwdHIsIHNvdXJjZUlk
ZW50aWZpZXIsIFdURk1vdmUoc291cmNlRGF0YSkpOwotfQotCi12b2lkIFNXQ29udGV4dE1hbmFn
ZXI6OnBvc3RNZXNzYWdlVG9TZXJ2aWNlV29ya2VyKFNlcnZpY2VXb3JrZXJJZGVudGlmaWVyIGRl
c3RpbmF0aW9uLCBSZWY8U2VyaWFsaXplZFNjcmlwdFZhbHVlPiYmIG1lc3NhZ2UsIFNlcnZpY2VX
b3JrZXJEYXRhJiYgc291cmNlRGF0YSkKK3ZvaWQgU1dDb250ZXh0TWFuYWdlcjo6cG9zdE1lc3Nh
Z2VUb1NlcnZpY2VXb3JrZXIoU2VydmljZVdvcmtlcklkZW50aWZpZXIgZGVzdGluYXRpb24sIFJl
ZjxTZXJpYWxpemVkU2NyaXB0VmFsdWU+JiYgbWVzc2FnZSwgU2VydmljZVdvcmtlck9yQ2xpZW50
RGF0YSYmIHNvdXJjZURhdGEpCiB7CiAgICAgYXV0byogc2VydmljZVdvcmtlciA9IG1fd29ya2Vy
TWFwLmdldChkZXN0aW5hdGlvbik7CiAgICAgQVNTRVJUKHNlcnZpY2VXb3JrZXIpOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL2NvbnRleHQvU1dDb250ZXh0TWFu
YWdlci5oIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL2NvbnRleHQvU1dDb250ZXh0
TWFuYWdlci5oCmluZGV4IGY0ZTAyMjE5Y2FmNWQ4YTMzYWNjZGM3NzUwMmMxNWViMGJiNjE0ZGQu
LmIyNTI5MDk2M2U1MmJkZjNjYjA4NDRhNjdjYWJkZmJjM2FjNjJhMTcgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9jb250ZXh0L1NXQ29udGV4dE1hbmFnZXIuaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvY29udGV4dC9TV0NvbnRleHRNYW5h
Z2VyLmgKQEAgLTI4LDcgKzI4LDcgQEAKICNpZiBFTkFCTEUoU0VSVklDRV9XT1JLRVIpCiAKICNp
bmNsdWRlICJFeGNlcHRpb25Pci5oIgotI2luY2x1ZGUgIlNlcnZpY2VXb3JrZXJDbGllbnRJbmZv
cm1hdGlvbi5oIgorI2luY2x1ZGUgIlNlcnZpY2VXb3JrZXJDbGllbnREYXRhLmgiCiAjaW5jbHVk
ZSAiU2VydmljZVdvcmtlckNsaWVudFF1ZXJ5T3B0aW9ucy5oIgogI2luY2x1ZGUgIlNlcnZpY2VX
b3JrZXJJZGVudGlmaWVyLmgiCiAjaW5jbHVkZSAiU2VydmljZVdvcmtlclRocmVhZFByb3h5Lmgi
CkBAIC02Nyw4ICs2Nyw3IEBAIHB1YmxpYzoKIAogICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgcmVn
aXN0ZXJTZXJ2aWNlV29ya2VyVGhyZWFkRm9ySW5zdGFsbChSZWY8U2VydmljZVdvcmtlclRocmVh
ZFByb3h5PiYmKTsKICAgICBXRUJDT1JFX0VYUE9SVCBTZXJ2aWNlV29ya2VyVGhyZWFkUHJveHkq
IHNlcnZpY2VXb3JrZXJUaHJlYWRQcm94eShTZXJ2aWNlV29ya2VySWRlbnRpZmllcikgY29uc3Q7
Ci0gICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBwb3N0TWVzc2FnZVRvU2VydmljZVdvcmtlcihTZXJ2
aWNlV29ya2VySWRlbnRpZmllciBkZXN0aW5hdGlvbiwgUmVmPFNlcmlhbGl6ZWRTY3JpcHRWYWx1
ZT4mJiBtZXNzYWdlLCBTZXJ2aWNlV29ya2VyQ2xpZW50SWRlbnRpZmllciBzb3VyY2VJZGVudGlm
aWVyLCBTZXJ2aWNlV29ya2VyQ2xpZW50RGF0YSYmIHNvdXJjZURhdGEpOwotICAgIFdFQkNPUkVf
RVhQT1JUIHZvaWQgcG9zdE1lc3NhZ2VUb1NlcnZpY2VXb3JrZXIoU2VydmljZVdvcmtlcklkZW50
aWZpZXIgZGVzdGluYXRpb24sIFJlZjxTZXJpYWxpemVkU2NyaXB0VmFsdWU+JiYgbWVzc2FnZSwg
U2VydmljZVdvcmtlckRhdGEmJiBzb3VyY2VEYXRhKTsKKyAgICBXRUJDT1JFX0VYUE9SVCB2b2lk
IHBvc3RNZXNzYWdlVG9TZXJ2aWNlV29ya2VyKFNlcnZpY2VXb3JrZXJJZGVudGlmaWVyIGRlc3Rp
bmF0aW9uLCBSZWY8U2VyaWFsaXplZFNjcmlwdFZhbHVlPiYmIG1lc3NhZ2UsIFNlcnZpY2VXb3Jr
ZXJPckNsaWVudERhdGEmJiBzb3VyY2VEYXRhKTsKICAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIGZp
cmVJbnN0YWxsRXZlbnQoU2VydmljZVdvcmtlcklkZW50aWZpZXIpOwogICAgIFdFQkNPUkVfRVhQ
T1JUIHZvaWQgZmlyZUFjdGl2YXRlRXZlbnQoU2VydmljZVdvcmtlcklkZW50aWZpZXIpOwogICAg
IFdFQkNPUkVfRVhQT1JUIHZvaWQgdGVybWluYXRlV29ya2VyKFNlcnZpY2VXb3JrZXJJZGVudGlm
aWVyLCBGdW5jdGlvbjx2b2lkKCk+JiYpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvd29y
a2Vycy9zZXJ2aWNlL2NvbnRleHQvU2VydmljZVdvcmtlclRocmVhZC5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS93b3JrZXJzL3NlcnZpY2UvY29udGV4dC9TZXJ2aWNlV29ya2VyVGhyZWFkLmNwcAppbmRl
eCA2N2M5ODA2MWQ3MTgzMzA2MzZjOTkyOTVhZGU4YTFiNmM5OTMwOWQ3Li5mYmNmYzdhMGQxYmYy
MmNiNzgyODg1ZTE1MTM5Njg5NmMwYWY0NzNkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS93
b3JrZXJzL3NlcnZpY2UvY29udGV4dC9TZXJ2aWNlV29ya2VyVGhyZWFkLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvY29udGV4dC9TZXJ2aWNlV29ya2VyVGhyZWFkLmNw
cApAQCAtMTExLDIzICsxMTEsMjIgQEAgc3RhdGljIHZvaWQgZmlyZU1lc3NhZ2VFdmVudChTZXJ2
aWNlV29ya2VyR2xvYmFsU2NvcGUmIHNjb3BlLCBSZWY8U2VyaWFsaXplZFNjcmkKICAgICBzY29w
ZS51cGRhdGVFeHRlbmRlZEV2ZW50c1NldChtZXNzYWdlRXZlbnQucHRyKCkpOwogfQogCi12b2lk
IFNlcnZpY2VXb3JrZXJUaHJlYWQ6OnBvc3RNZXNzYWdlVG9TZXJ2aWNlV29ya2VyKFJlZjxTZXJp
YWxpemVkU2NyaXB0VmFsdWU+JiYgbWVzc2FnZSwgc3RkOjp1bmlxdWVfcHRyPE1lc3NhZ2VQb3J0
Q2hhbm5lbEFycmF5PiYmIGNoYW5uZWxzLCBTZXJ2aWNlV29ya2VyQ2xpZW50SWRlbnRpZmllciBz
b3VyY2VJZGVudGlmaWVyLCBTZXJ2aWNlV29ya2VyQ2xpZW50RGF0YSYmIHNvdXJjZURhdGEpCit2
b2lkIFNlcnZpY2VXb3JrZXJUaHJlYWQ6OnBvc3RNZXNzYWdlVG9TZXJ2aWNlV29ya2VyKFJlZjxT
ZXJpYWxpemVkU2NyaXB0VmFsdWU+JiYgbWVzc2FnZSwgc3RkOjp1bmlxdWVfcHRyPE1lc3NhZ2VQ
b3J0Q2hhbm5lbEFycmF5PiYmIGNoYW5uZWxzLCBTZXJ2aWNlV29ya2VyT3JDbGllbnREYXRhJiYg
c291cmNlRGF0YSkKIHsKLSAgICBydW5Mb29wKCkucG9zdFRhc2soW2NoYW5uZWxzID0gV1RGTW92
ZShjaGFubmVscyksIG1lc3NhZ2UgPSBXVEZNb3ZlKG1lc3NhZ2UpLCBzb3VyY2VJZGVudGlmaWVy
LCBzb3VyY2VEYXRhID0gc291cmNlRGF0YS5pc29sYXRlZENvcHkoKV0gKGF1dG8mIGNvbnRleHQp
IG11dGFibGUgeworICAgIHJ1bkxvb3AoKS5wb3N0VGFzayhbY2hhbm5lbHMgPSBXVEZNb3ZlKGNo
YW5uZWxzKSwgbWVzc2FnZSA9IFdURk1vdmUobWVzc2FnZSksIHNvdXJjZURhdGEgPSBXVEZNb3Zl
KHNvdXJjZURhdGEpXSAoYXV0byYgY29udGV4dCkgbXV0YWJsZSB7CiAgICAgICAgIGF1dG8mIHNl
cnZpY2VXb3JrZXJHbG9iYWxTY29wZSA9IGRvd25jYXN0PFNlcnZpY2VXb3JrZXJHbG9iYWxTY29w
ZT4oY29udGV4dCk7Ci0gICAgICAgIFJlZlB0cjxTZXJ2aWNlV29ya2VyQ2xpZW50PiBzb3VyY2Ug
PSBTZXJ2aWNlV29ya2VyQ2xpZW50OjpnZXRPckNyZWF0ZShzZXJ2aWNlV29ya2VyR2xvYmFsU2Nv
cGUsIHNvdXJjZUlkZW50aWZpZXIsIFdURk1vdmUoc291cmNlRGF0YSkpOwotICAgICAgICBhdXRv
IHNvdXJjZU9yaWdpbiA9IFNlY3VyaXR5T3JpZ2luOjpjcmVhdGUoc291cmNlLT51cmwoKSk7Ci0g
ICAgICAgIGZpcmVNZXNzYWdlRXZlbnQoc2VydmljZVdvcmtlckdsb2JhbFNjb3BlLCBXVEZNb3Zl
KG1lc3NhZ2UpLCBXVEZNb3ZlKGNoYW5uZWxzKSwgRXh0ZW5kYWJsZU1lc3NhZ2VFdmVudFNvdXJj
ZSB7IHNvdXJjZSB9LCBXVEZNb3ZlKHNvdXJjZU9yaWdpbikpOwotICAgIH0pOwotfQotCi12b2lk
IFNlcnZpY2VXb3JrZXJUaHJlYWQ6OnBvc3RNZXNzYWdlVG9TZXJ2aWNlV29ya2VyKFJlZjxTZXJp
YWxpemVkU2NyaXB0VmFsdWU+JiYgbWVzc2FnZSwgc3RkOjp1bmlxdWVfcHRyPE1lc3NhZ2VQb3J0
Q2hhbm5lbEFycmF5PiYmIGNoYW5uZWxzLCBTZXJ2aWNlV29ya2VyRGF0YSYmIHNvdXJjZURhdGEp
Ci17Ci0gICAgcnVuTG9vcCgpLnBvc3RUYXNrKFtjaGFubmVscyA9IFdURk1vdmUoY2hhbm5lbHMp
LCBtZXNzYWdlID0gV1RGTW92ZShtZXNzYWdlKSwgc291cmNlRGF0YSA9IHNvdXJjZURhdGEuaXNv
bGF0ZWRDb3B5KCldIChhdXRvJiBjb250ZXh0KSBtdXRhYmxlIHsKLSAgICAgICAgYXV0byYgc2Vy
dmljZVdvcmtlckdsb2JhbFNjb3BlID0gZG93bmNhc3Q8U2VydmljZVdvcmtlckdsb2JhbFNjb3Bl
Pihjb250ZXh0KTsKLSAgICAgICAgUmVmUHRyPFNlcnZpY2VXb3JrZXI+IHNvdXJjZSA9IFNlcnZp
Y2VXb3JrZXI6OmdldE9yQ3JlYXRlKHNlcnZpY2VXb3JrZXJHbG9iYWxTY29wZSwgV1RGTW92ZShz
b3VyY2VEYXRhKSk7Ci0gICAgICAgIGF1dG8gc291cmNlT3JpZ2luID0gU2VjdXJpdHlPcmlnaW46
OmNyZWF0ZShzb3VyY2UtPnNjcmlwdFVSTCgpKTsKLSAgICAgICAgZmlyZU1lc3NhZ2VFdmVudChk
b3duY2FzdDxTZXJ2aWNlV29ya2VyR2xvYmFsU2NvcGU+KGNvbnRleHQpLCBXVEZNb3ZlKG1lc3Nh
Z2UpLCBXVEZNb3ZlKGNoYW5uZWxzKSwgRXh0ZW5kYWJsZU1lc3NhZ2VFdmVudFNvdXJjZSB7IHNv
dXJjZSB9LCBXVEZNb3ZlKHNvdXJjZU9yaWdpbikpOworICAgICAgICBSZWZQdHI8U2VjdXJpdHlP
cmlnaW4+IHNvdXJjZU9yaWdpbjsKKyAgICAgICAgRXh0ZW5kYWJsZU1lc3NhZ2VFdmVudFNvdXJj
ZSBzb3VyY2U7CisgICAgICAgIGlmIChXVEY6OmhvbGRzX2FsdGVybmF0aXZlPFNlcnZpY2VXb3Jr
ZXJDbGllbnREYXRhPihzb3VyY2VEYXRhKSkgeworICAgICAgICAgICAgYXV0byBzb3VyY2VDbGll
bnQgPSBTZXJ2aWNlV29ya2VyQ2xpZW50OjpnZXRPckNyZWF0ZShzZXJ2aWNlV29ya2VyR2xvYmFs
U2NvcGUsIFdURk1vdmUoV1RGOjpnZXQ8U2VydmljZVdvcmtlckNsaWVudERhdGE+KHNvdXJjZURh
dGEpKSk7CisgICAgICAgICAgICBzb3VyY2VPcmlnaW4gPSBTZWN1cml0eU9yaWdpbjo6Y3JlYXRl
KHNvdXJjZUNsaWVudC0+dXJsKCkpOworICAgICAgICAgICAgc291cmNlID0gUmVmUHRyPFNlcnZp
Y2VXb3JrZXJDbGllbnQ+IHsgV1RGTW92ZShzb3VyY2VDbGllbnQpIH07CisgICAgICAgIH0gZWxz
ZSB7CisgICAgICAgICAgICBhdXRvIHNvdXJjZVdvcmtlciA9IFNlcnZpY2VXb3JrZXI6OmdldE9y
Q3JlYXRlKHNlcnZpY2VXb3JrZXJHbG9iYWxTY29wZSwgV1RGTW92ZShXVEY6OmdldDxTZXJ2aWNl
V29ya2VyRGF0YT4oc291cmNlRGF0YSkpKTsKKyAgICAgICAgICAgIHNvdXJjZU9yaWdpbiA9IFNl
Y3VyaXR5T3JpZ2luOjpjcmVhdGUoc291cmNlV29ya2VyLT5zY3JpcHRVUkwoKSk7CisgICAgICAg
ICAgICBzb3VyY2UgPSBSZWZQdHI8U2VydmljZVdvcmtlcj4geyBXVEZNb3ZlKHNvdXJjZVdvcmtl
cikgfTsKKyAgICAgICAgfQorICAgICAgICBmaXJlTWVzc2FnZUV2ZW50KHNlcnZpY2VXb3JrZXJH
bG9iYWxTY29wZSwgV1RGTW92ZShtZXNzYWdlKSwgV1RGTW92ZShjaGFubmVscyksIEV4dGVuZGFi
bGVNZXNzYWdlRXZlbnRTb3VyY2UgeyBzb3VyY2UgfSwgc291cmNlT3JpZ2luLnJlbGVhc2VOb25O
dWxsKCkpOwogICAgIH0pOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJz
L3NlcnZpY2UvY29udGV4dC9TZXJ2aWNlV29ya2VyVGhyZWFkLmggYi9Tb3VyY2UvV2ViQ29yZS93
b3JrZXJzL3NlcnZpY2UvY29udGV4dC9TZXJ2aWNlV29ya2VyVGhyZWFkLmgKaW5kZXggMWRkYmRj
ZDBlYzI0YzhmMWZlNWM1MWY4NDFmMTU3NjZmMThiNmNiZC4uZTQ1Y2ZiYmFlNTFmOGQwZDM4MTNh
YWU2YmFlM2U2OTRmNWE0ZmZlOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9z
ZXJ2aWNlL2NvbnRleHQvU2VydmljZVdvcmtlclRocmVhZC5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3dvcmtlcnMvc2VydmljZS9jb250ZXh0L1NlcnZpY2VXb3JrZXJUaHJlYWQuaApAQCAtNTgsOCAr
NTgsNyBAQCBwdWJsaWM6CiAKICAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHBvc3RGZXRjaFRhc2so
UmVmPFNlcnZpY2VXb3JrZXJGZXRjaDo6Q2xpZW50PiYmLCBSZXNvdXJjZVJlcXVlc3QmJiwgRmV0
Y2hPcHRpb25zJiYpOwogICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgcG9zdEZldGNoVGFzayhSZWY8
U2VydmljZVdvcmtlckZldGNoOjpDbGllbnQ+JiYsIHN0ZDo6b3B0aW9uYWw8U2VydmljZVdvcmtl
ckNsaWVudElkZW50aWZpZXI+JiYsIFJlc291cmNlUmVxdWVzdCYmLCBGZXRjaE9wdGlvbnMmJik7
Ci0gICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBwb3N0TWVzc2FnZVRvU2VydmljZVdvcmtlcihSZWY8
U2VyaWFsaXplZFNjcmlwdFZhbHVlPiYmLCBzdGQ6OnVuaXF1ZV9wdHI8TWVzc2FnZVBvcnRDaGFu
bmVsQXJyYXk+JiYsIFNlcnZpY2VXb3JrZXJDbGllbnRJZGVudGlmaWVyIHNvdXJjZUlkZW50aWZp
ZXIsIFNlcnZpY2VXb3JrZXJDbGllbnREYXRhJiYgc291cmNlRGF0YSk7Ci0gICAgV0VCQ09SRV9F
WFBPUlQgdm9pZCBwb3N0TWVzc2FnZVRvU2VydmljZVdvcmtlcihSZWY8U2VyaWFsaXplZFNjcmlw
dFZhbHVlPiYmLCBzdGQ6OnVuaXF1ZV9wdHI8TWVzc2FnZVBvcnRDaGFubmVsQXJyYXk+JiYsIFNl
cnZpY2VXb3JrZXJEYXRhJiYgc291cmNlRGF0YSk7CisgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBw
b3N0TWVzc2FnZVRvU2VydmljZVdvcmtlcihSZWY8U2VyaWFsaXplZFNjcmlwdFZhbHVlPiYmLCBz
dGQ6OnVuaXF1ZV9wdHI8TWVzc2FnZVBvcnRDaGFubmVsQXJyYXk+JiYsIFNlcnZpY2VXb3JrZXJP
ckNsaWVudERhdGEmJiBzb3VyY2VEYXRhKTsKIAogICAgIHZvaWQgZmlyZUluc3RhbGxFdmVudCgp
OwogICAgIHZvaWQgZmlyZUFjdGl2YXRlRXZlbnQoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3dvcmtlcnMvc2VydmljZS9zZXJ2ZXIvU1dTZXJ2ZXIuY3BwIGIvU291cmNlL1dlYkNvcmUv
d29ya2Vycy9zZXJ2aWNlL3NlcnZlci9TV1NlcnZlci5jcHAKaW5kZXggYTMzMjUxOGEwMzAzMGMy
Y2ZjZmJiM2UwZDgwYmZhNjg5YjM0NDIxNi4uNDJjNDcxMTNhNzE1MDM4NzgzOTk3N2U2NzUwMzc1
NDg5YmJiMDVhMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL3Nl
cnZlci9TV1NlcnZlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL3Nl
cnZlci9TV1NlcnZlci5jcHAKQEAgLTM0Niw3ICszNDYsNyBAQCBzdGQ6Om9wdGlvbmFsPFNlcnZp
Y2VXb3JrZXJDbGllbnREYXRhPiBTV1NlcnZlcjo6ZmluZENsaWVudEJ5SWRlbnRpZmllcihjb25z
dCBDbAogICAgICAgICByZXR1cm4gY2xpZW50SWRlbnRpZmllciA9PSBjbGllbnQuaWRlbnRpZmll
cjsKICAgICB9KTsKIAotICAgIHJldHVybiAocG9zaXRpb24gIT0gbm90Rm91bmQpID8gc3RkOjpt
YWtlX29wdGlvbmFsKGNsaWVudHNbcG9zaXRpb25dLmRhdGEpIDogc3RkOjpudWxsb3B0OworICAg
IHJldHVybiAocG9zaXRpb24gIT0gbm90Rm91bmQpID8gc3RkOjptYWtlX29wdGlvbmFsKGNsaWVu
dHNbcG9zaXRpb25dKSA6IHN0ZDo6bnVsbG9wdDsKIH0KIAogLy8gaHR0cHM6Ly93M2MuZ2l0aHVi
LmlvL1NlcnZpY2VXb3JrZXIvI2NsaWVudHMtZ2V0YWxsCkBAIC0zNTgsMTMgKzM1OCwxMyBAQCB2
b2lkIFNXU2VydmVyOjptYXRjaEFsbChTV1NlcnZlcldvcmtlciYgd29ya2VyLCBjb25zdCBTZXJ2
aWNlV29ya2VyQ2xpZW50UXVlcnlPcAogICAgIGF1dG8gY2xpZW50cyA9IG1fY2xpZW50cy5maW5k
KHdvcmtlci5vcmlnaW4oKSktPnZhbHVlLmNsaWVudHM7CiAKICAgICBpZiAoIW9wdGlvbnMuaW5j
bHVkZVVuY29udHJvbGxlZCkgewotICAgICAgICBjbGllbnRzLnJlbW92ZUFsbE1hdGNoaW5nKFsm
XSAoY29uc3QgYXV0byYgY2xpZW50KSB7Ci0gICAgICAgICAgICByZXR1cm4gd29ya2VyLmlkZW50
aWZpZXIoKSAhPSBtX2NsaWVudFRvQ29udHJvbGxpbmdXb3JrZXIuZ2V0KGNsaWVudC5pZGVudGlm
aWVyKTsKKyAgICAgICAgY2xpZW50cy5yZW1vdmVBbGxNYXRjaGluZyhbJl0gKGNvbnN0IGF1dG8m
IGNsaWVudERhdGEpIHsKKyAgICAgICAgICAgIHJldHVybiB3b3JrZXIuaWRlbnRpZmllcigpICE9
IG1fY2xpZW50VG9Db250cm9sbGluZ1dvcmtlci5nZXQoY2xpZW50RGF0YS5pZGVudGlmaWVyKTsK
ICAgICAgICAgfSk7CiAgICAgfQogICAgIGlmIChvcHRpb25zLnR5cGUgIT0gU2VydmljZVdvcmtl
ckNsaWVudFR5cGU6OkFsbCkgewotICAgICAgICBjbGllbnRzLnJlbW92ZUFsbE1hdGNoaW5nKFsm
XSAoY29uc3QgYXV0byYgY2xpZW50KSB7Ci0gICAgICAgICAgICByZXR1cm4gb3B0aW9ucy50eXBl
ICE9IGNsaWVudC5kYXRhLnR5cGU7CisgICAgICAgIGNsaWVudHMucmVtb3ZlQWxsTWF0Y2hpbmco
WyZdIChjb25zdCBhdXRvJiBjbGllbnREYXRhKSB7CisgICAgICAgICAgICByZXR1cm4gb3B0aW9u
cy50eXBlICE9IGNsaWVudERhdGEudHlwZTsKICAgICAgICAgfSk7CiAgICAgfQogICAgIGNhbGxi
YWNrKFdURk1vdmUoY2xpZW50cykpOwpAQCAtMzc4LDIwICszNzgsMjAgQEAgdm9pZCBTV1NlcnZl
cjo6Y2xhaW0oU1dTZXJ2ZXJXb3JrZXImIHdvcmtlcikKICAgICAgICAgcmV0dXJuOwogCiAgICAg
YXV0byYgY2xpZW50cyA9IGl0ZXJhdG9yLT52YWx1ZS5jbGllbnRzOwotICAgIGZvciAoYXV0byYg
Y2xpZW50IDogY2xpZW50cykgewotICAgICAgICBhdXRvKiByZWdpc3RyYXRpb24gPSBkb1JlZ2lz
dHJhdGlvbk1hdGNoaW5nKG9yaWdpbi50b3BPcmlnaW4sIGNsaWVudC5kYXRhLnVybCk7CisgICAg
Zm9yIChhdXRvJiBjbGllbnREYXRhIDogY2xpZW50cykgeworICAgICAgICBhdXRvKiByZWdpc3Ry
YXRpb24gPSBkb1JlZ2lzdHJhdGlvbk1hdGNoaW5nKG9yaWdpbi50b3BPcmlnaW4sIGNsaWVudERh
dGEudXJsKTsKICAgICAgICAgaWYgKCEocmVnaXN0cmF0aW9uICYmIHJlZ2lzdHJhdGlvbi0+a2V5
KCkgPT0gd29ya2VyLnJlZ2lzdHJhdGlvbktleSgpKSkKICAgICAgICAgICAgIGNvbnRpbnVlOwog
Ci0gICAgICAgIGF1dG8gcmVzdWx0ID0gbV9jbGllbnRUb0NvbnRyb2xsaW5nV29ya2VyLmFkZChj
bGllbnQuaWRlbnRpZmllciwgd29ya2VyLmlkZW50aWZpZXIoKSk7CisgICAgICAgIGF1dG8gcmVz
dWx0ID0gbV9jbGllbnRUb0NvbnRyb2xsaW5nV29ya2VyLmFkZChjbGllbnREYXRhLmlkZW50aWZp
ZXIsIHdvcmtlci5pZGVudGlmaWVyKCkpOwogICAgICAgICBpZiAoIXJlc3VsdC5pc05ld0VudHJ5
KSB7CiAgICAgICAgICAgICBpZiAocmVzdWx0Lml0ZXJhdG9yLT52YWx1ZSA9PSB3b3JrZXIuaWRl
bnRpZmllcigpKQogICAgICAgICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgICAgICAgaWYgKGF1
dG8qIGNvbnRyb2xsaW5nUmVnaXN0cmF0aW9uID0gcmVnaXN0cmF0aW9uRnJvbVNlcnZpY2VXb3Jr
ZXJJZGVudGlmaWVyKHJlc3VsdC5pdGVyYXRvci0+dmFsdWUpKQotICAgICAgICAgICAgICAgIGNv
bnRyb2xsaW5nUmVnaXN0cmF0aW9uLT5yZW1vdmVDbGllbnRVc2luZ1JlZ2lzdHJhdGlvbihjbGll
bnQuaWRlbnRpZmllcik7CisgICAgICAgICAgICAgICAgY29udHJvbGxpbmdSZWdpc3RyYXRpb24t
PnJlbW92ZUNsaWVudFVzaW5nUmVnaXN0cmF0aW9uKGNsaWVudERhdGEuaWRlbnRpZmllcik7CiAg
ICAgICAgICAgICByZXN1bHQuaXRlcmF0b3ItPnZhbHVlID0gd29ya2VyLmlkZW50aWZpZXIoKTsK
ICAgICAgICAgfQotICAgICAgICByZWdpc3RyYXRpb24tPmNvbnRyb2xDbGllbnQoY2xpZW50Lmlk
ZW50aWZpZXIpOworICAgICAgICByZWdpc3RyYXRpb24tPmNvbnRyb2xDbGllbnQoY2xpZW50RGF0
YS5pZGVudGlmaWVyKTsKICAgICB9CiB9CiAKQEAgLTY4NywxNSArNjg3LDE1IEBAIFNXU2VydmVy
UmVnaXN0cmF0aW9uKiBTV1NlcnZlcjo6cmVnaXN0cmF0aW9uRnJvbVNlcnZpY2VXb3JrZXJJZGVu
dGlmaWVyKFNlcnZpY2VXCiAgICAgcmV0dXJuIG1fcmVnaXN0cmF0aW9ucy5nZXQoaXRlcmF0b3It
PnZhbHVlLT5yZWdpc3RyYXRpb25LZXkoKSk7CiB9CiAKLXZvaWQgU1dTZXJ2ZXI6OnJlZ2lzdGVy
U2VydmljZVdvcmtlckNsaWVudChDbGllbnRPcmlnaW4mJiBjbGllbnRPcmlnaW4sIFNlcnZpY2VX
b3JrZXJDbGllbnRJZGVudGlmaWVyIGNsaWVudElkZW50aWZpZXIsIFNlcnZpY2VXb3JrZXJDbGll
bnREYXRhJiYgZGF0YSwgY29uc3Qgc3RkOjpvcHRpb25hbDxTZXJ2aWNlV29ya2VySWRlbnRpZmll
cj4mIGNvbnRyb2xsaW5nU2VydmljZVdvcmtlcklkZW50aWZpZXIpCit2b2lkIFNXU2VydmVyOjpy
ZWdpc3RlclNlcnZpY2VXb3JrZXJDbGllbnQoQ2xpZW50T3JpZ2luJiYgY2xpZW50T3JpZ2luLCBT
ZXJ2aWNlV29ya2VyQ2xpZW50RGF0YSYmIGRhdGEsIGNvbnN0IHN0ZDo6b3B0aW9uYWw8U2Vydmlj
ZVdvcmtlcklkZW50aWZpZXI+JiBjb250cm9sbGluZ1NlcnZpY2VXb3JrZXJJZGVudGlmaWVyKQog
ewogICAgIGF1dG8mIGNsaWVudHNEYXRhID0gbV9jbGllbnRzLmVuc3VyZShXVEZNb3ZlKGNsaWVu
dE9yaWdpbiksIFtdIHsKICAgICAgICAgcmV0dXJuIENsaWVudHMgeyB9OwogICAgIH0pLml0ZXJh
dG9yLT52YWx1ZTsKIAotICAgIGNsaWVudHNEYXRhLmNsaWVudHMuYXBwZW5kKFNlcnZpY2VXb3Jr
ZXJDbGllbnRJbmZvcm1hdGlvbiB7IGNsaWVudElkZW50aWZpZXIsIFdURk1vdmUoZGF0YSkgfSk7
Ci0gICAgaWYgKGNsaWVudHNEYXRhLnRlcm1pbmF0ZVNlcnZpY2VXb3JrZXJzVGltZXIpCi0gICAg
ICAgIGNsaWVudHNEYXRhLnRlcm1pbmF0ZVNlcnZpY2VXb3JrZXJzVGltZXIgPSBudWxscHRyOwor
ICAgIGF1dG8gY2xpZW50SWRlbnRpZmllciA9IGRhdGEuaWRlbnRpZmllcjsKKyAgICBjbGllbnRz
RGF0YS5jbGllbnRzLmFwcGVuZChXVEZNb3ZlKGRhdGEpKTsKKyAgICBjbGllbnRzRGF0YS50ZXJt
aW5hdGVTZXJ2aWNlV29ya2Vyc1RpbWVyID0gbnVsbHB0cjsKIAogICAgIGlmICghY29udHJvbGxp
bmdTZXJ2aWNlV29ya2VySWRlbnRpZmllcikKICAgICAgICAgcmV0dXJuOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL3NlcnZlci9TV1NlcnZlci5oIGIvU291cmNl
L1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL3NlcnZlci9TV1NlcnZlci5oCmluZGV4IDlhMGRiZWRi
YTA5Y2RiOWFmNWI0ZGYzYjg1NzAwZmJjN2RiY2NmNzguLjFiMmY3ZGM4MDM1YjQxNWU2YmY2YTky
YzkzOWMwYzIyY2ZmMTljZmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2Vy
dmljZS9zZXJ2ZXIvU1dTZXJ2ZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZp
Y2Uvc2VydmVyL1NXU2VydmVyLmgKQEAgLTE1OSw3ICsxNTksNyBAQCBwdWJsaWM6CiAgICAgCiAg
ICAgV0VCQ09SRV9FWFBPUlQgc3RhdGljIEhhc2hTZXQ8U1dTZXJ2ZXIqPiYgYWxsU2VydmVycygp
OwogCi0gICAgV0VCQ09SRV9FWFBPUlQgdm9pZCByZWdpc3RlclNlcnZpY2VXb3JrZXJDbGllbnQo
Q2xpZW50T3JpZ2luJiYsIFNlcnZpY2VXb3JrZXJDbGllbnRJZGVudGlmaWVyLCBTZXJ2aWNlV29y
a2VyQ2xpZW50RGF0YSYmLCBjb25zdCBzdGQ6Om9wdGlvbmFsPFNlcnZpY2VXb3JrZXJJZGVudGlm
aWVyPiYgY29udHJvbGxpbmdTZXJ2aWNlV29ya2VySWRlbnRpZmllcik7CisgICAgV0VCQ09SRV9F
WFBPUlQgdm9pZCByZWdpc3RlclNlcnZpY2VXb3JrZXJDbGllbnQoQ2xpZW50T3JpZ2luJiYsIFNl
cnZpY2VXb3JrZXJDbGllbnREYXRhJiYsIGNvbnN0IHN0ZDo6b3B0aW9uYWw8U2VydmljZVdvcmtl
cklkZW50aWZpZXI+JiBjb250cm9sbGluZ1NlcnZpY2VXb3JrZXJJZGVudGlmaWVyKTsKICAgICBX
RUJDT1JFX0VYUE9SVCB2b2lkIHVucmVnaXN0ZXJTZXJ2aWNlV29ya2VyQ2xpZW50KGNvbnN0IENs
aWVudE9yaWdpbiYsIFNlcnZpY2VXb3JrZXJDbGllbnRJZGVudGlmaWVyKTsKIAogICAgIHVzaW5n
IFJ1blNlcnZpY2VXb3JrZXJDYWxsYmFjayA9IFdURjo6RnVuY3Rpb248dm9pZChib29sLCBTV1Nl
cnZlclRvQ29udGV4dENvbm5lY3Rpb24mKT47CkBAIC0yMDcsNyArMjA3LDcgQEAgcHJpdmF0ZToK
ICAgICBIYXNoTWFwPFNlcnZpY2VXb3JrZXJJZGVudGlmaWVyLCBSZWY8U1dTZXJ2ZXJXb3JrZXI+
PiBtX3J1bm5pbmdPclRlcm1pbmF0aW5nV29ya2VyczsKIAogICAgIHN0cnVjdCBDbGllbnRzIHsK
LSAgICAgICAgVmVjdG9yPFNlcnZpY2VXb3JrZXJDbGllbnRJbmZvcm1hdGlvbj4gY2xpZW50czsK
KyAgICAgICAgVmVjdG9yPFNlcnZpY2VXb3JrZXJDbGllbnREYXRhPiBjbGllbnRzOwogICAgICAg
ICBzdGQ6OnVuaXF1ZV9wdHI8VGltZXI+IHRlcm1pbmF0ZVNlcnZpY2VXb3JrZXJzVGltZXI7CiAg
ICAgfTsKICAgICBIYXNoTWFwPENsaWVudE9yaWdpbiwgQ2xpZW50cz4gbV9jbGllbnRzOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL3NlcnZlci9TV1NlcnZlclRv
Q29udGV4dENvbm5lY3Rpb24uaCBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9zZXJ2
ZXIvU1dTZXJ2ZXJUb0NvbnRleHRDb25uZWN0aW9uLmgKaW5kZXggYjdlNjI3MWU4MTI3MTc5M2U1
MmYwZjJhMDhlOGQwM2U2N2VhNzFlOC4uMTM1ZTJjMDYwYzc3ZjgzNTVlNjI4YzNjNWVjNTU5OTEz
OGJhZTYyOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL3NlcnZl
ci9TV1NlcnZlclRvQ29udGV4dENvbm5lY3Rpb24uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS93b3Jr
ZXJzL3NlcnZpY2Uvc2VydmVyL1NXU2VydmVyVG9Db250ZXh0Q29ubmVjdGlvbi5oCkBAIC00MSw3
ICs0MSw2IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIGNsYXNzIFNXU2VydmVyOwogc3RydWN0IFNl
cnZpY2VXb3JrZXJDbGllbnREYXRhOwogc3RydWN0IFNlcnZpY2VXb3JrZXJDbGllbnRJZGVudGlm
aWVyOwotc3RydWN0IFNlcnZpY2VXb3JrZXJDbGllbnRJbmZvcm1hdGlvbjsKIHN0cnVjdCBTZXJ2
aWNlV29ya2VyQ29udGV4dERhdGE7CiBzdHJ1Y3QgU2VydmljZVdvcmtlckpvYkRhdGFJZGVudGlm
aWVyOwogCkBAIC01OCw3ICs1Nyw3IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQgdGVybWlu
YXRlV29ya2VyKFNlcnZpY2VXb3JrZXJJZGVudGlmaWVyKSA9IDA7CiAgICAgdmlydHVhbCB2b2lk
IHN5bmNUZXJtaW5hdGVXb3JrZXIoU2VydmljZVdvcmtlcklkZW50aWZpZXIpID0gMDsKICAgICB2
aXJ0dWFsIHZvaWQgZmluZENsaWVudEJ5SWRlbnRpZmllckNvbXBsZXRlZCh1aW50NjRfdCByZXF1
ZXN0SWRlbnRpZmllciwgY29uc3Qgc3RkOjpvcHRpb25hbDxTZXJ2aWNlV29ya2VyQ2xpZW50RGF0
YT4mLCBib29sIGhhc1NlY3VyaXR5RXJyb3IpID0gMDsKLSAgICB2aXJ0dWFsIHZvaWQgbWF0Y2hB
bGxDb21wbGV0ZWQodWludDY0X3QgcmVxdWVzdElkZW50aWZpZXIsIGNvbnN0IFZlY3RvcjxTZXJ2
aWNlV29ya2VyQ2xpZW50SW5mb3JtYXRpb24+JikgPSAwOworICAgIHZpcnR1YWwgdm9pZCBtYXRj
aEFsbENvbXBsZXRlZCh1aW50NjRfdCByZXF1ZXN0SWRlbnRpZmllciwgY29uc3QgVmVjdG9yPFNl
cnZpY2VXb3JrZXJDbGllbnREYXRhPiYpID0gMDsKICAgICB2aXJ0dWFsIHZvaWQgY2xhaW1Db21w
bGV0ZWQodWludDY0X3QgcmVxdWVzdElkZW50aWZpZXIpID0gMDsKICAgICB2aXJ0dWFsIHZvaWQg
ZGlkRmluaXNoU2tpcFdhaXRpbmcodWludDY0X3QgY2FsbGJhY2tJRCkgPSAwOwogCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2Uvc2VydmVyL1NXU2VydmVyV29ya2Vy
LmggYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2Uvc2VydmVyL1NXU2VydmVyV29ya2Vy
LmgKaW5kZXggZmI4ZGY4NDA1MTk0MDM0MjRkN2NiN2E2ZmE4Y2YxMDgyY2E4MGRlZi4uMTI3YTVk
NzA1MGViNGYxOTI0MGM4MDJkMWE4MjQ2MzcxNTJiMWM4OCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvd29ya2Vycy9zZXJ2aWNlL3NlcnZlci9TV1NlcnZlcldvcmtlci5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9zZXJ2ZXIvU1dTZXJ2ZXJXb3JrZXIuaApAQCAtMjcs
NyArMjcsNyBAQAogCiAjaWYgRU5BQkxFKFNFUlZJQ0VfV09SS0VSKQogCi0jaW5jbHVkZSAiU2Vy
dmljZVdvcmtlckNsaWVudEluZm9ybWF0aW9uLmgiCisjaW5jbHVkZSAiU2VydmljZVdvcmtlckNs
aWVudERhdGEuaCIKICNpbmNsdWRlICJTZXJ2aWNlV29ya2VyRGF0YS5oIgogI2luY2x1ZGUgIlNl
cnZpY2VXb3JrZXJJZGVudGlmaWVyLmgiCiAjaW5jbHVkZSAiU2VydmljZVdvcmtlclJlZ2lzdHJh
dGlvbktleS5oIgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TY3JpcHRzL3dlYmtpdC9tZXNz
YWdlcy5weSBiL1NvdXJjZS9XZWJLaXQvU2NyaXB0cy93ZWJraXQvbWVzc2FnZXMucHkKaW5kZXgg
NGNlZDM2MjgxM2YyYjEyZmI3MjczODllMTk3ZDY2ODkwZTk1YzUxOC4uNWE3MzgxMDBiOTc3NGE5
ZDIyNGNmMmIyZTk5ZWNkNjY0ODdhYTY5MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9TY3Jp
cHRzL3dlYmtpdC9tZXNzYWdlcy5weQorKysgYi9Tb3VyY2UvV2ViS2l0L1NjcmlwdHMvd2Via2l0
L21lc3NhZ2VzLnB5CkBAIC0xODYsNiArMTg2LDcgQEAgZGVmIGZvcndhcmRfZGVjbGFyYXRpb25z
X2FuZF9oZWFkZXJzKHJlY2VpdmVyKToKICAgICBub19mb3J3YXJkX2RlY2xhcmF0aW9uX3R5cGVz
ID0gZnJvemVuc2V0KFsKICAgICAgICAgJ1dlYkNvcmU6OkRvY3VtZW50SWRlbnRpZmllcicsCiAg
ICAgICAgICdXZWJDb3JlOjpTZXJ2aWNlV29ya2VySWRlbnRpZmllcicsCisgICAgICAgICdXZWJD
b3JlOjpTZXJ2aWNlV29ya2VyT3JDbGllbnREYXRhJywKICAgICAgICAgJ1dlYkNvcmU6OlNlcnZp
Y2VXb3JrZXJSZWdpc3RyYXRpb25JZGVudGlmaWVyJywKICAgICAgICAgJ1dlYkNvcmU6OlNXU2Vy
dmVyQ29ubmVjdGlvbklkZW50aWZpZXInLAogICAgIF0pCkBAIC0zODIsNiArMzgzLDcgQEAgZGVm
IGhlYWRlcnNfZm9yX3R5cGUodHlwZSk6CiAgICAgICAgICdXZWJDb3JlOjpQb2xpY3lBY3Rpb24n
OiBbJzxXZWJDb3JlL0ZyYW1lTG9hZGVyVHlwZXMuaD4nXSwKICAgICAgICAgJ1dlYkNvcmU6OlJl
Y2VudFNlYXJjaCc6IFsnPFdlYkNvcmUvU2VhcmNoUG9wdXBNZW51Lmg+J10sCiAgICAgICAgICdX
ZWJDb3JlOjpTV1NlcnZlckNvbm5lY3Rpb25JZGVudGlmaWVyJzogWyc8V2ViQ29yZS9TZXJ2aWNl
V29ya2VyVHlwZXMuaD4nXSwKKyAgICAgICAgJ1dlYkNvcmU6OlNlcnZpY2VXb3JrZXJPckNsaWVu
dERhdGEnOiBbJzxXZWJDb3JlL1NlcnZpY2VXb3JrZXJUeXBlcy5oPicsICc8V2ViQ29yZS9TZXJ2
aWNlV29ya2VyQ2xpZW50RGF0YS5oPicsICc8V2ViQ29yZS9TZXJ2aWNlV29ya2VyRGF0YS5oPidd
LAogICAgICAgICAnV2ViQ29yZTo6U2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbklkZW50aWZpZXIn
OiBbJzxXZWJDb3JlL1NlcnZpY2VXb3JrZXJUeXBlcy5oPiddLAogICAgICAgICAnV2ViQ29yZTo6
U2VydmljZVdvcmtlclJlZ2lzdHJhdGlvblN0YXRlJzogWyc8V2ViQ29yZS9TZXJ2aWNlV29ya2Vy
VHlwZXMuaD4nXSwKICAgICAgICAgJ1dlYkNvcmU6OlNlcnZpY2VXb3JrZXJTdGF0ZSc6IFsnPFdl
YkNvcmUvU2VydmljZVdvcmtlclR5cGVzLmg+J10sCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L1NoYXJlZC9XZWJDb3JlQXJndW1lbnRDb2RlcnMuY3BwIGIvU291cmNlL1dlYktpdC9TaGFyZWQv
V2ViQ29yZUFyZ3VtZW50Q29kZXJzLmNwcAppbmRleCAwMGE4MjRhMzg2OWM4MDhkNTliMmJiYjU5
ZTk1OWRjODU2MDliZmMyLi4wODMwYzlhZjc4NmM1NzdiMmRkYmFjNmNmYjU1MWE3YTBhYTNiYWUx
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJDb3JlQXJndW1lbnRDb2RlcnMu
Y3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkNvcmVBcmd1bWVudENvZGVycy5jcHAK
QEAgLTY1LDYgKzY1LDggQEAKICNpbmNsdWRlIDxXZWJDb3JlL1Njcm9sbGluZ0NvbnN0cmFpbnRz
Lmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9TY3JvbGxpbmdDb29yZGluYXRvci5oPgogI2luY2x1ZGUg
PFdlYkNvcmUvU2VhcmNoUG9wdXBNZW51Lmg+CisjaW5jbHVkZSA8V2ViQ29yZS9TZXJ2aWNlV29y
a2VyQ2xpZW50RGF0YS5oPgorI2luY2x1ZGUgPFdlYkNvcmUvU2VydmljZVdvcmtlckRhdGEuaD4K
ICNpbmNsdWRlIDxXZWJDb3JlL1RleHRDaGVja2VyQ2xpZW50Lmg+CiAjaW5jbHVkZSA8V2ViQ29y
ZS9UZXh0SW5kaWNhdG9yLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9UaW1pbmdGdW5jdGlvbi5oPgpA
QCAtMjY4NCw2ICsyNjg2LDQxIEBAIGJvb2wgQXJndW1lbnRDb2RlcjxJREJLZXlQYXRoPjo6ZGVj
b2RlKERlY29kZXImIGRlY29kZXIsIElEQktleVBhdGgmIGtleVBhdGgpCiB9CiAjZW5kaWYKIAor
I2lmIEVOQUJMRShTRVJWSUNFX1dPUktFUikKK3ZvaWQgQXJndW1lbnRDb2RlcjxTZXJ2aWNlV29y
a2VyT3JDbGllbnREYXRhPjo6ZW5jb2RlKEVuY29kZXImIGVuY29kZXIsIGNvbnN0IFNlcnZpY2VX
b3JrZXJPckNsaWVudERhdGEmIGRhdGEpCit7CisgICAgYm9vbCBpc1NlcnZpY2VXb3JrZXJEYXRh
ID0gV1RGOjpob2xkc19hbHRlcm5hdGl2ZTxTZXJ2aWNlV29ya2VyRGF0YT4oZGF0YSk7CisgICAg
ZW5jb2RlciA8PCBpc1NlcnZpY2VXb3JrZXJEYXRhOworICAgIGlmIChpc1NlcnZpY2VXb3JrZXJE
YXRhKQorICAgICAgICBlbmNvZGVyIDw8IFdURjo6Z2V0PFNlcnZpY2VXb3JrZXJEYXRhPihkYXRh
KTsKKyAgICBlbHNlCisgICAgICAgIGVuY29kZXIgPDwgV1RGOjpnZXQ8U2VydmljZVdvcmtlckNs
aWVudERhdGE+KGRhdGEpOworfQorCitib29sIEFyZ3VtZW50Q29kZXI8U2VydmljZVdvcmtlck9y
Q2xpZW50RGF0YT46OmRlY29kZShEZWNvZGVyJiBkZWNvZGVyLCBTZXJ2aWNlV29ya2VyT3JDbGll
bnREYXRhJiBkYXRhKQoreworICAgIGJvb2wgaXNTZXJ2aWNlV29ya2VyRGF0YTsKKyAgICBpZiAo
IWRlY29kZXIuZGVjb2RlKGlzU2VydmljZVdvcmtlckRhdGEpKQorICAgICAgICByZXR1cm4gZmFs
c2U7CisgICAgaWYgKGlzU2VydmljZVdvcmtlckRhdGEpIHsKKyAgICAgICAgc3RkOjpvcHRpb25h
bDxTZXJ2aWNlV29ya2VyRGF0YT4gd29ya2VyRGF0YTsKKyAgICAgICAgZGVjb2RlciA+PiB3b3Jr
ZXJEYXRhOworICAgICAgICBpZiAoIXdvcmtlckRhdGEpCisgICAgICAgICAgICByZXR1cm4gZmFs
c2U7CisKKyAgICAgICAgZGF0YSA9IFdURk1vdmUoKndvcmtlckRhdGEpOworICAgIH0gZWxzZSB7
CisgICAgICAgIHN0ZDo6b3B0aW9uYWw8U2VydmljZVdvcmtlckNsaWVudERhdGE+IGNsaWVudERh
dGE7CisgICAgICAgIGRlY29kZXIgPj4gY2xpZW50RGF0YTsKKyAgICAgICAgaWYgKCFjbGllbnRE
YXRhKQorICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgICAgIGRhdGEgPSBXVEZNb3Zl
KCpjbGllbnREYXRhKTsKKyAgICB9CisgICAgcmV0dXJuIHRydWU7Cit9CisjZW5kaWYKKwogI2lm
IEVOQUJMRShDU1NfU0NST0xMX1NOQVApCiAKIHZvaWQgQXJndW1lbnRDb2RlcjxTY3JvbGxPZmZz
ZXRSYW5nZTxmbG9hdD4+OjplbmNvZGUoRW5jb2RlciYgZW5jb2RlciwgY29uc3QgU2Nyb2xsT2Zm
c2V0UmFuZ2U8ZmxvYXQ+JiByYW5nZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVk
L1dlYkNvcmVBcmd1bWVudENvZGVycy5oIGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViQ29yZUFy
Z3VtZW50Q29kZXJzLmgKaW5kZXggYTFlN2EzOTcyYjI3ZjA1MWU2ZjE5ODQ1ZGZhYTE0NDQ3ZDg1
NzdlMi4uOTEwYTRlY2Q2YWEyZDBlYzg0NmVjZDMwZWNjMmIzYTFhYmJmMjdkYiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViQ29yZUFyZ3VtZW50Q29kZXJzLmgKKysrIGIvU291
cmNlL1dlYktpdC9TaGFyZWQvV2ViQ29yZUFyZ3VtZW50Q29kZXJzLmgKQEAgLTM5LDYgKzM5LDcg
QEAKICNpbmNsdWRlIDxXZWJDb3JlL1BheW1lbnRIZWFkZXJzLmg+CiAjaW5jbHVkZSA8V2ViQ29y
ZS9SZWFsdGltZU1lZGlhU291cmNlLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9TY3JvbGxTbmFwT2Zm
c2V0c0luZm8uaD4KKyNpbmNsdWRlIDxXZWJDb3JlL1NlcnZpY2VXb3JrZXJUeXBlcy5oPgogI2lu
Y2x1ZGUgPFdlYkNvcmUvU3RvcmVkQ3JlZGVudGlhbHNQb2xpY3kuaD4KICNpbmNsdWRlIDxXZWJD
b3JlL1dvcmtlclR5cGUuaD4KIApAQCAtNjY3LDYgKzY2OCwxNSBAQCB0ZW1wbGF0ZTw+IHN0cnVj
dCBBcmd1bWVudENvZGVyPFdlYkNvcmU6OklEQktleVBhdGg+IHsKIAogI2VuZGlmCiAKKyNpZiBF
TkFCTEUoU0VSVklDRV9XT1JLRVIpCisKK3RlbXBsYXRlPD4gc3RydWN0IEFyZ3VtZW50Q29kZXI8
V2ViQ29yZTo6U2VydmljZVdvcmtlck9yQ2xpZW50RGF0YT4geworICAgIHN0YXRpYyB2b2lkIGVu
Y29kZShFbmNvZGVyJiwgY29uc3QgV2ViQ29yZTo6U2VydmljZVdvcmtlck9yQ2xpZW50RGF0YSYp
OworICAgIHN0YXRpYyBib29sIGRlY29kZShEZWNvZGVyJiwgV2ViQ29yZTo6U2VydmljZVdvcmtl
ck9yQ2xpZW50RGF0YSYpOworfTsKKworI2VuZGlmCisKICNpZiBFTkFCTEUoQ1NTX1NDUk9MTF9T
TkFQKQogCiB0ZW1wbGF0ZTw+IHN0cnVjdCBBcmd1bWVudENvZGVyPFdlYkNvcmU6OlNjcm9sbE9m
ZnNldFJhbmdlPGZsb2F0Pj4gewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TdG9yYWdlUHJv
Y2Vzcy9TZXJ2aWNlV29ya2VyL1dlYlNXU2VydmVyQ29ubmVjdGlvbi5jcHAgYi9Tb3VyY2UvV2Vi
S2l0L1N0b3JhZ2VQcm9jZXNzL1NlcnZpY2VXb3JrZXIvV2ViU1dTZXJ2ZXJDb25uZWN0aW9uLmNw
cAppbmRleCA3NDgxMWY0NzllZmRiMDgxZmJhOGYyOWZmMGRmOTRjYmIzYzIzYzA2Li4zNmM5ZGJi
MGRjYjEyYTMwMGJmNDQ4ZmQyODQ2YjJhMjhiOTJmODY5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L1N0b3JhZ2VQcm9jZXNzL1NlcnZpY2VXb3JrZXIvV2ViU1dTZXJ2ZXJDb25uZWN0aW9uLmNw
cAorKysgYi9Tb3VyY2UvV2ViS2l0L1N0b3JhZ2VQcm9jZXNzL1NlcnZpY2VXb3JrZXIvV2ViU1dT
ZXJ2ZXJDb25uZWN0aW9uLmNwcApAQCAtNjgsNyArNjgsNyBAQCBXZWJTV1NlcnZlckNvbm5lY3Rp
b246On5XZWJTV1NlcnZlckNvbm5lY3Rpb24oKQogewogICAgIFN0b3JhZ2VQcm9jZXNzOjpzaW5n
bGV0b24oKS51bnJlZ2lzdGVyU1dTZXJ2ZXJDb25uZWN0aW9uKCp0aGlzKTsKICAgICBmb3IgKGF1
dG8ga2V5VmFsdWUgOiBtX2NsaWVudE9yaWdpbnMpCi0gICAgICAgIHNlcnZlcigpLnVucmVnaXN0
ZXJTZXJ2aWNlV29ya2VyQ2xpZW50KGtleVZhbHVlLnZhbHVlLCBTZXJ2aWNlV29ya2VyQ2xpZW50
SWRlbnRpZmllciB7IGlkZW50aWZpZXIoKSwga2V5VmFsdWUua2V5IH0pOworICAgICAgICBzZXJ2
ZXIoKS51bnJlZ2lzdGVyU2VydmljZVdvcmtlckNsaWVudChrZXlWYWx1ZS52YWx1ZSwga2V5VmFs
dWUua2V5KTsKIH0KIAogdm9pZCBXZWJTV1NlcnZlckNvbm5lY3Rpb246OmRpc2Nvbm5lY3RlZEZy
b21XZWJQcm9jZXNzKCkKQEAgLTEyNywxMiArMTI3LDEzIEBAIHZvaWQgV2ViU1dTZXJ2ZXJDb25u
ZWN0aW9uOjpzdGFydEZldGNoKHVpbnQ2NF90IGZldGNoSWRlbnRpZmllciwgU2VydmljZVdvcmtl
cklkCiAgICAgfSk7CiB9CiAKLXZvaWQgV2ViU1dTZXJ2ZXJDb25uZWN0aW9uOjpwb3N0TWVzc2Fn
ZVRvU2VydmljZVdvcmtlckZyb21DbGllbnQoU2VydmljZVdvcmtlcklkZW50aWZpZXIgZGVzdGlu
YXRpb25JZGVudGlmaWVyLCBJUEM6OkRhdGFSZWZlcmVuY2UmJiBtZXNzYWdlLCBTZXJ2aWNlV29y
a2VyQ2xpZW50SWRlbnRpZmllciBzb3VyY2VJZGVudGlmaWVyLCBTZXJ2aWNlV29ya2VyQ2xpZW50
RGF0YSYmIHNvdXJjZURhdGEpCisvLyBGSVhNRTogV2Ugc2hvdWxkIGJlIGFibGUgdG8gb25seSBw
YXNzIGluIHRoZSBTZXJ2aWNlV29ya2VyQ2xpZW50SWRlbnRpZmllciBoZXJlIGFuZCBsb29rIHVw
IHRoZSBjbGllbnREYXRhIGZyb20gdGhlIFNXU2VydmVyLgordm9pZCBXZWJTV1NlcnZlckNvbm5l
Y3Rpb246OnBvc3RNZXNzYWdlVG9TZXJ2aWNlV29ya2VyRnJvbUNsaWVudChTZXJ2aWNlV29ya2Vy
SWRlbnRpZmllciBkZXN0aW5hdGlvbklkZW50aWZpZXIsIElQQzo6RGF0YVJlZmVyZW5jZSYmIG1l
c3NhZ2UsIFNlcnZpY2VXb3JrZXJDbGllbnRJZGVudGlmaWVyLCBTZXJ2aWNlV29ya2VyQ2xpZW50
RGF0YSYmIHNvdXJjZURhdGEpCiB7CiAgICAgLy8gSXQncyBwb3NzaWJsZSB0aGlzIHNwZWNpZmlj
IHdvcmtlciBjYW5ub3QgYmUgcmUtcnVuIChlLmcuIGl0cyByZWdpc3RyYXRpb24gaGFzIGJlZW4g
cmVtb3ZlZCkKLSAgICBzZXJ2ZXIoKS5ydW5TZXJ2aWNlV29ya2VySWZOZWNlc3NhcnkoZGVzdGlu
YXRpb25JZGVudGlmaWVyLCBbZGVzdGluYXRpb25JZGVudGlmaWVyLCBtZXNzYWdlID0gV1RGTW92
ZShtZXNzYWdlKSwgc291cmNlSWRlbnRpZmllciwgc291cmNlRGF0YSA9IFdURk1vdmUoc291cmNl
RGF0YSldKGJvb2wgc3VjY2VzcywgYXV0byYgY29udGV4dENvbm5lY3Rpb24pIG11dGFibGUgewor
ICAgIHNlcnZlcigpLnJ1blNlcnZpY2VXb3JrZXJJZk5lY2Vzc2FyeShkZXN0aW5hdGlvbklkZW50
aWZpZXIsIFtkZXN0aW5hdGlvbklkZW50aWZpZXIsIG1lc3NhZ2UgPSBXVEZNb3ZlKG1lc3NhZ2Up
LCBzb3VyY2VEYXRhID0gV1RGTW92ZShzb3VyY2VEYXRhKV0oYm9vbCBzdWNjZXNzLCBhdXRvJiBj
b250ZXh0Q29ubmVjdGlvbikgbXV0YWJsZSB7CiAgICAgICAgIGlmIChzdWNjZXNzKQotICAgICAg
ICAgICAgc2VuZFRvQ29udGV4dFByb2Nlc3MoY29udGV4dENvbm5lY3Rpb24sIE1lc3NhZ2VzOjpX
ZWJTV0NvbnRleHRNYW5hZ2VyQ29ubmVjdGlvbjo6UG9zdE1lc3NhZ2VUb1NlcnZpY2VXb3JrZXJG
cm9tQ2xpZW50IHsgZGVzdGluYXRpb25JZGVudGlmaWVyLCBtZXNzYWdlLCBzb3VyY2VJZGVudGlm
aWVyLCBXVEZNb3ZlKHNvdXJjZURhdGEpIH0pOworICAgICAgICAgICAgc2VuZFRvQ29udGV4dFBy
b2Nlc3MoY29udGV4dENvbm5lY3Rpb24sIE1lc3NhZ2VzOjpXZWJTV0NvbnRleHRNYW5hZ2VyQ29u
bmVjdGlvbjo6UG9zdE1lc3NhZ2VUb1NlcnZpY2VXb3JrZXIgeyBkZXN0aW5hdGlvbklkZW50aWZp
ZXIsIG1lc3NhZ2UsIFdURk1vdmUoc291cmNlRGF0YSkgfSk7CiAgICAgfSk7CiB9CiAKQEAgLTE0
Nyw3ICsxNDgsNyBAQCB2b2lkIFdlYlNXU2VydmVyQ29ubmVjdGlvbjo6cG9zdE1lc3NhZ2VUb1Nl
cnZpY2VXb3JrZXJGcm9tU2VydmljZVdvcmtlcihTZXJ2aWNlVwogICAgICAgICBpZiAoIXN1Y2Nl
c3MpCiAgICAgICAgICAgICByZXR1cm47CiAKLSAgICAgICAgc2VuZFRvQ29udGV4dFByb2Nlc3Mo
Y29udGV4dENvbm5lY3Rpb24sIE1lc3NhZ2VzOjpXZWJTV0NvbnRleHRNYW5hZ2VyQ29ubmVjdGlv
bjo6UG9zdE1lc3NhZ2VUb1NlcnZpY2VXb3JrZXJGcm9tU2VydmljZVdvcmtlciB7IGRlc3RpbmF0
aW9uSWRlbnRpZmllciwgbWVzc2FnZSwgV1RGTW92ZShzb3VyY2VEYXRhKSB9KTsKKyAgICAgICAg
c2VuZFRvQ29udGV4dFByb2Nlc3MoY29udGV4dENvbm5lY3Rpb24sIE1lc3NhZ2VzOjpXZWJTV0Nv
bnRleHRNYW5hZ2VyQ29ubmVjdGlvbjo6UG9zdE1lc3NhZ2VUb1NlcnZpY2VXb3JrZXIgeyBkZXN0
aW5hdGlvbklkZW50aWZpZXIsIG1lc3NhZ2UsIFdURk1vdmUoc291cmNlRGF0YSkgfSk7CiAgICAg
fSk7CiB9CiAKQEAgLTIxMCwyMCArMjExLDIwIEBAIHZvaWQgV2ViU1dTZXJ2ZXJDb25uZWN0aW9u
OjpnZXRSZWdpc3RyYXRpb25zKHVpbnQ2NF90IHJlZ2lzdHJhdGlvbk1hdGNoUmVxdWVzdElkCiAg
ICAgc2VuZChNZXNzYWdlczo6V2ViU1dDbGllbnRDb25uZWN0aW9uOjpEaWRHZXRSZWdpc3RyYXRp
b25zIHsgcmVnaXN0cmF0aW9uTWF0Y2hSZXF1ZXN0SWRlbnRpZmllciwgcmVnaXN0cmF0aW9ucyB9
KTsKIH0KIAotdm9pZCBXZWJTV1NlcnZlckNvbm5lY3Rpb246OnJlZ2lzdGVyU2VydmljZVdvcmtl
ckNsaWVudChTZWN1cml0eU9yaWdpbkRhdGEmJiB0b3BPcmlnaW4sIERvY3VtZW50SWRlbnRpZmll
ciBjb250ZXh0SWRlbnRpZmllciwgU2VydmljZVdvcmtlckNsaWVudERhdGEmJiBkYXRhLCBjb25z
dCBzdGQ6Om9wdGlvbmFsPFNlcnZpY2VXb3JrZXJJZGVudGlmaWVyPiYgY29udHJvbGxpbmdTZXJ2
aWNlV29ya2VySWRlbnRpZmllcikKK3ZvaWQgV2ViU1dTZXJ2ZXJDb25uZWN0aW9uOjpyZWdpc3Rl
clNlcnZpY2VXb3JrZXJDbGllbnQoU2VjdXJpdHlPcmlnaW5EYXRhJiYgdG9wT3JpZ2luLCBTZXJ2
aWNlV29ya2VyQ2xpZW50RGF0YSYmIGRhdGEsIGNvbnN0IHN0ZDo6b3B0aW9uYWw8U2VydmljZVdv
cmtlcklkZW50aWZpZXI+JiBjb250cm9sbGluZ1NlcnZpY2VXb3JrZXJJZGVudGlmaWVyKQogewog
ICAgIGF1dG8gY2xpZW50T3JpZ2luID0gQ2xpZW50T3JpZ2luIHsgV1RGTW92ZSh0b3BPcmlnaW4p
LCBTZWN1cml0eU9yaWdpbkRhdGE6OmZyb21TZWN1cml0eU9yaWdpbihTZWN1cml0eU9yaWdpbjo6
Y3JlYXRlKGRhdGEudXJsKSkgfTsKLSAgICBtX2NsaWVudE9yaWdpbnMuYWRkKGNvbnRleHRJZGVu
dGlmaWVyLCBjbGllbnRPcmlnaW4pOwotICAgIHNlcnZlcigpLnJlZ2lzdGVyU2VydmljZVdvcmtl
ckNsaWVudChXVEZNb3ZlKGNsaWVudE9yaWdpbiksIFNlcnZpY2VXb3JrZXJDbGllbnRJZGVudGlm
aWVyIHsgdGhpcy0+aWRlbnRpZmllcigpLCBjb250ZXh0SWRlbnRpZmllciB9ICwgV1RGTW92ZShk
YXRhKSwgY29udHJvbGxpbmdTZXJ2aWNlV29ya2VySWRlbnRpZmllcik7CisgICAgbV9jbGllbnRP
cmlnaW5zLmFkZChkYXRhLmlkZW50aWZpZXIsIGNsaWVudE9yaWdpbik7CisgICAgc2VydmVyKCku
cmVnaXN0ZXJTZXJ2aWNlV29ya2VyQ2xpZW50KFdURk1vdmUoY2xpZW50T3JpZ2luKSwgV1RGTW92
ZShkYXRhKSwgY29udHJvbGxpbmdTZXJ2aWNlV29ya2VySWRlbnRpZmllcik7CiB9CiAKLXZvaWQg
V2ViU1dTZXJ2ZXJDb25uZWN0aW9uOjp1bnJlZ2lzdGVyU2VydmljZVdvcmtlckNsaWVudChEb2N1
bWVudElkZW50aWZpZXIgY29udGV4dElkZW50aWZpZXIpCit2b2lkIFdlYlNXU2VydmVyQ29ubmVj
dGlvbjo6dW5yZWdpc3RlclNlcnZpY2VXb3JrZXJDbGllbnQoY29uc3QgU2VydmljZVdvcmtlckNs
aWVudElkZW50aWZpZXImIGNsaWVudElkZW50aWZpZXIpCiB7Ci0gICAgYXV0byBpdGVyYXRvciA9
IG1fY2xpZW50T3JpZ2lucy5maW5kKGNvbnRleHRJZGVudGlmaWVyKTsKKyAgICBhdXRvIGl0ZXJh
dG9yID0gbV9jbGllbnRPcmlnaW5zLmZpbmQoY2xpZW50SWRlbnRpZmllcik7CiAgICAgaWYgKGl0
ZXJhdG9yID09IG1fY2xpZW50T3JpZ2lucy5lbmQoKSkKICAgICAgICAgcmV0dXJuOwogCi0gICAg
c2VydmVyKCkudW5yZWdpc3RlclNlcnZpY2VXb3JrZXJDbGllbnQoaXRlcmF0b3ItPnZhbHVlLCBT
ZXJ2aWNlV29ya2VyQ2xpZW50SWRlbnRpZmllciB7IHRoaXMtPmlkZW50aWZpZXIoKSwgY29udGV4
dElkZW50aWZpZXIgfSk7CisgICAgc2VydmVyKCkudW5yZWdpc3RlclNlcnZpY2VXb3JrZXJDbGll
bnQoaXRlcmF0b3ItPnZhbHVlLCBjbGllbnRJZGVudGlmaWVyKTsKICAgICBtX2NsaWVudE9yaWdp
bnMucmVtb3ZlKGl0ZXJhdG9yKTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TdG9y
YWdlUHJvY2Vzcy9TZXJ2aWNlV29ya2VyL1dlYlNXU2VydmVyQ29ubmVjdGlvbi5oIGIvU291cmNl
L1dlYktpdC9TdG9yYWdlUHJvY2Vzcy9TZXJ2aWNlV29ya2VyL1dlYlNXU2VydmVyQ29ubmVjdGlv
bi5oCmluZGV4IGRlZmQzZGQ4ZGRiZGQ3Y2IzYWIzYmEwYWY5OTEwMTUyODFlOWNjYWQuLmE0ZTQ5
OTcxZWI4MmI3ZWU5ZWUyMmY5MjVmODMzZWNhMzQ2OWY3ZjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvU3RvcmFnZVByb2Nlc3MvU2VydmljZVdvcmtlci9XZWJTV1NlcnZlckNvbm5lY3Rpb24u
aAorKysgYi9Tb3VyY2UvV2ViS2l0L1N0b3JhZ2VQcm9jZXNzL1NlcnZpY2VXb3JrZXIvV2ViU1dT
ZXJ2ZXJDb25uZWN0aW9uLmgKQEAgLTg5LDggKzg5LDggQEAgcHJpdmF0ZToKICAgICB2b2lkIG1h
dGNoUmVnaXN0cmF0aW9uKHVpbnQ2NF90IHJlZ2lzdHJhdGlvbk1hdGNoUmVxdWVzdElkZW50aWZp
ZXIsIGNvbnN0IFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0YSYgdG9wT3JpZ2luLCBjb25zdCBX
ZWJDb3JlOjpVUkwmIGNsaWVudFVSTCk7CiAgICAgdm9pZCBnZXRSZWdpc3RyYXRpb25zKHVpbnQ2
NF90IHJlZ2lzdHJhdGlvbk1hdGNoUmVxdWVzdElkZW50aWZpZXIsIGNvbnN0IFdlYkNvcmU6OlNl
Y3VyaXR5T3JpZ2luRGF0YSYgdG9wT3JpZ2luLCBjb25zdCBXZWJDb3JlOjpVUkwmIGNsaWVudFVS
TCk7CiAKLSAgICB2b2lkIHJlZ2lzdGVyU2VydmljZVdvcmtlckNsaWVudChXZWJDb3JlOjpTZWN1
cml0eU9yaWdpbkRhdGEmJiB0b3BPcmlnaW4sIFdlYkNvcmU6OkRvY3VtZW50SWRlbnRpZmllciwg
V2ViQ29yZTo6U2VydmljZVdvcmtlckNsaWVudERhdGEmJiwgY29uc3Qgc3RkOjpvcHRpb25hbDxX
ZWJDb3JlOjpTZXJ2aWNlV29ya2VySWRlbnRpZmllcj4mKTsKLSAgICB2b2lkIHVucmVnaXN0ZXJT
ZXJ2aWNlV29ya2VyQ2xpZW50KFdlYkNvcmU6OkRvY3VtZW50SWRlbnRpZmllcik7CisgICAgdm9p
ZCByZWdpc3RlclNlcnZpY2VXb3JrZXJDbGllbnQoV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW5EYXRh
JiYgdG9wT3JpZ2luLCBXZWJDb3JlOjpTZXJ2aWNlV29ya2VyQ2xpZW50RGF0YSYmLCBjb25zdCBz
dGQ6Om9wdGlvbmFsPFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJJZGVudGlmaWVyPiYpOworICAgIHZv
aWQgdW5yZWdpc3RlclNlcnZpY2VXb3JrZXJDbGllbnQoY29uc3QgV2ViQ29yZTo6U2VydmljZVdv
cmtlckNsaWVudElkZW50aWZpZXImKTsKIAogICAgIElQQzo6Q29ubmVjdGlvbiogbWVzc2FnZVNl
bmRlckNvbm5lY3Rpb24oKSBmaW5hbCB7IHJldHVybiBtX2NvbnRlbnRDb25uZWN0aW9uLnB0cigp
OyB9CiAgICAgdWludDY0X3QgbWVzc2FnZVNlbmRlckRlc3RpbmF0aW9uSUQoKSBmaW5hbCB7IHJl
dHVybiBpZGVudGlmaWVyKCkudG9VSW50NjQoKTsgfQpAQCAtMTAwLDcgKzEwMCw3IEBAIHByaXZh
dGU6CiAKICAgICBQQUw6OlNlc3Npb25JRCBtX3Nlc3Npb25JRDsKICAgICBSZWY8SVBDOjpDb25u
ZWN0aW9uPiBtX2NvbnRlbnRDb25uZWN0aW9uOwotICAgIEhhc2hNYXA8V2ViQ29yZTo6RG9jdW1l
bnRJZGVudGlmaWVyLCBXZWJDb3JlOjpDbGllbnRPcmlnaW4+IG1fY2xpZW50T3JpZ2luczsKKyAg
ICBIYXNoTWFwPFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJDbGllbnRJZGVudGlmaWVyLCBXZWJDb3Jl
OjpDbGllbnRPcmlnaW4+IG1fY2xpZW50T3JpZ2luczsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdl
YktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TdG9yYWdlUHJvY2Vzcy9TZXJ2aWNlV29y
a2VyL1dlYlNXU2VydmVyQ29ubmVjdGlvbi5tZXNzYWdlcy5pbiBiL1NvdXJjZS9XZWJLaXQvU3Rv
cmFnZVByb2Nlc3MvU2VydmljZVdvcmtlci9XZWJTV1NlcnZlckNvbm5lY3Rpb24ubWVzc2FnZXMu
aW4KaW5kZXggNTVkMDE5Yjk2ZjIzZTI5Nzc5NGJkOWIxNjgzNWU1MzdiZWU1Mjk1Yi4uYjQwMjRh
YjdlN2IxOTI5ZDg0NjFmMGJkMjFmM2JhZGRmZTVhNTQ0YiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9TdG9yYWdlUHJvY2Vzcy9TZXJ2aWNlV29ya2VyL1dlYlNXU2VydmVyQ29ubmVjdGlvbi5t
ZXNzYWdlcy5pbgorKysgYi9Tb3VyY2UvV2ViS2l0L1N0b3JhZ2VQcm9jZXNzL1NlcnZpY2VXb3Jr
ZXIvV2ViU1dTZXJ2ZXJDb25uZWN0aW9uLm1lc3NhZ2VzLmluCkBAIC0zMCw2ICszMCw4IEBAIG1l
c3NhZ2VzIC0+IFdlYlNXU2VydmVyQ29ubmVjdGlvbiB7CiAgICAgUmVtb3ZlU2VydmljZVdvcmtl
clJlZ2lzdHJhdGlvbkluU2VydmVyKFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb25J
ZGVudGlmaWVyIGlkZW50aWZpZXIpCiAKICAgICBTdGFydEZldGNoKHVpbnQ2NF90IGlkZW50aWZp
ZXIsIFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJJZGVudGlmaWVyIHNlcnZpY2VXb3JrZXJJZGVudGlm
aWVyLCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QgcmVxdWVzdCwgc3RydWN0IFdlYkNvcmU6OkZl
dGNoT3B0aW9ucyBvcHRpb25zLCBJUEM6OkZvcm1EYXRhUmVmZXJlbmNlIHJlcXVlc3RCb2R5KQor
CisgICAgIyBGSVhNRTogV2Ugc2hvdWxkIGJlIGFibGUgdG8gbWVyZ2UgdGhlIDIgZm9sbG93aW5n
IG1lc3NhZ2VzIGFuZCB1c2UgYSBEb2N1bWVudE9yV29ya2VySWRlbnRpZmllciBhcyBzb3VyY2Ug
aWRlbnRpZmllci4KICAgICBQb3N0TWVzc2FnZVRvU2VydmljZVdvcmtlckZyb21DbGllbnQoV2Vi
Q29yZTo6U2VydmljZVdvcmtlcklkZW50aWZpZXIgZGVzdGluYXRpb25TZXJ2aWNlV29ya2VySWRl
bnRpZmllciwgSVBDOjpEYXRhUmVmZXJlbmNlIG1lc3NhZ2UsIHN0cnVjdCBXZWJDb3JlOjpTZXJ2
aWNlV29ya2VyQ2xpZW50SWRlbnRpZmllciBzb3VyY2VJZGVudGlmaWVyLCBzdHJ1Y3QgV2ViQ29y
ZTo6U2VydmljZVdvcmtlckNsaWVudERhdGEgc291cmNlRGF0YSkKICAgICBQb3N0TWVzc2FnZVRv
U2VydmljZVdvcmtlckZyb21TZXJ2aWNlV29ya2VyKFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJJZGVu
dGlmaWVyIGRlc3RpbmF0aW9uU2VydmljZVdvcmtlcklkZW50aWZpZXIsIElQQzo6RGF0YVJlZmVy
ZW5jZSBtZXNzYWdlLCBzdHJ1Y3QgV2ViQ29yZTo6U2VydmljZVdvcmtlcklkZW50aWZpZXIgc291
cmNlSWRlbnRpZmllcikKIApAQCAtMzgsOCArNDAsOCBAQCBtZXNzYWdlcyAtPiBXZWJTV1NlcnZl
ckNvbm5lY3Rpb24gewogICAgIE1hdGNoUmVnaXN0cmF0aW9uKHVpbnQ2NF90IHNlcnZpY2VSZWdp
c3RyYXRpb25NYXRjaFJlcXVlc3RJZGVudGlmaWVyLCBzdHJ1Y3QgV2ViQ29yZTo6U2VjdXJpdHlP
cmlnaW5EYXRhIHRvcE9yaWdpbiwgV2ViQ29yZTo6VVJMIGNsaWVudFVSTCkKICAgICBXaGVuUmVn
aXN0cmF0aW9uUmVhZHkodWludDY0X3Qgc2VydmljZVJlZ2lzdHJhdGlvbk1hdGNoUmVxdWVzdElk
ZW50aWZpZXIsIHN0cnVjdCBXZWJDb3JlOjpTZWN1cml0eU9yaWdpbkRhdGEgdG9wT3JpZ2luLCBX
ZWJDb3JlOjpVUkwgY2xpZW50VVJMKQogICAgIEdldFJlZ2lzdHJhdGlvbnModWludDY0X3Qgc2Vy
dmljZVJlZ2lzdHJhdGlvbk1hdGNoUmVxdWVzdElkZW50aWZpZXIsIHN0cnVjdCBXZWJDb3JlOjpT
ZWN1cml0eU9yaWdpbkRhdGEgdG9wT3JpZ2luLCBXZWJDb3JlOjpVUkwgY2xpZW50VVJMKQotICAg
IFJlZ2lzdGVyU2VydmljZVdvcmtlckNsaWVudChzdHJ1Y3QgV2ViQ29yZTo6U2VjdXJpdHlPcmln
aW5EYXRhIHRvcE9yaWdpbiwgV2ViQ29yZTo6RG9jdW1lbnRJZGVudGlmaWVyIGlkZW50aWZpZXIs
IHN0cnVjdCBXZWJDb3JlOjpTZXJ2aWNlV29ya2VyQ2xpZW50RGF0YSBkYXRhLCBzdGQ6Om9wdGlv
bmFsPFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJJZGVudGlmaWVyPiBjb250cm9sbGluZ1NlcnZpY2VX
b3JrZXJJZGVudGlmaWVyKQotICAgIFVucmVnaXN0ZXJTZXJ2aWNlV29ya2VyQ2xpZW50KFdlYkNv
cmU6OkRvY3VtZW50SWRlbnRpZmllciBpZGVudGlmaWVyKQorICAgIFJlZ2lzdGVyU2VydmljZVdv
cmtlckNsaWVudChzdHJ1Y3QgV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW5EYXRhIHRvcE9yaWdpbiwg
c3RydWN0IFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJDbGllbnREYXRhIGRhdGEsIHN0ZDo6b3B0aW9u
YWw8V2ViQ29yZTo6U2VydmljZVdvcmtlcklkZW50aWZpZXI+IGNvbnRyb2xsaW5nU2VydmljZVdv
cmtlcklkZW50aWZpZXIpCisgICAgVW5yZWdpc3RlclNlcnZpY2VXb3JrZXJDbGllbnQoc3RydWN0
IFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJDbGllbnRJZGVudGlmaWVyIGlkZW50aWZpZXIpCiAKICAg
ICBTeW5jVGVybWluYXRlV29ya2VyKFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJJZGVudGlmaWVyIHdv
cmtlcklkZW50aWZpZXIpIC0+ICgpCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1N0b3Jh
Z2VQcm9jZXNzL1NlcnZpY2VXb3JrZXIvV2ViU1dTZXJ2ZXJUb0NvbnRleHRDb25uZWN0aW9uLmNw
cCBiL1NvdXJjZS9XZWJLaXQvU3RvcmFnZVByb2Nlc3MvU2VydmljZVdvcmtlci9XZWJTV1NlcnZl
clRvQ29udGV4dENvbm5lY3Rpb24uY3BwCmluZGV4IDU4MmIxMjUyNWI3YWMzODQ0MmZlMTRhZTgx
ZmNkOGQ1ZDQyNWExYmYuLmY3ODU5MzgxYTNiZTk2NDA0Yjk0NWEzYWUxY2MzZTI2YTRjZWZmY2Mg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU3RvcmFnZVByb2Nlc3MvU2VydmljZVdvcmtlci9X
ZWJTV1NlcnZlclRvQ29udGV4dENvbm5lY3Rpb24uY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvU3Rv
cmFnZVByb2Nlc3MvU2VydmljZVdvcmtlci9XZWJTV1NlcnZlclRvQ29udGV4dENvbm5lY3Rpb24u
Y3BwCkBAIC04Niw3ICs4Niw3IEBAIHZvaWQgV2ViU1dTZXJ2ZXJUb0NvbnRleHRDb25uZWN0aW9u
OjpmaW5kQ2xpZW50QnlJZGVudGlmaWVyQ29tcGxldGVkKHVpbnQ2NF90IHJlCiAgICAgc2VuZChN
ZXNzYWdlczo6V2ViU1dDb250ZXh0TWFuYWdlckNvbm5lY3Rpb246OkZpbmRDbGllbnRCeUlkZW50
aWZpZXJDb21wbGV0ZWQgeyByZXF1ZXN0SWRlbnRpZmllciwgZGF0YSwgaGFzU2VjdXJpdHlFcnJv
ciB9KTsKIH0KIAotdm9pZCBXZWJTV1NlcnZlclRvQ29udGV4dENvbm5lY3Rpb246Om1hdGNoQWxs
Q29tcGxldGVkKHVpbnQ2NF90IHJlcXVlc3RJZGVudGlmaWVyLCBjb25zdCBWZWN0b3I8U2Vydmlj
ZVdvcmtlckNsaWVudEluZm9ybWF0aW9uPiYgY2xpZW50c0RhdGEpCit2b2lkIFdlYlNXU2VydmVy
VG9Db250ZXh0Q29ubmVjdGlvbjo6bWF0Y2hBbGxDb21wbGV0ZWQodWludDY0X3QgcmVxdWVzdElk
ZW50aWZpZXIsIGNvbnN0IFZlY3RvcjxTZXJ2aWNlV29ya2VyQ2xpZW50RGF0YT4mIGNsaWVudHNE
YXRhKQogewogICAgIHNlbmQoTWVzc2FnZXM6OldlYlNXQ29udGV4dE1hbmFnZXJDb25uZWN0aW9u
OjpNYXRjaEFsbENvbXBsZXRlZCB7IHJlcXVlc3RJZGVudGlmaWVyLCBjbGllbnRzRGF0YSB9KTsK
IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU3RvcmFnZVByb2Nlc3MvU2VydmljZVdvcmtl
ci9XZWJTV1NlcnZlclRvQ29udGV4dENvbm5lY3Rpb24uaCBiL1NvdXJjZS9XZWJLaXQvU3RvcmFn
ZVByb2Nlc3MvU2VydmljZVdvcmtlci9XZWJTV1NlcnZlclRvQ29udGV4dENvbm5lY3Rpb24uaApp
bmRleCA0ZDcyZGY2ZDgwY2UyZjg5N2MwMWNmZmFjMzdiMjYxYTE5NjEwMWEwLi42YTU5MTU5MWI2
OTk1MDc4ODI0M2IyNTAyYTA2YzNiODg1ODIyZjg1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L1N0b3JhZ2VQcm9jZXNzL1NlcnZpY2VXb3JrZXIvV2ViU1dTZXJ2ZXJUb0NvbnRleHRDb25uZWN0
aW9uLmgKKysrIGIvU291cmNlL1dlYktpdC9TdG9yYWdlUHJvY2Vzcy9TZXJ2aWNlV29ya2VyL1dl
YlNXU2VydmVyVG9Db250ZXh0Q29ubmVjdGlvbi5oCkBAIC02MSw3ICs2MSw3IEBAIHByaXZhdGU6
CiAgICAgdm9pZCB0ZXJtaW5hdGVXb3JrZXIoV2ViQ29yZTo6U2VydmljZVdvcmtlcklkZW50aWZp
ZXIpIGZpbmFsOwogICAgIHZvaWQgc3luY1Rlcm1pbmF0ZVdvcmtlcihXZWJDb3JlOjpTZXJ2aWNl
V29ya2VySWRlbnRpZmllcikgZmluYWw7CiAgICAgdm9pZCBmaW5kQ2xpZW50QnlJZGVudGlmaWVy
Q29tcGxldGVkKHVpbnQ2NF90IHJlcXVlc3RJZGVudGlmaWVyLCBjb25zdCBzdGQ6Om9wdGlvbmFs
PFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJDbGllbnREYXRhPiYsIGJvb2wgaGFzU2VjdXJpdHlFcnJv
cikgZmluYWw7Ci0gICAgdm9pZCBtYXRjaEFsbENvbXBsZXRlZCh1aW50NjRfdCByZXF1ZXN0SWRl
bnRpZmllciwgY29uc3QgVmVjdG9yPFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJDbGllbnRJbmZvcm1h
dGlvbj4mKSBmaW5hbDsKKyAgICB2b2lkIG1hdGNoQWxsQ29tcGxldGVkKHVpbnQ2NF90IHJlcXVl
c3RJZGVudGlmaWVyLCBjb25zdCBWZWN0b3I8V2ViQ29yZTo6U2VydmljZVdvcmtlckNsaWVudERh
dGE+JikgZmluYWw7CiAgICAgdm9pZCBjbGFpbUNvbXBsZXRlZCh1aW50NjRfdCByZXF1ZXN0SWRl
bnRpZmllcikgZmluYWw7CiAgICAgdm9pZCBkaWRGaW5pc2hTa2lwV2FpdGluZyh1aW50NjRfdCBj
YWxsYmFja0lEKSBmaW5hbDsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L1N0b3JhZ2UvV2ViU1dDbGllbnRDb25uZWN0aW9uLmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9TdG9yYWdlL1dlYlNXQ2xpZW50Q29ubmVjdGlvbi5jcHAKaW5kZXggNGEyNDMxZGY2NTk1
YzE0ZWNjZjM3YTg2YTE2YmZlYTgzNzBjOTdmNi4uMGRhZjY0NDZjOGM5NWVhMzdmNTFlMGIyOGFm
YjJhMzI2YjFiMjRhYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1N0b3Jh
Z2UvV2ViU1dDbGllbnRDb25uZWN0aW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvU3RvcmFnZS9XZWJTV0NsaWVudENvbm5lY3Rpb24uY3BwCkBAIC05MiwxNCArOTIsMTQgQEAg
dm9pZCBXZWJTV0NsaWVudENvbm5lY3Rpb246OnBvc3RNZXNzYWdlVG9TZXJ2aWNlV29ya2VyKFNl
cnZpY2VXb3JrZXJJZGVudGlmaWVyIGQKICAgICBzZW5kKE1lc3NhZ2VzOjpXZWJTV1NlcnZlckNv
bm5lY3Rpb246OlBvc3RNZXNzYWdlVG9TZXJ2aWNlV29ya2VyRnJvbVNlcnZpY2VXb3JrZXIoZGVz
dGluYXRpb25JZGVudGlmaWVyLCBJUEM6OkRhdGFSZWZlcmVuY2UgeyBzY3JpcHRWYWx1ZS0+ZGF0
YSgpIH0sIHNvdXJjZVdvcmtlcklkZW50aWZpZXIpKTsKIH0KIAotdm9pZCBXZWJTV0NsaWVudENv
bm5lY3Rpb246OnJlZ2lzdGVyU2VydmljZVdvcmtlckNsaWVudChjb25zdCBTZWN1cml0eU9yaWdp
biYgdG9wT3JpZ2luLCBXZWJDb3JlOjpEb2N1bWVudElkZW50aWZpZXIgY29udGV4dElkZW50aWZp
ZXIsIGNvbnN0IFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJDbGllbnREYXRhJiBkYXRhLCBjb25zdCBz
dGQ6Om9wdGlvbmFsPFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJJZGVudGlmaWVyPiYgY29udHJvbGxp
bmdTZXJ2aWNlV29ya2VySWRlbnRpZmllcikKK3ZvaWQgV2ViU1dDbGllbnRDb25uZWN0aW9uOjpy
ZWdpc3RlclNlcnZpY2VXb3JrZXJDbGllbnQoY29uc3QgU2VjdXJpdHlPcmlnaW4mIHRvcE9yaWdp
biwgY29uc3QgV2ViQ29yZTo6U2VydmljZVdvcmtlckNsaWVudERhdGEmIGRhdGEsIGNvbnN0IHN0
ZDo6b3B0aW9uYWw8V2ViQ29yZTo6U2VydmljZVdvcmtlcklkZW50aWZpZXI+JiBjb250cm9sbGlu
Z1NlcnZpY2VXb3JrZXJJZGVudGlmaWVyKQogewotICAgIHNlbmQoTWVzc2FnZXM6OldlYlNXU2Vy
dmVyQ29ubmVjdGlvbjo6UmVnaXN0ZXJTZXJ2aWNlV29ya2VyQ2xpZW50IHsgU2VjdXJpdHlPcmln
aW5EYXRhOjpmcm9tU2VjdXJpdHlPcmlnaW4odG9wT3JpZ2luKSwgY29udGV4dElkZW50aWZpZXIs
IGRhdGEsIGNvbnRyb2xsaW5nU2VydmljZVdvcmtlcklkZW50aWZpZXIgfSk7CisgICAgc2VuZChN
ZXNzYWdlczo6V2ViU1dTZXJ2ZXJDb25uZWN0aW9uOjpSZWdpc3RlclNlcnZpY2VXb3JrZXJDbGll
bnQgeyBTZWN1cml0eU9yaWdpbkRhdGE6OmZyb21TZWN1cml0eU9yaWdpbih0b3BPcmlnaW4pLCBk
YXRhLCBjb250cm9sbGluZ1NlcnZpY2VXb3JrZXJJZGVudGlmaWVyIH0pOwogfQogCi12b2lkIFdl
YlNXQ2xpZW50Q29ubmVjdGlvbjo6dW5yZWdpc3RlclNlcnZpY2VXb3JrZXJDbGllbnQoV2ViQ29y
ZTo6RG9jdW1lbnRJZGVudGlmaWVyIGNvbnRleHRJZGVudGlmaWVyKQordm9pZCBXZWJTV0NsaWVu
dENvbm5lY3Rpb246OnVucmVnaXN0ZXJTZXJ2aWNlV29ya2VyQ2xpZW50KGNvbnN0IFdlYkNvcmU6
OlNlcnZpY2VXb3JrZXJDbGllbnRJZGVudGlmaWVyJiBjbGllbnRJZGVudGlmaWVyKQogewotICAg
IHNlbmQoTWVzc2FnZXM6OldlYlNXU2VydmVyQ29ubmVjdGlvbjo6VW5yZWdpc3RlclNlcnZpY2VX
b3JrZXJDbGllbnQgeyBjb250ZXh0SWRlbnRpZmllciB9KTsKKyAgICBzZW5kKE1lc3NhZ2VzOjpX
ZWJTV1NlcnZlckNvbm5lY3Rpb246OlVucmVnaXN0ZXJTZXJ2aWNlV29ya2VyQ2xpZW50IHsgY2xp
ZW50SWRlbnRpZmllciB9KTsKIH0KIAogdm9pZCBXZWJTV0NsaWVudENvbm5lY3Rpb246OmRpZFJl
c29sdmVSZWdpc3RyYXRpb25Qcm9taXNlKGNvbnN0IFNlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb25L
ZXkmIGtleSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9TdG9yYWdlL1dl
YlNXQ2xpZW50Q29ubmVjdGlvbi5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1N0b3JhZ2Uv
V2ViU1dDbGllbnRDb25uZWN0aW9uLmgKaW5kZXggOGZmOTRkZWFmZjI2OGQxMWEwNTEyNjVhMWFk
OTBhOGJjMDRjOTJlNC4uOGU4ODM0MmU0MDU1ZjFmNzlhZTlhYzJhYmQ5MTk5MGRlOWIyNjk1NyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1N0b3JhZ2UvV2ViU1dDbGllbnRD
b25uZWN0aW9uLmgKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1N0b3JhZ2UvV2ViU1dD
bGllbnRDb25uZWN0aW9uLmgKQEAgLTc1LDggKzc1LDggQEAgcHJpdmF0ZToKICAgICB2b2lkIGZp
bmlzaEZldGNoaW5nU2NyaXB0SW5TZXJ2ZXIoY29uc3QgV2ViQ29yZTo6U2VydmljZVdvcmtlckZl
dGNoUmVzdWx0JikgZmluYWw7CiAgICAgdm9pZCBwb3N0TWVzc2FnZVRvU2VydmljZVdvcmtlcihX
ZWJDb3JlOjpTZXJ2aWNlV29ya2VySWRlbnRpZmllciBkZXN0aW5hdGlvbklkZW50aWZpZXIsIFJl
ZjxXZWJDb3JlOjpTZXJpYWxpemVkU2NyaXB0VmFsdWU+JiYsIFdlYkNvcmU6OlNlcnZpY2VXb3Jr
ZXJDbGllbnRJZGVudGlmaWVyIHNvdXJjZUlkZW50aWZpZXIsIFdlYkNvcmU6OlNlcnZpY2VXb3Jr
ZXJDbGllbnREYXRhJiYgc291cmNlKSBmaW5hbDsKICAgICB2b2lkIHBvc3RNZXNzYWdlVG9TZXJ2
aWNlV29ya2VyKFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJJZGVudGlmaWVyIGRlc3RpbmF0aW9uSWRl
bnRpZmllciwgUmVmPFdlYkNvcmU6OlNlcmlhbGl6ZWRTY3JpcHRWYWx1ZT4mJiwgV2ViQ29yZTo6
U2VydmljZVdvcmtlcklkZW50aWZpZXIgc291cmNlV29ya2VySWRlbnRpZmllcikgZmluYWw7Ci0g
ICAgdm9pZCByZWdpc3RlclNlcnZpY2VXb3JrZXJDbGllbnQoY29uc3QgV2ViQ29yZTo6U2VjdXJp
dHlPcmlnaW4mIHRvcE9yaWdpbiwgV2ViQ29yZTo6RG9jdW1lbnRJZGVudGlmaWVyLCBjb25zdCBX
ZWJDb3JlOjpTZXJ2aWNlV29ya2VyQ2xpZW50RGF0YSYsIGNvbnN0IHN0ZDo6b3B0aW9uYWw8V2Vi
Q29yZTo6U2VydmljZVdvcmtlcklkZW50aWZpZXI+JikgZmluYWw7Ci0gICAgdm9pZCB1bnJlZ2lz
dGVyU2VydmljZVdvcmtlckNsaWVudChXZWJDb3JlOjpEb2N1bWVudElkZW50aWZpZXIpIGZpbmFs
OworICAgIHZvaWQgcmVnaXN0ZXJTZXJ2aWNlV29ya2VyQ2xpZW50KGNvbnN0IFdlYkNvcmU6OlNl
Y3VyaXR5T3JpZ2luJiB0b3BPcmlnaW4sIGNvbnN0IFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJDbGll
bnREYXRhJiwgY29uc3Qgc3RkOjpvcHRpb25hbDxXZWJDb3JlOjpTZXJ2aWNlV29ya2VySWRlbnRp
Zmllcj4mKSBmaW5hbDsKKyAgICB2b2lkIHVucmVnaXN0ZXJTZXJ2aWNlV29ya2VyQ2xpZW50KGNv
bnN0IFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJDbGllbnRJZGVudGlmaWVyJikgZmluYWw7CiAKICAg
ICB2b2lkIG1hdGNoUmVnaXN0cmF0aW9uKGNvbnN0IFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luJiB0
b3BPcmlnaW4sIGNvbnN0IFdlYkNvcmU6OlVSTCYgY2xpZW50VVJMLCBSZWdpc3RyYXRpb25DYWxs
YmFjayYmKSBmaW5hbDsKICAgICB2b2lkIGRpZE1hdGNoUmVnaXN0cmF0aW9uKHVpbnQ2NF90IG1h
dGNoUmVxdWVzdElkZW50aWZpZXIsIHN0ZDo6b3B0aW9uYWw8V2ViQ29yZTo6U2VydmljZVdvcmtl
clJlZ2lzdHJhdGlvbkRhdGE+JiYpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL1N0b3JhZ2UvV2ViU1dDb250ZXh0TWFuYWdlckNvbm5lY3Rpb24uY3BwIGIvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL1N0b3JhZ2UvV2ViU1dDb250ZXh0TWFuYWdlckNvbm5lY3Rpb24uY3Bw
CmluZGV4IDJlNzNlYThmY2U1ZTI2MWM2MjNhZGE5YzEzZjJlOGNlNmMxYTk1M2IuLmEzNWM0ZTM1
MWI0YzhiOWMyYjMyOTY5YWY4NDY0NGU5OTYzYTAxYWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9TdG9yYWdlL1dlYlNXQ29udGV4dE1hbmFnZXJDb25uZWN0aW9uLmNwcAor
KysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvU3RvcmFnZS9XZWJTV0NvbnRleHRNYW5hZ2Vy
Q29ubmVjdGlvbi5jcHAKQEAgLTE3MiwxMiArMTcyLDcgQEAgdm9pZCBXZWJTV0NvbnRleHRNYW5h
Z2VyQ29ubmVjdGlvbjo6c3RhcnRGZXRjaChTV1NlcnZlckNvbm5lY3Rpb25JZGVudGlmaWVyIHNl
cnYKICAgICBzZXJ2aWNlV29ya2VyVGhyZWFkUHJveHktPnRocmVhZCgpLnBvc3RGZXRjaFRhc2so
V1RGTW92ZShjbGllbnQpLCBXVEZNb3ZlKGNsaWVudElkKSwgV1RGTW92ZShyZXF1ZXN0KSwgV1RG
TW92ZShvcHRpb25zKSk7CiB9CiAKLXZvaWQgV2ViU1dDb250ZXh0TWFuYWdlckNvbm5lY3Rpb246
OnBvc3RNZXNzYWdlVG9TZXJ2aWNlV29ya2VyRnJvbUNsaWVudChTZXJ2aWNlV29ya2VySWRlbnRp
ZmllciBkZXN0aW5hdGlvbklkZW50aWZpZXIsIGNvbnN0IElQQzo6RGF0YVJlZmVyZW5jZSYgbWVz
c2FnZSwgU2VydmljZVdvcmtlckNsaWVudElkZW50aWZpZXIgc291cmNlSWRlbnRpZmllciwgU2Vy
dmljZVdvcmtlckNsaWVudERhdGEmJiBzb3VyY2VEYXRhKQotewotICAgIFNXQ29udGV4dE1hbmFn
ZXI6OnNpbmdsZXRvbigpLnBvc3RNZXNzYWdlVG9TZXJ2aWNlV29ya2VyKGRlc3RpbmF0aW9uSWRl
bnRpZmllciwgU2VyaWFsaXplZFNjcmlwdFZhbHVlOjphZG9wdChtZXNzYWdlLnZlY3RvcigpKSwg
c291cmNlSWRlbnRpZmllciwgV1RGTW92ZShzb3VyY2VEYXRhKSk7Ci19Ci0KLXZvaWQgV2ViU1dD
b250ZXh0TWFuYWdlckNvbm5lY3Rpb246OnBvc3RNZXNzYWdlVG9TZXJ2aWNlV29ya2VyRnJvbVNl
cnZpY2VXb3JrZXIoU2VydmljZVdvcmtlcklkZW50aWZpZXIgZGVzdGluYXRpb25JZGVudGlmaWVy
LCBjb25zdCBJUEM6OkRhdGFSZWZlcmVuY2UmIG1lc3NhZ2UsIFNlcnZpY2VXb3JrZXJEYXRhJiYg
c291cmNlRGF0YSkKK3ZvaWQgV2ViU1dDb250ZXh0TWFuYWdlckNvbm5lY3Rpb246OnBvc3RNZXNz
YWdlVG9TZXJ2aWNlV29ya2VyKFNlcnZpY2VXb3JrZXJJZGVudGlmaWVyIGRlc3RpbmF0aW9uSWRl
bnRpZmllciwgY29uc3QgSVBDOjpEYXRhUmVmZXJlbmNlJiBtZXNzYWdlLCBTZXJ2aWNlV29ya2Vy
T3JDbGllbnREYXRhJiYgc291cmNlRGF0YSkKIHsKICAgICBTV0NvbnRleHRNYW5hZ2VyOjpzaW5n
bGV0b24oKS5wb3N0TWVzc2FnZVRvU2VydmljZVdvcmtlcihkZXN0aW5hdGlvbklkZW50aWZpZXIs
IFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZTo6YWRvcHQobWVzc2FnZS52ZWN0b3IoKSksIFdURk1vdmUo
c291cmNlRGF0YSkpOwogfQpAQCAtMjYxLDcgKzI1Niw3IEBAIHZvaWQgV2ViU1dDb250ZXh0TWFu
YWdlckNvbm5lY3Rpb246Om1hdGNoQWxsKFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJJZGVudGlmaWVy
IHNlCiAgICAgbV9jb25uZWN0aW9uVG9TdG9yYWdlUHJvY2Vzcy0+c2VuZChNZXNzYWdlczo6V2Vi
U1dTZXJ2ZXJUb0NvbnRleHRDb25uZWN0aW9uOjpNYXRjaEFsbCB7IHJlcXVlc3RJZGVudGlmaWVy
LCBzZXJ2aWNlV29ya2VySWRlbnRpZmllciwgb3B0aW9ucyB9LCAwKTsKIH0KIAotdm9pZCBXZWJT
V0NvbnRleHRNYW5hZ2VyQ29ubmVjdGlvbjo6bWF0Y2hBbGxDb21wbGV0ZWQodWludDY0X3QgcmVx
dWVzdElkZW50aWZpZXIsIFZlY3RvcjxTZXJ2aWNlV29ya2VyQ2xpZW50SW5mb3JtYXRpb24+JiYg
Y2xpZW50c0RhdGEpCit2b2lkIFdlYlNXQ29udGV4dE1hbmFnZXJDb25uZWN0aW9uOjptYXRjaEFs
bENvbXBsZXRlZCh1aW50NjRfdCByZXF1ZXN0SWRlbnRpZmllciwgVmVjdG9yPFNlcnZpY2VXb3Jr
ZXJDbGllbnREYXRhPiYmIGNsaWVudHNEYXRhKQogewogICAgIGlmIChhdXRvIGNhbGxiYWNrID0g
bV9tYXRjaEFsbFJlcXVlc3RzLnRha2UocmVxdWVzdElkZW50aWZpZXIpKQogICAgICAgICBjYWxs
YmFjayhXVEZNb3ZlKGNsaWVudHNEYXRhKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvU3RvcmFnZS9XZWJTV0NvbnRleHRNYW5hZ2VyQ29ubmVjdGlvbi5oIGIvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL1N0b3JhZ2UvV2ViU1dDb250ZXh0TWFuYWdlckNvbm5lY3Rpb24u
aAppbmRleCAxYjg4ODlhOTYzNWFjYTM3ZjgwMzQ0M2VkNWZkN2U3YTk1YTFkYWY3Li45ODBkYWQ0
YTEyOTI3YWUyNWEyMmVlZDRiYzQ2MDllYTVkNGZmZjZiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvU3RvcmFnZS9XZWJTV0NvbnRleHRNYW5hZ2VyQ29ubmVjdGlvbi5oCisr
KyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9TdG9yYWdlL1dlYlNXQ29udGV4dE1hbmFnZXJD
b25uZWN0aW9uLmgKQEAgLTMxLDcgKzMxLDcgQEAKICNpbmNsdWRlICJNZXNzYWdlUmVjZWl2ZXIu
aCIKICNpbmNsdWRlICJXZWJTV0NvbnRleHRNYW5hZ2VyQ29ubmVjdGlvbk1lc3NhZ2VzLmgiCiAj
aW5jbHVkZSA8V2ViQ29yZS9TV0NvbnRleHRNYW5hZ2VyLmg+Ci0jaW5jbHVkZSA8V2ViQ29yZS9T
ZXJ2aWNlV29ya2VyQ2xpZW50SW5mb3JtYXRpb24uaD4KKyNpbmNsdWRlIDxXZWJDb3JlL1NlcnZp
Y2VXb3JrZXJDbGllbnREYXRhLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9TZXJ2aWNlV29ya2VyVHlw
ZXMuaD4KIAogbmFtZXNwYWNlIElQQyB7CkBAIC03NywxNCArNzcsMTMgQEAgcHJpdmF0ZToKICAg
ICB2b2lkIHNlcnZpY2VXb3JrZXJTdGFydGVkV2l0aE1lc3NhZ2Uoc3RkOjpvcHRpb25hbDxXZWJD
b3JlOjpTZXJ2aWNlV29ya2VySm9iRGF0YUlkZW50aWZpZXI+LCBXZWJDb3JlOjpTZXJ2aWNlV29y
a2VySWRlbnRpZmllciwgY29uc3QgU3RyaW5nJiBleGNlcHRpb25NZXNzYWdlKSBmaW5hbDsKICAg
ICB2b2lkIGluc3RhbGxTZXJ2aWNlV29ya2VyKGNvbnN0IFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJD
b250ZXh0RGF0YSYsIFBBTDo6U2Vzc2lvbklEKTsKICAgICB2b2lkIHN0YXJ0RmV0Y2goV2ViQ29y
ZTo6U1dTZXJ2ZXJDb25uZWN0aW9uSWRlbnRpZmllciwgdWludDY0X3QgZmV0Y2hJZGVudGlmaWVy
LCBXZWJDb3JlOjpTZXJ2aWNlV29ya2VySWRlbnRpZmllciwgV2ViQ29yZTo6UmVzb3VyY2VSZXF1
ZXN0JiYsIFdlYkNvcmU6OkZldGNoT3B0aW9ucyYmLCBJUEM6OkZvcm1EYXRhUmVmZXJlbmNlJiYp
OwotICAgIHZvaWQgcG9zdE1lc3NhZ2VUb1NlcnZpY2VXb3JrZXJGcm9tQ2xpZW50KFdlYkNvcmU6
OlNlcnZpY2VXb3JrZXJJZGVudGlmaWVyIGRlc3RpbmF0aW9uSWRlbnRpZmllciwgY29uc3QgSVBD
OjpEYXRhUmVmZXJlbmNlJiBtZXNzYWdlLCBXZWJDb3JlOjpTZXJ2aWNlV29ya2VyQ2xpZW50SWRl
bnRpZmllciBzb3VyY2VJZGVudGlmaWVyLCBXZWJDb3JlOjpTZXJ2aWNlV29ya2VyQ2xpZW50RGF0
YSYmIHNvdXJjZURhdGEpOwotICAgIHZvaWQgcG9zdE1lc3NhZ2VUb1NlcnZpY2VXb3JrZXJGcm9t
U2VydmljZVdvcmtlcihXZWJDb3JlOjpTZXJ2aWNlV29ya2VySWRlbnRpZmllciBkZXN0aW5hdGlv
biwgY29uc3QgSVBDOjpEYXRhUmVmZXJlbmNlJiBtZXNzYWdlLCBXZWJDb3JlOjpTZXJ2aWNlV29y
a2VyRGF0YSYmIHNvdXJjZURhdGEpOworICAgIHZvaWQgcG9zdE1lc3NhZ2VUb1NlcnZpY2VXb3Jr
ZXIoV2ViQ29yZTo6U2VydmljZVdvcmtlcklkZW50aWZpZXIgZGVzdGluYXRpb25JZGVudGlmaWVy
LCBjb25zdCBJUEM6OkRhdGFSZWZlcmVuY2UmIG1lc3NhZ2UsIFdlYkNvcmU6OlNlcnZpY2VXb3Jr
ZXJPckNsaWVudERhdGEmJiBzb3VyY2VEYXRhKTsKICAgICB2b2lkIGZpcmVJbnN0YWxsRXZlbnQo
V2ViQ29yZTo6U2VydmljZVdvcmtlcklkZW50aWZpZXIpOwogICAgIHZvaWQgZmlyZUFjdGl2YXRl
RXZlbnQoV2ViQ29yZTo6U2VydmljZVdvcmtlcklkZW50aWZpZXIpOwogICAgIHZvaWQgdGVybWlu
YXRlV29ya2VyKFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJJZGVudGlmaWVyKTsKICAgICB2b2lkIHN5
bmNUZXJtaW5hdGVXb3JrZXIoV2ViQ29yZTo6U2VydmljZVdvcmtlcklkZW50aWZpZXIsIFJlZjxN
ZXNzYWdlczo6V2ViU1dDb250ZXh0TWFuYWdlckNvbm5lY3Rpb246OlN5bmNUZXJtaW5hdGVXb3Jr
ZXI6OkRlbGF5ZWRSZXBseT4mJik7CiAgICAgdm9pZCBmaW5kQ2xpZW50QnlJZGVudGlmaWVyQ29t
cGxldGVkKHVpbnQ2NF90IHJlcXVlc3RJZGVudGlmaWVyLCBzdGQ6Om9wdGlvbmFsPFdlYkNvcmU6
OlNlcnZpY2VXb3JrZXJDbGllbnREYXRhPiYmLCBib29sIGhhc1NlY3VyaXR5RXJyb3IpOwotICAg
IHZvaWQgbWF0Y2hBbGxDb21wbGV0ZWQodWludDY0X3QgbWF0Y2hBbGxSZXF1ZXN0SWRlbnRpZmll
ciwgVmVjdG9yPFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJDbGllbnRJbmZvcm1hdGlvbj4mJik7Cisg
ICAgdm9pZCBtYXRjaEFsbENvbXBsZXRlZCh1aW50NjRfdCBtYXRjaEFsbFJlcXVlc3RJZGVudGlm
aWVyLCBWZWN0b3I8V2ViQ29yZTo6U2VydmljZVdvcmtlckNsaWVudERhdGE+JiYpOwogICAgIHZv
aWQgY2xhaW1Db21wbGV0ZWQodWludDY0X3QgY2xhaW1SZXF1ZXN0SWRlbnRpZmllcik7CiAgICAg
dm9pZCBkaWRGaW5pc2hTa2lwV2FpdGluZyh1aW50NjRfdCBjYWxsYmFja0lEKTsKICAgICB2b2lk
IHNldFVzZXJBZ2VudChTdHJpbmcmJiB1c2VyQWdlbnQpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL1N0b3JhZ2UvV2ViU1dDb250ZXh0TWFuYWdlckNvbm5lY3Rpb24ubWVz
c2FnZXMuaW4gYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvU3RvcmFnZS9XZWJTV0NvbnRleHRN
YW5hZ2VyQ29ubmVjdGlvbi5tZXNzYWdlcy5pbgppbmRleCBjNTcxNWNhNGZmN2VkZWU4MjA1MmVi
YWUxMzlhMWZmYzE2OWQ5ODUzLi5jMTI2NmI5ODk3YjQyMjY2NTc5MzBkNmRjMzc5YzA5YjNhMjdj
OTEyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvU3RvcmFnZS9XZWJTV0Nv
bnRleHRNYW5hZ2VyQ29ubmVjdGlvbi5tZXNzYWdlcy5pbgorKysgYi9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvU3RvcmFnZS9XZWJTV0NvbnRleHRNYW5hZ2VyQ29ubmVjdGlvbi5tZXNzYWdlcy5p
bgpAQCAtMjUsMTQgKzI1LDEzIEBACiBtZXNzYWdlcyAtPiBXZWJTV0NvbnRleHRNYW5hZ2VyQ29u
bmVjdGlvbiB7CiAgICAgSW5zdGFsbFNlcnZpY2VXb3JrZXIoc3RydWN0IFdlYkNvcmU6OlNlcnZp
Y2VXb3JrZXJDb250ZXh0RGF0YSBjb250ZXh0RGF0YSwgUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklE
KQogICAgIFN0YXJ0RmV0Y2goV2ViQ29yZTo6U1dTZXJ2ZXJDb25uZWN0aW9uSWRlbnRpZmllciBz
ZXJ2ZXJDb25uZWN0aW9uSWRlbnRpZmllciwgdWludDY0X3QgZmV0Y2hJZGVudGlmaWVyLCBXZWJD
b3JlOjpTZXJ2aWNlV29ya2VySWRlbnRpZmllciBzZXJ2aWNlV29ya2VySWRlbnRpZmllciwgV2Vi
Q29yZTo6UmVzb3VyY2VSZXF1ZXN0IHJlcXVlc3QsIHN0cnVjdCBXZWJDb3JlOjpGZXRjaE9wdGlv
bnMgb3B0aW9ucywgSVBDOjpGb3JtRGF0YVJlZmVyZW5jZSByZXF1ZXN0Qm9keSkKLSAgICBQb3N0
TWVzc2FnZVRvU2VydmljZVdvcmtlckZyb21DbGllbnQoV2ViQ29yZTo6U2VydmljZVdvcmtlcklk
ZW50aWZpZXIgZGVzdGluYXRpb25JZGVudGlmaWVyLCBJUEM6OkRhdGFSZWZlcmVuY2UgbWVzc2Fn
ZSwgc3RydWN0IFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJDbGllbnRJZGVudGlmaWVyIHNvdXJjZUlk
ZW50aWZpZXIsIHN0cnVjdCBXZWJDb3JlOjpTZXJ2aWNlV29ya2VyQ2xpZW50RGF0YSBzb3VyY2VE
YXRhKQotICAgIFBvc3RNZXNzYWdlVG9TZXJ2aWNlV29ya2VyRnJvbVNlcnZpY2VXb3JrZXIoV2Vi
Q29yZTo6U2VydmljZVdvcmtlcklkZW50aWZpZXIgZGVzdGluYXRpb25JZGVudGlmaWVyLCBJUEM6
OkRhdGFSZWZlcmVuY2UgbWVzc2FnZSwgc3RydWN0IFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJEYXRh
IHNvdXJjZURhdGEpCisgICAgUG9zdE1lc3NhZ2VUb1NlcnZpY2VXb3JrZXIoV2ViQ29yZTo6U2Vy
dmljZVdvcmtlcklkZW50aWZpZXIgZGVzdGluYXRpb25JZGVudGlmaWVyLCBJUEM6OkRhdGFSZWZl
cmVuY2UgbWVzc2FnZSwgV2ViQ29yZTo6U2VydmljZVdvcmtlck9yQ2xpZW50RGF0YSBzb3VyY2VE
YXRhKQogICAgIEZpcmVJbnN0YWxsRXZlbnQoV2ViQ29yZTo6U2VydmljZVdvcmtlcklkZW50aWZp
ZXIgaWRlbnRpZmllcikKICAgICBGaXJlQWN0aXZhdGVFdmVudChXZWJDb3JlOjpTZXJ2aWNlV29y
a2VySWRlbnRpZmllciBpZGVudGlmaWVyKQogICAgIFRlcm1pbmF0ZVdvcmtlcihXZWJDb3JlOjpT
ZXJ2aWNlV29ya2VySWRlbnRpZmllciBpZGVudGlmaWVyKQogICAgIFN5bmNUZXJtaW5hdGVXb3Jr
ZXIoV2ViQ29yZTo6U2VydmljZVdvcmtlcklkZW50aWZpZXIgaWRlbnRpZmllcikgLT4gKCkgRGVs
YXllZAogICAgIEZpbmRDbGllbnRCeUlkZW50aWZpZXJDb21wbGV0ZWQodWludDY0X3QgY2xpZW50
SWRSZXF1ZXN0SWRlbnRpZmllciwgc3RkOjpvcHRpb25hbDxXZWJDb3JlOjpTZXJ2aWNlV29ya2Vy
Q2xpZW50RGF0YT4gZGF0YSwgYm9vbCBoYXNTZWN1cml0eUVycm9yKQotICAgIE1hdGNoQWxsQ29t
cGxldGVkKHVpbnQ2NF90IG1hdGNoQWxsUmVxdWVzdElkZW50aWZpZXIsIFZlY3RvcjxXZWJDb3Jl
OjpTZXJ2aWNlV29ya2VyQ2xpZW50SW5mb3JtYXRpb24+IGNsaWVudHNEYXRhKQorICAgIE1hdGNo
QWxsQ29tcGxldGVkKHVpbnQ2NF90IG1hdGNoQWxsUmVxdWVzdElkZW50aWZpZXIsIFZlY3RvcjxX
ZWJDb3JlOjpTZXJ2aWNlV29ya2VyQ2xpZW50RGF0YT4gY2xpZW50c0RhdGEpCiAgICAgQ2xhaW1D
b21wbGV0ZWQodWludDY0X3QgY2xhaW1SZXF1ZXN0SWRlbnRpZmllcikKICAgICBEaWRGaW5pc2hT
a2lwV2FpdGluZyh1aW50NjRfdCBjYWxsYmFja0lEKQogICAgIFNldFVzZXJBZ2VudChTdHJpbmcg
dXNlckFnZW50KQo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>329042</attachid>
            <date>2017-12-11 15:08:45 -0800</date>
            <delta_ts>2017-12-11 15:24:57 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-180669-20171211150844.patch</filename>
            <type>text/plain</type>
            <size>70161</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjI1NzU4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZGM2NmNmNzliZWIxNDQx
OTJlNjY5MzFiMmU4MGEwYzFlMzVjYmNlYS4uODMxZmFhMWNhYTMyMTBhOGMzYmU4Mjc4MmRiYjEx
OWJkZDAzODg0ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDU0IEBACisyMDE3LTEyLTExICBDaHJp
cyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgTWVyZ2UgU2VydmljZVdvcmtl
ckNsaWVudElkZW50aWZpZXIgaW50byBTZXJ2aWNlV29ya2VyQ2xpZW50RGF0YQorICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTgwNjY5CisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgWW91ZW5uIEZhYmxldC4KKworICAgICAgICBNZXJnZSBTZXJ2aWNlV29ya2Vy
Q2xpZW50SWRlbnRpZmllciBpbnRvIFNlcnZpY2VXb3JrZXJDbGllbnREYXRhLCBmb3IgY29uc2lz
dGVuY3kgd2l0aAorICAgICAgICBTZXJ2aWNlV29ya2VySWRlbnRpZmllciAvIFNlcnZpY2VXb3Jr
ZXJEYXRhLCBhbmQgc3RhcnQgc2ltcGxpZnlpbmcgdGhlIHBvc3RNZXNzYWdlKCkgY29kZS4KKwor
ICAgICAgICAqIFdlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBk
b20vRG9jdW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RG9jdW1lbnQ6OnNldFNlcnZpY2VX
b3JrZXJDb25uZWN0aW9uKToKKyAgICAgICAgKiB3b3JrZXJzL3NlcnZpY2UvU1dDbGllbnRDb25u
ZWN0aW9uLmg6CisgICAgICAgICogd29ya2Vycy9zZXJ2aWNlL1NlcnZpY2VXb3JrZXIuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6U2VydmljZVdvcmtlcjo6cG9zdE1lc3NhZ2UpOgorICAgICAgICAq
IHdvcmtlcnMvc2VydmljZS9TZXJ2aWNlV29ya2VyQ2xpZW50LmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OlNlcnZpY2VXb3JrZXJDbGllbnQ6OmdldE9yQ3JlYXRlKToKKyAgICAgICAgKFdlYkNvcmU6
OlNlcnZpY2VXb3JrZXJDbGllbnQ6OlNlcnZpY2VXb3JrZXJDbGllbnQpOgorICAgICAgICAqIHdv
cmtlcnMvc2VydmljZS9TZXJ2aWNlV29ya2VyQ2xpZW50Lmg6CisgICAgICAgIChXZWJDb3JlOjpT
ZXJ2aWNlV29ya2VyQ2xpZW50OjppZGVudGlmaWVyIGNvbnN0KToKKyAgICAgICAgKiB3b3JrZXJz
L3NlcnZpY2UvU2VydmljZVdvcmtlckNsaWVudERhdGEuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
U2VydmljZVdvcmtlckNsaWVudERhdGE6Omlzb2xhdGVkQ29weSBjb25zdCk6CisgICAgICAgIChX
ZWJDb3JlOjpTZXJ2aWNlV29ya2VyQ2xpZW50RGF0YTo6ZnJvbSk6CisgICAgICAgICogd29ya2Vy
cy9zZXJ2aWNlL1NlcnZpY2VXb3JrZXJDbGllbnREYXRhLmg6CisgICAgICAgIChXZWJDb3JlOjpT
ZXJ2aWNlV29ya2VyQ2xpZW50RGF0YTo6ZW5jb2RlIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6
OlNlcnZpY2VXb3JrZXJDbGllbnREYXRhOjpkZWNvZGUpOgorICAgICAgICAqIHdvcmtlcnMvc2Vy
dmljZS9TZXJ2aWNlV29ya2VyQ2xpZW50SW5mb3JtYXRpb24uaDogUmVtb3ZlZC4KKyAgICAgICAg
KiB3b3JrZXJzL3NlcnZpY2UvU2VydmljZVdvcmtlckNsaWVudHMuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6ZGlkRmluaXNoR2V0UmVxdWVzdCk6CisgICAgICAgIChXZWJDb3JlOjpTZXJ2aWNlV29y
a2VyQ2xpZW50czo6Z2V0KToKKyAgICAgICAgKFdlYkNvcmU6Om1hdGNoQWxsQ29tcGxldGVkKToK
KyAgICAgICAgKiB3b3JrZXJzL3NlcnZpY2UvU2VydmljZVdvcmtlclR5cGVzLmg6CisgICAgICAg
ICogd29ya2Vycy9zZXJ2aWNlL1NlcnZpY2VXb3JrZXJXaW5kb3dDbGllbnQuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6U2VydmljZVdvcmtlcldpbmRvd0NsaWVudDo6U2VydmljZVdvcmtlcldpbmRv
d0NsaWVudCk6CisgICAgICAgICogd29ya2Vycy9zZXJ2aWNlL1NlcnZpY2VXb3JrZXJXaW5kb3dD
bGllbnQuaDoKKyAgICAgICAgKiB3b3JrZXJzL3NlcnZpY2UvY29udGV4dC9TV0NvbnRleHRNYW5h
Z2VyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNXQ29udGV4dE1hbmFnZXI6OnBvc3RNZXNzYWdl
VG9TZXJ2aWNlV29ya2VyKToKKyAgICAgICAgKiB3b3JrZXJzL3NlcnZpY2UvY29udGV4dC9TV0Nv
bnRleHRNYW5hZ2VyLmg6CisgICAgICAgICogd29ya2Vycy9zZXJ2aWNlL2NvbnRleHQvU2Vydmlj
ZVdvcmtlclRocmVhZC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTZXJ2aWNlV29ya2VyVGhyZWFk
Ojpwb3N0TWVzc2FnZVRvU2VydmljZVdvcmtlcik6CisgICAgICAgICogd29ya2Vycy9zZXJ2aWNl
L2NvbnRleHQvU2VydmljZVdvcmtlclRocmVhZC5oOgorICAgICAgICAqIHdvcmtlcnMvc2Vydmlj
ZS9zZXJ2ZXIvU1dTZXJ2ZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U1dTZXJ2ZXI6OmZpbmRD
bGllbnRCeUlkZW50aWZpZXIpOgorICAgICAgICAoV2ViQ29yZTo6U1dTZXJ2ZXI6Om1hdGNoQWxs
KToKKyAgICAgICAgKFdlYkNvcmU6OlNXU2VydmVyOjpjbGFpbSk6CisgICAgICAgIChXZWJDb3Jl
OjpTV1NlcnZlcjo6cmVnaXN0ZXJTZXJ2aWNlV29ya2VyQ2xpZW50KToKKyAgICAgICAgKiB3b3Jr
ZXJzL3NlcnZpY2Uvc2VydmVyL1NXU2VydmVyLmg6CisgICAgICAgICogd29ya2Vycy9zZXJ2aWNl
L3NlcnZlci9TV1NlcnZlclRvQ29udGV4dENvbm5lY3Rpb24uaDoKKyAgICAgICAgKiB3b3JrZXJz
L3NlcnZpY2Uvc2VydmVyL1NXU2VydmVyV29ya2VyLmg6CisKIDIwMTctMTItMTEgIERhbmllbCBC
YXRlcyAgPGRhYmF0ZXNAYXBwbGUuY29tPgogCiAgICAgICAgIEZpeCB0aGUgbWFjT1MgU2llcnJh
IGJ1aWxkIGZvbGxvd2luZyByMjI1MTc5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0NoYW5n
ZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDcxYjIwMjc3OGNhZmE1ZWYwYWE4
NTM1M2YyYTYyZDM0YWMyOTFmN2UuLjMwYzAyMjcyNzQzYzQ4MzkwNzNhZDZkY2U5ZTM3ZTQwMjBi
NTFkZGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9X
ZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNDEgQEAKKzIwMTctMTItMTEgIENocmlzIER1bWV6
ICA8Y2R1bWV6QGFwcGxlLmNvbT4KKworICAgICAgICBNZXJnZSBTZXJ2aWNlV29ya2VyQ2xpZW50
SWRlbnRpZmllciBpbnRvIFNlcnZpY2VXb3JrZXJDbGllbnREYXRhCisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xODA2NjkKKworICAgICAgICBSZXZpZXdl
ZCBieSBZb3Vlbm4gRmFibGV0LgorCisgICAgICAgIE1lcmdlIFNlcnZpY2VXb3JrZXJDbGllbnRJ
ZGVudGlmaWVyIGludG8gU2VydmljZVdvcmtlckNsaWVudERhdGEsIGZvciBjb25zaXN0ZW5jeSB3
aXRoCisgICAgICAgIFNlcnZpY2VXb3JrZXJJZGVudGlmaWVyIC8gU2VydmljZVdvcmtlckRhdGEs
IGFuZCBzdGFydCBzaW1wbGlmeWluZyB0aGUgcG9zdE1lc3NhZ2UoKSBjb2RlLgorCisgICAgICAg
ICogU2NyaXB0cy93ZWJraXQvbWVzc2FnZXMucHk6CisgICAgICAgIChmb3J3YXJkX2RlY2xhcmF0
aW9uc19hbmRfaGVhZGVycyk6CisgICAgICAgIChoZWFkZXJzX2Zvcl90eXBlKToKKyAgICAgICAg
KiBTaGFyZWQvV2ViQ29yZUFyZ3VtZW50Q29kZXJzLmNwcDoKKyAgICAgICAgKElQQzo6QXJndW1l
bnRDb2RlcjxTZXJ2aWNlV29ya2VyT3JDbGllbnREYXRhPjo6ZW5jb2RlKToKKyAgICAgICAgKElQ
Qzo6QXJndW1lbnRDb2RlcjxTZXJ2aWNlV29ya2VyT3JDbGllbnREYXRhPjo6ZGVjb2RlKToKKyAg
ICAgICAgKiBTaGFyZWQvV2ViQ29yZUFyZ3VtZW50Q29kZXJzLmg6CisgICAgICAgICogU3RvcmFn
ZVByb2Nlc3MvU2VydmljZVdvcmtlci9XZWJTV1NlcnZlckNvbm5lY3Rpb24uY3BwOgorICAgICAg
ICAoV2ViS2l0OjpXZWJTV1NlcnZlckNvbm5lY3Rpb246On5XZWJTV1NlcnZlckNvbm5lY3Rpb24p
OgorICAgICAgICAoV2ViS2l0OjpXZWJTV1NlcnZlckNvbm5lY3Rpb246OnBvc3RNZXNzYWdlVG9T
ZXJ2aWNlV29ya2VyRnJvbUNsaWVudCk6CisgICAgICAgIChXZWJLaXQ6OldlYlNXU2VydmVyQ29u
bmVjdGlvbjo6cG9zdE1lc3NhZ2VUb1NlcnZpY2VXb3JrZXJGcm9tU2VydmljZVdvcmtlcik6Cisg
ICAgICAgIChXZWJLaXQ6OldlYlNXU2VydmVyQ29ubmVjdGlvbjo6cmVnaXN0ZXJTZXJ2aWNlV29y
a2VyQ2xpZW50KToKKyAgICAgICAgKFdlYktpdDo6V2ViU1dTZXJ2ZXJDb25uZWN0aW9uOjp1bnJl
Z2lzdGVyU2VydmljZVdvcmtlckNsaWVudCk6CisgICAgICAgICogU3RvcmFnZVByb2Nlc3MvU2Vy
dmljZVdvcmtlci9XZWJTV1NlcnZlckNvbm5lY3Rpb24uaDoKKyAgICAgICAgKiBTdG9yYWdlUHJv
Y2Vzcy9TZXJ2aWNlV29ya2VyL1dlYlNXU2VydmVyQ29ubmVjdGlvbi5tZXNzYWdlcy5pbjoKKyAg
ICAgICAgKiBTdG9yYWdlUHJvY2Vzcy9TZXJ2aWNlV29ya2VyL1dlYlNXU2VydmVyVG9Db250ZXh0
Q29ubmVjdGlvbi5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlNXU2VydmVyVG9Db250ZXh0Q29u
bmVjdGlvbjo6bWF0Y2hBbGxDb21wbGV0ZWQpOgorICAgICAgICAqIFN0b3JhZ2VQcm9jZXNzL1Nl
cnZpY2VXb3JrZXIvV2ViU1dTZXJ2ZXJUb0NvbnRleHRDb25uZWN0aW9uLmg6CisgICAgICAgICog
V2ViUHJvY2Vzcy9TdG9yYWdlL1dlYlNXQ2xpZW50Q29ubmVjdGlvbi5jcHA6CisgICAgICAgIChX
ZWJLaXQ6OldlYlNXQ2xpZW50Q29ubmVjdGlvbjo6cmVnaXN0ZXJTZXJ2aWNlV29ya2VyQ2xpZW50
KToKKyAgICAgICAgKFdlYktpdDo6V2ViU1dDbGllbnRDb25uZWN0aW9uOjp1bnJlZ2lzdGVyU2Vy
dmljZVdvcmtlckNsaWVudCk6CisgICAgICAgICogV2ViUHJvY2Vzcy9TdG9yYWdlL1dlYlNXQ2xp
ZW50Q29ubmVjdGlvbi5oOgorICAgICAgICAqIFdlYlByb2Nlc3MvU3RvcmFnZS9XZWJTV0NvbnRl
eHRNYW5hZ2VyQ29ubmVjdGlvbi5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlNXQ29udGV4dE1h
bmFnZXJDb25uZWN0aW9uOjpwb3N0TWVzc2FnZVRvU2VydmljZVdvcmtlcik6CisgICAgICAgIChX
ZWJLaXQ6OldlYlNXQ29udGV4dE1hbmFnZXJDb25uZWN0aW9uOjptYXRjaEFsbENvbXBsZXRlZCk6
CisgICAgICAgICogV2ViUHJvY2Vzcy9TdG9yYWdlL1dlYlNXQ29udGV4dE1hbmFnZXJDb25uZWN0
aW9uLmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9TdG9yYWdlL1dlYlNXQ29udGV4dE1hbmFnZXJD
b25uZWN0aW9uLm1lc3NhZ2VzLmluOgorCiAyMDE3LTEyLTExICBDaHJpcyBEdW1leiAgPGNkdW1l
ekBhcHBsZS5jb20+CiAKICAgICAgICAgTGF5b3V0IFRlc3QgaHR0cC90ZXN0cy93b3JrZXJzL3Nl
cnZpY2UvcG9zdG1lc3NhZ2UtYWZ0ZXItc3ctcHJvY2Vzcy1jcmFzaC5odHRwcy5odG1sIGlzIGZs
YWt5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0
LnBieHByb2ogYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHBy
b2oKaW5kZXggNDMwZTcyNmJmNWZmYTgxZDQ4YTA3NjU3MjJiZmI1MGQ4NjE2MTZjZC4uZjhkZWRj
NDQ4ZjQxOWVlOTM5YmRkY2ZiZGE2ZWNhNzViNjQwMTU3ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9XZWJD
b3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtMTAzNyw3ICsxMDM3LDYg
QEAKIAkJNDFCMkE2MjYxRUYxQkY2RDAwMkI5RDdBIC8qIFdlYkF1ZGlvU291cmNlUHJvdmlkZXIu
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQxQjJBNjI1
MUVGMUJGNjAwMDJCOUQ3QSAvKiBXZWJBdWRpb1NvdXJjZVByb3ZpZGVyLmggKi87IHNldHRpbmdz
ID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJNDFCRjcwMEMwRkU4NkY0OTAw
NUU4REVDIC8qIE1lc3NhZ2VQb3J0Q2hhbm5lbC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gNDFCRjcwMEEwRkU4NkY0OTAwNUU4REVDIC8qIE1lc3NhZ2VQ
b3J0Q2hhbm5lbC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07
IH07CiAJCTQxQkY3MDEwMEZFODZGNjEwMDVFOERFQyAvKiBQbGF0Zm9ybU1lc3NhZ2VQb3J0Q2hh
bm5lbC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDFC
RjcwMEUwRkU4NkY2MTAwNUU4REVDIC8qIFBsYXRmb3JtTWVzc2FnZVBvcnRDaGFubmVsLmggKi87
IH07Ci0JCTQxQzY4QUY1MUZEMjI3OTAwMEFBQTNCMyAvKiBTZXJ2aWNlV29ya2VyQ2xpZW50SW5m
b3JtYXRpb24uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDQxQzY4QUYzMUZEMjFFOEUwMEFBQTNCMyAvKiBTZXJ2aWNlV29ya2VyQ2xpZW50SW5mb3JtYXRp
b24uaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk0
MUM3NjBCMTBFREUwM0QzMDBDMTY1NUYgLyogU2NyaXB0U3RhdGUuaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQxQzc2MEIwMEVERTAzRDMwMEMxNjU1RiAv
KiBTY3JpcHRTdGF0ZS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7
IH07IH07CiAJCTQxQ0FENzFFMUVBMDkwQTEwMDE3ODE2NCAvKiBWaWRlb1Rvb2xCb3hFbmNvZGVy
RmFjdG9yeS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSA0MUNBRDcxQzFFQTA5MDU3MDAxNzgxNjQgLyogVmlkZW9Ub29sQm94RW5jb2RlckZhY3Rvcnku
Y3BwICovOyB9OwogCQk0MUQwMTVDQTBGNEI1QzcxMDA0QTY2MkYgLyogQ29udGVudFR5cGUuaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQxRDAxNUM4MEY0
QjVDNzEwMDRBNjYyRiAvKiBDb250ZW50VHlwZS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVT
ID0gKFByaXZhdGUsICk7IH07IH07CkBAIC03MDUxLDcgKzcwNTAsNiBAQAogCQk0MUJGNzAwQTBG
RTg2RjQ5MDA1RThERUMgLyogTWVzc2FnZVBvcnRDaGFubmVsLmggKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmMuaDsgcGF0aCA9IE1lc3NhZ2VQb3J0Q2hhbm5lbC5oOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwogCQk0MUJGNzAwRDBGRTg2RjYxMDA1RThERUMgLyogUGxhdGZvcm1NZXNzYWdlUG9y
dENoYW5uZWwuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBuYW1lID0gUGxhdGZv
cm1NZXNzYWdlUG9ydENoYW5uZWwuY3BwOyBwYXRoID0gZGVmYXVsdC9QbGF0Zm9ybU1lc3NhZ2VQ
b3J0Q2hhbm5lbC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQxQkY3MDBFMEZF
ODZGNjEwMDVFOERFQyAvKiBQbGF0Zm9ybU1lc3NhZ2VQb3J0Q2hhbm5lbC5oICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jLmg7IG5hbWUgPSBQbGF0Zm9ybU1lc3NhZ2VQb3J0Q2hhbm5lbC5oOyBwYXRo
ID0gZGVmYXVsdC9QbGF0Zm9ybU1lc3NhZ2VQb3J0Q2hhbm5lbC5oOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwotCQk0MUM2OEFGMzFGRDIxRThFMDBBQUEzQjMgLyogU2VydmljZVdvcmtlckNs
aWVudEluZm9ybWF0aW9uLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFNlcnZp
Y2VXb3JrZXJDbGllbnRJbmZvcm1hdGlvbi5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owog
CQk0MUM3NjBCMDBFREUwM0QzMDBDMTY1NUYgLyogU2NyaXB0U3RhdGUuaCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuYy5oOyBwYXRoID0gU2NyaXB0U3RhdGUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJNDFDN0UxMDUxRTZBNTQzNjAwMjdCNERFIC8qIENhbnZhc0NhcHR1cmVNZWRpYVN0
cmVhbVRyYWNrLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IENhbnZh
c0NhcHR1cmVNZWRpYVN0cmVhbVRyYWNrLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
IAkJNDFDN0UxMDYxRTZBNTQzNjAwMjdCNERFIC8qIENhbnZhc0NhcHR1cmVNZWRpYVN0cmVhbVRy
YWNrLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IENhbnZhc0NhcHR1cmVNZWRp
YVN0cmVhbVRyYWNrLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0xNzMzNSw3ICsx
NzMzMyw2IEBACiAJCQkJODM3OTM2M0MxRkJCQjBBNDAwQzgwMjNDIC8qIFNlcnZpY2VXb3JrZXJD
bGllbnREYXRhLmNwcCAqLywKIAkJCQk4Mzc5MzYzRTFGQkJCMEE1MDBDODAyM0MgLyogU2Vydmlj
ZVdvcmtlckNsaWVudERhdGEuaCAqLywKIAkJCQk4MzdENDYyNTFGQTJBOEM1MDA1NEUxRkEgLyog
U2VydmljZVdvcmtlckNsaWVudElkZW50aWZpZXIuaCAqLywKLQkJCQk0MUM2OEFGMzFGRDIxRThF
MDBBQUEzQjMgLyogU2VydmljZVdvcmtlckNsaWVudEluZm9ybWF0aW9uLmggKi8sCiAJCQkJNDEz
RkM0Q0QxRkQxREQ4QzAwNTQxQzRCIC8qIFNlcnZpY2VXb3JrZXJDbGllbnRRdWVyeU9wdGlvbnMu
aCAqLywKIAkJCQk0NkVGMTQyMTFGOTdCN0JBMDBDMkE1MjQgLyogU2VydmljZVdvcmtlckNsaWVu
dHMuY3BwICovLAogCQkJCTQ2RUYxNDIyMUY5N0I3QkEwMEMyQTUyNCAvKiBTZXJ2aWNlV29ya2Vy
Q2xpZW50cy5oICovLApAQCAtMjkwNjMsNyArMjkwNjAsNiBAQAogCQkJCTQ2RUYxNDJEMUY5N0I3
RDgwMEMyQTUyNCAvKiBTZXJ2aWNlV29ya2VyQ2xpZW50LmggaW4gSGVhZGVycyAqLywKIAkJCQk4
Mzc5MzYzRjFGQkJCMEI0MDBDODAyM0MgLyogU2VydmljZVdvcmtlckNsaWVudERhdGEuaCBpbiBI
ZWFkZXJzICovLAogCQkJCTgzN0Q0NjI3MUZBMkE4Q0UwMDU0RTFGQSAvKiBTZXJ2aWNlV29ya2Vy
Q2xpZW50SWRlbnRpZmllci5oIGluIEhlYWRlcnMgKi8sCi0JCQkJNDFDNjhBRjUxRkQyMjc5MDAw
QUFBM0IzIC8qIFNlcnZpY2VXb3JrZXJDbGllbnRJbmZvcm1hdGlvbi5oIGluIEhlYWRlcnMgKi8s
CiAJCQkJNDE1MTlDQjgxRkQxRjAyRTAwN0Y2MjNDIC8qIFNlcnZpY2VXb3JrZXJDbGllbnRRdWVy
eU9wdGlvbnMuaCBpbiBIZWFkZXJzICovLAogCQkJCTQ2RUYxNDJDMUY5N0I3RDgwMEMyQTUyNCAv
KiBTZXJ2aWNlV29ya2VyQ2xpZW50cy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJODM2OUZERkMxRkEx
MDJFMzAwQzFGRjFGIC8qIFNlcnZpY2VXb3JrZXJDbGllbnRUeXBlLmggaW4gSGVhZGVycyAqLywK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9kb20vRG9jdW1lbnQuY3BwCmluZGV4IDVmOWM0NWZiMDIwMzE3MmM5NTE5N2I4ZjJkNDFj
ZWQ0NmJiZjFiNmIuLmJmYWFjNDk5OWE5NzNmNzgyNjU3MWI3YTU2NTg5MmNmY2U1Yjc1YTAgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvZG9tL0RvY3VtZW50LmNwcApAQCAtNzYzNSw3ICs3NjM1LDcgQEAgdm9pZCBEb2N1bWVu
dDo6c2V0U2VydmljZVdvcmtlckNvbm5lY3Rpb24oU1dDbGllbnRDb25uZWN0aW9uKiBzZXJ2aWNl
V29ya2VyQ29ubmUKICAgICAgICAgcmV0dXJuOwogCiAgICAgYXV0byBjb250cm9sbGluZ1NlcnZp
Y2VXb3JrZXJJZGVudGlmaWVyID0gYWN0aXZlU2VydmljZVdvcmtlcigpID8gc3RkOjptYWtlX29w
dGlvbmFsPFNlcnZpY2VXb3JrZXJJZGVudGlmaWVyPihhY3RpdmVTZXJ2aWNlV29ya2VyKCktPmlk
ZW50aWZpZXIoKSkgOiBzdGQ6Om51bGxvcHQ7Ci0gICAgbV9zZXJ2aWNlV29ya2VyQ29ubmVjdGlv
bi0+cmVnaXN0ZXJTZXJ2aWNlV29ya2VyQ2xpZW50KHRvcE9yaWdpbigpLCBpZGVudGlmaWVyKCks
IFNlcnZpY2VXb3JrZXJDbGllbnREYXRhOjpmcm9tKCp0aGlzKSwgY29udHJvbGxpbmdTZXJ2aWNl
V29ya2VySWRlbnRpZmllcik7CisgICAgbV9zZXJ2aWNlV29ya2VyQ29ubmVjdGlvbi0+cmVnaXN0
ZXJTZXJ2aWNlV29ya2VyQ2xpZW50KHRvcE9yaWdpbigpLCBTZXJ2aWNlV29ya2VyQ2xpZW50RGF0
YTo6ZnJvbSgqdGhpcywgKnNlcnZpY2VXb3JrZXJDb25uZWN0aW9uKSwgY29udHJvbGxpbmdTZXJ2
aWNlV29ya2VySWRlbnRpZmllcik7CiB9CiAjZW5kaWYKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvd29ya2Vycy9zZXJ2aWNlL1NXQ2xpZW50Q29ubmVjdGlvbi5oIGIvU291cmNlL1dlYkNv
cmUvd29ya2Vycy9zZXJ2aWNlL1NXQ2xpZW50Q29ubmVjdGlvbi5oCmluZGV4IDQ3MTQyMDU5YTE1
YmMwMDZhZWQ4MWQwYmJmM2VlNGM0ZmYwZjE5NDUuLjVjMmQzOTI1N2Y3ZGY0YTI4MzA0ZjVlMDBk
ODhjY2QxY2QzMTg5NjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2Vydmlj
ZS9TV0NsaWVudENvbm5lY3Rpb24uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZp
Y2UvU1dDbGllbnRDb25uZWN0aW9uLmgKQEAgLTgxLDcgKzgxLDcgQEAgcHVibGljOgogICAgIHZp
cnR1YWwgYm9vbCBtYXlIYXZlU2VydmljZVdvcmtlclJlZ2lzdGVyZWRGb3JPcmlnaW4oY29uc3Qg
U2VjdXJpdHlPcmlnaW4mKSBjb25zdCA9IDA7CiAgICAgdmlydHVhbCB2b2lkIHN5bmNUZXJtaW5h
dGVXb3JrZXIoU2VydmljZVdvcmtlcklkZW50aWZpZXIpID0gMDsKIAotICAgIHZpcnR1YWwgdm9p
ZCByZWdpc3RlclNlcnZpY2VXb3JrZXJDbGllbnQoY29uc3QgU2VjdXJpdHlPcmlnaW4mIHRvcE9y
aWdpbiwgRG9jdW1lbnRJZGVudGlmaWVyLCBjb25zdCBTZXJ2aWNlV29ya2VyQ2xpZW50RGF0YSYs
IGNvbnN0IHN0ZDo6b3B0aW9uYWw8U2VydmljZVdvcmtlcklkZW50aWZpZXI+JikgPSAwOworICAg
IHZpcnR1YWwgdm9pZCByZWdpc3RlclNlcnZpY2VXb3JrZXJDbGllbnQoY29uc3QgU2VjdXJpdHlP
cmlnaW4mIHRvcE9yaWdpbiwgY29uc3QgU2VydmljZVdvcmtlckNsaWVudERhdGEmLCBjb25zdCBz
dGQ6Om9wdGlvbmFsPFNlcnZpY2VXb3JrZXJJZGVudGlmaWVyPiYpID0gMDsKICAgICB2aXJ0dWFs
IHZvaWQgdW5yZWdpc3RlclNlcnZpY2VXb3JrZXJDbGllbnQoRG9jdW1lbnRJZGVudGlmaWVyKSA9
IDA7CiAKIHByb3RlY3RlZDoKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2Vy
dmljZS9TZXJ2aWNlV29ya2VyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9T
ZXJ2aWNlV29ya2VyLmNwcAppbmRleCA0YjRkZTJlMDg0ZjkwNzZkMGYxYzIzNmExZDk1NGFjMTY0
ZTg5YzhiLi5lNDc3NjIwZWMyNDc3NDkxYzc3MjFiOWZiZDk2ZTUxNzY3MDM1MGIyIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvU2VydmljZVdvcmtlci5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL1NlcnZpY2VXb3JrZXIuY3BwCkBAIC0x
MjMsOCArMTIzLDkgQEAgRXhjZXB0aW9uT3I8dm9pZD4gU2VydmljZVdvcmtlcjo6cG9zdE1lc3Nh
Z2UoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYgY29udGV4dCwgSlMKICAgICAgICAgcmV0dXJuIHsg
fTsKICAgICB9CiAKLSAgICBhdXRvIHNvdXJjZUNsaWVudERhdGEgPSBTZXJ2aWNlV29ya2VyQ2xp
ZW50RGF0YTo6ZnJvbShjb250ZXh0KTsKICAgICBhdXRvJiBjb25uZWN0aW9uID0gU2VydmljZVdv
cmtlclByb3ZpZGVyOjpzaW5nbGV0b24oKS5zZXJ2aWNlV29ya2VyQ29ubmVjdGlvbkZvclNlc3Np
b24oY29udGV4dC5zZXNzaW9uSUQoKSk7CisgICAgLy8gRklYTUU6IFdlIHNob3VsZCBiZSBhYmxl
IHRvIHNlbmQgb25seSB0aGUgY2xpZW50IGlkZW50aWZpZXIgYW5kIGxvb2sgdXAgdGhlIGNsaWVu
dERhdGEgb24gc2VydmVyIHNpZGUuCisgICAgYXV0byBzb3VyY2VDbGllbnREYXRhID0gU2Vydmlj
ZVdvcmtlckNsaWVudERhdGE6OmZyb20oY29udGV4dCwgY29ubmVjdGlvbik7CiAgICAgU2Vydmlj
ZVdvcmtlckNsaWVudElkZW50aWZpZXIgc291cmNlQ2xpZW50SWRlbnRpZmllciB7IGNvbm5lY3Rp
b24uc2VydmVyQ29ubmVjdGlvbklkZW50aWZpZXIoKSwgZG93bmNhc3Q8RG9jdW1lbnQ+KGNvbnRl
eHQpLmlkZW50aWZpZXIoKSB9OwogICAgIGNvbm5lY3Rpb24ucG9zdE1lc3NhZ2VUb1NlcnZpY2VX
b3JrZXIoaWRlbnRpZmllcigpLCBtZXNzYWdlLnJlbGVhc2VSZXR1cm5WYWx1ZSgpLCBXVEZNb3Zl
KHNvdXJjZUNsaWVudElkZW50aWZpZXIpLCBXVEZNb3ZlKHNvdXJjZUNsaWVudERhdGEpKTsKIApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL1NlcnZpY2VXb3JrZXJD
bGllbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL1NlcnZpY2VXb3JrZXJD
bGllbnQuY3BwCmluZGV4IGFlOTNiNWQzOWRlM2Y2MGExNjJhNGY1ZjU1YThjODU4NGVhNzUyZTku
Ljg3NGEzM2NhMGNlZjY0MWFkYjkwOTk1ZjI3MGI1ODFiMWNhNGRiZTggMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9TZXJ2aWNlV29ya2VyQ2xpZW50LmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvU2VydmljZVdvcmtlckNsaWVudC5jcHAK
QEAgLTM4LDIwICszOCwxOSBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLVJlZjxTZXJ2aWNl
V29ya2VyQ2xpZW50PiBTZXJ2aWNlV29ya2VyQ2xpZW50OjpnZXRPckNyZWF0ZShTZXJ2aWNlV29y
a2VyR2xvYmFsU2NvcGUmIGNvbnRleHQsIFNlcnZpY2VXb3JrZXJDbGllbnRJZGVudGlmaWVyIGlk
ZW50aWZpZXIsIFNlcnZpY2VXb3JrZXJDbGllbnREYXRhJiYgZGF0YSkKK1JlZjxTZXJ2aWNlV29y
a2VyQ2xpZW50PiBTZXJ2aWNlV29ya2VyQ2xpZW50OjpnZXRPckNyZWF0ZShTZXJ2aWNlV29ya2Vy
R2xvYmFsU2NvcGUmIGNvbnRleHQsIFNlcnZpY2VXb3JrZXJDbGllbnREYXRhJiYgZGF0YSkKIHsK
LSAgICBpZiAoYXV0byogY2xpZW50ID0gY29udGV4dC5zZXJ2aWNlV29ya2VyQ2xpZW50KGlkZW50
aWZpZXIpKQorICAgIGlmIChhdXRvKiBjbGllbnQgPSBjb250ZXh0LnNlcnZpY2VXb3JrZXJDbGll
bnQoZGF0YS5pZGVudGlmaWVyKSkKICAgICAgICAgcmV0dXJuICpjbGllbnQ7CiAKICAgICBpZiAo
ZGF0YS50eXBlID09IFNlcnZpY2VXb3JrZXJDbGllbnRUeXBlOjpXaW5kb3cpCi0gICAgICAgIHJl
dHVybiBTZXJ2aWNlV29ya2VyV2luZG93Q2xpZW50OjpjcmVhdGUoY29udGV4dCwgaWRlbnRpZmll
ciwgV1RGTW92ZShkYXRhKSk7CisgICAgICAgIHJldHVybiBTZXJ2aWNlV29ya2VyV2luZG93Q2xp
ZW50OjpjcmVhdGUoY29udGV4dCwgV1RGTW92ZShkYXRhKSk7CiAKLSAgICByZXR1cm4gYWRvcHRS
ZWYoKm5ldyBTZXJ2aWNlV29ya2VyQ2xpZW50IHsgY29udGV4dCwgaWRlbnRpZmllciwgV1RGTW92
ZShkYXRhKSB9KTsKKyAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBTZXJ2aWNlV29ya2VyQ2xpZW50
IHsgY29udGV4dCwgV1RGTW92ZShkYXRhKSB9KTsKIH0KIAotU2VydmljZVdvcmtlckNsaWVudDo6
U2VydmljZVdvcmtlckNsaWVudChTZXJ2aWNlV29ya2VyR2xvYmFsU2NvcGUmIGNvbnRleHQsIFNl
cnZpY2VXb3JrZXJDbGllbnRJZGVudGlmaWVyIGlkZW50aWZpZXIsIFNlcnZpY2VXb3JrZXJDbGll
bnREYXRhJiYgZGF0YSkKK1NlcnZpY2VXb3JrZXJDbGllbnQ6OlNlcnZpY2VXb3JrZXJDbGllbnQo
U2VydmljZVdvcmtlckdsb2JhbFNjb3BlJiBjb250ZXh0LCBTZXJ2aWNlV29ya2VyQ2xpZW50RGF0
YSYmIGRhdGEpCiAgICAgOiBDb250ZXh0RGVzdHJ1Y3Rpb25PYnNlcnZlcigmY29udGV4dCkKLSAg
ICAsIG1faWRlbnRpZmllcihpZGVudGlmaWVyKQogICAgICwgbV9kYXRhKFdURk1vdmUoZGF0YSkp
CiB7CiAgICAgY29udGV4dC5hZGRTZXJ2aWNlV29ya2VyQ2xpZW50KCp0aGlzKTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9TZXJ2aWNlV29ya2VyQ2xpZW50Lmgg
Yi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvU2VydmljZVdvcmtlckNsaWVudC5oCmlu
ZGV4IDQ2YTQzOGM5ODJjYThlNmI4ZDgxNGM2ODI1MTRlNWVlMzI4NWM5YTMuLjg3ZWY3YTNjNTM2
ZTdhZWE4OTQ3ZGQyMjE4MGFkMzA4ZjU5YzRlYzkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3dvcmtlcnMvc2VydmljZS9TZXJ2aWNlV29ya2VyQ2xpZW50LmgKKysrIGIvU291cmNlL1dlYkNv
cmUvd29ya2Vycy9zZXJ2aWNlL1NlcnZpY2VXb3JrZXJDbGllbnQuaApAQCAtNDgsNyArNDgsNyBA
QCBwdWJsaWM6CiAgICAgdXNpbmcgVHlwZSA9IFNlcnZpY2VXb3JrZXJDbGllbnRUeXBlOwogICAg
IHVzaW5nIEZyYW1lVHlwZSA9IFNlcnZpY2VXb3JrZXJDbGllbnRGcmFtZVR5cGU7CiAKLSAgICBz
dGF0aWMgUmVmPFNlcnZpY2VXb3JrZXJDbGllbnQ+IGdldE9yQ3JlYXRlKFNlcnZpY2VXb3JrZXJH
bG9iYWxTY29wZSYsIFNlcnZpY2VXb3JrZXJDbGllbnRJZGVudGlmaWVyLCBTZXJ2aWNlV29ya2Vy
Q2xpZW50RGF0YSYmKTsKKyAgICBzdGF0aWMgUmVmPFNlcnZpY2VXb3JrZXJDbGllbnQ+IGdldE9y
Q3JlYXRlKFNlcnZpY2VXb3JrZXJHbG9iYWxTY29wZSYsIFNlcnZpY2VXb3JrZXJDbGllbnREYXRh
JiYpOwogCiAgICAgflNlcnZpY2VXb3JrZXJDbGllbnQoKTsKIApAQCAtNTcsMTQgKzU3LDEzIEBA
IHB1YmxpYzoKICAgICBUeXBlIHR5cGUoKSBjb25zdDsKICAgICBTdHJpbmcgaWQoKSBjb25zdDsK
IAotICAgIElkZW50aWZpZXIgaWRlbnRpZmllcigpIGNvbnN0IHsgcmV0dXJuIG1faWRlbnRpZmll
cjsgfQorICAgIElkZW50aWZpZXIgaWRlbnRpZmllcigpIGNvbnN0IHsgcmV0dXJuIG1fZGF0YS5p
ZGVudGlmaWVyOyB9CiAKICAgICBFeGNlcHRpb25Pcjx2b2lkPiBwb3N0TWVzc2FnZShTY3JpcHRF
eGVjdXRpb25Db250ZXh0JiwgSlNDOjpKU1ZhbHVlIG1lc3NhZ2UsIFZlY3RvcjxKU0M6OlN0cm9u
ZzxKU0M6OkpTT2JqZWN0Pj4mJiB0cmFuc2Zlcik7CiAKIHByb3RlY3RlZDoKLSAgICBTZXJ2aWNl
V29ya2VyQ2xpZW50KFNlcnZpY2VXb3JrZXJHbG9iYWxTY29wZSYsIFNlcnZpY2VXb3JrZXJDbGll
bnRJZGVudGlmaWVyLCBTZXJ2aWNlV29ya2VyQ2xpZW50RGF0YSYmKTsKKyAgICBTZXJ2aWNlV29y
a2VyQ2xpZW50KFNlcnZpY2VXb3JrZXJHbG9iYWxTY29wZSYsIFNlcnZpY2VXb3JrZXJDbGllbnRE
YXRhJiYpOwogCi0gICAgU2VydmljZVdvcmtlckNsaWVudElkZW50aWZpZXIgbV9pZGVudGlmaWVy
OwogICAgIFNlcnZpY2VXb3JrZXJDbGllbnREYXRhIG1fZGF0YTsKIH07CiAKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9TZXJ2aWNlV29ya2VyQ2xpZW50RGF0YS5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvU2VydmljZVdvcmtlckNsaWVudERh
dGEuY3BwCmluZGV4IGIyZTdkMzMyMTcxZTZhZDFlNGYwNTNkNzRhMjJkODQzOGE5ZGYzYzUuLjVj
NDQwMmI3MjBjMzBiMWY2ZDgxZjVlMzMxNTAzNDkyMzI1ZTQzOTIgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9TZXJ2aWNlV29ya2VyQ2xpZW50RGF0YS5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL1NlcnZpY2VXb3JrZXJDbGllbnREYXRh
LmNwcApAQCAtNTYsMTQgKzU2LDE2IEBAIHN0YXRpYyBTZXJ2aWNlV29ya2VyQ2xpZW50RnJhbWVU
eXBlIHRvU2VydmljZVdvcmtlckNsaWVudEZyYW1lVHlwZShTY3JpcHRFeGVjdXRpCiAKIFNlcnZp
Y2VXb3JrZXJDbGllbnREYXRhIFNlcnZpY2VXb3JrZXJDbGllbnREYXRhOjppc29sYXRlZENvcHko
KSBjb25zdAogewotICAgIHJldHVybiB7IHR5cGUsIGZyYW1lVHlwZSwgdXJsLmlzb2xhdGVkQ29w
eSgpIH07CisgICAgcmV0dXJuIHsgaWRlbnRpZmllciwgdHlwZSwgZnJhbWVUeXBlLCB1cmwuaXNv
bGF0ZWRDb3B5KCkgfTsKIH0KIAotU2VydmljZVdvcmtlckNsaWVudERhdGEgU2VydmljZVdvcmtl
ckNsaWVudERhdGE6OmZyb20oU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYgY29udGV4dCkKK1NlcnZp
Y2VXb3JrZXJDbGllbnREYXRhIFNlcnZpY2VXb3JrZXJDbGllbnREYXRhOjpmcm9tKFNjcmlwdEV4
ZWN1dGlvbkNvbnRleHQmIGNvbnRleHQsIFNXQ2xpZW50Q29ubmVjdGlvbiYgY29ubmVjdGlvbikK
IHsKICAgICBib29sIGlzRG9jdW1lbnQgPSBpczxEb2N1bWVudD4oY29udGV4dCk7CisgICAgUkVM
RUFTRV9BU1NFUlQoaXNEb2N1bWVudCk7IC8vIFdlIGRvIG5vdCBzdXBwb3J0IGRlZGljYXRlZCB3
b3JrZXJzIGFzIGNsaWVudHMgeWV0LgogCiAgICAgcmV0dXJuIHsKKyAgICAgICAgeyBjb25uZWN0
aW9uLnNlcnZlckNvbm5lY3Rpb25JZGVudGlmaWVyKCksIGRvd25jYXN0PERvY3VtZW50Pihjb250
ZXh0KS5pZGVudGlmaWVyKCkgfSwKICAgICAgICAgaXNEb2N1bWVudCA/IFNlcnZpY2VXb3JrZXJD
bGllbnRUeXBlOjpXaW5kb3cgOiBTZXJ2aWNlV29ya2VyQ2xpZW50VHlwZTo6V29ya2VyLAogICAg
ICAgICB0b1NlcnZpY2VXb3JrZXJDbGllbnRGcmFtZVR5cGUoY29udGV4dCksCiAgICAgICAgIGNv
bnRleHQudXJsKCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9T
ZXJ2aWNlV29ya2VyQ2xpZW50RGF0YS5oIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNl
L1NlcnZpY2VXb3JrZXJDbGllbnREYXRhLmgKaW5kZXggNGYxYWI4YmE0NWU0YTk4ZmY1NWE0NTJj
NjU0ZWRlYjdlNTc4YWZlMS4uMTQzZDdkOWUwNDVkNTRlMTFhOGM2ZWQ5YWMxNGUzN2IxNTZhMDUy
OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL1NlcnZpY2VXb3Jr
ZXJDbGllbnREYXRhLmgKKysrIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL1NlcnZp
Y2VXb3JrZXJDbGllbnREYXRhLmgKQEAgLTM0LDE2ICszNCwxOCBAQAogCiBuYW1lc3BhY2UgV2Vi
Q29yZSB7CiAKK2NsYXNzIFNXQ2xpZW50Q29ubmVjdGlvbjsKIGNsYXNzIFNjcmlwdEV4ZWN1dGlv
bkNvbnRleHQ7CiAKIHN0cnVjdCBTZXJ2aWNlV29ya2VyQ2xpZW50RGF0YSB7CisgICAgU2Vydmlj
ZVdvcmtlckNsaWVudElkZW50aWZpZXIgaWRlbnRpZmllcjsKICAgICBTZXJ2aWNlV29ya2VyQ2xp
ZW50VHlwZSB0eXBlOwogICAgIFNlcnZpY2VXb3JrZXJDbGllbnRGcmFtZVR5cGUgZnJhbWVUeXBl
OwogICAgIFVSTCB1cmw7CiAKICAgICBTZXJ2aWNlV29ya2VyQ2xpZW50RGF0YSBpc29sYXRlZENv
cHkoKSBjb25zdDsKIAotICAgIHN0YXRpYyBTZXJ2aWNlV29ya2VyQ2xpZW50RGF0YSBmcm9tKFNj
cmlwdEV4ZWN1dGlvbkNvbnRleHQmKTsKKyAgICBzdGF0aWMgU2VydmljZVdvcmtlckNsaWVudERh
dGEgZnJvbShTY3JpcHRFeGVjdXRpb25Db250ZXh0JiwgU1dDbGllbnRDb25uZWN0aW9uJik7CiAK
ICAgICB0ZW1wbGF0ZTxjbGFzcyBFbmNvZGVyPiB2b2lkIGVuY29kZShFbmNvZGVyJikgY29uc3Q7
CiAgICAgdGVtcGxhdGU8Y2xhc3MgRGVjb2Rlcj4gc3RhdGljIHN0ZDo6b3B0aW9uYWw8U2Vydmlj
ZVdvcmtlckNsaWVudERhdGE+IGRlY29kZShEZWNvZGVyJik7CkBAIC01MiwxMiArNTQsMTcgQEAg
c3RydWN0IFNlcnZpY2VXb3JrZXJDbGllbnREYXRhIHsKIHRlbXBsYXRlPGNsYXNzIEVuY29kZXI+
CiB2b2lkIFNlcnZpY2VXb3JrZXJDbGllbnREYXRhOjplbmNvZGUoRW5jb2RlciYgZW5jb2Rlcikg
Y29uc3QKIHsKLSAgICBlbmNvZGVyIDw8IHR5cGUgPDwgZnJhbWVUeXBlIDw8IHVybDsKKyAgICBl
bmNvZGVyIDw8IGlkZW50aWZpZXIgPDwgdHlwZSA8PCBmcmFtZVR5cGUgPDwgdXJsOwogfQogCiB0
ZW1wbGF0ZTxjbGFzcyBEZWNvZGVyPgogc3RkOjpvcHRpb25hbDxTZXJ2aWNlV29ya2VyQ2xpZW50
RGF0YT4gU2VydmljZVdvcmtlckNsaWVudERhdGE6OmRlY29kZShEZWNvZGVyJiBkZWNvZGVyKQog
eworICAgIHN0ZDo6b3B0aW9uYWw8U2VydmljZVdvcmtlckNsaWVudElkZW50aWZpZXI+IGlkZW50
aWZpZXI7CisgICAgZGVjb2RlciA+PiBpZGVudGlmaWVyOworICAgIGlmICghaWRlbnRpZmllcikK
KyAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKKwogICAgIHN0ZDo6b3B0aW9uYWw8U2Vydmlj
ZVdvcmtlckNsaWVudFR5cGU+IHR5cGU7CiAgICAgZGVjb2RlciA+PiB0eXBlOwogICAgIGlmICgh
dHlwZSkKQEAgLTczLDkgKzgwLDExIEBAIHN0ZDo6b3B0aW9uYWw8U2VydmljZVdvcmtlckNsaWVu
dERhdGE+IFNlcnZpY2VXb3JrZXJDbGllbnREYXRhOjpkZWNvZGUoRGVjb2RlciYKICAgICBpZiAo
IXVybCkKICAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKIAotICAgIHJldHVybiB7IHsgV1RG
TW92ZSgqdHlwZSksIFdURk1vdmUoKmZyYW1lVHlwZSksIFdURk1vdmUoKnVybCkgfSB9OworICAg
IHJldHVybiB7IHsgV1RGTW92ZSgqaWRlbnRpZmllciksIFdURk1vdmUoKnR5cGUpLCBXVEZNb3Zl
KCpmcmFtZVR5cGUpLCBXVEZNb3ZlKCp1cmwpIH0gfTsKIH0KIAordXNpbmcgU2VydmljZVdvcmtl
ckNsaWVudHNNYXRjaEFsbENhbGxiYWNrID0gV1RGOjpDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFZl
Y3RvcjxTZXJ2aWNlV29ya2VyQ2xpZW50RGF0YT4mJik+OworCiB9IC8vIG5hbWVzcGFjZSBXZWJD
b3JlCiAKICNlbmRpZiAvLyBFTkFCTEUoU0VSVklDRV9XT1JLRVIpCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvU2VydmljZVdvcmtlckNsaWVudEluZm9ybWF0aW9u
LmggYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvU2VydmljZVdvcmtlckNsaWVudElu
Zm9ybWF0aW9uLmgKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGM5ZjdmNjQ5MDVlMDQz
Yzg0OTRiYTQxNzdjMWNmZWZkZTExOWFlYjQuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL1NlcnZpY2VX
b3JrZXJDbGllbnRJbmZvcm1hdGlvbi5oCisrKyAvZGV2L251bGwKQEAgLTEsNzQgKzAsMCBAQAot
LyoKLSAqIENvcHlyaWdodCAoQykgMjAxNyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQu
Ci0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jt
cywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlk
ZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRp
c3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdo
dAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyLgotICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3Qg
cmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRv
Y3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0
cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMu
IEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJwotICogQU5EIEFOWSBFWFBSRVNTIE9SIElN
UExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0gKiBUSEUg
SU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQ
QVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBB
UFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKLSAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVD
VCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKLSAqIENPTlNF
UVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVN
RU5UIE9GCi0gKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFU
QSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKLSAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVT
RUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCi0gKiBDT05UUkFD
VCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RI
RVJXSVNFKQotICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09G
VFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgotICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFN
QUdFLgotICovCi0KLSNwcmFnbWEgb25jZQotCi0jaWYgRU5BQkxFKFNFUlZJQ0VfV09SS0VSKQot
Ci0jaW5jbHVkZSAiU2VydmljZVdvcmtlckNsaWVudERhdGEuaCIKLSNpbmNsdWRlICJTZXJ2aWNl
V29ya2VyQ2xpZW50SWRlbnRpZmllci5oIgotI2luY2x1ZGUgPHd0Zi9WZWN0b3IuaD4KLQotbmFt
ZXNwYWNlIFdlYkNvcmUgewotCi1jbGFzcyBTY3JpcHRFeGVjdXRpb25Db250ZXh0OwotCi1zdHJ1
Y3QgU2VydmljZVdvcmtlckNsaWVudEluZm9ybWF0aW9uIHsKLSAgICBTZXJ2aWNlV29ya2VyQ2xp
ZW50SWRlbnRpZmllciBpZGVudGlmaWVyOwotICAgIFNlcnZpY2VXb3JrZXJDbGllbnREYXRhIGRh
dGE7Ci0KLSAgICBTZXJ2aWNlV29ya2VyQ2xpZW50SW5mb3JtYXRpb24gaXNvbGF0ZWRDb3B5KCkg
Y29uc3QgeyByZXR1cm4geyBpZGVudGlmaWVyLCBkYXRhLmlzb2xhdGVkQ29weSgpIH07IH0KLQot
ICAgIHRlbXBsYXRlPGNsYXNzIEVuY29kZXI+IHZvaWQgZW5jb2RlKEVuY29kZXImKSBjb25zdDsK
LSAgICB0ZW1wbGF0ZTxjbGFzcyBEZWNvZGVyPiBzdGF0aWMgc3RkOjpvcHRpb25hbDxTZXJ2aWNl
V29ya2VyQ2xpZW50SW5mb3JtYXRpb24+IGRlY29kZShEZWNvZGVyJik7Ci19OwotCi11c2luZyBT
ZXJ2aWNlV29ya2VyQ2xpZW50c01hdGNoQWxsQ2FsbGJhY2sgPSBXVEY6OkNvbXBsZXRpb25IYW5k
bGVyPHZvaWQoVmVjdG9yPFNlcnZpY2VXb3JrZXJDbGllbnRJbmZvcm1hdGlvbj4mJik+OwotCi10
ZW1wbGF0ZTxjbGFzcyBFbmNvZGVyPgotdm9pZCBTZXJ2aWNlV29ya2VyQ2xpZW50SW5mb3JtYXRp
b246OmVuY29kZShFbmNvZGVyJiBlbmNvZGVyKSBjb25zdAotewotICAgIGVuY29kZXIgPDwgaWRl
bnRpZmllciA8PCBkYXRhOwotfQotCi10ZW1wbGF0ZTxjbGFzcyBEZWNvZGVyPgotc3RkOjpvcHRp
b25hbDxTZXJ2aWNlV29ya2VyQ2xpZW50SW5mb3JtYXRpb24+IFNlcnZpY2VXb3JrZXJDbGllbnRJ
bmZvcm1hdGlvbjo6ZGVjb2RlKERlY29kZXImIGRlY29kZXIpCi17Ci0gICAgc3RkOjpvcHRpb25h
bDxTZXJ2aWNlV29ya2VyQ2xpZW50SWRlbnRpZmllcj4gaWRlbnRpZmllcjsKLSAgICBkZWNvZGVy
ID4+IGlkZW50aWZpZXI7Ci0gICAgaWYgKCFpZGVudGlmaWVyKQotICAgICAgICByZXR1cm4gc3Rk
OjpudWxsb3B0OwotCi0gICAgc3RkOjpvcHRpb25hbDxTZXJ2aWNlV29ya2VyQ2xpZW50RGF0YT4g
ZGF0YTsKLSAgICBkZWNvZGVyID4+IGRhdGE7Ci0gICAgaWYgKCFkYXRhKQotICAgICAgICByZXR1
cm4gc3RkOjpudWxsb3B0OwotCi0gICAgcmV0dXJuIHsgeyBXVEZNb3ZlKCppZGVudGlmaWVyKSwg
V1RGTW92ZSgqZGF0YSkgfSB9OwotfQotCi19IC8vIG5hbWVzcGFjZSBXZWJDb3JlCi0KLSNlbmRp
ZiAvLyBFTkFCTEUoU0VSVklDRV9XT1JLRVIpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS93
b3JrZXJzL3NlcnZpY2UvU2VydmljZVdvcmtlckNsaWVudHMuY3BwIGIvU291cmNlL1dlYkNvcmUv
d29ya2Vycy9zZXJ2aWNlL1NlcnZpY2VXb3JrZXJDbGllbnRzLmNwcAppbmRleCA2MTY4N2Y5NzU4
MWJhZGQ5NzcwM2VmY2I5MGM2M2E2ZWJjZDMxN2Q1Li42ODI0N2EyODgxNzhlNDBhZjAzNDcwZmRj
MWE3NjcyNmRlZTlmYWQzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZp
Y2UvU2VydmljZVdvcmtlckNsaWVudHMuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMv
c2VydmljZS9TZXJ2aWNlV29ya2VyQ2xpZW50cy5jcHAKQEAgLTM0LDcgKzM0LDcgQEAKIAogbmFt
ZXNwYWNlIFdlYkNvcmUgewogCi1zdGF0aWMgaW5saW5lIHZvaWQgZGlkRmluaXNoR2V0UmVxdWVz
dChTZXJ2aWNlV29ya2VyR2xvYmFsU2NvcGUmIHNjb3BlLCBEZWZlcnJlZFByb21pc2UmIHByb21p
c2UsIFNlcnZpY2VXb3JrZXJDbGllbnRJZGVudGlmaWVyIGlkZW50aWZpZXIsIEV4Y2VwdGlvbk9y
PHN0ZDo6b3B0aW9uYWw8U2VydmljZVdvcmtlckNsaWVudERhdGE+PiYmIGNsaWVudERhdGEpCitz
dGF0aWMgaW5saW5lIHZvaWQgZGlkRmluaXNoR2V0UmVxdWVzdChTZXJ2aWNlV29ya2VyR2xvYmFs
U2NvcGUmIHNjb3BlLCBEZWZlcnJlZFByb21pc2UmIHByb21pc2UsIEV4Y2VwdGlvbk9yPHN0ZDo6
b3B0aW9uYWw8U2VydmljZVdvcmtlckNsaWVudERhdGE+PiYmIGNsaWVudERhdGEpCiB7CiAgICAg
aWYgKGNsaWVudERhdGEuaGFzRXhjZXB0aW9uKCkpIHsKICAgICAgICAgcHJvbWlzZS5yZWplY3Qo
Y2xpZW50RGF0YS5yZWxlYXNlRXhjZXB0aW9uKCkpOwpAQCAtNDYsNyArNDYsNyBAQCBzdGF0aWMg
aW5saW5lIHZvaWQgZGlkRmluaXNoR2V0UmVxdWVzdChTZXJ2aWNlV29ya2VyR2xvYmFsU2NvcGUm
IHNjb3BlLCBEZWZlcnJlZAogICAgICAgICByZXR1cm47CiAgICAgfQogCi0gICAgcHJvbWlzZS5y
ZXNvbHZlPElETEludGVyZmFjZTxTZXJ2aWNlV29ya2VyQ2xpZW50Pj4oU2VydmljZVdvcmtlckNs
aWVudDo6Z2V0T3JDcmVhdGUoc2NvcGUsIGlkZW50aWZpZXIsIFdURk1vdmUoZGF0YS52YWx1ZSgp
KSkpOworICAgIHByb21pc2UucmVzb2x2ZTxJRExJbnRlcmZhY2U8U2VydmljZVdvcmtlckNsaWVu
dD4+KFNlcnZpY2VXb3JrZXJDbGllbnQ6OmdldE9yQ3JlYXRlKHNjb3BlLCBXVEZNb3ZlKGRhdGEu
dmFsdWUoKSkpKTsKIH0KIAogdm9pZCBTZXJ2aWNlV29ya2VyQ2xpZW50czo6Z2V0KFNjcmlwdEV4
ZWN1dGlvbkNvbnRleHQmIGNvbnRleHQsIGNvbnN0IFN0cmluZyYgaWQsIFJlZjxEZWZlcnJlZFBy
b21pc2U+JiYgcHJvbWlzZSkKQEAgLTY1LDIwICs2NSwyMCBAQCB2b2lkIFNlcnZpY2VXb3JrZXJD
bGllbnRzOjpnZXQoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYgY29udGV4dCwgY29uc3QgU3RyaW5n
JiBpZAogCiAgICAgY2FsbE9uTWFpblRocmVhZChbcHJvbWlzZVBvaW50ZXIsIHNlcnZpY2VXb3Jr
ZXJJZGVudGlmaWVyLCBjbGllbnRJZGVudGlmaWVyXSAoKSB7CiAgICAgICAgIGF1dG8gY29ubmVj
dGlvbiA9IFNXQ29udGV4dE1hbmFnZXI6OnNpbmdsZXRvbigpLmNvbm5lY3Rpb24oKTsKLSAgICAg
ICAgY29ubmVjdGlvbi0+ZmluZENsaWVudEJ5SWRlbnRpZmllcihzZXJ2aWNlV29ya2VySWRlbnRp
ZmllciwgY2xpZW50SWRlbnRpZmllciwgW3Byb21pc2VQb2ludGVyLCBzZXJ2aWNlV29ya2VySWRl
bnRpZmllciwgY2xpZW50SWRlbnRpZmllcl0gKGF1dG8mJiBjbGllbnREYXRhKSB7Ci0gICAgICAg
ICAgICBTV0NvbnRleHRNYW5hZ2VyOjpzaW5nbGV0b24oKS5wb3N0VGFza1RvU2VydmljZVdvcmtl
cihzZXJ2aWNlV29ya2VySWRlbnRpZmllciwgW3Byb21pc2VQb2ludGVyLCBjbGllbnRJZGVudGlm
aWVyLCBkYXRhID0gY3Jvc3NUaHJlYWRDb3B5KGNsaWVudERhdGEpXSAoYXV0byYgY29udGV4dCkg
bXV0YWJsZSB7CisgICAgICAgIGNvbm5lY3Rpb24tPmZpbmRDbGllbnRCeUlkZW50aWZpZXIoc2Vy
dmljZVdvcmtlcklkZW50aWZpZXIsIGNsaWVudElkZW50aWZpZXIsIFtwcm9taXNlUG9pbnRlciwg
c2VydmljZVdvcmtlcklkZW50aWZpZXJdIChhdXRvJiYgY2xpZW50RGF0YSkgeworICAgICAgICAg
ICAgU1dDb250ZXh0TWFuYWdlcjo6c2luZ2xldG9uKCkucG9zdFRhc2tUb1NlcnZpY2VXb3JrZXIo
c2VydmljZVdvcmtlcklkZW50aWZpZXIsIFtwcm9taXNlUG9pbnRlciwgZGF0YSA9IGNyb3NzVGhy
ZWFkQ29weShjbGllbnREYXRhKV0gKGF1dG8mIGNvbnRleHQpIG11dGFibGUgewogICAgICAgICAg
ICAgICAgIGlmIChhdXRvIHByb21pc2UgPSBjb250ZXh0LmNsaWVudHMoKS5tX3BlbmRpbmdQcm9t
aXNlcy50YWtlKHByb21pc2VQb2ludGVyKSkKLSAgICAgICAgICAgICAgICAgICAgZGlkRmluaXNo
R2V0UmVxdWVzdChjb250ZXh0LCAqcHJvbWlzZSwgY2xpZW50SWRlbnRpZmllciwgV1RGTW92ZShk
YXRhKSk7CisgICAgICAgICAgICAgICAgICAgIGRpZEZpbmlzaEdldFJlcXVlc3QoY29udGV4dCwg
KnByb21pc2UsIFdURk1vdmUoZGF0YSkpOwogICAgICAgICAgICAgfSk7CiAgICAgICAgIH0pOwog
ICAgIH0pOwogfQogCiAKLXN0YXRpYyBpbmxpbmUgdm9pZCBtYXRjaEFsbENvbXBsZXRlZChTZXJ2
aWNlV29ya2VyR2xvYmFsU2NvcGUmIHNjb3BlLCBEZWZlcnJlZFByb21pc2UmIHByb21pc2UsIFZl
Y3RvcjxTZXJ2aWNlV29ya2VyQ2xpZW50SW5mb3JtYXRpb24+JiYgY2xpZW50c0RhdGEpCitzdGF0
aWMgaW5saW5lIHZvaWQgbWF0Y2hBbGxDb21wbGV0ZWQoU2VydmljZVdvcmtlckdsb2JhbFNjb3Bl
JiBzY29wZSwgRGVmZXJyZWRQcm9taXNlJiBwcm9taXNlLCBWZWN0b3I8U2VydmljZVdvcmtlckNs
aWVudERhdGE+JiYgY2xpZW50c0RhdGEpCiB7Ci0gICAgYXV0byBjbGllbnRzID0gV1RGOjptYXAo
Y2xpZW50c0RhdGEsIFsmXSAoYXV0byYmIGNsaWVudCkgewotICAgICAgICByZXR1cm4gU2Vydmlj
ZVdvcmtlckNsaWVudDo6Z2V0T3JDcmVhdGUoc2NvcGUsIGNsaWVudC5pZGVudGlmaWVyLCBXVEZN
b3ZlKGNsaWVudC5kYXRhKSk7CisgICAgYXV0byBjbGllbnRzID0gV1RGOjptYXAoY2xpZW50c0Rh
dGEsIFsmXSAoYXV0byYmIGNsaWVudERhdGEpIHsKKyAgICAgICAgcmV0dXJuIFNlcnZpY2VXb3Jr
ZXJDbGllbnQ6OmdldE9yQ3JlYXRlKHNjb3BlLCBXVEZNb3ZlKGNsaWVudERhdGEpKTsKICAgICB9
KTsKICAgICBwcm9taXNlLnJlc29sdmU8SURMU2VxdWVuY2U8SURMSW50ZXJmYWNlPFNlcnZpY2VX
b3JrZXJDbGllbnQ+Pj4oV1RGTW92ZShjbGllbnRzKSk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvU2VydmljZVdvcmtlclR5cGVzLmggYi9Tb3VyY2UvV2Vi
Q29yZS93b3JrZXJzL3NlcnZpY2UvU2VydmljZVdvcmtlclR5cGVzLmgKaW5kZXggOGQxNTJkMzY3
OTRhNGI0NGRmMzU0ODYxZTRmMjM0MWU5NjVkZGExNS4uYjljYWI3MzUzMWNhZmFlYWQyNGJlZTk0
YTViNDk5OTFmNDQ1MjZkZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2
aWNlL1NlcnZpY2VXb3JrZXJUeXBlcy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2Vy
dmljZS9TZXJ2aWNlV29ya2VyVHlwZXMuaApAQCAtMzUsNiArMzUsOSBAQAogCiBuYW1lc3BhY2Ug
V2ViQ29yZSB7CiAKK3N0cnVjdCBTZXJ2aWNlV29ya2VyRGF0YTsKK3N0cnVjdCBTZXJ2aWNlV29y
a2VyQ2xpZW50RGF0YTsKKwogZW51bSBjbGFzcyBTZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uU3Rh
dGUgewogICAgIEluc3RhbGxpbmcgPSAwLAogICAgIFdhaXRpbmcgPSAxLApAQCAtNzIsNiArNzUs
OCBAQCB1c2luZyBTV1NlcnZlckNvbm5lY3Rpb25JZGVudGlmaWVyID0gT2JqZWN0SWRlbnRpZmll
cjxTV1NlcnZlckNvbm5lY3Rpb25JZGVudGlmaQogCiB1c2luZyBEb2N1bWVudE9yV29ya2VySWRl
bnRpZmllciA9IFZhcmlhbnQ8RG9jdW1lbnRJZGVudGlmaWVyLCBTZXJ2aWNlV29ya2VySWRlbnRp
Zmllcj47CiAKK3VzaW5nIFNlcnZpY2VXb3JrZXJPckNsaWVudERhdGEgPSBWYXJpYW50PFNlcnZp
Y2VXb3JrZXJEYXRhLCBTZXJ2aWNlV29ya2VyQ2xpZW50RGF0YT47CisKIH0gLy8gbmFtZXNwYWNl
IFdlYkNvcmUKIAogbmFtZXNwYWNlIFdURiB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS93
b3JrZXJzL3NlcnZpY2UvU2VydmljZVdvcmtlcldpbmRvd0NsaWVudC5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS93b3JrZXJzL3NlcnZpY2UvU2VydmljZVdvcmtlcldpbmRvd0NsaWVudC5jcHAKaW5kZXgg
MjA1YmE1M2I0NzJlN2RlOTUxNmU2Yzk1ODYxOTExZWZiZTJjZGY1OS4uODJmYmIxZjJlZWUzY2Nm
Nzg5YjdmYWNkOGEzY2UwZTYzMWM5OTIxMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvd29y
a2Vycy9zZXJ2aWNlL1NlcnZpY2VXb3JrZXJXaW5kb3dDbGllbnQuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3dvcmtlcnMvc2VydmljZS9TZXJ2aWNlV29ya2VyV2luZG93Q2xpZW50LmNwcApAQCAt
MzIsOCArMzIsOCBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLVNlcnZpY2VXb3JrZXJXaW5k
b3dDbGllbnQ6OlNlcnZpY2VXb3JrZXJXaW5kb3dDbGllbnQoU2VydmljZVdvcmtlckdsb2JhbFNj
b3BlJiBjb250ZXh0LCBTZXJ2aWNlV29ya2VyQ2xpZW50SWRlbnRpZmllciBpZGVudGlmaWVyLCBT
ZXJ2aWNlV29ya2VyQ2xpZW50RGF0YSYmIGRhdGEpCi0gICAgOiBTZXJ2aWNlV29ya2VyQ2xpZW50
KGNvbnRleHQsIGlkZW50aWZpZXIsIFdURk1vdmUoZGF0YSkpCitTZXJ2aWNlV29ya2VyV2luZG93
Q2xpZW50OjpTZXJ2aWNlV29ya2VyV2luZG93Q2xpZW50KFNlcnZpY2VXb3JrZXJHbG9iYWxTY29w
ZSYgY29udGV4dCwgU2VydmljZVdvcmtlckNsaWVudERhdGEmJiBkYXRhKQorICAgIDogU2Vydmlj
ZVdvcmtlckNsaWVudChjb250ZXh0LCBXVEZNb3ZlKGRhdGEpKQogewogfQogCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvU2VydmljZVdvcmtlcldpbmRvd0NsaWVu
dC5oIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL1NlcnZpY2VXb3JrZXJXaW5kb3dD
bGllbnQuaAppbmRleCAxYzFlNzU5OWY4ZmY4ZmUxMTY5MTJmMTZkOWY0YTI1ODc1NzY4ZWYzLi5m
NDNjMmM2ZDA3MDRlYjFjMDc0N2M4NTM2YzNhODhmOTI4NzQ1YjFmIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvU2VydmljZVdvcmtlcldpbmRvd0NsaWVudC5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9TZXJ2aWNlV29ya2VyV2luZG93Q2xp
ZW50LmgKQEAgLTM3LDkgKzM3LDkgQEAgY2xhc3MgU2VydmljZVdvcmtlckdsb2JhbFNjb3BlOwog
CiBjbGFzcyBTZXJ2aWNlV29ya2VyV2luZG93Q2xpZW50IGZpbmFsIDogcHVibGljIFNlcnZpY2VX
b3JrZXJDbGllbnQgewogcHVibGljOgotICAgIHN0YXRpYyBSZWY8U2VydmljZVdvcmtlcldpbmRv
d0NsaWVudD4gY3JlYXRlKFNlcnZpY2VXb3JrZXJHbG9iYWxTY29wZSYgY29udGV4dCwgU2Vydmlj
ZVdvcmtlckNsaWVudElkZW50aWZpZXIgaWRlbnRpZmllciwgU2VydmljZVdvcmtlckNsaWVudERh
dGEmJiBkYXRhKQorICAgIHN0YXRpYyBSZWY8U2VydmljZVdvcmtlcldpbmRvd0NsaWVudD4gY3Jl
YXRlKFNlcnZpY2VXb3JrZXJHbG9iYWxTY29wZSYgY29udGV4dCwgU2VydmljZVdvcmtlckNsaWVu
dERhdGEmJiBkYXRhKQogICAgIHsKLSAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgU2Vydmlj
ZVdvcmtlcldpbmRvd0NsaWVudChjb250ZXh0LCBpZGVudGlmaWVyLCBXVEZNb3ZlKGRhdGEpKSk7
CisgICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFNlcnZpY2VXb3JrZXJXaW5kb3dDbGllbnQo
Y29udGV4dCwgV1RGTW92ZShkYXRhKSkpOwogICAgIH0KIAogICAgIFZpc2liaWxpdHlTdGF0ZSB2
aXNpYmlsaXR5U3RhdGUoKSBjb25zdDsKQEAgLTQ5LDcgKzQ5LDcgQEAgcHVibGljOgogICAgIHZv
aWQgbmF2aWdhdGUoY29uc3QgU3RyaW5nJiB1cmwsIFJlZjxEZWZlcnJlZFByb21pc2U+JiYpOwog
CiBwcml2YXRlOgotICAgIFNlcnZpY2VXb3JrZXJXaW5kb3dDbGllbnQoU2VydmljZVdvcmtlckds
b2JhbFNjb3BlJiwgU2VydmljZVdvcmtlckNsaWVudElkZW50aWZpZXIsIFNlcnZpY2VXb3JrZXJD
bGllbnREYXRhJiYpOworICAgIFNlcnZpY2VXb3JrZXJXaW5kb3dDbGllbnQoU2VydmljZVdvcmtl
ckdsb2JhbFNjb3BlJiwgU2VydmljZVdvcmtlckNsaWVudERhdGEmJik7CiB9OwogCiB9IC8vIG5h
bWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZp
Y2UvY29udGV4dC9TV0NvbnRleHRNYW5hZ2VyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMv
c2VydmljZS9jb250ZXh0L1NXQ29udGV4dE1hbmFnZXIuY3BwCmluZGV4IDNhNTk5ZGFjODhlZDE1
Zjg3NzhkYjZlNDcxYWFlYmQ5MjkzOTI1MjguLjViNzA1OTU0YjIzY2Y3ZTgxMThmMDc2MjUwYzhi
MjhhNzFmMzVmYmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9j
b250ZXh0L1NXQ29udGV4dE1hbmFnZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMv
c2VydmljZS9jb250ZXh0L1NXQ29udGV4dE1hbmFnZXIuY3BwCkBAIC02NywxNyArNjcsNyBAQCBT
ZXJ2aWNlV29ya2VyVGhyZWFkUHJveHkqIFNXQ29udGV4dE1hbmFnZXI6OnNlcnZpY2VXb3JrZXJU
aHJlYWRQcm94eShTZXJ2aWNlV29yawogICAgIHJldHVybiBtX3dvcmtlck1hcC5nZXQoaWRlbnRp
Zmllcik7CiB9CiAKLXZvaWQgU1dDb250ZXh0TWFuYWdlcjo6cG9zdE1lc3NhZ2VUb1NlcnZpY2VX
b3JrZXIoU2VydmljZVdvcmtlcklkZW50aWZpZXIgZGVzdGluYXRpb24sIFJlZjxTZXJpYWxpemVk
U2NyaXB0VmFsdWU+JiYgbWVzc2FnZSwgU2VydmljZVdvcmtlckNsaWVudElkZW50aWZpZXIgc291
cmNlSWRlbnRpZmllciwgU2VydmljZVdvcmtlckNsaWVudERhdGEmJiBzb3VyY2VEYXRhKQotewot
ICAgIGF1dG8qIHNlcnZpY2VXb3JrZXIgPSBtX3dvcmtlck1hcC5nZXQoZGVzdGluYXRpb24pOwot
ICAgIEFTU0VSVChzZXJ2aWNlV29ya2VyKTsKLSAgICBBU1NFUlQoIXNlcnZpY2VXb3JrZXItPmlz
VGVybWluYXRpbmdPclRlcm1pbmF0ZWQoKSk7Ci0KLSAgICAvLyBGSVhNRTogV2Ugc2hvdWxkIHBh
c3MgdmFsaWQgTWVzc2FnZVBvcnRDaGFubmVscy4KLSAgICBzZXJ2aWNlV29ya2VyLT50aHJlYWQo
KS5wb3N0TWVzc2FnZVRvU2VydmljZVdvcmtlcihXVEZNb3ZlKG1lc3NhZ2UpLCBudWxscHRyLCBz
b3VyY2VJZGVudGlmaWVyLCBXVEZNb3ZlKHNvdXJjZURhdGEpKTsKLX0KLQotdm9pZCBTV0NvbnRl
eHRNYW5hZ2VyOjpwb3N0TWVzc2FnZVRvU2VydmljZVdvcmtlcihTZXJ2aWNlV29ya2VySWRlbnRp
ZmllciBkZXN0aW5hdGlvbiwgUmVmPFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZT4mJiBtZXNzYWdlLCBT
ZXJ2aWNlV29ya2VyRGF0YSYmIHNvdXJjZURhdGEpCit2b2lkIFNXQ29udGV4dE1hbmFnZXI6OnBv
c3RNZXNzYWdlVG9TZXJ2aWNlV29ya2VyKFNlcnZpY2VXb3JrZXJJZGVudGlmaWVyIGRlc3RpbmF0
aW9uLCBSZWY8U2VyaWFsaXplZFNjcmlwdFZhbHVlPiYmIG1lc3NhZ2UsIFNlcnZpY2VXb3JrZXJP
ckNsaWVudERhdGEmJiBzb3VyY2VEYXRhKQogewogICAgIGF1dG8qIHNlcnZpY2VXb3JrZXIgPSBt
X3dvcmtlck1hcC5nZXQoZGVzdGluYXRpb24pOwogICAgIEFTU0VSVChzZXJ2aWNlV29ya2VyKTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9jb250ZXh0L1NXQ29u
dGV4dE1hbmFnZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9jb250ZXh0L1NX
Q29udGV4dE1hbmFnZXIuaAppbmRleCBmNGUwMjIxOWNhZjVkOGEzM2FjY2RjNzc1MDJjMTVlYjBi
YjYxNGRkLi5iMjUyOTA5NjNlNTJiZGYzY2IwODQ0YTY3Y2FiZGZiYzNhYzYyYTE3IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvY29udGV4dC9TV0NvbnRleHRNYW5h
Z2VyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL2NvbnRleHQvU1dDb250
ZXh0TWFuYWdlci5oCkBAIC0yOCw3ICsyOCw3IEBACiAjaWYgRU5BQkxFKFNFUlZJQ0VfV09SS0VS
KQogCiAjaW5jbHVkZSAiRXhjZXB0aW9uT3IuaCIKLSNpbmNsdWRlICJTZXJ2aWNlV29ya2VyQ2xp
ZW50SW5mb3JtYXRpb24uaCIKKyNpbmNsdWRlICJTZXJ2aWNlV29ya2VyQ2xpZW50RGF0YS5oIgog
I2luY2x1ZGUgIlNlcnZpY2VXb3JrZXJDbGllbnRRdWVyeU9wdGlvbnMuaCIKICNpbmNsdWRlICJT
ZXJ2aWNlV29ya2VySWRlbnRpZmllci5oIgogI2luY2x1ZGUgIlNlcnZpY2VXb3JrZXJUaHJlYWRQ
cm94eS5oIgpAQCAtNjcsOCArNjcsNyBAQCBwdWJsaWM6CiAKICAgICBXRUJDT1JFX0VYUE9SVCB2
b2lkIHJlZ2lzdGVyU2VydmljZVdvcmtlclRocmVhZEZvckluc3RhbGwoUmVmPFNlcnZpY2VXb3Jr
ZXJUaHJlYWRQcm94eT4mJik7CiAgICAgV0VCQ09SRV9FWFBPUlQgU2VydmljZVdvcmtlclRocmVh
ZFByb3h5KiBzZXJ2aWNlV29ya2VyVGhyZWFkUHJveHkoU2VydmljZVdvcmtlcklkZW50aWZpZXIp
IGNvbnN0OwotICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgcG9zdE1lc3NhZ2VUb1NlcnZpY2VXb3Jr
ZXIoU2VydmljZVdvcmtlcklkZW50aWZpZXIgZGVzdGluYXRpb24sIFJlZjxTZXJpYWxpemVkU2Ny
aXB0VmFsdWU+JiYgbWVzc2FnZSwgU2VydmljZVdvcmtlckNsaWVudElkZW50aWZpZXIgc291cmNl
SWRlbnRpZmllciwgU2VydmljZVdvcmtlckNsaWVudERhdGEmJiBzb3VyY2VEYXRhKTsKLSAgICBX
RUJDT1JFX0VYUE9SVCB2b2lkIHBvc3RNZXNzYWdlVG9TZXJ2aWNlV29ya2VyKFNlcnZpY2VXb3Jr
ZXJJZGVudGlmaWVyIGRlc3RpbmF0aW9uLCBSZWY8U2VyaWFsaXplZFNjcmlwdFZhbHVlPiYmIG1l
c3NhZ2UsIFNlcnZpY2VXb3JrZXJEYXRhJiYgc291cmNlRGF0YSk7CisgICAgV0VCQ09SRV9FWFBP
UlQgdm9pZCBwb3N0TWVzc2FnZVRvU2VydmljZVdvcmtlcihTZXJ2aWNlV29ya2VySWRlbnRpZmll
ciBkZXN0aW5hdGlvbiwgUmVmPFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZT4mJiBtZXNzYWdlLCBTZXJ2
aWNlV29ya2VyT3JDbGllbnREYXRhJiYgc291cmNlRGF0YSk7CiAgICAgV0VCQ09SRV9FWFBPUlQg
dm9pZCBmaXJlSW5zdGFsbEV2ZW50KFNlcnZpY2VXb3JrZXJJZGVudGlmaWVyKTsKICAgICBXRUJD
T1JFX0VYUE9SVCB2b2lkIGZpcmVBY3RpdmF0ZUV2ZW50KFNlcnZpY2VXb3JrZXJJZGVudGlmaWVy
KTsKICAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHRlcm1pbmF0ZVdvcmtlcihTZXJ2aWNlV29ya2Vy
SWRlbnRpZmllciwgRnVuY3Rpb248dm9pZCgpPiYmKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3dvcmtlcnMvc2VydmljZS9jb250ZXh0L1NlcnZpY2VXb3JrZXJUaHJlYWQuY3BwIGIvU291
cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL2NvbnRleHQvU2VydmljZVdvcmtlclRocmVhZC5j
cHAKaW5kZXggNjdjOTgwNjFkNzE4MzMwNjM2Yzk5Mjk1YWRlOGExYjZjOTkzMDlkNy4uZDIwZmZj
NmQwZjllNDJhMDIyNjJlZDk2MGZhMWRlNTgzMGJhMTQ4MCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvd29ya2Vycy9zZXJ2aWNlL2NvbnRleHQvU2VydmljZVdvcmtlclRocmVhZC5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL2NvbnRleHQvU2VydmljZVdvcmtlclRo
cmVhZC5jcHAKQEAgLTExMSwyMyArMTExLDIyIEBAIHN0YXRpYyB2b2lkIGZpcmVNZXNzYWdlRXZl
bnQoU2VydmljZVdvcmtlckdsb2JhbFNjb3BlJiBzY29wZSwgUmVmPFNlcmlhbGl6ZWRTY3JpCiAg
ICAgc2NvcGUudXBkYXRlRXh0ZW5kZWRFdmVudHNTZXQobWVzc2FnZUV2ZW50LnB0cigpKTsKIH0K
IAotdm9pZCBTZXJ2aWNlV29ya2VyVGhyZWFkOjpwb3N0TWVzc2FnZVRvU2VydmljZVdvcmtlcihS
ZWY8U2VyaWFsaXplZFNjcmlwdFZhbHVlPiYmIG1lc3NhZ2UsIHN0ZDo6dW5pcXVlX3B0cjxNZXNz
YWdlUG9ydENoYW5uZWxBcnJheT4mJiBjaGFubmVscywgU2VydmljZVdvcmtlckNsaWVudElkZW50
aWZpZXIgc291cmNlSWRlbnRpZmllciwgU2VydmljZVdvcmtlckNsaWVudERhdGEmJiBzb3VyY2VE
YXRhKQordm9pZCBTZXJ2aWNlV29ya2VyVGhyZWFkOjpwb3N0TWVzc2FnZVRvU2VydmljZVdvcmtl
cihSZWY8U2VyaWFsaXplZFNjcmlwdFZhbHVlPiYmIG1lc3NhZ2UsIHN0ZDo6dW5pcXVlX3B0cjxN
ZXNzYWdlUG9ydENoYW5uZWxBcnJheT4mJiBjaGFubmVscywgU2VydmljZVdvcmtlck9yQ2xpZW50
RGF0YSYmIHNvdXJjZURhdGEpCiB7Ci0gICAgcnVuTG9vcCgpLnBvc3RUYXNrKFtjaGFubmVscyA9
IFdURk1vdmUoY2hhbm5lbHMpLCBtZXNzYWdlID0gV1RGTW92ZShtZXNzYWdlKSwgc291cmNlSWRl
bnRpZmllciwgc291cmNlRGF0YSA9IHNvdXJjZURhdGEuaXNvbGF0ZWRDb3B5KCldIChhdXRvJiBj
b250ZXh0KSBtdXRhYmxlIHsKKyAgICBydW5Mb29wKCkucG9zdFRhc2soW2NoYW5uZWxzID0gV1RG
TW92ZShjaGFubmVscyksIG1lc3NhZ2UgPSBXVEZNb3ZlKG1lc3NhZ2UpLCBzb3VyY2VEYXRhID0g
V1RGTW92ZShzb3VyY2VEYXRhKV0gKGF1dG8mIGNvbnRleHQpIG11dGFibGUgewogICAgICAgICBh
dXRvJiBzZXJ2aWNlV29ya2VyR2xvYmFsU2NvcGUgPSBkb3duY2FzdDxTZXJ2aWNlV29ya2VyR2xv
YmFsU2NvcGU+KGNvbnRleHQpOwotICAgICAgICBSZWZQdHI8U2VydmljZVdvcmtlckNsaWVudD4g
c291cmNlID0gU2VydmljZVdvcmtlckNsaWVudDo6Z2V0T3JDcmVhdGUoc2VydmljZVdvcmtlckds
b2JhbFNjb3BlLCBzb3VyY2VJZGVudGlmaWVyLCBXVEZNb3ZlKHNvdXJjZURhdGEpKTsKLSAgICAg
ICAgYXV0byBzb3VyY2VPcmlnaW4gPSBTZWN1cml0eU9yaWdpbjo6Y3JlYXRlKHNvdXJjZS0+dXJs
KCkpOwotICAgICAgICBmaXJlTWVzc2FnZUV2ZW50KHNlcnZpY2VXb3JrZXJHbG9iYWxTY29wZSwg
V1RGTW92ZShtZXNzYWdlKSwgV1RGTW92ZShjaGFubmVscyksIEV4dGVuZGFibGVNZXNzYWdlRXZl
bnRTb3VyY2UgeyBzb3VyY2UgfSwgV1RGTW92ZShzb3VyY2VPcmlnaW4pKTsKLSAgICB9KTsKLX0K
LQotdm9pZCBTZXJ2aWNlV29ya2VyVGhyZWFkOjpwb3N0TWVzc2FnZVRvU2VydmljZVdvcmtlcihS
ZWY8U2VyaWFsaXplZFNjcmlwdFZhbHVlPiYmIG1lc3NhZ2UsIHN0ZDo6dW5pcXVlX3B0cjxNZXNz
YWdlUG9ydENoYW5uZWxBcnJheT4mJiBjaGFubmVscywgU2VydmljZVdvcmtlckRhdGEmJiBzb3Vy
Y2VEYXRhKQotewotICAgIHJ1bkxvb3AoKS5wb3N0VGFzayhbY2hhbm5lbHMgPSBXVEZNb3ZlKGNo
YW5uZWxzKSwgbWVzc2FnZSA9IFdURk1vdmUobWVzc2FnZSksIHNvdXJjZURhdGEgPSBzb3VyY2VE
YXRhLmlzb2xhdGVkQ29weSgpXSAoYXV0byYgY29udGV4dCkgbXV0YWJsZSB7Ci0gICAgICAgIGF1
dG8mIHNlcnZpY2VXb3JrZXJHbG9iYWxTY29wZSA9IGRvd25jYXN0PFNlcnZpY2VXb3JrZXJHbG9i
YWxTY29wZT4oY29udGV4dCk7Ci0gICAgICAgIFJlZlB0cjxTZXJ2aWNlV29ya2VyPiBzb3VyY2Ug
PSBTZXJ2aWNlV29ya2VyOjpnZXRPckNyZWF0ZShzZXJ2aWNlV29ya2VyR2xvYmFsU2NvcGUsIFdU
Rk1vdmUoc291cmNlRGF0YSkpOwotICAgICAgICBhdXRvIHNvdXJjZU9yaWdpbiA9IFNlY3VyaXR5
T3JpZ2luOjpjcmVhdGUoc291cmNlLT5zY3JpcHRVUkwoKSk7Ci0gICAgICAgIGZpcmVNZXNzYWdl
RXZlbnQoZG93bmNhc3Q8U2VydmljZVdvcmtlckdsb2JhbFNjb3BlPihjb250ZXh0KSwgV1RGTW92
ZShtZXNzYWdlKSwgV1RGTW92ZShjaGFubmVscyksIEV4dGVuZGFibGVNZXNzYWdlRXZlbnRTb3Vy
Y2UgeyBzb3VyY2UgfSwgV1RGTW92ZShzb3VyY2VPcmlnaW4pKTsKKyAgICAgICAgUmVmUHRyPFNl
Y3VyaXR5T3JpZ2luPiBzb3VyY2VPcmlnaW47CisgICAgICAgIEV4dGVuZGFibGVNZXNzYWdlRXZl
bnRTb3VyY2Ugc291cmNlOworICAgICAgICBpZiAoV1RGOjpob2xkc19hbHRlcm5hdGl2ZTxTZXJ2
aWNlV29ya2VyQ2xpZW50RGF0YT4oc291cmNlRGF0YSkpIHsKKyAgICAgICAgICAgIFJlZlB0cjxT
ZXJ2aWNlV29ya2VyQ2xpZW50PiBzb3VyY2VDbGllbnQgPSBTZXJ2aWNlV29ya2VyQ2xpZW50Ojpn
ZXRPckNyZWF0ZShzZXJ2aWNlV29ya2VyR2xvYmFsU2NvcGUsIFdURk1vdmUoV1RGOjpnZXQ8U2Vy
dmljZVdvcmtlckNsaWVudERhdGE+KHNvdXJjZURhdGEpKSk7CisgICAgICAgICAgICBzb3VyY2VP
cmlnaW4gPSBTZWN1cml0eU9yaWdpbjo6Y3JlYXRlKHNvdXJjZUNsaWVudC0+dXJsKCkpOworICAg
ICAgICAgICAgc291cmNlID0gV1RGTW92ZShzb3VyY2VDbGllbnQpOworICAgICAgICB9IGVsc2Ug
eworICAgICAgICAgICAgUmVmUHRyPFNlcnZpY2VXb3JrZXI+IHNvdXJjZVdvcmtlciA9IFNlcnZp
Y2VXb3JrZXI6OmdldE9yQ3JlYXRlKHNlcnZpY2VXb3JrZXJHbG9iYWxTY29wZSwgV1RGTW92ZShX
VEY6OmdldDxTZXJ2aWNlV29ya2VyRGF0YT4oc291cmNlRGF0YSkpKTsKKyAgICAgICAgICAgIHNv
dXJjZU9yaWdpbiA9IFNlY3VyaXR5T3JpZ2luOjpjcmVhdGUoc291cmNlV29ya2VyLT5zY3JpcHRV
UkwoKSk7CisgICAgICAgICAgICBzb3VyY2UgPSBXVEZNb3ZlKHNvdXJjZVdvcmtlcik7CisgICAg
ICAgIH0KKyAgICAgICAgZmlyZU1lc3NhZ2VFdmVudChzZXJ2aWNlV29ya2VyR2xvYmFsU2NvcGUs
IFdURk1vdmUobWVzc2FnZSksIFdURk1vdmUoY2hhbm5lbHMpLCBFeHRlbmRhYmxlTWVzc2FnZUV2
ZW50U291cmNlIHsgc291cmNlIH0sIHNvdXJjZU9yaWdpbi5yZWxlYXNlTm9uTnVsbCgpKTsKICAg
ICB9KTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL2Nv
bnRleHQvU2VydmljZVdvcmtlclRocmVhZC5oIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2
aWNlL2NvbnRleHQvU2VydmljZVdvcmtlclRocmVhZC5oCmluZGV4IDFkZGJkY2QwZWMyNGM4ZjFm
ZTVjNTFmODQxZjE1NzY2ZjE4YjZjYmQuLmU0NWNmYmJhZTUxZjhkMGQzODEzYWFlNmJhZTNlNjk0
ZjVhNGZmZTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9jb250
ZXh0L1NlcnZpY2VXb3JrZXJUaHJlYWQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3Nl
cnZpY2UvY29udGV4dC9TZXJ2aWNlV29ya2VyVGhyZWFkLmgKQEAgLTU4LDggKzU4LDcgQEAgcHVi
bGljOgogCiAgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBwb3N0RmV0Y2hUYXNrKFJlZjxTZXJ2aWNl
V29ya2VyRmV0Y2g6OkNsaWVudD4mJiwgUmVzb3VyY2VSZXF1ZXN0JiYsIEZldGNoT3B0aW9ucyYm
KTsKICAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHBvc3RGZXRjaFRhc2soUmVmPFNlcnZpY2VXb3Jr
ZXJGZXRjaDo6Q2xpZW50PiYmLCBzdGQ6Om9wdGlvbmFsPFNlcnZpY2VXb3JrZXJDbGllbnRJZGVu
dGlmaWVyPiYmLCBSZXNvdXJjZVJlcXVlc3QmJiwgRmV0Y2hPcHRpb25zJiYpOwotICAgIFdFQkNP
UkVfRVhQT1JUIHZvaWQgcG9zdE1lc3NhZ2VUb1NlcnZpY2VXb3JrZXIoUmVmPFNlcmlhbGl6ZWRT
Y3JpcHRWYWx1ZT4mJiwgc3RkOjp1bmlxdWVfcHRyPE1lc3NhZ2VQb3J0Q2hhbm5lbEFycmF5PiYm
LCBTZXJ2aWNlV29ya2VyQ2xpZW50SWRlbnRpZmllciBzb3VyY2VJZGVudGlmaWVyLCBTZXJ2aWNl
V29ya2VyQ2xpZW50RGF0YSYmIHNvdXJjZURhdGEpOwotICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQg
cG9zdE1lc3NhZ2VUb1NlcnZpY2VXb3JrZXIoUmVmPFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZT4mJiwg
c3RkOjp1bmlxdWVfcHRyPE1lc3NhZ2VQb3J0Q2hhbm5lbEFycmF5PiYmLCBTZXJ2aWNlV29ya2Vy
RGF0YSYmIHNvdXJjZURhdGEpOworICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgcG9zdE1lc3NhZ2VU
b1NlcnZpY2VXb3JrZXIoUmVmPFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZT4mJiwgc3RkOjp1bmlxdWVf
cHRyPE1lc3NhZ2VQb3J0Q2hhbm5lbEFycmF5PiYmLCBTZXJ2aWNlV29ya2VyT3JDbGllbnREYXRh
JiYgc291cmNlRGF0YSk7CiAKICAgICB2b2lkIGZpcmVJbnN0YWxsRXZlbnQoKTsKICAgICB2b2lk
IGZpcmVBY3RpdmF0ZUV2ZW50KCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJz
L3NlcnZpY2Uvc2VydmVyL1NXU2VydmVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2Vy
dmljZS9zZXJ2ZXIvU1dTZXJ2ZXIuY3BwCmluZGV4IGEzMzI1MThhMDMwMzBjMmNmY2ZiYjNlMGQ4
MGJmYTY4OWIzNDQyMTYuLjQyYzQ3MTEzYTcxNTAzODc4Mzk5NzdlNjc1MDM3NTQ4OWJiYjA1YTMg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9zZXJ2ZXIvU1dTZXJ2
ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9zZXJ2ZXIvU1dTZXJ2
ZXIuY3BwCkBAIC0zNDYsNyArMzQ2LDcgQEAgc3RkOjpvcHRpb25hbDxTZXJ2aWNlV29ya2VyQ2xp
ZW50RGF0YT4gU1dTZXJ2ZXI6OmZpbmRDbGllbnRCeUlkZW50aWZpZXIoY29uc3QgQ2wKICAgICAg
ICAgcmV0dXJuIGNsaWVudElkZW50aWZpZXIgPT0gY2xpZW50LmlkZW50aWZpZXI7CiAgICAgfSk7
CiAKLSAgICByZXR1cm4gKHBvc2l0aW9uICE9IG5vdEZvdW5kKSA/IHN0ZDo6bWFrZV9vcHRpb25h
bChjbGllbnRzW3Bvc2l0aW9uXS5kYXRhKSA6IHN0ZDo6bnVsbG9wdDsKKyAgICByZXR1cm4gKHBv
c2l0aW9uICE9IG5vdEZvdW5kKSA/IHN0ZDo6bWFrZV9vcHRpb25hbChjbGllbnRzW3Bvc2l0aW9u
XSkgOiBzdGQ6Om51bGxvcHQ7CiB9CiAKIC8vIGh0dHBzOi8vdzNjLmdpdGh1Yi5pby9TZXJ2aWNl
V29ya2VyLyNjbGllbnRzLWdldGFsbApAQCAtMzU4LDEzICszNTgsMTMgQEAgdm9pZCBTV1NlcnZl
cjo6bWF0Y2hBbGwoU1dTZXJ2ZXJXb3JrZXImIHdvcmtlciwgY29uc3QgU2VydmljZVdvcmtlckNs
aWVudFF1ZXJ5T3AKICAgICBhdXRvIGNsaWVudHMgPSBtX2NsaWVudHMuZmluZCh3b3JrZXIub3Jp
Z2luKCkpLT52YWx1ZS5jbGllbnRzOwogCiAgICAgaWYgKCFvcHRpb25zLmluY2x1ZGVVbmNvbnRy
b2xsZWQpIHsKLSAgICAgICAgY2xpZW50cy5yZW1vdmVBbGxNYXRjaGluZyhbJl0gKGNvbnN0IGF1
dG8mIGNsaWVudCkgewotICAgICAgICAgICAgcmV0dXJuIHdvcmtlci5pZGVudGlmaWVyKCkgIT0g
bV9jbGllbnRUb0NvbnRyb2xsaW5nV29ya2VyLmdldChjbGllbnQuaWRlbnRpZmllcik7CisgICAg
ICAgIGNsaWVudHMucmVtb3ZlQWxsTWF0Y2hpbmcoWyZdIChjb25zdCBhdXRvJiBjbGllbnREYXRh
KSB7CisgICAgICAgICAgICByZXR1cm4gd29ya2VyLmlkZW50aWZpZXIoKSAhPSBtX2NsaWVudFRv
Q29udHJvbGxpbmdXb3JrZXIuZ2V0KGNsaWVudERhdGEuaWRlbnRpZmllcik7CiAgICAgICAgIH0p
OwogICAgIH0KICAgICBpZiAob3B0aW9ucy50eXBlICE9IFNlcnZpY2VXb3JrZXJDbGllbnRUeXBl
OjpBbGwpIHsKLSAgICAgICAgY2xpZW50cy5yZW1vdmVBbGxNYXRjaGluZyhbJl0gKGNvbnN0IGF1
dG8mIGNsaWVudCkgewotICAgICAgICAgICAgcmV0dXJuIG9wdGlvbnMudHlwZSAhPSBjbGllbnQu
ZGF0YS50eXBlOworICAgICAgICBjbGllbnRzLnJlbW92ZUFsbE1hdGNoaW5nKFsmXSAoY29uc3Qg
YXV0byYgY2xpZW50RGF0YSkgeworICAgICAgICAgICAgcmV0dXJuIG9wdGlvbnMudHlwZSAhPSBj
bGllbnREYXRhLnR5cGU7CiAgICAgICAgIH0pOwogICAgIH0KICAgICBjYWxsYmFjayhXVEZNb3Zl
KGNsaWVudHMpKTsKQEAgLTM3OCwyMCArMzc4LDIwIEBAIHZvaWQgU1dTZXJ2ZXI6OmNsYWltKFNX
U2VydmVyV29ya2VyJiB3b3JrZXIpCiAgICAgICAgIHJldHVybjsKIAogICAgIGF1dG8mIGNsaWVu
dHMgPSBpdGVyYXRvci0+dmFsdWUuY2xpZW50czsKLSAgICBmb3IgKGF1dG8mIGNsaWVudCA6IGNs
aWVudHMpIHsKLSAgICAgICAgYXV0byogcmVnaXN0cmF0aW9uID0gZG9SZWdpc3RyYXRpb25NYXRj
aGluZyhvcmlnaW4udG9wT3JpZ2luLCBjbGllbnQuZGF0YS51cmwpOworICAgIGZvciAoYXV0byYg
Y2xpZW50RGF0YSA6IGNsaWVudHMpIHsKKyAgICAgICAgYXV0byogcmVnaXN0cmF0aW9uID0gZG9S
ZWdpc3RyYXRpb25NYXRjaGluZyhvcmlnaW4udG9wT3JpZ2luLCBjbGllbnREYXRhLnVybCk7CiAg
ICAgICAgIGlmICghKHJlZ2lzdHJhdGlvbiAmJiByZWdpc3RyYXRpb24tPmtleSgpID09IHdvcmtl
ci5yZWdpc3RyYXRpb25LZXkoKSkpCiAgICAgICAgICAgICBjb250aW51ZTsKIAotICAgICAgICBh
dXRvIHJlc3VsdCA9IG1fY2xpZW50VG9Db250cm9sbGluZ1dvcmtlci5hZGQoY2xpZW50LmlkZW50
aWZpZXIsIHdvcmtlci5pZGVudGlmaWVyKCkpOworICAgICAgICBhdXRvIHJlc3VsdCA9IG1fY2xp
ZW50VG9Db250cm9sbGluZ1dvcmtlci5hZGQoY2xpZW50RGF0YS5pZGVudGlmaWVyLCB3b3JrZXIu
aWRlbnRpZmllcigpKTsKICAgICAgICAgaWYgKCFyZXN1bHQuaXNOZXdFbnRyeSkgewogICAgICAg
ICAgICAgaWYgKHJlc3VsdC5pdGVyYXRvci0+dmFsdWUgPT0gd29ya2VyLmlkZW50aWZpZXIoKSkK
ICAgICAgICAgICAgICAgICBjb250aW51ZTsKICAgICAgICAgICAgIGlmIChhdXRvKiBjb250cm9s
bGluZ1JlZ2lzdHJhdGlvbiA9IHJlZ2lzdHJhdGlvbkZyb21TZXJ2aWNlV29ya2VySWRlbnRpZmll
cihyZXN1bHQuaXRlcmF0b3ItPnZhbHVlKSkKLSAgICAgICAgICAgICAgICBjb250cm9sbGluZ1Jl
Z2lzdHJhdGlvbi0+cmVtb3ZlQ2xpZW50VXNpbmdSZWdpc3RyYXRpb24oY2xpZW50LmlkZW50aWZp
ZXIpOworICAgICAgICAgICAgICAgIGNvbnRyb2xsaW5nUmVnaXN0cmF0aW9uLT5yZW1vdmVDbGll
bnRVc2luZ1JlZ2lzdHJhdGlvbihjbGllbnREYXRhLmlkZW50aWZpZXIpOwogICAgICAgICAgICAg
cmVzdWx0Lml0ZXJhdG9yLT52YWx1ZSA9IHdvcmtlci5pZGVudGlmaWVyKCk7CiAgICAgICAgIH0K
LSAgICAgICAgcmVnaXN0cmF0aW9uLT5jb250cm9sQ2xpZW50KGNsaWVudC5pZGVudGlmaWVyKTsK
KyAgICAgICAgcmVnaXN0cmF0aW9uLT5jb250cm9sQ2xpZW50KGNsaWVudERhdGEuaWRlbnRpZmll
cik7CiAgICAgfQogfQogCkBAIC02ODcsMTUgKzY4NywxNSBAQCBTV1NlcnZlclJlZ2lzdHJhdGlv
biogU1dTZXJ2ZXI6OnJlZ2lzdHJhdGlvbkZyb21TZXJ2aWNlV29ya2VySWRlbnRpZmllcihTZXJ2
aWNlVwogICAgIHJldHVybiBtX3JlZ2lzdHJhdGlvbnMuZ2V0KGl0ZXJhdG9yLT52YWx1ZS0+cmVn
aXN0cmF0aW9uS2V5KCkpOwogfQogCi12b2lkIFNXU2VydmVyOjpyZWdpc3RlclNlcnZpY2VXb3Jr
ZXJDbGllbnQoQ2xpZW50T3JpZ2luJiYgY2xpZW50T3JpZ2luLCBTZXJ2aWNlV29ya2VyQ2xpZW50
SWRlbnRpZmllciBjbGllbnRJZGVudGlmaWVyLCBTZXJ2aWNlV29ya2VyQ2xpZW50RGF0YSYmIGRh
dGEsIGNvbnN0IHN0ZDo6b3B0aW9uYWw8U2VydmljZVdvcmtlcklkZW50aWZpZXI+JiBjb250cm9s
bGluZ1NlcnZpY2VXb3JrZXJJZGVudGlmaWVyKQordm9pZCBTV1NlcnZlcjo6cmVnaXN0ZXJTZXJ2
aWNlV29ya2VyQ2xpZW50KENsaWVudE9yaWdpbiYmIGNsaWVudE9yaWdpbiwgU2VydmljZVdvcmtl
ckNsaWVudERhdGEmJiBkYXRhLCBjb25zdCBzdGQ6Om9wdGlvbmFsPFNlcnZpY2VXb3JrZXJJZGVu
dGlmaWVyPiYgY29udHJvbGxpbmdTZXJ2aWNlV29ya2VySWRlbnRpZmllcikKIHsKICAgICBhdXRv
JiBjbGllbnRzRGF0YSA9IG1fY2xpZW50cy5lbnN1cmUoV1RGTW92ZShjbGllbnRPcmlnaW4pLCBb
XSB7CiAgICAgICAgIHJldHVybiBDbGllbnRzIHsgfTsKICAgICB9KS5pdGVyYXRvci0+dmFsdWU7
CiAKLSAgICBjbGllbnRzRGF0YS5jbGllbnRzLmFwcGVuZChTZXJ2aWNlV29ya2VyQ2xpZW50SW5m
b3JtYXRpb24geyBjbGllbnRJZGVudGlmaWVyLCBXVEZNb3ZlKGRhdGEpIH0pOwotICAgIGlmIChj
bGllbnRzRGF0YS50ZXJtaW5hdGVTZXJ2aWNlV29ya2Vyc1RpbWVyKQotICAgICAgICBjbGllbnRz
RGF0YS50ZXJtaW5hdGVTZXJ2aWNlV29ya2Vyc1RpbWVyID0gbnVsbHB0cjsKKyAgICBhdXRvIGNs
aWVudElkZW50aWZpZXIgPSBkYXRhLmlkZW50aWZpZXI7CisgICAgY2xpZW50c0RhdGEuY2xpZW50
cy5hcHBlbmQoV1RGTW92ZShkYXRhKSk7CisgICAgY2xpZW50c0RhdGEudGVybWluYXRlU2Vydmlj
ZVdvcmtlcnNUaW1lciA9IG51bGxwdHI7CiAKICAgICBpZiAoIWNvbnRyb2xsaW5nU2VydmljZVdv
cmtlcklkZW50aWZpZXIpCiAgICAgICAgIHJldHVybjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3dvcmtlcnMvc2VydmljZS9zZXJ2ZXIvU1dTZXJ2ZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3dv
cmtlcnMvc2VydmljZS9zZXJ2ZXIvU1dTZXJ2ZXIuaAppbmRleCA5YTBkYmVkYmEwOWNkYjlhZjVi
NGRmM2I4NTcwMGZiYzdkYmNjZjc4Li4xYjJmN2RjODAzNWI0MTVlNmJmNmE5MmM5MzljMGMyMmNm
ZjE5Y2ZkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2Uvc2VydmVy
L1NXU2VydmVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL3NlcnZlci9T
V1NlcnZlci5oCkBAIC0xNTksNyArMTU5LDcgQEAgcHVibGljOgogICAgIAogICAgIFdFQkNPUkVf
RVhQT1JUIHN0YXRpYyBIYXNoU2V0PFNXU2VydmVyKj4mIGFsbFNlcnZlcnMoKTsKIAotICAgIFdF
QkNPUkVfRVhQT1JUIHZvaWQgcmVnaXN0ZXJTZXJ2aWNlV29ya2VyQ2xpZW50KENsaWVudE9yaWdp
biYmLCBTZXJ2aWNlV29ya2VyQ2xpZW50SWRlbnRpZmllciwgU2VydmljZVdvcmtlckNsaWVudERh
dGEmJiwgY29uc3Qgc3RkOjpvcHRpb25hbDxTZXJ2aWNlV29ya2VySWRlbnRpZmllcj4mIGNvbnRy
b2xsaW5nU2VydmljZVdvcmtlcklkZW50aWZpZXIpOworICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQg
cmVnaXN0ZXJTZXJ2aWNlV29ya2VyQ2xpZW50KENsaWVudE9yaWdpbiYmLCBTZXJ2aWNlV29ya2Vy
Q2xpZW50RGF0YSYmLCBjb25zdCBzdGQ6Om9wdGlvbmFsPFNlcnZpY2VXb3JrZXJJZGVudGlmaWVy
PiYgY29udHJvbGxpbmdTZXJ2aWNlV29ya2VySWRlbnRpZmllcik7CiAgICAgV0VCQ09SRV9FWFBP
UlQgdm9pZCB1bnJlZ2lzdGVyU2VydmljZVdvcmtlckNsaWVudChjb25zdCBDbGllbnRPcmlnaW4m
LCBTZXJ2aWNlV29ya2VyQ2xpZW50SWRlbnRpZmllcik7CiAKICAgICB1c2luZyBSdW5TZXJ2aWNl
V29ya2VyQ2FsbGJhY2sgPSBXVEY6OkZ1bmN0aW9uPHZvaWQoYm9vbCwgU1dTZXJ2ZXJUb0NvbnRl
eHRDb25uZWN0aW9uJik+OwpAQCAtMjA3LDcgKzIwNyw3IEBAIHByaXZhdGU6CiAgICAgSGFzaE1h
cDxTZXJ2aWNlV29ya2VySWRlbnRpZmllciwgUmVmPFNXU2VydmVyV29ya2VyPj4gbV9ydW5uaW5n
T3JUZXJtaW5hdGluZ1dvcmtlcnM7CiAKICAgICBzdHJ1Y3QgQ2xpZW50cyB7Ci0gICAgICAgIFZl
Y3RvcjxTZXJ2aWNlV29ya2VyQ2xpZW50SW5mb3JtYXRpb24+IGNsaWVudHM7CisgICAgICAgIFZl
Y3RvcjxTZXJ2aWNlV29ya2VyQ2xpZW50RGF0YT4gY2xpZW50czsKICAgICAgICAgc3RkOjp1bmlx
dWVfcHRyPFRpbWVyPiB0ZXJtaW5hdGVTZXJ2aWNlV29ya2Vyc1RpbWVyOwogICAgIH07CiAgICAg
SGFzaE1hcDxDbGllbnRPcmlnaW4sIENsaWVudHM+IG1fY2xpZW50czsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9zZXJ2ZXIvU1dTZXJ2ZXJUb0NvbnRleHRDb25u
ZWN0aW9uLmggYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2Uvc2VydmVyL1NXU2VydmVy
VG9Db250ZXh0Q29ubmVjdGlvbi5oCmluZGV4IGI3ZTYyNzFlODEyNzE3OTNlNTJmMGYyYTA4ZThk
MDNlNjdlYTcxZTguLjEzNWUyYzA2MGM3N2Y4MzU1ZTYyOGMzYzVlYzU1OTkxMzhiYWU2MjkgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9zZXJ2ZXIvU1dTZXJ2ZXJU
b0NvbnRleHRDb25uZWN0aW9uLmgKKysrIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNl
L3NlcnZlci9TV1NlcnZlclRvQ29udGV4dENvbm5lY3Rpb24uaApAQCAtNDEsNyArNDEsNiBAQCBu
YW1lc3BhY2UgV2ViQ29yZSB7CiBjbGFzcyBTV1NlcnZlcjsKIHN0cnVjdCBTZXJ2aWNlV29ya2Vy
Q2xpZW50RGF0YTsKIHN0cnVjdCBTZXJ2aWNlV29ya2VyQ2xpZW50SWRlbnRpZmllcjsKLXN0cnVj
dCBTZXJ2aWNlV29ya2VyQ2xpZW50SW5mb3JtYXRpb247CiBzdHJ1Y3QgU2VydmljZVdvcmtlckNv
bnRleHREYXRhOwogc3RydWN0IFNlcnZpY2VXb3JrZXJKb2JEYXRhSWRlbnRpZmllcjsKIApAQCAt
NTgsNyArNTcsNyBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB2b2lkIHRlcm1pbmF0ZVdvcmtlcihT
ZXJ2aWNlV29ya2VySWRlbnRpZmllcikgPSAwOwogICAgIHZpcnR1YWwgdm9pZCBzeW5jVGVybWlu
YXRlV29ya2VyKFNlcnZpY2VXb3JrZXJJZGVudGlmaWVyKSA9IDA7CiAgICAgdmlydHVhbCB2b2lk
IGZpbmRDbGllbnRCeUlkZW50aWZpZXJDb21wbGV0ZWQodWludDY0X3QgcmVxdWVzdElkZW50aWZp
ZXIsIGNvbnN0IHN0ZDo6b3B0aW9uYWw8U2VydmljZVdvcmtlckNsaWVudERhdGE+JiwgYm9vbCBo
YXNTZWN1cml0eUVycm9yKSA9IDA7Ci0gICAgdmlydHVhbCB2b2lkIG1hdGNoQWxsQ29tcGxldGVk
KHVpbnQ2NF90IHJlcXVlc3RJZGVudGlmaWVyLCBjb25zdCBWZWN0b3I8U2VydmljZVdvcmtlckNs
aWVudEluZm9ybWF0aW9uPiYpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgbWF0Y2hBbGxDb21wbGV0
ZWQodWludDY0X3QgcmVxdWVzdElkZW50aWZpZXIsIGNvbnN0IFZlY3RvcjxTZXJ2aWNlV29ya2Vy
Q2xpZW50RGF0YT4mKSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIGNsYWltQ29tcGxldGVkKHVpbnQ2
NF90IHJlcXVlc3RJZGVudGlmaWVyKSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIGRpZEZpbmlzaFNr
aXBXYWl0aW5nKHVpbnQ2NF90IGNhbGxiYWNrSUQpID0gMDsKIApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL3NlcnZlci9TV1NlcnZlcldvcmtlci5oIGIvU291cmNl
L1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL3NlcnZlci9TV1NlcnZlcldvcmtlci5oCmluZGV4IGZi
OGRmODQwNTE5NDAzNDI0ZDdjYjdhNmZhOGNmMTA4MmNhODBkZWYuLjEyN2E1ZDcwNTBlYjRmMTky
NDBjODAyZDFhODI0NjM3MTUyYjFjODggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3dvcmtl
cnMvc2VydmljZS9zZXJ2ZXIvU1dTZXJ2ZXJXb3JrZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS93
b3JrZXJzL3NlcnZpY2Uvc2VydmVyL1NXU2VydmVyV29ya2VyLmgKQEAgLTI3LDcgKzI3LDcgQEAK
IAogI2lmIEVOQUJMRShTRVJWSUNFX1dPUktFUikKIAotI2luY2x1ZGUgIlNlcnZpY2VXb3JrZXJD
bGllbnRJbmZvcm1hdGlvbi5oIgorI2luY2x1ZGUgIlNlcnZpY2VXb3JrZXJDbGllbnREYXRhLmgi
CiAjaW5jbHVkZSAiU2VydmljZVdvcmtlckRhdGEuaCIKICNpbmNsdWRlICJTZXJ2aWNlV29ya2Vy
SWRlbnRpZmllci5oIgogI2luY2x1ZGUgIlNlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb25LZXkuaCIK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2NyaXB0cy93ZWJraXQvbWVzc2FnZXMucHkgYi9T
b3VyY2UvV2ViS2l0L1NjcmlwdHMvd2Via2l0L21lc3NhZ2VzLnB5CmluZGV4IDRjZWQzNjI4MTNm
MmIxMmZiNzI3Mzg5ZTE5N2Q2Njg5MGU5NWM1MTguLjVhNzM4MTAwYjk3NzRhOWQyMjRjZjJiMmU5
OWVjZDY2NDg3YWE2OTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2NyaXB0cy93ZWJraXQv
bWVzc2FnZXMucHkKKysrIGIvU291cmNlL1dlYktpdC9TY3JpcHRzL3dlYmtpdC9tZXNzYWdlcy5w
eQpAQCAtMTg2LDYgKzE4Niw3IEBAIGRlZiBmb3J3YXJkX2RlY2xhcmF0aW9uc19hbmRfaGVhZGVy
cyhyZWNlaXZlcik6CiAgICAgbm9fZm9yd2FyZF9kZWNsYXJhdGlvbl90eXBlcyA9IGZyb3plbnNl
dChbCiAgICAgICAgICdXZWJDb3JlOjpEb2N1bWVudElkZW50aWZpZXInLAogICAgICAgICAnV2Vi
Q29yZTo6U2VydmljZVdvcmtlcklkZW50aWZpZXInLAorICAgICAgICAnV2ViQ29yZTo6U2Vydmlj
ZVdvcmtlck9yQ2xpZW50RGF0YScsCiAgICAgICAgICdXZWJDb3JlOjpTZXJ2aWNlV29ya2VyUmVn
aXN0cmF0aW9uSWRlbnRpZmllcicsCiAgICAgICAgICdXZWJDb3JlOjpTV1NlcnZlckNvbm5lY3Rp
b25JZGVudGlmaWVyJywKICAgICBdKQpAQCAtMzgyLDYgKzM4Myw3IEBAIGRlZiBoZWFkZXJzX2Zv
cl90eXBlKHR5cGUpOgogICAgICAgICAnV2ViQ29yZTo6UG9saWN5QWN0aW9uJzogWyc8V2ViQ29y
ZS9GcmFtZUxvYWRlclR5cGVzLmg+J10sCiAgICAgICAgICdXZWJDb3JlOjpSZWNlbnRTZWFyY2gn
OiBbJzxXZWJDb3JlL1NlYXJjaFBvcHVwTWVudS5oPiddLAogICAgICAgICAnV2ViQ29yZTo6U1dT
ZXJ2ZXJDb25uZWN0aW9uSWRlbnRpZmllcic6IFsnPFdlYkNvcmUvU2VydmljZVdvcmtlclR5cGVz
Lmg+J10sCisgICAgICAgICdXZWJDb3JlOjpTZXJ2aWNlV29ya2VyT3JDbGllbnREYXRhJzogWyc8
V2ViQ29yZS9TZXJ2aWNlV29ya2VyVHlwZXMuaD4nLCAnPFdlYkNvcmUvU2VydmljZVdvcmtlckNs
aWVudERhdGEuaD4nLCAnPFdlYkNvcmUvU2VydmljZVdvcmtlckRhdGEuaD4nXSwKICAgICAgICAg
J1dlYkNvcmU6OlNlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb25JZGVudGlmaWVyJzogWyc8V2ViQ29y
ZS9TZXJ2aWNlV29ya2VyVHlwZXMuaD4nXSwKICAgICAgICAgJ1dlYkNvcmU6OlNlcnZpY2VXb3Jr
ZXJSZWdpc3RyYXRpb25TdGF0ZSc6IFsnPFdlYkNvcmUvU2VydmljZVdvcmtlclR5cGVzLmg+J10s
CiAgICAgICAgICdXZWJDb3JlOjpTZXJ2aWNlV29ya2VyU3RhdGUnOiBbJzxXZWJDb3JlL1NlcnZp
Y2VXb3JrZXJUeXBlcy5oPiddLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvV2Vi
Q29yZUFyZ3VtZW50Q29kZXJzLmNwcCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkNvcmVBcmd1
bWVudENvZGVycy5jcHAKaW5kZXggMDBhODI0YTM4NjljODA4ZDU5YjJiYmI1OWU5NTlkYzg1NjA5
YmZjMi4uMDgzMGM5YWY3ODZjNTc3YjJkZGJhYzZjZmI1NTFhN2EwYWEzYmFlMSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViQ29yZUFyZ3VtZW50Q29kZXJzLmNwcAorKysgYi9T
b3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJDb3JlQXJndW1lbnRDb2RlcnMuY3BwCkBAIC02NSw2ICs2
NSw4IEBACiAjaW5jbHVkZSA8V2ViQ29yZS9TY3JvbGxpbmdDb25zdHJhaW50cy5oPgogI2luY2x1
ZGUgPFdlYkNvcmUvU2Nyb2xsaW5nQ29vcmRpbmF0b3IuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1Nl
YXJjaFBvcHVwTWVudS5oPgorI2luY2x1ZGUgPFdlYkNvcmUvU2VydmljZVdvcmtlckNsaWVudERh
dGEuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL1NlcnZpY2VXb3JrZXJEYXRhLmg+CiAjaW5jbHVkZSA8
V2ViQ29yZS9UZXh0Q2hlY2tlckNsaWVudC5oPgogI2luY2x1ZGUgPFdlYkNvcmUvVGV4dEluZGlj
YXRvci5oPgogI2luY2x1ZGUgPFdlYkNvcmUvVGltaW5nRnVuY3Rpb24uaD4KQEAgLTI2ODQsNiAr
MjY4Niw0MSBAQCBib29sIEFyZ3VtZW50Q29kZXI8SURCS2V5UGF0aD46OmRlY29kZShEZWNvZGVy
JiBkZWNvZGVyLCBJREJLZXlQYXRoJiBrZXlQYXRoKQogfQogI2VuZGlmCiAKKyNpZiBFTkFCTEUo
U0VSVklDRV9XT1JLRVIpCit2b2lkIEFyZ3VtZW50Q29kZXI8U2VydmljZVdvcmtlck9yQ2xpZW50
RGF0YT46OmVuY29kZShFbmNvZGVyJiBlbmNvZGVyLCBjb25zdCBTZXJ2aWNlV29ya2VyT3JDbGll
bnREYXRhJiBkYXRhKQoreworICAgIGJvb2wgaXNTZXJ2aWNlV29ya2VyRGF0YSA9IFdURjo6aG9s
ZHNfYWx0ZXJuYXRpdmU8U2VydmljZVdvcmtlckRhdGE+KGRhdGEpOworICAgIGVuY29kZXIgPDwg
aXNTZXJ2aWNlV29ya2VyRGF0YTsKKyAgICBpZiAoaXNTZXJ2aWNlV29ya2VyRGF0YSkKKyAgICAg
ICAgZW5jb2RlciA8PCBXVEY6OmdldDxTZXJ2aWNlV29ya2VyRGF0YT4oZGF0YSk7CisgICAgZWxz
ZQorICAgICAgICBlbmNvZGVyIDw8IFdURjo6Z2V0PFNlcnZpY2VXb3JrZXJDbGllbnREYXRhPihk
YXRhKTsKK30KKworYm9vbCBBcmd1bWVudENvZGVyPFNlcnZpY2VXb3JrZXJPckNsaWVudERhdGE+
OjpkZWNvZGUoRGVjb2RlciYgZGVjb2RlciwgU2VydmljZVdvcmtlck9yQ2xpZW50RGF0YSYgZGF0
YSkKK3sKKyAgICBib29sIGlzU2VydmljZVdvcmtlckRhdGE7CisgICAgaWYgKCFkZWNvZGVyLmRl
Y29kZShpc1NlcnZpY2VXb3JrZXJEYXRhKSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIGlm
IChpc1NlcnZpY2VXb3JrZXJEYXRhKSB7CisgICAgICAgIHN0ZDo6b3B0aW9uYWw8U2VydmljZVdv
cmtlckRhdGE+IHdvcmtlckRhdGE7CisgICAgICAgIGRlY29kZXIgPj4gd29ya2VyRGF0YTsKKyAg
ICAgICAgaWYgKCF3b3JrZXJEYXRhKQorICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworCisgICAg
ICAgIGRhdGEgPSBXVEZNb3ZlKCp3b3JrZXJEYXRhKTsKKyAgICB9IGVsc2UgeworICAgICAgICBz
dGQ6Om9wdGlvbmFsPFNlcnZpY2VXb3JrZXJDbGllbnREYXRhPiBjbGllbnREYXRhOworICAgICAg
ICBkZWNvZGVyID4+IGNsaWVudERhdGE7CisgICAgICAgIGlmICghY2xpZW50RGF0YSkKKyAgICAg
ICAgICAgIHJldHVybiBmYWxzZTsKKworICAgICAgICBkYXRhID0gV1RGTW92ZSgqY2xpZW50RGF0
YSk7CisgICAgfQorICAgIHJldHVybiB0cnVlOworfQorI2VuZGlmCisKICNpZiBFTkFCTEUoQ1NT
X1NDUk9MTF9TTkFQKQogCiB2b2lkIEFyZ3VtZW50Q29kZXI8U2Nyb2xsT2Zmc2V0UmFuZ2U8Zmxv
YXQ+Pjo6ZW5jb2RlKEVuY29kZXImIGVuY29kZXIsIGNvbnN0IFNjcm9sbE9mZnNldFJhbmdlPGZs
b2F0PiYgcmFuZ2UpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJDb3JlQXJn
dW1lbnRDb2RlcnMuaCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkNvcmVBcmd1bWVudENvZGVy
cy5oCmluZGV4IGExZTdhMzk3MmIyN2YwNTFlNmYxOTg0NWRmYWExNDQ0N2Q4NTc3ZTIuLjkxMGE0
ZWNkNmFhMmQwZWM4NDZlY2QzMGVjYzJiM2ExYWJiZjI3ZGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvU2hhcmVkL1dlYkNvcmVBcmd1bWVudENvZGVycy5oCisrKyBiL1NvdXJjZS9XZWJLaXQv
U2hhcmVkL1dlYkNvcmVBcmd1bWVudENvZGVycy5oCkBAIC0zOSw2ICszOSw3IEBACiAjaW5jbHVk
ZSA8V2ViQ29yZS9QYXltZW50SGVhZGVycy5oPgogI2luY2x1ZGUgPFdlYkNvcmUvUmVhbHRpbWVN
ZWRpYVNvdXJjZS5oPgogI2luY2x1ZGUgPFdlYkNvcmUvU2Nyb2xsU25hcE9mZnNldHNJbmZvLmg+
CisjaW5jbHVkZSA8V2ViQ29yZS9TZXJ2aWNlV29ya2VyVHlwZXMuaD4KICNpbmNsdWRlIDxXZWJD
b3JlL1N0b3JlZENyZWRlbnRpYWxzUG9saWN5Lmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9Xb3JrZXJU
eXBlLmg+CiAKQEAgLTY2Nyw2ICs2NjgsMTUgQEAgdGVtcGxhdGU8PiBzdHJ1Y3QgQXJndW1lbnRD
b2RlcjxXZWJDb3JlOjpJREJLZXlQYXRoPiB7CiAKICNlbmRpZgogCisjaWYgRU5BQkxFKFNFUlZJ
Q0VfV09SS0VSKQorCit0ZW1wbGF0ZTw+IHN0cnVjdCBBcmd1bWVudENvZGVyPFdlYkNvcmU6OlNl
cnZpY2VXb3JrZXJPckNsaWVudERhdGE+IHsKKyAgICBzdGF0aWMgdm9pZCBlbmNvZGUoRW5jb2Rl
ciYsIGNvbnN0IFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJPckNsaWVudERhdGEmKTsKKyAgICBzdGF0
aWMgYm9vbCBkZWNvZGUoRGVjb2RlciYsIFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJPckNsaWVudERh
dGEmKTsKK307CisKKyNlbmRpZgorCiAjaWYgRU5BQkxFKENTU19TQ1JPTExfU05BUCkKIAogdGVt
cGxhdGU8PiBzdHJ1Y3QgQXJndW1lbnRDb2RlcjxXZWJDb3JlOjpTY3JvbGxPZmZzZXRSYW5nZTxm
bG9hdD4+IHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU3RvcmFnZVByb2Nlc3MvU2Vydmlj
ZVdvcmtlci9XZWJTV1NlcnZlckNvbm5lY3Rpb24uY3BwIGIvU291cmNlL1dlYktpdC9TdG9yYWdl
UHJvY2Vzcy9TZXJ2aWNlV29ya2VyL1dlYlNXU2VydmVyQ29ubmVjdGlvbi5jcHAKaW5kZXggOTBj
OTdiM2QyMTliZWU0YmI5YWEyYjJiMzViMjdiYmYzMjY3MzhjNy4uNTVhYjcxOTU4NDRlNzEyMThj
MGNjNDc1YTQ2NGMzZjgwYTFmMmI3ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9TdG9yYWdl
UHJvY2Vzcy9TZXJ2aWNlV29ya2VyL1dlYlNXU2VydmVyQ29ubmVjdGlvbi5jcHAKKysrIGIvU291
cmNlL1dlYktpdC9TdG9yYWdlUHJvY2Vzcy9TZXJ2aWNlV29ya2VyL1dlYlNXU2VydmVyQ29ubmVj
dGlvbi5jcHAKQEAgLTY4LDcgKzY4LDcgQEAgV2ViU1dTZXJ2ZXJDb25uZWN0aW9uOjp+V2ViU1dT
ZXJ2ZXJDb25uZWN0aW9uKCkKIHsKICAgICBTdG9yYWdlUHJvY2Vzczo6c2luZ2xldG9uKCkudW5y
ZWdpc3RlclNXU2VydmVyQ29ubmVjdGlvbigqdGhpcyk7CiAgICAgZm9yIChhdXRvIGtleVZhbHVl
IDogbV9jbGllbnRPcmlnaW5zKQotICAgICAgICBzZXJ2ZXIoKS51bnJlZ2lzdGVyU2VydmljZVdv
cmtlckNsaWVudChrZXlWYWx1ZS52YWx1ZSwgU2VydmljZVdvcmtlckNsaWVudElkZW50aWZpZXIg
eyBpZGVudGlmaWVyKCksIGtleVZhbHVlLmtleSB9KTsKKyAgICAgICAgc2VydmVyKCkudW5yZWdp
c3RlclNlcnZpY2VXb3JrZXJDbGllbnQoa2V5VmFsdWUudmFsdWUsIGtleVZhbHVlLmtleSk7CiB9
CiAKIHZvaWQgV2ViU1dTZXJ2ZXJDb25uZWN0aW9uOjpkaXNjb25uZWN0ZWRGcm9tV2ViUHJvY2Vz
cygpCkBAIC0xMjcsMTIgKzEyNywxMyBAQCB2b2lkIFdlYlNXU2VydmVyQ29ubmVjdGlvbjo6c3Rh
cnRGZXRjaCh1aW50NjRfdCBmZXRjaElkZW50aWZpZXIsIFNlcnZpY2VXb3JrZXJJZAogICAgIH0p
OwogfQogCi12b2lkIFdlYlNXU2VydmVyQ29ubmVjdGlvbjo6cG9zdE1lc3NhZ2VUb1NlcnZpY2VX
b3JrZXJGcm9tQ2xpZW50KFNlcnZpY2VXb3JrZXJJZGVudGlmaWVyIGRlc3RpbmF0aW9uSWRlbnRp
ZmllciwgSVBDOjpEYXRhUmVmZXJlbmNlJiYgbWVzc2FnZSwgU2VydmljZVdvcmtlckNsaWVudElk
ZW50aWZpZXIgc291cmNlSWRlbnRpZmllciwgU2VydmljZVdvcmtlckNsaWVudERhdGEmJiBzb3Vy
Y2VEYXRhKQorLy8gRklYTUU6IFdlIHNob3VsZCBiZSBhYmxlIHRvIG9ubHkgcGFzcyBpbiB0aGUg
U2VydmljZVdvcmtlckNsaWVudElkZW50aWZpZXIgaGVyZSBhbmQgbG9vayB1cCB0aGUgY2xpZW50
RGF0YSBmcm9tIHRoZSBTV1NlcnZlci4KK3ZvaWQgV2ViU1dTZXJ2ZXJDb25uZWN0aW9uOjpwb3N0
TWVzc2FnZVRvU2VydmljZVdvcmtlckZyb21DbGllbnQoU2VydmljZVdvcmtlcklkZW50aWZpZXIg
ZGVzdGluYXRpb25JZGVudGlmaWVyLCBJUEM6OkRhdGFSZWZlcmVuY2UmJiBtZXNzYWdlLCBTZXJ2
aWNlV29ya2VyQ2xpZW50SWRlbnRpZmllciwgU2VydmljZVdvcmtlckNsaWVudERhdGEmJiBzb3Vy
Y2VEYXRhKQogewogICAgIC8vIEl0J3MgcG9zc2libGUgdGhpcyBzcGVjaWZpYyB3b3JrZXIgY2Fu
bm90IGJlIHJlLXJ1biAoZS5nLiBpdHMgcmVnaXN0cmF0aW9uIGhhcyBiZWVuIHJlbW92ZWQpCi0g
ICAgc2VydmVyKCkucnVuU2VydmljZVdvcmtlcklmTmVjZXNzYXJ5KGRlc3RpbmF0aW9uSWRlbnRp
ZmllciwgW2Rlc3RpbmF0aW9uSWRlbnRpZmllciwgbWVzc2FnZSA9IG1lc3NhZ2UudmVjdG9yKCks
IHNvdXJjZUlkZW50aWZpZXIsIHNvdXJjZURhdGEgPSBXVEZNb3ZlKHNvdXJjZURhdGEpXShib29s
IHN1Y2Nlc3MsIGF1dG8mIGNvbnRleHRDb25uZWN0aW9uKSBtdXRhYmxlIHsKKyAgICBzZXJ2ZXIo
KS5ydW5TZXJ2aWNlV29ya2VySWZOZWNlc3NhcnkoZGVzdGluYXRpb25JZGVudGlmaWVyLCBbZGVz
dGluYXRpb25JZGVudGlmaWVyLCBtZXNzYWdlID0gbWVzc2FnZS52ZWN0b3IoKSwgc291cmNlRGF0
YSA9IFdURk1vdmUoc291cmNlRGF0YSldKGJvb2wgc3VjY2VzcywgYXV0byYgY29udGV4dENvbm5l
Y3Rpb24pIG11dGFibGUgewogICAgICAgICBpZiAoc3VjY2VzcykKLSAgICAgICAgICAgIHNlbmRU
b0NvbnRleHRQcm9jZXNzKGNvbnRleHRDb25uZWN0aW9uLCBNZXNzYWdlczo6V2ViU1dDb250ZXh0
TWFuYWdlckNvbm5lY3Rpb246OlBvc3RNZXNzYWdlVG9TZXJ2aWNlV29ya2VyRnJvbUNsaWVudCB7
IGRlc3RpbmF0aW9uSWRlbnRpZmllciwgbWVzc2FnZSwgc291cmNlSWRlbnRpZmllciwgV1RGTW92
ZShzb3VyY2VEYXRhKSB9KTsKKyAgICAgICAgICAgIHNlbmRUb0NvbnRleHRQcm9jZXNzKGNvbnRl
eHRDb25uZWN0aW9uLCBNZXNzYWdlczo6V2ViU1dDb250ZXh0TWFuYWdlckNvbm5lY3Rpb246OlBv
c3RNZXNzYWdlVG9TZXJ2aWNlV29ya2VyIHsgZGVzdGluYXRpb25JZGVudGlmaWVyLCBtZXNzYWdl
LCBXVEZNb3ZlKHNvdXJjZURhdGEpIH0pOwogICAgIH0pOwogfQogCkBAIC0xNDcsNyArMTQ4LDcg
QEAgdm9pZCBXZWJTV1NlcnZlckNvbm5lY3Rpb246OnBvc3RNZXNzYWdlVG9TZXJ2aWNlV29ya2Vy
RnJvbVNlcnZpY2VXb3JrZXIoU2VydmljZVcKICAgICAgICAgaWYgKCFzdWNjZXNzKQogICAgICAg
ICAgICAgcmV0dXJuOwogCi0gICAgICAgIHNlbmRUb0NvbnRleHRQcm9jZXNzKGNvbnRleHRDb25u
ZWN0aW9uLCBNZXNzYWdlczo6V2ViU1dDb250ZXh0TWFuYWdlckNvbm5lY3Rpb246OlBvc3RNZXNz
YWdlVG9TZXJ2aWNlV29ya2VyRnJvbVNlcnZpY2VXb3JrZXIgeyBkZXN0aW5hdGlvbklkZW50aWZp
ZXIsIG1lc3NhZ2UsIFdURk1vdmUoc291cmNlRGF0YSkgfSk7CisgICAgICAgIHNlbmRUb0NvbnRl
eHRQcm9jZXNzKGNvbnRleHRDb25uZWN0aW9uLCBNZXNzYWdlczo6V2ViU1dDb250ZXh0TWFuYWdl
ckNvbm5lY3Rpb246OlBvc3RNZXNzYWdlVG9TZXJ2aWNlV29ya2VyIHsgZGVzdGluYXRpb25JZGVu
dGlmaWVyLCBtZXNzYWdlLCBXVEZNb3ZlKHNvdXJjZURhdGEpIH0pOwogICAgIH0pOwogfQogCkBA
IC0yMTAsMjAgKzIxMSwyMCBAQCB2b2lkIFdlYlNXU2VydmVyQ29ubmVjdGlvbjo6Z2V0UmVnaXN0
cmF0aW9ucyh1aW50NjRfdCByZWdpc3RyYXRpb25NYXRjaFJlcXVlc3RJZAogICAgIHNlbmQoTWVz
c2FnZXM6OldlYlNXQ2xpZW50Q29ubmVjdGlvbjo6RGlkR2V0UmVnaXN0cmF0aW9ucyB7IHJlZ2lz
dHJhdGlvbk1hdGNoUmVxdWVzdElkZW50aWZpZXIsIHJlZ2lzdHJhdGlvbnMgfSk7CiB9CiAKLXZv
aWQgV2ViU1dTZXJ2ZXJDb25uZWN0aW9uOjpyZWdpc3RlclNlcnZpY2VXb3JrZXJDbGllbnQoU2Vj
dXJpdHlPcmlnaW5EYXRhJiYgdG9wT3JpZ2luLCBEb2N1bWVudElkZW50aWZpZXIgY29udGV4dElk
ZW50aWZpZXIsIFNlcnZpY2VXb3JrZXJDbGllbnREYXRhJiYgZGF0YSwgY29uc3Qgc3RkOjpvcHRp
b25hbDxTZXJ2aWNlV29ya2VySWRlbnRpZmllcj4mIGNvbnRyb2xsaW5nU2VydmljZVdvcmtlcklk
ZW50aWZpZXIpCit2b2lkIFdlYlNXU2VydmVyQ29ubmVjdGlvbjo6cmVnaXN0ZXJTZXJ2aWNlV29y
a2VyQ2xpZW50KFNlY3VyaXR5T3JpZ2luRGF0YSYmIHRvcE9yaWdpbiwgU2VydmljZVdvcmtlckNs
aWVudERhdGEmJiBkYXRhLCBjb25zdCBzdGQ6Om9wdGlvbmFsPFNlcnZpY2VXb3JrZXJJZGVudGlm
aWVyPiYgY29udHJvbGxpbmdTZXJ2aWNlV29ya2VySWRlbnRpZmllcikKIHsKICAgICBhdXRvIGNs
aWVudE9yaWdpbiA9IENsaWVudE9yaWdpbiB7IFdURk1vdmUodG9wT3JpZ2luKSwgU2VjdXJpdHlP
cmlnaW5EYXRhOjpmcm9tU2VjdXJpdHlPcmlnaW4oU2VjdXJpdHlPcmlnaW46OmNyZWF0ZShkYXRh
LnVybCkpIH07Ci0gICAgbV9jbGllbnRPcmlnaW5zLmFkZChjb250ZXh0SWRlbnRpZmllciwgY2xp
ZW50T3JpZ2luKTsKLSAgICBzZXJ2ZXIoKS5yZWdpc3RlclNlcnZpY2VXb3JrZXJDbGllbnQoV1RG
TW92ZShjbGllbnRPcmlnaW4pLCBTZXJ2aWNlV29ya2VyQ2xpZW50SWRlbnRpZmllciB7IHRoaXMt
PmlkZW50aWZpZXIoKSwgY29udGV4dElkZW50aWZpZXIgfSAsIFdURk1vdmUoZGF0YSksIGNvbnRy
b2xsaW5nU2VydmljZVdvcmtlcklkZW50aWZpZXIpOworICAgIG1fY2xpZW50T3JpZ2lucy5hZGQo
ZGF0YS5pZGVudGlmaWVyLCBjbGllbnRPcmlnaW4pOworICAgIHNlcnZlcigpLnJlZ2lzdGVyU2Vy
dmljZVdvcmtlckNsaWVudChXVEZNb3ZlKGNsaWVudE9yaWdpbiksIFdURk1vdmUoZGF0YSksIGNv
bnRyb2xsaW5nU2VydmljZVdvcmtlcklkZW50aWZpZXIpOwogfQogCi12b2lkIFdlYlNXU2VydmVy
Q29ubmVjdGlvbjo6dW5yZWdpc3RlclNlcnZpY2VXb3JrZXJDbGllbnQoRG9jdW1lbnRJZGVudGlm
aWVyIGNvbnRleHRJZGVudGlmaWVyKQordm9pZCBXZWJTV1NlcnZlckNvbm5lY3Rpb246OnVucmVn
aXN0ZXJTZXJ2aWNlV29ya2VyQ2xpZW50KGNvbnN0IFNlcnZpY2VXb3JrZXJDbGllbnRJZGVudGlm
aWVyJiBjbGllbnRJZGVudGlmaWVyKQogewotICAgIGF1dG8gaXRlcmF0b3IgPSBtX2NsaWVudE9y
aWdpbnMuZmluZChjb250ZXh0SWRlbnRpZmllcik7CisgICAgYXV0byBpdGVyYXRvciA9IG1fY2xp
ZW50T3JpZ2lucy5maW5kKGNsaWVudElkZW50aWZpZXIpOwogICAgIGlmIChpdGVyYXRvciA9PSBt
X2NsaWVudE9yaWdpbnMuZW5kKCkpCiAgICAgICAgIHJldHVybjsKIAotICAgIHNlcnZlcigpLnVu
cmVnaXN0ZXJTZXJ2aWNlV29ya2VyQ2xpZW50KGl0ZXJhdG9yLT52YWx1ZSwgU2VydmljZVdvcmtl
ckNsaWVudElkZW50aWZpZXIgeyB0aGlzLT5pZGVudGlmaWVyKCksIGNvbnRleHRJZGVudGlmaWVy
IH0pOworICAgIHNlcnZlcigpLnVucmVnaXN0ZXJTZXJ2aWNlV29ya2VyQ2xpZW50KGl0ZXJhdG9y
LT52YWx1ZSwgY2xpZW50SWRlbnRpZmllcik7CiAgICAgbV9jbGllbnRPcmlnaW5zLnJlbW92ZShp
dGVyYXRvcik7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU3RvcmFnZVByb2Nlc3Mv
U2VydmljZVdvcmtlci9XZWJTV1NlcnZlckNvbm5lY3Rpb24uaCBiL1NvdXJjZS9XZWJLaXQvU3Rv
cmFnZVByb2Nlc3MvU2VydmljZVdvcmtlci9XZWJTV1NlcnZlckNvbm5lY3Rpb24uaAppbmRleCBk
ZWZkM2RkOGRkYmRkN2NiM2FiM2JhMGFmOTkxMDE1MjgxZTljY2FkLi5hNGU0OTk3MWViODJiN2Vl
OWVlMjJmOTI1ZjgzM2VjYTM0NjlmN2YwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1N0b3Jh
Z2VQcm9jZXNzL1NlcnZpY2VXb3JrZXIvV2ViU1dTZXJ2ZXJDb25uZWN0aW9uLmgKKysrIGIvU291
cmNlL1dlYktpdC9TdG9yYWdlUHJvY2Vzcy9TZXJ2aWNlV29ya2VyL1dlYlNXU2VydmVyQ29ubmVj
dGlvbi5oCkBAIC04OSw4ICs4OSw4IEBAIHByaXZhdGU6CiAgICAgdm9pZCBtYXRjaFJlZ2lzdHJh
dGlvbih1aW50NjRfdCByZWdpc3RyYXRpb25NYXRjaFJlcXVlc3RJZGVudGlmaWVyLCBjb25zdCBX
ZWJDb3JlOjpTZWN1cml0eU9yaWdpbkRhdGEmIHRvcE9yaWdpbiwgY29uc3QgV2ViQ29yZTo6VVJM
JiBjbGllbnRVUkwpOwogICAgIHZvaWQgZ2V0UmVnaXN0cmF0aW9ucyh1aW50NjRfdCByZWdpc3Ry
YXRpb25NYXRjaFJlcXVlc3RJZGVudGlmaWVyLCBjb25zdCBXZWJDb3JlOjpTZWN1cml0eU9yaWdp
bkRhdGEmIHRvcE9yaWdpbiwgY29uc3QgV2ViQ29yZTo6VVJMJiBjbGllbnRVUkwpOwogCi0gICAg
dm9pZCByZWdpc3RlclNlcnZpY2VXb3JrZXJDbGllbnQoV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW5E
YXRhJiYgdG9wT3JpZ2luLCBXZWJDb3JlOjpEb2N1bWVudElkZW50aWZpZXIsIFdlYkNvcmU6OlNl
cnZpY2VXb3JrZXJDbGllbnREYXRhJiYsIGNvbnN0IHN0ZDo6b3B0aW9uYWw8V2ViQ29yZTo6U2Vy
dmljZVdvcmtlcklkZW50aWZpZXI+Jik7Ci0gICAgdm9pZCB1bnJlZ2lzdGVyU2VydmljZVdvcmtl
ckNsaWVudChXZWJDb3JlOjpEb2N1bWVudElkZW50aWZpZXIpOworICAgIHZvaWQgcmVnaXN0ZXJT
ZXJ2aWNlV29ya2VyQ2xpZW50KFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0YSYmIHRvcE9yaWdp
biwgV2ViQ29yZTo6U2VydmljZVdvcmtlckNsaWVudERhdGEmJiwgY29uc3Qgc3RkOjpvcHRpb25h
bDxXZWJDb3JlOjpTZXJ2aWNlV29ya2VySWRlbnRpZmllcj4mKTsKKyAgICB2b2lkIHVucmVnaXN0
ZXJTZXJ2aWNlV29ya2VyQ2xpZW50KGNvbnN0IFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJDbGllbnRJ
ZGVudGlmaWVyJik7CiAKICAgICBJUEM6OkNvbm5lY3Rpb24qIG1lc3NhZ2VTZW5kZXJDb25uZWN0
aW9uKCkgZmluYWwgeyByZXR1cm4gbV9jb250ZW50Q29ubmVjdGlvbi5wdHIoKTsgfQogICAgIHVp
bnQ2NF90IG1lc3NhZ2VTZW5kZXJEZXN0aW5hdGlvbklEKCkgZmluYWwgeyByZXR1cm4gaWRlbnRp
ZmllcigpLnRvVUludDY0KCk7IH0KQEAgLTEwMCw3ICsxMDAsNyBAQCBwcml2YXRlOgogCiAgICAg
UEFMOjpTZXNzaW9uSUQgbV9zZXNzaW9uSUQ7CiAgICAgUmVmPElQQzo6Q29ubmVjdGlvbj4gbV9j
b250ZW50Q29ubmVjdGlvbjsKLSAgICBIYXNoTWFwPFdlYkNvcmU6OkRvY3VtZW50SWRlbnRpZmll
ciwgV2ViQ29yZTo6Q2xpZW50T3JpZ2luPiBtX2NsaWVudE9yaWdpbnM7CisgICAgSGFzaE1hcDxX
ZWJDb3JlOjpTZXJ2aWNlV29ya2VyQ2xpZW50SWRlbnRpZmllciwgV2ViQ29yZTo6Q2xpZW50T3Jp
Z2luPiBtX2NsaWVudE9yaWdpbnM7CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvU3RvcmFnZVByb2Nlc3MvU2VydmljZVdvcmtlci9XZWJTV1Nl
cnZlckNvbm5lY3Rpb24ubWVzc2FnZXMuaW4gYi9Tb3VyY2UvV2ViS2l0L1N0b3JhZ2VQcm9jZXNz
L1NlcnZpY2VXb3JrZXIvV2ViU1dTZXJ2ZXJDb25uZWN0aW9uLm1lc3NhZ2VzLmluCmluZGV4IDU1
ZDAxOWI5NmYyM2UyOTc3OTRiZDliMTY4MzVlNTM3YmVlNTI5NWIuLmI0MDI0YWI3ZTdiMTkyOWQ4
NDYxZjBiZDIxZjNiYWRkZmU1YTU0NGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU3RvcmFn
ZVByb2Nlc3MvU2VydmljZVdvcmtlci9XZWJTV1NlcnZlckNvbm5lY3Rpb24ubWVzc2FnZXMuaW4K
KysrIGIvU291cmNlL1dlYktpdC9TdG9yYWdlUHJvY2Vzcy9TZXJ2aWNlV29ya2VyL1dlYlNXU2Vy
dmVyQ29ubmVjdGlvbi5tZXNzYWdlcy5pbgpAQCAtMzAsNiArMzAsOCBAQCBtZXNzYWdlcyAtPiBX
ZWJTV1NlcnZlckNvbm5lY3Rpb24gewogICAgIFJlbW92ZVNlcnZpY2VXb3JrZXJSZWdpc3RyYXRp
b25JblNlcnZlcihXZWJDb3JlOjpTZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uSWRlbnRpZmllciBp
ZGVudGlmaWVyKQogCiAgICAgU3RhcnRGZXRjaCh1aW50NjRfdCBpZGVudGlmaWVyLCBXZWJDb3Jl
OjpTZXJ2aWNlV29ya2VySWRlbnRpZmllciBzZXJ2aWNlV29ya2VySWRlbnRpZmllciwgV2ViQ29y
ZTo6UmVzb3VyY2VSZXF1ZXN0IHJlcXVlc3QsIHN0cnVjdCBXZWJDb3JlOjpGZXRjaE9wdGlvbnMg
b3B0aW9ucywgSVBDOjpGb3JtRGF0YVJlZmVyZW5jZSByZXF1ZXN0Qm9keSkKKworICAgICMgRklY
TUU6IFdlIHNob3VsZCBiZSBhYmxlIHRvIG1lcmdlIHRoZSAyIGZvbGxvd2luZyBtZXNzYWdlcyBh
bmQgdXNlIGEgRG9jdW1lbnRPcldvcmtlcklkZW50aWZpZXIgYXMgc291cmNlIGlkZW50aWZpZXIu
CiAgICAgUG9zdE1lc3NhZ2VUb1NlcnZpY2VXb3JrZXJGcm9tQ2xpZW50KFdlYkNvcmU6OlNlcnZp
Y2VXb3JrZXJJZGVudGlmaWVyIGRlc3RpbmF0aW9uU2VydmljZVdvcmtlcklkZW50aWZpZXIsIElQ
Qzo6RGF0YVJlZmVyZW5jZSBtZXNzYWdlLCBzdHJ1Y3QgV2ViQ29yZTo6U2VydmljZVdvcmtlckNs
aWVudElkZW50aWZpZXIgc291cmNlSWRlbnRpZmllciwgc3RydWN0IFdlYkNvcmU6OlNlcnZpY2VX
b3JrZXJDbGllbnREYXRhIHNvdXJjZURhdGEpCiAgICAgUG9zdE1lc3NhZ2VUb1NlcnZpY2VXb3Jr
ZXJGcm9tU2VydmljZVdvcmtlcihXZWJDb3JlOjpTZXJ2aWNlV29ya2VySWRlbnRpZmllciBkZXN0
aW5hdGlvblNlcnZpY2VXb3JrZXJJZGVudGlmaWVyLCBJUEM6OkRhdGFSZWZlcmVuY2UgbWVzc2Fn
ZSwgc3RydWN0IFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJJZGVudGlmaWVyIHNvdXJjZUlkZW50aWZp
ZXIpCiAKQEAgLTM4LDggKzQwLDggQEAgbWVzc2FnZXMgLT4gV2ViU1dTZXJ2ZXJDb25uZWN0aW9u
IHsKICAgICBNYXRjaFJlZ2lzdHJhdGlvbih1aW50NjRfdCBzZXJ2aWNlUmVnaXN0cmF0aW9uTWF0
Y2hSZXF1ZXN0SWRlbnRpZmllciwgc3RydWN0IFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0YSB0
b3BPcmlnaW4sIFdlYkNvcmU6OlVSTCBjbGllbnRVUkwpCiAgICAgV2hlblJlZ2lzdHJhdGlvblJl
YWR5KHVpbnQ2NF90IHNlcnZpY2VSZWdpc3RyYXRpb25NYXRjaFJlcXVlc3RJZGVudGlmaWVyLCBz
dHJ1Y3QgV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW5EYXRhIHRvcE9yaWdpbiwgV2ViQ29yZTo6VVJM
IGNsaWVudFVSTCkKICAgICBHZXRSZWdpc3RyYXRpb25zKHVpbnQ2NF90IHNlcnZpY2VSZWdpc3Ry
YXRpb25NYXRjaFJlcXVlc3RJZGVudGlmaWVyLCBzdHJ1Y3QgV2ViQ29yZTo6U2VjdXJpdHlPcmln
aW5EYXRhIHRvcE9yaWdpbiwgV2ViQ29yZTo6VVJMIGNsaWVudFVSTCkKLSAgICBSZWdpc3RlclNl
cnZpY2VXb3JrZXJDbGllbnQoc3RydWN0IFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0YSB0b3BP
cmlnaW4sIFdlYkNvcmU6OkRvY3VtZW50SWRlbnRpZmllciBpZGVudGlmaWVyLCBzdHJ1Y3QgV2Vi
Q29yZTo6U2VydmljZVdvcmtlckNsaWVudERhdGEgZGF0YSwgc3RkOjpvcHRpb25hbDxXZWJDb3Jl
OjpTZXJ2aWNlV29ya2VySWRlbnRpZmllcj4gY29udHJvbGxpbmdTZXJ2aWNlV29ya2VySWRlbnRp
ZmllcikKLSAgICBVbnJlZ2lzdGVyU2VydmljZVdvcmtlckNsaWVudChXZWJDb3JlOjpEb2N1bWVu
dElkZW50aWZpZXIgaWRlbnRpZmllcikKKyAgICBSZWdpc3RlclNlcnZpY2VXb3JrZXJDbGllbnQo
c3RydWN0IFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0YSB0b3BPcmlnaW4sIHN0cnVjdCBXZWJD
b3JlOjpTZXJ2aWNlV29ya2VyQ2xpZW50RGF0YSBkYXRhLCBzdGQ6Om9wdGlvbmFsPFdlYkNvcmU6
OlNlcnZpY2VXb3JrZXJJZGVudGlmaWVyPiBjb250cm9sbGluZ1NlcnZpY2VXb3JrZXJJZGVudGlm
aWVyKQorICAgIFVucmVnaXN0ZXJTZXJ2aWNlV29ya2VyQ2xpZW50KHN0cnVjdCBXZWJDb3JlOjpT
ZXJ2aWNlV29ya2VyQ2xpZW50SWRlbnRpZmllciBpZGVudGlmaWVyKQogCiAgICAgU3luY1Rlcm1p
bmF0ZVdvcmtlcihXZWJDb3JlOjpTZXJ2aWNlV29ya2VySWRlbnRpZmllciB3b3JrZXJJZGVudGlm
aWVyKSAtPiAoKQogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TdG9yYWdlUHJvY2Vzcy9T
ZXJ2aWNlV29ya2VyL1dlYlNXU2VydmVyVG9Db250ZXh0Q29ubmVjdGlvbi5jcHAgYi9Tb3VyY2Uv
V2ViS2l0L1N0b3JhZ2VQcm9jZXNzL1NlcnZpY2VXb3JrZXIvV2ViU1dTZXJ2ZXJUb0NvbnRleHRD
b25uZWN0aW9uLmNwcAppbmRleCA1ODJiMTI1MjViN2FjMzg0NDJmZTE0YWU4MWZjZDhkNWQ0MjVh
MWJmLi5mNzg1OTM4MWEzYmU5NjQwNGI5NDVhM2FlMWNjM2UyNmE0Y2VmZmNjIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L1N0b3JhZ2VQcm9jZXNzL1NlcnZpY2VXb3JrZXIvV2ViU1dTZXJ2ZXJU
b0NvbnRleHRDb25uZWN0aW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1N0b3JhZ2VQcm9jZXNz
L1NlcnZpY2VXb3JrZXIvV2ViU1dTZXJ2ZXJUb0NvbnRleHRDb25uZWN0aW9uLmNwcApAQCAtODYs
NyArODYsNyBAQCB2b2lkIFdlYlNXU2VydmVyVG9Db250ZXh0Q29ubmVjdGlvbjo6ZmluZENsaWVu
dEJ5SWRlbnRpZmllckNvbXBsZXRlZCh1aW50NjRfdCByZQogICAgIHNlbmQoTWVzc2FnZXM6Oldl
YlNXQ29udGV4dE1hbmFnZXJDb25uZWN0aW9uOjpGaW5kQ2xpZW50QnlJZGVudGlmaWVyQ29tcGxl
dGVkIHsgcmVxdWVzdElkZW50aWZpZXIsIGRhdGEsIGhhc1NlY3VyaXR5RXJyb3IgfSk7CiB9CiAK
LXZvaWQgV2ViU1dTZXJ2ZXJUb0NvbnRleHRDb25uZWN0aW9uOjptYXRjaEFsbENvbXBsZXRlZCh1
aW50NjRfdCByZXF1ZXN0SWRlbnRpZmllciwgY29uc3QgVmVjdG9yPFNlcnZpY2VXb3JrZXJDbGll
bnRJbmZvcm1hdGlvbj4mIGNsaWVudHNEYXRhKQordm9pZCBXZWJTV1NlcnZlclRvQ29udGV4dENv
bm5lY3Rpb246Om1hdGNoQWxsQ29tcGxldGVkKHVpbnQ2NF90IHJlcXVlc3RJZGVudGlmaWVyLCBj
b25zdCBWZWN0b3I8U2VydmljZVdvcmtlckNsaWVudERhdGE+JiBjbGllbnRzRGF0YSkKIHsKICAg
ICBzZW5kKE1lc3NhZ2VzOjpXZWJTV0NvbnRleHRNYW5hZ2VyQ29ubmVjdGlvbjo6TWF0Y2hBbGxD
b21wbGV0ZWQgeyByZXF1ZXN0SWRlbnRpZmllciwgY2xpZW50c0RhdGEgfSk7CiB9CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L1N0b3JhZ2VQcm9jZXNzL1NlcnZpY2VXb3JrZXIvV2ViU1dTZXJ2
ZXJUb0NvbnRleHRDb25uZWN0aW9uLmggYi9Tb3VyY2UvV2ViS2l0L1N0b3JhZ2VQcm9jZXNzL1Nl
cnZpY2VXb3JrZXIvV2ViU1dTZXJ2ZXJUb0NvbnRleHRDb25uZWN0aW9uLmgKaW5kZXggNGQ3MmRm
NmQ4MGNlMmY4OTdjMDFjZmZhYzM3YjI2MWExOTYxMDFhMC4uNmE1OTE1OTFiNjk5NTA3ODgyNDNi
MjUwMmEwNmMzYjg4NTgyMmY4NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9TdG9yYWdlUHJv
Y2Vzcy9TZXJ2aWNlV29ya2VyL1dlYlNXU2VydmVyVG9Db250ZXh0Q29ubmVjdGlvbi5oCisrKyBi
L1NvdXJjZS9XZWJLaXQvU3RvcmFnZVByb2Nlc3MvU2VydmljZVdvcmtlci9XZWJTV1NlcnZlclRv
Q29udGV4dENvbm5lY3Rpb24uaApAQCAtNjEsNyArNjEsNyBAQCBwcml2YXRlOgogICAgIHZvaWQg
dGVybWluYXRlV29ya2VyKFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJJZGVudGlmaWVyKSBmaW5hbDsK
ICAgICB2b2lkIHN5bmNUZXJtaW5hdGVXb3JrZXIoV2ViQ29yZTo6U2VydmljZVdvcmtlcklkZW50
aWZpZXIpIGZpbmFsOwogICAgIHZvaWQgZmluZENsaWVudEJ5SWRlbnRpZmllckNvbXBsZXRlZCh1
aW50NjRfdCByZXF1ZXN0SWRlbnRpZmllciwgY29uc3Qgc3RkOjpvcHRpb25hbDxXZWJDb3JlOjpT
ZXJ2aWNlV29ya2VyQ2xpZW50RGF0YT4mLCBib29sIGhhc1NlY3VyaXR5RXJyb3IpIGZpbmFsOwot
ICAgIHZvaWQgbWF0Y2hBbGxDb21wbGV0ZWQodWludDY0X3QgcmVxdWVzdElkZW50aWZpZXIsIGNv
bnN0IFZlY3RvcjxXZWJDb3JlOjpTZXJ2aWNlV29ya2VyQ2xpZW50SW5mb3JtYXRpb24+JikgZmlu
YWw7CisgICAgdm9pZCBtYXRjaEFsbENvbXBsZXRlZCh1aW50NjRfdCByZXF1ZXN0SWRlbnRpZmll
ciwgY29uc3QgVmVjdG9yPFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJDbGllbnREYXRhPiYpIGZpbmFs
OwogICAgIHZvaWQgY2xhaW1Db21wbGV0ZWQodWludDY0X3QgcmVxdWVzdElkZW50aWZpZXIpIGZp
bmFsOwogICAgIHZvaWQgZGlkRmluaXNoU2tpcFdhaXRpbmcodWludDY0X3QgY2FsbGJhY2tJRCkg
ZmluYWw7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9TdG9yYWdlL1dl
YlNXQ2xpZW50Q29ubmVjdGlvbi5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvU3RvcmFn
ZS9XZWJTV0NsaWVudENvbm5lY3Rpb24uY3BwCmluZGV4IDRhMjQzMWRmNjU5NWMxNGVjY2YzN2E4
NmExNmJmZWE4MzcwYzk3ZjYuLjcwMTQyMWUyYWFmMGY0YmJjOTkwNDY0NGJmYmFiYTNhODM1ZGI2
MzQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9TdG9yYWdlL1dlYlNXQ2xp
ZW50Q29ubmVjdGlvbi5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1N0b3JhZ2Uv
V2ViU1dDbGllbnRDb25uZWN0aW9uLmNwcApAQCAtOTIsMTQgKzkyLDE0IEBAIHZvaWQgV2ViU1dD
bGllbnRDb25uZWN0aW9uOjpwb3N0TWVzc2FnZVRvU2VydmljZVdvcmtlcihTZXJ2aWNlV29ya2Vy
SWRlbnRpZmllciBkCiAgICAgc2VuZChNZXNzYWdlczo6V2ViU1dTZXJ2ZXJDb25uZWN0aW9uOjpQ
b3N0TWVzc2FnZVRvU2VydmljZVdvcmtlckZyb21TZXJ2aWNlV29ya2VyKGRlc3RpbmF0aW9uSWRl
bnRpZmllciwgSVBDOjpEYXRhUmVmZXJlbmNlIHsgc2NyaXB0VmFsdWUtPmRhdGEoKSB9LCBzb3Vy
Y2VXb3JrZXJJZGVudGlmaWVyKSk7CiB9CiAKLXZvaWQgV2ViU1dDbGllbnRDb25uZWN0aW9uOjpy
ZWdpc3RlclNlcnZpY2VXb3JrZXJDbGllbnQoY29uc3QgU2VjdXJpdHlPcmlnaW4mIHRvcE9yaWdp
biwgV2ViQ29yZTo6RG9jdW1lbnRJZGVudGlmaWVyIGNvbnRleHRJZGVudGlmaWVyLCBjb25zdCBX
ZWJDb3JlOjpTZXJ2aWNlV29ya2VyQ2xpZW50RGF0YSYgZGF0YSwgY29uc3Qgc3RkOjpvcHRpb25h
bDxXZWJDb3JlOjpTZXJ2aWNlV29ya2VySWRlbnRpZmllcj4mIGNvbnRyb2xsaW5nU2VydmljZVdv
cmtlcklkZW50aWZpZXIpCit2b2lkIFdlYlNXQ2xpZW50Q29ubmVjdGlvbjo6cmVnaXN0ZXJTZXJ2
aWNlV29ya2VyQ2xpZW50KGNvbnN0IFNlY3VyaXR5T3JpZ2luJiB0b3BPcmlnaW4sIGNvbnN0IFdl
YkNvcmU6OlNlcnZpY2VXb3JrZXJDbGllbnREYXRhJiBkYXRhLCBjb25zdCBzdGQ6Om9wdGlvbmFs
PFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJJZGVudGlmaWVyPiYgY29udHJvbGxpbmdTZXJ2aWNlV29y
a2VySWRlbnRpZmllcikKIHsKLSAgICBzZW5kKE1lc3NhZ2VzOjpXZWJTV1NlcnZlckNvbm5lY3Rp
b246OlJlZ2lzdGVyU2VydmljZVdvcmtlckNsaWVudCB7IFNlY3VyaXR5T3JpZ2luRGF0YTo6ZnJv
bVNlY3VyaXR5T3JpZ2luKHRvcE9yaWdpbiksIGNvbnRleHRJZGVudGlmaWVyLCBkYXRhLCBjb250
cm9sbGluZ1NlcnZpY2VXb3JrZXJJZGVudGlmaWVyIH0pOworICAgIHNlbmQoTWVzc2FnZXM6Oldl
YlNXU2VydmVyQ29ubmVjdGlvbjo6UmVnaXN0ZXJTZXJ2aWNlV29ya2VyQ2xpZW50IHsgU2VjdXJp
dHlPcmlnaW5EYXRhOjpmcm9tU2VjdXJpdHlPcmlnaW4odG9wT3JpZ2luKSwgZGF0YSwgY29udHJv
bGxpbmdTZXJ2aWNlV29ya2VySWRlbnRpZmllciB9KTsKIH0KIAotdm9pZCBXZWJTV0NsaWVudENv
bm5lY3Rpb246OnVucmVnaXN0ZXJTZXJ2aWNlV29ya2VyQ2xpZW50KFdlYkNvcmU6OkRvY3VtZW50
SWRlbnRpZmllciBjb250ZXh0SWRlbnRpZmllcikKK3ZvaWQgV2ViU1dDbGllbnRDb25uZWN0aW9u
Ojp1bnJlZ2lzdGVyU2VydmljZVdvcmtlckNsaWVudChEb2N1bWVudElkZW50aWZpZXIgY29udGV4
dElkZW50aWZpZXIpCiB7Ci0gICAgc2VuZChNZXNzYWdlczo6V2ViU1dTZXJ2ZXJDb25uZWN0aW9u
OjpVbnJlZ2lzdGVyU2VydmljZVdvcmtlckNsaWVudCB7IGNvbnRleHRJZGVudGlmaWVyIH0pOwor
ICAgIHNlbmQoTWVzc2FnZXM6OldlYlNXU2VydmVyQ29ubmVjdGlvbjo6VW5yZWdpc3RlclNlcnZp
Y2VXb3JrZXJDbGllbnQgeyBTZXJ2aWNlV29ya2VyQ2xpZW50SWRlbnRpZmllciB7IHNlcnZlckNv
bm5lY3Rpb25JZGVudGlmaWVyKCksIGNvbnRleHRJZGVudGlmaWVyIH0gfSk7CiB9CiAKIHZvaWQg
V2ViU1dDbGllbnRDb25uZWN0aW9uOjpkaWRSZXNvbHZlUmVnaXN0cmF0aW9uUHJvbWlzZShjb25z
dCBTZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uS2V5JiBrZXkpCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvU3RvcmFnZS9XZWJTV0NsaWVudENvbm5lY3Rpb24uaCBiL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9TdG9yYWdlL1dlYlNXQ2xpZW50Q29ubmVjdGlvbi5oCmluZGV4
IDhmZjk0ZGVhZmYyNjhkMTFhMDUxMjY1YTFhZDkwYThiYzA0YzkyZTQuLjczN2IxNDFlZTUwYjMy
ZjBkYzJhNDVjZTAzMjlhZWE3YTBmMTk2NGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9TdG9yYWdlL1dlYlNXQ2xpZW50Q29ubmVjdGlvbi5oCisrKyBiL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9TdG9yYWdlL1dlYlNXQ2xpZW50Q29ubmVjdGlvbi5oCkBAIC03NSw3ICs3
NSw3IEBAIHByaXZhdGU6CiAgICAgdm9pZCBmaW5pc2hGZXRjaGluZ1NjcmlwdEluU2VydmVyKGNv
bnN0IFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJGZXRjaFJlc3VsdCYpIGZpbmFsOwogICAgIHZvaWQg
cG9zdE1lc3NhZ2VUb1NlcnZpY2VXb3JrZXIoV2ViQ29yZTo6U2VydmljZVdvcmtlcklkZW50aWZp
ZXIgZGVzdGluYXRpb25JZGVudGlmaWVyLCBSZWY8V2ViQ29yZTo6U2VyaWFsaXplZFNjcmlwdFZh
bHVlPiYmLCBXZWJDb3JlOjpTZXJ2aWNlV29ya2VyQ2xpZW50SWRlbnRpZmllciBzb3VyY2VJZGVu
dGlmaWVyLCBXZWJDb3JlOjpTZXJ2aWNlV29ya2VyQ2xpZW50RGF0YSYmIHNvdXJjZSkgZmluYWw7
CiAgICAgdm9pZCBwb3N0TWVzc2FnZVRvU2VydmljZVdvcmtlcihXZWJDb3JlOjpTZXJ2aWNlV29y
a2VySWRlbnRpZmllciBkZXN0aW5hdGlvbklkZW50aWZpZXIsIFJlZjxXZWJDb3JlOjpTZXJpYWxp
emVkU2NyaXB0VmFsdWU+JiYsIFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJJZGVudGlmaWVyIHNvdXJj
ZVdvcmtlcklkZW50aWZpZXIpIGZpbmFsOwotICAgIHZvaWQgcmVnaXN0ZXJTZXJ2aWNlV29ya2Vy
Q2xpZW50KGNvbnN0IFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luJiB0b3BPcmlnaW4sIFdlYkNvcmU6
OkRvY3VtZW50SWRlbnRpZmllciwgY29uc3QgV2ViQ29yZTo6U2VydmljZVdvcmtlckNsaWVudERh
dGEmLCBjb25zdCBzdGQ6Om9wdGlvbmFsPFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJJZGVudGlmaWVy
PiYpIGZpbmFsOworICAgIHZvaWQgcmVnaXN0ZXJTZXJ2aWNlV29ya2VyQ2xpZW50KGNvbnN0IFdl
YkNvcmU6OlNlY3VyaXR5T3JpZ2luJiB0b3BPcmlnaW4sIGNvbnN0IFdlYkNvcmU6OlNlcnZpY2VX
b3JrZXJDbGllbnREYXRhJiwgY29uc3Qgc3RkOjpvcHRpb25hbDxXZWJDb3JlOjpTZXJ2aWNlV29y
a2VySWRlbnRpZmllcj4mKSBmaW5hbDsKICAgICB2b2lkIHVucmVnaXN0ZXJTZXJ2aWNlV29ya2Vy
Q2xpZW50KFdlYkNvcmU6OkRvY3VtZW50SWRlbnRpZmllcikgZmluYWw7CiAKICAgICB2b2lkIG1h
dGNoUmVnaXN0cmF0aW9uKGNvbnN0IFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luJiB0b3BPcmlnaW4s
IGNvbnN0IFdlYkNvcmU6OlVSTCYgY2xpZW50VVJMLCBSZWdpc3RyYXRpb25DYWxsYmFjayYmKSBm
aW5hbDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9TdG9yYWdlL1dlYlNX
Q29udGV4dE1hbmFnZXJDb25uZWN0aW9uLmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9T
dG9yYWdlL1dlYlNXQ29udGV4dE1hbmFnZXJDb25uZWN0aW9uLmNwcAppbmRleCAyZTczZWE4ZmNl
NWUyNjFjNjIzYWRhOWMxM2YyZThjZTZjMWE5NTNiLi5hMzVjNGUzNTFiNGM4YjljMmIzMjk2OWFm
ODQ2NDRlOTk2M2EwMWFkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvU3Rv
cmFnZS9XZWJTV0NvbnRleHRNYW5hZ2VyQ29ubmVjdGlvbi5jcHAKKysrIGIvU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL1N0b3JhZ2UvV2ViU1dDb250ZXh0TWFuYWdlckNvbm5lY3Rpb24uY3BwCkBA
IC0xNzIsMTIgKzE3Miw3IEBAIHZvaWQgV2ViU1dDb250ZXh0TWFuYWdlckNvbm5lY3Rpb246OnN0
YXJ0RmV0Y2goU1dTZXJ2ZXJDb25uZWN0aW9uSWRlbnRpZmllciBzZXJ2CiAgICAgc2VydmljZVdv
cmtlclRocmVhZFByb3h5LT50aHJlYWQoKS5wb3N0RmV0Y2hUYXNrKFdURk1vdmUoY2xpZW50KSwg
V1RGTW92ZShjbGllbnRJZCksIFdURk1vdmUocmVxdWVzdCksIFdURk1vdmUob3B0aW9ucykpOwog
fQogCi12b2lkIFdlYlNXQ29udGV4dE1hbmFnZXJDb25uZWN0aW9uOjpwb3N0TWVzc2FnZVRvU2Vy
dmljZVdvcmtlckZyb21DbGllbnQoU2VydmljZVdvcmtlcklkZW50aWZpZXIgZGVzdGluYXRpb25J
ZGVudGlmaWVyLCBjb25zdCBJUEM6OkRhdGFSZWZlcmVuY2UmIG1lc3NhZ2UsIFNlcnZpY2VXb3Jr
ZXJDbGllbnRJZGVudGlmaWVyIHNvdXJjZUlkZW50aWZpZXIsIFNlcnZpY2VXb3JrZXJDbGllbnRE
YXRhJiYgc291cmNlRGF0YSkKLXsKLSAgICBTV0NvbnRleHRNYW5hZ2VyOjpzaW5nbGV0b24oKS5w
b3N0TWVzc2FnZVRvU2VydmljZVdvcmtlcihkZXN0aW5hdGlvbklkZW50aWZpZXIsIFNlcmlhbGl6
ZWRTY3JpcHRWYWx1ZTo6YWRvcHQobWVzc2FnZS52ZWN0b3IoKSksIHNvdXJjZUlkZW50aWZpZXIs
IFdURk1vdmUoc291cmNlRGF0YSkpOwotfQotCi12b2lkIFdlYlNXQ29udGV4dE1hbmFnZXJDb25u
ZWN0aW9uOjpwb3N0TWVzc2FnZVRvU2VydmljZVdvcmtlckZyb21TZXJ2aWNlV29ya2VyKFNlcnZp
Y2VXb3JrZXJJZGVudGlmaWVyIGRlc3RpbmF0aW9uSWRlbnRpZmllciwgY29uc3QgSVBDOjpEYXRh
UmVmZXJlbmNlJiBtZXNzYWdlLCBTZXJ2aWNlV29ya2VyRGF0YSYmIHNvdXJjZURhdGEpCit2b2lk
IFdlYlNXQ29udGV4dE1hbmFnZXJDb25uZWN0aW9uOjpwb3N0TWVzc2FnZVRvU2VydmljZVdvcmtl
cihTZXJ2aWNlV29ya2VySWRlbnRpZmllciBkZXN0aW5hdGlvbklkZW50aWZpZXIsIGNvbnN0IElQ
Qzo6RGF0YVJlZmVyZW5jZSYgbWVzc2FnZSwgU2VydmljZVdvcmtlck9yQ2xpZW50RGF0YSYmIHNv
dXJjZURhdGEpCiB7CiAgICAgU1dDb250ZXh0TWFuYWdlcjo6c2luZ2xldG9uKCkucG9zdE1lc3Nh
Z2VUb1NlcnZpY2VXb3JrZXIoZGVzdGluYXRpb25JZGVudGlmaWVyLCBTZXJpYWxpemVkU2NyaXB0
VmFsdWU6OmFkb3B0KG1lc3NhZ2UudmVjdG9yKCkpLCBXVEZNb3ZlKHNvdXJjZURhdGEpKTsKIH0K
QEAgLTI2MSw3ICsyNTYsNyBAQCB2b2lkIFdlYlNXQ29udGV4dE1hbmFnZXJDb25uZWN0aW9uOjpt
YXRjaEFsbChXZWJDb3JlOjpTZXJ2aWNlV29ya2VySWRlbnRpZmllciBzZQogICAgIG1fY29ubmVj
dGlvblRvU3RvcmFnZVByb2Nlc3MtPnNlbmQoTWVzc2FnZXM6OldlYlNXU2VydmVyVG9Db250ZXh0
Q29ubmVjdGlvbjo6TWF0Y2hBbGwgeyByZXF1ZXN0SWRlbnRpZmllciwgc2VydmljZVdvcmtlcklk
ZW50aWZpZXIsIG9wdGlvbnMgfSwgMCk7CiB9CiAKLXZvaWQgV2ViU1dDb250ZXh0TWFuYWdlckNv
bm5lY3Rpb246Om1hdGNoQWxsQ29tcGxldGVkKHVpbnQ2NF90IHJlcXVlc3RJZGVudGlmaWVyLCBW
ZWN0b3I8U2VydmljZVdvcmtlckNsaWVudEluZm9ybWF0aW9uPiYmIGNsaWVudHNEYXRhKQordm9p
ZCBXZWJTV0NvbnRleHRNYW5hZ2VyQ29ubmVjdGlvbjo6bWF0Y2hBbGxDb21wbGV0ZWQodWludDY0
X3QgcmVxdWVzdElkZW50aWZpZXIsIFZlY3RvcjxTZXJ2aWNlV29ya2VyQ2xpZW50RGF0YT4mJiBj
bGllbnRzRGF0YSkKIHsKICAgICBpZiAoYXV0byBjYWxsYmFjayA9IG1fbWF0Y2hBbGxSZXF1ZXN0
cy50YWtlKHJlcXVlc3RJZGVudGlmaWVyKSkKICAgICAgICAgY2FsbGJhY2soV1RGTW92ZShjbGll
bnRzRGF0YSkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1N0b3JhZ2Uv
V2ViU1dDb250ZXh0TWFuYWdlckNvbm5lY3Rpb24uaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9TdG9yYWdlL1dlYlNXQ29udGV4dE1hbmFnZXJDb25uZWN0aW9uLmgKaW5kZXggMWI4ODg5YTk2
MzVhY2EzN2Y4MDM0NDNlZDVmZDdlN2E5NWExZGFmNy4uOTgwZGFkNGExMjkyN2FlMjVhMjJlZWQ0
YmM0NjA5ZWE1ZDRmZmY2YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1N0
b3JhZ2UvV2ViU1dDb250ZXh0TWFuYWdlckNvbm5lY3Rpb24uaAorKysgYi9Tb3VyY2UvV2ViS2l0
L1dlYlByb2Nlc3MvU3RvcmFnZS9XZWJTV0NvbnRleHRNYW5hZ2VyQ29ubmVjdGlvbi5oCkBAIC0z
MSw3ICszMSw3IEBACiAjaW5jbHVkZSAiTWVzc2FnZVJlY2VpdmVyLmgiCiAjaW5jbHVkZSAiV2Vi
U1dDb250ZXh0TWFuYWdlckNvbm5lY3Rpb25NZXNzYWdlcy5oIgogI2luY2x1ZGUgPFdlYkNvcmUv
U1dDb250ZXh0TWFuYWdlci5oPgotI2luY2x1ZGUgPFdlYkNvcmUvU2VydmljZVdvcmtlckNsaWVu
dEluZm9ybWF0aW9uLmg+CisjaW5jbHVkZSA8V2ViQ29yZS9TZXJ2aWNlV29ya2VyQ2xpZW50RGF0
YS5oPgogI2luY2x1ZGUgPFdlYkNvcmUvU2VydmljZVdvcmtlclR5cGVzLmg+CiAKIG5hbWVzcGFj
ZSBJUEMgewpAQCAtNzcsMTQgKzc3LDEzIEBAIHByaXZhdGU6CiAgICAgdm9pZCBzZXJ2aWNlV29y
a2VyU3RhcnRlZFdpdGhNZXNzYWdlKHN0ZDo6b3B0aW9uYWw8V2ViQ29yZTo6U2VydmljZVdvcmtl
ckpvYkRhdGFJZGVudGlmaWVyPiwgV2ViQ29yZTo6U2VydmljZVdvcmtlcklkZW50aWZpZXIsIGNv
bnN0IFN0cmluZyYgZXhjZXB0aW9uTWVzc2FnZSkgZmluYWw7CiAgICAgdm9pZCBpbnN0YWxsU2Vy
dmljZVdvcmtlcihjb25zdCBXZWJDb3JlOjpTZXJ2aWNlV29ya2VyQ29udGV4dERhdGEmLCBQQUw6
OlNlc3Npb25JRCk7CiAgICAgdm9pZCBzdGFydEZldGNoKFdlYkNvcmU6OlNXU2VydmVyQ29ubmVj
dGlvbklkZW50aWZpZXIsIHVpbnQ2NF90IGZldGNoSWRlbnRpZmllciwgV2ViQ29yZTo6U2Vydmlj
ZVdvcmtlcklkZW50aWZpZXIsIFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYmLCBXZWJDb3JlOjpG
ZXRjaE9wdGlvbnMmJiwgSVBDOjpGb3JtRGF0YVJlZmVyZW5jZSYmKTsKLSAgICB2b2lkIHBvc3RN
ZXNzYWdlVG9TZXJ2aWNlV29ya2VyRnJvbUNsaWVudChXZWJDb3JlOjpTZXJ2aWNlV29ya2VySWRl
bnRpZmllciBkZXN0aW5hdGlvbklkZW50aWZpZXIsIGNvbnN0IElQQzo6RGF0YVJlZmVyZW5jZSYg
bWVzc2FnZSwgV2ViQ29yZTo6U2VydmljZVdvcmtlckNsaWVudElkZW50aWZpZXIgc291cmNlSWRl
bnRpZmllciwgV2ViQ29yZTo6U2VydmljZVdvcmtlckNsaWVudERhdGEmJiBzb3VyY2VEYXRhKTsK
LSAgICB2b2lkIHBvc3RNZXNzYWdlVG9TZXJ2aWNlV29ya2VyRnJvbVNlcnZpY2VXb3JrZXIoV2Vi
Q29yZTo6U2VydmljZVdvcmtlcklkZW50aWZpZXIgZGVzdGluYXRpb24sIGNvbnN0IElQQzo6RGF0
YVJlZmVyZW5jZSYgbWVzc2FnZSwgV2ViQ29yZTo6U2VydmljZVdvcmtlckRhdGEmJiBzb3VyY2VE
YXRhKTsKKyAgICB2b2lkIHBvc3RNZXNzYWdlVG9TZXJ2aWNlV29ya2VyKFdlYkNvcmU6OlNlcnZp
Y2VXb3JrZXJJZGVudGlmaWVyIGRlc3RpbmF0aW9uSWRlbnRpZmllciwgY29uc3QgSVBDOjpEYXRh
UmVmZXJlbmNlJiBtZXNzYWdlLCBXZWJDb3JlOjpTZXJ2aWNlV29ya2VyT3JDbGllbnREYXRhJiYg
c291cmNlRGF0YSk7CiAgICAgdm9pZCBmaXJlSW5zdGFsbEV2ZW50KFdlYkNvcmU6OlNlcnZpY2VX
b3JrZXJJZGVudGlmaWVyKTsKICAgICB2b2lkIGZpcmVBY3RpdmF0ZUV2ZW50KFdlYkNvcmU6OlNl
cnZpY2VXb3JrZXJJZGVudGlmaWVyKTsKICAgICB2b2lkIHRlcm1pbmF0ZVdvcmtlcihXZWJDb3Jl
OjpTZXJ2aWNlV29ya2VySWRlbnRpZmllcik7CiAgICAgdm9pZCBzeW5jVGVybWluYXRlV29ya2Vy
KFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJJZGVudGlmaWVyLCBSZWY8TWVzc2FnZXM6OldlYlNXQ29u
dGV4dE1hbmFnZXJDb25uZWN0aW9uOjpTeW5jVGVybWluYXRlV29ya2VyOjpEZWxheWVkUmVwbHk+
JiYpOwogICAgIHZvaWQgZmluZENsaWVudEJ5SWRlbnRpZmllckNvbXBsZXRlZCh1aW50NjRfdCBy
ZXF1ZXN0SWRlbnRpZmllciwgc3RkOjpvcHRpb25hbDxXZWJDb3JlOjpTZXJ2aWNlV29ya2VyQ2xp
ZW50RGF0YT4mJiwgYm9vbCBoYXNTZWN1cml0eUVycm9yKTsKLSAgICB2b2lkIG1hdGNoQWxsQ29t
cGxldGVkKHVpbnQ2NF90IG1hdGNoQWxsUmVxdWVzdElkZW50aWZpZXIsIFZlY3RvcjxXZWJDb3Jl
OjpTZXJ2aWNlV29ya2VyQ2xpZW50SW5mb3JtYXRpb24+JiYpOworICAgIHZvaWQgbWF0Y2hBbGxD
b21wbGV0ZWQodWludDY0X3QgbWF0Y2hBbGxSZXF1ZXN0SWRlbnRpZmllciwgVmVjdG9yPFdlYkNv
cmU6OlNlcnZpY2VXb3JrZXJDbGllbnREYXRhPiYmKTsKICAgICB2b2lkIGNsYWltQ29tcGxldGVk
KHVpbnQ2NF90IGNsYWltUmVxdWVzdElkZW50aWZpZXIpOwogICAgIHZvaWQgZGlkRmluaXNoU2tp
cFdhaXRpbmcodWludDY0X3QgY2FsbGJhY2tJRCk7CiAgICAgdm9pZCBzZXRVc2VyQWdlbnQoU3Ry
aW5nJiYgdXNlckFnZW50KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9T
dG9yYWdlL1dlYlNXQ29udGV4dE1hbmFnZXJDb25uZWN0aW9uLm1lc3NhZ2VzLmluIGIvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL1N0b3JhZ2UvV2ViU1dDb250ZXh0TWFuYWdlckNvbm5lY3Rpb24u
bWVzc2FnZXMuaW4KaW5kZXggYzU3MTVjYTRmZjdlZGVlODIwNTJlYmFlMTM5YTFmZmMxNjlkOTg1
My4uYzEyNjZiOTg5N2I0MjI2NjU3OTMwZDZkYzM3OWMwOWIzYTI3YzkxMiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1N0b3JhZ2UvV2ViU1dDb250ZXh0TWFuYWdlckNvbm5l
Y3Rpb24ubWVzc2FnZXMuaW4KKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1N0b3JhZ2Uv
V2ViU1dDb250ZXh0TWFuYWdlckNvbm5lY3Rpb24ubWVzc2FnZXMuaW4KQEAgLTI1LDE0ICsyNSwx
MyBAQAogbWVzc2FnZXMgLT4gV2ViU1dDb250ZXh0TWFuYWdlckNvbm5lY3Rpb24gewogICAgIElu
c3RhbGxTZXJ2aWNlV29ya2VyKHN0cnVjdCBXZWJDb3JlOjpTZXJ2aWNlV29ya2VyQ29udGV4dERh
dGEgY29udGV4dERhdGEsIFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCkKICAgICBTdGFydEZldGNo
KFdlYkNvcmU6OlNXU2VydmVyQ29ubmVjdGlvbklkZW50aWZpZXIgc2VydmVyQ29ubmVjdGlvbklk
ZW50aWZpZXIsIHVpbnQ2NF90IGZldGNoSWRlbnRpZmllciwgV2ViQ29yZTo6U2VydmljZVdvcmtl
cklkZW50aWZpZXIgc2VydmljZVdvcmtlcklkZW50aWZpZXIsIFdlYkNvcmU6OlJlc291cmNlUmVx
dWVzdCByZXF1ZXN0LCBzdHJ1Y3QgV2ViQ29yZTo6RmV0Y2hPcHRpb25zIG9wdGlvbnMsIElQQzo6
Rm9ybURhdGFSZWZlcmVuY2UgcmVxdWVzdEJvZHkpCi0gICAgUG9zdE1lc3NhZ2VUb1NlcnZpY2VX
b3JrZXJGcm9tQ2xpZW50KFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJJZGVudGlmaWVyIGRlc3RpbmF0
aW9uSWRlbnRpZmllciwgSVBDOjpEYXRhUmVmZXJlbmNlIG1lc3NhZ2UsIHN0cnVjdCBXZWJDb3Jl
OjpTZXJ2aWNlV29ya2VyQ2xpZW50SWRlbnRpZmllciBzb3VyY2VJZGVudGlmaWVyLCBzdHJ1Y3Qg
V2ViQ29yZTo6U2VydmljZVdvcmtlckNsaWVudERhdGEgc291cmNlRGF0YSkKLSAgICBQb3N0TWVz
c2FnZVRvU2VydmljZVdvcmtlckZyb21TZXJ2aWNlV29ya2VyKFdlYkNvcmU6OlNlcnZpY2VXb3Jr
ZXJJZGVudGlmaWVyIGRlc3RpbmF0aW9uSWRlbnRpZmllciwgSVBDOjpEYXRhUmVmZXJlbmNlIG1l
c3NhZ2UsIHN0cnVjdCBXZWJDb3JlOjpTZXJ2aWNlV29ya2VyRGF0YSBzb3VyY2VEYXRhKQorICAg
IFBvc3RNZXNzYWdlVG9TZXJ2aWNlV29ya2VyKFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJJZGVudGlm
aWVyIGRlc3RpbmF0aW9uSWRlbnRpZmllciwgSVBDOjpEYXRhUmVmZXJlbmNlIG1lc3NhZ2UsIFdl
YkNvcmU6OlNlcnZpY2VXb3JrZXJPckNsaWVudERhdGEgc291cmNlRGF0YSkKICAgICBGaXJlSW5z
dGFsbEV2ZW50KFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJJZGVudGlmaWVyIGlkZW50aWZpZXIpCiAg
ICAgRmlyZUFjdGl2YXRlRXZlbnQoV2ViQ29yZTo6U2VydmljZVdvcmtlcklkZW50aWZpZXIgaWRl
bnRpZmllcikKICAgICBUZXJtaW5hdGVXb3JrZXIoV2ViQ29yZTo6U2VydmljZVdvcmtlcklkZW50
aWZpZXIgaWRlbnRpZmllcikKICAgICBTeW5jVGVybWluYXRlV29ya2VyKFdlYkNvcmU6OlNlcnZp
Y2VXb3JrZXJJZGVudGlmaWVyIGlkZW50aWZpZXIpIC0+ICgpIERlbGF5ZWQKICAgICBGaW5kQ2xp
ZW50QnlJZGVudGlmaWVyQ29tcGxldGVkKHVpbnQ2NF90IGNsaWVudElkUmVxdWVzdElkZW50aWZp
ZXIsIHN0ZDo6b3B0aW9uYWw8V2ViQ29yZTo6U2VydmljZVdvcmtlckNsaWVudERhdGE+IGRhdGEs
IGJvb2wgaGFzU2VjdXJpdHlFcnJvcikKLSAgICBNYXRjaEFsbENvbXBsZXRlZCh1aW50NjRfdCBt
YXRjaEFsbFJlcXVlc3RJZGVudGlmaWVyLCBWZWN0b3I8V2ViQ29yZTo6U2VydmljZVdvcmtlckNs
aWVudEluZm9ybWF0aW9uPiBjbGllbnRzRGF0YSkKKyAgICBNYXRjaEFsbENvbXBsZXRlZCh1aW50
NjRfdCBtYXRjaEFsbFJlcXVlc3RJZGVudGlmaWVyLCBWZWN0b3I8V2ViQ29yZTo6U2VydmljZVdv
cmtlckNsaWVudERhdGE+IGNsaWVudHNEYXRhKQogICAgIENsYWltQ29tcGxldGVkKHVpbnQ2NF90
IGNsYWltUmVxdWVzdElkZW50aWZpZXIpCiAgICAgRGlkRmluaXNoU2tpcFdhaXRpbmcodWludDY0
X3QgY2FsbGJhY2tJRCkKICAgICBTZXRVc2VyQWdlbnQoU3RyaW5nIHVzZXJBZ2VudCkK
</data>

          </attachment>
      

    </bug>

</bugzilla>