<?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>209683</bug_id>
          
          <creation_ts>2020-03-27 15:14:14 -0700</creation_ts>
          <short_desc>Delete code for security EWS from old EWS</short_desc>
          <delta_ts>2021-02-19 08:54:09 -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>Tools / Tests</component>
          <version>Other</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Aakash Jain">aakash_jain</reporter>
          <assigned_to name="Aakash Jain">aakash_jain</assigned_to>
          <cc>aakash_jain</cc>
    
    <cc>ap</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>glenn</cc>
    
    <cc>jbedard</cc>
    
    <cc>kocsen_chung</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1635018</commentid>
    <comment_count>0</comment_count>
    <who name="Aakash Jain">aakash_jain</who>
    <bug_when>2020-03-27 15:14:14 -0700</bug_when>
    <thetext>Old EWS has been deprecated. All the queues have been moved to new EWS.

We should delete the code which was added to support security bugs in old EWS. New EWS implements security EWS in completely different manner.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1635024</commentid>
    <comment_count>1</comment_count>
      <attachid>394764</attachid>
    <who name="Aakash Jain">aakash_jain</who>
    <bug_when>2020-03-27 15:20:42 -0700</bug_when>
    <thetext>Created attachment 394764
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1635028</commentid>
    <comment_count>2</comment_count>
    <who name="Aakash Jain">aakash_jain</who>
    <bug_when>2020-03-27 15:24:22 -0700</bug_when>
    <thetext>(In reply to Aakash Jain from comment #1)
&gt; Created attachment 394764 [details]
This reverts r232979, r233061, r233190, r233219, r233276 and r233288. It also take cares of maintaining Python 3 support (e.g. retaining changes from r251374).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1635044</commentid>
    <comment_count>3</comment_count>
      <attachid>394764</attachid>
    <who name="Kocsen Chung">kocsen_chung</who>
    <bug_when>2020-03-27 16:08:17 -0700</bug_when>
    <thetext>Comment on attachment 394764
Patch

Looks good to me.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1635528</commentid>
    <comment_count>4</comment_count>
    <who name="Jonathan Bedard">jbedard</who>
    <bug_when>2020-03-30 08:48:58 -0700</bug_when>
    <thetext>This is a really difficult patch to review, not because it&apos;s bad code, but because it&apos;s reverting code that is unfortunately coupled tightly with code that we still need.

I&apos;m going to Rubber-stamp it because it&apos;s passed tests and, as far as I can tell, does what it claims to. Difficult for me to be certain about that, though, this isn&apos;t code I&apos;m very familiar with.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1635529</commentid>
    <comment_count>5</comment_count>
    <who name="Jonathan Bedard">jbedard</who>
    <bug_when>2020-03-30 08:49:05 -0700</bug_when>
    <thetext>rs=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1635611</commentid>
    <comment_count>6</comment_count>
    <who name="Aakash Jain">aakash_jain</who>
    <bug_when>2020-03-30 11:26:06 -0700</bug_when>
    <thetext>Committed r259212: &lt;https://trac.webkit.org/changeset/259212&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1635613</commentid>
    <comment_count>7</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2020-03-30 11:27:12 -0700</bug_when>
    <thetext>&lt;rdar://problem/61064617&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1636069</commentid>
    <comment_count>8</comment_count>
    <who name="Aakash Jain">aakash_jain</who>
    <bug_when>2020-03-31 09:54:14 -0700</bug_when>
    <thetext>Committed r259295 &lt;https://trac.webkit.org/changeset/259295&gt; (which reverts r233220).</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>394764</attachid>
            <date>2020-03-27 15:20:42 -0700</date>
            <delta_ts>2021-02-19 08:54:09 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-209683-20200327182040.patch</filename>
            <type>text/plain</type>
            <size>69213</size>
            <attacher name="Aakash Jain">aakash_jain</attacher>
            
              <data encoding="base64">SW5kZXg6IFRvb2xzL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9DaGFuZ2VMb2cJKHJl
dmlzaW9uIDI1OTE0MikKKysrIFRvb2xzL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwz
ICsxLDQwIEBACisyMDIwLTAzLTI3ICBBYWthc2ggSmFpbiAgPGFha2FzaF9qYWluQGFwcGxlLmNv
bT4KKworICAgICAgICBEZWxldGUgY29kZSBmb3Igc2VjdXJpdHkgRVdTIGZyb20gb2xkIEVXUwor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjA5NjgzCisK
KyAgICAgICAgUmV2ZXJ0ZWQgcjIzMjk3OSwgcjIzMzA2MSwgcjIzMzE5MCwgcjIzMzIxOSwgcjIz
MzI3NiBhbmQgcjIzMzI4OC4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4K
KworICAgICAgICAqIFF1ZXVlU3RhdHVzU2VydmVyL2hhbmRsZXJzL3JlbGVhc2VwYXRjaC5weTog
UmV2ZXJ0ZWQgY2hhbmdlcyBmb3Igc2VjdXJpdHkgRVdTIGluIG9sZCBFV1MuCisgICAgICAgICog
UXVldWVTdGF0dXNTZXJ2ZXIvbWFpbi5weToKKyAgICAgICAgKiBRdWV1ZVN0YXR1c1NlcnZlci9j
b25maWcvYXV0aG9yaXphdGlvbi5weTogUmVtb3ZlZC4KKyAgICAgICAgKiBRdWV1ZVN0YXR1c1Nl
cnZlci9oYW5kbGVycy9mZXRjaGF0dGFjaG1lbnQucHk6IFJlbW92ZWQuCisgICAgICAgICogUXVl
dWVTdGF0dXNTZXJ2ZXIvaGFuZGxlcnMvdXBsb2FkYXR0YWNobWVudC5weTogUmVtb3ZlZC4KKyAg
ICAgICAgKiBRdWV1ZVN0YXR1c1NlcnZlci9tb2RlbC9hdHRhY2htZW50ZGF0YS5weTogUmVtb3Zl
ZC4KKyAgICAgICAgKiBRdWV1ZVN0YXR1c1NlcnZlci90ZW1wbGF0ZXMvdXBsb2FkYXR0YWNobWVu
dC5odG1sOiBSZW1vdmVkLgorICAgICAgICAqIFNjcmlwdHMvd2Via2l0cHkvY29tbW9uL25ldC9i
dWd6aWxsYS9jb25zdGFudHMucHk6IFJlbW92ZWQuCisgICAgICAgICogU2NyaXB0cy93ZWJraXRw
eS9jb21tb24vbmV0L2J1Z3ppbGxhL2F0dGFjaG1lbnQucHk6CisgICAgICAgICogU2NyaXB0cy93
ZWJraXRweS9jb21tb24vbmV0L2J1Z3ppbGxhL2F0dGFjaG1lbnRfdW5pdHRlc3QucHk6CisgICAg
ICAgICogU2NyaXB0cy93ZWJraXRweS9jb21tb24vbmV0L2J1Z3ppbGxhL2J1Zy5weToKKyAgICAg
ICAgKiBTY3JpcHRzL3dlYmtpdHB5L2NvbW1vbi9uZXQvYnVnemlsbGEvYnVnemlsbGEucHk6Cisg
ICAgICAgICogU2NyaXB0cy93ZWJraXRweS9jb21tb24vbmV0L2J1Z3ppbGxhL2J1Z3ppbGxhX21v
Y2sucHk6CisgICAgICAgICogU2NyaXB0cy93ZWJraXRweS9jb21tb24vbmV0L2J1Z3ppbGxhL2J1
Z3ppbGxhX3VuaXR0ZXN0LnB5OgorICAgICAgICAqIFNjcmlwdHMvd2Via2l0cHkvY29tbW9uL25l
dC9zdGF0dXNzZXJ2ZXIucHk6CisgICAgICAgICogU2NyaXB0cy93ZWJraXRweS9jb21tb24vbmV0
L3N0YXR1c3NlcnZlcl9tb2NrLnB5OgorICAgICAgICAqIFNjcmlwdHMvd2Via2l0cHkvdG9vbC9i
b3QvZmVlZGVycy5weToKKyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdHB5L3Rvb2wvYm90L3N0eWxl
cXVldWV0YXNrLnB5OgorICAgICAgICAqIFNjcmlwdHMvd2Via2l0cHkvdG9vbC9jb21tYW5kcy9k
b3dubG9hZC5weToKKyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdHB5L3Rvb2wvY29tbWFuZHMvZWFy
bHl3YXJuaW5nc3lzdGVtLnB5OgorICAgICAgICAqIFNjcmlwdHMvd2Via2l0cHkvdG9vbC9jb21t
YW5kcy9lYXJseXdhcm5pbmdzeXN0ZW1fdW5pdHRlc3QucHk6CisgICAgICAgICogU2NyaXB0cy93
ZWJraXRweS90b29sL2NvbW1hbmRzL3F1ZXJpZXNfdW5pdHRlc3QucHk6CisgICAgICAgICogU2Ny
aXB0cy93ZWJraXRweS90b29sL2NvbW1hbmRzL3F1ZXVlcy5weToKKyAgICAgICAgKiBTY3JpcHRz
L3dlYmtpdHB5L3Rvb2wvY29tbWFuZHMvcXVldWVzX3VuaXR0ZXN0LnB5OgorICAgICAgICAqIFNj
cmlwdHMvd2Via2l0cHkvdG9vbC9jb21tYW5kcy91cGxvYWRfdW5pdHRlc3QucHk6CisgICAgICAg
ICogU2NyaXB0cy93ZWJraXRweS90b29sL21haW4ucHk6CisgICAgICAgICogU2NyaXB0cy93ZWJr
aXRweS90b29sL3N0ZXBzL29ic29sZXRlcGF0Y2hlcy5weToKKwogMjAyMC0wMy0yNyAgUGhpbGlw
cGUgTm9ybWFuZCAgPHBub3JtYW5kQGlnYWxpYS5jb20+CiAKICAgICAgICAgW0ZsYXRwYWsgU0RL
XSBBbGxvdyBwYXNzaW5nIGdzdC1idWlsZCBNZXNvbiBvcHRpb25zCkluZGV4OiBUb29scy9RdWV1
ZVN0YXR1c1NlcnZlci9tYWluLnB5Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFRvb2xzL1F1ZXVlU3RhdHVzU2Vy
dmVyL21haW4ucHkJKHJldmlzaW9uIDI1OTE0MikKKysrIFRvb2xzL1F1ZXVlU3RhdHVzU2VydmVy
L21haW4ucHkJKHdvcmtpbmcgY29weSkKQEAgLTM1LDcgKzM1LDYgQEAgZnJvbSBnb29nbGUuYXBw
ZW5naW5lLmV4dCBpbXBvcnQgd2ViYXBwCiBmcm9tIGdvb2dsZS5hcHBlbmdpbmUuZXh0LndlYmFw
cC51dGlsIGltcG9ydCBydW5fd3NnaV9hcHAKIAogZnJvbSBoYW5kbGVycy5hY3RpdmVib3RzIGlt
cG9ydCBBY3RpdmVCb3RzCi1mcm9tIGhhbmRsZXJzLmZldGNoYXR0YWNobWVudCBpbXBvcnQgRmV0
Y2hBdHRhY2htZW50CiBmcm9tIGhhbmRsZXJzLmdjIGltcG9ydCBHQwogZnJvbSBoYW5kbGVycy5u
ZXh0cGF0Y2ggaW1wb3J0IE5leHRQYXRjaAogZnJvbSBoYW5kbGVycy5wYXRjaCBpbXBvcnQgUGF0
Y2gKQEAgLTU2LDcgKzU1LDYgQEAgZnJvbSBoYW5kbGVycy5zeW5jcXVldWVsb2dzIGltcG9ydCBT
eW5jUQogZnJvbSBoYW5kbGVycy51cGRhdGVzdGF0dXMgaW1wb3J0IFVwZGF0ZVN0YXR1cwogZnJv
bSBoYW5kbGVycy51cGRhdGVzdm5yZXZpc2lvbiBpbXBvcnQgVXBkYXRlU1ZOUmV2aXNpb24KIGZy
b20gaGFuZGxlcnMudXBkYXRld29ya2l0ZW1zIGltcG9ydCBVcGRhdGVXb3JrSXRlbXMKLWZyb20g
aGFuZGxlcnMudXBsb2FkYXR0YWNobWVudCBpbXBvcnQgVXBsb2FkQXR0YWNobWVudAogCiAKIHdl
YmFwcC50ZW1wbGF0ZS5yZWdpc3Rlcl90ZW1wbGF0ZV9saWJyYXJ5KCdmaWx0ZXJzLndlYmtpdF9l
eHRyYXMnKQpAQCAtNzgsMTMgKzc2LDExIEBAIHJvdXRlcyA9IFsKICAgICAocicvcXVldWUtc3Rh
dHVzLyguKiknLCBRdWV1ZVN0YXR1cyksCiAgICAgKHInL3F1ZXVlLXN0YXR1cy1qc29uLyguKikn
LCBRdWV1ZVN0YXR1c0pTT04pLAogICAgIChyJy9uZXh0LXBhdGNoLyguKiknLCBOZXh0UGF0Y2gp
LAotICAgIChyJy9hdHRhY2htZW50LyguKikvKC4qKScsIEZldGNoQXR0YWNobWVudCksCiAgICAg
KCcvcmVsZWFzZS1wYXRjaCcsIFJlbGVhc2VQYXRjaCksCiAgICAgKCcvcmVsZWFzZS1sb2NrJywg
UmVsZWFzZUxvY2spLAogICAgICgnL3VwZGF0ZS1zdGF0dXMnLCBVcGRhdGVTdGF0dXMpLAogICAg
ICgnL3VwZGF0ZS13b3JrLWl0ZW1zJywgVXBkYXRlV29ya0l0ZW1zKSwKICAgICAoJy91cGRhdGUt
c3ZuLXJldmlzaW9uJywgVXBkYXRlU1ZOUmV2aXNpb24pLAotICAgICgnL3VwbG9hZC1hdHRhY2ht
ZW50JywgVXBsb2FkQXR0YWNobWVudCksCiAgICAgKCcvYWN0aXZlLWJvdHMnLCBBY3RpdmVCb3Rz
KSwKICAgICAocicvcHJvY2Vzc2luZy10aW1lcy1qc29uLyhcZCspXC0oXGQrKVwtKFxkKylcLShc
ZCspXC0oXGQrKVwtKFxkKylcLShcZCspXC0oXGQrKVwtKFxkKylcLShcZCspXC0oXGQrKVwtKFxk
KyknLCBQcm9jZXNzaW5nVGltZXNKU09OKSwKIF0KSW5kZXg6IFRvb2xzL1F1ZXVlU3RhdHVzU2Vy
dmVyL2NvbmZpZy9hdXRob3JpemF0aW9uLnB5Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFRvb2xzL1F1ZXVlU3Rh
dHVzU2VydmVyL2NvbmZpZy9hdXRob3JpemF0aW9uLnB5CShyZXZpc2lvbiAyNTkxNDIpCisrKyBU
b29scy9RdWV1ZVN0YXR1c1NlcnZlci9jb25maWcvYXV0aG9yaXphdGlvbi5weQkobm9uZXhpc3Rl
bnQpCkBAIC0xLDcyICswLDAgQEAKLSMgQ29weXJpZ2h0IChDKSAyMDE4IEFwcGxlIEluYy4gQWxs
IHJpZ2h0cyByZXNlcnZlZC4KLSMKLSMgUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2Ug
YW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0jIG1vZGlmaWNhdGlvbiwgYXJlIHBl
cm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotIyBhcmUgbWV0
OgotIyAxLiAgUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKLSMgICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSMgMi4gIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5h
cnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0jICAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4g
dGhlCi0jICAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQg
d2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotIwotIyBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZ
IEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnIEFORAotIyBBTlkgRVhQ
UkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LCBUSEUgSU1QTElFRAotIyBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVT
UyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFCi0jIERJU0NMQUlNRUQuIElOIE5PIEVWRU5U
IFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SCi0jIEFO
WSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENP
TlNFUVVFTlRJQUwKLSMgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBS
T0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IKLSMgU0VSVklDRVM7IExPU1MgT0YgVVNF
LCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIKLSMg
Q0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFD
VCwgU1RSSUNUIExJQUJJTElUWSwKLSMgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1Ig
T1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKLSMgT0YgVEhJUyBT
T0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFH
RS4KLQotaW1wb3J0IG9zCi0KLV9jYWNoZWRfYXV0aG9yaXplZF9hcGlfa2V5cyA9IGZyb3plbnNl
dChbXSkKLV9BVVRIT1JJWkFUSU9OX1NDSEVNRSA9ICJhcGlrZXkiCi0KLQotZGVmIF9wYXRoX3Rv
X2F1dGhvcml6ZWRfYXBpX2tleXNfZmlsZSgpOgotICAgIHJldHVybiBvcy5wYXRoLmFic3BhdGgo
b3MucGF0aC5qb2luKG9zLnBhdGguZGlybmFtZShfX2ZpbGVfXyksICJhdXRob3JpemVkX2FwaV9r
ZXlzLnR4dCIpKQotCi0KLWRlZiBfcGFyc2VfYXV0aG9yaXplZF9hcGlfa2V5cyhmaWxlKToKLSAg
ICBhcGlfa2V5cyA9IHNldCgpCi0gICAgZm9yIGxpbmUgaW4gZmlsZToKLSAgICAgICAgbGluZSA9
IGxpbmUuc3RyaXAoKQotICAgICAgICBpZiBub3QgbGluZSBvciBsaW5lLnN0YXJ0c3dpdGgoIiMi
KTogICMgU2tpcCBlbXB0eSBsaW5lcyBhbmQgY29tbWVudHMKLSAgICAgICAgICAgIGNvbnRpbnVl
Ci0gICAgICAgIGFwaV9rZXlzLmFkZChsaW5lKQotICAgIHJldHVybiBmcm96ZW5zZXQoYXBpX2tl
eXMpCi0KLQotZGVmIGF1dGhvcml6ZWRfYXBpX2tleXMoKToKLSAgICBnbG9iYWwgX2NhY2hlZF9h
dXRob3JpemVkX2FwaV9rZXlzCi0gICAgaWYgX2NhY2hlZF9hdXRob3JpemVkX2FwaV9rZXlzOgot
ICAgICAgICByZXR1cm4gX2NhY2hlZF9hdXRob3JpemVkX2FwaV9rZXlzCi0KLSAgICB3aXRoIG9w
ZW4oX3BhdGhfdG9fYXV0aG9yaXplZF9hcGlfa2V5c19maWxlKCksICJyIikgYXMgZmlsZToKLSAg
ICAgICAgX2NhY2hlZF9hdXRob3JpemVkX2FwaV9rZXlzID0gX3BhcnNlX2F1dGhvcml6ZWRfYXBp
X2tleXMoZmlsZSkKLSAgICByZXR1cm4gX2NhY2hlZF9hdXRob3JpemVkX2FwaV9rZXlzCi0KLQot
ZGVmIF9wYXJzZV9hdXRob3JpemF0aW9uX2hlYWRlcihjcmVkZW50aWFscyk6Ci0gICAgIyBTZWUg
PGh0dHBzOi8vdG9vbHMuaWV0Zi5vcmcvaHRtbC9yZmM3MjM1I3NlY3Rpb24tNC4yPi4KLSAgICBw
YXJ0cyA9IGNyZWRlbnRpYWxzLnNwbGl0KCIgIiwgMSkKLSAgICBpZiBsZW4ocGFydHMpIDwgMjoK
LSAgICAgICAgcmV0dXJuICIiCi0gICAgc2NoZW1lID0gcGFydHNbMF0KLSAgICB0b2tlbjY4X2Vu
Y29kZWRfdmFsdWUgPSBwYXJ0c1sxXQotICAgIGlmIHNjaGVtZS5sb3dlcigpID09IF9BVVRIT1JJ
WkFUSU9OX1NDSEVNRToKLSAgICAgICAgcmV0dXJuIHRva2VuNjhfZW5jb2RlZF92YWx1ZQotICAg
IHJldHVybiAiIgotCi0KLWRlZiBpc19hdXRob3JpemVkKHJlcXVlc3QpOgotICAgIGFwaV9rZXkg
PSAnJwotICAgIGNyZWRlbnRpYWxzID0gcmVxdWVzdC5oZWFkZXJzLmdldCgiQXV0aG9yaXphdGlv
biIpCi0gICAgaWYgY3JlZGVudGlhbHM6Ci0gICAgICAgIGFwaV9rZXkgPSBfcGFyc2VfYXV0aG9y
aXphdGlvbl9oZWFkZXIoY3JlZGVudGlhbHMpCi0gICAgaWYgbm90IGFwaV9rZXk6Ci0gICAgICAg
IGFwaV9rZXkgPSByZXF1ZXN0LmdldChfQVVUSE9SSVpBVElPTl9TQ0hFTUUpCi0gICAgcmV0dXJu
IGFwaV9rZXkgaW4gYXV0aG9yaXplZF9hcGlfa2V5cygpCkluZGV4OiBUb29scy9RdWV1ZVN0YXR1
c1NlcnZlci9oYW5kbGVycy9mZXRjaGF0dGFjaG1lbnQucHkKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gVG9vbHMv
UXVldWVTdGF0dXNTZXJ2ZXIvaGFuZGxlcnMvZmV0Y2hhdHRhY2htZW50LnB5CShyZXZpc2lvbiAy
NTkxNDIpCisrKyBUb29scy9RdWV1ZVN0YXR1c1NlcnZlci9oYW5kbGVycy9mZXRjaGF0dGFjaG1l
bnQucHkJKG5vbmV4aXN0ZW50KQpAQCAtMSw0NSArMCwwIEBACi0jIENvcHlyaWdodCAoQykgMjAx
OCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0jCi0jIFJlZGlzdHJpYnV0aW9uIGFu
ZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotIyBtb2Rp
ZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRp
dGlvbnMKLSMgYXJlIG1ldDoKLSMgMS4gIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBt
dXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0jICAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0jIDIuICBSZWRpc3Ry
aWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdo
dAotIyAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyIGluIHRoZQotIyAgICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0
ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSMKLSMgVEhJUyBTT0ZUV0FS
RSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMn
JyBBTkQKLSMgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywgVEhFIElNUExJRUQKLSMgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFC
SUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRQotIyBESVNDTEFJ
TUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMgQkUg
TElBQkxFIEZPUgotIyBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwg
RVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMCi0jIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SCi0jIFNFUlZJ
Q0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBU
SU9OKSBIT1dFVkVSCi0jIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdI
RVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksCi0jIE9SIFRPUlQgKElOQ0xVRElO
RyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUg
VVNFCi0jIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJ
VFkgT0YgU1VDSCBEQU1BR0UuCi0KLWZyb20gY29uZmlnIGltcG9ydCBhdXRob3JpemF0aW9uCi1m
cm9tIGdvb2dsZS5hcHBlbmdpbmUuZXh0IGltcG9ydCB3ZWJhcHAKLWZyb20gbW9kZWwuYXR0YWNo
bWVudGRhdGEgaW1wb3J0IEF0dGFjaG1lbnREYXRhCi0KLQotY2xhc3MgRmV0Y2hBdHRhY2htZW50
KHdlYmFwcC5SZXF1ZXN0SGFuZGxlcik6Ci0gICAgZGVmIGdldChzZWxmLCBhY3Rpb24sIGF0dGFj
aG1lbnRfaWRfc3RyaW5nKToKLSAgICAgICAgaWYgYWN0aW9uIG5vdCBpbiBbImRhdGEiLCAibWV0
YWRhdGEiXToKLSAgICAgICAgICAgIHNlbGYuZXJyb3IoNDAwKQotICAgICAgICAgICAgcmV0dXJu
Ci0gICAgICAgIGlmIG5vdCBhdXRob3JpemF0aW9uLmlzX2F1dGhvcml6ZWQoc2VsZi5yZXF1ZXN0
KToKLSAgICAgICAgICAgICMgUmV0dXJuIGFuIEhUVFAgNDA0IHJlc3BvbnNlIGNvZGUgaW5zdGVh
ZCBvZiBhbiBIVFRQIDQwMSB0byBhdm9pZCBsZWFraW5nIHdoZXRoZXIKLSAgICAgICAgICAgICMg
dGhlIGF0dGFjaG1lbnQgaWQgaXMga25vd24uCi0gICAgICAgICAgICBzZWxmLmVycm9yKDQwNCkK
LSAgICAgICAgICAgIHJldHVybgotICAgICAgICBhdHRhY2htZW50X2RhdGEgPSBBdHRhY2htZW50
RGF0YS5sb29rdXBfaWZfZXhpc3RzKGludChhdHRhY2htZW50X2lkX3N0cmluZykpCi0gICAgICAg
IGlmIG5vdCBhdHRhY2htZW50X2RhdGE6Ci0gICAgICAgICAgICBzZWxmLmVycm9yKDQwNCkKLSAg
ICAgICAgICAgIHJldHVybgotICAgICAgICBpZiBhY3Rpb24gPT0gIm1ldGFkYXRhIjoKLSAgICAg
ICAgICAgIHNlbGYucmVzcG9uc2Uub3V0LndyaXRlKGF0dGFjaG1lbnRfZGF0YS5tZXRhZGF0YSkK
LSAgICAgICAgZWxzZToKLSAgICAgICAgICAgIHNlbGYucmVzcG9uc2Uub3V0LndyaXRlKGF0dGFj
aG1lbnRfZGF0YS5kYXRhKQpJbmRleDogVG9vbHMvUXVldWVTdGF0dXNTZXJ2ZXIvaGFuZGxlcnMv
cmVsZWFzZXBhdGNoLnB5Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFRvb2xzL1F1ZXVlU3RhdHVzU2VydmVyL2hh
bmRsZXJzL3JlbGVhc2VwYXRjaC5weQkocmV2aXNpb24gMjU5MTQyKQorKysgVG9vbHMvUXVldWVT
dGF0dXNTZXJ2ZXIvaGFuZGxlcnMvcmVsZWFzZXBhdGNoLnB5CSh3b3JraW5nIGNvcHkpCkBAIC0z
Miw3ICszMiw2IEBAIGZyb20gZ29vZ2xlLmFwcGVuZ2luZS5leHQud2ViYXBwIGltcG9ydCAKIGZy
b20gaGFuZGxlcnMudXBkYXRlYmFzZSBpbXBvcnQgVXBkYXRlQmFzZQogZnJvbSBsb2dnZXJzLnJl
Y29yZHBhdGNoZXZlbnQgaW1wb3J0IFJlY29yZFBhdGNoRXZlbnQKIGZyb20gbW9kZWwuYXR0YWNo
bWVudCBpbXBvcnQgQXR0YWNobWVudAotZnJvbSBtb2RlbC5hdHRhY2htZW50ZGF0YSBpbXBvcnQg
QXR0YWNobWVudERhdGEKIGZyb20gbW9kZWwucXVldWVzIGltcG9ydCBRdWV1ZQogCiAKQEAgLTQw
LDEwICszOSw2IEBAIGNsYXNzIFJlbGVhc2VQYXRjaChVcGRhdGVCYXNlKToKICAgICBkZWYgZ2V0
KHNlbGYpOgogICAgICAgICBzZWxmLnJlc3BvbnNlLm91dC53cml0ZSh0ZW1wbGF0ZS5yZW5kZXIo
InRlbXBsYXRlcy9yZWxlYXNlcGF0Y2guaHRtbCIsIE5vbmUpKQogCi0gICAgQHN0YXRpY21ldGhv
ZAotICAgIGRlZiBfY2hlY2tfcHJvY2Vzc2VkX2J5X2FsbF9xdWV1ZXMoYXR0YWNobWVudCk6Ci0g
ICAgICAgIHJldHVybiBhbGwoYXR0YWNobWVudC5wb3NpdGlvbl9pbl9xdWV1ZShxdWV1ZSkgaXMg
Tm9uZSBmb3IgcXVldWUgaW4gUXVldWUuYWxsX2V3cygpKQotCiAgICAgZGVmIHBvc3Qoc2VsZik6
CiAgICAgICAgIHF1ZXVlX25hbWUgPSBzZWxmLnJlcXVlc3QuZ2V0KCJxdWV1ZV9uYW1lIikKICAg
ICAgICAgIyBGSVhNRTogVGhpcyBxdWV1ZSBsb29rdXAgc2hvdWxkIGJlIHNoYXJlZCBiZXR3ZWVu
IGhhbmRsZXJzLgpAQCAtNjMsNiArNTgsMyBAQCBjbGFzcyBSZWxlYXNlUGF0Y2goVXBkYXRlQmFz
ZSk6CiAgICAgICAgIFJlY29yZFBhdGNoRXZlbnQuc3RvcHBlZChhdHRhY2htZW50X2lkLCBxdWV1
ZV9uYW1lLCBsYXN0X3N0YXR1cy5tZXNzYWdlKQogCiAgICAgICAgIHF1ZXVlLmFjdGl2ZV93b3Jr
X2l0ZW1zKCkuZXhwaXJlX2l0ZW0oYXR0YWNobWVudF9pZCkKLQotICAgICAgICBpZiBzZWxmLl9j
aGVja19wcm9jZXNzZWRfYnlfYWxsX3F1ZXVlcyhhdHRhY2htZW50KToKLSAgICAgICAgICAgIEF0
dGFjaG1lbnREYXRhLnJlbW92ZV9hdHRhY2htZW50X2RhdGEoYXR0YWNobWVudF9pZCkKSW5kZXg6
IFRvb2xzL1F1ZXVlU3RhdHVzU2VydmVyL2hhbmRsZXJzL3VwbG9hZGF0dGFjaG1lbnQucHkKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gVG9vbHMvUXVldWVTdGF0dXNTZXJ2ZXIvaGFuZGxlcnMvdXBsb2FkYXR0YWNo
bWVudC5weQkocmV2aXNpb24gMjU5MTQyKQorKysgVG9vbHMvUXVldWVTdGF0dXNTZXJ2ZXIvaGFu
ZGxlcnMvdXBsb2FkYXR0YWNobWVudC5weQkobm9uZXhpc3RlbnQpCkBAIC0xLDM5ICswLDAgQEAK
LSMgQ29weXJpZ2h0IChDKSAyMDE4IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSMK
LSMgUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0
aCBvciB3aXRob3V0Ci0jIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0
IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotIyBhcmUgbWV0OgotIyAxLiAgUmVkaXN0cmlidXRp
b25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSMgICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lci4KLSMgMi4gIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVj
ZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0jICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0jICAgICBkb2N1bWVudGF0
aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9u
LgotIwotIyBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBD
T05UUklCVVRPUlMgYGBBUyBJUycnIEFORAotIyBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJB
TlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRAotIyBXQVJS
QU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBV
UlBPU0UgQVJFCi0jIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1Ig
SVRTIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SCi0jIEFOWSBESVJFQ1QsIElORElSRUNULCBJ
TkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwKLSMgREFNQUdF
UyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRV
VEUgR09PRFMgT1IKLSMgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBP
UiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIKLSMgQ0FVU0VEIEFORCBPTiBBTlkgVEhF
T1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwK
LSMgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElO
IEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKLSMgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJ
U0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLQotZnJvbSBnb29nbGUuYXBw
ZW5naW5lLmV4dCBpbXBvcnQgd2ViYXBwLCBkYgotZnJvbSBnb29nbGUuYXBwZW5naW5lLmV4dC53
ZWJhcHAgaW1wb3J0IHRlbXBsYXRlCi0KLWZyb20gaGFuZGxlcnMudXBkYXRlYmFzZSBpbXBvcnQg
VXBkYXRlQmFzZQotZnJvbSBtb2RlbC5hdHRhY2htZW50ZGF0YSBpbXBvcnQgQXR0YWNobWVudERh
dGEKLQotCi1jbGFzcyBVcGxvYWRBdHRhY2htZW50KFVwZGF0ZUJhc2UpOgotICAgIGRlZiBnZXQo
c2VsZik6Ci0gICAgICAgIHNlbGYucmVzcG9uc2Uub3V0LndyaXRlKHRlbXBsYXRlLnJlbmRlcigi
dGVtcGxhdGVzL3VwbG9hZGF0dGFjaG1lbnQuaHRtbCIsIE5vbmUpKQotCi0gICAgZGVmIHBvc3Qo
c2VsZik6Ci0gICAgICAgIGF0dGFjaG1lbnRfaWQgPSBzZWxmLl9pbnRfZnJvbV9yZXF1ZXN0KCJh
dHRhY2htZW50X2lkIikKLSAgICAgICAgYXR0YWNobWVudF9tZXRhZGF0YSA9IHNlbGYucmVxdWVz
dC5nZXQoImF0dGFjaG1lbnRfbWV0YWRhdGEiKQotICAgICAgICBhdHRhY2htZW50X2RhdGEgPSBz
ZWxmLnJlcXVlc3QuZ2V0KCJhdHRhY2htZW50X2RhdGEiKQotICAgICAgICBBdHRhY2htZW50RGF0
YS5hZGRfYXR0YWNobWVudF9kYXRhKGF0dGFjaG1lbnRfaWQsIHN0cihhdHRhY2htZW50X21ldGFk
YXRhKSwgc3RyKGF0dGFjaG1lbnRfZGF0YSkpCi0gICAgICAgIHNlbGYucmVzcG9uc2Uub3V0Lndy
aXRlKGF0dGFjaG1lbnRfaWQpCkluZGV4OiBUb29scy9RdWV1ZVN0YXR1c1NlcnZlci9tb2RlbC9h
dHRhY2htZW50ZGF0YS5weQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9RdWV1ZVN0YXR1c1NlcnZlci9t
b2RlbC9hdHRhY2htZW50ZGF0YS5weQkocmV2aXNpb24gMjU5MTQyKQorKysgVG9vbHMvUXVldWVT
dGF0dXNTZXJ2ZXIvbW9kZWwvYXR0YWNobWVudGRhdGEucHkJKG5vbmV4aXN0ZW50KQpAQCAtMSw0
MyArMCwwIEBACi0jIENvcHlyaWdodCAoQykgMjAxOCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCi0jCi0jIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkg
Zm9ybXMsIHdpdGggb3Igd2l0aG91dAotIyBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJv
dmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSMgYXJlIG1ldDoKLSMgMS4gIFJl
ZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJp
Z2h0Ci0jICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIuCi0jIDIuICBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVz
dCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotIyAgICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotIyAgICAg
ZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRp
c3RyaWJ1dGlvbi4KLSMKLSMgVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMu
IEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJyBBTkQKLSMgQU5ZIEVYUFJFU1MgT1IgSU1Q
TElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFIElNUExJ
RUQKLSMgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFS
VElDVUxBUiBQVVJQT1NFIEFSRQotIyBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBM
RSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUgotIyBBTlkgRElSRUNULCBJ
TkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFM
Ci0jIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBP
RiBTVUJTVElUVVRFIEdPT0RTIE9SCi0jIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1Ig
UFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSCi0jIENBVVNFRCBBTkQg
T04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBM
SUFCSUxJVFksCi0jIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkg
QVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCi0jIE9GIFRISVMgU09GVFdBUkUsIEVW
RU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0KLWZyb20g
Z29vZ2xlLmFwcGVuZ2luZS5leHQgaW1wb3J0IGRiCi0KLQotY2xhc3MgQXR0YWNobWVudERhdGEo
ZGIuTW9kZWwpOgotICAgIGF0dGFjaG1lbnRfaWQgPSBkYi5JbnRlZ2VyUHJvcGVydHkoKQotICAg
IG1ldGFkYXRhID0gZGIuQmxvYlByb3BlcnR5KCkKLSAgICBkYXRhID0gZGIuQmxvYlByb3BlcnR5
KCkKLQotICAgIEBjbGFzc21ldGhvZAotICAgIGRlZiBhZGRfYXR0YWNobWVudF9kYXRhKGNscywg
YXR0YWNobWVudF9pZCwgbWV0YWRhdGEsIGRhdGEpOgotICAgICAgICBjbHMuZ2V0X29yX2luc2Vy
dChzdHIoYXR0YWNobWVudF9pZCksIGF0dGFjaG1lbnRfaWQ9YXR0YWNobWVudF9pZCwgbWV0YWRh
dGE9ZGIuQmxvYihtZXRhZGF0YSksIGRhdGE9ZGIuQmxvYihkYXRhKSkKLQotICAgIEBjbGFzc21l
dGhvZAotICAgIGRlZiBsb29rdXBfaWZfZXhpc3RzKGNscywgYXR0YWNobWVudF9pZCk6Ci0gICAg
ICAgIHJldHVybiBjbHMuZ2V0X2J5X2tleV9uYW1lKHN0cihhdHRhY2htZW50X2lkKSkKLQotICAg
IEBjbGFzc21ldGhvZAotICAgIGRlZiByZW1vdmVfYXR0YWNobWVudF9kYXRhKGNscywgYXR0YWNo
bWVudF9pZCk6Ci0gICAgICAgIGF0dGFjaG1lbnRfZGF0YSA9IGNscy5sb29rdXBfaWZfZXhpc3Rz
KGF0dGFjaG1lbnRfaWQpCi0gICAgICAgIGlmIGF0dGFjaG1lbnRfZGF0YToKLSAgICAgICAgICAg
IGF0dGFjaG1lbnRfZGF0YS5kZWxldGUoKQpJbmRleDogVG9vbHMvUXVldWVTdGF0dXNTZXJ2ZXIv
dGVtcGxhdGVzL3VwbG9hZGF0dGFjaG1lbnQuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9RdWV1
ZVN0YXR1c1NlcnZlci90ZW1wbGF0ZXMvdXBsb2FkYXR0YWNobWVudC5odG1sCShyZXZpc2lvbiAy
NTkxNDIpCisrKyBUb29scy9RdWV1ZVN0YXR1c1NlcnZlci90ZW1wbGF0ZXMvdXBsb2FkYXR0YWNo
bWVudC5odG1sCShub25leGlzdGVudCkKQEAgLTEsNiArMCwwIEBACi08Zm9ybSBuYW1lPSJ1cGxv
YWRfYXR0YWNobWVudCIgZW5jdHlwZT0ibXVsdGlwYXJ0L2Zvcm0tZGF0YSIgbWV0aG9kPSJQT1NU
Ij4KLUF0dGFjaG1lbnQgaWQ6IDxpbnB1dCBuYW1lPSJhdHRhY2htZW50X2lkIj48YnI+Ci1NZXRh
ZGF0YTogPGlucHV0IHR5cGU9ImZpbGUiIG5hbWU9ImF0dGFjaG1lbnRfbWV0YWRhdGEiPjxicj4K
LURhdGE6IDxpbnB1dCB0eXBlPSJmaWxlIiBuYW1lPSJhdHRhY2htZW50X2RhdGEiPjxicj4KLTxp
bnB1dCB0eXBlPSJzdWJtaXQiIHZhbHVlPSJVcGxvYWQgQXR0YWNobWVudCI+Ci08L2Zvcm0+Cklu
ZGV4OiBUb29scy9TY3JpcHRzL3dlYmtpdHB5L2NvbW1vbi9uZXQvc3RhdHVzc2VydmVyLnB5Cj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvY29tbW9uL25ldC9zdGF0dXNzZXJ2
ZXIucHkJKHJldmlzaW9uIDI1OTE0MikKKysrIFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvY29tbW9u
L25ldC9zdGF0dXNzZXJ2ZXIucHkJKHdvcmtpbmcgY29weSkKQEAgLTMzLDcgKzMzLDYgQEAgaW1w
b3J0IGxvZ2dpbmcKIGltcG9ydCBzeXMKIAogZnJvbSB3ZWJraXRweS5jb21tb24uY29uZmlnLnVy
bHMgaW1wb3J0IHN0YXR1c3NlcnZlcl9kZWZhdWx0X2hvc3QKLWZyb20gd2Via2l0cHkuY29tbW9u
Lm5ldC5idWd6aWxsYS5hdHRhY2htZW50IGltcG9ydCBBdHRhY2htZW50CiBmcm9tIHdlYmtpdHB5
LmNvbW1vbi5uZXQubmV0d29ya3RyYW5zYWN0aW9uIGltcG9ydCBOZXR3b3JrVHJhbnNhY3Rpb24K
IGZyb20gd2Via2l0cHkuY29tbW9uLnVuaWNvZGVfY29tcGF0aWJpbGl0eSBpbXBvcnQgU3RyaW5n
SU8KIGZyb20gd2Via2l0cHkudGhpcmRwYXJ0eS5CZWF1dGlmdWxTb3VwIGltcG9ydCBCZWF1dGlm
dWxTb3VwCkBAIC00OCwxMSArNDcsOCBAQCBfbG9nID0gbG9nZ2luZy5nZXRMb2dnZXIoX19uYW1l
X18pCiAKIAogY2xhc3MgU3RhdHVzU2VydmVyOgotICAgIF9BVVRIT1JJWkFUSU9OX0hFQURFUl9O
QU1FID0gJ0F1dGhvcml6YXRpb24nCi0KLSAgICBkZWYgX19pbml0X18oc2VsZiwgaG9zdD1zdGF0
dXNzZXJ2ZXJfZGVmYXVsdF9ob3N0LCB1c2VfaHR0cHM9VHJ1ZSwgYnJvd3Nlcj1Ob25lLCBib3Rf
aWQ9Tm9uZSk6CisgICAgZGVmIF9faW5pdF9fKHNlbGYsIGhvc3Q9c3RhdHVzc2VydmVyX2RlZmF1
bHRfaG9zdCwgYnJvd3Nlcj1Ob25lLCBib3RfaWQ9Tm9uZSk6CiAgICAgICAgIHNlbGYuc2V0X2hv
c3QoaG9zdCkKLSAgICAgICAgc2VsZi5zZXRfdXNlX2h0dHBzKHVzZV9odHRwcykKICAgICAgICAg
c2VsZi5fYXBpX2tleSA9ICcnCiAgICAgICAgIGZyb20gd2Via2l0cHkudGhpcmRwYXJ0eS5hdXRv
aW5zdGFsbGVkLm1lY2hhbml6ZSBpbXBvcnQgQnJvd3NlcgogICAgICAgICBzZWxmLl9icm93c2Vy
ID0gYnJvd3NlciBvciBCcm93c2VyKCkKQEAgLTYxLDI4ICs1NywxMyBAQCBjbGFzcyBTdGF0dXNT
ZXJ2ZXI6CiAKICAgICBkZWYgc2V0X2hvc3Qoc2VsZiwgaG9zdCk6CiAgICAgICAgIHNlbGYuaG9z
dCA9IGhvc3QKLQotICAgIGRlZiBzZXRfdXNlX2h0dHBzKHNlbGYsIHVzZV9odHRwcyk6Ci0gICAg
ICAgIHNlbGYudXNlX2h0dHBzID0gYm9vbCh1c2VfaHR0cHMpCisgICAgICAgIHNlbGYudXJsID0g
Imh0dHA6Ly8lcyIgJSBzZWxmLmhvc3QKIAogICAgIGRlZiBzZXRfYm90X2lkKHNlbGYsIGJvdF9p
ZCk6CiAgICAgICAgIHNlbGYuYm90X2lkID0gYm90X2lkCiAKLSAgICBkZWYgc2V0X2FwaV9rZXko
c2VsZiwgYXBpX2tleSk6Ci0gICAgICAgIHNlbGYuX2FwaV9rZXkgPSBzdHIoYXBpX2tleSkKLSAg
ICAgICAgbmV3X2hlYWRlcnMgPSBsaXN0KGZpbHRlcihsYW1iZGEgaGVhZGVyOiBoZWFkZXJbMF0g
IT0gc2VsZi5fQVVUSE9SSVpBVElPTl9IRUFERVJfTkFNRSwgc2VsZi5fYnJvd3Nlci5hZGRoZWFk
ZXJzKSkKLSAgICAgICAgaWYgYXBpX2tleToKLSAgICAgICAgICAgIG5ld19oZWFkZXJzLmFwcGVu
ZChzZWxmLl9hdXRob3JpemF0aW9uX2hlYWRlcl9uYW1lX2FuZF92YWx1ZV9wYWlyKCkpCi0gICAg
ICAgIHNlbGYuX2Jyb3dzZXIuYWRkaGVhZGVycyA9IG5ld19oZWFkZXJzCi0KLSAgICBkZWYgX3Nl
cnZlcl91cmwoc2VsZik6Ci0gICAgICAgIHJldHVybiAne306Ly97fScuZm9ybWF0KCgnaHR0cHMn
IGlmIHNlbGYudXNlX2h0dHBzIGVsc2UgJ2h0dHAnKSwgc2VsZi5ob3N0KQotCi0gICAgZGVmIF9h
dXRob3JpemF0aW9uX2hlYWRlcl9uYW1lX2FuZF92YWx1ZV9wYWlyKHNlbGYpOgotICAgICAgICBy
ZXR1cm4gKHNlbGYuX0FVVEhPUklaQVRJT05fSEVBREVSX05BTUUsICdhcGlrZXkgJyArIHNlbGYu
X2FwaV9rZXkpCi0KICAgICBkZWYgcmVzdWx0c191cmxfZm9yX3N0YXR1cyhzZWxmLCBzdGF0dXNf
aWQpOgotICAgICAgICByZXR1cm4gJ3t9L3Jlc3VsdHMve30nLmZvcm1hdChzZWxmLl9zZXJ2ZXJf
dXJsKCksIHN0YXR1c19pZCkKKyAgICAgICAgcmV0dXJuICd7fS9yZXN1bHRzL3t9Jy5mb3JtYXQo
c2VsZi51cmwsIHN0YXR1c19pZCkKIAogICAgIGRlZiBfYWRkX3BhdGNoKHNlbGYsIHBhdGNoKToK
ICAgICAgICAgaWYgbm90IHBhdGNoOgpAQCAtMTA5LDcgKzkwLDcgQEAgY2xhc3MgU3RhdHVzU2Vy
dmVyOgogICAgICAgICAgICAgIyBXZSBtaWdodCBuZWVkIHRvIHJlLXdpbmQgdGhlIGZpbGUgaWYg
d2UndmUgYWxyZWFkeSB0cmllZCB0byBwb3N0IGl0LgogICAgICAgICAgICAgcmVzdWx0c19maWxl
LnNlZWsoMCkKIAotICAgICAgICB1cGRhdGVfc3RhdHVzX3VybCA9ICd7fS91cGRhdGUtc3RhdHVz
Jy5mb3JtYXQoc2VsZi5fc2VydmVyX3VybCgpKQorICAgICAgICB1cGRhdGVfc3RhdHVzX3VybCA9
ICd7fS91cGRhdGUtc3RhdHVzJy5mb3JtYXQoc2VsZi51cmwpCiAgICAgICAgIHNlbGYuX2Jyb3dz
ZXIub3Blbih1cGRhdGVfc3RhdHVzX3VybCkKICAgICAgICAgc2VsZi5fYnJvd3Nlci5zZWxlY3Rf
Zm9ybShuYW1lPSJ1cGRhdGVfc3RhdHVzIikKICAgICAgICAgc2VsZi5fYnJvd3NlclsicXVldWVf
bmFtZSJdID0gcXVldWVfbmFtZQpAQCAtMTIxLDcgKzEwMiw3IEBAIGNsYXNzIFN0YXR1c1NlcnZl
cjoKICAgICAgICAgcmV0dXJuIHNlbGYuX2Jyb3dzZXIuc3VibWl0KCkucmVhZCgpICAjIFRoaXMg
aXMgdGhlIGlkIG9mIHRoZSBuZXdseSBjcmVhdGVkIHN0YXR1cyBvYmplY3QuCiAKICAgICBkZWYg
X3Bvc3Rfc3ZuX3JldmlzaW9uX3RvX3NlcnZlcihzZWxmLCBzdm5fcmV2aXNpb25fbnVtYmVyLCBi
cm9rZW5fYm90KToKLSAgICAgICAgdXBkYXRlX3N2bl9yZXZpc2lvbl91cmwgPSAne30vdXBkYXRl
LXN2bi1yZXZpc2lvbicuZm9ybWF0KHNlbGYuX3NlcnZlcl91cmwoKSkKKyAgICAgICAgdXBkYXRl
X3N2bl9yZXZpc2lvbl91cmwgPSAne30vdXBkYXRlLXN2bi1yZXZpc2lvbicuZm9ybWF0KHNlbGYu
dXJsKQogICAgICAgICBzZWxmLl9icm93c2VyLm9wZW4odXBkYXRlX3N2bl9yZXZpc2lvbl91cmwp
CiAgICAgICAgIHNlbGYuX2Jyb3dzZXIuc2VsZWN0X2Zvcm0obmFtZT0idXBkYXRlX3N2bl9yZXZp
c2lvbiIpCiAgICAgICAgIHNlbGYuX2Jyb3dzZXJbIm51bWJlciJdID0gdW5pY29kZShzdm5fcmV2
aXNpb25fbnVtYmVyKQpAQCAtMTI5LDcgKzExMCw3IEBAIGNsYXNzIFN0YXR1c1NlcnZlcjoKICAg
ICAgICAgcmV0dXJuIHNlbGYuX2Jyb3dzZXIuc3VibWl0KCkucmVhZCgpCiAKICAgICBkZWYgX3Bv
c3Rfd29ya19pdGVtc190b19zZXJ2ZXIoc2VsZiwgcXVldWVfbmFtZSwgaGlnaF9wcmlvcml0eV93
b3JrX2l0ZW1zLCB3b3JrX2l0ZW1zKToKLSAgICAgICAgdXBkYXRlX3dvcmtfaXRlbXNfdXJsID0g
J3t9L3VwZGF0ZS13b3JrLWl0ZW1zJy5mb3JtYXQoc2VsZi5fc2VydmVyX3VybCgpKQorICAgICAg
ICB1cGRhdGVfd29ya19pdGVtc191cmwgPSAne30vdXBkYXRlLXdvcmstaXRlbXMnLmZvcm1hdChz
ZWxmLnVybCkKICAgICAgICAgc2VsZi5fYnJvd3Nlci5vcGVuKHVwZGF0ZV93b3JrX2l0ZW1zX3Vy
bCkKICAgICAgICAgc2VsZi5fYnJvd3Nlci5zZWxlY3RfZm9ybShuYW1lPSJ1cGRhdGVfd29ya19p
dGVtcyIpCiAgICAgICAgIHNlbGYuX2Jyb3dzZXJbInF1ZXVlX25hbWUiXSA9IHF1ZXVlX25hbWUK
QEAgLTEzOSwyNCArMTIwLDggQEAgY2xhc3MgU3RhdHVzU2VydmVyOgogICAgICAgICBzZWxmLl9i
cm93c2VyWyJoaWdoX3ByaW9yaXR5X3dvcmtfaXRlbXMiXSA9ICIgIi5qb2luKGhpZ2hfcHJpb3Jp
dHlfd29ya19pdGVtcykKICAgICAgICAgcmV0dXJuIHNlbGYuX2Jyb3dzZXIuc3VibWl0KCkucmVh
ZCgpCiAKLSAgICBkZWYgX3VwbG9hZF9hdHRhY2htZW50X3RvX3NlcnZlcihzZWxmLCBhdHRhY2ht
ZW50X2lkLCBhdHRhY2htZW50X21ldGFkYXRhLCBhdHRhY2htZW50X2RhdGEpOgotICAgICAgICB1
cGxvYWRfYXR0YWNobWVudF91cmwgPSAne30vdXBsb2FkLWF0dGFjaG1lbnQnLmZvcm1hdChzZWxm
Ll9zZXJ2ZXJfdXJsKCkpCi0gICAgICAgIHNlbGYuX2Jyb3dzZXIub3Blbih1cGxvYWRfYXR0YWNo
bWVudF91cmwpCi0gICAgICAgIHNlbGYuX2Jyb3dzZXIuc2VsZWN0X2Zvcm0obmFtZT0ndXBsb2Fk
X2F0dGFjaG1lbnQnKQotICAgICAgICBzZWxmLl9icm93c2VyWydhdHRhY2htZW50X2lkJ10gPSB1
bmljb2RlKGF0dGFjaG1lbnRfaWQpCi0gICAgICAgIHNlbGYuX2Jyb3dzZXIuYWRkX2ZpbGUoU3Ry
aW5nSU8odW5pY29kZShhdHRhY2htZW50X21ldGFkYXRhKSksICdhcHBsaWNhdGlvbi9qc29uJywg
J2F0dGFjaG1lbnQte30tbWV0YWRhdGEuanNvbicuZm9ybWF0KGF0dGFjaG1lbnRfaWQpLCAnYXR0
YWNobWVudF9tZXRhZGF0YScpCi0gICAgICAgIGlmIGlzaW5zdGFuY2UoYXR0YWNobWVudF9kYXRh
LCB1bmljb2RlKToKLSAgICAgICAgICAgIGF0dGFjaG1lbnRfZGF0YSA9IGF0dGFjaG1lbnRfZGF0
YS5lbmNvZGUoJ3V0Zi04JykKLSAgICAgICAgc2VsZi5fYnJvd3Nlci5hZGRfZmlsZShTdHJpbmdJ
TyhhdHRhY2htZW50X2RhdGEpLCAndGV4dC9wbGFpbicsICdhdHRhY2htZW50LXt9LnBhdGNoJy5m
b3JtYXQoYXR0YWNobWVudF9pZCksICdhdHRhY2htZW50X2RhdGEnKQotICAgICAgICBzZWxmLl9i
cm93c2VyLnN1Ym1pdCgpCi0KLSAgICBkZWYgdXBsb2FkX2F0dGFjaG1lbnQoc2VsZiwgYXR0YWNo
bWVudCk6Ci0gICAgICAgIF9sb2cuaW5mbygnVXBsb2FkaW5nIGF0dGFjaG1lbnQge30gdG8gc3Rh
dHVzIHNlcnZlcicuZm9ybWF0KGF0dGFjaG1lbnQuaWQoKSkpCi0gICAgICAgICMgRklYTUU6IFJl
bW92ZSBhcmd1bWVudCBjb252ZXJ0XzQwNF90b19Ob25lIG9uY2Ugd2UgdXBkYXRlIEFwcEVuZ2lu
ZSB0byBzdXBwb3J0IHVwbG9hZGluZyBhdHRhY2htZW50cy4KLSAgICAgICAgcmV0dXJuIE5ldHdv
cmtUcmFuc2FjdGlvbihjb252ZXJ0XzQwNF90b19Ob25lPVRydWUpLnJ1bihsYW1iZGE6IHNlbGYu
X3VwbG9hZF9hdHRhY2htZW50X3RvX3NlcnZlcihhdHRhY2htZW50LmlkKCksIGF0dGFjaG1lbnQu
dG9fanNvbigpLCBhdHRhY2htZW50LmNvbnRlbnRzKCkpKQotCiAgICAgZGVmIF9wb3N0X3dvcmtf
aXRlbV90b19ld3Moc2VsZiwgYXR0YWNobWVudF9pZCk6Ci0gICAgICAgIHN1Ym1pdF90b19ld3Nf
dXJsID0gJ3t9L3N1Ym1pdC10by1ld3MnLmZvcm1hdChzZWxmLl9zZXJ2ZXJfdXJsKCkpCisgICAg
ICAgIHN1Ym1pdF90b19ld3NfdXJsID0gJ3t9L3N1Ym1pdC10by1ld3MnLmZvcm1hdChzZWxmLnVy
bCkKICAgICAgICAgc2VsZi5fYnJvd3Nlci5vcGVuKHN1Ym1pdF90b19ld3NfdXJsKQogICAgICAg
ICBzZWxmLl9icm93c2VyLnNlbGVjdF9mb3JtKG5hbWU9InN1Ym1pdF90b19ld3MiKQogICAgICAg
ICBzZWxmLl9icm93c2VyWyJhdHRhY2htZW50X2lkIl0gPSB1bmljb2RlKGF0dGFjaG1lbnRfaWQp
CkBAIC0xNjgsMTEgKzEzMywxMSBAQCBjbGFzcyBTdGF0dXNTZXJ2ZXI6CiAKICAgICBkZWYgbmV4
dF93b3JrX2l0ZW0oc2VsZiwgcXVldWVfbmFtZSk6CiAgICAgICAgIF9sb2cuaW5mbygiRmV0Y2hp
bmcgbmV4dCB3b3JrIGl0ZW0gZm9yICVzIiAlIHF1ZXVlX25hbWUpCi0gICAgICAgIG5leHRfcGF0
Y2hfdXJsID0gJ3t9L25leHQtcGF0Y2gve30nLmZvcm1hdChzZWxmLl9zZXJ2ZXJfdXJsKCksIHF1
ZXVlX25hbWUpCisgICAgICAgIG5leHRfcGF0Y2hfdXJsID0gJ3t9L25leHQtcGF0Y2gve30nLmZv
cm1hdChzZWxmLnVybCwgcXVldWVfbmFtZSkKICAgICAgICAgcmV0dXJuIHNlbGYuX2ZldGNoX3Vy
bChuZXh0X3BhdGNoX3VybCkKIAogICAgIGRlZiBfcG9zdF9yZWxlYXNlX3dvcmtfaXRlbShzZWxm
LCBxdWV1ZV9uYW1lLCBwYXRjaCk6Ci0gICAgICAgIHJlbGVhc2VfcGF0Y2hfdXJsID0gJ3t9L3Jl
bGVhc2UtcGF0Y2gnLmZvcm1hdChzZWxmLl9zZXJ2ZXJfdXJsKCkpCisgICAgICAgIHJlbGVhc2Vf
cGF0Y2hfdXJsID0gJ3t9L3JlbGVhc2UtcGF0Y2gnLmZvcm1hdChzZWxmLnVybCkKICAgICAgICAg
c2VsZi5fYnJvd3Nlci5vcGVuKHJlbGVhc2VfcGF0Y2hfdXJsKQogICAgICAgICBzZWxmLl9icm93
c2VyLnNlbGVjdF9mb3JtKG5hbWU9InJlbGVhc2VfcGF0Y2giKQogICAgICAgICBzZWxmLl9icm93
c2VyWyJxdWV1ZV9uYW1lIl0gPSBxdWV1ZV9uYW1lCkBAIC0xODQsNyArMTQ5LDcgQEAgY2xhc3Mg
U3RhdHVzU2VydmVyOgogICAgICAgICByZXR1cm4gTmV0d29ya1RyYW5zYWN0aW9uKGNvbnZlcnRf
NDA0X3RvX05vbmU9VHJ1ZSkucnVuKGxhbWJkYTogc2VsZi5fcG9zdF9yZWxlYXNlX3dvcmtfaXRl
bShxdWV1ZV9uYW1lLCBwYXRjaCkpCiAKICAgICBkZWYgX3Bvc3RfcmVsZWFzZV9sb2NrKHNlbGYs
IHF1ZXVlX25hbWUsIHBhdGNoKToKLSAgICAgICAgcmVsZWFzZV9sb2NrX3VybCA9ICd7fS9yZWxl
YXNlLWxvY2snLmZvcm1hdChzZWxmLl9zZXJ2ZXJfdXJsKCkpCisgICAgICAgIHJlbGVhc2VfbG9j
a191cmwgPSAne30vcmVsZWFzZS1sb2NrJy5mb3JtYXQoc2VsZi51cmwpCiAgICAgICAgIHNlbGYu
X2Jyb3dzZXIub3BlbihyZWxlYXNlX2xvY2tfdXJsKQogICAgICAgICBzZWxmLl9icm93c2VyLnNl
bGVjdF9mb3JtKG5hbWU9InJlbGVhc2VfbG9jayIpCiAgICAgICAgIHNlbGYuX2Jyb3dzZXJbInF1
ZXVlX25hbWUiXSA9IHF1ZXVlX25hbWUKQEAgLTIwNywzOSArMTcyLDE5IEBAIGNsYXNzIFN0YXR1
c1NlcnZlcjoKICAgICAgICAgX2xvZy5pbmZvKCJTVk4gcmV2aXNpb246ICVzIGJyb2tlICVzIiAl
IChzdm5fcmV2aXNpb25fbnVtYmVyLCBicm9rZW5fYm90KSkKICAgICAgICAgcmV0dXJuIE5ldHdv
cmtUcmFuc2FjdGlvbigpLnJ1bihsYW1iZGE6IHNlbGYuX3Bvc3Rfc3ZuX3JldmlzaW9uX3RvX3Nl
cnZlcihzdm5fcmV2aXNpb25fbnVtYmVyLCBicm9rZW5fYm90KSkKIAotICAgIGRlZiBfZmV0Y2hf
YXR0YWNobWVudF9wYWdlKHNlbGYsIGFjdGlvbiwgYXR0YWNobWVudF9pZCk6Ci0gICAgICAgIGF0
dGFjaG1lbnRfdXJsID0gJ3t9L2F0dGFjaG1lbnQve30ve30nLmZvcm1hdChzZWxmLl9zZXJ2ZXJf
dXJsKCksIGFjdGlvbiwgYXR0YWNobWVudF9pZCkKLSAgICAgICAgX2xvZy5pbmZvKCdGZXRjaGlu
Zzoge30nLmZvcm1hdChhdHRhY2htZW50X3VybCkpCi0gICAgICAgIHJldHVybiBzZWxmLl9mZXRj
aF91cmwoYXR0YWNobWVudF91cmwpCi0KLSAgICBkZWYgZmV0Y2hfYXR0YWNobWVudChzZWxmLCBh
dHRhY2htZW50X2lkKToKLSAgICAgICAgIyBXZSB3aWxsIG5laXRoZXIgaGF2ZSBtZXRhZGF0YSBu
b3IgY29udGVudCBpZiBvdXIgQVBJIGtleSBpcyBtaXNzaW5nLCBpbnZhbGlkLCBvciByZXZva2Vk
LgotICAgICAgICBhdHRhY2htZW50X21ldGFkYXRhID0gc2VsZi5fZmV0Y2hfYXR0YWNobWVudF9w
YWdlKCdtZXRhZGF0YScsIGF0dGFjaG1lbnRfaWQpCi0gICAgICAgIGlmIG5vdCBhdHRhY2htZW50
X21ldGFkYXRhOgotICAgICAgICAgICAgcmV0dXJuIE5vbmUKLSAgICAgICAgYXR0YWNobWVudF9j
b250ZW50cyA9IHNlbGYuX2ZldGNoX2F0dGFjaG1lbnRfcGFnZSgnZGF0YScsIGF0dGFjaG1lbnRf
aWQpCi0gICAgICAgIGlmIG5vdCBhdHRhY2htZW50X2NvbnRlbnRzOgotICAgICAgICAgICAgcmV0
dXJuIE5vbmUKLSAgICAgICAgYXR0YWNobWVudCA9IEF0dGFjaG1lbnQuZnJvbV9qc29uKGF0dGFj
aG1lbnRfbWV0YWRhdGEpCi0gICAgICAgIGF0dGFjaG1lbnQuY29udGVudHMgPSBsYW1iZGE6IGF0
dGFjaG1lbnRfY29udGVudHMKLSAgICAgICAgcmV0dXJuIGF0dGFjaG1lbnQKLQogICAgIGRlZiBf
ZmV0Y2hfdXJsKHNlbGYsIHVybCk6CiAgICAgICAgICMgRklYTUU6IFRoaXMgc2hvdWxkIHVzZSBO
ZXR3b3JrVHJhbnNhY3Rpb24ncyA0MDQgaGFuZGxpbmcgaW5zdGVhZC4KICAgICAgICAgdHJ5Ogot
ICAgICAgICAgICAgcmVxdWVzdCA9IFJlcXVlc3QodXJsKQotICAgICAgICAgICAgaWYgc2VsZi5f
YXBpX2tleToKLSAgICAgICAgICAgICAgICByZXF1ZXN0LmFkZF9oZWFkZXIoKnNlbGYuX2F1dGhv
cml6YXRpb25faGVhZGVyX25hbWVfYW5kX3ZhbHVlX3BhaXIoKSkKLSAgICAgICAgICAgIHJldHVy
biB1cmxvcGVuKHJlcXVlc3QsIHRpbWVvdXQ9MzAwKS5yZWFkKCkKKyAgICAgICAgICAgIHJldHVy
biB1cmxvcGVuKHVybCwgdGltZW91dD0zMDApLnJlYWQoKQogICAgICAgICBleGNlcHQgSFRUUEVy
cm9yIGFzIGU6CiAgICAgICAgICAgICBpZiBlLmNvZGUgPT0gNDA0OgogICAgICAgICAgICAgICAg
IHJldHVybiBOb25lCiAgICAgICAgICAgICByYWlzZSBlCiAKICAgICBkZWYgcGF0Y2hfc3RhdHVz
KHNlbGYsIHF1ZXVlX25hbWUsIHBhdGNoX2lkKToKLSAgICAgICAgcGF0Y2hfc3RhdHVzX3VybCA9
ICd7fS9wYXRjaC1zdGF0dXMve30ve30nLmZvcm1hdChzZWxmLl9zZXJ2ZXJfdXJsKCksIHF1ZXVl
X25hbWUsIHBhdGNoX2lkKQorICAgICAgICBwYXRjaF9zdGF0dXNfdXJsID0gJ3t9L3BhdGNoLXN0
YXR1cy97fS97fScuZm9ybWF0KHNlbGYudXJsLCBxdWV1ZV9uYW1lLCBwYXRjaF9pZCkKICAgICAg
ICAgcmV0dXJuIHNlbGYuX2ZldGNoX3VybChwYXRjaF9zdGF0dXNfdXJsKQogCiAgICAgZGVmIHN2
bl9yZXZpc2lvbihzZWxmLCBzdm5fcmV2aXNpb25fbnVtYmVyKToKLSAgICAgICAgc3ZuX3Jldmlz
aW9uX3VybCA9ICd7fS9zdm4tcmV2aXNpb24ve30nLmZvcm1hdChzZWxmLl9zZXJ2ZXJfdXJsKCks
IHN2bl9yZXZpc2lvbl9udW1iZXIpCisgICAgICAgIHN2bl9yZXZpc2lvbl91cmwgPSAne30vc3Zu
LXJldmlzaW9uL3t9Jy5mb3JtYXQoc2VsZi51cmwsIHN2bl9yZXZpc2lvbl9udW1iZXIpCiAgICAg
ICAgIHJldHVybiBzZWxmLl9mZXRjaF91cmwoc3ZuX3JldmlzaW9uX3VybCkKSW5kZXg6IFRvb2xz
L1NjcmlwdHMvd2Via2l0cHkvY29tbW9uL25ldC9zdGF0dXNzZXJ2ZXJfbW9jay5weQo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBUb29scy9TY3JpcHRzL3dlYmtpdHB5L2NvbW1vbi9uZXQvc3RhdHVzc2VydmVyX21v
Y2sucHkJKHJldmlzaW9uIDI1OTE0MikKKysrIFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvY29tbW9u
L25ldC9zdGF0dXNzZXJ2ZXJfbW9jay5weQkod29ya2luZyBjb3B5KQpAQCAtMjksOCArMjksNiBA
QAogCiBpbXBvcnQgbG9nZ2luZwogCi1mcm9tIHdlYmtpdHB5LmNvbW1vbi5uZXQuYnVnemlsbGEu
YXR0YWNobWVudCBpbXBvcnQgQXR0YWNobWVudAotCiBfbG9nID0gbG9nZ2luZy5nZXRMb2dnZXIo
X19uYW1lX18pCiAKIApAQCAtNjMsOSArNjEsNiBAQCBjbGFzcyBNb2NrU3RhdHVzU2VydmVyKG9i
amVjdCk6CiAgICAgICAgIHNlbGYuX3dvcmtfaXRlbXMgPSB3b3JrX2l0ZW1zCiAgICAgICAgIF9s
b2cuaW5mbygiTU9DSzogdXBkYXRlX3dvcmtfaXRlbXM6ICVzICVzIiAlIChxdWV1ZV9uYW1lLCBo
aWdoX3ByaW9yaXR5X3dvcmtfaXRlbXMgKyB3b3JrX2l0ZW1zKSkKIAotICAgIGRlZiB1cGxvYWRf
YXR0YWNobWVudChzZWxmLCBhdHRhY2htZW50KToKLSAgICAgICAgX2xvZy5pbmZvKCdNT0NLOiB1
cGxvYWRfYXR0YWNobWVudDoge30nLmZvcm1hdChhdHRhY2htZW50LmlkKCkpKQotCiAgICAgZGVm
IHN1Ym1pdF90b19ld3Moc2VsZiwgcGF0Y2hfaWQpOgogICAgICAgICBfbG9nLmluZm8oIk1PQ0s6
IHN1Ym1pdF90b19vbGRfZXdzOiAlcyIgJSAocGF0Y2hfaWQpKQogCkBAIC03OCw5ICs3MywzIEBA
IGNsYXNzIE1vY2tTdGF0dXNTZXJ2ZXIob2JqZWN0KToKIAogICAgIGRlZiByZXN1bHRzX3VybF9m
b3Jfc3RhdHVzKHNlbGYsIHN0YXR1c19pZCk6CiAgICAgICAgIHJldHVybiAiaHR0cDovL2R1bW15
X3VybCIKLQotICAgIGRlZiBmZXRjaF9hdHRhY2htZW50KHNlbGYsIGF0dGFjaG1lbnRfaWQpOgot
ICAgICAgICBfbG9nLmluZm8oJ01PQ0s6IGZldGNoX2F0dGFjaG1lbnQ6IHt9Jy5mb3JtYXQoYXR0
YWNobWVudF9pZCkpCi0gICAgICAgIGF0dGFjaG1lbnQgPSBBdHRhY2htZW50KHsnaWQnOiAxMDAw
OH0sIE5vbmUpCi0gICAgICAgIGF0dGFjaG1lbnQuY29udGVudCA9IGxhbWJkYTogJ1BhdGNoJwot
ICAgICAgICByZXR1cm4gYXR0YWNobWVudApJbmRleDogVG9vbHMvU2NyaXB0cy93ZWJraXRweS9j
b21tb24vbmV0L2J1Z3ppbGxhL2F0dGFjaG1lbnQucHkKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gVG9vbHMvU2Ny
aXB0cy93ZWJraXRweS9jb21tb24vbmV0L2J1Z3ppbGxhL2F0dGFjaG1lbnQucHkJKHJldmlzaW9u
IDI1OTE0MikKKysrIFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvY29tbW9uL25ldC9idWd6aWxsYS9h
dHRhY2htZW50LnB5CSh3b3JraW5nIGNvcHkpCkBAIC0yOCwxMiArMjgsOSBAQAogIyAoSU5DTFVE
SU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRI
RSBVU0UKICMgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJ
TElUWSBPRiBTVUNIIERBTUFHRS4KIAotaW1wb3J0IGpzb24KIGltcG9ydCBsb2dnaW5nCiAKLWZy
b20gZGF0ZXRpbWUgaW1wb3J0IGRhdGV0aW1lCiBmcm9tIHdlYmtpdHB5LmNvbW1vbi5tZW1vaXpl
ZCBpbXBvcnQgbWVtb2l6ZWQKLWZyb20gd2Via2l0cHkuY29tbW9uLm5ldC5idWd6aWxsYS5jb25z
dGFudHMgaW1wb3J0IEJVR1pJTExBX0RBVEVfRk9STUFUCiAKIF9sb2cgPSBsb2dnaW5nLmdldExv
Z2dlcihfX25hbWVfXykKIApAQCAtMTI4LDE2ICsxMjUsMyBAQCBjbGFzcyBBdHRhY2htZW50KG9i
amVjdCk6CiAgICAgICAgIGlmIG5vdCBzZWxmLl9jb21taXR0ZXI6CiAgICAgICAgICAgICBzZWxm
Ll9jb21taXR0ZXIgPSBzZWxmLl92YWxpZGF0ZV9mbGFnX3ZhbHVlKCJjb21taXR0ZXIiKQogICAg
ICAgICByZXR1cm4gc2VsZi5fY29tbWl0dGVyCi0KLSAgICBkZWYgdG9fanNvbihzZWxmKToKLSAg
ICAgICAgdGVtcCA9IGRpY3Qoc2VsZi5fYXR0YWNobWVudF9kaWN0aW9uYXJ5KQotICAgICAgICBp
ZiAnYXR0YWNoX2RhdGUnIGluIHRlbXA6Ci0gICAgICAgICAgICB0ZW1wWydhdHRhY2hfZGF0ZSdd
ID0gdGVtcFsnYXR0YWNoX2RhdGUnXS5zdHJmdGltZShCVUdaSUxMQV9EQVRFX0ZPUk1BVCkKLSAg
ICAgICAgcmV0dXJuIGpzb24uZHVtcHModGVtcCkKLQotICAgIEBjbGFzc21ldGhvZAotICAgIGRl
ZiBmcm9tX2pzb24oY2xzLCBqc29uX3N0cmluZyk6Ci0gICAgICAgIHRlbXAgPSBqc29uLmxvYWRz
KGpzb25fc3RyaW5nKQotICAgICAgICBpZiAnYXR0YWNoX2RhdGUnIGluIHRlbXA6Ci0gICAgICAg
ICAgICB0ZW1wWydhdHRhY2hfZGF0ZSddID0gZGF0ZXRpbWUuc3RycHRpbWUodGVtcFsnYXR0YWNo
X2RhdGUnXSwgQlVHWklMTEFfREFURV9GT1JNQVQpCi0gICAgICAgIHJldHVybiBjbHModGVtcCwg
YnVnPU5vbmUpCkluZGV4OiBUb29scy9TY3JpcHRzL3dlYmtpdHB5L2NvbW1vbi9uZXQvYnVnemls
bGEvYXR0YWNobWVudF91bml0dGVzdC5weQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9TY3JpcHRzL3dl
YmtpdHB5L2NvbW1vbi9uZXQvYnVnemlsbGEvYXR0YWNobWVudF91bml0dGVzdC5weQkocmV2aXNp
b24gMjU5MTQyKQorKysgVG9vbHMvU2NyaXB0cy93ZWJraXRweS9jb21tb24vbmV0L2J1Z3ppbGxh
L2F0dGFjaG1lbnRfdW5pdHRlc3QucHkJKHdvcmtpbmcgY29weSkKQEAgLTIyLDE4ICsyMiw5IEBA
CiAKIGltcG9ydCB1bml0dGVzdAogCi1mcm9tIGRhdGV0aW1lIGltcG9ydCBkYXRldGltZQotZnJv
bSB3ZWJraXRweS5jb21tb24ubmV0LmJ1Z3ppbGxhLmNvbnN0YW50cyBpbXBvcnQgQlVHWklMTEFf
REFURV9GT1JNQVQKLQogZnJvbSB3ZWJraXRweS5jb21tb24ubmV0LmJ1Z3ppbGxhLmF0dGFjaG1l
bnQgaW1wb3J0IEF0dGFjaG1lbnQKIAogCiBjbGFzcyBBdHRhY2htZW50VGVzdCh1bml0dGVzdC5U
ZXN0Q2FzZSk6CiAgICAgZGVmIHRlc3Rfbm9fYnVnX2lkKHNlbGYpOgogICAgICAgICBzZWxmLmFz
c2VydEVxdWFsKEF0dGFjaG1lbnQoeydpZCc6IDEyMzQ1fSwgTm9uZSkuYnVnX2lkKCksIE5vbmUp
Ci0KLSAgICBkZWYgdGVzdF9jb252ZXJ0X3RvX2pzb25fYW5kX2JhY2soc2VsZik6Ci0gICAgICAg
IGJ1Z3ppbGxhX2Zvcm1hdHRlZF9kYXRlX3N0cmluZyA9IGRhdGV0aW1lLnRvZGF5KCkuc3RyZnRp
bWUoQlVHWklMTEFfREFURV9GT1JNQVQpCi0gICAgICAgIGV4cGVjdGVkX2RhdGUgPSBkYXRldGlt
ZS5zdHJwdGltZShidWd6aWxsYV9mb3JtYXR0ZWRfZGF0ZV9zdHJpbmcsIEJVR1pJTExBX0RBVEVf
Rk9STUFUKQotICAgICAgICBhdHRhY2htZW50ID0gQXR0YWNobWVudCh7J2F0dGFjaF9kYXRlJzog
ZXhwZWN0ZWRfZGF0ZX0sIE5vbmUpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoQXR0YWNobWVu
dC5mcm9tX2pzb24oYXR0YWNobWVudC50b19qc29uKCkpLmF0dGFjaF9kYXRlKCksIGV4cGVjdGVk
X2RhdGUpCkluZGV4OiBUb29scy9TY3JpcHRzL3dlYmtpdHB5L2NvbW1vbi9uZXQvYnVnemlsbGEv
YnVnLnB5Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvY29tbW9uL25ldC9i
dWd6aWxsYS9idWcucHkJKHJldmlzaW9uIDI1OTE0MikKKysrIFRvb2xzL1NjcmlwdHMvd2Via2l0
cHkvY29tbW9uL25ldC9idWd6aWxsYS9idWcucHkJKHdvcmtpbmcgY29weSkKQEAgLTY5LDEyICs2
OSw2IEBAIGNsYXNzIEJ1ZyhvYmplY3QpOgogICAgIGRlZiBzdGF0dXMoc2VsZik6CiAgICAgICAg
IHJldHVybiBzZWxmLmJ1Z19kaWN0aW9uYXJ5WyJidWdfc3RhdHVzIl0KIAotICAgIGRlZiBncm91
cHMoc2VsZik6Ci0gICAgICAgIHJldHVybiBzZWxmLmJ1Z19kaWN0aW9uYXJ5LmdldCgnZ3JvdXBz
JywgZnJvemVuc2V0KCkpCi0KLSAgICBkZWYgaXNfc2VjdXJpdHlfc2Vuc2l0aXZlKHNlbGYpOgot
ICAgICAgICByZXR1cm4gJ1NlY3VyaXR5LVNlbnNpdGl2ZScgaW4gc2VsZi5ncm91cHMoKQotCiAg
ICAgIyBCdWd6aWxsYSBoYXMgbWFueSBzdGF0dXMgc3RhdGVzIHdlIGRvbid0IHJlYWxseSB1c2Ug
aW4gV2ViS2l0OgogICAgICMgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvcGFnZS5jZ2k/aWQ9Zmll
bGRzLmh0bWwjc3RhdHVzCiAgICAgX29wZW5fc3RhdGVzID0gWyJVTkNPTkZJUk1FRCIsICJORVci
LCAiQVNTSUdORUQiLCAiUkVPUEVORUQiXQpJbmRleDogVG9vbHMvU2NyaXB0cy93ZWJraXRweS9j
b21tb24vbmV0L2J1Z3ppbGxhL2J1Z3ppbGxhLnB5Cj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFRvb2xzL1Njcmlw
dHMvd2Via2l0cHkvY29tbW9uL25ldC9idWd6aWxsYS9idWd6aWxsYS5weQkocmV2aXNpb24gMjU5
MTQyKQorKysgVG9vbHMvU2NyaXB0cy93ZWJraXRweS9jb21tb24vbmV0L2J1Z3ppbGxhL2J1Z3pp
bGxhLnB5CSh3b3JraW5nIGNvcHkpCkBAIC00Niw3ICs0Niw2IEBAIGZyb20gd2Via2l0cHkuY29t
bW9uLm5ldC5idWd6aWxsYS5idWcgaW0KIAogZnJvbSB3ZWJraXRweS5jb21tb24uY29uZmlnIGlt
cG9ydCBjb21taXR0ZXJzCiBpbXBvcnQgd2Via2l0cHkuY29tbW9uLmNvbmZpZy51cmxzIGFzIGNv
bmZpZ191cmxzCi1mcm9tIHdlYmtpdHB5LmNvbW1vbi5uZXQuYnVnemlsbGEuY29uc3RhbnRzIGlt
cG9ydCBCVUdaSUxMQV9EQVRFX0ZPUk1BVAogZnJvbSB3ZWJraXRweS5jb21tb24ubmV0LmNyZWRl
bnRpYWxzIGltcG9ydCBDcmVkZW50aWFscwogZnJvbSB3ZWJraXRweS5jb21tb24ubmV0Lm5ldHdv
cmt0cmFuc2FjdGlvbiBpbXBvcnQgTmV0d29ya1RyYW5zYWN0aW9uCiBmcm9tIHdlYmtpdHB5LmNv
bW1vbi5zeXN0ZW0udXNlciBpbXBvcnQgVXNlcgpAQCAtMjgwLDEwICsyNzksOCBAQCBjbGFzcyBC
dWd6aWxsYVF1ZXJpZXMob2JqZWN0KToKIAogICAgICMgTk9URTogVGhpcyBpcyB0aGUgb25seSBj
bGllbnQgb2YgX2ZldGNoX2F0dGFjaG1lbnRfaWRzX3JlcXVlc3RfcXVlcnkKICAgICAjIFRoaXMg
bWV0aG9kIG9ubHkgbWFrZXMgb25lIHJlcXVlc3QgdG8gYnVnemlsbGEuCi0gICAgZGVmIGZldGNo
X2F0dGFjaG1lbnRfaWRzX2Zyb21fcmV2aWV3X3F1ZXVlKHNlbGYsIHNpbmNlPU5vbmUsIG9ubHlf
c2VjdXJpdHlfYnVncz1GYWxzZSk6CisgICAgZGVmIGZldGNoX2F0dGFjaG1lbnRfaWRzX2Zyb21f
cmV2aWV3X3F1ZXVlKHNlbGYsIHNpbmNlPU5vbmUpOgogICAgICAgICByZXZpZXdfcXVldWVfdXJs
ID0gInJlcXVlc3QuY2dpP2FjdGlvbj1xdWV1ZSZ0eXBlPXJldmlldyZncm91cD10eXBlIgotICAg
ICAgICBpZiBvbmx5X3NlY3VyaXR5X2J1Z3M6Ci0gICAgICAgICAgICByZXZpZXdfcXVldWVfdXJs
ICs9ICcmcHJvZHVjdD1TZWN1cml0eScKICAgICAgICAgcmV0dXJuIHNlbGYuX2ZldGNoX2F0dGFj
aG1lbnRfaWRzX3JlcXVlc3RfcXVlcnkocmV2aWV3X3F1ZXVlX3VybCwgc2luY2UpCiAKICAgICAj
IFRoaXMgb25seSB3b3JrcyBpZiB5b3VyIGFjY291bnQgaGFzIGVkaXR1c2VyIHByaXZpbGVnZXMu
CkBAIC00MDUsNiArNDAyLDEyIEBAIGNsYXNzIEJ1Z3ppbGxhKG9iamVjdCk6CiAgICAgICAgICMg
Y29udmVydCBmcm9tIE5hdmlnYWJsZVN0cmluZyB0byBhIHJlYWwgdW5pY29kZSgpIG9iamVjdCB1
c2luZyB1bmljb2RlKCkuCiAgICAgICAgIHJldHVybiB1bmljb2RlKHNvdXAuc3RyaW5nKQogCisg
ICAgIyBFeGFtcGxlOiAyMDEwLTAxLTIwIDE0OjMxIFBTVAorICAgICMgRklYTUU6IFNvbWUgYnVn
emlsbGEgZGF0ZXMgc2VlbSB0byBoYXZlIHNlY29uZHMgaW4gdGhlbT8KKyAgICAjIFB5dGhvbiBk
b2VzIG5vdCBzdXBwb3J0IHRpbWV6b25lcyBvdXQgb2YgdGhlIGJveC4KKyAgICAjIEFzc3VtZSB0
aGF0IGJ1Z3ppbGxhIGFsd2F5cyB1c2VzIFBTVCAod2hpY2ggaXMgdHJ1ZSBmb3IgYnVncy53ZWJr
aXQub3JnKQorICAgIF9idWd6aWxsYV9kYXRlX2Zvcm1hdCA9ICIlWS0lbS0lZCAlSDolTTolUyIK
KwogICAgIEBjbGFzc21ldGhvZAogICAgIGRlZiBfcGFyc2VfZGF0ZShjbHMsIGRhdGVfc3RyaW5n
KToKICAgICAgICAgKGRhdGUsIHRpbWUsIHRpbWVfem9uZSkgPSBkYXRlX3N0cmluZy5zcGxpdCgi
ICIpCkBAIC00MTMsNyArNDE2LDcgQEAgY2xhc3MgQnVnemlsbGEob2JqZWN0KToKICAgICAgICAg
ICAgIHRpbWUgKz0gJzowJwogICAgICAgICAjIElnbm9yZSB0aGUgdGltZXpvbmUgYmVjYXVzZSBw
eXRob24gZG9lc24ndCB1bmRlcnN0YW5kIHRpbWV6b25lcyBvdXQgb2YgdGhlIGJveC4KICAgICAg
ICAgZGF0ZV9zdHJpbmcgPSAiJXMgJXMiICUgKGRhdGUsIHRpbWUpCi0gICAgICAgIHJldHVybiBk
YXRldGltZS5zdHJwdGltZShkYXRlX3N0cmluZywgQlVHWklMTEFfREFURV9GT1JNQVQpCisgICAg
ICAgIHJldHVybiBkYXRldGltZS5zdHJwdGltZShkYXRlX3N0cmluZywgY2xzLl9idWd6aWxsYV9k
YXRlX2Zvcm1hdCkKIAogICAgIGRlZiBfZGF0ZV9jb250ZW50cyhzZWxmLCBzb3VwKToKICAgICAg
ICAgcmV0dXJuIHNlbGYuX3BhcnNlX2RhdGUoc2VsZi5fc3RyaW5nX2NvbnRlbnRzKHNvdXApKQpA
QCAtNDU1LDEwICs0NTgsNiBAQCBjbGFzcyBCdWd6aWxsYShvYmplY3QpOgogCiAgICAgZGVmIF9w
YXJzZV9idWdfZGljdGlvbmFyeV9mcm9tX3htbChzZWxmLCBwYWdlKToKICAgICAgICAgc291cCA9
IEJlYXV0aWZ1bFN0b25lU291cChwYWdlLCBjb252ZXJ0RW50aXRpZXM9QmVhdXRpZnVsU3RvbmVT
b3VwLlhNTF9FTlRJVElFUykKLSAgICAgICAgYnVnX2VsZW1lbnQgPSBzb3VwLmZpbmQoJ2J1Zycp
Ci0gICAgICAgIGlmIGJ1Z19lbGVtZW50IGFuZCBidWdfZWxlbWVudC5nZXQoJ2Vycm9yJywgJycp
ID09ICdOb3RQZXJtaXR0ZWQnOgotICAgICAgICAgICAgX2xvZy53YXJuaW5nKCJZb3UgZG9uJ3Qg
aGF2ZSBwZXJtaXNzaW9uIHRvIHZpZXcgdGhpcyBidWcuIikKLSAgICAgICAgICAgIHJldHVybiB7
fQogICAgICAgICBidWcgPSB7fQogICAgICAgICBidWdbImlkIl0gPSBpbnQoc291cC5maW5kKCJi
dWdfaWQiKS5zdHJpbmcpCiAgICAgICAgIGJ1Z1sidGl0bGUiXSA9IHNlbGYuX3N0cmluZ19jb250
ZW50cyhzb3VwLmZpbmQoInNob3J0X2Rlc2MiKSkKQEAgLTQ3MSw3ICs0NzAsNiBAQCBjbGFzcyBC
dWd6aWxsYShvYmplY3QpOgogICAgICAgICBidWdbImNjX2VtYWlscyJdID0gW3NlbGYuX3N0cmlu
Z19jb250ZW50cyhlbGVtZW50KSBmb3IgZWxlbWVudCBpbiBzb3VwLmZpbmRBbGwoJ2NjJyldCiAg
ICAgICAgIGJ1Z1siYXR0YWNobWVudHMiXSA9IFtzZWxmLl9wYXJzZV9hdHRhY2htZW50X2VsZW1l
bnQoZWxlbWVudCwgYnVnWyJpZCJdKSBmb3IgZWxlbWVudCBpbiBzb3VwLmZpbmRBbGwoJ2F0dGFj
aG1lbnQnKV0KICAgICAgICAgYnVnWyJjb21tZW50cyJdID0gW3NlbGYuX3BhcnNlX2xvZ19kZXNj
cl9lbGVtZW50KGVsZW1lbnQpIGZvciBlbGVtZW50IGluIHNvdXAuZmluZEFsbCgnbG9uZ19kZXNj
JyldCi0gICAgICAgIGJ1Z1snZ3JvdXBzJ10gPSBmcm96ZW5zZXQoW3NlbGYuX3N0cmluZ19jb250
ZW50cyhncm91cCkgZm9yIGdyb3VwIGluIHNvdXAuZmluZEFsbCgnZ3JvdXAnKV0pCiAKICAgICAg
ICAgcmV0dXJuIGJ1ZwogCkBAIC00OTMsMTAgKzQ5MSw3IEBAIGNsYXNzIEJ1Z3ppbGxhKG9iamVj
dCk6CiAgICAgIyBGSVhNRTogQSBCdWd6aWxsYUNhY2hlIG9iamVjdCBzaG91bGQgcHJvdmlkZSBh
bGwgdGhlc2UgZmV0Y2hfIG1ldGhvZHMuCiAKICAgICBkZWYgZmV0Y2hfYnVnKHNlbGYsIGJ1Z19p
ZCk6Ci0gICAgICAgIGJ1Z19kaWN0aW9uYXJ5ID0gc2VsZi5mZXRjaF9idWdfZGljdGlvbmFyeShi
dWdfaWQpCi0gICAgICAgIGlmIGJ1Z19kaWN0aW9uYXJ5OgotICAgICAgICAgICAgcmV0dXJuIEJ1
ZyhidWdfZGljdGlvbmFyeSwgc2VsZikKLSAgICAgICAgcmV0dXJuIE5vbmUKKyAgICAgICAgcmV0
dXJuIEJ1ZyhzZWxmLmZldGNoX2J1Z19kaWN0aW9uYXJ5KGJ1Z19pZCksIHNlbGYpCiAKICAgICBk
ZWYgZmV0Y2hfYXR0YWNobWVudF9jb250ZW50cyhzZWxmLCBhdHRhY2htZW50X2lkKToKICAgICAg
ICAgYXR0YWNobWVudF91cmwgPSBzZWxmLmF0dGFjaG1lbnRfdXJsX2Zvcl9pZChhdHRhY2htZW50
X2lkKQpAQCAtNTA1LDU4ICs1MDAsMzcgQEAgY2xhc3MgQnVnemlsbGEob2JqZWN0KToKICAgICAg
ICAgc2VsZi5hdXRoZW50aWNhdGUoKQogICAgICAgICByZXR1cm4gc2VsZi5vcGVuX3VybChhdHRh
Y2htZW50X3VybCkucmVhZCgpCiAKLSAgICBjbGFzcyBBY2Nlc3NFcnJvcihFeGNlcHRpb24pOgot
ICAgICAgICBOT1RfUEVSTUlUVEVEID0gMQotICAgICAgICBPVEhFUiA9IDIKLQotICAgICAgICBk
ZWYgX19pbml0X18oc2VsZiwgYXR0YWNobWVudF9pZCwgZXJyb3JfY29kZSwgYnVnX3RpdGxlKToK
LSAgICAgICAgICAgIHN1cGVyKEJ1Z3ppbGxhLkFjY2Vzc0Vycm9yLCBzZWxmKS5fX2luaXRfXygn
RmFpbGVkIHRvIGFjY2VzcyB7fScuZm9ybWF0KGF0dGFjaG1lbnRfaWQpKQotICAgICAgICAgICAg
c2VsZi5hdHRhY2htZW50X2lkID0gYXR0YWNobWVudF9pZAotICAgICAgICAgICAgc2VsZi5lcnJv
cl9jb2RlID0gZXJyb3JfY29kZQotICAgICAgICAgICAgc2VsZi5idWdfdGl0bGUgPSBidWdfdGl0
bGUKLQotICAgIGRlZiBfcGFyc2VfYnVnX3RpdGxlX2Zyb21fYXR0YWNobWVudF9wYWdlKHNlbGYs
IHBhZ2UpOgotICAgICAgICByZXR1cm4gQmVhdXRpZnVsU291cChwYWdlKS5maW5kKCdkaXYnLCBh
dHRycz17J2lkJzogJ2J1Z190aXRsZSd9KQotCiAgICAgZGVmIF9wYXJzZV9idWdfaWRfZnJvbV9h
dHRhY2htZW50X3BhZ2Uoc2VsZiwgcGFnZSk6CiAgICAgICAgICMgVGhlICJVcCIgcmVsYXRpb24g
aGFwcGVucyB0byBwb2ludCB0byB0aGUgYnVnLgotICAgICAgICB0aXRsZSA9IHNlbGYuX3BhcnNl
X2J1Z190aXRsZV9mcm9tX2F0dGFjaG1lbnRfcGFnZShwYWdlKQorICAgICAgICB0aXRsZSA9IEJl
YXV0aWZ1bFNvdXAocGFnZSkuZmluZCgnZGl2JywgYXR0cnM9eydpZCc6ICdidWdfdGl0bGUnfSkK
ICAgICAgICAgaWYgbm90IHRpdGxlOgotICAgICAgICAgICAgX2xvZy53YXJuaW5nKCJUaGlzIGF0
dGFjaG1lbnQgZG9lcyBub3QgZXhpc3QgKG9yIHlvdSBkb24ndCBoYXZlIHBlcm1pc3Npb24gdG8g
dmlldyBpdCkuIikKLSAgICAgICAgICAgIHJldHVybiAoTm9uZSwgQnVnemlsbGEuQWNjZXNzRXJy
b3IuT1RIRVIpCi0gICAgICAgIGlmIHRpdGxlLmdldFRleHQoKSA9PSAnQnVnIEFjY2VzcyBEZW5p
ZWQnOgotICAgICAgICAgICAgX2xvZy53YXJuaW5nKCJZb3UgZG9uJ3QgaGF2ZSBwZXJtaXNzaW9u
IHRvIHZpZXcgdGhpcyBhdHRhY2htZW50LiIpCi0gICAgICAgICAgICByZXR1cm4gKE5vbmUsIEJ1
Z3ppbGxhLkFjY2Vzc0Vycm9yLk5PVF9QRVJNSVRURUQpCisgICAgICAgICAgICBfbG9nLndhcm5p
bmcoIlRoaXMgYXR0YWNobWVudCBkb2VzIG5vdCBleGlzdCAob3IgeW91IGRvbid0IGhhdmUgcGVy
bWlzc2lvbnMgdG8gdmlldyBpdCkuIikKKyAgICAgICAgICAgIHJldHVybiBOb25lCiAgICAgICAg
IG1hdGNoID0gcmUuc2VhcmNoKCJzaG93X2J1Zy5jZ2lcP2lkPSg/UDxidWdfaWQ+XGQrKSIsIHN0
cih0aXRsZSkpCiAgICAgICAgIGlmIG5vdCBtYXRjaDoKICAgICAgICAgICAgIF9sb2cud2Fybmlu
ZygiVW5hYmxlIHRvIHBhcnNlIGJ1ZyBpZCBmcm9tIGF0dGFjaG1lbnQiKQotICAgICAgICAgICAg
cmV0dXJuIChOb25lLCBOb25lKQotICAgICAgICByZXR1cm4gKGludChtYXRjaC5ncm91cCgnYnVn
X2lkJykpLCBOb25lKQorICAgICAgICAgICAgcmV0dXJuIE5vbmUKKyAgICAgICAgcmV0dXJuIGlu
dChtYXRjaC5ncm91cCgnYnVnX2lkJykpCiAKLSAgICBkZWYgYnVnX2lkX2Zvcl9hdHRhY2htZW50
X2lkKHNlbGYsIGF0dGFjaG1lbnRfaWQsIHRocm93X29uX2FjY2Vzc19lcnJvcj1GYWxzZSk6Ci0g
ICAgICAgIHJldHVybiBOZXR3b3JrVHJhbnNhY3Rpb24oKS5ydW4obGFtYmRhOiBzZWxmLmdldF9i
dWdfaWRfZm9yX2F0dGFjaG1lbnRfaWQoYXR0YWNobWVudF9pZCwgdGhyb3dfb25fYWNjZXNzX2Vy
cm9yKSkKKyAgICBkZWYgYnVnX2lkX2Zvcl9hdHRhY2htZW50X2lkKHNlbGYsIGF0dGFjaG1lbnRf
aWQpOgorICAgICAgICByZXR1cm4gTmV0d29ya1RyYW5zYWN0aW9uKCkucnVuKGxhbWJkYTogc2Vs
Zi5nZXRfYnVnX2lkX2Zvcl9hdHRhY2htZW50X2lkKGF0dGFjaG1lbnRfaWQpKQogCi0gICAgZGVm
IGdldF9idWdfaWRfZm9yX2F0dGFjaG1lbnRfaWQoc2VsZiwgYXR0YWNobWVudF9pZCwgdGhyb3df
b25fYWNjZXNzX2Vycm9yPUZhbHNlKToKKyAgICBkZWYgZ2V0X2J1Z19pZF9mb3JfYXR0YWNobWVu
dF9pZChzZWxmLCBhdHRhY2htZW50X2lkKToKICAgICAgICAgc2VsZi5hdXRoZW50aWNhdGUoKQog
CiAgICAgICAgIGF0dGFjaG1lbnRfdXJsID0gc2VsZi5hdHRhY2htZW50X3VybF9mb3JfaWQoYXR0
YWNobWVudF9pZCwgJ2VkaXQnKQogICAgICAgICBfbG9nLmluZm8oIkZldGNoaW5nOiAlcyIgJSBh
dHRhY2htZW50X3VybCkKICAgICAgICAgcGFnZSA9IHNlbGYub3Blbl91cmwoYXR0YWNobWVudF91
cmwpCi0gICAgICAgIGJ1Z19pZCwgZXJyb3JfY29kZSA9IHNlbGYuX3BhcnNlX2J1Z19pZF9mcm9t
X2F0dGFjaG1lbnRfcGFnZShwYWdlKQotICAgICAgICBpZiBidWdfaWQ6Ci0gICAgICAgICAgICBy
ZXR1cm4gYnVnX2lkCi0gICAgICAgIGlmIGVycm9yX2NvZGUgaXMgbm90IE5vbmUgYW5kIHRocm93
X29uX2FjY2Vzc19lcnJvcjoKLSAgICAgICAgICAgIHJhaXNlIEJ1Z3ppbGxhLkFjY2Vzc0Vycm9y
KGF0dGFjaG1lbnRfaWQsIGVycm9yX2NvZGUsIHN0cihzZWxmLl9wYXJzZV9idWdfdGl0bGVfZnJv
bV9hdHRhY2htZW50X3BhZ2UocGFnZSkpKQotICAgICAgICByZXR1cm4gTm9uZQorICAgICAgICBy
ZXR1cm4gc2VsZi5fcGFyc2VfYnVnX2lkX2Zyb21fYXR0YWNobWVudF9wYWdlKHBhZ2UpCiAKICAg
ICAjIEZJWE1FOiBUaGlzIHNob3VsZCBqdXN0IHJldHVybiBBdHRhY2htZW50KGlkKSwgd2hpY2gg
c2hvdWxkIGJlIGFibGUgdG8KICAgICAjIGxhemlseSBmZXRjaCBuZWVkZWQgZGF0YS4KIAotICAg
IGRlZiBmZXRjaF9hdHRhY2htZW50KHNlbGYsIGF0dGFjaG1lbnRfaWQsIHRocm93X29uX2FjY2Vz
c19lcnJvcj1GYWxzZSk6CisgICAgZGVmIGZldGNoX2F0dGFjaG1lbnQoc2VsZiwgYXR0YWNobWVu
dF9pZCk6CiAgICAgICAgICMgV2UgY291bGQgZ3JhYiBhbGwgdGhlIGF0dGFjaG1lbnQgZGV0YWls
cyBvZmYgb2YgdGhlIGF0dGFjaG1lbnQgZWRpdAogICAgICAgICAjIHBhZ2UgYnV0IHdlIGFscmVh
ZHkgaGF2ZSB3b3JraW5nIGNvZGUgdG8gZG8gc28gb2ZmIG9mIHRoZSBidWdzIHBhZ2UsCiAgICAg
ICAgICMgc28gcmUtdXNlIHRoYXQuCi0gICAgICAgIGJ1Z19pZCA9IHNlbGYuYnVnX2lkX2Zvcl9h
dHRhY2htZW50X2lkKGF0dGFjaG1lbnRfaWQsIHRocm93X29uX2FjY2Vzc19lcnJvcikKKyAgICAg
ICAgYnVnX2lkID0gc2VsZi5idWdfaWRfZm9yX2F0dGFjaG1lbnRfaWQoYXR0YWNobWVudF9pZCkK
ICAgICAgICAgaWYgbm90IGJ1Z19pZDoKICAgICAgICAgICAgIF9sb2cud2FybmluZygiVW5hYmxl
IHRvIHBhcnNlIGJ1Z19pZCBmcm9tIGF0dGFjaG1lbnQge30iLmZvcm1hdChhdHRhY2htZW50X2lk
KSkKICAgICAgICAgICAgIHJldHVybiBOb25lCkluZGV4OiBUb29scy9TY3JpcHRzL3dlYmtpdHB5
L2NvbW1vbi9uZXQvYnVnemlsbGEvYnVnemlsbGFfbW9jay5weQo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29s
cy9TY3JpcHRzL3dlYmtpdHB5L2NvbW1vbi9uZXQvYnVnemlsbGEvYnVnemlsbGFfbW9jay5weQko
cmV2aXNpb24gMjU5MTQyKQorKysgVG9vbHMvU2NyaXB0cy93ZWJraXRweS9jb21tb24vbmV0L2J1
Z3ppbGxhL2J1Z3ppbGxhX21vY2sucHkJKHdvcmtpbmcgY29weSkKQEAgLTMxLDcgKzMxLDYgQEAg
aW1wb3J0IGRhdGV0aW1lCiBpbXBvcnQgbG9nZ2luZwogCiBmcm9tIHdlYmtpdHB5LmNvbW1vbi5u
ZXQuYnVnemlsbGEuYnVnIGltcG9ydCBCdWcKLWZyb20gd2Via2l0cHkuY29tbW9uLm5ldC5idWd6
aWxsYS5idWd6aWxsYSBpbXBvcnQgQnVnemlsbGEKIGZyb20gd2Via2l0cHkuY29tbW9uLm5ldC5i
dWd6aWxsYS5hdHRhY2htZW50IGltcG9ydCBBdHRhY2htZW50CiBmcm9tIHdlYmtpdHB5LmNvbW1v
bi5jb25maWcuY29tbWl0dGVycyBpbXBvcnQgQ29tbWl0dGVyTGlzdCwgUmV2aWV3ZXIKIApAQCAt
MTUzLDE5ICsxNTIsNiBAQCBfcGF0Y2g4ID0geyAgIyBSZXNvbHZlZCBidWcsIHdpdGhvdXQgcmV2
CiAgICAgImF0dGFjaGVyX2VtYWlsIjogImVyaWNAd2Via2l0Lm9yZyIsCiB9CiAKLV9wYXRjaDkg
PSB7Ci0gICAgJ2lkJzogMTAwMDgsCi0gICAgJ2J1Z19pZCc6IDUwMDA3LAotICAgICd1cmwnOiAn
aHR0cDovL2V4YW1wbGUuY29tLzEwMDA4JywKLSAgICAnbmFtZSc6ICdQYXRjaDknLAotICAgICdp
c19vYnNvbGV0ZSc6IEZhbHNlLAotICAgICdpc19wYXRjaCc6IFRydWUsCi0gICAgJ3Jldmlldyc6
ICc/JywKLSAgICAnY29tbWl0LXF1ZXVlJzogJy0nLAotICAgICdhdHRhY2hlcl9lbWFpbCc6ICdk
YmF0ZXNAd2Via2l0Lm9yZycsCi0gICAgJ2F0dGFjaF9kYXRlJzogZGF0ZXRpbWUuZGF0ZXRpbWUu
dG9kYXkoKSwKLX0KLQogIyBUaGlzIG1hdGNoZXMgb25lIG9mIEJ1Zy51bmFzc2lnbmVkX2VtYWls
cwogX3VuYXNzaWduZWRfZW1haWwgPSAid2Via2l0LXVuYXNzaWduZWRAbGlzdHMud2Via2l0Lm9y
ZyIKICMgVGhpcyBpcyBuZWVkZWQgZm9yIHRoZSBGbGFreVRlc3RSZXBvcnRlciB0byBiZWxpZXZl
IHRoZSBidWcKQEAgLTI5MywyMyArMjc5LDYgQEAgX2J1ZzcgPSB7CiB9CiAKIAotX2J1ZzggPSB7
Ci0gICAgJ2lkJzogNTAwMDcsCi0gICAgJ3RpdGxlJzogJ1NlY3VyaXR5IGJ1ZyB3aXRoIGEgcGF0
Y2ggbmVlZGluZyByZXZpZXcuJywKLSAgICAncmVwb3J0ZXJfZW1haWwnOiAnZGJhdGVzQHdlYmtp
dC5vcmcnLAotICAgICdhc3NpZ25lZF90b19lbWFpbCc6ICdmb29AZm9vLmNvbScsCi0gICAgJ2Nj
X2VtYWlscyc6IFtdLAotICAgICdhdHRhY2htZW50cyc6IFtfcGF0Y2g5XSwKLSAgICAnYnVnX3N0
YXR1cyc6ICdBU1NJR05FRCcsCi0gICAgJ2dyb3Vwcyc6IGZyb3plbnNldChbJ1NlY3VyaXR5LVNl
bnNpdGl2ZSddKSwKLSAgICAnY29tbWVudHMnOiBbeydjb21tZW50X2RhdGUnOiAgZGF0ZXRpbWUu
ZGF0ZXRpbWUoMjAxMSwgNiwgMTEsIDksIDQsIDMpLAotICAgICAgICAgICAgICAgICAgJ2NvbW1l
bnRfZW1haWwnOiAnYmFyQGZvby5jb20nLAotICAgICAgICAgICAgICAgICAgJ3RleHQnOiAnTWVz
c2FnZTEuXG5Db21taXR0ZWQgcjM1OiA8aHR0cHM6Ly90cmFjLndlYmtpdC5vcmcvY2hhbmdlc2V0
LzM1PicsCi0gICAgICAgICAgICAgICAgICB9LAotICAgICAgICAgICAgICAgICBdLAotfQotCi0K
IGNsYXNzIE1vY2tCdWd6aWxsYVF1ZXJpZXMob2JqZWN0KToKIAogICAgIGRlZiBfX2luaXRfXyhz
ZWxmLCBidWd6aWxsYSk6CkBAIC0zMjUsMTQgKzI5NCwxMiBAQCBjbGFzcyBNb2NrQnVnemlsbGFR
dWVyaWVzKG9iamVjdCk6CiAgICAgICAgICAgICAgICAgc2VsZi5fYWxsX2J1Z3MoKSkKICAgICAg
ICAgcmV0dXJuIGxpc3QobWFwKGxhbWJkYSBidWc6IGJ1Zy5pZCgpLCBidWdzX3dpdGhfY29tbWl0
X3F1ZXVlZF9wYXRjaGVzKSkKIAotICAgIGRlZiBmZXRjaF9hdHRhY2htZW50X2lkc19mcm9tX3Jl
dmlld19xdWV1ZShzZWxmLCBzaW5jZT1Ob25lLCBvbmx5X3NlY3VyaXR5X2J1Z3M9RmFsc2UpOgor
ICAgIGRlZiBmZXRjaF9hdHRhY2htZW50X2lkc19mcm9tX3Jldmlld19xdWV1ZShzZWxmLCBzaW5j
ZT1Ob25lKToKICAgICAgICAgdW5yZXZpZXdlZF9wYXRjaGVzID0gc3VtKFtidWcudW5yZXZpZXdl
ZF9wYXRjaGVzKCkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb3IgYnVnIGlu
IHNlbGYuX2FsbF9idWdzKCldLCBbXSkKICAgICAgICAgaWYgc2luY2U6CiAgICAgICAgICAgICB1
bnJldmlld2VkX3BhdGNoZXMgPSBbcGF0Y2ggZm9yIHBhdGNoIGluIHVucmV2aWV3ZWRfcGF0Y2hl
cwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIHBhdGNoLmF0dGFj
aF9kYXRlKCkgPj0gc2luY2VdCi0gICAgICAgIGlmIG9ubHlfc2VjdXJpdHlfYnVnczoKLSAgICAg
ICAgICAgIHVucmV2aWV3ZWRfcGF0Y2hlcyA9IGZpbHRlcihsYW1iZGEgcGF0Y2g6IHBhdGNoLmJ1
ZygpLmlzX3NlY3VyaXR5X3NlbnNpdGl2ZSgpLCB1bnJldmlld2VkX3BhdGNoZXMpCiAgICAgICAg
IHJldHVybiBsaXN0KG1hcChsYW1iZGEgcGF0Y2g6IHBhdGNoLmlkKCksIHVucmV2aWV3ZWRfcGF0
Y2hlcykpCiAKICAgICBkZWYgZmV0Y2hfcGF0Y2hlc19mcm9tX2NvbW1pdF9xdWV1ZShzZWxmKToK
QEAgLTM3OCwxMCArMzQ1LDE2IEBAIGNsYXNzIE1vY2tCdWd6aWxsYShvYmplY3QpOgogCiAgICAg
YnVnX3NlcnZlcl91cmwgPSAiaHR0cDovL2V4YW1wbGUuY29tIgogCi0gICAgYnVnX2NhY2hlID0g
X2lkX3RvX29iamVjdF9kaWN0aW9uYXJ5KF9idWcxLCBfYnVnMiwgX2J1ZzMsIF9idWc0LCBfYnVn
NSwgX2J1ZzYsIF9idWc3LCBfYnVnOCkKKyAgICBidWdfY2FjaGUgPSBfaWRfdG9fb2JqZWN0X2Rp
Y3Rpb25hcnkoX2J1ZzEsIF9idWcyLCBfYnVnMywgX2J1ZzQsIF9idWc1LCBfYnVnNiwgX2J1Zzcp
CiAKLSAgICBhdHRhY2htZW50X2NhY2hlID0gX2lkX3RvX29iamVjdF9kaWN0aW9uYXJ5KF9wYXRj
aDEsIF9wYXRjaDIsIF9wYXRjaDMsIF9wYXRjaDQsIF9wYXRjaDUsIF9wYXRjaDYsCi0gICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBfcGF0Y2g3LCBfcGF0Y2g4
LCBfcGF0Y2g5KQorICAgIGF0dGFjaG1lbnRfY2FjaGUgPSBfaWRfdG9fb2JqZWN0X2RpY3Rpb25h
cnkoX3BhdGNoMSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIF9wYXRjaDIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBfcGF0Y2gzLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgX3BhdGNoNCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIF9wYXRjaDUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBfcGF0Y2g2LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgX3BhdGNoNywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIF9wYXRjaDgpCiAKICAgICBkZWYgX19pbml0X18oc2VsZik6CiAgICAgICAgIHNl
bGYucXVlcmllcyA9IE1vY2tCdWd6aWxsYVF1ZXJpZXMoc2VsZikKQEAgLTQyMywyNCArMzk2LDE5
IEBAIGNsYXNzIE1vY2tCdWd6aWxsYShvYmplY3QpOgogICAgIGRlZiBzZXRfb3ZlcnJpZGVfcGF0
Y2goc2VsZiwgcGF0Y2gpOgogICAgICAgICBzZWxmLl9vdmVycmlkZV9wYXRjaCA9IHBhdGNoCiAK
LSAgICBkZWYgZmV0Y2hfYXR0YWNobWVudChzZWxmLCBhdHRhY2htZW50X2lkLCB0aHJvd19vbl9h
Y2Nlc3NfZXJyb3I9RmFsc2UpOgorICAgIGRlZiBmZXRjaF9hdHRhY2htZW50KHNlbGYsIGF0dGFj
aG1lbnRfaWQpOgogICAgICAgICBpZiBzZWxmLl9vdmVycmlkZV9wYXRjaDoKICAgICAgICAgICAg
IHJldHVybiBzZWxmLl9vdmVycmlkZV9wYXRjaAogCi0gICAgICAgIGF0dGFjaG1lbnRfZGljdGlv
bmFyeSA9IHNlbGYuYXR0YWNobWVudF9jYWNoZS5nZXQoaW50KGF0dGFjaG1lbnRfaWQpKQorICAg
ICAgICBhdHRhY2htZW50X2RpY3Rpb25hcnkgPSBzZWxmLmF0dGFjaG1lbnRfY2FjaGUuZ2V0KGF0
dGFjaG1lbnRfaWQpCiAgICAgICAgIGlmIG5vdCBhdHRhY2htZW50X2RpY3Rpb25hcnk6CiAgICAg
ICAgICAgICBwcmludCgiTU9DSzogZmV0Y2hfYXR0YWNobWVudDogJXMgaXMgbm90IGEga25vd24g
YXR0YWNobWVudCBpZCIgJSBhdHRhY2htZW50X2lkKQogICAgICAgICAgICAgcmV0dXJuIE5vbmUK
ICAgICAgICAgYnVnID0gc2VsZi5mZXRjaF9idWcoYXR0YWNobWVudF9kaWN0aW9uYXJ5WyJidWdf
aWQiXSkKLSAgICAgICAgaWYgYnVnLmlzX3NlY3VyaXR5X3NlbnNpdGl2ZSgpIGFuZCB0aHJvd19v
bl9hY2Nlc3NfZXJyb3I6Ci0gICAgICAgICAgICByYWlzZSBCdWd6aWxsYS5BY2Nlc3NFcnJvcihh
dHRhY2htZW50X2lkLCBCdWd6aWxsYS5BY2Nlc3NFcnJvci5OT1RfUEVSTUlUVEVELCAnQnVnIEFj
Y2VzcyBEZW5pZWQnKQogICAgICAgICBmb3IgYXR0YWNobWVudCBpbiBidWcuYXR0YWNobWVudHMo
aW5jbHVkZV9vYnNvbGV0ZT1UcnVlKToKICAgICAgICAgICAgIGlmIGF0dGFjaG1lbnQuaWQoKSA9
PSBpbnQoYXR0YWNobWVudF9pZCk6CiAgICAgICAgICAgICAgICAgcmV0dXJuIGF0dGFjaG1lbnQK
IAotICAgIGRlZiBmZXRjaF9hdHRhY2htZW50X2NvbnRlbnRzKHNlbGYsIGF0dGFjaG1lbnRfaWQp
OgotICAgICAgICByZXR1cm4gJ1BhdGNoJwotCiAgICAgZGVmIGJ1Z191cmxfZm9yX2J1Z19pZChz
ZWxmLCBidWdfaWQpOgogICAgICAgICByZXR1cm4gIiVzLyVzIiAlIChzZWxmLmJ1Z19zZXJ2ZXJf
dXJsLCBidWdfaWQpCiAKQEAgLTQ5NCwxMSArNDYyLDYgQEAgY2xhc3MgTW9ja0J1Z3ppbGxhKG9i
amVjdCk6CiAgICAgICAgICAgICBfbG9nLmluZm8oIi0tIEJlZ2luIGNvbW1lbnQgLS0iKQogICAg
ICAgICAgICAgX2xvZy5pbmZvKGNvbW1lbnRfdGV4dCkKICAgICAgICAgICAgIF9sb2cuaW5mbygi
LS0gRW5kIGNvbW1lbnQgLS0iKQotICAgICAgICBidWcgPSBzZWxmLmZldGNoX2J1ZyhidWdfaWQp
Ci0gICAgICAgIGlmIGJ1Zy5idWdfZGljdGlvbmFyeToKLSAgICAgICAgICAgIHBhdGNoZXMgPSBi
dWcucGF0Y2hlcygpCi0gICAgICAgICAgICBpZiBsZW4ocGF0Y2hlcykgPT0gMToKLSAgICAgICAg
ICAgICAgICByZXR1cm4gcGF0Y2hlc1swXS5pZCgpCiAgICAgICAgIHJldHVybiAnMTAwMDEnCiAK
ICAgICBkZWYgYWRkX2NjX3RvX2J1ZyhzZWxmLCBidWdfaWQsIGNjcyk6CkluZGV4OiBUb29scy9T
Y3JpcHRzL3dlYmtpdHB5L2NvbW1vbi9uZXQvYnVnemlsbGEvYnVnemlsbGFfdW5pdHRlc3QucHkK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gVG9vbHMvU2NyaXB0cy93ZWJraXRweS9jb21tb24vbmV0L2J1Z3ppbGxh
L2J1Z3ppbGxhX3VuaXR0ZXN0LnB5CShyZXZpc2lvbiAyNTkxNDIpCisrKyBUb29scy9TY3JpcHRz
L3dlYmtpdHB5L2NvbW1vbi9uZXQvYnVnemlsbGEvYnVnemlsbGFfdW5pdHRlc3QucHkJKHdvcmtp
bmcgY29weSkKQEAgLTE2NywxOSArMTY3LDYgQEAgWkVacGJtbHphRXh2WVdSWGFYUm9VbVZoYzI5
dU9uSmxZWE52YmwwNwogPC9idWd6aWxsYT4KICIiIiAlIF9idWdfeG1sCiAKLSAgICBfc2luZ2xl
X25vdF9wZXJtaXR0ZWRfYnVnX3htbCA9ICIiIgotPD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGlu
Zz0iVVRGLTgiIHN0YW5kYWxvbmU9InllcyIgPz4KLTwhRE9DVFlQRSBidWd6aWxsYSBTWVNURU0g
Imh0dHBzOi8vYnVncy53ZWJraXQub3JnL2J1Z3ppbGxhLmR0ZCI+Ci08YnVnemlsbGEgdmVyc2lv
bj0iMy4yLjMiCi0gICAgICAgICAgdXJsYmFzZT0iaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvIgot
ICAgICAgICAgIG1haW50YWluZXI9ImFkbWluQHdlYmtpdC5vcmciCi0+Ci0gICAgPGJ1ZyBlcnJv
cj0iTm90UGVybWl0dGVkIj4KLSAgICAgICAgPGJ1Z19pZD4zMjU4NTwvYnVnX2lkPgotICAgIDwv
YnVnPgotPC9idWd6aWxsYT4KLSIiIgotCiAgICAgX2V4cGVjdGVkX2V4YW1wbGVfYnVnX3BhcnNp
bmcgPSB7CiAgICAgICAgICJpZCIgOiAzMjU4NSwKICAgICAgICAgInRpdGxlIiA6IHUiYnVnIHRv
IHRlc3Qgd2Via2l0LXBhdGNoJ3MgYW5kIGNvbW1pdC1xdWV1ZSdzIGZhaWx1cmVzIiwKQEAgLTE5
OSw3ICsxODYsNiBAQCBaRVpwYm1semFFeHZZV1JYYVhSb1VtVmhjMjl1T25KbFlYTnZibDA3CiAg
ICAgICAgICAgICAndHlwZSc6ICd0ZXh0L3BsYWluJywKICAgICAgICAgICAgICdpZCc6IDQ1NTQ4
CiAgICAgICAgIH1dLAotICAgICAgICAnZ3JvdXBzJzogZnJvemVuc2V0KCksCiAgICAgICAgICJj
b21tZW50cyIgOiBbewogICAgICAgICAgICAgICAgICdjb21tZW50X2RhdGUnOiBkYXRldGltZS5k
YXRldGltZSgyMDA5LCAxMiwgMTUsIDE1LCAxNywgMjgpLAogICAgICAgICAgICAgICAgICdjb21t
ZW50X2VtYWlsJzogJ2VyaWNAd2Via2l0Lm9yZycsCkBAIC0yMjEsMTAgKzIwNyw2IEBAIElnbm9y
ZSB0aGlzIGJ1Zy4gIEp1c3QgZm9yIHRlc3RpbmcgZmFpbHUKICAgICAgICAgYnVnID0gQnVnemls
bGEoKS5fcGFyc2VfYnVnX2RpY3Rpb25hcnlfZnJvbV94bWwoc2VsZi5fc2luZ2xlX2J1Z194bWwp
CiAgICAgICAgIHNlbGYuX2Fzc2VydF9kaWN0aW9uYXJpZXNfZXF1YWwoYnVnLCBzZWxmLl9leHBl
Y3RlZF9leGFtcGxlX2J1Z19wYXJzaW5nKQogCi0gICAgZGVmIHRlc3RfcGFyc2VfYnVnX2RpY3Rp
b25hcnlfZnJvbV94bWxfZm9yX25vdF9wZXJtaXR0ZWRfYnVnKHNlbGYpOgotICAgICAgICBidWcg
PSBCdWd6aWxsYSgpLl9wYXJzZV9idWdfZGljdGlvbmFyeV9mcm9tX3htbChzZWxmLl9zaW5nbGVf
bm90X3Blcm1pdHRlZF9idWdfeG1sKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGJ1Zywge30p
Ci0KICAgICBfc2FtcGxlX211bHRpX2J1Z194bWwgPSAiIiIKIDxidWd6aWxsYSB2ZXJzaW9uPSIz
LjIuMyIgdXJsYmFzZT0iaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvIiBtYWludGFpbmVyPSJhZG1p
bkB3ZWJraXQub3JnIiBleHBvcnRlcj0iZXJpY0B3ZWJraXQub3JnIj4KICAgICAlcwpAQCAtMjYz
LDcgKzI0NSw3IEBAIElnbm9yZSB0aGlzIGJ1Zy4gIEp1c3QgZm9yIHRlc3RpbmcgZmFpbHUKIAog
ICAgIGRlZiB0ZXN0X2F0dGFjaG1lbnRfZGV0YWlsX2J1Z19wYXJzaW5nKHNlbGYpOgogICAgICAg
ICBidWd6aWxsYSA9IEJ1Z3ppbGxhKCkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgoMjczMTQs
IE5vbmUpLCBidWd6aWxsYS5fcGFyc2VfYnVnX2lkX2Zyb21fYXR0YWNobWVudF9wYWdlKHNlbGYu
X3NhbXBsZV9hdHRhY2htZW50X2RldGFpbF9wYWdlKSkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVh
bCgyNzMxNCwgYnVnemlsbGEuX3BhcnNlX2J1Z19pZF9mcm9tX2F0dGFjaG1lbnRfcGFnZShzZWxm
Ll9zYW1wbGVfYXR0YWNobWVudF9kZXRhaWxfcGFnZSkpCiAKICAgICBkZWYgdGVzdF9hZGRfY2Nf
dG9fYnVnKHNlbGYpOgogICAgICAgICBidWd6aWxsYSA9IEJ1Z3ppbGxhKCkKSW5kZXg6IFRvb2xz
L1NjcmlwdHMvd2Via2l0cHkvY29tbW9uL25ldC9idWd6aWxsYS9jb25zdGFudHMucHkKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gVG9vbHMvU2NyaXB0cy93ZWJraXRweS9jb21tb24vbmV0L2J1Z3ppbGxhL2NvbnN0
YW50cy5weQkocmV2aXNpb24gMjU5MTQyKQorKysgVG9vbHMvU2NyaXB0cy93ZWJraXRweS9jb21t
b24vbmV0L2J1Z3ppbGxhL2NvbnN0YW50cy5weQkobm9uZXhpc3RlbnQpCkBAIC0xLDUgKzAsMCBA
QAotIyBFeGFtcGxlOiAyMDEwLTAxLTIwIDE0OjMxIFBTVAotIyBGSVhNRTogU29tZSBidWd6aWxs
YSBkYXRlcyBzZWVtIHRvIGhhdmUgc2Vjb25kcyBpbiB0aGVtPwotIyBQeXRob24gZG9lcyBub3Qg
c3VwcG9ydCB0aW1lem9uZXMgb3V0IG9mIHRoZSBib3guCi0jIEFzc3VtZSB0aGF0IGJ1Z3ppbGxh
IGFsd2F5cyB1c2VzIFBTVCAod2hpY2ggaXMgdHJ1ZSBmb3IgYnVncy53ZWJraXQub3JnKQotQlVH
WklMTEFfREFURV9GT1JNQVQgPSAiJVktJW0tJWQgJUg6JU06JVMiCkluZGV4OiBUb29scy9TY3Jp
cHRzL3dlYmtpdHB5L3Rvb2wvbWFpbi5weQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9TY3JpcHRzL3dl
YmtpdHB5L3Rvb2wvbWFpbi5weQkocmV2aXNpb24gMjU5MTQyKQorKysgVG9vbHMvU2NyaXB0cy93
ZWJraXRweS90b29sL21haW4ucHkJKHdvcmtpbmcgY29weSkKQEAgLTMwLDExICszMCw5IEBACiAj
IEEgdG9vbCBmb3IgYXV0b21hdGluZyBkZWFsaW5nIHdpdGggYnVnemlsbGEsIHBvc3RpbmcgcGF0
Y2hlcywgY29tbWl0dGluZyBwYXRjaGVzLCBldGMuCiAKIGZyb20gb3B0cGFyc2UgaW1wb3J0IG1h
a2Vfb3B0aW9uCi1pbXBvcnQgbG9nZ2luZwogaW1wb3J0IG9zCiBpbXBvcnQgdGhyZWFkaW5nCiAK
LWZyb20gd2Via2l0cHkuY29tbW9uLmNoZWNrb3V0LnNjbSBpbXBvcnQgR2l0CiBmcm9tIHdlYmtp
dHB5LmNvbW1vbi5jb25maWcucG9ydHMgaW1wb3J0IERlcHJlY2F0ZWRQb3J0CiBmcm9tIHdlYmtp
dHB5LmNvbW1vbi5ob3N0IGltcG9ydCBIb3N0CiBmcm9tIHdlYmtpdHB5LmNvbW1vbi5uZXQuaXJj
IGltcG9ydCBpcmNwcm94eQpAQCAtNDMsMTQgKzQxLDEyIEBAIGZyb20gd2Via2l0cHkuY29tbW9u
Lm5ldC5zdGF0dXNzZXJ2ZXIgaW0KIGZyb20gd2Via2l0cHkudG9vbC5tdWx0aWNvbW1hbmR0b29s
IGltcG9ydCBNdWx0aUNvbW1hbmRUb29sCiBmcm9tIHdlYmtpdHB5LnRvb2wgaW1wb3J0IGNvbW1h
bmRzCiAKLV9sb2cgPSBsb2dnaW5nLmdldExvZ2dlcihfX25hbWVfXykKIAogY2xhc3MgV2ViS2l0
UGF0Y2goTXVsdGlDb21tYW5kVG9vbCwgSG9zdCk6CiAgICAgZ2xvYmFsX29wdGlvbnMgPSBbCiAg
ICAgICAgIG1ha2Vfb3B0aW9uKCItdiIsICItLXZlcmJvc2UiLCBhY3Rpb249InN0b3JlX3RydWUi
LCBkZXN0PSJ2ZXJib3NlIiwgZGVmYXVsdD1GYWxzZSwgaGVscD0iZW5hYmxlIGFsbCBsb2dnaW5n
IiksCiAgICAgICAgIG1ha2Vfb3B0aW9uKCItZCIsICItLWRpcmVjdG9yeSIsIGFjdGlvbj0iYXBw
ZW5kIiwgZGVzdD0icGF0Y2hfZGlyZWN0b3JpZXMiLCBkZWZhdWx0PVtdLCBoZWxwPSJEaXJlY3Rv
cnkgdG8gbG9vayBhdCBmb3IgY2hhbmdlZCBmaWxlcyIpLAogICAgICAgICBtYWtlX29wdGlvbigi
LS1zdGF0dXMtaG9zdCIsIGFjdGlvbj0ic3RvcmUiLCBkZXN0PSJzdGF0dXNfaG9zdCIsIHR5cGU9
InN0cmluZyIsIGhlbHA9Ikhvc3RuYW1lIChlLmcuIGxvY2FsaG9zdCBvciBjb21taXQud2Via2l0
Lm9yZykgd2hlcmUgc3RhdHVzIHVwZGF0ZXMgc2hvdWxkIGJlIHBvc3RlZC4iKSwKLSAgICAgICAg
bWFrZV9vcHRpb24oIi0tc3RhdHVzLWhvc3QtdXNlcy1odHRwIiwgYWN0aW9uPSJzdG9yZV9mYWxz
ZSIsIGRlZmF1bHQ9VHJ1ZSwgZGVzdD0ic3RhdHVzX2hvc3RfdXNlc19odHRwcyIsIGhlbHA9IlVz
ZSBIVFRQIHdoZW4gcXVlcnlpbmcgdGhlIHN0YXR1cyBob3N0LiIpLAogICAgICAgICBtYWtlX29w
dGlvbigiLS1ib3QtaWQiLCBhY3Rpb249InN0b3JlIiwgZGVzdD0iYm90X2lkIiwgdHlwZT0ic3Ry
aW5nIiwgaGVscD0iSWRlbnRpZmllciBmb3IgdGhpcyBib3QgKGlmIG11bHRpcGxlIGJvdHMgYXJl
IHJ1bm5pbmcgZm9yIGEgcXVldWUpIiksCiAgICAgICAgIG1ha2Vfb3B0aW9uKCItLWlyYy1wYXNz
d29yZCIsIGFjdGlvbj0ic3RvcmUiLCBkZXN0PSJpcmNfcGFzc3dvcmQiLCB0eXBlPSJzdHJpbmci
LCBoZWxwPSJQYXNzd29yZCB0byB1c2Ugd2hlbiBjb21tdW5pY2F0aW5nIHZpYSBJUkMuIiksCiAg
ICAgICAgIG1ha2Vfb3B0aW9uKCItLXNlY29uZHMtdG8tc2xlZXAiLCBhY3Rpb249InN0b3JlIiwg
ZGVmYXVsdD0xMjAsIHR5cGU9ImludCIsIGhlbHA9Ik51bWJlciBvZiBzZWNvbmRzIHRvIHNsZWVw
IGluIHRoZSB0YXNrIHF1ZXVlLiIpLApAQCAtOTUsNDIgKzkxLDExIEBAIGNsYXNzIFdlYktpdFBh
dGNoKE11bHRpQ29tbWFuZFRvb2wsIEhvc3QKICAgICAgICAgICAgIHJldHVybiBzZWxmLnNjbSgp
LnN1cHBvcnRzX2xvY2FsX2NvbW1pdHMoKQogICAgICAgICByZXR1cm4gVHJ1ZQogCi0gICAgQHN0
YXRpY21ldGhvZAotICAgIGRlZiBfc3RhdHVzX3NlcnZlcl9hcGlfa2V5X2Zyb21fZ2l0KCk6Ci0g
ICAgICAgIHRyeToKLSAgICAgICAgICAgIGlmIG5vdCBHaXQuaW5fd29ya2luZ19kaXJlY3Rvcnko
b3MuZ2V0Y3dkKCkpOgotICAgICAgICAgICAgICAgIHJldHVybiBOb25lCi0gICAgICAgICAgICBy
ZXR1cm4gR2l0LnJlYWRfZ2l0X2NvbmZpZygnd2Via2l0LnN0YXR1cy1hcGkta2V5JykKLSAgICAg
ICAgZXhjZXB0IE9TRXJyb3IgYXMgZToKLSAgICAgICAgICAgICMgQ2F0Y2ggYW5kIGlnbm9yZSBP
U0Vycm9yIGV4Y2VwdGlvbnMgc3VjaCBhcyAibm8gc3VjaCBmaWxlCi0gICAgICAgICAgICAjIG9y
IGRpcmVjdG9yeSIgKE9TRXJyb3IgZXJybm8gMiksIHdoaWNoIGltcGx5IHRoYXQgdGhlIEdpdAot
ICAgICAgICAgICAgIyBjb21tYW5kIGNhbm5vdCBiZSBmb3VuZC9pcyBub3QgaW5zdGFsbGVkLgot
ICAgICAgICAgICAgX2xvZy53YXJuaW5nKCdDb3VsZCBub3QgcmVhZCBBUEkga2V5IGZyb20gR2l0
OiB7fScuZm9ybWF0KHN0cihlKSkpCi0gICAgICAgIHJldHVybiBOb25lCi0KLSAgICBAc3RhdGlj
bWV0aG9kCi0gICAgZGVmIF9zdGF0dXNfc2VydmVyX2FwaV9rZXkoKToKLSAgICAgICAgYXBpX2tl
eSA9IG9zLmVudmlyb24uZ2V0KCdXRUJLSVRfU1RBVFVTX0FQSV9LRVknKQotICAgICAgICBpZiBu
b3QgYXBpX2tleToKLSAgICAgICAgICAgIGFwaV9rZXkgPSBXZWJLaXRQYXRjaC5fc3RhdHVzX3Nl
cnZlcl9hcGlfa2V5X2Zyb21fZ2l0KCkKLSAgICAgICAgdHJ5OgotICAgICAgICAgICAgYXBpX2tl
eSA9IHN0cihhcGlfa2V5KQotICAgICAgICBleGNlcHQgVW5pY29kZUVuY29kZUVycm9yOgotICAg
ICAgICAgICAgX2xvZy53YXJuaW5nKCdJZ25vcmluZyBub24tQVNDSUkgY2hhcmFjdGVycyBpbiBB
UEkga2V5LicpCi0gICAgICAgICAgICBhcGlfa2V5ID0gYXBpX2tleS5lbmNvZGUoJ2FzY2lpJywg
J2lnbm9yZScpCi0gICAgICAgIHJldHVybiBhcGlfa2V5Ci0KICAgICAjIEZJWE1FOiBUaGlzIG1h
eSBiZSB1bm5lY2Vzc2FyeSBzaW5jZSB3ZSBwYXNzIGdsb2JhbCBvcHRpb25zIHRvIGFsbCBjb21t
YW5kcyBkdXJpbmcgZXhlY3V0ZSgpIGFzIHdlbGwuCiAgICAgZGVmIGhhbmRsZV9nbG9iYWxfb3B0
aW9ucyhzZWxmLCBvcHRpb25zKToKICAgICAgICAgc2VsZi5pbml0aWFsaXplX3NjbShvcHRpb25z
LnBhdGNoX2RpcmVjdG9yaWVzKQotCi0gICAgICAgIGFwaV9rZXkgPSBzZWxmLl9zdGF0dXNfc2Vy
dmVyX2FwaV9rZXkoKQotICAgICAgICBpZiBhcGlfa2V5OgotICAgICAgICAgICAgc2VsZi5zdGF0
dXNfc2VydmVyLnNldF9hcGlfa2V5KGFwaV9rZXkpCi0KICAgICAgICAgaWYgb3B0aW9ucy5zdGF0
dXNfaG9zdDoKICAgICAgICAgICAgIHNlbGYuc3RhdHVzX3NlcnZlci5zZXRfaG9zdChvcHRpb25z
LnN0YXR1c19ob3N0KQotICAgICAgICBzZWxmLnN0YXR1c19zZXJ2ZXIuc2V0X3VzZV9odHRwcyhv
cHRpb25zLnN0YXR1c19ob3N0X3VzZXNfaHR0cHMpCiAgICAgICAgIGlmIG9wdGlvbnMuYm90X2lk
OgogICAgICAgICAgICAgc2VsZi5zdGF0dXNfc2VydmVyLnNldF9ib3RfaWQob3B0aW9ucy5ib3Rf
aWQpCiAgICAgICAgIGlmIG9wdGlvbnMuaXJjX3Bhc3N3b3JkOgpJbmRleDogVG9vbHMvU2NyaXB0
cy93ZWJraXRweS90b29sL2JvdC9mZWVkZXJzLnB5Cj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFRvb2xzL1Njcmlw
dHMvd2Via2l0cHkvdG9vbC9ib3QvZmVlZGVycy5weQkocmV2aXNpb24gMjU5MTQyKQorKysgVG9v
bHMvU2NyaXB0cy93ZWJraXRweS90b29sL2JvdC9mZWVkZXJzLnB5CSh3b3JraW5nIGNvcHkpCkBA
IC0xLDUgKzEsNCBAQAogIyBDb3B5cmlnaHQgKGMpIDIwMTAgR29vZ2xlIEluYy4gQWxsIHJpZ2h0
cyByZXNlcnZlZC4KLSMgQ29weXJpZ2h0IChDKSAyMDE4IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KICMKICMgUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFy
eSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAjIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBw
cm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKQEAgLTgyLDIwICs4MSw5
IEBAIGNsYXNzIEVXU0ZlZWRlcihBYnN0cmFjdEZlZWRlcik6CiAgICAgICAgIEFic3RyYWN0RmVl
ZGVyLl9faW5pdF9fKHNlbGYsIHRvb2wpCiAKICAgICBkZWYgZmVlZChzZWxmKToKLSAgICAgICAg
Y3VycmVudF90aW1lID0gZGF0ZXRpbWUudG9kYXkoKQotICAgICAgICBpZHNfbmVlZGluZ19yZXZp
ZXcgPSBzZXQoc2VsZi5fdG9vbC5idWdzLnF1ZXJpZXMuZmV0Y2hfYXR0YWNobWVudF9pZHNfZnJv
bV9yZXZpZXdfcXVldWUoY3VycmVudF90aW1lIC0gdGltZWRlbHRhKDcpKSkKLSAgICAgICAgc2Vj
dXJpdHlfaWRzX25lZWRpbmdfcmV2aWV3ID0gZnJvemVuc2V0KHNlbGYuX3Rvb2wuYnVncy5xdWVy
aWVzLmZldGNoX2F0dGFjaG1lbnRfaWRzX2Zyb21fcmV2aWV3X3F1ZXVlKGN1cnJlbnRfdGltZSAt
IHRpbWVkZWx0YSg3KSwgb25seV9zZWN1cml0eV9idWdzPVRydWUpKQorICAgICAgICBpZHNfbmVl
ZGluZ19yZXZpZXcgPSBzZXQoc2VsZi5fdG9vbC5idWdzLnF1ZXJpZXMuZmV0Y2hfYXR0YWNobWVu
dF9pZHNfZnJvbV9yZXZpZXdfcXVldWUoZGF0ZXRpbWUudG9kYXkoKSAtIHRpbWVkZWx0YSg3KSkp
CiAgICAgICAgIG5ld19pZHMgPSBpZHNfbmVlZGluZ19yZXZpZXcuZGlmZmVyZW5jZShzZWxmLl9p
ZHNfc2VudF90b19zZXJ2ZXIpCiAgICAgICAgIF9sb2cuaW5mbygiRmVlZGluZyBFV1MgKCVzLCAl
cyBuZXcpIiAlIChwbHVyYWxpemUobGVuKGlkc19uZWVkaW5nX3JldmlldyksICJyPyBwYXRjaCIp
LCBsZW4obmV3X2lkcykpKQogICAgICAgICBmb3IgYXR0YWNobWVudF9pZCBpbiBuZXdfaWRzOiAg
IyBPcmRlciBkb2Vzbid0IHJlYWxseSBtYXR0ZXIgZm9yIHRoZSBFV1MuCi0gICAgICAgICAgICAj
IERvd25sb2FkIHBhdGNoZXMgZnJvbSBzZWN1cml0eSBzZW5zaXRpdmUgYnVncyBhbmQgdXBsb2Fk
IHRoZW0gdG8gdGhlIHN0YXR1cyBzZXJ2ZXIgc2luY2UgdGhlCi0gICAgICAgICAgICAjIEVXUyBx
dWV1ZXMgZG8gbm90IGhhdmUgcGVybWlzc2lvbiB0byBmZXRjaCB0aGVtIGRpcmVjdGx5IGZyb20g
QnVnemlsbGEuCi0gICAgICAgICAgICBhdHRhY2htZW50X2RhdGEgPSBOb25lCi0gICAgICAgICAg
ICBpZiBhdHRhY2htZW50X2lkIGluIHNlY3VyaXR5X2lkc19uZWVkaW5nX3JldmlldzoKLSAgICAg
ICAgICAgICAgICBhdHRhY2htZW50ID0gc2VsZi5fdG9vbC5idWdzLmZldGNoX2F0dGFjaG1lbnQo
YXR0YWNobWVudF9pZCkKLSAgICAgICAgICAgICAgICBpZiBub3QgYXR0YWNobWVudDoKLSAgICAg
ICAgICAgICAgICAgICAgX2xvZy5lcnJvcignRmFpbGVkIHRvIHJldHJpZXZlIGF0dGFjaG1lbnQg
e30nLmZvcm1hdChhdHRhY2htZW50X2lkKSkKLSAgICAgICAgICAgICAgICAgICAgY29udGludWUK
LSAgICAgICAgICAgICAgICBzZWxmLl90b29sLnN0YXR1c19zZXJ2ZXIudXBsb2FkX2F0dGFjaG1l
bnQoYXR0YWNobWVudCkKICAgICAgICAgICAgIHNlbGYuX3Rvb2wuc3RhdHVzX3NlcnZlci5zdWJt
aXRfdG9fZXdzKGF0dGFjaG1lbnRfaWQpCiAgICAgICAgICAgICBzZWxmLl9pZHNfc2VudF90b19z
ZXJ2ZXIuYWRkKGF0dGFjaG1lbnRfaWQpCkluZGV4OiBUb29scy9TY3JpcHRzL3dlYmtpdHB5L3Rv
b2wvYm90L3N0eWxlcXVldWV0YXNrLnB5Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFRvb2xzL1NjcmlwdHMvd2Vi
a2l0cHkvdG9vbC9ib3Qvc3R5bGVxdWV1ZXRhc2sucHkJKHJldmlzaW9uIDI1OTE0MikKKysrIFRv
b2xzL1NjcmlwdHMvd2Via2l0cHkvdG9vbC9ib3Qvc3R5bGVxdWV1ZXRhc2sucHkJKHdvcmtpbmcg
Y29weSkKQEAgLTM2LDE1ICszNiwxMSBAQCBjbGFzcyBTdHlsZVF1ZXVlVGFza0RlbGVnYXRlKFBh
dGNoQW5hbHlzCiAKIGNsYXNzIFN0eWxlUXVldWVUYXNrKFBhdGNoQW5hbHlzaXNUYXNrKToKICAg
ICBkZWYgdmFsaWRhdGUoc2VsZik6Ci0gICAgICAgICMgRklYTUU6IE5lZWQgYSB3YXkgdG8gYXNr
IHRoZSBzdGF0dXMgc2VydmVyIGZvciB0aGUgbGF0ZXN0IHN0YXR1cyBvZiBhIHNlY3VyaXR5IGJ1
Zy4KLSAgICAgICAgIyBBdHRhY2htZW50cyBkb3dubG9hZGVkIGZyb20gdGhlIHN0YXR1cyBzZXJ2
ZXIgZG8gbm90IGhhdmUgYW4gYXNzb2NpYXRlZCBidWcgYW5kCi0gICAgICAgICMgcmVmbGVjdCB0
aGUgQnVnemlsbGEgc3RhdGUgYXQgdGhlIHRpbWUgdGhleSB3ZXJlIHVwbG9hZGVkIHRvIHRoZSBz
dGF0dXMgc2VydmVyLgotICAgICAgICAjIFNlZSA8aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTE4NjgxNz4uCiAgICAgICAgIHNlbGYuX3BhdGNoID0gc2VsZi5fZGVsZWdh
dGUucmVmZXRjaF9wYXRjaChzZWxmLl9wYXRjaCkKICAgICAgICAgaWYgc2VsZi5fcGF0Y2guaXNf
b2Jzb2xldGUoKToKICAgICAgICAgICAgIHNlbGYuZXJyb3IgPSAiUGF0Y2ggaXMgb2Jzb2xldGUu
IgogICAgICAgICAgICAgcmV0dXJuIEZhbHNlCi0gICAgICAgIGlmIHNlbGYuX3BhdGNoLmJ1Zygp
IGFuZCBzZWxmLl9wYXRjaC5idWcoKS5pc19jbG9zZWQoKToKKyAgICAgICAgaWYgc2VsZi5fcGF0
Y2guYnVnKCkuaXNfY2xvc2VkKCk6CiAgICAgICAgICAgICBzZWxmLmVycm9yID0gIkJ1ZyBpcyBh
bHJlYWR5IGNsb3NlZC4iCiAgICAgICAgICAgICByZXR1cm4gRmFsc2UKICAgICAgICAgaWYgc2Vs
Zi5fcGF0Y2gucmV2aWV3KCkgPT0gIi0iOgpJbmRleDogVG9vbHMvU2NyaXB0cy93ZWJraXRweS90
b29sL2NvbW1hbmRzL2Rvd25sb2FkLnB5Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFRvb2xzL1NjcmlwdHMvd2Vi
a2l0cHkvdG9vbC9jb21tYW5kcy9kb3dubG9hZC5weQkocmV2aXNpb24gMjU5MTQyKQorKysgVG9v
bHMvU2NyaXB0cy93ZWJraXRweS90b29sL2NvbW1hbmRzL2Rvd25sb2FkLnB5CSh3b3JraW5nIGNv
cHkpCkBAIC0yMTgsMzUgKzIxOCwyMCBAQCBjbGFzcyBBYnN0cmFjdFBhdGNoU2VxdWVuY2luZ0Nv
bW1hbmQoQWJzCiAKIGNsYXNzIFByb2Nlc3NBdHRhY2htZW50c01peGluKG9iamVjdCk6CiAgICAg
ZGVmIF9mZXRjaF9saXN0X29mX3BhdGNoZXNfdG9fcHJvY2VzcyhzZWxmLCBvcHRpb25zLCBhcmdz
LCB0b29sKToKLSAgICAgICAgcGF0Y2hlcyA9IFtdCi0gICAgICAgIGZvciBwYXRjaF9pZCBpbiBh
cmdzOgotICAgICAgICAgICAgdHJ5OgotICAgICAgICAgICAgICAgIHBhdGNoID0gdG9vbC5idWdz
LmZldGNoX2F0dGFjaG1lbnQocGF0Y2hfaWQsIHRocm93X29uX2FjY2Vzc19lcnJvcj1UcnVlKQot
ICAgICAgICAgICAgZXhjZXB0IEJ1Z3ppbGxhLkFjY2Vzc0Vycm9yIGFzIGU6Ci0gICAgICAgICAg
ICAgICAgaWYgZS5lcnJvcl9jb2RlID09IEJ1Z3ppbGxhLkFjY2Vzc0Vycm9yLk5PVF9QRVJNSVRU
RUQ6Ci0gICAgICAgICAgICAgICAgICAgIHBhdGNoID0gdG9vbC5zdGF0dXNfc2VydmVyLmZldGNo
X2F0dGFjaG1lbnQocGF0Y2hfaWQpCi0gICAgICAgICAgICBpZiBwYXRjaDoKLSAgICAgICAgICAg
ICAgICBwYXRjaGVzLmFwcGVuZChwYXRjaCkKLSAgICAgICAgcmV0dXJuIHBhdGNoZXMKKyAgICAg
ICAgcmV0dXJuIGxpc3QobWFwKGxhbWJkYSBwYXRjaF9pZDogdG9vbC5idWdzLmZldGNoX2F0dGFj
aG1lbnQocGF0Y2hfaWQpLCBhcmdzKSkKIAogCiBjbGFzcyBQcm9jZXNzQnVnc01peGluKG9iamVj
dCk6CiAgICAgZGVmIF9mZXRjaF9saXN0X29mX3BhdGNoZXNfdG9fcHJvY2VzcyhzZWxmLCBvcHRp
b25zLCBhcmdzLCB0b29sKToKICAgICAgICAgYWxsX3BhdGNoZXMgPSBbXQogICAgICAgICBmb3Ig
YnVnX2lkIGluIGFyZ3M6Ci0gICAgICAgICAgICBidWcgPSB0b29sLmJ1Z3MuZmV0Y2hfYnVnKGJ1
Z19pZCkKLSAgICAgICAgICAgIGlmIG5vdCBidWc6Ci0gICAgICAgICAgICAgICAgY29udGludWUK
LSAgICAgICAgICAgIHBhdGNoZXMgPSBidWcucmV2aWV3ZWRfcGF0Y2hlcygpCisgICAgICAgICAg
ICBwYXRjaGVzID0gdG9vbC5idWdzLmZldGNoX2J1ZyhidWdfaWQpLnJldmlld2VkX3BhdGNoZXMo
KQogICAgICAgICAgICAgX2xvZy5pbmZvKCIlcyBmb3VuZCBvbiBidWcgJXMuIiAlIChwbHVyYWxp
emUobGVuKHBhdGNoZXMpLCAicmV2aWV3ZWQgcGF0Y2giKSwgYnVnX2lkKSkKICAgICAgICAgICAg
IGFsbF9wYXRjaGVzICs9IHBhdGNoZXMKICAgICAgICAgaWYgbm90IGFsbF9wYXRjaGVzOgogICAg
ICAgICAgICAgX2xvZy5pbmZvKCJObyByZXZpZXdlZCBwYXRjaGVzIGZvdW5kLCBsb29raW5nIGZv
ciB1bnJldmlld2VkIHBhdGNoZXMuIikKICAgICAgICAgICAgIGZvciBidWdfaWQgaW4gYXJnczoK
LSAgICAgICAgICAgICAgICBidWcgPSB0b29sLmJ1Z3MuZmV0Y2hfYnVnKGJ1Z19pZCkKLSAgICAg
ICAgICAgICAgICBpZiBub3QgYnVnOgotICAgICAgICAgICAgICAgICAgICBjb250aW51ZQotICAg
ICAgICAgICAgICAgIHBhdGNoZXMgPSBidWcucGF0Y2hlcygpCisgICAgICAgICAgICAgICAgcGF0
Y2hlcyA9IHRvb2wuYnVncy5mZXRjaF9idWcoYnVnX2lkKS5wYXRjaGVzKCkKICAgICAgICAgICAg
ICAgICBfbG9nLmluZm8oIiVzIGZvdW5kIG9uIGJ1ZyAlcy4iICUgKHBsdXJhbGl6ZShsZW4ocGF0
Y2hlcyksICJwYXRjaCIpLCBidWdfaWQpKQogICAgICAgICAgICAgICAgIGFsbF9wYXRjaGVzICs9
IHBhdGNoZXMKICAgICAgICAgcmV0dXJuIGFsbF9wYXRjaGVzCkluZGV4OiBUb29scy9TY3JpcHRz
L3dlYmtpdHB5L3Rvb2wvY29tbWFuZHMvZWFybHl3YXJuaW5nc3lzdGVtLnB5Cj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvdG9vbC9jb21tYW5kcy9lYXJseXdhcm5pbmdzeXN0
ZW0ucHkJKHJldmlzaW9uIDI1OTE0MikKKysrIFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvdG9vbC9j
b21tYW5kcy9lYXJseXdhcm5pbmdzeXN0ZW0ucHkJKHdvcmtpbmcgY29weSkKQEAgLTE1NCw3ICsx
NTQsNyBAQCBjbGFzcyBBYnN0cmFjdEVhcmx5V2FybmluZ1N5c3RlbShBYnN0cmFjCiAgICAgICAg
IHJldHVybiBzZWxmLl9ncm91cAogCiAgICAgZGVmIHJlZmV0Y2hfcGF0Y2goc2VsZiwgcGF0Y2gp
OgotICAgICAgICByZXR1cm4gc3VwZXIoQWJzdHJhY3RFYXJseVdhcm5pbmdTeXN0ZW0sIHNlbGYp
Ll9yZWZldGNoX3BhdGNoKHBhdGNoKQorICAgICAgICByZXR1cm4gc2VsZi5fdG9vbC5idWdzLmZl
dGNoX2F0dGFjaG1lbnQocGF0Y2guaWQoKSkKIAogICAgIGRlZiByZXBvcnRfZmxha3lfdGVzdHMo
c2VsZiwgcGF0Y2gsIGZsYWt5X3Rlc3RfcmVzdWx0cywgcmVzdWx0c19hcmNoaXZlKToKICAgICAg
ICAgcGFzcwpJbmRleDogVG9vbHMvU2NyaXB0cy93ZWJraXRweS90b29sL2NvbW1hbmRzL2Vhcmx5
d2FybmluZ3N5c3RlbV91bml0dGVzdC5weQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9TY3JpcHRzL3dl
YmtpdHB5L3Rvb2wvY29tbWFuZHMvZWFybHl3YXJuaW5nc3lzdGVtX3VuaXR0ZXN0LnB5CShyZXZp
c2lvbiAyNTkxNDIpCisrKyBUb29scy9TY3JpcHRzL3dlYmtpdHB5L3Rvb2wvY29tbWFuZHMvZWFy
bHl3YXJuaW5nc3lzdGVtX3VuaXR0ZXN0LnB5CSh3b3JraW5nIGNvcHkpCkBAIC0xMjIsNTAgKzEy
Miw0MyBAQCBjbGFzcyBNb2NrQWJzdHJhY3RFYXJseVdhcm5pbmdTeXN0ZW1Gb3JJCiAKIAogY2xh
c3MgRWFybHlXYXJuaW5nU3lzdGVtVGVzdChRdWV1ZXNUZXN0KToKLSAgICBkZWYgX2RlZmF1bHRf
ZXhwZWN0ZWRfbG9ncyhzZWxmLCBld3MsIGNvbmNsdXNpdmUsIHdvcmtfaXRlbSwgd2lsbF9mZXRj
aF9mcm9tX3N0YXR1c19zZXJ2ZXI9RmFsc2UpOgorICAgIGRlZiBfZGVmYXVsdF9leHBlY3RlZF9s
b2dzKHNlbGYsIGV3cywgY29uY2x1c2l2ZSk6CiAgICAgICAgIHN0cmluZ19yZXBsYWNlbWVudHMg
PSB7CiAgICAgICAgICAgICAibmFtZSI6IGV3cy5uYW1lLAogICAgICAgICAgICAgInBvcnQiOiBl
d3MucG9ydF9uYW1lLAogICAgICAgICAgICAgImFyY2hpdGVjdHVyZSI6ICIgLS1hcmNoaXRlY3R1
cmU9JXMiICUgZXdzLmFyY2hpdGVjdHVyZSBpZiBld3MuYXJjaGl0ZWN0dXJlIGVsc2UgIiIsCiAg
ICAgICAgICAgICAiYnVpbGRfc3R5bGUiOiBld3MuYnVpbGRfc3R5bGUoKSwKICAgICAgICAgICAg
ICJncm91cCI6IGV3cy5ncm91cCgpLAotICAgICAgICAgICAgJ3BhdGNoX2lkJzogd29ya19pdGVt
LmlkKCkgaWYgd29ya19pdGVtIGVsc2UgUXVldWVzVGVzdC5tb2NrX3dvcmtfaXRlbS5pZCgpLAog
ICAgICAgICB9CiAKLSAgICAgICAgaWYgd2lsbF9mZXRjaF9mcm9tX3N0YXR1c19zZXJ2ZXI6Ci0g
ICAgICAgICAgICBzdGF0dXNfc2VydmVyX2ZldGNoX2xpbmUgPSAnTU9DSzogZmV0Y2hfYXR0YWNo
bWVudDogJShwYXRjaF9pZClzXG4nICUgc3RyaW5nX3JlcGxhY2VtZW50cwotICAgICAgICBlbHNl
OgotICAgICAgICAgICAgc3RhdHVzX3NlcnZlcl9mZXRjaF9saW5lID0gJycKLSAgICAgICAgc3Ry
aW5nX3JlcGxhY2VtZW50c1snc3RhdHVzX3NlcnZlcl9mZXRjaF9saW5lJ10gPSBzdGF0dXNfc2Vy
dmVyX2ZldGNoX2xpbmUKLQogICAgICAgICBpZiBld3Muc2hvdWxkX2J1aWxkOgotICAgICAgICAg
ICAgYnVpbGRfbGluZSA9ICIlKHN0YXR1c19zZXJ2ZXJfZmV0Y2hfbGluZSlzUnVubmluZzogd2Vi
a2l0LXBhdGNoIC0tc3RhdHVzLWhvc3Q9ZXhhbXBsZS5jb20gYnVpbGQgLS1uby1jbGVhbiAtLW5v
LXVwZGF0ZSAtLWJ1aWxkLXN0eWxlPSUoYnVpbGRfc3R5bGUpcyAtLWdyb3VwPSUoZ3JvdXApcyAt
LXBvcnQ9JShwb3J0KXMlKGFyY2hpdGVjdHVyZSlzXG5NT0NLOiB1cGRhdGVfc3RhdHVzOiAlKG5h
bWUpcyBCdWlsdCBwYXRjaFxuIiAlIHN0cmluZ19yZXBsYWNlbWVudHMKKyAgICAgICAgICAgIGJ1
aWxkX2xpbmUgPSAiUnVubmluZzogd2Via2l0LXBhdGNoIC0tc3RhdHVzLWhvc3Q9ZXhhbXBsZS5j
b20gYnVpbGQgLS1uby1jbGVhbiAtLW5vLXVwZGF0ZSAtLWJ1aWxkLXN0eWxlPSUoYnVpbGRfc3R5
bGUpcyAtLWdyb3VwPSUoZ3JvdXApcyAtLXBvcnQ9JShwb3J0KXMlKGFyY2hpdGVjdHVyZSlzXG5N
T0NLOiB1cGRhdGVfc3RhdHVzOiAlKG5hbWUpcyBCdWlsdCBwYXRjaFxuIiAlIHN0cmluZ19yZXBs
YWNlbWVudHMKICAgICAgICAgZWxzZToKICAgICAgICAgICAgIGJ1aWxkX2xpbmUgPSAiIgogICAg
ICAgICBzdHJpbmdfcmVwbGFjZW1lbnRzWydidWlsZF9saW5lJ10gPSBidWlsZF9saW5lCiAKICAg
ICAgICAgaWYgZXdzLnJ1bl90ZXN0czoKLSAgICAgICAgICAgIHJ1bl90ZXN0c19saW5lID0gIiUo
c3RhdHVzX3NlcnZlcl9mZXRjaF9saW5lKXNSdW5uaW5nOiB3ZWJraXQtcGF0Y2ggLS1zdGF0dXMt
aG9zdD1leGFtcGxlLmNvbSBidWlsZC1hbmQtdGVzdCAtLW5vLWNsZWFuIC0tbm8tdXBkYXRlIC0t
dGVzdCAtLW5vbi1pbnRlcmFjdGl2ZSAtLWJ1aWxkLXN0eWxlPSUoYnVpbGRfc3R5bGUpcyAtLWdy
b3VwPSUoZ3JvdXApcyAtLXBvcnQ9JShwb3J0KXMlKGFyY2hpdGVjdHVyZSlzXG5NT0NLOiB1cGRh
dGVfc3RhdHVzOiAlKG5hbWUpcyBQYXNzZWQgdGVzdHNcbiIgJSBzdHJpbmdfcmVwbGFjZW1lbnRz
CisgICAgICAgICAgICBydW5fdGVzdHNfbGluZSA9ICJSdW5uaW5nOiB3ZWJraXQtcGF0Y2ggLS1z
dGF0dXMtaG9zdD1leGFtcGxlLmNvbSBidWlsZC1hbmQtdGVzdCAtLW5vLWNsZWFuIC0tbm8tdXBk
YXRlIC0tdGVzdCAtLW5vbi1pbnRlcmFjdGl2ZSAtLWJ1aWxkLXN0eWxlPSUoYnVpbGRfc3R5bGUp
cyAtLWdyb3VwPSUoZ3JvdXApcyAtLXBvcnQ9JShwb3J0KXMlKGFyY2hpdGVjdHVyZSlzXG5NT0NL
OiB1cGRhdGVfc3RhdHVzOiAlKG5hbWUpcyBQYXNzZWQgdGVzdHNcbiIgJSBzdHJpbmdfcmVwbGFj
ZW1lbnRzCiAgICAgICAgIGVsc2U6CiAgICAgICAgICAgICBydW5fdGVzdHNfbGluZSA9ICIiCiAg
ICAgICAgIHN0cmluZ19yZXBsYWNlbWVudHNbJ3J1bl90ZXN0c19saW5lJ10gPSBydW5fdGVzdHNf
bGluZQogCiAgICAgICAgIGlmIGNvbmNsdXNpdmU6Ci0gICAgICAgICAgICByZXN1bHRfbGluZXMg
PSAiTU9DSzogdXBkYXRlX3N0YXR1czogJShuYW1lKXMgUGFzc1xuTU9DSzogcmVsZWFzZV93b3Jr
X2l0ZW06ICUobmFtZSlzICUocGF0Y2hfaWQpc1xuIiAlIHN0cmluZ19yZXBsYWNlbWVudHMKKyAg
ICAgICAgICAgIHJlc3VsdF9saW5lcyA9ICJNT0NLOiB1cGRhdGVfc3RhdHVzOiAlKG5hbWUpcyBQ
YXNzXG5NT0NLOiByZWxlYXNlX3dvcmtfaXRlbTogJShuYW1lKXMgMTAwMDBcbiIgJSBzdHJpbmdf
cmVwbGFjZW1lbnRzCiAgICAgICAgIGVsc2U6Ci0gICAgICAgICAgICByZXN1bHRfbGluZXMgPSAi
TU9DSzogcmVsZWFzZV9sb2NrOiAlKG5hbWUpcyAlKHBhdGNoX2lkKXNcbiIgJSBzdHJpbmdfcmVw
bGFjZW1lbnRzCisgICAgICAgICAgICByZXN1bHRfbGluZXMgPSAiTU9DSzogcmVsZWFzZV9sb2Nr
OiAlKG5hbWUpcyAxMDAwMFxuIiAlIHN0cmluZ19yZXBsYWNlbWVudHMKICAgICAgICAgc3RyaW5n
X3JlcGxhY2VtZW50c1sncmVzdWx0X2xpbmVzJ10gPSByZXN1bHRfbGluZXMKIAogICAgICAgICBl
eHBlY3RlZF9sb2dzID0gewogICAgICAgICAgICAgImJlZ2luX3dvcmtfcXVldWUiOiBzZWxmLl9k
ZWZhdWx0X2JlZ2luX3dvcmtfcXVldWVfbG9ncyhld3MubmFtZSksCiAgICAgICAgICAgICAicHJv
Y2Vzc193b3JrX2l0ZW0iOiAiIiJNT0NLOiB1cGRhdGVfc3RhdHVzOiAlKG5hbWUpcyBTdGFydGVk
IHByb2Nlc3NpbmcgcGF0Y2gKLSUoc3RhdHVzX3NlcnZlcl9mZXRjaF9saW5lKXNSdW5uaW5nOiB3
ZWJraXQtcGF0Y2ggLS1zdGF0dXMtaG9zdD1leGFtcGxlLmNvbSBjbGVhbiAtLXBvcnQ9JShwb3J0
KXMlKGFyY2hpdGVjdHVyZSlzCitSdW5uaW5nOiB3ZWJraXQtcGF0Y2ggLS1zdGF0dXMtaG9zdD1l
eGFtcGxlLmNvbSBjbGVhbiAtLXBvcnQ9JShwb3J0KXMlKGFyY2hpdGVjdHVyZSlzCiBNT0NLOiB1
cGRhdGVfc3RhdHVzOiAlKG5hbWUpcyBDbGVhbmVkIHdvcmtpbmcgZGlyZWN0b3J5Ci0lKHN0YXR1
c19zZXJ2ZXJfZmV0Y2hfbGluZSlzUnVubmluZzogd2Via2l0LXBhdGNoIC0tc3RhdHVzLWhvc3Q9
ZXhhbXBsZS5jb20gdXBkYXRlIC0tcG9ydD0lKHBvcnQpcyUoYXJjaGl0ZWN0dXJlKXMKK1J1bm5p
bmc6IHdlYmtpdC1wYXRjaCAtLXN0YXR1cy1ob3N0PWV4YW1wbGUuY29tIHVwZGF0ZSAtLXBvcnQ9
JShwb3J0KXMlKGFyY2hpdGVjdHVyZSlzCiBNT0NLOiB1cGRhdGVfc3RhdHVzOiAlKG5hbWUpcyBV
cGRhdGVkIHdvcmtpbmcgZGlyZWN0b3J5Ci0lKHN0YXR1c19zZXJ2ZXJfZmV0Y2hfbGluZSlzUnVu
bmluZzogd2Via2l0LXBhdGNoIC0tc3RhdHVzLWhvc3Q9ZXhhbXBsZS5jb20gYXBwbHktYXR0YWNo
bWVudCAtLW5vLXVwZGF0ZSAtLW5vbi1pbnRlcmFjdGl2ZSAlKHBhdGNoX2lkKXMgLS1wb3J0PSUo
cG9ydClzJShhcmNoaXRlY3R1cmUpcworUnVubmluZzogd2Via2l0LXBhdGNoIC0tc3RhdHVzLWhv
c3Q9ZXhhbXBsZS5jb20gYXBwbHktYXR0YWNobWVudCAtLW5vLXVwZGF0ZSAtLW5vbi1pbnRlcmFj
dGl2ZSAxMDAwMCAtLXBvcnQ9JShwb3J0KXMlKGFyY2hpdGVjdHVyZSlzCiBNT0NLOiB1cGRhdGVf
c3RhdHVzOiAlKG5hbWUpcyBBcHBsaWVkIHBhdGNoCi0lKHN0YXR1c19zZXJ2ZXJfZmV0Y2hfbGlu
ZSlzUnVubmluZzogd2Via2l0LXBhdGNoIC0tc3RhdHVzLWhvc3Q9ZXhhbXBsZS5jb20gY2hlY2st
cGF0Y2gtcmVsZXZhbmNlIC0tcXVpZXQgLS1ncm91cD0lKGdyb3VwKXMgLS1wb3J0PSUocG9ydClz
JShhcmNoaXRlY3R1cmUpcworUnVubmluZzogd2Via2l0LXBhdGNoIC0tc3RhdHVzLWhvc3Q9ZXhh
bXBsZS5jb20gY2hlY2stcGF0Y2gtcmVsZXZhbmNlIC0tcXVpZXQgLS1ncm91cD0lKGdyb3VwKXMg
LS1wb3J0PSUocG9ydClzJShhcmNoaXRlY3R1cmUpcwogTU9DSzogdXBkYXRlX3N0YXR1czogJShu
YW1lKXMgQ2hlY2tlZCByZWxldmFuY2Ugb2YgcGF0Y2gKICUoYnVpbGRfbGluZSlzJShydW5fdGVz
dHNfbGluZSlzJShyZXN1bHRfbGluZXMpcyIiIiAlIHN0cmluZ19yZXBsYWNlbWVudHMsCiAgICAg
ICAgICAgICAiaGFuZGxlX3VuZXhwZWN0ZWRfZXJyb3IiOiAiTW9jayBlcnJvciBtZXNzYWdlXG4i
LApAQCAtMTczLDE0ICsxNjYsMTMgQEAgTU9DSzogdXBkYXRlX3N0YXR1czogJShuYW1lKXMgQ2hl
Y2tlZCByZQogICAgICAgICB9CiAgICAgICAgIHJldHVybiBleHBlY3RlZF9sb2dzCiAKLSAgICBk
ZWYgX3Rlc3RfZXdzKHNlbGYsIGV3cywgcmVzdWx0c19hcmVfY29uY2x1c2l2ZT1UcnVlLCB1c2Vf
c2VjdXJpdHlfc2Vuc2l0aXZlX3BhdGNoPUZhbHNlKToKKyAgICBkZWYgX3Rlc3RfZXdzKHNlbGYs
IGV3cywgcmVzdWx0c19hcmVfY29uY2x1c2l2ZT1UcnVlKToKICAgICAgICAgZXdzLmJpbmRfdG9f
dG9vbChNb2NrVG9vbCgpKQogICAgICAgICBld3MuaG9zdCA9IE1vY2tIb3N0KCkKICAgICAgICAg
b3B0aW9ucyA9IE1vY2soKQogICAgICAgICBvcHRpb25zLnBvcnQgPSBOb25lCiAgICAgICAgIG9w
dGlvbnMucnVuX3Rlc3RzID0gZXdzLnJ1bl90ZXN0cwotICAgICAgICB3b3JrX2l0ZW0gPSBNb2Nr
VG9vbCgpLmJ1Z3MuZmV0Y2hfYXR0YWNobWVudCgxMDAwOCkgaWYgdXNlX3NlY3VyaXR5X3NlbnNp
dGl2ZV9wYXRjaCBlbHNlIE5vbmUKLSAgICAgICAgc2VsZi5hc3NlcnRfcXVldWVfb3V0cHV0cyhl
d3MsIHdvcmtfaXRlbT13b3JrX2l0ZW0sIGV4cGVjdGVkX2xvZ3M9c2VsZi5fZGVmYXVsdF9leHBl
Y3RlZF9sb2dzKGV3cywgcmVzdWx0c19hcmVfY29uY2x1c2l2ZSwgd29ya19pdGVtLCB3aWxsX2Zl
dGNoX2Zyb21fc3RhdHVzX3NlcnZlcj1ib29sKHVzZV9zZWN1cml0eV9zZW5zaXRpdmVfcGF0Y2gp
KSwgb3B0aW9ucz1vcHRpb25zKQorICAgICAgICBzZWxmLmFzc2VydF9xdWV1ZV9vdXRwdXRzKGV3
cywgZXhwZWN0ZWRfbG9ncz1zZWxmLl9kZWZhdWx0X2V4cGVjdGVkX2xvZ3MoZXdzLCByZXN1bHRz
X2FyZV9jb25jbHVzaXZlKSwgb3B0aW9ucz1vcHRpb25zKQogCiAgICAgZGVmIHRlc3RfZXdzZXMo
c2VsZik6CiAgICAgICAgIGNsYXNzZXMgPSBBYnN0cmFjdEVhcmx5V2FybmluZ1N5c3RlbS5sb2Fk
X2V3c19jbGFzc2VzKCkKQEAgLTE4OSwxMyArMTgxLDYgQEAgTU9DSzogdXBkYXRlX3N0YXR1czog
JShuYW1lKXMgQ2hlY2tlZCByZQogICAgICAgICBmb3IgZXdzX2NsYXNzIGluIGNsYXNzZXM6CiAg
ICAgICAgICAgICBzZWxmLl90ZXN0X2V3cyhld3NfY2xhc3MoKSkKIAotICAgIGRlZiB0ZXN0X2V3
c2VzX3dpdGhfc2VjdXJpdHlfc2Vuc2l0aXZlX3BhdGNoKHNlbGYpOgotICAgICAgICBjbGFzc2Vz
ID0gQWJzdHJhY3RFYXJseVdhcm5pbmdTeXN0ZW0ubG9hZF9ld3NfY2xhc3NlcygpCi0gICAgICAg
IHNlbGYuYXNzZXJ0VHJ1ZShjbGFzc2VzKQotICAgICAgICBzZWxmLm1heERpZmYgPSBOb25lCi0g
ICAgICAgIGZvciBld3NfY2xhc3MgaW4gY2xhc3NlczoKLSAgICAgICAgICAgIHNlbGYuX3Rlc3Rf
ZXdzKGV3c19jbGFzcygpLCB1c2Vfc2VjdXJpdHlfc2Vuc2l0aXZlX3BhdGNoPVRydWUpCi0KICAg
ICBkZWYgdGVzdF9pbmNvbmNsdXNpdmVfanNjX3Rlc3RfcmVzdWx0cyhzZWxmKToKICAgICAgICAg
Y2xhc3NlcyA9IE1vY2tBYnN0cmFjdEVhcmx5V2FybmluZ1N5c3RlbUZvckluY29uY2x1c2l2ZUpT
Q1Jlc3VsdHMubG9hZF9ld3NfY2xhc3NlcygpCiAgICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZShjbGFz
c2VzKQpJbmRleDogVG9vbHMvU2NyaXB0cy93ZWJraXRweS90b29sL2NvbW1hbmRzL3F1ZXJpZXNf
dW5pdHRlc3QucHkKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gVG9vbHMvU2NyaXB0cy93ZWJraXRweS90b29sL2Nv
bW1hbmRzL3F1ZXJpZXNfdW5pdHRlc3QucHkJKHJldmlzaW9uIDI1OTE0MikKKysrIFRvb2xzL1Nj
cmlwdHMvd2Via2l0cHkvdG9vbC9jb21tYW5kcy9xdWVyaWVzX3VuaXR0ZXN0LnB5CSh3b3JraW5n
IGNvcHkpCkBAIC0xMTgsOCArMTE4LDcgQEAgY2xhc3MgUXVlcnlDb21tYW5kc1Rlc3QoQ29tbWFu
ZHNUZXN0KToKICAgICAgICAgICAgICJCdWdzIHdpdGggYXR0YWNobWVudHMgcGVuZGluZyByZXZp
ZXc6XG4iIFwKICAgICAgICAgICAgICJodHRwOi8vd2Via2l0Lm9yZy9iL2J1Z2lkICAgRGVzY3Jp
cHRpb24gKGFnZSBpbiBkYXlzKVxuIiBcCiAgICAgICAgICAgICAiaHR0cDovL3dlYmtpdC5vcmcv
Yi81MDAwMSAgIEJ1ZyB3aXRoIGEgcGF0Y2ggbmVlZGluZyByZXZpZXcuICgwKVxuIiBcCi0gICAg
ICAgICAgICAiaHR0cDovL3dlYmtpdC5vcmcvYi81MDAwNyAgIFNlY3VyaXR5IGJ1ZyB3aXRoIGEg
cGF0Y2ggbmVlZGluZyByZXZpZXcuICgwKVxuIiBcCi0gICAgICAgICAgICAiVG90YWw6IDJcbiIK
KyAgICAgICAgICAgICJUb3RhbDogMVxuIgogICAgICAgICBzZWxmLmFzc2VydF9leGVjdXRlX291
dHB1dHMoUGF0Y2hlc1RvUmV2aWV3KCksIE5vbmUsIGV4cGVjdGVkX3N0ZG91dCwgZXhwZWN0ZWRf
c3RkZXJyLCBvcHRpb25zPW9wdGlvbnMpCiAKICAgICAgICAgb3B0aW9ucy5jY19lbWFpbCA9IE5v
bmUKSW5kZXg6IFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvdG9vbC9jb21tYW5kcy9xdWV1ZXMucHkK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gVG9vbHMvU2NyaXB0cy93ZWJraXRweS90b29sL2NvbW1hbmRzL3F1ZXVl
cy5weQkocmV2aXNpb24gMjU5MTQyKQorKysgVG9vbHMvU2NyaXB0cy93ZWJraXRweS90b29sL2Nv
bW1hbmRzL3F1ZXVlcy5weQkod29ya2luZyBjb3B5KQpAQCAtMzksNyArMzksNyBAQCBmcm9tIG9w
dHBhcnNlIGltcG9ydCBtYWtlX29wdGlvbgogCiBmcm9tIHdlYmtpdHB5LmNvbW1vbi5jb25maWcu
Y29tbWl0dGVydmFsaWRhdG9yIGltcG9ydCBDb21taXR0ZXJWYWxpZGF0b3IKIGZyb20gd2Via2l0
cHkuY29tbW9uLmNvbmZpZy5wb3J0cyBpbXBvcnQgRGVwcmVjYXRlZFBvcnQKLWZyb20gd2Via2l0
cHkuY29tbW9uLm5ldC5idWd6aWxsYSBpbXBvcnQgQnVnemlsbGEsIEF0dGFjaG1lbnQKK2Zyb20g
d2Via2l0cHkuY29tbW9uLm5ldC5idWd6aWxsYSBpbXBvcnQgQXR0YWNobWVudAogZnJvbSB3ZWJr
aXRweS5jb21tb24uc3lzdGVtLmV4ZWN1dGl2ZSBpbXBvcnQgU2NyaXB0RXJyb3IKIGZyb20gd2Vi
a2l0cHkuY29tbW9uLnVuaWNvZGVfY29tcGF0aWJpbGl0eSBpbXBvcnQgQnl0ZXNJTwogZnJvbSB3
ZWJraXRweS50b29sLmJvdC5ib3RpbmZvIGltcG9ydCBCb3RJbmZvCkBAIC0yMjEsMTEgKzIyMSw3
IEBAIGNsYXNzIEFic3RyYWN0UGF0Y2hRdWV1ZShBYnN0cmFjdFF1ZXVlKToKICAgICAgICAgICAg
IHBhdGNoX2lkID0gc2VsZi5fdG9vbC5zdGF0dXNfc2VydmVyLm5leHRfd29ya19pdGVtKHNlbGYu
bmFtZSkKICAgICAgICAgICAgIGlmIG5vdCBwYXRjaF9pZDoKICAgICAgICAgICAgICAgICByZXR1
cm4gTm9uZQotICAgICAgICAgICAgdHJ5OgotICAgICAgICAgICAgICAgIHBhdGNoID0gc2VsZi5f
dG9vbC5idWdzLmZldGNoX2F0dGFjaG1lbnQocGF0Y2hfaWQsIHRocm93X29uX2FjY2Vzc19lcnJv
cj1UcnVlKQotICAgICAgICAgICAgZXhjZXB0IEJ1Z3ppbGxhLkFjY2Vzc0Vycm9yIGFzIGU6Ci0g
ICAgICAgICAgICAgICAgaWYgZS5lcnJvcl9jb2RlID09IEJ1Z3ppbGxhLkFjY2Vzc0Vycm9yLk5P
VF9QRVJNSVRURUQ6Ci0gICAgICAgICAgICAgICAgICAgIHBhdGNoID0gc2VsZi5fdG9vbC5zdGF0
dXNfc2VydmVyLmZldGNoX2F0dGFjaG1lbnQocGF0Y2hfaWQpCisgICAgICAgICAgICBwYXRjaCA9
IHNlbGYuX3Rvb2wuYnVncy5mZXRjaF9hdHRhY2htZW50KHBhdGNoX2lkKQogICAgICAgICAgICAg
aWYgbm90IHBhdGNoOgogICAgICAgICAgICAgICAgICMgRklYTUU6IFVzaW5nIGEgZmFrZSBwYXRj
aCBiZWNhdXNlIHJlbGVhc2Vfd29ya19pdGVtIGhhcyB0aGUgd3JvbmcgQVBJLgogICAgICAgICAg
ICAgICAgICMgV2UgYWxzbyBkb24ndCByZWFsbHkgbmVlZCB0byByZWxlYXNlIHRoZSBsb2NrIChh
bHRob3VnaCB0aGF0J3MgZmluZSksCkBAIC0zMzAsMTggKzMyNiw2IEBAIGNsYXNzIFBhdGNoUHJv
Y2Vzc2luZ1F1ZXVlKEFic3RyYWN0UGF0Y2gKICAgICAgICAgaWYgc2VsZi5fY2FuX2FjY2Vzc19i
dWcocGF0Y2guYnVnX2lkKCkpOgogICAgICAgICAgICAgc2VsZi5fdG9vbC5idWdzLmFkZF9hdHRh
Y2htZW50X3RvX2J1ZyhwYXRjaC5idWdfaWQoKSwgcmVzdWx0c19hcmNoaXZlX2ZpbGUsIGRlc2Ny
aXB0aW9uLCBmaWxlbmFtZT0ibGF5b3V0LXRlc3QtcmVzdWx0cy56aXAiLCBjb21tZW50X3RleHQ9
Y29tbWVudF90ZXh0KQogCi0gICAgZGVmIF9yZWZldGNoX3BhdGNoKHNlbGYsIHBhdGNoKToKLSAg
ICAgICAgcGF0Y2hfaWQgPSBwYXRjaC5pZCgpCi0gICAgICAgIHRyeToKLSAgICAgICAgICAgIHBh
dGNoID0gc2VsZi5fdG9vbC5idWdzLmZldGNoX2F0dGFjaG1lbnQocGF0Y2hfaWQsIHRocm93X29u
X2FjY2Vzc19lcnJvcj1UcnVlKQotICAgICAgICBleGNlcHQgQnVnemlsbGEuQWNjZXNzRXJyb3Ig
YXMgZToKLSAgICAgICAgICAgICMgRklYTUU6IE5lZWQgYSB3YXkgdG8gYXNrIHRoZSBzdGF0dXMg
c2VydmVyIHRvIGZldGNoIHRoZSBwYXRjaCBhZ2Fpbi4gRm9yIG5vdwotICAgICAgICAgICAgIyB3
ZSByZXR1cm4gdGhlIGF0dGFjaG1lbnQgYXMgaXQgd2FzIHdoZW4gaXQgd2FzIG9yaWdpbmFsbHkg
dXBsb2FkZWQgdG8gdGhlCi0gICAgICAgICAgICAjIHN0YXR1cyBzZXJ2ZXIuIFNlZSA8aHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE4NjgxNz4uCi0gICAgICAgICAgICBp
ZiBlLmVycm9yX2NvZGUgPT0gQnVnemlsbGEuQWNjZXNzRXJyb3IuTk9UX1BFUk1JVFRFRDoKLSAg
ICAgICAgICAgICAgICBwYXRjaCA9IHNlbGYuX3Rvb2wuc3RhdHVzX3NlcnZlci5mZXRjaF9hdHRh
Y2htZW50KHBhdGNoX2lkKQotICAgICAgICByZXR1cm4gcGF0Y2gKLQogCiBjbGFzcyBDb21taXRR
dWV1ZShQYXRjaFByb2Nlc3NpbmdRdWV1ZSwgU3RlcFNlcXVlbmNlRXJyb3JIYW5kbGVyLCBDb21t
aXRRdWV1ZVRhc2tEZWxlZ2F0ZSk6CiAgICAgZGVmIF9faW5pdF9fKHNlbGYsIGNvbW1pdF9xdWV1
ZV90YXNrX2NsYXNzPUNvbW1pdFF1ZXVlVGFzayk6CkBAIC01MzcsNCArNTIxLDQgQEAgY2xhc3Mg
U3R5bGVRdWV1ZShBYnN0cmFjdFJldmlld1F1ZXVlLCBTdAogICAgICAgICByZXR1cm4gTm9uZQog
CiAgICAgZGVmIHJlZmV0Y2hfcGF0Y2goc2VsZiwgcGF0Y2gpOgotICAgICAgICByZXR1cm4gc3Vw
ZXIoU3R5bGVRdWV1ZSwgc2VsZikuX3JlZmV0Y2hfcGF0Y2gocGF0Y2gpCisgICAgICAgIHJldHVy
biBzZWxmLl90b29sLmJ1Z3MuZmV0Y2hfYXR0YWNobWVudChwYXRjaC5pZCgpKQpJbmRleDogVG9v
bHMvU2NyaXB0cy93ZWJraXRweS90b29sL2NvbW1hbmRzL3F1ZXVlc191bml0dGVzdC5weQo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBUb29scy9TY3JpcHRzL3dlYmtpdHB5L3Rvb2wvY29tbWFuZHMvcXVldWVzX3Vu
aXR0ZXN0LnB5CShyZXZpc2lvbiAyNTkxNDIpCisrKyBUb29scy9TY3JpcHRzL3dlYmtpdHB5L3Rv
b2wvY29tbWFuZHMvcXVldWVzX3VuaXR0ZXN0LnB5CSh3b3JraW5nIGNvcHkpCkBAIC0xNDQsOSAr
MTQ0LDcgQEAgTU9DSyBzZXR0aW5nIGZsYWcgJ2NvbW1pdC1xdWV1ZScgdG8gJy0nIAogLSBJZiB5
b3UgaGF2ZSBjb21taXR0ZXIgcmlnaHRzIHBsZWFzZSBjb3JyZWN0IHRoZSBlcnJvciBpbiBUb29s
cy9TY3JpcHRzL3dlYmtpdHB5L2NvbW1vbi9jb25maWcvY29udHJpYnV0b3JzLmpzb24gYnkgYWRk
aW5nIHlvdXJzZWxmIHRvIHRoZSBmaWxlIChubyByZXZpZXcgbmVlZGVkKS4gIFRoZSBjb21taXQt
cXVldWUgcmVzdGFydHMgaXRzZWxmIGV2ZXJ5IDIgaG91cnMuICBBZnRlciByZXN0YXJ0IHRoZSBj
b21taXQtcXVldWUgd2lsbCBjb3JyZWN0bHkgcmVzcGVjdCB5b3VyIGNvbW1pdHRlciByaWdodHMu
JwogRmVlZGluZyBjb21taXQtcXVldWUgaGlnaCBwcmlvcml0eSBpdGVtcyBbMTAwMDVdLCByZWd1
bGFyIGl0ZW1zIFsxMDAwMF0KIE1PQ0s6IHVwZGF0ZV93b3JrX2l0ZW1zOiBjb21taXQtcXVldWUg
WzEwMDA1LCAxMDAwMF0KLUZlZWRpbmcgRVdTICgyIHI/IHBhdGNoZXMsIDIgbmV3KQotTU9DSzog
dXBsb2FkX2F0dGFjaG1lbnQ6IDEwMDA4Ci1NT0NLOiBzdWJtaXRfdG9fb2xkX2V3czogMTAwMDgK
K0ZlZWRpbmcgRVdTICgxIHI/IHBhdGNoLCAxIG5ldykKIE1PQ0s6IHN1Ym1pdF90b19vbGRfZXdz
OiAxMDAwMgogIiIiLAogICAgICAgICAgICAgImhhbmRsZV91bmV4cGVjdGVkX2Vycm9yIjogIk1v
Y2sgZXJyb3IgbWVzc2FnZVxuIiwKQEAgLTE2Miw3ICsxNjAsNyBAQCBjbGFzcyBBYnN0cmFjdFBh
dGNoUXVldWVUZXN0KENvbW1hbmRzVGVzCiAgICAgICAgIHF1ZXVlLl9vcHRpb25zID0gTW9jaygp
CiAgICAgICAgIHF1ZXVlLl9vcHRpb25zLnBvcnQgPSBOb25lCiAgICAgICAgIHNlbGYuYXNzZXJ0
SXNOb25lKHF1ZXVlLl9uZXh0X3BhdGNoKCkpCi0gICAgICAgIHRvb2wuc3RhdHVzX3NlcnZlciA9
IE1vY2tTdGF0dXNTZXJ2ZXIod29ya19pdGVtcz1bMiwgMTAwMDAsIDEwMDAxLCAxMDAwOF0pCisg
ICAgICAgIHRvb2wuc3RhdHVzX3NlcnZlciA9IE1vY2tTdGF0dXNTZXJ2ZXIod29ya19pdGVtcz1b
MiwgMTAwMDAsIDEwMDAxXSkKICAgICAgICAgZXhwZWN0ZWRfc3Rkb3V0ID0gIk1PQ0s6IGZldGNo
X2F0dGFjaG1lbnQ6IDIgaXMgbm90IGEga25vd24gYXR0YWNobWVudCBpZFxuIiAgIyBBIG1vY2st
b25seSBtZXNzYWdlIHRvIHByZXZlbnQgdXMgZnJvbSBtYWtpbmcgbWlzdGFrZXMuCiAgICAgICAg
IGV4cGVjdGVkX2xvZ3MgPSAiIiJNT0NLOiB1cGRhdGVfc3RhdHVzOiBOb25lIFNraXAKIE1PQ0s6
IHJlbGVhc2Vfd29ya19pdGVtOiBOb25lIDIKQEAgLTE3MSw3ICsxNjksNiBAQCBNT0NLOiByZWxl
YXNlX3dvcmtfaXRlbTogTm9uZSAyCiAgICAgICAgICMgVGhlIHBhdGNoLmlkKCkgPT0gMiBpcyBp
Z25vcmVkIGJlY2F1c2UgaXQgZG9lc24ndCBleGlzdC4KICAgICAgICAgc2VsZi5hc3NlcnRFcXVh
bChwYXRjaC5pZCgpLCAxMDAwMCkKICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChxdWV1ZS5fbmV4
dF9wYXRjaCgpLmlkKCksIDEwMDAxKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHF1ZXVlLl9u
ZXh0X3BhdGNoKCkuaWQoKSwgMTAwMDgpCiAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwocXVldWUu
X25leHRfcGF0Y2goKSwgTm9uZSkgICAgIyBXaGVuIHRoZSBxdWV1ZSBpcyBlbXB0eQogCiAKSW5k
ZXg6IFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvdG9vbC9jb21tYW5kcy91cGxvYWRfdW5pdHRlc3Qu
cHkKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gVG9vbHMvU2NyaXB0cy93ZWJraXRweS90b29sL2NvbW1hbmRzL3Vw
bG9hZF91bml0dGVzdC5weQkocmV2aXNpb24gMjU5MTQyKQorKysgVG9vbHMvU2NyaXB0cy93ZWJr
aXRweS90b29sL2NvbW1hbmRzL3VwbG9hZF91bml0dGVzdC5weQkod29ya2luZyBjb3B5KQpAQCAt
MTg1LDI4ICsxODUsNiBAQCBNT0NLOiBzdWJtaXRfdG9fZXdzOiAxMDAwMQogIiIiCiAgICAgICAg
IHNlbGYuYXNzZXJ0X2V4ZWN1dGVfb3V0cHV0cyhVcGxvYWQoKSwgWzUwMDAwXSwgb3B0aW9ucz1v
cHRpb25zLCBleHBlY3RlZF9sb2dzPWV4cGVjdGVkX2xvZ3MpCiAKLSAgICBkZWYgdGVzdF91cGxv
YWRfb2Zfc2VjdXJpdHlfc2Vuc2l0aXZlX3BhdGNoX3dpdGhfbm9fcmV2aWV3X2FuZF9ld3Moc2Vs
Zik6Ci0gICAgICAgIG9wdGlvbnMgPSBNb2NrT3B0aW9ucygpCi0gICAgICAgIG9wdGlvbnMuY2Mg
PSBOb25lCi0gICAgICAgIG9wdGlvbnMuY2hlY2tfc3R5bGUgPSBUcnVlCi0gICAgICAgIG9wdGlv
bnMuY2hlY2tfc3R5bGVfZmlsdGVyID0gTm9uZQotICAgICAgICBvcHRpb25zLmNvbW1lbnQgPSBO
b25lCi0gICAgICAgIG9wdGlvbnMuZGVzY3JpcHRpb24gPSAnTU9DSyBkZXNjcmlwdGlvbicKLSAg
ICAgICAgb3B0aW9ucy5ub25faW50ZXJhY3RpdmUgPSBGYWxzZQotICAgICAgICBvcHRpb25zLnJl
cXVlc3RfY29tbWl0ID0gRmFsc2UKLSAgICAgICAgb3B0aW9ucy5yZXZpZXcgPSBGYWxzZQotICAg
ICAgICBvcHRpb25zLmV3cyA9IFRydWUKLSAgICAgICAgb3B0aW9ucy5zb3J0X3hjb2RlX3Byb2pl
Y3QgPSBGYWxzZQotICAgICAgICBvcHRpb25zLnN1Z2dlc3RfcmV2aWV3ZXJzID0gRmFsc2UKLSAg
ICAgICAgZXhwZWN0ZWRfbG9ncyA9ICIiIk1PQ0s6IHVzZXIub3Blbl91cmw6IGZpbGU6Ly8uLi4K
LVdhcyB0aGF0IGRpZmYgY29ycmVjdD8KLU9ic29sZXRpbmcgMSBvbGQgcGF0Y2ggb24gYnVnIDUw
MDA3Ci1NT0NLIGFkZF9wYXRjaF90b19idWc6IGJ1Z19pZD01MDAwNywgZGVzY3JpcHRpb249TU9D
SyBkZXNjcmlwdGlvbiwgbWFya19mb3JfcmV2aWV3PUZhbHNlLCBtYXJrX2Zvcl9jb21taXRfcXVl
dWU9RmFsc2UsIG1hcmtfZm9yX2xhbmRpbmc9RmFsc2UKLU1PQ0s6IHVzZXIub3Blbl91cmw6IGh0
dHA6Ly9leGFtcGxlLmNvbS81MDAwNwotTU9DSzogc3VibWl0X3RvX2V3czogMTAwMDgKLSIiIgot
ICAgICAgICBzZWxmLmFzc2VydF9leGVjdXRlX291dHB1dHMoVXBsb2FkKCksIFs1MDAwN10sIG9w
dGlvbnM9b3B0aW9ucywgZXhwZWN0ZWRfbG9ncz1leHBlY3RlZF9sb2dzKQotCiAgICAgZGVmIHRl
c3RfbWFya19idWdfZml4ZWQoc2VsZik6CiAgICAgICAgIHRvb2wgPSBNb2NrVG9vbCgpCiAgICAg
ICAgIHRvb2wuX3NjbS5sYXN0X3N2bl9jb21taXRfbG9nID0gbGFtYmRhOiAicjk4NzYgfCIKSW5k
ZXg6IFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvdG9vbC9zdGVwcy9vYnNvbGV0ZXBhdGNoZXMucHkK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gVG9vbHMvU2NyaXB0cy93ZWJraXRweS90b29sL3N0ZXBzL29ic29sZXRl
cGF0Y2hlcy5weQkocmV2aXNpb24gMjU5MTQyKQorKysgVG9vbHMvU2NyaXB0cy93ZWJraXRweS90
b29sL3N0ZXBzL29ic29sZXRlcGF0Y2hlcy5weQkod29ya2luZyBjb3B5KQpAQCAtNDYsMTAgKzQ2
LDcgQEAgY2xhc3MgT2Jzb2xldGVQYXRjaGVzKEFic3RyYWN0U3RlcCk6CiAgICAgICAgIGlmIG5v
dCBzZWxmLl9vcHRpb25zLm9ic29sZXRlX3BhdGNoZXM6CiAgICAgICAgICAgICByZXR1cm4KICAg
ICAgICAgYnVnX2lkID0gc3RhdGVbImJ1Z19pZCJdCi0gICAgICAgIGJ1ZyA9IHNlbGYuX3Rvb2wu
YnVncy5mZXRjaF9idWcoYnVnX2lkKQotICAgICAgICBpZiBub3QgYnVnOgotICAgICAgICAgICAg
cmV0dXJuCi0gICAgICAgIHBhdGNoZXMgPSBidWcucGF0Y2hlcygpCisgICAgICAgIHBhdGNoZXMg
PSBzZWxmLl90b29sLmJ1Z3MuZmV0Y2hfYnVnKGJ1Z19pZCkucGF0Y2hlcygpCiAgICAgICAgIGlm
IG5vdCBwYXRjaGVzOgogICAgICAgICAgICAgcmV0dXJuCiAgICAgICAgIF9sb2cuaW5mbygiT2Jz
b2xldGluZyAlcyBvbiBidWcgJXMiICUgKHBsdXJhbGl6ZShsZW4ocGF0Y2hlcyksICJvbGQgcGF0
Y2giKSwgYnVnX2lkKSkK
</data>

          </attachment>
      

    </bug>

</bugzilla>