<?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>234455</bug_id>
          
          <creation_ts>2021-12-17 16:40:20 -0800</creation_ts>
          <short_desc>Convert ProtectionSpace enums into enum classes</short_desc>
          <delta_ts>2021-12-19 15:54:58 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>WebCore Misc.</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          <see_also>https://bugs.webkit.org/show_bug.cgi?id=234314</see_also>
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Chris Dumez">cdumez</reporter>
          <assigned_to name="Chris Dumez">cdumez</assigned_to>
          <cc>achristensen</cc>
    
    <cc>berto</cc>
    
    <cc>cgarcia</cc>
    
    <cc>darin</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>galpeter</cc>
    
    <cc>ggaren</cc>
    
    <cc>gustavo</cc>
    
    <cc>sam</cc>
    
    <cc>toyoshim</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>youennf</cc>
    
    <cc>yutak</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1825256</commentid>
    <comment_count>0</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2021-12-17 16:40:20 -0800</bug_when>
    <thetext>Convert ProtectionSpace enums into enum classes.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1825257</commentid>
    <comment_count>1</comment_count>
      <attachid>447494</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2021-12-17 16:43:00 -0800</bug_when>
    <thetext>Created attachment 447494
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1825258</commentid>
    <comment_count>2</comment_count>
    <who name="EWS Watchlist">ews-watchlist</who>
    <bug_when>2021-12-17 16:43:45 -0800</bug_when>
    <thetext>Thanks for the patch. If this patch contains new public API please make sure it follows the guidelines for new WebKit2 GTK+ API. See https://trac.webkit.org/wiki/WebKitGTK/AddingNewWebKit2API</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1825259</commentid>
    <comment_count>3</comment_count>
      <attachid>447495</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2021-12-17 16:52:15 -0800</bug_when>
    <thetext>Created attachment 447495
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1825271</commentid>
    <comment_count>4</comment_count>
      <attachid>447499</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2021-12-17 18:25:46 -0800</bug_when>
    <thetext>Created attachment 447499
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1825274</commentid>
    <comment_count>5</comment_count>
      <attachid>447501</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2021-12-17 18:54:11 -0800</bug_when>
    <thetext>Created attachment 447501
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1825351</commentid>
    <comment_count>6</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2021-12-18 09:47:31 -0800</bug_when>
    <thetext>Committed r287224 (245387@main): &lt;https://commits.webkit.org/245387@main&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 447501.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1825352</commentid>
    <comment_count>7</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2021-12-18 09:48:19 -0800</bug_when>
    <thetext>&lt;rdar://problem/86672863&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1825496</commentid>
    <comment_count>8</comment_count>
      <attachid>447501</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2021-12-19 15:54:58 -0800</bug_when>
    <thetext>Comment on attachment 447501
Patch

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

&gt; Source/WebCore/platform/network/ProtectionSpaceBase.h:45
&gt; +        HTTP = 1,
&gt; +        HTTPS = 2,
&gt; +        FTP = 3,
&gt; +        FTPS = 4,
&gt; +        ProxyHTTP = 5,
&gt; +        ProxyHTTPS = 6,
&gt; +        ProxyFTP = 7,
&gt; +        ProxySOCKS = 8

Is there a reason we need to apply specific numbers here instead of letting the enumeration select consecutive numbers? Some reason to avoid 0?

&gt; Source/WebCore/platform/network/ProtectionSpaceBase.h:61
&gt; +        Default = 1,
&gt; +        HTTPBasic = 2,
&gt; +        HTTPDigest = 3,
&gt; +        HTMLForm = 4,
&gt; +        NTLM = 5,
&gt; +        Negotiate = 6,
&gt; +        ClientCertificateRequested = 7,
&gt; +        ServerTrustEvaluationRequested = 8,
&gt; +        OAuth = 9,
&gt; +#if USE(GLIB)
&gt; +        ClientCertificatePINRequested = 10,
&gt; +#endif
&gt; +        Unknown = 100

Same question.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>447494</attachid>
            <date>2021-12-17 16:43:00 -0800</date>
            <delta_ts>2021-12-17 17:02:16 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-234455-20211217164259.patch</filename>
            <type>text/plain</type>
            <size>94522</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg3MjAzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZTQwNDdjOTk5N2FhMWUy
OTY2MTIzNmY4Yjc2OGI0ZWU1MWNiNTIzZi4uMDEyYzFlMWM1YmM1OTQ3Njk4ZGZhNjQ3OTI5OTk0
YTA4ODM5MWQyYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDYzIEBACisyMDIxLTEyLTE3ICBDaHJp
cyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgQ29udmVydCBQcm90ZWN0aW9u
U3BhY2UgZW51bXMgaW50byBlbnVtIGNsYXNzZXMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTIzNDQ1NQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgICogcGxhdGZvcm0vbmV0d29yay9DcmVkZW50aWFsU3RvcmFn
ZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDcmVkZW50aWFsU3RvcmFnZTo6c2V0KToKKyAgICAg
ICAgKFdlYkNvcmU6OkNyZWRlbnRpYWxTdG9yYWdlOjpyZW1vdmVDcmVkZW50aWFsc1dpdGhPcmln
aW4pOgorICAgICAgICAoV2ViQ29yZTo6Q3JlZGVudGlhbFN0b3JhZ2U6Om9yaWdpbnNXaXRoQ3Jl
ZGVudGlhbHMgY29uc3QpOgorICAgICAgICAqIHBsYXRmb3JtL25ldHdvcmsvUHJvdGVjdGlvblNw
YWNlLmg6CisgICAgICAgIChXZWJDb3JlOjpQcm90ZWN0aW9uU3BhY2U6OlByb3RlY3Rpb25TcGFj
ZSk6CisgICAgICAgICogcGxhdGZvcm0vbmV0d29yay9Qcm90ZWN0aW9uU3BhY2VCYXNlLmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OlByb3RlY3Rpb25TcGFjZUJhc2U6OlByb3RlY3Rpb25TcGFjZUJh
c2UpOgorICAgICAgICAoV2ViQ29yZTo6UHJvdGVjdGlvblNwYWNlQmFzZTo6aXNQcm94eSBjb25z
dCk6CisgICAgICAgIChXZWJDb3JlOjpQcm90ZWN0aW9uU3BhY2VCYXNlOjpyZWNlaXZlc0NyZWRl
bnRpYWxTZWN1cmVseSBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpQcm90ZWN0aW9uU3BhY2VC
YXNlOjppc1Bhc3N3b3JkQmFzZWQgY29uc3QpOgorICAgICAgICAqIHBsYXRmb3JtL25ldHdvcmsv
UHJvdGVjdGlvblNwYWNlQmFzZS5oOgorICAgICAgICAoV2ViQ29yZTo6UHJvdGVjdGlvblNwYWNl
QmFzZTo6c2VydmVyVHlwZSBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpQcm90ZWN0aW9uU3Bh
Y2VCYXNlOjphdXRoZW50aWNhdGlvblNjaGVtZSBjb25zdCk6CisgICAgICAgICogcGxhdGZvcm0v
bmV0d29yay9jZi9BdXRoZW50aWNhdGlvbkNGLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmNyZWF0
ZUNGKToKKyAgICAgICAgKFdlYkNvcmU6OmNvcmUpOgorICAgICAgICAqIHBsYXRmb3JtL25ldHdv
cmsvY2YvUHJvdGVjdGlvblNwYWNlQ0ZOZXQuaDoKKyAgICAgICAgKFdlYkNvcmU6OlByb3RlY3Rp
b25TcGFjZTo6UHJvdGVjdGlvblNwYWNlKToKKyAgICAgICAgKiBwbGF0Zm9ybS9uZXR3b3JrL2Nm
L1Jlc291cmNlSGFuZGxlQ0ZOZXQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVzb3VyY2VIYW5k
bGU6OnJlY2VpdmVkQ3JlZGVudGlhbCk6CisgICAgICAgICogcGxhdGZvcm0vbmV0d29yay9jZi9T
b2NrZXRTdHJlYW1IYW5kbGVJbXBsQ0ZOZXQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6YXV0aGVu
dGljYXRpb25TY2hlbWVGcm9tQXV0aGVudGljYXRpb25NZXRob2QpOgorICAgICAgICAqIHBsYXRm
b3JtL25ldHdvcmsvY29jb2EvUHJvdGVjdGlvblNwYWNlQ29jb2EuaDoKKyAgICAgICAgKFdlYkNv
cmU6OlByb3RlY3Rpb25TcGFjZTo6UHJvdGVjdGlvblNwYWNlKToKKyAgICAgICAgKiBwbGF0Zm9y
bS9uZXR3b3JrL2NvY29hL1Byb3RlY3Rpb25TcGFjZUNvY29hLm1tOgorICAgICAgICAoV2ViQ29y
ZTo6dHlwZSk6CisgICAgICAgIChXZWJDb3JlOjpzY2hlbWUpOgorICAgICAgICAoV2ViQ29yZTo6
UHJvdGVjdGlvblNwYWNlOjpuc1NwYWNlIGNvbnN0KToKKyAgICAgICAgKiBwbGF0Zm9ybS9uZXR3
b3JrL2N1cmwvQXV0aGVudGljYXRpb25DaGFsbGVuZ2UuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9u
ZXR3b3JrL2N1cmwvQXV0aGVudGljYXRpb25DaGFsbGVuZ2VDdXJsLmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OkF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlOjpwcm90ZWN0aW9uU3BhY2VTZXJ2ZXJUeXBl
RnJvbVVSSSk6CisgICAgICAgIChXZWJDb3JlOjpBdXRoZW50aWNhdGlvbkNoYWxsZW5nZTo6cHJv
dGVjdGlvblNwYWNlRm9yU2VydmVyVHJ1c3QpOgorICAgICAgICAoV2ViQ29yZTo6QXV0aGVudGlj
YXRpb25DaGFsbGVuZ2U6OmF1dGhlbnRpY2F0aW9uU2NoZW1lRnJvbUN1cmxBdXRoKToKKyAgICAg
ICAgKiBwbGF0Zm9ybS9uZXR3b3JrL2N1cmwvQ3VybFJlcXVlc3QuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6Q3VybFJlcXVlc3Q6OnNldEF1dGhlbnRpY2F0aW9uU2NoZW1lKToKKyAgICAgICAgKiBw
bGF0Zm9ybS9uZXR3b3JrL2N1cmwvQ3VybFJlcXVlc3QuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9u
ZXR3b3JrL2N1cmwvUHJvdGVjdGlvblNwYWNlQ3VybC5oOgorICAgICAgICAoV2ViQ29yZTo6UHJv
dGVjdGlvblNwYWNlOjpQcm90ZWN0aW9uU3BhY2UpOgorICAgICAgICAqIHBsYXRmb3JtL25ldHdv
cmsvY3VybC9SZXNvdXJjZUhhbmRsZUN1cmwuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVzb3Vy
Y2VIYW5kbGU6OnN0YXJ0KToKKyAgICAgICAgKFdlYkNvcmU6OlJlc291cmNlSGFuZGxlOjpwbGF0
Zm9ybUxvYWRSZXNvdXJjZVN5bmNocm9ub3VzbHkpOgorICAgICAgICAqIHBsYXRmb3JtL25ldHdv
cmsvbWFjL1Jlc291cmNlSGFuZGxlTWFjLm1tOgorICAgICAgICAoV2ViQ29yZTo6UmVzb3VyY2VI
YW5kbGU6OnJlY2VpdmVkQ3JlZGVudGlhbCk6CisgICAgICAgICogcGxhdGZvcm0vbmV0d29yay9z
b3VwL0F1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlU291cC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpw
cm90ZWN0aW9uU3BhY2VTZXJ2ZXJUeXBlRnJvbVVSTCk6CisgICAgICAgIChXZWJDb3JlOjpwcm90
ZWN0aW9uU3BhY2VGcm9tU291cEF1dGhBbmRVUkwpOgorICAgICAgICAoV2ViQ29yZTo6cHJvdGVj
dGlvblNwYWNlRm9yQ2xpZW50Q2VydGlmaWNhdGUpOgorICAgICAgICAoV2ViQ29yZTo6cHJvdGVj
dGlvblNwYWNlRm9yQ2xpZW50Q2VydGlmaWNhdGVQYXNzd29yZCk6CisgICAgICAgICogcGxhdGZv
cm0vbmV0d29yay9zb3VwL05ldHdvcmtTdG9yYWdlU2Vzc2lvblNvdXAuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6c2NoZW1lRnJvbVByb3RlY3Rpb25TcGFjZVNlcnZlclR5cGUpOgorICAgICAgICAo
V2ViQ29yZTo6YXV0aFR5cGVGcm9tUHJvdGVjdGlvblNwYWNlQXV0aGVudGljYXRpb25TY2hlbWUp
OgorCiAyMDIxLTEyLTE3ICBBbGFuIEJ1anRhcyAgPHphbGFuQGFwcGxlLmNvbT4KIAogICAgICAg
ICBbTEZDXVtJRkNdIEFkanVzdCB0aGUgYm94IGdlb21ldHJ5IGZvciBhdG9taWMvZ2VuZXJpYyBp
bmxpbmUgbGV2ZWwgYm94ZXMgaW4gYmlkaSBjb250ZW50CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDNkMWQ1ZDNlNDM5
YmRjNTBmZTg2NTI3YzYzOWE1NzQ3ZmNjNTQyYmQuLjY3YTMxYzU3NWIxMzllZGQ1OGQzNzIwYWY4
OTM5MDc5ZWMzNjhjYzYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBi
L1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNDMgQEAKKzIwMjEtMTItMTcgIENo
cmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KKworICAgICAgICBDb252ZXJ0IFByb3RlY3Rp
b25TcGFjZSBlbnVtcyBpbnRvIGVudW0gY2xhc3NlcworICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjM0NDU1CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9OZXR3b3JrQ09SU1ByZWZs
aWdodENoZWNrZXIuY3BwOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrQ09SU1ByZWZsaWdodENo
ZWNrZXI6OmRpZFJlY2VpdmVDaGFsbGVuZ2UpOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL05l
dHdvcmtMb2FkLmNwcDoKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya0xvYWQ6OmRpZFJlY2VpdmVD
aGFsbGVuZ2UpOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL1BpbmdMb2FkLmNwcDoKKyAgICAg
ICAgKFdlYktpdDo6UGluZ0xvYWQ6OmRpZFJlY2VpdmVDaGFsbGVuZ2UpOgorICAgICAgICAqIE5l
dHdvcmtQcm9jZXNzL2NvY29hL05ldHdvcmtTZXNzaW9uQ29jb2EubW06CisgICAgICAgIChXZWJL
aXQ6Ok5ldHdvcmtTZXNzaW9uQ29jb2E6OmFsbG93c1NwZWNpZmljSFRUUFNDZXJ0aWZpY2F0ZUZv
ckhvc3QpOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL2N1cmwvTmV0d29ya0RhdGFUYXNrQ3Vy
bC5jcHA6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtEYXRhVGFza0N1cmw6Ok5ldHdvcmtEYXRh
VGFza0N1cmwpOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrRGF0YVRhc2tDdXJsOjp3aWxsUGVy
Zm9ybUhUVFBSZWRpcmVjdGlvbik6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtEYXRhVGFza0N1
cmw6OnJlc3RhcnRXaXRoQ3JlZGVudGlhbCk6CisgICAgICAgICogTmV0d29ya1Byb2Nlc3Mvc291
cC9OZXR3b3JrRGF0YVRhc2tTb3VwLmNwcDoKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya0RhdGFU
YXNrU291cDo6Y29tcGxldGVBdXRoZW50aWNhdGlvbik6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdv
cmtEYXRhVGFza1NvdXA6OmNhbmNlbEF1dGhlbnRpY2F0aW9uKToKKyAgICAgICAgKiBTaGFyZWQv
QXV0aGVudGljYXRpb24vQXV0aGVudGljYXRpb25NYW5hZ2VyLmNwcDoKKyAgICAgICAgKFdlYktp
dDo6Y2FuQ29hbGVzY2VDaGFsbGVuZ2UpOgorICAgICAgICAqIFNoYXJlZC9XZWJDb3JlQXJndW1l
bnRDb2RlcnMuY3BwOgorICAgICAgICAoSVBDOjpBcmd1bWVudENvZGVyPFByb3RlY3Rpb25TcGFj
ZT46OmRlY29kZSk6CisgICAgICAgICogU2hhcmVkL2N1cmwvV2ViQ29yZUFyZ3VtZW50Q29kZXJz
Q3VybC5jcHA6CisgICAgICAgIChJUEM6OkFyZ3VtZW50Q29kZXI8UHJvdGVjdGlvblNwYWNlPjo6
ZGVjb2RlUGxhdGZvcm1EYXRhKToKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0MvV0tBUElDYXN0
Lmg6CisgICAgICAgIChXZWJLaXQ6OnRvQVBJKToKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL2ds
aWIvV2ViS2l0QXV0aGVudGljYXRpb25SZXF1ZXN0LmNwcDoKKyAgICAgICAgKHdlYmtpdF9hdXRo
ZW50aWNhdGlvbl9yZXF1ZXN0X2dldF9zZWN1cml0eV9vcmlnaW4pOgorICAgICAgICAqIFVJUHJv
Y2Vzcy9BdXRoZW50aWNhdGlvbi9XZWJQcm90ZWN0aW9uU3BhY2UuY3BwOgorICAgICAgICAoV2Vi
S2l0OjpXZWJQcm90ZWN0aW9uU3BhY2U6OnNlcnZlclR5cGUgY29uc3QpOgorICAgICAgICAoV2Vi
S2l0OjpXZWJQcm90ZWN0aW9uU3BhY2U6OmF1dGhlbnRpY2F0aW9uU2NoZW1lIGNvbnN0KToKKyAg
ICAgICAgKiBVSVByb2Nlc3MvQXV0aGVudGljYXRpb24vV2ViUHJvdGVjdGlvblNwYWNlLmg6Cisg
ICAgICAgICogVUlQcm9jZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nlc3NQcm94eS5jcHA6CisgICAg
ICAgIChXZWJLaXQ6Ok5ldHdvcmtQcm9jZXNzUHJveHk6OnByb2Nlc3NBdXRoZW50aWNhdGlvbkNo
YWxsZW5nZSk6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtQcm9jZXNzUHJveHk6OmRpZFJlY2Vp
dmVBdXRoZW50aWNhdGlvbkNoYWxsZW5nZSk6CisKIDIwMjEtMTItMTcgIENocmlzIER1bWV6ICA8
Y2R1bWV6QGFwcGxlLmNvbT4KIAogICAgICAgICBNb3ZlIENhY2hlU3RvcmFnZSBlbmdpbmVzIGZy
b20gTmV0d29ya1Byb2Nlc3MgdG8gTmV0d29ya1Nlc3Npb24KZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXRMZWdhY3kvbWFjL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL0NoYW5n
ZUxvZwppbmRleCBhOTBlNzE3Y2E0ZWZkY2M4ZWFmM2JjY2QwYzE2MzdjZTlhYmMwNzY4Li42NTI2
ODQ4Njk5NmJkNjYwZmRhYjYzOGY4NDI4NzJiZmIwYjNkMDI3IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0TGVnYWN5L21hYy9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMv
Q2hhbmdlTG9nCkBAIC0xLDMgKzEsMTMgQEAKKzIwMjEtMTItMTcgIENocmlzIER1bWV6ICA8Y2R1
bWV6QGFwcGxlLmNvbT4KKworICAgICAgICBDb252ZXJ0IFByb3RlY3Rpb25TcGFjZSBlbnVtcyBp
bnRvIGVudW0gY2xhc3NlcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9MjM0NDU1CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisK
KyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5tbToKKyAgICAg
ICAgKFdlYkZyYW1lTG9hZGVyQ2xpZW50OjpjYW5BdXRoZW50aWNhdGVBZ2FpbnN0UHJvdGVjdGlv
blNwYWNlKToKKwogMjAyMS0xMi0xNiAgQWxleCBDaHJpc3RlbnNlbiAgPGFjaHJpc3RlbnNlbkB3
ZWJraXQub3JnPgogCiAgICAgICAgIEZpeCBpT1MgZGVidWcgYnVpbGQKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXRMZWdhY3kvd2luL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvd2lu
L0NoYW5nZUxvZwppbmRleCBjNDI3ZjM4MTE3MjllMmU3MDI2NWM4OTMxMTcwYjcyNjVkOTllNTQx
Li5hMTQ0ODIyOGNiZTEzY2EyZmMwM2RhYjE3ODMzOTIxOTkxNzc4OGM4IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdExlZ2Fj
eS93aW4vQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTYgQEAKKzIwMjEtMTItMTcgIENocmlzIER1bWV6
ICA8Y2R1bWV6QGFwcGxlLmNvbT4KKworICAgICAgICBDb252ZXJ0IFByb3RlY3Rpb25TcGFjZSBl
bnVtcyBpbnRvIGVudW0gY2xhc3NlcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9MjM0NDU1CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCisKKyAgICAgICAgKiBXZWJVUkxQcm90ZWN0aW9uU3BhY2UuY3BwOgorICAgICAgICAoV2Vi
VVJMUHJvdGVjdGlvblNwYWNlOjphdXRoZW50aWNhdGlvbk1ldGhvZCk6CisgICAgICAgIChjb3Jl
U2NoZW1lKToKKyAgICAgICAgKFdlYlVSTFByb3RlY3Rpb25TcGFjZTo6aW5pdFdpdGhIb3N0KToK
KyAgICAgICAgKFdlYlVSTFByb3RlY3Rpb25TcGFjZTo6aW5pdFdpdGhQcm94eUhvc3QpOgorCiAy
MDIxLTEyLTE0ICBKZWFuLVl2ZXMgQXZlbmFyZCAgPGp5YUBhcHBsZS5jb20+CiAKICAgICAgICAg
UmVuYW1lIFNoYXJlZEJ1ZmZlciBjbGFzc2VzLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vbmV0d29yay9DcmVkZW50aWFsU3RvcmFnZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9uZXR3b3JrL0NyZWRlbnRpYWxTdG9yYWdlLmNwcAppbmRleCAyNmEzYjllNjkzYTIx
ZmU4ODg1MTQzODdiYzFlMGQwMTIzZWI4YzViLi40ZWU3YmQxMGZjYzJjZDAzOTU3NTliMzZlMDQ1
NjZmMDJhYjFhNGM3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3Jr
L0NyZWRlbnRpYWxTdG9yYWdlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3
b3JrL0NyZWRlbnRpYWxTdG9yYWdlLmNwcApAQCAtNjAsMTYgKzYwLDE2IEBAIHN0YXRpYyBTdHJp
bmcgcHJvdGVjdGlvblNwYWNlTWFwS2V5RnJvbVVSTChjb25zdCBVUkwmIHVybCkKIAogdm9pZCBD
cmVkZW50aWFsU3RvcmFnZTo6c2V0KGNvbnN0IFN0cmluZyYgcGFydGl0aW9uTmFtZSwgY29uc3Qg
Q3JlZGVudGlhbCYgY3JlZGVudGlhbCwgY29uc3QgUHJvdGVjdGlvblNwYWNlJiBwcm90ZWN0aW9u
U3BhY2UsIGNvbnN0IFVSTCYgdXJsKQogewotICAgIEFTU0VSVChwcm90ZWN0aW9uU3BhY2UuaXNQ
cm94eSgpIHx8IHByb3RlY3Rpb25TcGFjZS5hdXRoZW50aWNhdGlvblNjaGVtZSgpID09IFByb3Rl
Y3Rpb25TcGFjZUF1dGhlbnRpY2F0aW9uU2NoZW1lQ2xpZW50Q2VydGlmaWNhdGVSZXF1ZXN0ZWQg
fHwgdXJsLnByb3RvY29sSXNJbkhUVFBGYW1pbHkoKSk7Ci0gICAgQVNTRVJUKHByb3RlY3Rpb25T
cGFjZS5pc1Byb3h5KCkgfHwgcHJvdGVjdGlvblNwYWNlLmF1dGhlbnRpY2F0aW9uU2NoZW1lKCkg
PT0gUHJvdGVjdGlvblNwYWNlQXV0aGVudGljYXRpb25TY2hlbWVDbGllbnRDZXJ0aWZpY2F0ZVJl
cXVlc3RlZCB8fCB1cmwuaXNWYWxpZCgpKTsKKyAgICBBU1NFUlQocHJvdGVjdGlvblNwYWNlLmlz
UHJveHkoKSB8fCBwcm90ZWN0aW9uU3BhY2UuYXV0aGVudGljYXRpb25TY2hlbWUoKSA9PSBQcm90
ZWN0aW9uU3BhY2U6OkF1dGhlbnRpY2F0aW9uU2NoZW1lOjpDbGllbnRDZXJ0aWZpY2F0ZVJlcXVl
c3RlZCB8fCB1cmwucHJvdG9jb2xJc0luSFRUUEZhbWlseSgpKTsKKyAgICBBU1NFUlQocHJvdGVj
dGlvblNwYWNlLmlzUHJveHkoKSB8fCBwcm90ZWN0aW9uU3BhY2UuYXV0aGVudGljYXRpb25TY2hl
bWUoKSA9PSBQcm90ZWN0aW9uU3BhY2U6OkF1dGhlbnRpY2F0aW9uU2NoZW1lOjpDbGllbnRDZXJ0
aWZpY2F0ZVJlcXVlc3RlZCB8fCB1cmwuaXNWYWxpZCgpKTsKIAogICAgIG1fcHJvdGVjdGlvblNw
YWNlVG9DcmVkZW50aWFsTWFwLnNldChzdGQ6Om1ha2VfcGFpcihwYXJ0aXRpb25OYW1lLCBwcm90
ZWN0aW9uU3BhY2UpLCBjcmVkZW50aWFsKTsKIAotICAgIGlmICghcHJvdGVjdGlvblNwYWNlLmlz
UHJveHkoKSAmJiBwcm90ZWN0aW9uU3BhY2UuYXV0aGVudGljYXRpb25TY2hlbWUoKSAhPSBQcm90
ZWN0aW9uU3BhY2VBdXRoZW50aWNhdGlvblNjaGVtZUNsaWVudENlcnRpZmljYXRlUmVxdWVzdGVk
KSB7CisgICAgaWYgKCFwcm90ZWN0aW9uU3BhY2UuaXNQcm94eSgpICYmIHByb3RlY3Rpb25TcGFj
ZS5hdXRoZW50aWNhdGlvblNjaGVtZSgpICE9IFByb3RlY3Rpb25TcGFjZTo6QXV0aGVudGljYXRp
b25TY2hlbWU6OkNsaWVudENlcnRpZmljYXRlUmVxdWVzdGVkKSB7CiAgICAgICAgIG1fb3JpZ2lu
c1dpdGhDcmVkZW50aWFscy5hZGQob3JpZ2luU3RyaW5nRnJvbVVSTCh1cmwpKTsKIAotICAgICAg
ICBQcm90ZWN0aW9uU3BhY2VBdXRoZW50aWNhdGlvblNjaGVtZSBzY2hlbWUgPSBwcm90ZWN0aW9u
U3BhY2UuYXV0aGVudGljYXRpb25TY2hlbWUoKTsKLSAgICAgICAgaWYgKHNjaGVtZSA9PSBQcm90
ZWN0aW9uU3BhY2VBdXRoZW50aWNhdGlvblNjaGVtZUhUVFBCYXNpYyB8fCBzY2hlbWUgPT0gUHJv
dGVjdGlvblNwYWNlQXV0aGVudGljYXRpb25TY2hlbWVEZWZhdWx0KSB7CisgICAgICAgIGF1dG8g
c2NoZW1lID0gcHJvdGVjdGlvblNwYWNlLmF1dGhlbnRpY2F0aW9uU2NoZW1lKCk7CisgICAgICAg
IGlmIChzY2hlbWUgPT0gUHJvdGVjdGlvblNwYWNlOjpBdXRoZW50aWNhdGlvblNjaGVtZTo6SFRU
UEJhc2ljIHx8IHNjaGVtZSA9PSBQcm90ZWN0aW9uU3BhY2U6OkF1dGhlbnRpY2F0aW9uU2NoZW1l
OjpEZWZhdWx0KSB7CiAgICAgICAgICAgICAvLyBUaGUgbWFwIGNhbiBjb250YWluIGJvdGggYSBw
YXRoIGFuZCBpdHMgc3VicGF0aCAtIHdoaWxlIHJlZHVuZGFudCwgdGhpcyBtYWtlcyBsb29rdXBz
IGZhc3Rlci4KICAgICAgICAgICAgIG1fcGF0aFRvRGVmYXVsdFByb3RlY3Rpb25TcGFjZU1hcC5z
ZXQocHJvdGVjdGlvblNwYWNlTWFwS2V5RnJvbVVSTCh1cmwpLCBwcm90ZWN0aW9uU3BhY2UpOwog
ICAgICAgICB9CkBAIC05NCw4ICs5NCw4IEBAIHZvaWQgQ3JlZGVudGlhbFN0b3JhZ2U6OnJlbW92
ZUNyZWRlbnRpYWxzV2l0aE9yaWdpbihjb25zdCBTZWN1cml0eU9yaWdpbkRhdGEmIG9yCiAgICAg
ICAgIGlmIChwcm90ZWN0aW9uU3BhY2UuaG9zdCgpID09IG9yaWdpbi5ob3N0CiAgICAgICAgICAg
ICAmJiAoKG9yaWdpbi5wb3J0ICYmIHByb3RlY3Rpb25TcGFjZS5wb3J0KCkgPT0gKm9yaWdpbi5w
b3J0KQogICAgICAgICAgICAgICAgIHx8ICghb3JpZ2luLnBvcnQgJiYgcHJvdGVjdGlvblNwYWNl
LnBvcnQoKSA9PSA4MCkpCi0gICAgICAgICAgICAmJiAoKHByb3RlY3Rpb25TcGFjZS5zZXJ2ZXJU
eXBlKCkgPT0gUHJvdGVjdGlvblNwYWNlU2VydmVySFRUUCAmJiBvcmlnaW4ucHJvdG9jb2wgPT0g
Imh0dHAiX3MpCi0gICAgICAgICAgICAgICAgfHwgKHByb3RlY3Rpb25TcGFjZS5zZXJ2ZXJUeXBl
KCkgPT0gUHJvdGVjdGlvblNwYWNlU2VydmVySFRUUFMgJiYgb3JpZ2luLnByb3RvY29sID09ICJo
dHRwcyJfcykpKQorICAgICAgICAgICAgJiYgKChwcm90ZWN0aW9uU3BhY2Uuc2VydmVyVHlwZSgp
ID09IFByb3RlY3Rpb25TcGFjZTo6U2VydmVyVHlwZTo6SFRUUCAmJiBvcmlnaW4ucHJvdG9jb2wg
PT0gImh0dHAiX3MpCisgICAgICAgICAgICAgICAgfHwgKHByb3RlY3Rpb25TcGFjZS5zZXJ2ZXJU
eXBlKCkgPT0gUHJvdGVjdGlvblNwYWNlOjpTZXJ2ZXJUeXBlOjpIVFRQUyAmJiBvcmlnaW4ucHJv
dG9jb2wgPT0gImh0dHBzIl9zKSkpCiAgICAgICAgICAgICBrZXlzVG9SZW1vdmUuYXBwZW5kKGtl
eVZhbHVlUGFpci5rZXkpOwogICAgIH0KICAgICBmb3IgKGF1dG8mIGtleSA6IGtleXNUb1JlbW92
ZSkKQEAgLTExMSwxNiArMTExLDE2IEBAIEhhc2hTZXQ8U2VjdXJpdHlPcmlnaW5EYXRhPiBDcmVk
ZW50aWFsU3RvcmFnZTo6b3JpZ2luc1dpdGhDcmVkZW50aWFscygpIGNvbnN0CiAgICAgICAgICAg
ICBjb250aW51ZTsKICAgICAgICAgU3RyaW5nIHByb3RvY29sOwogICAgICAgICBzd2l0Y2ggKHBy
b3RlY3Rpb25TcGFjZS5zZXJ2ZXJUeXBlKCkpIHsKLSAgICAgICAgY2FzZSBQcm90ZWN0aW9uU3Bh
Y2VTZXJ2ZXJIVFRQOgorICAgICAgICBjYXNlIFByb3RlY3Rpb25TcGFjZTo6U2VydmVyVHlwZTo6
SFRUUDoKICAgICAgICAgICAgIHByb3RvY29sID0gImh0dHAiX3M7CiAgICAgICAgICAgICBicmVh
azsKLSAgICAgICAgY2FzZSBQcm90ZWN0aW9uU3BhY2VTZXJ2ZXJIVFRQUzoKKyAgICAgICAgY2Fz
ZSBQcm90ZWN0aW9uU3BhY2U6OlNlcnZlclR5cGU6OkhUVFBTOgogICAgICAgICAgICAgcHJvdG9j
b2wgPSAiaHR0cHMiX3M7CiAgICAgICAgICAgICBicmVhazsKLSAgICAgICAgY2FzZSBQcm90ZWN0
aW9uU3BhY2VTZXJ2ZXJGVFA6CisgICAgICAgIGNhc2UgUHJvdGVjdGlvblNwYWNlOjpTZXJ2ZXJU
eXBlOjpGVFA6CiAgICAgICAgICAgICBwcm90b2NvbCA9ICJmdHAiX3M7CiAgICAgICAgICAgICBi
cmVhazsKLSAgICAgICAgY2FzZSBQcm90ZWN0aW9uU3BhY2VTZXJ2ZXJGVFBTOgorICAgICAgICBj
YXNlIFByb3RlY3Rpb25TcGFjZTo6U2VydmVyVHlwZTo6RlRQUzoKICAgICAgICAgICAgIHByb3Rv
Y29sID0gImZ0cHMiX3M7CiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgZGVmYXVsdDoKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvUHJvdGVjdGlvblNwYWNl
LmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL1Byb3RlY3Rpb25TcGFjZS5oCmlu
ZGV4IGE1Y2UzYmJhMTUzNTdjZmEwYmE4ZDI3OWYzNjYwN2U2NTE3YmMyN2IuLjNkODk2ZjBmM2Rm
MmQzMTE1Y2RmYjU4NjQyNDUzNzMwOTYwNWE4NjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL25ldHdvcmsvUHJvdGVjdGlvblNwYWNlLmgKKysrIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vbmV0d29yay9Qcm90ZWN0aW9uU3BhY2UuaApAQCAtNDAsNyArNDAsNyBAQCBuYW1l
c3BhY2UgV2ViQ29yZSB7CiBjbGFzcyBQcm90ZWN0aW9uU3BhY2UgOiBwdWJsaWMgUHJvdGVjdGlv
blNwYWNlQmFzZSB7CiBwdWJsaWM6CiAgICAgUHJvdGVjdGlvblNwYWNlKCkgOiBQcm90ZWN0aW9u
U3BhY2VCYXNlKCkgeyB9Ci0gICAgUHJvdGVjdGlvblNwYWNlKGNvbnN0IFN0cmluZyYgaG9zdCwg
aW50IHBvcnQsIFByb3RlY3Rpb25TcGFjZVNlcnZlclR5cGUgc2VydmVyVHlwZSwgY29uc3QgU3Ry
aW5nJiByZWFsbSwgUHJvdGVjdGlvblNwYWNlQXV0aGVudGljYXRpb25TY2hlbWUgYXV0aGVudGlj
YXRpb25TY2hlbWUpCisgICAgUHJvdGVjdGlvblNwYWNlKGNvbnN0IFN0cmluZyYgaG9zdCwgaW50
IHBvcnQsIFNlcnZlclR5cGUgc2VydmVyVHlwZSwgY29uc3QgU3RyaW5nJiByZWFsbSwgQXV0aGVu
dGljYXRpb25TY2hlbWUgYXV0aGVudGljYXRpb25TY2hlbWUpCiAgICAgICAgIDogUHJvdGVjdGlv
blNwYWNlQmFzZShob3N0LCBwb3J0LCBzZXJ2ZXJUeXBlLCByZWFsbSwgYXV0aGVudGljYXRpb25T
Y2hlbWUpCiAgICAgewogICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L25ldHdvcmsvUHJvdGVjdGlvblNwYWNlQmFzZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9uZXR3b3JrL1Byb3RlY3Rpb25TcGFjZUJhc2UuY3BwCmluZGV4IDc5NzVmOWFjZDc1MjI4MTM0
MzIzOTdiMTY4M2Q4NzA1NDUzM2JlMmMuLjEyNjgyNDA4Zjk3ZTBkMmNkNWY5NDllZGE3ZGYwNWZk
NzRiNTkwNjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvUHJv
dGVjdGlvblNwYWNlQmFzZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29y
ay9Qcm90ZWN0aW9uU3BhY2VCYXNlLmNwcApAQCAtMzYsNyArMzYsNyBAQCBuYW1lc3BhY2UgV2Vi
Q29yZSB7CiAgCiAvLyBOZWVkIHRvIGVuZm9yY2UgZW1wdHksIG5vbi1udWxsIHN0cmluZ3MgZHVl
IHRvIHRoZSBwaWNraW5lc3Mgb2YgdGhlIFN0cmluZyA9PSBTdHJpbmcgb3BlcmF0b3IKIC8vIGNv
bWJpbmVkIHdpdGggdGhlIHNlbWFudGljcyBvZiB0aGUgU3RyaW5nKE5TU3RyaW5nKikgY29uc3Ry
dWN0b3IKLVByb3RlY3Rpb25TcGFjZUJhc2U6OlByb3RlY3Rpb25TcGFjZUJhc2UoY29uc3QgU3Ry
aW5nJiBob3N0LCBpbnQgcG9ydCwgUHJvdGVjdGlvblNwYWNlU2VydmVyVHlwZSBzZXJ2ZXJUeXBl
LCBjb25zdCBTdHJpbmcmIHJlYWxtLCBQcm90ZWN0aW9uU3BhY2VBdXRoZW50aWNhdGlvblNjaGVt
ZSBhdXRoZW50aWNhdGlvblNjaGVtZSkKK1Byb3RlY3Rpb25TcGFjZUJhc2U6OlByb3RlY3Rpb25T
cGFjZUJhc2UoY29uc3QgU3RyaW5nJiBob3N0LCBpbnQgcG9ydCwgU2VydmVyVHlwZSBzZXJ2ZXJU
eXBlLCBjb25zdCBTdHJpbmcmIHJlYWxtLCBBdXRoZW50aWNhdGlvblNjaGVtZSBhdXRoZW50aWNh
dGlvblNjaGVtZSkKICAgICA6IG1faG9zdChob3N0Lmxlbmd0aCgpID8gaG9zdCA6IGVtcHR5U3Ry
aW5nKCkpCiAgICAgLCBtX3JlYWxtKHJlYWxtLmxlbmd0aCgpID8gcmVhbG0gOiBlbXB0eVN0cmlu
ZygpKQogICAgICwgbV9wb3J0KHBvcnQpCkBAIC00NywzNyArNDcsMzcgQEAgUHJvdGVjdGlvblNw
YWNlQmFzZTo6UHJvdGVjdGlvblNwYWNlQmFzZShjb25zdCBTdHJpbmcmIGhvc3QsIGludCBwb3J0
LCBQcm90ZWN0aW8KIAogYm9vbCBQcm90ZWN0aW9uU3BhY2VCYXNlOjppc1Byb3h5KCkgY29uc3QK
IHsKLSAgICByZXR1cm4gKG1fc2VydmVyVHlwZSA9PSBQcm90ZWN0aW9uU3BhY2VQcm94eUhUVFAg
fHwKLSAgICAgICAgICAgIG1fc2VydmVyVHlwZSA9PSBQcm90ZWN0aW9uU3BhY2VQcm94eUhUVFBT
IHx8Ci0gICAgICAgICAgICBtX3NlcnZlclR5cGUgPT0gUHJvdGVjdGlvblNwYWNlUHJveHlGVFAg
fHwKLSAgICAgICAgICAgIG1fc2VydmVyVHlwZSA9PSBQcm90ZWN0aW9uU3BhY2VQcm94eVNPQ0tT
KTsKKyAgICByZXR1cm4gbV9zZXJ2ZXJUeXBlID09IFNlcnZlclR5cGU6OlByb3h5SFRUUAorICAg
ICAgICB8fCBtX3NlcnZlclR5cGUgPT0gU2VydmVyVHlwZTo6UHJveHlIVFRQUworICAgICAgICB8
fCBtX3NlcnZlclR5cGUgPT0gU2VydmVyVHlwZTo6UHJveHlGVFAKKyAgICAgICAgfHwgbV9zZXJ2
ZXJUeXBlID09IFNlcnZlclR5cGU6OlByb3h5U09DS1M7CiB9CiAKIGJvb2wgUHJvdGVjdGlvblNw
YWNlQmFzZTo6cmVjZWl2ZXNDcmVkZW50aWFsU2VjdXJlbHkoKSBjb25zdAogewotICAgIHJldHVy
biAobV9zZXJ2ZXJUeXBlID09IFByb3RlY3Rpb25TcGFjZVNlcnZlckhUVFBTIHx8Ci0gICAgICAg
ICAgICBtX3NlcnZlclR5cGUgPT0gUHJvdGVjdGlvblNwYWNlU2VydmVyRlRQUyB8fCAKLSAgICAg
ICAgICAgIG1fc2VydmVyVHlwZSA9PSBQcm90ZWN0aW9uU3BhY2VQcm94eUhUVFBTIHx8IAotICAg
ICAgICAgICAgbV9hdXRoZW50aWNhdGlvblNjaGVtZSA9PSBQcm90ZWN0aW9uU3BhY2VBdXRoZW50
aWNhdGlvblNjaGVtZUhUVFBEaWdlc3QpOyAKKyAgICByZXR1cm4gbV9zZXJ2ZXJUeXBlID09IFNl
cnZlclR5cGU6OkhUVFBTCisgICAgICAgIHx8IG1fc2VydmVyVHlwZSA9PSBTZXJ2ZXJUeXBlOjpG
VFBTCisgICAgICAgIHx8IG1fc2VydmVyVHlwZSA9PSBTZXJ2ZXJUeXBlOjpQcm94eUhUVFBTCisg
ICAgICAgIHx8IG1fYXV0aGVudGljYXRpb25TY2hlbWUgPT0gQXV0aGVudGljYXRpb25TY2hlbWU6
OkhUVFBEaWdlc3Q7CiB9CiAKIGJvb2wgUHJvdGVjdGlvblNwYWNlQmFzZTo6aXNQYXNzd29yZEJh
c2VkKCkgY29uc3QKIHsKICAgICBzd2l0Y2ggKG1fYXV0aGVudGljYXRpb25TY2hlbWUpIHsKLSAg
ICBjYXNlIFByb3RlY3Rpb25TcGFjZUF1dGhlbnRpY2F0aW9uU2NoZW1lRGVmYXVsdDoKLSAgICBj
YXNlIFByb3RlY3Rpb25TcGFjZUF1dGhlbnRpY2F0aW9uU2NoZW1lSFRUUEJhc2ljOgotICAgIGNh
c2UgUHJvdGVjdGlvblNwYWNlQXV0aGVudGljYXRpb25TY2hlbWVIVFRQRGlnZXN0OgotICAgIGNh
c2UgUHJvdGVjdGlvblNwYWNlQXV0aGVudGljYXRpb25TY2hlbWVIVE1MRm9ybToKLSAgICBjYXNl
IFByb3RlY3Rpb25TcGFjZUF1dGhlbnRpY2F0aW9uU2NoZW1lTlRMTToKLSAgICBjYXNlIFByb3Rl
Y3Rpb25TcGFjZUF1dGhlbnRpY2F0aW9uU2NoZW1lTmVnb3RpYXRlOgotICAgIGNhc2UgUHJvdGVj
dGlvblNwYWNlQXV0aGVudGljYXRpb25TY2hlbWVPQXV0aDoKKyAgICBjYXNlIEF1dGhlbnRpY2F0
aW9uU2NoZW1lOjpEZWZhdWx0OgorICAgIGNhc2UgQXV0aGVudGljYXRpb25TY2hlbWU6OkhUVFBC
YXNpYzoKKyAgICBjYXNlIEF1dGhlbnRpY2F0aW9uU2NoZW1lOjpIVFRQRGlnZXN0OgorICAgIGNh
c2UgQXV0aGVudGljYXRpb25TY2hlbWU6OkhUTUxGb3JtOgorICAgIGNhc2UgQXV0aGVudGljYXRp
b25TY2hlbWU6Ok5UTE06CisgICAgY2FzZSBBdXRoZW50aWNhdGlvblNjaGVtZTo6TmVnb3RpYXRl
OgorICAgIGNhc2UgQXV0aGVudGljYXRpb25TY2hlbWU6Ok9BdXRoOgogI2lmIFVTRShHTElCKQot
ICAgIGNhc2UgUHJvdGVjdGlvblNwYWNlQXV0aGVudGljYXRpb25TY2hlbWVDbGllbnRDZXJ0aWZp
Y2F0ZVBJTlJlcXVlc3RlZDoKKyAgICBjYXNlIEF1dGhlbnRpY2F0aW9uU2NoZW1lOjpDbGllbnRD
ZXJ0aWZpY2F0ZVBJTlJlcXVlc3RlZDoKICNlbmRpZgogICAgICAgICByZXR1cm4gdHJ1ZTsKLSAg
ICBjYXNlIFByb3RlY3Rpb25TcGFjZUF1dGhlbnRpY2F0aW9uU2NoZW1lQ2xpZW50Q2VydGlmaWNh
dGVSZXF1ZXN0ZWQ6Ci0gICAgY2FzZSBQcm90ZWN0aW9uU3BhY2VBdXRoZW50aWNhdGlvblNjaGVt
ZVNlcnZlclRydXN0RXZhbHVhdGlvblJlcXVlc3RlZDoKLSAgICBjYXNlIFByb3RlY3Rpb25TcGFj
ZUF1dGhlbnRpY2F0aW9uU2NoZW1lVW5rbm93bjoKKyAgICBjYXNlIEF1dGhlbnRpY2F0aW9uU2No
ZW1lOjpDbGllbnRDZXJ0aWZpY2F0ZVJlcXVlc3RlZDoKKyAgICBjYXNlIEF1dGhlbnRpY2F0aW9u
U2NoZW1lOjpTZXJ2ZXJUcnVzdEV2YWx1YXRpb25SZXF1ZXN0ZWQ6CisgICAgY2FzZSBBdXRoZW50
aWNhdGlvblNjaGVtZTo6VW5rbm93bjoKICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgIH0KIApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9Qcm90ZWN0aW9uU3Bh
Y2VCYXNlLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL1Byb3RlY3Rpb25TcGFj
ZUJhc2UuaAppbmRleCA4YmU0MWQ0NzQwN2Y0ZWE0ODIxOWQ5MThjZmE2OTdiMThhODFlMzg2Li5k
MWRlOTZhZTA2MDA1NzRmMDUyNWMwZjRmNWJlOGVhZDZkMmI4YTYyIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL1Byb3RlY3Rpb25TcGFjZUJhc2UuaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL1Byb3RlY3Rpb25TcGFjZUJhc2UuaApAQCAt
MzEsNDUgKzMxLDQ0IEBACiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNzIFByb3RlY3Rpb25T
cGFjZTsKLQotZW51bSBQcm90ZWN0aW9uU3BhY2VTZXJ2ZXJUeXBlIHsKLSAgICBQcm90ZWN0aW9u
U3BhY2VTZXJ2ZXJIVFRQID0gMSwKLSAgICBQcm90ZWN0aW9uU3BhY2VTZXJ2ZXJIVFRQUyA9IDIs
Ci0gICAgUHJvdGVjdGlvblNwYWNlU2VydmVyRlRQID0gMywKLSAgICBQcm90ZWN0aW9uU3BhY2VT
ZXJ2ZXJGVFBTID0gNCwKLSAgICBQcm90ZWN0aW9uU3BhY2VQcm94eUhUVFAgPSA1LAotICAgIFBy
b3RlY3Rpb25TcGFjZVByb3h5SFRUUFMgPSA2LAotICAgIFByb3RlY3Rpb25TcGFjZVByb3h5RlRQ
ID0gNywKLSAgICBQcm90ZWN0aW9uU3BhY2VQcm94eVNPQ0tTID0gOAotfTsKLQotZW51bSBQcm90
ZWN0aW9uU3BhY2VBdXRoZW50aWNhdGlvblNjaGVtZSB7Ci0gICAgUHJvdGVjdGlvblNwYWNlQXV0
aGVudGljYXRpb25TY2hlbWVEZWZhdWx0ID0gMSwKLSAgICBQcm90ZWN0aW9uU3BhY2VBdXRoZW50
aWNhdGlvblNjaGVtZUhUVFBCYXNpYyA9IDIsCi0gICAgUHJvdGVjdGlvblNwYWNlQXV0aGVudGlj
YXRpb25TY2hlbWVIVFRQRGlnZXN0ID0gMywKLSAgICBQcm90ZWN0aW9uU3BhY2VBdXRoZW50aWNh
dGlvblNjaGVtZUhUTUxGb3JtID0gNCwKLSAgICBQcm90ZWN0aW9uU3BhY2VBdXRoZW50aWNhdGlv
blNjaGVtZU5UTE0gPSA1LAotICAgIFByb3RlY3Rpb25TcGFjZUF1dGhlbnRpY2F0aW9uU2NoZW1l
TmVnb3RpYXRlID0gNiwKLSAgICBQcm90ZWN0aW9uU3BhY2VBdXRoZW50aWNhdGlvblNjaGVtZUNs
aWVudENlcnRpZmljYXRlUmVxdWVzdGVkID0gNywKLSAgICBQcm90ZWN0aW9uU3BhY2VBdXRoZW50
aWNhdGlvblNjaGVtZVNlcnZlclRydXN0RXZhbHVhdGlvblJlcXVlc3RlZCA9IDgsCi0gICAgUHJv
dGVjdGlvblNwYWNlQXV0aGVudGljYXRpb25TY2hlbWVPQXV0aCA9IDksCi0jaWYgVVNFKEdMSUIp
Ci0gICAgUHJvdGVjdGlvblNwYWNlQXV0aGVudGljYXRpb25TY2hlbWVDbGllbnRDZXJ0aWZpY2F0
ZVBJTlJlcXVlc3RlZCA9IDEwLAotI2VuZGlmCi0gICAgUHJvdGVjdGlvblNwYWNlQXV0aGVudGlj
YXRpb25TY2hlbWVVbmtub3duID0gMTAwCi19OwogICAKIGNsYXNzIFByb3RlY3Rpb25TcGFjZUJh
c2UgewotCiBwdWJsaWM6CisgICAgZW51bSBjbGFzcyBTZXJ2ZXJUeXBlIDogdWludDhfdCB7Cisg
ICAgICAgIEhUVFAgPSAxLAorICAgICAgICBIVFRQUyA9IDIsCisgICAgICAgIEZUUCA9IDMsCisg
ICAgICAgIEZUUFMgPSA0LAorICAgICAgICBQcm94eUhUVFAgPSA1LAorICAgICAgICBQcm94eUhU
VFBTID0gNiwKKyAgICAgICAgUHJveHlGVFAgPSA3LAorICAgICAgICBQcm94eVNPQ0tTID0gOAor
ICAgIH07CisKKyAgICBlbnVtIGNsYXNzIEF1dGhlbnRpY2F0aW9uU2NoZW1lIDogdWludDhfdCB7
CisgICAgICAgIERlZmF1bHQgPSAxLAorICAgICAgICBIVFRQQmFzaWMgPSAyLAorICAgICAgICBI
VFRQRGlnZXN0ID0gMywKKyAgICAgICAgSFRNTEZvcm0gPSA0LAorICAgICAgICBOVExNID0gNSwK
KyAgICAgICAgTmVnb3RpYXRlID0gNiwKKyAgICAgICAgQ2xpZW50Q2VydGlmaWNhdGVSZXF1ZXN0
ZWQgPSA3LAorICAgICAgICBTZXJ2ZXJUcnVzdEV2YWx1YXRpb25SZXF1ZXN0ZWQgPSA4LAorICAg
ICAgICBPQXV0aCA9IDksCisjaWYgVVNFKEdMSUIpCisgICAgICAgIENsaWVudENlcnRpZmljYXRl
UElOUmVxdWVzdGVkID0gMTAsCisjZW5kaWYKKyAgICAgICAgVW5rbm93biA9IDEwMAorICAgIH07
CisKICAgICBib29sIGlzSGFzaFRhYmxlRGVsZXRlZFZhbHVlKCkgY29uc3QgeyByZXR1cm4gbV9p
c0hhc2hUYWJsZURlbGV0ZWRWYWx1ZTsgfQogICAgIAogICAgIGNvbnN0IFN0cmluZyYgaG9zdCgp
IGNvbnN0IHsgcmV0dXJuIG1faG9zdDsgfQogICAgIGludCBwb3J0KCkgY29uc3QgeyByZXR1cm4g
bV9wb3J0OyB9Ci0gICAgUHJvdGVjdGlvblNwYWNlU2VydmVyVHlwZSBzZXJ2ZXJUeXBlKCkgY29u
c3QgeyByZXR1cm4gbV9zZXJ2ZXJUeXBlOyB9CisgICAgU2VydmVyVHlwZSBzZXJ2ZXJUeXBlKCkg
Y29uc3QgeyByZXR1cm4gbV9zZXJ2ZXJUeXBlOyB9CiAgICAgV0VCQ09SRV9FWFBPUlQgYm9vbCBp
c1Byb3h5KCkgY29uc3Q7CiAgICAgY29uc3QgU3RyaW5nJiByZWFsbSgpIGNvbnN0IHsgcmV0dXJu
IG1fcmVhbG07IH0KLSAgICBQcm90ZWN0aW9uU3BhY2VBdXRoZW50aWNhdGlvblNjaGVtZSBhdXRo
ZW50aWNhdGlvblNjaGVtZSgpIGNvbnN0IHsgcmV0dXJuIG1fYXV0aGVudGljYXRpb25TY2hlbWU7
IH0KKyAgICBBdXRoZW50aWNhdGlvblNjaGVtZSBhdXRoZW50aWNhdGlvblNjaGVtZSgpIGNvbnN0
IHsgcmV0dXJuIG1fYXV0aGVudGljYXRpb25TY2hlbWU7IH0KICAgICAKICAgICBXRUJDT1JFX0VY
UE9SVCBib29sIHJlY2VpdmVzQ3JlZGVudGlhbFNlY3VyZWx5KCkgY29uc3Q7CiAgICAgV0VCQ09S
RV9FWFBPUlQgYm9vbCBpc1Bhc3N3b3JkQmFzZWQoKSBjb25zdDsKQEAgLTgwLDcgKzc5LDcgQEAg
cHVibGljOgogCiBwcm90ZWN0ZWQ6CiAgICAgUHJvdGVjdGlvblNwYWNlQmFzZSgpID0gZGVmYXVs
dDsKLSAgICBXRUJDT1JFX0VYUE9SVCBQcm90ZWN0aW9uU3BhY2VCYXNlKGNvbnN0IFN0cmluZyYg
aG9zdCwgaW50IHBvcnQsIFByb3RlY3Rpb25TcGFjZVNlcnZlclR5cGUsIGNvbnN0IFN0cmluZyYg
cmVhbG0sIFByb3RlY3Rpb25TcGFjZUF1dGhlbnRpY2F0aW9uU2NoZW1lKTsKKyAgICBXRUJDT1JF
X0VYUE9SVCBQcm90ZWN0aW9uU3BhY2VCYXNlKGNvbnN0IFN0cmluZyYgaG9zdCwgaW50IHBvcnQs
IFNlcnZlclR5cGUsIGNvbnN0IFN0cmluZyYgcmVhbG0sIEF1dGhlbnRpY2F0aW9uU2NoZW1lKTsK
IAogICAgIC8vIEhhc2ggdGFibGUgZGVsZXRlZCB2YWx1ZXMsIHdoaWNoIGFyZSBvbmx5IGNvbnN0
cnVjdGVkIGFuZCBuZXZlciBjb3BpZWQgb3IgZGVzdHJveWVkLgogICAgIFByb3RlY3Rpb25TcGFj
ZUJhc2UoV1RGOjpIYXNoVGFibGVEZWxldGVkVmFsdWVUeXBlKSA6IG1faXNIYXNoVGFibGVEZWxl
dGVkVmFsdWUodHJ1ZSkgeyB9CkBAIC05NCw4ICs5Myw4IEBAIHByaXZhdGU6CiAgICAgU3RyaW5n
IG1fcmVhbG0geyBlbXB0eVN0cmluZygpIH07CiAKICAgICBpbnQgbV9wb3J0IHsgMCB9OwotICAg
IFByb3RlY3Rpb25TcGFjZVNlcnZlclR5cGUgbV9zZXJ2ZXJUeXBlIHsgUHJvdGVjdGlvblNwYWNl
U2VydmVySFRUUCB9OwotICAgIFByb3RlY3Rpb25TcGFjZUF1dGhlbnRpY2F0aW9uU2NoZW1lIG1f
YXV0aGVudGljYXRpb25TY2hlbWUgeyBQcm90ZWN0aW9uU3BhY2VBdXRoZW50aWNhdGlvblNjaGVt
ZURlZmF1bHQgfTsKKyAgICBTZXJ2ZXJUeXBlIG1fc2VydmVyVHlwZSB7IFNlcnZlclR5cGU6OkhU
VFAgfTsKKyAgICBBdXRoZW50aWNhdGlvblNjaGVtZSBtX2F1dGhlbnRpY2F0aW9uU2NoZW1lIHsg
QXV0aGVudGljYXRpb25TY2hlbWU6OkRlZmF1bHQgfTsKICAgICBib29sIG1faXNIYXNoVGFibGVE
ZWxldGVkVmFsdWUgeyBmYWxzZSB9OwogfTsKIApAQCAtMTA2LDMzICsxMDUsMzMgQEAgaW5saW5l
IGJvb2wgb3BlcmF0b3IhPShjb25zdCBQcm90ZWN0aW9uU3BhY2UmIGEsIGNvbnN0IFByb3RlY3Rp
b25TcGFjZSYgYikgeyByZXQKIAogbmFtZXNwYWNlIFdURiB7CiAKLXRlbXBsYXRlPD4gc3RydWN0
IEVudW1UcmFpdHM8V2ViQ29yZTo6UHJvdGVjdGlvblNwYWNlQXV0aGVudGljYXRpb25TY2hlbWU+
IHsKK3RlbXBsYXRlPD4gc3RydWN0IEVudW1UcmFpdHM8V2ViQ29yZTo6UHJvdGVjdGlvblNwYWNl
QmFzZTo6QXV0aGVudGljYXRpb25TY2hlbWU+IHsKICAgICB1c2luZyB2YWx1ZXMgPSBFbnVtVmFs
dWVzPAotICAgICAgICBXZWJDb3JlOjpQcm90ZWN0aW9uU3BhY2VBdXRoZW50aWNhdGlvblNjaGVt
ZSwKLSAgICAgICAgV2ViQ29yZTo6UHJvdGVjdGlvblNwYWNlQXV0aGVudGljYXRpb25TY2hlbWU6
OlByb3RlY3Rpb25TcGFjZUF1dGhlbnRpY2F0aW9uU2NoZW1lRGVmYXVsdCwKLSAgICAgICAgV2Vi
Q29yZTo6UHJvdGVjdGlvblNwYWNlQXV0aGVudGljYXRpb25TY2hlbWU6OlByb3RlY3Rpb25TcGFj
ZUF1dGhlbnRpY2F0aW9uU2NoZW1lSFRUUEJhc2ljLAotICAgICAgICBXZWJDb3JlOjpQcm90ZWN0
aW9uU3BhY2VBdXRoZW50aWNhdGlvblNjaGVtZTo6UHJvdGVjdGlvblNwYWNlQXV0aGVudGljYXRp
b25TY2hlbWVIVFRQRGlnZXN0LAotICAgICAgICBXZWJDb3JlOjpQcm90ZWN0aW9uU3BhY2VBdXRo
ZW50aWNhdGlvblNjaGVtZTo6UHJvdGVjdGlvblNwYWNlQXV0aGVudGljYXRpb25TY2hlbWVIVE1M
Rm9ybSwKLSAgICAgICAgV2ViQ29yZTo6UHJvdGVjdGlvblNwYWNlQXV0aGVudGljYXRpb25TY2hl
bWU6OlByb3RlY3Rpb25TcGFjZUF1dGhlbnRpY2F0aW9uU2NoZW1lTlRMTSwKLSAgICAgICAgV2Vi
Q29yZTo6UHJvdGVjdGlvblNwYWNlQXV0aGVudGljYXRpb25TY2hlbWU6OlByb3RlY3Rpb25TcGFj
ZUF1dGhlbnRpY2F0aW9uU2NoZW1lTmVnb3RpYXRlLAotICAgICAgICBXZWJDb3JlOjpQcm90ZWN0
aW9uU3BhY2VBdXRoZW50aWNhdGlvblNjaGVtZTo6UHJvdGVjdGlvblNwYWNlQXV0aGVudGljYXRp
b25TY2hlbWVDbGllbnRDZXJ0aWZpY2F0ZVJlcXVlc3RlZCwKLSAgICAgICAgV2ViQ29yZTo6UHJv
dGVjdGlvblNwYWNlQXV0aGVudGljYXRpb25TY2hlbWU6OlByb3RlY3Rpb25TcGFjZUF1dGhlbnRp
Y2F0aW9uU2NoZW1lU2VydmVyVHJ1c3RFdmFsdWF0aW9uUmVxdWVzdGVkLAotICAgICAgICBXZWJD
b3JlOjpQcm90ZWN0aW9uU3BhY2VBdXRoZW50aWNhdGlvblNjaGVtZTo6UHJvdGVjdGlvblNwYWNl
QXV0aGVudGljYXRpb25TY2hlbWVPQXV0aCwKLSAgICAgICAgV2ViQ29yZTo6UHJvdGVjdGlvblNw
YWNlQXV0aGVudGljYXRpb25TY2hlbWU6OlByb3RlY3Rpb25TcGFjZUF1dGhlbnRpY2F0aW9uU2No
ZW1lVW5rbm93bgorICAgICAgICBXZWJDb3JlOjpQcm90ZWN0aW9uU3BhY2VCYXNlOjpBdXRoZW50
aWNhdGlvblNjaGVtZSwKKyAgICAgICAgV2ViQ29yZTo6UHJvdGVjdGlvblNwYWNlQmFzZTo6QXV0
aGVudGljYXRpb25TY2hlbWU6OkRlZmF1bHQsCisgICAgICAgIFdlYkNvcmU6OlByb3RlY3Rpb25T
cGFjZUJhc2U6OkF1dGhlbnRpY2F0aW9uU2NoZW1lOjpIVFRQQmFzaWMsCisgICAgICAgIFdlYkNv
cmU6OlByb3RlY3Rpb25TcGFjZUJhc2U6OkF1dGhlbnRpY2F0aW9uU2NoZW1lOjpIVFRQRGlnZXN0
LAorICAgICAgICBXZWJDb3JlOjpQcm90ZWN0aW9uU3BhY2VCYXNlOjpBdXRoZW50aWNhdGlvblNj
aGVtZTo6SFRNTEZvcm0sCisgICAgICAgIFdlYkNvcmU6OlByb3RlY3Rpb25TcGFjZUJhc2U6OkF1
dGhlbnRpY2F0aW9uU2NoZW1lOjpOVExNLAorICAgICAgICBXZWJDb3JlOjpQcm90ZWN0aW9uU3Bh
Y2VCYXNlOjpBdXRoZW50aWNhdGlvblNjaGVtZTo6TmVnb3RpYXRlLAorICAgICAgICBXZWJDb3Jl
OjpQcm90ZWN0aW9uU3BhY2VCYXNlOjpBdXRoZW50aWNhdGlvblNjaGVtZTo6Q2xpZW50Q2VydGlm
aWNhdGVSZXF1ZXN0ZWQsCisgICAgICAgIFdlYkNvcmU6OlByb3RlY3Rpb25TcGFjZUJhc2U6OkF1
dGhlbnRpY2F0aW9uU2NoZW1lOjpTZXJ2ZXJUcnVzdEV2YWx1YXRpb25SZXF1ZXN0ZWQsCisgICAg
ICAgIFdlYkNvcmU6OlByb3RlY3Rpb25TcGFjZUJhc2U6OkF1dGhlbnRpY2F0aW9uU2NoZW1lOjpP
QXV0aCwKKyAgICAgICAgV2ViQ29yZTo6UHJvdGVjdGlvblNwYWNlQmFzZTo6QXV0aGVudGljYXRp
b25TY2hlbWU6OlVua25vd24KICAgICA+OwogfTsKIAotdGVtcGxhdGU8PiBzdHJ1Y3QgRW51bVRy
YWl0czxXZWJDb3JlOjpQcm90ZWN0aW9uU3BhY2VTZXJ2ZXJUeXBlPiB7Cit0ZW1wbGF0ZTw+IHN0
cnVjdCBFbnVtVHJhaXRzPFdlYkNvcmU6OlByb3RlY3Rpb25TcGFjZUJhc2U6OlNlcnZlclR5cGU+
IHsKICAgICB1c2luZyB2YWx1ZXMgPSBFbnVtVmFsdWVzPAotICAgICAgICBXZWJDb3JlOjpQcm90
ZWN0aW9uU3BhY2VTZXJ2ZXJUeXBlLAotICAgICAgICBXZWJDb3JlOjpQcm90ZWN0aW9uU3BhY2VT
ZXJ2ZXJUeXBlOjpQcm90ZWN0aW9uU3BhY2VTZXJ2ZXJIVFRQLAotICAgICAgICBXZWJDb3JlOjpQ
cm90ZWN0aW9uU3BhY2VTZXJ2ZXJUeXBlOjpQcm90ZWN0aW9uU3BhY2VTZXJ2ZXJIVFRQUywKLSAg
ICAgICAgV2ViQ29yZTo6UHJvdGVjdGlvblNwYWNlU2VydmVyVHlwZTo6UHJvdGVjdGlvblNwYWNl
U2VydmVyRlRQLAotICAgICAgICBXZWJDb3JlOjpQcm90ZWN0aW9uU3BhY2VTZXJ2ZXJUeXBlOjpQ
cm90ZWN0aW9uU3BhY2VTZXJ2ZXJGVFBTLAotICAgICAgICBXZWJDb3JlOjpQcm90ZWN0aW9uU3Bh
Y2VTZXJ2ZXJUeXBlOjpQcm90ZWN0aW9uU3BhY2VQcm94eUhUVFAsCi0gICAgICAgIFdlYkNvcmU6
OlByb3RlY3Rpb25TcGFjZVNlcnZlclR5cGU6OlByb3RlY3Rpb25TcGFjZVByb3h5SFRUUFMsCi0g
ICAgICAgIFdlYkNvcmU6OlByb3RlY3Rpb25TcGFjZVNlcnZlclR5cGU6OlByb3RlY3Rpb25TcGFj
ZVByb3h5RlRQLAotICAgICAgICBXZWJDb3JlOjpQcm90ZWN0aW9uU3BhY2VTZXJ2ZXJUeXBlOjpQ
cm90ZWN0aW9uU3BhY2VQcm94eVNPQ0tTCisgICAgICAgIFdlYkNvcmU6OlByb3RlY3Rpb25TcGFj
ZUJhc2U6OlNlcnZlclR5cGUsCisgICAgICAgIFdlYkNvcmU6OlByb3RlY3Rpb25TcGFjZUJhc2U6
OlNlcnZlclR5cGU6OkhUVFAsCisgICAgICAgIFdlYkNvcmU6OlByb3RlY3Rpb25TcGFjZUJhc2U6
OlNlcnZlclR5cGU6OkhUVFBTLAorICAgICAgICBXZWJDb3JlOjpQcm90ZWN0aW9uU3BhY2VCYXNl
OjpTZXJ2ZXJUeXBlOjpGVFAsCisgICAgICAgIFdlYkNvcmU6OlByb3RlY3Rpb25TcGFjZUJhc2U6
OlNlcnZlclR5cGU6OkZUUFMsCisgICAgICAgIFdlYkNvcmU6OlByb3RlY3Rpb25TcGFjZUJhc2U6
OlNlcnZlclR5cGU6OlByb3h5SFRUUCwKKyAgICAgICAgV2ViQ29yZTo6UHJvdGVjdGlvblNwYWNl
QmFzZTo6U2VydmVyVHlwZTo6UHJveHlIVFRQUywKKyAgICAgICAgV2ViQ29yZTo6UHJvdGVjdGlv
blNwYWNlQmFzZTo6U2VydmVyVHlwZTo6UHJveHlGVFAsCisgICAgICAgIFdlYkNvcmU6OlByb3Rl
Y3Rpb25TcGFjZUJhc2U6OlNlcnZlclR5cGU6OlByb3h5U09DS1MKICAgICA+OwogfTsKIApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jZi9BdXRoZW50aWNhdGlv
bkNGLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY2YvQXV0aGVudGljYXRp
b25DRi5jcHAKaW5kZXggY2VlNWQ3ZWFjYmNiNjIxMGIyMjlkY2VhYzg3YjQ2ZjRmYmQ4ZWNlMC4u
M2M5Mjc3MDFiNjI3MmY5N2VjOWM1ZmY0YWIwZjA5ZjQ2MzhhODI1MiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jZi9BdXRoZW50aWNhdGlvbkNGLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2NmL0F1dGhlbnRpY2F0aW9uQ0YuY3Bw
CkBAIC0xMDQsMjggKzEwNCwyOCBAQCBSZXRhaW5QdHI8Q0ZVUkxQcm90ZWN0aW9uU3BhY2VSZWY+
IGNyZWF0ZUNGKGNvbnN0IFByb3RlY3Rpb25TcGFjZSYgY29yZVNwYWNlKQogewogICAgIENGVVJM
UHJvdGVjdGlvblNwYWNlU2VydmVyVHlwZSBzZXJ2ZXJUeXBlID0ga0NGVVJMUHJvdGVjdGlvblNw
YWNlU2VydmVySFRUUDsKICAgICBzd2l0Y2ggKGNvcmVTcGFjZS5zZXJ2ZXJUeXBlKCkpIHsKLSAg
ICBjYXNlIFByb3RlY3Rpb25TcGFjZVNlcnZlckhUVFA6CisgICAgY2FzZSBQcm90ZWN0aW9uU3Bh
Y2U6OlNlcnZlclR5cGU6OkhUVFA6CiAgICAgICAgIHNlcnZlclR5cGUgPSBrQ0ZVUkxQcm90ZWN0
aW9uU3BhY2VTZXJ2ZXJIVFRQOwogICAgICAgICBicmVhazsKLSAgICBjYXNlIFByb3RlY3Rpb25T
cGFjZVNlcnZlckhUVFBTOgorICAgIGNhc2UgUHJvdGVjdGlvblNwYWNlOjpTZXJ2ZXJUeXBlOjpI
VFRQUzoKICAgICAgICAgc2VydmVyVHlwZSA9IGtDRlVSTFByb3RlY3Rpb25TcGFjZVNlcnZlckhU
VFBTOwogICAgICAgICBicmVhazsKLSAgICBjYXNlIFByb3RlY3Rpb25TcGFjZVNlcnZlckZUUDoK
KyAgICBjYXNlIFByb3RlY3Rpb25TcGFjZTo6U2VydmVyVHlwZTo6RlRQOgogICAgICAgICBzZXJ2
ZXJUeXBlID0ga0NGVVJMUHJvdGVjdGlvblNwYWNlU2VydmVyRlRQOwogICAgICAgICBicmVhazsK
LSAgICBjYXNlIFByb3RlY3Rpb25TcGFjZVNlcnZlckZUUFM6CisgICAgY2FzZSBQcm90ZWN0aW9u
U3BhY2U6OlNlcnZlclR5cGU6OkZUUFM6CiAgICAgICAgIHNlcnZlclR5cGUgPSBrQ0ZVUkxQcm90
ZWN0aW9uU3BhY2VTZXJ2ZXJGVFBTOwogICAgICAgICBicmVhazsKLSAgICBjYXNlIFByb3RlY3Rp
b25TcGFjZVByb3h5SFRUUDoKKyAgICBjYXNlIFByb3RlY3Rpb25TcGFjZTo6U2VydmVyVHlwZTo6
UHJveHlIVFRQOgogICAgICAgICBzZXJ2ZXJUeXBlID0ga0NGVVJMUHJvdGVjdGlvblNwYWNlUHJv
eHlIVFRQOwogICAgICAgICBicmVhazsKLSAgICBjYXNlIFByb3RlY3Rpb25TcGFjZVByb3h5SFRU
UFM6CisgICAgY2FzZSBQcm90ZWN0aW9uU3BhY2U6OlNlcnZlclR5cGU6OlByb3h5SFRUUFM6CiAg
ICAgICAgIHNlcnZlclR5cGUgPSBrQ0ZVUkxQcm90ZWN0aW9uU3BhY2VQcm94eUhUVFBTOwogICAg
ICAgICBicmVhazsKLSAgICBjYXNlIFByb3RlY3Rpb25TcGFjZVByb3h5RlRQOgorICAgIGNhc2Ug
UHJvdGVjdGlvblNwYWNlOjpTZXJ2ZXJUeXBlOjpQcm94eUZUUDoKICAgICAgICAgc2VydmVyVHlw
ZSA9IGtDRlVSTFByb3RlY3Rpb25TcGFjZVByb3h5RlRQOwogICAgICAgICBicmVhazsKLSAgICBj
YXNlIFByb3RlY3Rpb25TcGFjZVByb3h5U09DS1M6CisgICAgY2FzZSBQcm90ZWN0aW9uU3BhY2U6
OlNlcnZlclR5cGU6OlByb3h5U09DS1M6CiAgICAgICAgIHNlcnZlclR5cGUgPSBrQ0ZVUkxQcm90
ZWN0aW9uU3BhY2VQcm94eVNPQ0tTOwogICAgICAgICBicmVhazsKICAgICBkZWZhdWx0OgpAQCAt
MTM0LDI5ICsxMzQsMjkgQEAgUmV0YWluUHRyPENGVVJMUHJvdGVjdGlvblNwYWNlUmVmPiBjcmVh
dGVDRihjb25zdCBQcm90ZWN0aW9uU3BhY2UmIGNvcmVTcGFjZSkKIAogICAgIENGVVJMUHJvdGVj
dGlvblNwYWNlQXV0aGVudGljYXRpb25TY2hlbWUgc2NoZW1lID0ga0NGVVJMUHJvdGVjdGlvblNw
YWNlQXV0aGVudGljYXRpb25TY2hlbWVEZWZhdWx0OwogICAgIHN3aXRjaCAoY29yZVNwYWNlLmF1
dGhlbnRpY2F0aW9uU2NoZW1lKCkpIHsKLSAgICBjYXNlIFByb3RlY3Rpb25TcGFjZUF1dGhlbnRp
Y2F0aW9uU2NoZW1lRGVmYXVsdDoKKyAgICBjYXNlIFByb3RlY3Rpb25TcGFjZTo6QXV0aGVudGlj
YXRpb25TY2hlbWU6OkRlZmF1bHQ6CiAgICAgICAgIHNjaGVtZSA9IGtDRlVSTFByb3RlY3Rpb25T
cGFjZUF1dGhlbnRpY2F0aW9uU2NoZW1lRGVmYXVsdDsKICAgICAgICAgYnJlYWs7Ci0gICAgY2Fz
ZSBQcm90ZWN0aW9uU3BhY2VBdXRoZW50aWNhdGlvblNjaGVtZUhUVFBCYXNpYzoKKyAgICBjYXNl
IFByb3RlY3Rpb25TcGFjZTo6QXV0aGVudGljYXRpb25TY2hlbWU6OkhUVFBCYXNpYzoKICAgICAg
ICAgc2NoZW1lID0ga0NGVVJMUHJvdGVjdGlvblNwYWNlQXV0aGVudGljYXRpb25TY2hlbWVIVFRQ
QmFzaWM7CiAgICAgICAgIGJyZWFrOwotICAgIGNhc2UgUHJvdGVjdGlvblNwYWNlQXV0aGVudGlj
YXRpb25TY2hlbWVIVFRQRGlnZXN0OgorICAgIGNhc2UgUHJvdGVjdGlvblNwYWNlOjpBdXRoZW50
aWNhdGlvblNjaGVtZTo6SFRUUERpZ2VzdDoKICAgICAgICAgc2NoZW1lID0ga0NGVVJMUHJvdGVj
dGlvblNwYWNlQXV0aGVudGljYXRpb25TY2hlbWVIVFRQRGlnZXN0OwogICAgICAgICBicmVhazsK
LSAgICBjYXNlIFByb3RlY3Rpb25TcGFjZUF1dGhlbnRpY2F0aW9uU2NoZW1lSFRNTEZvcm06Cisg
ICAgY2FzZSBQcm90ZWN0aW9uU3BhY2U6OkF1dGhlbnRpY2F0aW9uU2NoZW1lOjpIVE1MRm9ybToK
ICAgICAgICAgc2NoZW1lID0ga0NGVVJMUHJvdGVjdGlvblNwYWNlQXV0aGVudGljYXRpb25TY2hl
bWVIVE1MRm9ybTsKICAgICAgICAgYnJlYWs7Ci0gICAgY2FzZSBQcm90ZWN0aW9uU3BhY2VBdXRo
ZW50aWNhdGlvblNjaGVtZU5UTE06CisgICAgY2FzZSBQcm90ZWN0aW9uU3BhY2U6OkF1dGhlbnRp
Y2F0aW9uU2NoZW1lOjpOVExNOgogICAgICAgICBzY2hlbWUgPSBrQ0ZVUkxQcm90ZWN0aW9uU3Bh
Y2VBdXRoZW50aWNhdGlvblNjaGVtZU5UTE07CiAgICAgICAgIGJyZWFrOwotICAgIGNhc2UgUHJv
dGVjdGlvblNwYWNlQXV0aGVudGljYXRpb25TY2hlbWVOZWdvdGlhdGU6CisgICAgY2FzZSBQcm90
ZWN0aW9uU3BhY2U6OkF1dGhlbnRpY2F0aW9uU2NoZW1lOjpOZWdvdGlhdGU6CiAgICAgICAgIHNj
aGVtZSA9IGtDRlVSTFByb3RlY3Rpb25TcGFjZUF1dGhlbnRpY2F0aW9uU2NoZW1lTmVnb3RpYXRl
OwogICAgICAgICBicmVhazsKICNpZiBVU0UoUFJPVEVDVElPTl9TUEFDRV9BVVRIX0NBTExCQUNL
KQotICAgIGNhc2UgUHJvdGVjdGlvblNwYWNlQXV0aGVudGljYXRpb25TY2hlbWVTZXJ2ZXJUcnVz
dEV2YWx1YXRpb25SZXF1ZXN0ZWQ6CisgICAgY2FzZSBQcm90ZWN0aW9uU3BhY2U6OkF1dGhlbnRp
Y2F0aW9uU2NoZW1lOjpTZXJ2ZXJUcnVzdEV2YWx1YXRpb25SZXF1ZXN0ZWQ6CiAgICAgICAgIHNj
aGVtZSA9IGtDRlVSTFByb3RlY3Rpb25TcGFjZUF1dGhlbnRpY2F0aW9uU2NoZW1lU2VydmVyVHJ1
c3RFdmFsdWF0aW9uUmVxdWVzdGVkOwogICAgICAgICBicmVhazsKLSAgICBjYXNlIFByb3RlY3Rp
b25TcGFjZUF1dGhlbnRpY2F0aW9uU2NoZW1lQ2xpZW50Q2VydGlmaWNhdGVSZXF1ZXN0ZWQ6Cisg
ICAgY2FzZSBQcm90ZWN0aW9uU3BhY2U6OkF1dGhlbnRpY2F0aW9uU2NoZW1lOjpDbGllbnRDZXJ0
aWZpY2F0ZVJlcXVlc3RlZDoKICAgICAgICAgc2NoZW1lID0ga0NGVVJMUHJvdGVjdGlvblNwYWNl
QXV0aGVudGljYXRpb25TY2hlbWVDbGllbnRDZXJ0aWZpY2F0ZVJlcXVlc3RlZDsKICAgICAgICAg
YnJlYWs7CiAjZW5kaWYKQEAgLTE5Miw2NyArMTkyLDY3IEBAIENyZWRlbnRpYWwgY29yZShDRlVS
TENyZWRlbnRpYWxSZWYgY2ZDcmVkZW50aWFsKQogCiBQcm90ZWN0aW9uU3BhY2UgY29yZShDRlVS
TFByb3RlY3Rpb25TcGFjZVJlZiBjZlNwYWNlKQogewotICAgIFByb3RlY3Rpb25TcGFjZVNlcnZl
clR5cGUgc2VydmVyVHlwZSA9IFByb3RlY3Rpb25TcGFjZVNlcnZlckhUVFA7CisgICAgYXV0byBz
ZXJ2ZXJUeXBlID0gUHJvdGVjdGlvblNwYWNlOjpTZXJ2ZXJUeXBlOjpIVFRQOwogICAgIAogICAg
IHN3aXRjaCAoQ0ZVUkxQcm90ZWN0aW9uU3BhY2VHZXRTZXJ2ZXJUeXBlKGNmU3BhY2UpKSB7CiAg
ICAgY2FzZSBrQ0ZVUkxQcm90ZWN0aW9uU3BhY2VTZXJ2ZXJIVFRQOgogICAgICAgICBicmVhazsK
ICAgICBjYXNlIGtDRlVSTFByb3RlY3Rpb25TcGFjZVNlcnZlckhUVFBTOgotICAgICAgICBzZXJ2
ZXJUeXBlID0gUHJvdGVjdGlvblNwYWNlU2VydmVySFRUUFM7CisgICAgICAgIHNlcnZlclR5cGUg
PSBQcm90ZWN0aW9uU3BhY2U6OlNlcnZlclR5cGU6OkhUVFBTOwogICAgICAgICBicmVhazsKICAg
ICBjYXNlIGtDRlVSTFByb3RlY3Rpb25TcGFjZVNlcnZlckZUUDoKLSAgICAgICAgc2VydmVyVHlw
ZSA9IFByb3RlY3Rpb25TcGFjZVNlcnZlckZUUDsKKyAgICAgICAgc2VydmVyVHlwZSA9IFByb3Rl
Y3Rpb25TcGFjZTo6U2VydmVyVHlwZTo6RlRQOwogICAgICAgICBicmVhazsKICAgICBjYXNlIGtD
RlVSTFByb3RlY3Rpb25TcGFjZVNlcnZlckZUUFM6Ci0gICAgICAgIHNlcnZlclR5cGUgPSBQcm90
ZWN0aW9uU3BhY2VTZXJ2ZXJGVFBTOworICAgICAgICBzZXJ2ZXJUeXBlID0gUHJvdGVjdGlvblNw
YWNlOjpTZXJ2ZXJUeXBlOjpGVFBTOwogICAgICAgICBicmVhazsKICAgICBjYXNlIGtDRlVSTFBy
b3RlY3Rpb25TcGFjZVByb3h5SFRUUDoKLSAgICAgICAgc2VydmVyVHlwZSA9IFByb3RlY3Rpb25T
cGFjZVByb3h5SFRUUDsKKyAgICAgICAgc2VydmVyVHlwZSA9IFByb3RlY3Rpb25TcGFjZTo6U2Vy
dmVyVHlwZTo6UHJveHlIVFRQOwogICAgICAgICBicmVhazsKICAgICBjYXNlIGtDRlVSTFByb3Rl
Y3Rpb25TcGFjZVByb3h5SFRUUFM6Ci0gICAgICAgIHNlcnZlclR5cGUgPSBQcm90ZWN0aW9uU3Bh
Y2VQcm94eUhUVFBTOworICAgICAgICBzZXJ2ZXJUeXBlID0gUHJvdGVjdGlvblNwYWNlOjpTZXJ2
ZXJUeXBlOjpQcm94eUhUVFBTOwogICAgICAgICBicmVhazsKICAgICBjYXNlIGtDRlVSTFByb3Rl
Y3Rpb25TcGFjZVByb3h5RlRQOgotICAgICAgICBzZXJ2ZXJUeXBlID0gUHJvdGVjdGlvblNwYWNl
UHJveHlGVFA7CisgICAgICAgIHNlcnZlclR5cGUgPSBQcm90ZWN0aW9uU3BhY2U6OlNlcnZlclR5
cGU6OlByb3h5RlRQOwogICAgICAgICBicmVhazsKICAgICBjYXNlIGtDRlVSTFByb3RlY3Rpb25T
cGFjZVByb3h5U09DS1M6Ci0gICAgICAgIHNlcnZlclR5cGUgPSBQcm90ZWN0aW9uU3BhY2VQcm94
eVNPQ0tTOworICAgICAgICBzZXJ2ZXJUeXBlID0gUHJvdGVjdGlvblNwYWNlOjpTZXJ2ZXJUeXBl
OjpQcm94eVNPQ0tTOwogICAgICAgICBicmVhazsKICAgICBkZWZhdWx0OgogICAgICAgICBBU1NF
UlRfTk9UX1JFQUNIRUQoKTsKICAgICB9CiAKLSAgICBQcm90ZWN0aW9uU3BhY2VBdXRoZW50aWNh
dGlvblNjaGVtZSBzY2hlbWUgPSBQcm90ZWN0aW9uU3BhY2VBdXRoZW50aWNhdGlvblNjaGVtZURl
ZmF1bHQ7CisgICAgYXV0byBzY2hlbWUgPSBQcm90ZWN0aW9uU3BhY2U6OkF1dGhlbnRpY2F0aW9u
U2NoZW1lOjpEZWZhdWx0OwogICAgIAogICAgIHN3aXRjaCAoQ0ZVUkxQcm90ZWN0aW9uU3BhY2VH
ZXRBdXRoZW50aWNhdGlvblNjaGVtZShjZlNwYWNlKSkgewogICAgIGNhc2Uga0NGVVJMUHJvdGVj
dGlvblNwYWNlQXV0aGVudGljYXRpb25TY2hlbWVEZWZhdWx0OgotICAgICAgICBzY2hlbWUgPSBQ
cm90ZWN0aW9uU3BhY2VBdXRoZW50aWNhdGlvblNjaGVtZURlZmF1bHQ7CisgICAgICAgIHNjaGVt
ZSA9IFByb3RlY3Rpb25TcGFjZTo6QXV0aGVudGljYXRpb25TY2hlbWU6OkRlZmF1bHQ7CiAgICAg
ICAgIGJyZWFrOwogICAgIGNhc2Uga0NGVVJMUHJvdGVjdGlvblNwYWNlQXV0aGVudGljYXRpb25T
Y2hlbWVIVFRQQmFzaWM6Ci0gICAgICAgIHNjaGVtZSA9IFByb3RlY3Rpb25TcGFjZUF1dGhlbnRp
Y2F0aW9uU2NoZW1lSFRUUEJhc2ljOworICAgICAgICBzY2hlbWUgPSBQcm90ZWN0aW9uU3BhY2U6
OkF1dGhlbnRpY2F0aW9uU2NoZW1lOjpIVFRQQmFzaWM7CiAgICAgICAgIGJyZWFrOwogICAgIGNh
c2Uga0NGVVJMUHJvdGVjdGlvblNwYWNlQXV0aGVudGljYXRpb25TY2hlbWVIVFRQRGlnZXN0Ogot
ICAgICAgICBzY2hlbWUgPSBQcm90ZWN0aW9uU3BhY2VBdXRoZW50aWNhdGlvblNjaGVtZUhUVFBE
aWdlc3Q7CisgICAgICAgIHNjaGVtZSA9IFByb3RlY3Rpb25TcGFjZTo6QXV0aGVudGljYXRpb25T
Y2hlbWU6OkhUVFBEaWdlc3Q7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2Uga0NGVVJMUHJvdGVj
dGlvblNwYWNlQXV0aGVudGljYXRpb25TY2hlbWVIVE1MRm9ybToKLSAgICAgICAgc2NoZW1lID0g
UHJvdGVjdGlvblNwYWNlQXV0aGVudGljYXRpb25TY2hlbWVIVE1MRm9ybTsKKyAgICAgICAgc2No
ZW1lID0gUHJvdGVjdGlvblNwYWNlOjpBdXRoZW50aWNhdGlvblNjaGVtZTo6SFRNTEZvcm07CiAg
ICAgICAgIGJyZWFrOwogICAgIGNhc2Uga0NGVVJMUHJvdGVjdGlvblNwYWNlQXV0aGVudGljYXRp
b25TY2hlbWVOVExNOgotICAgICAgICBzY2hlbWUgPSBQcm90ZWN0aW9uU3BhY2VBdXRoZW50aWNh
dGlvblNjaGVtZU5UTE07CisgICAgICAgIHNjaGVtZSA9IFByb3RlY3Rpb25TcGFjZTo6QXV0aGVu
dGljYXRpb25TY2hlbWU6Ok5UTE07CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2Uga0NGVVJMUHJv
dGVjdGlvblNwYWNlQXV0aGVudGljYXRpb25TY2hlbWVOZWdvdGlhdGU6Ci0gICAgICAgIHNjaGVt
ZSA9IFByb3RlY3Rpb25TcGFjZUF1dGhlbnRpY2F0aW9uU2NoZW1lTmVnb3RpYXRlOworICAgICAg
ICBzY2hlbWUgPSBQcm90ZWN0aW9uU3BhY2U6OkF1dGhlbnRpY2F0aW9uU2NoZW1lOjpOZWdvdGlh
dGU7CiAgICAgICAgIGJyZWFrOwogI2lmIFVTRShQUk9URUNUSU9OX1NQQUNFX0FVVEhfQ0FMTEJB
Q0spCiAgICAgY2FzZSBrQ0ZVUkxQcm90ZWN0aW9uU3BhY2VBdXRoZW50aWNhdGlvblNjaGVtZUNs
aWVudENlcnRpZmljYXRlUmVxdWVzdGVkOgotICAgICAgICBzY2hlbWUgPSBQcm90ZWN0aW9uU3Bh
Y2VBdXRoZW50aWNhdGlvblNjaGVtZUNsaWVudENlcnRpZmljYXRlUmVxdWVzdGVkOworICAgICAg
ICBzY2hlbWUgPSBQcm90ZWN0aW9uU3BhY2U6OkF1dGhlbnRpY2F0aW9uU2NoZW1lOjpDbGllbnRD
ZXJ0aWZpY2F0ZVJlcXVlc3RlZDsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBrQ0ZVUkxQcm90
ZWN0aW9uU3BhY2VBdXRoZW50aWNhdGlvblNjaGVtZVNlcnZlclRydXN0RXZhbHVhdGlvblJlcXVl
c3RlZDoKLSAgICAgICAgc2NoZW1lID0gUHJvdGVjdGlvblNwYWNlQXV0aGVudGljYXRpb25TY2hl
bWVTZXJ2ZXJUcnVzdEV2YWx1YXRpb25SZXF1ZXN0ZWQ7CisgICAgICAgIHNjaGVtZSA9IFByb3Rl
Y3Rpb25TcGFjZTo6QXV0aGVudGljYXRpb25TY2hlbWU6OlNlcnZlclRydXN0RXZhbHVhdGlvblJl
cXVlc3RlZDsKICAgICAgICAgYnJlYWs7CiAjZW5kaWYKICAgICBkZWZhdWx0OgotICAgICAgICBz
Y2hlbWUgPSBQcm90ZWN0aW9uU3BhY2VBdXRoZW50aWNhdGlvblNjaGVtZVVua25vd247CisgICAg
ICAgIHNjaGVtZSA9IFByb3RlY3Rpb25TcGFjZTo6QXV0aGVudGljYXRpb25TY2hlbWU6OlVua25v
d247CiAgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwogICAgIH0KICAgICAgICAgCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2NmL1Byb3RlY3Rpb25TcGFj
ZUNGTmV0LmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2NmL1Byb3RlY3Rpb25T
cGFjZUNGTmV0LmgKaW5kZXggZjBhMTlkMzAyMzJjY2Y3MjkwMzIwOGYwMWMwYWZiMmZjZmVhMTk1
OC4uOTVjYmVhMzAwZWMyZGNkYjA3ODU0M2FhNGYwMjBmMjU1ZDQ4ZDhlMyAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jZi9Qcm90ZWN0aW9uU3BhY2VDRk5ldC5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY2YvUHJvdGVjdGlvblNwYWNl
Q0ZOZXQuaApAQCAtMzYsNyArMzYsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiBjbGFzcyBQcm90
ZWN0aW9uU3BhY2UgOiBwdWJsaWMgUHJvdGVjdGlvblNwYWNlQmFzZSB7CiBwdWJsaWM6CiAgICAg
UHJvdGVjdGlvblNwYWNlKCkgOiBQcm90ZWN0aW9uU3BhY2VCYXNlKCkgeyB9Ci0gICAgUHJvdGVj
dGlvblNwYWNlKGNvbnN0IFN0cmluZyYgaG9zdCwgaW50IHBvcnQsIFByb3RlY3Rpb25TcGFjZVNl
cnZlclR5cGUgc2VydmVyVHlwZSwgY29uc3QgU3RyaW5nJiByZWFsbSwgUHJvdGVjdGlvblNwYWNl
QXV0aGVudGljYXRpb25TY2hlbWUgYXV0aGVudGljYXRpb25TY2hlbWUpCisgICAgUHJvdGVjdGlv
blNwYWNlKGNvbnN0IFN0cmluZyYgaG9zdCwgaW50IHBvcnQsIFNlcnZlclR5cGUgc2VydmVyVHlw
ZSwgY29uc3QgU3RyaW5nJiByZWFsbSwgQXV0aGVudGljYXRpb25TY2hlbWUgYXV0aGVudGljYXRp
b25TY2hlbWUpCiAgICAgICAgIDogUHJvdGVjdGlvblNwYWNlQmFzZShob3N0LCBwb3J0LCBzZXJ2
ZXJUeXBlLCByZWFsbSwgYXV0aGVudGljYXRpb25TY2hlbWUpCiAgICAgewogICAgIH0KZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY2YvUmVzb3VyY2VIYW5kbGVD
Rk5ldC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2NmL1Jlc291cmNlSGFu
ZGxlQ0ZOZXQuY3BwCmluZGV4IDU2NzFiNDNlZGE3MTdjMDZiMzQzNzRlYmNjMWU1MTRkN2EyMzk4
OWQuLjU0M2JmMmUxMzhlMzZiYTAwYTRkMzgwZjZkN2E5NWRjYTkwYjQ3NDcgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY2YvUmVzb3VyY2VIYW5kbGVDRk5ldC5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jZi9SZXNvdXJjZUhhbmRs
ZUNGTmV0LmNwcApAQCAtNDI1LDcgKzQyNSw3IEBAIHZvaWQgUmVzb3VyY2VIYW5kbGU6OnJlY2Vp
dmVkQ3JlZGVudGlhbChjb25zdCBBdXRoZW50aWNhdGlvbkNoYWxsZW5nZSYgY2hhbGxlbmdlCiAg
ICAgICAgIHJldHVybjsKICAgICB9CiAKLSAgICBpZiAoY3JlZGVudGlhbC5wZXJzaXN0ZW5jZSgp
ID09IENyZWRlbnRpYWxQZXJzaXN0ZW5jZUZvclNlc3Npb24gJiYgY2hhbGxlbmdlLnByb3RlY3Rp
b25TcGFjZSgpLmF1dGhlbnRpY2F0aW9uU2NoZW1lKCkgIT0gUHJvdGVjdGlvblNwYWNlQXV0aGVu
dGljYXRpb25TY2hlbWVTZXJ2ZXJUcnVzdEV2YWx1YXRpb25SZXF1ZXN0ZWQpIHsKKyAgICBpZiAo
Y3JlZGVudGlhbC5wZXJzaXN0ZW5jZSgpID09IENyZWRlbnRpYWxQZXJzaXN0ZW5jZUZvclNlc3Np
b24gJiYgY2hhbGxlbmdlLnByb3RlY3Rpb25TcGFjZSgpLmF1dGhlbnRpY2F0aW9uU2NoZW1lKCkg
IT0gUHJvdGVjdGlvblNwYWNlOjpBdXRoZW50aWNhdGlvblNjaGVtZTo6U2VydmVyVHJ1c3RFdmFs
dWF0aW9uUmVxdWVzdGVkKSB7CiAgICAgICAgIC8vIE1hbmFnZSBwZXItc2Vzc2lvbiBjcmVkZW50
aWFscyBpbnRlcm5hbGx5LCBiZWNhdXNlIG9uY2UgTlNVUkxDcmVkZW50aWFsUGVyc2lzdGVuY2VQ
ZXJTZXNzaW9uIGlzIHVzZWQsIHRoZXJlIGlzIG5vIHdheQogICAgICAgICAvLyB0byBpZ25vcmUg
aXQgZm9yIGEgcGFydGljdWxhciByZXF1ZXN0IChzaG9ydCBvZiByZW1vdmluZyBpdCBhbHRvZ2V0
aGVyKS4KICAgICAgICAgQ3JlZGVudGlhbCB3ZWJDcmVkZW50aWFsKGNyZWRlbnRpYWwsIENyZWRl
bnRpYWxQZXJzaXN0ZW5jZU5vbmUpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vbmV0d29yay9jZi9Tb2NrZXRTdHJlYW1IYW5kbGVJbXBsQ0ZOZXQuY3BwIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vbmV0d29yay9jZi9Tb2NrZXRTdHJlYW1IYW5kbGVJbXBsQ0ZOZXQuY3Bw
CmluZGV4IDMxMWFlZjJkODBmZTczMzZjZDhlNTExM2MzOWQ5NTBkYjhmNDM5NGMuLjY5NjFlNzk4
MzA2N2ExODY1YjRhZmJlM2ZhN2FjNWNlNjk1YTRkMzUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL25ldHdvcmsvY2YvU29ja2V0U3RyZWFtSGFuZGxlSW1wbENGTmV0LmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2NmL1NvY2tldFN0cmVhbUhhbmRs
ZUltcGxDRk5ldC5jcHAKQEAgLTM5OSwxOCArMzk5LDE4IEBAIGJvb2wgU29ja2V0U3RyZWFtSGFu
ZGxlSW1wbDo6Z2V0U3RvcmVkQ09OTkVDVFByb3h5Q3JlZGVudGlhbHMoY29uc3QgUHJvdGVjdGlv
blNwCiAgICAgcmV0dXJuIHRydWU7CiB9CiAKLXN0YXRpYyBQcm90ZWN0aW9uU3BhY2VBdXRoZW50
aWNhdGlvblNjaGVtZSBhdXRoZW50aWNhdGlvblNjaGVtZUZyb21BdXRoZW50aWNhdGlvbk1ldGhv
ZChDRlN0cmluZ1JlZiBtZXRob2QpCitzdGF0aWMgUHJvdGVjdGlvblNwYWNlOjpBdXRoZW50aWNh
dGlvblNjaGVtZSBhdXRoZW50aWNhdGlvblNjaGVtZUZyb21BdXRoZW50aWNhdGlvbk1ldGhvZChD
RlN0cmluZ1JlZiBtZXRob2QpCiB7CiAgICAgaWYgKENGRXF1YWwobWV0aG9kLCBrQ0ZIVFRQQXV0
aGVudGljYXRpb25TY2hlbWVCYXNpYykpCi0gICAgICAgIHJldHVybiBQcm90ZWN0aW9uU3BhY2VB
dXRoZW50aWNhdGlvblNjaGVtZUhUVFBCYXNpYzsKKyAgICAgICAgcmV0dXJuIFByb3RlY3Rpb25T
cGFjZTo6QXV0aGVudGljYXRpb25TY2hlbWU6OkhUVFBCYXNpYzsKICAgICBpZiAoQ0ZFcXVhbCht
ZXRob2QsIGtDRkhUVFBBdXRoZW50aWNhdGlvblNjaGVtZURpZ2VzdCkpCi0gICAgICAgIHJldHVy
biBQcm90ZWN0aW9uU3BhY2VBdXRoZW50aWNhdGlvblNjaGVtZUhUVFBEaWdlc3Q7CisgICAgICAg
IHJldHVybiBQcm90ZWN0aW9uU3BhY2U6OkF1dGhlbnRpY2F0aW9uU2NoZW1lOjpIVFRQRGlnZXN0
OwogICAgIGlmIChDRkVxdWFsKG1ldGhvZCwga0NGSFRUUEF1dGhlbnRpY2F0aW9uU2NoZW1lTlRM
TSkpCi0gICAgICAgIHJldHVybiBQcm90ZWN0aW9uU3BhY2VBdXRoZW50aWNhdGlvblNjaGVtZU5U
TE07CisgICAgICAgIHJldHVybiBQcm90ZWN0aW9uU3BhY2U6OkF1dGhlbnRpY2F0aW9uU2NoZW1l
OjpOVExNOwogICAgIGlmIChDRkVxdWFsKG1ldGhvZCwga0NGSFRUUEF1dGhlbnRpY2F0aW9uU2No
ZW1lTmVnb3RpYXRlKSkKLSAgICAgICAgcmV0dXJuIFByb3RlY3Rpb25TcGFjZUF1dGhlbnRpY2F0
aW9uU2NoZW1lTmVnb3RpYXRlOworICAgICAgICByZXR1cm4gUHJvdGVjdGlvblNwYWNlOjpBdXRo
ZW50aWNhdGlvblNjaGVtZTo6TmVnb3RpYXRlOwogICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwot
ICAgIHJldHVybiBQcm90ZWN0aW9uU3BhY2VBdXRoZW50aWNhdGlvblNjaGVtZVVua25vd247Cisg
ICAgcmV0dXJuIFByb3RlY3Rpb25TcGFjZTo6QXV0aGVudGljYXRpb25TY2hlbWU6OlVua25vd247
CiB9CiAgICAgCiBzdGF0aWMgdm9pZCBzZXRDT05ORUNUUHJveHlBdXRob3JpemF0aW9uRm9yU3Ry
ZWFtKENGUmVhZFN0cmVhbVJlZiBzdHJlYW0sIENGU3RyaW5nUmVmIHByb3h5QXV0aG9yaXphdGlv
blN0cmluZykKQEAgLTQ0Nyw3ICs0NDcsNyBAQCB2b2lkIFNvY2tldFN0cmVhbUhhbmRsZUltcGw6
OmFkZENPTk5FQ1RDcmVkZW50aWFscyhDRkhUVFBNZXNzYWdlUmVmIHByb3h5UmVzcG9ucwogICAg
ICAgICByZXR1cm47CiAgICAgfQogCi0gICAgUHJvdGVjdGlvblNwYWNlIHByb3RlY3Rpb25TcGFj
ZShTdHJpbmcobV9wcm94eUhvc3QuZ2V0KCkpLCBwb3J0LCBQcm90ZWN0aW9uU3BhY2VQcm94eUhU
VFBTLCBTdHJpbmcocmVhbG1DRi5nZXQoKSksIGF1dGhlbnRpY2F0aW9uU2NoZW1lRnJvbUF1dGhl
bnRpY2F0aW9uTWV0aG9kKG1ldGhvZENGLmdldCgpKSk7CisgICAgUHJvdGVjdGlvblNwYWNlIHBy
b3RlY3Rpb25TcGFjZShTdHJpbmcobV9wcm94eUhvc3QuZ2V0KCkpLCBwb3J0LCBQcm90ZWN0aW9u
U3BhY2U6OlNlcnZlclR5cGU6OlByb3h5SFRUUFMsIFN0cmluZyhyZWFsbUNGLmdldCgpKSwgYXV0
aGVudGljYXRpb25TY2hlbWVGcm9tQXV0aGVudGljYXRpb25NZXRob2QobWV0aG9kQ0YuZ2V0KCkp
KTsKICAgICBTdHJpbmcgbG9naW47CiAgICAgU3RyaW5nIHBhc3N3b3JkOwogICAgIGlmICghbV9z
ZW50U3RvcmVkQ3JlZGVudGlhbHMgJiYgZ2V0U3RvcmVkQ09OTkVDVFByb3h5Q3JlZGVudGlhbHMo
cHJvdGVjdGlvblNwYWNlLCBsb2dpbiwgcGFzc3dvcmQpKSB7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2NvY29hL1Byb3RlY3Rpb25TcGFjZUNvY29hLmggYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2NvY29hL1Byb3RlY3Rpb25TcGFjZUNvY29h
LmgKaW5kZXggY2Y3NjY5NzliODVhYWFkNDJjYzEyNTY5YmFhMjRjOGRlNGU2Zjc3Zi4uOGM3OGRi
N2ZhZWZkNzFmZDdjZWY2ZmU1NmQ2NDkyYWVlZWQ0NmQzYSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vbmV0d29yay9jb2NvYS9Qcm90ZWN0aW9uU3BhY2VDb2NvYS5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY29jb2EvUHJvdGVjdGlvblNwYWNlQ29j
b2EuaApAQCAtMzksNyArMzksNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiBjbGFzcyBQcm90ZWN0
aW9uU3BhY2UgOiBwdWJsaWMgUHJvdGVjdGlvblNwYWNlQmFzZSB7CiBwdWJsaWM6CiAgICAgUHJv
dGVjdGlvblNwYWNlKCkgOiBQcm90ZWN0aW9uU3BhY2VCYXNlKCkgeyB9Ci0gICAgUHJvdGVjdGlv
blNwYWNlKGNvbnN0IFN0cmluZyYgaG9zdCwgaW50IHBvcnQsIFByb3RlY3Rpb25TcGFjZVNlcnZl
clR5cGUgc2VydmVyVHlwZSwgY29uc3QgU3RyaW5nJiByZWFsbSwgUHJvdGVjdGlvblNwYWNlQXV0
aGVudGljYXRpb25TY2hlbWUgYXV0aGVudGljYXRpb25TY2hlbWUpCisgICAgUHJvdGVjdGlvblNw
YWNlKGNvbnN0IFN0cmluZyYgaG9zdCwgaW50IHBvcnQsIFNlcnZlclR5cGUgc2VydmVyVHlwZSwg
Y29uc3QgU3RyaW5nJiByZWFsbSwgQXV0aGVudGljYXRpb25TY2hlbWUgYXV0aGVudGljYXRpb25T
Y2hlbWUpCiAgICAgICAgIDogUHJvdGVjdGlvblNwYWNlQmFzZShob3N0LCBwb3J0LCBzZXJ2ZXJU
eXBlLCByZWFsbSwgYXV0aGVudGljYXRpb25TY2hlbWUpCiAgICAgewogICAgIH0KZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY29jb2EvUHJvdGVjdGlvblNwYWNl
Q29jb2EubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2NvY29hL1Byb3RlY3Rp
b25TcGFjZUNvY29hLm1tCmluZGV4IDYyMThjZWFiMmZiMzIyNTE3NzBmYjEyZTAxNDJmY2Q5ZWYx
NmQyNGQuLmQ1NmQwZTIxYjJhYTdiYzA4OWM0MGIxMTAyNjkyNzNmZmNiMDUyN2YgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY29jb2EvUHJvdGVjdGlvblNwYWNl
Q29jb2EubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jb2NvYS9Qcm90
ZWN0aW9uU3BhY2VDb2NvYS5tbQpAQCAtMzAsNjMgKzMwLDYzIEBACiAKIG5hbWVzcGFjZSBXZWJD
b3JlIHsKIAotc3RhdGljIFByb3RlY3Rpb25TcGFjZVNlcnZlclR5cGUgdHlwZShOU1VSTFByb3Rl
Y3Rpb25TcGFjZSAqc3BhY2UpCitzdGF0aWMgUHJvdGVjdGlvblNwYWNlOjpTZXJ2ZXJUeXBlIHR5
cGUoTlNVUkxQcm90ZWN0aW9uU3BhY2UgKnNwYWNlKQogewogICAgIGlmIChbc3BhY2UgaXNQcm94
eV0pIHsKICAgICAgICAgTlNTdHJpbmcgKnByb3h5VHlwZSA9IHNwYWNlLnByb3h5VHlwZTsKICAg
ICAgICAgaWYgKFtwcm94eVR5cGUgaXNFcXVhbFRvU3RyaW5nOk5TVVJMUHJvdGVjdGlvblNwYWNl
SFRUUFByb3h5XSkKLSAgICAgICAgICAgIHJldHVybiBQcm90ZWN0aW9uU3BhY2VQcm94eUhUVFA7
CisgICAgICAgICAgICByZXR1cm4gUHJvdGVjdGlvblNwYWNlOjpTZXJ2ZXJUeXBlOjpQcm94eUhU
VFA7CiAgICAgICAgIGlmIChbcHJveHlUeXBlIGlzRXF1YWxUb1N0cmluZzpOU1VSTFByb3RlY3Rp
b25TcGFjZUhUVFBTUHJveHldKQotICAgICAgICAgICAgcmV0dXJuIFByb3RlY3Rpb25TcGFjZVBy
b3h5SFRUUFM7CisgICAgICAgICAgICByZXR1cm4gUHJvdGVjdGlvblNwYWNlOjpTZXJ2ZXJUeXBl
OjpQcm94eUhUVFBTOwogICAgICAgICBpZiAoW3Byb3h5VHlwZSBpc0VxdWFsVG9TdHJpbmc6TlNV
UkxQcm90ZWN0aW9uU3BhY2VGVFBQcm94eV0pCi0gICAgICAgICAgICByZXR1cm4gUHJvdGVjdGlv
blNwYWNlUHJveHlGVFA7CisgICAgICAgICAgICByZXR1cm4gUHJvdGVjdGlvblNwYWNlOjpTZXJ2
ZXJUeXBlOjpQcm94eUZUUDsKICAgICAgICAgaWYgKFtwcm94eVR5cGUgaXNFcXVhbFRvU3RyaW5n
Ok5TVVJMUHJvdGVjdGlvblNwYWNlU09DS1NQcm94eV0pCi0gICAgICAgICAgICByZXR1cm4gUHJv
dGVjdGlvblNwYWNlUHJveHlTT0NLUzsKKyAgICAgICAgICAgIHJldHVybiBQcm90ZWN0aW9uU3Bh
Y2U6OlNlcnZlclR5cGU6OlByb3h5U09DS1M7CiAKICAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVE
KCk7Ci0gICAgICAgIHJldHVybiBQcm90ZWN0aW9uU3BhY2VQcm94eUhUVFA7CisgICAgICAgIHJl
dHVybiBQcm90ZWN0aW9uU3BhY2U6OlNlcnZlclR5cGU6OlByb3h5SFRUUDsKICAgICB9CiAKICAg
ICBOU1N0cmluZyAqcHJvdG9jb2wgPSBzcGFjZS5wcm90b2NvbDsKICAgICBpZiAoW3Byb3RvY29s
IGNhc2VJbnNlbnNpdGl2ZUNvbXBhcmU6QCJodHRwIl0gPT0gTlNPcmRlcmVkU2FtZSkKLSAgICAg
ICAgcmV0dXJuIFByb3RlY3Rpb25TcGFjZVNlcnZlckhUVFA7CisgICAgICAgIHJldHVybiBQcm90
ZWN0aW9uU3BhY2U6OlNlcnZlclR5cGU6OkhUVFA7CiAgICAgaWYgKFtwcm90b2NvbCBjYXNlSW5z
ZW5zaXRpdmVDb21wYXJlOkAiaHR0cHMiXSA9PSBOU09yZGVyZWRTYW1lKQotICAgICAgICByZXR1
cm4gUHJvdGVjdGlvblNwYWNlU2VydmVySFRUUFM7CisgICAgICAgIHJldHVybiBQcm90ZWN0aW9u
U3BhY2U6OlNlcnZlclR5cGU6OkhUVFBTOwogICAgIGlmIChbcHJvdG9jb2wgY2FzZUluc2Vuc2l0
aXZlQ29tcGFyZTpAImZ0cCJdID09IE5TT3JkZXJlZFNhbWUpCi0gICAgICAgIHJldHVybiBQcm90
ZWN0aW9uU3BhY2VTZXJ2ZXJGVFA7CisgICAgICAgIHJldHVybiBQcm90ZWN0aW9uU3BhY2U6OlNl
cnZlclR5cGU6OkZUUDsKICAgICBpZiAoW3Byb3RvY29sIGNhc2VJbnNlbnNpdGl2ZUNvbXBhcmU6
QCJmdHBzIl0gPT0gTlNPcmRlcmVkU2FtZSkKLSAgICAgICAgcmV0dXJuIFByb3RlY3Rpb25TcGFj
ZVNlcnZlckZUUFM7CisgICAgICAgIHJldHVybiBQcm90ZWN0aW9uU3BhY2U6OlNlcnZlclR5cGU6
OkZUUFM7CiAKICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKLSAgICByZXR1cm4gUHJvdGVjdGlv
blNwYWNlU2VydmVySFRUUDsKKyAgICByZXR1cm4gUHJvdGVjdGlvblNwYWNlOjpTZXJ2ZXJUeXBl
OjpIVFRQOwogfQogCi1zdGF0aWMgUHJvdGVjdGlvblNwYWNlQXV0aGVudGljYXRpb25TY2hlbWUg
c2NoZW1lKE5TVVJMUHJvdGVjdGlvblNwYWNlICpzcGFjZSkKK3N0YXRpYyBQcm90ZWN0aW9uU3Bh
Y2U6OkF1dGhlbnRpY2F0aW9uU2NoZW1lIHNjaGVtZShOU1VSTFByb3RlY3Rpb25TcGFjZSAqc3Bh
Y2UpCiB7CiAgICAgTlNTdHJpbmcgKm1ldGhvZCA9IHNwYWNlLmF1dGhlbnRpY2F0aW9uTWV0aG9k
OwogICAgIGlmIChbbWV0aG9kIGlzRXF1YWxUb1N0cmluZzpOU1VSTEF1dGhlbnRpY2F0aW9uTWV0
aG9kRGVmYXVsdF0pCi0gICAgICAgIHJldHVybiBQcm90ZWN0aW9uU3BhY2VBdXRoZW50aWNhdGlv
blNjaGVtZURlZmF1bHQ7CisgICAgICAgIHJldHVybiBQcm90ZWN0aW9uU3BhY2U6OkF1dGhlbnRp
Y2F0aW9uU2NoZW1lOjpEZWZhdWx0OwogICAgIGlmIChbbWV0aG9kIGlzRXF1YWxUb1N0cmluZzpO
U1VSTEF1dGhlbnRpY2F0aW9uTWV0aG9kSFRUUEJhc2ljXSkKLSAgICAgICAgcmV0dXJuIFByb3Rl
Y3Rpb25TcGFjZUF1dGhlbnRpY2F0aW9uU2NoZW1lSFRUUEJhc2ljOworICAgICAgICByZXR1cm4g
UHJvdGVjdGlvblNwYWNlOjpBdXRoZW50aWNhdGlvblNjaGVtZTo6SFRUUEJhc2ljOwogICAgIGlm
IChbbWV0aG9kIGlzRXF1YWxUb1N0cmluZzpOU1VSTEF1dGhlbnRpY2F0aW9uTWV0aG9kSFRUUERp
Z2VzdF0pCi0gICAgICAgIHJldHVybiBQcm90ZWN0aW9uU3BhY2VBdXRoZW50aWNhdGlvblNjaGVt
ZUhUVFBEaWdlc3Q7CisgICAgICAgIHJldHVybiBQcm90ZWN0aW9uU3BhY2U6OkF1dGhlbnRpY2F0
aW9uU2NoZW1lOjpIVFRQRGlnZXN0OwogICAgIGlmIChbbWV0aG9kIGlzRXF1YWxUb1N0cmluZzpO
U1VSTEF1dGhlbnRpY2F0aW9uTWV0aG9kSFRNTEZvcm1dKQotICAgICAgICByZXR1cm4gUHJvdGVj
dGlvblNwYWNlQXV0aGVudGljYXRpb25TY2hlbWVIVE1MRm9ybTsKKyAgICAgICAgcmV0dXJuIFBy
b3RlY3Rpb25TcGFjZTo6QXV0aGVudGljYXRpb25TY2hlbWU6OkhUTUxGb3JtOwogICAgIGlmIChb
bWV0aG9kIGlzRXF1YWxUb1N0cmluZzpOU1VSTEF1dGhlbnRpY2F0aW9uTWV0aG9kTlRMTV0pCi0g
ICAgICAgIHJldHVybiBQcm90ZWN0aW9uU3BhY2VBdXRoZW50aWNhdGlvblNjaGVtZU5UTE07Cisg
ICAgICAgIHJldHVybiBQcm90ZWN0aW9uU3BhY2U6OkF1dGhlbnRpY2F0aW9uU2NoZW1lOjpOVExN
OwogICAgIGlmIChbbWV0aG9kIGlzRXF1YWxUb1N0cmluZzpOU1VSTEF1dGhlbnRpY2F0aW9uTWV0
aG9kTmVnb3RpYXRlXSkKLSAgICAgICAgcmV0dXJuIFByb3RlY3Rpb25TcGFjZUF1dGhlbnRpY2F0
aW9uU2NoZW1lTmVnb3RpYXRlOworICAgICAgICByZXR1cm4gUHJvdGVjdGlvblNwYWNlOjpBdXRo
ZW50aWNhdGlvblNjaGVtZTo6TmVnb3RpYXRlOwogI2lmIFVTRShQUk9URUNUSU9OX1NQQUNFX0FV
VEhfQ0FMTEJBQ0spCiAgICAgaWYgKFttZXRob2QgaXNFcXVhbFRvU3RyaW5nOk5TVVJMQXV0aGVu
dGljYXRpb25NZXRob2RDbGllbnRDZXJ0aWZpY2F0ZV0pCi0gICAgICAgIHJldHVybiBQcm90ZWN0
aW9uU3BhY2VBdXRoZW50aWNhdGlvblNjaGVtZUNsaWVudENlcnRpZmljYXRlUmVxdWVzdGVkOwor
ICAgICAgICByZXR1cm4gUHJvdGVjdGlvblNwYWNlOjpBdXRoZW50aWNhdGlvblNjaGVtZTo6Q2xp
ZW50Q2VydGlmaWNhdGVSZXF1ZXN0ZWQ7CiAgICAgaWYgKFttZXRob2QgaXNFcXVhbFRvU3RyaW5n
Ok5TVVJMQXV0aGVudGljYXRpb25NZXRob2RTZXJ2ZXJUcnVzdF0pCi0gICAgICAgIHJldHVybiBQ
cm90ZWN0aW9uU3BhY2VBdXRoZW50aWNhdGlvblNjaGVtZVNlcnZlclRydXN0RXZhbHVhdGlvblJl
cXVlc3RlZDsKKyAgICAgICAgcmV0dXJuIFByb3RlY3Rpb25TcGFjZTo6QXV0aGVudGljYXRpb25T
Y2hlbWU6OlNlcnZlclRydXN0RXZhbHVhdGlvblJlcXVlc3RlZDsKICNlbmRpZgogICAgIGlmIChb
bWV0aG9kIGlzRXF1YWxUb1N0cmluZzpOU1VSTEF1dGhlbnRpY2F0aW9uTWV0aG9kT0F1dGhdKQot
ICAgICAgICByZXR1cm4gUHJvdGVjdGlvblNwYWNlQXV0aGVudGljYXRpb25TY2hlbWVPQXV0aDsK
KyAgICAgICAgcmV0dXJuIFByb3RlY3Rpb25TcGFjZTo6QXV0aGVudGljYXRpb25TY2hlbWU6Ok9B
dXRoOwogCiAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7Ci0gICAgcmV0dXJuIFByb3RlY3Rpb25T
cGFjZUF1dGhlbnRpY2F0aW9uU2NoZW1lVW5rbm93bjsKKyAgICByZXR1cm4gUHJvdGVjdGlvblNw
YWNlOjpBdXRoZW50aWNhdGlvblNjaGVtZTo6VW5rbm93bjsKIH0KIAogUHJvdGVjdGlvblNwYWNl
OjpQcm90ZWN0aW9uU3BhY2UoTlNVUkxQcm90ZWN0aW9uU3BhY2UgKnNwYWNlKQpAQCAtMTAzLDI4
ICsxMDMsMjggQEAgTlNVUkxQcm90ZWN0aW9uU3BhY2UgKlByb3RlY3Rpb25TcGFjZTo6bnNTcGFj
ZSgpIGNvbnN0CiAgICAgTlNTdHJpbmcgKnByb3h5VHlwZSA9IG5pbDsKICAgICBOU1N0cmluZyAq
cHJvdG9jb2wgPSBuaWw7CiAgICAgc3dpdGNoIChzZXJ2ZXJUeXBlKCkpIHsKLSAgICBjYXNlIFBy
b3RlY3Rpb25TcGFjZVNlcnZlckhUVFA6CisgICAgY2FzZSBQcm90ZWN0aW9uU3BhY2U6OlNlcnZl
clR5cGU6OkhUVFA6CiAgICAgICAgIHByb3RvY29sID0gQCJodHRwIjsKICAgICAgICAgYnJlYWs7
Ci0gICAgY2FzZSBQcm90ZWN0aW9uU3BhY2VTZXJ2ZXJIVFRQUzoKKyAgICBjYXNlIFByb3RlY3Rp
b25TcGFjZTo6U2VydmVyVHlwZTo6SFRUUFM6CiAgICAgICAgIHByb3RvY29sID0gQCJodHRwcyI7
CiAgICAgICAgIGJyZWFrOwotICAgIGNhc2UgUHJvdGVjdGlvblNwYWNlU2VydmVyRlRQOgorICAg
IGNhc2UgUHJvdGVjdGlvblNwYWNlOjpTZXJ2ZXJUeXBlOjpGVFA6CiAgICAgICAgIHByb3RvY29s
ID0gQCJmdHAiOwogICAgICAgICBicmVhazsKLSAgICBjYXNlIFByb3RlY3Rpb25TcGFjZVNlcnZl
ckZUUFM6CisgICAgY2FzZSBQcm90ZWN0aW9uU3BhY2U6OlNlcnZlclR5cGU6OkZUUFM6CiAgICAg
ICAgIHByb3RvY29sID0gQCJmdHBzIjsKICAgICAgICAgYnJlYWs7Ci0gICAgY2FzZSBQcm90ZWN0
aW9uU3BhY2VQcm94eUhUVFA6CisgICAgY2FzZSBQcm90ZWN0aW9uU3BhY2U6OlNlcnZlclR5cGU6
OlByb3h5SFRUUDoKICAgICAgICAgcHJveHlUeXBlID0gTlNVUkxQcm90ZWN0aW9uU3BhY2VIVFRQ
UHJveHk7CiAgICAgICAgIGJyZWFrOwotICAgIGNhc2UgUHJvdGVjdGlvblNwYWNlUHJveHlIVFRQ
UzoKKyAgICBjYXNlIFByb3RlY3Rpb25TcGFjZTo6U2VydmVyVHlwZTo6UHJveHlIVFRQUzoKICAg
ICAgICAgcHJveHlUeXBlID0gTlNVUkxQcm90ZWN0aW9uU3BhY2VIVFRQU1Byb3h5OwogICAgICAg
ICBicmVhazsKLSAgICBjYXNlIFByb3RlY3Rpb25TcGFjZVByb3h5RlRQOgorICAgIGNhc2UgUHJv
dGVjdGlvblNwYWNlOjpTZXJ2ZXJUeXBlOjpQcm94eUZUUDoKICAgICAgICAgcHJveHlUeXBlID0g
TlNVUkxQcm90ZWN0aW9uU3BhY2VGVFBQcm94eTsKICAgICAgICAgYnJlYWs7Ci0gICAgY2FzZSBQ
cm90ZWN0aW9uU3BhY2VQcm94eVNPQ0tTOgorICAgIGNhc2UgUHJvdGVjdGlvblNwYWNlOjpTZXJ2
ZXJUeXBlOjpQcm94eVNPQ0tTOgogICAgICAgICBwcm94eVR5cGUgPSBOU1VSTFByb3RlY3Rpb25T
cGFjZVNPQ0tTUHJveHk7CiAgICAgICAgIGJyZWFrOwogICAgIGRlZmF1bHQ6CkBAIC0xMzMsMzMg
KzEzMywzMyBAQCBOU1VSTFByb3RlY3Rpb25TcGFjZSAqUHJvdGVjdGlvblNwYWNlOjpuc1NwYWNl
KCkgY29uc3QKICAgCiAgICAgTlNTdHJpbmcgKm1ldGhvZCA9IG5pbDsKICAgICBzd2l0Y2ggKGF1
dGhlbnRpY2F0aW9uU2NoZW1lKCkpIHsKLSAgICBjYXNlIFByb3RlY3Rpb25TcGFjZUF1dGhlbnRp
Y2F0aW9uU2NoZW1lRGVmYXVsdDoKKyAgICBjYXNlIFByb3RlY3Rpb25TcGFjZTo6QXV0aGVudGlj
YXRpb25TY2hlbWU6OkRlZmF1bHQ6CiAgICAgICAgIG1ldGhvZCA9IE5TVVJMQXV0aGVudGljYXRp
b25NZXRob2REZWZhdWx0OwogICAgICAgICBicmVhazsKLSAgICBjYXNlIFByb3RlY3Rpb25TcGFj
ZUF1dGhlbnRpY2F0aW9uU2NoZW1lSFRUUEJhc2ljOgorICAgIGNhc2UgUHJvdGVjdGlvblNwYWNl
OjpBdXRoZW50aWNhdGlvblNjaGVtZTo6SFRUUEJhc2ljOgogICAgICAgICBtZXRob2QgPSBOU1VS
TEF1dGhlbnRpY2F0aW9uTWV0aG9kSFRUUEJhc2ljOwogICAgICAgICBicmVhazsKLSAgICBjYXNl
IFByb3RlY3Rpb25TcGFjZUF1dGhlbnRpY2F0aW9uU2NoZW1lSFRUUERpZ2VzdDoKKyAgICBjYXNl
IFByb3RlY3Rpb25TcGFjZTo6QXV0aGVudGljYXRpb25TY2hlbWU6OkhUVFBEaWdlc3Q6CiAgICAg
ICAgIG1ldGhvZCA9IE5TVVJMQXV0aGVudGljYXRpb25NZXRob2RIVFRQRGlnZXN0OwogICAgICAg
ICBicmVhazsKLSAgICBjYXNlIFByb3RlY3Rpb25TcGFjZUF1dGhlbnRpY2F0aW9uU2NoZW1lSFRN
TEZvcm06CisgICAgY2FzZSBQcm90ZWN0aW9uU3BhY2U6OkF1dGhlbnRpY2F0aW9uU2NoZW1lOjpI
VE1MRm9ybToKICAgICAgICAgbWV0aG9kID0gTlNVUkxBdXRoZW50aWNhdGlvbk1ldGhvZEhUTUxG
b3JtOwogICAgICAgICBicmVhazsKLSAgICBjYXNlIFByb3RlY3Rpb25TcGFjZUF1dGhlbnRpY2F0
aW9uU2NoZW1lTlRMTToKKyAgICBjYXNlIFByb3RlY3Rpb25TcGFjZTo6QXV0aGVudGljYXRpb25T
Y2hlbWU6Ok5UTE06CiAgICAgICAgIG1ldGhvZCA9IE5TVVJMQXV0aGVudGljYXRpb25NZXRob2RO
VExNOwogICAgICAgICBicmVhazsKLSAgICBjYXNlIFByb3RlY3Rpb25TcGFjZUF1dGhlbnRpY2F0
aW9uU2NoZW1lTmVnb3RpYXRlOgorICAgIGNhc2UgUHJvdGVjdGlvblNwYWNlOjpBdXRoZW50aWNh
dGlvblNjaGVtZTo6TmVnb3RpYXRlOgogICAgICAgICBtZXRob2QgPSBOU1VSTEF1dGhlbnRpY2F0
aW9uTWV0aG9kTmVnb3RpYXRlOwogICAgICAgICBicmVhazsKICNpZiBVU0UoUFJPVEVDVElPTl9T
UEFDRV9BVVRIX0NBTExCQUNLKQotICAgIGNhc2UgUHJvdGVjdGlvblNwYWNlQXV0aGVudGljYXRp
b25TY2hlbWVTZXJ2ZXJUcnVzdEV2YWx1YXRpb25SZXF1ZXN0ZWQ6CisgICAgY2FzZSBQcm90ZWN0
aW9uU3BhY2U6OkF1dGhlbnRpY2F0aW9uU2NoZW1lOjpTZXJ2ZXJUcnVzdEV2YWx1YXRpb25SZXF1
ZXN0ZWQ6CiAgICAgICAgIG1ldGhvZCA9IE5TVVJMQXV0aGVudGljYXRpb25NZXRob2RTZXJ2ZXJU
cnVzdDsKICAgICAgICAgYnJlYWs7Ci0gICAgY2FzZSBQcm90ZWN0aW9uU3BhY2VBdXRoZW50aWNh
dGlvblNjaGVtZUNsaWVudENlcnRpZmljYXRlUmVxdWVzdGVkOgorICAgIGNhc2UgUHJvdGVjdGlv
blNwYWNlOjpBdXRoZW50aWNhdGlvblNjaGVtZTo6Q2xpZW50Q2VydGlmaWNhdGVSZXF1ZXN0ZWQ6
CiAgICAgICAgIG1ldGhvZCA9IE5TVVJMQXV0aGVudGljYXRpb25NZXRob2RDbGllbnRDZXJ0aWZp
Y2F0ZTsKICAgICAgICAgYnJlYWs7CiAjZW5kaWYKLSAgICBjYXNlIFByb3RlY3Rpb25TcGFjZUF1
dGhlbnRpY2F0aW9uU2NoZW1lT0F1dGg6CisgICAgY2FzZSBQcm90ZWN0aW9uU3BhY2U6OkF1dGhl
bnRpY2F0aW9uU2NoZW1lOjpPQXV0aDoKICAgICAgICAgbWV0aG9kID0gTlNVUkxBdXRoZW50aWNh
dGlvbk1ldGhvZE9BdXRoOwogICAgICAgICBicmVhazsKICAgICBkZWZhdWx0OgpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jdXJsL0F1dGhlbnRpY2F0aW9uQ2hh
bGxlbmdlLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2N1cmwvQXV0aGVudGlj
YXRpb25DaGFsbGVuZ2UuaAppbmRleCA4MTNkMmI1NDkxYTU1NDg5OGEzZjQ5NGM4YTM1NmEzZTQy
YTBjOTliLi5hYjcwYzg1YTRjNzE0Y2I2ODNkNTg1MjQwYzRjZWYzOWJhNjVmYmQxIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2N1cmwvQXV0aGVudGljYXRpb25D
aGFsbGVuZ2UuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2N1cmwvQXV0
aGVudGljYXRpb25DaGFsbGVuZ2UuaApAQCAtNTAsMTEgKzUwLDExIEBAIHB1YmxpYzoKICAgICBB
dXRoZW50aWNhdGlvbkNsaWVudCogYXV0aGVudGljYXRpb25DbGllbnQoKSBjb25zdCB7IHJldHVy
biBtX2F1dGhlbnRpY2F0aW9uQ2xpZW50LmdldCgpOyB9CiAKIHByaXZhdGU6Ci0gICAgUHJvdGVj
dGlvblNwYWNlU2VydmVyVHlwZSBwcm90ZWN0aW9uU3BhY2VTZXJ2ZXJUeXBlRnJvbVVSSShjb25z
dCBVUkwmLCBib29sIGlzRm9yUHJveHkpOworICAgIFByb3RlY3Rpb25TcGFjZTo6U2VydmVyVHlw
ZSBwcm90ZWN0aW9uU3BhY2VTZXJ2ZXJUeXBlRnJvbVVSSShjb25zdCBVUkwmLCBib29sIGlzRm9y
UHJveHkpOwogICAgIFByb3RlY3Rpb25TcGFjZSBwcm90ZWN0aW9uU3BhY2VGb3JQYXNzd29yZEJh
c2VkKGNvbnN0IEN1cmxSZXNwb25zZSYsIGNvbnN0IFJlc291cmNlUmVzcG9uc2UmKTsKICAgICBQ
cm90ZWN0aW9uU3BhY2UgcHJvdGVjdGlvblNwYWNlRm9yU2VydmVyVHJ1c3QoY29uc3QgVVJMJiwg
Y29uc3QgQ2VydGlmaWNhdGVJbmZvJik7CiAgICAgc3RkOjpvcHRpb25hbDx1aW50MTZfdD4gZGV0
ZXJtaW5lUHJveHlQb3J0KGNvbnN0IFVSTCYpOwotICAgIFByb3RlY3Rpb25TcGFjZUF1dGhlbnRp
Y2F0aW9uU2NoZW1lIGF1dGhlbnRpY2F0aW9uU2NoZW1lRnJvbUN1cmxBdXRoKGxvbmcpOworICAg
IFByb3RlY3Rpb25TcGFjZTo6QXV0aGVudGljYXRpb25TY2hlbWUgYXV0aGVudGljYXRpb25TY2hl
bWVGcm9tQ3VybEF1dGgobG9uZyk7CiAgICAgU3RyaW5nIHBhcnNlUmVhbG0oY29uc3QgUmVzb3Vy
Y2VSZXNwb25zZSYpOwogICAgIHZvaWQgcmVtb3ZlTGVhZGluZ0FuZFRyYWlsaW5nUXVvdGVzKFN0
cmluZyYpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2N1
cmwvQXV0aGVudGljYXRpb25DaGFsbGVuZ2VDdXJsLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL25ldHdvcmsvY3VybC9BdXRoZW50aWNhdGlvbkNoYWxsZW5nZUN1cmwuY3BwCmluZGV4IDBm
ZjkxYmI0Zjk0MTdjNzkyNzkzOWE3MTMxYjcyMzkwZGMwYjgxODMuLmI2NjI5NjBjZDBhYTNmNjNk
YzZjNzhhNDdlMjhjYzIwMTg2ZTM1NTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL25ldHdvcmsvY3VybC9BdXRoZW50aWNhdGlvbkNoYWxsZW5nZUN1cmwuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY3VybC9BdXRoZW50aWNhdGlvbkNoYWxsZW5n
ZUN1cmwuY3BwCkBAIC00NiwxNSArNDYsMTUgQEAgQXV0aGVudGljYXRpb25DaGFsbGVuZ2U6OkF1
dGhlbnRpY2F0aW9uQ2hhbGxlbmdlKGNvbnN0IFVSTCYgdXJsLCBjb25zdCBDZXJ0aWZpY2EKIHsK
IH0KIAotUHJvdGVjdGlvblNwYWNlU2VydmVyVHlwZSBBdXRoZW50aWNhdGlvbkNoYWxsZW5nZTo6
cHJvdGVjdGlvblNwYWNlU2VydmVyVHlwZUZyb21VUkkoY29uc3QgVVJMJiB1cmwsIGJvb2wgaXNG
b3JQcm94eSkKK1Byb3RlY3Rpb25TcGFjZTo6U2VydmVyVHlwZSBBdXRoZW50aWNhdGlvbkNoYWxs
ZW5nZTo6cHJvdGVjdGlvblNwYWNlU2VydmVyVHlwZUZyb21VUkkoY29uc3QgVVJMJiB1cmwsIGJv
b2wgaXNGb3JQcm94eSkKIHsKICAgICBpZiAodXJsLnByb3RvY29sSXMoImh0dHBzIikpCi0gICAg
ICAgIHJldHVybiBpc0ZvclByb3h5ID8gUHJvdGVjdGlvblNwYWNlUHJveHlIVFRQUyA6IFByb3Rl
Y3Rpb25TcGFjZVNlcnZlckhUVFBTOworICAgICAgICByZXR1cm4gaXNGb3JQcm94eSA/IFByb3Rl
Y3Rpb25TcGFjZTo6U2VydmVyVHlwZTo6UHJveHlIVFRQUyA6IFByb3RlY3Rpb25TcGFjZTo6U2Vy
dmVyVHlwZTo6SFRUUFM7CiAgICAgaWYgKHVybC5wcm90b2NvbElzKCJodHRwIikpCi0gICAgICAg
IHJldHVybiBpc0ZvclByb3h5ID8gUHJvdGVjdGlvblNwYWNlUHJveHlIVFRQIDogUHJvdGVjdGlv
blNwYWNlU2VydmVySFRUUDsKKyAgICAgICAgcmV0dXJuIGlzRm9yUHJveHkgPyBQcm90ZWN0aW9u
U3BhY2U6OlNlcnZlclR5cGU6OlByb3h5SFRUUCA6IFByb3RlY3Rpb25TcGFjZTo6U2VydmVyVHlw
ZTo6SFRUUDsKICAgICBpZiAodXJsLnByb3RvY29sSXMoImZ0cCIpKQotICAgICAgICByZXR1cm4g
aXNGb3JQcm94eSA/IFByb3RlY3Rpb25TcGFjZVByb3h5RlRQIDogUHJvdGVjdGlvblNwYWNlU2Vy
dmVyRlRQOwotICAgIHJldHVybiBpc0ZvclByb3h5ID8gUHJvdGVjdGlvblNwYWNlUHJveHlIVFRQ
IDogUHJvdGVjdGlvblNwYWNlU2VydmVySFRUUDsKKyAgICAgICAgcmV0dXJuIGlzRm9yUHJveHkg
PyBQcm90ZWN0aW9uU3BhY2U6OlNlcnZlclR5cGU6OlByb3h5RlRQIDogUHJvdGVjdGlvblNwYWNl
OjpTZXJ2ZXJUeXBlOjpGVFA7CisgICAgcmV0dXJuIGlzRm9yUHJveHkgPyBQcm90ZWN0aW9uU3Bh
Y2U6OlNlcnZlclR5cGU6OlByb3h5SFRUUCA6IFByb3RlY3Rpb25TcGFjZTo6U2VydmVyVHlwZTo6
SFRUUDsKIH0KIAogUHJvdGVjdGlvblNwYWNlIEF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlOjpwcm90
ZWN0aW9uU3BhY2VGb3JQYXNzd29yZEJhc2VkKGNvbnN0IEN1cmxSZXNwb25zZSYgY3VybFJlc3Bv
bnNlLCBjb25zdCBSZXNvdXJjZVJlc3BvbnNlJiByZXNwb25zZSkKQEAgLTc1LDcgKzc1LDcgQEAg
UHJvdGVjdGlvblNwYWNlIEF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlOjpwcm90ZWN0aW9uU3BhY2VG
b3JTZXJ2ZXJUcnVzdChjb25zdCBVUkwKIHsKICAgICBhdXRvIHBvcnQgPSBkZXRlcm1pbmVQcm94
eVBvcnQodXJsKTsKICAgICBhdXRvIHNlcnZlclR5cGUgPSBwcm90ZWN0aW9uU3BhY2VTZXJ2ZXJU
eXBlRnJvbVVSSSh1cmwsIGZhbHNlKTsKLSAgICBhdXRvIGF1dGhlbnRpY2F0aW9uU2NoZW1lID0g
UHJvdGVjdGlvblNwYWNlQXV0aGVudGljYXRpb25TY2hlbWVTZXJ2ZXJUcnVzdEV2YWx1YXRpb25S
ZXF1ZXN0ZWQ7CisgICAgYXV0byBhdXRoZW50aWNhdGlvblNjaGVtZSA9IFByb3RlY3Rpb25TcGFj
ZTo6QXV0aGVudGljYXRpb25TY2hlbWU6OlNlcnZlclRydXN0RXZhbHVhdGlvblJlcXVlc3RlZDsK
IAogICAgIHJldHVybiBQcm90ZWN0aW9uU3BhY2UodXJsLmhvc3QoKS50b1N0cmluZygpLCBzdGF0
aWNfY2FzdDxpbnQ+KHBvcnQudmFsdWVfb3IoMCkpLCBzZXJ2ZXJUeXBlLCBTdHJpbmcoKSwgYXV0
aGVudGljYXRpb25TY2hlbWUsIGNlcnRpZmljYXRlSW5mbyk7CiB9CkBAIC05NiwxNyArOTYsMTcg
QEAgc3RkOjpvcHRpb25hbDx1aW50MTZfdD4gQXV0aGVudGljYXRpb25DaGFsbGVuZ2U6OmRldGVy
bWluZVByb3h5UG9ydChjb25zdCBVUkwmIHUKICAgICByZXR1cm4gc3RkOjpudWxsb3B0OwogfQog
Ci1Qcm90ZWN0aW9uU3BhY2VBdXRoZW50aWNhdGlvblNjaGVtZSBBdXRoZW50aWNhdGlvbkNoYWxs
ZW5nZTo6YXV0aGVudGljYXRpb25TY2hlbWVGcm9tQ3VybEF1dGgobG9uZyBjdXJsQXV0aCkKK1By
b3RlY3Rpb25TcGFjZTo6QXV0aGVudGljYXRpb25TY2hlbWUgQXV0aGVudGljYXRpb25DaGFsbGVu
Z2U6OmF1dGhlbnRpY2F0aW9uU2NoZW1lRnJvbUN1cmxBdXRoKGxvbmcgY3VybEF1dGgpCiB7CiAg
ICAgaWYgKGN1cmxBdXRoICYgQ1VSTEFVVEhfTlRMTSkKLSAgICAgICAgcmV0dXJuIFByb3RlY3Rp
b25TcGFjZUF1dGhlbnRpY2F0aW9uU2NoZW1lTlRMTTsKKyAgICAgICAgcmV0dXJuIFByb3RlY3Rp
b25TcGFjZTo6QXV0aGVudGljYXRpb25TY2hlbWU6Ok5UTE07CiAgICAgaWYgKGN1cmxBdXRoICYg
Q1VSTEFVVEhfTkVHT1RJQVRFKQotICAgICAgICByZXR1cm4gUHJvdGVjdGlvblNwYWNlQXV0aGVu
dGljYXRpb25TY2hlbWVOZWdvdGlhdGU7CisgICAgICAgIHJldHVybiBQcm90ZWN0aW9uU3BhY2U6
OkF1dGhlbnRpY2F0aW9uU2NoZW1lOjpOZWdvdGlhdGU7CiAgICAgaWYgKGN1cmxBdXRoICYgQ1VS
TEFVVEhfRElHRVNUKQotICAgICAgICByZXR1cm4gUHJvdGVjdGlvblNwYWNlQXV0aGVudGljYXRp
b25TY2hlbWVIVFRQRGlnZXN0OworICAgICAgICByZXR1cm4gUHJvdGVjdGlvblNwYWNlOjpBdXRo
ZW50aWNhdGlvblNjaGVtZTo6SFRUUERpZ2VzdDsKICAgICBpZiAoY3VybEF1dGggJiBDVVJMQVVU
SF9CQVNJQykKLSAgICAgICAgcmV0dXJuIFByb3RlY3Rpb25TcGFjZUF1dGhlbnRpY2F0aW9uU2No
ZW1lSFRUUEJhc2ljOwotICAgIHJldHVybiBQcm90ZWN0aW9uU3BhY2VBdXRoZW50aWNhdGlvblNj
aGVtZVVua25vd247CisgICAgICAgIHJldHVybiBQcm90ZWN0aW9uU3BhY2U6OkF1dGhlbnRpY2F0
aW9uU2NoZW1lOjpIVFRQQmFzaWM7CisgICAgcmV0dXJuIFByb3RlY3Rpb25TcGFjZTo6QXV0aGVu
dGljYXRpb25TY2hlbWU6OlVua25vd247CiB9CiAKIFN0cmluZyBBdXRoZW50aWNhdGlvbkNoYWxs
ZW5nZTo6cGFyc2VSZWFsbShjb25zdCBSZXNvdXJjZVJlc3BvbnNlJiByZXNwb25zZSkKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY3VybC9DdXJsUmVxdWVzdC5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2N1cmwvQ3VybFJlcXVlc3QuY3Bw
CmluZGV4IGQ4MmRkM2MxMGFjNjQ3MTM1OTkxZmQ3YWU2Njk3ZTlkOGUzMTNlODkuLmJhY2IyYjU1
MGIyODQxMzFkMWFjMjBhYTY2Mzg4NmZlMjJmZTdmOTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL25ldHdvcmsvY3VybC9DdXJsUmVxdWVzdC5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vbmV0d29yay9jdXJsL0N1cmxSZXF1ZXN0LmNwcApAQCAtNjQsMjIgKzY0
LDIyIEBAIHZvaWQgQ3VybFJlcXVlc3Q6OmludmFsaWRhdGVDbGllbnQoKQogICAgIG1fbWVzc2Fn
ZVF1ZXVlID0gbnVsbHB0cjsKIH0KIAotdm9pZCBDdXJsUmVxdWVzdDo6c2V0QXV0aGVudGljYXRp
b25TY2hlbWUoUHJvdGVjdGlvblNwYWNlQXV0aGVudGljYXRpb25TY2hlbWUgc2NoZW1lKQordm9p
ZCBDdXJsUmVxdWVzdDo6c2V0QXV0aGVudGljYXRpb25TY2hlbWUoUHJvdGVjdGlvblNwYWNlOjpB
dXRoZW50aWNhdGlvblNjaGVtZSBzY2hlbWUpCiB7CiAgICAgc3dpdGNoIChzY2hlbWUpIHsKLSAg
ICBjYXNlIFByb3RlY3Rpb25TcGFjZUF1dGhlbnRpY2F0aW9uU2NoZW1lSFRUUEJhc2ljOgorICAg
IGNhc2UgUHJvdGVjdGlvblNwYWNlOjpBdXRoZW50aWNhdGlvblNjaGVtZTo6SFRUUEJhc2ljOgog
ICAgICAgICBtX2F1dGhUeXBlID0gQ1VSTEFVVEhfQkFTSUM7CiAgICAgICAgIGJyZWFrOwogCi0g
ICAgY2FzZSBQcm90ZWN0aW9uU3BhY2VBdXRoZW50aWNhdGlvblNjaGVtZUhUVFBEaWdlc3Q6Cisg
ICAgY2FzZSBQcm90ZWN0aW9uU3BhY2U6OkF1dGhlbnRpY2F0aW9uU2NoZW1lOjpIVFRQRGlnZXN0
OgogICAgICAgICBtX2F1dGhUeXBlID0gQ1VSTEFVVEhfRElHRVNUOwogICAgICAgICBicmVhazsK
IAotICAgIGNhc2UgUHJvdGVjdGlvblNwYWNlQXV0aGVudGljYXRpb25TY2hlbWVOVExNOgorICAg
IGNhc2UgUHJvdGVjdGlvblNwYWNlOjpBdXRoZW50aWNhdGlvblNjaGVtZTo6TlRMTToKICAgICAg
ICAgbV9hdXRoVHlwZSA9IENVUkxBVVRIX05UTE07CiAgICAgICAgIGJyZWFrOwogCi0gICAgY2Fz
ZSBQcm90ZWN0aW9uU3BhY2VBdXRoZW50aWNhdGlvblNjaGVtZU5lZ290aWF0ZToKKyAgICBjYXNl
IFByb3RlY3Rpb25TcGFjZTo6QXV0aGVudGljYXRpb25TY2hlbWU6Ok5lZ290aWF0ZToKICAgICAg
ICAgbV9hdXRoVHlwZSA9IENVUkxBVVRIX05FR09USUFURTsKICAgICAgICAgYnJlYWs7CiAKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY3VybC9DdXJsUmVxdWVz
dC5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jdXJsL0N1cmxSZXF1ZXN0LmgK
aW5kZXggM2M3Y2RkODgzZWI2MmJmZTkyY2YwNDQ1ZWQyOWJkMjZlY2UzZTkyMi4uYTZmYjMxNTc2
NmJhNWMyZjNlYTMyYjllZjUxZWIwMDNlOGNiODlkMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vbmV0d29yay9jdXJsL0N1cmxSZXF1ZXN0LmgKKysrIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vbmV0d29yay9jdXJsL0N1cmxSZXF1ZXN0LmgKQEAgLTcyLDcgKzcyLDcgQEAg
cHVibGljOgogICAgIHZpcnR1YWwgfkN1cmxSZXF1ZXN0KCk7CiAKICAgICB2b2lkIGludmFsaWRh
dGVDbGllbnQoKTsKLSAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHNldEF1dGhlbnRpY2F0aW9uU2No
ZW1lKFByb3RlY3Rpb25TcGFjZUF1dGhlbnRpY2F0aW9uU2NoZW1lKTsKKyAgICBXRUJDT1JFX0VY
UE9SVCB2b2lkIHNldEF1dGhlbnRpY2F0aW9uU2NoZW1lKFByb3RlY3Rpb25TcGFjZTo6QXV0aGVu
dGljYXRpb25TY2hlbWUpOwogICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgc2V0VXNlclBhc3MoY29u
c3QgU3RyaW5nJiwgY29uc3QgU3RyaW5nJik7CiAgICAgYm9vbCBpc1NlcnZlclRydXN0RXZhbHVh
dGlvbkRpc2FibGVkKCkgeyByZXR1cm4gbV9zaG91bGREaXNhYmxlU2VydmVyVHJ1c3RFdmFsdWF0
aW9uOyB9CiAgICAgdm9pZCBkaXNhYmxlU2VydmVyVHJ1c3RFdmFsdWF0aW9uKCkgeyBtX3Nob3Vs
ZERpc2FibGVTZXJ2ZXJUcnVzdEV2YWx1YXRpb24gPSB0cnVlOyB9CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2N1cmwvUHJvdGVjdGlvblNwYWNlQ3VybC5oIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jdXJsL1Byb3RlY3Rpb25TcGFjZUN1cmwu
aAppbmRleCA3MTMwYzM5ZGIyZTc4ZjI3MGE3YWYzMjkyZmRmZGRjM2E3NmYyYzQ2Li5hODY0OWY3
YTM4YWI4YWJlMDRhNDQ3Zjk1OTE3MGQyM2IyZTg3MWYwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9uZXR3b3JrL2N1cmwvUHJvdGVjdGlvblNwYWNlQ3VybC5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY3VybC9Qcm90ZWN0aW9uU3BhY2VDdXJsLmgK
QEAgLTM3LDEyICszNywxMiBAQCBwdWJsaWM6CiAgICAgewogICAgIH0KIAotICAgIFByb3RlY3Rp
b25TcGFjZShjb25zdCBTdHJpbmcmIGhvc3QsIGludCBwb3J0LCBQcm90ZWN0aW9uU3BhY2VTZXJ2
ZXJUeXBlIHNlcnZlclR5cGUsIGNvbnN0IFN0cmluZyYgcmVhbG0sIFByb3RlY3Rpb25TcGFjZUF1
dGhlbnRpY2F0aW9uU2NoZW1lIGF1dGhlbnRpY2F0aW9uU2NoZW1lKQorICAgIFByb3RlY3Rpb25T
cGFjZShjb25zdCBTdHJpbmcmIGhvc3QsIGludCBwb3J0LCBTZXJ2ZXJUeXBlIHNlcnZlclR5cGUs
IGNvbnN0IFN0cmluZyYgcmVhbG0sIEF1dGhlbnRpY2F0aW9uU2NoZW1lIGF1dGhlbnRpY2F0aW9u
U2NoZW1lKQogICAgICAgICA6IFByb3RlY3Rpb25TcGFjZUJhc2UoaG9zdCwgcG9ydCwgc2VydmVy
VHlwZSwgcmVhbG0sIGF1dGhlbnRpY2F0aW9uU2NoZW1lKQogICAgIHsKICAgICB9CiAKLSAgICBQ
cm90ZWN0aW9uU3BhY2UoY29uc3QgU3RyaW5nJiBob3N0LCBpbnQgcG9ydCwgUHJvdGVjdGlvblNw
YWNlU2VydmVyVHlwZSBzZXJ2ZXJUeXBlLCBjb25zdCBTdHJpbmcmIHJlYWxtLCBQcm90ZWN0aW9u
U3BhY2VBdXRoZW50aWNhdGlvblNjaGVtZSBhdXRoZW50aWNhdGlvblNjaGVtZSwgY29uc3QgQ2Vy
dGlmaWNhdGVJbmZvJiBjZXJ0aWZpY2F0ZUluZm8pCisgICAgUHJvdGVjdGlvblNwYWNlKGNvbnN0
IFN0cmluZyYgaG9zdCwgaW50IHBvcnQsIFNlcnZlclR5cGUgc2VydmVyVHlwZSwgY29uc3QgU3Ry
aW5nJiByZWFsbSwgQXV0aGVudGljYXRpb25TY2hlbWUgYXV0aGVudGljYXRpb25TY2hlbWUsIGNv
bnN0IENlcnRpZmljYXRlSW5mbyYgY2VydGlmaWNhdGVJbmZvKQogICAgICAgICA6IFByb3RlY3Rp
b25TcGFjZUJhc2UoaG9zdCwgcG9ydCwgc2VydmVyVHlwZSwgcmVhbG0sIGF1dGhlbnRpY2F0aW9u
U2NoZW1lKQogICAgICAgICAsIG1fY2VydGlmaWNhdGVJbmZvKGNlcnRpZmljYXRlSW5mbykKICAg
ICB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2N1cmwvUmVz
b3VyY2VIYW5kbGVDdXJsLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY3Vy
bC9SZXNvdXJjZUhhbmRsZUN1cmwuY3BwCmluZGV4IDgwZWM5ZWM1NWE2MmQzMzAzZWEyNWZmZjYw
ZjEyMTQwMTU5YjhiZDcuLjllZGJkMmU4MWE3ZjFlNDU2NzVkMDIxOTUzY2VmNTk5NWM2NDY1OTcg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY3VybC9SZXNvdXJj
ZUhhbmRsZUN1cmwuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY3Vy
bC9SZXNvdXJjZUhhbmRsZUN1cmwuY3BwCkBAIC04Niw3ICs4Niw3IEBAIGJvb2wgUmVzb3VyY2VI
YW5kbGU6OnN0YXJ0KCkKIAogICAgIGlmIChhdXRvIGNyZWRlbnRpYWwgPSBnZXRDcmVkZW50aWFs
KGQtPm1fZmlyc3RSZXF1ZXN0LCBmYWxzZSkpIHsKICAgICAgICAgZC0+bV9jdXJsUmVxdWVzdC0+
c2V0VXNlclBhc3MoY3JlZGVudGlhbC0+dXNlcigpLCBjcmVkZW50aWFsLT5wYXNzd29yZCgpKTsK
LSAgICAgICAgZC0+bV9jdXJsUmVxdWVzdC0+c2V0QXV0aGVudGljYXRpb25TY2hlbWUoUHJvdGVj
dGlvblNwYWNlQXV0aGVudGljYXRpb25TY2hlbWVIVFRQQmFzaWMpOworICAgICAgICBkLT5tX2N1
cmxSZXF1ZXN0LT5zZXRBdXRoZW50aWNhdGlvblNjaGVtZShQcm90ZWN0aW9uU3BhY2U6OkF1dGhl
bnRpY2F0aW9uU2NoZW1lOjpIVFRQQmFzaWMpOwogICAgIH0KIAogICAgIGQtPm1fY3VybFJlcXVl
c3QtPnN0YXJ0KCk7CkBAIC0zOTAsNyArMzkwLDcgQEAgdm9pZCBSZXNvdXJjZUhhbmRsZTo6cGxh
dGZvcm1Mb2FkUmVzb3VyY2VTeW5jaHJvbm91c2x5KE5ldHdvcmtpbmdDb250ZXh0KiBjb250ZXgK
IAogICAgIGlmIChhdXRvIGNyZWRlbnRpYWwgPSBoYW5kbGUtPmdldENyZWRlbnRpYWwoaGFuZGxl
LT5kLT5tX2ZpcnN0UmVxdWVzdCwgZmFsc2UpKSB7CiAgICAgICAgIGhhbmRsZS0+ZC0+bV9jdXJs
UmVxdWVzdC0+c2V0VXNlclBhc3MoY3JlZGVudGlhbC0+dXNlcigpLCBjcmVkZW50aWFsLT5wYXNz
d29yZCgpKTsKLSAgICAgICAgaGFuZGxlLT5kLT5tX2N1cmxSZXF1ZXN0LT5zZXRBdXRoZW50aWNh
dGlvblNjaGVtZShQcm90ZWN0aW9uU3BhY2VBdXRoZW50aWNhdGlvblNjaGVtZUhUVFBCYXNpYyk7
CisgICAgICAgIGhhbmRsZS0+ZC0+bV9jdXJsUmVxdWVzdC0+c2V0QXV0aGVudGljYXRpb25TY2hl
bWUoUHJvdGVjdGlvblNwYWNlOjpBdXRoZW50aWNhdGlvblNjaGVtZTo6SFRUUEJhc2ljKTsKICAg
ICB9CiAKICAgICBoYW5kbGUtPmQtPm1fY3VybFJlcXVlc3QtPnN0YXJ0KCk7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL21hYy9SZXNvdXJjZUhhbmRsZU1hYy5t
bSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvbWFjL1Jlc291cmNlSGFuZGxlTWFj
Lm1tCmluZGV4IDU2OWU4Yjg5NDUyMzZlMWRkMmM1MjI4NWRiNTY4MjkyZmZjOTI5MDguLjNkYTRj
Njk4YzUzZDdjZTA3MTUwMTc4ODgwODRkZDU0MjYzYjljMTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvbWFjL1Jlc291cmNlSGFuZGxlTWFjLm1tCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvbWFjL1Jlc291cmNlSGFuZGxlTWFjLm1tCkBA
IC01ODksNyArNTg5LDcgQEAgdm9pZCBSZXNvdXJjZUhhbmRsZTo6cmVjZWl2ZWRDcmVkZW50aWFs
KGNvbnN0IEF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlJiBjaGFsbGVuZ2UKICAgICAgICAgcmV0dXJu
OwogICAgIH0KIAotICAgIGlmIChjcmVkZW50aWFsLnBlcnNpc3RlbmNlKCkgPT0gQ3JlZGVudGlh
bFBlcnNpc3RlbmNlRm9yU2Vzc2lvbiAmJiBjaGFsbGVuZ2UucHJvdGVjdGlvblNwYWNlKCkuYXV0
aGVudGljYXRpb25TY2hlbWUoKSAhPSBQcm90ZWN0aW9uU3BhY2VBdXRoZW50aWNhdGlvblNjaGVt
ZVNlcnZlclRydXN0RXZhbHVhdGlvblJlcXVlc3RlZCkgeworICAgIGlmIChjcmVkZW50aWFsLnBl
cnNpc3RlbmNlKCkgPT0gQ3JlZGVudGlhbFBlcnNpc3RlbmNlRm9yU2Vzc2lvbiAmJiBjaGFsbGVu
Z2UucHJvdGVjdGlvblNwYWNlKCkuYXV0aGVudGljYXRpb25TY2hlbWUoKSAhPSBQcm90ZWN0aW9u
U3BhY2U6OkF1dGhlbnRpY2F0aW9uU2NoZW1lOjpTZXJ2ZXJUcnVzdEV2YWx1YXRpb25SZXF1ZXN0
ZWQpIHsKICAgICAgICAgLy8gTWFuYWdlIHBlci1zZXNzaW9uIGNyZWRlbnRpYWxzIGludGVybmFs
bHksIGJlY2F1c2Ugb25jZSBOU1VSTENyZWRlbnRpYWxQZXJzaXN0ZW5jZUZvclNlc3Npb24gaXMg
dXNlZCwgdGhlcmUgaXMgbm8gd2F5CiAgICAgICAgIC8vIHRvIGlnbm9yZSBpdCBmb3IgYSBwYXJ0
aWN1bGFyIHJlcXVlc3QgKHNob3J0IG9mIHJlbW92aW5nIGl0IGFsdG9nZXRoZXIpLgogICAgICAg
ICBDcmVkZW50aWFsIHdlYkNyZWRlbnRpYWwoY3JlZGVudGlhbCwgQ3JlZGVudGlhbFBlcnNpc3Rl
bmNlTm9uZSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL3Nv
dXAvQXV0aGVudGljYXRpb25DaGFsbGVuZ2VTb3VwLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL25ldHdvcmsvc291cC9BdXRoZW50aWNhdGlvbkNoYWxsZW5nZVNvdXAuY3BwCmluZGV4IDcy
NzZjM2RkM2JhMGJmNjcyMWYxOTA2Njk5ODYxOWVlNjZhNjQyMzcuLmFmNDUzOTYzNmNkODYxNGY4
MzY0OGUyZTRhNWU5ZDA3ZDNmYTFhMGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL25ldHdvcmsvc291cC9BdXRoZW50aWNhdGlvbkNoYWxsZW5nZVNvdXAuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvc291cC9BdXRoZW50aWNhdGlvbkNoYWxsZW5n
ZVNvdXAuY3BwCkBAIC0zNSwzMSArMzUsMzEgQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1z
dGF0aWMgUHJvdGVjdGlvblNwYWNlU2VydmVyVHlwZSBwcm90ZWN0aW9uU3BhY2VTZXJ2ZXJUeXBl
RnJvbVVSTChjb25zdCBVUkwmIHVybCwgYm9vbCBpc0ZvclByb3h5KQorc3RhdGljIFByb3RlY3Rp
b25TcGFjZTo6U2VydmVyVHlwZSBwcm90ZWN0aW9uU3BhY2VTZXJ2ZXJUeXBlRnJvbVVSTChjb25z
dCBVUkwmIHVybCwgYm9vbCBpc0ZvclByb3h5KQogewogICAgIGlmICh1cmwucHJvdG9jb2xJcygi
aHR0cHMiKSkKLSAgICAgICAgcmV0dXJuIGlzRm9yUHJveHkgPyBQcm90ZWN0aW9uU3BhY2VQcm94
eUhUVFBTIDogUHJvdGVjdGlvblNwYWNlU2VydmVySFRUUFM7CisgICAgICAgIHJldHVybiBpc0Zv
clByb3h5ID8gUHJvdGVjdGlvblNwYWNlOjpTZXJ2ZXJUeXBlOjpQcm94eUhUVFBTIDogUHJvdGVj
dGlvblNwYWNlOjpTZXJ2ZXJUeXBlOjpIVFRQUzsKICAgICBpZiAodXJsLnByb3RvY29sSXMoImh0
dHAiKSkKLSAgICAgICAgcmV0dXJuIGlzRm9yUHJveHkgPyBQcm90ZWN0aW9uU3BhY2VQcm94eUhU
VFAgOiBQcm90ZWN0aW9uU3BhY2VTZXJ2ZXJIVFRQOworICAgICAgICByZXR1cm4gaXNGb3JQcm94
eSA/IFByb3RlY3Rpb25TcGFjZTo6U2VydmVyVHlwZTo6UHJveHlIVFRQIDogUHJvdGVjdGlvblNw
YWNlOjpTZXJ2ZXJUeXBlOjpIVFRQOwogICAgIGlmICh1cmwucHJvdG9jb2xJcygiZnRwIikpCi0g
ICAgICAgIHJldHVybiBpc0ZvclByb3h5ID8gUHJvdGVjdGlvblNwYWNlUHJveHlGVFAgOiBQcm90
ZWN0aW9uU3BhY2VTZXJ2ZXJGVFA7Ci0gICAgcmV0dXJuIGlzRm9yUHJveHkgPyBQcm90ZWN0aW9u
U3BhY2VQcm94eUhUVFAgOiBQcm90ZWN0aW9uU3BhY2VTZXJ2ZXJIVFRQOworICAgICAgICByZXR1
cm4gaXNGb3JQcm94eSA/IFByb3RlY3Rpb25TcGFjZTo6U2VydmVyVHlwZTo6UHJveHlGVFAgOiBQ
cm90ZWN0aW9uU3BhY2U6OlNlcnZlclR5cGU6OkZUUDsKKyAgICByZXR1cm4gaXNGb3JQcm94eSA/
IFByb3RlY3Rpb25TcGFjZTo6U2VydmVyVHlwZTo6UHJveHlIVFRQIDogUHJvdGVjdGlvblNwYWNl
OjpTZXJ2ZXJUeXBlOjpIVFRQOwogfQogCiBzdGF0aWMgUHJvdGVjdGlvblNwYWNlIHByb3RlY3Rp
b25TcGFjZUZyb21Tb3VwQXV0aEFuZFVSTChTb3VwQXV0aCogc291cEF1dGgsIGNvbnN0IFVSTCYg
dXJsKQogewogICAgIGNvbnN0IGNoYXIqIHNjaGVtZU5hbWUgPSBzb3VwX2F1dGhfZ2V0X3NjaGVt
ZV9uYW1lKHNvdXBBdXRoKTsKLSAgICBQcm90ZWN0aW9uU3BhY2VBdXRoZW50aWNhdGlvblNjaGVt
ZSBzY2hlbWU7CisgICAgUHJvdGVjdGlvblNwYWNlOjpBdXRoZW50aWNhdGlvblNjaGVtZSBzY2hl
bWU7CiAgICAgaWYgKCFnX2FzY2lpX3N0cmNhc2VjbXAoc2NoZW1lTmFtZSwgImJhc2ljIikpCi0g
ICAgICAgIHNjaGVtZSA9IFByb3RlY3Rpb25TcGFjZUF1dGhlbnRpY2F0aW9uU2NoZW1lSFRUUEJh
c2ljOworICAgICAgICBzY2hlbWUgPSBQcm90ZWN0aW9uU3BhY2U6OkF1dGhlbnRpY2F0aW9uU2No
ZW1lOjpIVFRQQmFzaWM7CiAgICAgZWxzZSBpZiAoIWdfYXNjaWlfc3RyY2FzZWNtcChzY2hlbWVO
YW1lLCAiZGlnZXN0IikpCi0gICAgICAgIHNjaGVtZSA9IFByb3RlY3Rpb25TcGFjZUF1dGhlbnRp
Y2F0aW9uU2NoZW1lSFRUUERpZ2VzdDsKKyAgICAgICAgc2NoZW1lID0gUHJvdGVjdGlvblNwYWNl
OjpBdXRoZW50aWNhdGlvblNjaGVtZTo6SFRUUERpZ2VzdDsKICAgICBlbHNlIGlmICghZ19hc2Np
aV9zdHJjYXNlY21wKHNjaGVtZU5hbWUsICJudGxtIikpCi0gICAgICAgIHNjaGVtZSA9IFByb3Rl
Y3Rpb25TcGFjZUF1dGhlbnRpY2F0aW9uU2NoZW1lTlRMTTsKKyAgICAgICAgc2NoZW1lID0gUHJv
dGVjdGlvblNwYWNlOjpBdXRoZW50aWNhdGlvblNjaGVtZTo6TlRMTTsKICAgICBlbHNlIGlmICgh
Z19hc2NpaV9zdHJjYXNlY21wKHNjaGVtZU5hbWUsICJuZWdvdGlhdGUiKSkKLSAgICAgICAgc2No
ZW1lID0gUHJvdGVjdGlvblNwYWNlQXV0aGVudGljYXRpb25TY2hlbWVOZWdvdGlhdGU7CisgICAg
ICAgIHNjaGVtZSA9IFByb3RlY3Rpb25TcGFjZTo6QXV0aGVudGljYXRpb25TY2hlbWU6Ok5lZ290
aWF0ZTsKICAgICBlbHNlCi0gICAgICAgIHNjaGVtZSA9IFByb3RlY3Rpb25TcGFjZUF1dGhlbnRp
Y2F0aW9uU2NoZW1lVW5rbm93bjsKKyAgICAgICAgc2NoZW1lID0gUHJvdGVjdGlvblNwYWNlOjpB
dXRoZW50aWNhdGlvblNjaGVtZTo6VW5rbm93bjsKIAogI2lmIFVTRShTT1VQMikKICAgICBhdXRv
IGhvc3QgPSB1cmwuaG9zdCgpOwpAQCAtOTYsNyArOTYsNyBAQCBzdGF0aWMgUHJvdGVjdGlvblNw
YWNlIHByb3RlY3Rpb25TcGFjZUZvckNsaWVudENlcnRpZmljYXRlKGNvbnN0IFVSTCYgdXJsKQog
ICAgIGlmICghcG9ydCkKICAgICAgICAgcG9ydCA9IGRlZmF1bHRQb3J0Rm9yUHJvdG9jb2wodXJs
LnByb3RvY29sKCkpOwogICAgIHJldHVybiBQcm90ZWN0aW9uU3BhY2UodXJsLmhvc3QoKS50b1N0
cmluZygpLCBzdGF0aWNfY2FzdDxpbnQ+KHBvcnQudmFsdWVfb3IoMCkpLCBwcm90ZWN0aW9uU3Bh
Y2VTZXJ2ZXJUeXBlRnJvbVVSTCh1cmwsIGZhbHNlKSwgeyB9LAotICAgICAgICBQcm90ZWN0aW9u
U3BhY2VBdXRoZW50aWNhdGlvblNjaGVtZUNsaWVudENlcnRpZmljYXRlUmVxdWVzdGVkKTsKKyAg
ICAgICAgUHJvdGVjdGlvblNwYWNlOjpBdXRoZW50aWNhdGlvblNjaGVtZTo6Q2xpZW50Q2VydGlm
aWNhdGVSZXF1ZXN0ZWQpOwogfQogCiBBdXRoZW50aWNhdGlvbkNoYWxsZW5nZTo6QXV0aGVudGlj
YXRpb25DaGFsbGVuZ2UoU291cE1lc3NhZ2UqIHNvdXBNZXNzYWdlLCBHVGxzQ2xpZW50Q29ubmVj
dGlvbiopCkBAIC0xMTQsNyArMTE0LDcgQEAgc3RhdGljIFByb3RlY3Rpb25TcGFjZSBwcm90ZWN0
aW9uU3BhY2VGb3JDbGllbnRDZXJ0aWZpY2F0ZVBhc3N3b3JkKEdUbHNQYXNzd29yZCoKICAgICBp
ZiAoIXBvcnQpCiAgICAgICAgIHBvcnQgPSBkZWZhdWx0UG9ydEZvclByb3RvY29sKHVybC5wcm90
b2NvbCgpKTsKICAgICByZXR1cm4gUHJvdGVjdGlvblNwYWNlKHVybC5ob3N0KCkudG9TdHJpbmco
KSwgc3RhdGljX2Nhc3Q8aW50Pihwb3J0LnZhbHVlX29yKDApKSwgcHJvdGVjdGlvblNwYWNlU2Vy
dmVyVHlwZUZyb21VUkwodXJsLCBmYWxzZSksCi0gICAgICAgIFN0cmluZzo6ZnJvbVVURjgoZ190
bHNfcGFzc3dvcmRfZ2V0X2Rlc2NyaXB0aW9uKHRsc1Bhc3N3b3JkKSksIFByb3RlY3Rpb25TcGFj
ZUF1dGhlbnRpY2F0aW9uU2NoZW1lQ2xpZW50Q2VydGlmaWNhdGVQSU5SZXF1ZXN0ZWQpOworICAg
ICAgICBTdHJpbmc6OmZyb21VVEY4KGdfdGxzX3Bhc3N3b3JkX2dldF9kZXNjcmlwdGlvbih0bHNQ
YXNzd29yZCkpLCBQcm90ZWN0aW9uU3BhY2U6OkF1dGhlbnRpY2F0aW9uU2NoZW1lOjpDbGllbnRD
ZXJ0aWZpY2F0ZVBJTlJlcXVlc3RlZCk7CiB9CiAKIEF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlOjpB
dXRoZW50aWNhdGlvbkNoYWxsZW5nZShTb3VwTWVzc2FnZSogc291cE1lc3NhZ2UsIEdUbHNQYXNz
d29yZCogdGxzUGFzc3dvcmQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9u
ZXR3b3JrL3NvdXAvTmV0d29ya1N0b3JhZ2VTZXNzaW9uU291cC5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9uZXR3b3JrL3NvdXAvTmV0d29ya1N0b3JhZ2VTZXNzaW9uU291cC5jcHAKaW5k
ZXggNWIzMjUzNGUyYmNhZjE3MDEzMzFlOTU0MTAxM2I4YTVjMzhjNGQzNi4uZmNmYTRlOTk1MjEy
YWU5MjZmNjMzOWQzN2RiYmIzZDEwNTFlMGZjMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vbmV0d29yay9zb3VwL05ldHdvcmtTdG9yYWdlU2Vzc2lvblNvdXAuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvc291cC9OZXR3b3JrU3RvcmFnZVNlc3Np
b25Tb3VwLmNwcApAQCAtODgsNDggKzg4LDQ4IEBAIHZvaWQgTmV0d29ya1N0b3JhZ2VTZXNzaW9u
OjpzZXRDb29raWVPYnNlcnZlckhhbmRsZXIoRnVuY3Rpb248dm9pZCAoKT4mJiBoYW5kbGVyCiB9
CiAKICNpZiBVU0UoTElCU0VDUkVUKQotc3RhdGljIGNvbnN0IGNoYXIqIHNjaGVtZUZyb21Qcm90
ZWN0aW9uU3BhY2VTZXJ2ZXJUeXBlKFByb3RlY3Rpb25TcGFjZVNlcnZlclR5cGUgc2VydmVyVHlw
ZSkKK3N0YXRpYyBjb25zdCBjaGFyKiBzY2hlbWVGcm9tUHJvdGVjdGlvblNwYWNlU2VydmVyVHlw
ZShQcm90ZWN0aW9uU3BhY2U6OlNlcnZlclR5cGUgc2VydmVyVHlwZSkKIHsKICAgICBzd2l0Y2gg
KHNlcnZlclR5cGUpIHsKLSAgICBjYXNlIFByb3RlY3Rpb25TcGFjZVNlcnZlckhUVFA6Ci0gICAg
Y2FzZSBQcm90ZWN0aW9uU3BhY2VQcm94eUhUVFA6CisgICAgY2FzZSBQcm90ZWN0aW9uU3BhY2U6
OlNlcnZlclR5cGU6OkhUVFA6CisgICAgY2FzZSBQcm90ZWN0aW9uU3BhY2U6OlNlcnZlclR5cGU6
OlByb3h5SFRUUDoKICAgICAgICAgcmV0dXJuICJodHRwIjsKLSAgICBjYXNlIFByb3RlY3Rpb25T
cGFjZVNlcnZlckhUVFBTOgotICAgIGNhc2UgUHJvdGVjdGlvblNwYWNlUHJveHlIVFRQUzoKKyAg
ICBjYXNlIFByb3RlY3Rpb25TcGFjZTo6U2VydmVyVHlwZTo6SFRUUFM6CisgICAgY2FzZSBQcm90
ZWN0aW9uU3BhY2U6OlNlcnZlclR5cGU6OlByb3h5SFRUUFM6CiAgICAgICAgIHJldHVybiAiaHR0
cHMiOwotICAgIGNhc2UgUHJvdGVjdGlvblNwYWNlU2VydmVyRlRQOgotICAgIGNhc2UgUHJvdGVj
dGlvblNwYWNlUHJveHlGVFA6CisgICAgY2FzZSBQcm90ZWN0aW9uU3BhY2U6OlNlcnZlclR5cGU6
OkZUUDoKKyAgICBjYXNlIFByb3RlY3Rpb25TcGFjZTo6U2VydmVyVHlwZTo6UHJveHlGVFA6CiAg
ICAgICAgIHJldHVybiAiZnRwIjsKLSAgICBjYXNlIFByb3RlY3Rpb25TcGFjZVNlcnZlckZUUFM6
Ci0gICAgY2FzZSBQcm90ZWN0aW9uU3BhY2VQcm94eVNPQ0tTOgorICAgIGNhc2UgUHJvdGVjdGlv
blNwYWNlOjpTZXJ2ZXJUeXBlOjpGVFBTOgorICAgIGNhc2UgUHJvdGVjdGlvblNwYWNlOjpTZXJ2
ZXJUeXBlOjpQcm94eVNPQ0tTOgogICAgICAgICBicmVhazsKICAgICB9CiAKICAgICBSRUxFQVNF
X0FTU0VSVF9OT1RfUkVBQ0hFRCgpOwogfQogCi1zdGF0aWMgY29uc3QgY2hhciogYXV0aFR5cGVG
cm9tUHJvdGVjdGlvblNwYWNlQXV0aGVudGljYXRpb25TY2hlbWUoUHJvdGVjdGlvblNwYWNlQXV0
aGVudGljYXRpb25TY2hlbWUgc2NoZW1lKQorc3RhdGljIGNvbnN0IGNoYXIqIGF1dGhUeXBlRnJv
bVByb3RlY3Rpb25TcGFjZUF1dGhlbnRpY2F0aW9uU2NoZW1lKFByb3RlY3Rpb25TcGFjZTo6QXV0
aGVudGljYXRpb25TY2hlbWUgc2NoZW1lKQogewogICAgIHN3aXRjaCAoc2NoZW1lKSB7Ci0gICAg
Y2FzZSBQcm90ZWN0aW9uU3BhY2VBdXRoZW50aWNhdGlvblNjaGVtZURlZmF1bHQ6Ci0gICAgY2Fz
ZSBQcm90ZWN0aW9uU3BhY2VBdXRoZW50aWNhdGlvblNjaGVtZUhUVFBCYXNpYzoKKyAgICBjYXNl
IFByb3RlY3Rpb25TcGFjZTo6QXV0aGVudGljYXRpb25TY2hlbWU6OkRlZmF1bHQ6CisgICAgY2Fz
ZSBQcm90ZWN0aW9uU3BhY2U6OkF1dGhlbnRpY2F0aW9uU2NoZW1lOjpIVFRQQmFzaWM6CiAgICAg
ICAgIHJldHVybiAiQmFzaWMiOwotICAgIGNhc2UgUHJvdGVjdGlvblNwYWNlQXV0aGVudGljYXRp
b25TY2hlbWVIVFRQRGlnZXN0OgorICAgIGNhc2UgUHJvdGVjdGlvblNwYWNlOjpBdXRoZW50aWNh
dGlvblNjaGVtZTo6SFRUUERpZ2VzdDoKICAgICAgICAgcmV0dXJuICJEaWdlc3QiOwotICAgIGNh
c2UgUHJvdGVjdGlvblNwYWNlQXV0aGVudGljYXRpb25TY2hlbWVOVExNOgorICAgIGNhc2UgUHJv
dGVjdGlvblNwYWNlOjpBdXRoZW50aWNhdGlvblNjaGVtZTo6TlRMTToKICAgICAgICAgcmV0dXJu
ICJOVExNIjsKLSAgICBjYXNlIFByb3RlY3Rpb25TcGFjZUF1dGhlbnRpY2F0aW9uU2NoZW1lTmVn
b3RpYXRlOgorICAgIGNhc2UgUHJvdGVjdGlvblNwYWNlOjpBdXRoZW50aWNhdGlvblNjaGVtZTo6
TmVnb3RpYXRlOgogICAgICAgICByZXR1cm4gIk5lZ290aWF0ZSI7Ci0gICAgY2FzZSBQcm90ZWN0
aW9uU3BhY2VBdXRoZW50aWNhdGlvblNjaGVtZUhUTUxGb3JtOgotICAgIGNhc2UgUHJvdGVjdGlv
blNwYWNlQXV0aGVudGljYXRpb25TY2hlbWVDbGllbnRDZXJ0aWZpY2F0ZVJlcXVlc3RlZDoKLSAg
ICBjYXNlIFByb3RlY3Rpb25TcGFjZUF1dGhlbnRpY2F0aW9uU2NoZW1lU2VydmVyVHJ1c3RFdmFs
dWF0aW9uUmVxdWVzdGVkOgorICAgIGNhc2UgUHJvdGVjdGlvblNwYWNlOjpBdXRoZW50aWNhdGlv
blNjaGVtZTo6SFRNTEZvcm06CisgICAgY2FzZSBQcm90ZWN0aW9uU3BhY2U6OkF1dGhlbnRpY2F0
aW9uU2NoZW1lOjpDbGllbnRDZXJ0aWZpY2F0ZVJlcXVlc3RlZDoKKyAgICBjYXNlIFByb3RlY3Rp
b25TcGFjZTo6QXV0aGVudGljYXRpb25TY2hlbWU6OlNlcnZlclRydXN0RXZhbHVhdGlvblJlcXVl
c3RlZDoKICAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CiAgICAgICAgIGJyZWFrOwotICAg
IGNhc2UgUHJvdGVjdGlvblNwYWNlQXV0aGVudGljYXRpb25TY2hlbWVDbGllbnRDZXJ0aWZpY2F0
ZVBJTlJlcXVlc3RlZDoKKyAgICBjYXNlIFByb3RlY3Rpb25TcGFjZTo6QXV0aGVudGljYXRpb25T
Y2hlbWU6OkNsaWVudENlcnRpZmljYXRlUElOUmVxdWVzdGVkOgogICAgICAgICByZXR1cm4gIkNl
cnRpZmljYXRlIFBJTiI7Ci0gICAgY2FzZSBQcm90ZWN0aW9uU3BhY2VBdXRoZW50aWNhdGlvblNj
aGVtZU9BdXRoOgorICAgIGNhc2UgUHJvdGVjdGlvblNwYWNlOjpBdXRoZW50aWNhdGlvblNjaGVt
ZTo6T0F1dGg6CiAgICAgICAgIHJldHVybiAiT0F1dGgiOwotICAgIGNhc2UgUHJvdGVjdGlvblNw
YWNlQXV0aGVudGljYXRpb25TY2hlbWVVbmtub3duOgorICAgIGNhc2UgUHJvdGVjdGlvblNwYWNl
OjpBdXRoZW50aWNhdGlvblNjaGVtZTo6VW5rbm93bjoKICAgICAgICAgcmV0dXJuICJ1bmtub3du
IjsKICAgICB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0
d29ya0NPUlNQcmVmbGlnaHRDaGVja2VyLmNwcCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nl
c3MvTmV0d29ya0NPUlNQcmVmbGlnaHRDaGVja2VyLmNwcAppbmRleCA0OGEzOWMzMzliNmMxOTk5
MWQzNmM4MDMzNTVkNDM5MmM2ZGM0MTYxLi5iNjA3MzAyOWM2ZjFiZTI5N2FjNTEzY2QwNjk5ZWU0
ZDY1MjkwOTIwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdv
cmtDT1JTUHJlZmxpZ2h0Q2hlY2tlci5jcHAKKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJv
Y2Vzcy9OZXR3b3JrQ09SU1ByZWZsaWdodENoZWNrZXIuY3BwCkBAIC05OCw4ICs5OCw4IEBAIHZv
aWQgTmV0d29ya0NPUlNQcmVmbGlnaHRDaGVja2VyOjpkaWRSZWNlaXZlQ2hhbGxlbmdlKFdlYkNv
cmU6OkF1dGhlbnRpY2F0aW9uQ2hhCiAgICAgQ09SU19DSEVDS0VSX1JFTEVBU0VfTE9HKCJkaWRS
ZWNlaXZlQ2hhbGxlbmdlLCBhdXRoZW50aWNhdGlvbiBzY2hlbWU6ICV1IiwgY2hhbGxlbmdlLnBy
b3RlY3Rpb25TcGFjZSgpLmF1dGhlbnRpY2F0aW9uU2NoZW1lKCkpOwogCiAgICAgYXV0byBzY2hl
bWUgPSBjaGFsbGVuZ2UucHJvdGVjdGlvblNwYWNlKCkuYXV0aGVudGljYXRpb25TY2hlbWUoKTsK
LSAgICBib29sIGlzVExTSGFuZHNoYWtlID0gc2NoZW1lID09IFByb3RlY3Rpb25TcGFjZUF1dGhl
bnRpY2F0aW9uU2NoZW1lU2VydmVyVHJ1c3RFdmFsdWF0aW9uUmVxdWVzdGVkCi0gICAgICAgIHx8
IHNjaGVtZSA9PSBQcm90ZWN0aW9uU3BhY2VBdXRoZW50aWNhdGlvblNjaGVtZUNsaWVudENlcnRp
ZmljYXRlUmVxdWVzdGVkOworICAgIGJvb2wgaXNUTFNIYW5kc2hha2UgPSBzY2hlbWUgPT0gUHJv
dGVjdGlvblNwYWNlOjpBdXRoZW50aWNhdGlvblNjaGVtZTo6U2VydmVyVHJ1c3RFdmFsdWF0aW9u
UmVxdWVzdGVkCisgICAgICAgIHx8IHNjaGVtZSA9PSBQcm90ZWN0aW9uU3BhY2U6OkF1dGhlbnRp
Y2F0aW9uU2NoZW1lOjpDbGllbnRDZXJ0aWZpY2F0ZVJlcXVlc3RlZDsKIAogICAgIGlmICghaXNU
TFNIYW5kc2hha2UpIHsKICAgICAgICAgY29tcGxldGlvbkhhbmRsZXIoQXV0aGVudGljYXRpb25D
aGFsbGVuZ2VEaXNwb3NpdGlvbjo6VXNlQ3JlZGVudGlhbCwgeyB9KTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0xvYWQuY3BwIGIvU291cmNlL1dlYktp
dC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrTG9hZC5jcHAKaW5kZXggNWExNmM5YmM1MGU0M2ZhOThl
ODU5NTc1MDMwYzE0ZWMwMjU0ZTg1NC4uOGMxMDRkODE2MGI3YWFmZDA5OTcxNWRhNmQ0ZTZmN2M0
NjM3ZmEwOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3Jr
TG9hZC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrTG9hZC5j
cHAKQEAgLTIxNSw4ICsyMTUsOCBAQCB2b2lkIE5ldHdvcmtMb2FkOjpkaWRSZWNlaXZlQ2hhbGxl
bmdlKEF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlJiYgY2hhbGxlbmdlLCBOZWdvdAogICAgIG1fY2xp
ZW50LmdldCgpLmRpZFJlY2VpdmVDaGFsbGVuZ2UoY2hhbGxlbmdlKTsKIAogICAgIGF1dG8gc2No
ZW1lID0gY2hhbGxlbmdlLnByb3RlY3Rpb25TcGFjZSgpLmF1dGhlbnRpY2F0aW9uU2NoZW1lKCk7
Ci0gICAgYm9vbCBpc1RMU0hhbmRzaGFrZSA9IHNjaGVtZSA9PSBQcm90ZWN0aW9uU3BhY2VBdXRo
ZW50aWNhdGlvblNjaGVtZVNlcnZlclRydXN0RXZhbHVhdGlvblJlcXVlc3RlZAotICAgICAgICB8
fCBzY2hlbWUgPT0gUHJvdGVjdGlvblNwYWNlQXV0aGVudGljYXRpb25TY2hlbWVDbGllbnRDZXJ0
aWZpY2F0ZVJlcXVlc3RlZDsKKyAgICBib29sIGlzVExTSGFuZHNoYWtlID0gc2NoZW1lID09IFBy
b3RlY3Rpb25TcGFjZTo6QXV0aGVudGljYXRpb25TY2hlbWU6OlNlcnZlclRydXN0RXZhbHVhdGlv
blJlcXVlc3RlZAorICAgICAgICB8fCBzY2hlbWUgPT0gUHJvdGVjdGlvblNwYWNlOjpBdXRoZW50
aWNhdGlvblNjaGVtZTo6Q2xpZW50Q2VydGlmaWNhdGVSZXF1ZXN0ZWQ7CiAgICAgaWYgKCFpc0Fs
bG93ZWRUb0Fza1VzZXJGb3JDcmVkZW50aWFscygpICYmICFpc1RMU0hhbmRzaGFrZSAmJiAhY2hh
bGxlbmdlLnByb3RlY3Rpb25TcGFjZSgpLmlzUHJveHkoKSkgewogICAgICAgICBtX2NsaWVudC5n
ZXQoKS5kaWRCbG9ja0F1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlKCk7CiAgICAgICAgIGNvbXBsZXRp
b25IYW5kbGVyKEF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlRGlzcG9zaXRpb246OlVzZUNyZWRlbnRp
YWwsIHsgfSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL1BpbmdM
b2FkLmNwcCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvUGluZ0xvYWQuY3BwCmluZGV4
IGRiM2YxNzIxMmJiMmI3OGFmMDhlNmFkYzg1NjIwNzg2NjczOWU2MzYuLmJjMmMzMzdlNGVlZTAx
YWY4M2UxMzY3MjMxN2E5YTllYWJjN2M2ZjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0
d29ya1Byb2Nlc3MvUGluZ0xvYWQuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nl
c3MvUGluZ0xvYWQuY3BwCkBAIC0xNTEsNyArMTUxLDcgQEAgdm9pZCBQaW5nTG9hZDo6d2lsbFBl
cmZvcm1IVFRQUmVkaXJlY3Rpb24oUmVzb3VyY2VSZXNwb25zZSYmIHJlZGlyZWN0UmVzcG9uc2Us
IFIKIHZvaWQgUGluZ0xvYWQ6OmRpZFJlY2VpdmVDaGFsbGVuZ2UoQXV0aGVudGljYXRpb25DaGFs
bGVuZ2UmJiBjaGFsbGVuZ2UsIE5lZ290aWF0ZWRMZWdhY3lUTFMgbmVnb3RpYXRlZExlZ2FjeVRM
UywgQ2hhbGxlbmdlQ29tcGxldGlvbkhhbmRsZXImJiBjb21wbGV0aW9uSGFuZGxlcikKIHsKICAg
ICBQSU5HX1JFTEVBU0VfTE9HKCJkaWRSZWNlaXZlQ2hhbGxlbmdlIik7Ci0gICAgaWYgKGNoYWxs
ZW5nZS5wcm90ZWN0aW9uU3BhY2UoKS5hdXRoZW50aWNhdGlvblNjaGVtZSgpID09IFByb3RlY3Rp
b25TcGFjZUF1dGhlbnRpY2F0aW9uU2NoZW1lU2VydmVyVHJ1c3RFdmFsdWF0aW9uUmVxdWVzdGVk
KSB7CisgICAgaWYgKGNoYWxsZW5nZS5wcm90ZWN0aW9uU3BhY2UoKS5hdXRoZW50aWNhdGlvblNj
aGVtZSgpID09IFByb3RlY3Rpb25TcGFjZTo6QXV0aGVudGljYXRpb25TY2hlbWU6OlNlcnZlclRy
dXN0RXZhbHVhdGlvblJlcXVlc3RlZCkgewogICAgICAgICBtX25ldHdvcmtMb2FkQ2hlY2tlci0+
bmV0d29ya1Byb2Nlc3MoKS5hdXRoZW50aWNhdGlvbk1hbmFnZXIoKS5kaWRSZWNlaXZlQXV0aGVu
dGljYXRpb25DaGFsbGVuZ2UobV9zZXNzaW9uSUQsIG1fcGFyYW1ldGVycy53ZWJQYWdlUHJveHlJ
RCwgIG1fcGFyYW1ldGVycy50b3BPcmlnaW4gPyAmbV9wYXJhbWV0ZXJzLnRvcE9yaWdpbi0+ZGF0
YSgpIDogbnVsbHB0ciwgY2hhbGxlbmdlLCBuZWdvdGlhdGVkTGVnYWN5VExTLCBXVEZNb3ZlKGNv
bXBsZXRpb25IYW5kbGVyKSk7CiAgICAgICAgIHJldHVybjsKICAgICB9CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL2NvY29hL05ldHdvcmtTZXNzaW9uQ29jb2EubW0g
Yi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL2NvY29hL05ldHdvcmtTZXNzaW9uQ29jb2Eu
bW0KaW5kZXggNTM5YTkyODU0ZTdmYTA3OGI3OWFkZTM3N2ViM2FiYmExOGMwMTM5Ni4uMmM0ZjAw
Yjg1NmM5YmFhZmNhOGU2Yzg2ODA0ODhhZTI4NWUxNzU5MyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9OZXR3b3JrUHJvY2Vzcy9jb2NvYS9OZXR3b3JrU2Vzc2lvbkNvY29hLm1tCisrKyBiL1Nv
dXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvY29jb2EvTmV0d29ya1Nlc3Npb25Db2NvYS5tbQpA
QCAtMTYxNyw3ICsxNjE3LDcgQEAgYm9vbCBOZXR3b3JrU2Vzc2lvbkNvY29hOjphbGxvd3NTcGVj
aWZpY0hUVFBTQ2VydGlmaWNhdGVGb3JIb3N0KGNvbnN0IFdlYkNvcmU6OkEKICAgICBpZiAoIWNl
cnRpZmljYXRlcykKICAgICAgICAgcmV0dXJuIGZhbHNlOwogCi0gICAgYm9vbCByZXF1aXJlU2Vy
dmVyQ2VydGlmaWNhdGVzID0gY2hhbGxlbmdlLnByb3RlY3Rpb25TcGFjZSgpLmF1dGhlbnRpY2F0
aW9uU2NoZW1lKCkgPT0gV2ViQ29yZTo6UHJvdGVjdGlvblNwYWNlQXV0aGVudGljYXRpb25TY2hl
bWU6OlByb3RlY3Rpb25TcGFjZUF1dGhlbnRpY2F0aW9uU2NoZW1lU2VydmVyVHJ1c3RFdmFsdWF0
aW9uUmVxdWVzdGVkOworICAgIGJvb2wgcmVxdWlyZVNlcnZlckNlcnRpZmljYXRlcyA9IGNoYWxs
ZW5nZS5wcm90ZWN0aW9uU3BhY2UoKS5hdXRoZW50aWNhdGlvblNjaGVtZSgpID09IFdlYkNvcmU6
OlByb3RlY3Rpb25TcGFjZTo6QXV0aGVudGljYXRpb25TY2hlbWU6OlNlcnZlclRydXN0RXZhbHVh
dGlvblJlcXVlc3RlZDsKICAgICBSZXRhaW5QdHI8U2VjUG9saWN5UmVmPiBwb2xpY3kgPSBhZG9w
dENGKFNlY1BvbGljeUNyZWF0ZVNTTChyZXF1aXJlU2VydmVyQ2VydGlmaWNhdGVzLCBob3N0LmNy
ZWF0ZUNGU3RyaW5nKCkuZ2V0KCkpKTsKIAogICAgIFNlY1RydXN0UmVmIHRydXN0UmVmID0gbnVs
bHB0cjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvY3VybC9OZXR3
b3JrRGF0YVRhc2tDdXJsLmNwcCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvY3VybC9O
ZXR3b3JrRGF0YVRhc2tDdXJsLmNwcAppbmRleCAzZGM2NWZmODJjOWRhODkyZDIwYzM0ODg2ZTVh
MWM0ZDc5ZGFkZWY1Li44N2Y3Y2Q5OWRiOWE3YTdjNDk1MTIwNjZhMzljNzI5YjcwNTM3NjAyIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL2N1cmwvTmV0d29ya0RhdGFU
YXNrQ3VybC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9jdXJsL05ldHdv
cmtEYXRhVGFza0N1cmwuY3BwCkBAIC03NSw3ICs3NSw3IEBAIE5ldHdvcmtEYXRhVGFza0N1cmw6
Ok5ldHdvcmtEYXRhVGFza0N1cmwoTmV0d29ya1Nlc3Npb24mIHNlc3Npb24sIE5ldHdvcmtEYXRh
VGFzCiAgICAgbV9jdXJsUmVxdWVzdCA9IGNyZWF0ZUN1cmxSZXF1ZXN0KFdURk1vdmUocmVxdWVz
dCkpOwogICAgIGlmICghbV9pbml0aWFsQ3JlZGVudGlhbC5pc0VtcHR5KCkpIHsKICAgICAgICAg
bV9jdXJsUmVxdWVzdC0+c2V0VXNlclBhc3MobV9pbml0aWFsQ3JlZGVudGlhbC51c2VyKCksIG1f
aW5pdGlhbENyZWRlbnRpYWwucGFzc3dvcmQoKSk7Ci0gICAgICAgIG1fY3VybFJlcXVlc3QtPnNl
dEF1dGhlbnRpY2F0aW9uU2NoZW1lKFByb3RlY3Rpb25TcGFjZUF1dGhlbnRpY2F0aW9uU2NoZW1l
SFRUUEJhc2ljKTsKKyAgICAgICAgbV9jdXJsUmVxdWVzdC0+c2V0QXV0aGVudGljYXRpb25TY2hl
bWUoUHJvdGVjdGlvblNwYWNlOjpBdXRoZW50aWNhdGlvbjo6U2NoZW1lSFRUUEJhc2ljKTsKICAg
ICB9CiAgICAgbV9jdXJsUmVxdWVzdC0+c3RhcnQoKTsKIH0KQEAgLTMxMyw3ICszMTMsNyBAQCB2
b2lkIE5ldHdvcmtEYXRhVGFza0N1cmw6OndpbGxQZXJmb3JtSFRUUFJlZGlyZWN0aW9uKCkKICAg
ICAgICAgbV9jdXJsUmVxdWVzdCA9IGNyZWF0ZUN1cmxSZXF1ZXN0KFdURk1vdmUocmVxdWVzdENv
cHkpKTsKICAgICAgICAgaWYgKGRpZENoYW5nZUNyZWRlbnRpYWwgJiYgIW1faW5pdGlhbENyZWRl
bnRpYWwuaXNFbXB0eSgpKSB7CiAgICAgICAgICAgICBtX2N1cmxSZXF1ZXN0LT5zZXRVc2VyUGFz
cyhtX2luaXRpYWxDcmVkZW50aWFsLnVzZXIoKSwgbV9pbml0aWFsQ3JlZGVudGlhbC5wYXNzd29y
ZCgpKTsKLSAgICAgICAgICAgIG1fY3VybFJlcXVlc3QtPnNldEF1dGhlbnRpY2F0aW9uU2NoZW1l
KFByb3RlY3Rpb25TcGFjZUF1dGhlbnRpY2F0aW9uU2NoZW1lSFRUUEJhc2ljKTsKKyAgICAgICAg
ICAgIG1fY3VybFJlcXVlc3QtPnNldEF1dGhlbnRpY2F0aW9uU2NoZW1lKFByb3RlY3Rpb25TcGFj
ZTo6QXV0aGVudGljYXRpb25TY2hlbWU6OkhUVFBCYXNpYyk7CiAgICAgICAgIH0KICAgICAgICAg
bV9jdXJsUmVxdWVzdC0+c3RhcnQoKTsKIApAQCAtNDI3LDcgKzQyNyw3IEBAIHZvaWQgTmV0d29y
a0RhdGFUYXNrQ3VybDo6cmVzdGFydFdpdGhDcmVkZW50aWFsKGNvbnN0IFByb3RlY3Rpb25TcGFj
ZSYgcHJvdGVjdGlvCiAgICAgQVNTRVJUKG1fY3VybFJlcXVlc3QpOwogCiAgICAgYXV0byBwcmV2
aW91c1JlcXVlc3QgPSBtX2N1cmxSZXF1ZXN0LT5yZXNvdXJjZVJlcXVlc3QoKTsKLSAgICBhdXRv
IHNob3VsZERpc2FibGVTZXJ2ZXJUcnVzdEV2YWx1YXRpb24gPSBwcm90ZWN0aW9uU3BhY2UuYXV0
aGVudGljYXRpb25TY2hlbWUoKSA9PSBQcm90ZWN0aW9uU3BhY2VBdXRoZW50aWNhdGlvblNjaGVt
ZVNlcnZlclRydXN0RXZhbHVhdGlvblJlcXVlc3RlZCB8fCBtX2N1cmxSZXF1ZXN0LT5pc1NlcnZl
clRydXN0RXZhbHVhdGlvbkRpc2FibGVkKCk7CisgICAgYXV0byBzaG91bGREaXNhYmxlU2VydmVy
VHJ1c3RFdmFsdWF0aW9uID0gcHJvdGVjdGlvblNwYWNlLmF1dGhlbnRpY2F0aW9uU2NoZW1lKCkg
PT0gUHJvdGVjdGlvblNwYWNlOjpBdXRoZW50aWNhdGlvblNjaGVtZTo6U2VydmVyVHJ1c3RFdmFs
dWF0aW9uUmVxdWVzdGVkIHx8IG1fY3VybFJlcXVlc3QtPmlzU2VydmVyVHJ1c3RFdmFsdWF0aW9u
RGlzYWJsZWQoKTsKICAgICBtX2N1cmxSZXF1ZXN0LT5jYW5jZWwoKTsKIAogICAgIG1fY3VybFJl
cXVlc3QgPSBjcmVhdGVDdXJsUmVxdWVzdChXVEZNb3ZlKHByZXZpb3VzUmVxdWVzdCksIFJlcXVl
c3RTdGF0dXM6OlJldXNlZFJlcXVlc3QpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3
b3JrUHJvY2Vzcy9zb3VwL05ldHdvcmtEYXRhVGFza1NvdXAuY3BwIGIvU291cmNlL1dlYktpdC9O
ZXR3b3JrUHJvY2Vzcy9zb3VwL05ldHdvcmtEYXRhVGFza1NvdXAuY3BwCmluZGV4IDA5YzdkNDNj
NTU4ZWE2MzRkZjE1MjE2MTQ3ZWZjOWU1MTQzNzk2NmYuLjYwYTQ5YzZkNDA0YzUyNTYzZDg3ZmMy
Y2QxY2IyMjQ0NDY3MWQxY2QgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nl
c3Mvc291cC9OZXR3b3JrRGF0YVRhc2tTb3VwLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdv
cmtQcm9jZXNzL3NvdXAvTmV0d29ya0RhdGFUYXNrU291cC5jcHAKQEAgLTY4OCwxNiArNjg4LDE2
IEBAIHN0YXRpYyBpbmxpbmUgYm9vbCBpc0F1dGhlbnRpY2F0aW9uRmFpbHVyZVN0YXR1c0NvZGUo
aW50IGh0dHBTdGF0dXNDb2RlKQogdm9pZCBOZXR3b3JrRGF0YVRhc2tTb3VwOjpjb21wbGV0ZUF1
dGhlbnRpY2F0aW9uKGNvbnN0IEF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlJiBjaGFsbGVuZ2UsIGNv
bnN0IENyZWRlbnRpYWwmIGNyZWRlbnRpYWwpCiB7CiAgICAgc3dpdGNoIChjaGFsbGVuZ2UucHJv
dGVjdGlvblNwYWNlKCkuYXV0aGVudGljYXRpb25TY2hlbWUoKSkgewotICAgIGNhc2UgUHJvdGVj
dGlvblNwYWNlQXV0aGVudGljYXRpb25TY2hlbWVEZWZhdWx0OgotICAgIGNhc2UgUHJvdGVjdGlv
blNwYWNlQXV0aGVudGljYXRpb25TY2hlbWVIVFRQQmFzaWM6Ci0gICAgY2FzZSBQcm90ZWN0aW9u
U3BhY2VBdXRoZW50aWNhdGlvblNjaGVtZUhUVFBEaWdlc3Q6Ci0gICAgY2FzZSBQcm90ZWN0aW9u
U3BhY2VBdXRoZW50aWNhdGlvblNjaGVtZUhUTUxGb3JtOgotICAgIGNhc2UgUHJvdGVjdGlvblNw
YWNlQXV0aGVudGljYXRpb25TY2hlbWVOVExNOgotICAgIGNhc2UgUHJvdGVjdGlvblNwYWNlQXV0
aGVudGljYXRpb25TY2hlbWVOZWdvdGlhdGU6Ci0gICAgY2FzZSBQcm90ZWN0aW9uU3BhY2VBdXRo
ZW50aWNhdGlvblNjaGVtZU9BdXRoOgorICAgIGNhc2UgUHJvdGVjdGlvblNwYWNlOjpBdXRoZW50
aWNhdGlvblNjaGVtZTo6RGVmYXVsdDoKKyAgICBjYXNlIFByb3RlY3Rpb25TcGFjZTo6QXV0aGVu
dGljYXRpb25TY2hlbWU6OkhUVFBCYXNpYzoKKyAgICBjYXNlIFByb3RlY3Rpb25TcGFjZTo6QXV0
aGVudGljYXRpb25TY2hlbWU6OkhUVFBEaWdlc3Q6CisgICAgY2FzZSBQcm90ZWN0aW9uU3BhY2U6
OkF1dGhlbnRpY2F0aW9uU2NoZW1lOjpIVE1MRm9ybToKKyAgICBjYXNlIFByb3RlY3Rpb25TcGFj
ZTo6QXV0aGVudGljYXRpb25TY2hlbWU6Ok5UTE06CisgICAgY2FzZSBQcm90ZWN0aW9uU3BhY2U6
OkF1dGhlbnRpY2F0aW9uU2NoZW1lOjpOZWdvdGlhdGU6CisgICAgY2FzZSBQcm90ZWN0aW9uU3Bh
Y2U6OkF1dGhlbnRpY2F0aW9uU2NoZW1lOjpPQXV0aDoKICAgICAgICAgc291cF9hdXRoX2F1dGhl
bnRpY2F0ZShjaGFsbGVuZ2Uuc291cEF1dGgoKSwgY3JlZGVudGlhbC51c2VyKCkudXRmOCgpLmRh
dGEoKSwgY3JlZGVudGlhbC5wYXNzd29yZCgpLnV0ZjgoKS5kYXRhKCkpOwogICAgICAgICBicmVh
azsKLSAgICBjYXNlIFByb3RlY3Rpb25TcGFjZUF1dGhlbnRpY2F0aW9uU2NoZW1lQ2xpZW50Q2Vy
dGlmaWNhdGVQSU5SZXF1ZXN0ZWQ6IHsKKyAgICBjYXNlIFByb3RlY3Rpb25TcGFjZTo6QXV0aGVu
dGljYXRpb25TY2hlbWU6OkNsaWVudENlcnRpZmljYXRlUElOUmVxdWVzdGVkOiB7CiAjaWYgVVNF
KFNPVVAyKQogICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKICNlbHNlCkBAIC03MDcsMTUg
KzcwNywxNSBAQCB2b2lkIE5ldHdvcmtEYXRhVGFza1NvdXA6OmNvbXBsZXRlQXV0aGVudGljYXRp
b24oY29uc3QgQXV0aGVudGljYXRpb25DaGFsbGVuZ2UmCiAjZW5kaWYKICAgICAgICAgYnJlYWs7
CiAgICAgfQotICAgIGNhc2UgUHJvdGVjdGlvblNwYWNlQXV0aGVudGljYXRpb25TY2hlbWVDbGll
bnRDZXJ0aWZpY2F0ZVJlcXVlc3RlZDoKKyAgICBjYXNlIFByb3RlY3Rpb25TcGFjZTo6QXV0aGVu
dGljYXRpb25TY2hlbWU6OkNsaWVudENlcnRpZmljYXRlUmVxdWVzdGVkOgogI2lmIFVTRShTT1VQ
MikKICAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CiAjZWxzZQogICAgICAgICBzb3VwX21l
c3NhZ2Vfc2V0X3Rsc19jbGllbnRfY2VydGlmaWNhdGUobV9zb3VwTWVzc2FnZS5nZXQoKSwgY3Jl
ZGVudGlhbC5jZXJ0aWZpY2F0ZSgpKTsKICNlbmRpZgogICAgICAgICBicmVhazsKLSAgICBjYXNl
IFByb3RlY3Rpb25TcGFjZUF1dGhlbnRpY2F0aW9uU2NoZW1lU2VydmVyVHJ1c3RFdmFsdWF0aW9u
UmVxdWVzdGVkOgotICAgIGNhc2UgUHJvdGVjdGlvblNwYWNlQXV0aGVudGljYXRpb25TY2hlbWVV
bmtub3duOgorICAgIGNhc2UgUHJvdGVjdGlvblNwYWNlOjpBdXRoZW50aWNhdGlvblNjaGVtZTo6
U2VydmVyVHJ1c3RFdmFsdWF0aW9uUmVxdWVzdGVkOgorICAgIGNhc2UgUHJvdGVjdGlvblNwYWNl
OjpBdXRoZW50aWNhdGlvblNjaGVtZTo6VW5rbm93bjoKICAgICAgICAgYnJlYWs7CiAgICAgfQog
fQpAQCAtNzIzLDMxICs3MjMsMzEgQEAgdm9pZCBOZXR3b3JrRGF0YVRhc2tTb3VwOjpjb21wbGV0
ZUF1dGhlbnRpY2F0aW9uKGNvbnN0IEF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlJgogdm9pZCBOZXR3
b3JrRGF0YVRhc2tTb3VwOjpjYW5jZWxBdXRoZW50aWNhdGlvbihjb25zdCBBdXRoZW50aWNhdGlv
bkNoYWxsZW5nZSYgY2hhbGxlbmdlKQogewogICAgIHN3aXRjaCAoY2hhbGxlbmdlLnByb3RlY3Rp
b25TcGFjZSgpLmF1dGhlbnRpY2F0aW9uU2NoZW1lKCkpIHsKLSAgICBjYXNlIFByb3RlY3Rpb25T
cGFjZUF1dGhlbnRpY2F0aW9uU2NoZW1lRGVmYXVsdDoKLSAgICBjYXNlIFByb3RlY3Rpb25TcGFj
ZUF1dGhlbnRpY2F0aW9uU2NoZW1lSFRUUEJhc2ljOgotICAgIGNhc2UgUHJvdGVjdGlvblNwYWNl
QXV0aGVudGljYXRpb25TY2hlbWVIVFRQRGlnZXN0OgotICAgIGNhc2UgUHJvdGVjdGlvblNwYWNl
QXV0aGVudGljYXRpb25TY2hlbWVIVE1MRm9ybToKLSAgICBjYXNlIFByb3RlY3Rpb25TcGFjZUF1
dGhlbnRpY2F0aW9uU2NoZW1lTlRMTToKLSAgICBjYXNlIFByb3RlY3Rpb25TcGFjZUF1dGhlbnRp
Y2F0aW9uU2NoZW1lTmVnb3RpYXRlOgotICAgIGNhc2UgUHJvdGVjdGlvblNwYWNlQXV0aGVudGlj
YXRpb25TY2hlbWVPQXV0aDoKKyAgICBjYXNlIFByb3RlY3Rpb25TcGFjZTo6QXV0aGVudGljYXRp
b25TY2hlbWU6OkRlZmF1bHQ6CisgICAgY2FzZSBQcm90ZWN0aW9uU3BhY2U6OkF1dGhlbnRpY2F0
aW9uU2NoZW1lOjpIVFRQQmFzaWM6CisgICAgY2FzZSBQcm90ZWN0aW9uU3BhY2U6OkF1dGhlbnRp
Y2F0aW9uU2NoZW1lOjpIVFRQRGlnZXN0OgorICAgIGNhc2UgUHJvdGVjdGlvblNwYWNlOjpBdXRo
ZW50aWNhdGlvblNjaGVtZTo6SFRNTEZvcm06CisgICAgY2FzZSBQcm90ZWN0aW9uU3BhY2U6OkF1
dGhlbnRpY2F0aW9uU2NoZW1lOjpOVExNOgorICAgIGNhc2UgUHJvdGVjdGlvblNwYWNlOjpBdXRo
ZW50aWNhdGlvblNjaGVtZTo6TmVnb3RpYXRlOgorICAgIGNhc2UgUHJvdGVjdGlvblNwYWNlOjpB
dXRoZW50aWNhdGlvblNjaGVtZTo6T0F1dGg6CiAgICAgICAgIHNvdXBfYXV0aF9jYW5jZWwoY2hh
bGxlbmdlLnNvdXBBdXRoKCkpOwogICAgICAgICBicmVhazsKLSAgICBjYXNlIFByb3RlY3Rpb25T
cGFjZUF1dGhlbnRpY2F0aW9uU2NoZW1lQ2xpZW50Q2VydGlmaWNhdGVQSU5SZXF1ZXN0ZWQ6Cisg
ICAgY2FzZSBQcm90ZWN0aW9uU3BhY2U6OkF1dGhlbnRpY2F0aW9uU2NoZW1lOjpDbGllbnRDZXJ0
aWZpY2F0ZVBJTlJlcXVlc3RlZDoKICNpZiBVU0UoU09VUDIpCiAgICAgICAgIEFTU0VSVF9OT1Rf
UkVBQ0hFRCgpOwogI2Vsc2UKICAgICAgICAgc291cF9tZXNzYWdlX3Rsc19jbGllbnRfY2VydGlm
aWNhdGVfcGFzc3dvcmRfcmVxdWVzdF9jb21wbGV0ZShtX3NvdXBNZXNzYWdlLmdldCgpKTsKICNl
bmRpZgogICAgICAgICBicmVhazsKLSAgICBjYXNlIFByb3RlY3Rpb25TcGFjZUF1dGhlbnRpY2F0
aW9uU2NoZW1lQ2xpZW50Q2VydGlmaWNhdGVSZXF1ZXN0ZWQ6CisgICAgY2FzZSBQcm90ZWN0aW9u
U3BhY2U6OkF1dGhlbnRpY2F0aW9uU2NoZW1lOjpDbGllbnRDZXJ0aWZpY2F0ZVJlcXVlc3RlZDoK
ICNpZiBVU0UoU09VUDIpCiAgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwogI2Vsc2UKICAg
ICAgICAgc291cF9tZXNzYWdlX3NldF90bHNfY2xpZW50X2NlcnRpZmljYXRlKG1fc291cE1lc3Nh
Z2UuZ2V0KCksIG51bGxwdHIpOwogI2VuZGlmCiAgICAgICAgIGJyZWFrOwotICAgIGNhc2UgUHJv
dGVjdGlvblNwYWNlQXV0aGVudGljYXRpb25TY2hlbWVTZXJ2ZXJUcnVzdEV2YWx1YXRpb25SZXF1
ZXN0ZWQ6Ci0gICAgY2FzZSBQcm90ZWN0aW9uU3BhY2VBdXRoZW50aWNhdGlvblNjaGVtZVVua25v
d246CisgICAgY2FzZSBQcm90ZWN0aW9uU3BhY2U6OkF1dGhlbnRpY2F0aW9uU2NoZW1lOjpTZXJ2
ZXJUcnVzdEV2YWx1YXRpb25SZXF1ZXN0ZWQ6CisgICAgY2FzZSBQcm90ZWN0aW9uU3BhY2U6OkF1
dGhlbnRpY2F0aW9uU2NoZW1lOjpVbmtub3duOgogICAgICAgICBicmVhazsKICAgICB9CiB9CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9BdXRoZW50aWNhdGlvbi9BdXRoZW50aWNh
dGlvbk1hbmFnZXIuY3BwIGIvU291cmNlL1dlYktpdC9TaGFyZWQvQXV0aGVudGljYXRpb24vQXV0
aGVudGljYXRpb25NYW5hZ2VyLmNwcAppbmRleCBmNjExMzU1MTc1NzliNmE3OGQ2N2I3Njg3ZGU1
NGM2YzJkM2Q4ZDc4Li5hMzljMWUxNWY4Y2YzYTA2NDhmNmQ4ZTFlYmFjMzM0MzdiYjAzYzYwIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9BdXRoZW50aWNhdGlvbi9BdXRoZW50aWNh
dGlvbk1hbmFnZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0F1dGhlbnRpY2F0aW9u
L0F1dGhlbnRpY2F0aW9uTWFuYWdlci5jcHAKQEAgLTQ1LDcgKzQ1LDcgQEAgdXNpbmcgbmFtZXNw
YWNlIFdlYkNvcmU7CiBzdGF0aWMgYm9vbCBjYW5Db2FsZXNjZUNoYWxsZW5nZShjb25zdCBXZWJD
b3JlOjpBdXRoZW50aWNhdGlvbkNoYWxsZW5nZSYgY2hhbGxlbmdlKQogewogICAgIC8vIERvIG5v
dCBjb2FsZXNjZSBzZXJ2ZXIgdHJ1c3QgZXZhbHVhdGlvbiByZXF1ZXN0cyBiZWNhdXNlIFByb3Rl
Y3Rpb25TcGFjZSBjb21wYXJpc29uIGRvZXMgbm90IGV2YWx1YXRlIHNlcnZlciB0cnVzdCAoZS5n
LiBjZXJ0aWZpY2F0ZSkuCi0gICAgcmV0dXJuIGNoYWxsZW5nZS5wcm90ZWN0aW9uU3BhY2UoKS5h
dXRoZW50aWNhdGlvblNjaGVtZSgpICE9IFByb3RlY3Rpb25TcGFjZUF1dGhlbnRpY2F0aW9uU2No
ZW1lU2VydmVyVHJ1c3RFdmFsdWF0aW9uUmVxdWVzdGVkOworICAgIHJldHVybiBjaGFsbGVuZ2Uu
cHJvdGVjdGlvblNwYWNlKCkuYXV0aGVudGljYXRpb25TY2hlbWUoKSAhPSBQcm90ZWN0aW9uU3Bh
Y2U6OkF1dGhlbnRpY2F0aW9uU2NoZW1lOjpTZXJ2ZXJUcnVzdEV2YWx1YXRpb25SZXF1ZXN0ZWQ7
CiB9CiAKIGNvbnN0IGNoYXIqIEF1dGhlbnRpY2F0aW9uTWFuYWdlcjo6c3VwcGxlbWVudE5hbWUo
KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViQ29yZUFyZ3VtZW50Q29kZXJz
LmNwcCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkNvcmVBcmd1bWVudENvZGVycy5jcHAKaW5k
ZXggYTY5ZWJjNTk2MzI1OWVhNGFkNDUxNzE1Yjc3MWNkZDJkYjY0NDMxNy4uYzg5ODY4N2IyMjZj
Y2U0YjRmM2I4YjFhODVjYmVjNzk1OGI2N2FiNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9T
aGFyZWQvV2ViQ29yZUFyZ3VtZW50Q29kZXJzLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJl
ZC9XZWJDb3JlQXJndW1lbnRDb2RlcnMuY3BwCkBAIC05NjIsMTEgKzk2MiwxMSBAQCBib29sIEFy
Z3VtZW50Q29kZXI8UHJvdGVjdGlvblNwYWNlPjo6ZGVjb2RlKERlY29kZXImIGRlY29kZXIsIFBy
b3RlY3Rpb25TcGFjZSYgcwogICAgIGlmICghZGVjb2Rlci5kZWNvZGUocmVhbG0pKQogICAgICAg
ICByZXR1cm4gZmFsc2U7CiAgICAgCi0gICAgUHJvdGVjdGlvblNwYWNlQXV0aGVudGljYXRpb25T
Y2hlbWUgYXV0aGVudGljYXRpb25TY2hlbWU7CisgICAgUHJvdGVjdGlvblNwYWNlOjpBdXRoZW50
aWNhdGlvblNjaGVtZSBhdXRoZW50aWNhdGlvblNjaGVtZTsKICAgICBpZiAoIWRlY29kZXIuZGVj
b2RlKGF1dGhlbnRpY2F0aW9uU2NoZW1lKSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwogCi0gICAg
UHJvdGVjdGlvblNwYWNlU2VydmVyVHlwZSBzZXJ2ZXJUeXBlOworICAgIFByb3RlY3Rpb25TcGFj
ZTo6U2VydmVyVHlwZSBzZXJ2ZXJUeXBlOwogICAgIGlmICghZGVjb2Rlci5kZWNvZGUoc2VydmVy
VHlwZSkpCiAgICAgICAgIHJldHVybiBmYWxzZTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9TaGFyZWQvY3VybC9XZWJDb3JlQXJndW1lbnRDb2RlcnNDdXJsLmNwcCBiL1NvdXJjZS9XZWJL
aXQvU2hhcmVkL2N1cmwvV2ViQ29yZUFyZ3VtZW50Q29kZXJzQ3VybC5jcHAKaW5kZXggNmZjNTQ0
MzQ4MjUzZjEwODUyYWFkYjU3ZWUyYmJlNGExMGE5YmY3Zi4uYWI2NDgzYjg5MWRlMjg5NTZhMTBm
YmU1NmY0MjhlMTlkODNkZDAyZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9TaGFyZWQvY3Vy
bC9XZWJDb3JlQXJndW1lbnRDb2RlcnNDdXJsLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJl
ZC9jdXJsL1dlYkNvcmVBcmd1bWVudENvZGVyc0N1cmwuY3BwCkBAIC0xNjMsMTEgKzE2MywxMSBA
QCBib29sIEFyZ3VtZW50Q29kZXI8UHJvdGVjdGlvblNwYWNlPjo6ZGVjb2RlUGxhdGZvcm1EYXRh
KERlY29kZXImIGRlY29kZXIsIFByb3RlYwogICAgIGlmICghZGVjb2Rlci5kZWNvZGUocmVhbG0p
KQogICAgICAgICByZXR1cm4gZmFsc2U7CiAKLSAgICBQcm90ZWN0aW9uU3BhY2VBdXRoZW50aWNh
dGlvblNjaGVtZSBhdXRoZW50aWNhdGlvblNjaGVtZTsKKyAgICBQcm90ZWN0aW9uU3BhY2U6OkF1
dGhlbnRpY2F0aW9uU2NoZW1lIGF1dGhlbnRpY2F0aW9uU2NoZW1lOwogICAgIGlmICghZGVjb2Rl
ci5kZWNvZGUoYXV0aGVudGljYXRpb25TY2hlbWUpKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAK
LSAgICBQcm90ZWN0aW9uU3BhY2VTZXJ2ZXJUeXBlIHNlcnZlclR5cGU7CisgICAgUHJvdGVjdGlv
blNwYWNlOjpTZXJ2ZXJUeXBlIHNlcnZlclR5cGU7CiAgICAgaWYgKCFkZWNvZGVyLmRlY29kZShz
ZXJ2ZXJUeXBlKSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwogCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9BUEkvQy9XS0FQSUNhc3QuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL0FQSS9DL1dLQVBJQ2FzdC5oCmluZGV4IDUxMmIyYmM2OTUyNGI3OTkwMTg1NjUyY2MxMzZj
ZDVhMzg0YTY2Y2MuLjU2ZTA4NDQ4ODcyOTllODBhYzY5NTViMGU5MzJjYWE1MGY1ZDRhOTEgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9DL1dLQVBJQ2FzdC5oCisrKyBi
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9DL1dLQVBJQ2FzdC5oCkBAIC0yOTAsNDkgKzI5
MCw0OSBAQCBpbmxpbmUgV2ViQ29yZTo6RWRpdGFibGVMaW5rQmVoYXZpb3IgdG9FZGl0YWJsZUxp
bmtCZWhhdmlvcihXS0VkaXRhYmxlTGlua0JlaGF2aQogICAgIHJldHVybiBXZWJDb3JlOjpFZGl0
YWJsZUxpbmtCZWhhdmlvcjo6TmV2ZXJMaXZlOwogfQogICAgIAotaW5saW5lIFdLUHJvdGVjdGlv
blNwYWNlU2VydmVyVHlwZSB0b0FQSShXZWJDb3JlOjpQcm90ZWN0aW9uU3BhY2VTZXJ2ZXJUeXBl
IHR5cGUpCitpbmxpbmUgV0tQcm90ZWN0aW9uU3BhY2VTZXJ2ZXJUeXBlIHRvQVBJKFdlYkNvcmU6
OlByb3RlY3Rpb25TcGFjZTo6U2VydmVyVHlwZSB0eXBlKQogewogICAgIHN3aXRjaCAodHlwZSkg
ewotICAgIGNhc2UgV2ViQ29yZTo6UHJvdGVjdGlvblNwYWNlU2VydmVySFRUUDoKKyAgICBjYXNl
IFdlYkNvcmU6OlByb3RlY3Rpb25TcGFjZTo6U2VydmVyVHlwZTo6SFRUUDoKICAgICAgICAgcmV0
dXJuIGtXS1Byb3RlY3Rpb25TcGFjZVNlcnZlclR5cGVIVFRQOwotICAgIGNhc2UgV2ViQ29yZTo6
UHJvdGVjdGlvblNwYWNlU2VydmVySFRUUFM6CisgICAgY2FzZSBXZWJDb3JlOjpQcm90ZWN0aW9u
U3BhY2U6OlNlcnZlclR5cGU6OkhUVFBTOgogICAgICAgICByZXR1cm4ga1dLUHJvdGVjdGlvblNw
YWNlU2VydmVyVHlwZUhUVFBTOwotICAgIGNhc2UgV2ViQ29yZTo6UHJvdGVjdGlvblNwYWNlU2Vy
dmVyRlRQOgorICAgIGNhc2UgV2ViQ29yZTo6UHJvdGVjdGlvblNwYWNlOjpTZXJ2ZXJUeXBlOjpG
VFA6CiAgICAgICAgIHJldHVybiBrV0tQcm90ZWN0aW9uU3BhY2VTZXJ2ZXJUeXBlRlRQOwotICAg
IGNhc2UgV2ViQ29yZTo6UHJvdGVjdGlvblNwYWNlU2VydmVyRlRQUzoKKyAgICBjYXNlIFdlYkNv
cmU6OlByb3RlY3Rpb25TcGFjZTo6U2VydmVyVHlwZTo6RlRQUzoKICAgICAgICAgcmV0dXJuIGtX
S1Byb3RlY3Rpb25TcGFjZVNlcnZlclR5cGVGVFBTOwotICAgIGNhc2UgV2ViQ29yZTo6UHJvdGVj
dGlvblNwYWNlUHJveHlIVFRQOgorICAgIGNhc2UgV2ViQ29yZTo6UHJvdGVjdGlvblNwYWNlOjpT
ZXJ2ZXJUeXBlOjpQcm94eUhUVFA6CiAgICAgICAgIHJldHVybiBrV0tQcm90ZWN0aW9uU3BhY2VQ
cm94eVR5cGVIVFRQOwotICAgIGNhc2UgV2ViQ29yZTo6UHJvdGVjdGlvblNwYWNlUHJveHlIVFRQ
UzoKKyAgICBjYXNlIFdlYkNvcmU6OlByb3RlY3Rpb25TcGFjZTo6U2VydmVyVHlwZTo6UHJveHlI
VFRQUzoKICAgICAgICAgcmV0dXJuIGtXS1Byb3RlY3Rpb25TcGFjZVByb3h5VHlwZUhUVFBTOwot
ICAgIGNhc2UgV2ViQ29yZTo6UHJvdGVjdGlvblNwYWNlUHJveHlGVFA6CisgICAgY2FzZSBXZWJD
b3JlOjpQcm90ZWN0aW9uU3BhY2U6OlNlcnZlclR5cGU6OlByb3h5RlRQOgogICAgICAgICByZXR1
cm4ga1dLUHJvdGVjdGlvblNwYWNlUHJveHlUeXBlRlRQOwotICAgIGNhc2UgV2ViQ29yZTo6UHJv
dGVjdGlvblNwYWNlUHJveHlTT0NLUzoKKyAgICBjYXNlIFdlYkNvcmU6OlByb3RlY3Rpb25TcGFj
ZTo6U2VydmVyVHlwZTo6UHJveHlTT0NLUzoKICAgICAgICAgcmV0dXJuIGtXS1Byb3RlY3Rpb25T
cGFjZVByb3h5VHlwZVNPQ0tTOwogICAgIH0KICAgICByZXR1cm4ga1dLUHJvdGVjdGlvblNwYWNl
U2VydmVyVHlwZUhUVFA7CiB9CiAKLWlubGluZSBXS1Byb3RlY3Rpb25TcGFjZUF1dGhlbnRpY2F0
aW9uU2NoZW1lIHRvQVBJKFdlYkNvcmU6OlByb3RlY3Rpb25TcGFjZUF1dGhlbnRpY2F0aW9uU2No
ZW1lIHR5cGUpCitpbmxpbmUgV0tQcm90ZWN0aW9uU3BhY2VBdXRoZW50aWNhdGlvblNjaGVtZSB0
b0FQSShXZWJDb3JlOjpQcm90ZWN0aW9uU3BhY2U6OkF1dGhlbnRpY2F0aW9uU2NoZW1lIHR5cGUp
CiB7CiAgICAgc3dpdGNoICh0eXBlKSB7Ci0gICAgY2FzZSBXZWJDb3JlOjpQcm90ZWN0aW9uU3Bh
Y2VBdXRoZW50aWNhdGlvblNjaGVtZURlZmF1bHQ6CisgICAgY2FzZSBXZWJDb3JlOjpQcm90ZWN0
aW9uU3BhY2U6OkF1dGhlbnRpY2F0aW9uU2NoZW1lOjpEZWZhdWx0OgogICAgICAgICByZXR1cm4g
a1dLUHJvdGVjdGlvblNwYWNlQXV0aGVudGljYXRpb25TY2hlbWVEZWZhdWx0OwotICAgIGNhc2Ug
V2ViQ29yZTo6UHJvdGVjdGlvblNwYWNlQXV0aGVudGljYXRpb25TY2hlbWVIVFRQQmFzaWM6Cisg
ICAgY2FzZSBXZWJDb3JlOjpQcm90ZWN0aW9uU3BhY2U6OkF1dGhlbnRpY2F0aW9uU2NoZW1lOjpI
VFRQQmFzaWM6CiAgICAgICAgIHJldHVybiBrV0tQcm90ZWN0aW9uU3BhY2VBdXRoZW50aWNhdGlv
blNjaGVtZUhUVFBCYXNpYzsKLSAgICBjYXNlIFdlYkNvcmU6OlByb3RlY3Rpb25TcGFjZUF1dGhl
bnRpY2F0aW9uU2NoZW1lSFRUUERpZ2VzdDoKKyAgICBjYXNlIFdlYkNvcmU6OlByb3RlY3Rpb25T
cGFjZTo6QXV0aGVudGljYXRpb25TY2hlbWU6OkhUVFBEaWdlc3Q6CiAgICAgICAgIHJldHVybiBr
V0tQcm90ZWN0aW9uU3BhY2VBdXRoZW50aWNhdGlvblNjaGVtZUhUVFBEaWdlc3Q7Ci0gICAgY2Fz
ZSBXZWJDb3JlOjpQcm90ZWN0aW9uU3BhY2VBdXRoZW50aWNhdGlvblNjaGVtZUhUTUxGb3JtOgor
ICAgIGNhc2UgV2ViQ29yZTo6UHJvdGVjdGlvblNwYWNlOjpBdXRoZW50aWNhdGlvblNjaGVtZTo6
SFRNTEZvcm06CiAgICAgICAgIHJldHVybiBrV0tQcm90ZWN0aW9uU3BhY2VBdXRoZW50aWNhdGlv
blNjaGVtZUhUTUxGb3JtOwotICAgIGNhc2UgV2ViQ29yZTo6UHJvdGVjdGlvblNwYWNlQXV0aGVu
dGljYXRpb25TY2hlbWVOVExNOgorICAgIGNhc2UgV2ViQ29yZTo6UHJvdGVjdGlvblNwYWNlOjpB
dXRoZW50aWNhdGlvblNjaGVtZTo6TlRMTToKICAgICAgICAgcmV0dXJuIGtXS1Byb3RlY3Rpb25T
cGFjZUF1dGhlbnRpY2F0aW9uU2NoZW1lTlRMTTsKLSAgICBjYXNlIFdlYkNvcmU6OlByb3RlY3Rp
b25TcGFjZUF1dGhlbnRpY2F0aW9uU2NoZW1lTmVnb3RpYXRlOgorICAgIGNhc2UgV2ViQ29yZTo6
UHJvdGVjdGlvblNwYWNlOjpBdXRoZW50aWNhdGlvblNjaGVtZTo6TmVnb3RpYXRlOgogICAgICAg
ICByZXR1cm4ga1dLUHJvdGVjdGlvblNwYWNlQXV0aGVudGljYXRpb25TY2hlbWVOZWdvdGlhdGU7
Ci0gICAgY2FzZSBXZWJDb3JlOjpQcm90ZWN0aW9uU3BhY2VBdXRoZW50aWNhdGlvblNjaGVtZUNs
aWVudENlcnRpZmljYXRlUmVxdWVzdGVkOgorICAgIGNhc2UgV2ViQ29yZTo6UHJvdGVjdGlvblNw
YWNlOjpBdXRoZW50aWNhdGlvblNjaGVtZTo6Q2xpZW50Q2VydGlmaWNhdGVSZXF1ZXN0ZWQ6CiAg
ICAgICAgIHJldHVybiBrV0tQcm90ZWN0aW9uU3BhY2VBdXRoZW50aWNhdGlvblNjaGVtZUNsaWVu
dENlcnRpZmljYXRlUmVxdWVzdGVkOwotICAgIGNhc2UgV2ViQ29yZTo6UHJvdGVjdGlvblNwYWNl
QXV0aGVudGljYXRpb25TY2hlbWVTZXJ2ZXJUcnVzdEV2YWx1YXRpb25SZXF1ZXN0ZWQ6CisgICAg
Y2FzZSBXZWJDb3JlOjpQcm90ZWN0aW9uU3BhY2U6OkF1dGhlbnRpY2F0aW9uU2NoZW1lOjpTZXJ2
ZXJUcnVzdEV2YWx1YXRpb25SZXF1ZXN0ZWQ6CiAgICAgICAgIHJldHVybiBrV0tQcm90ZWN0aW9u
U3BhY2VBdXRoZW50aWNhdGlvblNjaGVtZVNlcnZlclRydXN0RXZhbHVhdGlvblJlcXVlc3RlZDsK
LSAgICBjYXNlIFdlYkNvcmU6OlByb3RlY3Rpb25TcGFjZUF1dGhlbnRpY2F0aW9uU2NoZW1lT0F1
dGg6CisgICAgY2FzZSBXZWJDb3JlOjpQcm90ZWN0aW9uU3BhY2U6OkF1dGhlbnRpY2F0aW9uU2No
ZW1lOjpPQXV0aDoKICAgICAgICAgcmV0dXJuIGtXS1Byb3RlY3Rpb25TcGFjZUF1dGhlbnRpY2F0
aW9uU2NoZW1lT0F1dGg7CiAgICAgZGVmYXVsdDoKICAgICAgICAgcmV0dXJuIGtXS1Byb3RlY3Rp
b25TcGFjZUF1dGhlbnRpY2F0aW9uU2NoZW1lVW5rbm93bjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL0FQSS9nbGliL1dlYktpdEF1dGhlbnRpY2F0aW9uUmVxdWVzdC5jcHAg
Yi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvZ2xpYi9XZWJLaXRBdXRoZW50aWNhdGlvblJl
cXVlc3QuY3BwCmluZGV4IGNlNDMyOWJjODllN2FiMDZkN2MyNGFlZjE1ZDc2YjkzZWQzNDAwYzYu
LmY3ZGEyZDViZjAyZTQ1YTg2ZmZhZWYwODg2YmUwY2UxNGM4YTU4OTcgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9nbGliL1dlYktpdEF1dGhlbnRpY2F0aW9uUmVxdWVz
dC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2dsaWIvV2ViS2l0QXV0aGVu
dGljYXRpb25SZXF1ZXN0LmNwcApAQCAtNzksMjggKzc5LDI4IEBAIHN0YXRpYyBndWludCBzaWdu
YWxzW0xBU1RfU0lHTkFMXSA9IHsgMCwgfTsKIAogV0VCS0lUX0RFRklORV9UWVBFKFdlYktpdEF1
dGhlbnRpY2F0aW9uUmVxdWVzdCwgd2Via2l0X2F1dGhlbnRpY2F0aW9uX3JlcXVlc3QsIEdfVFlQ
RV9PQkpFQ1QpCiAKLXN0YXRpYyBpbmxpbmUgV2ViS2l0QXV0aGVudGljYXRpb25TY2hlbWUgdG9X
ZWJLaXRBdXRoZW50aWNhdGlvblNjaGVtZShXZWJDb3JlOjpQcm90ZWN0aW9uU3BhY2VBdXRoZW50
aWNhdGlvblNjaGVtZSBjb3JlU2NoZW1lKQorc3RhdGljIGlubGluZSBXZWJLaXRBdXRoZW50aWNh
dGlvblNjaGVtZSB0b1dlYktpdEF1dGhlbnRpY2F0aW9uU2NoZW1lKFdlYkNvcmU6OlByb3RlY3Rp
b25TcGFjZTo6QXV0aGVudGljYXRpb25TY2hlbWUgY29yZVNjaGVtZSkKIHsKICAgICBzd2l0Y2gg
KGNvcmVTY2hlbWUpIHsKLSAgICBjYXNlIFdlYkNvcmU6OlByb3RlY3Rpb25TcGFjZUF1dGhlbnRp
Y2F0aW9uU2NoZW1lRGVmYXVsdDoKKyAgICBjYXNlIFdlYkNvcmU6OlByb3RlY3Rpb25TcGFjZTo6
QXV0aGVudGljYXRpb25TY2hlbWVEZWZhdWx0OgogICAgICAgICByZXR1cm4gV0VCS0lUX0FVVEhF
TlRJQ0FUSU9OX1NDSEVNRV9ERUZBVUxUOwotICAgIGNhc2UgV2ViQ29yZTo6UHJvdGVjdGlvblNw
YWNlQXV0aGVudGljYXRpb25TY2hlbWVIVFRQQmFzaWM6CisgICAgY2FzZSBXZWJDb3JlOjpQcm90
ZWN0aW9uU3BhY2U6OkF1dGhlbnRpY2F0aW9uU2NoZW1lOjpIVFRQQmFzaWM6CiAgICAgICAgIHJl
dHVybiBXRUJLSVRfQVVUSEVOVElDQVRJT05fU0NIRU1FX0hUVFBfQkFTSUM7Ci0gICAgY2FzZSBX
ZWJDb3JlOjpQcm90ZWN0aW9uU3BhY2VBdXRoZW50aWNhdGlvblNjaGVtZUhUVFBEaWdlc3Q6Cisg
ICAgY2FzZSBXZWJDb3JlOjpQcm90ZWN0aW9uU3BhY2U6OkF1dGhlbnRpY2F0aW9uU2NoZW1lOjpI
VFRQRGlnZXN0OgogICAgICAgICByZXR1cm4gV0VCS0lUX0FVVEhFTlRJQ0FUSU9OX1NDSEVNRV9I
VFRQX0RJR0VTVDsKLSAgICBjYXNlIFdlYkNvcmU6OlByb3RlY3Rpb25TcGFjZUF1dGhlbnRpY2F0
aW9uU2NoZW1lSFRNTEZvcm06CisgICAgY2FzZSBXZWJDb3JlOjpQcm90ZWN0aW9uU3BhY2U6OkF1
dGhlbnRpY2F0aW9uU2NoZW1lOjpIVE1MRm9ybToKICAgICAgICAgcmV0dXJuIFdFQktJVF9BVVRI
RU5USUNBVElPTl9TQ0hFTUVfSFRNTF9GT1JNOwotICAgIGNhc2UgV2ViQ29yZTo6UHJvdGVjdGlv
blNwYWNlQXV0aGVudGljYXRpb25TY2hlbWVOVExNOgorICAgIGNhc2UgV2ViQ29yZTo6UHJvdGVj
dGlvblNwYWNlOjpBdXRoZW50aWNhdGlvblNjaGVtZTo6TlRMTToKICAgICAgICAgcmV0dXJuIFdF
QktJVF9BVVRIRU5USUNBVElPTl9TQ0hFTUVfTlRMTTsKLSAgICBjYXNlIFdlYkNvcmU6OlByb3Rl
Y3Rpb25TcGFjZUF1dGhlbnRpY2F0aW9uU2NoZW1lTmVnb3RpYXRlOgorICAgIGNhc2UgV2ViQ29y
ZTo6UHJvdGVjdGlvblNwYWNlOjpBdXRoZW50aWNhdGlvblNjaGVtZTo6TmVnb3RpYXRlOgogICAg
ICAgICByZXR1cm4gV0VCS0lUX0FVVEhFTlRJQ0FUSU9OX1NDSEVNRV9ORUdPVElBVEU7Ci0gICAg
Y2FzZSBXZWJDb3JlOjpQcm90ZWN0aW9uU3BhY2VBdXRoZW50aWNhdGlvblNjaGVtZUNsaWVudENl
cnRpZmljYXRlUmVxdWVzdGVkOgorICAgIGNhc2UgV2ViQ29yZTo6UHJvdGVjdGlvblNwYWNlOjpB
dXRoZW50aWNhdGlvblNjaGVtZTo6Q2xpZW50Q2VydGlmaWNhdGVSZXF1ZXN0ZWQ6CiAgICAgICAg
IHJldHVybiBXRUJLSVRfQVVUSEVOVElDQVRJT05fU0NIRU1FX0NMSUVOVF9DRVJUSUZJQ0FURV9S
RVFVRVNURUQ7Ci0gICAgY2FzZSBXZWJDb3JlOjpQcm90ZWN0aW9uU3BhY2VBdXRoZW50aWNhdGlv
blNjaGVtZVNlcnZlclRydXN0RXZhbHVhdGlvblJlcXVlc3RlZDoKKyAgICBjYXNlIFdlYkNvcmU6
OlByb3RlY3Rpb25TcGFjZTo6QXV0aGVudGljYXRpb25TY2hlbWU6OlNlcnZlclRydXN0RXZhbHVh
dGlvblJlcXVlc3RlZDoKICAgICAgICAgcmV0dXJuIFdFQktJVF9BVVRIRU5USUNBVElPTl9TQ0hF
TUVfU0VSVkVSX1RSVVNUX0VWQUxVQVRJT05fUkVRVUVTVEVEOwotICAgIGNhc2UgV2ViQ29yZTo6
UHJvdGVjdGlvblNwYWNlQXV0aGVudGljYXRpb25TY2hlbWVDbGllbnRDZXJ0aWZpY2F0ZVBJTlJl
cXVlc3RlZDoKKyAgICBjYXNlIFdlYkNvcmU6OlByb3RlY3Rpb25TcGFjZTo6QXV0aGVudGljYXRp
b25TY2hlbWU6OkNsaWVudENlcnRpZmljYXRlUElOUmVxdWVzdGVkOgogICAgICAgICByZXR1cm4g
V0VCS0lUX0FVVEhFTlRJQ0FUSU9OX1NDSEVNRV9DTElFTlRfQ0VSVElGSUNBVEVfUElOX1JFUVVF
U1RFRDsKLSAgICBjYXNlIFdlYkNvcmU6OlByb3RlY3Rpb25TcGFjZUF1dGhlbnRpY2F0aW9uU2No
ZW1lVW5rbm93bjoKKyAgICBjYXNlIFdlYkNvcmU6OlByb3RlY3Rpb25TcGFjZTo6QXV0aGVudGlj
YXRpb25TY2hlbWU6OlVua25vd246CiAgICAgICAgIHJldHVybiBXRUJLSVRfQVVUSEVOVElDQVRJ
T05fU0NIRU1FX1VOS05PV047CiAgICAgZGVmYXVsdDoKICAgICAgICAgQVNTRVJUX05PVF9SRUFD
SEVEKCk7CkBAIC0zNDgsMjIgKzM0OCwyMiBAQCBXZWJLaXRTZWN1cml0eU9yaWdpbiogd2Via2l0
X2F1dGhlbnRpY2F0aW9uX3JlcXVlc3RfZ2V0X3NlY3VyaXR5X29yaWdpbihXZWJLaXRBdQogICAg
IGNvbnN0IGF1dG8mIHByb3RlY3Rpb25TcGFjZSA9IHJlcXVlc3QtPnByaXYtPmF1dGhlbnRpY2F0
aW9uQ2hhbGxlbmdlLT5jb3JlKCkucHJvdGVjdGlvblNwYWNlKCk7CiAgICAgU3RyaW5nIHByb3Rv
Y29sOwogICAgIHN3aXRjaCAocHJvdGVjdGlvblNwYWNlLnNlcnZlclR5cGUoKSkgewotICAgIGNh
c2UgUHJvdGVjdGlvblNwYWNlU2VydmVySFRUUDoKLSAgICBjYXNlIFByb3RlY3Rpb25TcGFjZVBy
b3h5SFRUUDoKKyAgICBjYXNlIFByb3RlY3Rpb25TcGFjZTo6U2VydmVyVHlwZTo6SFRUUDoKKyAg
ICBjYXNlIFByb3RlY3Rpb25TcGFjZTo6U2VydmVyVHlwZTo6UHJveHlIVFRQOgogICAgICAgICBw
cm90b2NvbCA9ICJodHRwIl9zOwogICAgICAgICBicmVhazsKLSAgICBjYXNlIFByb3RlY3Rpb25T
cGFjZVNlcnZlckhUVFBTOgotICAgIGNhc2UgUHJvdGVjdGlvblNwYWNlUHJveHlIVFRQUzoKKyAg
ICBjYXNlIFByb3RlY3Rpb25TcGFjZTo6U2VydmVyVHlwZTo6SFRUUFM6CisgICAgY2FzZSBQcm90
ZWN0aW9uU3BhY2U6OlNlcnZlclR5cGU6OlByb3h5SFRUUFM6CiAgICAgICAgIHByb3RvY29sID0g
Imh0dHBzIl9zOwogICAgICAgICBicmVhazsKLSAgICBjYXNlIFByb3RlY3Rpb25TcGFjZVNlcnZl
ckZUUDoKLSAgICBjYXNlIFByb3RlY3Rpb25TcGFjZVByb3h5RlRQOgorICAgIGNhc2UgUHJvdGVj
dGlvblNwYWNlOjpTZXJ2ZXJUeXBlOjpGVFA6CisgICAgY2FzZSBQcm90ZWN0aW9uU3BhY2U6OlNl
cnZlclR5cGU6OlByb3h5RlRQOgogICAgICAgICBwcm90b2NvbCA9ICJmdHAiX3M7CiAgICAgICAg
IGJyZWFrOwotICAgIGNhc2UgUHJvdGVjdGlvblNwYWNlU2VydmVyRlRQUzoKKyAgICBjYXNlIFBy
b3RlY3Rpb25TcGFjZTo6U2VydmVyVHlwZTo6RlRQUzoKICAgICAgICAgcHJvdG9jb2wgPSAiZnRw
cyJfczsKICAgICAgICAgYnJlYWs7Ci0gICAgY2FzZSBQcm90ZWN0aW9uU3BhY2VQcm94eVNPQ0tT
OgorICAgIGNhc2UgUHJvdGVjdGlvblNwYWNlOjpTZXJ2ZXJUeXBlOjpQcm94eVNPQ0tTOgogICAg
ICAgICBwcm90b2NvbCA9ICJzb2NrcyJfczsKICAgICAgICAgYnJlYWs7CiAgICAgfQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQXV0aGVudGljYXRpb24vV2ViUHJvdGVjdGlv
blNwYWNlLmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0F1dGhlbnRpY2F0aW9uL1dlYlBy
b3RlY3Rpb25TcGFjZS5jcHAKaW5kZXggM2QzOGUyMjQyZGJhYjUxMmUwMTIxYmQ5ZDYxZDExZGU5
YzhlZDk4OC4uMTUyYWNjYmQ5NjY5YjEwOTlmOGIwOTRkMTEyYmE2NTFmYjkwYTg1ZCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQXV0aGVudGljYXRpb24vV2ViUHJvdGVjdGlv
blNwYWNlLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BdXRoZW50aWNhdGlvbi9X
ZWJQcm90ZWN0aW9uU3BhY2UuY3BwCkBAIC01NSw3ICs1NSw3IEBAIGJvb2wgV2ViUHJvdGVjdGlv
blNwYWNlOjppc1Byb3h5KCkgY29uc3QKICAgICByZXR1cm4gbV9jb3JlUHJvdGVjdGlvblNwYWNl
LmlzUHJveHkoKTsKIH0KIAotV2ViQ29yZTo6UHJvdGVjdGlvblNwYWNlU2VydmVyVHlwZSBXZWJQ
cm90ZWN0aW9uU3BhY2U6OnNlcnZlclR5cGUoKSBjb25zdAorV2ViQ29yZTo6UHJvdGVjdGlvblNw
YWNlOjpTZXJ2ZXJUeXBlIFdlYlByb3RlY3Rpb25TcGFjZTo6c2VydmVyVHlwZSgpIGNvbnN0CiB7
CiAgICAgcmV0dXJuIG1fY29yZVByb3RlY3Rpb25TcGFjZS5zZXJ2ZXJUeXBlKCk7CiB9CkBAIC02
NSw3ICs2NSw3IEBAIGJvb2wgV2ViUHJvdGVjdGlvblNwYWNlOjpyZWNlaXZlc0NyZWRlbnRpYWxT
ZWN1cmVseSgpIGNvbnN0CiAgICAgcmV0dXJuIG1fY29yZVByb3RlY3Rpb25TcGFjZS5yZWNlaXZl
c0NyZWRlbnRpYWxTZWN1cmVseSgpOwogfQogCi1XZWJDb3JlOjpQcm90ZWN0aW9uU3BhY2VBdXRo
ZW50aWNhdGlvblNjaGVtZSBXZWJQcm90ZWN0aW9uU3BhY2U6OmF1dGhlbnRpY2F0aW9uU2NoZW1l
KCkgY29uc3QKK1dlYkNvcmU6OlByb3RlY3Rpb25TcGFjZTo6QXV0aGVudGljYXRpb25TY2hlbWUg
V2ViUHJvdGVjdGlvblNwYWNlOjphdXRoZW50aWNhdGlvblNjaGVtZSgpIGNvbnN0CiB7CiAgICAg
cmV0dXJuIG1fY29yZVByb3RlY3Rpb25TcGFjZS5hdXRoZW50aWNhdGlvblNjaGVtZSgpOwogfQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQXV0aGVudGljYXRpb24vV2ViUHJv
dGVjdGlvblNwYWNlLmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BdXRoZW50aWNhdGlvbi9X
ZWJQcm90ZWN0aW9uU3BhY2UuaAppbmRleCAyOGJlYmE2ZThjMGM4NjcxZjY5OTFiMWU3YTMyODRk
ZWJhM2MxN2EwLi40YTNiODc5ZDU0OGFjZDY5OGYwNzA4ZTI3MmVmNWU0YzU1ODYzZjI1IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BdXRoZW50aWNhdGlvbi9XZWJQcm90ZWN0
aW9uU3BhY2UuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BdXRoZW50aWNhdGlvbi9X
ZWJQcm90ZWN0aW9uU3BhY2UuaApAQCAtNDMsOSArNDMsOSBAQCBwdWJsaWM6CiAgICAgaW50IHBv
cnQoKSBjb25zdDsKICAgICBjb25zdCBTdHJpbmcmIHJlYWxtKCkgY29uc3Q7CiAgICAgYm9vbCBp
c1Byb3h5KCkgY29uc3Q7Ci0gICAgV2ViQ29yZTo6UHJvdGVjdGlvblNwYWNlU2VydmVyVHlwZSBz
ZXJ2ZXJUeXBlKCkgY29uc3Q7CisgICAgV2ViQ29yZTo6UHJvdGVjdGlvblNwYWNlOjpTZXJ2ZXJU
eXBlIHNlcnZlclR5cGUoKSBjb25zdDsKICAgICBib29sIHJlY2VpdmVzQ3JlZGVudGlhbFNlY3Vy
ZWx5KCkgY29uc3Q7Ci0gICAgV2ViQ29yZTo6UHJvdGVjdGlvblNwYWNlQXV0aGVudGljYXRpb25T
Y2hlbWUgYXV0aGVudGljYXRpb25TY2hlbWUoKSBjb25zdDsKKyAgICBXZWJDb3JlOjpQcm90ZWN0
aW9uU3BhY2U6OkF1dGhlbnRpY2F0aW9uU2NoZW1lIGF1dGhlbnRpY2F0aW9uU2NoZW1lKCkgY29u
c3Q7CiAKICAgICBjb25zdCBXZWJDb3JlOjpQcm90ZWN0aW9uU3BhY2UmIHByb3RlY3Rpb25TcGFj
ZSgpIGNvbnN0IHsgcmV0dXJuIG1fY29yZVByb3RlY3Rpb25TcGFjZTsgfQogCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9jZXNzUHJveHkuY3Bw
IGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvTmV0d29yay9OZXR3b3JrUHJvY2Vzc1Byb3h5LmNw
cAppbmRleCBiN2VhYWQ0MjUwNWNlNzRiNzc2ZjQ1YzdlYThmNmViMjlmNjEwNTg2Li5jYTFiZjEw
ZDhmMjY5MjM2NWQzNTcxOWI3M2M0MDMxODkwNmViYWVlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9jZXNzUHJveHkuY3BwCisrKyBiL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nlc3NQcm94eS5jcHAKQEAgLTQy
MSw3ICs0MjEsNyBAQCB2b2lkIE5ldHdvcmtQcm9jZXNzUHJveHk6OmRpZFJlY2VpdmVJbnZhbGlk
TWVzc2FnZShJUEM6OkNvbm5lY3Rpb24mIGNvbm5lY3Rpb24sCiB2b2lkIE5ldHdvcmtQcm9jZXNz
UHJveHk6OnByb2Nlc3NBdXRoZW50aWNhdGlvbkNoYWxsZW5nZShQQUw6OlNlc3Npb25JRCBzZXNz
aW9uSUQsIFJlZjxBdXRoZW50aWNhdGlvbkNoYWxsZW5nZVByb3h5PiYmIGF1dGhlbnRpY2F0aW9u
Q2hhbGxlbmdlKQogewogICAgIGF1dG8qIHN0b3JlID0gd2Vic2l0ZURhdGFTdG9yZUZyb21TZXNz
aW9uSUQoc2Vzc2lvbklEKTsKLSAgICBpZiAoIXN0b3JlIHx8IGF1dGhlbnRpY2F0aW9uQ2hhbGxl
bmdlLT5jb3JlKCkucHJvdGVjdGlvblNwYWNlKCkuYXV0aGVudGljYXRpb25TY2hlbWUoKSAhPSBQ
cm90ZWN0aW9uU3BhY2VBdXRoZW50aWNhdGlvblNjaGVtZVNlcnZlclRydXN0RXZhbHVhdGlvblJl
cXVlc3RlZCkgeworICAgIGlmICghc3RvcmUgfHwgYXV0aGVudGljYXRpb25DaGFsbGVuZ2UtPmNv
cmUoKS5wcm90ZWN0aW9uU3BhY2UoKS5hdXRoZW50aWNhdGlvblNjaGVtZSgpICE9IFByb3RlY3Rp
b25TcGFjZTo6QXV0aGVudGljYXRpb25TY2hlbWU6OlNlcnZlclRydXN0RXZhbHVhdGlvblJlcXVl
c3RlZCkgewogICAgICAgICBhdXRoZW50aWNhdGlvbkNoYWxsZW5nZS0+bGlzdGVuZXIoKS5jb21w
bGV0ZUNoYWxsZW5nZShBdXRoZW50aWNhdGlvbkNoYWxsZW5nZURpc3Bvc2l0aW9uOjpQZXJmb3Jt
RGVmYXVsdEhhbmRsaW5nKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KQEAgLTQzMiw3ICs0MzIs
NyBAQCB2b2lkIE5ldHdvcmtQcm9jZXNzUHJveHk6OmRpZFJlY2VpdmVBdXRoZW50aWNhdGlvbkNo
YWxsZW5nZShQQUw6OlNlc3Npb25JRCBzZXNzaQogewogI2lmIEhBVkUoU0VDX0tFWV9QUk9YWSkK
ICAgICBXZWFrUHRyPFNlY0tleVByb3h5U3RvcmU+IHNlY0tleVByb3h5U3RvcmU7Ci0gICAgaWYg
KGNvcmVDaGFsbGVuZ2UucHJvdGVjdGlvblNwYWNlKCkuYXV0aGVudGljYXRpb25TY2hlbWUoKSA9
PSBQcm90ZWN0aW9uU3BhY2VBdXRoZW50aWNhdGlvblNjaGVtZUNsaWVudENlcnRpZmljYXRlUmVx
dWVzdGVkKSB7CisgICAgaWYgKGNvcmVDaGFsbGVuZ2UucHJvdGVjdGlvblNwYWNlKCkuYXV0aGVu
dGljYXRpb25TY2hlbWUoKSA9PSBQcm90ZWN0aW9uU3BhY2U6OkF1dGhlbnRpY2F0aW9uU2NoZW1l
OjpDbGllbnRDZXJ0aWZpY2F0ZVJlcXVlc3RlZCkgewogICAgICAgICBpZiAoYXV0byogc3RvcmUg
PSB3ZWJzaXRlRGF0YVN0b3JlRnJvbVNlc3Npb25JRChzZXNzaW9uSUQpKSB7CiAgICAgICAgICAg
ICBhdXRvIG5ld1NlY0tleVByb3h5U3RvcmUgPSBTZWNLZXlQcm94eVN0b3JlOjpjcmVhdGUoKTsK
ICAgICAgICAgICAgIHNlY0tleVByb3h5U3RvcmUgPSBuZXdTZWNLZXlQcm94eVN0b3JlOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVM
b2FkZXJDbGllbnQubW0gYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJDb3JlU3VwcG9ydC9X
ZWJGcmFtZUxvYWRlckNsaWVudC5tbQppbmRleCBhYTJjYzk4MTQ3NGExM2NlNTA4NDc5ODk0MjM2
ODQ0OTFjODhmNmUyLi40M2U2M2Y0NTYzNDVlY2YxYzkyNGU1Yjc3MmE2ZjU0MTczYTkxNDJiIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFt
ZUxvYWRlckNsaWVudC5tbQorKysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJDb3JlU3Vw
cG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5tbQpAQCAtNDI5LDcgKzQyOSw3IEBAIGJvb2wgV2Vi
RnJhbWVMb2FkZXJDbGllbnQ6OmNhbkF1dGhlbnRpY2F0ZUFnYWluc3RQcm90ZWN0aW9uU3BhY2Uo
V2ViQ29yZTo6RG9jdW1lCiAgICAgLy8gSWYgb3VyIHJlc291cmNlIGxvYWQgZGVsZWdhdGUgZG9l
c24ndCBoYW5kbGUgdGhlIHF1ZXN0aW9uLCB0aGVuIG9ubHkgc2VuZCBhdXRoZW50aWNhdGlvbgog
ICAgIC8vIGNoYWxsZW5nZXMgZm9yIHByZS1pT1MtMy4wLCBwcmUtMTAuNiBwcm90ZWN0aW9uIHNw
YWNlcy4gIFRoaXMgaXMgdGhlIHNhbWUgYXMgdGhlIGRlZmF1bHQgaW1wbGVtZW50YXRpb24KICAg
ICAvLyBpbiBDRk5ldHdvcmsuCi0gICAgcmV0dXJuIChwcm90ZWN0aW9uU3BhY2UuYXV0aGVudGlj
YXRpb25TY2hlbWUoKSA8IFdlYkNvcmU6OlByb3RlY3Rpb25TcGFjZUF1dGhlbnRpY2F0aW9uU2No
ZW1lQ2xpZW50Q2VydGlmaWNhdGVSZXF1ZXN0ZWQpOworICAgIHJldHVybiAocHJvdGVjdGlvblNw
YWNlLmF1dGhlbnRpY2F0aW9uU2NoZW1lKCkgPCBXZWJDb3JlOjpQcm90ZWN0aW9uU3BhY2U6OkF1
dGhlbnRpY2F0aW9uU2NoZW1lOjpDbGllbnRDZXJ0aWZpY2F0ZVJlcXVlc3RlZCk7CiB9CiAjZW5k
aWYKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdExlZ2FjeS93aW4vV2ViVVJMUHJvdGVjdGlv
blNwYWNlLmNwcCBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvd2luL1dlYlVSTFByb3RlY3Rpb25TcGFj
ZS5jcHAKaW5kZXggZDcyMThjOTQyNzA4MDNmNmRjMjRkMTE5MDcwNzg1MjcxNTQ3NjdiZi4uZmMy
YmIwZDc3NmI4Njc4NzJjYmYzNzI5Y2E1NGE0MDYzYTQzMTcwMyAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdExlZ2FjeS93aW4vV2ViVVJMUHJvdGVjdGlvblNwYWNlLmNwcAorKysgYi9Tb3VyY2Uv
V2ViS2l0TGVnYWN5L3dpbi9XZWJVUkxQcm90ZWN0aW9uU3BhY2UuY3BwCkBAIC0xMDIsMTYgKzEw
MiwxNiBAQCBIUkVTVUxUIFdlYlVSTFByb3RlY3Rpb25TcGFjZTo6YXV0aGVudGljYXRpb25NZXRo
b2QoX19kZXJlZl9vcHRfb3V0IEJTVFIqIHJlc3VsdAogICAgICAgICByZXR1cm4gRV9QT0lOVEVS
OwogCiAgICAgc3dpdGNoIChtX3Byb3RlY3Rpb25TcGFjZS5hdXRoZW50aWNhdGlvblNjaGVtZSgp
KSB7Ci0gICAgY2FzZSBQcm90ZWN0aW9uU3BhY2VBdXRoZW50aWNhdGlvblNjaGVtZURlZmF1bHQ6
CisgICAgY2FzZSBQcm90ZWN0aW9uU3BhY2U6OkF1dGhlbnRpY2F0aW9uU2NoZW1lOjpEZWZhdWx0
OgogICAgICAgICAqcmVzdWx0ID0gU3lzQWxsb2NTdHJpbmcoV2ViVVJMQXV0aGVudGljYXRpb25N
ZXRob2REZWZhdWx0KTsKICAgICAgICAgYnJlYWs7Ci0gICAgY2FzZSBQcm90ZWN0aW9uU3BhY2VB
dXRoZW50aWNhdGlvblNjaGVtZUhUVFBCYXNpYzoKKyAgICBjYXNlIFByb3RlY3Rpb25TcGFjZTo6
QXV0aGVudGljYXRpb25TY2hlbWU6OkhUVFBCYXNpYzoKICAgICAgICAgKnJlc3VsdCA9IFN5c0Fs
bG9jU3RyaW5nKFdlYlVSTEF1dGhlbnRpY2F0aW9uTWV0aG9kSFRUUEJhc2ljKTsKICAgICAgICAg
YnJlYWs7Ci0gICAgY2FzZSBQcm90ZWN0aW9uU3BhY2VBdXRoZW50aWNhdGlvblNjaGVtZUhUVFBE
aWdlc3Q6CisgICAgY2FzZSBQcm90ZWN0aW9uU3BhY2U6OkF1dGhlbnRpY2F0aW9uU2NoZW1lOjpI
VFRQRGlnZXN0OgogICAgICAgICAqcmVzdWx0ID0gU3lzQWxsb2NTdHJpbmcoV2ViVVJMQXV0aGVu
dGljYXRpb25NZXRob2RIVFRQRGlnZXN0KTsKICAgICAgICAgYnJlYWs7Ci0gICAgY2FzZSBQcm90
ZWN0aW9uU3BhY2VBdXRoZW50aWNhdGlvblNjaGVtZUhUTUxGb3JtOgorICAgIGNhc2UgUHJvdGVj
dGlvblNwYWNlOjpBdXRoZW50aWNhdGlvblNjaGVtZTo6SFRNTEZvcm06CiAgICAgICAgICpyZXN1
bHQgPSBTeXNBbGxvY1N0cmluZyhXZWJVUkxBdXRoZW50aWNhdGlvbk1ldGhvZEhUTUxGb3JtKTsK
ICAgICAgICAgYnJlYWs7CiAgICAgZGVmYXVsdDoKQEAgLTEzMSwxNyArMTMxLDE3IEBAIEhSRVNV
TFQgV2ViVVJMUHJvdGVjdGlvblNwYWNlOjpob3N0KF9fZGVyZWZfb3B0X291dCBCU1RSKiByZXN1
bHQpCiAgICAgcmV0dXJuIFNfT0s7CiB9CiAKLXN0YXRpYyBQcm90ZWN0aW9uU3BhY2VBdXRoZW50
aWNhdGlvblNjaGVtZSBjb3JlU2NoZW1lKEJTVFIgYXV0aGVudGljYXRpb25NZXRob2QpCitzdGF0
aWMgUHJvdGVjdGlvblNwYWNlOjpBdXRoZW50aWNhdGlvblNjaGVtZSBjb3JlU2NoZW1lKEJTVFIg
YXV0aGVudGljYXRpb25NZXRob2QpCiB7Ci0gICAgUHJvdGVjdGlvblNwYWNlQXV0aGVudGljYXRp
b25TY2hlbWUgc2NoZW1lID0gUHJvdGVjdGlvblNwYWNlQXV0aGVudGljYXRpb25TY2hlbWVEZWZh
dWx0OworICAgIGF1dG8gc2NoZW1lID0gUHJvdGVjdGlvblNwYWNlOjpBdXRoZW50aWNhdGlvblNj
aGVtZTo6RGVmYXVsdDsKICAgICBpZiAoQlN0cmluZyhhdXRoZW50aWNhdGlvbk1ldGhvZCkgPT0g
QlN0cmluZyhXZWJVUkxBdXRoZW50aWNhdGlvbk1ldGhvZERlZmF1bHQpKQotICAgICAgICBzY2hl
bWUgPSBQcm90ZWN0aW9uU3BhY2VBdXRoZW50aWNhdGlvblNjaGVtZURlZmF1bHQ7CisgICAgICAg
IHNjaGVtZSA9IFByb3RlY3Rpb25TcGFjZTo6QXV0aGVudGljYXRpb25TY2hlbWU6OkRlZmF1bHQ7
CiAgICAgZWxzZSBpZiAoQlN0cmluZyhhdXRoZW50aWNhdGlvbk1ldGhvZCkgPT0gQlN0cmluZyhX
ZWJVUkxBdXRoZW50aWNhdGlvbk1ldGhvZEhUVFBCYXNpYykpCi0gICAgICAgIHNjaGVtZSA9IFBy
b3RlY3Rpb25TcGFjZUF1dGhlbnRpY2F0aW9uU2NoZW1lSFRUUEJhc2ljOworICAgICAgICBzY2hl
bWUgPSBQcm90ZWN0aW9uU3BhY2U6OkF1dGhlbnRpY2F0aW9uU2NoZW1lOjpIVFRQQmFzaWM7CiAg
ICAgZWxzZSBpZiAoQlN0cmluZyhhdXRoZW50aWNhdGlvbk1ldGhvZCkgPT0gQlN0cmluZyhXZWJV
UkxBdXRoZW50aWNhdGlvbk1ldGhvZEhUVFBEaWdlc3QpKQotICAgICAgICBzY2hlbWUgPSBQcm90
ZWN0aW9uU3BhY2VBdXRoZW50aWNhdGlvblNjaGVtZUhUVFBEaWdlc3Q7CisgICAgICAgIHNjaGVt
ZSA9IFByb3RlY3Rpb246OlNwYWNlQXV0aGVudGljYXRpb25TY2hlbWU6OkhUVFBEaWdlc3Q7CiAg
ICAgZWxzZSBpZiAoQlN0cmluZyhhdXRoZW50aWNhdGlvbk1ldGhvZCkgPT0gQlN0cmluZyhXZWJV
UkxBdXRoZW50aWNhdGlvbk1ldGhvZEhUTUxGb3JtKSkKLSAgICAgICAgc2NoZW1lID0gUHJvdGVj
dGlvblNwYWNlQXV0aGVudGljYXRpb25TY2hlbWVIVE1MRm9ybTsKKyAgICAgICAgc2NoZW1lID0g
UHJvdGVjdGlvblNwYWNlOjpBdXRoZW50aWNhdGlvblNjaGVtZTo6SFRNTEZvcm07CiAgICAgZWxz
ZQogICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKICAgICByZXR1cm4gc2NoZW1lOwpAQCAt
MTU0LDE1ICsxNTQsMTUgQEAgSFJFU1VMVCBXZWJVUkxQcm90ZWN0aW9uU3BhY2U6OmluaXRXaXRo
SG9zdChfSW5fIEJTVFIgaG9zdCwgaW50IHBvcnQsIF9Jbl8gQlNUUgogICAgIHN0YXRpYyBCU3Ry
aW5nJiB3ZWJVUkxQcm90ZWN0aW9uU3BhY2VGVFBCU3RyaW5nID0gKm5ldyBCU3RyaW5nKFdlYlVS
TFByb3RlY3Rpb25TcGFjZUZUUCk7CiAgICAgc3RhdGljIEJTdHJpbmcmIHdlYlVSTFByb3RlY3Rp
b25TcGFjZUZUUFNCU3RyaW5nID0gKm5ldyBCU3RyaW5nKFdlYlVSTFByb3RlY3Rpb25TcGFjZUZU
UFMpOwogCi0gICAgUHJvdGVjdGlvblNwYWNlU2VydmVyVHlwZSBzZXJ2ZXJUeXBlID0gUHJvdGVj
dGlvblNwYWNlU2VydmVySFRUUDsKKyAgICBhdXRvIHNlcnZlclR5cGUgPSBQcm90ZWN0aW9uU3Bh
Y2U6OlNlcnZlclR5cGU6OkhUVFA7CiAgICAgaWYgKEJTdHJpbmcocHJvdG9jb2wpID09IHdlYlVS
TFByb3RlY3Rpb25TcGFjZUhUVFBCU3RyaW5nKQotICAgICAgICBzZXJ2ZXJUeXBlID0gUHJvdGVj
dGlvblNwYWNlU2VydmVySFRUUDsKKyAgICAgICAgc2VydmVyVHlwZSA9IFByb3RlY3Rpb25TcGFj
ZTo6U2VydmVyVHlwZTo6SFRUUDsKICAgICBlbHNlIGlmIChCU3RyaW5nKHByb3RvY29sKSA9PSB3
ZWJVUkxQcm90ZWN0aW9uU3BhY2VIVFRQU0JTdHJpbmcpCi0gICAgICAgIHNlcnZlclR5cGUgPSBQ
cm90ZWN0aW9uU3BhY2VTZXJ2ZXJIVFRQUzsKKyAgICAgICAgc2VydmVyVHlwZSA9IFByb3RlY3Rp
b25TcGFjZTo6U2VydmVyVHlwZTo6SFRUUFM7CiAgICAgZWxzZSBpZiAoQlN0cmluZyhwcm90b2Nv
bCkgPT0gd2ViVVJMUHJvdGVjdGlvblNwYWNlRlRQQlN0cmluZykKLSAgICAgICAgc2VydmVyVHlw
ZSA9IFByb3RlY3Rpb25TcGFjZVNlcnZlckZUUDsKKyAgICAgICAgc2VydmVyVHlwZSA9IFByb3Rl
Y3Rpb25TcGFjZTo6U2VydmVyVHlwZTo6RlRQOwogICAgIGVsc2UgaWYgKEJTdHJpbmcocHJvdG9j
b2wpID09IHdlYlVSTFByb3RlY3Rpb25TcGFjZUZUUFNCU3RyaW5nKQotICAgICAgICBzZXJ2ZXJU
eXBlID0gUHJvdGVjdGlvblNwYWNlU2VydmVyRlRQUzsKKyAgICAgICAgc2VydmVyVHlwZSA9IFBy
b3RlY3Rpb25TcGFjZTo6U2VydmVyVHlwZTo6RlRQUzsKIAogICAgIG1fcHJvdGVjdGlvblNwYWNl
ID0gUHJvdGVjdGlvblNwYWNlKFN0cmluZyhob3N0LCBTeXNTdHJpbmdMZW4oaG9zdCkpLCBwb3J0
LCBzZXJ2ZXJUeXBlLCAKICAgICAgICAgU3RyaW5nKHJlYWxtLCBTeXNTdHJpbmdMZW4ocmVhbG0p
KSwgY29yZVNjaGVtZShhdXRoZW50aWNhdGlvbk1ldGhvZCkpOwpAQCAtMTc3LDE1ICsxNzcsMTUg
QEAgSFJFU1VMVCBXZWJVUkxQcm90ZWN0aW9uU3BhY2U6OmluaXRXaXRoUHJveHlIb3N0KF9Jbl8g
QlNUUiBob3N0LCBpbnQgcG9ydCwgX0luXwogICAgIHN0YXRpYyBCU3RyaW5nJiB3ZWJVUkxQcm90
ZWN0aW9uU3BhY2VGVFBQcm94eUJTdHJpbmcgPSAqbmV3IEJTdHJpbmcoV2ViVVJMUHJvdGVjdGlv
blNwYWNlRlRQUHJveHkpOwogICAgIHN0YXRpYyBCU3RyaW5nJiB3ZWJVUkxQcm90ZWN0aW9uU3Bh
Y2VTT0NLU1Byb3h5QlN0cmluZyA9ICpuZXcgQlN0cmluZyhXZWJVUkxQcm90ZWN0aW9uU3BhY2VT
T0NLU1Byb3h5KTsKIAotICAgIFByb3RlY3Rpb25TcGFjZVNlcnZlclR5cGUgc2VydmVyVHlwZSA9
IFByb3RlY3Rpb25TcGFjZVByb3h5SFRUUDsKKyAgICBhdXRvIHNlcnZlclR5cGUgPSBQcm90ZWN0
aW9uU3BhY2U6OlNlcnZlclR5cGU6OlByb3h5SFRUUDsKICAgICBpZiAoQlN0cmluZyhwcm94eVR5
cGUpID09IHdlYlVSTFByb3RlY3Rpb25TcGFjZUhUVFBQcm94eUJTdHJpbmcpCi0gICAgICAgIHNl
cnZlclR5cGUgPSBQcm90ZWN0aW9uU3BhY2VQcm94eUhUVFA7CisgICAgICAgIHNlcnZlclR5cGUg
PSBQcm90ZWN0aW9uU3BhY2U6OlNlcnZlclR5cGU6OlByb3h5SFRUUDsKICAgICBlbHNlIGlmIChC
U3RyaW5nKHByb3h5VHlwZSkgPT0gd2ViVVJMUHJvdGVjdGlvblNwYWNlSFRUUFNQcm94eUJTdHJp
bmcpCi0gICAgICAgIHNlcnZlclR5cGUgPSBQcm90ZWN0aW9uU3BhY2VQcm94eUhUVFBTOworICAg
ICAgICBzZXJ2ZXJUeXBlID0gUHJvdGVjdGlvblNwYWNlOjpTZXJ2ZXJUeXBlOjpQcm94eUhUVFBT
OwogICAgIGVsc2UgaWYgKEJTdHJpbmcocHJveHlUeXBlKSA9PSB3ZWJVUkxQcm90ZWN0aW9uU3Bh
Y2VGVFBQcm94eUJTdHJpbmcpCi0gICAgICAgIHNlcnZlclR5cGUgPSBQcm90ZWN0aW9uU3BhY2VQ
cm94eUZUUDsKKyAgICAgICAgc2VydmVyVHlwZSA9IFByb3RlY3Rpb25TcGFjZTo6U2VydmVyVHlw
ZTo6UHJveHlGVFA7CiAgICAgZWxzZSBpZiAoQlN0cmluZyhwcm94eVR5cGUpID09IHdlYlVSTFBy
b3RlY3Rpb25TcGFjZVNPQ0tTUHJveHlCU3RyaW5nKQotICAgICAgICBzZXJ2ZXJUeXBlID0gUHJv
dGVjdGlvblNwYWNlUHJveHlTT0NLUzsKKyAgICAgICAgc2VydmVyVHlwZSA9IFByb3RlY3Rpb25T
cGFjZTo6U2VydmVyVHlwZTo6UHJveHlTT0NLUzsKICAgICBlbHNlCiAgICAgICAgIEFTU0VSVF9O
T1RfUkVBQ0hFRCgpOwogCg==
</data>
<flag name="commit-queue"
          id="473129"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>447495</attachid>
            <date>2021-12-17 16:52:15 -0800</date>
            <delta_ts>2021-12-17 18:48:50 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-234455-20211217165214.patch</filename>
            <type>text/plain</type>
            <size>94875</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg3MjAzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZTQwNDdjOTk5N2FhMWUy
OTY2MTIzNmY4Yjc2OGI0ZWU1MWNiNTIzZi4uMDEyYzFlMWM1YmM1OTQ3Njk4ZGZhNjQ3OTI5OTk0
YTA4ODM5MWQyYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDYzIEBACisyMDIxLTEyLTE3ICBDaHJp
cyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgQ29udmVydCBQcm90ZWN0aW9u
U3BhY2UgZW51bXMgaW50byBlbnVtIGNsYXNzZXMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTIzNDQ1NQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgICogcGxhdGZvcm0vbmV0d29yay9DcmVkZW50aWFsU3RvcmFn
ZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDcmVkZW50aWFsU3RvcmFnZTo6c2V0KToKKyAgICAg
ICAgKFdlYkNvcmU6OkNyZWRlbnRpYWxTdG9yYWdlOjpyZW1vdmVDcmVkZW50aWFsc1dpdGhPcmln
aW4pOgorICAgICAgICAoV2ViQ29yZTo6Q3JlZGVudGlhbFN0b3JhZ2U6Om9yaWdpbnNXaXRoQ3Jl
ZGVudGlhbHMgY29uc3QpOgorICAgICAgICAqIHBsYXRmb3JtL25ldHdvcmsvUHJvdGVjdGlvblNw
YWNlLmg6CisgICAgICAgIChXZWJDb3JlOjpQcm90ZWN0aW9uU3BhY2U6OlByb3RlY3Rpb25TcGFj
ZSk6CisgICAgICAgICogcGxhdGZvcm0vbmV0d29yay9Qcm90ZWN0aW9uU3BhY2VCYXNlLmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OlByb3RlY3Rpb25TcGFjZUJhc2U6OlByb3RlY3Rpb25TcGFjZUJh
c2UpOgorICAgICAgICAoV2ViQ29yZTo6UHJvdGVjdGlvblNwYWNlQmFzZTo6aXNQcm94eSBjb25z
dCk6CisgICAgICAgIChXZWJDb3JlOjpQcm90ZWN0aW9uU3BhY2VCYXNlOjpyZWNlaXZlc0NyZWRl
bnRpYWxTZWN1cmVseSBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpQcm90ZWN0aW9uU3BhY2VC
YXNlOjppc1Bhc3N3b3JkQmFzZWQgY29uc3QpOgorICAgICAgICAqIHBsYXRmb3JtL25ldHdvcmsv
UHJvdGVjdGlvblNwYWNlQmFzZS5oOgorICAgICAgICAoV2ViQ29yZTo6UHJvdGVjdGlvblNwYWNl
QmFzZTo6c2VydmVyVHlwZSBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpQcm90ZWN0aW9uU3Bh
Y2VCYXNlOjphdXRoZW50aWNhdGlvblNjaGVtZSBjb25zdCk6CisgICAgICAgICogcGxhdGZvcm0v
bmV0d29yay9jZi9BdXRoZW50aWNhdGlvbkNGLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmNyZWF0
ZUNGKToKKyAgICAgICAgKFdlYkNvcmU6OmNvcmUpOgorICAgICAgICAqIHBsYXRmb3JtL25ldHdv
cmsvY2YvUHJvdGVjdGlvblNwYWNlQ0ZOZXQuaDoKKyAgICAgICAgKFdlYkNvcmU6OlByb3RlY3Rp
b25TcGFjZTo6UHJvdGVjdGlvblNwYWNlKToKKyAgICAgICAgKiBwbGF0Zm9ybS9uZXR3b3JrL2Nm
L1Jlc291cmNlSGFuZGxlQ0ZOZXQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVzb3VyY2VIYW5k
bGU6OnJlY2VpdmVkQ3JlZGVudGlhbCk6CisgICAgICAgICogcGxhdGZvcm0vbmV0d29yay9jZi9T
b2NrZXRTdHJlYW1IYW5kbGVJbXBsQ0ZOZXQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6YXV0aGVu
dGljYXRpb25TY2hlbWVGcm9tQXV0aGVudGljYXRpb25NZXRob2QpOgorICAgICAgICAqIHBsYXRm
b3JtL25ldHdvcmsvY29jb2EvUHJvdGVjdGlvblNwYWNlQ29jb2EuaDoKKyAgICAgICAgKFdlYkNv
cmU6OlByb3RlY3Rpb25TcGFjZTo6UHJvdGVjdGlvblNwYWNlKToKKyAgICAgICAgKiBwbGF0Zm9y
bS9uZXR3b3JrL2NvY29hL1Byb3RlY3Rpb25TcGFjZUNvY29hLm1tOgorICAgICAgICAoV2ViQ29y
ZTo6dHlwZSk6CisgICAgICAgIChXZWJDb3JlOjpzY2hlbWUpOgorICAgICAgICAoV2ViQ29yZTo6
UHJvdGVjdGlvblNwYWNlOjpuc1NwYWNlIGNvbnN0KToKKyAgICAgICAgKiBwbGF0Zm9ybS9uZXR3
b3JrL2N1cmwvQXV0aGVudGljYXRpb25DaGFsbGVuZ2UuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9u
ZXR3b3JrL2N1cmwvQXV0aGVudGljYXRpb25DaGFsbGVuZ2VDdXJsLmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OkF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlOjpwcm90ZWN0aW9uU3BhY2VTZXJ2ZXJUeXBl
RnJvbVVSSSk6CisgICAgICAgIChXZWJDb3JlOjpBdXRoZW50aWNhdGlvbkNoYWxsZW5nZTo6cHJv
dGVjdGlvblNwYWNlRm9yU2VydmVyVHJ1c3QpOgorICAgICAgICAoV2ViQ29yZTo6QXV0aGVudGlj
YXRpb25DaGFsbGVuZ2U6OmF1dGhlbnRpY2F0aW9uU2NoZW1lRnJvbUN1cmxBdXRoKToKKyAgICAg
ICAgKiBwbGF0Zm9ybS9uZXR3b3JrL2N1cmwvQ3VybFJlcXVlc3QuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6Q3VybFJlcXVlc3Q6OnNldEF1dGhlbnRpY2F0aW9uU2NoZW1lKToKKyAgICAgICAgKiBw
bGF0Zm9ybS9uZXR3b3JrL2N1cmwvQ3VybFJlcXVlc3QuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9u
ZXR3b3JrL2N1cmwvUHJvdGVjdGlvblNwYWNlQ3VybC5oOgorICAgICAgICAoV2ViQ29yZTo6UHJv
dGVjdGlvblNwYWNlOjpQcm90ZWN0aW9uU3BhY2UpOgorICAgICAgICAqIHBsYXRmb3JtL25ldHdv
cmsvY3VybC9SZXNvdXJjZUhhbmRsZUN1cmwuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVzb3Vy
Y2VIYW5kbGU6OnN0YXJ0KToKKyAgICAgICAgKFdlYkNvcmU6OlJlc291cmNlSGFuZGxlOjpwbGF0
Zm9ybUxvYWRSZXNvdXJjZVN5bmNocm9ub3VzbHkpOgorICAgICAgICAqIHBsYXRmb3JtL25ldHdv
cmsvbWFjL1Jlc291cmNlSGFuZGxlTWFjLm1tOgorICAgICAgICAoV2ViQ29yZTo6UmVzb3VyY2VI
YW5kbGU6OnJlY2VpdmVkQ3JlZGVudGlhbCk6CisgICAgICAgICogcGxhdGZvcm0vbmV0d29yay9z
b3VwL0F1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlU291cC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpw
cm90ZWN0aW9uU3BhY2VTZXJ2ZXJUeXBlRnJvbVVSTCk6CisgICAgICAgIChXZWJDb3JlOjpwcm90
ZWN0aW9uU3BhY2VGcm9tU291cEF1dGhBbmRVUkwpOgorICAgICAgICAoV2ViQ29yZTo6cHJvdGVj
dGlvblNwYWNlRm9yQ2xpZW50Q2VydGlmaWNhdGUpOgorICAgICAgICAoV2ViQ29yZTo6cHJvdGVj
dGlvblNwYWNlRm9yQ2xpZW50Q2VydGlmaWNhdGVQYXNzd29yZCk6CisgICAgICAgICogcGxhdGZv
cm0vbmV0d29yay9zb3VwL05ldHdvcmtTdG9yYWdlU2Vzc2lvblNvdXAuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6c2NoZW1lRnJvbVByb3RlY3Rpb25TcGFjZVNlcnZlclR5cGUpOgorICAgICAgICAo
V2ViQ29yZTo6YXV0aFR5cGVGcm9tUHJvdGVjdGlvblNwYWNlQXV0aGVudGljYXRpb25TY2hlbWUp
OgorCiAyMDIxLTEyLTE3ICBBbGFuIEJ1anRhcyAgPHphbGFuQGFwcGxlLmNvbT4KIAogICAgICAg
ICBbTEZDXVtJRkNdIEFkanVzdCB0aGUgYm94IGdlb21ldHJ5IGZvciBhdG9taWMvZ2VuZXJpYyBp
bmxpbmUgbGV2ZWwgYm94ZXMgaW4gYmlkaSBjb250ZW50CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDNkMWQ1ZDNlNDM5
YmRjNTBmZTg2NTI3YzYzOWE1NzQ3ZmNjNTQyYmQuLjY3YTMxYzU3NWIxMzllZGQ1OGQzNzIwYWY4
OTM5MDc5ZWMzNjhjYzYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBi
L1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNDMgQEAKKzIwMjEtMTItMTcgIENo
cmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KKworICAgICAgICBDb252ZXJ0IFByb3RlY3Rp
b25TcGFjZSBlbnVtcyBpbnRvIGVudW0gY2xhc3NlcworICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjM0NDU1CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9OZXR3b3JrQ09SU1ByZWZs
aWdodENoZWNrZXIuY3BwOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrQ09SU1ByZWZsaWdodENo
ZWNrZXI6OmRpZFJlY2VpdmVDaGFsbGVuZ2UpOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL05l
dHdvcmtMb2FkLmNwcDoKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya0xvYWQ6OmRpZFJlY2VpdmVD
aGFsbGVuZ2UpOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL1BpbmdMb2FkLmNwcDoKKyAgICAg
ICAgKFdlYktpdDo6UGluZ0xvYWQ6OmRpZFJlY2VpdmVDaGFsbGVuZ2UpOgorICAgICAgICAqIE5l
dHdvcmtQcm9jZXNzL2NvY29hL05ldHdvcmtTZXNzaW9uQ29jb2EubW06CisgICAgICAgIChXZWJL
aXQ6Ok5ldHdvcmtTZXNzaW9uQ29jb2E6OmFsbG93c1NwZWNpZmljSFRUUFNDZXJ0aWZpY2F0ZUZv
ckhvc3QpOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL2N1cmwvTmV0d29ya0RhdGFUYXNrQ3Vy
bC5jcHA6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtEYXRhVGFza0N1cmw6Ok5ldHdvcmtEYXRh
VGFza0N1cmwpOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrRGF0YVRhc2tDdXJsOjp3aWxsUGVy
Zm9ybUhUVFBSZWRpcmVjdGlvbik6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtEYXRhVGFza0N1
cmw6OnJlc3RhcnRXaXRoQ3JlZGVudGlhbCk6CisgICAgICAgICogTmV0d29ya1Byb2Nlc3Mvc291
cC9OZXR3b3JrRGF0YVRhc2tTb3VwLmNwcDoKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya0RhdGFU
YXNrU291cDo6Y29tcGxldGVBdXRoZW50aWNhdGlvbik6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdv
cmtEYXRhVGFza1NvdXA6OmNhbmNlbEF1dGhlbnRpY2F0aW9uKToKKyAgICAgICAgKiBTaGFyZWQv
QXV0aGVudGljYXRpb24vQXV0aGVudGljYXRpb25NYW5hZ2VyLmNwcDoKKyAgICAgICAgKFdlYktp
dDo6Y2FuQ29hbGVzY2VDaGFsbGVuZ2UpOgorICAgICAgICAqIFNoYXJlZC9XZWJDb3JlQXJndW1l
bnRDb2RlcnMuY3BwOgorICAgICAgICAoSVBDOjpBcmd1bWVudENvZGVyPFByb3RlY3Rpb25TcGFj
ZT46OmRlY29kZSk6CisgICAgICAgICogU2hhcmVkL2N1cmwvV2ViQ29yZUFyZ3VtZW50Q29kZXJz
Q3VybC5jcHA6CisgICAgICAgIChJUEM6OkFyZ3VtZW50Q29kZXI8UHJvdGVjdGlvblNwYWNlPjo6
ZGVjb2RlUGxhdGZvcm1EYXRhKToKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0MvV0tBUElDYXN0
Lmg6CisgICAgICAgIChXZWJLaXQ6OnRvQVBJKToKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL2ds
aWIvV2ViS2l0QXV0aGVudGljYXRpb25SZXF1ZXN0LmNwcDoKKyAgICAgICAgKHdlYmtpdF9hdXRo
ZW50aWNhdGlvbl9yZXF1ZXN0X2dldF9zZWN1cml0eV9vcmlnaW4pOgorICAgICAgICAqIFVJUHJv
Y2Vzcy9BdXRoZW50aWNhdGlvbi9XZWJQcm90ZWN0aW9uU3BhY2UuY3BwOgorICAgICAgICAoV2Vi
S2l0OjpXZWJQcm90ZWN0aW9uU3BhY2U6OnNlcnZlclR5cGUgY29uc3QpOgorICAgICAgICAoV2Vi
S2l0OjpXZWJQcm90ZWN0aW9uU3BhY2U6OmF1dGhlbnRpY2F0aW9uU2NoZW1lIGNvbnN0KToKKyAg
ICAgICAgKiBVSVByb2Nlc3MvQXV0aGVudGljYXRpb24vV2ViUHJvdGVjdGlvblNwYWNlLmg6Cisg
ICAgICAgICogVUlQcm9jZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nlc3NQcm94eS5jcHA6CisgICAg
ICAgIChXZWJLaXQ6Ok5ldHdvcmtQcm9jZXNzUHJveHk6OnByb2Nlc3NBdXRoZW50aWNhdGlvbkNo
YWxsZW5nZSk6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtQcm9jZXNzUHJveHk6OmRpZFJlY2Vp
dmVBdXRoZW50aWNhdGlvbkNoYWxsZW5nZSk6CisKIDIwMjEtMTItMTcgIENocmlzIER1bWV6ICA8
Y2R1bWV6QGFwcGxlLmNvbT4KIAogICAgICAgICBNb3ZlIENhY2hlU3RvcmFnZSBlbmdpbmVzIGZy
b20gTmV0d29ya1Byb2Nlc3MgdG8gTmV0d29ya1Nlc3Npb24KZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXRMZWdhY3kvbWFjL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL0NoYW5n
ZUxvZwppbmRleCBhOTBlNzE3Y2E0ZWZkY2M4ZWFmM2JjY2QwYzE2MzdjZTlhYmMwNzY4Li42NTI2
ODQ4Njk5NmJkNjYwZmRhYjYzOGY4NDI4NzJiZmIwYjNkMDI3IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0TGVnYWN5L21hYy9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMv
Q2hhbmdlTG9nCkBAIC0xLDMgKzEsMTMgQEAKKzIwMjEtMTItMTcgIENocmlzIER1bWV6ICA8Y2R1
bWV6QGFwcGxlLmNvbT4KKworICAgICAgICBDb252ZXJ0IFByb3RlY3Rpb25TcGFjZSBlbnVtcyBp
bnRvIGVudW0gY2xhc3NlcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9MjM0NDU1CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisK
KyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5tbToKKyAgICAg
ICAgKFdlYkZyYW1lTG9hZGVyQ2xpZW50OjpjYW5BdXRoZW50aWNhdGVBZ2FpbnN0UHJvdGVjdGlv
blNwYWNlKToKKwogMjAyMS0xMi0xNiAgQWxleCBDaHJpc3RlbnNlbiAgPGFjaHJpc3RlbnNlbkB3
ZWJraXQub3JnPgogCiAgICAgICAgIEZpeCBpT1MgZGVidWcgYnVpbGQKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXRMZWdhY3kvd2luL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvd2lu
L0NoYW5nZUxvZwppbmRleCBjNDI3ZjM4MTE3MjllMmU3MDI2NWM4OTMxMTcwYjcyNjVkOTllNTQx
Li5hMTQ0ODIyOGNiZTEzY2EyZmMwM2RhYjE3ODMzOTIxOTkxNzc4OGM4IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdExlZ2Fj
eS93aW4vQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTYgQEAKKzIwMjEtMTItMTcgIENocmlzIER1bWV6
ICA8Y2R1bWV6QGFwcGxlLmNvbT4KKworICAgICAgICBDb252ZXJ0IFByb3RlY3Rpb25TcGFjZSBl
bnVtcyBpbnRvIGVudW0gY2xhc3NlcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9MjM0NDU1CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCisKKyAgICAgICAgKiBXZWJVUkxQcm90ZWN0aW9uU3BhY2UuY3BwOgorICAgICAgICAoV2Vi
VVJMUHJvdGVjdGlvblNwYWNlOjphdXRoZW50aWNhdGlvbk1ldGhvZCk6CisgICAgICAgIChjb3Jl
U2NoZW1lKToKKyAgICAgICAgKFdlYlVSTFByb3RlY3Rpb25TcGFjZTo6aW5pdFdpdGhIb3N0KToK
KyAgICAgICAgKFdlYlVSTFByb3RlY3Rpb25TcGFjZTo6aW5pdFdpdGhQcm94eUhvc3QpOgorCiAy
MDIxLTEyLTE0ICBKZWFuLVl2ZXMgQXZlbmFyZCAgPGp5YUBhcHBsZS5jb20+CiAKICAgICAgICAg
UmVuYW1lIFNoYXJlZEJ1ZmZlciBjbGFzc2VzLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vbmV0d29yay9DcmVkZW50aWFsU3RvcmFnZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9uZXR3b3JrL0NyZWRlbnRpYWxTdG9yYWdlLmNwcAppbmRleCAyNmEzYjllNjkzYTIx
ZmU4ODg1MTQzODdiYzFlMGQwMTIzZWI4YzViLi40ZWU3YmQxMGZjYzJjZDAzOTU3NTliMzZlMDQ1
NjZmMDJhYjFhNGM3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3Jr
L0NyZWRlbnRpYWxTdG9yYWdlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3
b3JrL0NyZWRlbnRpYWxTdG9yYWdlLmNwcApAQCAtNjAsMTYgKzYwLDE2IEBAIHN0YXRpYyBTdHJp
bmcgcHJvdGVjdGlvblNwYWNlTWFwS2V5RnJvbVVSTChjb25zdCBVUkwmIHVybCkKIAogdm9pZCBD
cmVkZW50aWFsU3RvcmFnZTo6c2V0KGNvbnN0IFN0cmluZyYgcGFydGl0aW9uTmFtZSwgY29uc3Qg
Q3JlZGVudGlhbCYgY3JlZGVudGlhbCwgY29uc3QgUHJvdGVjdGlvblNwYWNlJiBwcm90ZWN0aW9u
U3BhY2UsIGNvbnN0IFVSTCYgdXJsKQogewotICAgIEFTU0VSVChwcm90ZWN0aW9uU3BhY2UuaXNQ
cm94eSgpIHx8IHByb3RlY3Rpb25TcGFjZS5hdXRoZW50aWNhdGlvblNjaGVtZSgpID09IFByb3Rl
Y3Rpb25TcGFjZUF1dGhlbnRpY2F0aW9uU2NoZW1lQ2xpZW50Q2VydGlmaWNhdGVSZXF1ZXN0ZWQg
fHwgdXJsLnByb3RvY29sSXNJbkhUVFBGYW1pbHkoKSk7Ci0gICAgQVNTRVJUKHByb3RlY3Rpb25T
cGFjZS5pc1Byb3h5KCkgfHwgcHJvdGVjdGlvblNwYWNlLmF1dGhlbnRpY2F0aW9uU2NoZW1lKCkg
PT0gUHJvdGVjdGlvblNwYWNlQXV0aGVudGljYXRpb25TY2hlbWVDbGllbnRDZXJ0aWZpY2F0ZVJl
cXVlc3RlZCB8fCB1cmwuaXNWYWxpZCgpKTsKKyAgICBBU1NFUlQocHJvdGVjdGlvblNwYWNlLmlz
UHJveHkoKSB8fCBwcm90ZWN0aW9uU3BhY2UuYXV0aGVudGljYXRpb25TY2hlbWUoKSA9PSBQcm90
ZWN0aW9uU3BhY2U6OkF1dGhlbnRpY2F0aW9uU2NoZW1lOjpDbGllbnRDZXJ0aWZpY2F0ZVJlcXVl
c3RlZCB8fCB1cmwucHJvdG9jb2xJc0luSFRUUEZhbWlseSgpKTsKKyAgICBBU1NFUlQocHJvdGVj
dGlvblNwYWNlLmlzUHJveHkoKSB8fCBwcm90ZWN0aW9uU3BhY2UuYXV0aGVudGljYXRpb25TY2hl
bWUoKSA9PSBQcm90ZWN0aW9uU3BhY2U6OkF1dGhlbnRpY2F0aW9uU2NoZW1lOjpDbGllbnRDZXJ0
aWZpY2F0ZVJlcXVlc3RlZCB8fCB1cmwuaXNWYWxpZCgpKTsKIAogICAgIG1fcHJvdGVjdGlvblNw
YWNlVG9DcmVkZW50aWFsTWFwLnNldChzdGQ6Om1ha2VfcGFpcihwYXJ0aXRpb25OYW1lLCBwcm90
ZWN0aW9uU3BhY2UpLCBjcmVkZW50aWFsKTsKIAotICAgIGlmICghcHJvdGVjdGlvblNwYWNlLmlz
UHJveHkoKSAmJiBwcm90ZWN0aW9uU3BhY2UuYXV0aGVudGljYXRpb25TY2hlbWUoKSAhPSBQcm90
ZWN0aW9uU3BhY2VBdXRoZW50aWNhdGlvblNjaGVtZUNsaWVudENlcnRpZmljYXRlUmVxdWVzdGVk
KSB7CisgICAgaWYgKCFwcm90ZWN0aW9uU3BhY2UuaXNQcm94eSgpICYmIHByb3RlY3Rpb25TcGFj
ZS5hdXRoZW50aWNhdGlvblNjaGVtZSgpICE9IFByb3RlY3Rpb25TcGFjZTo6QXV0aGVudGljYXRp
b25TY2hlbWU6OkNsaWVudENlcnRpZmljYXRlUmVxdWVzdGVkKSB7CiAgICAgICAgIG1fb3JpZ2lu
c1dpdGhDcmVkZW50aWFscy5hZGQob3JpZ2luU3RyaW5nRnJvbVVSTCh1cmwpKTsKIAotICAgICAg
ICBQcm90ZWN0aW9uU3BhY2VBdXRoZW50aWNhdGlvblNjaGVtZSBzY2hlbWUgPSBwcm90ZWN0aW9u
U3BhY2UuYXV0aGVudGljYXRpb25TY2hlbWUoKTsKLSAgICAgICAgaWYgKHNjaGVtZSA9PSBQcm90
ZWN0aW9uU3BhY2VBdXRoZW50aWNhdGlvblNjaGVtZUhUVFBCYXNpYyB8fCBzY2hlbWUgPT0gUHJv
dGVjdGlvblNwYWNlQXV0aGVudGljYXRpb25TY2hlbWVEZWZhdWx0KSB7CisgICAgICAgIGF1dG8g
c2NoZW1lID0gcHJvdGVjdGlvblNwYWNlLmF1dGhlbnRpY2F0aW9uU2NoZW1lKCk7CisgICAgICAg
IGlmIChzY2hlbWUgPT0gUHJvdGVjdGlvblNwYWNlOjpBdXRoZW50aWNhdGlvblNjaGVtZTo6SFRU
UEJhc2ljIHx8IHNjaGVtZSA9PSBQcm90ZWN0aW9uU3BhY2U6OkF1dGhlbnRpY2F0aW9uU2NoZW1l
OjpEZWZhdWx0KSB7CiAgICAgICAgICAgICAvLyBUaGUgbWFwIGNhbiBjb250YWluIGJvdGggYSBw
YXRoIGFuZCBpdHMgc3VicGF0aCAtIHdoaWxlIHJlZHVuZGFudCwgdGhpcyBtYWtlcyBsb29rdXBz
IGZhc3Rlci4KICAgICAgICAgICAgIG1fcGF0aFRvRGVmYXVsdFByb3RlY3Rpb25TcGFjZU1hcC5z
ZXQocHJvdGVjdGlvblNwYWNlTWFwS2V5RnJvbVVSTCh1cmwpLCBwcm90ZWN0aW9uU3BhY2UpOwog
ICAgICAgICB9CkBAIC05NCw4ICs5NCw4IEBAIHZvaWQgQ3JlZGVudGlhbFN0b3JhZ2U6OnJlbW92
ZUNyZWRlbnRpYWxzV2l0aE9yaWdpbihjb25zdCBTZWN1cml0eU9yaWdpbkRhdGEmIG9yCiAgICAg
ICAgIGlmIChwcm90ZWN0aW9uU3BhY2UuaG9zdCgpID09IG9yaWdpbi5ob3N0CiAgICAgICAgICAg
ICAmJiAoKG9yaWdpbi5wb3J0ICYmIHByb3RlY3Rpb25TcGFjZS5wb3J0KCkgPT0gKm9yaWdpbi5w
b3J0KQogICAgICAgICAgICAgICAgIHx8ICghb3JpZ2luLnBvcnQgJiYgcHJvdGVjdGlvblNwYWNl
LnBvcnQoKSA9PSA4MCkpCi0gICAgICAgICAgICAmJiAoKHByb3RlY3Rpb25TcGFjZS5zZXJ2ZXJU
eXBlKCkgPT0gUHJvdGVjdGlvblNwYWNlU2VydmVySFRUUCAmJiBvcmlnaW4ucHJvdG9jb2wgPT0g
Imh0dHAiX3MpCi0gICAgICAgICAgICAgICAgfHwgKHByb3RlY3Rpb25TcGFjZS5zZXJ2ZXJUeXBl
KCkgPT0gUHJvdGVjdGlvblNwYWNlU2VydmVySFRUUFMgJiYgb3JpZ2luLnByb3RvY29sID09ICJo
dHRwcyJfcykpKQorICAgICAgICAgICAgJiYgKChwcm90ZWN0aW9uU3BhY2Uuc2VydmVyVHlwZSgp
ID09IFByb3RlY3Rpb25TcGFjZTo6U2VydmVyVHlwZTo6SFRUUCAmJiBvcmlnaW4ucHJvdG9jb2wg
PT0gImh0dHAiX3MpCisgICAgICAgICAgICAgICAgfHwgKHByb3RlY3Rpb25TcGFjZS5zZXJ2ZXJU
eXBlKCkgPT0gUHJvdGVjdGlvblNwYWNlOjpTZXJ2ZXJUeXBlOjpIVFRQUyAmJiBvcmlnaW4ucHJv
dG9jb2wgPT0gImh0dHBzIl9zKSkpCiAgICAgICAgICAgICBrZXlzVG9SZW1vdmUuYXBwZW5kKGtl
eVZhbHVlUGFpci5rZXkpOwogICAgIH0KICAgICBmb3IgKGF1dG8mIGtleSA6IGtleXNUb1JlbW92
ZSkKQEAgLTExMSwxNiArMTExLDE2IEBAIEhhc2hTZXQ8U2VjdXJpdHlPcmlnaW5EYXRhPiBDcmVk
ZW50aWFsU3RvcmFnZTo6b3JpZ2luc1dpdGhDcmVkZW50aWFscygpIGNvbnN0CiAgICAgICAgICAg
ICBjb250aW51ZTsKICAgICAgICAgU3RyaW5nIHByb3RvY29sOwogICAgICAgICBzd2l0Y2ggKHBy
b3RlY3Rpb25TcGFjZS5zZXJ2ZXJUeXBlKCkpIHsKLSAgICAgICAgY2FzZSBQcm90ZWN0aW9uU3Bh
Y2VTZXJ2ZXJIVFRQOgorICAgICAgICBjYXNlIFByb3RlY3Rpb25TcGFjZTo6U2VydmVyVHlwZTo6
SFRUUDoKICAgICAgICAgICAgIHByb3RvY29sID0gImh0dHAiX3M7CiAgICAgICAgICAgICBicmVh
azsKLSAgICAgICAgY2FzZSBQcm90ZWN0aW9uU3BhY2VTZXJ2ZXJIVFRQUzoKKyAgICAgICAgY2Fz
ZSBQcm90ZWN0aW9uU3BhY2U6OlNlcnZlclR5cGU6OkhUVFBTOgogICAgICAgICAgICAgcHJvdG9j
b2wgPSAiaHR0cHMiX3M7CiAgICAgICAgICAgICBicmVhazsKLSAgICAgICAgY2FzZSBQcm90ZWN0
aW9uU3BhY2VTZXJ2ZXJGVFA6CisgICAgICAgIGNhc2UgUHJvdGVjdGlvblNwYWNlOjpTZXJ2ZXJU
eXBlOjpGVFA6CiAgICAgICAgICAgICBwcm90b2NvbCA9ICJmdHAiX3M7CiAgICAgICAgICAgICBi
cmVhazsKLSAgICAgICAgY2FzZSBQcm90ZWN0aW9uU3BhY2VTZXJ2ZXJGVFBTOgorICAgICAgICBj
YXNlIFByb3RlY3Rpb25TcGFjZTo6U2VydmVyVHlwZTo6RlRQUzoKICAgICAgICAgICAgIHByb3Rv
Y29sID0gImZ0cHMiX3M7CiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgZGVmYXVsdDoKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvUHJvdGVjdGlvblNwYWNl
LmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL1Byb3RlY3Rpb25TcGFjZS5oCmlu
ZGV4IGE1Y2UzYmJhMTUzNTdjZmEwYmE4ZDI3OWYzNjYwN2U2NTE3YmMyN2IuLjNkODk2ZjBmM2Rm
MmQzMTE1Y2RmYjU4NjQyNDUzNzMwOTYwNWE4NjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL25ldHdvcmsvUHJvdGVjdGlvblNwYWNlLmgKKysrIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vbmV0d29yay9Qcm90ZWN0aW9uU3BhY2UuaApAQCAtNDAsNyArNDAsNyBAQCBuYW1l
c3BhY2UgV2ViQ29yZSB7CiBjbGFzcyBQcm90ZWN0aW9uU3BhY2UgOiBwdWJsaWMgUHJvdGVjdGlv
blNwYWNlQmFzZSB7CiBwdWJsaWM6CiAgICAgUHJvdGVjdGlvblNwYWNlKCkgOiBQcm90ZWN0aW9u
U3BhY2VCYXNlKCkgeyB9Ci0gICAgUHJvdGVjdGlvblNwYWNlKGNvbnN0IFN0cmluZyYgaG9zdCwg
aW50IHBvcnQsIFByb3RlY3Rpb25TcGFjZVNlcnZlclR5cGUgc2VydmVyVHlwZSwgY29uc3QgU3Ry
aW5nJiByZWFsbSwgUHJvdGVjdGlvblNwYWNlQXV0aGVudGljYXRpb25TY2hlbWUgYXV0aGVudGlj
YXRpb25TY2hlbWUpCisgICAgUHJvdGVjdGlvblNwYWNlKGNvbnN0IFN0cmluZyYgaG9zdCwgaW50
IHBvcnQsIFNlcnZlclR5cGUgc2VydmVyVHlwZSwgY29uc3QgU3RyaW5nJiByZWFsbSwgQXV0aGVu
dGljYXRpb25TY2hlbWUgYXV0aGVudGljYXRpb25TY2hlbWUpCiAgICAgICAgIDogUHJvdGVjdGlv
blNwYWNlQmFzZShob3N0LCBwb3J0LCBzZXJ2ZXJUeXBlLCByZWFsbSwgYXV0aGVudGljYXRpb25T
Y2hlbWUpCiAgICAgewogICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L25ldHdvcmsvUHJvdGVjdGlvblNwYWNlQmFzZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9uZXR3b3JrL1Byb3RlY3Rpb25TcGFjZUJhc2UuY3BwCmluZGV4IDc5NzVmOWFjZDc1MjI4MTM0
MzIzOTdiMTY4M2Q4NzA1NDUzM2JlMmMuLjEyNjgyNDA4Zjk3ZTBkMmNkNWY5NDllZGE3ZGYwNWZk
NzRiNTkwNjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvUHJv
dGVjdGlvblNwYWNlQmFzZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29y
ay9Qcm90ZWN0aW9uU3BhY2VCYXNlLmNwcApAQCAtMzYsNyArMzYsNyBAQCBuYW1lc3BhY2UgV2Vi
Q29yZSB7CiAgCiAvLyBOZWVkIHRvIGVuZm9yY2UgZW1wdHksIG5vbi1udWxsIHN0cmluZ3MgZHVl
IHRvIHRoZSBwaWNraW5lc3Mgb2YgdGhlIFN0cmluZyA9PSBTdHJpbmcgb3BlcmF0b3IKIC8vIGNv
bWJpbmVkIHdpdGggdGhlIHNlbWFudGljcyBvZiB0aGUgU3RyaW5nKE5TU3RyaW5nKikgY29uc3Ry
dWN0b3IKLVByb3RlY3Rpb25TcGFjZUJhc2U6OlByb3RlY3Rpb25TcGFjZUJhc2UoY29uc3QgU3Ry
aW5nJiBob3N0LCBpbnQgcG9ydCwgUHJvdGVjdGlvblNwYWNlU2VydmVyVHlwZSBzZXJ2ZXJUeXBl
LCBjb25zdCBTdHJpbmcmIHJlYWxtLCBQcm90ZWN0aW9uU3BhY2VBdXRoZW50aWNhdGlvblNjaGVt
ZSBhdXRoZW50aWNhdGlvblNjaGVtZSkKK1Byb3RlY3Rpb25TcGFjZUJhc2U6OlByb3RlY3Rpb25T
cGFjZUJhc2UoY29uc3QgU3RyaW5nJiBob3N0LCBpbnQgcG9ydCwgU2VydmVyVHlwZSBzZXJ2ZXJU
eXBlLCBjb25zdCBTdHJpbmcmIHJlYWxtLCBBdXRoZW50aWNhdGlvblNjaGVtZSBhdXRoZW50aWNh
dGlvblNjaGVtZSkKICAgICA6IG1faG9zdChob3N0Lmxlbmd0aCgpID8gaG9zdCA6IGVtcHR5U3Ry
aW5nKCkpCiAgICAgLCBtX3JlYWxtKHJlYWxtLmxlbmd0aCgpID8gcmVhbG0gOiBlbXB0eVN0cmlu
ZygpKQogICAgICwgbV9wb3J0KHBvcnQpCkBAIC00NywzNyArNDcsMzcgQEAgUHJvdGVjdGlvblNw
YWNlQmFzZTo6UHJvdGVjdGlvblNwYWNlQmFzZShjb25zdCBTdHJpbmcmIGhvc3QsIGludCBwb3J0
LCBQcm90ZWN0aW8KIAogYm9vbCBQcm90ZWN0aW9uU3BhY2VCYXNlOjppc1Byb3h5KCkgY29uc3QK
IHsKLSAgICByZXR1cm4gKG1fc2VydmVyVHlwZSA9PSBQcm90ZWN0aW9uU3BhY2VQcm94eUhUVFAg
fHwKLSAgICAgICAgICAgIG1fc2VydmVyVHlwZSA9PSBQcm90ZWN0aW9uU3BhY2VQcm94eUhUVFBT
IHx8Ci0gICAgICAgICAgICBtX3NlcnZlclR5cGUgPT0gUHJvdGVjdGlvblNwYWNlUHJveHlGVFAg
fHwKLSAgICAgICAgICAgIG1fc2VydmVyVHlwZSA9PSBQcm90ZWN0aW9uU3BhY2VQcm94eVNPQ0tT
KTsKKyAgICByZXR1cm4gbV9zZXJ2ZXJUeXBlID09IFNlcnZlclR5cGU6OlByb3h5SFRUUAorICAg
ICAgICB8fCBtX3NlcnZlclR5cGUgPT0gU2VydmVyVHlwZTo6UHJveHlIVFRQUworICAgICAgICB8
fCBtX3NlcnZlclR5cGUgPT0gU2VydmVyVHlwZTo6UHJveHlGVFAKKyAgICAgICAgfHwgbV9zZXJ2
ZXJUeXBlID09IFNlcnZlclR5cGU6OlByb3h5U09DS1M7CiB9CiAKIGJvb2wgUHJvdGVjdGlvblNw
YWNlQmFzZTo6cmVjZWl2ZXNDcmVkZW50aWFsU2VjdXJlbHkoKSBjb25zdAogewotICAgIHJldHVy
biAobV9zZXJ2ZXJUeXBlID09IFByb3RlY3Rpb25TcGFjZVNlcnZlckhUVFBTIHx8Ci0gICAgICAg
ICAgICBtX3NlcnZlclR5cGUgPT0gUHJvdGVjdGlvblNwYWNlU2VydmVyRlRQUyB8fCAKLSAgICAg
ICAgICAgIG1fc2VydmVyVHlwZSA9PSBQcm90ZWN0aW9uU3BhY2VQcm94eUhUVFBTIHx8IAotICAg
ICAgICAgICAgbV9hdXRoZW50aWNhdGlvblNjaGVtZSA9PSBQcm90ZWN0aW9uU3BhY2VBdXRoZW50
aWNhdGlvblNjaGVtZUhUVFBEaWdlc3QpOyAKKyAgICByZXR1cm4gbV9zZXJ2ZXJUeXBlID09IFNl
cnZlclR5cGU6OkhUVFBTCisgICAgICAgIHx8IG1fc2VydmVyVHlwZSA9PSBTZXJ2ZXJUeXBlOjpG
VFBTCisgICAgICAgIHx8IG1fc2VydmVyVHlwZSA9PSBTZXJ2ZXJUeXBlOjpQcm94eUhUVFBTCisg
ICAgICAgIHx8IG1fYXV0aGVudGljYXRpb25TY2hlbWUgPT0gQXV0aGVudGljYXRpb25TY2hlbWU6
OkhUVFBEaWdlc3Q7CiB9CiAKIGJvb2wgUHJvdGVjdGlvblNwYWNlQmFzZTo6aXNQYXNzd29yZEJh
c2VkKCkgY29uc3QKIHsKICAgICBzd2l0Y2ggKG1fYXV0aGVudGljYXRpb25TY2hlbWUpIHsKLSAg
ICBjYXNlIFByb3RlY3Rpb25TcGFjZUF1dGhlbnRpY2F0aW9uU2NoZW1lRGVmYXVsdDoKLSAgICBj
YXNlIFByb3RlY3Rpb25TcGFjZUF1dGhlbnRpY2F0aW9uU2NoZW1lSFRUUEJhc2ljOgotICAgIGNh
c2UgUHJvdGVjdGlvblNwYWNlQXV0aGVudGljYXRpb25TY2hlbWVIVFRQRGlnZXN0OgotICAgIGNh
c2UgUHJvdGVjdGlvblNwYWNlQXV0aGVudGljYXRpb25TY2hlbWVIVE1MRm9ybToKLSAgICBjYXNl
IFByb3RlY3Rpb25TcGFjZUF1dGhlbnRpY2F0aW9uU2NoZW1lTlRMTToKLSAgICBjYXNlIFByb3Rl
Y3Rpb25TcGFjZUF1dGhlbnRpY2F0aW9uU2NoZW1lTmVnb3RpYXRlOgotICAgIGNhc2UgUHJvdGVj
dGlvblNwYWNlQXV0aGVudGljYXRpb25TY2hlbWVPQXV0aDoKKyAgICBjYXNlIEF1dGhlbnRpY2F0
aW9uU2NoZW1lOjpEZWZhdWx0OgorICAgIGNhc2UgQXV0aGVudGljYXRpb25TY2hlbWU6OkhUVFBC
YXNpYzoKKyAgICBjYXNlIEF1dGhlbnRpY2F0aW9uU2NoZW1lOjpIVFRQRGlnZXN0OgorICAgIGNh
c2UgQXV0aGVudGljYXRpb25TY2hlbWU6OkhUTUxGb3JtOgorICAgIGNhc2UgQXV0aGVudGljYXRp
b25TY2hlbWU6Ok5UTE06CisgICAgY2FzZSBBdXRoZW50aWNhdGlvblNjaGVtZTo6TmVnb3RpYXRl
OgorICAgIGNhc2UgQXV0aGVudGljYXRpb25TY2hlbWU6Ok9BdXRoOgogI2lmIFVTRShHTElCKQot
ICAgIGNhc2UgUHJvdGVjdGlvblNwYWNlQXV0aGVudGljYXRpb25TY2hlbWVDbGllbnRDZXJ0aWZp
Y2F0ZVBJTlJlcXVlc3RlZDoKKyAgICBjYXNlIEF1dGhlbnRpY2F0aW9uU2NoZW1lOjpDbGllbnRD
ZXJ0aWZpY2F0ZVBJTlJlcXVlc3RlZDoKICNlbmRpZgogICAgICAgICByZXR1cm4gdHJ1ZTsKLSAg
ICBjYXNlIFByb3RlY3Rpb25TcGFjZUF1dGhlbnRpY2F0aW9uU2NoZW1lQ2xpZW50Q2VydGlmaWNh
dGVSZXF1ZXN0ZWQ6Ci0gICAgY2FzZSBQcm90ZWN0aW9uU3BhY2VBdXRoZW50aWNhdGlvblNjaGVt
ZVNlcnZlclRydXN0RXZhbHVhdGlvblJlcXVlc3RlZDoKLSAgICBjYXNlIFByb3RlY3Rpb25TcGFj
ZUF1dGhlbnRpY2F0aW9uU2NoZW1lVW5rbm93bjoKKyAgICBjYXNlIEF1dGhlbnRpY2F0aW9uU2No
ZW1lOjpDbGllbnRDZXJ0aWZpY2F0ZVJlcXVlc3RlZDoKKyAgICBjYXNlIEF1dGhlbnRpY2F0aW9u
U2NoZW1lOjpTZXJ2ZXJUcnVzdEV2YWx1YXRpb25SZXF1ZXN0ZWQ6CisgICAgY2FzZSBBdXRoZW50
aWNhdGlvblNjaGVtZTo6VW5rbm93bjoKICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgIH0KIApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9Qcm90ZWN0aW9uU3Bh
Y2VCYXNlLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL1Byb3RlY3Rpb25TcGFj
ZUJhc2UuaAppbmRleCA4YmU0MWQ0NzQwN2Y0ZWE0ODIxOWQ5MThjZmE2OTdiMThhODFlMzg2Li5k
MWRlOTZhZTA2MDA1NzRmMDUyNWMwZjRmNWJlOGVhZDZkMmI4YTYyIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL1Byb3RlY3Rpb25TcGFjZUJhc2UuaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL1Byb3RlY3Rpb25TcGFjZUJhc2UuaApAQCAt
MzEsNDUgKzMxLDQ0IEBACiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNzIFByb3RlY3Rpb25T
cGFjZTsKLQotZW51bSBQcm90ZWN0aW9uU3BhY2VTZXJ2ZXJUeXBlIHsKLSAgICBQcm90ZWN0aW9u
U3BhY2VTZXJ2ZXJIVFRQID0gMSwKLSAgICBQcm90ZWN0aW9uU3BhY2VTZXJ2ZXJIVFRQUyA9IDIs
Ci0gICAgUHJvdGVjdGlvblNwYWNlU2VydmVyRlRQID0gMywKLSAgICBQcm90ZWN0aW9uU3BhY2VT
ZXJ2ZXJGVFBTID0gNCwKLSAgICBQcm90ZWN0aW9uU3BhY2VQcm94eUhUVFAgPSA1LAotICAgIFBy
b3RlY3Rpb25TcGFjZVByb3h5SFRUUFMgPSA2LAotICAgIFByb3RlY3Rpb25TcGFjZVByb3h5RlRQ
ID0gNywKLSAgICBQcm90ZWN0aW9uU3BhY2VQcm94eVNPQ0tTID0gOAotfTsKLQotZW51bSBQcm90
ZWN0aW9uU3BhY2VBdXRoZW50aWNhdGlvblNjaGVtZSB7Ci0gICAgUHJvdGVjdGlvblNwYWNlQXV0
aGVudGljYXRpb25TY2hlbWVEZWZhdWx0ID0gMSwKLSAgICBQcm90ZWN0aW9uU3BhY2VBdXRoZW50
aWNhdGlvblNjaGVtZUhUVFBCYXNpYyA9IDIsCi0gICAgUHJvdGVjdGlvblNwYWNlQXV0aGVudGlj
YXRpb25TY2hlbWVIVFRQRGlnZXN0ID0gMywKLSAgICBQcm90ZWN0aW9uU3BhY2VBdXRoZW50aWNh
dGlvblNjaGVtZUhUTUxGb3JtID0gNCwKLSAgICBQcm90ZWN0aW9uU3BhY2VBdXRoZW50aWNhdGlv
blNjaGVtZU5UTE0gPSA1LAotICAgIFByb3RlY3Rpb25TcGFjZUF1dGhlbnRpY2F0aW9uU2NoZW1l
TmVnb3RpYXRlID0gNiwKLSAgICBQcm90ZWN0aW9uU3BhY2VBdXRoZW50aWNhdGlvblNjaGVtZUNs
aWVudENlcnRpZmljYXRlUmVxdWVzdGVkID0gNywKLSAgICBQcm90ZWN0aW9uU3BhY2VBdXRoZW50
aWNhdGlvblNjaGVtZVNlcnZlclRydXN0RXZhbHVhdGlvblJlcXVlc3RlZCA9IDgsCi0gICAgUHJv
dGVjdGlvblNwYWNlQXV0aGVudGljYXRpb25TY2hlbWVPQXV0aCA9IDksCi0jaWYgVVNFKEdMSUIp
Ci0gICAgUHJvdGVjdGlvblNwYWNlQXV0aGVudGljYXRpb25TY2hlbWVDbGllbnRDZXJ0aWZpY2F0
ZVBJTlJlcXVlc3RlZCA9IDEwLAotI2VuZGlmCi0gICAgUHJvdGVjdGlvblNwYWNlQXV0aGVudGlj
YXRpb25TY2hlbWVVbmtub3duID0gMTAwCi19OwogICAKIGNsYXNzIFByb3RlY3Rpb25TcGFjZUJh
c2UgewotCiBwdWJsaWM6CisgICAgZW51bSBjbGFzcyBTZXJ2ZXJUeXBlIDogdWludDhfdCB7Cisg
ICAgICAgIEhUVFAgPSAxLAorICAgICAgICBIVFRQUyA9IDIsCisgICAgICAgIEZUUCA9IDMsCisg
ICAgICAgIEZUUFMgPSA0LAorICAgICAgICBQcm94eUhUVFAgPSA1LAorICAgICAgICBQcm94eUhU
VFBTID0gNiwKKyAgICAgICAgUHJveHlGVFAgPSA3LAorICAgICAgICBQcm94eVNPQ0tTID0gOAor
ICAgIH07CisKKyAgICBlbnVtIGNsYXNzIEF1dGhlbnRpY2F0aW9uU2NoZW1lIDogdWludDhfdCB7
CisgICAgICAgIERlZmF1bHQgPSAxLAorICAgICAgICBIVFRQQmFzaWMgPSAyLAorICAgICAgICBI
VFRQRGlnZXN0ID0gMywKKyAgICAgICAgSFRNTEZvcm0gPSA0LAorICAgICAgICBOVExNID0gNSwK
KyAgICAgICAgTmVnb3RpYXRlID0gNiwKKyAgICAgICAgQ2xpZW50Q2VydGlmaWNhdGVSZXF1ZXN0
ZWQgPSA3LAorICAgICAgICBTZXJ2ZXJUcnVzdEV2YWx1YXRpb25SZXF1ZXN0ZWQgPSA4LAorICAg
ICAgICBPQXV0aCA9IDksCisjaWYgVVNFKEdMSUIpCisgICAgICAgIENsaWVudENlcnRpZmljYXRl
UElOUmVxdWVzdGVkID0gMTAsCisjZW5kaWYKKyAgICAgICAgVW5rbm93biA9IDEwMAorICAgIH07
CisKICAgICBib29sIGlzSGFzaFRhYmxlRGVsZXRlZFZhbHVlKCkgY29uc3QgeyByZXR1cm4gbV9p
c0hhc2hUYWJsZURlbGV0ZWRWYWx1ZTsgfQogICAgIAogICAgIGNvbnN0IFN0cmluZyYgaG9zdCgp
IGNvbnN0IHsgcmV0dXJuIG1faG9zdDsgfQogICAgIGludCBwb3J0KCkgY29uc3QgeyByZXR1cm4g
bV9wb3J0OyB9Ci0gICAgUHJvdGVjdGlvblNwYWNlU2VydmVyVHlwZSBzZXJ2ZXJUeXBlKCkgY29u
c3QgeyByZXR1cm4gbV9zZXJ2ZXJUeXBlOyB9CisgICAgU2VydmVyVHlwZSBzZXJ2ZXJUeXBlKCkg
Y29uc3QgeyByZXR1cm4gbV9zZXJ2ZXJUeXBlOyB9CiAgICAgV0VCQ09SRV9FWFBPUlQgYm9vbCBp
c1Byb3h5KCkgY29uc3Q7CiAgICAgY29uc3QgU3RyaW5nJiByZWFsbSgpIGNvbnN0IHsgcmV0dXJu
IG1fcmVhbG07IH0KLSAgICBQcm90ZWN0aW9uU3BhY2VBdXRoZW50aWNhdGlvblNjaGVtZSBhdXRo
ZW50aWNhdGlvblNjaGVtZSgpIGNvbnN0IHsgcmV0dXJuIG1fYXV0aGVudGljYXRpb25TY2hlbWU7
IH0KKyAgICBBdXRoZW50aWNhdGlvblNjaGVtZSBhdXRoZW50aWNhdGlvblNjaGVtZSgpIGNvbnN0
IHsgcmV0dXJuIG1fYXV0aGVudGljYXRpb25TY2hlbWU7IH0KICAgICAKICAgICBXRUJDT1JFX0VY
UE9SVCBib29sIHJlY2VpdmVzQ3JlZGVudGlhbFNlY3VyZWx5KCkgY29uc3Q7CiAgICAgV0VCQ09S
RV9FWFBPUlQgYm9vbCBpc1Bhc3N3b3JkQmFzZWQoKSBjb25zdDsKQEAgLTgwLDcgKzc5LDcgQEAg
cHVibGljOgogCiBwcm90ZWN0ZWQ6CiAgICAgUHJvdGVjdGlvblNwYWNlQmFzZSgpID0gZGVmYXVs
dDsKLSAgICBXRUJDT1JFX0VYUE9SVCBQcm90ZWN0aW9uU3BhY2VCYXNlKGNvbnN0IFN0cmluZyYg
aG9zdCwgaW50IHBvcnQsIFByb3RlY3Rpb25TcGFjZVNlcnZlclR5cGUsIGNvbnN0IFN0cmluZyYg
cmVhbG0sIFByb3RlY3Rpb25TcGFjZUF1dGhlbnRpY2F0aW9uU2NoZW1lKTsKKyAgICBXRUJDT1JF
X0VYUE9SVCBQcm90ZWN0aW9uU3BhY2VCYXNlKGNvbnN0IFN0cmluZyYgaG9zdCwgaW50IHBvcnQs
IFNlcnZlclR5cGUsIGNvbnN0IFN0cmluZyYgcmVhbG0sIEF1dGhlbnRpY2F0aW9uU2NoZW1lKTsK
IAogICAgIC8vIEhhc2ggdGFibGUgZGVsZXRlZCB2YWx1ZXMsIHdoaWNoIGFyZSBvbmx5IGNvbnN0
cnVjdGVkIGFuZCBuZXZlciBjb3BpZWQgb3IgZGVzdHJveWVkLgogICAgIFByb3RlY3Rpb25TcGFj
ZUJhc2UoV1RGOjpIYXNoVGFibGVEZWxldGVkVmFsdWVUeXBlKSA6IG1faXNIYXNoVGFibGVEZWxl
dGVkVmFsdWUodHJ1ZSkgeyB9CkBAIC05NCw4ICs5Myw4IEBAIHByaXZhdGU6CiAgICAgU3RyaW5n
IG1fcmVhbG0geyBlbXB0eVN0cmluZygpIH07CiAKICAgICBpbnQgbV9wb3J0IHsgMCB9OwotICAg
IFByb3RlY3Rpb25TcGFjZVNlcnZlclR5cGUgbV9zZXJ2ZXJUeXBlIHsgUHJvdGVjdGlvblNwYWNl
U2VydmVySFRUUCB9OwotICAgIFByb3RlY3Rpb25TcGFjZUF1dGhlbnRpY2F0aW9uU2NoZW1lIG1f
YXV0aGVudGljYXRpb25TY2hlbWUgeyBQcm90ZWN0aW9uU3BhY2VBdXRoZW50aWNhdGlvblNjaGVt
ZURlZmF1bHQgfTsKKyAgICBTZXJ2ZXJUeXBlIG1fc2VydmVyVHlwZSB7IFNlcnZlclR5cGU6OkhU
VFAgfTsKKyAgICBBdXRoZW50aWNhdGlvblNjaGVtZSBtX2F1dGhlbnRpY2F0aW9uU2NoZW1lIHsg
QXV0aGVudGljYXRpb25TY2hlbWU6OkRlZmF1bHQgfTsKICAgICBib29sIG1faXNIYXNoVGFibGVE
ZWxldGVkVmFsdWUgeyBmYWxzZSB9OwogfTsKIApAQCAtMTA2LDMzICsxMDUsMzMgQEAgaW5saW5l
IGJvb2wgb3BlcmF0b3IhPShjb25zdCBQcm90ZWN0aW9uU3BhY2UmIGEsIGNvbnN0IFByb3RlY3Rp
b25TcGFjZSYgYikgeyByZXQKIAogbmFtZXNwYWNlIFdURiB7CiAKLXRlbXBsYXRlPD4gc3RydWN0
IEVudW1UcmFpdHM8V2ViQ29yZTo6UHJvdGVjdGlvblNwYWNlQXV0aGVudGljYXRpb25TY2hlbWU+
IHsKK3RlbXBsYXRlPD4gc3RydWN0IEVudW1UcmFpdHM8V2ViQ29yZTo6UHJvdGVjdGlvblNwYWNl
QmFzZTo6QXV0aGVudGljYXRpb25TY2hlbWU+IHsKICAgICB1c2luZyB2YWx1ZXMgPSBFbnVtVmFs
dWVzPAotICAgICAgICBXZWJDb3JlOjpQcm90ZWN0aW9uU3BhY2VBdXRoZW50aWNhdGlvblNjaGVt
ZSwKLSAgICAgICAgV2ViQ29yZTo6UHJvdGVjdGlvblNwYWNlQXV0aGVudGljYXRpb25TY2hlbWU6
OlByb3RlY3Rpb25TcGFjZUF1dGhlbnRpY2F0aW9uU2NoZW1lRGVmYXVsdCwKLSAgICAgICAgV2Vi
Q29yZTo6UHJvdGVjdGlvblNwYWNlQXV0aGVudGljYXRpb25TY2hlbWU6OlByb3RlY3Rpb25TcGFj
ZUF1dGhlbnRpY2F0aW9uU2NoZW1lSFRUUEJhc2ljLAotICAgICAgICBXZWJDb3JlOjpQcm90ZWN0
aW9uU3BhY2VBdXRoZW50aWNhdGlvblNjaGVtZTo6UHJvdGVjdGlvblNwYWNlQXV0aGVudGljYXRp
b25TY2hlbWVIVFRQRGlnZXN0LAotICAgICAgICBXZWJDb3JlOjpQcm90ZWN0aW9uU3BhY2VBdXRo
ZW50aWNhdGlvblNjaGVtZTo6UHJvdGVjdGlvblNwYWNlQXV0aGVudGljYXRpb25TY2hlbWVIVE1M
Rm9ybSwKLSAgICAgICAgV2ViQ29yZTo6UHJvdGVjdGlvblNwYWNlQXV0aGVudGljYXRpb25TY2hl
bWU6OlByb3RlY3Rpb25TcGFjZUF1dGhlbnRpY2F0aW9uU2NoZW1lTlRMTSwKLSAgICAgICAgV2Vi
Q29yZTo6UHJvdGVjdGlvblNwYWNlQXV0aGVudGljYXRpb25TY2hlbWU6OlByb3RlY3Rpb25TcGFj
ZUF1dGhlbnRpY2F0aW9uU2NoZW1lTmVnb3RpYXRlLAotICAgICAgICBXZWJDb3JlOjpQcm90ZWN0
aW9uU3BhY2VBdXRoZW50aWNhdGlvblNjaGVtZTo6UHJvdGVjdGlvblNwYWNlQXV0aGVudGljYXRp
b25TY2hlbWVDbGllbnRDZXJ0aWZpY2F0ZVJlcXVlc3RlZCwKLSAgICAgICAgV2ViQ29yZTo6UHJv
dGVjdGlvblNwYWNlQXV0aGVudGljYXRpb25TY2hlbWU6OlByb3RlY3Rpb25TcGFjZUF1dGhlbnRp
Y2F0aW9uU2NoZW1lU2VydmVyVHJ1c3RFdmFsdWF0aW9uUmVxdWVzdGVkLAotICAgICAgICBXZWJD
b3JlOjpQcm90ZWN0aW9uU3BhY2VBdXRoZW50aWNhdGlvblNjaGVtZTo6UHJvdGVjdGlvblNwYWNl
QXV0aGVudGljYXRpb25TY2hlbWVPQXV0aCwKLSAgICAgICAgV2ViQ29yZTo6UHJvdGVjdGlvblNw
YWNlQXV0aGVudGljYXRpb25TY2hlbWU6OlByb3RlY3Rpb25TcGFjZUF1dGhlbnRpY2F0aW9uU2No
ZW1lVW5rbm93bgorICAgICAgICBXZWJDb3JlOjpQcm90ZWN0aW9uU3BhY2VCYXNlOjpBdXRoZW50
aWNhdGlvblNjaGVtZSwKKyAgICAgICAgV2ViQ29yZTo6UHJvdGVjdGlvblNwYWNlQmFzZTo6QXV0
aGVudGljYXRpb25TY2hlbWU6OkRlZmF1bHQsCisgICAgICAgIFdlYkNvcmU6OlByb3RlY3Rpb25T
cGFjZUJhc2U6OkF1dGhlbnRpY2F0aW9uU2NoZW1lOjpIVFRQQmFzaWMsCisgICAgICAgIFdlYkNv
cmU6OlByb3RlY3Rpb25TcGFjZUJhc2U6OkF1dGhlbnRpY2F0aW9uU2NoZW1lOjpIVFRQRGlnZXN0
LAorICAgICAgICBXZWJDb3JlOjpQcm90ZWN0aW9uU3BhY2VCYXNlOjpBdXRoZW50aWNhdGlvblNj
aGVtZTo6SFRNTEZvcm0sCisgICAgICAgIFdlYkNvcmU6OlByb3RlY3Rpb25TcGFjZUJhc2U6OkF1
dGhlbnRpY2F0aW9uU2NoZW1lOjpOVExNLAorICAgICAgICBXZWJDb3JlOjpQcm90ZWN0aW9uU3Bh
Y2VCYXNlOjpBdXRoZW50aWNhdGlvblNjaGVtZTo6TmVnb3RpYXRlLAorICAgICAgICBXZWJDb3Jl
OjpQcm90ZWN0aW9uU3BhY2VCYXNlOjpBdXRoZW50aWNhdGlvblNjaGVtZTo6Q2xpZW50Q2VydGlm
aWNhdGVSZXF1ZXN0ZWQsCisgICAgICAgIFdlYkNvcmU6OlByb3RlY3Rpb25TcGFjZUJhc2U6OkF1
dGhlbnRpY2F0aW9uU2NoZW1lOjpTZXJ2ZXJUcnVzdEV2YWx1YXRpb25SZXF1ZXN0ZWQsCisgICAg
ICAgIFdlYkNvcmU6OlByb3RlY3Rpb25TcGFjZUJhc2U6OkF1dGhlbnRpY2F0aW9uU2NoZW1lOjpP
QXV0aCwKKyAgICAgICAgV2ViQ29yZTo6UHJvdGVjdGlvblNwYWNlQmFzZTo6QXV0aGVudGljYXRp
b25TY2hlbWU6OlVua25vd24KICAgICA+OwogfTsKIAotdGVtcGxhdGU8PiBzdHJ1Y3QgRW51bVRy
YWl0czxXZWJDb3JlOjpQcm90ZWN0aW9uU3BhY2VTZXJ2ZXJUeXBlPiB7Cit0ZW1wbGF0ZTw+IHN0
cnVjdCBFbnVtVHJhaXRzPFdlYkNvcmU6OlByb3RlY3Rpb25TcGFjZUJhc2U6OlNlcnZlclR5cGU+
IHsKICAgICB1c2luZyB2YWx1ZXMgPSBFbnVtVmFsdWVzPAotICAgICAgICBXZWJDb3JlOjpQcm90
ZWN0aW9uU3BhY2VTZXJ2ZXJUeXBlLAotICAgICAgICBXZWJDb3JlOjpQcm90ZWN0aW9uU3BhY2VT
ZXJ2ZXJUeXBlOjpQcm90ZWN0aW9uU3BhY2VTZXJ2ZXJIVFRQLAotICAgICAgICBXZWJDb3JlOjpQ
cm90ZWN0aW9uU3BhY2VTZXJ2ZXJUeXBlOjpQcm90ZWN0aW9uU3BhY2VTZXJ2ZXJIVFRQUywKLSAg
ICAgICAgV2ViQ29yZTo6UHJvdGVjdGlvblNwYWNlU2VydmVyVHlwZTo6UHJvdGVjdGlvblNwYWNl
U2VydmVyRlRQLAotICAgICAgICBXZWJDb3JlOjpQcm90ZWN0aW9uU3BhY2VTZXJ2ZXJUeXBlOjpQ
cm90ZWN0aW9uU3BhY2VTZXJ2ZXJGVFBTLAotICAgICAgICBXZWJDb3JlOjpQcm90ZWN0aW9uU3Bh
Y2VTZXJ2ZXJUeXBlOjpQcm90ZWN0aW9uU3BhY2VQcm94eUhUVFAsCi0gICAgICAgIFdlYkNvcmU6
OlByb3RlY3Rpb25TcGFjZVNlcnZlclR5cGU6OlByb3RlY3Rpb25TcGFjZVByb3h5SFRUUFMsCi0g
ICAgICAgIFdlYkNvcmU6OlByb3RlY3Rpb25TcGFjZVNlcnZlclR5cGU6OlByb3RlY3Rpb25TcGFj
ZVByb3h5RlRQLAotICAgICAgICBXZWJDb3JlOjpQcm90ZWN0aW9uU3BhY2VTZXJ2ZXJUeXBlOjpQ
cm90ZWN0aW9uU3BhY2VQcm94eVNPQ0tTCisgICAgICAgIFdlYkNvcmU6OlByb3RlY3Rpb25TcGFj
ZUJhc2U6OlNlcnZlclR5cGUsCisgICAgICAgIFdlYkNvcmU6OlByb3RlY3Rpb25TcGFjZUJhc2U6
OlNlcnZlclR5cGU6OkhUVFAsCisgICAgICAgIFdlYkNvcmU6OlByb3RlY3Rpb25TcGFjZUJhc2U6
OlNlcnZlclR5cGU6OkhUVFBTLAorICAgICAgICBXZWJDb3JlOjpQcm90ZWN0aW9uU3BhY2VCYXNl
OjpTZXJ2ZXJUeXBlOjpGVFAsCisgICAgICAgIFdlYkNvcmU6OlByb3RlY3Rpb25TcGFjZUJhc2U6
OlNlcnZlclR5cGU6OkZUUFMsCisgICAgICAgIFdlYkNvcmU6OlByb3RlY3Rpb25TcGFjZUJhc2U6
OlNlcnZlclR5cGU6OlByb3h5SFRUUCwKKyAgICAgICAgV2ViQ29yZTo6UHJvdGVjdGlvblNwYWNl
QmFzZTo6U2VydmVyVHlwZTo6UHJveHlIVFRQUywKKyAgICAgICAgV2ViQ29yZTo6UHJvdGVjdGlv
blNwYWNlQmFzZTo6U2VydmVyVHlwZTo6UHJveHlGVFAsCisgICAgICAgIFdlYkNvcmU6OlByb3Rl
Y3Rpb25TcGFjZUJhc2U6OlNlcnZlclR5cGU6OlByb3h5U09DS1MKICAgICA+OwogfTsKIApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jZi9BdXRoZW50aWNhdGlv
bkNGLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY2YvQXV0aGVudGljYXRp
b25DRi5jcHAKaW5kZXggY2VlNWQ3ZWFjYmNiNjIxMGIyMjlkY2VhYzg3YjQ2ZjRmYmQ4ZWNlMC4u
M2M5Mjc3MDFiNjI3MmY5N2VjOWM1ZmY0YWIwZjA5ZjQ2MzhhODI1MiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jZi9BdXRoZW50aWNhdGlvbkNGLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2NmL0F1dGhlbnRpY2F0aW9uQ0YuY3Bw
CkBAIC0xMDQsMjggKzEwNCwyOCBAQCBSZXRhaW5QdHI8Q0ZVUkxQcm90ZWN0aW9uU3BhY2VSZWY+
IGNyZWF0ZUNGKGNvbnN0IFByb3RlY3Rpb25TcGFjZSYgY29yZVNwYWNlKQogewogICAgIENGVVJM
UHJvdGVjdGlvblNwYWNlU2VydmVyVHlwZSBzZXJ2ZXJUeXBlID0ga0NGVVJMUHJvdGVjdGlvblNw
YWNlU2VydmVySFRUUDsKICAgICBzd2l0Y2ggKGNvcmVTcGFjZS5zZXJ2ZXJUeXBlKCkpIHsKLSAg
ICBjYXNlIFByb3RlY3Rpb25TcGFjZVNlcnZlckhUVFA6CisgICAgY2FzZSBQcm90ZWN0aW9uU3Bh
Y2U6OlNlcnZlclR5cGU6OkhUVFA6CiAgICAgICAgIHNlcnZlclR5cGUgPSBrQ0ZVUkxQcm90ZWN0
aW9uU3BhY2VTZXJ2ZXJIVFRQOwogICAgICAgICBicmVhazsKLSAgICBjYXNlIFByb3RlY3Rpb25T
cGFjZVNlcnZlckhUVFBTOgorICAgIGNhc2UgUHJvdGVjdGlvblNwYWNlOjpTZXJ2ZXJUeXBlOjpI
VFRQUzoKICAgICAgICAgc2VydmVyVHlwZSA9IGtDRlVSTFByb3RlY3Rpb25TcGFjZVNlcnZlckhU
VFBTOwogICAgICAgICBicmVhazsKLSAgICBjYXNlIFByb3RlY3Rpb25TcGFjZVNlcnZlckZUUDoK
KyAgICBjYXNlIFByb3RlY3Rpb25TcGFjZTo6U2VydmVyVHlwZTo6RlRQOgogICAgICAgICBzZXJ2
ZXJUeXBlID0ga0NGVVJMUHJvdGVjdGlvblNwYWNlU2VydmVyRlRQOwogICAgICAgICBicmVhazsK
LSAgICBjYXNlIFByb3RlY3Rpb25TcGFjZVNlcnZlckZUUFM6CisgICAgY2FzZSBQcm90ZWN0aW9u
U3BhY2U6OlNlcnZlclR5cGU6OkZUUFM6CiAgICAgICAgIHNlcnZlclR5cGUgPSBrQ0ZVUkxQcm90
ZWN0aW9uU3BhY2VTZXJ2ZXJGVFBTOwogICAgICAgICBicmVhazsKLSAgICBjYXNlIFByb3RlY3Rp
b25TcGFjZVByb3h5SFRUUDoKKyAgICBjYXNlIFByb3RlY3Rpb25TcGFjZTo6U2VydmVyVHlwZTo6
UHJveHlIVFRQOgogICAgICAgICBzZXJ2ZXJUeXBlID0ga0NGVVJMUHJvdGVjdGlvblNwYWNlUHJv
eHlIVFRQOwogICAgICAgICBicmVhazsKLSAgICBjYXNlIFByb3RlY3Rpb25TcGFjZVByb3h5SFRU
UFM6CisgICAgY2FzZSBQcm90ZWN0aW9uU3BhY2U6OlNlcnZlclR5cGU6OlByb3h5SFRUUFM6CiAg
ICAgICAgIHNlcnZlclR5cGUgPSBrQ0ZVUkxQcm90ZWN0aW9uU3BhY2VQcm94eUhUVFBTOwogICAg
ICAgICBicmVhazsKLSAgICBjYXNlIFByb3RlY3Rpb25TcGFjZVByb3h5RlRQOgorICAgIGNhc2Ug
UHJvdGVjdGlvblNwYWNlOjpTZXJ2ZXJUeXBlOjpQcm94eUZUUDoKICAgICAgICAgc2VydmVyVHlw
ZSA9IGtDRlVSTFByb3RlY3Rpb25TcGFjZVByb3h5RlRQOwogICAgICAgICBicmVhazsKLSAgICBj
YXNlIFByb3RlY3Rpb25TcGFjZVByb3h5U09DS1M6CisgICAgY2FzZSBQcm90ZWN0aW9uU3BhY2U6
OlNlcnZlclR5cGU6OlByb3h5U09DS1M6CiAgICAgICAgIHNlcnZlclR5cGUgPSBrQ0ZVUkxQcm90
ZWN0aW9uU3BhY2VQcm94eVNPQ0tTOwogICAgICAgICBicmVhazsKICAgICBkZWZhdWx0OgpAQCAt
MTM0LDI5ICsxMzQsMjkgQEAgUmV0YWluUHRyPENGVVJMUHJvdGVjdGlvblNwYWNlUmVmPiBjcmVh
dGVDRihjb25zdCBQcm90ZWN0aW9uU3BhY2UmIGNvcmVTcGFjZSkKIAogICAgIENGVVJMUHJvdGVj
dGlvblNwYWNlQXV0aGVudGljYXRpb25TY2hlbWUgc2NoZW1lID0ga0NGVVJMUHJvdGVjdGlvblNw
YWNlQXV0aGVudGljYXRpb25TY2hlbWVEZWZhdWx0OwogICAgIHN3aXRjaCAoY29yZVNwYWNlLmF1
dGhlbnRpY2F0aW9uU2NoZW1lKCkpIHsKLSAgICBjYXNlIFByb3RlY3Rpb25TcGFjZUF1dGhlbnRp
Y2F0aW9uU2NoZW1lRGVmYXVsdDoKKyAgICBjYXNlIFByb3RlY3Rpb25TcGFjZTo6QXV0aGVudGlj
YXRpb25TY2hlbWU6OkRlZmF1bHQ6CiAgICAgICAgIHNjaGVtZSA9IGtDRlVSTFByb3RlY3Rpb25T
cGFjZUF1dGhlbnRpY2F0aW9uU2NoZW1lRGVmYXVsdDsKICAgICAgICAgYnJlYWs7Ci0gICAgY2Fz
ZSBQcm90ZWN0aW9uU3BhY2VBdXRoZW50aWNhdGlvblNjaGVtZUhUVFBCYXNpYzoKKyAgICBjYXNl
IFByb3RlY3Rpb25TcGFjZTo6QXV0aGVudGljYXRpb25TY2hlbWU6OkhUVFBCYXNpYzoKICAgICAg
ICAgc2NoZW1lID0ga0NGVVJMUHJvdGVjdGlvblNwYWNlQXV0aGVudGljYXRpb25TY2hlbWVIVFRQ
QmFzaWM7CiAgICAgICAgIGJyZWFrOwotICAgIGNhc2UgUHJvdGVjdGlvblNwYWNlQXV0aGVudGlj
YXRpb25TY2hlbWVIVFRQRGlnZXN0OgorICAgIGNhc2UgUHJvdGVjdGlvblNwYWNlOjpBdXRoZW50
aWNhdGlvblNjaGVtZTo6SFRUUERpZ2VzdDoKICAgICAgICAgc2NoZW1lID0ga0NGVVJMUHJvdGVj
dGlvblNwYWNlQXV0aGVudGljYXRpb25TY2hlbWVIVFRQRGlnZXN0OwogICAgICAgICBicmVhazsK
LSAgICBjYXNlIFByb3RlY3Rpb25TcGFjZUF1dGhlbnRpY2F0aW9uU2NoZW1lSFRNTEZvcm06Cisg
ICAgY2FzZSBQcm90ZWN0aW9uU3BhY2U6OkF1dGhlbnRpY2F0aW9uU2NoZW1lOjpIVE1MRm9ybToK
ICAgICAgICAgc2NoZW1lID0ga0NGVVJMUHJvdGVjdGlvblNwYWNlQXV0aGVudGljYXRpb25TY2hl
bWVIVE1MRm9ybTsKICAgICAgICAgYnJlYWs7Ci0gICAgY2FzZSBQcm90ZWN0aW9uU3BhY2VBdXRo
ZW50aWNhdGlvblNjaGVtZU5UTE06CisgICAgY2FzZSBQcm90ZWN0aW9uU3BhY2U6OkF1dGhlbnRp
Y2F0aW9uU2NoZW1lOjpOVExNOgogICAgICAgICBzY2hlbWUgPSBrQ0ZVUkxQcm90ZWN0aW9uU3Bh
Y2VBdXRoZW50aWNhdGlvblNjaGVtZU5UTE07CiAgICAgICAgIGJyZWFrOwotICAgIGNhc2UgUHJv
dGVjdGlvblNwYWNlQXV0aGVudGljYXRpb25TY2hlbWVOZWdvdGlhdGU6CisgICAgY2FzZSBQcm90
ZWN0aW9uU3BhY2U6OkF1dGhlbnRpY2F0aW9uU2NoZW1lOjpOZWdvdGlhdGU6CiAgICAgICAgIHNj
aGVtZSA9IGtDRlVSTFByb3RlY3Rpb25TcGFjZUF1dGhlbnRpY2F0aW9uU2NoZW1lTmVnb3RpYXRl
OwogICAgICAgICBicmVhazsKICNpZiBVU0UoUFJPVEVDVElPTl9TUEFDRV9BVVRIX0NBTExCQUNL
KQotICAgIGNhc2UgUHJvdGVjdGlvblNwYWNlQXV0aGVudGljYXRpb25TY2hlbWVTZXJ2ZXJUcnVz
dEV2YWx1YXRpb25SZXF1ZXN0ZWQ6CisgICAgY2FzZSBQcm90ZWN0aW9uU3BhY2U6OkF1dGhlbnRp
Y2F0aW9uU2NoZW1lOjpTZXJ2ZXJUcnVzdEV2YWx1YXRpb25SZXF1ZXN0ZWQ6CiAgICAgICAgIHNj
aGVtZSA9IGtDRlVSTFByb3RlY3Rpb25TcGFjZUF1dGhlbnRpY2F0aW9uU2NoZW1lU2VydmVyVHJ1
c3RFdmFsdWF0aW9uUmVxdWVzdGVkOwogICAgICAgICBicmVhazsKLSAgICBjYXNlIFByb3RlY3Rp
b25TcGFjZUF1dGhlbnRpY2F0aW9uU2NoZW1lQ2xpZW50Q2VydGlmaWNhdGVSZXF1ZXN0ZWQ6Cisg
ICAgY2FzZSBQcm90ZWN0aW9uU3BhY2U6OkF1dGhlbnRpY2F0aW9uU2NoZW1lOjpDbGllbnRDZXJ0
aWZpY2F0ZVJlcXVlc3RlZDoKICAgICAgICAgc2NoZW1lID0ga0NGVVJMUHJvdGVjdGlvblNwYWNl
QXV0aGVudGljYXRpb25TY2hlbWVDbGllbnRDZXJ0aWZpY2F0ZVJlcXVlc3RlZDsKICAgICAgICAg
YnJlYWs7CiAjZW5kaWYKQEAgLTE5Miw2NyArMTkyLDY3IEBAIENyZWRlbnRpYWwgY29yZShDRlVS
TENyZWRlbnRpYWxSZWYgY2ZDcmVkZW50aWFsKQogCiBQcm90ZWN0aW9uU3BhY2UgY29yZShDRlVS
TFByb3RlY3Rpb25TcGFjZVJlZiBjZlNwYWNlKQogewotICAgIFByb3RlY3Rpb25TcGFjZVNlcnZl
clR5cGUgc2VydmVyVHlwZSA9IFByb3RlY3Rpb25TcGFjZVNlcnZlckhUVFA7CisgICAgYXV0byBz
ZXJ2ZXJUeXBlID0gUHJvdGVjdGlvblNwYWNlOjpTZXJ2ZXJUeXBlOjpIVFRQOwogICAgIAogICAg
IHN3aXRjaCAoQ0ZVUkxQcm90ZWN0aW9uU3BhY2VHZXRTZXJ2ZXJUeXBlKGNmU3BhY2UpKSB7CiAg
ICAgY2FzZSBrQ0ZVUkxQcm90ZWN0aW9uU3BhY2VTZXJ2ZXJIVFRQOgogICAgICAgICBicmVhazsK
ICAgICBjYXNlIGtDRlVSTFByb3RlY3Rpb25TcGFjZVNlcnZlckhUVFBTOgotICAgICAgICBzZXJ2
ZXJUeXBlID0gUHJvdGVjdGlvblNwYWNlU2VydmVySFRUUFM7CisgICAgICAgIHNlcnZlclR5cGUg
PSBQcm90ZWN0aW9uU3BhY2U6OlNlcnZlclR5cGU6OkhUVFBTOwogICAgICAgICBicmVhazsKICAg
ICBjYXNlIGtDRlVSTFByb3RlY3Rpb25TcGFjZVNlcnZlckZUUDoKLSAgICAgICAgc2VydmVyVHlw
ZSA9IFByb3RlY3Rpb25TcGFjZVNlcnZlckZUUDsKKyAgICAgICAgc2VydmVyVHlwZSA9IFByb3Rl
Y3Rpb25TcGFjZTo6U2VydmVyVHlwZTo6RlRQOwogICAgICAgICBicmVhazsKICAgICBjYXNlIGtD
RlVSTFByb3RlY3Rpb25TcGFjZVNlcnZlckZUUFM6Ci0gICAgICAgIHNlcnZlclR5cGUgPSBQcm90
ZWN0aW9uU3BhY2VTZXJ2ZXJGVFBTOworICAgICAgICBzZXJ2ZXJUeXBlID0gUHJvdGVjdGlvblNw
YWNlOjpTZXJ2ZXJUeXBlOjpGVFBTOwogICAgICAgICBicmVhazsKICAgICBjYXNlIGtDRlVSTFBy
b3RlY3Rpb25TcGFjZVByb3h5SFRUUDoKLSAgICAgICAgc2VydmVyVHlwZSA9IFByb3RlY3Rpb25T
cGFjZVByb3h5SFRUUDsKKyAgICAgICAgc2VydmVyVHlwZSA9IFByb3RlY3Rpb25TcGFjZTo6U2Vy
dmVyVHlwZTo6UHJveHlIVFRQOwogICAgICAgICBicmVhazsKICAgICBjYXNlIGtDRlVSTFByb3Rl
Y3Rpb25TcGFjZVByb3h5SFRUUFM6Ci0gICAgICAgIHNlcnZlclR5cGUgPSBQcm90ZWN0aW9uU3Bh
Y2VQcm94eUhUVFBTOworICAgICAgICBzZXJ2ZXJUeXBlID0gUHJvdGVjdGlvblNwYWNlOjpTZXJ2
ZXJUeXBlOjpQcm94eUhUVFBTOwogICAgICAgICBicmVhazsKICAgICBjYXNlIGtDRlVSTFByb3Rl
Y3Rpb25TcGFjZVByb3h5RlRQOgotICAgICAgICBzZXJ2ZXJUeXBlID0gUHJvdGVjdGlvblNwYWNl
UHJveHlGVFA7CisgICAgICAgIHNlcnZlclR5cGUgPSBQcm90ZWN0aW9uU3BhY2U6OlNlcnZlclR5
cGU6OlByb3h5RlRQOwogICAgICAgICBicmVhazsKICAgICBjYXNlIGtDRlVSTFByb3RlY3Rpb25T
cGFjZVByb3h5U09DS1M6Ci0gICAgICAgIHNlcnZlclR5cGUgPSBQcm90ZWN0aW9uU3BhY2VQcm94
eVNPQ0tTOworICAgICAgICBzZXJ2ZXJUeXBlID0gUHJvdGVjdGlvblNwYWNlOjpTZXJ2ZXJUeXBl
OjpQcm94eVNPQ0tTOwogICAgICAgICBicmVhazsKICAgICBkZWZhdWx0OgogICAgICAgICBBU1NF
UlRfTk9UX1JFQUNIRUQoKTsKICAgICB9CiAKLSAgICBQcm90ZWN0aW9uU3BhY2VBdXRoZW50aWNh
dGlvblNjaGVtZSBzY2hlbWUgPSBQcm90ZWN0aW9uU3BhY2VBdXRoZW50aWNhdGlvblNjaGVtZURl
ZmF1bHQ7CisgICAgYXV0byBzY2hlbWUgPSBQcm90ZWN0aW9uU3BhY2U6OkF1dGhlbnRpY2F0aW9u
U2NoZW1lOjpEZWZhdWx0OwogICAgIAogICAgIHN3aXRjaCAoQ0ZVUkxQcm90ZWN0aW9uU3BhY2VH
ZXRBdXRoZW50aWNhdGlvblNjaGVtZShjZlNwYWNlKSkgewogICAgIGNhc2Uga0NGVVJMUHJvdGVj
dGlvblNwYWNlQXV0aGVudGljYXRpb25TY2hlbWVEZWZhdWx0OgotICAgICAgICBzY2hlbWUgPSBQ
cm90ZWN0aW9uU3BhY2VBdXRoZW50aWNhdGlvblNjaGVtZURlZmF1bHQ7CisgICAgICAgIHNjaGVt
ZSA9IFByb3RlY3Rpb25TcGFjZTo6QXV0aGVudGljYXRpb25TY2hlbWU6OkRlZmF1bHQ7CiAgICAg
ICAgIGJyZWFrOwogICAgIGNhc2Uga0NGVVJMUHJvdGVjdGlvblNwYWNlQXV0aGVudGljYXRpb25T
Y2hlbWVIVFRQQmFzaWM6Ci0gICAgICAgIHNjaGVtZSA9IFByb3RlY3Rpb25TcGFjZUF1dGhlbnRp
Y2F0aW9uU2NoZW1lSFRUUEJhc2ljOworICAgICAgICBzY2hlbWUgPSBQcm90ZWN0aW9uU3BhY2U6
OkF1dGhlbnRpY2F0aW9uU2NoZW1lOjpIVFRQQmFzaWM7CiAgICAgICAgIGJyZWFrOwogICAgIGNh
c2Uga0NGVVJMUHJvdGVjdGlvblNwYWNlQXV0aGVudGljYXRpb25TY2hlbWVIVFRQRGlnZXN0Ogot
ICAgICAgICBzY2hlbWUgPSBQcm90ZWN0aW9uU3BhY2VBdXRoZW50aWNhdGlvblNjaGVtZUhUVFBE
aWdlc3Q7CisgICAgICAgIHNjaGVtZSA9IFByb3RlY3Rpb25TcGFjZTo6QXV0aGVudGljYXRpb25T
Y2hlbWU6OkhUVFBEaWdlc3Q7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2Uga0NGVVJMUHJvdGVj
dGlvblNwYWNlQXV0aGVudGljYXRpb25TY2hlbWVIVE1MRm9ybToKLSAgICAgICAgc2NoZW1lID0g
UHJvdGVjdGlvblNwYWNlQXV0aGVudGljYXRpb25TY2hlbWVIVE1MRm9ybTsKKyAgICAgICAgc2No
ZW1lID0gUHJvdGVjdGlvblNwYWNlOjpBdXRoZW50aWNhdGlvblNjaGVtZTo6SFRNTEZvcm07CiAg
ICAgICAgIGJyZWFrOwogICAgIGNhc2Uga0NGVVJMUHJvdGVjdGlvblNwYWNlQXV0aGVudGljYXRp
b25TY2hlbWVOVExNOgotICAgICAgICBzY2hlbWUgPSBQcm90ZWN0aW9uU3BhY2VBdXRoZW50aWNh
dGlvblNjaGVtZU5UTE07CisgICAgICAgIHNjaGVtZSA9IFByb3RlY3Rpb25TcGFjZTo6QXV0aGVu
dGljYXRpb25TY2hlbWU6Ok5UTE07CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2Uga0NGVVJMUHJv
dGVjdGlvblNwYWNlQXV0aGVudGljYXRpb25TY2hlbWVOZWdvdGlhdGU6Ci0gICAgICAgIHNjaGVt
ZSA9IFByb3RlY3Rpb25TcGFjZUF1dGhlbnRpY2F0aW9uU2NoZW1lTmVnb3RpYXRlOworICAgICAg
ICBzY2hlbWUgPSBQcm90ZWN0aW9uU3BhY2U6OkF1dGhlbnRpY2F0aW9uU2NoZW1lOjpOZWdvdGlh
dGU7CiAgICAgICAgIGJyZWFrOwogI2lmIFVTRShQUk9URUNUSU9OX1NQQUNFX0FVVEhfQ0FMTEJB
Q0spCiAgICAgY2FzZSBrQ0ZVUkxQcm90ZWN0aW9uU3BhY2VBdXRoZW50aWNhdGlvblNjaGVtZUNs
aWVudENlcnRpZmljYXRlUmVxdWVzdGVkOgotICAgICAgICBzY2hlbWUgPSBQcm90ZWN0aW9uU3Bh
Y2VBdXRoZW50aWNhdGlvblNjaGVtZUNsaWVudENlcnRpZmljYXRlUmVxdWVzdGVkOworICAgICAg
ICBzY2hlbWUgPSBQcm90ZWN0aW9uU3BhY2U6OkF1dGhlbnRpY2F0aW9uU2NoZW1lOjpDbGllbnRD
ZXJ0aWZpY2F0ZVJlcXVlc3RlZDsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBrQ0ZVUkxQcm90
ZWN0aW9uU3BhY2VBdXRoZW50aWNhdGlvblNjaGVtZVNlcnZlclRydXN0RXZhbHVhdGlvblJlcXVl
c3RlZDoKLSAgICAgICAgc2NoZW1lID0gUHJvdGVjdGlvblNwYWNlQXV0aGVudGljYXRpb25TY2hl
bWVTZXJ2ZXJUcnVzdEV2YWx1YXRpb25SZXF1ZXN0ZWQ7CisgICAgICAgIHNjaGVtZSA9IFByb3Rl
Y3Rpb25TcGFjZTo6QXV0aGVudGljYXRpb25TY2hlbWU6OlNlcnZlclRydXN0RXZhbHVhdGlvblJl
cXVlc3RlZDsKICAgICAgICAgYnJlYWs7CiAjZW5kaWYKICAgICBkZWZhdWx0OgotICAgICAgICBz
Y2hlbWUgPSBQcm90ZWN0aW9uU3BhY2VBdXRoZW50aWNhdGlvblNjaGVtZVVua25vd247CisgICAg
ICAgIHNjaGVtZSA9IFByb3RlY3Rpb25TcGFjZTo6QXV0aGVudGljYXRpb25TY2hlbWU6OlVua25v
d247CiAgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwogICAgIH0KICAgICAgICAgCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2NmL1Byb3RlY3Rpb25TcGFj
ZUNGTmV0LmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2NmL1Byb3RlY3Rpb25T
cGFjZUNGTmV0LmgKaW5kZXggZjBhMTlkMzAyMzJjY2Y3MjkwMzIwOGYwMWMwYWZiMmZjZmVhMTk1
OC4uOTVjYmVhMzAwZWMyZGNkYjA3ODU0M2FhNGYwMjBmMjU1ZDQ4ZDhlMyAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jZi9Qcm90ZWN0aW9uU3BhY2VDRk5ldC5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY2YvUHJvdGVjdGlvblNwYWNl
Q0ZOZXQuaApAQCAtMzYsNyArMzYsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiBjbGFzcyBQcm90
ZWN0aW9uU3BhY2UgOiBwdWJsaWMgUHJvdGVjdGlvblNwYWNlQmFzZSB7CiBwdWJsaWM6CiAgICAg
UHJvdGVjdGlvblNwYWNlKCkgOiBQcm90ZWN0aW9uU3BhY2VCYXNlKCkgeyB9Ci0gICAgUHJvdGVj
dGlvblNwYWNlKGNvbnN0IFN0cmluZyYgaG9zdCwgaW50IHBvcnQsIFByb3RlY3Rpb25TcGFjZVNl
cnZlclR5cGUgc2VydmVyVHlwZSwgY29uc3QgU3RyaW5nJiByZWFsbSwgUHJvdGVjdGlvblNwYWNl
QXV0aGVudGljYXRpb25TY2hlbWUgYXV0aGVudGljYXRpb25TY2hlbWUpCisgICAgUHJvdGVjdGlv
blNwYWNlKGNvbnN0IFN0cmluZyYgaG9zdCwgaW50IHBvcnQsIFNlcnZlclR5cGUgc2VydmVyVHlw
ZSwgY29uc3QgU3RyaW5nJiByZWFsbSwgQXV0aGVudGljYXRpb25TY2hlbWUgYXV0aGVudGljYXRp
b25TY2hlbWUpCiAgICAgICAgIDogUHJvdGVjdGlvblNwYWNlQmFzZShob3N0LCBwb3J0LCBzZXJ2
ZXJUeXBlLCByZWFsbSwgYXV0aGVudGljYXRpb25TY2hlbWUpCiAgICAgewogICAgIH0KZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY2YvUmVzb3VyY2VIYW5kbGVD
Rk5ldC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2NmL1Jlc291cmNlSGFu
ZGxlQ0ZOZXQuY3BwCmluZGV4IDU2NzFiNDNlZGE3MTdjMDZiMzQzNzRlYmNjMWU1MTRkN2EyMzk4
OWQuLjU0M2JmMmUxMzhlMzZiYTAwYTRkMzgwZjZkN2E5NWRjYTkwYjQ3NDcgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY2YvUmVzb3VyY2VIYW5kbGVDRk5ldC5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jZi9SZXNvdXJjZUhhbmRs
ZUNGTmV0LmNwcApAQCAtNDI1LDcgKzQyNSw3IEBAIHZvaWQgUmVzb3VyY2VIYW5kbGU6OnJlY2Vp
dmVkQ3JlZGVudGlhbChjb25zdCBBdXRoZW50aWNhdGlvbkNoYWxsZW5nZSYgY2hhbGxlbmdlCiAg
ICAgICAgIHJldHVybjsKICAgICB9CiAKLSAgICBpZiAoY3JlZGVudGlhbC5wZXJzaXN0ZW5jZSgp
ID09IENyZWRlbnRpYWxQZXJzaXN0ZW5jZUZvclNlc3Npb24gJiYgY2hhbGxlbmdlLnByb3RlY3Rp
b25TcGFjZSgpLmF1dGhlbnRpY2F0aW9uU2NoZW1lKCkgIT0gUHJvdGVjdGlvblNwYWNlQXV0aGVu
dGljYXRpb25TY2hlbWVTZXJ2ZXJUcnVzdEV2YWx1YXRpb25SZXF1ZXN0ZWQpIHsKKyAgICBpZiAo
Y3JlZGVudGlhbC5wZXJzaXN0ZW5jZSgpID09IENyZWRlbnRpYWxQZXJzaXN0ZW5jZUZvclNlc3Np
b24gJiYgY2hhbGxlbmdlLnByb3RlY3Rpb25TcGFjZSgpLmF1dGhlbnRpY2F0aW9uU2NoZW1lKCkg
IT0gUHJvdGVjdGlvblNwYWNlOjpBdXRoZW50aWNhdGlvblNjaGVtZTo6U2VydmVyVHJ1c3RFdmFs
dWF0aW9uUmVxdWVzdGVkKSB7CiAgICAgICAgIC8vIE1hbmFnZSBwZXItc2Vzc2lvbiBjcmVkZW50
aWFscyBpbnRlcm5hbGx5LCBiZWNhdXNlIG9uY2UgTlNVUkxDcmVkZW50aWFsUGVyc2lzdGVuY2VQ
ZXJTZXNzaW9uIGlzIHVzZWQsIHRoZXJlIGlzIG5vIHdheQogICAgICAgICAvLyB0byBpZ25vcmUg
aXQgZm9yIGEgcGFydGljdWxhciByZXF1ZXN0IChzaG9ydCBvZiByZW1vdmluZyBpdCBhbHRvZ2V0
aGVyKS4KICAgICAgICAgQ3JlZGVudGlhbCB3ZWJDcmVkZW50aWFsKGNyZWRlbnRpYWwsIENyZWRl
bnRpYWxQZXJzaXN0ZW5jZU5vbmUpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vbmV0d29yay9jZi9Tb2NrZXRTdHJlYW1IYW5kbGVJbXBsQ0ZOZXQuY3BwIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vbmV0d29yay9jZi9Tb2NrZXRTdHJlYW1IYW5kbGVJbXBsQ0ZOZXQuY3Bw
CmluZGV4IDMxMWFlZjJkODBmZTczMzZjZDhlNTExM2MzOWQ5NTBkYjhmNDM5NGMuLjY5NjFlNzk4
MzA2N2ExODY1YjRhZmJlM2ZhN2FjNWNlNjk1YTRkMzUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL25ldHdvcmsvY2YvU29ja2V0U3RyZWFtSGFuZGxlSW1wbENGTmV0LmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2NmL1NvY2tldFN0cmVhbUhhbmRs
ZUltcGxDRk5ldC5jcHAKQEAgLTM5OSwxOCArMzk5LDE4IEBAIGJvb2wgU29ja2V0U3RyZWFtSGFu
ZGxlSW1wbDo6Z2V0U3RvcmVkQ09OTkVDVFByb3h5Q3JlZGVudGlhbHMoY29uc3QgUHJvdGVjdGlv
blNwCiAgICAgcmV0dXJuIHRydWU7CiB9CiAKLXN0YXRpYyBQcm90ZWN0aW9uU3BhY2VBdXRoZW50
aWNhdGlvblNjaGVtZSBhdXRoZW50aWNhdGlvblNjaGVtZUZyb21BdXRoZW50aWNhdGlvbk1ldGhv
ZChDRlN0cmluZ1JlZiBtZXRob2QpCitzdGF0aWMgUHJvdGVjdGlvblNwYWNlOjpBdXRoZW50aWNh
dGlvblNjaGVtZSBhdXRoZW50aWNhdGlvblNjaGVtZUZyb21BdXRoZW50aWNhdGlvbk1ldGhvZChD
RlN0cmluZ1JlZiBtZXRob2QpCiB7CiAgICAgaWYgKENGRXF1YWwobWV0aG9kLCBrQ0ZIVFRQQXV0
aGVudGljYXRpb25TY2hlbWVCYXNpYykpCi0gICAgICAgIHJldHVybiBQcm90ZWN0aW9uU3BhY2VB
dXRoZW50aWNhdGlvblNjaGVtZUhUVFBCYXNpYzsKKyAgICAgICAgcmV0dXJuIFByb3RlY3Rpb25T
cGFjZTo6QXV0aGVudGljYXRpb25TY2hlbWU6OkhUVFBCYXNpYzsKICAgICBpZiAoQ0ZFcXVhbCht
ZXRob2QsIGtDRkhUVFBBdXRoZW50aWNhdGlvblNjaGVtZURpZ2VzdCkpCi0gICAgICAgIHJldHVy
biBQcm90ZWN0aW9uU3BhY2VBdXRoZW50aWNhdGlvblNjaGVtZUhUVFBEaWdlc3Q7CisgICAgICAg
IHJldHVybiBQcm90ZWN0aW9uU3BhY2U6OkF1dGhlbnRpY2F0aW9uU2NoZW1lOjpIVFRQRGlnZXN0
OwogICAgIGlmIChDRkVxdWFsKG1ldGhvZCwga0NGSFRUUEF1dGhlbnRpY2F0aW9uU2NoZW1lTlRM
TSkpCi0gICAgICAgIHJldHVybiBQcm90ZWN0aW9uU3BhY2VBdXRoZW50aWNhdGlvblNjaGVtZU5U
TE07CisgICAgICAgIHJldHVybiBQcm90ZWN0aW9uU3BhY2U6OkF1dGhlbnRpY2F0aW9uU2NoZW1l
OjpOVExNOwogICAgIGlmIChDRkVxdWFsKG1ldGhvZCwga0NGSFRUUEF1dGhlbnRpY2F0aW9uU2No
ZW1lTmVnb3RpYXRlKSkKLSAgICAgICAgcmV0dXJuIFByb3RlY3Rpb25TcGFjZUF1dGhlbnRpY2F0
aW9uU2NoZW1lTmVnb3RpYXRlOworICAgICAgICByZXR1cm4gUHJvdGVjdGlvblNwYWNlOjpBdXRo
ZW50aWNhdGlvblNjaGVtZTo6TmVnb3RpYXRlOwogICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwot
ICAgIHJldHVybiBQcm90ZWN0aW9uU3BhY2VBdXRoZW50aWNhdGlvblNjaGVtZVVua25vd247Cisg
ICAgcmV0dXJuIFByb3RlY3Rpb25TcGFjZTo6QXV0aGVudGljYXRpb25TY2hlbWU6OlVua25vd247
CiB9CiAgICAgCiBzdGF0aWMgdm9pZCBzZXRDT05ORUNUUHJveHlBdXRob3JpemF0aW9uRm9yU3Ry
ZWFtKENGUmVhZFN0cmVhbVJlZiBzdHJlYW0sIENGU3RyaW5nUmVmIHByb3h5QXV0aG9yaXphdGlv
blN0cmluZykKQEAgLTQ0Nyw3ICs0NDcsNyBAQCB2b2lkIFNvY2tldFN0cmVhbUhhbmRsZUltcGw6
OmFkZENPTk5FQ1RDcmVkZW50aWFscyhDRkhUVFBNZXNzYWdlUmVmIHByb3h5UmVzcG9ucwogICAg
ICAgICByZXR1cm47CiAgICAgfQogCi0gICAgUHJvdGVjdGlvblNwYWNlIHByb3RlY3Rpb25TcGFj
ZShTdHJpbmcobV9wcm94eUhvc3QuZ2V0KCkpLCBwb3J0LCBQcm90ZWN0aW9uU3BhY2VQcm94eUhU
VFBTLCBTdHJpbmcocmVhbG1DRi5nZXQoKSksIGF1dGhlbnRpY2F0aW9uU2NoZW1lRnJvbUF1dGhl
bnRpY2F0aW9uTWV0aG9kKG1ldGhvZENGLmdldCgpKSk7CisgICAgUHJvdGVjdGlvblNwYWNlIHBy
b3RlY3Rpb25TcGFjZShTdHJpbmcobV9wcm94eUhvc3QuZ2V0KCkpLCBwb3J0LCBQcm90ZWN0aW9u
U3BhY2U6OlNlcnZlclR5cGU6OlByb3h5SFRUUFMsIFN0cmluZyhyZWFsbUNGLmdldCgpKSwgYXV0
aGVudGljYXRpb25TY2hlbWVGcm9tQXV0aGVudGljYXRpb25NZXRob2QobWV0aG9kQ0YuZ2V0KCkp
KTsKICAgICBTdHJpbmcgbG9naW47CiAgICAgU3RyaW5nIHBhc3N3b3JkOwogICAgIGlmICghbV9z
ZW50U3RvcmVkQ3JlZGVudGlhbHMgJiYgZ2V0U3RvcmVkQ09OTkVDVFByb3h5Q3JlZGVudGlhbHMo
cHJvdGVjdGlvblNwYWNlLCBsb2dpbiwgcGFzc3dvcmQpKSB7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2NvY29hL1Byb3RlY3Rpb25TcGFjZUNvY29hLmggYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2NvY29hL1Byb3RlY3Rpb25TcGFjZUNvY29h
LmgKaW5kZXggY2Y3NjY5NzliODVhYWFkNDJjYzEyNTY5YmFhMjRjOGRlNGU2Zjc3Zi4uOGM3OGRi
N2ZhZWZkNzFmZDdjZWY2ZmU1NmQ2NDkyYWVlZWQ0NmQzYSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vbmV0d29yay9jb2NvYS9Qcm90ZWN0aW9uU3BhY2VDb2NvYS5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY29jb2EvUHJvdGVjdGlvblNwYWNlQ29j
b2EuaApAQCAtMzksNyArMzksNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiBjbGFzcyBQcm90ZWN0
aW9uU3BhY2UgOiBwdWJsaWMgUHJvdGVjdGlvblNwYWNlQmFzZSB7CiBwdWJsaWM6CiAgICAgUHJv
dGVjdGlvblNwYWNlKCkgOiBQcm90ZWN0aW9uU3BhY2VCYXNlKCkgeyB9Ci0gICAgUHJvdGVjdGlv
blNwYWNlKGNvbnN0IFN0cmluZyYgaG9zdCwgaW50IHBvcnQsIFByb3RlY3Rpb25TcGFjZVNlcnZl
clR5cGUgc2VydmVyVHlwZSwgY29uc3QgU3RyaW5nJiByZWFsbSwgUHJvdGVjdGlvblNwYWNlQXV0
aGVudGljYXRpb25TY2hlbWUgYXV0aGVudGljYXRpb25TY2hlbWUpCisgICAgUHJvdGVjdGlvblNw
YWNlKGNvbnN0IFN0cmluZyYgaG9zdCwgaW50IHBvcnQsIFNlcnZlclR5cGUgc2VydmVyVHlwZSwg
Y29uc3QgU3RyaW5nJiByZWFsbSwgQXV0aGVudGljYXRpb25TY2hlbWUgYXV0aGVudGljYXRpb25T
Y2hlbWUpCiAgICAgICAgIDogUHJvdGVjdGlvblNwYWNlQmFzZShob3N0LCBwb3J0LCBzZXJ2ZXJU
eXBlLCByZWFsbSwgYXV0aGVudGljYXRpb25TY2hlbWUpCiAgICAgewogICAgIH0KZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY29jb2EvUHJvdGVjdGlvblNwYWNl
Q29jb2EubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2NvY29hL1Byb3RlY3Rp
b25TcGFjZUNvY29hLm1tCmluZGV4IDYyMThjZWFiMmZiMzIyNTE3NzBmYjEyZTAxNDJmY2Q5ZWYx
NmQyNGQuLmQ1NmQwZTIxYjJhYTdiYzA4OWM0MGIxMTAyNjkyNzNmZmNiMDUyN2YgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY29jb2EvUHJvdGVjdGlvblNwYWNl
Q29jb2EubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jb2NvYS9Qcm90
ZWN0aW9uU3BhY2VDb2NvYS5tbQpAQCAtMzAsNjMgKzMwLDYzIEBACiAKIG5hbWVzcGFjZSBXZWJD
b3JlIHsKIAotc3RhdGljIFByb3RlY3Rpb25TcGFjZVNlcnZlclR5cGUgdHlwZShOU1VSTFByb3Rl
Y3Rpb25TcGFjZSAqc3BhY2UpCitzdGF0aWMgUHJvdGVjdGlvblNwYWNlOjpTZXJ2ZXJUeXBlIHR5
cGUoTlNVUkxQcm90ZWN0aW9uU3BhY2UgKnNwYWNlKQogewogICAgIGlmIChbc3BhY2UgaXNQcm94
eV0pIHsKICAgICAgICAgTlNTdHJpbmcgKnByb3h5VHlwZSA9IHNwYWNlLnByb3h5VHlwZTsKICAg
ICAgICAgaWYgKFtwcm94eVR5cGUgaXNFcXVhbFRvU3RyaW5nOk5TVVJMUHJvdGVjdGlvblNwYWNl
SFRUUFByb3h5XSkKLSAgICAgICAgICAgIHJldHVybiBQcm90ZWN0aW9uU3BhY2VQcm94eUhUVFA7
CisgICAgICAgICAgICByZXR1cm4gUHJvdGVjdGlvblNwYWNlOjpTZXJ2ZXJUeXBlOjpQcm94eUhU
VFA7CiAgICAgICAgIGlmIChbcHJveHlUeXBlIGlzRXF1YWxUb1N0cmluZzpOU1VSTFByb3RlY3Rp
b25TcGFjZUhUVFBTUHJveHldKQotICAgICAgICAgICAgcmV0dXJuIFByb3RlY3Rpb25TcGFjZVBy
b3h5SFRUUFM7CisgICAgICAgICAgICByZXR1cm4gUHJvdGVjdGlvblNwYWNlOjpTZXJ2ZXJUeXBl
OjpQcm94eUhUVFBTOwogICAgICAgICBpZiAoW3Byb3h5VHlwZSBpc0VxdWFsVG9TdHJpbmc6TlNV
UkxQcm90ZWN0aW9uU3BhY2VGVFBQcm94eV0pCi0gICAgICAgICAgICByZXR1cm4gUHJvdGVjdGlv
blNwYWNlUHJveHlGVFA7CisgICAgICAgICAgICByZXR1cm4gUHJvdGVjdGlvblNwYWNlOjpTZXJ2
ZXJUeXBlOjpQcm94eUZUUDsKICAgICAgICAgaWYgKFtwcm94eVR5cGUgaXNFcXVhbFRvU3RyaW5n
Ok5TVVJMUHJvdGVjdGlvblNwYWNlU09DS1NQcm94eV0pCi0gICAgICAgICAgICByZXR1cm4gUHJv
dGVjdGlvblNwYWNlUHJveHlTT0NLUzsKKyAgICAgICAgICAgIHJldHVybiBQcm90ZWN0aW9uU3Bh
Y2U6OlNlcnZlclR5cGU6OlByb3h5U09DS1M7CiAKICAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVE
KCk7Ci0gICAgICAgIHJldHVybiBQcm90ZWN0aW9uU3BhY2VQcm94eUhUVFA7CisgICAgICAgIHJl
dHVybiBQcm90ZWN0aW9uU3BhY2U6OlNlcnZlclR5cGU6OlByb3h5SFRUUDsKICAgICB9CiAKICAg
ICBOU1N0cmluZyAqcHJvdG9jb2wgPSBzcGFjZS5wcm90b2NvbDsKICAgICBpZiAoW3Byb3RvY29s
IGNhc2VJbnNlbnNpdGl2ZUNvbXBhcmU6QCJodHRwIl0gPT0gTlNPcmRlcmVkU2FtZSkKLSAgICAg
ICAgcmV0dXJuIFByb3RlY3Rpb25TcGFjZVNlcnZlckhUVFA7CisgICAgICAgIHJldHVybiBQcm90
ZWN0aW9uU3BhY2U6OlNlcnZlclR5cGU6OkhUVFA7CiAgICAgaWYgKFtwcm90b2NvbCBjYXNlSW5z
ZW5zaXRpdmVDb21wYXJlOkAiaHR0cHMiXSA9PSBOU09yZGVyZWRTYW1lKQotICAgICAgICByZXR1
cm4gUHJvdGVjdGlvblNwYWNlU2VydmVySFRUUFM7CisgICAgICAgIHJldHVybiBQcm90ZWN0aW9u
U3BhY2U6OlNlcnZlclR5cGU6OkhUVFBTOwogICAgIGlmIChbcHJvdG9jb2wgY2FzZUluc2Vuc2l0
aXZlQ29tcGFyZTpAImZ0cCJdID09IE5TT3JkZXJlZFNhbWUpCi0gICAgICAgIHJldHVybiBQcm90
ZWN0aW9uU3BhY2VTZXJ2ZXJGVFA7CisgICAgICAgIHJldHVybiBQcm90ZWN0aW9uU3BhY2U6OlNl
cnZlclR5cGU6OkZUUDsKICAgICBpZiAoW3Byb3RvY29sIGNhc2VJbnNlbnNpdGl2ZUNvbXBhcmU6
QCJmdHBzIl0gPT0gTlNPcmRlcmVkU2FtZSkKLSAgICAgICAgcmV0dXJuIFByb3RlY3Rpb25TcGFj
ZVNlcnZlckZUUFM7CisgICAgICAgIHJldHVybiBQcm90ZWN0aW9uU3BhY2U6OlNlcnZlclR5cGU6
OkZUUFM7CiAKICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKLSAgICByZXR1cm4gUHJvdGVjdGlv
blNwYWNlU2VydmVySFRUUDsKKyAgICByZXR1cm4gUHJvdGVjdGlvblNwYWNlOjpTZXJ2ZXJUeXBl
OjpIVFRQOwogfQogCi1zdGF0aWMgUHJvdGVjdGlvblNwYWNlQXV0aGVudGljYXRpb25TY2hlbWUg
c2NoZW1lKE5TVVJMUHJvdGVjdGlvblNwYWNlICpzcGFjZSkKK3N0YXRpYyBQcm90ZWN0aW9uU3Bh
Y2U6OkF1dGhlbnRpY2F0aW9uU2NoZW1lIHNjaGVtZShOU1VSTFByb3RlY3Rpb25TcGFjZSAqc3Bh
Y2UpCiB7CiAgICAgTlNTdHJpbmcgKm1ldGhvZCA9IHNwYWNlLmF1dGhlbnRpY2F0aW9uTWV0aG9k
OwogICAgIGlmIChbbWV0aG9kIGlzRXF1YWxUb1N0cmluZzpOU1VSTEF1dGhlbnRpY2F0aW9uTWV0
aG9kRGVmYXVsdF0pCi0gICAgICAgIHJldHVybiBQcm90ZWN0aW9uU3BhY2VBdXRoZW50aWNhdGlv
blNjaGVtZURlZmF1bHQ7CisgICAgICAgIHJldHVybiBQcm90ZWN0aW9uU3BhY2U6OkF1dGhlbnRp
Y2F0aW9uU2NoZW1lOjpEZWZhdWx0OwogICAgIGlmIChbbWV0aG9kIGlzRXF1YWxUb1N0cmluZzpO
U1VSTEF1dGhlbnRpY2F0aW9uTWV0aG9kSFRUUEJhc2ljXSkKLSAgICAgICAgcmV0dXJuIFByb3Rl
Y3Rpb25TcGFjZUF1dGhlbnRpY2F0aW9uU2NoZW1lSFRUUEJhc2ljOworICAgICAgICByZXR1cm4g
UHJvdGVjdGlvblNwYWNlOjpBdXRoZW50aWNhdGlvblNjaGVtZTo6SFRUUEJhc2ljOwogICAgIGlm
IChbbWV0aG9kIGlzRXF1YWxUb1N0cmluZzpOU1VSTEF1dGhlbnRpY2F0aW9uTWV0aG9kSFRUUERp
Z2VzdF0pCi0gICAgICAgIHJldHVybiBQcm90ZWN0aW9uU3BhY2VBdXRoZW50aWNhdGlvblNjaGVt
ZUhUVFBEaWdlc3Q7CisgICAgICAgIHJldHVybiBQcm90ZWN0aW9uU3BhY2U6OkF1dGhlbnRpY2F0
aW9uU2NoZW1lOjpIVFRQRGlnZXN0OwogICAgIGlmIChbbWV0aG9kIGlzRXF1YWxUb1N0cmluZzpO
U1VSTEF1dGhlbnRpY2F0aW9uTWV0aG9kSFRNTEZvcm1dKQotICAgICAgICByZXR1cm4gUHJvdGVj
dGlvblNwYWNlQXV0aGVudGljYXRpb25TY2hlbWVIVE1MRm9ybTsKKyAgICAgICAgcmV0dXJuIFBy
b3RlY3Rpb25TcGFjZTo6QXV0aGVudGljYXRpb25TY2hlbWU6OkhUTUxGb3JtOwogICAgIGlmIChb
bWV0aG9kIGlzRXF1YWxUb1N0cmluZzpOU1VSTEF1dGhlbnRpY2F0aW9uTWV0aG9kTlRMTV0pCi0g
ICAgICAgIHJldHVybiBQcm90ZWN0aW9uU3BhY2VBdXRoZW50aWNhdGlvblNjaGVtZU5UTE07Cisg
ICAgICAgIHJldHVybiBQcm90ZWN0aW9uU3BhY2U6OkF1dGhlbnRpY2F0aW9uU2NoZW1lOjpOVExN
OwogICAgIGlmIChbbWV0aG9kIGlzRXF1YWxUb1N0cmluZzpOU1VSTEF1dGhlbnRpY2F0aW9uTWV0
aG9kTmVnb3RpYXRlXSkKLSAgICAgICAgcmV0dXJuIFByb3RlY3Rpb25TcGFjZUF1dGhlbnRpY2F0
aW9uU2NoZW1lTmVnb3RpYXRlOworICAgICAgICByZXR1cm4gUHJvdGVjdGlvblNwYWNlOjpBdXRo
ZW50aWNhdGlvblNjaGVtZTo6TmVnb3RpYXRlOwogI2lmIFVTRShQUk9URUNUSU9OX1NQQUNFX0FV
VEhfQ0FMTEJBQ0spCiAgICAgaWYgKFttZXRob2QgaXNFcXVhbFRvU3RyaW5nOk5TVVJMQXV0aGVu
dGljYXRpb25NZXRob2RDbGllbnRDZXJ0aWZpY2F0ZV0pCi0gICAgICAgIHJldHVybiBQcm90ZWN0
aW9uU3BhY2VBdXRoZW50aWNhdGlvblNjaGVtZUNsaWVudENlcnRpZmljYXRlUmVxdWVzdGVkOwor
ICAgICAgICByZXR1cm4gUHJvdGVjdGlvblNwYWNlOjpBdXRoZW50aWNhdGlvblNjaGVtZTo6Q2xp
ZW50Q2VydGlmaWNhdGVSZXF1ZXN0ZWQ7CiAgICAgaWYgKFttZXRob2QgaXNFcXVhbFRvU3RyaW5n
Ok5TVVJMQXV0aGVudGljYXRpb25NZXRob2RTZXJ2ZXJUcnVzdF0pCi0gICAgICAgIHJldHVybiBQ
cm90ZWN0aW9uU3BhY2VBdXRoZW50aWNhdGlvblNjaGVtZVNlcnZlclRydXN0RXZhbHVhdGlvblJl
cXVlc3RlZDsKKyAgICAgICAgcmV0dXJuIFByb3RlY3Rpb25TcGFjZTo6QXV0aGVudGljYXRpb25T
Y2hlbWU6OlNlcnZlclRydXN0RXZhbHVhdGlvblJlcXVlc3RlZDsKICNlbmRpZgogICAgIGlmIChb
bWV0aG9kIGlzRXF1YWxUb1N0cmluZzpOU1VSTEF1dGhlbnRpY2F0aW9uTWV0aG9kT0F1dGhdKQot
ICAgICAgICByZXR1cm4gUHJvdGVjdGlvblNwYWNlQXV0aGVudGljYXRpb25TY2hlbWVPQXV0aDsK
KyAgICAgICAgcmV0dXJuIFByb3RlY3Rpb25TcGFjZTo6QXV0aGVudGljYXRpb25TY2hlbWU6Ok9B
dXRoOwogCiAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7Ci0gICAgcmV0dXJuIFByb3RlY3Rpb25T
cGFjZUF1dGhlbnRpY2F0aW9uU2NoZW1lVW5rbm93bjsKKyAgICByZXR1cm4gUHJvdGVjdGlvblNw
YWNlOjpBdXRoZW50aWNhdGlvblNjaGVtZTo6VW5rbm93bjsKIH0KIAogUHJvdGVjdGlvblNwYWNl
OjpQcm90ZWN0aW9uU3BhY2UoTlNVUkxQcm90ZWN0aW9uU3BhY2UgKnNwYWNlKQpAQCAtMTAzLDI4
ICsxMDMsMjggQEAgTlNVUkxQcm90ZWN0aW9uU3BhY2UgKlByb3RlY3Rpb25TcGFjZTo6bnNTcGFj
ZSgpIGNvbnN0CiAgICAgTlNTdHJpbmcgKnByb3h5VHlwZSA9IG5pbDsKICAgICBOU1N0cmluZyAq
cHJvdG9jb2wgPSBuaWw7CiAgICAgc3dpdGNoIChzZXJ2ZXJUeXBlKCkpIHsKLSAgICBjYXNlIFBy
b3RlY3Rpb25TcGFjZVNlcnZlckhUVFA6CisgICAgY2FzZSBQcm90ZWN0aW9uU3BhY2U6OlNlcnZl
clR5cGU6OkhUVFA6CiAgICAgICAgIHByb3RvY29sID0gQCJodHRwIjsKICAgICAgICAgYnJlYWs7
Ci0gICAgY2FzZSBQcm90ZWN0aW9uU3BhY2VTZXJ2ZXJIVFRQUzoKKyAgICBjYXNlIFByb3RlY3Rp
b25TcGFjZTo6U2VydmVyVHlwZTo6SFRUUFM6CiAgICAgICAgIHByb3RvY29sID0gQCJodHRwcyI7
CiAgICAgICAgIGJyZWFrOwotICAgIGNhc2UgUHJvdGVjdGlvblNwYWNlU2VydmVyRlRQOgorICAg
IGNhc2UgUHJvdGVjdGlvblNwYWNlOjpTZXJ2ZXJUeXBlOjpGVFA6CiAgICAgICAgIHByb3RvY29s
ID0gQCJmdHAiOwogICAgICAgICBicmVhazsKLSAgICBjYXNlIFByb3RlY3Rpb25TcGFjZVNlcnZl
ckZUUFM6CisgICAgY2FzZSBQcm90ZWN0aW9uU3BhY2U6OlNlcnZlclR5cGU6OkZUUFM6CiAgICAg
ICAgIHByb3RvY29sID0gQCJmdHBzIjsKICAgICAgICAgYnJlYWs7Ci0gICAgY2FzZSBQcm90ZWN0
aW9uU3BhY2VQcm94eUhUVFA6CisgICAgY2FzZSBQcm90ZWN0aW9uU3BhY2U6OlNlcnZlclR5cGU6
OlByb3h5SFRUUDoKICAgICAgICAgcHJveHlUeXBlID0gTlNVUkxQcm90ZWN0aW9uU3BhY2VIVFRQ
UHJveHk7CiAgICAgICAgIGJyZWFrOwotICAgIGNhc2UgUHJvdGVjdGlvblNwYWNlUHJveHlIVFRQ
UzoKKyAgICBjYXNlIFByb3RlY3Rpb25TcGFjZTo6U2VydmVyVHlwZTo6UHJveHlIVFRQUzoKICAg
ICAgICAgcHJveHlUeXBlID0gTlNVUkxQcm90ZWN0aW9uU3BhY2VIVFRQU1Byb3h5OwogICAgICAg
ICBicmVhazsKLSAgICBjYXNlIFByb3RlY3Rpb25TcGFjZVByb3h5RlRQOgorICAgIGNhc2UgUHJv
dGVjdGlvblNwYWNlOjpTZXJ2ZXJUeXBlOjpQcm94eUZUUDoKICAgICAgICAgcHJveHlUeXBlID0g
TlNVUkxQcm90ZWN0aW9uU3BhY2VGVFBQcm94eTsKICAgICAgICAgYnJlYWs7Ci0gICAgY2FzZSBQ
cm90ZWN0aW9uU3BhY2VQcm94eVNPQ0tTOgorICAgIGNhc2UgUHJvdGVjdGlvblNwYWNlOjpTZXJ2
ZXJUeXBlOjpQcm94eVNPQ0tTOgogICAgICAgICBwcm94eVR5cGUgPSBOU1VSTFByb3RlY3Rpb25T
cGFjZVNPQ0tTUHJveHk7CiAgICAgICAgIGJyZWFrOwogICAgIGRlZmF1bHQ6CkBAIC0xMzMsMzMg
KzEzMywzMyBAQCBOU1VSTFByb3RlY3Rpb25TcGFjZSAqUHJvdGVjdGlvblNwYWNlOjpuc1NwYWNl
KCkgY29uc3QKICAgCiAgICAgTlNTdHJpbmcgKm1ldGhvZCA9IG5pbDsKICAgICBzd2l0Y2ggKGF1
dGhlbnRpY2F0aW9uU2NoZW1lKCkpIHsKLSAgICBjYXNlIFByb3RlY3Rpb25TcGFjZUF1dGhlbnRp
Y2F0aW9uU2NoZW1lRGVmYXVsdDoKKyAgICBjYXNlIFByb3RlY3Rpb25TcGFjZTo6QXV0aGVudGlj
YXRpb25TY2hlbWU6OkRlZmF1bHQ6CiAgICAgICAgIG1ldGhvZCA9IE5TVVJMQXV0aGVudGljYXRp
b25NZXRob2REZWZhdWx0OwogICAgICAgICBicmVhazsKLSAgICBjYXNlIFByb3RlY3Rpb25TcGFj
ZUF1dGhlbnRpY2F0aW9uU2NoZW1lSFRUUEJhc2ljOgorICAgIGNhc2UgUHJvdGVjdGlvblNwYWNl
OjpBdXRoZW50aWNhdGlvblNjaGVtZTo6SFRUUEJhc2ljOgogICAgICAgICBtZXRob2QgPSBOU1VS
TEF1dGhlbnRpY2F0aW9uTWV0aG9kSFRUUEJhc2ljOwogICAgICAgICBicmVhazsKLSAgICBjYXNl
IFByb3RlY3Rpb25TcGFjZUF1dGhlbnRpY2F0aW9uU2NoZW1lSFRUUERpZ2VzdDoKKyAgICBjYXNl
IFByb3RlY3Rpb25TcGFjZTo6QXV0aGVudGljYXRpb25TY2hlbWU6OkhUVFBEaWdlc3Q6CiAgICAg
ICAgIG1ldGhvZCA9IE5TVVJMQXV0aGVudGljYXRpb25NZXRob2RIVFRQRGlnZXN0OwogICAgICAg
ICBicmVhazsKLSAgICBjYXNlIFByb3RlY3Rpb25TcGFjZUF1dGhlbnRpY2F0aW9uU2NoZW1lSFRN
TEZvcm06CisgICAgY2FzZSBQcm90ZWN0aW9uU3BhY2U6OkF1dGhlbnRpY2F0aW9uU2NoZW1lOjpI
VE1MRm9ybToKICAgICAgICAgbWV0aG9kID0gTlNVUkxBdXRoZW50aWNhdGlvbk1ldGhvZEhUTUxG
b3JtOwogICAgICAgICBicmVhazsKLSAgICBjYXNlIFByb3RlY3Rpb25TcGFjZUF1dGhlbnRpY2F0
aW9uU2NoZW1lTlRMTToKKyAgICBjYXNlIFByb3RlY3Rpb25TcGFjZTo6QXV0aGVudGljYXRpb25T
Y2hlbWU6Ok5UTE06CiAgICAgICAgIG1ldGhvZCA9IE5TVVJMQXV0aGVudGljYXRpb25NZXRob2RO
VExNOwogICAgICAgICBicmVhazsKLSAgICBjYXNlIFByb3RlY3Rpb25TcGFjZUF1dGhlbnRpY2F0
aW9uU2NoZW1lTmVnb3RpYXRlOgorICAgIGNhc2UgUHJvdGVjdGlvblNwYWNlOjpBdXRoZW50aWNh
dGlvblNjaGVtZTo6TmVnb3RpYXRlOgogICAgICAgICBtZXRob2QgPSBOU1VSTEF1dGhlbnRpY2F0
aW9uTWV0aG9kTmVnb3RpYXRlOwogICAgICAgICBicmVhazsKICNpZiBVU0UoUFJPVEVDVElPTl9T
UEFDRV9BVVRIX0NBTExCQUNLKQotICAgIGNhc2UgUHJvdGVjdGlvblNwYWNlQXV0aGVudGljYXRp
b25TY2hlbWVTZXJ2ZXJUcnVzdEV2YWx1YXRpb25SZXF1ZXN0ZWQ6CisgICAgY2FzZSBQcm90ZWN0
aW9uU3BhY2U6OkF1dGhlbnRpY2F0aW9uU2NoZW1lOjpTZXJ2ZXJUcnVzdEV2YWx1YXRpb25SZXF1
ZXN0ZWQ6CiAgICAgICAgIG1ldGhvZCA9IE5TVVJMQXV0aGVudGljYXRpb25NZXRob2RTZXJ2ZXJU
cnVzdDsKICAgICAgICAgYnJlYWs7Ci0gICAgY2FzZSBQcm90ZWN0aW9uU3BhY2VBdXRoZW50aWNh
dGlvblNjaGVtZUNsaWVudENlcnRpZmljYXRlUmVxdWVzdGVkOgorICAgIGNhc2UgUHJvdGVjdGlv
blNwYWNlOjpBdXRoZW50aWNhdGlvblNjaGVtZTo6Q2xpZW50Q2VydGlmaWNhdGVSZXF1ZXN0ZWQ6
CiAgICAgICAgIG1ldGhvZCA9IE5TVVJMQXV0aGVudGljYXRpb25NZXRob2RDbGllbnRDZXJ0aWZp
Y2F0ZTsKICAgICAgICAgYnJlYWs7CiAjZW5kaWYKLSAgICBjYXNlIFByb3RlY3Rpb25TcGFjZUF1
dGhlbnRpY2F0aW9uU2NoZW1lT0F1dGg6CisgICAgY2FzZSBQcm90ZWN0aW9uU3BhY2U6OkF1dGhl
bnRpY2F0aW9uU2NoZW1lOjpPQXV0aDoKICAgICAgICAgbWV0aG9kID0gTlNVUkxBdXRoZW50aWNh
dGlvbk1ldGhvZE9BdXRoOwogICAgICAgICBicmVhazsKICAgICBkZWZhdWx0OgpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jdXJsL0F1dGhlbnRpY2F0aW9uQ2hh
bGxlbmdlLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2N1cmwvQXV0aGVudGlj
YXRpb25DaGFsbGVuZ2UuaAppbmRleCA4MTNkMmI1NDkxYTU1NDg5OGEzZjQ5NGM4YTM1NmEzZTQy
YTBjOTliLi5hYjcwYzg1YTRjNzE0Y2I2ODNkNTg1MjQwYzRjZWYzOWJhNjVmYmQxIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2N1cmwvQXV0aGVudGljYXRpb25D
aGFsbGVuZ2UuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2N1cmwvQXV0
aGVudGljYXRpb25DaGFsbGVuZ2UuaApAQCAtNTAsMTEgKzUwLDExIEBAIHB1YmxpYzoKICAgICBB
dXRoZW50aWNhdGlvbkNsaWVudCogYXV0aGVudGljYXRpb25DbGllbnQoKSBjb25zdCB7IHJldHVy
biBtX2F1dGhlbnRpY2F0aW9uQ2xpZW50LmdldCgpOyB9CiAKIHByaXZhdGU6Ci0gICAgUHJvdGVj
dGlvblNwYWNlU2VydmVyVHlwZSBwcm90ZWN0aW9uU3BhY2VTZXJ2ZXJUeXBlRnJvbVVSSShjb25z
dCBVUkwmLCBib29sIGlzRm9yUHJveHkpOworICAgIFByb3RlY3Rpb25TcGFjZTo6U2VydmVyVHlw
ZSBwcm90ZWN0aW9uU3BhY2VTZXJ2ZXJUeXBlRnJvbVVSSShjb25zdCBVUkwmLCBib29sIGlzRm9y
UHJveHkpOwogICAgIFByb3RlY3Rpb25TcGFjZSBwcm90ZWN0aW9uU3BhY2VGb3JQYXNzd29yZEJh
c2VkKGNvbnN0IEN1cmxSZXNwb25zZSYsIGNvbnN0IFJlc291cmNlUmVzcG9uc2UmKTsKICAgICBQ
cm90ZWN0aW9uU3BhY2UgcHJvdGVjdGlvblNwYWNlRm9yU2VydmVyVHJ1c3QoY29uc3QgVVJMJiwg
Y29uc3QgQ2VydGlmaWNhdGVJbmZvJik7CiAgICAgc3RkOjpvcHRpb25hbDx1aW50MTZfdD4gZGV0
ZXJtaW5lUHJveHlQb3J0KGNvbnN0IFVSTCYpOwotICAgIFByb3RlY3Rpb25TcGFjZUF1dGhlbnRp
Y2F0aW9uU2NoZW1lIGF1dGhlbnRpY2F0aW9uU2NoZW1lRnJvbUN1cmxBdXRoKGxvbmcpOworICAg
IFByb3RlY3Rpb25TcGFjZTo6QXV0aGVudGljYXRpb25TY2hlbWUgYXV0aGVudGljYXRpb25TY2hl
bWVGcm9tQ3VybEF1dGgobG9uZyk7CiAgICAgU3RyaW5nIHBhcnNlUmVhbG0oY29uc3QgUmVzb3Vy
Y2VSZXNwb25zZSYpOwogICAgIHZvaWQgcmVtb3ZlTGVhZGluZ0FuZFRyYWlsaW5nUXVvdGVzKFN0
cmluZyYpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2N1
cmwvQXV0aGVudGljYXRpb25DaGFsbGVuZ2VDdXJsLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL25ldHdvcmsvY3VybC9BdXRoZW50aWNhdGlvbkNoYWxsZW5nZUN1cmwuY3BwCmluZGV4IDBm
ZjkxYmI0Zjk0MTdjNzkyNzkzOWE3MTMxYjcyMzkwZGMwYjgxODMuLmI2NjI5NjBjZDBhYTNmNjNk
YzZjNzhhNDdlMjhjYzIwMTg2ZTM1NTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL25ldHdvcmsvY3VybC9BdXRoZW50aWNhdGlvbkNoYWxsZW5nZUN1cmwuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY3VybC9BdXRoZW50aWNhdGlvbkNoYWxsZW5n
ZUN1cmwuY3BwCkBAIC00NiwxNSArNDYsMTUgQEAgQXV0aGVudGljYXRpb25DaGFsbGVuZ2U6OkF1
dGhlbnRpY2F0aW9uQ2hhbGxlbmdlKGNvbnN0IFVSTCYgdXJsLCBjb25zdCBDZXJ0aWZpY2EKIHsK
IH0KIAotUHJvdGVjdGlvblNwYWNlU2VydmVyVHlwZSBBdXRoZW50aWNhdGlvbkNoYWxsZW5nZTo6
cHJvdGVjdGlvblNwYWNlU2VydmVyVHlwZUZyb21VUkkoY29uc3QgVVJMJiB1cmwsIGJvb2wgaXNG
b3JQcm94eSkKK1Byb3RlY3Rpb25TcGFjZTo6U2VydmVyVHlwZSBBdXRoZW50aWNhdGlvbkNoYWxs
ZW5nZTo6cHJvdGVjdGlvblNwYWNlU2VydmVyVHlwZUZyb21VUkkoY29uc3QgVVJMJiB1cmwsIGJv
b2wgaXNGb3JQcm94eSkKIHsKICAgICBpZiAodXJsLnByb3RvY29sSXMoImh0dHBzIikpCi0gICAg
ICAgIHJldHVybiBpc0ZvclByb3h5ID8gUHJvdGVjdGlvblNwYWNlUHJveHlIVFRQUyA6IFByb3Rl
Y3Rpb25TcGFjZVNlcnZlckhUVFBTOworICAgICAgICByZXR1cm4gaXNGb3JQcm94eSA/IFByb3Rl
Y3Rpb25TcGFjZTo6U2VydmVyVHlwZTo6UHJveHlIVFRQUyA6IFByb3RlY3Rpb25TcGFjZTo6U2Vy
dmVyVHlwZTo6SFRUUFM7CiAgICAgaWYgKHVybC5wcm90b2NvbElzKCJodHRwIikpCi0gICAgICAg
IHJldHVybiBpc0ZvclByb3h5ID8gUHJvdGVjdGlvblNwYWNlUHJveHlIVFRQIDogUHJvdGVjdGlv
blNwYWNlU2VydmVySFRUUDsKKyAgICAgICAgcmV0dXJuIGlzRm9yUHJveHkgPyBQcm90ZWN0aW9u
U3BhY2U6OlNlcnZlclR5cGU6OlByb3h5SFRUUCA6IFByb3RlY3Rpb25TcGFjZTo6U2VydmVyVHlw
ZTo6SFRUUDsKICAgICBpZiAodXJsLnByb3RvY29sSXMoImZ0cCIpKQotICAgICAgICByZXR1cm4g
aXNGb3JQcm94eSA/IFByb3RlY3Rpb25TcGFjZVByb3h5RlRQIDogUHJvdGVjdGlvblNwYWNlU2Vy
dmVyRlRQOwotICAgIHJldHVybiBpc0ZvclByb3h5ID8gUHJvdGVjdGlvblNwYWNlUHJveHlIVFRQ
IDogUHJvdGVjdGlvblNwYWNlU2VydmVySFRUUDsKKyAgICAgICAgcmV0dXJuIGlzRm9yUHJveHkg
PyBQcm90ZWN0aW9uU3BhY2U6OlNlcnZlclR5cGU6OlByb3h5RlRQIDogUHJvdGVjdGlvblNwYWNl
OjpTZXJ2ZXJUeXBlOjpGVFA7CisgICAgcmV0dXJuIGlzRm9yUHJveHkgPyBQcm90ZWN0aW9uU3Bh
Y2U6OlNlcnZlclR5cGU6OlByb3h5SFRUUCA6IFByb3RlY3Rpb25TcGFjZTo6U2VydmVyVHlwZTo6
SFRUUDsKIH0KIAogUHJvdGVjdGlvblNwYWNlIEF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlOjpwcm90
ZWN0aW9uU3BhY2VGb3JQYXNzd29yZEJhc2VkKGNvbnN0IEN1cmxSZXNwb25zZSYgY3VybFJlc3Bv
bnNlLCBjb25zdCBSZXNvdXJjZVJlc3BvbnNlJiByZXNwb25zZSkKQEAgLTc1LDcgKzc1LDcgQEAg
UHJvdGVjdGlvblNwYWNlIEF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlOjpwcm90ZWN0aW9uU3BhY2VG
b3JTZXJ2ZXJUcnVzdChjb25zdCBVUkwKIHsKICAgICBhdXRvIHBvcnQgPSBkZXRlcm1pbmVQcm94
eVBvcnQodXJsKTsKICAgICBhdXRvIHNlcnZlclR5cGUgPSBwcm90ZWN0aW9uU3BhY2VTZXJ2ZXJU
eXBlRnJvbVVSSSh1cmwsIGZhbHNlKTsKLSAgICBhdXRvIGF1dGhlbnRpY2F0aW9uU2NoZW1lID0g
UHJvdGVjdGlvblNwYWNlQXV0aGVudGljYXRpb25TY2hlbWVTZXJ2ZXJUcnVzdEV2YWx1YXRpb25S
ZXF1ZXN0ZWQ7CisgICAgYXV0byBhdXRoZW50aWNhdGlvblNjaGVtZSA9IFByb3RlY3Rpb25TcGFj
ZTo6QXV0aGVudGljYXRpb25TY2hlbWU6OlNlcnZlclRydXN0RXZhbHVhdGlvblJlcXVlc3RlZDsK
IAogICAgIHJldHVybiBQcm90ZWN0aW9uU3BhY2UodXJsLmhvc3QoKS50b1N0cmluZygpLCBzdGF0
aWNfY2FzdDxpbnQ+KHBvcnQudmFsdWVfb3IoMCkpLCBzZXJ2ZXJUeXBlLCBTdHJpbmcoKSwgYXV0
aGVudGljYXRpb25TY2hlbWUsIGNlcnRpZmljYXRlSW5mbyk7CiB9CkBAIC05NiwxNyArOTYsMTcg
QEAgc3RkOjpvcHRpb25hbDx1aW50MTZfdD4gQXV0aGVudGljYXRpb25DaGFsbGVuZ2U6OmRldGVy
bWluZVByb3h5UG9ydChjb25zdCBVUkwmIHUKICAgICByZXR1cm4gc3RkOjpudWxsb3B0OwogfQog
Ci1Qcm90ZWN0aW9uU3BhY2VBdXRoZW50aWNhdGlvblNjaGVtZSBBdXRoZW50aWNhdGlvbkNoYWxs
ZW5nZTo6YXV0aGVudGljYXRpb25TY2hlbWVGcm9tQ3VybEF1dGgobG9uZyBjdXJsQXV0aCkKK1By
b3RlY3Rpb25TcGFjZTo6QXV0aGVudGljYXRpb25TY2hlbWUgQXV0aGVudGljYXRpb25DaGFsbGVu
Z2U6OmF1dGhlbnRpY2F0aW9uU2NoZW1lRnJvbUN1cmxBdXRoKGxvbmcgY3VybEF1dGgpCiB7CiAg
ICAgaWYgKGN1cmxBdXRoICYgQ1VSTEFVVEhfTlRMTSkKLSAgICAgICAgcmV0dXJuIFByb3RlY3Rp
b25TcGFjZUF1dGhlbnRpY2F0aW9uU2NoZW1lTlRMTTsKKyAgICAgICAgcmV0dXJuIFByb3RlY3Rp
b25TcGFjZTo6QXV0aGVudGljYXRpb25TY2hlbWU6Ok5UTE07CiAgICAgaWYgKGN1cmxBdXRoICYg
Q1VSTEFVVEhfTkVHT1RJQVRFKQotICAgICAgICByZXR1cm4gUHJvdGVjdGlvblNwYWNlQXV0aGVu
dGljYXRpb25TY2hlbWVOZWdvdGlhdGU7CisgICAgICAgIHJldHVybiBQcm90ZWN0aW9uU3BhY2U6
OkF1dGhlbnRpY2F0aW9uU2NoZW1lOjpOZWdvdGlhdGU7CiAgICAgaWYgKGN1cmxBdXRoICYgQ1VS
TEFVVEhfRElHRVNUKQotICAgICAgICByZXR1cm4gUHJvdGVjdGlvblNwYWNlQXV0aGVudGljYXRp
b25TY2hlbWVIVFRQRGlnZXN0OworICAgICAgICByZXR1cm4gUHJvdGVjdGlvblNwYWNlOjpBdXRo
ZW50aWNhdGlvblNjaGVtZTo6SFRUUERpZ2VzdDsKICAgICBpZiAoY3VybEF1dGggJiBDVVJMQVVU
SF9CQVNJQykKLSAgICAgICAgcmV0dXJuIFByb3RlY3Rpb25TcGFjZUF1dGhlbnRpY2F0aW9uU2No
ZW1lSFRUUEJhc2ljOwotICAgIHJldHVybiBQcm90ZWN0aW9uU3BhY2VBdXRoZW50aWNhdGlvblNj
aGVtZVVua25vd247CisgICAgICAgIHJldHVybiBQcm90ZWN0aW9uU3BhY2U6OkF1dGhlbnRpY2F0
aW9uU2NoZW1lOjpIVFRQQmFzaWM7CisgICAgcmV0dXJuIFByb3RlY3Rpb25TcGFjZTo6QXV0aGVu
dGljYXRpb25TY2hlbWU6OlVua25vd247CiB9CiAKIFN0cmluZyBBdXRoZW50aWNhdGlvbkNoYWxs
ZW5nZTo6cGFyc2VSZWFsbShjb25zdCBSZXNvdXJjZVJlc3BvbnNlJiByZXNwb25zZSkKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY3VybC9DdXJsUmVxdWVzdC5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2N1cmwvQ3VybFJlcXVlc3QuY3Bw
CmluZGV4IGQ4MmRkM2MxMGFjNjQ3MTM1OTkxZmQ3YWU2Njk3ZTlkOGUzMTNlODkuLmJhY2IyYjU1
MGIyODQxMzFkMWFjMjBhYTY2Mzg4NmZlMjJmZTdmOTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL25ldHdvcmsvY3VybC9DdXJsUmVxdWVzdC5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vbmV0d29yay9jdXJsL0N1cmxSZXF1ZXN0LmNwcApAQCAtNjQsMjIgKzY0
LDIyIEBAIHZvaWQgQ3VybFJlcXVlc3Q6OmludmFsaWRhdGVDbGllbnQoKQogICAgIG1fbWVzc2Fn
ZVF1ZXVlID0gbnVsbHB0cjsKIH0KIAotdm9pZCBDdXJsUmVxdWVzdDo6c2V0QXV0aGVudGljYXRp
b25TY2hlbWUoUHJvdGVjdGlvblNwYWNlQXV0aGVudGljYXRpb25TY2hlbWUgc2NoZW1lKQordm9p
ZCBDdXJsUmVxdWVzdDo6c2V0QXV0aGVudGljYXRpb25TY2hlbWUoUHJvdGVjdGlvblNwYWNlOjpB
dXRoZW50aWNhdGlvblNjaGVtZSBzY2hlbWUpCiB7CiAgICAgc3dpdGNoIChzY2hlbWUpIHsKLSAg
ICBjYXNlIFByb3RlY3Rpb25TcGFjZUF1dGhlbnRpY2F0aW9uU2NoZW1lSFRUUEJhc2ljOgorICAg
IGNhc2UgUHJvdGVjdGlvblNwYWNlOjpBdXRoZW50aWNhdGlvblNjaGVtZTo6SFRUUEJhc2ljOgog
ICAgICAgICBtX2F1dGhUeXBlID0gQ1VSTEFVVEhfQkFTSUM7CiAgICAgICAgIGJyZWFrOwogCi0g
ICAgY2FzZSBQcm90ZWN0aW9uU3BhY2VBdXRoZW50aWNhdGlvblNjaGVtZUhUVFBEaWdlc3Q6Cisg
ICAgY2FzZSBQcm90ZWN0aW9uU3BhY2U6OkF1dGhlbnRpY2F0aW9uU2NoZW1lOjpIVFRQRGlnZXN0
OgogICAgICAgICBtX2F1dGhUeXBlID0gQ1VSTEFVVEhfRElHRVNUOwogICAgICAgICBicmVhazsK
IAotICAgIGNhc2UgUHJvdGVjdGlvblNwYWNlQXV0aGVudGljYXRpb25TY2hlbWVOVExNOgorICAg
IGNhc2UgUHJvdGVjdGlvblNwYWNlOjpBdXRoZW50aWNhdGlvblNjaGVtZTo6TlRMTToKICAgICAg
ICAgbV9hdXRoVHlwZSA9IENVUkxBVVRIX05UTE07CiAgICAgICAgIGJyZWFrOwogCi0gICAgY2Fz
ZSBQcm90ZWN0aW9uU3BhY2VBdXRoZW50aWNhdGlvblNjaGVtZU5lZ290aWF0ZToKKyAgICBjYXNl
IFByb3RlY3Rpb25TcGFjZTo6QXV0aGVudGljYXRpb25TY2hlbWU6Ok5lZ290aWF0ZToKICAgICAg
ICAgbV9hdXRoVHlwZSA9IENVUkxBVVRIX05FR09USUFURTsKICAgICAgICAgYnJlYWs7CiAKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY3VybC9DdXJsUmVxdWVz
dC5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jdXJsL0N1cmxSZXF1ZXN0LmgK
aW5kZXggM2M3Y2RkODgzZWI2MmJmZTkyY2YwNDQ1ZWQyOWJkMjZlY2UzZTkyMi4uYTZmYjMxNTc2
NmJhNWMyZjNlYTMyYjllZjUxZWIwMDNlOGNiODlkMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vbmV0d29yay9jdXJsL0N1cmxSZXF1ZXN0LmgKKysrIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vbmV0d29yay9jdXJsL0N1cmxSZXF1ZXN0LmgKQEAgLTcyLDcgKzcyLDcgQEAg
cHVibGljOgogICAgIHZpcnR1YWwgfkN1cmxSZXF1ZXN0KCk7CiAKICAgICB2b2lkIGludmFsaWRh
dGVDbGllbnQoKTsKLSAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHNldEF1dGhlbnRpY2F0aW9uU2No
ZW1lKFByb3RlY3Rpb25TcGFjZUF1dGhlbnRpY2F0aW9uU2NoZW1lKTsKKyAgICBXRUJDT1JFX0VY
UE9SVCB2b2lkIHNldEF1dGhlbnRpY2F0aW9uU2NoZW1lKFByb3RlY3Rpb25TcGFjZTo6QXV0aGVu
dGljYXRpb25TY2hlbWUpOwogICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgc2V0VXNlclBhc3MoY29u
c3QgU3RyaW5nJiwgY29uc3QgU3RyaW5nJik7CiAgICAgYm9vbCBpc1NlcnZlclRydXN0RXZhbHVh
dGlvbkRpc2FibGVkKCkgeyByZXR1cm4gbV9zaG91bGREaXNhYmxlU2VydmVyVHJ1c3RFdmFsdWF0
aW9uOyB9CiAgICAgdm9pZCBkaXNhYmxlU2VydmVyVHJ1c3RFdmFsdWF0aW9uKCkgeyBtX3Nob3Vs
ZERpc2FibGVTZXJ2ZXJUcnVzdEV2YWx1YXRpb24gPSB0cnVlOyB9CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2N1cmwvUHJvdGVjdGlvblNwYWNlQ3VybC5oIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jdXJsL1Byb3RlY3Rpb25TcGFjZUN1cmwu
aAppbmRleCA3MTMwYzM5ZGIyZTc4ZjI3MGE3YWYzMjkyZmRmZGRjM2E3NmYyYzQ2Li5hODY0OWY3
YTM4YWI4YWJlMDRhNDQ3Zjk1OTE3MGQyM2IyZTg3MWYwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9uZXR3b3JrL2N1cmwvUHJvdGVjdGlvblNwYWNlQ3VybC5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY3VybC9Qcm90ZWN0aW9uU3BhY2VDdXJsLmgK
QEAgLTM3LDEyICszNywxMiBAQCBwdWJsaWM6CiAgICAgewogICAgIH0KIAotICAgIFByb3RlY3Rp
b25TcGFjZShjb25zdCBTdHJpbmcmIGhvc3QsIGludCBwb3J0LCBQcm90ZWN0aW9uU3BhY2VTZXJ2
ZXJUeXBlIHNlcnZlclR5cGUsIGNvbnN0IFN0cmluZyYgcmVhbG0sIFByb3RlY3Rpb25TcGFjZUF1
dGhlbnRpY2F0aW9uU2NoZW1lIGF1dGhlbnRpY2F0aW9uU2NoZW1lKQorICAgIFByb3RlY3Rpb25T
cGFjZShjb25zdCBTdHJpbmcmIGhvc3QsIGludCBwb3J0LCBTZXJ2ZXJUeXBlIHNlcnZlclR5cGUs
IGNvbnN0IFN0cmluZyYgcmVhbG0sIEF1dGhlbnRpY2F0aW9uU2NoZW1lIGF1dGhlbnRpY2F0aW9u
U2NoZW1lKQogICAgICAgICA6IFByb3RlY3Rpb25TcGFjZUJhc2UoaG9zdCwgcG9ydCwgc2VydmVy
VHlwZSwgcmVhbG0sIGF1dGhlbnRpY2F0aW9uU2NoZW1lKQogICAgIHsKICAgICB9CiAKLSAgICBQ
cm90ZWN0aW9uU3BhY2UoY29uc3QgU3RyaW5nJiBob3N0LCBpbnQgcG9ydCwgUHJvdGVjdGlvblNw
YWNlU2VydmVyVHlwZSBzZXJ2ZXJUeXBlLCBjb25zdCBTdHJpbmcmIHJlYWxtLCBQcm90ZWN0aW9u
U3BhY2VBdXRoZW50aWNhdGlvblNjaGVtZSBhdXRoZW50aWNhdGlvblNjaGVtZSwgY29uc3QgQ2Vy
dGlmaWNhdGVJbmZvJiBjZXJ0aWZpY2F0ZUluZm8pCisgICAgUHJvdGVjdGlvblNwYWNlKGNvbnN0
IFN0cmluZyYgaG9zdCwgaW50IHBvcnQsIFNlcnZlclR5cGUgc2VydmVyVHlwZSwgY29uc3QgU3Ry
aW5nJiByZWFsbSwgQXV0aGVudGljYXRpb25TY2hlbWUgYXV0aGVudGljYXRpb25TY2hlbWUsIGNv
bnN0IENlcnRpZmljYXRlSW5mbyYgY2VydGlmaWNhdGVJbmZvKQogICAgICAgICA6IFByb3RlY3Rp
b25TcGFjZUJhc2UoaG9zdCwgcG9ydCwgc2VydmVyVHlwZSwgcmVhbG0sIGF1dGhlbnRpY2F0aW9u
U2NoZW1lKQogICAgICAgICAsIG1fY2VydGlmaWNhdGVJbmZvKGNlcnRpZmljYXRlSW5mbykKICAg
ICB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2N1cmwvUmVz
b3VyY2VIYW5kbGVDdXJsLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY3Vy
bC9SZXNvdXJjZUhhbmRsZUN1cmwuY3BwCmluZGV4IDgwZWM5ZWM1NWE2MmQzMzAzZWEyNWZmZjYw
ZjEyMTQwMTU5YjhiZDcuLjllZGJkMmU4MWE3ZjFlNDU2NzVkMDIxOTUzY2VmNTk5NWM2NDY1OTcg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY3VybC9SZXNvdXJj
ZUhhbmRsZUN1cmwuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY3Vy
bC9SZXNvdXJjZUhhbmRsZUN1cmwuY3BwCkBAIC04Niw3ICs4Niw3IEBAIGJvb2wgUmVzb3VyY2VI
YW5kbGU6OnN0YXJ0KCkKIAogICAgIGlmIChhdXRvIGNyZWRlbnRpYWwgPSBnZXRDcmVkZW50aWFs
KGQtPm1fZmlyc3RSZXF1ZXN0LCBmYWxzZSkpIHsKICAgICAgICAgZC0+bV9jdXJsUmVxdWVzdC0+
c2V0VXNlclBhc3MoY3JlZGVudGlhbC0+dXNlcigpLCBjcmVkZW50aWFsLT5wYXNzd29yZCgpKTsK
LSAgICAgICAgZC0+bV9jdXJsUmVxdWVzdC0+c2V0QXV0aGVudGljYXRpb25TY2hlbWUoUHJvdGVj
dGlvblNwYWNlQXV0aGVudGljYXRpb25TY2hlbWVIVFRQQmFzaWMpOworICAgICAgICBkLT5tX2N1
cmxSZXF1ZXN0LT5zZXRBdXRoZW50aWNhdGlvblNjaGVtZShQcm90ZWN0aW9uU3BhY2U6OkF1dGhl
bnRpY2F0aW9uU2NoZW1lOjpIVFRQQmFzaWMpOwogICAgIH0KIAogICAgIGQtPm1fY3VybFJlcXVl
c3QtPnN0YXJ0KCk7CkBAIC0zOTAsNyArMzkwLDcgQEAgdm9pZCBSZXNvdXJjZUhhbmRsZTo6cGxh
dGZvcm1Mb2FkUmVzb3VyY2VTeW5jaHJvbm91c2x5KE5ldHdvcmtpbmdDb250ZXh0KiBjb250ZXgK
IAogICAgIGlmIChhdXRvIGNyZWRlbnRpYWwgPSBoYW5kbGUtPmdldENyZWRlbnRpYWwoaGFuZGxl
LT5kLT5tX2ZpcnN0UmVxdWVzdCwgZmFsc2UpKSB7CiAgICAgICAgIGhhbmRsZS0+ZC0+bV9jdXJs
UmVxdWVzdC0+c2V0VXNlclBhc3MoY3JlZGVudGlhbC0+dXNlcigpLCBjcmVkZW50aWFsLT5wYXNz
d29yZCgpKTsKLSAgICAgICAgaGFuZGxlLT5kLT5tX2N1cmxSZXF1ZXN0LT5zZXRBdXRoZW50aWNh
dGlvblNjaGVtZShQcm90ZWN0aW9uU3BhY2VBdXRoZW50aWNhdGlvblNjaGVtZUhUVFBCYXNpYyk7
CisgICAgICAgIGhhbmRsZS0+ZC0+bV9jdXJsUmVxdWVzdC0+c2V0QXV0aGVudGljYXRpb25TY2hl
bWUoUHJvdGVjdGlvblNwYWNlOjpBdXRoZW50aWNhdGlvblNjaGVtZTo6SFRUUEJhc2ljKTsKICAg
ICB9CiAKICAgICBoYW5kbGUtPmQtPm1fY3VybFJlcXVlc3QtPnN0YXJ0KCk7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL21hYy9SZXNvdXJjZUhhbmRsZU1hYy5t
bSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvbWFjL1Jlc291cmNlSGFuZGxlTWFj
Lm1tCmluZGV4IDU2OWU4Yjg5NDUyMzZlMWRkMmM1MjI4NWRiNTY4MjkyZmZjOTI5MDguLjNkYTRj
Njk4YzUzZDdjZTA3MTUwMTc4ODgwODRkZDU0MjYzYjljMTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvbWFjL1Jlc291cmNlSGFuZGxlTWFjLm1tCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvbWFjL1Jlc291cmNlSGFuZGxlTWFjLm1tCkBA
IC01ODksNyArNTg5LDcgQEAgdm9pZCBSZXNvdXJjZUhhbmRsZTo6cmVjZWl2ZWRDcmVkZW50aWFs
KGNvbnN0IEF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlJiBjaGFsbGVuZ2UKICAgICAgICAgcmV0dXJu
OwogICAgIH0KIAotICAgIGlmIChjcmVkZW50aWFsLnBlcnNpc3RlbmNlKCkgPT0gQ3JlZGVudGlh
bFBlcnNpc3RlbmNlRm9yU2Vzc2lvbiAmJiBjaGFsbGVuZ2UucHJvdGVjdGlvblNwYWNlKCkuYXV0
aGVudGljYXRpb25TY2hlbWUoKSAhPSBQcm90ZWN0aW9uU3BhY2VBdXRoZW50aWNhdGlvblNjaGVt
ZVNlcnZlclRydXN0RXZhbHVhdGlvblJlcXVlc3RlZCkgeworICAgIGlmIChjcmVkZW50aWFsLnBl
cnNpc3RlbmNlKCkgPT0gQ3JlZGVudGlhbFBlcnNpc3RlbmNlRm9yU2Vzc2lvbiAmJiBjaGFsbGVu
Z2UucHJvdGVjdGlvblNwYWNlKCkuYXV0aGVudGljYXRpb25TY2hlbWUoKSAhPSBQcm90ZWN0aW9u
U3BhY2U6OkF1dGhlbnRpY2F0aW9uU2NoZW1lOjpTZXJ2ZXJUcnVzdEV2YWx1YXRpb25SZXF1ZXN0
ZWQpIHsKICAgICAgICAgLy8gTWFuYWdlIHBlci1zZXNzaW9uIGNyZWRlbnRpYWxzIGludGVybmFs
bHksIGJlY2F1c2Ugb25jZSBOU1VSTENyZWRlbnRpYWxQZXJzaXN0ZW5jZUZvclNlc3Npb24gaXMg
dXNlZCwgdGhlcmUgaXMgbm8gd2F5CiAgICAgICAgIC8vIHRvIGlnbm9yZSBpdCBmb3IgYSBwYXJ0
aWN1bGFyIHJlcXVlc3QgKHNob3J0IG9mIHJlbW92aW5nIGl0IGFsdG9nZXRoZXIpLgogICAgICAg
ICBDcmVkZW50aWFsIHdlYkNyZWRlbnRpYWwoY3JlZGVudGlhbCwgQ3JlZGVudGlhbFBlcnNpc3Rl
bmNlTm9uZSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL3Nv
dXAvQXV0aGVudGljYXRpb25DaGFsbGVuZ2VTb3VwLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL25ldHdvcmsvc291cC9BdXRoZW50aWNhdGlvbkNoYWxsZW5nZVNvdXAuY3BwCmluZGV4IDcy
NzZjM2RkM2JhMGJmNjcyMWYxOTA2Njk5ODYxOWVlNjZhNjQyMzcuLmFmNDUzOTYzNmNkODYxNGY4
MzY0OGUyZTRhNWU5ZDA3ZDNmYTFhMGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL25ldHdvcmsvc291cC9BdXRoZW50aWNhdGlvbkNoYWxsZW5nZVNvdXAuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvc291cC9BdXRoZW50aWNhdGlvbkNoYWxsZW5n
ZVNvdXAuY3BwCkBAIC0zNSwzMSArMzUsMzEgQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1z
dGF0aWMgUHJvdGVjdGlvblNwYWNlU2VydmVyVHlwZSBwcm90ZWN0aW9uU3BhY2VTZXJ2ZXJUeXBl
RnJvbVVSTChjb25zdCBVUkwmIHVybCwgYm9vbCBpc0ZvclByb3h5KQorc3RhdGljIFByb3RlY3Rp
b25TcGFjZTo6U2VydmVyVHlwZSBwcm90ZWN0aW9uU3BhY2VTZXJ2ZXJUeXBlRnJvbVVSTChjb25z
dCBVUkwmIHVybCwgYm9vbCBpc0ZvclByb3h5KQogewogICAgIGlmICh1cmwucHJvdG9jb2xJcygi
aHR0cHMiKSkKLSAgICAgICAgcmV0dXJuIGlzRm9yUHJveHkgPyBQcm90ZWN0aW9uU3BhY2VQcm94
eUhUVFBTIDogUHJvdGVjdGlvblNwYWNlU2VydmVySFRUUFM7CisgICAgICAgIHJldHVybiBpc0Zv
clByb3h5ID8gUHJvdGVjdGlvblNwYWNlOjpTZXJ2ZXJUeXBlOjpQcm94eUhUVFBTIDogUHJvdGVj
dGlvblNwYWNlOjpTZXJ2ZXJUeXBlOjpIVFRQUzsKICAgICBpZiAodXJsLnByb3RvY29sSXMoImh0
dHAiKSkKLSAgICAgICAgcmV0dXJuIGlzRm9yUHJveHkgPyBQcm90ZWN0aW9uU3BhY2VQcm94eUhU
VFAgOiBQcm90ZWN0aW9uU3BhY2VTZXJ2ZXJIVFRQOworICAgICAgICByZXR1cm4gaXNGb3JQcm94
eSA/IFByb3RlY3Rpb25TcGFjZTo6U2VydmVyVHlwZTo6UHJveHlIVFRQIDogUHJvdGVjdGlvblNw
YWNlOjpTZXJ2ZXJUeXBlOjpIVFRQOwogICAgIGlmICh1cmwucHJvdG9jb2xJcygiZnRwIikpCi0g
ICAgICAgIHJldHVybiBpc0ZvclByb3h5ID8gUHJvdGVjdGlvblNwYWNlUHJveHlGVFAgOiBQcm90
ZWN0aW9uU3BhY2VTZXJ2ZXJGVFA7Ci0gICAgcmV0dXJuIGlzRm9yUHJveHkgPyBQcm90ZWN0aW9u
U3BhY2VQcm94eUhUVFAgOiBQcm90ZWN0aW9uU3BhY2VTZXJ2ZXJIVFRQOworICAgICAgICByZXR1
cm4gaXNGb3JQcm94eSA/IFByb3RlY3Rpb25TcGFjZTo6U2VydmVyVHlwZTo6UHJveHlGVFAgOiBQ
cm90ZWN0aW9uU3BhY2U6OlNlcnZlclR5cGU6OkZUUDsKKyAgICByZXR1cm4gaXNGb3JQcm94eSA/
IFByb3RlY3Rpb25TcGFjZTo6U2VydmVyVHlwZTo6UHJveHlIVFRQIDogUHJvdGVjdGlvblNwYWNl
OjpTZXJ2ZXJUeXBlOjpIVFRQOwogfQogCiBzdGF0aWMgUHJvdGVjdGlvblNwYWNlIHByb3RlY3Rp
b25TcGFjZUZyb21Tb3VwQXV0aEFuZFVSTChTb3VwQXV0aCogc291cEF1dGgsIGNvbnN0IFVSTCYg
dXJsKQogewogICAgIGNvbnN0IGNoYXIqIHNjaGVtZU5hbWUgPSBzb3VwX2F1dGhfZ2V0X3NjaGVt
ZV9uYW1lKHNvdXBBdXRoKTsKLSAgICBQcm90ZWN0aW9uU3BhY2VBdXRoZW50aWNhdGlvblNjaGVt
ZSBzY2hlbWU7CisgICAgUHJvdGVjdGlvblNwYWNlOjpBdXRoZW50aWNhdGlvblNjaGVtZSBzY2hl
bWU7CiAgICAgaWYgKCFnX2FzY2lpX3N0cmNhc2VjbXAoc2NoZW1lTmFtZSwgImJhc2ljIikpCi0g
ICAgICAgIHNjaGVtZSA9IFByb3RlY3Rpb25TcGFjZUF1dGhlbnRpY2F0aW9uU2NoZW1lSFRUUEJh
c2ljOworICAgICAgICBzY2hlbWUgPSBQcm90ZWN0aW9uU3BhY2U6OkF1dGhlbnRpY2F0aW9uU2No
ZW1lOjpIVFRQQmFzaWM7CiAgICAgZWxzZSBpZiAoIWdfYXNjaWlfc3RyY2FzZWNtcChzY2hlbWVO
YW1lLCAiZGlnZXN0IikpCi0gICAgICAgIHNjaGVtZSA9IFByb3RlY3Rpb25TcGFjZUF1dGhlbnRp
Y2F0aW9uU2NoZW1lSFRUUERpZ2VzdDsKKyAgICAgICAgc2NoZW1lID0gUHJvdGVjdGlvblNwYWNl
OjpBdXRoZW50aWNhdGlvblNjaGVtZTo6SFRUUERpZ2VzdDsKICAgICBlbHNlIGlmICghZ19hc2Np
aV9zdHJjYXNlY21wKHNjaGVtZU5hbWUsICJudGxtIikpCi0gICAgICAgIHNjaGVtZSA9IFByb3Rl
Y3Rpb25TcGFjZUF1dGhlbnRpY2F0aW9uU2NoZW1lTlRMTTsKKyAgICAgICAgc2NoZW1lID0gUHJv
dGVjdGlvblNwYWNlOjpBdXRoZW50aWNhdGlvblNjaGVtZTo6TlRMTTsKICAgICBlbHNlIGlmICgh
Z19hc2NpaV9zdHJjYXNlY21wKHNjaGVtZU5hbWUsICJuZWdvdGlhdGUiKSkKLSAgICAgICAgc2No
ZW1lID0gUHJvdGVjdGlvblNwYWNlQXV0aGVudGljYXRpb25TY2hlbWVOZWdvdGlhdGU7CisgICAg
ICAgIHNjaGVtZSA9IFByb3RlY3Rpb25TcGFjZTo6QXV0aGVudGljYXRpb25TY2hlbWU6Ok5lZ290
aWF0ZTsKICAgICBlbHNlCi0gICAgICAgIHNjaGVtZSA9IFByb3RlY3Rpb25TcGFjZUF1dGhlbnRp
Y2F0aW9uU2NoZW1lVW5rbm93bjsKKyAgICAgICAgc2NoZW1lID0gUHJvdGVjdGlvblNwYWNlOjpB
dXRoZW50aWNhdGlvblNjaGVtZTo6VW5rbm93bjsKIAogI2lmIFVTRShTT1VQMikKICAgICBhdXRv
IGhvc3QgPSB1cmwuaG9zdCgpOwpAQCAtOTYsNyArOTYsNyBAQCBzdGF0aWMgUHJvdGVjdGlvblNw
YWNlIHByb3RlY3Rpb25TcGFjZUZvckNsaWVudENlcnRpZmljYXRlKGNvbnN0IFVSTCYgdXJsKQog
ICAgIGlmICghcG9ydCkKICAgICAgICAgcG9ydCA9IGRlZmF1bHRQb3J0Rm9yUHJvdG9jb2wodXJs
LnByb3RvY29sKCkpOwogICAgIHJldHVybiBQcm90ZWN0aW9uU3BhY2UodXJsLmhvc3QoKS50b1N0
cmluZygpLCBzdGF0aWNfY2FzdDxpbnQ+KHBvcnQudmFsdWVfb3IoMCkpLCBwcm90ZWN0aW9uU3Bh
Y2VTZXJ2ZXJUeXBlRnJvbVVSTCh1cmwsIGZhbHNlKSwgeyB9LAotICAgICAgICBQcm90ZWN0aW9u
U3BhY2VBdXRoZW50aWNhdGlvblNjaGVtZUNsaWVudENlcnRpZmljYXRlUmVxdWVzdGVkKTsKKyAg
ICAgICAgUHJvdGVjdGlvblNwYWNlOjpBdXRoZW50aWNhdGlvblNjaGVtZTo6Q2xpZW50Q2VydGlm
aWNhdGVSZXF1ZXN0ZWQpOwogfQogCiBBdXRoZW50aWNhdGlvbkNoYWxsZW5nZTo6QXV0aGVudGlj
YXRpb25DaGFsbGVuZ2UoU291cE1lc3NhZ2UqIHNvdXBNZXNzYWdlLCBHVGxzQ2xpZW50Q29ubmVj
dGlvbiopCkBAIC0xMTQsNyArMTE0LDcgQEAgc3RhdGljIFByb3RlY3Rpb25TcGFjZSBwcm90ZWN0
aW9uU3BhY2VGb3JDbGllbnRDZXJ0aWZpY2F0ZVBhc3N3b3JkKEdUbHNQYXNzd29yZCoKICAgICBp
ZiAoIXBvcnQpCiAgICAgICAgIHBvcnQgPSBkZWZhdWx0UG9ydEZvclByb3RvY29sKHVybC5wcm90
b2NvbCgpKTsKICAgICByZXR1cm4gUHJvdGVjdGlvblNwYWNlKHVybC5ob3N0KCkudG9TdHJpbmco
KSwgc3RhdGljX2Nhc3Q8aW50Pihwb3J0LnZhbHVlX29yKDApKSwgcHJvdGVjdGlvblNwYWNlU2Vy
dmVyVHlwZUZyb21VUkwodXJsLCBmYWxzZSksCi0gICAgICAgIFN0cmluZzo6ZnJvbVVURjgoZ190
bHNfcGFzc3dvcmRfZ2V0X2Rlc2NyaXB0aW9uKHRsc1Bhc3N3b3JkKSksIFByb3RlY3Rpb25TcGFj
ZUF1dGhlbnRpY2F0aW9uU2NoZW1lQ2xpZW50Q2VydGlmaWNhdGVQSU5SZXF1ZXN0ZWQpOworICAg
ICAgICBTdHJpbmc6OmZyb21VVEY4KGdfdGxzX3Bhc3N3b3JkX2dldF9kZXNjcmlwdGlvbih0bHNQ
YXNzd29yZCkpLCBQcm90ZWN0aW9uU3BhY2U6OkF1dGhlbnRpY2F0aW9uU2NoZW1lOjpDbGllbnRD
ZXJ0aWZpY2F0ZVBJTlJlcXVlc3RlZCk7CiB9CiAKIEF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlOjpB
dXRoZW50aWNhdGlvbkNoYWxsZW5nZShTb3VwTWVzc2FnZSogc291cE1lc3NhZ2UsIEdUbHNQYXNz
d29yZCogdGxzUGFzc3dvcmQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9u
ZXR3b3JrL3NvdXAvTmV0d29ya1N0b3JhZ2VTZXNzaW9uU291cC5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9uZXR3b3JrL3NvdXAvTmV0d29ya1N0b3JhZ2VTZXNzaW9uU291cC5jcHAKaW5k
ZXggNWIzMjUzNGUyYmNhZjE3MDEzMzFlOTU0MTAxM2I4YTVjMzhjNGQzNi4uZmNmYTRlOTk1MjEy
YWU5MjZmNjMzOWQzN2RiYmIzZDEwNTFlMGZjMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vbmV0d29yay9zb3VwL05ldHdvcmtTdG9yYWdlU2Vzc2lvblNvdXAuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvc291cC9OZXR3b3JrU3RvcmFnZVNlc3Np
b25Tb3VwLmNwcApAQCAtODgsNDggKzg4LDQ4IEBAIHZvaWQgTmV0d29ya1N0b3JhZ2VTZXNzaW9u
OjpzZXRDb29raWVPYnNlcnZlckhhbmRsZXIoRnVuY3Rpb248dm9pZCAoKT4mJiBoYW5kbGVyCiB9
CiAKICNpZiBVU0UoTElCU0VDUkVUKQotc3RhdGljIGNvbnN0IGNoYXIqIHNjaGVtZUZyb21Qcm90
ZWN0aW9uU3BhY2VTZXJ2ZXJUeXBlKFByb3RlY3Rpb25TcGFjZVNlcnZlclR5cGUgc2VydmVyVHlw
ZSkKK3N0YXRpYyBjb25zdCBjaGFyKiBzY2hlbWVGcm9tUHJvdGVjdGlvblNwYWNlU2VydmVyVHlw
ZShQcm90ZWN0aW9uU3BhY2U6OlNlcnZlclR5cGUgc2VydmVyVHlwZSkKIHsKICAgICBzd2l0Y2gg
KHNlcnZlclR5cGUpIHsKLSAgICBjYXNlIFByb3RlY3Rpb25TcGFjZVNlcnZlckhUVFA6Ci0gICAg
Y2FzZSBQcm90ZWN0aW9uU3BhY2VQcm94eUhUVFA6CisgICAgY2FzZSBQcm90ZWN0aW9uU3BhY2U6
OlNlcnZlclR5cGU6OkhUVFA6CisgICAgY2FzZSBQcm90ZWN0aW9uU3BhY2U6OlNlcnZlclR5cGU6
OlByb3h5SFRUUDoKICAgICAgICAgcmV0dXJuICJodHRwIjsKLSAgICBjYXNlIFByb3RlY3Rpb25T
cGFjZVNlcnZlckhUVFBTOgotICAgIGNhc2UgUHJvdGVjdGlvblNwYWNlUHJveHlIVFRQUzoKKyAg
ICBjYXNlIFByb3RlY3Rpb25TcGFjZTo6U2VydmVyVHlwZTo6SFRUUFM6CisgICAgY2FzZSBQcm90
ZWN0aW9uU3BhY2U6OlNlcnZlclR5cGU6OlByb3h5SFRUUFM6CiAgICAgICAgIHJldHVybiAiaHR0
cHMiOwotICAgIGNhc2UgUHJvdGVjdGlvblNwYWNlU2VydmVyRlRQOgotICAgIGNhc2UgUHJvdGVj
dGlvblNwYWNlUHJveHlGVFA6CisgICAgY2FzZSBQcm90ZWN0aW9uU3BhY2U6OlNlcnZlclR5cGU6
OkZUUDoKKyAgICBjYXNlIFByb3RlY3Rpb25TcGFjZTo6U2VydmVyVHlwZTo6UHJveHlGVFA6CiAg
ICAgICAgIHJldHVybiAiZnRwIjsKLSAgICBjYXNlIFByb3RlY3Rpb25TcGFjZVNlcnZlckZUUFM6
Ci0gICAgY2FzZSBQcm90ZWN0aW9uU3BhY2VQcm94eVNPQ0tTOgorICAgIGNhc2UgUHJvdGVjdGlv
blNwYWNlOjpTZXJ2ZXJUeXBlOjpGVFBTOgorICAgIGNhc2UgUHJvdGVjdGlvblNwYWNlOjpTZXJ2
ZXJUeXBlOjpQcm94eVNPQ0tTOgogICAgICAgICBicmVhazsKICAgICB9CiAKICAgICBSRUxFQVNF
X0FTU0VSVF9OT1RfUkVBQ0hFRCgpOwogfQogCi1zdGF0aWMgY29uc3QgY2hhciogYXV0aFR5cGVG
cm9tUHJvdGVjdGlvblNwYWNlQXV0aGVudGljYXRpb25TY2hlbWUoUHJvdGVjdGlvblNwYWNlQXV0
aGVudGljYXRpb25TY2hlbWUgc2NoZW1lKQorc3RhdGljIGNvbnN0IGNoYXIqIGF1dGhUeXBlRnJv
bVByb3RlY3Rpb25TcGFjZUF1dGhlbnRpY2F0aW9uU2NoZW1lKFByb3RlY3Rpb25TcGFjZTo6QXV0
aGVudGljYXRpb25TY2hlbWUgc2NoZW1lKQogewogICAgIHN3aXRjaCAoc2NoZW1lKSB7Ci0gICAg
Y2FzZSBQcm90ZWN0aW9uU3BhY2VBdXRoZW50aWNhdGlvblNjaGVtZURlZmF1bHQ6Ci0gICAgY2Fz
ZSBQcm90ZWN0aW9uU3BhY2VBdXRoZW50aWNhdGlvblNjaGVtZUhUVFBCYXNpYzoKKyAgICBjYXNl
IFByb3RlY3Rpb25TcGFjZTo6QXV0aGVudGljYXRpb25TY2hlbWU6OkRlZmF1bHQ6CisgICAgY2Fz
ZSBQcm90ZWN0aW9uU3BhY2U6OkF1dGhlbnRpY2F0aW9uU2NoZW1lOjpIVFRQQmFzaWM6CiAgICAg
ICAgIHJldHVybiAiQmFzaWMiOwotICAgIGNhc2UgUHJvdGVjdGlvblNwYWNlQXV0aGVudGljYXRp
b25TY2hlbWVIVFRQRGlnZXN0OgorICAgIGNhc2UgUHJvdGVjdGlvblNwYWNlOjpBdXRoZW50aWNh
dGlvblNjaGVtZTo6SFRUUERpZ2VzdDoKICAgICAgICAgcmV0dXJuICJEaWdlc3QiOwotICAgIGNh
c2UgUHJvdGVjdGlvblNwYWNlQXV0aGVudGljYXRpb25TY2hlbWVOVExNOgorICAgIGNhc2UgUHJv
dGVjdGlvblNwYWNlOjpBdXRoZW50aWNhdGlvblNjaGVtZTo6TlRMTToKICAgICAgICAgcmV0dXJu
ICJOVExNIjsKLSAgICBjYXNlIFByb3RlY3Rpb25TcGFjZUF1dGhlbnRpY2F0aW9uU2NoZW1lTmVn
b3RpYXRlOgorICAgIGNhc2UgUHJvdGVjdGlvblNwYWNlOjpBdXRoZW50aWNhdGlvblNjaGVtZTo6
TmVnb3RpYXRlOgogICAgICAgICByZXR1cm4gIk5lZ290aWF0ZSI7Ci0gICAgY2FzZSBQcm90ZWN0
aW9uU3BhY2VBdXRoZW50aWNhdGlvblNjaGVtZUhUTUxGb3JtOgotICAgIGNhc2UgUHJvdGVjdGlv
blNwYWNlQXV0aGVudGljYXRpb25TY2hlbWVDbGllbnRDZXJ0aWZpY2F0ZVJlcXVlc3RlZDoKLSAg
ICBjYXNlIFByb3RlY3Rpb25TcGFjZUF1dGhlbnRpY2F0aW9uU2NoZW1lU2VydmVyVHJ1c3RFdmFs
dWF0aW9uUmVxdWVzdGVkOgorICAgIGNhc2UgUHJvdGVjdGlvblNwYWNlOjpBdXRoZW50aWNhdGlv
blNjaGVtZTo6SFRNTEZvcm06CisgICAgY2FzZSBQcm90ZWN0aW9uU3BhY2U6OkF1dGhlbnRpY2F0
aW9uU2NoZW1lOjpDbGllbnRDZXJ0aWZpY2F0ZVJlcXVlc3RlZDoKKyAgICBjYXNlIFByb3RlY3Rp
b25TcGFjZTo6QXV0aGVudGljYXRpb25TY2hlbWU6OlNlcnZlclRydXN0RXZhbHVhdGlvblJlcXVl
c3RlZDoKICAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CiAgICAgICAgIGJyZWFrOwotICAg
IGNhc2UgUHJvdGVjdGlvblNwYWNlQXV0aGVudGljYXRpb25TY2hlbWVDbGllbnRDZXJ0aWZpY2F0
ZVBJTlJlcXVlc3RlZDoKKyAgICBjYXNlIFByb3RlY3Rpb25TcGFjZTo6QXV0aGVudGljYXRpb25T
Y2hlbWU6OkNsaWVudENlcnRpZmljYXRlUElOUmVxdWVzdGVkOgogICAgICAgICByZXR1cm4gIkNl
cnRpZmljYXRlIFBJTiI7Ci0gICAgY2FzZSBQcm90ZWN0aW9uU3BhY2VBdXRoZW50aWNhdGlvblNj
aGVtZU9BdXRoOgorICAgIGNhc2UgUHJvdGVjdGlvblNwYWNlOjpBdXRoZW50aWNhdGlvblNjaGVt
ZTo6T0F1dGg6CiAgICAgICAgIHJldHVybiAiT0F1dGgiOwotICAgIGNhc2UgUHJvdGVjdGlvblNw
YWNlQXV0aGVudGljYXRpb25TY2hlbWVVbmtub3duOgorICAgIGNhc2UgUHJvdGVjdGlvblNwYWNl
OjpBdXRoZW50aWNhdGlvblNjaGVtZTo6VW5rbm93bjoKICAgICAgICAgcmV0dXJuICJ1bmtub3du
IjsKICAgICB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0
d29ya0NPUlNQcmVmbGlnaHRDaGVja2VyLmNwcCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nl
c3MvTmV0d29ya0NPUlNQcmVmbGlnaHRDaGVja2VyLmNwcAppbmRleCA0OGEzOWMzMzliNmMxOTk5
MWQzNmM4MDMzNTVkNDM5MmM2ZGM0MTYxLi45NTg2MDkxZWEwMDQxYjZmMTU4NjlkNDJiYmRhNzI0
MzI5NzY5MGVjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdv
cmtDT1JTUHJlZmxpZ2h0Q2hlY2tlci5jcHAKKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJv
Y2Vzcy9OZXR3b3JrQ09SU1ByZWZsaWdodENoZWNrZXIuY3BwCkBAIC05NSwxMSArOTUsMTEgQEAg
dm9pZCBOZXR3b3JrQ09SU1ByZWZsaWdodENoZWNrZXI6OndpbGxQZXJmb3JtSFRUUFJlZGlyZWN0
aW9uKFdlYkNvcmU6OlJlc291cmNlUmUKIAogdm9pZCBOZXR3b3JrQ09SU1ByZWZsaWdodENoZWNr
ZXI6OmRpZFJlY2VpdmVDaGFsbGVuZ2UoV2ViQ29yZTo6QXV0aGVudGljYXRpb25DaGFsbGVuZ2Um
JiBjaGFsbGVuZ2UsIE5lZ290aWF0ZWRMZWdhY3lUTFMgbmVnb3RpYXRlZExlZ2FjeVRMUywgQ2hh
bGxlbmdlQ29tcGxldGlvbkhhbmRsZXImJiBjb21wbGV0aW9uSGFuZGxlcikKIHsKLSAgICBDT1JT
X0NIRUNLRVJfUkVMRUFTRV9MT0coImRpZFJlY2VpdmVDaGFsbGVuZ2UsIGF1dGhlbnRpY2F0aW9u
IHNjaGVtZTogJXUiLCBjaGFsbGVuZ2UucHJvdGVjdGlvblNwYWNlKCkuYXV0aGVudGljYXRpb25T
Y2hlbWUoKSk7CisgICAgQ09SU19DSEVDS0VSX1JFTEVBU0VfTE9HKCJkaWRSZWNlaXZlQ2hhbGxl
bmdlLCBhdXRoZW50aWNhdGlvbiBzY2hlbWU6ICV1Iiwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KGNo
YWxsZW5nZS5wcm90ZWN0aW9uU3BhY2UoKS5hdXRoZW50aWNhdGlvblNjaGVtZSgpKSk7CiAKICAg
ICBhdXRvIHNjaGVtZSA9IGNoYWxsZW5nZS5wcm90ZWN0aW9uU3BhY2UoKS5hdXRoZW50aWNhdGlv
blNjaGVtZSgpOwotICAgIGJvb2wgaXNUTFNIYW5kc2hha2UgPSBzY2hlbWUgPT0gUHJvdGVjdGlv
blNwYWNlQXV0aGVudGljYXRpb25TY2hlbWVTZXJ2ZXJUcnVzdEV2YWx1YXRpb25SZXF1ZXN0ZWQK
LSAgICAgICAgfHwgc2NoZW1lID09IFByb3RlY3Rpb25TcGFjZUF1dGhlbnRpY2F0aW9uU2NoZW1l
Q2xpZW50Q2VydGlmaWNhdGVSZXF1ZXN0ZWQ7CisgICAgYm9vbCBpc1RMU0hhbmRzaGFrZSA9IHNj
aGVtZSA9PSBQcm90ZWN0aW9uU3BhY2U6OkF1dGhlbnRpY2F0aW9uU2NoZW1lOjpTZXJ2ZXJUcnVz
dEV2YWx1YXRpb25SZXF1ZXN0ZWQKKyAgICAgICAgfHwgc2NoZW1lID09IFByb3RlY3Rpb25TcGFj
ZTo6QXV0aGVudGljYXRpb25TY2hlbWU6OkNsaWVudENlcnRpZmljYXRlUmVxdWVzdGVkOwogCiAg
ICAgaWYgKCFpc1RMU0hhbmRzaGFrZSkgewogICAgICAgICBjb21wbGV0aW9uSGFuZGxlcihBdXRo
ZW50aWNhdGlvbkNoYWxsZW5nZURpc3Bvc2l0aW9uOjpVc2VDcmVkZW50aWFsLCB7IH0pOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrTG9hZC5jcHAgYi9T
b3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtMb2FkLmNwcAppbmRleCA1YTE2Yzli
YzUwZTQzZmE5OGU4NTk1NzUwMzBjMTRlYzAyNTRlODU0Li44YzEwNGQ4MTYwYjdhYWZkMDk5NzE1
ZGE2ZDRlNmY3YzQ2MzdmYTA4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9j
ZXNzL05ldHdvcmtMb2FkLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05l
dHdvcmtMb2FkLmNwcApAQCAtMjE1LDggKzIxNSw4IEBAIHZvaWQgTmV0d29ya0xvYWQ6OmRpZFJl
Y2VpdmVDaGFsbGVuZ2UoQXV0aGVudGljYXRpb25DaGFsbGVuZ2UmJiBjaGFsbGVuZ2UsIE5lZ290
CiAgICAgbV9jbGllbnQuZ2V0KCkuZGlkUmVjZWl2ZUNoYWxsZW5nZShjaGFsbGVuZ2UpOwogCiAg
ICAgYXV0byBzY2hlbWUgPSBjaGFsbGVuZ2UucHJvdGVjdGlvblNwYWNlKCkuYXV0aGVudGljYXRp
b25TY2hlbWUoKTsKLSAgICBib29sIGlzVExTSGFuZHNoYWtlID0gc2NoZW1lID09IFByb3RlY3Rp
b25TcGFjZUF1dGhlbnRpY2F0aW9uU2NoZW1lU2VydmVyVHJ1c3RFdmFsdWF0aW9uUmVxdWVzdGVk
Ci0gICAgICAgIHx8IHNjaGVtZSA9PSBQcm90ZWN0aW9uU3BhY2VBdXRoZW50aWNhdGlvblNjaGVt
ZUNsaWVudENlcnRpZmljYXRlUmVxdWVzdGVkOworICAgIGJvb2wgaXNUTFNIYW5kc2hha2UgPSBz
Y2hlbWUgPT0gUHJvdGVjdGlvblNwYWNlOjpBdXRoZW50aWNhdGlvblNjaGVtZTo6U2VydmVyVHJ1
c3RFdmFsdWF0aW9uUmVxdWVzdGVkCisgICAgICAgIHx8IHNjaGVtZSA9PSBQcm90ZWN0aW9uU3Bh
Y2U6OkF1dGhlbnRpY2F0aW9uU2NoZW1lOjpDbGllbnRDZXJ0aWZpY2F0ZVJlcXVlc3RlZDsKICAg
ICBpZiAoIWlzQWxsb3dlZFRvQXNrVXNlckZvckNyZWRlbnRpYWxzKCkgJiYgIWlzVExTSGFuZHNo
YWtlICYmICFjaGFsbGVuZ2UucHJvdGVjdGlvblNwYWNlKCkuaXNQcm94eSgpKSB7CiAgICAgICAg
IG1fY2xpZW50LmdldCgpLmRpZEJsb2NrQXV0aGVudGljYXRpb25DaGFsbGVuZ2UoKTsKICAgICAg
ICAgY29tcGxldGlvbkhhbmRsZXIoQXV0aGVudGljYXRpb25DaGFsbGVuZ2VEaXNwb3NpdGlvbjo6
VXNlQ3JlZGVudGlhbCwgeyB9KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1By
b2Nlc3MvUGluZ0xvYWQuY3BwIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9QaW5nTG9h
ZC5jcHAKaW5kZXggZGIzZjE3MjEyYmIyYjc4YWYwOGU2YWRjODU2MjA3ODY2NzM5ZTYzNi4uYmMy
YzMzN2U0ZWVlMDFhZjgzZTEzNjcyMzE3YTlhOWVhYmM3YzZmOCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9QaW5nTG9hZC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9O
ZXR3b3JrUHJvY2Vzcy9QaW5nTG9hZC5jcHAKQEAgLTE1MSw3ICsxNTEsNyBAQCB2b2lkIFBpbmdM
b2FkOjp3aWxsUGVyZm9ybUhUVFBSZWRpcmVjdGlvbihSZXNvdXJjZVJlc3BvbnNlJiYgcmVkaXJl
Y3RSZXNwb25zZSwgUgogdm9pZCBQaW5nTG9hZDo6ZGlkUmVjZWl2ZUNoYWxsZW5nZShBdXRoZW50
aWNhdGlvbkNoYWxsZW5nZSYmIGNoYWxsZW5nZSwgTmVnb3RpYXRlZExlZ2FjeVRMUyBuZWdvdGlh
dGVkTGVnYWN5VExTLCBDaGFsbGVuZ2VDb21wbGV0aW9uSGFuZGxlciYmIGNvbXBsZXRpb25IYW5k
bGVyKQogewogICAgIFBJTkdfUkVMRUFTRV9MT0coImRpZFJlY2VpdmVDaGFsbGVuZ2UiKTsKLSAg
ICBpZiAoY2hhbGxlbmdlLnByb3RlY3Rpb25TcGFjZSgpLmF1dGhlbnRpY2F0aW9uU2NoZW1lKCkg
PT0gUHJvdGVjdGlvblNwYWNlQXV0aGVudGljYXRpb25TY2hlbWVTZXJ2ZXJUcnVzdEV2YWx1YXRp
b25SZXF1ZXN0ZWQpIHsKKyAgICBpZiAoY2hhbGxlbmdlLnByb3RlY3Rpb25TcGFjZSgpLmF1dGhl
bnRpY2F0aW9uU2NoZW1lKCkgPT0gUHJvdGVjdGlvblNwYWNlOjpBdXRoZW50aWNhdGlvblNjaGVt
ZTo6U2VydmVyVHJ1c3RFdmFsdWF0aW9uUmVxdWVzdGVkKSB7CiAgICAgICAgIG1fbmV0d29ya0xv
YWRDaGVja2VyLT5uZXR3b3JrUHJvY2VzcygpLmF1dGhlbnRpY2F0aW9uTWFuYWdlcigpLmRpZFJl
Y2VpdmVBdXRoZW50aWNhdGlvbkNoYWxsZW5nZShtX3Nlc3Npb25JRCwgbV9wYXJhbWV0ZXJzLndl
YlBhZ2VQcm94eUlELCAgbV9wYXJhbWV0ZXJzLnRvcE9yaWdpbiA/ICZtX3BhcmFtZXRlcnMudG9w
T3JpZ2luLT5kYXRhKCkgOiBudWxscHRyLCBjaGFsbGVuZ2UsIG5lZ290aWF0ZWRMZWdhY3lUTFMs
IFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvY29jb2EvTmV0d29ya1Nlc3Np
b25Db2NvYS5tbSBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvY29jb2EvTmV0d29ya1Nl
c3Npb25Db2NvYS5tbQppbmRleCA1MzlhOTI4NTRlN2ZhMDc4Yjc5YWRlMzc3ZWIzYWJiYTE4YzAx
Mzk2Li4yYzRmMDBiODU2YzliYWFmY2E4ZTZjODY4MDQ4OGFlMjg1ZTE3NTkzIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL2NvY29hL05ldHdvcmtTZXNzaW9uQ29jb2Eu
bW0KKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9jb2NvYS9OZXR3b3JrU2Vzc2lv
bkNvY29hLm1tCkBAIC0xNjE3LDcgKzE2MTcsNyBAQCBib29sIE5ldHdvcmtTZXNzaW9uQ29jb2E6
OmFsbG93c1NwZWNpZmljSFRUUFNDZXJ0aWZpY2F0ZUZvckhvc3QoY29uc3QgV2ViQ29yZTo6QQog
ICAgIGlmICghY2VydGlmaWNhdGVzKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAKLSAgICBib29s
IHJlcXVpcmVTZXJ2ZXJDZXJ0aWZpY2F0ZXMgPSBjaGFsbGVuZ2UucHJvdGVjdGlvblNwYWNlKCku
YXV0aGVudGljYXRpb25TY2hlbWUoKSA9PSBXZWJDb3JlOjpQcm90ZWN0aW9uU3BhY2VBdXRoZW50
aWNhdGlvblNjaGVtZTo6UHJvdGVjdGlvblNwYWNlQXV0aGVudGljYXRpb25TY2hlbWVTZXJ2ZXJU
cnVzdEV2YWx1YXRpb25SZXF1ZXN0ZWQ7CisgICAgYm9vbCByZXF1aXJlU2VydmVyQ2VydGlmaWNh
dGVzID0gY2hhbGxlbmdlLnByb3RlY3Rpb25TcGFjZSgpLmF1dGhlbnRpY2F0aW9uU2NoZW1lKCkg
PT0gV2ViQ29yZTo6UHJvdGVjdGlvblNwYWNlOjpBdXRoZW50aWNhdGlvblNjaGVtZTo6U2VydmVy
VHJ1c3RFdmFsdWF0aW9uUmVxdWVzdGVkOwogICAgIFJldGFpblB0cjxTZWNQb2xpY3lSZWY+IHBv
bGljeSA9IGFkb3B0Q0YoU2VjUG9saWN5Q3JlYXRlU1NMKHJlcXVpcmVTZXJ2ZXJDZXJ0aWZpY2F0
ZXMsIGhvc3QuY3JlYXRlQ0ZTdHJpbmcoKS5nZXQoKSkpOwogCiAgICAgU2VjVHJ1c3RSZWYgdHJ1
c3RSZWYgPSBudWxscHRyOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vz
cy9jdXJsL05ldHdvcmtEYXRhVGFza0N1cmwuY3BwIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJv
Y2Vzcy9jdXJsL05ldHdvcmtEYXRhVGFza0N1cmwuY3BwCmluZGV4IDNkYzY1ZmY4MmM5ZGE4OTJk
MjBjMzQ4ODZlNWExYzRkNzlkYWRlZjUuLjg3ZjdjZDk5ZGI5YTdhN2M0OTUxMjA2NmEzOWM3Mjli
NzA1Mzc2MDIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvY3VybC9O
ZXR3b3JrRGF0YVRhc2tDdXJsLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNz
L2N1cmwvTmV0d29ya0RhdGFUYXNrQ3VybC5jcHAKQEAgLTc1LDcgKzc1LDcgQEAgTmV0d29ya0Rh
dGFUYXNrQ3VybDo6TmV0d29ya0RhdGFUYXNrQ3VybChOZXR3b3JrU2Vzc2lvbiYgc2Vzc2lvbiwg
TmV0d29ya0RhdGFUYXMKICAgICBtX2N1cmxSZXF1ZXN0ID0gY3JlYXRlQ3VybFJlcXVlc3QoV1RG
TW92ZShyZXF1ZXN0KSk7CiAgICAgaWYgKCFtX2luaXRpYWxDcmVkZW50aWFsLmlzRW1wdHkoKSkg
ewogICAgICAgICBtX2N1cmxSZXF1ZXN0LT5zZXRVc2VyUGFzcyhtX2luaXRpYWxDcmVkZW50aWFs
LnVzZXIoKSwgbV9pbml0aWFsQ3JlZGVudGlhbC5wYXNzd29yZCgpKTsKLSAgICAgICAgbV9jdXJs
UmVxdWVzdC0+c2V0QXV0aGVudGljYXRpb25TY2hlbWUoUHJvdGVjdGlvblNwYWNlQXV0aGVudGlj
YXRpb25TY2hlbWVIVFRQQmFzaWMpOworICAgICAgICBtX2N1cmxSZXF1ZXN0LT5zZXRBdXRoZW50
aWNhdGlvblNjaGVtZShQcm90ZWN0aW9uU3BhY2U6OkF1dGhlbnRpY2F0aW9uOjpTY2hlbWVIVFRQ
QmFzaWMpOwogICAgIH0KICAgICBtX2N1cmxSZXF1ZXN0LT5zdGFydCgpOwogfQpAQCAtMzEzLDcg
KzMxMyw3IEBAIHZvaWQgTmV0d29ya0RhdGFUYXNrQ3VybDo6d2lsbFBlcmZvcm1IVFRQUmVkaXJl
Y3Rpb24oKQogICAgICAgICBtX2N1cmxSZXF1ZXN0ID0gY3JlYXRlQ3VybFJlcXVlc3QoV1RGTW92
ZShyZXF1ZXN0Q29weSkpOwogICAgICAgICBpZiAoZGlkQ2hhbmdlQ3JlZGVudGlhbCAmJiAhbV9p
bml0aWFsQ3JlZGVudGlhbC5pc0VtcHR5KCkpIHsKICAgICAgICAgICAgIG1fY3VybFJlcXVlc3Qt
PnNldFVzZXJQYXNzKG1faW5pdGlhbENyZWRlbnRpYWwudXNlcigpLCBtX2luaXRpYWxDcmVkZW50
aWFsLnBhc3N3b3JkKCkpOwotICAgICAgICAgICAgbV9jdXJsUmVxdWVzdC0+c2V0QXV0aGVudGlj
YXRpb25TY2hlbWUoUHJvdGVjdGlvblNwYWNlQXV0aGVudGljYXRpb25TY2hlbWVIVFRQQmFzaWMp
OworICAgICAgICAgICAgbV9jdXJsUmVxdWVzdC0+c2V0QXV0aGVudGljYXRpb25TY2hlbWUoUHJv
dGVjdGlvblNwYWNlOjpBdXRoZW50aWNhdGlvblNjaGVtZTo6SFRUUEJhc2ljKTsKICAgICAgICAg
fQogICAgICAgICBtX2N1cmxSZXF1ZXN0LT5zdGFydCgpOwogCkBAIC00MjcsNyArNDI3LDcgQEAg
dm9pZCBOZXR3b3JrRGF0YVRhc2tDdXJsOjpyZXN0YXJ0V2l0aENyZWRlbnRpYWwoY29uc3QgUHJv
dGVjdGlvblNwYWNlJiBwcm90ZWN0aW8KICAgICBBU1NFUlQobV9jdXJsUmVxdWVzdCk7CiAKICAg
ICBhdXRvIHByZXZpb3VzUmVxdWVzdCA9IG1fY3VybFJlcXVlc3QtPnJlc291cmNlUmVxdWVzdCgp
OwotICAgIGF1dG8gc2hvdWxkRGlzYWJsZVNlcnZlclRydXN0RXZhbHVhdGlvbiA9IHByb3RlY3Rp
b25TcGFjZS5hdXRoZW50aWNhdGlvblNjaGVtZSgpID09IFByb3RlY3Rpb25TcGFjZUF1dGhlbnRp
Y2F0aW9uU2NoZW1lU2VydmVyVHJ1c3RFdmFsdWF0aW9uUmVxdWVzdGVkIHx8IG1fY3VybFJlcXVl
c3QtPmlzU2VydmVyVHJ1c3RFdmFsdWF0aW9uRGlzYWJsZWQoKTsKKyAgICBhdXRvIHNob3VsZERp
c2FibGVTZXJ2ZXJUcnVzdEV2YWx1YXRpb24gPSBwcm90ZWN0aW9uU3BhY2UuYXV0aGVudGljYXRp
b25TY2hlbWUoKSA9PSBQcm90ZWN0aW9uU3BhY2U6OkF1dGhlbnRpY2F0aW9uU2NoZW1lOjpTZXJ2
ZXJUcnVzdEV2YWx1YXRpb25SZXF1ZXN0ZWQgfHwgbV9jdXJsUmVxdWVzdC0+aXNTZXJ2ZXJUcnVz
dEV2YWx1YXRpb25EaXNhYmxlZCgpOwogICAgIG1fY3VybFJlcXVlc3QtPmNhbmNlbCgpOwogCiAg
ICAgbV9jdXJsUmVxdWVzdCA9IGNyZWF0ZUN1cmxSZXF1ZXN0KFdURk1vdmUocHJldmlvdXNSZXF1
ZXN0KSwgUmVxdWVzdFN0YXR1czo6UmV1c2VkUmVxdWVzdCk7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L05ldHdvcmtQcm9jZXNzL3NvdXAvTmV0d29ya0RhdGFUYXNrU291cC5jcHAgYi9Tb3Vy
Y2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL3NvdXAvTmV0d29ya0RhdGFUYXNrU291cC5jcHAKaW5k
ZXggMDljN2Q0M2M1NThlYTYzNGRmMTUyMTYxNDdlZmM5ZTUxNDM3OTY2Zi4uNjBhNDljNmQ0MDRj
NTI1NjNkODdmYzJjZDFjYjIyNDQ0NjcxZDFjZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9O
ZXR3b3JrUHJvY2Vzcy9zb3VwL05ldHdvcmtEYXRhVGFza1NvdXAuY3BwCisrKyBiL1NvdXJjZS9X
ZWJLaXQvTmV0d29ya1Byb2Nlc3Mvc291cC9OZXR3b3JrRGF0YVRhc2tTb3VwLmNwcApAQCAtNjg4
LDE2ICs2ODgsMTYgQEAgc3RhdGljIGlubGluZSBib29sIGlzQXV0aGVudGljYXRpb25GYWlsdXJl
U3RhdHVzQ29kZShpbnQgaHR0cFN0YXR1c0NvZGUpCiB2b2lkIE5ldHdvcmtEYXRhVGFza1NvdXA6
OmNvbXBsZXRlQXV0aGVudGljYXRpb24oY29uc3QgQXV0aGVudGljYXRpb25DaGFsbGVuZ2UmIGNo
YWxsZW5nZSwgY29uc3QgQ3JlZGVudGlhbCYgY3JlZGVudGlhbCkKIHsKICAgICBzd2l0Y2ggKGNo
YWxsZW5nZS5wcm90ZWN0aW9uU3BhY2UoKS5hdXRoZW50aWNhdGlvblNjaGVtZSgpKSB7Ci0gICAg
Y2FzZSBQcm90ZWN0aW9uU3BhY2VBdXRoZW50aWNhdGlvblNjaGVtZURlZmF1bHQ6Ci0gICAgY2Fz
ZSBQcm90ZWN0aW9uU3BhY2VBdXRoZW50aWNhdGlvblNjaGVtZUhUVFBCYXNpYzoKLSAgICBjYXNl
IFByb3RlY3Rpb25TcGFjZUF1dGhlbnRpY2F0aW9uU2NoZW1lSFRUUERpZ2VzdDoKLSAgICBjYXNl
IFByb3RlY3Rpb25TcGFjZUF1dGhlbnRpY2F0aW9uU2NoZW1lSFRNTEZvcm06Ci0gICAgY2FzZSBQ
cm90ZWN0aW9uU3BhY2VBdXRoZW50aWNhdGlvblNjaGVtZU5UTE06Ci0gICAgY2FzZSBQcm90ZWN0
aW9uU3BhY2VBdXRoZW50aWNhdGlvblNjaGVtZU5lZ290aWF0ZToKLSAgICBjYXNlIFByb3RlY3Rp
b25TcGFjZUF1dGhlbnRpY2F0aW9uU2NoZW1lT0F1dGg6CisgICAgY2FzZSBQcm90ZWN0aW9uU3Bh
Y2U6OkF1dGhlbnRpY2F0aW9uU2NoZW1lOjpEZWZhdWx0OgorICAgIGNhc2UgUHJvdGVjdGlvblNw
YWNlOjpBdXRoZW50aWNhdGlvblNjaGVtZTo6SFRUUEJhc2ljOgorICAgIGNhc2UgUHJvdGVjdGlv
blNwYWNlOjpBdXRoZW50aWNhdGlvblNjaGVtZTo6SFRUUERpZ2VzdDoKKyAgICBjYXNlIFByb3Rl
Y3Rpb25TcGFjZTo6QXV0aGVudGljYXRpb25TY2hlbWU6OkhUTUxGb3JtOgorICAgIGNhc2UgUHJv
dGVjdGlvblNwYWNlOjpBdXRoZW50aWNhdGlvblNjaGVtZTo6TlRMTToKKyAgICBjYXNlIFByb3Rl
Y3Rpb25TcGFjZTo6QXV0aGVudGljYXRpb25TY2hlbWU6Ok5lZ290aWF0ZToKKyAgICBjYXNlIFBy
b3RlY3Rpb25TcGFjZTo6QXV0aGVudGljYXRpb25TY2hlbWU6Ok9BdXRoOgogICAgICAgICBzb3Vw
X2F1dGhfYXV0aGVudGljYXRlKGNoYWxsZW5nZS5zb3VwQXV0aCgpLCBjcmVkZW50aWFsLnVzZXIo
KS51dGY4KCkuZGF0YSgpLCBjcmVkZW50aWFsLnBhc3N3b3JkKCkudXRmOCgpLmRhdGEoKSk7CiAg
ICAgICAgIGJyZWFrOwotICAgIGNhc2UgUHJvdGVjdGlvblNwYWNlQXV0aGVudGljYXRpb25TY2hl
bWVDbGllbnRDZXJ0aWZpY2F0ZVBJTlJlcXVlc3RlZDogeworICAgIGNhc2UgUHJvdGVjdGlvblNw
YWNlOjpBdXRoZW50aWNhdGlvblNjaGVtZTo6Q2xpZW50Q2VydGlmaWNhdGVQSU5SZXF1ZXN0ZWQ6
IHsKICNpZiBVU0UoU09VUDIpCiAgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwogI2Vsc2UK
QEAgLTcwNywxNSArNzA3LDE1IEBAIHZvaWQgTmV0d29ya0RhdGFUYXNrU291cDo6Y29tcGxldGVB
dXRoZW50aWNhdGlvbihjb25zdCBBdXRoZW50aWNhdGlvbkNoYWxsZW5nZSYKICNlbmRpZgogICAg
ICAgICBicmVhazsKICAgICB9Ci0gICAgY2FzZSBQcm90ZWN0aW9uU3BhY2VBdXRoZW50aWNhdGlv
blNjaGVtZUNsaWVudENlcnRpZmljYXRlUmVxdWVzdGVkOgorICAgIGNhc2UgUHJvdGVjdGlvblNw
YWNlOjpBdXRoZW50aWNhdGlvblNjaGVtZTo6Q2xpZW50Q2VydGlmaWNhdGVSZXF1ZXN0ZWQ6CiAj
aWYgVVNFKFNPVVAyKQogICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKICNlbHNlCiAgICAg
ICAgIHNvdXBfbWVzc2FnZV9zZXRfdGxzX2NsaWVudF9jZXJ0aWZpY2F0ZShtX3NvdXBNZXNzYWdl
LmdldCgpLCBjcmVkZW50aWFsLmNlcnRpZmljYXRlKCkpOwogI2VuZGlmCiAgICAgICAgIGJyZWFr
OwotICAgIGNhc2UgUHJvdGVjdGlvblNwYWNlQXV0aGVudGljYXRpb25TY2hlbWVTZXJ2ZXJUcnVz
dEV2YWx1YXRpb25SZXF1ZXN0ZWQ6Ci0gICAgY2FzZSBQcm90ZWN0aW9uU3BhY2VBdXRoZW50aWNh
dGlvblNjaGVtZVVua25vd246CisgICAgY2FzZSBQcm90ZWN0aW9uU3BhY2U6OkF1dGhlbnRpY2F0
aW9uU2NoZW1lOjpTZXJ2ZXJUcnVzdEV2YWx1YXRpb25SZXF1ZXN0ZWQ6CisgICAgY2FzZSBQcm90
ZWN0aW9uU3BhY2U6OkF1dGhlbnRpY2F0aW9uU2NoZW1lOjpVbmtub3duOgogICAgICAgICBicmVh
azsKICAgICB9CiB9CkBAIC03MjMsMzEgKzcyMywzMSBAQCB2b2lkIE5ldHdvcmtEYXRhVGFza1Nv
dXA6OmNvbXBsZXRlQXV0aGVudGljYXRpb24oY29uc3QgQXV0aGVudGljYXRpb25DaGFsbGVuZ2Um
CiB2b2lkIE5ldHdvcmtEYXRhVGFza1NvdXA6OmNhbmNlbEF1dGhlbnRpY2F0aW9uKGNvbnN0IEF1
dGhlbnRpY2F0aW9uQ2hhbGxlbmdlJiBjaGFsbGVuZ2UpCiB7CiAgICAgc3dpdGNoIChjaGFsbGVu
Z2UucHJvdGVjdGlvblNwYWNlKCkuYXV0aGVudGljYXRpb25TY2hlbWUoKSkgewotICAgIGNhc2Ug
UHJvdGVjdGlvblNwYWNlQXV0aGVudGljYXRpb25TY2hlbWVEZWZhdWx0OgotICAgIGNhc2UgUHJv
dGVjdGlvblNwYWNlQXV0aGVudGljYXRpb25TY2hlbWVIVFRQQmFzaWM6Ci0gICAgY2FzZSBQcm90
ZWN0aW9uU3BhY2VBdXRoZW50aWNhdGlvblNjaGVtZUhUVFBEaWdlc3Q6Ci0gICAgY2FzZSBQcm90
ZWN0aW9uU3BhY2VBdXRoZW50aWNhdGlvblNjaGVtZUhUTUxGb3JtOgotICAgIGNhc2UgUHJvdGVj
dGlvblNwYWNlQXV0aGVudGljYXRpb25TY2hlbWVOVExNOgotICAgIGNhc2UgUHJvdGVjdGlvblNw
YWNlQXV0aGVudGljYXRpb25TY2hlbWVOZWdvdGlhdGU6Ci0gICAgY2FzZSBQcm90ZWN0aW9uU3Bh
Y2VBdXRoZW50aWNhdGlvblNjaGVtZU9BdXRoOgorICAgIGNhc2UgUHJvdGVjdGlvblNwYWNlOjpB
dXRoZW50aWNhdGlvblNjaGVtZTo6RGVmYXVsdDoKKyAgICBjYXNlIFByb3RlY3Rpb25TcGFjZTo6
QXV0aGVudGljYXRpb25TY2hlbWU6OkhUVFBCYXNpYzoKKyAgICBjYXNlIFByb3RlY3Rpb25TcGFj
ZTo6QXV0aGVudGljYXRpb25TY2hlbWU6OkhUVFBEaWdlc3Q6CisgICAgY2FzZSBQcm90ZWN0aW9u
U3BhY2U6OkF1dGhlbnRpY2F0aW9uU2NoZW1lOjpIVE1MRm9ybToKKyAgICBjYXNlIFByb3RlY3Rp
b25TcGFjZTo6QXV0aGVudGljYXRpb25TY2hlbWU6Ok5UTE06CisgICAgY2FzZSBQcm90ZWN0aW9u
U3BhY2U6OkF1dGhlbnRpY2F0aW9uU2NoZW1lOjpOZWdvdGlhdGU6CisgICAgY2FzZSBQcm90ZWN0
aW9uU3BhY2U6OkF1dGhlbnRpY2F0aW9uU2NoZW1lOjpPQXV0aDoKICAgICAgICAgc291cF9hdXRo
X2NhbmNlbChjaGFsbGVuZ2Uuc291cEF1dGgoKSk7CiAgICAgICAgIGJyZWFrOwotICAgIGNhc2Ug
UHJvdGVjdGlvblNwYWNlQXV0aGVudGljYXRpb25TY2hlbWVDbGllbnRDZXJ0aWZpY2F0ZVBJTlJl
cXVlc3RlZDoKKyAgICBjYXNlIFByb3RlY3Rpb25TcGFjZTo6QXV0aGVudGljYXRpb25TY2hlbWU6
OkNsaWVudENlcnRpZmljYXRlUElOUmVxdWVzdGVkOgogI2lmIFVTRShTT1VQMikKICAgICAgICAg
QVNTRVJUX05PVF9SRUFDSEVEKCk7CiAjZWxzZQogICAgICAgICBzb3VwX21lc3NhZ2VfdGxzX2Ns
aWVudF9jZXJ0aWZpY2F0ZV9wYXNzd29yZF9yZXF1ZXN0X2NvbXBsZXRlKG1fc291cE1lc3NhZ2Uu
Z2V0KCkpOwogI2VuZGlmCiAgICAgICAgIGJyZWFrOwotICAgIGNhc2UgUHJvdGVjdGlvblNwYWNl
QXV0aGVudGljYXRpb25TY2hlbWVDbGllbnRDZXJ0aWZpY2F0ZVJlcXVlc3RlZDoKKyAgICBjYXNl
IFByb3RlY3Rpb25TcGFjZTo6QXV0aGVudGljYXRpb25TY2hlbWU6OkNsaWVudENlcnRpZmljYXRl
UmVxdWVzdGVkOgogI2lmIFVTRShTT1VQMikKICAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7
CiAjZWxzZQogICAgICAgICBzb3VwX21lc3NhZ2Vfc2V0X3Rsc19jbGllbnRfY2VydGlmaWNhdGUo
bV9zb3VwTWVzc2FnZS5nZXQoKSwgbnVsbHB0cik7CiAjZW5kaWYKICAgICAgICAgYnJlYWs7Ci0g
ICAgY2FzZSBQcm90ZWN0aW9uU3BhY2VBdXRoZW50aWNhdGlvblNjaGVtZVNlcnZlclRydXN0RXZh
bHVhdGlvblJlcXVlc3RlZDoKLSAgICBjYXNlIFByb3RlY3Rpb25TcGFjZUF1dGhlbnRpY2F0aW9u
U2NoZW1lVW5rbm93bjoKKyAgICBjYXNlIFByb3RlY3Rpb25TcGFjZTo6QXV0aGVudGljYXRpb25T
Y2hlbWU6OlNlcnZlclRydXN0RXZhbHVhdGlvblJlcXVlc3RlZDoKKyAgICBjYXNlIFByb3RlY3Rp
b25TcGFjZTo6QXV0aGVudGljYXRpb25TY2hlbWU6OlVua25vd246CiAgICAgICAgIGJyZWFrOwog
ICAgIH0KIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0F1dGhlbnRpY2F0aW9u
L0F1dGhlbnRpY2F0aW9uTWFuYWdlci5jcHAgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9BdXRoZW50
aWNhdGlvbi9BdXRoZW50aWNhdGlvbk1hbmFnZXIuY3BwCmluZGV4IGY2MTEzNTUxNzU3OWI2YTc4
ZDY3Yjc2ODdkZTU0YzZjMmQzZDhkNzguLmEzOWMxZTE1ZjhjZjNhMDY0OGY2ZDhlMWViYWMzMzQz
N2JiMDNjNjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0F1dGhlbnRpY2F0aW9u
L0F1dGhlbnRpY2F0aW9uTWFuYWdlci5jcHAKKysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQvQXV0
aGVudGljYXRpb24vQXV0aGVudGljYXRpb25NYW5hZ2VyLmNwcApAQCAtNDUsNyArNDUsNyBAQCB1
c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKIHN0YXRpYyBib29sIGNhbkNvYWxlc2NlQ2hhbGxlbmdl
KGNvbnN0IFdlYkNvcmU6OkF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlJiBjaGFsbGVuZ2UpCiB7CiAg
ICAgLy8gRG8gbm90IGNvYWxlc2NlIHNlcnZlciB0cnVzdCBldmFsdWF0aW9uIHJlcXVlc3RzIGJl
Y2F1c2UgUHJvdGVjdGlvblNwYWNlIGNvbXBhcmlzb24gZG9lcyBub3QgZXZhbHVhdGUgc2VydmVy
IHRydXN0IChlLmcuIGNlcnRpZmljYXRlKS4KLSAgICByZXR1cm4gY2hhbGxlbmdlLnByb3RlY3Rp
b25TcGFjZSgpLmF1dGhlbnRpY2F0aW9uU2NoZW1lKCkgIT0gUHJvdGVjdGlvblNwYWNlQXV0aGVu
dGljYXRpb25TY2hlbWVTZXJ2ZXJUcnVzdEV2YWx1YXRpb25SZXF1ZXN0ZWQ7CisgICAgcmV0dXJu
IGNoYWxsZW5nZS5wcm90ZWN0aW9uU3BhY2UoKS5hdXRoZW50aWNhdGlvblNjaGVtZSgpICE9IFBy
b3RlY3Rpb25TcGFjZTo6QXV0aGVudGljYXRpb25TY2hlbWU6OlNlcnZlclRydXN0RXZhbHVhdGlv
blJlcXVlc3RlZDsKIH0KIAogY29uc3QgY2hhciogQXV0aGVudGljYXRpb25NYW5hZ2VyOjpzdXBw
bGVtZW50TmFtZSgpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJDb3JlQXJn
dW1lbnRDb2RlcnMuY3BwIGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViQ29yZUFyZ3VtZW50Q29k
ZXJzLmNwcAppbmRleCBhNjllYmM1OTYzMjU5ZWE0YWQ0NTE3MTViNzcxY2RkMmRiNjQ0MzE3Li5j
ODk4Njg3YjIyNmNjZTRiNGYzYjhiMWE4NWNiZWM3OTU4YjY3YWI2IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L1NoYXJlZC9XZWJDb3JlQXJndW1lbnRDb2RlcnMuY3BwCisrKyBiL1NvdXJjZS9X
ZWJLaXQvU2hhcmVkL1dlYkNvcmVBcmd1bWVudENvZGVycy5jcHAKQEAgLTk2MiwxMSArOTYyLDEx
IEBAIGJvb2wgQXJndW1lbnRDb2RlcjxQcm90ZWN0aW9uU3BhY2U+OjpkZWNvZGUoRGVjb2RlciYg
ZGVjb2RlciwgUHJvdGVjdGlvblNwYWNlJiBzCiAgICAgaWYgKCFkZWNvZGVyLmRlY29kZShyZWFs
bSkpCiAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICAKLSAgICBQcm90ZWN0aW9uU3BhY2VBdXRo
ZW50aWNhdGlvblNjaGVtZSBhdXRoZW50aWNhdGlvblNjaGVtZTsKKyAgICBQcm90ZWN0aW9uU3Bh
Y2U6OkF1dGhlbnRpY2F0aW9uU2NoZW1lIGF1dGhlbnRpY2F0aW9uU2NoZW1lOwogICAgIGlmICgh
ZGVjb2Rlci5kZWNvZGUoYXV0aGVudGljYXRpb25TY2hlbWUpKQogICAgICAgICByZXR1cm4gZmFs
c2U7CiAKLSAgICBQcm90ZWN0aW9uU3BhY2VTZXJ2ZXJUeXBlIHNlcnZlclR5cGU7CisgICAgUHJv
dGVjdGlvblNwYWNlOjpTZXJ2ZXJUeXBlIHNlcnZlclR5cGU7CiAgICAgaWYgKCFkZWNvZGVyLmRl
Y29kZShzZXJ2ZXJUeXBlKSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwogCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L1NoYXJlZC9jdXJsL1dlYkNvcmVBcmd1bWVudENvZGVyc0N1cmwuY3BwIGIv
U291cmNlL1dlYktpdC9TaGFyZWQvY3VybC9XZWJDb3JlQXJndW1lbnRDb2RlcnNDdXJsLmNwcApp
bmRleCA2ZmM1NDQzNDgyNTNmMTA4NTJhYWRiNTdlZTJiYmU0YTEwYTliZjdmLi5hYjY0ODNiODkx
ZGUyODk1NmExMGZiZTU2ZjQyOGUxOWQ4M2RkMDJlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L1NoYXJlZC9jdXJsL1dlYkNvcmVBcmd1bWVudENvZGVyc0N1cmwuY3BwCisrKyBiL1NvdXJjZS9X
ZWJLaXQvU2hhcmVkL2N1cmwvV2ViQ29yZUFyZ3VtZW50Q29kZXJzQ3VybC5jcHAKQEAgLTE2Mywx
MSArMTYzLDExIEBAIGJvb2wgQXJndW1lbnRDb2RlcjxQcm90ZWN0aW9uU3BhY2U+OjpkZWNvZGVQ
bGF0Zm9ybURhdGEoRGVjb2RlciYgZGVjb2RlciwgUHJvdGVjCiAgICAgaWYgKCFkZWNvZGVyLmRl
Y29kZShyZWFsbSkpCiAgICAgICAgIHJldHVybiBmYWxzZTsKIAotICAgIFByb3RlY3Rpb25TcGFj
ZUF1dGhlbnRpY2F0aW9uU2NoZW1lIGF1dGhlbnRpY2F0aW9uU2NoZW1lOworICAgIFByb3RlY3Rp
b25TcGFjZTo6QXV0aGVudGljYXRpb25TY2hlbWUgYXV0aGVudGljYXRpb25TY2hlbWU7CiAgICAg
aWYgKCFkZWNvZGVyLmRlY29kZShhdXRoZW50aWNhdGlvblNjaGVtZSkpCiAgICAgICAgIHJldHVy
biBmYWxzZTsKIAotICAgIFByb3RlY3Rpb25TcGFjZVNlcnZlclR5cGUgc2VydmVyVHlwZTsKKyAg
ICBQcm90ZWN0aW9uU3BhY2U6OlNlcnZlclR5cGUgc2VydmVyVHlwZTsKICAgICBpZiAoIWRlY29k
ZXIuZGVjb2RlKHNlcnZlclR5cGUpKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9DL1dLQVBJQ2FzdC5oIGIvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvQVBJL0MvV0tBUElDYXN0LmgKaW5kZXggNTEyYjJiYzY5NTI0Yjc5OTAx
ODU2NTJjYzEzNmNkNWEzODRhNjZjYy4uNTZlMDg0NDg4NzI5OWU4MGFjNjk1NWIwZTkzMmNhYTUw
ZjVkNGE5MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0MvV0tBUElD
YXN0LmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0MvV0tBUElDYXN0LmgKQEAg
LTI5MCw0OSArMjkwLDQ5IEBAIGlubGluZSBXZWJDb3JlOjpFZGl0YWJsZUxpbmtCZWhhdmlvciB0
b0VkaXRhYmxlTGlua0JlaGF2aW9yKFdLRWRpdGFibGVMaW5rQmVoYXZpCiAgICAgcmV0dXJuIFdl
YkNvcmU6OkVkaXRhYmxlTGlua0JlaGF2aW9yOjpOZXZlckxpdmU7CiB9CiAgICAgCi1pbmxpbmUg
V0tQcm90ZWN0aW9uU3BhY2VTZXJ2ZXJUeXBlIHRvQVBJKFdlYkNvcmU6OlByb3RlY3Rpb25TcGFj
ZVNlcnZlclR5cGUgdHlwZSkKK2lubGluZSBXS1Byb3RlY3Rpb25TcGFjZVNlcnZlclR5cGUgdG9B
UEkoV2ViQ29yZTo6UHJvdGVjdGlvblNwYWNlOjpTZXJ2ZXJUeXBlIHR5cGUpCiB7CiAgICAgc3dp
dGNoICh0eXBlKSB7Ci0gICAgY2FzZSBXZWJDb3JlOjpQcm90ZWN0aW9uU3BhY2VTZXJ2ZXJIVFRQ
OgorICAgIGNhc2UgV2ViQ29yZTo6UHJvdGVjdGlvblNwYWNlOjpTZXJ2ZXJUeXBlOjpIVFRQOgog
ICAgICAgICByZXR1cm4ga1dLUHJvdGVjdGlvblNwYWNlU2VydmVyVHlwZUhUVFA7Ci0gICAgY2Fz
ZSBXZWJDb3JlOjpQcm90ZWN0aW9uU3BhY2VTZXJ2ZXJIVFRQUzoKKyAgICBjYXNlIFdlYkNvcmU6
OlByb3RlY3Rpb25TcGFjZTo6U2VydmVyVHlwZTo6SFRUUFM6CiAgICAgICAgIHJldHVybiBrV0tQ
cm90ZWN0aW9uU3BhY2VTZXJ2ZXJUeXBlSFRUUFM7Ci0gICAgY2FzZSBXZWJDb3JlOjpQcm90ZWN0
aW9uU3BhY2VTZXJ2ZXJGVFA6CisgICAgY2FzZSBXZWJDb3JlOjpQcm90ZWN0aW9uU3BhY2U6OlNl
cnZlclR5cGU6OkZUUDoKICAgICAgICAgcmV0dXJuIGtXS1Byb3RlY3Rpb25TcGFjZVNlcnZlclR5
cGVGVFA7Ci0gICAgY2FzZSBXZWJDb3JlOjpQcm90ZWN0aW9uU3BhY2VTZXJ2ZXJGVFBTOgorICAg
IGNhc2UgV2ViQ29yZTo6UHJvdGVjdGlvblNwYWNlOjpTZXJ2ZXJUeXBlOjpGVFBTOgogICAgICAg
ICByZXR1cm4ga1dLUHJvdGVjdGlvblNwYWNlU2VydmVyVHlwZUZUUFM7Ci0gICAgY2FzZSBXZWJD
b3JlOjpQcm90ZWN0aW9uU3BhY2VQcm94eUhUVFA6CisgICAgY2FzZSBXZWJDb3JlOjpQcm90ZWN0
aW9uU3BhY2U6OlNlcnZlclR5cGU6OlByb3h5SFRUUDoKICAgICAgICAgcmV0dXJuIGtXS1Byb3Rl
Y3Rpb25TcGFjZVByb3h5VHlwZUhUVFA7Ci0gICAgY2FzZSBXZWJDb3JlOjpQcm90ZWN0aW9uU3Bh
Y2VQcm94eUhUVFBTOgorICAgIGNhc2UgV2ViQ29yZTo6UHJvdGVjdGlvblNwYWNlOjpTZXJ2ZXJU
eXBlOjpQcm94eUhUVFBTOgogICAgICAgICByZXR1cm4ga1dLUHJvdGVjdGlvblNwYWNlUHJveHlU
eXBlSFRUUFM7Ci0gICAgY2FzZSBXZWJDb3JlOjpQcm90ZWN0aW9uU3BhY2VQcm94eUZUUDoKKyAg
ICBjYXNlIFdlYkNvcmU6OlByb3RlY3Rpb25TcGFjZTo6U2VydmVyVHlwZTo6UHJveHlGVFA6CiAg
ICAgICAgIHJldHVybiBrV0tQcm90ZWN0aW9uU3BhY2VQcm94eVR5cGVGVFA7Ci0gICAgY2FzZSBX
ZWJDb3JlOjpQcm90ZWN0aW9uU3BhY2VQcm94eVNPQ0tTOgorICAgIGNhc2UgV2ViQ29yZTo6UHJv
dGVjdGlvblNwYWNlOjpTZXJ2ZXJUeXBlOjpQcm94eVNPQ0tTOgogICAgICAgICByZXR1cm4ga1dL
UHJvdGVjdGlvblNwYWNlUHJveHlUeXBlU09DS1M7CiAgICAgfQogICAgIHJldHVybiBrV0tQcm90
ZWN0aW9uU3BhY2VTZXJ2ZXJUeXBlSFRUUDsKIH0KIAotaW5saW5lIFdLUHJvdGVjdGlvblNwYWNl
QXV0aGVudGljYXRpb25TY2hlbWUgdG9BUEkoV2ViQ29yZTo6UHJvdGVjdGlvblNwYWNlQXV0aGVu
dGljYXRpb25TY2hlbWUgdHlwZSkKK2lubGluZSBXS1Byb3RlY3Rpb25TcGFjZUF1dGhlbnRpY2F0
aW9uU2NoZW1lIHRvQVBJKFdlYkNvcmU6OlByb3RlY3Rpb25TcGFjZTo6QXV0aGVudGljYXRpb25T
Y2hlbWUgdHlwZSkKIHsKICAgICBzd2l0Y2ggKHR5cGUpIHsKLSAgICBjYXNlIFdlYkNvcmU6OlBy
b3RlY3Rpb25TcGFjZUF1dGhlbnRpY2F0aW9uU2NoZW1lRGVmYXVsdDoKKyAgICBjYXNlIFdlYkNv
cmU6OlByb3RlY3Rpb25TcGFjZTo6QXV0aGVudGljYXRpb25TY2hlbWU6OkRlZmF1bHQ6CiAgICAg
ICAgIHJldHVybiBrV0tQcm90ZWN0aW9uU3BhY2VBdXRoZW50aWNhdGlvblNjaGVtZURlZmF1bHQ7
Ci0gICAgY2FzZSBXZWJDb3JlOjpQcm90ZWN0aW9uU3BhY2VBdXRoZW50aWNhdGlvblNjaGVtZUhU
VFBCYXNpYzoKKyAgICBjYXNlIFdlYkNvcmU6OlByb3RlY3Rpb25TcGFjZTo6QXV0aGVudGljYXRp
b25TY2hlbWU6OkhUVFBCYXNpYzoKICAgICAgICAgcmV0dXJuIGtXS1Byb3RlY3Rpb25TcGFjZUF1
dGhlbnRpY2F0aW9uU2NoZW1lSFRUUEJhc2ljOwotICAgIGNhc2UgV2ViQ29yZTo6UHJvdGVjdGlv
blNwYWNlQXV0aGVudGljYXRpb25TY2hlbWVIVFRQRGlnZXN0OgorICAgIGNhc2UgV2ViQ29yZTo6
UHJvdGVjdGlvblNwYWNlOjpBdXRoZW50aWNhdGlvblNjaGVtZTo6SFRUUERpZ2VzdDoKICAgICAg
ICAgcmV0dXJuIGtXS1Byb3RlY3Rpb25TcGFjZUF1dGhlbnRpY2F0aW9uU2NoZW1lSFRUUERpZ2Vz
dDsKLSAgICBjYXNlIFdlYkNvcmU6OlByb3RlY3Rpb25TcGFjZUF1dGhlbnRpY2F0aW9uU2NoZW1l
SFRNTEZvcm06CisgICAgY2FzZSBXZWJDb3JlOjpQcm90ZWN0aW9uU3BhY2U6OkF1dGhlbnRpY2F0
aW9uU2NoZW1lOjpIVE1MRm9ybToKICAgICAgICAgcmV0dXJuIGtXS1Byb3RlY3Rpb25TcGFjZUF1
dGhlbnRpY2F0aW9uU2NoZW1lSFRNTEZvcm07Ci0gICAgY2FzZSBXZWJDb3JlOjpQcm90ZWN0aW9u
U3BhY2VBdXRoZW50aWNhdGlvblNjaGVtZU5UTE06CisgICAgY2FzZSBXZWJDb3JlOjpQcm90ZWN0
aW9uU3BhY2U6OkF1dGhlbnRpY2F0aW9uU2NoZW1lOjpOVExNOgogICAgICAgICByZXR1cm4ga1dL
UHJvdGVjdGlvblNwYWNlQXV0aGVudGljYXRpb25TY2hlbWVOVExNOwotICAgIGNhc2UgV2ViQ29y
ZTo6UHJvdGVjdGlvblNwYWNlQXV0aGVudGljYXRpb25TY2hlbWVOZWdvdGlhdGU6CisgICAgY2Fz
ZSBXZWJDb3JlOjpQcm90ZWN0aW9uU3BhY2U6OkF1dGhlbnRpY2F0aW9uU2NoZW1lOjpOZWdvdGlh
dGU6CiAgICAgICAgIHJldHVybiBrV0tQcm90ZWN0aW9uU3BhY2VBdXRoZW50aWNhdGlvblNjaGVt
ZU5lZ290aWF0ZTsKLSAgICBjYXNlIFdlYkNvcmU6OlByb3RlY3Rpb25TcGFjZUF1dGhlbnRpY2F0
aW9uU2NoZW1lQ2xpZW50Q2VydGlmaWNhdGVSZXF1ZXN0ZWQ6CisgICAgY2FzZSBXZWJDb3JlOjpQ
cm90ZWN0aW9uU3BhY2U6OkF1dGhlbnRpY2F0aW9uU2NoZW1lOjpDbGllbnRDZXJ0aWZpY2F0ZVJl
cXVlc3RlZDoKICAgICAgICAgcmV0dXJuIGtXS1Byb3RlY3Rpb25TcGFjZUF1dGhlbnRpY2F0aW9u
U2NoZW1lQ2xpZW50Q2VydGlmaWNhdGVSZXF1ZXN0ZWQ7Ci0gICAgY2FzZSBXZWJDb3JlOjpQcm90
ZWN0aW9uU3BhY2VBdXRoZW50aWNhdGlvblNjaGVtZVNlcnZlclRydXN0RXZhbHVhdGlvblJlcXVl
c3RlZDoKKyAgICBjYXNlIFdlYkNvcmU6OlByb3RlY3Rpb25TcGFjZTo6QXV0aGVudGljYXRpb25T
Y2hlbWU6OlNlcnZlclRydXN0RXZhbHVhdGlvblJlcXVlc3RlZDoKICAgICAgICAgcmV0dXJuIGtX
S1Byb3RlY3Rpb25TcGFjZUF1dGhlbnRpY2F0aW9uU2NoZW1lU2VydmVyVHJ1c3RFdmFsdWF0aW9u
UmVxdWVzdGVkOwotICAgIGNhc2UgV2ViQ29yZTo6UHJvdGVjdGlvblNwYWNlQXV0aGVudGljYXRp
b25TY2hlbWVPQXV0aDoKKyAgICBjYXNlIFdlYkNvcmU6OlByb3RlY3Rpb25TcGFjZTo6QXV0aGVu
dGljYXRpb25TY2hlbWU6Ok9BdXRoOgogICAgICAgICByZXR1cm4ga1dLUHJvdGVjdGlvblNwYWNl
QXV0aGVudGljYXRpb25TY2hlbWVPQXV0aDsKICAgICBkZWZhdWx0OgogICAgICAgICByZXR1cm4g
a1dLUHJvdGVjdGlvblNwYWNlQXV0aGVudGljYXRpb25TY2hlbWVVbmtub3duOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2dsaWIvV2ViS2l0QXV0aGVudGljYXRpb25S
ZXF1ZXN0LmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9nbGliL1dlYktpdEF1dGhl
bnRpY2F0aW9uUmVxdWVzdC5jcHAKaW5kZXggY2U0MzI5YmM4OWU3YWIwNmQ3YzI0YWVmMTVkNzZi
OTNlZDM0MDBjNi4uZjdkYTJkNWJmMDJlNDVhODZmZmFlZjA4ODZiZTBjZTE0YzhhNTg5NyAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2dsaWIvV2ViS2l0QXV0aGVudGlj
YXRpb25SZXF1ZXN0LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvZ2xpYi9X
ZWJLaXRBdXRoZW50aWNhdGlvblJlcXVlc3QuY3BwCkBAIC03OSwyOCArNzksMjggQEAgc3RhdGlj
IGd1aW50IHNpZ25hbHNbTEFTVF9TSUdOQUxdID0geyAwLCB9OwogCiBXRUJLSVRfREVGSU5FX1RZ
UEUoV2ViS2l0QXV0aGVudGljYXRpb25SZXF1ZXN0LCB3ZWJraXRfYXV0aGVudGljYXRpb25fcmVx
dWVzdCwgR19UWVBFX09CSkVDVCkKIAotc3RhdGljIGlubGluZSBXZWJLaXRBdXRoZW50aWNhdGlv
blNjaGVtZSB0b1dlYktpdEF1dGhlbnRpY2F0aW9uU2NoZW1lKFdlYkNvcmU6OlByb3RlY3Rpb25T
cGFjZUF1dGhlbnRpY2F0aW9uU2NoZW1lIGNvcmVTY2hlbWUpCitzdGF0aWMgaW5saW5lIFdlYktp
dEF1dGhlbnRpY2F0aW9uU2NoZW1lIHRvV2ViS2l0QXV0aGVudGljYXRpb25TY2hlbWUoV2ViQ29y
ZTo6UHJvdGVjdGlvblNwYWNlOjpBdXRoZW50aWNhdGlvblNjaGVtZSBjb3JlU2NoZW1lKQogewog
ICAgIHN3aXRjaCAoY29yZVNjaGVtZSkgewotICAgIGNhc2UgV2ViQ29yZTo6UHJvdGVjdGlvblNw
YWNlQXV0aGVudGljYXRpb25TY2hlbWVEZWZhdWx0OgorICAgIGNhc2UgV2ViQ29yZTo6UHJvdGVj
dGlvblNwYWNlOjpBdXRoZW50aWNhdGlvblNjaGVtZURlZmF1bHQ6CiAgICAgICAgIHJldHVybiBX
RUJLSVRfQVVUSEVOVElDQVRJT05fU0NIRU1FX0RFRkFVTFQ7Ci0gICAgY2FzZSBXZWJDb3JlOjpQ
cm90ZWN0aW9uU3BhY2VBdXRoZW50aWNhdGlvblNjaGVtZUhUVFBCYXNpYzoKKyAgICBjYXNlIFdl
YkNvcmU6OlByb3RlY3Rpb25TcGFjZTo6QXV0aGVudGljYXRpb25TY2hlbWU6OkhUVFBCYXNpYzoK
ICAgICAgICAgcmV0dXJuIFdFQktJVF9BVVRIRU5USUNBVElPTl9TQ0hFTUVfSFRUUF9CQVNJQzsK
LSAgICBjYXNlIFdlYkNvcmU6OlByb3RlY3Rpb25TcGFjZUF1dGhlbnRpY2F0aW9uU2NoZW1lSFRU
UERpZ2VzdDoKKyAgICBjYXNlIFdlYkNvcmU6OlByb3RlY3Rpb25TcGFjZTo6QXV0aGVudGljYXRp
b25TY2hlbWU6OkhUVFBEaWdlc3Q6CiAgICAgICAgIHJldHVybiBXRUJLSVRfQVVUSEVOVElDQVRJ
T05fU0NIRU1FX0hUVFBfRElHRVNUOwotICAgIGNhc2UgV2ViQ29yZTo6UHJvdGVjdGlvblNwYWNl
QXV0aGVudGljYXRpb25TY2hlbWVIVE1MRm9ybToKKyAgICBjYXNlIFdlYkNvcmU6OlByb3RlY3Rp
b25TcGFjZTo6QXV0aGVudGljYXRpb25TY2hlbWU6OkhUTUxGb3JtOgogICAgICAgICByZXR1cm4g
V0VCS0lUX0FVVEhFTlRJQ0FUSU9OX1NDSEVNRV9IVE1MX0ZPUk07Ci0gICAgY2FzZSBXZWJDb3Jl
OjpQcm90ZWN0aW9uU3BhY2VBdXRoZW50aWNhdGlvblNjaGVtZU5UTE06CisgICAgY2FzZSBXZWJD
b3JlOjpQcm90ZWN0aW9uU3BhY2U6OkF1dGhlbnRpY2F0aW9uU2NoZW1lOjpOVExNOgogICAgICAg
ICByZXR1cm4gV0VCS0lUX0FVVEhFTlRJQ0FUSU9OX1NDSEVNRV9OVExNOwotICAgIGNhc2UgV2Vi
Q29yZTo6UHJvdGVjdGlvblNwYWNlQXV0aGVudGljYXRpb25TY2hlbWVOZWdvdGlhdGU6CisgICAg
Y2FzZSBXZWJDb3JlOjpQcm90ZWN0aW9uU3BhY2U6OkF1dGhlbnRpY2F0aW9uU2NoZW1lOjpOZWdv
dGlhdGU6CiAgICAgICAgIHJldHVybiBXRUJLSVRfQVVUSEVOVElDQVRJT05fU0NIRU1FX05FR09U
SUFURTsKLSAgICBjYXNlIFdlYkNvcmU6OlByb3RlY3Rpb25TcGFjZUF1dGhlbnRpY2F0aW9uU2No
ZW1lQ2xpZW50Q2VydGlmaWNhdGVSZXF1ZXN0ZWQ6CisgICAgY2FzZSBXZWJDb3JlOjpQcm90ZWN0
aW9uU3BhY2U6OkF1dGhlbnRpY2F0aW9uU2NoZW1lOjpDbGllbnRDZXJ0aWZpY2F0ZVJlcXVlc3Rl
ZDoKICAgICAgICAgcmV0dXJuIFdFQktJVF9BVVRIRU5USUNBVElPTl9TQ0hFTUVfQ0xJRU5UX0NF
UlRJRklDQVRFX1JFUVVFU1RFRDsKLSAgICBjYXNlIFdlYkNvcmU6OlByb3RlY3Rpb25TcGFjZUF1
dGhlbnRpY2F0aW9uU2NoZW1lU2VydmVyVHJ1c3RFdmFsdWF0aW9uUmVxdWVzdGVkOgorICAgIGNh
c2UgV2ViQ29yZTo6UHJvdGVjdGlvblNwYWNlOjpBdXRoZW50aWNhdGlvblNjaGVtZTo6U2VydmVy
VHJ1c3RFdmFsdWF0aW9uUmVxdWVzdGVkOgogICAgICAgICByZXR1cm4gV0VCS0lUX0FVVEhFTlRJ
Q0FUSU9OX1NDSEVNRV9TRVJWRVJfVFJVU1RfRVZBTFVBVElPTl9SRVFVRVNURUQ7Ci0gICAgY2Fz
ZSBXZWJDb3JlOjpQcm90ZWN0aW9uU3BhY2VBdXRoZW50aWNhdGlvblNjaGVtZUNsaWVudENlcnRp
ZmljYXRlUElOUmVxdWVzdGVkOgorICAgIGNhc2UgV2ViQ29yZTo6UHJvdGVjdGlvblNwYWNlOjpB
dXRoZW50aWNhdGlvblNjaGVtZTo6Q2xpZW50Q2VydGlmaWNhdGVQSU5SZXF1ZXN0ZWQ6CiAgICAg
ICAgIHJldHVybiBXRUJLSVRfQVVUSEVOVElDQVRJT05fU0NIRU1FX0NMSUVOVF9DRVJUSUZJQ0FU
RV9QSU5fUkVRVUVTVEVEOwotICAgIGNhc2UgV2ViQ29yZTo6UHJvdGVjdGlvblNwYWNlQXV0aGVu
dGljYXRpb25TY2hlbWVVbmtub3duOgorICAgIGNhc2UgV2ViQ29yZTo6UHJvdGVjdGlvblNwYWNl
OjpBdXRoZW50aWNhdGlvblNjaGVtZTo6VW5rbm93bjoKICAgICAgICAgcmV0dXJuIFdFQktJVF9B
VVRIRU5USUNBVElPTl9TQ0hFTUVfVU5LTk9XTjsKICAgICBkZWZhdWx0OgogICAgICAgICBBU1NF
UlRfTk9UX1JFQUNIRUQoKTsKQEAgLTM0OCwyMiArMzQ4LDIyIEBAIFdlYktpdFNlY3VyaXR5T3Jp
Z2luKiB3ZWJraXRfYXV0aGVudGljYXRpb25fcmVxdWVzdF9nZXRfc2VjdXJpdHlfb3JpZ2luKFdl
YktpdEF1CiAgICAgY29uc3QgYXV0byYgcHJvdGVjdGlvblNwYWNlID0gcmVxdWVzdC0+cHJpdi0+
YXV0aGVudGljYXRpb25DaGFsbGVuZ2UtPmNvcmUoKS5wcm90ZWN0aW9uU3BhY2UoKTsKICAgICBT
dHJpbmcgcHJvdG9jb2w7CiAgICAgc3dpdGNoIChwcm90ZWN0aW9uU3BhY2Uuc2VydmVyVHlwZSgp
KSB7Ci0gICAgY2FzZSBQcm90ZWN0aW9uU3BhY2VTZXJ2ZXJIVFRQOgotICAgIGNhc2UgUHJvdGVj
dGlvblNwYWNlUHJveHlIVFRQOgorICAgIGNhc2UgUHJvdGVjdGlvblNwYWNlOjpTZXJ2ZXJUeXBl
OjpIVFRQOgorICAgIGNhc2UgUHJvdGVjdGlvblNwYWNlOjpTZXJ2ZXJUeXBlOjpQcm94eUhUVFA6
CiAgICAgICAgIHByb3RvY29sID0gImh0dHAiX3M7CiAgICAgICAgIGJyZWFrOwotICAgIGNhc2Ug
UHJvdGVjdGlvblNwYWNlU2VydmVySFRUUFM6Ci0gICAgY2FzZSBQcm90ZWN0aW9uU3BhY2VQcm94
eUhUVFBTOgorICAgIGNhc2UgUHJvdGVjdGlvblNwYWNlOjpTZXJ2ZXJUeXBlOjpIVFRQUzoKKyAg
ICBjYXNlIFByb3RlY3Rpb25TcGFjZTo6U2VydmVyVHlwZTo6UHJveHlIVFRQUzoKICAgICAgICAg
cHJvdG9jb2wgPSAiaHR0cHMiX3M7CiAgICAgICAgIGJyZWFrOwotICAgIGNhc2UgUHJvdGVjdGlv
blNwYWNlU2VydmVyRlRQOgotICAgIGNhc2UgUHJvdGVjdGlvblNwYWNlUHJveHlGVFA6CisgICAg
Y2FzZSBQcm90ZWN0aW9uU3BhY2U6OlNlcnZlclR5cGU6OkZUUDoKKyAgICBjYXNlIFByb3RlY3Rp
b25TcGFjZTo6U2VydmVyVHlwZTo6UHJveHlGVFA6CiAgICAgICAgIHByb3RvY29sID0gImZ0cCJf
czsKICAgICAgICAgYnJlYWs7Ci0gICAgY2FzZSBQcm90ZWN0aW9uU3BhY2VTZXJ2ZXJGVFBTOgor
ICAgIGNhc2UgUHJvdGVjdGlvblNwYWNlOjpTZXJ2ZXJUeXBlOjpGVFBTOgogICAgICAgICBwcm90
b2NvbCA9ICJmdHBzIl9zOwogICAgICAgICBicmVhazsKLSAgICBjYXNlIFByb3RlY3Rpb25TcGFj
ZVByb3h5U09DS1M6CisgICAgY2FzZSBQcm90ZWN0aW9uU3BhY2U6OlNlcnZlclR5cGU6OlByb3h5
U09DS1M6CiAgICAgICAgIHByb3RvY29sID0gInNvY2tzIl9zOwogICAgICAgICBicmVhazsKICAg
ICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BdXRoZW50aWNhdGlvbi9X
ZWJQcm90ZWN0aW9uU3BhY2UuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQXV0aGVudGlj
YXRpb24vV2ViUHJvdGVjdGlvblNwYWNlLmNwcAppbmRleCAzZDM4ZTIyNDJkYmFiNTEyZTAxMjFi
ZDlkNjFkMTFkZTljOGVkOTg4Li4xNTJhY2NiZDk2NjliMTA5OWY4YjA5NGQxMTJiYTY1MWZiOTBh
ODVkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BdXRoZW50aWNhdGlvbi9X
ZWJQcm90ZWN0aW9uU3BhY2UuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0F1dGhl
bnRpY2F0aW9uL1dlYlByb3RlY3Rpb25TcGFjZS5jcHAKQEAgLTU1LDcgKzU1LDcgQEAgYm9vbCBX
ZWJQcm90ZWN0aW9uU3BhY2U6OmlzUHJveHkoKSBjb25zdAogICAgIHJldHVybiBtX2NvcmVQcm90
ZWN0aW9uU3BhY2UuaXNQcm94eSgpOwogfQogCi1XZWJDb3JlOjpQcm90ZWN0aW9uU3BhY2VTZXJ2
ZXJUeXBlIFdlYlByb3RlY3Rpb25TcGFjZTo6c2VydmVyVHlwZSgpIGNvbnN0CitXZWJDb3JlOjpQ
cm90ZWN0aW9uU3BhY2U6OlNlcnZlclR5cGUgV2ViUHJvdGVjdGlvblNwYWNlOjpzZXJ2ZXJUeXBl
KCkgY29uc3QKIHsKICAgICByZXR1cm4gbV9jb3JlUHJvdGVjdGlvblNwYWNlLnNlcnZlclR5cGUo
KTsKIH0KQEAgLTY1LDcgKzY1LDcgQEAgYm9vbCBXZWJQcm90ZWN0aW9uU3BhY2U6OnJlY2VpdmVz
Q3JlZGVudGlhbFNlY3VyZWx5KCkgY29uc3QKICAgICByZXR1cm4gbV9jb3JlUHJvdGVjdGlvblNw
YWNlLnJlY2VpdmVzQ3JlZGVudGlhbFNlY3VyZWx5KCk7CiB9CiAKLVdlYkNvcmU6OlByb3RlY3Rp
b25TcGFjZUF1dGhlbnRpY2F0aW9uU2NoZW1lIFdlYlByb3RlY3Rpb25TcGFjZTo6YXV0aGVudGlj
YXRpb25TY2hlbWUoKSBjb25zdAorV2ViQ29yZTo6UHJvdGVjdGlvblNwYWNlOjpBdXRoZW50aWNh
dGlvblNjaGVtZSBXZWJQcm90ZWN0aW9uU3BhY2U6OmF1dGhlbnRpY2F0aW9uU2NoZW1lKCkgY29u
c3QKIHsKICAgICByZXR1cm4gbV9jb3JlUHJvdGVjdGlvblNwYWNlLmF1dGhlbnRpY2F0aW9uU2No
ZW1lKCk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BdXRoZW50aWNh
dGlvbi9XZWJQcm90ZWN0aW9uU3BhY2UuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0F1dGhl
bnRpY2F0aW9uL1dlYlByb3RlY3Rpb25TcGFjZS5oCmluZGV4IDI4YmViYTZlOGMwYzg2NzFmNjk5
MWIxZTdhMzI4NGRlYmEzYzE3YTAuLjRhM2I4NzlkNTQ4YWNkNjk4ZjA3MDhlMjcyZWY1ZTRjNTU4
NjNmMjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0F1dGhlbnRpY2F0aW9u
L1dlYlByb3RlY3Rpb25TcGFjZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0F1dGhl
bnRpY2F0aW9uL1dlYlByb3RlY3Rpb25TcGFjZS5oCkBAIC00Myw5ICs0Myw5IEBAIHB1YmxpYzoK
ICAgICBpbnQgcG9ydCgpIGNvbnN0OwogICAgIGNvbnN0IFN0cmluZyYgcmVhbG0oKSBjb25zdDsK
ICAgICBib29sIGlzUHJveHkoKSBjb25zdDsKLSAgICBXZWJDb3JlOjpQcm90ZWN0aW9uU3BhY2VT
ZXJ2ZXJUeXBlIHNlcnZlclR5cGUoKSBjb25zdDsKKyAgICBXZWJDb3JlOjpQcm90ZWN0aW9uU3Bh
Y2U6OlNlcnZlclR5cGUgc2VydmVyVHlwZSgpIGNvbnN0OwogICAgIGJvb2wgcmVjZWl2ZXNDcmVk
ZW50aWFsU2VjdXJlbHkoKSBjb25zdDsKLSAgICBXZWJDb3JlOjpQcm90ZWN0aW9uU3BhY2VBdXRo
ZW50aWNhdGlvblNjaGVtZSBhdXRoZW50aWNhdGlvblNjaGVtZSgpIGNvbnN0OworICAgIFdlYkNv
cmU6OlByb3RlY3Rpb25TcGFjZTo6QXV0aGVudGljYXRpb25TY2hlbWUgYXV0aGVudGljYXRpb25T
Y2hlbWUoKSBjb25zdDsKIAogICAgIGNvbnN0IFdlYkNvcmU6OlByb3RlY3Rpb25TcGFjZSYgcHJv
dGVjdGlvblNwYWNlKCkgY29uc3QgeyByZXR1cm4gbV9jb3JlUHJvdGVjdGlvblNwYWNlOyB9CiAK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nl
c3NQcm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9j
ZXNzUHJveHkuY3BwCmluZGV4IGI3ZWFhZDQyNTA1Y2U3NGI3NzZmNDVjN2VhOGY2ZWIyOWY2MTA1
ODYuLmNhMWJmMTBkOGYyNjkyMzY1ZDM1NzE5YjczYzQwMzE4OTA2ZWJhZWUgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nlc3NQcm94eS5jcHAK
KysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvTmV0d29yay9OZXR3b3JrUHJvY2Vzc1Byb3h5
LmNwcApAQCAtNDIxLDcgKzQyMSw3IEBAIHZvaWQgTmV0d29ya1Byb2Nlc3NQcm94eTo6ZGlkUmVj
ZWl2ZUludmFsaWRNZXNzYWdlKElQQzo6Q29ubmVjdGlvbiYgY29ubmVjdGlvbiwKIHZvaWQgTmV0
d29ya1Byb2Nlc3NQcm94eTo6cHJvY2Vzc0F1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlKFBBTDo6U2Vz
c2lvbklEIHNlc3Npb25JRCwgUmVmPEF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlUHJveHk+JiYgYXV0
aGVudGljYXRpb25DaGFsbGVuZ2UpCiB7CiAgICAgYXV0byogc3RvcmUgPSB3ZWJzaXRlRGF0YVN0
b3JlRnJvbVNlc3Npb25JRChzZXNzaW9uSUQpOwotICAgIGlmICghc3RvcmUgfHwgYXV0aGVudGlj
YXRpb25DaGFsbGVuZ2UtPmNvcmUoKS5wcm90ZWN0aW9uU3BhY2UoKS5hdXRoZW50aWNhdGlvblNj
aGVtZSgpICE9IFByb3RlY3Rpb25TcGFjZUF1dGhlbnRpY2F0aW9uU2NoZW1lU2VydmVyVHJ1c3RF
dmFsdWF0aW9uUmVxdWVzdGVkKSB7CisgICAgaWYgKCFzdG9yZSB8fCBhdXRoZW50aWNhdGlvbkNo
YWxsZW5nZS0+Y29yZSgpLnByb3RlY3Rpb25TcGFjZSgpLmF1dGhlbnRpY2F0aW9uU2NoZW1lKCkg
IT0gUHJvdGVjdGlvblNwYWNlOjpBdXRoZW50aWNhdGlvblNjaGVtZTo6U2VydmVyVHJ1c3RFdmFs
dWF0aW9uUmVxdWVzdGVkKSB7CiAgICAgICAgIGF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlLT5saXN0
ZW5lcigpLmNvbXBsZXRlQ2hhbGxlbmdlKEF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlRGlzcG9zaXRp
b246OlBlcmZvcm1EZWZhdWx0SGFuZGxpbmcpOwogICAgICAgICByZXR1cm47CiAgICAgfQpAQCAt
NDMyLDcgKzQzMiw3IEBAIHZvaWQgTmV0d29ya1Byb2Nlc3NQcm94eTo6ZGlkUmVjZWl2ZUF1dGhl
bnRpY2F0aW9uQ2hhbGxlbmdlKFBBTDo6U2Vzc2lvbklEIHNlc3NpCiB7CiAjaWYgSEFWRShTRUNf
S0VZX1BST1hZKQogICAgIFdlYWtQdHI8U2VjS2V5UHJveHlTdG9yZT4gc2VjS2V5UHJveHlTdG9y
ZTsKLSAgICBpZiAoY29yZUNoYWxsZW5nZS5wcm90ZWN0aW9uU3BhY2UoKS5hdXRoZW50aWNhdGlv
blNjaGVtZSgpID09IFByb3RlY3Rpb25TcGFjZUF1dGhlbnRpY2F0aW9uU2NoZW1lQ2xpZW50Q2Vy
dGlmaWNhdGVSZXF1ZXN0ZWQpIHsKKyAgICBpZiAoY29yZUNoYWxsZW5nZS5wcm90ZWN0aW9uU3Bh
Y2UoKS5hdXRoZW50aWNhdGlvblNjaGVtZSgpID09IFByb3RlY3Rpb25TcGFjZTo6QXV0aGVudGlj
YXRpb25TY2hlbWU6OkNsaWVudENlcnRpZmljYXRlUmVxdWVzdGVkKSB7CiAgICAgICAgIGlmIChh
dXRvKiBzdG9yZSA9IHdlYnNpdGVEYXRhU3RvcmVGcm9tU2Vzc2lvbklEKHNlc3Npb25JRCkpIHsK
ICAgICAgICAgICAgIGF1dG8gbmV3U2VjS2V5UHJveHlTdG9yZSA9IFNlY0tleVByb3h5U3RvcmU6
OmNyZWF0ZSgpOwogICAgICAgICAgICAgc2VjS2V5UHJveHlTdG9yZSA9IG5ld1NlY0tleVByb3h5
U3RvcmU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJDb3JlU3VwcG9y
dC9XZWJGcmFtZUxvYWRlckNsaWVudC5tbSBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYkNv
cmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50Lm1tCmluZGV4IGFhMmNjOTgxNDc0YTEzY2U1
MDg0Nzk4OTQyMzY4NDQ5MWM4OGY2ZTIuLjQzZTYzZjQ1NjM0NWVjZjFjOTI0ZTViNzcyYTZmNTQx
NzNhOTE0MmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYkNvcmVTdXBw
b3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFj
L1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50Lm1tCkBAIC00MjksNyArNDI5LDcg
QEAgYm9vbCBXZWJGcmFtZUxvYWRlckNsaWVudDo6Y2FuQXV0aGVudGljYXRlQWdhaW5zdFByb3Rl
Y3Rpb25TcGFjZShXZWJDb3JlOjpEb2N1bWUKICAgICAvLyBJZiBvdXIgcmVzb3VyY2UgbG9hZCBk
ZWxlZ2F0ZSBkb2Vzbid0IGhhbmRsZSB0aGUgcXVlc3Rpb24sIHRoZW4gb25seSBzZW5kIGF1dGhl
bnRpY2F0aW9uCiAgICAgLy8gY2hhbGxlbmdlcyBmb3IgcHJlLWlPUy0zLjAsIHByZS0xMC42IHBy
b3RlY3Rpb24gc3BhY2VzLiAgVGhpcyBpcyB0aGUgc2FtZSBhcyB0aGUgZGVmYXVsdCBpbXBsZW1l
bnRhdGlvbgogICAgIC8vIGluIENGTmV0d29yay4KLSAgICByZXR1cm4gKHByb3RlY3Rpb25TcGFj
ZS5hdXRoZW50aWNhdGlvblNjaGVtZSgpIDwgV2ViQ29yZTo6UHJvdGVjdGlvblNwYWNlQXV0aGVu
dGljYXRpb25TY2hlbWVDbGllbnRDZXJ0aWZpY2F0ZVJlcXVlc3RlZCk7CisgICAgcmV0dXJuIChw
cm90ZWN0aW9uU3BhY2UuYXV0aGVudGljYXRpb25TY2hlbWUoKSA8IFdlYkNvcmU6OlByb3RlY3Rp
b25TcGFjZTo6QXV0aGVudGljYXRpb25TY2hlbWU6OkNsaWVudENlcnRpZmljYXRlUmVxdWVzdGVk
KTsKIH0KICNlbmRpZgogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9XZWJV
UkxQcm90ZWN0aW9uU3BhY2UuY3BwIGIvU291cmNlL1dlYktpdExlZ2FjeS93aW4vV2ViVVJMUHJv
dGVjdGlvblNwYWNlLmNwcAppbmRleCBkNzIxOGM5NDI3MDgwM2Y2ZGMyNGQxMTkwNzA3ODUyNzE1
NDc2N2JmLi5mYzJiYjBkNzc2Yjg2Nzg3MmNiZjM3MjljYTU0YTQwNjNhNDMxNzAzIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9XZWJVUkxQcm90ZWN0aW9uU3BhY2UuY3BwCisr
KyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvd2luL1dlYlVSTFByb3RlY3Rpb25TcGFjZS5jcHAKQEAg
LTEwMiwxNiArMTAyLDE2IEBAIEhSRVNVTFQgV2ViVVJMUHJvdGVjdGlvblNwYWNlOjphdXRoZW50
aWNhdGlvbk1ldGhvZChfX2RlcmVmX29wdF9vdXQgQlNUUiogcmVzdWx0CiAgICAgICAgIHJldHVy
biBFX1BPSU5URVI7CiAKICAgICBzd2l0Y2ggKG1fcHJvdGVjdGlvblNwYWNlLmF1dGhlbnRpY2F0
aW9uU2NoZW1lKCkpIHsKLSAgICBjYXNlIFByb3RlY3Rpb25TcGFjZUF1dGhlbnRpY2F0aW9uU2No
ZW1lRGVmYXVsdDoKKyAgICBjYXNlIFByb3RlY3Rpb25TcGFjZTo6QXV0aGVudGljYXRpb25TY2hl
bWU6OkRlZmF1bHQ6CiAgICAgICAgICpyZXN1bHQgPSBTeXNBbGxvY1N0cmluZyhXZWJVUkxBdXRo
ZW50aWNhdGlvbk1ldGhvZERlZmF1bHQpOwogICAgICAgICBicmVhazsKLSAgICBjYXNlIFByb3Rl
Y3Rpb25TcGFjZUF1dGhlbnRpY2F0aW9uU2NoZW1lSFRUUEJhc2ljOgorICAgIGNhc2UgUHJvdGVj
dGlvblNwYWNlOjpBdXRoZW50aWNhdGlvblNjaGVtZTo6SFRUUEJhc2ljOgogICAgICAgICAqcmVz
dWx0ID0gU3lzQWxsb2NTdHJpbmcoV2ViVVJMQXV0aGVudGljYXRpb25NZXRob2RIVFRQQmFzaWMp
OwogICAgICAgICBicmVhazsKLSAgICBjYXNlIFByb3RlY3Rpb25TcGFjZUF1dGhlbnRpY2F0aW9u
U2NoZW1lSFRUUERpZ2VzdDoKKyAgICBjYXNlIFByb3RlY3Rpb25TcGFjZTo6QXV0aGVudGljYXRp
b25TY2hlbWU6OkhUVFBEaWdlc3Q6CiAgICAgICAgICpyZXN1bHQgPSBTeXNBbGxvY1N0cmluZyhX
ZWJVUkxBdXRoZW50aWNhdGlvbk1ldGhvZEhUVFBEaWdlc3QpOwogICAgICAgICBicmVhazsKLSAg
ICBjYXNlIFByb3RlY3Rpb25TcGFjZUF1dGhlbnRpY2F0aW9uU2NoZW1lSFRNTEZvcm06CisgICAg
Y2FzZSBQcm90ZWN0aW9uU3BhY2U6OkF1dGhlbnRpY2F0aW9uU2NoZW1lOjpIVE1MRm9ybToKICAg
ICAgICAgKnJlc3VsdCA9IFN5c0FsbG9jU3RyaW5nKFdlYlVSTEF1dGhlbnRpY2F0aW9uTWV0aG9k
SFRNTEZvcm0pOwogICAgICAgICBicmVhazsKICAgICBkZWZhdWx0OgpAQCAtMTMxLDE3ICsxMzEs
MTcgQEAgSFJFU1VMVCBXZWJVUkxQcm90ZWN0aW9uU3BhY2U6Omhvc3QoX19kZXJlZl9vcHRfb3V0
IEJTVFIqIHJlc3VsdCkKICAgICByZXR1cm4gU19PSzsKIH0KIAotc3RhdGljIFByb3RlY3Rpb25T
cGFjZUF1dGhlbnRpY2F0aW9uU2NoZW1lIGNvcmVTY2hlbWUoQlNUUiBhdXRoZW50aWNhdGlvbk1l
dGhvZCkKK3N0YXRpYyBQcm90ZWN0aW9uU3BhY2U6OkF1dGhlbnRpY2F0aW9uU2NoZW1lIGNvcmVT
Y2hlbWUoQlNUUiBhdXRoZW50aWNhdGlvbk1ldGhvZCkKIHsKLSAgICBQcm90ZWN0aW9uU3BhY2VB
dXRoZW50aWNhdGlvblNjaGVtZSBzY2hlbWUgPSBQcm90ZWN0aW9uU3BhY2VBdXRoZW50aWNhdGlv
blNjaGVtZURlZmF1bHQ7CisgICAgYXV0byBzY2hlbWUgPSBQcm90ZWN0aW9uU3BhY2U6OkF1dGhl
bnRpY2F0aW9uU2NoZW1lOjpEZWZhdWx0OwogICAgIGlmIChCU3RyaW5nKGF1dGhlbnRpY2F0aW9u
TWV0aG9kKSA9PSBCU3RyaW5nKFdlYlVSTEF1dGhlbnRpY2F0aW9uTWV0aG9kRGVmYXVsdCkpCi0g
ICAgICAgIHNjaGVtZSA9IFByb3RlY3Rpb25TcGFjZUF1dGhlbnRpY2F0aW9uU2NoZW1lRGVmYXVs
dDsKKyAgICAgICAgc2NoZW1lID0gUHJvdGVjdGlvblNwYWNlOjpBdXRoZW50aWNhdGlvblNjaGVt
ZTo6RGVmYXVsdDsKICAgICBlbHNlIGlmIChCU3RyaW5nKGF1dGhlbnRpY2F0aW9uTWV0aG9kKSA9
PSBCU3RyaW5nKFdlYlVSTEF1dGhlbnRpY2F0aW9uTWV0aG9kSFRUUEJhc2ljKSkKLSAgICAgICAg
c2NoZW1lID0gUHJvdGVjdGlvblNwYWNlQXV0aGVudGljYXRpb25TY2hlbWVIVFRQQmFzaWM7Cisg
ICAgICAgIHNjaGVtZSA9IFByb3RlY3Rpb25TcGFjZTo6QXV0aGVudGljYXRpb25TY2hlbWU6OkhU
VFBCYXNpYzsKICAgICBlbHNlIGlmIChCU3RyaW5nKGF1dGhlbnRpY2F0aW9uTWV0aG9kKSA9PSBC
U3RyaW5nKFdlYlVSTEF1dGhlbnRpY2F0aW9uTWV0aG9kSFRUUERpZ2VzdCkpCi0gICAgICAgIHNj
aGVtZSA9IFByb3RlY3Rpb25TcGFjZUF1dGhlbnRpY2F0aW9uU2NoZW1lSFRUUERpZ2VzdDsKKyAg
ICAgICAgc2NoZW1lID0gUHJvdGVjdGlvbjo6U3BhY2VBdXRoZW50aWNhdGlvblNjaGVtZTo6SFRU
UERpZ2VzdDsKICAgICBlbHNlIGlmIChCU3RyaW5nKGF1dGhlbnRpY2F0aW9uTWV0aG9kKSA9PSBC
U3RyaW5nKFdlYlVSTEF1dGhlbnRpY2F0aW9uTWV0aG9kSFRNTEZvcm0pKQotICAgICAgICBzY2hl
bWUgPSBQcm90ZWN0aW9uU3BhY2VBdXRoZW50aWNhdGlvblNjaGVtZUhUTUxGb3JtOworICAgICAg
ICBzY2hlbWUgPSBQcm90ZWN0aW9uU3BhY2U6OkF1dGhlbnRpY2F0aW9uU2NoZW1lOjpIVE1MRm9y
bTsKICAgICBlbHNlCiAgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwogICAgIHJldHVybiBz
Y2hlbWU7CkBAIC0xNTQsMTUgKzE1NCwxNSBAQCBIUkVTVUxUIFdlYlVSTFByb3RlY3Rpb25TcGFj
ZTo6aW5pdFdpdGhIb3N0KF9Jbl8gQlNUUiBob3N0LCBpbnQgcG9ydCwgX0luXyBCU1RSCiAgICAg
c3RhdGljIEJTdHJpbmcmIHdlYlVSTFByb3RlY3Rpb25TcGFjZUZUUEJTdHJpbmcgPSAqbmV3IEJT
dHJpbmcoV2ViVVJMUHJvdGVjdGlvblNwYWNlRlRQKTsKICAgICBzdGF0aWMgQlN0cmluZyYgd2Vi
VVJMUHJvdGVjdGlvblNwYWNlRlRQU0JTdHJpbmcgPSAqbmV3IEJTdHJpbmcoV2ViVVJMUHJvdGVj
dGlvblNwYWNlRlRQUyk7CiAKLSAgICBQcm90ZWN0aW9uU3BhY2VTZXJ2ZXJUeXBlIHNlcnZlclR5
cGUgPSBQcm90ZWN0aW9uU3BhY2VTZXJ2ZXJIVFRQOworICAgIGF1dG8gc2VydmVyVHlwZSA9IFBy
b3RlY3Rpb25TcGFjZTo6U2VydmVyVHlwZTo6SFRUUDsKICAgICBpZiAoQlN0cmluZyhwcm90b2Nv
bCkgPT0gd2ViVVJMUHJvdGVjdGlvblNwYWNlSFRUUEJTdHJpbmcpCi0gICAgICAgIHNlcnZlclR5
cGUgPSBQcm90ZWN0aW9uU3BhY2VTZXJ2ZXJIVFRQOworICAgICAgICBzZXJ2ZXJUeXBlID0gUHJv
dGVjdGlvblNwYWNlOjpTZXJ2ZXJUeXBlOjpIVFRQOwogICAgIGVsc2UgaWYgKEJTdHJpbmcocHJv
dG9jb2wpID09IHdlYlVSTFByb3RlY3Rpb25TcGFjZUhUVFBTQlN0cmluZykKLSAgICAgICAgc2Vy
dmVyVHlwZSA9IFByb3RlY3Rpb25TcGFjZVNlcnZlckhUVFBTOworICAgICAgICBzZXJ2ZXJUeXBl
ID0gUHJvdGVjdGlvblNwYWNlOjpTZXJ2ZXJUeXBlOjpIVFRQUzsKICAgICBlbHNlIGlmIChCU3Ry
aW5nKHByb3RvY29sKSA9PSB3ZWJVUkxQcm90ZWN0aW9uU3BhY2VGVFBCU3RyaW5nKQotICAgICAg
ICBzZXJ2ZXJUeXBlID0gUHJvdGVjdGlvblNwYWNlU2VydmVyRlRQOworICAgICAgICBzZXJ2ZXJU
eXBlID0gUHJvdGVjdGlvblNwYWNlOjpTZXJ2ZXJUeXBlOjpGVFA7CiAgICAgZWxzZSBpZiAoQlN0
cmluZyhwcm90b2NvbCkgPT0gd2ViVVJMUHJvdGVjdGlvblNwYWNlRlRQU0JTdHJpbmcpCi0gICAg
ICAgIHNlcnZlclR5cGUgPSBQcm90ZWN0aW9uU3BhY2VTZXJ2ZXJGVFBTOworICAgICAgICBzZXJ2
ZXJUeXBlID0gUHJvdGVjdGlvblNwYWNlOjpTZXJ2ZXJUeXBlOjpGVFBTOwogCiAgICAgbV9wcm90
ZWN0aW9uU3BhY2UgPSBQcm90ZWN0aW9uU3BhY2UoU3RyaW5nKGhvc3QsIFN5c1N0cmluZ0xlbiho
b3N0KSksIHBvcnQsIHNlcnZlclR5cGUsIAogICAgICAgICBTdHJpbmcocmVhbG0sIFN5c1N0cmlu
Z0xlbihyZWFsbSkpLCBjb3JlU2NoZW1lKGF1dGhlbnRpY2F0aW9uTWV0aG9kKSk7CkBAIC0xNzcs
MTUgKzE3NywxNSBAQCBIUkVTVUxUIFdlYlVSTFByb3RlY3Rpb25TcGFjZTo6aW5pdFdpdGhQcm94
eUhvc3QoX0luXyBCU1RSIGhvc3QsIGludCBwb3J0LCBfSW5fCiAgICAgc3RhdGljIEJTdHJpbmcm
IHdlYlVSTFByb3RlY3Rpb25TcGFjZUZUUFByb3h5QlN0cmluZyA9ICpuZXcgQlN0cmluZyhXZWJV
UkxQcm90ZWN0aW9uU3BhY2VGVFBQcm94eSk7CiAgICAgc3RhdGljIEJTdHJpbmcmIHdlYlVSTFBy
b3RlY3Rpb25TcGFjZVNPQ0tTUHJveHlCU3RyaW5nID0gKm5ldyBCU3RyaW5nKFdlYlVSTFByb3Rl
Y3Rpb25TcGFjZVNPQ0tTUHJveHkpOwogCi0gICAgUHJvdGVjdGlvblNwYWNlU2VydmVyVHlwZSBz
ZXJ2ZXJUeXBlID0gUHJvdGVjdGlvblNwYWNlUHJveHlIVFRQOworICAgIGF1dG8gc2VydmVyVHlw
ZSA9IFByb3RlY3Rpb25TcGFjZTo6U2VydmVyVHlwZTo6UHJveHlIVFRQOwogICAgIGlmIChCU3Ry
aW5nKHByb3h5VHlwZSkgPT0gd2ViVVJMUHJvdGVjdGlvblNwYWNlSFRUUFByb3h5QlN0cmluZykK
LSAgICAgICAgc2VydmVyVHlwZSA9IFByb3RlY3Rpb25TcGFjZVByb3h5SFRUUDsKKyAgICAgICAg
c2VydmVyVHlwZSA9IFByb3RlY3Rpb25TcGFjZTo6U2VydmVyVHlwZTo6UHJveHlIVFRQOwogICAg
IGVsc2UgaWYgKEJTdHJpbmcocHJveHlUeXBlKSA9PSB3ZWJVUkxQcm90ZWN0aW9uU3BhY2VIVFRQ
U1Byb3h5QlN0cmluZykKLSAgICAgICAgc2VydmVyVHlwZSA9IFByb3RlY3Rpb25TcGFjZVByb3h5
SFRUUFM7CisgICAgICAgIHNlcnZlclR5cGUgPSBQcm90ZWN0aW9uU3BhY2U6OlNlcnZlclR5cGU6
OlByb3h5SFRUUFM7CiAgICAgZWxzZSBpZiAoQlN0cmluZyhwcm94eVR5cGUpID09IHdlYlVSTFBy
b3RlY3Rpb25TcGFjZUZUUFByb3h5QlN0cmluZykKLSAgICAgICAgc2VydmVyVHlwZSA9IFByb3Rl
Y3Rpb25TcGFjZVByb3h5RlRQOworICAgICAgICBzZXJ2ZXJUeXBlID0gUHJvdGVjdGlvblNwYWNl
OjpTZXJ2ZXJUeXBlOjpQcm94eUZUUDsKICAgICBlbHNlIGlmIChCU3RyaW5nKHByb3h5VHlwZSkg
PT0gd2ViVVJMUHJvdGVjdGlvblNwYWNlU09DS1NQcm94eUJTdHJpbmcpCi0gICAgICAgIHNlcnZl
clR5cGUgPSBQcm90ZWN0aW9uU3BhY2VQcm94eVNPQ0tTOworICAgICAgICBzZXJ2ZXJUeXBlID0g
UHJvdGVjdGlvblNwYWNlOjpTZXJ2ZXJUeXBlOjpQcm94eVNPQ0tTOwogICAgIGVsc2UKICAgICAg
ICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CiAK
</data>
<flag name="commit-queue"
          id="473136"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>447499</attachid>
            <date>2021-12-17 18:25:46 -0800</date>
            <delta_ts>2021-12-17 19:34:56 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-234455-20211217182545.patch</filename>
            <type>text/plain</type>
            <size>96561</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg3MjAzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZTQwNDdjOTk5N2FhMWUy
OTY2MTIzNmY4Yjc2OGI0ZWU1MWNiNTIzZi4uMDEyYzFlMWM1YmM1OTQ3Njk4ZGZhNjQ3OTI5OTk0
YTA4ODM5MWQyYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDYzIEBACisyMDIxLTEyLTE3ICBDaHJp
cyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgQ29udmVydCBQcm90ZWN0aW9u
U3BhY2UgZW51bXMgaW50byBlbnVtIGNsYXNzZXMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTIzNDQ1NQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgICogcGxhdGZvcm0vbmV0d29yay9DcmVkZW50aWFsU3RvcmFn
ZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDcmVkZW50aWFsU3RvcmFnZTo6c2V0KToKKyAgICAg
ICAgKFdlYkNvcmU6OkNyZWRlbnRpYWxTdG9yYWdlOjpyZW1vdmVDcmVkZW50aWFsc1dpdGhPcmln
aW4pOgorICAgICAgICAoV2ViQ29yZTo6Q3JlZGVudGlhbFN0b3JhZ2U6Om9yaWdpbnNXaXRoQ3Jl
ZGVudGlhbHMgY29uc3QpOgorICAgICAgICAqIHBsYXRmb3JtL25ldHdvcmsvUHJvdGVjdGlvblNw
YWNlLmg6CisgICAgICAgIChXZWJDb3JlOjpQcm90ZWN0aW9uU3BhY2U6OlByb3RlY3Rpb25TcGFj
ZSk6CisgICAgICAgICogcGxhdGZvcm0vbmV0d29yay9Qcm90ZWN0aW9uU3BhY2VCYXNlLmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OlByb3RlY3Rpb25TcGFjZUJhc2U6OlByb3RlY3Rpb25TcGFjZUJh
c2UpOgorICAgICAgICAoV2ViQ29yZTo6UHJvdGVjdGlvblNwYWNlQmFzZTo6aXNQcm94eSBjb25z
dCk6CisgICAgICAgIChXZWJDb3JlOjpQcm90ZWN0aW9uU3BhY2VCYXNlOjpyZWNlaXZlc0NyZWRl
bnRpYWxTZWN1cmVseSBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpQcm90ZWN0aW9uU3BhY2VC
YXNlOjppc1Bhc3N3b3JkQmFzZWQgY29uc3QpOgorICAgICAgICAqIHBsYXRmb3JtL25ldHdvcmsv
UHJvdGVjdGlvblNwYWNlQmFzZS5oOgorICAgICAgICAoV2ViQ29yZTo6UHJvdGVjdGlvblNwYWNl
QmFzZTo6c2VydmVyVHlwZSBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpQcm90ZWN0aW9uU3Bh
Y2VCYXNlOjphdXRoZW50aWNhdGlvblNjaGVtZSBjb25zdCk6CisgICAgICAgICogcGxhdGZvcm0v
bmV0d29yay9jZi9BdXRoZW50aWNhdGlvbkNGLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmNyZWF0
ZUNGKToKKyAgICAgICAgKFdlYkNvcmU6OmNvcmUpOgorICAgICAgICAqIHBsYXRmb3JtL25ldHdv
cmsvY2YvUHJvdGVjdGlvblNwYWNlQ0ZOZXQuaDoKKyAgICAgICAgKFdlYkNvcmU6OlByb3RlY3Rp
b25TcGFjZTo6UHJvdGVjdGlvblNwYWNlKToKKyAgICAgICAgKiBwbGF0Zm9ybS9uZXR3b3JrL2Nm
L1Jlc291cmNlSGFuZGxlQ0ZOZXQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVzb3VyY2VIYW5k
bGU6OnJlY2VpdmVkQ3JlZGVudGlhbCk6CisgICAgICAgICogcGxhdGZvcm0vbmV0d29yay9jZi9T
b2NrZXRTdHJlYW1IYW5kbGVJbXBsQ0ZOZXQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6YXV0aGVu
dGljYXRpb25TY2hlbWVGcm9tQXV0aGVudGljYXRpb25NZXRob2QpOgorICAgICAgICAqIHBsYXRm
b3JtL25ldHdvcmsvY29jb2EvUHJvdGVjdGlvblNwYWNlQ29jb2EuaDoKKyAgICAgICAgKFdlYkNv
cmU6OlByb3RlY3Rpb25TcGFjZTo6UHJvdGVjdGlvblNwYWNlKToKKyAgICAgICAgKiBwbGF0Zm9y
bS9uZXR3b3JrL2NvY29hL1Byb3RlY3Rpb25TcGFjZUNvY29hLm1tOgorICAgICAgICAoV2ViQ29y
ZTo6dHlwZSk6CisgICAgICAgIChXZWJDb3JlOjpzY2hlbWUpOgorICAgICAgICAoV2ViQ29yZTo6
UHJvdGVjdGlvblNwYWNlOjpuc1NwYWNlIGNvbnN0KToKKyAgICAgICAgKiBwbGF0Zm9ybS9uZXR3
b3JrL2N1cmwvQXV0aGVudGljYXRpb25DaGFsbGVuZ2UuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9u
ZXR3b3JrL2N1cmwvQXV0aGVudGljYXRpb25DaGFsbGVuZ2VDdXJsLmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OkF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlOjpwcm90ZWN0aW9uU3BhY2VTZXJ2ZXJUeXBl
RnJvbVVSSSk6CisgICAgICAgIChXZWJDb3JlOjpBdXRoZW50aWNhdGlvbkNoYWxsZW5nZTo6cHJv
dGVjdGlvblNwYWNlRm9yU2VydmVyVHJ1c3QpOgorICAgICAgICAoV2ViQ29yZTo6QXV0aGVudGlj
YXRpb25DaGFsbGVuZ2U6OmF1dGhlbnRpY2F0aW9uU2NoZW1lRnJvbUN1cmxBdXRoKToKKyAgICAg
ICAgKiBwbGF0Zm9ybS9uZXR3b3JrL2N1cmwvQ3VybFJlcXVlc3QuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6Q3VybFJlcXVlc3Q6OnNldEF1dGhlbnRpY2F0aW9uU2NoZW1lKToKKyAgICAgICAgKiBw
bGF0Zm9ybS9uZXR3b3JrL2N1cmwvQ3VybFJlcXVlc3QuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9u
ZXR3b3JrL2N1cmwvUHJvdGVjdGlvblNwYWNlQ3VybC5oOgorICAgICAgICAoV2ViQ29yZTo6UHJv
dGVjdGlvblNwYWNlOjpQcm90ZWN0aW9uU3BhY2UpOgorICAgICAgICAqIHBsYXRmb3JtL25ldHdv
cmsvY3VybC9SZXNvdXJjZUhhbmRsZUN1cmwuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVzb3Vy
Y2VIYW5kbGU6OnN0YXJ0KToKKyAgICAgICAgKFdlYkNvcmU6OlJlc291cmNlSGFuZGxlOjpwbGF0
Zm9ybUxvYWRSZXNvdXJjZVN5bmNocm9ub3VzbHkpOgorICAgICAgICAqIHBsYXRmb3JtL25ldHdv
cmsvbWFjL1Jlc291cmNlSGFuZGxlTWFjLm1tOgorICAgICAgICAoV2ViQ29yZTo6UmVzb3VyY2VI
YW5kbGU6OnJlY2VpdmVkQ3JlZGVudGlhbCk6CisgICAgICAgICogcGxhdGZvcm0vbmV0d29yay9z
b3VwL0F1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlU291cC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpw
cm90ZWN0aW9uU3BhY2VTZXJ2ZXJUeXBlRnJvbVVSTCk6CisgICAgICAgIChXZWJDb3JlOjpwcm90
ZWN0aW9uU3BhY2VGcm9tU291cEF1dGhBbmRVUkwpOgorICAgICAgICAoV2ViQ29yZTo6cHJvdGVj
dGlvblNwYWNlRm9yQ2xpZW50Q2VydGlmaWNhdGUpOgorICAgICAgICAoV2ViQ29yZTo6cHJvdGVj
dGlvblNwYWNlRm9yQ2xpZW50Q2VydGlmaWNhdGVQYXNzd29yZCk6CisgICAgICAgICogcGxhdGZv
cm0vbmV0d29yay9zb3VwL05ldHdvcmtTdG9yYWdlU2Vzc2lvblNvdXAuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6c2NoZW1lRnJvbVByb3RlY3Rpb25TcGFjZVNlcnZlclR5cGUpOgorICAgICAgICAo
V2ViQ29yZTo6YXV0aFR5cGVGcm9tUHJvdGVjdGlvblNwYWNlQXV0aGVudGljYXRpb25TY2hlbWUp
OgorCiAyMDIxLTEyLTE3ICBBbGFuIEJ1anRhcyAgPHphbGFuQGFwcGxlLmNvbT4KIAogICAgICAg
ICBbTEZDXVtJRkNdIEFkanVzdCB0aGUgYm94IGdlb21ldHJ5IGZvciBhdG9taWMvZ2VuZXJpYyBp
bmxpbmUgbGV2ZWwgYm94ZXMgaW4gYmlkaSBjb250ZW50CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDNkMWQ1ZDNlNDM5
YmRjNTBmZTg2NTI3YzYzOWE1NzQ3ZmNjNTQyYmQuLjY3YTMxYzU3NWIxMzllZGQ1OGQzNzIwYWY4
OTM5MDc5ZWMzNjhjYzYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBi
L1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNDMgQEAKKzIwMjEtMTItMTcgIENo
cmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KKworICAgICAgICBDb252ZXJ0IFByb3RlY3Rp
b25TcGFjZSBlbnVtcyBpbnRvIGVudW0gY2xhc3NlcworICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjM0NDU1CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9OZXR3b3JrQ09SU1ByZWZs
aWdodENoZWNrZXIuY3BwOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrQ09SU1ByZWZsaWdodENo
ZWNrZXI6OmRpZFJlY2VpdmVDaGFsbGVuZ2UpOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL05l
dHdvcmtMb2FkLmNwcDoKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya0xvYWQ6OmRpZFJlY2VpdmVD
aGFsbGVuZ2UpOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL1BpbmdMb2FkLmNwcDoKKyAgICAg
ICAgKFdlYktpdDo6UGluZ0xvYWQ6OmRpZFJlY2VpdmVDaGFsbGVuZ2UpOgorICAgICAgICAqIE5l
dHdvcmtQcm9jZXNzL2NvY29hL05ldHdvcmtTZXNzaW9uQ29jb2EubW06CisgICAgICAgIChXZWJL
aXQ6Ok5ldHdvcmtTZXNzaW9uQ29jb2E6OmFsbG93c1NwZWNpZmljSFRUUFNDZXJ0aWZpY2F0ZUZv
ckhvc3QpOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL2N1cmwvTmV0d29ya0RhdGFUYXNrQ3Vy
bC5jcHA6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtEYXRhVGFza0N1cmw6Ok5ldHdvcmtEYXRh
VGFza0N1cmwpOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrRGF0YVRhc2tDdXJsOjp3aWxsUGVy
Zm9ybUhUVFBSZWRpcmVjdGlvbik6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtEYXRhVGFza0N1
cmw6OnJlc3RhcnRXaXRoQ3JlZGVudGlhbCk6CisgICAgICAgICogTmV0d29ya1Byb2Nlc3Mvc291
cC9OZXR3b3JrRGF0YVRhc2tTb3VwLmNwcDoKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya0RhdGFU
YXNrU291cDo6Y29tcGxldGVBdXRoZW50aWNhdGlvbik6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdv
cmtEYXRhVGFza1NvdXA6OmNhbmNlbEF1dGhlbnRpY2F0aW9uKToKKyAgICAgICAgKiBTaGFyZWQv
QXV0aGVudGljYXRpb24vQXV0aGVudGljYXRpb25NYW5hZ2VyLmNwcDoKKyAgICAgICAgKFdlYktp
dDo6Y2FuQ29hbGVzY2VDaGFsbGVuZ2UpOgorICAgICAgICAqIFNoYXJlZC9XZWJDb3JlQXJndW1l
bnRDb2RlcnMuY3BwOgorICAgICAgICAoSVBDOjpBcmd1bWVudENvZGVyPFByb3RlY3Rpb25TcGFj
ZT46OmRlY29kZSk6CisgICAgICAgICogU2hhcmVkL2N1cmwvV2ViQ29yZUFyZ3VtZW50Q29kZXJz
Q3VybC5jcHA6CisgICAgICAgIChJUEM6OkFyZ3VtZW50Q29kZXI8UHJvdGVjdGlvblNwYWNlPjo6
ZGVjb2RlUGxhdGZvcm1EYXRhKToKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0MvV0tBUElDYXN0
Lmg6CisgICAgICAgIChXZWJLaXQ6OnRvQVBJKToKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL2ds
aWIvV2ViS2l0QXV0aGVudGljYXRpb25SZXF1ZXN0LmNwcDoKKyAgICAgICAgKHdlYmtpdF9hdXRo
ZW50aWNhdGlvbl9yZXF1ZXN0X2dldF9zZWN1cml0eV9vcmlnaW4pOgorICAgICAgICAqIFVJUHJv
Y2Vzcy9BdXRoZW50aWNhdGlvbi9XZWJQcm90ZWN0aW9uU3BhY2UuY3BwOgorICAgICAgICAoV2Vi
S2l0OjpXZWJQcm90ZWN0aW9uU3BhY2U6OnNlcnZlclR5cGUgY29uc3QpOgorICAgICAgICAoV2Vi
S2l0OjpXZWJQcm90ZWN0aW9uU3BhY2U6OmF1dGhlbnRpY2F0aW9uU2NoZW1lIGNvbnN0KToKKyAg
ICAgICAgKiBVSVByb2Nlc3MvQXV0aGVudGljYXRpb24vV2ViUHJvdGVjdGlvblNwYWNlLmg6Cisg
ICAgICAgICogVUlQcm9jZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nlc3NQcm94eS5jcHA6CisgICAg
ICAgIChXZWJLaXQ6Ok5ldHdvcmtQcm9jZXNzUHJveHk6OnByb2Nlc3NBdXRoZW50aWNhdGlvbkNo
YWxsZW5nZSk6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtQcm9jZXNzUHJveHk6OmRpZFJlY2Vp
dmVBdXRoZW50aWNhdGlvbkNoYWxsZW5nZSk6CisKIDIwMjEtMTItMTcgIENocmlzIER1bWV6ICA8
Y2R1bWV6QGFwcGxlLmNvbT4KIAogICAgICAgICBNb3ZlIENhY2hlU3RvcmFnZSBlbmdpbmVzIGZy
b20gTmV0d29ya1Byb2Nlc3MgdG8gTmV0d29ya1Nlc3Npb24KZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXRMZWdhY3kvbWFjL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL0NoYW5n
ZUxvZwppbmRleCBhOTBlNzE3Y2E0ZWZkY2M4ZWFmM2JjY2QwYzE2MzdjZTlhYmMwNzY4Li42NTI2
ODQ4Njk5NmJkNjYwZmRhYjYzOGY4NDI4NzJiZmIwYjNkMDI3IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0TGVnYWN5L21hYy9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMv
Q2hhbmdlTG9nCkBAIC0xLDMgKzEsMTMgQEAKKzIwMjEtMTItMTcgIENocmlzIER1bWV6ICA8Y2R1
bWV6QGFwcGxlLmNvbT4KKworICAgICAgICBDb252ZXJ0IFByb3RlY3Rpb25TcGFjZSBlbnVtcyBp
bnRvIGVudW0gY2xhc3NlcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9MjM0NDU1CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisK
KyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5tbToKKyAgICAg
ICAgKFdlYkZyYW1lTG9hZGVyQ2xpZW50OjpjYW5BdXRoZW50aWNhdGVBZ2FpbnN0UHJvdGVjdGlv
blNwYWNlKToKKwogMjAyMS0xMi0xNiAgQWxleCBDaHJpc3RlbnNlbiAgPGFjaHJpc3RlbnNlbkB3
ZWJraXQub3JnPgogCiAgICAgICAgIEZpeCBpT1MgZGVidWcgYnVpbGQKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXRMZWdhY3kvd2luL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvd2lu
L0NoYW5nZUxvZwppbmRleCBjNDI3ZjM4MTE3MjllMmU3MDI2NWM4OTMxMTcwYjcyNjVkOTllNTQx
Li5hMTQ0ODIyOGNiZTEzY2EyZmMwM2RhYjE3ODMzOTIxOTkxNzc4OGM4IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdExlZ2Fj
eS93aW4vQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTYgQEAKKzIwMjEtMTItMTcgIENocmlzIER1bWV6
ICA8Y2R1bWV6QGFwcGxlLmNvbT4KKworICAgICAgICBDb252ZXJ0IFByb3RlY3Rpb25TcGFjZSBl
bnVtcyBpbnRvIGVudW0gY2xhc3NlcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9MjM0NDU1CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCisKKyAgICAgICAgKiBXZWJVUkxQcm90ZWN0aW9uU3BhY2UuY3BwOgorICAgICAgICAoV2Vi
VVJMUHJvdGVjdGlvblNwYWNlOjphdXRoZW50aWNhdGlvbk1ldGhvZCk6CisgICAgICAgIChjb3Jl
U2NoZW1lKToKKyAgICAgICAgKFdlYlVSTFByb3RlY3Rpb25TcGFjZTo6aW5pdFdpdGhIb3N0KToK
KyAgICAgICAgKFdlYlVSTFByb3RlY3Rpb25TcGFjZTo6aW5pdFdpdGhQcm94eUhvc3QpOgorCiAy
MDIxLTEyLTE0ICBKZWFuLVl2ZXMgQXZlbmFyZCAgPGp5YUBhcHBsZS5jb20+CiAKICAgICAgICAg
UmVuYW1lIFNoYXJlZEJ1ZmZlciBjbGFzc2VzLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vbmV0d29yay9DcmVkZW50aWFsU3RvcmFnZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9uZXR3b3JrL0NyZWRlbnRpYWxTdG9yYWdlLmNwcAppbmRleCAyNmEzYjllNjkzYTIx
ZmU4ODg1MTQzODdiYzFlMGQwMTIzZWI4YzViLi40ZWU3YmQxMGZjYzJjZDAzOTU3NTliMzZlMDQ1
NjZmMDJhYjFhNGM3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3Jr
L0NyZWRlbnRpYWxTdG9yYWdlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3
b3JrL0NyZWRlbnRpYWxTdG9yYWdlLmNwcApAQCAtNjAsMTYgKzYwLDE2IEBAIHN0YXRpYyBTdHJp
bmcgcHJvdGVjdGlvblNwYWNlTWFwS2V5RnJvbVVSTChjb25zdCBVUkwmIHVybCkKIAogdm9pZCBD
cmVkZW50aWFsU3RvcmFnZTo6c2V0KGNvbnN0IFN0cmluZyYgcGFydGl0aW9uTmFtZSwgY29uc3Qg
Q3JlZGVudGlhbCYgY3JlZGVudGlhbCwgY29uc3QgUHJvdGVjdGlvblNwYWNlJiBwcm90ZWN0aW9u
U3BhY2UsIGNvbnN0IFVSTCYgdXJsKQogewotICAgIEFTU0VSVChwcm90ZWN0aW9uU3BhY2UuaXNQ
cm94eSgpIHx8IHByb3RlY3Rpb25TcGFjZS5hdXRoZW50aWNhdGlvblNjaGVtZSgpID09IFByb3Rl
Y3Rpb25TcGFjZUF1dGhlbnRpY2F0aW9uU2NoZW1lQ2xpZW50Q2VydGlmaWNhdGVSZXF1ZXN0ZWQg
fHwgdXJsLnByb3RvY29sSXNJbkhUVFBGYW1pbHkoKSk7Ci0gICAgQVNTRVJUKHByb3RlY3Rpb25T
cGFjZS5pc1Byb3h5KCkgfHwgcHJvdGVjdGlvblNwYWNlLmF1dGhlbnRpY2F0aW9uU2NoZW1lKCkg
PT0gUHJvdGVjdGlvblNwYWNlQXV0aGVudGljYXRpb25TY2hlbWVDbGllbnRDZXJ0aWZpY2F0ZVJl
cXVlc3RlZCB8fCB1cmwuaXNWYWxpZCgpKTsKKyAgICBBU1NFUlQocHJvdGVjdGlvblNwYWNlLmlz
UHJveHkoKSB8fCBwcm90ZWN0aW9uU3BhY2UuYXV0aGVudGljYXRpb25TY2hlbWUoKSA9PSBQcm90
ZWN0aW9uU3BhY2U6OkF1dGhlbnRpY2F0aW9uU2NoZW1lOjpDbGllbnRDZXJ0aWZpY2F0ZVJlcXVl
c3RlZCB8fCB1cmwucHJvdG9jb2xJc0luSFRUUEZhbWlseSgpKTsKKyAgICBBU1NFUlQocHJvdGVj
dGlvblNwYWNlLmlzUHJveHkoKSB8fCBwcm90ZWN0aW9uU3BhY2UuYXV0aGVudGljYXRpb25TY2hl
bWUoKSA9PSBQcm90ZWN0aW9uU3BhY2U6OkF1dGhlbnRpY2F0aW9uU2NoZW1lOjpDbGllbnRDZXJ0
aWZpY2F0ZVJlcXVlc3RlZCB8fCB1cmwuaXNWYWxpZCgpKTsKIAogICAgIG1fcHJvdGVjdGlvblNw
YWNlVG9DcmVkZW50aWFsTWFwLnNldChzdGQ6Om1ha2VfcGFpcihwYXJ0aXRpb25OYW1lLCBwcm90
ZWN0aW9uU3BhY2UpLCBjcmVkZW50aWFsKTsKIAotICAgIGlmICghcHJvdGVjdGlvblNwYWNlLmlz
UHJveHkoKSAmJiBwcm90ZWN0aW9uU3BhY2UuYXV0aGVudGljYXRpb25TY2hlbWUoKSAhPSBQcm90
ZWN0aW9uU3BhY2VBdXRoZW50aWNhdGlvblNjaGVtZUNsaWVudENlcnRpZmljYXRlUmVxdWVzdGVk
KSB7CisgICAgaWYgKCFwcm90ZWN0aW9uU3BhY2UuaXNQcm94eSgpICYmIHByb3RlY3Rpb25TcGFj
ZS5hdXRoZW50aWNhdGlvblNjaGVtZSgpICE9IFByb3RlY3Rpb25TcGFjZTo6QXV0aGVudGljYXRp
b25TY2hlbWU6OkNsaWVudENlcnRpZmljYXRlUmVxdWVzdGVkKSB7CiAgICAgICAgIG1fb3JpZ2lu
c1dpdGhDcmVkZW50aWFscy5hZGQob3JpZ2luU3RyaW5nRnJvbVVSTCh1cmwpKTsKIAotICAgICAg
ICBQcm90ZWN0aW9uU3BhY2VBdXRoZW50aWNhdGlvblNjaGVtZSBzY2hlbWUgPSBwcm90ZWN0aW9u
U3BhY2UuYXV0aGVudGljYXRpb25TY2hlbWUoKTsKLSAgICAgICAgaWYgKHNjaGVtZSA9PSBQcm90
ZWN0aW9uU3BhY2VBdXRoZW50aWNhdGlvblNjaGVtZUhUVFBCYXNpYyB8fCBzY2hlbWUgPT0gUHJv
dGVjdGlvblNwYWNlQXV0aGVudGljYXRpb25TY2hlbWVEZWZhdWx0KSB7CisgICAgICAgIGF1dG8g
c2NoZW1lID0gcHJvdGVjdGlvblNwYWNlLmF1dGhlbnRpY2F0aW9uU2NoZW1lKCk7CisgICAgICAg
IGlmIChzY2hlbWUgPT0gUHJvdGVjdGlvblNwYWNlOjpBdXRoZW50aWNhdGlvblNjaGVtZTo6SFRU
UEJhc2ljIHx8IHNjaGVtZSA9PSBQcm90ZWN0aW9uU3BhY2U6OkF1dGhlbnRpY2F0aW9uU2NoZW1l
OjpEZWZhdWx0KSB7CiAgICAgICAgICAgICAvLyBUaGUgbWFwIGNhbiBjb250YWluIGJvdGggYSBw
YXRoIGFuZCBpdHMgc3VicGF0aCAtIHdoaWxlIHJlZHVuZGFudCwgdGhpcyBtYWtlcyBsb29rdXBz
IGZhc3Rlci4KICAgICAgICAgICAgIG1fcGF0aFRvRGVmYXVsdFByb3RlY3Rpb25TcGFjZU1hcC5z
ZXQocHJvdGVjdGlvblNwYWNlTWFwS2V5RnJvbVVSTCh1cmwpLCBwcm90ZWN0aW9uU3BhY2UpOwog
ICAgICAgICB9CkBAIC05NCw4ICs5NCw4IEBAIHZvaWQgQ3JlZGVudGlhbFN0b3JhZ2U6OnJlbW92
ZUNyZWRlbnRpYWxzV2l0aE9yaWdpbihjb25zdCBTZWN1cml0eU9yaWdpbkRhdGEmIG9yCiAgICAg
ICAgIGlmIChwcm90ZWN0aW9uU3BhY2UuaG9zdCgpID09IG9yaWdpbi5ob3N0CiAgICAgICAgICAg
ICAmJiAoKG9yaWdpbi5wb3J0ICYmIHByb3RlY3Rpb25TcGFjZS5wb3J0KCkgPT0gKm9yaWdpbi5w
b3J0KQogICAgICAgICAgICAgICAgIHx8ICghb3JpZ2luLnBvcnQgJiYgcHJvdGVjdGlvblNwYWNl
LnBvcnQoKSA9PSA4MCkpCi0gICAgICAgICAgICAmJiAoKHByb3RlY3Rpb25TcGFjZS5zZXJ2ZXJU
eXBlKCkgPT0gUHJvdGVjdGlvblNwYWNlU2VydmVySFRUUCAmJiBvcmlnaW4ucHJvdG9jb2wgPT0g
Imh0dHAiX3MpCi0gICAgICAgICAgICAgICAgfHwgKHByb3RlY3Rpb25TcGFjZS5zZXJ2ZXJUeXBl
KCkgPT0gUHJvdGVjdGlvblNwYWNlU2VydmVySFRUUFMgJiYgb3JpZ2luLnByb3RvY29sID09ICJo
dHRwcyJfcykpKQorICAgICAgICAgICAgJiYgKChwcm90ZWN0aW9uU3BhY2Uuc2VydmVyVHlwZSgp
ID09IFByb3RlY3Rpb25TcGFjZTo6U2VydmVyVHlwZTo6SFRUUCAmJiBvcmlnaW4ucHJvdG9jb2wg
PT0gImh0dHAiX3MpCisgICAgICAgICAgICAgICAgfHwgKHByb3RlY3Rpb25TcGFjZS5zZXJ2ZXJU
eXBlKCkgPT0gUHJvdGVjdGlvblNwYWNlOjpTZXJ2ZXJUeXBlOjpIVFRQUyAmJiBvcmlnaW4ucHJv
dG9jb2wgPT0gImh0dHBzIl9zKSkpCiAgICAgICAgICAgICBrZXlzVG9SZW1vdmUuYXBwZW5kKGtl
eVZhbHVlUGFpci5rZXkpOwogICAgIH0KICAgICBmb3IgKGF1dG8mIGtleSA6IGtleXNUb1JlbW92
ZSkKQEAgLTExMSwxNiArMTExLDE2IEBAIEhhc2hTZXQ8U2VjdXJpdHlPcmlnaW5EYXRhPiBDcmVk
ZW50aWFsU3RvcmFnZTo6b3JpZ2luc1dpdGhDcmVkZW50aWFscygpIGNvbnN0CiAgICAgICAgICAg
ICBjb250aW51ZTsKICAgICAgICAgU3RyaW5nIHByb3RvY29sOwogICAgICAgICBzd2l0Y2ggKHBy
b3RlY3Rpb25TcGFjZS5zZXJ2ZXJUeXBlKCkpIHsKLSAgICAgICAgY2FzZSBQcm90ZWN0aW9uU3Bh
Y2VTZXJ2ZXJIVFRQOgorICAgICAgICBjYXNlIFByb3RlY3Rpb25TcGFjZTo6U2VydmVyVHlwZTo6
SFRUUDoKICAgICAgICAgICAgIHByb3RvY29sID0gImh0dHAiX3M7CiAgICAgICAgICAgICBicmVh
azsKLSAgICAgICAgY2FzZSBQcm90ZWN0aW9uU3BhY2VTZXJ2ZXJIVFRQUzoKKyAgICAgICAgY2Fz
ZSBQcm90ZWN0aW9uU3BhY2U6OlNlcnZlclR5cGU6OkhUVFBTOgogICAgICAgICAgICAgcHJvdG9j
b2wgPSAiaHR0cHMiX3M7CiAgICAgICAgICAgICBicmVhazsKLSAgICAgICAgY2FzZSBQcm90ZWN0
aW9uU3BhY2VTZXJ2ZXJGVFA6CisgICAgICAgIGNhc2UgUHJvdGVjdGlvblNwYWNlOjpTZXJ2ZXJU
eXBlOjpGVFA6CiAgICAgICAgICAgICBwcm90b2NvbCA9ICJmdHAiX3M7CiAgICAgICAgICAgICBi
cmVhazsKLSAgICAgICAgY2FzZSBQcm90ZWN0aW9uU3BhY2VTZXJ2ZXJGVFBTOgorICAgICAgICBj
YXNlIFByb3RlY3Rpb25TcGFjZTo6U2VydmVyVHlwZTo6RlRQUzoKICAgICAgICAgICAgIHByb3Rv
Y29sID0gImZ0cHMiX3M7CiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgZGVmYXVsdDoKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvUHJvdGVjdGlvblNwYWNl
LmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL1Byb3RlY3Rpb25TcGFjZS5oCmlu
ZGV4IGE1Y2UzYmJhMTUzNTdjZmEwYmE4ZDI3OWYzNjYwN2U2NTE3YmMyN2IuLjNkODk2ZjBmM2Rm
MmQzMTE1Y2RmYjU4NjQyNDUzNzMwOTYwNWE4NjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL25ldHdvcmsvUHJvdGVjdGlvblNwYWNlLmgKKysrIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vbmV0d29yay9Qcm90ZWN0aW9uU3BhY2UuaApAQCAtNDAsNyArNDAsNyBAQCBuYW1l
c3BhY2UgV2ViQ29yZSB7CiBjbGFzcyBQcm90ZWN0aW9uU3BhY2UgOiBwdWJsaWMgUHJvdGVjdGlv
blNwYWNlQmFzZSB7CiBwdWJsaWM6CiAgICAgUHJvdGVjdGlvblNwYWNlKCkgOiBQcm90ZWN0aW9u
U3BhY2VCYXNlKCkgeyB9Ci0gICAgUHJvdGVjdGlvblNwYWNlKGNvbnN0IFN0cmluZyYgaG9zdCwg
aW50IHBvcnQsIFByb3RlY3Rpb25TcGFjZVNlcnZlclR5cGUgc2VydmVyVHlwZSwgY29uc3QgU3Ry
aW5nJiByZWFsbSwgUHJvdGVjdGlvblNwYWNlQXV0aGVudGljYXRpb25TY2hlbWUgYXV0aGVudGlj
YXRpb25TY2hlbWUpCisgICAgUHJvdGVjdGlvblNwYWNlKGNvbnN0IFN0cmluZyYgaG9zdCwgaW50
IHBvcnQsIFNlcnZlclR5cGUgc2VydmVyVHlwZSwgY29uc3QgU3RyaW5nJiByZWFsbSwgQXV0aGVu
dGljYXRpb25TY2hlbWUgYXV0aGVudGljYXRpb25TY2hlbWUpCiAgICAgICAgIDogUHJvdGVjdGlv
blNwYWNlQmFzZShob3N0LCBwb3J0LCBzZXJ2ZXJUeXBlLCByZWFsbSwgYXV0aGVudGljYXRpb25T
Y2hlbWUpCiAgICAgewogICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L25ldHdvcmsvUHJvdGVjdGlvblNwYWNlQmFzZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9uZXR3b3JrL1Byb3RlY3Rpb25TcGFjZUJhc2UuY3BwCmluZGV4IDc5NzVmOWFjZDc1MjI4MTM0
MzIzOTdiMTY4M2Q4NzA1NDUzM2JlMmMuLjEyNjgyNDA4Zjk3ZTBkMmNkNWY5NDllZGE3ZGYwNWZk
NzRiNTkwNjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvUHJv
dGVjdGlvblNwYWNlQmFzZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29y
ay9Qcm90ZWN0aW9uU3BhY2VCYXNlLmNwcApAQCAtMzYsNyArMzYsNyBAQCBuYW1lc3BhY2UgV2Vi
Q29yZSB7CiAgCiAvLyBOZWVkIHRvIGVuZm9yY2UgZW1wdHksIG5vbi1udWxsIHN0cmluZ3MgZHVl
IHRvIHRoZSBwaWNraW5lc3Mgb2YgdGhlIFN0cmluZyA9PSBTdHJpbmcgb3BlcmF0b3IKIC8vIGNv
bWJpbmVkIHdpdGggdGhlIHNlbWFudGljcyBvZiB0aGUgU3RyaW5nKE5TU3RyaW5nKikgY29uc3Ry
dWN0b3IKLVByb3RlY3Rpb25TcGFjZUJhc2U6OlByb3RlY3Rpb25TcGFjZUJhc2UoY29uc3QgU3Ry
aW5nJiBob3N0LCBpbnQgcG9ydCwgUHJvdGVjdGlvblNwYWNlU2VydmVyVHlwZSBzZXJ2ZXJUeXBl
LCBjb25zdCBTdHJpbmcmIHJlYWxtLCBQcm90ZWN0aW9uU3BhY2VBdXRoZW50aWNhdGlvblNjaGVt
ZSBhdXRoZW50aWNhdGlvblNjaGVtZSkKK1Byb3RlY3Rpb25TcGFjZUJhc2U6OlByb3RlY3Rpb25T
cGFjZUJhc2UoY29uc3QgU3RyaW5nJiBob3N0LCBpbnQgcG9ydCwgU2VydmVyVHlwZSBzZXJ2ZXJU
eXBlLCBjb25zdCBTdHJpbmcmIHJlYWxtLCBBdXRoZW50aWNhdGlvblNjaGVtZSBhdXRoZW50aWNh
dGlvblNjaGVtZSkKICAgICA6IG1faG9zdChob3N0Lmxlbmd0aCgpID8gaG9zdCA6IGVtcHR5U3Ry
aW5nKCkpCiAgICAgLCBtX3JlYWxtKHJlYWxtLmxlbmd0aCgpID8gcmVhbG0gOiBlbXB0eVN0cmlu
ZygpKQogICAgICwgbV9wb3J0KHBvcnQpCkBAIC00NywzNyArNDcsMzcgQEAgUHJvdGVjdGlvblNw
YWNlQmFzZTo6UHJvdGVjdGlvblNwYWNlQmFzZShjb25zdCBTdHJpbmcmIGhvc3QsIGludCBwb3J0
LCBQcm90ZWN0aW8KIAogYm9vbCBQcm90ZWN0aW9uU3BhY2VCYXNlOjppc1Byb3h5KCkgY29uc3QK
IHsKLSAgICByZXR1cm4gKG1fc2VydmVyVHlwZSA9PSBQcm90ZWN0aW9uU3BhY2VQcm94eUhUVFAg
fHwKLSAgICAgICAgICAgIG1fc2VydmVyVHlwZSA9PSBQcm90ZWN0aW9uU3BhY2VQcm94eUhUVFBT
IHx8Ci0gICAgICAgICAgICBtX3NlcnZlclR5cGUgPT0gUHJvdGVjdGlvblNwYWNlUHJveHlGVFAg
fHwKLSAgICAgICAgICAgIG1fc2VydmVyVHlwZSA9PSBQcm90ZWN0aW9uU3BhY2VQcm94eVNPQ0tT
KTsKKyAgICByZXR1cm4gbV9zZXJ2ZXJUeXBlID09IFNlcnZlclR5cGU6OlByb3h5SFRUUAorICAg
ICAgICB8fCBtX3NlcnZlclR5cGUgPT0gU2VydmVyVHlwZTo6UHJveHlIVFRQUworICAgICAgICB8
fCBtX3NlcnZlclR5cGUgPT0gU2VydmVyVHlwZTo6UHJveHlGVFAKKyAgICAgICAgfHwgbV9zZXJ2
ZXJUeXBlID09IFNlcnZlclR5cGU6OlByb3h5U09DS1M7CiB9CiAKIGJvb2wgUHJvdGVjdGlvblNw
YWNlQmFzZTo6cmVjZWl2ZXNDcmVkZW50aWFsU2VjdXJlbHkoKSBjb25zdAogewotICAgIHJldHVy
biAobV9zZXJ2ZXJUeXBlID09IFByb3RlY3Rpb25TcGFjZVNlcnZlckhUVFBTIHx8Ci0gICAgICAg
ICAgICBtX3NlcnZlclR5cGUgPT0gUHJvdGVjdGlvblNwYWNlU2VydmVyRlRQUyB8fCAKLSAgICAg
ICAgICAgIG1fc2VydmVyVHlwZSA9PSBQcm90ZWN0aW9uU3BhY2VQcm94eUhUVFBTIHx8IAotICAg
ICAgICAgICAgbV9hdXRoZW50aWNhdGlvblNjaGVtZSA9PSBQcm90ZWN0aW9uU3BhY2VBdXRoZW50
aWNhdGlvblNjaGVtZUhUVFBEaWdlc3QpOyAKKyAgICByZXR1cm4gbV9zZXJ2ZXJUeXBlID09IFNl
cnZlclR5cGU6OkhUVFBTCisgICAgICAgIHx8IG1fc2VydmVyVHlwZSA9PSBTZXJ2ZXJUeXBlOjpG
VFBTCisgICAgICAgIHx8IG1fc2VydmVyVHlwZSA9PSBTZXJ2ZXJUeXBlOjpQcm94eUhUVFBTCisg
ICAgICAgIHx8IG1fYXV0aGVudGljYXRpb25TY2hlbWUgPT0gQXV0aGVudGljYXRpb25TY2hlbWU6
OkhUVFBEaWdlc3Q7CiB9CiAKIGJvb2wgUHJvdGVjdGlvblNwYWNlQmFzZTo6aXNQYXNzd29yZEJh
c2VkKCkgY29uc3QKIHsKICAgICBzd2l0Y2ggKG1fYXV0aGVudGljYXRpb25TY2hlbWUpIHsKLSAg
ICBjYXNlIFByb3RlY3Rpb25TcGFjZUF1dGhlbnRpY2F0aW9uU2NoZW1lRGVmYXVsdDoKLSAgICBj
YXNlIFByb3RlY3Rpb25TcGFjZUF1dGhlbnRpY2F0aW9uU2NoZW1lSFRUUEJhc2ljOgotICAgIGNh
c2UgUHJvdGVjdGlvblNwYWNlQXV0aGVudGljYXRpb25TY2hlbWVIVFRQRGlnZXN0OgotICAgIGNh
c2UgUHJvdGVjdGlvblNwYWNlQXV0aGVudGljYXRpb25TY2hlbWVIVE1MRm9ybToKLSAgICBjYXNl
IFByb3RlY3Rpb25TcGFjZUF1dGhlbnRpY2F0aW9uU2NoZW1lTlRMTToKLSAgICBjYXNlIFByb3Rl
Y3Rpb25TcGFjZUF1dGhlbnRpY2F0aW9uU2NoZW1lTmVnb3RpYXRlOgotICAgIGNhc2UgUHJvdGVj
dGlvblNwYWNlQXV0aGVudGljYXRpb25TY2hlbWVPQXV0aDoKKyAgICBjYXNlIEF1dGhlbnRpY2F0
aW9uU2NoZW1lOjpEZWZhdWx0OgorICAgIGNhc2UgQXV0aGVudGljYXRpb25TY2hlbWU6OkhUVFBC
YXNpYzoKKyAgICBjYXNlIEF1dGhlbnRpY2F0aW9uU2NoZW1lOjpIVFRQRGlnZXN0OgorICAgIGNh
c2UgQXV0aGVudGljYXRpb25TY2hlbWU6OkhUTUxGb3JtOgorICAgIGNhc2UgQXV0aGVudGljYXRp
b25TY2hlbWU6Ok5UTE06CisgICAgY2FzZSBBdXRoZW50aWNhdGlvblNjaGVtZTo6TmVnb3RpYXRl
OgorICAgIGNhc2UgQXV0aGVudGljYXRpb25TY2hlbWU6Ok9BdXRoOgogI2lmIFVTRShHTElCKQot
ICAgIGNhc2UgUHJvdGVjdGlvblNwYWNlQXV0aGVudGljYXRpb25TY2hlbWVDbGllbnRDZXJ0aWZp
Y2F0ZVBJTlJlcXVlc3RlZDoKKyAgICBjYXNlIEF1dGhlbnRpY2F0aW9uU2NoZW1lOjpDbGllbnRD
ZXJ0aWZpY2F0ZVBJTlJlcXVlc3RlZDoKICNlbmRpZgogICAgICAgICByZXR1cm4gdHJ1ZTsKLSAg
ICBjYXNlIFByb3RlY3Rpb25TcGFjZUF1dGhlbnRpY2F0aW9uU2NoZW1lQ2xpZW50Q2VydGlmaWNh
dGVSZXF1ZXN0ZWQ6Ci0gICAgY2FzZSBQcm90ZWN0aW9uU3BhY2VBdXRoZW50aWNhdGlvblNjaGVt
ZVNlcnZlclRydXN0RXZhbHVhdGlvblJlcXVlc3RlZDoKLSAgICBjYXNlIFByb3RlY3Rpb25TcGFj
ZUF1dGhlbnRpY2F0aW9uU2NoZW1lVW5rbm93bjoKKyAgICBjYXNlIEF1dGhlbnRpY2F0aW9uU2No
ZW1lOjpDbGllbnRDZXJ0aWZpY2F0ZVJlcXVlc3RlZDoKKyAgICBjYXNlIEF1dGhlbnRpY2F0aW9u
U2NoZW1lOjpTZXJ2ZXJUcnVzdEV2YWx1YXRpb25SZXF1ZXN0ZWQ6CisgICAgY2FzZSBBdXRoZW50
aWNhdGlvblNjaGVtZTo6VW5rbm93bjoKICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgIH0KIApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9Qcm90ZWN0aW9uU3Bh
Y2VCYXNlLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL1Byb3RlY3Rpb25TcGFj
ZUJhc2UuaAppbmRleCA4YmU0MWQ0NzQwN2Y0ZWE0ODIxOWQ5MThjZmE2OTdiMThhODFlMzg2Li5k
MWRlOTZhZTA2MDA1NzRmMDUyNWMwZjRmNWJlOGVhZDZkMmI4YTYyIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL1Byb3RlY3Rpb25TcGFjZUJhc2UuaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL1Byb3RlY3Rpb25TcGFjZUJhc2UuaApAQCAt
MzEsNDUgKzMxLDQ0IEBACiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNzIFByb3RlY3Rpb25T
cGFjZTsKLQotZW51bSBQcm90ZWN0aW9uU3BhY2VTZXJ2ZXJUeXBlIHsKLSAgICBQcm90ZWN0aW9u
U3BhY2VTZXJ2ZXJIVFRQID0gMSwKLSAgICBQcm90ZWN0aW9uU3BhY2VTZXJ2ZXJIVFRQUyA9IDIs
Ci0gICAgUHJvdGVjdGlvblNwYWNlU2VydmVyRlRQID0gMywKLSAgICBQcm90ZWN0aW9uU3BhY2VT
ZXJ2ZXJGVFBTID0gNCwKLSAgICBQcm90ZWN0aW9uU3BhY2VQcm94eUhUVFAgPSA1LAotICAgIFBy
b3RlY3Rpb25TcGFjZVByb3h5SFRUUFMgPSA2LAotICAgIFByb3RlY3Rpb25TcGFjZVByb3h5RlRQ
ID0gNywKLSAgICBQcm90ZWN0aW9uU3BhY2VQcm94eVNPQ0tTID0gOAotfTsKLQotZW51bSBQcm90
ZWN0aW9uU3BhY2VBdXRoZW50aWNhdGlvblNjaGVtZSB7Ci0gICAgUHJvdGVjdGlvblNwYWNlQXV0
aGVudGljYXRpb25TY2hlbWVEZWZhdWx0ID0gMSwKLSAgICBQcm90ZWN0aW9uU3BhY2VBdXRoZW50
aWNhdGlvblNjaGVtZUhUVFBCYXNpYyA9IDIsCi0gICAgUHJvdGVjdGlvblNwYWNlQXV0aGVudGlj
YXRpb25TY2hlbWVIVFRQRGlnZXN0ID0gMywKLSAgICBQcm90ZWN0aW9uU3BhY2VBdXRoZW50aWNh
dGlvblNjaGVtZUhUTUxGb3JtID0gNCwKLSAgICBQcm90ZWN0aW9uU3BhY2VBdXRoZW50aWNhdGlv
blNjaGVtZU5UTE0gPSA1LAotICAgIFByb3RlY3Rpb25TcGFjZUF1dGhlbnRpY2F0aW9uU2NoZW1l
TmVnb3RpYXRlID0gNiwKLSAgICBQcm90ZWN0aW9uU3BhY2VBdXRoZW50aWNhdGlvblNjaGVtZUNs
aWVudENlcnRpZmljYXRlUmVxdWVzdGVkID0gNywKLSAgICBQcm90ZWN0aW9uU3BhY2VBdXRoZW50
aWNhdGlvblNjaGVtZVNlcnZlclRydXN0RXZhbHVhdGlvblJlcXVlc3RlZCA9IDgsCi0gICAgUHJv
dGVjdGlvblNwYWNlQXV0aGVudGljYXRpb25TY2hlbWVPQXV0aCA9IDksCi0jaWYgVVNFKEdMSUIp
Ci0gICAgUHJvdGVjdGlvblNwYWNlQXV0aGVudGljYXRpb25TY2hlbWVDbGllbnRDZXJ0aWZpY2F0
ZVBJTlJlcXVlc3RlZCA9IDEwLAotI2VuZGlmCi0gICAgUHJvdGVjdGlvblNwYWNlQXV0aGVudGlj
YXRpb25TY2hlbWVVbmtub3duID0gMTAwCi19OwogICAKIGNsYXNzIFByb3RlY3Rpb25TcGFjZUJh
c2UgewotCiBwdWJsaWM6CisgICAgZW51bSBjbGFzcyBTZXJ2ZXJUeXBlIDogdWludDhfdCB7Cisg
ICAgICAgIEhUVFAgPSAxLAorICAgICAgICBIVFRQUyA9IDIsCisgICAgICAgIEZUUCA9IDMsCisg
ICAgICAgIEZUUFMgPSA0LAorICAgICAgICBQcm94eUhUVFAgPSA1LAorICAgICAgICBQcm94eUhU
VFBTID0gNiwKKyAgICAgICAgUHJveHlGVFAgPSA3LAorICAgICAgICBQcm94eVNPQ0tTID0gOAor
ICAgIH07CisKKyAgICBlbnVtIGNsYXNzIEF1dGhlbnRpY2F0aW9uU2NoZW1lIDogdWludDhfdCB7
CisgICAgICAgIERlZmF1bHQgPSAxLAorICAgICAgICBIVFRQQmFzaWMgPSAyLAorICAgICAgICBI
VFRQRGlnZXN0ID0gMywKKyAgICAgICAgSFRNTEZvcm0gPSA0LAorICAgICAgICBOVExNID0gNSwK
KyAgICAgICAgTmVnb3RpYXRlID0gNiwKKyAgICAgICAgQ2xpZW50Q2VydGlmaWNhdGVSZXF1ZXN0
ZWQgPSA3LAorICAgICAgICBTZXJ2ZXJUcnVzdEV2YWx1YXRpb25SZXF1ZXN0ZWQgPSA4LAorICAg
ICAgICBPQXV0aCA9IDksCisjaWYgVVNFKEdMSUIpCisgICAgICAgIENsaWVudENlcnRpZmljYXRl
UElOUmVxdWVzdGVkID0gMTAsCisjZW5kaWYKKyAgICAgICAgVW5rbm93biA9IDEwMAorICAgIH07
CisKICAgICBib29sIGlzSGFzaFRhYmxlRGVsZXRlZFZhbHVlKCkgY29uc3QgeyByZXR1cm4gbV9p
c0hhc2hUYWJsZURlbGV0ZWRWYWx1ZTsgfQogICAgIAogICAgIGNvbnN0IFN0cmluZyYgaG9zdCgp
IGNvbnN0IHsgcmV0dXJuIG1faG9zdDsgfQogICAgIGludCBwb3J0KCkgY29uc3QgeyByZXR1cm4g
bV9wb3J0OyB9Ci0gICAgUHJvdGVjdGlvblNwYWNlU2VydmVyVHlwZSBzZXJ2ZXJUeXBlKCkgY29u
c3QgeyByZXR1cm4gbV9zZXJ2ZXJUeXBlOyB9CisgICAgU2VydmVyVHlwZSBzZXJ2ZXJUeXBlKCkg
Y29uc3QgeyByZXR1cm4gbV9zZXJ2ZXJUeXBlOyB9CiAgICAgV0VCQ09SRV9FWFBPUlQgYm9vbCBp
c1Byb3h5KCkgY29uc3Q7CiAgICAgY29uc3QgU3RyaW5nJiByZWFsbSgpIGNvbnN0IHsgcmV0dXJu
IG1fcmVhbG07IH0KLSAgICBQcm90ZWN0aW9uU3BhY2VBdXRoZW50aWNhdGlvblNjaGVtZSBhdXRo
ZW50aWNhdGlvblNjaGVtZSgpIGNvbnN0IHsgcmV0dXJuIG1fYXV0aGVudGljYXRpb25TY2hlbWU7
IH0KKyAgICBBdXRoZW50aWNhdGlvblNjaGVtZSBhdXRoZW50aWNhdGlvblNjaGVtZSgpIGNvbnN0
IHsgcmV0dXJuIG1fYXV0aGVudGljYXRpb25TY2hlbWU7IH0KICAgICAKICAgICBXRUJDT1JFX0VY
UE9SVCBib29sIHJlY2VpdmVzQ3JlZGVudGlhbFNlY3VyZWx5KCkgY29uc3Q7CiAgICAgV0VCQ09S
RV9FWFBPUlQgYm9vbCBpc1Bhc3N3b3JkQmFzZWQoKSBjb25zdDsKQEAgLTgwLDcgKzc5LDcgQEAg
cHVibGljOgogCiBwcm90ZWN0ZWQ6CiAgICAgUHJvdGVjdGlvblNwYWNlQmFzZSgpID0gZGVmYXVs
dDsKLSAgICBXRUJDT1JFX0VYUE9SVCBQcm90ZWN0aW9uU3BhY2VCYXNlKGNvbnN0IFN0cmluZyYg
aG9zdCwgaW50IHBvcnQsIFByb3RlY3Rpb25TcGFjZVNlcnZlclR5cGUsIGNvbnN0IFN0cmluZyYg
cmVhbG0sIFByb3RlY3Rpb25TcGFjZUF1dGhlbnRpY2F0aW9uU2NoZW1lKTsKKyAgICBXRUJDT1JF
X0VYUE9SVCBQcm90ZWN0aW9uU3BhY2VCYXNlKGNvbnN0IFN0cmluZyYgaG9zdCwgaW50IHBvcnQs
IFNlcnZlclR5cGUsIGNvbnN0IFN0cmluZyYgcmVhbG0sIEF1dGhlbnRpY2F0aW9uU2NoZW1lKTsK
IAogICAgIC8vIEhhc2ggdGFibGUgZGVsZXRlZCB2YWx1ZXMsIHdoaWNoIGFyZSBvbmx5IGNvbnN0
cnVjdGVkIGFuZCBuZXZlciBjb3BpZWQgb3IgZGVzdHJveWVkLgogICAgIFByb3RlY3Rpb25TcGFj
ZUJhc2UoV1RGOjpIYXNoVGFibGVEZWxldGVkVmFsdWVUeXBlKSA6IG1faXNIYXNoVGFibGVEZWxl
dGVkVmFsdWUodHJ1ZSkgeyB9CkBAIC05NCw4ICs5Myw4IEBAIHByaXZhdGU6CiAgICAgU3RyaW5n
IG1fcmVhbG0geyBlbXB0eVN0cmluZygpIH07CiAKICAgICBpbnQgbV9wb3J0IHsgMCB9OwotICAg
IFByb3RlY3Rpb25TcGFjZVNlcnZlclR5cGUgbV9zZXJ2ZXJUeXBlIHsgUHJvdGVjdGlvblNwYWNl
U2VydmVySFRUUCB9OwotICAgIFByb3RlY3Rpb25TcGFjZUF1dGhlbnRpY2F0aW9uU2NoZW1lIG1f
YXV0aGVudGljYXRpb25TY2hlbWUgeyBQcm90ZWN0aW9uU3BhY2VBdXRoZW50aWNhdGlvblNjaGVt
ZURlZmF1bHQgfTsKKyAgICBTZXJ2ZXJUeXBlIG1fc2VydmVyVHlwZSB7IFNlcnZlclR5cGU6OkhU
VFAgfTsKKyAgICBBdXRoZW50aWNhdGlvblNjaGVtZSBtX2F1dGhlbnRpY2F0aW9uU2NoZW1lIHsg
QXV0aGVudGljYXRpb25TY2hlbWU6OkRlZmF1bHQgfTsKICAgICBib29sIG1faXNIYXNoVGFibGVE
ZWxldGVkVmFsdWUgeyBmYWxzZSB9OwogfTsKIApAQCAtMTA2LDMzICsxMDUsMzMgQEAgaW5saW5l
IGJvb2wgb3BlcmF0b3IhPShjb25zdCBQcm90ZWN0aW9uU3BhY2UmIGEsIGNvbnN0IFByb3RlY3Rp
b25TcGFjZSYgYikgeyByZXQKIAogbmFtZXNwYWNlIFdURiB7CiAKLXRlbXBsYXRlPD4gc3RydWN0
IEVudW1UcmFpdHM8V2ViQ29yZTo6UHJvdGVjdGlvblNwYWNlQXV0aGVudGljYXRpb25TY2hlbWU+
IHsKK3RlbXBsYXRlPD4gc3RydWN0IEVudW1UcmFpdHM8V2ViQ29yZTo6UHJvdGVjdGlvblNwYWNl
QmFzZTo6QXV0aGVudGljYXRpb25TY2hlbWU+IHsKICAgICB1c2luZyB2YWx1ZXMgPSBFbnVtVmFs
dWVzPAotICAgICAgICBXZWJDb3JlOjpQcm90ZWN0aW9uU3BhY2VBdXRoZW50aWNhdGlvblNjaGVt
ZSwKLSAgICAgICAgV2ViQ29yZTo6UHJvdGVjdGlvblNwYWNlQXV0aGVudGljYXRpb25TY2hlbWU6
OlByb3RlY3Rpb25TcGFjZUF1dGhlbnRpY2F0aW9uU2NoZW1lRGVmYXVsdCwKLSAgICAgICAgV2Vi
Q29yZTo6UHJvdGVjdGlvblNwYWNlQXV0aGVudGljYXRpb25TY2hlbWU6OlByb3RlY3Rpb25TcGFj
ZUF1dGhlbnRpY2F0aW9uU2NoZW1lSFRUUEJhc2ljLAotICAgICAgICBXZWJDb3JlOjpQcm90ZWN0
aW9uU3BhY2VBdXRoZW50aWNhdGlvblNjaGVtZTo6UHJvdGVjdGlvblNwYWNlQXV0aGVudGljYXRp
b25TY2hlbWVIVFRQRGlnZXN0LAotICAgICAgICBXZWJDb3JlOjpQcm90ZWN0aW9uU3BhY2VBdXRo
ZW50aWNhdGlvblNjaGVtZTo6UHJvdGVjdGlvblNwYWNlQXV0aGVudGljYXRpb25TY2hlbWVIVE1M
Rm9ybSwKLSAgICAgICAgV2ViQ29yZTo6UHJvdGVjdGlvblNwYWNlQXV0aGVudGljYXRpb25TY2hl
bWU6OlByb3RlY3Rpb25TcGFjZUF1dGhlbnRpY2F0aW9uU2NoZW1lTlRMTSwKLSAgICAgICAgV2Vi
Q29yZTo6UHJvdGVjdGlvblNwYWNlQXV0aGVudGljYXRpb25TY2hlbWU6OlByb3RlY3Rpb25TcGFj
ZUF1dGhlbnRpY2F0aW9uU2NoZW1lTmVnb3RpYXRlLAotICAgICAgICBXZWJDb3JlOjpQcm90ZWN0
aW9uU3BhY2VBdXRoZW50aWNhdGlvblNjaGVtZTo6UHJvdGVjdGlvblNwYWNlQXV0aGVudGljYXRp
b25TY2hlbWVDbGllbnRDZXJ0aWZpY2F0ZVJlcXVlc3RlZCwKLSAgICAgICAgV2ViQ29yZTo6UHJv
dGVjdGlvblNwYWNlQXV0aGVudGljYXRpb25TY2hlbWU6OlByb3RlY3Rpb25TcGFjZUF1dGhlbnRp
Y2F0aW9uU2NoZW1lU2VydmVyVHJ1c3RFdmFsdWF0aW9uUmVxdWVzdGVkLAotICAgICAgICBXZWJD
b3JlOjpQcm90ZWN0aW9uU3BhY2VBdXRoZW50aWNhdGlvblNjaGVtZTo6UHJvdGVjdGlvblNwYWNl
QXV0aGVudGljYXRpb25TY2hlbWVPQXV0aCwKLSAgICAgICAgV2ViQ29yZTo6UHJvdGVjdGlvblNw
YWNlQXV0aGVudGljYXRpb25TY2hlbWU6OlByb3RlY3Rpb25TcGFjZUF1dGhlbnRpY2F0aW9uU2No
ZW1lVW5rbm93bgorICAgICAgICBXZWJDb3JlOjpQcm90ZWN0aW9uU3BhY2VCYXNlOjpBdXRoZW50
aWNhdGlvblNjaGVtZSwKKyAgICAgICAgV2ViQ29yZTo6UHJvdGVjdGlvblNwYWNlQmFzZTo6QXV0
aGVudGljYXRpb25TY2hlbWU6OkRlZmF1bHQsCisgICAgICAgIFdlYkNvcmU6OlByb3RlY3Rpb25T
cGFjZUJhc2U6OkF1dGhlbnRpY2F0aW9uU2NoZW1lOjpIVFRQQmFzaWMsCisgICAgICAgIFdlYkNv
cmU6OlByb3RlY3Rpb25TcGFjZUJhc2U6OkF1dGhlbnRpY2F0aW9uU2NoZW1lOjpIVFRQRGlnZXN0
LAorICAgICAgICBXZWJDb3JlOjpQcm90ZWN0aW9uU3BhY2VCYXNlOjpBdXRoZW50aWNhdGlvblNj
aGVtZTo6SFRNTEZvcm0sCisgICAgICAgIFdlYkNvcmU6OlByb3RlY3Rpb25TcGFjZUJhc2U6OkF1
dGhlbnRpY2F0aW9uU2NoZW1lOjpOVExNLAorICAgICAgICBXZWJDb3JlOjpQcm90ZWN0aW9uU3Bh
Y2VCYXNlOjpBdXRoZW50aWNhdGlvblNjaGVtZTo6TmVnb3RpYXRlLAorICAgICAgICBXZWJDb3Jl
OjpQcm90ZWN0aW9uU3BhY2VCYXNlOjpBdXRoZW50aWNhdGlvblNjaGVtZTo6Q2xpZW50Q2VydGlm
aWNhdGVSZXF1ZXN0ZWQsCisgICAgICAgIFdlYkNvcmU6OlByb3RlY3Rpb25TcGFjZUJhc2U6OkF1
dGhlbnRpY2F0aW9uU2NoZW1lOjpTZXJ2ZXJUcnVzdEV2YWx1YXRpb25SZXF1ZXN0ZWQsCisgICAg
ICAgIFdlYkNvcmU6OlByb3RlY3Rpb25TcGFjZUJhc2U6OkF1dGhlbnRpY2F0aW9uU2NoZW1lOjpP
QXV0aCwKKyAgICAgICAgV2ViQ29yZTo6UHJvdGVjdGlvblNwYWNlQmFzZTo6QXV0aGVudGljYXRp
b25TY2hlbWU6OlVua25vd24KICAgICA+OwogfTsKIAotdGVtcGxhdGU8PiBzdHJ1Y3QgRW51bVRy
YWl0czxXZWJDb3JlOjpQcm90ZWN0aW9uU3BhY2VTZXJ2ZXJUeXBlPiB7Cit0ZW1wbGF0ZTw+IHN0
cnVjdCBFbnVtVHJhaXRzPFdlYkNvcmU6OlByb3RlY3Rpb25TcGFjZUJhc2U6OlNlcnZlclR5cGU+
IHsKICAgICB1c2luZyB2YWx1ZXMgPSBFbnVtVmFsdWVzPAotICAgICAgICBXZWJDb3JlOjpQcm90
ZWN0aW9uU3BhY2VTZXJ2ZXJUeXBlLAotICAgICAgICBXZWJDb3JlOjpQcm90ZWN0aW9uU3BhY2VT
ZXJ2ZXJUeXBlOjpQcm90ZWN0aW9uU3BhY2VTZXJ2ZXJIVFRQLAotICAgICAgICBXZWJDb3JlOjpQ
cm90ZWN0aW9uU3BhY2VTZXJ2ZXJUeXBlOjpQcm90ZWN0aW9uU3BhY2VTZXJ2ZXJIVFRQUywKLSAg
ICAgICAgV2ViQ29yZTo6UHJvdGVjdGlvblNwYWNlU2VydmVyVHlwZTo6UHJvdGVjdGlvblNwYWNl
U2VydmVyRlRQLAotICAgICAgICBXZWJDb3JlOjpQcm90ZWN0aW9uU3BhY2VTZXJ2ZXJUeXBlOjpQ
cm90ZWN0aW9uU3BhY2VTZXJ2ZXJGVFBTLAotICAgICAgICBXZWJDb3JlOjpQcm90ZWN0aW9uU3Bh
Y2VTZXJ2ZXJUeXBlOjpQcm90ZWN0aW9uU3BhY2VQcm94eUhUVFAsCi0gICAgICAgIFdlYkNvcmU6
OlByb3RlY3Rpb25TcGFjZVNlcnZlclR5cGU6OlByb3RlY3Rpb25TcGFjZVByb3h5SFRUUFMsCi0g
ICAgICAgIFdlYkNvcmU6OlByb3RlY3Rpb25TcGFjZVNlcnZlclR5cGU6OlByb3RlY3Rpb25TcGFj
ZVByb3h5RlRQLAotICAgICAgICBXZWJDb3JlOjpQcm90ZWN0aW9uU3BhY2VTZXJ2ZXJUeXBlOjpQ
cm90ZWN0aW9uU3BhY2VQcm94eVNPQ0tTCisgICAgICAgIFdlYkNvcmU6OlByb3RlY3Rpb25TcGFj
ZUJhc2U6OlNlcnZlclR5cGUsCisgICAgICAgIFdlYkNvcmU6OlByb3RlY3Rpb25TcGFjZUJhc2U6
OlNlcnZlclR5cGU6OkhUVFAsCisgICAgICAgIFdlYkNvcmU6OlByb3RlY3Rpb25TcGFjZUJhc2U6
OlNlcnZlclR5cGU6OkhUVFBTLAorICAgICAgICBXZWJDb3JlOjpQcm90ZWN0aW9uU3BhY2VCYXNl
OjpTZXJ2ZXJUeXBlOjpGVFAsCisgICAgICAgIFdlYkNvcmU6OlByb3RlY3Rpb25TcGFjZUJhc2U6
OlNlcnZlclR5cGU6OkZUUFMsCisgICAgICAgIFdlYkNvcmU6OlByb3RlY3Rpb25TcGFjZUJhc2U6
OlNlcnZlclR5cGU6OlByb3h5SFRUUCwKKyAgICAgICAgV2ViQ29yZTo6UHJvdGVjdGlvblNwYWNl
QmFzZTo6U2VydmVyVHlwZTo6UHJveHlIVFRQUywKKyAgICAgICAgV2ViQ29yZTo6UHJvdGVjdGlv
blNwYWNlQmFzZTo6U2VydmVyVHlwZTo6UHJveHlGVFAsCisgICAgICAgIFdlYkNvcmU6OlByb3Rl
Y3Rpb25TcGFjZUJhc2U6OlNlcnZlclR5cGU6OlByb3h5U09DS1MKICAgICA+OwogfTsKIApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jZi9BdXRoZW50aWNhdGlv
bkNGLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY2YvQXV0aGVudGljYXRp
b25DRi5jcHAKaW5kZXggY2VlNWQ3ZWFjYmNiNjIxMGIyMjlkY2VhYzg3YjQ2ZjRmYmQ4ZWNlMC4u
M2M5Mjc3MDFiNjI3MmY5N2VjOWM1ZmY0YWIwZjA5ZjQ2MzhhODI1MiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jZi9BdXRoZW50aWNhdGlvbkNGLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2NmL0F1dGhlbnRpY2F0aW9uQ0YuY3Bw
CkBAIC0xMDQsMjggKzEwNCwyOCBAQCBSZXRhaW5QdHI8Q0ZVUkxQcm90ZWN0aW9uU3BhY2VSZWY+
IGNyZWF0ZUNGKGNvbnN0IFByb3RlY3Rpb25TcGFjZSYgY29yZVNwYWNlKQogewogICAgIENGVVJM
UHJvdGVjdGlvblNwYWNlU2VydmVyVHlwZSBzZXJ2ZXJUeXBlID0ga0NGVVJMUHJvdGVjdGlvblNw
YWNlU2VydmVySFRUUDsKICAgICBzd2l0Y2ggKGNvcmVTcGFjZS5zZXJ2ZXJUeXBlKCkpIHsKLSAg
ICBjYXNlIFByb3RlY3Rpb25TcGFjZVNlcnZlckhUVFA6CisgICAgY2FzZSBQcm90ZWN0aW9uU3Bh
Y2U6OlNlcnZlclR5cGU6OkhUVFA6CiAgICAgICAgIHNlcnZlclR5cGUgPSBrQ0ZVUkxQcm90ZWN0
aW9uU3BhY2VTZXJ2ZXJIVFRQOwogICAgICAgICBicmVhazsKLSAgICBjYXNlIFByb3RlY3Rpb25T
cGFjZVNlcnZlckhUVFBTOgorICAgIGNhc2UgUHJvdGVjdGlvblNwYWNlOjpTZXJ2ZXJUeXBlOjpI
VFRQUzoKICAgICAgICAgc2VydmVyVHlwZSA9IGtDRlVSTFByb3RlY3Rpb25TcGFjZVNlcnZlckhU
VFBTOwogICAgICAgICBicmVhazsKLSAgICBjYXNlIFByb3RlY3Rpb25TcGFjZVNlcnZlckZUUDoK
KyAgICBjYXNlIFByb3RlY3Rpb25TcGFjZTo6U2VydmVyVHlwZTo6RlRQOgogICAgICAgICBzZXJ2
ZXJUeXBlID0ga0NGVVJMUHJvdGVjdGlvblNwYWNlU2VydmVyRlRQOwogICAgICAgICBicmVhazsK
LSAgICBjYXNlIFByb3RlY3Rpb25TcGFjZVNlcnZlckZUUFM6CisgICAgY2FzZSBQcm90ZWN0aW9u
U3BhY2U6OlNlcnZlclR5cGU6OkZUUFM6CiAgICAgICAgIHNlcnZlclR5cGUgPSBrQ0ZVUkxQcm90
ZWN0aW9uU3BhY2VTZXJ2ZXJGVFBTOwogICAgICAgICBicmVhazsKLSAgICBjYXNlIFByb3RlY3Rp
b25TcGFjZVByb3h5SFRUUDoKKyAgICBjYXNlIFByb3RlY3Rpb25TcGFjZTo6U2VydmVyVHlwZTo6
UHJveHlIVFRQOgogICAgICAgICBzZXJ2ZXJUeXBlID0ga0NGVVJMUHJvdGVjdGlvblNwYWNlUHJv
eHlIVFRQOwogICAgICAgICBicmVhazsKLSAgICBjYXNlIFByb3RlY3Rpb25TcGFjZVByb3h5SFRU
UFM6CisgICAgY2FzZSBQcm90ZWN0aW9uU3BhY2U6OlNlcnZlclR5cGU6OlByb3h5SFRUUFM6CiAg
ICAgICAgIHNlcnZlclR5cGUgPSBrQ0ZVUkxQcm90ZWN0aW9uU3BhY2VQcm94eUhUVFBTOwogICAg
ICAgICBicmVhazsKLSAgICBjYXNlIFByb3RlY3Rpb25TcGFjZVByb3h5RlRQOgorICAgIGNhc2Ug
UHJvdGVjdGlvblNwYWNlOjpTZXJ2ZXJUeXBlOjpQcm94eUZUUDoKICAgICAgICAgc2VydmVyVHlw
ZSA9IGtDRlVSTFByb3RlY3Rpb25TcGFjZVByb3h5RlRQOwogICAgICAgICBicmVhazsKLSAgICBj
YXNlIFByb3RlY3Rpb25TcGFjZVByb3h5U09DS1M6CisgICAgY2FzZSBQcm90ZWN0aW9uU3BhY2U6
OlNlcnZlclR5cGU6OlByb3h5U09DS1M6CiAgICAgICAgIHNlcnZlclR5cGUgPSBrQ0ZVUkxQcm90
ZWN0aW9uU3BhY2VQcm94eVNPQ0tTOwogICAgICAgICBicmVhazsKICAgICBkZWZhdWx0OgpAQCAt
MTM0LDI5ICsxMzQsMjkgQEAgUmV0YWluUHRyPENGVVJMUHJvdGVjdGlvblNwYWNlUmVmPiBjcmVh
dGVDRihjb25zdCBQcm90ZWN0aW9uU3BhY2UmIGNvcmVTcGFjZSkKIAogICAgIENGVVJMUHJvdGVj
dGlvblNwYWNlQXV0aGVudGljYXRpb25TY2hlbWUgc2NoZW1lID0ga0NGVVJMUHJvdGVjdGlvblNw
YWNlQXV0aGVudGljYXRpb25TY2hlbWVEZWZhdWx0OwogICAgIHN3aXRjaCAoY29yZVNwYWNlLmF1
dGhlbnRpY2F0aW9uU2NoZW1lKCkpIHsKLSAgICBjYXNlIFByb3RlY3Rpb25TcGFjZUF1dGhlbnRp
Y2F0aW9uU2NoZW1lRGVmYXVsdDoKKyAgICBjYXNlIFByb3RlY3Rpb25TcGFjZTo6QXV0aGVudGlj
YXRpb25TY2hlbWU6OkRlZmF1bHQ6CiAgICAgICAgIHNjaGVtZSA9IGtDRlVSTFByb3RlY3Rpb25T
cGFjZUF1dGhlbnRpY2F0aW9uU2NoZW1lRGVmYXVsdDsKICAgICAgICAgYnJlYWs7Ci0gICAgY2Fz
ZSBQcm90ZWN0aW9uU3BhY2VBdXRoZW50aWNhdGlvblNjaGVtZUhUVFBCYXNpYzoKKyAgICBjYXNl
IFByb3RlY3Rpb25TcGFjZTo6QXV0aGVudGljYXRpb25TY2hlbWU6OkhUVFBCYXNpYzoKICAgICAg
ICAgc2NoZW1lID0ga0NGVVJMUHJvdGVjdGlvblNwYWNlQXV0aGVudGljYXRpb25TY2hlbWVIVFRQ
QmFzaWM7CiAgICAgICAgIGJyZWFrOwotICAgIGNhc2UgUHJvdGVjdGlvblNwYWNlQXV0aGVudGlj
YXRpb25TY2hlbWVIVFRQRGlnZXN0OgorICAgIGNhc2UgUHJvdGVjdGlvblNwYWNlOjpBdXRoZW50
aWNhdGlvblNjaGVtZTo6SFRUUERpZ2VzdDoKICAgICAgICAgc2NoZW1lID0ga0NGVVJMUHJvdGVj
dGlvblNwYWNlQXV0aGVudGljYXRpb25TY2hlbWVIVFRQRGlnZXN0OwogICAgICAgICBicmVhazsK
LSAgICBjYXNlIFByb3RlY3Rpb25TcGFjZUF1dGhlbnRpY2F0aW9uU2NoZW1lSFRNTEZvcm06Cisg
ICAgY2FzZSBQcm90ZWN0aW9uU3BhY2U6OkF1dGhlbnRpY2F0aW9uU2NoZW1lOjpIVE1MRm9ybToK
ICAgICAgICAgc2NoZW1lID0ga0NGVVJMUHJvdGVjdGlvblNwYWNlQXV0aGVudGljYXRpb25TY2hl
bWVIVE1MRm9ybTsKICAgICAgICAgYnJlYWs7Ci0gICAgY2FzZSBQcm90ZWN0aW9uU3BhY2VBdXRo
ZW50aWNhdGlvblNjaGVtZU5UTE06CisgICAgY2FzZSBQcm90ZWN0aW9uU3BhY2U6OkF1dGhlbnRp
Y2F0aW9uU2NoZW1lOjpOVExNOgogICAgICAgICBzY2hlbWUgPSBrQ0ZVUkxQcm90ZWN0aW9uU3Bh
Y2VBdXRoZW50aWNhdGlvblNjaGVtZU5UTE07CiAgICAgICAgIGJyZWFrOwotICAgIGNhc2UgUHJv
dGVjdGlvblNwYWNlQXV0aGVudGljYXRpb25TY2hlbWVOZWdvdGlhdGU6CisgICAgY2FzZSBQcm90
ZWN0aW9uU3BhY2U6OkF1dGhlbnRpY2F0aW9uU2NoZW1lOjpOZWdvdGlhdGU6CiAgICAgICAgIHNj
aGVtZSA9IGtDRlVSTFByb3RlY3Rpb25TcGFjZUF1dGhlbnRpY2F0aW9uU2NoZW1lTmVnb3RpYXRl
OwogICAgICAgICBicmVhazsKICNpZiBVU0UoUFJPVEVDVElPTl9TUEFDRV9BVVRIX0NBTExCQUNL
KQotICAgIGNhc2UgUHJvdGVjdGlvblNwYWNlQXV0aGVudGljYXRpb25TY2hlbWVTZXJ2ZXJUcnVz
dEV2YWx1YXRpb25SZXF1ZXN0ZWQ6CisgICAgY2FzZSBQcm90ZWN0aW9uU3BhY2U6OkF1dGhlbnRp
Y2F0aW9uU2NoZW1lOjpTZXJ2ZXJUcnVzdEV2YWx1YXRpb25SZXF1ZXN0ZWQ6CiAgICAgICAgIHNj
aGVtZSA9IGtDRlVSTFByb3RlY3Rpb25TcGFjZUF1dGhlbnRpY2F0aW9uU2NoZW1lU2VydmVyVHJ1
c3RFdmFsdWF0aW9uUmVxdWVzdGVkOwogICAgICAgICBicmVhazsKLSAgICBjYXNlIFByb3RlY3Rp
b25TcGFjZUF1dGhlbnRpY2F0aW9uU2NoZW1lQ2xpZW50Q2VydGlmaWNhdGVSZXF1ZXN0ZWQ6Cisg
ICAgY2FzZSBQcm90ZWN0aW9uU3BhY2U6OkF1dGhlbnRpY2F0aW9uU2NoZW1lOjpDbGllbnRDZXJ0
aWZpY2F0ZVJlcXVlc3RlZDoKICAgICAgICAgc2NoZW1lID0ga0NGVVJMUHJvdGVjdGlvblNwYWNl
QXV0aGVudGljYXRpb25TY2hlbWVDbGllbnRDZXJ0aWZpY2F0ZVJlcXVlc3RlZDsKICAgICAgICAg
YnJlYWs7CiAjZW5kaWYKQEAgLTE5Miw2NyArMTkyLDY3IEBAIENyZWRlbnRpYWwgY29yZShDRlVS
TENyZWRlbnRpYWxSZWYgY2ZDcmVkZW50aWFsKQogCiBQcm90ZWN0aW9uU3BhY2UgY29yZShDRlVS
TFByb3RlY3Rpb25TcGFjZVJlZiBjZlNwYWNlKQogewotICAgIFByb3RlY3Rpb25TcGFjZVNlcnZl
clR5cGUgc2VydmVyVHlwZSA9IFByb3RlY3Rpb25TcGFjZVNlcnZlckhUVFA7CisgICAgYXV0byBz
ZXJ2ZXJUeXBlID0gUHJvdGVjdGlvblNwYWNlOjpTZXJ2ZXJUeXBlOjpIVFRQOwogICAgIAogICAg
IHN3aXRjaCAoQ0ZVUkxQcm90ZWN0aW9uU3BhY2VHZXRTZXJ2ZXJUeXBlKGNmU3BhY2UpKSB7CiAg
ICAgY2FzZSBrQ0ZVUkxQcm90ZWN0aW9uU3BhY2VTZXJ2ZXJIVFRQOgogICAgICAgICBicmVhazsK
ICAgICBjYXNlIGtDRlVSTFByb3RlY3Rpb25TcGFjZVNlcnZlckhUVFBTOgotICAgICAgICBzZXJ2
ZXJUeXBlID0gUHJvdGVjdGlvblNwYWNlU2VydmVySFRUUFM7CisgICAgICAgIHNlcnZlclR5cGUg
PSBQcm90ZWN0aW9uU3BhY2U6OlNlcnZlclR5cGU6OkhUVFBTOwogICAgICAgICBicmVhazsKICAg
ICBjYXNlIGtDRlVSTFByb3RlY3Rpb25TcGFjZVNlcnZlckZUUDoKLSAgICAgICAgc2VydmVyVHlw
ZSA9IFByb3RlY3Rpb25TcGFjZVNlcnZlckZUUDsKKyAgICAgICAgc2VydmVyVHlwZSA9IFByb3Rl
Y3Rpb25TcGFjZTo6U2VydmVyVHlwZTo6RlRQOwogICAgICAgICBicmVhazsKICAgICBjYXNlIGtD
RlVSTFByb3RlY3Rpb25TcGFjZVNlcnZlckZUUFM6Ci0gICAgICAgIHNlcnZlclR5cGUgPSBQcm90
ZWN0aW9uU3BhY2VTZXJ2ZXJGVFBTOworICAgICAgICBzZXJ2ZXJUeXBlID0gUHJvdGVjdGlvblNw
YWNlOjpTZXJ2ZXJUeXBlOjpGVFBTOwogICAgICAgICBicmVhazsKICAgICBjYXNlIGtDRlVSTFBy
b3RlY3Rpb25TcGFjZVByb3h5SFRUUDoKLSAgICAgICAgc2VydmVyVHlwZSA9IFByb3RlY3Rpb25T
cGFjZVByb3h5SFRUUDsKKyAgICAgICAgc2VydmVyVHlwZSA9IFByb3RlY3Rpb25TcGFjZTo6U2Vy
dmVyVHlwZTo6UHJveHlIVFRQOwogICAgICAgICBicmVhazsKICAgICBjYXNlIGtDRlVSTFByb3Rl
Y3Rpb25TcGFjZVByb3h5SFRUUFM6Ci0gICAgICAgIHNlcnZlclR5cGUgPSBQcm90ZWN0aW9uU3Bh
Y2VQcm94eUhUVFBTOworICAgICAgICBzZXJ2ZXJUeXBlID0gUHJvdGVjdGlvblNwYWNlOjpTZXJ2
ZXJUeXBlOjpQcm94eUhUVFBTOwogICAgICAgICBicmVhazsKICAgICBjYXNlIGtDRlVSTFByb3Rl
Y3Rpb25TcGFjZVByb3h5RlRQOgotICAgICAgICBzZXJ2ZXJUeXBlID0gUHJvdGVjdGlvblNwYWNl
UHJveHlGVFA7CisgICAgICAgIHNlcnZlclR5cGUgPSBQcm90ZWN0aW9uU3BhY2U6OlNlcnZlclR5
cGU6OlByb3h5RlRQOwogICAgICAgICBicmVhazsKICAgICBjYXNlIGtDRlVSTFByb3RlY3Rpb25T
cGFjZVByb3h5U09DS1M6Ci0gICAgICAgIHNlcnZlclR5cGUgPSBQcm90ZWN0aW9uU3BhY2VQcm94
eVNPQ0tTOworICAgICAgICBzZXJ2ZXJUeXBlID0gUHJvdGVjdGlvblNwYWNlOjpTZXJ2ZXJUeXBl
OjpQcm94eVNPQ0tTOwogICAgICAgICBicmVhazsKICAgICBkZWZhdWx0OgogICAgICAgICBBU1NF
UlRfTk9UX1JFQUNIRUQoKTsKICAgICB9CiAKLSAgICBQcm90ZWN0aW9uU3BhY2VBdXRoZW50aWNh
dGlvblNjaGVtZSBzY2hlbWUgPSBQcm90ZWN0aW9uU3BhY2VBdXRoZW50aWNhdGlvblNjaGVtZURl
ZmF1bHQ7CisgICAgYXV0byBzY2hlbWUgPSBQcm90ZWN0aW9uU3BhY2U6OkF1dGhlbnRpY2F0aW9u
U2NoZW1lOjpEZWZhdWx0OwogICAgIAogICAgIHN3aXRjaCAoQ0ZVUkxQcm90ZWN0aW9uU3BhY2VH
ZXRBdXRoZW50aWNhdGlvblNjaGVtZShjZlNwYWNlKSkgewogICAgIGNhc2Uga0NGVVJMUHJvdGVj
dGlvblNwYWNlQXV0aGVudGljYXRpb25TY2hlbWVEZWZhdWx0OgotICAgICAgICBzY2hlbWUgPSBQ
cm90ZWN0aW9uU3BhY2VBdXRoZW50aWNhdGlvblNjaGVtZURlZmF1bHQ7CisgICAgICAgIHNjaGVt
ZSA9IFByb3RlY3Rpb25TcGFjZTo6QXV0aGVudGljYXRpb25TY2hlbWU6OkRlZmF1bHQ7CiAgICAg
ICAgIGJyZWFrOwogICAgIGNhc2Uga0NGVVJMUHJvdGVjdGlvblNwYWNlQXV0aGVudGljYXRpb25T
Y2hlbWVIVFRQQmFzaWM6Ci0gICAgICAgIHNjaGVtZSA9IFByb3RlY3Rpb25TcGFjZUF1dGhlbnRp
Y2F0aW9uU2NoZW1lSFRUUEJhc2ljOworICAgICAgICBzY2hlbWUgPSBQcm90ZWN0aW9uU3BhY2U6
OkF1dGhlbnRpY2F0aW9uU2NoZW1lOjpIVFRQQmFzaWM7CiAgICAgICAgIGJyZWFrOwogICAgIGNh
c2Uga0NGVVJMUHJvdGVjdGlvblNwYWNlQXV0aGVudGljYXRpb25TY2hlbWVIVFRQRGlnZXN0Ogot
ICAgICAgICBzY2hlbWUgPSBQcm90ZWN0aW9uU3BhY2VBdXRoZW50aWNhdGlvblNjaGVtZUhUVFBE
aWdlc3Q7CisgICAgICAgIHNjaGVtZSA9IFByb3RlY3Rpb25TcGFjZTo6QXV0aGVudGljYXRpb25T
Y2hlbWU6OkhUVFBEaWdlc3Q7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2Uga0NGVVJMUHJvdGVj
dGlvblNwYWNlQXV0aGVudGljYXRpb25TY2hlbWVIVE1MRm9ybToKLSAgICAgICAgc2NoZW1lID0g
UHJvdGVjdGlvblNwYWNlQXV0aGVudGljYXRpb25TY2hlbWVIVE1MRm9ybTsKKyAgICAgICAgc2No
ZW1lID0gUHJvdGVjdGlvblNwYWNlOjpBdXRoZW50aWNhdGlvblNjaGVtZTo6SFRNTEZvcm07CiAg
ICAgICAgIGJyZWFrOwogICAgIGNhc2Uga0NGVVJMUHJvdGVjdGlvblNwYWNlQXV0aGVudGljYXRp
b25TY2hlbWVOVExNOgotICAgICAgICBzY2hlbWUgPSBQcm90ZWN0aW9uU3BhY2VBdXRoZW50aWNh
dGlvblNjaGVtZU5UTE07CisgICAgICAgIHNjaGVtZSA9IFByb3RlY3Rpb25TcGFjZTo6QXV0aGVu
dGljYXRpb25TY2hlbWU6Ok5UTE07CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2Uga0NGVVJMUHJv
dGVjdGlvblNwYWNlQXV0aGVudGljYXRpb25TY2hlbWVOZWdvdGlhdGU6Ci0gICAgICAgIHNjaGVt
ZSA9IFByb3RlY3Rpb25TcGFjZUF1dGhlbnRpY2F0aW9uU2NoZW1lTmVnb3RpYXRlOworICAgICAg
ICBzY2hlbWUgPSBQcm90ZWN0aW9uU3BhY2U6OkF1dGhlbnRpY2F0aW9uU2NoZW1lOjpOZWdvdGlh
dGU7CiAgICAgICAgIGJyZWFrOwogI2lmIFVTRShQUk9URUNUSU9OX1NQQUNFX0FVVEhfQ0FMTEJB
Q0spCiAgICAgY2FzZSBrQ0ZVUkxQcm90ZWN0aW9uU3BhY2VBdXRoZW50aWNhdGlvblNjaGVtZUNs
aWVudENlcnRpZmljYXRlUmVxdWVzdGVkOgotICAgICAgICBzY2hlbWUgPSBQcm90ZWN0aW9uU3Bh
Y2VBdXRoZW50aWNhdGlvblNjaGVtZUNsaWVudENlcnRpZmljYXRlUmVxdWVzdGVkOworICAgICAg
ICBzY2hlbWUgPSBQcm90ZWN0aW9uU3BhY2U6OkF1dGhlbnRpY2F0aW9uU2NoZW1lOjpDbGllbnRD
ZXJ0aWZpY2F0ZVJlcXVlc3RlZDsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBrQ0ZVUkxQcm90
ZWN0aW9uU3BhY2VBdXRoZW50aWNhdGlvblNjaGVtZVNlcnZlclRydXN0RXZhbHVhdGlvblJlcXVl
c3RlZDoKLSAgICAgICAgc2NoZW1lID0gUHJvdGVjdGlvblNwYWNlQXV0aGVudGljYXRpb25TY2hl
bWVTZXJ2ZXJUcnVzdEV2YWx1YXRpb25SZXF1ZXN0ZWQ7CisgICAgICAgIHNjaGVtZSA9IFByb3Rl
Y3Rpb25TcGFjZTo6QXV0aGVudGljYXRpb25TY2hlbWU6OlNlcnZlclRydXN0RXZhbHVhdGlvblJl
cXVlc3RlZDsKICAgICAgICAgYnJlYWs7CiAjZW5kaWYKICAgICBkZWZhdWx0OgotICAgICAgICBz
Y2hlbWUgPSBQcm90ZWN0aW9uU3BhY2VBdXRoZW50aWNhdGlvblNjaGVtZVVua25vd247CisgICAg
ICAgIHNjaGVtZSA9IFByb3RlY3Rpb25TcGFjZTo6QXV0aGVudGljYXRpb25TY2hlbWU6OlVua25v
d247CiAgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwogICAgIH0KICAgICAgICAgCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2NmL1Byb3RlY3Rpb25TcGFj
ZUNGTmV0LmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2NmL1Byb3RlY3Rpb25T
cGFjZUNGTmV0LmgKaW5kZXggZjBhMTlkMzAyMzJjY2Y3MjkwMzIwOGYwMWMwYWZiMmZjZmVhMTk1
OC4uOTVjYmVhMzAwZWMyZGNkYjA3ODU0M2FhNGYwMjBmMjU1ZDQ4ZDhlMyAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jZi9Qcm90ZWN0aW9uU3BhY2VDRk5ldC5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY2YvUHJvdGVjdGlvblNwYWNl
Q0ZOZXQuaApAQCAtMzYsNyArMzYsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiBjbGFzcyBQcm90
ZWN0aW9uU3BhY2UgOiBwdWJsaWMgUHJvdGVjdGlvblNwYWNlQmFzZSB7CiBwdWJsaWM6CiAgICAg
UHJvdGVjdGlvblNwYWNlKCkgOiBQcm90ZWN0aW9uU3BhY2VCYXNlKCkgeyB9Ci0gICAgUHJvdGVj
dGlvblNwYWNlKGNvbnN0IFN0cmluZyYgaG9zdCwgaW50IHBvcnQsIFByb3RlY3Rpb25TcGFjZVNl
cnZlclR5cGUgc2VydmVyVHlwZSwgY29uc3QgU3RyaW5nJiByZWFsbSwgUHJvdGVjdGlvblNwYWNl
QXV0aGVudGljYXRpb25TY2hlbWUgYXV0aGVudGljYXRpb25TY2hlbWUpCisgICAgUHJvdGVjdGlv
blNwYWNlKGNvbnN0IFN0cmluZyYgaG9zdCwgaW50IHBvcnQsIFNlcnZlclR5cGUgc2VydmVyVHlw
ZSwgY29uc3QgU3RyaW5nJiByZWFsbSwgQXV0aGVudGljYXRpb25TY2hlbWUgYXV0aGVudGljYXRp
b25TY2hlbWUpCiAgICAgICAgIDogUHJvdGVjdGlvblNwYWNlQmFzZShob3N0LCBwb3J0LCBzZXJ2
ZXJUeXBlLCByZWFsbSwgYXV0aGVudGljYXRpb25TY2hlbWUpCiAgICAgewogICAgIH0KZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY2YvUmVzb3VyY2VIYW5kbGVD
Rk5ldC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2NmL1Jlc291cmNlSGFu
ZGxlQ0ZOZXQuY3BwCmluZGV4IDU2NzFiNDNlZGE3MTdjMDZiMzQzNzRlYmNjMWU1MTRkN2EyMzk4
OWQuLjU0M2JmMmUxMzhlMzZiYTAwYTRkMzgwZjZkN2E5NWRjYTkwYjQ3NDcgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY2YvUmVzb3VyY2VIYW5kbGVDRk5ldC5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jZi9SZXNvdXJjZUhhbmRs
ZUNGTmV0LmNwcApAQCAtNDI1LDcgKzQyNSw3IEBAIHZvaWQgUmVzb3VyY2VIYW5kbGU6OnJlY2Vp
dmVkQ3JlZGVudGlhbChjb25zdCBBdXRoZW50aWNhdGlvbkNoYWxsZW5nZSYgY2hhbGxlbmdlCiAg
ICAgICAgIHJldHVybjsKICAgICB9CiAKLSAgICBpZiAoY3JlZGVudGlhbC5wZXJzaXN0ZW5jZSgp
ID09IENyZWRlbnRpYWxQZXJzaXN0ZW5jZUZvclNlc3Npb24gJiYgY2hhbGxlbmdlLnByb3RlY3Rp
b25TcGFjZSgpLmF1dGhlbnRpY2F0aW9uU2NoZW1lKCkgIT0gUHJvdGVjdGlvblNwYWNlQXV0aGVu
dGljYXRpb25TY2hlbWVTZXJ2ZXJUcnVzdEV2YWx1YXRpb25SZXF1ZXN0ZWQpIHsKKyAgICBpZiAo
Y3JlZGVudGlhbC5wZXJzaXN0ZW5jZSgpID09IENyZWRlbnRpYWxQZXJzaXN0ZW5jZUZvclNlc3Np
b24gJiYgY2hhbGxlbmdlLnByb3RlY3Rpb25TcGFjZSgpLmF1dGhlbnRpY2F0aW9uU2NoZW1lKCkg
IT0gUHJvdGVjdGlvblNwYWNlOjpBdXRoZW50aWNhdGlvblNjaGVtZTo6U2VydmVyVHJ1c3RFdmFs
dWF0aW9uUmVxdWVzdGVkKSB7CiAgICAgICAgIC8vIE1hbmFnZSBwZXItc2Vzc2lvbiBjcmVkZW50
aWFscyBpbnRlcm5hbGx5LCBiZWNhdXNlIG9uY2UgTlNVUkxDcmVkZW50aWFsUGVyc2lzdGVuY2VQ
ZXJTZXNzaW9uIGlzIHVzZWQsIHRoZXJlIGlzIG5vIHdheQogICAgICAgICAvLyB0byBpZ25vcmUg
aXQgZm9yIGEgcGFydGljdWxhciByZXF1ZXN0IChzaG9ydCBvZiByZW1vdmluZyBpdCBhbHRvZ2V0
aGVyKS4KICAgICAgICAgQ3JlZGVudGlhbCB3ZWJDcmVkZW50aWFsKGNyZWRlbnRpYWwsIENyZWRl
bnRpYWxQZXJzaXN0ZW5jZU5vbmUpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vbmV0d29yay9jZi9Tb2NrZXRTdHJlYW1IYW5kbGVJbXBsQ0ZOZXQuY3BwIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vbmV0d29yay9jZi9Tb2NrZXRTdHJlYW1IYW5kbGVJbXBsQ0ZOZXQuY3Bw
CmluZGV4IDMxMWFlZjJkODBmZTczMzZjZDhlNTExM2MzOWQ5NTBkYjhmNDM5NGMuLjY5NjFlNzk4
MzA2N2ExODY1YjRhZmJlM2ZhN2FjNWNlNjk1YTRkMzUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL25ldHdvcmsvY2YvU29ja2V0U3RyZWFtSGFuZGxlSW1wbENGTmV0LmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2NmL1NvY2tldFN0cmVhbUhhbmRs
ZUltcGxDRk5ldC5jcHAKQEAgLTM5OSwxOCArMzk5LDE4IEBAIGJvb2wgU29ja2V0U3RyZWFtSGFu
ZGxlSW1wbDo6Z2V0U3RvcmVkQ09OTkVDVFByb3h5Q3JlZGVudGlhbHMoY29uc3QgUHJvdGVjdGlv
blNwCiAgICAgcmV0dXJuIHRydWU7CiB9CiAKLXN0YXRpYyBQcm90ZWN0aW9uU3BhY2VBdXRoZW50
aWNhdGlvblNjaGVtZSBhdXRoZW50aWNhdGlvblNjaGVtZUZyb21BdXRoZW50aWNhdGlvbk1ldGhv
ZChDRlN0cmluZ1JlZiBtZXRob2QpCitzdGF0aWMgUHJvdGVjdGlvblNwYWNlOjpBdXRoZW50aWNh
dGlvblNjaGVtZSBhdXRoZW50aWNhdGlvblNjaGVtZUZyb21BdXRoZW50aWNhdGlvbk1ldGhvZChD
RlN0cmluZ1JlZiBtZXRob2QpCiB7CiAgICAgaWYgKENGRXF1YWwobWV0aG9kLCBrQ0ZIVFRQQXV0
aGVudGljYXRpb25TY2hlbWVCYXNpYykpCi0gICAgICAgIHJldHVybiBQcm90ZWN0aW9uU3BhY2VB
dXRoZW50aWNhdGlvblNjaGVtZUhUVFBCYXNpYzsKKyAgICAgICAgcmV0dXJuIFByb3RlY3Rpb25T
cGFjZTo6QXV0aGVudGljYXRpb25TY2hlbWU6OkhUVFBCYXNpYzsKICAgICBpZiAoQ0ZFcXVhbCht
ZXRob2QsIGtDRkhUVFBBdXRoZW50aWNhdGlvblNjaGVtZURpZ2VzdCkpCi0gICAgICAgIHJldHVy
biBQcm90ZWN0aW9uU3BhY2VBdXRoZW50aWNhdGlvblNjaGVtZUhUVFBEaWdlc3Q7CisgICAgICAg
IHJldHVybiBQcm90ZWN0aW9uU3BhY2U6OkF1dGhlbnRpY2F0aW9uU2NoZW1lOjpIVFRQRGlnZXN0
OwogICAgIGlmIChDRkVxdWFsKG1ldGhvZCwga0NGSFRUUEF1dGhlbnRpY2F0aW9uU2NoZW1lTlRM
TSkpCi0gICAgICAgIHJldHVybiBQcm90ZWN0aW9uU3BhY2VBdXRoZW50aWNhdGlvblNjaGVtZU5U
TE07CisgICAgICAgIHJldHVybiBQcm90ZWN0aW9uU3BhY2U6OkF1dGhlbnRpY2F0aW9uU2NoZW1l
OjpOVExNOwogICAgIGlmIChDRkVxdWFsKG1ldGhvZCwga0NGSFRUUEF1dGhlbnRpY2F0aW9uU2No
ZW1lTmVnb3RpYXRlKSkKLSAgICAgICAgcmV0dXJuIFByb3RlY3Rpb25TcGFjZUF1dGhlbnRpY2F0
aW9uU2NoZW1lTmVnb3RpYXRlOworICAgICAgICByZXR1cm4gUHJvdGVjdGlvblNwYWNlOjpBdXRo
ZW50aWNhdGlvblNjaGVtZTo6TmVnb3RpYXRlOwogICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwot
ICAgIHJldHVybiBQcm90ZWN0aW9uU3BhY2VBdXRoZW50aWNhdGlvblNjaGVtZVVua25vd247Cisg
ICAgcmV0dXJuIFByb3RlY3Rpb25TcGFjZTo6QXV0aGVudGljYXRpb25TY2hlbWU6OlVua25vd247
CiB9CiAgICAgCiBzdGF0aWMgdm9pZCBzZXRDT05ORUNUUHJveHlBdXRob3JpemF0aW9uRm9yU3Ry
ZWFtKENGUmVhZFN0cmVhbVJlZiBzdHJlYW0sIENGU3RyaW5nUmVmIHByb3h5QXV0aG9yaXphdGlv
blN0cmluZykKQEAgLTQ0Nyw3ICs0NDcsNyBAQCB2b2lkIFNvY2tldFN0cmVhbUhhbmRsZUltcGw6
OmFkZENPTk5FQ1RDcmVkZW50aWFscyhDRkhUVFBNZXNzYWdlUmVmIHByb3h5UmVzcG9ucwogICAg
ICAgICByZXR1cm47CiAgICAgfQogCi0gICAgUHJvdGVjdGlvblNwYWNlIHByb3RlY3Rpb25TcGFj
ZShTdHJpbmcobV9wcm94eUhvc3QuZ2V0KCkpLCBwb3J0LCBQcm90ZWN0aW9uU3BhY2VQcm94eUhU
VFBTLCBTdHJpbmcocmVhbG1DRi5nZXQoKSksIGF1dGhlbnRpY2F0aW9uU2NoZW1lRnJvbUF1dGhl
bnRpY2F0aW9uTWV0aG9kKG1ldGhvZENGLmdldCgpKSk7CisgICAgUHJvdGVjdGlvblNwYWNlIHBy
b3RlY3Rpb25TcGFjZShTdHJpbmcobV9wcm94eUhvc3QuZ2V0KCkpLCBwb3J0LCBQcm90ZWN0aW9u
U3BhY2U6OlNlcnZlclR5cGU6OlByb3h5SFRUUFMsIFN0cmluZyhyZWFsbUNGLmdldCgpKSwgYXV0
aGVudGljYXRpb25TY2hlbWVGcm9tQXV0aGVudGljYXRpb25NZXRob2QobWV0aG9kQ0YuZ2V0KCkp
KTsKICAgICBTdHJpbmcgbG9naW47CiAgICAgU3RyaW5nIHBhc3N3b3JkOwogICAgIGlmICghbV9z
ZW50U3RvcmVkQ3JlZGVudGlhbHMgJiYgZ2V0U3RvcmVkQ09OTkVDVFByb3h5Q3JlZGVudGlhbHMo
cHJvdGVjdGlvblNwYWNlLCBsb2dpbiwgcGFzc3dvcmQpKSB7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2NvY29hL1Byb3RlY3Rpb25TcGFjZUNvY29hLmggYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2NvY29hL1Byb3RlY3Rpb25TcGFjZUNvY29h
LmgKaW5kZXggY2Y3NjY5NzliODVhYWFkNDJjYzEyNTY5YmFhMjRjOGRlNGU2Zjc3Zi4uOGM3OGRi
N2ZhZWZkNzFmZDdjZWY2ZmU1NmQ2NDkyYWVlZWQ0NmQzYSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vbmV0d29yay9jb2NvYS9Qcm90ZWN0aW9uU3BhY2VDb2NvYS5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY29jb2EvUHJvdGVjdGlvblNwYWNlQ29j
b2EuaApAQCAtMzksNyArMzksNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiBjbGFzcyBQcm90ZWN0
aW9uU3BhY2UgOiBwdWJsaWMgUHJvdGVjdGlvblNwYWNlQmFzZSB7CiBwdWJsaWM6CiAgICAgUHJv
dGVjdGlvblNwYWNlKCkgOiBQcm90ZWN0aW9uU3BhY2VCYXNlKCkgeyB9Ci0gICAgUHJvdGVjdGlv
blNwYWNlKGNvbnN0IFN0cmluZyYgaG9zdCwgaW50IHBvcnQsIFByb3RlY3Rpb25TcGFjZVNlcnZl
clR5cGUgc2VydmVyVHlwZSwgY29uc3QgU3RyaW5nJiByZWFsbSwgUHJvdGVjdGlvblNwYWNlQXV0
aGVudGljYXRpb25TY2hlbWUgYXV0aGVudGljYXRpb25TY2hlbWUpCisgICAgUHJvdGVjdGlvblNw
YWNlKGNvbnN0IFN0cmluZyYgaG9zdCwgaW50IHBvcnQsIFNlcnZlclR5cGUgc2VydmVyVHlwZSwg
Y29uc3QgU3RyaW5nJiByZWFsbSwgQXV0aGVudGljYXRpb25TY2hlbWUgYXV0aGVudGljYXRpb25T
Y2hlbWUpCiAgICAgICAgIDogUHJvdGVjdGlvblNwYWNlQmFzZShob3N0LCBwb3J0LCBzZXJ2ZXJU
eXBlLCByZWFsbSwgYXV0aGVudGljYXRpb25TY2hlbWUpCiAgICAgewogICAgIH0KZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY29jb2EvUHJvdGVjdGlvblNwYWNl
Q29jb2EubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2NvY29hL1Byb3RlY3Rp
b25TcGFjZUNvY29hLm1tCmluZGV4IDYyMThjZWFiMmZiMzIyNTE3NzBmYjEyZTAxNDJmY2Q5ZWYx
NmQyNGQuLmQ1NmQwZTIxYjJhYTdiYzA4OWM0MGIxMTAyNjkyNzNmZmNiMDUyN2YgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY29jb2EvUHJvdGVjdGlvblNwYWNl
Q29jb2EubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jb2NvYS9Qcm90
ZWN0aW9uU3BhY2VDb2NvYS5tbQpAQCAtMzAsNjMgKzMwLDYzIEBACiAKIG5hbWVzcGFjZSBXZWJD
b3JlIHsKIAotc3RhdGljIFByb3RlY3Rpb25TcGFjZVNlcnZlclR5cGUgdHlwZShOU1VSTFByb3Rl
Y3Rpb25TcGFjZSAqc3BhY2UpCitzdGF0aWMgUHJvdGVjdGlvblNwYWNlOjpTZXJ2ZXJUeXBlIHR5
cGUoTlNVUkxQcm90ZWN0aW9uU3BhY2UgKnNwYWNlKQogewogICAgIGlmIChbc3BhY2UgaXNQcm94
eV0pIHsKICAgICAgICAgTlNTdHJpbmcgKnByb3h5VHlwZSA9IHNwYWNlLnByb3h5VHlwZTsKICAg
ICAgICAgaWYgKFtwcm94eVR5cGUgaXNFcXVhbFRvU3RyaW5nOk5TVVJMUHJvdGVjdGlvblNwYWNl
SFRUUFByb3h5XSkKLSAgICAgICAgICAgIHJldHVybiBQcm90ZWN0aW9uU3BhY2VQcm94eUhUVFA7
CisgICAgICAgICAgICByZXR1cm4gUHJvdGVjdGlvblNwYWNlOjpTZXJ2ZXJUeXBlOjpQcm94eUhU
VFA7CiAgICAgICAgIGlmIChbcHJveHlUeXBlIGlzRXF1YWxUb1N0cmluZzpOU1VSTFByb3RlY3Rp
b25TcGFjZUhUVFBTUHJveHldKQotICAgICAgICAgICAgcmV0dXJuIFByb3RlY3Rpb25TcGFjZVBy
b3h5SFRUUFM7CisgICAgICAgICAgICByZXR1cm4gUHJvdGVjdGlvblNwYWNlOjpTZXJ2ZXJUeXBl
OjpQcm94eUhUVFBTOwogICAgICAgICBpZiAoW3Byb3h5VHlwZSBpc0VxdWFsVG9TdHJpbmc6TlNV
UkxQcm90ZWN0aW9uU3BhY2VGVFBQcm94eV0pCi0gICAgICAgICAgICByZXR1cm4gUHJvdGVjdGlv
blNwYWNlUHJveHlGVFA7CisgICAgICAgICAgICByZXR1cm4gUHJvdGVjdGlvblNwYWNlOjpTZXJ2
ZXJUeXBlOjpQcm94eUZUUDsKICAgICAgICAgaWYgKFtwcm94eVR5cGUgaXNFcXVhbFRvU3RyaW5n
Ok5TVVJMUHJvdGVjdGlvblNwYWNlU09DS1NQcm94eV0pCi0gICAgICAgICAgICByZXR1cm4gUHJv
dGVjdGlvblNwYWNlUHJveHlTT0NLUzsKKyAgICAgICAgICAgIHJldHVybiBQcm90ZWN0aW9uU3Bh
Y2U6OlNlcnZlclR5cGU6OlByb3h5U09DS1M7CiAKICAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVE
KCk7Ci0gICAgICAgIHJldHVybiBQcm90ZWN0aW9uU3BhY2VQcm94eUhUVFA7CisgICAgICAgIHJl
dHVybiBQcm90ZWN0aW9uU3BhY2U6OlNlcnZlclR5cGU6OlByb3h5SFRUUDsKICAgICB9CiAKICAg
ICBOU1N0cmluZyAqcHJvdG9jb2wgPSBzcGFjZS5wcm90b2NvbDsKICAgICBpZiAoW3Byb3RvY29s
IGNhc2VJbnNlbnNpdGl2ZUNvbXBhcmU6QCJodHRwIl0gPT0gTlNPcmRlcmVkU2FtZSkKLSAgICAg
ICAgcmV0dXJuIFByb3RlY3Rpb25TcGFjZVNlcnZlckhUVFA7CisgICAgICAgIHJldHVybiBQcm90
ZWN0aW9uU3BhY2U6OlNlcnZlclR5cGU6OkhUVFA7CiAgICAgaWYgKFtwcm90b2NvbCBjYXNlSW5z
ZW5zaXRpdmVDb21wYXJlOkAiaHR0cHMiXSA9PSBOU09yZGVyZWRTYW1lKQotICAgICAgICByZXR1
cm4gUHJvdGVjdGlvblNwYWNlU2VydmVySFRUUFM7CisgICAgICAgIHJldHVybiBQcm90ZWN0aW9u
U3BhY2U6OlNlcnZlclR5cGU6OkhUVFBTOwogICAgIGlmIChbcHJvdG9jb2wgY2FzZUluc2Vuc2l0
aXZlQ29tcGFyZTpAImZ0cCJdID09IE5TT3JkZXJlZFNhbWUpCi0gICAgICAgIHJldHVybiBQcm90
ZWN0aW9uU3BhY2VTZXJ2ZXJGVFA7CisgICAgICAgIHJldHVybiBQcm90ZWN0aW9uU3BhY2U6OlNl
cnZlclR5cGU6OkZUUDsKICAgICBpZiAoW3Byb3RvY29sIGNhc2VJbnNlbnNpdGl2ZUNvbXBhcmU6
QCJmdHBzIl0gPT0gTlNPcmRlcmVkU2FtZSkKLSAgICAgICAgcmV0dXJuIFByb3RlY3Rpb25TcGFj
ZVNlcnZlckZUUFM7CisgICAgICAgIHJldHVybiBQcm90ZWN0aW9uU3BhY2U6OlNlcnZlclR5cGU6
OkZUUFM7CiAKICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKLSAgICByZXR1cm4gUHJvdGVjdGlv
blNwYWNlU2VydmVySFRUUDsKKyAgICByZXR1cm4gUHJvdGVjdGlvblNwYWNlOjpTZXJ2ZXJUeXBl
OjpIVFRQOwogfQogCi1zdGF0aWMgUHJvdGVjdGlvblNwYWNlQXV0aGVudGljYXRpb25TY2hlbWUg
c2NoZW1lKE5TVVJMUHJvdGVjdGlvblNwYWNlICpzcGFjZSkKK3N0YXRpYyBQcm90ZWN0aW9uU3Bh
Y2U6OkF1dGhlbnRpY2F0aW9uU2NoZW1lIHNjaGVtZShOU1VSTFByb3RlY3Rpb25TcGFjZSAqc3Bh
Y2UpCiB7CiAgICAgTlNTdHJpbmcgKm1ldGhvZCA9IHNwYWNlLmF1dGhlbnRpY2F0aW9uTWV0aG9k
OwogICAgIGlmIChbbWV0aG9kIGlzRXF1YWxUb1N0cmluZzpOU1VSTEF1dGhlbnRpY2F0aW9uTWV0
aG9kRGVmYXVsdF0pCi0gICAgICAgIHJldHVybiBQcm90ZWN0aW9uU3BhY2VBdXRoZW50aWNhdGlv
blNjaGVtZURlZmF1bHQ7CisgICAgICAgIHJldHVybiBQcm90ZWN0aW9uU3BhY2U6OkF1dGhlbnRp
Y2F0aW9uU2NoZW1lOjpEZWZhdWx0OwogICAgIGlmIChbbWV0aG9kIGlzRXF1YWxUb1N0cmluZzpO
U1VSTEF1dGhlbnRpY2F0aW9uTWV0aG9kSFRUUEJhc2ljXSkKLSAgICAgICAgcmV0dXJuIFByb3Rl
Y3Rpb25TcGFjZUF1dGhlbnRpY2F0aW9uU2NoZW1lSFRUUEJhc2ljOworICAgICAgICByZXR1cm4g
UHJvdGVjdGlvblNwYWNlOjpBdXRoZW50aWNhdGlvblNjaGVtZTo6SFRUUEJhc2ljOwogICAgIGlm
IChbbWV0aG9kIGlzRXF1YWxUb1N0cmluZzpOU1VSTEF1dGhlbnRpY2F0aW9uTWV0aG9kSFRUUERp
Z2VzdF0pCi0gICAgICAgIHJldHVybiBQcm90ZWN0aW9uU3BhY2VBdXRoZW50aWNhdGlvblNjaGVt
ZUhUVFBEaWdlc3Q7CisgICAgICAgIHJldHVybiBQcm90ZWN0aW9uU3BhY2U6OkF1dGhlbnRpY2F0
aW9uU2NoZW1lOjpIVFRQRGlnZXN0OwogICAgIGlmIChbbWV0aG9kIGlzRXF1YWxUb1N0cmluZzpO
U1VSTEF1dGhlbnRpY2F0aW9uTWV0aG9kSFRNTEZvcm1dKQotICAgICAgICByZXR1cm4gUHJvdGVj
dGlvblNwYWNlQXV0aGVudGljYXRpb25TY2hlbWVIVE1MRm9ybTsKKyAgICAgICAgcmV0dXJuIFBy
b3RlY3Rpb25TcGFjZTo6QXV0aGVudGljYXRpb25TY2hlbWU6OkhUTUxGb3JtOwogICAgIGlmIChb
bWV0aG9kIGlzRXF1YWxUb1N0cmluZzpOU1VSTEF1dGhlbnRpY2F0aW9uTWV0aG9kTlRMTV0pCi0g
ICAgICAgIHJldHVybiBQcm90ZWN0aW9uU3BhY2VBdXRoZW50aWNhdGlvblNjaGVtZU5UTE07Cisg
ICAgICAgIHJldHVybiBQcm90ZWN0aW9uU3BhY2U6OkF1dGhlbnRpY2F0aW9uU2NoZW1lOjpOVExN
OwogICAgIGlmIChbbWV0aG9kIGlzRXF1YWxUb1N0cmluZzpOU1VSTEF1dGhlbnRpY2F0aW9uTWV0
aG9kTmVnb3RpYXRlXSkKLSAgICAgICAgcmV0dXJuIFByb3RlY3Rpb25TcGFjZUF1dGhlbnRpY2F0
aW9uU2NoZW1lTmVnb3RpYXRlOworICAgICAgICByZXR1cm4gUHJvdGVjdGlvblNwYWNlOjpBdXRo
ZW50aWNhdGlvblNjaGVtZTo6TmVnb3RpYXRlOwogI2lmIFVTRShQUk9URUNUSU9OX1NQQUNFX0FV
VEhfQ0FMTEJBQ0spCiAgICAgaWYgKFttZXRob2QgaXNFcXVhbFRvU3RyaW5nOk5TVVJMQXV0aGVu
dGljYXRpb25NZXRob2RDbGllbnRDZXJ0aWZpY2F0ZV0pCi0gICAgICAgIHJldHVybiBQcm90ZWN0
aW9uU3BhY2VBdXRoZW50aWNhdGlvblNjaGVtZUNsaWVudENlcnRpZmljYXRlUmVxdWVzdGVkOwor
ICAgICAgICByZXR1cm4gUHJvdGVjdGlvblNwYWNlOjpBdXRoZW50aWNhdGlvblNjaGVtZTo6Q2xp
ZW50Q2VydGlmaWNhdGVSZXF1ZXN0ZWQ7CiAgICAgaWYgKFttZXRob2QgaXNFcXVhbFRvU3RyaW5n
Ok5TVVJMQXV0aGVudGljYXRpb25NZXRob2RTZXJ2ZXJUcnVzdF0pCi0gICAgICAgIHJldHVybiBQ
cm90ZWN0aW9uU3BhY2VBdXRoZW50aWNhdGlvblNjaGVtZVNlcnZlclRydXN0RXZhbHVhdGlvblJl
cXVlc3RlZDsKKyAgICAgICAgcmV0dXJuIFByb3RlY3Rpb25TcGFjZTo6QXV0aGVudGljYXRpb25T
Y2hlbWU6OlNlcnZlclRydXN0RXZhbHVhdGlvblJlcXVlc3RlZDsKICNlbmRpZgogICAgIGlmIChb
bWV0aG9kIGlzRXF1YWxUb1N0cmluZzpOU1VSTEF1dGhlbnRpY2F0aW9uTWV0aG9kT0F1dGhdKQot
ICAgICAgICByZXR1cm4gUHJvdGVjdGlvblNwYWNlQXV0aGVudGljYXRpb25TY2hlbWVPQXV0aDsK
KyAgICAgICAgcmV0dXJuIFByb3RlY3Rpb25TcGFjZTo6QXV0aGVudGljYXRpb25TY2hlbWU6Ok9B
dXRoOwogCiAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7Ci0gICAgcmV0dXJuIFByb3RlY3Rpb25T
cGFjZUF1dGhlbnRpY2F0aW9uU2NoZW1lVW5rbm93bjsKKyAgICByZXR1cm4gUHJvdGVjdGlvblNw
YWNlOjpBdXRoZW50aWNhdGlvblNjaGVtZTo6VW5rbm93bjsKIH0KIAogUHJvdGVjdGlvblNwYWNl
OjpQcm90ZWN0aW9uU3BhY2UoTlNVUkxQcm90ZWN0aW9uU3BhY2UgKnNwYWNlKQpAQCAtMTAzLDI4
ICsxMDMsMjggQEAgTlNVUkxQcm90ZWN0aW9uU3BhY2UgKlByb3RlY3Rpb25TcGFjZTo6bnNTcGFj
ZSgpIGNvbnN0CiAgICAgTlNTdHJpbmcgKnByb3h5VHlwZSA9IG5pbDsKICAgICBOU1N0cmluZyAq
cHJvdG9jb2wgPSBuaWw7CiAgICAgc3dpdGNoIChzZXJ2ZXJUeXBlKCkpIHsKLSAgICBjYXNlIFBy
b3RlY3Rpb25TcGFjZVNlcnZlckhUVFA6CisgICAgY2FzZSBQcm90ZWN0aW9uU3BhY2U6OlNlcnZl
clR5cGU6OkhUVFA6CiAgICAgICAgIHByb3RvY29sID0gQCJodHRwIjsKICAgICAgICAgYnJlYWs7
Ci0gICAgY2FzZSBQcm90ZWN0aW9uU3BhY2VTZXJ2ZXJIVFRQUzoKKyAgICBjYXNlIFByb3RlY3Rp
b25TcGFjZTo6U2VydmVyVHlwZTo6SFRUUFM6CiAgICAgICAgIHByb3RvY29sID0gQCJodHRwcyI7
CiAgICAgICAgIGJyZWFrOwotICAgIGNhc2UgUHJvdGVjdGlvblNwYWNlU2VydmVyRlRQOgorICAg
IGNhc2UgUHJvdGVjdGlvblNwYWNlOjpTZXJ2ZXJUeXBlOjpGVFA6CiAgICAgICAgIHByb3RvY29s
ID0gQCJmdHAiOwogICAgICAgICBicmVhazsKLSAgICBjYXNlIFByb3RlY3Rpb25TcGFjZVNlcnZl
ckZUUFM6CisgICAgY2FzZSBQcm90ZWN0aW9uU3BhY2U6OlNlcnZlclR5cGU6OkZUUFM6CiAgICAg
ICAgIHByb3RvY29sID0gQCJmdHBzIjsKICAgICAgICAgYnJlYWs7Ci0gICAgY2FzZSBQcm90ZWN0
aW9uU3BhY2VQcm94eUhUVFA6CisgICAgY2FzZSBQcm90ZWN0aW9uU3BhY2U6OlNlcnZlclR5cGU6
OlByb3h5SFRUUDoKICAgICAgICAgcHJveHlUeXBlID0gTlNVUkxQcm90ZWN0aW9uU3BhY2VIVFRQ
UHJveHk7CiAgICAgICAgIGJyZWFrOwotICAgIGNhc2UgUHJvdGVjdGlvblNwYWNlUHJveHlIVFRQ
UzoKKyAgICBjYXNlIFByb3RlY3Rpb25TcGFjZTo6U2VydmVyVHlwZTo6UHJveHlIVFRQUzoKICAg
ICAgICAgcHJveHlUeXBlID0gTlNVUkxQcm90ZWN0aW9uU3BhY2VIVFRQU1Byb3h5OwogICAgICAg
ICBicmVhazsKLSAgICBjYXNlIFByb3RlY3Rpb25TcGFjZVByb3h5RlRQOgorICAgIGNhc2UgUHJv
dGVjdGlvblNwYWNlOjpTZXJ2ZXJUeXBlOjpQcm94eUZUUDoKICAgICAgICAgcHJveHlUeXBlID0g
TlNVUkxQcm90ZWN0aW9uU3BhY2VGVFBQcm94eTsKICAgICAgICAgYnJlYWs7Ci0gICAgY2FzZSBQ
cm90ZWN0aW9uU3BhY2VQcm94eVNPQ0tTOgorICAgIGNhc2UgUHJvdGVjdGlvblNwYWNlOjpTZXJ2
ZXJUeXBlOjpQcm94eVNPQ0tTOgogICAgICAgICBwcm94eVR5cGUgPSBOU1VSTFByb3RlY3Rpb25T
cGFjZVNPQ0tTUHJveHk7CiAgICAgICAgIGJyZWFrOwogICAgIGRlZmF1bHQ6CkBAIC0xMzMsMzMg
KzEzMywzMyBAQCBOU1VSTFByb3RlY3Rpb25TcGFjZSAqUHJvdGVjdGlvblNwYWNlOjpuc1NwYWNl
KCkgY29uc3QKICAgCiAgICAgTlNTdHJpbmcgKm1ldGhvZCA9IG5pbDsKICAgICBzd2l0Y2ggKGF1
dGhlbnRpY2F0aW9uU2NoZW1lKCkpIHsKLSAgICBjYXNlIFByb3RlY3Rpb25TcGFjZUF1dGhlbnRp
Y2F0aW9uU2NoZW1lRGVmYXVsdDoKKyAgICBjYXNlIFByb3RlY3Rpb25TcGFjZTo6QXV0aGVudGlj
YXRpb25TY2hlbWU6OkRlZmF1bHQ6CiAgICAgICAgIG1ldGhvZCA9IE5TVVJMQXV0aGVudGljYXRp
b25NZXRob2REZWZhdWx0OwogICAgICAgICBicmVhazsKLSAgICBjYXNlIFByb3RlY3Rpb25TcGFj
ZUF1dGhlbnRpY2F0aW9uU2NoZW1lSFRUUEJhc2ljOgorICAgIGNhc2UgUHJvdGVjdGlvblNwYWNl
OjpBdXRoZW50aWNhdGlvblNjaGVtZTo6SFRUUEJhc2ljOgogICAgICAgICBtZXRob2QgPSBOU1VS
TEF1dGhlbnRpY2F0aW9uTWV0aG9kSFRUUEJhc2ljOwogICAgICAgICBicmVhazsKLSAgICBjYXNl
IFByb3RlY3Rpb25TcGFjZUF1dGhlbnRpY2F0aW9uU2NoZW1lSFRUUERpZ2VzdDoKKyAgICBjYXNl
IFByb3RlY3Rpb25TcGFjZTo6QXV0aGVudGljYXRpb25TY2hlbWU6OkhUVFBEaWdlc3Q6CiAgICAg
ICAgIG1ldGhvZCA9IE5TVVJMQXV0aGVudGljYXRpb25NZXRob2RIVFRQRGlnZXN0OwogICAgICAg
ICBicmVhazsKLSAgICBjYXNlIFByb3RlY3Rpb25TcGFjZUF1dGhlbnRpY2F0aW9uU2NoZW1lSFRN
TEZvcm06CisgICAgY2FzZSBQcm90ZWN0aW9uU3BhY2U6OkF1dGhlbnRpY2F0aW9uU2NoZW1lOjpI
VE1MRm9ybToKICAgICAgICAgbWV0aG9kID0gTlNVUkxBdXRoZW50aWNhdGlvbk1ldGhvZEhUTUxG
b3JtOwogICAgICAgICBicmVhazsKLSAgICBjYXNlIFByb3RlY3Rpb25TcGFjZUF1dGhlbnRpY2F0
aW9uU2NoZW1lTlRMTToKKyAgICBjYXNlIFByb3RlY3Rpb25TcGFjZTo6QXV0aGVudGljYXRpb25T
Y2hlbWU6Ok5UTE06CiAgICAgICAgIG1ldGhvZCA9IE5TVVJMQXV0aGVudGljYXRpb25NZXRob2RO
VExNOwogICAgICAgICBicmVhazsKLSAgICBjYXNlIFByb3RlY3Rpb25TcGFjZUF1dGhlbnRpY2F0
aW9uU2NoZW1lTmVnb3RpYXRlOgorICAgIGNhc2UgUHJvdGVjdGlvblNwYWNlOjpBdXRoZW50aWNh
dGlvblNjaGVtZTo6TmVnb3RpYXRlOgogICAgICAgICBtZXRob2QgPSBOU1VSTEF1dGhlbnRpY2F0
aW9uTWV0aG9kTmVnb3RpYXRlOwogICAgICAgICBicmVhazsKICNpZiBVU0UoUFJPVEVDVElPTl9T
UEFDRV9BVVRIX0NBTExCQUNLKQotICAgIGNhc2UgUHJvdGVjdGlvblNwYWNlQXV0aGVudGljYXRp
b25TY2hlbWVTZXJ2ZXJUcnVzdEV2YWx1YXRpb25SZXF1ZXN0ZWQ6CisgICAgY2FzZSBQcm90ZWN0
aW9uU3BhY2U6OkF1dGhlbnRpY2F0aW9uU2NoZW1lOjpTZXJ2ZXJUcnVzdEV2YWx1YXRpb25SZXF1
ZXN0ZWQ6CiAgICAgICAgIG1ldGhvZCA9IE5TVVJMQXV0aGVudGljYXRpb25NZXRob2RTZXJ2ZXJU
cnVzdDsKICAgICAgICAgYnJlYWs7Ci0gICAgY2FzZSBQcm90ZWN0aW9uU3BhY2VBdXRoZW50aWNh
dGlvblNjaGVtZUNsaWVudENlcnRpZmljYXRlUmVxdWVzdGVkOgorICAgIGNhc2UgUHJvdGVjdGlv
blNwYWNlOjpBdXRoZW50aWNhdGlvblNjaGVtZTo6Q2xpZW50Q2VydGlmaWNhdGVSZXF1ZXN0ZWQ6
CiAgICAgICAgIG1ldGhvZCA9IE5TVVJMQXV0aGVudGljYXRpb25NZXRob2RDbGllbnRDZXJ0aWZp
Y2F0ZTsKICAgICAgICAgYnJlYWs7CiAjZW5kaWYKLSAgICBjYXNlIFByb3RlY3Rpb25TcGFjZUF1
dGhlbnRpY2F0aW9uU2NoZW1lT0F1dGg6CisgICAgY2FzZSBQcm90ZWN0aW9uU3BhY2U6OkF1dGhl
bnRpY2F0aW9uU2NoZW1lOjpPQXV0aDoKICAgICAgICAgbWV0aG9kID0gTlNVUkxBdXRoZW50aWNh
dGlvbk1ldGhvZE9BdXRoOwogICAgICAgICBicmVhazsKICAgICBkZWZhdWx0OgpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jdXJsL0F1dGhlbnRpY2F0aW9uQ2hh
bGxlbmdlLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2N1cmwvQXV0aGVudGlj
YXRpb25DaGFsbGVuZ2UuaAppbmRleCA4MTNkMmI1NDkxYTU1NDg5OGEzZjQ5NGM4YTM1NmEzZTQy
YTBjOTliLi5hYjcwYzg1YTRjNzE0Y2I2ODNkNTg1MjQwYzRjZWYzOWJhNjVmYmQxIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2N1cmwvQXV0aGVudGljYXRpb25D
aGFsbGVuZ2UuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2N1cmwvQXV0
aGVudGljYXRpb25DaGFsbGVuZ2UuaApAQCAtNTAsMTEgKzUwLDExIEBAIHB1YmxpYzoKICAgICBB
dXRoZW50aWNhdGlvbkNsaWVudCogYXV0aGVudGljYXRpb25DbGllbnQoKSBjb25zdCB7IHJldHVy
biBtX2F1dGhlbnRpY2F0aW9uQ2xpZW50LmdldCgpOyB9CiAKIHByaXZhdGU6Ci0gICAgUHJvdGVj
dGlvblNwYWNlU2VydmVyVHlwZSBwcm90ZWN0aW9uU3BhY2VTZXJ2ZXJUeXBlRnJvbVVSSShjb25z
dCBVUkwmLCBib29sIGlzRm9yUHJveHkpOworICAgIFByb3RlY3Rpb25TcGFjZTo6U2VydmVyVHlw
ZSBwcm90ZWN0aW9uU3BhY2VTZXJ2ZXJUeXBlRnJvbVVSSShjb25zdCBVUkwmLCBib29sIGlzRm9y
UHJveHkpOwogICAgIFByb3RlY3Rpb25TcGFjZSBwcm90ZWN0aW9uU3BhY2VGb3JQYXNzd29yZEJh
c2VkKGNvbnN0IEN1cmxSZXNwb25zZSYsIGNvbnN0IFJlc291cmNlUmVzcG9uc2UmKTsKICAgICBQ
cm90ZWN0aW9uU3BhY2UgcHJvdGVjdGlvblNwYWNlRm9yU2VydmVyVHJ1c3QoY29uc3QgVVJMJiwg
Y29uc3QgQ2VydGlmaWNhdGVJbmZvJik7CiAgICAgc3RkOjpvcHRpb25hbDx1aW50MTZfdD4gZGV0
ZXJtaW5lUHJveHlQb3J0KGNvbnN0IFVSTCYpOwotICAgIFByb3RlY3Rpb25TcGFjZUF1dGhlbnRp
Y2F0aW9uU2NoZW1lIGF1dGhlbnRpY2F0aW9uU2NoZW1lRnJvbUN1cmxBdXRoKGxvbmcpOworICAg
IFByb3RlY3Rpb25TcGFjZTo6QXV0aGVudGljYXRpb25TY2hlbWUgYXV0aGVudGljYXRpb25TY2hl
bWVGcm9tQ3VybEF1dGgobG9uZyk7CiAgICAgU3RyaW5nIHBhcnNlUmVhbG0oY29uc3QgUmVzb3Vy
Y2VSZXNwb25zZSYpOwogICAgIHZvaWQgcmVtb3ZlTGVhZGluZ0FuZFRyYWlsaW5nUXVvdGVzKFN0
cmluZyYpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2N1
cmwvQXV0aGVudGljYXRpb25DaGFsbGVuZ2VDdXJsLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL25ldHdvcmsvY3VybC9BdXRoZW50aWNhdGlvbkNoYWxsZW5nZUN1cmwuY3BwCmluZGV4IDBm
ZjkxYmI0Zjk0MTdjNzkyNzkzOWE3MTMxYjcyMzkwZGMwYjgxODMuLmI2NjI5NjBjZDBhYTNmNjNk
YzZjNzhhNDdlMjhjYzIwMTg2ZTM1NTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL25ldHdvcmsvY3VybC9BdXRoZW50aWNhdGlvbkNoYWxsZW5nZUN1cmwuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY3VybC9BdXRoZW50aWNhdGlvbkNoYWxsZW5n
ZUN1cmwuY3BwCkBAIC00NiwxNSArNDYsMTUgQEAgQXV0aGVudGljYXRpb25DaGFsbGVuZ2U6OkF1
dGhlbnRpY2F0aW9uQ2hhbGxlbmdlKGNvbnN0IFVSTCYgdXJsLCBjb25zdCBDZXJ0aWZpY2EKIHsK
IH0KIAotUHJvdGVjdGlvblNwYWNlU2VydmVyVHlwZSBBdXRoZW50aWNhdGlvbkNoYWxsZW5nZTo6
cHJvdGVjdGlvblNwYWNlU2VydmVyVHlwZUZyb21VUkkoY29uc3QgVVJMJiB1cmwsIGJvb2wgaXNG
b3JQcm94eSkKK1Byb3RlY3Rpb25TcGFjZTo6U2VydmVyVHlwZSBBdXRoZW50aWNhdGlvbkNoYWxs
ZW5nZTo6cHJvdGVjdGlvblNwYWNlU2VydmVyVHlwZUZyb21VUkkoY29uc3QgVVJMJiB1cmwsIGJv
b2wgaXNGb3JQcm94eSkKIHsKICAgICBpZiAodXJsLnByb3RvY29sSXMoImh0dHBzIikpCi0gICAg
ICAgIHJldHVybiBpc0ZvclByb3h5ID8gUHJvdGVjdGlvblNwYWNlUHJveHlIVFRQUyA6IFByb3Rl
Y3Rpb25TcGFjZVNlcnZlckhUVFBTOworICAgICAgICByZXR1cm4gaXNGb3JQcm94eSA/IFByb3Rl
Y3Rpb25TcGFjZTo6U2VydmVyVHlwZTo6UHJveHlIVFRQUyA6IFByb3RlY3Rpb25TcGFjZTo6U2Vy
dmVyVHlwZTo6SFRUUFM7CiAgICAgaWYgKHVybC5wcm90b2NvbElzKCJodHRwIikpCi0gICAgICAg
IHJldHVybiBpc0ZvclByb3h5ID8gUHJvdGVjdGlvblNwYWNlUHJveHlIVFRQIDogUHJvdGVjdGlv
blNwYWNlU2VydmVySFRUUDsKKyAgICAgICAgcmV0dXJuIGlzRm9yUHJveHkgPyBQcm90ZWN0aW9u
U3BhY2U6OlNlcnZlclR5cGU6OlByb3h5SFRUUCA6IFByb3RlY3Rpb25TcGFjZTo6U2VydmVyVHlw
ZTo6SFRUUDsKICAgICBpZiAodXJsLnByb3RvY29sSXMoImZ0cCIpKQotICAgICAgICByZXR1cm4g
aXNGb3JQcm94eSA/IFByb3RlY3Rpb25TcGFjZVByb3h5RlRQIDogUHJvdGVjdGlvblNwYWNlU2Vy
dmVyRlRQOwotICAgIHJldHVybiBpc0ZvclByb3h5ID8gUHJvdGVjdGlvblNwYWNlUHJveHlIVFRQ
IDogUHJvdGVjdGlvblNwYWNlU2VydmVySFRUUDsKKyAgICAgICAgcmV0dXJuIGlzRm9yUHJveHkg
PyBQcm90ZWN0aW9uU3BhY2U6OlNlcnZlclR5cGU6OlByb3h5RlRQIDogUHJvdGVjdGlvblNwYWNl
OjpTZXJ2ZXJUeXBlOjpGVFA7CisgICAgcmV0dXJuIGlzRm9yUHJveHkgPyBQcm90ZWN0aW9uU3Bh
Y2U6OlNlcnZlclR5cGU6OlByb3h5SFRUUCA6IFByb3RlY3Rpb25TcGFjZTo6U2VydmVyVHlwZTo6
SFRUUDsKIH0KIAogUHJvdGVjdGlvblNwYWNlIEF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlOjpwcm90
ZWN0aW9uU3BhY2VGb3JQYXNzd29yZEJhc2VkKGNvbnN0IEN1cmxSZXNwb25zZSYgY3VybFJlc3Bv
bnNlLCBjb25zdCBSZXNvdXJjZVJlc3BvbnNlJiByZXNwb25zZSkKQEAgLTc1LDcgKzc1LDcgQEAg
UHJvdGVjdGlvblNwYWNlIEF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlOjpwcm90ZWN0aW9uU3BhY2VG
b3JTZXJ2ZXJUcnVzdChjb25zdCBVUkwKIHsKICAgICBhdXRvIHBvcnQgPSBkZXRlcm1pbmVQcm94
eVBvcnQodXJsKTsKICAgICBhdXRvIHNlcnZlclR5cGUgPSBwcm90ZWN0aW9uU3BhY2VTZXJ2ZXJU
eXBlRnJvbVVSSSh1cmwsIGZhbHNlKTsKLSAgICBhdXRvIGF1dGhlbnRpY2F0aW9uU2NoZW1lID0g
UHJvdGVjdGlvblNwYWNlQXV0aGVudGljYXRpb25TY2hlbWVTZXJ2ZXJUcnVzdEV2YWx1YXRpb25S
ZXF1ZXN0ZWQ7CisgICAgYXV0byBhdXRoZW50aWNhdGlvblNjaGVtZSA9IFByb3RlY3Rpb25TcGFj
ZTo6QXV0aGVudGljYXRpb25TY2hlbWU6OlNlcnZlclRydXN0RXZhbHVhdGlvblJlcXVlc3RlZDsK
IAogICAgIHJldHVybiBQcm90ZWN0aW9uU3BhY2UodXJsLmhvc3QoKS50b1N0cmluZygpLCBzdGF0
aWNfY2FzdDxpbnQ+KHBvcnQudmFsdWVfb3IoMCkpLCBzZXJ2ZXJUeXBlLCBTdHJpbmcoKSwgYXV0
aGVudGljYXRpb25TY2hlbWUsIGNlcnRpZmljYXRlSW5mbyk7CiB9CkBAIC05NiwxNyArOTYsMTcg
QEAgc3RkOjpvcHRpb25hbDx1aW50MTZfdD4gQXV0aGVudGljYXRpb25DaGFsbGVuZ2U6OmRldGVy
bWluZVByb3h5UG9ydChjb25zdCBVUkwmIHUKICAgICByZXR1cm4gc3RkOjpudWxsb3B0OwogfQog
Ci1Qcm90ZWN0aW9uU3BhY2VBdXRoZW50aWNhdGlvblNjaGVtZSBBdXRoZW50aWNhdGlvbkNoYWxs
ZW5nZTo6YXV0aGVudGljYXRpb25TY2hlbWVGcm9tQ3VybEF1dGgobG9uZyBjdXJsQXV0aCkKK1By
b3RlY3Rpb25TcGFjZTo6QXV0aGVudGljYXRpb25TY2hlbWUgQXV0aGVudGljYXRpb25DaGFsbGVu
Z2U6OmF1dGhlbnRpY2F0aW9uU2NoZW1lRnJvbUN1cmxBdXRoKGxvbmcgY3VybEF1dGgpCiB7CiAg
ICAgaWYgKGN1cmxBdXRoICYgQ1VSTEFVVEhfTlRMTSkKLSAgICAgICAgcmV0dXJuIFByb3RlY3Rp
b25TcGFjZUF1dGhlbnRpY2F0aW9uU2NoZW1lTlRMTTsKKyAgICAgICAgcmV0dXJuIFByb3RlY3Rp
b25TcGFjZTo6QXV0aGVudGljYXRpb25TY2hlbWU6Ok5UTE07CiAgICAgaWYgKGN1cmxBdXRoICYg
Q1VSTEFVVEhfTkVHT1RJQVRFKQotICAgICAgICByZXR1cm4gUHJvdGVjdGlvblNwYWNlQXV0aGVu
dGljYXRpb25TY2hlbWVOZWdvdGlhdGU7CisgICAgICAgIHJldHVybiBQcm90ZWN0aW9uU3BhY2U6
OkF1dGhlbnRpY2F0aW9uU2NoZW1lOjpOZWdvdGlhdGU7CiAgICAgaWYgKGN1cmxBdXRoICYgQ1VS
TEFVVEhfRElHRVNUKQotICAgICAgICByZXR1cm4gUHJvdGVjdGlvblNwYWNlQXV0aGVudGljYXRp
b25TY2hlbWVIVFRQRGlnZXN0OworICAgICAgICByZXR1cm4gUHJvdGVjdGlvblNwYWNlOjpBdXRo
ZW50aWNhdGlvblNjaGVtZTo6SFRUUERpZ2VzdDsKICAgICBpZiAoY3VybEF1dGggJiBDVVJMQVVU
SF9CQVNJQykKLSAgICAgICAgcmV0dXJuIFByb3RlY3Rpb25TcGFjZUF1dGhlbnRpY2F0aW9uU2No
ZW1lSFRUUEJhc2ljOwotICAgIHJldHVybiBQcm90ZWN0aW9uU3BhY2VBdXRoZW50aWNhdGlvblNj
aGVtZVVua25vd247CisgICAgICAgIHJldHVybiBQcm90ZWN0aW9uU3BhY2U6OkF1dGhlbnRpY2F0
aW9uU2NoZW1lOjpIVFRQQmFzaWM7CisgICAgcmV0dXJuIFByb3RlY3Rpb25TcGFjZTo6QXV0aGVu
dGljYXRpb25TY2hlbWU6OlVua25vd247CiB9CiAKIFN0cmluZyBBdXRoZW50aWNhdGlvbkNoYWxs
ZW5nZTo6cGFyc2VSZWFsbShjb25zdCBSZXNvdXJjZVJlc3BvbnNlJiByZXNwb25zZSkKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY3VybC9DdXJsUmVxdWVzdC5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2N1cmwvQ3VybFJlcXVlc3QuY3Bw
CmluZGV4IGQ4MmRkM2MxMGFjNjQ3MTM1OTkxZmQ3YWU2Njk3ZTlkOGUzMTNlODkuLmJhY2IyYjU1
MGIyODQxMzFkMWFjMjBhYTY2Mzg4NmZlMjJmZTdmOTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL25ldHdvcmsvY3VybC9DdXJsUmVxdWVzdC5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vbmV0d29yay9jdXJsL0N1cmxSZXF1ZXN0LmNwcApAQCAtNjQsMjIgKzY0
LDIyIEBAIHZvaWQgQ3VybFJlcXVlc3Q6OmludmFsaWRhdGVDbGllbnQoKQogICAgIG1fbWVzc2Fn
ZVF1ZXVlID0gbnVsbHB0cjsKIH0KIAotdm9pZCBDdXJsUmVxdWVzdDo6c2V0QXV0aGVudGljYXRp
b25TY2hlbWUoUHJvdGVjdGlvblNwYWNlQXV0aGVudGljYXRpb25TY2hlbWUgc2NoZW1lKQordm9p
ZCBDdXJsUmVxdWVzdDo6c2V0QXV0aGVudGljYXRpb25TY2hlbWUoUHJvdGVjdGlvblNwYWNlOjpB
dXRoZW50aWNhdGlvblNjaGVtZSBzY2hlbWUpCiB7CiAgICAgc3dpdGNoIChzY2hlbWUpIHsKLSAg
ICBjYXNlIFByb3RlY3Rpb25TcGFjZUF1dGhlbnRpY2F0aW9uU2NoZW1lSFRUUEJhc2ljOgorICAg
IGNhc2UgUHJvdGVjdGlvblNwYWNlOjpBdXRoZW50aWNhdGlvblNjaGVtZTo6SFRUUEJhc2ljOgog
ICAgICAgICBtX2F1dGhUeXBlID0gQ1VSTEFVVEhfQkFTSUM7CiAgICAgICAgIGJyZWFrOwogCi0g
ICAgY2FzZSBQcm90ZWN0aW9uU3BhY2VBdXRoZW50aWNhdGlvblNjaGVtZUhUVFBEaWdlc3Q6Cisg
ICAgY2FzZSBQcm90ZWN0aW9uU3BhY2U6OkF1dGhlbnRpY2F0aW9uU2NoZW1lOjpIVFRQRGlnZXN0
OgogICAgICAgICBtX2F1dGhUeXBlID0gQ1VSTEFVVEhfRElHRVNUOwogICAgICAgICBicmVhazsK
IAotICAgIGNhc2UgUHJvdGVjdGlvblNwYWNlQXV0aGVudGljYXRpb25TY2hlbWVOVExNOgorICAg
IGNhc2UgUHJvdGVjdGlvblNwYWNlOjpBdXRoZW50aWNhdGlvblNjaGVtZTo6TlRMTToKICAgICAg
ICAgbV9hdXRoVHlwZSA9IENVUkxBVVRIX05UTE07CiAgICAgICAgIGJyZWFrOwogCi0gICAgY2Fz
ZSBQcm90ZWN0aW9uU3BhY2VBdXRoZW50aWNhdGlvblNjaGVtZU5lZ290aWF0ZToKKyAgICBjYXNl
IFByb3RlY3Rpb25TcGFjZTo6QXV0aGVudGljYXRpb25TY2hlbWU6Ok5lZ290aWF0ZToKICAgICAg
ICAgbV9hdXRoVHlwZSA9IENVUkxBVVRIX05FR09USUFURTsKICAgICAgICAgYnJlYWs7CiAKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY3VybC9DdXJsUmVxdWVz
dC5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jdXJsL0N1cmxSZXF1ZXN0LmgK
aW5kZXggM2M3Y2RkODgzZWI2MmJmZTkyY2YwNDQ1ZWQyOWJkMjZlY2UzZTkyMi4uYTZmYjMxNTc2
NmJhNWMyZjNlYTMyYjllZjUxZWIwMDNlOGNiODlkMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vbmV0d29yay9jdXJsL0N1cmxSZXF1ZXN0LmgKKysrIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vbmV0d29yay9jdXJsL0N1cmxSZXF1ZXN0LmgKQEAgLTcyLDcgKzcyLDcgQEAg
cHVibGljOgogICAgIHZpcnR1YWwgfkN1cmxSZXF1ZXN0KCk7CiAKICAgICB2b2lkIGludmFsaWRh
dGVDbGllbnQoKTsKLSAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHNldEF1dGhlbnRpY2F0aW9uU2No
ZW1lKFByb3RlY3Rpb25TcGFjZUF1dGhlbnRpY2F0aW9uU2NoZW1lKTsKKyAgICBXRUJDT1JFX0VY
UE9SVCB2b2lkIHNldEF1dGhlbnRpY2F0aW9uU2NoZW1lKFByb3RlY3Rpb25TcGFjZTo6QXV0aGVu
dGljYXRpb25TY2hlbWUpOwogICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgc2V0VXNlclBhc3MoY29u
c3QgU3RyaW5nJiwgY29uc3QgU3RyaW5nJik7CiAgICAgYm9vbCBpc1NlcnZlclRydXN0RXZhbHVh
dGlvbkRpc2FibGVkKCkgeyByZXR1cm4gbV9zaG91bGREaXNhYmxlU2VydmVyVHJ1c3RFdmFsdWF0
aW9uOyB9CiAgICAgdm9pZCBkaXNhYmxlU2VydmVyVHJ1c3RFdmFsdWF0aW9uKCkgeyBtX3Nob3Vs
ZERpc2FibGVTZXJ2ZXJUcnVzdEV2YWx1YXRpb24gPSB0cnVlOyB9CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2N1cmwvUHJvdGVjdGlvblNwYWNlQ3VybC5oIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jdXJsL1Byb3RlY3Rpb25TcGFjZUN1cmwu
aAppbmRleCA3MTMwYzM5ZGIyZTc4ZjI3MGE3YWYzMjkyZmRmZGRjM2E3NmYyYzQ2Li5hODY0OWY3
YTM4YWI4YWJlMDRhNDQ3Zjk1OTE3MGQyM2IyZTg3MWYwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9uZXR3b3JrL2N1cmwvUHJvdGVjdGlvblNwYWNlQ3VybC5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY3VybC9Qcm90ZWN0aW9uU3BhY2VDdXJsLmgK
QEAgLTM3LDEyICszNywxMiBAQCBwdWJsaWM6CiAgICAgewogICAgIH0KIAotICAgIFByb3RlY3Rp
b25TcGFjZShjb25zdCBTdHJpbmcmIGhvc3QsIGludCBwb3J0LCBQcm90ZWN0aW9uU3BhY2VTZXJ2
ZXJUeXBlIHNlcnZlclR5cGUsIGNvbnN0IFN0cmluZyYgcmVhbG0sIFByb3RlY3Rpb25TcGFjZUF1
dGhlbnRpY2F0aW9uU2NoZW1lIGF1dGhlbnRpY2F0aW9uU2NoZW1lKQorICAgIFByb3RlY3Rpb25T
cGFjZShjb25zdCBTdHJpbmcmIGhvc3QsIGludCBwb3J0LCBTZXJ2ZXJUeXBlIHNlcnZlclR5cGUs
IGNvbnN0IFN0cmluZyYgcmVhbG0sIEF1dGhlbnRpY2F0aW9uU2NoZW1lIGF1dGhlbnRpY2F0aW9u
U2NoZW1lKQogICAgICAgICA6IFByb3RlY3Rpb25TcGFjZUJhc2UoaG9zdCwgcG9ydCwgc2VydmVy
VHlwZSwgcmVhbG0sIGF1dGhlbnRpY2F0aW9uU2NoZW1lKQogICAgIHsKICAgICB9CiAKLSAgICBQ
cm90ZWN0aW9uU3BhY2UoY29uc3QgU3RyaW5nJiBob3N0LCBpbnQgcG9ydCwgUHJvdGVjdGlvblNw
YWNlU2VydmVyVHlwZSBzZXJ2ZXJUeXBlLCBjb25zdCBTdHJpbmcmIHJlYWxtLCBQcm90ZWN0aW9u
U3BhY2VBdXRoZW50aWNhdGlvblNjaGVtZSBhdXRoZW50aWNhdGlvblNjaGVtZSwgY29uc3QgQ2Vy
dGlmaWNhdGVJbmZvJiBjZXJ0aWZpY2F0ZUluZm8pCisgICAgUHJvdGVjdGlvblNwYWNlKGNvbnN0
IFN0cmluZyYgaG9zdCwgaW50IHBvcnQsIFNlcnZlclR5cGUgc2VydmVyVHlwZSwgY29uc3QgU3Ry
aW5nJiByZWFsbSwgQXV0aGVudGljYXRpb25TY2hlbWUgYXV0aGVudGljYXRpb25TY2hlbWUsIGNv
bnN0IENlcnRpZmljYXRlSW5mbyYgY2VydGlmaWNhdGVJbmZvKQogICAgICAgICA6IFByb3RlY3Rp
b25TcGFjZUJhc2UoaG9zdCwgcG9ydCwgc2VydmVyVHlwZSwgcmVhbG0sIGF1dGhlbnRpY2F0aW9u
U2NoZW1lKQogICAgICAgICAsIG1fY2VydGlmaWNhdGVJbmZvKGNlcnRpZmljYXRlSW5mbykKICAg
ICB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2N1cmwvUmVz
b3VyY2VIYW5kbGVDdXJsLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY3Vy
bC9SZXNvdXJjZUhhbmRsZUN1cmwuY3BwCmluZGV4IDgwZWM5ZWM1NWE2MmQzMzAzZWEyNWZmZjYw
ZjEyMTQwMTU5YjhiZDcuLjllZGJkMmU4MWE3ZjFlNDU2NzVkMDIxOTUzY2VmNTk5NWM2NDY1OTcg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY3VybC9SZXNvdXJj
ZUhhbmRsZUN1cmwuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY3Vy
bC9SZXNvdXJjZUhhbmRsZUN1cmwuY3BwCkBAIC04Niw3ICs4Niw3IEBAIGJvb2wgUmVzb3VyY2VI
YW5kbGU6OnN0YXJ0KCkKIAogICAgIGlmIChhdXRvIGNyZWRlbnRpYWwgPSBnZXRDcmVkZW50aWFs
KGQtPm1fZmlyc3RSZXF1ZXN0LCBmYWxzZSkpIHsKICAgICAgICAgZC0+bV9jdXJsUmVxdWVzdC0+
c2V0VXNlclBhc3MoY3JlZGVudGlhbC0+dXNlcigpLCBjcmVkZW50aWFsLT5wYXNzd29yZCgpKTsK
LSAgICAgICAgZC0+bV9jdXJsUmVxdWVzdC0+c2V0QXV0aGVudGljYXRpb25TY2hlbWUoUHJvdGVj
dGlvblNwYWNlQXV0aGVudGljYXRpb25TY2hlbWVIVFRQQmFzaWMpOworICAgICAgICBkLT5tX2N1
cmxSZXF1ZXN0LT5zZXRBdXRoZW50aWNhdGlvblNjaGVtZShQcm90ZWN0aW9uU3BhY2U6OkF1dGhl
bnRpY2F0aW9uU2NoZW1lOjpIVFRQQmFzaWMpOwogICAgIH0KIAogICAgIGQtPm1fY3VybFJlcXVl
c3QtPnN0YXJ0KCk7CkBAIC0zOTAsNyArMzkwLDcgQEAgdm9pZCBSZXNvdXJjZUhhbmRsZTo6cGxh
dGZvcm1Mb2FkUmVzb3VyY2VTeW5jaHJvbm91c2x5KE5ldHdvcmtpbmdDb250ZXh0KiBjb250ZXgK
IAogICAgIGlmIChhdXRvIGNyZWRlbnRpYWwgPSBoYW5kbGUtPmdldENyZWRlbnRpYWwoaGFuZGxl
LT5kLT5tX2ZpcnN0UmVxdWVzdCwgZmFsc2UpKSB7CiAgICAgICAgIGhhbmRsZS0+ZC0+bV9jdXJs
UmVxdWVzdC0+c2V0VXNlclBhc3MoY3JlZGVudGlhbC0+dXNlcigpLCBjcmVkZW50aWFsLT5wYXNz
d29yZCgpKTsKLSAgICAgICAgaGFuZGxlLT5kLT5tX2N1cmxSZXF1ZXN0LT5zZXRBdXRoZW50aWNh
dGlvblNjaGVtZShQcm90ZWN0aW9uU3BhY2VBdXRoZW50aWNhdGlvblNjaGVtZUhUVFBCYXNpYyk7
CisgICAgICAgIGhhbmRsZS0+ZC0+bV9jdXJsUmVxdWVzdC0+c2V0QXV0aGVudGljYXRpb25TY2hl
bWUoUHJvdGVjdGlvblNwYWNlOjpBdXRoZW50aWNhdGlvblNjaGVtZTo6SFRUUEJhc2ljKTsKICAg
ICB9CiAKICAgICBoYW5kbGUtPmQtPm1fY3VybFJlcXVlc3QtPnN0YXJ0KCk7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL21hYy9SZXNvdXJjZUhhbmRsZU1hYy5t
bSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvbWFjL1Jlc291cmNlSGFuZGxlTWFj
Lm1tCmluZGV4IDU2OWU4Yjg5NDUyMzZlMWRkMmM1MjI4NWRiNTY4MjkyZmZjOTI5MDguLjNkYTRj
Njk4YzUzZDdjZTA3MTUwMTc4ODgwODRkZDU0MjYzYjljMTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvbWFjL1Jlc291cmNlSGFuZGxlTWFjLm1tCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvbWFjL1Jlc291cmNlSGFuZGxlTWFjLm1tCkBA
IC01ODksNyArNTg5LDcgQEAgdm9pZCBSZXNvdXJjZUhhbmRsZTo6cmVjZWl2ZWRDcmVkZW50aWFs
KGNvbnN0IEF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlJiBjaGFsbGVuZ2UKICAgICAgICAgcmV0dXJu
OwogICAgIH0KIAotICAgIGlmIChjcmVkZW50aWFsLnBlcnNpc3RlbmNlKCkgPT0gQ3JlZGVudGlh
bFBlcnNpc3RlbmNlRm9yU2Vzc2lvbiAmJiBjaGFsbGVuZ2UucHJvdGVjdGlvblNwYWNlKCkuYXV0
aGVudGljYXRpb25TY2hlbWUoKSAhPSBQcm90ZWN0aW9uU3BhY2VBdXRoZW50aWNhdGlvblNjaGVt
ZVNlcnZlclRydXN0RXZhbHVhdGlvblJlcXVlc3RlZCkgeworICAgIGlmIChjcmVkZW50aWFsLnBl
cnNpc3RlbmNlKCkgPT0gQ3JlZGVudGlhbFBlcnNpc3RlbmNlRm9yU2Vzc2lvbiAmJiBjaGFsbGVu
Z2UucHJvdGVjdGlvblNwYWNlKCkuYXV0aGVudGljYXRpb25TY2hlbWUoKSAhPSBQcm90ZWN0aW9u
U3BhY2U6OkF1dGhlbnRpY2F0aW9uU2NoZW1lOjpTZXJ2ZXJUcnVzdEV2YWx1YXRpb25SZXF1ZXN0
ZWQpIHsKICAgICAgICAgLy8gTWFuYWdlIHBlci1zZXNzaW9uIGNyZWRlbnRpYWxzIGludGVybmFs
bHksIGJlY2F1c2Ugb25jZSBOU1VSTENyZWRlbnRpYWxQZXJzaXN0ZW5jZUZvclNlc3Npb24gaXMg
dXNlZCwgdGhlcmUgaXMgbm8gd2F5CiAgICAgICAgIC8vIHRvIGlnbm9yZSBpdCBmb3IgYSBwYXJ0
aWN1bGFyIHJlcXVlc3QgKHNob3J0IG9mIHJlbW92aW5nIGl0IGFsdG9nZXRoZXIpLgogICAgICAg
ICBDcmVkZW50aWFsIHdlYkNyZWRlbnRpYWwoY3JlZGVudGlhbCwgQ3JlZGVudGlhbFBlcnNpc3Rl
bmNlTm9uZSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL3Nv
dXAvQXV0aGVudGljYXRpb25DaGFsbGVuZ2VTb3VwLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL25ldHdvcmsvc291cC9BdXRoZW50aWNhdGlvbkNoYWxsZW5nZVNvdXAuY3BwCmluZGV4IDcy
NzZjM2RkM2JhMGJmNjcyMWYxOTA2Njk5ODYxOWVlNjZhNjQyMzcuLmFmNDUzOTYzNmNkODYxNGY4
MzY0OGUyZTRhNWU5ZDA3ZDNmYTFhMGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL25ldHdvcmsvc291cC9BdXRoZW50aWNhdGlvbkNoYWxsZW5nZVNvdXAuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvc291cC9BdXRoZW50aWNhdGlvbkNoYWxsZW5n
ZVNvdXAuY3BwCkBAIC0zNSwzMSArMzUsMzEgQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1z
dGF0aWMgUHJvdGVjdGlvblNwYWNlU2VydmVyVHlwZSBwcm90ZWN0aW9uU3BhY2VTZXJ2ZXJUeXBl
RnJvbVVSTChjb25zdCBVUkwmIHVybCwgYm9vbCBpc0ZvclByb3h5KQorc3RhdGljIFByb3RlY3Rp
b25TcGFjZTo6U2VydmVyVHlwZSBwcm90ZWN0aW9uU3BhY2VTZXJ2ZXJUeXBlRnJvbVVSTChjb25z
dCBVUkwmIHVybCwgYm9vbCBpc0ZvclByb3h5KQogewogICAgIGlmICh1cmwucHJvdG9jb2xJcygi
aHR0cHMiKSkKLSAgICAgICAgcmV0dXJuIGlzRm9yUHJveHkgPyBQcm90ZWN0aW9uU3BhY2VQcm94
eUhUVFBTIDogUHJvdGVjdGlvblNwYWNlU2VydmVySFRUUFM7CisgICAgICAgIHJldHVybiBpc0Zv
clByb3h5ID8gUHJvdGVjdGlvblNwYWNlOjpTZXJ2ZXJUeXBlOjpQcm94eUhUVFBTIDogUHJvdGVj
dGlvblNwYWNlOjpTZXJ2ZXJUeXBlOjpIVFRQUzsKICAgICBpZiAodXJsLnByb3RvY29sSXMoImh0
dHAiKSkKLSAgICAgICAgcmV0dXJuIGlzRm9yUHJveHkgPyBQcm90ZWN0aW9uU3BhY2VQcm94eUhU
VFAgOiBQcm90ZWN0aW9uU3BhY2VTZXJ2ZXJIVFRQOworICAgICAgICByZXR1cm4gaXNGb3JQcm94
eSA/IFByb3RlY3Rpb25TcGFjZTo6U2VydmVyVHlwZTo6UHJveHlIVFRQIDogUHJvdGVjdGlvblNw
YWNlOjpTZXJ2ZXJUeXBlOjpIVFRQOwogICAgIGlmICh1cmwucHJvdG9jb2xJcygiZnRwIikpCi0g
ICAgICAgIHJldHVybiBpc0ZvclByb3h5ID8gUHJvdGVjdGlvblNwYWNlUHJveHlGVFAgOiBQcm90
ZWN0aW9uU3BhY2VTZXJ2ZXJGVFA7Ci0gICAgcmV0dXJuIGlzRm9yUHJveHkgPyBQcm90ZWN0aW9u
U3BhY2VQcm94eUhUVFAgOiBQcm90ZWN0aW9uU3BhY2VTZXJ2ZXJIVFRQOworICAgICAgICByZXR1
cm4gaXNGb3JQcm94eSA/IFByb3RlY3Rpb25TcGFjZTo6U2VydmVyVHlwZTo6UHJveHlGVFAgOiBQ
cm90ZWN0aW9uU3BhY2U6OlNlcnZlclR5cGU6OkZUUDsKKyAgICByZXR1cm4gaXNGb3JQcm94eSA/
IFByb3RlY3Rpb25TcGFjZTo6U2VydmVyVHlwZTo6UHJveHlIVFRQIDogUHJvdGVjdGlvblNwYWNl
OjpTZXJ2ZXJUeXBlOjpIVFRQOwogfQogCiBzdGF0aWMgUHJvdGVjdGlvblNwYWNlIHByb3RlY3Rp
b25TcGFjZUZyb21Tb3VwQXV0aEFuZFVSTChTb3VwQXV0aCogc291cEF1dGgsIGNvbnN0IFVSTCYg
dXJsKQogewogICAgIGNvbnN0IGNoYXIqIHNjaGVtZU5hbWUgPSBzb3VwX2F1dGhfZ2V0X3NjaGVt
ZV9uYW1lKHNvdXBBdXRoKTsKLSAgICBQcm90ZWN0aW9uU3BhY2VBdXRoZW50aWNhdGlvblNjaGVt
ZSBzY2hlbWU7CisgICAgUHJvdGVjdGlvblNwYWNlOjpBdXRoZW50aWNhdGlvblNjaGVtZSBzY2hl
bWU7CiAgICAgaWYgKCFnX2FzY2lpX3N0cmNhc2VjbXAoc2NoZW1lTmFtZSwgImJhc2ljIikpCi0g
ICAgICAgIHNjaGVtZSA9IFByb3RlY3Rpb25TcGFjZUF1dGhlbnRpY2F0aW9uU2NoZW1lSFRUUEJh
c2ljOworICAgICAgICBzY2hlbWUgPSBQcm90ZWN0aW9uU3BhY2U6OkF1dGhlbnRpY2F0aW9uU2No
ZW1lOjpIVFRQQmFzaWM7CiAgICAgZWxzZSBpZiAoIWdfYXNjaWlfc3RyY2FzZWNtcChzY2hlbWVO
YW1lLCAiZGlnZXN0IikpCi0gICAgICAgIHNjaGVtZSA9IFByb3RlY3Rpb25TcGFjZUF1dGhlbnRp
Y2F0aW9uU2NoZW1lSFRUUERpZ2VzdDsKKyAgICAgICAgc2NoZW1lID0gUHJvdGVjdGlvblNwYWNl
OjpBdXRoZW50aWNhdGlvblNjaGVtZTo6SFRUUERpZ2VzdDsKICAgICBlbHNlIGlmICghZ19hc2Np
aV9zdHJjYXNlY21wKHNjaGVtZU5hbWUsICJudGxtIikpCi0gICAgICAgIHNjaGVtZSA9IFByb3Rl
Y3Rpb25TcGFjZUF1dGhlbnRpY2F0aW9uU2NoZW1lTlRMTTsKKyAgICAgICAgc2NoZW1lID0gUHJv
dGVjdGlvblNwYWNlOjpBdXRoZW50aWNhdGlvblNjaGVtZTo6TlRMTTsKICAgICBlbHNlIGlmICgh
Z19hc2NpaV9zdHJjYXNlY21wKHNjaGVtZU5hbWUsICJuZWdvdGlhdGUiKSkKLSAgICAgICAgc2No
ZW1lID0gUHJvdGVjdGlvblNwYWNlQXV0aGVudGljYXRpb25TY2hlbWVOZWdvdGlhdGU7CisgICAg
ICAgIHNjaGVtZSA9IFByb3RlY3Rpb25TcGFjZTo6QXV0aGVudGljYXRpb25TY2hlbWU6Ok5lZ290
aWF0ZTsKICAgICBlbHNlCi0gICAgICAgIHNjaGVtZSA9IFByb3RlY3Rpb25TcGFjZUF1dGhlbnRp
Y2F0aW9uU2NoZW1lVW5rbm93bjsKKyAgICAgICAgc2NoZW1lID0gUHJvdGVjdGlvblNwYWNlOjpB
dXRoZW50aWNhdGlvblNjaGVtZTo6VW5rbm93bjsKIAogI2lmIFVTRShTT1VQMikKICAgICBhdXRv
IGhvc3QgPSB1cmwuaG9zdCgpOwpAQCAtOTYsNyArOTYsNyBAQCBzdGF0aWMgUHJvdGVjdGlvblNw
YWNlIHByb3RlY3Rpb25TcGFjZUZvckNsaWVudENlcnRpZmljYXRlKGNvbnN0IFVSTCYgdXJsKQog
ICAgIGlmICghcG9ydCkKICAgICAgICAgcG9ydCA9IGRlZmF1bHRQb3J0Rm9yUHJvdG9jb2wodXJs
LnByb3RvY29sKCkpOwogICAgIHJldHVybiBQcm90ZWN0aW9uU3BhY2UodXJsLmhvc3QoKS50b1N0
cmluZygpLCBzdGF0aWNfY2FzdDxpbnQ+KHBvcnQudmFsdWVfb3IoMCkpLCBwcm90ZWN0aW9uU3Bh
Y2VTZXJ2ZXJUeXBlRnJvbVVSTCh1cmwsIGZhbHNlKSwgeyB9LAotICAgICAgICBQcm90ZWN0aW9u
U3BhY2VBdXRoZW50aWNhdGlvblNjaGVtZUNsaWVudENlcnRpZmljYXRlUmVxdWVzdGVkKTsKKyAg
ICAgICAgUHJvdGVjdGlvblNwYWNlOjpBdXRoZW50aWNhdGlvblNjaGVtZTo6Q2xpZW50Q2VydGlm
aWNhdGVSZXF1ZXN0ZWQpOwogfQogCiBBdXRoZW50aWNhdGlvbkNoYWxsZW5nZTo6QXV0aGVudGlj
YXRpb25DaGFsbGVuZ2UoU291cE1lc3NhZ2UqIHNvdXBNZXNzYWdlLCBHVGxzQ2xpZW50Q29ubmVj
dGlvbiopCkBAIC0xMTQsNyArMTE0LDcgQEAgc3RhdGljIFByb3RlY3Rpb25TcGFjZSBwcm90ZWN0
aW9uU3BhY2VGb3JDbGllbnRDZXJ0aWZpY2F0ZVBhc3N3b3JkKEdUbHNQYXNzd29yZCoKICAgICBp
ZiAoIXBvcnQpCiAgICAgICAgIHBvcnQgPSBkZWZhdWx0UG9ydEZvclByb3RvY29sKHVybC5wcm90
b2NvbCgpKTsKICAgICByZXR1cm4gUHJvdGVjdGlvblNwYWNlKHVybC5ob3N0KCkudG9TdHJpbmco
KSwgc3RhdGljX2Nhc3Q8aW50Pihwb3J0LnZhbHVlX29yKDApKSwgcHJvdGVjdGlvblNwYWNlU2Vy
dmVyVHlwZUZyb21VUkwodXJsLCBmYWxzZSksCi0gICAgICAgIFN0cmluZzo6ZnJvbVVURjgoZ190
bHNfcGFzc3dvcmRfZ2V0X2Rlc2NyaXB0aW9uKHRsc1Bhc3N3b3JkKSksIFByb3RlY3Rpb25TcGFj
ZUF1dGhlbnRpY2F0aW9uU2NoZW1lQ2xpZW50Q2VydGlmaWNhdGVQSU5SZXF1ZXN0ZWQpOworICAg
ICAgICBTdHJpbmc6OmZyb21VVEY4KGdfdGxzX3Bhc3N3b3JkX2dldF9kZXNjcmlwdGlvbih0bHNQ
YXNzd29yZCkpLCBQcm90ZWN0aW9uU3BhY2U6OkF1dGhlbnRpY2F0aW9uU2NoZW1lOjpDbGllbnRD
ZXJ0aWZpY2F0ZVBJTlJlcXVlc3RlZCk7CiB9CiAKIEF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlOjpB
dXRoZW50aWNhdGlvbkNoYWxsZW5nZShTb3VwTWVzc2FnZSogc291cE1lc3NhZ2UsIEdUbHNQYXNz
d29yZCogdGxzUGFzc3dvcmQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9u
ZXR3b3JrL3NvdXAvTmV0d29ya1N0b3JhZ2VTZXNzaW9uU291cC5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9uZXR3b3JrL3NvdXAvTmV0d29ya1N0b3JhZ2VTZXNzaW9uU291cC5jcHAKaW5k
ZXggNWIzMjUzNGUyYmNhZjE3MDEzMzFlOTU0MTAxM2I4YTVjMzhjNGQzNi4uZmNmYTRlOTk1MjEy
YWU5MjZmNjMzOWQzN2RiYmIzZDEwNTFlMGZjMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vbmV0d29yay9zb3VwL05ldHdvcmtTdG9yYWdlU2Vzc2lvblNvdXAuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvc291cC9OZXR3b3JrU3RvcmFnZVNlc3Np
b25Tb3VwLmNwcApAQCAtODgsNDggKzg4LDQ4IEBAIHZvaWQgTmV0d29ya1N0b3JhZ2VTZXNzaW9u
OjpzZXRDb29raWVPYnNlcnZlckhhbmRsZXIoRnVuY3Rpb248dm9pZCAoKT4mJiBoYW5kbGVyCiB9
CiAKICNpZiBVU0UoTElCU0VDUkVUKQotc3RhdGljIGNvbnN0IGNoYXIqIHNjaGVtZUZyb21Qcm90
ZWN0aW9uU3BhY2VTZXJ2ZXJUeXBlKFByb3RlY3Rpb25TcGFjZVNlcnZlclR5cGUgc2VydmVyVHlw
ZSkKK3N0YXRpYyBjb25zdCBjaGFyKiBzY2hlbWVGcm9tUHJvdGVjdGlvblNwYWNlU2VydmVyVHlw
ZShQcm90ZWN0aW9uU3BhY2U6OlNlcnZlclR5cGUgc2VydmVyVHlwZSkKIHsKICAgICBzd2l0Y2gg
KHNlcnZlclR5cGUpIHsKLSAgICBjYXNlIFByb3RlY3Rpb25TcGFjZVNlcnZlckhUVFA6Ci0gICAg
Y2FzZSBQcm90ZWN0aW9uU3BhY2VQcm94eUhUVFA6CisgICAgY2FzZSBQcm90ZWN0aW9uU3BhY2U6
OlNlcnZlclR5cGU6OkhUVFA6CisgICAgY2FzZSBQcm90ZWN0aW9uU3BhY2U6OlNlcnZlclR5cGU6
OlByb3h5SFRUUDoKICAgICAgICAgcmV0dXJuICJodHRwIjsKLSAgICBjYXNlIFByb3RlY3Rpb25T
cGFjZVNlcnZlckhUVFBTOgotICAgIGNhc2UgUHJvdGVjdGlvblNwYWNlUHJveHlIVFRQUzoKKyAg
ICBjYXNlIFByb3RlY3Rpb25TcGFjZTo6U2VydmVyVHlwZTo6SFRUUFM6CisgICAgY2FzZSBQcm90
ZWN0aW9uU3BhY2U6OlNlcnZlclR5cGU6OlByb3h5SFRUUFM6CiAgICAgICAgIHJldHVybiAiaHR0
cHMiOwotICAgIGNhc2UgUHJvdGVjdGlvblNwYWNlU2VydmVyRlRQOgotICAgIGNhc2UgUHJvdGVj
dGlvblNwYWNlUHJveHlGVFA6CisgICAgY2FzZSBQcm90ZWN0aW9uU3BhY2U6OlNlcnZlclR5cGU6
OkZUUDoKKyAgICBjYXNlIFByb3RlY3Rpb25TcGFjZTo6U2VydmVyVHlwZTo6UHJveHlGVFA6CiAg
ICAgICAgIHJldHVybiAiZnRwIjsKLSAgICBjYXNlIFByb3RlY3Rpb25TcGFjZVNlcnZlckZUUFM6
Ci0gICAgY2FzZSBQcm90ZWN0aW9uU3BhY2VQcm94eVNPQ0tTOgorICAgIGNhc2UgUHJvdGVjdGlv
blNwYWNlOjpTZXJ2ZXJUeXBlOjpGVFBTOgorICAgIGNhc2UgUHJvdGVjdGlvblNwYWNlOjpTZXJ2
ZXJUeXBlOjpQcm94eVNPQ0tTOgogICAgICAgICBicmVhazsKICAgICB9CiAKICAgICBSRUxFQVNF
X0FTU0VSVF9OT1RfUkVBQ0hFRCgpOwogfQogCi1zdGF0aWMgY29uc3QgY2hhciogYXV0aFR5cGVG
cm9tUHJvdGVjdGlvblNwYWNlQXV0aGVudGljYXRpb25TY2hlbWUoUHJvdGVjdGlvblNwYWNlQXV0
aGVudGljYXRpb25TY2hlbWUgc2NoZW1lKQorc3RhdGljIGNvbnN0IGNoYXIqIGF1dGhUeXBlRnJv
bVByb3RlY3Rpb25TcGFjZUF1dGhlbnRpY2F0aW9uU2NoZW1lKFByb3RlY3Rpb25TcGFjZTo6QXV0
aGVudGljYXRpb25TY2hlbWUgc2NoZW1lKQogewogICAgIHN3aXRjaCAoc2NoZW1lKSB7Ci0gICAg
Y2FzZSBQcm90ZWN0aW9uU3BhY2VBdXRoZW50aWNhdGlvblNjaGVtZURlZmF1bHQ6Ci0gICAgY2Fz
ZSBQcm90ZWN0aW9uU3BhY2VBdXRoZW50aWNhdGlvblNjaGVtZUhUVFBCYXNpYzoKKyAgICBjYXNl
IFByb3RlY3Rpb25TcGFjZTo6QXV0aGVudGljYXRpb25TY2hlbWU6OkRlZmF1bHQ6CisgICAgY2Fz
ZSBQcm90ZWN0aW9uU3BhY2U6OkF1dGhlbnRpY2F0aW9uU2NoZW1lOjpIVFRQQmFzaWM6CiAgICAg
ICAgIHJldHVybiAiQmFzaWMiOwotICAgIGNhc2UgUHJvdGVjdGlvblNwYWNlQXV0aGVudGljYXRp
b25TY2hlbWVIVFRQRGlnZXN0OgorICAgIGNhc2UgUHJvdGVjdGlvblNwYWNlOjpBdXRoZW50aWNh
dGlvblNjaGVtZTo6SFRUUERpZ2VzdDoKICAgICAgICAgcmV0dXJuICJEaWdlc3QiOwotICAgIGNh
c2UgUHJvdGVjdGlvblNwYWNlQXV0aGVudGljYXRpb25TY2hlbWVOVExNOgorICAgIGNhc2UgUHJv
dGVjdGlvblNwYWNlOjpBdXRoZW50aWNhdGlvblNjaGVtZTo6TlRMTToKICAgICAgICAgcmV0dXJu
ICJOVExNIjsKLSAgICBjYXNlIFByb3RlY3Rpb25TcGFjZUF1dGhlbnRpY2F0aW9uU2NoZW1lTmVn
b3RpYXRlOgorICAgIGNhc2UgUHJvdGVjdGlvblNwYWNlOjpBdXRoZW50aWNhdGlvblNjaGVtZTo6
TmVnb3RpYXRlOgogICAgICAgICByZXR1cm4gIk5lZ290aWF0ZSI7Ci0gICAgY2FzZSBQcm90ZWN0
aW9uU3BhY2VBdXRoZW50aWNhdGlvblNjaGVtZUhUTUxGb3JtOgotICAgIGNhc2UgUHJvdGVjdGlv
blNwYWNlQXV0aGVudGljYXRpb25TY2hlbWVDbGllbnRDZXJ0aWZpY2F0ZVJlcXVlc3RlZDoKLSAg
ICBjYXNlIFByb3RlY3Rpb25TcGFjZUF1dGhlbnRpY2F0aW9uU2NoZW1lU2VydmVyVHJ1c3RFdmFs
dWF0aW9uUmVxdWVzdGVkOgorICAgIGNhc2UgUHJvdGVjdGlvblNwYWNlOjpBdXRoZW50aWNhdGlv
blNjaGVtZTo6SFRNTEZvcm06CisgICAgY2FzZSBQcm90ZWN0aW9uU3BhY2U6OkF1dGhlbnRpY2F0
aW9uU2NoZW1lOjpDbGllbnRDZXJ0aWZpY2F0ZVJlcXVlc3RlZDoKKyAgICBjYXNlIFByb3RlY3Rp
b25TcGFjZTo6QXV0aGVudGljYXRpb25TY2hlbWU6OlNlcnZlclRydXN0RXZhbHVhdGlvblJlcXVl
c3RlZDoKICAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CiAgICAgICAgIGJyZWFrOwotICAg
IGNhc2UgUHJvdGVjdGlvblNwYWNlQXV0aGVudGljYXRpb25TY2hlbWVDbGllbnRDZXJ0aWZpY2F0
ZVBJTlJlcXVlc3RlZDoKKyAgICBjYXNlIFByb3RlY3Rpb25TcGFjZTo6QXV0aGVudGljYXRpb25T
Y2hlbWU6OkNsaWVudENlcnRpZmljYXRlUElOUmVxdWVzdGVkOgogICAgICAgICByZXR1cm4gIkNl
cnRpZmljYXRlIFBJTiI7Ci0gICAgY2FzZSBQcm90ZWN0aW9uU3BhY2VBdXRoZW50aWNhdGlvblNj
aGVtZU9BdXRoOgorICAgIGNhc2UgUHJvdGVjdGlvblNwYWNlOjpBdXRoZW50aWNhdGlvblNjaGVt
ZTo6T0F1dGg6CiAgICAgICAgIHJldHVybiAiT0F1dGgiOwotICAgIGNhc2UgUHJvdGVjdGlvblNw
YWNlQXV0aGVudGljYXRpb25TY2hlbWVVbmtub3duOgorICAgIGNhc2UgUHJvdGVjdGlvblNwYWNl
OjpBdXRoZW50aWNhdGlvblNjaGVtZTo6VW5rbm93bjoKICAgICAgICAgcmV0dXJuICJ1bmtub3du
IjsKICAgICB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0
d29ya0NPUlNQcmVmbGlnaHRDaGVja2VyLmNwcCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nl
c3MvTmV0d29ya0NPUlNQcmVmbGlnaHRDaGVja2VyLmNwcAppbmRleCA0OGEzOWMzMzliNmMxOTk5
MWQzNmM4MDMzNTVkNDM5MmM2ZGM0MTYxLi45NTg2MDkxZWEwMDQxYjZmMTU4NjlkNDJiYmRhNzI0
MzI5NzY5MGVjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdv
cmtDT1JTUHJlZmxpZ2h0Q2hlY2tlci5jcHAKKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJv
Y2Vzcy9OZXR3b3JrQ09SU1ByZWZsaWdodENoZWNrZXIuY3BwCkBAIC05NSwxMSArOTUsMTEgQEAg
dm9pZCBOZXR3b3JrQ09SU1ByZWZsaWdodENoZWNrZXI6OndpbGxQZXJmb3JtSFRUUFJlZGlyZWN0
aW9uKFdlYkNvcmU6OlJlc291cmNlUmUKIAogdm9pZCBOZXR3b3JrQ09SU1ByZWZsaWdodENoZWNr
ZXI6OmRpZFJlY2VpdmVDaGFsbGVuZ2UoV2ViQ29yZTo6QXV0aGVudGljYXRpb25DaGFsbGVuZ2Um
JiBjaGFsbGVuZ2UsIE5lZ290aWF0ZWRMZWdhY3lUTFMgbmVnb3RpYXRlZExlZ2FjeVRMUywgQ2hh
bGxlbmdlQ29tcGxldGlvbkhhbmRsZXImJiBjb21wbGV0aW9uSGFuZGxlcikKIHsKLSAgICBDT1JT
X0NIRUNLRVJfUkVMRUFTRV9MT0coImRpZFJlY2VpdmVDaGFsbGVuZ2UsIGF1dGhlbnRpY2F0aW9u
IHNjaGVtZTogJXUiLCBjaGFsbGVuZ2UucHJvdGVjdGlvblNwYWNlKCkuYXV0aGVudGljYXRpb25T
Y2hlbWUoKSk7CisgICAgQ09SU19DSEVDS0VSX1JFTEVBU0VfTE9HKCJkaWRSZWNlaXZlQ2hhbGxl
bmdlLCBhdXRoZW50aWNhdGlvbiBzY2hlbWU6ICV1Iiwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KGNo
YWxsZW5nZS5wcm90ZWN0aW9uU3BhY2UoKS5hdXRoZW50aWNhdGlvblNjaGVtZSgpKSk7CiAKICAg
ICBhdXRvIHNjaGVtZSA9IGNoYWxsZW5nZS5wcm90ZWN0aW9uU3BhY2UoKS5hdXRoZW50aWNhdGlv
blNjaGVtZSgpOwotICAgIGJvb2wgaXNUTFNIYW5kc2hha2UgPSBzY2hlbWUgPT0gUHJvdGVjdGlv
blNwYWNlQXV0aGVudGljYXRpb25TY2hlbWVTZXJ2ZXJUcnVzdEV2YWx1YXRpb25SZXF1ZXN0ZWQK
LSAgICAgICAgfHwgc2NoZW1lID09IFByb3RlY3Rpb25TcGFjZUF1dGhlbnRpY2F0aW9uU2NoZW1l
Q2xpZW50Q2VydGlmaWNhdGVSZXF1ZXN0ZWQ7CisgICAgYm9vbCBpc1RMU0hhbmRzaGFrZSA9IHNj
aGVtZSA9PSBQcm90ZWN0aW9uU3BhY2U6OkF1dGhlbnRpY2F0aW9uU2NoZW1lOjpTZXJ2ZXJUcnVz
dEV2YWx1YXRpb25SZXF1ZXN0ZWQKKyAgICAgICAgfHwgc2NoZW1lID09IFByb3RlY3Rpb25TcGFj
ZTo6QXV0aGVudGljYXRpb25TY2hlbWU6OkNsaWVudENlcnRpZmljYXRlUmVxdWVzdGVkOwogCiAg
ICAgaWYgKCFpc1RMU0hhbmRzaGFrZSkgewogICAgICAgICBjb21wbGV0aW9uSGFuZGxlcihBdXRo
ZW50aWNhdGlvbkNoYWxsZW5nZURpc3Bvc2l0aW9uOjpVc2VDcmVkZW50aWFsLCB7IH0pOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrTG9hZC5jcHAgYi9T
b3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtMb2FkLmNwcAppbmRleCA1YTE2Yzli
YzUwZTQzZmE5OGU4NTk1NzUwMzBjMTRlYzAyNTRlODU0Li44YzEwNGQ4MTYwYjdhYWZkMDk5NzE1
ZGE2ZDRlNmY3YzQ2MzdmYTA4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9j
ZXNzL05ldHdvcmtMb2FkLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05l
dHdvcmtMb2FkLmNwcApAQCAtMjE1LDggKzIxNSw4IEBAIHZvaWQgTmV0d29ya0xvYWQ6OmRpZFJl
Y2VpdmVDaGFsbGVuZ2UoQXV0aGVudGljYXRpb25DaGFsbGVuZ2UmJiBjaGFsbGVuZ2UsIE5lZ290
CiAgICAgbV9jbGllbnQuZ2V0KCkuZGlkUmVjZWl2ZUNoYWxsZW5nZShjaGFsbGVuZ2UpOwogCiAg
ICAgYXV0byBzY2hlbWUgPSBjaGFsbGVuZ2UucHJvdGVjdGlvblNwYWNlKCkuYXV0aGVudGljYXRp
b25TY2hlbWUoKTsKLSAgICBib29sIGlzVExTSGFuZHNoYWtlID0gc2NoZW1lID09IFByb3RlY3Rp
b25TcGFjZUF1dGhlbnRpY2F0aW9uU2NoZW1lU2VydmVyVHJ1c3RFdmFsdWF0aW9uUmVxdWVzdGVk
Ci0gICAgICAgIHx8IHNjaGVtZSA9PSBQcm90ZWN0aW9uU3BhY2VBdXRoZW50aWNhdGlvblNjaGVt
ZUNsaWVudENlcnRpZmljYXRlUmVxdWVzdGVkOworICAgIGJvb2wgaXNUTFNIYW5kc2hha2UgPSBz
Y2hlbWUgPT0gUHJvdGVjdGlvblNwYWNlOjpBdXRoZW50aWNhdGlvblNjaGVtZTo6U2VydmVyVHJ1
c3RFdmFsdWF0aW9uUmVxdWVzdGVkCisgICAgICAgIHx8IHNjaGVtZSA9PSBQcm90ZWN0aW9uU3Bh
Y2U6OkF1dGhlbnRpY2F0aW9uU2NoZW1lOjpDbGllbnRDZXJ0aWZpY2F0ZVJlcXVlc3RlZDsKICAg
ICBpZiAoIWlzQWxsb3dlZFRvQXNrVXNlckZvckNyZWRlbnRpYWxzKCkgJiYgIWlzVExTSGFuZHNo
YWtlICYmICFjaGFsbGVuZ2UucHJvdGVjdGlvblNwYWNlKCkuaXNQcm94eSgpKSB7CiAgICAgICAg
IG1fY2xpZW50LmdldCgpLmRpZEJsb2NrQXV0aGVudGljYXRpb25DaGFsbGVuZ2UoKTsKICAgICAg
ICAgY29tcGxldGlvbkhhbmRsZXIoQXV0aGVudGljYXRpb25DaGFsbGVuZ2VEaXNwb3NpdGlvbjo6
VXNlQ3JlZGVudGlhbCwgeyB9KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1By
b2Nlc3MvUGluZ0xvYWQuY3BwIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9QaW5nTG9h
ZC5jcHAKaW5kZXggZGIzZjE3MjEyYmIyYjc4YWYwOGU2YWRjODU2MjA3ODY2NzM5ZTYzNi4uYmMy
YzMzN2U0ZWVlMDFhZjgzZTEzNjcyMzE3YTlhOWVhYmM3YzZmOCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9QaW5nTG9hZC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9O
ZXR3b3JrUHJvY2Vzcy9QaW5nTG9hZC5jcHAKQEAgLTE1MSw3ICsxNTEsNyBAQCB2b2lkIFBpbmdM
b2FkOjp3aWxsUGVyZm9ybUhUVFBSZWRpcmVjdGlvbihSZXNvdXJjZVJlc3BvbnNlJiYgcmVkaXJl
Y3RSZXNwb25zZSwgUgogdm9pZCBQaW5nTG9hZDo6ZGlkUmVjZWl2ZUNoYWxsZW5nZShBdXRoZW50
aWNhdGlvbkNoYWxsZW5nZSYmIGNoYWxsZW5nZSwgTmVnb3RpYXRlZExlZ2FjeVRMUyBuZWdvdGlh
dGVkTGVnYWN5VExTLCBDaGFsbGVuZ2VDb21wbGV0aW9uSGFuZGxlciYmIGNvbXBsZXRpb25IYW5k
bGVyKQogewogICAgIFBJTkdfUkVMRUFTRV9MT0coImRpZFJlY2VpdmVDaGFsbGVuZ2UiKTsKLSAg
ICBpZiAoY2hhbGxlbmdlLnByb3RlY3Rpb25TcGFjZSgpLmF1dGhlbnRpY2F0aW9uU2NoZW1lKCkg
PT0gUHJvdGVjdGlvblNwYWNlQXV0aGVudGljYXRpb25TY2hlbWVTZXJ2ZXJUcnVzdEV2YWx1YXRp
b25SZXF1ZXN0ZWQpIHsKKyAgICBpZiAoY2hhbGxlbmdlLnByb3RlY3Rpb25TcGFjZSgpLmF1dGhl
bnRpY2F0aW9uU2NoZW1lKCkgPT0gUHJvdGVjdGlvblNwYWNlOjpBdXRoZW50aWNhdGlvblNjaGVt
ZTo6U2VydmVyVHJ1c3RFdmFsdWF0aW9uUmVxdWVzdGVkKSB7CiAgICAgICAgIG1fbmV0d29ya0xv
YWRDaGVja2VyLT5uZXR3b3JrUHJvY2VzcygpLmF1dGhlbnRpY2F0aW9uTWFuYWdlcigpLmRpZFJl
Y2VpdmVBdXRoZW50aWNhdGlvbkNoYWxsZW5nZShtX3Nlc3Npb25JRCwgbV9wYXJhbWV0ZXJzLndl
YlBhZ2VQcm94eUlELCAgbV9wYXJhbWV0ZXJzLnRvcE9yaWdpbiA/ICZtX3BhcmFtZXRlcnMudG9w
T3JpZ2luLT5kYXRhKCkgOiBudWxscHRyLCBjaGFsbGVuZ2UsIG5lZ290aWF0ZWRMZWdhY3lUTFMs
IFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvY29jb2EvTmV0d29ya1Nlc3Np
b25Db2NvYS5tbSBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvY29jb2EvTmV0d29ya1Nl
c3Npb25Db2NvYS5tbQppbmRleCA1MzlhOTI4NTRlN2ZhMDc4Yjc5YWRlMzc3ZWIzYWJiYTE4YzAx
Mzk2Li4yYzRmMDBiODU2YzliYWFmY2E4ZTZjODY4MDQ4OGFlMjg1ZTE3NTkzIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL2NvY29hL05ldHdvcmtTZXNzaW9uQ29jb2Eu
bW0KKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9jb2NvYS9OZXR3b3JrU2Vzc2lv
bkNvY29hLm1tCkBAIC0xNjE3LDcgKzE2MTcsNyBAQCBib29sIE5ldHdvcmtTZXNzaW9uQ29jb2E6
OmFsbG93c1NwZWNpZmljSFRUUFNDZXJ0aWZpY2F0ZUZvckhvc3QoY29uc3QgV2ViQ29yZTo6QQog
ICAgIGlmICghY2VydGlmaWNhdGVzKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAKLSAgICBib29s
IHJlcXVpcmVTZXJ2ZXJDZXJ0aWZpY2F0ZXMgPSBjaGFsbGVuZ2UucHJvdGVjdGlvblNwYWNlKCku
YXV0aGVudGljYXRpb25TY2hlbWUoKSA9PSBXZWJDb3JlOjpQcm90ZWN0aW9uU3BhY2VBdXRoZW50
aWNhdGlvblNjaGVtZTo6UHJvdGVjdGlvblNwYWNlQXV0aGVudGljYXRpb25TY2hlbWVTZXJ2ZXJU
cnVzdEV2YWx1YXRpb25SZXF1ZXN0ZWQ7CisgICAgYm9vbCByZXF1aXJlU2VydmVyQ2VydGlmaWNh
dGVzID0gY2hhbGxlbmdlLnByb3RlY3Rpb25TcGFjZSgpLmF1dGhlbnRpY2F0aW9uU2NoZW1lKCkg
PT0gV2ViQ29yZTo6UHJvdGVjdGlvblNwYWNlOjpBdXRoZW50aWNhdGlvblNjaGVtZTo6U2VydmVy
VHJ1c3RFdmFsdWF0aW9uUmVxdWVzdGVkOwogICAgIFJldGFpblB0cjxTZWNQb2xpY3lSZWY+IHBv
bGljeSA9IGFkb3B0Q0YoU2VjUG9saWN5Q3JlYXRlU1NMKHJlcXVpcmVTZXJ2ZXJDZXJ0aWZpY2F0
ZXMsIGhvc3QuY3JlYXRlQ0ZTdHJpbmcoKS5nZXQoKSkpOwogCiAgICAgU2VjVHJ1c3RSZWYgdHJ1
c3RSZWYgPSBudWxscHRyOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vz
cy9jdXJsL05ldHdvcmtEYXRhVGFza0N1cmwuY3BwIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJv
Y2Vzcy9jdXJsL05ldHdvcmtEYXRhVGFza0N1cmwuY3BwCmluZGV4IDNkYzY1ZmY4MmM5ZGE4OTJk
MjBjMzQ4ODZlNWExYzRkNzlkYWRlZjUuLjg3ZjdjZDk5ZGI5YTdhN2M0OTUxMjA2NmEzOWM3Mjli
NzA1Mzc2MDIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvY3VybC9O
ZXR3b3JrRGF0YVRhc2tDdXJsLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNz
L2N1cmwvTmV0d29ya0RhdGFUYXNrQ3VybC5jcHAKQEAgLTc1LDcgKzc1LDcgQEAgTmV0d29ya0Rh
dGFUYXNrQ3VybDo6TmV0d29ya0RhdGFUYXNrQ3VybChOZXR3b3JrU2Vzc2lvbiYgc2Vzc2lvbiwg
TmV0d29ya0RhdGFUYXMKICAgICBtX2N1cmxSZXF1ZXN0ID0gY3JlYXRlQ3VybFJlcXVlc3QoV1RG
TW92ZShyZXF1ZXN0KSk7CiAgICAgaWYgKCFtX2luaXRpYWxDcmVkZW50aWFsLmlzRW1wdHkoKSkg
ewogICAgICAgICBtX2N1cmxSZXF1ZXN0LT5zZXRVc2VyUGFzcyhtX2luaXRpYWxDcmVkZW50aWFs
LnVzZXIoKSwgbV9pbml0aWFsQ3JlZGVudGlhbC5wYXNzd29yZCgpKTsKLSAgICAgICAgbV9jdXJs
UmVxdWVzdC0+c2V0QXV0aGVudGljYXRpb25TY2hlbWUoUHJvdGVjdGlvblNwYWNlQXV0aGVudGlj
YXRpb25TY2hlbWVIVFRQQmFzaWMpOworICAgICAgICBtX2N1cmxSZXF1ZXN0LT5zZXRBdXRoZW50
aWNhdGlvblNjaGVtZShQcm90ZWN0aW9uU3BhY2U6OkF1dGhlbnRpY2F0aW9uOjpTY2hlbWVIVFRQ
QmFzaWMpOwogICAgIH0KICAgICBtX2N1cmxSZXF1ZXN0LT5zdGFydCgpOwogfQpAQCAtMzEzLDcg
KzMxMyw3IEBAIHZvaWQgTmV0d29ya0RhdGFUYXNrQ3VybDo6d2lsbFBlcmZvcm1IVFRQUmVkaXJl
Y3Rpb24oKQogICAgICAgICBtX2N1cmxSZXF1ZXN0ID0gY3JlYXRlQ3VybFJlcXVlc3QoV1RGTW92
ZShyZXF1ZXN0Q29weSkpOwogICAgICAgICBpZiAoZGlkQ2hhbmdlQ3JlZGVudGlhbCAmJiAhbV9p
bml0aWFsQ3JlZGVudGlhbC5pc0VtcHR5KCkpIHsKICAgICAgICAgICAgIG1fY3VybFJlcXVlc3Qt
PnNldFVzZXJQYXNzKG1faW5pdGlhbENyZWRlbnRpYWwudXNlcigpLCBtX2luaXRpYWxDcmVkZW50
aWFsLnBhc3N3b3JkKCkpOwotICAgICAgICAgICAgbV9jdXJsUmVxdWVzdC0+c2V0QXV0aGVudGlj
YXRpb25TY2hlbWUoUHJvdGVjdGlvblNwYWNlQXV0aGVudGljYXRpb25TY2hlbWVIVFRQQmFzaWMp
OworICAgICAgICAgICAgbV9jdXJsUmVxdWVzdC0+c2V0QXV0aGVudGljYXRpb25TY2hlbWUoUHJv
dGVjdGlvblNwYWNlOjpBdXRoZW50aWNhdGlvblNjaGVtZTo6SFRUUEJhc2ljKTsKICAgICAgICAg
fQogICAgICAgICBtX2N1cmxSZXF1ZXN0LT5zdGFydCgpOwogCkBAIC00MjcsNyArNDI3LDcgQEAg
dm9pZCBOZXR3b3JrRGF0YVRhc2tDdXJsOjpyZXN0YXJ0V2l0aENyZWRlbnRpYWwoY29uc3QgUHJv
dGVjdGlvblNwYWNlJiBwcm90ZWN0aW8KICAgICBBU1NFUlQobV9jdXJsUmVxdWVzdCk7CiAKICAg
ICBhdXRvIHByZXZpb3VzUmVxdWVzdCA9IG1fY3VybFJlcXVlc3QtPnJlc291cmNlUmVxdWVzdCgp
OwotICAgIGF1dG8gc2hvdWxkRGlzYWJsZVNlcnZlclRydXN0RXZhbHVhdGlvbiA9IHByb3RlY3Rp
b25TcGFjZS5hdXRoZW50aWNhdGlvblNjaGVtZSgpID09IFByb3RlY3Rpb25TcGFjZUF1dGhlbnRp
Y2F0aW9uU2NoZW1lU2VydmVyVHJ1c3RFdmFsdWF0aW9uUmVxdWVzdGVkIHx8IG1fY3VybFJlcXVl
c3QtPmlzU2VydmVyVHJ1c3RFdmFsdWF0aW9uRGlzYWJsZWQoKTsKKyAgICBhdXRvIHNob3VsZERp
c2FibGVTZXJ2ZXJUcnVzdEV2YWx1YXRpb24gPSBwcm90ZWN0aW9uU3BhY2UuYXV0aGVudGljYXRp
b25TY2hlbWUoKSA9PSBQcm90ZWN0aW9uU3BhY2U6OkF1dGhlbnRpY2F0aW9uU2NoZW1lOjpTZXJ2
ZXJUcnVzdEV2YWx1YXRpb25SZXF1ZXN0ZWQgfHwgbV9jdXJsUmVxdWVzdC0+aXNTZXJ2ZXJUcnVz
dEV2YWx1YXRpb25EaXNhYmxlZCgpOwogICAgIG1fY3VybFJlcXVlc3QtPmNhbmNlbCgpOwogCiAg
ICAgbV9jdXJsUmVxdWVzdCA9IGNyZWF0ZUN1cmxSZXF1ZXN0KFdURk1vdmUocHJldmlvdXNSZXF1
ZXN0KSwgUmVxdWVzdFN0YXR1czo6UmV1c2VkUmVxdWVzdCk7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L05ldHdvcmtQcm9jZXNzL3NvdXAvTmV0d29ya0RhdGFUYXNrU291cC5jcHAgYi9Tb3Vy
Y2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL3NvdXAvTmV0d29ya0RhdGFUYXNrU291cC5jcHAKaW5k
ZXggMDljN2Q0M2M1NThlYTYzNGRmMTUyMTYxNDdlZmM5ZTUxNDM3OTY2Zi4uNjBhNDljNmQ0MDRj
NTI1NjNkODdmYzJjZDFjYjIyNDQ0NjcxZDFjZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9O
ZXR3b3JrUHJvY2Vzcy9zb3VwL05ldHdvcmtEYXRhVGFza1NvdXAuY3BwCisrKyBiL1NvdXJjZS9X
ZWJLaXQvTmV0d29ya1Byb2Nlc3Mvc291cC9OZXR3b3JrRGF0YVRhc2tTb3VwLmNwcApAQCAtNjg4
LDE2ICs2ODgsMTYgQEAgc3RhdGljIGlubGluZSBib29sIGlzQXV0aGVudGljYXRpb25GYWlsdXJl
U3RhdHVzQ29kZShpbnQgaHR0cFN0YXR1c0NvZGUpCiB2b2lkIE5ldHdvcmtEYXRhVGFza1NvdXA6
OmNvbXBsZXRlQXV0aGVudGljYXRpb24oY29uc3QgQXV0aGVudGljYXRpb25DaGFsbGVuZ2UmIGNo
YWxsZW5nZSwgY29uc3QgQ3JlZGVudGlhbCYgY3JlZGVudGlhbCkKIHsKICAgICBzd2l0Y2ggKGNo
YWxsZW5nZS5wcm90ZWN0aW9uU3BhY2UoKS5hdXRoZW50aWNhdGlvblNjaGVtZSgpKSB7Ci0gICAg
Y2FzZSBQcm90ZWN0aW9uU3BhY2VBdXRoZW50aWNhdGlvblNjaGVtZURlZmF1bHQ6Ci0gICAgY2Fz
ZSBQcm90ZWN0aW9uU3BhY2VBdXRoZW50aWNhdGlvblNjaGVtZUhUVFBCYXNpYzoKLSAgICBjYXNl
IFByb3RlY3Rpb25TcGFjZUF1dGhlbnRpY2F0aW9uU2NoZW1lSFRUUERpZ2VzdDoKLSAgICBjYXNl
IFByb3RlY3Rpb25TcGFjZUF1dGhlbnRpY2F0aW9uU2NoZW1lSFRNTEZvcm06Ci0gICAgY2FzZSBQ
cm90ZWN0aW9uU3BhY2VBdXRoZW50aWNhdGlvblNjaGVtZU5UTE06Ci0gICAgY2FzZSBQcm90ZWN0
aW9uU3BhY2VBdXRoZW50aWNhdGlvblNjaGVtZU5lZ290aWF0ZToKLSAgICBjYXNlIFByb3RlY3Rp
b25TcGFjZUF1dGhlbnRpY2F0aW9uU2NoZW1lT0F1dGg6CisgICAgY2FzZSBQcm90ZWN0aW9uU3Bh
Y2U6OkF1dGhlbnRpY2F0aW9uU2NoZW1lOjpEZWZhdWx0OgorICAgIGNhc2UgUHJvdGVjdGlvblNw
YWNlOjpBdXRoZW50aWNhdGlvblNjaGVtZTo6SFRUUEJhc2ljOgorICAgIGNhc2UgUHJvdGVjdGlv
blNwYWNlOjpBdXRoZW50aWNhdGlvblNjaGVtZTo6SFRUUERpZ2VzdDoKKyAgICBjYXNlIFByb3Rl
Y3Rpb25TcGFjZTo6QXV0aGVudGljYXRpb25TY2hlbWU6OkhUTUxGb3JtOgorICAgIGNhc2UgUHJv
dGVjdGlvblNwYWNlOjpBdXRoZW50aWNhdGlvblNjaGVtZTo6TlRMTToKKyAgICBjYXNlIFByb3Rl
Y3Rpb25TcGFjZTo6QXV0aGVudGljYXRpb25TY2hlbWU6Ok5lZ290aWF0ZToKKyAgICBjYXNlIFBy
b3RlY3Rpb25TcGFjZTo6QXV0aGVudGljYXRpb25TY2hlbWU6Ok9BdXRoOgogICAgICAgICBzb3Vw
X2F1dGhfYXV0aGVudGljYXRlKGNoYWxsZW5nZS5zb3VwQXV0aCgpLCBjcmVkZW50aWFsLnVzZXIo
KS51dGY4KCkuZGF0YSgpLCBjcmVkZW50aWFsLnBhc3N3b3JkKCkudXRmOCgpLmRhdGEoKSk7CiAg
ICAgICAgIGJyZWFrOwotICAgIGNhc2UgUHJvdGVjdGlvblNwYWNlQXV0aGVudGljYXRpb25TY2hl
bWVDbGllbnRDZXJ0aWZpY2F0ZVBJTlJlcXVlc3RlZDogeworICAgIGNhc2UgUHJvdGVjdGlvblNw
YWNlOjpBdXRoZW50aWNhdGlvblNjaGVtZTo6Q2xpZW50Q2VydGlmaWNhdGVQSU5SZXF1ZXN0ZWQ6
IHsKICNpZiBVU0UoU09VUDIpCiAgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwogI2Vsc2UK
QEAgLTcwNywxNSArNzA3LDE1IEBAIHZvaWQgTmV0d29ya0RhdGFUYXNrU291cDo6Y29tcGxldGVB
dXRoZW50aWNhdGlvbihjb25zdCBBdXRoZW50aWNhdGlvbkNoYWxsZW5nZSYKICNlbmRpZgogICAg
ICAgICBicmVhazsKICAgICB9Ci0gICAgY2FzZSBQcm90ZWN0aW9uU3BhY2VBdXRoZW50aWNhdGlv
blNjaGVtZUNsaWVudENlcnRpZmljYXRlUmVxdWVzdGVkOgorICAgIGNhc2UgUHJvdGVjdGlvblNw
YWNlOjpBdXRoZW50aWNhdGlvblNjaGVtZTo6Q2xpZW50Q2VydGlmaWNhdGVSZXF1ZXN0ZWQ6CiAj
aWYgVVNFKFNPVVAyKQogICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKICNlbHNlCiAgICAg
ICAgIHNvdXBfbWVzc2FnZV9zZXRfdGxzX2NsaWVudF9jZXJ0aWZpY2F0ZShtX3NvdXBNZXNzYWdl
LmdldCgpLCBjcmVkZW50aWFsLmNlcnRpZmljYXRlKCkpOwogI2VuZGlmCiAgICAgICAgIGJyZWFr
OwotICAgIGNhc2UgUHJvdGVjdGlvblNwYWNlQXV0aGVudGljYXRpb25TY2hlbWVTZXJ2ZXJUcnVz
dEV2YWx1YXRpb25SZXF1ZXN0ZWQ6Ci0gICAgY2FzZSBQcm90ZWN0aW9uU3BhY2VBdXRoZW50aWNh
dGlvblNjaGVtZVVua25vd246CisgICAgY2FzZSBQcm90ZWN0aW9uU3BhY2U6OkF1dGhlbnRpY2F0
aW9uU2NoZW1lOjpTZXJ2ZXJUcnVzdEV2YWx1YXRpb25SZXF1ZXN0ZWQ6CisgICAgY2FzZSBQcm90
ZWN0aW9uU3BhY2U6OkF1dGhlbnRpY2F0aW9uU2NoZW1lOjpVbmtub3duOgogICAgICAgICBicmVh
azsKICAgICB9CiB9CkBAIC03MjMsMzEgKzcyMywzMSBAQCB2b2lkIE5ldHdvcmtEYXRhVGFza1Nv
dXA6OmNvbXBsZXRlQXV0aGVudGljYXRpb24oY29uc3QgQXV0aGVudGljYXRpb25DaGFsbGVuZ2Um
CiB2b2lkIE5ldHdvcmtEYXRhVGFza1NvdXA6OmNhbmNlbEF1dGhlbnRpY2F0aW9uKGNvbnN0IEF1
dGhlbnRpY2F0aW9uQ2hhbGxlbmdlJiBjaGFsbGVuZ2UpCiB7CiAgICAgc3dpdGNoIChjaGFsbGVu
Z2UucHJvdGVjdGlvblNwYWNlKCkuYXV0aGVudGljYXRpb25TY2hlbWUoKSkgewotICAgIGNhc2Ug
UHJvdGVjdGlvblNwYWNlQXV0aGVudGljYXRpb25TY2hlbWVEZWZhdWx0OgotICAgIGNhc2UgUHJv
dGVjdGlvblNwYWNlQXV0aGVudGljYXRpb25TY2hlbWVIVFRQQmFzaWM6Ci0gICAgY2FzZSBQcm90
ZWN0aW9uU3BhY2VBdXRoZW50aWNhdGlvblNjaGVtZUhUVFBEaWdlc3Q6Ci0gICAgY2FzZSBQcm90
ZWN0aW9uU3BhY2VBdXRoZW50aWNhdGlvblNjaGVtZUhUTUxGb3JtOgotICAgIGNhc2UgUHJvdGVj
dGlvblNwYWNlQXV0aGVudGljYXRpb25TY2hlbWVOVExNOgotICAgIGNhc2UgUHJvdGVjdGlvblNw
YWNlQXV0aGVudGljYXRpb25TY2hlbWVOZWdvdGlhdGU6Ci0gICAgY2FzZSBQcm90ZWN0aW9uU3Bh
Y2VBdXRoZW50aWNhdGlvblNjaGVtZU9BdXRoOgorICAgIGNhc2UgUHJvdGVjdGlvblNwYWNlOjpB
dXRoZW50aWNhdGlvblNjaGVtZTo6RGVmYXVsdDoKKyAgICBjYXNlIFByb3RlY3Rpb25TcGFjZTo6
QXV0aGVudGljYXRpb25TY2hlbWU6OkhUVFBCYXNpYzoKKyAgICBjYXNlIFByb3RlY3Rpb25TcGFj
ZTo6QXV0aGVudGljYXRpb25TY2hlbWU6OkhUVFBEaWdlc3Q6CisgICAgY2FzZSBQcm90ZWN0aW9u
U3BhY2U6OkF1dGhlbnRpY2F0aW9uU2NoZW1lOjpIVE1MRm9ybToKKyAgICBjYXNlIFByb3RlY3Rp
b25TcGFjZTo6QXV0aGVudGljYXRpb25TY2hlbWU6Ok5UTE06CisgICAgY2FzZSBQcm90ZWN0aW9u
U3BhY2U6OkF1dGhlbnRpY2F0aW9uU2NoZW1lOjpOZWdvdGlhdGU6CisgICAgY2FzZSBQcm90ZWN0
aW9uU3BhY2U6OkF1dGhlbnRpY2F0aW9uU2NoZW1lOjpPQXV0aDoKICAgICAgICAgc291cF9hdXRo
X2NhbmNlbChjaGFsbGVuZ2Uuc291cEF1dGgoKSk7CiAgICAgICAgIGJyZWFrOwotICAgIGNhc2Ug
UHJvdGVjdGlvblNwYWNlQXV0aGVudGljYXRpb25TY2hlbWVDbGllbnRDZXJ0aWZpY2F0ZVBJTlJl
cXVlc3RlZDoKKyAgICBjYXNlIFByb3RlY3Rpb25TcGFjZTo6QXV0aGVudGljYXRpb25TY2hlbWU6
OkNsaWVudENlcnRpZmljYXRlUElOUmVxdWVzdGVkOgogI2lmIFVTRShTT1VQMikKICAgICAgICAg
QVNTRVJUX05PVF9SRUFDSEVEKCk7CiAjZWxzZQogICAgICAgICBzb3VwX21lc3NhZ2VfdGxzX2Ns
aWVudF9jZXJ0aWZpY2F0ZV9wYXNzd29yZF9yZXF1ZXN0X2NvbXBsZXRlKG1fc291cE1lc3NhZ2Uu
Z2V0KCkpOwogI2VuZGlmCiAgICAgICAgIGJyZWFrOwotICAgIGNhc2UgUHJvdGVjdGlvblNwYWNl
QXV0aGVudGljYXRpb25TY2hlbWVDbGllbnRDZXJ0aWZpY2F0ZVJlcXVlc3RlZDoKKyAgICBjYXNl
IFByb3RlY3Rpb25TcGFjZTo6QXV0aGVudGljYXRpb25TY2hlbWU6OkNsaWVudENlcnRpZmljYXRl
UmVxdWVzdGVkOgogI2lmIFVTRShTT1VQMikKICAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7
CiAjZWxzZQogICAgICAgICBzb3VwX21lc3NhZ2Vfc2V0X3Rsc19jbGllbnRfY2VydGlmaWNhdGUo
bV9zb3VwTWVzc2FnZS5nZXQoKSwgbnVsbHB0cik7CiAjZW5kaWYKICAgICAgICAgYnJlYWs7Ci0g
ICAgY2FzZSBQcm90ZWN0aW9uU3BhY2VBdXRoZW50aWNhdGlvblNjaGVtZVNlcnZlclRydXN0RXZh
bHVhdGlvblJlcXVlc3RlZDoKLSAgICBjYXNlIFByb3RlY3Rpb25TcGFjZUF1dGhlbnRpY2F0aW9u
U2NoZW1lVW5rbm93bjoKKyAgICBjYXNlIFByb3RlY3Rpb25TcGFjZTo6QXV0aGVudGljYXRpb25T
Y2hlbWU6OlNlcnZlclRydXN0RXZhbHVhdGlvblJlcXVlc3RlZDoKKyAgICBjYXNlIFByb3RlY3Rp
b25TcGFjZTo6QXV0aGVudGljYXRpb25TY2hlbWU6OlVua25vd246CiAgICAgICAgIGJyZWFrOwog
ICAgIH0KIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0F1dGhlbnRpY2F0aW9u
L0F1dGhlbnRpY2F0aW9uTWFuYWdlci5jcHAgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9BdXRoZW50
aWNhdGlvbi9BdXRoZW50aWNhdGlvbk1hbmFnZXIuY3BwCmluZGV4IGY2MTEzNTUxNzU3OWI2YTc4
ZDY3Yjc2ODdkZTU0YzZjMmQzZDhkNzguLmEzOWMxZTE1ZjhjZjNhMDY0OGY2ZDhlMWViYWMzMzQz
N2JiMDNjNjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0F1dGhlbnRpY2F0aW9u
L0F1dGhlbnRpY2F0aW9uTWFuYWdlci5jcHAKKysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQvQXV0
aGVudGljYXRpb24vQXV0aGVudGljYXRpb25NYW5hZ2VyLmNwcApAQCAtNDUsNyArNDUsNyBAQCB1
c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKIHN0YXRpYyBib29sIGNhbkNvYWxlc2NlQ2hhbGxlbmdl
KGNvbnN0IFdlYkNvcmU6OkF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlJiBjaGFsbGVuZ2UpCiB7CiAg
ICAgLy8gRG8gbm90IGNvYWxlc2NlIHNlcnZlciB0cnVzdCBldmFsdWF0aW9uIHJlcXVlc3RzIGJl
Y2F1c2UgUHJvdGVjdGlvblNwYWNlIGNvbXBhcmlzb24gZG9lcyBub3QgZXZhbHVhdGUgc2VydmVy
IHRydXN0IChlLmcuIGNlcnRpZmljYXRlKS4KLSAgICByZXR1cm4gY2hhbGxlbmdlLnByb3RlY3Rp
b25TcGFjZSgpLmF1dGhlbnRpY2F0aW9uU2NoZW1lKCkgIT0gUHJvdGVjdGlvblNwYWNlQXV0aGVu
dGljYXRpb25TY2hlbWVTZXJ2ZXJUcnVzdEV2YWx1YXRpb25SZXF1ZXN0ZWQ7CisgICAgcmV0dXJu
IGNoYWxsZW5nZS5wcm90ZWN0aW9uU3BhY2UoKS5hdXRoZW50aWNhdGlvblNjaGVtZSgpICE9IFBy
b3RlY3Rpb25TcGFjZTo6QXV0aGVudGljYXRpb25TY2hlbWU6OlNlcnZlclRydXN0RXZhbHVhdGlv
blJlcXVlc3RlZDsKIH0KIAogY29uc3QgY2hhciogQXV0aGVudGljYXRpb25NYW5hZ2VyOjpzdXBw
bGVtZW50TmFtZSgpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJDb3JlQXJn
dW1lbnRDb2RlcnMuY3BwIGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViQ29yZUFyZ3VtZW50Q29k
ZXJzLmNwcAppbmRleCBhNjllYmM1OTYzMjU5ZWE0YWQ0NTE3MTViNzcxY2RkMmRiNjQ0MzE3Li5j
ODk4Njg3YjIyNmNjZTRiNGYzYjhiMWE4NWNiZWM3OTU4YjY3YWI2IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L1NoYXJlZC9XZWJDb3JlQXJndW1lbnRDb2RlcnMuY3BwCisrKyBiL1NvdXJjZS9X
ZWJLaXQvU2hhcmVkL1dlYkNvcmVBcmd1bWVudENvZGVycy5jcHAKQEAgLTk2MiwxMSArOTYyLDEx
IEBAIGJvb2wgQXJndW1lbnRDb2RlcjxQcm90ZWN0aW9uU3BhY2U+OjpkZWNvZGUoRGVjb2RlciYg
ZGVjb2RlciwgUHJvdGVjdGlvblNwYWNlJiBzCiAgICAgaWYgKCFkZWNvZGVyLmRlY29kZShyZWFs
bSkpCiAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICAKLSAgICBQcm90ZWN0aW9uU3BhY2VBdXRo
ZW50aWNhdGlvblNjaGVtZSBhdXRoZW50aWNhdGlvblNjaGVtZTsKKyAgICBQcm90ZWN0aW9uU3Bh
Y2U6OkF1dGhlbnRpY2F0aW9uU2NoZW1lIGF1dGhlbnRpY2F0aW9uU2NoZW1lOwogICAgIGlmICgh
ZGVjb2Rlci5kZWNvZGUoYXV0aGVudGljYXRpb25TY2hlbWUpKQogICAgICAgICByZXR1cm4gZmFs
c2U7CiAKLSAgICBQcm90ZWN0aW9uU3BhY2VTZXJ2ZXJUeXBlIHNlcnZlclR5cGU7CisgICAgUHJv
dGVjdGlvblNwYWNlOjpTZXJ2ZXJUeXBlIHNlcnZlclR5cGU7CiAgICAgaWYgKCFkZWNvZGVyLmRl
Y29kZShzZXJ2ZXJUeXBlKSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwogCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L1NoYXJlZC9jdXJsL1dlYkNvcmVBcmd1bWVudENvZGVyc0N1cmwuY3BwIGIv
U291cmNlL1dlYktpdC9TaGFyZWQvY3VybC9XZWJDb3JlQXJndW1lbnRDb2RlcnNDdXJsLmNwcApp
bmRleCA2ZmM1NDQzNDgyNTNmMTA4NTJhYWRiNTdlZTJiYmU0YTEwYTliZjdmLi5hYjY0ODNiODkx
ZGUyODk1NmExMGZiZTU2ZjQyOGUxOWQ4M2RkMDJlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L1NoYXJlZC9jdXJsL1dlYkNvcmVBcmd1bWVudENvZGVyc0N1cmwuY3BwCisrKyBiL1NvdXJjZS9X
ZWJLaXQvU2hhcmVkL2N1cmwvV2ViQ29yZUFyZ3VtZW50Q29kZXJzQ3VybC5jcHAKQEAgLTE2Mywx
MSArMTYzLDExIEBAIGJvb2wgQXJndW1lbnRDb2RlcjxQcm90ZWN0aW9uU3BhY2U+OjpkZWNvZGVQ
bGF0Zm9ybURhdGEoRGVjb2RlciYgZGVjb2RlciwgUHJvdGVjCiAgICAgaWYgKCFkZWNvZGVyLmRl
Y29kZShyZWFsbSkpCiAgICAgICAgIHJldHVybiBmYWxzZTsKIAotICAgIFByb3RlY3Rpb25TcGFj
ZUF1dGhlbnRpY2F0aW9uU2NoZW1lIGF1dGhlbnRpY2F0aW9uU2NoZW1lOworICAgIFByb3RlY3Rp
b25TcGFjZTo6QXV0aGVudGljYXRpb25TY2hlbWUgYXV0aGVudGljYXRpb25TY2hlbWU7CiAgICAg
aWYgKCFkZWNvZGVyLmRlY29kZShhdXRoZW50aWNhdGlvblNjaGVtZSkpCiAgICAgICAgIHJldHVy
biBmYWxzZTsKIAotICAgIFByb3RlY3Rpb25TcGFjZVNlcnZlclR5cGUgc2VydmVyVHlwZTsKKyAg
ICBQcm90ZWN0aW9uU3BhY2U6OlNlcnZlclR5cGUgc2VydmVyVHlwZTsKICAgICBpZiAoIWRlY29k
ZXIuZGVjb2RlKHNlcnZlclR5cGUpKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9DL1dLQVBJQ2FzdC5oIGIvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvQVBJL0MvV0tBUElDYXN0LmgKaW5kZXggNTEyYjJiYzY5NTI0Yjc5OTAx
ODU2NTJjYzEzNmNkNWEzODRhNjZjYy4uNTZlMDg0NDg4NzI5OWU4MGFjNjk1NWIwZTkzMmNhYTUw
ZjVkNGE5MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0MvV0tBUElD
YXN0LmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0MvV0tBUElDYXN0LmgKQEAg
LTI5MCw0OSArMjkwLDQ5IEBAIGlubGluZSBXZWJDb3JlOjpFZGl0YWJsZUxpbmtCZWhhdmlvciB0
b0VkaXRhYmxlTGlua0JlaGF2aW9yKFdLRWRpdGFibGVMaW5rQmVoYXZpCiAgICAgcmV0dXJuIFdl
YkNvcmU6OkVkaXRhYmxlTGlua0JlaGF2aW9yOjpOZXZlckxpdmU7CiB9CiAgICAgCi1pbmxpbmUg
V0tQcm90ZWN0aW9uU3BhY2VTZXJ2ZXJUeXBlIHRvQVBJKFdlYkNvcmU6OlByb3RlY3Rpb25TcGFj
ZVNlcnZlclR5cGUgdHlwZSkKK2lubGluZSBXS1Byb3RlY3Rpb25TcGFjZVNlcnZlclR5cGUgdG9B
UEkoV2ViQ29yZTo6UHJvdGVjdGlvblNwYWNlOjpTZXJ2ZXJUeXBlIHR5cGUpCiB7CiAgICAgc3dp
dGNoICh0eXBlKSB7Ci0gICAgY2FzZSBXZWJDb3JlOjpQcm90ZWN0aW9uU3BhY2VTZXJ2ZXJIVFRQ
OgorICAgIGNhc2UgV2ViQ29yZTo6UHJvdGVjdGlvblNwYWNlOjpTZXJ2ZXJUeXBlOjpIVFRQOgog
ICAgICAgICByZXR1cm4ga1dLUHJvdGVjdGlvblNwYWNlU2VydmVyVHlwZUhUVFA7Ci0gICAgY2Fz
ZSBXZWJDb3JlOjpQcm90ZWN0aW9uU3BhY2VTZXJ2ZXJIVFRQUzoKKyAgICBjYXNlIFdlYkNvcmU6
OlByb3RlY3Rpb25TcGFjZTo6U2VydmVyVHlwZTo6SFRUUFM6CiAgICAgICAgIHJldHVybiBrV0tQ
cm90ZWN0aW9uU3BhY2VTZXJ2ZXJUeXBlSFRUUFM7Ci0gICAgY2FzZSBXZWJDb3JlOjpQcm90ZWN0
aW9uU3BhY2VTZXJ2ZXJGVFA6CisgICAgY2FzZSBXZWJDb3JlOjpQcm90ZWN0aW9uU3BhY2U6OlNl
cnZlclR5cGU6OkZUUDoKICAgICAgICAgcmV0dXJuIGtXS1Byb3RlY3Rpb25TcGFjZVNlcnZlclR5
cGVGVFA7Ci0gICAgY2FzZSBXZWJDb3JlOjpQcm90ZWN0aW9uU3BhY2VTZXJ2ZXJGVFBTOgorICAg
IGNhc2UgV2ViQ29yZTo6UHJvdGVjdGlvblNwYWNlOjpTZXJ2ZXJUeXBlOjpGVFBTOgogICAgICAg
ICByZXR1cm4ga1dLUHJvdGVjdGlvblNwYWNlU2VydmVyVHlwZUZUUFM7Ci0gICAgY2FzZSBXZWJD
b3JlOjpQcm90ZWN0aW9uU3BhY2VQcm94eUhUVFA6CisgICAgY2FzZSBXZWJDb3JlOjpQcm90ZWN0
aW9uU3BhY2U6OlNlcnZlclR5cGU6OlByb3h5SFRUUDoKICAgICAgICAgcmV0dXJuIGtXS1Byb3Rl
Y3Rpb25TcGFjZVByb3h5VHlwZUhUVFA7Ci0gICAgY2FzZSBXZWJDb3JlOjpQcm90ZWN0aW9uU3Bh
Y2VQcm94eUhUVFBTOgorICAgIGNhc2UgV2ViQ29yZTo6UHJvdGVjdGlvblNwYWNlOjpTZXJ2ZXJU
eXBlOjpQcm94eUhUVFBTOgogICAgICAgICByZXR1cm4ga1dLUHJvdGVjdGlvblNwYWNlUHJveHlU
eXBlSFRUUFM7Ci0gICAgY2FzZSBXZWJDb3JlOjpQcm90ZWN0aW9uU3BhY2VQcm94eUZUUDoKKyAg
ICBjYXNlIFdlYkNvcmU6OlByb3RlY3Rpb25TcGFjZTo6U2VydmVyVHlwZTo6UHJveHlGVFA6CiAg
ICAgICAgIHJldHVybiBrV0tQcm90ZWN0aW9uU3BhY2VQcm94eVR5cGVGVFA7Ci0gICAgY2FzZSBX
ZWJDb3JlOjpQcm90ZWN0aW9uU3BhY2VQcm94eVNPQ0tTOgorICAgIGNhc2UgV2ViQ29yZTo6UHJv
dGVjdGlvblNwYWNlOjpTZXJ2ZXJUeXBlOjpQcm94eVNPQ0tTOgogICAgICAgICByZXR1cm4ga1dL
UHJvdGVjdGlvblNwYWNlUHJveHlUeXBlU09DS1M7CiAgICAgfQogICAgIHJldHVybiBrV0tQcm90
ZWN0aW9uU3BhY2VTZXJ2ZXJUeXBlSFRUUDsKIH0KIAotaW5saW5lIFdLUHJvdGVjdGlvblNwYWNl
QXV0aGVudGljYXRpb25TY2hlbWUgdG9BUEkoV2ViQ29yZTo6UHJvdGVjdGlvblNwYWNlQXV0aGVu
dGljYXRpb25TY2hlbWUgdHlwZSkKK2lubGluZSBXS1Byb3RlY3Rpb25TcGFjZUF1dGhlbnRpY2F0
aW9uU2NoZW1lIHRvQVBJKFdlYkNvcmU6OlByb3RlY3Rpb25TcGFjZTo6QXV0aGVudGljYXRpb25T
Y2hlbWUgdHlwZSkKIHsKICAgICBzd2l0Y2ggKHR5cGUpIHsKLSAgICBjYXNlIFdlYkNvcmU6OlBy
b3RlY3Rpb25TcGFjZUF1dGhlbnRpY2F0aW9uU2NoZW1lRGVmYXVsdDoKKyAgICBjYXNlIFdlYkNv
cmU6OlByb3RlY3Rpb25TcGFjZTo6QXV0aGVudGljYXRpb25TY2hlbWU6OkRlZmF1bHQ6CiAgICAg
ICAgIHJldHVybiBrV0tQcm90ZWN0aW9uU3BhY2VBdXRoZW50aWNhdGlvblNjaGVtZURlZmF1bHQ7
Ci0gICAgY2FzZSBXZWJDb3JlOjpQcm90ZWN0aW9uU3BhY2VBdXRoZW50aWNhdGlvblNjaGVtZUhU
VFBCYXNpYzoKKyAgICBjYXNlIFdlYkNvcmU6OlByb3RlY3Rpb25TcGFjZTo6QXV0aGVudGljYXRp
b25TY2hlbWU6OkhUVFBCYXNpYzoKICAgICAgICAgcmV0dXJuIGtXS1Byb3RlY3Rpb25TcGFjZUF1
dGhlbnRpY2F0aW9uU2NoZW1lSFRUUEJhc2ljOwotICAgIGNhc2UgV2ViQ29yZTo6UHJvdGVjdGlv
blNwYWNlQXV0aGVudGljYXRpb25TY2hlbWVIVFRQRGlnZXN0OgorICAgIGNhc2UgV2ViQ29yZTo6
UHJvdGVjdGlvblNwYWNlOjpBdXRoZW50aWNhdGlvblNjaGVtZTo6SFRUUERpZ2VzdDoKICAgICAg
ICAgcmV0dXJuIGtXS1Byb3RlY3Rpb25TcGFjZUF1dGhlbnRpY2F0aW9uU2NoZW1lSFRUUERpZ2Vz
dDsKLSAgICBjYXNlIFdlYkNvcmU6OlByb3RlY3Rpb25TcGFjZUF1dGhlbnRpY2F0aW9uU2NoZW1l
SFRNTEZvcm06CisgICAgY2FzZSBXZWJDb3JlOjpQcm90ZWN0aW9uU3BhY2U6OkF1dGhlbnRpY2F0
aW9uU2NoZW1lOjpIVE1MRm9ybToKICAgICAgICAgcmV0dXJuIGtXS1Byb3RlY3Rpb25TcGFjZUF1
dGhlbnRpY2F0aW9uU2NoZW1lSFRNTEZvcm07Ci0gICAgY2FzZSBXZWJDb3JlOjpQcm90ZWN0aW9u
U3BhY2VBdXRoZW50aWNhdGlvblNjaGVtZU5UTE06CisgICAgY2FzZSBXZWJDb3JlOjpQcm90ZWN0
aW9uU3BhY2U6OkF1dGhlbnRpY2F0aW9uU2NoZW1lOjpOVExNOgogICAgICAgICByZXR1cm4ga1dL
UHJvdGVjdGlvblNwYWNlQXV0aGVudGljYXRpb25TY2hlbWVOVExNOwotICAgIGNhc2UgV2ViQ29y
ZTo6UHJvdGVjdGlvblNwYWNlQXV0aGVudGljYXRpb25TY2hlbWVOZWdvdGlhdGU6CisgICAgY2Fz
ZSBXZWJDb3JlOjpQcm90ZWN0aW9uU3BhY2U6OkF1dGhlbnRpY2F0aW9uU2NoZW1lOjpOZWdvdGlh
dGU6CiAgICAgICAgIHJldHVybiBrV0tQcm90ZWN0aW9uU3BhY2VBdXRoZW50aWNhdGlvblNjaGVt
ZU5lZ290aWF0ZTsKLSAgICBjYXNlIFdlYkNvcmU6OlByb3RlY3Rpb25TcGFjZUF1dGhlbnRpY2F0
aW9uU2NoZW1lQ2xpZW50Q2VydGlmaWNhdGVSZXF1ZXN0ZWQ6CisgICAgY2FzZSBXZWJDb3JlOjpQ
cm90ZWN0aW9uU3BhY2U6OkF1dGhlbnRpY2F0aW9uU2NoZW1lOjpDbGllbnRDZXJ0aWZpY2F0ZVJl
cXVlc3RlZDoKICAgICAgICAgcmV0dXJuIGtXS1Byb3RlY3Rpb25TcGFjZUF1dGhlbnRpY2F0aW9u
U2NoZW1lQ2xpZW50Q2VydGlmaWNhdGVSZXF1ZXN0ZWQ7Ci0gICAgY2FzZSBXZWJDb3JlOjpQcm90
ZWN0aW9uU3BhY2VBdXRoZW50aWNhdGlvblNjaGVtZVNlcnZlclRydXN0RXZhbHVhdGlvblJlcXVl
c3RlZDoKKyAgICBjYXNlIFdlYkNvcmU6OlByb3RlY3Rpb25TcGFjZTo6QXV0aGVudGljYXRpb25T
Y2hlbWU6OlNlcnZlclRydXN0RXZhbHVhdGlvblJlcXVlc3RlZDoKICAgICAgICAgcmV0dXJuIGtX
S1Byb3RlY3Rpb25TcGFjZUF1dGhlbnRpY2F0aW9uU2NoZW1lU2VydmVyVHJ1c3RFdmFsdWF0aW9u
UmVxdWVzdGVkOwotICAgIGNhc2UgV2ViQ29yZTo6UHJvdGVjdGlvblNwYWNlQXV0aGVudGljYXRp
b25TY2hlbWVPQXV0aDoKKyAgICBjYXNlIFdlYkNvcmU6OlByb3RlY3Rpb25TcGFjZTo6QXV0aGVu
dGljYXRpb25TY2hlbWU6Ok9BdXRoOgogICAgICAgICByZXR1cm4ga1dLUHJvdGVjdGlvblNwYWNl
QXV0aGVudGljYXRpb25TY2hlbWVPQXV0aDsKICAgICBkZWZhdWx0OgogICAgICAgICByZXR1cm4g
a1dLUHJvdGVjdGlvblNwYWNlQXV0aGVudGljYXRpb25TY2hlbWVVbmtub3duOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2dsaWIvV2ViS2l0QXV0aGVudGljYXRpb25S
ZXF1ZXN0LmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9nbGliL1dlYktpdEF1dGhl
bnRpY2F0aW9uUmVxdWVzdC5jcHAKaW5kZXggY2U0MzI5YmM4OWU3YWIwNmQ3YzI0YWVmMTVkNzZi
OTNlZDM0MDBjNi4uNTE3NzU3NmI0ZWVlZjk2ZjIzNmUyZWE0YmM2MGU5YzkyYjE4NjNhMyAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2dsaWIvV2ViS2l0QXV0aGVudGlj
YXRpb25SZXF1ZXN0LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvZ2xpYi9X
ZWJLaXRBdXRoZW50aWNhdGlvblJlcXVlc3QuY3BwCkBAIC03OSwyOCArNzksMjggQEAgc3RhdGlj
IGd1aW50IHNpZ25hbHNbTEFTVF9TSUdOQUxdID0geyAwLCB9OwogCiBXRUJLSVRfREVGSU5FX1RZ
UEUoV2ViS2l0QXV0aGVudGljYXRpb25SZXF1ZXN0LCB3ZWJraXRfYXV0aGVudGljYXRpb25fcmVx
dWVzdCwgR19UWVBFX09CSkVDVCkKIAotc3RhdGljIGlubGluZSBXZWJLaXRBdXRoZW50aWNhdGlv
blNjaGVtZSB0b1dlYktpdEF1dGhlbnRpY2F0aW9uU2NoZW1lKFdlYkNvcmU6OlByb3RlY3Rpb25T
cGFjZUF1dGhlbnRpY2F0aW9uU2NoZW1lIGNvcmVTY2hlbWUpCitzdGF0aWMgaW5saW5lIFdlYktp
dEF1dGhlbnRpY2F0aW9uU2NoZW1lIHRvV2ViS2l0QXV0aGVudGljYXRpb25TY2hlbWUoV2ViQ29y
ZTo6UHJvdGVjdGlvblNwYWNlOjpBdXRoZW50aWNhdGlvblNjaGVtZSBjb3JlU2NoZW1lKQogewog
ICAgIHN3aXRjaCAoY29yZVNjaGVtZSkgewotICAgIGNhc2UgV2ViQ29yZTo6UHJvdGVjdGlvblNw
YWNlQXV0aGVudGljYXRpb25TY2hlbWVEZWZhdWx0OgorICAgIGNhc2UgV2ViQ29yZTo6UHJvdGVj
dGlvblNwYWNlOjpBdXRoZW50aWNhdGlvblNjaGVtZTo6RGVmYXVsdDoKICAgICAgICAgcmV0dXJu
IFdFQktJVF9BVVRIRU5USUNBVElPTl9TQ0hFTUVfREVGQVVMVDsKLSAgICBjYXNlIFdlYkNvcmU6
OlByb3RlY3Rpb25TcGFjZUF1dGhlbnRpY2F0aW9uU2NoZW1lSFRUUEJhc2ljOgorICAgIGNhc2Ug
V2ViQ29yZTo6UHJvdGVjdGlvblNwYWNlOjpBdXRoZW50aWNhdGlvblNjaGVtZTo6SFRUUEJhc2lj
OgogICAgICAgICByZXR1cm4gV0VCS0lUX0FVVEhFTlRJQ0FUSU9OX1NDSEVNRV9IVFRQX0JBU0lD
OwotICAgIGNhc2UgV2ViQ29yZTo6UHJvdGVjdGlvblNwYWNlQXV0aGVudGljYXRpb25TY2hlbWVI
VFRQRGlnZXN0OgorICAgIGNhc2UgV2ViQ29yZTo6UHJvdGVjdGlvblNwYWNlOjpBdXRoZW50aWNh
dGlvblNjaGVtZTo6SFRUUERpZ2VzdDoKICAgICAgICAgcmV0dXJuIFdFQktJVF9BVVRIRU5USUNB
VElPTl9TQ0hFTUVfSFRUUF9ESUdFU1Q7Ci0gICAgY2FzZSBXZWJDb3JlOjpQcm90ZWN0aW9uU3Bh
Y2VBdXRoZW50aWNhdGlvblNjaGVtZUhUTUxGb3JtOgorICAgIGNhc2UgV2ViQ29yZTo6UHJvdGVj
dGlvblNwYWNlOjpBdXRoZW50aWNhdGlvblNjaGVtZTo6SFRNTEZvcm06CiAgICAgICAgIHJldHVy
biBXRUJLSVRfQVVUSEVOVElDQVRJT05fU0NIRU1FX0hUTUxfRk9STTsKLSAgICBjYXNlIFdlYkNv
cmU6OlByb3RlY3Rpb25TcGFjZUF1dGhlbnRpY2F0aW9uU2NoZW1lTlRMTToKKyAgICBjYXNlIFdl
YkNvcmU6OlByb3RlY3Rpb25TcGFjZTo6QXV0aGVudGljYXRpb25TY2hlbWU6Ok5UTE06CiAgICAg
ICAgIHJldHVybiBXRUJLSVRfQVVUSEVOVElDQVRJT05fU0NIRU1FX05UTE07Ci0gICAgY2FzZSBX
ZWJDb3JlOjpQcm90ZWN0aW9uU3BhY2VBdXRoZW50aWNhdGlvblNjaGVtZU5lZ290aWF0ZToKKyAg
ICBjYXNlIFdlYkNvcmU6OlByb3RlY3Rpb25TcGFjZTo6QXV0aGVudGljYXRpb25TY2hlbWU6Ok5l
Z290aWF0ZToKICAgICAgICAgcmV0dXJuIFdFQktJVF9BVVRIRU5USUNBVElPTl9TQ0hFTUVfTkVH
T1RJQVRFOwotICAgIGNhc2UgV2ViQ29yZTo6UHJvdGVjdGlvblNwYWNlQXV0aGVudGljYXRpb25T
Y2hlbWVDbGllbnRDZXJ0aWZpY2F0ZVJlcXVlc3RlZDoKKyAgICBjYXNlIFdlYkNvcmU6OlByb3Rl
Y3Rpb25TcGFjZTo6QXV0aGVudGljYXRpb25TY2hlbWU6OkNsaWVudENlcnRpZmljYXRlUmVxdWVz
dGVkOgogICAgICAgICByZXR1cm4gV0VCS0lUX0FVVEhFTlRJQ0FUSU9OX1NDSEVNRV9DTElFTlRf
Q0VSVElGSUNBVEVfUkVRVUVTVEVEOwotICAgIGNhc2UgV2ViQ29yZTo6UHJvdGVjdGlvblNwYWNl
QXV0aGVudGljYXRpb25TY2hlbWVTZXJ2ZXJUcnVzdEV2YWx1YXRpb25SZXF1ZXN0ZWQ6CisgICAg
Y2FzZSBXZWJDb3JlOjpQcm90ZWN0aW9uU3BhY2U6OkF1dGhlbnRpY2F0aW9uU2NoZW1lOjpTZXJ2
ZXJUcnVzdEV2YWx1YXRpb25SZXF1ZXN0ZWQ6CiAgICAgICAgIHJldHVybiBXRUJLSVRfQVVUSEVO
VElDQVRJT05fU0NIRU1FX1NFUlZFUl9UUlVTVF9FVkFMVUFUSU9OX1JFUVVFU1RFRDsKLSAgICBj
YXNlIFdlYkNvcmU6OlByb3RlY3Rpb25TcGFjZUF1dGhlbnRpY2F0aW9uU2NoZW1lQ2xpZW50Q2Vy
dGlmaWNhdGVQSU5SZXF1ZXN0ZWQ6CisgICAgY2FzZSBXZWJDb3JlOjpQcm90ZWN0aW9uU3BhY2U6
OkF1dGhlbnRpY2F0aW9uU2NoZW1lOjpDbGllbnRDZXJ0aWZpY2F0ZVBJTlJlcXVlc3RlZDoKICAg
ICAgICAgcmV0dXJuIFdFQktJVF9BVVRIRU5USUNBVElPTl9TQ0hFTUVfQ0xJRU5UX0NFUlRJRklD
QVRFX1BJTl9SRVFVRVNURUQ7Ci0gICAgY2FzZSBXZWJDb3JlOjpQcm90ZWN0aW9uU3BhY2VBdXRo
ZW50aWNhdGlvblNjaGVtZVVua25vd246CisgICAgY2FzZSBXZWJDb3JlOjpQcm90ZWN0aW9uU3Bh
Y2U6OkF1dGhlbnRpY2F0aW9uU2NoZW1lOjpVbmtub3duOgogICAgICAgICByZXR1cm4gV0VCS0lU
X0FVVEhFTlRJQ0FUSU9OX1NDSEVNRV9VTktOT1dOOwogICAgIGRlZmF1bHQ6CiAgICAgICAgIEFT
U0VSVF9OT1RfUkVBQ0hFRCgpOwpAQCAtMzQ4LDIyICszNDgsMjIgQEAgV2ViS2l0U2VjdXJpdHlP
cmlnaW4qIHdlYmtpdF9hdXRoZW50aWNhdGlvbl9yZXF1ZXN0X2dldF9zZWN1cml0eV9vcmlnaW4o
V2ViS2l0QXUKICAgICBjb25zdCBhdXRvJiBwcm90ZWN0aW9uU3BhY2UgPSByZXF1ZXN0LT5wcml2
LT5hdXRoZW50aWNhdGlvbkNoYWxsZW5nZS0+Y29yZSgpLnByb3RlY3Rpb25TcGFjZSgpOwogICAg
IFN0cmluZyBwcm90b2NvbDsKICAgICBzd2l0Y2ggKHByb3RlY3Rpb25TcGFjZS5zZXJ2ZXJUeXBl
KCkpIHsKLSAgICBjYXNlIFByb3RlY3Rpb25TcGFjZVNlcnZlckhUVFA6Ci0gICAgY2FzZSBQcm90
ZWN0aW9uU3BhY2VQcm94eUhUVFA6CisgICAgY2FzZSBQcm90ZWN0aW9uU3BhY2U6OlNlcnZlclR5
cGU6OkhUVFA6CisgICAgY2FzZSBQcm90ZWN0aW9uU3BhY2U6OlNlcnZlclR5cGU6OlByb3h5SFRU
UDoKICAgICAgICAgcHJvdG9jb2wgPSAiaHR0cCJfczsKICAgICAgICAgYnJlYWs7Ci0gICAgY2Fz
ZSBQcm90ZWN0aW9uU3BhY2VTZXJ2ZXJIVFRQUzoKLSAgICBjYXNlIFByb3RlY3Rpb25TcGFjZVBy
b3h5SFRUUFM6CisgICAgY2FzZSBQcm90ZWN0aW9uU3BhY2U6OlNlcnZlclR5cGU6OkhUVFBTOgor
ICAgIGNhc2UgUHJvdGVjdGlvblNwYWNlOjpTZXJ2ZXJUeXBlOjpQcm94eUhUVFBTOgogICAgICAg
ICBwcm90b2NvbCA9ICJodHRwcyJfczsKICAgICAgICAgYnJlYWs7Ci0gICAgY2FzZSBQcm90ZWN0
aW9uU3BhY2VTZXJ2ZXJGVFA6Ci0gICAgY2FzZSBQcm90ZWN0aW9uU3BhY2VQcm94eUZUUDoKKyAg
ICBjYXNlIFByb3RlY3Rpb25TcGFjZTo6U2VydmVyVHlwZTo6RlRQOgorICAgIGNhc2UgUHJvdGVj
dGlvblNwYWNlOjpTZXJ2ZXJUeXBlOjpQcm94eUZUUDoKICAgICAgICAgcHJvdG9jb2wgPSAiZnRw
Il9zOwogICAgICAgICBicmVhazsKLSAgICBjYXNlIFByb3RlY3Rpb25TcGFjZVNlcnZlckZUUFM6
CisgICAgY2FzZSBQcm90ZWN0aW9uU3BhY2U6OlNlcnZlclR5cGU6OkZUUFM6CiAgICAgICAgIHBy
b3RvY29sID0gImZ0cHMiX3M7CiAgICAgICAgIGJyZWFrOwotICAgIGNhc2UgUHJvdGVjdGlvblNw
YWNlUHJveHlTT0NLUzoKKyAgICBjYXNlIFByb3RlY3Rpb25TcGFjZTo6U2VydmVyVHlwZTo6UHJv
eHlTT0NLUzoKICAgICAgICAgcHJvdG9jb2wgPSAic29ja3MiX3M7CiAgICAgICAgIGJyZWFrOwog
ICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0F1dGhlbnRpY2F0aW9u
L1dlYlByb3RlY3Rpb25TcGFjZS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BdXRoZW50
aWNhdGlvbi9XZWJQcm90ZWN0aW9uU3BhY2UuY3BwCmluZGV4IDNkMzhlMjI0MmRiYWI1MTJlMDEy
MWJkOWQ2MWQxMWRlOWM4ZWQ5ODguLjE1MmFjY2JkOTY2OWIxMDk5ZjhiMDk0ZDExMmJhNjUxZmI5
MGE4NWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0F1dGhlbnRpY2F0aW9u
L1dlYlByb3RlY3Rpb25TcGFjZS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQXV0
aGVudGljYXRpb24vV2ViUHJvdGVjdGlvblNwYWNlLmNwcApAQCAtNTUsNyArNTUsNyBAQCBib29s
IFdlYlByb3RlY3Rpb25TcGFjZTo6aXNQcm94eSgpIGNvbnN0CiAgICAgcmV0dXJuIG1fY29yZVBy
b3RlY3Rpb25TcGFjZS5pc1Byb3h5KCk7CiB9CiAKLVdlYkNvcmU6OlByb3RlY3Rpb25TcGFjZVNl
cnZlclR5cGUgV2ViUHJvdGVjdGlvblNwYWNlOjpzZXJ2ZXJUeXBlKCkgY29uc3QKK1dlYkNvcmU6
OlByb3RlY3Rpb25TcGFjZTo6U2VydmVyVHlwZSBXZWJQcm90ZWN0aW9uU3BhY2U6OnNlcnZlclR5
cGUoKSBjb25zdAogewogICAgIHJldHVybiBtX2NvcmVQcm90ZWN0aW9uU3BhY2Uuc2VydmVyVHlw
ZSgpOwogfQpAQCAtNjUsNyArNjUsNyBAQCBib29sIFdlYlByb3RlY3Rpb25TcGFjZTo6cmVjZWl2
ZXNDcmVkZW50aWFsU2VjdXJlbHkoKSBjb25zdAogICAgIHJldHVybiBtX2NvcmVQcm90ZWN0aW9u
U3BhY2UucmVjZWl2ZXNDcmVkZW50aWFsU2VjdXJlbHkoKTsKIH0KIAotV2ViQ29yZTo6UHJvdGVj
dGlvblNwYWNlQXV0aGVudGljYXRpb25TY2hlbWUgV2ViUHJvdGVjdGlvblNwYWNlOjphdXRoZW50
aWNhdGlvblNjaGVtZSgpIGNvbnN0CitXZWJDb3JlOjpQcm90ZWN0aW9uU3BhY2U6OkF1dGhlbnRp
Y2F0aW9uU2NoZW1lIFdlYlByb3RlY3Rpb25TcGFjZTo6YXV0aGVudGljYXRpb25TY2hlbWUoKSBj
b25zdAogewogICAgIHJldHVybiBtX2NvcmVQcm90ZWN0aW9uU3BhY2UuYXV0aGVudGljYXRpb25T
Y2hlbWUoKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0F1dGhlbnRp
Y2F0aW9uL1dlYlByb3RlY3Rpb25TcGFjZS5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQXV0
aGVudGljYXRpb24vV2ViUHJvdGVjdGlvblNwYWNlLmgKaW5kZXggMjhiZWJhNmU4YzBjODY3MWY2
OTkxYjFlN2EzMjg0ZGViYTNjMTdhMC4uNGEzYjg3OWQ1NDhhY2Q2OThmMDcwOGUyNzJlZjVlNGM1
NTg2M2YyNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQXV0aGVudGljYXRp
b24vV2ViUHJvdGVjdGlvblNwYWNlLmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQXV0
aGVudGljYXRpb24vV2ViUHJvdGVjdGlvblNwYWNlLmgKQEAgLTQzLDkgKzQzLDkgQEAgcHVibGlj
OgogICAgIGludCBwb3J0KCkgY29uc3Q7CiAgICAgY29uc3QgU3RyaW5nJiByZWFsbSgpIGNvbnN0
OwogICAgIGJvb2wgaXNQcm94eSgpIGNvbnN0OwotICAgIFdlYkNvcmU6OlByb3RlY3Rpb25TcGFj
ZVNlcnZlclR5cGUgc2VydmVyVHlwZSgpIGNvbnN0OworICAgIFdlYkNvcmU6OlByb3RlY3Rpb25T
cGFjZTo6U2VydmVyVHlwZSBzZXJ2ZXJUeXBlKCkgY29uc3Q7CiAgICAgYm9vbCByZWNlaXZlc0Ny
ZWRlbnRpYWxTZWN1cmVseSgpIGNvbnN0OwotICAgIFdlYkNvcmU6OlByb3RlY3Rpb25TcGFjZUF1
dGhlbnRpY2F0aW9uU2NoZW1lIGF1dGhlbnRpY2F0aW9uU2NoZW1lKCkgY29uc3Q7CisgICAgV2Vi
Q29yZTo6UHJvdGVjdGlvblNwYWNlOjpBdXRoZW50aWNhdGlvblNjaGVtZSBhdXRoZW50aWNhdGlv
blNjaGVtZSgpIGNvbnN0OwogCiAgICAgY29uc3QgV2ViQ29yZTo6UHJvdGVjdGlvblNwYWNlJiBw
cm90ZWN0aW9uU3BhY2UoKSBjb25zdCB7IHJldHVybiBtX2NvcmVQcm90ZWN0aW9uU3BhY2U7IH0K
IApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvTmV0d29yay9OZXR3b3JrUHJv
Y2Vzc1Byb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL05ldHdvcmsvTmV0d29ya1By
b2Nlc3NQcm94eS5jcHAKaW5kZXggYjdlYWFkNDI1MDVjZTc0Yjc3NmY0NWM3ZWE4ZjZlYjI5ZjYx
MDU4Ni4uY2ExYmYxMGQ4ZjI2OTIzNjVkMzU3MTliNzNjNDAzMTg5MDZlYmFlZSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvTmV0d29yay9OZXR3b3JrUHJvY2Vzc1Byb3h5LmNw
cAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9jZXNzUHJv
eHkuY3BwCkBAIC00MjEsNyArNDIxLDcgQEAgdm9pZCBOZXR3b3JrUHJvY2Vzc1Byb3h5OjpkaWRS
ZWNlaXZlSW52YWxpZE1lc3NhZ2UoSVBDOjpDb25uZWN0aW9uJiBjb25uZWN0aW9uLAogdm9pZCBO
ZXR3b3JrUHJvY2Vzc1Byb3h5Ojpwcm9jZXNzQXV0aGVudGljYXRpb25DaGFsbGVuZ2UoUEFMOjpT
ZXNzaW9uSUQgc2Vzc2lvbklELCBSZWY8QXV0aGVudGljYXRpb25DaGFsbGVuZ2VQcm94eT4mJiBh
dXRoZW50aWNhdGlvbkNoYWxsZW5nZSkKIHsKICAgICBhdXRvKiBzdG9yZSA9IHdlYnNpdGVEYXRh
U3RvcmVGcm9tU2Vzc2lvbklEKHNlc3Npb25JRCk7Ci0gICAgaWYgKCFzdG9yZSB8fCBhdXRoZW50
aWNhdGlvbkNoYWxsZW5nZS0+Y29yZSgpLnByb3RlY3Rpb25TcGFjZSgpLmF1dGhlbnRpY2F0aW9u
U2NoZW1lKCkgIT0gUHJvdGVjdGlvblNwYWNlQXV0aGVudGljYXRpb25TY2hlbWVTZXJ2ZXJUcnVz
dEV2YWx1YXRpb25SZXF1ZXN0ZWQpIHsKKyAgICBpZiAoIXN0b3JlIHx8IGF1dGhlbnRpY2F0aW9u
Q2hhbGxlbmdlLT5jb3JlKCkucHJvdGVjdGlvblNwYWNlKCkuYXV0aGVudGljYXRpb25TY2hlbWUo
KSAhPSBQcm90ZWN0aW9uU3BhY2U6OkF1dGhlbnRpY2F0aW9uU2NoZW1lOjpTZXJ2ZXJUcnVzdEV2
YWx1YXRpb25SZXF1ZXN0ZWQpIHsKICAgICAgICAgYXV0aGVudGljYXRpb25DaGFsbGVuZ2UtPmxp
c3RlbmVyKCkuY29tcGxldGVDaGFsbGVuZ2UoQXV0aGVudGljYXRpb25DaGFsbGVuZ2VEaXNwb3Np
dGlvbjo6UGVyZm9ybURlZmF1bHRIYW5kbGluZyk7CiAgICAgICAgIHJldHVybjsKICAgICB9CkBA
IC00MzIsNyArNDMyLDcgQEAgdm9pZCBOZXR3b3JrUHJvY2Vzc1Byb3h5OjpkaWRSZWNlaXZlQXV0
aGVudGljYXRpb25DaGFsbGVuZ2UoUEFMOjpTZXNzaW9uSUQgc2Vzc2kKIHsKICNpZiBIQVZFKFNF
Q19LRVlfUFJPWFkpCiAgICAgV2Vha1B0cjxTZWNLZXlQcm94eVN0b3JlPiBzZWNLZXlQcm94eVN0
b3JlOwotICAgIGlmIChjb3JlQ2hhbGxlbmdlLnByb3RlY3Rpb25TcGFjZSgpLmF1dGhlbnRpY2F0
aW9uU2NoZW1lKCkgPT0gUHJvdGVjdGlvblNwYWNlQXV0aGVudGljYXRpb25TY2hlbWVDbGllbnRD
ZXJ0aWZpY2F0ZVJlcXVlc3RlZCkgeworICAgIGlmIChjb3JlQ2hhbGxlbmdlLnByb3RlY3Rpb25T
cGFjZSgpLmF1dGhlbnRpY2F0aW9uU2NoZW1lKCkgPT0gUHJvdGVjdGlvblNwYWNlOjpBdXRoZW50
aWNhdGlvblNjaGVtZTo6Q2xpZW50Q2VydGlmaWNhdGVSZXF1ZXN0ZWQpIHsKICAgICAgICAgaWYg
KGF1dG8qIHN0b3JlID0gd2Vic2l0ZURhdGFTdG9yZUZyb21TZXNzaW9uSUQoc2Vzc2lvbklEKSkg
ewogICAgICAgICAgICAgYXV0byBuZXdTZWNLZXlQcm94eVN0b3JlID0gU2VjS2V5UHJveHlTdG9y
ZTo6Y3JlYXRlKCk7CiAgICAgICAgICAgICBzZWNLZXlQcm94eVN0b3JlID0gbmV3U2VjS2V5UHJv
eHlTdG9yZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYkNvcmVTdXBw
b3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50Lm1tIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2Vi
Q29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQubW0KaW5kZXggYWEyY2M5ODE0NzRhMTNj
ZTUwODQ3OTg5NDIzNjg0NDkxYzg4ZjZlMi4uNDNlNjNmNDU2MzQ1ZWNmMWM5MjRlNWI3NzJhNmY1
NDE3M2E5MTQyYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViQ29yZVN1
cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQubW0KKysrIGIvU291cmNlL1dlYktpdExlZ2FjeS9t
YWMvV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQubW0KQEAgLTQyOSw3ICs0Mjks
NyBAQCBib29sIFdlYkZyYW1lTG9hZGVyQ2xpZW50OjpjYW5BdXRoZW50aWNhdGVBZ2FpbnN0UHJv
dGVjdGlvblNwYWNlKFdlYkNvcmU6OkRvY3VtZQogICAgIC8vIElmIG91ciByZXNvdXJjZSBsb2Fk
IGRlbGVnYXRlIGRvZXNuJ3QgaGFuZGxlIHRoZSBxdWVzdGlvbiwgdGhlbiBvbmx5IHNlbmQgYXV0
aGVudGljYXRpb24KICAgICAvLyBjaGFsbGVuZ2VzIGZvciBwcmUtaU9TLTMuMCwgcHJlLTEwLjYg
cHJvdGVjdGlvbiBzcGFjZXMuICBUaGlzIGlzIHRoZSBzYW1lIGFzIHRoZSBkZWZhdWx0IGltcGxl
bWVudGF0aW9uCiAgICAgLy8gaW4gQ0ZOZXR3b3JrLgotICAgIHJldHVybiAocHJvdGVjdGlvblNw
YWNlLmF1dGhlbnRpY2F0aW9uU2NoZW1lKCkgPCBXZWJDb3JlOjpQcm90ZWN0aW9uU3BhY2VBdXRo
ZW50aWNhdGlvblNjaGVtZUNsaWVudENlcnRpZmljYXRlUmVxdWVzdGVkKTsKKyAgICByZXR1cm4g
KHByb3RlY3Rpb25TcGFjZS5hdXRoZW50aWNhdGlvblNjaGVtZSgpIDwgV2ViQ29yZTo6UHJvdGVj
dGlvblNwYWNlOjpBdXRoZW50aWNhdGlvblNjaGVtZTo6Q2xpZW50Q2VydGlmaWNhdGVSZXF1ZXN0
ZWQpOwogfQogI2VuZGlmCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvd2luL1dl
YlVSTFByb3RlY3Rpb25TcGFjZS5jcHAgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9XZWJVUkxQ
cm90ZWN0aW9uU3BhY2UuY3BwCmluZGV4IGQ3MjE4Yzk0MjcwODAzZjZkYzI0ZDExOTA3MDc4NTI3
MTU0NzY3YmYuLjE5ZWQ5NmY4MjEwZDg5MzlhOWVlY2EyYzUxYTJkODM0YmU4MDBlNTAgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvd2luL1dlYlVSTFByb3RlY3Rpb25TcGFjZS5jcHAK
KysrIGIvU291cmNlL1dlYktpdExlZ2FjeS93aW4vV2ViVVJMUHJvdGVjdGlvblNwYWNlLmNwcApA
QCAtMTAyLDE2ICsxMDIsMTYgQEAgSFJFU1VMVCBXZWJVUkxQcm90ZWN0aW9uU3BhY2U6OmF1dGhl
bnRpY2F0aW9uTWV0aG9kKF9fZGVyZWZfb3B0X291dCBCU1RSKiByZXN1bHQKICAgICAgICAgcmV0
dXJuIEVfUE9JTlRFUjsKIAogICAgIHN3aXRjaCAobV9wcm90ZWN0aW9uU3BhY2UuYXV0aGVudGlj
YXRpb25TY2hlbWUoKSkgewotICAgIGNhc2UgUHJvdGVjdGlvblNwYWNlQXV0aGVudGljYXRpb25T
Y2hlbWVEZWZhdWx0OgorICAgIGNhc2UgUHJvdGVjdGlvblNwYWNlOjpBdXRoZW50aWNhdGlvblNj
aGVtZTo6RGVmYXVsdDoKICAgICAgICAgKnJlc3VsdCA9IFN5c0FsbG9jU3RyaW5nKFdlYlVSTEF1
dGhlbnRpY2F0aW9uTWV0aG9kRGVmYXVsdCk7CiAgICAgICAgIGJyZWFrOwotICAgIGNhc2UgUHJv
dGVjdGlvblNwYWNlQXV0aGVudGljYXRpb25TY2hlbWVIVFRQQmFzaWM6CisgICAgY2FzZSBQcm90
ZWN0aW9uU3BhY2U6OkF1dGhlbnRpY2F0aW9uU2NoZW1lOjpIVFRQQmFzaWM6CiAgICAgICAgICpy
ZXN1bHQgPSBTeXNBbGxvY1N0cmluZyhXZWJVUkxBdXRoZW50aWNhdGlvbk1ldGhvZEhUVFBCYXNp
Yyk7CiAgICAgICAgIGJyZWFrOwotICAgIGNhc2UgUHJvdGVjdGlvblNwYWNlQXV0aGVudGljYXRp
b25TY2hlbWVIVFRQRGlnZXN0OgorICAgIGNhc2UgUHJvdGVjdGlvblNwYWNlOjpBdXRoZW50aWNh
dGlvblNjaGVtZTo6SFRUUERpZ2VzdDoKICAgICAgICAgKnJlc3VsdCA9IFN5c0FsbG9jU3RyaW5n
KFdlYlVSTEF1dGhlbnRpY2F0aW9uTWV0aG9kSFRUUERpZ2VzdCk7CiAgICAgICAgIGJyZWFrOwot
ICAgIGNhc2UgUHJvdGVjdGlvblNwYWNlQXV0aGVudGljYXRpb25TY2hlbWVIVE1MRm9ybToKKyAg
ICBjYXNlIFByb3RlY3Rpb25TcGFjZTo6QXV0aGVudGljYXRpb25TY2hlbWU6OkhUTUxGb3JtOgog
ICAgICAgICAqcmVzdWx0ID0gU3lzQWxsb2NTdHJpbmcoV2ViVVJMQXV0aGVudGljYXRpb25NZXRo
b2RIVE1MRm9ybSk7CiAgICAgICAgIGJyZWFrOwogICAgIGRlZmF1bHQ6CkBAIC0xMzEsMTcgKzEz
MSwxNyBAQCBIUkVTVUxUIFdlYlVSTFByb3RlY3Rpb25TcGFjZTo6aG9zdChfX2RlcmVmX29wdF9v
dXQgQlNUUiogcmVzdWx0KQogICAgIHJldHVybiBTX09LOwogfQogCi1zdGF0aWMgUHJvdGVjdGlv
blNwYWNlQXV0aGVudGljYXRpb25TY2hlbWUgY29yZVNjaGVtZShCU1RSIGF1dGhlbnRpY2F0aW9u
TWV0aG9kKQorc3RhdGljIFByb3RlY3Rpb25TcGFjZTo6QXV0aGVudGljYXRpb25TY2hlbWUgY29y
ZVNjaGVtZShCU1RSIGF1dGhlbnRpY2F0aW9uTWV0aG9kKQogewotICAgIFByb3RlY3Rpb25TcGFj
ZUF1dGhlbnRpY2F0aW9uU2NoZW1lIHNjaGVtZSA9IFByb3RlY3Rpb25TcGFjZUF1dGhlbnRpY2F0
aW9uU2NoZW1lRGVmYXVsdDsKKyAgICBhdXRvIHNjaGVtZSA9IFByb3RlY3Rpb25TcGFjZTo6QXV0
aGVudGljYXRpb25TY2hlbWU6OkRlZmF1bHQ7CiAgICAgaWYgKEJTdHJpbmcoYXV0aGVudGljYXRp
b25NZXRob2QpID09IEJTdHJpbmcoV2ViVVJMQXV0aGVudGljYXRpb25NZXRob2REZWZhdWx0KSkK
LSAgICAgICAgc2NoZW1lID0gUHJvdGVjdGlvblNwYWNlQXV0aGVudGljYXRpb25TY2hlbWVEZWZh
dWx0OworICAgICAgICBzY2hlbWUgPSBQcm90ZWN0aW9uU3BhY2U6OkF1dGhlbnRpY2F0aW9uU2No
ZW1lOjpEZWZhdWx0OwogICAgIGVsc2UgaWYgKEJTdHJpbmcoYXV0aGVudGljYXRpb25NZXRob2Qp
ID09IEJTdHJpbmcoV2ViVVJMQXV0aGVudGljYXRpb25NZXRob2RIVFRQQmFzaWMpKQotICAgICAg
ICBzY2hlbWUgPSBQcm90ZWN0aW9uU3BhY2VBdXRoZW50aWNhdGlvblNjaGVtZUhUVFBCYXNpYzsK
KyAgICAgICAgc2NoZW1lID0gUHJvdGVjdGlvblNwYWNlOjpBdXRoZW50aWNhdGlvblNjaGVtZTo6
SFRUUEJhc2ljOwogICAgIGVsc2UgaWYgKEJTdHJpbmcoYXV0aGVudGljYXRpb25NZXRob2QpID09
IEJTdHJpbmcoV2ViVVJMQXV0aGVudGljYXRpb25NZXRob2RIVFRQRGlnZXN0KSkKLSAgICAgICAg
c2NoZW1lID0gUHJvdGVjdGlvblNwYWNlQXV0aGVudGljYXRpb25TY2hlbWVIVFRQRGlnZXN0Owor
ICAgICAgICBzY2hlbWUgPSBQcm90ZWN0aW9uU3BhY2U6OkF1dGhlbnRpY2F0aW9uU2NoZW1lOjpI
VFRQRGlnZXN0OwogICAgIGVsc2UgaWYgKEJTdHJpbmcoYXV0aGVudGljYXRpb25NZXRob2QpID09
IEJTdHJpbmcoV2ViVVJMQXV0aGVudGljYXRpb25NZXRob2RIVE1MRm9ybSkpCi0gICAgICAgIHNj
aGVtZSA9IFByb3RlY3Rpb25TcGFjZUF1dGhlbnRpY2F0aW9uU2NoZW1lSFRNTEZvcm07CisgICAg
ICAgIHNjaGVtZSA9IFByb3RlY3Rpb25TcGFjZTo6QXV0aGVudGljYXRpb25TY2hlbWU6OkhUTUxG
b3JtOwogICAgIGVsc2UKICAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CiAgICAgcmV0dXJu
IHNjaGVtZTsKQEAgLTE1NCwxNSArMTU0LDE1IEBAIEhSRVNVTFQgV2ViVVJMUHJvdGVjdGlvblNw
YWNlOjppbml0V2l0aEhvc3QoX0luXyBCU1RSIGhvc3QsIGludCBwb3J0LCBfSW5fIEJTVFIKICAg
ICBzdGF0aWMgQlN0cmluZyYgd2ViVVJMUHJvdGVjdGlvblNwYWNlRlRQQlN0cmluZyA9ICpuZXcg
QlN0cmluZyhXZWJVUkxQcm90ZWN0aW9uU3BhY2VGVFApOwogICAgIHN0YXRpYyBCU3RyaW5nJiB3
ZWJVUkxQcm90ZWN0aW9uU3BhY2VGVFBTQlN0cmluZyA9ICpuZXcgQlN0cmluZyhXZWJVUkxQcm90
ZWN0aW9uU3BhY2VGVFBTKTsKIAotICAgIFByb3RlY3Rpb25TcGFjZVNlcnZlclR5cGUgc2VydmVy
VHlwZSA9IFByb3RlY3Rpb25TcGFjZVNlcnZlckhUVFA7CisgICAgYXV0byBzZXJ2ZXJUeXBlID0g
UHJvdGVjdGlvblNwYWNlOjpTZXJ2ZXJUeXBlOjpIVFRQOwogICAgIGlmIChCU3RyaW5nKHByb3Rv
Y29sKSA9PSB3ZWJVUkxQcm90ZWN0aW9uU3BhY2VIVFRQQlN0cmluZykKLSAgICAgICAgc2VydmVy
VHlwZSA9IFByb3RlY3Rpb25TcGFjZVNlcnZlckhUVFA7CisgICAgICAgIHNlcnZlclR5cGUgPSBQ
cm90ZWN0aW9uU3BhY2U6OlNlcnZlclR5cGU6OkhUVFA7CiAgICAgZWxzZSBpZiAoQlN0cmluZyhw
cm90b2NvbCkgPT0gd2ViVVJMUHJvdGVjdGlvblNwYWNlSFRUUFNCU3RyaW5nKQotICAgICAgICBz
ZXJ2ZXJUeXBlID0gUHJvdGVjdGlvblNwYWNlU2VydmVySFRUUFM7CisgICAgICAgIHNlcnZlclR5
cGUgPSBQcm90ZWN0aW9uU3BhY2U6OlNlcnZlclR5cGU6OkhUVFBTOwogICAgIGVsc2UgaWYgKEJT
dHJpbmcocHJvdG9jb2wpID09IHdlYlVSTFByb3RlY3Rpb25TcGFjZUZUUEJTdHJpbmcpCi0gICAg
ICAgIHNlcnZlclR5cGUgPSBQcm90ZWN0aW9uU3BhY2VTZXJ2ZXJGVFA7CisgICAgICAgIHNlcnZl
clR5cGUgPSBQcm90ZWN0aW9uU3BhY2U6OlNlcnZlclR5cGU6OkZUUDsKICAgICBlbHNlIGlmIChC
U3RyaW5nKHByb3RvY29sKSA9PSB3ZWJVUkxQcm90ZWN0aW9uU3BhY2VGVFBTQlN0cmluZykKLSAg
ICAgICAgc2VydmVyVHlwZSA9IFByb3RlY3Rpb25TcGFjZVNlcnZlckZUUFM7CisgICAgICAgIHNl
cnZlclR5cGUgPSBQcm90ZWN0aW9uU3BhY2U6OlNlcnZlclR5cGU6OkZUUFM7CiAKICAgICBtX3By
b3RlY3Rpb25TcGFjZSA9IFByb3RlY3Rpb25TcGFjZShTdHJpbmcoaG9zdCwgU3lzU3RyaW5nTGVu
KGhvc3QpKSwgcG9ydCwgc2VydmVyVHlwZSwgCiAgICAgICAgIFN0cmluZyhyZWFsbSwgU3lzU3Ry
aW5nTGVuKHJlYWxtKSksIGNvcmVTY2hlbWUoYXV0aGVudGljYXRpb25NZXRob2QpKTsKQEAgLTE3
NywxNSArMTc3LDE1IEBAIEhSRVNVTFQgV2ViVVJMUHJvdGVjdGlvblNwYWNlOjppbml0V2l0aFBy
b3h5SG9zdChfSW5fIEJTVFIgaG9zdCwgaW50IHBvcnQsIF9Jbl8KICAgICBzdGF0aWMgQlN0cmlu
ZyYgd2ViVVJMUHJvdGVjdGlvblNwYWNlRlRQUHJveHlCU3RyaW5nID0gKm5ldyBCU3RyaW5nKFdl
YlVSTFByb3RlY3Rpb25TcGFjZUZUUFByb3h5KTsKICAgICBzdGF0aWMgQlN0cmluZyYgd2ViVVJM
UHJvdGVjdGlvblNwYWNlU09DS1NQcm94eUJTdHJpbmcgPSAqbmV3IEJTdHJpbmcoV2ViVVJMUHJv
dGVjdGlvblNwYWNlU09DS1NQcm94eSk7CiAKLSAgICBQcm90ZWN0aW9uU3BhY2VTZXJ2ZXJUeXBl
IHNlcnZlclR5cGUgPSBQcm90ZWN0aW9uU3BhY2VQcm94eUhUVFA7CisgICAgYXV0byBzZXJ2ZXJU
eXBlID0gUHJvdGVjdGlvblNwYWNlOjpTZXJ2ZXJUeXBlOjpQcm94eUhUVFA7CiAgICAgaWYgKEJT
dHJpbmcocHJveHlUeXBlKSA9PSB3ZWJVUkxQcm90ZWN0aW9uU3BhY2VIVFRQUHJveHlCU3RyaW5n
KQotICAgICAgICBzZXJ2ZXJUeXBlID0gUHJvdGVjdGlvblNwYWNlUHJveHlIVFRQOworICAgICAg
ICBzZXJ2ZXJUeXBlID0gUHJvdGVjdGlvblNwYWNlOjpTZXJ2ZXJUeXBlOjpQcm94eUhUVFA7CiAg
ICAgZWxzZSBpZiAoQlN0cmluZyhwcm94eVR5cGUpID09IHdlYlVSTFByb3RlY3Rpb25TcGFjZUhU
VFBTUHJveHlCU3RyaW5nKQotICAgICAgICBzZXJ2ZXJUeXBlID0gUHJvdGVjdGlvblNwYWNlUHJv
eHlIVFRQUzsKKyAgICAgICAgc2VydmVyVHlwZSA9IFByb3RlY3Rpb25TcGFjZTo6U2VydmVyVHlw
ZTo6UHJveHlIVFRQUzsKICAgICBlbHNlIGlmIChCU3RyaW5nKHByb3h5VHlwZSkgPT0gd2ViVVJM
UHJvdGVjdGlvblNwYWNlRlRQUHJveHlCU3RyaW5nKQotICAgICAgICBzZXJ2ZXJUeXBlID0gUHJv
dGVjdGlvblNwYWNlUHJveHlGVFA7CisgICAgICAgIHNlcnZlclR5cGUgPSBQcm90ZWN0aW9uU3Bh
Y2U6OlNlcnZlclR5cGU6OlByb3h5RlRQOwogICAgIGVsc2UgaWYgKEJTdHJpbmcocHJveHlUeXBl
KSA9PSB3ZWJVUkxQcm90ZWN0aW9uU3BhY2VTT0NLU1Byb3h5QlN0cmluZykKLSAgICAgICAgc2Vy
dmVyVHlwZSA9IFByb3RlY3Rpb25TcGFjZVByb3h5U09DS1M7CisgICAgICAgIHNlcnZlclR5cGUg
PSBQcm90ZWN0aW9uU3BhY2U6OlNlcnZlclR5cGU6OlByb3h5U09DS1M7CiAgICAgZWxzZQogICAg
ICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKIApAQCAtMjE3LDE2ICsyMTcsMTYgQEAgSFJFU1VM
VCBXZWJVUkxQcm90ZWN0aW9uU3BhY2U6OnByb3RvY29sKF9fZGVyZWZfb3B0X291dCBCU1RSKiBy
ZXN1bHQpCiAgICAgICAgIHJldHVybiBFX1BPSU5URVI7CiAKICAgICBzd2l0Y2ggKG1fcHJvdGVj
dGlvblNwYWNlLnNlcnZlclR5cGUoKSkgewotICAgIGNhc2UgUHJvdGVjdGlvblNwYWNlU2VydmVy
SFRUUDoKKyAgICBjYXNlIFByb3RlY3Rpb25TcGFjZTo6U2VydmVyVHlwZTo6SFRUUDoKICAgICAg
ICAgKnJlc3VsdCA9IFN5c0FsbG9jU3RyaW5nKFdlYlVSTFByb3RlY3Rpb25TcGFjZUhUVFApOwog
ICAgICAgICBicmVhazsKLSAgICBjYXNlIFByb3RlY3Rpb25TcGFjZVNlcnZlckhUVFBTOgorICAg
IGNhc2UgUHJvdGVjdGlvblNwYWNlOjpTZXJ2ZXJUeXBlOjpIVFRQUzoKICAgICAgICAgKnJlc3Vs
dCA9IFN5c0FsbG9jU3RyaW5nKFdlYlVSTFByb3RlY3Rpb25TcGFjZUhUVFBTKTsKICAgICAgICAg
YnJlYWs7Ci0gICAgY2FzZSBQcm90ZWN0aW9uU3BhY2VTZXJ2ZXJGVFA6CisgICAgY2FzZSBQcm90
ZWN0aW9uU3BhY2U6OlNlcnZlclR5cGU6OkZUUDoKICAgICAgICAgKnJlc3VsdCA9IFN5c0FsbG9j
U3RyaW5nKFdlYlVSTFByb3RlY3Rpb25TcGFjZUZUUCk7CiAgICAgICAgIGJyZWFrOwotICAgIGNh
c2UgUHJvdGVjdGlvblNwYWNlU2VydmVyRlRQUzoKKyAgICBjYXNlIFByb3RlY3Rpb25TcGFjZTo6
U2VydmVyVHlwZTo6RlRQUzoKICAgICAgICAgKnJlc3VsdCA9IFN5c0FsbG9jU3RyaW5nKFdlYlVS
TFByb3RlY3Rpb25TcGFjZUZUUFMpOwogICAgICAgICBicmVhazsKICAgICBkZWZhdWx0OgpAQCAt
MjQyLDE2ICsyNDIsMTYgQEAgSFJFU1VMVCBXZWJVUkxQcm90ZWN0aW9uU3BhY2U6OnByb3h5VHlw
ZShfX2RlcmVmX29wdF9vdXQgQlNUUiogcmVzdWx0KQogICAgICAgICByZXR1cm4gRV9QT0lOVEVS
OwogCiAgICAgc3dpdGNoIChtX3Byb3RlY3Rpb25TcGFjZS5zZXJ2ZXJUeXBlKCkpIHsKLSAgICBj
YXNlIFByb3RlY3Rpb25TcGFjZVByb3h5SFRUUDoKKyAgICBjYXNlIFByb3RlY3Rpb25TcGFjZTo6
U2VydmVyVHlwZTo6UHJveHlIVFRQOgogICAgICAgICAqcmVzdWx0ID0gU3lzQWxsb2NTdHJpbmco
V2ViVVJMUHJvdGVjdGlvblNwYWNlSFRUUFByb3h5KTsKICAgICAgICAgYnJlYWs7Ci0gICAgY2Fz
ZSBQcm90ZWN0aW9uU3BhY2VQcm94eUhUVFBTOgorICAgIGNhc2UgUHJvdGVjdGlvblNwYWNlOjpT
ZXJ2ZXJUeXBlOjpQcm94eUhUVFBTOgogICAgICAgICAqcmVzdWx0ID0gU3lzQWxsb2NTdHJpbmco
V2ViVVJMUHJvdGVjdGlvblNwYWNlSFRUUFNQcm94eSk7CiAgICAgICAgIGJyZWFrOwotICAgIGNh
c2UgUHJvdGVjdGlvblNwYWNlUHJveHlGVFA6CisgICAgY2FzZSBQcm90ZWN0aW9uU3BhY2U6OlNl
cnZlclR5cGU6OlByb3h5RlRQOgogICAgICAgICAqcmVzdWx0ID0gU3lzQWxsb2NTdHJpbmcoV2Vi
VVJMUHJvdGVjdGlvblNwYWNlRlRQUHJveHkpOwogICAgICAgICBicmVhazsKLSAgICBjYXNlIFBy
b3RlY3Rpb25TcGFjZVByb3h5U09DS1M6CisgICAgY2FzZSBQcm90ZWN0aW9uU3BhY2U6OlNlcnZl
clR5cGU6OlByb3h5U09DS1M6CiAgICAgICAgICpyZXN1bHQgPSBTeXNBbGxvY1N0cmluZyhXZWJV
UkxQcm90ZWN0aW9uU3BhY2VTT0NLU1Byb3h5KTsKICAgICAgICAgYnJlYWs7CiAgICAgZGVmYXVs
dDoK
</data>
<flag name="commit-queue"
          id="473141"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>447501</attachid>
            <date>2021-12-17 18:54:11 -0800</date>
            <delta_ts>2021-12-18 09:47:33 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-234455-20211217185410.patch</filename>
            <type>text/plain</type>
            <size>96561</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg3MjAzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZTQwNDdjOTk5N2FhMWUy
OTY2MTIzNmY4Yjc2OGI0ZWU1MWNiNTIzZi4uMDEyYzFlMWM1YmM1OTQ3Njk4ZGZhNjQ3OTI5OTk0
YTA4ODM5MWQyYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDYzIEBACisyMDIxLTEyLTE3ICBDaHJp
cyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgQ29udmVydCBQcm90ZWN0aW9u
U3BhY2UgZW51bXMgaW50byBlbnVtIGNsYXNzZXMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTIzNDQ1NQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgICogcGxhdGZvcm0vbmV0d29yay9DcmVkZW50aWFsU3RvcmFn
ZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDcmVkZW50aWFsU3RvcmFnZTo6c2V0KToKKyAgICAg
ICAgKFdlYkNvcmU6OkNyZWRlbnRpYWxTdG9yYWdlOjpyZW1vdmVDcmVkZW50aWFsc1dpdGhPcmln
aW4pOgorICAgICAgICAoV2ViQ29yZTo6Q3JlZGVudGlhbFN0b3JhZ2U6Om9yaWdpbnNXaXRoQ3Jl
ZGVudGlhbHMgY29uc3QpOgorICAgICAgICAqIHBsYXRmb3JtL25ldHdvcmsvUHJvdGVjdGlvblNw
YWNlLmg6CisgICAgICAgIChXZWJDb3JlOjpQcm90ZWN0aW9uU3BhY2U6OlByb3RlY3Rpb25TcGFj
ZSk6CisgICAgICAgICogcGxhdGZvcm0vbmV0d29yay9Qcm90ZWN0aW9uU3BhY2VCYXNlLmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OlByb3RlY3Rpb25TcGFjZUJhc2U6OlByb3RlY3Rpb25TcGFjZUJh
c2UpOgorICAgICAgICAoV2ViQ29yZTo6UHJvdGVjdGlvblNwYWNlQmFzZTo6aXNQcm94eSBjb25z
dCk6CisgICAgICAgIChXZWJDb3JlOjpQcm90ZWN0aW9uU3BhY2VCYXNlOjpyZWNlaXZlc0NyZWRl
bnRpYWxTZWN1cmVseSBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpQcm90ZWN0aW9uU3BhY2VC
YXNlOjppc1Bhc3N3b3JkQmFzZWQgY29uc3QpOgorICAgICAgICAqIHBsYXRmb3JtL25ldHdvcmsv
UHJvdGVjdGlvblNwYWNlQmFzZS5oOgorICAgICAgICAoV2ViQ29yZTo6UHJvdGVjdGlvblNwYWNl
QmFzZTo6c2VydmVyVHlwZSBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpQcm90ZWN0aW9uU3Bh
Y2VCYXNlOjphdXRoZW50aWNhdGlvblNjaGVtZSBjb25zdCk6CisgICAgICAgICogcGxhdGZvcm0v
bmV0d29yay9jZi9BdXRoZW50aWNhdGlvbkNGLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmNyZWF0
ZUNGKToKKyAgICAgICAgKFdlYkNvcmU6OmNvcmUpOgorICAgICAgICAqIHBsYXRmb3JtL25ldHdv
cmsvY2YvUHJvdGVjdGlvblNwYWNlQ0ZOZXQuaDoKKyAgICAgICAgKFdlYkNvcmU6OlByb3RlY3Rp
b25TcGFjZTo6UHJvdGVjdGlvblNwYWNlKToKKyAgICAgICAgKiBwbGF0Zm9ybS9uZXR3b3JrL2Nm
L1Jlc291cmNlSGFuZGxlQ0ZOZXQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVzb3VyY2VIYW5k
bGU6OnJlY2VpdmVkQ3JlZGVudGlhbCk6CisgICAgICAgICogcGxhdGZvcm0vbmV0d29yay9jZi9T
b2NrZXRTdHJlYW1IYW5kbGVJbXBsQ0ZOZXQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6YXV0aGVu
dGljYXRpb25TY2hlbWVGcm9tQXV0aGVudGljYXRpb25NZXRob2QpOgorICAgICAgICAqIHBsYXRm
b3JtL25ldHdvcmsvY29jb2EvUHJvdGVjdGlvblNwYWNlQ29jb2EuaDoKKyAgICAgICAgKFdlYkNv
cmU6OlByb3RlY3Rpb25TcGFjZTo6UHJvdGVjdGlvblNwYWNlKToKKyAgICAgICAgKiBwbGF0Zm9y
bS9uZXR3b3JrL2NvY29hL1Byb3RlY3Rpb25TcGFjZUNvY29hLm1tOgorICAgICAgICAoV2ViQ29y
ZTo6dHlwZSk6CisgICAgICAgIChXZWJDb3JlOjpzY2hlbWUpOgorICAgICAgICAoV2ViQ29yZTo6
UHJvdGVjdGlvblNwYWNlOjpuc1NwYWNlIGNvbnN0KToKKyAgICAgICAgKiBwbGF0Zm9ybS9uZXR3
b3JrL2N1cmwvQXV0aGVudGljYXRpb25DaGFsbGVuZ2UuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9u
ZXR3b3JrL2N1cmwvQXV0aGVudGljYXRpb25DaGFsbGVuZ2VDdXJsLmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OkF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlOjpwcm90ZWN0aW9uU3BhY2VTZXJ2ZXJUeXBl
RnJvbVVSSSk6CisgICAgICAgIChXZWJDb3JlOjpBdXRoZW50aWNhdGlvbkNoYWxsZW5nZTo6cHJv
dGVjdGlvblNwYWNlRm9yU2VydmVyVHJ1c3QpOgorICAgICAgICAoV2ViQ29yZTo6QXV0aGVudGlj
YXRpb25DaGFsbGVuZ2U6OmF1dGhlbnRpY2F0aW9uU2NoZW1lRnJvbUN1cmxBdXRoKToKKyAgICAg
ICAgKiBwbGF0Zm9ybS9uZXR3b3JrL2N1cmwvQ3VybFJlcXVlc3QuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6Q3VybFJlcXVlc3Q6OnNldEF1dGhlbnRpY2F0aW9uU2NoZW1lKToKKyAgICAgICAgKiBw
bGF0Zm9ybS9uZXR3b3JrL2N1cmwvQ3VybFJlcXVlc3QuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9u
ZXR3b3JrL2N1cmwvUHJvdGVjdGlvblNwYWNlQ3VybC5oOgorICAgICAgICAoV2ViQ29yZTo6UHJv
dGVjdGlvblNwYWNlOjpQcm90ZWN0aW9uU3BhY2UpOgorICAgICAgICAqIHBsYXRmb3JtL25ldHdv
cmsvY3VybC9SZXNvdXJjZUhhbmRsZUN1cmwuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVzb3Vy
Y2VIYW5kbGU6OnN0YXJ0KToKKyAgICAgICAgKFdlYkNvcmU6OlJlc291cmNlSGFuZGxlOjpwbGF0
Zm9ybUxvYWRSZXNvdXJjZVN5bmNocm9ub3VzbHkpOgorICAgICAgICAqIHBsYXRmb3JtL25ldHdv
cmsvbWFjL1Jlc291cmNlSGFuZGxlTWFjLm1tOgorICAgICAgICAoV2ViQ29yZTo6UmVzb3VyY2VI
YW5kbGU6OnJlY2VpdmVkQ3JlZGVudGlhbCk6CisgICAgICAgICogcGxhdGZvcm0vbmV0d29yay9z
b3VwL0F1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlU291cC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpw
cm90ZWN0aW9uU3BhY2VTZXJ2ZXJUeXBlRnJvbVVSTCk6CisgICAgICAgIChXZWJDb3JlOjpwcm90
ZWN0aW9uU3BhY2VGcm9tU291cEF1dGhBbmRVUkwpOgorICAgICAgICAoV2ViQ29yZTo6cHJvdGVj
dGlvblNwYWNlRm9yQ2xpZW50Q2VydGlmaWNhdGUpOgorICAgICAgICAoV2ViQ29yZTo6cHJvdGVj
dGlvblNwYWNlRm9yQ2xpZW50Q2VydGlmaWNhdGVQYXNzd29yZCk6CisgICAgICAgICogcGxhdGZv
cm0vbmV0d29yay9zb3VwL05ldHdvcmtTdG9yYWdlU2Vzc2lvblNvdXAuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6c2NoZW1lRnJvbVByb3RlY3Rpb25TcGFjZVNlcnZlclR5cGUpOgorICAgICAgICAo
V2ViQ29yZTo6YXV0aFR5cGVGcm9tUHJvdGVjdGlvblNwYWNlQXV0aGVudGljYXRpb25TY2hlbWUp
OgorCiAyMDIxLTEyLTE3ICBBbGFuIEJ1anRhcyAgPHphbGFuQGFwcGxlLmNvbT4KIAogICAgICAg
ICBbTEZDXVtJRkNdIEFkanVzdCB0aGUgYm94IGdlb21ldHJ5IGZvciBhdG9taWMvZ2VuZXJpYyBp
bmxpbmUgbGV2ZWwgYm94ZXMgaW4gYmlkaSBjb250ZW50CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDNkMWQ1ZDNlNDM5
YmRjNTBmZTg2NTI3YzYzOWE1NzQ3ZmNjNTQyYmQuLjY3YTMxYzU3NWIxMzllZGQ1OGQzNzIwYWY4
OTM5MDc5ZWMzNjhjYzYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBi
L1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNDMgQEAKKzIwMjEtMTItMTcgIENo
cmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KKworICAgICAgICBDb252ZXJ0IFByb3RlY3Rp
b25TcGFjZSBlbnVtcyBpbnRvIGVudW0gY2xhc3NlcworICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjM0NDU1CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9OZXR3b3JrQ09SU1ByZWZs
aWdodENoZWNrZXIuY3BwOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrQ09SU1ByZWZsaWdodENo
ZWNrZXI6OmRpZFJlY2VpdmVDaGFsbGVuZ2UpOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL05l
dHdvcmtMb2FkLmNwcDoKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya0xvYWQ6OmRpZFJlY2VpdmVD
aGFsbGVuZ2UpOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL1BpbmdMb2FkLmNwcDoKKyAgICAg
ICAgKFdlYktpdDo6UGluZ0xvYWQ6OmRpZFJlY2VpdmVDaGFsbGVuZ2UpOgorICAgICAgICAqIE5l
dHdvcmtQcm9jZXNzL2NvY29hL05ldHdvcmtTZXNzaW9uQ29jb2EubW06CisgICAgICAgIChXZWJL
aXQ6Ok5ldHdvcmtTZXNzaW9uQ29jb2E6OmFsbG93c1NwZWNpZmljSFRUUFNDZXJ0aWZpY2F0ZUZv
ckhvc3QpOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL2N1cmwvTmV0d29ya0RhdGFUYXNrQ3Vy
bC5jcHA6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtEYXRhVGFza0N1cmw6Ok5ldHdvcmtEYXRh
VGFza0N1cmwpOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrRGF0YVRhc2tDdXJsOjp3aWxsUGVy
Zm9ybUhUVFBSZWRpcmVjdGlvbik6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtEYXRhVGFza0N1
cmw6OnJlc3RhcnRXaXRoQ3JlZGVudGlhbCk6CisgICAgICAgICogTmV0d29ya1Byb2Nlc3Mvc291
cC9OZXR3b3JrRGF0YVRhc2tTb3VwLmNwcDoKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya0RhdGFU
YXNrU291cDo6Y29tcGxldGVBdXRoZW50aWNhdGlvbik6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdv
cmtEYXRhVGFza1NvdXA6OmNhbmNlbEF1dGhlbnRpY2F0aW9uKToKKyAgICAgICAgKiBTaGFyZWQv
QXV0aGVudGljYXRpb24vQXV0aGVudGljYXRpb25NYW5hZ2VyLmNwcDoKKyAgICAgICAgKFdlYktp
dDo6Y2FuQ29hbGVzY2VDaGFsbGVuZ2UpOgorICAgICAgICAqIFNoYXJlZC9XZWJDb3JlQXJndW1l
bnRDb2RlcnMuY3BwOgorICAgICAgICAoSVBDOjpBcmd1bWVudENvZGVyPFByb3RlY3Rpb25TcGFj
ZT46OmRlY29kZSk6CisgICAgICAgICogU2hhcmVkL2N1cmwvV2ViQ29yZUFyZ3VtZW50Q29kZXJz
Q3VybC5jcHA6CisgICAgICAgIChJUEM6OkFyZ3VtZW50Q29kZXI8UHJvdGVjdGlvblNwYWNlPjo6
ZGVjb2RlUGxhdGZvcm1EYXRhKToKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0MvV0tBUElDYXN0
Lmg6CisgICAgICAgIChXZWJLaXQ6OnRvQVBJKToKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL2ds
aWIvV2ViS2l0QXV0aGVudGljYXRpb25SZXF1ZXN0LmNwcDoKKyAgICAgICAgKHdlYmtpdF9hdXRo
ZW50aWNhdGlvbl9yZXF1ZXN0X2dldF9zZWN1cml0eV9vcmlnaW4pOgorICAgICAgICAqIFVJUHJv
Y2Vzcy9BdXRoZW50aWNhdGlvbi9XZWJQcm90ZWN0aW9uU3BhY2UuY3BwOgorICAgICAgICAoV2Vi
S2l0OjpXZWJQcm90ZWN0aW9uU3BhY2U6OnNlcnZlclR5cGUgY29uc3QpOgorICAgICAgICAoV2Vi
S2l0OjpXZWJQcm90ZWN0aW9uU3BhY2U6OmF1dGhlbnRpY2F0aW9uU2NoZW1lIGNvbnN0KToKKyAg
ICAgICAgKiBVSVByb2Nlc3MvQXV0aGVudGljYXRpb24vV2ViUHJvdGVjdGlvblNwYWNlLmg6Cisg
ICAgICAgICogVUlQcm9jZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nlc3NQcm94eS5jcHA6CisgICAg
ICAgIChXZWJLaXQ6Ok5ldHdvcmtQcm9jZXNzUHJveHk6OnByb2Nlc3NBdXRoZW50aWNhdGlvbkNo
YWxsZW5nZSk6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtQcm9jZXNzUHJveHk6OmRpZFJlY2Vp
dmVBdXRoZW50aWNhdGlvbkNoYWxsZW5nZSk6CisKIDIwMjEtMTItMTcgIENocmlzIER1bWV6ICA8
Y2R1bWV6QGFwcGxlLmNvbT4KIAogICAgICAgICBNb3ZlIENhY2hlU3RvcmFnZSBlbmdpbmVzIGZy
b20gTmV0d29ya1Byb2Nlc3MgdG8gTmV0d29ya1Nlc3Npb24KZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXRMZWdhY3kvbWFjL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL0NoYW5n
ZUxvZwppbmRleCBhOTBlNzE3Y2E0ZWZkY2M4ZWFmM2JjY2QwYzE2MzdjZTlhYmMwNzY4Li42NTI2
ODQ4Njk5NmJkNjYwZmRhYjYzOGY4NDI4NzJiZmIwYjNkMDI3IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0TGVnYWN5L21hYy9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMv
Q2hhbmdlTG9nCkBAIC0xLDMgKzEsMTMgQEAKKzIwMjEtMTItMTcgIENocmlzIER1bWV6ICA8Y2R1
bWV6QGFwcGxlLmNvbT4KKworICAgICAgICBDb252ZXJ0IFByb3RlY3Rpb25TcGFjZSBlbnVtcyBp
bnRvIGVudW0gY2xhc3NlcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9MjM0NDU1CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisK
KyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5tbToKKyAgICAg
ICAgKFdlYkZyYW1lTG9hZGVyQ2xpZW50OjpjYW5BdXRoZW50aWNhdGVBZ2FpbnN0UHJvdGVjdGlv
blNwYWNlKToKKwogMjAyMS0xMi0xNiAgQWxleCBDaHJpc3RlbnNlbiAgPGFjaHJpc3RlbnNlbkB3
ZWJraXQub3JnPgogCiAgICAgICAgIEZpeCBpT1MgZGVidWcgYnVpbGQKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXRMZWdhY3kvd2luL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvd2lu
L0NoYW5nZUxvZwppbmRleCBjNDI3ZjM4MTE3MjllMmU3MDI2NWM4OTMxMTcwYjcyNjVkOTllNTQx
Li5hMTQ0ODIyOGNiZTEzY2EyZmMwM2RhYjE3ODMzOTIxOTkxNzc4OGM4IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdExlZ2Fj
eS93aW4vQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTYgQEAKKzIwMjEtMTItMTcgIENocmlzIER1bWV6
ICA8Y2R1bWV6QGFwcGxlLmNvbT4KKworICAgICAgICBDb252ZXJ0IFByb3RlY3Rpb25TcGFjZSBl
bnVtcyBpbnRvIGVudW0gY2xhc3NlcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9MjM0NDU1CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCisKKyAgICAgICAgKiBXZWJVUkxQcm90ZWN0aW9uU3BhY2UuY3BwOgorICAgICAgICAoV2Vi
VVJMUHJvdGVjdGlvblNwYWNlOjphdXRoZW50aWNhdGlvbk1ldGhvZCk6CisgICAgICAgIChjb3Jl
U2NoZW1lKToKKyAgICAgICAgKFdlYlVSTFByb3RlY3Rpb25TcGFjZTo6aW5pdFdpdGhIb3N0KToK
KyAgICAgICAgKFdlYlVSTFByb3RlY3Rpb25TcGFjZTo6aW5pdFdpdGhQcm94eUhvc3QpOgorCiAy
MDIxLTEyLTE0ICBKZWFuLVl2ZXMgQXZlbmFyZCAgPGp5YUBhcHBsZS5jb20+CiAKICAgICAgICAg
UmVuYW1lIFNoYXJlZEJ1ZmZlciBjbGFzc2VzLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vbmV0d29yay9DcmVkZW50aWFsU3RvcmFnZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9uZXR3b3JrL0NyZWRlbnRpYWxTdG9yYWdlLmNwcAppbmRleCAyNmEzYjllNjkzYTIx
ZmU4ODg1MTQzODdiYzFlMGQwMTIzZWI4YzViLi40ZWU3YmQxMGZjYzJjZDAzOTU3NTliMzZlMDQ1
NjZmMDJhYjFhNGM3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3Jr
L0NyZWRlbnRpYWxTdG9yYWdlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3
b3JrL0NyZWRlbnRpYWxTdG9yYWdlLmNwcApAQCAtNjAsMTYgKzYwLDE2IEBAIHN0YXRpYyBTdHJp
bmcgcHJvdGVjdGlvblNwYWNlTWFwS2V5RnJvbVVSTChjb25zdCBVUkwmIHVybCkKIAogdm9pZCBD
cmVkZW50aWFsU3RvcmFnZTo6c2V0KGNvbnN0IFN0cmluZyYgcGFydGl0aW9uTmFtZSwgY29uc3Qg
Q3JlZGVudGlhbCYgY3JlZGVudGlhbCwgY29uc3QgUHJvdGVjdGlvblNwYWNlJiBwcm90ZWN0aW9u
U3BhY2UsIGNvbnN0IFVSTCYgdXJsKQogewotICAgIEFTU0VSVChwcm90ZWN0aW9uU3BhY2UuaXNQ
cm94eSgpIHx8IHByb3RlY3Rpb25TcGFjZS5hdXRoZW50aWNhdGlvblNjaGVtZSgpID09IFByb3Rl
Y3Rpb25TcGFjZUF1dGhlbnRpY2F0aW9uU2NoZW1lQ2xpZW50Q2VydGlmaWNhdGVSZXF1ZXN0ZWQg
fHwgdXJsLnByb3RvY29sSXNJbkhUVFBGYW1pbHkoKSk7Ci0gICAgQVNTRVJUKHByb3RlY3Rpb25T
cGFjZS5pc1Byb3h5KCkgfHwgcHJvdGVjdGlvblNwYWNlLmF1dGhlbnRpY2F0aW9uU2NoZW1lKCkg
PT0gUHJvdGVjdGlvblNwYWNlQXV0aGVudGljYXRpb25TY2hlbWVDbGllbnRDZXJ0aWZpY2F0ZVJl
cXVlc3RlZCB8fCB1cmwuaXNWYWxpZCgpKTsKKyAgICBBU1NFUlQocHJvdGVjdGlvblNwYWNlLmlz
UHJveHkoKSB8fCBwcm90ZWN0aW9uU3BhY2UuYXV0aGVudGljYXRpb25TY2hlbWUoKSA9PSBQcm90
ZWN0aW9uU3BhY2U6OkF1dGhlbnRpY2F0aW9uU2NoZW1lOjpDbGllbnRDZXJ0aWZpY2F0ZVJlcXVl
c3RlZCB8fCB1cmwucHJvdG9jb2xJc0luSFRUUEZhbWlseSgpKTsKKyAgICBBU1NFUlQocHJvdGVj
dGlvblNwYWNlLmlzUHJveHkoKSB8fCBwcm90ZWN0aW9uU3BhY2UuYXV0aGVudGljYXRpb25TY2hl
bWUoKSA9PSBQcm90ZWN0aW9uU3BhY2U6OkF1dGhlbnRpY2F0aW9uU2NoZW1lOjpDbGllbnRDZXJ0
aWZpY2F0ZVJlcXVlc3RlZCB8fCB1cmwuaXNWYWxpZCgpKTsKIAogICAgIG1fcHJvdGVjdGlvblNw
YWNlVG9DcmVkZW50aWFsTWFwLnNldChzdGQ6Om1ha2VfcGFpcihwYXJ0aXRpb25OYW1lLCBwcm90
ZWN0aW9uU3BhY2UpLCBjcmVkZW50aWFsKTsKIAotICAgIGlmICghcHJvdGVjdGlvblNwYWNlLmlz
UHJveHkoKSAmJiBwcm90ZWN0aW9uU3BhY2UuYXV0aGVudGljYXRpb25TY2hlbWUoKSAhPSBQcm90
ZWN0aW9uU3BhY2VBdXRoZW50aWNhdGlvblNjaGVtZUNsaWVudENlcnRpZmljYXRlUmVxdWVzdGVk
KSB7CisgICAgaWYgKCFwcm90ZWN0aW9uU3BhY2UuaXNQcm94eSgpICYmIHByb3RlY3Rpb25TcGFj
ZS5hdXRoZW50aWNhdGlvblNjaGVtZSgpICE9IFByb3RlY3Rpb25TcGFjZTo6QXV0aGVudGljYXRp
b25TY2hlbWU6OkNsaWVudENlcnRpZmljYXRlUmVxdWVzdGVkKSB7CiAgICAgICAgIG1fb3JpZ2lu
c1dpdGhDcmVkZW50aWFscy5hZGQob3JpZ2luU3RyaW5nRnJvbVVSTCh1cmwpKTsKIAotICAgICAg
ICBQcm90ZWN0aW9uU3BhY2VBdXRoZW50aWNhdGlvblNjaGVtZSBzY2hlbWUgPSBwcm90ZWN0aW9u
U3BhY2UuYXV0aGVudGljYXRpb25TY2hlbWUoKTsKLSAgICAgICAgaWYgKHNjaGVtZSA9PSBQcm90
ZWN0aW9uU3BhY2VBdXRoZW50aWNhdGlvblNjaGVtZUhUVFBCYXNpYyB8fCBzY2hlbWUgPT0gUHJv
dGVjdGlvblNwYWNlQXV0aGVudGljYXRpb25TY2hlbWVEZWZhdWx0KSB7CisgICAgICAgIGF1dG8g
c2NoZW1lID0gcHJvdGVjdGlvblNwYWNlLmF1dGhlbnRpY2F0aW9uU2NoZW1lKCk7CisgICAgICAg
IGlmIChzY2hlbWUgPT0gUHJvdGVjdGlvblNwYWNlOjpBdXRoZW50aWNhdGlvblNjaGVtZTo6SFRU
UEJhc2ljIHx8IHNjaGVtZSA9PSBQcm90ZWN0aW9uU3BhY2U6OkF1dGhlbnRpY2F0aW9uU2NoZW1l
OjpEZWZhdWx0KSB7CiAgICAgICAgICAgICAvLyBUaGUgbWFwIGNhbiBjb250YWluIGJvdGggYSBw
YXRoIGFuZCBpdHMgc3VicGF0aCAtIHdoaWxlIHJlZHVuZGFudCwgdGhpcyBtYWtlcyBsb29rdXBz
IGZhc3Rlci4KICAgICAgICAgICAgIG1fcGF0aFRvRGVmYXVsdFByb3RlY3Rpb25TcGFjZU1hcC5z
ZXQocHJvdGVjdGlvblNwYWNlTWFwS2V5RnJvbVVSTCh1cmwpLCBwcm90ZWN0aW9uU3BhY2UpOwog
ICAgICAgICB9CkBAIC05NCw4ICs5NCw4IEBAIHZvaWQgQ3JlZGVudGlhbFN0b3JhZ2U6OnJlbW92
ZUNyZWRlbnRpYWxzV2l0aE9yaWdpbihjb25zdCBTZWN1cml0eU9yaWdpbkRhdGEmIG9yCiAgICAg
ICAgIGlmIChwcm90ZWN0aW9uU3BhY2UuaG9zdCgpID09IG9yaWdpbi5ob3N0CiAgICAgICAgICAg
ICAmJiAoKG9yaWdpbi5wb3J0ICYmIHByb3RlY3Rpb25TcGFjZS5wb3J0KCkgPT0gKm9yaWdpbi5w
b3J0KQogICAgICAgICAgICAgICAgIHx8ICghb3JpZ2luLnBvcnQgJiYgcHJvdGVjdGlvblNwYWNl
LnBvcnQoKSA9PSA4MCkpCi0gICAgICAgICAgICAmJiAoKHByb3RlY3Rpb25TcGFjZS5zZXJ2ZXJU
eXBlKCkgPT0gUHJvdGVjdGlvblNwYWNlU2VydmVySFRUUCAmJiBvcmlnaW4ucHJvdG9jb2wgPT0g
Imh0dHAiX3MpCi0gICAgICAgICAgICAgICAgfHwgKHByb3RlY3Rpb25TcGFjZS5zZXJ2ZXJUeXBl
KCkgPT0gUHJvdGVjdGlvblNwYWNlU2VydmVySFRUUFMgJiYgb3JpZ2luLnByb3RvY29sID09ICJo
dHRwcyJfcykpKQorICAgICAgICAgICAgJiYgKChwcm90ZWN0aW9uU3BhY2Uuc2VydmVyVHlwZSgp
ID09IFByb3RlY3Rpb25TcGFjZTo6U2VydmVyVHlwZTo6SFRUUCAmJiBvcmlnaW4ucHJvdG9jb2wg
PT0gImh0dHAiX3MpCisgICAgICAgICAgICAgICAgfHwgKHByb3RlY3Rpb25TcGFjZS5zZXJ2ZXJU
eXBlKCkgPT0gUHJvdGVjdGlvblNwYWNlOjpTZXJ2ZXJUeXBlOjpIVFRQUyAmJiBvcmlnaW4ucHJv
dG9jb2wgPT0gImh0dHBzIl9zKSkpCiAgICAgICAgICAgICBrZXlzVG9SZW1vdmUuYXBwZW5kKGtl
eVZhbHVlUGFpci5rZXkpOwogICAgIH0KICAgICBmb3IgKGF1dG8mIGtleSA6IGtleXNUb1JlbW92
ZSkKQEAgLTExMSwxNiArMTExLDE2IEBAIEhhc2hTZXQ8U2VjdXJpdHlPcmlnaW5EYXRhPiBDcmVk
ZW50aWFsU3RvcmFnZTo6b3JpZ2luc1dpdGhDcmVkZW50aWFscygpIGNvbnN0CiAgICAgICAgICAg
ICBjb250aW51ZTsKICAgICAgICAgU3RyaW5nIHByb3RvY29sOwogICAgICAgICBzd2l0Y2ggKHBy
b3RlY3Rpb25TcGFjZS5zZXJ2ZXJUeXBlKCkpIHsKLSAgICAgICAgY2FzZSBQcm90ZWN0aW9uU3Bh
Y2VTZXJ2ZXJIVFRQOgorICAgICAgICBjYXNlIFByb3RlY3Rpb25TcGFjZTo6U2VydmVyVHlwZTo6
SFRUUDoKICAgICAgICAgICAgIHByb3RvY29sID0gImh0dHAiX3M7CiAgICAgICAgICAgICBicmVh
azsKLSAgICAgICAgY2FzZSBQcm90ZWN0aW9uU3BhY2VTZXJ2ZXJIVFRQUzoKKyAgICAgICAgY2Fz
ZSBQcm90ZWN0aW9uU3BhY2U6OlNlcnZlclR5cGU6OkhUVFBTOgogICAgICAgICAgICAgcHJvdG9j
b2wgPSAiaHR0cHMiX3M7CiAgICAgICAgICAgICBicmVhazsKLSAgICAgICAgY2FzZSBQcm90ZWN0
aW9uU3BhY2VTZXJ2ZXJGVFA6CisgICAgICAgIGNhc2UgUHJvdGVjdGlvblNwYWNlOjpTZXJ2ZXJU
eXBlOjpGVFA6CiAgICAgICAgICAgICBwcm90b2NvbCA9ICJmdHAiX3M7CiAgICAgICAgICAgICBi
cmVhazsKLSAgICAgICAgY2FzZSBQcm90ZWN0aW9uU3BhY2VTZXJ2ZXJGVFBTOgorICAgICAgICBj
YXNlIFByb3RlY3Rpb25TcGFjZTo6U2VydmVyVHlwZTo6RlRQUzoKICAgICAgICAgICAgIHByb3Rv
Y29sID0gImZ0cHMiX3M7CiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgZGVmYXVsdDoKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvUHJvdGVjdGlvblNwYWNl
LmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL1Byb3RlY3Rpb25TcGFjZS5oCmlu
ZGV4IGE1Y2UzYmJhMTUzNTdjZmEwYmE4ZDI3OWYzNjYwN2U2NTE3YmMyN2IuLjNkODk2ZjBmM2Rm
MmQzMTE1Y2RmYjU4NjQyNDUzNzMwOTYwNWE4NjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL25ldHdvcmsvUHJvdGVjdGlvblNwYWNlLmgKKysrIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vbmV0d29yay9Qcm90ZWN0aW9uU3BhY2UuaApAQCAtNDAsNyArNDAsNyBAQCBuYW1l
c3BhY2UgV2ViQ29yZSB7CiBjbGFzcyBQcm90ZWN0aW9uU3BhY2UgOiBwdWJsaWMgUHJvdGVjdGlv
blNwYWNlQmFzZSB7CiBwdWJsaWM6CiAgICAgUHJvdGVjdGlvblNwYWNlKCkgOiBQcm90ZWN0aW9u
U3BhY2VCYXNlKCkgeyB9Ci0gICAgUHJvdGVjdGlvblNwYWNlKGNvbnN0IFN0cmluZyYgaG9zdCwg
aW50IHBvcnQsIFByb3RlY3Rpb25TcGFjZVNlcnZlclR5cGUgc2VydmVyVHlwZSwgY29uc3QgU3Ry
aW5nJiByZWFsbSwgUHJvdGVjdGlvblNwYWNlQXV0aGVudGljYXRpb25TY2hlbWUgYXV0aGVudGlj
YXRpb25TY2hlbWUpCisgICAgUHJvdGVjdGlvblNwYWNlKGNvbnN0IFN0cmluZyYgaG9zdCwgaW50
IHBvcnQsIFNlcnZlclR5cGUgc2VydmVyVHlwZSwgY29uc3QgU3RyaW5nJiByZWFsbSwgQXV0aGVu
dGljYXRpb25TY2hlbWUgYXV0aGVudGljYXRpb25TY2hlbWUpCiAgICAgICAgIDogUHJvdGVjdGlv
blNwYWNlQmFzZShob3N0LCBwb3J0LCBzZXJ2ZXJUeXBlLCByZWFsbSwgYXV0aGVudGljYXRpb25T
Y2hlbWUpCiAgICAgewogICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L25ldHdvcmsvUHJvdGVjdGlvblNwYWNlQmFzZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9uZXR3b3JrL1Byb3RlY3Rpb25TcGFjZUJhc2UuY3BwCmluZGV4IDc5NzVmOWFjZDc1MjI4MTM0
MzIzOTdiMTY4M2Q4NzA1NDUzM2JlMmMuLjEyNjgyNDA4Zjk3ZTBkMmNkNWY5NDllZGE3ZGYwNWZk
NzRiNTkwNjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvUHJv
dGVjdGlvblNwYWNlQmFzZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29y
ay9Qcm90ZWN0aW9uU3BhY2VCYXNlLmNwcApAQCAtMzYsNyArMzYsNyBAQCBuYW1lc3BhY2UgV2Vi
Q29yZSB7CiAgCiAvLyBOZWVkIHRvIGVuZm9yY2UgZW1wdHksIG5vbi1udWxsIHN0cmluZ3MgZHVl
IHRvIHRoZSBwaWNraW5lc3Mgb2YgdGhlIFN0cmluZyA9PSBTdHJpbmcgb3BlcmF0b3IKIC8vIGNv
bWJpbmVkIHdpdGggdGhlIHNlbWFudGljcyBvZiB0aGUgU3RyaW5nKE5TU3RyaW5nKikgY29uc3Ry
dWN0b3IKLVByb3RlY3Rpb25TcGFjZUJhc2U6OlByb3RlY3Rpb25TcGFjZUJhc2UoY29uc3QgU3Ry
aW5nJiBob3N0LCBpbnQgcG9ydCwgUHJvdGVjdGlvblNwYWNlU2VydmVyVHlwZSBzZXJ2ZXJUeXBl
LCBjb25zdCBTdHJpbmcmIHJlYWxtLCBQcm90ZWN0aW9uU3BhY2VBdXRoZW50aWNhdGlvblNjaGVt
ZSBhdXRoZW50aWNhdGlvblNjaGVtZSkKK1Byb3RlY3Rpb25TcGFjZUJhc2U6OlByb3RlY3Rpb25T
cGFjZUJhc2UoY29uc3QgU3RyaW5nJiBob3N0LCBpbnQgcG9ydCwgU2VydmVyVHlwZSBzZXJ2ZXJU
eXBlLCBjb25zdCBTdHJpbmcmIHJlYWxtLCBBdXRoZW50aWNhdGlvblNjaGVtZSBhdXRoZW50aWNh
dGlvblNjaGVtZSkKICAgICA6IG1faG9zdChob3N0Lmxlbmd0aCgpID8gaG9zdCA6IGVtcHR5U3Ry
aW5nKCkpCiAgICAgLCBtX3JlYWxtKHJlYWxtLmxlbmd0aCgpID8gcmVhbG0gOiBlbXB0eVN0cmlu
ZygpKQogICAgICwgbV9wb3J0KHBvcnQpCkBAIC00NywzNyArNDcsMzcgQEAgUHJvdGVjdGlvblNw
YWNlQmFzZTo6UHJvdGVjdGlvblNwYWNlQmFzZShjb25zdCBTdHJpbmcmIGhvc3QsIGludCBwb3J0
LCBQcm90ZWN0aW8KIAogYm9vbCBQcm90ZWN0aW9uU3BhY2VCYXNlOjppc1Byb3h5KCkgY29uc3QK
IHsKLSAgICByZXR1cm4gKG1fc2VydmVyVHlwZSA9PSBQcm90ZWN0aW9uU3BhY2VQcm94eUhUVFAg
fHwKLSAgICAgICAgICAgIG1fc2VydmVyVHlwZSA9PSBQcm90ZWN0aW9uU3BhY2VQcm94eUhUVFBT
IHx8Ci0gICAgICAgICAgICBtX3NlcnZlclR5cGUgPT0gUHJvdGVjdGlvblNwYWNlUHJveHlGVFAg
fHwKLSAgICAgICAgICAgIG1fc2VydmVyVHlwZSA9PSBQcm90ZWN0aW9uU3BhY2VQcm94eVNPQ0tT
KTsKKyAgICByZXR1cm4gbV9zZXJ2ZXJUeXBlID09IFNlcnZlclR5cGU6OlByb3h5SFRUUAorICAg
ICAgICB8fCBtX3NlcnZlclR5cGUgPT0gU2VydmVyVHlwZTo6UHJveHlIVFRQUworICAgICAgICB8
fCBtX3NlcnZlclR5cGUgPT0gU2VydmVyVHlwZTo6UHJveHlGVFAKKyAgICAgICAgfHwgbV9zZXJ2
ZXJUeXBlID09IFNlcnZlclR5cGU6OlByb3h5U09DS1M7CiB9CiAKIGJvb2wgUHJvdGVjdGlvblNw
YWNlQmFzZTo6cmVjZWl2ZXNDcmVkZW50aWFsU2VjdXJlbHkoKSBjb25zdAogewotICAgIHJldHVy
biAobV9zZXJ2ZXJUeXBlID09IFByb3RlY3Rpb25TcGFjZVNlcnZlckhUVFBTIHx8Ci0gICAgICAg
ICAgICBtX3NlcnZlclR5cGUgPT0gUHJvdGVjdGlvblNwYWNlU2VydmVyRlRQUyB8fCAKLSAgICAg
ICAgICAgIG1fc2VydmVyVHlwZSA9PSBQcm90ZWN0aW9uU3BhY2VQcm94eUhUVFBTIHx8IAotICAg
ICAgICAgICAgbV9hdXRoZW50aWNhdGlvblNjaGVtZSA9PSBQcm90ZWN0aW9uU3BhY2VBdXRoZW50
aWNhdGlvblNjaGVtZUhUVFBEaWdlc3QpOyAKKyAgICByZXR1cm4gbV9zZXJ2ZXJUeXBlID09IFNl
cnZlclR5cGU6OkhUVFBTCisgICAgICAgIHx8IG1fc2VydmVyVHlwZSA9PSBTZXJ2ZXJUeXBlOjpG
VFBTCisgICAgICAgIHx8IG1fc2VydmVyVHlwZSA9PSBTZXJ2ZXJUeXBlOjpQcm94eUhUVFBTCisg
ICAgICAgIHx8IG1fYXV0aGVudGljYXRpb25TY2hlbWUgPT0gQXV0aGVudGljYXRpb25TY2hlbWU6
OkhUVFBEaWdlc3Q7CiB9CiAKIGJvb2wgUHJvdGVjdGlvblNwYWNlQmFzZTo6aXNQYXNzd29yZEJh
c2VkKCkgY29uc3QKIHsKICAgICBzd2l0Y2ggKG1fYXV0aGVudGljYXRpb25TY2hlbWUpIHsKLSAg
ICBjYXNlIFByb3RlY3Rpb25TcGFjZUF1dGhlbnRpY2F0aW9uU2NoZW1lRGVmYXVsdDoKLSAgICBj
YXNlIFByb3RlY3Rpb25TcGFjZUF1dGhlbnRpY2F0aW9uU2NoZW1lSFRUUEJhc2ljOgotICAgIGNh
c2UgUHJvdGVjdGlvblNwYWNlQXV0aGVudGljYXRpb25TY2hlbWVIVFRQRGlnZXN0OgotICAgIGNh
c2UgUHJvdGVjdGlvblNwYWNlQXV0aGVudGljYXRpb25TY2hlbWVIVE1MRm9ybToKLSAgICBjYXNl
IFByb3RlY3Rpb25TcGFjZUF1dGhlbnRpY2F0aW9uU2NoZW1lTlRMTToKLSAgICBjYXNlIFByb3Rl
Y3Rpb25TcGFjZUF1dGhlbnRpY2F0aW9uU2NoZW1lTmVnb3RpYXRlOgotICAgIGNhc2UgUHJvdGVj
dGlvblNwYWNlQXV0aGVudGljYXRpb25TY2hlbWVPQXV0aDoKKyAgICBjYXNlIEF1dGhlbnRpY2F0
aW9uU2NoZW1lOjpEZWZhdWx0OgorICAgIGNhc2UgQXV0aGVudGljYXRpb25TY2hlbWU6OkhUVFBC
YXNpYzoKKyAgICBjYXNlIEF1dGhlbnRpY2F0aW9uU2NoZW1lOjpIVFRQRGlnZXN0OgorICAgIGNh
c2UgQXV0aGVudGljYXRpb25TY2hlbWU6OkhUTUxGb3JtOgorICAgIGNhc2UgQXV0aGVudGljYXRp
b25TY2hlbWU6Ok5UTE06CisgICAgY2FzZSBBdXRoZW50aWNhdGlvblNjaGVtZTo6TmVnb3RpYXRl
OgorICAgIGNhc2UgQXV0aGVudGljYXRpb25TY2hlbWU6Ok9BdXRoOgogI2lmIFVTRShHTElCKQot
ICAgIGNhc2UgUHJvdGVjdGlvblNwYWNlQXV0aGVudGljYXRpb25TY2hlbWVDbGllbnRDZXJ0aWZp
Y2F0ZVBJTlJlcXVlc3RlZDoKKyAgICBjYXNlIEF1dGhlbnRpY2F0aW9uU2NoZW1lOjpDbGllbnRD
ZXJ0aWZpY2F0ZVBJTlJlcXVlc3RlZDoKICNlbmRpZgogICAgICAgICByZXR1cm4gdHJ1ZTsKLSAg
ICBjYXNlIFByb3RlY3Rpb25TcGFjZUF1dGhlbnRpY2F0aW9uU2NoZW1lQ2xpZW50Q2VydGlmaWNh
dGVSZXF1ZXN0ZWQ6Ci0gICAgY2FzZSBQcm90ZWN0aW9uU3BhY2VBdXRoZW50aWNhdGlvblNjaGVt
ZVNlcnZlclRydXN0RXZhbHVhdGlvblJlcXVlc3RlZDoKLSAgICBjYXNlIFByb3RlY3Rpb25TcGFj
ZUF1dGhlbnRpY2F0aW9uU2NoZW1lVW5rbm93bjoKKyAgICBjYXNlIEF1dGhlbnRpY2F0aW9uU2No
ZW1lOjpDbGllbnRDZXJ0aWZpY2F0ZVJlcXVlc3RlZDoKKyAgICBjYXNlIEF1dGhlbnRpY2F0aW9u
U2NoZW1lOjpTZXJ2ZXJUcnVzdEV2YWx1YXRpb25SZXF1ZXN0ZWQ6CisgICAgY2FzZSBBdXRoZW50
aWNhdGlvblNjaGVtZTo6VW5rbm93bjoKICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgIH0KIApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9Qcm90ZWN0aW9uU3Bh
Y2VCYXNlLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL1Byb3RlY3Rpb25TcGFj
ZUJhc2UuaAppbmRleCA4YmU0MWQ0NzQwN2Y0ZWE0ODIxOWQ5MThjZmE2OTdiMThhODFlMzg2Li5k
MWRlOTZhZTA2MDA1NzRmMDUyNWMwZjRmNWJlOGVhZDZkMmI4YTYyIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL1Byb3RlY3Rpb25TcGFjZUJhc2UuaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL1Byb3RlY3Rpb25TcGFjZUJhc2UuaApAQCAt
MzEsNDUgKzMxLDQ0IEBACiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNzIFByb3RlY3Rpb25T
cGFjZTsKLQotZW51bSBQcm90ZWN0aW9uU3BhY2VTZXJ2ZXJUeXBlIHsKLSAgICBQcm90ZWN0aW9u
U3BhY2VTZXJ2ZXJIVFRQID0gMSwKLSAgICBQcm90ZWN0aW9uU3BhY2VTZXJ2ZXJIVFRQUyA9IDIs
Ci0gICAgUHJvdGVjdGlvblNwYWNlU2VydmVyRlRQID0gMywKLSAgICBQcm90ZWN0aW9uU3BhY2VT
ZXJ2ZXJGVFBTID0gNCwKLSAgICBQcm90ZWN0aW9uU3BhY2VQcm94eUhUVFAgPSA1LAotICAgIFBy
b3RlY3Rpb25TcGFjZVByb3h5SFRUUFMgPSA2LAotICAgIFByb3RlY3Rpb25TcGFjZVByb3h5RlRQ
ID0gNywKLSAgICBQcm90ZWN0aW9uU3BhY2VQcm94eVNPQ0tTID0gOAotfTsKLQotZW51bSBQcm90
ZWN0aW9uU3BhY2VBdXRoZW50aWNhdGlvblNjaGVtZSB7Ci0gICAgUHJvdGVjdGlvblNwYWNlQXV0
aGVudGljYXRpb25TY2hlbWVEZWZhdWx0ID0gMSwKLSAgICBQcm90ZWN0aW9uU3BhY2VBdXRoZW50
aWNhdGlvblNjaGVtZUhUVFBCYXNpYyA9IDIsCi0gICAgUHJvdGVjdGlvblNwYWNlQXV0aGVudGlj
YXRpb25TY2hlbWVIVFRQRGlnZXN0ID0gMywKLSAgICBQcm90ZWN0aW9uU3BhY2VBdXRoZW50aWNh
dGlvblNjaGVtZUhUTUxGb3JtID0gNCwKLSAgICBQcm90ZWN0aW9uU3BhY2VBdXRoZW50aWNhdGlv
blNjaGVtZU5UTE0gPSA1LAotICAgIFByb3RlY3Rpb25TcGFjZUF1dGhlbnRpY2F0aW9uU2NoZW1l
TmVnb3RpYXRlID0gNiwKLSAgICBQcm90ZWN0aW9uU3BhY2VBdXRoZW50aWNhdGlvblNjaGVtZUNs
aWVudENlcnRpZmljYXRlUmVxdWVzdGVkID0gNywKLSAgICBQcm90ZWN0aW9uU3BhY2VBdXRoZW50
aWNhdGlvblNjaGVtZVNlcnZlclRydXN0RXZhbHVhdGlvblJlcXVlc3RlZCA9IDgsCi0gICAgUHJv
dGVjdGlvblNwYWNlQXV0aGVudGljYXRpb25TY2hlbWVPQXV0aCA9IDksCi0jaWYgVVNFKEdMSUIp
Ci0gICAgUHJvdGVjdGlvblNwYWNlQXV0aGVudGljYXRpb25TY2hlbWVDbGllbnRDZXJ0aWZpY2F0
ZVBJTlJlcXVlc3RlZCA9IDEwLAotI2VuZGlmCi0gICAgUHJvdGVjdGlvblNwYWNlQXV0aGVudGlj
YXRpb25TY2hlbWVVbmtub3duID0gMTAwCi19OwogICAKIGNsYXNzIFByb3RlY3Rpb25TcGFjZUJh
c2UgewotCiBwdWJsaWM6CisgICAgZW51bSBjbGFzcyBTZXJ2ZXJUeXBlIDogdWludDhfdCB7Cisg
ICAgICAgIEhUVFAgPSAxLAorICAgICAgICBIVFRQUyA9IDIsCisgICAgICAgIEZUUCA9IDMsCisg
ICAgICAgIEZUUFMgPSA0LAorICAgICAgICBQcm94eUhUVFAgPSA1LAorICAgICAgICBQcm94eUhU
VFBTID0gNiwKKyAgICAgICAgUHJveHlGVFAgPSA3LAorICAgICAgICBQcm94eVNPQ0tTID0gOAor
ICAgIH07CisKKyAgICBlbnVtIGNsYXNzIEF1dGhlbnRpY2F0aW9uU2NoZW1lIDogdWludDhfdCB7
CisgICAgICAgIERlZmF1bHQgPSAxLAorICAgICAgICBIVFRQQmFzaWMgPSAyLAorICAgICAgICBI
VFRQRGlnZXN0ID0gMywKKyAgICAgICAgSFRNTEZvcm0gPSA0LAorICAgICAgICBOVExNID0gNSwK
KyAgICAgICAgTmVnb3RpYXRlID0gNiwKKyAgICAgICAgQ2xpZW50Q2VydGlmaWNhdGVSZXF1ZXN0
ZWQgPSA3LAorICAgICAgICBTZXJ2ZXJUcnVzdEV2YWx1YXRpb25SZXF1ZXN0ZWQgPSA4LAorICAg
ICAgICBPQXV0aCA9IDksCisjaWYgVVNFKEdMSUIpCisgICAgICAgIENsaWVudENlcnRpZmljYXRl
UElOUmVxdWVzdGVkID0gMTAsCisjZW5kaWYKKyAgICAgICAgVW5rbm93biA9IDEwMAorICAgIH07
CisKICAgICBib29sIGlzSGFzaFRhYmxlRGVsZXRlZFZhbHVlKCkgY29uc3QgeyByZXR1cm4gbV9p
c0hhc2hUYWJsZURlbGV0ZWRWYWx1ZTsgfQogICAgIAogICAgIGNvbnN0IFN0cmluZyYgaG9zdCgp
IGNvbnN0IHsgcmV0dXJuIG1faG9zdDsgfQogICAgIGludCBwb3J0KCkgY29uc3QgeyByZXR1cm4g
bV9wb3J0OyB9Ci0gICAgUHJvdGVjdGlvblNwYWNlU2VydmVyVHlwZSBzZXJ2ZXJUeXBlKCkgY29u
c3QgeyByZXR1cm4gbV9zZXJ2ZXJUeXBlOyB9CisgICAgU2VydmVyVHlwZSBzZXJ2ZXJUeXBlKCkg
Y29uc3QgeyByZXR1cm4gbV9zZXJ2ZXJUeXBlOyB9CiAgICAgV0VCQ09SRV9FWFBPUlQgYm9vbCBp
c1Byb3h5KCkgY29uc3Q7CiAgICAgY29uc3QgU3RyaW5nJiByZWFsbSgpIGNvbnN0IHsgcmV0dXJu
IG1fcmVhbG07IH0KLSAgICBQcm90ZWN0aW9uU3BhY2VBdXRoZW50aWNhdGlvblNjaGVtZSBhdXRo
ZW50aWNhdGlvblNjaGVtZSgpIGNvbnN0IHsgcmV0dXJuIG1fYXV0aGVudGljYXRpb25TY2hlbWU7
IH0KKyAgICBBdXRoZW50aWNhdGlvblNjaGVtZSBhdXRoZW50aWNhdGlvblNjaGVtZSgpIGNvbnN0
IHsgcmV0dXJuIG1fYXV0aGVudGljYXRpb25TY2hlbWU7IH0KICAgICAKICAgICBXRUJDT1JFX0VY
UE9SVCBib29sIHJlY2VpdmVzQ3JlZGVudGlhbFNlY3VyZWx5KCkgY29uc3Q7CiAgICAgV0VCQ09S
RV9FWFBPUlQgYm9vbCBpc1Bhc3N3b3JkQmFzZWQoKSBjb25zdDsKQEAgLTgwLDcgKzc5LDcgQEAg
cHVibGljOgogCiBwcm90ZWN0ZWQ6CiAgICAgUHJvdGVjdGlvblNwYWNlQmFzZSgpID0gZGVmYXVs
dDsKLSAgICBXRUJDT1JFX0VYUE9SVCBQcm90ZWN0aW9uU3BhY2VCYXNlKGNvbnN0IFN0cmluZyYg
aG9zdCwgaW50IHBvcnQsIFByb3RlY3Rpb25TcGFjZVNlcnZlclR5cGUsIGNvbnN0IFN0cmluZyYg
cmVhbG0sIFByb3RlY3Rpb25TcGFjZUF1dGhlbnRpY2F0aW9uU2NoZW1lKTsKKyAgICBXRUJDT1JF
X0VYUE9SVCBQcm90ZWN0aW9uU3BhY2VCYXNlKGNvbnN0IFN0cmluZyYgaG9zdCwgaW50IHBvcnQs
IFNlcnZlclR5cGUsIGNvbnN0IFN0cmluZyYgcmVhbG0sIEF1dGhlbnRpY2F0aW9uU2NoZW1lKTsK
IAogICAgIC8vIEhhc2ggdGFibGUgZGVsZXRlZCB2YWx1ZXMsIHdoaWNoIGFyZSBvbmx5IGNvbnN0
cnVjdGVkIGFuZCBuZXZlciBjb3BpZWQgb3IgZGVzdHJveWVkLgogICAgIFByb3RlY3Rpb25TcGFj
ZUJhc2UoV1RGOjpIYXNoVGFibGVEZWxldGVkVmFsdWVUeXBlKSA6IG1faXNIYXNoVGFibGVEZWxl
dGVkVmFsdWUodHJ1ZSkgeyB9CkBAIC05NCw4ICs5Myw4IEBAIHByaXZhdGU6CiAgICAgU3RyaW5n
IG1fcmVhbG0geyBlbXB0eVN0cmluZygpIH07CiAKICAgICBpbnQgbV9wb3J0IHsgMCB9OwotICAg
IFByb3RlY3Rpb25TcGFjZVNlcnZlclR5cGUgbV9zZXJ2ZXJUeXBlIHsgUHJvdGVjdGlvblNwYWNl
U2VydmVySFRUUCB9OwotICAgIFByb3RlY3Rpb25TcGFjZUF1dGhlbnRpY2F0aW9uU2NoZW1lIG1f
YXV0aGVudGljYXRpb25TY2hlbWUgeyBQcm90ZWN0aW9uU3BhY2VBdXRoZW50aWNhdGlvblNjaGVt
ZURlZmF1bHQgfTsKKyAgICBTZXJ2ZXJUeXBlIG1fc2VydmVyVHlwZSB7IFNlcnZlclR5cGU6OkhU
VFAgfTsKKyAgICBBdXRoZW50aWNhdGlvblNjaGVtZSBtX2F1dGhlbnRpY2F0aW9uU2NoZW1lIHsg
QXV0aGVudGljYXRpb25TY2hlbWU6OkRlZmF1bHQgfTsKICAgICBib29sIG1faXNIYXNoVGFibGVE
ZWxldGVkVmFsdWUgeyBmYWxzZSB9OwogfTsKIApAQCAtMTA2LDMzICsxMDUsMzMgQEAgaW5saW5l
IGJvb2wgb3BlcmF0b3IhPShjb25zdCBQcm90ZWN0aW9uU3BhY2UmIGEsIGNvbnN0IFByb3RlY3Rp
b25TcGFjZSYgYikgeyByZXQKIAogbmFtZXNwYWNlIFdURiB7CiAKLXRlbXBsYXRlPD4gc3RydWN0
IEVudW1UcmFpdHM8V2ViQ29yZTo6UHJvdGVjdGlvblNwYWNlQXV0aGVudGljYXRpb25TY2hlbWU+
IHsKK3RlbXBsYXRlPD4gc3RydWN0IEVudW1UcmFpdHM8V2ViQ29yZTo6UHJvdGVjdGlvblNwYWNl
QmFzZTo6QXV0aGVudGljYXRpb25TY2hlbWU+IHsKICAgICB1c2luZyB2YWx1ZXMgPSBFbnVtVmFs
dWVzPAotICAgICAgICBXZWJDb3JlOjpQcm90ZWN0aW9uU3BhY2VBdXRoZW50aWNhdGlvblNjaGVt
ZSwKLSAgICAgICAgV2ViQ29yZTo6UHJvdGVjdGlvblNwYWNlQXV0aGVudGljYXRpb25TY2hlbWU6
OlByb3RlY3Rpb25TcGFjZUF1dGhlbnRpY2F0aW9uU2NoZW1lRGVmYXVsdCwKLSAgICAgICAgV2Vi
Q29yZTo6UHJvdGVjdGlvblNwYWNlQXV0aGVudGljYXRpb25TY2hlbWU6OlByb3RlY3Rpb25TcGFj
ZUF1dGhlbnRpY2F0aW9uU2NoZW1lSFRUUEJhc2ljLAotICAgICAgICBXZWJDb3JlOjpQcm90ZWN0
aW9uU3BhY2VBdXRoZW50aWNhdGlvblNjaGVtZTo6UHJvdGVjdGlvblNwYWNlQXV0aGVudGljYXRp
b25TY2hlbWVIVFRQRGlnZXN0LAotICAgICAgICBXZWJDb3JlOjpQcm90ZWN0aW9uU3BhY2VBdXRo
ZW50aWNhdGlvblNjaGVtZTo6UHJvdGVjdGlvblNwYWNlQXV0aGVudGljYXRpb25TY2hlbWVIVE1M
Rm9ybSwKLSAgICAgICAgV2ViQ29yZTo6UHJvdGVjdGlvblNwYWNlQXV0aGVudGljYXRpb25TY2hl
bWU6OlByb3RlY3Rpb25TcGFjZUF1dGhlbnRpY2F0aW9uU2NoZW1lTlRMTSwKLSAgICAgICAgV2Vi
Q29yZTo6UHJvdGVjdGlvblNwYWNlQXV0aGVudGljYXRpb25TY2hlbWU6OlByb3RlY3Rpb25TcGFj
ZUF1dGhlbnRpY2F0aW9uU2NoZW1lTmVnb3RpYXRlLAotICAgICAgICBXZWJDb3JlOjpQcm90ZWN0
aW9uU3BhY2VBdXRoZW50aWNhdGlvblNjaGVtZTo6UHJvdGVjdGlvblNwYWNlQXV0aGVudGljYXRp
b25TY2hlbWVDbGllbnRDZXJ0aWZpY2F0ZVJlcXVlc3RlZCwKLSAgICAgICAgV2ViQ29yZTo6UHJv
dGVjdGlvblNwYWNlQXV0aGVudGljYXRpb25TY2hlbWU6OlByb3RlY3Rpb25TcGFjZUF1dGhlbnRp
Y2F0aW9uU2NoZW1lU2VydmVyVHJ1c3RFdmFsdWF0aW9uUmVxdWVzdGVkLAotICAgICAgICBXZWJD
b3JlOjpQcm90ZWN0aW9uU3BhY2VBdXRoZW50aWNhdGlvblNjaGVtZTo6UHJvdGVjdGlvblNwYWNl
QXV0aGVudGljYXRpb25TY2hlbWVPQXV0aCwKLSAgICAgICAgV2ViQ29yZTo6UHJvdGVjdGlvblNw
YWNlQXV0aGVudGljYXRpb25TY2hlbWU6OlByb3RlY3Rpb25TcGFjZUF1dGhlbnRpY2F0aW9uU2No
ZW1lVW5rbm93bgorICAgICAgICBXZWJDb3JlOjpQcm90ZWN0aW9uU3BhY2VCYXNlOjpBdXRoZW50
aWNhdGlvblNjaGVtZSwKKyAgICAgICAgV2ViQ29yZTo6UHJvdGVjdGlvblNwYWNlQmFzZTo6QXV0
aGVudGljYXRpb25TY2hlbWU6OkRlZmF1bHQsCisgICAgICAgIFdlYkNvcmU6OlByb3RlY3Rpb25T
cGFjZUJhc2U6OkF1dGhlbnRpY2F0aW9uU2NoZW1lOjpIVFRQQmFzaWMsCisgICAgICAgIFdlYkNv
cmU6OlByb3RlY3Rpb25TcGFjZUJhc2U6OkF1dGhlbnRpY2F0aW9uU2NoZW1lOjpIVFRQRGlnZXN0
LAorICAgICAgICBXZWJDb3JlOjpQcm90ZWN0aW9uU3BhY2VCYXNlOjpBdXRoZW50aWNhdGlvblNj
aGVtZTo6SFRNTEZvcm0sCisgICAgICAgIFdlYkNvcmU6OlByb3RlY3Rpb25TcGFjZUJhc2U6OkF1
dGhlbnRpY2F0aW9uU2NoZW1lOjpOVExNLAorICAgICAgICBXZWJDb3JlOjpQcm90ZWN0aW9uU3Bh
Y2VCYXNlOjpBdXRoZW50aWNhdGlvblNjaGVtZTo6TmVnb3RpYXRlLAorICAgICAgICBXZWJDb3Jl
OjpQcm90ZWN0aW9uU3BhY2VCYXNlOjpBdXRoZW50aWNhdGlvblNjaGVtZTo6Q2xpZW50Q2VydGlm
aWNhdGVSZXF1ZXN0ZWQsCisgICAgICAgIFdlYkNvcmU6OlByb3RlY3Rpb25TcGFjZUJhc2U6OkF1
dGhlbnRpY2F0aW9uU2NoZW1lOjpTZXJ2ZXJUcnVzdEV2YWx1YXRpb25SZXF1ZXN0ZWQsCisgICAg
ICAgIFdlYkNvcmU6OlByb3RlY3Rpb25TcGFjZUJhc2U6OkF1dGhlbnRpY2F0aW9uU2NoZW1lOjpP
QXV0aCwKKyAgICAgICAgV2ViQ29yZTo6UHJvdGVjdGlvblNwYWNlQmFzZTo6QXV0aGVudGljYXRp
b25TY2hlbWU6OlVua25vd24KICAgICA+OwogfTsKIAotdGVtcGxhdGU8PiBzdHJ1Y3QgRW51bVRy
YWl0czxXZWJDb3JlOjpQcm90ZWN0aW9uU3BhY2VTZXJ2ZXJUeXBlPiB7Cit0ZW1wbGF0ZTw+IHN0
cnVjdCBFbnVtVHJhaXRzPFdlYkNvcmU6OlByb3RlY3Rpb25TcGFjZUJhc2U6OlNlcnZlclR5cGU+
IHsKICAgICB1c2luZyB2YWx1ZXMgPSBFbnVtVmFsdWVzPAotICAgICAgICBXZWJDb3JlOjpQcm90
ZWN0aW9uU3BhY2VTZXJ2ZXJUeXBlLAotICAgICAgICBXZWJDb3JlOjpQcm90ZWN0aW9uU3BhY2VT
ZXJ2ZXJUeXBlOjpQcm90ZWN0aW9uU3BhY2VTZXJ2ZXJIVFRQLAotICAgICAgICBXZWJDb3JlOjpQ
cm90ZWN0aW9uU3BhY2VTZXJ2ZXJUeXBlOjpQcm90ZWN0aW9uU3BhY2VTZXJ2ZXJIVFRQUywKLSAg
ICAgICAgV2ViQ29yZTo6UHJvdGVjdGlvblNwYWNlU2VydmVyVHlwZTo6UHJvdGVjdGlvblNwYWNl
U2VydmVyRlRQLAotICAgICAgICBXZWJDb3JlOjpQcm90ZWN0aW9uU3BhY2VTZXJ2ZXJUeXBlOjpQ
cm90ZWN0aW9uU3BhY2VTZXJ2ZXJGVFBTLAotICAgICAgICBXZWJDb3JlOjpQcm90ZWN0aW9uU3Bh
Y2VTZXJ2ZXJUeXBlOjpQcm90ZWN0aW9uU3BhY2VQcm94eUhUVFAsCi0gICAgICAgIFdlYkNvcmU6
OlByb3RlY3Rpb25TcGFjZVNlcnZlclR5cGU6OlByb3RlY3Rpb25TcGFjZVByb3h5SFRUUFMsCi0g
ICAgICAgIFdlYkNvcmU6OlByb3RlY3Rpb25TcGFjZVNlcnZlclR5cGU6OlByb3RlY3Rpb25TcGFj
ZVByb3h5RlRQLAotICAgICAgICBXZWJDb3JlOjpQcm90ZWN0aW9uU3BhY2VTZXJ2ZXJUeXBlOjpQ
cm90ZWN0aW9uU3BhY2VQcm94eVNPQ0tTCisgICAgICAgIFdlYkNvcmU6OlByb3RlY3Rpb25TcGFj
ZUJhc2U6OlNlcnZlclR5cGUsCisgICAgICAgIFdlYkNvcmU6OlByb3RlY3Rpb25TcGFjZUJhc2U6
OlNlcnZlclR5cGU6OkhUVFAsCisgICAgICAgIFdlYkNvcmU6OlByb3RlY3Rpb25TcGFjZUJhc2U6
OlNlcnZlclR5cGU6OkhUVFBTLAorICAgICAgICBXZWJDb3JlOjpQcm90ZWN0aW9uU3BhY2VCYXNl
OjpTZXJ2ZXJUeXBlOjpGVFAsCisgICAgICAgIFdlYkNvcmU6OlByb3RlY3Rpb25TcGFjZUJhc2U6
OlNlcnZlclR5cGU6OkZUUFMsCisgICAgICAgIFdlYkNvcmU6OlByb3RlY3Rpb25TcGFjZUJhc2U6
OlNlcnZlclR5cGU6OlByb3h5SFRUUCwKKyAgICAgICAgV2ViQ29yZTo6UHJvdGVjdGlvblNwYWNl
QmFzZTo6U2VydmVyVHlwZTo6UHJveHlIVFRQUywKKyAgICAgICAgV2ViQ29yZTo6UHJvdGVjdGlv
blNwYWNlQmFzZTo6U2VydmVyVHlwZTo6UHJveHlGVFAsCisgICAgICAgIFdlYkNvcmU6OlByb3Rl
Y3Rpb25TcGFjZUJhc2U6OlNlcnZlclR5cGU6OlByb3h5U09DS1MKICAgICA+OwogfTsKIApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jZi9BdXRoZW50aWNhdGlv
bkNGLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY2YvQXV0aGVudGljYXRp
b25DRi5jcHAKaW5kZXggY2VlNWQ3ZWFjYmNiNjIxMGIyMjlkY2VhYzg3YjQ2ZjRmYmQ4ZWNlMC4u
M2M5Mjc3MDFiNjI3MmY5N2VjOWM1ZmY0YWIwZjA5ZjQ2MzhhODI1MiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jZi9BdXRoZW50aWNhdGlvbkNGLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2NmL0F1dGhlbnRpY2F0aW9uQ0YuY3Bw
CkBAIC0xMDQsMjggKzEwNCwyOCBAQCBSZXRhaW5QdHI8Q0ZVUkxQcm90ZWN0aW9uU3BhY2VSZWY+
IGNyZWF0ZUNGKGNvbnN0IFByb3RlY3Rpb25TcGFjZSYgY29yZVNwYWNlKQogewogICAgIENGVVJM
UHJvdGVjdGlvblNwYWNlU2VydmVyVHlwZSBzZXJ2ZXJUeXBlID0ga0NGVVJMUHJvdGVjdGlvblNw
YWNlU2VydmVySFRUUDsKICAgICBzd2l0Y2ggKGNvcmVTcGFjZS5zZXJ2ZXJUeXBlKCkpIHsKLSAg
ICBjYXNlIFByb3RlY3Rpb25TcGFjZVNlcnZlckhUVFA6CisgICAgY2FzZSBQcm90ZWN0aW9uU3Bh
Y2U6OlNlcnZlclR5cGU6OkhUVFA6CiAgICAgICAgIHNlcnZlclR5cGUgPSBrQ0ZVUkxQcm90ZWN0
aW9uU3BhY2VTZXJ2ZXJIVFRQOwogICAgICAgICBicmVhazsKLSAgICBjYXNlIFByb3RlY3Rpb25T
cGFjZVNlcnZlckhUVFBTOgorICAgIGNhc2UgUHJvdGVjdGlvblNwYWNlOjpTZXJ2ZXJUeXBlOjpI
VFRQUzoKICAgICAgICAgc2VydmVyVHlwZSA9IGtDRlVSTFByb3RlY3Rpb25TcGFjZVNlcnZlckhU
VFBTOwogICAgICAgICBicmVhazsKLSAgICBjYXNlIFByb3RlY3Rpb25TcGFjZVNlcnZlckZUUDoK
KyAgICBjYXNlIFByb3RlY3Rpb25TcGFjZTo6U2VydmVyVHlwZTo6RlRQOgogICAgICAgICBzZXJ2
ZXJUeXBlID0ga0NGVVJMUHJvdGVjdGlvblNwYWNlU2VydmVyRlRQOwogICAgICAgICBicmVhazsK
LSAgICBjYXNlIFByb3RlY3Rpb25TcGFjZVNlcnZlckZUUFM6CisgICAgY2FzZSBQcm90ZWN0aW9u
U3BhY2U6OlNlcnZlclR5cGU6OkZUUFM6CiAgICAgICAgIHNlcnZlclR5cGUgPSBrQ0ZVUkxQcm90
ZWN0aW9uU3BhY2VTZXJ2ZXJGVFBTOwogICAgICAgICBicmVhazsKLSAgICBjYXNlIFByb3RlY3Rp
b25TcGFjZVByb3h5SFRUUDoKKyAgICBjYXNlIFByb3RlY3Rpb25TcGFjZTo6U2VydmVyVHlwZTo6
UHJveHlIVFRQOgogICAgICAgICBzZXJ2ZXJUeXBlID0ga0NGVVJMUHJvdGVjdGlvblNwYWNlUHJv
eHlIVFRQOwogICAgICAgICBicmVhazsKLSAgICBjYXNlIFByb3RlY3Rpb25TcGFjZVByb3h5SFRU
UFM6CisgICAgY2FzZSBQcm90ZWN0aW9uU3BhY2U6OlNlcnZlclR5cGU6OlByb3h5SFRUUFM6CiAg
ICAgICAgIHNlcnZlclR5cGUgPSBrQ0ZVUkxQcm90ZWN0aW9uU3BhY2VQcm94eUhUVFBTOwogICAg
ICAgICBicmVhazsKLSAgICBjYXNlIFByb3RlY3Rpb25TcGFjZVByb3h5RlRQOgorICAgIGNhc2Ug
UHJvdGVjdGlvblNwYWNlOjpTZXJ2ZXJUeXBlOjpQcm94eUZUUDoKICAgICAgICAgc2VydmVyVHlw
ZSA9IGtDRlVSTFByb3RlY3Rpb25TcGFjZVByb3h5RlRQOwogICAgICAgICBicmVhazsKLSAgICBj
YXNlIFByb3RlY3Rpb25TcGFjZVByb3h5U09DS1M6CisgICAgY2FzZSBQcm90ZWN0aW9uU3BhY2U6
OlNlcnZlclR5cGU6OlByb3h5U09DS1M6CiAgICAgICAgIHNlcnZlclR5cGUgPSBrQ0ZVUkxQcm90
ZWN0aW9uU3BhY2VQcm94eVNPQ0tTOwogICAgICAgICBicmVhazsKICAgICBkZWZhdWx0OgpAQCAt
MTM0LDI5ICsxMzQsMjkgQEAgUmV0YWluUHRyPENGVVJMUHJvdGVjdGlvblNwYWNlUmVmPiBjcmVh
dGVDRihjb25zdCBQcm90ZWN0aW9uU3BhY2UmIGNvcmVTcGFjZSkKIAogICAgIENGVVJMUHJvdGVj
dGlvblNwYWNlQXV0aGVudGljYXRpb25TY2hlbWUgc2NoZW1lID0ga0NGVVJMUHJvdGVjdGlvblNw
YWNlQXV0aGVudGljYXRpb25TY2hlbWVEZWZhdWx0OwogICAgIHN3aXRjaCAoY29yZVNwYWNlLmF1
dGhlbnRpY2F0aW9uU2NoZW1lKCkpIHsKLSAgICBjYXNlIFByb3RlY3Rpb25TcGFjZUF1dGhlbnRp
Y2F0aW9uU2NoZW1lRGVmYXVsdDoKKyAgICBjYXNlIFByb3RlY3Rpb25TcGFjZTo6QXV0aGVudGlj
YXRpb25TY2hlbWU6OkRlZmF1bHQ6CiAgICAgICAgIHNjaGVtZSA9IGtDRlVSTFByb3RlY3Rpb25T
cGFjZUF1dGhlbnRpY2F0aW9uU2NoZW1lRGVmYXVsdDsKICAgICAgICAgYnJlYWs7Ci0gICAgY2Fz
ZSBQcm90ZWN0aW9uU3BhY2VBdXRoZW50aWNhdGlvblNjaGVtZUhUVFBCYXNpYzoKKyAgICBjYXNl
IFByb3RlY3Rpb25TcGFjZTo6QXV0aGVudGljYXRpb25TY2hlbWU6OkhUVFBCYXNpYzoKICAgICAg
ICAgc2NoZW1lID0ga0NGVVJMUHJvdGVjdGlvblNwYWNlQXV0aGVudGljYXRpb25TY2hlbWVIVFRQ
QmFzaWM7CiAgICAgICAgIGJyZWFrOwotICAgIGNhc2UgUHJvdGVjdGlvblNwYWNlQXV0aGVudGlj
YXRpb25TY2hlbWVIVFRQRGlnZXN0OgorICAgIGNhc2UgUHJvdGVjdGlvblNwYWNlOjpBdXRoZW50
aWNhdGlvblNjaGVtZTo6SFRUUERpZ2VzdDoKICAgICAgICAgc2NoZW1lID0ga0NGVVJMUHJvdGVj
dGlvblNwYWNlQXV0aGVudGljYXRpb25TY2hlbWVIVFRQRGlnZXN0OwogICAgICAgICBicmVhazsK
LSAgICBjYXNlIFByb3RlY3Rpb25TcGFjZUF1dGhlbnRpY2F0aW9uU2NoZW1lSFRNTEZvcm06Cisg
ICAgY2FzZSBQcm90ZWN0aW9uU3BhY2U6OkF1dGhlbnRpY2F0aW9uU2NoZW1lOjpIVE1MRm9ybToK
ICAgICAgICAgc2NoZW1lID0ga0NGVVJMUHJvdGVjdGlvblNwYWNlQXV0aGVudGljYXRpb25TY2hl
bWVIVE1MRm9ybTsKICAgICAgICAgYnJlYWs7Ci0gICAgY2FzZSBQcm90ZWN0aW9uU3BhY2VBdXRo
ZW50aWNhdGlvblNjaGVtZU5UTE06CisgICAgY2FzZSBQcm90ZWN0aW9uU3BhY2U6OkF1dGhlbnRp
Y2F0aW9uU2NoZW1lOjpOVExNOgogICAgICAgICBzY2hlbWUgPSBrQ0ZVUkxQcm90ZWN0aW9uU3Bh
Y2VBdXRoZW50aWNhdGlvblNjaGVtZU5UTE07CiAgICAgICAgIGJyZWFrOwotICAgIGNhc2UgUHJv
dGVjdGlvblNwYWNlQXV0aGVudGljYXRpb25TY2hlbWVOZWdvdGlhdGU6CisgICAgY2FzZSBQcm90
ZWN0aW9uU3BhY2U6OkF1dGhlbnRpY2F0aW9uU2NoZW1lOjpOZWdvdGlhdGU6CiAgICAgICAgIHNj
aGVtZSA9IGtDRlVSTFByb3RlY3Rpb25TcGFjZUF1dGhlbnRpY2F0aW9uU2NoZW1lTmVnb3RpYXRl
OwogICAgICAgICBicmVhazsKICNpZiBVU0UoUFJPVEVDVElPTl9TUEFDRV9BVVRIX0NBTExCQUNL
KQotICAgIGNhc2UgUHJvdGVjdGlvblNwYWNlQXV0aGVudGljYXRpb25TY2hlbWVTZXJ2ZXJUcnVz
dEV2YWx1YXRpb25SZXF1ZXN0ZWQ6CisgICAgY2FzZSBQcm90ZWN0aW9uU3BhY2U6OkF1dGhlbnRp
Y2F0aW9uU2NoZW1lOjpTZXJ2ZXJUcnVzdEV2YWx1YXRpb25SZXF1ZXN0ZWQ6CiAgICAgICAgIHNj
aGVtZSA9IGtDRlVSTFByb3RlY3Rpb25TcGFjZUF1dGhlbnRpY2F0aW9uU2NoZW1lU2VydmVyVHJ1
c3RFdmFsdWF0aW9uUmVxdWVzdGVkOwogICAgICAgICBicmVhazsKLSAgICBjYXNlIFByb3RlY3Rp
b25TcGFjZUF1dGhlbnRpY2F0aW9uU2NoZW1lQ2xpZW50Q2VydGlmaWNhdGVSZXF1ZXN0ZWQ6Cisg
ICAgY2FzZSBQcm90ZWN0aW9uU3BhY2U6OkF1dGhlbnRpY2F0aW9uU2NoZW1lOjpDbGllbnRDZXJ0
aWZpY2F0ZVJlcXVlc3RlZDoKICAgICAgICAgc2NoZW1lID0ga0NGVVJMUHJvdGVjdGlvblNwYWNl
QXV0aGVudGljYXRpb25TY2hlbWVDbGllbnRDZXJ0aWZpY2F0ZVJlcXVlc3RlZDsKICAgICAgICAg
YnJlYWs7CiAjZW5kaWYKQEAgLTE5Miw2NyArMTkyLDY3IEBAIENyZWRlbnRpYWwgY29yZShDRlVS
TENyZWRlbnRpYWxSZWYgY2ZDcmVkZW50aWFsKQogCiBQcm90ZWN0aW9uU3BhY2UgY29yZShDRlVS
TFByb3RlY3Rpb25TcGFjZVJlZiBjZlNwYWNlKQogewotICAgIFByb3RlY3Rpb25TcGFjZVNlcnZl
clR5cGUgc2VydmVyVHlwZSA9IFByb3RlY3Rpb25TcGFjZVNlcnZlckhUVFA7CisgICAgYXV0byBz
ZXJ2ZXJUeXBlID0gUHJvdGVjdGlvblNwYWNlOjpTZXJ2ZXJUeXBlOjpIVFRQOwogICAgIAogICAg
IHN3aXRjaCAoQ0ZVUkxQcm90ZWN0aW9uU3BhY2VHZXRTZXJ2ZXJUeXBlKGNmU3BhY2UpKSB7CiAg
ICAgY2FzZSBrQ0ZVUkxQcm90ZWN0aW9uU3BhY2VTZXJ2ZXJIVFRQOgogICAgICAgICBicmVhazsK
ICAgICBjYXNlIGtDRlVSTFByb3RlY3Rpb25TcGFjZVNlcnZlckhUVFBTOgotICAgICAgICBzZXJ2
ZXJUeXBlID0gUHJvdGVjdGlvblNwYWNlU2VydmVySFRUUFM7CisgICAgICAgIHNlcnZlclR5cGUg
PSBQcm90ZWN0aW9uU3BhY2U6OlNlcnZlclR5cGU6OkhUVFBTOwogICAgICAgICBicmVhazsKICAg
ICBjYXNlIGtDRlVSTFByb3RlY3Rpb25TcGFjZVNlcnZlckZUUDoKLSAgICAgICAgc2VydmVyVHlw
ZSA9IFByb3RlY3Rpb25TcGFjZVNlcnZlckZUUDsKKyAgICAgICAgc2VydmVyVHlwZSA9IFByb3Rl
Y3Rpb25TcGFjZTo6U2VydmVyVHlwZTo6RlRQOwogICAgICAgICBicmVhazsKICAgICBjYXNlIGtD
RlVSTFByb3RlY3Rpb25TcGFjZVNlcnZlckZUUFM6Ci0gICAgICAgIHNlcnZlclR5cGUgPSBQcm90
ZWN0aW9uU3BhY2VTZXJ2ZXJGVFBTOworICAgICAgICBzZXJ2ZXJUeXBlID0gUHJvdGVjdGlvblNw
YWNlOjpTZXJ2ZXJUeXBlOjpGVFBTOwogICAgICAgICBicmVhazsKICAgICBjYXNlIGtDRlVSTFBy
b3RlY3Rpb25TcGFjZVByb3h5SFRUUDoKLSAgICAgICAgc2VydmVyVHlwZSA9IFByb3RlY3Rpb25T
cGFjZVByb3h5SFRUUDsKKyAgICAgICAgc2VydmVyVHlwZSA9IFByb3RlY3Rpb25TcGFjZTo6U2Vy
dmVyVHlwZTo6UHJveHlIVFRQOwogICAgICAgICBicmVhazsKICAgICBjYXNlIGtDRlVSTFByb3Rl
Y3Rpb25TcGFjZVByb3h5SFRUUFM6Ci0gICAgICAgIHNlcnZlclR5cGUgPSBQcm90ZWN0aW9uU3Bh
Y2VQcm94eUhUVFBTOworICAgICAgICBzZXJ2ZXJUeXBlID0gUHJvdGVjdGlvblNwYWNlOjpTZXJ2
ZXJUeXBlOjpQcm94eUhUVFBTOwogICAgICAgICBicmVhazsKICAgICBjYXNlIGtDRlVSTFByb3Rl
Y3Rpb25TcGFjZVByb3h5RlRQOgotICAgICAgICBzZXJ2ZXJUeXBlID0gUHJvdGVjdGlvblNwYWNl
UHJveHlGVFA7CisgICAgICAgIHNlcnZlclR5cGUgPSBQcm90ZWN0aW9uU3BhY2U6OlNlcnZlclR5
cGU6OlByb3h5RlRQOwogICAgICAgICBicmVhazsKICAgICBjYXNlIGtDRlVSTFByb3RlY3Rpb25T
cGFjZVByb3h5U09DS1M6Ci0gICAgICAgIHNlcnZlclR5cGUgPSBQcm90ZWN0aW9uU3BhY2VQcm94
eVNPQ0tTOworICAgICAgICBzZXJ2ZXJUeXBlID0gUHJvdGVjdGlvblNwYWNlOjpTZXJ2ZXJUeXBl
OjpQcm94eVNPQ0tTOwogICAgICAgICBicmVhazsKICAgICBkZWZhdWx0OgogICAgICAgICBBU1NF
UlRfTk9UX1JFQUNIRUQoKTsKICAgICB9CiAKLSAgICBQcm90ZWN0aW9uU3BhY2VBdXRoZW50aWNh
dGlvblNjaGVtZSBzY2hlbWUgPSBQcm90ZWN0aW9uU3BhY2VBdXRoZW50aWNhdGlvblNjaGVtZURl
ZmF1bHQ7CisgICAgYXV0byBzY2hlbWUgPSBQcm90ZWN0aW9uU3BhY2U6OkF1dGhlbnRpY2F0aW9u
U2NoZW1lOjpEZWZhdWx0OwogICAgIAogICAgIHN3aXRjaCAoQ0ZVUkxQcm90ZWN0aW9uU3BhY2VH
ZXRBdXRoZW50aWNhdGlvblNjaGVtZShjZlNwYWNlKSkgewogICAgIGNhc2Uga0NGVVJMUHJvdGVj
dGlvblNwYWNlQXV0aGVudGljYXRpb25TY2hlbWVEZWZhdWx0OgotICAgICAgICBzY2hlbWUgPSBQ
cm90ZWN0aW9uU3BhY2VBdXRoZW50aWNhdGlvblNjaGVtZURlZmF1bHQ7CisgICAgICAgIHNjaGVt
ZSA9IFByb3RlY3Rpb25TcGFjZTo6QXV0aGVudGljYXRpb25TY2hlbWU6OkRlZmF1bHQ7CiAgICAg
ICAgIGJyZWFrOwogICAgIGNhc2Uga0NGVVJMUHJvdGVjdGlvblNwYWNlQXV0aGVudGljYXRpb25T
Y2hlbWVIVFRQQmFzaWM6Ci0gICAgICAgIHNjaGVtZSA9IFByb3RlY3Rpb25TcGFjZUF1dGhlbnRp
Y2F0aW9uU2NoZW1lSFRUUEJhc2ljOworICAgICAgICBzY2hlbWUgPSBQcm90ZWN0aW9uU3BhY2U6
OkF1dGhlbnRpY2F0aW9uU2NoZW1lOjpIVFRQQmFzaWM7CiAgICAgICAgIGJyZWFrOwogICAgIGNh
c2Uga0NGVVJMUHJvdGVjdGlvblNwYWNlQXV0aGVudGljYXRpb25TY2hlbWVIVFRQRGlnZXN0Ogot
ICAgICAgICBzY2hlbWUgPSBQcm90ZWN0aW9uU3BhY2VBdXRoZW50aWNhdGlvblNjaGVtZUhUVFBE
aWdlc3Q7CisgICAgICAgIHNjaGVtZSA9IFByb3RlY3Rpb25TcGFjZTo6QXV0aGVudGljYXRpb25T
Y2hlbWU6OkhUVFBEaWdlc3Q7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2Uga0NGVVJMUHJvdGVj
dGlvblNwYWNlQXV0aGVudGljYXRpb25TY2hlbWVIVE1MRm9ybToKLSAgICAgICAgc2NoZW1lID0g
UHJvdGVjdGlvblNwYWNlQXV0aGVudGljYXRpb25TY2hlbWVIVE1MRm9ybTsKKyAgICAgICAgc2No
ZW1lID0gUHJvdGVjdGlvblNwYWNlOjpBdXRoZW50aWNhdGlvblNjaGVtZTo6SFRNTEZvcm07CiAg
ICAgICAgIGJyZWFrOwogICAgIGNhc2Uga0NGVVJMUHJvdGVjdGlvblNwYWNlQXV0aGVudGljYXRp
b25TY2hlbWVOVExNOgotICAgICAgICBzY2hlbWUgPSBQcm90ZWN0aW9uU3BhY2VBdXRoZW50aWNh
dGlvblNjaGVtZU5UTE07CisgICAgICAgIHNjaGVtZSA9IFByb3RlY3Rpb25TcGFjZTo6QXV0aGVu
dGljYXRpb25TY2hlbWU6Ok5UTE07CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2Uga0NGVVJMUHJv
dGVjdGlvblNwYWNlQXV0aGVudGljYXRpb25TY2hlbWVOZWdvdGlhdGU6Ci0gICAgICAgIHNjaGVt
ZSA9IFByb3RlY3Rpb25TcGFjZUF1dGhlbnRpY2F0aW9uU2NoZW1lTmVnb3RpYXRlOworICAgICAg
ICBzY2hlbWUgPSBQcm90ZWN0aW9uU3BhY2U6OkF1dGhlbnRpY2F0aW9uU2NoZW1lOjpOZWdvdGlh
dGU7CiAgICAgICAgIGJyZWFrOwogI2lmIFVTRShQUk9URUNUSU9OX1NQQUNFX0FVVEhfQ0FMTEJB
Q0spCiAgICAgY2FzZSBrQ0ZVUkxQcm90ZWN0aW9uU3BhY2VBdXRoZW50aWNhdGlvblNjaGVtZUNs
aWVudENlcnRpZmljYXRlUmVxdWVzdGVkOgotICAgICAgICBzY2hlbWUgPSBQcm90ZWN0aW9uU3Bh
Y2VBdXRoZW50aWNhdGlvblNjaGVtZUNsaWVudENlcnRpZmljYXRlUmVxdWVzdGVkOworICAgICAg
ICBzY2hlbWUgPSBQcm90ZWN0aW9uU3BhY2U6OkF1dGhlbnRpY2F0aW9uU2NoZW1lOjpDbGllbnRD
ZXJ0aWZpY2F0ZVJlcXVlc3RlZDsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBrQ0ZVUkxQcm90
ZWN0aW9uU3BhY2VBdXRoZW50aWNhdGlvblNjaGVtZVNlcnZlclRydXN0RXZhbHVhdGlvblJlcXVl
c3RlZDoKLSAgICAgICAgc2NoZW1lID0gUHJvdGVjdGlvblNwYWNlQXV0aGVudGljYXRpb25TY2hl
bWVTZXJ2ZXJUcnVzdEV2YWx1YXRpb25SZXF1ZXN0ZWQ7CisgICAgICAgIHNjaGVtZSA9IFByb3Rl
Y3Rpb25TcGFjZTo6QXV0aGVudGljYXRpb25TY2hlbWU6OlNlcnZlclRydXN0RXZhbHVhdGlvblJl
cXVlc3RlZDsKICAgICAgICAgYnJlYWs7CiAjZW5kaWYKICAgICBkZWZhdWx0OgotICAgICAgICBz
Y2hlbWUgPSBQcm90ZWN0aW9uU3BhY2VBdXRoZW50aWNhdGlvblNjaGVtZVVua25vd247CisgICAg
ICAgIHNjaGVtZSA9IFByb3RlY3Rpb25TcGFjZTo6QXV0aGVudGljYXRpb25TY2hlbWU6OlVua25v
d247CiAgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwogICAgIH0KICAgICAgICAgCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2NmL1Byb3RlY3Rpb25TcGFj
ZUNGTmV0LmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2NmL1Byb3RlY3Rpb25T
cGFjZUNGTmV0LmgKaW5kZXggZjBhMTlkMzAyMzJjY2Y3MjkwMzIwOGYwMWMwYWZiMmZjZmVhMTk1
OC4uOTVjYmVhMzAwZWMyZGNkYjA3ODU0M2FhNGYwMjBmMjU1ZDQ4ZDhlMyAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jZi9Qcm90ZWN0aW9uU3BhY2VDRk5ldC5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY2YvUHJvdGVjdGlvblNwYWNl
Q0ZOZXQuaApAQCAtMzYsNyArMzYsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiBjbGFzcyBQcm90
ZWN0aW9uU3BhY2UgOiBwdWJsaWMgUHJvdGVjdGlvblNwYWNlQmFzZSB7CiBwdWJsaWM6CiAgICAg
UHJvdGVjdGlvblNwYWNlKCkgOiBQcm90ZWN0aW9uU3BhY2VCYXNlKCkgeyB9Ci0gICAgUHJvdGVj
dGlvblNwYWNlKGNvbnN0IFN0cmluZyYgaG9zdCwgaW50IHBvcnQsIFByb3RlY3Rpb25TcGFjZVNl
cnZlclR5cGUgc2VydmVyVHlwZSwgY29uc3QgU3RyaW5nJiByZWFsbSwgUHJvdGVjdGlvblNwYWNl
QXV0aGVudGljYXRpb25TY2hlbWUgYXV0aGVudGljYXRpb25TY2hlbWUpCisgICAgUHJvdGVjdGlv
blNwYWNlKGNvbnN0IFN0cmluZyYgaG9zdCwgaW50IHBvcnQsIFNlcnZlclR5cGUgc2VydmVyVHlw
ZSwgY29uc3QgU3RyaW5nJiByZWFsbSwgQXV0aGVudGljYXRpb25TY2hlbWUgYXV0aGVudGljYXRp
b25TY2hlbWUpCiAgICAgICAgIDogUHJvdGVjdGlvblNwYWNlQmFzZShob3N0LCBwb3J0LCBzZXJ2
ZXJUeXBlLCByZWFsbSwgYXV0aGVudGljYXRpb25TY2hlbWUpCiAgICAgewogICAgIH0KZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY2YvUmVzb3VyY2VIYW5kbGVD
Rk5ldC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2NmL1Jlc291cmNlSGFu
ZGxlQ0ZOZXQuY3BwCmluZGV4IDU2NzFiNDNlZGE3MTdjMDZiMzQzNzRlYmNjMWU1MTRkN2EyMzk4
OWQuLjU0M2JmMmUxMzhlMzZiYTAwYTRkMzgwZjZkN2E5NWRjYTkwYjQ3NDcgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY2YvUmVzb3VyY2VIYW5kbGVDRk5ldC5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jZi9SZXNvdXJjZUhhbmRs
ZUNGTmV0LmNwcApAQCAtNDI1LDcgKzQyNSw3IEBAIHZvaWQgUmVzb3VyY2VIYW5kbGU6OnJlY2Vp
dmVkQ3JlZGVudGlhbChjb25zdCBBdXRoZW50aWNhdGlvbkNoYWxsZW5nZSYgY2hhbGxlbmdlCiAg
ICAgICAgIHJldHVybjsKICAgICB9CiAKLSAgICBpZiAoY3JlZGVudGlhbC5wZXJzaXN0ZW5jZSgp
ID09IENyZWRlbnRpYWxQZXJzaXN0ZW5jZUZvclNlc3Npb24gJiYgY2hhbGxlbmdlLnByb3RlY3Rp
b25TcGFjZSgpLmF1dGhlbnRpY2F0aW9uU2NoZW1lKCkgIT0gUHJvdGVjdGlvblNwYWNlQXV0aGVu
dGljYXRpb25TY2hlbWVTZXJ2ZXJUcnVzdEV2YWx1YXRpb25SZXF1ZXN0ZWQpIHsKKyAgICBpZiAo
Y3JlZGVudGlhbC5wZXJzaXN0ZW5jZSgpID09IENyZWRlbnRpYWxQZXJzaXN0ZW5jZUZvclNlc3Np
b24gJiYgY2hhbGxlbmdlLnByb3RlY3Rpb25TcGFjZSgpLmF1dGhlbnRpY2F0aW9uU2NoZW1lKCkg
IT0gUHJvdGVjdGlvblNwYWNlOjpBdXRoZW50aWNhdGlvblNjaGVtZTo6U2VydmVyVHJ1c3RFdmFs
dWF0aW9uUmVxdWVzdGVkKSB7CiAgICAgICAgIC8vIE1hbmFnZSBwZXItc2Vzc2lvbiBjcmVkZW50
aWFscyBpbnRlcm5hbGx5LCBiZWNhdXNlIG9uY2UgTlNVUkxDcmVkZW50aWFsUGVyc2lzdGVuY2VQ
ZXJTZXNzaW9uIGlzIHVzZWQsIHRoZXJlIGlzIG5vIHdheQogICAgICAgICAvLyB0byBpZ25vcmUg
aXQgZm9yIGEgcGFydGljdWxhciByZXF1ZXN0IChzaG9ydCBvZiByZW1vdmluZyBpdCBhbHRvZ2V0
aGVyKS4KICAgICAgICAgQ3JlZGVudGlhbCB3ZWJDcmVkZW50aWFsKGNyZWRlbnRpYWwsIENyZWRl
bnRpYWxQZXJzaXN0ZW5jZU5vbmUpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vbmV0d29yay9jZi9Tb2NrZXRTdHJlYW1IYW5kbGVJbXBsQ0ZOZXQuY3BwIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vbmV0d29yay9jZi9Tb2NrZXRTdHJlYW1IYW5kbGVJbXBsQ0ZOZXQuY3Bw
CmluZGV4IDMxMWFlZjJkODBmZTczMzZjZDhlNTExM2MzOWQ5NTBkYjhmNDM5NGMuLjY5NjFlNzk4
MzA2N2ExODY1YjRhZmJlM2ZhN2FjNWNlNjk1YTRkMzUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL25ldHdvcmsvY2YvU29ja2V0U3RyZWFtSGFuZGxlSW1wbENGTmV0LmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2NmL1NvY2tldFN0cmVhbUhhbmRs
ZUltcGxDRk5ldC5jcHAKQEAgLTM5OSwxOCArMzk5LDE4IEBAIGJvb2wgU29ja2V0U3RyZWFtSGFu
ZGxlSW1wbDo6Z2V0U3RvcmVkQ09OTkVDVFByb3h5Q3JlZGVudGlhbHMoY29uc3QgUHJvdGVjdGlv
blNwCiAgICAgcmV0dXJuIHRydWU7CiB9CiAKLXN0YXRpYyBQcm90ZWN0aW9uU3BhY2VBdXRoZW50
aWNhdGlvblNjaGVtZSBhdXRoZW50aWNhdGlvblNjaGVtZUZyb21BdXRoZW50aWNhdGlvbk1ldGhv
ZChDRlN0cmluZ1JlZiBtZXRob2QpCitzdGF0aWMgUHJvdGVjdGlvblNwYWNlOjpBdXRoZW50aWNh
dGlvblNjaGVtZSBhdXRoZW50aWNhdGlvblNjaGVtZUZyb21BdXRoZW50aWNhdGlvbk1ldGhvZChD
RlN0cmluZ1JlZiBtZXRob2QpCiB7CiAgICAgaWYgKENGRXF1YWwobWV0aG9kLCBrQ0ZIVFRQQXV0
aGVudGljYXRpb25TY2hlbWVCYXNpYykpCi0gICAgICAgIHJldHVybiBQcm90ZWN0aW9uU3BhY2VB
dXRoZW50aWNhdGlvblNjaGVtZUhUVFBCYXNpYzsKKyAgICAgICAgcmV0dXJuIFByb3RlY3Rpb25T
cGFjZTo6QXV0aGVudGljYXRpb25TY2hlbWU6OkhUVFBCYXNpYzsKICAgICBpZiAoQ0ZFcXVhbCht
ZXRob2QsIGtDRkhUVFBBdXRoZW50aWNhdGlvblNjaGVtZURpZ2VzdCkpCi0gICAgICAgIHJldHVy
biBQcm90ZWN0aW9uU3BhY2VBdXRoZW50aWNhdGlvblNjaGVtZUhUVFBEaWdlc3Q7CisgICAgICAg
IHJldHVybiBQcm90ZWN0aW9uU3BhY2U6OkF1dGhlbnRpY2F0aW9uU2NoZW1lOjpIVFRQRGlnZXN0
OwogICAgIGlmIChDRkVxdWFsKG1ldGhvZCwga0NGSFRUUEF1dGhlbnRpY2F0aW9uU2NoZW1lTlRM
TSkpCi0gICAgICAgIHJldHVybiBQcm90ZWN0aW9uU3BhY2VBdXRoZW50aWNhdGlvblNjaGVtZU5U
TE07CisgICAgICAgIHJldHVybiBQcm90ZWN0aW9uU3BhY2U6OkF1dGhlbnRpY2F0aW9uU2NoZW1l
OjpOVExNOwogICAgIGlmIChDRkVxdWFsKG1ldGhvZCwga0NGSFRUUEF1dGhlbnRpY2F0aW9uU2No
ZW1lTmVnb3RpYXRlKSkKLSAgICAgICAgcmV0dXJuIFByb3RlY3Rpb25TcGFjZUF1dGhlbnRpY2F0
aW9uU2NoZW1lTmVnb3RpYXRlOworICAgICAgICByZXR1cm4gUHJvdGVjdGlvblNwYWNlOjpBdXRo
ZW50aWNhdGlvblNjaGVtZTo6TmVnb3RpYXRlOwogICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwot
ICAgIHJldHVybiBQcm90ZWN0aW9uU3BhY2VBdXRoZW50aWNhdGlvblNjaGVtZVVua25vd247Cisg
ICAgcmV0dXJuIFByb3RlY3Rpb25TcGFjZTo6QXV0aGVudGljYXRpb25TY2hlbWU6OlVua25vd247
CiB9CiAgICAgCiBzdGF0aWMgdm9pZCBzZXRDT05ORUNUUHJveHlBdXRob3JpemF0aW9uRm9yU3Ry
ZWFtKENGUmVhZFN0cmVhbVJlZiBzdHJlYW0sIENGU3RyaW5nUmVmIHByb3h5QXV0aG9yaXphdGlv
blN0cmluZykKQEAgLTQ0Nyw3ICs0NDcsNyBAQCB2b2lkIFNvY2tldFN0cmVhbUhhbmRsZUltcGw6
OmFkZENPTk5FQ1RDcmVkZW50aWFscyhDRkhUVFBNZXNzYWdlUmVmIHByb3h5UmVzcG9ucwogICAg
ICAgICByZXR1cm47CiAgICAgfQogCi0gICAgUHJvdGVjdGlvblNwYWNlIHByb3RlY3Rpb25TcGFj
ZShTdHJpbmcobV9wcm94eUhvc3QuZ2V0KCkpLCBwb3J0LCBQcm90ZWN0aW9uU3BhY2VQcm94eUhU
VFBTLCBTdHJpbmcocmVhbG1DRi5nZXQoKSksIGF1dGhlbnRpY2F0aW9uU2NoZW1lRnJvbUF1dGhl
bnRpY2F0aW9uTWV0aG9kKG1ldGhvZENGLmdldCgpKSk7CisgICAgUHJvdGVjdGlvblNwYWNlIHBy
b3RlY3Rpb25TcGFjZShTdHJpbmcobV9wcm94eUhvc3QuZ2V0KCkpLCBwb3J0LCBQcm90ZWN0aW9u
U3BhY2U6OlNlcnZlclR5cGU6OlByb3h5SFRUUFMsIFN0cmluZyhyZWFsbUNGLmdldCgpKSwgYXV0
aGVudGljYXRpb25TY2hlbWVGcm9tQXV0aGVudGljYXRpb25NZXRob2QobWV0aG9kQ0YuZ2V0KCkp
KTsKICAgICBTdHJpbmcgbG9naW47CiAgICAgU3RyaW5nIHBhc3N3b3JkOwogICAgIGlmICghbV9z
ZW50U3RvcmVkQ3JlZGVudGlhbHMgJiYgZ2V0U3RvcmVkQ09OTkVDVFByb3h5Q3JlZGVudGlhbHMo
cHJvdGVjdGlvblNwYWNlLCBsb2dpbiwgcGFzc3dvcmQpKSB7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2NvY29hL1Byb3RlY3Rpb25TcGFjZUNvY29hLmggYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2NvY29hL1Byb3RlY3Rpb25TcGFjZUNvY29h
LmgKaW5kZXggY2Y3NjY5NzliODVhYWFkNDJjYzEyNTY5YmFhMjRjOGRlNGU2Zjc3Zi4uOGM3OGRi
N2ZhZWZkNzFmZDdjZWY2ZmU1NmQ2NDkyYWVlZWQ0NmQzYSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vbmV0d29yay9jb2NvYS9Qcm90ZWN0aW9uU3BhY2VDb2NvYS5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY29jb2EvUHJvdGVjdGlvblNwYWNlQ29j
b2EuaApAQCAtMzksNyArMzksNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiBjbGFzcyBQcm90ZWN0
aW9uU3BhY2UgOiBwdWJsaWMgUHJvdGVjdGlvblNwYWNlQmFzZSB7CiBwdWJsaWM6CiAgICAgUHJv
dGVjdGlvblNwYWNlKCkgOiBQcm90ZWN0aW9uU3BhY2VCYXNlKCkgeyB9Ci0gICAgUHJvdGVjdGlv
blNwYWNlKGNvbnN0IFN0cmluZyYgaG9zdCwgaW50IHBvcnQsIFByb3RlY3Rpb25TcGFjZVNlcnZl
clR5cGUgc2VydmVyVHlwZSwgY29uc3QgU3RyaW5nJiByZWFsbSwgUHJvdGVjdGlvblNwYWNlQXV0
aGVudGljYXRpb25TY2hlbWUgYXV0aGVudGljYXRpb25TY2hlbWUpCisgICAgUHJvdGVjdGlvblNw
YWNlKGNvbnN0IFN0cmluZyYgaG9zdCwgaW50IHBvcnQsIFNlcnZlclR5cGUgc2VydmVyVHlwZSwg
Y29uc3QgU3RyaW5nJiByZWFsbSwgQXV0aGVudGljYXRpb25TY2hlbWUgYXV0aGVudGljYXRpb25T
Y2hlbWUpCiAgICAgICAgIDogUHJvdGVjdGlvblNwYWNlQmFzZShob3N0LCBwb3J0LCBzZXJ2ZXJU
eXBlLCByZWFsbSwgYXV0aGVudGljYXRpb25TY2hlbWUpCiAgICAgewogICAgIH0KZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY29jb2EvUHJvdGVjdGlvblNwYWNl
Q29jb2EubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2NvY29hL1Byb3RlY3Rp
b25TcGFjZUNvY29hLm1tCmluZGV4IDYyMThjZWFiMmZiMzIyNTE3NzBmYjEyZTAxNDJmY2Q5ZWYx
NmQyNGQuLmQ1NmQwZTIxYjJhYTdiYzA4OWM0MGIxMTAyNjkyNzNmZmNiMDUyN2YgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY29jb2EvUHJvdGVjdGlvblNwYWNl
Q29jb2EubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jb2NvYS9Qcm90
ZWN0aW9uU3BhY2VDb2NvYS5tbQpAQCAtMzAsNjMgKzMwLDYzIEBACiAKIG5hbWVzcGFjZSBXZWJD
b3JlIHsKIAotc3RhdGljIFByb3RlY3Rpb25TcGFjZVNlcnZlclR5cGUgdHlwZShOU1VSTFByb3Rl
Y3Rpb25TcGFjZSAqc3BhY2UpCitzdGF0aWMgUHJvdGVjdGlvblNwYWNlOjpTZXJ2ZXJUeXBlIHR5
cGUoTlNVUkxQcm90ZWN0aW9uU3BhY2UgKnNwYWNlKQogewogICAgIGlmIChbc3BhY2UgaXNQcm94
eV0pIHsKICAgICAgICAgTlNTdHJpbmcgKnByb3h5VHlwZSA9IHNwYWNlLnByb3h5VHlwZTsKICAg
ICAgICAgaWYgKFtwcm94eVR5cGUgaXNFcXVhbFRvU3RyaW5nOk5TVVJMUHJvdGVjdGlvblNwYWNl
SFRUUFByb3h5XSkKLSAgICAgICAgICAgIHJldHVybiBQcm90ZWN0aW9uU3BhY2VQcm94eUhUVFA7
CisgICAgICAgICAgICByZXR1cm4gUHJvdGVjdGlvblNwYWNlOjpTZXJ2ZXJUeXBlOjpQcm94eUhU
VFA7CiAgICAgICAgIGlmIChbcHJveHlUeXBlIGlzRXF1YWxUb1N0cmluZzpOU1VSTFByb3RlY3Rp
b25TcGFjZUhUVFBTUHJveHldKQotICAgICAgICAgICAgcmV0dXJuIFByb3RlY3Rpb25TcGFjZVBy
b3h5SFRUUFM7CisgICAgICAgICAgICByZXR1cm4gUHJvdGVjdGlvblNwYWNlOjpTZXJ2ZXJUeXBl
OjpQcm94eUhUVFBTOwogICAgICAgICBpZiAoW3Byb3h5VHlwZSBpc0VxdWFsVG9TdHJpbmc6TlNV
UkxQcm90ZWN0aW9uU3BhY2VGVFBQcm94eV0pCi0gICAgICAgICAgICByZXR1cm4gUHJvdGVjdGlv
blNwYWNlUHJveHlGVFA7CisgICAgICAgICAgICByZXR1cm4gUHJvdGVjdGlvblNwYWNlOjpTZXJ2
ZXJUeXBlOjpQcm94eUZUUDsKICAgICAgICAgaWYgKFtwcm94eVR5cGUgaXNFcXVhbFRvU3RyaW5n
Ok5TVVJMUHJvdGVjdGlvblNwYWNlU09DS1NQcm94eV0pCi0gICAgICAgICAgICByZXR1cm4gUHJv
dGVjdGlvblNwYWNlUHJveHlTT0NLUzsKKyAgICAgICAgICAgIHJldHVybiBQcm90ZWN0aW9uU3Bh
Y2U6OlNlcnZlclR5cGU6OlByb3h5U09DS1M7CiAKICAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVE
KCk7Ci0gICAgICAgIHJldHVybiBQcm90ZWN0aW9uU3BhY2VQcm94eUhUVFA7CisgICAgICAgIHJl
dHVybiBQcm90ZWN0aW9uU3BhY2U6OlNlcnZlclR5cGU6OlByb3h5SFRUUDsKICAgICB9CiAKICAg
ICBOU1N0cmluZyAqcHJvdG9jb2wgPSBzcGFjZS5wcm90b2NvbDsKICAgICBpZiAoW3Byb3RvY29s
IGNhc2VJbnNlbnNpdGl2ZUNvbXBhcmU6QCJodHRwIl0gPT0gTlNPcmRlcmVkU2FtZSkKLSAgICAg
ICAgcmV0dXJuIFByb3RlY3Rpb25TcGFjZVNlcnZlckhUVFA7CisgICAgICAgIHJldHVybiBQcm90
ZWN0aW9uU3BhY2U6OlNlcnZlclR5cGU6OkhUVFA7CiAgICAgaWYgKFtwcm90b2NvbCBjYXNlSW5z
ZW5zaXRpdmVDb21wYXJlOkAiaHR0cHMiXSA9PSBOU09yZGVyZWRTYW1lKQotICAgICAgICByZXR1
cm4gUHJvdGVjdGlvblNwYWNlU2VydmVySFRUUFM7CisgICAgICAgIHJldHVybiBQcm90ZWN0aW9u
U3BhY2U6OlNlcnZlclR5cGU6OkhUVFBTOwogICAgIGlmIChbcHJvdG9jb2wgY2FzZUluc2Vuc2l0
aXZlQ29tcGFyZTpAImZ0cCJdID09IE5TT3JkZXJlZFNhbWUpCi0gICAgICAgIHJldHVybiBQcm90
ZWN0aW9uU3BhY2VTZXJ2ZXJGVFA7CisgICAgICAgIHJldHVybiBQcm90ZWN0aW9uU3BhY2U6OlNl
cnZlclR5cGU6OkZUUDsKICAgICBpZiAoW3Byb3RvY29sIGNhc2VJbnNlbnNpdGl2ZUNvbXBhcmU6
QCJmdHBzIl0gPT0gTlNPcmRlcmVkU2FtZSkKLSAgICAgICAgcmV0dXJuIFByb3RlY3Rpb25TcGFj
ZVNlcnZlckZUUFM7CisgICAgICAgIHJldHVybiBQcm90ZWN0aW9uU3BhY2U6OlNlcnZlclR5cGU6
OkZUUFM7CiAKICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKLSAgICByZXR1cm4gUHJvdGVjdGlv
blNwYWNlU2VydmVySFRUUDsKKyAgICByZXR1cm4gUHJvdGVjdGlvblNwYWNlOjpTZXJ2ZXJUeXBl
OjpIVFRQOwogfQogCi1zdGF0aWMgUHJvdGVjdGlvblNwYWNlQXV0aGVudGljYXRpb25TY2hlbWUg
c2NoZW1lKE5TVVJMUHJvdGVjdGlvblNwYWNlICpzcGFjZSkKK3N0YXRpYyBQcm90ZWN0aW9uU3Bh
Y2U6OkF1dGhlbnRpY2F0aW9uU2NoZW1lIHNjaGVtZShOU1VSTFByb3RlY3Rpb25TcGFjZSAqc3Bh
Y2UpCiB7CiAgICAgTlNTdHJpbmcgKm1ldGhvZCA9IHNwYWNlLmF1dGhlbnRpY2F0aW9uTWV0aG9k
OwogICAgIGlmIChbbWV0aG9kIGlzRXF1YWxUb1N0cmluZzpOU1VSTEF1dGhlbnRpY2F0aW9uTWV0
aG9kRGVmYXVsdF0pCi0gICAgICAgIHJldHVybiBQcm90ZWN0aW9uU3BhY2VBdXRoZW50aWNhdGlv
blNjaGVtZURlZmF1bHQ7CisgICAgICAgIHJldHVybiBQcm90ZWN0aW9uU3BhY2U6OkF1dGhlbnRp
Y2F0aW9uU2NoZW1lOjpEZWZhdWx0OwogICAgIGlmIChbbWV0aG9kIGlzRXF1YWxUb1N0cmluZzpO
U1VSTEF1dGhlbnRpY2F0aW9uTWV0aG9kSFRUUEJhc2ljXSkKLSAgICAgICAgcmV0dXJuIFByb3Rl
Y3Rpb25TcGFjZUF1dGhlbnRpY2F0aW9uU2NoZW1lSFRUUEJhc2ljOworICAgICAgICByZXR1cm4g
UHJvdGVjdGlvblNwYWNlOjpBdXRoZW50aWNhdGlvblNjaGVtZTo6SFRUUEJhc2ljOwogICAgIGlm
IChbbWV0aG9kIGlzRXF1YWxUb1N0cmluZzpOU1VSTEF1dGhlbnRpY2F0aW9uTWV0aG9kSFRUUERp
Z2VzdF0pCi0gICAgICAgIHJldHVybiBQcm90ZWN0aW9uU3BhY2VBdXRoZW50aWNhdGlvblNjaGVt
ZUhUVFBEaWdlc3Q7CisgICAgICAgIHJldHVybiBQcm90ZWN0aW9uU3BhY2U6OkF1dGhlbnRpY2F0
aW9uU2NoZW1lOjpIVFRQRGlnZXN0OwogICAgIGlmIChbbWV0aG9kIGlzRXF1YWxUb1N0cmluZzpO
U1VSTEF1dGhlbnRpY2F0aW9uTWV0aG9kSFRNTEZvcm1dKQotICAgICAgICByZXR1cm4gUHJvdGVj
dGlvblNwYWNlQXV0aGVudGljYXRpb25TY2hlbWVIVE1MRm9ybTsKKyAgICAgICAgcmV0dXJuIFBy
b3RlY3Rpb25TcGFjZTo6QXV0aGVudGljYXRpb25TY2hlbWU6OkhUTUxGb3JtOwogICAgIGlmIChb
bWV0aG9kIGlzRXF1YWxUb1N0cmluZzpOU1VSTEF1dGhlbnRpY2F0aW9uTWV0aG9kTlRMTV0pCi0g
ICAgICAgIHJldHVybiBQcm90ZWN0aW9uU3BhY2VBdXRoZW50aWNhdGlvblNjaGVtZU5UTE07Cisg
ICAgICAgIHJldHVybiBQcm90ZWN0aW9uU3BhY2U6OkF1dGhlbnRpY2F0aW9uU2NoZW1lOjpOVExN
OwogICAgIGlmIChbbWV0aG9kIGlzRXF1YWxUb1N0cmluZzpOU1VSTEF1dGhlbnRpY2F0aW9uTWV0
aG9kTmVnb3RpYXRlXSkKLSAgICAgICAgcmV0dXJuIFByb3RlY3Rpb25TcGFjZUF1dGhlbnRpY2F0
aW9uU2NoZW1lTmVnb3RpYXRlOworICAgICAgICByZXR1cm4gUHJvdGVjdGlvblNwYWNlOjpBdXRo
ZW50aWNhdGlvblNjaGVtZTo6TmVnb3RpYXRlOwogI2lmIFVTRShQUk9URUNUSU9OX1NQQUNFX0FV
VEhfQ0FMTEJBQ0spCiAgICAgaWYgKFttZXRob2QgaXNFcXVhbFRvU3RyaW5nOk5TVVJMQXV0aGVu
dGljYXRpb25NZXRob2RDbGllbnRDZXJ0aWZpY2F0ZV0pCi0gICAgICAgIHJldHVybiBQcm90ZWN0
aW9uU3BhY2VBdXRoZW50aWNhdGlvblNjaGVtZUNsaWVudENlcnRpZmljYXRlUmVxdWVzdGVkOwor
ICAgICAgICByZXR1cm4gUHJvdGVjdGlvblNwYWNlOjpBdXRoZW50aWNhdGlvblNjaGVtZTo6Q2xp
ZW50Q2VydGlmaWNhdGVSZXF1ZXN0ZWQ7CiAgICAgaWYgKFttZXRob2QgaXNFcXVhbFRvU3RyaW5n
Ok5TVVJMQXV0aGVudGljYXRpb25NZXRob2RTZXJ2ZXJUcnVzdF0pCi0gICAgICAgIHJldHVybiBQ
cm90ZWN0aW9uU3BhY2VBdXRoZW50aWNhdGlvblNjaGVtZVNlcnZlclRydXN0RXZhbHVhdGlvblJl
cXVlc3RlZDsKKyAgICAgICAgcmV0dXJuIFByb3RlY3Rpb25TcGFjZTo6QXV0aGVudGljYXRpb25T
Y2hlbWU6OlNlcnZlclRydXN0RXZhbHVhdGlvblJlcXVlc3RlZDsKICNlbmRpZgogICAgIGlmIChb
bWV0aG9kIGlzRXF1YWxUb1N0cmluZzpOU1VSTEF1dGhlbnRpY2F0aW9uTWV0aG9kT0F1dGhdKQot
ICAgICAgICByZXR1cm4gUHJvdGVjdGlvblNwYWNlQXV0aGVudGljYXRpb25TY2hlbWVPQXV0aDsK
KyAgICAgICAgcmV0dXJuIFByb3RlY3Rpb25TcGFjZTo6QXV0aGVudGljYXRpb25TY2hlbWU6Ok9B
dXRoOwogCiAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7Ci0gICAgcmV0dXJuIFByb3RlY3Rpb25T
cGFjZUF1dGhlbnRpY2F0aW9uU2NoZW1lVW5rbm93bjsKKyAgICByZXR1cm4gUHJvdGVjdGlvblNw
YWNlOjpBdXRoZW50aWNhdGlvblNjaGVtZTo6VW5rbm93bjsKIH0KIAogUHJvdGVjdGlvblNwYWNl
OjpQcm90ZWN0aW9uU3BhY2UoTlNVUkxQcm90ZWN0aW9uU3BhY2UgKnNwYWNlKQpAQCAtMTAzLDI4
ICsxMDMsMjggQEAgTlNVUkxQcm90ZWN0aW9uU3BhY2UgKlByb3RlY3Rpb25TcGFjZTo6bnNTcGFj
ZSgpIGNvbnN0CiAgICAgTlNTdHJpbmcgKnByb3h5VHlwZSA9IG5pbDsKICAgICBOU1N0cmluZyAq
cHJvdG9jb2wgPSBuaWw7CiAgICAgc3dpdGNoIChzZXJ2ZXJUeXBlKCkpIHsKLSAgICBjYXNlIFBy
b3RlY3Rpb25TcGFjZVNlcnZlckhUVFA6CisgICAgY2FzZSBQcm90ZWN0aW9uU3BhY2U6OlNlcnZl
clR5cGU6OkhUVFA6CiAgICAgICAgIHByb3RvY29sID0gQCJodHRwIjsKICAgICAgICAgYnJlYWs7
Ci0gICAgY2FzZSBQcm90ZWN0aW9uU3BhY2VTZXJ2ZXJIVFRQUzoKKyAgICBjYXNlIFByb3RlY3Rp
b25TcGFjZTo6U2VydmVyVHlwZTo6SFRUUFM6CiAgICAgICAgIHByb3RvY29sID0gQCJodHRwcyI7
CiAgICAgICAgIGJyZWFrOwotICAgIGNhc2UgUHJvdGVjdGlvblNwYWNlU2VydmVyRlRQOgorICAg
IGNhc2UgUHJvdGVjdGlvblNwYWNlOjpTZXJ2ZXJUeXBlOjpGVFA6CiAgICAgICAgIHByb3RvY29s
ID0gQCJmdHAiOwogICAgICAgICBicmVhazsKLSAgICBjYXNlIFByb3RlY3Rpb25TcGFjZVNlcnZl
ckZUUFM6CisgICAgY2FzZSBQcm90ZWN0aW9uU3BhY2U6OlNlcnZlclR5cGU6OkZUUFM6CiAgICAg
ICAgIHByb3RvY29sID0gQCJmdHBzIjsKICAgICAgICAgYnJlYWs7Ci0gICAgY2FzZSBQcm90ZWN0
aW9uU3BhY2VQcm94eUhUVFA6CisgICAgY2FzZSBQcm90ZWN0aW9uU3BhY2U6OlNlcnZlclR5cGU6
OlByb3h5SFRUUDoKICAgICAgICAgcHJveHlUeXBlID0gTlNVUkxQcm90ZWN0aW9uU3BhY2VIVFRQ
UHJveHk7CiAgICAgICAgIGJyZWFrOwotICAgIGNhc2UgUHJvdGVjdGlvblNwYWNlUHJveHlIVFRQ
UzoKKyAgICBjYXNlIFByb3RlY3Rpb25TcGFjZTo6U2VydmVyVHlwZTo6UHJveHlIVFRQUzoKICAg
ICAgICAgcHJveHlUeXBlID0gTlNVUkxQcm90ZWN0aW9uU3BhY2VIVFRQU1Byb3h5OwogICAgICAg
ICBicmVhazsKLSAgICBjYXNlIFByb3RlY3Rpb25TcGFjZVByb3h5RlRQOgorICAgIGNhc2UgUHJv
dGVjdGlvblNwYWNlOjpTZXJ2ZXJUeXBlOjpQcm94eUZUUDoKICAgICAgICAgcHJveHlUeXBlID0g
TlNVUkxQcm90ZWN0aW9uU3BhY2VGVFBQcm94eTsKICAgICAgICAgYnJlYWs7Ci0gICAgY2FzZSBQ
cm90ZWN0aW9uU3BhY2VQcm94eVNPQ0tTOgorICAgIGNhc2UgUHJvdGVjdGlvblNwYWNlOjpTZXJ2
ZXJUeXBlOjpQcm94eVNPQ0tTOgogICAgICAgICBwcm94eVR5cGUgPSBOU1VSTFByb3RlY3Rpb25T
cGFjZVNPQ0tTUHJveHk7CiAgICAgICAgIGJyZWFrOwogICAgIGRlZmF1bHQ6CkBAIC0xMzMsMzMg
KzEzMywzMyBAQCBOU1VSTFByb3RlY3Rpb25TcGFjZSAqUHJvdGVjdGlvblNwYWNlOjpuc1NwYWNl
KCkgY29uc3QKICAgCiAgICAgTlNTdHJpbmcgKm1ldGhvZCA9IG5pbDsKICAgICBzd2l0Y2ggKGF1
dGhlbnRpY2F0aW9uU2NoZW1lKCkpIHsKLSAgICBjYXNlIFByb3RlY3Rpb25TcGFjZUF1dGhlbnRp
Y2F0aW9uU2NoZW1lRGVmYXVsdDoKKyAgICBjYXNlIFByb3RlY3Rpb25TcGFjZTo6QXV0aGVudGlj
YXRpb25TY2hlbWU6OkRlZmF1bHQ6CiAgICAgICAgIG1ldGhvZCA9IE5TVVJMQXV0aGVudGljYXRp
b25NZXRob2REZWZhdWx0OwogICAgICAgICBicmVhazsKLSAgICBjYXNlIFByb3RlY3Rpb25TcGFj
ZUF1dGhlbnRpY2F0aW9uU2NoZW1lSFRUUEJhc2ljOgorICAgIGNhc2UgUHJvdGVjdGlvblNwYWNl
OjpBdXRoZW50aWNhdGlvblNjaGVtZTo6SFRUUEJhc2ljOgogICAgICAgICBtZXRob2QgPSBOU1VS
TEF1dGhlbnRpY2F0aW9uTWV0aG9kSFRUUEJhc2ljOwogICAgICAgICBicmVhazsKLSAgICBjYXNl
IFByb3RlY3Rpb25TcGFjZUF1dGhlbnRpY2F0aW9uU2NoZW1lSFRUUERpZ2VzdDoKKyAgICBjYXNl
IFByb3RlY3Rpb25TcGFjZTo6QXV0aGVudGljYXRpb25TY2hlbWU6OkhUVFBEaWdlc3Q6CiAgICAg
ICAgIG1ldGhvZCA9IE5TVVJMQXV0aGVudGljYXRpb25NZXRob2RIVFRQRGlnZXN0OwogICAgICAg
ICBicmVhazsKLSAgICBjYXNlIFByb3RlY3Rpb25TcGFjZUF1dGhlbnRpY2F0aW9uU2NoZW1lSFRN
TEZvcm06CisgICAgY2FzZSBQcm90ZWN0aW9uU3BhY2U6OkF1dGhlbnRpY2F0aW9uU2NoZW1lOjpI
VE1MRm9ybToKICAgICAgICAgbWV0aG9kID0gTlNVUkxBdXRoZW50aWNhdGlvbk1ldGhvZEhUTUxG
b3JtOwogICAgICAgICBicmVhazsKLSAgICBjYXNlIFByb3RlY3Rpb25TcGFjZUF1dGhlbnRpY2F0
aW9uU2NoZW1lTlRMTToKKyAgICBjYXNlIFByb3RlY3Rpb25TcGFjZTo6QXV0aGVudGljYXRpb25T
Y2hlbWU6Ok5UTE06CiAgICAgICAgIG1ldGhvZCA9IE5TVVJMQXV0aGVudGljYXRpb25NZXRob2RO
VExNOwogICAgICAgICBicmVhazsKLSAgICBjYXNlIFByb3RlY3Rpb25TcGFjZUF1dGhlbnRpY2F0
aW9uU2NoZW1lTmVnb3RpYXRlOgorICAgIGNhc2UgUHJvdGVjdGlvblNwYWNlOjpBdXRoZW50aWNh
dGlvblNjaGVtZTo6TmVnb3RpYXRlOgogICAgICAgICBtZXRob2QgPSBOU1VSTEF1dGhlbnRpY2F0
aW9uTWV0aG9kTmVnb3RpYXRlOwogICAgICAgICBicmVhazsKICNpZiBVU0UoUFJPVEVDVElPTl9T
UEFDRV9BVVRIX0NBTExCQUNLKQotICAgIGNhc2UgUHJvdGVjdGlvblNwYWNlQXV0aGVudGljYXRp
b25TY2hlbWVTZXJ2ZXJUcnVzdEV2YWx1YXRpb25SZXF1ZXN0ZWQ6CisgICAgY2FzZSBQcm90ZWN0
aW9uU3BhY2U6OkF1dGhlbnRpY2F0aW9uU2NoZW1lOjpTZXJ2ZXJUcnVzdEV2YWx1YXRpb25SZXF1
ZXN0ZWQ6CiAgICAgICAgIG1ldGhvZCA9IE5TVVJMQXV0aGVudGljYXRpb25NZXRob2RTZXJ2ZXJU
cnVzdDsKICAgICAgICAgYnJlYWs7Ci0gICAgY2FzZSBQcm90ZWN0aW9uU3BhY2VBdXRoZW50aWNh
dGlvblNjaGVtZUNsaWVudENlcnRpZmljYXRlUmVxdWVzdGVkOgorICAgIGNhc2UgUHJvdGVjdGlv
blNwYWNlOjpBdXRoZW50aWNhdGlvblNjaGVtZTo6Q2xpZW50Q2VydGlmaWNhdGVSZXF1ZXN0ZWQ6
CiAgICAgICAgIG1ldGhvZCA9IE5TVVJMQXV0aGVudGljYXRpb25NZXRob2RDbGllbnRDZXJ0aWZp
Y2F0ZTsKICAgICAgICAgYnJlYWs7CiAjZW5kaWYKLSAgICBjYXNlIFByb3RlY3Rpb25TcGFjZUF1
dGhlbnRpY2F0aW9uU2NoZW1lT0F1dGg6CisgICAgY2FzZSBQcm90ZWN0aW9uU3BhY2U6OkF1dGhl
bnRpY2F0aW9uU2NoZW1lOjpPQXV0aDoKICAgICAgICAgbWV0aG9kID0gTlNVUkxBdXRoZW50aWNh
dGlvbk1ldGhvZE9BdXRoOwogICAgICAgICBicmVhazsKICAgICBkZWZhdWx0OgpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jdXJsL0F1dGhlbnRpY2F0aW9uQ2hh
bGxlbmdlLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2N1cmwvQXV0aGVudGlj
YXRpb25DaGFsbGVuZ2UuaAppbmRleCA4MTNkMmI1NDkxYTU1NDg5OGEzZjQ5NGM4YTM1NmEzZTQy
YTBjOTliLi5hYjcwYzg1YTRjNzE0Y2I2ODNkNTg1MjQwYzRjZWYzOWJhNjVmYmQxIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2N1cmwvQXV0aGVudGljYXRpb25D
aGFsbGVuZ2UuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2N1cmwvQXV0
aGVudGljYXRpb25DaGFsbGVuZ2UuaApAQCAtNTAsMTEgKzUwLDExIEBAIHB1YmxpYzoKICAgICBB
dXRoZW50aWNhdGlvbkNsaWVudCogYXV0aGVudGljYXRpb25DbGllbnQoKSBjb25zdCB7IHJldHVy
biBtX2F1dGhlbnRpY2F0aW9uQ2xpZW50LmdldCgpOyB9CiAKIHByaXZhdGU6Ci0gICAgUHJvdGVj
dGlvblNwYWNlU2VydmVyVHlwZSBwcm90ZWN0aW9uU3BhY2VTZXJ2ZXJUeXBlRnJvbVVSSShjb25z
dCBVUkwmLCBib29sIGlzRm9yUHJveHkpOworICAgIFByb3RlY3Rpb25TcGFjZTo6U2VydmVyVHlw
ZSBwcm90ZWN0aW9uU3BhY2VTZXJ2ZXJUeXBlRnJvbVVSSShjb25zdCBVUkwmLCBib29sIGlzRm9y
UHJveHkpOwogICAgIFByb3RlY3Rpb25TcGFjZSBwcm90ZWN0aW9uU3BhY2VGb3JQYXNzd29yZEJh
c2VkKGNvbnN0IEN1cmxSZXNwb25zZSYsIGNvbnN0IFJlc291cmNlUmVzcG9uc2UmKTsKICAgICBQ
cm90ZWN0aW9uU3BhY2UgcHJvdGVjdGlvblNwYWNlRm9yU2VydmVyVHJ1c3QoY29uc3QgVVJMJiwg
Y29uc3QgQ2VydGlmaWNhdGVJbmZvJik7CiAgICAgc3RkOjpvcHRpb25hbDx1aW50MTZfdD4gZGV0
ZXJtaW5lUHJveHlQb3J0KGNvbnN0IFVSTCYpOwotICAgIFByb3RlY3Rpb25TcGFjZUF1dGhlbnRp
Y2F0aW9uU2NoZW1lIGF1dGhlbnRpY2F0aW9uU2NoZW1lRnJvbUN1cmxBdXRoKGxvbmcpOworICAg
IFByb3RlY3Rpb25TcGFjZTo6QXV0aGVudGljYXRpb25TY2hlbWUgYXV0aGVudGljYXRpb25TY2hl
bWVGcm9tQ3VybEF1dGgobG9uZyk7CiAgICAgU3RyaW5nIHBhcnNlUmVhbG0oY29uc3QgUmVzb3Vy
Y2VSZXNwb25zZSYpOwogICAgIHZvaWQgcmVtb3ZlTGVhZGluZ0FuZFRyYWlsaW5nUXVvdGVzKFN0
cmluZyYpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2N1
cmwvQXV0aGVudGljYXRpb25DaGFsbGVuZ2VDdXJsLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL25ldHdvcmsvY3VybC9BdXRoZW50aWNhdGlvbkNoYWxsZW5nZUN1cmwuY3BwCmluZGV4IDBm
ZjkxYmI0Zjk0MTdjNzkyNzkzOWE3MTMxYjcyMzkwZGMwYjgxODMuLmI2NjI5NjBjZDBhYTNmNjNk
YzZjNzhhNDdlMjhjYzIwMTg2ZTM1NTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL25ldHdvcmsvY3VybC9BdXRoZW50aWNhdGlvbkNoYWxsZW5nZUN1cmwuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY3VybC9BdXRoZW50aWNhdGlvbkNoYWxsZW5n
ZUN1cmwuY3BwCkBAIC00NiwxNSArNDYsMTUgQEAgQXV0aGVudGljYXRpb25DaGFsbGVuZ2U6OkF1
dGhlbnRpY2F0aW9uQ2hhbGxlbmdlKGNvbnN0IFVSTCYgdXJsLCBjb25zdCBDZXJ0aWZpY2EKIHsK
IH0KIAotUHJvdGVjdGlvblNwYWNlU2VydmVyVHlwZSBBdXRoZW50aWNhdGlvbkNoYWxsZW5nZTo6
cHJvdGVjdGlvblNwYWNlU2VydmVyVHlwZUZyb21VUkkoY29uc3QgVVJMJiB1cmwsIGJvb2wgaXNG
b3JQcm94eSkKK1Byb3RlY3Rpb25TcGFjZTo6U2VydmVyVHlwZSBBdXRoZW50aWNhdGlvbkNoYWxs
ZW5nZTo6cHJvdGVjdGlvblNwYWNlU2VydmVyVHlwZUZyb21VUkkoY29uc3QgVVJMJiB1cmwsIGJv
b2wgaXNGb3JQcm94eSkKIHsKICAgICBpZiAodXJsLnByb3RvY29sSXMoImh0dHBzIikpCi0gICAg
ICAgIHJldHVybiBpc0ZvclByb3h5ID8gUHJvdGVjdGlvblNwYWNlUHJveHlIVFRQUyA6IFByb3Rl
Y3Rpb25TcGFjZVNlcnZlckhUVFBTOworICAgICAgICByZXR1cm4gaXNGb3JQcm94eSA/IFByb3Rl
Y3Rpb25TcGFjZTo6U2VydmVyVHlwZTo6UHJveHlIVFRQUyA6IFByb3RlY3Rpb25TcGFjZTo6U2Vy
dmVyVHlwZTo6SFRUUFM7CiAgICAgaWYgKHVybC5wcm90b2NvbElzKCJodHRwIikpCi0gICAgICAg
IHJldHVybiBpc0ZvclByb3h5ID8gUHJvdGVjdGlvblNwYWNlUHJveHlIVFRQIDogUHJvdGVjdGlv
blNwYWNlU2VydmVySFRUUDsKKyAgICAgICAgcmV0dXJuIGlzRm9yUHJveHkgPyBQcm90ZWN0aW9u
U3BhY2U6OlNlcnZlclR5cGU6OlByb3h5SFRUUCA6IFByb3RlY3Rpb25TcGFjZTo6U2VydmVyVHlw
ZTo6SFRUUDsKICAgICBpZiAodXJsLnByb3RvY29sSXMoImZ0cCIpKQotICAgICAgICByZXR1cm4g
aXNGb3JQcm94eSA/IFByb3RlY3Rpb25TcGFjZVByb3h5RlRQIDogUHJvdGVjdGlvblNwYWNlU2Vy
dmVyRlRQOwotICAgIHJldHVybiBpc0ZvclByb3h5ID8gUHJvdGVjdGlvblNwYWNlUHJveHlIVFRQ
IDogUHJvdGVjdGlvblNwYWNlU2VydmVySFRUUDsKKyAgICAgICAgcmV0dXJuIGlzRm9yUHJveHkg
PyBQcm90ZWN0aW9uU3BhY2U6OlNlcnZlclR5cGU6OlByb3h5RlRQIDogUHJvdGVjdGlvblNwYWNl
OjpTZXJ2ZXJUeXBlOjpGVFA7CisgICAgcmV0dXJuIGlzRm9yUHJveHkgPyBQcm90ZWN0aW9uU3Bh
Y2U6OlNlcnZlclR5cGU6OlByb3h5SFRUUCA6IFByb3RlY3Rpb25TcGFjZTo6U2VydmVyVHlwZTo6
SFRUUDsKIH0KIAogUHJvdGVjdGlvblNwYWNlIEF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlOjpwcm90
ZWN0aW9uU3BhY2VGb3JQYXNzd29yZEJhc2VkKGNvbnN0IEN1cmxSZXNwb25zZSYgY3VybFJlc3Bv
bnNlLCBjb25zdCBSZXNvdXJjZVJlc3BvbnNlJiByZXNwb25zZSkKQEAgLTc1LDcgKzc1LDcgQEAg
UHJvdGVjdGlvblNwYWNlIEF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlOjpwcm90ZWN0aW9uU3BhY2VG
b3JTZXJ2ZXJUcnVzdChjb25zdCBVUkwKIHsKICAgICBhdXRvIHBvcnQgPSBkZXRlcm1pbmVQcm94
eVBvcnQodXJsKTsKICAgICBhdXRvIHNlcnZlclR5cGUgPSBwcm90ZWN0aW9uU3BhY2VTZXJ2ZXJU
eXBlRnJvbVVSSSh1cmwsIGZhbHNlKTsKLSAgICBhdXRvIGF1dGhlbnRpY2F0aW9uU2NoZW1lID0g
UHJvdGVjdGlvblNwYWNlQXV0aGVudGljYXRpb25TY2hlbWVTZXJ2ZXJUcnVzdEV2YWx1YXRpb25S
ZXF1ZXN0ZWQ7CisgICAgYXV0byBhdXRoZW50aWNhdGlvblNjaGVtZSA9IFByb3RlY3Rpb25TcGFj
ZTo6QXV0aGVudGljYXRpb25TY2hlbWU6OlNlcnZlclRydXN0RXZhbHVhdGlvblJlcXVlc3RlZDsK
IAogICAgIHJldHVybiBQcm90ZWN0aW9uU3BhY2UodXJsLmhvc3QoKS50b1N0cmluZygpLCBzdGF0
aWNfY2FzdDxpbnQ+KHBvcnQudmFsdWVfb3IoMCkpLCBzZXJ2ZXJUeXBlLCBTdHJpbmcoKSwgYXV0
aGVudGljYXRpb25TY2hlbWUsIGNlcnRpZmljYXRlSW5mbyk7CiB9CkBAIC05NiwxNyArOTYsMTcg
QEAgc3RkOjpvcHRpb25hbDx1aW50MTZfdD4gQXV0aGVudGljYXRpb25DaGFsbGVuZ2U6OmRldGVy
bWluZVByb3h5UG9ydChjb25zdCBVUkwmIHUKICAgICByZXR1cm4gc3RkOjpudWxsb3B0OwogfQog
Ci1Qcm90ZWN0aW9uU3BhY2VBdXRoZW50aWNhdGlvblNjaGVtZSBBdXRoZW50aWNhdGlvbkNoYWxs
ZW5nZTo6YXV0aGVudGljYXRpb25TY2hlbWVGcm9tQ3VybEF1dGgobG9uZyBjdXJsQXV0aCkKK1By
b3RlY3Rpb25TcGFjZTo6QXV0aGVudGljYXRpb25TY2hlbWUgQXV0aGVudGljYXRpb25DaGFsbGVu
Z2U6OmF1dGhlbnRpY2F0aW9uU2NoZW1lRnJvbUN1cmxBdXRoKGxvbmcgY3VybEF1dGgpCiB7CiAg
ICAgaWYgKGN1cmxBdXRoICYgQ1VSTEFVVEhfTlRMTSkKLSAgICAgICAgcmV0dXJuIFByb3RlY3Rp
b25TcGFjZUF1dGhlbnRpY2F0aW9uU2NoZW1lTlRMTTsKKyAgICAgICAgcmV0dXJuIFByb3RlY3Rp
b25TcGFjZTo6QXV0aGVudGljYXRpb25TY2hlbWU6Ok5UTE07CiAgICAgaWYgKGN1cmxBdXRoICYg
Q1VSTEFVVEhfTkVHT1RJQVRFKQotICAgICAgICByZXR1cm4gUHJvdGVjdGlvblNwYWNlQXV0aGVu
dGljYXRpb25TY2hlbWVOZWdvdGlhdGU7CisgICAgICAgIHJldHVybiBQcm90ZWN0aW9uU3BhY2U6
OkF1dGhlbnRpY2F0aW9uU2NoZW1lOjpOZWdvdGlhdGU7CiAgICAgaWYgKGN1cmxBdXRoICYgQ1VS
TEFVVEhfRElHRVNUKQotICAgICAgICByZXR1cm4gUHJvdGVjdGlvblNwYWNlQXV0aGVudGljYXRp
b25TY2hlbWVIVFRQRGlnZXN0OworICAgICAgICByZXR1cm4gUHJvdGVjdGlvblNwYWNlOjpBdXRo
ZW50aWNhdGlvblNjaGVtZTo6SFRUUERpZ2VzdDsKICAgICBpZiAoY3VybEF1dGggJiBDVVJMQVVU
SF9CQVNJQykKLSAgICAgICAgcmV0dXJuIFByb3RlY3Rpb25TcGFjZUF1dGhlbnRpY2F0aW9uU2No
ZW1lSFRUUEJhc2ljOwotICAgIHJldHVybiBQcm90ZWN0aW9uU3BhY2VBdXRoZW50aWNhdGlvblNj
aGVtZVVua25vd247CisgICAgICAgIHJldHVybiBQcm90ZWN0aW9uU3BhY2U6OkF1dGhlbnRpY2F0
aW9uU2NoZW1lOjpIVFRQQmFzaWM7CisgICAgcmV0dXJuIFByb3RlY3Rpb25TcGFjZTo6QXV0aGVu
dGljYXRpb25TY2hlbWU6OlVua25vd247CiB9CiAKIFN0cmluZyBBdXRoZW50aWNhdGlvbkNoYWxs
ZW5nZTo6cGFyc2VSZWFsbShjb25zdCBSZXNvdXJjZVJlc3BvbnNlJiByZXNwb25zZSkKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY3VybC9DdXJsUmVxdWVzdC5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2N1cmwvQ3VybFJlcXVlc3QuY3Bw
CmluZGV4IGQ4MmRkM2MxMGFjNjQ3MTM1OTkxZmQ3YWU2Njk3ZTlkOGUzMTNlODkuLmJhY2IyYjU1
MGIyODQxMzFkMWFjMjBhYTY2Mzg4NmZlMjJmZTdmOTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL25ldHdvcmsvY3VybC9DdXJsUmVxdWVzdC5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vbmV0d29yay9jdXJsL0N1cmxSZXF1ZXN0LmNwcApAQCAtNjQsMjIgKzY0
LDIyIEBAIHZvaWQgQ3VybFJlcXVlc3Q6OmludmFsaWRhdGVDbGllbnQoKQogICAgIG1fbWVzc2Fn
ZVF1ZXVlID0gbnVsbHB0cjsKIH0KIAotdm9pZCBDdXJsUmVxdWVzdDo6c2V0QXV0aGVudGljYXRp
b25TY2hlbWUoUHJvdGVjdGlvblNwYWNlQXV0aGVudGljYXRpb25TY2hlbWUgc2NoZW1lKQordm9p
ZCBDdXJsUmVxdWVzdDo6c2V0QXV0aGVudGljYXRpb25TY2hlbWUoUHJvdGVjdGlvblNwYWNlOjpB
dXRoZW50aWNhdGlvblNjaGVtZSBzY2hlbWUpCiB7CiAgICAgc3dpdGNoIChzY2hlbWUpIHsKLSAg
ICBjYXNlIFByb3RlY3Rpb25TcGFjZUF1dGhlbnRpY2F0aW9uU2NoZW1lSFRUUEJhc2ljOgorICAg
IGNhc2UgUHJvdGVjdGlvblNwYWNlOjpBdXRoZW50aWNhdGlvblNjaGVtZTo6SFRUUEJhc2ljOgog
ICAgICAgICBtX2F1dGhUeXBlID0gQ1VSTEFVVEhfQkFTSUM7CiAgICAgICAgIGJyZWFrOwogCi0g
ICAgY2FzZSBQcm90ZWN0aW9uU3BhY2VBdXRoZW50aWNhdGlvblNjaGVtZUhUVFBEaWdlc3Q6Cisg
ICAgY2FzZSBQcm90ZWN0aW9uU3BhY2U6OkF1dGhlbnRpY2F0aW9uU2NoZW1lOjpIVFRQRGlnZXN0
OgogICAgICAgICBtX2F1dGhUeXBlID0gQ1VSTEFVVEhfRElHRVNUOwogICAgICAgICBicmVhazsK
IAotICAgIGNhc2UgUHJvdGVjdGlvblNwYWNlQXV0aGVudGljYXRpb25TY2hlbWVOVExNOgorICAg
IGNhc2UgUHJvdGVjdGlvblNwYWNlOjpBdXRoZW50aWNhdGlvblNjaGVtZTo6TlRMTToKICAgICAg
ICAgbV9hdXRoVHlwZSA9IENVUkxBVVRIX05UTE07CiAgICAgICAgIGJyZWFrOwogCi0gICAgY2Fz
ZSBQcm90ZWN0aW9uU3BhY2VBdXRoZW50aWNhdGlvblNjaGVtZU5lZ290aWF0ZToKKyAgICBjYXNl
IFByb3RlY3Rpb25TcGFjZTo6QXV0aGVudGljYXRpb25TY2hlbWU6Ok5lZ290aWF0ZToKICAgICAg
ICAgbV9hdXRoVHlwZSA9IENVUkxBVVRIX05FR09USUFURTsKICAgICAgICAgYnJlYWs7CiAKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY3VybC9DdXJsUmVxdWVz
dC5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jdXJsL0N1cmxSZXF1ZXN0LmgK
aW5kZXggM2M3Y2RkODgzZWI2MmJmZTkyY2YwNDQ1ZWQyOWJkMjZlY2UzZTkyMi4uYTZmYjMxNTc2
NmJhNWMyZjNlYTMyYjllZjUxZWIwMDNlOGNiODlkMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vbmV0d29yay9jdXJsL0N1cmxSZXF1ZXN0LmgKKysrIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vbmV0d29yay9jdXJsL0N1cmxSZXF1ZXN0LmgKQEAgLTcyLDcgKzcyLDcgQEAg
cHVibGljOgogICAgIHZpcnR1YWwgfkN1cmxSZXF1ZXN0KCk7CiAKICAgICB2b2lkIGludmFsaWRh
dGVDbGllbnQoKTsKLSAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHNldEF1dGhlbnRpY2F0aW9uU2No
ZW1lKFByb3RlY3Rpb25TcGFjZUF1dGhlbnRpY2F0aW9uU2NoZW1lKTsKKyAgICBXRUJDT1JFX0VY
UE9SVCB2b2lkIHNldEF1dGhlbnRpY2F0aW9uU2NoZW1lKFByb3RlY3Rpb25TcGFjZTo6QXV0aGVu
dGljYXRpb25TY2hlbWUpOwogICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgc2V0VXNlclBhc3MoY29u
c3QgU3RyaW5nJiwgY29uc3QgU3RyaW5nJik7CiAgICAgYm9vbCBpc1NlcnZlclRydXN0RXZhbHVh
dGlvbkRpc2FibGVkKCkgeyByZXR1cm4gbV9zaG91bGREaXNhYmxlU2VydmVyVHJ1c3RFdmFsdWF0
aW9uOyB9CiAgICAgdm9pZCBkaXNhYmxlU2VydmVyVHJ1c3RFdmFsdWF0aW9uKCkgeyBtX3Nob3Vs
ZERpc2FibGVTZXJ2ZXJUcnVzdEV2YWx1YXRpb24gPSB0cnVlOyB9CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2N1cmwvUHJvdGVjdGlvblNwYWNlQ3VybC5oIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jdXJsL1Byb3RlY3Rpb25TcGFjZUN1cmwu
aAppbmRleCA3MTMwYzM5ZGIyZTc4ZjI3MGE3YWYzMjkyZmRmZGRjM2E3NmYyYzQ2Li5hODY0OWY3
YTM4YWI4YWJlMDRhNDQ3Zjk1OTE3MGQyM2IyZTg3MWYwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9uZXR3b3JrL2N1cmwvUHJvdGVjdGlvblNwYWNlQ3VybC5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY3VybC9Qcm90ZWN0aW9uU3BhY2VDdXJsLmgK
QEAgLTM3LDEyICszNywxMiBAQCBwdWJsaWM6CiAgICAgewogICAgIH0KIAotICAgIFByb3RlY3Rp
b25TcGFjZShjb25zdCBTdHJpbmcmIGhvc3QsIGludCBwb3J0LCBQcm90ZWN0aW9uU3BhY2VTZXJ2
ZXJUeXBlIHNlcnZlclR5cGUsIGNvbnN0IFN0cmluZyYgcmVhbG0sIFByb3RlY3Rpb25TcGFjZUF1
dGhlbnRpY2F0aW9uU2NoZW1lIGF1dGhlbnRpY2F0aW9uU2NoZW1lKQorICAgIFByb3RlY3Rpb25T
cGFjZShjb25zdCBTdHJpbmcmIGhvc3QsIGludCBwb3J0LCBTZXJ2ZXJUeXBlIHNlcnZlclR5cGUs
IGNvbnN0IFN0cmluZyYgcmVhbG0sIEF1dGhlbnRpY2F0aW9uU2NoZW1lIGF1dGhlbnRpY2F0aW9u
U2NoZW1lKQogICAgICAgICA6IFByb3RlY3Rpb25TcGFjZUJhc2UoaG9zdCwgcG9ydCwgc2VydmVy
VHlwZSwgcmVhbG0sIGF1dGhlbnRpY2F0aW9uU2NoZW1lKQogICAgIHsKICAgICB9CiAKLSAgICBQ
cm90ZWN0aW9uU3BhY2UoY29uc3QgU3RyaW5nJiBob3N0LCBpbnQgcG9ydCwgUHJvdGVjdGlvblNw
YWNlU2VydmVyVHlwZSBzZXJ2ZXJUeXBlLCBjb25zdCBTdHJpbmcmIHJlYWxtLCBQcm90ZWN0aW9u
U3BhY2VBdXRoZW50aWNhdGlvblNjaGVtZSBhdXRoZW50aWNhdGlvblNjaGVtZSwgY29uc3QgQ2Vy
dGlmaWNhdGVJbmZvJiBjZXJ0aWZpY2F0ZUluZm8pCisgICAgUHJvdGVjdGlvblNwYWNlKGNvbnN0
IFN0cmluZyYgaG9zdCwgaW50IHBvcnQsIFNlcnZlclR5cGUgc2VydmVyVHlwZSwgY29uc3QgU3Ry
aW5nJiByZWFsbSwgQXV0aGVudGljYXRpb25TY2hlbWUgYXV0aGVudGljYXRpb25TY2hlbWUsIGNv
bnN0IENlcnRpZmljYXRlSW5mbyYgY2VydGlmaWNhdGVJbmZvKQogICAgICAgICA6IFByb3RlY3Rp
b25TcGFjZUJhc2UoaG9zdCwgcG9ydCwgc2VydmVyVHlwZSwgcmVhbG0sIGF1dGhlbnRpY2F0aW9u
U2NoZW1lKQogICAgICAgICAsIG1fY2VydGlmaWNhdGVJbmZvKGNlcnRpZmljYXRlSW5mbykKICAg
ICB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2N1cmwvUmVz
b3VyY2VIYW5kbGVDdXJsLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY3Vy
bC9SZXNvdXJjZUhhbmRsZUN1cmwuY3BwCmluZGV4IDgwZWM5ZWM1NWE2MmQzMzAzZWEyNWZmZjYw
ZjEyMTQwMTU5YjhiZDcuLjllZGJkMmU4MWE3ZjFlNDU2NzVkMDIxOTUzY2VmNTk5NWM2NDY1OTcg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY3VybC9SZXNvdXJj
ZUhhbmRsZUN1cmwuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY3Vy
bC9SZXNvdXJjZUhhbmRsZUN1cmwuY3BwCkBAIC04Niw3ICs4Niw3IEBAIGJvb2wgUmVzb3VyY2VI
YW5kbGU6OnN0YXJ0KCkKIAogICAgIGlmIChhdXRvIGNyZWRlbnRpYWwgPSBnZXRDcmVkZW50aWFs
KGQtPm1fZmlyc3RSZXF1ZXN0LCBmYWxzZSkpIHsKICAgICAgICAgZC0+bV9jdXJsUmVxdWVzdC0+
c2V0VXNlclBhc3MoY3JlZGVudGlhbC0+dXNlcigpLCBjcmVkZW50aWFsLT5wYXNzd29yZCgpKTsK
LSAgICAgICAgZC0+bV9jdXJsUmVxdWVzdC0+c2V0QXV0aGVudGljYXRpb25TY2hlbWUoUHJvdGVj
dGlvblNwYWNlQXV0aGVudGljYXRpb25TY2hlbWVIVFRQQmFzaWMpOworICAgICAgICBkLT5tX2N1
cmxSZXF1ZXN0LT5zZXRBdXRoZW50aWNhdGlvblNjaGVtZShQcm90ZWN0aW9uU3BhY2U6OkF1dGhl
bnRpY2F0aW9uU2NoZW1lOjpIVFRQQmFzaWMpOwogICAgIH0KIAogICAgIGQtPm1fY3VybFJlcXVl
c3QtPnN0YXJ0KCk7CkBAIC0zOTAsNyArMzkwLDcgQEAgdm9pZCBSZXNvdXJjZUhhbmRsZTo6cGxh
dGZvcm1Mb2FkUmVzb3VyY2VTeW5jaHJvbm91c2x5KE5ldHdvcmtpbmdDb250ZXh0KiBjb250ZXgK
IAogICAgIGlmIChhdXRvIGNyZWRlbnRpYWwgPSBoYW5kbGUtPmdldENyZWRlbnRpYWwoaGFuZGxl
LT5kLT5tX2ZpcnN0UmVxdWVzdCwgZmFsc2UpKSB7CiAgICAgICAgIGhhbmRsZS0+ZC0+bV9jdXJs
UmVxdWVzdC0+c2V0VXNlclBhc3MoY3JlZGVudGlhbC0+dXNlcigpLCBjcmVkZW50aWFsLT5wYXNz
d29yZCgpKTsKLSAgICAgICAgaGFuZGxlLT5kLT5tX2N1cmxSZXF1ZXN0LT5zZXRBdXRoZW50aWNh
dGlvblNjaGVtZShQcm90ZWN0aW9uU3BhY2VBdXRoZW50aWNhdGlvblNjaGVtZUhUVFBCYXNpYyk7
CisgICAgICAgIGhhbmRsZS0+ZC0+bV9jdXJsUmVxdWVzdC0+c2V0QXV0aGVudGljYXRpb25TY2hl
bWUoUHJvdGVjdGlvblNwYWNlOjpBdXRoZW50aWNhdGlvblNjaGVtZTo6SFRUUEJhc2ljKTsKICAg
ICB9CiAKICAgICBoYW5kbGUtPmQtPm1fY3VybFJlcXVlc3QtPnN0YXJ0KCk7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL21hYy9SZXNvdXJjZUhhbmRsZU1hYy5t
bSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvbWFjL1Jlc291cmNlSGFuZGxlTWFj
Lm1tCmluZGV4IDU2OWU4Yjg5NDUyMzZlMWRkMmM1MjI4NWRiNTY4MjkyZmZjOTI5MDguLjNkYTRj
Njk4YzUzZDdjZTA3MTUwMTc4ODgwODRkZDU0MjYzYjljMTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvbWFjL1Jlc291cmNlSGFuZGxlTWFjLm1tCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvbWFjL1Jlc291cmNlSGFuZGxlTWFjLm1tCkBA
IC01ODksNyArNTg5LDcgQEAgdm9pZCBSZXNvdXJjZUhhbmRsZTo6cmVjZWl2ZWRDcmVkZW50aWFs
KGNvbnN0IEF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlJiBjaGFsbGVuZ2UKICAgICAgICAgcmV0dXJu
OwogICAgIH0KIAotICAgIGlmIChjcmVkZW50aWFsLnBlcnNpc3RlbmNlKCkgPT0gQ3JlZGVudGlh
bFBlcnNpc3RlbmNlRm9yU2Vzc2lvbiAmJiBjaGFsbGVuZ2UucHJvdGVjdGlvblNwYWNlKCkuYXV0
aGVudGljYXRpb25TY2hlbWUoKSAhPSBQcm90ZWN0aW9uU3BhY2VBdXRoZW50aWNhdGlvblNjaGVt
ZVNlcnZlclRydXN0RXZhbHVhdGlvblJlcXVlc3RlZCkgeworICAgIGlmIChjcmVkZW50aWFsLnBl
cnNpc3RlbmNlKCkgPT0gQ3JlZGVudGlhbFBlcnNpc3RlbmNlRm9yU2Vzc2lvbiAmJiBjaGFsbGVu
Z2UucHJvdGVjdGlvblNwYWNlKCkuYXV0aGVudGljYXRpb25TY2hlbWUoKSAhPSBQcm90ZWN0aW9u
U3BhY2U6OkF1dGhlbnRpY2F0aW9uU2NoZW1lOjpTZXJ2ZXJUcnVzdEV2YWx1YXRpb25SZXF1ZXN0
ZWQpIHsKICAgICAgICAgLy8gTWFuYWdlIHBlci1zZXNzaW9uIGNyZWRlbnRpYWxzIGludGVybmFs
bHksIGJlY2F1c2Ugb25jZSBOU1VSTENyZWRlbnRpYWxQZXJzaXN0ZW5jZUZvclNlc3Npb24gaXMg
dXNlZCwgdGhlcmUgaXMgbm8gd2F5CiAgICAgICAgIC8vIHRvIGlnbm9yZSBpdCBmb3IgYSBwYXJ0
aWN1bGFyIHJlcXVlc3QgKHNob3J0IG9mIHJlbW92aW5nIGl0IGFsdG9nZXRoZXIpLgogICAgICAg
ICBDcmVkZW50aWFsIHdlYkNyZWRlbnRpYWwoY3JlZGVudGlhbCwgQ3JlZGVudGlhbFBlcnNpc3Rl
bmNlTm9uZSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL3Nv
dXAvQXV0aGVudGljYXRpb25DaGFsbGVuZ2VTb3VwLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL25ldHdvcmsvc291cC9BdXRoZW50aWNhdGlvbkNoYWxsZW5nZVNvdXAuY3BwCmluZGV4IDcy
NzZjM2RkM2JhMGJmNjcyMWYxOTA2Njk5ODYxOWVlNjZhNjQyMzcuLmFmNDUzOTYzNmNkODYxNGY4
MzY0OGUyZTRhNWU5ZDA3ZDNmYTFhMGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL25ldHdvcmsvc291cC9BdXRoZW50aWNhdGlvbkNoYWxsZW5nZVNvdXAuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvc291cC9BdXRoZW50aWNhdGlvbkNoYWxsZW5n
ZVNvdXAuY3BwCkBAIC0zNSwzMSArMzUsMzEgQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1z
dGF0aWMgUHJvdGVjdGlvblNwYWNlU2VydmVyVHlwZSBwcm90ZWN0aW9uU3BhY2VTZXJ2ZXJUeXBl
RnJvbVVSTChjb25zdCBVUkwmIHVybCwgYm9vbCBpc0ZvclByb3h5KQorc3RhdGljIFByb3RlY3Rp
b25TcGFjZTo6U2VydmVyVHlwZSBwcm90ZWN0aW9uU3BhY2VTZXJ2ZXJUeXBlRnJvbVVSTChjb25z
dCBVUkwmIHVybCwgYm9vbCBpc0ZvclByb3h5KQogewogICAgIGlmICh1cmwucHJvdG9jb2xJcygi
aHR0cHMiKSkKLSAgICAgICAgcmV0dXJuIGlzRm9yUHJveHkgPyBQcm90ZWN0aW9uU3BhY2VQcm94
eUhUVFBTIDogUHJvdGVjdGlvblNwYWNlU2VydmVySFRUUFM7CisgICAgICAgIHJldHVybiBpc0Zv
clByb3h5ID8gUHJvdGVjdGlvblNwYWNlOjpTZXJ2ZXJUeXBlOjpQcm94eUhUVFBTIDogUHJvdGVj
dGlvblNwYWNlOjpTZXJ2ZXJUeXBlOjpIVFRQUzsKICAgICBpZiAodXJsLnByb3RvY29sSXMoImh0
dHAiKSkKLSAgICAgICAgcmV0dXJuIGlzRm9yUHJveHkgPyBQcm90ZWN0aW9uU3BhY2VQcm94eUhU
VFAgOiBQcm90ZWN0aW9uU3BhY2VTZXJ2ZXJIVFRQOworICAgICAgICByZXR1cm4gaXNGb3JQcm94
eSA/IFByb3RlY3Rpb25TcGFjZTo6U2VydmVyVHlwZTo6UHJveHlIVFRQIDogUHJvdGVjdGlvblNw
YWNlOjpTZXJ2ZXJUeXBlOjpIVFRQOwogICAgIGlmICh1cmwucHJvdG9jb2xJcygiZnRwIikpCi0g
ICAgICAgIHJldHVybiBpc0ZvclByb3h5ID8gUHJvdGVjdGlvblNwYWNlUHJveHlGVFAgOiBQcm90
ZWN0aW9uU3BhY2VTZXJ2ZXJGVFA7Ci0gICAgcmV0dXJuIGlzRm9yUHJveHkgPyBQcm90ZWN0aW9u
U3BhY2VQcm94eUhUVFAgOiBQcm90ZWN0aW9uU3BhY2VTZXJ2ZXJIVFRQOworICAgICAgICByZXR1
cm4gaXNGb3JQcm94eSA/IFByb3RlY3Rpb25TcGFjZTo6U2VydmVyVHlwZTo6UHJveHlGVFAgOiBQ
cm90ZWN0aW9uU3BhY2U6OlNlcnZlclR5cGU6OkZUUDsKKyAgICByZXR1cm4gaXNGb3JQcm94eSA/
IFByb3RlY3Rpb25TcGFjZTo6U2VydmVyVHlwZTo6UHJveHlIVFRQIDogUHJvdGVjdGlvblNwYWNl
OjpTZXJ2ZXJUeXBlOjpIVFRQOwogfQogCiBzdGF0aWMgUHJvdGVjdGlvblNwYWNlIHByb3RlY3Rp
b25TcGFjZUZyb21Tb3VwQXV0aEFuZFVSTChTb3VwQXV0aCogc291cEF1dGgsIGNvbnN0IFVSTCYg
dXJsKQogewogICAgIGNvbnN0IGNoYXIqIHNjaGVtZU5hbWUgPSBzb3VwX2F1dGhfZ2V0X3NjaGVt
ZV9uYW1lKHNvdXBBdXRoKTsKLSAgICBQcm90ZWN0aW9uU3BhY2VBdXRoZW50aWNhdGlvblNjaGVt
ZSBzY2hlbWU7CisgICAgUHJvdGVjdGlvblNwYWNlOjpBdXRoZW50aWNhdGlvblNjaGVtZSBzY2hl
bWU7CiAgICAgaWYgKCFnX2FzY2lpX3N0cmNhc2VjbXAoc2NoZW1lTmFtZSwgImJhc2ljIikpCi0g
ICAgICAgIHNjaGVtZSA9IFByb3RlY3Rpb25TcGFjZUF1dGhlbnRpY2F0aW9uU2NoZW1lSFRUUEJh
c2ljOworICAgICAgICBzY2hlbWUgPSBQcm90ZWN0aW9uU3BhY2U6OkF1dGhlbnRpY2F0aW9uU2No
ZW1lOjpIVFRQQmFzaWM7CiAgICAgZWxzZSBpZiAoIWdfYXNjaWlfc3RyY2FzZWNtcChzY2hlbWVO
YW1lLCAiZGlnZXN0IikpCi0gICAgICAgIHNjaGVtZSA9IFByb3RlY3Rpb25TcGFjZUF1dGhlbnRp
Y2F0aW9uU2NoZW1lSFRUUERpZ2VzdDsKKyAgICAgICAgc2NoZW1lID0gUHJvdGVjdGlvblNwYWNl
OjpBdXRoZW50aWNhdGlvblNjaGVtZTo6SFRUUERpZ2VzdDsKICAgICBlbHNlIGlmICghZ19hc2Np
aV9zdHJjYXNlY21wKHNjaGVtZU5hbWUsICJudGxtIikpCi0gICAgICAgIHNjaGVtZSA9IFByb3Rl
Y3Rpb25TcGFjZUF1dGhlbnRpY2F0aW9uU2NoZW1lTlRMTTsKKyAgICAgICAgc2NoZW1lID0gUHJv
dGVjdGlvblNwYWNlOjpBdXRoZW50aWNhdGlvblNjaGVtZTo6TlRMTTsKICAgICBlbHNlIGlmICgh
Z19hc2NpaV9zdHJjYXNlY21wKHNjaGVtZU5hbWUsICJuZWdvdGlhdGUiKSkKLSAgICAgICAgc2No
ZW1lID0gUHJvdGVjdGlvblNwYWNlQXV0aGVudGljYXRpb25TY2hlbWVOZWdvdGlhdGU7CisgICAg
ICAgIHNjaGVtZSA9IFByb3RlY3Rpb25TcGFjZTo6QXV0aGVudGljYXRpb25TY2hlbWU6Ok5lZ290
aWF0ZTsKICAgICBlbHNlCi0gICAgICAgIHNjaGVtZSA9IFByb3RlY3Rpb25TcGFjZUF1dGhlbnRp
Y2F0aW9uU2NoZW1lVW5rbm93bjsKKyAgICAgICAgc2NoZW1lID0gUHJvdGVjdGlvblNwYWNlOjpB
dXRoZW50aWNhdGlvblNjaGVtZTo6VW5rbm93bjsKIAogI2lmIFVTRShTT1VQMikKICAgICBhdXRv
IGhvc3QgPSB1cmwuaG9zdCgpOwpAQCAtOTYsNyArOTYsNyBAQCBzdGF0aWMgUHJvdGVjdGlvblNw
YWNlIHByb3RlY3Rpb25TcGFjZUZvckNsaWVudENlcnRpZmljYXRlKGNvbnN0IFVSTCYgdXJsKQog
ICAgIGlmICghcG9ydCkKICAgICAgICAgcG9ydCA9IGRlZmF1bHRQb3J0Rm9yUHJvdG9jb2wodXJs
LnByb3RvY29sKCkpOwogICAgIHJldHVybiBQcm90ZWN0aW9uU3BhY2UodXJsLmhvc3QoKS50b1N0
cmluZygpLCBzdGF0aWNfY2FzdDxpbnQ+KHBvcnQudmFsdWVfb3IoMCkpLCBwcm90ZWN0aW9uU3Bh
Y2VTZXJ2ZXJUeXBlRnJvbVVSTCh1cmwsIGZhbHNlKSwgeyB9LAotICAgICAgICBQcm90ZWN0aW9u
U3BhY2VBdXRoZW50aWNhdGlvblNjaGVtZUNsaWVudENlcnRpZmljYXRlUmVxdWVzdGVkKTsKKyAg
ICAgICAgUHJvdGVjdGlvblNwYWNlOjpBdXRoZW50aWNhdGlvblNjaGVtZTo6Q2xpZW50Q2VydGlm
aWNhdGVSZXF1ZXN0ZWQpOwogfQogCiBBdXRoZW50aWNhdGlvbkNoYWxsZW5nZTo6QXV0aGVudGlj
YXRpb25DaGFsbGVuZ2UoU291cE1lc3NhZ2UqIHNvdXBNZXNzYWdlLCBHVGxzQ2xpZW50Q29ubmVj
dGlvbiopCkBAIC0xMTQsNyArMTE0LDcgQEAgc3RhdGljIFByb3RlY3Rpb25TcGFjZSBwcm90ZWN0
aW9uU3BhY2VGb3JDbGllbnRDZXJ0aWZpY2F0ZVBhc3N3b3JkKEdUbHNQYXNzd29yZCoKICAgICBp
ZiAoIXBvcnQpCiAgICAgICAgIHBvcnQgPSBkZWZhdWx0UG9ydEZvclByb3RvY29sKHVybC5wcm90
b2NvbCgpKTsKICAgICByZXR1cm4gUHJvdGVjdGlvblNwYWNlKHVybC5ob3N0KCkudG9TdHJpbmco
KSwgc3RhdGljX2Nhc3Q8aW50Pihwb3J0LnZhbHVlX29yKDApKSwgcHJvdGVjdGlvblNwYWNlU2Vy
dmVyVHlwZUZyb21VUkwodXJsLCBmYWxzZSksCi0gICAgICAgIFN0cmluZzo6ZnJvbVVURjgoZ190
bHNfcGFzc3dvcmRfZ2V0X2Rlc2NyaXB0aW9uKHRsc1Bhc3N3b3JkKSksIFByb3RlY3Rpb25TcGFj
ZUF1dGhlbnRpY2F0aW9uU2NoZW1lQ2xpZW50Q2VydGlmaWNhdGVQSU5SZXF1ZXN0ZWQpOworICAg
ICAgICBTdHJpbmc6OmZyb21VVEY4KGdfdGxzX3Bhc3N3b3JkX2dldF9kZXNjcmlwdGlvbih0bHNQ
YXNzd29yZCkpLCBQcm90ZWN0aW9uU3BhY2U6OkF1dGhlbnRpY2F0aW9uU2NoZW1lOjpDbGllbnRD
ZXJ0aWZpY2F0ZVBJTlJlcXVlc3RlZCk7CiB9CiAKIEF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlOjpB
dXRoZW50aWNhdGlvbkNoYWxsZW5nZShTb3VwTWVzc2FnZSogc291cE1lc3NhZ2UsIEdUbHNQYXNz
d29yZCogdGxzUGFzc3dvcmQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9u
ZXR3b3JrL3NvdXAvTmV0d29ya1N0b3JhZ2VTZXNzaW9uU291cC5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9uZXR3b3JrL3NvdXAvTmV0d29ya1N0b3JhZ2VTZXNzaW9uU291cC5jcHAKaW5k
ZXggNWIzMjUzNGUyYmNhZjE3MDEzMzFlOTU0MTAxM2I4YTVjMzhjNGQzNi4uZmNmYTRlOTk1MjEy
YWU5MjZmNjMzOWQzN2RiYmIzZDEwNTFlMGZjMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vbmV0d29yay9zb3VwL05ldHdvcmtTdG9yYWdlU2Vzc2lvblNvdXAuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvc291cC9OZXR3b3JrU3RvcmFnZVNlc3Np
b25Tb3VwLmNwcApAQCAtODgsNDggKzg4LDQ4IEBAIHZvaWQgTmV0d29ya1N0b3JhZ2VTZXNzaW9u
OjpzZXRDb29raWVPYnNlcnZlckhhbmRsZXIoRnVuY3Rpb248dm9pZCAoKT4mJiBoYW5kbGVyCiB9
CiAKICNpZiBVU0UoTElCU0VDUkVUKQotc3RhdGljIGNvbnN0IGNoYXIqIHNjaGVtZUZyb21Qcm90
ZWN0aW9uU3BhY2VTZXJ2ZXJUeXBlKFByb3RlY3Rpb25TcGFjZVNlcnZlclR5cGUgc2VydmVyVHlw
ZSkKK3N0YXRpYyBjb25zdCBjaGFyKiBzY2hlbWVGcm9tUHJvdGVjdGlvblNwYWNlU2VydmVyVHlw
ZShQcm90ZWN0aW9uU3BhY2U6OlNlcnZlclR5cGUgc2VydmVyVHlwZSkKIHsKICAgICBzd2l0Y2gg
KHNlcnZlclR5cGUpIHsKLSAgICBjYXNlIFByb3RlY3Rpb25TcGFjZVNlcnZlckhUVFA6Ci0gICAg
Y2FzZSBQcm90ZWN0aW9uU3BhY2VQcm94eUhUVFA6CisgICAgY2FzZSBQcm90ZWN0aW9uU3BhY2U6
OlNlcnZlclR5cGU6OkhUVFA6CisgICAgY2FzZSBQcm90ZWN0aW9uU3BhY2U6OlNlcnZlclR5cGU6
OlByb3h5SFRUUDoKICAgICAgICAgcmV0dXJuICJodHRwIjsKLSAgICBjYXNlIFByb3RlY3Rpb25T
cGFjZVNlcnZlckhUVFBTOgotICAgIGNhc2UgUHJvdGVjdGlvblNwYWNlUHJveHlIVFRQUzoKKyAg
ICBjYXNlIFByb3RlY3Rpb25TcGFjZTo6U2VydmVyVHlwZTo6SFRUUFM6CisgICAgY2FzZSBQcm90
ZWN0aW9uU3BhY2U6OlNlcnZlclR5cGU6OlByb3h5SFRUUFM6CiAgICAgICAgIHJldHVybiAiaHR0
cHMiOwotICAgIGNhc2UgUHJvdGVjdGlvblNwYWNlU2VydmVyRlRQOgotICAgIGNhc2UgUHJvdGVj
dGlvblNwYWNlUHJveHlGVFA6CisgICAgY2FzZSBQcm90ZWN0aW9uU3BhY2U6OlNlcnZlclR5cGU6
OkZUUDoKKyAgICBjYXNlIFByb3RlY3Rpb25TcGFjZTo6U2VydmVyVHlwZTo6UHJveHlGVFA6CiAg
ICAgICAgIHJldHVybiAiZnRwIjsKLSAgICBjYXNlIFByb3RlY3Rpb25TcGFjZVNlcnZlckZUUFM6
Ci0gICAgY2FzZSBQcm90ZWN0aW9uU3BhY2VQcm94eVNPQ0tTOgorICAgIGNhc2UgUHJvdGVjdGlv
blNwYWNlOjpTZXJ2ZXJUeXBlOjpGVFBTOgorICAgIGNhc2UgUHJvdGVjdGlvblNwYWNlOjpTZXJ2
ZXJUeXBlOjpQcm94eVNPQ0tTOgogICAgICAgICBicmVhazsKICAgICB9CiAKICAgICBSRUxFQVNF
X0FTU0VSVF9OT1RfUkVBQ0hFRCgpOwogfQogCi1zdGF0aWMgY29uc3QgY2hhciogYXV0aFR5cGVG
cm9tUHJvdGVjdGlvblNwYWNlQXV0aGVudGljYXRpb25TY2hlbWUoUHJvdGVjdGlvblNwYWNlQXV0
aGVudGljYXRpb25TY2hlbWUgc2NoZW1lKQorc3RhdGljIGNvbnN0IGNoYXIqIGF1dGhUeXBlRnJv
bVByb3RlY3Rpb25TcGFjZUF1dGhlbnRpY2F0aW9uU2NoZW1lKFByb3RlY3Rpb25TcGFjZTo6QXV0
aGVudGljYXRpb25TY2hlbWUgc2NoZW1lKQogewogICAgIHN3aXRjaCAoc2NoZW1lKSB7Ci0gICAg
Y2FzZSBQcm90ZWN0aW9uU3BhY2VBdXRoZW50aWNhdGlvblNjaGVtZURlZmF1bHQ6Ci0gICAgY2Fz
ZSBQcm90ZWN0aW9uU3BhY2VBdXRoZW50aWNhdGlvblNjaGVtZUhUVFBCYXNpYzoKKyAgICBjYXNl
IFByb3RlY3Rpb25TcGFjZTo6QXV0aGVudGljYXRpb25TY2hlbWU6OkRlZmF1bHQ6CisgICAgY2Fz
ZSBQcm90ZWN0aW9uU3BhY2U6OkF1dGhlbnRpY2F0aW9uU2NoZW1lOjpIVFRQQmFzaWM6CiAgICAg
ICAgIHJldHVybiAiQmFzaWMiOwotICAgIGNhc2UgUHJvdGVjdGlvblNwYWNlQXV0aGVudGljYXRp
b25TY2hlbWVIVFRQRGlnZXN0OgorICAgIGNhc2UgUHJvdGVjdGlvblNwYWNlOjpBdXRoZW50aWNh
dGlvblNjaGVtZTo6SFRUUERpZ2VzdDoKICAgICAgICAgcmV0dXJuICJEaWdlc3QiOwotICAgIGNh
c2UgUHJvdGVjdGlvblNwYWNlQXV0aGVudGljYXRpb25TY2hlbWVOVExNOgorICAgIGNhc2UgUHJv
dGVjdGlvblNwYWNlOjpBdXRoZW50aWNhdGlvblNjaGVtZTo6TlRMTToKICAgICAgICAgcmV0dXJu
ICJOVExNIjsKLSAgICBjYXNlIFByb3RlY3Rpb25TcGFjZUF1dGhlbnRpY2F0aW9uU2NoZW1lTmVn
b3RpYXRlOgorICAgIGNhc2UgUHJvdGVjdGlvblNwYWNlOjpBdXRoZW50aWNhdGlvblNjaGVtZTo6
TmVnb3RpYXRlOgogICAgICAgICByZXR1cm4gIk5lZ290aWF0ZSI7Ci0gICAgY2FzZSBQcm90ZWN0
aW9uU3BhY2VBdXRoZW50aWNhdGlvblNjaGVtZUhUTUxGb3JtOgotICAgIGNhc2UgUHJvdGVjdGlv
blNwYWNlQXV0aGVudGljYXRpb25TY2hlbWVDbGllbnRDZXJ0aWZpY2F0ZVJlcXVlc3RlZDoKLSAg
ICBjYXNlIFByb3RlY3Rpb25TcGFjZUF1dGhlbnRpY2F0aW9uU2NoZW1lU2VydmVyVHJ1c3RFdmFs
dWF0aW9uUmVxdWVzdGVkOgorICAgIGNhc2UgUHJvdGVjdGlvblNwYWNlOjpBdXRoZW50aWNhdGlv
blNjaGVtZTo6SFRNTEZvcm06CisgICAgY2FzZSBQcm90ZWN0aW9uU3BhY2U6OkF1dGhlbnRpY2F0
aW9uU2NoZW1lOjpDbGllbnRDZXJ0aWZpY2F0ZVJlcXVlc3RlZDoKKyAgICBjYXNlIFByb3RlY3Rp
b25TcGFjZTo6QXV0aGVudGljYXRpb25TY2hlbWU6OlNlcnZlclRydXN0RXZhbHVhdGlvblJlcXVl
c3RlZDoKICAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CiAgICAgICAgIGJyZWFrOwotICAg
IGNhc2UgUHJvdGVjdGlvblNwYWNlQXV0aGVudGljYXRpb25TY2hlbWVDbGllbnRDZXJ0aWZpY2F0
ZVBJTlJlcXVlc3RlZDoKKyAgICBjYXNlIFByb3RlY3Rpb25TcGFjZTo6QXV0aGVudGljYXRpb25T
Y2hlbWU6OkNsaWVudENlcnRpZmljYXRlUElOUmVxdWVzdGVkOgogICAgICAgICByZXR1cm4gIkNl
cnRpZmljYXRlIFBJTiI7Ci0gICAgY2FzZSBQcm90ZWN0aW9uU3BhY2VBdXRoZW50aWNhdGlvblNj
aGVtZU9BdXRoOgorICAgIGNhc2UgUHJvdGVjdGlvblNwYWNlOjpBdXRoZW50aWNhdGlvblNjaGVt
ZTo6T0F1dGg6CiAgICAgICAgIHJldHVybiAiT0F1dGgiOwotICAgIGNhc2UgUHJvdGVjdGlvblNw
YWNlQXV0aGVudGljYXRpb25TY2hlbWVVbmtub3duOgorICAgIGNhc2UgUHJvdGVjdGlvblNwYWNl
OjpBdXRoZW50aWNhdGlvblNjaGVtZTo6VW5rbm93bjoKICAgICAgICAgcmV0dXJuICJ1bmtub3du
IjsKICAgICB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0
d29ya0NPUlNQcmVmbGlnaHRDaGVja2VyLmNwcCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nl
c3MvTmV0d29ya0NPUlNQcmVmbGlnaHRDaGVja2VyLmNwcAppbmRleCA0OGEzOWMzMzliNmMxOTk5
MWQzNmM4MDMzNTVkNDM5MmM2ZGM0MTYxLi45NTg2MDkxZWEwMDQxYjZmMTU4NjlkNDJiYmRhNzI0
MzI5NzY5MGVjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdv
cmtDT1JTUHJlZmxpZ2h0Q2hlY2tlci5jcHAKKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJv
Y2Vzcy9OZXR3b3JrQ09SU1ByZWZsaWdodENoZWNrZXIuY3BwCkBAIC05NSwxMSArOTUsMTEgQEAg
dm9pZCBOZXR3b3JrQ09SU1ByZWZsaWdodENoZWNrZXI6OndpbGxQZXJmb3JtSFRUUFJlZGlyZWN0
aW9uKFdlYkNvcmU6OlJlc291cmNlUmUKIAogdm9pZCBOZXR3b3JrQ09SU1ByZWZsaWdodENoZWNr
ZXI6OmRpZFJlY2VpdmVDaGFsbGVuZ2UoV2ViQ29yZTo6QXV0aGVudGljYXRpb25DaGFsbGVuZ2Um
JiBjaGFsbGVuZ2UsIE5lZ290aWF0ZWRMZWdhY3lUTFMgbmVnb3RpYXRlZExlZ2FjeVRMUywgQ2hh
bGxlbmdlQ29tcGxldGlvbkhhbmRsZXImJiBjb21wbGV0aW9uSGFuZGxlcikKIHsKLSAgICBDT1JT
X0NIRUNLRVJfUkVMRUFTRV9MT0coImRpZFJlY2VpdmVDaGFsbGVuZ2UsIGF1dGhlbnRpY2F0aW9u
IHNjaGVtZTogJXUiLCBjaGFsbGVuZ2UucHJvdGVjdGlvblNwYWNlKCkuYXV0aGVudGljYXRpb25T
Y2hlbWUoKSk7CisgICAgQ09SU19DSEVDS0VSX1JFTEVBU0VfTE9HKCJkaWRSZWNlaXZlQ2hhbGxl
bmdlLCBhdXRoZW50aWNhdGlvbiBzY2hlbWU6ICV1Iiwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KGNo
YWxsZW5nZS5wcm90ZWN0aW9uU3BhY2UoKS5hdXRoZW50aWNhdGlvblNjaGVtZSgpKSk7CiAKICAg
ICBhdXRvIHNjaGVtZSA9IGNoYWxsZW5nZS5wcm90ZWN0aW9uU3BhY2UoKS5hdXRoZW50aWNhdGlv
blNjaGVtZSgpOwotICAgIGJvb2wgaXNUTFNIYW5kc2hha2UgPSBzY2hlbWUgPT0gUHJvdGVjdGlv
blNwYWNlQXV0aGVudGljYXRpb25TY2hlbWVTZXJ2ZXJUcnVzdEV2YWx1YXRpb25SZXF1ZXN0ZWQK
LSAgICAgICAgfHwgc2NoZW1lID09IFByb3RlY3Rpb25TcGFjZUF1dGhlbnRpY2F0aW9uU2NoZW1l
Q2xpZW50Q2VydGlmaWNhdGVSZXF1ZXN0ZWQ7CisgICAgYm9vbCBpc1RMU0hhbmRzaGFrZSA9IHNj
aGVtZSA9PSBQcm90ZWN0aW9uU3BhY2U6OkF1dGhlbnRpY2F0aW9uU2NoZW1lOjpTZXJ2ZXJUcnVz
dEV2YWx1YXRpb25SZXF1ZXN0ZWQKKyAgICAgICAgfHwgc2NoZW1lID09IFByb3RlY3Rpb25TcGFj
ZTo6QXV0aGVudGljYXRpb25TY2hlbWU6OkNsaWVudENlcnRpZmljYXRlUmVxdWVzdGVkOwogCiAg
ICAgaWYgKCFpc1RMU0hhbmRzaGFrZSkgewogICAgICAgICBjb21wbGV0aW9uSGFuZGxlcihBdXRo
ZW50aWNhdGlvbkNoYWxsZW5nZURpc3Bvc2l0aW9uOjpVc2VDcmVkZW50aWFsLCB7IH0pOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrTG9hZC5jcHAgYi9T
b3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtMb2FkLmNwcAppbmRleCA1YTE2Yzli
YzUwZTQzZmE5OGU4NTk1NzUwMzBjMTRlYzAyNTRlODU0Li44YzEwNGQ4MTYwYjdhYWZkMDk5NzE1
ZGE2ZDRlNmY3YzQ2MzdmYTA4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9j
ZXNzL05ldHdvcmtMb2FkLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05l
dHdvcmtMb2FkLmNwcApAQCAtMjE1LDggKzIxNSw4IEBAIHZvaWQgTmV0d29ya0xvYWQ6OmRpZFJl
Y2VpdmVDaGFsbGVuZ2UoQXV0aGVudGljYXRpb25DaGFsbGVuZ2UmJiBjaGFsbGVuZ2UsIE5lZ290
CiAgICAgbV9jbGllbnQuZ2V0KCkuZGlkUmVjZWl2ZUNoYWxsZW5nZShjaGFsbGVuZ2UpOwogCiAg
ICAgYXV0byBzY2hlbWUgPSBjaGFsbGVuZ2UucHJvdGVjdGlvblNwYWNlKCkuYXV0aGVudGljYXRp
b25TY2hlbWUoKTsKLSAgICBib29sIGlzVExTSGFuZHNoYWtlID0gc2NoZW1lID09IFByb3RlY3Rp
b25TcGFjZUF1dGhlbnRpY2F0aW9uU2NoZW1lU2VydmVyVHJ1c3RFdmFsdWF0aW9uUmVxdWVzdGVk
Ci0gICAgICAgIHx8IHNjaGVtZSA9PSBQcm90ZWN0aW9uU3BhY2VBdXRoZW50aWNhdGlvblNjaGVt
ZUNsaWVudENlcnRpZmljYXRlUmVxdWVzdGVkOworICAgIGJvb2wgaXNUTFNIYW5kc2hha2UgPSBz
Y2hlbWUgPT0gUHJvdGVjdGlvblNwYWNlOjpBdXRoZW50aWNhdGlvblNjaGVtZTo6U2VydmVyVHJ1
c3RFdmFsdWF0aW9uUmVxdWVzdGVkCisgICAgICAgIHx8IHNjaGVtZSA9PSBQcm90ZWN0aW9uU3Bh
Y2U6OkF1dGhlbnRpY2F0aW9uU2NoZW1lOjpDbGllbnRDZXJ0aWZpY2F0ZVJlcXVlc3RlZDsKICAg
ICBpZiAoIWlzQWxsb3dlZFRvQXNrVXNlckZvckNyZWRlbnRpYWxzKCkgJiYgIWlzVExTSGFuZHNo
YWtlICYmICFjaGFsbGVuZ2UucHJvdGVjdGlvblNwYWNlKCkuaXNQcm94eSgpKSB7CiAgICAgICAg
IG1fY2xpZW50LmdldCgpLmRpZEJsb2NrQXV0aGVudGljYXRpb25DaGFsbGVuZ2UoKTsKICAgICAg
ICAgY29tcGxldGlvbkhhbmRsZXIoQXV0aGVudGljYXRpb25DaGFsbGVuZ2VEaXNwb3NpdGlvbjo6
VXNlQ3JlZGVudGlhbCwgeyB9KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1By
b2Nlc3MvUGluZ0xvYWQuY3BwIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9QaW5nTG9h
ZC5jcHAKaW5kZXggZGIzZjE3MjEyYmIyYjc4YWYwOGU2YWRjODU2MjA3ODY2NzM5ZTYzNi4uYmMy
YzMzN2U0ZWVlMDFhZjgzZTEzNjcyMzE3YTlhOWVhYmM3YzZmOCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9QaW5nTG9hZC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9O
ZXR3b3JrUHJvY2Vzcy9QaW5nTG9hZC5jcHAKQEAgLTE1MSw3ICsxNTEsNyBAQCB2b2lkIFBpbmdM
b2FkOjp3aWxsUGVyZm9ybUhUVFBSZWRpcmVjdGlvbihSZXNvdXJjZVJlc3BvbnNlJiYgcmVkaXJl
Y3RSZXNwb25zZSwgUgogdm9pZCBQaW5nTG9hZDo6ZGlkUmVjZWl2ZUNoYWxsZW5nZShBdXRoZW50
aWNhdGlvbkNoYWxsZW5nZSYmIGNoYWxsZW5nZSwgTmVnb3RpYXRlZExlZ2FjeVRMUyBuZWdvdGlh
dGVkTGVnYWN5VExTLCBDaGFsbGVuZ2VDb21wbGV0aW9uSGFuZGxlciYmIGNvbXBsZXRpb25IYW5k
bGVyKQogewogICAgIFBJTkdfUkVMRUFTRV9MT0coImRpZFJlY2VpdmVDaGFsbGVuZ2UiKTsKLSAg
ICBpZiAoY2hhbGxlbmdlLnByb3RlY3Rpb25TcGFjZSgpLmF1dGhlbnRpY2F0aW9uU2NoZW1lKCkg
PT0gUHJvdGVjdGlvblNwYWNlQXV0aGVudGljYXRpb25TY2hlbWVTZXJ2ZXJUcnVzdEV2YWx1YXRp
b25SZXF1ZXN0ZWQpIHsKKyAgICBpZiAoY2hhbGxlbmdlLnByb3RlY3Rpb25TcGFjZSgpLmF1dGhl
bnRpY2F0aW9uU2NoZW1lKCkgPT0gUHJvdGVjdGlvblNwYWNlOjpBdXRoZW50aWNhdGlvblNjaGVt
ZTo6U2VydmVyVHJ1c3RFdmFsdWF0aW9uUmVxdWVzdGVkKSB7CiAgICAgICAgIG1fbmV0d29ya0xv
YWRDaGVja2VyLT5uZXR3b3JrUHJvY2VzcygpLmF1dGhlbnRpY2F0aW9uTWFuYWdlcigpLmRpZFJl
Y2VpdmVBdXRoZW50aWNhdGlvbkNoYWxsZW5nZShtX3Nlc3Npb25JRCwgbV9wYXJhbWV0ZXJzLndl
YlBhZ2VQcm94eUlELCAgbV9wYXJhbWV0ZXJzLnRvcE9yaWdpbiA/ICZtX3BhcmFtZXRlcnMudG9w
T3JpZ2luLT5kYXRhKCkgOiBudWxscHRyLCBjaGFsbGVuZ2UsIG5lZ290aWF0ZWRMZWdhY3lUTFMs
IFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvY29jb2EvTmV0d29ya1Nlc3Np
b25Db2NvYS5tbSBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvY29jb2EvTmV0d29ya1Nl
c3Npb25Db2NvYS5tbQppbmRleCA1MzlhOTI4NTRlN2ZhMDc4Yjc5YWRlMzc3ZWIzYWJiYTE4YzAx
Mzk2Li4yYzRmMDBiODU2YzliYWFmY2E4ZTZjODY4MDQ4OGFlMjg1ZTE3NTkzIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL2NvY29hL05ldHdvcmtTZXNzaW9uQ29jb2Eu
bW0KKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9jb2NvYS9OZXR3b3JrU2Vzc2lv
bkNvY29hLm1tCkBAIC0xNjE3LDcgKzE2MTcsNyBAQCBib29sIE5ldHdvcmtTZXNzaW9uQ29jb2E6
OmFsbG93c1NwZWNpZmljSFRUUFNDZXJ0aWZpY2F0ZUZvckhvc3QoY29uc3QgV2ViQ29yZTo6QQog
ICAgIGlmICghY2VydGlmaWNhdGVzKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAKLSAgICBib29s
IHJlcXVpcmVTZXJ2ZXJDZXJ0aWZpY2F0ZXMgPSBjaGFsbGVuZ2UucHJvdGVjdGlvblNwYWNlKCku
YXV0aGVudGljYXRpb25TY2hlbWUoKSA9PSBXZWJDb3JlOjpQcm90ZWN0aW9uU3BhY2VBdXRoZW50
aWNhdGlvblNjaGVtZTo6UHJvdGVjdGlvblNwYWNlQXV0aGVudGljYXRpb25TY2hlbWVTZXJ2ZXJU
cnVzdEV2YWx1YXRpb25SZXF1ZXN0ZWQ7CisgICAgYm9vbCByZXF1aXJlU2VydmVyQ2VydGlmaWNh
dGVzID0gY2hhbGxlbmdlLnByb3RlY3Rpb25TcGFjZSgpLmF1dGhlbnRpY2F0aW9uU2NoZW1lKCkg
PT0gV2ViQ29yZTo6UHJvdGVjdGlvblNwYWNlOjpBdXRoZW50aWNhdGlvblNjaGVtZTo6U2VydmVy
VHJ1c3RFdmFsdWF0aW9uUmVxdWVzdGVkOwogICAgIFJldGFpblB0cjxTZWNQb2xpY3lSZWY+IHBv
bGljeSA9IGFkb3B0Q0YoU2VjUG9saWN5Q3JlYXRlU1NMKHJlcXVpcmVTZXJ2ZXJDZXJ0aWZpY2F0
ZXMsIGhvc3QuY3JlYXRlQ0ZTdHJpbmcoKS5nZXQoKSkpOwogCiAgICAgU2VjVHJ1c3RSZWYgdHJ1
c3RSZWYgPSBudWxscHRyOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vz
cy9jdXJsL05ldHdvcmtEYXRhVGFza0N1cmwuY3BwIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJv
Y2Vzcy9jdXJsL05ldHdvcmtEYXRhVGFza0N1cmwuY3BwCmluZGV4IDNkYzY1ZmY4MmM5ZGE4OTJk
MjBjMzQ4ODZlNWExYzRkNzlkYWRlZjUuLjg0NjY5ZTIwOWQ3N2JmNTJhMzZhZmUyYTdkYWIyNTJh
NjkwMGRjZjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvY3VybC9O
ZXR3b3JrRGF0YVRhc2tDdXJsLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNz
L2N1cmwvTmV0d29ya0RhdGFUYXNrQ3VybC5jcHAKQEAgLTc1LDcgKzc1LDcgQEAgTmV0d29ya0Rh
dGFUYXNrQ3VybDo6TmV0d29ya0RhdGFUYXNrQ3VybChOZXR3b3JrU2Vzc2lvbiYgc2Vzc2lvbiwg
TmV0d29ya0RhdGFUYXMKICAgICBtX2N1cmxSZXF1ZXN0ID0gY3JlYXRlQ3VybFJlcXVlc3QoV1RG
TW92ZShyZXF1ZXN0KSk7CiAgICAgaWYgKCFtX2luaXRpYWxDcmVkZW50aWFsLmlzRW1wdHkoKSkg
ewogICAgICAgICBtX2N1cmxSZXF1ZXN0LT5zZXRVc2VyUGFzcyhtX2luaXRpYWxDcmVkZW50aWFs
LnVzZXIoKSwgbV9pbml0aWFsQ3JlZGVudGlhbC5wYXNzd29yZCgpKTsKLSAgICAgICAgbV9jdXJs
UmVxdWVzdC0+c2V0QXV0aGVudGljYXRpb25TY2hlbWUoUHJvdGVjdGlvblNwYWNlQXV0aGVudGlj
YXRpb25TY2hlbWVIVFRQQmFzaWMpOworICAgICAgICBtX2N1cmxSZXF1ZXN0LT5zZXRBdXRoZW50
aWNhdGlvblNjaGVtZShQcm90ZWN0aW9uU3BhY2U6OkF1dGhlbnRpY2F0aW9uU2NoZW1lOjpIVFRQ
QmFzaWMpOwogICAgIH0KICAgICBtX2N1cmxSZXF1ZXN0LT5zdGFydCgpOwogfQpAQCAtMzEzLDcg
KzMxMyw3IEBAIHZvaWQgTmV0d29ya0RhdGFUYXNrQ3VybDo6d2lsbFBlcmZvcm1IVFRQUmVkaXJl
Y3Rpb24oKQogICAgICAgICBtX2N1cmxSZXF1ZXN0ID0gY3JlYXRlQ3VybFJlcXVlc3QoV1RGTW92
ZShyZXF1ZXN0Q29weSkpOwogICAgICAgICBpZiAoZGlkQ2hhbmdlQ3JlZGVudGlhbCAmJiAhbV9p
bml0aWFsQ3JlZGVudGlhbC5pc0VtcHR5KCkpIHsKICAgICAgICAgICAgIG1fY3VybFJlcXVlc3Qt
PnNldFVzZXJQYXNzKG1faW5pdGlhbENyZWRlbnRpYWwudXNlcigpLCBtX2luaXRpYWxDcmVkZW50
aWFsLnBhc3N3b3JkKCkpOwotICAgICAgICAgICAgbV9jdXJsUmVxdWVzdC0+c2V0QXV0aGVudGlj
YXRpb25TY2hlbWUoUHJvdGVjdGlvblNwYWNlQXV0aGVudGljYXRpb25TY2hlbWVIVFRQQmFzaWMp
OworICAgICAgICAgICAgbV9jdXJsUmVxdWVzdC0+c2V0QXV0aGVudGljYXRpb25TY2hlbWUoUHJv
dGVjdGlvblNwYWNlOjpBdXRoZW50aWNhdGlvblNjaGVtZTo6SFRUUEJhc2ljKTsKICAgICAgICAg
fQogICAgICAgICBtX2N1cmxSZXF1ZXN0LT5zdGFydCgpOwogCkBAIC00MjcsNyArNDI3LDcgQEAg
dm9pZCBOZXR3b3JrRGF0YVRhc2tDdXJsOjpyZXN0YXJ0V2l0aENyZWRlbnRpYWwoY29uc3QgUHJv
dGVjdGlvblNwYWNlJiBwcm90ZWN0aW8KICAgICBBU1NFUlQobV9jdXJsUmVxdWVzdCk7CiAKICAg
ICBhdXRvIHByZXZpb3VzUmVxdWVzdCA9IG1fY3VybFJlcXVlc3QtPnJlc291cmNlUmVxdWVzdCgp
OwotICAgIGF1dG8gc2hvdWxkRGlzYWJsZVNlcnZlclRydXN0RXZhbHVhdGlvbiA9IHByb3RlY3Rp
b25TcGFjZS5hdXRoZW50aWNhdGlvblNjaGVtZSgpID09IFByb3RlY3Rpb25TcGFjZUF1dGhlbnRp
Y2F0aW9uU2NoZW1lU2VydmVyVHJ1c3RFdmFsdWF0aW9uUmVxdWVzdGVkIHx8IG1fY3VybFJlcXVl
c3QtPmlzU2VydmVyVHJ1c3RFdmFsdWF0aW9uRGlzYWJsZWQoKTsKKyAgICBhdXRvIHNob3VsZERp
c2FibGVTZXJ2ZXJUcnVzdEV2YWx1YXRpb24gPSBwcm90ZWN0aW9uU3BhY2UuYXV0aGVudGljYXRp
b25TY2hlbWUoKSA9PSBQcm90ZWN0aW9uU3BhY2U6OkF1dGhlbnRpY2F0aW9uU2NoZW1lOjpTZXJ2
ZXJUcnVzdEV2YWx1YXRpb25SZXF1ZXN0ZWQgfHwgbV9jdXJsUmVxdWVzdC0+aXNTZXJ2ZXJUcnVz
dEV2YWx1YXRpb25EaXNhYmxlZCgpOwogICAgIG1fY3VybFJlcXVlc3QtPmNhbmNlbCgpOwogCiAg
ICAgbV9jdXJsUmVxdWVzdCA9IGNyZWF0ZUN1cmxSZXF1ZXN0KFdURk1vdmUocHJldmlvdXNSZXF1
ZXN0KSwgUmVxdWVzdFN0YXR1czo6UmV1c2VkUmVxdWVzdCk7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L05ldHdvcmtQcm9jZXNzL3NvdXAvTmV0d29ya0RhdGFUYXNrU291cC5jcHAgYi9Tb3Vy
Y2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL3NvdXAvTmV0d29ya0RhdGFUYXNrU291cC5jcHAKaW5k
ZXggMDljN2Q0M2M1NThlYTYzNGRmMTUyMTYxNDdlZmM5ZTUxNDM3OTY2Zi4uNjBhNDljNmQ0MDRj
NTI1NjNkODdmYzJjZDFjYjIyNDQ0NjcxZDFjZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9O
ZXR3b3JrUHJvY2Vzcy9zb3VwL05ldHdvcmtEYXRhVGFza1NvdXAuY3BwCisrKyBiL1NvdXJjZS9X
ZWJLaXQvTmV0d29ya1Byb2Nlc3Mvc291cC9OZXR3b3JrRGF0YVRhc2tTb3VwLmNwcApAQCAtNjg4
LDE2ICs2ODgsMTYgQEAgc3RhdGljIGlubGluZSBib29sIGlzQXV0aGVudGljYXRpb25GYWlsdXJl
U3RhdHVzQ29kZShpbnQgaHR0cFN0YXR1c0NvZGUpCiB2b2lkIE5ldHdvcmtEYXRhVGFza1NvdXA6
OmNvbXBsZXRlQXV0aGVudGljYXRpb24oY29uc3QgQXV0aGVudGljYXRpb25DaGFsbGVuZ2UmIGNo
YWxsZW5nZSwgY29uc3QgQ3JlZGVudGlhbCYgY3JlZGVudGlhbCkKIHsKICAgICBzd2l0Y2ggKGNo
YWxsZW5nZS5wcm90ZWN0aW9uU3BhY2UoKS5hdXRoZW50aWNhdGlvblNjaGVtZSgpKSB7Ci0gICAg
Y2FzZSBQcm90ZWN0aW9uU3BhY2VBdXRoZW50aWNhdGlvblNjaGVtZURlZmF1bHQ6Ci0gICAgY2Fz
ZSBQcm90ZWN0aW9uU3BhY2VBdXRoZW50aWNhdGlvblNjaGVtZUhUVFBCYXNpYzoKLSAgICBjYXNl
IFByb3RlY3Rpb25TcGFjZUF1dGhlbnRpY2F0aW9uU2NoZW1lSFRUUERpZ2VzdDoKLSAgICBjYXNl
IFByb3RlY3Rpb25TcGFjZUF1dGhlbnRpY2F0aW9uU2NoZW1lSFRNTEZvcm06Ci0gICAgY2FzZSBQ
cm90ZWN0aW9uU3BhY2VBdXRoZW50aWNhdGlvblNjaGVtZU5UTE06Ci0gICAgY2FzZSBQcm90ZWN0
aW9uU3BhY2VBdXRoZW50aWNhdGlvblNjaGVtZU5lZ290aWF0ZToKLSAgICBjYXNlIFByb3RlY3Rp
b25TcGFjZUF1dGhlbnRpY2F0aW9uU2NoZW1lT0F1dGg6CisgICAgY2FzZSBQcm90ZWN0aW9uU3Bh
Y2U6OkF1dGhlbnRpY2F0aW9uU2NoZW1lOjpEZWZhdWx0OgorICAgIGNhc2UgUHJvdGVjdGlvblNw
YWNlOjpBdXRoZW50aWNhdGlvblNjaGVtZTo6SFRUUEJhc2ljOgorICAgIGNhc2UgUHJvdGVjdGlv
blNwYWNlOjpBdXRoZW50aWNhdGlvblNjaGVtZTo6SFRUUERpZ2VzdDoKKyAgICBjYXNlIFByb3Rl
Y3Rpb25TcGFjZTo6QXV0aGVudGljYXRpb25TY2hlbWU6OkhUTUxGb3JtOgorICAgIGNhc2UgUHJv
dGVjdGlvblNwYWNlOjpBdXRoZW50aWNhdGlvblNjaGVtZTo6TlRMTToKKyAgICBjYXNlIFByb3Rl
Y3Rpb25TcGFjZTo6QXV0aGVudGljYXRpb25TY2hlbWU6Ok5lZ290aWF0ZToKKyAgICBjYXNlIFBy
b3RlY3Rpb25TcGFjZTo6QXV0aGVudGljYXRpb25TY2hlbWU6Ok9BdXRoOgogICAgICAgICBzb3Vw
X2F1dGhfYXV0aGVudGljYXRlKGNoYWxsZW5nZS5zb3VwQXV0aCgpLCBjcmVkZW50aWFsLnVzZXIo
KS51dGY4KCkuZGF0YSgpLCBjcmVkZW50aWFsLnBhc3N3b3JkKCkudXRmOCgpLmRhdGEoKSk7CiAg
ICAgICAgIGJyZWFrOwotICAgIGNhc2UgUHJvdGVjdGlvblNwYWNlQXV0aGVudGljYXRpb25TY2hl
bWVDbGllbnRDZXJ0aWZpY2F0ZVBJTlJlcXVlc3RlZDogeworICAgIGNhc2UgUHJvdGVjdGlvblNw
YWNlOjpBdXRoZW50aWNhdGlvblNjaGVtZTo6Q2xpZW50Q2VydGlmaWNhdGVQSU5SZXF1ZXN0ZWQ6
IHsKICNpZiBVU0UoU09VUDIpCiAgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwogI2Vsc2UK
QEAgLTcwNywxNSArNzA3LDE1IEBAIHZvaWQgTmV0d29ya0RhdGFUYXNrU291cDo6Y29tcGxldGVB
dXRoZW50aWNhdGlvbihjb25zdCBBdXRoZW50aWNhdGlvbkNoYWxsZW5nZSYKICNlbmRpZgogICAg
ICAgICBicmVhazsKICAgICB9Ci0gICAgY2FzZSBQcm90ZWN0aW9uU3BhY2VBdXRoZW50aWNhdGlv
blNjaGVtZUNsaWVudENlcnRpZmljYXRlUmVxdWVzdGVkOgorICAgIGNhc2UgUHJvdGVjdGlvblNw
YWNlOjpBdXRoZW50aWNhdGlvblNjaGVtZTo6Q2xpZW50Q2VydGlmaWNhdGVSZXF1ZXN0ZWQ6CiAj
aWYgVVNFKFNPVVAyKQogICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKICNlbHNlCiAgICAg
ICAgIHNvdXBfbWVzc2FnZV9zZXRfdGxzX2NsaWVudF9jZXJ0aWZpY2F0ZShtX3NvdXBNZXNzYWdl
LmdldCgpLCBjcmVkZW50aWFsLmNlcnRpZmljYXRlKCkpOwogI2VuZGlmCiAgICAgICAgIGJyZWFr
OwotICAgIGNhc2UgUHJvdGVjdGlvblNwYWNlQXV0aGVudGljYXRpb25TY2hlbWVTZXJ2ZXJUcnVz
dEV2YWx1YXRpb25SZXF1ZXN0ZWQ6Ci0gICAgY2FzZSBQcm90ZWN0aW9uU3BhY2VBdXRoZW50aWNh
dGlvblNjaGVtZVVua25vd246CisgICAgY2FzZSBQcm90ZWN0aW9uU3BhY2U6OkF1dGhlbnRpY2F0
aW9uU2NoZW1lOjpTZXJ2ZXJUcnVzdEV2YWx1YXRpb25SZXF1ZXN0ZWQ6CisgICAgY2FzZSBQcm90
ZWN0aW9uU3BhY2U6OkF1dGhlbnRpY2F0aW9uU2NoZW1lOjpVbmtub3duOgogICAgICAgICBicmVh
azsKICAgICB9CiB9CkBAIC03MjMsMzEgKzcyMywzMSBAQCB2b2lkIE5ldHdvcmtEYXRhVGFza1Nv
dXA6OmNvbXBsZXRlQXV0aGVudGljYXRpb24oY29uc3QgQXV0aGVudGljYXRpb25DaGFsbGVuZ2Um
CiB2b2lkIE5ldHdvcmtEYXRhVGFza1NvdXA6OmNhbmNlbEF1dGhlbnRpY2F0aW9uKGNvbnN0IEF1
dGhlbnRpY2F0aW9uQ2hhbGxlbmdlJiBjaGFsbGVuZ2UpCiB7CiAgICAgc3dpdGNoIChjaGFsbGVu
Z2UucHJvdGVjdGlvblNwYWNlKCkuYXV0aGVudGljYXRpb25TY2hlbWUoKSkgewotICAgIGNhc2Ug
UHJvdGVjdGlvblNwYWNlQXV0aGVudGljYXRpb25TY2hlbWVEZWZhdWx0OgotICAgIGNhc2UgUHJv
dGVjdGlvblNwYWNlQXV0aGVudGljYXRpb25TY2hlbWVIVFRQQmFzaWM6Ci0gICAgY2FzZSBQcm90
ZWN0aW9uU3BhY2VBdXRoZW50aWNhdGlvblNjaGVtZUhUVFBEaWdlc3Q6Ci0gICAgY2FzZSBQcm90
ZWN0aW9uU3BhY2VBdXRoZW50aWNhdGlvblNjaGVtZUhUTUxGb3JtOgotICAgIGNhc2UgUHJvdGVj
dGlvblNwYWNlQXV0aGVudGljYXRpb25TY2hlbWVOVExNOgotICAgIGNhc2UgUHJvdGVjdGlvblNw
YWNlQXV0aGVudGljYXRpb25TY2hlbWVOZWdvdGlhdGU6Ci0gICAgY2FzZSBQcm90ZWN0aW9uU3Bh
Y2VBdXRoZW50aWNhdGlvblNjaGVtZU9BdXRoOgorICAgIGNhc2UgUHJvdGVjdGlvblNwYWNlOjpB
dXRoZW50aWNhdGlvblNjaGVtZTo6RGVmYXVsdDoKKyAgICBjYXNlIFByb3RlY3Rpb25TcGFjZTo6
QXV0aGVudGljYXRpb25TY2hlbWU6OkhUVFBCYXNpYzoKKyAgICBjYXNlIFByb3RlY3Rpb25TcGFj
ZTo6QXV0aGVudGljYXRpb25TY2hlbWU6OkhUVFBEaWdlc3Q6CisgICAgY2FzZSBQcm90ZWN0aW9u
U3BhY2U6OkF1dGhlbnRpY2F0aW9uU2NoZW1lOjpIVE1MRm9ybToKKyAgICBjYXNlIFByb3RlY3Rp
b25TcGFjZTo6QXV0aGVudGljYXRpb25TY2hlbWU6Ok5UTE06CisgICAgY2FzZSBQcm90ZWN0aW9u
U3BhY2U6OkF1dGhlbnRpY2F0aW9uU2NoZW1lOjpOZWdvdGlhdGU6CisgICAgY2FzZSBQcm90ZWN0
aW9uU3BhY2U6OkF1dGhlbnRpY2F0aW9uU2NoZW1lOjpPQXV0aDoKICAgICAgICAgc291cF9hdXRo
X2NhbmNlbChjaGFsbGVuZ2Uuc291cEF1dGgoKSk7CiAgICAgICAgIGJyZWFrOwotICAgIGNhc2Ug
UHJvdGVjdGlvblNwYWNlQXV0aGVudGljYXRpb25TY2hlbWVDbGllbnRDZXJ0aWZpY2F0ZVBJTlJl
cXVlc3RlZDoKKyAgICBjYXNlIFByb3RlY3Rpb25TcGFjZTo6QXV0aGVudGljYXRpb25TY2hlbWU6
OkNsaWVudENlcnRpZmljYXRlUElOUmVxdWVzdGVkOgogI2lmIFVTRShTT1VQMikKICAgICAgICAg
QVNTRVJUX05PVF9SRUFDSEVEKCk7CiAjZWxzZQogICAgICAgICBzb3VwX21lc3NhZ2VfdGxzX2Ns
aWVudF9jZXJ0aWZpY2F0ZV9wYXNzd29yZF9yZXF1ZXN0X2NvbXBsZXRlKG1fc291cE1lc3NhZ2Uu
Z2V0KCkpOwogI2VuZGlmCiAgICAgICAgIGJyZWFrOwotICAgIGNhc2UgUHJvdGVjdGlvblNwYWNl
QXV0aGVudGljYXRpb25TY2hlbWVDbGllbnRDZXJ0aWZpY2F0ZVJlcXVlc3RlZDoKKyAgICBjYXNl
IFByb3RlY3Rpb25TcGFjZTo6QXV0aGVudGljYXRpb25TY2hlbWU6OkNsaWVudENlcnRpZmljYXRl
UmVxdWVzdGVkOgogI2lmIFVTRShTT1VQMikKICAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7
CiAjZWxzZQogICAgICAgICBzb3VwX21lc3NhZ2Vfc2V0X3Rsc19jbGllbnRfY2VydGlmaWNhdGUo
bV9zb3VwTWVzc2FnZS5nZXQoKSwgbnVsbHB0cik7CiAjZW5kaWYKICAgICAgICAgYnJlYWs7Ci0g
ICAgY2FzZSBQcm90ZWN0aW9uU3BhY2VBdXRoZW50aWNhdGlvblNjaGVtZVNlcnZlclRydXN0RXZh
bHVhdGlvblJlcXVlc3RlZDoKLSAgICBjYXNlIFByb3RlY3Rpb25TcGFjZUF1dGhlbnRpY2F0aW9u
U2NoZW1lVW5rbm93bjoKKyAgICBjYXNlIFByb3RlY3Rpb25TcGFjZTo6QXV0aGVudGljYXRpb25T
Y2hlbWU6OlNlcnZlclRydXN0RXZhbHVhdGlvblJlcXVlc3RlZDoKKyAgICBjYXNlIFByb3RlY3Rp
b25TcGFjZTo6QXV0aGVudGljYXRpb25TY2hlbWU6OlVua25vd246CiAgICAgICAgIGJyZWFrOwog
ICAgIH0KIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0F1dGhlbnRpY2F0aW9u
L0F1dGhlbnRpY2F0aW9uTWFuYWdlci5jcHAgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9BdXRoZW50
aWNhdGlvbi9BdXRoZW50aWNhdGlvbk1hbmFnZXIuY3BwCmluZGV4IGY2MTEzNTUxNzU3OWI2YTc4
ZDY3Yjc2ODdkZTU0YzZjMmQzZDhkNzguLmEzOWMxZTE1ZjhjZjNhMDY0OGY2ZDhlMWViYWMzMzQz
N2JiMDNjNjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0F1dGhlbnRpY2F0aW9u
L0F1dGhlbnRpY2F0aW9uTWFuYWdlci5jcHAKKysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQvQXV0
aGVudGljYXRpb24vQXV0aGVudGljYXRpb25NYW5hZ2VyLmNwcApAQCAtNDUsNyArNDUsNyBAQCB1
c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKIHN0YXRpYyBib29sIGNhbkNvYWxlc2NlQ2hhbGxlbmdl
KGNvbnN0IFdlYkNvcmU6OkF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlJiBjaGFsbGVuZ2UpCiB7CiAg
ICAgLy8gRG8gbm90IGNvYWxlc2NlIHNlcnZlciB0cnVzdCBldmFsdWF0aW9uIHJlcXVlc3RzIGJl
Y2F1c2UgUHJvdGVjdGlvblNwYWNlIGNvbXBhcmlzb24gZG9lcyBub3QgZXZhbHVhdGUgc2VydmVy
IHRydXN0IChlLmcuIGNlcnRpZmljYXRlKS4KLSAgICByZXR1cm4gY2hhbGxlbmdlLnByb3RlY3Rp
b25TcGFjZSgpLmF1dGhlbnRpY2F0aW9uU2NoZW1lKCkgIT0gUHJvdGVjdGlvblNwYWNlQXV0aGVu
dGljYXRpb25TY2hlbWVTZXJ2ZXJUcnVzdEV2YWx1YXRpb25SZXF1ZXN0ZWQ7CisgICAgcmV0dXJu
IGNoYWxsZW5nZS5wcm90ZWN0aW9uU3BhY2UoKS5hdXRoZW50aWNhdGlvblNjaGVtZSgpICE9IFBy
b3RlY3Rpb25TcGFjZTo6QXV0aGVudGljYXRpb25TY2hlbWU6OlNlcnZlclRydXN0RXZhbHVhdGlv
blJlcXVlc3RlZDsKIH0KIAogY29uc3QgY2hhciogQXV0aGVudGljYXRpb25NYW5hZ2VyOjpzdXBw
bGVtZW50TmFtZSgpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJDb3JlQXJn
dW1lbnRDb2RlcnMuY3BwIGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViQ29yZUFyZ3VtZW50Q29k
ZXJzLmNwcAppbmRleCBhNjllYmM1OTYzMjU5ZWE0YWQ0NTE3MTViNzcxY2RkMmRiNjQ0MzE3Li5j
ODk4Njg3YjIyNmNjZTRiNGYzYjhiMWE4NWNiZWM3OTU4YjY3YWI2IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L1NoYXJlZC9XZWJDb3JlQXJndW1lbnRDb2RlcnMuY3BwCisrKyBiL1NvdXJjZS9X
ZWJLaXQvU2hhcmVkL1dlYkNvcmVBcmd1bWVudENvZGVycy5jcHAKQEAgLTk2MiwxMSArOTYyLDEx
IEBAIGJvb2wgQXJndW1lbnRDb2RlcjxQcm90ZWN0aW9uU3BhY2U+OjpkZWNvZGUoRGVjb2RlciYg
ZGVjb2RlciwgUHJvdGVjdGlvblNwYWNlJiBzCiAgICAgaWYgKCFkZWNvZGVyLmRlY29kZShyZWFs
bSkpCiAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICAKLSAgICBQcm90ZWN0aW9uU3BhY2VBdXRo
ZW50aWNhdGlvblNjaGVtZSBhdXRoZW50aWNhdGlvblNjaGVtZTsKKyAgICBQcm90ZWN0aW9uU3Bh
Y2U6OkF1dGhlbnRpY2F0aW9uU2NoZW1lIGF1dGhlbnRpY2F0aW9uU2NoZW1lOwogICAgIGlmICgh
ZGVjb2Rlci5kZWNvZGUoYXV0aGVudGljYXRpb25TY2hlbWUpKQogICAgICAgICByZXR1cm4gZmFs
c2U7CiAKLSAgICBQcm90ZWN0aW9uU3BhY2VTZXJ2ZXJUeXBlIHNlcnZlclR5cGU7CisgICAgUHJv
dGVjdGlvblNwYWNlOjpTZXJ2ZXJUeXBlIHNlcnZlclR5cGU7CiAgICAgaWYgKCFkZWNvZGVyLmRl
Y29kZShzZXJ2ZXJUeXBlKSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwogCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L1NoYXJlZC9jdXJsL1dlYkNvcmVBcmd1bWVudENvZGVyc0N1cmwuY3BwIGIv
U291cmNlL1dlYktpdC9TaGFyZWQvY3VybC9XZWJDb3JlQXJndW1lbnRDb2RlcnNDdXJsLmNwcApp
bmRleCA2ZmM1NDQzNDgyNTNmMTA4NTJhYWRiNTdlZTJiYmU0YTEwYTliZjdmLi5hYjY0ODNiODkx
ZGUyODk1NmExMGZiZTU2ZjQyOGUxOWQ4M2RkMDJlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L1NoYXJlZC9jdXJsL1dlYkNvcmVBcmd1bWVudENvZGVyc0N1cmwuY3BwCisrKyBiL1NvdXJjZS9X
ZWJLaXQvU2hhcmVkL2N1cmwvV2ViQ29yZUFyZ3VtZW50Q29kZXJzQ3VybC5jcHAKQEAgLTE2Mywx
MSArMTYzLDExIEBAIGJvb2wgQXJndW1lbnRDb2RlcjxQcm90ZWN0aW9uU3BhY2U+OjpkZWNvZGVQ
bGF0Zm9ybURhdGEoRGVjb2RlciYgZGVjb2RlciwgUHJvdGVjCiAgICAgaWYgKCFkZWNvZGVyLmRl
Y29kZShyZWFsbSkpCiAgICAgICAgIHJldHVybiBmYWxzZTsKIAotICAgIFByb3RlY3Rpb25TcGFj
ZUF1dGhlbnRpY2F0aW9uU2NoZW1lIGF1dGhlbnRpY2F0aW9uU2NoZW1lOworICAgIFByb3RlY3Rp
b25TcGFjZTo6QXV0aGVudGljYXRpb25TY2hlbWUgYXV0aGVudGljYXRpb25TY2hlbWU7CiAgICAg
aWYgKCFkZWNvZGVyLmRlY29kZShhdXRoZW50aWNhdGlvblNjaGVtZSkpCiAgICAgICAgIHJldHVy
biBmYWxzZTsKIAotICAgIFByb3RlY3Rpb25TcGFjZVNlcnZlclR5cGUgc2VydmVyVHlwZTsKKyAg
ICBQcm90ZWN0aW9uU3BhY2U6OlNlcnZlclR5cGUgc2VydmVyVHlwZTsKICAgICBpZiAoIWRlY29k
ZXIuZGVjb2RlKHNlcnZlclR5cGUpKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9DL1dLQVBJQ2FzdC5oIGIvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvQVBJL0MvV0tBUElDYXN0LmgKaW5kZXggNTEyYjJiYzY5NTI0Yjc5OTAx
ODU2NTJjYzEzNmNkNWEzODRhNjZjYy4uNTZlMDg0NDg4NzI5OWU4MGFjNjk1NWIwZTkzMmNhYTUw
ZjVkNGE5MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0MvV0tBUElD
YXN0LmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0MvV0tBUElDYXN0LmgKQEAg
LTI5MCw0OSArMjkwLDQ5IEBAIGlubGluZSBXZWJDb3JlOjpFZGl0YWJsZUxpbmtCZWhhdmlvciB0
b0VkaXRhYmxlTGlua0JlaGF2aW9yKFdLRWRpdGFibGVMaW5rQmVoYXZpCiAgICAgcmV0dXJuIFdl
YkNvcmU6OkVkaXRhYmxlTGlua0JlaGF2aW9yOjpOZXZlckxpdmU7CiB9CiAgICAgCi1pbmxpbmUg
V0tQcm90ZWN0aW9uU3BhY2VTZXJ2ZXJUeXBlIHRvQVBJKFdlYkNvcmU6OlByb3RlY3Rpb25TcGFj
ZVNlcnZlclR5cGUgdHlwZSkKK2lubGluZSBXS1Byb3RlY3Rpb25TcGFjZVNlcnZlclR5cGUgdG9B
UEkoV2ViQ29yZTo6UHJvdGVjdGlvblNwYWNlOjpTZXJ2ZXJUeXBlIHR5cGUpCiB7CiAgICAgc3dp
dGNoICh0eXBlKSB7Ci0gICAgY2FzZSBXZWJDb3JlOjpQcm90ZWN0aW9uU3BhY2VTZXJ2ZXJIVFRQ
OgorICAgIGNhc2UgV2ViQ29yZTo6UHJvdGVjdGlvblNwYWNlOjpTZXJ2ZXJUeXBlOjpIVFRQOgog
ICAgICAgICByZXR1cm4ga1dLUHJvdGVjdGlvblNwYWNlU2VydmVyVHlwZUhUVFA7Ci0gICAgY2Fz
ZSBXZWJDb3JlOjpQcm90ZWN0aW9uU3BhY2VTZXJ2ZXJIVFRQUzoKKyAgICBjYXNlIFdlYkNvcmU6
OlByb3RlY3Rpb25TcGFjZTo6U2VydmVyVHlwZTo6SFRUUFM6CiAgICAgICAgIHJldHVybiBrV0tQ
cm90ZWN0aW9uU3BhY2VTZXJ2ZXJUeXBlSFRUUFM7Ci0gICAgY2FzZSBXZWJDb3JlOjpQcm90ZWN0
aW9uU3BhY2VTZXJ2ZXJGVFA6CisgICAgY2FzZSBXZWJDb3JlOjpQcm90ZWN0aW9uU3BhY2U6OlNl
cnZlclR5cGU6OkZUUDoKICAgICAgICAgcmV0dXJuIGtXS1Byb3RlY3Rpb25TcGFjZVNlcnZlclR5
cGVGVFA7Ci0gICAgY2FzZSBXZWJDb3JlOjpQcm90ZWN0aW9uU3BhY2VTZXJ2ZXJGVFBTOgorICAg
IGNhc2UgV2ViQ29yZTo6UHJvdGVjdGlvblNwYWNlOjpTZXJ2ZXJUeXBlOjpGVFBTOgogICAgICAg
ICByZXR1cm4ga1dLUHJvdGVjdGlvblNwYWNlU2VydmVyVHlwZUZUUFM7Ci0gICAgY2FzZSBXZWJD
b3JlOjpQcm90ZWN0aW9uU3BhY2VQcm94eUhUVFA6CisgICAgY2FzZSBXZWJDb3JlOjpQcm90ZWN0
aW9uU3BhY2U6OlNlcnZlclR5cGU6OlByb3h5SFRUUDoKICAgICAgICAgcmV0dXJuIGtXS1Byb3Rl
Y3Rpb25TcGFjZVByb3h5VHlwZUhUVFA7Ci0gICAgY2FzZSBXZWJDb3JlOjpQcm90ZWN0aW9uU3Bh
Y2VQcm94eUhUVFBTOgorICAgIGNhc2UgV2ViQ29yZTo6UHJvdGVjdGlvblNwYWNlOjpTZXJ2ZXJU
eXBlOjpQcm94eUhUVFBTOgogICAgICAgICByZXR1cm4ga1dLUHJvdGVjdGlvblNwYWNlUHJveHlU
eXBlSFRUUFM7Ci0gICAgY2FzZSBXZWJDb3JlOjpQcm90ZWN0aW9uU3BhY2VQcm94eUZUUDoKKyAg
ICBjYXNlIFdlYkNvcmU6OlByb3RlY3Rpb25TcGFjZTo6U2VydmVyVHlwZTo6UHJveHlGVFA6CiAg
ICAgICAgIHJldHVybiBrV0tQcm90ZWN0aW9uU3BhY2VQcm94eVR5cGVGVFA7Ci0gICAgY2FzZSBX
ZWJDb3JlOjpQcm90ZWN0aW9uU3BhY2VQcm94eVNPQ0tTOgorICAgIGNhc2UgV2ViQ29yZTo6UHJv
dGVjdGlvblNwYWNlOjpTZXJ2ZXJUeXBlOjpQcm94eVNPQ0tTOgogICAgICAgICByZXR1cm4ga1dL
UHJvdGVjdGlvblNwYWNlUHJveHlUeXBlU09DS1M7CiAgICAgfQogICAgIHJldHVybiBrV0tQcm90
ZWN0aW9uU3BhY2VTZXJ2ZXJUeXBlSFRUUDsKIH0KIAotaW5saW5lIFdLUHJvdGVjdGlvblNwYWNl
QXV0aGVudGljYXRpb25TY2hlbWUgdG9BUEkoV2ViQ29yZTo6UHJvdGVjdGlvblNwYWNlQXV0aGVu
dGljYXRpb25TY2hlbWUgdHlwZSkKK2lubGluZSBXS1Byb3RlY3Rpb25TcGFjZUF1dGhlbnRpY2F0
aW9uU2NoZW1lIHRvQVBJKFdlYkNvcmU6OlByb3RlY3Rpb25TcGFjZTo6QXV0aGVudGljYXRpb25T
Y2hlbWUgdHlwZSkKIHsKICAgICBzd2l0Y2ggKHR5cGUpIHsKLSAgICBjYXNlIFdlYkNvcmU6OlBy
b3RlY3Rpb25TcGFjZUF1dGhlbnRpY2F0aW9uU2NoZW1lRGVmYXVsdDoKKyAgICBjYXNlIFdlYkNv
cmU6OlByb3RlY3Rpb25TcGFjZTo6QXV0aGVudGljYXRpb25TY2hlbWU6OkRlZmF1bHQ6CiAgICAg
ICAgIHJldHVybiBrV0tQcm90ZWN0aW9uU3BhY2VBdXRoZW50aWNhdGlvblNjaGVtZURlZmF1bHQ7
Ci0gICAgY2FzZSBXZWJDb3JlOjpQcm90ZWN0aW9uU3BhY2VBdXRoZW50aWNhdGlvblNjaGVtZUhU
VFBCYXNpYzoKKyAgICBjYXNlIFdlYkNvcmU6OlByb3RlY3Rpb25TcGFjZTo6QXV0aGVudGljYXRp
b25TY2hlbWU6OkhUVFBCYXNpYzoKICAgICAgICAgcmV0dXJuIGtXS1Byb3RlY3Rpb25TcGFjZUF1
dGhlbnRpY2F0aW9uU2NoZW1lSFRUUEJhc2ljOwotICAgIGNhc2UgV2ViQ29yZTo6UHJvdGVjdGlv
blNwYWNlQXV0aGVudGljYXRpb25TY2hlbWVIVFRQRGlnZXN0OgorICAgIGNhc2UgV2ViQ29yZTo6
UHJvdGVjdGlvblNwYWNlOjpBdXRoZW50aWNhdGlvblNjaGVtZTo6SFRUUERpZ2VzdDoKICAgICAg
ICAgcmV0dXJuIGtXS1Byb3RlY3Rpb25TcGFjZUF1dGhlbnRpY2F0aW9uU2NoZW1lSFRUUERpZ2Vz
dDsKLSAgICBjYXNlIFdlYkNvcmU6OlByb3RlY3Rpb25TcGFjZUF1dGhlbnRpY2F0aW9uU2NoZW1l
SFRNTEZvcm06CisgICAgY2FzZSBXZWJDb3JlOjpQcm90ZWN0aW9uU3BhY2U6OkF1dGhlbnRpY2F0
aW9uU2NoZW1lOjpIVE1MRm9ybToKICAgICAgICAgcmV0dXJuIGtXS1Byb3RlY3Rpb25TcGFjZUF1
dGhlbnRpY2F0aW9uU2NoZW1lSFRNTEZvcm07Ci0gICAgY2FzZSBXZWJDb3JlOjpQcm90ZWN0aW9u
U3BhY2VBdXRoZW50aWNhdGlvblNjaGVtZU5UTE06CisgICAgY2FzZSBXZWJDb3JlOjpQcm90ZWN0
aW9uU3BhY2U6OkF1dGhlbnRpY2F0aW9uU2NoZW1lOjpOVExNOgogICAgICAgICByZXR1cm4ga1dL
UHJvdGVjdGlvblNwYWNlQXV0aGVudGljYXRpb25TY2hlbWVOVExNOwotICAgIGNhc2UgV2ViQ29y
ZTo6UHJvdGVjdGlvblNwYWNlQXV0aGVudGljYXRpb25TY2hlbWVOZWdvdGlhdGU6CisgICAgY2Fz
ZSBXZWJDb3JlOjpQcm90ZWN0aW9uU3BhY2U6OkF1dGhlbnRpY2F0aW9uU2NoZW1lOjpOZWdvdGlh
dGU6CiAgICAgICAgIHJldHVybiBrV0tQcm90ZWN0aW9uU3BhY2VBdXRoZW50aWNhdGlvblNjaGVt
ZU5lZ290aWF0ZTsKLSAgICBjYXNlIFdlYkNvcmU6OlByb3RlY3Rpb25TcGFjZUF1dGhlbnRpY2F0
aW9uU2NoZW1lQ2xpZW50Q2VydGlmaWNhdGVSZXF1ZXN0ZWQ6CisgICAgY2FzZSBXZWJDb3JlOjpQ
cm90ZWN0aW9uU3BhY2U6OkF1dGhlbnRpY2F0aW9uU2NoZW1lOjpDbGllbnRDZXJ0aWZpY2F0ZVJl
cXVlc3RlZDoKICAgICAgICAgcmV0dXJuIGtXS1Byb3RlY3Rpb25TcGFjZUF1dGhlbnRpY2F0aW9u
U2NoZW1lQ2xpZW50Q2VydGlmaWNhdGVSZXF1ZXN0ZWQ7Ci0gICAgY2FzZSBXZWJDb3JlOjpQcm90
ZWN0aW9uU3BhY2VBdXRoZW50aWNhdGlvblNjaGVtZVNlcnZlclRydXN0RXZhbHVhdGlvblJlcXVl
c3RlZDoKKyAgICBjYXNlIFdlYkNvcmU6OlByb3RlY3Rpb25TcGFjZTo6QXV0aGVudGljYXRpb25T
Y2hlbWU6OlNlcnZlclRydXN0RXZhbHVhdGlvblJlcXVlc3RlZDoKICAgICAgICAgcmV0dXJuIGtX
S1Byb3RlY3Rpb25TcGFjZUF1dGhlbnRpY2F0aW9uU2NoZW1lU2VydmVyVHJ1c3RFdmFsdWF0aW9u
UmVxdWVzdGVkOwotICAgIGNhc2UgV2ViQ29yZTo6UHJvdGVjdGlvblNwYWNlQXV0aGVudGljYXRp
b25TY2hlbWVPQXV0aDoKKyAgICBjYXNlIFdlYkNvcmU6OlByb3RlY3Rpb25TcGFjZTo6QXV0aGVu
dGljYXRpb25TY2hlbWU6Ok9BdXRoOgogICAgICAgICByZXR1cm4ga1dLUHJvdGVjdGlvblNwYWNl
QXV0aGVudGljYXRpb25TY2hlbWVPQXV0aDsKICAgICBkZWZhdWx0OgogICAgICAgICByZXR1cm4g
a1dLUHJvdGVjdGlvblNwYWNlQXV0aGVudGljYXRpb25TY2hlbWVVbmtub3duOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2dsaWIvV2ViS2l0QXV0aGVudGljYXRpb25S
ZXF1ZXN0LmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9nbGliL1dlYktpdEF1dGhl
bnRpY2F0aW9uUmVxdWVzdC5jcHAKaW5kZXggY2U0MzI5YmM4OWU3YWIwNmQ3YzI0YWVmMTVkNzZi
OTNlZDM0MDBjNi4uNTE3NzU3NmI0ZWVlZjk2ZjIzNmUyZWE0YmM2MGU5YzkyYjE4NjNhMyAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2dsaWIvV2ViS2l0QXV0aGVudGlj
YXRpb25SZXF1ZXN0LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvZ2xpYi9X
ZWJLaXRBdXRoZW50aWNhdGlvblJlcXVlc3QuY3BwCkBAIC03OSwyOCArNzksMjggQEAgc3RhdGlj
IGd1aW50IHNpZ25hbHNbTEFTVF9TSUdOQUxdID0geyAwLCB9OwogCiBXRUJLSVRfREVGSU5FX1RZ
UEUoV2ViS2l0QXV0aGVudGljYXRpb25SZXF1ZXN0LCB3ZWJraXRfYXV0aGVudGljYXRpb25fcmVx
dWVzdCwgR19UWVBFX09CSkVDVCkKIAotc3RhdGljIGlubGluZSBXZWJLaXRBdXRoZW50aWNhdGlv
blNjaGVtZSB0b1dlYktpdEF1dGhlbnRpY2F0aW9uU2NoZW1lKFdlYkNvcmU6OlByb3RlY3Rpb25T
cGFjZUF1dGhlbnRpY2F0aW9uU2NoZW1lIGNvcmVTY2hlbWUpCitzdGF0aWMgaW5saW5lIFdlYktp
dEF1dGhlbnRpY2F0aW9uU2NoZW1lIHRvV2ViS2l0QXV0aGVudGljYXRpb25TY2hlbWUoV2ViQ29y
ZTo6UHJvdGVjdGlvblNwYWNlOjpBdXRoZW50aWNhdGlvblNjaGVtZSBjb3JlU2NoZW1lKQogewog
ICAgIHN3aXRjaCAoY29yZVNjaGVtZSkgewotICAgIGNhc2UgV2ViQ29yZTo6UHJvdGVjdGlvblNw
YWNlQXV0aGVudGljYXRpb25TY2hlbWVEZWZhdWx0OgorICAgIGNhc2UgV2ViQ29yZTo6UHJvdGVj
dGlvblNwYWNlOjpBdXRoZW50aWNhdGlvblNjaGVtZTo6RGVmYXVsdDoKICAgICAgICAgcmV0dXJu
IFdFQktJVF9BVVRIRU5USUNBVElPTl9TQ0hFTUVfREVGQVVMVDsKLSAgICBjYXNlIFdlYkNvcmU6
OlByb3RlY3Rpb25TcGFjZUF1dGhlbnRpY2F0aW9uU2NoZW1lSFRUUEJhc2ljOgorICAgIGNhc2Ug
V2ViQ29yZTo6UHJvdGVjdGlvblNwYWNlOjpBdXRoZW50aWNhdGlvblNjaGVtZTo6SFRUUEJhc2lj
OgogICAgICAgICByZXR1cm4gV0VCS0lUX0FVVEhFTlRJQ0FUSU9OX1NDSEVNRV9IVFRQX0JBU0lD
OwotICAgIGNhc2UgV2ViQ29yZTo6UHJvdGVjdGlvblNwYWNlQXV0aGVudGljYXRpb25TY2hlbWVI
VFRQRGlnZXN0OgorICAgIGNhc2UgV2ViQ29yZTo6UHJvdGVjdGlvblNwYWNlOjpBdXRoZW50aWNh
dGlvblNjaGVtZTo6SFRUUERpZ2VzdDoKICAgICAgICAgcmV0dXJuIFdFQktJVF9BVVRIRU5USUNB
VElPTl9TQ0hFTUVfSFRUUF9ESUdFU1Q7Ci0gICAgY2FzZSBXZWJDb3JlOjpQcm90ZWN0aW9uU3Bh
Y2VBdXRoZW50aWNhdGlvblNjaGVtZUhUTUxGb3JtOgorICAgIGNhc2UgV2ViQ29yZTo6UHJvdGVj
dGlvblNwYWNlOjpBdXRoZW50aWNhdGlvblNjaGVtZTo6SFRNTEZvcm06CiAgICAgICAgIHJldHVy
biBXRUJLSVRfQVVUSEVOVElDQVRJT05fU0NIRU1FX0hUTUxfRk9STTsKLSAgICBjYXNlIFdlYkNv
cmU6OlByb3RlY3Rpb25TcGFjZUF1dGhlbnRpY2F0aW9uU2NoZW1lTlRMTToKKyAgICBjYXNlIFdl
YkNvcmU6OlByb3RlY3Rpb25TcGFjZTo6QXV0aGVudGljYXRpb25TY2hlbWU6Ok5UTE06CiAgICAg
ICAgIHJldHVybiBXRUJLSVRfQVVUSEVOVElDQVRJT05fU0NIRU1FX05UTE07Ci0gICAgY2FzZSBX
ZWJDb3JlOjpQcm90ZWN0aW9uU3BhY2VBdXRoZW50aWNhdGlvblNjaGVtZU5lZ290aWF0ZToKKyAg
ICBjYXNlIFdlYkNvcmU6OlByb3RlY3Rpb25TcGFjZTo6QXV0aGVudGljYXRpb25TY2hlbWU6Ok5l
Z290aWF0ZToKICAgICAgICAgcmV0dXJuIFdFQktJVF9BVVRIRU5USUNBVElPTl9TQ0hFTUVfTkVH
T1RJQVRFOwotICAgIGNhc2UgV2ViQ29yZTo6UHJvdGVjdGlvblNwYWNlQXV0aGVudGljYXRpb25T
Y2hlbWVDbGllbnRDZXJ0aWZpY2F0ZVJlcXVlc3RlZDoKKyAgICBjYXNlIFdlYkNvcmU6OlByb3Rl
Y3Rpb25TcGFjZTo6QXV0aGVudGljYXRpb25TY2hlbWU6OkNsaWVudENlcnRpZmljYXRlUmVxdWVz
dGVkOgogICAgICAgICByZXR1cm4gV0VCS0lUX0FVVEhFTlRJQ0FUSU9OX1NDSEVNRV9DTElFTlRf
Q0VSVElGSUNBVEVfUkVRVUVTVEVEOwotICAgIGNhc2UgV2ViQ29yZTo6UHJvdGVjdGlvblNwYWNl
QXV0aGVudGljYXRpb25TY2hlbWVTZXJ2ZXJUcnVzdEV2YWx1YXRpb25SZXF1ZXN0ZWQ6CisgICAg
Y2FzZSBXZWJDb3JlOjpQcm90ZWN0aW9uU3BhY2U6OkF1dGhlbnRpY2F0aW9uU2NoZW1lOjpTZXJ2
ZXJUcnVzdEV2YWx1YXRpb25SZXF1ZXN0ZWQ6CiAgICAgICAgIHJldHVybiBXRUJLSVRfQVVUSEVO
VElDQVRJT05fU0NIRU1FX1NFUlZFUl9UUlVTVF9FVkFMVUFUSU9OX1JFUVVFU1RFRDsKLSAgICBj
YXNlIFdlYkNvcmU6OlByb3RlY3Rpb25TcGFjZUF1dGhlbnRpY2F0aW9uU2NoZW1lQ2xpZW50Q2Vy
dGlmaWNhdGVQSU5SZXF1ZXN0ZWQ6CisgICAgY2FzZSBXZWJDb3JlOjpQcm90ZWN0aW9uU3BhY2U6
OkF1dGhlbnRpY2F0aW9uU2NoZW1lOjpDbGllbnRDZXJ0aWZpY2F0ZVBJTlJlcXVlc3RlZDoKICAg
ICAgICAgcmV0dXJuIFdFQktJVF9BVVRIRU5USUNBVElPTl9TQ0hFTUVfQ0xJRU5UX0NFUlRJRklD
QVRFX1BJTl9SRVFVRVNURUQ7Ci0gICAgY2FzZSBXZWJDb3JlOjpQcm90ZWN0aW9uU3BhY2VBdXRo
ZW50aWNhdGlvblNjaGVtZVVua25vd246CisgICAgY2FzZSBXZWJDb3JlOjpQcm90ZWN0aW9uU3Bh
Y2U6OkF1dGhlbnRpY2F0aW9uU2NoZW1lOjpVbmtub3duOgogICAgICAgICByZXR1cm4gV0VCS0lU
X0FVVEhFTlRJQ0FUSU9OX1NDSEVNRV9VTktOT1dOOwogICAgIGRlZmF1bHQ6CiAgICAgICAgIEFT
U0VSVF9OT1RfUkVBQ0hFRCgpOwpAQCAtMzQ4LDIyICszNDgsMjIgQEAgV2ViS2l0U2VjdXJpdHlP
cmlnaW4qIHdlYmtpdF9hdXRoZW50aWNhdGlvbl9yZXF1ZXN0X2dldF9zZWN1cml0eV9vcmlnaW4o
V2ViS2l0QXUKICAgICBjb25zdCBhdXRvJiBwcm90ZWN0aW9uU3BhY2UgPSByZXF1ZXN0LT5wcml2
LT5hdXRoZW50aWNhdGlvbkNoYWxsZW5nZS0+Y29yZSgpLnByb3RlY3Rpb25TcGFjZSgpOwogICAg
IFN0cmluZyBwcm90b2NvbDsKICAgICBzd2l0Y2ggKHByb3RlY3Rpb25TcGFjZS5zZXJ2ZXJUeXBl
KCkpIHsKLSAgICBjYXNlIFByb3RlY3Rpb25TcGFjZVNlcnZlckhUVFA6Ci0gICAgY2FzZSBQcm90
ZWN0aW9uU3BhY2VQcm94eUhUVFA6CisgICAgY2FzZSBQcm90ZWN0aW9uU3BhY2U6OlNlcnZlclR5
cGU6OkhUVFA6CisgICAgY2FzZSBQcm90ZWN0aW9uU3BhY2U6OlNlcnZlclR5cGU6OlByb3h5SFRU
UDoKICAgICAgICAgcHJvdG9jb2wgPSAiaHR0cCJfczsKICAgICAgICAgYnJlYWs7Ci0gICAgY2Fz
ZSBQcm90ZWN0aW9uU3BhY2VTZXJ2ZXJIVFRQUzoKLSAgICBjYXNlIFByb3RlY3Rpb25TcGFjZVBy
b3h5SFRUUFM6CisgICAgY2FzZSBQcm90ZWN0aW9uU3BhY2U6OlNlcnZlclR5cGU6OkhUVFBTOgor
ICAgIGNhc2UgUHJvdGVjdGlvblNwYWNlOjpTZXJ2ZXJUeXBlOjpQcm94eUhUVFBTOgogICAgICAg
ICBwcm90b2NvbCA9ICJodHRwcyJfczsKICAgICAgICAgYnJlYWs7Ci0gICAgY2FzZSBQcm90ZWN0
aW9uU3BhY2VTZXJ2ZXJGVFA6Ci0gICAgY2FzZSBQcm90ZWN0aW9uU3BhY2VQcm94eUZUUDoKKyAg
ICBjYXNlIFByb3RlY3Rpb25TcGFjZTo6U2VydmVyVHlwZTo6RlRQOgorICAgIGNhc2UgUHJvdGVj
dGlvblNwYWNlOjpTZXJ2ZXJUeXBlOjpQcm94eUZUUDoKICAgICAgICAgcHJvdG9jb2wgPSAiZnRw
Il9zOwogICAgICAgICBicmVhazsKLSAgICBjYXNlIFByb3RlY3Rpb25TcGFjZVNlcnZlckZUUFM6
CisgICAgY2FzZSBQcm90ZWN0aW9uU3BhY2U6OlNlcnZlclR5cGU6OkZUUFM6CiAgICAgICAgIHBy
b3RvY29sID0gImZ0cHMiX3M7CiAgICAgICAgIGJyZWFrOwotICAgIGNhc2UgUHJvdGVjdGlvblNw
YWNlUHJveHlTT0NLUzoKKyAgICBjYXNlIFByb3RlY3Rpb25TcGFjZTo6U2VydmVyVHlwZTo6UHJv
eHlTT0NLUzoKICAgICAgICAgcHJvdG9jb2wgPSAic29ja3MiX3M7CiAgICAgICAgIGJyZWFrOwog
ICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0F1dGhlbnRpY2F0aW9u
L1dlYlByb3RlY3Rpb25TcGFjZS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BdXRoZW50
aWNhdGlvbi9XZWJQcm90ZWN0aW9uU3BhY2UuY3BwCmluZGV4IDNkMzhlMjI0MmRiYWI1MTJlMDEy
MWJkOWQ2MWQxMWRlOWM4ZWQ5ODguLjE1MmFjY2JkOTY2OWIxMDk5ZjhiMDk0ZDExMmJhNjUxZmI5
MGE4NWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0F1dGhlbnRpY2F0aW9u
L1dlYlByb3RlY3Rpb25TcGFjZS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQXV0
aGVudGljYXRpb24vV2ViUHJvdGVjdGlvblNwYWNlLmNwcApAQCAtNTUsNyArNTUsNyBAQCBib29s
IFdlYlByb3RlY3Rpb25TcGFjZTo6aXNQcm94eSgpIGNvbnN0CiAgICAgcmV0dXJuIG1fY29yZVBy
b3RlY3Rpb25TcGFjZS5pc1Byb3h5KCk7CiB9CiAKLVdlYkNvcmU6OlByb3RlY3Rpb25TcGFjZVNl
cnZlclR5cGUgV2ViUHJvdGVjdGlvblNwYWNlOjpzZXJ2ZXJUeXBlKCkgY29uc3QKK1dlYkNvcmU6
OlByb3RlY3Rpb25TcGFjZTo6U2VydmVyVHlwZSBXZWJQcm90ZWN0aW9uU3BhY2U6OnNlcnZlclR5
cGUoKSBjb25zdAogewogICAgIHJldHVybiBtX2NvcmVQcm90ZWN0aW9uU3BhY2Uuc2VydmVyVHlw
ZSgpOwogfQpAQCAtNjUsNyArNjUsNyBAQCBib29sIFdlYlByb3RlY3Rpb25TcGFjZTo6cmVjZWl2
ZXNDcmVkZW50aWFsU2VjdXJlbHkoKSBjb25zdAogICAgIHJldHVybiBtX2NvcmVQcm90ZWN0aW9u
U3BhY2UucmVjZWl2ZXNDcmVkZW50aWFsU2VjdXJlbHkoKTsKIH0KIAotV2ViQ29yZTo6UHJvdGVj
dGlvblNwYWNlQXV0aGVudGljYXRpb25TY2hlbWUgV2ViUHJvdGVjdGlvblNwYWNlOjphdXRoZW50
aWNhdGlvblNjaGVtZSgpIGNvbnN0CitXZWJDb3JlOjpQcm90ZWN0aW9uU3BhY2U6OkF1dGhlbnRp
Y2F0aW9uU2NoZW1lIFdlYlByb3RlY3Rpb25TcGFjZTo6YXV0aGVudGljYXRpb25TY2hlbWUoKSBj
b25zdAogewogICAgIHJldHVybiBtX2NvcmVQcm90ZWN0aW9uU3BhY2UuYXV0aGVudGljYXRpb25T
Y2hlbWUoKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0F1dGhlbnRp
Y2F0aW9uL1dlYlByb3RlY3Rpb25TcGFjZS5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQXV0
aGVudGljYXRpb24vV2ViUHJvdGVjdGlvblNwYWNlLmgKaW5kZXggMjhiZWJhNmU4YzBjODY3MWY2
OTkxYjFlN2EzMjg0ZGViYTNjMTdhMC4uNGEzYjg3OWQ1NDhhY2Q2OThmMDcwOGUyNzJlZjVlNGM1
NTg2M2YyNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQXV0aGVudGljYXRp
b24vV2ViUHJvdGVjdGlvblNwYWNlLmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQXV0
aGVudGljYXRpb24vV2ViUHJvdGVjdGlvblNwYWNlLmgKQEAgLTQzLDkgKzQzLDkgQEAgcHVibGlj
OgogICAgIGludCBwb3J0KCkgY29uc3Q7CiAgICAgY29uc3QgU3RyaW5nJiByZWFsbSgpIGNvbnN0
OwogICAgIGJvb2wgaXNQcm94eSgpIGNvbnN0OwotICAgIFdlYkNvcmU6OlByb3RlY3Rpb25TcGFj
ZVNlcnZlclR5cGUgc2VydmVyVHlwZSgpIGNvbnN0OworICAgIFdlYkNvcmU6OlByb3RlY3Rpb25T
cGFjZTo6U2VydmVyVHlwZSBzZXJ2ZXJUeXBlKCkgY29uc3Q7CiAgICAgYm9vbCByZWNlaXZlc0Ny
ZWRlbnRpYWxTZWN1cmVseSgpIGNvbnN0OwotICAgIFdlYkNvcmU6OlByb3RlY3Rpb25TcGFjZUF1
dGhlbnRpY2F0aW9uU2NoZW1lIGF1dGhlbnRpY2F0aW9uU2NoZW1lKCkgY29uc3Q7CisgICAgV2Vi
Q29yZTo6UHJvdGVjdGlvblNwYWNlOjpBdXRoZW50aWNhdGlvblNjaGVtZSBhdXRoZW50aWNhdGlv
blNjaGVtZSgpIGNvbnN0OwogCiAgICAgY29uc3QgV2ViQ29yZTo6UHJvdGVjdGlvblNwYWNlJiBw
cm90ZWN0aW9uU3BhY2UoKSBjb25zdCB7IHJldHVybiBtX2NvcmVQcm90ZWN0aW9uU3BhY2U7IH0K
IApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvTmV0d29yay9OZXR3b3JrUHJv
Y2Vzc1Byb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL05ldHdvcmsvTmV0d29ya1By
b2Nlc3NQcm94eS5jcHAKaW5kZXggYjdlYWFkNDI1MDVjZTc0Yjc3NmY0NWM3ZWE4ZjZlYjI5ZjYx
MDU4Ni4uY2ExYmYxMGQ4ZjI2OTIzNjVkMzU3MTliNzNjNDAzMTg5MDZlYmFlZSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvTmV0d29yay9OZXR3b3JrUHJvY2Vzc1Byb3h5LmNw
cAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9jZXNzUHJv
eHkuY3BwCkBAIC00MjEsNyArNDIxLDcgQEAgdm9pZCBOZXR3b3JrUHJvY2Vzc1Byb3h5OjpkaWRS
ZWNlaXZlSW52YWxpZE1lc3NhZ2UoSVBDOjpDb25uZWN0aW9uJiBjb25uZWN0aW9uLAogdm9pZCBO
ZXR3b3JrUHJvY2Vzc1Byb3h5Ojpwcm9jZXNzQXV0aGVudGljYXRpb25DaGFsbGVuZ2UoUEFMOjpT
ZXNzaW9uSUQgc2Vzc2lvbklELCBSZWY8QXV0aGVudGljYXRpb25DaGFsbGVuZ2VQcm94eT4mJiBh
dXRoZW50aWNhdGlvbkNoYWxsZW5nZSkKIHsKICAgICBhdXRvKiBzdG9yZSA9IHdlYnNpdGVEYXRh
U3RvcmVGcm9tU2Vzc2lvbklEKHNlc3Npb25JRCk7Ci0gICAgaWYgKCFzdG9yZSB8fCBhdXRoZW50
aWNhdGlvbkNoYWxsZW5nZS0+Y29yZSgpLnByb3RlY3Rpb25TcGFjZSgpLmF1dGhlbnRpY2F0aW9u
U2NoZW1lKCkgIT0gUHJvdGVjdGlvblNwYWNlQXV0aGVudGljYXRpb25TY2hlbWVTZXJ2ZXJUcnVz
dEV2YWx1YXRpb25SZXF1ZXN0ZWQpIHsKKyAgICBpZiAoIXN0b3JlIHx8IGF1dGhlbnRpY2F0aW9u
Q2hhbGxlbmdlLT5jb3JlKCkucHJvdGVjdGlvblNwYWNlKCkuYXV0aGVudGljYXRpb25TY2hlbWUo
KSAhPSBQcm90ZWN0aW9uU3BhY2U6OkF1dGhlbnRpY2F0aW9uU2NoZW1lOjpTZXJ2ZXJUcnVzdEV2
YWx1YXRpb25SZXF1ZXN0ZWQpIHsKICAgICAgICAgYXV0aGVudGljYXRpb25DaGFsbGVuZ2UtPmxp
c3RlbmVyKCkuY29tcGxldGVDaGFsbGVuZ2UoQXV0aGVudGljYXRpb25DaGFsbGVuZ2VEaXNwb3Np
dGlvbjo6UGVyZm9ybURlZmF1bHRIYW5kbGluZyk7CiAgICAgICAgIHJldHVybjsKICAgICB9CkBA
IC00MzIsNyArNDMyLDcgQEAgdm9pZCBOZXR3b3JrUHJvY2Vzc1Byb3h5OjpkaWRSZWNlaXZlQXV0
aGVudGljYXRpb25DaGFsbGVuZ2UoUEFMOjpTZXNzaW9uSUQgc2Vzc2kKIHsKICNpZiBIQVZFKFNF
Q19LRVlfUFJPWFkpCiAgICAgV2Vha1B0cjxTZWNLZXlQcm94eVN0b3JlPiBzZWNLZXlQcm94eVN0
b3JlOwotICAgIGlmIChjb3JlQ2hhbGxlbmdlLnByb3RlY3Rpb25TcGFjZSgpLmF1dGhlbnRpY2F0
aW9uU2NoZW1lKCkgPT0gUHJvdGVjdGlvblNwYWNlQXV0aGVudGljYXRpb25TY2hlbWVDbGllbnRD
ZXJ0aWZpY2F0ZVJlcXVlc3RlZCkgeworICAgIGlmIChjb3JlQ2hhbGxlbmdlLnByb3RlY3Rpb25T
cGFjZSgpLmF1dGhlbnRpY2F0aW9uU2NoZW1lKCkgPT0gUHJvdGVjdGlvblNwYWNlOjpBdXRoZW50
aWNhdGlvblNjaGVtZTo6Q2xpZW50Q2VydGlmaWNhdGVSZXF1ZXN0ZWQpIHsKICAgICAgICAgaWYg
KGF1dG8qIHN0b3JlID0gd2Vic2l0ZURhdGFTdG9yZUZyb21TZXNzaW9uSUQoc2Vzc2lvbklEKSkg
ewogICAgICAgICAgICAgYXV0byBuZXdTZWNLZXlQcm94eVN0b3JlID0gU2VjS2V5UHJveHlTdG9y
ZTo6Y3JlYXRlKCk7CiAgICAgICAgICAgICBzZWNLZXlQcm94eVN0b3JlID0gbmV3U2VjS2V5UHJv
eHlTdG9yZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYkNvcmVTdXBw
b3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50Lm1tIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2Vi
Q29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQubW0KaW5kZXggYWEyY2M5ODE0NzRhMTNj
ZTUwODQ3OTg5NDIzNjg0NDkxYzg4ZjZlMi4uNDNlNjNmNDU2MzQ1ZWNmMWM5MjRlNWI3NzJhNmY1
NDE3M2E5MTQyYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViQ29yZVN1
cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQubW0KKysrIGIvU291cmNlL1dlYktpdExlZ2FjeS9t
YWMvV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQubW0KQEAgLTQyOSw3ICs0Mjks
NyBAQCBib29sIFdlYkZyYW1lTG9hZGVyQ2xpZW50OjpjYW5BdXRoZW50aWNhdGVBZ2FpbnN0UHJv
dGVjdGlvblNwYWNlKFdlYkNvcmU6OkRvY3VtZQogICAgIC8vIElmIG91ciByZXNvdXJjZSBsb2Fk
IGRlbGVnYXRlIGRvZXNuJ3QgaGFuZGxlIHRoZSBxdWVzdGlvbiwgdGhlbiBvbmx5IHNlbmQgYXV0
aGVudGljYXRpb24KICAgICAvLyBjaGFsbGVuZ2VzIGZvciBwcmUtaU9TLTMuMCwgcHJlLTEwLjYg
cHJvdGVjdGlvbiBzcGFjZXMuICBUaGlzIGlzIHRoZSBzYW1lIGFzIHRoZSBkZWZhdWx0IGltcGxl
bWVudGF0aW9uCiAgICAgLy8gaW4gQ0ZOZXR3b3JrLgotICAgIHJldHVybiAocHJvdGVjdGlvblNw
YWNlLmF1dGhlbnRpY2F0aW9uU2NoZW1lKCkgPCBXZWJDb3JlOjpQcm90ZWN0aW9uU3BhY2VBdXRo
ZW50aWNhdGlvblNjaGVtZUNsaWVudENlcnRpZmljYXRlUmVxdWVzdGVkKTsKKyAgICByZXR1cm4g
KHByb3RlY3Rpb25TcGFjZS5hdXRoZW50aWNhdGlvblNjaGVtZSgpIDwgV2ViQ29yZTo6UHJvdGVj
dGlvblNwYWNlOjpBdXRoZW50aWNhdGlvblNjaGVtZTo6Q2xpZW50Q2VydGlmaWNhdGVSZXF1ZXN0
ZWQpOwogfQogI2VuZGlmCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvd2luL1dl
YlVSTFByb3RlY3Rpb25TcGFjZS5jcHAgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9XZWJVUkxQ
cm90ZWN0aW9uU3BhY2UuY3BwCmluZGV4IGQ3MjE4Yzk0MjcwODAzZjZkYzI0ZDExOTA3MDc4NTI3
MTU0NzY3YmYuLjE5ZWQ5NmY4MjEwZDg5MzlhOWVlY2EyYzUxYTJkODM0YmU4MDBlNTAgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvd2luL1dlYlVSTFByb3RlY3Rpb25TcGFjZS5jcHAK
KysrIGIvU291cmNlL1dlYktpdExlZ2FjeS93aW4vV2ViVVJMUHJvdGVjdGlvblNwYWNlLmNwcApA
QCAtMTAyLDE2ICsxMDIsMTYgQEAgSFJFU1VMVCBXZWJVUkxQcm90ZWN0aW9uU3BhY2U6OmF1dGhl
bnRpY2F0aW9uTWV0aG9kKF9fZGVyZWZfb3B0X291dCBCU1RSKiByZXN1bHQKICAgICAgICAgcmV0
dXJuIEVfUE9JTlRFUjsKIAogICAgIHN3aXRjaCAobV9wcm90ZWN0aW9uU3BhY2UuYXV0aGVudGlj
YXRpb25TY2hlbWUoKSkgewotICAgIGNhc2UgUHJvdGVjdGlvblNwYWNlQXV0aGVudGljYXRpb25T
Y2hlbWVEZWZhdWx0OgorICAgIGNhc2UgUHJvdGVjdGlvblNwYWNlOjpBdXRoZW50aWNhdGlvblNj
aGVtZTo6RGVmYXVsdDoKICAgICAgICAgKnJlc3VsdCA9IFN5c0FsbG9jU3RyaW5nKFdlYlVSTEF1
dGhlbnRpY2F0aW9uTWV0aG9kRGVmYXVsdCk7CiAgICAgICAgIGJyZWFrOwotICAgIGNhc2UgUHJv
dGVjdGlvblNwYWNlQXV0aGVudGljYXRpb25TY2hlbWVIVFRQQmFzaWM6CisgICAgY2FzZSBQcm90
ZWN0aW9uU3BhY2U6OkF1dGhlbnRpY2F0aW9uU2NoZW1lOjpIVFRQQmFzaWM6CiAgICAgICAgICpy
ZXN1bHQgPSBTeXNBbGxvY1N0cmluZyhXZWJVUkxBdXRoZW50aWNhdGlvbk1ldGhvZEhUVFBCYXNp
Yyk7CiAgICAgICAgIGJyZWFrOwotICAgIGNhc2UgUHJvdGVjdGlvblNwYWNlQXV0aGVudGljYXRp
b25TY2hlbWVIVFRQRGlnZXN0OgorICAgIGNhc2UgUHJvdGVjdGlvblNwYWNlOjpBdXRoZW50aWNh
dGlvblNjaGVtZTo6SFRUUERpZ2VzdDoKICAgICAgICAgKnJlc3VsdCA9IFN5c0FsbG9jU3RyaW5n
KFdlYlVSTEF1dGhlbnRpY2F0aW9uTWV0aG9kSFRUUERpZ2VzdCk7CiAgICAgICAgIGJyZWFrOwot
ICAgIGNhc2UgUHJvdGVjdGlvblNwYWNlQXV0aGVudGljYXRpb25TY2hlbWVIVE1MRm9ybToKKyAg
ICBjYXNlIFByb3RlY3Rpb25TcGFjZTo6QXV0aGVudGljYXRpb25TY2hlbWU6OkhUTUxGb3JtOgog
ICAgICAgICAqcmVzdWx0ID0gU3lzQWxsb2NTdHJpbmcoV2ViVVJMQXV0aGVudGljYXRpb25NZXRo
b2RIVE1MRm9ybSk7CiAgICAgICAgIGJyZWFrOwogICAgIGRlZmF1bHQ6CkBAIC0xMzEsMTcgKzEz
MSwxNyBAQCBIUkVTVUxUIFdlYlVSTFByb3RlY3Rpb25TcGFjZTo6aG9zdChfX2RlcmVmX29wdF9v
dXQgQlNUUiogcmVzdWx0KQogICAgIHJldHVybiBTX09LOwogfQogCi1zdGF0aWMgUHJvdGVjdGlv
blNwYWNlQXV0aGVudGljYXRpb25TY2hlbWUgY29yZVNjaGVtZShCU1RSIGF1dGhlbnRpY2F0aW9u
TWV0aG9kKQorc3RhdGljIFByb3RlY3Rpb25TcGFjZTo6QXV0aGVudGljYXRpb25TY2hlbWUgY29y
ZVNjaGVtZShCU1RSIGF1dGhlbnRpY2F0aW9uTWV0aG9kKQogewotICAgIFByb3RlY3Rpb25TcGFj
ZUF1dGhlbnRpY2F0aW9uU2NoZW1lIHNjaGVtZSA9IFByb3RlY3Rpb25TcGFjZUF1dGhlbnRpY2F0
aW9uU2NoZW1lRGVmYXVsdDsKKyAgICBhdXRvIHNjaGVtZSA9IFByb3RlY3Rpb25TcGFjZTo6QXV0
aGVudGljYXRpb25TY2hlbWU6OkRlZmF1bHQ7CiAgICAgaWYgKEJTdHJpbmcoYXV0aGVudGljYXRp
b25NZXRob2QpID09IEJTdHJpbmcoV2ViVVJMQXV0aGVudGljYXRpb25NZXRob2REZWZhdWx0KSkK
LSAgICAgICAgc2NoZW1lID0gUHJvdGVjdGlvblNwYWNlQXV0aGVudGljYXRpb25TY2hlbWVEZWZh
dWx0OworICAgICAgICBzY2hlbWUgPSBQcm90ZWN0aW9uU3BhY2U6OkF1dGhlbnRpY2F0aW9uU2No
ZW1lOjpEZWZhdWx0OwogICAgIGVsc2UgaWYgKEJTdHJpbmcoYXV0aGVudGljYXRpb25NZXRob2Qp
ID09IEJTdHJpbmcoV2ViVVJMQXV0aGVudGljYXRpb25NZXRob2RIVFRQQmFzaWMpKQotICAgICAg
ICBzY2hlbWUgPSBQcm90ZWN0aW9uU3BhY2VBdXRoZW50aWNhdGlvblNjaGVtZUhUVFBCYXNpYzsK
KyAgICAgICAgc2NoZW1lID0gUHJvdGVjdGlvblNwYWNlOjpBdXRoZW50aWNhdGlvblNjaGVtZTo6
SFRUUEJhc2ljOwogICAgIGVsc2UgaWYgKEJTdHJpbmcoYXV0aGVudGljYXRpb25NZXRob2QpID09
IEJTdHJpbmcoV2ViVVJMQXV0aGVudGljYXRpb25NZXRob2RIVFRQRGlnZXN0KSkKLSAgICAgICAg
c2NoZW1lID0gUHJvdGVjdGlvblNwYWNlQXV0aGVudGljYXRpb25TY2hlbWVIVFRQRGlnZXN0Owor
ICAgICAgICBzY2hlbWUgPSBQcm90ZWN0aW9uU3BhY2U6OkF1dGhlbnRpY2F0aW9uU2NoZW1lOjpI
VFRQRGlnZXN0OwogICAgIGVsc2UgaWYgKEJTdHJpbmcoYXV0aGVudGljYXRpb25NZXRob2QpID09
IEJTdHJpbmcoV2ViVVJMQXV0aGVudGljYXRpb25NZXRob2RIVE1MRm9ybSkpCi0gICAgICAgIHNj
aGVtZSA9IFByb3RlY3Rpb25TcGFjZUF1dGhlbnRpY2F0aW9uU2NoZW1lSFRNTEZvcm07CisgICAg
ICAgIHNjaGVtZSA9IFByb3RlY3Rpb25TcGFjZTo6QXV0aGVudGljYXRpb25TY2hlbWU6OkhUTUxG
b3JtOwogICAgIGVsc2UKICAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CiAgICAgcmV0dXJu
IHNjaGVtZTsKQEAgLTE1NCwxNSArMTU0LDE1IEBAIEhSRVNVTFQgV2ViVVJMUHJvdGVjdGlvblNw
YWNlOjppbml0V2l0aEhvc3QoX0luXyBCU1RSIGhvc3QsIGludCBwb3J0LCBfSW5fIEJTVFIKICAg
ICBzdGF0aWMgQlN0cmluZyYgd2ViVVJMUHJvdGVjdGlvblNwYWNlRlRQQlN0cmluZyA9ICpuZXcg
QlN0cmluZyhXZWJVUkxQcm90ZWN0aW9uU3BhY2VGVFApOwogICAgIHN0YXRpYyBCU3RyaW5nJiB3
ZWJVUkxQcm90ZWN0aW9uU3BhY2VGVFBTQlN0cmluZyA9ICpuZXcgQlN0cmluZyhXZWJVUkxQcm90
ZWN0aW9uU3BhY2VGVFBTKTsKIAotICAgIFByb3RlY3Rpb25TcGFjZVNlcnZlclR5cGUgc2VydmVy
VHlwZSA9IFByb3RlY3Rpb25TcGFjZVNlcnZlckhUVFA7CisgICAgYXV0byBzZXJ2ZXJUeXBlID0g
UHJvdGVjdGlvblNwYWNlOjpTZXJ2ZXJUeXBlOjpIVFRQOwogICAgIGlmIChCU3RyaW5nKHByb3Rv
Y29sKSA9PSB3ZWJVUkxQcm90ZWN0aW9uU3BhY2VIVFRQQlN0cmluZykKLSAgICAgICAgc2VydmVy
VHlwZSA9IFByb3RlY3Rpb25TcGFjZVNlcnZlckhUVFA7CisgICAgICAgIHNlcnZlclR5cGUgPSBQ
cm90ZWN0aW9uU3BhY2U6OlNlcnZlclR5cGU6OkhUVFA7CiAgICAgZWxzZSBpZiAoQlN0cmluZyhw
cm90b2NvbCkgPT0gd2ViVVJMUHJvdGVjdGlvblNwYWNlSFRUUFNCU3RyaW5nKQotICAgICAgICBz
ZXJ2ZXJUeXBlID0gUHJvdGVjdGlvblNwYWNlU2VydmVySFRUUFM7CisgICAgICAgIHNlcnZlclR5
cGUgPSBQcm90ZWN0aW9uU3BhY2U6OlNlcnZlclR5cGU6OkhUVFBTOwogICAgIGVsc2UgaWYgKEJT
dHJpbmcocHJvdG9jb2wpID09IHdlYlVSTFByb3RlY3Rpb25TcGFjZUZUUEJTdHJpbmcpCi0gICAg
ICAgIHNlcnZlclR5cGUgPSBQcm90ZWN0aW9uU3BhY2VTZXJ2ZXJGVFA7CisgICAgICAgIHNlcnZl
clR5cGUgPSBQcm90ZWN0aW9uU3BhY2U6OlNlcnZlclR5cGU6OkZUUDsKICAgICBlbHNlIGlmIChC
U3RyaW5nKHByb3RvY29sKSA9PSB3ZWJVUkxQcm90ZWN0aW9uU3BhY2VGVFBTQlN0cmluZykKLSAg
ICAgICAgc2VydmVyVHlwZSA9IFByb3RlY3Rpb25TcGFjZVNlcnZlckZUUFM7CisgICAgICAgIHNl
cnZlclR5cGUgPSBQcm90ZWN0aW9uU3BhY2U6OlNlcnZlclR5cGU6OkZUUFM7CiAKICAgICBtX3By
b3RlY3Rpb25TcGFjZSA9IFByb3RlY3Rpb25TcGFjZShTdHJpbmcoaG9zdCwgU3lzU3RyaW5nTGVu
KGhvc3QpKSwgcG9ydCwgc2VydmVyVHlwZSwgCiAgICAgICAgIFN0cmluZyhyZWFsbSwgU3lzU3Ry
aW5nTGVuKHJlYWxtKSksIGNvcmVTY2hlbWUoYXV0aGVudGljYXRpb25NZXRob2QpKTsKQEAgLTE3
NywxNSArMTc3LDE1IEBAIEhSRVNVTFQgV2ViVVJMUHJvdGVjdGlvblNwYWNlOjppbml0V2l0aFBy
b3h5SG9zdChfSW5fIEJTVFIgaG9zdCwgaW50IHBvcnQsIF9Jbl8KICAgICBzdGF0aWMgQlN0cmlu
ZyYgd2ViVVJMUHJvdGVjdGlvblNwYWNlRlRQUHJveHlCU3RyaW5nID0gKm5ldyBCU3RyaW5nKFdl
YlVSTFByb3RlY3Rpb25TcGFjZUZUUFByb3h5KTsKICAgICBzdGF0aWMgQlN0cmluZyYgd2ViVVJM
UHJvdGVjdGlvblNwYWNlU09DS1NQcm94eUJTdHJpbmcgPSAqbmV3IEJTdHJpbmcoV2ViVVJMUHJv
dGVjdGlvblNwYWNlU09DS1NQcm94eSk7CiAKLSAgICBQcm90ZWN0aW9uU3BhY2VTZXJ2ZXJUeXBl
IHNlcnZlclR5cGUgPSBQcm90ZWN0aW9uU3BhY2VQcm94eUhUVFA7CisgICAgYXV0byBzZXJ2ZXJU
eXBlID0gUHJvdGVjdGlvblNwYWNlOjpTZXJ2ZXJUeXBlOjpQcm94eUhUVFA7CiAgICAgaWYgKEJT
dHJpbmcocHJveHlUeXBlKSA9PSB3ZWJVUkxQcm90ZWN0aW9uU3BhY2VIVFRQUHJveHlCU3RyaW5n
KQotICAgICAgICBzZXJ2ZXJUeXBlID0gUHJvdGVjdGlvblNwYWNlUHJveHlIVFRQOworICAgICAg
ICBzZXJ2ZXJUeXBlID0gUHJvdGVjdGlvblNwYWNlOjpTZXJ2ZXJUeXBlOjpQcm94eUhUVFA7CiAg
ICAgZWxzZSBpZiAoQlN0cmluZyhwcm94eVR5cGUpID09IHdlYlVSTFByb3RlY3Rpb25TcGFjZUhU
VFBTUHJveHlCU3RyaW5nKQotICAgICAgICBzZXJ2ZXJUeXBlID0gUHJvdGVjdGlvblNwYWNlUHJv
eHlIVFRQUzsKKyAgICAgICAgc2VydmVyVHlwZSA9IFByb3RlY3Rpb25TcGFjZTo6U2VydmVyVHlw
ZTo6UHJveHlIVFRQUzsKICAgICBlbHNlIGlmIChCU3RyaW5nKHByb3h5VHlwZSkgPT0gd2ViVVJM
UHJvdGVjdGlvblNwYWNlRlRQUHJveHlCU3RyaW5nKQotICAgICAgICBzZXJ2ZXJUeXBlID0gUHJv
dGVjdGlvblNwYWNlUHJveHlGVFA7CisgICAgICAgIHNlcnZlclR5cGUgPSBQcm90ZWN0aW9uU3Bh
Y2U6OlNlcnZlclR5cGU6OlByb3h5RlRQOwogICAgIGVsc2UgaWYgKEJTdHJpbmcocHJveHlUeXBl
KSA9PSB3ZWJVUkxQcm90ZWN0aW9uU3BhY2VTT0NLU1Byb3h5QlN0cmluZykKLSAgICAgICAgc2Vy
dmVyVHlwZSA9IFByb3RlY3Rpb25TcGFjZVByb3h5U09DS1M7CisgICAgICAgIHNlcnZlclR5cGUg
PSBQcm90ZWN0aW9uU3BhY2U6OlNlcnZlclR5cGU6OlByb3h5U09DS1M7CiAgICAgZWxzZQogICAg
ICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKIApAQCAtMjE3LDE2ICsyMTcsMTYgQEAgSFJFU1VM
VCBXZWJVUkxQcm90ZWN0aW9uU3BhY2U6OnByb3RvY29sKF9fZGVyZWZfb3B0X291dCBCU1RSKiBy
ZXN1bHQpCiAgICAgICAgIHJldHVybiBFX1BPSU5URVI7CiAKICAgICBzd2l0Y2ggKG1fcHJvdGVj
dGlvblNwYWNlLnNlcnZlclR5cGUoKSkgewotICAgIGNhc2UgUHJvdGVjdGlvblNwYWNlU2VydmVy
SFRUUDoKKyAgICBjYXNlIFByb3RlY3Rpb25TcGFjZTo6U2VydmVyVHlwZTo6SFRUUDoKICAgICAg
ICAgKnJlc3VsdCA9IFN5c0FsbG9jU3RyaW5nKFdlYlVSTFByb3RlY3Rpb25TcGFjZUhUVFApOwog
ICAgICAgICBicmVhazsKLSAgICBjYXNlIFByb3RlY3Rpb25TcGFjZVNlcnZlckhUVFBTOgorICAg
IGNhc2UgUHJvdGVjdGlvblNwYWNlOjpTZXJ2ZXJUeXBlOjpIVFRQUzoKICAgICAgICAgKnJlc3Vs
dCA9IFN5c0FsbG9jU3RyaW5nKFdlYlVSTFByb3RlY3Rpb25TcGFjZUhUVFBTKTsKICAgICAgICAg
YnJlYWs7Ci0gICAgY2FzZSBQcm90ZWN0aW9uU3BhY2VTZXJ2ZXJGVFA6CisgICAgY2FzZSBQcm90
ZWN0aW9uU3BhY2U6OlNlcnZlclR5cGU6OkZUUDoKICAgICAgICAgKnJlc3VsdCA9IFN5c0FsbG9j
U3RyaW5nKFdlYlVSTFByb3RlY3Rpb25TcGFjZUZUUCk7CiAgICAgICAgIGJyZWFrOwotICAgIGNh
c2UgUHJvdGVjdGlvblNwYWNlU2VydmVyRlRQUzoKKyAgICBjYXNlIFByb3RlY3Rpb25TcGFjZTo6
U2VydmVyVHlwZTo6RlRQUzoKICAgICAgICAgKnJlc3VsdCA9IFN5c0FsbG9jU3RyaW5nKFdlYlVS
TFByb3RlY3Rpb25TcGFjZUZUUFMpOwogICAgICAgICBicmVhazsKICAgICBkZWZhdWx0OgpAQCAt
MjQyLDE2ICsyNDIsMTYgQEAgSFJFU1VMVCBXZWJVUkxQcm90ZWN0aW9uU3BhY2U6OnByb3h5VHlw
ZShfX2RlcmVmX29wdF9vdXQgQlNUUiogcmVzdWx0KQogICAgICAgICByZXR1cm4gRV9QT0lOVEVS
OwogCiAgICAgc3dpdGNoIChtX3Byb3RlY3Rpb25TcGFjZS5zZXJ2ZXJUeXBlKCkpIHsKLSAgICBj
YXNlIFByb3RlY3Rpb25TcGFjZVByb3h5SFRUUDoKKyAgICBjYXNlIFByb3RlY3Rpb25TcGFjZTo6
U2VydmVyVHlwZTo6UHJveHlIVFRQOgogICAgICAgICAqcmVzdWx0ID0gU3lzQWxsb2NTdHJpbmco
V2ViVVJMUHJvdGVjdGlvblNwYWNlSFRUUFByb3h5KTsKICAgICAgICAgYnJlYWs7Ci0gICAgY2Fz
ZSBQcm90ZWN0aW9uU3BhY2VQcm94eUhUVFBTOgorICAgIGNhc2UgUHJvdGVjdGlvblNwYWNlOjpT
ZXJ2ZXJUeXBlOjpQcm94eUhUVFBTOgogICAgICAgICAqcmVzdWx0ID0gU3lzQWxsb2NTdHJpbmco
V2ViVVJMUHJvdGVjdGlvblNwYWNlSFRUUFNQcm94eSk7CiAgICAgICAgIGJyZWFrOwotICAgIGNh
c2UgUHJvdGVjdGlvblNwYWNlUHJveHlGVFA6CisgICAgY2FzZSBQcm90ZWN0aW9uU3BhY2U6OlNl
cnZlclR5cGU6OlByb3h5RlRQOgogICAgICAgICAqcmVzdWx0ID0gU3lzQWxsb2NTdHJpbmcoV2Vi
VVJMUHJvdGVjdGlvblNwYWNlRlRQUHJveHkpOwogICAgICAgICBicmVhazsKLSAgICBjYXNlIFBy
b3RlY3Rpb25TcGFjZVByb3h5U09DS1M6CisgICAgY2FzZSBQcm90ZWN0aW9uU3BhY2U6OlNlcnZl
clR5cGU6OlByb3h5U09DS1M6CiAgICAgICAgICpyZXN1bHQgPSBTeXNBbGxvY1N0cmluZyhXZWJV
UkxQcm90ZWN0aW9uU3BhY2VTT0NLU1Byb3h5KTsKICAgICAgICAgYnJlYWs7CiAgICAgZGVmYXVs
dDoK
</data>

          </attachment>
      

    </bug>

</bugzilla>