<?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>211638</bug_id>
          
          <creation_ts>2020-05-08 12:19:15 -0700</creation_ts>
          <short_desc>Delete old ews client side code - part 1</short_desc>
          <delta_ts>2020-06-17 08:15:40 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Tools / Tests</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=211504</see_also>
    
    <see_also>https://bugs.webkit.org/show_bug.cgi?id=211518</see_also>
    
    <see_also>https://bugs.webkit.org/show_bug.cgi?id=211581</see_also>
    
    <see_also>https://bugs.webkit.org/show_bug.cgi?id=213262</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>
          
          <blocked>213296</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Aakash Jain">aakash_jain</reporter>
          <assigned_to name="Aakash Jain">aakash_jain</assigned_to>
          <cc>ap</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>glenn</cc>
    
    <cc>jbedard</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1650709</commentid>
    <comment_count>0</comment_count>
    <who name="Aakash Jain">aakash_jain</who>
    <bug_when>2020-05-08 12:19:15 -0700</bug_when>
    <thetext>Old ews was decommissioned in favor of new ews (https://ews-build.webkit.org). We deleted server side for in Bug 211504). We should also delete the client side code for old ews. The client side code is inside webkitpy. 

old ews webkitpy code is very tightly coupled with code for various webkit-patch commands (which we want to keep). So the deletion would need to be very careful, so as to not break webkit-patch commands.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1650711</commentid>
    <comment_count>1</comment_count>
      <attachid>398882</attachid>
    <who name="Aakash Jain">aakash_jain</who>
    <bug_when>2020-05-08 12:28:01 -0700</bug_when>
    <thetext>Created attachment 398882
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1650733</commentid>
    <comment_count>2</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2020-05-08 13:20:13 -0700</bug_when>
    <thetext>Committed r261408: &lt;https://trac.webkit.org/changeset/261408&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 398882.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1650734</commentid>
    <comment_count>3</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2020-05-08 13:21:14 -0700</bug_when>
    <thetext>&lt;rdar://problem/63033488&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>398882</attachid>
            <date>2020-05-08 12:28:01 -0700</date>
            <delta_ts>2020-05-08 13:20:13 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-211638-20200508152800.patch</filename>
            <type>text/plain</type>
            <size>43799</size>
            <attacher name="Aakash Jain">aakash_jain</attacher>
            
              <data encoding="base64">SW5kZXg6IFRvb2xzL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9DaGFuZ2VMb2cJKHJl
dmlzaW9uIDI2MTQwMSkKKysrIFRvb2xzL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwz
ICsxLDQ4IEBACisyMDIwLTA1LTA4ICBBYWthc2ggSmFpbiAgPGFha2FzaF9qYWluQGFwcGxlLmNv
bT4KKworICAgICAgICBEZWxldGUgb2xkIGV3cyBjbGllbnQgc2lkZSBjb2RlCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMTE2MzgKKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFNjcmlwdHMvd2Via2l0cHkv
Y29tbW9uL2NoZWNrb3V0L2NoYW5nZWxvZ191bml0dGVzdC5weToKKyAgICAgICAgKiBTY3JpcHRz
L3dlYmtpdHB5L2NvbW1vbi9jb25maWcvdXJscy5weTogUmVtb3ZlZCBvbGQgZXdzIHNlcnZlciB1
cmwuCisgICAgICAgICogU2NyaXB0cy93ZWJraXRweS9jb21tb24vbmV0L3N0YXR1c3NlcnZlci5w
eTogUmVtb3ZlZC4KKyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdHB5L2NvbW1vbi9uZXQvc3RhdHVz
c2VydmVyX21vY2sucHk6IFJlbW92ZWQuCisgICAgICAgICogU2NyaXB0cy93ZWJraXRweS90b29s
L2JvdC9ib3RpbmZvLnB5OgorICAgICAgICAqIFNjcmlwdHMvd2Via2l0cHkvdG9vbC9ib3QvYm90
aW5mb191bml0dGVzdC5weToKKyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdHB5L3Rvb2wvYm90L2Zs
YWt5dGVzdHJlcG9ydGVyLnB5OgorICAgICAgICAqIFNjcmlwdHMvd2Via2l0cHkvdG9vbC9ib3Qv
Zmxha3l0ZXN0cmVwb3J0ZXJfdW5pdHRlc3QucHk6CisgICAgICAgICogU2NyaXB0cy93ZWJraXRw
eS90b29sL2JvdC9xdWV1ZWVuZ2luZS5weToKKyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdHB5L3Rv
b2wvYm90L3F1ZXVlZW5naW5lX3VuaXR0ZXN0LnB5OgorICAgICAgICAqIFNjcmlwdHMvd2Via2l0
cHkvdG9vbC9jb21tYW5kcy9lYXJseXdhcm5pbmdzeXN0ZW0ucHk6CisgICAgICAgICogU2NyaXB0
cy93ZWJraXRweS90b29sL2NvbW1hbmRzL2Vhcmx5d2FybmluZ3N5c3RlbV91bml0dGVzdC5weToK
KyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdHB5L3Rvb2wvY29tbWFuZHMvcGVyZmFsaXplci5weToK
KyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdHB5L3Rvb2wvY29tbWFuZHMvcXVldWVzLnB5OgorICAg
ICAgICAoQWJzdHJhY3RRdWV1ZS5fbG9nX2Zyb21fc2NyaXB0X2Vycm9yX2Zvcl91cGxvYWQpOiBE
ZWxldGVkLgorICAgICAgICAoQWJzdHJhY3RRdWV1ZS5fdXBkYXRlX3N0YXR1c19mb3Jfc2NyaXB0
X2Vycm9yKTogRGVsZXRlZC4KKyAgICAgICAgKEFic3RyYWN0UGF0Y2hRdWV1ZS5fdXBkYXRlX3N0
YXR1cyk6IERlbGV0ZWQuCisgICAgICAgIChBYnN0cmFjdFBhdGNoUXVldWUuX3JlbGVhc2Vfd29y
a19pdGVtKTogRGVsZXRlZC4KKyAgICAgICAgKEFic3RyYWN0UGF0Y2hRdWV1ZS5fZGlkX3Bhc3Mp
OiBEZWxldGVkLgorICAgICAgICAoQWJzdHJhY3RQYXRjaFF1ZXVlLl9kaWRfZmFpbCk6IERlbGV0
ZWQuCisgICAgICAgICogU2NyaXB0cy93ZWJraXRweS90b29sL2NvbW1hbmRzL3F1ZXVlc191bml0
dGVzdC5weToKKyAgICAgICAgKEFic3RyYWN0UXVldWVUZXN0Ll9hc3NlcnRfcnVuX3dlYmtpdF9w
YXRjaCk6CisgICAgICAgIChBYnN0cmFjdFF1ZXVlVGVzdC50ZXN0X25vX2l0ZXJhdGlvbl9jb3Vu
dCk6CisgICAgICAgIChQYXRjaFByb2Nlc3NpbmdRdWV1ZVRlc3QudGVzdF91cGxvYWRfcmVzdWx0
c19hcmNoaXZlX2Zvcl9wYXRjaCk6CisgICAgICAgIChBYnN0cmFjdFF1ZXVlVGVzdC5fYXNzZXJ0
X2xvZ19tZXNzYWdlKTogRGVsZXRlZC4KKyAgICAgICAgKEFic3RyYWN0UXVldWVUZXN0LnRlc3Rf
bG9nX2Zyb21fc2NyaXB0X2Vycm9yX2Zvcl91cGxvYWQpOiBEZWxldGVkLgorICAgICAgICAoQWJz
dHJhY3RQYXRjaFF1ZXVlVGVzdCk6IERlbGV0ZWQuCisgICAgICAgIChOZWVkc1VwZGF0ZVNlcXVl
bmNlKTogRGVsZXRlZC4KKyAgICAgICAgKE5lZWRzVXBkYXRlU2VxdWVuY2UuX3J1bik6IERlbGV0
ZWQuCisgICAgICAgIChTdHlsZVF1ZXVlVGVzdCk6IERlbGV0ZWQuCisgICAgICAgIChTdHlsZVF1
ZXVlVGVzdC50ZXN0X3N0eWxlX3F1ZXVlX3dpdGhfc3R5bGVfZXhjZXB0aW9uKTogRGVsZXRlZC4K
KyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdHB5L3Rvb2wvY29tbWFuZHMvcXVldWVzdGVzdC5weToK
KyAgICAgICAgKFF1ZXVlc1Rlc3QuX2RlZmF1bHRfYmVnaW5fd29ya19xdWV1ZV9sb2dzKToKKyAg
ICAgICAgKFF1ZXVlc1Rlc3QuX2RlZmF1bHRfYmVnaW5fd29ya19xdWV1ZV9zdGRlcnIpOiBEZWxl
dGVkLgorICAgICAgICAqIFNjcmlwdHMvd2Via2l0cHkvdG9vbC9jb21tYW5kcy9zaGVyaWZmYm90
LnB5OgorICAgICAgICAqIFNjcmlwdHMvd2Via2l0cHkvdG9vbC9tYWluLnB5OgorICAgICAgICAq
IFNjcmlwdHMvd2Via2l0cHkvdG9vbC9tb2NrdG9vbC5weToKKwogMjAyMC0wNS0wOCAgRGVhbiBK
YWNrc29uICA8ZGlub0BhcHBsZS5jb20+CiAKICAgICAgICAgQWxsb3cgcnVuLXNhZmFyaSB0byBs
YXVuY2ggYW4gaVBhZCBzaW11bGF0b3IKSW5kZXg6IFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvY29t
bW9uL2NoZWNrb3V0L2NoYW5nZWxvZ191bml0dGVzdC5weQo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9T
Y3JpcHRzL3dlYmtpdHB5L2NvbW1vbi9jaGVja291dC9jaGFuZ2Vsb2dfdW5pdHRlc3QucHkJKHJl
dmlzaW9uIDI2MTQwMSkKKysrIFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvY29tbW9uL2NoZWNrb3V0
L2NoYW5nZWxvZ191bml0dGVzdC5weQkod29ya2luZyBjb3B5KQpAQCAtNjA3LDEwICs2MDcsNiBA
QCBjbGFzcyBDaGFuZ2VMb2dUZXN0KHVuaXR0ZXN0LlRlc3RDYXNlKToKIAogICAgICAgICBQZXJm
b3JtIHNvbWUgZmlsZSBvcGVyYXRpb25zIChhdXRvbWF0aWNhbGx5IGFkZGVkIGNvbW1lbnRzKS4K
IAotICAgICAgICAqIFF1ZXVlU3RhdHVzU2VydmVyL2NvbmZpZy9jaGFydHMucHk6IENvcGllZCBm
cm9tIFRvb2xzL1F1ZXVlU3RhdHVzU2VydmVyL21vZGVsL3F1ZXVlbG9nLnB5LgotICAgICAgICAo
Z2V0X3RpbWVfdW5pdCk6Ci0gICAgICAgICogUXVldWVTdGF0dXNTZXJ2ZXIvaGFuZGxlcnMvcXVl
dWVjaGFydHMucHk6IEFkZGVkLgotICAgICAgICAoUXVldWVDaGFydHMpOgogICAgICAgICAqIFNj
cmlwdHMvd2Via2l0cHkvdG9vbC9ib3QvdGVzdGRhdGEvd2Via2l0X3NoZXJpZmZfMC5qczogUmVt
b3ZlZC4KICAgICAgICAgKiBFV1NUb29scy9idWlsZC12bS5zaDogUmVuYW1lZCBmcm9tIFRvb2xz
L0VXU1Rvb2xzL2NvbGQtYm9vdC5zaC4KICcnJywgVHJ1ZSksCkluZGV4OiBUb29scy9TY3JpcHRz
L3dlYmtpdHB5L2NvbW1vbi9jb25maWcvdXJscy5weQo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9TY3Jp
cHRzL3dlYmtpdHB5L2NvbW1vbi9jb25maWcvdXJscy5weQkocmV2aXNpb24gMjYxNDAxKQorKysg
VG9vbHMvU2NyaXB0cy93ZWJraXRweS9jb21tb24vY29uZmlnL3VybHMucHkJKHdvcmtpbmcgY29w
eSkKQEAgLTU1LDcgKzU1LDYgQEAgYnVpbGRib3RfdXJsID0gImh0dHBzOi8vYnVpbGQud2Via2l0
Lm9yZwogc3ZuX3NlcnZlcl9ob3N0ID0gInN2bi53ZWJraXQub3JnIgogc3ZuX3NlcnZlcl9yZWFs
bSA9ICI8aHR0cDovL3N2bi53ZWJraXQub3JnOjgwPiBNYWMgT1MgRm9yZ2UiCiAKLXN0YXR1c3Nl
cnZlcl9kZWZhdWx0X2hvc3QgPSAid2Via2l0LXF1ZXVlcy53ZWJraXQub3JnIgogZXdzc2VydmVy
X2RlZmF1bHRfaG9zdCA9ICJld3Mud2Via2l0Lm9yZyIKIAogCkluZGV4OiBUb29scy9TY3JpcHRz
L3dlYmtpdHB5L2NvbW1vbi9uZXQvc3RhdHVzc2VydmVyLnB5Cj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFRvb2xz
L1NjcmlwdHMvd2Via2l0cHkvY29tbW9uL25ldC9zdGF0dXNzZXJ2ZXIucHkJKHJldmlzaW9uIDI2
MTQwMSkKKysrIFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvY29tbW9uL25ldC9zdGF0dXNzZXJ2ZXIu
cHkJKG5vbmV4aXN0ZW50KQpAQCAtMSw4MyArMCwwIEBACi0jIENvcHlyaWdodCAoQykgMjAwOSBH
b29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotIyBDb3B5cmlnaHQgKEMpIDIwMTgsIDIw
MTkgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotIwotIyBSZWRpc3RyaWJ1dGlvbiBh
bmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSMgbW9k
aWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25k
aXRpb25zIGFyZQotIyBtZXQ6Ci0jCi0jICAgICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2Ug
Y29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0jIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSMgICAgICogUmVk
aXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQotIyBj
b3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyCi0jIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlh
bHMgcHJvdmlkZWQgd2l0aCB0aGUKLSMgZGlzdHJpYnV0aW9uLgotIyAgICAgKiBOZWl0aGVyIHRo
ZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0aGUgbmFtZXMgb2YgaXRzCi0jIGNvbnRyaWJ1dG9y
cyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9t
Ci0jIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Np
b24uCi0jCi0jIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xE
RVJTIEFORCBDT05UUklCVVRPUlMKLSMgIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElF
RCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKLSMgTElNSVRFRCBUTywgVEhFIElNUExJ
RUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCi0jIEEgUEFS
VElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09Q
WVJJR0hUCi0jIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1Qs
IElORElSRUNULCBJTkNJREVOVEFMLAotIyBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVF
TlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UCi0jIExJTUlURUQgVE8sIFBST0NVUkVN
RU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAotIyBEQVRB
LCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFO
RCBPTiBBTlkKLSMgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RS
SUNUIExJQUJJTElUWSwgT1IgVE9SVAotIyAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJX
SVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKLSMgT0YgVEhJUyBTT0ZUV0FS
RSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLSMK
LSMgVGhpcyB0aGUgY2xpZW50IGRlc2lnbmVkIHRvIHRhbGsgdG8gVG9vbHMvUXVldWVTdGF0dXNT
ZXJ2ZXIuCi0KLWltcG9ydCBzeXMKLQotZnJvbSB3ZWJraXRweS5jb21tb24uY29uZmlnLnVybHMg
aW1wb3J0IHN0YXR1c3NlcnZlcl9kZWZhdWx0X2hvc3QKLQotaWYgc3lzLnZlcnNpb25faW5mbyA+
ICgzLCAwKToKLSAgICBmcm9tIHVybGxpYi5lcnJvciBpbXBvcnQgSFRUUEVycm9yCi0gICAgZnJv
bSB1cmxsaWIucmVxdWVzdCBpbXBvcnQgUmVxdWVzdCwgdXJsb3BlbgotZWxzZToKLSAgICBmcm9t
IHVybGxpYjIgaW1wb3J0IEhUVFBFcnJvciwgUmVxdWVzdCwgdXJsb3BlbgotCi0KLWNsYXNzIFN0
YXR1c1NlcnZlcjoKLSAgICBkZWYgX19pbml0X18oc2VsZiwgaG9zdD1zdGF0dXNzZXJ2ZXJfZGVm
YXVsdF9ob3N0LCBicm93c2VyPU5vbmUsIGJvdF9pZD1Ob25lKToKLSAgICAgICAgc2VsZi5zZXRf
aG9zdChob3N0KQotICAgICAgICBzZWxmLnNldF9ib3RfaWQoYm90X2lkKQotCi0gICAgZGVmIHNl
dF9ob3N0KHNlbGYsIGhvc3QpOgotICAgICAgICBzZWxmLmhvc3QgPSBob3N0Ci0gICAgICAgIHNl
bGYudXJsID0gImh0dHA6Ly8lcyIgJSBzZWxmLmhvc3QKLQotICAgIGRlZiBzZXRfYm90X2lkKHNl
bGYsIGJvdF9pZCk6Ci0gICAgICAgIHNlbGYuYm90X2lkID0gYm90X2lkCi0KLSAgICBkZWYgcmVz
dWx0c191cmxfZm9yX3N0YXR1cyhzZWxmLCBzdGF0dXNfaWQpOgotICAgICAgICByZXR1cm4gTm9u
ZQotCi0gICAgZGVmIHN1Ym1pdF90b19ld3Moc2VsZiwgYXR0YWNobWVudF9pZCk6Ci0gICAgICAg
IHJldHVybiBOb25lCi0KLSAgICBkZWYgbmV4dF93b3JrX2l0ZW0oc2VsZiwgcXVldWVfbmFtZSk6
Ci0gICAgICAgIHJldHVybiBOb25lCi0KLSAgICBkZWYgcmVsZWFzZV93b3JrX2l0ZW0oc2VsZiwg
cXVldWVfbmFtZSwgcGF0Y2gpOgotICAgICAgICByZXR1cm4gTm9uZQotCi0gICAgZGVmIHJlbGVh
c2VfbG9jayhzZWxmLCBxdWV1ZV9uYW1lLCBwYXRjaCk6Ci0gICAgICAgIHJldHVybiBOb25lCi0K
LSAgICBkZWYgdXBkYXRlX3dvcmtfaXRlbXMoc2VsZiwgcXVldWVfbmFtZSwgaGlnaF9wcmlvcml0
eV93b3JrX2l0ZW1zLCB3b3JrX2l0ZW1zKToKLSAgICAgICAgcmV0dXJuIE5vbmUKLQotICAgIGRl
ZiB1cGRhdGVfc3RhdHVzKHNlbGYsIHF1ZXVlX25hbWUsIHN0YXR1cywgcGF0Y2g9Tm9uZSwgcmVz
dWx0c19maWxlPU5vbmUpOgotICAgICAgICByZXR1cm4gTm9uZQotCi0gICAgZGVmIHVwZGF0ZV9z
dm5fcmV2aXNpb24oc2VsZiwgc3ZuX3JldmlzaW9uX251bWJlciwgYnJva2VuX2JvdCk6Ci0gICAg
ICAgIHJldHVybiBOb25lCi0KLSAgICBkZWYgcGF0Y2hfc3RhdHVzKHNlbGYsIHF1ZXVlX25hbWUs
IHBhdGNoX2lkKToKLSAgICAgICAgcmV0dXJuIE5vbmUKLQotICAgIGRlZiBzdm5fcmV2aXNpb24o
c2VsZiwgc3ZuX3JldmlzaW9uX251bWJlcik6Ci0gICAgICAgIHJldHVybiBOb25lCkluZGV4OiBU
b29scy9TY3JpcHRzL3dlYmtpdHB5L2NvbW1vbi9uZXQvc3RhdHVzc2VydmVyX21vY2sucHkKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gVG9vbHMvU2NyaXB0cy93ZWJraXRweS9jb21tb24vbmV0L3N0YXR1c3NlcnZl
cl9tb2NrLnB5CShyZXZpc2lvbiAyNjE0MDEpCisrKyBUb29scy9TY3JpcHRzL3dlYmtpdHB5L2Nv
bW1vbi9uZXQvc3RhdHVzc2VydmVyX21vY2sucHkJKG5vbmV4aXN0ZW50KQpAQCAtMSw3NCArMCww
IEBACi0jIENvcHlyaWdodCAoQykgMjAxMSBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVk
LgotIyBDb3B5cmlnaHQgKEMpIDIwMTkgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgot
IwotIyBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3
aXRoIG9yIHdpdGhvdXQKLSMgbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRo
YXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQotIyBtZXQ6Ci0jCi0jICAgICogUmVkaXN0
cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQK
LSMgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyLgotIyAgICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJv
ZHVjZSB0aGUgYWJvdmUKLSMgY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgotIyBpbiB0aGUgZG9jdW1lbnRhdGlvbiBh
bmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlCi0jIGRpc3RyaWJ1dGlvbi4K
LSMgICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0aGUgbmFtZXMgb2Yg
aXRzCi0jIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJv
ZHVjdHMgZGVyaXZlZCBmcm9tCi0jIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlv
ciB3cml0dGVuIHBlcm1pc3Npb24uCi0jCi0jIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkg
VEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKLSMgIkFTIElTIiBBTkQgQU5Z
IEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKLSMgTElN
SVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJ
VE5FU1MgRk9SCi0jIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBF
VkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCi0jIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFC
TEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAotIyBTUEVDSUFMLCBFWEVN
UExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UCi0jIExJ
TUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExP
U1MgT0YgVVNFLAotIyBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04p
IEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKLSMgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhF
UiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAotIyAoSU5DTFVESU5HIE5F
R0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UK
LSMgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBP
RiBTVUNIIERBTUFHRS4KLQotaW1wb3J0IGxvZ2dpbmcKLQotX2xvZyA9IGxvZ2dpbmcuZ2V0TG9n
Z2VyKF9fbmFtZV9fKQotCi0KLWNsYXNzIE1vY2tTdGF0dXNTZXJ2ZXIob2JqZWN0KToKLQotICAg
IGRlZiBfX2luaXRfXyhzZWxmLCBib3RfaWQ9Tm9uZSwgd29ya19pdGVtcz1Ob25lKToKLSAgICAg
ICAgc2VsZi5ob3N0ID0gImV4YW1wbGUuY29tIgotICAgICAgICBzZWxmLmJvdF9pZCA9IGJvdF9p
ZAotICAgICAgICBzZWxmLl93b3JrX2l0ZW1zID0gd29ya19pdGVtcyBvciBbXQotCi0gICAgZGVm
IHBhdGNoX3N0YXR1cyhzZWxmLCBxdWV1ZV9uYW1lLCBwYXRjaF9pZCk6Ci0gICAgICAgIHJldHVy
biBOb25lCi0KLSAgICBkZWYgc3ZuX3JldmlzaW9uKHNlbGYsIHN2bl9yZXZpc2lvbik6Ci0gICAg
ICAgIHJldHVybiBOb25lCi0KLSAgICBkZWYgbmV4dF93b3JrX2l0ZW0oc2VsZiwgcXVldWVfbmFt
ZSk6Ci0gICAgICAgIGlmIG5vdCBzZWxmLl93b3JrX2l0ZW1zOgotICAgICAgICAgICAgcmV0dXJu
IE5vbmUKLSAgICAgICAgcmV0dXJuIHNlbGYuX3dvcmtfaXRlbXMucG9wKDApCi0KLSAgICBkZWYg
cmVsZWFzZV93b3JrX2l0ZW0oc2VsZiwgcXVldWVfbmFtZSwgcGF0Y2gpOgotICAgICAgICBfbG9n
LmluZm8oIk1PQ0s6IHJlbGVhc2Vfd29ya19pdGVtOiAlcyAlcyIgJSAocXVldWVfbmFtZSwgcGF0
Y2guaWQoKSkpCi0KLSAgICBkZWYgcmVsZWFzZV9sb2NrKHNlbGYsIHF1ZXVlX25hbWUsIHBhdGNo
KToKLSAgICAgICAgX2xvZy5pbmZvKCJNT0NLOiByZWxlYXNlX2xvY2s6ICVzICVzIiAlIChxdWV1
ZV9uYW1lLCBwYXRjaC5pZCgpKSkKLQotICAgIGRlZiB1cGRhdGVfd29ya19pdGVtcyhzZWxmLCBx
dWV1ZV9uYW1lLCBoaWdoX3ByaW9yaXR5X3dvcmtfaXRlbXMsIHdvcmtfaXRlbXMpOgotICAgICAg
ICBzZWxmLl93b3JrX2l0ZW1zID0gd29ya19pdGVtcwotICAgICAgICBfbG9nLmluZm8oIk1PQ0s6
IHVwZGF0ZV93b3JrX2l0ZW1zOiAlcyAlcyIgJSAocXVldWVfbmFtZSwgaGlnaF9wcmlvcml0eV93
b3JrX2l0ZW1zICsgd29ya19pdGVtcykpCi0KLSAgICBkZWYgc3VibWl0X3RvX2V3cyhzZWxmLCBw
YXRjaF9pZCk6Ci0gICAgICAgIF9sb2cuaW5mbygiTU9DSzogc3VibWl0X3RvX29sZF9ld3M6ICVz
IiAlIChwYXRjaF9pZCkpCi0KLSAgICBkZWYgdXBkYXRlX3N0YXR1cyhzZWxmLCBxdWV1ZV9uYW1l
LCBzdGF0dXMsIHBhdGNoPU5vbmUsIHJlc3VsdHNfZmlsZT1Ob25lKToKLSAgICAgICAgX2xvZy5p
bmZvKCJNT0NLOiB1cGRhdGVfc3RhdHVzOiAlcyAlcyIgJSAocXVldWVfbmFtZSwgc3RhdHVzKSkK
LSAgICAgICAgcmV0dXJuIDE4NwotCi0gICAgZGVmIHVwZGF0ZV9zdm5fcmV2aXNpb24oc2VsZiwg
c3ZuX3JldmlzaW9uLCBicm9rZW5fYm90KToKLSAgICAgICAgcmV0dXJuIDE5MQotCi0gICAgZGVm
IHJlc3VsdHNfdXJsX2Zvcl9zdGF0dXMoc2VsZiwgc3RhdHVzX2lkKToKLSAgICAgICAgcmV0dXJu
ICJodHRwOi8vZHVtbXlfdXJsIgpJbmRleDogVG9vbHMvU2NyaXB0cy93ZWJraXRweS90b29sL21h
aW4ucHkKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gVG9vbHMvU2NyaXB0cy93ZWJraXRweS90b29sL21haW4ucHkJ
KHJldmlzaW9uIDI2MTQwMSkKKysrIFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvdG9vbC9tYWluLnB5
CSh3b3JraW5nIGNvcHkpCkBAIC0zNyw3ICszNyw2IEBAIGZyb20gd2Via2l0cHkuY29tbW9uLmNv
bmZpZy5wb3J0cyBpbXBvcnQKIGZyb20gd2Via2l0cHkuY29tbW9uLmhvc3QgaW1wb3J0IEhvc3QK
IGZyb20gd2Via2l0cHkuY29tbW9uLm5ldC5pcmMgaW1wb3J0IGlyY3Byb3h5CiBmcm9tIHdlYmtp
dHB5LmNvbW1vbi5uZXQuZXdzc2VydmVyIGltcG9ydCBFV1NTZXJ2ZXIKLWZyb20gd2Via2l0cHku
Y29tbW9uLm5ldC5zdGF0dXNzZXJ2ZXIgaW1wb3J0IFN0YXR1c1NlcnZlcgogZnJvbSB3ZWJraXRw
eS50b29sLm11bHRpY29tbWFuZHRvb2wgaW1wb3J0IE11bHRpQ29tbWFuZFRvb2wKIGZyb20gd2Vi
a2l0cHkudG9vbCBpbXBvcnQgY29tbWFuZHMKIApAQCAtNDYsOCArNDUsNiBAQCBjbGFzcyBXZWJL
aXRQYXRjaChNdWx0aUNvbW1hbmRUb29sLCBIb3N0CiAgICAgZ2xvYmFsX29wdGlvbnMgPSBbCiAg
ICAgICAgIG1ha2Vfb3B0aW9uKCItdiIsICItLXZlcmJvc2UiLCBhY3Rpb249InN0b3JlX3RydWUi
LCBkZXN0PSJ2ZXJib3NlIiwgZGVmYXVsdD1GYWxzZSwgaGVscD0iZW5hYmxlIGFsbCBsb2dnaW5n
IiksCiAgICAgICAgIG1ha2Vfb3B0aW9uKCItZCIsICItLWRpcmVjdG9yeSIsIGFjdGlvbj0iYXBw
ZW5kIiwgZGVzdD0icGF0Y2hfZGlyZWN0b3JpZXMiLCBkZWZhdWx0PVtdLCBoZWxwPSJEaXJlY3Rv
cnkgdG8gbG9vayBhdCBmb3IgY2hhbmdlZCBmaWxlcyIpLAotICAgICAgICBtYWtlX29wdGlvbigi
LS1zdGF0dXMtaG9zdCIsIGFjdGlvbj0ic3RvcmUiLCBkZXN0PSJzdGF0dXNfaG9zdCIsIHR5cGU9
InN0cmluZyIsIGhlbHA9Ikhvc3RuYW1lIChlLmcuIGxvY2FsaG9zdCBvciBjb21taXQud2Via2l0
Lm9yZykgd2hlcmUgc3RhdHVzIHVwZGF0ZXMgc2hvdWxkIGJlIHBvc3RlZC4iKSwKLSAgICAgICAg
bWFrZV9vcHRpb24oIi0tYm90LWlkIiwgYWN0aW9uPSJzdG9yZSIsIGRlc3Q9ImJvdF9pZCIsIHR5
cGU9InN0cmluZyIsIGhlbHA9IklkZW50aWZpZXIgZm9yIHRoaXMgYm90IChpZiBtdWx0aXBsZSBi
b3RzIGFyZSBydW5uaW5nIGZvciBhIHF1ZXVlKSIpLAogICAgICAgICBtYWtlX29wdGlvbigiLS1p
cmMtcGFzc3dvcmQiLCBhY3Rpb249InN0b3JlIiwgZGVzdD0iaXJjX3Bhc3N3b3JkIiwgdHlwZT0i
c3RyaW5nIiwgaGVscD0iUGFzc3dvcmQgdG8gdXNlIHdoZW4gY29tbXVuaWNhdGluZyB2aWEgSVJD
LiIpLAogICAgICAgICBtYWtlX29wdGlvbigiLS1zZWNvbmRzLXRvLXNsZWVwIiwgYWN0aW9uPSJz
dG9yZSIsIGRlZmF1bHQ9MTIwLCB0eXBlPSJpbnQiLCBoZWxwPSJOdW1iZXIgb2Ygc2Vjb25kcyB0
byBzbGVlcCBpbiB0aGUgdGFzayBxdWV1ZS4iKSwKICAgICAgICAgbWFrZV9vcHRpb24oIi0tcG9y
dCIsIGFjdGlvbj0ic3RvcmUiLCBkZXN0PSJwb3J0IiwgZGVmYXVsdD1Ob25lLCBoZWxwPSJTcGVj
aWZ5IGEgcG9ydCAoZS5nLiwgbWFjLCBndGssIC4uLikuIiksCkBAIC01Nyw3ICs1NCw2IEBAIGNs
YXNzIFdlYktpdFBhdGNoKE11bHRpQ29tbWFuZFRvb2wsIEhvc3QKICAgICAgICAgTXVsdGlDb21t
YW5kVG9vbC5fX2luaXRfXyhzZWxmKQogICAgICAgICBIb3N0Ll9faW5pdF9fKHNlbGYpCiAgICAg
ICAgIHNlbGYuX3BhdGggPSBwYXRoCi0gICAgICAgIHNlbGYuc3RhdHVzX3NlcnZlciA9IFN0YXR1
c1NlcnZlcigpCiAgICAgICAgIHNlbGYuZXdzX3NlcnZlciA9IEVXU1NlcnZlcigpCiAKICAgICAg
ICAgc2VsZi53YWtldXBfZXZlbnQgPSB0aHJlYWRpbmcuRXZlbnQoKQpAQCAtOTQsMTAgKzkwLDYg
QEAgY2xhc3MgV2ViS2l0UGF0Y2goTXVsdGlDb21tYW5kVG9vbCwgSG9zdAogICAgICMgRklYTUU6
IFRoaXMgbWF5IGJlIHVubmVjZXNzYXJ5IHNpbmNlIHdlIHBhc3MgZ2xvYmFsIG9wdGlvbnMgdG8g
YWxsIGNvbW1hbmRzIGR1cmluZyBleGVjdXRlKCkgYXMgd2VsbC4KICAgICBkZWYgaGFuZGxlX2ds
b2JhbF9vcHRpb25zKHNlbGYsIG9wdGlvbnMpOgogICAgICAgICBzZWxmLmluaXRpYWxpemVfc2Nt
KG9wdGlvbnMucGF0Y2hfZGlyZWN0b3JpZXMpCi0gICAgICAgIGlmIG9wdGlvbnMuc3RhdHVzX2hv
c3Q6Ci0gICAgICAgICAgICBzZWxmLnN0YXR1c19zZXJ2ZXIuc2V0X2hvc3Qob3B0aW9ucy5zdGF0
dXNfaG9zdCkKLSAgICAgICAgaWYgb3B0aW9ucy5ib3RfaWQ6Ci0gICAgICAgICAgICBzZWxmLnN0
YXR1c19zZXJ2ZXIuc2V0X2JvdF9pZChvcHRpb25zLmJvdF9pZCkKICAgICAgICAgaWYgb3B0aW9u
cy5pcmNfcGFzc3dvcmQ6CiAgICAgICAgICAgICBzZWxmLmlyY19wYXNzd29yZCA9IG9wdGlvbnMu
aXJjX3Bhc3N3b3JkCiAgICAgICAgICMgSWYgb3B0aW9ucy5wb3J0IGlzIE5vbmUsIHdlJ2xsIGdl
dCB0aGUgZGVmYXVsdCBwb3J0IGZvciB0aGlzIHBsYXRmb3JtLgpJbmRleDogVG9vbHMvU2NyaXB0
cy93ZWJraXRweS90b29sL21vY2t0b29sLnB5Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFRvb2xzL1NjcmlwdHMv
d2Via2l0cHkvdG9vbC9tb2NrdG9vbC5weQkocmV2aXNpb24gMjYxNDAxKQorKysgVG9vbHMvU2Ny
aXB0cy93ZWJraXRweS90b29sL21vY2t0b29sLnB5CSh3b3JraW5nIGNvcHkpCkBAIC0zMiw3ICsz
Miw2IEBAIGltcG9ydCB0aHJlYWRpbmcKIGZyb20gd2Via2l0cHkuY29tbW9uLmhvc3RfbW9jayBp
bXBvcnQgTW9ja0hvc3QKIGZyb20gd2Via2l0cHkuY29tbW9uLm5ldC5idWlsZGJvdC5idWlsZGJv
dF9tb2NrIGltcG9ydCBNb2NrQnVpbGRCb3QKIGZyb20gd2Via2l0cHkuY29tbW9uLm5ldC5ld3Nz
ZXJ2ZXJfbW9jayBpbXBvcnQgTW9ja0VXU1NlcnZlcgotZnJvbSB3ZWJraXRweS5jb21tb24ubmV0
LnN0YXR1c3NlcnZlcl9tb2NrIGltcG9ydCBNb2NrU3RhdHVzU2VydmVyCiBmcm9tIHdlYmtpdHB5
LmNvbW1vbi5uZXQuaXJjLmlyY19tb2NrIGltcG9ydCBNb2NrSVJDCiAKICMgRklYTUU6IE9sZC1z
dHlsZSAiUG9ydHMiIG5lZWQgdG8gZGllIGFuZCBiZSByZXBsYWNlZCBieSBtb2Rlcm4gbGF5b3V0
X3Rlc3RzLnBvcnQgd2hpY2ggbmVlZHMgdG8gbW92ZSB0byBjb21tb24uCkBAIC02Nyw3ICs2Niw2
IEBAIGNsYXNzIE1vY2tUb29sKE1vY2tIb3N0KToKICAgICAgICAgTW9ja0hvc3QuX19pbml0X18o
c2VsZiwgKmFyZ3MsICoqa3dhcmdzKQogCiAgICAgICAgIHNlbGYuX2RlcHJlY2F0ZWRfcG9ydCA9
IE1vY2tQb3J0KCkKLSAgICAgICAgc2VsZi5zdGF0dXNfc2VydmVyID0gTW9ja1N0YXR1c1NlcnZl
cigpCiAgICAgICAgIHNlbGYuZXdzX3NlcnZlciA9IE1vY2tFV1NTZXJ2ZXIoKQogCiAgICAgICAg
IHNlbGYuX2lyYyA9IE5vbmUKSW5kZXg6IFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvdG9vbC9ib3Qv
Ym90aW5mby5weQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9TY3JpcHRzL3dlYmtpdHB5L3Rvb2wvYm90
L2JvdGluZm8ucHkJKHJldmlzaW9uIDI2MTQwMSkKKysrIFRvb2xzL1NjcmlwdHMvd2Via2l0cHkv
dG9vbC9ib3QvYm90aW5mby5weQkod29ya2luZyBjb3B5KQpAQCAtMzQsNyArMzQsNCBAQCBjbGFz
cyBCb3RJbmZvKG9iamVjdCk6CiAgICAgICAgIHNlbGYuX3BvcnRfbmFtZSA9IHBvcnRfbmFtZQog
CiAgICAgZGVmIHN1bW1hcnlfdGV4dChzZWxmKToKLSAgICAgICAgIyBib3RfaWQgaXMgYWxzbyBz
dG9yZWQgb24gdGhlIG9wdGlvbnMgZGljdGlvbmFyeSBvbiB0aGUgdG9vbC4KLSAgICAgICAgYm90
X2lkID0gc2VsZi5fdG9vbC5zdGF0dXNfc2VydmVyLmJvdF9pZAotICAgICAgICBib3RfaWRfc3Ry
aW5nID0gIkJvdDogJXMgICIgJSAoYm90X2lkKSBpZiBib3RfaWQgZWxzZSAiIgotICAgICAgICBy
ZXR1cm4gIiVzUG9ydDogJXMgIFBsYXRmb3JtOiAlcyIgJSAoYm90X2lkX3N0cmluZywgc2VsZi5f
cG9ydF9uYW1lLCBzZWxmLl90b29sLnBsYXRmb3JtLmRpc3BsYXlfbmFtZSgpKQorICAgICAgICBy
ZXR1cm4gIlBvcnQ6ICVzICBQbGF0Zm9ybTogJXMiICUgKHNlbGYuX3BvcnRfbmFtZSwgc2VsZi5f
dG9vbC5wbGF0Zm9ybS5kaXNwbGF5X25hbWUoKSkKSW5kZXg6IFRvb2xzL1NjcmlwdHMvd2Via2l0
cHkvdG9vbC9ib3QvYm90aW5mb191bml0dGVzdC5weQo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9TY3Jp
cHRzL3dlYmtpdHB5L3Rvb2wvYm90L2JvdGluZm9fdW5pdHRlc3QucHkJKHJldmlzaW9uIDI2MTQw
MSkKKysrIFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvdG9vbC9ib3QvYm90aW5mb191bml0dGVzdC5w
eQkod29ya2luZyBjb3B5KQpAQCAtMzAsNyArMzAsNiBAQCBpbXBvcnQgdW5pdHRlc3QKIAogZnJv
bSB3ZWJraXRweS50b29sLmJvdC5ib3RpbmZvIGltcG9ydCBCb3RJbmZvCiBmcm9tIHdlYmtpdHB5
LnRvb2wubW9ja3Rvb2wgaW1wb3J0IE1vY2tUb29sCi1mcm9tIHdlYmtpdHB5LmNvbW1vbi5uZXQu
c3RhdHVzc2VydmVyX21vY2sgaW1wb3J0IE1vY2tTdGF0dXNTZXJ2ZXIKIGZyb20gd2Via2l0cHku
cG9ydC50ZXN0IGltcG9ydCBUZXN0UG9ydAogCiAKQEAgLTM4LDUgKzM3LDQgQEAgY2xhc3MgQm90
SW5mb1Rlc3QodW5pdHRlc3QuVGVzdENhc2UpOgogCiAgICAgZGVmIHRlc3Rfc3VtbWFyeV90ZXh0
KHNlbGYpOgogICAgICAgICB0b29sID0gTW9ja1Rvb2woKQotICAgICAgICB0b29sLnN0YXR1c19z
ZXJ2ZXIgPSBNb2NrU3RhdHVzU2VydmVyKCJNb2NrQm90SWQiKQotICAgICAgICBzZWxmLmFzc2Vy
dEVxdWFsKEJvdEluZm8odG9vbCwgJ3BvcnQtbmFtZScpLnN1bW1hcnlfdGV4dCgpLCAiQm90OiBN
b2NrQm90SWQgIFBvcnQ6IHBvcnQtbmFtZSAgUGxhdGZvcm06IE1vY2tQbGF0Zm9ybSAxLjAiKQor
ICAgICAgICBzZWxmLmFzc2VydEVxdWFsKEJvdEluZm8odG9vbCwgJ3BvcnQtbmFtZScpLnN1bW1h
cnlfdGV4dCgpLCAiUG9ydDogcG9ydC1uYW1lICBQbGF0Zm9ybTogTW9ja1BsYXRmb3JtIDEuMCIp
CkluZGV4OiBUb29scy9TY3JpcHRzL3dlYmtpdHB5L3Rvb2wvYm90L2ZsYWt5dGVzdHJlcG9ydGVy
LnB5Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvdG9vbC9ib3QvZmxha3l0
ZXN0cmVwb3J0ZXIucHkJKHJldmlzaW9uIDI2MTQwMSkKKysrIFRvb2xzL1NjcmlwdHMvd2Via2l0
cHkvdG9vbC9ib3QvZmxha3l0ZXN0cmVwb3J0ZXIucHkJKHdvcmtpbmcgY29weSkKQEAgLTE1Niwx
NSArMTU2LDE0IEBAIElmIHlvdSB3b3VsZCBsaWtlIHRvIHRyYWNrIHRoaXMgdGVzdCBmaXgKICAg
ICAgICAgIyBDaGVjayB0byBtYWtlIHN1cmUgdGhhdCB0aGUgcGF0aCBtYWtlcyBzZW5zZS4KICAg
ICAgICAgIyBTaW5jZSB3ZSdyZSBub3QgYWN0dWFsbHkgZ2V0dGluZyB0aGlzIHBhdGggZnJvbSB0
aGUgcmVzdWx0cy5odG1sCiAgICAgICAgICMgdGhlcmUgaXMgYSBjaGFuY2UgaXQncyB3cm9uZy4K
LSAgICAgICAgYm90X2lkID0gc2VsZi5fdG9vbC5zdGF0dXNfc2VydmVyLmJvdF9pZCBvciAiYm90
IgogICAgICAgICBhcmNoaXZlX3BhdGggPSBzZWxmLl9maW5kX2luX2FyY2hpdmUocmVzdWx0c19k
aWZmX3BhdGgsIHJlc3VsdHNfYXJjaGl2ZV96aXApCiAgICAgICAgIGlmIGFyY2hpdmVfcGF0aDoK
ICAgICAgICAgICAgIHJlc3VsdHNfZGlmZiA9IHJlc3VsdHNfYXJjaGl2ZV96aXAucmVhZChhcmNo
aXZlX3BhdGgpCi0gICAgICAgICAgICBkZXNjcmlwdGlvbiA9ICJGYWlsdXJlIGRpZmYgZnJvbSAl
cyIgJSBib3RfaWQKKyAgICAgICAgICAgIGRlc2NyaXB0aW9uID0gIkZhaWx1cmUgZGlmZiBmcm9t
IGJvdCIKICAgICAgICAgICAgIHNlbGYuX3Rvb2wuYnVncy5hZGRfYXR0YWNobWVudF90b19idWco
Zmxha2VfYnVnX2lkLCByZXN1bHRzX2RpZmYsIGRlc2NyaXB0aW9uLCBmaWxlbmFtZT0iZmFpbHVy
ZS5kaWZmIikKICAgICAgICAgZWxzZToKICAgICAgICAgICAgIF9sb2cud2FybigiJXMgZG9lcyBu
b3QgZXhpc3QgaW4gcmVzdWx0cyBhcmNoaXZlLCB1cGxvYWRpbmcgZW50aXJlIGFyY2hpdmUuIiAl
IHJlc3VsdHNfZGlmZl9wYXRoKQotICAgICAgICAgICAgZGVzY3JpcHRpb24gPSAiQXJjaGl2ZSBv
ZiBsYXlvdXQtdGVzdC1yZXN1bHRzIGZyb20gJXMiICUgYm90X2lkCisgICAgICAgICAgICBkZXNj
cmlwdGlvbiA9ICJBcmNoaXZlIG9mIGxheW91dC10ZXN0LXJlc3VsdHMgZnJvbSBib3QiCiAgICAg
ICAgICAgICAjIHJlc3VsdHNfYXJjaGl2ZSBpcyBhIFppcEZpbGUgb2JqZWN0LCBncmFiIHRoZSBG
aWxlIG9iamVjdCAoLmZwKSB0byBwYXNzIHRvIE1lY2hhbml6ZSBmb3IgdXBsb2FkaW5nLgogICAg
ICAgICAgICAgcmVzdWx0c19hcmNoaXZlX2ZpbGUgPSByZXN1bHRzX2FyY2hpdmVfemlwLmZwCiAg
ICAgICAgICAgICAjIFJld2luZCB0aGUgZmlsZSBvYmplY3QgdG8gc3RhcnQgKHNpbmNlIE1lY2hh
bml6ZSB3b24ndCBkbyB0aGF0IGF1dG9tYXRpY2FsbHkpCkluZGV4OiBUb29scy9TY3JpcHRzL3dl
YmtpdHB5L3Rvb2wvYm90L2ZsYWt5dGVzdHJlcG9ydGVyX3VuaXR0ZXN0LnB5Cj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvdG9vbC9ib3QvZmxha3l0ZXN0cmVwb3J0ZXJfdW5p
dHRlc3QucHkJKHJldmlzaW9uIDI2MTQwMSkKKysrIFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvdG9v
bC9ib3QvZmxha3l0ZXN0cmVwb3J0ZXJfdW5pdHRlc3QucHkJKHdvcmtpbmcgY29weSkKQEAgLTM2
LDcgKzM2LDYgQEAgZnJvbSB3ZWJraXRweS5sYXlvdXRfdGVzdHMubW9kZWxzIGltcG9ydAogZnJv
bSB3ZWJraXRweS50aGlyZHBhcnR5Lm1vY2sgaW1wb3J0IE1vY2sKIGZyb20gd2Via2l0cHkudG9v
bC5ib3QuZmxha3l0ZXN0cmVwb3J0ZXIgaW1wb3J0IEZsYWt5VGVzdFJlcG9ydGVyCiBmcm9tIHdl
YmtpdHB5LnRvb2wubW9ja3Rvb2wgaW1wb3J0IE1vY2tUb29sCi1mcm9tIHdlYmtpdHB5LmNvbW1v
bi5uZXQuc3RhdHVzc2VydmVyX21vY2sgaW1wb3J0IE1vY2tTdGF0dXNTZXJ2ZXIKIAogCiAjIENy
ZWF0aW5nIGZha2UgQ29tbWl0SW5mb3MgaXMgYSBwYWluLCBzbyB3ZSB1c2UgYSBtb2NrIG9uZSBo
ZXJlLgpAQCAtMTAxLDcgKzEwMCw2IEBAIGJsb2NrZWQ6IDUwODU2CiAgICAgZGVmIHRlc3RfcmVw
b3J0X2ZsYWt5X3Rlc3RzX2NyZWF0aW5nX2J1ZyhzZWxmKToKICAgICAgICAgdG9vbCA9IE1vY2tU
b29sKCkKICAgICAgICAgdG9vbC5maWxlc3lzdGVtID0gTW9ja0ZpbGVTeXN0ZW0oeyIvbW9jay1y
ZXN1bHRzL2Zvby9iYXItZGlmZnMudHh0IjogIm1vY2sifSkKLSAgICAgICAgdG9vbC5zdGF0dXNf
c2VydmVyID0gTW9ja1N0YXR1c1NlcnZlcihib3RfaWQ9Im1vY2stYm90LWlkIikKICAgICAgICAg
cmVwb3J0ZXIgPSBGbGFreVRlc3RSZXBvcnRlcih0b29sLCAnZHVtbXktcXVldWUnKQogICAgICAg
ICByZXBvcnRlci5fbG9va3VwX2J1Z19mb3JfZmxha3lfdGVzdCA9IGxhbWJkYSBidWdfaWQ6IE5v
bmUKICAgICAgICAgcGF0Y2ggPSB0b29sLmJ1Z3MuZmV0Y2hfYXR0YWNobWVudCgxMDAwMCkKQEAg
LTExNSw3ICsxMTMsNyBAQCBmb28vYmFyLmh0bWwgd2FzIGF1dGhvcmVkIGJ5IGFiYXJ0aEB3ZWJr
CiBodHRwczovL3RyYWMud2Via2l0Lm9yZy9icm93c2VyL3RydW5rL0xheW91dFRlc3RzL2Zvby9i
YXIuaHRtbAogCiBUaGUgZHVtbXktcXVldWUganVzdCBzYXcgZm9vL2Jhci5odG1sIGZsYWtlICh0
ZXh0IGRpZmYpIHdoaWxlIHByb2Nlc3NpbmcgYXR0YWNobWVudCAxMDAwMCBvbiBidWcgNTAwMDAu
Ci1Cb3Q6IG1vY2stYm90LWlkICBQb3J0OiBNb2NrUG9ydCAgUGxhdGZvcm06IE1vY2tQbGF0Zm9y
bSAxLjAKK1BvcnQ6IE1vY2tQb3J0ICBQbGF0Zm9ybTogTW9ja1BsYXRmb3JtIDEuMAogCiBUaGUg
Ym90cyB3aWxsIHVwZGF0ZSB0aGlzIHdpdGggaW5mb3JtYXRpb24gZnJvbSBlYWNoIG5ldyBmYWls
dXJlLgogCkBAIC0xMjYsNyArMTI0LDcgQEAgSWYgeW91IHdvdWxkIGxpa2UgdG8gdHJhY2sgdGhp
cyB0ZXN0IGZpeAogY29tcG9uZW50OiBUb29scyAvIFRlc3RzCiBjYzogYWJhcnRoQHdlYmtpdC5v
cmcKIGJsb2NrZWQ6IDUwODU2Ci1NT0NLIGFkZF9hdHRhY2htZW50X3RvX2J1ZzogYnVnX2lkPTYw
MDAxLCBkZXNjcmlwdGlvbj1GYWlsdXJlIGRpZmYgZnJvbSBtb2NrLWJvdC1pZCBmaWxlbmFtZT1m
YWlsdXJlLmRpZmYgbWltZXR5cGU9Tm9uZQorTU9DSyBhZGRfYXR0YWNobWVudF90b19idWc6IGJ1
Z19pZD02MDAwMSwgZGVzY3JpcHRpb249RmFpbHVyZSBkaWZmIGZyb20gYm90IGZpbGVuYW1lPWZh
aWx1cmUuZGlmZiBtaW1ldHlwZT1Ob25lCiBNT0NLIGJ1ZyBjb21tZW50OiBidWdfaWQ9NTAwMDAs
IGNjPU5vbmUsIHNlZV9hbHNvPU5vbmUKIC0tLSBCZWdpbiBjb21tZW50IC0tLQogVGhlIGR1bW15
LXF1ZXVlIGVuY291bnRlcmVkIHRoZSBmb2xsb3dpbmcgZmxha3kgdGVzdHMgd2hpbGUgcHJvY2Vz
c2luZyBhdHRhY2htZW50IDEwMDAwOgpJbmRleDogVG9vbHMvU2NyaXB0cy93ZWJraXRweS90b29s
L2JvdC9xdWV1ZWVuZ2luZS5weQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9TY3JpcHRzL3dlYmtpdHB5
L3Rvb2wvYm90L3F1ZXVlZW5naW5lLnB5CShyZXZpc2lvbiAyNjE0MDEpCisrKyBUb29scy9TY3Jp
cHRzL3dlYmtpdHB5L3Rvb2wvYm90L3F1ZXVlZW5naW5lLnB5CSh3b3JraW5nIGNvcHkpCkBAIC0x
MjcsNyArMTI3LDYgQEAgY2xhc3MgUXVldWVFbmdpbmU6CiAKICAgICBkZWYgX3N0b3BwaW5nKHNl
bGYsIG1lc3NhZ2UpOgogICAgICAgICBfbG9nLmluZm8obWVzc2FnZSkKLSAgICAgICAgc2VsZi5f
ZGVsZWdhdGUuc3RvcF93b3JrX3F1ZXVlKG1lc3NhZ2UpCiAgICAgICAgIGxvZ2dpbmcuZ2V0TG9n
Z2VyKCJ3ZWJraXRweSIpLnJlbW92ZUhhbmRsZXIoc2VsZi5fbG9nX2hhbmRsZXIpCiAgICAgICAg
ICMgQmUgY2FyZWZ1bCB0byBzaHV0IGRvd24gb3VyIE91dHB1dFRlZSBvciB0aGUgdW5pdCB0ZXN0
cyB3aWxsIGJlIHVuaGFwcHkuCiAgICAgICAgIHNlbGYuX2Vuc3VyZV93b3JrX2xvZ19jbG9zZWQo
KQpJbmRleDogVG9vbHMvU2NyaXB0cy93ZWJraXRweS90b29sL2JvdC9xdWV1ZWVuZ2luZV91bml0
dGVzdC5weQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9TY3JpcHRzL3dlYmtpdHB5L3Rvb2wvYm90L3F1
ZXVlZW5naW5lX3VuaXR0ZXN0LnB5CShyZXZpc2lvbiAyNjE0MDEpCisrKyBUb29scy9TY3JpcHRz
L3dlYmtpdHB5L3Rvb2wvYm90L3F1ZXVlZW5naW5lX3VuaXR0ZXN0LnB5CSh3b3JraW5nIGNvcHkp
CkBAIC01Myw3ICs1Myw2IEBAIGNsYXNzIExvZ2dpbmdEZWxlZ2F0ZShRdWV1ZUVuZ2luZURlbGVn
YXQKICAgICAgICAgJ3Byb2Nlc3Nfd29ya19pdGVtJywKICAgICAgICAgJ3dvcmtfaXRlbV9sb2df
cGF0aCcsCiAgICAgICAgICdzaG91bGRfY29udGludWVfd29ya19xdWV1ZScsCi0gICAgICAgICdz
dG9wX3dvcmtfcXVldWUnLAogICAgIF0KIAogICAgIGRlZiByZWNvcmQoc2VsZiwgbWV0aG9kX25h
bWUpOgpAQCAtMTIyLDcgKzEyMSw2IEBAIGNsYXNzIFF1ZXVlRW5naW5lVGVzdCh1bml0dGVzdC5U
ZXN0Q2FzZSkKICAgICAgICAgZXhwZWN0ZWRfY2FsbGJhY2tzID0gTG9nZ2luZ0RlbGVnYXRlLmV4
cGVjdGVkX2NhbGxiYWNrc1s6XQogICAgICAgICBleHBlY3RlZF9jYWxsYmFja3MucmVtb3ZlKCd3
b3JrX2l0ZW1fbG9nX3BhdGgnKQogICAgICAgICBzZWxmLl9ydW5fZW5naW5lKGRlbGVnYXRlKQot
ICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGRlbGVnYXRlLnN0b3BfbWVzc2FnZSwgIkRlbGVnYXRl
IHRlcm1pbmF0ZWQgcXVldWUuIikKICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChkZWxlZ2F0ZS5f
Y2FsbGJhY2tzLCBleHBlY3RlZF9jYWxsYmFja3MpCiAgICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZShv
cy5wYXRoLmV4aXN0cyhvcy5wYXRoLmpvaW4oc2VsZi50ZW1wX2RpciwgInF1ZXVlX2xvZ19wYXRo
IikpKQogCkBAIC0xNTEsMTYgKzE0OSwxMSBAQCBjbGFzcyBRdWV1ZUVuZ2luZVRlc3QodW5pdHRl
c3QuVGVzdENhc2UpCiAKICAgICBkZWYgX3Rlc3RfdGVybWluYXRpbmdfcXVldWUoc2VsZiwgZXhj
ZXB0aW9uLCB0ZXJtaW5hdGlvbl9tZXNzYWdlKToKICAgICAgICAgd29ya19pdGVtX2luZGV4ID0g
TG9nZ2luZ0RlbGVnYXRlLmV4cGVjdGVkX2NhbGxiYWNrcy5pbmRleCgncHJvY2Vzc193b3JrX2l0
ZW0nKQotICAgICAgICAjIFRoZSB0ZXJtaW5hdGluZyBlcnJvciBzaG91bGQgYmUgaGFuZGxlZCBy
aWdodCBhZnRlciBwcm9jZXNzX3dvcmtfaXRlbS4KLSAgICAgICAgIyBUaGVyZSBzaG91bGQgYmUg
bm8gb3RoZXIgY2FsbGJhY2tzIGFmdGVyIHN0b3Bfd29ya19xdWV1ZS4KICAgICAgICAgZXhwZWN0
ZWRfY2FsbGJhY2tzID0gTG9nZ2luZ0RlbGVnYXRlLmV4cGVjdGVkX2NhbGxiYWNrc1s6d29ya19p
dGVtX2luZGV4ICsgMV0KLSAgICAgICAgZXhwZWN0ZWRfY2FsbGJhY2tzLmFwcGVuZCgic3RvcF93
b3JrX3F1ZXVlIikKIAogICAgICAgICBkZWxlZ2F0ZSA9IFJhaXNpbmdEZWxlZ2F0ZShzZWxmLCBl
eGNlcHRpb24pCiAgICAgICAgIHNlbGYuX3J1bl9lbmdpbmUoZGVsZWdhdGUsIHRlcm1pbmF0aW9u
X21lc3NhZ2U9dGVybWluYXRpb25fbWVzc2FnZSkKLQogICAgICAgICBzZWxmLmFzc2VydEVxdWFs
KGRlbGVnYXRlLl9jYWxsYmFja3MsIGV4cGVjdGVkX2NhbGxiYWNrcykKLSAgICAgICAgc2VsZi5h
c3NlcnRFcXVhbChkZWxlZ2F0ZS5zdG9wX21lc3NhZ2UsIHRlcm1pbmF0aW9uX21lc3NhZ2UpCiAK
ICAgICBkZWYgdGVzdF90ZXJtaW5hdGluZ19lcnJvcihzZWxmKToKICAgICAgICAgc2VsZi5fdGVz
dF90ZXJtaW5hdGluZ19xdWV1ZShLZXlib2FyZEludGVycnVwdCgpLCAiVXNlciB0ZXJtaW5hdGVk
IHF1ZXVlLiIpCkluZGV4OiBUb29scy9TY3JpcHRzL3dlYmtpdHB5L3Rvb2wvY29tbWFuZHMvZWFy
bHl3YXJuaW5nc3lzdGVtLnB5Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFRvb2xzL1NjcmlwdHMvd2Via2l0cHkv
dG9vbC9jb21tYW5kcy9lYXJseXdhcm5pbmdzeXN0ZW0ucHkJKHJldmlzaW9uIDI2MTQwMSkKKysr
IFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvdG9vbC9jb21tYW5kcy9lYXJseXdhcm5pbmdzeXN0ZW0u
cHkJKHdvcmtpbmcgY29weSkKQEAgLTg0LDggKzg0LDcgQEAgY2xhc3MgQWJzdHJhY3RFYXJseVdh
cm5pbmdTeXN0ZW0oQWJzdHJhYwogICAgICAgICBpZiBub3QgZXh0cmFfbWVzc2FnZV90ZXh0Ogog
ICAgICAgICAgICAgcmV0dXJuICAjIERvbid0IGNvbW1lbnQgb24gQnVnemlsbGEgaWYgd2UgZG9u
J3QgaGF2ZSBmYWlsaW5nIHRlc3RzLgogCi0gICAgICAgIHJlc3VsdHNfbGluayA9IHRvb2wuc3Rh
dHVzX3NlcnZlci5yZXN1bHRzX3VybF9mb3Jfc3RhdHVzKHN0YXR1c19pZCkKLSAgICAgICAgbWVz
c2FnZSA9ICJBdHRhY2htZW50ICVzIGRpZCBub3QgcGFzcyAlcyAoJXMpOlxuT3V0cHV0OiAlcyIg
JSAocGF0Y2guaWQoKSwgc2VsZi5uYW1lLCBzZWxmLnBvcnRfbmFtZSwgcmVzdWx0c19saW5rKQor
ICAgICAgICBtZXNzYWdlID0gIkF0dGFjaG1lbnQgJXMgZGlkIG5vdCBwYXNzICVzICglcykiICUg
KHBhdGNoLmlkKCksIHNlbGYubmFtZSwgc2VsZi5wb3J0X25hbWUpCiAgICAgICAgIGlmIGV4dHJh
X21lc3NhZ2VfdGV4dDoKICAgICAgICAgICAgIG1lc3NhZ2UgKz0gIlxuXG4lcyIgJSBleHRyYV9t
ZXNzYWdlX3RleHQKICAgICAgICAgIyBGSVhNRTogV2UgbWlnaHQgd2FudCB0byBhZGQgc29tZSB0
ZXh0IGFib3V0IHJlamVjdGluZyBmcm9tIHRoZSBjb21taXQtcXVldWUgaW4KQEAgLTEyMyw3ICsx
MjIsNiBAQCBjbGFzcyBBYnN0cmFjdEVhcmx5V2FybmluZ1N5c3RlbShBYnN0cmFjCiAgICAgICAg
ICAgICByZXN1bHRzX2FyY2hpdmUgPSB0YXNrLnJlc3VsdHNfYXJjaGl2ZV9mcm9tX3BhdGNoX3Rl
c3RfcnVuKHBhdGNoKQogICAgICAgICAgICAgaWYgcmVzdWx0c19hcmNoaXZlOgogICAgICAgICAg
ICAgICAgIHNlbGYuX3VwbG9hZF9yZXN1bHRzX2FyY2hpdmVfZm9yX3BhdGNoKHBhdGNoLCByZXN1
bHRzX2FyY2hpdmUpCi0gICAgICAgICAgICBzZWxmLl9kaWRfZmFpbChwYXRjaCkKICAgICAgICAg
ICAgIHJhaXNlIGUKIAogICAgICMgRWFybHlXYXJuaW5nU3lzdGVtRGVsZWdhdGUgbWV0aG9kcwpA
QCAtMTM1LDExICsxMzMsMTAgQEAgY2xhc3MgQWJzdHJhY3RFYXJseVdhcm5pbmdTeXN0ZW0oQWJz
dHJhYwogICAgICAgICBzZWxmLnJ1bl93ZWJraXRfcGF0Y2goY29tbWFuZCArIFtzZWxmLl9kZXBy
ZWNhdGVkX3BvcnQuZmxhZygpXSArIChbJy0tYXJjaGl0ZWN0dXJlPSVzJyAlIHNlbGYuX3BvcnQu
YXJjaGl0ZWN0dXJlKCldIGlmIHNlbGYuX3BvcnQuYXJjaGl0ZWN0dXJlKCkgYW5kIHNlbGYuX3Bv
cnQuZGlkX292ZXJyaWRlX2FyY2hpdGVjdHVyZSBlbHNlIFtdKSkKIAogICAgIGRlZiBjb21tYW5k
X3Bhc3NlZChzZWxmLCBtZXNzYWdlLCBwYXRjaCk6Ci0gICAgICAgIHNlbGYuX3VwZGF0ZV9zdGF0
dXMobWVzc2FnZSwgcGF0Y2g9cGF0Y2gpCisgICAgICAgIHBhc3MKIAogICAgIGRlZiBjb21tYW5k
X2ZhaWxlZChzZWxmLCBtZXNzYWdlLCBzY3JpcHRfZXJyb3IsIHBhdGNoKToKLSAgICAgICAgZmFp
bHVyZV9sb2cgPSBzZWxmLl9sb2dfZnJvbV9zY3JpcHRfZXJyb3JfZm9yX3VwbG9hZChzY3JpcHRf
ZXJyb3IpCi0gICAgICAgIHJldHVybiBzZWxmLl91cGRhdGVfc3RhdHVzKG1lc3NhZ2UsIHBhdGNo
PXBhdGNoLCByZXN1bHRzX2ZpbGU9ZmFpbHVyZV9sb2cpCisgICAgICAgIHBhc3MKIAogICAgIGRl
ZiB0ZXN0X3Jlc3VsdHMoc2VsZik6CiAgICAgICAgIHJldHVybiBzZWxmLl90ZXN0X3Jlc3VsdHNf
cmVhZGVyLnJlc3VsdHMoKQpJbmRleDogVG9vbHMvU2NyaXB0cy93ZWJraXRweS90b29sL2NvbW1h
bmRzL2Vhcmx5d2FybmluZ3N5c3RlbV91bml0dGVzdC5weQo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9T
Y3JpcHRzL3dlYmtpdHB5L3Rvb2wvY29tbWFuZHMvZWFybHl3YXJuaW5nc3lzdGVtX3VuaXR0ZXN0
LnB5CShyZXZpc2lvbiAyNjE0MDEpCisrKyBUb29scy9TY3JpcHRzL3dlYmtpdHB5L3Rvb2wvY29t
bWFuZHMvZWFybHl3YXJuaW5nc3lzdGVtX3VuaXR0ZXN0LnB5CSh3b3JraW5nIGNvcHkpCkBAIC0x
MzIsMzQgKzEzMiwyNSBAQCBjbGFzcyBFYXJseVdhcm5pbmdTeXN0ZW1UZXN0KFF1ZXVlc1Rlc3Qp
CiAgICAgICAgIH0KIAogICAgICAgICBpZiBld3Muc2hvdWxkX2J1aWxkOgotICAgICAgICAgICAg
YnVpbGRfbGluZSA9ICJSdW5uaW5nOiB3ZWJraXQtcGF0Y2ggYnVpbGQgLS1uby1jbGVhbiAtLW5v
LXVwZGF0ZSAtLWJ1aWxkLXN0eWxlPSUoYnVpbGRfc3R5bGUpcyAtLWdyb3VwPSUoZ3JvdXApcyAt
LXBvcnQ9JShwb3J0KXMlKGFyY2hpdGVjdHVyZSlzXG5NT0NLOiB1cGRhdGVfc3RhdHVzOiAlKG5h
bWUpcyBCdWlsdCBwYXRjaFxuIiAlIHN0cmluZ19yZXBsYWNlbWVudHMKKyAgICAgICAgICAgIGJ1
aWxkX2xpbmUgPSAiUnVubmluZzogd2Via2l0LXBhdGNoIGJ1aWxkIC0tbm8tY2xlYW4gLS1uby11
cGRhdGUgLS1idWlsZC1zdHlsZT0lKGJ1aWxkX3N0eWxlKXMgLS1ncm91cD0lKGdyb3VwKXMgLS1w
b3J0PSUocG9ydClzJShhcmNoaXRlY3R1cmUpc1xuIiAlIHN0cmluZ19yZXBsYWNlbWVudHMKICAg
ICAgICAgZWxzZToKICAgICAgICAgICAgIGJ1aWxkX2xpbmUgPSAiIgogICAgICAgICBzdHJpbmdf
cmVwbGFjZW1lbnRzWydidWlsZF9saW5lJ10gPSBidWlsZF9saW5lCiAKICAgICAgICAgaWYgZXdz
LnJ1bl90ZXN0czoKLSAgICAgICAgICAgIHJ1bl90ZXN0c19saW5lID0gIlJ1bm5pbmc6IHdlYmtp
dC1wYXRjaCBidWlsZC1hbmQtdGVzdCAtLW5vLWNsZWFuIC0tbm8tdXBkYXRlIC0tdGVzdCAtLW5v
bi1pbnRlcmFjdGl2ZSAtLWJ1aWxkLXN0eWxlPSUoYnVpbGRfc3R5bGUpcyAtLWdyb3VwPSUoZ3Jv
dXApcyAtLXBvcnQ9JShwb3J0KXMlKGFyY2hpdGVjdHVyZSlzXG5NT0NLOiB1cGRhdGVfc3RhdHVz
OiAlKG5hbWUpcyBQYXNzZWQgdGVzdHNcbiIgJSBzdHJpbmdfcmVwbGFjZW1lbnRzCisgICAgICAg
ICAgICBydW5fdGVzdHNfbGluZSA9ICJSdW5uaW5nOiB3ZWJraXQtcGF0Y2ggYnVpbGQtYW5kLXRl
c3QgLS1uby1jbGVhbiAtLW5vLXVwZGF0ZSAtLXRlc3QgLS1ub24taW50ZXJhY3RpdmUgLS1idWls
ZC1zdHlsZT0lKGJ1aWxkX3N0eWxlKXMgLS1ncm91cD0lKGdyb3VwKXMgLS1wb3J0PSUocG9ydClz
JShhcmNoaXRlY3R1cmUpc1xuIiAlIHN0cmluZ19yZXBsYWNlbWVudHMKICAgICAgICAgZWxzZToK
ICAgICAgICAgICAgIHJ1bl90ZXN0c19saW5lID0gIiIKICAgICAgICAgc3RyaW5nX3JlcGxhY2Vt
ZW50c1sncnVuX3Rlc3RzX2xpbmUnXSA9IHJ1bl90ZXN0c19saW5lCiAKLSAgICAgICAgaWYgY29u
Y2x1c2l2ZToKLSAgICAgICAgICAgIHJlc3VsdF9saW5lcyA9ICJNT0NLOiB1cGRhdGVfc3RhdHVz
OiAlKG5hbWUpcyBQYXNzXG5NT0NLOiByZWxlYXNlX3dvcmtfaXRlbTogJShuYW1lKXMgMTAwMDBc
biIgJSBzdHJpbmdfcmVwbGFjZW1lbnRzCi0gICAgICAgIGVsc2U6Ci0gICAgICAgICAgICByZXN1
bHRfbGluZXMgPSAiTU9DSzogcmVsZWFzZV9sb2NrOiAlKG5hbWUpcyAxMDAwMFxuIiAlIHN0cmlu
Z19yZXBsYWNlbWVudHMKLSAgICAgICAgc3RyaW5nX3JlcGxhY2VtZW50c1sncmVzdWx0X2xpbmVz
J10gPSByZXN1bHRfbGluZXMKKyAgICAgICAgc3RyaW5nX3JlcGxhY2VtZW50c1sncmVzdWx0X2xp
bmVzJ10gPSAiIgogCiAgICAgICAgIGV4cGVjdGVkX2xvZ3MgPSB7CiAgICAgICAgICAgICAiYmVn
aW5fd29ya19xdWV1ZSI6IHNlbGYuX2RlZmF1bHRfYmVnaW5fd29ya19xdWV1ZV9sb2dzKGV3cy5u
YW1lKSwKLSAgICAgICAgICAgICJwcm9jZXNzX3dvcmtfaXRlbSI6ICIiIk1PQ0s6IHVwZGF0ZV9z
dGF0dXM6ICUobmFtZSlzIFN0YXJ0ZWQgcHJvY2Vzc2luZyBwYXRjaAotUnVubmluZzogd2Via2l0
LXBhdGNoIGNsZWFuIC0tcG9ydD0lKHBvcnQpcyUoYXJjaGl0ZWN0dXJlKXMKLU1PQ0s6IHVwZGF0
ZV9zdGF0dXM6ICUobmFtZSlzIENsZWFuZWQgd29ya2luZyBkaXJlY3RvcnkKKyAgICAgICAgICAg
ICJwcm9jZXNzX3dvcmtfaXRlbSI6ICIiIlJ1bm5pbmc6IHdlYmtpdC1wYXRjaCBjbGVhbiAtLXBv
cnQ9JShwb3J0KXMlKGFyY2hpdGVjdHVyZSlzCiBSdW5uaW5nOiB3ZWJraXQtcGF0Y2ggdXBkYXRl
IC0tcG9ydD0lKHBvcnQpcyUoYXJjaGl0ZWN0dXJlKXMKLU1PQ0s6IHVwZGF0ZV9zdGF0dXM6ICUo
bmFtZSlzIFVwZGF0ZWQgd29ya2luZyBkaXJlY3RvcnkKIFJ1bm5pbmc6IHdlYmtpdC1wYXRjaCBh
cHBseS1hdHRhY2htZW50IC0tbm8tdXBkYXRlIC0tbm9uLWludGVyYWN0aXZlIDEwMDAwIC0tcG9y
dD0lKHBvcnQpcyUoYXJjaGl0ZWN0dXJlKXMKLU1PQ0s6IHVwZGF0ZV9zdGF0dXM6ICUobmFtZSlz
IEFwcGxpZWQgcGF0Y2gKIFJ1bm5pbmc6IHdlYmtpdC1wYXRjaCBjaGVjay1wYXRjaC1yZWxldmFu
Y2UgLS1xdWlldCAtLWdyb3VwPSUoZ3JvdXApcyAtLXBvcnQ9JShwb3J0KXMlKGFyY2hpdGVjdHVy
ZSlzCi1NT0NLOiB1cGRhdGVfc3RhdHVzOiAlKG5hbWUpcyBDaGVja2VkIHJlbGV2YW5jZSBvZiBw
YXRjaAogJShidWlsZF9saW5lKXMlKHJ1bl90ZXN0c19saW5lKXMlKHJlc3VsdF9saW5lcylzIiIi
ICUgc3RyaW5nX3JlcGxhY2VtZW50cywKICAgICAgICAgICAgICJoYW5kbGVfdW5leHBlY3RlZF9l
cnJvciI6ICJNb2NrIGVycm9yIG1lc3NhZ2VcbiIsCiAgICAgICAgICAgICAiaGFuZGxlX3Njcmlw
dF9lcnJvciI6ICJTY3JpcHRFcnJvciBlcnJvciBtZXNzYWdlXG5cbk1PQ0sgb3V0cHV0XG4iLApJ
bmRleDogVG9vbHMvU2NyaXB0cy93ZWJraXRweS90b29sL2NvbW1hbmRzL3BlcmZhbGl6ZXIucHkK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gVG9vbHMvU2NyaXB0cy93ZWJraXRweS90b29sL2NvbW1hbmRzL3BlcmZh
bGl6ZXIucHkJKHJldmlzaW9uIDI2MTQwMSkKKysrIFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvdG9v
bC9jb21tYW5kcy9wZXJmYWxpemVyLnB5CSh3b3JraW5nIGNvcHkpCkBAIC0xOTYsNyArMTk2LDcg
QEAgY2xhc3MgUGVyZmFsaXplcihBYnN0cmFjdFF1ZXVlLCBTdGVwU2VxdQogICAgICAgICByZXR1
cm4gTm9uZQogCiAgICAgZGVmIF9pc19vbGRfZmFpbHVyZShzZWxmLCByZXZpc2lvbik6Ci0gICAg
ICAgIHJldHVybiBzZWxmLl90b29sLnN0YXR1c19zZXJ2ZXIuc3ZuX3JldmlzaW9uKHJldmlzaW9u
KQorICAgICAgICByZXR1cm4gRmFsc2UKIAogICAgIGRlZiBuZXh0X3dvcmtfaXRlbShzZWxmKToK
ICAgICAgICAgc2VsZi5faXJjX2JvdC5wcm9jZXNzX3BlbmRpbmdfbWVzc2FnZXMoKQpJbmRleDog
VG9vbHMvU2NyaXB0cy93ZWJraXRweS90b29sL2NvbW1hbmRzL3F1ZXVlcy5weQo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBUb29scy9TY3JpcHRzL3dlYmtpdHB5L3Rvb2wvY29tbWFuZHMvcXVldWVzLnB5CShyZXZp
c2lvbiAyNjE0MDEpCisrKyBUb29scy9TY3JpcHRzL3dlYmtpdHB5L3Rvb2wvY29tbWFuZHMvcXVl
dWVzLnB5CSh3b3JraW5nIGNvcHkpCkBAIC04Niw4ICs4Niw2IEBAIGNsYXNzIEFic3RyYWN0UXVl
dWUoQ29tbWFuZCwgUXVldWVFbmdpbmUKICAgICAgICAgIyBGSVhNRTogV2UgbXVzdCBhbHdheXMg
cGFzcyBnbG9iYWwgb3B0aW9ucyBhbmQgdGhlaXIgdmFsdWUgaW4gb25lIGFyZ3VtZW50CiAgICAg
ICAgICMgYmVjYXVzZSBvdXIgZ2xvYmFsIG9wdGlvbiBjb2RlIGxvb2tzIGZvciB0aGUgZmlyc3Qg
YXJndW1lbnQgd2hpY2ggZG9lcwogICAgICAgICAjIG5vdCBiZWdpbiB3aXRoICItIiBhbmQgYXNz
dW1lcyB0aGF0IGlzIHRoZSBjb21tYW5kIG5hbWUuCi0gICAgICAgIGlmIHNlbGYuX3Rvb2wuc3Rh
dHVzX3NlcnZlci5ib3RfaWQ6Ci0gICAgICAgICAgICB3ZWJraXRfcGF0Y2hfYXJncyArPSBbIi0t
Ym90LWlkPSVzIiAlIHNlbGYuX3Rvb2wuc3RhdHVzX3NlcnZlci5ib3RfaWRdCiAgICAgICAgIGlm
IHNlbGYuX29wdGlvbnMucG9ydDoKICAgICAgICAgICAgIHdlYmtpdF9wYXRjaF9hcmdzICs9IFsi
LS1wb3J0PSVzIiAlIHNlbGYuX29wdGlvbnMucG9ydF0KICAgICAgICAgd2Via2l0X3BhdGNoX2Fy
Z3MuZXh0ZW5kKGFyZ3MpCkBAIC0xMjIsMTAgKzEyMCw5IEBAIGNsYXNzIEFic3RyYWN0UXVldWUo
Q29tbWFuZCwgUXVldWVFbmdpbmUKICAgICAgICAgICAgICAgICBfbG9nLmVycm9yKCJVc2VyIGRl
Y2xpbmVkLiIpCiAgICAgICAgICAgICAgICAgc3lzLmV4aXQoMSkKICAgICAgICAgX2xvZy5pbmZv
KCJSdW5uaW5nIFdlYktpdCAlcy4iICUgc2VsZi5uYW1lKQotICAgICAgICBzZWxmLl90b29sLnN0
YXR1c19zZXJ2ZXIudXBkYXRlX3N0YXR1cyhzZWxmLm5hbWUsICJTdGFydGluZyBRdWV1ZSIpCiAK
ICAgICBkZWYgc3RvcF93b3JrX3F1ZXVlKHNlbGYsIHJlYXNvbik6Ci0gICAgICAgIHNlbGYuX3Rv
b2wuc3RhdHVzX3NlcnZlci51cGRhdGVfc3RhdHVzKHNlbGYubmFtZSwgIlN0b3BwaW5nIFF1ZXVl
LCByZWFzb246ICVzIiAlIHJlYXNvbikKKyAgICAgICAgcGFzcwogCiAgICAgZGVmIHNob3VsZF9j
b250aW51ZV93b3JrX3F1ZXVlKHNlbGYpOgogICAgICAgICBzZWxmLl9pdGVyYXRpb25fY291bnQg
Kz0gMQpAQCAtMTQ5LDcxICsxNDYsMTkgQEAgY2xhc3MgQWJzdHJhY3RRdWV1ZShDb21tYW5kLCBR
dWV1ZUVuZ2luZQogICAgICAgICBzZWxmLl90b29sID0gdG9vbCAgIyBGSVhNRTogVGhpcyBjb2Rl
IGlzIHdyb25nIHRvbyEgIENvbW1hbmQuYmluZF90b190b29sIGhhbmRsZXMgdGhpcyEKICAgICAg
ICAgcmV0dXJuIGVuZ2luZShzZWxmLm5hbWUsIHNlbGYsIHNlbGYuX3Rvb2wud2FrZXVwX2V2ZW50
LCBzZWxmLl9vcHRpb25zLnNlY29uZHNfdG9fc2xlZXApLnJ1bigpCiAKLSAgICBAY2xhc3NtZXRo
b2QKLSAgICBkZWYgX2xvZ19mcm9tX3NjcmlwdF9lcnJvcl9mb3JfdXBsb2FkKGNscywgc2NyaXB0
X2Vycm9yLCBvdXRwdXRfbGltaXQ9Tm9uZSk6Ci0gICAgICAgICMgV2UgaGF2ZSBzZWVuIHJlcXVl
c3QgdGltZW91dHMgd2l0aCBhcHAgZW5naW5lIGR1ZSB0byBsYXJnZQotICAgICAgICAjIGxvZyB1
cGxvYWRzLiAgVHJ5aW5nIG9ubHkgdGhlIGxhc3QgNTEyay4KLSAgICAgICAgaWYgbm90IG91dHB1
dF9saW1pdDoKLSAgICAgICAgICAgIG91dHB1dF9saW1pdCA9IDUxMiAqIDEwMjQgICMgNTEyawot
ICAgICAgICBvdXRwdXQgPSBzY3JpcHRfZXJyb3IubWVzc2FnZV93aXRoX291dHB1dChvdXRwdXRf
bGltaXQ9b3V0cHV0X2xpbWl0KQotICAgICAgICAjIFdlIHByZS1lbmNvZGUgdGhlIHN0cmluZyB0
byBhIGJ5dGUgYXJyYXkgYmVmb3JlIHBhc3NpbmcgaXQKLSAgICAgICAgIyB0byBzdGF0dXNfc2Vy
dmVyLCBiZWNhdXNlIENsaWVudEZvcm0gKHBhcnQgb2YgbWVjaGFuaXplKQotICAgICAgICAjIHdh
bnRzIGEgZmlsZS1saWtlIG9iamVjdCB3aXRoIHByZS1lbmNvZGVkIGRhdGEuCi0gICAgICAgIHJl
dHVybiBCeXRlc0lPKG91dHB1dC5lbmNvZGUoInV0Zi04IikpCi0KLSAgICBAY2xhc3NtZXRob2QK
LSAgICBkZWYgX3VwZGF0ZV9zdGF0dXNfZm9yX3NjcmlwdF9lcnJvcihjbHMsIHRvb2wsIHN0YXRl
LCBzY3JpcHRfZXJyb3IsIGlzX2Vycm9yPUZhbHNlKToKLSAgICAgICAgbWVzc2FnZSA9IHN0cihz
Y3JpcHRfZXJyb3IpCi0gICAgICAgIGlmIGlzX2Vycm9yOgotICAgICAgICAgICAgbWVzc2FnZSA9
ICJFcnJvcjogJXMiICUgbWVzc2FnZQotICAgICAgICBmYWlsdXJlX2xvZyA9IGNscy5fbG9nX2Zy
b21fc2NyaXB0X2Vycm9yX2Zvcl91cGxvYWQoc2NyaXB0X2Vycm9yKQotICAgICAgICByZXR1cm4g
dG9vbC5zdGF0dXNfc2VydmVyLnVwZGF0ZV9zdGF0dXMoY2xzLm5hbWUsIG1lc3NhZ2UsIHN0YXRl
WyJwYXRjaCJdLCBmYWlsdXJlX2xvZykKLQogCiBjbGFzcyBBYnN0cmFjdFBhdGNoUXVldWUoQWJz
dHJhY3RRdWV1ZSk6Ci0gICAgZGVmIF91cGRhdGVfc3RhdHVzKHNlbGYsIG1lc3NhZ2UsIHBhdGNo
PU5vbmUsIHJlc3VsdHNfZmlsZT1Ob25lKToKLSAgICAgICAgcmV0dXJuIHNlbGYuX3Rvb2wuc3Rh
dHVzX3NlcnZlci51cGRhdGVfc3RhdHVzKHNlbGYubmFtZSwgbWVzc2FnZSwgcGF0Y2gsIHJlc3Vs
dHNfZmlsZSkKLQogICAgIGRlZiBfbmV4dF9wYXRjaChzZWxmKToKLSAgICAgICAgIyBGSVhNRTog
QnVnemlsbGEgYWNjZXNzaWJpbGl0eSBzaG91bGQgYmUgY2hlY2tlZCBoZXJlOyBpZiBpdCdzIHVu
YWNjZXNzaWJsZSwKLSAgICAgICAgIyBpdCBzaG91bGQgcmV0dXJuIE5vbmUuCi0gICAgICAgIHBh
dGNoID0gTm9uZQotICAgICAgICB3aGlsZSBub3QgcGF0Y2g6Ci0gICAgICAgICAgICBwYXRjaF9p
ZCA9IHNlbGYuX3Rvb2wuc3RhdHVzX3NlcnZlci5uZXh0X3dvcmtfaXRlbShzZWxmLm5hbWUpCi0g
ICAgICAgICAgICBpZiBub3QgcGF0Y2hfaWQ6Ci0gICAgICAgICAgICAgICAgcmV0dXJuIE5vbmUK
LSAgICAgICAgICAgIHBhdGNoID0gc2VsZi5fdG9vbC5idWdzLmZldGNoX2F0dGFjaG1lbnQocGF0
Y2hfaWQpCi0gICAgICAgICAgICBpZiBub3QgcGF0Y2g6Ci0gICAgICAgICAgICAgICAgIyBGSVhN
RTogVXNpbmcgYSBmYWtlIHBhdGNoIGJlY2F1c2UgcmVsZWFzZV93b3JrX2l0ZW0gaGFzIHRoZSB3
cm9uZyBBUEkuCi0gICAgICAgICAgICAgICAgIyBXZSBhbHNvIGRvbid0IHJlYWxseSBuZWVkIHRv
IHJlbGVhc2UgdGhlIGxvY2sgKGFsdGhvdWdoIHRoYXQncyBmaW5lKSwKLSAgICAgICAgICAgICAg
ICAjIG1vc3RseSB3ZSBqdXN0IG5lZWQgdG8gcmVtb3ZlIHRoaXMgYm9ndXMgcGF0Y2ggZnJvbSBv
dXIgcXVldWUuCi0gICAgICAgICAgICAgICAgIyBJZiBmb3Igc29tZSByZWFzb24gYnVnemlsbGEg
aXMganVzdCBkb3duLCB0aGVuIGl0IHdpbGwgYmUgcmUtZmVkIGxhdGVyLgotICAgICAgICAgICAg
ICAgIGZha2VfcGF0Y2ggPSBBdHRhY2htZW50KHsnaWQnOiBwYXRjaF9pZH0sIE5vbmUpCi0gICAg
ICAgICAgICAgICAgc2VsZi5fZGlkX3NraXAoZmFrZV9wYXRjaCkKLSAgICAgICAgcmV0dXJuIHBh
dGNoCi0KLSAgICBkZWYgX3JlbGVhc2Vfd29ya19pdGVtKHNlbGYsIHBhdGNoKToKLSAgICAgICAg
c2VsZi5fdG9vbC5zdGF0dXNfc2VydmVyLnJlbGVhc2Vfd29ya19pdGVtKHNlbGYubmFtZSwgcGF0
Y2gpCi0KLSAgICBkZWYgX2RpZF9wYXNzKHNlbGYsIHBhdGNoKToKLSAgICAgICAgc2VsZi5fdXBk
YXRlX3N0YXR1cyhzZWxmLl9wYXNzX3N0YXR1cywgcGF0Y2gpCi0gICAgICAgIHNlbGYuX3JlbGVh
c2Vfd29ya19pdGVtKHBhdGNoKQotCi0gICAgZGVmIF9kaWRfZmFpbChzZWxmLCBwYXRjaCk6Ci0g
ICAgICAgIHNlbGYuX3VwZGF0ZV9zdGF0dXMoc2VsZi5fZmFpbF9zdGF0dXMsIHBhdGNoKQotICAg
ICAgICBzZWxmLl9yZWxlYXNlX3dvcmtfaXRlbShwYXRjaCkKKyAgICAgICAgcGFzcwogCiAgICAg
ZGVmIF9kaWRfZXJyb3Ioc2VsZiwgcGF0Y2gsIHJlYXNvbik6Ci0gICAgICAgIG1lc3NhZ2UgPSAi
JXM6ICVzIiAlIChzZWxmLl9lcnJvcl9zdGF0dXMsIHJlYXNvbikKLSAgICAgICAgc2VsZi5fdXBk
YXRlX3N0YXR1cyhtZXNzYWdlLCBwYXRjaCkKLSAgICAgICAgc2VsZi5fcmVsZWFzZV93b3JrX2l0
ZW0ocGF0Y2gpCisgICAgICAgIHBhc3MKIAogICAgIGRlZiBfZGlkX3NraXAoc2VsZiwgcGF0Y2gp
OgotICAgICAgICBzZWxmLl91cGRhdGVfc3RhdHVzKHNlbGYuX3NraXBfc3RhdHVzLCBwYXRjaCkK
LSAgICAgICAgc2VsZi5fcmVsZWFzZV93b3JrX2l0ZW0ocGF0Y2gpCisgICAgICAgIHBhc3MKIAog
ICAgIGRlZiBfdW5sb2NrX3BhdGNoKHNlbGYsIHBhdGNoKToKLSAgICAgICAgc2VsZi5fdG9vbC5z
dGF0dXNfc2VydmVyLnJlbGVhc2VfbG9jayhzZWxmLm5hbWUsIHBhdGNoKQorICAgICAgICBwYXNz
CiAKICAgICBkZWYgd29ya19pdGVtX2xvZ19wYXRoKHNlbGYsIHBhdGNoKToKICAgICAgICAgcmV0
dXJuIG9zLnBhdGguam9pbihzZWxmLl9sb2dfZGlyZWN0b3J5KCksICIlcy5sb2ciICUgcGF0Y2gu
YnVnX2lkKCkpCkBAIC0yNzEsOCArMjE2LDcgQEAgY2xhc3MgUGF0Y2hQcm9jZXNzaW5nUXVldWUo
QWJzdHJhY3RQYXRjaAogICAgICAgICBpZiBub3Qgc2VsZi5fcG9ydDoKICAgICAgICAgICAgIHNl
bGYuX2NyZWF0ZV9wb3J0KCkKIAotICAgICAgICBib3RfaWQgPSBzZWxmLl90b29sLnN0YXR1c19z
ZXJ2ZXIuYm90X2lkIG9yICJib3QiCi0gICAgICAgIGRlc2NyaXB0aW9uID0gIkFyY2hpdmUgb2Yg
bGF5b3V0LXRlc3QtcmVzdWx0cyBmcm9tICVzIGZvciAlcyIgJSAoYm90X2lkLCBzZWxmLl9wb3J0
Lm5hbWUoKSkKKyAgICAgICAgZGVzY3JpcHRpb24gPSAiQXJjaGl2ZSBvZiBsYXlvdXQtdGVzdC1y
ZXN1bHRzIGZvciAlcyIgJSAoc2VsZi5fcG9ydC5uYW1lKCkpCiAgICAgICAgICMgcmVzdWx0c19h
cmNoaXZlIGlzIGEgWmlwRmlsZSBvYmplY3QsIGdyYWIgdGhlIEZpbGUgb2JqZWN0ICguZnApIHRv
IHBhc3MgdG8gTWVjaGFuaXplIGZvciB1cGxvYWRpbmcuCiAgICAgICAgIHJlc3VsdHNfYXJjaGl2
ZV9maWxlID0gcmVzdWx0c19hcmNoaXZlX3ppcC5mcAogICAgICAgICAjIFJld2luZCB0aGUgZmls
ZSBvYmplY3QgdG8gc3RhcnQgKHNpbmNlIE1lY2hhbml6ZSB3b24ndCBkbyB0aGF0IGF1dG9tYXRp
Y2FsbHkpCkBAIC0zMDIsMTMgKzI0NiwxMCBAQCBjbGFzcyBBYnN0cmFjdFJldmlld1F1ZXVlKFBh
dGNoUHJvY2Vzc2luCiAgICAgICAgIFBhdGNoUHJvY2Vzc2luZ1F1ZXVlLmJlZ2luX3dvcmtfcXVl
dWUoc2VsZikKIAogICAgIGRlZiBuZXh0X3dvcmtfaXRlbShzZWxmKToKLSAgICAgICAgcmV0dXJu
IHNlbGYuX25leHRfcGF0Y2goKQorICAgICAgICByZXR1cm4gTm9uZQogCiAgICAgZGVmIHByb2Nl
c3Nfd29ya19pdGVtKHNlbGYsIHBhdGNoKToKLSAgICAgICAgc2VsZi5fdXBkYXRlX3N0YXR1cygi
U3RhcnRlZCBwcm9jZXNzaW5nIHBhdGNoIiwgcGF0Y2gpCiAgICAgICAgIHBhc3NlZCA9IHNlbGYu
cmV2aWV3X3BhdGNoKHBhdGNoKQotICAgICAgICBpZiBwYXNzZWQ6Ci0gICAgICAgICAgICBzZWxm
Ll9kaWRfcGFzcyhwYXRjaCkKICAgICAgICAgcmV0dXJuIHBhc3NlZAogCiAgICAgZGVmIGhhbmRs
ZV91bmV4cGVjdGVkX2Vycm9yKHNlbGYsIHBhdGNoLCBtZXNzYWdlKToKQEAgLTMzMSw5ICsyNzIs
NiBAQCBjbGFzcyBTdHlsZVF1ZXVlKEFic3RyYWN0UmV2aWV3UXVldWUsIFN0CiAgICAgICAgIHRh
c2sgPSBTdHlsZVF1ZXVlVGFzayhzZWxmLCBwYXRjaCkKICAgICAgICAgdHJ5OgogICAgICAgICAg
ICAgc3R5bGVfY2hlY2tfc3VjY2VlZGVkID0gdGFzay5ydW4oKQotICAgICAgICAgICAgaWYgbm90
IHN0eWxlX2NoZWNrX3N1Y2NlZWRlZDoKLSAgICAgICAgICAgICAgICAjIENhbGxlciB1bmxvY2tz
IHdoZW4gcmV2aWV3X3BhdGNoIHJldHVybnMgVHJ1ZSwgc28gd2Ugb25seSBuZWVkIHRvIHVubG9j
ayBvbiB0cmFuc2llbnQgZmFpbHVyZS4KLSAgICAgICAgICAgICAgICBzZWxmLl91bmxvY2tfcGF0
Y2gocGF0Y2gpCiAgICAgICAgICAgICByZXR1cm4gc3R5bGVfY2hlY2tfc3VjY2VlZGVkCiAgICAg
ICAgIGV4Y2VwdCBVbmFibGVUb0FwcGx5UGF0Y2ggYXMgZToKICAgICAgICAgICAgIHNlbGYuX2Rp
ZF9lcnJvcihwYXRjaCwgIiVzIHVuYWJsZSB0byBhcHBseSBwYXRjaC4iICUgc2VsZi5uYW1lKQpA
QCAtMzQ1LDcgKzI4Myw2IEBAIGNsYXNzIFN0eWxlUXVldWUoQWJzdHJhY3RSZXZpZXdRdWV1ZSwg
U3QKICAgICAgICAgICAgIG91dHB1dCA9IHJlLnN1YihyJ0ZhaWxlZCB0byBydW4gLisgZXhpdF9j
b2RlOiAxJywgJycsIGUub3V0cHV0KQogICAgICAgICAgICAgbWVzc2FnZSA9ICJBdHRhY2htZW50
ICVzIGRpZCBub3QgcGFzcyAlczpcblxuJXNcblxuSWYgYW55IG9mIHRoZXNlIGVycm9ycyBhcmUg
ZmFsc2UgcG9zaXRpdmVzLCBwbGVhc2UgZmlsZSBhIGJ1ZyBhZ2FpbnN0IGNoZWNrLXdlYmtpdC1z
dHlsZS4iICUgKHBhdGNoLmlkKCksIHNlbGYubmFtZSwgb3V0cHV0KQogICAgICAgICAgICAgc2Vs
Zi5fdG9vbC5idWdzLnBvc3RfY29tbWVudF90b19idWcocGF0Y2guYnVnX2lkKCksIG1lc3NhZ2Us
IGNjPXNlbGYud2F0Y2hlcnMpCi0gICAgICAgICAgICBzZWxmLl9kaWRfZmFpbChwYXRjaCkKICAg
ICAgICAgICAgIHJldHVybiBGYWxzZQogICAgICAgICByZXR1cm4gVHJ1ZQogCkBAIC0zNTUsMTEg
KzI5MiwxMCBAQCBjbGFzcyBTdHlsZVF1ZXVlKEFic3RyYWN0UmV2aWV3UXVldWUsIFN0CiAgICAg
ICAgIHNlbGYucnVuX3dlYmtpdF9wYXRjaChjb21tYW5kKQogCiAgICAgZGVmIGNvbW1hbmRfcGFz
c2VkKHNlbGYsIG1lc3NhZ2UsIHBhdGNoKToKLSAgICAgICAgc2VsZi5fdXBkYXRlX3N0YXR1cyht
ZXNzYWdlLCBwYXRjaD1wYXRjaCkKKyAgICAgICAgcGFzcwogCiAgICAgZGVmIGNvbW1hbmRfZmFp
bGVkKHNlbGYsIG1lc3NhZ2UsIHNjcmlwdF9lcnJvciwgcGF0Y2gpOgotICAgICAgICBmYWlsdXJl
X2xvZyA9IHNlbGYuX2xvZ19mcm9tX3NjcmlwdF9lcnJvcl9mb3JfdXBsb2FkKHNjcmlwdF9lcnJv
cikKLSAgICAgICAgcmV0dXJuIHNlbGYuX3VwZGF0ZV9zdGF0dXMobWVzc2FnZSwgcGF0Y2g9cGF0
Y2gsIHJlc3VsdHNfZmlsZT1mYWlsdXJlX2xvZykKKyAgICAgICAgcGFzcwogCiAgICAgZGVmIGV4
cGVjdGVkX2ZhaWx1cmVzKHNlbGYpOgogICAgICAgICByZXR1cm4gTm9uZQpJbmRleDogVG9vbHMv
U2NyaXB0cy93ZWJraXRweS90b29sL2NvbW1hbmRzL3F1ZXVlc191bml0dGVzdC5weQo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBUb29scy9TY3JpcHRzL3dlYmtpdHB5L3Rvb2wvY29tbWFuZHMvcXVldWVzX3VuaXR0
ZXN0LnB5CShyZXZpc2lvbiAyNjE0MDEpCisrKyBUb29scy9TY3JpcHRzL3dlYmtpdHB5L3Rvb2wv
Y29tbWFuZHMvcXVldWVzX3VuaXR0ZXN0LnB5CSh3b3JraW5nIGNvcHkpCkBAIC00Miw3ICs0Miw2
IEBAIGZyb20gd2Via2l0cHkudG9vbC5jb21tYW5kcy5jb21tYW5kdGVzdCAKIGZyb20gd2Via2l0
cHkudG9vbC5jb21tYW5kcy5xdWV1ZXMgaW1wb3J0ICoKIGZyb20gd2Via2l0cHkudG9vbC5jb21t
YW5kcy5xdWV1ZXN0ZXN0IGltcG9ydCBRdWV1ZXNUZXN0CiBmcm9tIHdlYmtpdHB5LnRvb2wuY29t
bWFuZHMuc3RlcHNlcXVlbmNlIGltcG9ydCBTdGVwU2VxdWVuY2UKLWZyb20gd2Via2l0cHkuY29t
bW9uLm5ldC5zdGF0dXNzZXJ2ZXJfbW9jayBpbXBvcnQgTW9ja1N0YXR1c1NlcnZlcgogZnJvbSB3
ZWJraXRweS50b29sLm1vY2t0b29sIGltcG9ydCBNb2NrVG9vbCwgTW9ja09wdGlvbnMKIAogCkBA
IC02MSwxNCArNjAsMTMgQEAgY2xhc3MgQWJzdHJhY3RRdWV1ZVRlc3QoQ29tbWFuZHNUZXN0KToK
ICAgICBkZWYgX2Fzc2VydF9ydW5fd2Via2l0X3BhdGNoKHNlbGYsIHJ1bl9hcmdzLCBwb3J0PU5v
bmUpOgogICAgICAgICBxdWV1ZSA9IFRlc3RRdWV1ZSgpCiAgICAgICAgIHRvb2wgPSBNb2NrVG9v
bCgpCi0gICAgICAgIHRvb2wuc3RhdHVzX3NlcnZlci5ib3RfaWQgPSAiZ29ydCIKICAgICAgICAg
dG9vbC5leGVjdXRpdmUgPSBNb2NrKCkKICAgICAgICAgcXVldWUuYmluZF90b190b29sKHRvb2wp
CiAgICAgICAgIHF1ZXVlLl9vcHRpb25zID0gTW9jaygpCiAgICAgICAgIHF1ZXVlLl9vcHRpb25z
LnBvcnQgPSBwb3J0CiAKICAgICAgICAgcXVldWUucnVuX3dlYmtpdF9wYXRjaChydW5fYXJncykK
LSAgICAgICAgZXhwZWN0ZWRfcnVuX2FyZ3MgPSBbImVjaG8iLCAiLS1ib3QtaWQ9Z29ydCJdCisg
ICAgICAgIGV4cGVjdGVkX3J1bl9hcmdzID0gWyJlY2hvIl0KICAgICAgICAgaWYgcG9ydDoKICAg
ICAgICAgICAgIGV4cGVjdGVkX3J1bl9hcmdzLmFwcGVuZCgiLS1wb3J0PSVzIiAlIHBvcnQpCiAg
ICAgICAgIGV4cGVjdGVkX3J1bl9hcmdzLmV4dGVuZChydW5fYXJncykKQEAgLTk2LDM4ICs5NCw2
IEBAIGNsYXNzIEFic3RyYWN0UXVldWVUZXN0KENvbW1hbmRzVGVzdCk6CiAgICAgICAgIHNlbGYu
YXNzZXJ0VHJ1ZShxdWV1ZS5zaG91bGRfY29udGludWVfd29ya19xdWV1ZSgpKQogICAgICAgICBz
ZWxmLmFzc2VydFRydWUocXVldWUuc2hvdWxkX2NvbnRpbnVlX3dvcmtfcXVldWUoKSkKIAotICAg
IGRlZiBfYXNzZXJ0X2xvZ19tZXNzYWdlKHNlbGYsIHNjcmlwdF9lcnJvciwgbG9nX21lc3NhZ2Up
OgotICAgICAgICBmYWlsdXJlX2xvZyA9IEFic3RyYWN0UXVldWUuX2xvZ19mcm9tX3NjcmlwdF9l
cnJvcl9mb3JfdXBsb2FkKHNjcmlwdF9lcnJvciwgb3V0cHV0X2xpbWl0PTEwKQotICAgICAgICBz
ZWxmLmFzc2VydFRydWUoZmFpbHVyZV9sb2cucmVhZCgpLCBsb2dfbWVzc2FnZSkKLQotICAgIGRl
ZiB0ZXN0X2xvZ19mcm9tX3NjcmlwdF9lcnJvcl9mb3JfdXBsb2FkKHNlbGYpOgotICAgICAgICBz
ZWxmLl9hc3NlcnRfbG9nX21lc3NhZ2UoU2NyaXB0RXJyb3IoInRlc3QiKSwgInRlc3QiKQotICAg
ICAgICB1bmljb2RlX3RvciA9IHUiV2ViS2l0IFx1MjY2MSBUb3IgQXJuZSBWZXN0Ylx1MDBGOCEi
Ci0gICAgICAgIHV0ZjhfdG9yID0gdW5pY29kZV90b3IuZW5jb2RlKCJ1dGYtOCIpCi0gICAgICAg
IHNlbGYuX2Fzc2VydF9sb2dfbWVzc2FnZShTY3JpcHRFcnJvcih1bmljb2RlX3RvciksIHV0Zjhf
dG9yKQotICAgICAgICBzY3JpcHRfZXJyb3IgPSBTY3JpcHRFcnJvcih1bmljb2RlX3Rvciwgb3V0
cHV0PXVuaWNvZGVfdG9yKQotICAgICAgICBleHBlY3RlZF9vdXRwdXQgPSAiJXNcbkxhc3QgJXMg
Y2hhcmFjdGVycyBvZiBvdXRwdXQ6XG4lcyIgJSAodXRmOF90b3IsIDEwLCB1dGY4X3RvclstMTA6
XSkKLSAgICAgICAgc2VsZi5fYXNzZXJ0X2xvZ19tZXNzYWdlKHNjcmlwdF9lcnJvciwgZXhwZWN0
ZWRfb3V0cHV0KQotCi0KLWNsYXNzIEFic3RyYWN0UGF0Y2hRdWV1ZVRlc3QoQ29tbWFuZHNUZXN0
KToKLSAgICBkZWYgdGVzdF9uZXh0X3BhdGNoKHNlbGYpOgotICAgICAgICBxdWV1ZSA9IEFic3Ry
YWN0UGF0Y2hRdWV1ZSgpCi0gICAgICAgIHRvb2wgPSBNb2NrVG9vbCgpCi0gICAgICAgIHF1ZXVl
LmJpbmRfdG9fdG9vbCh0b29sKQotICAgICAgICBxdWV1ZS5fb3B0aW9ucyA9IE1vY2soKQotICAg
ICAgICBxdWV1ZS5fb3B0aW9ucy5wb3J0ID0gTm9uZQotICAgICAgICBzZWxmLmFzc2VydElzTm9u
ZShxdWV1ZS5fbmV4dF9wYXRjaCgpKQotICAgICAgICB0b29sLnN0YXR1c19zZXJ2ZXIgPSBNb2Nr
U3RhdHVzU2VydmVyKHdvcmtfaXRlbXM9WzIsIDEwMDAwLCAxMDAwMV0pCi0gICAgICAgIGV4cGVj
dGVkX3N0ZG91dCA9ICJNT0NLOiBmZXRjaF9hdHRhY2htZW50OiAyIGlzIG5vdCBhIGtub3duIGF0
dGFjaG1lbnQgaWRcbiIgICMgQSBtb2NrLW9ubHkgbWVzc2FnZSB0byBwcmV2ZW50IHVzIGZyb20g
bWFraW5nIG1pc3Rha2VzLgotICAgICAgICBleHBlY3RlZF9sb2dzID0gIiIiTU9DSzogdXBkYXRl
X3N0YXR1czogTm9uZSBTa2lwCi1NT0NLOiByZWxlYXNlX3dvcmtfaXRlbTogTm9uZSAyCi0iIiIK
LSAgICAgICAgcGF0Y2ggPSBPdXRwdXRDYXB0dXJlKCkuYXNzZXJ0X291dHB1dHMoc2VsZiwgcXVl
dWUuX25leHRfcGF0Y2gsIGV4cGVjdGVkX3N0ZG91dD1leHBlY3RlZF9zdGRvdXQsIGV4cGVjdGVk
X2xvZ3M9ZXhwZWN0ZWRfbG9ncykKLSAgICAgICAgIyBUaGUgcGF0Y2guaWQoKSA9PSAyIGlzIGln
bm9yZWQgYmVjYXVzZSBpdCBkb2Vzbid0IGV4aXN0LgotICAgICAgICBzZWxmLmFzc2VydEVxdWFs
KHBhdGNoLmlkKCksIDEwMDAwKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHF1ZXVlLl9uZXh0
X3BhdGNoKCkuaWQoKSwgMTAwMDEpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwocXVldWUuX25l
eHRfcGF0Y2goKSwgTm9uZSkgICAgIyBXaGVuIHRoZSBxdWV1ZSBpcyBlbXB0eQogCiAKIGNsYXNz
IFBhdGNoUHJvY2Vzc2luZ1F1ZXVlVGVzdChDb21tYW5kc1Rlc3QpOgpAQCAtMTM5LDcgKzEwNSw3
IEBAIGNsYXNzIFBhdGNoUHJvY2Vzc2luZ1F1ZXVlVGVzdChDb21tYW5kc1QKICAgICAgICAgcXVl
dWUuX29wdGlvbnMgPSBNb2NrKCkKICAgICAgICAgcXVldWUuX29wdGlvbnMucG9ydCA9IE5vbmUK
ICAgICAgICAgcGF0Y2ggPSBxdWV1ZS5fdG9vbC5idWdzLmZldGNoX2F0dGFjaG1lbnQoMTAwMDEp
Ci0gICAgICAgIGV4cGVjdGVkX2xvZ3MgPSAiIiJNT0NLIGFkZF9hdHRhY2htZW50X3RvX2J1Zzog
YnVnX2lkPTUwMDAwLCBkZXNjcmlwdGlvbj1BcmNoaXZlIG9mIGxheW91dC10ZXN0LXJlc3VsdHMg
ZnJvbSBib3QgZm9yIG1hYy1oaWdoc2llcnJhIGZpbGVuYW1lPWxheW91dC10ZXN0LXJlc3VsdHMu
emlwIG1pbWV0eXBlPU5vbmUKKyAgICAgICAgZXhwZWN0ZWRfbG9ncyA9ICIiIk1PQ0sgYWRkX2F0
dGFjaG1lbnRfdG9fYnVnOiBidWdfaWQ9NTAwMDAsIGRlc2NyaXB0aW9uPUFyY2hpdmUgb2YgbGF5
b3V0LXRlc3QtcmVzdWx0cyBmb3IgbWFjLWhpZ2hzaWVycmEgZmlsZW5hbWU9bGF5b3V0LXRlc3Qt
cmVzdWx0cy56aXAgbWltZXR5cGU9Tm9uZQogLS0gQmVnaW4gY29tbWVudCAtLQogVGhlIGF0dGFj
aGVkIHRlc3QgZmFpbHVyZXMgd2VyZSBzZWVuIHdoaWxlIHJ1bm5pbmcgcnVuLXdlYmtpdC10ZXN0
cyBvbiB0aGUgbW9jay1xdWV1ZS4KIFBvcnQ6IG1hYy1oaWdoc2llcnJhICBQbGF0Zm9ybTogTW9j
a1BsYXRmb3JtIDEuMApAQCAtMTU3LDE5ICsxMjMsMTEgQEAgY2xhc3MgU3R5bGVRdWV1ZVRlc3Qo
UXVldWVzVGVzdCk6CiAgICAgZGVmIHRlc3Rfc3R5bGVfcXVldWVfd2l0aF9zdHlsZV9leGNlcHRp
b24oc2VsZik6CiAgICAgICAgIGV4cGVjdGVkX2xvZ3MgPSB7CiAgICAgICAgICAgICAiYmVnaW5f
d29ya19xdWV1ZSI6IHNlbGYuX2RlZmF1bHRfYmVnaW5fd29ya19xdWV1ZV9sb2dzKCJzdHlsZS1x
dWV1ZSIpLAotICAgICAgICAgICAgInByb2Nlc3Nfd29ya19pdGVtIjogIiIiTU9DSzogdXBkYXRl
X3N0YXR1czogc3R5bGUtcXVldWUgU3RhcnRlZCBwcm9jZXNzaW5nIHBhdGNoCi1SdW5uaW5nOiB3
ZWJraXQtcGF0Y2ggY2xlYW4KLU1PQ0s6IHVwZGF0ZV9zdGF0dXM6IHN0eWxlLXF1ZXVlIENsZWFu
ZWQgd29ya2luZyBkaXJlY3RvcnkKKyAgICAgICAgICAgICJwcm9jZXNzX3dvcmtfaXRlbSI6ICIi
IlJ1bm5pbmc6IHdlYmtpdC1wYXRjaCBjbGVhbgogUnVubmluZzogd2Via2l0LXBhdGNoIHVwZGF0
ZQotTU9DSzogdXBkYXRlX3N0YXR1czogc3R5bGUtcXVldWUgVXBkYXRlZCB3b3JraW5nIGRpcmVj
dG9yeQogUnVubmluZzogd2Via2l0LXBhdGNoIGFwcGx5LWF0dGFjaG1lbnQgLS1uby11cGRhdGUg
LS1ub24taW50ZXJhY3RpdmUgMTAwMDAKLU1PQ0s6IHVwZGF0ZV9zdGF0dXM6IHN0eWxlLXF1ZXVl
IEFwcGxpZWQgcGF0Y2gKIFJ1bm5pbmc6IHdlYmtpdC1wYXRjaCBhcHBseS13YXRjaGxpc3QtbG9j
YWwgNTAwMDAKLU1PQ0s6IHVwZGF0ZV9zdGF0dXM6IHN0eWxlLXF1ZXVlIFdhdGNobGlzdCBhcHBs
aWVkCiBSdW5uaW5nOiB3ZWJraXQtcGF0Y2ggY2hlY2stc3R5bGUtbG9jYWwgLS1ub24taW50ZXJh
Y3RpdmUgLS1xdWlldAotTU9DSzogdXBkYXRlX3N0YXR1czogc3R5bGUtcXVldWUgU3R5bGUgY2hl
Y2tlZAotTU9DSzogdXBkYXRlX3N0YXR1czogc3R5bGUtcXVldWUgUGFzcwotTU9DSzogcmVsZWFz
ZV93b3JrX2l0ZW06IHN0eWxlLXF1ZXVlIDEwMDAwCiAiIiIsCiAgICAgICAgICAgICAiaGFuZGxl
X3VuZXhwZWN0ZWRfZXJyb3IiOiAiTW9jayBlcnJvciBtZXNzYWdlXG4iLAogICAgICAgICAgICAg
ImhhbmRsZV9zY3JpcHRfZXJyb3IiOiAiTU9DSyBvdXRwdXRcbiIsCkBAIC0xODAsMjIgKzEzOCwx
NCBAQCBNT0NLOiByZWxlYXNlX3dvcmtfaXRlbTogc3R5bGUtcXVldWUgMTAwCiAgICAgZGVmIHRl
c3Rfc3R5bGVfcXVldWVfd2l0aF93YXRjaF9saXN0X2V4Y2VwdGlvbihzZWxmKToKICAgICAgICAg
ZXhwZWN0ZWRfbG9ncyA9IHsKICAgICAgICAgICAgICJiZWdpbl93b3JrX3F1ZXVlIjogc2VsZi5f
ZGVmYXVsdF9iZWdpbl93b3JrX3F1ZXVlX2xvZ3MoInN0eWxlLXF1ZXVlIiksCi0gICAgICAgICAg
ICAicHJvY2Vzc193b3JrX2l0ZW0iOiAiIiJNT0NLOiB1cGRhdGVfc3RhdHVzOiBzdHlsZS1xdWV1
ZSBTdGFydGVkIHByb2Nlc3NpbmcgcGF0Y2gKLVJ1bm5pbmc6IHdlYmtpdC1wYXRjaCBjbGVhbgot
TU9DSzogdXBkYXRlX3N0YXR1czogc3R5bGUtcXVldWUgQ2xlYW5lZCB3b3JraW5nIGRpcmVjdG9y
eQorICAgICAgICAgICAgInByb2Nlc3Nfd29ya19pdGVtIjogIiIiUnVubmluZzogd2Via2l0LXBh
dGNoIGNsZWFuCiBSdW5uaW5nOiB3ZWJraXQtcGF0Y2ggdXBkYXRlCi1NT0NLOiB1cGRhdGVfc3Rh
dHVzOiBzdHlsZS1xdWV1ZSBVcGRhdGVkIHdvcmtpbmcgZGlyZWN0b3J5CiBSdW5uaW5nOiB3ZWJr
aXQtcGF0Y2ggYXBwbHktYXR0YWNobWVudCAtLW5vLXVwZGF0ZSAtLW5vbi1pbnRlcmFjdGl2ZSAx
MDAwMAotTU9DSzogdXBkYXRlX3N0YXR1czogc3R5bGUtcXVldWUgQXBwbGllZCBwYXRjaAogUnVu
bmluZzogd2Via2l0LXBhdGNoIGFwcGx5LXdhdGNobGlzdC1sb2NhbCA1MDAwMAogRXhjZXB0aW9u
IGZvciBbJ2VjaG8nLCAnYXBwbHktd2F0Y2hsaXN0LWxvY2FsJywgNTAwMDBdCiAKIE1PQ0sgY29t
bWFuZCBvdXRwdXQKLU1PQ0s6IHVwZGF0ZV9zdGF0dXM6IHN0eWxlLXF1ZXVlIFVuYWJsZWQgdG8g
YXBwbHkgd2F0Y2hsaXN0CiBSdW5uaW5nOiB3ZWJraXQtcGF0Y2ggY2hlY2stc3R5bGUtbG9jYWwg
LS1ub24taW50ZXJhY3RpdmUgLS1xdWlldAotTU9DSzogdXBkYXRlX3N0YXR1czogc3R5bGUtcXVl
dWUgU3R5bGUgY2hlY2tlZAotTU9DSzogdXBkYXRlX3N0YXR1czogc3R5bGUtcXVldWUgUGFzcwot
TU9DSzogcmVsZWFzZV93b3JrX2l0ZW06IHN0eWxlLXF1ZXVlIDEwMDAwCiAiIiIsCiAgICAgICAg
ICAgICAiaGFuZGxlX3VuZXhwZWN0ZWRfZXJyb3IiOiAiTW9jayBlcnJvciBtZXNzYWdlXG4iLAog
ICAgICAgICAgICAgImhhbmRsZV9zY3JpcHRfZXJyb3IiOiAiTU9DSyBvdXRwdXRcbiIsCkBAIC0y
MDgsOSArMTU4LDYgQEAgTU9DSzogcmVsZWFzZV93b3JrX2l0ZW06IHN0eWxlLXF1ZXVlIDEwMAog
ICAgICAgICBwYXRjaCA9IHRvb2wuYnVncy5mZXRjaF9hdHRhY2htZW50KDEwMDA3KSAgIyBfcGF0
Y2g4LCByZXNvbHZlZCBidWcsIHdpdGhvdXQgcmV2aWV3IGZsYWcsIG5vdCBtYXJrZWQgb2Jzb2xl
dGUgKG1heWJlIGFscmVhZHkgbGFuZGVkKQogICAgICAgICBleHBlY3RlZF9sb2dzID0gewogICAg
ICAgICAgICAgImJlZ2luX3dvcmtfcXVldWUiOiBzZWxmLl9kZWZhdWx0X2JlZ2luX3dvcmtfcXVl
dWVfbG9ncygic3R5bGUtcXVldWUiKSwKLSAgICAgICAgICAgICJwcm9jZXNzX3dvcmtfaXRlbSI6
ICIiIk1PQ0s6IHVwZGF0ZV9zdGF0dXM6IHN0eWxlLXF1ZXVlIFN0YXJ0ZWQgcHJvY2Vzc2luZyBw
YXRjaAotTU9DSzogdXBkYXRlX3N0YXR1czogc3R5bGUtcXVldWUgRXJyb3I6IHN0eWxlLXF1ZXVl
IGRpZCBub3QgcHJvY2VzcyBwYXRjaC4gUmVhc29uOiBCdWcgaXMgYWxyZWFkeSBjbG9zZWQuCi1N
T0NLOiByZWxlYXNlX3dvcmtfaXRlbTogc3R5bGUtcXVldWUgMTAwMDcKLSIiIiwKKyAgICAgICAg
ICAgICJwcm9jZXNzX3dvcmtfaXRlbSI6ICIiLAogICAgICAgICB9CiAgICAgICAgIHNlbGYuYXNz
ZXJ0X3F1ZXVlX291dHB1dHMoU3R5bGVRdWV1ZSgpLCB0b29sPXRvb2wsIHdvcmtfaXRlbT1wYXRj
aCwgZXhwZWN0ZWRfbG9ncz1leHBlY3RlZF9sb2dzKQpJbmRleDogVG9vbHMvU2NyaXB0cy93ZWJr
aXRweS90b29sL2NvbW1hbmRzL3F1ZXVlc3Rlc3QucHkKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gVG9vbHMvU2Ny
aXB0cy93ZWJraXRweS90b29sL2NvbW1hbmRzL3F1ZXVlc3Rlc3QucHkJKHJldmlzaW9uIDI2MTQw
MSkKKysrIFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvdG9vbC9jb21tYW5kcy9xdWV1ZXN0ZXN0LnB5
CSh3b3JraW5nIGNvcHkpCkBAIC02NSwxNCArNjUsMTAgQEAgY2xhc3MgUXVldWVzVGVzdCh1bml0
dGVzdC5UZXN0Q2FzZSk6CiAgICAgICAgICAgICAgICAgZXhwZWN0ZWRfZXhjZXB0aW9uPWV4Y2Vw
dGlvbiwKICAgICAgICAgICAgICAgICBleHBlY3RlZF9sb2dzPWxvZ3MpCiAKLSAgICBkZWYgX2Rl
ZmF1bHRfYmVnaW5fd29ya19xdWV1ZV9zdGRlcnIoc2VsZiwgbmFtZSk6Ci0gICAgICAgIHN0cmlu
Z19yZXBsYWNlbWVudHMgPSB7Im5hbWUiOiBuYW1lfQotICAgICAgICByZXR1cm4gIk1PQ0s6IHVw
ZGF0ZV9zdGF0dXM6ICUobmFtZSlzIFN0YXJ0aW5nIFF1ZXVlXG4iICUgc3RyaW5nX3JlcGxhY2Vt
ZW50cwotCiAgICAgZGVmIF9kZWZhdWx0X2JlZ2luX3dvcmtfcXVldWVfbG9ncyhzZWxmLCBuYW1l
KToKICAgICAgICAgY2hlY2tvdXRfZGlyID0gJy9tb2NrLWNoZWNrb3V0JwogICAgICAgICBzdHJp
bmdfcmVwbGFjZW1lbnRzID0geyJuYW1lIjogbmFtZSwgJ2NoZWNrb3V0X2Rpcic6IGNoZWNrb3V0
X2Rpcn0KLSAgICAgICAgcmV0dXJuICJDQVVUSU9OOiAlKG5hbWUpcyB3aWxsIGRpc2NhcmQgYWxs
IGxvY2FsIGNoYW5nZXMgaW4gXCIlKGNoZWNrb3V0X2RpcilzXCJcblJ1bm5pbmcgV2ViS2l0ICUo
bmFtZSlzLlxuTU9DSzogdXBkYXRlX3N0YXR1czogJShuYW1lKXMgU3RhcnRpbmcgUXVldWVcbiIg
JSBzdHJpbmdfcmVwbGFjZW1lbnRzCisgICAgICAgIHJldHVybiAiQ0FVVElPTjogJShuYW1lKXMg
d2lsbCBkaXNjYXJkIGFsbCBsb2NhbCBjaGFuZ2VzIGluIFwiJShjaGVja291dF9kaXIpc1wiXG5S
dW5uaW5nIFdlYktpdCAlKG5hbWUpcy5cbiIgJSBzdHJpbmdfcmVwbGFjZW1lbnRzCiAKICAgICBk
ZWYgYXNzZXJ0X3F1ZXVlX291dHB1dHMoc2VsZiwgcXVldWUsIGFyZ3M9Tm9uZSwgd29ya19pdGVt
PU5vbmUsIGV4cGVjdGVkX3N0ZG91dD1Ob25lLCBleHBlY3RlZF9zdGRlcnI9Tm9uZSwgZXhwZWN0
ZWRfZXhjZXB0aW9ucz1Ob25lLCBleHBlY3RlZF9sb2dzPU5vbmUsIG9wdGlvbnM9Tm9uZSwgdG9v
bD1Ob25lKToKICAgICAgICAgaWYgbm90IHRvb2w6CkluZGV4OiBUb29scy9TY3JpcHRzL3dlYmtp
dHB5L3Rvb2wvY29tbWFuZHMvc2hlcmlmZmJvdC5weQo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9TY3Jp
cHRzL3dlYmtpdHB5L3Rvb2wvY29tbWFuZHMvc2hlcmlmZmJvdC5weQkocmV2aXNpb24gMjYxNDAx
KQorKysgVG9vbHMvU2NyaXB0cy93ZWJraXRweS90b29sL2NvbW1hbmRzL3NoZXJpZmZib3QucHkJ
KHdvcmtpbmcgY29weSkKQEAgLTU1LDcgKzU1LDcgQEAgY2xhc3MgU2hlcmlmZkJvdChBYnN0cmFj
dFF1ZXVlLCBTdGVwU2VxdQogICAgICAgICByZXR1cm4gTm9uZQogCiAgICAgZGVmIF9pc19vbGRf
ZmFpbHVyZShzZWxmLCByZXZpc2lvbik6Ci0gICAgICAgIHJldHVybiBzZWxmLl90b29sLnN0YXR1
c19zZXJ2ZXIuc3ZuX3JldmlzaW9uKHJldmlzaW9uKQorICAgICAgICByZXR1cm4gRmFsc2UKIAog
ICAgIGRlZiBuZXh0X3dvcmtfaXRlbShzZWxmKToKICAgICAgICAgc2VsZi5faXJjX2JvdC5wcm9j
ZXNzX3BlbmRpbmdfbWVzc2FnZXMoKQo=
</data>

          </attachment>
      

    </bug>

</bugzilla>