<?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>179848</bug_id>
          
          <creation_ts>2017-11-17 16:08:10 -0800</creation_ts>
          <short_desc>Use a strongly typed identifier for SWServer::Connection</short_desc>
          <delta_ts>2017-11-17 18:28:21 -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>
          
          
          <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>benjamin</cc>
    
    <cc>cmarcelo</cc>
    
    <cc>commit-queue</cc>
    
    <cc>dbates</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>ggaren</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>youennf</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1373380</commentid>
    <comment_count>0</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2017-11-17 16:08:10 -0800</bug_when>
    <thetext>Use a strongly typed identifier for SWServer::Connection, for clarity.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1373398</commentid>
    <comment_count>1</comment_count>
      <attachid>327266</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2017-11-17 16:29:27 -0800</bug_when>
    <thetext>Created attachment 327266
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1373407</commentid>
    <comment_count>2</comment_count>
      <attachid>327266</attachid>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2017-11-17 16:35:36 -0800</bug_when>
    <thetext>Comment on attachment 327266
Patch

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

r+ with a naming comment

&gt; Source/WTF/wtf/ObjectIdentifier.h:65
&gt; +    uint64_t toUnsignedInteger() const { return m_identifier; }

toUInt64()</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1373410</commentid>
    <comment_count>3</comment_count>
      <attachid>327272</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2017-11-17 16:37:55 -0800</bug_when>
    <thetext>Created attachment 327272
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1373423</commentid>
    <comment_count>4</comment_count>
      <attachid>327277</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2017-11-17 16:51:10 -0800</bug_when>
    <thetext>Created attachment 327277
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1373451</commentid>
    <comment_count>5</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2017-11-17 17:35:57 -0800</bug_when>
    <thetext>The commit-queue encountered the following flaky tests while processing attachment 327277:

The commit-queue is continuing to process your patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1373478</commentid>
    <comment_count>6</comment_count>
      <attachid>327277</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2017-11-17 18:27:19 -0800</bug_when>
    <thetext>Comment on attachment 327277
Patch

Clearing flags on attachment: 327277

Committed r225008: &lt;https://trac.webkit.org/changeset/225008&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1373479</commentid>
    <comment_count>7</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2017-11-17 18:27:21 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1373480</commentid>
    <comment_count>8</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2017-11-17 18:28:21 -0800</bug_when>
    <thetext>&lt;rdar://problem/35628606&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>327266</attachid>
            <date>2017-11-17 16:29:27 -0800</date>
            <delta_ts>2017-11-17 16:37:54 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-179848-20171117162926.patch</filename>
            <type>text/plain</type>
            <size>85632</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjI0OTc2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IGE0YmNmNjg4NWIxNGJlNGJlNmE5NzU5
YzQ3ZjNhMzE2Nzg0OTFjZDMuLmY1YTllZjNiNWEyZTExMGUxY2E2YjQ2Njc3ZjMyYTI1MDQwMGRi
ZTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMTYgQEAKKzIwMTctMTEtMTcgIENocmlzIER1bWV6ICA8Y2R1bWV6
QGFwcGxlLmNvbT4KKworICAgICAgICBVc2UgYSBzdHJvbmdseSB0eXBlZCBpZGVudGlmaWVyIGZv
ciBTV1NlcnZlcjo6Q29ubmVjdGlvbgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9MTc5ODQ4CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCisKKyAgICAgICAgTWFrZSBPYmplY3RJZGVudGlmaWVyIGEgbGl0dGxlIG1vcmUgZmxleGli
bGUgdG8gc3VwcG9ydCBtb3JlIHVzZSBjYXNlcy4KKworICAgICAgICAqIHd0Zi9PYmplY3RJZGVu
dGlmaWVyLmg6CisgICAgICAgIChXVEY6Ok9iamVjdElkZW50aWZpZXI6OnRvVW5zaWduZWRJbnRl
Z2VyIGNvbnN0KToKKyAgICAgICAgKFdURjo6bWFrZU9iamVjdElkZW50aWZpZXIpOgorCiAyMDE3
LTExLTE1ICBBbGV4IENocmlzdGVuc2VuICA8YWNocmlzdGVuc2VuQHdlYmtpdC5vcmc+CiAKICAg
ICAgICAgRml4IGZhc3QvZXZlbnRzL21lc3NhZ2UtcG9ydC1wb3N0TWVzc2FnZS1yZWN1cnNpdmUu
aHRtbCBhZnRlciByMjI0ODk2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cg
Yi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNmJmYTYyNmM3NzgzZjJiMTRiMTIyYWZh
MTJjN2E4ZGFiY2IzYzE2MS4uY2MzNDJkOGU4ZDBiZTU2ODk3OGQyMjM1ZjdhYmQzNTk4YTFjYmZk
YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJD
b3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDcyIEBACisyMDE3LTExLTE3ICBDaHJpcyBEdW1leiAg
PGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgVXNlIGEgc3Ryb25nbHkgdHlwZWQgaWRlbnRp
ZmllciBmb3IgU1dTZXJ2ZXI6OkNvbm5lY3Rpb24KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTE3OTg0OAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgIFVzZSBhIHN0cm9uZ2x5IHR5cGVkIGlkZW50aWZpZXIgZm9y
IFNXU2VydmVyOjpDb25uZWN0aW9uLCBmb3IgY2xhcml0eS4KKworICAgICAgICAqIHdvcmtlcnMv
c2VydmljZS9TZXJ2aWNlV29ya2VyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNlcnZpY2VXb3Jr
ZXI6OnBvc3RNZXNzYWdlKToKKyAgICAgICAgKiB3b3JrZXJzL3NlcnZpY2UvU2VydmljZVdvcmtl
ckNsaWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTZXJ2aWNlV29ya2VyQ2xpZW50OjpTZXJ2
aWNlV29ya2VyQ2xpZW50KToKKyAgICAgICAgKFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJDbGllbnQ6
OmlkIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJDbGllbnQ6OnBvc3RN
ZXNzYWdlKToKKyAgICAgICAgKiB3b3JrZXJzL3NlcnZpY2UvU2VydmljZVdvcmtlckNsaWVudC5o
OgorICAgICAgICAoV2ViQ29yZTo6U2VydmljZVdvcmtlckNsaWVudDo6Y3JlYXRlKToKKyAgICAg
ICAgKFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJDbGllbnQ6OmlkZW50aWZpZXIgY29uc3QpOgorICAg
ICAgICAqIHdvcmtlcnMvc2VydmljZS9TZXJ2aWNlV29ya2VyQ2xpZW50RGF0YS5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpTZXJ2aWNlV29ya2VyQ2xpZW50RGF0YTo6aXNvbGF0ZWRDb3B5IGNvbnN0
KToKKyAgICAgICAgKFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJDbGllbnREYXRhOjpmcm9tKToKKyAg
ICAgICAgKiB3b3JrZXJzL3NlcnZpY2UvU2VydmljZVdvcmtlckNsaWVudERhdGEuaDoKKyAgICAg
ICAgKFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJDbGllbnREYXRhOjplbmNvZGUgY29uc3QpOgorICAg
ICAgICAoV2ViQ29yZTo6U2VydmljZVdvcmtlckNsaWVudERhdGE6OmRlY29kZSk6CisgICAgICAg
ICogd29ya2Vycy9zZXJ2aWNlL1NlcnZpY2VXb3JrZXJDbGllbnRJZGVudGlmaWVyLmg6CisgICAg
ICAgIChXZWJDb3JlOjpTZXJ2aWNlV29ya2VyQ2xpZW50SWRlbnRpZmllcjo6dG9TdHJpbmcgY29u
c3QpOgorICAgICAgICAoV2ViQ29yZTo6U2VydmljZVdvcmtlckNsaWVudElkZW50aWZpZXI6OmRl
Y29kZSk6CisgICAgICAgICogd29ya2Vycy9zZXJ2aWNlL1NlcnZpY2VXb3JrZXJDb250YWluZXIu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6U2VydmljZVdvcmtlckNvbnRhaW5lcjo6YWRkUmVnaXN0
cmF0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJDb250YWluZXI6OnJlbW92
ZVJlZ2lzdHJhdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpTZXJ2aWNlV29ya2VyQ29udGFpbmVy
Ojp1cGRhdGVSZWdpc3RyYXRpb24pOgorICAgICAgICAoV2ViQ29yZTo6U2VydmljZVdvcmtlckNv
bnRhaW5lcjo6Y29ubmVjdGlvbklkZW50aWZpZXIpOgorICAgICAgICAqIHdvcmtlcnMvc2Vydmlj
ZS9TZXJ2aWNlV29ya2VyQ29udGFpbmVyLmg6CisgICAgICAgICogd29ya2Vycy9zZXJ2aWNlL1Nl
cnZpY2VXb3JrZXJGZXRjaFJlc3VsdC5oOgorICAgICAgICAoV2ViQ29yZTo6U2VydmljZVdvcmtl
ckZldGNoUmVzdWx0OjpkZWNvZGUpOgorICAgICAgICAqIHdvcmtlcnMvc2VydmljZS9TZXJ2aWNl
V29ya2VySm9iQ2xpZW50Lmg6CisgICAgICAgICogd29ya2Vycy9zZXJ2aWNlL1NlcnZpY2VXb3Jr
ZXJKb2JEYXRhLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJKb2JEYXRhOjpT
ZXJ2aWNlV29ya2VySm9iRGF0YSk6CisgICAgICAgICogd29ya2Vycy9zZXJ2aWNlL1NlcnZpY2VX
b3JrZXJKb2JEYXRhLmg6CisgICAgICAgIChXZWJDb3JlOjpTZXJ2aWNlV29ya2VySm9iRGF0YTo6
Y29ubmVjdGlvbklkZW50aWZpZXIgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6U2VydmljZVdv
cmtlckpvYkRhdGE6OmRlY29kZSk6CisgICAgICAgICogd29ya2Vycy9zZXJ2aWNlL1NlcnZpY2VX
b3JrZXJUeXBlcy5oOgorICAgICAgICAqIHdvcmtlcnMvc2VydmljZS9TZXJ2aWNlV29ya2VyV2lu
ZG93Q2xpZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJXaW5kb3dDbGll
bnQ6OlNlcnZpY2VXb3JrZXJXaW5kb3dDbGllbnQpOgorICAgICAgICAqIHdvcmtlcnMvc2Vydmlj
ZS9TZXJ2aWNlV29ya2VyV2luZG93Q2xpZW50Lmg6CisgICAgICAgICogd29ya2Vycy9zZXJ2aWNl
L2NvbnRleHQvU1dDb250ZXh0TWFuYWdlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTV0NvbnRl
eHRNYW5hZ2VyOjpwb3N0TWVzc2FnZVRvU2VydmljZVdvcmtlckdsb2JhbFNjb3BlKToKKyAgICAg
ICAgKiB3b3JrZXJzL3NlcnZpY2UvY29udGV4dC9TV0NvbnRleHRNYW5hZ2VyLmg6CisgICAgICAg
ICogd29ya2Vycy9zZXJ2aWNlL2NvbnRleHQvU2VydmljZVdvcmtlclRocmVhZC5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpTZXJ2aWNlV29ya2VyVGhyZWFkOjpwb3N0TWVzc2FnZVRvU2VydmljZVdv
cmtlckdsb2JhbFNjb3BlKToKKyAgICAgICAgKiB3b3JrZXJzL3NlcnZpY2UvY29udGV4dC9TZXJ2
aWNlV29ya2VyVGhyZWFkLmg6CisgICAgICAgICogd29ya2Vycy9zZXJ2aWNlL3NlcnZlci9TV0Ns
aWVudENvbm5lY3Rpb24uaDoKKyAgICAgICAgKiB3b3JrZXJzL3NlcnZpY2Uvc2VydmVyL1NXU2Vy
dmVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNXU2VydmVyOjpDb25uZWN0aW9uOjpDb25uZWN0
aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OlNXU2VydmVyOjpDb25uZWN0aW9uOjpzY2hlZHVsZUpv
YkluU2VydmVyKToKKyAgICAgICAgKFdlYkNvcmU6OlNXU2VydmVyOjpyZWplY3RKb2IpOgorICAg
ICAgICAoV2ViQ29yZTo6U1dTZXJ2ZXI6OnJlc29sdmVSZWdpc3RyYXRpb25Kb2IpOgorICAgICAg
ICAoV2ViQ29yZTo6U1dTZXJ2ZXI6OnN0YXJ0U2NyaXB0RmV0Y2gpOgorICAgICAgICAoV2ViQ29y
ZTo6U1dTZXJ2ZXI6OnNjcmlwdEZldGNoRmluaXNoZWQpOgorICAgICAgICAqIHdvcmtlcnMvc2Vy
dmljZS9zZXJ2ZXIvU1dTZXJ2ZXIuaDoKKyAgICAgICAgKFdlYkNvcmU6OlNXU2VydmVyOjpDb25u
ZWN0aW9uOjppZGVudGlmaWVyIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OlNXU2VydmVyOjpn
ZXRDb25uZWN0aW9uKToKKyAgICAgICAgKiB3b3JrZXJzL3NlcnZpY2Uvc2VydmVyL1NXU2VydmVy
UmVnaXN0cmF0aW9uLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNXU2VydmVyUmVnaXN0cmF0aW9u
Ojpmb3JFYWNoQ29ubmVjdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpTV1NlcnZlclJlZ2lzdHJh
dGlvbjo6YWRkQ2xpZW50U2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbik6CisgICAgICAgIChXZWJD
b3JlOjpTV1NlcnZlclJlZ2lzdHJhdGlvbjo6cmVtb3ZlQ2xpZW50U2VydmljZVdvcmtlclJlZ2lz
dHJhdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpTV1NlcnZlclJlZ2lzdHJhdGlvbjo6dW5yZWdp
c3RlclNlcnZlckNvbm5lY3Rpb24pOgorICAgICAgICAqIHdvcmtlcnMvc2VydmljZS9zZXJ2ZXIv
U1dTZXJ2ZXJSZWdpc3RyYXRpb24uaDoKKwogMjAxNy0xMS0xNyAgQW50dGkgS29pdmlzdG8gIDxh
bnR0aUBhcHBsZS5jb20+CiAKICAgICAgICAgTW92ZSBkZXN0cm95TGVmdG92ZXJDaGlsZHJlbiBj
YWxsIHRvIFJlbmRlck9iamVjdDo6ZGVzdHJveQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwppbmRleCBkZmU1Y2VjZjE2OWQzYWYy
ZWIyNGRjM2UyNjQ0OGNmMDEzYmRjMTRkLi4yZWMxMjdkMGI3ZjdiZWFhMzlhMWMyZGI0ODNkMDNj
NWE1ZmU4ZDNmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZworKysgYi9Tb3Vy
Y2UvV2ViS2l0L0NoYW5nZUxvZwpAQCAtMSwzICsxLDU0IEBACisyMDE3LTExLTE3ICBDaHJpcyBE
dW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgVXNlIGEgc3Ryb25nbHkgdHlwZWQg
aWRlbnRpZmllciBmb3IgU1dTZXJ2ZXI6OkNvbm5lY3Rpb24KKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE3OTg0OAorCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFVzZSBhIHN0cm9uZ2x5IHR5cGVkIGlkZW50aWZp
ZXIgZm9yIFNXU2VydmVyOjpDb25uZWN0aW9uLCBmb3IgY2xhcml0eS4KKworICAgICAgICAqIFNj
cmlwdHMvd2Via2l0L21lc3NhZ2VzLnB5OgorICAgICAgICAoZm9yd2FyZF9kZWNsYXJhdGlvbnNf
YW5kX2hlYWRlcnMpOgorICAgICAgICAoZm9yd2FyZF9kZWNsYXJhdGlvbnNfYW5kX2hlYWRlcnMu
dGVtcGxhdGVzKToKKyAgICAgICAgKGhlYWRlcnNfZm9yX3R5cGUpOgorICAgICAgICAqIFN0b3Jh
Z2VQcm9jZXNzL1NlcnZpY2VXb3JrZXIvV2ViU1dTZXJ2ZXJDb25uZWN0aW9uLmNwcDoKKyAgICAg
ICAgKFdlYktpdDo6V2ViU1dTZXJ2ZXJDb25uZWN0aW9uOjpXZWJTV1NlcnZlckNvbm5lY3Rpb24p
OgorICAgICAgICAoV2ViS2l0OjpXZWJTV1NlcnZlckNvbm5lY3Rpb246OnBvc3RNZXNzYWdlVG9T
ZXJ2aWNlV29ya2VyR2xvYmFsU2NvcGUpOgorICAgICAgICAqIFN0b3JhZ2VQcm9jZXNzL1NlcnZp
Y2VXb3JrZXIvV2ViU1dTZXJ2ZXJDb25uZWN0aW9uLmg6CisgICAgICAgICogU3RvcmFnZVByb2Nl
c3MvU2VydmljZVdvcmtlci9XZWJTV1NlcnZlckNvbm5lY3Rpb24ubWVzc2FnZXMuaW46CisgICAg
ICAgICogU3RvcmFnZVByb2Nlc3MvU3RvcmFnZVByb2Nlc3MuY3BwOgorICAgICAgICAoV2ViS2l0
OjpTdG9yYWdlUHJvY2Vzczo6ZGlkRmFpbEZldGNoKToKKyAgICAgICAgKFdlYktpdDo6U3RvcmFn
ZVByb2Nlc3M6OmRpZE5vdEhhbmRsZUZldGNoKToKKyAgICAgICAgKFdlYktpdDo6U3RvcmFnZVBy
b2Nlc3M6OmRpZFJlY2VpdmVGZXRjaFJlc3BvbnNlKToKKyAgICAgICAgKFdlYktpdDo6U3RvcmFn
ZVByb2Nlc3M6OmRpZFJlY2VpdmVGZXRjaERhdGEpOgorICAgICAgICAoV2ViS2l0OjpTdG9yYWdl
UHJvY2Vzczo6ZGlkUmVjZWl2ZUZldGNoRm9ybURhdGEpOgorICAgICAgICAoV2ViS2l0OjpTdG9y
YWdlUHJvY2Vzczo6ZGlkRmluaXNoRmV0Y2gpOgorICAgICAgICAqIFN0b3JhZ2VQcm9jZXNzL1N0
b3JhZ2VQcm9jZXNzLmg6CisgICAgICAgICogU3RvcmFnZVByb2Nlc3MvU3RvcmFnZVByb2Nlc3Mu
bWVzc2FnZXMuaW46CisgICAgICAgICogU3RvcmFnZVByb2Nlc3MvU3RvcmFnZVRvV2ViUHJvY2Vz
c0Nvbm5lY3Rpb24uY3BwOgorICAgICAgICAoV2ViS2l0OjpTdG9yYWdlVG9XZWJQcm9jZXNzQ29u
bmVjdGlvbjo6ZGlkUmVjZWl2ZU1lc3NhZ2UpOgorICAgICAgICAoV2ViS2l0OjpTdG9yYWdlVG9X
ZWJQcm9jZXNzQ29ubmVjdGlvbjo6ZXN0YWJsaXNoU1dTZXJ2ZXJDb25uZWN0aW9uKToKKyAgICAg
ICAgKFdlYktpdDo6U3RvcmFnZVRvV2ViUHJvY2Vzc0Nvbm5lY3Rpb246OnJlbW92ZVNXU2VydmVy
Q29ubmVjdGlvbik6CisgICAgICAgIChXZWJLaXQ6OmdlbmVyYXRlSURCQ29ubmVjdGlvblRvU2Vy
dmVySWRlbnRpZmllcik6CisgICAgICAgIChXZWJLaXQ6OlN0b3JhZ2VUb1dlYlByb2Nlc3NDb25u
ZWN0aW9uOjplc3RhYmxpc2hJREJDb25uZWN0aW9uVG9TZXJ2ZXIpOgorICAgICAgICAqIFN0b3Jh
Z2VQcm9jZXNzL1N0b3JhZ2VUb1dlYlByb2Nlc3NDb25uZWN0aW9uLmg6CisgICAgICAgICogU3Rv
cmFnZVByb2Nlc3MvU3RvcmFnZVRvV2ViUHJvY2Vzc0Nvbm5lY3Rpb24ubWVzc2FnZXMuaW46Cisg
ICAgICAgICogV2ViUHJvY2Vzcy9TdG9yYWdlL1dlYlNXQ2xpZW50Q29ubmVjdGlvbi5jcHA6Cisg
ICAgICAgIChXZWJLaXQ6OldlYlNXQ2xpZW50Q29ubmVjdGlvbjo6cG9zdE1lc3NhZ2VUb1NlcnZp
Y2VXb3JrZXJHbG9iYWxTY29wZSk6CisgICAgICAgICogV2ViUHJvY2Vzcy9TdG9yYWdlL1dlYlNX
Q2xpZW50Q29ubmVjdGlvbi5oOgorICAgICAgICAqIFdlYlByb2Nlc3MvU3RvcmFnZS9XZWJTV0Nv
bnRleHRNYW5hZ2VyQ29ubmVjdGlvbi5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlNXQ29udGV4
dE1hbmFnZXJDb25uZWN0aW9uOjpzdGFydEZldGNoKToKKyAgICAgICAgKFdlYktpdDo6V2ViU1dD
b250ZXh0TWFuYWdlckNvbm5lY3Rpb246OnBvc3RNZXNzYWdlVG9TZXJ2aWNlV29ya2VyR2xvYmFs
U2NvcGUpOgorICAgICAgICAqIFdlYlByb2Nlc3MvU3RvcmFnZS9XZWJTV0NvbnRleHRNYW5hZ2Vy
Q29ubmVjdGlvbi5oOgorICAgICAgICAqIFdlYlByb2Nlc3MvU3RvcmFnZS9XZWJTV0NvbnRleHRN
YW5hZ2VyQ29ubmVjdGlvbi5tZXNzYWdlcy5pbjoKKyAgICAgICAgKiBXZWJQcm9jZXNzL1N0b3Jh
Z2UvV2ViU2VydmljZVdvcmtlckZldGNoVGFza0NsaWVudC5jcHA6CisgICAgICAgIChXZWJLaXQ6
OldlYlNlcnZpY2VXb3JrZXJGZXRjaFRhc2tDbGllbnQ6OldlYlNlcnZpY2VXb3JrZXJGZXRjaFRh
c2tDbGllbnQpOgorICAgICAgICAqIFdlYlByb2Nlc3MvU3RvcmFnZS9XZWJTZXJ2aWNlV29ya2Vy
RmV0Y2hUYXNrQ2xpZW50Lmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9TdG9yYWdlL1dlYlRvU3Rv
cmFnZVByb2Nlc3NDb25uZWN0aW9uLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViVG9TdG9yYWdl
UHJvY2Vzc0Nvbm5lY3Rpb246OmRpZFJlY2VpdmVNZXNzYWdlKToKKyAgICAgICAgKFdlYktpdDo6
V2ViVG9TdG9yYWdlUHJvY2Vzc0Nvbm5lY3Rpb246OnNlcnZpY2VXb3JrZXJDb25uZWN0aW9uRm9y
U2Vzc2lvbik6CisgICAgICAgICogV2ViUHJvY2Vzcy9TdG9yYWdlL1dlYlRvU3RvcmFnZVByb2Nl
c3NDb25uZWN0aW9uLmg6CisKIDIwMTctMTEtMTYgIFlvdXN1a2UgS2ltb3RvICA8eW91c3VrZS5r
aW1vdG9Ac29ueS5jb20+CiAKICAgICAgICAgW1dpbkNhaXJvXSBBZGQgbmV0d29yayAoY3VybCkg
ZmlsZXMgZm9yIHdpbmNhaXJvIHdlYmtpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvT2Jq
ZWN0SWRlbnRpZmllci5oIGIvU291cmNlL1dURi93dGYvT2JqZWN0SWRlbnRpZmllci5oCmluZGV4
IDY3ZGVlMDI2YjVlODdlNDA3YTYyMmVlNjBlNjUwOGMzNTJlNmI5ZGQuLjljNDEwZTVhZmU0M2I4
NmYyNGRlYzVlMzU3MDg1NDA3MjAwYmRmZjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvd3RmL09i
amVjdElkZW50aWZpZXIuaAorKysgYi9Tb3VyY2UvV1RGL3d0Zi9PYmplY3RJZGVudGlmaWVyLmgK
QEAgLTYxLDYgKzYxLDggQEAgcHVibGljOgogICAgIHsKICAgICAgICAgcmV0dXJuIG1faWRlbnRp
ZmllciAhPSBvdGhlci5tX2lkZW50aWZpZXI7CiAgICAgfQorCisgICAgdWludDY0X3QgdG9VbnNp
Z25lZEludGVnZXIoKSBjb25zdCB7IHJldHVybiBtX2lkZW50aWZpZXI7IH0KICAgICAKICNpZm5k
ZWYgTkRFQlVHCiAgICAgU3RyaW5nIGxvZ2dpbmdTdHJpbmcoKSBjb25zdApAQCAtNzEsNiArNzMs
NyBAQCBwdWJsaWM6CiAKIHByaXZhdGU6CiAgICAgdGVtcGxhdGU8dHlwZW5hbWUgVT4gZnJpZW5k
IE9iamVjdElkZW50aWZpZXI8VT4gZ2VuZXJhdGVPYmplY3RJZGVudGlmaWVyKCk7CisgICAgdGVt
cGxhdGU8dHlwZW5hbWUgVT4gZnJpZW5kIE9iamVjdElkZW50aWZpZXI8VT4gbWFrZU9iamVjdElk
ZW50aWZpZXIodWludDY0X3QpOwogICAgIGZyaWVuZCBzdHJ1Y3QgSGFzaFRyYWl0czxPYmplY3RJ
ZGVudGlmaWVyPjsKICAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBVPiBmcmllbmQgc3RydWN0IE9iamVj
dElkZW50aWZpZXJIYXNoOwogCkBAIC05Myw2ICs5NiwxMSBAQCB0ZW1wbGF0ZTx0eXBlbmFtZSBU
PiBpbmxpbmUgT2JqZWN0SWRlbnRpZmllcjxUPiBnZW5lcmF0ZU9iamVjdElkZW50aWZpZXIoKQog
ICAgIHJldHVybiBPYmplY3RJZGVudGlmaWVyPFQ+IHsgKytPYmplY3RJZGVudGlmaWVyPFQ+Ojpz
X2N1cnJlbnRJZGVudGlmaWVyIH07CiB9CiAKK3RlbXBsYXRlPHR5cGVuYW1lIFQ+IGlubGluZSBP
YmplY3RJZGVudGlmaWVyPFQ+IG1ha2VPYmplY3RJZGVudGlmaWVyKHVpbnQ2NF90IGlkZW50aWZp
ZXIpCit7CisgICAgcmV0dXJuIE9iamVjdElkZW50aWZpZXI8VD4geyBpZGVudGlmaWVyIH07Cit9
CisKIHRlbXBsYXRlPHR5cGVuYW1lIFQ+IHN0cnVjdCBPYmplY3RJZGVudGlmaWVySGFzaCB7CiAg
ICAgc3RhdGljIHVuc2lnbmVkIGhhc2goY29uc3QgT2JqZWN0SWRlbnRpZmllcjxUPiYgaWRlbnRp
ZmllcikgeyByZXR1cm4gaW50SGFzaChpZGVudGlmaWVyLm1faWRlbnRpZmllcik7IH0KICAgICBz
dGF0aWMgYm9vbCBlcXVhbChjb25zdCBPYmplY3RJZGVudGlmaWVyPFQ+JiBhLCBjb25zdCBPYmpl
Y3RJZGVudGlmaWVyPFQ+JiBiKSB7IHJldHVybiBhID09IGI7IH0KQEAgLTEwOSwzICsxMTcsNCBA
QCB0ZW1wbGF0ZTx0eXBlbmFtZSBUPiBzdHJ1Y3QgRGVmYXVsdEhhc2g8T2JqZWN0SWRlbnRpZmll
cjxUPj4gewogCiB1c2luZyBXVEY6Ok9iamVjdElkZW50aWZpZXI7CiB1c2luZyBXVEY6OmdlbmVy
YXRlT2JqZWN0SWRlbnRpZmllcjsKK3VzaW5nIFdURjo6bWFrZU9iamVjdElkZW50aWZpZXI7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvU2VydmljZVdvcmtlci5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvU2VydmljZVdvcmtlci5jcHAKaW5k
ZXggM2ZiMzJmYjRlY2M1OGQ4OGMxNzg4Njc2ZjEyMzAwOGM5ODYzMWI2Yi4uM2I5ODQzNTJlMjQw
MWFkZDY4Y2U1NDYzNjcyODA3MWFjZTIxYmI3NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
d29ya2Vycy9zZXJ2aWNlL1NlcnZpY2VXb3JrZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3dv
cmtlcnMvc2VydmljZS9TZXJ2aWNlV29ya2VyLmNwcApAQCAtMjgsNiArMjgsNyBAQAogCiAjaWYg
RU5BQkxFKFNFUlZJQ0VfV09SS0VSKQogCisjaW5jbHVkZSAiRG9jdW1lbnQuaCIKICNpbmNsdWRl
ICJFdmVudE5hbWVzLmgiCiAjaW5jbHVkZSAiTWVzc2FnZVBvcnQuaCIKICNpbmNsdWRlICJTV0Ns
aWVudENvbm5lY3Rpb24uaCIKQEAgLTE0OCw3ICsxNDksNyBAQCBFeGNlcHRpb25Pcjx2b2lkPiBT
ZXJ2aWNlV29ya2VyOjpwb3N0TWVzc2FnZShTY3JpcHRFeGVjdXRpb25Db250ZXh0JiBjb250ZXh0
LCBKUwogICAgIGF1dG8gc291cmNlQ2xpZW50RGF0YSA9IFNlcnZpY2VXb3JrZXJDbGllbnREYXRh
Ojpmcm9tKGNvbnRleHQpOwogCiAgICAgYXV0byYgc3dDb25uZWN0aW9uID0gU2VydmljZVdvcmtl
clByb3ZpZGVyOjpzaW5nbGV0b24oKS5zZXJ2aWNlV29ya2VyQ29ubmVjdGlvbkZvclNlc3Npb24o
Y29udGV4dC5zZXNzaW9uSUQoKSk7Ci0gICAgc3dDb25uZWN0aW9uLnBvc3RNZXNzYWdlVG9TZXJ2
aWNlV29ya2VyR2xvYmFsU2NvcGUoaWRlbnRpZmllcigpLCBtZXNzYWdlLnJlbGVhc2VSZXR1cm5W
YWx1ZSgpLCBXVEZNb3ZlKHNvdXJjZUNsaWVudERhdGEpKTsKKyAgICBzd0Nvbm5lY3Rpb24ucG9z
dE1lc3NhZ2VUb1NlcnZpY2VXb3JrZXJHbG9iYWxTY29wZShpZGVudGlmaWVyKCksIG1lc3NhZ2Uu
cmVsZWFzZVJldHVyblZhbHVlKCksIGRvd25jYXN0PERvY3VtZW50Pihjb250ZXh0KS5pZGVudGlm
aWVyKCksIFdURk1vdmUoc291cmNlQ2xpZW50RGF0YSkpOwogCiAgICAgcmV0dXJuIHsgfTsKIH0K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9TZXJ2aWNlV29ya2Vy
Q2xpZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9TZXJ2aWNlV29ya2Vy
Q2xpZW50LmNwcAppbmRleCAzNjAyZTM0YjQ0MDk1NTMyNjY5NmQ0MTc2NjY0NWIyMjk4NDAyYTUy
Li42ZjEyYTQyOTM2ZDg2OGU5MjcwMzIzM2Q3YmFiMWNiMDEyNzkyNmNmIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvU2VydmljZVdvcmtlckNsaWVudC5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL1NlcnZpY2VXb3JrZXJDbGllbnQuY3Bw
CkBAIC0zNywxMiArMzcsMTEgQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1TZXJ2aWNlV29y
a2VyQ2xpZW50OjpTZXJ2aWNlV29ya2VyQ2xpZW50KFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmIGNv
bnRleHQsIFNlcnZpY2VXb3JrZXJDbGllbnREYXRhJiYgZGF0YSkKK1NlcnZpY2VXb3JrZXJDbGll
bnQ6OlNlcnZpY2VXb3JrZXJDbGllbnQoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYgY29udGV4dCwg
U2VydmljZVdvcmtlckNsaWVudElkZW50aWZpZXIgaWRlbnRpZmllciwgU2VydmljZVdvcmtlckNs
aWVudERhdGEmJiBkYXRhKQogICAgIDogQ29udGV4dERlc3RydWN0aW9uT2JzZXJ2ZXIoJmNvbnRl
eHQpCisgICAgLCBtX2lkZW50aWZpZXIoaWRlbnRpZmllcikKICAgICAsIG1fZGF0YShXVEZNb3Zl
KGRhdGEpKQogewotICAgIEFTU0VSVChtX2RhdGEuaWRlbnRpZmllci5zZXJ2ZXJDb25uZWN0aW9u
SWRlbnRpZmllcik7Ci0gICAgQVNTRVJUKG1fZGF0YS5pZGVudGlmaWVyLnNjcmlwdEV4ZWN1dGlv
bkNvbnRleHRJZGVudGlmaWVyKTsKIH0KIAogU2VydmljZVdvcmtlckNsaWVudDo6flNlcnZpY2VX
b3JrZXJDbGllbnQoKQpAQCAtNjYsNyArNjUsNyBAQCBhdXRvIFNlcnZpY2VXb3JrZXJDbGllbnQ6
OmZyYW1lVHlwZSgpIGNvbnN0IC0+IEZyYW1lVHlwZQogCiBTdHJpbmcgU2VydmljZVdvcmtlckNs
aWVudDo6aWQoKSBjb25zdAogewotICAgIHJldHVybiBtX2RhdGEuaWRlbnRpZmllci50b1N0cmlu
ZygpOworICAgIHJldHVybiBpZGVudGlmaWVyKCkudG9TdHJpbmcoKTsKIH0KIAogRXhjZXB0aW9u
T3I8dm9pZD4gU2VydmljZVdvcmtlckNsaWVudDo6cG9zdE1lc3NhZ2UoU2NyaXB0RXhlY3V0aW9u
Q29udGV4dCYgY29udGV4dCwgSlNDOjpKU1ZhbHVlIG1lc3NhZ2VWYWx1ZSwgVmVjdG9yPEpTQzo6
U3Ryb25nPEpTQzo6SlNPYmplY3Q+PiYmIHRyYW5zZmVyKQpAQCAtOTAsNyArODksNyBAQCBFeGNl
cHRpb25Pcjx2b2lkPiBTZXJ2aWNlV29ya2VyQ2xpZW50Ojpwb3N0TWVzc2FnZShTY3JpcHRFeGVj
dXRpb25Db250ZXh0JiBjb250ZQogICAgICAgICByZXR1cm4gRXhjZXB0aW9uIHsgTm90U3VwcG9y
dGVkRXJyb3IsIEFTQ0lJTGl0ZXJhbCgiUGFzc2luZyBNZXNzYWdlUG9ydCBvYmplY3RzIHRvIHBv
c3RNZXNzYWdlIGlzIG5vdCB5ZXQgc3VwcG9ydGVkIikgfTsKIAogICAgIGF1dG8gc291cmNlSWRl
bnRpZmllciA9IGRvd25jYXN0PFNlcnZpY2VXb3JrZXJHbG9iYWxTY29wZT4oY29udGV4dCkudGhy
ZWFkKCkuaWRlbnRpZmllcigpOwotICAgIGNhbGxPbk1haW5UaHJlYWQoW21lc3NhZ2UgPSBtZXNz
YWdlLnJlbGVhc2VSZXR1cm5WYWx1ZSgpLCBkZXN0aW5hdGlvbklkZW50aWZpZXIgPSBtX2RhdGEu
aWRlbnRpZmllciwgc291cmNlSWRlbnRpZmllciwgc291cmNlT3JpZ2luID0gY29udGV4dC5vcmln
aW4oKS5pc29sYXRlZENvcHkoKV0gKCkgbXV0YWJsZSB7CisgICAgY2FsbE9uTWFpblRocmVhZChb
bWVzc2FnZSA9IG1lc3NhZ2UucmVsZWFzZVJldHVyblZhbHVlKCksIGRlc3RpbmF0aW9uSWRlbnRp
ZmllciA9IGlkZW50aWZpZXIoKSwgc291cmNlSWRlbnRpZmllciwgc291cmNlT3JpZ2luID0gY29u
dGV4dC5vcmlnaW4oKS5pc29sYXRlZENvcHkoKV0gKCkgbXV0YWJsZSB7CiAgICAgICAgIGlmIChh
dXRvKiBjb25uZWN0aW9uID0gU1dDb250ZXh0TWFuYWdlcjo6c2luZ2xldG9uKCkuY29ubmVjdGlv
bigpKQogICAgICAgICAgICAgY29ubmVjdGlvbi0+cG9zdE1lc3NhZ2VUb1NlcnZpY2VXb3JrZXJD
bGllbnQoZGVzdGluYXRpb25JZGVudGlmaWVyLCBXVEZNb3ZlKG1lc3NhZ2UpLCBzb3VyY2VJZGVu
dGlmaWVyLCBzb3VyY2VPcmlnaW4pOwogICAgIH0pOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvd29ya2Vycy9zZXJ2aWNlL1NlcnZpY2VXb3JrZXJDbGllbnQuaCBiL1NvdXJjZS9XZWJDb3Jl
L3dvcmtlcnMvc2VydmljZS9TZXJ2aWNlV29ya2VyQ2xpZW50LmgKaW5kZXggY2VjMzc1ZDk1MWZj
NWI0ZTkyODhkZGNjNTU5ODM5ZDI2NWY2ZjgyYy4uZmJiOTBiMGMxZjdkNGJmM2ViM2I3OTA4YmY0
ZjhmZWE1NzE1ZTM2MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNl
L1NlcnZpY2VXb3JrZXJDbGllbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZp
Y2UvU2VydmljZVdvcmtlckNsaWVudC5oCkBAIC00Niw5ICs0Niw5IEBAIHB1YmxpYzoKICAgICB1
c2luZyBUeXBlID0gU2VydmljZVdvcmtlckNsaWVudFR5cGU7CiAgICAgdXNpbmcgRnJhbWVUeXBl
ID0gU2VydmljZVdvcmtlckNsaWVudEZyYW1lVHlwZTsKIAotICAgIHN0YXRpYyBSZWY8U2Vydmlj
ZVdvcmtlckNsaWVudD4gY3JlYXRlKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmIGNvbnRleHQsIFNl
cnZpY2VXb3JrZXJDbGllbnREYXRhJiYgZGF0YSkKKyAgICBzdGF0aWMgUmVmPFNlcnZpY2VXb3Jr
ZXJDbGllbnQ+IGNyZWF0ZShTY3JpcHRFeGVjdXRpb25Db250ZXh0JiBjb250ZXh0LCBTZXJ2aWNl
V29ya2VyQ2xpZW50SWRlbnRpZmllciBpZGVudGlmaWVyLCBTZXJ2aWNlV29ya2VyQ2xpZW50RGF0
YSYmIGRhdGEpCiAgICAgewotICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBTZXJ2aWNlV29y
a2VyQ2xpZW50KGNvbnRleHQsIFdURk1vdmUoZGF0YSkpKTsKKyAgICAgICAgcmV0dXJuIGFkb3B0
UmVmKCpuZXcgU2VydmljZVdvcmtlckNsaWVudChjb250ZXh0LCBpZGVudGlmaWVyLCBXVEZNb3Zl
KGRhdGEpKSk7CiAgICAgfQogCiAgICAgflNlcnZpY2VXb3JrZXJDbGllbnQoKTsKQEAgLTU4LDEx
ICs1OCwxNCBAQCBwdWJsaWM6CiAgICAgVHlwZSB0eXBlKCkgY29uc3Q7CiAgICAgU3RyaW5nIGlk
KCkgY29uc3Q7CiAKKyAgICBJZGVudGlmaWVyIGlkZW50aWZpZXIoKSBjb25zdCB7IHJldHVybiBt
X2lkZW50aWZpZXI7IH0KKwogICAgIEV4Y2VwdGlvbk9yPHZvaWQ+IHBvc3RNZXNzYWdlKFNjcmlw
dEV4ZWN1dGlvbkNvbnRleHQmLCBKU0M6OkpTVmFsdWUgbWVzc2FnZSwgVmVjdG9yPEpTQzo6U3Ry
b25nPEpTQzo6SlNPYmplY3Q+PiYmIHRyYW5zZmVyKTsKIAogcHJvdGVjdGVkOgotICAgIFNlcnZp
Y2VXb3JrZXJDbGllbnQoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYsIFNlcnZpY2VXb3JrZXJDbGll
bnREYXRhJiYpOworICAgIFNlcnZpY2VXb3JrZXJDbGllbnQoU2NyaXB0RXhlY3V0aW9uQ29udGV4
dCYsIFNlcnZpY2VXb3JrZXJDbGllbnRJZGVudGlmaWVyLCBTZXJ2aWNlV29ya2VyQ2xpZW50RGF0
YSYmKTsKIAorICAgIFNlcnZpY2VXb3JrZXJDbGllbnRJZGVudGlmaWVyIG1faWRlbnRpZmllcjsK
ICAgICBTZXJ2aWNlV29ya2VyQ2xpZW50RGF0YSBtX2RhdGE7CiB9OwogCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvU2VydmljZVdvcmtlckNsaWVudERhdGEuY3Bw
IGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL1NlcnZpY2VXb3JrZXJDbGllbnREYXRh
LmNwcAppbmRleCBlYzk5ZDc5MTc5ZjhlYmY4MTlmY2Q4ZDhhZDMyNmNlZmM4NjFkYzM2Li5iMmU3
ZDMzMjE3MWU2YWQxZTRmMDUzZDc0YTIyZDg0MzhhOWRmM2M1IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvU2VydmljZVdvcmtlckNsaWVudERhdGEuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9TZXJ2aWNlV29ya2VyQ2xpZW50RGF0YS5j
cHAKQEAgLTU2LDE3ICs1NiwxNCBAQCBzdGF0aWMgU2VydmljZVdvcmtlckNsaWVudEZyYW1lVHlw
ZSB0b1NlcnZpY2VXb3JrZXJDbGllbnRGcmFtZVR5cGUoU2NyaXB0RXhlY3V0aQogCiBTZXJ2aWNl
V29ya2VyQ2xpZW50RGF0YSBTZXJ2aWNlV29ya2VyQ2xpZW50RGF0YTo6aXNvbGF0ZWRDb3B5KCkg
Y29uc3QKIHsKLSAgICByZXR1cm4geyBpZGVudGlmaWVyLCB0eXBlLCBmcmFtZVR5cGUsIHVybC5p
c29sYXRlZENvcHkoKSB9OworICAgIHJldHVybiB7IHR5cGUsIGZyYW1lVHlwZSwgdXJsLmlzb2xh
dGVkQ29weSgpIH07CiB9CiAKIFNlcnZpY2VXb3JrZXJDbGllbnREYXRhIFNlcnZpY2VXb3JrZXJD
bGllbnREYXRhOjpmcm9tKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmIGNvbnRleHQpCiB7CiAgICAg
Ym9vbCBpc0RvY3VtZW50ID0gaXM8RG9jdW1lbnQ+KGNvbnRleHQpOwogCi0gICAgQVNTRVJUX1dJ
VEhfTUVTU0FHRShpc0RvY3VtZW50LCAiT25seSBkb2N1bWVudHMgaGF2ZSBpZGVudGlmaWVycyBh
dCB0aGUgbW9tZW50Iik7Ci0KICAgICByZXR1cm4gewotICAgICAgICB7IDAsIGRvd25jYXN0PERv
Y3VtZW50Pihjb250ZXh0KS5pZGVudGlmaWVyKCkgfSwKICAgICAgICAgaXNEb2N1bWVudCA/IFNl
cnZpY2VXb3JrZXJDbGllbnRUeXBlOjpXaW5kb3cgOiBTZXJ2aWNlV29ya2VyQ2xpZW50VHlwZTo6
V29ya2VyLAogICAgICAgICB0b1NlcnZpY2VXb3JrZXJDbGllbnRGcmFtZVR5cGUoY29udGV4dCks
CiAgICAgICAgIGNvbnRleHQudXJsKCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3dvcmtl
cnMvc2VydmljZS9TZXJ2aWNlV29ya2VyQ2xpZW50RGF0YS5oIGIvU291cmNlL1dlYkNvcmUvd29y
a2Vycy9zZXJ2aWNlL1NlcnZpY2VXb3JrZXJDbGllbnREYXRhLmgKaW5kZXggODUxODY3YzYwZTlj
MjJkODEzZDFiNWM3NzY4OTMwMzM4ZjRmMDAwYS4uNGYxYWI4YmE0NWU0YTk4ZmY1NWE0NTJjNjU0
ZWRlYjdlNTc4YWZlMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNl
L1NlcnZpY2VXb3JrZXJDbGllbnREYXRhLmgKKysrIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9z
ZXJ2aWNlL1NlcnZpY2VXb3JrZXJDbGllbnREYXRhLmgKQEAgLTM3LDcgKzM3LDYgQEAgbmFtZXNw
YWNlIFdlYkNvcmUgewogY2xhc3MgU2NyaXB0RXhlY3V0aW9uQ29udGV4dDsKIAogc3RydWN0IFNl
cnZpY2VXb3JrZXJDbGllbnREYXRhIHsKLSAgICBTZXJ2aWNlV29ya2VyQ2xpZW50SWRlbnRpZmll
ciBpZGVudGlmaWVyOwogICAgIFNlcnZpY2VXb3JrZXJDbGllbnRUeXBlIHR5cGU7CiAgICAgU2Vy
dmljZVdvcmtlckNsaWVudEZyYW1lVHlwZSBmcmFtZVR5cGU7CiAgICAgVVJMIHVybDsKQEAgLTUz
LDE3ICs1MiwxMiBAQCBzdHJ1Y3QgU2VydmljZVdvcmtlckNsaWVudERhdGEgewogdGVtcGxhdGU8
Y2xhc3MgRW5jb2Rlcj4KIHZvaWQgU2VydmljZVdvcmtlckNsaWVudERhdGE6OmVuY29kZShFbmNv
ZGVyJiBlbmNvZGVyKSBjb25zdAogewotICAgIGVuY29kZXIgPDwgaWRlbnRpZmllciA8PCB0eXBl
IDw8IGZyYW1lVHlwZSA8PCB1cmw7CisgICAgZW5jb2RlciA8PCB0eXBlIDw8IGZyYW1lVHlwZSA8
PCB1cmw7CiB9CiAKIHRlbXBsYXRlPGNsYXNzIERlY29kZXI+CiBzdGQ6Om9wdGlvbmFsPFNlcnZp
Y2VXb3JrZXJDbGllbnREYXRhPiBTZXJ2aWNlV29ya2VyQ2xpZW50RGF0YTo6ZGVjb2RlKERlY29k
ZXImIGRlY29kZXIpCiB7Ci0gICAgc3RkOjpvcHRpb25hbDxTZXJ2aWNlV29ya2VyQ2xpZW50SWRl
bnRpZmllcj4gaWRlbnRpZmllcjsKLSAgICBkZWNvZGVyID4+IGlkZW50aWZpZXI7Ci0gICAgaWYg
KCFpZGVudGlmaWVyKQotICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OwotCiAgICAgc3RkOjpv
cHRpb25hbDxTZXJ2aWNlV29ya2VyQ2xpZW50VHlwZT4gdHlwZTsKICAgICBkZWNvZGVyID4+IHR5
cGU7CiAgICAgaWYgKCF0eXBlKQpAQCAtNzksNyArNzMsNyBAQCBzdGQ6Om9wdGlvbmFsPFNlcnZp
Y2VXb3JrZXJDbGllbnREYXRhPiBTZXJ2aWNlV29ya2VyQ2xpZW50RGF0YTo6ZGVjb2RlKERlY29k
ZXImCiAgICAgaWYgKCF1cmwpCiAgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CiAKLSAgICBy
ZXR1cm4geyB7IFdURk1vdmUoKmlkZW50aWZpZXIpLCBXVEZNb3ZlKCp0eXBlKSwgV1RGTW92ZSgq
ZnJhbWVUeXBlKSwgV1RGTW92ZSgqdXJsKSB9IH07CisgICAgcmV0dXJuIHsgeyBXVEZNb3ZlKCp0
eXBlKSwgV1RGTW92ZSgqZnJhbWVUeXBlKSwgV1RGTW92ZSgqdXJsKSB9IH07CiB9CiAKIH0gLy8g
bmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2Vy
dmljZS9TZXJ2aWNlV29ya2VyQ2xpZW50SWRlbnRpZmllci5oIGIvU291cmNlL1dlYkNvcmUvd29y
a2Vycy9zZXJ2aWNlL1NlcnZpY2VXb3JrZXJDbGllbnRJZGVudGlmaWVyLmgKaW5kZXggYTE1MmJl
MTc0YTg5OGM1NDVhM2NmMjA4YWQxMmU4NDcxOWMzOGVlNi4uNjk0OWY5MjZmZDUxOGY1NGRiNzE0
ZWYzOWFjNzQxZDFhNTMyNTJjNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9z
ZXJ2aWNlL1NlcnZpY2VXb3JrZXJDbGllbnRJZGVudGlmaWVyLmgKKysrIGIvU291cmNlL1dlYkNv
cmUvd29ya2Vycy9zZXJ2aWNlL1NlcnZpY2VXb3JrZXJDbGllbnRJZGVudGlmaWVyLmgKQEAgLTI1
LDE1ICsyNSwxNiBAQAogCiAjcHJhZ21hIG9uY2UKIAorI2luY2x1ZGUgIlNlcnZpY2VXb3JrZXJU
eXBlcy5oIgogI2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgogCiBuYW1lc3BhY2UgV2Vi
Q29yZSB7CiAKIHN0cnVjdCBTZXJ2aWNlV29ya2VyQ2xpZW50SWRlbnRpZmllciB7Ci0gICAgdWlu
dDY0X3Qgc2VydmVyQ29ubmVjdGlvbklkZW50aWZpZXI7CisgICAgU1dTZXJ2ZXJDb25uZWN0aW9u
SWRlbnRpZmllciBzZXJ2ZXJDb25uZWN0aW9uSWRlbnRpZmllcjsKICAgICB1aW50NjRfdCBzY3Jp
cHRFeGVjdXRpb25Db250ZXh0SWRlbnRpZmllcjsKIAotICAgIFN0cmluZyB0b1N0cmluZygpIGNv
bnN0IHsgcmV0dXJuIFN0cmluZzo6bnVtYmVyKHNlcnZlckNvbm5lY3Rpb25JZGVudGlmaWVyKSAr
ICItIiArICBTdHJpbmc6Om51bWJlcihzY3JpcHRFeGVjdXRpb25Db250ZXh0SWRlbnRpZmllcik7
IH0KKyAgICBTdHJpbmcgdG9TdHJpbmcoKSBjb25zdCB7IHJldHVybiBTdHJpbmc6Om51bWJlcihz
ZXJ2ZXJDb25uZWN0aW9uSWRlbnRpZmllci50b1Vuc2lnbmVkSW50ZWdlcigpKSArICItIiArICBT
dHJpbmc6Om51bWJlcihzY3JpcHRFeGVjdXRpb25Db250ZXh0SWRlbnRpZmllcik7IH0KIAogICAg
IHRlbXBsYXRlPGNsYXNzIEVuY29kZXI+IHZvaWQgZW5jb2RlKEVuY29kZXImKSBjb25zdDsKICAg
ICB0ZW1wbGF0ZTxjbGFzcyBEZWNvZGVyPiBzdGF0aWMgc3RkOjpvcHRpb25hbDxTZXJ2aWNlV29y
a2VyQ2xpZW50SWRlbnRpZmllcj4gZGVjb2RlKERlY29kZXImKTsKQEAgLTQ4LDcgKzQ5LDcgQEAg
dm9pZCBTZXJ2aWNlV29ya2VyQ2xpZW50SWRlbnRpZmllcjo6ZW5jb2RlKEVuY29kZXImIGVuY29k
ZXIpIGNvbnN0CiB0ZW1wbGF0ZTxjbGFzcyBEZWNvZGVyPgogc3RkOjpvcHRpb25hbDxTZXJ2aWNl
V29ya2VyQ2xpZW50SWRlbnRpZmllcj4gU2VydmljZVdvcmtlckNsaWVudElkZW50aWZpZXI6OmRl
Y29kZShEZWNvZGVyJiBkZWNvZGVyKQogewotICAgIHN0ZDo6b3B0aW9uYWw8dWludDY0X3Q+IHNl
cnZlckNvbm5lY3Rpb25JZGVudGlmaWVyOworICAgIHN0ZDo6b3B0aW9uYWw8U1dTZXJ2ZXJDb25u
ZWN0aW9uSWRlbnRpZmllcj4gc2VydmVyQ29ubmVjdGlvbklkZW50aWZpZXI7CiAgICAgZGVjb2Rl
ciA+PiBzZXJ2ZXJDb25uZWN0aW9uSWRlbnRpZmllcjsKICAgICBpZiAoIXNlcnZlckNvbm5lY3Rp
b25JZGVudGlmaWVyKQogICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL1NlcnZpY2VXb3JrZXJDb250YWluZXIuY3Bw
IGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL1NlcnZpY2VXb3JrZXJDb250YWluZXIu
Y3BwCmluZGV4IDY3OWIwZDdlMjQ4N2FkN2IxM2Q3YjQ2NTg0YzZhODk1MzFiMzI4NmUuLjBmZDMw
MGZkNmQ2NTg2ODY0NDdjNDYyNTQyZDYzNmQzNDUxNzRhNDggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3dvcmtlcnMvc2VydmljZS9TZXJ2aWNlV29ya2VyQ29udGFpbmVyLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvU2VydmljZVdvcmtlckNvbnRhaW5lci5jcHAK
QEAgLTk4LDcgKzk4LDcgQEAgdm9pZCBTZXJ2aWNlV29ya2VyQ29udGFpbmVyOjphZGRSZWdpc3Ry
YXRpb24oY29uc3QgU3RyaW5nJiByZWxhdGl2ZVNjcmlwdFVSTCwgY28KICAgICBpZiAoIW1fc3dD
b25uZWN0aW9uKQogICAgICAgICBtX3N3Q29ubmVjdGlvbiA9ICZTZXJ2aWNlV29ya2VyUHJvdmlk
ZXI6OnNpbmdsZXRvbigpLnNlcnZpY2VXb3JrZXJDb25uZWN0aW9uRm9yU2Vzc2lvbihzY3JpcHRF
eGVjdXRpb25Db250ZXh0KCktPnNlc3Npb25JRCgpKTsKIAotICAgIFNlcnZpY2VXb3JrZXJKb2JE
YXRhIGpvYkRhdGEobV9zd0Nvbm5lY3Rpb24tPmlkZW50aWZpZXIoKSk7CisgICAgU2VydmljZVdv
cmtlckpvYkRhdGEgam9iRGF0YShtX3N3Q29ubmVjdGlvbi0+c2VydmVyQ29ubmVjdGlvbklkZW50
aWZpZXIoKSk7CiAKICAgICBqb2JEYXRhLnNjcmlwdFVSTCA9IGNvbnRleHQtPmNvbXBsZXRlVVJM
KHJlbGF0aXZlU2NyaXB0VVJMKTsKICAgICBpZiAoIWpvYkRhdGEuc2NyaXB0VVJMLmlzVmFsaWQo
KSkgewpAQCAtMTU2LDcgKzE1Niw3IEBAIHZvaWQgU2VydmljZVdvcmtlckNvbnRhaW5lcjo6cmVt
b3ZlUmVnaXN0cmF0aW9uKGNvbnN0IFVSTCYgc2NvcGVVUkwsIFJlZjxEZWZlcnJlCiAgICAgICAg
IHJldHVybjsKICAgICB9CiAKLSAgICBTZXJ2aWNlV29ya2VySm9iRGF0YSBqb2JEYXRhKG1fc3dD
b25uZWN0aW9uLT5pZGVudGlmaWVyKCkpOworICAgIFNlcnZpY2VXb3JrZXJKb2JEYXRhIGpvYkRh
dGEobV9zd0Nvbm5lY3Rpb24tPnNlcnZlckNvbm5lY3Rpb25JZGVudGlmaWVyKCkpOwogICAgIGpv
YkRhdGEuY2xpZW50Q3JlYXRpb25VUkwgPSBjb250ZXh0LT51cmwoKTsKICAgICBqb2JEYXRhLnRv
cE9yaWdpbiA9IFNlY3VyaXR5T3JpZ2luRGF0YTo6ZnJvbVNlY3VyaXR5T3JpZ2luKGNvbnRleHQt
PnRvcE9yaWdpbigpKTsKICAgICBqb2JEYXRhLnR5cGUgPSBTZXJ2aWNlV29ya2VySm9iVHlwZTo6
VW5yZWdpc3RlcjsKQEAgLTE4MCw3ICsxODAsNyBAQCB2b2lkIFNlcnZpY2VXb3JrZXJDb250YWlu
ZXI6OnVwZGF0ZVJlZ2lzdHJhdGlvbihjb25zdCBVUkwmIHNjb3BlVVJMLCBjb25zdCBVUkwmCiAg
ICAgICAgIHJldHVybjsKICAgICB9CiAKLSAgICBTZXJ2aWNlV29ya2VySm9iRGF0YSBqb2JEYXRh
KG1fc3dDb25uZWN0aW9uLT5pZGVudGlmaWVyKCkpOworICAgIFNlcnZpY2VXb3JrZXJKb2JEYXRh
IGpvYkRhdGEobV9zd0Nvbm5lY3Rpb24tPnNlcnZlckNvbm5lY3Rpb25JZGVudGlmaWVyKCkpOwog
ICAgIGpvYkRhdGEuY2xpZW50Q3JlYXRpb25VUkwgPSBjb250ZXh0LT51cmwoKTsKICAgICBqb2JE
YXRhLnRvcE9yaWdpbiA9IFNlY3VyaXR5T3JpZ2luRGF0YTo6ZnJvbVNlY3VyaXR5T3JpZ2luKGNv
bnRleHQtPnRvcE9yaWdpbigpKTsKICAgICBqb2JEYXRhLnR5cGUgPSBTZXJ2aWNlV29ya2VySm9i
VHlwZTo6VXBkYXRlOwpAQCAtMzgzLDEwICszODMsMTAgQEAgdm9pZCBTZXJ2aWNlV29ya2VyQ29u
dGFpbmVyOjpqb2JEaWRGaW5pc2goU2VydmljZVdvcmtlckpvYiYgam9iKQogICAgIHVuc2V0UGVu
ZGluZ0FjdGl2aXR5KHRoaXMpOwogfQogCi11aW50NjRfdCBTZXJ2aWNlV29ya2VyQ29udGFpbmVy
Ojpjb25uZWN0aW9uSWRlbnRpZmllcigpCitTV1NlcnZlckNvbm5lY3Rpb25JZGVudGlmaWVyIFNl
cnZpY2VXb3JrZXJDb250YWluZXI6OmNvbm5lY3Rpb25JZGVudGlmaWVyKCkKIHsKICAgICBBU1NF
UlQobV9zd0Nvbm5lY3Rpb24pOwotICAgIHJldHVybiBtX3N3Q29ubmVjdGlvbi0+aWRlbnRpZmll
cigpOworICAgIHJldHVybiBtX3N3Q29ubmVjdGlvbi0+c2VydmVyQ29ubmVjdGlvbklkZW50aWZp
ZXIoKTsKIH0KIAogY29uc3QgY2hhciogU2VydmljZVdvcmtlckNvbnRhaW5lcjo6YWN0aXZlRE9N
T2JqZWN0TmFtZSgpIGNvbnN0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3Nl
cnZpY2UvU2VydmljZVdvcmtlckNvbnRhaW5lci5oIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9z
ZXJ2aWNlL1NlcnZpY2VXb3JrZXJDb250YWluZXIuaAppbmRleCA0MWU5MmU5ZWMxNTZjYmIzMGUx
MWRkYmI4OWYyNmM1NzVlZGZmOGIwLi5iOGQ1ODc2YWExOWE3NzM5NDVkZTI2NDk1ZGJkZDQ2NzZj
MWI2ZmM5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvU2Vydmlj
ZVdvcmtlckNvbnRhaW5lci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9T
ZXJ2aWNlV29ya2VyQ29udGFpbmVyLmgKQEAgLTk1LDcgKzk1LDcgQEAgcHJpdmF0ZToKIAogICAg
IHZvaWQgam9iRGlkRmluaXNoKFNlcnZpY2VXb3JrZXJKb2ImKTsKIAotICAgIHVpbnQ2NF90IGNv
bm5lY3Rpb25JZGVudGlmaWVyKCkgZmluYWw7CisgICAgU1dTZXJ2ZXJDb25uZWN0aW9uSWRlbnRp
ZmllciBjb25uZWN0aW9uSWRlbnRpZmllcigpIGZpbmFsOwogCiAgICAgY29uc3QgY2hhciogYWN0
aXZlRE9NT2JqZWN0TmFtZSgpIGNvbnN0IGZpbmFsOwogICAgIGJvb2wgY2FuU3VzcGVuZEZvckRv
Y3VtZW50U3VzcGVuc2lvbigpIGNvbnN0IGZpbmFsOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvd29ya2Vycy9zZXJ2aWNlL1NlcnZpY2VXb3JrZXJGZXRjaFJlc3VsdC5oIGIvU291cmNlL1dl
YkNvcmUvd29ya2Vycy9zZXJ2aWNlL1NlcnZpY2VXb3JrZXJGZXRjaFJlc3VsdC5oCmluZGV4IGVm
N2U3MmRjMzEzMzYyOTg5MGYxZThhYjFkNmI3MWNlNjEyYjIzZWQuLjM2MDQ0NDQ2M2ExYzdkMmQ0
OWUzODVlYWUyYTA0NmY4NzNhZDA4MGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3dvcmtl
cnMvc2VydmljZS9TZXJ2aWNlV29ya2VyRmV0Y2hSZXN1bHQuaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS93b3JrZXJzL3NlcnZpY2UvU2VydmljZVdvcmtlckZldGNoUmVzdWx0LmgKQEAgLTI5LDEyICsy
OSwxMyBAQAogCiAjaW5jbHVkZSAiUmVzb3VyY2VFcnJvci5oIgogI2luY2x1ZGUgIlNlcnZpY2VX
b3JrZXJSZWdpc3RyYXRpb25LZXkuaCIKKyNpbmNsdWRlICJTZXJ2aWNlV29ya2VyVHlwZXMuaCIK
IAogbmFtZXNwYWNlIFdlYkNvcmUgewogCiBzdHJ1Y3QgU2VydmljZVdvcmtlckZldGNoUmVzdWx0
IHsKICAgICB1aW50NjRfdCBqb2JJZGVudGlmaWVyOwotICAgIHVpbnQ2NF90IGNvbm5lY3Rpb25J
ZGVudGlmaWVyOworICAgIFNXU2VydmVyQ29ubmVjdGlvbklkZW50aWZpZXIgY29ubmVjdGlvbklk
ZW50aWZpZXI7CiAgICAgU2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbktleSByZWdpc3RyYXRpb25L
ZXk7CiAgICAgU3RyaW5nIHNjcmlwdDsKICAgICBSZXNvdXJjZUVycm9yIHNjcmlwdEVycm9yOwpA
QCAtNTQsOCArNTUsMTIgQEAgYm9vbCBTZXJ2aWNlV29ya2VyRmV0Y2hSZXN1bHQ6OmRlY29kZShE
ZWNvZGVyJiBkZWNvZGVyLCBTZXJ2aWNlV29ya2VyRmV0Y2hSZXN1bHQKIHsKICAgICBpZiAoIWRl
Y29kZXIuZGVjb2RlKHJlc3VsdC5qb2JJZGVudGlmaWVyKSkKICAgICAgICAgcmV0dXJuIGZhbHNl
OwotICAgIGlmICghZGVjb2Rlci5kZWNvZGUocmVzdWx0LmNvbm5lY3Rpb25JZGVudGlmaWVyKSkK
KworICAgIHN0ZDo6b3B0aW9uYWw8U1dTZXJ2ZXJDb25uZWN0aW9uSWRlbnRpZmllcj4gY29ubmVj
dGlvbklkZW50aWZpZXI7CisgICAgZGVjb2RlciA+PiBjb25uZWN0aW9uSWRlbnRpZmllcjsKKyAg
ICBpZiAoIWNvbm5lY3Rpb25JZGVudGlmaWVyKQogICAgICAgICByZXR1cm4gZmFsc2U7CisgICAg
cmVzdWx0LmNvbm5lY3Rpb25JZGVudGlmaWVyID0gKmNvbm5lY3Rpb25JZGVudGlmaWVyOwogICAg
IAogICAgIGF1dG8gcmVnaXN0cmF0aW9uS2V5ID0gU2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbktl
eTo6ZGVjb2RlKGRlY29kZXIpOwogICAgIGlmICghcmVnaXN0cmF0aW9uS2V5KQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL1NlcnZpY2VXb3JrZXJKb2JDbGllbnQu
aCBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9TZXJ2aWNlV29ya2VySm9iQ2xpZW50
LmgKaW5kZXggNzE1YTljMzNjNWM4MGI1YTUzNWQ1NmU2OGExODZhMjliY2VmZTg2YS4uMDJhOGM0
NDdhM2Q5YmI1MTk4MTIxZTM5Y2U2YjQ2ZThiY2YyN2IyOSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvd29ya2Vycy9zZXJ2aWNlL1NlcnZpY2VXb3JrZXJKb2JDbGllbnQuaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvU2VydmljZVdvcmtlckpvYkNsaWVudC5oCkBAIC0y
Nyw2ICsyNyw4IEBACiAKICNpZiBFTkFCTEUoU0VSVklDRV9XT1JLRVIpCiAKKyNpbmNsdWRlICJT
ZXJ2aWNlV29ya2VyVHlwZXMuaCIKKwogbmFtZXNwYWNlIFdlYkNvcmUgewogCiBjbGFzcyBFeGNl
cHRpb247CkBAIC00Niw3ICs0OCw3IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQgam9iRmlu
aXNoZWRMb2FkaW5nU2NyaXB0KFNlcnZpY2VXb3JrZXJKb2ImLCBjb25zdCBTdHJpbmcmKSA9IDA7
CiAgICAgdmlydHVhbCB2b2lkIGpvYkZhaWxlZExvYWRpbmdTY3JpcHQoU2VydmljZVdvcmtlckpv
YiYsIGNvbnN0IFJlc291cmNlRXJyb3ImLCBzdGQ6Om9wdGlvbmFsPEV4Y2VwdGlvbj4mJikgPSAw
OwogCi0gICAgdmlydHVhbCB1aW50NjRfdCBjb25uZWN0aW9uSWRlbnRpZmllcigpID0gMDsKKyAg
ICB2aXJ0dWFsIFNXU2VydmVyQ29ubmVjdGlvbklkZW50aWZpZXIgY29ubmVjdGlvbklkZW50aWZp
ZXIoKSA9IDA7CiAKICAgICB2aXJ0dWFsIHZvaWQgcmVmKCkgPSAwOwogICAgIHZpcnR1YWwgdm9p
ZCBkZXJlZigpID0gMDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2Vydmlj
ZS9TZXJ2aWNlV29ya2VySm9iRGF0YS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZp
Y2UvU2VydmljZVdvcmtlckpvYkRhdGEuY3BwCmluZGV4IDE4MWU4NmVlNzJkNTAwNGUyNjhlZDQ2
MGQ4Nzg3MDEyYzhhM2FlMDYuLmQ4YmM0M2ViMjZjNDk2OTIzMmNhNDNhM2NiMTEyYjcyNjEyMGQ0
Y2MgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9TZXJ2aWNlV29y
a2VySm9iRGF0YS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL1NlcnZp
Y2VXb3JrZXJKb2JEYXRhLmNwcApAQCAtMzAsMTMgKzMwLDEzIEBACiAKIG5hbWVzcGFjZSBXZWJD
b3JlIHsKIAotU2VydmljZVdvcmtlckpvYkRhdGE6OlNlcnZpY2VXb3JrZXJKb2JEYXRhKHVpbnQ2
NF90IGpvYklkZW50aWZpZXIsIHVpbnQ2NF90IGNvbm5lY3Rpb25JZGVudGlmaWVyKQorU2Vydmlj
ZVdvcmtlckpvYkRhdGE6OlNlcnZpY2VXb3JrZXJKb2JEYXRhKHVpbnQ2NF90IGpvYklkZW50aWZp
ZXIsIFNXU2VydmVyQ29ubmVjdGlvbklkZW50aWZpZXIgY29ubmVjdGlvbklkZW50aWZpZXIpCiAg
ICAgOiBUaHJlYWRTYWZlSWRlbnRpZmllZChqb2JJZGVudGlmaWVyKQogICAgICwgbV9jb25uZWN0
aW9uSWRlbnRpZmllcihjb25uZWN0aW9uSWRlbnRpZmllcikKIHsKIH0KIAotU2VydmljZVdvcmtl
ckpvYkRhdGE6OlNlcnZpY2VXb3JrZXJKb2JEYXRhKHVpbnQ2NF90IGNvbm5lY3Rpb25JZGVudGlm
aWVyKQorU2VydmljZVdvcmtlckpvYkRhdGE6OlNlcnZpY2VXb3JrZXJKb2JEYXRhKFNXU2VydmVy
Q29ubmVjdGlvbklkZW50aWZpZXIgY29ubmVjdGlvbklkZW50aWZpZXIpCiAgICAgOiBtX2Nvbm5l
Y3Rpb25JZGVudGlmaWVyKGNvbm5lY3Rpb25JZGVudGlmaWVyKQogewogfQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL1NlcnZpY2VXb3JrZXJKb2JEYXRhLmggYi9T
b3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvU2VydmljZVdvcmtlckpvYkRhdGEuaAppbmRl
eCBiNGE2Njk1YzI4MWUxMzBlOGJlNzBjMjEzZjkzMDc4ZmZkOTdhNzczLi44YjQ2N2E5NmFmYzRk
MWI5NTFhODczMWYyODYzZTNjYWI2ZTcxOWYwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS93
b3JrZXJzL3NlcnZpY2UvU2VydmljZVdvcmtlckpvYkRhdGEuaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS93b3JrZXJzL3NlcnZpY2UvU2VydmljZVdvcmtlckpvYkRhdGEuaApAQCAtMzEsNiArMzEsNyBA
QAogI2luY2x1ZGUgIlNlcnZpY2VXb3JrZXJKb2JUeXBlLmgiCiAjaW5jbHVkZSAiU2VydmljZVdv
cmtlclJlZ2lzdHJhdGlvbktleS5oIgogI2luY2x1ZGUgIlNlcnZpY2VXb3JrZXJSZWdpc3RyYXRp
b25PcHRpb25zLmgiCisjaW5jbHVkZSAiU2VydmljZVdvcmtlclR5cGVzLmgiCiAjaW5jbHVkZSAi
VVJMLmgiCiAjaW5jbHVkZSA8d3RmL0lkZW50aWZpZWQuaD4KIApAQCAtMzgsMTEgKzM5LDExIEBA
IG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogc3RydWN0IFNlcnZpY2VXb3JrZXJKb2JEYXRhIDogcHVi
bGljIFRocmVhZFNhZmVJZGVudGlmaWVkPFNlcnZpY2VXb3JrZXJKb2JEYXRhPiB7CiBwdWJsaWM6
Ci0gICAgZXhwbGljaXQgU2VydmljZVdvcmtlckpvYkRhdGEodWludDY0X3QgY29ubmVjdGlvbklk
ZW50aWZpZXIpOworICAgIGV4cGxpY2l0IFNlcnZpY2VXb3JrZXJKb2JEYXRhKFNXU2VydmVyQ29u
bmVjdGlvbklkZW50aWZpZXIpOwogICAgIFNlcnZpY2VXb3JrZXJKb2JEYXRhKGNvbnN0IFNlcnZp
Y2VXb3JrZXJKb2JEYXRhJikgPSBkZWZhdWx0OwogICAgIFNlcnZpY2VXb3JrZXJKb2JEYXRhKCkg
PSBkZWZhdWx0OwogCi0gICAgdWludDY0X3QgY29ubmVjdGlvbklkZW50aWZpZXIoKSBjb25zdCB7
IHJldHVybiBtX2Nvbm5lY3Rpb25JZGVudGlmaWVyOyB9CisgICAgU1dTZXJ2ZXJDb25uZWN0aW9u
SWRlbnRpZmllciBjb25uZWN0aW9uSWRlbnRpZmllcigpIGNvbnN0IHsgcmV0dXJuIG1fY29ubmVj
dGlvbklkZW50aWZpZXI7IH0KIAogICAgIFVSTCBzY3JpcHRVUkw7CiAgICAgVVJMIGNsaWVudENy
ZWF0aW9uVVJMOwpAQCAtNTksOSArNjAsOSBAQCBwdWJsaWM6CiAgICAgdGVtcGxhdGU8Y2xhc3Mg
RGVjb2Rlcj4gc3RhdGljIHN0ZDo6b3B0aW9uYWw8U2VydmljZVdvcmtlckpvYkRhdGE+IGRlY29k
ZShEZWNvZGVyJik7CiAKIHByaXZhdGU6Ci0gICAgV0VCQ09SRV9FWFBPUlQgU2VydmljZVdvcmtl
ckpvYkRhdGEodWludDY0X3Qgam9iSWRlbnRpZmllciwgdWludDY0X3QgY29ubmVjdGlvbklkZW50
aWZpZXIpOworICAgIFdFQkNPUkVfRVhQT1JUIFNlcnZpY2VXb3JrZXJKb2JEYXRhKHVpbnQ2NF90
IGpvYklkZW50aWZpZXIsIFNXU2VydmVyQ29ubmVjdGlvbklkZW50aWZpZXIpOwogCi0gICAgdWlu
dDY0X3QgbV9jb25uZWN0aW9uSWRlbnRpZmllciB7IDAgfTsKKyAgICBTV1NlcnZlckNvbm5lY3Rp
b25JZGVudGlmaWVyIG1fY29ubmVjdGlvbklkZW50aWZpZXI7CiB9OwogCiB0ZW1wbGF0ZTxjbGFz
cyBFbmNvZGVyPgpAQCAtODYsMTEgKzg3LDEyIEBAIHN0ZDo6b3B0aW9uYWw8U2VydmljZVdvcmtl
ckpvYkRhdGE+IFNlcnZpY2VXb3JrZXJKb2JEYXRhOjpkZWNvZGUoRGVjb2RlciYgZGVjb2RlCiAg
ICAgaWYgKCFkZWNvZGVyLmRlY29kZShqb2JJZGVudGlmaWVyKSkKICAgICAgICAgcmV0dXJuIHN0
ZDo6bnVsbG9wdDsKIAotICAgIHVpbnQ2NF90IGNvbm5lY3Rpb25JZGVudGlmaWVyOwotICAgIGlm
ICghZGVjb2Rlci5kZWNvZGUoY29ubmVjdGlvbklkZW50aWZpZXIpKQorICAgIHN0ZDo6b3B0aW9u
YWw8U1dTZXJ2ZXJDb25uZWN0aW9uSWRlbnRpZmllcj4gY29ubmVjdGlvbklkZW50aWZpZXI7Cisg
ICAgZGVjb2RlciA+PiBjb25uZWN0aW9uSWRlbnRpZmllcjsKKyAgICBpZiAoIWNvbm5lY3Rpb25J
ZGVudGlmaWVyKQogICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OwogCi0gICAgc3RkOjpvcHRp
b25hbDxTZXJ2aWNlV29ya2VySm9iRGF0YT4gam9iRGF0YSA9IHsgeyBqb2JJZGVudGlmaWVyLCBj
b25uZWN0aW9uSWRlbnRpZmllciB9IH07CisgICAgc3RkOjpvcHRpb25hbDxTZXJ2aWNlV29ya2Vy
Sm9iRGF0YT4gam9iRGF0YSA9IHsgeyBqb2JJZGVudGlmaWVyLCAqY29ubmVjdGlvbklkZW50aWZp
ZXIgfSB9OwogCiAgICAgaWYgKCFkZWNvZGVyLmRlY29kZShqb2JEYXRhLT5zY3JpcHRVUkwpKQog
ICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
d29ya2Vycy9zZXJ2aWNlL1NlcnZpY2VXb3JrZXJUeXBlcy5oIGIvU291cmNlL1dlYkNvcmUvd29y
a2Vycy9zZXJ2aWNlL1NlcnZpY2VXb3JrZXJUeXBlcy5oCmluZGV4IGIzMjNiODllNjdlY2E0OTdi
MDdmN2Y3MGFmOGFhZWMxN2MzZGMxNjYuLjE5NTM0ZDE4NzUwYTFmYTA4ZWM4NzU0ZDRiYjRmNTM2
OGY3YWZkMTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9TZXJ2
aWNlV29ya2VyVHlwZXMuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvU2Vy
dmljZVdvcmtlclR5cGVzLmgKQEAgLTYxLDYgKzYxLDkgQEAgdXNpbmcgU2VydmljZVdvcmtlclJl
Z2lzdHJhdGlvbklkZW50aWZpZXIgPSBPYmplY3RJZGVudGlmaWVyPFNlcnZpY2VXb3JrZXJSZWdp
c3QKIGVudW0gU1dTZXJ2ZXJUb0NvbnRleHRDb25uZWN0aW9uSWRlbnRpZmllclR5cGUgeyB9Owog
dXNpbmcgU1dTZXJ2ZXJUb0NvbnRleHRDb25uZWN0aW9uSWRlbnRpZmllciA9IE9iamVjdElkZW50
aWZpZXI8U1dTZXJ2ZXJUb0NvbnRleHRDb25uZWN0aW9uSWRlbnRpZmllclR5cGU+OwogCitlbnVt
IFNXU2VydmVyQ29ubmVjdGlvbklkZW50aWZpZXJUeXBlIHsgfTsKK3VzaW5nIFNXU2VydmVyQ29u
bmVjdGlvbklkZW50aWZpZXIgPSBPYmplY3RJZGVudGlmaWVyPFNXU2VydmVyQ29ubmVjdGlvbklk
ZW50aWZpZXJUeXBlPjsKKwogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQogCiBuYW1lc3BhY2UgV1RG
IHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9TZXJ2aWNlV29y
a2VyV2luZG93Q2xpZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9TZXJ2
aWNlV29ya2VyV2luZG93Q2xpZW50LmNwcAppbmRleCBhYjNjNzViODUxMzE2ZDlkM2VlZjkyODky
OTZkYTc5YzE5M2EyMDJiLi40ZmViOTA4MmQ1ZmE4Y2NhZjA0ZmYwYjczOTNiZTczNzVmNDlkZGMz
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvU2VydmljZVdvcmtl
cldpbmRvd0NsaWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL1Nl
cnZpY2VXb3JrZXJXaW5kb3dDbGllbnQuY3BwCkBAIC0zMiw4ICszMiw4IEBACiAKIG5hbWVzcGFj
ZSBXZWJDb3JlIHsKIAotU2VydmljZVdvcmtlcldpbmRvd0NsaWVudDo6U2VydmljZVdvcmtlcldp
bmRvd0NsaWVudChTY3JpcHRFeGVjdXRpb25Db250ZXh0JiBjb250ZXh0LCBTZXJ2aWNlV29ya2Vy
Q2xpZW50RGF0YSYmIGRhdGEpCi0gICAgOiBTZXJ2aWNlV29ya2VyQ2xpZW50KGNvbnRleHQsIFdU
Rk1vdmUoZGF0YSkpCitTZXJ2aWNlV29ya2VyV2luZG93Q2xpZW50OjpTZXJ2aWNlV29ya2VyV2lu
ZG93Q2xpZW50KFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmIGNvbnRleHQsIFNlcnZpY2VXb3JrZXJD
bGllbnRJZGVudGlmaWVyIGlkZW50aWZpZXIsIFNlcnZpY2VXb3JrZXJDbGllbnREYXRhJiYgZGF0
YSkKKyAgICA6IFNlcnZpY2VXb3JrZXJDbGllbnQoY29udGV4dCwgaWRlbnRpZmllciwgV1RGTW92
ZShkYXRhKSkKIHsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2
aWNlL1NlcnZpY2VXb3JrZXJXaW5kb3dDbGllbnQuaCBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMv
c2VydmljZS9TZXJ2aWNlV29ya2VyV2luZG93Q2xpZW50LmgKaW5kZXggNTU1ZWU3OWMzMDE5YWEw
MTQ4YmJjMjdjNDYwMTFkY2FiZTlkYzhlMy4uYzdiNDU0YWNlZmRlMDRjMGUxODYzZDkxNjg2OWUw
Mjg4NzMwMDg5ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL1Nl
cnZpY2VXb3JrZXJXaW5kb3dDbGllbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3Nl
cnZpY2UvU2VydmljZVdvcmtlcldpbmRvd0NsaWVudC5oCkBAIC0zNiw5ICszNiw5IEBAIGNsYXNz
IERlZmVycmVkUHJvbWlzZTsKIAogY2xhc3MgU2VydmljZVdvcmtlcldpbmRvd0NsaWVudCBmaW5h
bCA6IHB1YmxpYyBTZXJ2aWNlV29ya2VyQ2xpZW50IHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgUmVm
PFNlcnZpY2VXb3JrZXJXaW5kb3dDbGllbnQ+IGNyZWF0ZShTY3JpcHRFeGVjdXRpb25Db250ZXh0
JiBjb250ZXh0LCBTZXJ2aWNlV29ya2VyQ2xpZW50RGF0YSYmIGRhdGEpCisgICAgc3RhdGljIFJl
ZjxTZXJ2aWNlV29ya2VyV2luZG93Q2xpZW50PiBjcmVhdGUoU2NyaXB0RXhlY3V0aW9uQ29udGV4
dCYgY29udGV4dCwgU2VydmljZVdvcmtlckNsaWVudElkZW50aWZpZXIgaWRlbnRpZmllciwgU2Vy
dmljZVdvcmtlckNsaWVudERhdGEmJiBkYXRhKQogICAgIHsKLSAgICAgICAgcmV0dXJuIGFkb3B0
UmVmKCpuZXcgU2VydmljZVdvcmtlcldpbmRvd0NsaWVudChjb250ZXh0LCBXVEZNb3ZlKGRhdGEp
KSk7CisgICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFNlcnZpY2VXb3JrZXJXaW5kb3dDbGll
bnQoY29udGV4dCwgaWRlbnRpZmllciwgV1RGTW92ZShkYXRhKSkpOwogICAgIH0KIAogICAgIFZp
c2liaWxpdHlTdGF0ZSB2aXNpYmlsaXR5U3RhdGUoKSBjb25zdDsKQEAgLTQ4LDcgKzQ4LDcgQEAg
cHVibGljOgogICAgIHZvaWQgbmF2aWdhdGUoY29uc3QgU3RyaW5nJiB1cmwsIFJlZjxEZWZlcnJl
ZFByb21pc2U+JiYpOwogCiBwcml2YXRlOgotICAgIFNlcnZpY2VXb3JrZXJXaW5kb3dDbGllbnQo
U2NyaXB0RXhlY3V0aW9uQ29udGV4dCYsIFNlcnZpY2VXb3JrZXJDbGllbnREYXRhJiYpOworICAg
IFNlcnZpY2VXb3JrZXJXaW5kb3dDbGllbnQoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYsIFNlcnZp
Y2VXb3JrZXJDbGllbnRJZGVudGlmaWVyLCBTZXJ2aWNlV29ya2VyQ2xpZW50RGF0YSYmKTsKIH07
CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3dv
cmtlcnMvc2VydmljZS9jb250ZXh0L1NXQ29udGV4dE1hbmFnZXIuY3BwIGIvU291cmNlL1dlYkNv
cmUvd29ya2Vycy9zZXJ2aWNlL2NvbnRleHQvU1dDb250ZXh0TWFuYWdlci5jcHAKaW5kZXggOWFk
ODNhMjY3MWQzMTA0NGNhYzg5ZTVmMGNiNDdlZDY5ODgzNGU2OC4uNDgyNzhjOGIyNTg0MGIyYzAx
ZTExNTU2MzMxODgxOTY2ZWEyZmQ1MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvd29ya2Vy
cy9zZXJ2aWNlL2NvbnRleHQvU1dDb250ZXh0TWFuYWdlci5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvd29ya2Vycy9zZXJ2aWNlL2NvbnRleHQvU1dDb250ZXh0TWFuYWdlci5jcHAKQEAgLTI3LDYg
KzI3LDcgQEAKIAogI2lmIEVOQUJMRShTRVJWSUNFX1dPUktFUikKICNpbmNsdWRlICJTV0NvbnRl
eHRNYW5hZ2VyLmgiCisjaW5jbHVkZSAiU2VydmljZVdvcmtlckNsaWVudElkZW50aWZpZXIuaCIK
IAogbmFtZXNwYWNlIFdlYkNvcmUgewogCkBAIC02NCwxNCArNjUsMTQgQEAgU2VydmljZVdvcmtl
clRocmVhZFByb3h5KiBTV0NvbnRleHRNYW5hZ2VyOjpzZXJ2aWNlV29ya2VyVGhyZWFkUHJveHko
U2VydmljZVdvcmsKICAgICByZXR1cm4gbV93b3JrZXJNYXAuZ2V0KGlkZW50aWZpZXIpOwogfQog
Ci12b2lkIFNXQ29udGV4dE1hbmFnZXI6OnBvc3RNZXNzYWdlVG9TZXJ2aWNlV29ya2VyR2xvYmFs
U2NvcGUoU2VydmljZVdvcmtlcklkZW50aWZpZXIgZGVzdGluYXRpb24sIFJlZjxTZXJpYWxpemVk
U2NyaXB0VmFsdWU+JiYgbWVzc2FnZSwgU2VydmljZVdvcmtlckNsaWVudERhdGEmJiBzb3VyY2Up
Cit2b2lkIFNXQ29udGV4dE1hbmFnZXI6OnBvc3RNZXNzYWdlVG9TZXJ2aWNlV29ya2VyR2xvYmFs
U2NvcGUoU2VydmljZVdvcmtlcklkZW50aWZpZXIgZGVzdGluYXRpb24sIFJlZjxTZXJpYWxpemVk
U2NyaXB0VmFsdWU+JiYgbWVzc2FnZSwgU2VydmljZVdvcmtlckNsaWVudElkZW50aWZpZXIgc291
cmNlSWRlbnRpZmllciwgU2VydmljZVdvcmtlckNsaWVudERhdGEmJiBzb3VyY2VEYXRhKQogewog
ICAgIGF1dG8qIHNlcnZpY2VXb3JrZXIgPSBtX3dvcmtlck1hcC5nZXQoZGVzdGluYXRpb24pOwog
ICAgIGlmICghc2VydmljZVdvcmtlcikKICAgICAgICAgcmV0dXJuOwogCiAgICAgLy8gRklYTUU6
IFdlIHNob3VsZCBwYXNzIHZhbGlkIE1lc3NhZ2VQb3J0Q2hhbm5lbHMuCi0gICAgc2VydmljZVdv
cmtlci0+dGhyZWFkKCkucG9zdE1lc3NhZ2VUb1NlcnZpY2VXb3JrZXJHbG9iYWxTY29wZShXVEZN
b3ZlKG1lc3NhZ2UpLCBudWxscHRyLCBXVEZNb3ZlKHNvdXJjZSkpOworICAgIHNlcnZpY2VXb3Jr
ZXItPnRocmVhZCgpLnBvc3RNZXNzYWdlVG9TZXJ2aWNlV29ya2VyR2xvYmFsU2NvcGUoV1RGTW92
ZShtZXNzYWdlKSwgbnVsbHB0ciwgc291cmNlSWRlbnRpZmllciwgV1RGTW92ZShzb3VyY2VEYXRh
KSk7CiB9CiAKIHZvaWQgU1dDb250ZXh0TWFuYWdlcjo6ZmlyZUluc3RhbGxFdmVudChTZXJ2aWNl
V29ya2VySWRlbnRpZmllciBpZGVudGlmaWVyKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
d29ya2Vycy9zZXJ2aWNlL2NvbnRleHQvU1dDb250ZXh0TWFuYWdlci5oIGIvU291cmNlL1dlYkNv
cmUvd29ya2Vycy9zZXJ2aWNlL2NvbnRleHQvU1dDb250ZXh0TWFuYWdlci5oCmluZGV4IDczZTky
NDcxOWE5ZDQ1MjJkZWQwMzg2OGQzMzBmODEwZmI3M2FlOWQuLjYxNWNlMDc0NzQ2NzY0ODY2Yjcz
YjM2MTk5MDYzMmQ4NTMwZjY4MDkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMv
c2VydmljZS9jb250ZXh0L1NXQ29udGV4dE1hbmFnZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS93
b3JrZXJzL3NlcnZpY2UvY29udGV4dC9TV0NvbnRleHRNYW5hZ2VyLmgKQEAgLTU4LDcgKzU4LDcg
QEAgcHVibGljOgogCiAgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCByZWdpc3RlclNlcnZpY2VXb3Jr
ZXJUaHJlYWRGb3JJbnN0YWxsKFJlZjxTZXJ2aWNlV29ya2VyVGhyZWFkUHJveHk+JiYpOwogICAg
IFdFQkNPUkVfRVhQT1JUIFNlcnZpY2VXb3JrZXJUaHJlYWRQcm94eSogc2VydmljZVdvcmtlclRo
cmVhZFByb3h5KFNlcnZpY2VXb3JrZXJJZGVudGlmaWVyKSBjb25zdDsKLSAgICBXRUJDT1JFX0VY
UE9SVCB2b2lkIHBvc3RNZXNzYWdlVG9TZXJ2aWNlV29ya2VyR2xvYmFsU2NvcGUoU2VydmljZVdv
cmtlcklkZW50aWZpZXIgZGVzdGluYXRpb24sIFJlZjxTZXJpYWxpemVkU2NyaXB0VmFsdWU+JiYg
bWVzc2FnZSwgU2VydmljZVdvcmtlckNsaWVudERhdGEmJiBzb3VyY2UpOworICAgIFdFQkNPUkVf
RVhQT1JUIHZvaWQgcG9zdE1lc3NhZ2VUb1NlcnZpY2VXb3JrZXJHbG9iYWxTY29wZShTZXJ2aWNl
V29ya2VySWRlbnRpZmllciBkZXN0aW5hdGlvbiwgUmVmPFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZT4m
JiBtZXNzYWdlLCBTZXJ2aWNlV29ya2VyQ2xpZW50SWRlbnRpZmllciBzb3VyY2VJZGVudGlmaWVy
LCBTZXJ2aWNlV29ya2VyQ2xpZW50RGF0YSYmIHNvdXJjZURhdGEpOwogICAgIFdFQkNPUkVfRVhQ
T1JUIHZvaWQgZmlyZUluc3RhbGxFdmVudChTZXJ2aWNlV29ya2VySWRlbnRpZmllcik7CiAgICAg
V0VCQ09SRV9FWFBPUlQgdm9pZCBmaXJlQWN0aXZhdGVFdmVudChTZXJ2aWNlV29ya2VySWRlbnRp
Zmllcik7CiAgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCB0ZXJtaW5hdGVXb3JrZXIoU2VydmljZVdv
cmtlcklkZW50aWZpZXIpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2
aWNlL2NvbnRleHQvU2VydmljZVdvcmtlclRocmVhZC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS93b3Jr
ZXJzL3NlcnZpY2UvY29udGV4dC9TZXJ2aWNlV29ya2VyVGhyZWFkLmNwcAppbmRleCA4YWFmZjMx
MTg4YzQyNjVjMWQ0YTA2OWI3Nzk3OGJiODAwYTMwNjk3Li5kOTJlNTU0ZjlkNTU1NjBmMzc5OGE2
YTU4Mzg5Y2MzOGUyMGI3ZTUxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3Nl
cnZpY2UvY29udGV4dC9TZXJ2aWNlV29ya2VyVGhyZWFkLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS93b3JrZXJzL3NlcnZpY2UvY29udGV4dC9TZXJ2aWNlV29ya2VyVGhyZWFkLmNwcApAQCAtMTA0
LDEyICsxMDQsMTIgQEAgdm9pZCBTZXJ2aWNlV29ya2VyVGhyZWFkOjpwb3N0RmV0Y2hUYXNrKFJl
ZjxTZXJ2aWNlV29ya2VyRmV0Y2g6OkNsaWVudD4mJiBjbGllbnQKICAgICB9LCBXb3JrZXJSdW5M
b29wOjpkZWZhdWx0TW9kZSgpKTsKIH0KIAotdm9pZCBTZXJ2aWNlV29ya2VyVGhyZWFkOjpwb3N0
TWVzc2FnZVRvU2VydmljZVdvcmtlckdsb2JhbFNjb3BlKFJlZjxTZXJpYWxpemVkU2NyaXB0VmFs
dWU+JiYgbWVzc2FnZSwgc3RkOjp1bmlxdWVfcHRyPE1lc3NhZ2VQb3J0Q2hhbm5lbEFycmF5PiYm
IGNoYW5uZWxzLCBTZXJ2aWNlV29ya2VyQ2xpZW50RGF0YSYmIHNvdXJjZSkKK3ZvaWQgU2Vydmlj
ZVdvcmtlclRocmVhZDo6cG9zdE1lc3NhZ2VUb1NlcnZpY2VXb3JrZXJHbG9iYWxTY29wZShSZWY8
U2VyaWFsaXplZFNjcmlwdFZhbHVlPiYmIG1lc3NhZ2UsIHN0ZDo6dW5pcXVlX3B0cjxNZXNzYWdl
UG9ydENoYW5uZWxBcnJheT4mJiBjaGFubmVscywgU2VydmljZVdvcmtlckNsaWVudElkZW50aWZp
ZXIgc291cmNlSWRlbnRpZmllciwgU2VydmljZVdvcmtlckNsaWVudERhdGEmJiBzb3VyY2VEYXRh
KQogewotICAgIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQ6OlRhc2sgdGFzayhbdGhpcywgY2hhbm5l
bHMgPSBXVEZNb3ZlKGNoYW5uZWxzKSwgbWVzc2FnZSA9IFdURk1vdmUobWVzc2FnZSksIHNvdXJj
ZURhdGEgPSBzb3VyY2UuaXNvbGF0ZWRDb3B5KCldIChTY3JpcHRFeGVjdXRpb25Db250ZXh0JiBj
b250ZXh0KSBtdXRhYmxlIHsKKyAgICBTY3JpcHRFeGVjdXRpb25Db250ZXh0OjpUYXNrIHRhc2so
W3RoaXMsIGNoYW5uZWxzID0gV1RGTW92ZShjaGFubmVscyksIG1lc3NhZ2UgPSBXVEZNb3ZlKG1l
c3NhZ2UpLCBzb3VyY2VJZGVudGlmaWVyLCBzb3VyY2VEYXRhID0gc291cmNlRGF0YS5pc29sYXRl
ZENvcHkoKV0gKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmIGNvbnRleHQpIG11dGFibGUgewogICAg
ICAgICBhdXRvJiBzZXJ2aWNlV29ya2VyR2xvYmFsU2NvcGUgPSBkb3duY2FzdDxTZXJ2aWNlV29y
a2VyR2xvYmFsU2NvcGU+KGNvbnRleHQpOwogICAgICAgICBhdXRvIHBvcnRzID0gTWVzc2FnZVBv
cnQ6OmVudGFuZ2xlUG9ydHMoc2VydmljZVdvcmtlckdsb2JhbFNjb3BlLCBXVEZNb3ZlKGNoYW5u
ZWxzKSk7Ci0gICAgICAgIFJlZlB0cjxTZXJ2aWNlV29ya2VyQ2xpZW50PiBzb3VyY2UgPSBTZXJ2
aWNlV29ya2VyV2luZG93Q2xpZW50OjpjcmVhdGUoY29udGV4dCwgV1RGTW92ZShzb3VyY2VEYXRh
KSk7CisgICAgICAgIFJlZlB0cjxTZXJ2aWNlV29ya2VyQ2xpZW50PiBzb3VyY2UgPSBTZXJ2aWNl
V29ya2VyV2luZG93Q2xpZW50OjpjcmVhdGUoY29udGV4dCwgc291cmNlSWRlbnRpZmllciwgV1RG
TW92ZShzb3VyY2VEYXRhKSk7CiAgICAgICAgIGF1dG8gc291cmNlT3JpZ2luID0gU2VjdXJpdHlP
cmlnaW46OmNyZWF0ZShzb3VyY2UtPnVybCgpKTsKICAgICAgICAgYXV0byBtZXNzYWdlRXZlbnQg
PSBFeHRlbmRhYmxlTWVzc2FnZUV2ZW50OjpjcmVhdGUoV1RGTW92ZShwb3J0cyksIFdURk1vdmUo
bWVzc2FnZSksIHNvdXJjZU9yaWdpbi0+dG9TdHJpbmcoKSwgeyB9LCBFeHRlbmRhYmxlTWVzc2Fn
ZUV2ZW50U291cmNlIHsgc291cmNlIH0pOwogICAgICAgICBzZXJ2aWNlV29ya2VyR2xvYmFsU2Nv
cGUuZGlzcGF0Y2hFdmVudChtZXNzYWdlRXZlbnQpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvd29ya2Vycy9zZXJ2aWNlL2NvbnRleHQvU2VydmljZVdvcmtlclRocmVhZC5oIGIvU291cmNl
L1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL2NvbnRleHQvU2VydmljZVdvcmtlclRocmVhZC5oCmlu
ZGV4IDZhMTA4MDY0ZDkwODc2MzAwNjZkMDE1YWZhOTI4NTAwNTI0YjU1NDMuLmI0ZTI3MGI2ZjQ1
NjQwY2JiOTMzMzBjM2ExMDJiZDVhN2RlYWI4YzYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3dvcmtlcnMvc2VydmljZS9jb250ZXh0L1NlcnZpY2VXb3JrZXJUaHJlYWQuaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvY29udGV4dC9TZXJ2aWNlV29ya2VyVGhyZWFkLmgK
QEAgLTU3LDcgKzU3LDcgQEAgcHVibGljOgogICAgIFdvcmtlck9iamVjdFByb3h5JiB3b3JrZXJP
YmplY3RQcm94eSgpIGNvbnN0IHsgcmV0dXJuIG1fd29ya2VyT2JqZWN0UHJveHk7IH0KIAogICAg
IFdFQkNPUkVfRVhQT1JUIHZvaWQgcG9zdEZldGNoVGFzayhSZWY8U2VydmljZVdvcmtlckZldGNo
OjpDbGllbnQ+JiYsIFJlc291cmNlUmVxdWVzdCYmLCBGZXRjaE9wdGlvbnMmJik7Ci0gICAgV0VC
Q09SRV9FWFBPUlQgdm9pZCBwb3N0TWVzc2FnZVRvU2VydmljZVdvcmtlckdsb2JhbFNjb3BlKFJl
ZjxTZXJpYWxpemVkU2NyaXB0VmFsdWU+JiYsIHN0ZDo6dW5pcXVlX3B0cjxNZXNzYWdlUG9ydENo
YW5uZWxBcnJheT4mJiwgU2VydmljZVdvcmtlckNsaWVudERhdGEmJiBzb3VyY2UpOworICAgIFdF
QkNPUkVfRVhQT1JUIHZvaWQgcG9zdE1lc3NhZ2VUb1NlcnZpY2VXb3JrZXJHbG9iYWxTY29wZShS
ZWY8U2VyaWFsaXplZFNjcmlwdFZhbHVlPiYmLCBzdGQ6OnVuaXF1ZV9wdHI8TWVzc2FnZVBvcnRD
aGFubmVsQXJyYXk+JiYsIFNlcnZpY2VXb3JrZXJDbGllbnRJZGVudGlmaWVyIHNvdXJjZUlkZW50
aWZpZXIsIFNlcnZpY2VXb3JrZXJDbGllbnREYXRhJiYgc291cmNlRGF0YSk7CiAgICAgdm9pZCBm
aXJlSW5zdGFsbEV2ZW50KCk7CiAgICAgdm9pZCBmaXJlQWN0aXZhdGVFdmVudCgpOwogCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2Uvc2VydmVyL1NXQ2xpZW50Q29u
bmVjdGlvbi5oIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL3NlcnZlci9TV0NsaWVu
dENvbm5lY3Rpb24uaAppbmRleCBhOWU5ZDkwZjllOWFjMWJmZTRkOTlkMDk5MDAyOWZiMjUxMTAx
MmVmLi43MzQzMmEyMzYyY2QxNDcwNmZhYTM0MzEyMmU0Yzg1ZjQ5MTkzNjRkIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2Uvc2VydmVyL1NXQ2xpZW50Q29ubmVjdGlv
bi5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9zZXJ2ZXIvU1dDbGllbnRD
b25uZWN0aW9uLmgKQEAgLTY4LDggKzY4LDggQEAgcHVibGljOgogCiAgICAgdmlydHVhbCB2b2lk
IGRpZFJlc29sdmVSZWdpc3RyYXRpb25Qcm9taXNlKGNvbnN0IFNlcnZpY2VXb3JrZXJSZWdpc3Ry
YXRpb25LZXkmKSA9IDA7CiAKLSAgICB2aXJ0dWFsIHZvaWQgcG9zdE1lc3NhZ2VUb1NlcnZpY2VX
b3JrZXJHbG9iYWxTY29wZShTZXJ2aWNlV29ya2VySWRlbnRpZmllciBkZXN0aW5hdGlvbklkZW50
aWZpZXIsIFJlZjxTZXJpYWxpemVkU2NyaXB0VmFsdWU+JiYsIFNlcnZpY2VXb3JrZXJDbGllbnRE
YXRhJiYgc291cmNlKSA9IDA7Ci0gICAgdmlydHVhbCB1aW50NjRfdCBpZGVudGlmaWVyKCkgY29u
c3QgPSAwOworICAgIHZpcnR1YWwgdm9pZCBwb3N0TWVzc2FnZVRvU2VydmljZVdvcmtlckdsb2Jh
bFNjb3BlKFNlcnZpY2VXb3JrZXJJZGVudGlmaWVyIGRlc3RpbmF0aW9uSWRlbnRpZmllciwgUmVm
PFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZT4mJiwgdWludDY0X3Qgc291cmNlQ29udGV4dElkZW50aWZp
ZXIsIFNlcnZpY2VXb3JrZXJDbGllbnREYXRhJiYgc291cmNlKSA9IDA7CisgICAgdmlydHVhbCBT
V1NlcnZlckNvbm5lY3Rpb25JZGVudGlmaWVyIHNlcnZlckNvbm5lY3Rpb25JZGVudGlmaWVyKCkg
Y29uc3QgPSAwOwogICAgIHZpcnR1YWwgYm9vbCBtYXlIYXZlU2VydmljZVdvcmtlclJlZ2lzdGVy
ZWRGb3JPcmlnaW4oY29uc3QgU2VjdXJpdHlPcmlnaW4mKSBjb25zdCA9IDA7CiAKICAgICB2aXJ0
dWFsIHZvaWQgc2VydmljZVdvcmtlclN0YXJ0ZWRDb250cm9sbGluZ0NsaWVudChTZXJ2aWNlV29y
a2VySWRlbnRpZmllciwgdWludDY0X3Qgc2NyaXB0RXhlY3V0aW9uQ29udGV4dElkZW50aWZpZXIp
ID0gMDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9zZXJ2ZXIv
U1dTZXJ2ZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL3NlcnZlci9TV1Nl
cnZlci5jcHAKaW5kZXggYTFjNThmY2U5ZjRlZWEzMzI5NmZhMTk5MTljMDc4MDg1MDM5Zjg2Ni4u
MTViOWUwMzg4NzkwMDRlMzQ1YzRiNGU2Y2ZkNWM2ZDQyOWEwOGI0YiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL3NlcnZlci9TV1NlcnZlci5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL3NlcnZlci9TV1NlcnZlci5jcHAKQEAgLTUwLDkg
KzUwLDkgQEAgc3RhdGljIFNlcnZpY2VXb3JrZXJJZGVudGlmaWVyIGdlbmVyYXRlU2VydmljZVdv
cmtlcklkZW50aWZpZXIoKQogICAgIHJldHVybiBnZW5lcmF0ZU9iamVjdElkZW50aWZpZXI8U2Vy
dmljZVdvcmtlcklkZW50aWZpZXJUeXBlPigpOwogfQogCi1TV1NlcnZlcjo6Q29ubmVjdGlvbjo6
Q29ubmVjdGlvbihTV1NlcnZlciYgc2VydmVyLCB1aW50NjRfdCBpZGVudGlmaWVyKQotICAgIDog
SWRlbnRpZmllZChpZGVudGlmaWVyKQotICAgICwgbV9zZXJ2ZXIoc2VydmVyKQorU1dTZXJ2ZXI6
OkNvbm5lY3Rpb246OkNvbm5lY3Rpb24oU1dTZXJ2ZXImIHNlcnZlcikKKyAgICA6IG1fc2VydmVy
KHNlcnZlcikKKyAgICAsIG1faWRlbnRpZmllcihnZW5lcmF0ZU9iamVjdElkZW50aWZpZXI8U1dT
ZXJ2ZXJDb25uZWN0aW9uSWRlbnRpZmllclR5cGU+KCkpCiB7CiAgICAgbV9zZXJ2ZXIucmVnaXN0
ZXJDb25uZWN0aW9uKCp0aGlzKTsKIH0KQEAgLTE0NCw3ICsxNDQsNyBAQCB2b2lkIFNXU2VydmVy
OjpjbGVhcihjb25zdCBTZWN1cml0eU9yaWdpbiYgb3JpZ2luKQogCiB2b2lkIFNXU2VydmVyOjpD
b25uZWN0aW9uOjpzY2hlZHVsZUpvYkluU2VydmVyKGNvbnN0IFNlcnZpY2VXb3JrZXJKb2JEYXRh
JiBqb2JEYXRhKQogewotICAgIExPRyhTZXJ2aWNlV29ya2VyLCAiU2NoZWR1bGluZyBTZXJ2aWNl
V29ya2VyIGpvYiAlIiBQUkl1NjQgIi0lIiBQUkl1NjQgIiBpbiBzZXJ2ZXIiLCBqb2JEYXRhLmNv
bm5lY3Rpb25JZGVudGlmaWVyKCksIGpvYkRhdGEuaWRlbnRpZmllcigpKTsKKyAgICBMT0coU2Vy
dmljZVdvcmtlciwgIlNjaGVkdWxpbmcgU2VydmljZVdvcmtlciBqb2IgJXMtJSIgUFJJdTY0ICIg
aW4gc2VydmVyIiwgam9iRGF0YS5jb25uZWN0aW9uSWRlbnRpZmllcigpLmxvZ2dpbmdTdHJpbmco
KS51dGY4KCkuZGF0YSgpLCBqb2JEYXRhLmlkZW50aWZpZXIoKSk7CiAgICAgQVNTRVJUKGlkZW50
aWZpZXIoKSA9PSBqb2JEYXRhLmNvbm5lY3Rpb25JZGVudGlmaWVyKCkpOwogCiAgICAgbV9zZXJ2
ZXIuc2NoZWR1bGVKb2Ioam9iRGF0YSk7CkBAIC0yMDgsNyArMjA4LDcgQEAgdm9pZCBTV1NlcnZl
cjo6c2NoZWR1bGVKb2IoY29uc3QgU2VydmljZVdvcmtlckpvYkRhdGEmIGpvYkRhdGEpCiAKIHZv
aWQgU1dTZXJ2ZXI6OnJlamVjdEpvYihjb25zdCBTZXJ2aWNlV29ya2VySm9iRGF0YSYgam9iRGF0
YSwgY29uc3QgRXhjZXB0aW9uRGF0YSYgZXhjZXB0aW9uRGF0YSkKIHsKLSAgICBMT0coU2Vydmlj
ZVdvcmtlciwgIlJlamVjdGVkIFNlcnZpY2VXb3JrZXIgam9iICUiIFBSSXU2NCAiLSUiIFBSSXU2
NCAiIGluIHNlcnZlciIsIGpvYkRhdGEuY29ubmVjdGlvbklkZW50aWZpZXIoKSwgam9iRGF0YS5p
ZGVudGlmaWVyKCkpOworICAgIExPRyhTZXJ2aWNlV29ya2VyLCAiUmVqZWN0ZWQgU2VydmljZVdv
cmtlciBqb2IgJXMtJSIgUFJJdTY0ICIgaW4gc2VydmVyIiwgam9iRGF0YS5jb25uZWN0aW9uSWRl
bnRpZmllcigpLmxvZ2dpbmdTdHJpbmcoKS51dGY4KCkuZGF0YSgpLCBqb2JEYXRhLmlkZW50aWZp
ZXIoKSk7CiAgICAgYXV0byogY29ubmVjdGlvbiA9IG1fY29ubmVjdGlvbnMuZ2V0KGpvYkRhdGEu
Y29ubmVjdGlvbklkZW50aWZpZXIoKSk7CiAgICAgaWYgKCFjb25uZWN0aW9uKQogICAgICAgICBy
ZXR1cm47CkBAIC0yMTgsNyArMjE4LDcgQEAgdm9pZCBTV1NlcnZlcjo6cmVqZWN0Sm9iKGNvbnN0
IFNlcnZpY2VXb3JrZXJKb2JEYXRhJiBqb2JEYXRhLCBjb25zdCBFeGNlcHRpb25EYXQKIAogdm9p
ZCBTV1NlcnZlcjo6cmVzb2x2ZVJlZ2lzdHJhdGlvbkpvYihjb25zdCBTZXJ2aWNlV29ya2VySm9i
RGF0YSYgam9iRGF0YSwgY29uc3QgU2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbkRhdGEmIHJlZ2lz
dHJhdGlvbkRhdGEsIFNob3VsZE5vdGlmeVdoZW5SZXNvbHZlZCBzaG91bGROb3RpZnlXaGVuUmVz
b2x2ZWQpCiB7Ci0gICAgTE9HKFNlcnZpY2VXb3JrZXIsICJSZXNvbHZlZCBTZXJ2aWNlV29ya2Vy
IGpvYiAlIiBQUkl1NjQgIi0lIiBQUkl1NjQgIiBpbiBzZXJ2ZXIgd2l0aCByZWdpc3RyYXRpb24g
JXMiLCBqb2JEYXRhLmNvbm5lY3Rpb25JZGVudGlmaWVyKCksIGpvYkRhdGEuaWRlbnRpZmllcigp
LCByZWdpc3RyYXRpb25EYXRhLmlkZW50aWZpZXIubG9nZ2luZ1N0cmluZygpLnV0ZjgoKS5kYXRh
KCkpOworICAgIExPRyhTZXJ2aWNlV29ya2VyLCAiUmVzb2x2ZWQgU2VydmljZVdvcmtlciBqb2Ig
JXMtJSIgUFJJdTY0ICIgaW4gc2VydmVyIHdpdGggcmVnaXN0cmF0aW9uICVzIiwgam9iRGF0YS5j
b25uZWN0aW9uSWRlbnRpZmllcigpLmxvZ2dpbmdTdHJpbmcoKS51dGY4KCkuZGF0YSgpLCBqb2JE
YXRhLmlkZW50aWZpZXIoKSwgcmVnaXN0cmF0aW9uRGF0YS5pZGVudGlmaWVyLmxvZ2dpbmdTdHJp
bmcoKS51dGY4KCkuZGF0YSgpKTsKICAgICBhdXRvKiBjb25uZWN0aW9uID0gbV9jb25uZWN0aW9u
cy5nZXQoam9iRGF0YS5jb25uZWN0aW9uSWRlbnRpZmllcigpKTsKICAgICBpZiAoIWNvbm5lY3Rp
b24pCiAgICAgICAgIHJldHVybjsKQEAgLTIzNyw3ICsyMzcsNyBAQCB2b2lkIFNXU2VydmVyOjpy
ZXNvbHZlVW5yZWdpc3RyYXRpb25Kb2IoY29uc3QgU2VydmljZVdvcmtlckpvYkRhdGEmIGpvYkRh
dGEsIGNvbgogCiB2b2lkIFNXU2VydmVyOjpzdGFydFNjcmlwdEZldGNoKGNvbnN0IFNlcnZpY2VX
b3JrZXJKb2JEYXRhJiBqb2JEYXRhKQogewotICAgIExPRyhTZXJ2aWNlV29ya2VyLCAiU2VydmVy
IGlzc3Vpbmcgc3RhcnRTY3JpcHRGZXRjaCBmb3IgY3VycmVudCBqb2IgJSIgUFJJdTY0ICItJSIg
UFJJdTY0ICIgaW4gY2xpZW50Iiwgam9iRGF0YS5jb25uZWN0aW9uSWRlbnRpZmllcigpLCBqb2JE
YXRhLmlkZW50aWZpZXIoKSk7CisgICAgTE9HKFNlcnZpY2VXb3JrZXIsICJTZXJ2ZXIgaXNzdWlu
ZyBzdGFydFNjcmlwdEZldGNoIGZvciBjdXJyZW50IGpvYiAlcy0lIiBQUkl1NjQgIiBpbiBjbGll
bnQiLCBqb2JEYXRhLmNvbm5lY3Rpb25JZGVudGlmaWVyKCkubG9nZ2luZ1N0cmluZygpLnV0Zjgo
KS5kYXRhKCksIGpvYkRhdGEuaWRlbnRpZmllcigpKTsKICAgICBhdXRvKiBjb25uZWN0aW9uID0g
bV9jb25uZWN0aW9ucy5nZXQoam9iRGF0YS5jb25uZWN0aW9uSWRlbnRpZmllcigpKTsKICAgICBp
ZiAoIWNvbm5lY3Rpb24pCiAgICAgICAgIHJldHVybjsKQEAgLTI0Nyw3ICsyNDcsNyBAQCB2b2lk
IFNXU2VydmVyOjpzdGFydFNjcmlwdEZldGNoKGNvbnN0IFNlcnZpY2VXb3JrZXJKb2JEYXRhJiBq
b2JEYXRhKQogCiB2b2lkIFNXU2VydmVyOjpzY3JpcHRGZXRjaEZpbmlzaGVkKENvbm5lY3Rpb24m
IGNvbm5lY3Rpb24sIGNvbnN0IFNlcnZpY2VXb3JrZXJGZXRjaFJlc3VsdCYgcmVzdWx0KQogewot
ICAgIExPRyhTZXJ2aWNlV29ya2VyLCAiU2VydmVyIGhhbmRsaW5nIHNjcmlwdEZldGNoRmluaXNo
ZWQgZm9yIGN1cnJlbnQgam9iICUiIFBSSXU2NCAiLSUiIFBSSXU2NCAiIGluIGNsaWVudCIsIHJl
c3VsdC5jb25uZWN0aW9uSWRlbnRpZmllciwgcmVzdWx0LmpvYklkZW50aWZpZXIpOworICAgIExP
RyhTZXJ2aWNlV29ya2VyLCAiU2VydmVyIGhhbmRsaW5nIHNjcmlwdEZldGNoRmluaXNoZWQgZm9y
IGN1cnJlbnQgam9iICVzLSUiIFBSSXU2NCAiIGluIGNsaWVudCIsIHJlc3VsdC5jb25uZWN0aW9u
SWRlbnRpZmllci5sb2dnaW5nU3RyaW5nKCkudXRmOCgpLmRhdGEoKSwgcmVzdWx0LmpvYklkZW50
aWZpZXIpOwogCiAgICAgQVNTRVJUKG1fY29ubmVjdGlvbnMuY29udGFpbnMocmVzdWx0LmNvbm5l
Y3Rpb25JZGVudGlmaWVyKSk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMv
c2VydmljZS9zZXJ2ZXIvU1dTZXJ2ZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2Vydmlj
ZS9zZXJ2ZXIvU1dTZXJ2ZXIuaAppbmRleCAyZjhiMDJhMWU0NWI2MTFmZDkwZGNkN2Q2ODQzNzZm
ZTYwMjc1OWIxLi5mYzNkNzE0ODZkYmM0YjUxMzJiZWM3NGE1MjQ0ODYxYmI1M2JhNWMzIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2Uvc2VydmVyL1NXU2VydmVyLmgK
KysrIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL3NlcnZlci9TV1NlcnZlci5oCkBA
IC0zNyw3ICszNyw3IEBACiAjaW5jbHVkZSA8d3RmL0Nyb3NzVGhyZWFkVGFzay5oPgogI2luY2x1
ZGUgPHd0Zi9IYXNoTWFwLmg+CiAjaW5jbHVkZSA8d3RmL0hhc2hTZXQuaD4KLSNpbmNsdWRlIDx3
dGYvSWRlbnRpZmllZC5oPgorI2luY2x1ZGUgPHd0Zi9PYmplY3RJZGVudGlmaWVyLmg+CiAjaW5j
bHVkZSA8d3RmL1J1bkxvb3AuaD4KICNpbmNsdWRlIDx3dGYvVGhyZWFkU2FmZVJlZkNvdW50ZWQu
aD4KICNpbmNsdWRlIDx3dGYvVGhyZWFkaW5nLmg+CkBAIC01OCwxMSArNTgsMTQgQEAgc3RydWN0
IFNlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb25EYXRhOwogCiBjbGFzcyBTV1NlcnZlciB7CiBwdWJs
aWM6Ci0gICAgY2xhc3MgQ29ubmVjdGlvbiA6IHB1YmxpYyBJZGVudGlmaWVkPENvbm5lY3Rpb24+
IHsKKyAgICBjbGFzcyBDb25uZWN0aW9uIHsKICAgICBmcmllbmQgY2xhc3MgU1dTZXJ2ZXI7CiAg
ICAgcHVibGljOgogICAgICAgICBXRUJDT1JFX0VYUE9SVCB2aXJ0dWFsIH5Db25uZWN0aW9uKCk7
CiAKKyAgICAgICAgdXNpbmcgSWRlbnRpZmllciA9IFNXU2VydmVyQ29ubmVjdGlvbklkZW50aWZp
ZXI7CisgICAgICAgIElkZW50aWZpZXIgaWRlbnRpZmllcigpIGNvbnN0IHsgcmV0dXJuIG1faWRl
bnRpZmllcjsgfQorCiAgICAgICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgZGlkUmVzb2x2ZVJlZ2lz
dHJhdGlvblByb21pc2UoY29uc3QgU2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbktleSYpOwogICAg
ICAgICBjb25zdCBTV1NlcnZlclJlZ2lzdHJhdGlvbiogZG9SZWdpc3RyYXRpb25NYXRjaGluZyhj
b25zdCBTZWN1cml0eU9yaWdpbkRhdGEmIHRvcE9yaWdpbiwgY29uc3QgVVJMJiBjbGllbnRVUkwp
IGNvbnN0IHsgcmV0dXJuIG1fc2VydmVyLmRvUmVnaXN0cmF0aW9uTWF0Y2hpbmcodG9wT3JpZ2lu
LCBjbGllbnRVUkwpOyB9CiAKQEAgLTcyLDcgKzc1LDcgQEAgcHVibGljOgogICAgICAgICB2aXJ0
dWFsIHZvaWQgZmlyZVVwZGF0ZUZvdW5kRXZlbnQoU2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbklk
ZW50aWZpZXIpID0gMDsKIAogICAgIHByb3RlY3RlZDoKLSAgICAgICAgV0VCQ09SRV9FWFBPUlQg
Q29ubmVjdGlvbihTV1NlcnZlciYsIHVpbnQ2NF90IGlkZW50aWZpZXIpOworICAgICAgICBXRUJD
T1JFX0VYUE9SVCBleHBsaWNpdCBDb25uZWN0aW9uKFNXU2VydmVyJik7CiAgICAgICAgIFNXU2Vy
dmVyJiBzZXJ2ZXIoKSB7IHJldHVybiBtX3NlcnZlcjsgfQogCiAgICAgICAgIFdFQkNPUkVfRVhQ
T1JUIHZvaWQgc2NoZWR1bGVKb2JJblNlcnZlcihjb25zdCBTZXJ2aWNlV29ya2VySm9iRGF0YSYp
OwpAQCAtOTAsNiArOTMsNyBAQCBwdWJsaWM6CiAgICAgICAgIHZpcnR1YWwgdm9pZCBzdGFydFNj
cmlwdEZldGNoSW5DbGllbnQodWludDY0X3Qgam9iSWRlbnRpZmllcikgPSAwOwogCiAgICAgICAg
IFNXU2VydmVyJiBtX3NlcnZlcjsKKyAgICAgICAgSWRlbnRpZmllciBtX2lkZW50aWZpZXI7CiAg
ICAgfTsKIAogICAgIFdFQkNPUkVfRVhQT1JUIGV4cGxpY2l0IFNXU2VydmVyKFVuaXF1ZVJlZjxT
V09yaWdpblN0b3JlPiYmKTsKQEAgLTExOSw3ICsxMjMsNyBAQCBwdWJsaWM6CiAgICAgdm9pZCBm
aXJlQWN0aXZhdGVFdmVudChTV1NlcnZlcldvcmtlciYpOwogICAgIFNXU2VydmVyV29ya2VyKiB3
b3JrZXJCeUlEKFNlcnZpY2VXb3JrZXJJZGVudGlmaWVyIGlkZW50aWZpZXIpIGNvbnN0IHsgcmV0
dXJuIG1fd29ya2Vyc0J5SUQuZ2V0KGlkZW50aWZpZXIpOyB9CiAgICAgCi0gICAgQ29ubmVjdGlv
biogZ2V0Q29ubmVjdGlvbih1aW50NjRfdCBpZGVudGlmaWVyKSB7IHJldHVybiBtX2Nvbm5lY3Rp
b25zLmdldChpZGVudGlmaWVyKTsgfQorICAgIENvbm5lY3Rpb24qIGdldENvbm5lY3Rpb24oU1dT
ZXJ2ZXJDb25uZWN0aW9uSWRlbnRpZmllciBpZGVudGlmaWVyKSB7IHJldHVybiBtX2Nvbm5lY3Rp
b25zLmdldChpZGVudGlmaWVyKTsgfQogICAgIFNXT3JpZ2luU3RvcmUmIG9yaWdpblN0b3JlKCkg
eyByZXR1cm4gbV9vcmlnaW5TdG9yZTsgfQogCiAgICAgdm9pZCBzY3JpcHRDb250ZXh0RmFpbGVk
VG9TdGFydChTV1NlcnZlcldvcmtlciYsIGNvbnN0IFN0cmluZyYgbWVzc2FnZSk7CkBAIC0xNTIs
NyArMTU2LDcgQEAgcHJpdmF0ZToKIAogICAgIHZvaWQgaW5zdGFsbENvbnRleHREYXRhKGNvbnN0
IFNlcnZpY2VXb3JrZXJDb250ZXh0RGF0YSYpOwogCi0gICAgSGFzaE1hcDx1aW50NjRfdCwgQ29u
bmVjdGlvbio+IG1fY29ubmVjdGlvbnM7CisgICAgSGFzaE1hcDxTV1NlcnZlckNvbm5lY3Rpb25J
ZGVudGlmaWVyLCBDb25uZWN0aW9uKj4gbV9jb25uZWN0aW9uczsKICAgICBIYXNoTWFwPFNlcnZp
Y2VXb3JrZXJSZWdpc3RyYXRpb25LZXksIHN0ZDo6dW5pcXVlX3B0cjxTV1NlcnZlclJlZ2lzdHJh
dGlvbj4+IG1fcmVnaXN0cmF0aW9uczsKICAgICBIYXNoTWFwPFNlcnZpY2VXb3JrZXJSZWdpc3Ry
YXRpb25LZXksIHN0ZDo6dW5pcXVlX3B0cjxTV1NlcnZlckpvYlF1ZXVlPj4gbV9qb2JRdWV1ZXM7
CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9zZXJ2ZXIvU1dT
ZXJ2ZXJSZWdpc3RyYXRpb24uY3BwIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL3Nl
cnZlci9TV1NlcnZlclJlZ2lzdHJhdGlvbi5jcHAKaW5kZXggOTk4YzkwYjczNWVlOWIzNWE4MjMy
ZjY2NDdiOTcyYmUzYTQyNDliZS4uNjIzMGFiMmJhNDczMjQ5MjMxNDc0OGI4Y2VkM2QwYmQ0Yjhj
MDA2YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL3NlcnZlci9T
V1NlcnZlclJlZ2lzdHJhdGlvbi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2
aWNlL3NlcnZlci9TV1NlcnZlclJlZ2lzdHJhdGlvbi5jcHAKQEAgLTExMSw3ICsxMTEsNyBAQCB2
b2lkIFNXU2VydmVyUmVnaXN0cmF0aW9uOjpmaXJlVXBkYXRlRm91bmRFdmVudCgpCiAKIHZvaWQg
U1dTZXJ2ZXJSZWdpc3RyYXRpb246OmZvckVhY2hDb25uZWN0aW9uKGNvbnN0IFdURjo6RnVuY3Rp
b248dm9pZChTV1NlcnZlcjo6Q29ubmVjdGlvbiYpPiYgYXBwbHkpCiB7Ci0gICAgZm9yICh1aW50
NjRfdCBjb25uZWN0aW9uSWRlbnRpZmllcldpdGhDbGllbnRzIDogbV9jb25uZWN0aW9uc1dpdGhD
bGllbnRSZWdpc3RyYXRpb25zLnZhbHVlcygpKSB7CisgICAgZm9yIChhdXRvIGNvbm5lY3Rpb25J
ZGVudGlmaWVyV2l0aENsaWVudHMgOiBtX2Nvbm5lY3Rpb25zV2l0aENsaWVudFJlZ2lzdHJhdGlv
bnMudmFsdWVzKCkpIHsKICAgICAgICAgaWYgKGF1dG8qIGNvbm5lY3Rpb24gPSBtX3NlcnZlci5n
ZXRDb25uZWN0aW9uKGNvbm5lY3Rpb25JZGVudGlmaWVyV2l0aENsaWVudHMpKQogICAgICAgICAg
ICAgYXBwbHkoKmNvbm5lY3Rpb24pOwogICAgIH0KQEAgLTEzNCwxMiArMTM0LDEyIEBAIFNlcnZp
Y2VXb3JrZXJSZWdpc3RyYXRpb25EYXRhIFNXU2VydmVyUmVnaXN0cmF0aW9uOjpkYXRhKCkgY29u
c3QKICAgICByZXR1cm4geyBtX3JlZ2lzdHJhdGlvbktleSwgaWRlbnRpZmllcigpLCBtX3Njb3Bl
VVJMLCBtX3VwZGF0ZVZpYUNhY2hlLCBXVEZNb3ZlKGluc3RhbGxpbmdXb3JrZXJEYXRhKSwgV1RG
TW92ZSh3YWl0aW5nV29ya2VyRGF0YSksIFdURk1vdmUoYWN0aXZlV29ya2VyRGF0YSkgfTsKIH0K
IAotdm9pZCBTV1NlcnZlclJlZ2lzdHJhdGlvbjo6YWRkQ2xpZW50U2VydmljZVdvcmtlclJlZ2lz
dHJhdGlvbih1aW50NjRfdCBjb25uZWN0aW9uSWRlbnRpZmllcikKK3ZvaWQgU1dTZXJ2ZXJSZWdp
c3RyYXRpb246OmFkZENsaWVudFNlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb24oU1dTZXJ2ZXJDb25u
ZWN0aW9uSWRlbnRpZmllciBjb25uZWN0aW9uSWRlbnRpZmllcikKIHsKICAgICBtX2Nvbm5lY3Rp
b25zV2l0aENsaWVudFJlZ2lzdHJhdGlvbnMuYWRkKGNvbm5lY3Rpb25JZGVudGlmaWVyKTsKIH0K
IAotdm9pZCBTV1NlcnZlclJlZ2lzdHJhdGlvbjo6cmVtb3ZlQ2xpZW50U2VydmljZVdvcmtlclJl
Z2lzdHJhdGlvbih1aW50NjRfdCBjb25uZWN0aW9uSWRlbnRpZmllcikKK3ZvaWQgU1dTZXJ2ZXJS
ZWdpc3RyYXRpb246OnJlbW92ZUNsaWVudFNlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb24oU1dTZXJ2
ZXJDb25uZWN0aW9uSWRlbnRpZmllciBjb25uZWN0aW9uSWRlbnRpZmllcikKIHsKICAgICBtX2Nv
bm5lY3Rpb25zV2l0aENsaWVudFJlZ2lzdHJhdGlvbnMucmVtb3ZlKGNvbm5lY3Rpb25JZGVudGlm
aWVyKTsKIH0KQEAgLTE2Myw3ICsxNjMsNyBAQCB2b2lkIFNXU2VydmVyUmVnaXN0cmF0aW9uOjpy
ZW1vdmVDbGllbnRVc2luZ1JlZ2lzdHJhdGlvbihjb25zdCBTZXJ2aWNlV29ya2VyQ2xpZQogICAg
ICAgICBtX2NsaWVudHNVc2luZ1JlZ2lzdHJhdGlvbi5yZW1vdmUoaXRlcmF0b3IpOwogfQogCi12
b2lkIFNXU2VydmVyUmVnaXN0cmF0aW9uOjp1bnJlZ2lzdGVyU2VydmVyQ29ubmVjdGlvbih1aW50
NjRfdCBzZXJ2ZXJDb25uZWN0aW9uSWRlbnRpZmllcikKK3ZvaWQgU1dTZXJ2ZXJSZWdpc3RyYXRp
b246OnVucmVnaXN0ZXJTZXJ2ZXJDb25uZWN0aW9uKFNXU2VydmVyQ29ubmVjdGlvbklkZW50aWZp
ZXIgc2VydmVyQ29ubmVjdGlvbklkZW50aWZpZXIpCiB7CiAgICAgbV9jb25uZWN0aW9uc1dpdGhD
bGllbnRSZWdpc3RyYXRpb25zLnJlbW92ZUFsbChzZXJ2ZXJDb25uZWN0aW9uSWRlbnRpZmllcik7
CiAgICAgbV9jbGllbnRzVXNpbmdSZWdpc3RyYXRpb24ucmVtb3ZlKHNlcnZlckNvbm5lY3Rpb25J
ZGVudGlmaWVyKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9z
ZXJ2ZXIvU1dTZXJ2ZXJSZWdpc3RyYXRpb24uaCBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2Vy
dmljZS9zZXJ2ZXIvU1dTZXJ2ZXJSZWdpc3RyYXRpb24uaAppbmRleCBjMjMxMmQ4NDA3ZWZmMDJl
ZDY5MjQ5YzZhNTFjMWM3NjI3ZDRjYTI1Li40ZmMzYzlkODViYTkzNDkyOGMwOGJmMDBlY2Y0ZGNi
NGZhNWI4ODhiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2Uvc2Vy
dmVyL1NXU2VydmVyUmVnaXN0cmF0aW9uLmgKKysrIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9z
ZXJ2aWNlL3NlcnZlci9TV1NlcnZlclJlZ2lzdHJhdGlvbi5oCkBAIC02NCw4ICs2NCw4IEBAIHB1
YmxpYzoKICAgICB2b2lkIHVwZGF0ZVdvcmtlclN0YXRlKFNXU2VydmVyV29ya2VyJiwgU2Vydmlj
ZVdvcmtlclN0YXRlKTsKICAgICB2b2lkIGZpcmVVcGRhdGVGb3VuZEV2ZW50KCk7CiAKLSAgICB2
b2lkIGFkZENsaWVudFNlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb24odWludDY0X3QgY29ubmVjdGlv
bklkZW50aWZpZXIpOwotICAgIHZvaWQgcmVtb3ZlQ2xpZW50U2VydmljZVdvcmtlclJlZ2lzdHJh
dGlvbih1aW50NjRfdCBjb25uZWN0aW9uSWRlbnRpZmllcik7CisgICAgdm9pZCBhZGRDbGllbnRT
ZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uKFNXU2VydmVyQ29ubmVjdGlvbklkZW50aWZpZXIpOwor
ICAgIHZvaWQgcmVtb3ZlQ2xpZW50U2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbihTV1NlcnZlckNv
bm5lY3Rpb25JZGVudGlmaWVyKTsKIAogICAgIFNXU2VydmVyV29ya2VyKiBpbnN0YWxsaW5nV29y
a2VyKCkgY29uc3QgeyByZXR1cm4gbV9pbnN0YWxsaW5nV29ya2VyLmdldCgpOyB9CiAgICAgU1dT
ZXJ2ZXJXb3JrZXIqIHdhaXRpbmdXb3JrZXIoKSBjb25zdCB7IHJldHVybiBtX3dhaXRpbmdXb3Jr
ZXIuZ2V0KCk7IH0KQEAgLTc2LDcgKzc2LDcgQEAgcHVibGljOgogICAgIGJvb2wgaGFzQ2xpZW50
c1VzaW5nUmVnaXN0cmF0aW9uKCkgY29uc3QgeyByZXR1cm4gIW1fY2xpZW50c1VzaW5nUmVnaXN0
cmF0aW9uLmlzRW1wdHkoKTsgfQogICAgIHZvaWQgYWRkQ2xpZW50VXNpbmdSZWdpc3RyYXRpb24o
Y29uc3QgU2VydmljZVdvcmtlckNsaWVudElkZW50aWZpZXImKTsKICAgICB2b2lkIHJlbW92ZUNs
aWVudFVzaW5nUmVnaXN0cmF0aW9uKGNvbnN0IFNlcnZpY2VXb3JrZXJDbGllbnRJZGVudGlmaWVy
Jik7Ci0gICAgdm9pZCB1bnJlZ2lzdGVyU2VydmVyQ29ubmVjdGlvbih1aW50NjRfdCBzZXJ2ZXJD
b25uZWN0aW9uSWRlbnRpZmllcik7CisgICAgdm9pZCB1bnJlZ2lzdGVyU2VydmVyQ29ubmVjdGlv
bihTV1NlcnZlckNvbm5lY3Rpb25JZGVudGlmaWVyKTsKIAogcHJpdmF0ZToKICAgICB2b2lkIGZv
ckVhY2hDb25uZWN0aW9uKGNvbnN0IFdURjo6RnVuY3Rpb248dm9pZChTV1NlcnZlcjo6Q29ubmVj
dGlvbiYpPiYpOwpAQCAtOTQsMTEgKzk0LDExIEBAIHByaXZhdGU6CiAKICAgICBkb3VibGUgbV9s
YXN0VXBkYXRlVGltZSB7IDAgfTsKICAgICAKLSAgICBIYXNoQ291bnRlZFNldDx1aW50NjRfdCAv
KiBzZXJ2ZXJDb25uZWN0aW9uSWRlbnRpZmllciAqLz4gbV9jb25uZWN0aW9uc1dpdGhDbGllbnRS
ZWdpc3RyYXRpb25zOworICAgIEhhc2hDb3VudGVkU2V0PFNXU2VydmVyQ29ubmVjdGlvbklkZW50
aWZpZXI+IG1fY29ubmVjdGlvbnNXaXRoQ2xpZW50UmVnaXN0cmF0aW9uczsKICAgICBTV1NlcnZl
ciYgbV9zZXJ2ZXI7CiAKICAgICBNb25vdG9uaWNUaW1lIG1fY3JlYXRpb25UaW1lOwotICAgIEhh
c2hNYXA8dWludDY0X3QgLyogc2VydmVyQ29ubmVjdGlvbklkZW50aWZpZXIgKi8sIEhhc2hTZXQ8
dWludDY0X3QgLyogc2NyaXB0RXhlY3V0aW9uQ29udGV4dElkZW50aWZpZXIgKi8+PiBtX2NsaWVu
dHNVc2luZ1JlZ2lzdHJhdGlvbjsKKyAgICBIYXNoTWFwPFNXU2VydmVyQ29ubmVjdGlvbklkZW50
aWZpZXIsIEhhc2hTZXQ8dWludDY0X3QgLyogc2NyaXB0RXhlY3V0aW9uQ29udGV4dElkZW50aWZp
ZXIgKi8+PiBtX2NsaWVudHNVc2luZ1JlZ2lzdHJhdGlvbjsKIH07CiAKIH0gLy8gbmFtZXNwYWNl
IFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2NyaXB0cy93ZWJraXQvbWVzc2Fn
ZXMucHkgYi9Tb3VyY2UvV2ViS2l0L1NjcmlwdHMvd2Via2l0L21lc3NhZ2VzLnB5CmluZGV4IDg1
NWY2MTEyZDhkNmQ5NWZiOTgzOTExNTdhYzliYjNiYzM5MDhhY2QuLmFmNmUzMzJhOTU0Y2YzY2Nk
ZmJmZWMxOTkzZDVjYmZiNjc4OGM5NDEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2NyaXB0
cy93ZWJraXQvbWVzc2FnZXMucHkKKysrIGIvU291cmNlL1dlYktpdC9TY3JpcHRzL3dlYmtpdC9t
ZXNzYWdlcy5weQpAQCAtMTgzLDEyICsxODMsMTggQEAgZGVmIGZvcndhcmRfZGVjbGFyYXRpb25z
X2FuZF9oZWFkZXJzKHJlY2VpdmVyKToKICAgICAgICAgICAgIGhlYWRlcnMuYWRkKCc8d3RmL1Ro
cmVhZFNhZmVSZWZDb3VudGVkLmg+JykKICAgICAgICAgICAgIHR5cGVzX2J5X25hbWVzcGFjZVsn
SVBDJ10udXBkYXRlKFsoJ2NsYXNzJywgJ0Nvbm5lY3Rpb24nKV0pCiAKKyAgICBub19mb3J3YXJk
X2RlY2xhcmF0aW9uX3R5cGVzID0gZnJvemVuc2V0KFsKKyAgICAgICAgJ1dlYkNvcmU6OlNlcnZp
Y2VXb3JrZXJJZGVudGlmaWVyJywKKyAgICAgICAgJ1dlYkNvcmU6OlNlcnZpY2VXb3JrZXJSZWdp
c3RyYXRpb25JZGVudGlmaWVyJywKKyAgICAgICAgJ1dlYkNvcmU6OlNXU2VydmVyQ29ubmVjdGlv
bklkZW50aWZpZXInLAorICAgIF0pCisKICAgICBmb3IgcGFyYW1ldGVyIGluIHJlY2VpdmVyLml0
ZXJwYXJhbWV0ZXJzKCk6CiAgICAgICAgIGtpbmQgPSBwYXJhbWV0ZXIua2luZAogICAgICAgICB0
eXBlID0gcGFyYW1ldGVyLnR5cGUKIAotICAgICAgICBpZiB0eXBlLmZpbmQoJzwnKSAhPSAtMSBv
ciB0eXBlID09ICJXZWJDb3JlOjpTZXJ2aWNlV29ya2VySWRlbnRpZmllciIgb3IgdHlwZSA9PSAi
V2ViQ29yZTo6U2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbklkZW50aWZpZXIiOgotICAgICAgICAg
ICAgIyBEb24ndCBmb3J3YXJkIGRlY2xhcmUgY2xhc3MgdGVtcGxhdGVzIG9yIFNlcnZpY2VXb3Jr
ZXJJZGVudGlmaWVyLgorICAgICAgICBpZiB0eXBlLmZpbmQoJzwnKSAhPSAtMSBvciB0eXBlIGlu
IG5vX2ZvcndhcmRfZGVjbGFyYXRpb25fdHlwZXM6CisgICAgICAgICAgICAjIERvbid0IGZvcndh
cmQgZGVjbGFyZSBjbGFzcyB0ZW1wbGF0ZXMuCiAgICAgICAgICAgICBoZWFkZXJzLnVwZGF0ZSho
ZWFkZXJzX2Zvcl90eXBlKHR5cGUpKQogICAgICAgICAgICAgY29udGludWUKIApAQCAtMzcyLDYg
KzM3OCw3IEBAIGRlZiBoZWFkZXJzX2Zvcl90eXBlKHR5cGUpOgogICAgICAgICAnV2ViQ29yZTo6
UGx1Z2luSW5mbyc6IFsnPFdlYkNvcmUvUGx1Z2luRGF0YS5oPiddLAogICAgICAgICAnV2ViQ29y
ZTo6UG9saWN5QWN0aW9uJzogWyc8V2ViQ29yZS9GcmFtZUxvYWRlclR5cGVzLmg+J10sCiAgICAg
ICAgICdXZWJDb3JlOjpSZWNlbnRTZWFyY2gnOiBbJzxXZWJDb3JlL1NlYXJjaFBvcHVwTWVudS5o
PiddLAorICAgICAgICAnV2ViQ29yZTo6U1dTZXJ2ZXJDb25uZWN0aW9uSWRlbnRpZmllcic6IFsn
PFdlYkNvcmUvU2VydmljZVdvcmtlclR5cGVzLmg+J10sCiAgICAgICAgICdXZWJDb3JlOjpTZXJ2
aWNlV29ya2VyUmVnaXN0cmF0aW9uSWRlbnRpZmllcic6IFsnPFdlYkNvcmUvU2VydmljZVdvcmtl
clR5cGVzLmg+J10sCiAgICAgICAgICdXZWJDb3JlOjpTZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9u
U3RhdGUnOiBbJzxXZWJDb3JlL1NlcnZpY2VXb3JrZXJUeXBlcy5oPiddLAogICAgICAgICAnV2Vi
Q29yZTo6U2VydmljZVdvcmtlclN0YXRlJzogWyc8V2ViQ29yZS9TZXJ2aWNlV29ya2VyVHlwZXMu
aD4nXSwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU3RvcmFnZVByb2Nlc3MvU2VydmljZVdv
cmtlci9XZWJTV1NlcnZlckNvbm5lY3Rpb24uY3BwIGIvU291cmNlL1dlYktpdC9TdG9yYWdlUHJv
Y2Vzcy9TZXJ2aWNlV29ya2VyL1dlYlNXU2VydmVyQ29ubmVjdGlvbi5jcHAKaW5kZXggYzFmMTU0
ZTM1ZTAwYjNlZjk0Y2EyMjM2YTk1ZTk1Y2YwOWNiZTA2Yi4uZDgxOWI5OTc1MTU4MGZiZjIxOTE1
ZDk4NzZhMWY0OGFlNjc2OGRiNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9TdG9yYWdlUHJv
Y2Vzcy9TZXJ2aWNlV29ya2VyL1dlYlNXU2VydmVyQ29ubmVjdGlvbi5jcHAKKysrIGIvU291cmNl
L1dlYktpdC9TdG9yYWdlUHJvY2Vzcy9TZXJ2aWNlV29ya2VyL1dlYlNXU2VydmVyQ29ubmVjdGlv
bi5jcHAKQEAgLTU2LDggKzU2LDggQEAgdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CiAKIG5hbWVz
cGFjZSBXZWJLaXQgewogCi1XZWJTV1NlcnZlckNvbm5lY3Rpb246OldlYlNXU2VydmVyQ29ubmVj
dGlvbihTV1NlcnZlciYgc2VydmVyLCBJUEM6OkNvbm5lY3Rpb24mIGNvbm5lY3Rpb24sIHVpbnQ2
NF90IGNvbm5lY3Rpb25JZGVudGlmaWVyLCBTZXNzaW9uSUQgc2Vzc2lvbklEKQotICAgIDogU1dT
ZXJ2ZXI6OkNvbm5lY3Rpb24oc2VydmVyLCBjb25uZWN0aW9uSWRlbnRpZmllcikKK1dlYlNXU2Vy
dmVyQ29ubmVjdGlvbjo6V2ViU1dTZXJ2ZXJDb25uZWN0aW9uKFNXU2VydmVyJiBzZXJ2ZXIsIElQ
Qzo6Q29ubmVjdGlvbiYgY29ubmVjdGlvbiwgU2Vzc2lvbklEIHNlc3Npb25JRCkKKyAgICA6IFNX
U2VydmVyOjpDb25uZWN0aW9uKHNlcnZlcikKICAgICAsIG1fc2Vzc2lvbklEKHNlc3Npb25JRCkK
ICAgICAsIG1fY29udGVudENvbm5lY3Rpb24oY29ubmVjdGlvbikKIHsKQEAgLTExMiwxMCArMTEy
LDEwIEBAIHZvaWQgV2ViU1dTZXJ2ZXJDb25uZWN0aW9uOjpzdGFydEZldGNoKHVpbnQ2NF90IGZl
dGNoSWRlbnRpZmllciwgc3RkOjpvcHRpb25hbDxTCiAgICAgc2VuZFRvQ29udGV4dFByb2Nlc3Mo
TWVzc2FnZXM6OldlYlNXQ29udGV4dE1hbmFnZXJDb25uZWN0aW9uOjpTdGFydEZldGNoIHsgaWRl
bnRpZmllcigpLCBmZXRjaElkZW50aWZpZXIsIHNlcnZpY2VXb3JrZXJJZGVudGlmaWVyLCByZXF1
ZXN0LCBvcHRpb25zLCBmb3JtRGF0YSB9KTsKIH0KIAotdm9pZCBXZWJTV1NlcnZlckNvbm5lY3Rp
b246OnBvc3RNZXNzYWdlVG9TZXJ2aWNlV29ya2VyR2xvYmFsU2NvcGUoU2VydmljZVdvcmtlcklk
ZW50aWZpZXIgZGVzdGluYXRpb25TZXJ2aWNlV29ya2VySWRlbnRpZmllciwgY29uc3QgSVBDOjpE
YXRhUmVmZXJlbmNlJiBtZXNzYWdlLCBTZXJ2aWNlV29ya2VyQ2xpZW50RGF0YSYmIHNvdXJjZSkK
K3ZvaWQgV2ViU1dTZXJ2ZXJDb25uZWN0aW9uOjpwb3N0TWVzc2FnZVRvU2VydmljZVdvcmtlckds
b2JhbFNjb3BlKFNlcnZpY2VXb3JrZXJJZGVudGlmaWVyIGRlc3RpbmF0aW9uU2VydmljZVdvcmtl
cklkZW50aWZpZXIsIGNvbnN0IElQQzo6RGF0YVJlZmVyZW5jZSYgbWVzc2FnZSwgdWludDY0X3Qg
c291cmNlQ29udGV4dElkZW50aWZpZXIsIFNlcnZpY2VXb3JrZXJDbGllbnREYXRhJiYgc291cmNl
RGF0YSkKIHsKLSAgICBzb3VyY2UuaWRlbnRpZmllci5zZXJ2ZXJDb25uZWN0aW9uSWRlbnRpZmll
ciA9IGlkZW50aWZpZXIoKTsKLSAgICBzZW5kVG9Db250ZXh0UHJvY2VzcyhNZXNzYWdlczo6V2Vi
U1dDb250ZXh0TWFuYWdlckNvbm5lY3Rpb246OlBvc3RNZXNzYWdlVG9TZXJ2aWNlV29ya2VyR2xv
YmFsU2NvcGUgeyBkZXN0aW5hdGlvblNlcnZpY2VXb3JrZXJJZGVudGlmaWVyLCBtZXNzYWdlLCBX
VEZNb3ZlKHNvdXJjZSkgfSk7CisgICAgU2VydmljZVdvcmtlckNsaWVudElkZW50aWZpZXIgc291
cmNlSWRlbnRpZmllciB7IGlkZW50aWZpZXIoKSwgc291cmNlQ29udGV4dElkZW50aWZpZXIgfTsK
KyAgICBzZW5kVG9Db250ZXh0UHJvY2VzcyhNZXNzYWdlczo6V2ViU1dDb250ZXh0TWFuYWdlckNv
bm5lY3Rpb246OlBvc3RNZXNzYWdlVG9TZXJ2aWNlV29ya2VyR2xvYmFsU2NvcGUgeyBkZXN0aW5h
dGlvblNlcnZpY2VXb3JrZXJJZGVudGlmaWVyLCBtZXNzYWdlLCBzb3VyY2VJZGVudGlmaWVyLCBX
VEZNb3ZlKHNvdXJjZURhdGEpIH0pOwogfQogCiB2b2lkIFdlYlNXU2VydmVyQ29ubmVjdGlvbjo6
ZGlkUmVjZWl2ZUZldGNoUmVzcG9uc2UodWludDY0X3QgZmV0Y2hJZGVudGlmaWVyLCBjb25zdCBS
ZXNvdXJjZVJlc3BvbnNlJiByZXNwb25zZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU3Rv
cmFnZVByb2Nlc3MvU2VydmljZVdvcmtlci9XZWJTV1NlcnZlckNvbm5lY3Rpb24uaCBiL1NvdXJj
ZS9XZWJLaXQvU3RvcmFnZVByb2Nlc3MvU2VydmljZVdvcmtlci9XZWJTV1NlcnZlckNvbm5lY3Rp
b24uaAppbmRleCAzZjEzMjcyY2Y2MjA1NTJkYzZlY2Q3YTVhZWNmYjc1Yzg5YjA0Njg0Li5mOTQx
MjYxNmFjODk0MWZmYjg2ZDcwM2RlZmM5M2MzM2YzZDEzNjA0IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L1N0b3JhZ2VQcm9jZXNzL1NlcnZpY2VXb3JrZXIvV2ViU1dTZXJ2ZXJDb25uZWN0aW9u
LmgKKysrIGIvU291cmNlL1dlYktpdC9TdG9yYWdlUHJvY2Vzcy9TZXJ2aWNlV29ya2VyL1dlYlNX
U2VydmVyQ29ubmVjdGlvbi5oCkBAIC00Niw3ICs0Niw3IEBAIG5hbWVzcGFjZSBXZWJLaXQgewog
CiBjbGFzcyBXZWJTV1NlcnZlckNvbm5lY3Rpb24gOiBwdWJsaWMgV2ViQ29yZTo6U1dTZXJ2ZXI6
OkNvbm5lY3Rpb24sIHB1YmxpYyBJUEM6Ok1lc3NhZ2VTZW5kZXIsIHB1YmxpYyBJUEM6Ok1lc3Nh
Z2VSZWNlaXZlciB7CiBwdWJsaWM6Ci0gICAgV2ViU1dTZXJ2ZXJDb25uZWN0aW9uKFdlYkNvcmU6
OlNXU2VydmVyJiwgSVBDOjpDb25uZWN0aW9uJiwgdWludDY0X3QgY29ubmVjdGlvbklkZW50aWZp
ZXIsIFBBTDo6U2Vzc2lvbklEKTsKKyAgICBXZWJTV1NlcnZlckNvbm5lY3Rpb24oV2ViQ29yZTo6
U1dTZXJ2ZXImLCBJUEM6OkNvbm5lY3Rpb24mLCBQQUw6OlNlc3Npb25JRCk7CiAgICAgV2ViU1dT
ZXJ2ZXJDb25uZWN0aW9uKGNvbnN0IFdlYlNXU2VydmVyQ29ubmVjdGlvbiYpID0gZGVsZXRlOwog
ICAgIH5XZWJTV1NlcnZlckNvbm5lY3Rpb24oKSBmaW5hbDsKIApAQCAtNzYsMTMgKzc2LDEzIEBA
IHByaXZhdGU6CiAKICAgICB2b2lkIHN0YXJ0RmV0Y2godWludDY0X3QgZmV0Y2hJZGVudGlmaWVy
LCBzdGQ6Om9wdGlvbmFsPFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJJZGVudGlmaWVyPiwgY29uc3Qg
V2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiwgY29uc3QgV2ViQ29yZTo6RmV0Y2hPcHRpb25zJiwg
Y29uc3QgSVBDOjpGb3JtRGF0YVJlZmVyZW5jZSYpOwogCi0gICAgdm9pZCBwb3N0TWVzc2FnZVRv
U2VydmljZVdvcmtlckdsb2JhbFNjb3BlKFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJJZGVudGlmaWVy
IGRlc3RpbmF0aW9uSWRlbnRpZmllciwgY29uc3QgSVBDOjpEYXRhUmVmZXJlbmNlJiBtZXNzYWdl
LCBXZWJDb3JlOjpTZXJ2aWNlV29ya2VyQ2xpZW50RGF0YSYmIHNvdXJjZSk7CisgICAgdm9pZCBw
b3N0TWVzc2FnZVRvU2VydmljZVdvcmtlckdsb2JhbFNjb3BlKFdlYkNvcmU6OlNlcnZpY2VXb3Jr
ZXJJZGVudGlmaWVyIGRlc3RpbmF0aW9uSWRlbnRpZmllciwgY29uc3QgSVBDOjpEYXRhUmVmZXJl
bmNlJiBtZXNzYWdlLCB1aW50NjRfdCBzb3VyY2VDb250ZXh0SWRlbnRpZmllciwgV2ViQ29yZTo6
U2VydmljZVdvcmtlckNsaWVudERhdGEmJiBzb3VyY2UpOwogCiAgICAgdm9pZCBtYXRjaFJlZ2lz
dHJhdGlvbih1aW50NjRfdCByZWdpc3RyYXRpb25NYXRjaFJlcXVlc3RJZGVudGlmaWVyLCBjb25z
dCBXZWJDb3JlOjpTZWN1cml0eU9yaWdpbkRhdGEmIHRvcE9yaWdpbiwgY29uc3QgV2ViQ29yZTo6
VVJMJiBjbGllbnRVUkwpOwogICAgIHZvaWQgZ2V0UmVnaXN0cmF0aW9ucyh1aW50NjRfdCByZWdp
c3RyYXRpb25NYXRjaFJlcXVlc3RJZGVudGlmaWVyLCBjb25zdCBXZWJDb3JlOjpTZWN1cml0eU9y
aWdpbkRhdGEmIHRvcE9yaWdpbiwgY29uc3QgV2ViQ29yZTo6VVJMJiBjbGllbnRVUkwpOwogCiAg
ICAgSVBDOjpDb25uZWN0aW9uKiBtZXNzYWdlU2VuZGVyQ29ubmVjdGlvbigpIGZpbmFsIHsgcmV0
dXJuIG1fY29udGVudENvbm5lY3Rpb24ucHRyKCk7IH0KLSAgICB1aW50NjRfdCBtZXNzYWdlU2Vu
ZGVyRGVzdGluYXRpb25JRCgpIGZpbmFsIHsgcmV0dXJuIGlkZW50aWZpZXIoKTsgfQorICAgIHVp
bnQ2NF90IG1lc3NhZ2VTZW5kZXJEZXN0aW5hdGlvbklEKCkgZmluYWwgeyByZXR1cm4gaWRlbnRp
ZmllcigpLnRvVW5zaWduZWRJbnRlZ2VyKCk7IH0KICAgICAKICAgICB0ZW1wbGF0ZTx0eXBlbmFt
ZSBVPiB2b2lkIHNlbmRUb0NvbnRleHRQcm9jZXNzKFUmJiBtZXNzYWdlKTsKIApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9TdG9yYWdlUHJvY2Vzcy9TZXJ2aWNlV29ya2VyL1dlYlNXU2VydmVy
Q29ubmVjdGlvbi5tZXNzYWdlcy5pbiBiL1NvdXJjZS9XZWJLaXQvU3RvcmFnZVByb2Nlc3MvU2Vy
dmljZVdvcmtlci9XZWJTV1NlcnZlckNvbm5lY3Rpb24ubWVzc2FnZXMuaW4KaW5kZXggZTIxNDYx
MzA0ZTZlNjIzOTg4MGRjZWE1ZGRiNjBlYThjMWNiNTg1NC4uMTI3ZGQ3YTQyNDFkZmMyZTFiMWNh
YTU1NWM4YjI2ZmVjZTkyNDFiMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9TdG9yYWdlUHJv
Y2Vzcy9TZXJ2aWNlV29ya2VyL1dlYlNXU2VydmVyQ29ubmVjdGlvbi5tZXNzYWdlcy5pbgorKysg
Yi9Tb3VyY2UvV2ViS2l0L1N0b3JhZ2VQcm9jZXNzL1NlcnZpY2VXb3JrZXIvV2ViU1dTZXJ2ZXJD
b25uZWN0aW9uLm1lc3NhZ2VzLmluCkBAIC0zMiw3ICszMiw3IEBAIG1lc3NhZ2VzIC0+IFdlYlNX
U2VydmVyQ29ubmVjdGlvbiB7CiAgICAgU2VydmljZVdvcmtlclN0b3BwZWRDb250cm9sbGluZ0Ns
aWVudChXZWJDb3JlOjpTZXJ2aWNlV29ya2VySWRlbnRpZmllciBzZXJ2aWNlV29ya2VySWRlbnRp
ZmllciwgdWludDY0X3Qgc2NyaXB0RXhlY3V0aW9uQ29udGV4dElkZW50aWZpZXIpCiAKICAgICBT
dGFydEZldGNoKHVpbnQ2NF90IGlkZW50aWZpZXIsIHN0ZDo6b3B0aW9uYWw8V2ViQ29yZTo6U2Vy
dmljZVdvcmtlcklkZW50aWZpZXI+IHNlcnZpY2VXb3JrZXJJZGVudGlmaWVyLCBXZWJDb3JlOjpS
ZXNvdXJjZVJlcXVlc3QgcmVxdWVzdCwgc3RydWN0IFdlYkNvcmU6OkZldGNoT3B0aW9ucyBvcHRp
b25zLCBJUEM6OkZvcm1EYXRhUmVmZXJlbmNlIHJlcXVlc3RCb2R5KQotICAgIFBvc3RNZXNzYWdl
VG9TZXJ2aWNlV29ya2VyR2xvYmFsU2NvcGUoV2ViQ29yZTo6U2VydmljZVdvcmtlcklkZW50aWZp
ZXIgZGVzdGluYXRpb25TZXJ2aWNlV29ya2VySWRlbnRpZmllciwgSVBDOjpEYXRhUmVmZXJlbmNl
IG1lc3NhZ2UsIHN0cnVjdCBXZWJDb3JlOjpTZXJ2aWNlV29ya2VyQ2xpZW50RGF0YSBzb3VyY2Up
CisgICAgUG9zdE1lc3NhZ2VUb1NlcnZpY2VXb3JrZXJHbG9iYWxTY29wZShXZWJDb3JlOjpTZXJ2
aWNlV29ya2VySWRlbnRpZmllciBkZXN0aW5hdGlvblNlcnZpY2VXb3JrZXJJZGVudGlmaWVyLCBJ
UEM6OkRhdGFSZWZlcmVuY2UgbWVzc2FnZSwgdWludDY0X3Qgc291cmNlQ29udGV4dElkZW50aWZp
ZXIsIHN0cnVjdCBXZWJDb3JlOjpTZXJ2aWNlV29ya2VyQ2xpZW50RGF0YSBzb3VyY2UpCiAKICAg
ICBEaWRSZXNvbHZlUmVnaXN0cmF0aW9uUHJvbWlzZShXZWJDb3JlOjpTZXJ2aWNlV29ya2VyUmVn
aXN0cmF0aW9uS2V5IGtleSkKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TdG9yYWdlUHJv
Y2Vzcy9TdG9yYWdlUHJvY2Vzcy5jcHAgYi9Tb3VyY2UvV2ViS2l0L1N0b3JhZ2VQcm9jZXNzL1N0
b3JhZ2VQcm9jZXNzLmNwcAppbmRleCAzYmFhZTdlNDFkMjZiNDAyOWE1MmNkMzU4NDFlOWY4ZTc0
NWIzN2E2Li44ZjZhOTg4NTYwN2IwZDAyYjI1MzljMjZiOWFlZjkxZmMxMjIwMmQxIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L1N0b3JhZ2VQcm9jZXNzL1N0b3JhZ2VQcm9jZXNzLmNwcAorKysg
Yi9Tb3VyY2UvV2ViS2l0L1N0b3JhZ2VQcm9jZXNzL1N0b3JhZ2VQcm9jZXNzLmNwcApAQCAtNDEw
LDM3ICs0MTAsMzcgQEAgdm9pZCBTdG9yYWdlUHJvY2Vzczo6ZGlkR2V0V29ya2VyQ29udGV4dFBy
b2Nlc3NDb25uZWN0aW9uKElQQzo6QXR0YWNobWVudCYmIGVuY28KICAgICAgICAgY29ubmVjdGlv
bi0+d29ya2VyQ29udGV4dFByb2Nlc3NDb25uZWN0aW9uQ3JlYXRlZCgpOwogfQogCi12b2lkIFN0
b3JhZ2VQcm9jZXNzOjpkaWRGYWlsRmV0Y2godWludDY0X3Qgc2VydmVyQ29ubmVjdGlvbklkZW50
aWZpZXIsIHVpbnQ2NF90IGZldGNoSWRlbnRpZmllcikKK3ZvaWQgU3RvcmFnZVByb2Nlc3M6OmRp
ZEZhaWxGZXRjaChTV1NlcnZlckNvbm5lY3Rpb25JZGVudGlmaWVyIHNlcnZlckNvbm5lY3Rpb25J
ZGVudGlmaWVyLCB1aW50NjRfdCBmZXRjaElkZW50aWZpZXIpCiB7CiAgICAgaWYgKGF1dG8qIGNv
bm5lY3Rpb24gPSBtX3N3U2VydmVyQ29ubmVjdGlvbnMuZ2V0KHNlcnZlckNvbm5lY3Rpb25JZGVu
dGlmaWVyKSkKICAgICAgICAgY29ubmVjdGlvbi0+ZGlkRmFpbEZldGNoKGZldGNoSWRlbnRpZmll
cik7CiB9CiAKLXZvaWQgU3RvcmFnZVByb2Nlc3M6OmRpZE5vdEhhbmRsZUZldGNoKHVpbnQ2NF90
IHNlcnZlckNvbm5lY3Rpb25JZGVudGlmaWVyLCB1aW50NjRfdCBmZXRjaElkZW50aWZpZXIpCit2
b2lkIFN0b3JhZ2VQcm9jZXNzOjpkaWROb3RIYW5kbGVGZXRjaChTV1NlcnZlckNvbm5lY3Rpb25J
ZGVudGlmaWVyIHNlcnZlckNvbm5lY3Rpb25JZGVudGlmaWVyLCB1aW50NjRfdCBmZXRjaElkZW50
aWZpZXIpCiB7CiAgICAgaWYgKGF1dG8qIGNvbm5lY3Rpb24gPSBtX3N3U2VydmVyQ29ubmVjdGlv
bnMuZ2V0KHNlcnZlckNvbm5lY3Rpb25JZGVudGlmaWVyKSkKICAgICAgICAgY29ubmVjdGlvbi0+
ZGlkTm90SGFuZGxlRmV0Y2goZmV0Y2hJZGVudGlmaWVyKTsKIH0KIAotdm9pZCBTdG9yYWdlUHJv
Y2Vzczo6ZGlkUmVjZWl2ZUZldGNoUmVzcG9uc2UodWludDY0X3Qgc2VydmVyQ29ubmVjdGlvbklk
ZW50aWZpZXIsIHVpbnQ2NF90IGZldGNoSWRlbnRpZmllciwgY29uc3QgV2ViQ29yZTo6UmVzb3Vy
Y2VSZXNwb25zZSYgcmVzcG9uc2UpCit2b2lkIFN0b3JhZ2VQcm9jZXNzOjpkaWRSZWNlaXZlRmV0
Y2hSZXNwb25zZShTV1NlcnZlckNvbm5lY3Rpb25JZGVudGlmaWVyIHNlcnZlckNvbm5lY3Rpb25J
ZGVudGlmaWVyLCB1aW50NjRfdCBmZXRjaElkZW50aWZpZXIsIGNvbnN0IFdlYkNvcmU6OlJlc291
cmNlUmVzcG9uc2UmIHJlc3BvbnNlKQogewogICAgIGlmIChhdXRvKiBjb25uZWN0aW9uID0gbV9z
d1NlcnZlckNvbm5lY3Rpb25zLmdldChzZXJ2ZXJDb25uZWN0aW9uSWRlbnRpZmllcikpCiAgICAg
ICAgIGNvbm5lY3Rpb24tPmRpZFJlY2VpdmVGZXRjaFJlc3BvbnNlKGZldGNoSWRlbnRpZmllciwg
cmVzcG9uc2UpOwogfQogCi12b2lkIFN0b3JhZ2VQcm9jZXNzOjpkaWRSZWNlaXZlRmV0Y2hEYXRh
KHVpbnQ2NF90IHNlcnZlckNvbm5lY3Rpb25JZGVudGlmaWVyLCB1aW50NjRfdCBmZXRjaElkZW50
aWZpZXIsIGNvbnN0IElQQzo6RGF0YVJlZmVyZW5jZSYgZGF0YSwgaW50NjRfdCBlbmNvZGVkRGF0
YUxlbmd0aCkKK3ZvaWQgU3RvcmFnZVByb2Nlc3M6OmRpZFJlY2VpdmVGZXRjaERhdGEoU1dTZXJ2
ZXJDb25uZWN0aW9uSWRlbnRpZmllciBzZXJ2ZXJDb25uZWN0aW9uSWRlbnRpZmllciwgdWludDY0
X3QgZmV0Y2hJZGVudGlmaWVyLCBjb25zdCBJUEM6OkRhdGFSZWZlcmVuY2UmIGRhdGEsIGludDY0
X3QgZW5jb2RlZERhdGFMZW5ndGgpCiB7CiAgICAgaWYgKGF1dG8qIGNvbm5lY3Rpb24gPSBtX3N3
U2VydmVyQ29ubmVjdGlvbnMuZ2V0KHNlcnZlckNvbm5lY3Rpb25JZGVudGlmaWVyKSkKICAgICAg
ICAgY29ubmVjdGlvbi0+ZGlkUmVjZWl2ZUZldGNoRGF0YShmZXRjaElkZW50aWZpZXIsIGRhdGEs
IGVuY29kZWREYXRhTGVuZ3RoKTsKIH0KIAotdm9pZCBTdG9yYWdlUHJvY2Vzczo6ZGlkUmVjZWl2
ZUZldGNoRm9ybURhdGEodWludDY0X3Qgc2VydmVyQ29ubmVjdGlvbklkZW50aWZpZXIsIHVpbnQ2
NF90IGZldGNoSWRlbnRpZmllciwgY29uc3QgSVBDOjpGb3JtRGF0YVJlZmVyZW5jZSYgZm9ybURh
dGEpCit2b2lkIFN0b3JhZ2VQcm9jZXNzOjpkaWRSZWNlaXZlRmV0Y2hGb3JtRGF0YShTV1NlcnZl
ckNvbm5lY3Rpb25JZGVudGlmaWVyIHNlcnZlckNvbm5lY3Rpb25JZGVudGlmaWVyLCB1aW50NjRf
dCBmZXRjaElkZW50aWZpZXIsIGNvbnN0IElQQzo6Rm9ybURhdGFSZWZlcmVuY2UmIGZvcm1EYXRh
KQogewogICAgIGlmIChhdXRvKiBjb25uZWN0aW9uID0gbV9zd1NlcnZlckNvbm5lY3Rpb25zLmdl
dChzZXJ2ZXJDb25uZWN0aW9uSWRlbnRpZmllcikpCiAgICAgICAgIGNvbm5lY3Rpb24tPmRpZFJl
Y2VpdmVGZXRjaEZvcm1EYXRhKGZldGNoSWRlbnRpZmllciwgZm9ybURhdGEpOwogfQogCi12b2lk
IFN0b3JhZ2VQcm9jZXNzOjpkaWRGaW5pc2hGZXRjaCh1aW50NjRfdCBzZXJ2ZXJDb25uZWN0aW9u
SWRlbnRpZmllciwgdWludDY0X3QgZmV0Y2hJZGVudGlmaWVyKQordm9pZCBTdG9yYWdlUHJvY2Vz
czo6ZGlkRmluaXNoRmV0Y2goU1dTZXJ2ZXJDb25uZWN0aW9uSWRlbnRpZmllciBzZXJ2ZXJDb25u
ZWN0aW9uSWRlbnRpZmllciwgdWludDY0X3QgZmV0Y2hJZGVudGlmaWVyKQogewogICAgIGlmIChh
dXRvKiBjb25uZWN0aW9uID0gbV9zd1NlcnZlckNvbm5lY3Rpb25zLmdldChzZXJ2ZXJDb25uZWN0
aW9uSWRlbnRpZmllcikpCiAgICAgICAgIGNvbm5lY3Rpb24tPmRpZEZpbmlzaEZldGNoKGZldGNo
SWRlbnRpZmllcik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1N0b3JhZ2VQcm9jZXNzL1N0
b3JhZ2VQcm9jZXNzLmggYi9Tb3VyY2UvV2ViS2l0L1N0b3JhZ2VQcm9jZXNzL1N0b3JhZ2VQcm9j
ZXNzLmgKaW5kZXggNjM3MzEyOWRiZWEwZjc3ZjgzODkwMDkyZjdiYzU4MWNhNmUxYmMwZS4uNGNi
MmJkZDU2Yzg4YTBkMWE4YWFmZjdlMjg4ODEzYmYxZDgzODhhYSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9TdG9yYWdlUHJvY2Vzcy9TdG9yYWdlUHJvY2Vzcy5oCisrKyBiL1NvdXJjZS9XZWJL
aXQvU3RvcmFnZVByb2Nlc3MvU3RvcmFnZVByb2Nlc3MuaApAQCAtMzAsNiArMzAsNyBAQAogI2lu
Y2x1ZGUgPFdlYkNvcmUvSURCQmFja2luZ1N0b3JlLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9JREJT
ZXJ2ZXIuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1NlcnZpY2VXb3JrZXJJZGVudGlmaWVyLmg+Cisj
aW5jbHVkZSA8V2ViQ29yZS9TZXJ2aWNlV29ya2VyVHlwZXMuaD4KICNpbmNsdWRlIDxXZWJDb3Jl
L1VuaXF1ZUlEQkRhdGFiYXNlLmg+CiAjaW5jbHVkZSA8cGFsL1Nlc3Npb25JRC5oPgogI2luY2x1
ZGUgPHd0Zi9Dcm9zc1RocmVhZFRhc2suaD4KQEAgLTEyNCwxMiArMTI1LDEyIEBAIHByaXZhdGU6
CiAjaWYgRU5BQkxFKFNFUlZJQ0VfV09SS0VSKQogICAgIHZvaWQgZGlkR2V0V29ya2VyQ29udGV4
dFByb2Nlc3NDb25uZWN0aW9uKElQQzo6QXR0YWNobWVudCYmIGVuY29kZWRDb25uZWN0aW9uSWRl
bnRpZmllcik7CiAKLSAgICB2b2lkIGRpZFJlY2VpdmVGZXRjaFJlc3BvbnNlKHVpbnQ2NF90IHNl
cnZlckNvbm5lY3Rpb25JZGVudGlmaWVyLCB1aW50NjRfdCBmZXRjaElkZW50aWZpZXIsIGNvbnN0
IFdlYkNvcmU6OlJlc291cmNlUmVzcG9uc2UmKTsKLSAgICB2b2lkIGRpZFJlY2VpdmVGZXRjaERh
dGEodWludDY0X3Qgc2VydmVyQ29ubmVjdGlvbklkZW50aWZpZXIsIHVpbnQ2NF90IGZldGNoSWRl
bnRpZmllciwgY29uc3QgSVBDOjpEYXRhUmVmZXJlbmNlJiwgaW50NjRfdCBlbmNvZGVkRGF0YUxl
bmd0aCk7Ci0gICAgdm9pZCBkaWRSZWNlaXZlRmV0Y2hGb3JtRGF0YSh1aW50NjRfdCBzZXJ2ZXJD
b25uZWN0aW9uSWRlbnRpZmllciwgdWludDY0X3QgZmV0Y2hJZGVudGlmaWVyLCBjb25zdCBJUEM6
OkZvcm1EYXRhUmVmZXJlbmNlJik7Ci0gICAgdm9pZCBkaWRGaW5pc2hGZXRjaCh1aW50NjRfdCBz
ZXJ2ZXJDb25uZWN0aW9uSWRlbnRpZmllciwgdWludDY0X3QgZmV0Y2hJZGVudGlmaWVyKTsKLSAg
ICB2b2lkIGRpZEZhaWxGZXRjaCh1aW50NjRfdCBzZXJ2ZXJDb25uZWN0aW9uSWRlbnRpZmllciwg
dWludDY0X3QgZmV0Y2hJZGVudGlmaWVyKTsKLSAgICB2b2lkIGRpZE5vdEhhbmRsZUZldGNoKHVp
bnQ2NF90IHNlcnZlckNvbm5lY3Rpb25JZGVudGlmaWVyLCB1aW50NjRfdCBmZXRjaElkZW50aWZp
ZXIpOworICAgIHZvaWQgZGlkUmVjZWl2ZUZldGNoUmVzcG9uc2UoV2ViQ29yZTo6U1dTZXJ2ZXJD
b25uZWN0aW9uSWRlbnRpZmllciwgdWludDY0X3QgZmV0Y2hJZGVudGlmaWVyLCBjb25zdCBXZWJD
b3JlOjpSZXNvdXJjZVJlc3BvbnNlJik7CisgICAgdm9pZCBkaWRSZWNlaXZlRmV0Y2hEYXRhKFdl
YkNvcmU6OlNXU2VydmVyQ29ubmVjdGlvbklkZW50aWZpZXIsIHVpbnQ2NF90IGZldGNoSWRlbnRp
ZmllciwgY29uc3QgSVBDOjpEYXRhUmVmZXJlbmNlJiwgaW50NjRfdCBlbmNvZGVkRGF0YUxlbmd0
aCk7CisgICAgdm9pZCBkaWRSZWNlaXZlRmV0Y2hGb3JtRGF0YShXZWJDb3JlOjpTV1NlcnZlckNv
bm5lY3Rpb25JZGVudGlmaWVyLCB1aW50NjRfdCBmZXRjaElkZW50aWZpZXIsIGNvbnN0IElQQzo6
Rm9ybURhdGFSZWZlcmVuY2UmKTsKKyAgICB2b2lkIGRpZEZpbmlzaEZldGNoKFdlYkNvcmU6OlNX
U2VydmVyQ29ubmVjdGlvbklkZW50aWZpZXIsIHVpbnQ2NF90IGZldGNoSWRlbnRpZmllcik7Cisg
ICAgdm9pZCBkaWRGYWlsRmV0Y2goV2ViQ29yZTo6U1dTZXJ2ZXJDb25uZWN0aW9uSWRlbnRpZmll
ciwgdWludDY0X3QgZmV0Y2hJZGVudGlmaWVyKTsKKyAgICB2b2lkIGRpZE5vdEhhbmRsZUZldGNo
KFdlYkNvcmU6OlNXU2VydmVyQ29ubmVjdGlvbklkZW50aWZpZXIsIHVpbnQ2NF90IGZldGNoSWRl
bnRpZmllcik7CiAKICAgICB2b2lkIHBvc3RNZXNzYWdlVG9TZXJ2aWNlV29ya2VyQ2xpZW50KGNv
bnN0IFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJDbGllbnRJZGVudGlmaWVyJiBkZXN0aW5hdGlvbklk
ZW50aWZpZXIsIGNvbnN0IElQQzo6RGF0YVJlZmVyZW5jZSYgbWVzc2FnZSwgV2ViQ29yZTo6U2Vy
dmljZVdvcmtlcklkZW50aWZpZXIgc291cmNlSWRlbnRpZmllciwgY29uc3QgU3RyaW5nJiBzb3Vy
Y2VPcmlnaW4pOwogICAgIFdlYlNXT3JpZ2luU3RvcmUmIHN3T3JpZ2luU3RvcmVGb3JTZXNzaW9u
KFBBTDo6U2Vzc2lvbklEKTsKQEAgLTE2Miw3ICsxNjMsNyBAQCBwcml2YXRlOgogICAgIFJlZlB0
cjxXZWJTV1NlcnZlclRvQ29udGV4dENvbm5lY3Rpb24+IG1fc2VydmVyVG9Db250ZXh0Q29ubmVj
dGlvbjsKICAgICBib29sIG1fd2FpdGluZ0ZvclNlcnZlclRvQ29udGV4dFByb2Nlc3NDb25uZWN0
aW9uIHsgZmFsc2UgfTsKICAgICBIYXNoTWFwPFBBTDo6U2Vzc2lvbklELCBzdGQ6OnVuaXF1ZV9w
dHI8V2ViQ29yZTo6U1dTZXJ2ZXI+PiBtX3N3U2VydmVyczsKLSAgICBIYXNoTWFwPHVpbnQ2NF90
LCBXZWJTV1NlcnZlckNvbm5lY3Rpb24qPiBtX3N3U2VydmVyQ29ubmVjdGlvbnM7CisgICAgSGFz
aE1hcDxXZWJDb3JlOjpTV1NlcnZlckNvbm5lY3Rpb25JZGVudGlmaWVyLCBXZWJTV1NlcnZlckNv
bm5lY3Rpb24qPiBtX3N3U2VydmVyQ29ubmVjdGlvbnM7CiAjZW5kaWYKIH07CiAKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvU3RvcmFnZVByb2Nlc3MvU3RvcmFnZVByb2Nlc3MubWVzc2FnZXMu
aW4gYi9Tb3VyY2UvV2ViS2l0L1N0b3JhZ2VQcm9jZXNzL1N0b3JhZ2VQcm9jZXNzLm1lc3NhZ2Vz
LmluCmluZGV4IDY2ZjI5Y2Q5YzFkYTA4Yzk4MzZkMmFkYWVkNDQzODMwMTcwZGFlNzguLmZiNWU0
ZDhiMDczYTYzMWQ3Y2NiMTExYjZmOTU1OTRiMWNkMTRiYWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvU3RvcmFnZVByb2Nlc3MvU3RvcmFnZVByb2Nlc3MubWVzc2FnZXMuaW4KKysrIGIvU291
cmNlL1dlYktpdC9TdG9yYWdlUHJvY2Vzcy9TdG9yYWdlUHJvY2Vzcy5tZXNzYWdlcy5pbgpAQCAt
MzgsMTIgKzM4LDEyIEBAIG1lc3NhZ2VzIC0+IFN0b3JhZ2VQcm9jZXNzIExlZ2FjeVJlY2VpdmVy
IHsKICNpZiBFTkFCTEUoU0VSVklDRV9XT1JLRVIpCiAgICAgRGlkR2V0V29ya2VyQ29udGV4dFBy
b2Nlc3NDb25uZWN0aW9uKElQQzo6QXR0YWNobWVudCBjb25uZWN0aW9uSGFuZGxlKQogCi0gICAg
RGlkTm90SGFuZGxlRmV0Y2godWludDY0X3Qgc2VydmVyQ29ubmVjdGlvbklkZW50aWZpZXIsIHVp
bnQ2NF90IGZldGNoSWRlbnRpZmllcikKLSAgICBEaWRGYWlsRmV0Y2godWludDY0X3Qgc2VydmVy
Q29ubmVjdGlvbklkZW50aWZpZXIsIHVpbnQ2NF90IGZldGNoSWRlbnRpZmllcikKLSAgICBEaWRS
ZWNlaXZlRmV0Y2hSZXNwb25zZSh1aW50NjRfdCBzZXJ2ZXJDb25uZWN0aW9uSWRlbnRpZmllciwg
dWludDY0X3QgZmV0Y2hJZGVudGlmaWVyLCBXZWJDb3JlOjpSZXNvdXJjZVJlc3BvbnNlIHJlc3Bv
bnNlKQotICAgIERpZFJlY2VpdmVGZXRjaERhdGEodWludDY0X3Qgc2VydmVyQ29ubmVjdGlvbklk
ZW50aWZpZXIsIHVpbnQ2NF90IGZldGNoSWRlbnRpZmllciwgSVBDOjpEYXRhUmVmZXJlbmNlIGRh
dGEsIGludDY0X3QgZW5jb2RlZERhdGFMZW5ndGgpCi0gICAgRGlkUmVjZWl2ZUZldGNoRm9ybURh
dGEodWludDY0X3Qgc2VydmVyQ29ubmVjdGlvbklkZW50aWZpZXIsIHVpbnQ2NF90IGZldGNoSWRl
bnRpZmllciwgSVBDOjpGb3JtRGF0YVJlZmVyZW5jZSBkYXRhKQotICAgIERpZEZpbmlzaEZldGNo
KHVpbnQ2NF90IHNlcnZlckNvbm5lY3Rpb25JZGVudGlmaWVyLCB1aW50NjRfdCBmZXRjaElkZW50
aWZpZXIpCisgICAgRGlkTm90SGFuZGxlRmV0Y2goV2ViQ29yZTo6U1dTZXJ2ZXJDb25uZWN0aW9u
SWRlbnRpZmllciBzZXJ2ZXJDb25uZWN0aW9uSWRlbnRpZmllciwgdWludDY0X3QgZmV0Y2hJZGVu
dGlmaWVyKQorICAgIERpZEZhaWxGZXRjaChXZWJDb3JlOjpTV1NlcnZlckNvbm5lY3Rpb25JZGVu
dGlmaWVyIHNlcnZlckNvbm5lY3Rpb25JZGVudGlmaWVyLCB1aW50NjRfdCBmZXRjaElkZW50aWZp
ZXIpCisgICAgRGlkUmVjZWl2ZUZldGNoUmVzcG9uc2UoV2ViQ29yZTo6U1dTZXJ2ZXJDb25uZWN0
aW9uSWRlbnRpZmllciBzZXJ2ZXJDb25uZWN0aW9uSWRlbnRpZmllciwgdWludDY0X3QgZmV0Y2hJ
ZGVudGlmaWVyLCBXZWJDb3JlOjpSZXNvdXJjZVJlc3BvbnNlIHJlc3BvbnNlKQorICAgIERpZFJl
Y2VpdmVGZXRjaERhdGEoV2ViQ29yZTo6U1dTZXJ2ZXJDb25uZWN0aW9uSWRlbnRpZmllciBzZXJ2
ZXJDb25uZWN0aW9uSWRlbnRpZmllciwgdWludDY0X3QgZmV0Y2hJZGVudGlmaWVyLCBJUEM6OkRh
dGFSZWZlcmVuY2UgZGF0YSwgaW50NjRfdCBlbmNvZGVkRGF0YUxlbmd0aCkKKyAgICBEaWRSZWNl
aXZlRmV0Y2hGb3JtRGF0YShXZWJDb3JlOjpTV1NlcnZlckNvbm5lY3Rpb25JZGVudGlmaWVyIHNl
cnZlckNvbm5lY3Rpb25JZGVudGlmaWVyLCB1aW50NjRfdCBmZXRjaElkZW50aWZpZXIsIElQQzo6
Rm9ybURhdGFSZWZlcmVuY2UgZGF0YSkKKyAgICBEaWRGaW5pc2hGZXRjaChXZWJDb3JlOjpTV1Nl
cnZlckNvbm5lY3Rpb25JZGVudGlmaWVyIHNlcnZlckNvbm5lY3Rpb25JZGVudGlmaWVyLCB1aW50
NjRfdCBmZXRjaElkZW50aWZpZXIpCiAgICAgUG9zdE1lc3NhZ2VUb1NlcnZpY2VXb3JrZXJDbGll
bnQoc3RydWN0IFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJDbGllbnRJZGVudGlmaWVyIGRlc3RpbmF0
aW9uSWRlbnRpZmllciwgSVBDOjpEYXRhUmVmZXJlbmNlIG1lc3NhZ2UsIFdlYkNvcmU6OlNlcnZp
Y2VXb3JrZXJJZGVudGlmaWVyIHNvdXJjZUlkZW50aWZpZXIsIFN0cmluZyBzb3VyY2VPcmlnaW4p
CiAjZW5kaWYKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU3RvcmFnZVByb2Nlc3MvU3Rv
cmFnZVRvV2ViUHJvY2Vzc0Nvbm5lY3Rpb24uY3BwIGIvU291cmNlL1dlYktpdC9TdG9yYWdlUHJv
Y2Vzcy9TdG9yYWdlVG9XZWJQcm9jZXNzQ29ubmVjdGlvbi5jcHAKaW5kZXggOWIwOTc3ODUzZjE0
MGRjMTQ1OWJhZTZjNTEwYjEwNDdjY2M0YTE1Mi4uNWQ3NDZiNGZkYzhjNzdhNjdmYWFkYWRkY2Fj
ODNmZjQ4M2MwNmU5NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9TdG9yYWdlUHJvY2Vzcy9T
dG9yYWdlVG9XZWJQcm9jZXNzQ29ubmVjdGlvbi5jcHAKKysrIGIvU291cmNlL1dlYktpdC9TdG9y
YWdlUHJvY2Vzcy9TdG9yYWdlVG9XZWJQcm9jZXNzQ29ubmVjdGlvbi5jcHAKQEAgLTg1LDcgKzg1
LDcgQEAgdm9pZCBTdG9yYWdlVG9XZWJQcm9jZXNzQ29ubmVjdGlvbjo6ZGlkUmVjZWl2ZU1lc3Nh
Z2UoSVBDOjpDb25uZWN0aW9uJiBjb25uZWN0aW8KIAogI2lmIEVOQUJMRShTRVJWSUNFX1dPUktF
UikKICAgICBpZiAoZGVjb2Rlci5tZXNzYWdlUmVjZWl2ZXJOYW1lKCkgPT0gTWVzc2FnZXM6Oldl
YlNXU2VydmVyQ29ubmVjdGlvbjo6bWVzc2FnZVJlY2VpdmVyTmFtZSgpKSB7Ci0gICAgICAgIGF1
dG8gaXRlcmF0b3IgPSBtX3N3Q29ubmVjdGlvbnMuZmluZChkZWNvZGVyLmRlc3RpbmF0aW9uSUQo
KSk7CisgICAgICAgIGF1dG8gaXRlcmF0b3IgPSBtX3N3Q29ubmVjdGlvbnMuZmluZChtYWtlT2Jq
ZWN0SWRlbnRpZmllcjxTV1NlcnZlckNvbm5lY3Rpb25JZGVudGlmaWVyVHlwZT4oZGVjb2Rlci5k
ZXN0aW5hdGlvbklEKCkpKTsKICAgICAgICAgaWYgKGl0ZXJhdG9yICE9IG1fc3dDb25uZWN0aW9u
cy5lbmQoKSkKICAgICAgICAgICAgIGl0ZXJhdG9yLT52YWx1ZS0+ZGlkUmVjZWl2ZU1lc3NhZ2Uo
Y29ubmVjdGlvbiwgZGVjb2Rlcik7CiAgICAgICAgIHJldHVybjsKQEAgLTEzOCwzMSArMTM4LDI2
IEBAIHZvaWQgU3RvcmFnZVRvV2ViUHJvY2Vzc0Nvbm5lY3Rpb246OmRpZFJlY2VpdmVJbnZhbGlk
TWVzc2FnZShJUEM6OkNvbm5lY3Rpb24mLCBJCiAKIH0KIAotc3RhdGljIHVpbnQ2NF90IGdlbmVy
YXRlQ29ubmVjdGlvblRvU2VydmVySWRlbnRpZmllcigpCi17Ci0gICAgQVNTRVJUKFJ1bkxvb3A6
OmlzTWFpbigpKTsKLSAgICBzdGF0aWMgdWludDY0X3QgaWRlbnRpZmllciA9IDA7Ci0gICAgcmV0
dXJuICsraWRlbnRpZmllcjsKLX0KLQogI2lmIEVOQUJMRShTRVJWSUNFX1dPUktFUikKLXZvaWQg
U3RvcmFnZVRvV2ViUHJvY2Vzc0Nvbm5lY3Rpb246OmVzdGFibGlzaFNXU2VydmVyQ29ubmVjdGlv
bihTZXNzaW9uSUQgc2Vzc2lvbklELCB1aW50NjRfdCYgc2VydmVyQ29ubmVjdGlvbklkZW50aWZp
ZXIpCit2b2lkIFN0b3JhZ2VUb1dlYlByb2Nlc3NDb25uZWN0aW9uOjplc3RhYmxpc2hTV1NlcnZl
ckNvbm5lY3Rpb24oU2Vzc2lvbklEIHNlc3Npb25JRCwgU1dTZXJ2ZXJDb25uZWN0aW9uSWRlbnRp
ZmllciYgc2VydmVyQ29ubmVjdGlvbklkZW50aWZpZXIpCiB7Ci0gICAgc2VydmVyQ29ubmVjdGlv
bklkZW50aWZpZXIgPSBnZW5lcmF0ZUNvbm5lY3Rpb25Ub1NlcnZlcklkZW50aWZpZXIoKTsKLSAg
ICBMT0coU2VydmljZVdvcmtlciwgIlN0b3JhZ2VUb1dlYlByb2Nlc3NDb25uZWN0aW9uOjplc3Rh
Ymxpc2hTV1NlcnZlckNvbm5lY3Rpb24gLSAlIiBQUkl1NjQsIHNlcnZlckNvbm5lY3Rpb25JZGVu
dGlmaWVyKTsKKyAgICBhdXRvJiBzZXJ2ZXIgPSBTdG9yYWdlUHJvY2Vzczo6c2luZ2xldG9uKCku
c3dTZXJ2ZXJGb3JTZXNzaW9uKHNlc3Npb25JRCk7CisgICAgYXV0byBjb25uZWN0aW9uID0gc3Rk
OjptYWtlX3VuaXF1ZTxXZWJTV1NlcnZlckNvbm5lY3Rpb24+KHNlcnZlciwgbV9jb25uZWN0aW9u
LmdldCgpLCBzZXNzaW9uSUQpOworCisgICAgc2VydmVyQ29ubmVjdGlvbklkZW50aWZpZXIgPSBj
b25uZWN0aW9uLT5pZGVudGlmaWVyKCk7CisgICAgTE9HKFNlcnZpY2VXb3JrZXIsICJTdG9yYWdl
VG9XZWJQcm9jZXNzQ29ubmVjdGlvbjo6ZXN0YWJsaXNoU1dTZXJ2ZXJDb25uZWN0aW9uIC0gJXMi
LCBzZXJ2ZXJDb25uZWN0aW9uSWRlbnRpZmllci5sb2dnaW5nU3RyaW5nKCkudXRmOCgpLmRhdGEo
KSk7CiAgICAgQVNTRVJUKCFtX3N3Q29ubmVjdGlvbnMuY29udGFpbnMoc2VydmVyQ29ubmVjdGlv
bklkZW50aWZpZXIpKTsKIAotICAgIGF1dG8mIHNlcnZlciA9IFN0b3JhZ2VQcm9jZXNzOjpzaW5n
bGV0b24oKS5zd1NlcnZlckZvclNlc3Npb24oc2Vzc2lvbklEKTsKLSAgICBhdXRvIGNvbm5lY3Rp
b25SZXN1bHQgPSBtX3N3Q29ubmVjdGlvbnMuYWRkKHNlcnZlckNvbm5lY3Rpb25JZGVudGlmaWVy
LCBzdGQ6Om1ha2VfdW5pcXVlPFdlYlNXU2VydmVyQ29ubmVjdGlvbj4oc2VydmVyLCBtX2Nvbm5l
Y3Rpb24uZ2V0KCksIHNlcnZlckNvbm5lY3Rpb25JZGVudGlmaWVyLCBzZXNzaW9uSUQpKTsKLSAg
ICBBU1NFUlQoY29ubmVjdGlvblJlc3VsdC5pc05ld0VudHJ5KTsKKyAgICBhdXRvIGFkZFJlc3Vs
dCA9IG1fc3dDb25uZWN0aW9ucy5hZGQoc2VydmVyQ29ubmVjdGlvbklkZW50aWZpZXIsIFdURk1v
dmUoY29ubmVjdGlvbikpOworICAgIEFTU0VSVChhZGRSZXN1bHQuaXNOZXdFbnRyeSk7CiAKLSAg
ICBTdG9yYWdlUHJvY2Vzczo6c2luZ2xldG9uKCkucmVnaXN0ZXJTV1NlcnZlckNvbm5lY3Rpb24o
Kihjb25uZWN0aW9uUmVzdWx0Lml0ZXJhdG9yLT52YWx1ZSkpOworICAgIFN0b3JhZ2VQcm9jZXNz
OjpzaW5nbGV0b24oKS5yZWdpc3RlclNXU2VydmVyQ29ubmVjdGlvbigqKGFkZFJlc3VsdC5pdGVy
YXRvci0+dmFsdWUpKTsKIAogICAgIGlmICghU3RvcmFnZVByb2Nlc3M6OnNpbmdsZXRvbigpLmds
b2JhbFNlcnZlclRvQ29udGV4dENvbm5lY3Rpb24oKSkKICAgICAgICAgU3RvcmFnZVByb2Nlc3M6
OnNpbmdsZXRvbigpLmNyZWF0ZVNlcnZlclRvQ29udGV4dENvbm5lY3Rpb24oKTsKIH0KIAotdm9p
ZCBTdG9yYWdlVG9XZWJQcm9jZXNzQ29ubmVjdGlvbjo6cmVtb3ZlU1dTZXJ2ZXJDb25uZWN0aW9u
KHVpbnQ2NF90IHNlcnZlckNvbm5lY3Rpb25JZGVudGlmaWVyKQordm9pZCBTdG9yYWdlVG9XZWJQ
cm9jZXNzQ29ubmVjdGlvbjo6cmVtb3ZlU1dTZXJ2ZXJDb25uZWN0aW9uKFdlYkNvcmU6OlNXU2Vy
dmVyOjpDb25uZWN0aW9uOjpJZGVudGlmaWVyIHNlcnZlckNvbm5lY3Rpb25JZGVudGlmaWVyKQog
ewogICAgIEFTU0VSVChtX3N3Q29ubmVjdGlvbnMuY29udGFpbnMoc2VydmVyQ29ubmVjdGlvbklk
ZW50aWZpZXIpKTsKIApAQCAtMTc5LDkgKzE3NCwxNiBAQCB2b2lkIFN0b3JhZ2VUb1dlYlByb2Nl
c3NDb25uZWN0aW9uOjp3b3JrZXJDb250ZXh0UHJvY2Vzc0Nvbm5lY3Rpb25DcmVhdGVkKCkKICNl
bmRpZgogCiAjaWYgRU5BQkxFKElOREVYRURfREFUQUJBU0UpCitzdGF0aWMgdWludDY0X3QgZ2Vu
ZXJhdGVJREJDb25uZWN0aW9uVG9TZXJ2ZXJJZGVudGlmaWVyKCkKK3sKKyAgICBBU1NFUlQoUnVu
TG9vcDo6aXNNYWluKCkpOworICAgIHN0YXRpYyB1aW50NjRfdCBpZGVudGlmaWVyID0gMDsKKyAg
ICByZXR1cm4gKytpZGVudGlmaWVyOworfQorCiB2b2lkIFN0b3JhZ2VUb1dlYlByb2Nlc3NDb25u
ZWN0aW9uOjplc3RhYmxpc2hJREJDb25uZWN0aW9uVG9TZXJ2ZXIoU2Vzc2lvbklEIHNlc3Npb25J
RCwgdWludDY0X3QmIHNlcnZlckNvbm5lY3Rpb25JZGVudGlmaWVyKQogewotICAgIHNlcnZlckNv
bm5lY3Rpb25JZGVudGlmaWVyID0gZ2VuZXJhdGVDb25uZWN0aW9uVG9TZXJ2ZXJJZGVudGlmaWVy
KCk7CisgICAgc2VydmVyQ29ubmVjdGlvbklkZW50aWZpZXIgPSBnZW5lcmF0ZUlEQkNvbm5lY3Rp
b25Ub1NlcnZlcklkZW50aWZpZXIoKTsKICAgICBMT0coSW5kZXhlZERCLCAiU3RvcmFnZVRvV2Vi
UHJvY2Vzc0Nvbm5lY3Rpb246OmVzdGFibGlzaElEQkNvbm5lY3Rpb25Ub1NlcnZlciAtICUiIFBS
SXU2NCwgc2VydmVyQ29ubmVjdGlvbklkZW50aWZpZXIpOwogICAgIEFTU0VSVCghbV93ZWJJREJD
b25uZWN0aW9ucy5jb250YWlucyhzZXJ2ZXJDb25uZWN0aW9uSWRlbnRpZmllcikpOwogCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L1N0b3JhZ2VQcm9jZXNzL1N0b3JhZ2VUb1dlYlByb2Nlc3ND
b25uZWN0aW9uLmggYi9Tb3VyY2UvV2ViS2l0L1N0b3JhZ2VQcm9jZXNzL1N0b3JhZ2VUb1dlYlBy
b2Nlc3NDb25uZWN0aW9uLmgKaW5kZXggNWI5Y2U4YWE1YWM3YjM2YzMzMGQyYTljYjk3MGRiYzIw
MjcxODUyNS4uYWRjN2ZkNzBmNmNmYWRhZmQzMjk2ZWEzZjY4NTU2Njk2ZGRmNmYzNiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9TdG9yYWdlUHJvY2Vzcy9TdG9yYWdlVG9XZWJQcm9jZXNzQ29u
bmVjdGlvbi5oCisrKyBiL1NvdXJjZS9XZWJLaXQvU3RvcmFnZVByb2Nlc3MvU3RvcmFnZVRvV2Vi
UHJvY2Vzc0Nvbm5lY3Rpb24uaApAQCAtNzIsOSArNzIsOSBAQCBwcml2YXRlOgogI2VuZGlmIC8v
IEVOQUJMRShJTkRFWEVEX0RBVEFCQVNFKQogCiAjaWYgRU5BQkxFKFNFUlZJQ0VfV09SS0VSKQot
ICAgIHZvaWQgZXN0YWJsaXNoU1dTZXJ2ZXJDb25uZWN0aW9uKFBBTDo6U2Vzc2lvbklELCB1aW50
NjRfdCYgc2VydmVyQ29ubmVjdGlvbklkZW50aWZpZXIpOwotICAgIHZvaWQgcmVtb3ZlU1dTZXJ2
ZXJDb25uZWN0aW9uKHVpbnQ2NF90IHNlcnZlckNvbm5lY3Rpb25JZGVudGlmaWVyKTsKLSAgICBI
YXNoTWFwPHVpbnQ2NF90LCBzdGQ6OnVuaXF1ZV9wdHI8V2ViU1dTZXJ2ZXJDb25uZWN0aW9uPj4g
bV9zd0Nvbm5lY3Rpb25zOworICAgIHZvaWQgZXN0YWJsaXNoU1dTZXJ2ZXJDb25uZWN0aW9uKFBB
TDo6U2Vzc2lvbklELCBXZWJDb3JlOjpTV1NlcnZlckNvbm5lY3Rpb25JZGVudGlmaWVyJik7Cisg
ICAgdm9pZCByZW1vdmVTV1NlcnZlckNvbm5lY3Rpb24oV2ViQ29yZTo6U1dTZXJ2ZXJDb25uZWN0
aW9uSWRlbnRpZmllcik7CisgICAgSGFzaE1hcDxXZWJDb3JlOjpTV1NlcnZlckNvbm5lY3Rpb25J
ZGVudGlmaWVyLCBzdGQ6OnVuaXF1ZV9wdHI8V2ViU1dTZXJ2ZXJDb25uZWN0aW9uPj4gbV9zd0Nv
bm5lY3Rpb25zOwogI2VuZGlmCiAKICAgICBSZWY8SVBDOjpDb25uZWN0aW9uPiBtX2Nvbm5lY3Rp
b247CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1N0b3JhZ2VQcm9jZXNzL1N0b3JhZ2VUb1dl
YlByb2Nlc3NDb25uZWN0aW9uLm1lc3NhZ2VzLmluIGIvU291cmNlL1dlYktpdC9TdG9yYWdlUHJv
Y2Vzcy9TdG9yYWdlVG9XZWJQcm9jZXNzQ29ubmVjdGlvbi5tZXNzYWdlcy5pbgppbmRleCBlMWRh
MDQ5NjllZmQ3N2QwNmNiYTUzNjkxNzVmYzhiYjZiZjg2MTgxLi41OWExODU4M2IxZjc1Y2FlOTJj
ZGFhNWFlZTFhODkwY2QzZTRkNTg3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1N0b3JhZ2VQ
cm9jZXNzL1N0b3JhZ2VUb1dlYlByb2Nlc3NDb25uZWN0aW9uLm1lc3NhZ2VzLmluCisrKyBiL1Nv
dXJjZS9XZWJLaXQvU3RvcmFnZVByb2Nlc3MvU3RvcmFnZVRvV2ViUHJvY2Vzc0Nvbm5lY3Rpb24u
bWVzc2FnZXMuaW4KQEAgLTI2LDcgKzI2LDcgQEAgbWVzc2FnZXMgLT4gU3RvcmFnZVRvV2ViUHJv
Y2Vzc0Nvbm5lY3Rpb24gTGVnYWN5UmVjZWl2ZXIgewogICAgIFJlbW92ZUlEQkNvbm5lY3Rpb25U
b1NlcnZlcih1aW50NjRfdCBzZXJ2ZXJDb25uZWN0aW9uSWRlbnRpZmllcikKICNlbmRpZgogI2lm
IEVOQUJMRShTRVJWSUNFX1dPUktFUikKLSAgICBFc3RhYmxpc2hTV1NlcnZlckNvbm5lY3Rpb24o
UEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklEKSAtPiAodWludDY0X3Qgc2VydmVyQ29ubmVjdGlvbklk
ZW50aWZpZXIpCi0gICAgUmVtb3ZlU1dTZXJ2ZXJDb25uZWN0aW9uKHVpbnQ2NF90IHNlcnZlckNv
bm5lY3Rpb25JZGVudGlmaWVyKQorICAgIEVzdGFibGlzaFNXU2VydmVyQ29ubmVjdGlvbihQQUw6
OlNlc3Npb25JRCBzZXNzaW9uSUQpIC0+IChXZWJDb3JlOjpTV1NlcnZlckNvbm5lY3Rpb25JZGVu
dGlmaWVyIHNlcnZlckNvbm5lY3Rpb25JZGVudGlmaWVyKQorICAgIFJlbW92ZVNXU2VydmVyQ29u
bmVjdGlvbihXZWJDb3JlOjpTV1NlcnZlckNvbm5lY3Rpb25JZGVudGlmaWVyIHNlcnZlckNvbm5l
Y3Rpb25JZGVudGlmaWVyKQogI2VuZGlmCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvU3RvcmFnZS9XZWJTV0NsaWVudENvbm5lY3Rpb24uY3BwIGIvU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL1N0b3JhZ2UvV2ViU1dDbGllbnRDb25uZWN0aW9uLmNwcAppbmRleCAwOGZh
ODAyODNmZGQwMDEyOGUwMzQzYzNlYmIwMjgxOTAwNTlkZTJhLi5jODQ3NjU0ZjQ1N2RmZDQ2ZWEw
NGE4ZDY1MzdkNTQyN2RhNzZkNzk4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvU3RvcmFnZS9XZWJTV0NsaWVudENvbm5lY3Rpb24uY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9TdG9yYWdlL1dlYlNXQ2xpZW50Q29ubmVjdGlvbi5jcHAKQEAgLTgyLDkgKzgy
LDkgQEAgdm9pZCBXZWJTV0NsaWVudENvbm5lY3Rpb246OnJlbW92ZVNlcnZpY2VXb3JrZXJSZWdp
c3RyYXRpb25JblNlcnZlcihjb25zdCBTZXJ2aWMKICAgICBzZW5kKE1lc3NhZ2VzOjpXZWJTV1Nl
cnZlckNvbm5lY3Rpb246OlJlbW92ZVNlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb25JblNlcnZlcihr
ZXksIGlkZW50aWZpZXIpKTsKIH0KIAotdm9pZCBXZWJTV0NsaWVudENvbm5lY3Rpb246OnBvc3RN
ZXNzYWdlVG9TZXJ2aWNlV29ya2VyR2xvYmFsU2NvcGUoU2VydmljZVdvcmtlcklkZW50aWZpZXIg
ZGVzdGluYXRpb25JZGVudGlmaWVyLCBSZWY8U2VyaWFsaXplZFNjcmlwdFZhbHVlPiYmIHNjcmlw
dFZhbHVlLCBTZXJ2aWNlV29ya2VyQ2xpZW50RGF0YSYmIHNvdXJjZSkKK3ZvaWQgV2ViU1dDbGll
bnRDb25uZWN0aW9uOjpwb3N0TWVzc2FnZVRvU2VydmljZVdvcmtlckdsb2JhbFNjb3BlKFNlcnZp
Y2VXb3JrZXJJZGVudGlmaWVyIGRlc3RpbmF0aW9uSWRlbnRpZmllciwgUmVmPFNlcmlhbGl6ZWRT
Y3JpcHRWYWx1ZT4mJiBzY3JpcHRWYWx1ZSwgdWludDY0X3Qgc291cmNlQ29udGV4dElkZW50aWZp
ZXIsIFNlcnZpY2VXb3JrZXJDbGllbnREYXRhJiYgc291cmNlKQogewotICAgIHNlbmQoTWVzc2Fn
ZXM6OldlYlNXU2VydmVyQ29ubmVjdGlvbjo6UG9zdE1lc3NhZ2VUb1NlcnZpY2VXb3JrZXJHbG9i
YWxTY29wZShkZXN0aW5hdGlvbklkZW50aWZpZXIsIElQQzo6RGF0YVJlZmVyZW5jZSB7IHNjcmlw
dFZhbHVlLT5kYXRhKCkgfSwgV1RGTW92ZShzb3VyY2UpKSk7CisgICAgc2VuZChNZXNzYWdlczo6
V2ViU1dTZXJ2ZXJDb25uZWN0aW9uOjpQb3N0TWVzc2FnZVRvU2VydmljZVdvcmtlckdsb2JhbFNj
b3BlKGRlc3RpbmF0aW9uSWRlbnRpZmllciwgSVBDOjpEYXRhUmVmZXJlbmNlIHsgc2NyaXB0VmFs
dWUtPmRhdGEoKSB9LCBzb3VyY2VDb250ZXh0SWRlbnRpZmllciwgV1RGTW92ZShzb3VyY2UpKSk7
CiB9CiAKIHZvaWQgV2ViU1dDbGllbnRDb25uZWN0aW9uOjpzZXJ2aWNlV29ya2VyU3RhcnRlZENv
bnRyb2xsaW5nQ2xpZW50KFNlcnZpY2VXb3JrZXJJZGVudGlmaWVyIHNlcnZpY2VXb3JrZXJJZGVu
dGlmaWVyLCB1aW50NjRfdCBzY3JpcHRFeGVjdXRpb25Db250ZXh0SWRlbnRpZmllcikKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9TdG9yYWdlL1dlYlNXQ2xpZW50Q29ubmVj
dGlvbi5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1N0b3JhZ2UvV2ViU1dDbGllbnRDb25u
ZWN0aW9uLmgKaW5kZXggYjQwNzVhMjlkMjMzYTFkNDNiY2JkZWEwNjE5MDdjYmUyMTY4NTc0My4u
YTNlYjg2ZWY3NjI0ZTgwYmM0YzQxMjYwNDNkM2FhMTNhNjE5NTc5YyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL1N0b3JhZ2UvV2ViU1dDbGllbnRDb25uZWN0aW9uLmgKKysr
IGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1N0b3JhZ2UvV2ViU1dDbGllbnRDb25uZWN0aW9u
LmgKQEAgLTUyLDcgKzUyLDcgQEAgcHVibGljOgogICAgIFdlYlNXQ2xpZW50Q29ubmVjdGlvbihj
b25zdCBXZWJTV0NsaWVudENvbm5lY3Rpb24mKSA9IGRlbGV0ZTsKICAgICB+V2ViU1dDbGllbnRD
b25uZWN0aW9uKCkgZmluYWw7CiAKLSAgICB1aW50NjRfdCBpZGVudGlmaWVyKCkgY29uc3QgZmlu
YWwgeyByZXR1cm4gbV9pZGVudGlmaWVyOyB9CisgICAgV2ViQ29yZTo6U1dTZXJ2ZXJDb25uZWN0
aW9uSWRlbnRpZmllciBzZXJ2ZXJDb25uZWN0aW9uSWRlbnRpZmllcigpIGNvbnN0IGZpbmFsIHsg
cmV0dXJuIG1faWRlbnRpZmllcjsgfQogCiAgICAgdm9pZCBhZGRTZXJ2aWNlV29ya2VyUmVnaXN0
cmF0aW9uSW5TZXJ2ZXIoY29uc3QgV2ViQ29yZTo6U2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbktl
eSYsIFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb25JZGVudGlmaWVyKSBmaW5hbDsK
ICAgICB2b2lkIHJlbW92ZVNlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb25JblNlcnZlcihjb25zdCBX
ZWJDb3JlOjpTZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uS2V5JiwgV2ViQ29yZTo6U2VydmljZVdv
cmtlclJlZ2lzdHJhdGlvbklkZW50aWZpZXIpIGZpbmFsOwpAQCAtNjgsNyArNjgsNyBAQCBwdWJs
aWM6CiBwcml2YXRlOgogICAgIHZvaWQgc2NoZWR1bGVKb2JJblNlcnZlcihjb25zdCBXZWJDb3Jl
OjpTZXJ2aWNlV29ya2VySm9iRGF0YSYpIGZpbmFsOwogICAgIHZvaWQgZmluaXNoRmV0Y2hpbmdT
Y3JpcHRJblNlcnZlcihjb25zdCBXZWJDb3JlOjpTZXJ2aWNlV29ya2VyRmV0Y2hSZXN1bHQmKSBm
aW5hbDsKLSAgICB2b2lkIHBvc3RNZXNzYWdlVG9TZXJ2aWNlV29ya2VyR2xvYmFsU2NvcGUoV2Vi
Q29yZTo6U2VydmljZVdvcmtlcklkZW50aWZpZXIgZGVzdGluYXRpb25JZGVudGlmaWVyLCBSZWY8
V2ViQ29yZTo6U2VyaWFsaXplZFNjcmlwdFZhbHVlPiYmLCBXZWJDb3JlOjpTZXJ2aWNlV29ya2Vy
Q2xpZW50RGF0YSYmIHNvdXJjZSkgZmluYWw7CisgICAgdm9pZCBwb3N0TWVzc2FnZVRvU2Vydmlj
ZVdvcmtlckdsb2JhbFNjb3BlKFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJJZGVudGlmaWVyIGRlc3Rp
bmF0aW9uSWRlbnRpZmllciwgUmVmPFdlYkNvcmU6OlNlcmlhbGl6ZWRTY3JpcHRWYWx1ZT4mJiwg
dWludDY0X3Qgc291cmNlQ29udGV4dElkZW50aWZpZXIsIFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJD
bGllbnREYXRhJiYgc291cmNlKSBmaW5hbDsKICAgICB2b2lkIHNlcnZpY2VXb3JrZXJTdGFydGVk
Q29udHJvbGxpbmdDbGllbnQoV2ViQ29yZTo6U2VydmljZVdvcmtlcklkZW50aWZpZXIsIHVpbnQ2
NF90IHNjcmlwdEV4ZWN1dGlvbkNvbnRleHRJZGVudGlmaWVyKSBmaW5hbDsKICAgICB2b2lkIHNl
cnZpY2VXb3JrZXJTdG9wcGVkQ29udHJvbGxpbmdDbGllbnQoV2ViQ29yZTo6U2VydmljZVdvcmtl
cklkZW50aWZpZXIsIHVpbnQ2NF90IHNjcmlwdEV4ZWN1dGlvbkNvbnRleHRJZGVudGlmaWVyKSBm
aW5hbDsKIApAQCAtODMsMTMgKzgzLDEzIEBAIHByaXZhdGU6CiAgICAgdm9pZCBzY2hlZHVsZVN0
b3JhZ2VKb2IoY29uc3QgV2ViQ29yZTo6U2VydmljZVdvcmtlckpvYkRhdGEmKTsKIAogICAgIElQ
Qzo6Q29ubmVjdGlvbiogbWVzc2FnZVNlbmRlckNvbm5lY3Rpb24oKSBmaW5hbCB7IHJldHVybiBt
X2Nvbm5lY3Rpb24ucHRyKCk7IH0KLSAgICB1aW50NjRfdCBtZXNzYWdlU2VuZGVyRGVzdGluYXRp
b25JRCgpIGZpbmFsIHsgcmV0dXJuIG1faWRlbnRpZmllcjsgfQorICAgIHVpbnQ2NF90IG1lc3Nh
Z2VTZW5kZXJEZXN0aW5hdGlvbklEKCkgZmluYWwgeyByZXR1cm4gbV9pZGVudGlmaWVyLnRvVW5z
aWduZWRJbnRlZ2VyKCk7IH0KIAogICAgIHZvaWQgc2V0U1dPcmlnaW5UYWJsZVNoYXJlZE1lbW9y
eShjb25zdCBTaGFyZWRNZW1vcnk6OkhhbmRsZSYpOwogICAgIHZvaWQgaW5pdGlhbGl6ZVNXT3Jp
Z2luVGFibGVBc0VtcHR5KCk7CiAKICAgICBQQUw6OlNlc3Npb25JRCBtX3Nlc3Npb25JRDsKLSAg
ICB1aW50NjRfdCBtX2lkZW50aWZpZXI7CisgICAgV2ViQ29yZTo6U1dTZXJ2ZXJDb25uZWN0aW9u
SWRlbnRpZmllciBtX2lkZW50aWZpZXI7CiAKICAgICBSZWY8SVBDOjpDb25uZWN0aW9uPiBtX2Nv
bm5lY3Rpb247CiAgICAgVW5pcXVlUmVmPFdlYlNXT3JpZ2luVGFibGU+IG1fc3dPcmlnaW5UYWJs
ZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9TdG9yYWdlL1dlYlNXQ29u
dGV4dE1hbmFnZXJDb25uZWN0aW9uLmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9TdG9y
YWdlL1dlYlNXQ29udGV4dE1hbmFnZXJDb25uZWN0aW9uLmNwcAppbmRleCA5NGFjYTNkM2IwYjJm
OWI0MTAxMGY3ZGYwODM4ZjRmZmY4ODQwODE4Li45NjEyY2I0YjMzYzM0NjRjOTlmNThjNTJiZTM3
YjBhZWFkNWZjNDc0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvU3RvcmFn
ZS9XZWJTV0NvbnRleHRNYW5hZ2VyQ29ubmVjdGlvbi5jcHAKKysrIGIvU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL1N0b3JhZ2UvV2ViU1dDb250ZXh0TWFuYWdlckNvbm5lY3Rpb24uY3BwCkBAIC0x
MzIsNyArMTMyLDcgQEAgdm9pZCBXZWJTV0NvbnRleHRNYW5hZ2VyQ29ubmVjdGlvbjo6c2Vydmlj
ZVdvcmtlclN0YXJ0ZWRXaXRoTWVzc2FnZShTZXJ2aWNlV29ya2UKICAgICAgICAgbV9jb25uZWN0
aW9uVG9TdG9yYWdlUHJvY2Vzcy0+c2VuZChNZXNzYWdlczo6V2ViU1dTZXJ2ZXJUb0NvbnRleHRD
b25uZWN0aW9uOjpTY3JpcHRDb250ZXh0RmFpbGVkVG9TdGFydChzZXJ2aWNlV29ya2VySWRlbnRp
ZmllciwgZXhjZXB0aW9uTWVzc2FnZSksIDApOwogfQogCi12b2lkIFdlYlNXQ29udGV4dE1hbmFn
ZXJDb25uZWN0aW9uOjpzdGFydEZldGNoKHVpbnQ2NF90IHNlcnZlckNvbm5lY3Rpb25JZGVudGlm
aWVyLCB1aW50NjRfdCBmZXRjaElkZW50aWZpZXIsIHN0ZDo6b3B0aW9uYWw8U2VydmljZVdvcmtl
cklkZW50aWZpZXI+IHNlcnZpY2VXb3JrZXJJZGVudGlmaWVyLCBSZXNvdXJjZVJlcXVlc3QmJiBy
ZXF1ZXN0LCBGZXRjaE9wdGlvbnMmJiBvcHRpb25zLCBJUEM6OkZvcm1EYXRhUmVmZXJlbmNlJiYg
Zm9ybURhdGEpCit2b2lkIFdlYlNXQ29udGV4dE1hbmFnZXJDb25uZWN0aW9uOjpzdGFydEZldGNo
KFNXU2VydmVyQ29ubmVjdGlvbklkZW50aWZpZXIgc2VydmVyQ29ubmVjdGlvbklkZW50aWZpZXIs
IHVpbnQ2NF90IGZldGNoSWRlbnRpZmllciwgc3RkOjpvcHRpb25hbDxTZXJ2aWNlV29ya2VySWRl
bnRpZmllcj4gc2VydmljZVdvcmtlcklkZW50aWZpZXIsIFJlc291cmNlUmVxdWVzdCYmIHJlcXVl
c3QsIEZldGNoT3B0aW9ucyYmIG9wdGlvbnMsIElQQzo6Rm9ybURhdGFSZWZlcmVuY2UmJiBmb3Jt
RGF0YSkKIHsKICAgICBhdXRvKiBzZXJ2aWNlV29ya2VyVGhyZWFkUHJveHkgPSBzZXJ2aWNlV29y
a2VySWRlbnRpZmllciA/IFNXQ29udGV4dE1hbmFnZXI6OnNpbmdsZXRvbigpLnNlcnZpY2VXb3Jr
ZXJUaHJlYWRQcm94eSgqc2VydmljZVdvcmtlcklkZW50aWZpZXIpIDogbnVsbHB0cjsKICAgICBp
ZiAoIXNlcnZpY2VXb3JrZXJUaHJlYWRQcm94eSkgewpAQCAtMTQ2LDkgKzE0Niw5IEBAIHZvaWQg
V2ViU1dDb250ZXh0TWFuYWdlckNvbm5lY3Rpb246OnN0YXJ0RmV0Y2godWludDY0X3Qgc2VydmVy
Q29ubmVjdGlvbklkZW50aWZpCiAgICAgc2VydmljZVdvcmtlclRocmVhZFByb3h5LT50aHJlYWQo
KS5wb3N0RmV0Y2hUYXNrKFdURk1vdmUoY2xpZW50KSwgV1RGTW92ZShyZXF1ZXN0KSwgV1RGTW92
ZShvcHRpb25zKSk7CiB9CiAKLXZvaWQgV2ViU1dDb250ZXh0TWFuYWdlckNvbm5lY3Rpb246OnBv
c3RNZXNzYWdlVG9TZXJ2aWNlV29ya2VyR2xvYmFsU2NvcGUoU2VydmljZVdvcmtlcklkZW50aWZp
ZXIgZGVzdGluYXRpb25JZGVudGlmaWVyLCBjb25zdCBJUEM6OkRhdGFSZWZlcmVuY2UmIG1lc3Nh
Z2UsIFNlcnZpY2VXb3JrZXJDbGllbnREYXRhJiYgc291cmNlKQordm9pZCBXZWJTV0NvbnRleHRN
YW5hZ2VyQ29ubmVjdGlvbjo6cG9zdE1lc3NhZ2VUb1NlcnZpY2VXb3JrZXJHbG9iYWxTY29wZShT
ZXJ2aWNlV29ya2VySWRlbnRpZmllciBkZXN0aW5hdGlvbklkZW50aWZpZXIsIGNvbnN0IElQQzo6
RGF0YVJlZmVyZW5jZSYgbWVzc2FnZSwgU2VydmljZVdvcmtlckNsaWVudElkZW50aWZpZXIgc291
cmNlSWRlbnRpZmllciwgU2VydmljZVdvcmtlckNsaWVudERhdGEmJiBzb3VyY2VEYXRhKQogewot
ICAgIFNXQ29udGV4dE1hbmFnZXI6OnNpbmdsZXRvbigpLnBvc3RNZXNzYWdlVG9TZXJ2aWNlV29y
a2VyR2xvYmFsU2NvcGUoZGVzdGluYXRpb25JZGVudGlmaWVyLCBTZXJpYWxpemVkU2NyaXB0VmFs
dWU6OmFkb3B0KG1lc3NhZ2UudmVjdG9yKCkpLCBXVEZNb3ZlKHNvdXJjZSkpOworICAgIFNXQ29u
dGV4dE1hbmFnZXI6OnNpbmdsZXRvbigpLnBvc3RNZXNzYWdlVG9TZXJ2aWNlV29ya2VyR2xvYmFs
U2NvcGUoZGVzdGluYXRpb25JZGVudGlmaWVyLCBTZXJpYWxpemVkU2NyaXB0VmFsdWU6OmFkb3B0
KG1lc3NhZ2UudmVjdG9yKCkpLCBzb3VyY2VJZGVudGlmaWVyLCBXVEZNb3ZlKHNvdXJjZURhdGEp
KTsKIH0KIAogdm9pZCBXZWJTV0NvbnRleHRNYW5hZ2VyQ29ubmVjdGlvbjo6ZmlyZUluc3RhbGxF
dmVudChTZXJ2aWNlV29ya2VySWRlbnRpZmllciBpZGVudGlmaWVyKQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL1N0b3JhZ2UvV2ViU1dDb250ZXh0TWFuYWdlckNvbm5lY3Rp
b24uaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9TdG9yYWdlL1dlYlNXQ29udGV4dE1hbmFn
ZXJDb25uZWN0aW9uLmgKaW5kZXggYWJjNTI1MTZjOWU5MDI1OWU0MWM3ZmFiMjFjYTRmZGY4NzNk
NjRjOC4uNDE0MDBjZmMzZjdmNjUzNzVmY2QwZWZjZDA4M2FjZThkYTljNjNlMiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1N0b3JhZ2UvV2ViU1dDb250ZXh0TWFuYWdlckNv
bm5lY3Rpb24uaAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvU3RvcmFnZS9XZWJTV0Nv
bnRleHRNYW5hZ2VyQ29ubmVjdGlvbi5oCkBAIC0zMCw2ICszMCw3IEBACiAjaW5jbHVkZSAiQ29u
bmVjdGlvbi5oIgogI2luY2x1ZGUgIk1lc3NhZ2VSZWNlaXZlci5oIgogI2luY2x1ZGUgPFdlYkNv
cmUvU1dDb250ZXh0TWFuYWdlci5oPgorI2luY2x1ZGUgPFdlYkNvcmUvU2VydmljZVdvcmtlclR5
cGVzLmg+CiAKIG5hbWVzcGFjZSBJUEMgewogY2xhc3MgRm9ybURhdGFSZWZlcmVuY2U7CkBAIC02
NCw4ICs2NSw4IEBAIHByaXZhdGU6CiAgICAgLy8gSVBDIG1lc3NhZ2VzLgogICAgIHZvaWQgc2Vy
dmljZVdvcmtlclN0YXJ0ZWRXaXRoTWVzc2FnZShXZWJDb3JlOjpTZXJ2aWNlV29ya2VySWRlbnRp
ZmllciwgY29uc3QgU3RyaW5nJiBleGNlcHRpb25NZXNzYWdlKSBmaW5hbDsKICAgICB2b2lkIGlu
c3RhbGxTZXJ2aWNlV29ya2VyKGNvbnN0IFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJDb250ZXh0RGF0
YSYpOwotICAgIHZvaWQgc3RhcnRGZXRjaCh1aW50NjRfdCBzZXJ2ZXJDb25uZWN0aW9uSWRlbnRp
ZmllciwgdWludDY0X3QgZmV0Y2hJZGVudGlmaWVyLCBzdGQ6Om9wdGlvbmFsPFdlYkNvcmU6OlNl
cnZpY2VXb3JrZXJJZGVudGlmaWVyPiwgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiYsIFdlYkNv
cmU6OkZldGNoT3B0aW9ucyYmLCBJUEM6OkZvcm1EYXRhUmVmZXJlbmNlJiYpOwotICAgIHZvaWQg
cG9zdE1lc3NhZ2VUb1NlcnZpY2VXb3JrZXJHbG9iYWxTY29wZShXZWJDb3JlOjpTZXJ2aWNlV29y
a2VySWRlbnRpZmllciBkZXN0aW5hdGlvbklkZW50aWZpZXIsIGNvbnN0IElQQzo6RGF0YVJlZmVy
ZW5jZSYgbWVzc2FnZSwgV2ViQ29yZTo6U2VydmljZVdvcmtlckNsaWVudERhdGEmJiBzb3VyY2Up
OworICAgIHZvaWQgc3RhcnRGZXRjaChXZWJDb3JlOjpTV1NlcnZlckNvbm5lY3Rpb25JZGVudGlm
aWVyLCB1aW50NjRfdCBmZXRjaElkZW50aWZpZXIsIHN0ZDo6b3B0aW9uYWw8V2ViQ29yZTo6U2Vy
dmljZVdvcmtlcklkZW50aWZpZXI+LCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmJiwgV2ViQ29y
ZTo6RmV0Y2hPcHRpb25zJiYsIElQQzo6Rm9ybURhdGFSZWZlcmVuY2UmJik7CisgICAgdm9pZCBw
b3N0TWVzc2FnZVRvU2VydmljZVdvcmtlckdsb2JhbFNjb3BlKFdlYkNvcmU6OlNlcnZpY2VXb3Jr
ZXJJZGVudGlmaWVyIGRlc3RpbmF0aW9uSWRlbnRpZmllciwgY29uc3QgSVBDOjpEYXRhUmVmZXJl
bmNlJiBtZXNzYWdlLCBXZWJDb3JlOjpTZXJ2aWNlV29ya2VyQ2xpZW50SWRlbnRpZmllciBzb3Vy
Y2VJZGVudGlmaWVyLCBXZWJDb3JlOjpTZXJ2aWNlV29ya2VyQ2xpZW50RGF0YSYmIHNvdXJjZURh
dGEpOwogICAgIHZvaWQgZmlyZUluc3RhbGxFdmVudChXZWJDb3JlOjpTZXJ2aWNlV29ya2VySWRl
bnRpZmllcik7CiAgICAgdm9pZCBmaXJlQWN0aXZhdGVFdmVudChXZWJDb3JlOjpTZXJ2aWNlV29y
a2VySWRlbnRpZmllcik7CiAgICAgdm9pZCB0ZXJtaW5hdGVXb3JrZXIoV2ViQ29yZTo6U2Vydmlj
ZVdvcmtlcklkZW50aWZpZXIpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L1N0b3JhZ2UvV2ViU1dDb250ZXh0TWFuYWdlckNvbm5lY3Rpb24ubWVzc2FnZXMuaW4gYi9Tb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvU3RvcmFnZS9XZWJTV0NvbnRleHRNYW5hZ2VyQ29ubmVjdGlv
bi5tZXNzYWdlcy5pbgppbmRleCA3MzczMmNjYTUwNTU5OGVmMzU2YjdlMmMwYWJiYmZmY2RjMDJj
ZmM4Li43MzZmZGY1YjQ3MTc5YmU0MGVkYTEyYzlmYzZkNzI2NjJjMWQ3YmM0IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvU3RvcmFnZS9XZWJTV0NvbnRleHRNYW5hZ2VyQ29u
bmVjdGlvbi5tZXNzYWdlcy5pbgorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvU3RvcmFn
ZS9XZWJTV0NvbnRleHRNYW5hZ2VyQ29ubmVjdGlvbi5tZXNzYWdlcy5pbgpAQCAtMjQsOCArMjQs
OCBAQAogCiBtZXNzYWdlcyAtPiBXZWJTV0NvbnRleHRNYW5hZ2VyQ29ubmVjdGlvbiB7CiAgICAg
SW5zdGFsbFNlcnZpY2VXb3JrZXIoc3RydWN0IFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJDb250ZXh0
RGF0YSBjb250ZXh0RGF0YSkKLSAgICBTdGFydEZldGNoKHVpbnQ2NF90IHNlcnZlckNvbm5lY3Rp
b25JZGVudGlmaWVyLCB1aW50NjRfdCBmZXRjaElkZW50aWZpZXIsIHN0ZDo6b3B0aW9uYWw8V2Vi
Q29yZTo6U2VydmljZVdvcmtlcklkZW50aWZpZXI+IHNlcnZpY2VXb3JrZXJJZGVudGlmaWVyLCBX
ZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QgcmVxdWVzdCwgc3RydWN0IFdlYkNvcmU6OkZldGNoT3B0
aW9ucyBvcHRpb25zLCBJUEM6OkZvcm1EYXRhUmVmZXJlbmNlIHJlcXVlc3RCb2R5KQotICAgIFBv
c3RNZXNzYWdlVG9TZXJ2aWNlV29ya2VyR2xvYmFsU2NvcGUoV2ViQ29yZTo6U2VydmljZVdvcmtl
cklkZW50aWZpZXIgZGVzdGluYXRpb25JZGVudGlmaWVyLCBJUEM6OkRhdGFSZWZlcmVuY2UgbWVz
c2FnZSwgc3RydWN0IFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJDbGllbnREYXRhIHNvdXJjZSkKKyAg
ICBTdGFydEZldGNoKFdlYkNvcmU6OlNXU2VydmVyQ29ubmVjdGlvbklkZW50aWZpZXIgc2VydmVy
Q29ubmVjdGlvbklkZW50aWZpZXIsIHVpbnQ2NF90IGZldGNoSWRlbnRpZmllciwgc3RkOjpvcHRp
b25hbDxXZWJDb3JlOjpTZXJ2aWNlV29ya2VySWRlbnRpZmllcj4gc2VydmljZVdvcmtlcklkZW50
aWZpZXIsIFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCByZXF1ZXN0LCBzdHJ1Y3QgV2ViQ29yZTo6
RmV0Y2hPcHRpb25zIG9wdGlvbnMsIElQQzo6Rm9ybURhdGFSZWZlcmVuY2UgcmVxdWVzdEJvZHkp
CisgICAgUG9zdE1lc3NhZ2VUb1NlcnZpY2VXb3JrZXJHbG9iYWxTY29wZShXZWJDb3JlOjpTZXJ2
aWNlV29ya2VySWRlbnRpZmllciBkZXN0aW5hdGlvbklkZW50aWZpZXIsIElQQzo6RGF0YVJlZmVy
ZW5jZSBtZXNzYWdlLCBzdHJ1Y3QgV2ViQ29yZTo6U2VydmljZVdvcmtlckNsaWVudElkZW50aWZp
ZXIgc291cmNlSWRlbnRpZmllciwgc3RydWN0IFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJDbGllbnRE
YXRhIHNvdXJjZURhdGEpCiAgICAgRmlyZUluc3RhbGxFdmVudChXZWJDb3JlOjpTZXJ2aWNlV29y
a2VySWRlbnRpZmllciBpZGVudGlmaWVyKQogICAgIEZpcmVBY3RpdmF0ZUV2ZW50KFdlYkNvcmU6
OlNlcnZpY2VXb3JrZXJJZGVudGlmaWVyIGlkZW50aWZpZXIpCiAgICAgVGVybWluYXRlV29ya2Vy
KFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJJZGVudGlmaWVyIGlkZW50aWZpZXIpCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvU3RvcmFnZS9XZWJTZXJ2aWNlV29ya2VyRmV0Y2hU
YXNrQ2xpZW50LmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9TdG9yYWdlL1dlYlNlcnZp
Y2VXb3JrZXJGZXRjaFRhc2tDbGllbnQuY3BwCmluZGV4IDhmNzA5ZjI2OTY2MGQzMjUzN2VhYjE1
YzE3ZWNkMWZkODVkODJmMGQuLjE0Y2ZmNzFiMTM4M2VlNWQ0YzIxMGUwNTdkZDVkMzIyMmFiZDg4
MDAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9TdG9yYWdlL1dlYlNlcnZp
Y2VXb3JrZXJGZXRjaFRhc2tDbGllbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9TdG9yYWdlL1dlYlNlcnZpY2VXb3JrZXJGZXRjaFRhc2tDbGllbnQuY3BwCkBAIC00NSw3ICs0
NSw3IEBAIFdlYlNlcnZpY2VXb3JrZXJGZXRjaFRhc2tDbGllbnQ6On5XZWJTZXJ2aWNlV29ya2Vy
RmV0Y2hUYXNrQ2xpZW50KCkKICAgICAgICAgUnVuTG9vcDo6bWFpbigpLmRpc3BhdGNoKFtjb25u
ZWN0aW9uID0gV1RGTW92ZShtX2Nvbm5lY3Rpb24pXSB7IH0pOwogfQogCi1XZWJTZXJ2aWNlV29y
a2VyRmV0Y2hUYXNrQ2xpZW50OjpXZWJTZXJ2aWNlV29ya2VyRmV0Y2hUYXNrQ2xpZW50KFJlZjxJ
UEM6OkNvbm5lY3Rpb24+JiYgY29ubmVjdGlvbiwgdWludDY0X3Qgc2VydmVyQ29ubmVjdGlvbklk
ZW50aWZpZXIsIHVpbnQ2NF90IGZldGNoVGFza0lkZW50aWZpZXIpCitXZWJTZXJ2aWNlV29ya2Vy
RmV0Y2hUYXNrQ2xpZW50OjpXZWJTZXJ2aWNlV29ya2VyRmV0Y2hUYXNrQ2xpZW50KFJlZjxJUEM6
OkNvbm5lY3Rpb24+JiYgY29ubmVjdGlvbiwgV2ViQ29yZTo6U1dTZXJ2ZXJDb25uZWN0aW9uSWRl
bnRpZmllciBzZXJ2ZXJDb25uZWN0aW9uSWRlbnRpZmllciwgdWludDY0X3QgZmV0Y2hUYXNrSWRl
bnRpZmllcikKICAgICA6IG1fY29ubmVjdGlvbihXVEZNb3ZlKGNvbm5lY3Rpb24pKQogICAgICwg
bV9zZXJ2ZXJDb25uZWN0aW9uSWRlbnRpZmllcihzZXJ2ZXJDb25uZWN0aW9uSWRlbnRpZmllcikK
ICAgICAsIG1fZmV0Y2hUYXNrSWRlbnRpZmllcihmZXRjaFRhc2tJZGVudGlmaWVyKQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1N0b3JhZ2UvV2ViU2VydmljZVdvcmtlckZl
dGNoVGFza0NsaWVudC5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1N0b3JhZ2UvV2ViU2Vy
dmljZVdvcmtlckZldGNoVGFza0NsaWVudC5oCmluZGV4IDZmYjMxOGMxMWY5MzAxZmZkMjRiOGY3
YjI2N2MxZDA1ZjkyMzUyMzUuLjE3NmFkMjRlMzlhNzkzZWQ5MzNlNTJmYzc5NWU5YmM0N2Q1MjFi
ODQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9TdG9yYWdlL1dlYlNlcnZp
Y2VXb3JrZXJGZXRjaFRhc2tDbGllbnQuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
U3RvcmFnZS9XZWJTZXJ2aWNlV29ya2VyRmV0Y2hUYXNrQ2xpZW50LmgKQEAgLTI5LDEyICsyOSwx
MyBAQAogCiAjaW5jbHVkZSAiQ29ubmVjdGlvbi5oIgogI2luY2x1ZGUgPFdlYkNvcmUvU2Vydmlj
ZVdvcmtlckZldGNoLmg+CisjaW5jbHVkZSA8V2ViQ29yZS9TZXJ2aWNlV29ya2VyVHlwZXMuaD4K
IAogbmFtZXNwYWNlIFdlYktpdCB7CiAKIGNsYXNzIFdlYlNlcnZpY2VXb3JrZXJGZXRjaFRhc2tD
bGllbnQgZmluYWwgOiBwdWJsaWMgV2ViQ29yZTo6U2VydmljZVdvcmtlckZldGNoOjpDbGllbnQg
ewogcHVibGljOgotICAgIHN0YXRpYyBSZWY8V2ViU2VydmljZVdvcmtlckZldGNoVGFza0NsaWVu
dD4gY3JlYXRlKFJlZjxJUEM6OkNvbm5lY3Rpb24+JiYgY29ubmVjdGlvbiwgdWludDY0X3Qgc2Vy
dmVyQ29ubmVjdGlvbklkZW50aWZpZXIsIHVpbnQ2NF90IGZldGNoVGFza0lkZW50aWZpZXIpCisg
ICAgc3RhdGljIFJlZjxXZWJTZXJ2aWNlV29ya2VyRmV0Y2hUYXNrQ2xpZW50PiBjcmVhdGUoUmVm
PElQQzo6Q29ubmVjdGlvbj4mJiBjb25uZWN0aW9uLCBXZWJDb3JlOjpTV1NlcnZlckNvbm5lY3Rp
b25JZGVudGlmaWVyIHNlcnZlckNvbm5lY3Rpb25JZGVudGlmaWVyLCB1aW50NjRfdCBmZXRjaFRh
c2tJZGVudGlmaWVyKQogICAgIHsKICAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgV2ViU2Vy
dmljZVdvcmtlckZldGNoVGFza0NsaWVudChXVEZNb3ZlKGNvbm5lY3Rpb24pLCBzZXJ2ZXJDb25u
ZWN0aW9uSWRlbnRpZmllciwgZmV0Y2hUYXNrSWRlbnRpZmllcikpOwogICAgIH0KQEAgLTQyLDcg
KzQzLDcgQEAgcHVibGljOgogICAgIH5XZWJTZXJ2aWNlV29ya2VyRmV0Y2hUYXNrQ2xpZW50KCk7
CiAKIHByaXZhdGU6Ci0gICAgV2ViU2VydmljZVdvcmtlckZldGNoVGFza0NsaWVudChSZWY8SVBD
OjpDb25uZWN0aW9uPiYmLCB1aW50NjRfdCBzZXJ2ZXJDb25uZWN0aW9uSWRlbnRpZmllciwgdWlu
dDY0X3QgZmV0Y2hUYXNrSWRlbnRpZmllcik7CisgICAgV2ViU2VydmljZVdvcmtlckZldGNoVGFz
a0NsaWVudChSZWY8SVBDOjpDb25uZWN0aW9uPiYmLCBXZWJDb3JlOjpTV1NlcnZlckNvbm5lY3Rp
b25JZGVudGlmaWVyLCB1aW50NjRfdCBmZXRjaFRhc2tJZGVudGlmaWVyKTsKIAogICAgIHZvaWQg
ZGlkUmVjZWl2ZVJlc3BvbnNlKGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVzcG9uc2UmKSBmaW5h
bDsKICAgICB2b2lkIGRpZFJlY2VpdmVEYXRhKFJlZjxXZWJDb3JlOjpTaGFyZWRCdWZmZXI+JiYp
IGZpbmFsOwpAQCAtNTIsNyArNTMsNyBAQCBwcml2YXRlOgogICAgIHZvaWQgZGlkTm90SGFuZGxl
KCkgZmluYWw7CiAKICAgICBSZWZQdHI8SVBDOjpDb25uZWN0aW9uPiBtX2Nvbm5lY3Rpb247Ci0g
ICAgdWludDY0X3QgbV9zZXJ2ZXJDb25uZWN0aW9uSWRlbnRpZmllciB7IDAgfTsKKyAgICBXZWJD
b3JlOjpTV1NlcnZlckNvbm5lY3Rpb25JZGVudGlmaWVyIG1fc2VydmVyQ29ubmVjdGlvbklkZW50
aWZpZXI7CiAgICAgdWludDY0X3QgbV9mZXRjaFRhc2tJZGVudGlmaWVyIHsgMCB9OwogfTsKIApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1N0b3JhZ2UvV2ViVG9TdG9yYWdl
UHJvY2Vzc0Nvbm5lY3Rpb24uY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1N0b3JhZ2Uv
V2ViVG9TdG9yYWdlUHJvY2Vzc0Nvbm5lY3Rpb24uY3BwCmluZGV4IGIyZGY4MzdlMWQ4MzM1OTFm
YTViNDg0ZTMzOWJjZDg1NjNjMTUwMWEuLmQ1OTM4NzY0NTc2Mjk3NzA1YzFkMzJhM2M3YTg4ZTU5
MGJkOWFhZjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9TdG9yYWdlL1dl
YlRvU3RvcmFnZVByb2Nlc3NDb25uZWN0aW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvU3RvcmFnZS9XZWJUb1N0b3JhZ2VQcm9jZXNzQ29ubmVjdGlvbi5jcHAKQEAgLTY0LDcg
KzY0LDcgQEAgdm9pZCBXZWJUb1N0b3JhZ2VQcm9jZXNzQ29ubmVjdGlvbjo6ZGlkUmVjZWl2ZU1l
c3NhZ2UoSVBDOjpDb25uZWN0aW9uJiBjb25uZWN0aW8KIAogI2lmIEVOQUJMRShTRVJWSUNFX1dP
UktFUikKICAgICBpZiAoZGVjb2Rlci5tZXNzYWdlUmVjZWl2ZXJOYW1lKCkgPT0gTWVzc2FnZXM6
OldlYlNXQ2xpZW50Q29ubmVjdGlvbjo6bWVzc2FnZVJlY2VpdmVyTmFtZSgpKSB7Ci0gICAgICAg
IGF1dG8gc2VydmljZVdvcmtlckNvbm5lY3Rpb24gPSBtX3N3Q29ubmVjdGlvbnNCeUlkZW50aWZp
ZXIuZ2V0KGRlY29kZXIuZGVzdGluYXRpb25JRCgpKTsKKyAgICAgICAgYXV0byBzZXJ2aWNlV29y
a2VyQ29ubmVjdGlvbiA9IG1fc3dDb25uZWN0aW9uc0J5SWRlbnRpZmllci5nZXQobWFrZU9iamVj
dElkZW50aWZpZXI8U1dTZXJ2ZXJDb25uZWN0aW9uSWRlbnRpZmllclR5cGU+KGRlY29kZXIuZGVz
dGluYXRpb25JRCgpKSk7CiAgICAgICAgIGlmIChzZXJ2aWNlV29ya2VyQ29ubmVjdGlvbikKICAg
ICAgICAgICAgIHNlcnZpY2VXb3JrZXJDb25uZWN0aW9uLT5kaWRSZWNlaXZlTWVzc2FnZShjb25u
ZWN0aW9uLCBkZWNvZGVyKTsKICAgICAgICAgcmV0dXJuOwpAQCAtMTE0LDggKzExNCw4IEBAIFdl
YlNXQ2xpZW50Q29ubmVjdGlvbiYgV2ViVG9TdG9yYWdlUHJvY2Vzc0Nvbm5lY3Rpb246OnNlcnZp
Y2VXb3JrZXJDb25uZWN0aW9uRm9yCiAgICAgYXV0byByZXN1bHQgPSBtX3N3Q29ubmVjdGlvbnNC
eVNlc3Npb24uYWRkKHNlc3Npb25JRCwgbnVsbHB0cik7CiAgICAgaWYgKHJlc3VsdC5pc05ld0Vu
dHJ5KSB7CiAgICAgICAgIHJlc3VsdC5pdGVyYXRvci0+dmFsdWUgPSBzdGQ6Om1ha2VfdW5pcXVl
PFdlYlNXQ2xpZW50Q29ubmVjdGlvbj4obV9jb25uZWN0aW9uLmdldCgpLCBzZXNzaW9uSUQpOwot
ICAgICAgICBBU1NFUlQoIW1fc3dDb25uZWN0aW9uc0J5SWRlbnRpZmllci5jb250YWlucyhyZXN1
bHQuaXRlcmF0b3ItPnZhbHVlLT5pZGVudGlmaWVyKCkpKTsKLSAgICAgICAgbV9zd0Nvbm5lY3Rp
b25zQnlJZGVudGlmaWVyLnNldChyZXN1bHQuaXRlcmF0b3ItPnZhbHVlLT5pZGVudGlmaWVyKCks
IHJlc3VsdC5pdGVyYXRvci0+dmFsdWUuZ2V0KCkpOworICAgICAgICBBU1NFUlQoIW1fc3dDb25u
ZWN0aW9uc0J5SWRlbnRpZmllci5jb250YWlucyhyZXN1bHQuaXRlcmF0b3ItPnZhbHVlLT5zZXJ2
ZXJDb25uZWN0aW9uSWRlbnRpZmllcigpKSk7CisgICAgICAgIG1fc3dDb25uZWN0aW9uc0J5SWRl
bnRpZmllci5zZXQocmVzdWx0Lml0ZXJhdG9yLT52YWx1ZS0+c2VydmVyQ29ubmVjdGlvbklkZW50
aWZpZXIoKSwgcmVzdWx0Lml0ZXJhdG9yLT52YWx1ZS5nZXQoKSk7CiAgICAgfQogCiAgICAgcmV0
dXJuICpyZXN1bHQuaXRlcmF0b3ItPnZhbHVlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL1N0b3JhZ2UvV2ViVG9TdG9yYWdlUHJvY2Vzc0Nvbm5lY3Rpb24uaCBiL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9TdG9yYWdlL1dlYlRvU3RvcmFnZVByb2Nlc3NDb25uZWN0aW9u
LmgKaW5kZXggYTVhMjhkMWY3OTNjY2VlODAwODRkMTg0Y2U5MzZmNDI5MDI4NjA2Yi4uZjE0NGE5
MjAzNGU1MGRkZjYxOGFiZWIxOTM0YzkxZGQ4ZWM1NGNhYSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL1N0b3JhZ2UvV2ViVG9TdG9yYWdlUHJvY2Vzc0Nvbm5lY3Rpb24uaAor
KysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvU3RvcmFnZS9XZWJUb1N0b3JhZ2VQcm9jZXNz
Q29ubmVjdGlvbi5oCkBAIC03OCw3ICs3OCw3IEBAIHByaXZhdGU6CiAKICNpZiBFTkFCTEUoU0VS
VklDRV9XT1JLRVIpCiAgICAgSGFzaE1hcDxQQUw6OlNlc3Npb25JRCwgc3RkOjp1bmlxdWVfcHRy
PFdlYlNXQ2xpZW50Q29ubmVjdGlvbj4+IG1fc3dDb25uZWN0aW9uc0J5U2Vzc2lvbjsKLSAgICBI
YXNoTWFwPHVpbnQ2NF90LCBXZWJTV0NsaWVudENvbm5lY3Rpb24qPiBtX3N3Q29ubmVjdGlvbnNC
eUlkZW50aWZpZXI7CisgICAgSGFzaE1hcDxXZWJDb3JlOjpTV1NlcnZlckNvbm5lY3Rpb25JZGVu
dGlmaWVyLCBXZWJTV0NsaWVudENvbm5lY3Rpb24qPiBtX3N3Q29ubmVjdGlvbnNCeUlkZW50aWZp
ZXI7CiAjZW5kaWYKIH07CiAK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>327272</attachid>
            <date>2017-11-17 16:37:55 -0800</date>
            <delta_ts>2017-11-17 16:51:09 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-179848-20171117163754.patch</filename>
            <type>text/plain</type>
            <size>85581</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjI0OTc2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IGE0YmNmNjg4NWIxNGJlNGJlNmE5NzU5
YzQ3ZjNhMzE2Nzg0OTFjZDMuLmRkMzYwM2VmN2NlMmVmMjFiNTE0NTNlMzdlYjdiM2Y2Mjg2YjM5
ZGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMTYgQEAKKzIwMTctMTEtMTcgIENocmlzIER1bWV6ICA8Y2R1bWV6
QGFwcGxlLmNvbT4KKworICAgICAgICBVc2UgYSBzdHJvbmdseSB0eXBlZCBpZGVudGlmaWVyIGZv
ciBTV1NlcnZlcjo6Q29ubmVjdGlvbgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9MTc5ODQ4CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgQnJhZHkgRWlkc29u
LgorCisgICAgICAgIE1ha2UgT2JqZWN0SWRlbnRpZmllciBhIGxpdHRsZSBtb3JlIGZsZXhpYmxl
IHRvIHN1cHBvcnQgbW9yZSB1c2UgY2FzZXMuCisKKyAgICAgICAgKiB3dGYvT2JqZWN0SWRlbnRp
Zmllci5oOgorICAgICAgICAoV1RGOjpPYmplY3RJZGVudGlmaWVyOjp0b1VJbnQ2NCBjb25zdCk6
CisgICAgICAgIChXVEY6Om1ha2VPYmplY3RJZGVudGlmaWVyKToKKwogMjAxNy0xMS0xNSAgQWxl
eCBDaHJpc3RlbnNlbiAgPGFjaHJpc3RlbnNlbkB3ZWJraXQub3JnPgogCiAgICAgICAgIEZpeCBm
YXN0L2V2ZW50cy9tZXNzYWdlLXBvcnQtcG9zdE1lc3NhZ2UtcmVjdXJzaXZlLmh0bWwgYWZ0ZXIg
cjIyNDg5NgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nIGIvU291cmNlL1dl
YkNvcmUvQ2hhbmdlTG9nCmluZGV4IDZiZmE2MjZjNzc4M2YyYjE0YjEyMmFmYTEyYzdhOGRhYmNi
M2MxNjEuLmY5NzcyMWRjMzZmNDk4ZWI1ZDMwMjU3YmZhYjJjYTJhNDBmNTMyYTggMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VM
b2cKQEAgLTEsMyArMSw3MiBAQAorMjAxNy0xMS0xNyAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBw
bGUuY29tPgorCisgICAgICAgIFVzZSBhIHN0cm9uZ2x5IHR5cGVkIGlkZW50aWZpZXIgZm9yIFNX
U2VydmVyOjpDb25uZWN0aW9uCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD0xNzk4NDgKKworICAgICAgICBSZXZpZXdlZCBieSBCcmFkeSBFaWRzb24uCisK
KyAgICAgICAgVXNlIGEgc3Ryb25nbHkgdHlwZWQgaWRlbnRpZmllciBmb3IgU1dTZXJ2ZXI6OkNv
bm5lY3Rpb24sIGZvciBjbGFyaXR5LgorCisgICAgICAgICogd29ya2Vycy9zZXJ2aWNlL1NlcnZp
Y2VXb3JrZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U2VydmljZVdvcmtlcjo6cG9zdE1lc3Nh
Z2UpOgorICAgICAgICAqIHdvcmtlcnMvc2VydmljZS9TZXJ2aWNlV29ya2VyQ2xpZW50LmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJDbGllbnQ6OlNlcnZpY2VXb3JrZXJDbGll
bnQpOgorICAgICAgICAoV2ViQ29yZTo6U2VydmljZVdvcmtlckNsaWVudDo6aWQgY29uc3QpOgor
ICAgICAgICAoV2ViQ29yZTo6U2VydmljZVdvcmtlckNsaWVudDo6cG9zdE1lc3NhZ2UpOgorICAg
ICAgICAqIHdvcmtlcnMvc2VydmljZS9TZXJ2aWNlV29ya2VyQ2xpZW50Lmg6CisgICAgICAgIChX
ZWJDb3JlOjpTZXJ2aWNlV29ya2VyQ2xpZW50OjpjcmVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6
U2VydmljZVdvcmtlckNsaWVudDo6aWRlbnRpZmllciBjb25zdCk6CisgICAgICAgICogd29ya2Vy
cy9zZXJ2aWNlL1NlcnZpY2VXb3JrZXJDbGllbnREYXRhLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OlNlcnZpY2VXb3JrZXJDbGllbnREYXRhOjppc29sYXRlZENvcHkgY29uc3QpOgorICAgICAgICAo
V2ViQ29yZTo6U2VydmljZVdvcmtlckNsaWVudERhdGE6OmZyb20pOgorICAgICAgICAqIHdvcmtl
cnMvc2VydmljZS9TZXJ2aWNlV29ya2VyQ2xpZW50RGF0YS5oOgorICAgICAgICAoV2ViQ29yZTo6
U2VydmljZVdvcmtlckNsaWVudERhdGE6OmVuY29kZSBjb25zdCk6CisgICAgICAgIChXZWJDb3Jl
OjpTZXJ2aWNlV29ya2VyQ2xpZW50RGF0YTo6ZGVjb2RlKToKKyAgICAgICAgKiB3b3JrZXJzL3Nl
cnZpY2UvU2VydmljZVdvcmtlckNsaWVudElkZW50aWZpZXIuaDoKKyAgICAgICAgKFdlYkNvcmU6
OlNlcnZpY2VXb3JrZXJDbGllbnRJZGVudGlmaWVyOjp0b1N0cmluZyBjb25zdCk6CisgICAgICAg
IChXZWJDb3JlOjpTZXJ2aWNlV29ya2VyQ2xpZW50SWRlbnRpZmllcjo6ZGVjb2RlKToKKyAgICAg
ICAgKiB3b3JrZXJzL3NlcnZpY2UvU2VydmljZVdvcmtlckNvbnRhaW5lci5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpTZXJ2aWNlV29ya2VyQ29udGFpbmVyOjphZGRSZWdpc3RyYXRpb24pOgorICAg
ICAgICAoV2ViQ29yZTo6U2VydmljZVdvcmtlckNvbnRhaW5lcjo6cmVtb3ZlUmVnaXN0cmF0aW9u
KToKKyAgICAgICAgKFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJDb250YWluZXI6OnVwZGF0ZVJlZ2lz
dHJhdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpTZXJ2aWNlV29ya2VyQ29udGFpbmVyOjpjb25u
ZWN0aW9uSWRlbnRpZmllcik6CisgICAgICAgICogd29ya2Vycy9zZXJ2aWNlL1NlcnZpY2VXb3Jr
ZXJDb250YWluZXIuaDoKKyAgICAgICAgKiB3b3JrZXJzL3NlcnZpY2UvU2VydmljZVdvcmtlckZl
dGNoUmVzdWx0Lmg6CisgICAgICAgIChXZWJDb3JlOjpTZXJ2aWNlV29ya2VyRmV0Y2hSZXN1bHQ6
OmRlY29kZSk6CisgICAgICAgICogd29ya2Vycy9zZXJ2aWNlL1NlcnZpY2VXb3JrZXJKb2JDbGll
bnQuaDoKKyAgICAgICAgKiB3b3JrZXJzL3NlcnZpY2UvU2VydmljZVdvcmtlckpvYkRhdGEuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6U2VydmljZVdvcmtlckpvYkRhdGE6OlNlcnZpY2VXb3JrZXJK
b2JEYXRhKToKKyAgICAgICAgKiB3b3JrZXJzL3NlcnZpY2UvU2VydmljZVdvcmtlckpvYkRhdGEu
aDoKKyAgICAgICAgKFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJKb2JEYXRhOjpjb25uZWN0aW9uSWRl
bnRpZmllciBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpTZXJ2aWNlV29ya2VySm9iRGF0YTo6
ZGVjb2RlKToKKyAgICAgICAgKiB3b3JrZXJzL3NlcnZpY2UvU2VydmljZVdvcmtlclR5cGVzLmg6
CisgICAgICAgICogd29ya2Vycy9zZXJ2aWNlL1NlcnZpY2VXb3JrZXJXaW5kb3dDbGllbnQuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6U2VydmljZVdvcmtlcldpbmRvd0NsaWVudDo6U2VydmljZVdv
cmtlcldpbmRvd0NsaWVudCk6CisgICAgICAgICogd29ya2Vycy9zZXJ2aWNlL1NlcnZpY2VXb3Jr
ZXJXaW5kb3dDbGllbnQuaDoKKyAgICAgICAgKiB3b3JrZXJzL3NlcnZpY2UvY29udGV4dC9TV0Nv
bnRleHRNYW5hZ2VyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNXQ29udGV4dE1hbmFnZXI6OnBv
c3RNZXNzYWdlVG9TZXJ2aWNlV29ya2VyR2xvYmFsU2NvcGUpOgorICAgICAgICAqIHdvcmtlcnMv
c2VydmljZS9jb250ZXh0L1NXQ29udGV4dE1hbmFnZXIuaDoKKyAgICAgICAgKiB3b3JrZXJzL3Nl
cnZpY2UvY29udGV4dC9TZXJ2aWNlV29ya2VyVGhyZWFkLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OlNlcnZpY2VXb3JrZXJUaHJlYWQ6OnBvc3RNZXNzYWdlVG9TZXJ2aWNlV29ya2VyR2xvYmFsU2Nv
cGUpOgorICAgICAgICAqIHdvcmtlcnMvc2VydmljZS9jb250ZXh0L1NlcnZpY2VXb3JrZXJUaHJl
YWQuaDoKKyAgICAgICAgKiB3b3JrZXJzL3NlcnZpY2Uvc2VydmVyL1NXQ2xpZW50Q29ubmVjdGlv
bi5oOgorICAgICAgICAqIHdvcmtlcnMvc2VydmljZS9zZXJ2ZXIvU1dTZXJ2ZXIuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6U1dTZXJ2ZXI6OkNvbm5lY3Rpb246OkNvbm5lY3Rpb24pOgorICAgICAg
ICAoV2ViQ29yZTo6U1dTZXJ2ZXI6OkNvbm5lY3Rpb246OnNjaGVkdWxlSm9iSW5TZXJ2ZXIpOgor
ICAgICAgICAoV2ViQ29yZTo6U1dTZXJ2ZXI6OnJlamVjdEpvYik6CisgICAgICAgIChXZWJDb3Jl
OjpTV1NlcnZlcjo6cmVzb2x2ZVJlZ2lzdHJhdGlvbkpvYik6CisgICAgICAgIChXZWJDb3JlOjpT
V1NlcnZlcjo6c3RhcnRTY3JpcHRGZXRjaCk6CisgICAgICAgIChXZWJDb3JlOjpTV1NlcnZlcjo6
c2NyaXB0RmV0Y2hGaW5pc2hlZCk6CisgICAgICAgICogd29ya2Vycy9zZXJ2aWNlL3NlcnZlci9T
V1NlcnZlci5oOgorICAgICAgICAoV2ViQ29yZTo6U1dTZXJ2ZXI6OkNvbm5lY3Rpb246OmlkZW50
aWZpZXIgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6U1dTZXJ2ZXI6OmdldENvbm5lY3Rpb24p
OgorICAgICAgICAqIHdvcmtlcnMvc2VydmljZS9zZXJ2ZXIvU1dTZXJ2ZXJSZWdpc3RyYXRpb24u
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6U1dTZXJ2ZXJSZWdpc3RyYXRpb246OmZvckVhY2hDb25u
ZWN0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OlNXU2VydmVyUmVnaXN0cmF0aW9uOjphZGRDbGll
bnRTZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OlNXU2VydmVy
UmVnaXN0cmF0aW9uOjpyZW1vdmVDbGllbnRTZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uKToKKyAg
ICAgICAgKFdlYkNvcmU6OlNXU2VydmVyUmVnaXN0cmF0aW9uOjp1bnJlZ2lzdGVyU2VydmVyQ29u
bmVjdGlvbik6CisgICAgICAgICogd29ya2Vycy9zZXJ2aWNlL3NlcnZlci9TV1NlcnZlclJlZ2lz
dHJhdGlvbi5oOgorCiAyMDE3LTExLTE3ICBBbnR0aSBLb2l2aXN0byAgPGFudHRpQGFwcGxlLmNv
bT4KIAogICAgICAgICBNb3ZlIGRlc3Ryb3lMZWZ0b3ZlckNoaWxkcmVuIGNhbGwgdG8gUmVuZGVy
T2JqZWN0OjpkZXN0cm95CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZyBiL1Nv
dXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IGRmZTVjZWNmMTY5ZDNhZjJlYjI0ZGMzZTI2NDQ4
Y2YwMTNiZGMxNGQuLmU4YzRhMDI1YmI2ODllZTQ3ZmI5OGRmMDQxZGVhYjFkZjk3NTc1MDMgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsNTQgQEAKKzIwMTctMTEtMTcgIENocmlzIER1bWV6ICA8Y2R1bWV6
QGFwcGxlLmNvbT4KKworICAgICAgICBVc2UgYSBzdHJvbmdseSB0eXBlZCBpZGVudGlmaWVyIGZv
ciBTV1NlcnZlcjo6Q29ubmVjdGlvbgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9MTc5ODQ4CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgQnJhZHkgRWlkc29u
LgorCisgICAgICAgIFVzZSBhIHN0cm9uZ2x5IHR5cGVkIGlkZW50aWZpZXIgZm9yIFNXU2VydmVy
OjpDb25uZWN0aW9uLCBmb3IgY2xhcml0eS4KKworICAgICAgICAqIFNjcmlwdHMvd2Via2l0L21l
c3NhZ2VzLnB5OgorICAgICAgICAoZm9yd2FyZF9kZWNsYXJhdGlvbnNfYW5kX2hlYWRlcnMpOgor
ICAgICAgICAoZm9yd2FyZF9kZWNsYXJhdGlvbnNfYW5kX2hlYWRlcnMudGVtcGxhdGVzKToKKyAg
ICAgICAgKGhlYWRlcnNfZm9yX3R5cGUpOgorICAgICAgICAqIFN0b3JhZ2VQcm9jZXNzL1NlcnZp
Y2VXb3JrZXIvV2ViU1dTZXJ2ZXJDb25uZWN0aW9uLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2Vi
U1dTZXJ2ZXJDb25uZWN0aW9uOjpXZWJTV1NlcnZlckNvbm5lY3Rpb24pOgorICAgICAgICAoV2Vi
S2l0OjpXZWJTV1NlcnZlckNvbm5lY3Rpb246OnBvc3RNZXNzYWdlVG9TZXJ2aWNlV29ya2VyR2xv
YmFsU2NvcGUpOgorICAgICAgICAqIFN0b3JhZ2VQcm9jZXNzL1NlcnZpY2VXb3JrZXIvV2ViU1dT
ZXJ2ZXJDb25uZWN0aW9uLmg6CisgICAgICAgICogU3RvcmFnZVByb2Nlc3MvU2VydmljZVdvcmtl
ci9XZWJTV1NlcnZlckNvbm5lY3Rpb24ubWVzc2FnZXMuaW46CisgICAgICAgICogU3RvcmFnZVBy
b2Nlc3MvU3RvcmFnZVByb2Nlc3MuY3BwOgorICAgICAgICAoV2ViS2l0OjpTdG9yYWdlUHJvY2Vz
czo6ZGlkRmFpbEZldGNoKToKKyAgICAgICAgKFdlYktpdDo6U3RvcmFnZVByb2Nlc3M6OmRpZE5v
dEhhbmRsZUZldGNoKToKKyAgICAgICAgKFdlYktpdDo6U3RvcmFnZVByb2Nlc3M6OmRpZFJlY2Vp
dmVGZXRjaFJlc3BvbnNlKToKKyAgICAgICAgKFdlYktpdDo6U3RvcmFnZVByb2Nlc3M6OmRpZFJl
Y2VpdmVGZXRjaERhdGEpOgorICAgICAgICAoV2ViS2l0OjpTdG9yYWdlUHJvY2Vzczo6ZGlkUmVj
ZWl2ZUZldGNoRm9ybURhdGEpOgorICAgICAgICAoV2ViS2l0OjpTdG9yYWdlUHJvY2Vzczo6ZGlk
RmluaXNoRmV0Y2gpOgorICAgICAgICAqIFN0b3JhZ2VQcm9jZXNzL1N0b3JhZ2VQcm9jZXNzLmg6
CisgICAgICAgICogU3RvcmFnZVByb2Nlc3MvU3RvcmFnZVByb2Nlc3MubWVzc2FnZXMuaW46Cisg
ICAgICAgICogU3RvcmFnZVByb2Nlc3MvU3RvcmFnZVRvV2ViUHJvY2Vzc0Nvbm5lY3Rpb24uY3Bw
OgorICAgICAgICAoV2ViS2l0OjpTdG9yYWdlVG9XZWJQcm9jZXNzQ29ubmVjdGlvbjo6ZGlkUmVj
ZWl2ZU1lc3NhZ2UpOgorICAgICAgICAoV2ViS2l0OjpTdG9yYWdlVG9XZWJQcm9jZXNzQ29ubmVj
dGlvbjo6ZXN0YWJsaXNoU1dTZXJ2ZXJDb25uZWN0aW9uKToKKyAgICAgICAgKFdlYktpdDo6U3Rv
cmFnZVRvV2ViUHJvY2Vzc0Nvbm5lY3Rpb246OnJlbW92ZVNXU2VydmVyQ29ubmVjdGlvbik6Cisg
ICAgICAgIChXZWJLaXQ6OmdlbmVyYXRlSURCQ29ubmVjdGlvblRvU2VydmVySWRlbnRpZmllcik6
CisgICAgICAgIChXZWJLaXQ6OlN0b3JhZ2VUb1dlYlByb2Nlc3NDb25uZWN0aW9uOjplc3RhYmxp
c2hJREJDb25uZWN0aW9uVG9TZXJ2ZXIpOgorICAgICAgICAqIFN0b3JhZ2VQcm9jZXNzL1N0b3Jh
Z2VUb1dlYlByb2Nlc3NDb25uZWN0aW9uLmg6CisgICAgICAgICogU3RvcmFnZVByb2Nlc3MvU3Rv
cmFnZVRvV2ViUHJvY2Vzc0Nvbm5lY3Rpb24ubWVzc2FnZXMuaW46CisgICAgICAgICogV2ViUHJv
Y2Vzcy9TdG9yYWdlL1dlYlNXQ2xpZW50Q29ubmVjdGlvbi5jcHA6CisgICAgICAgIChXZWJLaXQ6
OldlYlNXQ2xpZW50Q29ubmVjdGlvbjo6cG9zdE1lc3NhZ2VUb1NlcnZpY2VXb3JrZXJHbG9iYWxT
Y29wZSk6CisgICAgICAgICogV2ViUHJvY2Vzcy9TdG9yYWdlL1dlYlNXQ2xpZW50Q29ubmVjdGlv
bi5oOgorICAgICAgICAqIFdlYlByb2Nlc3MvU3RvcmFnZS9XZWJTV0NvbnRleHRNYW5hZ2VyQ29u
bmVjdGlvbi5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlNXQ29udGV4dE1hbmFnZXJDb25uZWN0
aW9uOjpzdGFydEZldGNoKToKKyAgICAgICAgKFdlYktpdDo6V2ViU1dDb250ZXh0TWFuYWdlckNv
bm5lY3Rpb246OnBvc3RNZXNzYWdlVG9TZXJ2aWNlV29ya2VyR2xvYmFsU2NvcGUpOgorICAgICAg
ICAqIFdlYlByb2Nlc3MvU3RvcmFnZS9XZWJTV0NvbnRleHRNYW5hZ2VyQ29ubmVjdGlvbi5oOgor
ICAgICAgICAqIFdlYlByb2Nlc3MvU3RvcmFnZS9XZWJTV0NvbnRleHRNYW5hZ2VyQ29ubmVjdGlv
bi5tZXNzYWdlcy5pbjoKKyAgICAgICAgKiBXZWJQcm9jZXNzL1N0b3JhZ2UvV2ViU2VydmljZVdv
cmtlckZldGNoVGFza0NsaWVudC5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlNlcnZpY2VXb3Jr
ZXJGZXRjaFRhc2tDbGllbnQ6OldlYlNlcnZpY2VXb3JrZXJGZXRjaFRhc2tDbGllbnQpOgorICAg
ICAgICAqIFdlYlByb2Nlc3MvU3RvcmFnZS9XZWJTZXJ2aWNlV29ya2VyRmV0Y2hUYXNrQ2xpZW50
Lmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9TdG9yYWdlL1dlYlRvU3RvcmFnZVByb2Nlc3NDb25u
ZWN0aW9uLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViVG9TdG9yYWdlUHJvY2Vzc0Nvbm5lY3Rp
b246OmRpZFJlY2VpdmVNZXNzYWdlKToKKyAgICAgICAgKFdlYktpdDo6V2ViVG9TdG9yYWdlUHJv
Y2Vzc0Nvbm5lY3Rpb246OnNlcnZpY2VXb3JrZXJDb25uZWN0aW9uRm9yU2Vzc2lvbik6CisgICAg
ICAgICogV2ViUHJvY2Vzcy9TdG9yYWdlL1dlYlRvU3RvcmFnZVByb2Nlc3NDb25uZWN0aW9uLmg6
CisKIDIwMTctMTEtMTYgIFlvdXN1a2UgS2ltb3RvICA8eW91c3VrZS5raW1vdG9Ac29ueS5jb20+
CiAKICAgICAgICAgW1dpbkNhaXJvXSBBZGQgbmV0d29yayAoY3VybCkgZmlsZXMgZm9yIHdpbmNh
aXJvIHdlYmtpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvT2JqZWN0SWRlbnRpZmllci5o
IGIvU291cmNlL1dURi93dGYvT2JqZWN0SWRlbnRpZmllci5oCmluZGV4IDY3ZGVlMDI2YjVlODdl
NDA3YTYyMmVlNjBlNjUwOGMzNTJlNmI5ZGQuLjZmN2FhYzQ1ZWQwNTRlZGZlYTUwMDQ1OTIyMzgz
YjgxZTgyY2E4ODkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvd3RmL09iamVjdElkZW50aWZpZXIu
aAorKysgYi9Tb3VyY2UvV1RGL3d0Zi9PYmplY3RJZGVudGlmaWVyLmgKQEAgLTYxLDYgKzYxLDgg
QEAgcHVibGljOgogICAgIHsKICAgICAgICAgcmV0dXJuIG1faWRlbnRpZmllciAhPSBvdGhlci5t
X2lkZW50aWZpZXI7CiAgICAgfQorCisgICAgdWludDY0X3QgdG9VSW50NjQoKSBjb25zdCB7IHJl
dHVybiBtX2lkZW50aWZpZXI7IH0KICAgICAKICNpZm5kZWYgTkRFQlVHCiAgICAgU3RyaW5nIGxv
Z2dpbmdTdHJpbmcoKSBjb25zdApAQCAtNzEsNiArNzMsNyBAQCBwdWJsaWM6CiAKIHByaXZhdGU6
CiAgICAgdGVtcGxhdGU8dHlwZW5hbWUgVT4gZnJpZW5kIE9iamVjdElkZW50aWZpZXI8VT4gZ2Vu
ZXJhdGVPYmplY3RJZGVudGlmaWVyKCk7CisgICAgdGVtcGxhdGU8dHlwZW5hbWUgVT4gZnJpZW5k
IE9iamVjdElkZW50aWZpZXI8VT4gbWFrZU9iamVjdElkZW50aWZpZXIodWludDY0X3QpOwogICAg
IGZyaWVuZCBzdHJ1Y3QgSGFzaFRyYWl0czxPYmplY3RJZGVudGlmaWVyPjsKICAgICB0ZW1wbGF0
ZTx0eXBlbmFtZSBVPiBmcmllbmQgc3RydWN0IE9iamVjdElkZW50aWZpZXJIYXNoOwogCkBAIC05
Myw2ICs5NiwxMSBAQCB0ZW1wbGF0ZTx0eXBlbmFtZSBUPiBpbmxpbmUgT2JqZWN0SWRlbnRpZmll
cjxUPiBnZW5lcmF0ZU9iamVjdElkZW50aWZpZXIoKQogICAgIHJldHVybiBPYmplY3RJZGVudGlm
aWVyPFQ+IHsgKytPYmplY3RJZGVudGlmaWVyPFQ+OjpzX2N1cnJlbnRJZGVudGlmaWVyIH07CiB9
CiAKK3RlbXBsYXRlPHR5cGVuYW1lIFQ+IGlubGluZSBPYmplY3RJZGVudGlmaWVyPFQ+IG1ha2VP
YmplY3RJZGVudGlmaWVyKHVpbnQ2NF90IGlkZW50aWZpZXIpCit7CisgICAgcmV0dXJuIE9iamVj
dElkZW50aWZpZXI8VD4geyBpZGVudGlmaWVyIH07Cit9CisKIHRlbXBsYXRlPHR5cGVuYW1lIFQ+
IHN0cnVjdCBPYmplY3RJZGVudGlmaWVySGFzaCB7CiAgICAgc3RhdGljIHVuc2lnbmVkIGhhc2go
Y29uc3QgT2JqZWN0SWRlbnRpZmllcjxUPiYgaWRlbnRpZmllcikgeyByZXR1cm4gaW50SGFzaChp
ZGVudGlmaWVyLm1faWRlbnRpZmllcik7IH0KICAgICBzdGF0aWMgYm9vbCBlcXVhbChjb25zdCBP
YmplY3RJZGVudGlmaWVyPFQ+JiBhLCBjb25zdCBPYmplY3RJZGVudGlmaWVyPFQ+JiBiKSB7IHJl
dHVybiBhID09IGI7IH0KQEAgLTEwOSwzICsxMTcsNCBAQCB0ZW1wbGF0ZTx0eXBlbmFtZSBUPiBz
dHJ1Y3QgRGVmYXVsdEhhc2g8T2JqZWN0SWRlbnRpZmllcjxUPj4gewogCiB1c2luZyBXVEY6Ok9i
amVjdElkZW50aWZpZXI7CiB1c2luZyBXVEY6OmdlbmVyYXRlT2JqZWN0SWRlbnRpZmllcjsKK3Vz
aW5nIFdURjo6bWFrZU9iamVjdElkZW50aWZpZXI7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS93b3JrZXJzL3NlcnZpY2UvU2VydmljZVdvcmtlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS93b3Jr
ZXJzL3NlcnZpY2UvU2VydmljZVdvcmtlci5jcHAKaW5kZXggM2ZiMzJmYjRlY2M1OGQ4OGMxNzg4
Njc2ZjEyMzAwOGM5ODYzMWI2Yi4uM2I5ODQzNTJlMjQwMWFkZDY4Y2U1NDYzNjcyODA3MWFjZTIx
YmI3NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL1NlcnZpY2VX
b3JrZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9TZXJ2aWNlV29y
a2VyLmNwcApAQCAtMjgsNiArMjgsNyBAQAogCiAjaWYgRU5BQkxFKFNFUlZJQ0VfV09SS0VSKQog
CisjaW5jbHVkZSAiRG9jdW1lbnQuaCIKICNpbmNsdWRlICJFdmVudE5hbWVzLmgiCiAjaW5jbHVk
ZSAiTWVzc2FnZVBvcnQuaCIKICNpbmNsdWRlICJTV0NsaWVudENvbm5lY3Rpb24uaCIKQEAgLTE0
OCw3ICsxNDksNyBAQCBFeGNlcHRpb25Pcjx2b2lkPiBTZXJ2aWNlV29ya2VyOjpwb3N0TWVzc2Fn
ZShTY3JpcHRFeGVjdXRpb25Db250ZXh0JiBjb250ZXh0LCBKUwogICAgIGF1dG8gc291cmNlQ2xp
ZW50RGF0YSA9IFNlcnZpY2VXb3JrZXJDbGllbnREYXRhOjpmcm9tKGNvbnRleHQpOwogCiAgICAg
YXV0byYgc3dDb25uZWN0aW9uID0gU2VydmljZVdvcmtlclByb3ZpZGVyOjpzaW5nbGV0b24oKS5z
ZXJ2aWNlV29ya2VyQ29ubmVjdGlvbkZvclNlc3Npb24oY29udGV4dC5zZXNzaW9uSUQoKSk7Ci0g
ICAgc3dDb25uZWN0aW9uLnBvc3RNZXNzYWdlVG9TZXJ2aWNlV29ya2VyR2xvYmFsU2NvcGUoaWRl
bnRpZmllcigpLCBtZXNzYWdlLnJlbGVhc2VSZXR1cm5WYWx1ZSgpLCBXVEZNb3ZlKHNvdXJjZUNs
aWVudERhdGEpKTsKKyAgICBzd0Nvbm5lY3Rpb24ucG9zdE1lc3NhZ2VUb1NlcnZpY2VXb3JrZXJH
bG9iYWxTY29wZShpZGVudGlmaWVyKCksIG1lc3NhZ2UucmVsZWFzZVJldHVyblZhbHVlKCksIGRv
d25jYXN0PERvY3VtZW50Pihjb250ZXh0KS5pZGVudGlmaWVyKCksIFdURk1vdmUoc291cmNlQ2xp
ZW50RGF0YSkpOwogCiAgICAgcmV0dXJuIHsgfTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3dvcmtlcnMvc2VydmljZS9TZXJ2aWNlV29ya2VyQ2xpZW50LmNwcCBiL1NvdXJjZS9XZWJD
b3JlL3dvcmtlcnMvc2VydmljZS9TZXJ2aWNlV29ya2VyQ2xpZW50LmNwcAppbmRleCAzNjAyZTM0
YjQ0MDk1NTMyNjY5NmQ0MTc2NjY0NWIyMjk4NDAyYTUyLi42ZjEyYTQyOTM2ZDg2OGU5MjcwMzIz
M2Q3YmFiMWNiMDEyNzkyNmNmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3Nl
cnZpY2UvU2VydmljZVdvcmtlckNsaWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvd29ya2Vy
cy9zZXJ2aWNlL1NlcnZpY2VXb3JrZXJDbGllbnQuY3BwCkBAIC0zNywxMiArMzcsMTEgQEAKIAog
bmFtZXNwYWNlIFdlYkNvcmUgewogCi1TZXJ2aWNlV29ya2VyQ2xpZW50OjpTZXJ2aWNlV29ya2Vy
Q2xpZW50KFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmIGNvbnRleHQsIFNlcnZpY2VXb3JrZXJDbGll
bnREYXRhJiYgZGF0YSkKK1NlcnZpY2VXb3JrZXJDbGllbnQ6OlNlcnZpY2VXb3JrZXJDbGllbnQo
U2NyaXB0RXhlY3V0aW9uQ29udGV4dCYgY29udGV4dCwgU2VydmljZVdvcmtlckNsaWVudElkZW50
aWZpZXIgaWRlbnRpZmllciwgU2VydmljZVdvcmtlckNsaWVudERhdGEmJiBkYXRhKQogICAgIDog
Q29udGV4dERlc3RydWN0aW9uT2JzZXJ2ZXIoJmNvbnRleHQpCisgICAgLCBtX2lkZW50aWZpZXIo
aWRlbnRpZmllcikKICAgICAsIG1fZGF0YShXVEZNb3ZlKGRhdGEpKQogewotICAgIEFTU0VSVCht
X2RhdGEuaWRlbnRpZmllci5zZXJ2ZXJDb25uZWN0aW9uSWRlbnRpZmllcik7Ci0gICAgQVNTRVJU
KG1fZGF0YS5pZGVudGlmaWVyLnNjcmlwdEV4ZWN1dGlvbkNvbnRleHRJZGVudGlmaWVyKTsKIH0K
IAogU2VydmljZVdvcmtlckNsaWVudDo6flNlcnZpY2VXb3JrZXJDbGllbnQoKQpAQCAtNjYsNyAr
NjUsNyBAQCBhdXRvIFNlcnZpY2VXb3JrZXJDbGllbnQ6OmZyYW1lVHlwZSgpIGNvbnN0IC0+IEZy
YW1lVHlwZQogCiBTdHJpbmcgU2VydmljZVdvcmtlckNsaWVudDo6aWQoKSBjb25zdAogewotICAg
IHJldHVybiBtX2RhdGEuaWRlbnRpZmllci50b1N0cmluZygpOworICAgIHJldHVybiBpZGVudGlm
aWVyKCkudG9TdHJpbmcoKTsKIH0KIAogRXhjZXB0aW9uT3I8dm9pZD4gU2VydmljZVdvcmtlckNs
aWVudDo6cG9zdE1lc3NhZ2UoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYgY29udGV4dCwgSlNDOjpK
U1ZhbHVlIG1lc3NhZ2VWYWx1ZSwgVmVjdG9yPEpTQzo6U3Ryb25nPEpTQzo6SlNPYmplY3Q+PiYm
IHRyYW5zZmVyKQpAQCAtOTAsNyArODksNyBAQCBFeGNlcHRpb25Pcjx2b2lkPiBTZXJ2aWNlV29y
a2VyQ2xpZW50Ojpwb3N0TWVzc2FnZShTY3JpcHRFeGVjdXRpb25Db250ZXh0JiBjb250ZQogICAg
ICAgICByZXR1cm4gRXhjZXB0aW9uIHsgTm90U3VwcG9ydGVkRXJyb3IsIEFTQ0lJTGl0ZXJhbCgi
UGFzc2luZyBNZXNzYWdlUG9ydCBvYmplY3RzIHRvIHBvc3RNZXNzYWdlIGlzIG5vdCB5ZXQgc3Vw
cG9ydGVkIikgfTsKIAogICAgIGF1dG8gc291cmNlSWRlbnRpZmllciA9IGRvd25jYXN0PFNlcnZp
Y2VXb3JrZXJHbG9iYWxTY29wZT4oY29udGV4dCkudGhyZWFkKCkuaWRlbnRpZmllcigpOwotICAg
IGNhbGxPbk1haW5UaHJlYWQoW21lc3NhZ2UgPSBtZXNzYWdlLnJlbGVhc2VSZXR1cm5WYWx1ZSgp
LCBkZXN0aW5hdGlvbklkZW50aWZpZXIgPSBtX2RhdGEuaWRlbnRpZmllciwgc291cmNlSWRlbnRp
Zmllciwgc291cmNlT3JpZ2luID0gY29udGV4dC5vcmlnaW4oKS5pc29sYXRlZENvcHkoKV0gKCkg
bXV0YWJsZSB7CisgICAgY2FsbE9uTWFpblRocmVhZChbbWVzc2FnZSA9IG1lc3NhZ2UucmVsZWFz
ZVJldHVyblZhbHVlKCksIGRlc3RpbmF0aW9uSWRlbnRpZmllciA9IGlkZW50aWZpZXIoKSwgc291
cmNlSWRlbnRpZmllciwgc291cmNlT3JpZ2luID0gY29udGV4dC5vcmlnaW4oKS5pc29sYXRlZENv
cHkoKV0gKCkgbXV0YWJsZSB7CiAgICAgICAgIGlmIChhdXRvKiBjb25uZWN0aW9uID0gU1dDb250
ZXh0TWFuYWdlcjo6c2luZ2xldG9uKCkuY29ubmVjdGlvbigpKQogICAgICAgICAgICAgY29ubmVj
dGlvbi0+cG9zdE1lc3NhZ2VUb1NlcnZpY2VXb3JrZXJDbGllbnQoZGVzdGluYXRpb25JZGVudGlm
aWVyLCBXVEZNb3ZlKG1lc3NhZ2UpLCBzb3VyY2VJZGVudGlmaWVyLCBzb3VyY2VPcmlnaW4pOwog
ICAgIH0pOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL1NlcnZp
Y2VXb3JrZXJDbGllbnQuaCBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9TZXJ2aWNl
V29ya2VyQ2xpZW50LmgKaW5kZXggY2VjMzc1ZDk1MWZjNWI0ZTkyODhkZGNjNTU5ODM5ZDI2NWY2
ZjgyYy4uZmJiOTBiMGMxZjdkNGJmM2ViM2I3OTA4YmY0ZjhmZWE1NzE1ZTM2MyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL1NlcnZpY2VXb3JrZXJDbGllbnQuaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvU2VydmljZVdvcmtlckNsaWVudC5o
CkBAIC00Niw5ICs0Niw5IEBAIHB1YmxpYzoKICAgICB1c2luZyBUeXBlID0gU2VydmljZVdvcmtl
ckNsaWVudFR5cGU7CiAgICAgdXNpbmcgRnJhbWVUeXBlID0gU2VydmljZVdvcmtlckNsaWVudEZy
YW1lVHlwZTsKIAotICAgIHN0YXRpYyBSZWY8U2VydmljZVdvcmtlckNsaWVudD4gY3JlYXRlKFNj
cmlwdEV4ZWN1dGlvbkNvbnRleHQmIGNvbnRleHQsIFNlcnZpY2VXb3JrZXJDbGllbnREYXRhJiYg
ZGF0YSkKKyAgICBzdGF0aWMgUmVmPFNlcnZpY2VXb3JrZXJDbGllbnQ+IGNyZWF0ZShTY3JpcHRF
eGVjdXRpb25Db250ZXh0JiBjb250ZXh0LCBTZXJ2aWNlV29ya2VyQ2xpZW50SWRlbnRpZmllciBp
ZGVudGlmaWVyLCBTZXJ2aWNlV29ya2VyQ2xpZW50RGF0YSYmIGRhdGEpCiAgICAgewotICAgICAg
ICByZXR1cm4gYWRvcHRSZWYoKm5ldyBTZXJ2aWNlV29ya2VyQ2xpZW50KGNvbnRleHQsIFdURk1v
dmUoZGF0YSkpKTsKKyAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgU2VydmljZVdvcmtlckNs
aWVudChjb250ZXh0LCBpZGVudGlmaWVyLCBXVEZNb3ZlKGRhdGEpKSk7CiAgICAgfQogCiAgICAg
flNlcnZpY2VXb3JrZXJDbGllbnQoKTsKQEAgLTU4LDExICs1OCwxNCBAQCBwdWJsaWM6CiAgICAg
VHlwZSB0eXBlKCkgY29uc3Q7CiAgICAgU3RyaW5nIGlkKCkgY29uc3Q7CiAKKyAgICBJZGVudGlm
aWVyIGlkZW50aWZpZXIoKSBjb25zdCB7IHJldHVybiBtX2lkZW50aWZpZXI7IH0KKwogICAgIEV4
Y2VwdGlvbk9yPHZvaWQ+IHBvc3RNZXNzYWdlKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmLCBKU0M6
OkpTVmFsdWUgbWVzc2FnZSwgVmVjdG9yPEpTQzo6U3Ryb25nPEpTQzo6SlNPYmplY3Q+PiYmIHRy
YW5zZmVyKTsKIAogcHJvdGVjdGVkOgotICAgIFNlcnZpY2VXb3JrZXJDbGllbnQoU2NyaXB0RXhl
Y3V0aW9uQ29udGV4dCYsIFNlcnZpY2VXb3JrZXJDbGllbnREYXRhJiYpOworICAgIFNlcnZpY2VX
b3JrZXJDbGllbnQoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYsIFNlcnZpY2VXb3JrZXJDbGllbnRJ
ZGVudGlmaWVyLCBTZXJ2aWNlV29ya2VyQ2xpZW50RGF0YSYmKTsKIAorICAgIFNlcnZpY2VXb3Jr
ZXJDbGllbnRJZGVudGlmaWVyIG1faWRlbnRpZmllcjsKICAgICBTZXJ2aWNlV29ya2VyQ2xpZW50
RGF0YSBtX2RhdGE7CiB9OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3Nl
cnZpY2UvU2VydmljZVdvcmtlckNsaWVudERhdGEuY3BwIGIvU291cmNlL1dlYkNvcmUvd29ya2Vy
cy9zZXJ2aWNlL1NlcnZpY2VXb3JrZXJDbGllbnREYXRhLmNwcAppbmRleCBlYzk5ZDc5MTc5Zjhl
YmY4MTlmY2Q4ZDhhZDMyNmNlZmM4NjFkYzM2Li5iMmU3ZDMzMjE3MWU2YWQxZTRmMDUzZDc0YTIy
ZDg0MzhhOWRmM2M1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2Uv
U2VydmljZVdvcmtlckNsaWVudERhdGEuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMv
c2VydmljZS9TZXJ2aWNlV29ya2VyQ2xpZW50RGF0YS5jcHAKQEAgLTU2LDE3ICs1NiwxNCBAQCBz
dGF0aWMgU2VydmljZVdvcmtlckNsaWVudEZyYW1lVHlwZSB0b1NlcnZpY2VXb3JrZXJDbGllbnRG
cmFtZVR5cGUoU2NyaXB0RXhlY3V0aQogCiBTZXJ2aWNlV29ya2VyQ2xpZW50RGF0YSBTZXJ2aWNl
V29ya2VyQ2xpZW50RGF0YTo6aXNvbGF0ZWRDb3B5KCkgY29uc3QKIHsKLSAgICByZXR1cm4geyBp
ZGVudGlmaWVyLCB0eXBlLCBmcmFtZVR5cGUsIHVybC5pc29sYXRlZENvcHkoKSB9OworICAgIHJl
dHVybiB7IHR5cGUsIGZyYW1lVHlwZSwgdXJsLmlzb2xhdGVkQ29weSgpIH07CiB9CiAKIFNlcnZp
Y2VXb3JrZXJDbGllbnREYXRhIFNlcnZpY2VXb3JrZXJDbGllbnREYXRhOjpmcm9tKFNjcmlwdEV4
ZWN1dGlvbkNvbnRleHQmIGNvbnRleHQpCiB7CiAgICAgYm9vbCBpc0RvY3VtZW50ID0gaXM8RG9j
dW1lbnQ+KGNvbnRleHQpOwogCi0gICAgQVNTRVJUX1dJVEhfTUVTU0FHRShpc0RvY3VtZW50LCAi
T25seSBkb2N1bWVudHMgaGF2ZSBpZGVudGlmaWVycyBhdCB0aGUgbW9tZW50Iik7Ci0KICAgICBy
ZXR1cm4gewotICAgICAgICB7IDAsIGRvd25jYXN0PERvY3VtZW50Pihjb250ZXh0KS5pZGVudGlm
aWVyKCkgfSwKICAgICAgICAgaXNEb2N1bWVudCA/IFNlcnZpY2VXb3JrZXJDbGllbnRUeXBlOjpX
aW5kb3cgOiBTZXJ2aWNlV29ya2VyQ2xpZW50VHlwZTo6V29ya2VyLAogICAgICAgICB0b1NlcnZp
Y2VXb3JrZXJDbGllbnRGcmFtZVR5cGUoY29udGV4dCksCiAgICAgICAgIGNvbnRleHQudXJsKCkK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9TZXJ2aWNlV29ya2Vy
Q2xpZW50RGF0YS5oIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL1NlcnZpY2VXb3Jr
ZXJDbGllbnREYXRhLmgKaW5kZXggODUxODY3YzYwZTljMjJkODEzZDFiNWM3NzY4OTMwMzM4ZjRm
MDAwYS4uNGYxYWI4YmE0NWU0YTk4ZmY1NWE0NTJjNjU0ZWRlYjdlNTc4YWZlMSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL1NlcnZpY2VXb3JrZXJDbGllbnREYXRh
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL1NlcnZpY2VXb3JrZXJDbGll
bnREYXRhLmgKQEAgLTM3LDcgKzM3LDYgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogY2xhc3MgU2Ny
aXB0RXhlY3V0aW9uQ29udGV4dDsKIAogc3RydWN0IFNlcnZpY2VXb3JrZXJDbGllbnREYXRhIHsK
LSAgICBTZXJ2aWNlV29ya2VyQ2xpZW50SWRlbnRpZmllciBpZGVudGlmaWVyOwogICAgIFNlcnZp
Y2VXb3JrZXJDbGllbnRUeXBlIHR5cGU7CiAgICAgU2VydmljZVdvcmtlckNsaWVudEZyYW1lVHlw
ZSBmcmFtZVR5cGU7CiAgICAgVVJMIHVybDsKQEAgLTUzLDE3ICs1MiwxMiBAQCBzdHJ1Y3QgU2Vy
dmljZVdvcmtlckNsaWVudERhdGEgewogdGVtcGxhdGU8Y2xhc3MgRW5jb2Rlcj4KIHZvaWQgU2Vy
dmljZVdvcmtlckNsaWVudERhdGE6OmVuY29kZShFbmNvZGVyJiBlbmNvZGVyKSBjb25zdAogewot
ICAgIGVuY29kZXIgPDwgaWRlbnRpZmllciA8PCB0eXBlIDw8IGZyYW1lVHlwZSA8PCB1cmw7Cisg
ICAgZW5jb2RlciA8PCB0eXBlIDw8IGZyYW1lVHlwZSA8PCB1cmw7CiB9CiAKIHRlbXBsYXRlPGNs
YXNzIERlY29kZXI+CiBzdGQ6Om9wdGlvbmFsPFNlcnZpY2VXb3JrZXJDbGllbnREYXRhPiBTZXJ2
aWNlV29ya2VyQ2xpZW50RGF0YTo6ZGVjb2RlKERlY29kZXImIGRlY29kZXIpCiB7Ci0gICAgc3Rk
OjpvcHRpb25hbDxTZXJ2aWNlV29ya2VyQ2xpZW50SWRlbnRpZmllcj4gaWRlbnRpZmllcjsKLSAg
ICBkZWNvZGVyID4+IGlkZW50aWZpZXI7Ci0gICAgaWYgKCFpZGVudGlmaWVyKQotICAgICAgICBy
ZXR1cm4gc3RkOjpudWxsb3B0OwotCiAgICAgc3RkOjpvcHRpb25hbDxTZXJ2aWNlV29ya2VyQ2xp
ZW50VHlwZT4gdHlwZTsKICAgICBkZWNvZGVyID4+IHR5cGU7CiAgICAgaWYgKCF0eXBlKQpAQCAt
NzksNyArNzMsNyBAQCBzdGQ6Om9wdGlvbmFsPFNlcnZpY2VXb3JrZXJDbGllbnREYXRhPiBTZXJ2
aWNlV29ya2VyQ2xpZW50RGF0YTo6ZGVjb2RlKERlY29kZXImCiAgICAgaWYgKCF1cmwpCiAgICAg
ICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CiAKLSAgICByZXR1cm4geyB7IFdURk1vdmUoKmlkZW50
aWZpZXIpLCBXVEZNb3ZlKCp0eXBlKSwgV1RGTW92ZSgqZnJhbWVUeXBlKSwgV1RGTW92ZSgqdXJs
KSB9IH07CisgICAgcmV0dXJuIHsgeyBXVEZNb3ZlKCp0eXBlKSwgV1RGTW92ZSgqZnJhbWVUeXBl
KSwgV1RGTW92ZSgqdXJsKSB9IH07CiB9CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9TZXJ2aWNlV29ya2VyQ2xpZW50
SWRlbnRpZmllci5oIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL1NlcnZpY2VXb3Jr
ZXJDbGllbnRJZGVudGlmaWVyLmgKaW5kZXggYTE1MmJlMTc0YTg5OGM1NDVhM2NmMjA4YWQxMmU4
NDcxOWMzOGVlNi4uMDgxMjgzNTBiMDNlZDM1ZThhODkzYmFlNGE4MWMxMzRjNTc1NDY2YyAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL1NlcnZpY2VXb3JrZXJDbGll
bnRJZGVudGlmaWVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL1NlcnZp
Y2VXb3JrZXJDbGllbnRJZGVudGlmaWVyLmgKQEAgLTI1LDE1ICsyNSwxNiBAQAogCiAjcHJhZ21h
IG9uY2UKIAorI2luY2x1ZGUgIlNlcnZpY2VXb3JrZXJUeXBlcy5oIgogI2luY2x1ZGUgPHd0Zi90
ZXh0L1dURlN0cmluZy5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIHN0cnVjdCBTZXJ2aWNl
V29ya2VyQ2xpZW50SWRlbnRpZmllciB7Ci0gICAgdWludDY0X3Qgc2VydmVyQ29ubmVjdGlvbklk
ZW50aWZpZXI7CisgICAgU1dTZXJ2ZXJDb25uZWN0aW9uSWRlbnRpZmllciBzZXJ2ZXJDb25uZWN0
aW9uSWRlbnRpZmllcjsKICAgICB1aW50NjRfdCBzY3JpcHRFeGVjdXRpb25Db250ZXh0SWRlbnRp
ZmllcjsKIAotICAgIFN0cmluZyB0b1N0cmluZygpIGNvbnN0IHsgcmV0dXJuIFN0cmluZzo6bnVt
YmVyKHNlcnZlckNvbm5lY3Rpb25JZGVudGlmaWVyKSArICItIiArICBTdHJpbmc6Om51bWJlcihz
Y3JpcHRFeGVjdXRpb25Db250ZXh0SWRlbnRpZmllcik7IH0KKyAgICBTdHJpbmcgdG9TdHJpbmco
KSBjb25zdCB7IHJldHVybiBTdHJpbmc6Om51bWJlcihzZXJ2ZXJDb25uZWN0aW9uSWRlbnRpZmll
ci50b1VJbnQ2NCgpKSArICItIiArICBTdHJpbmc6Om51bWJlcihzY3JpcHRFeGVjdXRpb25Db250
ZXh0SWRlbnRpZmllcik7IH0KIAogICAgIHRlbXBsYXRlPGNsYXNzIEVuY29kZXI+IHZvaWQgZW5j
b2RlKEVuY29kZXImKSBjb25zdDsKICAgICB0ZW1wbGF0ZTxjbGFzcyBEZWNvZGVyPiBzdGF0aWMg
c3RkOjpvcHRpb25hbDxTZXJ2aWNlV29ya2VyQ2xpZW50SWRlbnRpZmllcj4gZGVjb2RlKERlY29k
ZXImKTsKQEAgLTQ4LDcgKzQ5LDcgQEAgdm9pZCBTZXJ2aWNlV29ya2VyQ2xpZW50SWRlbnRpZmll
cjo6ZW5jb2RlKEVuY29kZXImIGVuY29kZXIpIGNvbnN0CiB0ZW1wbGF0ZTxjbGFzcyBEZWNvZGVy
Pgogc3RkOjpvcHRpb25hbDxTZXJ2aWNlV29ya2VyQ2xpZW50SWRlbnRpZmllcj4gU2VydmljZVdv
cmtlckNsaWVudElkZW50aWZpZXI6OmRlY29kZShEZWNvZGVyJiBkZWNvZGVyKQogewotICAgIHN0
ZDo6b3B0aW9uYWw8dWludDY0X3Q+IHNlcnZlckNvbm5lY3Rpb25JZGVudGlmaWVyOworICAgIHN0
ZDo6b3B0aW9uYWw8U1dTZXJ2ZXJDb25uZWN0aW9uSWRlbnRpZmllcj4gc2VydmVyQ29ubmVjdGlv
bklkZW50aWZpZXI7CiAgICAgZGVjb2RlciA+PiBzZXJ2ZXJDb25uZWN0aW9uSWRlbnRpZmllcjsK
ICAgICBpZiAoIXNlcnZlckNvbm5lY3Rpb25JZGVudGlmaWVyKQogICAgICAgICByZXR1cm4gc3Rk
OjpudWxsb3B0OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL1Nl
cnZpY2VXb3JrZXJDb250YWluZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNl
L1NlcnZpY2VXb3JrZXJDb250YWluZXIuY3BwCmluZGV4IDY3OWIwZDdlMjQ4N2FkN2IxM2Q3YjQ2
NTg0YzZhODk1MzFiMzI4NmUuLjBmZDMwMGZkNmQ2NTg2ODY0NDdjNDYyNTQyZDYzNmQzNDUxNzRh
NDggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9TZXJ2aWNlV29y
a2VyQ29udGFpbmVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvU2Vy
dmljZVdvcmtlckNvbnRhaW5lci5jcHAKQEAgLTk4LDcgKzk4LDcgQEAgdm9pZCBTZXJ2aWNlV29y
a2VyQ29udGFpbmVyOjphZGRSZWdpc3RyYXRpb24oY29uc3QgU3RyaW5nJiByZWxhdGl2ZVNjcmlw
dFVSTCwgY28KICAgICBpZiAoIW1fc3dDb25uZWN0aW9uKQogICAgICAgICBtX3N3Q29ubmVjdGlv
biA9ICZTZXJ2aWNlV29ya2VyUHJvdmlkZXI6OnNpbmdsZXRvbigpLnNlcnZpY2VXb3JrZXJDb25u
ZWN0aW9uRm9yU2Vzc2lvbihzY3JpcHRFeGVjdXRpb25Db250ZXh0KCktPnNlc3Npb25JRCgpKTsK
IAotICAgIFNlcnZpY2VXb3JrZXJKb2JEYXRhIGpvYkRhdGEobV9zd0Nvbm5lY3Rpb24tPmlkZW50
aWZpZXIoKSk7CisgICAgU2VydmljZVdvcmtlckpvYkRhdGEgam9iRGF0YShtX3N3Q29ubmVjdGlv
bi0+c2VydmVyQ29ubmVjdGlvbklkZW50aWZpZXIoKSk7CiAKICAgICBqb2JEYXRhLnNjcmlwdFVS
TCA9IGNvbnRleHQtPmNvbXBsZXRlVVJMKHJlbGF0aXZlU2NyaXB0VVJMKTsKICAgICBpZiAoIWpv
YkRhdGEuc2NyaXB0VVJMLmlzVmFsaWQoKSkgewpAQCAtMTU2LDcgKzE1Niw3IEBAIHZvaWQgU2Vy
dmljZVdvcmtlckNvbnRhaW5lcjo6cmVtb3ZlUmVnaXN0cmF0aW9uKGNvbnN0IFVSTCYgc2NvcGVV
UkwsIFJlZjxEZWZlcnJlCiAgICAgICAgIHJldHVybjsKICAgICB9CiAKLSAgICBTZXJ2aWNlV29y
a2VySm9iRGF0YSBqb2JEYXRhKG1fc3dDb25uZWN0aW9uLT5pZGVudGlmaWVyKCkpOworICAgIFNl
cnZpY2VXb3JrZXJKb2JEYXRhIGpvYkRhdGEobV9zd0Nvbm5lY3Rpb24tPnNlcnZlckNvbm5lY3Rp
b25JZGVudGlmaWVyKCkpOwogICAgIGpvYkRhdGEuY2xpZW50Q3JlYXRpb25VUkwgPSBjb250ZXh0
LT51cmwoKTsKICAgICBqb2JEYXRhLnRvcE9yaWdpbiA9IFNlY3VyaXR5T3JpZ2luRGF0YTo6ZnJv
bVNlY3VyaXR5T3JpZ2luKGNvbnRleHQtPnRvcE9yaWdpbigpKTsKICAgICBqb2JEYXRhLnR5cGUg
PSBTZXJ2aWNlV29ya2VySm9iVHlwZTo6VW5yZWdpc3RlcjsKQEAgLTE4MCw3ICsxODAsNyBAQCB2
b2lkIFNlcnZpY2VXb3JrZXJDb250YWluZXI6OnVwZGF0ZVJlZ2lzdHJhdGlvbihjb25zdCBVUkwm
IHNjb3BlVVJMLCBjb25zdCBVUkwmCiAgICAgICAgIHJldHVybjsKICAgICB9CiAKLSAgICBTZXJ2
aWNlV29ya2VySm9iRGF0YSBqb2JEYXRhKG1fc3dDb25uZWN0aW9uLT5pZGVudGlmaWVyKCkpOwor
ICAgIFNlcnZpY2VXb3JrZXJKb2JEYXRhIGpvYkRhdGEobV9zd0Nvbm5lY3Rpb24tPnNlcnZlckNv
bm5lY3Rpb25JZGVudGlmaWVyKCkpOwogICAgIGpvYkRhdGEuY2xpZW50Q3JlYXRpb25VUkwgPSBj
b250ZXh0LT51cmwoKTsKICAgICBqb2JEYXRhLnRvcE9yaWdpbiA9IFNlY3VyaXR5T3JpZ2luRGF0
YTo6ZnJvbVNlY3VyaXR5T3JpZ2luKGNvbnRleHQtPnRvcE9yaWdpbigpKTsKICAgICBqb2JEYXRh
LnR5cGUgPSBTZXJ2aWNlV29ya2VySm9iVHlwZTo6VXBkYXRlOwpAQCAtMzgzLDEwICszODMsMTAg
QEAgdm9pZCBTZXJ2aWNlV29ya2VyQ29udGFpbmVyOjpqb2JEaWRGaW5pc2goU2VydmljZVdvcmtl
ckpvYiYgam9iKQogICAgIHVuc2V0UGVuZGluZ0FjdGl2aXR5KHRoaXMpOwogfQogCi11aW50NjRf
dCBTZXJ2aWNlV29ya2VyQ29udGFpbmVyOjpjb25uZWN0aW9uSWRlbnRpZmllcigpCitTV1NlcnZl
ckNvbm5lY3Rpb25JZGVudGlmaWVyIFNlcnZpY2VXb3JrZXJDb250YWluZXI6OmNvbm5lY3Rpb25J
ZGVudGlmaWVyKCkKIHsKICAgICBBU1NFUlQobV9zd0Nvbm5lY3Rpb24pOwotICAgIHJldHVybiBt
X3N3Q29ubmVjdGlvbi0+aWRlbnRpZmllcigpOworICAgIHJldHVybiBtX3N3Q29ubmVjdGlvbi0+
c2VydmVyQ29ubmVjdGlvbklkZW50aWZpZXIoKTsKIH0KIAogY29uc3QgY2hhciogU2VydmljZVdv
cmtlckNvbnRhaW5lcjo6YWN0aXZlRE9NT2JqZWN0TmFtZSgpIGNvbnN0CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvU2VydmljZVdvcmtlckNvbnRhaW5lci5oIGIv
U291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL1NlcnZpY2VXb3JrZXJDb250YWluZXIuaApp
bmRleCA0MWU5MmU5ZWMxNTZjYmIzMGUxMWRkYmI4OWYyNmM1NzVlZGZmOGIwLi5iOGQ1ODc2YWEx
OWE3NzM5NDVkZTI2NDk1ZGJkZDQ2NzZjMWI2ZmM5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS93b3JrZXJzL3NlcnZpY2UvU2VydmljZVdvcmtlckNvbnRhaW5lci5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3dvcmtlcnMvc2VydmljZS9TZXJ2aWNlV29ya2VyQ29udGFpbmVyLmgKQEAgLTk1LDcg
Kzk1LDcgQEAgcHJpdmF0ZToKIAogICAgIHZvaWQgam9iRGlkRmluaXNoKFNlcnZpY2VXb3JrZXJK
b2ImKTsKIAotICAgIHVpbnQ2NF90IGNvbm5lY3Rpb25JZGVudGlmaWVyKCkgZmluYWw7CisgICAg
U1dTZXJ2ZXJDb25uZWN0aW9uSWRlbnRpZmllciBjb25uZWN0aW9uSWRlbnRpZmllcigpIGZpbmFs
OwogCiAgICAgY29uc3QgY2hhciogYWN0aXZlRE9NT2JqZWN0TmFtZSgpIGNvbnN0IGZpbmFsOwog
ICAgIGJvb2wgY2FuU3VzcGVuZEZvckRvY3VtZW50U3VzcGVuc2lvbigpIGNvbnN0IGZpbmFsOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL1NlcnZpY2VXb3JrZXJG
ZXRjaFJlc3VsdC5oIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL1NlcnZpY2VXb3Jr
ZXJGZXRjaFJlc3VsdC5oCmluZGV4IGVmN2U3MmRjMzEzMzYyOTg5MGYxZThhYjFkNmI3MWNlNjEy
YjIzZWQuLjM2MDQ0NDQ2M2ExYzdkMmQ0OWUzODVlYWUyYTA0NmY4NzNhZDA4MGQgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9TZXJ2aWNlV29ya2VyRmV0Y2hSZXN1
bHQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvU2VydmljZVdvcmtlckZl
dGNoUmVzdWx0LmgKQEAgLTI5LDEyICsyOSwxMyBAQAogCiAjaW5jbHVkZSAiUmVzb3VyY2VFcnJv
ci5oIgogI2luY2x1ZGUgIlNlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb25LZXkuaCIKKyNpbmNsdWRl
ICJTZXJ2aWNlV29ya2VyVHlwZXMuaCIKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCiBzdHJ1Y3Qg
U2VydmljZVdvcmtlckZldGNoUmVzdWx0IHsKICAgICB1aW50NjRfdCBqb2JJZGVudGlmaWVyOwot
ICAgIHVpbnQ2NF90IGNvbm5lY3Rpb25JZGVudGlmaWVyOworICAgIFNXU2VydmVyQ29ubmVjdGlv
bklkZW50aWZpZXIgY29ubmVjdGlvbklkZW50aWZpZXI7CiAgICAgU2VydmljZVdvcmtlclJlZ2lz
dHJhdGlvbktleSByZWdpc3RyYXRpb25LZXk7CiAgICAgU3RyaW5nIHNjcmlwdDsKICAgICBSZXNv
dXJjZUVycm9yIHNjcmlwdEVycm9yOwpAQCAtNTQsOCArNTUsMTIgQEAgYm9vbCBTZXJ2aWNlV29y
a2VyRmV0Y2hSZXN1bHQ6OmRlY29kZShEZWNvZGVyJiBkZWNvZGVyLCBTZXJ2aWNlV29ya2VyRmV0
Y2hSZXN1bHQKIHsKICAgICBpZiAoIWRlY29kZXIuZGVjb2RlKHJlc3VsdC5qb2JJZGVudGlmaWVy
KSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgIGlmICghZGVjb2Rlci5kZWNvZGUocmVzdWx0
LmNvbm5lY3Rpb25JZGVudGlmaWVyKSkKKworICAgIHN0ZDo6b3B0aW9uYWw8U1dTZXJ2ZXJDb25u
ZWN0aW9uSWRlbnRpZmllcj4gY29ubmVjdGlvbklkZW50aWZpZXI7CisgICAgZGVjb2RlciA+PiBj
b25uZWN0aW9uSWRlbnRpZmllcjsKKyAgICBpZiAoIWNvbm5lY3Rpb25JZGVudGlmaWVyKQogICAg
ICAgICByZXR1cm4gZmFsc2U7CisgICAgcmVzdWx0LmNvbm5lY3Rpb25JZGVudGlmaWVyID0gKmNv
bm5lY3Rpb25JZGVudGlmaWVyOwogICAgIAogICAgIGF1dG8gcmVnaXN0cmF0aW9uS2V5ID0gU2Vy
dmljZVdvcmtlclJlZ2lzdHJhdGlvbktleTo6ZGVjb2RlKGRlY29kZXIpOwogICAgIGlmICghcmVn
aXN0cmF0aW9uS2V5KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNl
L1NlcnZpY2VXb3JrZXJKb2JDbGllbnQuaCBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2Vydmlj
ZS9TZXJ2aWNlV29ya2VySm9iQ2xpZW50LmgKaW5kZXggNzE1YTljMzNjNWM4MGI1YTUzNWQ1NmU2
OGExODZhMjliY2VmZTg2YS4uMDJhOGM0NDdhM2Q5YmI1MTk4MTIxZTM5Y2U2YjQ2ZThiY2YyN2Iy
OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL1NlcnZpY2VXb3Jr
ZXJKb2JDbGllbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvU2Vydmlj
ZVdvcmtlckpvYkNsaWVudC5oCkBAIC0yNyw2ICsyNyw4IEBACiAKICNpZiBFTkFCTEUoU0VSVklD
RV9XT1JLRVIpCiAKKyNpbmNsdWRlICJTZXJ2aWNlV29ya2VyVHlwZXMuaCIKKwogbmFtZXNwYWNl
IFdlYkNvcmUgewogCiBjbGFzcyBFeGNlcHRpb247CkBAIC00Niw3ICs0OCw3IEBAIHB1YmxpYzoK
ICAgICB2aXJ0dWFsIHZvaWQgam9iRmluaXNoZWRMb2FkaW5nU2NyaXB0KFNlcnZpY2VXb3JrZXJK
b2ImLCBjb25zdCBTdHJpbmcmKSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIGpvYkZhaWxlZExvYWRp
bmdTY3JpcHQoU2VydmljZVdvcmtlckpvYiYsIGNvbnN0IFJlc291cmNlRXJyb3ImLCBzdGQ6Om9w
dGlvbmFsPEV4Y2VwdGlvbj4mJikgPSAwOwogCi0gICAgdmlydHVhbCB1aW50NjRfdCBjb25uZWN0
aW9uSWRlbnRpZmllcigpID0gMDsKKyAgICB2aXJ0dWFsIFNXU2VydmVyQ29ubmVjdGlvbklkZW50
aWZpZXIgY29ubmVjdGlvbklkZW50aWZpZXIoKSA9IDA7CiAKICAgICB2aXJ0dWFsIHZvaWQgcmVm
KCkgPSAwOwogICAgIHZpcnR1YWwgdm9pZCBkZXJlZigpID0gMDsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9TZXJ2aWNlV29ya2VySm9iRGF0YS5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvU2VydmljZVdvcmtlckpvYkRhdGEuY3BwCmluZGV4
IDE4MWU4NmVlNzJkNTAwNGUyNjhlZDQ2MGQ4Nzg3MDEyYzhhM2FlMDYuLmQ4YmM0M2ViMjZjNDk2
OTIzMmNhNDNhM2NiMTEyYjcyNjEyMGQ0Y2MgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3dv
cmtlcnMvc2VydmljZS9TZXJ2aWNlV29ya2VySm9iRGF0YS5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvd29ya2Vycy9zZXJ2aWNlL1NlcnZpY2VXb3JrZXJKb2JEYXRhLmNwcApAQCAtMzAsMTMgKzMw
LDEzIEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotU2VydmljZVdvcmtlckpvYkRhdGE6OlNl
cnZpY2VXb3JrZXJKb2JEYXRhKHVpbnQ2NF90IGpvYklkZW50aWZpZXIsIHVpbnQ2NF90IGNvbm5l
Y3Rpb25JZGVudGlmaWVyKQorU2VydmljZVdvcmtlckpvYkRhdGE6OlNlcnZpY2VXb3JrZXJKb2JE
YXRhKHVpbnQ2NF90IGpvYklkZW50aWZpZXIsIFNXU2VydmVyQ29ubmVjdGlvbklkZW50aWZpZXIg
Y29ubmVjdGlvbklkZW50aWZpZXIpCiAgICAgOiBUaHJlYWRTYWZlSWRlbnRpZmllZChqb2JJZGVu
dGlmaWVyKQogICAgICwgbV9jb25uZWN0aW9uSWRlbnRpZmllcihjb25uZWN0aW9uSWRlbnRpZmll
cikKIHsKIH0KIAotU2VydmljZVdvcmtlckpvYkRhdGE6OlNlcnZpY2VXb3JrZXJKb2JEYXRhKHVp
bnQ2NF90IGNvbm5lY3Rpb25JZGVudGlmaWVyKQorU2VydmljZVdvcmtlckpvYkRhdGE6OlNlcnZp
Y2VXb3JrZXJKb2JEYXRhKFNXU2VydmVyQ29ubmVjdGlvbklkZW50aWZpZXIgY29ubmVjdGlvbklk
ZW50aWZpZXIpCiAgICAgOiBtX2Nvbm5lY3Rpb25JZGVudGlmaWVyKGNvbm5lY3Rpb25JZGVudGlm
aWVyKQogewogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL1Nl
cnZpY2VXb3JrZXJKb2JEYXRhLmggYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvU2Vy
dmljZVdvcmtlckpvYkRhdGEuaAppbmRleCBiNGE2Njk1YzI4MWUxMzBlOGJlNzBjMjEzZjkzMDc4
ZmZkOTdhNzczLi44YjQ2N2E5NmFmYzRkMWI5NTFhODczMWYyODYzZTNjYWI2ZTcxOWYwIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvU2VydmljZVdvcmtlckpvYkRh
dGEuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvU2VydmljZVdvcmtlckpv
YkRhdGEuaApAQCAtMzEsNiArMzEsNyBAQAogI2luY2x1ZGUgIlNlcnZpY2VXb3JrZXJKb2JUeXBl
LmgiCiAjaW5jbHVkZSAiU2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbktleS5oIgogI2luY2x1ZGUg
IlNlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb25PcHRpb25zLmgiCisjaW5jbHVkZSAiU2VydmljZVdv
cmtlclR5cGVzLmgiCiAjaW5jbHVkZSAiVVJMLmgiCiAjaW5jbHVkZSA8d3RmL0lkZW50aWZpZWQu
aD4KIApAQCAtMzgsMTEgKzM5LDExIEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogc3RydWN0IFNl
cnZpY2VXb3JrZXJKb2JEYXRhIDogcHVibGljIFRocmVhZFNhZmVJZGVudGlmaWVkPFNlcnZpY2VX
b3JrZXJKb2JEYXRhPiB7CiBwdWJsaWM6Ci0gICAgZXhwbGljaXQgU2VydmljZVdvcmtlckpvYkRh
dGEodWludDY0X3QgY29ubmVjdGlvbklkZW50aWZpZXIpOworICAgIGV4cGxpY2l0IFNlcnZpY2VX
b3JrZXJKb2JEYXRhKFNXU2VydmVyQ29ubmVjdGlvbklkZW50aWZpZXIpOwogICAgIFNlcnZpY2VX
b3JrZXJKb2JEYXRhKGNvbnN0IFNlcnZpY2VXb3JrZXJKb2JEYXRhJikgPSBkZWZhdWx0OwogICAg
IFNlcnZpY2VXb3JrZXJKb2JEYXRhKCkgPSBkZWZhdWx0OwogCi0gICAgdWludDY0X3QgY29ubmVj
dGlvbklkZW50aWZpZXIoKSBjb25zdCB7IHJldHVybiBtX2Nvbm5lY3Rpb25JZGVudGlmaWVyOyB9
CisgICAgU1dTZXJ2ZXJDb25uZWN0aW9uSWRlbnRpZmllciBjb25uZWN0aW9uSWRlbnRpZmllcigp
IGNvbnN0IHsgcmV0dXJuIG1fY29ubmVjdGlvbklkZW50aWZpZXI7IH0KIAogICAgIFVSTCBzY3Jp
cHRVUkw7CiAgICAgVVJMIGNsaWVudENyZWF0aW9uVVJMOwpAQCAtNTksOSArNjAsOSBAQCBwdWJs
aWM6CiAgICAgdGVtcGxhdGU8Y2xhc3MgRGVjb2Rlcj4gc3RhdGljIHN0ZDo6b3B0aW9uYWw8U2Vy
dmljZVdvcmtlckpvYkRhdGE+IGRlY29kZShEZWNvZGVyJik7CiAKIHByaXZhdGU6Ci0gICAgV0VC
Q09SRV9FWFBPUlQgU2VydmljZVdvcmtlckpvYkRhdGEodWludDY0X3Qgam9iSWRlbnRpZmllciwg
dWludDY0X3QgY29ubmVjdGlvbklkZW50aWZpZXIpOworICAgIFdFQkNPUkVfRVhQT1JUIFNlcnZp
Y2VXb3JrZXJKb2JEYXRhKHVpbnQ2NF90IGpvYklkZW50aWZpZXIsIFNXU2VydmVyQ29ubmVjdGlv
bklkZW50aWZpZXIpOwogCi0gICAgdWludDY0X3QgbV9jb25uZWN0aW9uSWRlbnRpZmllciB7IDAg
fTsKKyAgICBTV1NlcnZlckNvbm5lY3Rpb25JZGVudGlmaWVyIG1fY29ubmVjdGlvbklkZW50aWZp
ZXI7CiB9OwogCiB0ZW1wbGF0ZTxjbGFzcyBFbmNvZGVyPgpAQCAtODYsMTEgKzg3LDEyIEBAIHN0
ZDo6b3B0aW9uYWw8U2VydmljZVdvcmtlckpvYkRhdGE+IFNlcnZpY2VXb3JrZXJKb2JEYXRhOjpk
ZWNvZGUoRGVjb2RlciYgZGVjb2RlCiAgICAgaWYgKCFkZWNvZGVyLmRlY29kZShqb2JJZGVudGlm
aWVyKSkKICAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKIAotICAgIHVpbnQ2NF90IGNvbm5l
Y3Rpb25JZGVudGlmaWVyOwotICAgIGlmICghZGVjb2Rlci5kZWNvZGUoY29ubmVjdGlvbklkZW50
aWZpZXIpKQorICAgIHN0ZDo6b3B0aW9uYWw8U1dTZXJ2ZXJDb25uZWN0aW9uSWRlbnRpZmllcj4g
Y29ubmVjdGlvbklkZW50aWZpZXI7CisgICAgZGVjb2RlciA+PiBjb25uZWN0aW9uSWRlbnRpZmll
cjsKKyAgICBpZiAoIWNvbm5lY3Rpb25JZGVudGlmaWVyKQogICAgICAgICByZXR1cm4gc3RkOjpu
dWxsb3B0OwogCi0gICAgc3RkOjpvcHRpb25hbDxTZXJ2aWNlV29ya2VySm9iRGF0YT4gam9iRGF0
YSA9IHsgeyBqb2JJZGVudGlmaWVyLCBjb25uZWN0aW9uSWRlbnRpZmllciB9IH07CisgICAgc3Rk
OjpvcHRpb25hbDxTZXJ2aWNlV29ya2VySm9iRGF0YT4gam9iRGF0YSA9IHsgeyBqb2JJZGVudGlm
aWVyLCAqY29ubmVjdGlvbklkZW50aWZpZXIgfSB9OwogCiAgICAgaWYgKCFkZWNvZGVyLmRlY29k
ZShqb2JEYXRhLT5zY3JpcHRVUkwpKQogICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL1NlcnZpY2VXb3JrZXJUeXBl
cy5oIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL1NlcnZpY2VXb3JrZXJUeXBlcy5o
CmluZGV4IGIzMjNiODllNjdlY2E0OTdiMDdmN2Y3MGFmOGFhZWMxN2MzZGMxNjYuLjE5NTM0ZDE4
NzUwYTFmYTA4ZWM4NzU0ZDRiYjRmNTM2OGY3YWZkMTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3dvcmtlcnMvc2VydmljZS9TZXJ2aWNlV29ya2VyVHlwZXMuaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS93b3JrZXJzL3NlcnZpY2UvU2VydmljZVdvcmtlclR5cGVzLmgKQEAgLTYxLDYgKzYxLDkg
QEAgdXNpbmcgU2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbklkZW50aWZpZXIgPSBPYmplY3RJZGVu
dGlmaWVyPFNlcnZpY2VXb3JrZXJSZWdpc3QKIGVudW0gU1dTZXJ2ZXJUb0NvbnRleHRDb25uZWN0
aW9uSWRlbnRpZmllclR5cGUgeyB9OwogdXNpbmcgU1dTZXJ2ZXJUb0NvbnRleHRDb25uZWN0aW9u
SWRlbnRpZmllciA9IE9iamVjdElkZW50aWZpZXI8U1dTZXJ2ZXJUb0NvbnRleHRDb25uZWN0aW9u
SWRlbnRpZmllclR5cGU+OwogCitlbnVtIFNXU2VydmVyQ29ubmVjdGlvbklkZW50aWZpZXJUeXBl
IHsgfTsKK3VzaW5nIFNXU2VydmVyQ29ubmVjdGlvbklkZW50aWZpZXIgPSBPYmplY3RJZGVudGlm
aWVyPFNXU2VydmVyQ29ubmVjdGlvbklkZW50aWZpZXJUeXBlPjsKKwogfSAvLyBuYW1lc3BhY2Ug
V2ViQ29yZQogCiBuYW1lc3BhY2UgV1RGIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3dv
cmtlcnMvc2VydmljZS9TZXJ2aWNlV29ya2VyV2luZG93Q2xpZW50LmNwcCBiL1NvdXJjZS9XZWJD
b3JlL3dvcmtlcnMvc2VydmljZS9TZXJ2aWNlV29ya2VyV2luZG93Q2xpZW50LmNwcAppbmRleCBh
YjNjNzViODUxMzE2ZDlkM2VlZjkyODkyOTZkYTc5YzE5M2EyMDJiLi40ZmViOTA4MmQ1ZmE4Y2Nh
ZjA0ZmYwYjczOTNiZTczNzVmNDlkZGMzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS93b3Jr
ZXJzL3NlcnZpY2UvU2VydmljZVdvcmtlcldpbmRvd0NsaWVudC5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvd29ya2Vycy9zZXJ2aWNlL1NlcnZpY2VXb3JrZXJXaW5kb3dDbGllbnQuY3BwCkBAIC0z
Miw4ICszMiw4IEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotU2VydmljZVdvcmtlcldpbmRv
d0NsaWVudDo6U2VydmljZVdvcmtlcldpbmRvd0NsaWVudChTY3JpcHRFeGVjdXRpb25Db250ZXh0
JiBjb250ZXh0LCBTZXJ2aWNlV29ya2VyQ2xpZW50RGF0YSYmIGRhdGEpCi0gICAgOiBTZXJ2aWNl
V29ya2VyQ2xpZW50KGNvbnRleHQsIFdURk1vdmUoZGF0YSkpCitTZXJ2aWNlV29ya2VyV2luZG93
Q2xpZW50OjpTZXJ2aWNlV29ya2VyV2luZG93Q2xpZW50KFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQm
IGNvbnRleHQsIFNlcnZpY2VXb3JrZXJDbGllbnRJZGVudGlmaWVyIGlkZW50aWZpZXIsIFNlcnZp
Y2VXb3JrZXJDbGllbnREYXRhJiYgZGF0YSkKKyAgICA6IFNlcnZpY2VXb3JrZXJDbGllbnQoY29u
dGV4dCwgaWRlbnRpZmllciwgV1RGTW92ZShkYXRhKSkKIHsKIH0KIApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL1NlcnZpY2VXb3JrZXJXaW5kb3dDbGllbnQuaCBi
L1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9TZXJ2aWNlV29ya2VyV2luZG93Q2xpZW50
LmgKaW5kZXggNTU1ZWU3OWMzMDE5YWEwMTQ4YmJjMjdjNDYwMTFkY2FiZTlkYzhlMy4uYzdiNDU0
YWNlZmRlMDRjMGUxODYzZDkxNjg2OWUwMjg4NzMwMDg5ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvd29ya2Vycy9zZXJ2aWNlL1NlcnZpY2VXb3JrZXJXaW5kb3dDbGllbnQuaAorKysgYi9T
b3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvU2VydmljZVdvcmtlcldpbmRvd0NsaWVudC5o
CkBAIC0zNiw5ICszNiw5IEBAIGNsYXNzIERlZmVycmVkUHJvbWlzZTsKIAogY2xhc3MgU2Vydmlj
ZVdvcmtlcldpbmRvd0NsaWVudCBmaW5hbCA6IHB1YmxpYyBTZXJ2aWNlV29ya2VyQ2xpZW50IHsK
IHB1YmxpYzoKLSAgICBzdGF0aWMgUmVmPFNlcnZpY2VXb3JrZXJXaW5kb3dDbGllbnQ+IGNyZWF0
ZShTY3JpcHRFeGVjdXRpb25Db250ZXh0JiBjb250ZXh0LCBTZXJ2aWNlV29ya2VyQ2xpZW50RGF0
YSYmIGRhdGEpCisgICAgc3RhdGljIFJlZjxTZXJ2aWNlV29ya2VyV2luZG93Q2xpZW50PiBjcmVh
dGUoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYgY29udGV4dCwgU2VydmljZVdvcmtlckNsaWVudElk
ZW50aWZpZXIgaWRlbnRpZmllciwgU2VydmljZVdvcmtlckNsaWVudERhdGEmJiBkYXRhKQogICAg
IHsKLSAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgU2VydmljZVdvcmtlcldpbmRvd0NsaWVu
dChjb250ZXh0LCBXVEZNb3ZlKGRhdGEpKSk7CisgICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3
IFNlcnZpY2VXb3JrZXJXaW5kb3dDbGllbnQoY29udGV4dCwgaWRlbnRpZmllciwgV1RGTW92ZShk
YXRhKSkpOwogICAgIH0KIAogICAgIFZpc2liaWxpdHlTdGF0ZSB2aXNpYmlsaXR5U3RhdGUoKSBj
b25zdDsKQEAgLTQ4LDcgKzQ4LDcgQEAgcHVibGljOgogICAgIHZvaWQgbmF2aWdhdGUoY29uc3Qg
U3RyaW5nJiB1cmwsIFJlZjxEZWZlcnJlZFByb21pc2U+JiYpOwogCiBwcml2YXRlOgotICAgIFNl
cnZpY2VXb3JrZXJXaW5kb3dDbGllbnQoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYsIFNlcnZpY2VX
b3JrZXJDbGllbnREYXRhJiYpOworICAgIFNlcnZpY2VXb3JrZXJXaW5kb3dDbGllbnQoU2NyaXB0
RXhlY3V0aW9uQ29udGV4dCYsIFNlcnZpY2VXb3JrZXJDbGllbnRJZGVudGlmaWVyLCBTZXJ2aWNl
V29ya2VyQ2xpZW50RGF0YSYmKTsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9jb250ZXh0L1NXQ29udGV4dE1h
bmFnZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL2NvbnRleHQvU1dDb250
ZXh0TWFuYWdlci5jcHAKaW5kZXggOWFkODNhMjY3MWQzMTA0NGNhYzg5ZTVmMGNiNDdlZDY5ODgz
NGU2OC4uNDgyNzhjOGIyNTg0MGIyYzAxZTExNTU2MzMxODgxOTY2ZWEyZmQ1MyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL2NvbnRleHQvU1dDb250ZXh0TWFuYWdl
ci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL2NvbnRleHQvU1dDb250
ZXh0TWFuYWdlci5jcHAKQEAgLTI3LDYgKzI3LDcgQEAKIAogI2lmIEVOQUJMRShTRVJWSUNFX1dP
UktFUikKICNpbmNsdWRlICJTV0NvbnRleHRNYW5hZ2VyLmgiCisjaW5jbHVkZSAiU2VydmljZVdv
cmtlckNsaWVudElkZW50aWZpZXIuaCIKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCkBAIC02NCwx
NCArNjUsMTQgQEAgU2VydmljZVdvcmtlclRocmVhZFByb3h5KiBTV0NvbnRleHRNYW5hZ2VyOjpz
ZXJ2aWNlV29ya2VyVGhyZWFkUHJveHkoU2VydmljZVdvcmsKICAgICByZXR1cm4gbV93b3JrZXJN
YXAuZ2V0KGlkZW50aWZpZXIpOwogfQogCi12b2lkIFNXQ29udGV4dE1hbmFnZXI6OnBvc3RNZXNz
YWdlVG9TZXJ2aWNlV29ya2VyR2xvYmFsU2NvcGUoU2VydmljZVdvcmtlcklkZW50aWZpZXIgZGVz
dGluYXRpb24sIFJlZjxTZXJpYWxpemVkU2NyaXB0VmFsdWU+JiYgbWVzc2FnZSwgU2VydmljZVdv
cmtlckNsaWVudERhdGEmJiBzb3VyY2UpCit2b2lkIFNXQ29udGV4dE1hbmFnZXI6OnBvc3RNZXNz
YWdlVG9TZXJ2aWNlV29ya2VyR2xvYmFsU2NvcGUoU2VydmljZVdvcmtlcklkZW50aWZpZXIgZGVz
dGluYXRpb24sIFJlZjxTZXJpYWxpemVkU2NyaXB0VmFsdWU+JiYgbWVzc2FnZSwgU2VydmljZVdv
cmtlckNsaWVudElkZW50aWZpZXIgc291cmNlSWRlbnRpZmllciwgU2VydmljZVdvcmtlckNsaWVu
dERhdGEmJiBzb3VyY2VEYXRhKQogewogICAgIGF1dG8qIHNlcnZpY2VXb3JrZXIgPSBtX3dvcmtl
ck1hcC5nZXQoZGVzdGluYXRpb24pOwogICAgIGlmICghc2VydmljZVdvcmtlcikKICAgICAgICAg
cmV0dXJuOwogCiAgICAgLy8gRklYTUU6IFdlIHNob3VsZCBwYXNzIHZhbGlkIE1lc3NhZ2VQb3J0
Q2hhbm5lbHMuCi0gICAgc2VydmljZVdvcmtlci0+dGhyZWFkKCkucG9zdE1lc3NhZ2VUb1NlcnZp
Y2VXb3JrZXJHbG9iYWxTY29wZShXVEZNb3ZlKG1lc3NhZ2UpLCBudWxscHRyLCBXVEZNb3ZlKHNv
dXJjZSkpOworICAgIHNlcnZpY2VXb3JrZXItPnRocmVhZCgpLnBvc3RNZXNzYWdlVG9TZXJ2aWNl
V29ya2VyR2xvYmFsU2NvcGUoV1RGTW92ZShtZXNzYWdlKSwgbnVsbHB0ciwgc291cmNlSWRlbnRp
ZmllciwgV1RGTW92ZShzb3VyY2VEYXRhKSk7CiB9CiAKIHZvaWQgU1dDb250ZXh0TWFuYWdlcjo6
ZmlyZUluc3RhbGxFdmVudChTZXJ2aWNlV29ya2VySWRlbnRpZmllciBpZGVudGlmaWVyKQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL2NvbnRleHQvU1dDb250ZXh0
TWFuYWdlci5oIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL2NvbnRleHQvU1dDb250
ZXh0TWFuYWdlci5oCmluZGV4IDczZTkyNDcxOWE5ZDQ1MjJkZWQwMzg2OGQzMzBmODEwZmI3M2Fl
OWQuLjYxNWNlMDc0NzQ2NzY0ODY2YjczYjM2MTk5MDYzMmQ4NTMwZjY4MDkgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9jb250ZXh0L1NXQ29udGV4dE1hbmFnZXIu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvY29udGV4dC9TV0NvbnRleHRN
YW5hZ2VyLmgKQEAgLTU4LDcgKzU4LDcgQEAgcHVibGljOgogCiAgICAgV0VCQ09SRV9FWFBPUlQg
dm9pZCByZWdpc3RlclNlcnZpY2VXb3JrZXJUaHJlYWRGb3JJbnN0YWxsKFJlZjxTZXJ2aWNlV29y
a2VyVGhyZWFkUHJveHk+JiYpOwogICAgIFdFQkNPUkVfRVhQT1JUIFNlcnZpY2VXb3JrZXJUaHJl
YWRQcm94eSogc2VydmljZVdvcmtlclRocmVhZFByb3h5KFNlcnZpY2VXb3JrZXJJZGVudGlmaWVy
KSBjb25zdDsKLSAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHBvc3RNZXNzYWdlVG9TZXJ2aWNlV29y
a2VyR2xvYmFsU2NvcGUoU2VydmljZVdvcmtlcklkZW50aWZpZXIgZGVzdGluYXRpb24sIFJlZjxT
ZXJpYWxpemVkU2NyaXB0VmFsdWU+JiYgbWVzc2FnZSwgU2VydmljZVdvcmtlckNsaWVudERhdGEm
JiBzb3VyY2UpOworICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgcG9zdE1lc3NhZ2VUb1NlcnZpY2VX
b3JrZXJHbG9iYWxTY29wZShTZXJ2aWNlV29ya2VySWRlbnRpZmllciBkZXN0aW5hdGlvbiwgUmVm
PFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZT4mJiBtZXNzYWdlLCBTZXJ2aWNlV29ya2VyQ2xpZW50SWRl
bnRpZmllciBzb3VyY2VJZGVudGlmaWVyLCBTZXJ2aWNlV29ya2VyQ2xpZW50RGF0YSYmIHNvdXJj
ZURhdGEpOwogICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgZmlyZUluc3RhbGxFdmVudChTZXJ2aWNl
V29ya2VySWRlbnRpZmllcik7CiAgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBmaXJlQWN0aXZhdGVF
dmVudChTZXJ2aWNlV29ya2VySWRlbnRpZmllcik7CiAgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCB0
ZXJtaW5hdGVXb3JrZXIoU2VydmljZVdvcmtlcklkZW50aWZpZXIpOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL2NvbnRleHQvU2VydmljZVdvcmtlclRocmVhZC5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvY29udGV4dC9TZXJ2aWNlV29ya2Vy
VGhyZWFkLmNwcAppbmRleCA4YWFmZjMxMTg4YzQyNjVjMWQ0YTA2OWI3Nzk3OGJiODAwYTMwNjk3
Li5kOTJlNTU0ZjlkNTU1NjBmMzc5OGE2YTU4Mzg5Y2MzOGUyMGI3ZTUxIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvY29udGV4dC9TZXJ2aWNlV29ya2VyVGhyZWFk
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvY29udGV4dC9TZXJ2aWNl
V29ya2VyVGhyZWFkLmNwcApAQCAtMTA0LDEyICsxMDQsMTIgQEAgdm9pZCBTZXJ2aWNlV29ya2Vy
VGhyZWFkOjpwb3N0RmV0Y2hUYXNrKFJlZjxTZXJ2aWNlV29ya2VyRmV0Y2g6OkNsaWVudD4mJiBj
bGllbnQKICAgICB9LCBXb3JrZXJSdW5Mb29wOjpkZWZhdWx0TW9kZSgpKTsKIH0KIAotdm9pZCBT
ZXJ2aWNlV29ya2VyVGhyZWFkOjpwb3N0TWVzc2FnZVRvU2VydmljZVdvcmtlckdsb2JhbFNjb3Bl
KFJlZjxTZXJpYWxpemVkU2NyaXB0VmFsdWU+JiYgbWVzc2FnZSwgc3RkOjp1bmlxdWVfcHRyPE1l
c3NhZ2VQb3J0Q2hhbm5lbEFycmF5PiYmIGNoYW5uZWxzLCBTZXJ2aWNlV29ya2VyQ2xpZW50RGF0
YSYmIHNvdXJjZSkKK3ZvaWQgU2VydmljZVdvcmtlclRocmVhZDo6cG9zdE1lc3NhZ2VUb1NlcnZp
Y2VXb3JrZXJHbG9iYWxTY29wZShSZWY8U2VyaWFsaXplZFNjcmlwdFZhbHVlPiYmIG1lc3NhZ2Us
IHN0ZDo6dW5pcXVlX3B0cjxNZXNzYWdlUG9ydENoYW5uZWxBcnJheT4mJiBjaGFubmVscywgU2Vy
dmljZVdvcmtlckNsaWVudElkZW50aWZpZXIgc291cmNlSWRlbnRpZmllciwgU2VydmljZVdvcmtl
ckNsaWVudERhdGEmJiBzb3VyY2VEYXRhKQogewotICAgIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQ6
OlRhc2sgdGFzayhbdGhpcywgY2hhbm5lbHMgPSBXVEZNb3ZlKGNoYW5uZWxzKSwgbWVzc2FnZSA9
IFdURk1vdmUobWVzc2FnZSksIHNvdXJjZURhdGEgPSBzb3VyY2UuaXNvbGF0ZWRDb3B5KCldIChT
Y3JpcHRFeGVjdXRpb25Db250ZXh0JiBjb250ZXh0KSBtdXRhYmxlIHsKKyAgICBTY3JpcHRFeGVj
dXRpb25Db250ZXh0OjpUYXNrIHRhc2soW3RoaXMsIGNoYW5uZWxzID0gV1RGTW92ZShjaGFubmVs
cyksIG1lc3NhZ2UgPSBXVEZNb3ZlKG1lc3NhZ2UpLCBzb3VyY2VJZGVudGlmaWVyLCBzb3VyY2VE
YXRhID0gc291cmNlRGF0YS5pc29sYXRlZENvcHkoKV0gKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQm
IGNvbnRleHQpIG11dGFibGUgewogICAgICAgICBhdXRvJiBzZXJ2aWNlV29ya2VyR2xvYmFsU2Nv
cGUgPSBkb3duY2FzdDxTZXJ2aWNlV29ya2VyR2xvYmFsU2NvcGU+KGNvbnRleHQpOwogICAgICAg
ICBhdXRvIHBvcnRzID0gTWVzc2FnZVBvcnQ6OmVudGFuZ2xlUG9ydHMoc2VydmljZVdvcmtlckds
b2JhbFNjb3BlLCBXVEZNb3ZlKGNoYW5uZWxzKSk7Ci0gICAgICAgIFJlZlB0cjxTZXJ2aWNlV29y
a2VyQ2xpZW50PiBzb3VyY2UgPSBTZXJ2aWNlV29ya2VyV2luZG93Q2xpZW50OjpjcmVhdGUoY29u
dGV4dCwgV1RGTW92ZShzb3VyY2VEYXRhKSk7CisgICAgICAgIFJlZlB0cjxTZXJ2aWNlV29ya2Vy
Q2xpZW50PiBzb3VyY2UgPSBTZXJ2aWNlV29ya2VyV2luZG93Q2xpZW50OjpjcmVhdGUoY29udGV4
dCwgc291cmNlSWRlbnRpZmllciwgV1RGTW92ZShzb3VyY2VEYXRhKSk7CiAgICAgICAgIGF1dG8g
c291cmNlT3JpZ2luID0gU2VjdXJpdHlPcmlnaW46OmNyZWF0ZShzb3VyY2UtPnVybCgpKTsKICAg
ICAgICAgYXV0byBtZXNzYWdlRXZlbnQgPSBFeHRlbmRhYmxlTWVzc2FnZUV2ZW50OjpjcmVhdGUo
V1RGTW92ZShwb3J0cyksIFdURk1vdmUobWVzc2FnZSksIHNvdXJjZU9yaWdpbi0+dG9TdHJpbmco
KSwgeyB9LCBFeHRlbmRhYmxlTWVzc2FnZUV2ZW50U291cmNlIHsgc291cmNlIH0pOwogICAgICAg
ICBzZXJ2aWNlV29ya2VyR2xvYmFsU2NvcGUuZGlzcGF0Y2hFdmVudChtZXNzYWdlRXZlbnQpOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL2NvbnRleHQvU2Vydmlj
ZVdvcmtlclRocmVhZC5oIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL2NvbnRleHQv
U2VydmljZVdvcmtlclRocmVhZC5oCmluZGV4IDZhMTA4MDY0ZDkwODc2MzAwNjZkMDE1YWZhOTI4
NTAwNTI0YjU1NDMuLmI0ZTI3MGI2ZjQ1NjQwY2JiOTMzMzBjM2ExMDJiZDVhN2RlYWI4YzYgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9jb250ZXh0L1NlcnZpY2VX
b3JrZXJUaHJlYWQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvY29udGV4
dC9TZXJ2aWNlV29ya2VyVGhyZWFkLmgKQEAgLTU3LDcgKzU3LDcgQEAgcHVibGljOgogICAgIFdv
cmtlck9iamVjdFByb3h5JiB3b3JrZXJPYmplY3RQcm94eSgpIGNvbnN0IHsgcmV0dXJuIG1fd29y
a2VyT2JqZWN0UHJveHk7IH0KIAogICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgcG9zdEZldGNoVGFz
ayhSZWY8U2VydmljZVdvcmtlckZldGNoOjpDbGllbnQ+JiYsIFJlc291cmNlUmVxdWVzdCYmLCBG
ZXRjaE9wdGlvbnMmJik7Ci0gICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBwb3N0TWVzc2FnZVRvU2Vy
dmljZVdvcmtlckdsb2JhbFNjb3BlKFJlZjxTZXJpYWxpemVkU2NyaXB0VmFsdWU+JiYsIHN0ZDo6
dW5pcXVlX3B0cjxNZXNzYWdlUG9ydENoYW5uZWxBcnJheT4mJiwgU2VydmljZVdvcmtlckNsaWVu
dERhdGEmJiBzb3VyY2UpOworICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgcG9zdE1lc3NhZ2VUb1Nl
cnZpY2VXb3JrZXJHbG9iYWxTY29wZShSZWY8U2VyaWFsaXplZFNjcmlwdFZhbHVlPiYmLCBzdGQ6
OnVuaXF1ZV9wdHI8TWVzc2FnZVBvcnRDaGFubmVsQXJyYXk+JiYsIFNlcnZpY2VXb3JrZXJDbGll
bnRJZGVudGlmaWVyIHNvdXJjZUlkZW50aWZpZXIsIFNlcnZpY2VXb3JrZXJDbGllbnREYXRhJiYg
c291cmNlRGF0YSk7CiAgICAgdm9pZCBmaXJlSW5zdGFsbEV2ZW50KCk7CiAgICAgdm9pZCBmaXJl
QWN0aXZhdGVFdmVudCgpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3Nl
cnZpY2Uvc2VydmVyL1NXQ2xpZW50Q29ubmVjdGlvbi5oIGIvU291cmNlL1dlYkNvcmUvd29ya2Vy
cy9zZXJ2aWNlL3NlcnZlci9TV0NsaWVudENvbm5lY3Rpb24uaAppbmRleCBhOWU5ZDkwZjllOWFj
MWJmZTRkOTlkMDk5MDAyOWZiMjUxMTAxMmVmLi43MzQzMmEyMzYyY2QxNDcwNmZhYTM0MzEyMmU0
Yzg1ZjQ5MTkzNjRkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2Uv
c2VydmVyL1NXQ2xpZW50Q29ubmVjdGlvbi5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMv
c2VydmljZS9zZXJ2ZXIvU1dDbGllbnRDb25uZWN0aW9uLmgKQEAgLTY4LDggKzY4LDggQEAgcHVi
bGljOgogCiAgICAgdmlydHVhbCB2b2lkIGRpZFJlc29sdmVSZWdpc3RyYXRpb25Qcm9taXNlKGNv
bnN0IFNlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb25LZXkmKSA9IDA7CiAKLSAgICB2aXJ0dWFsIHZv
aWQgcG9zdE1lc3NhZ2VUb1NlcnZpY2VXb3JrZXJHbG9iYWxTY29wZShTZXJ2aWNlV29ya2VySWRl
bnRpZmllciBkZXN0aW5hdGlvbklkZW50aWZpZXIsIFJlZjxTZXJpYWxpemVkU2NyaXB0VmFsdWU+
JiYsIFNlcnZpY2VXb3JrZXJDbGllbnREYXRhJiYgc291cmNlKSA9IDA7Ci0gICAgdmlydHVhbCB1
aW50NjRfdCBpZGVudGlmaWVyKCkgY29uc3QgPSAwOworICAgIHZpcnR1YWwgdm9pZCBwb3N0TWVz
c2FnZVRvU2VydmljZVdvcmtlckdsb2JhbFNjb3BlKFNlcnZpY2VXb3JrZXJJZGVudGlmaWVyIGRl
c3RpbmF0aW9uSWRlbnRpZmllciwgUmVmPFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZT4mJiwgdWludDY0
X3Qgc291cmNlQ29udGV4dElkZW50aWZpZXIsIFNlcnZpY2VXb3JrZXJDbGllbnREYXRhJiYgc291
cmNlKSA9IDA7CisgICAgdmlydHVhbCBTV1NlcnZlckNvbm5lY3Rpb25JZGVudGlmaWVyIHNlcnZl
ckNvbm5lY3Rpb25JZGVudGlmaWVyKCkgY29uc3QgPSAwOwogICAgIHZpcnR1YWwgYm9vbCBtYXlI
YXZlU2VydmljZVdvcmtlclJlZ2lzdGVyZWRGb3JPcmlnaW4oY29uc3QgU2VjdXJpdHlPcmlnaW4m
KSBjb25zdCA9IDA7CiAKICAgICB2aXJ0dWFsIHZvaWQgc2VydmljZVdvcmtlclN0YXJ0ZWRDb250
cm9sbGluZ0NsaWVudChTZXJ2aWNlV29ya2VySWRlbnRpZmllciwgdWludDY0X3Qgc2NyaXB0RXhl
Y3V0aW9uQ29udGV4dElkZW50aWZpZXIpID0gMDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3dvcmtlcnMvc2VydmljZS9zZXJ2ZXIvU1dTZXJ2ZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvd29y
a2Vycy9zZXJ2aWNlL3NlcnZlci9TV1NlcnZlci5jcHAKaW5kZXggYTFjNThmY2U5ZjRlZWEzMzI5
NmZhMTk5MTljMDc4MDg1MDM5Zjg2Ni4uMTViOWUwMzg4NzkwMDRlMzQ1YzRiNGU2Y2ZkNWM2ZDQy
OWEwOGI0YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL3NlcnZl
ci9TV1NlcnZlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL3NlcnZl
ci9TV1NlcnZlci5jcHAKQEAgLTUwLDkgKzUwLDkgQEAgc3RhdGljIFNlcnZpY2VXb3JrZXJJZGVu
dGlmaWVyIGdlbmVyYXRlU2VydmljZVdvcmtlcklkZW50aWZpZXIoKQogICAgIHJldHVybiBnZW5l
cmF0ZU9iamVjdElkZW50aWZpZXI8U2VydmljZVdvcmtlcklkZW50aWZpZXJUeXBlPigpOwogfQog
Ci1TV1NlcnZlcjo6Q29ubmVjdGlvbjo6Q29ubmVjdGlvbihTV1NlcnZlciYgc2VydmVyLCB1aW50
NjRfdCBpZGVudGlmaWVyKQotICAgIDogSWRlbnRpZmllZChpZGVudGlmaWVyKQotICAgICwgbV9z
ZXJ2ZXIoc2VydmVyKQorU1dTZXJ2ZXI6OkNvbm5lY3Rpb246OkNvbm5lY3Rpb24oU1dTZXJ2ZXIm
IHNlcnZlcikKKyAgICA6IG1fc2VydmVyKHNlcnZlcikKKyAgICAsIG1faWRlbnRpZmllcihnZW5l
cmF0ZU9iamVjdElkZW50aWZpZXI8U1dTZXJ2ZXJDb25uZWN0aW9uSWRlbnRpZmllclR5cGU+KCkp
CiB7CiAgICAgbV9zZXJ2ZXIucmVnaXN0ZXJDb25uZWN0aW9uKCp0aGlzKTsKIH0KQEAgLTE0NCw3
ICsxNDQsNyBAQCB2b2lkIFNXU2VydmVyOjpjbGVhcihjb25zdCBTZWN1cml0eU9yaWdpbiYgb3Jp
Z2luKQogCiB2b2lkIFNXU2VydmVyOjpDb25uZWN0aW9uOjpzY2hlZHVsZUpvYkluU2VydmVyKGNv
bnN0IFNlcnZpY2VXb3JrZXJKb2JEYXRhJiBqb2JEYXRhKQogewotICAgIExPRyhTZXJ2aWNlV29y
a2VyLCAiU2NoZWR1bGluZyBTZXJ2aWNlV29ya2VyIGpvYiAlIiBQUkl1NjQgIi0lIiBQUkl1NjQg
IiBpbiBzZXJ2ZXIiLCBqb2JEYXRhLmNvbm5lY3Rpb25JZGVudGlmaWVyKCksIGpvYkRhdGEuaWRl
bnRpZmllcigpKTsKKyAgICBMT0coU2VydmljZVdvcmtlciwgIlNjaGVkdWxpbmcgU2VydmljZVdv
cmtlciBqb2IgJXMtJSIgUFJJdTY0ICIgaW4gc2VydmVyIiwgam9iRGF0YS5jb25uZWN0aW9uSWRl
bnRpZmllcigpLmxvZ2dpbmdTdHJpbmcoKS51dGY4KCkuZGF0YSgpLCBqb2JEYXRhLmlkZW50aWZp
ZXIoKSk7CiAgICAgQVNTRVJUKGlkZW50aWZpZXIoKSA9PSBqb2JEYXRhLmNvbm5lY3Rpb25JZGVu
dGlmaWVyKCkpOwogCiAgICAgbV9zZXJ2ZXIuc2NoZWR1bGVKb2Ioam9iRGF0YSk7CkBAIC0yMDgs
NyArMjA4LDcgQEAgdm9pZCBTV1NlcnZlcjo6c2NoZWR1bGVKb2IoY29uc3QgU2VydmljZVdvcmtl
ckpvYkRhdGEmIGpvYkRhdGEpCiAKIHZvaWQgU1dTZXJ2ZXI6OnJlamVjdEpvYihjb25zdCBTZXJ2
aWNlV29ya2VySm9iRGF0YSYgam9iRGF0YSwgY29uc3QgRXhjZXB0aW9uRGF0YSYgZXhjZXB0aW9u
RGF0YSkKIHsKLSAgICBMT0coU2VydmljZVdvcmtlciwgIlJlamVjdGVkIFNlcnZpY2VXb3JrZXIg
am9iICUiIFBSSXU2NCAiLSUiIFBSSXU2NCAiIGluIHNlcnZlciIsIGpvYkRhdGEuY29ubmVjdGlv
bklkZW50aWZpZXIoKSwgam9iRGF0YS5pZGVudGlmaWVyKCkpOworICAgIExPRyhTZXJ2aWNlV29y
a2VyLCAiUmVqZWN0ZWQgU2VydmljZVdvcmtlciBqb2IgJXMtJSIgUFJJdTY0ICIgaW4gc2VydmVy
Iiwgam9iRGF0YS5jb25uZWN0aW9uSWRlbnRpZmllcigpLmxvZ2dpbmdTdHJpbmcoKS51dGY4KCku
ZGF0YSgpLCBqb2JEYXRhLmlkZW50aWZpZXIoKSk7CiAgICAgYXV0byogY29ubmVjdGlvbiA9IG1f
Y29ubmVjdGlvbnMuZ2V0KGpvYkRhdGEuY29ubmVjdGlvbklkZW50aWZpZXIoKSk7CiAgICAgaWYg
KCFjb25uZWN0aW9uKQogICAgICAgICByZXR1cm47CkBAIC0yMTgsNyArMjE4LDcgQEAgdm9pZCBT
V1NlcnZlcjo6cmVqZWN0Sm9iKGNvbnN0IFNlcnZpY2VXb3JrZXJKb2JEYXRhJiBqb2JEYXRhLCBj
b25zdCBFeGNlcHRpb25EYXQKIAogdm9pZCBTV1NlcnZlcjo6cmVzb2x2ZVJlZ2lzdHJhdGlvbkpv
Yihjb25zdCBTZXJ2aWNlV29ya2VySm9iRGF0YSYgam9iRGF0YSwgY29uc3QgU2VydmljZVdvcmtl
clJlZ2lzdHJhdGlvbkRhdGEmIHJlZ2lzdHJhdGlvbkRhdGEsIFNob3VsZE5vdGlmeVdoZW5SZXNv
bHZlZCBzaG91bGROb3RpZnlXaGVuUmVzb2x2ZWQpCiB7Ci0gICAgTE9HKFNlcnZpY2VXb3JrZXIs
ICJSZXNvbHZlZCBTZXJ2aWNlV29ya2VyIGpvYiAlIiBQUkl1NjQgIi0lIiBQUkl1NjQgIiBpbiBz
ZXJ2ZXIgd2l0aCByZWdpc3RyYXRpb24gJXMiLCBqb2JEYXRhLmNvbm5lY3Rpb25JZGVudGlmaWVy
KCksIGpvYkRhdGEuaWRlbnRpZmllcigpLCByZWdpc3RyYXRpb25EYXRhLmlkZW50aWZpZXIubG9n
Z2luZ1N0cmluZygpLnV0ZjgoKS5kYXRhKCkpOworICAgIExPRyhTZXJ2aWNlV29ya2VyLCAiUmVz
b2x2ZWQgU2VydmljZVdvcmtlciBqb2IgJXMtJSIgUFJJdTY0ICIgaW4gc2VydmVyIHdpdGggcmVn
aXN0cmF0aW9uICVzIiwgam9iRGF0YS5jb25uZWN0aW9uSWRlbnRpZmllcigpLmxvZ2dpbmdTdHJp
bmcoKS51dGY4KCkuZGF0YSgpLCBqb2JEYXRhLmlkZW50aWZpZXIoKSwgcmVnaXN0cmF0aW9uRGF0
YS5pZGVudGlmaWVyLmxvZ2dpbmdTdHJpbmcoKS51dGY4KCkuZGF0YSgpKTsKICAgICBhdXRvKiBj
b25uZWN0aW9uID0gbV9jb25uZWN0aW9ucy5nZXQoam9iRGF0YS5jb25uZWN0aW9uSWRlbnRpZmll
cigpKTsKICAgICBpZiAoIWNvbm5lY3Rpb24pCiAgICAgICAgIHJldHVybjsKQEAgLTIzNyw3ICsy
MzcsNyBAQCB2b2lkIFNXU2VydmVyOjpyZXNvbHZlVW5yZWdpc3RyYXRpb25Kb2IoY29uc3QgU2Vy
dmljZVdvcmtlckpvYkRhdGEmIGpvYkRhdGEsIGNvbgogCiB2b2lkIFNXU2VydmVyOjpzdGFydFNj
cmlwdEZldGNoKGNvbnN0IFNlcnZpY2VXb3JrZXJKb2JEYXRhJiBqb2JEYXRhKQogewotICAgIExP
RyhTZXJ2aWNlV29ya2VyLCAiU2VydmVyIGlzc3Vpbmcgc3RhcnRTY3JpcHRGZXRjaCBmb3IgY3Vy
cmVudCBqb2IgJSIgUFJJdTY0ICItJSIgUFJJdTY0ICIgaW4gY2xpZW50Iiwgam9iRGF0YS5jb25u
ZWN0aW9uSWRlbnRpZmllcigpLCBqb2JEYXRhLmlkZW50aWZpZXIoKSk7CisgICAgTE9HKFNlcnZp
Y2VXb3JrZXIsICJTZXJ2ZXIgaXNzdWluZyBzdGFydFNjcmlwdEZldGNoIGZvciBjdXJyZW50IGpv
YiAlcy0lIiBQUkl1NjQgIiBpbiBjbGllbnQiLCBqb2JEYXRhLmNvbm5lY3Rpb25JZGVudGlmaWVy
KCkubG9nZ2luZ1N0cmluZygpLnV0ZjgoKS5kYXRhKCksIGpvYkRhdGEuaWRlbnRpZmllcigpKTsK
ICAgICBhdXRvKiBjb25uZWN0aW9uID0gbV9jb25uZWN0aW9ucy5nZXQoam9iRGF0YS5jb25uZWN0
aW9uSWRlbnRpZmllcigpKTsKICAgICBpZiAoIWNvbm5lY3Rpb24pCiAgICAgICAgIHJldHVybjsK
QEAgLTI0Nyw3ICsyNDcsNyBAQCB2b2lkIFNXU2VydmVyOjpzdGFydFNjcmlwdEZldGNoKGNvbnN0
IFNlcnZpY2VXb3JrZXJKb2JEYXRhJiBqb2JEYXRhKQogCiB2b2lkIFNXU2VydmVyOjpzY3JpcHRG
ZXRjaEZpbmlzaGVkKENvbm5lY3Rpb24mIGNvbm5lY3Rpb24sIGNvbnN0IFNlcnZpY2VXb3JrZXJG
ZXRjaFJlc3VsdCYgcmVzdWx0KQogewotICAgIExPRyhTZXJ2aWNlV29ya2VyLCAiU2VydmVyIGhh
bmRsaW5nIHNjcmlwdEZldGNoRmluaXNoZWQgZm9yIGN1cnJlbnQgam9iICUiIFBSSXU2NCAiLSUi
IFBSSXU2NCAiIGluIGNsaWVudCIsIHJlc3VsdC5jb25uZWN0aW9uSWRlbnRpZmllciwgcmVzdWx0
LmpvYklkZW50aWZpZXIpOworICAgIExPRyhTZXJ2aWNlV29ya2VyLCAiU2VydmVyIGhhbmRsaW5n
IHNjcmlwdEZldGNoRmluaXNoZWQgZm9yIGN1cnJlbnQgam9iICVzLSUiIFBSSXU2NCAiIGluIGNs
aWVudCIsIHJlc3VsdC5jb25uZWN0aW9uSWRlbnRpZmllci5sb2dnaW5nU3RyaW5nKCkudXRmOCgp
LmRhdGEoKSwgcmVzdWx0LmpvYklkZW50aWZpZXIpOwogCiAgICAgQVNTRVJUKG1fY29ubmVjdGlv
bnMuY29udGFpbnMocmVzdWx0LmNvbm5lY3Rpb25JZGVudGlmaWVyKSk7CiAKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9zZXJ2ZXIvU1dTZXJ2ZXIuaCBiL1NvdXJj
ZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9zZXJ2ZXIvU1dTZXJ2ZXIuaAppbmRleCAyZjhiMDJh
MWU0NWI2MTFmZDkwZGNkN2Q2ODQzNzZmZTYwMjc1OWIxLi5mYzNkNzE0ODZkYmM0YjUxMzJiZWM3
NGE1MjQ0ODYxYmI1M2JhNWMzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3Nl
cnZpY2Uvc2VydmVyL1NXU2VydmVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2
aWNlL3NlcnZlci9TV1NlcnZlci5oCkBAIC0zNyw3ICszNyw3IEBACiAjaW5jbHVkZSA8d3RmL0Ny
b3NzVGhyZWFkVGFzay5oPgogI2luY2x1ZGUgPHd0Zi9IYXNoTWFwLmg+CiAjaW5jbHVkZSA8d3Rm
L0hhc2hTZXQuaD4KLSNpbmNsdWRlIDx3dGYvSWRlbnRpZmllZC5oPgorI2luY2x1ZGUgPHd0Zi9P
YmplY3RJZGVudGlmaWVyLmg+CiAjaW5jbHVkZSA8d3RmL1J1bkxvb3AuaD4KICNpbmNsdWRlIDx3
dGYvVGhyZWFkU2FmZVJlZkNvdW50ZWQuaD4KICNpbmNsdWRlIDx3dGYvVGhyZWFkaW5nLmg+CkBA
IC01OCwxMSArNTgsMTQgQEAgc3RydWN0IFNlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb25EYXRhOwog
CiBjbGFzcyBTV1NlcnZlciB7CiBwdWJsaWM6Ci0gICAgY2xhc3MgQ29ubmVjdGlvbiA6IHB1Ymxp
YyBJZGVudGlmaWVkPENvbm5lY3Rpb24+IHsKKyAgICBjbGFzcyBDb25uZWN0aW9uIHsKICAgICBm
cmllbmQgY2xhc3MgU1dTZXJ2ZXI7CiAgICAgcHVibGljOgogICAgICAgICBXRUJDT1JFX0VYUE9S
VCB2aXJ0dWFsIH5Db25uZWN0aW9uKCk7CiAKKyAgICAgICAgdXNpbmcgSWRlbnRpZmllciA9IFNX
U2VydmVyQ29ubmVjdGlvbklkZW50aWZpZXI7CisgICAgICAgIElkZW50aWZpZXIgaWRlbnRpZmll
cigpIGNvbnN0IHsgcmV0dXJuIG1faWRlbnRpZmllcjsgfQorCiAgICAgICAgIFdFQkNPUkVfRVhQ
T1JUIHZvaWQgZGlkUmVzb2x2ZVJlZ2lzdHJhdGlvblByb21pc2UoY29uc3QgU2VydmljZVdvcmtl
clJlZ2lzdHJhdGlvbktleSYpOwogICAgICAgICBjb25zdCBTV1NlcnZlclJlZ2lzdHJhdGlvbiog
ZG9SZWdpc3RyYXRpb25NYXRjaGluZyhjb25zdCBTZWN1cml0eU9yaWdpbkRhdGEmIHRvcE9yaWdp
biwgY29uc3QgVVJMJiBjbGllbnRVUkwpIGNvbnN0IHsgcmV0dXJuIG1fc2VydmVyLmRvUmVnaXN0
cmF0aW9uTWF0Y2hpbmcodG9wT3JpZ2luLCBjbGllbnRVUkwpOyB9CiAKQEAgLTcyLDcgKzc1LDcg
QEAgcHVibGljOgogICAgICAgICB2aXJ0dWFsIHZvaWQgZmlyZVVwZGF0ZUZvdW5kRXZlbnQoU2Vy
dmljZVdvcmtlclJlZ2lzdHJhdGlvbklkZW50aWZpZXIpID0gMDsKIAogICAgIHByb3RlY3RlZDoK
LSAgICAgICAgV0VCQ09SRV9FWFBPUlQgQ29ubmVjdGlvbihTV1NlcnZlciYsIHVpbnQ2NF90IGlk
ZW50aWZpZXIpOworICAgICAgICBXRUJDT1JFX0VYUE9SVCBleHBsaWNpdCBDb25uZWN0aW9uKFNX
U2VydmVyJik7CiAgICAgICAgIFNXU2VydmVyJiBzZXJ2ZXIoKSB7IHJldHVybiBtX3NlcnZlcjsg
fQogCiAgICAgICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgc2NoZWR1bGVKb2JJblNlcnZlcihjb25z
dCBTZXJ2aWNlV29ya2VySm9iRGF0YSYpOwpAQCAtOTAsNiArOTMsNyBAQCBwdWJsaWM6CiAgICAg
ICAgIHZpcnR1YWwgdm9pZCBzdGFydFNjcmlwdEZldGNoSW5DbGllbnQodWludDY0X3Qgam9iSWRl
bnRpZmllcikgPSAwOwogCiAgICAgICAgIFNXU2VydmVyJiBtX3NlcnZlcjsKKyAgICAgICAgSWRl
bnRpZmllciBtX2lkZW50aWZpZXI7CiAgICAgfTsKIAogICAgIFdFQkNPUkVfRVhQT1JUIGV4cGxp
Y2l0IFNXU2VydmVyKFVuaXF1ZVJlZjxTV09yaWdpblN0b3JlPiYmKTsKQEAgLTExOSw3ICsxMjMs
NyBAQCBwdWJsaWM6CiAgICAgdm9pZCBmaXJlQWN0aXZhdGVFdmVudChTV1NlcnZlcldvcmtlciYp
OwogICAgIFNXU2VydmVyV29ya2VyKiB3b3JrZXJCeUlEKFNlcnZpY2VXb3JrZXJJZGVudGlmaWVy
IGlkZW50aWZpZXIpIGNvbnN0IHsgcmV0dXJuIG1fd29ya2Vyc0J5SUQuZ2V0KGlkZW50aWZpZXIp
OyB9CiAgICAgCi0gICAgQ29ubmVjdGlvbiogZ2V0Q29ubmVjdGlvbih1aW50NjRfdCBpZGVudGlm
aWVyKSB7IHJldHVybiBtX2Nvbm5lY3Rpb25zLmdldChpZGVudGlmaWVyKTsgfQorICAgIENvbm5l
Y3Rpb24qIGdldENvbm5lY3Rpb24oU1dTZXJ2ZXJDb25uZWN0aW9uSWRlbnRpZmllciBpZGVudGlm
aWVyKSB7IHJldHVybiBtX2Nvbm5lY3Rpb25zLmdldChpZGVudGlmaWVyKTsgfQogICAgIFNXT3Jp
Z2luU3RvcmUmIG9yaWdpblN0b3JlKCkgeyByZXR1cm4gbV9vcmlnaW5TdG9yZTsgfQogCiAgICAg
dm9pZCBzY3JpcHRDb250ZXh0RmFpbGVkVG9TdGFydChTV1NlcnZlcldvcmtlciYsIGNvbnN0IFN0
cmluZyYgbWVzc2FnZSk7CkBAIC0xNTIsNyArMTU2LDcgQEAgcHJpdmF0ZToKIAogICAgIHZvaWQg
aW5zdGFsbENvbnRleHREYXRhKGNvbnN0IFNlcnZpY2VXb3JrZXJDb250ZXh0RGF0YSYpOwogCi0g
ICAgSGFzaE1hcDx1aW50NjRfdCwgQ29ubmVjdGlvbio+IG1fY29ubmVjdGlvbnM7CisgICAgSGFz
aE1hcDxTV1NlcnZlckNvbm5lY3Rpb25JZGVudGlmaWVyLCBDb25uZWN0aW9uKj4gbV9jb25uZWN0
aW9uczsKICAgICBIYXNoTWFwPFNlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb25LZXksIHN0ZDo6dW5p
cXVlX3B0cjxTV1NlcnZlclJlZ2lzdHJhdGlvbj4+IG1fcmVnaXN0cmF0aW9uczsKICAgICBIYXNo
TWFwPFNlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb25LZXksIHN0ZDo6dW5pcXVlX3B0cjxTV1NlcnZl
ckpvYlF1ZXVlPj4gbV9qb2JRdWV1ZXM7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3dv
cmtlcnMvc2VydmljZS9zZXJ2ZXIvU1dTZXJ2ZXJSZWdpc3RyYXRpb24uY3BwIGIvU291cmNlL1dl
YkNvcmUvd29ya2Vycy9zZXJ2aWNlL3NlcnZlci9TV1NlcnZlclJlZ2lzdHJhdGlvbi5jcHAKaW5k
ZXggOTk4YzkwYjczNWVlOWIzNWE4MjMyZjY2NDdiOTcyYmUzYTQyNDliZS4uNjIzMGFiMmJhNDcz
MjQ5MjMxNDc0OGI4Y2VkM2QwYmQ0YjhjMDA2YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
d29ya2Vycy9zZXJ2aWNlL3NlcnZlci9TV1NlcnZlclJlZ2lzdHJhdGlvbi5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL3NlcnZlci9TV1NlcnZlclJlZ2lzdHJhdGlvbi5j
cHAKQEAgLTExMSw3ICsxMTEsNyBAQCB2b2lkIFNXU2VydmVyUmVnaXN0cmF0aW9uOjpmaXJlVXBk
YXRlRm91bmRFdmVudCgpCiAKIHZvaWQgU1dTZXJ2ZXJSZWdpc3RyYXRpb246OmZvckVhY2hDb25u
ZWN0aW9uKGNvbnN0IFdURjo6RnVuY3Rpb248dm9pZChTV1NlcnZlcjo6Q29ubmVjdGlvbiYpPiYg
YXBwbHkpCiB7Ci0gICAgZm9yICh1aW50NjRfdCBjb25uZWN0aW9uSWRlbnRpZmllcldpdGhDbGll
bnRzIDogbV9jb25uZWN0aW9uc1dpdGhDbGllbnRSZWdpc3RyYXRpb25zLnZhbHVlcygpKSB7Cisg
ICAgZm9yIChhdXRvIGNvbm5lY3Rpb25JZGVudGlmaWVyV2l0aENsaWVudHMgOiBtX2Nvbm5lY3Rp
b25zV2l0aENsaWVudFJlZ2lzdHJhdGlvbnMudmFsdWVzKCkpIHsKICAgICAgICAgaWYgKGF1dG8q
IGNvbm5lY3Rpb24gPSBtX3NlcnZlci5nZXRDb25uZWN0aW9uKGNvbm5lY3Rpb25JZGVudGlmaWVy
V2l0aENsaWVudHMpKQogICAgICAgICAgICAgYXBwbHkoKmNvbm5lY3Rpb24pOwogICAgIH0KQEAg
LTEzNCwxMiArMTM0LDEyIEBAIFNlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb25EYXRhIFNXU2VydmVy
UmVnaXN0cmF0aW9uOjpkYXRhKCkgY29uc3QKICAgICByZXR1cm4geyBtX3JlZ2lzdHJhdGlvbktl
eSwgaWRlbnRpZmllcigpLCBtX3Njb3BlVVJMLCBtX3VwZGF0ZVZpYUNhY2hlLCBXVEZNb3ZlKGlu
c3RhbGxpbmdXb3JrZXJEYXRhKSwgV1RGTW92ZSh3YWl0aW5nV29ya2VyRGF0YSksIFdURk1vdmUo
YWN0aXZlV29ya2VyRGF0YSkgfTsKIH0KIAotdm9pZCBTV1NlcnZlclJlZ2lzdHJhdGlvbjo6YWRk
Q2xpZW50U2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbih1aW50NjRfdCBjb25uZWN0aW9uSWRlbnRp
ZmllcikKK3ZvaWQgU1dTZXJ2ZXJSZWdpc3RyYXRpb246OmFkZENsaWVudFNlcnZpY2VXb3JrZXJS
ZWdpc3RyYXRpb24oU1dTZXJ2ZXJDb25uZWN0aW9uSWRlbnRpZmllciBjb25uZWN0aW9uSWRlbnRp
ZmllcikKIHsKICAgICBtX2Nvbm5lY3Rpb25zV2l0aENsaWVudFJlZ2lzdHJhdGlvbnMuYWRkKGNv
bm5lY3Rpb25JZGVudGlmaWVyKTsKIH0KIAotdm9pZCBTV1NlcnZlclJlZ2lzdHJhdGlvbjo6cmVt
b3ZlQ2xpZW50U2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbih1aW50NjRfdCBjb25uZWN0aW9uSWRl
bnRpZmllcikKK3ZvaWQgU1dTZXJ2ZXJSZWdpc3RyYXRpb246OnJlbW92ZUNsaWVudFNlcnZpY2VX
b3JrZXJSZWdpc3RyYXRpb24oU1dTZXJ2ZXJDb25uZWN0aW9uSWRlbnRpZmllciBjb25uZWN0aW9u
SWRlbnRpZmllcikKIHsKICAgICBtX2Nvbm5lY3Rpb25zV2l0aENsaWVudFJlZ2lzdHJhdGlvbnMu
cmVtb3ZlKGNvbm5lY3Rpb25JZGVudGlmaWVyKTsKIH0KQEAgLTE2Myw3ICsxNjMsNyBAQCB2b2lk
IFNXU2VydmVyUmVnaXN0cmF0aW9uOjpyZW1vdmVDbGllbnRVc2luZ1JlZ2lzdHJhdGlvbihjb25z
dCBTZXJ2aWNlV29ya2VyQ2xpZQogICAgICAgICBtX2NsaWVudHNVc2luZ1JlZ2lzdHJhdGlvbi5y
ZW1vdmUoaXRlcmF0b3IpOwogfQogCi12b2lkIFNXU2VydmVyUmVnaXN0cmF0aW9uOjp1bnJlZ2lz
dGVyU2VydmVyQ29ubmVjdGlvbih1aW50NjRfdCBzZXJ2ZXJDb25uZWN0aW9uSWRlbnRpZmllcikK
K3ZvaWQgU1dTZXJ2ZXJSZWdpc3RyYXRpb246OnVucmVnaXN0ZXJTZXJ2ZXJDb25uZWN0aW9uKFNX
U2VydmVyQ29ubmVjdGlvbklkZW50aWZpZXIgc2VydmVyQ29ubmVjdGlvbklkZW50aWZpZXIpCiB7
CiAgICAgbV9jb25uZWN0aW9uc1dpdGhDbGllbnRSZWdpc3RyYXRpb25zLnJlbW92ZUFsbChzZXJ2
ZXJDb25uZWN0aW9uSWRlbnRpZmllcik7CiAgICAgbV9jbGllbnRzVXNpbmdSZWdpc3RyYXRpb24u
cmVtb3ZlKHNlcnZlckNvbm5lY3Rpb25JZGVudGlmaWVyKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3dvcmtlcnMvc2VydmljZS9zZXJ2ZXIvU1dTZXJ2ZXJSZWdpc3RyYXRpb24uaCBiL1Nv
dXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9zZXJ2ZXIvU1dTZXJ2ZXJSZWdpc3RyYXRpb24u
aAppbmRleCBjMjMxMmQ4NDA3ZWZmMDJlZDY5MjQ5YzZhNTFjMWM3NjI3ZDRjYTI1Li40ZmMzYzlk
ODViYTkzNDkyOGMwOGJmMDBlY2Y0ZGNiNGZhNWI4ODhiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS93b3JrZXJzL3NlcnZpY2Uvc2VydmVyL1NXU2VydmVyUmVnaXN0cmF0aW9uLmgKKysrIGIv
U291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL3NlcnZlci9TV1NlcnZlclJlZ2lzdHJhdGlv
bi5oCkBAIC02NCw4ICs2NCw4IEBAIHB1YmxpYzoKICAgICB2b2lkIHVwZGF0ZVdvcmtlclN0YXRl
KFNXU2VydmVyV29ya2VyJiwgU2VydmljZVdvcmtlclN0YXRlKTsKICAgICB2b2lkIGZpcmVVcGRh
dGVGb3VuZEV2ZW50KCk7CiAKLSAgICB2b2lkIGFkZENsaWVudFNlcnZpY2VXb3JrZXJSZWdpc3Ry
YXRpb24odWludDY0X3QgY29ubmVjdGlvbklkZW50aWZpZXIpOwotICAgIHZvaWQgcmVtb3ZlQ2xp
ZW50U2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbih1aW50NjRfdCBjb25uZWN0aW9uSWRlbnRpZmll
cik7CisgICAgdm9pZCBhZGRDbGllbnRTZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uKFNXU2VydmVy
Q29ubmVjdGlvbklkZW50aWZpZXIpOworICAgIHZvaWQgcmVtb3ZlQ2xpZW50U2VydmljZVdvcmtl
clJlZ2lzdHJhdGlvbihTV1NlcnZlckNvbm5lY3Rpb25JZGVudGlmaWVyKTsKIAogICAgIFNXU2Vy
dmVyV29ya2VyKiBpbnN0YWxsaW5nV29ya2VyKCkgY29uc3QgeyByZXR1cm4gbV9pbnN0YWxsaW5n
V29ya2VyLmdldCgpOyB9CiAgICAgU1dTZXJ2ZXJXb3JrZXIqIHdhaXRpbmdXb3JrZXIoKSBjb25z
dCB7IHJldHVybiBtX3dhaXRpbmdXb3JrZXIuZ2V0KCk7IH0KQEAgLTc2LDcgKzc2LDcgQEAgcHVi
bGljOgogICAgIGJvb2wgaGFzQ2xpZW50c1VzaW5nUmVnaXN0cmF0aW9uKCkgY29uc3QgeyByZXR1
cm4gIW1fY2xpZW50c1VzaW5nUmVnaXN0cmF0aW9uLmlzRW1wdHkoKTsgfQogICAgIHZvaWQgYWRk
Q2xpZW50VXNpbmdSZWdpc3RyYXRpb24oY29uc3QgU2VydmljZVdvcmtlckNsaWVudElkZW50aWZp
ZXImKTsKICAgICB2b2lkIHJlbW92ZUNsaWVudFVzaW5nUmVnaXN0cmF0aW9uKGNvbnN0IFNlcnZp
Y2VXb3JrZXJDbGllbnRJZGVudGlmaWVyJik7Ci0gICAgdm9pZCB1bnJlZ2lzdGVyU2VydmVyQ29u
bmVjdGlvbih1aW50NjRfdCBzZXJ2ZXJDb25uZWN0aW9uSWRlbnRpZmllcik7CisgICAgdm9pZCB1
bnJlZ2lzdGVyU2VydmVyQ29ubmVjdGlvbihTV1NlcnZlckNvbm5lY3Rpb25JZGVudGlmaWVyKTsK
IAogcHJpdmF0ZToKICAgICB2b2lkIGZvckVhY2hDb25uZWN0aW9uKGNvbnN0IFdURjo6RnVuY3Rp
b248dm9pZChTV1NlcnZlcjo6Q29ubmVjdGlvbiYpPiYpOwpAQCAtOTQsMTEgKzk0LDExIEBAIHBy
aXZhdGU6CiAKICAgICBkb3VibGUgbV9sYXN0VXBkYXRlVGltZSB7IDAgfTsKICAgICAKLSAgICBI
YXNoQ291bnRlZFNldDx1aW50NjRfdCAvKiBzZXJ2ZXJDb25uZWN0aW9uSWRlbnRpZmllciAqLz4g
bV9jb25uZWN0aW9uc1dpdGhDbGllbnRSZWdpc3RyYXRpb25zOworICAgIEhhc2hDb3VudGVkU2V0
PFNXU2VydmVyQ29ubmVjdGlvbklkZW50aWZpZXI+IG1fY29ubmVjdGlvbnNXaXRoQ2xpZW50UmVn
aXN0cmF0aW9uczsKICAgICBTV1NlcnZlciYgbV9zZXJ2ZXI7CiAKICAgICBNb25vdG9uaWNUaW1l
IG1fY3JlYXRpb25UaW1lOwotICAgIEhhc2hNYXA8dWludDY0X3QgLyogc2VydmVyQ29ubmVjdGlv
bklkZW50aWZpZXIgKi8sIEhhc2hTZXQ8dWludDY0X3QgLyogc2NyaXB0RXhlY3V0aW9uQ29udGV4
dElkZW50aWZpZXIgKi8+PiBtX2NsaWVudHNVc2luZ1JlZ2lzdHJhdGlvbjsKKyAgICBIYXNoTWFw
PFNXU2VydmVyQ29ubmVjdGlvbklkZW50aWZpZXIsIEhhc2hTZXQ8dWludDY0X3QgLyogc2NyaXB0
RXhlY3V0aW9uQ29udGV4dElkZW50aWZpZXIgKi8+PiBtX2NsaWVudHNVc2luZ1JlZ2lzdHJhdGlv
bjsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvU2NyaXB0cy93ZWJraXQvbWVzc2FnZXMucHkgYi9Tb3VyY2UvV2ViS2l0L1NjcmlwdHMvd2Vi
a2l0L21lc3NhZ2VzLnB5CmluZGV4IDg1NWY2MTEyZDhkNmQ5NWZiOTgzOTExNTdhYzliYjNiYzM5
MDhhY2QuLmFmNmUzMzJhOTU0Y2YzY2NkZmJmZWMxOTkzZDVjYmZiNjc4OGM5NDEgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvU2NyaXB0cy93ZWJraXQvbWVzc2FnZXMucHkKKysrIGIvU291cmNl
L1dlYktpdC9TY3JpcHRzL3dlYmtpdC9tZXNzYWdlcy5weQpAQCAtMTgzLDEyICsxODMsMTggQEAg
ZGVmIGZvcndhcmRfZGVjbGFyYXRpb25zX2FuZF9oZWFkZXJzKHJlY2VpdmVyKToKICAgICAgICAg
ICAgIGhlYWRlcnMuYWRkKCc8d3RmL1RocmVhZFNhZmVSZWZDb3VudGVkLmg+JykKICAgICAgICAg
ICAgIHR5cGVzX2J5X25hbWVzcGFjZVsnSVBDJ10udXBkYXRlKFsoJ2NsYXNzJywgJ0Nvbm5lY3Rp
b24nKV0pCiAKKyAgICBub19mb3J3YXJkX2RlY2xhcmF0aW9uX3R5cGVzID0gZnJvemVuc2V0KFsK
KyAgICAgICAgJ1dlYkNvcmU6OlNlcnZpY2VXb3JrZXJJZGVudGlmaWVyJywKKyAgICAgICAgJ1dl
YkNvcmU6OlNlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb25JZGVudGlmaWVyJywKKyAgICAgICAgJ1dl
YkNvcmU6OlNXU2VydmVyQ29ubmVjdGlvbklkZW50aWZpZXInLAorICAgIF0pCisKICAgICBmb3Ig
cGFyYW1ldGVyIGluIHJlY2VpdmVyLml0ZXJwYXJhbWV0ZXJzKCk6CiAgICAgICAgIGtpbmQgPSBw
YXJhbWV0ZXIua2luZAogICAgICAgICB0eXBlID0gcGFyYW1ldGVyLnR5cGUKIAotICAgICAgICBp
ZiB0eXBlLmZpbmQoJzwnKSAhPSAtMSBvciB0eXBlID09ICJXZWJDb3JlOjpTZXJ2aWNlV29ya2Vy
SWRlbnRpZmllciIgb3IgdHlwZSA9PSAiV2ViQ29yZTo6U2VydmljZVdvcmtlclJlZ2lzdHJhdGlv
bklkZW50aWZpZXIiOgotICAgICAgICAgICAgIyBEb24ndCBmb3J3YXJkIGRlY2xhcmUgY2xhc3Mg
dGVtcGxhdGVzIG9yIFNlcnZpY2VXb3JrZXJJZGVudGlmaWVyLgorICAgICAgICBpZiB0eXBlLmZp
bmQoJzwnKSAhPSAtMSBvciB0eXBlIGluIG5vX2ZvcndhcmRfZGVjbGFyYXRpb25fdHlwZXM6Cisg
ICAgICAgICAgICAjIERvbid0IGZvcndhcmQgZGVjbGFyZSBjbGFzcyB0ZW1wbGF0ZXMuCiAgICAg
ICAgICAgICBoZWFkZXJzLnVwZGF0ZShoZWFkZXJzX2Zvcl90eXBlKHR5cGUpKQogICAgICAgICAg
ICAgY29udGludWUKIApAQCAtMzcyLDYgKzM3OCw3IEBAIGRlZiBoZWFkZXJzX2Zvcl90eXBlKHR5
cGUpOgogICAgICAgICAnV2ViQ29yZTo6UGx1Z2luSW5mbyc6IFsnPFdlYkNvcmUvUGx1Z2luRGF0
YS5oPiddLAogICAgICAgICAnV2ViQ29yZTo6UG9saWN5QWN0aW9uJzogWyc8V2ViQ29yZS9GcmFt
ZUxvYWRlclR5cGVzLmg+J10sCiAgICAgICAgICdXZWJDb3JlOjpSZWNlbnRTZWFyY2gnOiBbJzxX
ZWJDb3JlL1NlYXJjaFBvcHVwTWVudS5oPiddLAorICAgICAgICAnV2ViQ29yZTo6U1dTZXJ2ZXJD
b25uZWN0aW9uSWRlbnRpZmllcic6IFsnPFdlYkNvcmUvU2VydmljZVdvcmtlclR5cGVzLmg+J10s
CiAgICAgICAgICdXZWJDb3JlOjpTZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uSWRlbnRpZmllcic6
IFsnPFdlYkNvcmUvU2VydmljZVdvcmtlclR5cGVzLmg+J10sCiAgICAgICAgICdXZWJDb3JlOjpT
ZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uU3RhdGUnOiBbJzxXZWJDb3JlL1NlcnZpY2VXb3JrZXJU
eXBlcy5oPiddLAogICAgICAgICAnV2ViQ29yZTo6U2VydmljZVdvcmtlclN0YXRlJzogWyc8V2Vi
Q29yZS9TZXJ2aWNlV29ya2VyVHlwZXMuaD4nXSwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
U3RvcmFnZVByb2Nlc3MvU2VydmljZVdvcmtlci9XZWJTV1NlcnZlckNvbm5lY3Rpb24uY3BwIGIv
U291cmNlL1dlYktpdC9TdG9yYWdlUHJvY2Vzcy9TZXJ2aWNlV29ya2VyL1dlYlNXU2VydmVyQ29u
bmVjdGlvbi5jcHAKaW5kZXggYzFmMTU0ZTM1ZTAwYjNlZjk0Y2EyMjM2YTk1ZTk1Y2YwOWNiZTA2
Yi4uZDgxOWI5OTc1MTU4MGZiZjIxOTE1ZDk4NzZhMWY0OGFlNjc2OGRiNSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9TdG9yYWdlUHJvY2Vzcy9TZXJ2aWNlV29ya2VyL1dlYlNXU2VydmVyQ29u
bmVjdGlvbi5jcHAKKysrIGIvU291cmNlL1dlYktpdC9TdG9yYWdlUHJvY2Vzcy9TZXJ2aWNlV29y
a2VyL1dlYlNXU2VydmVyQ29ubmVjdGlvbi5jcHAKQEAgLTU2LDggKzU2LDggQEAgdXNpbmcgbmFt
ZXNwYWNlIFdlYkNvcmU7CiAKIG5hbWVzcGFjZSBXZWJLaXQgewogCi1XZWJTV1NlcnZlckNvbm5l
Y3Rpb246OldlYlNXU2VydmVyQ29ubmVjdGlvbihTV1NlcnZlciYgc2VydmVyLCBJUEM6OkNvbm5l
Y3Rpb24mIGNvbm5lY3Rpb24sIHVpbnQ2NF90IGNvbm5lY3Rpb25JZGVudGlmaWVyLCBTZXNzaW9u
SUQgc2Vzc2lvbklEKQotICAgIDogU1dTZXJ2ZXI6OkNvbm5lY3Rpb24oc2VydmVyLCBjb25uZWN0
aW9uSWRlbnRpZmllcikKK1dlYlNXU2VydmVyQ29ubmVjdGlvbjo6V2ViU1dTZXJ2ZXJDb25uZWN0
aW9uKFNXU2VydmVyJiBzZXJ2ZXIsIElQQzo6Q29ubmVjdGlvbiYgY29ubmVjdGlvbiwgU2Vzc2lv
bklEIHNlc3Npb25JRCkKKyAgICA6IFNXU2VydmVyOjpDb25uZWN0aW9uKHNlcnZlcikKICAgICAs
IG1fc2Vzc2lvbklEKHNlc3Npb25JRCkKICAgICAsIG1fY29udGVudENvbm5lY3Rpb24oY29ubmVj
dGlvbikKIHsKQEAgLTExMiwxMCArMTEyLDEwIEBAIHZvaWQgV2ViU1dTZXJ2ZXJDb25uZWN0aW9u
OjpzdGFydEZldGNoKHVpbnQ2NF90IGZldGNoSWRlbnRpZmllciwgc3RkOjpvcHRpb25hbDxTCiAg
ICAgc2VuZFRvQ29udGV4dFByb2Nlc3MoTWVzc2FnZXM6OldlYlNXQ29udGV4dE1hbmFnZXJDb25u
ZWN0aW9uOjpTdGFydEZldGNoIHsgaWRlbnRpZmllcigpLCBmZXRjaElkZW50aWZpZXIsIHNlcnZp
Y2VXb3JrZXJJZGVudGlmaWVyLCByZXF1ZXN0LCBvcHRpb25zLCBmb3JtRGF0YSB9KTsKIH0KIAot
dm9pZCBXZWJTV1NlcnZlckNvbm5lY3Rpb246OnBvc3RNZXNzYWdlVG9TZXJ2aWNlV29ya2VyR2xv
YmFsU2NvcGUoU2VydmljZVdvcmtlcklkZW50aWZpZXIgZGVzdGluYXRpb25TZXJ2aWNlV29ya2Vy
SWRlbnRpZmllciwgY29uc3QgSVBDOjpEYXRhUmVmZXJlbmNlJiBtZXNzYWdlLCBTZXJ2aWNlV29y
a2VyQ2xpZW50RGF0YSYmIHNvdXJjZSkKK3ZvaWQgV2ViU1dTZXJ2ZXJDb25uZWN0aW9uOjpwb3N0
TWVzc2FnZVRvU2VydmljZVdvcmtlckdsb2JhbFNjb3BlKFNlcnZpY2VXb3JrZXJJZGVudGlmaWVy
IGRlc3RpbmF0aW9uU2VydmljZVdvcmtlcklkZW50aWZpZXIsIGNvbnN0IElQQzo6RGF0YVJlZmVy
ZW5jZSYgbWVzc2FnZSwgdWludDY0X3Qgc291cmNlQ29udGV4dElkZW50aWZpZXIsIFNlcnZpY2VX
b3JrZXJDbGllbnREYXRhJiYgc291cmNlRGF0YSkKIHsKLSAgICBzb3VyY2UuaWRlbnRpZmllci5z
ZXJ2ZXJDb25uZWN0aW9uSWRlbnRpZmllciA9IGlkZW50aWZpZXIoKTsKLSAgICBzZW5kVG9Db250
ZXh0UHJvY2VzcyhNZXNzYWdlczo6V2ViU1dDb250ZXh0TWFuYWdlckNvbm5lY3Rpb246OlBvc3RN
ZXNzYWdlVG9TZXJ2aWNlV29ya2VyR2xvYmFsU2NvcGUgeyBkZXN0aW5hdGlvblNlcnZpY2VXb3Jr
ZXJJZGVudGlmaWVyLCBtZXNzYWdlLCBXVEZNb3ZlKHNvdXJjZSkgfSk7CisgICAgU2VydmljZVdv
cmtlckNsaWVudElkZW50aWZpZXIgc291cmNlSWRlbnRpZmllciB7IGlkZW50aWZpZXIoKSwgc291
cmNlQ29udGV4dElkZW50aWZpZXIgfTsKKyAgICBzZW5kVG9Db250ZXh0UHJvY2VzcyhNZXNzYWdl
czo6V2ViU1dDb250ZXh0TWFuYWdlckNvbm5lY3Rpb246OlBvc3RNZXNzYWdlVG9TZXJ2aWNlV29y
a2VyR2xvYmFsU2NvcGUgeyBkZXN0aW5hdGlvblNlcnZpY2VXb3JrZXJJZGVudGlmaWVyLCBtZXNz
YWdlLCBzb3VyY2VJZGVudGlmaWVyLCBXVEZNb3ZlKHNvdXJjZURhdGEpIH0pOwogfQogCiB2b2lk
IFdlYlNXU2VydmVyQ29ubmVjdGlvbjo6ZGlkUmVjZWl2ZUZldGNoUmVzcG9uc2UodWludDY0X3Qg
ZmV0Y2hJZGVudGlmaWVyLCBjb25zdCBSZXNvdXJjZVJlc3BvbnNlJiByZXNwb25zZSkKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvU3RvcmFnZVByb2Nlc3MvU2VydmljZVdvcmtlci9XZWJTV1Nl
cnZlckNvbm5lY3Rpb24uaCBiL1NvdXJjZS9XZWJLaXQvU3RvcmFnZVByb2Nlc3MvU2VydmljZVdv
cmtlci9XZWJTV1NlcnZlckNvbm5lY3Rpb24uaAppbmRleCAzZjEzMjcyY2Y2MjA1NTJkYzZlY2Q3
YTVhZWNmYjc1Yzg5YjA0Njg0Li4yMmRmMGE3NWJhZWI5YWUyYTc2NWQ2N2ZjZWIwMGQxOTJlNWRk
N2FlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1N0b3JhZ2VQcm9jZXNzL1NlcnZpY2VXb3Jr
ZXIvV2ViU1dTZXJ2ZXJDb25uZWN0aW9uLmgKKysrIGIvU291cmNlL1dlYktpdC9TdG9yYWdlUHJv
Y2Vzcy9TZXJ2aWNlV29ya2VyL1dlYlNXU2VydmVyQ29ubmVjdGlvbi5oCkBAIC00Niw3ICs0Niw3
IEBAIG5hbWVzcGFjZSBXZWJLaXQgewogCiBjbGFzcyBXZWJTV1NlcnZlckNvbm5lY3Rpb24gOiBw
dWJsaWMgV2ViQ29yZTo6U1dTZXJ2ZXI6OkNvbm5lY3Rpb24sIHB1YmxpYyBJUEM6Ok1lc3NhZ2VT
ZW5kZXIsIHB1YmxpYyBJUEM6Ok1lc3NhZ2VSZWNlaXZlciB7CiBwdWJsaWM6Ci0gICAgV2ViU1dT
ZXJ2ZXJDb25uZWN0aW9uKFdlYkNvcmU6OlNXU2VydmVyJiwgSVBDOjpDb25uZWN0aW9uJiwgdWlu
dDY0X3QgY29ubmVjdGlvbklkZW50aWZpZXIsIFBBTDo6U2Vzc2lvbklEKTsKKyAgICBXZWJTV1Nl
cnZlckNvbm5lY3Rpb24oV2ViQ29yZTo6U1dTZXJ2ZXImLCBJUEM6OkNvbm5lY3Rpb24mLCBQQUw6
OlNlc3Npb25JRCk7CiAgICAgV2ViU1dTZXJ2ZXJDb25uZWN0aW9uKGNvbnN0IFdlYlNXU2VydmVy
Q29ubmVjdGlvbiYpID0gZGVsZXRlOwogICAgIH5XZWJTV1NlcnZlckNvbm5lY3Rpb24oKSBmaW5h
bDsKIApAQCAtNzYsMTMgKzc2LDEzIEBAIHByaXZhdGU6CiAKICAgICB2b2lkIHN0YXJ0RmV0Y2go
dWludDY0X3QgZmV0Y2hJZGVudGlmaWVyLCBzdGQ6Om9wdGlvbmFsPFdlYkNvcmU6OlNlcnZpY2VX
b3JrZXJJZGVudGlmaWVyPiwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiwgY29uc3Qg
V2ViQ29yZTo6RmV0Y2hPcHRpb25zJiwgY29uc3QgSVBDOjpGb3JtRGF0YVJlZmVyZW5jZSYpOwog
Ci0gICAgdm9pZCBwb3N0TWVzc2FnZVRvU2VydmljZVdvcmtlckdsb2JhbFNjb3BlKFdlYkNvcmU6
OlNlcnZpY2VXb3JrZXJJZGVudGlmaWVyIGRlc3RpbmF0aW9uSWRlbnRpZmllciwgY29uc3QgSVBD
OjpEYXRhUmVmZXJlbmNlJiBtZXNzYWdlLCBXZWJDb3JlOjpTZXJ2aWNlV29ya2VyQ2xpZW50RGF0
YSYmIHNvdXJjZSk7CisgICAgdm9pZCBwb3N0TWVzc2FnZVRvU2VydmljZVdvcmtlckdsb2JhbFNj
b3BlKFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJJZGVudGlmaWVyIGRlc3RpbmF0aW9uSWRlbnRpZmll
ciwgY29uc3QgSVBDOjpEYXRhUmVmZXJlbmNlJiBtZXNzYWdlLCB1aW50NjRfdCBzb3VyY2VDb250
ZXh0SWRlbnRpZmllciwgV2ViQ29yZTo6U2VydmljZVdvcmtlckNsaWVudERhdGEmJiBzb3VyY2Up
OwogCiAgICAgdm9pZCBtYXRjaFJlZ2lzdHJhdGlvbih1aW50NjRfdCByZWdpc3RyYXRpb25NYXRj
aFJlcXVlc3RJZGVudGlmaWVyLCBjb25zdCBXZWJDb3JlOjpTZWN1cml0eU9yaWdpbkRhdGEmIHRv
cE9yaWdpbiwgY29uc3QgV2ViQ29yZTo6VVJMJiBjbGllbnRVUkwpOwogICAgIHZvaWQgZ2V0UmVn
aXN0cmF0aW9ucyh1aW50NjRfdCByZWdpc3RyYXRpb25NYXRjaFJlcXVlc3RJZGVudGlmaWVyLCBj
b25zdCBXZWJDb3JlOjpTZWN1cml0eU9yaWdpbkRhdGEmIHRvcE9yaWdpbiwgY29uc3QgV2ViQ29y
ZTo6VVJMJiBjbGllbnRVUkwpOwogCiAgICAgSVBDOjpDb25uZWN0aW9uKiBtZXNzYWdlU2VuZGVy
Q29ubmVjdGlvbigpIGZpbmFsIHsgcmV0dXJuIG1fY29udGVudENvbm5lY3Rpb24ucHRyKCk7IH0K
LSAgICB1aW50NjRfdCBtZXNzYWdlU2VuZGVyRGVzdGluYXRpb25JRCgpIGZpbmFsIHsgcmV0dXJu
IGlkZW50aWZpZXIoKTsgfQorICAgIHVpbnQ2NF90IG1lc3NhZ2VTZW5kZXJEZXN0aW5hdGlvbklE
KCkgZmluYWwgeyByZXR1cm4gaWRlbnRpZmllcigpLnRvVUludDY0KCk7IH0KICAgICAKICAgICB0
ZW1wbGF0ZTx0eXBlbmFtZSBVPiB2b2lkIHNlbmRUb0NvbnRleHRQcm9jZXNzKFUmJiBtZXNzYWdl
KTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TdG9yYWdlUHJvY2Vzcy9TZXJ2aWNlV29y
a2VyL1dlYlNXU2VydmVyQ29ubmVjdGlvbi5tZXNzYWdlcy5pbiBiL1NvdXJjZS9XZWJLaXQvU3Rv
cmFnZVByb2Nlc3MvU2VydmljZVdvcmtlci9XZWJTV1NlcnZlckNvbm5lY3Rpb24ubWVzc2FnZXMu
aW4KaW5kZXggZTIxNDYxMzA0ZTZlNjIzOTg4MGRjZWE1ZGRiNjBlYThjMWNiNTg1NC4uMTI3ZGQ3
YTQyNDFkZmMyZTFiMWNhYTU1NWM4YjI2ZmVjZTkyNDFiMiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9TdG9yYWdlUHJvY2Vzcy9TZXJ2aWNlV29ya2VyL1dlYlNXU2VydmVyQ29ubmVjdGlvbi5t
ZXNzYWdlcy5pbgorKysgYi9Tb3VyY2UvV2ViS2l0L1N0b3JhZ2VQcm9jZXNzL1NlcnZpY2VXb3Jr
ZXIvV2ViU1dTZXJ2ZXJDb25uZWN0aW9uLm1lc3NhZ2VzLmluCkBAIC0zMiw3ICszMiw3IEBAIG1l
c3NhZ2VzIC0+IFdlYlNXU2VydmVyQ29ubmVjdGlvbiB7CiAgICAgU2VydmljZVdvcmtlclN0b3Bw
ZWRDb250cm9sbGluZ0NsaWVudChXZWJDb3JlOjpTZXJ2aWNlV29ya2VySWRlbnRpZmllciBzZXJ2
aWNlV29ya2VySWRlbnRpZmllciwgdWludDY0X3Qgc2NyaXB0RXhlY3V0aW9uQ29udGV4dElkZW50
aWZpZXIpCiAKICAgICBTdGFydEZldGNoKHVpbnQ2NF90IGlkZW50aWZpZXIsIHN0ZDo6b3B0aW9u
YWw8V2ViQ29yZTo6U2VydmljZVdvcmtlcklkZW50aWZpZXI+IHNlcnZpY2VXb3JrZXJJZGVudGlm
aWVyLCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QgcmVxdWVzdCwgc3RydWN0IFdlYkNvcmU6OkZl
dGNoT3B0aW9ucyBvcHRpb25zLCBJUEM6OkZvcm1EYXRhUmVmZXJlbmNlIHJlcXVlc3RCb2R5KQot
ICAgIFBvc3RNZXNzYWdlVG9TZXJ2aWNlV29ya2VyR2xvYmFsU2NvcGUoV2ViQ29yZTo6U2Vydmlj
ZVdvcmtlcklkZW50aWZpZXIgZGVzdGluYXRpb25TZXJ2aWNlV29ya2VySWRlbnRpZmllciwgSVBD
OjpEYXRhUmVmZXJlbmNlIG1lc3NhZ2UsIHN0cnVjdCBXZWJDb3JlOjpTZXJ2aWNlV29ya2VyQ2xp
ZW50RGF0YSBzb3VyY2UpCisgICAgUG9zdE1lc3NhZ2VUb1NlcnZpY2VXb3JrZXJHbG9iYWxTY29w
ZShXZWJDb3JlOjpTZXJ2aWNlV29ya2VySWRlbnRpZmllciBkZXN0aW5hdGlvblNlcnZpY2VXb3Jr
ZXJJZGVudGlmaWVyLCBJUEM6OkRhdGFSZWZlcmVuY2UgbWVzc2FnZSwgdWludDY0X3Qgc291cmNl
Q29udGV4dElkZW50aWZpZXIsIHN0cnVjdCBXZWJDb3JlOjpTZXJ2aWNlV29ya2VyQ2xpZW50RGF0
YSBzb3VyY2UpCiAKICAgICBEaWRSZXNvbHZlUmVnaXN0cmF0aW9uUHJvbWlzZShXZWJDb3JlOjpT
ZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uS2V5IGtleSkKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9TdG9yYWdlUHJvY2Vzcy9TdG9yYWdlUHJvY2Vzcy5jcHAgYi9Tb3VyY2UvV2ViS2l0L1N0
b3JhZ2VQcm9jZXNzL1N0b3JhZ2VQcm9jZXNzLmNwcAppbmRleCAzYmFhZTdlNDFkMjZiNDAyOWE1
MmNkMzU4NDFlOWY4ZTc0NWIzN2E2Li44ZjZhOTg4NTYwN2IwZDAyYjI1MzljMjZiOWFlZjkxZmMx
MjIwMmQxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1N0b3JhZ2VQcm9jZXNzL1N0b3JhZ2VQ
cm9jZXNzLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1N0b3JhZ2VQcm9jZXNzL1N0b3JhZ2VQcm9j
ZXNzLmNwcApAQCAtNDEwLDM3ICs0MTAsMzcgQEAgdm9pZCBTdG9yYWdlUHJvY2Vzczo6ZGlkR2V0
V29ya2VyQ29udGV4dFByb2Nlc3NDb25uZWN0aW9uKElQQzo6QXR0YWNobWVudCYmIGVuY28KICAg
ICAgICAgY29ubmVjdGlvbi0+d29ya2VyQ29udGV4dFByb2Nlc3NDb25uZWN0aW9uQ3JlYXRlZCgp
OwogfQogCi12b2lkIFN0b3JhZ2VQcm9jZXNzOjpkaWRGYWlsRmV0Y2godWludDY0X3Qgc2VydmVy
Q29ubmVjdGlvbklkZW50aWZpZXIsIHVpbnQ2NF90IGZldGNoSWRlbnRpZmllcikKK3ZvaWQgU3Rv
cmFnZVByb2Nlc3M6OmRpZEZhaWxGZXRjaChTV1NlcnZlckNvbm5lY3Rpb25JZGVudGlmaWVyIHNl
cnZlckNvbm5lY3Rpb25JZGVudGlmaWVyLCB1aW50NjRfdCBmZXRjaElkZW50aWZpZXIpCiB7CiAg
ICAgaWYgKGF1dG8qIGNvbm5lY3Rpb24gPSBtX3N3U2VydmVyQ29ubmVjdGlvbnMuZ2V0KHNlcnZl
ckNvbm5lY3Rpb25JZGVudGlmaWVyKSkKICAgICAgICAgY29ubmVjdGlvbi0+ZGlkRmFpbEZldGNo
KGZldGNoSWRlbnRpZmllcik7CiB9CiAKLXZvaWQgU3RvcmFnZVByb2Nlc3M6OmRpZE5vdEhhbmRs
ZUZldGNoKHVpbnQ2NF90IHNlcnZlckNvbm5lY3Rpb25JZGVudGlmaWVyLCB1aW50NjRfdCBmZXRj
aElkZW50aWZpZXIpCit2b2lkIFN0b3JhZ2VQcm9jZXNzOjpkaWROb3RIYW5kbGVGZXRjaChTV1Nl
cnZlckNvbm5lY3Rpb25JZGVudGlmaWVyIHNlcnZlckNvbm5lY3Rpb25JZGVudGlmaWVyLCB1aW50
NjRfdCBmZXRjaElkZW50aWZpZXIpCiB7CiAgICAgaWYgKGF1dG8qIGNvbm5lY3Rpb24gPSBtX3N3
U2VydmVyQ29ubmVjdGlvbnMuZ2V0KHNlcnZlckNvbm5lY3Rpb25JZGVudGlmaWVyKSkKICAgICAg
ICAgY29ubmVjdGlvbi0+ZGlkTm90SGFuZGxlRmV0Y2goZmV0Y2hJZGVudGlmaWVyKTsKIH0KIAot
dm9pZCBTdG9yYWdlUHJvY2Vzczo6ZGlkUmVjZWl2ZUZldGNoUmVzcG9uc2UodWludDY0X3Qgc2Vy
dmVyQ29ubmVjdGlvbklkZW50aWZpZXIsIHVpbnQ2NF90IGZldGNoSWRlbnRpZmllciwgY29uc3Qg
V2ViQ29yZTo6UmVzb3VyY2VSZXNwb25zZSYgcmVzcG9uc2UpCit2b2lkIFN0b3JhZ2VQcm9jZXNz
OjpkaWRSZWNlaXZlRmV0Y2hSZXNwb25zZShTV1NlcnZlckNvbm5lY3Rpb25JZGVudGlmaWVyIHNl
cnZlckNvbm5lY3Rpb25JZGVudGlmaWVyLCB1aW50NjRfdCBmZXRjaElkZW50aWZpZXIsIGNvbnN0
IFdlYkNvcmU6OlJlc291cmNlUmVzcG9uc2UmIHJlc3BvbnNlKQogewogICAgIGlmIChhdXRvKiBj
b25uZWN0aW9uID0gbV9zd1NlcnZlckNvbm5lY3Rpb25zLmdldChzZXJ2ZXJDb25uZWN0aW9uSWRl
bnRpZmllcikpCiAgICAgICAgIGNvbm5lY3Rpb24tPmRpZFJlY2VpdmVGZXRjaFJlc3BvbnNlKGZl
dGNoSWRlbnRpZmllciwgcmVzcG9uc2UpOwogfQogCi12b2lkIFN0b3JhZ2VQcm9jZXNzOjpkaWRS
ZWNlaXZlRmV0Y2hEYXRhKHVpbnQ2NF90IHNlcnZlckNvbm5lY3Rpb25JZGVudGlmaWVyLCB1aW50
NjRfdCBmZXRjaElkZW50aWZpZXIsIGNvbnN0IElQQzo6RGF0YVJlZmVyZW5jZSYgZGF0YSwgaW50
NjRfdCBlbmNvZGVkRGF0YUxlbmd0aCkKK3ZvaWQgU3RvcmFnZVByb2Nlc3M6OmRpZFJlY2VpdmVG
ZXRjaERhdGEoU1dTZXJ2ZXJDb25uZWN0aW9uSWRlbnRpZmllciBzZXJ2ZXJDb25uZWN0aW9uSWRl
bnRpZmllciwgdWludDY0X3QgZmV0Y2hJZGVudGlmaWVyLCBjb25zdCBJUEM6OkRhdGFSZWZlcmVu
Y2UmIGRhdGEsIGludDY0X3QgZW5jb2RlZERhdGFMZW5ndGgpCiB7CiAgICAgaWYgKGF1dG8qIGNv
bm5lY3Rpb24gPSBtX3N3U2VydmVyQ29ubmVjdGlvbnMuZ2V0KHNlcnZlckNvbm5lY3Rpb25JZGVu
dGlmaWVyKSkKICAgICAgICAgY29ubmVjdGlvbi0+ZGlkUmVjZWl2ZUZldGNoRGF0YShmZXRjaElk
ZW50aWZpZXIsIGRhdGEsIGVuY29kZWREYXRhTGVuZ3RoKTsKIH0KIAotdm9pZCBTdG9yYWdlUHJv
Y2Vzczo6ZGlkUmVjZWl2ZUZldGNoRm9ybURhdGEodWludDY0X3Qgc2VydmVyQ29ubmVjdGlvbklk
ZW50aWZpZXIsIHVpbnQ2NF90IGZldGNoSWRlbnRpZmllciwgY29uc3QgSVBDOjpGb3JtRGF0YVJl
ZmVyZW5jZSYgZm9ybURhdGEpCit2b2lkIFN0b3JhZ2VQcm9jZXNzOjpkaWRSZWNlaXZlRmV0Y2hG
b3JtRGF0YShTV1NlcnZlckNvbm5lY3Rpb25JZGVudGlmaWVyIHNlcnZlckNvbm5lY3Rpb25JZGVu
dGlmaWVyLCB1aW50NjRfdCBmZXRjaElkZW50aWZpZXIsIGNvbnN0IElQQzo6Rm9ybURhdGFSZWZl
cmVuY2UmIGZvcm1EYXRhKQogewogICAgIGlmIChhdXRvKiBjb25uZWN0aW9uID0gbV9zd1NlcnZl
ckNvbm5lY3Rpb25zLmdldChzZXJ2ZXJDb25uZWN0aW9uSWRlbnRpZmllcikpCiAgICAgICAgIGNv
bm5lY3Rpb24tPmRpZFJlY2VpdmVGZXRjaEZvcm1EYXRhKGZldGNoSWRlbnRpZmllciwgZm9ybURh
dGEpOwogfQogCi12b2lkIFN0b3JhZ2VQcm9jZXNzOjpkaWRGaW5pc2hGZXRjaCh1aW50NjRfdCBz
ZXJ2ZXJDb25uZWN0aW9uSWRlbnRpZmllciwgdWludDY0X3QgZmV0Y2hJZGVudGlmaWVyKQordm9p
ZCBTdG9yYWdlUHJvY2Vzczo6ZGlkRmluaXNoRmV0Y2goU1dTZXJ2ZXJDb25uZWN0aW9uSWRlbnRp
ZmllciBzZXJ2ZXJDb25uZWN0aW9uSWRlbnRpZmllciwgdWludDY0X3QgZmV0Y2hJZGVudGlmaWVy
KQogewogICAgIGlmIChhdXRvKiBjb25uZWN0aW9uID0gbV9zd1NlcnZlckNvbm5lY3Rpb25zLmdl
dChzZXJ2ZXJDb25uZWN0aW9uSWRlbnRpZmllcikpCiAgICAgICAgIGNvbm5lY3Rpb24tPmRpZEZp
bmlzaEZldGNoKGZldGNoSWRlbnRpZmllcik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1N0
b3JhZ2VQcm9jZXNzL1N0b3JhZ2VQcm9jZXNzLmggYi9Tb3VyY2UvV2ViS2l0L1N0b3JhZ2VQcm9j
ZXNzL1N0b3JhZ2VQcm9jZXNzLmgKaW5kZXggNjM3MzEyOWRiZWEwZjc3ZjgzODkwMDkyZjdiYzU4
MWNhNmUxYmMwZS4uNGNiMmJkZDU2Yzg4YTBkMWE4YWFmZjdlMjg4ODEzYmYxZDgzODhhYSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9TdG9yYWdlUHJvY2Vzcy9TdG9yYWdlUHJvY2Vzcy5oCisr
KyBiL1NvdXJjZS9XZWJLaXQvU3RvcmFnZVByb2Nlc3MvU3RvcmFnZVByb2Nlc3MuaApAQCAtMzAs
NiArMzAsNyBAQAogI2luY2x1ZGUgPFdlYkNvcmUvSURCQmFja2luZ1N0b3JlLmg+CiAjaW5jbHVk
ZSA8V2ViQ29yZS9JREJTZXJ2ZXIuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1NlcnZpY2VXb3JrZXJJ
ZGVudGlmaWVyLmg+CisjaW5jbHVkZSA8V2ViQ29yZS9TZXJ2aWNlV29ya2VyVHlwZXMuaD4KICNp
bmNsdWRlIDxXZWJDb3JlL1VuaXF1ZUlEQkRhdGFiYXNlLmg+CiAjaW5jbHVkZSA8cGFsL1Nlc3Np
b25JRC5oPgogI2luY2x1ZGUgPHd0Zi9Dcm9zc1RocmVhZFRhc2suaD4KQEAgLTEyNCwxMiArMTI1
LDEyIEBAIHByaXZhdGU6CiAjaWYgRU5BQkxFKFNFUlZJQ0VfV09SS0VSKQogICAgIHZvaWQgZGlk
R2V0V29ya2VyQ29udGV4dFByb2Nlc3NDb25uZWN0aW9uKElQQzo6QXR0YWNobWVudCYmIGVuY29k
ZWRDb25uZWN0aW9uSWRlbnRpZmllcik7CiAKLSAgICB2b2lkIGRpZFJlY2VpdmVGZXRjaFJlc3Bv
bnNlKHVpbnQ2NF90IHNlcnZlckNvbm5lY3Rpb25JZGVudGlmaWVyLCB1aW50NjRfdCBmZXRjaElk
ZW50aWZpZXIsIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVzcG9uc2UmKTsKLSAgICB2b2lkIGRp
ZFJlY2VpdmVGZXRjaERhdGEodWludDY0X3Qgc2VydmVyQ29ubmVjdGlvbklkZW50aWZpZXIsIHVp
bnQ2NF90IGZldGNoSWRlbnRpZmllciwgY29uc3QgSVBDOjpEYXRhUmVmZXJlbmNlJiwgaW50NjRf
dCBlbmNvZGVkRGF0YUxlbmd0aCk7Ci0gICAgdm9pZCBkaWRSZWNlaXZlRmV0Y2hGb3JtRGF0YSh1
aW50NjRfdCBzZXJ2ZXJDb25uZWN0aW9uSWRlbnRpZmllciwgdWludDY0X3QgZmV0Y2hJZGVudGlm
aWVyLCBjb25zdCBJUEM6OkZvcm1EYXRhUmVmZXJlbmNlJik7Ci0gICAgdm9pZCBkaWRGaW5pc2hG
ZXRjaCh1aW50NjRfdCBzZXJ2ZXJDb25uZWN0aW9uSWRlbnRpZmllciwgdWludDY0X3QgZmV0Y2hJ
ZGVudGlmaWVyKTsKLSAgICB2b2lkIGRpZEZhaWxGZXRjaCh1aW50NjRfdCBzZXJ2ZXJDb25uZWN0
aW9uSWRlbnRpZmllciwgdWludDY0X3QgZmV0Y2hJZGVudGlmaWVyKTsKLSAgICB2b2lkIGRpZE5v
dEhhbmRsZUZldGNoKHVpbnQ2NF90IHNlcnZlckNvbm5lY3Rpb25JZGVudGlmaWVyLCB1aW50NjRf
dCBmZXRjaElkZW50aWZpZXIpOworICAgIHZvaWQgZGlkUmVjZWl2ZUZldGNoUmVzcG9uc2UoV2Vi
Q29yZTo6U1dTZXJ2ZXJDb25uZWN0aW9uSWRlbnRpZmllciwgdWludDY0X3QgZmV0Y2hJZGVudGlm
aWVyLCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlc3BvbnNlJik7CisgICAgdm9pZCBkaWRSZWNl
aXZlRmV0Y2hEYXRhKFdlYkNvcmU6OlNXU2VydmVyQ29ubmVjdGlvbklkZW50aWZpZXIsIHVpbnQ2
NF90IGZldGNoSWRlbnRpZmllciwgY29uc3QgSVBDOjpEYXRhUmVmZXJlbmNlJiwgaW50NjRfdCBl
bmNvZGVkRGF0YUxlbmd0aCk7CisgICAgdm9pZCBkaWRSZWNlaXZlRmV0Y2hGb3JtRGF0YShXZWJD
b3JlOjpTV1NlcnZlckNvbm5lY3Rpb25JZGVudGlmaWVyLCB1aW50NjRfdCBmZXRjaElkZW50aWZp
ZXIsIGNvbnN0IElQQzo6Rm9ybURhdGFSZWZlcmVuY2UmKTsKKyAgICB2b2lkIGRpZEZpbmlzaEZl
dGNoKFdlYkNvcmU6OlNXU2VydmVyQ29ubmVjdGlvbklkZW50aWZpZXIsIHVpbnQ2NF90IGZldGNo
SWRlbnRpZmllcik7CisgICAgdm9pZCBkaWRGYWlsRmV0Y2goV2ViQ29yZTo6U1dTZXJ2ZXJDb25u
ZWN0aW9uSWRlbnRpZmllciwgdWludDY0X3QgZmV0Y2hJZGVudGlmaWVyKTsKKyAgICB2b2lkIGRp
ZE5vdEhhbmRsZUZldGNoKFdlYkNvcmU6OlNXU2VydmVyQ29ubmVjdGlvbklkZW50aWZpZXIsIHVp
bnQ2NF90IGZldGNoSWRlbnRpZmllcik7CiAKICAgICB2b2lkIHBvc3RNZXNzYWdlVG9TZXJ2aWNl
V29ya2VyQ2xpZW50KGNvbnN0IFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJDbGllbnRJZGVudGlmaWVy
JiBkZXN0aW5hdGlvbklkZW50aWZpZXIsIGNvbnN0IElQQzo6RGF0YVJlZmVyZW5jZSYgbWVzc2Fn
ZSwgV2ViQ29yZTo6U2VydmljZVdvcmtlcklkZW50aWZpZXIgc291cmNlSWRlbnRpZmllciwgY29u
c3QgU3RyaW5nJiBzb3VyY2VPcmlnaW4pOwogICAgIFdlYlNXT3JpZ2luU3RvcmUmIHN3T3JpZ2lu
U3RvcmVGb3JTZXNzaW9uKFBBTDo6U2Vzc2lvbklEKTsKQEAgLTE2Miw3ICsxNjMsNyBAQCBwcml2
YXRlOgogICAgIFJlZlB0cjxXZWJTV1NlcnZlclRvQ29udGV4dENvbm5lY3Rpb24+IG1fc2VydmVy
VG9Db250ZXh0Q29ubmVjdGlvbjsKICAgICBib29sIG1fd2FpdGluZ0ZvclNlcnZlclRvQ29udGV4
dFByb2Nlc3NDb25uZWN0aW9uIHsgZmFsc2UgfTsKICAgICBIYXNoTWFwPFBBTDo6U2Vzc2lvbklE
LCBzdGQ6OnVuaXF1ZV9wdHI8V2ViQ29yZTo6U1dTZXJ2ZXI+PiBtX3N3U2VydmVyczsKLSAgICBI
YXNoTWFwPHVpbnQ2NF90LCBXZWJTV1NlcnZlckNvbm5lY3Rpb24qPiBtX3N3U2VydmVyQ29ubmVj
dGlvbnM7CisgICAgSGFzaE1hcDxXZWJDb3JlOjpTV1NlcnZlckNvbm5lY3Rpb25JZGVudGlmaWVy
LCBXZWJTV1NlcnZlckNvbm5lY3Rpb24qPiBtX3N3U2VydmVyQ29ubmVjdGlvbnM7CiAjZW5kaWYK
IH07CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU3RvcmFnZVByb2Nlc3MvU3RvcmFnZVBy
b2Nlc3MubWVzc2FnZXMuaW4gYi9Tb3VyY2UvV2ViS2l0L1N0b3JhZ2VQcm9jZXNzL1N0b3JhZ2VQ
cm9jZXNzLm1lc3NhZ2VzLmluCmluZGV4IDY2ZjI5Y2Q5YzFkYTA4Yzk4MzZkMmFkYWVkNDQzODMw
MTcwZGFlNzguLmZiNWU0ZDhiMDczYTYzMWQ3Y2NiMTExYjZmOTU1OTRiMWNkMTRiYWEgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU3RvcmFnZVByb2Nlc3MvU3RvcmFnZVByb2Nlc3MubWVzc2Fn
ZXMuaW4KKysrIGIvU291cmNlL1dlYktpdC9TdG9yYWdlUHJvY2Vzcy9TdG9yYWdlUHJvY2Vzcy5t
ZXNzYWdlcy5pbgpAQCAtMzgsMTIgKzM4LDEyIEBAIG1lc3NhZ2VzIC0+IFN0b3JhZ2VQcm9jZXNz
IExlZ2FjeVJlY2VpdmVyIHsKICNpZiBFTkFCTEUoU0VSVklDRV9XT1JLRVIpCiAgICAgRGlkR2V0
V29ya2VyQ29udGV4dFByb2Nlc3NDb25uZWN0aW9uKElQQzo6QXR0YWNobWVudCBjb25uZWN0aW9u
SGFuZGxlKQogCi0gICAgRGlkTm90SGFuZGxlRmV0Y2godWludDY0X3Qgc2VydmVyQ29ubmVjdGlv
bklkZW50aWZpZXIsIHVpbnQ2NF90IGZldGNoSWRlbnRpZmllcikKLSAgICBEaWRGYWlsRmV0Y2go
dWludDY0X3Qgc2VydmVyQ29ubmVjdGlvbklkZW50aWZpZXIsIHVpbnQ2NF90IGZldGNoSWRlbnRp
ZmllcikKLSAgICBEaWRSZWNlaXZlRmV0Y2hSZXNwb25zZSh1aW50NjRfdCBzZXJ2ZXJDb25uZWN0
aW9uSWRlbnRpZmllciwgdWludDY0X3QgZmV0Y2hJZGVudGlmaWVyLCBXZWJDb3JlOjpSZXNvdXJj
ZVJlc3BvbnNlIHJlc3BvbnNlKQotICAgIERpZFJlY2VpdmVGZXRjaERhdGEodWludDY0X3Qgc2Vy
dmVyQ29ubmVjdGlvbklkZW50aWZpZXIsIHVpbnQ2NF90IGZldGNoSWRlbnRpZmllciwgSVBDOjpE
YXRhUmVmZXJlbmNlIGRhdGEsIGludDY0X3QgZW5jb2RlZERhdGFMZW5ndGgpCi0gICAgRGlkUmVj
ZWl2ZUZldGNoRm9ybURhdGEodWludDY0X3Qgc2VydmVyQ29ubmVjdGlvbklkZW50aWZpZXIsIHVp
bnQ2NF90IGZldGNoSWRlbnRpZmllciwgSVBDOjpGb3JtRGF0YVJlZmVyZW5jZSBkYXRhKQotICAg
IERpZEZpbmlzaEZldGNoKHVpbnQ2NF90IHNlcnZlckNvbm5lY3Rpb25JZGVudGlmaWVyLCB1aW50
NjRfdCBmZXRjaElkZW50aWZpZXIpCisgICAgRGlkTm90SGFuZGxlRmV0Y2goV2ViQ29yZTo6U1dT
ZXJ2ZXJDb25uZWN0aW9uSWRlbnRpZmllciBzZXJ2ZXJDb25uZWN0aW9uSWRlbnRpZmllciwgdWlu
dDY0X3QgZmV0Y2hJZGVudGlmaWVyKQorICAgIERpZEZhaWxGZXRjaChXZWJDb3JlOjpTV1NlcnZl
ckNvbm5lY3Rpb25JZGVudGlmaWVyIHNlcnZlckNvbm5lY3Rpb25JZGVudGlmaWVyLCB1aW50NjRf
dCBmZXRjaElkZW50aWZpZXIpCisgICAgRGlkUmVjZWl2ZUZldGNoUmVzcG9uc2UoV2ViQ29yZTo6
U1dTZXJ2ZXJDb25uZWN0aW9uSWRlbnRpZmllciBzZXJ2ZXJDb25uZWN0aW9uSWRlbnRpZmllciwg
dWludDY0X3QgZmV0Y2hJZGVudGlmaWVyLCBXZWJDb3JlOjpSZXNvdXJjZVJlc3BvbnNlIHJlc3Bv
bnNlKQorICAgIERpZFJlY2VpdmVGZXRjaERhdGEoV2ViQ29yZTo6U1dTZXJ2ZXJDb25uZWN0aW9u
SWRlbnRpZmllciBzZXJ2ZXJDb25uZWN0aW9uSWRlbnRpZmllciwgdWludDY0X3QgZmV0Y2hJZGVu
dGlmaWVyLCBJUEM6OkRhdGFSZWZlcmVuY2UgZGF0YSwgaW50NjRfdCBlbmNvZGVkRGF0YUxlbmd0
aCkKKyAgICBEaWRSZWNlaXZlRmV0Y2hGb3JtRGF0YShXZWJDb3JlOjpTV1NlcnZlckNvbm5lY3Rp
b25JZGVudGlmaWVyIHNlcnZlckNvbm5lY3Rpb25JZGVudGlmaWVyLCB1aW50NjRfdCBmZXRjaElk
ZW50aWZpZXIsIElQQzo6Rm9ybURhdGFSZWZlcmVuY2UgZGF0YSkKKyAgICBEaWRGaW5pc2hGZXRj
aChXZWJDb3JlOjpTV1NlcnZlckNvbm5lY3Rpb25JZGVudGlmaWVyIHNlcnZlckNvbm5lY3Rpb25J
ZGVudGlmaWVyLCB1aW50NjRfdCBmZXRjaElkZW50aWZpZXIpCiAgICAgUG9zdE1lc3NhZ2VUb1Nl
cnZpY2VXb3JrZXJDbGllbnQoc3RydWN0IFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJDbGllbnRJZGVu
dGlmaWVyIGRlc3RpbmF0aW9uSWRlbnRpZmllciwgSVBDOjpEYXRhUmVmZXJlbmNlIG1lc3NhZ2Us
IFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJJZGVudGlmaWVyIHNvdXJjZUlkZW50aWZpZXIsIFN0cmlu
ZyBzb3VyY2VPcmlnaW4pCiAjZW5kaWYKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU3Rv
cmFnZVByb2Nlc3MvU3RvcmFnZVRvV2ViUHJvY2Vzc0Nvbm5lY3Rpb24uY3BwIGIvU291cmNlL1dl
YktpdC9TdG9yYWdlUHJvY2Vzcy9TdG9yYWdlVG9XZWJQcm9jZXNzQ29ubmVjdGlvbi5jcHAKaW5k
ZXggOWIwOTc3ODUzZjE0MGRjMTQ1OWJhZTZjNTEwYjEwNDdjY2M0YTE1Mi4uNWQ3NDZiNGZkYzhj
NzdhNjdmYWFkYWRkY2FjODNmZjQ4M2MwNmU5NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9T
dG9yYWdlUHJvY2Vzcy9TdG9yYWdlVG9XZWJQcm9jZXNzQ29ubmVjdGlvbi5jcHAKKysrIGIvU291
cmNlL1dlYktpdC9TdG9yYWdlUHJvY2Vzcy9TdG9yYWdlVG9XZWJQcm9jZXNzQ29ubmVjdGlvbi5j
cHAKQEAgLTg1LDcgKzg1LDcgQEAgdm9pZCBTdG9yYWdlVG9XZWJQcm9jZXNzQ29ubmVjdGlvbjo6
ZGlkUmVjZWl2ZU1lc3NhZ2UoSVBDOjpDb25uZWN0aW9uJiBjb25uZWN0aW8KIAogI2lmIEVOQUJM
RShTRVJWSUNFX1dPUktFUikKICAgICBpZiAoZGVjb2Rlci5tZXNzYWdlUmVjZWl2ZXJOYW1lKCkg
PT0gTWVzc2FnZXM6OldlYlNXU2VydmVyQ29ubmVjdGlvbjo6bWVzc2FnZVJlY2VpdmVyTmFtZSgp
KSB7Ci0gICAgICAgIGF1dG8gaXRlcmF0b3IgPSBtX3N3Q29ubmVjdGlvbnMuZmluZChkZWNvZGVy
LmRlc3RpbmF0aW9uSUQoKSk7CisgICAgICAgIGF1dG8gaXRlcmF0b3IgPSBtX3N3Q29ubmVjdGlv
bnMuZmluZChtYWtlT2JqZWN0SWRlbnRpZmllcjxTV1NlcnZlckNvbm5lY3Rpb25JZGVudGlmaWVy
VHlwZT4oZGVjb2Rlci5kZXN0aW5hdGlvbklEKCkpKTsKICAgICAgICAgaWYgKGl0ZXJhdG9yICE9
IG1fc3dDb25uZWN0aW9ucy5lbmQoKSkKICAgICAgICAgICAgIGl0ZXJhdG9yLT52YWx1ZS0+ZGlk
UmVjZWl2ZU1lc3NhZ2UoY29ubmVjdGlvbiwgZGVjb2Rlcik7CiAgICAgICAgIHJldHVybjsKQEAg
LTEzOCwzMSArMTM4LDI2IEBAIHZvaWQgU3RvcmFnZVRvV2ViUHJvY2Vzc0Nvbm5lY3Rpb246OmRp
ZFJlY2VpdmVJbnZhbGlkTWVzc2FnZShJUEM6OkNvbm5lY3Rpb24mLCBJCiAKIH0KIAotc3RhdGlj
IHVpbnQ2NF90IGdlbmVyYXRlQ29ubmVjdGlvblRvU2VydmVySWRlbnRpZmllcigpCi17Ci0gICAg
QVNTRVJUKFJ1bkxvb3A6OmlzTWFpbigpKTsKLSAgICBzdGF0aWMgdWludDY0X3QgaWRlbnRpZmll
ciA9IDA7Ci0gICAgcmV0dXJuICsraWRlbnRpZmllcjsKLX0KLQogI2lmIEVOQUJMRShTRVJWSUNF
X1dPUktFUikKLXZvaWQgU3RvcmFnZVRvV2ViUHJvY2Vzc0Nvbm5lY3Rpb246OmVzdGFibGlzaFNX
U2VydmVyQ29ubmVjdGlvbihTZXNzaW9uSUQgc2Vzc2lvbklELCB1aW50NjRfdCYgc2VydmVyQ29u
bmVjdGlvbklkZW50aWZpZXIpCit2b2lkIFN0b3JhZ2VUb1dlYlByb2Nlc3NDb25uZWN0aW9uOjpl
c3RhYmxpc2hTV1NlcnZlckNvbm5lY3Rpb24oU2Vzc2lvbklEIHNlc3Npb25JRCwgU1dTZXJ2ZXJD
b25uZWN0aW9uSWRlbnRpZmllciYgc2VydmVyQ29ubmVjdGlvbklkZW50aWZpZXIpCiB7Ci0gICAg
c2VydmVyQ29ubmVjdGlvbklkZW50aWZpZXIgPSBnZW5lcmF0ZUNvbm5lY3Rpb25Ub1NlcnZlcklk
ZW50aWZpZXIoKTsKLSAgICBMT0coU2VydmljZVdvcmtlciwgIlN0b3JhZ2VUb1dlYlByb2Nlc3ND
b25uZWN0aW9uOjplc3RhYmxpc2hTV1NlcnZlckNvbm5lY3Rpb24gLSAlIiBQUkl1NjQsIHNlcnZl
ckNvbm5lY3Rpb25JZGVudGlmaWVyKTsKKyAgICBhdXRvJiBzZXJ2ZXIgPSBTdG9yYWdlUHJvY2Vz
czo6c2luZ2xldG9uKCkuc3dTZXJ2ZXJGb3JTZXNzaW9uKHNlc3Npb25JRCk7CisgICAgYXV0byBj
b25uZWN0aW9uID0gc3RkOjptYWtlX3VuaXF1ZTxXZWJTV1NlcnZlckNvbm5lY3Rpb24+KHNlcnZl
ciwgbV9jb25uZWN0aW9uLmdldCgpLCBzZXNzaW9uSUQpOworCisgICAgc2VydmVyQ29ubmVjdGlv
bklkZW50aWZpZXIgPSBjb25uZWN0aW9uLT5pZGVudGlmaWVyKCk7CisgICAgTE9HKFNlcnZpY2VX
b3JrZXIsICJTdG9yYWdlVG9XZWJQcm9jZXNzQ29ubmVjdGlvbjo6ZXN0YWJsaXNoU1dTZXJ2ZXJD
b25uZWN0aW9uIC0gJXMiLCBzZXJ2ZXJDb25uZWN0aW9uSWRlbnRpZmllci5sb2dnaW5nU3RyaW5n
KCkudXRmOCgpLmRhdGEoKSk7CiAgICAgQVNTRVJUKCFtX3N3Q29ubmVjdGlvbnMuY29udGFpbnMo
c2VydmVyQ29ubmVjdGlvbklkZW50aWZpZXIpKTsKIAotICAgIGF1dG8mIHNlcnZlciA9IFN0b3Jh
Z2VQcm9jZXNzOjpzaW5nbGV0b24oKS5zd1NlcnZlckZvclNlc3Npb24oc2Vzc2lvbklEKTsKLSAg
ICBhdXRvIGNvbm5lY3Rpb25SZXN1bHQgPSBtX3N3Q29ubmVjdGlvbnMuYWRkKHNlcnZlckNvbm5l
Y3Rpb25JZGVudGlmaWVyLCBzdGQ6Om1ha2VfdW5pcXVlPFdlYlNXU2VydmVyQ29ubmVjdGlvbj4o
c2VydmVyLCBtX2Nvbm5lY3Rpb24uZ2V0KCksIHNlcnZlckNvbm5lY3Rpb25JZGVudGlmaWVyLCBz
ZXNzaW9uSUQpKTsKLSAgICBBU1NFUlQoY29ubmVjdGlvblJlc3VsdC5pc05ld0VudHJ5KTsKKyAg
ICBhdXRvIGFkZFJlc3VsdCA9IG1fc3dDb25uZWN0aW9ucy5hZGQoc2VydmVyQ29ubmVjdGlvbklk
ZW50aWZpZXIsIFdURk1vdmUoY29ubmVjdGlvbikpOworICAgIEFTU0VSVChhZGRSZXN1bHQuaXNO
ZXdFbnRyeSk7CiAKLSAgICBTdG9yYWdlUHJvY2Vzczo6c2luZ2xldG9uKCkucmVnaXN0ZXJTV1Nl
cnZlckNvbm5lY3Rpb24oKihjb25uZWN0aW9uUmVzdWx0Lml0ZXJhdG9yLT52YWx1ZSkpOworICAg
IFN0b3JhZ2VQcm9jZXNzOjpzaW5nbGV0b24oKS5yZWdpc3RlclNXU2VydmVyQ29ubmVjdGlvbigq
KGFkZFJlc3VsdC5pdGVyYXRvci0+dmFsdWUpKTsKIAogICAgIGlmICghU3RvcmFnZVByb2Nlc3M6
OnNpbmdsZXRvbigpLmdsb2JhbFNlcnZlclRvQ29udGV4dENvbm5lY3Rpb24oKSkKICAgICAgICAg
U3RvcmFnZVByb2Nlc3M6OnNpbmdsZXRvbigpLmNyZWF0ZVNlcnZlclRvQ29udGV4dENvbm5lY3Rp
b24oKTsKIH0KIAotdm9pZCBTdG9yYWdlVG9XZWJQcm9jZXNzQ29ubmVjdGlvbjo6cmVtb3ZlU1dT
ZXJ2ZXJDb25uZWN0aW9uKHVpbnQ2NF90IHNlcnZlckNvbm5lY3Rpb25JZGVudGlmaWVyKQordm9p
ZCBTdG9yYWdlVG9XZWJQcm9jZXNzQ29ubmVjdGlvbjo6cmVtb3ZlU1dTZXJ2ZXJDb25uZWN0aW9u
KFdlYkNvcmU6OlNXU2VydmVyOjpDb25uZWN0aW9uOjpJZGVudGlmaWVyIHNlcnZlckNvbm5lY3Rp
b25JZGVudGlmaWVyKQogewogICAgIEFTU0VSVChtX3N3Q29ubmVjdGlvbnMuY29udGFpbnMoc2Vy
dmVyQ29ubmVjdGlvbklkZW50aWZpZXIpKTsKIApAQCAtMTc5LDkgKzE3NCwxNiBAQCB2b2lkIFN0
b3JhZ2VUb1dlYlByb2Nlc3NDb25uZWN0aW9uOjp3b3JrZXJDb250ZXh0UHJvY2Vzc0Nvbm5lY3Rp
b25DcmVhdGVkKCkKICNlbmRpZgogCiAjaWYgRU5BQkxFKElOREVYRURfREFUQUJBU0UpCitzdGF0
aWMgdWludDY0X3QgZ2VuZXJhdGVJREJDb25uZWN0aW9uVG9TZXJ2ZXJJZGVudGlmaWVyKCkKK3sK
KyAgICBBU1NFUlQoUnVuTG9vcDo6aXNNYWluKCkpOworICAgIHN0YXRpYyB1aW50NjRfdCBpZGVu
dGlmaWVyID0gMDsKKyAgICByZXR1cm4gKytpZGVudGlmaWVyOworfQorCiB2b2lkIFN0b3JhZ2VU
b1dlYlByb2Nlc3NDb25uZWN0aW9uOjplc3RhYmxpc2hJREJDb25uZWN0aW9uVG9TZXJ2ZXIoU2Vz
c2lvbklEIHNlc3Npb25JRCwgdWludDY0X3QmIHNlcnZlckNvbm5lY3Rpb25JZGVudGlmaWVyKQog
ewotICAgIHNlcnZlckNvbm5lY3Rpb25JZGVudGlmaWVyID0gZ2VuZXJhdGVDb25uZWN0aW9uVG9T
ZXJ2ZXJJZGVudGlmaWVyKCk7CisgICAgc2VydmVyQ29ubmVjdGlvbklkZW50aWZpZXIgPSBnZW5l
cmF0ZUlEQkNvbm5lY3Rpb25Ub1NlcnZlcklkZW50aWZpZXIoKTsKICAgICBMT0coSW5kZXhlZERC
LCAiU3RvcmFnZVRvV2ViUHJvY2Vzc0Nvbm5lY3Rpb246OmVzdGFibGlzaElEQkNvbm5lY3Rpb25U
b1NlcnZlciAtICUiIFBSSXU2NCwgc2VydmVyQ29ubmVjdGlvbklkZW50aWZpZXIpOwogICAgIEFT
U0VSVCghbV93ZWJJREJDb25uZWN0aW9ucy5jb250YWlucyhzZXJ2ZXJDb25uZWN0aW9uSWRlbnRp
ZmllcikpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1N0b3JhZ2VQcm9jZXNzL1N0b3Jh
Z2VUb1dlYlByb2Nlc3NDb25uZWN0aW9uLmggYi9Tb3VyY2UvV2ViS2l0L1N0b3JhZ2VQcm9jZXNz
L1N0b3JhZ2VUb1dlYlByb2Nlc3NDb25uZWN0aW9uLmgKaW5kZXggNWI5Y2U4YWE1YWM3YjM2YzMz
MGQyYTljYjk3MGRiYzIwMjcxODUyNS4uYWRjN2ZkNzBmNmNmYWRhZmQzMjk2ZWEzZjY4NTU2Njk2
ZGRmNmYzNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9TdG9yYWdlUHJvY2Vzcy9TdG9yYWdl
VG9XZWJQcm9jZXNzQ29ubmVjdGlvbi5oCisrKyBiL1NvdXJjZS9XZWJLaXQvU3RvcmFnZVByb2Nl
c3MvU3RvcmFnZVRvV2ViUHJvY2Vzc0Nvbm5lY3Rpb24uaApAQCAtNzIsOSArNzIsOSBAQCBwcml2
YXRlOgogI2VuZGlmIC8vIEVOQUJMRShJTkRFWEVEX0RBVEFCQVNFKQogCiAjaWYgRU5BQkxFKFNF
UlZJQ0VfV09SS0VSKQotICAgIHZvaWQgZXN0YWJsaXNoU1dTZXJ2ZXJDb25uZWN0aW9uKFBBTDo6
U2Vzc2lvbklELCB1aW50NjRfdCYgc2VydmVyQ29ubmVjdGlvbklkZW50aWZpZXIpOwotICAgIHZv
aWQgcmVtb3ZlU1dTZXJ2ZXJDb25uZWN0aW9uKHVpbnQ2NF90IHNlcnZlckNvbm5lY3Rpb25JZGVu
dGlmaWVyKTsKLSAgICBIYXNoTWFwPHVpbnQ2NF90LCBzdGQ6OnVuaXF1ZV9wdHI8V2ViU1dTZXJ2
ZXJDb25uZWN0aW9uPj4gbV9zd0Nvbm5lY3Rpb25zOworICAgIHZvaWQgZXN0YWJsaXNoU1dTZXJ2
ZXJDb25uZWN0aW9uKFBBTDo6U2Vzc2lvbklELCBXZWJDb3JlOjpTV1NlcnZlckNvbm5lY3Rpb25J
ZGVudGlmaWVyJik7CisgICAgdm9pZCByZW1vdmVTV1NlcnZlckNvbm5lY3Rpb24oV2ViQ29yZTo6
U1dTZXJ2ZXJDb25uZWN0aW9uSWRlbnRpZmllcik7CisgICAgSGFzaE1hcDxXZWJDb3JlOjpTV1Nl
cnZlckNvbm5lY3Rpb25JZGVudGlmaWVyLCBzdGQ6OnVuaXF1ZV9wdHI8V2ViU1dTZXJ2ZXJDb25u
ZWN0aW9uPj4gbV9zd0Nvbm5lY3Rpb25zOwogI2VuZGlmCiAKICAgICBSZWY8SVBDOjpDb25uZWN0
aW9uPiBtX2Nvbm5lY3Rpb247CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1N0b3JhZ2VQcm9j
ZXNzL1N0b3JhZ2VUb1dlYlByb2Nlc3NDb25uZWN0aW9uLm1lc3NhZ2VzLmluIGIvU291cmNlL1dl
YktpdC9TdG9yYWdlUHJvY2Vzcy9TdG9yYWdlVG9XZWJQcm9jZXNzQ29ubmVjdGlvbi5tZXNzYWdl
cy5pbgppbmRleCBlMWRhMDQ5NjllZmQ3N2QwNmNiYTUzNjkxNzVmYzhiYjZiZjg2MTgxLi41OWEx
ODU4M2IxZjc1Y2FlOTJjZGFhNWFlZTFhODkwY2QzZTRkNTg3IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L1N0b3JhZ2VQcm9jZXNzL1N0b3JhZ2VUb1dlYlByb2Nlc3NDb25uZWN0aW9uLm1lc3Nh
Z2VzLmluCisrKyBiL1NvdXJjZS9XZWJLaXQvU3RvcmFnZVByb2Nlc3MvU3RvcmFnZVRvV2ViUHJv
Y2Vzc0Nvbm5lY3Rpb24ubWVzc2FnZXMuaW4KQEAgLTI2LDcgKzI2LDcgQEAgbWVzc2FnZXMgLT4g
U3RvcmFnZVRvV2ViUHJvY2Vzc0Nvbm5lY3Rpb24gTGVnYWN5UmVjZWl2ZXIgewogICAgIFJlbW92
ZUlEQkNvbm5lY3Rpb25Ub1NlcnZlcih1aW50NjRfdCBzZXJ2ZXJDb25uZWN0aW9uSWRlbnRpZmll
cikKICNlbmRpZgogI2lmIEVOQUJMRShTRVJWSUNFX1dPUktFUikKLSAgICBFc3RhYmxpc2hTV1Nl
cnZlckNvbm5lY3Rpb24oUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklEKSAtPiAodWludDY0X3Qgc2Vy
dmVyQ29ubmVjdGlvbklkZW50aWZpZXIpCi0gICAgUmVtb3ZlU1dTZXJ2ZXJDb25uZWN0aW9uKHVp
bnQ2NF90IHNlcnZlckNvbm5lY3Rpb25JZGVudGlmaWVyKQorICAgIEVzdGFibGlzaFNXU2VydmVy
Q29ubmVjdGlvbihQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQpIC0+IChXZWJDb3JlOjpTV1NlcnZl
ckNvbm5lY3Rpb25JZGVudGlmaWVyIHNlcnZlckNvbm5lY3Rpb25JZGVudGlmaWVyKQorICAgIFJl
bW92ZVNXU2VydmVyQ29ubmVjdGlvbihXZWJDb3JlOjpTV1NlcnZlckNvbm5lY3Rpb25JZGVudGlm
aWVyIHNlcnZlckNvbm5lY3Rpb25JZGVudGlmaWVyKQogI2VuZGlmCiB9CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvU3RvcmFnZS9XZWJTV0NsaWVudENvbm5lY3Rpb24uY3Bw
IGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1N0b3JhZ2UvV2ViU1dDbGllbnRDb25uZWN0aW9u
LmNwcAppbmRleCAwOGZhODAyODNmZGQwMDEyOGUwMzQzYzNlYmIwMjgxOTAwNTlkZTJhLi5jODQ3
NjU0ZjQ1N2RmZDQ2ZWEwNGE4ZDY1MzdkNTQyN2RhNzZkNzk4IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvU3RvcmFnZS9XZWJTV0NsaWVudENvbm5lY3Rpb24uY3BwCisrKyBi
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9TdG9yYWdlL1dlYlNXQ2xpZW50Q29ubmVjdGlvbi5j
cHAKQEAgLTgyLDkgKzgyLDkgQEAgdm9pZCBXZWJTV0NsaWVudENvbm5lY3Rpb246OnJlbW92ZVNl
cnZpY2VXb3JrZXJSZWdpc3RyYXRpb25JblNlcnZlcihjb25zdCBTZXJ2aWMKICAgICBzZW5kKE1l
c3NhZ2VzOjpXZWJTV1NlcnZlckNvbm5lY3Rpb246OlJlbW92ZVNlcnZpY2VXb3JrZXJSZWdpc3Ry
YXRpb25JblNlcnZlcihrZXksIGlkZW50aWZpZXIpKTsKIH0KIAotdm9pZCBXZWJTV0NsaWVudENv
bm5lY3Rpb246OnBvc3RNZXNzYWdlVG9TZXJ2aWNlV29ya2VyR2xvYmFsU2NvcGUoU2VydmljZVdv
cmtlcklkZW50aWZpZXIgZGVzdGluYXRpb25JZGVudGlmaWVyLCBSZWY8U2VyaWFsaXplZFNjcmlw
dFZhbHVlPiYmIHNjcmlwdFZhbHVlLCBTZXJ2aWNlV29ya2VyQ2xpZW50RGF0YSYmIHNvdXJjZSkK
K3ZvaWQgV2ViU1dDbGllbnRDb25uZWN0aW9uOjpwb3N0TWVzc2FnZVRvU2VydmljZVdvcmtlckds
b2JhbFNjb3BlKFNlcnZpY2VXb3JrZXJJZGVudGlmaWVyIGRlc3RpbmF0aW9uSWRlbnRpZmllciwg
UmVmPFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZT4mJiBzY3JpcHRWYWx1ZSwgdWludDY0X3Qgc291cmNl
Q29udGV4dElkZW50aWZpZXIsIFNlcnZpY2VXb3JrZXJDbGllbnREYXRhJiYgc291cmNlKQogewot
ICAgIHNlbmQoTWVzc2FnZXM6OldlYlNXU2VydmVyQ29ubmVjdGlvbjo6UG9zdE1lc3NhZ2VUb1Nl
cnZpY2VXb3JrZXJHbG9iYWxTY29wZShkZXN0aW5hdGlvbklkZW50aWZpZXIsIElQQzo6RGF0YVJl
ZmVyZW5jZSB7IHNjcmlwdFZhbHVlLT5kYXRhKCkgfSwgV1RGTW92ZShzb3VyY2UpKSk7CisgICAg
c2VuZChNZXNzYWdlczo6V2ViU1dTZXJ2ZXJDb25uZWN0aW9uOjpQb3N0TWVzc2FnZVRvU2Vydmlj
ZVdvcmtlckdsb2JhbFNjb3BlKGRlc3RpbmF0aW9uSWRlbnRpZmllciwgSVBDOjpEYXRhUmVmZXJl
bmNlIHsgc2NyaXB0VmFsdWUtPmRhdGEoKSB9LCBzb3VyY2VDb250ZXh0SWRlbnRpZmllciwgV1RG
TW92ZShzb3VyY2UpKSk7CiB9CiAKIHZvaWQgV2ViU1dDbGllbnRDb25uZWN0aW9uOjpzZXJ2aWNl
V29ya2VyU3RhcnRlZENvbnRyb2xsaW5nQ2xpZW50KFNlcnZpY2VXb3JrZXJJZGVudGlmaWVyIHNl
cnZpY2VXb3JrZXJJZGVudGlmaWVyLCB1aW50NjRfdCBzY3JpcHRFeGVjdXRpb25Db250ZXh0SWRl
bnRpZmllcikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9TdG9yYWdlL1dl
YlNXQ2xpZW50Q29ubmVjdGlvbi5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1N0b3JhZ2Uv
V2ViU1dDbGllbnRDb25uZWN0aW9uLmgKaW5kZXggYjQwNzVhMjlkMjMzYTFkNDNiY2JkZWEwNjE5
MDdjYmUyMTY4NTc0My4uYWJhM2M3Mjg5MzFlNGU3NTIzZjk3YTljMGY0ZDA1MDc4OTg0NTI2NCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1N0b3JhZ2UvV2ViU1dDbGllbnRD
b25uZWN0aW9uLmgKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1N0b3JhZ2UvV2ViU1dD
bGllbnRDb25uZWN0aW9uLmgKQEAgLTUyLDcgKzUyLDcgQEAgcHVibGljOgogICAgIFdlYlNXQ2xp
ZW50Q29ubmVjdGlvbihjb25zdCBXZWJTV0NsaWVudENvbm5lY3Rpb24mKSA9IGRlbGV0ZTsKICAg
ICB+V2ViU1dDbGllbnRDb25uZWN0aW9uKCkgZmluYWw7CiAKLSAgICB1aW50NjRfdCBpZGVudGlm
aWVyKCkgY29uc3QgZmluYWwgeyByZXR1cm4gbV9pZGVudGlmaWVyOyB9CisgICAgV2ViQ29yZTo6
U1dTZXJ2ZXJDb25uZWN0aW9uSWRlbnRpZmllciBzZXJ2ZXJDb25uZWN0aW9uSWRlbnRpZmllcigp
IGNvbnN0IGZpbmFsIHsgcmV0dXJuIG1faWRlbnRpZmllcjsgfQogCiAgICAgdm9pZCBhZGRTZXJ2
aWNlV29ya2VyUmVnaXN0cmF0aW9uSW5TZXJ2ZXIoY29uc3QgV2ViQ29yZTo6U2VydmljZVdvcmtl
clJlZ2lzdHJhdGlvbktleSYsIFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb25JZGVu
dGlmaWVyKSBmaW5hbDsKICAgICB2b2lkIHJlbW92ZVNlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb25J
blNlcnZlcihjb25zdCBXZWJDb3JlOjpTZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uS2V5JiwgV2Vi
Q29yZTo6U2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbklkZW50aWZpZXIpIGZpbmFsOwpAQCAtNjgs
NyArNjgsNyBAQCBwdWJsaWM6CiBwcml2YXRlOgogICAgIHZvaWQgc2NoZWR1bGVKb2JJblNlcnZl
cihjb25zdCBXZWJDb3JlOjpTZXJ2aWNlV29ya2VySm9iRGF0YSYpIGZpbmFsOwogICAgIHZvaWQg
ZmluaXNoRmV0Y2hpbmdTY3JpcHRJblNlcnZlcihjb25zdCBXZWJDb3JlOjpTZXJ2aWNlV29ya2Vy
RmV0Y2hSZXN1bHQmKSBmaW5hbDsKLSAgICB2b2lkIHBvc3RNZXNzYWdlVG9TZXJ2aWNlV29ya2Vy
R2xvYmFsU2NvcGUoV2ViQ29yZTo6U2VydmljZVdvcmtlcklkZW50aWZpZXIgZGVzdGluYXRpb25J
ZGVudGlmaWVyLCBSZWY8V2ViQ29yZTo6U2VyaWFsaXplZFNjcmlwdFZhbHVlPiYmLCBXZWJDb3Jl
OjpTZXJ2aWNlV29ya2VyQ2xpZW50RGF0YSYmIHNvdXJjZSkgZmluYWw7CisgICAgdm9pZCBwb3N0
TWVzc2FnZVRvU2VydmljZVdvcmtlckdsb2JhbFNjb3BlKFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJJ
ZGVudGlmaWVyIGRlc3RpbmF0aW9uSWRlbnRpZmllciwgUmVmPFdlYkNvcmU6OlNlcmlhbGl6ZWRT
Y3JpcHRWYWx1ZT4mJiwgdWludDY0X3Qgc291cmNlQ29udGV4dElkZW50aWZpZXIsIFdlYkNvcmU6
OlNlcnZpY2VXb3JrZXJDbGllbnREYXRhJiYgc291cmNlKSBmaW5hbDsKICAgICB2b2lkIHNlcnZp
Y2VXb3JrZXJTdGFydGVkQ29udHJvbGxpbmdDbGllbnQoV2ViQ29yZTo6U2VydmljZVdvcmtlcklk
ZW50aWZpZXIsIHVpbnQ2NF90IHNjcmlwdEV4ZWN1dGlvbkNvbnRleHRJZGVudGlmaWVyKSBmaW5h
bDsKICAgICB2b2lkIHNlcnZpY2VXb3JrZXJTdG9wcGVkQ29udHJvbGxpbmdDbGllbnQoV2ViQ29y
ZTo6U2VydmljZVdvcmtlcklkZW50aWZpZXIsIHVpbnQ2NF90IHNjcmlwdEV4ZWN1dGlvbkNvbnRl
eHRJZGVudGlmaWVyKSBmaW5hbDsKIApAQCAtODMsMTMgKzgzLDEzIEBAIHByaXZhdGU6CiAgICAg
dm9pZCBzY2hlZHVsZVN0b3JhZ2VKb2IoY29uc3QgV2ViQ29yZTo6U2VydmljZVdvcmtlckpvYkRh
dGEmKTsKIAogICAgIElQQzo6Q29ubmVjdGlvbiogbWVzc2FnZVNlbmRlckNvbm5lY3Rpb24oKSBm
aW5hbCB7IHJldHVybiBtX2Nvbm5lY3Rpb24ucHRyKCk7IH0KLSAgICB1aW50NjRfdCBtZXNzYWdl
U2VuZGVyRGVzdGluYXRpb25JRCgpIGZpbmFsIHsgcmV0dXJuIG1faWRlbnRpZmllcjsgfQorICAg
IHVpbnQ2NF90IG1lc3NhZ2VTZW5kZXJEZXN0aW5hdGlvbklEKCkgZmluYWwgeyByZXR1cm4gbV9p
ZGVudGlmaWVyLnRvVUludDY0KCk7IH0KIAogICAgIHZvaWQgc2V0U1dPcmlnaW5UYWJsZVNoYXJl
ZE1lbW9yeShjb25zdCBTaGFyZWRNZW1vcnk6OkhhbmRsZSYpOwogICAgIHZvaWQgaW5pdGlhbGl6
ZVNXT3JpZ2luVGFibGVBc0VtcHR5KCk7CiAKICAgICBQQUw6OlNlc3Npb25JRCBtX3Nlc3Npb25J
RDsKLSAgICB1aW50NjRfdCBtX2lkZW50aWZpZXI7CisgICAgV2ViQ29yZTo6U1dTZXJ2ZXJDb25u
ZWN0aW9uSWRlbnRpZmllciBtX2lkZW50aWZpZXI7CiAKICAgICBSZWY8SVBDOjpDb25uZWN0aW9u
PiBtX2Nvbm5lY3Rpb247CiAgICAgVW5pcXVlUmVmPFdlYlNXT3JpZ2luVGFibGU+IG1fc3dPcmln
aW5UYWJsZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9TdG9yYWdlL1dl
YlNXQ29udGV4dE1hbmFnZXJDb25uZWN0aW9uLmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9TdG9yYWdlL1dlYlNXQ29udGV4dE1hbmFnZXJDb25uZWN0aW9uLmNwcAppbmRleCA5NGFjYTNk
M2IwYjJmOWI0MTAxMGY3ZGYwODM4ZjRmZmY4ODQwODE4Li45NjEyY2I0YjMzYzM0NjRjOTlmNThj
NTJiZTM3YjBhZWFkNWZjNDc0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
U3RvcmFnZS9XZWJTV0NvbnRleHRNYW5hZ2VyQ29ubmVjdGlvbi5jcHAKKysrIGIvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL1N0b3JhZ2UvV2ViU1dDb250ZXh0TWFuYWdlckNvbm5lY3Rpb24uY3Bw
CkBAIC0xMzIsNyArMTMyLDcgQEAgdm9pZCBXZWJTV0NvbnRleHRNYW5hZ2VyQ29ubmVjdGlvbjo6
c2VydmljZVdvcmtlclN0YXJ0ZWRXaXRoTWVzc2FnZShTZXJ2aWNlV29ya2UKICAgICAgICAgbV9j
b25uZWN0aW9uVG9TdG9yYWdlUHJvY2Vzcy0+c2VuZChNZXNzYWdlczo6V2ViU1dTZXJ2ZXJUb0Nv
bnRleHRDb25uZWN0aW9uOjpTY3JpcHRDb250ZXh0RmFpbGVkVG9TdGFydChzZXJ2aWNlV29ya2Vy
SWRlbnRpZmllciwgZXhjZXB0aW9uTWVzc2FnZSksIDApOwogfQogCi12b2lkIFdlYlNXQ29udGV4
dE1hbmFnZXJDb25uZWN0aW9uOjpzdGFydEZldGNoKHVpbnQ2NF90IHNlcnZlckNvbm5lY3Rpb25J
ZGVudGlmaWVyLCB1aW50NjRfdCBmZXRjaElkZW50aWZpZXIsIHN0ZDo6b3B0aW9uYWw8U2Vydmlj
ZVdvcmtlcklkZW50aWZpZXI+IHNlcnZpY2VXb3JrZXJJZGVudGlmaWVyLCBSZXNvdXJjZVJlcXVl
c3QmJiByZXF1ZXN0LCBGZXRjaE9wdGlvbnMmJiBvcHRpb25zLCBJUEM6OkZvcm1EYXRhUmVmZXJl
bmNlJiYgZm9ybURhdGEpCit2b2lkIFdlYlNXQ29udGV4dE1hbmFnZXJDb25uZWN0aW9uOjpzdGFy
dEZldGNoKFNXU2VydmVyQ29ubmVjdGlvbklkZW50aWZpZXIgc2VydmVyQ29ubmVjdGlvbklkZW50
aWZpZXIsIHVpbnQ2NF90IGZldGNoSWRlbnRpZmllciwgc3RkOjpvcHRpb25hbDxTZXJ2aWNlV29y
a2VySWRlbnRpZmllcj4gc2VydmljZVdvcmtlcklkZW50aWZpZXIsIFJlc291cmNlUmVxdWVzdCYm
IHJlcXVlc3QsIEZldGNoT3B0aW9ucyYmIG9wdGlvbnMsIElQQzo6Rm9ybURhdGFSZWZlcmVuY2Um
JiBmb3JtRGF0YSkKIHsKICAgICBhdXRvKiBzZXJ2aWNlV29ya2VyVGhyZWFkUHJveHkgPSBzZXJ2
aWNlV29ya2VySWRlbnRpZmllciA/IFNXQ29udGV4dE1hbmFnZXI6OnNpbmdsZXRvbigpLnNlcnZp
Y2VXb3JrZXJUaHJlYWRQcm94eSgqc2VydmljZVdvcmtlcklkZW50aWZpZXIpIDogbnVsbHB0cjsK
ICAgICBpZiAoIXNlcnZpY2VXb3JrZXJUaHJlYWRQcm94eSkgewpAQCAtMTQ2LDkgKzE0Niw5IEBA
IHZvaWQgV2ViU1dDb250ZXh0TWFuYWdlckNvbm5lY3Rpb246OnN0YXJ0RmV0Y2godWludDY0X3Qg
c2VydmVyQ29ubmVjdGlvbklkZW50aWZpCiAgICAgc2VydmljZVdvcmtlclRocmVhZFByb3h5LT50
aHJlYWQoKS5wb3N0RmV0Y2hUYXNrKFdURk1vdmUoY2xpZW50KSwgV1RGTW92ZShyZXF1ZXN0KSwg
V1RGTW92ZShvcHRpb25zKSk7CiB9CiAKLXZvaWQgV2ViU1dDb250ZXh0TWFuYWdlckNvbm5lY3Rp
b246OnBvc3RNZXNzYWdlVG9TZXJ2aWNlV29ya2VyR2xvYmFsU2NvcGUoU2VydmljZVdvcmtlcklk
ZW50aWZpZXIgZGVzdGluYXRpb25JZGVudGlmaWVyLCBjb25zdCBJUEM6OkRhdGFSZWZlcmVuY2Um
IG1lc3NhZ2UsIFNlcnZpY2VXb3JrZXJDbGllbnREYXRhJiYgc291cmNlKQordm9pZCBXZWJTV0Nv
bnRleHRNYW5hZ2VyQ29ubmVjdGlvbjo6cG9zdE1lc3NhZ2VUb1NlcnZpY2VXb3JrZXJHbG9iYWxT
Y29wZShTZXJ2aWNlV29ya2VySWRlbnRpZmllciBkZXN0aW5hdGlvbklkZW50aWZpZXIsIGNvbnN0
IElQQzo6RGF0YVJlZmVyZW5jZSYgbWVzc2FnZSwgU2VydmljZVdvcmtlckNsaWVudElkZW50aWZp
ZXIgc291cmNlSWRlbnRpZmllciwgU2VydmljZVdvcmtlckNsaWVudERhdGEmJiBzb3VyY2VEYXRh
KQogewotICAgIFNXQ29udGV4dE1hbmFnZXI6OnNpbmdsZXRvbigpLnBvc3RNZXNzYWdlVG9TZXJ2
aWNlV29ya2VyR2xvYmFsU2NvcGUoZGVzdGluYXRpb25JZGVudGlmaWVyLCBTZXJpYWxpemVkU2Ny
aXB0VmFsdWU6OmFkb3B0KG1lc3NhZ2UudmVjdG9yKCkpLCBXVEZNb3ZlKHNvdXJjZSkpOworICAg
IFNXQ29udGV4dE1hbmFnZXI6OnNpbmdsZXRvbigpLnBvc3RNZXNzYWdlVG9TZXJ2aWNlV29ya2Vy
R2xvYmFsU2NvcGUoZGVzdGluYXRpb25JZGVudGlmaWVyLCBTZXJpYWxpemVkU2NyaXB0VmFsdWU6
OmFkb3B0KG1lc3NhZ2UudmVjdG9yKCkpLCBzb3VyY2VJZGVudGlmaWVyLCBXVEZNb3ZlKHNvdXJj
ZURhdGEpKTsKIH0KIAogdm9pZCBXZWJTV0NvbnRleHRNYW5hZ2VyQ29ubmVjdGlvbjo6ZmlyZUlu
c3RhbGxFdmVudChTZXJ2aWNlV29ya2VySWRlbnRpZmllciBpZGVudGlmaWVyKQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1N0b3JhZ2UvV2ViU1dDb250ZXh0TWFuYWdlckNv
bm5lY3Rpb24uaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9TdG9yYWdlL1dlYlNXQ29udGV4
dE1hbmFnZXJDb25uZWN0aW9uLmgKaW5kZXggYWJjNTI1MTZjOWU5MDI1OWU0MWM3ZmFiMjFjYTRm
ZGY4NzNkNjRjOC4uNDE0MDBjZmMzZjdmNjUzNzVmY2QwZWZjZDA4M2FjZThkYTljNjNlMiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1N0b3JhZ2UvV2ViU1dDb250ZXh0TWFu
YWdlckNvbm5lY3Rpb24uaAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvU3RvcmFnZS9X
ZWJTV0NvbnRleHRNYW5hZ2VyQ29ubmVjdGlvbi5oCkBAIC0zMCw2ICszMCw3IEBACiAjaW5jbHVk
ZSAiQ29ubmVjdGlvbi5oIgogI2luY2x1ZGUgIk1lc3NhZ2VSZWNlaXZlci5oIgogI2luY2x1ZGUg
PFdlYkNvcmUvU1dDb250ZXh0TWFuYWdlci5oPgorI2luY2x1ZGUgPFdlYkNvcmUvU2VydmljZVdv
cmtlclR5cGVzLmg+CiAKIG5hbWVzcGFjZSBJUEMgewogY2xhc3MgRm9ybURhdGFSZWZlcmVuY2U7
CkBAIC02NCw4ICs2NSw4IEBAIHByaXZhdGU6CiAgICAgLy8gSVBDIG1lc3NhZ2VzLgogICAgIHZv
aWQgc2VydmljZVdvcmtlclN0YXJ0ZWRXaXRoTWVzc2FnZShXZWJDb3JlOjpTZXJ2aWNlV29ya2Vy
SWRlbnRpZmllciwgY29uc3QgU3RyaW5nJiBleGNlcHRpb25NZXNzYWdlKSBmaW5hbDsKICAgICB2
b2lkIGluc3RhbGxTZXJ2aWNlV29ya2VyKGNvbnN0IFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJDb250
ZXh0RGF0YSYpOwotICAgIHZvaWQgc3RhcnRGZXRjaCh1aW50NjRfdCBzZXJ2ZXJDb25uZWN0aW9u
SWRlbnRpZmllciwgdWludDY0X3QgZmV0Y2hJZGVudGlmaWVyLCBzdGQ6Om9wdGlvbmFsPFdlYkNv
cmU6OlNlcnZpY2VXb3JrZXJJZGVudGlmaWVyPiwgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiYs
IFdlYkNvcmU6OkZldGNoT3B0aW9ucyYmLCBJUEM6OkZvcm1EYXRhUmVmZXJlbmNlJiYpOwotICAg
IHZvaWQgcG9zdE1lc3NhZ2VUb1NlcnZpY2VXb3JrZXJHbG9iYWxTY29wZShXZWJDb3JlOjpTZXJ2
aWNlV29ya2VySWRlbnRpZmllciBkZXN0aW5hdGlvbklkZW50aWZpZXIsIGNvbnN0IElQQzo6RGF0
YVJlZmVyZW5jZSYgbWVzc2FnZSwgV2ViQ29yZTo6U2VydmljZVdvcmtlckNsaWVudERhdGEmJiBz
b3VyY2UpOworICAgIHZvaWQgc3RhcnRGZXRjaChXZWJDb3JlOjpTV1NlcnZlckNvbm5lY3Rpb25J
ZGVudGlmaWVyLCB1aW50NjRfdCBmZXRjaElkZW50aWZpZXIsIHN0ZDo6b3B0aW9uYWw8V2ViQ29y
ZTo6U2VydmljZVdvcmtlcklkZW50aWZpZXI+LCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmJiwg
V2ViQ29yZTo6RmV0Y2hPcHRpb25zJiYsIElQQzo6Rm9ybURhdGFSZWZlcmVuY2UmJik7CisgICAg
dm9pZCBwb3N0TWVzc2FnZVRvU2VydmljZVdvcmtlckdsb2JhbFNjb3BlKFdlYkNvcmU6OlNlcnZp
Y2VXb3JrZXJJZGVudGlmaWVyIGRlc3RpbmF0aW9uSWRlbnRpZmllciwgY29uc3QgSVBDOjpEYXRh
UmVmZXJlbmNlJiBtZXNzYWdlLCBXZWJDb3JlOjpTZXJ2aWNlV29ya2VyQ2xpZW50SWRlbnRpZmll
ciBzb3VyY2VJZGVudGlmaWVyLCBXZWJDb3JlOjpTZXJ2aWNlV29ya2VyQ2xpZW50RGF0YSYmIHNv
dXJjZURhdGEpOwogICAgIHZvaWQgZmlyZUluc3RhbGxFdmVudChXZWJDb3JlOjpTZXJ2aWNlV29y
a2VySWRlbnRpZmllcik7CiAgICAgdm9pZCBmaXJlQWN0aXZhdGVFdmVudChXZWJDb3JlOjpTZXJ2
aWNlV29ya2VySWRlbnRpZmllcik7CiAgICAgdm9pZCB0ZXJtaW5hdGVXb3JrZXIoV2ViQ29yZTo6
U2VydmljZVdvcmtlcklkZW50aWZpZXIpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL1N0b3JhZ2UvV2ViU1dDb250ZXh0TWFuYWdlckNvbm5lY3Rpb24ubWVzc2FnZXMuaW4g
Yi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvU3RvcmFnZS9XZWJTV0NvbnRleHRNYW5hZ2VyQ29u
bmVjdGlvbi5tZXNzYWdlcy5pbgppbmRleCA3MzczMmNjYTUwNTU5OGVmMzU2YjdlMmMwYWJiYmZm
Y2RjMDJjZmM4Li43MzZmZGY1YjQ3MTc5YmU0MGVkYTEyYzlmYzZkNzI2NjJjMWQ3YmM0IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvU3RvcmFnZS9XZWJTV0NvbnRleHRNYW5h
Z2VyQ29ubmVjdGlvbi5tZXNzYWdlcy5pbgorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
U3RvcmFnZS9XZWJTV0NvbnRleHRNYW5hZ2VyQ29ubmVjdGlvbi5tZXNzYWdlcy5pbgpAQCAtMjQs
OCArMjQsOCBAQAogCiBtZXNzYWdlcyAtPiBXZWJTV0NvbnRleHRNYW5hZ2VyQ29ubmVjdGlvbiB7
CiAgICAgSW5zdGFsbFNlcnZpY2VXb3JrZXIoc3RydWN0IFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJD
b250ZXh0RGF0YSBjb250ZXh0RGF0YSkKLSAgICBTdGFydEZldGNoKHVpbnQ2NF90IHNlcnZlckNv
bm5lY3Rpb25JZGVudGlmaWVyLCB1aW50NjRfdCBmZXRjaElkZW50aWZpZXIsIHN0ZDo6b3B0aW9u
YWw8V2ViQ29yZTo6U2VydmljZVdvcmtlcklkZW50aWZpZXI+IHNlcnZpY2VXb3JrZXJJZGVudGlm
aWVyLCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QgcmVxdWVzdCwgc3RydWN0IFdlYkNvcmU6OkZl
dGNoT3B0aW9ucyBvcHRpb25zLCBJUEM6OkZvcm1EYXRhUmVmZXJlbmNlIHJlcXVlc3RCb2R5KQot
ICAgIFBvc3RNZXNzYWdlVG9TZXJ2aWNlV29ya2VyR2xvYmFsU2NvcGUoV2ViQ29yZTo6U2Vydmlj
ZVdvcmtlcklkZW50aWZpZXIgZGVzdGluYXRpb25JZGVudGlmaWVyLCBJUEM6OkRhdGFSZWZlcmVu
Y2UgbWVzc2FnZSwgc3RydWN0IFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJDbGllbnREYXRhIHNvdXJj
ZSkKKyAgICBTdGFydEZldGNoKFdlYkNvcmU6OlNXU2VydmVyQ29ubmVjdGlvbklkZW50aWZpZXIg
c2VydmVyQ29ubmVjdGlvbklkZW50aWZpZXIsIHVpbnQ2NF90IGZldGNoSWRlbnRpZmllciwgc3Rk
OjpvcHRpb25hbDxXZWJDb3JlOjpTZXJ2aWNlV29ya2VySWRlbnRpZmllcj4gc2VydmljZVdvcmtl
cklkZW50aWZpZXIsIFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCByZXF1ZXN0LCBzdHJ1Y3QgV2Vi
Q29yZTo6RmV0Y2hPcHRpb25zIG9wdGlvbnMsIElQQzo6Rm9ybURhdGFSZWZlcmVuY2UgcmVxdWVz
dEJvZHkpCisgICAgUG9zdE1lc3NhZ2VUb1NlcnZpY2VXb3JrZXJHbG9iYWxTY29wZShXZWJDb3Jl
OjpTZXJ2aWNlV29ya2VySWRlbnRpZmllciBkZXN0aW5hdGlvbklkZW50aWZpZXIsIElQQzo6RGF0
YVJlZmVyZW5jZSBtZXNzYWdlLCBzdHJ1Y3QgV2ViQ29yZTo6U2VydmljZVdvcmtlckNsaWVudElk
ZW50aWZpZXIgc291cmNlSWRlbnRpZmllciwgc3RydWN0IFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJD
bGllbnREYXRhIHNvdXJjZURhdGEpCiAgICAgRmlyZUluc3RhbGxFdmVudChXZWJDb3JlOjpTZXJ2
aWNlV29ya2VySWRlbnRpZmllciBpZGVudGlmaWVyKQogICAgIEZpcmVBY3RpdmF0ZUV2ZW50KFdl
YkNvcmU6OlNlcnZpY2VXb3JrZXJJZGVudGlmaWVyIGlkZW50aWZpZXIpCiAgICAgVGVybWluYXRl
V29ya2VyKFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJJZGVudGlmaWVyIGlkZW50aWZpZXIpCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvU3RvcmFnZS9XZWJTZXJ2aWNlV29ya2Vy
RmV0Y2hUYXNrQ2xpZW50LmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9TdG9yYWdlL1dl
YlNlcnZpY2VXb3JrZXJGZXRjaFRhc2tDbGllbnQuY3BwCmluZGV4IDhmNzA5ZjI2OTY2MGQzMjUz
N2VhYjE1YzE3ZWNkMWZkODVkODJmMGQuLjE0Y2ZmNzFiMTM4M2VlNWQ0YzIxMGUwNTdkZDVkMzIy
MmFiZDg4MDAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9TdG9yYWdlL1dl
YlNlcnZpY2VXb3JrZXJGZXRjaFRhc2tDbGllbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9TdG9yYWdlL1dlYlNlcnZpY2VXb3JrZXJGZXRjaFRhc2tDbGllbnQuY3BwCkBAIC00
NSw3ICs0NSw3IEBAIFdlYlNlcnZpY2VXb3JrZXJGZXRjaFRhc2tDbGllbnQ6On5XZWJTZXJ2aWNl
V29ya2VyRmV0Y2hUYXNrQ2xpZW50KCkKICAgICAgICAgUnVuTG9vcDo6bWFpbigpLmRpc3BhdGNo
KFtjb25uZWN0aW9uID0gV1RGTW92ZShtX2Nvbm5lY3Rpb24pXSB7IH0pOwogfQogCi1XZWJTZXJ2
aWNlV29ya2VyRmV0Y2hUYXNrQ2xpZW50OjpXZWJTZXJ2aWNlV29ya2VyRmV0Y2hUYXNrQ2xpZW50
KFJlZjxJUEM6OkNvbm5lY3Rpb24+JiYgY29ubmVjdGlvbiwgdWludDY0X3Qgc2VydmVyQ29ubmVj
dGlvbklkZW50aWZpZXIsIHVpbnQ2NF90IGZldGNoVGFza0lkZW50aWZpZXIpCitXZWJTZXJ2aWNl
V29ya2VyRmV0Y2hUYXNrQ2xpZW50OjpXZWJTZXJ2aWNlV29ya2VyRmV0Y2hUYXNrQ2xpZW50KFJl
ZjxJUEM6OkNvbm5lY3Rpb24+JiYgY29ubmVjdGlvbiwgV2ViQ29yZTo6U1dTZXJ2ZXJDb25uZWN0
aW9uSWRlbnRpZmllciBzZXJ2ZXJDb25uZWN0aW9uSWRlbnRpZmllciwgdWludDY0X3QgZmV0Y2hU
YXNrSWRlbnRpZmllcikKICAgICA6IG1fY29ubmVjdGlvbihXVEZNb3ZlKGNvbm5lY3Rpb24pKQog
ICAgICwgbV9zZXJ2ZXJDb25uZWN0aW9uSWRlbnRpZmllcihzZXJ2ZXJDb25uZWN0aW9uSWRlbnRp
ZmllcikKICAgICAsIG1fZmV0Y2hUYXNrSWRlbnRpZmllcihmZXRjaFRhc2tJZGVudGlmaWVyKQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1N0b3JhZ2UvV2ViU2VydmljZVdv
cmtlckZldGNoVGFza0NsaWVudC5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1N0b3JhZ2Uv
V2ViU2VydmljZVdvcmtlckZldGNoVGFza0NsaWVudC5oCmluZGV4IDZmYjMxOGMxMWY5MzAxZmZk
MjRiOGY3YjI2N2MxZDA1ZjkyMzUyMzUuLjE3NmFkMjRlMzlhNzkzZWQ5MzNlNTJmYzc5NWU5YmM0
N2Q1MjFiODQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9TdG9yYWdlL1dl
YlNlcnZpY2VXb3JrZXJGZXRjaFRhc2tDbGllbnQuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvU3RvcmFnZS9XZWJTZXJ2aWNlV29ya2VyRmV0Y2hUYXNrQ2xpZW50LmgKQEAgLTI5LDEy
ICsyOSwxMyBAQAogCiAjaW5jbHVkZSAiQ29ubmVjdGlvbi5oIgogI2luY2x1ZGUgPFdlYkNvcmUv
U2VydmljZVdvcmtlckZldGNoLmg+CisjaW5jbHVkZSA8V2ViQ29yZS9TZXJ2aWNlV29ya2VyVHlw
ZXMuaD4KIAogbmFtZXNwYWNlIFdlYktpdCB7CiAKIGNsYXNzIFdlYlNlcnZpY2VXb3JrZXJGZXRj
aFRhc2tDbGllbnQgZmluYWwgOiBwdWJsaWMgV2ViQ29yZTo6U2VydmljZVdvcmtlckZldGNoOjpD
bGllbnQgewogcHVibGljOgotICAgIHN0YXRpYyBSZWY8V2ViU2VydmljZVdvcmtlckZldGNoVGFz
a0NsaWVudD4gY3JlYXRlKFJlZjxJUEM6OkNvbm5lY3Rpb24+JiYgY29ubmVjdGlvbiwgdWludDY0
X3Qgc2VydmVyQ29ubmVjdGlvbklkZW50aWZpZXIsIHVpbnQ2NF90IGZldGNoVGFza0lkZW50aWZp
ZXIpCisgICAgc3RhdGljIFJlZjxXZWJTZXJ2aWNlV29ya2VyRmV0Y2hUYXNrQ2xpZW50PiBjcmVh
dGUoUmVmPElQQzo6Q29ubmVjdGlvbj4mJiBjb25uZWN0aW9uLCBXZWJDb3JlOjpTV1NlcnZlckNv
bm5lY3Rpb25JZGVudGlmaWVyIHNlcnZlckNvbm5lY3Rpb25JZGVudGlmaWVyLCB1aW50NjRfdCBm
ZXRjaFRhc2tJZGVudGlmaWVyKQogICAgIHsKICAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcg
V2ViU2VydmljZVdvcmtlckZldGNoVGFza0NsaWVudChXVEZNb3ZlKGNvbm5lY3Rpb24pLCBzZXJ2
ZXJDb25uZWN0aW9uSWRlbnRpZmllciwgZmV0Y2hUYXNrSWRlbnRpZmllcikpOwogICAgIH0KQEAg
LTQyLDcgKzQzLDcgQEAgcHVibGljOgogICAgIH5XZWJTZXJ2aWNlV29ya2VyRmV0Y2hUYXNrQ2xp
ZW50KCk7CiAKIHByaXZhdGU6Ci0gICAgV2ViU2VydmljZVdvcmtlckZldGNoVGFza0NsaWVudChS
ZWY8SVBDOjpDb25uZWN0aW9uPiYmLCB1aW50NjRfdCBzZXJ2ZXJDb25uZWN0aW9uSWRlbnRpZmll
ciwgdWludDY0X3QgZmV0Y2hUYXNrSWRlbnRpZmllcik7CisgICAgV2ViU2VydmljZVdvcmtlckZl
dGNoVGFza0NsaWVudChSZWY8SVBDOjpDb25uZWN0aW9uPiYmLCBXZWJDb3JlOjpTV1NlcnZlckNv
bm5lY3Rpb25JZGVudGlmaWVyLCB1aW50NjRfdCBmZXRjaFRhc2tJZGVudGlmaWVyKTsKIAogICAg
IHZvaWQgZGlkUmVjZWl2ZVJlc3BvbnNlKGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVzcG9uc2Um
KSBmaW5hbDsKICAgICB2b2lkIGRpZFJlY2VpdmVEYXRhKFJlZjxXZWJDb3JlOjpTaGFyZWRCdWZm
ZXI+JiYpIGZpbmFsOwpAQCAtNTIsNyArNTMsNyBAQCBwcml2YXRlOgogICAgIHZvaWQgZGlkTm90
SGFuZGxlKCkgZmluYWw7CiAKICAgICBSZWZQdHI8SVBDOjpDb25uZWN0aW9uPiBtX2Nvbm5lY3Rp
b247Ci0gICAgdWludDY0X3QgbV9zZXJ2ZXJDb25uZWN0aW9uSWRlbnRpZmllciB7IDAgfTsKKyAg
ICBXZWJDb3JlOjpTV1NlcnZlckNvbm5lY3Rpb25JZGVudGlmaWVyIG1fc2VydmVyQ29ubmVjdGlv
bklkZW50aWZpZXI7CiAgICAgdWludDY0X3QgbV9mZXRjaFRhc2tJZGVudGlmaWVyIHsgMCB9Owog
fTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1N0b3JhZ2UvV2ViVG9T
dG9yYWdlUHJvY2Vzc0Nvbm5lY3Rpb24uY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1N0
b3JhZ2UvV2ViVG9TdG9yYWdlUHJvY2Vzc0Nvbm5lY3Rpb24uY3BwCmluZGV4IGIyZGY4MzdlMWQ4
MzM1OTFmYTViNDg0ZTMzOWJjZDg1NjNjMTUwMWEuLmQ1OTM4NzY0NTc2Mjk3NzA1YzFkMzJhM2M3
YTg4ZTU5MGJkOWFhZjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9TdG9y
YWdlL1dlYlRvU3RvcmFnZVByb2Nlc3NDb25uZWN0aW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0
L1dlYlByb2Nlc3MvU3RvcmFnZS9XZWJUb1N0b3JhZ2VQcm9jZXNzQ29ubmVjdGlvbi5jcHAKQEAg
LTY0LDcgKzY0LDcgQEAgdm9pZCBXZWJUb1N0b3JhZ2VQcm9jZXNzQ29ubmVjdGlvbjo6ZGlkUmVj
ZWl2ZU1lc3NhZ2UoSVBDOjpDb25uZWN0aW9uJiBjb25uZWN0aW8KIAogI2lmIEVOQUJMRShTRVJW
SUNFX1dPUktFUikKICAgICBpZiAoZGVjb2Rlci5tZXNzYWdlUmVjZWl2ZXJOYW1lKCkgPT0gTWVz
c2FnZXM6OldlYlNXQ2xpZW50Q29ubmVjdGlvbjo6bWVzc2FnZVJlY2VpdmVyTmFtZSgpKSB7Ci0g
ICAgICAgIGF1dG8gc2VydmljZVdvcmtlckNvbm5lY3Rpb24gPSBtX3N3Q29ubmVjdGlvbnNCeUlk
ZW50aWZpZXIuZ2V0KGRlY29kZXIuZGVzdGluYXRpb25JRCgpKTsKKyAgICAgICAgYXV0byBzZXJ2
aWNlV29ya2VyQ29ubmVjdGlvbiA9IG1fc3dDb25uZWN0aW9uc0J5SWRlbnRpZmllci5nZXQobWFr
ZU9iamVjdElkZW50aWZpZXI8U1dTZXJ2ZXJDb25uZWN0aW9uSWRlbnRpZmllclR5cGU+KGRlY29k
ZXIuZGVzdGluYXRpb25JRCgpKSk7CiAgICAgICAgIGlmIChzZXJ2aWNlV29ya2VyQ29ubmVjdGlv
bikKICAgICAgICAgICAgIHNlcnZpY2VXb3JrZXJDb25uZWN0aW9uLT5kaWRSZWNlaXZlTWVzc2Fn
ZShjb25uZWN0aW9uLCBkZWNvZGVyKTsKICAgICAgICAgcmV0dXJuOwpAQCAtMTE0LDggKzExNCw4
IEBAIFdlYlNXQ2xpZW50Q29ubmVjdGlvbiYgV2ViVG9TdG9yYWdlUHJvY2Vzc0Nvbm5lY3Rpb246
OnNlcnZpY2VXb3JrZXJDb25uZWN0aW9uRm9yCiAgICAgYXV0byByZXN1bHQgPSBtX3N3Q29ubmVj
dGlvbnNCeVNlc3Npb24uYWRkKHNlc3Npb25JRCwgbnVsbHB0cik7CiAgICAgaWYgKHJlc3VsdC5p
c05ld0VudHJ5KSB7CiAgICAgICAgIHJlc3VsdC5pdGVyYXRvci0+dmFsdWUgPSBzdGQ6Om1ha2Vf
dW5pcXVlPFdlYlNXQ2xpZW50Q29ubmVjdGlvbj4obV9jb25uZWN0aW9uLmdldCgpLCBzZXNzaW9u
SUQpOwotICAgICAgICBBU1NFUlQoIW1fc3dDb25uZWN0aW9uc0J5SWRlbnRpZmllci5jb250YWlu
cyhyZXN1bHQuaXRlcmF0b3ItPnZhbHVlLT5pZGVudGlmaWVyKCkpKTsKLSAgICAgICAgbV9zd0Nv
bm5lY3Rpb25zQnlJZGVudGlmaWVyLnNldChyZXN1bHQuaXRlcmF0b3ItPnZhbHVlLT5pZGVudGlm
aWVyKCksIHJlc3VsdC5pdGVyYXRvci0+dmFsdWUuZ2V0KCkpOworICAgICAgICBBU1NFUlQoIW1f
c3dDb25uZWN0aW9uc0J5SWRlbnRpZmllci5jb250YWlucyhyZXN1bHQuaXRlcmF0b3ItPnZhbHVl
LT5zZXJ2ZXJDb25uZWN0aW9uSWRlbnRpZmllcigpKSk7CisgICAgICAgIG1fc3dDb25uZWN0aW9u
c0J5SWRlbnRpZmllci5zZXQocmVzdWx0Lml0ZXJhdG9yLT52YWx1ZS0+c2VydmVyQ29ubmVjdGlv
bklkZW50aWZpZXIoKSwgcmVzdWx0Lml0ZXJhdG9yLT52YWx1ZS5nZXQoKSk7CiAgICAgfQogCiAg
ICAgcmV0dXJuICpyZXN1bHQuaXRlcmF0b3ItPnZhbHVlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL1N0b3JhZ2UvV2ViVG9TdG9yYWdlUHJvY2Vzc0Nvbm5lY3Rpb24uaCBi
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9TdG9yYWdlL1dlYlRvU3RvcmFnZVByb2Nlc3NDb25u
ZWN0aW9uLmgKaW5kZXggYTVhMjhkMWY3OTNjY2VlODAwODRkMTg0Y2U5MzZmNDI5MDI4NjA2Yi4u
ZjE0NGE5MjAzNGU1MGRkZjYxOGFiZWIxOTM0YzkxZGQ4ZWM1NGNhYSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL1N0b3JhZ2UvV2ViVG9TdG9yYWdlUHJvY2Vzc0Nvbm5lY3Rp
b24uaAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvU3RvcmFnZS9XZWJUb1N0b3JhZ2VQ
cm9jZXNzQ29ubmVjdGlvbi5oCkBAIC03OCw3ICs3OCw3IEBAIHByaXZhdGU6CiAKICNpZiBFTkFC
TEUoU0VSVklDRV9XT1JLRVIpCiAgICAgSGFzaE1hcDxQQUw6OlNlc3Npb25JRCwgc3RkOjp1bmlx
dWVfcHRyPFdlYlNXQ2xpZW50Q29ubmVjdGlvbj4+IG1fc3dDb25uZWN0aW9uc0J5U2Vzc2lvbjsK
LSAgICBIYXNoTWFwPHVpbnQ2NF90LCBXZWJTV0NsaWVudENvbm5lY3Rpb24qPiBtX3N3Q29ubmVj
dGlvbnNCeUlkZW50aWZpZXI7CisgICAgSGFzaE1hcDxXZWJDb3JlOjpTV1NlcnZlckNvbm5lY3Rp
b25JZGVudGlmaWVyLCBXZWJTV0NsaWVudENvbm5lY3Rpb24qPiBtX3N3Q29ubmVjdGlvbnNCeUlk
ZW50aWZpZXI7CiAjZW5kaWYKIH07CiAK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>327277</attachid>
            <date>2017-11-17 16:51:10 -0800</date>
            <delta_ts>2017-11-17 18:27:19 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-179848-20171117165109.patch</filename>
            <type>text/plain</type>
            <size>85880</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjI0OTc2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IGE0YmNmNjg4NWIxNGJlNGJlNmE5NzU5
YzQ3ZjNhMzE2Nzg0OTFjZDMuLmRkMzYwM2VmN2NlMmVmMjFiNTE0NTNlMzdlYjdiM2Y2Mjg2YjM5
ZGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMTYgQEAKKzIwMTctMTEtMTcgIENocmlzIER1bWV6ICA8Y2R1bWV6
QGFwcGxlLmNvbT4KKworICAgICAgICBVc2UgYSBzdHJvbmdseSB0eXBlZCBpZGVudGlmaWVyIGZv
ciBTV1NlcnZlcjo6Q29ubmVjdGlvbgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9MTc5ODQ4CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgQnJhZHkgRWlkc29u
LgorCisgICAgICAgIE1ha2UgT2JqZWN0SWRlbnRpZmllciBhIGxpdHRsZSBtb3JlIGZsZXhpYmxl
IHRvIHN1cHBvcnQgbW9yZSB1c2UgY2FzZXMuCisKKyAgICAgICAgKiB3dGYvT2JqZWN0SWRlbnRp
Zmllci5oOgorICAgICAgICAoV1RGOjpPYmplY3RJZGVudGlmaWVyOjp0b1VJbnQ2NCBjb25zdCk6
CisgICAgICAgIChXVEY6Om1ha2VPYmplY3RJZGVudGlmaWVyKToKKwogMjAxNy0xMS0xNSAgQWxl
eCBDaHJpc3RlbnNlbiAgPGFjaHJpc3RlbnNlbkB3ZWJraXQub3JnPgogCiAgICAgICAgIEZpeCBm
YXN0L2V2ZW50cy9tZXNzYWdlLXBvcnQtcG9zdE1lc3NhZ2UtcmVjdXJzaXZlLmh0bWwgYWZ0ZXIg
cjIyNDg5NgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nIGIvU291cmNlL1dl
YkNvcmUvQ2hhbmdlTG9nCmluZGV4IDZiZmE2MjZjNzc4M2YyYjE0YjEyMmFmYTEyYzdhOGRhYmNi
M2MxNjEuLmY5NzcyMWRjMzZmNDk4ZWI1ZDMwMjU3YmZhYjJjYTJhNDBmNTMyYTggMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VM
b2cKQEAgLTEsMyArMSw3MiBAQAorMjAxNy0xMS0xNyAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBw
bGUuY29tPgorCisgICAgICAgIFVzZSBhIHN0cm9uZ2x5IHR5cGVkIGlkZW50aWZpZXIgZm9yIFNX
U2VydmVyOjpDb25uZWN0aW9uCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD0xNzk4NDgKKworICAgICAgICBSZXZpZXdlZCBieSBCcmFkeSBFaWRzb24uCisK
KyAgICAgICAgVXNlIGEgc3Ryb25nbHkgdHlwZWQgaWRlbnRpZmllciBmb3IgU1dTZXJ2ZXI6OkNv
bm5lY3Rpb24sIGZvciBjbGFyaXR5LgorCisgICAgICAgICogd29ya2Vycy9zZXJ2aWNlL1NlcnZp
Y2VXb3JrZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U2VydmljZVdvcmtlcjo6cG9zdE1lc3Nh
Z2UpOgorICAgICAgICAqIHdvcmtlcnMvc2VydmljZS9TZXJ2aWNlV29ya2VyQ2xpZW50LmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJDbGllbnQ6OlNlcnZpY2VXb3JrZXJDbGll
bnQpOgorICAgICAgICAoV2ViQ29yZTo6U2VydmljZVdvcmtlckNsaWVudDo6aWQgY29uc3QpOgor
ICAgICAgICAoV2ViQ29yZTo6U2VydmljZVdvcmtlckNsaWVudDo6cG9zdE1lc3NhZ2UpOgorICAg
ICAgICAqIHdvcmtlcnMvc2VydmljZS9TZXJ2aWNlV29ya2VyQ2xpZW50Lmg6CisgICAgICAgIChX
ZWJDb3JlOjpTZXJ2aWNlV29ya2VyQ2xpZW50OjpjcmVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6
U2VydmljZVdvcmtlckNsaWVudDo6aWRlbnRpZmllciBjb25zdCk6CisgICAgICAgICogd29ya2Vy
cy9zZXJ2aWNlL1NlcnZpY2VXb3JrZXJDbGllbnREYXRhLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OlNlcnZpY2VXb3JrZXJDbGllbnREYXRhOjppc29sYXRlZENvcHkgY29uc3QpOgorICAgICAgICAo
V2ViQ29yZTo6U2VydmljZVdvcmtlckNsaWVudERhdGE6OmZyb20pOgorICAgICAgICAqIHdvcmtl
cnMvc2VydmljZS9TZXJ2aWNlV29ya2VyQ2xpZW50RGF0YS5oOgorICAgICAgICAoV2ViQ29yZTo6
U2VydmljZVdvcmtlckNsaWVudERhdGE6OmVuY29kZSBjb25zdCk6CisgICAgICAgIChXZWJDb3Jl
OjpTZXJ2aWNlV29ya2VyQ2xpZW50RGF0YTo6ZGVjb2RlKToKKyAgICAgICAgKiB3b3JrZXJzL3Nl
cnZpY2UvU2VydmljZVdvcmtlckNsaWVudElkZW50aWZpZXIuaDoKKyAgICAgICAgKFdlYkNvcmU6
OlNlcnZpY2VXb3JrZXJDbGllbnRJZGVudGlmaWVyOjp0b1N0cmluZyBjb25zdCk6CisgICAgICAg
IChXZWJDb3JlOjpTZXJ2aWNlV29ya2VyQ2xpZW50SWRlbnRpZmllcjo6ZGVjb2RlKToKKyAgICAg
ICAgKiB3b3JrZXJzL3NlcnZpY2UvU2VydmljZVdvcmtlckNvbnRhaW5lci5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpTZXJ2aWNlV29ya2VyQ29udGFpbmVyOjphZGRSZWdpc3RyYXRpb24pOgorICAg
ICAgICAoV2ViQ29yZTo6U2VydmljZVdvcmtlckNvbnRhaW5lcjo6cmVtb3ZlUmVnaXN0cmF0aW9u
KToKKyAgICAgICAgKFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJDb250YWluZXI6OnVwZGF0ZVJlZ2lz
dHJhdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpTZXJ2aWNlV29ya2VyQ29udGFpbmVyOjpjb25u
ZWN0aW9uSWRlbnRpZmllcik6CisgICAgICAgICogd29ya2Vycy9zZXJ2aWNlL1NlcnZpY2VXb3Jr
ZXJDb250YWluZXIuaDoKKyAgICAgICAgKiB3b3JrZXJzL3NlcnZpY2UvU2VydmljZVdvcmtlckZl
dGNoUmVzdWx0Lmg6CisgICAgICAgIChXZWJDb3JlOjpTZXJ2aWNlV29ya2VyRmV0Y2hSZXN1bHQ6
OmRlY29kZSk6CisgICAgICAgICogd29ya2Vycy9zZXJ2aWNlL1NlcnZpY2VXb3JrZXJKb2JDbGll
bnQuaDoKKyAgICAgICAgKiB3b3JrZXJzL3NlcnZpY2UvU2VydmljZVdvcmtlckpvYkRhdGEuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6U2VydmljZVdvcmtlckpvYkRhdGE6OlNlcnZpY2VXb3JrZXJK
b2JEYXRhKToKKyAgICAgICAgKiB3b3JrZXJzL3NlcnZpY2UvU2VydmljZVdvcmtlckpvYkRhdGEu
aDoKKyAgICAgICAgKFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJKb2JEYXRhOjpjb25uZWN0aW9uSWRl
bnRpZmllciBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpTZXJ2aWNlV29ya2VySm9iRGF0YTo6
ZGVjb2RlKToKKyAgICAgICAgKiB3b3JrZXJzL3NlcnZpY2UvU2VydmljZVdvcmtlclR5cGVzLmg6
CisgICAgICAgICogd29ya2Vycy9zZXJ2aWNlL1NlcnZpY2VXb3JrZXJXaW5kb3dDbGllbnQuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6U2VydmljZVdvcmtlcldpbmRvd0NsaWVudDo6U2VydmljZVdv
cmtlcldpbmRvd0NsaWVudCk6CisgICAgICAgICogd29ya2Vycy9zZXJ2aWNlL1NlcnZpY2VXb3Jr
ZXJXaW5kb3dDbGllbnQuaDoKKyAgICAgICAgKiB3b3JrZXJzL3NlcnZpY2UvY29udGV4dC9TV0Nv
bnRleHRNYW5hZ2VyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNXQ29udGV4dE1hbmFnZXI6OnBv
c3RNZXNzYWdlVG9TZXJ2aWNlV29ya2VyR2xvYmFsU2NvcGUpOgorICAgICAgICAqIHdvcmtlcnMv
c2VydmljZS9jb250ZXh0L1NXQ29udGV4dE1hbmFnZXIuaDoKKyAgICAgICAgKiB3b3JrZXJzL3Nl
cnZpY2UvY29udGV4dC9TZXJ2aWNlV29ya2VyVGhyZWFkLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OlNlcnZpY2VXb3JrZXJUaHJlYWQ6OnBvc3RNZXNzYWdlVG9TZXJ2aWNlV29ya2VyR2xvYmFsU2Nv
cGUpOgorICAgICAgICAqIHdvcmtlcnMvc2VydmljZS9jb250ZXh0L1NlcnZpY2VXb3JrZXJUaHJl
YWQuaDoKKyAgICAgICAgKiB3b3JrZXJzL3NlcnZpY2Uvc2VydmVyL1NXQ2xpZW50Q29ubmVjdGlv
bi5oOgorICAgICAgICAqIHdvcmtlcnMvc2VydmljZS9zZXJ2ZXIvU1dTZXJ2ZXIuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6U1dTZXJ2ZXI6OkNvbm5lY3Rpb246OkNvbm5lY3Rpb24pOgorICAgICAg
ICAoV2ViQ29yZTo6U1dTZXJ2ZXI6OkNvbm5lY3Rpb246OnNjaGVkdWxlSm9iSW5TZXJ2ZXIpOgor
ICAgICAgICAoV2ViQ29yZTo6U1dTZXJ2ZXI6OnJlamVjdEpvYik6CisgICAgICAgIChXZWJDb3Jl
OjpTV1NlcnZlcjo6cmVzb2x2ZVJlZ2lzdHJhdGlvbkpvYik6CisgICAgICAgIChXZWJDb3JlOjpT
V1NlcnZlcjo6c3RhcnRTY3JpcHRGZXRjaCk6CisgICAgICAgIChXZWJDb3JlOjpTV1NlcnZlcjo6
c2NyaXB0RmV0Y2hGaW5pc2hlZCk6CisgICAgICAgICogd29ya2Vycy9zZXJ2aWNlL3NlcnZlci9T
V1NlcnZlci5oOgorICAgICAgICAoV2ViQ29yZTo6U1dTZXJ2ZXI6OkNvbm5lY3Rpb246OmlkZW50
aWZpZXIgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6U1dTZXJ2ZXI6OmdldENvbm5lY3Rpb24p
OgorICAgICAgICAqIHdvcmtlcnMvc2VydmljZS9zZXJ2ZXIvU1dTZXJ2ZXJSZWdpc3RyYXRpb24u
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6U1dTZXJ2ZXJSZWdpc3RyYXRpb246OmZvckVhY2hDb25u
ZWN0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OlNXU2VydmVyUmVnaXN0cmF0aW9uOjphZGRDbGll
bnRTZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OlNXU2VydmVy
UmVnaXN0cmF0aW9uOjpyZW1vdmVDbGllbnRTZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uKToKKyAg
ICAgICAgKFdlYkNvcmU6OlNXU2VydmVyUmVnaXN0cmF0aW9uOjp1bnJlZ2lzdGVyU2VydmVyQ29u
bmVjdGlvbik6CisgICAgICAgICogd29ya2Vycy9zZXJ2aWNlL3NlcnZlci9TV1NlcnZlclJlZ2lz
dHJhdGlvbi5oOgorCiAyMDE3LTExLTE3ICBBbnR0aSBLb2l2aXN0byAgPGFudHRpQGFwcGxlLmNv
bT4KIAogICAgICAgICBNb3ZlIGRlc3Ryb3lMZWZ0b3ZlckNoaWxkcmVuIGNhbGwgdG8gUmVuZGVy
T2JqZWN0OjpkZXN0cm95CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZyBiL1Nv
dXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IGRmZTVjZWNmMTY5ZDNhZjJlYjI0ZGMzZTI2NDQ4
Y2YwMTNiZGMxNGQuLmU4YzRhMDI1YmI2ODllZTQ3ZmI5OGRmMDQxZGVhYjFkZjk3NTc1MDMgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsNTQgQEAKKzIwMTctMTEtMTcgIENocmlzIER1bWV6ICA8Y2R1bWV6
QGFwcGxlLmNvbT4KKworICAgICAgICBVc2UgYSBzdHJvbmdseSB0eXBlZCBpZGVudGlmaWVyIGZv
ciBTV1NlcnZlcjo6Q29ubmVjdGlvbgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9MTc5ODQ4CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgQnJhZHkgRWlkc29u
LgorCisgICAgICAgIFVzZSBhIHN0cm9uZ2x5IHR5cGVkIGlkZW50aWZpZXIgZm9yIFNXU2VydmVy
OjpDb25uZWN0aW9uLCBmb3IgY2xhcml0eS4KKworICAgICAgICAqIFNjcmlwdHMvd2Via2l0L21l
c3NhZ2VzLnB5OgorICAgICAgICAoZm9yd2FyZF9kZWNsYXJhdGlvbnNfYW5kX2hlYWRlcnMpOgor
ICAgICAgICAoZm9yd2FyZF9kZWNsYXJhdGlvbnNfYW5kX2hlYWRlcnMudGVtcGxhdGVzKToKKyAg
ICAgICAgKGhlYWRlcnNfZm9yX3R5cGUpOgorICAgICAgICAqIFN0b3JhZ2VQcm9jZXNzL1NlcnZp
Y2VXb3JrZXIvV2ViU1dTZXJ2ZXJDb25uZWN0aW9uLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2Vi
U1dTZXJ2ZXJDb25uZWN0aW9uOjpXZWJTV1NlcnZlckNvbm5lY3Rpb24pOgorICAgICAgICAoV2Vi
S2l0OjpXZWJTV1NlcnZlckNvbm5lY3Rpb246OnBvc3RNZXNzYWdlVG9TZXJ2aWNlV29ya2VyR2xv
YmFsU2NvcGUpOgorICAgICAgICAqIFN0b3JhZ2VQcm9jZXNzL1NlcnZpY2VXb3JrZXIvV2ViU1dT
ZXJ2ZXJDb25uZWN0aW9uLmg6CisgICAgICAgICogU3RvcmFnZVByb2Nlc3MvU2VydmljZVdvcmtl
ci9XZWJTV1NlcnZlckNvbm5lY3Rpb24ubWVzc2FnZXMuaW46CisgICAgICAgICogU3RvcmFnZVBy
b2Nlc3MvU3RvcmFnZVByb2Nlc3MuY3BwOgorICAgICAgICAoV2ViS2l0OjpTdG9yYWdlUHJvY2Vz
czo6ZGlkRmFpbEZldGNoKToKKyAgICAgICAgKFdlYktpdDo6U3RvcmFnZVByb2Nlc3M6OmRpZE5v
dEhhbmRsZUZldGNoKToKKyAgICAgICAgKFdlYktpdDo6U3RvcmFnZVByb2Nlc3M6OmRpZFJlY2Vp
dmVGZXRjaFJlc3BvbnNlKToKKyAgICAgICAgKFdlYktpdDo6U3RvcmFnZVByb2Nlc3M6OmRpZFJl
Y2VpdmVGZXRjaERhdGEpOgorICAgICAgICAoV2ViS2l0OjpTdG9yYWdlUHJvY2Vzczo6ZGlkUmVj
ZWl2ZUZldGNoRm9ybURhdGEpOgorICAgICAgICAoV2ViS2l0OjpTdG9yYWdlUHJvY2Vzczo6ZGlk
RmluaXNoRmV0Y2gpOgorICAgICAgICAqIFN0b3JhZ2VQcm9jZXNzL1N0b3JhZ2VQcm9jZXNzLmg6
CisgICAgICAgICogU3RvcmFnZVByb2Nlc3MvU3RvcmFnZVByb2Nlc3MubWVzc2FnZXMuaW46Cisg
ICAgICAgICogU3RvcmFnZVByb2Nlc3MvU3RvcmFnZVRvV2ViUHJvY2Vzc0Nvbm5lY3Rpb24uY3Bw
OgorICAgICAgICAoV2ViS2l0OjpTdG9yYWdlVG9XZWJQcm9jZXNzQ29ubmVjdGlvbjo6ZGlkUmVj
ZWl2ZU1lc3NhZ2UpOgorICAgICAgICAoV2ViS2l0OjpTdG9yYWdlVG9XZWJQcm9jZXNzQ29ubmVj
dGlvbjo6ZXN0YWJsaXNoU1dTZXJ2ZXJDb25uZWN0aW9uKToKKyAgICAgICAgKFdlYktpdDo6U3Rv
cmFnZVRvV2ViUHJvY2Vzc0Nvbm5lY3Rpb246OnJlbW92ZVNXU2VydmVyQ29ubmVjdGlvbik6Cisg
ICAgICAgIChXZWJLaXQ6OmdlbmVyYXRlSURCQ29ubmVjdGlvblRvU2VydmVySWRlbnRpZmllcik6
CisgICAgICAgIChXZWJLaXQ6OlN0b3JhZ2VUb1dlYlByb2Nlc3NDb25uZWN0aW9uOjplc3RhYmxp
c2hJREJDb25uZWN0aW9uVG9TZXJ2ZXIpOgorICAgICAgICAqIFN0b3JhZ2VQcm9jZXNzL1N0b3Jh
Z2VUb1dlYlByb2Nlc3NDb25uZWN0aW9uLmg6CisgICAgICAgICogU3RvcmFnZVByb2Nlc3MvU3Rv
cmFnZVRvV2ViUHJvY2Vzc0Nvbm5lY3Rpb24ubWVzc2FnZXMuaW46CisgICAgICAgICogV2ViUHJv
Y2Vzcy9TdG9yYWdlL1dlYlNXQ2xpZW50Q29ubmVjdGlvbi5jcHA6CisgICAgICAgIChXZWJLaXQ6
OldlYlNXQ2xpZW50Q29ubmVjdGlvbjo6cG9zdE1lc3NhZ2VUb1NlcnZpY2VXb3JrZXJHbG9iYWxT
Y29wZSk6CisgICAgICAgICogV2ViUHJvY2Vzcy9TdG9yYWdlL1dlYlNXQ2xpZW50Q29ubmVjdGlv
bi5oOgorICAgICAgICAqIFdlYlByb2Nlc3MvU3RvcmFnZS9XZWJTV0NvbnRleHRNYW5hZ2VyQ29u
bmVjdGlvbi5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlNXQ29udGV4dE1hbmFnZXJDb25uZWN0
aW9uOjpzdGFydEZldGNoKToKKyAgICAgICAgKFdlYktpdDo6V2ViU1dDb250ZXh0TWFuYWdlckNv
bm5lY3Rpb246OnBvc3RNZXNzYWdlVG9TZXJ2aWNlV29ya2VyR2xvYmFsU2NvcGUpOgorICAgICAg
ICAqIFdlYlByb2Nlc3MvU3RvcmFnZS9XZWJTV0NvbnRleHRNYW5hZ2VyQ29ubmVjdGlvbi5oOgor
ICAgICAgICAqIFdlYlByb2Nlc3MvU3RvcmFnZS9XZWJTV0NvbnRleHRNYW5hZ2VyQ29ubmVjdGlv
bi5tZXNzYWdlcy5pbjoKKyAgICAgICAgKiBXZWJQcm9jZXNzL1N0b3JhZ2UvV2ViU2VydmljZVdv
cmtlckZldGNoVGFza0NsaWVudC5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlNlcnZpY2VXb3Jr
ZXJGZXRjaFRhc2tDbGllbnQ6OldlYlNlcnZpY2VXb3JrZXJGZXRjaFRhc2tDbGllbnQpOgorICAg
ICAgICAqIFdlYlByb2Nlc3MvU3RvcmFnZS9XZWJTZXJ2aWNlV29ya2VyRmV0Y2hUYXNrQ2xpZW50
Lmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9TdG9yYWdlL1dlYlRvU3RvcmFnZVByb2Nlc3NDb25u
ZWN0aW9uLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViVG9TdG9yYWdlUHJvY2Vzc0Nvbm5lY3Rp
b246OmRpZFJlY2VpdmVNZXNzYWdlKToKKyAgICAgICAgKFdlYktpdDo6V2ViVG9TdG9yYWdlUHJv
Y2Vzc0Nvbm5lY3Rpb246OnNlcnZpY2VXb3JrZXJDb25uZWN0aW9uRm9yU2Vzc2lvbik6CisgICAg
ICAgICogV2ViUHJvY2Vzcy9TdG9yYWdlL1dlYlRvU3RvcmFnZVByb2Nlc3NDb25uZWN0aW9uLmg6
CisKIDIwMTctMTEtMTYgIFlvdXN1a2UgS2ltb3RvICA8eW91c3VrZS5raW1vdG9Ac29ueS5jb20+
CiAKICAgICAgICAgW1dpbkNhaXJvXSBBZGQgbmV0d29yayAoY3VybCkgZmlsZXMgZm9yIHdpbmNh
aXJvIHdlYmtpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvT2JqZWN0SWRlbnRpZmllci5o
IGIvU291cmNlL1dURi93dGYvT2JqZWN0SWRlbnRpZmllci5oCmluZGV4IDY3ZGVlMDI2YjVlODdl
NDA3YTYyMmVlNjBlNjUwOGMzNTJlNmI5ZGQuLjZmN2FhYzQ1ZWQwNTRlZGZlYTUwMDQ1OTIyMzgz
YjgxZTgyY2E4ODkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvd3RmL09iamVjdElkZW50aWZpZXIu
aAorKysgYi9Tb3VyY2UvV1RGL3d0Zi9PYmplY3RJZGVudGlmaWVyLmgKQEAgLTYxLDYgKzYxLDgg
QEAgcHVibGljOgogICAgIHsKICAgICAgICAgcmV0dXJuIG1faWRlbnRpZmllciAhPSBvdGhlci5t
X2lkZW50aWZpZXI7CiAgICAgfQorCisgICAgdWludDY0X3QgdG9VSW50NjQoKSBjb25zdCB7IHJl
dHVybiBtX2lkZW50aWZpZXI7IH0KICAgICAKICNpZm5kZWYgTkRFQlVHCiAgICAgU3RyaW5nIGxv
Z2dpbmdTdHJpbmcoKSBjb25zdApAQCAtNzEsNiArNzMsNyBAQCBwdWJsaWM6CiAKIHByaXZhdGU6
CiAgICAgdGVtcGxhdGU8dHlwZW5hbWUgVT4gZnJpZW5kIE9iamVjdElkZW50aWZpZXI8VT4gZ2Vu
ZXJhdGVPYmplY3RJZGVudGlmaWVyKCk7CisgICAgdGVtcGxhdGU8dHlwZW5hbWUgVT4gZnJpZW5k
IE9iamVjdElkZW50aWZpZXI8VT4gbWFrZU9iamVjdElkZW50aWZpZXIodWludDY0X3QpOwogICAg
IGZyaWVuZCBzdHJ1Y3QgSGFzaFRyYWl0czxPYmplY3RJZGVudGlmaWVyPjsKICAgICB0ZW1wbGF0
ZTx0eXBlbmFtZSBVPiBmcmllbmQgc3RydWN0IE9iamVjdElkZW50aWZpZXJIYXNoOwogCkBAIC05
Myw2ICs5NiwxMSBAQCB0ZW1wbGF0ZTx0eXBlbmFtZSBUPiBpbmxpbmUgT2JqZWN0SWRlbnRpZmll
cjxUPiBnZW5lcmF0ZU9iamVjdElkZW50aWZpZXIoKQogICAgIHJldHVybiBPYmplY3RJZGVudGlm
aWVyPFQ+IHsgKytPYmplY3RJZGVudGlmaWVyPFQ+OjpzX2N1cnJlbnRJZGVudGlmaWVyIH07CiB9
CiAKK3RlbXBsYXRlPHR5cGVuYW1lIFQ+IGlubGluZSBPYmplY3RJZGVudGlmaWVyPFQ+IG1ha2VP
YmplY3RJZGVudGlmaWVyKHVpbnQ2NF90IGlkZW50aWZpZXIpCit7CisgICAgcmV0dXJuIE9iamVj
dElkZW50aWZpZXI8VD4geyBpZGVudGlmaWVyIH07Cit9CisKIHRlbXBsYXRlPHR5cGVuYW1lIFQ+
IHN0cnVjdCBPYmplY3RJZGVudGlmaWVySGFzaCB7CiAgICAgc3RhdGljIHVuc2lnbmVkIGhhc2go
Y29uc3QgT2JqZWN0SWRlbnRpZmllcjxUPiYgaWRlbnRpZmllcikgeyByZXR1cm4gaW50SGFzaChp
ZGVudGlmaWVyLm1faWRlbnRpZmllcik7IH0KICAgICBzdGF0aWMgYm9vbCBlcXVhbChjb25zdCBP
YmplY3RJZGVudGlmaWVyPFQ+JiBhLCBjb25zdCBPYmplY3RJZGVudGlmaWVyPFQ+JiBiKSB7IHJl
dHVybiBhID09IGI7IH0KQEAgLTEwOSwzICsxMTcsNCBAQCB0ZW1wbGF0ZTx0eXBlbmFtZSBUPiBz
dHJ1Y3QgRGVmYXVsdEhhc2g8T2JqZWN0SWRlbnRpZmllcjxUPj4gewogCiB1c2luZyBXVEY6Ok9i
amVjdElkZW50aWZpZXI7CiB1c2luZyBXVEY6OmdlbmVyYXRlT2JqZWN0SWRlbnRpZmllcjsKK3Vz
aW5nIFdURjo6bWFrZU9iamVjdElkZW50aWZpZXI7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS93b3JrZXJzL3NlcnZpY2UvU2VydmljZVdvcmtlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS93b3Jr
ZXJzL3NlcnZpY2UvU2VydmljZVdvcmtlci5jcHAKaW5kZXggM2ZiMzJmYjRlY2M1OGQ4OGMxNzg4
Njc2ZjEyMzAwOGM5ODYzMWI2Yi4uM2I5ODQzNTJlMjQwMWFkZDY4Y2U1NDYzNjcyODA3MWFjZTIx
YmI3NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL1NlcnZpY2VX
b3JrZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9TZXJ2aWNlV29y
a2VyLmNwcApAQCAtMjgsNiArMjgsNyBAQAogCiAjaWYgRU5BQkxFKFNFUlZJQ0VfV09SS0VSKQog
CisjaW5jbHVkZSAiRG9jdW1lbnQuaCIKICNpbmNsdWRlICJFdmVudE5hbWVzLmgiCiAjaW5jbHVk
ZSAiTWVzc2FnZVBvcnQuaCIKICNpbmNsdWRlICJTV0NsaWVudENvbm5lY3Rpb24uaCIKQEAgLTE0
OCw3ICsxNDksNyBAQCBFeGNlcHRpb25Pcjx2b2lkPiBTZXJ2aWNlV29ya2VyOjpwb3N0TWVzc2Fn
ZShTY3JpcHRFeGVjdXRpb25Db250ZXh0JiBjb250ZXh0LCBKUwogICAgIGF1dG8gc291cmNlQ2xp
ZW50RGF0YSA9IFNlcnZpY2VXb3JrZXJDbGllbnREYXRhOjpmcm9tKGNvbnRleHQpOwogCiAgICAg
YXV0byYgc3dDb25uZWN0aW9uID0gU2VydmljZVdvcmtlclByb3ZpZGVyOjpzaW5nbGV0b24oKS5z
ZXJ2aWNlV29ya2VyQ29ubmVjdGlvbkZvclNlc3Npb24oY29udGV4dC5zZXNzaW9uSUQoKSk7Ci0g
ICAgc3dDb25uZWN0aW9uLnBvc3RNZXNzYWdlVG9TZXJ2aWNlV29ya2VyR2xvYmFsU2NvcGUoaWRl
bnRpZmllcigpLCBtZXNzYWdlLnJlbGVhc2VSZXR1cm5WYWx1ZSgpLCBXVEZNb3ZlKHNvdXJjZUNs
aWVudERhdGEpKTsKKyAgICBzd0Nvbm5lY3Rpb24ucG9zdE1lc3NhZ2VUb1NlcnZpY2VXb3JrZXJH
bG9iYWxTY29wZShpZGVudGlmaWVyKCksIG1lc3NhZ2UucmVsZWFzZVJldHVyblZhbHVlKCksIGRv
d25jYXN0PERvY3VtZW50Pihjb250ZXh0KS5pZGVudGlmaWVyKCksIFdURk1vdmUoc291cmNlQ2xp
ZW50RGF0YSkpOwogCiAgICAgcmV0dXJuIHsgfTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3dvcmtlcnMvc2VydmljZS9TZXJ2aWNlV29ya2VyQ2xpZW50LmNwcCBiL1NvdXJjZS9XZWJD
b3JlL3dvcmtlcnMvc2VydmljZS9TZXJ2aWNlV29ya2VyQ2xpZW50LmNwcAppbmRleCAzNjAyZTM0
YjQ0MDk1NTMyNjY5NmQ0MTc2NjY0NWIyMjk4NDAyYTUyLi42ZjEyYTQyOTM2ZDg2OGU5MjcwMzIz
M2Q3YmFiMWNiMDEyNzkyNmNmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3Nl
cnZpY2UvU2VydmljZVdvcmtlckNsaWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvd29ya2Vy
cy9zZXJ2aWNlL1NlcnZpY2VXb3JrZXJDbGllbnQuY3BwCkBAIC0zNywxMiArMzcsMTEgQEAKIAog
bmFtZXNwYWNlIFdlYkNvcmUgewogCi1TZXJ2aWNlV29ya2VyQ2xpZW50OjpTZXJ2aWNlV29ya2Vy
Q2xpZW50KFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmIGNvbnRleHQsIFNlcnZpY2VXb3JrZXJDbGll
bnREYXRhJiYgZGF0YSkKK1NlcnZpY2VXb3JrZXJDbGllbnQ6OlNlcnZpY2VXb3JrZXJDbGllbnQo
U2NyaXB0RXhlY3V0aW9uQ29udGV4dCYgY29udGV4dCwgU2VydmljZVdvcmtlckNsaWVudElkZW50
aWZpZXIgaWRlbnRpZmllciwgU2VydmljZVdvcmtlckNsaWVudERhdGEmJiBkYXRhKQogICAgIDog
Q29udGV4dERlc3RydWN0aW9uT2JzZXJ2ZXIoJmNvbnRleHQpCisgICAgLCBtX2lkZW50aWZpZXIo
aWRlbnRpZmllcikKICAgICAsIG1fZGF0YShXVEZNb3ZlKGRhdGEpKQogewotICAgIEFTU0VSVCht
X2RhdGEuaWRlbnRpZmllci5zZXJ2ZXJDb25uZWN0aW9uSWRlbnRpZmllcik7Ci0gICAgQVNTRVJU
KG1fZGF0YS5pZGVudGlmaWVyLnNjcmlwdEV4ZWN1dGlvbkNvbnRleHRJZGVudGlmaWVyKTsKIH0K
IAogU2VydmljZVdvcmtlckNsaWVudDo6flNlcnZpY2VXb3JrZXJDbGllbnQoKQpAQCAtNjYsNyAr
NjUsNyBAQCBhdXRvIFNlcnZpY2VXb3JrZXJDbGllbnQ6OmZyYW1lVHlwZSgpIGNvbnN0IC0+IEZy
YW1lVHlwZQogCiBTdHJpbmcgU2VydmljZVdvcmtlckNsaWVudDo6aWQoKSBjb25zdAogewotICAg
IHJldHVybiBtX2RhdGEuaWRlbnRpZmllci50b1N0cmluZygpOworICAgIHJldHVybiBpZGVudGlm
aWVyKCkudG9TdHJpbmcoKTsKIH0KIAogRXhjZXB0aW9uT3I8dm9pZD4gU2VydmljZVdvcmtlckNs
aWVudDo6cG9zdE1lc3NhZ2UoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYgY29udGV4dCwgSlNDOjpK
U1ZhbHVlIG1lc3NhZ2VWYWx1ZSwgVmVjdG9yPEpTQzo6U3Ryb25nPEpTQzo6SlNPYmplY3Q+PiYm
IHRyYW5zZmVyKQpAQCAtOTAsNyArODksNyBAQCBFeGNlcHRpb25Pcjx2b2lkPiBTZXJ2aWNlV29y
a2VyQ2xpZW50Ojpwb3N0TWVzc2FnZShTY3JpcHRFeGVjdXRpb25Db250ZXh0JiBjb250ZQogICAg
ICAgICByZXR1cm4gRXhjZXB0aW9uIHsgTm90U3VwcG9ydGVkRXJyb3IsIEFTQ0lJTGl0ZXJhbCgi
UGFzc2luZyBNZXNzYWdlUG9ydCBvYmplY3RzIHRvIHBvc3RNZXNzYWdlIGlzIG5vdCB5ZXQgc3Vw
cG9ydGVkIikgfTsKIAogICAgIGF1dG8gc291cmNlSWRlbnRpZmllciA9IGRvd25jYXN0PFNlcnZp
Y2VXb3JrZXJHbG9iYWxTY29wZT4oY29udGV4dCkudGhyZWFkKCkuaWRlbnRpZmllcigpOwotICAg
IGNhbGxPbk1haW5UaHJlYWQoW21lc3NhZ2UgPSBtZXNzYWdlLnJlbGVhc2VSZXR1cm5WYWx1ZSgp
LCBkZXN0aW5hdGlvbklkZW50aWZpZXIgPSBtX2RhdGEuaWRlbnRpZmllciwgc291cmNlSWRlbnRp
Zmllciwgc291cmNlT3JpZ2luID0gY29udGV4dC5vcmlnaW4oKS5pc29sYXRlZENvcHkoKV0gKCkg
bXV0YWJsZSB7CisgICAgY2FsbE9uTWFpblRocmVhZChbbWVzc2FnZSA9IG1lc3NhZ2UucmVsZWFz
ZVJldHVyblZhbHVlKCksIGRlc3RpbmF0aW9uSWRlbnRpZmllciA9IGlkZW50aWZpZXIoKSwgc291
cmNlSWRlbnRpZmllciwgc291cmNlT3JpZ2luID0gY29udGV4dC5vcmlnaW4oKS5pc29sYXRlZENv
cHkoKV0gKCkgbXV0YWJsZSB7CiAgICAgICAgIGlmIChhdXRvKiBjb25uZWN0aW9uID0gU1dDb250
ZXh0TWFuYWdlcjo6c2luZ2xldG9uKCkuY29ubmVjdGlvbigpKQogICAgICAgICAgICAgY29ubmVj
dGlvbi0+cG9zdE1lc3NhZ2VUb1NlcnZpY2VXb3JrZXJDbGllbnQoZGVzdGluYXRpb25JZGVudGlm
aWVyLCBXVEZNb3ZlKG1lc3NhZ2UpLCBzb3VyY2VJZGVudGlmaWVyLCBzb3VyY2VPcmlnaW4pOwog
ICAgIH0pOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL1NlcnZp
Y2VXb3JrZXJDbGllbnQuaCBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9TZXJ2aWNl
V29ya2VyQ2xpZW50LmgKaW5kZXggY2VjMzc1ZDk1MWZjNWI0ZTkyODhkZGNjNTU5ODM5ZDI2NWY2
ZjgyYy4uZmJiOTBiMGMxZjdkNGJmM2ViM2I3OTA4YmY0ZjhmZWE1NzE1ZTM2MyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL1NlcnZpY2VXb3JrZXJDbGllbnQuaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvU2VydmljZVdvcmtlckNsaWVudC5o
CkBAIC00Niw5ICs0Niw5IEBAIHB1YmxpYzoKICAgICB1c2luZyBUeXBlID0gU2VydmljZVdvcmtl
ckNsaWVudFR5cGU7CiAgICAgdXNpbmcgRnJhbWVUeXBlID0gU2VydmljZVdvcmtlckNsaWVudEZy
YW1lVHlwZTsKIAotICAgIHN0YXRpYyBSZWY8U2VydmljZVdvcmtlckNsaWVudD4gY3JlYXRlKFNj
cmlwdEV4ZWN1dGlvbkNvbnRleHQmIGNvbnRleHQsIFNlcnZpY2VXb3JrZXJDbGllbnREYXRhJiYg
ZGF0YSkKKyAgICBzdGF0aWMgUmVmPFNlcnZpY2VXb3JrZXJDbGllbnQ+IGNyZWF0ZShTY3JpcHRF
eGVjdXRpb25Db250ZXh0JiBjb250ZXh0LCBTZXJ2aWNlV29ya2VyQ2xpZW50SWRlbnRpZmllciBp
ZGVudGlmaWVyLCBTZXJ2aWNlV29ya2VyQ2xpZW50RGF0YSYmIGRhdGEpCiAgICAgewotICAgICAg
ICByZXR1cm4gYWRvcHRSZWYoKm5ldyBTZXJ2aWNlV29ya2VyQ2xpZW50KGNvbnRleHQsIFdURk1v
dmUoZGF0YSkpKTsKKyAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgU2VydmljZVdvcmtlckNs
aWVudChjb250ZXh0LCBpZGVudGlmaWVyLCBXVEZNb3ZlKGRhdGEpKSk7CiAgICAgfQogCiAgICAg
flNlcnZpY2VXb3JrZXJDbGllbnQoKTsKQEAgLTU4LDExICs1OCwxNCBAQCBwdWJsaWM6CiAgICAg
VHlwZSB0eXBlKCkgY29uc3Q7CiAgICAgU3RyaW5nIGlkKCkgY29uc3Q7CiAKKyAgICBJZGVudGlm
aWVyIGlkZW50aWZpZXIoKSBjb25zdCB7IHJldHVybiBtX2lkZW50aWZpZXI7IH0KKwogICAgIEV4
Y2VwdGlvbk9yPHZvaWQ+IHBvc3RNZXNzYWdlKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmLCBKU0M6
OkpTVmFsdWUgbWVzc2FnZSwgVmVjdG9yPEpTQzo6U3Ryb25nPEpTQzo6SlNPYmplY3Q+PiYmIHRy
YW5zZmVyKTsKIAogcHJvdGVjdGVkOgotICAgIFNlcnZpY2VXb3JrZXJDbGllbnQoU2NyaXB0RXhl
Y3V0aW9uQ29udGV4dCYsIFNlcnZpY2VXb3JrZXJDbGllbnREYXRhJiYpOworICAgIFNlcnZpY2VX
b3JrZXJDbGllbnQoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYsIFNlcnZpY2VXb3JrZXJDbGllbnRJ
ZGVudGlmaWVyLCBTZXJ2aWNlV29ya2VyQ2xpZW50RGF0YSYmKTsKIAorICAgIFNlcnZpY2VXb3Jr
ZXJDbGllbnRJZGVudGlmaWVyIG1faWRlbnRpZmllcjsKICAgICBTZXJ2aWNlV29ya2VyQ2xpZW50
RGF0YSBtX2RhdGE7CiB9OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3Nl
cnZpY2UvU2VydmljZVdvcmtlckNsaWVudERhdGEuY3BwIGIvU291cmNlL1dlYkNvcmUvd29ya2Vy
cy9zZXJ2aWNlL1NlcnZpY2VXb3JrZXJDbGllbnREYXRhLmNwcAppbmRleCBlYzk5ZDc5MTc5Zjhl
YmY4MTlmY2Q4ZDhhZDMyNmNlZmM4NjFkYzM2Li5iMmU3ZDMzMjE3MWU2YWQxZTRmMDUzZDc0YTIy
ZDg0MzhhOWRmM2M1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2Uv
U2VydmljZVdvcmtlckNsaWVudERhdGEuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMv
c2VydmljZS9TZXJ2aWNlV29ya2VyQ2xpZW50RGF0YS5jcHAKQEAgLTU2LDE3ICs1NiwxNCBAQCBz
dGF0aWMgU2VydmljZVdvcmtlckNsaWVudEZyYW1lVHlwZSB0b1NlcnZpY2VXb3JrZXJDbGllbnRG
cmFtZVR5cGUoU2NyaXB0RXhlY3V0aQogCiBTZXJ2aWNlV29ya2VyQ2xpZW50RGF0YSBTZXJ2aWNl
V29ya2VyQ2xpZW50RGF0YTo6aXNvbGF0ZWRDb3B5KCkgY29uc3QKIHsKLSAgICByZXR1cm4geyBp
ZGVudGlmaWVyLCB0eXBlLCBmcmFtZVR5cGUsIHVybC5pc29sYXRlZENvcHkoKSB9OworICAgIHJl
dHVybiB7IHR5cGUsIGZyYW1lVHlwZSwgdXJsLmlzb2xhdGVkQ29weSgpIH07CiB9CiAKIFNlcnZp
Y2VXb3JrZXJDbGllbnREYXRhIFNlcnZpY2VXb3JrZXJDbGllbnREYXRhOjpmcm9tKFNjcmlwdEV4
ZWN1dGlvbkNvbnRleHQmIGNvbnRleHQpCiB7CiAgICAgYm9vbCBpc0RvY3VtZW50ID0gaXM8RG9j
dW1lbnQ+KGNvbnRleHQpOwogCi0gICAgQVNTRVJUX1dJVEhfTUVTU0FHRShpc0RvY3VtZW50LCAi
T25seSBkb2N1bWVudHMgaGF2ZSBpZGVudGlmaWVycyBhdCB0aGUgbW9tZW50Iik7Ci0KICAgICBy
ZXR1cm4gewotICAgICAgICB7IDAsIGRvd25jYXN0PERvY3VtZW50Pihjb250ZXh0KS5pZGVudGlm
aWVyKCkgfSwKICAgICAgICAgaXNEb2N1bWVudCA/IFNlcnZpY2VXb3JrZXJDbGllbnRUeXBlOjpX
aW5kb3cgOiBTZXJ2aWNlV29ya2VyQ2xpZW50VHlwZTo6V29ya2VyLAogICAgICAgICB0b1NlcnZp
Y2VXb3JrZXJDbGllbnRGcmFtZVR5cGUoY29udGV4dCksCiAgICAgICAgIGNvbnRleHQudXJsKCkK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9TZXJ2aWNlV29ya2Vy
Q2xpZW50RGF0YS5oIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL1NlcnZpY2VXb3Jr
ZXJDbGllbnREYXRhLmgKaW5kZXggODUxODY3YzYwZTljMjJkODEzZDFiNWM3NzY4OTMwMzM4ZjRm
MDAwYS4uNGYxYWI4YmE0NWU0YTk4ZmY1NWE0NTJjNjU0ZWRlYjdlNTc4YWZlMSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL1NlcnZpY2VXb3JrZXJDbGllbnREYXRh
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL1NlcnZpY2VXb3JrZXJDbGll
bnREYXRhLmgKQEAgLTM3LDcgKzM3LDYgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogY2xhc3MgU2Ny
aXB0RXhlY3V0aW9uQ29udGV4dDsKIAogc3RydWN0IFNlcnZpY2VXb3JrZXJDbGllbnREYXRhIHsK
LSAgICBTZXJ2aWNlV29ya2VyQ2xpZW50SWRlbnRpZmllciBpZGVudGlmaWVyOwogICAgIFNlcnZp
Y2VXb3JrZXJDbGllbnRUeXBlIHR5cGU7CiAgICAgU2VydmljZVdvcmtlckNsaWVudEZyYW1lVHlw
ZSBmcmFtZVR5cGU7CiAgICAgVVJMIHVybDsKQEAgLTUzLDE3ICs1MiwxMiBAQCBzdHJ1Y3QgU2Vy
dmljZVdvcmtlckNsaWVudERhdGEgewogdGVtcGxhdGU8Y2xhc3MgRW5jb2Rlcj4KIHZvaWQgU2Vy
dmljZVdvcmtlckNsaWVudERhdGE6OmVuY29kZShFbmNvZGVyJiBlbmNvZGVyKSBjb25zdAogewot
ICAgIGVuY29kZXIgPDwgaWRlbnRpZmllciA8PCB0eXBlIDw8IGZyYW1lVHlwZSA8PCB1cmw7Cisg
ICAgZW5jb2RlciA8PCB0eXBlIDw8IGZyYW1lVHlwZSA8PCB1cmw7CiB9CiAKIHRlbXBsYXRlPGNs
YXNzIERlY29kZXI+CiBzdGQ6Om9wdGlvbmFsPFNlcnZpY2VXb3JrZXJDbGllbnREYXRhPiBTZXJ2
aWNlV29ya2VyQ2xpZW50RGF0YTo6ZGVjb2RlKERlY29kZXImIGRlY29kZXIpCiB7Ci0gICAgc3Rk
OjpvcHRpb25hbDxTZXJ2aWNlV29ya2VyQ2xpZW50SWRlbnRpZmllcj4gaWRlbnRpZmllcjsKLSAg
ICBkZWNvZGVyID4+IGlkZW50aWZpZXI7Ci0gICAgaWYgKCFpZGVudGlmaWVyKQotICAgICAgICBy
ZXR1cm4gc3RkOjpudWxsb3B0OwotCiAgICAgc3RkOjpvcHRpb25hbDxTZXJ2aWNlV29ya2VyQ2xp
ZW50VHlwZT4gdHlwZTsKICAgICBkZWNvZGVyID4+IHR5cGU7CiAgICAgaWYgKCF0eXBlKQpAQCAt
NzksNyArNzMsNyBAQCBzdGQ6Om9wdGlvbmFsPFNlcnZpY2VXb3JrZXJDbGllbnREYXRhPiBTZXJ2
aWNlV29ya2VyQ2xpZW50RGF0YTo6ZGVjb2RlKERlY29kZXImCiAgICAgaWYgKCF1cmwpCiAgICAg
ICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CiAKLSAgICByZXR1cm4geyB7IFdURk1vdmUoKmlkZW50
aWZpZXIpLCBXVEZNb3ZlKCp0eXBlKSwgV1RGTW92ZSgqZnJhbWVUeXBlKSwgV1RGTW92ZSgqdXJs
KSB9IH07CisgICAgcmV0dXJuIHsgeyBXVEZNb3ZlKCp0eXBlKSwgV1RGTW92ZSgqZnJhbWVUeXBl
KSwgV1RGTW92ZSgqdXJsKSB9IH07CiB9CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9TZXJ2aWNlV29ya2VyQ2xpZW50
SWRlbnRpZmllci5oIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL1NlcnZpY2VXb3Jr
ZXJDbGllbnRJZGVudGlmaWVyLmgKaW5kZXggYTE1MmJlMTc0YTg5OGM1NDVhM2NmMjA4YWQxMmU4
NDcxOWMzOGVlNi4uNjRlNWU4Nzg5OTkxMWNmYTA1OGQzMzcyNjI1NjcxOGNkYmQwNzBmNyAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL1NlcnZpY2VXb3JrZXJDbGll
bnRJZGVudGlmaWVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL1NlcnZp
Y2VXb3JrZXJDbGllbnRJZGVudGlmaWVyLmgKQEAgLTI1LDE1ICsyNSwxOCBAQAogCiAjcHJhZ21h
IG9uY2UKIAorI2lmIEVOQUJMRShTRVJWSUNFX1dPUktFUikKKworI2luY2x1ZGUgIlNlcnZpY2VX
b3JrZXJUeXBlcy5oIgogI2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgogCiBuYW1lc3Bh
Y2UgV2ViQ29yZSB7CiAKIHN0cnVjdCBTZXJ2aWNlV29ya2VyQ2xpZW50SWRlbnRpZmllciB7Ci0g
ICAgdWludDY0X3Qgc2VydmVyQ29ubmVjdGlvbklkZW50aWZpZXI7CisgICAgU1dTZXJ2ZXJDb25u
ZWN0aW9uSWRlbnRpZmllciBzZXJ2ZXJDb25uZWN0aW9uSWRlbnRpZmllcjsKICAgICB1aW50NjRf
dCBzY3JpcHRFeGVjdXRpb25Db250ZXh0SWRlbnRpZmllcjsKIAotICAgIFN0cmluZyB0b1N0cmlu
ZygpIGNvbnN0IHsgcmV0dXJuIFN0cmluZzo6bnVtYmVyKHNlcnZlckNvbm5lY3Rpb25JZGVudGlm
aWVyKSArICItIiArICBTdHJpbmc6Om51bWJlcihzY3JpcHRFeGVjdXRpb25Db250ZXh0SWRlbnRp
Zmllcik7IH0KKyAgICBTdHJpbmcgdG9TdHJpbmcoKSBjb25zdCB7IHJldHVybiBTdHJpbmc6Om51
bWJlcihzZXJ2ZXJDb25uZWN0aW9uSWRlbnRpZmllci50b1VJbnQ2NCgpKSArICItIiArICBTdHJp
bmc6Om51bWJlcihzY3JpcHRFeGVjdXRpb25Db250ZXh0SWRlbnRpZmllcik7IH0KIAogICAgIHRl
bXBsYXRlPGNsYXNzIEVuY29kZXI+IHZvaWQgZW5jb2RlKEVuY29kZXImKSBjb25zdDsKICAgICB0
ZW1wbGF0ZTxjbGFzcyBEZWNvZGVyPiBzdGF0aWMgc3RkOjpvcHRpb25hbDxTZXJ2aWNlV29ya2Vy
Q2xpZW50SWRlbnRpZmllcj4gZGVjb2RlKERlY29kZXImKTsKQEAgLTQ4LDcgKzUxLDcgQEAgdm9p
ZCBTZXJ2aWNlV29ya2VyQ2xpZW50SWRlbnRpZmllcjo6ZW5jb2RlKEVuY29kZXImIGVuY29kZXIp
IGNvbnN0CiB0ZW1wbGF0ZTxjbGFzcyBEZWNvZGVyPgogc3RkOjpvcHRpb25hbDxTZXJ2aWNlV29y
a2VyQ2xpZW50SWRlbnRpZmllcj4gU2VydmljZVdvcmtlckNsaWVudElkZW50aWZpZXI6OmRlY29k
ZShEZWNvZGVyJiBkZWNvZGVyKQogewotICAgIHN0ZDo6b3B0aW9uYWw8dWludDY0X3Q+IHNlcnZl
ckNvbm5lY3Rpb25JZGVudGlmaWVyOworICAgIHN0ZDo6b3B0aW9uYWw8U1dTZXJ2ZXJDb25uZWN0
aW9uSWRlbnRpZmllcj4gc2VydmVyQ29ubmVjdGlvbklkZW50aWZpZXI7CiAgICAgZGVjb2RlciA+
PiBzZXJ2ZXJDb25uZWN0aW9uSWRlbnRpZmllcjsKICAgICBpZiAoIXNlcnZlckNvbm5lY3Rpb25J
ZGVudGlmaWVyKQogICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OwpAQCAtNjEsNCArNjQsNiBA
QCBzdGQ6Om9wdGlvbmFsPFNlcnZpY2VXb3JrZXJDbGllbnRJZGVudGlmaWVyPiBTZXJ2aWNlV29y
a2VyQ2xpZW50SWRlbnRpZmllcjo6ZGVjbwogICAgIHJldHVybiB7IHsgV1RGTW92ZSgqc2VydmVy
Q29ubmVjdGlvbklkZW50aWZpZXIpLCBXVEZNb3ZlKCpzY3JpcHRFeGVjdXRpb25Db250ZXh0SWRl
bnRpZmllcikgfSB9OwogfQogCi19Cit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZiAv
LyBFTkFCTEUoU0VSVklDRV9XT1JLRVIpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS93b3Jr
ZXJzL3NlcnZpY2UvU2VydmljZVdvcmtlckNvbnRhaW5lci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS93
b3JrZXJzL3NlcnZpY2UvU2VydmljZVdvcmtlckNvbnRhaW5lci5jcHAKaW5kZXggNjc5YjBkN2Uy
NDg3YWQ3YjEzZDdiNDY1ODRjNmE4OTUzMWIzMjg2ZS4uMGZkMzAwZmQ2ZDY1ODY4NjQ0N2M0NjI1
NDJkNjM2ZDM0NTE3NGE0OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2
aWNlL1NlcnZpY2VXb3JrZXJDb250YWluZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3dvcmtl
cnMvc2VydmljZS9TZXJ2aWNlV29ya2VyQ29udGFpbmVyLmNwcApAQCAtOTgsNyArOTgsNyBAQCB2
b2lkIFNlcnZpY2VXb3JrZXJDb250YWluZXI6OmFkZFJlZ2lzdHJhdGlvbihjb25zdCBTdHJpbmcm
IHJlbGF0aXZlU2NyaXB0VVJMLCBjbwogICAgIGlmICghbV9zd0Nvbm5lY3Rpb24pCiAgICAgICAg
IG1fc3dDb25uZWN0aW9uID0gJlNlcnZpY2VXb3JrZXJQcm92aWRlcjo6c2luZ2xldG9uKCkuc2Vy
dmljZVdvcmtlckNvbm5lY3Rpb25Gb3JTZXNzaW9uKHNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKS0+
c2Vzc2lvbklEKCkpOwogCi0gICAgU2VydmljZVdvcmtlckpvYkRhdGEgam9iRGF0YShtX3N3Q29u
bmVjdGlvbi0+aWRlbnRpZmllcigpKTsKKyAgICBTZXJ2aWNlV29ya2VySm9iRGF0YSBqb2JEYXRh
KG1fc3dDb25uZWN0aW9uLT5zZXJ2ZXJDb25uZWN0aW9uSWRlbnRpZmllcigpKTsKIAogICAgIGpv
YkRhdGEuc2NyaXB0VVJMID0gY29udGV4dC0+Y29tcGxldGVVUkwocmVsYXRpdmVTY3JpcHRVUkwp
OwogICAgIGlmICgham9iRGF0YS5zY3JpcHRVUkwuaXNWYWxpZCgpKSB7CkBAIC0xNTYsNyArMTU2
LDcgQEAgdm9pZCBTZXJ2aWNlV29ya2VyQ29udGFpbmVyOjpyZW1vdmVSZWdpc3RyYXRpb24oY29u
c3QgVVJMJiBzY29wZVVSTCwgUmVmPERlZmVycmUKICAgICAgICAgcmV0dXJuOwogICAgIH0KIAot
ICAgIFNlcnZpY2VXb3JrZXJKb2JEYXRhIGpvYkRhdGEobV9zd0Nvbm5lY3Rpb24tPmlkZW50aWZp
ZXIoKSk7CisgICAgU2VydmljZVdvcmtlckpvYkRhdGEgam9iRGF0YShtX3N3Q29ubmVjdGlvbi0+
c2VydmVyQ29ubmVjdGlvbklkZW50aWZpZXIoKSk7CiAgICAgam9iRGF0YS5jbGllbnRDcmVhdGlv
blVSTCA9IGNvbnRleHQtPnVybCgpOwogICAgIGpvYkRhdGEudG9wT3JpZ2luID0gU2VjdXJpdHlP
cmlnaW5EYXRhOjpmcm9tU2VjdXJpdHlPcmlnaW4oY29udGV4dC0+dG9wT3JpZ2luKCkpOwogICAg
IGpvYkRhdGEudHlwZSA9IFNlcnZpY2VXb3JrZXJKb2JUeXBlOjpVbnJlZ2lzdGVyOwpAQCAtMTgw
LDcgKzE4MCw3IEBAIHZvaWQgU2VydmljZVdvcmtlckNvbnRhaW5lcjo6dXBkYXRlUmVnaXN0cmF0
aW9uKGNvbnN0IFVSTCYgc2NvcGVVUkwsIGNvbnN0IFVSTCYKICAgICAgICAgcmV0dXJuOwogICAg
IH0KIAotICAgIFNlcnZpY2VXb3JrZXJKb2JEYXRhIGpvYkRhdGEobV9zd0Nvbm5lY3Rpb24tPmlk
ZW50aWZpZXIoKSk7CisgICAgU2VydmljZVdvcmtlckpvYkRhdGEgam9iRGF0YShtX3N3Q29ubmVj
dGlvbi0+c2VydmVyQ29ubmVjdGlvbklkZW50aWZpZXIoKSk7CiAgICAgam9iRGF0YS5jbGllbnRD
cmVhdGlvblVSTCA9IGNvbnRleHQtPnVybCgpOwogICAgIGpvYkRhdGEudG9wT3JpZ2luID0gU2Vj
dXJpdHlPcmlnaW5EYXRhOjpmcm9tU2VjdXJpdHlPcmlnaW4oY29udGV4dC0+dG9wT3JpZ2luKCkp
OwogICAgIGpvYkRhdGEudHlwZSA9IFNlcnZpY2VXb3JrZXJKb2JUeXBlOjpVcGRhdGU7CkBAIC0z
ODMsMTAgKzM4MywxMCBAQCB2b2lkIFNlcnZpY2VXb3JrZXJDb250YWluZXI6OmpvYkRpZEZpbmlz
aChTZXJ2aWNlV29ya2VySm9iJiBqb2IpCiAgICAgdW5zZXRQZW5kaW5nQWN0aXZpdHkodGhpcyk7
CiB9CiAKLXVpbnQ2NF90IFNlcnZpY2VXb3JrZXJDb250YWluZXI6OmNvbm5lY3Rpb25JZGVudGlm
aWVyKCkKK1NXU2VydmVyQ29ubmVjdGlvbklkZW50aWZpZXIgU2VydmljZVdvcmtlckNvbnRhaW5l
cjo6Y29ubmVjdGlvbklkZW50aWZpZXIoKQogewogICAgIEFTU0VSVChtX3N3Q29ubmVjdGlvbik7
Ci0gICAgcmV0dXJuIG1fc3dDb25uZWN0aW9uLT5pZGVudGlmaWVyKCk7CisgICAgcmV0dXJuIG1f
c3dDb25uZWN0aW9uLT5zZXJ2ZXJDb25uZWN0aW9uSWRlbnRpZmllcigpOwogfQogCiBjb25zdCBj
aGFyKiBTZXJ2aWNlV29ya2VyQ29udGFpbmVyOjphY3RpdmVET01PYmplY3ROYW1lKCkgY29uc3QK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9TZXJ2aWNlV29ya2Vy
Q29udGFpbmVyLmggYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvU2VydmljZVdvcmtl
ckNvbnRhaW5lci5oCmluZGV4IDQxZTkyZTllYzE1NmNiYjMwZTExZGRiYjg5ZjI2YzU3NWVkZmY4
YjAuLmI4ZDU4NzZhYTE5YTc3Mzk0NWRlMjY0OTVkYmRkNDY3NmMxYjZmYzkgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9TZXJ2aWNlV29ya2VyQ29udGFpbmVyLmgK
KysrIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL1NlcnZpY2VXb3JrZXJDb250YWlu
ZXIuaApAQCAtOTUsNyArOTUsNyBAQCBwcml2YXRlOgogCiAgICAgdm9pZCBqb2JEaWRGaW5pc2go
U2VydmljZVdvcmtlckpvYiYpOwogCi0gICAgdWludDY0X3QgY29ubmVjdGlvbklkZW50aWZpZXIo
KSBmaW5hbDsKKyAgICBTV1NlcnZlckNvbm5lY3Rpb25JZGVudGlmaWVyIGNvbm5lY3Rpb25JZGVu
dGlmaWVyKCkgZmluYWw7CiAKICAgICBjb25zdCBjaGFyKiBhY3RpdmVET01PYmplY3ROYW1lKCkg
Y29uc3QgZmluYWw7CiAgICAgYm9vbCBjYW5TdXNwZW5kRm9yRG9jdW1lbnRTdXNwZW5zaW9uKCkg
Y29uc3QgZmluYWw7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2Uv
U2VydmljZVdvcmtlckZldGNoUmVzdWx0LmggYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZp
Y2UvU2VydmljZVdvcmtlckZldGNoUmVzdWx0LmgKaW5kZXggZWY3ZTcyZGMzMTMzNjI5ODkwZjFl
OGFiMWQ2YjcxY2U2MTJiMjNlZC4uMzYwNDQ0NDYzYTFjN2QyZDQ5ZTM4NWVhZTJhMDQ2Zjg3M2Fk
MDgwZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL1NlcnZpY2VX
b3JrZXJGZXRjaFJlc3VsdC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9T
ZXJ2aWNlV29ya2VyRmV0Y2hSZXN1bHQuaApAQCAtMjksMTIgKzI5LDEzIEBACiAKICNpbmNsdWRl
ICJSZXNvdXJjZUVycm9yLmgiCiAjaW5jbHVkZSAiU2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbktl
eS5oIgorI2luY2x1ZGUgIlNlcnZpY2VXb3JrZXJUeXBlcy5oIgogCiBuYW1lc3BhY2UgV2ViQ29y
ZSB7CiAKIHN0cnVjdCBTZXJ2aWNlV29ya2VyRmV0Y2hSZXN1bHQgewogICAgIHVpbnQ2NF90IGpv
YklkZW50aWZpZXI7Ci0gICAgdWludDY0X3QgY29ubmVjdGlvbklkZW50aWZpZXI7CisgICAgU1dT
ZXJ2ZXJDb25uZWN0aW9uSWRlbnRpZmllciBjb25uZWN0aW9uSWRlbnRpZmllcjsKICAgICBTZXJ2
aWNlV29ya2VyUmVnaXN0cmF0aW9uS2V5IHJlZ2lzdHJhdGlvbktleTsKICAgICBTdHJpbmcgc2Ny
aXB0OwogICAgIFJlc291cmNlRXJyb3Igc2NyaXB0RXJyb3I7CkBAIC01NCw4ICs1NSwxMiBAQCBi
b29sIFNlcnZpY2VXb3JrZXJGZXRjaFJlc3VsdDo6ZGVjb2RlKERlY29kZXImIGRlY29kZXIsIFNl
cnZpY2VXb3JrZXJGZXRjaFJlc3VsdAogewogICAgIGlmICghZGVjb2Rlci5kZWNvZGUocmVzdWx0
LmpvYklkZW50aWZpZXIpKQogICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgaWYgKCFkZWNvZGVy
LmRlY29kZShyZXN1bHQuY29ubmVjdGlvbklkZW50aWZpZXIpKQorCisgICAgc3RkOjpvcHRpb25h
bDxTV1NlcnZlckNvbm5lY3Rpb25JZGVudGlmaWVyPiBjb25uZWN0aW9uSWRlbnRpZmllcjsKKyAg
ICBkZWNvZGVyID4+IGNvbm5lY3Rpb25JZGVudGlmaWVyOworICAgIGlmICghY29ubmVjdGlvbklk
ZW50aWZpZXIpCiAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICByZXN1bHQuY29ubmVjdGlvbklk
ZW50aWZpZXIgPSAqY29ubmVjdGlvbklkZW50aWZpZXI7CiAgICAgCiAgICAgYXV0byByZWdpc3Ry
YXRpb25LZXkgPSBTZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uS2V5OjpkZWNvZGUoZGVjb2Rlcik7
CiAgICAgaWYgKCFyZWdpc3RyYXRpb25LZXkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS93
b3JrZXJzL3NlcnZpY2UvU2VydmljZVdvcmtlckpvYkNsaWVudC5oIGIvU291cmNlL1dlYkNvcmUv
d29ya2Vycy9zZXJ2aWNlL1NlcnZpY2VXb3JrZXJKb2JDbGllbnQuaAppbmRleCA3MTVhOWMzM2M1
YzgwYjVhNTM1ZDU2ZTY4YTE4NmEyOWJjZWZlODZhLi4wMmE4YzQ0N2EzZDliYjUxOTgxMjFlMzlj
ZTZiNDZlOGJjZjI3YjI5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZp
Y2UvU2VydmljZVdvcmtlckpvYkNsaWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMv
c2VydmljZS9TZXJ2aWNlV29ya2VySm9iQ2xpZW50LmgKQEAgLTI3LDYgKzI3LDggQEAKIAogI2lm
IEVOQUJMRShTRVJWSUNFX1dPUktFUikKIAorI2luY2x1ZGUgIlNlcnZpY2VXb3JrZXJUeXBlcy5o
IgorCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNzIEV4Y2VwdGlvbjsKQEAgLTQ2LDcgKzQ4
LDcgQEAgcHVibGljOgogICAgIHZpcnR1YWwgdm9pZCBqb2JGaW5pc2hlZExvYWRpbmdTY3JpcHQo
U2VydmljZVdvcmtlckpvYiYsIGNvbnN0IFN0cmluZyYpID0gMDsKICAgICB2aXJ0dWFsIHZvaWQg
am9iRmFpbGVkTG9hZGluZ1NjcmlwdChTZXJ2aWNlV29ya2VySm9iJiwgY29uc3QgUmVzb3VyY2VF
cnJvciYsIHN0ZDo6b3B0aW9uYWw8RXhjZXB0aW9uPiYmKSA9IDA7CiAKLSAgICB2aXJ0dWFsIHVp
bnQ2NF90IGNvbm5lY3Rpb25JZGVudGlmaWVyKCkgPSAwOworICAgIHZpcnR1YWwgU1dTZXJ2ZXJD
b25uZWN0aW9uSWRlbnRpZmllciBjb25uZWN0aW9uSWRlbnRpZmllcigpID0gMDsKIAogICAgIHZp
cnR1YWwgdm9pZCByZWYoKSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIGRlcmVmKCkgPSAwOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL1NlcnZpY2VXb3JrZXJKb2JE
YXRhLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9TZXJ2aWNlV29ya2VySm9i
RGF0YS5jcHAKaW5kZXggMTgxZTg2ZWU3MmQ1MDA0ZTI2OGVkNDYwZDg3ODcwMTJjOGEzYWUwNi4u
ZDhiYzQzZWIyNmM0OTY5MjMyY2E0M2EzY2IxMTJiNzI2MTIwZDRjYyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL1NlcnZpY2VXb3JrZXJKb2JEYXRhLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvU2VydmljZVdvcmtlckpvYkRhdGEuY3Bw
CkBAIC0zMCwxMyArMzAsMTMgQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1TZXJ2aWNlV29y
a2VySm9iRGF0YTo6U2VydmljZVdvcmtlckpvYkRhdGEodWludDY0X3Qgam9iSWRlbnRpZmllciwg
dWludDY0X3QgY29ubmVjdGlvbklkZW50aWZpZXIpCitTZXJ2aWNlV29ya2VySm9iRGF0YTo6U2Vy
dmljZVdvcmtlckpvYkRhdGEodWludDY0X3Qgam9iSWRlbnRpZmllciwgU1dTZXJ2ZXJDb25uZWN0
aW9uSWRlbnRpZmllciBjb25uZWN0aW9uSWRlbnRpZmllcikKICAgICA6IFRocmVhZFNhZmVJZGVu
dGlmaWVkKGpvYklkZW50aWZpZXIpCiAgICAgLCBtX2Nvbm5lY3Rpb25JZGVudGlmaWVyKGNvbm5l
Y3Rpb25JZGVudGlmaWVyKQogewogfQogCi1TZXJ2aWNlV29ya2VySm9iRGF0YTo6U2VydmljZVdv
cmtlckpvYkRhdGEodWludDY0X3QgY29ubmVjdGlvbklkZW50aWZpZXIpCitTZXJ2aWNlV29ya2Vy
Sm9iRGF0YTo6U2VydmljZVdvcmtlckpvYkRhdGEoU1dTZXJ2ZXJDb25uZWN0aW9uSWRlbnRpZmll
ciBjb25uZWN0aW9uSWRlbnRpZmllcikKICAgICA6IG1fY29ubmVjdGlvbklkZW50aWZpZXIoY29u
bmVjdGlvbklkZW50aWZpZXIpCiB7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS93b3Jr
ZXJzL3NlcnZpY2UvU2VydmljZVdvcmtlckpvYkRhdGEuaCBiL1NvdXJjZS9XZWJDb3JlL3dvcmtl
cnMvc2VydmljZS9TZXJ2aWNlV29ya2VySm9iRGF0YS5oCmluZGV4IGI0YTY2OTVjMjgxZTEzMGU4
YmU3MGMyMTNmOTMwNzhmZmQ5N2E3NzMuLjhiNDY3YTk2YWZjNGQxYjk1MWE4NzMxZjI4NjNlM2Nh
YjZlNzE5ZjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9TZXJ2
aWNlV29ya2VySm9iRGF0YS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9T
ZXJ2aWNlV29ya2VySm9iRGF0YS5oCkBAIC0zMSw2ICszMSw3IEBACiAjaW5jbHVkZSAiU2Vydmlj
ZVdvcmtlckpvYlR5cGUuaCIKICNpbmNsdWRlICJTZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uS2V5
LmgiCiAjaW5jbHVkZSAiU2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbk9wdGlvbnMuaCIKKyNpbmNs
dWRlICJTZXJ2aWNlV29ya2VyVHlwZXMuaCIKICNpbmNsdWRlICJVUkwuaCIKICNpbmNsdWRlIDx3
dGYvSWRlbnRpZmllZC5oPgogCkBAIC0zOCwxMSArMzksMTEgQEAgbmFtZXNwYWNlIFdlYkNvcmUg
ewogCiBzdHJ1Y3QgU2VydmljZVdvcmtlckpvYkRhdGEgOiBwdWJsaWMgVGhyZWFkU2FmZUlkZW50
aWZpZWQ8U2VydmljZVdvcmtlckpvYkRhdGE+IHsKIHB1YmxpYzoKLSAgICBleHBsaWNpdCBTZXJ2
aWNlV29ya2VySm9iRGF0YSh1aW50NjRfdCBjb25uZWN0aW9uSWRlbnRpZmllcik7CisgICAgZXhw
bGljaXQgU2VydmljZVdvcmtlckpvYkRhdGEoU1dTZXJ2ZXJDb25uZWN0aW9uSWRlbnRpZmllcik7
CiAgICAgU2VydmljZVdvcmtlckpvYkRhdGEoY29uc3QgU2VydmljZVdvcmtlckpvYkRhdGEmKSA9
IGRlZmF1bHQ7CiAgICAgU2VydmljZVdvcmtlckpvYkRhdGEoKSA9IGRlZmF1bHQ7CiAKLSAgICB1
aW50NjRfdCBjb25uZWN0aW9uSWRlbnRpZmllcigpIGNvbnN0IHsgcmV0dXJuIG1fY29ubmVjdGlv
bklkZW50aWZpZXI7IH0KKyAgICBTV1NlcnZlckNvbm5lY3Rpb25JZGVudGlmaWVyIGNvbm5lY3Rp
b25JZGVudGlmaWVyKCkgY29uc3QgeyByZXR1cm4gbV9jb25uZWN0aW9uSWRlbnRpZmllcjsgfQog
CiAgICAgVVJMIHNjcmlwdFVSTDsKICAgICBVUkwgY2xpZW50Q3JlYXRpb25VUkw7CkBAIC01OSw5
ICs2MCw5IEBAIHB1YmxpYzoKICAgICB0ZW1wbGF0ZTxjbGFzcyBEZWNvZGVyPiBzdGF0aWMgc3Rk
OjpvcHRpb25hbDxTZXJ2aWNlV29ya2VySm9iRGF0YT4gZGVjb2RlKERlY29kZXImKTsKIAogcHJp
dmF0ZToKLSAgICBXRUJDT1JFX0VYUE9SVCBTZXJ2aWNlV29ya2VySm9iRGF0YSh1aW50NjRfdCBq
b2JJZGVudGlmaWVyLCB1aW50NjRfdCBjb25uZWN0aW9uSWRlbnRpZmllcik7CisgICAgV0VCQ09S
RV9FWFBPUlQgU2VydmljZVdvcmtlckpvYkRhdGEodWludDY0X3Qgam9iSWRlbnRpZmllciwgU1dT
ZXJ2ZXJDb25uZWN0aW9uSWRlbnRpZmllcik7CiAKLSAgICB1aW50NjRfdCBtX2Nvbm5lY3Rpb25J
ZGVudGlmaWVyIHsgMCB9OworICAgIFNXU2VydmVyQ29ubmVjdGlvbklkZW50aWZpZXIgbV9jb25u
ZWN0aW9uSWRlbnRpZmllcjsKIH07CiAKIHRlbXBsYXRlPGNsYXNzIEVuY29kZXI+CkBAIC04Niwx
MSArODcsMTIgQEAgc3RkOjpvcHRpb25hbDxTZXJ2aWNlV29ya2VySm9iRGF0YT4gU2VydmljZVdv
cmtlckpvYkRhdGE6OmRlY29kZShEZWNvZGVyJiBkZWNvZGUKICAgICBpZiAoIWRlY29kZXIuZGVj
b2RlKGpvYklkZW50aWZpZXIpKQogICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OwogCi0gICAg
dWludDY0X3QgY29ubmVjdGlvbklkZW50aWZpZXI7Ci0gICAgaWYgKCFkZWNvZGVyLmRlY29kZShj
b25uZWN0aW9uSWRlbnRpZmllcikpCisgICAgc3RkOjpvcHRpb25hbDxTV1NlcnZlckNvbm5lY3Rp
b25JZGVudGlmaWVyPiBjb25uZWN0aW9uSWRlbnRpZmllcjsKKyAgICBkZWNvZGVyID4+IGNvbm5l
Y3Rpb25JZGVudGlmaWVyOworICAgIGlmICghY29ubmVjdGlvbklkZW50aWZpZXIpCiAgICAgICAg
IHJldHVybiBzdGQ6Om51bGxvcHQ7CiAKLSAgICBzdGQ6Om9wdGlvbmFsPFNlcnZpY2VXb3JrZXJK
b2JEYXRhPiBqb2JEYXRhID0geyB7IGpvYklkZW50aWZpZXIsIGNvbm5lY3Rpb25JZGVudGlmaWVy
IH0gfTsKKyAgICBzdGQ6Om9wdGlvbmFsPFNlcnZpY2VXb3JrZXJKb2JEYXRhPiBqb2JEYXRhID0g
eyB7IGpvYklkZW50aWZpZXIsICpjb25uZWN0aW9uSWRlbnRpZmllciB9IH07CiAKICAgICBpZiAo
IWRlY29kZXIuZGVjb2RlKGpvYkRhdGEtPnNjcmlwdFVSTCkpCiAgICAgICAgIHJldHVybiBzdGQ6
Om51bGxvcHQ7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvU2Vy
dmljZVdvcmtlclR5cGVzLmggYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvU2Vydmlj
ZVdvcmtlclR5cGVzLmgKaW5kZXggYjMyM2I4OWU2N2VjYTQ5N2IwN2Y3ZjcwYWY4YWFlYzE3YzNk
YzE2Ni4uMTk1MzRkMTg3NTBhMWZhMDhlYzg3NTRkNGJiNGY1MzY4ZjdhZmQxNyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL1NlcnZpY2VXb3JrZXJUeXBlcy5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9TZXJ2aWNlV29ya2VyVHlwZXMuaApA
QCAtNjEsNiArNjEsOSBAQCB1c2luZyBTZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uSWRlbnRpZmll
ciA9IE9iamVjdElkZW50aWZpZXI8U2VydmljZVdvcmtlclJlZ2lzdAogZW51bSBTV1NlcnZlclRv
Q29udGV4dENvbm5lY3Rpb25JZGVudGlmaWVyVHlwZSB7IH07CiB1c2luZyBTV1NlcnZlclRvQ29u
dGV4dENvbm5lY3Rpb25JZGVudGlmaWVyID0gT2JqZWN0SWRlbnRpZmllcjxTV1NlcnZlclRvQ29u
dGV4dENvbm5lY3Rpb25JZGVudGlmaWVyVHlwZT47CiAKK2VudW0gU1dTZXJ2ZXJDb25uZWN0aW9u
SWRlbnRpZmllclR5cGUgeyB9OwordXNpbmcgU1dTZXJ2ZXJDb25uZWN0aW9uSWRlbnRpZmllciA9
IE9iamVjdElkZW50aWZpZXI8U1dTZXJ2ZXJDb25uZWN0aW9uSWRlbnRpZmllclR5cGU+OworCiB9
IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAKIG5hbWVzcGFjZSBXVEYgewpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL1NlcnZpY2VXb3JrZXJXaW5kb3dDbGllbnQuY3Bw
IGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL1NlcnZpY2VXb3JrZXJXaW5kb3dDbGll
bnQuY3BwCmluZGV4IGFiM2M3NWI4NTEzMTZkOWQzZWVmOTI4OTI5NmRhNzljMTkzYTIwMmIuLjRm
ZWI5MDgyZDVmYThjY2FmMDRmZjBiNzM5M2JlNzM3NWY0OWRkYzMgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9TZXJ2aWNlV29ya2VyV2luZG93Q2xpZW50LmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvU2VydmljZVdvcmtlcldpbmRvd0Ns
aWVudC5jcHAKQEAgLTMyLDggKzMyLDggQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1TZXJ2
aWNlV29ya2VyV2luZG93Q2xpZW50OjpTZXJ2aWNlV29ya2VyV2luZG93Q2xpZW50KFNjcmlwdEV4
ZWN1dGlvbkNvbnRleHQmIGNvbnRleHQsIFNlcnZpY2VXb3JrZXJDbGllbnREYXRhJiYgZGF0YSkK
LSAgICA6IFNlcnZpY2VXb3JrZXJDbGllbnQoY29udGV4dCwgV1RGTW92ZShkYXRhKSkKK1NlcnZp
Y2VXb3JrZXJXaW5kb3dDbGllbnQ6OlNlcnZpY2VXb3JrZXJXaW5kb3dDbGllbnQoU2NyaXB0RXhl
Y3V0aW9uQ29udGV4dCYgY29udGV4dCwgU2VydmljZVdvcmtlckNsaWVudElkZW50aWZpZXIgaWRl
bnRpZmllciwgU2VydmljZVdvcmtlckNsaWVudERhdGEmJiBkYXRhKQorICAgIDogU2VydmljZVdv
cmtlckNsaWVudChjb250ZXh0LCBpZGVudGlmaWVyLCBXVEZNb3ZlKGRhdGEpKQogewogfQogCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvU2VydmljZVdvcmtlcldp
bmRvd0NsaWVudC5oIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL1NlcnZpY2VXb3Jr
ZXJXaW5kb3dDbGllbnQuaAppbmRleCA1NTVlZTc5YzMwMTlhYTAxNDhiYmMyN2M0NjAxMWRjYWJl
OWRjOGUzLi5jN2I0NTRhY2VmZGUwNGMwZTE4NjNkOTE2ODY5ZTAyODg3MzAwODlmIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvU2VydmljZVdvcmtlcldpbmRvd0Ns
aWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9TZXJ2aWNlV29ya2Vy
V2luZG93Q2xpZW50LmgKQEAgLTM2LDkgKzM2LDkgQEAgY2xhc3MgRGVmZXJyZWRQcm9taXNlOwog
CiBjbGFzcyBTZXJ2aWNlV29ya2VyV2luZG93Q2xpZW50IGZpbmFsIDogcHVibGljIFNlcnZpY2VX
b3JrZXJDbGllbnQgewogcHVibGljOgotICAgIHN0YXRpYyBSZWY8U2VydmljZVdvcmtlcldpbmRv
d0NsaWVudD4gY3JlYXRlKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmIGNvbnRleHQsIFNlcnZpY2VX
b3JrZXJDbGllbnREYXRhJiYgZGF0YSkKKyAgICBzdGF0aWMgUmVmPFNlcnZpY2VXb3JrZXJXaW5k
b3dDbGllbnQ+IGNyZWF0ZShTY3JpcHRFeGVjdXRpb25Db250ZXh0JiBjb250ZXh0LCBTZXJ2aWNl
V29ya2VyQ2xpZW50SWRlbnRpZmllciBpZGVudGlmaWVyLCBTZXJ2aWNlV29ya2VyQ2xpZW50RGF0
YSYmIGRhdGEpCiAgICAgewotICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBTZXJ2aWNlV29y
a2VyV2luZG93Q2xpZW50KGNvbnRleHQsIFdURk1vdmUoZGF0YSkpKTsKKyAgICAgICAgcmV0dXJu
IGFkb3B0UmVmKCpuZXcgU2VydmljZVdvcmtlcldpbmRvd0NsaWVudChjb250ZXh0LCBpZGVudGlm
aWVyLCBXVEZNb3ZlKGRhdGEpKSk7CiAgICAgfQogCiAgICAgVmlzaWJpbGl0eVN0YXRlIHZpc2li
aWxpdHlTdGF0ZSgpIGNvbnN0OwpAQCAtNDgsNyArNDgsNyBAQCBwdWJsaWM6CiAgICAgdm9pZCBu
YXZpZ2F0ZShjb25zdCBTdHJpbmcmIHVybCwgUmVmPERlZmVycmVkUHJvbWlzZT4mJik7CiAKIHBy
aXZhdGU6Ci0gICAgU2VydmljZVdvcmtlcldpbmRvd0NsaWVudChTY3JpcHRFeGVjdXRpb25Db250
ZXh0JiwgU2VydmljZVdvcmtlckNsaWVudERhdGEmJik7CisgICAgU2VydmljZVdvcmtlcldpbmRv
d0NsaWVudChTY3JpcHRFeGVjdXRpb25Db250ZXh0JiwgU2VydmljZVdvcmtlckNsaWVudElkZW50
aWZpZXIsIFNlcnZpY2VXb3JrZXJDbGllbnREYXRhJiYpOwogfTsKIAogfSAvLyBuYW1lc3BhY2Ug
V2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL2NvbnRl
eHQvU1dDb250ZXh0TWFuYWdlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2Uv
Y29udGV4dC9TV0NvbnRleHRNYW5hZ2VyLmNwcAppbmRleCA5YWQ4M2EyNjcxZDMxMDQ0Y2FjODll
NWYwY2I0N2VkNjk4ODM0ZTY4Li40ODI3OGM4YjI1ODQwYjJjMDFlMTE1NTYzMzE4ODE5NjZlYTJm
ZDUzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvY29udGV4dC9T
V0NvbnRleHRNYW5hZ2VyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2Uv
Y29udGV4dC9TV0NvbnRleHRNYW5hZ2VyLmNwcApAQCAtMjcsNiArMjcsNyBAQAogCiAjaWYgRU5B
QkxFKFNFUlZJQ0VfV09SS0VSKQogI2luY2x1ZGUgIlNXQ29udGV4dE1hbmFnZXIuaCIKKyNpbmNs
dWRlICJTZXJ2aWNlV29ya2VyQ2xpZW50SWRlbnRpZmllci5oIgogCiBuYW1lc3BhY2UgV2ViQ29y
ZSB7CiAKQEAgLTY0LDE0ICs2NSwxNCBAQCBTZXJ2aWNlV29ya2VyVGhyZWFkUHJveHkqIFNXQ29u
dGV4dE1hbmFnZXI6OnNlcnZpY2VXb3JrZXJUaHJlYWRQcm94eShTZXJ2aWNlV29yawogICAgIHJl
dHVybiBtX3dvcmtlck1hcC5nZXQoaWRlbnRpZmllcik7CiB9CiAKLXZvaWQgU1dDb250ZXh0TWFu
YWdlcjo6cG9zdE1lc3NhZ2VUb1NlcnZpY2VXb3JrZXJHbG9iYWxTY29wZShTZXJ2aWNlV29ya2Vy
SWRlbnRpZmllciBkZXN0aW5hdGlvbiwgUmVmPFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZT4mJiBtZXNz
YWdlLCBTZXJ2aWNlV29ya2VyQ2xpZW50RGF0YSYmIHNvdXJjZSkKK3ZvaWQgU1dDb250ZXh0TWFu
YWdlcjo6cG9zdE1lc3NhZ2VUb1NlcnZpY2VXb3JrZXJHbG9iYWxTY29wZShTZXJ2aWNlV29ya2Vy
SWRlbnRpZmllciBkZXN0aW5hdGlvbiwgUmVmPFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZT4mJiBtZXNz
YWdlLCBTZXJ2aWNlV29ya2VyQ2xpZW50SWRlbnRpZmllciBzb3VyY2VJZGVudGlmaWVyLCBTZXJ2
aWNlV29ya2VyQ2xpZW50RGF0YSYmIHNvdXJjZURhdGEpCiB7CiAgICAgYXV0byogc2VydmljZVdv
cmtlciA9IG1fd29ya2VyTWFwLmdldChkZXN0aW5hdGlvbik7CiAgICAgaWYgKCFzZXJ2aWNlV29y
a2VyKQogICAgICAgICByZXR1cm47CiAKICAgICAvLyBGSVhNRTogV2Ugc2hvdWxkIHBhc3MgdmFs
aWQgTWVzc2FnZVBvcnRDaGFubmVscy4KLSAgICBzZXJ2aWNlV29ya2VyLT50aHJlYWQoKS5wb3N0
TWVzc2FnZVRvU2VydmljZVdvcmtlckdsb2JhbFNjb3BlKFdURk1vdmUobWVzc2FnZSksIG51bGxw
dHIsIFdURk1vdmUoc291cmNlKSk7CisgICAgc2VydmljZVdvcmtlci0+dGhyZWFkKCkucG9zdE1l
c3NhZ2VUb1NlcnZpY2VXb3JrZXJHbG9iYWxTY29wZShXVEZNb3ZlKG1lc3NhZ2UpLCBudWxscHRy
LCBzb3VyY2VJZGVudGlmaWVyLCBXVEZNb3ZlKHNvdXJjZURhdGEpKTsKIH0KIAogdm9pZCBTV0Nv
bnRleHRNYW5hZ2VyOjpmaXJlSW5zdGFsbEV2ZW50KFNlcnZpY2VXb3JrZXJJZGVudGlmaWVyIGlk
ZW50aWZpZXIpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvY29u
dGV4dC9TV0NvbnRleHRNYW5hZ2VyLmggYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2Uv
Y29udGV4dC9TV0NvbnRleHRNYW5hZ2VyLmgKaW5kZXggNzNlOTI0NzE5YTlkNDUyMmRlZDAzODY4
ZDMzMGY4MTBmYjczYWU5ZC4uNjE1Y2UwNzQ3NDY3NjQ4NjZiNzNiMzYxOTkwNjMyZDg1MzBmNjgw
OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL2NvbnRleHQvU1dD
b250ZXh0TWFuYWdlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9jb250
ZXh0L1NXQ29udGV4dE1hbmFnZXIuaApAQCAtNTgsNyArNTgsNyBAQCBwdWJsaWM6CiAKICAgICBX
RUJDT1JFX0VYUE9SVCB2b2lkIHJlZ2lzdGVyU2VydmljZVdvcmtlclRocmVhZEZvckluc3RhbGwo
UmVmPFNlcnZpY2VXb3JrZXJUaHJlYWRQcm94eT4mJik7CiAgICAgV0VCQ09SRV9FWFBPUlQgU2Vy
dmljZVdvcmtlclRocmVhZFByb3h5KiBzZXJ2aWNlV29ya2VyVGhyZWFkUHJveHkoU2VydmljZVdv
cmtlcklkZW50aWZpZXIpIGNvbnN0OwotICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgcG9zdE1lc3Nh
Z2VUb1NlcnZpY2VXb3JrZXJHbG9iYWxTY29wZShTZXJ2aWNlV29ya2VySWRlbnRpZmllciBkZXN0
aW5hdGlvbiwgUmVmPFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZT4mJiBtZXNzYWdlLCBTZXJ2aWNlV29y
a2VyQ2xpZW50RGF0YSYmIHNvdXJjZSk7CisgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBwb3N0TWVz
c2FnZVRvU2VydmljZVdvcmtlckdsb2JhbFNjb3BlKFNlcnZpY2VXb3JrZXJJZGVudGlmaWVyIGRl
c3RpbmF0aW9uLCBSZWY8U2VyaWFsaXplZFNjcmlwdFZhbHVlPiYmIG1lc3NhZ2UsIFNlcnZpY2VX
b3JrZXJDbGllbnRJZGVudGlmaWVyIHNvdXJjZUlkZW50aWZpZXIsIFNlcnZpY2VXb3JrZXJDbGll
bnREYXRhJiYgc291cmNlRGF0YSk7CiAgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBmaXJlSW5zdGFs
bEV2ZW50KFNlcnZpY2VXb3JrZXJJZGVudGlmaWVyKTsKICAgICBXRUJDT1JFX0VYUE9SVCB2b2lk
IGZpcmVBY3RpdmF0ZUV2ZW50KFNlcnZpY2VXb3JrZXJJZGVudGlmaWVyKTsKICAgICBXRUJDT1JF
X0VYUE9SVCB2b2lkIHRlcm1pbmF0ZVdvcmtlcihTZXJ2aWNlV29ya2VySWRlbnRpZmllcik7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvY29udGV4dC9TZXJ2aWNl
V29ya2VyVGhyZWFkLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9jb250ZXh0
L1NlcnZpY2VXb3JrZXJUaHJlYWQuY3BwCmluZGV4IDhhYWZmMzExODhjNDI2NWMxZDRhMDY5Yjc3
OTc4YmI4MDBhMzA2OTcuLmQ5MmU1NTRmOWQ1NTU2MGYzNzk4YTZhNTgzODljYzM4ZTIwYjdlNTEg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9jb250ZXh0L1NlcnZp
Y2VXb3JrZXJUaHJlYWQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9j
b250ZXh0L1NlcnZpY2VXb3JrZXJUaHJlYWQuY3BwCkBAIC0xMDQsMTIgKzEwNCwxMiBAQCB2b2lk
IFNlcnZpY2VXb3JrZXJUaHJlYWQ6OnBvc3RGZXRjaFRhc2soUmVmPFNlcnZpY2VXb3JrZXJGZXRj
aDo6Q2xpZW50PiYmIGNsaWVudAogICAgIH0sIFdvcmtlclJ1bkxvb3A6OmRlZmF1bHRNb2RlKCkp
OwogfQogCi12b2lkIFNlcnZpY2VXb3JrZXJUaHJlYWQ6OnBvc3RNZXNzYWdlVG9TZXJ2aWNlV29y
a2VyR2xvYmFsU2NvcGUoUmVmPFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZT4mJiBtZXNzYWdlLCBzdGQ6
OnVuaXF1ZV9wdHI8TWVzc2FnZVBvcnRDaGFubmVsQXJyYXk+JiYgY2hhbm5lbHMsIFNlcnZpY2VX
b3JrZXJDbGllbnREYXRhJiYgc291cmNlKQordm9pZCBTZXJ2aWNlV29ya2VyVGhyZWFkOjpwb3N0
TWVzc2FnZVRvU2VydmljZVdvcmtlckdsb2JhbFNjb3BlKFJlZjxTZXJpYWxpemVkU2NyaXB0VmFs
dWU+JiYgbWVzc2FnZSwgc3RkOjp1bmlxdWVfcHRyPE1lc3NhZ2VQb3J0Q2hhbm5lbEFycmF5PiYm
IGNoYW5uZWxzLCBTZXJ2aWNlV29ya2VyQ2xpZW50SWRlbnRpZmllciBzb3VyY2VJZGVudGlmaWVy
LCBTZXJ2aWNlV29ya2VyQ2xpZW50RGF0YSYmIHNvdXJjZURhdGEpCiB7Ci0gICAgU2NyaXB0RXhl
Y3V0aW9uQ29udGV4dDo6VGFzayB0YXNrKFt0aGlzLCBjaGFubmVscyA9IFdURk1vdmUoY2hhbm5l
bHMpLCBtZXNzYWdlID0gV1RGTW92ZShtZXNzYWdlKSwgc291cmNlRGF0YSA9IHNvdXJjZS5pc29s
YXRlZENvcHkoKV0gKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmIGNvbnRleHQpIG11dGFibGUgewor
ICAgIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQ6OlRhc2sgdGFzayhbdGhpcywgY2hhbm5lbHMgPSBX
VEZNb3ZlKGNoYW5uZWxzKSwgbWVzc2FnZSA9IFdURk1vdmUobWVzc2FnZSksIHNvdXJjZUlkZW50
aWZpZXIsIHNvdXJjZURhdGEgPSBzb3VyY2VEYXRhLmlzb2xhdGVkQ29weSgpXSAoU2NyaXB0RXhl
Y3V0aW9uQ29udGV4dCYgY29udGV4dCkgbXV0YWJsZSB7CiAgICAgICAgIGF1dG8mIHNlcnZpY2VX
b3JrZXJHbG9iYWxTY29wZSA9IGRvd25jYXN0PFNlcnZpY2VXb3JrZXJHbG9iYWxTY29wZT4oY29u
dGV4dCk7CiAgICAgICAgIGF1dG8gcG9ydHMgPSBNZXNzYWdlUG9ydDo6ZW50YW5nbGVQb3J0cyhz
ZXJ2aWNlV29ya2VyR2xvYmFsU2NvcGUsIFdURk1vdmUoY2hhbm5lbHMpKTsKLSAgICAgICAgUmVm
UHRyPFNlcnZpY2VXb3JrZXJDbGllbnQ+IHNvdXJjZSA9IFNlcnZpY2VXb3JrZXJXaW5kb3dDbGll
bnQ6OmNyZWF0ZShjb250ZXh0LCBXVEZNb3ZlKHNvdXJjZURhdGEpKTsKKyAgICAgICAgUmVmUHRy
PFNlcnZpY2VXb3JrZXJDbGllbnQ+IHNvdXJjZSA9IFNlcnZpY2VXb3JrZXJXaW5kb3dDbGllbnQ6
OmNyZWF0ZShjb250ZXh0LCBzb3VyY2VJZGVudGlmaWVyLCBXVEZNb3ZlKHNvdXJjZURhdGEpKTsK
ICAgICAgICAgYXV0byBzb3VyY2VPcmlnaW4gPSBTZWN1cml0eU9yaWdpbjo6Y3JlYXRlKHNvdXJj
ZS0+dXJsKCkpOwogICAgICAgICBhdXRvIG1lc3NhZ2VFdmVudCA9IEV4dGVuZGFibGVNZXNzYWdl
RXZlbnQ6OmNyZWF0ZShXVEZNb3ZlKHBvcnRzKSwgV1RGTW92ZShtZXNzYWdlKSwgc291cmNlT3Jp
Z2luLT50b1N0cmluZygpLCB7IH0sIEV4dGVuZGFibGVNZXNzYWdlRXZlbnRTb3VyY2UgeyBzb3Vy
Y2UgfSk7CiAgICAgICAgIHNlcnZpY2VXb3JrZXJHbG9iYWxTY29wZS5kaXNwYXRjaEV2ZW50KG1l
c3NhZ2VFdmVudCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2Uv
Y29udGV4dC9TZXJ2aWNlV29ya2VyVGhyZWFkLmggYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3Nl
cnZpY2UvY29udGV4dC9TZXJ2aWNlV29ya2VyVGhyZWFkLmgKaW5kZXggNmExMDgwNjRkOTA4NzYz
MDA2NmQwMTVhZmE5Mjg1MDA1MjRiNTU0My4uYjRlMjcwYjZmNDU2NDBjYmI5MzMzMGMzYTEwMmJk
NWE3ZGVhYjhjNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL2Nv
bnRleHQvU2VydmljZVdvcmtlclRocmVhZC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMv
c2VydmljZS9jb250ZXh0L1NlcnZpY2VXb3JrZXJUaHJlYWQuaApAQCAtNTcsNyArNTcsNyBAQCBw
dWJsaWM6CiAgICAgV29ya2VyT2JqZWN0UHJveHkmIHdvcmtlck9iamVjdFByb3h5KCkgY29uc3Qg
eyByZXR1cm4gbV93b3JrZXJPYmplY3RQcm94eTsgfQogCiAgICAgV0VCQ09SRV9FWFBPUlQgdm9p
ZCBwb3N0RmV0Y2hUYXNrKFJlZjxTZXJ2aWNlV29ya2VyRmV0Y2g6OkNsaWVudD4mJiwgUmVzb3Vy
Y2VSZXF1ZXN0JiYsIEZldGNoT3B0aW9ucyYmKTsKLSAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHBv
c3RNZXNzYWdlVG9TZXJ2aWNlV29ya2VyR2xvYmFsU2NvcGUoUmVmPFNlcmlhbGl6ZWRTY3JpcHRW
YWx1ZT4mJiwgc3RkOjp1bmlxdWVfcHRyPE1lc3NhZ2VQb3J0Q2hhbm5lbEFycmF5PiYmLCBTZXJ2
aWNlV29ya2VyQ2xpZW50RGF0YSYmIHNvdXJjZSk7CisgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBw
b3N0TWVzc2FnZVRvU2VydmljZVdvcmtlckdsb2JhbFNjb3BlKFJlZjxTZXJpYWxpemVkU2NyaXB0
VmFsdWU+JiYsIHN0ZDo6dW5pcXVlX3B0cjxNZXNzYWdlUG9ydENoYW5uZWxBcnJheT4mJiwgU2Vy
dmljZVdvcmtlckNsaWVudElkZW50aWZpZXIgc291cmNlSWRlbnRpZmllciwgU2VydmljZVdvcmtl
ckNsaWVudERhdGEmJiBzb3VyY2VEYXRhKTsKICAgICB2b2lkIGZpcmVJbnN0YWxsRXZlbnQoKTsK
ICAgICB2b2lkIGZpcmVBY3RpdmF0ZUV2ZW50KCk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3dvcmtlcnMvc2VydmljZS9zZXJ2ZXIvU1dDbGllbnRDb25uZWN0aW9uLmggYi9Tb3VyY2Uv
V2ViQ29yZS93b3JrZXJzL3NlcnZpY2Uvc2VydmVyL1NXQ2xpZW50Q29ubmVjdGlvbi5oCmluZGV4
IGE5ZTlkOTBmOWU5YWMxYmZlNGQ5OWQwOTkwMDI5ZmIyNTExMDEyZWYuLjczNDMyYTIzNjJjZDE0
NzA2ZmFhMzQzMTIyZTRjODVmNDkxOTM2NGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3dv
cmtlcnMvc2VydmljZS9zZXJ2ZXIvU1dDbGllbnRDb25uZWN0aW9uLmgKKysrIGIvU291cmNlL1dl
YkNvcmUvd29ya2Vycy9zZXJ2aWNlL3NlcnZlci9TV0NsaWVudENvbm5lY3Rpb24uaApAQCAtNjgs
OCArNjgsOCBAQCBwdWJsaWM6CiAKICAgICB2aXJ0dWFsIHZvaWQgZGlkUmVzb2x2ZVJlZ2lzdHJh
dGlvblByb21pc2UoY29uc3QgU2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbktleSYpID0gMDsKIAot
ICAgIHZpcnR1YWwgdm9pZCBwb3N0TWVzc2FnZVRvU2VydmljZVdvcmtlckdsb2JhbFNjb3BlKFNl
cnZpY2VXb3JrZXJJZGVudGlmaWVyIGRlc3RpbmF0aW9uSWRlbnRpZmllciwgUmVmPFNlcmlhbGl6
ZWRTY3JpcHRWYWx1ZT4mJiwgU2VydmljZVdvcmtlckNsaWVudERhdGEmJiBzb3VyY2UpID0gMDsK
LSAgICB2aXJ0dWFsIHVpbnQ2NF90IGlkZW50aWZpZXIoKSBjb25zdCA9IDA7CisgICAgdmlydHVh
bCB2b2lkIHBvc3RNZXNzYWdlVG9TZXJ2aWNlV29ya2VyR2xvYmFsU2NvcGUoU2VydmljZVdvcmtl
cklkZW50aWZpZXIgZGVzdGluYXRpb25JZGVudGlmaWVyLCBSZWY8U2VyaWFsaXplZFNjcmlwdFZh
bHVlPiYmLCB1aW50NjRfdCBzb3VyY2VDb250ZXh0SWRlbnRpZmllciwgU2VydmljZVdvcmtlckNs
aWVudERhdGEmJiBzb3VyY2UpID0gMDsKKyAgICB2aXJ0dWFsIFNXU2VydmVyQ29ubmVjdGlvbklk
ZW50aWZpZXIgc2VydmVyQ29ubmVjdGlvbklkZW50aWZpZXIoKSBjb25zdCA9IDA7CiAgICAgdmly
dHVhbCBib29sIG1heUhhdmVTZXJ2aWNlV29ya2VyUmVnaXN0ZXJlZEZvck9yaWdpbihjb25zdCBT
ZWN1cml0eU9yaWdpbiYpIGNvbnN0ID0gMDsKIAogICAgIHZpcnR1YWwgdm9pZCBzZXJ2aWNlV29y
a2VyU3RhcnRlZENvbnRyb2xsaW5nQ2xpZW50KFNlcnZpY2VXb3JrZXJJZGVudGlmaWVyLCB1aW50
NjRfdCBzY3JpcHRFeGVjdXRpb25Db250ZXh0SWRlbnRpZmllcikgPSAwOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL3NlcnZlci9TV1NlcnZlci5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2Uvc2VydmVyL1NXU2VydmVyLmNwcAppbmRleCBhMWM1
OGZjZTlmNGVlYTMzMjk2ZmExOTkxOWMwNzgwODUwMzlmODY2Li4xNWI5ZTAzODg3OTAwNGUzNDVj
NGI0ZTZjZmQ1YzZkNDI5YTA4YjRiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJz
L3NlcnZpY2Uvc2VydmVyL1NXU2VydmVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJz
L3NlcnZpY2Uvc2VydmVyL1NXU2VydmVyLmNwcApAQCAtNTAsOSArNTAsOSBAQCBzdGF0aWMgU2Vy
dmljZVdvcmtlcklkZW50aWZpZXIgZ2VuZXJhdGVTZXJ2aWNlV29ya2VySWRlbnRpZmllcigpCiAg
ICAgcmV0dXJuIGdlbmVyYXRlT2JqZWN0SWRlbnRpZmllcjxTZXJ2aWNlV29ya2VySWRlbnRpZmll
clR5cGU+KCk7CiB9CiAKLVNXU2VydmVyOjpDb25uZWN0aW9uOjpDb25uZWN0aW9uKFNXU2VydmVy
JiBzZXJ2ZXIsIHVpbnQ2NF90IGlkZW50aWZpZXIpCi0gICAgOiBJZGVudGlmaWVkKGlkZW50aWZp
ZXIpCi0gICAgLCBtX3NlcnZlcihzZXJ2ZXIpCitTV1NlcnZlcjo6Q29ubmVjdGlvbjo6Q29ubmVj
dGlvbihTV1NlcnZlciYgc2VydmVyKQorICAgIDogbV9zZXJ2ZXIoc2VydmVyKQorICAgICwgbV9p
ZGVudGlmaWVyKGdlbmVyYXRlT2JqZWN0SWRlbnRpZmllcjxTV1NlcnZlckNvbm5lY3Rpb25JZGVu
dGlmaWVyVHlwZT4oKSkKIHsKICAgICBtX3NlcnZlci5yZWdpc3RlckNvbm5lY3Rpb24oKnRoaXMp
OwogfQpAQCAtMTQ0LDcgKzE0NCw3IEBAIHZvaWQgU1dTZXJ2ZXI6OmNsZWFyKGNvbnN0IFNlY3Vy
aXR5T3JpZ2luJiBvcmlnaW4pCiAKIHZvaWQgU1dTZXJ2ZXI6OkNvbm5lY3Rpb246OnNjaGVkdWxl
Sm9iSW5TZXJ2ZXIoY29uc3QgU2VydmljZVdvcmtlckpvYkRhdGEmIGpvYkRhdGEpCiB7Ci0gICAg
TE9HKFNlcnZpY2VXb3JrZXIsICJTY2hlZHVsaW5nIFNlcnZpY2VXb3JrZXIgam9iICUiIFBSSXU2
NCAiLSUiIFBSSXU2NCAiIGluIHNlcnZlciIsIGpvYkRhdGEuY29ubmVjdGlvbklkZW50aWZpZXIo
KSwgam9iRGF0YS5pZGVudGlmaWVyKCkpOworICAgIExPRyhTZXJ2aWNlV29ya2VyLCAiU2NoZWR1
bGluZyBTZXJ2aWNlV29ya2VyIGpvYiAlcy0lIiBQUkl1NjQgIiBpbiBzZXJ2ZXIiLCBqb2JEYXRh
LmNvbm5lY3Rpb25JZGVudGlmaWVyKCkubG9nZ2luZ1N0cmluZygpLnV0ZjgoKS5kYXRhKCksIGpv
YkRhdGEuaWRlbnRpZmllcigpKTsKICAgICBBU1NFUlQoaWRlbnRpZmllcigpID09IGpvYkRhdGEu
Y29ubmVjdGlvbklkZW50aWZpZXIoKSk7CiAKICAgICBtX3NlcnZlci5zY2hlZHVsZUpvYihqb2JE
YXRhKTsKQEAgLTIwOCw3ICsyMDgsNyBAQCB2b2lkIFNXU2VydmVyOjpzY2hlZHVsZUpvYihjb25z
dCBTZXJ2aWNlV29ya2VySm9iRGF0YSYgam9iRGF0YSkKIAogdm9pZCBTV1NlcnZlcjo6cmVqZWN0
Sm9iKGNvbnN0IFNlcnZpY2VXb3JrZXJKb2JEYXRhJiBqb2JEYXRhLCBjb25zdCBFeGNlcHRpb25E
YXRhJiBleGNlcHRpb25EYXRhKQogewotICAgIExPRyhTZXJ2aWNlV29ya2VyLCAiUmVqZWN0ZWQg
U2VydmljZVdvcmtlciBqb2IgJSIgUFJJdTY0ICItJSIgUFJJdTY0ICIgaW4gc2VydmVyIiwgam9i
RGF0YS5jb25uZWN0aW9uSWRlbnRpZmllcigpLCBqb2JEYXRhLmlkZW50aWZpZXIoKSk7CisgICAg
TE9HKFNlcnZpY2VXb3JrZXIsICJSZWplY3RlZCBTZXJ2aWNlV29ya2VyIGpvYiAlcy0lIiBQUkl1
NjQgIiBpbiBzZXJ2ZXIiLCBqb2JEYXRhLmNvbm5lY3Rpb25JZGVudGlmaWVyKCkubG9nZ2luZ1N0
cmluZygpLnV0ZjgoKS5kYXRhKCksIGpvYkRhdGEuaWRlbnRpZmllcigpKTsKICAgICBhdXRvKiBj
b25uZWN0aW9uID0gbV9jb25uZWN0aW9ucy5nZXQoam9iRGF0YS5jb25uZWN0aW9uSWRlbnRpZmll
cigpKTsKICAgICBpZiAoIWNvbm5lY3Rpb24pCiAgICAgICAgIHJldHVybjsKQEAgLTIxOCw3ICsy
MTgsNyBAQCB2b2lkIFNXU2VydmVyOjpyZWplY3RKb2IoY29uc3QgU2VydmljZVdvcmtlckpvYkRh
dGEmIGpvYkRhdGEsIGNvbnN0IEV4Y2VwdGlvbkRhdAogCiB2b2lkIFNXU2VydmVyOjpyZXNvbHZl
UmVnaXN0cmF0aW9uSm9iKGNvbnN0IFNlcnZpY2VXb3JrZXJKb2JEYXRhJiBqb2JEYXRhLCBjb25z
dCBTZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uRGF0YSYgcmVnaXN0cmF0aW9uRGF0YSwgU2hvdWxk
Tm90aWZ5V2hlblJlc29sdmVkIHNob3VsZE5vdGlmeVdoZW5SZXNvbHZlZCkKIHsKLSAgICBMT0co
U2VydmljZVdvcmtlciwgIlJlc29sdmVkIFNlcnZpY2VXb3JrZXIgam9iICUiIFBSSXU2NCAiLSUi
IFBSSXU2NCAiIGluIHNlcnZlciB3aXRoIHJlZ2lzdHJhdGlvbiAlcyIsIGpvYkRhdGEuY29ubmVj
dGlvbklkZW50aWZpZXIoKSwgam9iRGF0YS5pZGVudGlmaWVyKCksIHJlZ2lzdHJhdGlvbkRhdGEu
aWRlbnRpZmllci5sb2dnaW5nU3RyaW5nKCkudXRmOCgpLmRhdGEoKSk7CisgICAgTE9HKFNlcnZp
Y2VXb3JrZXIsICJSZXNvbHZlZCBTZXJ2aWNlV29ya2VyIGpvYiAlcy0lIiBQUkl1NjQgIiBpbiBz
ZXJ2ZXIgd2l0aCByZWdpc3RyYXRpb24gJXMiLCBqb2JEYXRhLmNvbm5lY3Rpb25JZGVudGlmaWVy
KCkubG9nZ2luZ1N0cmluZygpLnV0ZjgoKS5kYXRhKCksIGpvYkRhdGEuaWRlbnRpZmllcigpLCBy
ZWdpc3RyYXRpb25EYXRhLmlkZW50aWZpZXIubG9nZ2luZ1N0cmluZygpLnV0ZjgoKS5kYXRhKCkp
OwogICAgIGF1dG8qIGNvbm5lY3Rpb24gPSBtX2Nvbm5lY3Rpb25zLmdldChqb2JEYXRhLmNvbm5l
Y3Rpb25JZGVudGlmaWVyKCkpOwogICAgIGlmICghY29ubmVjdGlvbikKICAgICAgICAgcmV0dXJu
OwpAQCAtMjM3LDcgKzIzNyw3IEBAIHZvaWQgU1dTZXJ2ZXI6OnJlc29sdmVVbnJlZ2lzdHJhdGlv
bkpvYihjb25zdCBTZXJ2aWNlV29ya2VySm9iRGF0YSYgam9iRGF0YSwgY29uCiAKIHZvaWQgU1dT
ZXJ2ZXI6OnN0YXJ0U2NyaXB0RmV0Y2goY29uc3QgU2VydmljZVdvcmtlckpvYkRhdGEmIGpvYkRh
dGEpCiB7Ci0gICAgTE9HKFNlcnZpY2VXb3JrZXIsICJTZXJ2ZXIgaXNzdWluZyBzdGFydFNjcmlw
dEZldGNoIGZvciBjdXJyZW50IGpvYiAlIiBQUkl1NjQgIi0lIiBQUkl1NjQgIiBpbiBjbGllbnQi
LCBqb2JEYXRhLmNvbm5lY3Rpb25JZGVudGlmaWVyKCksIGpvYkRhdGEuaWRlbnRpZmllcigpKTsK
KyAgICBMT0coU2VydmljZVdvcmtlciwgIlNlcnZlciBpc3N1aW5nIHN0YXJ0U2NyaXB0RmV0Y2gg
Zm9yIGN1cnJlbnQgam9iICVzLSUiIFBSSXU2NCAiIGluIGNsaWVudCIsIGpvYkRhdGEuY29ubmVj
dGlvbklkZW50aWZpZXIoKS5sb2dnaW5nU3RyaW5nKCkudXRmOCgpLmRhdGEoKSwgam9iRGF0YS5p
ZGVudGlmaWVyKCkpOwogICAgIGF1dG8qIGNvbm5lY3Rpb24gPSBtX2Nvbm5lY3Rpb25zLmdldChq
b2JEYXRhLmNvbm5lY3Rpb25JZGVudGlmaWVyKCkpOwogICAgIGlmICghY29ubmVjdGlvbikKICAg
ICAgICAgcmV0dXJuOwpAQCAtMjQ3LDcgKzI0Nyw3IEBAIHZvaWQgU1dTZXJ2ZXI6OnN0YXJ0U2Ny
aXB0RmV0Y2goY29uc3QgU2VydmljZVdvcmtlckpvYkRhdGEmIGpvYkRhdGEpCiAKIHZvaWQgU1dT
ZXJ2ZXI6OnNjcmlwdEZldGNoRmluaXNoZWQoQ29ubmVjdGlvbiYgY29ubmVjdGlvbiwgY29uc3Qg
U2VydmljZVdvcmtlckZldGNoUmVzdWx0JiByZXN1bHQpCiB7Ci0gICAgTE9HKFNlcnZpY2VXb3Jr
ZXIsICJTZXJ2ZXIgaGFuZGxpbmcgc2NyaXB0RmV0Y2hGaW5pc2hlZCBmb3IgY3VycmVudCBqb2Ig
JSIgUFJJdTY0ICItJSIgUFJJdTY0ICIgaW4gY2xpZW50IiwgcmVzdWx0LmNvbm5lY3Rpb25JZGVu
dGlmaWVyLCByZXN1bHQuam9iSWRlbnRpZmllcik7CisgICAgTE9HKFNlcnZpY2VXb3JrZXIsICJT
ZXJ2ZXIgaGFuZGxpbmcgc2NyaXB0RmV0Y2hGaW5pc2hlZCBmb3IgY3VycmVudCBqb2IgJXMtJSIg
UFJJdTY0ICIgaW4gY2xpZW50IiwgcmVzdWx0LmNvbm5lY3Rpb25JZGVudGlmaWVyLmxvZ2dpbmdT
dHJpbmcoKS51dGY4KCkuZGF0YSgpLCByZXN1bHQuam9iSWRlbnRpZmllcik7CiAKICAgICBBU1NF
UlQobV9jb25uZWN0aW9ucy5jb250YWlucyhyZXN1bHQuY29ubmVjdGlvbklkZW50aWZpZXIpKTsK
IApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL3NlcnZlci9TV1Nl
cnZlci5oIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL3NlcnZlci9TV1NlcnZlci5o
CmluZGV4IDJmOGIwMmExZTQ1YjYxMWZkOTBkY2Q3ZDY4NDM3NmZlNjAyNzU5YjEuLmZjM2Q3MTQ4
NmRiYzRiNTEzMmJlYzc0YTUyNDQ4NjFiYjUzYmE1YzMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3dvcmtlcnMvc2VydmljZS9zZXJ2ZXIvU1dTZXJ2ZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS93b3JrZXJzL3NlcnZpY2Uvc2VydmVyL1NXU2VydmVyLmgKQEAgLTM3LDcgKzM3LDcgQEAKICNp
bmNsdWRlIDx3dGYvQ3Jvc3NUaHJlYWRUYXNrLmg+CiAjaW5jbHVkZSA8d3RmL0hhc2hNYXAuaD4K
ICNpbmNsdWRlIDx3dGYvSGFzaFNldC5oPgotI2luY2x1ZGUgPHd0Zi9JZGVudGlmaWVkLmg+Cisj
aW5jbHVkZSA8d3RmL09iamVjdElkZW50aWZpZXIuaD4KICNpbmNsdWRlIDx3dGYvUnVuTG9vcC5o
PgogI2luY2x1ZGUgPHd0Zi9UaHJlYWRTYWZlUmVmQ291bnRlZC5oPgogI2luY2x1ZGUgPHd0Zi9U
aHJlYWRpbmcuaD4KQEAgLTU4LDExICs1OCwxNCBAQCBzdHJ1Y3QgU2VydmljZVdvcmtlclJlZ2lz
dHJhdGlvbkRhdGE7CiAKIGNsYXNzIFNXU2VydmVyIHsKIHB1YmxpYzoKLSAgICBjbGFzcyBDb25u
ZWN0aW9uIDogcHVibGljIElkZW50aWZpZWQ8Q29ubmVjdGlvbj4geworICAgIGNsYXNzIENvbm5l
Y3Rpb24gewogICAgIGZyaWVuZCBjbGFzcyBTV1NlcnZlcjsKICAgICBwdWJsaWM6CiAgICAgICAg
IFdFQkNPUkVfRVhQT1JUIHZpcnR1YWwgfkNvbm5lY3Rpb24oKTsKIAorICAgICAgICB1c2luZyBJ
ZGVudGlmaWVyID0gU1dTZXJ2ZXJDb25uZWN0aW9uSWRlbnRpZmllcjsKKyAgICAgICAgSWRlbnRp
ZmllciBpZGVudGlmaWVyKCkgY29uc3QgeyByZXR1cm4gbV9pZGVudGlmaWVyOyB9CisKICAgICAg
ICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBkaWRSZXNvbHZlUmVnaXN0cmF0aW9uUHJvbWlzZShjb25z
dCBTZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uS2V5Jik7CiAgICAgICAgIGNvbnN0IFNXU2VydmVy
UmVnaXN0cmF0aW9uKiBkb1JlZ2lzdHJhdGlvbk1hdGNoaW5nKGNvbnN0IFNlY3VyaXR5T3JpZ2lu
RGF0YSYgdG9wT3JpZ2luLCBjb25zdCBVUkwmIGNsaWVudFVSTCkgY29uc3QgeyByZXR1cm4gbV9z
ZXJ2ZXIuZG9SZWdpc3RyYXRpb25NYXRjaGluZyh0b3BPcmlnaW4sIGNsaWVudFVSTCk7IH0KIApA
QCAtNzIsNyArNzUsNyBAQCBwdWJsaWM6CiAgICAgICAgIHZpcnR1YWwgdm9pZCBmaXJlVXBkYXRl
Rm91bmRFdmVudChTZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uSWRlbnRpZmllcikgPSAwOwogCiAg
ICAgcHJvdGVjdGVkOgotICAgICAgICBXRUJDT1JFX0VYUE9SVCBDb25uZWN0aW9uKFNXU2VydmVy
JiwgdWludDY0X3QgaWRlbnRpZmllcik7CisgICAgICAgIFdFQkNPUkVfRVhQT1JUIGV4cGxpY2l0
IENvbm5lY3Rpb24oU1dTZXJ2ZXImKTsKICAgICAgICAgU1dTZXJ2ZXImIHNlcnZlcigpIHsgcmV0
dXJuIG1fc2VydmVyOyB9CiAKICAgICAgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBzY2hlZHVsZUpv
YkluU2VydmVyKGNvbnN0IFNlcnZpY2VXb3JrZXJKb2JEYXRhJik7CkBAIC05MCw2ICs5Myw3IEBA
IHB1YmxpYzoKICAgICAgICAgdmlydHVhbCB2b2lkIHN0YXJ0U2NyaXB0RmV0Y2hJbkNsaWVudCh1
aW50NjRfdCBqb2JJZGVudGlmaWVyKSA9IDA7CiAKICAgICAgICAgU1dTZXJ2ZXImIG1fc2VydmVy
OworICAgICAgICBJZGVudGlmaWVyIG1faWRlbnRpZmllcjsKICAgICB9OwogCiAgICAgV0VCQ09S
RV9FWFBPUlQgZXhwbGljaXQgU1dTZXJ2ZXIoVW5pcXVlUmVmPFNXT3JpZ2luU3RvcmU+JiYpOwpA
QCAtMTE5LDcgKzEyMyw3IEBAIHB1YmxpYzoKICAgICB2b2lkIGZpcmVBY3RpdmF0ZUV2ZW50KFNX
U2VydmVyV29ya2VyJik7CiAgICAgU1dTZXJ2ZXJXb3JrZXIqIHdvcmtlckJ5SUQoU2VydmljZVdv
cmtlcklkZW50aWZpZXIgaWRlbnRpZmllcikgY29uc3QgeyByZXR1cm4gbV93b3JrZXJzQnlJRC5n
ZXQoaWRlbnRpZmllcik7IH0KICAgICAKLSAgICBDb25uZWN0aW9uKiBnZXRDb25uZWN0aW9uKHVp
bnQ2NF90IGlkZW50aWZpZXIpIHsgcmV0dXJuIG1fY29ubmVjdGlvbnMuZ2V0KGlkZW50aWZpZXIp
OyB9CisgICAgQ29ubmVjdGlvbiogZ2V0Q29ubmVjdGlvbihTV1NlcnZlckNvbm5lY3Rpb25JZGVu
dGlmaWVyIGlkZW50aWZpZXIpIHsgcmV0dXJuIG1fY29ubmVjdGlvbnMuZ2V0KGlkZW50aWZpZXIp
OyB9CiAgICAgU1dPcmlnaW5TdG9yZSYgb3JpZ2luU3RvcmUoKSB7IHJldHVybiBtX29yaWdpblN0
b3JlOyB9CiAKICAgICB2b2lkIHNjcmlwdENvbnRleHRGYWlsZWRUb1N0YXJ0KFNXU2VydmVyV29y
a2VyJiwgY29uc3QgU3RyaW5nJiBtZXNzYWdlKTsKQEAgLTE1Miw3ICsxNTYsNyBAQCBwcml2YXRl
OgogCiAgICAgdm9pZCBpbnN0YWxsQ29udGV4dERhdGEoY29uc3QgU2VydmljZVdvcmtlckNvbnRl
eHREYXRhJik7CiAKLSAgICBIYXNoTWFwPHVpbnQ2NF90LCBDb25uZWN0aW9uKj4gbV9jb25uZWN0
aW9uczsKKyAgICBIYXNoTWFwPFNXU2VydmVyQ29ubmVjdGlvbklkZW50aWZpZXIsIENvbm5lY3Rp
b24qPiBtX2Nvbm5lY3Rpb25zOwogICAgIEhhc2hNYXA8U2VydmljZVdvcmtlclJlZ2lzdHJhdGlv
bktleSwgc3RkOjp1bmlxdWVfcHRyPFNXU2VydmVyUmVnaXN0cmF0aW9uPj4gbV9yZWdpc3RyYXRp
b25zOwogICAgIEhhc2hNYXA8U2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbktleSwgc3RkOjp1bmlx
dWVfcHRyPFNXU2VydmVySm9iUXVldWU+PiBtX2pvYlF1ZXVlczsKIApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL3NlcnZlci9TV1NlcnZlclJlZ2lzdHJhdGlvbi5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2Uvc2VydmVyL1NXU2VydmVyUmVnaXN0
cmF0aW9uLmNwcAppbmRleCA5OThjOTBiNzM1ZWU5YjM1YTgyMzJmNjY0N2I5NzJiZTNhNDI0OWJl
Li42MjMwYWIyYmE0NzMyNDkyMzE0NzQ4YjhjZWQzZDBiZDRiOGMwMDZjIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2Uvc2VydmVyL1NXU2VydmVyUmVnaXN0cmF0aW9u
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2Uvc2VydmVyL1NXU2VydmVy
UmVnaXN0cmF0aW9uLmNwcApAQCAtMTExLDcgKzExMSw3IEBAIHZvaWQgU1dTZXJ2ZXJSZWdpc3Ry
YXRpb246OmZpcmVVcGRhdGVGb3VuZEV2ZW50KCkKIAogdm9pZCBTV1NlcnZlclJlZ2lzdHJhdGlv
bjo6Zm9yRWFjaENvbm5lY3Rpb24oY29uc3QgV1RGOjpGdW5jdGlvbjx2b2lkKFNXU2VydmVyOjpD
b25uZWN0aW9uJik+JiBhcHBseSkKIHsKLSAgICBmb3IgKHVpbnQ2NF90IGNvbm5lY3Rpb25JZGVu
dGlmaWVyV2l0aENsaWVudHMgOiBtX2Nvbm5lY3Rpb25zV2l0aENsaWVudFJlZ2lzdHJhdGlvbnMu
dmFsdWVzKCkpIHsKKyAgICBmb3IgKGF1dG8gY29ubmVjdGlvbklkZW50aWZpZXJXaXRoQ2xpZW50
cyA6IG1fY29ubmVjdGlvbnNXaXRoQ2xpZW50UmVnaXN0cmF0aW9ucy52YWx1ZXMoKSkgewogICAg
ICAgICBpZiAoYXV0byogY29ubmVjdGlvbiA9IG1fc2VydmVyLmdldENvbm5lY3Rpb24oY29ubmVj
dGlvbklkZW50aWZpZXJXaXRoQ2xpZW50cykpCiAgICAgICAgICAgICBhcHBseSgqY29ubmVjdGlv
bik7CiAgICAgfQpAQCAtMTM0LDEyICsxMzQsMTIgQEAgU2VydmljZVdvcmtlclJlZ2lzdHJhdGlv
bkRhdGEgU1dTZXJ2ZXJSZWdpc3RyYXRpb246OmRhdGEoKSBjb25zdAogICAgIHJldHVybiB7IG1f
cmVnaXN0cmF0aW9uS2V5LCBpZGVudGlmaWVyKCksIG1fc2NvcGVVUkwsIG1fdXBkYXRlVmlhQ2Fj
aGUsIFdURk1vdmUoaW5zdGFsbGluZ1dvcmtlckRhdGEpLCBXVEZNb3ZlKHdhaXRpbmdXb3JrZXJE
YXRhKSwgV1RGTW92ZShhY3RpdmVXb3JrZXJEYXRhKSB9OwogfQogCi12b2lkIFNXU2VydmVyUmVn
aXN0cmF0aW9uOjphZGRDbGllbnRTZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uKHVpbnQ2NF90IGNv
bm5lY3Rpb25JZGVudGlmaWVyKQordm9pZCBTV1NlcnZlclJlZ2lzdHJhdGlvbjo6YWRkQ2xpZW50
U2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbihTV1NlcnZlckNvbm5lY3Rpb25JZGVudGlmaWVyIGNv
bm5lY3Rpb25JZGVudGlmaWVyKQogewogICAgIG1fY29ubmVjdGlvbnNXaXRoQ2xpZW50UmVnaXN0
cmF0aW9ucy5hZGQoY29ubmVjdGlvbklkZW50aWZpZXIpOwogfQogCi12b2lkIFNXU2VydmVyUmVn
aXN0cmF0aW9uOjpyZW1vdmVDbGllbnRTZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uKHVpbnQ2NF90
IGNvbm5lY3Rpb25JZGVudGlmaWVyKQordm9pZCBTV1NlcnZlclJlZ2lzdHJhdGlvbjo6cmVtb3Zl
Q2xpZW50U2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbihTV1NlcnZlckNvbm5lY3Rpb25JZGVudGlm
aWVyIGNvbm5lY3Rpb25JZGVudGlmaWVyKQogewogICAgIG1fY29ubmVjdGlvbnNXaXRoQ2xpZW50
UmVnaXN0cmF0aW9ucy5yZW1vdmUoY29ubmVjdGlvbklkZW50aWZpZXIpOwogfQpAQCAtMTYzLDcg
KzE2Myw3IEBAIHZvaWQgU1dTZXJ2ZXJSZWdpc3RyYXRpb246OnJlbW92ZUNsaWVudFVzaW5nUmVn
aXN0cmF0aW9uKGNvbnN0IFNlcnZpY2VXb3JrZXJDbGllCiAgICAgICAgIG1fY2xpZW50c1VzaW5n
UmVnaXN0cmF0aW9uLnJlbW92ZShpdGVyYXRvcik7CiB9CiAKLXZvaWQgU1dTZXJ2ZXJSZWdpc3Ry
YXRpb246OnVucmVnaXN0ZXJTZXJ2ZXJDb25uZWN0aW9uKHVpbnQ2NF90IHNlcnZlckNvbm5lY3Rp
b25JZGVudGlmaWVyKQordm9pZCBTV1NlcnZlclJlZ2lzdHJhdGlvbjo6dW5yZWdpc3RlclNlcnZl
ckNvbm5lY3Rpb24oU1dTZXJ2ZXJDb25uZWN0aW9uSWRlbnRpZmllciBzZXJ2ZXJDb25uZWN0aW9u
SWRlbnRpZmllcikKIHsKICAgICBtX2Nvbm5lY3Rpb25zV2l0aENsaWVudFJlZ2lzdHJhdGlvbnMu
cmVtb3ZlQWxsKHNlcnZlckNvbm5lY3Rpb25JZGVudGlmaWVyKTsKICAgICBtX2NsaWVudHNVc2lu
Z1JlZ2lzdHJhdGlvbi5yZW1vdmUoc2VydmVyQ29ubmVjdGlvbklkZW50aWZpZXIpOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL3NlcnZlci9TV1NlcnZlclJlZ2lz
dHJhdGlvbi5oIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL3NlcnZlci9TV1NlcnZl
clJlZ2lzdHJhdGlvbi5oCmluZGV4IGMyMzEyZDg0MDdlZmYwMmVkNjkyNDljNmE1MWMxYzc2Mjdk
NGNhMjUuLjRmYzNjOWQ4NWJhOTM0OTI4YzA4YmYwMGVjZjRkY2I0ZmE1Yjg4OGIgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9zZXJ2ZXIvU1dTZXJ2ZXJSZWdpc3Ry
YXRpb24uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2Uvc2VydmVyL1NXU2Vy
dmVyUmVnaXN0cmF0aW9uLmgKQEAgLTY0LDggKzY0LDggQEAgcHVibGljOgogICAgIHZvaWQgdXBk
YXRlV29ya2VyU3RhdGUoU1dTZXJ2ZXJXb3JrZXImLCBTZXJ2aWNlV29ya2VyU3RhdGUpOwogICAg
IHZvaWQgZmlyZVVwZGF0ZUZvdW5kRXZlbnQoKTsKIAotICAgIHZvaWQgYWRkQ2xpZW50U2Vydmlj
ZVdvcmtlclJlZ2lzdHJhdGlvbih1aW50NjRfdCBjb25uZWN0aW9uSWRlbnRpZmllcik7Ci0gICAg
dm9pZCByZW1vdmVDbGllbnRTZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uKHVpbnQ2NF90IGNvbm5l
Y3Rpb25JZGVudGlmaWVyKTsKKyAgICB2b2lkIGFkZENsaWVudFNlcnZpY2VXb3JrZXJSZWdpc3Ry
YXRpb24oU1dTZXJ2ZXJDb25uZWN0aW9uSWRlbnRpZmllcik7CisgICAgdm9pZCByZW1vdmVDbGll
bnRTZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uKFNXU2VydmVyQ29ubmVjdGlvbklkZW50aWZpZXIp
OwogCiAgICAgU1dTZXJ2ZXJXb3JrZXIqIGluc3RhbGxpbmdXb3JrZXIoKSBjb25zdCB7IHJldHVy
biBtX2luc3RhbGxpbmdXb3JrZXIuZ2V0KCk7IH0KICAgICBTV1NlcnZlcldvcmtlciogd2FpdGlu
Z1dvcmtlcigpIGNvbnN0IHsgcmV0dXJuIG1fd2FpdGluZ1dvcmtlci5nZXQoKTsgfQpAQCAtNzYs
NyArNzYsNyBAQCBwdWJsaWM6CiAgICAgYm9vbCBoYXNDbGllbnRzVXNpbmdSZWdpc3RyYXRpb24o
KSBjb25zdCB7IHJldHVybiAhbV9jbGllbnRzVXNpbmdSZWdpc3RyYXRpb24uaXNFbXB0eSgpOyB9
CiAgICAgdm9pZCBhZGRDbGllbnRVc2luZ1JlZ2lzdHJhdGlvbihjb25zdCBTZXJ2aWNlV29ya2Vy
Q2xpZW50SWRlbnRpZmllciYpOwogICAgIHZvaWQgcmVtb3ZlQ2xpZW50VXNpbmdSZWdpc3RyYXRp
b24oY29uc3QgU2VydmljZVdvcmtlckNsaWVudElkZW50aWZpZXImKTsKLSAgICB2b2lkIHVucmVn
aXN0ZXJTZXJ2ZXJDb25uZWN0aW9uKHVpbnQ2NF90IHNlcnZlckNvbm5lY3Rpb25JZGVudGlmaWVy
KTsKKyAgICB2b2lkIHVucmVnaXN0ZXJTZXJ2ZXJDb25uZWN0aW9uKFNXU2VydmVyQ29ubmVjdGlv
bklkZW50aWZpZXIpOwogCiBwcml2YXRlOgogICAgIHZvaWQgZm9yRWFjaENvbm5lY3Rpb24oY29u
c3QgV1RGOjpGdW5jdGlvbjx2b2lkKFNXU2VydmVyOjpDb25uZWN0aW9uJik+Jik7CkBAIC05NCwx
MSArOTQsMTEgQEAgcHJpdmF0ZToKIAogICAgIGRvdWJsZSBtX2xhc3RVcGRhdGVUaW1lIHsgMCB9
OwogICAgIAotICAgIEhhc2hDb3VudGVkU2V0PHVpbnQ2NF90IC8qIHNlcnZlckNvbm5lY3Rpb25J
ZGVudGlmaWVyICovPiBtX2Nvbm5lY3Rpb25zV2l0aENsaWVudFJlZ2lzdHJhdGlvbnM7CisgICAg
SGFzaENvdW50ZWRTZXQ8U1dTZXJ2ZXJDb25uZWN0aW9uSWRlbnRpZmllcj4gbV9jb25uZWN0aW9u
c1dpdGhDbGllbnRSZWdpc3RyYXRpb25zOwogICAgIFNXU2VydmVyJiBtX3NlcnZlcjsKIAogICAg
IE1vbm90b25pY1RpbWUgbV9jcmVhdGlvblRpbWU7Ci0gICAgSGFzaE1hcDx1aW50NjRfdCAvKiBz
ZXJ2ZXJDb25uZWN0aW9uSWRlbnRpZmllciAqLywgSGFzaFNldDx1aW50NjRfdCAvKiBzY3JpcHRF
eGVjdXRpb25Db250ZXh0SWRlbnRpZmllciAqLz4+IG1fY2xpZW50c1VzaW5nUmVnaXN0cmF0aW9u
OworICAgIEhhc2hNYXA8U1dTZXJ2ZXJDb25uZWN0aW9uSWRlbnRpZmllciwgSGFzaFNldDx1aW50
NjRfdCAvKiBzY3JpcHRFeGVjdXRpb25Db250ZXh0SWRlbnRpZmllciAqLz4+IG1fY2xpZW50c1Vz
aW5nUmVnaXN0cmF0aW9uOwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9TY3JpcHRzL3dlYmtpdC9tZXNzYWdlcy5weSBiL1NvdXJjZS9XZWJL
aXQvU2NyaXB0cy93ZWJraXQvbWVzc2FnZXMucHkKaW5kZXggODU1ZjYxMTJkOGQ2ZDk1ZmI5ODM5
MTE1N2FjOWJiM2JjMzkwOGFjZC4uYWY2ZTMzMmE5NTRjZjNjY2RmYmZlYzE5OTNkNWNiZmI2Nzg4
Yzk0MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9TY3JpcHRzL3dlYmtpdC9tZXNzYWdlcy5w
eQorKysgYi9Tb3VyY2UvV2ViS2l0L1NjcmlwdHMvd2Via2l0L21lc3NhZ2VzLnB5CkBAIC0xODMs
MTIgKzE4MywxOCBAQCBkZWYgZm9yd2FyZF9kZWNsYXJhdGlvbnNfYW5kX2hlYWRlcnMocmVjZWl2
ZXIpOgogICAgICAgICAgICAgaGVhZGVycy5hZGQoJzx3dGYvVGhyZWFkU2FmZVJlZkNvdW50ZWQu
aD4nKQogICAgICAgICAgICAgdHlwZXNfYnlfbmFtZXNwYWNlWydJUEMnXS51cGRhdGUoWygnY2xh
c3MnLCAnQ29ubmVjdGlvbicpXSkKIAorICAgIG5vX2ZvcndhcmRfZGVjbGFyYXRpb25fdHlwZXMg
PSBmcm96ZW5zZXQoWworICAgICAgICAnV2ViQ29yZTo6U2VydmljZVdvcmtlcklkZW50aWZpZXIn
LAorICAgICAgICAnV2ViQ29yZTo6U2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbklkZW50aWZpZXIn
LAorICAgICAgICAnV2ViQ29yZTo6U1dTZXJ2ZXJDb25uZWN0aW9uSWRlbnRpZmllcicsCisgICAg
XSkKKwogICAgIGZvciBwYXJhbWV0ZXIgaW4gcmVjZWl2ZXIuaXRlcnBhcmFtZXRlcnMoKToKICAg
ICAgICAga2luZCA9IHBhcmFtZXRlci5raW5kCiAgICAgICAgIHR5cGUgPSBwYXJhbWV0ZXIudHlw
ZQogCi0gICAgICAgIGlmIHR5cGUuZmluZCgnPCcpICE9IC0xIG9yIHR5cGUgPT0gIldlYkNvcmU6
OlNlcnZpY2VXb3JrZXJJZGVudGlmaWVyIiBvciB0eXBlID09ICJXZWJDb3JlOjpTZXJ2aWNlV29y
a2VyUmVnaXN0cmF0aW9uSWRlbnRpZmllciI6Ci0gICAgICAgICAgICAjIERvbid0IGZvcndhcmQg
ZGVjbGFyZSBjbGFzcyB0ZW1wbGF0ZXMgb3IgU2VydmljZVdvcmtlcklkZW50aWZpZXIuCisgICAg
ICAgIGlmIHR5cGUuZmluZCgnPCcpICE9IC0xIG9yIHR5cGUgaW4gbm9fZm9yd2FyZF9kZWNsYXJh
dGlvbl90eXBlczoKKyAgICAgICAgICAgICMgRG9uJ3QgZm9yd2FyZCBkZWNsYXJlIGNsYXNzIHRl
bXBsYXRlcy4KICAgICAgICAgICAgIGhlYWRlcnMudXBkYXRlKGhlYWRlcnNfZm9yX3R5cGUodHlw
ZSkpCiAgICAgICAgICAgICBjb250aW51ZQogCkBAIC0zNzIsNiArMzc4LDcgQEAgZGVmIGhlYWRl
cnNfZm9yX3R5cGUodHlwZSk6CiAgICAgICAgICdXZWJDb3JlOjpQbHVnaW5JbmZvJzogWyc8V2Vi
Q29yZS9QbHVnaW5EYXRhLmg+J10sCiAgICAgICAgICdXZWJDb3JlOjpQb2xpY3lBY3Rpb24nOiBb
JzxXZWJDb3JlL0ZyYW1lTG9hZGVyVHlwZXMuaD4nXSwKICAgICAgICAgJ1dlYkNvcmU6OlJlY2Vu
dFNlYXJjaCc6IFsnPFdlYkNvcmUvU2VhcmNoUG9wdXBNZW51Lmg+J10sCisgICAgICAgICdXZWJD
b3JlOjpTV1NlcnZlckNvbm5lY3Rpb25JZGVudGlmaWVyJzogWyc8V2ViQ29yZS9TZXJ2aWNlV29y
a2VyVHlwZXMuaD4nXSwKICAgICAgICAgJ1dlYkNvcmU6OlNlcnZpY2VXb3JrZXJSZWdpc3RyYXRp
b25JZGVudGlmaWVyJzogWyc8V2ViQ29yZS9TZXJ2aWNlV29ya2VyVHlwZXMuaD4nXSwKICAgICAg
ICAgJ1dlYkNvcmU6OlNlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb25TdGF0ZSc6IFsnPFdlYkNvcmUv
U2VydmljZVdvcmtlclR5cGVzLmg+J10sCiAgICAgICAgICdXZWJDb3JlOjpTZXJ2aWNlV29ya2Vy
U3RhdGUnOiBbJzxXZWJDb3JlL1NlcnZpY2VXb3JrZXJUeXBlcy5oPiddLApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9TdG9yYWdlUHJvY2Vzcy9TZXJ2aWNlV29ya2VyL1dlYlNXU2VydmVyQ29u
bmVjdGlvbi5jcHAgYi9Tb3VyY2UvV2ViS2l0L1N0b3JhZ2VQcm9jZXNzL1NlcnZpY2VXb3JrZXIv
V2ViU1dTZXJ2ZXJDb25uZWN0aW9uLmNwcAppbmRleCBjMWYxNTRlMzVlMDBiM2VmOTRjYTIyMzZh
OTVlOTVjZjA5Y2JlMDZiLi5kODE5Yjk5NzUxNTgwZmJmMjE5MTVkOTg3NmExZjQ4YWU2NzY4ZGI1
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1N0b3JhZ2VQcm9jZXNzL1NlcnZpY2VXb3JrZXIv
V2ViU1dTZXJ2ZXJDb25uZWN0aW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1N0b3JhZ2VQcm9j
ZXNzL1NlcnZpY2VXb3JrZXIvV2ViU1dTZXJ2ZXJDb25uZWN0aW9uLmNwcApAQCAtNTYsOCArNTYs
OCBAQCB1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKIAogbmFtZXNwYWNlIFdlYktpdCB7CiAKLVdl
YlNXU2VydmVyQ29ubmVjdGlvbjo6V2ViU1dTZXJ2ZXJDb25uZWN0aW9uKFNXU2VydmVyJiBzZXJ2
ZXIsIElQQzo6Q29ubmVjdGlvbiYgY29ubmVjdGlvbiwgdWludDY0X3QgY29ubmVjdGlvbklkZW50
aWZpZXIsIFNlc3Npb25JRCBzZXNzaW9uSUQpCi0gICAgOiBTV1NlcnZlcjo6Q29ubmVjdGlvbihz
ZXJ2ZXIsIGNvbm5lY3Rpb25JZGVudGlmaWVyKQorV2ViU1dTZXJ2ZXJDb25uZWN0aW9uOjpXZWJT
V1NlcnZlckNvbm5lY3Rpb24oU1dTZXJ2ZXImIHNlcnZlciwgSVBDOjpDb25uZWN0aW9uJiBjb25u
ZWN0aW9uLCBTZXNzaW9uSUQgc2Vzc2lvbklEKQorICAgIDogU1dTZXJ2ZXI6OkNvbm5lY3Rpb24o
c2VydmVyKQogICAgICwgbV9zZXNzaW9uSUQoc2Vzc2lvbklEKQogICAgICwgbV9jb250ZW50Q29u
bmVjdGlvbihjb25uZWN0aW9uKQogewpAQCAtMTEyLDEwICsxMTIsMTAgQEAgdm9pZCBXZWJTV1Nl
cnZlckNvbm5lY3Rpb246OnN0YXJ0RmV0Y2godWludDY0X3QgZmV0Y2hJZGVudGlmaWVyLCBzdGQ6
Om9wdGlvbmFsPFMKICAgICBzZW5kVG9Db250ZXh0UHJvY2VzcyhNZXNzYWdlczo6V2ViU1dDb250
ZXh0TWFuYWdlckNvbm5lY3Rpb246OlN0YXJ0RmV0Y2ggeyBpZGVudGlmaWVyKCksIGZldGNoSWRl
bnRpZmllciwgc2VydmljZVdvcmtlcklkZW50aWZpZXIsIHJlcXVlc3QsIG9wdGlvbnMsIGZvcm1E
YXRhIH0pOwogfQogCi12b2lkIFdlYlNXU2VydmVyQ29ubmVjdGlvbjo6cG9zdE1lc3NhZ2VUb1Nl
cnZpY2VXb3JrZXJHbG9iYWxTY29wZShTZXJ2aWNlV29ya2VySWRlbnRpZmllciBkZXN0aW5hdGlv
blNlcnZpY2VXb3JrZXJJZGVudGlmaWVyLCBjb25zdCBJUEM6OkRhdGFSZWZlcmVuY2UmIG1lc3Nh
Z2UsIFNlcnZpY2VXb3JrZXJDbGllbnREYXRhJiYgc291cmNlKQordm9pZCBXZWJTV1NlcnZlckNv
bm5lY3Rpb246OnBvc3RNZXNzYWdlVG9TZXJ2aWNlV29ya2VyR2xvYmFsU2NvcGUoU2VydmljZVdv
cmtlcklkZW50aWZpZXIgZGVzdGluYXRpb25TZXJ2aWNlV29ya2VySWRlbnRpZmllciwgY29uc3Qg
SVBDOjpEYXRhUmVmZXJlbmNlJiBtZXNzYWdlLCB1aW50NjRfdCBzb3VyY2VDb250ZXh0SWRlbnRp
ZmllciwgU2VydmljZVdvcmtlckNsaWVudERhdGEmJiBzb3VyY2VEYXRhKQogewotICAgIHNvdXJj
ZS5pZGVudGlmaWVyLnNlcnZlckNvbm5lY3Rpb25JZGVudGlmaWVyID0gaWRlbnRpZmllcigpOwot
ICAgIHNlbmRUb0NvbnRleHRQcm9jZXNzKE1lc3NhZ2VzOjpXZWJTV0NvbnRleHRNYW5hZ2VyQ29u
bmVjdGlvbjo6UG9zdE1lc3NhZ2VUb1NlcnZpY2VXb3JrZXJHbG9iYWxTY29wZSB7IGRlc3RpbmF0
aW9uU2VydmljZVdvcmtlcklkZW50aWZpZXIsIG1lc3NhZ2UsIFdURk1vdmUoc291cmNlKSB9KTsK
KyAgICBTZXJ2aWNlV29ya2VyQ2xpZW50SWRlbnRpZmllciBzb3VyY2VJZGVudGlmaWVyIHsgaWRl
bnRpZmllcigpLCBzb3VyY2VDb250ZXh0SWRlbnRpZmllciB9OworICAgIHNlbmRUb0NvbnRleHRQ
cm9jZXNzKE1lc3NhZ2VzOjpXZWJTV0NvbnRleHRNYW5hZ2VyQ29ubmVjdGlvbjo6UG9zdE1lc3Nh
Z2VUb1NlcnZpY2VXb3JrZXJHbG9iYWxTY29wZSB7IGRlc3RpbmF0aW9uU2VydmljZVdvcmtlcklk
ZW50aWZpZXIsIG1lc3NhZ2UsIHNvdXJjZUlkZW50aWZpZXIsIFdURk1vdmUoc291cmNlRGF0YSkg
fSk7CiB9CiAKIHZvaWQgV2ViU1dTZXJ2ZXJDb25uZWN0aW9uOjpkaWRSZWNlaXZlRmV0Y2hSZXNw
b25zZSh1aW50NjRfdCBmZXRjaElkZW50aWZpZXIsIGNvbnN0IFJlc291cmNlUmVzcG9uc2UmIHJl
c3BvbnNlKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TdG9yYWdlUHJvY2Vzcy9TZXJ2aWNl
V29ya2VyL1dlYlNXU2VydmVyQ29ubmVjdGlvbi5oIGIvU291cmNlL1dlYktpdC9TdG9yYWdlUHJv
Y2Vzcy9TZXJ2aWNlV29ya2VyL1dlYlNXU2VydmVyQ29ubmVjdGlvbi5oCmluZGV4IDNmMTMyNzJj
ZjYyMDU1MmRjNmVjZDdhNWFlY2ZiNzVjODliMDQ2ODQuLjIyZGYwYTc1YmFlYjlhZTJhNzY1ZDY3
ZmNlYjAwZDE5MmU1ZGQ3YWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU3RvcmFnZVByb2Nl
c3MvU2VydmljZVdvcmtlci9XZWJTV1NlcnZlckNvbm5lY3Rpb24uaAorKysgYi9Tb3VyY2UvV2Vi
S2l0L1N0b3JhZ2VQcm9jZXNzL1NlcnZpY2VXb3JrZXIvV2ViU1dTZXJ2ZXJDb25uZWN0aW9uLmgK
QEAgLTQ2LDcgKzQ2LDcgQEAgbmFtZXNwYWNlIFdlYktpdCB7CiAKIGNsYXNzIFdlYlNXU2VydmVy
Q29ubmVjdGlvbiA6IHB1YmxpYyBXZWJDb3JlOjpTV1NlcnZlcjo6Q29ubmVjdGlvbiwgcHVibGlj
IElQQzo6TWVzc2FnZVNlbmRlciwgcHVibGljIElQQzo6TWVzc2FnZVJlY2VpdmVyIHsKIHB1Ymxp
YzoKLSAgICBXZWJTV1NlcnZlckNvbm5lY3Rpb24oV2ViQ29yZTo6U1dTZXJ2ZXImLCBJUEM6OkNv
bm5lY3Rpb24mLCB1aW50NjRfdCBjb25uZWN0aW9uSWRlbnRpZmllciwgUEFMOjpTZXNzaW9uSUQp
OworICAgIFdlYlNXU2VydmVyQ29ubmVjdGlvbihXZWJDb3JlOjpTV1NlcnZlciYsIElQQzo6Q29u
bmVjdGlvbiYsIFBBTDo6U2Vzc2lvbklEKTsKICAgICBXZWJTV1NlcnZlckNvbm5lY3Rpb24oY29u
c3QgV2ViU1dTZXJ2ZXJDb25uZWN0aW9uJikgPSBkZWxldGU7CiAgICAgfldlYlNXU2VydmVyQ29u
bmVjdGlvbigpIGZpbmFsOwogCkBAIC03NiwxMyArNzYsMTMgQEAgcHJpdmF0ZToKIAogICAgIHZv
aWQgc3RhcnRGZXRjaCh1aW50NjRfdCBmZXRjaElkZW50aWZpZXIsIHN0ZDo6b3B0aW9uYWw8V2Vi
Q29yZTo6U2VydmljZVdvcmtlcklkZW50aWZpZXI+LCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJl
cXVlc3QmLCBjb25zdCBXZWJDb3JlOjpGZXRjaE9wdGlvbnMmLCBjb25zdCBJUEM6OkZvcm1EYXRh
UmVmZXJlbmNlJik7CiAKLSAgICB2b2lkIHBvc3RNZXNzYWdlVG9TZXJ2aWNlV29ya2VyR2xvYmFs
U2NvcGUoV2ViQ29yZTo6U2VydmljZVdvcmtlcklkZW50aWZpZXIgZGVzdGluYXRpb25JZGVudGlm
aWVyLCBjb25zdCBJUEM6OkRhdGFSZWZlcmVuY2UmIG1lc3NhZ2UsIFdlYkNvcmU6OlNlcnZpY2VX
b3JrZXJDbGllbnREYXRhJiYgc291cmNlKTsKKyAgICB2b2lkIHBvc3RNZXNzYWdlVG9TZXJ2aWNl
V29ya2VyR2xvYmFsU2NvcGUoV2ViQ29yZTo6U2VydmljZVdvcmtlcklkZW50aWZpZXIgZGVzdGlu
YXRpb25JZGVudGlmaWVyLCBjb25zdCBJUEM6OkRhdGFSZWZlcmVuY2UmIG1lc3NhZ2UsIHVpbnQ2
NF90IHNvdXJjZUNvbnRleHRJZGVudGlmaWVyLCBXZWJDb3JlOjpTZXJ2aWNlV29ya2VyQ2xpZW50
RGF0YSYmIHNvdXJjZSk7CiAKICAgICB2b2lkIG1hdGNoUmVnaXN0cmF0aW9uKHVpbnQ2NF90IHJl
Z2lzdHJhdGlvbk1hdGNoUmVxdWVzdElkZW50aWZpZXIsIGNvbnN0IFdlYkNvcmU6OlNlY3VyaXR5
T3JpZ2luRGF0YSYgdG9wT3JpZ2luLCBjb25zdCBXZWJDb3JlOjpVUkwmIGNsaWVudFVSTCk7CiAg
ICAgdm9pZCBnZXRSZWdpc3RyYXRpb25zKHVpbnQ2NF90IHJlZ2lzdHJhdGlvbk1hdGNoUmVxdWVz
dElkZW50aWZpZXIsIGNvbnN0IFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0YSYgdG9wT3JpZ2lu
LCBjb25zdCBXZWJDb3JlOjpVUkwmIGNsaWVudFVSTCk7CiAKICAgICBJUEM6OkNvbm5lY3Rpb24q
IG1lc3NhZ2VTZW5kZXJDb25uZWN0aW9uKCkgZmluYWwgeyByZXR1cm4gbV9jb250ZW50Q29ubmVj
dGlvbi5wdHIoKTsgfQotICAgIHVpbnQ2NF90IG1lc3NhZ2VTZW5kZXJEZXN0aW5hdGlvbklEKCkg
ZmluYWwgeyByZXR1cm4gaWRlbnRpZmllcigpOyB9CisgICAgdWludDY0X3QgbWVzc2FnZVNlbmRl
ckRlc3RpbmF0aW9uSUQoKSBmaW5hbCB7IHJldHVybiBpZGVudGlmaWVyKCkudG9VSW50NjQoKTsg
fQogICAgIAogICAgIHRlbXBsYXRlPHR5cGVuYW1lIFU+IHZvaWQgc2VuZFRvQ29udGV4dFByb2Nl
c3MoVSYmIG1lc3NhZ2UpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1N0b3JhZ2VQcm9j
ZXNzL1NlcnZpY2VXb3JrZXIvV2ViU1dTZXJ2ZXJDb25uZWN0aW9uLm1lc3NhZ2VzLmluIGIvU291
cmNlL1dlYktpdC9TdG9yYWdlUHJvY2Vzcy9TZXJ2aWNlV29ya2VyL1dlYlNXU2VydmVyQ29ubmVj
dGlvbi5tZXNzYWdlcy5pbgppbmRleCBlMjE0NjEzMDRlNmU2MjM5ODgwZGNlYTVkZGI2MGVhOGMx
Y2I1ODU0Li4xMjdkZDdhNDI0MWRmYzJlMWIxY2FhNTU1YzhiMjZmZWNlOTI0MWIyIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L1N0b3JhZ2VQcm9jZXNzL1NlcnZpY2VXb3JrZXIvV2ViU1dTZXJ2
ZXJDb25uZWN0aW9uLm1lc3NhZ2VzLmluCisrKyBiL1NvdXJjZS9XZWJLaXQvU3RvcmFnZVByb2Nl
c3MvU2VydmljZVdvcmtlci9XZWJTV1NlcnZlckNvbm5lY3Rpb24ubWVzc2FnZXMuaW4KQEAgLTMy
LDcgKzMyLDcgQEAgbWVzc2FnZXMgLT4gV2ViU1dTZXJ2ZXJDb25uZWN0aW9uIHsKICAgICBTZXJ2
aWNlV29ya2VyU3RvcHBlZENvbnRyb2xsaW5nQ2xpZW50KFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJJ
ZGVudGlmaWVyIHNlcnZpY2VXb3JrZXJJZGVudGlmaWVyLCB1aW50NjRfdCBzY3JpcHRFeGVjdXRp
b25Db250ZXh0SWRlbnRpZmllcikKIAogICAgIFN0YXJ0RmV0Y2godWludDY0X3QgaWRlbnRpZmll
ciwgc3RkOjpvcHRpb25hbDxXZWJDb3JlOjpTZXJ2aWNlV29ya2VySWRlbnRpZmllcj4gc2Vydmlj
ZVdvcmtlcklkZW50aWZpZXIsIFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCByZXF1ZXN0LCBzdHJ1
Y3QgV2ViQ29yZTo6RmV0Y2hPcHRpb25zIG9wdGlvbnMsIElQQzo6Rm9ybURhdGFSZWZlcmVuY2Ug
cmVxdWVzdEJvZHkpCi0gICAgUG9zdE1lc3NhZ2VUb1NlcnZpY2VXb3JrZXJHbG9iYWxTY29wZShX
ZWJDb3JlOjpTZXJ2aWNlV29ya2VySWRlbnRpZmllciBkZXN0aW5hdGlvblNlcnZpY2VXb3JrZXJJ
ZGVudGlmaWVyLCBJUEM6OkRhdGFSZWZlcmVuY2UgbWVzc2FnZSwgc3RydWN0IFdlYkNvcmU6OlNl
cnZpY2VXb3JrZXJDbGllbnREYXRhIHNvdXJjZSkKKyAgICBQb3N0TWVzc2FnZVRvU2VydmljZVdv
cmtlckdsb2JhbFNjb3BlKFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJJZGVudGlmaWVyIGRlc3RpbmF0
aW9uU2VydmljZVdvcmtlcklkZW50aWZpZXIsIElQQzo6RGF0YVJlZmVyZW5jZSBtZXNzYWdlLCB1
aW50NjRfdCBzb3VyY2VDb250ZXh0SWRlbnRpZmllciwgc3RydWN0IFdlYkNvcmU6OlNlcnZpY2VX
b3JrZXJDbGllbnREYXRhIHNvdXJjZSkKIAogICAgIERpZFJlc29sdmVSZWdpc3RyYXRpb25Qcm9t
aXNlKFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb25LZXkga2V5KQogCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L1N0b3JhZ2VQcm9jZXNzL1N0b3JhZ2VQcm9jZXNzLmNwcCBiL1Nv
dXJjZS9XZWJLaXQvU3RvcmFnZVByb2Nlc3MvU3RvcmFnZVByb2Nlc3MuY3BwCmluZGV4IDNiYWFl
N2U0MWQyNmI0MDI5YTUyY2QzNTg0MWU5ZjhlNzQ1YjM3YTYuLjhmNmE5ODg1NjA3YjBkMDJiMjUz
OWMyNmI5YWVmOTFmYzEyMjAyZDEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU3RvcmFnZVBy
b2Nlc3MvU3RvcmFnZVByb2Nlc3MuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvU3RvcmFnZVByb2Nl
c3MvU3RvcmFnZVByb2Nlc3MuY3BwCkBAIC00MTAsMzcgKzQxMCwzNyBAQCB2b2lkIFN0b3JhZ2VQ
cm9jZXNzOjpkaWRHZXRXb3JrZXJDb250ZXh0UHJvY2Vzc0Nvbm5lY3Rpb24oSVBDOjpBdHRhY2ht
ZW50JiYgZW5jbwogICAgICAgICBjb25uZWN0aW9uLT53b3JrZXJDb250ZXh0UHJvY2Vzc0Nvbm5l
Y3Rpb25DcmVhdGVkKCk7CiB9CiAKLXZvaWQgU3RvcmFnZVByb2Nlc3M6OmRpZEZhaWxGZXRjaCh1
aW50NjRfdCBzZXJ2ZXJDb25uZWN0aW9uSWRlbnRpZmllciwgdWludDY0X3QgZmV0Y2hJZGVudGlm
aWVyKQordm9pZCBTdG9yYWdlUHJvY2Vzczo6ZGlkRmFpbEZldGNoKFNXU2VydmVyQ29ubmVjdGlv
bklkZW50aWZpZXIgc2VydmVyQ29ubmVjdGlvbklkZW50aWZpZXIsIHVpbnQ2NF90IGZldGNoSWRl
bnRpZmllcikKIHsKICAgICBpZiAoYXV0byogY29ubmVjdGlvbiA9IG1fc3dTZXJ2ZXJDb25uZWN0
aW9ucy5nZXQoc2VydmVyQ29ubmVjdGlvbklkZW50aWZpZXIpKQogICAgICAgICBjb25uZWN0aW9u
LT5kaWRGYWlsRmV0Y2goZmV0Y2hJZGVudGlmaWVyKTsKIH0KIAotdm9pZCBTdG9yYWdlUHJvY2Vz
czo6ZGlkTm90SGFuZGxlRmV0Y2godWludDY0X3Qgc2VydmVyQ29ubmVjdGlvbklkZW50aWZpZXIs
IHVpbnQ2NF90IGZldGNoSWRlbnRpZmllcikKK3ZvaWQgU3RvcmFnZVByb2Nlc3M6OmRpZE5vdEhh
bmRsZUZldGNoKFNXU2VydmVyQ29ubmVjdGlvbklkZW50aWZpZXIgc2VydmVyQ29ubmVjdGlvbklk
ZW50aWZpZXIsIHVpbnQ2NF90IGZldGNoSWRlbnRpZmllcikKIHsKICAgICBpZiAoYXV0byogY29u
bmVjdGlvbiA9IG1fc3dTZXJ2ZXJDb25uZWN0aW9ucy5nZXQoc2VydmVyQ29ubmVjdGlvbklkZW50
aWZpZXIpKQogICAgICAgICBjb25uZWN0aW9uLT5kaWROb3RIYW5kbGVGZXRjaChmZXRjaElkZW50
aWZpZXIpOwogfQogCi12b2lkIFN0b3JhZ2VQcm9jZXNzOjpkaWRSZWNlaXZlRmV0Y2hSZXNwb25z
ZSh1aW50NjRfdCBzZXJ2ZXJDb25uZWN0aW9uSWRlbnRpZmllciwgdWludDY0X3QgZmV0Y2hJZGVu
dGlmaWVyLCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlc3BvbnNlJiByZXNwb25zZSkKK3ZvaWQg
U3RvcmFnZVByb2Nlc3M6OmRpZFJlY2VpdmVGZXRjaFJlc3BvbnNlKFNXU2VydmVyQ29ubmVjdGlv
bklkZW50aWZpZXIgc2VydmVyQ29ubmVjdGlvbklkZW50aWZpZXIsIHVpbnQ2NF90IGZldGNoSWRl
bnRpZmllciwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXNwb25zZSYgcmVzcG9uc2UpCiB7CiAg
ICAgaWYgKGF1dG8qIGNvbm5lY3Rpb24gPSBtX3N3U2VydmVyQ29ubmVjdGlvbnMuZ2V0KHNlcnZl
ckNvbm5lY3Rpb25JZGVudGlmaWVyKSkKICAgICAgICAgY29ubmVjdGlvbi0+ZGlkUmVjZWl2ZUZl
dGNoUmVzcG9uc2UoZmV0Y2hJZGVudGlmaWVyLCByZXNwb25zZSk7CiB9CiAKLXZvaWQgU3RvcmFn
ZVByb2Nlc3M6OmRpZFJlY2VpdmVGZXRjaERhdGEodWludDY0X3Qgc2VydmVyQ29ubmVjdGlvbklk
ZW50aWZpZXIsIHVpbnQ2NF90IGZldGNoSWRlbnRpZmllciwgY29uc3QgSVBDOjpEYXRhUmVmZXJl
bmNlJiBkYXRhLCBpbnQ2NF90IGVuY29kZWREYXRhTGVuZ3RoKQordm9pZCBTdG9yYWdlUHJvY2Vz
czo6ZGlkUmVjZWl2ZUZldGNoRGF0YShTV1NlcnZlckNvbm5lY3Rpb25JZGVudGlmaWVyIHNlcnZl
ckNvbm5lY3Rpb25JZGVudGlmaWVyLCB1aW50NjRfdCBmZXRjaElkZW50aWZpZXIsIGNvbnN0IElQ
Qzo6RGF0YVJlZmVyZW5jZSYgZGF0YSwgaW50NjRfdCBlbmNvZGVkRGF0YUxlbmd0aCkKIHsKICAg
ICBpZiAoYXV0byogY29ubmVjdGlvbiA9IG1fc3dTZXJ2ZXJDb25uZWN0aW9ucy5nZXQoc2VydmVy
Q29ubmVjdGlvbklkZW50aWZpZXIpKQogICAgICAgICBjb25uZWN0aW9uLT5kaWRSZWNlaXZlRmV0
Y2hEYXRhKGZldGNoSWRlbnRpZmllciwgZGF0YSwgZW5jb2RlZERhdGFMZW5ndGgpOwogfQogCi12
b2lkIFN0b3JhZ2VQcm9jZXNzOjpkaWRSZWNlaXZlRmV0Y2hGb3JtRGF0YSh1aW50NjRfdCBzZXJ2
ZXJDb25uZWN0aW9uSWRlbnRpZmllciwgdWludDY0X3QgZmV0Y2hJZGVudGlmaWVyLCBjb25zdCBJ
UEM6OkZvcm1EYXRhUmVmZXJlbmNlJiBmb3JtRGF0YSkKK3ZvaWQgU3RvcmFnZVByb2Nlc3M6OmRp
ZFJlY2VpdmVGZXRjaEZvcm1EYXRhKFNXU2VydmVyQ29ubmVjdGlvbklkZW50aWZpZXIgc2VydmVy
Q29ubmVjdGlvbklkZW50aWZpZXIsIHVpbnQ2NF90IGZldGNoSWRlbnRpZmllciwgY29uc3QgSVBD
OjpGb3JtRGF0YVJlZmVyZW5jZSYgZm9ybURhdGEpCiB7CiAgICAgaWYgKGF1dG8qIGNvbm5lY3Rp
b24gPSBtX3N3U2VydmVyQ29ubmVjdGlvbnMuZ2V0KHNlcnZlckNvbm5lY3Rpb25JZGVudGlmaWVy
KSkKICAgICAgICAgY29ubmVjdGlvbi0+ZGlkUmVjZWl2ZUZldGNoRm9ybURhdGEoZmV0Y2hJZGVu
dGlmaWVyLCBmb3JtRGF0YSk7CiB9CiAKLXZvaWQgU3RvcmFnZVByb2Nlc3M6OmRpZEZpbmlzaEZl
dGNoKHVpbnQ2NF90IHNlcnZlckNvbm5lY3Rpb25JZGVudGlmaWVyLCB1aW50NjRfdCBmZXRjaElk
ZW50aWZpZXIpCit2b2lkIFN0b3JhZ2VQcm9jZXNzOjpkaWRGaW5pc2hGZXRjaChTV1NlcnZlckNv
bm5lY3Rpb25JZGVudGlmaWVyIHNlcnZlckNvbm5lY3Rpb25JZGVudGlmaWVyLCB1aW50NjRfdCBm
ZXRjaElkZW50aWZpZXIpCiB7CiAgICAgaWYgKGF1dG8qIGNvbm5lY3Rpb24gPSBtX3N3U2VydmVy
Q29ubmVjdGlvbnMuZ2V0KHNlcnZlckNvbm5lY3Rpb25JZGVudGlmaWVyKSkKICAgICAgICAgY29u
bmVjdGlvbi0+ZGlkRmluaXNoRmV0Y2goZmV0Y2hJZGVudGlmaWVyKTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvU3RvcmFnZVByb2Nlc3MvU3RvcmFnZVByb2Nlc3MuaCBiL1NvdXJjZS9XZWJL
aXQvU3RvcmFnZVByb2Nlc3MvU3RvcmFnZVByb2Nlc3MuaAppbmRleCA2MzczMTI5ZGJlYTBmNzdm
ODM4OTAwOTJmN2JjNTgxY2E2ZTFiYzBlLi40Y2IyYmRkNTZjODhhMGQxYThhYWZmN2UyODg4MTNi
ZjFkODM4OGFhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1N0b3JhZ2VQcm9jZXNzL1N0b3Jh
Z2VQcm9jZXNzLmgKKysrIGIvU291cmNlL1dlYktpdC9TdG9yYWdlUHJvY2Vzcy9TdG9yYWdlUHJv
Y2Vzcy5oCkBAIC0zMCw2ICszMCw3IEBACiAjaW5jbHVkZSA8V2ViQ29yZS9JREJCYWNraW5nU3Rv
cmUuaD4KICNpbmNsdWRlIDxXZWJDb3JlL0lEQlNlcnZlci5oPgogI2luY2x1ZGUgPFdlYkNvcmUv
U2VydmljZVdvcmtlcklkZW50aWZpZXIuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL1NlcnZpY2VXb3Jr
ZXJUeXBlcy5oPgogI2luY2x1ZGUgPFdlYkNvcmUvVW5pcXVlSURCRGF0YWJhc2UuaD4KICNpbmNs
dWRlIDxwYWwvU2Vzc2lvbklELmg+CiAjaW5jbHVkZSA8d3RmL0Nyb3NzVGhyZWFkVGFzay5oPgpA
QCAtMTI0LDEyICsxMjUsMTIgQEAgcHJpdmF0ZToKICNpZiBFTkFCTEUoU0VSVklDRV9XT1JLRVIp
CiAgICAgdm9pZCBkaWRHZXRXb3JrZXJDb250ZXh0UHJvY2Vzc0Nvbm5lY3Rpb24oSVBDOjpBdHRh
Y2htZW50JiYgZW5jb2RlZENvbm5lY3Rpb25JZGVudGlmaWVyKTsKIAotICAgIHZvaWQgZGlkUmVj
ZWl2ZUZldGNoUmVzcG9uc2UodWludDY0X3Qgc2VydmVyQ29ubmVjdGlvbklkZW50aWZpZXIsIHVp
bnQ2NF90IGZldGNoSWRlbnRpZmllciwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXNwb25zZSYp
OwotICAgIHZvaWQgZGlkUmVjZWl2ZUZldGNoRGF0YSh1aW50NjRfdCBzZXJ2ZXJDb25uZWN0aW9u
SWRlbnRpZmllciwgdWludDY0X3QgZmV0Y2hJZGVudGlmaWVyLCBjb25zdCBJUEM6OkRhdGFSZWZl
cmVuY2UmLCBpbnQ2NF90IGVuY29kZWREYXRhTGVuZ3RoKTsKLSAgICB2b2lkIGRpZFJlY2VpdmVG
ZXRjaEZvcm1EYXRhKHVpbnQ2NF90IHNlcnZlckNvbm5lY3Rpb25JZGVudGlmaWVyLCB1aW50NjRf
dCBmZXRjaElkZW50aWZpZXIsIGNvbnN0IElQQzo6Rm9ybURhdGFSZWZlcmVuY2UmKTsKLSAgICB2
b2lkIGRpZEZpbmlzaEZldGNoKHVpbnQ2NF90IHNlcnZlckNvbm5lY3Rpb25JZGVudGlmaWVyLCB1
aW50NjRfdCBmZXRjaElkZW50aWZpZXIpOwotICAgIHZvaWQgZGlkRmFpbEZldGNoKHVpbnQ2NF90
IHNlcnZlckNvbm5lY3Rpb25JZGVudGlmaWVyLCB1aW50NjRfdCBmZXRjaElkZW50aWZpZXIpOwot
ICAgIHZvaWQgZGlkTm90SGFuZGxlRmV0Y2godWludDY0X3Qgc2VydmVyQ29ubmVjdGlvbklkZW50
aWZpZXIsIHVpbnQ2NF90IGZldGNoSWRlbnRpZmllcik7CisgICAgdm9pZCBkaWRSZWNlaXZlRmV0
Y2hSZXNwb25zZShXZWJDb3JlOjpTV1NlcnZlckNvbm5lY3Rpb25JZGVudGlmaWVyLCB1aW50NjRf
dCBmZXRjaElkZW50aWZpZXIsIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVzcG9uc2UmKTsKKyAg
ICB2b2lkIGRpZFJlY2VpdmVGZXRjaERhdGEoV2ViQ29yZTo6U1dTZXJ2ZXJDb25uZWN0aW9uSWRl
bnRpZmllciwgdWludDY0X3QgZmV0Y2hJZGVudGlmaWVyLCBjb25zdCBJUEM6OkRhdGFSZWZlcmVu
Y2UmLCBpbnQ2NF90IGVuY29kZWREYXRhTGVuZ3RoKTsKKyAgICB2b2lkIGRpZFJlY2VpdmVGZXRj
aEZvcm1EYXRhKFdlYkNvcmU6OlNXU2VydmVyQ29ubmVjdGlvbklkZW50aWZpZXIsIHVpbnQ2NF90
IGZldGNoSWRlbnRpZmllciwgY29uc3QgSVBDOjpGb3JtRGF0YVJlZmVyZW5jZSYpOworICAgIHZv
aWQgZGlkRmluaXNoRmV0Y2goV2ViQ29yZTo6U1dTZXJ2ZXJDb25uZWN0aW9uSWRlbnRpZmllciwg
dWludDY0X3QgZmV0Y2hJZGVudGlmaWVyKTsKKyAgICB2b2lkIGRpZEZhaWxGZXRjaChXZWJDb3Jl
OjpTV1NlcnZlckNvbm5lY3Rpb25JZGVudGlmaWVyLCB1aW50NjRfdCBmZXRjaElkZW50aWZpZXIp
OworICAgIHZvaWQgZGlkTm90SGFuZGxlRmV0Y2goV2ViQ29yZTo6U1dTZXJ2ZXJDb25uZWN0aW9u
SWRlbnRpZmllciwgdWludDY0X3QgZmV0Y2hJZGVudGlmaWVyKTsKIAogICAgIHZvaWQgcG9zdE1l
c3NhZ2VUb1NlcnZpY2VXb3JrZXJDbGllbnQoY29uc3QgV2ViQ29yZTo6U2VydmljZVdvcmtlckNs
aWVudElkZW50aWZpZXImIGRlc3RpbmF0aW9uSWRlbnRpZmllciwgY29uc3QgSVBDOjpEYXRhUmVm
ZXJlbmNlJiBtZXNzYWdlLCBXZWJDb3JlOjpTZXJ2aWNlV29ya2VySWRlbnRpZmllciBzb3VyY2VJ
ZGVudGlmaWVyLCBjb25zdCBTdHJpbmcmIHNvdXJjZU9yaWdpbik7CiAgICAgV2ViU1dPcmlnaW5T
dG9yZSYgc3dPcmlnaW5TdG9yZUZvclNlc3Npb24oUEFMOjpTZXNzaW9uSUQpOwpAQCAtMTYyLDcg
KzE2Myw3IEBAIHByaXZhdGU6CiAgICAgUmVmUHRyPFdlYlNXU2VydmVyVG9Db250ZXh0Q29ubmVj
dGlvbj4gbV9zZXJ2ZXJUb0NvbnRleHRDb25uZWN0aW9uOwogICAgIGJvb2wgbV93YWl0aW5nRm9y
U2VydmVyVG9Db250ZXh0UHJvY2Vzc0Nvbm5lY3Rpb24geyBmYWxzZSB9OwogICAgIEhhc2hNYXA8
UEFMOjpTZXNzaW9uSUQsIHN0ZDo6dW5pcXVlX3B0cjxXZWJDb3JlOjpTV1NlcnZlcj4+IG1fc3dT
ZXJ2ZXJzOwotICAgIEhhc2hNYXA8dWludDY0X3QsIFdlYlNXU2VydmVyQ29ubmVjdGlvbio+IG1f
c3dTZXJ2ZXJDb25uZWN0aW9uczsKKyAgICBIYXNoTWFwPFdlYkNvcmU6OlNXU2VydmVyQ29ubmVj
dGlvbklkZW50aWZpZXIsIFdlYlNXU2VydmVyQ29ubmVjdGlvbio+IG1fc3dTZXJ2ZXJDb25uZWN0
aW9uczsKICNlbmRpZgogfTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TdG9yYWdlUHJv
Y2Vzcy9TdG9yYWdlUHJvY2Vzcy5tZXNzYWdlcy5pbiBiL1NvdXJjZS9XZWJLaXQvU3RvcmFnZVBy
b2Nlc3MvU3RvcmFnZVByb2Nlc3MubWVzc2FnZXMuaW4KaW5kZXggNjZmMjljZDljMWRhMDhjOTgz
NmQyYWRhZWQ0NDM4MzAxNzBkYWU3OC4uZmI1ZTRkOGIwNzNhNjMxZDdjY2IxMTFiNmY5NTU5NGIx
Y2QxNGJhYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9TdG9yYWdlUHJvY2Vzcy9TdG9yYWdl
UHJvY2Vzcy5tZXNzYWdlcy5pbgorKysgYi9Tb3VyY2UvV2ViS2l0L1N0b3JhZ2VQcm9jZXNzL1N0
b3JhZ2VQcm9jZXNzLm1lc3NhZ2VzLmluCkBAIC0zOCwxMiArMzgsMTIgQEAgbWVzc2FnZXMgLT4g
U3RvcmFnZVByb2Nlc3MgTGVnYWN5UmVjZWl2ZXIgewogI2lmIEVOQUJMRShTRVJWSUNFX1dPUktF
UikKICAgICBEaWRHZXRXb3JrZXJDb250ZXh0UHJvY2Vzc0Nvbm5lY3Rpb24oSVBDOjpBdHRhY2ht
ZW50IGNvbm5lY3Rpb25IYW5kbGUpCiAKLSAgICBEaWROb3RIYW5kbGVGZXRjaCh1aW50NjRfdCBz
ZXJ2ZXJDb25uZWN0aW9uSWRlbnRpZmllciwgdWludDY0X3QgZmV0Y2hJZGVudGlmaWVyKQotICAg
IERpZEZhaWxGZXRjaCh1aW50NjRfdCBzZXJ2ZXJDb25uZWN0aW9uSWRlbnRpZmllciwgdWludDY0
X3QgZmV0Y2hJZGVudGlmaWVyKQotICAgIERpZFJlY2VpdmVGZXRjaFJlc3BvbnNlKHVpbnQ2NF90
IHNlcnZlckNvbm5lY3Rpb25JZGVudGlmaWVyLCB1aW50NjRfdCBmZXRjaElkZW50aWZpZXIsIFdl
YkNvcmU6OlJlc291cmNlUmVzcG9uc2UgcmVzcG9uc2UpCi0gICAgRGlkUmVjZWl2ZUZldGNoRGF0
YSh1aW50NjRfdCBzZXJ2ZXJDb25uZWN0aW9uSWRlbnRpZmllciwgdWludDY0X3QgZmV0Y2hJZGVu
dGlmaWVyLCBJUEM6OkRhdGFSZWZlcmVuY2UgZGF0YSwgaW50NjRfdCBlbmNvZGVkRGF0YUxlbmd0
aCkKLSAgICBEaWRSZWNlaXZlRmV0Y2hGb3JtRGF0YSh1aW50NjRfdCBzZXJ2ZXJDb25uZWN0aW9u
SWRlbnRpZmllciwgdWludDY0X3QgZmV0Y2hJZGVudGlmaWVyLCBJUEM6OkZvcm1EYXRhUmVmZXJl
bmNlIGRhdGEpCi0gICAgRGlkRmluaXNoRmV0Y2godWludDY0X3Qgc2VydmVyQ29ubmVjdGlvbklk
ZW50aWZpZXIsIHVpbnQ2NF90IGZldGNoSWRlbnRpZmllcikKKyAgICBEaWROb3RIYW5kbGVGZXRj
aChXZWJDb3JlOjpTV1NlcnZlckNvbm5lY3Rpb25JZGVudGlmaWVyIHNlcnZlckNvbm5lY3Rpb25J
ZGVudGlmaWVyLCB1aW50NjRfdCBmZXRjaElkZW50aWZpZXIpCisgICAgRGlkRmFpbEZldGNoKFdl
YkNvcmU6OlNXU2VydmVyQ29ubmVjdGlvbklkZW50aWZpZXIgc2VydmVyQ29ubmVjdGlvbklkZW50
aWZpZXIsIHVpbnQ2NF90IGZldGNoSWRlbnRpZmllcikKKyAgICBEaWRSZWNlaXZlRmV0Y2hSZXNw
b25zZShXZWJDb3JlOjpTV1NlcnZlckNvbm5lY3Rpb25JZGVudGlmaWVyIHNlcnZlckNvbm5lY3Rp
b25JZGVudGlmaWVyLCB1aW50NjRfdCBmZXRjaElkZW50aWZpZXIsIFdlYkNvcmU6OlJlc291cmNl
UmVzcG9uc2UgcmVzcG9uc2UpCisgICAgRGlkUmVjZWl2ZUZldGNoRGF0YShXZWJDb3JlOjpTV1Nl
cnZlckNvbm5lY3Rpb25JZGVudGlmaWVyIHNlcnZlckNvbm5lY3Rpb25JZGVudGlmaWVyLCB1aW50
NjRfdCBmZXRjaElkZW50aWZpZXIsIElQQzo6RGF0YVJlZmVyZW5jZSBkYXRhLCBpbnQ2NF90IGVu
Y29kZWREYXRhTGVuZ3RoKQorICAgIERpZFJlY2VpdmVGZXRjaEZvcm1EYXRhKFdlYkNvcmU6OlNX
U2VydmVyQ29ubmVjdGlvbklkZW50aWZpZXIgc2VydmVyQ29ubmVjdGlvbklkZW50aWZpZXIsIHVp
bnQ2NF90IGZldGNoSWRlbnRpZmllciwgSVBDOjpGb3JtRGF0YVJlZmVyZW5jZSBkYXRhKQorICAg
IERpZEZpbmlzaEZldGNoKFdlYkNvcmU6OlNXU2VydmVyQ29ubmVjdGlvbklkZW50aWZpZXIgc2Vy
dmVyQ29ubmVjdGlvbklkZW50aWZpZXIsIHVpbnQ2NF90IGZldGNoSWRlbnRpZmllcikKICAgICBQ
b3N0TWVzc2FnZVRvU2VydmljZVdvcmtlckNsaWVudChzdHJ1Y3QgV2ViQ29yZTo6U2VydmljZVdv
cmtlckNsaWVudElkZW50aWZpZXIgZGVzdGluYXRpb25JZGVudGlmaWVyLCBJUEM6OkRhdGFSZWZl
cmVuY2UgbWVzc2FnZSwgV2ViQ29yZTo6U2VydmljZVdvcmtlcklkZW50aWZpZXIgc291cmNlSWRl
bnRpZmllciwgU3RyaW5nIHNvdXJjZU9yaWdpbikKICNlbmRpZgogfQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9TdG9yYWdlUHJvY2Vzcy9TdG9yYWdlVG9XZWJQcm9jZXNzQ29ubmVjdGlvbi5j
cHAgYi9Tb3VyY2UvV2ViS2l0L1N0b3JhZ2VQcm9jZXNzL1N0b3JhZ2VUb1dlYlByb2Nlc3NDb25u
ZWN0aW9uLmNwcAppbmRleCA5YjA5Nzc4NTNmMTQwZGMxNDU5YmFlNmM1MTBiMTA0N2NjYzRhMTUy
Li41ZDc0NmI0ZmRjOGM3N2E2N2ZhYWRhZGRjYWM4M2ZmNDgzYzA2ZTk2IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L1N0b3JhZ2VQcm9jZXNzL1N0b3JhZ2VUb1dlYlByb2Nlc3NDb25uZWN0aW9u
LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1N0b3JhZ2VQcm9jZXNzL1N0b3JhZ2VUb1dlYlByb2Nl
c3NDb25uZWN0aW9uLmNwcApAQCAtODUsNyArODUsNyBAQCB2b2lkIFN0b3JhZ2VUb1dlYlByb2Nl
c3NDb25uZWN0aW9uOjpkaWRSZWNlaXZlTWVzc2FnZShJUEM6OkNvbm5lY3Rpb24mIGNvbm5lY3Rp
bwogCiAjaWYgRU5BQkxFKFNFUlZJQ0VfV09SS0VSKQogICAgIGlmIChkZWNvZGVyLm1lc3NhZ2VS
ZWNlaXZlck5hbWUoKSA9PSBNZXNzYWdlczo6V2ViU1dTZXJ2ZXJDb25uZWN0aW9uOjptZXNzYWdl
UmVjZWl2ZXJOYW1lKCkpIHsKLSAgICAgICAgYXV0byBpdGVyYXRvciA9IG1fc3dDb25uZWN0aW9u
cy5maW5kKGRlY29kZXIuZGVzdGluYXRpb25JRCgpKTsKKyAgICAgICAgYXV0byBpdGVyYXRvciA9
IG1fc3dDb25uZWN0aW9ucy5maW5kKG1ha2VPYmplY3RJZGVudGlmaWVyPFNXU2VydmVyQ29ubmVj
dGlvbklkZW50aWZpZXJUeXBlPihkZWNvZGVyLmRlc3RpbmF0aW9uSUQoKSkpOwogICAgICAgICBp
ZiAoaXRlcmF0b3IgIT0gbV9zd0Nvbm5lY3Rpb25zLmVuZCgpKQogICAgICAgICAgICAgaXRlcmF0
b3ItPnZhbHVlLT5kaWRSZWNlaXZlTWVzc2FnZShjb25uZWN0aW9uLCBkZWNvZGVyKTsKICAgICAg
ICAgcmV0dXJuOwpAQCAtMTM4LDMxICsxMzgsMjYgQEAgdm9pZCBTdG9yYWdlVG9XZWJQcm9jZXNz
Q29ubmVjdGlvbjo6ZGlkUmVjZWl2ZUludmFsaWRNZXNzYWdlKElQQzo6Q29ubmVjdGlvbiYsIEkK
IAogfQogCi1zdGF0aWMgdWludDY0X3QgZ2VuZXJhdGVDb25uZWN0aW9uVG9TZXJ2ZXJJZGVudGlm
aWVyKCkKLXsKLSAgICBBU1NFUlQoUnVuTG9vcDo6aXNNYWluKCkpOwotICAgIHN0YXRpYyB1aW50
NjRfdCBpZGVudGlmaWVyID0gMDsKLSAgICByZXR1cm4gKytpZGVudGlmaWVyOwotfQotCiAjaWYg
RU5BQkxFKFNFUlZJQ0VfV09SS0VSKQotdm9pZCBTdG9yYWdlVG9XZWJQcm9jZXNzQ29ubmVjdGlv
bjo6ZXN0YWJsaXNoU1dTZXJ2ZXJDb25uZWN0aW9uKFNlc3Npb25JRCBzZXNzaW9uSUQsIHVpbnQ2
NF90JiBzZXJ2ZXJDb25uZWN0aW9uSWRlbnRpZmllcikKK3ZvaWQgU3RvcmFnZVRvV2ViUHJvY2Vz
c0Nvbm5lY3Rpb246OmVzdGFibGlzaFNXU2VydmVyQ29ubmVjdGlvbihTZXNzaW9uSUQgc2Vzc2lv
bklELCBTV1NlcnZlckNvbm5lY3Rpb25JZGVudGlmaWVyJiBzZXJ2ZXJDb25uZWN0aW9uSWRlbnRp
ZmllcikKIHsKLSAgICBzZXJ2ZXJDb25uZWN0aW9uSWRlbnRpZmllciA9IGdlbmVyYXRlQ29ubmVj
dGlvblRvU2VydmVySWRlbnRpZmllcigpOwotICAgIExPRyhTZXJ2aWNlV29ya2VyLCAiU3RvcmFn
ZVRvV2ViUHJvY2Vzc0Nvbm5lY3Rpb246OmVzdGFibGlzaFNXU2VydmVyQ29ubmVjdGlvbiAtICUi
IFBSSXU2NCwgc2VydmVyQ29ubmVjdGlvbklkZW50aWZpZXIpOworICAgIGF1dG8mIHNlcnZlciA9
IFN0b3JhZ2VQcm9jZXNzOjpzaW5nbGV0b24oKS5zd1NlcnZlckZvclNlc3Npb24oc2Vzc2lvbklE
KTsKKyAgICBhdXRvIGNvbm5lY3Rpb24gPSBzdGQ6Om1ha2VfdW5pcXVlPFdlYlNXU2VydmVyQ29u
bmVjdGlvbj4oc2VydmVyLCBtX2Nvbm5lY3Rpb24uZ2V0KCksIHNlc3Npb25JRCk7CisKKyAgICBz
ZXJ2ZXJDb25uZWN0aW9uSWRlbnRpZmllciA9IGNvbm5lY3Rpb24tPmlkZW50aWZpZXIoKTsKKyAg
ICBMT0coU2VydmljZVdvcmtlciwgIlN0b3JhZ2VUb1dlYlByb2Nlc3NDb25uZWN0aW9uOjplc3Rh
Ymxpc2hTV1NlcnZlckNvbm5lY3Rpb24gLSAlcyIsIHNlcnZlckNvbm5lY3Rpb25JZGVudGlmaWVy
LmxvZ2dpbmdTdHJpbmcoKS51dGY4KCkuZGF0YSgpKTsKICAgICBBU1NFUlQoIW1fc3dDb25uZWN0
aW9ucy5jb250YWlucyhzZXJ2ZXJDb25uZWN0aW9uSWRlbnRpZmllcikpOwogCi0gICAgYXV0byYg
c2VydmVyID0gU3RvcmFnZVByb2Nlc3M6OnNpbmdsZXRvbigpLnN3U2VydmVyRm9yU2Vzc2lvbihz
ZXNzaW9uSUQpOwotICAgIGF1dG8gY29ubmVjdGlvblJlc3VsdCA9IG1fc3dDb25uZWN0aW9ucy5h
ZGQoc2VydmVyQ29ubmVjdGlvbklkZW50aWZpZXIsIHN0ZDo6bWFrZV91bmlxdWU8V2ViU1dTZXJ2
ZXJDb25uZWN0aW9uPihzZXJ2ZXIsIG1fY29ubmVjdGlvbi5nZXQoKSwgc2VydmVyQ29ubmVjdGlv
bklkZW50aWZpZXIsIHNlc3Npb25JRCkpOwotICAgIEFTU0VSVChjb25uZWN0aW9uUmVzdWx0Lmlz
TmV3RW50cnkpOworICAgIGF1dG8gYWRkUmVzdWx0ID0gbV9zd0Nvbm5lY3Rpb25zLmFkZChzZXJ2
ZXJDb25uZWN0aW9uSWRlbnRpZmllciwgV1RGTW92ZShjb25uZWN0aW9uKSk7CisgICAgQVNTRVJU
KGFkZFJlc3VsdC5pc05ld0VudHJ5KTsKIAotICAgIFN0b3JhZ2VQcm9jZXNzOjpzaW5nbGV0b24o
KS5yZWdpc3RlclNXU2VydmVyQ29ubmVjdGlvbigqKGNvbm5lY3Rpb25SZXN1bHQuaXRlcmF0b3It
PnZhbHVlKSk7CisgICAgU3RvcmFnZVByb2Nlc3M6OnNpbmdsZXRvbigpLnJlZ2lzdGVyU1dTZXJ2
ZXJDb25uZWN0aW9uKCooYWRkUmVzdWx0Lml0ZXJhdG9yLT52YWx1ZSkpOwogCiAgICAgaWYgKCFT
dG9yYWdlUHJvY2Vzczo6c2luZ2xldG9uKCkuZ2xvYmFsU2VydmVyVG9Db250ZXh0Q29ubmVjdGlv
bigpKQogICAgICAgICBTdG9yYWdlUHJvY2Vzczo6c2luZ2xldG9uKCkuY3JlYXRlU2VydmVyVG9D
b250ZXh0Q29ubmVjdGlvbigpOwogfQogCi12b2lkIFN0b3JhZ2VUb1dlYlByb2Nlc3NDb25uZWN0
aW9uOjpyZW1vdmVTV1NlcnZlckNvbm5lY3Rpb24odWludDY0X3Qgc2VydmVyQ29ubmVjdGlvbklk
ZW50aWZpZXIpCit2b2lkIFN0b3JhZ2VUb1dlYlByb2Nlc3NDb25uZWN0aW9uOjpyZW1vdmVTV1Nl
cnZlckNvbm5lY3Rpb24oV2ViQ29yZTo6U1dTZXJ2ZXI6OkNvbm5lY3Rpb246OklkZW50aWZpZXIg
c2VydmVyQ29ubmVjdGlvbklkZW50aWZpZXIpCiB7CiAgICAgQVNTRVJUKG1fc3dDb25uZWN0aW9u
cy5jb250YWlucyhzZXJ2ZXJDb25uZWN0aW9uSWRlbnRpZmllcikpOwogCkBAIC0xNzksOSArMTc0
LDE2IEBAIHZvaWQgU3RvcmFnZVRvV2ViUHJvY2Vzc0Nvbm5lY3Rpb246OndvcmtlckNvbnRleHRQ
cm9jZXNzQ29ubmVjdGlvbkNyZWF0ZWQoKQogI2VuZGlmCiAKICNpZiBFTkFCTEUoSU5ERVhFRF9E
QVRBQkFTRSkKK3N0YXRpYyB1aW50NjRfdCBnZW5lcmF0ZUlEQkNvbm5lY3Rpb25Ub1NlcnZlcklk
ZW50aWZpZXIoKQoreworICAgIEFTU0VSVChSdW5Mb29wOjppc01haW4oKSk7CisgICAgc3RhdGlj
IHVpbnQ2NF90IGlkZW50aWZpZXIgPSAwOworICAgIHJldHVybiArK2lkZW50aWZpZXI7Cit9CisK
IHZvaWQgU3RvcmFnZVRvV2ViUHJvY2Vzc0Nvbm5lY3Rpb246OmVzdGFibGlzaElEQkNvbm5lY3Rp
b25Ub1NlcnZlcihTZXNzaW9uSUQgc2Vzc2lvbklELCB1aW50NjRfdCYgc2VydmVyQ29ubmVjdGlv
bklkZW50aWZpZXIpCiB7Ci0gICAgc2VydmVyQ29ubmVjdGlvbklkZW50aWZpZXIgPSBnZW5lcmF0
ZUNvbm5lY3Rpb25Ub1NlcnZlcklkZW50aWZpZXIoKTsKKyAgICBzZXJ2ZXJDb25uZWN0aW9uSWRl
bnRpZmllciA9IGdlbmVyYXRlSURCQ29ubmVjdGlvblRvU2VydmVySWRlbnRpZmllcigpOwogICAg
IExPRyhJbmRleGVkREIsICJTdG9yYWdlVG9XZWJQcm9jZXNzQ29ubmVjdGlvbjo6ZXN0YWJsaXNo
SURCQ29ubmVjdGlvblRvU2VydmVyIC0gJSIgUFJJdTY0LCBzZXJ2ZXJDb25uZWN0aW9uSWRlbnRp
Zmllcik7CiAgICAgQVNTRVJUKCFtX3dlYklEQkNvbm5lY3Rpb25zLmNvbnRhaW5zKHNlcnZlckNv
bm5lY3Rpb25JZGVudGlmaWVyKSk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU3RvcmFn
ZVByb2Nlc3MvU3RvcmFnZVRvV2ViUHJvY2Vzc0Nvbm5lY3Rpb24uaCBiL1NvdXJjZS9XZWJLaXQv
U3RvcmFnZVByb2Nlc3MvU3RvcmFnZVRvV2ViUHJvY2Vzc0Nvbm5lY3Rpb24uaAppbmRleCA1Yjlj
ZThhYTVhYzdiMzZjMzMwZDJhOWNiOTcwZGJjMjAyNzE4NTI1Li5hZGM3ZmQ3MGY2Y2ZhZGFmZDMy
OTZlYTNmNjg1NTY2OTZkZGY2ZjM2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1N0b3JhZ2VQ
cm9jZXNzL1N0b3JhZ2VUb1dlYlByb2Nlc3NDb25uZWN0aW9uLmgKKysrIGIvU291cmNlL1dlYktp
dC9TdG9yYWdlUHJvY2Vzcy9TdG9yYWdlVG9XZWJQcm9jZXNzQ29ubmVjdGlvbi5oCkBAIC03Miw5
ICs3Miw5IEBAIHByaXZhdGU6CiAjZW5kaWYgLy8gRU5BQkxFKElOREVYRURfREFUQUJBU0UpCiAK
ICNpZiBFTkFCTEUoU0VSVklDRV9XT1JLRVIpCi0gICAgdm9pZCBlc3RhYmxpc2hTV1NlcnZlckNv
bm5lY3Rpb24oUEFMOjpTZXNzaW9uSUQsIHVpbnQ2NF90JiBzZXJ2ZXJDb25uZWN0aW9uSWRlbnRp
Zmllcik7Ci0gICAgdm9pZCByZW1vdmVTV1NlcnZlckNvbm5lY3Rpb24odWludDY0X3Qgc2VydmVy
Q29ubmVjdGlvbklkZW50aWZpZXIpOwotICAgIEhhc2hNYXA8dWludDY0X3QsIHN0ZDo6dW5pcXVl
X3B0cjxXZWJTV1NlcnZlckNvbm5lY3Rpb24+PiBtX3N3Q29ubmVjdGlvbnM7CisgICAgdm9pZCBl
c3RhYmxpc2hTV1NlcnZlckNvbm5lY3Rpb24oUEFMOjpTZXNzaW9uSUQsIFdlYkNvcmU6OlNXU2Vy
dmVyQ29ubmVjdGlvbklkZW50aWZpZXImKTsKKyAgICB2b2lkIHJlbW92ZVNXU2VydmVyQ29ubmVj
dGlvbihXZWJDb3JlOjpTV1NlcnZlckNvbm5lY3Rpb25JZGVudGlmaWVyKTsKKyAgICBIYXNoTWFw
PFdlYkNvcmU6OlNXU2VydmVyQ29ubmVjdGlvbklkZW50aWZpZXIsIHN0ZDo6dW5pcXVlX3B0cjxX
ZWJTV1NlcnZlckNvbm5lY3Rpb24+PiBtX3N3Q29ubmVjdGlvbnM7CiAjZW5kaWYKIAogICAgIFJl
ZjxJUEM6OkNvbm5lY3Rpb24+IG1fY29ubmVjdGlvbjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvU3RvcmFnZVByb2Nlc3MvU3RvcmFnZVRvV2ViUHJvY2Vzc0Nvbm5lY3Rpb24ubWVzc2FnZXMu
aW4gYi9Tb3VyY2UvV2ViS2l0L1N0b3JhZ2VQcm9jZXNzL1N0b3JhZ2VUb1dlYlByb2Nlc3NDb25u
ZWN0aW9uLm1lc3NhZ2VzLmluCmluZGV4IGUxZGEwNDk2OWVmZDc3ZDA2Y2JhNTM2OTE3NWZjOGJi
NmJmODYxODEuLjU5YTE4NTgzYjFmNzVjYWU5MmNkYWE1YWVlMWE4OTBjZDNlNGQ1ODcgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU3RvcmFnZVByb2Nlc3MvU3RvcmFnZVRvV2ViUHJvY2Vzc0Nv
bm5lY3Rpb24ubWVzc2FnZXMuaW4KKysrIGIvU291cmNlL1dlYktpdC9TdG9yYWdlUHJvY2Vzcy9T
dG9yYWdlVG9XZWJQcm9jZXNzQ29ubmVjdGlvbi5tZXNzYWdlcy5pbgpAQCAtMjYsNyArMjYsNyBA
QCBtZXNzYWdlcyAtPiBTdG9yYWdlVG9XZWJQcm9jZXNzQ29ubmVjdGlvbiBMZWdhY3lSZWNlaXZl
ciB7CiAgICAgUmVtb3ZlSURCQ29ubmVjdGlvblRvU2VydmVyKHVpbnQ2NF90IHNlcnZlckNvbm5l
Y3Rpb25JZGVudGlmaWVyKQogI2VuZGlmCiAjaWYgRU5BQkxFKFNFUlZJQ0VfV09SS0VSKQotICAg
IEVzdGFibGlzaFNXU2VydmVyQ29ubmVjdGlvbihQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQpIC0+
ICh1aW50NjRfdCBzZXJ2ZXJDb25uZWN0aW9uSWRlbnRpZmllcikKLSAgICBSZW1vdmVTV1NlcnZl
ckNvbm5lY3Rpb24odWludDY0X3Qgc2VydmVyQ29ubmVjdGlvbklkZW50aWZpZXIpCisgICAgRXN0
YWJsaXNoU1dTZXJ2ZXJDb25uZWN0aW9uKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCkgLT4gKFdl
YkNvcmU6OlNXU2VydmVyQ29ubmVjdGlvbklkZW50aWZpZXIgc2VydmVyQ29ubmVjdGlvbklkZW50
aWZpZXIpCisgICAgUmVtb3ZlU1dTZXJ2ZXJDb25uZWN0aW9uKFdlYkNvcmU6OlNXU2VydmVyQ29u
bmVjdGlvbklkZW50aWZpZXIgc2VydmVyQ29ubmVjdGlvbklkZW50aWZpZXIpCiAjZW5kaWYKIH0K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9TdG9yYWdlL1dlYlNXQ2xpZW50
Q29ubmVjdGlvbi5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvU3RvcmFnZS9XZWJTV0Ns
aWVudENvbm5lY3Rpb24uY3BwCmluZGV4IDA4ZmE4MDI4M2ZkZDAwMTI4ZTAzNDNjM2ViYjAyODE5
MDA1OWRlMmEuLmM4NDc2NTRmNDU3ZGZkNDZlYTA0YThkNjUzN2Q1NDI3ZGE3NmQ3OTggMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9TdG9yYWdlL1dlYlNXQ2xpZW50Q29ubmVj
dGlvbi5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1N0b3JhZ2UvV2ViU1dDbGll
bnRDb25uZWN0aW9uLmNwcApAQCAtODIsOSArODIsOSBAQCB2b2lkIFdlYlNXQ2xpZW50Q29ubmVj
dGlvbjo6cmVtb3ZlU2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbkluU2VydmVyKGNvbnN0IFNlcnZp
YwogICAgIHNlbmQoTWVzc2FnZXM6OldlYlNXU2VydmVyQ29ubmVjdGlvbjo6UmVtb3ZlU2Vydmlj
ZVdvcmtlclJlZ2lzdHJhdGlvbkluU2VydmVyKGtleSwgaWRlbnRpZmllcikpOwogfQogCi12b2lk
IFdlYlNXQ2xpZW50Q29ubmVjdGlvbjo6cG9zdE1lc3NhZ2VUb1NlcnZpY2VXb3JrZXJHbG9iYWxT
Y29wZShTZXJ2aWNlV29ya2VySWRlbnRpZmllciBkZXN0aW5hdGlvbklkZW50aWZpZXIsIFJlZjxT
ZXJpYWxpemVkU2NyaXB0VmFsdWU+JiYgc2NyaXB0VmFsdWUsIFNlcnZpY2VXb3JrZXJDbGllbnRE
YXRhJiYgc291cmNlKQordm9pZCBXZWJTV0NsaWVudENvbm5lY3Rpb246OnBvc3RNZXNzYWdlVG9T
ZXJ2aWNlV29ya2VyR2xvYmFsU2NvcGUoU2VydmljZVdvcmtlcklkZW50aWZpZXIgZGVzdGluYXRp
b25JZGVudGlmaWVyLCBSZWY8U2VyaWFsaXplZFNjcmlwdFZhbHVlPiYmIHNjcmlwdFZhbHVlLCB1
aW50NjRfdCBzb3VyY2VDb250ZXh0SWRlbnRpZmllciwgU2VydmljZVdvcmtlckNsaWVudERhdGEm
JiBzb3VyY2UpCiB7Ci0gICAgc2VuZChNZXNzYWdlczo6V2ViU1dTZXJ2ZXJDb25uZWN0aW9uOjpQ
b3N0TWVzc2FnZVRvU2VydmljZVdvcmtlckdsb2JhbFNjb3BlKGRlc3RpbmF0aW9uSWRlbnRpZmll
ciwgSVBDOjpEYXRhUmVmZXJlbmNlIHsgc2NyaXB0VmFsdWUtPmRhdGEoKSB9LCBXVEZNb3ZlKHNv
dXJjZSkpKTsKKyAgICBzZW5kKE1lc3NhZ2VzOjpXZWJTV1NlcnZlckNvbm5lY3Rpb246OlBvc3RN
ZXNzYWdlVG9TZXJ2aWNlV29ya2VyR2xvYmFsU2NvcGUoZGVzdGluYXRpb25JZGVudGlmaWVyLCBJ
UEM6OkRhdGFSZWZlcmVuY2UgeyBzY3JpcHRWYWx1ZS0+ZGF0YSgpIH0sIHNvdXJjZUNvbnRleHRJ
ZGVudGlmaWVyLCBXVEZNb3ZlKHNvdXJjZSkpKTsKIH0KIAogdm9pZCBXZWJTV0NsaWVudENvbm5l
Y3Rpb246OnNlcnZpY2VXb3JrZXJTdGFydGVkQ29udHJvbGxpbmdDbGllbnQoU2VydmljZVdvcmtl
cklkZW50aWZpZXIgc2VydmljZVdvcmtlcklkZW50aWZpZXIsIHVpbnQ2NF90IHNjcmlwdEV4ZWN1
dGlvbkNvbnRleHRJZGVudGlmaWVyKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL1N0b3JhZ2UvV2ViU1dDbGllbnRDb25uZWN0aW9uLmggYi9Tb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvU3RvcmFnZS9XZWJTV0NsaWVudENvbm5lY3Rpb24uaAppbmRleCBiNDA3NWEyOWQyMzNh
MWQ0M2JjYmRlYTA2MTkwN2NiZTIxNjg1NzQzLi5hYmEzYzcyODkzMWU0ZTc1MjNmOTdhOWMwZjRk
MDUwNzg5ODQ1MjY0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvU3RvcmFn
ZS9XZWJTV0NsaWVudENvbm5lY3Rpb24uaAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
U3RvcmFnZS9XZWJTV0NsaWVudENvbm5lY3Rpb24uaApAQCAtNTIsNyArNTIsNyBAQCBwdWJsaWM6
CiAgICAgV2ViU1dDbGllbnRDb25uZWN0aW9uKGNvbnN0IFdlYlNXQ2xpZW50Q29ubmVjdGlvbiYp
ID0gZGVsZXRlOwogICAgIH5XZWJTV0NsaWVudENvbm5lY3Rpb24oKSBmaW5hbDsKIAotICAgIHVp
bnQ2NF90IGlkZW50aWZpZXIoKSBjb25zdCBmaW5hbCB7IHJldHVybiBtX2lkZW50aWZpZXI7IH0K
KyAgICBXZWJDb3JlOjpTV1NlcnZlckNvbm5lY3Rpb25JZGVudGlmaWVyIHNlcnZlckNvbm5lY3Rp
b25JZGVudGlmaWVyKCkgY29uc3QgZmluYWwgeyByZXR1cm4gbV9pZGVudGlmaWVyOyB9CiAKICAg
ICB2b2lkIGFkZFNlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb25JblNlcnZlcihjb25zdCBXZWJDb3Jl
OjpTZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uS2V5JiwgV2ViQ29yZTo6U2VydmljZVdvcmtlclJl
Z2lzdHJhdGlvbklkZW50aWZpZXIpIGZpbmFsOwogICAgIHZvaWQgcmVtb3ZlU2VydmljZVdvcmtl
clJlZ2lzdHJhdGlvbkluU2VydmVyKGNvbnN0IFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJSZWdpc3Ry
YXRpb25LZXkmLCBXZWJDb3JlOjpTZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uSWRlbnRpZmllcikg
ZmluYWw7CkBAIC02OCw3ICs2OCw3IEBAIHB1YmxpYzoKIHByaXZhdGU6CiAgICAgdm9pZCBzY2hl
ZHVsZUpvYkluU2VydmVyKGNvbnN0IFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJKb2JEYXRhJikgZmlu
YWw7CiAgICAgdm9pZCBmaW5pc2hGZXRjaGluZ1NjcmlwdEluU2VydmVyKGNvbnN0IFdlYkNvcmU6
OlNlcnZpY2VXb3JrZXJGZXRjaFJlc3VsdCYpIGZpbmFsOwotICAgIHZvaWQgcG9zdE1lc3NhZ2VU
b1NlcnZpY2VXb3JrZXJHbG9iYWxTY29wZShXZWJDb3JlOjpTZXJ2aWNlV29ya2VySWRlbnRpZmll
ciBkZXN0aW5hdGlvbklkZW50aWZpZXIsIFJlZjxXZWJDb3JlOjpTZXJpYWxpemVkU2NyaXB0VmFs
dWU+JiYsIFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJDbGllbnREYXRhJiYgc291cmNlKSBmaW5hbDsK
KyAgICB2b2lkIHBvc3RNZXNzYWdlVG9TZXJ2aWNlV29ya2VyR2xvYmFsU2NvcGUoV2ViQ29yZTo6
U2VydmljZVdvcmtlcklkZW50aWZpZXIgZGVzdGluYXRpb25JZGVudGlmaWVyLCBSZWY8V2ViQ29y
ZTo6U2VyaWFsaXplZFNjcmlwdFZhbHVlPiYmLCB1aW50NjRfdCBzb3VyY2VDb250ZXh0SWRlbnRp
ZmllciwgV2ViQ29yZTo6U2VydmljZVdvcmtlckNsaWVudERhdGEmJiBzb3VyY2UpIGZpbmFsOwog
ICAgIHZvaWQgc2VydmljZVdvcmtlclN0YXJ0ZWRDb250cm9sbGluZ0NsaWVudChXZWJDb3JlOjpT
ZXJ2aWNlV29ya2VySWRlbnRpZmllciwgdWludDY0X3Qgc2NyaXB0RXhlY3V0aW9uQ29udGV4dElk
ZW50aWZpZXIpIGZpbmFsOwogICAgIHZvaWQgc2VydmljZVdvcmtlclN0b3BwZWRDb250cm9sbGlu
Z0NsaWVudChXZWJDb3JlOjpTZXJ2aWNlV29ya2VySWRlbnRpZmllciwgdWludDY0X3Qgc2NyaXB0
RXhlY3V0aW9uQ29udGV4dElkZW50aWZpZXIpIGZpbmFsOwogCkBAIC04MywxMyArODMsMTMgQEAg
cHJpdmF0ZToKICAgICB2b2lkIHNjaGVkdWxlU3RvcmFnZUpvYihjb25zdCBXZWJDb3JlOjpTZXJ2
aWNlV29ya2VySm9iRGF0YSYpOwogCiAgICAgSVBDOjpDb25uZWN0aW9uKiBtZXNzYWdlU2VuZGVy
Q29ubmVjdGlvbigpIGZpbmFsIHsgcmV0dXJuIG1fY29ubmVjdGlvbi5wdHIoKTsgfQotICAgIHVp
bnQ2NF90IG1lc3NhZ2VTZW5kZXJEZXN0aW5hdGlvbklEKCkgZmluYWwgeyByZXR1cm4gbV9pZGVu
dGlmaWVyOyB9CisgICAgdWludDY0X3QgbWVzc2FnZVNlbmRlckRlc3RpbmF0aW9uSUQoKSBmaW5h
bCB7IHJldHVybiBtX2lkZW50aWZpZXIudG9VSW50NjQoKTsgfQogCiAgICAgdm9pZCBzZXRTV09y
aWdpblRhYmxlU2hhcmVkTWVtb3J5KGNvbnN0IFNoYXJlZE1lbW9yeTo6SGFuZGxlJik7CiAgICAg
dm9pZCBpbml0aWFsaXplU1dPcmlnaW5UYWJsZUFzRW1wdHkoKTsKIAogICAgIFBBTDo6U2Vzc2lv
bklEIG1fc2Vzc2lvbklEOwotICAgIHVpbnQ2NF90IG1faWRlbnRpZmllcjsKKyAgICBXZWJDb3Jl
OjpTV1NlcnZlckNvbm5lY3Rpb25JZGVudGlmaWVyIG1faWRlbnRpZmllcjsKIAogICAgIFJlZjxJ
UEM6OkNvbm5lY3Rpb24+IG1fY29ubmVjdGlvbjsKICAgICBVbmlxdWVSZWY8V2ViU1dPcmlnaW5U
YWJsZT4gbV9zd09yaWdpblRhYmxlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL1N0b3JhZ2UvV2ViU1dDb250ZXh0TWFuYWdlckNvbm5lY3Rpb24uY3BwIGIvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL1N0b3JhZ2UvV2ViU1dDb250ZXh0TWFuYWdlckNvbm5lY3Rpb24uY3Bw
CmluZGV4IDk0YWNhM2QzYjBiMmY5YjQxMDEwZjdkZjA4MzhmNGZmZjg4NDA4MTguLjk2MTJjYjRi
MzNjMzQ2NGM5OWY1OGM1MmJlMzdiMGFlYWQ1ZmM0NzQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9TdG9yYWdlL1dlYlNXQ29udGV4dE1hbmFnZXJDb25uZWN0aW9uLmNwcAor
KysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvU3RvcmFnZS9XZWJTV0NvbnRleHRNYW5hZ2Vy
Q29ubmVjdGlvbi5jcHAKQEAgLTEzMiw3ICsxMzIsNyBAQCB2b2lkIFdlYlNXQ29udGV4dE1hbmFn
ZXJDb25uZWN0aW9uOjpzZXJ2aWNlV29ya2VyU3RhcnRlZFdpdGhNZXNzYWdlKFNlcnZpY2VXb3Jr
ZQogICAgICAgICBtX2Nvbm5lY3Rpb25Ub1N0b3JhZ2VQcm9jZXNzLT5zZW5kKE1lc3NhZ2VzOjpX
ZWJTV1NlcnZlclRvQ29udGV4dENvbm5lY3Rpb246OlNjcmlwdENvbnRleHRGYWlsZWRUb1N0YXJ0
KHNlcnZpY2VXb3JrZXJJZGVudGlmaWVyLCBleGNlcHRpb25NZXNzYWdlKSwgMCk7CiB9CiAKLXZv
aWQgV2ViU1dDb250ZXh0TWFuYWdlckNvbm5lY3Rpb246OnN0YXJ0RmV0Y2godWludDY0X3Qgc2Vy
dmVyQ29ubmVjdGlvbklkZW50aWZpZXIsIHVpbnQ2NF90IGZldGNoSWRlbnRpZmllciwgc3RkOjpv
cHRpb25hbDxTZXJ2aWNlV29ya2VySWRlbnRpZmllcj4gc2VydmljZVdvcmtlcklkZW50aWZpZXIs
IFJlc291cmNlUmVxdWVzdCYmIHJlcXVlc3QsIEZldGNoT3B0aW9ucyYmIG9wdGlvbnMsIElQQzo6
Rm9ybURhdGFSZWZlcmVuY2UmJiBmb3JtRGF0YSkKK3ZvaWQgV2ViU1dDb250ZXh0TWFuYWdlckNv
bm5lY3Rpb246OnN0YXJ0RmV0Y2goU1dTZXJ2ZXJDb25uZWN0aW9uSWRlbnRpZmllciBzZXJ2ZXJD
b25uZWN0aW9uSWRlbnRpZmllciwgdWludDY0X3QgZmV0Y2hJZGVudGlmaWVyLCBzdGQ6Om9wdGlv
bmFsPFNlcnZpY2VXb3JrZXJJZGVudGlmaWVyPiBzZXJ2aWNlV29ya2VySWRlbnRpZmllciwgUmVz
b3VyY2VSZXF1ZXN0JiYgcmVxdWVzdCwgRmV0Y2hPcHRpb25zJiYgb3B0aW9ucywgSVBDOjpGb3Jt
RGF0YVJlZmVyZW5jZSYmIGZvcm1EYXRhKQogewogICAgIGF1dG8qIHNlcnZpY2VXb3JrZXJUaHJl
YWRQcm94eSA9IHNlcnZpY2VXb3JrZXJJZGVudGlmaWVyID8gU1dDb250ZXh0TWFuYWdlcjo6c2lu
Z2xldG9uKCkuc2VydmljZVdvcmtlclRocmVhZFByb3h5KCpzZXJ2aWNlV29ya2VySWRlbnRpZmll
cikgOiBudWxscHRyOwogICAgIGlmICghc2VydmljZVdvcmtlclRocmVhZFByb3h5KSB7CkBAIC0x
NDYsOSArMTQ2LDkgQEAgdm9pZCBXZWJTV0NvbnRleHRNYW5hZ2VyQ29ubmVjdGlvbjo6c3RhcnRG
ZXRjaCh1aW50NjRfdCBzZXJ2ZXJDb25uZWN0aW9uSWRlbnRpZmkKICAgICBzZXJ2aWNlV29ya2Vy
VGhyZWFkUHJveHktPnRocmVhZCgpLnBvc3RGZXRjaFRhc2soV1RGTW92ZShjbGllbnQpLCBXVEZN
b3ZlKHJlcXVlc3QpLCBXVEZNb3ZlKG9wdGlvbnMpKTsKIH0KIAotdm9pZCBXZWJTV0NvbnRleHRN
YW5hZ2VyQ29ubmVjdGlvbjo6cG9zdE1lc3NhZ2VUb1NlcnZpY2VXb3JrZXJHbG9iYWxTY29wZShT
ZXJ2aWNlV29ya2VySWRlbnRpZmllciBkZXN0aW5hdGlvbklkZW50aWZpZXIsIGNvbnN0IElQQzo6
RGF0YVJlZmVyZW5jZSYgbWVzc2FnZSwgU2VydmljZVdvcmtlckNsaWVudERhdGEmJiBzb3VyY2Up
Cit2b2lkIFdlYlNXQ29udGV4dE1hbmFnZXJDb25uZWN0aW9uOjpwb3N0TWVzc2FnZVRvU2Vydmlj
ZVdvcmtlckdsb2JhbFNjb3BlKFNlcnZpY2VXb3JrZXJJZGVudGlmaWVyIGRlc3RpbmF0aW9uSWRl
bnRpZmllciwgY29uc3QgSVBDOjpEYXRhUmVmZXJlbmNlJiBtZXNzYWdlLCBTZXJ2aWNlV29ya2Vy
Q2xpZW50SWRlbnRpZmllciBzb3VyY2VJZGVudGlmaWVyLCBTZXJ2aWNlV29ya2VyQ2xpZW50RGF0
YSYmIHNvdXJjZURhdGEpCiB7Ci0gICAgU1dDb250ZXh0TWFuYWdlcjo6c2luZ2xldG9uKCkucG9z
dE1lc3NhZ2VUb1NlcnZpY2VXb3JrZXJHbG9iYWxTY29wZShkZXN0aW5hdGlvbklkZW50aWZpZXIs
IFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZTo6YWRvcHQobWVzc2FnZS52ZWN0b3IoKSksIFdURk1vdmUo
c291cmNlKSk7CisgICAgU1dDb250ZXh0TWFuYWdlcjo6c2luZ2xldG9uKCkucG9zdE1lc3NhZ2VU
b1NlcnZpY2VXb3JrZXJHbG9iYWxTY29wZShkZXN0aW5hdGlvbklkZW50aWZpZXIsIFNlcmlhbGl6
ZWRTY3JpcHRWYWx1ZTo6YWRvcHQobWVzc2FnZS52ZWN0b3IoKSksIHNvdXJjZUlkZW50aWZpZXIs
IFdURk1vdmUoc291cmNlRGF0YSkpOwogfQogCiB2b2lkIFdlYlNXQ29udGV4dE1hbmFnZXJDb25u
ZWN0aW9uOjpmaXJlSW5zdGFsbEV2ZW50KFNlcnZpY2VXb3JrZXJJZGVudGlmaWVyIGlkZW50aWZp
ZXIpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvU3RvcmFnZS9XZWJTV0Nv
bnRleHRNYW5hZ2VyQ29ubmVjdGlvbi5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1N0b3Jh
Z2UvV2ViU1dDb250ZXh0TWFuYWdlckNvbm5lY3Rpb24uaAppbmRleCBhYmM1MjUxNmM5ZTkwMjU5
ZTQxYzdmYWIyMWNhNGZkZjg3M2Q2NGM4Li40MTQwMGNmYzNmN2Y2NTM3NWZjZDBlZmNkMDgzYWNl
OGRhOWM2M2UyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvU3RvcmFnZS9X
ZWJTV0NvbnRleHRNYW5hZ2VyQ29ubmVjdGlvbi5oCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9TdG9yYWdlL1dlYlNXQ29udGV4dE1hbmFnZXJDb25uZWN0aW9uLmgKQEAgLTMwLDYgKzMw
LDcgQEAKICNpbmNsdWRlICJDb25uZWN0aW9uLmgiCiAjaW5jbHVkZSAiTWVzc2FnZVJlY2VpdmVy
LmgiCiAjaW5jbHVkZSA8V2ViQ29yZS9TV0NvbnRleHRNYW5hZ2VyLmg+CisjaW5jbHVkZSA8V2Vi
Q29yZS9TZXJ2aWNlV29ya2VyVHlwZXMuaD4KIAogbmFtZXNwYWNlIElQQyB7CiBjbGFzcyBGb3Jt
RGF0YVJlZmVyZW5jZTsKQEAgLTY0LDggKzY1LDggQEAgcHJpdmF0ZToKICAgICAvLyBJUEMgbWVz
c2FnZXMuCiAgICAgdm9pZCBzZXJ2aWNlV29ya2VyU3RhcnRlZFdpdGhNZXNzYWdlKFdlYkNvcmU6
OlNlcnZpY2VXb3JrZXJJZGVudGlmaWVyLCBjb25zdCBTdHJpbmcmIGV4Y2VwdGlvbk1lc3NhZ2Up
IGZpbmFsOwogICAgIHZvaWQgaW5zdGFsbFNlcnZpY2VXb3JrZXIoY29uc3QgV2ViQ29yZTo6U2Vy
dmljZVdvcmtlckNvbnRleHREYXRhJik7Ci0gICAgdm9pZCBzdGFydEZldGNoKHVpbnQ2NF90IHNl
cnZlckNvbm5lY3Rpb25JZGVudGlmaWVyLCB1aW50NjRfdCBmZXRjaElkZW50aWZpZXIsIHN0ZDo6
b3B0aW9uYWw8V2ViQ29yZTo6U2VydmljZVdvcmtlcklkZW50aWZpZXI+LCBXZWJDb3JlOjpSZXNv
dXJjZVJlcXVlc3QmJiwgV2ViQ29yZTo6RmV0Y2hPcHRpb25zJiYsIElQQzo6Rm9ybURhdGFSZWZl
cmVuY2UmJik7Ci0gICAgdm9pZCBwb3N0TWVzc2FnZVRvU2VydmljZVdvcmtlckdsb2JhbFNjb3Bl
KFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJJZGVudGlmaWVyIGRlc3RpbmF0aW9uSWRlbnRpZmllciwg
Y29uc3QgSVBDOjpEYXRhUmVmZXJlbmNlJiBtZXNzYWdlLCBXZWJDb3JlOjpTZXJ2aWNlV29ya2Vy
Q2xpZW50RGF0YSYmIHNvdXJjZSk7CisgICAgdm9pZCBzdGFydEZldGNoKFdlYkNvcmU6OlNXU2Vy
dmVyQ29ubmVjdGlvbklkZW50aWZpZXIsIHVpbnQ2NF90IGZldGNoSWRlbnRpZmllciwgc3RkOjpv
cHRpb25hbDxXZWJDb3JlOjpTZXJ2aWNlV29ya2VySWRlbnRpZmllcj4sIFdlYkNvcmU6OlJlc291
cmNlUmVxdWVzdCYmLCBXZWJDb3JlOjpGZXRjaE9wdGlvbnMmJiwgSVBDOjpGb3JtRGF0YVJlZmVy
ZW5jZSYmKTsKKyAgICB2b2lkIHBvc3RNZXNzYWdlVG9TZXJ2aWNlV29ya2VyR2xvYmFsU2NvcGUo
V2ViQ29yZTo6U2VydmljZVdvcmtlcklkZW50aWZpZXIgZGVzdGluYXRpb25JZGVudGlmaWVyLCBj
b25zdCBJUEM6OkRhdGFSZWZlcmVuY2UmIG1lc3NhZ2UsIFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJD
bGllbnRJZGVudGlmaWVyIHNvdXJjZUlkZW50aWZpZXIsIFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJD
bGllbnREYXRhJiYgc291cmNlRGF0YSk7CiAgICAgdm9pZCBmaXJlSW5zdGFsbEV2ZW50KFdlYkNv
cmU6OlNlcnZpY2VXb3JrZXJJZGVudGlmaWVyKTsKICAgICB2b2lkIGZpcmVBY3RpdmF0ZUV2ZW50
KFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJJZGVudGlmaWVyKTsKICAgICB2b2lkIHRlcm1pbmF0ZVdv
cmtlcihXZWJDb3JlOjpTZXJ2aWNlV29ya2VySWRlbnRpZmllcik7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvU3RvcmFnZS9XZWJTV0NvbnRleHRNYW5hZ2VyQ29ubmVjdGlv
bi5tZXNzYWdlcy5pbiBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9TdG9yYWdlL1dlYlNXQ29u
dGV4dE1hbmFnZXJDb25uZWN0aW9uLm1lc3NhZ2VzLmluCmluZGV4IDczNzMyY2NhNTA1NTk4ZWYz
NTZiN2UyYzBhYmJiZmZjZGMwMmNmYzguLjczNmZkZjViNDcxNzliZTQwZWRhMTJjOWZjNmQ3MjY2
MmMxZDdiYzQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9TdG9yYWdlL1dl
YlNXQ29udGV4dE1hbmFnZXJDb25uZWN0aW9uLm1lc3NhZ2VzLmluCisrKyBiL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9TdG9yYWdlL1dlYlNXQ29udGV4dE1hbmFnZXJDb25uZWN0aW9uLm1lc3Nh
Z2VzLmluCkBAIC0yNCw4ICsyNCw4IEBACiAKIG1lc3NhZ2VzIC0+IFdlYlNXQ29udGV4dE1hbmFn
ZXJDb25uZWN0aW9uIHsKICAgICBJbnN0YWxsU2VydmljZVdvcmtlcihzdHJ1Y3QgV2ViQ29yZTo6
U2VydmljZVdvcmtlckNvbnRleHREYXRhIGNvbnRleHREYXRhKQotICAgIFN0YXJ0RmV0Y2godWlu
dDY0X3Qgc2VydmVyQ29ubmVjdGlvbklkZW50aWZpZXIsIHVpbnQ2NF90IGZldGNoSWRlbnRpZmll
ciwgc3RkOjpvcHRpb25hbDxXZWJDb3JlOjpTZXJ2aWNlV29ya2VySWRlbnRpZmllcj4gc2Vydmlj
ZVdvcmtlcklkZW50aWZpZXIsIFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCByZXF1ZXN0LCBzdHJ1
Y3QgV2ViQ29yZTo6RmV0Y2hPcHRpb25zIG9wdGlvbnMsIElQQzo6Rm9ybURhdGFSZWZlcmVuY2Ug
cmVxdWVzdEJvZHkpCi0gICAgUG9zdE1lc3NhZ2VUb1NlcnZpY2VXb3JrZXJHbG9iYWxTY29wZShX
ZWJDb3JlOjpTZXJ2aWNlV29ya2VySWRlbnRpZmllciBkZXN0aW5hdGlvbklkZW50aWZpZXIsIElQ
Qzo6RGF0YVJlZmVyZW5jZSBtZXNzYWdlLCBzdHJ1Y3QgV2ViQ29yZTo6U2VydmljZVdvcmtlckNs
aWVudERhdGEgc291cmNlKQorICAgIFN0YXJ0RmV0Y2goV2ViQ29yZTo6U1dTZXJ2ZXJDb25uZWN0
aW9uSWRlbnRpZmllciBzZXJ2ZXJDb25uZWN0aW9uSWRlbnRpZmllciwgdWludDY0X3QgZmV0Y2hJ
ZGVudGlmaWVyLCBzdGQ6Om9wdGlvbmFsPFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJJZGVudGlmaWVy
PiBzZXJ2aWNlV29ya2VySWRlbnRpZmllciwgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0IHJlcXVl
c3QsIHN0cnVjdCBXZWJDb3JlOjpGZXRjaE9wdGlvbnMgb3B0aW9ucywgSVBDOjpGb3JtRGF0YVJl
ZmVyZW5jZSByZXF1ZXN0Qm9keSkKKyAgICBQb3N0TWVzc2FnZVRvU2VydmljZVdvcmtlckdsb2Jh
bFNjb3BlKFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJJZGVudGlmaWVyIGRlc3RpbmF0aW9uSWRlbnRp
ZmllciwgSVBDOjpEYXRhUmVmZXJlbmNlIG1lc3NhZ2UsIHN0cnVjdCBXZWJDb3JlOjpTZXJ2aWNl
V29ya2VyQ2xpZW50SWRlbnRpZmllciBzb3VyY2VJZGVudGlmaWVyLCBzdHJ1Y3QgV2ViQ29yZTo6
U2VydmljZVdvcmtlckNsaWVudERhdGEgc291cmNlRGF0YSkKICAgICBGaXJlSW5zdGFsbEV2ZW50
KFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJJZGVudGlmaWVyIGlkZW50aWZpZXIpCiAgICAgRmlyZUFj
dGl2YXRlRXZlbnQoV2ViQ29yZTo6U2VydmljZVdvcmtlcklkZW50aWZpZXIgaWRlbnRpZmllcikK
ICAgICBUZXJtaW5hdGVXb3JrZXIoV2ViQ29yZTo6U2VydmljZVdvcmtlcklkZW50aWZpZXIgaWRl
bnRpZmllcikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9TdG9yYWdlL1dl
YlNlcnZpY2VXb3JrZXJGZXRjaFRhc2tDbGllbnQuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL1N0b3JhZ2UvV2ViU2VydmljZVdvcmtlckZldGNoVGFza0NsaWVudC5jcHAKaW5kZXggOGY3
MDlmMjY5NjYwZDMyNTM3ZWFiMTVjMTdlY2QxZmQ4NWQ4MmYwZC4uMTRjZmY3MWIxMzgzZWU1ZDRj
MjEwZTA1N2RkNWQzMjIyYWJkODgwMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL1N0b3JhZ2UvV2ViU2VydmljZVdvcmtlckZldGNoVGFza0NsaWVudC5jcHAKKysrIGIvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL1N0b3JhZ2UvV2ViU2VydmljZVdvcmtlckZldGNoVGFza0Ns
aWVudC5jcHAKQEAgLTQ1LDcgKzQ1LDcgQEAgV2ViU2VydmljZVdvcmtlckZldGNoVGFza0NsaWVu
dDo6fldlYlNlcnZpY2VXb3JrZXJGZXRjaFRhc2tDbGllbnQoKQogICAgICAgICBSdW5Mb29wOjpt
YWluKCkuZGlzcGF0Y2goW2Nvbm5lY3Rpb24gPSBXVEZNb3ZlKG1fY29ubmVjdGlvbildIHsgfSk7
CiB9CiAKLVdlYlNlcnZpY2VXb3JrZXJGZXRjaFRhc2tDbGllbnQ6OldlYlNlcnZpY2VXb3JrZXJG
ZXRjaFRhc2tDbGllbnQoUmVmPElQQzo6Q29ubmVjdGlvbj4mJiBjb25uZWN0aW9uLCB1aW50NjRf
dCBzZXJ2ZXJDb25uZWN0aW9uSWRlbnRpZmllciwgdWludDY0X3QgZmV0Y2hUYXNrSWRlbnRpZmll
cikKK1dlYlNlcnZpY2VXb3JrZXJGZXRjaFRhc2tDbGllbnQ6OldlYlNlcnZpY2VXb3JrZXJGZXRj
aFRhc2tDbGllbnQoUmVmPElQQzo6Q29ubmVjdGlvbj4mJiBjb25uZWN0aW9uLCBXZWJDb3JlOjpT
V1NlcnZlckNvbm5lY3Rpb25JZGVudGlmaWVyIHNlcnZlckNvbm5lY3Rpb25JZGVudGlmaWVyLCB1
aW50NjRfdCBmZXRjaFRhc2tJZGVudGlmaWVyKQogICAgIDogbV9jb25uZWN0aW9uKFdURk1vdmUo
Y29ubmVjdGlvbikpCiAgICAgLCBtX3NlcnZlckNvbm5lY3Rpb25JZGVudGlmaWVyKHNlcnZlckNv
bm5lY3Rpb25JZGVudGlmaWVyKQogICAgICwgbV9mZXRjaFRhc2tJZGVudGlmaWVyKGZldGNoVGFz
a0lkZW50aWZpZXIpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvU3RvcmFn
ZS9XZWJTZXJ2aWNlV29ya2VyRmV0Y2hUYXNrQ2xpZW50LmggYi9Tb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvU3RvcmFnZS9XZWJTZXJ2aWNlV29ya2VyRmV0Y2hUYXNrQ2xpZW50LmgKaW5kZXggNmZi
MzE4YzExZjkzMDFmZmQyNGI4ZjdiMjY3YzFkMDVmOTIzNTIzNS4uMTc2YWQyNGUzOWE3OTNlZDkz
M2U1MmZjNzk1ZTliYzQ3ZDUyMWI4NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL1N0b3JhZ2UvV2ViU2VydmljZVdvcmtlckZldGNoVGFza0NsaWVudC5oCisrKyBiL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9TdG9yYWdlL1dlYlNlcnZpY2VXb3JrZXJGZXRjaFRhc2tDbGll
bnQuaApAQCAtMjksMTIgKzI5LDEzIEBACiAKICNpbmNsdWRlICJDb25uZWN0aW9uLmgiCiAjaW5j
bHVkZSA8V2ViQ29yZS9TZXJ2aWNlV29ya2VyRmV0Y2guaD4KKyNpbmNsdWRlIDxXZWJDb3JlL1Nl
cnZpY2VXb3JrZXJUeXBlcy5oPgogCiBuYW1lc3BhY2UgV2ViS2l0IHsKIAogY2xhc3MgV2ViU2Vy
dmljZVdvcmtlckZldGNoVGFza0NsaWVudCBmaW5hbCA6IHB1YmxpYyBXZWJDb3JlOjpTZXJ2aWNl
V29ya2VyRmV0Y2g6OkNsaWVudCB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIFJlZjxXZWJTZXJ2aWNl
V29ya2VyRmV0Y2hUYXNrQ2xpZW50PiBjcmVhdGUoUmVmPElQQzo6Q29ubmVjdGlvbj4mJiBjb25u
ZWN0aW9uLCB1aW50NjRfdCBzZXJ2ZXJDb25uZWN0aW9uSWRlbnRpZmllciwgdWludDY0X3QgZmV0
Y2hUYXNrSWRlbnRpZmllcikKKyAgICBzdGF0aWMgUmVmPFdlYlNlcnZpY2VXb3JrZXJGZXRjaFRh
c2tDbGllbnQ+IGNyZWF0ZShSZWY8SVBDOjpDb25uZWN0aW9uPiYmIGNvbm5lY3Rpb24sIFdlYkNv
cmU6OlNXU2VydmVyQ29ubmVjdGlvbklkZW50aWZpZXIgc2VydmVyQ29ubmVjdGlvbklkZW50aWZp
ZXIsIHVpbnQ2NF90IGZldGNoVGFza0lkZW50aWZpZXIpCiAgICAgewogICAgICAgICByZXR1cm4g
YWRvcHRSZWYoKm5ldyBXZWJTZXJ2aWNlV29ya2VyRmV0Y2hUYXNrQ2xpZW50KFdURk1vdmUoY29u
bmVjdGlvbiksIHNlcnZlckNvbm5lY3Rpb25JZGVudGlmaWVyLCBmZXRjaFRhc2tJZGVudGlmaWVy
KSk7CiAgICAgfQpAQCAtNDIsNyArNDMsNyBAQCBwdWJsaWM6CiAgICAgfldlYlNlcnZpY2VXb3Jr
ZXJGZXRjaFRhc2tDbGllbnQoKTsKIAogcHJpdmF0ZToKLSAgICBXZWJTZXJ2aWNlV29ya2VyRmV0
Y2hUYXNrQ2xpZW50KFJlZjxJUEM6OkNvbm5lY3Rpb24+JiYsIHVpbnQ2NF90IHNlcnZlckNvbm5l
Y3Rpb25JZGVudGlmaWVyLCB1aW50NjRfdCBmZXRjaFRhc2tJZGVudGlmaWVyKTsKKyAgICBXZWJT
ZXJ2aWNlV29ya2VyRmV0Y2hUYXNrQ2xpZW50KFJlZjxJUEM6OkNvbm5lY3Rpb24+JiYsIFdlYkNv
cmU6OlNXU2VydmVyQ29ubmVjdGlvbklkZW50aWZpZXIsIHVpbnQ2NF90IGZldGNoVGFza0lkZW50
aWZpZXIpOwogCiAgICAgdm9pZCBkaWRSZWNlaXZlUmVzcG9uc2UoY29uc3QgV2ViQ29yZTo6UmVz
b3VyY2VSZXNwb25zZSYpIGZpbmFsOwogICAgIHZvaWQgZGlkUmVjZWl2ZURhdGEoUmVmPFdlYkNv
cmU6OlNoYXJlZEJ1ZmZlcj4mJikgZmluYWw7CkBAIC01Miw3ICs1Myw3IEBAIHByaXZhdGU6CiAg
ICAgdm9pZCBkaWROb3RIYW5kbGUoKSBmaW5hbDsKIAogICAgIFJlZlB0cjxJUEM6OkNvbm5lY3Rp
b24+IG1fY29ubmVjdGlvbjsKLSAgICB1aW50NjRfdCBtX3NlcnZlckNvbm5lY3Rpb25JZGVudGlm
aWVyIHsgMCB9OworICAgIFdlYkNvcmU6OlNXU2VydmVyQ29ubmVjdGlvbklkZW50aWZpZXIgbV9z
ZXJ2ZXJDb25uZWN0aW9uSWRlbnRpZmllcjsKICAgICB1aW50NjRfdCBtX2ZldGNoVGFza0lkZW50
aWZpZXIgeyAwIH07CiB9OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
U3RvcmFnZS9XZWJUb1N0b3JhZ2VQcm9jZXNzQ29ubmVjdGlvbi5jcHAgYi9Tb3VyY2UvV2ViS2l0
L1dlYlByb2Nlc3MvU3RvcmFnZS9XZWJUb1N0b3JhZ2VQcm9jZXNzQ29ubmVjdGlvbi5jcHAKaW5k
ZXggYjJkZjgzN2UxZDgzMzU5MWZhNWI0ODRlMzM5YmNkODU2M2MxNTAxYS4uZDU5Mzg3NjQ1NzYy
OTc3MDVjMWQzMmEzYzdhODhlNTkwYmQ5YWFmMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL1N0b3JhZ2UvV2ViVG9TdG9yYWdlUHJvY2Vzc0Nvbm5lY3Rpb24uY3BwCisrKyBi
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9TdG9yYWdlL1dlYlRvU3RvcmFnZVByb2Nlc3NDb25u
ZWN0aW9uLmNwcApAQCAtNjQsNyArNjQsNyBAQCB2b2lkIFdlYlRvU3RvcmFnZVByb2Nlc3NDb25u
ZWN0aW9uOjpkaWRSZWNlaXZlTWVzc2FnZShJUEM6OkNvbm5lY3Rpb24mIGNvbm5lY3RpbwogCiAj
aWYgRU5BQkxFKFNFUlZJQ0VfV09SS0VSKQogICAgIGlmIChkZWNvZGVyLm1lc3NhZ2VSZWNlaXZl
ck5hbWUoKSA9PSBNZXNzYWdlczo6V2ViU1dDbGllbnRDb25uZWN0aW9uOjptZXNzYWdlUmVjZWl2
ZXJOYW1lKCkpIHsKLSAgICAgICAgYXV0byBzZXJ2aWNlV29ya2VyQ29ubmVjdGlvbiA9IG1fc3dD
b25uZWN0aW9uc0J5SWRlbnRpZmllci5nZXQoZGVjb2Rlci5kZXN0aW5hdGlvbklEKCkpOworICAg
ICAgICBhdXRvIHNlcnZpY2VXb3JrZXJDb25uZWN0aW9uID0gbV9zd0Nvbm5lY3Rpb25zQnlJZGVu
dGlmaWVyLmdldChtYWtlT2JqZWN0SWRlbnRpZmllcjxTV1NlcnZlckNvbm5lY3Rpb25JZGVudGlm
aWVyVHlwZT4oZGVjb2Rlci5kZXN0aW5hdGlvbklEKCkpKTsKICAgICAgICAgaWYgKHNlcnZpY2VX
b3JrZXJDb25uZWN0aW9uKQogICAgICAgICAgICAgc2VydmljZVdvcmtlckNvbm5lY3Rpb24tPmRp
ZFJlY2VpdmVNZXNzYWdlKGNvbm5lY3Rpb24sIGRlY29kZXIpOwogICAgICAgICByZXR1cm47CkBA
IC0xMTQsOCArMTE0LDggQEAgV2ViU1dDbGllbnRDb25uZWN0aW9uJiBXZWJUb1N0b3JhZ2VQcm9j
ZXNzQ29ubmVjdGlvbjo6c2VydmljZVdvcmtlckNvbm5lY3Rpb25Gb3IKICAgICBhdXRvIHJlc3Vs
dCA9IG1fc3dDb25uZWN0aW9uc0J5U2Vzc2lvbi5hZGQoc2Vzc2lvbklELCBudWxscHRyKTsKICAg
ICBpZiAocmVzdWx0LmlzTmV3RW50cnkpIHsKICAgICAgICAgcmVzdWx0Lml0ZXJhdG9yLT52YWx1
ZSA9IHN0ZDo6bWFrZV91bmlxdWU8V2ViU1dDbGllbnRDb25uZWN0aW9uPihtX2Nvbm5lY3Rpb24u
Z2V0KCksIHNlc3Npb25JRCk7Ci0gICAgICAgIEFTU0VSVCghbV9zd0Nvbm5lY3Rpb25zQnlJZGVu
dGlmaWVyLmNvbnRhaW5zKHJlc3VsdC5pdGVyYXRvci0+dmFsdWUtPmlkZW50aWZpZXIoKSkpOwot
ICAgICAgICBtX3N3Q29ubmVjdGlvbnNCeUlkZW50aWZpZXIuc2V0KHJlc3VsdC5pdGVyYXRvci0+
dmFsdWUtPmlkZW50aWZpZXIoKSwgcmVzdWx0Lml0ZXJhdG9yLT52YWx1ZS5nZXQoKSk7CisgICAg
ICAgIEFTU0VSVCghbV9zd0Nvbm5lY3Rpb25zQnlJZGVudGlmaWVyLmNvbnRhaW5zKHJlc3VsdC5p
dGVyYXRvci0+dmFsdWUtPnNlcnZlckNvbm5lY3Rpb25JZGVudGlmaWVyKCkpKTsKKyAgICAgICAg
bV9zd0Nvbm5lY3Rpb25zQnlJZGVudGlmaWVyLnNldChyZXN1bHQuaXRlcmF0b3ItPnZhbHVlLT5z
ZXJ2ZXJDb25uZWN0aW9uSWRlbnRpZmllcigpLCByZXN1bHQuaXRlcmF0b3ItPnZhbHVlLmdldCgp
KTsKICAgICB9CiAKICAgICByZXR1cm4gKnJlc3VsdC5pdGVyYXRvci0+dmFsdWU7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvU3RvcmFnZS9XZWJUb1N0b3JhZ2VQcm9jZXNz
Q29ubmVjdGlvbi5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1N0b3JhZ2UvV2ViVG9TdG9y
YWdlUHJvY2Vzc0Nvbm5lY3Rpb24uaAppbmRleCBhNWEyOGQxZjc5M2NjZWU4MDA4NGQxODRjZTkz
NmY0MjkwMjg2MDZiLi5mMTQ0YTkyMDM0ZTUwZGRmNjE4YWJlYjE5MzRjOTFkZDhlYzU0Y2FhIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvU3RvcmFnZS9XZWJUb1N0b3JhZ2VQ
cm9jZXNzQ29ubmVjdGlvbi5oCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9TdG9yYWdl
L1dlYlRvU3RvcmFnZVByb2Nlc3NDb25uZWN0aW9uLmgKQEAgLTc4LDcgKzc4LDcgQEAgcHJpdmF0
ZToKIAogI2lmIEVOQUJMRShTRVJWSUNFX1dPUktFUikKICAgICBIYXNoTWFwPFBBTDo6U2Vzc2lv
bklELCBzdGQ6OnVuaXF1ZV9wdHI8V2ViU1dDbGllbnRDb25uZWN0aW9uPj4gbV9zd0Nvbm5lY3Rp
b25zQnlTZXNzaW9uOwotICAgIEhhc2hNYXA8dWludDY0X3QsIFdlYlNXQ2xpZW50Q29ubmVjdGlv
bio+IG1fc3dDb25uZWN0aW9uc0J5SWRlbnRpZmllcjsKKyAgICBIYXNoTWFwPFdlYkNvcmU6OlNX
U2VydmVyQ29ubmVjdGlvbklkZW50aWZpZXIsIFdlYlNXQ2xpZW50Q29ubmVjdGlvbio+IG1fc3dD
b25uZWN0aW9uc0J5SWRlbnRpZmllcjsKICNlbmRpZgogfTsKIAo=
</data>

          </attachment>
      

    </bug>

</bugzilla>